AXI接口


1、outstanding

 

2、interleaving

3、out-of-oder

 

 

 4、寫數據可以優先於寫地址

 

 

 5、大小端

小端:低地址數據放在總線bus的低位。

大端:低地址數據放在總線bus的高位。

 6、INCR模式

INCR模式master只提供首地址,地址累加是slave端做的

7、原子操作

7.1、原子操作的用途

在多線程的操作系統中,都有一個獲取線程鎖的過程,這個鎖是唯一的,一個線程搶到了其他線程就搶不到,如何實現這個功能呢?加入將內存的一個變量作為鎖的標志,如果這個標志位0表示沒有線程搶這個鎖,如果為1表示某個線程搶到了這個鎖。那么在搶鎖之前先要看一下這個標志是否為0,如果為0表示鎖是空閑的可以搶,為了表示搶到了這個鎖,還得把這個變量置為1。這個搶鎖的過程就至少需要有一讀一寫。但是在多線程操作的過程中,可能很多線程都在讀取這個變量,都讀到的值為0(讀的時間還是比較長的,多核並發完全可以讀多次),然后所有線程都寫1,這樣就造成了多個線程都得到了鎖,與鎖唯一的要求不合。也就是說通過軟件手段是不能保證某個值被一個線程(Master)讀取和寫入的過程中沒有被其他線程(Master)讀取和寫入。這就要求線程支持原子操作。

由於內存在使用過程中會出現ecc錯誤,需要刷新數據來糾正這些錯誤,操作系統通過內存巡檢來完成刷新操作,內存巡檢就是讀取內存的值,通過ecc校驗更正錯誤值,然后寫入到內存,系統讀取數據后,操作系統還是在正常運行的,內存上的程序很有可能把內部數據修改了,如果還是拿原來讀取的數據ecc校驗后寫入就會沖掉程序保存的數據,這當然是不行的。這個時候內存巡檢就要用到原子操作,巡檢值使用exlusive方式讀取內存,讓這段內存記錄在讀取數據后內存數據有沒有被改寫過,如果被改寫過,ecc校驗后的數據使用exlusive方式寫入的時候就會不成功,防止覆蓋新的數據。巡檢程序發現寫入不成功就重新巡檢這段內存,直到成功。

7.2、exlusive原子操作

Master_A以exclusive方式讀取Salve的一段地址(以lane_cash為單位,一般為64byte)的值后,相當於Master通知slave監控這段地址的寫,slave的一個moniter會紀錄這個Master_A,如果Master_A在寫入這個slave之前沒有其他Master寫過這個數據的話,Master_A往這段地址寫入數據是會返回一個Exok即原子操作成功,指示數據正確寫入;如果在Master_A寫入數據之前有其他Master也往slave的這段地址寫過數據,那么Master_A以exlusive寫數據的操作會返回ok,這其實表示exclusive操作失敗了,數據也被moniter阻擋沒有寫入到slave中。這樣保證讀寫這一整個過程中,軟件知道是不是只有一個線程(Master)在寫這段地址(其他線程在這個過程可以讀),也只有exlusive寫返回Exok后才說明線程鎖搶占成功,這樣就只有一個線程能搶占成功。

 

是一種應用場景相關的操作,在多核CPU中,為了保證一個master對slave的訪問操作不讓其他master來訪問,保證訪問slave的數據不被其他master改寫。有點像多線程中的線程鎖。在AXI3.0的時候有normal access/exclusive access/locked access, 其中normal access是不進行任何干預的訪問,exclusive則是slave端監控一下,在master訪問期間有沒有其他master訪問過,如果訪問過就給告警什么的,讓master重新訪問一遍。locked access這種模式在AXI 4.0取消了,即硬件鎖定,其他master訪問不了master到slave的總線,這種方式對性能影響很大,所以取消了。

8、cash

cash是slave端的一個緩沖,如果多個設備都訪問slave的某一部分數據,那么這部分數據可以緩存到cash中,只要第一個master訪問后,其他master訪問則部分數據時就不去slave中去取這些數據,而是直接從cash中取出來,這樣節省時間。axcash信號在總線中是透傳的。在與AXI相連的CHI協議中實現實現了cash操作。

 

 

9、額外信號Qos/user

Qos和user在總線中也通常是透傳,Qos有時候用於多個master訪問的優先級用於仲裁。

10、應答信號:BRESP/RRESP

  1.     寫操作單獨有一個寫應答通道;讀應答RRESP與讀數據集成在同一通道;
  2.     對於寫操作,每個burst只有一個寫應答BRESP,且必須在最后一拍寫數據后產生;讀操作每一拍數據都有對應的讀應答信號返回;

 11、ID

Master無需知道某個ID被其他設備使用了沒有,應為interconnect會在Master的ID上額外添加8bit,來區分不同Master的ID。

12、低功耗操作

開啟低功耗模式:Master拉低CSYSREQ信號,SLAVE收到后等SLAVE的任務處理完后拉低CACTIVE表示響應,並且在時鍾關閉后拉低CSYSACK表示響應。

撤銷低功耗模式:Master拉起CSYSREQ信號,SLAVE接收到以后拉高CACTIVE,解開時鍾后,拉高CSYSACK信號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM