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