0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >技术信息 > PCIe延迟及其重定时器优化的简短入门

PCIe延迟及其重定时器优化的简短入门

来源: edn
2022-07-26
类别:技术信息
eye 54
文章创建人 拍明芯城

原标题:PCIe延迟及其重定时器优化的简短入门

  PCIe 是对延迟最敏感的串行通信形式之一,因为其基于地址的语义意味着处理器线程经常等待事务的结果。PCIe 4.0,尤其是 PCI 5.0 的出现,推动了在许多长距离 PCIe 应用中使用重定时器的需求。

  本文探讨了 PCIe 在六个不同层的一般延迟环境,并讨论了如何优化每一层的想法,包括使用重定时器。

  按层添加延迟

  应用程序延迟来自许多不同的来源。下图描述了六个不同的层、每层添加的典型延迟、每层中延迟的来源以及可用于最小化每层经历的延迟的方法。延迟应该从表格的顶部到底部进行优化。

  


  图 1延迟影响六个不同层的 PCIe 应用程序性能。来源:看豆

  在表格的顶部,有机会节省毫秒到秒。在表格的中间,可以节省微秒到毫秒。在表的底部,可以节省几十纳秒。也就是说,延迟的每一个元素都会影响整个系统的性能,因此应该在可行和经济的每个级别上采取改进的机会。

  重试和恢复延迟

  在数据链路层发现了许多系统改进的重要机会。这是因为重传“重试”机制可以相对频繁地触发,即使在正常操作中也是如此。对于 16 通道 x 32 Gbps/通道链路 (PCIe 5.0) 上的 1E-12 的误码率 (BER),大约每两秒就会发生一次重传。

  根据PCI-SIG 实施指南第 3.6.2.1 节,重传流量被视为第 5 优先级。每当发生这种情况时,都会遇到严重的延迟问题。此延迟源还会降低系统的延迟一致性,并可能导致应用程序的性能出现停顿或卡顿。

  当链路训练和状态状态机 (LTSSM) 由于信号完整性差而被迫进入恢复状态时,可能会受到更严重的延迟影响,可能是在诸如高温或工作温度变化之类的拐角条件下。恢复状态机的操作可能需要数百毫秒或更长时间才能找到发送均衡器的新设置。在最坏的情况下,PCIe 链接可能会被迫以较低的速度运行,如果眼图不够张开,可能是由于工作温度过高或不断变化,可能会从 32 GT/s 降档到 16 GT/s。

  使用重定时器来改善 BER

  通过避免重试和恢复事件来减少延迟的一种方法是在高 BER 路径(通常是系统中最长的路径)中使用重定时器设备。重定时器改善了路径中下一个接收器看到的眼图高度 (EH) 和眼图宽度 (EW)。重定时器恢复信号的干净数字副本,生成干净的发送时钟,并发送数据的缓冲副本。

  


  图2重定时器在许多情况下都改善了 EH 和 EW。来源:看豆

  重定时器通过改善所有抖动源来改善 EW。这包括通常由符号间干扰 (ISI) 引起的数据相关抖动 (DDJ)、通常由热噪声和时钟抖动引起的随机抖动 (RJ) 以及通常由串扰引起的有界未校正抖动 (BUJ)。重定时器“重置”所有这些抖动源。

  PCIe 时钟模式

  在讨论重定时器延迟之前要介绍的一个重要主题:三种 PCIe 时钟模式。它们是具有独立扩频 (SRIS) 的独立参考时钟、没有扩频时钟 (SRNS) 的独立参考时钟和通用时钟。重定时器必须生成一个新的传输时钟,因此这些模式之间的选择会对增加的延迟产生很大的影响。下图说明了顶部的公共时钟模式和底部的 SRIS 模式。

  


  图3上图为普通时钟模式,下图为 SRIS 模式。来源:看豆

  PCIe 时钟模式和重定时器

  在重定时器应用中,最好使用通用时钟模式。在这种模式下,CPU、重定时器和端点都共享相同的参考时钟。这三个点的时钟具有相同的百万分之几 (PPM) 偏移,并且具有相同的扩频曲线。重定时器弹性缓冲区可以设置得更小。

  SRIS 和 SRNS 时钟模式可与重定时器一起使用。也就是说,在这些模式下,CPU 和重定时器在一个时钟域中,而端点在另一个时钟域中。然后重定时器负责为来自端点的入口流量考虑这种时钟差异。它通过了解数据包边界并调整数据包之间的间隙来做到这一点。

  重定时器必须考虑 +/- 300 PPM 的时钟速率偏移加上 -5000 PPM 的 SRIS 模式下的扩频时钟差异。必须配置重定时器弹性缓冲区以解决此差异。对于较大的数据包大小,延迟增加会更高。一个机会是,如果 CPU 支持它,即使有不同的时钟,它的入口也可以设置为公共时钟模式,因为重定时器已经完成了 SRIS 或 SRNS 模式所需的缓冲。

  通道间偏斜匹配

  如果系统在其预算中没有考虑到由重定时器引起的额外通道间偏移,重定时器必须增加额外的延迟来重置该偏移。PCIe 规范将 Tx 偏移限制为 1.5 ns,将 Rx 偏移限制为 5 ns。

  重定时器架构

  弹性缓冲区形成重定时器内的中央集成存储。它允许设备重新创建传输时钟,同时不会丢失用户的数据包信息。下图显示了典型 PCIe 重定时器的架构。

  


  图4典型的 PCIe 重定时器架构包括一个弹性缓冲区作为中央集成存储。来源:看豆

  弹性缓冲区是重定时器的延迟可以累加的地方,并且在 SRIS 时钟模式中发现的完全不同的时钟必须在两者之间进行调整。这也是有时必须清理车道到车道偏差的地方。

  PCIe 重定时器延迟规范

  PCIe 规范为重定时器添加的延迟设置了限制。在非 SRIS 时钟模式下,数据速率从 5GT/s 到 32 GT/s 的限制为 64 ns,而 2.5 GT/s 的限制为 128 ns。在 SRIS 模式下,限制还取决于最大数据包大小,规范中提供了一个大的限制表。先进的重定时器架构允许系统在所有情况下都满足这些规范,并在某些情况下显着超越它们。

  绕过缓冲区使用

  如果满足所有四个条件,则可以使用小型、低延迟的弹性缓冲区,通常称为旁路缓冲区。该旁路缓冲器的延迟时间约为 10 ns,并且通常实现为较大弹性缓冲器的范围受限区域。

  这四个条件是:

  系统以通用时钟模式运行。请注意,仍然可以在通用时钟模式下使用扩频时钟。

  重定时器无需重置通道间偏移,因为系统设计人员已仔细布置 PCB 以支持通道间偏移的端到端预算,包括重定时器引入的偏移。

  重定时器 LTSSM 仍然能够响应 TS1/TS2 命令;例如,替代协议或供应商定义的命令。

  速率适配被禁用。

  下图说明了运行中的旁路缓冲器。

  


  图 5如果满足某些条件,则可以使用低延迟旁路缓冲区。来源:看豆

  重定时器在延迟优化中的作用

  应用程序延迟应该从顶层到底层进行优化,每个元素都对性能很重要。对于需要超低延迟的工作负载,应在可行时考虑使用 CXL 等替代协议。

  改善延迟和提高延迟一致性的一个好地方是向具有最差 BER 的最长链路添加重定时器。重定时器可以改善 EH 和 EW。信号完整性裕度应在工作角落进行验证,尤其是高温和不断变化的温度。重定时器的使用可以通过使系统远离重试事件来改善延迟,这可能是高速率的例行程序。使用重定时器还可以帮助避免代价高昂的恢复事件。

  通过使用公共时钟模式,可以在延迟优化的旁路缓冲模式中使用重定时器,在系统级别考虑通道到通道的偏移,保持 TS1/TS2 通信,并禁用速率自适应。

  编者按:本文基于 Kandou 的 Jay Li 在 2022 PCI-SIG 发展大会上的演讲。

  Jay Li是看豆的产品营销总监。

  Brian Holden负责 Kandou 的标准战略。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯