03_Introduction_to_AMBA_AXI
思考:
1、什么是AMBA、AHB、APB、ASB、AXI,它們各有什么特點?
2、什么是AXI4、AXI4-Lite、AXI4-Stream、AXI5、AXI5-Lite?
3、AMBA 4 規范? AMBA 3 規范? AMBA 2.0 規范?
4、什么是ACE5、ACE5-LiteDVM、ACE5-Lite、ACE5-Lite、AXI5、AXI5-Lit?
目錄
- 術語
- 1、簡介
- 2、AMBA是什么? 為什么要用AMBA?
- 2.1 哪些地方使用AMBA?
- 2.2 AMBA的有點?
- 2.3 AMBA的發展歷史
- 2.3.1 AMBA 1
- 2.3.2 AMBA 2
- 2.3.3 AMBA 3
- 2.3.4 AMBA 4
- 2.3.5 AMBA 5
- 3 AXI protocol overview
- 3.1 AXI in a multi-master system
- 3.2 AXI channels
- 3.3 Main AXI features
- 4 Channel transfers and transactions
- 4.1 通道握手 :Channel handshake
- 4.2 transfers和transactions的區別
- 4.3 通道傳輸示例
- 4.4 Write transaction: 單個數據項
- 4.5 Write transaction: 多個數據項
- 4.6 Read transaction: 單個數據項
- 4.7 Read transaction: 多個數據項
- 4.8 Active transactions
- 5 Channel signals
- 5.1 Write channel signals
- 5.2 Read channel signals
- 5.3 數據大小、長度和burst類型
- 5.4 Protection level support
- 5.5 Cache support
- 5.6 Response signaling
- 5.7 Write data strobes
- 5.8 Atomic accesses with the lock signal
- 5.9 Quality of service
- 5.10 Region signaling
- 5.11 User signals
- 5.12 AXI channel dependencies
- 6 Atomic accesses
- 6.1 Locked accesses
- 6.2 Exclusive accesses
- 6.3 Exclusive access hardware monitor operation
- 6.4 Exclusive transaction pairs: both pass
- 6.5 Exclusive transaction pairs: one pass, one fail
- 7 Transfer behavior and transaction ordering
- 7.1 Examples of simple transactions
- 7.2 Transfer IDs
- 7.3 Write transaction ordering rules
- 7.4 Read transaction ordering rules
- 7.5 Read and write channel ordering
- 7.6 Unaligned transfer start address
- 7.7 Endianness support
- 7.8 Read and write interface attributes
術語
Advanced Microcontroller Bus Architecture (AMBA) —高級微控制器總線架構
Advanced System Bus (ASB)
Advanced Peripheral Bus (APB)
Advanced High-performance Bus (AHB)
Advanced Trace Bus (ATB)
Advanced eXtensible Interface (AXI)
AXI Coherency Extensions (ACE)
AMBA 5 Coherent Hub Interface (CHI)
AHB-Lite
1、簡介
AMBA(高級微控制器總線架構)是一種 免費提供的 開放標準,用于連接和管理片上系統 (SoC) 中的功能塊。它有助于多處理器設計的一次性開發,具有大量控制器和外設。
AMBA 規范是免版稅的、獨立于平臺的,可用于任何處理器架構。由于其廣泛采用,AMBA 擁有強大的合作伙伴生態系統,可確保來自不同設計團隊和供應商的 IP 組件之間的兼容性和可擴展性。
本文介紹了高級微控制器總線架構 (AMBA) AXI4 的主要特性,重點介紹了與之前版本 AXI3 的不同之處。 本文解釋了可幫助您實現 AXI4 協議的關鍵概念和詳細信息。
在本文中,我們描述了:
- AMBA 是什么。
- 為什么AMBA 在現代SoC 設計中如此受歡迎。
- transfers and transactions的概念,這是AMBA操作的基礎。
- 不同的通道信號以及它們提供的功能。
- 獨占訪問傳輸,允許多個主設備同時訪問同一個從設備。
- AMBA 協議規定的規則和條件。
- 一些屬性和對常用元素的支持(如mixed endian structures)
2、AMBA是什么? 為什么要用AMBA?
Arm 高級微控制器總線架構 (AMBA) 是一種開放標準的片上互連規范,用于片上系統 (SoC) 設計中功能塊的連接和管理。
本質上,AMBA 協議定義了功能塊如何相互通信。
下圖顯示了 SoC 設計的示例。 該 SoC 有幾個功能塊,它們使用 AMBA 協議(如 AXI4 和 AXI3)相互通信:
2.1 哪些地方使用AMBA?
AMBA簡化了multiple processors、controllers 、peripherals設計和開發。隨著時間的推移,AMBA的使用遠遠超出了微控制器的范圍
2.2 AMBA的有點?
AMBA有很多好處:
- Efficient IP reuse (高效的 IP 重用): AMBA規范了接口,以至于數以千的SOCs和IPs都可以使用AMBA Interface
- Flexibility (靈活性) : 比較靈活的規范和接口定義
- Compatibility (兼容性):一個標準的接口規范,以至于在不同的IP直接得到兼容
- Support () :AMBA 得到很好的支持。 它在整個半導體行業得到廣泛實施和支持,包括來自第三方 IP 產品和工具的支持
- Bandwidth (): 在同步系統中,最大帶寬受時鐘速度和數據總線寬度限制
- Latency ()
2.3 AMBA的發展歷史
AMBA 多年來不斷發展以滿足處理器和新技術的需求,如下圖所示:
2.3.1 AMBA 1
Arm 在 1990 年代后期推出了 AMBA。 第一個 AMBA 總線是高級系統總線 (ASB) 和高級外圍總線 (APB)。 ASB 已被更新的協議取代,而 APB 至今仍在廣泛使用。
APB 專為低帶寬控制訪問而設計,例如,在系統外圍設備上注冊接口。 該總線具有簡單的地址和數據階段以及低復雜度的信號列表
2.3.2 AMBA 2
1999 年,AMBA 2 添加了 AMBA 高性能總線 (AHB),這是一種單時鐘邊緣協議。 AHB 上的簡單事務由地址階段和后續數據階段組成。 對目標設備的訪問通過 MUX 進行控制,允許一次訪問一個主設備。 AHB 是為了性能而流水線化的,而 APB 不是為了設計簡單而流水線化的。
2.3.3 AMBA 3
2003 年,Arm 推出了第三代 AMBA 3,其中包括 ATB 和 AHB-Lite。 高級跟蹤總線 (ATB) 是 CoreSight 片上調試和跟蹤解決方案的一部分。 AHB-Lite 是 AHB 的一個子集。 該子集簡化了具有單個主設備的總線的設計。 高級可擴展接口 (AXI) 是 AMBA 3 規范中定義的第三代 AMBA 接口,針對高性能、高時鐘頻率的系統設計。 AXI 包括使其適用于高速亞微米互連的功能
注意
(1)、高級跟蹤總線 (ATB) 是 CoreSight 片上調試和跟蹤解決方案的一部分
(2)、AHB-Lite 是 AHB 的一個子集。 該子集簡化了具有單個主設備的總線的設計
2.3.4 AMBA 4
2010 年,引入了 AMBA 4 規范,從 AMBA 4 AXI4 開始,然后是 2011 年的 AMBA 4 AXI 一致性擴展 (ACE)。ACE 通過引入系統范圍一致性的附加信號擴展了 AXI。 這種系統范圍的一致性允許多個處理器共享內存并支持 big.LITTLE 處理等技術。 同時,ACE-Lite 協議支持單向一致性。 單向一致性使網絡接口能夠從完全一致的 ACE 處理器的緩存中讀取數據。 AXI4-Stream 協議設計用于從主設備到從設備的單向數據傳輸,減少信號路由,非常適合在 FPGA 中實現。
注意
(1)、AXI 擴展了一致性附件信號,得到ACE
(2)、ACE-lite : 單項一致性
(3)、AXI-stream: 單向數據傳輸,減少信號路由
2.3.5 AMBA 5
2014 年,引入了 AMBA 5 Coherent Hub Interface (CHI) 規范,具有重新設計的高速傳輸層和旨在減少擁塞的功能。 CHI 協議已經有多個版本,每個新版本都增加了新的功能。
2016年,AHB-Lite協議更新為AHB5,補充Armv8-M架構,將TrustZone安全基礎從處理器擴展到系統。
2019 年,引入了 AMBA 自適應流量配置文件 (ATP)。 ATP 補充了現有的 AMBA 協議,用于以簡潔、簡單和可移植的方式對高級內存訪問行為進行建模。
3 AXI protocol overview
AXI 是一種接口規范,它定義了 IP 塊的接口,而不是互連本身。下圖顯示了如何使用 AXI 連接互連組件:
在AX3和AXI4中,只有兩種AXI接口類型,master和slave。 這些接口類型是對稱的。 所有 AXI 連接都在主接口和從接口之間。
AXI 互連接口包含相同的信號,這使得不同 IP 的集成相對簡單。 上圖顯示了 AXI 連接如何連接主接口和從接口。 直接連接在沒有額外邏輯的情況下提供了主從組件之間的最大帶寬。 使用 AXI,只需驗證一個協議。
3.1 AXI in a multi-master system
下圖展示了SOC系統中的一個簡單的例子,由master、slave、Interconnect組成。
Arm 處理器是master的一個示例,內存控制器是slave的一個示例。AXI 協議定義了master和slave之間點對點連接的信號和時序。
AXI 協議是點對點規范,而不是總線規范。 因此,它只描述了接口之間的信號和時序。
上圖顯示每個 AXI master連接到單個 AXI slave接口。 在涉及多個主設備和從設備的情況下,需要互連結構。 該互連結構還實現了master接口和slave接口,其中實現了 AXI 協議
下圖顯示互連是一個更復雜的系統,需要自己的 AXI 主從接口與外部功能塊通信:
而下圖又展示了一個帶有各種處理器和功能塊的SoC示例:
上圖顯示了使用 AXI 的所有連接。 可以看到 AXI3 和 AXI4 在同一個 SoC 中使用,這是常見的做法。 在這種情況下,互連執行不同 AXI 接口之間的協議轉換。
3.2 AXI channels
AXI 規范描述了兩個接口之間的點對點協議:主接口和從接口。
下圖顯示了每個 AXI 接口用于通信的五個主要通道:
寫操作使用以下通道:
- master通過Write Address (AW)發送一個地址,并通過Write Data (W)發送數據到slave
- slave接受數據并寫入到指定的地址。一旦slave短完成了寫操作,它將會返回一個respond吸納后到Write Response (B)
讀操作使用以下通道:
- master通過 Read Address (AR)發送它想要讀取的地址。
- slave從請求的地址發送到Read Data ? 通道
Slave也是可以發送error到Read Data ? 通道的,例如 address is not valid、data is corrupted、或者是沒有權限訪問。
每一個通道都是獨立的。所以Write Respense是單獨的一個通道。然鵝,為社么沒有Read Response,那是因為read response屬于Read Date的一部分。
使用單獨的地址和數據通道進行讀寫傳輸有助于最大化接口的帶寬。 讀寫通道組之間沒有時序關系。 這意味著讀序列可以與寫序列同時發生。 這五個通道中的每一個都包含多個信號,每個通道中的所有這些信號都具有如下前綴:
- AW for signals on the Write Address channel
- AR for signals on the Read Address channel
- W for signals on the Write Data channel
- R for signals on the Read Data channel
- B for signals on the Write Response channel
(B代表buffered,因為從服務器的響應發生在所有寫操作完成之后 )
3.3 Main AXI features
AXI協議有幾個關鍵特性,旨在提高數據傳輸和事務的帶寬和延遲,如下所示:
- Multiple outstanding addresses
AXI 允許Multiple outstanding addresses。 這意味著 master 可以發出事務而無需等待較早的事務完成。 這可以提高系統性能,因為它可以并行處理事務。 - 地址和數據操作之間沒有嚴格的時序關系
對于 AXI,地址和數據操作之間沒有嚴格的時序關系。 這意味著,例如,主設備可以在寫地址通道上發布寫地址,但沒有時間要求主設備何時必須提供相應的數據以在寫數據通道上進行寫入。 - 支持未對齊的data傳輸
- Out-of-order transaction completion
對于由寬度大于一個字節的數據傳輸,訪問的第一個字節可能與自然地址邊界不對齊。 例如,以字節地址 0x1002 開始的 32 位數據包與自然的 32 位地址邊界不對齊。 - Burst transactions based on start address
AXI master只發布第一次傳輸的起始地址。 對于任何后續傳輸,slave設備將根據burst類型計算下一個傳輸地址
4 Channel transfers and transactions
本節解釋了AXI通道的握手原則,并展示了握手如何成為所有讀和寫事務的基礎機制。
4.1 通道握手 :Channel handshake
AXI4 協議定義了五個不同的通道,如 AXI 通道中所述。 所有這些通道共享基于 VALID 和 READY 信號的相同握手機制,如下圖所示:
4.2 transfers和transactions的區別
在設計互連結構時,您必須了解正在連接的主設備和從設備的功能。了解此信息后,您可以包含足夠的緩沖、跟蹤和解碼邏輯,以支持各種數據傳輸排序可能性,從而提高更快設備的性能。
使用標準術語可以更容地理解連接組件之間的交互。 AXI 對轉賬和交易進行了區分:
傳輸是單次信息交換,需要一次VALID和READY信息握手
一個transactions是一個完整的突發傳輸(an entire burst of transfers),包括address transfer、data transfers、response transfer。下圖顯示了一個transactions:
4.3 通道傳輸示例
本節檢查源和目標之間可能握手的一些示例。它顯示了符合 AXI 協議規范的VALID和READY序列的幾種可能組合。
在第一個示例中,如下圖所示,我們有一個時鐘信號,然后是一個信息總線,然后是VALID和READY信號:
此示例具有以下事件序列:
- 在時鐘周期2, VALID信號被置位,表示信息通道上的數據是有效的
- 在時鐘周期 3,即下一個時鐘周期, READY信號被置位。
- 握手在時鐘周期 4 的上升沿完成,因為READY和VALID信號被斷言
下圖顯示了另一個示例:
此示例具有以下事件序列:
- 在時鐘周期 1, READY信號有效
- VALID信號直到時鐘周期 3 才有效。
- 握手在時鐘周期 4的上升沿完成,此時VALID和READY斷言
最后一個示例顯示在時鐘周期 3 期間有效和就緒信號都被斷言,如下圖所示:
同樣,握手在時鐘周期 4 的上升沿完成,此時VALID和READY都被斷言。
在所有三個示例中,當在時鐘信號的上升沿斷言READY和VALID時,信息將沿通道傳遞。
讀寫握手必須遵守以下規則:
- ?在斷言VALID之前,源不能等待READY被斷言。
- 目的地可以在斷言READY之前等待VALID被斷言
這些規則意味著READY可以在VALID之前或之后斷言,甚至可以同時斷言。
4.4 Write transaction: 單個數據項
本節介紹單個數據項的寫入事務的過程,以及用于完成事務的不同通道。
本次寫事務涉及以下渠道:
- 寫地址(AW)
- 寫入(W)
- 寫響應(B)
首先,在寫地址(AW)通道上進行握手,如下圖所示:
這個握手是主機將寫入地址傳遞給從機的地方。握手具有以下事件序列:
- 主機將地址放在AWADDR上,并在時鐘周期 2 中斷言AWVALID 。
- 從機在時鐘周期 3 中置位 AWREADY以指示其接收地址值的能力。
- 握手在時鐘周期 4 的上升沿完成。
在第一次握手之后,主設備通過寫入(W)通道將數據傳輸到從設備,如下圖所示:
數據傳輸具有以下事件序列:
- 從機等待數據, WREADY在時鐘周期 n 中設置為高電平
- 主機將數據放在WDATA總線上,并在時鐘周期 n+2 中斷言WVALID 。
- 握手在時鐘周期 n+3 的上升沿完成
最后,從機使用寫響應(B)通道,在收到所有WDATA后確認寫事務已完成。此響應如下圖所示:
寫響應具有以下事件序列:
- 主設備斷言BREADY
- slave驅動BRESP指示寫事務成功或失敗,并斷言有效
握手在時鐘周期 n+3 的上升沿完成。
4.5 Write transaction: 多個數據項
AXI 是一種基于突發的協議,這意味著可以在單個事務中傳輸多個數據。我們可以在AW通道上傳輸單個地址來傳輸多個數據,以及相關的突發寬度和長度信息。
下圖顯示了多數據傳輸的示例:
在這種情況下, AW通道表示三個傳輸的序列,而在W通道上,我們看到三個數據傳輸。
主機將WLAST驅動為高電平以指示最終的WDATA。這意味著從設備可以對數據傳輸進行計數,也可以只監控WLAST。
一旦接收到所有WDATA傳輸,從機在B通道上給出單個BRESP值。一個單一的BRESP覆蓋整個突發。如果從機確定任何傳輸包含錯誤,它必須等到整個突發完成后才通知主機發生錯誤。
4.6 Read transaction: 單個數據項
本節詳細介紹單個數據項的讀取事務的過程,以及用于完成事務的不同通道。
本次寫事務涉及以下渠道:
- 讀取地址(AR)
- 讀?
首先,在讀地址(AR)通道上進行了一次握手,如下圖所示:
握手具有以下事件序列:
- 在時鐘周期 2 中,主設備在ARADDR 上將讀取的地址傳送給從設備,并且斷言ARVALID。
- 在時鐘周期 3 中,從機斷言ARREADY表示它已準備好接收地址價值。
握手在時鐘周期 4 的上升沿完成。
接下來,在讀取?通道上,從設備將數據傳輸到主設備。下圖顯示數據傳輸過程:
數據傳輸握手具有以下事件序列:
- 在時鐘周期 n 中,主機通過置位 RREADY來指示它正在等待接收數據。
- 從機取回數據并在時鐘周期 n+2將其放在RDATA上。在這種情況下,因為這是在單個數據事務中,從機也將RLAST信號設置為高電平。同時,slave 使用RRESP向 master 指示讀取事務的成功或失敗,并斷言RVALID。
- 因為RREADY已經被主機斷言,握手在上升沿完成時鐘周期 n+3。
4.7 Read transaction: 多個數據項
AXI 協議還允許在同一事務中讀取多個數據傳輸的突發。這類似于寫入事務:多個數據項中描述的寫入突發。
下圖顯示了突發讀取傳輸的示例:
在此示例中,我們在AR通道上傳輸單個地址以傳輸多個數據項,以及相關的突發寬度和長度信息。
這里, AR通道表示三個傳輸的序列,因此在R通道上,我們看到從從設備到主設備的三個數據傳輸。
在R通道上,從機將數據傳輸到主機。在本例中,主設備正在等待數據,如RREADY設置為高電平所示。從機驅動有效的
讀事務和寫事務之間的一個區別是,對于讀事務,事務中的每個傳輸都有一個RRESP響應。這是因為,在寫事務中,從機必須將響應作為B通道上的單獨傳輸發送。在讀事務中,從機使用相同的通道將數據發送回主機并指示讀操作的狀態。RDATA并為每次傳輸斷言RVALID 。
如果交易中的任何傳輸指示錯誤,則仍必須完成交易的全部指示長度。不存在提前突發終止這樣的事情。
4.8 Active transactions
活躍事務也稱為未完成事務。
主動讀取事務是讀取地址已被傳送,但在當前時間點最后一次讀取數據尚未傳送的事務。
對于讀取,數據必須在地址之后,因此事務開始時有一個簡單的參考點。如下圖所示:
對于寫事務,數據可以在地址之后,但也允許前導寫數據。因此,寫入事務的開始可以是以下任何一種:
- 寫地址的傳輸(The transfer of the write address)
- 前導寫入信息的傳輸(The transfer of leading write information)
因此,主動寫事務是寫地址或前導寫數據已被傳送,但寫響應尚未傳送的事務。
下圖顯示了一個活動的寫事務,其中寫地址已被傳輸,但寫響應尚未被傳輸:
下圖顯示了一個活動的寫事務,其中領先的寫數據已被傳輸,但寫響應尚未被傳輸:
5 Channel signals
本節介紹主要的 AXI 信號和屬性,并解釋如何使用它們來提高系統性能。
AXI 協議定義了五個通道:三個用于寫入信號,兩個用于讀取信號。
5.1 Write channel signals
用于寫入事務的通道是:
- 寫地址
- 寫入數據
- 寫響應
下表顯示了寫入地址通道信號:
下表顯示了寫入數據通道信號:
下表顯示了寫響應通道信號:
每個通道中的所有信號都具有相同的前綴:
- AW用于寫入地址通道
- W用于寫入數據通道
- B表示寫響應通道
對于寫入通道,AXI3 協議和 AXI4 協議有一些區別:
- 對于寫地址通道,AXI4 協議的AWLEN信號更寬。因此,AXI4 能夠產生比 AXI3 更長的突發。
- AXI4 將AWLOCK信號減少到一個位以僅適應獨占傳輸,因為不支持鎖定傳輸。
- AXI4 將AWQOS信號添加到AW通道。該信號支持質量的概念, AXI4 協議中的服務 (QoS)。
- AXI4 將AWREGION信號添加到AW通道。該信號支持從屬區域允許來自單個物理從接口的多個邏輯接口。
- AXI4 從W通道中移除WID信號。這是因為寫入數據重新排序不是允許的時間更長。
- AXI4 將用戶定義的信號添加到每個通道
5.2 Read channel signals
用于讀取事務的通道是:
- 讀取地址
- 讀取數據
下表顯示了讀取地址通道信號:
下表顯示了讀取數據通道信號:
每個通道中的所有信號都具有相同的前綴:
- AR讀取地址通道
- R用于讀取數據通道
讀取通道的 AXI3 協議和 AXI4 協議有一些區別:
- 對于AXI4 協議,讀取地址長度信號ARLEN更寬。因此,AXI4 能夠產生比 AXI3 更長的讀取突發。
- AXI4 將ARLOCK信號減少到一個位以僅適應獨占傳輸,因為不支持鎖定傳輸。
- 與寫入通道信號一樣,服務質量和從屬區域的概念適用于讀取事務。它們使用AR通道中的ARQOS和ARREGION信號
- AXI4 將用戶定義的信號添加到兩個讀取通道。
5.3 數據大小、長度和burst類型
5.4 Protection level support
5.5 Cache support
5.6 Response signaling
5.7 Write data strobes
5.8 Atomic accesses with the lock signal
5.9 Quality of service
5.10 Region signaling
5.11 User signals
5.12 AXI channel dependencies
6 Atomic accesses
6.1 Locked accesses
6.2 Exclusive accesses
6.3 Exclusive access hardware monitor operation
6.4 Exclusive transaction pairs: both pass
6.5 Exclusive transaction pairs: one pass, one fail
7 Transfer behavior and transaction ordering
7.1 Examples of simple transactions
7.2 Transfer IDs
7.3 Write transaction ordering rules
7.4 Read transaction ordering rules
7.5 Read and write channel ordering
7.6 Unaligned transfer start address
7.7 Endianness support
7.8 Read and write interface attributes
總結
以上是生活随笔為你收集整理的03_Introduction_to_AMBA_AXI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02-Armv8-A Instructi
- 下一篇: 05-异常模型