内含两个实验: 实验一:GEM5和NVMain的使用 真实的非易失性内存器件2019年4月才上市,之前针对非易失性内存的工作通常会在模拟器上进行测试,GEM5和NVMain是比较常用的模拟器。 实验二:Quartz的使用 Quartz是非易失性内存仿真器,利用NUMA体系结构中提供的硬件功能来模拟两种内存:快速本地DRAM和远程NVM。通过在远程NUMA节点上注入软件创建的内存访问延迟来模拟各种NVM延迟。 【计算机系统设计实验报告2021】 实验一:GEM5和NVMain的使用 在计算机系统设计中,模拟器扮演着至关重要的角色,尤其是当处理新兴技术如非易失性内存(NVM)时。GEM5和NVMain是两个常用的NVM模拟器,它们允许研究人员在真实设备上市前进行测试和分析。GEM5是一个高度可配置的系统级模拟器,广泛用于研究处理器、内存系统、I/O和多核架构。NVMain则专注于NVM的仿真,提供了一种平台来研究NVM对系统性能的影响。 实验中,我们首先在不同版本的Ubuntu虚拟机上尝试安装和运行GEM5和NVMain。值得注意的是,Ubuntu 14.04是唯一能成功编译和运行这两个模拟器的版本,因为其他较新版本的Ubuntu可能与NVMain和GEM5的依赖项存在兼容性问题。在安装过程中,我们需要从NVMain的官方网站或通过其他途径(如百度网盘链接)获取源代码,并使用scons工具进行快速编译。 对于NVMain,实验涉及了对其FPC(Fixed Pattern Compression)压缩方案的实现和改进。FPC旨在减少写入NVM的数据量,通过对写入单元(8字节)的数据类型进行分析,将其分类为8种不同的模式,并采用不同的压缩策略。例如,对于全0的写入单元,只需3位状态码即可表示;而对于8位符号扩展的情况,压缩后的数据为11位。通过对每种模式进行优化,可以显著减少存储需求,从而提高NVM的效率。 实验二:Quartz的使用 Quartz是一种基于NUMA(非统一内存访问)架构的NVM仿真器,它可以模拟两种内存类型:快速的本地DRAM和远程NVM。通过在远程NUMA节点上模拟内存访问延迟,Quartz能够模拟各种NVM延迟场景,这对于研究NVM的性能和行为至关重要。在使用Quartz时,我们可以通过调整参数来改变NVM的延迟特性,从而研究这些变化对整个系统性能的影响。 在进行实验时,还需要注意对NVMain的源代码进行适当的修改,例如添加数据类型统计的功能。这包括在nvmain/NVM/nvmain.h中定义一个私有数组data_type[8],以及在nvmain/NVM/nvmain.cpp中初始化数组并实现数据类型的判断。通过这样的改动,我们可以收集关于写入NVM的数据类型信息,以便于进一步分析和优化NVM的压缩策略。 总结: 本实验报告详细阐述了如何使用GEM5和NVMain模拟器进行非易失性内存的研究,以及如何在Quartz上模拟不同的NVM延迟特性。通过对NVMain的源代码进行修改,我们得以统计和分析写入数据的类型,这对于优化NVM的压缩算法和提高系统性能具有重要意义。在进行此类实验时,选择正确的软件环境、理解模拟器的工作原理以及对源代码的深入理解都是至关重要的步骤。
- 粉丝: 21
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助