高级可拓展接口(Advanced eXtensible Interface, AXI)
目錄
- 1. 功能介紹
- 2. 架構
- 2.1. 單主單從
- 2.2. 多主多從
- 3. 信號描述
- 3.1. AW
- 3.2. W
- 3.3. AR
- 3.4. R
- 3.5. B
- 4. 邏輯設計
- 4.1. 單通道傳輸
- 4.2. 多通道outstanding傳輸
- AR 與 R 通道協同
- AW、W 與 B 通道協同
- 4.3. 傳輸配置
- AWADDR 與 ARADDR
- AWLEN[7:0] 與 ARLEN[7:0]
- AWSIZE[2:0] 與 ARSIZE[2:0]
- AWBURST[1:0] 與 ARBURST[1:0]
- RRESP[1:0] 與 BRESP[1:0]
- 5. AXI3與AXI4的區別
《IHI0022H_amba_axi_protocol_spec》
AXI總線 詳細整理
AMBA3.0協議——AXI(Advanced eXtensible Interface)總線介紹
AXI_01 《AXI總線系列文章》由來
AXI3與AXI4區別及互聯
1. 功能介紹
AMBA中最重要的片內總線,適用于高性能、高帶寬、高工作頻率、低延遲系統,也是基于多主多從的架構與事務傳輸。
AXI的特性包括:
● 單通道體系,即控制通道與數據通道相互分離,可分別獨立控制和優化。并且各通道傳輸方向單一,減少延遲。
● 支持字節選通、非對齊數據訪問
● 只給出第一地址,亦可完成burst傳輸
● 基于傳輸ID實現亂序傳輸
● 允許電平同步
2. 架構
2.1. 單主單從
先講一個master、一個slave之間是如何通信的。
AXI將master與slave之間的控制信息和數據信息劃分為五個通道進行傳輸,這五個通道之間是時序獨立,這五個通道分別表示:讀控制通道AR、讀數據通道R、寫控制通道AW、寫數據通道W、寫反饋通道B
每個通道由好幾個信號組成
AXI的通道分解架構與APB、AHB不同,APB要求控制信息與數據信息時序對齊,AHB要求控制信息與數據信息差1拍構成流水。
如下圖
這五個通道都是基于valid & ready握手信號實現控制信息or數據信息的交互
其實就是標準握手協議中的寫時序,只有當valid與ready同時為高時才判定寫成功。
此處AXI則是每個通道在valid與ready同時為高時才判定傳輸成功。
| Master 向 Slave 傳輸,valid & ready握手 | |
| Master 向 Slave 傳輸,valid & ready握手 | 具備寫數據選通功能。且寫數據可通過FIFO緩存,無需等到寫反饋到來才發起新一輪寫 |
| Master 向 Slave 傳輸,valid & ready握手 | |
| Slave 向 Master 傳輸,valid & ready握手 | 含有讀數據,也含有讀響應表明讀傳輸的完成情況 |
| Slave 向 Master 傳輸,valid & ready握手 | 需對每個寫事務作響應 |
2.2. 多主多從
AXI也可實現多主多從的結構,類似于Bus Matrix
如下圖,Interconnect同時具備AXI master接口與AXI slave接口
實際上大多數系統的控制通道帶寬顯著小于數據通道帶寬,因而對于多主多從系統,通過共享控制通道、獨立數據通道實現系統性能和interconnect復雜性的平衡。
3. 信號描述
全局信號
| 外部 | 1 | |
| 外部 | 1 | 低電平復位 |
3.1. AW
| Master | AWID_WIDTH | 寫事務ID |
| Master | AWADDR_WIDTH | burst寫事務第一個WDATA的地址 |
| Master | 8 | 該數值+1就表示此次寫事務的WDATA個數 |
| Master | 3 | WDATA中有效byte大小 |
| Master | 2 | burst傳輸類型 |
| Master | 2 | 寫事務的原子特性 |
| Master | 4 | 寫事務在系統中運行的要求 |
| Master | 3 | 寫事務的保護屬性:特權、安全級別、訪問類型 |
| Master | 4 | 寫事務的服務質量標識符 |
| Master | 4 | 寫事務的區域指示符 |
| Master | USER_REQ_WIDTH | 自定義 |
| Master | 1 | AW所有控制信息有效 |
| Slave | 1 | AW所有控制信息準備接收 |
| bit | AXI AW通道的AWID位寬 |
| bit | AXI AW通道的AWADDR位寬 |
| bit | AXI AW通道的AWUSER和AR通道的ARUSER位寬 |
3.2. W
| Master | AWID_WIDTH | 寫事務ID,注意該信號AXI3具備,AXI4不具備 |
| Master | WDATA_WIDTH | 寫數據 |
| Master | WDATA_WIDTH/8 | 寫選通 |
| Master | 1 | 寫事務中的最后一個寫數據 |
| Master | USER_REQ_WIDTH | 自定義 |
| Master | 1 | W通道所有數據信息有效 |
| Slave | 1 | W通道所有數據信息準備接收 |
| bit | AXI W通道的WID位寬 |
| bit | AXI W通道的WDATA位寬 |
| bit | AXI W通道的WUSER位寬 |
3.3. AR
| Master | ARID_WIDTH | 讀事務ID |
| Master | ARADDR_WIDTH | burst讀事務第一個讀傳輸地址 |
| Master | 8 | 該數值+1就表示此次讀事務的RDATA個數 |
| Master | 3 | RDATA中有效byte大小 |
| Master | 2 | burst傳輸類型 |
| Master | 2 | 讀事務的原子特性 |
| Master | 4 | 讀事務在系統中運行的要求 |
| Master | 3 | 讀事務的保護屬性:特權、安全級別、訪問類型 |
| Master | 4 | 讀事務的服務質量標識符 |
| Master | 4 | 讀事務的區域指示符 |
| Master | USER_REQ_WIDTH | 自定義 |
| Master | 1 | AR通道所有控制信息有效 |
| Slave | 1 | AR通道所有控制信息準備接收 |
| bit | AXI AR通道的ARID位寬 |
| bit | AXI AR通道的ARADDR位寬 |
| bit | AXI AR通道的ARUSER位寬 |
3.4. R
| Slave | RID_WIDTH | 讀事務ID |
| Slave | RDATA_WIDTH | 讀數據 |
| Slave | 2 | 讀反饋,表明讀傳輸的狀態 |
| Slave | 1 | 讀事務中的最后一個讀數據 |
| Slave | USER_REQ_WIDTH | 自定義 |
| Slave | 1 | R通道所有數據信息有效 |
| Master | 1 | R通道所有數據信息準備接收 |
| bit | AXI R通道的RID位寬 |
| bit | AXI R通道的RDATA位寬 |
| bit | AXI R通道的RUSER位寬 |
3.5. B
| Slave | BID_WIDTH | 寫事務ID |
| Slave | 2 | 寫響應 |
| Slave | USER_REQ_WIDTH | 自定義 |
| Slave | 1 | B通道所有寫反饋信息有效 |
| Master | 1 | B通道所有寫反饋信息準備接收 |
| bit | AXI B通道的BID位寬 |
| bit | AXI B通道的BUSER位寬 |
4. 邏輯設計
4.1. 單通道傳輸
前面提到過對于每個通道而言,都是基于valid & ready實現握手,即valid拉高表示傳輸有效,必須等到ready也為高時才能拉低,表示完成傳輸
那么各通道之間是如何協同實現讀寫握手呢?見下
4.2. 多通道outstanding傳輸
outstanding意思是未完成的、未解決的。此處意思是讀寫握手中,上一次握手還未完成就可以發送下一次握手的信息,這樣依舊能保證正確的讀寫。這是AXI的一大特點,能夠提高工作效率。
例如先發寫數據再發寫地址、先發很多個寫數據再發其對應的寫地址。
以寫為例,APB中pwdata和paddr是時序對齊的,而且必須完成一次握手才能進行下一次。AHB的讀寫握手也是必須完成之后再來下一次,所以他倆都不是outstanding。而AXI的AW通道和W通道的控制信號可以一次性發送多個。
outstanding傳輸的實現機制是基于burst傳輸中的ID號。核心思想如下
● 多個控制信息burst通過ID相互區分,多個數據信息burst通過ID相互區分
● 每個控制信息burst在時間上的先后順序,必須與相應的數據信息burst在時間上的先后順序一致
● 相同的控制信息ID與數據信息ID相匹配,以實現一次訪問
以寫為例,先在AW通道發送3包寫控制信息,AWID分別為0、1、2,然后在W通道發送3包寫數據信息。即使寫控制和寫數據時序上不是對齊的,AXI slave依然可以根據AWID正確地將數據寫入地址中。同理,AXI slave在B通道作寫反饋時BID為0、1、2且BRESP都是OKAY,AXI master也能夠根據BID認為這3次寫成功了。
當寫訪問次數過多時,可能AXI master在AW通道發送了3包awaddr不同的寫控制信息,且AWID都是10,然后在W通道也發送了3包wdata不同的寫數據信息,WID也都是10。那么axi master必須保證這3包ID相同的寫控制和寫數據在時間上先后順序必須是相互對應的。
● 亂序傳輸(AXI3特有):不同ID的多個控制信息burst在時間上的先后順序可任意。不同ID的多個數據信息burst在時間上的先后順序可任意,如下圖
如果要實現亂序傳輸,顯然必須根據ID號緩存不同的控制信息,這樣一個FIFO就無法解決問題了,必須是帶有特定地址信息的RAM存儲控制信息,這樣的話就占用角度的資源,所以AXI4就砍掉了這個功能。
其實outstanding傳輸的本質就是如此,下面針對不同情景分別詳細闡述。
AR 與 R 通道協同
完成burst讀操作,需要滿足以下條件:
● 接受讀控制信息之后才能讀反饋,即在ARVALID與ARREADY同時為高之后,RVALID才能拉高
● AXI Slave要反饋的RID必須與AXI Slave收到的ARID匹配。相同的ARID要在時間上與相同的RID相匹配
● interconnect中,為每個AXI Master的ARID添加額外的位,以表明該包數據來自于哪個AXI Master,如下圖
就是你必須確定Slave收到了讀控制信息,才能返回讀數據
協議原文如下
Single-headed arrows point to signals that can be asserted before or after the signal at the start of the arrow.
Double-headed arrows point to signals that must be asserted only after assertion of the signal at the start of the arrow.
AW、W 與 B 通道協同
完成burst寫操作,必須滿足以下條件:
● 必須收到寫控制信息和寫數據信息,才能完成寫反饋,即在AWVALID與AWREADY同時為高、以及WVALID與WREADY同時為高之后,BVALID才能拉高
● AXI Master AW通道的寫控制信息發送順序要與W通道的寫數據信息發送順序一致,AWID順序要與BID順序一致
● interconnect中,為每個AXI Master的AWID、WID添加額外的位,以表明該包數據來自于哪個AXI Master
AXI4沒有WID所以不支持亂序傳輸
Single-headed arrows point to signals that can be asserted before or after the signal at the start of the arrow.
Double-headed arrows point to signals that must be asserted only after assertion of the signal at the start of the arrow.
4.3. 傳輸配置
下面對各傳輸信號的功能作介紹
AWADDR 與 ARADDR
表示burst傳輸第一個byte的地址,且Master只需提供第一個byte的地址。后續地址需要Slave來計算。
并且一次burst傳輸地址變化不可超過4KB,即’h8000
AWLEN[7:0] 與 ARLEN[7:0]
加1之后就分別表示burst寫數據長度和burst讀數據長度,同時規定了
● INCR類burst傳輸,AxLEN可為8’d0~8’d255
● WRAP類burst傳輸,burst長度只能為2、4、8、16之一,因此AxLEN取值必須為8’d1、8’d3、8’d7、8’d15 之一
● 一次burst傳輸地址變化不可超過4KB,即’h8000
AWSIZE[2:0] 與 ARSIZE[2:0]
這個與AHB中的HSIZE含義相同,表示burst傳輸中各數據有效byte數目
滿足公式Number_Bytes = 2 ^ AxSIZE;
| 3'b000 | 8 bits = 1 Byte | 數據傳輸有效大小為1 Byte |
| 3'b001 | 16 bits = 2 Byte | 數據傳輸有效大小為1 Half Word |
| 3'b010 | 32 bits = 4 Byte | 數據傳輸有效大小為1 Word |
| 3'b011 | 64 bits = 8 Byte | 數據傳輸有效大小為1 DoubleWord |
| 3'b100 | 128 bits = 16 Byte | 數據傳輸有效大小為4 Word |
| 3'b101 | 256 bits = 32 Byte | 數據傳輸有效大小為8 Word |
| 3'b110 | 512 bits = 64 Byte | 數據傳輸有效大小為16 Word |
| 3'b111 | 1024 bits = 128 Byte | 數據傳輸有效大小為32 Word |
AWBURST[1:0] 與 ARBURST[1:0]
表示burst傳輸的類型,包括三種
| 2'b00 | FIXED | 一次burst傳輸中地址和數據都不改變(寫burst各數據的WSTRB可各不相同) |
| 2'b01 | INCR | 遞增burst傳輸。AxADDR為起始地址,1<<AxSIZE(Byte)為地址遞增公差,AxLEN+1為burst傳輸的數據個數 |
| 2'b10 | WRAP | 回環burst傳輸,AxADDR以1<<AxSIZE(Byte)公差回環遞增AxLEN+1次 |
| 2'b11 | 保留 |
INCR模式的burst傳輸好說,地址是以AxSIZE(Byte)不斷遞增,每次burst傳輸是傳AxLEN+1個數據,于是就遞增AxLEN+1次。
但是WRAP是回環模式,意思是burst讀寫地址必須在一個離散范圍的內遞增,若到達了該范圍最大值,讀寫地址就返回到該范圍的最小值。
而這個最小值就叫作回環邊界,Wrap Boundary,而這個范圍的最大值就是下一個回環邊界。
那么這個回環邊界怎么算呢?
WrapBoundary=int(AxADDR(AxLEN+1)?2AxSIZE[2:0])?(AxLEN+1)?2AxSIZE[2:0]Wrap Boundary = int(\frac{AxADDR}{(AxLEN+1)·2^{AxSIZE[2:0]}})·(AxLEN+1)·2^{AxSIZE[2:0]}WrapBoundary=int((AxLEN+1)?2AxSIZE[2:0]AxADDR?)?(AxLEN+1)?2AxSIZE[2:0]
上述回環不等式的意思就是burst讀寫地址在[′h0,′h8000]['h0,'h8000][′h0,′h8000]內按照公差2AxSIZE[2:0]2^{AxSIZE[2:0]}2AxSIZE[2:0] byte構成的等差數列中,每(AxLEN+1)個地址構成一個回環。
所以說回環邊界一定是(AxLEN+1)?2AxSIZE[2:0]{(AxLEN+1)·2^{AxSIZE[2:0]}}(AxLEN+1)?2AxSIZE[2:0]的整數倍。那么對于任意一個讀寫地址,它所在的回環邊界一定是起始地址AxADDR除以(AxLEN+1)?2AxSIZE[2:0]{(AxLEN+1)·2^{AxSIZE[2:0]}}(AxLEN+1)?2AxSIZE[2:0]的商部分乘以(AxLEN+1)?2AxSIZE[2:0]{(AxLEN+1)·2^{AxSIZE[2:0]}}(AxLEN+1)?2AxSIZE[2:0]
如下圖,紅框表示回環的范圍
RRESP[1:0] 與 BRESP[1:0]
分別表示讀響應和寫響應,注意BRESP用于對一個burst的整個數據包傳輸做出響應,RRESP可用于對一個burst中的某一個data傳輸做出響應
個人認為這樣的協定可以更改,讓二者均表示一次burst的整個傳輸是否出現錯誤
原文如下:
For a write transaction, a single response is signaled for the entire burst, and not for each data transfer within the burst.
In a read transaction, the slave can signal different responses for different transfers in a burst. For example, in a burst of 16 read transfers the slave might return an OKAY response for 15 of the transfers and a SLVERR response for one of the transfers.
含義如下
| 2'b00 | OKAY | 訪問成功 |
| 2'b01 | EXOKAY | 獨占訪問成功 |
| 2'b10 | SLVERR | 傳輸失敗 |
| 2'b11 | DECERR | 表示interconnect無法解碼出AXI MASTER的片選信號。AXI協議建議設定一個default axi slave,用于反饋DECERR信號 |
5. AXI3與AXI4的區別
總結
以上是生活随笔為你收集整理的高级可拓展接口(Advanced eXtensible Interface, AXI)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新春特辑 | 数字经济专题合辑 报告下载
- 下一篇: 新华的学校计算机,新华计算机学校