1 gem5入门
SE模式和FS模式
- SE模式:专注于仿真CPU和内存系统,不需要实例化真实系统中的所有硬件设备。
- FS模式:模拟整个硬件系统并运行未经修改的内核。需要系统的高保真建模或者像页表遍历这样的操作系统交互操作时使用。
乱序CPU,脚本参数:DerivO3CPU,只能在FS模式下使用。
cache模型
- Ruby:gems模型,用于对缓存一致性进行详细的建模。可采用SLICC语言定义一致性协议。
- Classic:M5模型,采用MOESI协议。通常在一致性协议不重要时使用。
常用参数:
- --cpu-type=CPU_TYPE 要运行的 CPU 类型。默认是 atomic,不执行时序模拟。
- --sys-clock=SYS_CLOCK 以系统速度运行的块的顶级时钟。
- --cpu-clock=CPU_CLOCK 要使用的内存类型。选项包括不同的 DDR 内存和 ruby 内存控制器。
- --caches 使用经典缓存执行模拟。
- --l2cache 如果使用经典缓存,则使用 L2 缓存执行模拟。
- --ruby 使用 Ruby 代替经典缓存作为缓存系统模拟。
- -m TICKS, --abs-max-tick=TICKS 运行到指定的绝对模拟刻度
- -I MAXINSTS, --maxinsts=MAXINSTS 要模拟的指令总数(默认:永远运行)
- -c CMD, --cmd=CMD 在系统调用仿真模式下运行的二进制文件。
- -o OPTIONS, --options=OPTIONS 传递给二进制文件的选项,在整个字符串周围使用“”。可以通过此变量传递参数和选项(例如,–whatever)。
- --output=OUTPUT 将标准输出重定向到文件。
- --errout=ERROUT 将 stderr 重定向到文件。