华为云存储创新Lab论文被重要学术会议HPCA'23接收,提出一个为分离式内存设计的软硬协同的可编程预取技术
国际高性能计算机体系结构研讨会(IEEE International Symposium on High-Performance Computer Architecture,HPCA)是计算机体系结构领域的最重要会议之一,创办于 1995 年,由 IEEE 组织。经过二十多年的发展,目前已经和 ISCA、MICRO 一起誉为体系结构领域三大会。HPCA是中国计算机学会A类会议,论文录用率在20%左右。华为云存储创新实验室和中科院计算所先进计算机系统研究中心合作提出一个为分离式内存设计的软硬协同的可编程预取技术。
【论文信息】
HoPP: Hardware-Software Co-Designed Page Prefetching for Disaggregated Memory. Haifeng Li, Ke Liu, Ting Liang, Zuojun Li, Tianyue Lu, Hui Yuan, Yinben Xia, Yungang Bao, Mingyu Chen, Yizhou Shan.
【论文简介】
数据中心大内存应用程序对访问大量内存的需求日益增加(如大数据分析和存储等),远端内存已成为解决本地内存紧张的有效方法。基于虚拟内存系统(VMS)实现远程内存系统让应用可以透明且方便地使用远端内存,并利用预取等手段不断优化关键路径的延迟。由于基于VMS的远程内存系统的通用性和透明性,多个云计算厂商采用该方法搭建内存解耦合系统。然而,操作系统与应用之间天然存在语义鸿沟,即操作系统只能通过缺页的方式感知应用正在访问的地址。这样导致操作系统只能通过有限的缺页信息对预取器进行训练,对预取算法的设计带来很大的局限性。同时,在传统框架下,为了对预取器进行调整,预取命中时也会触发缺页异常,这样会极大降低程序性能。
为了解决上述问题,我们将捕获应用访存信息从缺页行为中解耦,利用内存控制器为操作系统提供完整的、实时的访存信息。基于这思想,我们提出HoPP – 一个软硬件结合的页面预取框架。通过在内存控制器增加热点页面分析逻辑与翻译逻辑,获得热点页面信息。利用充足、实时热点页面信息,我们不但设计了一种三层预取算法,而且将预取行为从缺页行为中解耦出来,同时进行了一系列优化。
值得一提的是,我们在真实系统上利用访存捕获工具(HMTT)构建了这个实验平台。实验表明:基于HoPP的预取器可以实现超过90%的准确率与覆盖率,即使本地内存占比一半的情况下,应用性能下降只有3.53%,相比于基于内核的远端内存系统性能提升59%。