在做计算机体系结构的时候,模拟器是一个重要且又有效的工具。其中gem5集成了gem和m5的优点,使用起来比较简单和方便。其中包括了se模式和fs模式,se模式是在gem5运行我们已经编译好的程序,可以获取cache,cpu状态等数据,fs模式下可以模拟操作系统,我们可以将我们自己修改的linux内核加载到哥们上运行。下面介绍了使用gem5的se模式,运行编译好的ARM可执行文件。获取访存的trace,然后我们可以通过这些trace模拟cache,并以此获取cache命中率等数据信息。
首先使用gem5运行已经编译好的可执行文件,以hello为例
build/ARM/gem5.opt configs/example/se.py -c hello
为了获取运行的trace,需要添加一些运行的参数
build/ARM/gem5.opt --outdir=memaccess --debug-flags=MemoryAccess --debug-file=memoryaccess.out configs/example/se.py -c hello
命令参数解析:
--outdir=memaccess 指明生成的 memory-access trace 文件所存放的文件夹。
--debug-flags=MemoryAccess 指 明 要 获 得 什 么 trace, 我 们 此 处 指 定 要 获 得MemoryAccess 的 trace(注意大小写,否则 gem5 会提示不识别这个 flag)
--debug-file=memoryaccess.out 指 明 trace 文 件 的 名 称 。 此 处 为memoryaccess.out
此处为Memo

本文介绍了如何使用gem5的系统模式(se)运行ARM可执行文件,生成MemoryAccess trace,用于模拟cache性能分析。通过gem5执行hello程序,详细解析trace文件的两个部分,展示程序加载和指令执行过程。接着,文章展示了如何基于这些trace构建一个4路组相连的cache模拟器,对trace进行预处理,并提供了部分代码示例。
917

被折叠的 条评论
为什么被折叠?



