冼友倫,紀小明,王顯躍
(西南電子設備研究所,成都 610036)
基于TSI578的Rapid IO互連技術
冼友倫,紀小明,王顯躍
(西南電子設備研究所,成都 610036)
針對傳統總線數據傳輸存在的問題,提出基于Rapid IO在高速信號處理的應用,介紹Rapid IO的體系結構及其性能優(yōu)勢,根據Rapid IO協議,給出了基于TSI578的Rapid IO互連方案,并在實際系統上進行驗證與實現。實驗結果表明,該方案是有效的。
高速總線;Rapid IO;互聯技術;FPGA;TSI578
在高速實時信號處理領域,為了達到高處理速度和好的實時性能,在運算同時I/O也在實時傳輸數據,且處理器的運算能力和I/O能力應該是匹配的。運算能力和I/O能力相匹配的含義是:I/O所花費的時間不應超過運算所花費的時間。隨著處理器內核速度迅速提高和I/O速度相對滯后,過去的一些運算密集型算法已經轉變?yōu)镮/O密集型算法。因此提高數據的傳輸速率,對提高整個信號處理系統的實時性有著重要意義。
在過去30年中,總線技術飛速發(fā)展,從最初的8 bit PC/XT、16 bit ISA總線、32 bit EISA和MCA、VL總線,到現在流行的PCI總線,總線性能大致每3年提升一倍,其總線技術發(fā)展變化如圖1所示。然而總線頻率的發(fā)展仍落后于處理器頻率的增長,主流PCI總線顯得越來越力不從心,并暴露出越來越多的缺點和不足。隨著RAID陣列、千兆以太網等一些高帶寬設備在消費級系統上的出現,系統對PCI總線頻率提出了更高要求,為滿足這些要求,每段總線所能支持的設備數只能減少,而為了連接同等數量的設備,就需要更多的總線段、更高的總線性能、更多的器件扇出能力和更大的器件分隔。盡管PCI-PCI橋接設備可以解決這一問題,但是它只能應用在樹形體系結構中,而且系統延時也會因此而增加,并且需要的PCI器件也更多,系統成本也相應增加。
Rapid IO作為新一代總線,其目標應用就是高性能嵌入式系統間的互連通信。Rapid IO的誕生彌補了其他總線在性能上的不足。可行的應用包括連接多處理器、存儲器、網絡設備中的存儲器映射I/O器件、存儲子系統和通用計算機平臺。這一互連技術主要為系統內部互連,支持芯片到芯片和板到板的高速通信,可以實現1 Gbps~60 Gbps的性能水平。其基于Rapid IO的處理系統架構如圖2所示。
圖1 總線技術發(fā)展狀況
圖2 基于Rapid IO的通用處理架構
從圖2中可以看到,在實際系統中要實現高效率大規(guī)模的Rapid IO通信,必須采用基于交換的Rapid IO系統集成。本文將結合具體項目討論基于交換的Rapid IO互連技術實現。
Rapid IO協議是一種高速通信協議,能夠滿足芯片間、板間Gbyte/s量級的通信需求,其實現具有高性能、低延遲、低引腳數和低功耗等特點,是高速AD采集、數字波束合成(DBF)、板間大數據量傳輸等應用中數傳接口的一個理想選擇。
為滿足靈活性和可擴展性要求,Rapid IO協議分為3層:邏輯層、傳輸層和物理層(圖3)。邏輯層定義了操作協議;傳輸層定義了包交換、路由和尋址機制;物理層定義了電氣特性、鏈路控制和糾錯重傳等。在Rapid IO中有串行1位模式和4位模式兩種。
邏輯層定義了操作協議和相應的包格式。Rapid IO支持的邏輯層業(yè)務主要是直接IO/DMA和消息傳遞。直接IO/DMA模式是最簡單實用的傳輸方式,其前提是主設備知道被訪問端的存儲器映射。在這種模式下,主設備可以直接讀寫從設備的存儲器。直接IO/DMA在被訪問端的功能往往完全由硬件實現,所以被訪問的器件不會有任何軟件負擔。從功能上講,這一特點和TIDSP的傳統主機接口(HPI)類似。但和HPI口相比,SRIO帶寬大、引腳少,傳輸方式更靈活。消息傳遞模式則類似于以太網的傳輸方式,它不要求主設備知道被訪問設備的存儲器狀況。數據在被訪問設備中的位置則由郵箱號(類似于以太網協議中的端口號)確定。從設備根據接收到的包的郵箱號把數據保存到對應的緩沖區(qū),這一過程往往無法完全由硬件實現,而需要軟件協助,所以會帶來一些軟件負擔。
圖3 Rapid IO協議分層結構
Rapid IO是基于包交換的互連技術,傳輸層定義了包交換的路由和尋址機制。Rapid IO網絡主要由終端器件和交換器件組成。終端器件是數據包的源或目的地,不同的終端器件以器件ID來區(qū)分。Rapid IO支持8位或16位器件ID,因此一個Rapid IO網絡最多可容納256或65 536個終端器件。與以太網類似,Rapid IO也支持廣播或組播,每個終端器件除了獨有的器件ID外,還可配置廣播或組播ID。交換器件根據包的目地器件ID進行包的轉發(fā),交換器件本身沒有器件ID。Rapid IO的互連拓撲結構非常靈活,除了通過交換器件外,兩個終端器件也可直接互連。
Rapid IO 1.x協議定義了以下兩種物理層接口標準:8/16并行LVDS協議和1×/4×串行協議(SRIO)。并行Rapid IO由于信號線較多(40~76)難以得到廣泛的應用,而1×/4×串行Rapid IO僅4或16個信號線,逐漸成為主流。串行Rapid IO基于現在已廣泛用于背板互連的SerDes技術,它采用差分交流耦合信號。差分交流耦合信號具有抗干擾強、速率高、傳輸距離較遠等優(yōu)點。差分交流耦合信號的質量不是由傳統的時序參數來衡量,而是通過眼圖來衡量,眼圖中的“眼睛”張得越開則信號質量越好。
Rapid IO操作是基于請求和響應事務的,通常主控器件產生一個請求事務(比如讀請求),該事務被發(fā)送至目標器件。目標器件于是產生一個響應事務(讀響應)返回至發(fā)起器件完成該次操作。Rapid IO事務被封裝在包中,包含了確保將事務可靠傳送至目標端點的所有必須的字段。通常不會將Rapid IO端點直接互連在一起,而是通過介于其間的交換結構連接??刂品栍糜诠芾鞷apid IO物理層互連的事務流,也用于包確認、流量控制和維護功能。圖4給出了Rapid IO操作的基本流程,該操作流程包括完整的請求響應事務對。
圖4 Rapid IO操作的基本流程
Rapid IO協議包作為端點器件間的基本通信單元,由代表3級規(guī)范體系結構的多個字段組成,包括源地址、目的地址、事務類型、事務ID、器件偏移地址、有效數據載荷等,其中有些字段依賴于具體的上下文,并不會在所有的包中出現。圖5給出了一個寫請求包格式,其中淺灰色字段代表物理層信息,灰色字段代表傳輸層信息,白色字段代表邏輯層信息,值得注意的是Rapid IO傳輸中有效載荷數據的最大長度是256 Byte。
圖5 串行Rapid IO包格式
Rapid IO協議根據物理層實現的不同可分為并行Rapid IO和串行Rapid IO,相比并行技術,串行技術具有以下優(yōu)勢:
(1)串行I/O技術利用嵌入式時鐘方案通過同一條信號線傳輸時鐘和數據信號,由接收端從信號中恢復時鐘,從而避免了與時鐘失真相關的問題。
(2)由于使用的引腳數目少,PCB板的可布線性也得到進一步提高。我們知道,PCB板上的引腳越多,控制信號間的抖動、畸變以及信號占空比變形等問題的難度就越大,稍有差錯就可能導致系統設計的失敗。
目前,支持Rapid IO協議的主要芯片有FPGA、 PowerPC、DSP、交換芯片、橋接芯片、存儲器等。其中Xilinix的FPGA支持Rapid IO協議的有Virtex-4FX、Viretx5LXT/SXT/FXT、Virtex6LXT/SXT/FXT等系列產品。
交換機在基于Rapid IO的系統互連中是必不可少的,雖然可以在兩個器件之間用Rapid IO技術進行點到點的連接,但是使用交換機可以降低總的系統成本,改善系統性能。Rapid IO互連架構假設交換機在系統設計中將會是一種重要的組件。在該設計中交換機是用TSI578來實現的。
TSI578是Tundra的第三代串行Rapid IO交換機,支持高達80 GB的聚合帶寬。每片TSI578可以配置為8個4×mode端口或16個1×mode端口,每個端口支持的速度可以配置為每秒1.25 GB、2.5 GB和3.125 GB。最多支持64 000個端點的數據包路由表。其中TSI578的組件示意圖如圖6所示。
圖6 TSI578組件示意圖
TSI578的操作十分簡單,可以靈活修改其中的寄存器來改變TSI578的工作模式。在具體應用中可以通過JTAG、I2C和Rapid IO修改TSI578的寄存器。JTAG主要是用于在線調試、硬件調試階段使用,通過JTAG可在線讀寫TSI578中的控制寄存器和狀態(tài)寄存器,同時可以控制I2C接口讀寫EPROM,通過JTAG口可以對單個寄存器進行操作,也可以通過腳本文件批量修改寄存器,這樣就可以大大提高效率。
I2C主要是外接EPROM來固化最終TSI578的工作模式,上電后TSI578自動通過I2C引導EPROM中的值來初始化TSI578,也可以把I2C接到控制芯片上,如FPGA、單片機等??刂菩酒ㄟ^I2C可在線實時監(jiān)測和控制TSI578。
同時TSI578的每個端口可以判斷所接收的包是數據包還是控制包,如果收到的是控制包,可以通過端口來修改TSI578的控制寄存器,實現在線修改配置寄存器,使TSI578工作在各種模式,滿足多種不同需求。
在應用中對TSI578的模式寄存器、狀態(tài)寄存器和路由表寄存器進行操作。
模式寄存器主要控制每個端口的工作模式。我們常用的控制主要包括每個端口工作在4×mode還是1×mode,這里值得注意的是TSI578工作在1×mode時是MAC的A和B,而FPGA是MAC的A和C,在硬件設計時應該注意,如圖7所示。可以配置每個端口的傳輸速度每秒1.25 GB、2.5 GB和3.125 GB??梢允姑總€端口工作在Power PC Down模式下,從而降低功耗;每個端口可以工作在自回環(huán)模式,這樣就能十分方便地測試每個端口的硬件性能,如圖7所示。工作在4×mode時可通過寄存器來交換MAC的端口順序,以適應不同的硬件連接。TSI578為了適應不同芯片在不同電器標準之間的數據交換,可以通過寄存器來修改Vpp的值;為了滿足高性能的要求,可以對每個端口設置中斷、優(yōu)先級和錯誤檢查機制等。
圖7 TSI578 MAC結構
狀態(tài)寄存器主要是檢查TSI578的工作狀態(tài),主要包括每個端口的狀態(tài)信息、接收數據是否出錯和當前路由表信息等。
路由表的配置是TSI578進行交換的關鍵一步,在一個系統中我們必須為每個端口分配一個唯一的ID,該ID必須與Rapid IO數據包的Destination ID一致,當接收端口收到數據包后解析包的Destination ID,只有接收包的Destination ID與端口的ID一致后才發(fā)生交換。同時每個端口還需要配置輸出端口的號,通過優(yōu)先級可將多個端口輸出到一個端口,在廣播方式中一個端口可以輸出到多個端口。其端口路由表配置如圖8所示,最多可以構成64 000個不同的ID,輸出端口號只能是TSI578的對應輸出端口。
圖8 TSI578路由表
該Rapid IO驗證系統由兩塊FPGA板、一塊交換板和一塊母板構成,FPGA板的FPGA選用Xilinix的Viretx5SX95T實現Rapid IO的收發(fā)數據,交換板通過TSI578實現。其系統構成如圖9所示。
圖9 Rapid IO驗證平臺
在硬件實現上,Rapid IO參考時鐘由外部晶振提供,頻率156 MHz。其物理實現組成框圖如圖10所示。圖中,FPGA邏輯資源實現了用戶應用、Rapid IO邏輯層、傳輸層和部分物理層功能,物理層核心功能由GTP核實現,每個GTP核包括兩個收發(fā)器,對于4×串行Rapid IO設計,其需要使用兩個GTP核,共4個收發(fā)器。
FPGA1接到交換板TSI578的port6,FPGA2接到交換板TSI578的port8。FPGA1發(fā)送Rapid IO數據包的Destination ID為25,FPGA2發(fā)送Rapid IO數據包的Destination ID為54。在TSI578配置時Port6的ID為25,輸出端口為8,Port6的ID為54,輸出端口為6。
圖10 物理實現組成框圖
FPGA1通過Rapid IO發(fā)送數據給交換板,同時接收交換板發(fā)送的數據,FPGA2的工作模式與之類似。系統單通道工作在3.125 Gbit/s波特率下(總波特率為12.5 Gbits/s),采用Chip Scope對實際數據進行采樣。TSI578配置成功后FPGA1發(fā)送端看到信號波形如圖11所示。
圖11 Rapd IO發(fā)送時序圖
由圖11可知,各信號含義為:
ireq_sof_n_i、ireq_eof_n_i分別表示發(fā)送請求幀的起始和結尾,低電平有效;ireq_vld_n_i表示數據載荷有效,ireq_rdy_n_o表示IP core準備就緒,可以在這個時鐘周期接收包頭和輸入數據;ireq_dest_id表示目標端的ID號;ireq_byte_count表示數據包中有效數據的個數,以byte為單位;ireq_ftype表示主控端發(fā)送的請求事務的類型,5代表寫請求,2代表讀請求;ireq_tid表示請求事務包的編號,該編號順序增加;ireq_addr表示目標端內存偏移地址,是讀寫該幀數據的首地址;ireq_data在寫請求時表示有效數據載荷,讀請求時沒有意義;iresp_sof_n、iresp_ eof_n分別表示接收響應幀的起始和結尾,低電平有效;iresp_vld_n表示IP core輸出數據有效,iresp_ rdy_n表示用戶準備就緒,可以在這個時鐘周期接收包頭和輸出數據;iresp_src_id_o表示目標端的ID,iresp_dest_id_o表示主控端的ID;iresp_ftype表示目標端發(fā)送的響應包的事務類型;iresp_tid表示對應于讀請求的事務編號;iresp_data表示目標端返回的讀請求要求的有效數據載荷,數據和事務編號具有一一對應關系。
由圖11可知,Initiator(主控端)的ID是0x0F,Target(目標端)的ID是0x25,Initiator向Target發(fā)送寫請求,事務編號0x99,向Target首地址為0x00100900處寫入256 Bytes(32×64)的有效數據,完成上面的操作,事務號依次增加,0x9A,0x9B,……
通過試驗Rapid IO可以實現靈活、高速地通信?;诮粨Q的架構可以實現大規(guī)模的系統集成。其在FPGA(95T)中實現Rapid IO通信的資源占用情況、傳輸速度、傳輸延時如表1所示。
表1 Rapid IO在95T下的效率
Rapid IO技術主要面向高性能嵌入式系統的互連通信,它采用高性能的LVDS技術,可以在4對差分線上實現10 Gbps的有效傳輸速率,而且具有比萬兆以太網、PCIexpress更高的傳輸效率。由于Rapid IO在路由、交換、容錯糾錯、使用方便性上有較完善的考慮,可以實現基于硬件的高性能可靠數據傳輸,所以在嵌入式、3G和3G之后的Beyond 3G/4G移動通信、高性能數字信號處理系統中得到廣泛應用。
[1] Tundra Semiconductor Corporation. Tsi578 Serial Rapid IO Switch User Manual [Z], 2008.
[2] Xilinx. Serial Rapid IO v5.3 Getting Started Guide 2009 [Z].
[3] Rapid IO Trade Association. Rapid IO Interconnect Specif i cation [Z], 2009.
[4] 王勇,等. Rapid IO嵌入式系統互連[M]. 北京:電子工業(yè)出版社.
Rapid IO Interconnected Technology Based on TSI578
XIAN Youlun, JI Xiaoming, WANG Xianyue
(Southwest China Research Institute of Electronic Equipment,Chengdu610036,China)
Aiming at the problem existed in traditional bus, a scheme of serial Rapid IO used in the highspeed signal processing. The framework and advantage of Rapid IO are introduced. According to the protocol Rapid IO, Rapid IO interconnected project is given based on TSI578, which is inspected and implemented. Experimental results show the scheme is effective.
high speed bus; Rapid IO; interconnected technology; FPGA; TSI578
TN402
A
1681-1070(2014)11-0026-05
冼友倫(1983—),男,四川攀枝花人,工程師,目前在西南電子設備研究所主要從事高速電路設計工作。
2014-09-30