gem5入门(二)之配置脚本学习

我们要利用gem5搭建模拟系统。那么首先我们就要先给出系统的图纸,告诉gem5我们要搭建怎么样的系统,那么这个就是这篇文章的内容–配置脚本

先感受一下

首先gem5提供了许多示例配置脚本,在configs/examples目录下,先运行一个测试一下吧
(但大多数脚本都是全方位的,允许用户在命令行中指定几乎所有的选项,比较复杂)


./build/X86/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/x86/linux/hello

指令解析:

  1. gem5.opt是我们编译生成的x86指令集架构上的gem5
  2. se.py是基于SE(系统调用模拟,syscall emulation)模式构建的基本模拟系统,这个就是之后要学习的配置系统的脚本文件
  3. hello是简单的程序,用来测试的二进制文件

之后我们先从学习搭建简单的配置脚本开始

首先在这里涉及到I-cache和D-cache的概念
CPU和主存之间一般都存在多级高速缓存,一般分为3级,分别是L1, L2和L3
L1 Cache比较特殊,每个CPU会有2个L1 Cache。分别为指令高速缓存(Instruction Cache,简称iCache)和数据高速缓存(Data Cache,简称dCache)。L2和L3一般不区分指令和数据,可以同时缓存指令和数据。
题外话:Icache和Dcache还存在一致性的问题,比如self-modifying code,这些代码在执行的时候会修改自己的指令。例如gcc调试打断点的时候就需要修改指令

创建配置文件并修改:

gem5/configs/learning_gem5目录下已经给出了三个部分的学习案例
本次我们先进行part1的学习
主要学习方法就是对照part1下的文件看gem5学习博客
学习路径如下
1.先看这个或其他博客
目的是先去理解part1/simple.py,学习如何搭建一个没有缓存的简单系统
这样跑跑试试:

build/X86/gem5.opt configs/learning_gem5/part1/simple.py

2.再看这个或其他博客
目的是去理解caches.py,two_level.py,学习如何进行缓存的设置,搭建一个两级cache的系统
这样跑跑试试:

build/X86/gem5.opt configs/learning_gem5/part1/two_level.py

学习过程

过程中可以使用如下命令,自己创建文件写写试试

bashmkdir configs/tutorial
touch configs/tutorial/simple.py

学习过程可以使用以下命令跑跑试试

build/X86/gem5.opt configs/tutorial/simple.py

gem5文件结构

所有gem5的配置文件在configs/下可以找到
examples/:包含一些可用于运行gem5的开箱即用的示例的gem5配置脚本
Caches.py:和我们之前创建的caches.py文件相似,也是一些关于cache的设置
Options.py:包含了一些关于在命令行设置的选项,比如CPU数量,系统时钟等等

增添一些命令行设置再运行

build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches

相关模拟的统计信息在m5out文件夹下可以看到
config.ini:包含了为模拟创建的每个SimObject列表以及其参数的值
详细参考这个

注:
其中很多教程里的与实际不同了的
slave现在改为cqu_side_ports
master现在改为mem_side_ports
可以参考 configs/learning_gem5/part1/simple.py里的
!!!照着这个改准没错,比啥教程都好用!!!

输出信息

每次执行结束,在m5out文件夹中都会生成三个输出文件:

config.ini 、config.json:本次模拟的参数配置
stats.txt:本次模拟信息

config.ini 文件中按照每个部件的名字进行划分。每个部件名字用中括号括起来,后面跟着的是它的参数和参数值
SimObject的每个实例都有自己的统计信息。在模拟结束时,或者在发出特殊的统计转储命令时,所有SimObjects的统计信息的当前状态都会转储到一个文件中。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值