本项目提出了混合内存数据分配策略,研究不同类型的测试程序在不同的混合内存分配下的运行性能。该混合内存分配分为三个模块:内存访问信息数据收集、混合内存分配算法模拟分配、混合内存分配性能比较。内存访问信息采集模块收集了程序运行时访问的物理地址。在此基础上,在不同的NVM和DRAM比例下使用本文提出的混合内存分配算法对测试程序进行内存分配。最后,根据存储介质特性,采集到了访问延迟,总体能耗和写操作数量,并进行对比分析。实验结果表明,基于0/1背包算法的混合内存分配策略对于访问延迟性能提高了42.7%,总体能耗效率提升43.3%。
项目使用 gem5 作为 CPU 模拟器,采用静态插桩的方式,直接统计 CPU 硬件输出,统计对比不同内存模型的性能指标。系统运行在 Ubuntu22.04 LTS 操作系统,采用 C++ 和 Python 混合语言编程。