础滨驱动的设计应用
草榴社区 战略营销经理 Scott Durrant 和高级产物营销经理 Gary Ruggles
IDC 预测,未来五年,“全球数据圈”(Global Datasphere,每年通过网络创建、传输和存储的数据量)将增加 3 倍以上,达到 175 兆字节(图 1)。促成这一结果的大部分因素是物联网 (IoT)、视频应用(包括视频流、社交媒体、在线游戏、增强和虚拟现实应用)以及视频会议统一通信、短信/聊天和在线语音通信。
图 1:创建、传输和存储的网络数据量大幅增加
所有这些数据增长都促使在云和高性能计算 (HPC) 系统中需要更强的计算能力来处理数据。为了在端点提供最佳体验,系统需要更快的接口将数据从 A 点移动到 B 点,需要一套高效、高性能存储基础架构来存储和检索数据,并且需要人工智能 (AI) 和图形加速器从所有这些数据中提取含义。高性能 IP 可以加快能够解决这些挑战的芯片设计速度。
每个 HPC 和云应用各有不同的延迟灵敏度要求,但导致其发生延迟的三大原因则是相同的。
延迟的第一个主要原因是网络本身,包括在两点之间移动数据所需的时间。网络延迟受数据移动距离的影响。例如,如果所有其他条件相同,在临近的两座建筑物之间移动数据就会比跨越大洲移动数据快得多。
网络延迟也受到跳数或数据需要遍历的网络设备数(通常与迁移距离直接相关)的影响。更小化网络距离和跳数有助于减轻网络延迟。为此,云、电信和托管服务提供商最近建立合作,将在网络边缘运用云计算的优势,以便更加接近用户和最终用户设备。
这有助于将延迟降至更低,并融合数据和服务以更接近使用点,从而获得响应更迅速的体验。可在视频流、增强和虚拟现实以及在线游戏等应用中提供更流畅、更逼真的体验。(有关此主题的案例研究,请参阅 AI 如何在边缘计算中推动实现 5G 和 IoT。)
此外,将云计算移动到更靠近边缘的位置,可缩短控制系统应用的响应时间。例如,在汽车应用中,一辆每小时行驶 60 英里的汽车在 100 毫秒内可行驶将近 9 英尺,而这只是一眨眼的功夫。在汽车和云之间往返的数据如果发生任何延迟,都可能危及生命。提供近乎瞬时的响应时间使控制系统具有更高的精度,从而提高了安全性。
延迟的第二原因是数据的存储和检索,包括媒体的访问时间。一直以来,磁性硬盘驱动器 (HDD) 是主要的长期数据存储介质。HDD 的访问时间以毫秒计算。但是,随着固态硬盘 (SSD) 和持久内存的增多,媒体访问时间以几百纳秒为单位进行测量,从而将响应速度提高 10,000 倍(图 2)。
图 2:当应用从 HDD 移动到持久内存时,系统的存储延迟就会改善 10,000 倍
存储器访问时间的巨大改进使得网络性能成为存储区域网络延迟的限制因素。将存储器移动到更接近 CPU 的位置会有帮助,如使用持久内存和创新协议(如远程直接内存访问 (RDMA))等架构来帮助加速存储事务。
存储领域的另一种新兴技术是计算存储。计算存储将计算功能与存储系统相结合,从应用服务器卸载计算或计算周期。计算存储允许在存储器内进行处理,从而减少存储网络上的网络流量,并在某些应用中提供更快的响应。
最后,智能网络接口卡 (NIC) 获得采用,以减轻在数据跨存储网络传输时应用处理器承受的负载。通过分流应用处理器中的数据传输协议、安全协议和网络管理任务,智能 NIC 可改善联网应用的整体系统性能。
第叁个延迟原因是数据处理所需的实际计算时间。计算周期和计算模块间的数据移动(在内存和计算设备之间)全都会影响数据处理时间。要解决处理延迟问题,设计人员需要解决可用带宽量和数据传输协议的速度问题。
图 3 显示了两个芯片的示例:提供应用计算处理的云服务器片上系统 (SoC) 和图形加速器芯片。图形加速器采用 HBM 内存,云服务器芯片采用传统 DDR 内存。通过利用这两个装置之间的缓存一致性接口,可以将内存汇集到我们所谓的“融合内存池”中,并且这些设备可以共享内存空间,而实际上并不需要在进程或域之间复制数据。这种类型的连接受益于高性能接口 IP,如 PCI Express 5.0、Computer Express Link (CXL) 和加速器的缓存一致性互连 (CCIX)。
图 3:缓存一致性接口减轻了计算延迟
虽然云环境以降低延迟为目标从而快速处理复杂工作负载,但每个协议都另有其独有的特性和功能,进而最适合其目标应用的需求。以往,服务器依赖 CPU 和存储器计算资源,而如今具有 AI 加速器的大型超大规模数据中心不再对此依赖。具有一定内存、AI 加速、GPU 和联网能力的云服务器可能需要两个 CPU 和四台存储设备,或者一台存储设备和两个 CPU 来处理特定工作负载。每一种此类场景都对灵活性和可扩展性提出了不同的服务器配置要求,同时还会继续着重达成低延迟的目标。现在,让我们来详细了解低延迟和缓存一致性协议密集涉及的领域,以帮助设计人员更加轻松地选择最能满足其独特设计需求的技术。
市场尚在准备采用 PCIe 6.0(预计将于 2021 年推出),但是从 16 GT/s PCIe 4.0 转向以 32 GT/s 运行的 PCIe 5.0 的速度正在迅速加快。我们对当前 草榴社区 DesignWare? IP 用户进行的快速调查表明,许多设计的 HPC 应用已经采用 32 GT/s PCIe 5.0 接口。然而,由于使用 AI 加速器后需要更高效的内存性能,将缓存一致性与高带宽相结合已成为一项关键需求。CXL 和 CCIX 协议减少了从内存到处理器和加速器来回复制数据的工作量,显著减轻了延迟,从而满足了这一需求。
为了充分优化系统,选择合适的接口成为在带宽、延迟、内存访问、拓扑和实现之间达成必要权衡的关键。
PCIe 是针对主机和设备之间的芯片间的事实标准。可以通过一个四通道 (x4) 链路在一个 PCIe 根端口(或根复合体)和一个 PCIe 端点之间完成简化的 PCIe 实现。典型的芯片间 PCIe 实现是可扩展且有分层的,其中配备嵌入式交换机或交换机芯片,支持一个根端口与多个端点连接。这种实现常见于笔记本电脑甚至服务器中,它支持与各种端点的连接,如以太网卡、显示驱动程序、磁盘驱动器和其他存储设备。然而,这种实现方式在带有孤立内存池的大型系统中遇到了局限,这些内存池需要运行异构计算,而系统中的处理器和加速器却要在同一个 64 位地址空间内共享相同的数据和内存空间。换言之,与一些较新的协议(如 CXL 和 CCIX)相比,PCIe 中缺乏缓存一致性机制会导致内存性能低下,延迟低于可接受水平。
可以利用 PCIe 和所谓的专用链路结合使用,使数据中心的服务器能够进行多处理或一个处理器与多个加速器之间的芯片间通信。如果一个芯片间链路的两端属于同一供应商,就可以使用专用 PCIe 链路,因为可以选择使用典型 PCIe 数据流的某些部分,帮助在 PCIe 协议之外执行芯片间的信息路由。利用供应商定义的消息,使 PCIe 标头和灵活的新数据包重载,可以将供应商定义的信息传到芯片链中的目标芯片。虽然这不是典型的实现方式,但许多 草榴社区 用户都在采用。
CCIX 在宣布上市之初,提供 20 GT/s 和 25 GT/s 两种数据速率,当时高于 16 GT/s 的 PCIe 4.0,而且这种协议增加了保持一致性的功能。如今,CCIX v1.1 可提供高达 32GT/s 的数据速率,支持缓存一致性,从而使多个芯片能够通过虚拟内存空间共享内存。大型内存池采用在同一个系统中相连接的各种组件进行构建,从而不需要在处理器和加速器之间传输大量数据。CCIX 支持异构计算,能够支持网状架构,让众多 CPU 或加速器相互连接并连贯一致地共享数据。
虽然 CCIX 实现与 PCIe 非常相似,但它实现的是两个虚拟通道 (VC):分别用于一致性和非一致性流量,导致 PCI Express 序列延迟稍高,对 HPC 应用可能没有吸引力。由于 CCIX 是对称协议,CCIX 实现中的每个设备都执行相同的操作,并利用本地代理 (Home Agent) 管理缓存。由于其中固有的对称性,任何设备发生一致性问题都可能损害整个系统,而不仅仅是 SoC。
CXL 是实现主机到设备异构计算的理想选择,预期所有四家 CPU 提供商(Intel、IBM、Arm 和 AMD)均会提供支持。与 CCIX 不同,CXL 是一种不对称协议,主机可全权控制内存一致性和内存访问。其优势在于 CXL 设备的实现变得更简单,不需要家乡代理,这意味着设备处理内存时发生的任何错误都不会引发系统故障。
CXL 在整个 PCIe 物理层上运行,目前 PCIe 5.0 协议的运行速率为 32 GT/s。它使用灵活的处理器端口,可自动协商高带宽 CXL 链路,例如 x16 链路,可无缝插入 PCIe 或 CXL 卡。CXL 将 IO (.io)、缓存 (.cache) 和内存 (.mem) 协议合并为同一种协议,可实现高带宽且连接延迟极低,使处理器和加速器能够利用融合的内存空间。融合式内存空间支持连贯一致地共享不同内存,如用于加速器的 HBM 和用于处理器的 DDR。所需的 CXL.io 协议实际上是一条 PCIe 链路,用于发现、寄存器访问、链路配置、链路形成等,而 .cache 和 .mem 协议用于低延迟一致性数据交换,必须实现其中一种协议或两者同时实现,才能形成完整的 CXL 链路。
CXL 通过实现最新 PIPE 规格的 SerDes 架构,将 PCS 层及其相关延迟从 PHY 内部彻底转移到控制器,并允许 CXL.cache 和 CXL.mem 流量在堆栈早期就从 CXL.io 流量中拆分出来,从而提供比 PCIe 和 CCIX 低得多的延迟。这一优势与 CXL 堆栈的固有低延迟相结合,使 CXL 的延迟低于 PCIe 或 CCIX。
可以组合这三种 CXL 协议,创建三种不同的设备类型。由于 CXL.io 方案是强制要求实现的协议,因此适用于所有设备类型。
CXL 1 型和 2 型设备的用例是利用加速器、图形和计算存储的应用。3 型设备的用例是需要存储类内存(永久内存)和 DDR 的应用,这些应用可能适用于 CXL。将 DDR 控制器更换为 CXL 链路是业界正在探索的新用例,这种用例运用 CXL 的一致性内存访问功能,而不是追加 DDR 内存,从而降低 SoC 和主板设计的复杂程度。CXL 的另一个新兴应用是使用 CXS 接口替代单独的 CXL.cache 和 CXL.mem 协议。这种方法可以启用 CCIX over CXL 等功能,从而可能支持使用 CCIX 协议的网状网络架构和对称操作,但要通过低延迟的 CXL 链路实现。这种采用 CXS 接口的 CCIX over CXL 方法可在使用 CCIX 的多个 SoC 之间建立链路,同时还能受益于 CXL 提供的极低延迟。
PCIe 接口是针对各种应用(包括 HPC)的外部连接的事实标准。该生态系统已开发并采用了新的替代协议,例如 CCIX 和 CXL,它们在利用 PCIe 物理层的同时,还增加了缓存一致性和低延迟等其他附加优势。设计人员若要选择合适的协议,必须进行多次权衡,以最好地满足其目标应用的需求。表 1 总结了每种协议的独有特征。
表 1:PCIe、CXL 和 CCIX 最适合 HPC 设计的独有特征
虽然这三种协议的最大带宽相同,CXL 通过实现 SerDes 架构和从头开始的 CXL 设计,实现 40 纳秒以下的最优往返延迟。CCIX 是支持网状架构的对称协议,可为多个加速器增加连接。PCIe 通常通过直接内存访问 (DMA) 机制传输大量数据,而 CXL 使用专用 CXL.mem 协议实现短数据交换和极低延迟。CCIX 与 PCIe 非常相似,通过两个通道使用专用内存机制——通过 VC1 的一致性通道和通过 VC0 的非一致性通道。
生态系统成功采用 PCIe 已经有很长一段时间,并且了解其复杂性和管理方式。CCIX 需要一个控制器来支持两个 VC,还需要在每个 CCIX SoC 中分别实现一个家乡代理,因而额外增加了复杂程度。然而,它提供了比 PCIe 稍低的延迟,并且支持缓存一致性。CXL 需要新的控制器、更多的接口和更多的引脚,额外增加了复杂程度。然而,除了提供缓存一致性之外,它还实现了比 PCIe 和 CCIX 更低的延迟。PCIe 经历五代发展,会在不久的将来推出 PCIe 6.0,已充分证明了其实力不凡,并且已经和第三方产物实现了互操作。最新接口 CXL 在业内获得迅速采用,产物预计将于 2021 年推出。Intel 已宣布在未来推出支持 CXL 的 Xeon 可扩展处理器。鉴于 CXL 具备更加高效的内存访问机制和低延迟,因而 CCIX 尽管是在 CXL 之前推出,但在业界获得采用的进展却相对缓慢。
虽然每个 HPC SoC 和云系统各有其不同的挑战和要求,但它们都面临计算延迟、存储延迟和网络延迟问题。了解现有的最新接口 IP 标准及其优势和权衡,可帮助设计人员既可以集成增强 SoC 和系统竞争力的特性,也可以将延迟降至更低。
草榴社区 经历五个代际的标准,坚持为数以千计的成功设计提供 PCIe IP 解决方案。例如,草榴社区 并业界与 Intel Future Xeon 可扩展处理器进行互操作的 DesignWare PCI Express 5.0 IP 解决方案。此外,草榴社区 与 Intel 合作开发 CXL,提供业界包含控制器和 32GT/s PHY 的 DesignWare CXL IP 解决方案。我们正在与其他 CPU 供应商合作,以支持使用 DesignWare CCIX 和 CXL IP 的新应用,从而优化云和 HPC 解决方案的延迟问题。
如需更多信息: