什么是AMBA?
現(xiàn)如今,集成電路芯片的規(guī)模越來越大。數(shù)字IC從基于時序驅(qū)動的設(shè)計(jì)方法,發(fā)展到基于IP復(fù)用的設(shè)計(jì)方法,并在SoC設(shè)計(jì)中得到了廣泛應(yīng)用。在基于IP復(fù)用的SoC設(shè)計(jì)中,片上總線設(shè)計(jì)是最關(guān)鍵的問題。
因而,業(yè)界出現(xiàn)了很多片上總線標(biāo)準(zhǔn),AMBA是其中之一。
AMBA(Advanced Microcontroller Bus Architecture),是一種開放的協(xié)議,主要用于SoC內(nèi)部和ASIC,用于連接各種功能模塊。簡稱AMBA總線,最早由ARM設(shè)計(jì)推出。AMBA是相對使用比較廣的片內(nèi)總線技術(shù),已成為一種流行的工業(yè)標(biāo)準(zhǔn)片上結(jié)構(gòu),如今不單單是ARM專有的。
AMBA總線可以將RISC處理器集成在其他IP芯核和外設(shè)中,它是有效連接IP核的“數(shù)字膠”,并且是ARM復(fù)用策略的重要組件。它不是芯片與外設(shè)之間的接口,而是內(nèi)核與芯片上其他元件進(jìn)行通信的接口。
首先,讓我們按照它的發(fā)布版本來認(rèn)識一下它。
AMBA版本1規(guī)范定義:ASB( Advanced System Bus)與 APB(Advanced Peripheral Bus);
AMBA版本2規(guī)范定義:AHB(Advanced High-performance Bus)、ASB( Advanced System Bus)與 APB(Advanced Peripheral Bus);
AMBA版本3規(guī)范定義:AXI v1.0(Advanced Extensible Interface)、AHB-Lite v1.0(Advanced High-performance Bus Lite)、 APB v1.0(Advanced Peripheral Bus)與ATB v1.0(Advanced Trace Bus);
AMBA版本4規(guī)范定義:ACE(AXI Coherency Extensions)、ACE-Lite(AXI Coherency Extensions Lite)、AXI4(Advanced Extensible Interface 4) 、AXI4-Lite(Advanced Extensible Interface 4 Lite)、AXI4-Stream v1.0(Advanced Extensible Interface 4 Stream)、APB v2.0(Advanced Peripheral Bus)與ATB v1.1(Advanced Trace Bus);
它們之間的區(qū)別在哪里呢?讓我們來依次介紹它們。
AHB (Advanced High-performance Bus) 高級高性能總線
APB (Advanced Peripheral Bus) 高級外設(shè)總線
ASB (Advanced System Bus) 高級系統(tǒng)總線
AXI (Advanced eXtensible Interface) 高級可拓展接口
其中AXI是在AMBA3.0的協(xié)議中增加的,可以用于ARM和FPGA的高速數(shù)據(jù)交互,剩下的三種是在AMBA2.0協(xié)議中定義的總線標(biāo)準(zhǔn)。
AHB介紹
AHB主要用于高性能模塊(如CPU、DMA和DSP等)之間的連接,作為SoC的片上系統(tǒng)總線,它包括以下一些特性:單個時鐘邊沿操作;非三態(tài)的實(shí)現(xiàn)方式;支持突發(fā)傳輸;支持分段傳輸;支持多個主控制器;可配置32位~128位總線寬度;支持字節(jié)、半字節(jié)和字的傳輸。
AHB 系統(tǒng)由主模塊、從模塊和基礎(chǔ)結(jié)構(gòu)(Infrastructure)3部分組成,整個AHB總線上的傳輸都由主模塊發(fā)出,由從模塊負(fù)責(zé)回應(yīng)?;A(chǔ)結(jié)構(gòu)則由仲裁器(arbiter)、主模塊到從模塊的多路器、從模塊到主模塊的多路器、譯碼器(decoder)、虛擬從模塊(dummy Slave)、虛擬主模塊(dummy Master)所組成。其互連結(jié)構(gòu)如下圖所示。
AHB的組成
Master(主控制器):能夠發(fā)起讀寫操作,提供地址和控制信號,同一時間只有1個Master會被激活。
Slave(從設(shè)備):在給定的地址范圍內(nèi)對讀寫操作作響應(yīng),并對Master返回成功、失敗或者等待等狀態(tài)。
Arbiter(仲裁器):負(fù)責(zé)保證總線上一次只有1個Master在工作。仲裁協(xié)議是規(guī)定的,但是仲裁算法可以根據(jù)應(yīng)用決定。
Decoder(譯碼器):負(fù)責(zé)對地址進(jìn)行解碼,并提供片選信號到各Slave。
AHB基本信號
HADDR:32位系統(tǒng)地址總線;
HTRANS:M指示傳輸狀態(tài),NONSEQ、SEQ、IDLE、BUSY;
HWRITE:傳輸方向1-寫,0-讀;
HSIZE:傳輸單位;
HBURST:傳輸?shù)腷urst類型;
HWDATA:寫數(shù)據(jù)總線,從M寫到S;
HREADY:S應(yīng)答M是否讀寫操作傳輸完成,1-傳輸完成,0-需延長傳輸周期。需要注意的是HREADY作為總線上的信號,它是M和S的輸入;同時每個S需要輸出自HREADY。所以對于S會有兩個HREADY信號,一個來自總線的輸入,一個自己給到多路器的輸出;
HRESP:S應(yīng)答當(dāng)前傳輸狀態(tài),OKAY、ERROR、RETRY、SPLIT;
HRDATA:讀數(shù)據(jù)總線,從S讀到M;
AHB基本傳輸
兩個階段
地址周期(AP),只有一個cycle
數(shù)據(jù)周期(DP),由HREADY信號決定需要幾個cycle
流水線傳送
先是地址周期,然后是數(shù)據(jù)周期
AHB突發(fā)傳輸與AXI突發(fā)傳輸?shù)奶攸c(diǎn)
AHB協(xié)議需要一次突發(fā)傳輸?shù)乃械刂罚刂放c數(shù)據(jù)鎖定對應(yīng)關(guān)系,后一次突發(fā)傳輸必須在前次傳輸完成才能進(jìn)行;
AXI只需要一次突發(fā)的首地址,可以連續(xù)發(fā)送多個突發(fā)傳輸首地址而無需等待前次突發(fā)傳輸完成,并且多個數(shù)據(jù)可以交錯傳遞,此特征大大提高了總線的利用率;
AHB總線與AXI總線均適用于高性能、高帶寬的SoC系統(tǒng),但AXI具有更好的靈活性,而且能夠讀寫通道并行發(fā)送,互不影響;更重要的是,AXI總線支持亂序傳輸,能夠有效地利用總線的帶寬,平衡內(nèi)部系統(tǒng)。因此SoC系統(tǒng)中,均以AXI總線為主總線,通過橋連接AHB總線與APB總線,這樣能夠增加SoC系統(tǒng)的靈活性,更加合理地把不同特征IP分配到總線上。
APB介紹
APB主要用于低帶寬的周邊外設(shè)之間的連接,例如UART、1284等,它的總線架構(gòu)不像AHB支持多個主模塊,在APB里面唯一的主模塊就是APB 橋。
APB總線協(xié)議包含一個APB橋,它用來將AHB,ASB總線上的控制信號轉(zhuǎn)化為APB從設(shè)備控制器上可用信號。APB總線上所有的外設(shè)都是從設(shè)備,這些從設(shè)備有以下特點(diǎn):
a 接收有效的地址和控制訪問
b 當(dāng)APB上的外設(shè)處于非活動狀態(tài)時,可以將這些外設(shè)處于0功耗狀態(tài)
c 譯碼器可以通過選通信號,提供輸出時序(非鎖定接口)
d 訪問時可執(zhí)行數(shù)據(jù)寫入
其特性包括:兩個時鐘周期傳輸;無需等待周期和回應(yīng)信號;控制邏輯簡單,只有四個控制信號。APB上的傳輸可以用下圖所示的狀態(tài)圖來說明。
1、系統(tǒng)初始化為IDLE狀態(tài),此時沒有傳輸操作,也沒有選中任何從模塊。
2、當(dāng)有傳輸要進(jìn)行時,PSELx=1,,PENABLE=0,系統(tǒng)進(jìn)入SETUP狀態(tài),并只會在SETUP狀態(tài)停留一個周期。當(dāng)PCLK的下一個上升沿到來時,系統(tǒng)進(jìn)入ENABLE狀態(tài)。
3、系統(tǒng)進(jìn)入ENABLE狀態(tài)時,維持之前在SETUP狀態(tài)的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會在ENABLE狀態(tài)維持一個周期,在經(jīng)過SETUP與ENABLE狀態(tài)之后就已完成。之后如果沒有傳輸要進(jìn)行,就進(jìn)入IDLE狀態(tài)等待;如果有連續(xù)的傳輸,則進(jìn)入SETUP狀態(tài)。
APB讀寫傳輸
一次傳輸過程中,psel保持兩個周期不變,且在此期間,paddr、pwrite也保持不變,penable在psel有效的第2個周期有效。為了降低功耗,地址信號和寫信號將在傳輸后不再改變,直到發(fā)生下一次傳輸。協(xié)議僅要求使能信號有個規(guī)則的跳變,背靠背傳輸情況下,選擇和寫信號可能有小跳變。
讀傳輸時各信號的時序和寫時一樣,在讀傳輸中,從機(jī)必須在ENABLE周期提供數(shù)據(jù),數(shù)據(jù)在ENABLE末尾的時鐘上升沿被采樣。
ASB介紹
AMBA2.0 規(guī)范中的ASB總線適用于連接高性能的系統(tǒng)模塊。它的讀/寫數(shù)據(jù)總線采用的是同一條雙向數(shù)據(jù)總線,可以在某些高速且不必要使用AHB 總線的場合作為系統(tǒng)總線,可以支持處理器、片上存儲器和片外處理器接口及與低功耗外部宏單元之間的連接。
ASB支持高性能處理器,片上內(nèi)存,片外內(nèi)存提供接口和慢速外設(shè)。高性能,數(shù)據(jù)傳輸,多總線主控制器,突發(fā)連續(xù)傳輸。ASB總線是位于APB總線架構(gòu)之上的用于高性能的總線協(xié)議,它有如下特點(diǎn):
a 突發(fā)連續(xù)傳輸
b 單管道數(shù)據(jù)傳輸
c 多總線主控制器
AXI介紹
AXI是一種總線協(xié)議,該協(xié)議是ARM公司提出的AMBA3.0中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。AMBA4.0將其修改升級為AXI4.0。
AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。
AXI4.0-lite是AXI的簡化版本,ACE4.0 是AXI緩存一致性擴(kuò)展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA進(jìn)行以數(shù)據(jù)為主導(dǎo)的大量數(shù)據(jù)的傳輸應(yīng)用。
AXI協(xié)議是基于burst的傳輸,并且定義了5個獨(dú)立的傳輸通道:讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道、寫響應(yīng)通道。
地址通道攜帶控制消息,用于描述被傳輸?shù)臄?shù)據(jù)屬性;數(shù)據(jù)傳輸使用寫通道來實(shí)現(xiàn)master到slave的傳輸,slave使用寫響應(yīng)通道來完成一次寫傳輸;讀通道用來實(shí)現(xiàn)數(shù)據(jù)從slave到master的傳輸。
由若干master設(shè)備和slave設(shè)備通過一些形式的interconnect組成的典型的系統(tǒng)如下圖所示,AXI總線即可作為其中的Interface,實(shí)現(xiàn)數(shù)據(jù)通信。
AXI的性能
AXI總線是一種多通道傳輸總線,將地址、讀數(shù)據(jù)、寫數(shù)據(jù)、握手信號在不同的通道中發(fā)送,不同的訪問之間順序可以打亂,用BUSID來表示各個訪問的歸屬。主設(shè)備在沒有得到返回?cái)?shù)據(jù)的情況下可發(fā)出多個讀寫操作。讀回的數(shù)據(jù)順序可以被打亂,同時還支持非對齊數(shù)據(jù)訪問。
AXI總線還定義了在進(jìn)出低功耗節(jié)電模式前后的握手協(xié)議。規(guī)定如何通知進(jìn)入低功耗模式,何時關(guān)斷時鐘,何時開啟時鐘,如何退出低功耗模式。這使得所有IP在進(jìn)行功耗控制的設(shè)計(jì)時,有據(jù)可依,容易集成在統(tǒng)一的系統(tǒng)中。
AXI的特點(diǎn)
單向通道體系結(jié)構(gòu)-信息流只以單方向傳輸,簡化時鐘域間的橋接,減少門數(shù)量。當(dāng)信號經(jīng)過復(fù)雜的片上系統(tǒng)時,減少延時。
支持多項(xiàng)數(shù)據(jù)交換-通過并行執(zhí)行猝發(fā)操作,極大地提高了數(shù)據(jù)吞吐能力,可在更短的時間內(nèi)完成任務(wù),在滿足高性能要求的同時,又減少了功耗。
獨(dú)立的地址和數(shù)據(jù)通道-地址和數(shù)據(jù)通道分開,能對每一個通道進(jìn)行單獨(dú)優(yōu)化,可以根據(jù)需要控制時序通道,將時鐘頻率提到最高,并將延時降到最低。
增強(qiáng)的靈活性-AXI技術(shù)擁有對稱的主從接口,無論在點(diǎn)對點(diǎn)或在多層系統(tǒng)中,都能十分方便地使用AXI技術(shù)。
AXI讀寫數(shù)據(jù)
寫入數(shù)據(jù)
1、master通過寫地址通道發(fā)出寫入請求;
2、master通過寫數(shù)據(jù)通道發(fā)送寫入的數(shù)據(jù);
3、slave在完成寫入動作后(寫數(shù)據(jù)通道last),通過寫響應(yīng)通道發(fā)回確認(rèn)信息。
讀取數(shù)據(jù)
1、master通過讀地址通道發(fā)出讀取請求;
2、slave通過讀數(shù)據(jù)通道將讀取的數(shù)據(jù)傳給master。
握手過程
5個傳輸通道均使用VALID/READY信號對傳輸過程的地址、數(shù)據(jù)、控制信號進(jìn)行握手。使用雙向握手機(jī)制,傳輸僅僅發(fā)生在VALID、READY同時有效的時候。
通道順序
AXI協(xié)議要求通道間滿足如下關(guān)系:
-寫響應(yīng)必須跟隨最后一次burst的的寫傳輸
-讀數(shù)據(jù)必須跟隨數(shù)據(jù)對應(yīng)的地址
-通道握手信號需要確認(rèn)一些依賴關(guān)系
通道握手信號的依賴關(guān)系
為防止死鎖,通道握手信號需要遵循一定的依賴關(guān)系。
1、VALID信號不能依賴READY信號。
2、AXI接口可以等到檢測到VALID才斷言對應(yīng)的READY,也可以檢測到VALID之前就斷言READY。
單箭頭指向的信號能在箭頭起點(diǎn)信號之前或之后斷言;雙箭頭指向的信號必須在箭頭起點(diǎn)信號斷言之后斷言。
突發(fā)傳輸機(jī)制
突發(fā)傳輸,一般也稱為數(shù)據(jù)突發(fā),其在通信領(lǐng)域中一般指在短時間內(nèi)進(jìn)行相對高帶寬的數(shù)據(jù)傳輸。
AXI 總線中的突發(fā)傳輸(Burst Transaction)是指,在地址總線上進(jìn)行一次地址傳輸后,進(jìn)行多次數(shù)據(jù)傳輸。第一次地址傳輸中的地址作為起始地址,根據(jù)突發(fā)傳輸類型的不同,后續(xù)數(shù)據(jù)的存儲地址在起始地址的基礎(chǔ)上遞增(INCR 模式);或者首先遞增,到達(dá)上限地址后回到起始地址,繼續(xù)遞增(WRAP 模式);又或者后續(xù)數(shù)據(jù)都將不斷寫入起始地址,刷新起始地址上的數(shù)據(jù)。(FIXED 模式)
突發(fā)傳輸?shù)牧鞒?/p>
a.主機(jī)在讀/寫地址通道寫入起始地址(AxADDR)以及突發(fā)傳輸?shù)拈L度(AxLEN)、寬度(AxSIZE)、類型(AxBURST)等信息;
b.從機(jī)將在起始地址開始,依次接收主機(jī)傳輸?shù)膶憯?shù)據(jù),或者讀取連續(xù)地址上的數(shù)據(jù),作為讀數(shù)據(jù)傳輸給主機(jī)。
突發(fā)傳輸長度
突發(fā)傳輸長度(burst length),指一次突發(fā)傳輸中包含的數(shù)據(jù)傳輸(transfer)數(shù)量,在協(xié)議中使用AxLEN信號控制(AWLEN和ARLEN)。
突發(fā)傳輸長度在不同的模式下有一些限制,包括:
a.對于WRAP模式,突發(fā)傳輸長度僅能為2,4,8,16
b.在一次突發(fā)傳輸中,地址不能跨越4KB地址邊界
c.一次突發(fā)傳輸不能在完成所有數(shù)據(jù)傳輸前提前結(jié)束
突發(fā)傳輸寬度
突發(fā)傳輸寬度(burst size),指傳輸中的數(shù)據(jù)位寬,具體地,是每周期傳輸數(shù)據(jù)的字節(jié)數(shù)量,在協(xié)議中使用AxSIZE信號控制(AWSIZE和ARSIZE)。
突發(fā)傳輸數(shù)據(jù)寬度不能超過數(shù)據(jù)總線本身的位寬。而當(dāng)數(shù)據(jù)總線位寬大于突發(fā)傳輸寬度時,將根據(jù)協(xié)議的相關(guān)規(guī)定,將數(shù)據(jù)在部分?jǐn)?shù)據(jù)線上傳輸。
突發(fā)傳輸類型
突發(fā)傳輸類型(burst type),類型共有 3 種,分別為 FIXED,INCR 以及 WRAP。使用 2 位二進(jìn)制表示,在協(xié)議中使用 AxBURST信號控制(AWBURST和ARBURST)。
FIXED:突發(fā)傳輸過程中地址固定,用于FIFO訪問。
INCR:增量突發(fā),傳輸過程中,地址遞增。增加量取決AxSIZE的值。
WRAP:回環(huán)突發(fā),和增量突發(fā)類似,但會在特定高地址的邊界處回到低地址處?;丨h(huán)突發(fā)的長度只能是2,4,8,16次傳輸,傳輸首地址和每次傳輸?shù)拇笮R。最低的地址整個傳輸?shù)臄?shù)據(jù)大小對齊?;丨h(huán)邊界等于(AxSIZE*AxLEN)。
AHB、AXI、APB的區(qū)別與聯(lián)系
AHB:主要是針對高效率、高頻寬及快速系統(tǒng)模塊所設(shè)計(jì)的總線,它可以連接如微處理器、芯片上或芯片外的內(nèi)存模塊和DMA等高效率模塊。
APB:主要用在低速且低功率的外圍,可針對外圍設(shè)備作功率消耗及復(fù)雜接口的最佳化。APB在AHB和低帶寬的外圍設(shè)備之間提供了通信的橋梁,所以APB是AHB或ASB的二級拓展總線。
AXI:高速度、高帶寬,管道化互聯(lián),單向通道,只需要首地址,讀寫并行,支持亂序,支持非對齊操作,有效支持初始延遲較高的外設(shè),連線非常多。
AMBA的應(yīng)用
大多數(shù)掛在總線上的模塊(包括處理器)只是單一屬性的功能模塊:主模塊或者從模塊。主模塊是向從模塊發(fā)出讀寫操作的模塊,如CPU,DSP等;從模塊是接受命令并做出反應(yīng)的模塊,如片上的RAM,AHB/APB 橋等。
另外,還有一些模塊同時具有兩種屬性,例如直接存儲器存?。―MA)在被編程時是從模塊,但在系統(tǒng)讀傳輸數(shù)據(jù)時必須是主模塊。如果總線上存在多個主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。
雖然仲裁規(guī)范是AMBA總線規(guī)范中的一部分,但具體使用的算法由RTL設(shè)計(jì)工程師決定,其中兩個最常用的算法是固定優(yōu)先級算法和循環(huán)制算法。AHB總線上最多可以有16個主模塊和任意多個從模塊,如果主模塊數(shù)目大于16,則需再加一層結(jié)構(gòu)(具體參閱ARM公司推出的Multi-layer AHB規(guī)范)。APB 橋既是APB總線上唯一的主模塊,也是AHB系統(tǒng)總線上的從模塊。其主要功能是鎖存來自AHB系統(tǒng)總線的地址、數(shù)據(jù)和控制信號,并提供二級譯碼以產(chǎn)生APB外圍設(shè)備的選擇信號,從而實(shí)現(xiàn)AHB協(xié)議到APB協(xié)議的轉(zhuǎn)換。
AMBA AHB循環(huán)級建模標(biāo)準(zhǔn)是完全公開和免費(fèi)的。
AMBA總線的仲裁
如果總線上存在多個主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。
而對于AMBA總線仲裁的相關(guān)應(yīng)用,我們來看一個實(shí)例,有關(guān)于對應(yīng)的優(yōu)先順序的設(shè)置:
即,對應(yīng)的ARB寄存器,可以設(shè)置,AHB總線上面的數(shù)據(jù)的優(yōu)先級
ARMI:ARM的指令
ARMD:ARM的數(shù)據(jù)
DMAC:DMA控制器
BRIDGE:AHB/APB 橋(Bridge)
可以通過配置,決定他們的優(yōu)先級順序。
編輯:jq
-
集成電路
+關(guān)注
關(guān)注
5392文章
11630瀏覽量
363292 -
ARM
+關(guān)注
關(guān)注
134文章
9176瀏覽量
369330 -
IC
+關(guān)注
關(guān)注
36文章
5986瀏覽量
176280 -
AMBA
+關(guān)注
關(guān)注
0文章
69瀏覽量
15048
發(fā)布評論請先 登錄
相關(guān)推薦
【GD32VW553-IOT開發(fā)板體驗(yàn)】開箱簡介
ZYNQ基礎(chǔ)---AXI DMA使用
![ZYNQ基礎(chǔ)---<b class='flag-5'>AXI</b> DMA使用](https://file1.elecfans.com/web3/M00/04/ED/wKgZPGd7SvCAE7QTAAAid90C1HA013.png)
RISC-V芯片中使用的各種常用總線釋義
AMBA AXI4接口協(xié)議概述
![<b class='flag-5'>AMBA</b> <b class='flag-5'>AXI</b>4接口協(xié)議概述](https://file1.elecfans.com/web1/M00/F3/CA/wKgZoWce-3qAW_u5AAAraAIQG4g501.png)
usb主機(jī)控制器位于ahp總線上嗎
AMBA總線協(xié)議的基本原理和應(yīng)用場景
時鐘樹的圖好像是APB的時鐘都是AHB給的,請問這些時鐘為多少是哪兒配的呢?是sysinit里嗎?
SoC設(shè)計(jì)中總線協(xié)議AXI4與AXI3的主要區(qū)別詳解
![SoC設(shè)計(jì)中<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>AXI</b>4與<b class='flag-5'>AXI</b>3的主要區(qū)別詳解](https://file1.elecfans.com/web2/M00/E4/C1/wKgaomY9lTuActx0AAA93N8lvBQ190.png)
評論