APP下载

Interlaken协议及实现技术研究

2011-03-13李玉峰陈世文

电子设计工程 2011年2期
关键词:接收器字节条带

李玉峰, 郭 通 , 陈世文, 吕 平

(1.国家数字交换系统工程技术研究中心 河 南 郑 州 4 50002;2.防空兵指挥学院 信 息控制系,河南 郑 州 4 50052)

传统的芯片间高速数据包传输互连技术主要是XAUI[1]和SPI-4.2[2],普遍应用于10 Gb/s及其之下的各种通信系统中。当通信速率达到40 Gb/s、100 Gb/s乃至更高时,SPI-4.2由于使用低速并行总线实现传输,需要大量芯片引脚才能满足带宽要求,因此很难应对。而XAUI由于缺乏流控机制和通道化支持,不适合在包与包之间需区别对待的应用,因此也不适用。Interlaken[3]是一种新的芯片对芯片信道化包接口协议,它将Serdes技术和一种简单但可靠的协议层结合在一起,为高效而可靠的芯片与芯片互连提供了一个接口,此接口可以很容易的扩展到100 Gb/s甚至更高,是未来高速互连的主流技术。

1 Interlaken协议的分析

Interlaken协议的数据处理总体上可以分为两个层次:协议层和帧层,下面区分层次整理并给出各层数据处理流程。

1.1 协议层

1.1.1协议层数据处理流程

协议层发送方向上主要对传送数据依算法[4]进行切割,切割后的数据称为突发数据,突发数据以64 bit为单位组织,称为1个突发数据字。各块突发数据携带对应的64 bit控制字,用来表征该突发数据的相关信息,称为突发控制字。突发控制字结构如下:{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字段用来区分协议层控制字和帧层控制字类型;Type用来区分跟随本控制字的是数据字还是空闲控制字;SOP用来表示跟随本控制字的是报头;EOP_Format用来表示跟随本控制字的是否为包尾数据,是否存在错误;Reset Calendar置位时可将流控的状态表复位至初始状态;In-Band Flow Control代表16个流控状态表的控制状态,1表示XON,0表示XOFF;Channel Number代表本控制字的通道号;Multiple-Use在Channel Number或者In-Band Flow Control长度不足时可用做通道长度扩展或者流控状态表长度扩展字段;CRC24代表校验字段。

一次切割后得到的突发数据和所携带的突发控制字组合成一个突发,对应一次独立的数据传输。突发的结构如图1所示,其中插入的空闲突发控制字是为了满足突发的最小长度(burstshort)要求。

图1突发结构Fig.1Burst structure

组合后的突发需实施条带化:以8字节突发字(数据字或控制字)为单位按照lane轮询发送,如图2所示,其中lane对应各个serdes物理链路。

图2 lane内数据条带化示意图Fig.2Lane striping example

条带化之后的数据字在各自lane内独立实施64B/67B编码,编码后的数据如图3所示,其中x对应翻转比特,主要是为了很好的保持直流平衡。协议层接收方向主要功能与发送方向相反,在此不多做叙述。

图3数据字格式Fig.3Data word formats

1.1.2协议层主要特征

1)协议层可按任意serdes的数量实施条带化,所支持带宽与serdes的数量和传输速率成正比,带宽、serdes的数量和传输速率都可灵活调整。例如带宽40 Gb/s时,常由8个6.25 Gb/s的serdes实现,还可由16个3.125 Gb/s的serdes实现;

2)支持通道数量缺省可达到256个,在使用Multiple-Use字段扩展条件下,可达到64 k个;

3)灵活的流控机制:支持带内流控和带外流控;4)协议层CRC24保护每个突发的完整性。

1.2 帧层

1.2.1帧层数据传输格式

帧层定义各lane数据在serdes中传输的格式,如图4所示,各lane将突发字封装至“元帧”中,增加了同步字、扰频器状态字、跳脱字与诊断字,长度分别都为67 bit。

图4元帧结构Fig.4Meta frame structure

同步字段:实现lane对齐。为对齐各个lane接收端的数据,同步字同时在所有lane上发送。作为元帧的一部分,同步字是一个唯一、规则的模型。各个lane接收器检测到同步字后,与其他lane进行skew校正。同步字标记出所有lane共同的对齐点,从而使接收器可以校正各个lane。

加扰:Interlaken使用扰频器为接收器提供充分的时钟转换,以便恢复传输时钟。为防止接收器出现误码增殖,应选择置位/复位扰频器,自同步扰码器。使用置位/复位扰频器,接收器端的误码将不会倍增,从而易于检测出错误。 由于Interlaken使用置位/复位扰频器,因此必须存在一种将接收器与扰频器状态同步的方法。 作为元帧扰频器状态字的一部分,扰频器状态字前置入接收器。 接收器使用恢复后的扰频器状态与其扰频器同步,然后解扰数据流。Interlaken采用与10GbE[5]相同的边扰码特征多项式实现扰码。这样可以避免因采用自同步扰码器所导致的误码复制问题。

跳脱字:如果发送接口的运行速度略低于接收接口,就删除跳脱字。反之,如果发送接口的运行速度略高于接收接口,可能会向元帧添加额外的跳脱字,以让Interlaken补偿系统内的时钟差异。

调试与诊断:CRC32循环冗余校验方式保证误码校验。Interlaken在每个串化通道上都具有内置的测试模型和伪随机位序列(PRBS)性能,以提高各通道的测试和调试能力。此外,该协议还可在元帧内包含的数据的基础上计算单通道CRC32,该功能还可让个别串化通道免受错误影响。

Interlaken协议可删除通道束中长久存在的坏通道。突发级CRC24可保护所有通道内分割的数据。图5显示CRC32元帧范围。

图5 CRC32诊断范围Fig.5CRC32 diagnostic range

1.2.2 帧层主要特征

采用数据扰码和64B/67B数据编码相结合的技术,可确保稳定的直流均衡;连续的元帧可编程频率用以保证通道对齐、扰频器同步,实现时钟补偿,并指示通道有效状态[6];对每个通道进行CRC32保护;通道诊断和通道停用机制。

1.3 传输效率分析

Interlaken编码技术的系统开销为4.5%,虽然8B10B编码[7]行之有效,而且被广泛采用,但是它高达25%系统开销的缺点在未来数百吉比特链路与系统应用中显得越来越突出。

单个接口的性能可以根据传送传输负载的可用原始带宽比率来衡量。对于Interlaken而言,通道配置为41字节帧的POS接口效率系数为69.8%,通道配置为65字节帧的以太网接口效率系数为77.5%,而配置为9 601字节帧的以太网接口效率系数则可高达92.3%。

其中:效率系数=编码效率×成帧效率×校准效率×元帧成帧效率×100%

编码效率:采用64B/67B编码效率的95.5%

成帧效率:8字节控制字头在帧或单元数量中所占的比率

校准效率:为将帧尾填装成一个8字节字边界而插入的无效字符的影响

元帧成帧效率:由同步,扰频器状态,诊断和跳脱字创造的效率的99.8%(假设一个元帧长度为2 K字,并且不记为了速率匹配而可选插入的空闲控制字)

2 Interlaken协议的芯片内实现

2.1 实现方案

按照自顶向下的设计思路,给出发送侧硬件电路模块级设计方案,如图6所示。

图6发送侧硬件电路模块设计示意图Fig.6 Diagram of hardware circuit module design of transmit block

其中,速率调整缓存模块接收用户侧送来的传送数据,若用户侧发送速率高于interlaken传送速率,则调整该模块的输出速率,并缓存新进入的数据;数据切割模块按照interlaken协议的切割算法和控制与状态模块配置的Burstmax、Burstmin和Burstshort参数对输入数据包进行切割;突发字组装模块按照8字节数据字格式将切割后的数据组装成数据字,同时按照控制字格式和控制与状态模块的配置信息组装相应的控制字;CRC24模块完成协议层CRC24(x24+x21+x20+x17+x15+x11+x9+x8+x6+x5+x+1)[8]计算;突发组合模块基于CRC24计算结果和突发字组装结果完成一次突发组合;条带化模块将输入突发字按照条带数量实施条带化,每8字节数据轮询发送至N个条带;64/67模块按照64B/67B编码格式对各个条带数据进行编码;同步和跳脱模块按照同步和跳脱字的结构及下发的控制状态组成各条带新帧的同步字和跳脱字;CRC32对各条带原帧进行CRC32计算并生成新的诊断字,计算多项式为:x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1[8];加扰模块根据当前扰码状态字加扰数据流;组帧及对齐模块根据原帧结构组成原帧,并根据需要决定是否实施通道对齐;serdes模块是串行/解串行模块,完成并串转换,将高速串行数据输出。控制与状态模块对各协议层处理模块和帧层处理模块进行控制和配置。

Interlaken协议硬件处理在性能上要以线速转发处理为目标,对40字节分组来说,Interlaken接口为OC-768(40 Gb/s)时,线速分组时间仅为8 ns,可见,要实现对OC-768或者更高速率的Interlaken接口支持,必须引入并行流水线硬件设计技术,由此,上述模块级设计中需遵循两个原则:

1)次序保证原则,该原则要求在任务划分过程中,必须保证各串行子任务在处理时间上的顺序性,以保证IP分组得到正确处理;

2)并行处理原则,在次序保证原则的基础上,该原则要求所有可并行处理的子任务作并行处理,以缩短IP分组的处理时间。

遵循上述两个原则,可进一步对各个模块内部做更深入电路设计,本文不再给出。接收流程与发送流程相反,模块设计也相反,本文也不再给出。

2.2 基于XILINX FPGA的实现思路

目前,高端FPGA普遍支持高速串行/解串行模块,例如XILINX V5 FPGA[9]的GTX可支持6.25 Gb/s,而Altera Stratix IV GX FPGA[10]的GTX可支持6.5 Gb/s。下面以XILINX V5 FPGA实现40 Gb/s接口为例,给出Interlaken接口FPGA内部实现思路;

1)根据接口速率选定配置方案。常见的为8×6.25 G和16×3.125 G,其中8×6.25 G使用tile数量是16×3.125 G的1/2,但单对差分线速率达到6.25 G,对PCB设计要求高。确定配置后,即可选定tile,若选择8×6.25 G则可尽量选择4个相邻tile,以便tile时钟可以公用。

2)设计系统数据宽带和时钟方案。若内部总线为32,单个lane内部的处理时钟需达到6.25 G/32,与GTX的发送和接收时钟同步;用户侧时钟和数据配置时钟和总线即要满足带宽大于40 G的需求,又要满足频率大于(8×6.25 G)/32的需求,常见配置为512宽带或者256宽带,总线频率为200 MHz;

3)选择GTX功能模块并例化GTX核。PCS部分BYPASS 8B/10B,选择gearbox模块,并选择其模式为外部顺序控制,PMA部分选择PISO,并根据需要配置预加重和均衡等;

4)按照3.1的实现方案实现除serdes之外interlaken协议处理模块;

5)将interlaken协议处理模块和gtx核对接,完成整个的设计。

3 结束语

串行互连接口的速率在过去几年里得到了显著提高,每线的速率从2.5 Gbit/s提高到10 Gbit/s,Interlaken基于串行互连技术的实现,在扩展性、减少管脚数量和数据完整性方面具有很大优势,并且具有通道化、流量控制和突发纠错功能。设计开发可处理Interlaken的所有详情,包括字和通道自动对齐以及扰码器/解扰器自动同步,完整的协议校验和错误处理等功能的硬件模块,可降低硬件复杂度,进而提升通信设备的性能,从而使Interlaken成为下一代通信设备的优先选择。

[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.

猜你喜欢

接收器字节条带
No.8 字节跳动将推出独立出口电商APP
No.10 “字节跳动手机”要来了?
华北地区地震条带的统计分析
JXG-50S型相敏轨道电路接收器自动测试台
简谈MC7字节码
秸秆综合利用的新招法——秸秆田间条带分离处理覆盖技术
新型二取二结构的25Hz微电子相敏接收器数据处理方法研究
基于条带模式GEOSAR-TOPS模式UAVSAR的双基成像算法
基于 Savitzky-Golay 加权拟合的红外图像非均匀性条带校正方法
IDT推出超紧凑型无线电源接收器,可节省70%板面积