关键要点
- 内存成本对平台性能的影响很大,需要寻找解决方案。
- 内存中冷数据可以进行压缩,压缩后的冷数据只需要系统内存带宽的约1%,因此可以考虑将冷数据存储在更慢、更便宜的内存中。
- 新一代CXL设备可以通过支持多种内存类型和压缩技术来降低成本并提高可靠性。
- 压缩技术(专用计算实现)可以在不降低性能的情况下减少内存成本,并且对于大规模部署具有重要意义。
- 通过优化内存使用方式,可以进一步降低数据中心的碳足迹。
云服务商视角下的CXL内存-Fig-1
未来数据中心的存储分层(关注时延)
- • 直接与CPU(计算单元)互联:寄存器、缓存、主存;
- • 独立于CPU(PCIe通道):CXL扩展内存、NVM(非易失性内存,如SCM/Optane等)
- • 网络互联:解耦式内存(如 RDMA)
Note:鹏弟认为,基于CXL Switch互联的内存,应属于 Network Attached 范畴。前几天整理的CXL Switch 多级内存时延测试数据,解耦内存池访问时延在1μs以内,与图中时延在一个数量级,图示数据时延更高。
云服务商视角下的CXL内存-Fig-2
问题:
内存成本的“船锚”效应
- • 假设内存约占平台成本的一半
- • 内存容量随着 CPU 性能的提高而增加
- • 内存成本随着容量增加而增加
魔法般的 CPU(性能翻倍):2 倍性能 ÷ 1.5 倍成本 ⇒ 1.33 倍性能/成本比
结论:
内存成本显著减缓了平台“性能/成本比”的提升
注:现实中,CPU 的代际性能提升远远达不到 2 倍。在摩尔定律的尽头,这种提升需要“魔法”。
这张图表说明,尽管 CPU 性能可以通过技术进步提升,但由于内存成本随着容量增加而迅速上升,这对平台整体的性能/成本改进产生了显著拖累。这尤其在摩尔定律逐渐失效的时代显得尤为突出。
低成本提高内存容量是数据密集场景的关键。
云服务商视角下的CXL内存-Fig-3
DDR中存储了大量的冷数据!
- • 图表说明了不同应用/场景中内存使用的分布情况。包括:
- • 最近1分钟使用的内存(深蓝色)
- • 最近2分钟使用的内存(浅蓝色)
- • 最近5分钟使用的内存(灰色)
- • 总分配内存(最浅灰色)
- • 关键观察:一半的内存在过去的一分钟内没有被使用(内存中的数据需要更智能、有效的调度算法)。
这种内存利用率低下的问题说明,有必要优化内存分配策略,尤其是在数据中心和高效计算环境中
引用信息:
Johannes Weiner等人(2022年),在《第27届ACM体系结构支持编程语言与操作系统国际会议(ASPLOS '22)》中发表的论文:“TMO:数据中心的透明内存卸载”。
云服务商视角下的CXL内存-Fig-4
冷数据具有良好的可压缩性(尽可能压缩以节约内存空间)
- • 冷数据可以以3:1的比例压缩
- • 考虑到不可压缩的页面,实际压缩率更接近2:1
3:1 压缩比是如何得出的呢?
累积分布函数(CDF)显示了压缩比的分布,大多数数据的压缩比在3左右。
引用信息:
Andres Lagar-Cavilla等人(2019年)在《ASPLOS '19》发表的论文:“仓库规模计算中的软件定义远程内存”。
云服务商视角下的CXL内存-Fig-5
冷数据对带宽需求很低
图表说明:
- • 图中显示了二级访问比率的累积分布函数(CDF)和概率密度函数(PDF)。
- • 大多数冷数据的访问比率接近于0,这表明其对内存带宽的占用非常小。
冷数据的访问频率极低,因此对系统内存带宽的占用很小,仅约为1%。这意味着冷数据可以被存储在较低带宽的存储层中,而不影响整体系统性能。这种特性为优化存储系统中的资源分配提供了更多可能性。
引用信息:
Padmapriya Duraisamy等人(2023年),在《ASPLOS 2023》发表的论文:“面向仓库级内存分层的自适应系统架构”。
云服务商视角下的CXL内存-Fig-6
- • 大量冷内存可以被放置到一个更慢的内存层中。
- • 2:1压缩在各种工作负载下是现实可行的:
- • 减半了慢速内存层的介质成本。
- • 压缩对带宽有影响,但慢速内存层只需要约1%的系统平台带宽。
图展示了利用压缩技术优化内存分层的潜力。通过引入压缩DRAM,可以有效利用冷数据的低带宽需求,显著降低存储系统成本,同时保持可接受的性能。这为存储层次结构的设计提供了更具经济性和灵活性的方案。
压缩 DRAM 的概念
压缩 DRAM 是指通过数据压缩技术,将存储在 DRAM 中的数据压缩,从而在同样的物理存储容量下存储更多数据。这种方式能减少存储成本,同时利用 DRAM 的高带宽和低延迟特性,适合存储访问频率较低的“冷数据”。
压缩 DRAM 通常是作为一个更慢的内存层(相对于主存或缓存)存在,可以在 内存分层结构 中作为中间层,桥接高性能内存(如 HBM)和低成本存储(如 NAND 闪存)。
压缩 DRAM 的实现
实现 DRAM 数据压缩需要从硬件架构、数据访问模式和算法设计多方面综合考虑。以下是几个关键步骤和实现方式:
1. 数据压缩算法
DRAM 数据压缩需要选择高效的压缩算法,既能减少数据体积,又不会显著增加访问延迟。常见的压缩算法有:
- • 字典编码(Dictionary Encoding):用短码替代重复出现的模式或数据。
- • 游程编码(Run-Length Encoding, RLE):用于压缩长序列中的重复值。
- • 熵编码(Entropy Encoding):如霍夫曼编码、算术编码,适合数据分布不均的场景。
- • 差分编码(Delta Encoding):对连续数据的差值进行编码,适合递增或变化缓慢的数据。
通常,压缩算法需要根据内存中的数据特性(如冷数据的冗余度)选择合适的方案。
2. 硬件支持
压缩需要硬件支持以保证性能:
- • 压缩/解压缩模块:在 DRAM 控制器中集成专用压缩和解压缩单元,实时处理数据流。高效的硬件实现可避免显著的性能开销。
- • 内存管理单元(MMU)调整:压缩后数据的逻辑地址和物理存储地址会变化,需要 MMU 处理地址映射和解压缩后的缓存一致性问题。
- • 缓存层优化:在内存访问中,提供对压缩数据的部分读取能力,避免解压缩整块数据。
3. 内存分块与管理
压缩 DRAM 通常将内存划分为较小的块(例如 64 字节或 128 字节)。每个块独立进行压缩和存储,以便高效管理:
- • 元数据管理:需要记录每个块的压缩状态、大小和地址映射信息。
- • 动态分配:根据不同块的压缩比,动态调整物理内存的分配,避免碎片化。
4. 访问模式优化
冷数据的访问频率较低,适合压缩,但对延迟敏感的数据则不适合放入压缩 DRAM。内存分层系统需要结合以下策略:
- • 冷热数据分层:使用访问频率统计(如时间窗口或 LFU/LRU 策略)动态分类数据,将热数据保留在主存,而冷数据移动到压缩 DRAM。
- • 预取和解压:通过访问模式预测提前解压冷数据,减少延迟。
压缩 DRAM 的优势和挑战
优势:
- 1. 更低的内存成本: 压缩可以减少所需的物理 DRAM 容量。
- 2. 节约能耗: 相较于更高性能的 DRAM 或频繁从慢速存储层取数据,压缩 DRAM 的能耗更低。
- 3. 更高的存储效率: 在有限的内存容量下存储更多数据,适合冷数据。
挑战:
- 1. 压缩开销: 压缩和解压缩过程可能引入额外的延迟,影响性能。
- 2. 硬件复杂性: 集成压缩逻辑需要增加硬件设计的复杂度,可能增加 DRAM 控制器的成本。
- 3. 算法适配性: 压缩算法需兼顾高压缩率和低计算成本,且适应各种工作负载。
云服务商视角下的CXL内存-Fig-7
建立基准
Google 和 Meta 在 OCP 中引入了一种新的 CXL 设备类别的基础规范,关注成本:
目标:
- • 可以大规模部署
- • 以增量方式扩展平台内存
- • 改善内存成本相较于商用 DIMMs
关键特性:
- • 支持 DDR4,每通道 3 个 DIMMs
- • 行速率内存压缩(inline memory compression at line rate)
- • 解压页面的缓存
云服务商视角下的CXL内存-Fig-8
成本优化
DIMMs直连内存:
DDR4:
- • 再利用和库存过剩
- • 节省成本
- • 减少嵌入式碳足迹
将成本分摊到大量 DRAM 上:
- • 4 个通道,每通道 3 个 DIMMs,共 12 个 DIMMs
- • 每 432 个 DRAM 模块只需一个 CXL 缓冲器
示例系统配置:
- • 每个主 CPU 通过 1×8 CXL 接口连接主存 DDR5 DIMMs
- • 通过 2×8 CXL 接口连接 DDR4 CXL 缓冲器,进一步扩展内存容量
行业挑战:
当前行业追逐 E3.s 形式的内存模块,这种设计不支持上述高效的扩展方案。
Note:Google 和 Meta 作为互联网巨头,掌握大量数据和流量入口。其ODM的硬件设计理念与传统硬件厂商是有差异的。Samsung/Micron/WD等都在推基于E3.s 接口的CXL内存,而Google/Meta 可能是认为基于CXL Switch 实现的内存解耦,在时延和带宽上并不满足实时计算的需求,观察上图的CXL缓存池设计,并没有将内存完全解耦的意图。
云服务商视角下的CXL内存-Fig-9
对比三种方案的碳排放量(以 CO2e 为单位):
- • 完全新 DDR5:碳排放最高。
- • DDR5 + 再利用的 DDR4(无压缩):碳排放减少。
- • DDR5 + 再利用的 DDR4(带压缩):碳排放进一步降低。
云服务商视角下的CXL内存-Fig-10
接下来做什么?
OCP 规范只是起点:
- • 新产品不应该“追着目标跑”(shoot behind the duck)。
ASIC 厂商的任务:
ASIC(Application-Specific Integrated Circuit,专用集成电路)
为冷内存使用场景定制的压缩优化:
- • 更低延迟的解压缩
- • 针对小块大小的优化
- • 在块大小与带宽开销之间权衡
- • 更大、更智能的解压缓存
其他改进:
- • 支持多层次内存(如 DRAM、压缩 DRAM、NAND)。
- • 针对退役 DIMMs 的可靠性改进。
- • 使用 CXL 3.1 提供更快的主机链接和更好的冷页面遥测功能。
- • 标准化封装接口。
DRAM 厂商的任务:
- • 针对低性能、低成本 DRAM 的市场需求提供解决方案。
未来的改进方向集中在针对冷数据的专用优化上,包括更高效的压缩技术、更智能的内存分层支持,以及针对性设计的低成本硬件。DRAM 和 ASIC 厂商需协作,推动成本与性能的优化,同时为冷内存使用场景开发专用技术。