Rapid IO---成就高速互連之美
Ack ID被接收方用作發(fā)送響應(yīng)包的ID號,表明此包是否被接收端接收,或是需要重傳。Rapid IO協(xié)議定義了兩個bit位用于表示包的優(yōu)先級,所以共有4個優(yōu)先等級,0是最低的,3是最高的,優(yōu)先級高的包將被交換器優(yōu)先傳送。
每一個數(shù)據(jù)包都會被物理層附加上一個或兩個16bit的CRC字段,用于接收方判斷接收到的數(shù)據(jù)包的完整性,小于80個字節(jié)的數(shù)據(jù)包只有一個CRC,大于80個字節(jié)的數(shù)據(jù)包除了在第80個字節(jié)后有第一個CRC字段后,還會在包的末尾再加上一個CRC字段,實(shí)現(xiàn)數(shù)據(jù)包的檢錯,自動糾錯和自動重傳的功能,保證數(shù)據(jù)包被對端完整正確的接收。第一個CRC字段可用于對大數(shù)據(jù)包包頭的驗(yàn)證,這樣就可以在整個數(shù)據(jù)包被接收下來之前就可以進(jìn)行對數(shù)據(jù)包的處理,交換器的直通模式就是利用了這個特性,這樣可以有效減少傳送時延。ACKID并不包括在CRC的計(jì)算范圍內(nèi),這幾個bit位在計(jì)算CRC時用0代替,這樣就保證了在每一個鏈路上CRC無須被重新計(jì)算,當(dāng)然如果HOP_COUNT字節(jié)有變化時,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),也可以用這個單一的傳輸層來實(shí)現(xiàn)。
Rapid IO的路由和交換是通過每個終端設(shè)備的ID號來實(shí)現(xiàn)的。每一個終端都會分配一個唯一的ID號,當(dāng)一個終端發(fā)出一個數(shù)據(jù)包時,在它的包頭中包含有目的終端的ID號和發(fā)送源端的ID號。每一個交換器在它的每一個端口上都有一個交換路由表,根據(jù)此表就可以決定此數(shù)據(jù)包由那一個端口送出。每個端口的路由表需要在系統(tǒng)初始化時進(jìn)行配置,這與以太網(wǎng)相比,顯得不是非常的靈活和智能,但正是如此,使得系統(tǒng)的路由實(shí)現(xiàn)變得非常簡單。同樣對于組播功能的實(shí)現(xiàn)也變得簡單,只是由單一的傳輸層就可以實(shí)現(xiàn)了。
Rapid IO系統(tǒng)構(gòu)成如左圖,包括兩類器件,一個是終端,產(chǎn)生數(shù)據(jù)包和接收數(shù)據(jù)包;另一類是交換器,實(shí)現(xiàn)數(shù)據(jù)包在各個端點(diǎn)間的路由和傳送,且不對數(shù)據(jù)包做解釋。
Rapid IO的傳輸層包頭中的另一個字節(jié)是HOP_COUNT,是用來實(shí)現(xiàn)終端對交換器的初始化和路由配置,Rapid IO交換器的配置可以用任一個與之相連的終端進(jìn)行配置,當(dāng)交換器收到一個數(shù)據(jù)包時,它會首先判斷收到包的HOP_COUNT值,如果此值是0則由此交換器終結(jié)此數(shù)據(jù)包,交換器利用此數(shù)據(jù)包的數(shù)據(jù)進(jìn)行讀寫操作;如果此值不是0,則交換器將此值減一,然后按照目的ID值查路由表進(jìn)行轉(zhuǎn)發(fā)。如果是要對級連的多個交換器進(jìn)行配置,可以在發(fā)送這些維護(hù)包時設(shè)置HOP_COUNT為0,1,2等對與之相連的第一個交換器,第二個交換器以及第三個交換器,以此類推。
邏輯層:
在Rapid IO的體系結(jié)構(gòu)中定義了6種基本操作,用來執(zhí)行相應(yīng)操作的事務(wù)和對操作的描述。這6種操作包括:NREAD(讀),NWRITE(寫),NWRITE_R(寫操作,但操作結(jié)束前需要等等一個響應(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ù)從一個器件到另一個器件,一個是DMA(直接內(nèi)存訪問),另一個是messaging(消息)。使用消息傳送時,發(fā)送端只須訪問目標(biāo),而不需要象DMA方式那樣,還需對目標(biāo)的地址空間的可見性。
Rapid IO定義了兩種不同的包格式用于消息事務(wù),第10類包格式(door bell)和第11類包格式,doorbell非常適合傳送8bit或16bit短信息,可以用于處理器的中斷等。第11類消息數(shù)據(jù)所最大的載荷是4096字節(jié),可以由16個消息事務(wù)組成,每個最大載荷是256字節(jié)。Rapid IO可以支持4個訊息信箱(mailbox),每個信箱可以最多裝入4個信件,這樣發(fā)送方可以同時發(fā)送4個信件到同一個目標(biāo)信箱。
除此,Rapid IO也具備Data Streaming的邏輯層協(xié)議,為封裝和傳輸通過Rapid IO交換器的數(shù)據(jù)流提供一種標(biāo)準(zhǔn)方法。支持獨(dú)立流事務(wù),通過SAR功能支持長度可變的PDU,且與內(nèi)部的PDU協(xié)議無關(guān),提供對虛擬流識別功能;Rapid IO流是由源ID、目的ID與傳送鏈路組成的邏輯結(jié)構(gòu),為了支持固定、較小的包長,必須對較長PDU分段處理,數(shù)據(jù)流支持分段傳輸以及重組還原操作,在段落類型上主要有:開始(Start)、繼續(xù)(Continuation)和結(jié)束(End), 當(dāng)然可能會有多個繼續(xù)段。虛擬流被定義為協(xié)議數(shù)據(jù)單元定序集,可以對各個數(shù)據(jù)流進(jìn)行識別,在輸入輸出器件對之間可以只存在一個單獨(dú)的流,系統(tǒng)也可以為每一用戶和流量類型的組合分配一個單獨(dú)的流,使用虛擬流標(biāo)識最多可標(biāo)識四百萬個流,特定的流量級別可以提供基于優(yōu)先級、延遲和吞吐率等因素的流量商定,可以根據(jù)中最高位的優(yōu)先次序處理交換結(jié)構(gòu)中的流量。
流量控制是任何互連技術(shù)的重要內(nèi)容,Rapid IO提供了鏈路級的流量控制和端到端的流量控制兩種方式,由于業(yè)務(wù)流與物理連接和系統(tǒng)拓樸結(jié)構(gòu)相關(guān),規(guī)定流量控制為Rapid IO物理層規(guī)范的內(nèi)容,同時定義了重傳、限速和基于信用三種流控方式,保證Rapid IO數(shù)據(jù)流的正確傳送。除了鏈路級的流量控制處,同時Rapid IO也定義了端到端的流量控制機(jī)制,鏈路級流控管理緊相連的兩個器件,但對于來自多個源,發(fā)往同一個或多個目的地的流量會很大程度上降低系統(tǒng)的性能,端到端的流量控制使用由交換或是端點(diǎn)器件產(chǎn)生的特殊擁塞包來控制流量,通過交換器件將擁塞控制包傳回到源端,源端可根據(jù)收到的控制包暫停發(fā)送數(shù)據(jù)包一定時間,通過限制源頭流量來達(dá)到流量控制的目的。單一的Rapid IO傳輸層結(jié)構(gòu)使得擁塞數(shù)據(jù)控制包的傳送變得非常簡單,交換結(jié)構(gòu)只是把他當(dāng)作普通數(shù)據(jù)包進(jìn)行傳送,但包的優(yōu)先級可能不同。
三、 Rapid IO在高速系統(tǒng)設(shè)計(jì)中的應(yīng)用
目前,Rapid IO在無線基站系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用,同樣在視頻處理,語音處理,高性能計(jì)算機(jī)及存儲領(lǐng)域也會得到越來越多的應(yīng)用。在實(shí)現(xiàn)芯片到芯片之間、板與板之間的高速互連上,Rapid IO所能帶來的好處也越來越直觀,對于簡化系統(tǒng)設(shè)計(jì)、高帶寬、低延時等特點(diǎn)也被開發(fā)人員廣泛接受。
下一代的Rapid IO在應(yīng)用上也要向機(jī)箱與機(jī)箱間的高速互連方向上發(fā)展,同時也會提供更高的傳輸速率,2.0規(guī)范中已經(jīng)可以實(shí)現(xiàn)40Gbps的帶寬。我們相信,隨著越來越多的處理器支持Rapid IO接口,Rapid IO的應(yīng)用前景會越來越光明。
作者簡介:
姓名:裴濟(jì)杰
工作單位:加拿大騰華半導(dǎo)體上海代表處
職務(wù):資深技術(shù)支持工程
聯(lián)系信息:地址:上海市人民路885弄淮海中華大廈1410室
電話:021-63114043 13501798266
郵編:200070
評論