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

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

3天内不再提示

详解PCIe 6.0中的FLIT模式

Cadence楷登 来源:Cadence Blog 2025-02-27 15:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文翻译转载于:Cadence Blog

作者:xinmu

PCIe 6.0 规范于 2021 年发布,采用 PAM4 调制(即 4 电平脉冲幅度调制),使数据传输速度翻倍,达到 64GT/s。同时,PCIe 6.0 规范使用 FLIT(流量控制单元)作为新的数据传输单元,显著提高了传输效率。

PCIe 6.0 拥有众多新功能和变化,我们将讨论其中一项重要功能:FLIT。接下来,我们将结合自身的设计和验证经验,重点分析当前面临的挑战,探讨相应的解决方案。

PCIe 6.0 中的 FLIT 是什么?

在先前版本中,事务数据以可变长度的形式存在,称为 TLP。它们的包头大小是固定的,但数据有效负载的长度有所不同。无论 TLP 有多长,都是使用 32 位 CRC 进行保护。在 PCIe 6.0 中,由于额外的信号状态,PAM4 信号本身比 NRZ 信号更脆弱。新的调制需要 FEC 来缓解 PAM4 较高的误码率,且要求在固定大小的数据包上实现纠错功能,因此在 PCIe 6.0 设计中使用了 FLIT(流控制单元)。

FLIT 的长度固定为 256 字节,其中包含 236 字节的 TLP、6 字节的 DLP、8 字节的 CRC 和 6 字节的 FEC。它去除了 1b/1b 编码的同步头、帧定界符等部分。FLIT 也具有类似的序列号概念,其中 DLP 的前 2 个字节包含专用于 FLIT 级别序列号、Ack/Nak、重试机制等方面的相关信息。

FEC(前向纠错)是针对延迟而设计的,其复杂性会随着纠正的符号数量增加而呈指数增长。6 字节的 FEC 负责 3 个交织组,每组有 2 个 FEC 字节,以防在少于 3 个字节时出现突发错误。

第一个挑战涉及新的 FLIT 格式和编码变化

在链路训练、轮询和配置阶段开始时,使用 TS1 中“Data Rate Identifier(数据速率标识符)”字段(符号 4,位 0)中的“FLIT 模式支持”位,实现 FLIT 模式的启用机制和协商。协商成功后,FLIT 模式将适用于所有数据速率,因此也支持 8b/10b 和 128b/130b(混合模式)。

进入 FLIT 模式后,我们采用一种全新的 TLP Header 格式。先前的 TLP Header 存在诸多局限性,例如没有为标签尺寸增加预留空间。为了满足 FLIT 模式的需求,PCI-SIG 对包头进行了重新设计。在此期间,我们面临的挑战是需要测试所有新的组合。

TLP Header 包含 3 到 7 个 DW TLP Header Base,后面跟随 0 到 7 个额外 DW 的 OHC(正交头内容)。

9f79d168-f4c1-11ef-9310-92fbcf53809c.jpg

新引入的字段具有完全解码的 8b Packet Type(数据包类型)字段。这意味着所有 256 个类型值都已被明确定义或预留用于特定群组,以确保正确实现帧定界和转发。

此外,还为 FLIT 模式设计了新的填写规则。未发布的 TLP 的填写也有重大更新,包括 14 位标签、使用 OHC-A5 的错误报告等。

9f8ea3f4-f4c1-11ef-9310-92fbcf53809c.jpg

据我们所知,236 字节可以容纳 1 个完整的 TLP 或多个 TLP。如果遇到较长的 TLP,还可以将其拆分成多个 FLIT 进行传输。在每个 TLP 之间,如果没有计划发送更多的 TLP,可能会插入一个 NOP TLP。PCIe 6.0 规范中还有一些新的规定,例如在 FLIT 的 32 DW 边界内,每个 FC/VC 最多只能包含 4 个 TLP(非 NOP)。

DLP 是一个 6 字节序列,其中前 2 个字节专门用于处理 FLIT 级别的 Ack/Nak、重试等信息,因此设计了新的格式。比如,“FLIT usage(FLIT 用途)”字段用于区分空闲 FLIT、NOP FLIT 或有效负载 FLIT;“Prior FLIT(前一个 FLIT)”字段用于标识非 NOP 或 NOP,避免重试错误的发生;“replay command(回放命令)”和“sequence number(序列号)”用于确定 Ack/Nak/Retry 的执行。

此外,在 FLIT 序列号和重试机制中,新定义了多种 FLIT 传输和交换规则。例如,CONSECTIVE_TX_EXPLICIT_SEQ_NUM_FLITS 和 CONSECUTIVE_TX_NAK_FLITS 计数器及其相关规则。

为了测试所有主要的编码和格式变化,必须确保覆盖所有新的数据包字段。针对上述新功能的通用解决方案是定义并实现良好的覆盖范围,以确保新功能得到充分测试。一个好的覆盖模型有助于充分测试新功能。

除 FLIT 格式外,FLIT 模式带来的另一项重大挑战是新的序列号和重试机制

在验证过程中,其中一项最难的挑战是IMPLICIT_RX_FLIT_SEQ_NUM 规则。该计数器对于回放机制至关重要。隐式 FLIT 序列号未包含在 FLIT 中,因此完全依靠内部逻辑来处理。内部逻辑/计数器需要处理多种场景,以确保正确计算 IMPLICIT_EX_FLIT_SEQ_NUM。

确保 TX 重试缓冲区的准确性也非常重要,因为在接收 Ack 或 Nak 之前,所有 FLIT 都需要存储在缓冲区。一个 FLIT 可能包含多个 TLP,或者一个大 TLP 可以分成多个 FLIT,因此需要保证重传的 FLIT 不会跳过 TLP 或将额外的 TLP 添加在原始 FLIT 中。这对于 Posted TLP 至关重要,因为它没有 Completion 通知。一旦 TLP 丢失,将导致无法纠正的错误。

借助新的标准 Nak/选择性 Nak,发射器可以回放特定 FLIT 或多个 FLIT。相关规则对 TX 和 RX 重试缓冲区均有影响。此外,发送标准或选择性 NAK 需要考虑具体的实施场景,因此有时很难预测和检查是否存在协议违规行为。

FEC 算法是一项新功能,我们需要确保 TX 和 RX 两端的计算都正确无误。

基于上述要点,我们尝试了使用以下解决方案来验证设计

1. 除了按照规范正确实现 IMPLICIT_RX_FLIT_SEQ_NUM 计数器之外,我们还发现,将隐式 FLIT 序列号记录在状态寄存器中或显示在调试日志中,能够更方便地进行比较和调试。

2. 确保您的监视器可以存储所有的 FLIT,将保存的 FLIT 与每个符号上的已退役 FLIT 进行比较,并报告相应的错误。

3. 必须确保 RTL 和监视器都具有足够大的重试缓冲区,以便能够应对在收到标准 NAK 后重新发送多个 FLIT 的情况。另外,需要采用一个检查器,根据规范预测标准和选择性 NAK 传输条件。最后,检查回放的 FLIT 序列号是否与收到的选择性 NAK 相匹配。

4.为了确保 FEC 算法逻辑的正确性,需要使用具有随机符号位置的故障注入测试用例。

总而言之,PCIe 6.0 是一个复杂的协议,具有诸多验证挑战。要成功验证该协议,必须了解新规范的变化,并制定完善的新功能验证计划以及受新功能影响的向后兼容性测试。Cadence 的 PCIe 6.0 验证 IP 完全符合最新的 PCIe Express 6.0 规范,并为验证 PCIe 6.0 接口交互的器件提供了一种高效且可靠的解决方案。适用于 PCIe 6.0 的 Cadence VIP 提供全面的验证解决方案,可用于验证基于 PCIe 的 IP 和 SoC。我们正在与早期采用者客户密切合作,旨在加速每个验证阶段的进程。

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

    关注

    0

    文章

    166

    浏览量

    30481
  • 计数器
    +关注

    关注

    32

    文章

    2306

    浏览量

    97650
  • PCIe
    +关注

    关注

    16

    文章

    1424

    浏览量

    87609

原文标题:破解 PCIe 6.0 FLIT 模式带来的新挑战

文章出处:【微信号:gh_fca7f1c2678a,微信公众号:Cadence楷登】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解析PCIe 6.0的正交头内容(OHC)

    在引入 Flit 模式后,TLP Header 的信息进行了重新调整。除基本包头外,还可以将正交头内容 (OHC) 添加到 TLP 。OHC 作为 TLP 的额外包头,包含 TLP
    的头像 发表于 02-18 13:55 1489次阅读
    解析<b class='flag-5'>PCIe</b> <b class='flag-5'>6.0</b><b class='flag-5'>中</b>的正交头内容(OHC)

    PCIe 6.0 SSD主控芯片狂飙!PCIe 7.0规范到来!

      电子发烧友网综合报道,早在2022年1月,PCI-SIG 组织正式发布了 PCIe 6.0 标准,与 PCIe 5.0 相比带宽再次翻倍,达到64 GT / s。   PCIe
    的头像 发表于 09-07 05:41 7805次阅读
    <b class='flag-5'>PCIe</b> <b class='flag-5'>6.0</b> SSD主控芯片狂飙!<b class='flag-5'>PCIe</b> 7.0规范到来!

    一文详解CXL链路层格式的定义

    链路层的传输单元。具体我也不知道flit这个词是出于哪里,没有考证过。另外,有的文档还会出现一个词是phit,physical layer transfer unit的缩写。“Header“槽携带链路层
    发表于 02-21 14:27

    楷登电子发布PCIe 6.0规范Cadence IP

    中国上海,2021 年 10 月 22 日——楷登电子(美国 Cadence 公司,NASDAQ:CDNS)宣布发布支持 TSMC N5 工艺的 PCI Express(PCIe6.0 规范
    的头像 发表于 10-26 14:28 5009次阅读

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

    负责制定广为采用的PCI Express® (PCIe®)标准的组织PCI-SIG®今天宣布正式推出PCIe 6.0规范,传输速度达到64GT/s。 PCIe
    的头像 发表于 01-13 09:32 5411次阅读

    PCIe 6.0的新变化与新挑战

    2022年1月11日,PCI-SIG正式发布了PCI Express(PCIe) 6.0最终版本1.0,标志着各大IP、芯片厂商可以开始着手设计、开发自己技术和产品了。从技术上来说,PCIe
    的头像 发表于 04-13 13:50 6212次阅读

    PCIe 6.0规范及它是如何从过去的规范演变而来的

    虽然与前几代相比,PCIe 6.0 的变化很大,但业界对其采用有着强大而广泛的支持。PCIe 在每个现代计算架构无处不在,您应该期望 PCIe
    的头像 发表于 06-01 17:15 3165次阅读
    <b class='flag-5'>PCIe</b> <b class='flag-5'>6.0</b>规范及它是如何从过去的规范演变而来的

    支援PCIe 6.0的Rambus解决方案

    PCIe 6.0还实现了PAM4 (Pulse Amplitude Modulation 4)等级的讯令,以及基于流量控制单元(flow control unit,Flit)的编码,后者支援PAM4
    发表于 07-07 16:56 861次阅读

    PCIe 7.0发布,速度高达512 GB/s

    PCIe 7.0 接口将继续使用 1b/1b flit 模式编码和随 PCIe 6.0 引入的 PAM4 信号技术,这与
    的头像 发表于 07-28 15:11 1810次阅读

    干货:PCIE6.0技术剖析

    关于PCIe6.0 你需要知道的都在这里 从正式发布至今,PCI Express(PCIe)发展迅速,已经成为高性能计算、人工智能/机器学习(ML)加速器、网络适配器和固态存储等应用不可或缺的一项
    的头像 发表于 12-07 07:40 7056次阅读

    面向高性能数据中心和人工智能SoC Rambus推出PCIe 6.0接口子系统

    全新的PAM4信令带来PCIe 6.0两大非常重要的改变。第一个改变就是采用前向纠错(FEC),支持固定大小数据包(FLITs)。第二个重要的变化就是在PCIe 6.0当中采取的L0p
    的头像 发表于 12-19 13:57 1286次阅读

    如何破解PCIe 6.0带来的芯片设计新挑战?

    本文转载自《半导体行业观察》 感谢《半导体行业观察》对新思科技的关注 PCI Express (PCIe) 6.0规范实现了64GT/s链路速度,还带来了包括带宽翻倍在内的多项重大改变,这也为SoC
    的头像 发表于 01-19 16:50 1580次阅读

    PCIe 6.0入门之什么是 PCIe 6.0

    PCI Express® 6.0 (PCIe® 6.0) 规范由 PCI-SIG® 于 2022 年 1 月发布。最新一代的 PCIe 标准带来了许多激动人心的新功能,旨在提高计算密集
    的头像 发表于 05-22 17:27 8797次阅读
    <b class='flag-5'>PCIe</b> <b class='flag-5'>6.0</b>入门之什么是 <b class='flag-5'>PCIe</b> <b class='flag-5'>6.0</b>

    浅析PCIe标准和布线的开发

    /s,使用了四级脉冲幅度调制(PAM4)信令和1b/1b flit模式编码和前向纠错(FEC),这些都延用了之前PCIe 6.0规范的功能。
    发表于 06-21 11:32 1388次阅读
    浅析<b class='flag-5'>PCIe</b>标准和布线的开发

    PCIe的基础知识整理

    /s,使用了四级脉冲幅度调制(PAM4)信令和1b/1b flit模式编码和前向纠错(FEC),这些都延用了之前PCIe 6.0规范的功能。
    发表于 06-25 10:48 1680次阅读
    <b class='flag-5'>PCIe</b>的基础知识整理