欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Rethinking Software Runtimes for Disaggregated Memory——论文泛读

Rethinking Software Runtimes for Disaggregated Memory——论文泛读

2024/10/23 15:22:18 来源:https://blog.csdn.net/qq_36159989/article/details/143108049  浏览:    关键词:Rethinking Software Runtimes for Disaggregated Memory——论文泛读

ASPLOS 2021 Paper 论文阅读笔记整理

问题

分离式内存通过提高内存利用率、减少内存不足错误或交换所需的总内存配置,来解决数据中心资源配置效率低下的问题[11]。此外,分离式内存实现了内存和计算的独立扩展,并将硬件故障和更换与单片服务器分开。

目前已经提出了软件运行时[10,15,36,57,72],使应用程序能够透明地使用远程内存。这些系统使用各种内核子系统[10,36,72]或重新设计内核[71],它们都依赖于虚拟内存机制来实现三个基本功能:

  • 获取和缓存远程数据:通过页面错误检测远程访问,然后将远程页面缓存在本地DRAM缓存中。

  • 跟踪脏数据:对页面进行写保护,对页面的第一次写入时出现写页面错误。

  • 逐出缓存页:从本地DRAM缓存中驱逐缓存的页面,将页面标记为不存在并刷新转译后备缓冲区(TLB)。

已有的用于分离式存储器的软件运行时依赖于虚拟内存子系统,但有多个局限性:

  • 使用页面错误来识别要在本地获取和缓存的数据所带来的高开销。

  • 使用页面粒度来跟踪缓存数据的变化(4KB或更高)所带来的脏数据放大。在整个生命周期中,应用程序会写入每个页面的一小部分,通常在64行缓存行中只写1-8行,使用4KB页面会导致2-31倍的脏数据放大率。

本文方法

本文提出了一种全新的方法来设计分离式内存的软件运行时Kona,使用缓存一致性而不是虚拟内存,以缓存行粒度透明地跟踪应用程序的内存访问。从而消除了访问远程数据时应用程序关键路径的页面错误,将应用程序内存访问跟踪与虚拟内存页面大小解耦,实现了缓存行粒度脏数据跟踪和驱逐。

  • 远程数据获取:利用缓存一致性实现,以缓存行粒度直接从远程内存获取。

  • 脏数据跟踪:利用硬件原语,在FPGA记录页面写回操作。

  • 缓存逐出:缓存行粒度逐出,先将逐出写入缓存行日志,通过RDMA批量写回。根据缓存行使用频率、空间局部性逐出,优先逐出非脏数据。

实验表明,与最先进的系统相比,它将平均内存访问时间提高了1.7-5倍,并将脏数据放大减少了2-10倍。

总结

针对基于缓存一致性的远程内存使用,避免页面粒度带来的页面错误开销、写放大。本文提出Kona,基于缓存一致性,在缓存行粒度实现远程数据获取、脏数据跟踪、缓存逐出(根据缓存行使用频率、空间局部性逐出,优先逐出非脏数据)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com