2.5-AHB(數據總線)


資料來源:

(1) amba bus spec翻譯.pdf

(2) 字節序(byte order)、比特序(bit order)、MSB/LSB、大端模式/小端模式 概念誤混淆_光明磊的博客-CSDN博客_lsb和msb的區別 【未閱】

(3) 大小端模式_侵蝕昨天的博客-CSDN博客_大小端模式 【未閱】

6.數據總線

6.1數據總線

(1) 數據總線分為讀數據總線和寫數據總線; 推薦最小總線寬度是32;

(2) HWDATA: 寫傳輸中,master驅動寫數據總線;如果傳輸拓展,即不能及時完成,master必須保持數據有效直至傳輸完成;對於小於總線寬度的數據傳輸,如16比特數據在32位總線上傳輸,master只需要驅動合適的部分lane,不需要的寬度可以不管,slave選擇正確的字節找到寫數據;

(3) HRDATA: 合適的slave在讀傳輸中驅動讀數據總線;如果slave通過將HREADYOUT拉低拓展讀傳輸,只需要在傳輸的最后一個周期提供有效數據; 對於傳輸寬度小於總線寬度的情況,slave只需在激活的字節通道提供有效數據; slave只需要在傳輸完成回應OKAY時提供有效數據; ERROR回應不需要提供有效讀數據;

6.2字節順序

(1) AHB同時支持大端和小端系統,支持兩種大端數據存儲方法;

6.2.1小端方式

(1) 當一個小端組件訪問一個字節,下面的方程展示了使用的總線位,數據會轉移至DATA[(8*Byte_Lane)+7 : (8*Byte_Lane)];

6.2.2字節不變大端方式(BE8, byte-invariant big-endian) (???)

(1) 和小端一樣,對於一個字節而言,大小端都一樣;

(2) 當更大的大端傳輸發生,高字節放在低地址,低字節放在高地址;這是字節不變大端和字不變大端方式的區別;

6.2.3字不變大端(BE32, word-invariant big-endian)

(1) 數據傳輸至DATA[(8*(Word_Offset+3-Byte_Offset))+7 : 8*(Word_Offset+3-Byte_Offset)];

(2) 對於32bit總線,Data_Bus_Bytes=4, Word_Offset總是0,方程式可以簡化為:DATA[(8*(3-Byte_Offset))+7 : 8*(3-Byte_Offset)];

6.2.4字節不變性

(1) 字節不變大端數據結構簡化了在一片內存中訪問混合端的數據訪問,既有大端方式,也有小端方式;

6.3數據總線寬度

(1) 將片上總線數據通道變寬,可以不提高操作頻率而提高總線帶寬;

(2) AHB支持8、16、32、64、128、256、512和1024位數據總線寬度;

6.3.1寬總線與窄slave

(1) 上圖展示了工作在32位總線上的slave,可以轉變在64位總線上工作,這只需要增加外部邏輯,而不改變內部設計;

(2) 對於輸出,當將窄總線轉為寬總線時,做下面的事情: a)在寬度總線一半的數據位復制數據,也就是高、低32位都是HRDATA; b)使用額外的邏輯確保總線上合適的一半被修改,這樣可以減少功耗;

(3) slave只接受和它本身一樣寬的傳輸;

6.3.2窄總線與寬slave

6.3.3寬總線與master

(1) 和slave一樣,可以通過復用數據總線以及復制輸出總線實現在寬總線上運行master;

6.3.4窄總線與master

(1) master不能工作在比本身更窄的總線上,除非包含一些機制限制master嘗試的傳輸寬度;

(2) master不能試圖進行傳輸大小大於總線寬度的傳輸;

 


免責聲明!

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



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