HotStorage 2023 Paper CXL论文阅读笔记整理
问题
将计算快速链路(CXL)与SSD集成,可以实现对大内存的可扩展访问,但速度比DRAM慢。例如,PRAM比DRAM[7]慢7倍,新的闪存技术延迟慢30倍[2]。为了解决这一问题,工业概念证明(PoC)采用SSD侧DRAM缓冲区作为内部缓存,这些缓冲区有效地处理了写入延迟问题,但很难掩盖存储类存储器(SCM)后端介质造成的长读取延迟。
与文件系统管理的块设备不同,CXL SSD应在不依赖主机端存储堆栈的情况下提供内存请求(加载/存储)。隐藏长读取延迟需要理解主机应用程序的执行行为,并适当地管理相应的CPU缓存层次结构。但现有的SSD技术忽略了这些方面,它们只处理块请求。
挑战
当CXL SSD作为主机管理的设备内存时,现有的CPU端缓存预取机制仍然是有益的。然而,面临两个挑战:
-
硬件逻辑大小限制:在处理CXL内存池空间中可能遇到的各种内存访问模式时的硬件逻辑大小限制。
-
延迟变化:位于CXL交换机网络中不同位置的不同CXL SSD的延迟不同。
本文方法
本文提出了ExPAND,一种扩展器驱动的CXL预取器,它将最后一级缓存(LLC)预取从主机CPU卸载到CXL SSD。
-
使用用于地址预测的异构机器学习算法管理跨各种扩展器访问的数据预取,利用CXL.mem的反向失效(BI)确保数据一致。
-
在PCIe枚举和设备发现过程中识别底层CXL网络拓扑和设备延迟,为每个CXL-SSD计算精确的端到端延迟,并写入每个设备的PCIe配置空间。因此,卸载的高速缓存预取算法可以确定向主机LLC进行数据检索的最佳时机,有效地减少了SSD后端介质施加的长延迟。
实验表明,ExPAND将图形应用程序性能提高了3.5倍,超过了具有多种预取策略的CXL-SSD池。
实验
实验环境:使用gem5[34]和SimpleSSD[35]进行模拟
数据集:亚马逊产品联合购买网络[33],测试四种图算法
实验对比:加速比
实验参数:不同图算法、CXL交换机层数
总结
针对CXL-SSD的预取,现有方法面临硬件逻辑大小限制和不同CXL层延迟不同。本文提出ExPAND,一种扩展器驱动的CXL预取器,将预取卸载到CXL SSD。包括两个关键技术:(1)使用用于地址预测的异构机器学习算法管理跨各种扩展器访问的数据预取,利用CXL.mem的反向失效(BI)确保数据一致。(2)在枚举和设备发现过程中识别底层CXL网络拓扑和设备延迟,技术每个CXL-SSD的精确端到端延迟,并写入每个设备的PCIe配置空间。因此,预取算法可以确定获取数据的最佳时机,减少了SSD后端介质施加的长延迟。