在過去的30多年時(shí)間內(nèi),,處理器的主頻和性能呈現(xiàn)指數(shù)上升的趨勢(shì),,而與之相對(duì)應(yīng)的處理器總線傳送能力的增長(zhǎng)卻相對(duì)緩慢的多,這就導(dǎo)致了由時(shí)鐘頻率表征的CPU的性能和由總線頻率表征的CPU可用的總線帶寬之間的差距不斷在變大,互連總線成為高速運(yùn)算和處理系統(tǒng)的瓶頸?,F(xiàn)代的高性能計(jì)算系統(tǒng)和網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)需要更高速率的數(shù)據(jù)傳送,。高帶寬、低延遲,,高可靠性成為衡量一個(gè)總線技術(shù)的基本要求,。 一、 傳統(tǒng)總線的問題: 傳統(tǒng)總線多采用并線總線的工作方式,,這類總線一般分為三組:數(shù)據(jù)線,,地址線和控制線。實(shí)現(xiàn)此類總線互連的器件所需引腳數(shù)較多,,例如對(duì)于64位數(shù)據(jù)寬的總線,,一般由64根數(shù)據(jù)線,32-40根地址線以及30根左右的控制線,,另外由于半導(dǎo)體制造工藝的限制還要加上一定數(shù)量的電源引線和地線,,總共會(huì)有約200根左右的引線,這給器件封裝,、測(cè)試,、焊接都帶來了一些問題,如果要將這種總線用于系統(tǒng)之間的通過背板的互連,,由此帶來的困難就可想而知,。
為了提高總線的傳輸能力,傳統(tǒng)總線多采用增加數(shù)據(jù)總線的寬度或是增加總線的頻率的方式來實(shí)現(xiàn),。如PCI總線支持25M,、33M、50M,、66M的工作頻率,,PCI-X總線是在PCI總線結(jié)構(gòu)的基礎(chǔ)上進(jìn)得到的一種總線結(jié)構(gòu),在硬件和軟件上兼容PCI總線,,PCI-X總線可以支持32bit,、64bit的總線,,其工作頻率為66M,、133M,對(duì)于64bit的PCI-X,,如果其總線工作頻率為133MHz,,其峰值傳送帶寬可達(dá)到133×64bit=8.512Gbps。目前PCI-X也有一些版本定義了總線頻率為266MHz或者533MHz的總線,,另外也有一些總線定義了數(shù)據(jù)寬度為128bit 或是256bit的總線,,但很少有人會(huì)選用這樣的總線,因?yàn)樵黾涌偩€頻率和數(shù)據(jù)帶寬雖然一定程度上滿足了人們對(duì)高速數(shù)據(jù)傳送的需求,但同時(shí)也帶來了一些新的問題,。更寬的總線導(dǎo)致器件引腳數(shù)的增加,,從而增加封裝尺寸,當(dāng)然帶來成本上的增加,。
另一個(gè)問題是當(dāng)總線的工作頻率超過133MHz時(shí),,很難在一條總線上支持超過兩個(gè)外部設(shè)備,在總線上增加器件相當(dāng)于增加容性負(fù)載,,而容性負(fù)載的增加意味著裝載或排空電荷使總線達(dá)到所需的額定電平的時(shí)間增長(zhǎng),,信號(hào)的上升和下降時(shí)間的增長(zhǎng)會(huì)限制總線的工作頻率。對(duì)于并線總線的另一個(gè)問題是時(shí)鐘與信號(hào)的偏移容限的問題,,對(duì)于這樣一組并行信號(hào)線的集合,,信號(hào)的采樣是取決于時(shí)鐘信號(hào)的上升沿或是下降沿,這樣對(duì)于信號(hào)的跳變和時(shí)鐘的跳變時(shí)刻的時(shí)間差就有一個(gè)上限值,,隨著速率的升高,,布線長(zhǎng)度、器件門電路自身的翻轉(zhuǎn)時(shí)間都會(huì)影響總線的速率,。
用于處理器之間互連以及背板互連的另一個(gè)主要技術(shù)是以太網(wǎng),,近些年來,以太網(wǎng)在存儲(chǔ),、電信,、通訊、無線,、工業(yè)應(yīng)用以及嵌入式應(yīng)用中得到大量的應(yīng)用,,現(xiàn)有的成熟的硬件和協(xié)議棧降低了開發(fā)的復(fù)雜性和產(chǎn)品的開發(fā)成本。但是在局域網(wǎng)和廣域網(wǎng)中得到很好應(yīng)用的以太網(wǎng)用于這種芯片級(jí)或是板極的系統(tǒng)互連顯示出了低效率,、高延時(shí)的特性,,QOS需要高層軟件的參與,造成軟件模塊化結(jié)構(gòu)不清晰,。尤其是當(dāng)背板的傳輸速率從1Gbps增加到10Gbps時(shí),,增加的處理要求已經(jīng)超出了以太網(wǎng)的能力。
二,、什么是Rapid IO,?
Rapid IO技術(shù)最初是由Freescale 和Mercury 共同研發(fā)的一項(xiàng)互連技術(shù),其研發(fā)初衷是作為處理器的前端總線,,用于處理器之間的互連,,但在標(biāo)準(zhǔn)制定之初,其創(chuàng)建者就意識(shí)到了RapidIO還可以做為系統(tǒng)級(jí)互連的高效前端總線而使用,。1999年完成第一個(gè)標(biāo)準(zhǔn)的制定,,2003 年5月,Mercury Computer Systems公司首次推出使用Rapid IO技術(shù)的多處理器系統(tǒng)ImpactRT 3100, 表明Rapid IO已由一個(gè)標(biāo)準(zhǔn)制定階段進(jìn)展到產(chǎn)品階段,到目前為止,,Rapid IO已經(jīng)成為電信,,通迅以及嵌入式系統(tǒng)內(nèi)的芯片與芯片之間,板與板之間的背板互連技術(shù)的生力軍,。
Rapid IO 是針對(duì)嵌入式系統(tǒng)的獨(dú)特互連需求而提出的,,那么我們首先來說明嵌入式系統(tǒng)互連的一些基本需求:嵌入式系統(tǒng)需要的是一種標(biāo)準(zhǔn)化的互連設(shè)計(jì),要滿足以下幾個(gè)基本的特點(diǎn):高效率,、低系統(tǒng)成本,,點(diǎn)對(duì)點(diǎn)或是點(diǎn)對(duì)多點(diǎn)的通信,支持DMA操作,,支持消息傳遞模式交換數(shù)據(jù),,支持分散處理和多主控系統(tǒng),支持多種拓樸結(jié)構(gòu),;另外,,高穩(wěn)定性和QOS也是選擇嵌入式系統(tǒng)總線的基本原則。而這些恰是Rapid IO期望滿足的方向,。所以Rapid IO在制定之初即確定了以下幾個(gè)基本原則:一是輕量型的傳輸協(xié)議,,使協(xié)議盡量簡(jiǎn)單;二是對(duì)軟件的制約要少,,層次結(jié)構(gòu)清晰,;三是專注于機(jī)箱內(nèi)部芯片與芯片之間,板與板之間的互連,。
Rapid IO采用三層分級(jí)的體系結(jié)構(gòu),,分級(jí)結(jié)構(gòu)圖如下圖所示:
由此圖可見,Rapid IO協(xié)議由邏輯層,、傳輸層和物理層構(gòu)成,。最明顯的一個(gè)特點(diǎn)就是Rapid IO采用了單一的公用傳輸層規(guī)范來相容、會(huì)聚不同的邏輯層和物理層,,單一的邏輯層實(shí)體增強(qiáng)了Rapid IO的適應(yīng)性,。 物理層定義了串行和并行兩個(gè)實(shí)體,得到廣泛應(yīng)用的只有串行方式,,尤其是用在背板互連的場(chǎng)合,,串行方式可以在兩個(gè)連接器之間允許80-100cm的連線,單鏈路傳輸帶寬可達(dá)10Gbps,。目前Rapid IO的標(biāo)準(zhǔn)是Version1.3,,在未來的Version2.0規(guī)范中定義了更高的傳輸速率,,可以得到更高的傳輸帶寬,。
物理層:
Rapid IO規(guī)范中定義的最低層是物理層,最初定義的是并行總線,之后定義了串行總線,,并線總線可以選擇8位或16位的寬度,,傳輸電平采用LVDS方式,時(shí)鐘信息在一對(duì)單獨(dú)的差分線上傳送,,不在數(shù)據(jù)流中編碼,,頻率在250M-1.0G之間。相比串行總線而言,,無多少優(yōu)點(diǎn)可言,,所以只是在最初有支持這種總線的芯片出現(xiàn),目前幾乎所有的物理層均采用了串行方式,。
串行物理層定義了器件間的全雙工串行鏈路,,在每個(gè)方向上支持1個(gè)串行差分對(duì)稱為1個(gè)通道(1x),或同時(shí)支持4個(gè)并行的串行差分對(duì)稱為4通道(4x),,接口的電氣特性采用成熟的XAUI(10GbE Attachment Unit Interface)接口,,編碼方式采用的是8B/10B編碼,對(duì)鏈路的管理,,包括流量控制,,包定界和錯(cuò)誤報(bào)告等使用專用的8B/10B碼(即K碼),接收端從鏈路上提取時(shí)鐘信息,,無需獨(dú)立的時(shí)鐘線,。每一個(gè)通道支持三種不同的傳送波特率1.25G,2.5G,,3.125G(與之相對(duì)應(yīng)的數(shù)據(jù)速率分別是1.0G,,2.0G,2.5Gbps),。
圖:Control symbol 包的結(jié)構(gòu) Rapid IO是一種基于可靠傳送的協(xié)議,,每一個(gè)數(shù)據(jù)據(jù)包的傳送均要求對(duì)端在物理層上響應(yīng)一個(gè)控制符號(hào)包,此包是一個(gè)4個(gè)字節(jié)的數(shù)據(jù)包,,表明了數(shù)據(jù)包的傳送狀態(tài),,數(shù)據(jù)包是否被對(duì)方接方,還是要求重新發(fā)送或是包未被接收,。發(fā)送方和接收方均可以使用控制符號(hào)包來獲得對(duì)方的狀態(tài),。
圖:Rapid IO包結(jié)構(gòu)及物理層組成 Ack ID被接收方用作發(fā)送響應(yīng)包的ID號(hào),表明此包是否被接收端接收,,或是需要重傳,。Rapid IO協(xié)議定義了兩個(gè)bit位用于表示包的優(yōu)先級(jí),所以共有4個(gè)優(yōu)先等級(jí),,0是最低的,,3是最高的,,優(yōu)先級(jí)高的包將被交換器優(yōu)先傳送。 每一個(gè)數(shù)據(jù)包都會(huì)被物理層附加上一個(gè)或兩個(gè)16bit的CRC字段,,用于接收方判斷接收到的數(shù)據(jù)包的完整性,,小于80個(gè)字節(jié)的數(shù)據(jù)包只有一個(gè)CRC,大于80個(gè)字節(jié)的數(shù)據(jù)包除了在第80個(gè)字節(jié)后有第一個(gè)CRC字段后,,還會(huì)在包的末尾再加上一個(gè)CRC字段,,實(shí)現(xiàn)數(shù)據(jù)包的檢錯(cuò),自動(dòng)糾錯(cuò)和自動(dòng)重傳的功能,,保證數(shù)據(jù)包被對(duì)端完整正確的接收,。第一個(gè)CRC字段可用于對(duì)大數(shù)據(jù)包包頭的驗(yàn)證,這樣就可以在整個(gè)數(shù)據(jù)包被接收下來之前就可以進(jìn)行對(duì)數(shù)據(jù)包的處理,,交換器的直通模式就是利用了這個(gè)特性,,這樣可以有效減少傳送時(shí)延。ACKID并不包括在CRC的計(jì)算范圍內(nèi),,這幾個(gè)bit位在計(jì)算CRC時(shí)用0代替,,這樣就保證了在每一個(gè)鏈路上CRC無須被重新計(jì)算,當(dāng)然如果HOP_COUNT字節(jié)有變化時(shí),,CRC還是需要重新計(jì)算的,。
傳輸層: Rapid IO的第二層是傳輸層,實(shí)現(xiàn)Rapid IO數(shù)據(jù)包的路由,、傳送,。所有的邏輯層協(xié)議均使用單一的傳輸層實(shí)體來實(shí)現(xiàn),這樣無論邏輯層怎么變化,,或是采用何種方式來封裝應(yīng)用,,都可以用單一的傳輸層實(shí)體來實(shí)現(xiàn),即使有新的邏輯層規(guī)范出現(xiàn),,也可以用這個(gè)單一的傳輸層來實(shí)現(xiàn),。
Rapid IO的路由和交換是通過每個(gè)終端設(shè)備的ID號(hào)來實(shí)現(xiàn)的。每一個(gè)終端都會(huì)分配一個(gè)唯一的ID號(hào),,當(dāng)一個(gè)終端發(fā)出一個(gè)數(shù)據(jù)包時(shí),,在它的包頭中包含有目的終端的ID號(hào)和發(fā)送源端的ID號(hào)。每一個(gè)交換器在它的每一個(gè)端口上都有一個(gè)交換路由表,,根據(jù)此表就可以決定此數(shù)據(jù)包由那一個(gè)端口送出,。每個(gè)端口的路由表需要在系統(tǒng)初始化時(shí)進(jìn)行配置,這與以太網(wǎng)相比,,顯得不是非常的靈活和智能,,但正是如此,使得系統(tǒng)的路由實(shí)現(xiàn)變得非常簡(jiǎn)單,。同樣對(duì)于組播功能的實(shí)現(xiàn)也變得簡(jiǎn)單,,只是由單一的傳輸層就可以實(shí)現(xiàn)了,。
Rapid IO系統(tǒng)構(gòu)成如左圖,包括兩類器件,,一個(gè)是終端,產(chǎn)生數(shù)據(jù)包和接收數(shù)據(jù)包,;另一類是交換器,,實(shí)現(xiàn)數(shù)據(jù)包在各個(gè)端點(diǎn)間的路由和傳送,且不對(duì)數(shù)據(jù)包做解釋,。 Rapid IO的傳輸層包頭中的另一個(gè)字節(jié)是HOP_COUNT,,是用來實(shí)現(xiàn)終端對(duì)交換器的初始化和路由配置,Rapid IO交換器的配置可以用任一個(gè)與之相連的終端進(jìn)行配置,,當(dāng)交換器收到一個(gè)數(shù)據(jù)包時(shí),,它會(huì)首先判斷收到包的HOP_COUNT值,如果此值是0則由此交換器終結(jié)此數(shù)據(jù)包,,交換器利用此數(shù)據(jù)包的數(shù)據(jù)進(jìn)行讀寫操作,;如果此值不是0,則交換器將此值減一,,然后按照目的ID值查路由表進(jìn)行轉(zhuǎn)發(fā),。如果是要對(duì)級(jí)連的多個(gè)交換器進(jìn)行配置,可以在發(fā)送這些維護(hù)包時(shí)設(shè)置HOP_COUNT為0,1,,2等對(duì)與之相連的第一個(gè)交換器,,第二個(gè)交換器以及第三個(gè)交換器,以此類推,。
邏輯層: 在Rapid IO的體系結(jié)構(gòu)中定義了6種基本操作,,用來執(zhí)行相應(yīng)操作的事務(wù)和對(duì)操作的描述。這6種操作包括:NREAD(讀),,NWRITE(寫),,NWRITE_R(寫操作,但操作結(jié)束前需要等等一個(gè)響應(yīng)),;SWRITE(流寫,,面向大數(shù)據(jù)量DMA傳送);Atomic(原子操作:讀-修改-寫),;Maintenance(維護(hù)包,,以Rapid IO專用寄存器為目標(biāo)的事務(wù),如:系統(tǒng)發(fā)現(xiàn),,初始化,、配置以及系統(tǒng)維護(hù))。
在消息傳遞系統(tǒng)中,,經(jīng)常使用兩種機(jī)制將命令或數(shù)據(jù)從一個(gè)器件到另一個(gè)器件,,一個(gè)是DMA(直接內(nèi)存訪問),,另一個(gè)是messaging(消息)。使用消息傳送時(shí),,發(fā)送端只須訪問目標(biāo),,而不需要象DMA方式那樣,還需對(duì)目標(biāo)的地址空間的可見性,。 Rapid IO定義了兩種不同的包格式用于消息事務(wù),,第10類包格式(door bell)和第11類包格式,doorbell非常適合傳送8bit或16bit短信息,,可以用于處理器的中斷等,。第11類消息數(shù)據(jù)所最大的載荷是4096字節(jié),可以由16個(gè)消息事務(wù)組成,,每個(gè)最大載荷是256字節(jié),。Rapid IO可以支持4個(gè)訊息信箱(mailbox),每個(gè)信箱可以最多裝入4個(gè)信件,,這樣發(fā)送方可以同時(shí)發(fā)送4個(gè)信件到同一個(gè)目標(biāo)信箱,。 除此,Rapid IO也具備Data Streaming的邏輯層協(xié)議,,為封裝和傳輸通過Rapid IO交換器的數(shù)據(jù)流提供一種標(biāo)準(zhǔn)方法,。支持獨(dú)立流事務(wù),通過SAR功能支持長(zhǎng)度可變的PDU,,且與內(nèi)部的PDU協(xié)議無關(guān),,提供對(duì)虛擬流識(shí)別功能;Rapid IO流是由源ID,、目的ID與傳送鏈路組成的邏輯結(jié)構(gòu),,為了支持固定、較小的包長(zhǎng),,必須對(duì)較長(zhǎng)PDU分段處理,,數(shù)據(jù)流支持分段傳輸以及重組還原操作,在段落類型上主要有:開始(Start),、繼續(xù)(Continuation)和結(jié)束(End), 當(dāng)然可能會(huì)有多個(gè)繼續(xù)段,。虛擬流被定義為協(xié)議數(shù)據(jù)單元定序集,可以對(duì)各個(gè)數(shù)據(jù)流進(jìn)行識(shí)別,,在輸入輸出器件對(duì)之間可以只存在一個(gè)單獨(dú)的流,,系統(tǒng)也可以為每一用戶和流量類型的組合分配一個(gè)單獨(dú)的流,使用虛擬流標(biāo)識(shí)最多可標(biāo)識(shí)四百萬個(gè)流,,特定的流量級(jí)別可以提供基于優(yōu)先級(jí),、延遲和吞吐率等因素的流量商定,可以根據(jù)中最高位的優(yōu)先次序處理交換結(jié)構(gòu)中的流量,。
流量控制是任何互連技術(shù)的重要內(nèi)容,,Rapid IO提供了鏈路級(jí)的流量控制和端到端的流量控制兩種方式,,由于業(yè)務(wù)流與物理連接和系統(tǒng)拓樸結(jié)構(gòu)相關(guān),規(guī)定流量控制為Rapid IO物理層規(guī)范的內(nèi)容,,同時(shí)定義了重傳,、限速和基于信用三種流控方式,保證Rapid IO數(shù)據(jù)流的正確傳送,。除了鏈路級(jí)的流量控制處,,同時(shí)Rapid IO也定義了端到端的流量控制機(jī)制,鏈路級(jí)流控管理緊相連的兩個(gè)器件,,但對(duì)于來自多個(gè)源,,發(fā)往同一個(gè)或多個(gè)目的地的流量會(huì)很大程度上降低系統(tǒng)的性能,,端到端的流量控制使用由交換或是端點(diǎn)器件產(chǎn)生的特殊擁塞包來控制流量,,通過交換器件將擁塞控制包傳回到源端,源端可根據(jù)收到的控制包暫停發(fā)送數(shù)據(jù)包一定時(shí)間,,通過限制源頭流量來達(dá)到流量控制的目的,。單一的Rapid IO傳輸層結(jié)構(gòu)使得擁塞數(shù)據(jù)控制包的傳送變得非常簡(jiǎn)單,交換結(jié)構(gòu)只是把他當(dāng)作普通數(shù)據(jù)包進(jìn)行傳送,,但包的優(yōu)先級(jí)可能不同,。
三、 Rapid IO在高速系統(tǒng)設(shè)計(jì)中的應(yīng)用
目前,,Rapid IO在無線基站系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用,,同樣在視頻處理,語音處理,,高性能計(jì)算機(jī)及存儲(chǔ)領(lǐng)域也會(huì)得到越來越多的應(yīng)用,。在實(shí)現(xiàn)芯片到芯片之間、板與板之間的高速互連上,,Rapid IO所能帶來的好處也越來越直觀,,對(duì)于簡(jiǎn)化系統(tǒng)設(shè)計(jì)、高帶寬,、低延時(shí)等特點(diǎn)也被開發(fā)人員廣泛接受,。
下一代的Rapid IO在應(yīng)用上也要向機(jī)箱與機(jī)箱間的高速互連方向上發(fā)展,同時(shí)也會(huì)提供更高的傳輸速率,,2.0規(guī)范中已經(jīng)可以實(shí)現(xiàn)40Gbps的帶寬,。我們相信,隨著越來越多的處理器支持Rapid IO接口,,Rapid IO的應(yīng)用前景會(huì)越來越光明,。
作者簡(jiǎn)介: 姓名:裴濟(jì)杰 工作單位:加拿大騰華半導(dǎo)體上海代表處 職務(wù):資深技術(shù)支持工程 聯(lián)系信息:地址:上海市人民路885弄淮海中華大廈1410室 電話:021-63114043 13501798266 郵編:200070
|