0、緒論
在 AMBA 系列之 AXI 總線協議初探 中,了解到 AXI 總線交互分為 Master / Slave 兩端,而且標準的 AXI 總線支持不同的位寬,既然是總線,那么必須要支持總線互聯,多 Master,多 Slave的場景,在 AMBA AXI Specification 的 “AXI Architecture-》Interface and Interconnect ”章節 描述了 Interconnect 的含義;用于AXI總線互聯,而且給出了一些基本的互聯拓撲結構:
1、共享地址和數據總線
2、共享地址總線,多個數據總線
3、多個地址總線、多個數據總線
根據實際系統的需求,不同的交互速度和互聯復雜程度來折中選擇方案;
換句話來說,實際的工程中,一個(或者多個)實際的主設備有 AXI Master 控制器,一個(或者多個)從設備有 AXI Slave 控制器,他(們)之間通過 Interconnect 作為橋梁,制定一套互聯的規矩(數據/地址總線等);我們可以把這個 AXI Interconnect 理解為一個獨立的 IP Core 負責一些互聯的事務;
Xilinx 定義了一套它的 AXI Interconnect IP,在 Xilinx 官方網站有對這個 IP 的介紹:
https://china.xilinx.com/products/intellectual-property/axi_interconnect.。.
Xilinx 的 AXI Interconnect IP Core 核心,由 Product Guide 095 (PG095)來描述:
https://www.xilinx.com/support/documentation/ip_documentation/axi_interc.。.
Xilinx 的 AXI Interconnect IP 和 Vivado Design Suite捆綁,產品描述:
包含在Vivado 和 ISE 設計套件中,不收取額外費用
AXI Interconnect IP 將一個或多個 AXI 存儲器映射的主器件連接到一個或多個存儲器映射的從器件。AXI 接口符合 ARM? 的 AMBA? AXI 第 4 版規范,包括 AXI4-Lite 控制寄存器接口子集。Interconnect IP 僅用于存儲器映射傳輸;AXI4-Stream 傳輸不適用。AXI Interconnect IP 可作為嵌入式開發套件 (EDK) 中 Vivado? IP 目錄中的處理器內核使用,或者作為 CORE Generator? IP 目錄中的獨立內核使用。
AXI4-Stream 互聯參考:《AXI4-Stream Infrastructure IP Suite LogiCORE IP Product Guide (PG085)》
Product Guide 095 (PG095)中具體描述了 AXI Interconnect 支持的功能:
AXI互聯IP核允許任意AXI主設備和AXI從設備的連接,可以根據數據位寬、時鐘域和 AXI Sub-protocol 進行轉換。當外部主設備或從設備的接口特性不同于互聯模塊內部的crossbar switch的接口特色時,相應的基本模塊(Infrastructure cores)就會被自動的引入來執行正確的轉換;
支持的 Feature 如下:
AXI Crossbar:將一個或者多個相似的 AXI memory-mapped Master 設備連接到一個或者多個相似的AXI memory-mapped Slave 設備,也就是 Masters 和 Slaves 的互聯;
AXI Data Width Converter:將一個AXI memory-mapped Master 連接到一個數據位寬不同的AXI memory-mapped Slave 設備;
AXI Clock Converter:將一個 AXI memory-mapped Master 連接到一個不同時鐘域(Clock domain)的 AXI memory-mapped Slave設備;
AXI Protocol Converter:將 AXI4、AXI3 或者 AXI4-Lite 協議的 Master 連接到不同 AXI 協議的內存映射 Slave 設備;
AXI Data FIFO:在 AXI memory-mapped Master 和 Slave 之間增加一組 FIFO 的緩沖;
AXI Register Slice:在 AXI memory-mapped Master 和 Slave 之間增加一組流水線寄存器;
AXI MMU:為 AXI 提供地址段的 decoding and remapping 服務
下面簡單介紹一下一些部分
1、AXI Crossbar
每一個被實例化的 AXI Interconnect (互聯模塊)都包含一個 AXI Crossbar,用于多個 MI(Master Interface) 和 SI(Slave Interface) 的連接;
Crossbar 的 SI 可以被配置為 1 ~ 16 個 SI Slots,最多接受來自 16 個 Master 的傳輸,同樣,MI 可以被配置為 1 ~ 16 個 MI Slots,最多與 16 個 Slaves 進行通信;
1.1、幾種可以選擇的 Crossbar 互聯結構
1.1.1、Crossbar mode (Performance Optimized)
性能最優:
共享地址通道,獨立的多數據通道架構 (SAMD:Shared-Address, Multiple-Data);
并行 crossbar 讀和寫通道,當發生多讀寫的時候,可以完全并行,互不干擾;
可以根據配置連接的映射來減少 crossbar 數據路徑進而減少資源的使用;
共享的寫地址仲裁器,加上一個共享的讀地址仲裁器,通常仲裁器并不會影響吞吐;
只有 AXI Crossbar 被配置為 AXI-4 或者 AXI-3 的時候,Crossbar mode 才有效;
1.1.2、Shared Access mode (Area optimized)
面積最優:
共享的寫入數據、共享讀取數據和單獨的共享地址路徑;
一次傳輸僅支持一個事務;
使用資源最小;
更多的描述詳見文章開頭的 PG095
2、AXI Data Width Converter
Master 和 Slave 端 Interface 不同數據位寬的轉換:
支持的 Slave Interface(SI) 數據位寬為:32, 64, 128, 256, 512 or 1,024 bits
支持的 Master Interface(MI) 數據位寬為:32, 64, 128, 256, 512 or 1,024 bits (must be different than SI data width)。
When upsizing, data is packed (merged) when permitted by address channel control signals (CACHE modifiable bit is asserted)。
When downsizing, burst transactions are split into multiple transactions if the maximum burst length would otherwise be exceeded
When upsizing, the IP core can optionally perform FIFO buffering and clock frequency conversion (synchronous or asynchronous) in a resource-efficient manner
3、AXI Clock Converter
Master 和 Slave 端 Interface 不同時鐘域
支持同步時鐘的比例轉換,(N:1 and 1:N),轉換的 N 是 2
支持異步時鐘轉換(比同步時鐘消耗更多的資源,和 latency)
4、AXI Protocol Converter
4.1、AXI4 or AXI3 to AXI4-Lite protocol
AXI-4 或者 AXI-3 轉到 AXI4-Lite 協議,burst 事務轉為 AXI4-Lite 的 Single-Beat 傳輸
4.2、AXI4 to AXI3 protocol
當針對 AXI3 從器件時,可通過分解事務處理內容來轉換大于 16 拍的 AXI4 突發量
5、AXI Data FIFO
讀寫通道獨立可配置
基于 32-深度的 LUT-RAM
基于 512-深度的 BRAM
6、小結
簡單的描述了 Xilinx AXI Interconnect IP 的部分內容,它的實現內部需要集成 Arbiter 或者 Router 來進行邏輯互聯,官方的簡要描述如下:
可選的互聯架構
縱橫機模式(性能最優化):共享地址多數據 (SAMD) 縱橫機架構,具有面向寫入和讀取數據通道的并行路徑
共享訪問模式(面積最優化):共享的寫入數據、共享讀取數據和單獨的共享地址路徑。
AXI 兼容協議(AXI3、AXI4 和 AXI4-Lite)包括:
針對增量 (INCR) 突發量的長達 256 的突發長度
當針對 AXI3 從器件時,可通過分解事務處理內容來轉換大于 16 拍的 AXI4 突發量
生成 REGION 輸出,供有多個地址解碼范圍的從器件使用
在每條通道上傳播 USER 信號(如果有); 獨立的每通道 USER 信號寬度(可選)
傳播服務質量 (QoS) 信號(如果有);不被 AXI Interconnect 內核使用(可選)
接口數據寬度:
AXI4: 32、 64、 128、 256、 512、 或 1024 位
AXI4-Lite: 32 位
32 位地址寬度
連接 1-16 個主器件和 1-16 個從器件
內置數據寬度轉換、同步/異步時鐘速率轉換和 AXI4-Lite/AXI3 協議轉換功能
可選的寄存器 slice 流水線和數據路徑 FIFO 緩沖
可選的數據包 FIFO 功能
時延發出 AWVALID 信號,直到完整的突發量存儲在寫數據 FIFO 中為止
時延發出 ARVALID 信號,直到讀數據 FIFO 有足夠的空間存儲整個突發量長度為止
在縱橫機模式下支持多種出色的事務處理功能
循環依賴(死鎖)的 “每 ID 單從器件” 避免法
固定優先權和輪詢仲裁
支持整體針對每個已連接從器件的 “信任區” 安全功能
支持只讀和只寫主器件和從器件,減少資源使用。
審核編輯:何安
-
AXI
+關注
關注
1文章
134瀏覽量
17119
發布評論請先 登錄
NVMe IP之AXI4總線分析
NVMe簡介之AXI總線

評論