AXI協議解析(五)


今天先來看一下傳輸標識(transaction identifier)的概念,主要是ID信號。

開始之前先講幾個概念,首先是outstanding(想不好怎么翻譯,有的人譯為超前)傳輸。如果沒有outstanding能力,或者說outstanding=1時,主機的讀操作順序是:讀地址命令->等待讀數據返回->讀地址命令->等待讀數據返回->…如此往復。主機的寫操作行為是:寫地址->寫數據->等待寫響應返回->寫地址->寫數據->等待寫響應返回->…如此往復。每一次新的傳輸要等上一次傳輸結束,總線的利用率不高。
而如果outstanding能力為N>1的話,則讀操作時,可以連續發N個讀地址命令,在這期間如果讀數據沒有返回,則需要等待讀數據返回,如果有讀數據返回,則返回了幾個,那么仍然可以接着發幾個。也就是說,“在路上” 的讀命令(或者讀數據)最多可以是N。對於寫操作,可以連續發出N組寫地址(寫數據)命令,這期間如果寫響應沒有返回,則必須等待寫響應返回才能接着發寫地址(寫數據)命令,如果有寫響應返回,則返回了幾個,那么仍然可以接着發幾組。也就是說,“在路上” 的寫響應最多可以是N。
還有一個概念是亂序(out of order)傳輸。如果不支持亂序,那么返回的讀數據必須按照讀事務的順序返回。如果是一次突發傳輸,返回數據中間不能插入其它的讀事務數據。如果中間允許插入其它事務的數據,就是支持交織。
換種說法,outsatanding是對地址而言,一次突發還沒結束,就可以發送下一個地址。而亂序和交織則是相對於傳輸事務,out-of-order說的是發送transaction和接收的cmd之間的順序沒有關系,如先接到A的cmd,再接到B的cmd,則可以先發B的數據,再發A的數據;交織指的是A的數據和B的數據可以交錯,如A0->B0->A1->B1->B2->B3。
如果SoC中是多主機多從機的結構,支持上述的傳輸特性無疑會極大的提高總線互連的利用率,主機可以對不同地址或從機進行連續訪問,而從機返回數據的先后可以不按照主機的發出事務順序。當然,這也對設計提出了挑戰。
一般從機的數據准備時間不由主機控制,數據就緒順序與事務到達順序不一致是可能的。因此需要相應的機制來標識數據所屬的事務。而這,就是通過ID信號來實現的。
首先從讀事務的 ARID 來看,主機為發出的讀事務設定 ARID。
對於給定ID值的所有事務都必須保持有序,但對具有不同ID值的事務的順序沒有限制。單個物理端口支持亂序(out of order)事務,這樣看起來有多個邏輯端口,每個邏輯端口按順序處理其事務。通過使用AXI ID,主機可以無需等待前一個事務完成,就可以發出下一個事務。這可以提高系統性能,因為它支持事務的並行處理。
對於讀數據排序,從機要保證RID的值與對應的ARID值匹配。互連必須確保從具有相同ARID值的事務序列中讀取的數據以不同的從機為目標,由主機按其發出地址的順序接收。從設備的讀取數據重新排序深度(read data reordering depth)由從設備自己決定,不受主設備影響。

對於寫數據排序,主設備必須保證寫數據與發出的事務地址順序相同。互連必須保證不同主設備的寫數據與事務地址同序。也就是說,主設備保證自己的寫事務順序,互連保證不同主設備的順序。
AXI3支持不同ID的寫數據交織(interleaving)。但是,Write interleaving增加了系統總線設計的復雜度,而且很容易造成死,所以AXI4中不支持了。
這就有了一個新的概念,排序模型(ordering model)。相同ID和目的地的事務請求必須保證順序;返回的相同ID的事務響應要與請求順序相同。Ordering model不保證下列間的順序:
不同主機的事務
讀和寫事務
不同ID的事務
到不同外設區域(peripheral regions)的事務
到不同存儲空間(memory location)的事務

AXI4中除去那些重要的信號,還有一些可選信號,也可稱為邊帶(sideband)信號。接下來簡單過一下。首先是AxQOS,AXI4通過這些信號支持QOS(Quality of Service),AWQOS和ARQOS都是4bit的信號。協議里面並沒有規定具體的用法,只是建議用AxQOS信號作為區分優先級使用,數值越大表示優先級越高。看到這,我們大概也明白了什么是QOS了,說白了,就是在資源有限的情況下,盡可能的保證高優先級的模塊或組件獲得足夠的資源,比如內存帶寬。舉個例子就好理解了,比如去銀行辦業務,VIP客戶的需求會被優先處理,普通客戶都在拿號排隊,VIP客戶去了可以直接加塞兒。所以,所謂的服務質量就是優先級排隊,看人下菜碟兒,哈哈。回到我們的芯片設計,還是以內存帶寬為例,對於手機SoC或通用的圖像GPU而言,顯示接口模塊顯然需要稍高一些的優先級,否則打游戲時顯示圖像不流暢會極大的影響用戶體驗。不同的SoC中擁有的系統資源各不相同,需求也各不相同。對於SoC來說,QOS是一個系統問題,所以AXI協議中沒有規定具體的實施,這要依賴於系統架構設計。也正是因為這樣,協議規定AXI的事務排序優先於QOS排序。

另外一組信號是AWREGION和ARREGION,4bit寬度,用於支持多區域接口(multiple region interface)。AxREGION用於唯一標識多個不同的區域,提供高階地址位的解碼。區域標識符(region identifier)必須在任何4K字節的地址空間內保持不變。使用AxREGION意味着從機上的單個物理接口可以提供多個邏輯接口,每個接口在系統地址映射中具有不同的位置。從機不必支持不同邏輯接口之間的地址解碼。

AXI4也提供了一組稱為USER的用戶自定義信號,對應5個通道,分別是AWUSER,ARUSER,WUSER,RUSER,BUSER。同樣的,協議沒有規定這些信號的具體用法,甚至都沒規定這些信號的寬度。而且協議也不要求同時實現5個通道的USER信號。可以看出,USER信號的存在感很弱。在一些SoC設計中,可以利用USER信號來傳輸一些邊帶信息。要注意的是,如果是不同廠家的IP,在集成時千萬要看好了USER信號的具體用法,很有可能不兼容,不能直連。


免責聲明!

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



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