Rapid IO---成就高速互連之美
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ù)包被接收下來(lái)之前就可以進(jìn)行對(duì)數(shù)據(jù)包的處理,交換器的直通模式就是利用了這個(gè)特性,這樣可以有效減少傳送時(shí)延。ACKID并不包括在CRC的計(jì)算范圍內(nèi),這幾個(gè)bit位在計(jì)算CRC時(shí)用0代替,這樣就保證了在每一個(gè)鏈路上CRC無(wú)須被重新計(jì)算,當(dāng)然如果HOP_COUNT字節(jié)有變化時(shí),CRC還是需要重新計(jì)算的。
傳輸層:
Rapid IO的第二層是傳輸層,實(shí)現(xiàn)Rapid IO數(shù)據(jù)包的路由、傳送。所有的邏輯層協(xié)議均使用單一的傳輸層實(shí)體來(lái)實(shí)現(xiàn),這樣無(wú)論邏輯層怎么變化,或是采用何種方式來(lái)封裝應(yīng)用,都可以用單一的傳輸層實(shí)體來(lái)實(shí)現(xiàn),即使有新的邏輯層規(guī)范出現(xiàn),也可以用這個(gè)單一的傳輸層來(lái)實(shí)現(xiàn)。
Rapid IO的路由和交換是通過(guò)每個(gè)終端設(shè)備的ID號(hào)來(lái)實(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)成如左圖,包括兩類(lèi)器件,一個(gè)是終端,產(chǎn)生數(shù)據(jù)包和接收數(shù)據(jù)包;另一類(lèi)是交換器,實(shí)現(xiàn)數(shù)據(jù)包在各個(gè)端點(diǎn)間的路由和傳送,且不對(duì)數(shù)據(jù)包做解釋。
Rapid IO的傳輸層包頭中的另一個(gè)字節(jié)是HOP_COUNT,是用來(lái)實(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)行讀寫(xiě)操作;如果此值不是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è)交換器,以此類(lèi)推。
邏輯層:
在Rapid IO的體系結(jié)構(gòu)中定義了6種基本操作,用來(lái)執(zhí)行相應(yīng)操作的事務(wù)和對(duì)操作的描述。這6種操作包括:NREAD(讀),NWRITE(寫(xiě)),NWRITE_R(寫(xiě)操作,但操作結(jié)束前需要等等一個(gè)響應(yīng));SWRITE(流寫(xiě),面向大數(shù)據(jù)量DMA傳送);Atomic(原子操作:讀-修改-寫(xiě));Maintenance(維護(hù)包,以Rapid IO專(zhuān)用寄存器為目標(biāo)的事務(wù),如:系統(tǒng)發(fā)現(xiàn),初始化、配置以及系統(tǒng)維護(hù))。
在消息傳遞系統(tǒng)中,經(jīng)常使用兩種機(jī)制將命令或數(shù)據(jù)從一個(gè)器件到另一個(gè)器件,一個(gè)是DMA(直接內(nèi)存訪問(wèn)),另一個(gè)是messaging(消息)。使用消息傳送時(shí),發(fā)送端只須訪問(wèn)目標(biāo),而不需要象DMA方式那樣,還需對(duì)目標(biāo)的地址空間的可見(jiàn)性。
Rapid IO定義了兩種不同的包格式用于消息事務(wù),第10類(lèi)包格式(door bell)和第11類(lèi)包格式,doorbell非常適合傳送8bit或16bit短信息,可以用于處理器的中斷等。第11類(lèi)消息數(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é)議,為封裝和傳輸通過(guò)Rapid IO交換器的數(shù)據(jù)流提供一種標(biāo)準(zhǔn)方法。支持獨(dú)立流事務(wù),通過(guò)SAR功能支持長(zhǎng)度可變的PDU,且與內(nèi)部的PDU協(xié)議無(wú)關(guān),提供對(duì)虛擬流識(shí)別功能;Rapid IO流是由源ID、目的ID與傳送鏈路組成的邏輯結(jié)構(gòu),為了支持固定、較小的包長(zhǎng),必須對(duì)較長(zhǎng)PDU分段處理,數(shù)據(jù)流支持分段傳輸以及重組還原操作,在段落類(lèi)型上主要有:開(kāi)始(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)也可以為每一用戶和流量類(lèi)型的組合分配一個(gè)單獨(dú)的流,使用虛擬流標(biāo)識(shí)最多可標(biāo)識(shí)四百萬(wàn)個(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ì)于來(lái)自多個(gè)源,發(fā)往同一個(gè)或多個(gè)目的地的流量會(huì)很大程度上降低系統(tǒng)的性能,端到端的流量控制使用由交換或是端點(diǎn)器件產(chǎn)生的特殊擁塞包來(lái)控制流量,通過(guò)交換器件將擁塞控制包傳回到源端,源端可根據(jù)收到的控制包暫停發(fā)送數(shù)據(jù)包一定時(shí)間,通過(guò)限制源頭流量來(lái)達(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在無(wú)線基站系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用,同樣在視頻處理,語(yǔ)音處理,高性能計(jì)算機(jī)及存儲(chǔ)領(lǐng)域也會(huì)得到越來(lái)越多的應(yīng)用。在實(shí)現(xiàn)芯片到芯片之間、板與板之間的高速互連上,Rapid IO所能帶來(lái)的好處也越來(lái)越直觀,對(duì)于簡(jiǎn)化系統(tǒng)設(shè)計(jì)、高帶寬、低延時(shí)等特點(diǎn)也被開(kāi)發(fā)人員廣泛接受。
下一代的Rapid IO在應(yīng)用上也要向機(jī)箱與機(jī)箱間的高速互連方向上發(fā)展,同時(shí)也會(huì)提供更高的傳輸速率,2.0規(guī)范中已經(jīng)可以實(shí)現(xiàn)40Gbps的帶寬。我們相信,隨著越來(lái)越多的處理器支持Rapid IO接口,Rapid IO的應(yīng)用前景會(huì)越來(lái)越光明。
作者簡(jiǎn)介:
姓名:裴濟(jì)杰
工作單位:加拿大騰華半導(dǎo)體上海代表處
職務(wù):資深技術(shù)支持工程
聯(lián)系信息:地址:上海市人民路885弄淮海中華大廈1410室
電話:021-63114043 13501798266
郵編:200070
評(píng)論