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