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