李玉峰, 郭 通 , 陳世文, 呂 平
(1.國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 河 南 鄭 州 4 50002;2.防空兵指揮學(xué)院 信 息控制系,河南 鄭 州 4 50052)
傳統(tǒng)的芯片間高速數(shù)據(jù)包傳輸互連技術(shù)主要是XAUI[1]和SPI-4.2[2],普遍應(yīng)用于10 Gb/s及其之下的各種通信系統(tǒng)中。當(dāng)通信速率達(dá)到40 Gb/s、100 Gb/s乃至更高時(shí),SPI-4.2由于使用低速并行總線實(shí)現(xiàn)傳輸,需要大量芯片引腳才能滿足帶寬要求,因此很難應(yīng)對(duì)。而XAUI由于缺乏流控機(jī)制和通道化支持,不適合在包與包之間需區(qū)別對(duì)待的應(yīng)用,因此也不適用。Interlaken[3]是一種新的芯片對(duì)芯片信道化包接口協(xié)議,它將Serdes技術(shù)和一種簡(jiǎn)單但可靠的協(xié)議層結(jié)合在一起,為高效而可靠的芯片與芯片互連提供了一個(gè)接口,此接口可以很容易的擴(kuò)展到100 Gb/s甚至更高,是未來(lái)高速互連的主流技術(shù)。
Interlaken協(xié)議的數(shù)據(jù)處理總體上可以分為兩個(gè)層次:協(xié)議層和幀層,下面區(qū)分層次整理并給出各層數(shù)據(jù)處理流程。
1.1.1協(xié)議層數(shù)據(jù)處理流程
協(xié)議層發(fā)送方向上主要對(duì)傳送數(shù)據(jù)依算法[4]進(jìn)行切割,切割后的數(shù)據(jù)稱為突發(fā)數(shù)據(jù),突發(fā)數(shù)據(jù)以64 bit為單位組織,稱為1個(gè)突發(fā)數(shù)據(jù)字。各塊突發(fā)數(shù)據(jù)攜帶對(duì)應(yīng)的64 bit控制字,用來(lái)表征該突發(fā)數(shù)據(jù)的相關(guān)信息,稱為突發(fā)控制字。突發(fā)控制字結(jié)構(gòu)如下:{Control:1bit,Type:1bit,SOP:1bit,EOP_Format:4bit,Reset Calendar:1bit,In-Band Flow Control:16bit,Channel Number:8bit,Multiple-Use:8bit,CRC24:24bit},其中Control字段用來(lái)區(qū)分協(xié)議層控制字和幀層控制字類型;Type用來(lái)區(qū)分跟隨本控制字的是數(shù)據(jù)字還是空閑控制字;SOP用來(lái)表示跟隨本控制字的是報(bào)頭;EOP_Format用來(lái)表示跟隨本控制字的是否為包尾數(shù)據(jù),是否存在錯(cuò)誤;Reset Calendar置位時(shí)可將流控的狀態(tài)表復(fù)位至初始狀態(tài);In-Band Flow Control代表16個(gè)流控狀態(tài)表的控制狀態(tài),1表示XON,0表示XOFF;Channel Number代表本控制字的通道號(hào);Multiple-Use在Channel Number或者In-Band Flow Control長(zhǎng)度不足時(shí)可用做通道長(zhǎng)度擴(kuò)展或者流控狀態(tài)表長(zhǎng)度擴(kuò)展字段;CRC24代表校驗(yàn)字段。
一次切割后得到的突發(fā)數(shù)據(jù)和所攜帶的突發(fā)控制字組合成一個(gè)突發(fā),對(duì)應(yīng)一次獨(dú)立的數(shù)據(jù)傳輸。突發(fā)的結(jié)構(gòu)如圖1所示,其中插入的空閑突發(fā)控制字是為了滿足突發(fā)的最小長(zhǎng)度(burstshort)要求。
圖1突發(fā)結(jié)構(gòu)Fig.1Burst structure
組合后的突發(fā)需實(shí)施條帶化:以8字節(jié)突發(fā)字(數(shù)據(jù)字或控制字)為單位按照l(shuí)ane輪詢發(fā)送,如圖2所示,其中l(wèi)ane對(duì)應(yīng)各個(gè)serdes物理鏈路。
圖2 lane內(nèi)數(shù)據(jù)條帶化示意圖Fig.2Lane striping example
條帶化之后的數(shù)據(jù)字在各自lane內(nèi)獨(dú)立實(shí)施64B/67B編碼,編碼后的數(shù)據(jù)如圖3所示,其中x對(duì)應(yīng)翻轉(zhuǎn)比特,主要是為了很好的保持直流平衡。協(xié)議層接收方向主要功能與發(fā)送方向相反,在此不多做敘述。
圖3數(shù)據(jù)字格式Fig.3Data word formats
1.1.2協(xié)議層主要特征
1)協(xié)議層可按任意serdes的數(shù)量實(shí)施條帶化,所支持帶寬與serdes的數(shù)量和傳輸速率成正比,帶寬、serdes的數(shù)量和傳輸速率都可靈活調(diào)整。例如帶寬40 Gb/s時(shí),常由8個(gè)6.25 Gb/s的serdes實(shí)現(xiàn),還可由16個(gè)3.125 Gb/s的serdes實(shí)現(xiàn);
2)支持通道數(shù)量缺省可達(dá)到256個(gè),在使用Multiple-Use字段擴(kuò)展條件下,可達(dá)到64 k個(gè);
3)靈活的流控機(jī)制:支持帶內(nèi)流控和帶外流控;4)協(xié)議層CRC24保護(hù)每個(gè)突發(fā)的完整性。
1.2.1幀層數(shù)據(jù)傳輸格式
幀層定義各lane數(shù)據(jù)在serdes中傳輸?shù)母袷?,如圖4所示,各lane將突發(fā)字封裝至“元幀”中,增加了同步字、擾頻器狀態(tài)字、跳脫字與診斷字,長(zhǎng)度分別都為67 bit。
圖4元幀結(jié)構(gòu)Fig.4Meta frame structure
同步字段:實(shí)現(xiàn)lane對(duì)齊。為對(duì)齊各個(gè)lane接收端的數(shù)據(jù),同步字同時(shí)在所有l(wèi)ane上發(fā)送。作為元幀的一部分,同步字是一個(gè)唯一、規(guī)則的模型。各個(gè)lane接收器檢測(cè)到同步字后,與其他lane進(jìn)行skew校正。同步字標(biāo)記出所有l(wèi)ane共同的對(duì)齊點(diǎn),從而使接收器可以校正各個(gè)lane。
加擾:Interlaken使用擾頻器為接收器提供充分的時(shí)鐘轉(zhuǎn)換,以便恢復(fù)傳輸時(shí)鐘。為防止接收器出現(xiàn)誤碼增殖,應(yīng)選擇置位/復(fù)位擾頻器,自同步擾碼器。使用置位/復(fù)位擾頻器,接收器端的誤碼將不會(huì)倍增,從而易于檢測(cè)出錯(cuò)誤。 由于Interlaken使用置位/復(fù)位擾頻器,因此必須存在一種將接收器與擾頻器狀態(tài)同步的方法。 作為元幀擾頻器狀態(tài)字的一部分,擾頻器狀態(tài)字前置入接收器。 接收器使用恢復(fù)后的擾頻器狀態(tài)與其擾頻器同步,然后解擾數(shù)據(jù)流。Interlaken采用與10GbE[5]相同的邊擾碼特征多項(xiàng)式實(shí)現(xiàn)擾碼。這樣可以避免因采用自同步擾碼器所導(dǎo)致的誤碼復(fù)制問(wèn)題。
跳脫字:如果發(fā)送接口的運(yùn)行速度略低于接收接口,就刪除跳脫字。反之,如果發(fā)送接口的運(yùn)行速度略高于接收接口,可能會(huì)向元幀添加額外的跳脫字,以讓Interlaken補(bǔ)償系統(tǒng)內(nèi)的時(shí)鐘差異。
調(diào)試與診斷:CRC32循環(huán)冗余校驗(yàn)方式保證誤碼校驗(yàn)。Interlaken在每個(gè)串化通道上都具有內(nèi)置的測(cè)試模型和偽隨機(jī)位序列(PRBS)性能,以提高各通道的測(cè)試和調(diào)試能力。此外,該協(xié)議還可在元幀內(nèi)包含的數(shù)據(jù)的基礎(chǔ)上計(jì)算單通道CRC32,該功能還可讓個(gè)別串化通道免受錯(cuò)誤影響。
Interlaken協(xié)議可刪除通道束中長(zhǎng)久存在的壞通道。突發(fā)級(jí)CRC24可保護(hù)所有通道內(nèi)分割的數(shù)據(jù)。圖5顯示CRC32元幀范圍。
圖5 CRC32診斷范圍Fig.5CRC32 diagnostic range
1.2.2 幀層主要特征
采用數(shù)據(jù)擾碼和64B/67B數(shù)據(jù)編碼相結(jié)合的技術(shù),可確保穩(wěn)定的直流均衡;連續(xù)的元幀可編程頻率用以保證通道對(duì)齊、擾頻器同步,實(shí)現(xiàn)時(shí)鐘補(bǔ)償,并指示通道有效狀態(tài)[6];對(duì)每個(gè)通道進(jìn)行CRC32保護(hù);通道診斷和通道停用機(jī)制。
Interlaken編碼技術(shù)的系統(tǒng)開(kāi)銷為4.5%,雖然8B10B編碼[7]行之有效,而且被廣泛采用,但是它高達(dá)25%系統(tǒng)開(kāi)銷的缺點(diǎn)在未來(lái)數(shù)百吉比特鏈路與系統(tǒng)應(yīng)用中顯得越來(lái)越突出。
單個(gè)接口的性能可以根據(jù)傳送傳輸負(fù)載的可用原始帶寬比率來(lái)衡量。對(duì)于Interlaken而言,通道配置為41字節(jié)幀的POS接口效率系數(shù)為69.8%,通道配置為65字節(jié)幀的以太網(wǎng)接口效率系數(shù)為77.5%,而配置為9 601字節(jié)幀的以太網(wǎng)接口效率系數(shù)則可高達(dá)92.3%。
其中:效率系數(shù)=編碼效率×成幀效率×校準(zhǔn)效率×元幀成幀效率×100%
編碼效率:采用64B/67B編碼效率的95.5%
成幀效率:8字節(jié)控制字頭在幀或單元數(shù)量中所占的比率
校準(zhǔn)效率:為將幀尾填裝成一個(gè)8字節(jié)字邊界而插入的無(wú)效字符的影響
元幀成幀效率:由同步,擾頻器狀態(tài),診斷和跳脫字創(chuàng)造的效率的99.8%(假設(shè)一個(gè)元幀長(zhǎng)度為2 K字,并且不記為了速率匹配而可選插入的空閑控制字)
按照自頂向下的設(shè)計(jì)思路,給出發(fā)送側(cè)硬件電路模塊級(jí)設(shè)計(jì)方案,如圖6所示。
圖6發(fā)送側(cè)硬件電路模塊設(shè)計(jì)示意圖Fig.6 Diagram of hardware circuit module design of transmit block
其中,速率調(diào)整緩存模塊接收用戶側(cè)送來(lái)的傳送數(shù)據(jù),若用戶側(cè)發(fā)送速率高于interlaken傳送速率,則調(diào)整該模塊的輸出速率,并緩存新進(jìn)入的數(shù)據(jù);數(shù)據(jù)切割模塊按照interlaken協(xié)議的切割算法和控制與狀態(tài)模塊配置的Burstmax、Burstmin和Burstshort參數(shù)對(duì)輸入數(shù)據(jù)包進(jìn)行切割;突發(fā)字組裝模塊按照8字節(jié)數(shù)據(jù)字格式將切割后的數(shù)據(jù)組裝成數(shù)據(jù)字,同時(shí)按照控制字格式和控制與狀態(tài)模塊的配置信息組裝相應(yīng)的控制字;CRC24模塊完成協(xié)議層CRC24(x24+x21+x20+x17+x15+x11+x9+x8+x6+x5+x+1)[8]計(jì)算;突發(fā)組合模塊基于CRC24計(jì)算結(jié)果和突發(fā)字組裝結(jié)果完成一次突發(fā)組合;條帶化模塊將輸入突發(fā)字按照條帶數(shù)量實(shí)施條帶化,每8字節(jié)數(shù)據(jù)輪詢發(fā)送至N個(gè)條帶;64/67模塊按照64B/67B編碼格式對(duì)各個(gè)條帶數(shù)據(jù)進(jìn)行編碼;同步和跳脫模塊按照同步和跳脫字的結(jié)構(gòu)及下發(fā)的控制狀態(tài)組成各條帶新幀的同步字和跳脫字;CRC32對(duì)各條帶原幀進(jìn)行CRC32計(jì)算并生成新的診斷字,計(jì)算多項(xiàng)式為:x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1[8];加擾模塊根據(jù)當(dāng)前擾碼狀態(tài)字加擾數(shù)據(jù)流;組幀及對(duì)齊模塊根據(jù)原幀結(jié)構(gòu)組成原幀,并根據(jù)需要決定是否實(shí)施通道對(duì)齊;serdes模塊是串行/解串行模塊,完成并串轉(zhuǎn)換,將高速串行數(shù)據(jù)輸出??刂婆c狀態(tài)模塊對(duì)各協(xié)議層處理模塊和幀層處理模塊進(jìn)行控制和配置。
Interlaken協(xié)議硬件處理在性能上要以線速轉(zhuǎn)發(fā)處理為目標(biāo),對(duì)40字節(jié)分組來(lái)說(shuō),Interlaken接口為OC-768(40 Gb/s)時(shí),線速分組時(shí)間僅為8 ns,可見(jiàn),要實(shí)現(xiàn)對(duì)OC-768或者更高速率的Interlaken接口支持,必須引入并行流水線硬件設(shè)計(jì)技術(shù),由此,上述模塊級(jí)設(shè)計(jì)中需遵循兩個(gè)原則:
1)次序保證原則,該原則要求在任務(wù)劃分過(guò)程中,必須保證各串行子任務(wù)在處理時(shí)間上的順序性,以保證IP分組得到正確處理;
2)并行處理原則,在次序保證原則的基礎(chǔ)上,該原則要求所有可并行處理的子任務(wù)作并行處理,以縮短IP分組的處理時(shí)間。
遵循上述兩個(gè)原則,可進(jìn)一步對(duì)各個(gè)模塊內(nèi)部做更深入電路設(shè)計(jì),本文不再給出。接收流程與發(fā)送流程相反,模塊設(shè)計(jì)也相反,本文也不再給出。
目前,高端FPGA普遍支持高速串行/解串行模塊,例如XILINX V5 FPGA[9]的GTX可支持6.25 Gb/s,而Altera Stratix IV GX FPGA[10]的GTX可支持6.5 Gb/s。下面以XILINX V5 FPGA實(shí)現(xiàn)40 Gb/s接口為例,給出Interlaken接口FPGA內(nèi)部實(shí)現(xiàn)思路;
1)根據(jù)接口速率選定配置方案。常見(jiàn)的為8×6.25 G和16×3.125 G,其中8×6.25 G使用tile數(shù)量是16×3.125 G的1/2,但單對(duì)差分線速率達(dá)到6.25 G,對(duì)PCB設(shè)計(jì)要求高。確定配置后,即可選定tile,若選擇8×6.25 G則可盡量選擇4個(gè)相鄰tile,以便tile時(shí)鐘可以公用。
2)設(shè)計(jì)系統(tǒng)數(shù)據(jù)寬帶和時(shí)鐘方案。若內(nèi)部總線為32,單個(gè)lane內(nèi)部的處理時(shí)鐘需達(dá)到6.25 G/32,與GTX的發(fā)送和接收時(shí)鐘同步;用戶側(cè)時(shí)鐘和數(shù)據(jù)配置時(shí)鐘和總線即要滿足帶寬大于40 G的需求,又要滿足頻率大于(8×6.25 G)/32的需求,常見(jiàn)配置為512寬帶或者256寬帶,總線頻率為200 MHz;
3)選擇GTX功能模塊并例化GTX核。PCS部分BYPASS 8B/10B,選擇gearbox模塊,并選擇其模式為外部順序控制,PMA部分選擇PISO,并根據(jù)需要配置預(yù)加重和均衡等;
4)按照3.1的實(shí)現(xiàn)方案實(shí)現(xiàn)除serdes之外interlaken協(xié)議處理模塊;
5)將interlaken協(xié)議處理模塊和gtx核對(duì)接,完成整個(gè)的設(shè)計(jì)。
串行互連接口的速率在過(guò)去幾年里得到了顯著提高,每線的速率從2.5 Gbit/s提高到10 Gbit/s,Interlaken基于串行互連技術(shù)的實(shí)現(xiàn),在擴(kuò)展性、減少管腳數(shù)量和數(shù)據(jù)完整性方面具有很大優(yōu)勢(shì),并且具有通道化、流量控制和突發(fā)糾錯(cuò)功能。設(shè)計(jì)開(kāi)發(fā)可處理Interlaken的所有詳情,包括字和通道自動(dòng)對(duì)齊以及擾碼器/解擾器自動(dòng)同步,完整的協(xié)議校驗(yàn)和錯(cuò)誤處理等功能的硬件模塊,可降低硬件復(fù)雜度,進(jìn)而提升通信設(shè)備的性能,從而使Interlaken成為下一代通信設(shè)備的優(yōu)先選擇。
[1]IEEE802.3ae-2002.Amendment:MediaAcesControl(MAC)Parameters,PhysicalLayers,andManagement Parameters for 10 Gps Operation[S].New York:Instiute of Electrical and Electrical and Electronic Engineers,Inc,2002.
[2]Optical Internetworking Forum(OIF):OIF-SPI4-02.1-SERDES Framer Interface Level 4(SFI-4)Phase 2:Implementation Agreement for 10 Gb/s Interface for Physical Layer Devices[R].The Optical Internetworking Forum(OIF),2002.
[3]Interlaken Protocol Definition[R].Revision 1.2.Cortina Systems Inc.and Cisco Systems,Inc.2008:10-12.
[4]Interlaken Technology:New-generation packet interconnect protocol white paper[R].Cisco Systems,inc.,Cortina Systems,Inc.and Silicon Logic Engineering,Inc.2008:8-12.
[5]D’Ambrosia J.The next generation of Ethernet[J].IEEE Communications Magazine,2008,46(2):8-15.
[6]ASIC Interlaken IP Core.SLE interlaken SLE Interlaken IP key features[EB/OL].[2007-01].http://www.siliconlogic.com/pdfs/SLE_Interlaken_IP_Data_Sheets.pdf.
[7]Latticesemiconductor.8b/10bEncoder/Decoder[EB/OL].(2002-11).http://www.latticesemi.com/products/intellectual property/referencedesigns/8b10b encoder decoder.cfm.
[8]Castagnoli G,Brauer S,Herrmann M.Optimization of cyclic redundancy-check codes with 24 and 32 parity bits[J].IEEE Transactions on Communications,1993,41(6):883-892.
[9]Xilinx Inc.Virtex-5 FPGA rocketIO GTX transceiver user guide,UG198[Z].Xilinx Inc.2008:196-208.
[10]Altera Corporation.Stratix IV Device Handbook volume 4,ver 4.0[Z].Altera Corporation,2009:200-206.