interlaken协议解析

上传人:飞****9 文档编号:143967698 上传时间:2020-09-04 格式:PDF 页数:30 大小:395.17KB
返回 下载 相关 举报
interlaken协议解析_第1页
第1页 / 共30页
interlaken协议解析_第2页
第2页 / 共30页
interlaken协议解析_第3页
第3页 / 共30页
interlaken协议解析_第4页
第4页 / 共30页
interlaken协议解析_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《interlaken协议解析》由会员分享,可在线阅读,更多相关《interlaken协议解析(30页珍藏版)》请在金锄头文库上搜索。

1、interlaken协议的卖点 interlanken协议是一种芯片间高速数据传输协议 相比同类型的传统的XAUI(zowie)和SPI协议, interlaken协议支持多通道传输, 因此带宽可达40Gbps甚至更高 相比之下,XAUI只有10Gbps SPI协议的带宽更低 此外,interlanken协议有比较完善的流控功能 书上说这是未来高速互联的主流技术 interlanken这个词儿本身意思是瑞士的一个地名 interlaken协议的两个层次 协议层的处理: 数据切割 协议层控制字组装 (突发控制字,空闲控制字) 条带化 帧层的处理: 64/67编码 帧层控制字组装(同步字,扰码器状

2、态字,跳脱字,诊断字) 扰码 多路并发对齐 serdes并串转换 协议层的结构 数据切割和控制字组装的典型处理 关于数据切割 数据切割就是以64bit为单位切割数据。 切剩下的163的余数依靠控制字里的 Eof_format来处理。 不过这个Eof_format是以byte为单位来处理数 据的。 可能这个协议认为用户数据起码要用字节为 单位。 下面讲协议层控制字 协议层控制字的结构 协议层控制字分两类,突发控制字和空闲控制字。 这两类控制字的结构是一样的。 结构如下: control (1bit) 用于区分协议层控制字和后面会讲的帧层控制字 type (1bit) 用于区分当前协议层控制字是突

3、发控制字还是空闲控制字 SOP(1bit ) 包的起始位置指示 EOP_format(4bit) 包的结束位置指示,并有报错功能 Reset_calendar(1bit) 带内流控状态复位 In-Band Flow Control (16bit )带内流控 Channel Number(8bit) 用户数据通道号 Multiple-Use(8bit )备用字节,可自定义 CRC24(24bit) 24位crc校验 以上全部加起来是64个bit 协议层控制字的细节 ctrl (1bit) :在协议层控制字中位置号63 对协议层控制字而言,ctrl 是高电平 type (1bit) :在协议层控制

4、字中位置号62 对协议层控制字而言,突发控制字的type是高电平, 空闲控制字的type是 低电平 SOP(1bit ) :在协议层控制字中位置号61 本控制字之后紧跟当前包的第一个数据字的时候为高电平,其余时候低电平 EOP_format(4bit): 在协议层控制字中位置号60-57 1xxx表示无错误且包已经在前一个数据字里结束 xxx表示前一个数据字里有效字节的个数,000表示八个字节都有效,001表示一个字节有 效,111表示七个字节有效,如此类推。有效字节从高位向低位排列。 0000表示没有包结束信号,也没出错 0001表示包结束但有错 不满8byte的其余部分全部置零处理 Res

5、et_calendar(1bit) :在协议层控制字中位置号56 带内流控状态复位信号,高电平有效 In-Band Flow Control (16bit ) :在协议层控制字中位置号55-40 带内流控,表示当前各路用户数据的流控信息 从高位到低位一共能控制16条用户数据 高电平表示开启,低电平表示关闭 Channel Number(8bit) :在协议层控制字中位置号39-32 本突发控制字之后的数据字属于哪路用户数据 Multiple-Use(8bit ):在协议层控制字中位置号31-24 备用字节,可自定义,一般用作带内流控和用户数据编号扩展 CRC24(24bit) :在协议层控制字

6、中位置号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传输过程中平均电压抖动范围不会过大。 具体做

7、法是,在每一路串行serdes传输过程中设置1和0计数器,检测到1 则计数器增加,检测到0则计数器减少。以正负96为阀值,并同时计算下 一个等待传输的64字节里面0跟1谁多,如果倾向与当前serdes内的计算 结果一致,就将下一个64bit翻转。 帧层控制字组装 同步字:元帧同步头,用于确定元帧位置 扰码器状态字:用于告知接收器当前扰码器的状态 跳脱字:时钟补偿,可增删 诊断字:当前通道状态和CRC32校验 以上四种帧层控制字长度均为67字节,细节放在下面讲 元帧长度每一路都一样 具体长度无特别规定,考虑传输效率和出错概率等因素, 一般以2000个字左右为宜 典型帧结构: 同步字 以同步字为例

8、说一下帧层控制字结构: bx10 同步字的66-64bit,跟前面的64/67编码一样的 b011110 同步字的63-58bit,一共六个bit 称为帧层控制字类型块,其余帧层控制字的63-58字节也是同一功能, 不过取值不同 其余部分,每个帧层控制字都不一样,对同步字来说是一个恒定值 扰码器状态字 类型块:b001010 扰码状态,从57到0,一共58个bit 因为扰码器多项式是 x58 + x39 + 1 因此这58个bit对应扰码器当前的58个寄存器状态 扰码操作的原则 同步字和扰码状态字不扰码 其余所有字的66-64bit不扰码 发送端的扰码器只在系统复位的时候复位一次,之后不会再复

9、位 (跟sdh协议x7+x6+1扰码器那种每帧复位一次做法是不同的) 因此,发送端在每个元帧里都将扰码器状态告知接收端 因此,接收端无须知道发送端的扰码器复位初始值,只需根据元帧里的 扰码器状态来解扰码即可 扰码器复位的初始值不得设为全零,并且最好每一路都设为不同的值 如果接收端解扰模块期望的下一组扰码器状态和发送端发出的下一组扰 码器状态不符,接收端应该在连续三帧出错之后提起出错信息 跳脱字 类型块:b000111 内容为恒定值 跳脱字用于时钟补偿,比如发送器跟接收器时钟不一致的时候。 比如,当发送器和接收器之间还要插入其他中间转发设备的时候, 就需要考虑用跳脱字来调整时钟速率。 跳脱字可以

10、往负载部分的任意地方插入。 原则是:在发送端插入跳脱字,在接收端检测并剔除跳脱字。 典型格式的元帧有一个跳脱字,供接收端删除。 诊断字 类型块:b011001 33-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要同时发出,并且发送频率要一致

11、决定发送频率的是元帧的长度设定值 协议对这一部分不作实现方法的具体规定, 具体怎么实现,由实现人员自己决定 处理流程框图(发送端) 效率分析 效率系数= 编码效率 X 成帧效率 X 校准效率 X 元帧成帧效率 编码效率:64/67编码,95.5% 成帧效率:就协议层一个控制字带八个数据字的标准格式,成帧效率是88.8% 校准效率:为了将帧尾装成一个8字节的字而填充无效字节,几乎可以不考虑 元帧成帧效率:以2k字长元帧为例,去掉控制字剩下的载荷部分,约为99.8% 那么总的效率系数就是以上乘起来,大约是84% 如果提高成帧效率,比如改为一个控制字带256个数据字, 那么总效率大约是94%,如此按

12、照官方说法: 当用户数据为41字节帧的POS数据时,系统总效率为69.8% 当用户数据为65字节帧的以太网数据时,系统总效率为77.5% 当用户数据为9601字节帧的以太网数据时,系统总效率为92.3% altera芯片性能 Stratix IV 的GT系列有1224个11.3G速率的串行收发器, 可支持40G到100G带宽 算一下带宽 以12个11.3G收发器的40G器件而言 每一路是一收一发,一共可以做12路 税前总带宽是11.3 X 12 = 67.8G 以系统效率70%而言,税后也有47G的带宽 完全可满足40G带宽 就省成本的角度, 某些有24个以上8.5G收发器的器件也可用 不过路

13、数太多,每一路收发器性能太低可能导致其他问题 Stratix V,还能再强点儿 若干扩展内容 扩展内容之一,自定义参数的数据分割算法 扩展内容之二,带外流控 扩展内容之三,流控的引申内容 自定义参数的数据分割算法 典型情况: BurstMax = 64byte = 8个字 BurstShort = 32byte = 4个字 新引入参数: BurstMin,用于替换 BurstShort BurstMin的范围设置如下: (BurstMin = BurstShort) 之后有如下算法 设定参数如下 packet_length:用户数据里包的总长度 packet_remainder:传输过程中,尚

14、未传输的用户数据长度 data_transfer:当前burst中有效数据的长度 if (packet_remainder = (BurstMax + BurstMin) data_transfer = BurstMax; else if (packet_length MOD BurstMax BurstMax) data_transfer = BurstMax - BurstMin; else data_transfer (256+64),因此第一个burst长度是BurstMax 然后剩下513 - 256 = 257 因为257 (256+64),因此第一个burst长度是BurstMa

15、x 然后剩下511 - 256 = 255 255 (256+64),如果再传一个BurstMax,就会出现长度小于BurstMin 的余量,那么进入第二个判断条件 511 MOD 256 等于255,大于BurstMin, 因此不能再以BurstMax - BurstMin作为下一个burst长度 此时直接进入第三种情况,最后一个burst长度就是余下的255 自定义参数数据切割的特点 优点: 无需插入空闲帧,而且数据可以自定义设置得比较大,可以 把系统效率从85%左右提升到95%左右。 缺点: 需要事先知道用户数据包的长度,否则无法实现。 高效率的同时,同步和流控等带内信息密度随之降低,系统 出错概率增加。 带外流控 数据速率是时钟速率的两倍,时钟上下沿都要打数据。 自带一个CRC4校验,可覆盖64bit的流控信息 SYNC信号表示有效数据起始位 流控的引申内容 一,带内流控的格式和意义可以根据需要自定义。 二,在流控使能的时候如果下一个包正在传输中, 是掐头还是去尾,由实现者自己决定。 三,对流控要求高的,可以单独用一个数据通路来 传流控信息。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号