PCI Express ® 6.0 规范功能更新
PCI Express ® (PCIe ® ) 6.0 规范除了将原始带宽与 PCIe 5.0 规范相比增加一倍外,还包含许多功能增强。本篇博文介绍了影响软件和硬件的新功能。
保持向后兼容性仍然是 PCI-SIG ®的一大价值主张,从 20 世纪 90 年代初 PCI 首次发布至今,PCIe 技术一直保持着软件向后兼容性。在满足不断发展的行业需求的同时保持向后兼容性是一项挑战,而拥有区分“新”和“旧”实现的方法是关键。
推出 Flit 模式
在物理逻辑层 (PHY) 中,PCIe 6.0 规范引入了“Flit Mode”作为一种新的数据流模式。然而,Flit Mode 支持的概念超越了物理层,并且在 PCIe 6.0 规范中应用时,表示“这是新硬件”。这被用作对新硬件提出一致性要求的条件,同时允许现有实现保持合规性。对于硬件块,Flit Mode 支持不需要存在与功能相关联的链接。例如,根复合体集成端点 (RCiEP) 可以指示 Flit Mode 支持。对于与链接相关联的功能,并非所有新功能都要求链接实际在 Flit Mode 下运行,尽管有些确实如此。还需要注意的是,对于与链接相关联的功能,可以在任何速度下以 Flit Mode 操作链接。
支持 14 位标签
对于 RCiEP 和具有链接的设备,Flit 模式支持 14 位标签。标签越多,未发布的请求就越多,从而提高性能。具有深度交换拓扑和/或多个重定时器的系统尤其有望从 14b 标签中获得性能优势。与 PCIe 4.0 规范中引入的 10b 标签一样,系统软件需要启用 14b 标签。使用 Flit 模式,控制和优化 Max_Payload_Size (MPS) 的机制有所改进。这些改进不会影响向后兼容性,但系统软件需要进行更改才能利用它们。这包括无需静止即可更改 MPS 值的能力、对具有不同 MPS 设置的系统的支持,以及软件无需先静止流量即可修改 MPS 设置的能力。
设备就绪状态功能。
设备就绪状态 (DRS) 的硬件支持是新的必需功能,它不依赖于在 Flit 模式下运行的链路。基于计时器的机制用于确定设备或功能何时就绪,但其固有缺陷在于,在某些情况下,超时值比需要的要长,而在其他情况下,超时值可能不够长。有时,所需时间会根据不易预测的条件而变化,这可能会导致间歇性故障;例如,当设备由于某些内部条件而需要异常长时间进行初始化时,会导致系统使该设备超时。DRS 是几年前作为可选功能引入的,它提供了设备就绪的积极确认。借助系统固件/软件支持,DRS 使系统能够处理快速就绪的设备,而不会出现不必要的延迟,同时确保比以前版本的规范中固定时间限制允许的更慢的设备能够正常运行。
流量控制更新支持多个虚拟通道的实现
共享流量控制信用允许使用共享流量控制信用池实现多个虚拟通道 (VC),从而降低支持除所需 VC0 之外的其他 VC 的增量成本。所有发送器都必须支持共享流量控制的链路协议机制,并且每个接收器在协商链路时都会表明其实现选择。软件可以限制给定 VC 可以使用的共享接收缓冲百分比(默认值为 100% - 预计会出现超额认购,但此机制可用于有效“禁用”共享)。合并流量控制通过使用共享缓冲池进行内存写入和内存读取完成,可以进一步优化硬件。
在 TLP 报头中添加段号
事务层数据包 (TLP) 现在可以在 Flit 模式下明确指示段号。段号(又称层次结构 ID)标识唯一的配置地址 (BDF) 空间,自 PCIe 技术出现之前就已存在于系统级别。在 PCIe 6.0 规范之前,PCIe 层次结构域(层次结构中源自单个根端口的部分)的段号仅由根复合体 (RC) 和系统软件明确理解,而根端口下方的 PCIe 交换机或设备则无法理解。这需要跟踪通过 RC 跨段路由对等的非发布请求,这大大增加了 RC 的复杂性。在这种情况下,RC 必须“拥有”事务,替换请求的事务 ID 并在相关完成时将其恢复,因为这些事务会流经 RC。这会增加实施成本并降低对等流量的性能。对于 Flit-Mode TLP,可以在标头中明确指示段,这样 RC 就无需取得这些 TLP 的所有权。为了确保在具有非 Flit Mode 硬件的系统中正常运行,默认情况下需要根端口假定仍然需要取得对等事务的所有权。为了实现优化的对等性能,系统软件需要配置根端口以指示根端口下的所有链路都在 Flit Mode 下运行。
新的链接级别功能
一些新的功能元素应用于链路层,为未来的功能提供了空间并优化了链路效率。Flit 模式使用全新的 TLP 标头,克服了以前 TLP 标头的限制,例如 14 位标签和显式段号指示所需的空间不足。新的 Flit 模式 TLP 标头还旨在允许硬件实现比使用非 Flit 模式 TLP 标头更干净地解析它们。此外,对于 Flit 模式,所有 TLP 都使用完全解码的类型字段,该字段的所有值均在 PCIe 6.0 规范中明确定义或“预留”用于未来修订中的特定用途。这使硬件能够实现所有 Flit 模式 TLP 类型的正确帧和路由,即使那些尚未定义的类型也是如此。由于 TLP 标头格式发生变化,因此在通过路由元素在 Flit 模式和非 Flit 模式链路之间转发时会发生 TLP 转换。每个 TLP 的帧开销现在变为每个 Flit 的开销,从而提高了小型 TLP 的链路利用率。
L0p 介绍
引入了一种新的功率降低机制 L0p,以进一步优化链路功率。在 L0p 中,链路的某些通道处于休眠状态,而其他通道则继续处于活动状态。L0p 是动态协商的,无需链路经过恢复状态。在 L0 和 L0p 之间的转换期间,链路保持开启状态,从而可以积极使用 L0p。L0p 的控制是自动的。系统软件/固件配置退出延迟(空闲通道需要多长时间才能投入使用),同时考虑链路上的重定时器。硬件从那里开始。在需要时可以使用链路宽度覆盖。L0p 支持在 Flit 模式下是可选的,并且由于它使用了新机制,因此在非 Flit 模式下不受支持。重定时器支持 L0p - 所有链路段都透明地使用已删除的链路宽度。L0s 在 Flit 模式下不受支持,但对于在非 Flit 模式下运行的链路仍然是可选的(注意:L0s 与重定时器不兼容,因为随着链路速度的增加,重定时器在 PCIe 生态系统中更为重要)。
原文转自:https://pcisig.com/blog/pci-express%C2%AE-60-specification-functionality-updates-%E2%80%93-part-1