AMBA、AHB、APB、AXI总线
?
AMBA、AHB、APB總線
* AMBA (Advanced Microcontroller Bus Architecture) 高級微處理器總線架構
* AHB (Advanced High-performance Bus) 高級高性能總線
* ASB (Advanced System Bus) 高級系統(tǒng)總線
* APB (Advanced Peripheral Bus) 高級外圍總線
* AXI (Advanced eXtensible Interface) 高級可拓展接口
AMBA簡介
隨著深亞微米工藝技術日益成熟,集成電路芯片的規(guī)模越來越大。數(shù)字IC從基于時序驅動的設計方法,發(fā)展到基于IP復用的設計方法,并在SOC設計中得到了廣泛應用。在基于IP復用的SoC設計中,片上總線設計是最關鍵的問題。為此,業(yè)界出現(xiàn)了很多片上總線標準。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開發(fā)商和SoC系統(tǒng)集成者的青睞,已成為一種流行的工業(yè)標準片上結構。AMBA規(guī)范主要包括了AHB(Advanced High performance Bus)系統(tǒng)總線和APB(Advanced Peripheral Bus)外圍總線。
AMBA片上總線
AMBA 2.0規(guī)范包括四個部分:AHB、ASB、APB、AXI。AHB的相互連接采用了傳統(tǒng)的帶有主模塊和從模塊的共享總線,接口與互連功能分離,這對芯片上模塊之間的互連具有重要意義。AMBA已不僅是一種總線,更是一種帶有接口模塊的互連體系。一個典型的基于AMBA總線的系統(tǒng)框圖如圖3所示:
大多數(shù)掛在總線上的模塊(包括處理器)只是單一屬性的功能模塊:主模塊或者從模塊。主模塊是向從模塊發(fā)出讀寫操作的模塊,如CPU,DSP等;從模塊是接受命令并做出反應的模塊,如片上的RAM,AHB/APB 橋等。另外,還有一些模塊同時具有兩種屬性,例如直接存儲器存取(DMA)在被編程時是從模塊,但在系統(tǒng)讀傳輸數(shù)據(jù)時必須是主模塊。如果總線上存在多個主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。雖然仲裁規(guī)范是AMBA總線規(guī)范中的一部分,但具體使用的算法由RTL 設計工程師決定,其中兩個最常用的算法是固定優(yōu)先級算法和循環(huán)制算法。AHB總線上最多可以有16個主模塊和任意多個從模塊,如果主模塊數(shù)目大于16,則需再加一層結構(具體參閱ARM公司推出的Multi-layer AHB規(guī)范)。APB 橋既是APB總線上唯一的主模塊,也是AHB系統(tǒng)總線上的從模塊。其主要功能是鎖存來自AHB系統(tǒng)總線的地址、數(shù)據(jù)和控制信號,并提供二級譯碼以產(chǎn)生 APB外圍設備的選擇信號,從而實現(xiàn)AHB協(xié)議到APB協(xié)議的轉換。
AHB簡介
AHB主要用于高性能、高時鐘跑頻率模塊(如CPU、DMA和DSP等)之間的連接,作為SoC的片上系統(tǒng)總線,它包括以下一些特性:單個時鐘邊沿操作;非三態(tài)的實現(xiàn)方式;支持突發(fā)傳輸;支持分段傳輸;支持多個主控制器;可配置32位~128位總線寬度;支持字節(jié)、半字節(jié)和字的傳輸。AHB 系統(tǒng)由主模塊、從模塊和基礎結構(Infrastructure)三部分組成,整個AHB總線上的傳輸都由主模塊發(fā)出,由從模塊負責回應。基礎結構則由仲裁器(arbiter)、主模塊到從模塊的多路器、從模塊到主模塊的多路器、譯碼器(decoder)、虛擬從模塊(dummy Slave)、虛擬主模塊(dummyMaster)所組成。Master:能夠發(fā)起讀寫操作,提供地址和控制信號,同一時間只有1個Master會被激活。
【Master】:能夠發(fā)起讀寫操作,提供地址和控制信號,同一時間只有1個Master會被激活。Slave:在給定的地址范圍內(nèi)對讀寫操作作響應,并對Master返回成功、失敗或等待等狀態(tài)。
【Arbiter】:負責保證總線上一次只有1個Master在工作。仲裁協(xié)議是規(guī)定的,但是仲裁算法可以根據(jù)應用決定。
【Decoder】:負責對地址進行解碼,并提供片選信號到各Slave。
其互連結構如圖1所示:
它主要支持的特性是:
* 數(shù)據(jù)突發(fā)傳輸(burst transfer )
* 數(shù)據(jù)分割傳輸(split transaction )
* 流水線方式
* 一個周期內(nèi)完成總線主設備(master )對總線控制權的交接
* 單時鐘沿操作
* 內(nèi)部無三態(tài)實現(xiàn)
* 更寬的數(shù)據(jù)總線寬度(最低32位,最高可達1024位,但推薦不要超過256位)
APB簡介
APB主要用于低帶寬的周邊外設之間的連接,例如UART、1284等,它的總線架構不像AHB支持多個主模塊,在APB里面唯一的主模塊就是APB 橋。其特性包括:兩個時鐘周期傳輸;無需等待周期和回應信號;控制邏輯簡單,只有四個控制信號。APB上的傳輸可以用如圖2所示的狀態(tài)圖來說明。
1) 系統(tǒng)初始化為IDLE狀態(tài),此時沒有傳輸操作,也沒有選中任何從模塊。
2) 當有傳輸要進行時,PSELx=1,PENABLE=0,系統(tǒng)進入SETUP狀態(tài),并只會在SETUP狀態(tài)停留一個周期。當PCLK的下一個上升沿時到來時,系統(tǒng)進入ENABLE 狀態(tài)。
3) 系統(tǒng)進入ENABLE狀態(tài)時,維持之前在SETUP 狀態(tài)的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會在ENABLE狀態(tài)維持一個周期,在經(jīng)過SETUP與ENABLE 狀態(tài)之后就已完成。之后如果沒有傳輸要進行,就進入IDLE狀態(tài)等待;如果有連續(xù)的傳輸,則進入SETUP狀態(tài)。
ASB簡介
ASB 總線適用于連接高性能的系統(tǒng)模塊。它的讀/寫數(shù)據(jù)總線采用的是同一條雙向數(shù)據(jù)總線,可以在某些高速且不必要使用AHB 總線的場合作為系統(tǒng)總線,可以支持處理器、片上存儲器和片外處理器接口及與低功耗外部宏單元之間的連接。同AHB相比,它數(shù)據(jù)寬度要小一些,它支持的典型數(shù)據(jù)寬度為8位、16位、32位。它的主要特征如下:
* 流水線方式
* 數(shù)據(jù)突發(fā)傳送
* 多總線主設備
* 內(nèi)部有三態(tài)實現(xiàn)
AXI簡介
AXI是高級擴展接口,在AMBA 3.0中提出,AMBA 4.0將其修改升級為AXI 4.0。AMBA 4.0包括AXI 4.0、AXI 4.0-lite、ACE 4.0、AXI 4.0-stream。AXI 4.0-lite是AXI的簡化版本,ACE 4.0是AXI緩存一致性擴展接口,AXI 4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA進行以數(shù)據(jù)為主導的大量數(shù)據(jù)的傳輸應用。
1?關于AXI協(xié)議
* AMBA AXI協(xié)議支持支持高性能、高頻率系統(tǒng)設計。
* 適合高帶寬低延時設計
* 無需復雜的橋就能實現(xiàn)高頻操作
? ? ? ?* 能滿足大部分器件的接口要求
? ? ? ?* 適合高初始延時的存儲控制器
? ? ? ?* 提供互聯(lián)架構的靈活性與獨立性
? ? ? ?* 向下兼容已有的AHB和APB接口
? ? ? ?關鍵特點:
? ? ? ?* 分離的地址/控制、數(shù)據(jù)相位
? ? ? ?* 使用字節(jié)線來支持非對齊的數(shù)據(jù)傳輸
? ? ? ?* 使用基于burst的傳輸,只需傳輸首地址
? ? ? ?* 分離的讀、寫數(shù)據(jù)通道,能提供低功耗DMA
? ? ? ?* 支持多種尋址方式
? ? ? ?* 支持亂序傳輸
? ? ? ?* 允許容易的添加寄存器級來進行時序收斂
2 AXI架構
AXI協(xié)議是基于突發(fā)burst的傳輸,并且定義了以下5個獨立的傳輸通道:讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道、寫響應通道。地址通道攜帶控制消息用于描述被傳輸?shù)臄?shù)據(jù)屬性,數(shù)據(jù)傳輸使用寫通道來實現(xiàn)“主”到“從”的傳輸,“從”使用寫響應通道來完成一次寫傳輸;讀通道用來實現(xiàn)數(shù)據(jù)從“從”到“主”的傳輸。
圖 1-1 讀架構
圖 1-2 寫架構
AXI是基于VALID/READY的握手機制數(shù)據(jù)傳輸協(xié)議,傳輸源端使用VALID表明地址/控制信號、數(shù)據(jù)是有效的,目的端使用READY表明自己能夠接受信息。
? ? ? ?* 讀/寫地址通道:讀、寫傳輸每個都有自己的地址通道,對應的地址通道承載著對應傳輸?shù)牡刂房刂菩畔ⅰ?br /> ? ? ? ?* 讀數(shù)據(jù)通道:讀數(shù)據(jù)通道承載著讀數(shù)據(jù)和讀響應信號包括數(shù)據(jù)總線和指示讀傳輸完成的讀響應信號。
? ? ? ?* 寫數(shù)據(jù)通道:寫數(shù)據(jù)通道的數(shù)據(jù)信息被認為是緩沖(buffered)了的,“主”無需等待“從”對上次寫傳輸?shù)拇_認即可發(fā)起一次新的寫傳輸。寫通道包括數(shù)據(jù)總線(8/16...1024bit)和字節(jié)線(用于指示8bit 數(shù)據(jù)信號的有效性)。
? ? ? ?* 寫響應通道:“從”使用寫響應通道對寫傳輸進行響應。所有的寫傳輸需要寫響應通道的完成信號。
圖 1-3 接口與互聯(lián)
AXI協(xié)議提供單一的接口定義,能用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave。可以使用以下幾種典型的系統(tǒng)拓撲架構:
? ? ? ?* 共享地址與數(shù)據(jù)總線
? ? ? ?* 共享地址總線,多數(shù)據(jù)總線
? ? ? ?* multilayer多層,多地址總線,多數(shù)據(jù)總線
在大多數(shù)系統(tǒng)中,地址通道的帶寬要求沒有數(shù)據(jù)通道高,因此可以使用共享地址總線,多數(shù)據(jù)總線結構來對系統(tǒng)性能和互聯(lián)復雜度進行平衡。
寄存器片(Register Slices):每個AXI通道使用單一方向傳輸信息,并且各個通道直接沒有任何固定關系。因此可以可以在任何通道任何點插入寄存器片,當然這會導致額外的周期延遲。使用寄存器片可以實現(xiàn)周期延遲(cycles of latency)和最大操作頻率的折中;使用寄存器片可以分割低速外設的長路徑
總結:
參見:
“https://blog.csdn.net/ivy_reny/article/details/56274412”
“http://www.cnblogs.com/lkiller/p/4773235.html”
總結
以上是生活随笔為你收集整理的AMBA、AHB、APB、AXI总线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。