随着新型存储设备如高带宽内存(HBM)、DRAM、持久内存、基于Compute Express Link (CXL)的内存以及存储级内存的不断涌现,未来的计算机系统很可能会采用具有不同特性的多层存储架构,这些特性包括速度、尺寸、功率和成本等.在这样的背景下,分层内存管理技术变得尤为重要,它通过充分发挥每一层内存的优势,来优化整体的数据访问延迟和带宽.
分层内存管理的核心在于操作系统内部的页面管理机制,涉及到页面的分配、放置和迁移等关键环节.高效的页面管理不仅对提升内存利用率和系统性能至关重要,同时也要确保用户应用程序的运行不受干扰,保持其透明度.
传统上,存储器层次结构由性能差异显著的存储介质构成,例如,在商业操作系统中常见的DRAM和磁盘之间,在延迟、带宽和容量方面存在着2到3个数量级的差异.在这样的假设下,页面管理的主要目标是保留频繁访问的热页,提高性能层(如DRAM)的命中率,同时在必要时将不常访问的冷页迁移到容量层(如磁盘).然而,随着新型存储技术的出现,存储层次结构中的性能差异正在逐渐缩小.例如,英特尔Optane持久内存和CXL内存等技术已经展现出接近DRAM的延迟和带宽性能,性能提升可达2到3倍.这使得操作系统页面管理的传统设计原则可能不再适用,尤其是在迁移成本较高的情况下,提升热页到性能层的策略可能不再具有优势.
此外,与通过文件系统作为块设备访问的磁盘不同,新型存储设备支持字节级寻址,并且能够直接响应处理器的加载和存储指令.这意味着,对于容量层中频繁访问的页面,直接进行访问而不是进行迁移可能是一个更优的选择.值得注意的是,尽管分层内存的性能特性仍然存在差异,但在硬件层面,这些新型存储设备如Optane持久内存和CXL内存,对处理器而言并无差异,它们都表现为无需CPU干预的内存节点.这使得操作系统可以像管理常规DRAM节点一样,对这些新型存储设备进行管理.
新兴分层内存系统面临的这些独特挑战激发了改进操作系统页面管理的研究.人们主要关注加快内存层之间的页面迁移. Nimble [51]通过利用透明大页面(THP)、页面的多线程迁移以及多个页面的并发迁移来改进页面迁移.透明页面放置(TPP)[41]扩展了Linux中现有的NUMA平衡方案,以支持快内存和慢内存之间的异步页面降级和同步页面升级. Memtis [34] 和 TMTS [22] 使用硬件性能计数器来减轻页面访问跟踪的开销,并使用后台线程定期和异步提升页面.