在 AXI 數(shù)據(jù)傳輸過程中,主要涉及到
?窄位寬數(shù)據(jù)傳輸(Narrow Transfer)
?非對齊傳輸(Unaligned Transfer)
?混合大小端傳輸(mix-endianness)等問題。
(1)窄位寬數(shù)據(jù)傳輸
當本次傳輸中數(shù)據(jù)位寬小于通道本身的數(shù)據(jù)位寬時,稱為窄位寬數(shù)據(jù)傳輸,或者直接翻譯成窄傳輸。
在窄位寬寫傳輸中,主機需要告知從機數(shù)據(jù)通道中哪些bit(原文寫的是字節(jié),應(yīng)該是寫錯了)是有效的,需要使用到寫數(shù)據(jù)通道中的 WSTRB 信號。WSTRB信號中的單個 bit 置起,表示對應(yīng)位置上的字節(jié)有效,對應(yīng)關(guān)系為:
WSTRB[n] 對應(yīng) WDATA[8n+7:8n],也就是:當 WSTRB[n] 為 1 時,WDATA[8n+7:8n]有效。
WSTRB 信號比特位寬等于數(shù)據(jù)通道位寬的字節(jié)數(shù)量,比如 32bit 位寬的數(shù)據(jù)通道,對應(yīng) WSTRB 信號位寬為 4bit。
根據(jù)該圖可直觀的看出WSTRB信號的作用。上圖的窄位寬傳輸有以下特點:
?burst 傳輸長度為 5
?burst 傳輸位寬為 8bit
?起始地址為 0x0
?數(shù)據(jù)總線位寬為 32bit
?突發(fā)類型為 INCR
引用部分可幫助理解窄位寬傳輸?shù)那闆r:
個人理解該設(shè)計的意義在于,當主機是因為從機或者其他客觀條件限制,需要進行窄傳輸時,可以一次性將數(shù)據(jù)放置于數(shù)據(jù)總線上,只需在每次傳輸期間改變 WSTRB信號即可。
以上圖為例,主機將 D[31:0] 防置于總線,在接下來的四個周期中,僅需對 WSTRB 進行移位,即可依次完成 4 個字節(jié)的傳輸。
該結(jié)構(gòu)有利于 memory 類型的從機進行寫入處理,這里設(shè)想一種實現(xiàn)方式,結(jié)合下圖講解,在 64bit 位寬的總線上進行 32bit位寬傳輸,起始地址為 0x4 。此時假設(shè)存儲介質(zhì)位寬與總線位寬一致,為 64 bit。
在 transfer 1st 中,從機獲取整個總線上的 64bit 數(shù)據(jù)存儲至存儲介質(zhì)中,比如 DDR,并利用 wstrb 作為 mask信號屏蔽無效的低 32 bit(比如 DDR 的 DQM 信號)。
這時候存儲介質(zhì)的寫入地址為 0x0,但實際只從地址 0x4 開始寫入了 32bit 數(shù)據(jù)。在后續(xù)的 transfer 繼續(xù)按以上模式工作。
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1891瀏覽量
64600 -
總線
+關(guān)注
關(guān)注
10文章
2881瀏覽量
88084 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
40130 -
AXI
+關(guān)注
關(guān)注
1文章
127瀏覽量
16631
發(fā)布評論請先 登錄
相關(guān)推薦
評論