快速入门
学习一个项目或者使用一个软件最好的方式就是上手练习,这一系列文章主要是参考了gem5官方的指导手册,并进行了相应的改进。
1 创建一个简单的配置脚本
这篇文章将引导大家逐步了解如何为gem5设置简单的仿真脚本以及如何运行gem5。我们假设大家已经完成了gem5的下载和编译,并且已经成功地使用可执行文件构建了gem5 build/X86/gem5.opt,(可参考这里)。
我们的配置脚本将为一个非常简单的系统建模。我们只有一个简单的CPU内核。该CPU内核将连接到内存总线。我们将有一个DDR3内存通道,该通道也连接到内存总线。如下图:
1.1 创建一个配置文件
让我们开始创建一个新的配置文件并打开它:
mkdir configs/tutorial
touch configs/tutorial/simple.py
可以使用vim或者其他文本编辑器打开这个文件。
我们在此文件中要做的第一件事是导入m5库和我们已编译的所有SimObject。
import m5
from m5.objects import *
接下来,我们将创建第一个SimObject:我们将要模拟的系统。该System对象将是我们模拟系统中所有其他对象的父对象。该System对象包含许多功能(非时序级别)信息,例如物理内存范围,根时钟域,根电压域,内核(在全系统仿真中)等。要创建系统SimObject,我们像普通的python类一样简单地实例化它:
system = System()
现在我们已经有了要模拟的系统的参考,让我们在系统上设置时钟。我们首先必须创建一个时钟域。然后,我们可以在该域上设置时钟频率。在SimObject上设置参数与在python中设置对象的成员完全相同,因此我们可以简单地将时钟设置为1 GHz。最后,我们必须为此时钟域指定一个电压域。由于我们现在不在乎系统电源,因此我们仅将默认选项用于电压域。
system.clk_domain = Sr