64B/66B编码
一、前言
8B/10B编码主要作用的优化直流平衡,从8bit中插2个bit进去,这样的话最终效果能够使长0或者长1的位数不超过5位,达到很好的效果。但是由于8B/10B编码的带宽利用率非常低,10G的带宽只有8G在传输有效数据,2G的带宽全部浪费掉了。所以需要一种带宽利用率高的编码。
64B/66B的带宽利用率为64/66=96.9%,所以64B/66B能避免过高的带宽浪费。
以下引自:64B/66B编码技术-CSDN博客
64B/66B编码技术是IEEE802.3工作组为10G以太网提出的,目的是减少编码开销,降低硬件的复杂性,并作为8B/10B编码的另一种选择,以支持新的程序和数据。它并不是真正的编码,而是一种基于扰码机制编解码方式,这种编码方式,是IEEE推荐的10G通信的标准编码方式。
当前,64B/66B编码主要应用于FiberChannel 10GFC和16GFC、10G以太网、100G以太网、10G EPON、InfiniBand、Thunderbolt和Xilinx的Aurora协议。
二、64B/66B编码原理
64b/66b编码主要是将64b的数据或者控制数据编码成66b数据,编码过程是在64b的数据或控制信息前面加入2bit数据,这2bit所代表的含义如下:
00:编码错误
01:64bit为纯数据
10: 64bit为控制数据或者数据与控制数据的混合
00:编码错误
在编码过程中,如果传输正常只会出现01 和 10
编码过程如下:
① 对于纯数据Pure data
同步头:01,后面的信息:8*8=64bit数据
② 对于纯控制Pure Control (Type = 0x1E
同步头:10,后面的信息:8bit类型表示+7*8控制信息
③ 对于数据和控制信息的混合
同步头:10,后面的信息:数据信息和控制信息的混合.主要用来对不是8 Byte的帧进行帧对齐。一共有8种对齐方式。其中,D表示数据编码,每个数据码8bit;Z表示控制码,每个控制码7bit;S表示包的开始,T表示包的结束。S只会出现在8字节中的第0和第4字节,T能够出现在任意的字节。
64B/66B全部编码格式图如下图所示:
一个18 bytes的数据块的传输过程如下图所示
从图中我们可以直观的看到,在数据的传输过程中,我们需要用到两个控制帧,一个是开始部分的控制帧,用来告诉接收方这是某一个数据块的开始,还要有的是一个用来表示结束的控制帧,告诉接收方该数据块到此结束。
三、扰码
64b/66b编码中对于开始帧和结束帧之间的纯数据帧,有可能会出现会出现长连“0”或者长连“1”的情况,所以64b/66b直流平衡的性能很差。但是64b/66b编码采用加扰的方式减小这一影响。
加扰就是一种将数据重新排列或者进行编码以使其最优化的方法,他的作用是对数字信号的比特级进行随机处理,减少连0和连1的出现,从而减少码间干扰和抖动,方便接收端的时钟提取;同时又扩展了基带信号频谱,起到加密的效果。在统计结果上,会使得“0”和“1”出现的概率相同。
扰乱虽然改变了原始传送码流,但这种扰乱是有规律的,因而也是可以解除的,在接收端解除这种扰乱的过程称为解扰。完成扰码和解扰的电路相应称为扰码器和解扰器。
64B/66B自同步扰码实现随机化,编码所使用的扰码器为: X58+X39+1
扰码的数学原理使用了多项式,多项式的选择通常是基于扰码的特性,包括生成数据的随机度,以及打乱连0和连1的能力。一个简单的扰码器包含一组排列好的触发器,用于移位数据流。大部分的触发器只需要简单地输出下一个比特流即可,但是在复杂的扰码电路中,触发器需要与数据流中的历史比特进行逻辑运算(与和或运算)。基本的扰码电路如下所示。。
在GT Transceiver 中,Gearbox提供64b/66b、64b/67b编码的功能。
四、对比
从上图可以看出,8B/10B长连0的最大个数为5,拥有出色的直流平衡和位同步时钟恢复能力,64B/66B主要取决于加扰的方式。对于字同步,8B/10B用K码来进行字同步,而64B/66B使用两位同步头进行同步,控制字符,8B/10B用K码来进行,而64B/66B采用同步头为10控制帧进行控制。
五、总结
64B/66B编码使用扰码的方式,在统计分布上,使得“0”和“1”出现的概率相同,减小连续出现的情况。但是这种方式在微观上并不像8B/10编码对于所有的码型都合适,具体还要看扰码器接收器的能力。但是64B/66B毫无疑问提高的带宽的利用率,这方面在更高速的传输环境下更具有优势。
原文地址:https://blog.csdn.net/sqzjiayou/article/details/137738482
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!