interlaken协议解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

interlaken协议的卖点interlanken协议是一种芯片间高速数据传输协议相比同类型的传统的XAUI(zowie)和SPI协议,interlaken协议支持多通道传输,因此带宽可达40Gbps甚至更高相比之下,XAUI只有10GbpsSPI协议的带宽更低此外,interlanken协议有比较完善的流控功能书上说这是未来高速互联的主流技术interlanken这个词儿本身意思是瑞士的一个地名interlaken协议的两个层次•协议层的处理:数据切割协议层控制字组装(突发控制字,空闲控制字)条带化•帧层的处理:64/67编码帧层控制字组装(同步字,扰码器状态字,跳脱字,诊断字)扰码多路并发对齐serdes并串转换协议层的结构数据切割和控制字组装的典型处理关于数据切割数据切割就是以64bit为单位切割数据。切剩下的1~63的余数依靠控制字里的Eof_format来处理。不过这个Eof_format是以byte为单位来处理数据的。可能这个协议认为用户数据起码要用字节为单位。下面讲协议层控制字协议层控制字的结构协议层控制字分两类,突发控制字和空闲控制字。这两类控制字的结构是一样的。结构如下:control(1bit)用于区分协议层控制字和后面会讲的帧层控制字type(1bit)用于区分当前协议层控制字是突发控制字还是空闲控制字SOP(1bit)包的起始位置指示EOP_format(4bit)包的结束位置指示,并有报错功能Reset_calendar(1bit)带内流控状态复位In-BandFlowControl(16bit)带内流控ChannelNumber(8bit)用户数据通道号Multiple-Use(8bit)备用字节,可自定义CRC24(24bit)24位crc校验以上全部加起来是64个bit协议层控制字的细节ctrl(1bit):在协议层控制字中位置号63对协议层控制字而言,ctrl是高电平type(1bit):在协议层控制字中位置号62对协议层控制字而言,突发控制字的type是高电平,空闲控制字的type是低电平SOP(1bit):在协议层控制字中位置号61本控制字之后紧跟当前包的第一个数据字的时候为高电平,其余时候低电平EOP_format(4bit):在协议层控制字中位置号60-571xxx表示无错误且包已经在前一个数据字里结束xxx表示前一个数据字里有效字节的个数,000表示八个字节都有效,001表示一个字节有效,111表示七个字节有效,如此类推。有效字节从高位向低位排列。0000表示没有包结束信号,也没出错0001表示包结束但有错不满8byte的其余部分全部置零处理Reset_calendar(1bit):在协议层控制字中位置号56带内流控状态复位信号,高电平有效In-BandFlowControl(16bit):在协议层控制字中位置号55-40带内流控,表示当前各路用户数据的流控信息从高位到低位一共能控制16条用户数据高电平表示开启,低电平表示关闭ChannelNumber(8bit):在协议层控制字中位置号39-32本突发控制字之后的数据字属于哪路用户数据Multiple-Use(8bit):在协议层控制字中位置号31-24备用字节,可自定义,一般用作带内流控和用户数据编号扩展CRC24(24bit):在协议层控制字中位置号23-0涵盖范围为,本控制字之前一个完整的突发传输和本控制字(CRC24本身的部分置0处理)公式如下:x24+x21+x20+x17+x15+x11+x9+x8+x6+x5+x+1条带化的实现方法以8字节的数据字或者控制字为单位,按照通道号轮询发送,其中每个通道(lane)各自之后对应一个serdes物理链路以上是协议层的全部内容,下面说帧层64/67编码X代表翻转bit。高电平表示将63-0字节翻转,低电平表示不翻转。用于维护serdes差分传输的直流平衡,保证serdes传输过程中平均电压抖动范围不会过大。具体做法是,在每一路串行serdes传输过程中设置1和0计数器,检测到1则计数器增加,检测到0则计数器减少。以正负96为阀值,并同时计算下一个等待传输的64字节里面0跟1谁多,如果倾向与当前serdes内的计算结果一致,就将下一个64bit翻转。帧层控制字组装同步字:元帧同步头,用于确定元帧位置扰码器状态字:用于告知接收器当前扰码器的状态跳脱字:时钟补偿,可增删诊断字:当前通道状态和CRC32校验以上四种帧层控制字长度均为67字节,细节放在下面讲元帧长度每一路都一样具体长度无特别规定,考虑传输效率和出错概率等因素,一般以2000个字左右为宜典型帧结构:同步字以同步字为例说一下帧层控制字结构:bx10同步字的66-64bit,跟前面的64/67编码一样的b011110同步字的63-58bit,一共六个bit称为帧层控制字类型块,其余帧层控制字的63-58字节也是同一功能,不过取值不同其余部分,每个帧层控制字都不一样,对同步字来说是一个恒定值扰码器状态字类型块:b001010扰码状态,从57到0,一共58个bit因为扰码器多项式是x58+x39+1因此这58个bit对应扰码器当前的58个寄存器状态扰码操作的原则同步字和扰码状态字不扰码其余所有字的66-64bit不扰码发送端的扰码器只在系统复位的时候复位一次,之后不会再复位(跟sdh协议x7+x6+1扰码器那种每帧复位一次做法是不同的)因此,发送端在每个元帧里都将扰码器状态告知接收端因此,接收端无须知道发送端的扰码器复位初始值,只需根据元帧里的扰码器状态来解扰码即可扰码器复位的初始值不得设为全零,并且最好每一路都设为不同的值如果接收端解扰模块期望的下一组扰码器状态和发送端发出的下一组扰码器状态不符,接收端应该在连续三帧出错之后提起出错信息跳脱字类型块:b000111内容为恒定值跳脱字用于时钟补偿,比如发送器跟接收器时钟不一致的时候。比如,当发送器和接收器之间还要插入其他中间转发设备的时候,就需要考虑用跳脱字来调整时钟速率。跳脱字可以往负载部分的任意地方插入。原则是:在发送端插入跳脱字,在接收端检测并剔除跳脱字。典型格式的元帧有一个跳脱字,供接收端删除。诊断字类型块:b01100133-32bit用于接收端通过双向口向发送端回传数据通路出错状况,为一可选项CRC32的计算范围是整个元帧在翻转和加扰之前,不含所有66-64bit的部分。其中扰码状态全部以0填充,CRC32本身的部分也以0填充。CRC32的公式是x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1多路并发对齐多路serdes要同时发出,并且发送频率要一致决定发送频率的是元帧的长度设定值协议对这一部分不作实现方法的具体规定,具体怎么实现,由实现人员自己决定处理流程框图(发送端)效率分析效率系数=编码效率X成帧效率X校准效率X元帧成帧效率编码效率:64/67编码,95.5%成帧效率:就协议层一个控制字带八个数据字的标准格式,成帧效率是88.8%校准效率:为了将帧尾装成一个8字节的字而填充无效字节,几乎可以不考虑元帧成帧效率:以2k字长元帧为例,去掉控制字剩下的载荷部分,约为99.8%那么总的效率系数就是以上乘起来,大约是84%如果提高成帧效率,比如改为一个控制字带256个数据字,那么总效率大约是94%,如此按照官方说法:当用户数据为41字节帧的POS数据时,系统总效率为69.8%当用户数据为65字节帧的以太网数据时,系统总效率为77.5%当用户数据为9601字节帧的以太网数据时,系统总效率为92.3%altera芯片性能StratixIV的GT系列有12~24个11.3G速率的串行收发器,可支持40G到100G带宽算一下带宽以12个11.3G收发器的40G器件而言每一路是一收一发,一共可以做12路税前总带宽是11.3X12=67.8G以系统效率70%而言,税后也有47G的带宽完全可满足40G带宽就省成本的角度,某些有24个以上8.5G收发器的器件也可用不过路数太多,每一路收发器性能太低可能导致其他问题StratixV,还能再强点儿若干扩展内容扩展内容之一,自定义参数的数据分割算法扩展内容之二,带外流控扩展内容之三,流控的引申内容自定义参数的数据分割算法典型情况:BurstMax=64byte=8个字BurstShort=32byte=4个字新引入参数:BurstMin,用于替换BurstShortBurstMin的范围设置如下:(BurstMin=BurstMax/2)&&(BurstMin=BurstShort)之后有如下算法设定参数如下packet_length:用户数据里包的总长度packet_remainder:传输过程中,尚未传输的用户数据长度data_transfer:当前burst中有效数据的长度if(packet_remainder=(BurstMax+BurstMin))data_transfer=BurstMax;elseif((packet_lengthMODBurstMaxBurstMin)&&(packet_remainderBurstMax))data_transfer=BurstMax-BurstMin;elsedata_transfer=packet_remainder;下面举个例子例子1BurstMax=256byteBurstMin=64byte包长是513byte第一次传输,因为513(256+64),因此第一个burst长度是BurstMax然后剩下513-256=257因为257(256+64),如果再传一个BurstMax,就会出现长度小于BurstMin的余量,那么进入第二个判断条件513MOD256等于1,小于BurstMin,那么第二个burst长度是BurstMax-BurstMin=256-64=192此时剩下未传的长度是513-256-192=65,长于BurstMin而又短于BurstMax-BurstMin这就是最后一个burst的长度例子2BurstMax=256byteBurstMin=64byte包长是511byte第一次传输,因为511(256+64),因此第一个burst长度是BurstMax然后剩下511-256=255255(256+64),如果再传一个BurstMax,就会出现长度小于BurstMin的余量,那么进入第二个判断条件511MOD256等于255,大于BurstMin,因此不能再以BurstMax-BurstMin作为下一个burst长度此时直接进入第三种情况,最后一个burst长度就是余下的255自定义参数数据切割的特点优点:无需插入空闲帧,而且数据可以自定义设置得比较大,可以把系统效率从85%左右提升到95%左右。缺点:需要事先知道用户数据包的长度,否则无法实现。高效率的同时,同步和流控等带内信息密度随之降低,系统出错概率增加。带外流控数据速率是时钟速率的两倍,时钟上下沿都要打数据。自带一个CRC4校验,可覆盖64bit的流控信息SYNC信号表示有效数据起始位流控的引申内容一,带内流控的格式和意义可以根据需要自定义。二,在流控使能的时候如果下一个包正在传输中,是掐头还是去尾,由实现者自己决定。三,对流控要求高的,可以单独用一个数据通路来传流控信息。

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功