AXI4和AXI3是高級(jí)擴(kuò)展接口(Advanced eXtensible Interface)的兩個(gè)不同版本,它們都是用于SoC(System on Chip)設(shè)計(jì)中的總線協(xié)議,用于處理器和其它外設(shè)之間的高速數(shù)據(jù)傳輸。以下是它們之間的一些主要區(qū)別:
1.AXI4加大Burst Length
AXI3最大突發(fā)長(zhǎng)度(Burst Length)是16 beats,其AxLEN信號(hào)位寬為4位。
AXI4擴(kuò)展了對(duì)突發(fā)長(zhǎng)度的支持,最大可以達(dá)到256 beats,AxLEN信號(hào)位寬增加到8位。注意,這種擴(kuò)展主要是針對(duì)INCR(Incrementing)突發(fā)類型,而WRAP和FIXED突發(fā)類型的最大長(zhǎng)度仍然限制在16 beats,并且CPU的突發(fā)一般不會(huì)超過16拍,突發(fā)太長(zhǎng)會(huì)一直占用總線,而且一旦開始突發(fā)傳輸是不能取消的,只能等突發(fā)傳輸完成。
注意,大型SoC系統(tǒng)中,AXI4和AXI3往往混用,如果總線從AXI4轉(zhuǎn)為AXI3實(shí)len直接從[7:0]截位為[3:0],則需要控制源頭激勵(lì),len不能大于15。否則會(huì)無響應(yīng)進(jìn)而掛死,推薦使用協(xié)議橋來完成轉(zhuǎn)換。
2. AXI4新增QoS
AXI4引入了新的信號(hào)來支持服務(wù)質(zhì)量(QoS),例如4bit的AWQOS和4bit的ARQOS信號(hào),這些信號(hào)允許系統(tǒng)根據(jù)事務(wù)的重要性分配不同的服務(wù)級(jí)別。主要針對(duì)不同寫/讀事務(wù)的優(yōu)先級(jí),如果不使用,建議設(shè)置為default value 4'b0000。
AXI4協(xié)議沒有規(guī)定QoS的用法,一般由具體SoC架構(gòu)特性決定,協(xié)議中希望互聯(lián)組件中有可配置寄存器,在傳輸中可以修改Qos信號(hào)值。一般盡量在系統(tǒng)級(jí)統(tǒng)一規(guī)劃QoS,并且設(shè)置為可編程QoS。QoS值越大,優(yōu)先級(jí)越高,當(dāng)然也有AxQoS越低,優(yōu)先級(jí)越高的SoC。
3.AXI4取消鎖定事務(wù)
AXI4去除了對(duì)鎖定事務(wù)的支持,這是為了提高協(xié)議的簡(jiǎn)潔性。在AXI3中,鎖定事務(wù)允許一個(gè)主設(shè)備鎖定對(duì)從設(shè)備的訪問,直到它完成其事務(wù)。AXI4中,AxLOCK信號(hào)從2位減少到了1位,不再支持Locked access,只支持Normal access、Exclusive access。請(qǐng)問,Locked access和Exclusive access區(qū)別是啥?
請(qǐng)問,什么是locked access?
答:a locked sequence of transcations forces the interconnect to reject access to subordinate from any orther manager。即強(qiáng)制interconnect 拒絕其他master訪問subordinate(slave)。
如上圖,當(dāng)M0發(fā)起locked access的時(shí)候,必須確保沒有在途的transaction,之前的transaction必須完成。然后M0使用AxLOCK發(fā)起locked transaction,然后interconnect通過內(nèi)部仲裁器確保只有M0能訪問到subordinate,任何其他的manager(M1)訪問Sub都會(huì)被Blocked,直到M0發(fā)起一個(gè)非locked transaction表示locked sequence完成。
因此,Locked access作用的對(duì)象是總線,而Exclusive access 作用的對(duì)象是對(duì)應(yīng)的Slave?,F(xiàn)在SoC系統(tǒng)都非常復(fù)雜,Master也非常多,某一個(gè)Master lock住總線導(dǎo)致其他master不能使用總線對(duì)系統(tǒng)的性能影響太大,AXI4就取消Lock機(jī)制了。而Exclusive access機(jī)制實(shí)現(xiàn)在Slave模塊里,支持Exclusive access機(jī)制的slave會(huì)實(shí)現(xiàn)一個(gè)Exclusive access Monitor。
什么是Exclusive access Monitor?
當(dāng)M0發(fā)起一次獨(dú)占訪問讀操作后,subordinate中的monitor會(huì)有如下可能響應(yīng)。
EXOKAY:讀操作已經(jīng)執(zhí)行,獨(dú)占訪問成功,并且事務(wù)ID已經(jīng)記錄下,memory range和manager已經(jīng)記錄下。
OKAY:讀操作已經(jīng)執(zhí)行,但是subordinate不支持獨(dú)占訪問,獨(dú)占訪問錯(cuò)誤。
如果當(dāng)M0接受到EXOKAY的響應(yīng),那么M0可以嘗試完成exclusive sequence,即進(jìn)行一次獨(dú)占寫,這次獨(dú)占寫需要有相同的事務(wù)ID以及相同的地址范圍。接下來可能接受到來自subordinate的響應(yīng)為:
EXOKAY:沒有其他manager對(duì)先去讀事務(wù)的地址范圍進(jìn)行寫操作,所以M0的獨(dú)占寫事務(wù)成功,在這種情況下,獨(dú)占寫事務(wù)更新了memory。
OKAY:有別的manager,例如M1,在M0發(fā)起寫事務(wù)之前已經(jīng)對(duì)獨(dú)占地址范圍進(jìn)行了寫操作,獨(dú)占寫失敗。
要實(shí)現(xiàn)exclusive access,需要每個(gè)transaction ID都記錄一個(gè)地址,用來標(biāo)記不同序列的獨(dú)占訪問地址。舉個(gè)例子,如下圖:
當(dāng)manager發(fā)起兩筆獨(dú)占訪問,第一筆獨(dú)占訪問transaction ID是0,第二筆是1,對(duì)相同的獨(dú)占訪問地址進(jìn)行讀操作,subordinate都會(huì)給出EXOKAY的響應(yīng),因?yàn)樵搒ubordinate支持獨(dú)占訪問操作,并且讀操作成功執(zhí)行。
然后manager發(fā)送一筆寫事務(wù),transaction ID是0,然后subordinate檢查該筆transaction ID是否記錄在monitor中,檢查后發(fā)現(xiàn)該地址被記錄在monitor的table中,因此獨(dú)占訪問寫操作成功,返回EXOKAY響應(yīng),同時(shí)由于地址0xA000已經(jīng)被寫入修改了,monitor將所有地址為0xA000的獨(dú)占記錄移除。
然后manager再次發(fā)送一筆寫事務(wù),transaction ID為1,此時(shí)monitor再次檢查內(nèi)部的獨(dú)占記錄發(fā)現(xiàn)沒有獨(dú)占記錄,因?yàn)樵谏弦粋€(gè)exclusive sequence已經(jīng)清除掉所有地址為0xA000的獨(dú)占記錄了,因此獨(dú)占寫事務(wù)失敗,返回OKAY,并且內(nèi)存中的數(shù)據(jù)不會(huì)更新,也就是data 0x4并不會(huì)寫入到地址中。
這個(gè)例子演示了獨(dú)占訪問如何實(shí)現(xiàn)非阻塞行為。與LOCK訪問相比,提供了更大的系統(tǒng)吞吐量。
4.AXI4S升級(jí)AxCACHE
AXI4中AWCACHE和ARCACHE信號(hào)的含義發(fā)生了變化,以適應(yīng)ARM CPU架構(gòu)的發(fā)展和對(duì)內(nèi)存屬性更復(fù)雜的定義。
在AXI3中,4bit數(shù)據(jù)分別是buffer、cache、read allocate、write allocate。
bufferable用在寫操作中,表示可以由一個(gè)中間節(jié)點(diǎn)來返回response信號(hào)。Normally, the Bufferable attribute is only relevant to writes.
cacheable在讀操作中,表示可以prefetch一些數(shù)據(jù),在寫操作中,表示可以將不同的write merged together。RA針對(duì)讀操作。WA針對(duì)寫操作。只有在cacheable有效的情況下,這兩個(gè)bit才有效。在AXI4中,cache bit改名為modefiable,RA,WA的概念被更新,將不用的allocate bit改為other allocate。
AXI3 中AWCACHE[3:0] 和ARCACHE[3:0]的含義如下圖所示:
AXI3中cache=0,對(duì)數(shù)據(jù)不做處理。cache=1,矩陣會(huì)對(duì)讀寫數(shù)據(jù)進(jìn)行合并或拆分處理。一般是矩陣的downsize/upsize對(duì)數(shù)據(jù)進(jìn)行處理。cache[0],Bufferable,一般針對(duì)寫操作,表示interconnect,或者其他類似component,可以先返回resp,之后再寫向final distination。cache[1],1)與RA,WA配合,控制cache。2)表示transaction的屬性,可以在中間被更改。對(duì)寫操作,表示數(shù)據(jù)可以被merge。對(duì)于讀操作,表示地址可以被prefetch。
AXI4中AWCACHE[3:0] 和ARCACHE[3:0]的含義如下圖所示(括號(hào)內(nèi)的是AXI3的編號(hào)):
5. AXI4升級(jí)寫響應(yīng)(Write Response Channel)
AXI4規(guī)定了更嚴(yán)格的寫響應(yīng)條件,必須等到地址通路和數(shù)據(jù)通路都準(zhǔn)備好,并且明確了要等WLAST信號(hào)后,從設(shè)備才能發(fā)出BVALID進(jìn)行寫響應(yīng),這保證了事務(wù)真正完成時(shí)才發(fā)送響應(yīng)。也就是說AXI4必須等到AWVALID,AWREADY,WVALID, WREADY, and WLAST 都為高后,SLAVE才能發(fā)BVALID進(jìn)行寫響應(yīng),進(jìn)一步避免了deadlock。
AXI3則是等到了WVALID和WREADY后就能把BVALID置高來響應(yīng),也就是說只要slave接收了W通道所有寫數(shù)據(jù)(WLAST拉起)就可以B通道響應(yīng),沒管地址通道,SLAVE就可以發(fā)寫響應(yīng)。顯然AXI4更嚴(yán)謹(jǐn)。
6.AXI4升級(jí)AxUSER
在AXI3中,USER信號(hào)沒有具體規(guī)定,而在AXI4中,USER信號(hào)的位寬和用法被進(jìn)一步定義和標(biāo)準(zhǔn)化,以支持更廣泛的應(yīng)用。考慮到IP的兼容性問題,IP廠商一般不用USER信號(hào),其主要還是應(yīng)用在SoC內(nèi)部。AXI4的USER信號(hào)規(guī)定如下:
AXI4在寫控制通道、寫數(shù)據(jù)通道、寫反饋通道和讀控制通道中引入了額外的用戶自定義信號(hào),如AWUSER、WUSER、BUSER、ARUSER和RUSER,以支持更廣泛的應(yīng)用場(chǎng)景??紤]到IP的兼容性問題,IP廠商一般不用USER信號(hào),其主要還是應(yīng)用在SoC內(nèi)部。
7.AXI4取消WID
AXI4取消WID,寫通道不再支持write data interleave功能,雖然AXI3支持Write interleaving,但是大家在設(shè)計(jì)的時(shí)候,master基本都沒支持Write interleaving,因?yàn)閷憯?shù)據(jù)一般都是in order有序發(fā)送的。這樣可以減少pin count,減少設(shè)計(jì)復(fù)雜度。
8.AXI4新增AxREGION
相比AXI3,AXI4增加了2個(gè)4bit AxREGION信號(hào),4bit可以表示16個(gè)region。主要作用是簡(jiǎn)化slave中的address decode,由interconnect在做address decode時(shí)產(chǎn)生,同樣必須在4k范圍內(nèi)。AxREGION是可選的功能,一般用的較少。
總結(jié),AXI4和AXI3在互聯(lián)時(shí)需要注意信號(hào)的兼容性,例如AWID、AxLOCK、AxLEN等信號(hào)的處理方式有所不同。
審核編輯:劉清
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229833 -
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120361 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1891瀏覽量
64600 -
SoC系統(tǒng)
+關(guān)注
關(guān)注
0文章
52瀏覽量
10679 -
AXI總線
+關(guān)注
關(guān)注
0文章
66瀏覽量
14261
原文標(biāo)題:SoC系統(tǒng)中AXI4與AXI3兼容性與exclusive access
文章出處:【微信號(hào):全棧芯片工程師,微信公眾號(hào):全棧芯片工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論