中文

通过增强型页表遍历器降低次要页错误开销

硬件体系结构 2022-07-05 v2

摘要

从服务器到智能手机的所有系统中,应用程序的虚拟内存占用都在快速增长。为满足这一日益增长的需求,系统集成商正在加入越来越大的主内存容量,这有必要对内存管理进行重新思考。在当前系统中,应用程序访问未被物理页支撑的虚拟内存区域时会产生页错误异常。随着应用程序内存占用增长,它们引发的次要错误越来越多。每个次要错误的处理可能耗费数千个 CPU 周期,并阻塞应用程序直至操作系统找到空闲物理帧。当此类页错误发生频率高且散布于应用程序运行期时,会对性能造成危害。具体而言,惰性分配引发的次要页错误正日益影响应用程序性能。我们对若干工作负载的评估表明,次要错误导致的开销高达执行时间的 29%。本文中,我们提出通过硬件—软件协同设计方法来缓解该问题。具体地,我们首先提出将内核页分配的若干部分并行化,使其在错误发生前于独立线程中提前运行。随后我们提出次要错误卸载引擎(MFOE),一种用于次要错误处理的核心级硬件加速器。MFOE 配备有预分配页帧表,并用以服务页错误。发生页错误时,MFOE 从该表中选取一个预分配页帧,在 TLB 中为其建立表项,并更新页表项以满足页错误。预分配帧表由后台内核线程定期刷新,该线程同时更新内核内存管理数据结构。我们在 gem5 架构模拟器与修改后的 Linux 内核中评估了该系统。结果表明,MFOE 将关键路径上的错误处理延迟平均改善了 33 倍。

关键词

引用

@article{arxiv.2112.14013,
  title  = {Reducing Minor Page Fault Overheads through Enhanced Page Walker},
  author = {Chandrahas Tirumalasetty and Chih Chieh Chou and Narasimha Reddy and Paul Gratz and Ayman Abouelwafa},
  journal= {arXiv preprint arXiv:2112.14013},
  year   = {2022}
}

备注

To appear in ACM Transactions on Architecture and Code Optimization (TACO)