Gem5模拟器,scon和模拟脚本时具体在做啥?
admin
2024-03-02 12:54:47
0

查了很多篇帖子,包括官网,对于scon在做啥只知道SCons利用SConstruct文件文件来查找和编译所有的Gem5源代码,执行完后生成一个gem5/build目录,得到相应的二进制文件。但你又不知道整个过程是在干啥,在查阅了n篇资料后,整理了一下自己的思路,记录如下:

一、scon在干啥?

我们在构建gem5模拟器的时候,可以选择不同处理器的配置(X86、ARM、ALPHA),Gem5的构建是通过scons工具来完成的,可以通过进入解压gem5源文件的目录运行下面的命令来完成构建。假设我们在构建Gem5模拟器的时候使用如下语句:

scons build/X86/gem5.opt -j2

其中“build”项指明了构建gem5模拟器的目录;“X86”项指明了对构建模拟器的配置信息包括指令集结构、CPU模型等,这是在初次构建的过程中所使用的方法,在之后的模拟中可以通过在构建项后面加选项的方式来改变模拟器的配置;gem5.opt项指明了要构建的gem5的二进制文件,申明了所要用到的编译器标志集(对编译器的配置以产生不同的二进制文件),不同的文件具有不同的特点和优势,现在可用的类别有:gem5.debug, gem5.opt, gem5.fast, gem5.prof and gem5.perf。他们各自的特点如下:

  • gem5.debug 关闭了优化。保证变量不会被优化掉,功能不会被意料外的内联(inlined),以及控制流行为正常。该版本与gdb类的工具合作良好,然而关闭优化会造成该版本明显慢于其它版本。当使用gdb或valgrind等工具并且不希望任何细节被模糊掉时应该选择该版本,否则建议选择其它版本。包含多种debug标志,在开发以及测试阶段使用,模拟速度慢。
  • gem5.opt 打开程序优化的同时保留了部分debug标志(例如,断言和DPRINTFs)。可以在试验阶段通过debug标志监控系统组件状态,模拟速度比debug类型得二进制要快。即该版本良好地平衡了模拟速度与调试观察,是所有环境中最优的版本。
  • gem5.fast 打开优化并关闭调试部分。编译优化程度最高,没有debug标志,最优的模拟速度,代价是不能进行运行时错误检查与调试输出。一般完成功能验证后,使用该二进制文件进行模拟实验。如果确信所有功能可以正确运行并想要获得峰值性能,建议使用该版本。
  • gem5.prof 类似于gem5.fast,但仍然保留了一些功能(instrumentation)可以用于gprof分析工具。该版本不常用,但可以用于找出gem5中应当被注意的部分以提升性能。不常用。
  • gem5.perf 同gem5.prof,但是instrumentation使用google perftools,允许被google-pprof分析。该分析版本是gem5.prof的补充,可能可以在所有基于Linux的系统中替换gem5.prof。不常用。

 二、运行GEM5模拟脚本时在干啥?

假设现在我们已经创建了一个简单的模拟脚本(即simple.py),我们可以运行Gem5了。Gem5可以接受许多参数,但只需要一个位置参数,即模拟脚本。因此,我们可以简单地从根Gem5目录运行Gem5,如下所示:

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

整个过程将python脚本传递给gem5二进制文件进行模拟,具体来说,应该就是模拟器根据指定的参数分析整个体系结构的指令的存储过程,存储内容,运行原理,以及tick周期等。

三、总结

gem5是计算机体系结构模拟平台,如果非得找一个实体说它是什么,那它应该是个将CPU内存,外设都以对象化形式表示并且希望用最精简的模块组合这些对象模块以实现最理想最复杂功能的芯片。只不过这个芯片是用软件设计的,功能有点类似与七巧板的拼图,你想拼什么图,就去找什么样的板,最终能够方便快捷的用其支持的CPU模型,内存模型,系统模型对象快速组装出一台用软件实现的计算机。然后根据用软件构建的这台虚拟机的运行二进制程序后的trace的内容,分析这个体系结构的指令的存储过程,存储内容,运行原理,以及tick周期。因此这个模拟平台通常都被计算机体系结构设计者和研究者广泛使用。


参考资料:

(8条消息) gem5学习4——Build System_ivy_reny的博客-CSDN博客

(8条消息) GEM5教程--gem5开始之旅(一)_人间之清欢的博客-CSDN博客

(8条消息) Gem5 学习 1 - Gem5 及其 文件结构_小张的学习手册的博客-CSDN博客

gem5模拟器使用介绍(一) - 张同光 - 博客园 (cnblogs.com)

(8条消息) gem5与Armv8模拟器的设计原理指导与使用指导_yuyezhulan的博客-CSDN博客

相关内容

热门资讯

高市还在搞事?日本同时被四国痛... 资料图:高市早苗文/国是直通车日本首相高市早苗近日接连就台湾、独岛等问题发表挑衅性言论。中国、韩国、...
蓝思科技:存储涨价对公司没有负... 新京报贝壳财经讯 11月15日,蓝思科技在互动平台表示,公司的主要客户均为国内外头部消费电子品牌,通...
宇树科技IPO辅导完成 宇树科... 2025.11.15本文字数:397,阅读时长大约1分钟作者 |第一财经据证监会官网消息,中信证券发...
2025多缸柴油机1-10月销... 多缸柴油机增速放缓进入2025年我国重卡、客车等商用车板块,整体都呈现出了不错的增长势头。中国内燃机...
震哥爆料:30个资金盘黑名单!... 兄弟们,震哥又来排雷了!9月30日最新曝光这批项目,有的已跑路,有的在硬撑,但个个都是坑!咱废话不多...
黄金ETF,真的能有效抵御通胀... 导语:黄金ETF作为一种现代化的黄金投资工具,其抗通胀能力究竟如何?本文将围绕这一核心问题,通过解答...
宇树科技完成上市辅导,财务数据... 中国证监会官网11月15日显示,当红人形机器人公司宇树科技已于11月10日完成上市辅导,进入辅导验收...
万亿巨头深夜公告!股东拟转让市... 宁德时代(300750)11月14日深夜公告,公司股东黄世霖拟通过询价方式转让所持公司A股股份;转让...
黄金,大跳水 黄金,大跳水 黄... 【导读】现货黄金、现货白银大跳水,现货黄金失守4040美元/盎司中国基金报 张舟因美联储官员发表鹰...