8B/10B、64B/66B编解码(二)

david 2021-12-24 09:00:25 4300

8b/10b编码的特性之一是保证DC平衡,可使得发送的0、1数量保持基本一致(具体原理上文8B/10B、64B/66B编解码(一)已经分析),但原本8位的字节用10位来表示,会使8B/10B编码的开销太大,带宽利用率并不高,因此64B/66B应运而生。

64B/66B编码将64bit“数据或控制信息”编码成66bit块来进行传输,这66bit中,前两位表示同步头(2bit Sync Header),主要用于接收端的数据对齐和接收数据位流的同步,同步头有“01”和“10”两种,“01“表示后面的64bit都是数据,“10”表示后面的64bit是数据和控制信息的混合,其中紧挨着同步头的8bit是类型域,而后面的56bit是数据、控制信息与数据的混合。

  • 对于纯数据Pure data

- 对于纯控制Pure Control (Type = 0x1E)

- 对于数据和控制信息的混合

64B/66B编码格式图如下图所示,其中D表示数据编码,每个数据码8bit;Z表示控制码,每个控制码7bit;S表示包的开始,T表示包的结束。S只会出现在8字节中的第0和第4字节,T能够出现在任意的字节。除同步码外,64bit的数据必须经过扰码以后才能进行传输。64B/66B编码所使用的扰码器为X58+X39+1。
一个18 bytes的数据块的传输过程如下图所示:64B/66B并不是真正的编码,而是一种基于扰码机制编解码方式,这种编码方式是IEEE推荐的10G通信的标准编码方式。除同步码外,64bit的原始数据的0、1码元是不能达到8B/10B那个平衡的,所以数据必须经过扰码处理后才能传输。用一个伪随机序列对输入的码流进行扰乱处理即可,将二进制数字做“随机化”处理,变为伪随机序列,也能限制连“0”码或连“1”码的长度,这种“随机化”处理通常称为“扰码”。这种扰乱是有规律的,因而也是可以解除的,在接收端解除这种扰乱的过程称为解扰。关于编码过程,如下图例子:若从物理编码子层XGMII传来两个32bit,加在一起64bit,经过encoder进行编码,得到编码后的数据D0-D7,生成同步头01。

然后,不含同步头的D0-D7,经过扰码器,得到表达式X58+X39+1扰码后的数据S0-S7。之后,将同步头和扰码后的数据S0-S7合并,生成一个传输块,将这个传输块经过GearBox处理后,完成编码。最后,回顾一下,8B/10B编码的连续0或者连续1的最大长度是5;8B/10B编码他有良好的DC平衡能力和位同步恢复能力,而64B/66B的这些能力都和扰码器有关,或者说都决定于扰码所用的表达式。对于字同步,8B/10B编码有自己的K码,而64B/66B编码用的是两位表示的同步头。对于控制码,8B/10B编码也是使用K码,而64B/66B编码用的是同步头为10 的控制码。64B/66B编码的这种扰码方式目标是使数据的“0”和“1”最大程度的随机分布,减小连续出现的情况,因此它可能并不能适用于所有的码型,不像8B/10B编码一样对所有的bit组合都有出色的表现,具体还要看扰码器接收器的能力。但是无可否认,它最大的好处是效率比较高,传输冗余的bit只有2位,开销大约只有3%,不像8B/10B编码需要20%的开销,这方面在更高速的传输环境下更具有优势。

转载:全栈芯片工程师

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
david
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
更多相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
david
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区