串行 RapidI 高性能嵌入式互連技術(shù)
摘要
?? 串行RapidIO針對(duì)高性能嵌入式系統(tǒng)芯片間和板間互連而設(shè)計(jì),它將是未來十幾年中嵌入式系統(tǒng)互連的最佳選擇。
?? 本文比較RapidIO和傳統(tǒng)互連技術(shù)的優(yōu)點(diǎn);介紹RapidIO協(xié)議架構(gòu),包格式,互連拓?fù)浣Y(jié)構(gòu)以及串行RapidIO物理層規(guī)范。介紹串行RapidIO在無線基礎(chǔ)設(shè)施方面的應(yīng)用。
RapidIO 與傳統(tǒng)嵌入互連方式的比較
? 隨著高性能嵌入式系統(tǒng)的不斷發(fā)展,芯片間及板間互連對(duì)帶寬、成本、靈活性及可靠性的要求越來越高,傳統(tǒng)的互連方式,如處理器總線、PCI總線和以太網(wǎng),都難以滿足新的需求 。
?? 處理器總線主要用作外部存儲(chǔ)器接口,如德州儀器(TI) C6000系列DSP的外部存儲(chǔ)器接口,可支持外接同步SDRAM、SBSRAM及FIFO,也可支持異步SRAM、FLASH等。外部存儲(chǔ)器接口也可用作與板內(nèi)FPGA或ASIC芯片互連,這種情況下,F(xiàn)PGA或ASIC模擬一個(gè)DSP支持的存儲(chǔ)器接口,DSP則把FPGA或ASIC當(dāng)作存儲(chǔ)器來訪問。這類同步接口帶寬可達(dá)10Gbps,如德州儀器TMS320C6455 DSP的DDR2接口最大帶寬為17.066Gbps,SBSRAM接口最大帶寬為8.533Gbps。然而,這種接口也存在一些局限性:
?? 1. 接口管腳多,硬件設(shè)計(jì)困難。常見的DDR2接口有70~80個(gè)管腳;
?? 2. 只能用于板內(nèi)互連,無法用于板間互連;
?? 3. 不是點(diǎn)對(duì)點(diǎn)的對(duì)等互連,DSP始終是主設(shè)備,其它器件只能做從設(shè)備。
?? PCI是廣泛用于計(jì)算機(jī)內(nèi)器件互連的技術(shù)。傳統(tǒng)PCI技術(shù)也采樣類似于上述存儲(chǔ)器接口的并行總線方式,如TMS320C6455 DSP的PCI接口,有32bits數(shù)據(jù)總線,最高時(shí)鐘速度為66MHz,共有42個(gè)管腳。最新的串行PCI Express技術(shù)采用與串行RapidIO(SRIO, Serial RapidIO)類似的物理層傳輸技術(shù),使得帶寬達(dá)到10Gbps左右。但由于其主要的應(yīng)用仍是計(jì)算機(jī),而且為了兼容傳統(tǒng)PCI技術(shù),使得它在嵌入式設(shè)備方面的應(yīng)用具有一定的局限性,如不支持點(diǎn)對(duì)點(diǎn)對(duì)等通信等。
眾所周知,以太網(wǎng)是使用最廣泛的局域網(wǎng)互連技術(shù),它也被擴(kuò)展應(yīng)用到嵌入式設(shè)備互連,但它的局限性也是顯而易見的:
?? 1. 不支持硬件糾錯(cuò),軟件協(xié)議棧開銷較大;
?? 2. 打包效率低,有效傳輸帶寬因此而減小;
?? 3. 只支持消息傳輸模式,不支持對(duì)對(duì)端設(shè)備的直接存儲(chǔ)器訪問(DMA, Direct Memory Access)。
針對(duì)嵌入式系統(tǒng)的需求以及傳統(tǒng)互連方式的局限性,RapidIO標(biāo)準(zhǔn)按如下目標(biāo)被制定:
?? 1. 針對(duì)嵌入式系統(tǒng)機(jī)框內(nèi)高速互連應(yīng)用而設(shè)計(jì)。
?? 2. 簡化協(xié)議及流控機(jī)制,限制軟件復(fù)雜度,使得糾錯(cuò)重傳機(jī)制乃至整個(gè)協(xié)議棧易于用硬件實(shí)現(xiàn)。
?? 3. 提高打包效率,減小傳輸時(shí)延。
?? 4. 減少管腳,降低成本。
?? 5. 簡化交換芯片的實(shí)現(xiàn),避免交換芯片中的包類型解析。
?? 6. 分層協(xié)議結(jié)構(gòu),支持多種傳輸模式,支持多種物理層技術(shù),靈活且易于擴(kuò)展。
圖1展示了RapidIO互連在嵌入式系統(tǒng)中的應(yīng)用。
圖1 RapidIO在嵌入式系統(tǒng)中的應(yīng)用
表1總結(jié)比較了的三種帶寬能達(dá)到10Gbps的互連技術(shù):以太網(wǎng),PCI Express和串行RapidIO,從中可以看出串行RapidIO是最適合高性能嵌入式系統(tǒng)互連的技術(shù)。
表1 10G級(jí)互連技術(shù)比較
? ?軟件實(shí)現(xiàn)TCP/IP 協(xié)議棧的以太網(wǎng) ?4x PCI Express ?4x SRIO ?備注
軟件開銷 ?高 ?中 ?低 ?SRIO 協(xié)議棧簡單,一般都由硬件實(shí)現(xiàn),軟件開銷很小
硬件糾錯(cuò)重傳 ?不支持 ?支持 ?支持 ?
傳輸模式 ?消息 ?DMA ?DMA,消息 ?
拓?fù)浣Y(jié)構(gòu) ?任意 ?PCI樹 ?任意 ?SRIO支持直接點(diǎn)對(duì)點(diǎn)或通過交換器件實(shí)現(xiàn)的各種拓?fù)浣Y(jié)構(gòu)
直接點(diǎn)對(duì)點(diǎn)對(duì)等互連 ?支持 ?不支持 ?支持 ?SRIO互連雙方可對(duì)等的發(fā)起傳輸。
傳輸距離 ?長 ?中 ?中 ?SRIO針對(duì)嵌入式設(shè)備內(nèi)部互連,傳輸距離一般小于1米
數(shù)據(jù)包最大有效載荷長度 ?1500字節(jié) ?4096字節(jié) ?256字節(jié) ?嵌入式通信系統(tǒng)對(duì)實(shí)時(shí)性要求高,SRIO小包傳輸可減少傳輸時(shí)延
打包效率 (以傳輸256字節(jié)數(shù)據(jù)為例) ?79% (TCP包) ?82% ?92~94% ?打包效率是有效載荷長度與總包長的比率。SRIO支持多種高效包格式。
串行RapidIO協(xié)議
RapidIO行業(yè)協(xié)會(huì)成立于2000年,其宗旨是為嵌入式系統(tǒng)開發(fā)可靠的,高性能,基于包交換的互連技術(shù)。RapidIO協(xié)議的簡要發(fā)展歷史是:
?? 1. 2001年初,最初的標(biāo)準(zhǔn)被發(fā)布
?? 2. 2002年6月,1.2版標(biāo)準(zhǔn)發(fā)布
?? 3. 2005年6月,1.3版標(biāo)注發(fā)布
? 串行RapidIO是物理層采用串行差分模擬信號(hào)傳輸?shù)腞apidIO標(biāo)準(zhǔn)。SRIO 1.x 標(biāo)準(zhǔn)支持的信號(hào)速度為1.25GHz、2.5GHz、3.125GHz;正在制定的RapidIO 2.0標(biāo)準(zhǔn)將支持5GHz、6.25GHz.
? 目前,幾乎所有的嵌入式系統(tǒng)芯片及設(shè)備供應(yīng)商都加入了RapidIO行業(yè)協(xié)會(huì)。德州儀器(TI) 2001年加入該組織,2003年成為領(lǐng)導(dǎo)委員會(huì)成員。2005年底,德州儀器(TI)推出第一個(gè)集成SRIO(Serial RapidIO)的DSP,后來又陸續(xù)推出共5款支持SRIO的DSP,這使得RapidIO的應(yīng)用全面啟動(dòng)。
RapidIO協(xié)議結(jié)構(gòu)及包格式
? 為了滿足靈活性和可擴(kuò)展性的要求,RapidIO協(xié)議分為三層:邏輯層、傳輸層和物理層。圖2說明了RapidIO協(xié)議的分層結(jié)構(gòu)。
圖2 RapidIO協(xié)議分層結(jié)構(gòu)
?? 邏輯層定義了操作協(xié)議; 傳輸層定義了包交換、路由和尋址機(jī)制;物理層定義了電氣特性、鏈路控制和糾錯(cuò)重傳等。
?? 象以太網(wǎng)一樣,RapidIO也是基于包交換的互連技術(shù)。如圖3所示,RapidIO包由包頭、可選的載荷數(shù)據(jù)和16bits CRC校驗(yàn)組成。包頭的長度因?yàn)榘愋筒煌赡苁鞘畮椎蕉畮讉€(gè)字節(jié)。每包的載荷數(shù)據(jù)長度不超過256字節(jié),這有利于減少傳輸時(shí)延,簡化硬件實(shí)現(xiàn)。
圖3 RapidIO包格式
上述包格式定義兼顧了包效率及組包/解包的簡單性。RapidIO交換器件僅需解析前后16bits,以及源/目地器件ID,這簡化了交換器件的實(shí)現(xiàn)。
邏輯層協(xié)議
邏輯層定義了操作協(xié)議和相應(yīng)的包格式。RapidIO支持的邏輯層業(yè)務(wù)主要是:直接IO/DMA (Direct IO/Direct Memory Access)和消息傳遞(Message Passing)。
直接IO/DMA模式是最簡單實(shí)用的傳輸方式,其前提是主設(shè)備知道被訪問端的存儲(chǔ)器映射。在這種模式下,主設(shè)備可以直接讀寫從設(shè)備的存儲(chǔ)器。直接 IO/DMA在被訪問端的功能往往完全由硬件實(shí)現(xiàn),所以被訪問的器件不會(huì)有任何軟件負(fù)擔(dān)。從功能上講,這一特點(diǎn)和德州儀器DSP的傳統(tǒng)的主機(jī)接口 (HPI, Host Port Interface)類似。但和HPI口相比,SRIO(Serial RapidIO)帶寬大,管腳少,傳輸方式更靈活。
對(duì)上層應(yīng)用來說,發(fā)起直接IO/DMA傳輸主要需提供以下參數(shù):目地器件ID、數(shù)據(jù)長度、數(shù)據(jù)在目地器件存儲(chǔ)器中的地址。
直接IO/DMA模式又可進(jìn)一步分為以下幾種傳輸格式:
?? 1. NWRITE: 寫操作,不要求接收端響應(yīng)。
?? 2. NWRITE_R: 帶響應(yīng)的NWRITE(NWRITE with Response),要求接收端響應(yīng)。
?? 3. SWRITE:流寫(Stream Write),數(shù)據(jù)長度必須是8字節(jié)的整數(shù)倍,不要求接收端響應(yīng)。
?? 4. NREAD: 讀操作。
SWRITE是最高效的傳輸格式;帶響應(yīng)的寫操作或讀操作效率則較低,一般只能達(dá)到不帶響應(yīng)的傳輸?shù)男实囊话搿?br>消息傳遞(Message Passing)模式則類似于以太網(wǎng)的傳輸方式,它不要求主設(shè)備知道被訪問設(shè)備的存儲(chǔ)器狀況。數(shù)據(jù)在被訪問設(shè)備中的位置則由郵箱號(hào)(類似于以太網(wǎng)協(xié)議中的端口號(hào))確定。從設(shè)備根據(jù)接收到的包的郵箱號(hào)把數(shù)據(jù)保存到對(duì)應(yīng)的緩沖區(qū),這一過程往往無法完全由硬件實(shí)現(xiàn),而需要軟件協(xié)助,所以會(huì)帶來一些軟件負(fù)擔(dān)。
對(duì)上層應(yīng)用來說,發(fā)起消息傳遞主要需提供以下參數(shù):目地器件ID、數(shù)據(jù)長度、郵箱號(hào)。
表2比較了直接IO/DMA和消息傳遞模式。
表2 直接IO/DMA和消息傳遞的對(duì)比
? ?直接IO/DMA ?消息傳遞
主機(jī)可直接訪問從機(jī)存儲(chǔ)器? ?可以 ?不可以
主機(jī)需要知道從機(jī)存儲(chǔ)器映射? ?需要 ?不需要
數(shù)據(jù)尋址方式 ?存儲(chǔ)器地址 ?郵箱號(hào)
支持的數(shù)據(jù)訪問方式 ?讀/寫 ?寫
從機(jī)軟件負(fù)擔(dān) ?無 ?有
傳輸層協(xié)議
RapidIO是基于包交換的互連技術(shù),傳輸層定義了包交換的路由和尋址機(jī)制。
RapidIO網(wǎng)絡(luò)主要由兩種器件,終端器件(End Point)和交換器件(Switch)組成。終端器件是數(shù)據(jù)包的源或目的地,不同的終端器件以器件ID來區(qū)分。RapidIO支持8 bits 或 16 bits器件ID,因此一個(gè)RapidIO網(wǎng)絡(luò)最多可容納256或65536個(gè)終端器件。與以太網(wǎng)類似,RapidIO也支持廣播或組播,每個(gè)終端器件除了獨(dú)有的器件ID外,還可配置廣播或組播ID。交換器件根據(jù)包的目地器件ID進(jìn)行包的轉(zhuǎn)發(fā),交換器件本身沒有器件ID。
RapidIO的互連拓?fù)浣Y(jié)構(gòu)非常靈活,除了通過交換器件外,兩個(gè)終端器件也可直接互連。以德州儀器(TI)的TMS320C6455 DSP為例,它有4個(gè)3.125G的SRIO口,它可支持的拓?fù)浣Y(jié)構(gòu)如圖4所示。
圖4 RapidIO支持靈活多樣的拓?fù)浣Y(jié)構(gòu)
物理層協(xié)議
RapidIO 1.x 協(xié)議定義了以下兩種物理層接口標(biāo)準(zhǔn):
?? 1. 8/16 并行LVDS協(xié)議
?? 2. 1x/4x 串行協(xié)議 (SRIO)
? 并行RapidIO由于信號(hào)線較多(40~76)難以得到廣泛的應(yīng)用,而1x/4x串行RapidIO僅4或16個(gè)信號(hào)線,逐漸成為主流,所以本文僅介紹串行RapidIO。
? 串行RapidIO基于現(xiàn)在已廣泛用于背板互連的SerDes(Serialize Deserialize)技術(shù),它采用差分交流耦合信號(hào)。差分交流耦合信號(hào)具有抗干擾強(qiáng)、速率高、傳輸距離較遠(yuǎn)等優(yōu)點(diǎn)。差分交流耦合信號(hào)的質(zhì)量不是由傳統(tǒng)的時(shí)序參數(shù)來衡量,而是通過眼圖來衡量,眼圖中的“眼睛”張得越開則信號(hào)質(zhì)量越好。圖5是一個(gè)典型的串行RapidIO信號(hào)的眼圖。
圖5 串行RapidIO信號(hào)眼圖
差分信號(hào)的強(qiáng)弱由一對(duì)信號(hào)線的電壓差值表示,串行RapidIO協(xié)議規(guī)定信號(hào)峰-峰值的范圍是200mV-2000mV。信號(hào)幅度越大,則傳輸距離越遠(yuǎn),RapidIO協(xié)議按信號(hào)傳輸距離定義兩種傳輸指標(biāo):
?? 1. 短距離傳輸(Short Run),<=50厘米,主要用于板內(nèi)互連,推薦的發(fā)送端信號(hào)峰-峰值為500mV-1000mV
?? 2. 長距離傳輸(Long Run),>50厘米,主要用于板間或背板互連,推薦的發(fā)送端信號(hào)峰-峰值為800mV-1600mV
?? 為了支持全雙工傳輸,串行RapidIO收發(fā)信號(hào)是獨(dú)立的,所以每一個(gè)串行RapidIO口由4根信號(hào)線組成。標(biāo)準(zhǔn)的1x/4x 串行RapidIO接口,支持四個(gè)口,共16根信號(hào)線。這四個(gè)口可被用作獨(dú)立的接口傳輸不同的數(shù)據(jù);也可合并在一起當(dāng)作一個(gè)接口使用,以提高單一接口的吞吐量。
德州儀器TMS320C6455 DSP上集成了標(biāo)準(zhǔn)的1x/4x串行RapidIO接口,如圖6所示。
圖6德州儀器TMS320C6455 DSP 1x/4x 串行RapidIO接口框圖
發(fā)送時(shí),邏輯層和傳輸層將組好的包經(jīng)過CRC編碼后被送到物理層的FIFO中,“8b/10b編碼”模塊將每8bit數(shù)據(jù)編碼成10bits數(shù)據(jù),“并/ 串轉(zhuǎn)換”模塊將10bits并行數(shù)據(jù)轉(zhuǎn)換成串行bits,發(fā)送模塊把數(shù)字bit轉(zhuǎn)換成差分交流耦合信號(hào)在信號(hào)線上發(fā)送出去。這里的8b/10編碼的主要作用是:
?? 1. 保證信號(hào)有足夠的跳變,以便于接收方恢復(fù)時(shí)鐘。串行RapidIO沒有專門的時(shí)鐘信號(hào)線,接收端靠數(shù)據(jù)信號(hào)的跳變恢復(fù)時(shí)鐘。所以需要把信號(hào)跳變少的 8bits數(shù)據(jù)(如全0或全1)編碼成有一定跳變的10bits數(shù)據(jù)。另外,也使得總體數(shù)據(jù)中0和1的個(gè)數(shù)均衡,以消除直流分量,保證交流耦合特性;
?? 2. 8b/10編碼可擴(kuò)大符號(hào)空間,以承載帶內(nèi)控制符號(hào)。10bits能表示1024個(gè)符號(hào),其中256個(gè)表示有效的8bits數(shù)據(jù),剩下的符號(hào)中的幾十個(gè)被用作控制符號(hào)。控制符號(hào)可被用作包分隔符,響應(yīng)標(biāo)志,或用于鏈路初始化,鏈路控制等功能;
?? 3. 8b/10編碼能實(shí)現(xiàn)一定的檢錯(cuò)功能。1024個(gè)符號(hào)中,除了256個(gè)有效數(shù)據(jù)符號(hào)和幾十個(gè)控制符號(hào)外,其它符號(hào)都是非法的,接收方收到非法符號(hào)則表示鏈路傳輸出錯(cuò)。
?? 接收的過程則正好相反,首先接收方需要根據(jù)數(shù)據(jù)信號(hào)的跳變恢復(fù)出時(shí)鐘,用這個(gè)時(shí)鐘采樣串行信號(hào),將串行信號(hào)轉(zhuǎn)換為10bits的并行信號(hào),再按8b/10b編碼規(guī)則解碼得到8bits數(shù)據(jù),最后做CRC校驗(yàn)并送上層處理。
??? 數(shù)據(jù)被正確的接收時(shí),接收端會(huì)發(fā)送一個(gè)ACK響應(yīng)包給發(fā)送端;如果數(shù)據(jù)不正確(CRC錯(cuò)或非法的10bits符號(hào)),則會(huì)送NACK包,要求發(fā)送方重傳。這種重傳糾錯(cuò)的功能由物理層完成,而物理層功能往往由硬件實(shí)現(xiàn),所以不需要軟件干預(yù)。
?? 串行RapidIO支持的信號(hào)速率有三種:1.25GHz,2.5GHz,3.125GHz。但由于8b/10b編碼,其有效數(shù)據(jù)速率分別為:1Gbps, 2Gbps, 2.5Gbps。 4個(gè)1x端口或一個(gè)4x端口支持的最高速率為10Gbps。
串行RapidIO在無線基礎(chǔ)設(shè)施上的應(yīng)用
?? 無線基礎(chǔ)設(shè)施如基站、媒體網(wǎng)關(guān)等,是典型的高性能嵌入式通信系統(tǒng),它們對(duì)互連的帶寬、時(shí)延、復(fù)雜度、靈活性、可靠性都有非常高的要求。而串行RapidIO正是滿足這些要求的最佳選擇。
以無線基站為例,在SRIO出現(xiàn)之前,無線基站的基帶處理的典型框圖如圖7所示。
圖7 傳統(tǒng)無線基站基帶處理框圖
? 在傳統(tǒng)的基站中,DSP與ASIC或FPGA之間的互連一般用外部存儲(chǔ)器接口EMIF(External Memory Interface);DSP之間或DSP與主機(jī)之間一般用HPI(Host Port Interface)或PCI互連。它們的主要缺點(diǎn)是:帶寬小;信號(hào)線多;主從模式接口,不支持對(duì)等傳輸。另外,DSP不能直接進(jìn)行背板傳輸。
? 使用SRIO(Serial RapidIO)則可有效的解決這些問題,大大提高無線基站的互連性能。圖8顯示了一種無線基站基帶互連框圖。在這里,SRIO實(shí)現(xiàn)了大部分器件之間的互連,甚至可支持DSP進(jìn)行直接背板傳輸。
圖8 SRIO提高無線基站互連性能
?? 通過SRIO交換器件互連可以進(jìn)一步提高基帶處理的靈活性,圖9顯示了一種基帶SRIO交換互連的框圖。這種互連有利于實(shí)現(xiàn)先進(jìn)的基帶處理資源池架構(gòu),數(shù)據(jù)可被送到任何一個(gè)通過SRIO交換器互連的處理器中,從而達(dá)到各個(gè)處理器的負(fù)載均衡,更加有效的利用系統(tǒng)的整體處理能力。
圖9 SRIO交換為無線基站基帶處理提供更大的靈活性
? 綜上所述,對(duì)嵌入式系統(tǒng)尤其是無線基礎(chǔ)設(shè)施,串行RapidIO是最佳的互連技術(shù)。高達(dá)10Gbps的帶寬、低時(shí)延和低軟件復(fù)雜度滿足了飛速發(fā)展的通信技術(shù)對(duì)性能的苛刻需求;串行差分模擬信號(hào)技術(shù)滿足了系統(tǒng)對(duì)管腳數(shù)量的限制,及對(duì)背板傳輸?shù)男枨螅混`活的點(diǎn)對(duì)點(diǎn)對(duì)等互連、交換互連,和可選的 1.25G/2.5G/3.125G三種速度能滿足多種不同應(yīng)用的需求。
?? 隨著串行RapidIO技術(shù)的發(fā)展成熟,以及越來越多的廠商的支持,串行RapidIO技術(shù)必將成為高性能嵌入式互連的主流技術(shù)。
評(píng)論
查看更多