计算机体系结构实验备忘录


目的

本文件夹用于记录总结进行 RISCV 体系结构实验的一些流程和常见问题,最终目标是实现一个体系结构小白能够独自完成从编译工具准备到最终的 GEM5 全系统模拟,并且利用 simpoint 和 checkpoint 技术提高模拟效率。当然这些内容也可以拓展到不同的指令集的体系结构实验当中,需要读者自己融汇贯通,最后会发现都是大同小异。

主要章节

  1. 交叉编译工具
    • 巩固善其事必先利其器,由于我们大多使用的是X86或者arm指令集的计算机设备,如果想要将代码转换为RISCV指令集机器上可以运行的程序,我们需要首先完成交叉编译器工具的准备。
  2. SPEC06 测试软件
    • 体系结构研究中,我们需要一套标准的测试工具来衡量机器的性能,这个机器可以是物理机、也可以是虚拟机,也可以是我们的模拟器。SPEC是业内比较通用的一套测试软件,这一章节主要介绍了SPEC06测试软件的构建方法。
  3. GEM5 模拟器
    • GEM5 模拟器是一个
  4. Linux内核、文件系统构建
    • GEM5 模拟器的全系统模拟需要我们提供 Linux 内核,和文件镜像。本章节主要描述了如何构建起一个最简单的Linux内核,并将我们要运行的测试程序加入文件镜像之中。
  5. SimPoint 和 CheckPoint
    • 对于一些比较大型的测试程序如SPEC06当中的各个benchmark,在GEM5上的运行时间短则数小时长则数周,为了提高测试效率,我们可以在为测试制作 checkpoint 也就是一种运行快照,如果我们将完整的测试拆分为10个快照,各自运行原测试 1/10 ,并且让10个对快照同时并行测试,时间就缩短到原来的1/10。这一章节主要介绍了如何使用 GEM5 和 simpoint 分析程序热点,创建checkpoint