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