管理语言运行时中混合内存的高效管理
1. 相关工作
1.1 不同的混合/异构主内存结构
已经提出了多种不同的混合/异构主内存结构,例如:
- DRAM + NVM
- 片上内存 + 片外内存
- 具有不同特征值的 DRAM
尽管这些技术不同,但它们都有一个共同特点,即地址空间的不同部分会产生不同的访问成本。为了管理这种异构性,人们提出了许多技术。
1.2 页面访问监控和迁移
大多数工作使用内存控制器来监控页面访问。内存控制器会将排名靠前的页面迁移到快速空间,操作系统会相应地更新虚拟地址映射表。然而,这些研究大多在固定粒度(主要是页面级别)上操作,并且页面迁移会带来时间和带宽开销。例如,Bock 等人指出页面迁移平均会使执行时间增加 25%。而我们的工作利用对象提升将对象放置到合适的空间,不会产生额外的数据迁移和时间开销。
1.3 直接数据放置
为了避免数据迁移开销,一些工作根据数据的引用行为直接将数据放置在合适的空间。例如:
- Chatterjee 等人将单个缓存行组织在多个内存通道上,将缓存行中的关键字(通常是第一个字)放置在低延迟通道。
- Wei 等人发现,在源代码中同一位置分配的对象组中,有些对象表现出相似的行为,可用于静态数据放置。
- Li 等人开发了一个二进制插桩工具,用于统计报告栈、堆和全局数据中的内存访问模式。
- Liu 等人在操作系统中实现了一个工具,用于收集页面访问频率、内存占用、页面重用时间等,以识别热点页面。
- Phadke 和 Narayanasamy 离线分析应用程序的 ML
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



