当前位置: 首页 > news >正文

Error ratio tests for 200 Gb/s per lane ISLs using PMAmeasurements

本文是IEEE802.3dj的章节翻译,跟着推算了一遍,有些地方还是比较模糊。按惯例先翻译一遍,后面实际用起来就会常读常新。
ISL:Internal Signal Link
BLER:Block Error Ratio

174A.8 采用 PMA 测量方法对单lane 200Gb/s的 ISL 进行误差比率测试 Error ratio tests for 200 Gb/s per lane ISLs using PMA
measurements

  • 包含两端的PMD(Physical Medium Dependent,物理介质相关)和中间传输介质;

  • 包含两端的内层FEC(Forward Error Correction,前向纠错)和PMD,以及中间介质;

  • 包含一个xAUI-n接口(用于连接MAC/PHY与PMA之间的接口)


 测试目的

验证ISL(Internal Signal Link)在整个路径上的误码率(Error Ratio)是否在其分配的容限范围内。这个“路径”可以是:

  • PHY到PHY(物理层到物理层),PHY= PCS + PMA + PMD;

  • 或 XS到XS(XGMII Extender Sublayer,扩展子层之间)。

关键参数定义

测试使用两个核心参数来评估ISL性能:

a. BERtotal(总误码率预算)

  • 表示整个PHY-to-PHY或XS-to-XS路径所允许的总误码率(Bit Error Ratio)

  • 它是根据该路径上分配的码字错误率(Codeword Error Ratio) 推导出来的,假设错误是随机分布的。

  • 这是一个系统级的性能目标。

    BERtotal分配汇总:
     frame loss ratioFEC codeword error ratioCRC32 块的 CRC 错误率pre-correction BER (BERtotal)
    xMII Extender<1E–12<2.4E-13 <2.21E-4
    PCS-to-PCS path <1.45E-11 <2.29E-4
    FEC-to-FEC path<5.8E-11 <5.71E-11<2E-2

    174A.4 xMII Extender
    frame loss ratio(64 字节的帧,且各帧之间有最小的间隔时间) 预计小于1E–12.这相当于FEC codeword error ratio低于 2.4E-13。如果 RS-FEC 输入端的错误是不相关的,这相当于pre-correction BER (BERtotal) =2.21E-4 .
    174A.5 PCS-to-PCS path
    对于不包含 FEC 到 FEC 路径的 200GBASE-R、400GBASE-R、800GBASE-R 或 1.6TBASE-R PHY,预期的帧丢失率相当于在 PCS 测量到的FEC codeword error ratio,即小于 1.45E-11。如果 RS-FEC 输入端的错误是不相关的,则这相当于pre-correction BER (BERtotal) =2.92E-4
    174A.6 FEC-to-FEC path
    对于具有最小帧间间隔的 64 字节 MAC 帧,其帧丢失率预计低于5.8E-11。对于使用 800GBASE-ER1 FEC 的物理层而言,预期的帧丢失率相当于 CRC32 块的 CRC 错误率,即小于 5.706E-11。如果 FEC 输入端的错误是不相关的,这相当于pre-correction BER (BERtotal) =2E-2。

b. BERadded(附加误码率预算)

  • 表示在同一路径中其他未被当前测试包含的ISL所引入的误码率贡献

  • 换句话说,当前ISL只能“占用”一部分BER预算,其余部分要留给路径上的其他链路。

BERadded分配汇总:
 PMD receiverPHY receiver适用模块类型章节
BERadded6.4E-053.2E-05200GBASE-DR1180
 400GBASE-DR2
 800GBASE-DR4
1.6TBASE-DR8

BLER

(block error ratio)

1.45E–111.45E–11800GBASE-FR4-500181
200GBASE-DR1-2182
 400GBASE-DR2-2
 800GBASE-DR4-2
测试方法174A.8174A.101.6TBASE-DR8-2
800GBASE-FR4 183
800GBASE-LR4
800GBASE-LR1185

4. 测试方法概述

方法一:基于误码掩码(Error Masks) 的PMA测量(见 174A.8.5)

  • 使用PMA层的错误检测机制(如内置误码检测器)和计数器。

  • 通过分析错误发生的模式(即“错误掩码”),判断ISL的误码表现是否符合要求。

方法二:基于块错误率(Block Error Ratio, BLER) 的PMA测量(见 174A.8.6)

  • BLER是对码字错误率的一种估计。

  • 它会调整那些未包含在本次测试中的其他ISL所带来的误码影响

  • 这样可以更准确地评估当前ISL对整体性能的贡献。

方法三:基于PCS(Physical Coding Sublayer)测量的BLER方法(见 174A.10)

  • 与PMA不同,PCS层也提供错误统计信息。

  • 此方法利用PCS层的测量来评估ISL的块错误率。


5. 测量基础:PMA计数器与直方图

  • 所有基于PMA的测量都依赖于174A.8.2中定义的错误检测器和计数器

  • 测试过程中会采集一组直方图(histogram bins)数据,这些数据由PMA的计数器生成(定义在174A.8.3)。

  • 直方图可用于分析错误发生的频率和分布,进而推导出BER或BLER。

174A.8.1 PMA block error ratio test configurations


PMA block error ratio test configurations:

174A.8.2 PMA block error counters


这段内容定义了在 200 Gb/s 每通道 的高速以太网链路中,如何使用 PMA层的块错误计数器 来进行误码性能测试。这些计数器是进行 BER(误码率)或 BLER(块错误率)测试 的基础。


🔹 1. Test Symbol(测试符号)的定义

  • 一个 Test Symbol(测试符号) 是由 5 个连续的 PAM4 符号 组成的非重叠组。

  • 因为每个 PAM4 符号携带 2 比特信息,所以 5 个 PAM4 符号 = 5 × 2 = 10 比特

  • 这些“测试符号”是用于误码检测的基本单位。将 5 个 PAM4 符号组合成一个“测试符号”,是为了便于对齐和统计错误。


🔹 2. Test Block(测试块)的定义

  • 设有 p 条物理通道(lanes),例如:

    • 如果是 4x50G = 200G 链路,则 p = 4

    • 如果是单通道 200G,则 p = 1

  • 总共取 4 × 544 / p 个连续的 test symbols

  • 然后从中每4 个 取一个,组成一个 test block

  • 最终的 test block 包含:544 / p 个 test symbols。

🎯 这种“每隔4个取1个”的方式是一种 降采样(decimation)策略,用于:

  • 减少数据处理量;

  • 避免测试序列相关性;

  • 实现跨通道的并行测试同步;

  • 保证即使在多通道系统中,也能构造出合适大小的测试块用于统计。

📌 举例说明: 假设 p = 4(4 条通道):

  • 每个 test block 包含 544 / 4 = 136 个 test symbols

  • 原始序列取 4 × 136 = 544 个连续 test symbols

  • 然后取其中第 1、5、9、... 个(即每第 4 个),共 136 个 → 构成一个 test block


🔹 3. Block Error Counters(块错误计数器)

对每条通道 i(i 从 0 到 p-1),定义 17 个错误统计计数器(bin counters),用于记录每个 test block 中发生错误的 test symbol 数量。

具体如下:

✅ test_block_error_count_i_k,其中 k = 0 到 15

  • 这些计数器分别统计:在第 i 条通道上,有多少个 test block 包含恰好 k 个 test symbol 错误

    • k=0:无错的块(完全正确)

    • k=1:有 1 个 test symbol 出错的块

    • ...

    • k=15:有 15 个 test symbol 出错的块

✅ test_block_error_count_i_16p(这里的p是plus,也就是下图的Bin16+)

  • 这个计数器统计:在第 i 条通道上,有多少个 test block 包含 16 个或更多 test symbol 错误

  • 它是一个“溢出桶”(overflow bin),用于收集高错误数量的块,避免计数器过多。

注:在多数实例中,只定义 17 个 bin:0~15 和 ≥16。


🔍 为什么这样设计?

这种计数器结构的设计目的包括:

目的

说明

精细错误分布统计

不只是统计总误码数,还能看到错误是集中在少数严重块中,还是均匀分布,有助于分析噪声类型(随机 vs 突发)

支持 BLER 计算

块错误率(Block Error Ratio)通常定义为“至少有一个错误的块”的比例,可通过 Σ(k≥1) 的计数器求和得到

兼容 FEC 分析

内层 FEC 能纠正一定数量的 symbol errors,因此知道有多少块超过纠错能力(如 >16 错误)非常重要

多通道独立监控

每个 lane 有自己的计数器,便于定位哪条通道性能较差

174A.8.3 PMA Error Histogram Measurement

该子条款描述了如何基于PMA层在测试过程中积累的计数数据,计算一组block错误直方图。这些直方图用于评估每条物理通道(lane)上的误码分布情况。

🔹 测量方法对于每条通道 i,按照以下步骤测量直方图

第 i 条通道上,一个 test block 中恰好有 k 个 test symbol 出错的概率。

  • test_block_error_count_i_k:第 i 条通道上,包含 恰好 k 个 错误的 test block 数量。

  • test_block_total_count_i:第 i 条通道上总共分析的 test block 数量。

a) 生成测试码型

  • 在发送端设备的PMA层生成 PRBS31 或 PRBS31Q 测试序列(前期猜测是对的,小开心)

b) 识别错误位

  • 在接收端的PMA层,使用 PRBS31 或 PRBS31Q 块错误检测器 从物理链路上识别出错误的比特。

c) 划分测试符号和测试块

  • 将接收到的数据流划分为一系列的 test symbols 和 test blocks

d) 统计错误并更新计数器

  • 对每个 test block,统计其中含有一个或多个比特错误的 test symbols 数量。

  • 根据该 test block 中总的 test symbol 错误数量,递增相应的 bin 计数器

e) 确定分析的test block总数

  • 总共需要分析的 test block 数量由下方公式 (174A–1) 确定。

  • test_block_total_count_i:第 i 条通道上总共分析的 test block 数量。应足够大,以可靠地验证预期的BLER是否满足要求。

  • test_block_error_bin_i_16p:第 i 条通道上,包含 16个或更多 错误的 test block 数量。

  • test_block_error_count_i_k:第 i 条通道上,包含 恰好 k 个 错误的 test block 数量

  • 可通过直接测量或统计投影来确定。

  • 投影应能准确预测长期测试中会观察到的值,或者至少提供一个上限。

174A.8.4 Error Histogram Convolution

将两个错误直方图Hx(k)和Hy(k)合并成一个新的直方图 H(k)

为什么需要卷积?

在高速以太网系统中,数据通常经过多级处理,每级都可能引入误码。例如:

  • 数据先经过一个FEC编码器,然后通过物理链路传输,再经过另一个FEC解码器。

  • 每个环节都有自己的误码特性,可以用一个直方图来描述。

  • 为了评估整个系统的误码性能,需要将这些直方图合并起来,这就是卷积的作用。

计算举例:
下表中当2≤k≤16+时Hx(k)和Hy(k)都为0;

  • H(1)=0.26
  • H(2)=0.02H(2)=0.02
  • 两个独立错误源卷积后,一个 test block 中恰好出现 1 个 symbol 错误的联合概率是 26%
  • 恰好出现 2 个 symbol 错误的概率是 2%
kHx(k)Hy(k)
00.90.8
10.10.2
.........
1600

定义了一种通过卷积操作将两个17-bin错误直方图 Hx(k)Hy(k) 合并成新直方图 H(k) 的方法,包括:

  1. 卷积公式:对于 0 ≤ k ≤ 15 使用公式 (174A–3),对于 k = 16 使用公式 (174A–4);

  2. 应用场景:适用于多级FEC、多通道系统等复杂误码场景的分析;

  3. 数学意义:卷积操作反映了两个随机过程的联合概率分布。

174A.8.5 基于PMA测量的误码分布模板测试方法
Error Mask Test Method Using PMA Measurements

该子条款描述了一种使用PMA层测量数据进行Error Mask Test的方法,用于独立评估每个物理lane的性能。通过比较测量得到的错误直方图与计算出的模板上限,可以确定是否满足预期BLER要求。


🔹 测试方法

a) 测量每条通道的错误直方图

  • 对于每条通道 i,测量其错误直方图  

    • 这个直方图表示在该通道上,一个test block中出现 k 个或更多test symbol错误的概率。

b) 计算上限直方图 H_max(k)

  • 使用公式 (174A–5) 计算上限直方图 H_max(k),其中:

    • n = 544 / pp 条物理通道(lanes);

    • BER =BER_total - BER_added

c) 比较直方图

  • 如果对于每条通道 i,其在所有 k > 0 的情况下都小于 Hmax(k),则认为该PHY或xMII Extender满足预期的块错误率要求。

  • 如果测试失败,可以通过174A.8.6子条款中的方法进一步验证性能。

示例计算

假设 BER_total = 1E-5BER_added = 0p = 1,则:

  1. BER =BER_total - BER_added=1E-5

  2. RSSER=1-(1-2x(1E-5))^5≈1E-5

  3. n=544/1=544

  4. 计算Hmax(k), k = 1时:

    Hmax(1)0.0272

    单lane 200G新增Transmitter functional symbol error histogram测试,后续展开解读

174A.8.6 基于 PMA 测量的所有lane BLER方法
Block Error Ratio Method for All Lanes Using PMA Measurements

该子条款描述了一种使用PMA层测量数据进行块错误率(Block Error Ratio, BLER)测试的方法,用于评估所有物理通道作为一个整体的性能。通过测量每个通道的错误直方图、计算BERadded的影响,并将这些直方图组合起来,最终确定整个通道组的块错误率。


🔹 测试方法

a) 测量每条通道的错误直方图

  • 对于每条通道 i,测量其错误直方图

    • 这个直方图表示在该通道上,一个test block中出现 k 个或更多test symbol错误的概率。

b) 计算BERadded的错误直方图 Ha(k)
使用公式 (174A–5) 计算得到的 Ha(k) 作为初始值赋给 He(k)


此处BER = BERadded

d) 迭代卷积复合错误直方图

  • 对于每条通道 i,使用卷积函数 hconv[He(k),],将当前的复合错误直方图 He(k) 与该通道的测量直方图进行卷积,并将结果重新赋给 He(k)

e) 确定BLER

  • 测量的BLER等于最终复合错误直方图 He(k) 中 k=16 的值,即 He(16)


🔍 总结

174A.8.6的核心内容是:

定义了一种使用PMA层测量数据进行块错误率测试的方法,包括:

  1. 测量每条通道的错误直方图,

  2. 计算添加误码率的错误直方图 Ha(k)

  3. 初始化复合错误直方图 He(k) 为 Ha(k)

  4. 迭代卷积所有lane的复合错误直方图 He(k)

  5. 确定块错误率BLER,测量值为 He(16)

174A.8.7 基于 PMA 测量的单lane BLER方法
Block Error Ratio Method for a Single Lane Using PMA Measurements

定义了一种使用PMA层测量数据进行块错误率测试的方法,包括:

  1. 测量被测通道的错误直方图,

  2. 计算添加误码率的错误直方图 Ha(k)

  3. 初始化复合错误直方图 He(k) 为 Ha(k)

  4. 迭代卷积复合错误直方图 He(k) p次,p是lane数量

  5. 确定块错误率BLER,测量值为 He(16)
    个人理解:174A.8.7 和174A.8.6的区别是,
    74A.8.6 看整体 BLER 是否达标
    174A.8.7  假设所有 p 个通道都和 lane 1 一样差,然后看整体 BLER 是否达标

http://www.dtcms.com/a/349391.html

相关文章:

  • 李沐-第十章-实现Seq2SeqAttentionDecoder时报错
  • 什么是事件循环(Event Loop)?浏览器和 Node.js 中的事件循环有什么区别?
  • springboot整合druid(多数据源配置)
  • Python_occ 学习记录 | 阵列
  • 李沐-第十章-训练Seq2SeqAttentionDecoder报错
  • 十九、云原生分布式存储 CubeFS
  • 剧本杀APP系统开发:打造多元化娱乐生态的先锋力量
  • Go编写的轻量文件监控器. 可以监控终端上指定文件夹内的变化, 阻止删除,修改,新增操作. 可以用于AWD比赛或者终端应急响应
  • TensorFlow深度学习实战(34)——TensorFlow Probability
  • GO学习记录八——多文件封装功能+redis使用
  • Node.js(2)—— Buffer
  • 安卓Android低功耗蓝牙BLE连接异常报错133
  • Docker Compose 部署 Elasticsearch 8.12.2 集成 IK 中文分词器完整指南
  • Go初级三
  • 上海AI实验室突破扩散模型!GetMesh融合点云与三平面,重塑3D内容创作
  • 少儿舞蹈小程序需求规格说明书
  • AutoCAD Electrical缺少驱动程序“AceRedist“解决方法
  • 【STM32】G030单片机的独立看门狗
  • ELKB日志分析平台 部署
  • 完美世界招数据仓库工程师咯
  • ArcGIS JSAPI 高级教程 - 创建渐变色材质的自定义几何体
  • three.js+WebGL踩坑经验合集(8.3):合理设置camera.near和camera.far缓解实际场景中的z-fighting叠面问题
  • 大数据平台ETL任务导入分库分表数据
  • Jenkins+docker 微服务实现自动化部署安装和部署过程
  • TDengine IDMP 应用场景:电动汽车
  • AI测试工具midsence和browse_use的使用场景和差异
  • react+taro打包到不同小程序
  • Flutter旧版本升级-> Android 配置、iOS配置
  • 机器视觉的3C玻璃盖板丝印应用
  • KeepAlived+Haproxy实现负载均衡(SLB)