呂 鵬
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
基于SRIO總線的全交換路由設計與實現
呂 鵬
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
針對現代社會對數據傳輸速率要求的不斷提升,現有的傳輸方式如PCI總線、PCI Express總線及千兆網等,已經不能滿足技術的需求。因此,采用了一種新型的傳輸方式,利用SRIO總線的高速特性和交換芯片多端口的靈活性,對不同種類的設備節點(DSP、FPGA、PowerPC)進行網狀結構的拓撲互聯,實現數據高速和靈活傳輸的目的。主要介紹了在一個拓撲網絡內部DSP、FPGA和PowerPC設備節點的SRIO配置方式及網絡中全拓撲系統的實現過程,并對該系統進行了速率和正確性測試,為實時數據處理技術提供了必要的技術基礎。
SRIO總線;全交換路由;交換芯片;PowerPC
SRIO(Serial RapidIO)總線作為一種高速的串行總線,因為其傳輸速率高、低功耗和低延遲的特性在越來越多方面得到應用[1]。同時支持SRIO協議交換芯片多端口的特性使其在數據傳輸上打破了以往單一的點對點傳輸方式,將多個交換芯片及具有SRIO接口的器件相互連接,即可實現網狀的拓撲結構,真正達到“條條大道通羅馬”的效果。本文所采用的終端設備為MPC8641D處理器的雙e600內核結構,每個內核性能為3.125 Gband的傳輸速率,同時分別配置了IDT公司的Tsi578和CPS1848 2種型號交換芯片與DSP和FPGA等終端設備進行鏈路通信,并對設備進行數據可靠性和傳輸速率的測試。
1.1 SRIO接口技術
SRIO是基于包交換的互連技術,傳輸層定義了包交換的路由和尋址機制[2]。SRIO網絡主要由終端器件和交換器件組成。終端器件是數據包的源或目的,不同的終端器件以器件 ID 來區分。SRIO支持 8 位或 16 位器件 ID,因此一個 SRIO 網絡最多可容納 256 或 65 536個終端器件。與以太網類似,SRIO也支持廣播或組播,每個終端器件除了獨有的器件 ID 外,還可配置廣播或組播 ID。交換器件根據包的目的器件 ID 進行包的轉發,交換器件本身沒有器件ID[3]。SRIO的互連拓撲結構非常靈活,除了通過交換器件外,2個終端器件也可直接互連。同時SRIO支持在數據包幀結構中以不同數據量進行傳輸[4]。
PowerPC系統SRIO總線需要使用維護包進行路由配置。維護包的配置需要分別設置PowerPC發送和接收窗口(發送窗 8個,接收窗 4個)[5]、SRIO總線的基地址、讀寫傳輸模式(NWRITE、NREAD)、模式使能及訪問的窗口大小等參數,同時為了適應不同系統規模的需求,設備ID分為大端模式和小端模式2種,其中小端模式為8位,大端模式ID為16位[6]。
1.2 交換芯片的交換處理
以圖1 CPS1848結構圖為例對交換芯片的交換處理流程進行說明。

圖1 CPS1848結構圖
CPS1848是 IDT 公司最新推出的支持SRIO 2.1標準的交換芯片,有48個雙向的數據差分對(lane),可以配置成 1x、2x和4x 3種端口模式,最多可以配置成 18個1x 或 12 個4x端口,每個 lane的速率可以設置為1.25 Gbit/s、2.5 Gbit/s、3.125 Gbit/s、5 Gbit/s 或6.25 Gbit/s[7]。
配置CPS1848交換芯片的主要寄存器功能(TSI578的配置方法與其類似)如表1所示。

表1 CPS1848寄存器功能介紹
1.3 PowerPC主板SRIO配置
以M85XX為例,其中主要配置的函數為M85XXRIO_ROWBARn,負責函數地址BAR空間的指定;M85XXRIO_ROWARn負責配置SRIO的空間傳輸模式、讀寫方式、SRIO使能及空間大小[8]。
利用維護包配置路由的時候,需要利用M85XXRIO_ROWTARn對地址偏移量、hopcount和目的ID等進行讀寫操作,根據訪問的地址偏移量不同,訪問的目的不同,進行不同的設置。
1.4 DSP及FPGA節點SRIO配置
DSP芯片中利用TI公司自帶的函數Setup配置SRIO相關的寄存器,并將port號置為0,設置loopback為0表示關閉DSP自循環;設置buffer Model為4x模式,時鐘輸入為125 MHz,2.5 GB/s傳輸速度,最后將SRIO傳輸方式設置為NWRITE和NREAD模式[9]。
FPGA IP 核為 Serial Rapidio,版本為5.5,完美兼容RapidIO Interconnect Specification v2.1,實現了SRIO總線邏輯層、傳輸層和物理層協議功能[10]。Device ID就在IP核中進行設置,同樣選擇4x通路,時鐘頻率125 MHz,傳輸速率2.5 GB/s即可[11]。
2.1 總體設計
為了適應分機內部數據多點、靈活傳輸的要求及數據板卡高速傳輸、數據多通道連續存儲的功能,利用具有SRIO接口的背板、器件及交換芯片實現數據互聯,其中選用支持同時安裝8塊板卡的串行總線背板。由于SRIO采用的是點對點技術,在需要2個以上SRIO接口處理或橋接部分的系統中都需要采用1臺交換機[12]。因此,本次設計選用了交換芯片替代交換機的設計。交換芯片根據系統的需要,主板即Slot1,其余的數字板卡Slot2~Slot8,均采用1個CPS1848交換芯片配4個節點,包括3個FPGA和1個DSP,傳輸均采用4 lane模式。
其中主板的PowerPC型號為Freescale公司的MPC8640D,交換芯片為IDT公司的Tsi578。Tsi578總共包含8個4 lane,Slot2~Slot8的板卡設計完全一致,目的是為了后期替換方便,板卡上的交換芯片型號為IDT的CPS1848。CPS1848總共包含12個4 lane,FPGA選用的是XC5VSX315T,DSP為TI廠商的C6678。圖2為本設計的板卡連接框圖。
具體實現過程為:
① 系統上電后,每個板卡的交換芯片、FPGA、DSP會初始化各自的SRIO接口,保證各自的SRIO接口速率及端口狀態正常;
② Slot1槽上的PowerPC會配置主板的SRIO接口速率,并將傳輸方式配置為維護包的形式;
③ PowerPC掃描本版的交換芯片及另一個PowerPC節點,修改交換芯片及PowerPC節點的ID,配置2個節點間的傳輸路徑;
④ 配置PowerPC到Slot2~Slot8的交換芯片及各自FPGA和DSP節點的路由;
⑤ 將已經修改ID后的Slot2~Slot8之間的各個FPGA、DSP節點配置路由。

圖2 板卡連接框圖
本設計選用的是小端模式,ID比特位數為8 bit,最多的節點ID數為256,如果后續系統需要擴展需要,可能改為大端模式,ID比特位為16 bit,最多的節點ID數為65 536。同時一個系統中的各個節點ID要不一樣才可傳輸,否則會出現發送數據錯誤的情況[13]。同時要考慮到單個SRIO接口的傳輸帶寬的限制,如果同時有多個高速實時的數據要通過一個節點進行傳輸,可能會出現對數據的問題,因此就需要在設置的時候對路由進行指定限制,從而保證數據傳輸的正確性。
2.2 控制槽PowerPC系統SRIO接口設計
在進行SRIO讀寫前,先要在上電時對CPU MPC8640D和交換芯片Tsi578進行必要的硬件配置。本文設置為SRIO Host 模式,通信速率為2.5 Gbit/s,4 lane傳輸模式,每個端口都使能。硬件配置完成后,需要對SRIO內部寄存器進行初始化配置,并完成對內部SRIO和外部Agent 地址空間映射,最終就能像訪問外部存儲器一樣直接對這些地址空間操作,實現各個SRIO器件的讀寫[14]。由此可見,軟件上的關鍵就是對SRIO寄存器的初始化配置和地址映射。
在實際應用中,重點對分機內部8個板卡間的各個節點之間是否能夠傳輸及傳輸的正確性進行驗證,并對任意類型的2個節點間的數據傳輸速率進行了測試。其中PowerPC采用DMA的傳輸方式,窗口大小為2 MB,傳輸方式為NWRITE和NREAD方式,而DSP和FPGA則同樣會采用DMA的自適用傳輸方式[15]。測試結果如表2所示。

表2 連續傳輸速度測試統計
由于本設計采用的是SRIO1.1協議X4的設計,通信速率為2.5 Gbit/s,采用8 B/10 B編解碼方式,同時加上打包效率0.8,因此實際傳輸值大概為2.5*4 / 8*0.8*0.8 = 800 MB/s。由于PowerPC采用了維護包校驗機制,因此傳輸效率有所折扣。
最后在進行程序調試的時候需要注意分機內部所有節點的ID必須為唯一,且不能進行重疊,同時交換芯片的ID只能進行奇數次設置,如果偶數次設置就會給還原成原廠ID。同時利用PowerPC進行DMA傳輸的時候最好一種數據占用一個通道,不要通道互用,這樣會影響傳輸效率。
這種設計方法以交換芯片為核心,利用交換芯片的多個port的特點,實現網狀的拓撲結構,達到各個節點間的數據互聯傳輸的特點,該技術可以實現分機內部任意節點間的高速數據傳輸,可以將分機內部的任意板卡看成一個小的接收機以達到數據并行處理的目的。
參考論文
[1] 張娟娟,陳迪平,柴小麗.VxWorks下RapidIO互聯系統的實現[J].計算機工程,2011,37(3):236-240.
[2] 鄧 豹,趙小冬.基于串行RapidIO的嵌入式互聯研究 [J].航空計算技術,2008,38(3):1-4.
[3] 李 賓,馬曉川,鄢社鋒,等.基于VPX標準的RapidIO交換和Flash存儲模塊設計[J].聲學技術,2011,30(6):528-532.
[4] 崔維嘉,樊少杰.新一代的總線結構--RapidIO [J].無線電工程,2011,41(31):37-38.
[5] 谷曉鵬,楊玉亮,張 然.基于VPX的SRIO通信模塊設計[J].雷達與對抗,2015,35(2):64-68.
[6] 王星島,李國超,耿 濤.基于Tsi578構建RapidIO互聯系統[J].信息與電腦,2014(6):130-132.
[7] 馬友科.基于CPS1848的SRIO總線交換模塊設計 [J].無線電工程,2014,44(10):73-76.
[8] 孫宏利.雷達接收機數字化分析[J].無線電工程,2011,41(1):25-27.
[9] 俞 健,周維超,劉 坤.DSP與FPGA的SRIO互聯設計 [J].光電技術應用,2012,33(6):902-905.
[10] 信 侃,嘉 峰.SRIO總線技術研究及其FPGA實現 [J].無線電工程,2014,44(12):33-35.
[11] Xilinx.Logical CORE IP Serial RapidIO v5.6 User Guide [M].USA:Xilinx,2011.
[12] 紀 斌,鄭志國.基于PowerPC的RapidIO高速串行通信設計與實現[J].電訊技術,2011,51(3):75-78.
[13] 謝立斌,劉 凱,尚 煜.串行RapidIO交換技術[J].電子科技,2015,25(9):129-135.
[14] 冼友倫,紀小明,王顯躍.基于TSI578的Rapid IO互聯技術[J].電子與封裝,2014,11(14):26-30.
[15] 饒 坤.基于DSP和FPGA的串行RapidIO系統性能測試與分析 [J].信息與電子工程,2012,10(6):680-684.
Design and Implementation of All Exchange Routing Based on SRIO Bus
LV Peng
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
With increasing data transfer rate requirement of the modern society,existing transmission modes,such as PCI bus,PCI Express bus,gigabit network,etc.,cannot meet the technical needs.Therefore,a new type of transmission mode is adopted,using the high speed feature of SRIO bus and the switching chip multiport flexibility for mesh interconnection of different types of device nodes (DSP,FPGA,PowerPC),in order to realize high-speed flexible data transmission.The paper mainly introduces the SRIO configuration mode of device nodes (DSP,FPGA,PowerPC) in a topology network and the realization of whole network topology system,gives the test results of the rate and correctness of the system,and provides the necessary technical foundation for real-time data processing technology.
SRIO Bus;all exchange routing;switching chip;PowerPC
10.3969/j.issn.1003-3114.2017.02.22
呂 鵬.基于SRIO總線的全交換路由設計與實現[J].無線電通信技術,2017,43(2):87-89,98.
2016-11-21
呂 鵬 (1984—),男,工程師,主要研究方向:數字信號處理、信息技術與系統。
TN919.3
A
1003-3114(2017)02-87-3