基于SRIO協議的板級芯片互聯技術
C6455的SRIO包有direct I/O包、DOORBELL包、Message包以及Maintenance包等等。其中最重要的是直接I/O包和DOORBELL包的傳輸控制,它的傳輸控制模塊分成LSU(Load/Store Unit)控制單元和MAU(Memo-ry Access Unit)控制單元。LSU用于實現Direct I/O包、DOORBELL包的發送,MAU則負責Direct I/O包的接收。具體的傳輸控制結構框圖如圖4所示。本文引用地址:http://www.j9360.com/article/152317.htm
所有直接I/O包和DOORBELL包的發送都由LSU模塊執行。直接I/O包內包含了數據本地DSP地址、目標設備ID及數據在目標SRIO設備上需要保存或讀取的地址,DSP通過配置總線對發送端口配置一系列MMRs作為傳輸描述符,在包傳輸之前硬件自動把它們加在包頭。啟動SRIO傳輸后數據自動實現DSP內部存儲空間(L2 SRAM)到SRIO發送端口緩沖區的DMA數據傳輸,處理器參與的僅僅是配置過程,而真正的數據搬移過程全由DMA完成,并且包信息中包含了接收端口的ID及地址信息,數據在接收端口由MAU模塊自動DMA到包頭信息指定的地址空間,對用戶來說是完全透明的。
2.4 C6455的SRIO關鍵事務處理
SRIO的邏輯層采用的是包格式來交換數據,所有包的有效載荷最大為256字節。事務就是指向SRIO地址空間的加載存儲及DMA的操作,其中最為關鍵重要的就是NREAD(讀操作)、NWRITE(寫操作)、DOORBELL(門鈴操作)。通過SRIO包的這幾種事務處理可以實現互連器件間的數據傳輸。在發送DSP的SRIO端口和接收DSP的SRIO端口都需要首先進行初始化,包括使能端口,配置端口工作模式,設置和使能PLL模塊,設置設備ID及數據傳輸速率(注意發送和接收端口速率要求一致)。在初始化完成后,通過循環查詢SRIO端口狀態寄存器來判斷鏈路的連接成功與否。一般情況下,鏈路會很快連接成功,否則前述的初始化配置可能有錯。鏈路連接成功后,就可以進行讀寫和門鈴操作。在系統測試中,發送端DSP通過寫操作發送完一幀數據,隨即發送一個門鈴數據包,門鈴數據包在接收端DSP上產生一個系統中斷告知數據到達有效,于是接收端DSP又將一個門鈴數據包發送回發送端DSP,同樣產生一個中斷給發送端DSP,發送端DSP收到中斷后又繼續發送下一個數據幀,如此循環往復實現高速傳輸數據。
3 C6455與Virtex5-LXT的串行接口互聯
在DSP+FPGA復合架構中,DSP的優勢在于,對新型及復雜算法開發上只需較短的時間,并能夠快速靈活地移植到新一代DSP處理器上;而FPGA的最大優勢在于,通過并行處理實現的效能最大化。因此通過SRIO實現DSP和FPGA的互聯可以達到兩者的優勢互補。如圖3中,通過DSP的一個SRIO端口和一個Virtex5 LX50T實現SRIO連接,每一個FPGA都可以通過SRIO通道訪問SRIO網絡上的任何資源。用于SRIO的Xilinx端點IP解決方案針對RapidIO規范(v1.3)而設計,完整的Xilinx端點IP解決方案包括用戶收發數據接口邏輯、傳輸控制及緩存邏輯、SRIO物理層IP,以及SRIO管理配置寄存器實現邏輯4部分。
結 語
在多處理器互聯處理系統實現方案中,SRIO是最佳的數據互聯方式之一。高帶寬、低延時、引腳少、DMA傳輸、低軟件復雜度滿足了飛速發展的高速實時數據處理對性能的要求。C6455間的SRIO高速通信滿足不同應用軟件設計的靈活性,DSP和FPGA的SRIO通信提高了多處理器系統的計算能力,通過SRIO通信方式構建的計算網絡提供了共享式分布處理,能輕松滿足不同應用領域高速發展的海量數據高速處理需求。
評論