0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SoC設(shè)計(jì)中總線協(xié)議AXI4與AXI3的主要區(qū)別詳解

全棧芯片工程師 ? 來源:全棧芯片工程師 ? 2024-05-10 11:29 ? 次閱讀

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。

d172a6b6-0e0f-11ef-a297-92fbcf53809c.png

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ū)別是啥?

d192651e-0e0f-11ef-a297-92fbcf53809c.png

d1a70c9e-0e0f-11ef-a297-92fbcf53809c.png

請(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)。

d1c4bc12-0e0f-11ef-a297-92fbcf53809c.png

如上圖,當(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?

d1e10282-0e0f-11ef-a297-92fbcf53809c.png

當(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è)例子,如下圖:

d1fc6932-0e0f-11ef-a297-92fbcf53809c.png

d2171462-0e0f-11ef-a297-92fbcf53809c.png

當(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]的含義如下圖所示:

d243fb30-0e0f-11ef-a297-92fbcf53809c.png

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)):

d26051d6-0e0f-11ef-a297-92fbcf53809c.png

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。

d27ee934-0e0f-11ef-a297-92fbcf53809c.png

AXI3則是等到了WVALID和WREADY后就能把BVALID置高來響應(yīng),也就是說只要slave接收了W通道所有寫數(shù)據(jù)(WLAST拉起)就可以B通道響應(yīng),沒管地址通道,SLAVE就可以發(fā)寫響應(yīng)。顯然AXI4更嚴(yán)謹(jǐn)。

d2a364a8-0e0f-11ef-a297-92fbcf53809c.png

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ī)定如下:

d2c3ea20-0e0f-11ef-a297-92fbcf53809c.pngAXI4在寫控制通道、寫數(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)的處理方式有所不同。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bà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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    看看在SpinalHDLAXI4總線互聯(lián)IP的設(shè)計(jì)

    不做過多的講解(小伙伴可以自行下載AMBA總線協(xié)議規(guī)范或者翻看網(wǎng)絡(luò)上AXI4總線協(xié)議相關(guān)文章)。在SpinalHDL
    發(fā)表于 08-02 14:28

    AXI接口協(xié)議詳解

    1、AXI接口協(xié)議詳解  AXI 總線  上面介紹了AMBA總線
    發(fā)表于 10-14 15:31

    學(xué)習(xí)架構(gòu)-AMBA AXI簡(jiǎn)介

    本指南介紹了高級(jí)微控制器總線體系結(jié)構(gòu)(AMBA)AXI主要功能。 該指南解釋了幫助您實(shí)現(xiàn)AXI協(xié)議的關(guān)鍵概念和細(xì)節(jié)。 在本指南中,我們介紹
    發(fā)表于 08-09 07:37

    SoC Designer AXI4協(xié)議包的用戶指南

    這是SoC Designer AXI4協(xié)議包的用戶指南。該協(xié)議包包含SoC Designer組件、探針和ARM
    發(fā)表于 08-10 06:30

    AXI4接口協(xié)議的基礎(chǔ)知識(shí)

    AXI-4 Memory Mapped也被稱之為AXI-4 Full,它是AXI4接口協(xié)議的基礎(chǔ),其他AXI4接口是該接口的變形。總體而言,
    的頭像 發(fā)表于 09-23 11:20 ?6075次閱讀
    <b class='flag-5'>AXI4</b>接口<b class='flag-5'>協(xié)議</b>的基礎(chǔ)知識(shí)

    一文詳解ZYNQ的DMA與AXI4總線

    在ZYNQ,支持AXI-Lite,AXI4AXI-Stream三種總線,但PS與PL之間的接口卻只支持前兩種,
    的頭像 發(fā)表于 09-24 09:50 ?5309次閱讀
    一文<b class='flag-5'>詳解</b>ZYNQ<b class='flag-5'>中</b>的DMA與<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>

    何謂 AXI?關(guān)于AXI3/AXI4的相關(guān)基礎(chǔ)知識(shí)

    新的賽靈思器件設(shè)計(jì)不可或缺的一部分。充分了解其基礎(chǔ)知識(shí)對(duì)于賽靈思器件的設(shè)計(jì)和調(diào)試都很有幫助。 本篇博文將介紹賽靈思器件上的 AXI3/AXI4 的相關(guān)基礎(chǔ)知識(shí)。首先,我們將從一些通俗易懂的知識(shí)、理論
    的頭像 發(fā)表于 09-27 11:06 ?6616次閱讀
    何謂 <b class='flag-5'>AXI</b>?關(guān)于<b class='flag-5'>AXI3</b>/<b class='flag-5'>AXI4</b>的相關(guān)基礎(chǔ)知識(shí)

    ZYNQDMA與AXI4總線

    ZYNQDMA與AXI4總線 為什么在ZYNQDMA和AXI聯(lián)系這么密切?通過上面的介紹我們知道ZYNQ
    的頭像 發(fā)表于 11-02 11:27 ?4339次閱讀
    ZYNQ<b class='flag-5'>中</b>DMA與<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>

    深入AXI4總線一握手機(jī)制

    本系列我想深入探尋 AXI4 總線。不過事情總是這樣,不能我說想深入就深入。當(dāng)前我對(duì) AXI總線的理解尚談不上深入。但我希望通過一系列文章,讓讀者能和我一起深入探尋
    發(fā)表于 03-17 21:40 ?25次下載
    深入<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>一握手機(jī)制

    AXI4 、 AXI4-Lite 、AXI4-Stream接口

    AXI4 是一種高性能memory-mapped總線AXI4-Lite是一只簡(jiǎn)單的、低通量的memory-mapped 總線,而 AXI4
    的頭像 發(fā)表于 07-04 09:40 ?8601次閱讀

    AXI3AXI4寫響應(yīng)的依賴區(qū)別?

    上面兩圖的區(qū)別是相比AXI3,AXI4協(xié)議需要確認(rèn)AWVALID、AWREADY握手完成才能回復(fù)BVALID。為什么呢?
    的頭像 發(fā)表于 03-30 09:59 ?1099次閱讀

    AXI4協(xié)議五個(gè)不同通道的握手機(jī)制

    AXI4 協(xié)議定義了五個(gè)不同的通道,如 AXI 通道中所述。所有這些通道共享基于 VALID 和 READY 信號(hào)的相同握手機(jī)制
    的頭像 發(fā)表于 05-08 11:37 ?1226次閱讀
    <b class='flag-5'>AXI4</b><b class='flag-5'>協(xié)議</b>五個(gè)不同通道的握手機(jī)制

    FPGA AXI4協(xié)議學(xué)習(xí)筆記(二)

    上文FPGA IP之AXI4協(xié)議1_協(xié)議構(gòu)架對(duì)協(xié)議框架進(jìn)行了說明,本文對(duì)AXI4接口的信號(hào)進(jìn)行說明。
    的頭像 發(fā)表于 05-24 15:05 ?1501次閱讀
    FPGA <b class='flag-5'>AXI4</b><b class='flag-5'>協(xié)議</b>學(xué)習(xí)筆記(二)

    Xilinx FPGA AXI4總線(一)介紹【AXI4】【AXI4-Lite】【AXI-Stream】

    從 FPGA 應(yīng)用角度看看 AMBA 總線AXI4 總線
    發(fā)表于 06-21 15:21 ?2285次閱讀
    Xilinx FPGA <b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>(一)介紹【<b class='flag-5'>AXI4</b>】【<b class='flag-5'>AXI4</b>-Lite】【<b class='flag-5'>AXI</b>-Stream】

    漫談AMBA總線-AXI4協(xié)議的基本介紹

    本文主要集中在AMBA協(xié)議AXI4協(xié)議。之所以選擇AXI4作為講解,是因?yàn)檫@個(gè)
    發(fā)表于 01-17 12:21 ?2408次閱讀
    漫談AMBA<b class='flag-5'>總線</b>-<b class='flag-5'>AXI4</b><b class='flag-5'>協(xié)議</b>的基本介紹