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級互連技術比較
串行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和消息傳遞的對比
傳輸層協議
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技術必將成為高性能嵌入式互連的主流技術。
歡迎關注至芯科技
至芯官網:www.zxopen.com
至芯科技技術論壇:www.fpgaw.com
至芯科技淘寶網址:
https://zxopen.taobao.com
至芯科技FPGA初級課程(B站):
https://space.bilibili.com/521850676
至芯科技FPGA在線課程(騰訊課堂):
https://zxopenbj.ke.qq.com/
至芯科技-FPGA 交流群(QQ):282124839
更多資料下載歡迎注冊http://www.fpgaw.com
歡迎加入至芯科技FPGA微信學習交流群,這里有一群優秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
評論