全文概览
本文档由Asteria Labs提交给CXL联盟,旨在强调预启动过程对CXL Type 3设备的重要性,并提出了一套全面的标准和流程以满足数据中心服务器的启动需求。
文中首先概述了数据中心服务器启动所必需的功能,包括基于标准的初始化与配置、设备及连接内存的RAS测试、启用端到端安全以及配置 fleet management 能力。接着详细阐述了CXL Type 3设备需遵循的具体要求及其带来的好处,例如确保操作的一致性、降低开发时间和成本、以及通过提高平台可靠性来节约TCO。文档进一步分解了数据中心服务器启动所需的各种组件和步骤,从操作系统到硬件组件(如CXL内存控制器和硬件组件),以及各种标准和协议(如SMBIOS、ACPI、PCIe等)的应用。特别强调了CXL规范对于设备初始化的重要作用,包括设置性能特征、进行通信和管理、以及执行内存的JEDEC标准初始化等。此外,还提到了安全方面的考虑,比如使用CXL 2.0的IDE特性来保护数据的安全传输和存储。最后,文档突出了支持DTMF协议的fleet management功能,以及如何通过标准化的初始化和配置流程实现系统固件、硬件和软件间的无缝集成。
总体而言,本文档为CXL Type 3设备的预启动过程提供了一个详细的蓝图,旨在增强系统的可靠性和安全性,同时降低总体拥有成本。
数据中心服务器启动要求
图片介绍了数据中心服务器启动的基本要求,尤其是针对CXL Type-3设备的合规性。其要求包括基于标准的初始化与配置、RAS测试、端到端安全,以及集群管理能力。通过这些要求,能够确保本地与CXL内存的一致性操作,降低开发成本,并通过高可靠性节省总体拥有成本(TCO)。
右侧图示 CXL 内存控制器的初始化结构:
- CXL 根复合体通过 HDM 解码器连接。
- CXL 内存控制器包括以下模块:
- MMCFG、MMIO
- DVSEC、CDAT
- 邮箱和 HDM 解码器
- 内存设备连接到 CXL 内存控制器。
CXL 内存控制器初始化:
- 使用 PCIe 标准定义的设备映射机制:
- 使用 CXL 标准机制设置功能、地址和容量:
- 编程 HDM 解码器、DVSEC 和 CDAT
- 设置邮箱和 CXL CCI 接口以进行管理
按照 JEDEC 标准进行内存初始化:
如何理解 ZQ、Vref 等校准过程?
在内存初始化过程中,校准是一个关键步骤,它的目的是确保内存设备能够在其物理接口上以高精度和高可靠性进行读写操作。以下是校准中提到的关键要素 ZQ 和 Vref 的详细介绍:
1. ZQ 校准:
- ZQ 校准的定义:
ZQ 校准是一种动态调整内存总线驱动和终端电阻值的过程。这里的 "ZQ" 是指内存模块上的一个专用电阻(通常为 240 欧姆),用于参考外部电阻值。ZQ 校准主要用于动态随机存取存储器(DRAM)如 DDR3、DDR4 和 DDR5 的初始化或运行过程中。
- 目的:
- 确保内存总线上的信号完整性。
- 动态调整驱动器强度(Driver Strength)和终端电阻(ODT:On-Die Termination)。
- 补偿因温度变化或老化导致的信号失真问题。
- 工作原理:
内存控制器通过测量 ZQ 电阻上的电压和电流,计算驱动器和终端电阻的校准值。这些校准值用于优化内存信号的电气特性,从而确保内存运行的稳定性和可靠性。
- ZQ 校准的过程:
- 在内存初始化时(上电阶段)执行完整的 ZQ 校准。
- 在正常运行时,定期执行短时间的校准(Partial ZQ Calibration),以适应环境变化。
2. Vref 校准:
- Vref 的定义:
Vref 指的是内存数据传输过程中使用的参考电压。它是一种信号基准电压,用于判定内存总线上的信号是“高”(逻辑1)还是“低”(逻辑0)。
- 目的:
- 确保内存数据传输的信号可靠性。
- 减少因电压波动或噪声造成的误判。
- 工作原理:
Vref 校准是通过内存控制器调整内存数据总线的参考电压,确保数据总线上的电压摆幅在正确的逻辑范围内。例如:
- 若信号电压超过参考电压(Vref),判定为逻辑1。
- 若信号电压低于参考电压(Vref),判定为逻辑0。
- 校准的重要性:
- 现代 DRAM,如 DDR4 和 DDR5,支持更高的工作频率,导致信号波形更易受到噪声和电压偏移的影响。通过精确的 Vref 校准,可以大大提升数据的传输准确性。
校准的总体意义:
- 保障信号完整性: 通过动态调整驱动器强度、电阻和参考电压,确保信号不会受到干扰而失真。
- 提升数据可靠性: 确保在高频率下传输的数据不会因噪声或延迟而出错。
- 延长设备寿命: 减少内存芯片和控制器的电气应力,提升硬件的长期稳定性。
ZQ 校准和Vref 校准是内存初始化和运行中不可或缺的环节,通过调整内存的电气特性,解决了高速数据传输中的信号完整性和噪声干扰问题。它们不仅在初始化时起到关键作用,还在设备运行过程中持续动态优化,以适应环境和硬件状态的变化。这些校准机制确保了内存设备能够稳定、高效地运行,为现代高性能计算提供了可靠的基础。
CXL 设备初始化过程信息
CXL 一致性设备属性表(CDAT)通信
- 功能:
- 系统固件在启动期间通过 CDAT 发现设备的性能特性。
- 描述连接的 CXL 内存控制器的内存和性能特性。
- 这些信息用于构建 SRAT(系统资源分配表)和 HMAT(内存访问拓扑表)的 ACPI 表。
- 结构内容:
- 内存大小 内存设备的总容量。
- 交错方案 描述内存的交错模式(Interleaving Scheme),优化内存访问效率。
- 性能特性读/写延迟(Read/Write Latency):描述数据访问的响应时间。
带宽(Bandwidth):表示内存数据传输的速度。
流程描述(图示):
- 平台上电(Platform Power-Up):
- CXL 设备枚举(CXL Device Enumeration):
- 系统固件枚举连接的 CXL 设备,以识别其能力和特性。
- CXL DOE 邮箱(Mailbox)通信:
- 使用 DOE(Device Object Exchange)协议,通过 CXL 邮箱通信接口获取设备信息。
- CDAT(一致性设备属性表):
- 通过 CDAT 提供设备的详细性能和拓扑信息,包括内存大小、交错配置及性能参数。
- 平台固件处理:
系统固件使用从 CDAT 获取的数据构建 SRAT 和 HMAT 表。
- SRAT(系统资源分配表)描述内存设备与 CPU 的物理拓扑关系,用于优化内存访问
- HMAT(内存访问拓扑表)提供有关内存性能的详细信息,例如延迟和带宽,用于进一步优化系统性能。
初始化期间,CXL 通过 CDAT 提供详细的拓扑和性能信息,系统固件利用这些数据构建 ACPI 表(SRAT 和 HMAT),以优化系统资源分配和内存性能。通过描述内存大小、交错配置和性能特性(读写延迟、带宽),该流程提升了平台的内存管理效率,并确保了与 CPU 的一致性和兼容性。这种机制对高性能计算平台尤为关键,有助于最大化内存和处理器的协同性能。
可靠性 初始化与测试
RAS 初始化和测试是确保系统可靠性的重要环节,主要目标是通过固件、操作系统和硬件间的协作来识别并修复潜在错误。基于 PCIe 和 JEDEC 标准的测试涵盖信号、链路和内存等关键方面。同时,通过 CXL 邮箱实现带内和带外的事件通知与日志记录,便于固件、操作系统和管理控制器的无缝协作。这一机制大大提升了系统的稳定性、可管理性和可靠性,为高性能计算提供了保障。
1. 配置带内(In-band)和带外(Out-of-band)RAS通信
- 初始化 CXL 邮箱,用于通知和管理:
- 带内通信通过操作系统或固件进行通信。
- 带外通信通过 BMC(基础管理控制器)进行独立的硬件管理。
2. 基于 PCIe 和 JEDEC 标准的预启动 RAS 测试
- 信道裕度(Lane Marging)测试信号传输的误差裕度。
- 链路稳定性测试包括眼图分析(Eye Diagram)、FOM(Figure of Merit)指标评估、链路均衡(Link EQ)。
- 内存测试与修复通过 MBIST(内建自测)、SDDC(单设备数据校正)、数据清洗(Scrub)、PPR(永久页重映射)等方法验证内存的完整性和修复能力。
- 错误注入测试例如数据污染(Data Poison)或病毒注入,检测系统的错误检测与响应能力。
- 系统固件事件通知系统固件作为优先级(FW-first),及时捕获并通知事件。
3. 启用 OS/虚拟机监控程序(Hypervisor)通信
- 错误处理操作系统负责后续错误的响应与记录。
- 事件通知通过 CXL 邮箱将事件通知转发至操作系统(OS-first)。
- 日志记录全面记录事件和通信日志,便于追踪和分析。
CXL 安全机制
CXL 安全功能启用机制通过端到端的平台保护,覆盖传输中、使用中和静态数据的各个生命周期。其核心技术包括信任根、安全启动、内存加密等,确保系统在硬件级别和数据处理级别的完整性与安全性。这些功能使得 CXL 成为现代数据中心和高性能计算环境中至关重要的安全组件。
1. 平台初始化中的安全保护
- 在平台初始化期间启用安全功能,目的是保护以下三类数据:
- 传输中的数据(Data-In-Transit):
在设备间传输的数据信息,确保数据在通信链路上的保密性与完整性。
- 使用中的数据(Data-In-Use):
在处理器和内存等设备中运行的活跃数据,防止未经授权的访问或篡改。
- 静态数据(Data-At-Rest)
存储在设备中的数据,防止数据泄露或被窃取。
2. CXL 内存控制器的安全特性
CXL 内存控制器内置多项关键安全功能,包括:
- 信任根(Root of Trust):
- 作为平台安全的基础,提供设备级别的身份验证,确保系统的可信启动。
- 安全启动(Secure Boot):
- 在系统启动过程中进行固件完整性验证,防止恶意代码被加载。
- IDE(Integrity and Data Encryption,完整性与数据加密):
- 提供数据传输的完整性验证和加密功能,防止数据在传输过程中被篡改或窃取。
- 内存加密(Memory Encryption):
- 对内存中的数据进行实时加密,保护存储在内存中的敏感数据不被泄露。
- 组件测量与认证(Component Measurement and Authentication,CMA):
- 测量和认证平台硬件与软件的完整性,确保平台运行的是可信代码与组件。
集群管理设置通过采用 DMTF 定义的标准协议(如 MCTP、PLDM、SPDM),结合 RAS API 框架,为平台管理提供强大的通信和管理能力。OpenBMC 模块化的架构支持各种协议和功能扩展,底层接口包括 SMBUS、I3C、PCIe 等,满足不同设备和平台的通信需求。这一架构大幅提升了设备管理的效率、安全性和可扩展性。
Astera Labs 的 Leo CXL 智能内存控制器通过标准化的初始化、强大的 RAS 功能、灵活的集群管理和全面的安全特性,提供了现代数据中心和高性能计算所需的关键支持。其基于 CXL 和行业标准的设计,确保了兼容性和性能,尤其是在高可靠性和数据保护需求下表现突出。通过 COSMOS 工具和先进的硬件设计,该解决方案显著简化了部署和管理工作,为平台提供了更高的灵活性和安全性。
Note
作为新的IO组件,CXL 设备融入数据中心服务器过程注定是长周期的实践-反馈-总结过程,本文详述了从固件驱动和初始化角度,CXL设备的控制器需要考虑标准化过程、RAS、集群管理和安全等多个维度的设计,值得CXL设备主控厂商参考。