本文以解讀AXI協(xié)議中的多交易操作部分為目的而展開(kāi)介紹,首先介紹了AXI協(xié)議基本概念中與多交易操作相關(guān)的概念,之后對(duì)多交易操作所涉及的“outstanding”、“out of order”和“interleaving”等重要概念做了基本解讀。
1、AXI基本概念
基本互聯(lián)結(jié)構(gòu)
AXI總線(xiàn)系統(tǒng)由Master、Slave和Interconnect等基本器件搭建而成,器件間的互聯(lián)方式如下圖所示:
通道分離
AXI協(xié)議定義了5個(gè)獨(dú)立的通道,每個(gè)通道通過(guò)VALID和READY信號(hào)完成握手機(jī)制。 五個(gè)通道分別為:讀地址通道、讀數(shù)據(jù)通道、寫(xiě)地址通道、寫(xiě)數(shù)據(jù)通道和寫(xiě)響應(yīng)通道。 讀交易通道結(jié)構(gòu)如下圖所示:
寫(xiě)交易通道結(jié)構(gòu)如下圖所示:
讀寫(xiě)交易中握手信號(hào)的依賴(lài)關(guān)系
讀交易中握手信號(hào)的依賴(lài)關(guān)系如下圖所示:
寫(xiě)交易中握手信號(hào)的依賴(lài)關(guān)系如下圖所示:
注:?jiǎn)渭^指向的信號(hào)可以在指向它的信號(hào)未使能或使能后,它再使能;雙箭頭指向的信號(hào)必須在指向它的信號(hào)全都使能后,它再使能。
獨(dú)立的交易ID
通過(guò)接口的每次交易都有一個(gè)ID標(biāo)簽且五個(gè)通道均具備傳遞ID標(biāo)簽的能力。
2、多交易中的“out of order”概念
“out of order”即亂序傳輸。
協(xié)議基本規(guī)定
在猝發(fā)讀模式中,相同交易ID的Slave應(yīng)依據(jù)地址發(fā)送順序返回對(duì)應(yīng)讀數(shù)據(jù); 在猝發(fā)寫(xiě)模式中,相同交易ID的Master應(yīng)依據(jù)地址發(fā)送順序發(fā)送對(duì)應(yīng)寫(xiě)數(shù)據(jù); 不同ID的交易間,不同交易的讀寫(xiě)命令與命令對(duì)應(yīng)的讀寫(xiě)數(shù)據(jù)間無(wú)順序限制。
亂序傳輸?shù)氖疽獍咐?/p>
二猝發(fā)的讀交易亂序傳輸示意圖如下圖所示: (其中Master先發(fā)出讀命令RCMD1,后發(fā)出讀命令RCMD2,但Slave先返回了RCMD2對(duì)應(yīng)的讀數(shù)據(jù)RDATA2_1和RDATA2_2)
二猝發(fā)的寫(xiě)交易亂序傳輸示意圖如下圖所示: (其中Master先發(fā)出寫(xiě)命令WCMD1,后發(fā)出寫(xiě)命令WCMD2,但Master先發(fā)出了寫(xiě)命令WCMD2對(duì)應(yīng)的寫(xiě)數(shù)據(jù)WDATA2_1和WDATA2_2)
亂序傳輸?shù)膬?yōu)勢(shì)
“out of order”技術(shù)保證響應(yīng)較快的存儲(chǔ)區(qū)域不必等待響應(yīng)較慢的存儲(chǔ)區(qū)域,降低了交易延時(shí),從而提高了系統(tǒng)性能表現(xiàn)。
3、多交易中的“interleaving”概念
“interleaving”即交錯(cuò)傳輸。
協(xié)議基本規(guī)定
在猝發(fā)讀模式中,不同交易ID的Slave返回?cái)?shù)據(jù)間允許交錯(cuò)傳遞; 在猝發(fā)寫(xiě)模式中,不同交易ID的Master寫(xiě)入數(shù)據(jù)間允許交錯(cuò)傳遞。(此項(xiàng)只在AXI3協(xié)議中生效)
交錯(cuò)傳輸?shù)氖疽獍咐?/p>
二猝發(fā)的讀交易交錯(cuò)傳輸示意圖如下圖所示: (其中Master先后發(fā)出讀命令RCMD1和RCMD2,Slave依據(jù)時(shí)間先后,交錯(cuò)返回了RDATA2_1、RDATA1_1、RDATA2_2、RDATA1_2等讀數(shù)據(jù))
二猝發(fā)的寫(xiě)交易交錯(cuò)傳輸示意圖如下圖所示: (其中Master先后發(fā)出寫(xiě)命令WCMD1和WCMD2,Master依據(jù)時(shí)間先后,交錯(cuò)寫(xiě)入了WDATA2_1、WDATA1_1、WDATA1_2、WDATA2_2等寫(xiě)數(shù)據(jù))
交錯(cuò)傳輸?shù)膬?yōu)勢(shì)
在讀交易下,“interleaving”技術(shù)保證了不同響應(yīng)狀況的Slave在傳遞讀數(shù)據(jù)時(shí)能最大化利用互聯(lián)帶寬; 在寫(xiě)交易下,當(dāng)Master單此猝發(fā)傳輸?shù)膶?xiě)數(shù)據(jù)來(lái)自速度不同的存儲(chǔ)單元時(shí),“interleaving”技術(shù)能夠提升互聯(lián)帶寬的利用率。
4、多交易中的“outstanding”概念
“outstanding”即待處理的傳輸。
協(xié)議基本規(guī)定
AIX總線(xiàn)系統(tǒng)支持同時(shí)發(fā)布多個(gè)未完成的交易地址。
待處理傳輸?shù)膬?yōu)勢(shì)
“outstanding”技術(shù)意味著Masters可以不需等待上一交易完成便可發(fā)布交易地址,因而使能了總線(xiàn)系統(tǒng)平行處理多個(gè)交易的能力,進(jìn)而提高了系統(tǒng)性能。
=============================================================================
AXI事務(wù)ID與outstanding/out of oreder/interleaving實(shí)現(xiàn)關(guān)系
前言
眾所周知,AXI3/AXI4支持outstanding/out of order/ interleaving的特性,但是這一特性是根據(jù)AXI哪一路實(shí)現(xiàn)的,以及需要注意和說(shuō)明的地方是什么。
here is the analysis.
超前傳輸 outstanding的實(shí)現(xiàn)
outstanding是什么
outstanding表示AXI超前傳輸?shù)奶匦?,表示這筆transaction還沒(méi)完成,可以先提起別的事務(wù),這么說(shuō)如果抽象的話(huà),那么就是AR/AWchannel可以提起多個(gè)事物,即便在W/R channel數(shù)據(jù)還沒(méi)發(fā)完或者還沒(méi)發(fā)的情況下。
超前傳輸是如何實(shí)現(xiàn)的?
在不考慮其他兩個(gè)特性(亂序和交織)的情況下,AXI事務(wù)都是順序完成的,這時(shí)多事務(wù)在途不需要其他信號(hào)來(lái)實(shí)現(xiàn),直接根據(jù)write channel或者read channel的LAST信號(hào)或者response channel的信號(hào)來(lái)判斷分割事務(wù)就可以了??梢哉J(rèn)為是一種隊(duì)列或FIFO結(jié)構(gòu),AR/AWchannel發(fā)起事務(wù)就是順序壓入隊(duì)列,當(dāng)這些事務(wù)對(duì)應(yīng)完成的時(shí)候,就最提起事務(wù)先彈出隊(duì)列,表示結(jié)束,然后接收完成后面的事務(wù)。
超前傳輸?shù)目芍С中?/p>
超前傳輸需要master和slave都支持超前傳輸,其中outstanding depth表示了主機(jī)超前傳輸?shù)男阅埽硎就粫r(shí)刻最多支持多少個(gè)AXI 事務(wù)在途。
如果slave不支持outstanding如何響應(yīng)?
AXI 從機(jī)可選地支持超前傳輸,假設(shè)從機(jī)不支持超前傳輸,只需要在接收到 Trans0 后,置低 AxREADY 信號(hào),阻止主機(jī)超前傳輸。在返回讀數(shù)據(jù)后,再置高 AxREADY 信號(hào),接收下一事務(wù)。如下圖所示,主機(jī)將 Trans1 保持在總線(xiàn)上直至從機(jī)接收。
亂序 out of order的實(shí)現(xiàn)
out of order亂序是什么?
當(dāng)有多個(gè)事務(wù)在途的時(shí)候,有的事務(wù)可能先準(zhǔn)備好,因此可以先發(fā)送在總線(xiàn)上。那就需要面對(duì)一個(gè)問(wèn)題,如何判斷返回的是哪個(gè)事務(wù)的數(shù)據(jù)?這就與AXI的事務(wù)ID有關(guān)
AXI的事務(wù)ID
AXI的事務(wù)ID包含了:
AWID
WID (只有AXI3有,AXI4沒(méi)有,因此不支持寫(xiě)交織)
BID
ARID
RID
AXI out of order亂序的實(shí)現(xiàn)模型與思路
AXI亂序的特性是由地址channel和響應(yīng)channel上的ID信號(hào)AWID/ARID和WID/RID來(lái)實(shí)現(xiàn)的,根據(jù)ID不同來(lái)標(biāo)識(shí)事務(wù)不同,但是并不代表不同事務(wù)傳輸AWID/ARID就已經(jīng)要不同
不同事務(wù)的AxID如果一致,那么這些事務(wù)就不能實(shí)現(xiàn)out of order,只能進(jìn)行順序完成。(因此需要重排序模型,重排序模型包括了事務(wù)緩沖區(qū)和數(shù)據(jù)緩沖區(qū),事務(wù)緩沖區(qū)存放在途需要完成的事務(wù),對(duì)于slave來(lái)說(shuō),其可能對(duì)于不同事務(wù)完成的時(shí)間不同,因此事務(wù)準(zhǔn)備好了與事務(wù)緩沖區(qū)的首個(gè)事務(wù)比較,如果匹配就輸出,如果不匹配就進(jìn)入數(shù)據(jù)緩沖區(qū))
如果不同事務(wù)AxID不同,那么這些事務(wù)之間可以亂序。那么不同AxID事務(wù)的數(shù)據(jù),對(duì)于AXI讀來(lái)說(shuō),如何判斷返回的數(shù)據(jù)屬于哪個(gè)事務(wù)呢,是通過(guò)RID來(lái)進(jìn)行匹配的,也就是說(shuō),在完成亂序傳輸?shù)臅r(shí)候,需要RID和ARID保持一致,以標(biāo)識(shí)不同事務(wù)的數(shù)據(jù)
那么對(duì)于實(shí)際情況來(lái)說(shuō),在實(shí)際傳輸中,可能有的事務(wù)AxID是不同的,有的是相同的,這是如何解決的?答:對(duì)于ID相同的就順序完成,對(duì)于ID不同的可以亂序。
在實(shí)際應(yīng)用中,在slave的實(shí)現(xiàn)中,為每個(gè)ARID準(zhǔn)備了一個(gè)事務(wù)緩沖區(qū)和數(shù)據(jù)緩沖區(qū),以支持相同ID和不同ID的數(shù)據(jù)順序傳輸和亂序傳輸。
有關(guān)于寫(xiě)亂序
有一個(gè)重要的觀(guān)點(diǎn),寫(xiě)亂序不是針對(duì)于master來(lái)說(shuō)的,說(shuō)的不是不同事務(wù)發(fā)送的順序可以不一樣(即事務(wù)A先發(fā)起,事務(wù)B后發(fā)起,先發(fā)B事務(wù)的數(shù)據(jù)然后再發(fā)A事務(wù)的數(shù)據(jù),如此叫做亂序,這種觀(guān)點(diǎn)是錯(cuò)誤的!)
寫(xiě)亂序指的是:亂序是針對(duì)slave來(lái)說(shuō)的,slave接收到了多個(gè)事務(wù)(可能是多個(gè)master傳輸來(lái)的事務(wù))那么slave返回BID的順序與發(fā)送過(guò)來(lái)的AWID順序是不同的,這叫做寫(xiě)亂序,如圖所示,slave對(duì)于寫(xiě)事務(wù)的完成(響應(yīng))可以是亂序的,稱(chēng)之為寫(xiě)亂序,寫(xiě)亂序?qū)嶋H上指的是寫(xiě)響應(yīng)亂序。
對(duì)應(yīng)寫(xiě)事務(wù)亂序跟讀事務(wù)也是相同的
通過(guò)BID和AWID來(lái)表示數(shù)據(jù)所屬事務(wù)
AXI interleaving 交織的實(shí)現(xiàn)
什么是交織?
interleaving表示不同事務(wù)的數(shù)據(jù)可以被打散混合排列(但是注意,這里說(shuō)的混合排列是不同事務(wù)間的,同一個(gè)是數(shù)據(jù)是不循序被打亂的)。例如事務(wù)1數(shù)據(jù)是0a 0b,事務(wù)2數(shù)據(jù)是1a 1b,如果不支持交織,那么總線(xiàn)上數(shù)據(jù)的傳輸需要是0a0b1a1b或者1a1b0a0b,如果支持交織的話(huà)那么就可以是0a1a0b1b(或者別的插入順序)
交織的實(shí)現(xiàn)
對(duì)于讀交織來(lái)說(shuō),讀事務(wù)的response方向和讀方向的相同的,不同事務(wù)交織是通過(guò)RID來(lái)進(jìn)行識(shí)別的,也就是說(shuō)RID在AXI傳輸中即起到了out of order亂序的不同事務(wù)識(shí)別也起到了interleaving交織中不同事務(wù)數(shù)據(jù)的識(shí)別
對(duì)于寫(xiě)交織來(lái)說(shuō),由于寫(xiě)方向和response方向不一樣,那么WID就是提供了寫(xiě)交織的不同事務(wù)的識(shí)別,BID提供了亂序不同事務(wù)的識(shí)別。使用與 AWID 匹配的 BID 標(biāo)識(shí)寫(xiě)回復(fù)所屬的事務(wù) ID。實(shí)際上從機(jī)給出寫(xiě)回復(fù)可以類(lèi)比讀事務(wù)中給出讀數(shù)據(jù)的過(guò)程。
總結(jié)
到此為止,介紹了AxID和RID/BID在AXI亂序交織中的作用。
審核編輯:黃飛
評(píng)論
查看更多