李玉峰, 郭 通 , 陳世文, 呂 平
(1.國家數(shù)字交換系統(tǒng)工程技術研究中心 河 南 鄭 州 4 50002;2.防空兵指揮學院 信 息控制系,河南 鄭 州 4 50052)
傳統(tǒng)的芯片間高速數(shù)據(jù)包傳輸互連技術主要是XAUI[1]和SPI-4.2[2],普遍應用于10 Gb/s及其之下的各種通信系統(tǒng)中。當通信速率達到40 Gb/s、100 Gb/s乃至更高時,SPI-4.2由于使用低速并行總線實現(xiàn)傳輸,需要大量芯片引腳才能滿足帶寬要求,因此很難應對。而XAUI由于缺乏流控機制和通道化支持,不適合在包與包之間需區(qū)別對待的應用,因此也不適用。Interlaken[3]是一種新的芯片對芯片信道化包接口協(xié)議,它將Serdes技術和一種簡單但可靠的協(xié)議層結合在一起,為高效而可靠的芯片與芯片互連提供了一個接口,此接口可以很容易的擴展到100 Gb/s甚至更高,是未來高速互連的主流技術。
Interlaken協(xié)議的數(shù)據(jù)處理總體上可以分為兩個層次:協(xié)議層和幀層,下面區(qū)分層次整理并給出各層數(shù)據(jù)處理流程。
1.1.1協(xié)議層數(shù)據(jù)處理流程
協(xié)議層發(fā)送方向上主要對傳送數(shù)據(jù)依算法[4]進行切割,切割后的數(shù)據(jù)稱為突發(fā)數(shù)據(jù),突發(fā)數(shù)據(jù)以64 bit為單位組織,稱為1個突發(fā)數(shù)據(jù)字。各塊突發(fā)數(shù)據(jù)攜帶對應的64 bit控制字,用來表征該突發(fā)數(shù)據(jù)的相關信息,稱為突發(fā)控制字。突發(fā)控制字結構如下:{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字段用來區(qū)分協(xié)議層控制字和幀層控制字類型;Type用來區(qū)分跟隨本控制字的是數(shù)據(jù)字還是空閑控制字;SOP用來表示跟隨本控制字的是報頭;EOP_Format用來表示跟隨本控制字的是否為包尾數(shù)據(jù),是否存在錯誤;Reset Calendar置位時可將流控的狀態(tài)表復位至初始狀態(tài);In-Band Flow Control代表16個流控狀態(tài)表的控制狀態(tài),1表示XON,0表示XOFF;Channel Number代表本控制字的通道號;Multiple-Use在Channel Number或者In-Band Flow Control長度不足時可用做通道長度擴展或者流控狀態(tài)表長度擴展字段;CRC24代表校驗字段。
一次切割后得到的突發(fā)數(shù)據(jù)和所攜帶的突發(fā)控制字組合成一個突發(fā),對應一次獨立的數(shù)據(jù)傳輸。突發(fā)的結構如圖1所示,其中插入的空閑突發(fā)控制字是為了滿足突發(fā)的最小長度(burstshort)要求。
圖1突發(fā)結構Fig.1Burst structure
組合后的突發(fā)需實施條帶化:以8字節(jié)突發(fā)字(數(shù)據(jù)字或控制字)為單位按照lane輪詢發(fā)送,如圖2所示,其中l(wèi)ane對應各個serdes物理鏈路。
圖2 lane內數(shù)據(jù)條帶化示意圖Fig.2Lane striping example
條帶化之后的數(shù)據(jù)字在各自lane內獨立實施64B/67B編碼,編碼后的數(shù)據(jù)如圖3所示,其中x對應翻轉比特,主要是為了很好的保持直流平衡。協(xié)議層接收方向主要功能與發(fā)送方向相反,在此不多做敘述。
圖3數(shù)據(jù)字格式Fig.3Data word formats
1.1.2協(xié)議層主要特征
1)協(xié)議層可按任意serdes的數(shù)量實施條帶化,所支持帶寬與serdes的數(shù)量和傳輸速率成正比,帶寬、serdes的數(shù)量和傳輸速率都可靈活調整。例如帶寬40 Gb/s時,常由8個6.25 Gb/s的serdes實現(xiàn),還可由16個3.125 Gb/s的serdes實現(xiàn);
2)支持通道數(shù)量缺省可達到256個,在使用Multiple-Use字段擴展條件下,可達到64 k個;
3)靈活的流控機制:支持帶內流控和帶外流控;4)協(xié)議層CRC24保護每個突發(fā)的完整性。
1.2.1幀層數(shù)據(jù)傳輸格式
幀層定義各lane數(shù)據(jù)在serdes中傳輸?shù)母袷剑鐖D4所示,各lane將突發(fā)字封裝至“元幀”中,增加了同步字、擾頻器狀態(tài)字、跳脫字與診斷字,長度分別都為67 bit。
圖4元幀結構Fig.4Meta frame structure
同步字段:實現(xiàn)lane對齊。為對齊各個lane接收端的數(shù)據(jù),同步字同時在所有l(wèi)ane上發(fā)送。作為元幀的一部分,同步字是一個唯一、規(guī)則的模型。各個lane接收器檢測到同步字后,與其他lane進行skew校正。同步字標記出所有l(wèi)ane共同的對齊點,從而使接收器可以校正各個lane。
加擾:Interlaken使用擾頻器為接收器提供充分的時鐘轉換,以便恢復傳輸時鐘。為防止接收器出現(xiàn)誤碼增殖,應選擇置位/復位擾頻器,自同步擾碼器。使用置位/復位擾頻器,接收器端的誤碼將不會倍增,從而易于檢測出錯誤。 由于Interlaken使用置位/復位擾頻器,因此必須存在一種將接收器與擾頻器狀態(tài)同步的方法。 作為元幀擾頻器狀態(tài)字的一部分,擾頻器狀態(tài)字前置入接收器。 接收器使用恢復后的擾頻器狀態(tài)與其擾頻器同步,然后解擾數(shù)據(jù)流。Interlaken采用與10GbE[5]相同的邊擾碼特征多項式實現(xiàn)擾碼。這樣可以避免因采用自同步擾碼器所導致的誤碼復制問題。
跳脫字:如果發(fā)送接口的運行速度略低于接收接口,就刪除跳脫字。反之,如果發(fā)送接口的運行速度略高于接收接口,可能會向元幀添加額外的跳脫字,以讓Interlaken補償系統(tǒng)內的時鐘差異。
調試與診斷:CRC32循環(huán)冗余校驗方式保證誤碼校驗。Interlaken在每個串化通道上都具有內置的測試模型和偽隨機位序列(PRBS)性能,以提高各通道的測試和調試能力。此外,該協(xié)議還可在元幀內包含的數(shù)據(jù)的基礎上計算單通道CRC32,該功能還可讓個別串化通道免受錯誤影響。
Interlaken協(xié)議可刪除通道束中長久存在的壞通道。突發(fā)級CRC24可保護所有通道內分割的數(shù)據(jù)。圖5顯示CRC32元幀范圍。
圖5 CRC32診斷范圍Fig.5CRC32 diagnostic range
1.2.2 幀層主要特征
采用數(shù)據(jù)擾碼和64B/67B數(shù)據(jù)編碼相結合的技術,可確保穩(wěn)定的直流均衡;連續(xù)的元幀可編程頻率用以保證通道對齊、擾頻器同步,實現(xiàn)時鐘補償,并指示通道有效狀態(tài)[6];對每個通道進行CRC32保護;通道診斷和通道停用機制。
Interlaken編碼技術的系統(tǒng)開銷為4.5%,雖然8B10B編碼[7]行之有效,而且被廣泛采用,但是它高達25%系統(tǒng)開銷的缺點在未來數(shù)百吉比特鏈路與系統(tǒng)應用中顯得越來越突出。
單個接口的性能可以根據(jù)傳送傳輸負載的可用原始帶寬比率來衡量。對于Interlaken而言,通道配置為41字節(jié)幀的POS接口效率系數(shù)為69.8%,通道配置為65字節(jié)幀的以太網(wǎng)接口效率系數(shù)為77.5%,而配置為9 601字節(jié)幀的以太網(wǎng)接口效率系數(shù)則可高達92.3%。
其中:效率系數(shù)=編碼效率×成幀效率×校準效率×元幀成幀效率×100%
編碼效率:采用64B/67B編碼效率的95.5%
成幀效率:8字節(jié)控制字頭在幀或單元數(shù)量中所占的比率
校準效率:為將幀尾填裝成一個8字節(jié)字邊界而插入的無效字符的影響
元幀成幀效率:由同步,擾頻器狀態(tài),診斷和跳脫字創(chuàng)造的效率的99.8%(假設一個元幀長度為2 K字,并且不記為了速率匹配而可選插入的空閑控制字)
按照自頂向下的設計思路,給出發(fā)送側硬件電路模塊級設計方案,如圖6所示。
圖6發(fā)送側硬件電路模塊設計示意圖Fig.6 Diagram of hardware circuit module design of transmit block
其中,速率調整緩存模塊接收用戶側送來的傳送數(shù)據(jù),若用戶側發(fā)送速率高于interlaken傳送速率,則調整該模塊的輸出速率,并緩存新進入的數(shù)據(jù);數(shù)據(jù)切割模塊按照interlaken協(xié)議的切割算法和控制與狀態(tài)模塊配置的Burstmax、Burstmin和Burstshort參數(shù)對輸入數(shù)據(jù)包進行切割;突發(fā)字組裝模塊按照8字節(jié)數(shù)據(jù)字格式將切割后的數(shù)據(jù)組裝成數(shù)據(jù)字,同時按照控制字格式和控制與狀態(tài)模塊的配置信息組裝相應的控制字;CRC24模塊完成協(xié)議層CRC24(x24+x21+x20+x17+x15+x11+x9+x8+x6+x5+x+1)[8]計算;突發(fā)組合模塊基于CRC24計算結果和突發(fā)字組裝結果完成一次突發(fā)組合;條帶化模塊將輸入突發(fā)字按照條帶數(shù)量實施條帶化,每8字節(jié)數(shù)據(jù)輪詢發(fā)送至N個條帶;64/67模塊按照64B/67B編碼格式對各個條帶數(shù)據(jù)進行編碼;同步和跳脫模塊按照同步和跳脫字的結構及下發(fā)的控制狀態(tài)組成各條帶新幀的同步字和跳脫字;CRC32對各條帶原幀進行CRC32計算并生成新的診斷字,計算多項式為:x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1[8];加擾模塊根據(jù)當前擾碼狀態(tài)字加擾數(shù)據(jù)流;組幀及對齊模塊根據(jù)原幀結構組成原幀,并根據(jù)需要決定是否實施通道對齊;serdes模塊是串行/解串行模塊,完成并串轉換,將高速串行數(shù)據(jù)輸出??刂婆c狀態(tài)模塊對各協(xié)議層處理模塊和幀層處理模塊進行控制和配置。
Interlaken協(xié)議硬件處理在性能上要以線速轉發(fā)處理為目標,對40字節(jié)分組來說,Interlaken接口為OC-768(40 Gb/s)時,線速分組時間僅為8 ns,可見,要實現(xiàn)對OC-768或者更高速率的Interlaken接口支持,必須引入并行流水線硬件設計技術,由此,上述模塊級設計中需遵循兩個原則:
1)次序保證原則,該原則要求在任務劃分過程中,必須保證各串行子任務在處理時間上的順序性,以保證IP分組得到正確處理;
2)并行處理原則,在次序保證原則的基礎上,該原則要求所有可并行處理的子任務作并行處理,以縮短IP分組的處理時間。
遵循上述兩個原則,可進一步對各個模塊內部做更深入電路設計,本文不再給出。接收流程與發(fā)送流程相反,模塊設計也相反,本文也不再給出。
目前,高端FPGA普遍支持高速串行/解串行模塊,例如XILINX V5 FPGA[9]的GTX可支持6.25 Gb/s,而Altera Stratix IV GX FPGA[10]的GTX可支持6.5 Gb/s。下面以XILINX V5 FPGA實現(xiàn)40 Gb/s接口為例,給出Interlaken接口FPGA內部實現(xiàn)思路;
1)根據(jù)接口速率選定配置方案。常見的為8×6.25 G和16×3.125 G,其中8×6.25 G使用tile數(shù)量是16×3.125 G的1/2,但單對差分線速率達到6.25 G,對PCB設計要求高。確定配置后,即可選定tile,若選擇8×6.25 G則可盡量選擇4個相鄰tile,以便tile時鐘可以公用。
2)設計系統(tǒng)數(shù)據(jù)寬帶和時鐘方案。若內部總線為32,單個lane內部的處理時鐘需達到6.25 G/32,與GTX的發(fā)送和接收時鐘同步;用戶側時鐘和數(shù)據(jù)配置時鐘和總線即要滿足帶寬大于40 G的需求,又要滿足頻率大于(8×6.25 G)/32的需求,常見配置為512寬帶或者256寬帶,總線頻率為200 MHz;
3)選擇GTX功能模塊并例化GTX核。PCS部分BYPASS 8B/10B,選擇gearbox模塊,并選擇其模式為外部順序控制,PMA部分選擇PISO,并根據(jù)需要配置預加重和均衡等;
4)按照3.1的實現(xiàn)方案實現(xiàn)除serdes之外interlaken協(xié)議處理模塊;
5)將interlaken協(xié)議處理模塊和gtx核對接,完成整個的設計。
串行互連接口的速率在過去幾年里得到了顯著提高,每線的速率從2.5 Gbit/s提高到10 Gbit/s,Interlaken基于串行互連技術的實現(xiàn),在擴展性、減少管腳數(shù)量和數(shù)據(jù)完整性方面具有很大優(yōu)勢,并且具有通道化、流量控制和突發(fā)糾錯功能。設計開發(fā)可處理Interlaken的所有詳情,包括字和通道自動對齊以及擾碼器/解擾器自動同步,完整的協(xié)議校驗和錯誤處理等功能的硬件模塊,可降低硬件復雜度,進而提升通信設備的性能,從而使Interlaken成為下一代通信設備的優(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.