这一篇主要讲一下以太网100G速率下,RS_FEC解码器(也就是RX一侧)协议相关要求和一些技术规范,之前已经有分析过RS_FEC中256/257B编码和RS_FEC中Alignment Marker的映射与插入相关内容,大家有相关疑问的可以看看
有关256/257B编码的文章大家可以看这篇文章
64/66B编码到256/257B编码的详细实现过程解析_802.3 256 257编码-CSDN博客
有关RS_FEC中Alignment Marker的映射与插入,大家可以看这篇文章
100G RS_FEC中Alignment Marker映射与插入-CSDN博客
一、核心功能概述
-
解码流程
RS解码器从接收码字中提取消息符号,进行纠错后丢弃奇偶校验符号。解码后的消息符号对应20个转码块rx_scrambled
。 -
纠错能力
PHY类型 码型 纠错能力(t) 符号错误数 100GBASE-CR4/KR4/SR4 RS(528,514) t=7 ≤7个符号错误 100GBASE-KP4 RS(544,514) t=15 ≤15个符号错误 -
漏报率要求:当错误数≥t+1时,解码器未标记"未纠正"的概率需≤10⁻⁶
-
二、错误处理机制
1. 纠错旁路模式 (Bypass Correction)
-
功能:可选开启only检错模式(跳过纠错以降低延迟)
-
使能信号:
-
能力标志:
FEC_bypass_correction_ability
-
使能信号:
FEC_bypass_correction_enable
-
-
限制:
-
禁止在100GBASE-SR4 PHY中使用
-
启用前需验证底层链路性能(PHY可能依赖FEC纠错)
-
2. 错误指示机制
触发条件:纠错失败时(或旁路模式下检测到错误)
-
同步头篡改策略:
a) 对码字内奇数序号的257位块(第1/3/5...个)
→ 将其首个66位块的同步头rx_coded_0<1:0>
强制设为11
b) 特定块额外处理:-
第6个257位块:
rx_coded_0<1:0>=11
-
第20个(最后)块:
rx_coded_3<1:0>=11
效果:迫使PCS丢弃该码字关联的所有≥64字节帧
-
3. 错误指示旁路模式 (Bypass Indication)
-
功能:可选跳过错误指示(进一步降延迟)
-
使能信号:
-
能力标志:
FEC_bypass_indication_ability
-
使能信号:
FEC_bypass_indication_enable
-
-
优先级规则:
FEC_bypass_correction_enable
激活时,错误指示不可跳过
三、错误监控
触发条件
当同时满足:
-
FEC_bypass_indication_enable=1
(错误指示旁路激活) -
FEC_bypass_correction_enable=0
(纠错未旁路)
监控机制
-
统计窗口:每8192个连续码字为1个统计块
-
计数规则:累计4条FEC通道的总符号错误数
-
阈值触发:
PHY类型 符号错误阈值(K) 100GBASE-CR4/KR4/SR4 K=417 100GBASE-KP4 K=6380 动作:若错误数>K,持续60-75ms将所有输出66位块的同步头设为 00
或11
连锁反应: → PCS置位 hi_ber=true
(暂停收包处理)→ 若支持自协商(Auto-Negotiation),触发重启流程
EEE深度睡眠特殊处理
-
当
rx_lpi_active=true
(接收端低功耗激活)时:
暂停8192码字错误监控 -
唤醒后:从
rx_lpi_active=false
后的首个码字边界重新开始统计
技术要点解析
-
K值设计依据
-
RS(528,514):t=7 → K=417 ≈ 8192码字×7错误/码字 × 7.3% 冗余
-
RS(544,514):t=15 → K=6380 ≈ 8192×15 × 5.2% 冗余
(阈值低于理论最大纠错能力,确保误码扩散前触发保护)
-
-
同步头篡改原理
强制设置11
(应为01
/10
)使PCS判定同步丢失,直接丢弃问题数据流。 -
EEE模式优化
深度睡眠期间暂停监控,避免低功耗态误码触发虚假告警。
实现意义:此分层错误处理机制在保证可靠性的同时,为不同应用场景(如低延迟交易系统)提供灵活配置选项。