PCIe Gen 6的spec文档,终于出到1.0版本了。
下载链接: http://pan.baidu.com/s/1kUrho2M7hRJeCNXSxwLN8A?pwd=7zkx
提取码:7zkx
PCIe 1.0版本于2002年发布,当时我已经在IT行业了,有幸摸爬滚打过这些年头。
PCIe 6.0的速率在5.0的32 GT/s基础上,又翻了一倍达到64 GT/s,信号调制从NRZ改为PAM4,编码方式也从128b/130b变成1b/1b。
✦
PCIe 6.0时代即将到来,
你准备好了吗?
✦
PCI Express(PCIe)6.0技术即将推出,对于高性能计算、AI和存储SoC开发者来说,理解并考虑如何最好地应对即将面对的关键变化,以及由此带来的设计挑战变得至关重要。这些变化包括从非归零(NRZ)转换到脉冲幅度调制4(PAM-4)信号导致对噪声的敏感性增加,转向FLow控制器unIT(FLIT)导致控制器行为和性能的变化,PHY与控制器之间紧密集成的需求,以及针对互操作性和测试的规划。
开发者需要考虑的PCIe 6.0的三个主要变化如下:
● 数据速率从32GT/s翻倍至64GT/s
● 从NRZ编码转换到PAM-4编码,以及由此带来的纠错影响
● 从传输的可变大小TLP到固定大小FLIT
通道和PAM-4
图1(a)显示了使用NRZ信号的PCIe 5.0的眼图,包含两个电压电平和单眼。图(b)显示了使用PAM-4信号的PCIe 6.0的眼图,包含四个电压电平和三眼。图1中的两个信号具有相同的16GHz奈奎斯特频率和相同的单位间隔(UI)。这意味着他们基本上可以使用相同的PCIe 5.0通道,而不会让频率相关损耗变得更糟糕,如果使用64GT/s的NRZ信号,奈奎斯特频率为32GHz。这就是56G和112G以太网转换到PAM-4信号的原因,也是PCIe 6.0现在转换到PAM-4的原因,可以降低信号损耗。但是PAM-4的四个电压电平在一个UI中使用2bit编码,而NRZ是1bit编码,从而使数据速率提高了一倍。这听起来很棒,但是这里有一项重要的权衡因素。由于发射端(TX)的总体电压摆幅没有增加,因此PAM-4系统中每只眼的可用电压仅为NRZ的1/3。因此,信号在TX和接收端(RX)之间遇到的任何噪声都会对信号完整性造成更大的损害。
转变为PAM-4信号使得RX的工作更加困难,因为眼不仅在电压域要小得多(约 1/3),而且在时域也要小得多,而且这么多的转换必须嵌入同一个UI中。如图1 所示,这很明显。图1(b)底部的绿色箭头显示了NRZ眼的相对宽度,表明PAM-4 的眼宽度明显小于NRZ的眼宽度。因此,使用PAM-4时,时钟和数据恢复更加困难,需要更好的RX设计。PAM-4的大多数设计(包括即将推出的PCIe 6.0设计)将在RX中配置一个模数转换器(ADC),以更好地满足PAM-4的多电平信号需求以及对传统NRZ的支持。这意味着数字滤波是完全开放的,一个RX对另一个RX使用特定的数字信号处理(DSP)算法,再叠加针对不同通道的模拟和数字均衡的仔细平衡,将区分PHY性能。此外,更窄的PAM-4眼意味着PCIe 6.0上的TX抖动性能需要比PCIe 5.0上好2倍左右,开发者应该仔细考虑这些因素。
从NRZ信号转换为PAM-4信号还会显著影响封装和电路板设计,因为更改为四个电平信号会导致信噪比(SNR)立即退化9.6dB,因此正确管理噪声变得更加关键,即使奈奎斯特频率相同,封装和电路板设计中的串扰和回波损耗也比PCIe 5.0高。噪声敏感性增加意味着我们用于PCIe的1e-12误码率(BER)不可行,并且需要前向纠错 (FEC),因为PAM-4信令的BER将比1e-12高几个数量级,第一位误码率(FBER)的目标是1e-6。在其他标准(如以太网)中,使用强大的FEC来获得可接受的BER,但代价是带来100ns量级的大量额外延迟,这对PCIe来说是不可接受的。
由于FEC延迟和复杂性会随着需要纠正的符号数量的增加而增加,并且由于PCIe 6.0的延迟目标非常苛刻,因此使用了轻量级FEC,并与使用循环冗余码(CRC)检测错误的PCIe的重试能力相结合,以便数据包可以重新发送或重试。PCIe 6.0的轻量级FEC可以产生1e-6级的重试概率,并且与更强的CRC结合使用时,整个系统可以提供稳定、接近无误的性能,对往返时延的影响非常小(通常约为2纳秒)。这意味着开发者可以使用与PCIe 5.0基本相同的延迟预期进行设计,对于许多情况,例如大于128字节(32DW)的事务层数据包(TLP),相对于PCIe 5.0将获得显而易见的实际延迟改进。
FLIT
另一个影响是,一旦设备进入FLIT模式(例如,通过协商必须支持FLIT的PCIe 6.0链路进入),则无论链路质量有何变化,它都必须保持FLIT模式。因此,如果由于通道不稳定而需要降低链路速度,则新协商的较低数据速率将保持FLIT模式。这意味着在PCIe 6.0中,需要支持的所有可能的速度都有FLIT模式。
随着在PCIe 6.0中引入新的FLIT模式,TLP和数据层数据包(DLP)包头格式发生了变化,应用程序需要理解并正确处理这些变化。例如,对于PCIe 6.0,FLIT包含自己的CRC,因此数据链路层数据包(DLLP)和TLP不再需要像在PCIe 5.0和前几代中那样的单独CRC字节。此外,由于FLIT的大小固定,因此无需使用前几代(非FLIT模式)中的PHY层成帧令牌。与PCIe 5.0相比,这提高了带宽效率。
新的低功耗状态
用于FLIT模式的L0p
这种新的低功耗模式是对称的,这意味着TX和RX一起缩放,并且支持FLIT模式的重定时器也支持这种模式。在处于L0p期间空闲通道的PHY功耗预计与关闭通道时的功耗相近。
在64GT/s下保持性能
图2显示了各种RTT的PCIe 4.0、5.0和6.0数据速率所需的标签数量,以保持256B 有效负载和32B最小读请求大小的最大吞吐量。如图2所示,PCIe 5.0的768个标签限制远远不足以支持大多数PCIe 6.0系统的性能。这应该在作为系统片上(SoC)设计的一部分的PCIe 6.0控制器的配置过程中进行仿真和验证,以确保能够实现预期的性能。
要考虑的第二个因素是如何确保应用能够有效地利用PCIe 6.0的大量可用带宽。通常,应用程序通过带有3个独立接口的控制器连接到PCIe:分别用于已发布、未发布和已完成事务。对于64GT/s PCIe 6.0,各种情况的分析表明,使用单个接口将导致链路利用率或带宽效率(实现的带宽相对于理论带宽)的显著损失。对于较小的数据路径宽度和较小的负载大小,此问题最为严重。
如图3所示,对于传统的单应用接口和双应用接口(用于已发布事务),PCIe 6.0 在各种数据路径宽度和有效负载大小下的传输链路利用率。在1024b数据路径的32字节有效负载的情况下,使用单个已发布接口而不是两个接口导致链路利用率下降54%。这意味着在这种情况下,使用带有单个应用接口的控制器将获得相当于PCIe 5.0的性能。
PHY和控制器集成
在PCIe 6.0中,仍然需要权衡数据路径位宽和PIPE接口处时序能够收敛的频率。对于要求最大的PCIe 6.0带宽和16通道配置的应用,只有两个可行的选择。为了使时序能够收敛在1GHz,需要使用64b PIPE,这又需要1024b PCIe 6.0控制器架(16 通道x64b=1024b)。这是PCIe 6.0的一个新特性,因为前代PCIe没有1024位架构可用。
测试和调试注意事项
对于实际硅片中的调试和质量监测,能够监测硅片中的FBER对于一个系统的实际链路质量也非常有益。可以与内置scope功能结合使用,通常合并入PCIe 6.0 PHYIP,以获得对TX和RX之间更详细的理解。
像PCIe 6.0这样的新规范需要进行更鲁棒的系统测试,针对调试、错误注入和统计监测功能提供内置控制器支持非常重要。这有助于不确定是否能够正确地开发固件和软件,以预测可能遇到的任何潜在的实际系统问题。
总结
下附:去年6月PCI-SIG® Educational Webinar资料《PCIe® 6.0 Specification: The Interconnect for I/O Needs of the Future》,供大家按需参考。
来源:新思科技 企业存储技术
声明:
投稿/招聘/推广/宣传 请加微信:15989459034