001 AMBA 總線概述


AMBA總線協議是一套由ARM提供的互連規范,該規范標准化了各種IP之間的芯片通信機制。這些設計通常有一個或多個微處理器以及集成其他一些組件——內部存儲器或外部存儲器橋、DSP、DMA、加速器和各種其他外圍設備,如USB、UART、PCIE、I2C等。

AMBA協議的主要目的是用一種標准和高效的方法來重用這些跨多個設計的IP。

學習AMBA協議的第一步是了解這些不同的協議在哪里使用,是如何演進的,以及它們適合什么樣SOC設計

一、AMBA總線發展史

AMBA是由ARM公司研發推出的一種高級微控制器總線架構(Advanced Microcontroller Bus Architecture)。

  • AMBA 1.0
    • ASB 和 APB
  • AMBA 2.0
    • AHB, ASB 和 APB
  • AMBA 3.0
    • AMBA Advanced eXtensible Interface (AXI)
  • AMBA 4.0
    • AXI4,AXI4-lite,AXI4-stream,ACE,ACE-lite
  • AMBA 5.0
    • AXI5,AXI5-lite,ACE5,ACE5-lite,ACE5-liteDVM

下圖展示了傳統基於AMBA2.0的SOC設計,它使用AHB(高級高性能)協議進行高帶寬互連,以及針對低帶寬外圍互連的APB(高級外圍總線)協議。

隨隨着越來越多的IP集成到SOC設計中,讀寫共享的AHB、APB總線已經無法滿足互聯需求了。2003年,AMBA3.0引入了點對點連接協議——AXI(高級可擴展接口)。此外在2010年,又推出了一個增強版——AXI4。下圖說明了協議的演變以及行業中的SOC設計趨勢。

下圖說明了如何使用AXI互連來構建各種IP通信的的SOC。與以前的AHB/ASB總線相比,AXI互連有助於提高連接數量。

在移動和智能手機時代發生了進一步的演進,SOC集成了2/4/8核處理器和共享cache,並且需要跨內存子系統的硬件管理一致性。這導致了在AMBA修訂版4中引入了ACE(AXI一致性協議擴展)。

在當前HPC和數據中心市場的異構計算時代,單個芯片上集成越來越多的處理器核心以及GPU、DSP、FPGA、內存控制器和IO子系統。2013年,AMBA5引入了CHI協議,作為AXI/ACE協議的重新設計。基於信號的AXI/ACE協議被新的基於包的CHI協議所取代。

二、AMBA總線組成

ARM已經開源了所有的協議,所有的規范都可以從ARM的網站上免費下載。

1、ASB:ASB總線是位於APB總線架構之上的用於高性能的總線協議,具有突發連續傳輸,單管道數據傳輸,多總線主控制器等特點。

ASB總線通過DMA和DSP,允許在總線上存在一個或多個主控制器。雖然APB總線上可以掛接慢速外設,但是也允許在ASB上掛接一些慢速外設作為從設備,不過它們通常還是掛接在APB總線上。

  • 高速總線
  • 流水線操作
  • 支持多個總線主設備
  • 支持burst傳輸
  • 總線帶寬:8、16、32bit/s
  • 三態、雙向總線(不適合做DFT)
  • 上升沿或下降沿觸發

2、APB:高級外圍設備總線(APB)用於連接低帶寬的外圍設備。它是一個簡單的非流水線協議。讀寫操作共享同一組信號,不支持burst數據傳輸。最新的規范(APB2.0)可以在ARM網站上找到,是最容易學習的AMBA 協議。

  • 低速總線、低功耗
  • 接口簡單
  • 在Bridge中鎖存地址信號和控制信號
  • 適用於多種外設
  • 上升沿觸發

3、AHB:高級高性能總線(AHB)用於連接共享總線上需要更高帶寬的組件。這些slave組件可以是內部內存或外部內存接口、DMA、DSP等。AHB可以通過burst數據傳輸來獲得更高的帶寬。

  • 高速總線,高性能
  • 2級流水線操作
  • 支持最多16個總線主設備
  • 支持burst傳輸
  • 總線帶寬:8、16、32、64、128bit/s
  • 上升沿觸發

4、AHB-lite協議是AHB的一個簡化版本。簡化后只支持一個主設計,這消除了對任何仲裁、重試、分割事務等的需求。

5、高級可擴展接口(AXI)適合於高帶寬和低延遲互連。這是一個點對點的互連,並克服了AHB、APB等共享總線協議在可連接的代理數量方面的限制性。該協議支持多個outstanding的數據傳輸、burst數據傳輸、單獨的讀寫通道和支持不同的總線寬度。

6、AXI-lite協議是AXI的簡化版本,簡化后不支持突發數據傳輸。

7、AXI-stream協議是AXI協議的另一種風格,它只支持數據流從master 流到slave。與完整的AXI或AXI-lite不同,AXI-stream 協議中沒有單獨的讀/寫通道,因為其目的是只在一個方向上流。

8、ACE-AXI協議是AXI4協議的擴展,應用於在一個芯片上集成多個CPU核心與一致性cache的場景。ACE協議擴展了AXI讀寫數據通道,同時引入了單獨的snoop 地址、snoop 數據和snoop 響應通道。這些額外的通道提供了實現基於snoop 的一致性協議的機制。

9、ACE-Lite—對於沒有自己cache的agents ,但仍屬於可共享一致性域的一部分,如DMA或網絡接口agent,使用ACE-lite協議實現這種“單向”一致性。

10、CHI—ACE協議作為AXI的擴展而開發,以支持一致性互連。ACE協議使用了master/slave之間的信號電平通信,因此互連需要大量的線和增加的通道來進行snoops 和響應。這對於具有2/4核移動SOC 的小一致性clusters非常有效。隨着SOC上集成越來越多的一致性clusters ——AMBA5修訂版引入了CHI協議。CHI協議使用基於分層分組的通信協議,具有協議、鏈路層和物理層實現,還支持基於QoS的流控制和重試機制。

其中AXI是在AMBA3.0的協議中增加的,熟悉xilinx FPGA的小伙伴們應該是比較熟悉的,可以用於ARM和FPGA的高速數據交互。剩下的三種是在AMBA2.0協議中定義的總線標准。AHB是高級高性能總線,通常用於CPU和高性能設備之間的交互,類比於現代PC的北橋,ASB常用於高性能系統模塊間的交互,在開發中相比剩下的幾種不是非常常用。而APB是高級外設總線,通常和AHB相連接,來訪問一些低速的外設。

三、基於AMBA 的典型微控制器

下圖展示了一個典型的基於AMBA的微控制器架構。

 

舉個栗子,下圖中程序儲存在Nor flash中,ARM通過AHB控制高帶寬外部存儲器把程序通過橘黃色的線讀到RAM中,隨后ARM在通過AHB從RAM中讀取程序,再通過AHB2APB橋來通過APB訪問低速外設。

 

再舉個經典的DMA的例子,如下圖所示:

DMA是個很特殊的模塊,他既有AHB master端口又有slave端口,一個DMA搬運從memory1中數據到memory2的過程如下流程:

  1. CPU通過DMA的slave端口去檢查DMA是否IDLE,若IDLE則對DMA進行配置,主要是配置DMA寄存器中的source addr,destination addr和size;
  2. 隨后DMA通過master端口去讀取memory1中對應的source addr的數據;
  3. 最后DMA通過master端口去向memory2對應的destination addr去寫數據;
  4. 最后一次傳輸完成會向CPU發送一個中斷信號提醒CPU完成了一次傳輸;注意中斷信號是不走總線的,中斷信號直連到CPU中的內核中斷源。

四、術語

下面的條目貫穿整個規范中都有用到。
總線周期 總線周期是總線時間的基本單元並且對於 AMBA AHB 或者 APB 協議的描述目的是定義為從上升沿到上升沿的轉移。 ASB 的總線周期定義為從下降沿到下降沿的轉移。總線信號時序參考於總線周期時鍾。
總線傳輸 AMBA AHB 或者 ASB 總線傳輸是對數據目標的讀寫操作,可能會持續一個或者多個總線周期。總線傳輸在收到從機地址的完成響應后終止。AMBA ASB 總線支持的傳輸大小包括字節( 位)、半字( 16 位)、字( 32 位)。 AMBA AHB 又支持較寬的數據傳輸,包括 64 位和 128 位的數據傳輸。 AMBA APB 總線傳輸是對數據目標的讀寫操作,總是需要 2個總線周期。
突發操作 突發操作定義為一個或多個數據傳輸,由總線主機發起,在地址空間增加時傳輸寬度保持一致。每次傳輸增加的(地址)步長由傳輸大小決定(字節,半字,字),對於 APB 而言不支持突發操作。 

五、AMBA總線信號

1、AMBA信號名稱

所有 AMBA 信號的命名都用名稱的第一個字母來指示信號和哪個總線相關聯。信號名稱中用一個小寫的 表示該信號低電平有效,否則信號的名稱總是用大寫字母來表示。
測試信號有一個前綴T而與總線類型無關。關於測試信號的更多信息請參考第六章AMBA測試方法。

2、AHB信號前綴

 

H 表示一個AHB信號。

3、ASB信號前綴

 

 4、APB信號前綴

六、參考資料

1、https://new.qq.com/omn/20210725/20210725A08YNA00.html

2、https://zhuanlan.zhihu.com/p/155629044

3、ABMA v2.0總線規范(中文版).

4、https://wenku.baidu.com/view/bbacbd36e109581b6bd97f19227916888586b999.html

5、https://www.cnblogs.com/biglucky/p/4135567.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM