0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

验证PCIe 6.0中的轻量级前向纠错和强循环冗余校验功能

星星科技指导员 来源:synopsys 作者:synopsys 2023-05-25 16:06 次阅读

2021 年,PCI-SIG® 发布了最新版本的 PCI Express® 规范 PCIe® 6.0。PCIe 6.0 的原始数据速率为 64 GT/s,带宽是 PCIe 5.0 (32GT/s) 的两倍,可满足行业对高速、低延迟互连的需求。它是一种可扩展的互连解决方案,适用于数据中心AI/ML、高性能计算 (HPC) 和汽车等数据密集型市场。

在本博客中,我们将讨论 PCIe 6.0 中的前向纠错 (FEC) 机制、为什么需要它,以及 Synopsys 提供哪些验证解决方案来涵盖此功能。

什么是 PAM-4?

PCIe 6.0 使用数据速率为 4GT/s 的 PAM-64 信令,而不是以较低数据速率使用的不归零 (NRZ) 信令。这意味着发送和接收的信号现在将在一个单位间隔内具有四个不同的电压电平(2位)编码,从而产生三个眼睛。这是因为 64GT/s 的 NRZ 信令会导致 32GHz 的奈奎斯特速率增加,此时信道损耗可能很大;因此,PAM-4 以 64GT/s 的速度使用以减少信道损耗,因为它具有与 16GT/s 数据速率相同的奈奎斯特速率 (32GHz)。

然而,这需要权衡,因为眼睛高度和眼睛宽度会减小,这使得接收器容易出错。预计误差在车道中以突发形式发生,并且预计车道之间也会有一定程度的相关性。因此,与PAM-4信令相关的误码率(BER)预计将远高于较低数据速率的10^-12目标。

为什么需要 FEC 以及如何完成?

FEC 用于缓解数据流中的高 BER。由于 FEC 在固定代码大小上工作,因此 FLIT 用于传输数据流中的 TLP 和 DLP。FEC 的延迟和复杂性随着要更正的字节数呈指数级增长。为了保持较低的延迟(<2ns)和复杂性,使用了轻量级FEC,它可以纠正单字节错误。这与用于错误检测的强循环冗余校验 (CRC) 相结合,以产生高可靠性结果。此外,预编码可用于最大限度地减少突发中的错误。

FLIT 的大小为 256 字节,其中 236 字节用于 TLP,6 字节用于 DLP,8 字节用于 CRC,6 字节用于错误检查和纠正 (ECC)。CRC 的 8 个字节保护 TLP 和 DLP 字节,但不保护 ECC 字节。6 字节的 ECC 保护整个 FLIT,包括 CRC 字节。

FEC 代码是 3 路交错的,如下表所示。每种颜色代表一个 ECC 组,其字节以相同的颜色标记。因此,一个通道中的三个连续字节属于三个不同的 ECC 组。因此,通道中长度为 <=16 的突发误差不会影响每组中的多个字节,并且每个 ECC 可以纠正单个字节错误。

poYBAGRvFrOAQVnaAAlcDRl-eNE470.png

表 1:x16 链路上的 FLIT 交错

在接收器上,ECC 解码器对其相应的代码组执行校正,并根据需要报告错误状态。然后进行CRC检查,以确定是否接受收到的FLIT。如果 CRC 检查失败,FLIT 将重放并得到纠正。

如果检测到无法纠正的错误,CRC 检查将失败并导致否定确认 (NAK),然后重播。优化是可能的,例如,可能无法重放具有仅 NOP TLP 的 FLIT,也可以仅重放错误 FLIT。

可纠正和不可纠正的错误:

以下是 Synopsys 验证 IP for PCIe 6.0 成绩单的快照,说明了 FLIT 中可纠正和不可纠正的错误。

可纠正的错误:

在传输的FLIT中注入可纠正的错误。

poYBAGRvFrqATJLFAAHmBTof-AI613.png

验证可纠正和不可纠正的错误以确保 FEC、CRC 和重放机制正常工作非常重要。

最终,轻量级 FEC 与强大的 64 位 CRC 相结合,适用于 10^-6 的 FBER,即使具有高通道相关性。每个 FLIT 的重试概率约为 5×10^-6,时间失败 (FIT) 几乎为 0。

适用于 PCIe 6.0 的 Synopsys 验证 IP 旨在解决关闭 SoC 数据可靠性方面所需的所有验证复杂性。 数据可靠性是一个非常理想的系统方面,PCIe 6.0 的目标用户正在寻找在系统级别验证其 SoC 的解决方案。在 SoC 上运行系统级有效负载需要更快的基于硬件的预硅解决方案。基于 Synopsys IP 的 Synopsys 事务处理器可实现快速验证硬件解决方案,包括用于验证用例的 Synopsys ZeBu® 仿真系统和 Synopsys HAPS® 原型系统。

Synopsys 协议验证解决方案与 Synopsys 验证系列产品原生集成,包括 Synopsys Verdi® 调试器以及使用 Synopsys VC Execution Manager 进行回归管理和自动化。

Synopsys 一直是 PCIe 规范的主要贡献者之一,并继续为 PCIe 6.0 和 Testsuite 提供业界首个采用 Synopsys 验证 IP 的验证解决方案。

此外,适用于 PCIe 6.0 的 Synopsys DesignWare IP 包括控制器和 PHY 解决方案,支持早期开发 PCIe 6.0 片上系统 (SoC) 设计。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 解码器
    +关注

    关注

    9

    文章

    1129

    浏览量

    40643
  • crc
    crc
    +关注

    关注

    0

    文章

    199

    浏览量

    29423
  • PCIe
    +关注

    关注

    15

    文章

    1212

    浏览量

    82379
收藏 人收藏

    评论

    相关推荐

    PSoC 4 循环冗余校验 (CRC)

    循环冗余校验 (CRC) 组件的默认用途是根据任意长度的串行比特流计算 CRC。在数据时钟的上升沿上对输入数据进行采样。在启动,CRC 值复位为 0,或可用初始值作为种子值。完成比特
    发表于 07-04 11:30

    循环冗余校验码的单片机及CPLD 实现

    循环冗余校验(CRC)是一种可靠性很高的串行数据校验方法。介绍循环冗余
    发表于 04-16 14:19 16次下载

    数据校验在中药自动发药系统的应用

    在对中药自动发药系统的发药流程、数据传输以及对循环冗余校验和利用循环冗余校验混合
    发表于 07-30 09:46 21次下载

    基于FPGA的循环冗余校验实验系统

    文章首先分析了循环冗余校验码的功能,在此基础上提出了基于FPGA的实现方法,详细阐述了CRC校验编解码的实现方法,并提出了基于现有的实验箱设
    发表于 03-26 13:52 1751次阅读
    基于FPGA的<b class='flag-5'>循环</b><b class='flag-5'>冗余</b><b class='flag-5'>校验</b>实验系统

    STM32L4循环冗余校验模块(CRC)介绍

    STM32L4循环冗余校验模块(CRC)介绍 有兴趣的可以参考下
    发表于 12-25 10:38 27次下载

    循环冗余校验奇偶校验累加和校验等知识分享

    CRC校验循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发,经常要用到CRC
    的头像 发表于 11-08 09:31 8697次阅读
    <b class='flag-5'>循环</b><b class='flag-5'>冗余</b><b class='flag-5'>校验</b>奇偶<b class='flag-5'>校验</b>累加和<b class='flag-5'>校验</b>等知识分享

    一种改进的高速链路纠错编码

    在高速链路的可靠传输,物理层纠错的研究主要集中在提高编码的纠错性能,且编码冗余位全部用于
    发表于 11-21 15:41 15次下载
    一种改进的高速链路<b class='flag-5'>前</b><b class='flag-5'>向</b><b class='flag-5'>纠错</b>编码

    并行循环冗余校验算法

    循环冗余校验(CRC)是一种众所周知的错误检测代码,已广泛用于以太网,PCIe和其他传输协议。现有的基于FPGA的实现解决方案在高性能场
    的头像 发表于 02-08 16:42 1912次阅读
    并行<b class='flag-5'>循环</b><b class='flag-5'>冗余</b><b class='flag-5'>校验</b>算法

    AN-1277: 利用ADV7850的循环冗余校验

    AN-1277: 利用ADV7850的循环冗余校验
    发表于 03-19 07:11 5次下载
    AN-1277: 利用ADV7850的<b class='flag-5'>循环</b><b class='flag-5'>冗余</b><b class='flag-5'>校验</b>

    轻量级的SDN数据包转发验证方案

    轻量级的SDN数据包转发验证方案
    发表于 06-08 11:29 10次下载

    Verilog数字系统基础设计循环冗余校验

    CRC(循环冗余校验) CRC介绍 临时“插播”,后面有实例。 CRC(Cyclic Redundancy Check,循环冗余
    的头像 发表于 08-17 17:08 6685次阅读

    PCI-SIG®发布PCIe®6.0规范以助力大数据应用

    速率,通过x16配置可达256GB/s 四电平脉冲幅度调制(PAM4)信号,利用业界现有的PAM4 轻量型纠错(FEC)和循环冗余
    的头像 发表于 01-13 09:32 4694次阅读

    支援PCIe 6.0的Rambus解决方案

    调变,透过结合新添加的纠错(Forward Error Correction)和循环冗余校验
    发表于 07-07 16:56 614次阅读

    CRC循环冗余校验简介

    CRC 是Cyclic Redundancy Check的缩写,循环冗余校验,用于校验数据传输的完整性。一般情况下在数据发送计算CRC
    的头像 发表于 04-24 13:04 6740次阅读
    CRC<b class='flag-5'>循环</b><b class='flag-5'>冗余</b><b class='flag-5'>校验</b>简介

    CRC(循环冗余校验)应用举例

    CRC(循环冗余校验)应用举例
    的头像 发表于 05-16 16:12 1001次阅读