您的位置:首页 > 其它

multi2sim 编译与使用(2)-详细运行时信息的获取

2013-04-17 14:57 1196 查看
1. 生成详细的CPU运行报告
很多时候我们需要知道CPU在运行某个程序时的各种细节,比如分支预测的准确度,各种类型的指令分别执行了多少次,此次仿真过程当中CPU的各种配置细节等等。这个时候需要使用multi2sim提供的--x86-report
功能。 使用此功能时必须让仿真器处于时序仿真状态即使用--x86-sim detailed 选项。
具体命令如下:
./m2s
--x86-sim detailed --x86-report report.txt hello

生成的详细报告将存放在report.txt 文件当中。现在对该文件的重要内容进行大致的说明:
multi2sim 生成的所有报告文件都是以ini文件格式进行存放的。
在中括号[]当中表示的字段是段落名,之后所有的数据都属于该段落直到遇到下一个段落为止。
report 首先会给出关于此次仿真的详细参数配置:
在report.txt当中首先看到的段落是[
Config.General ],该段落显示出一般性的处理器配置信息比如CPU核心的个数:Cores = 1,每个处理器核心的硬件线程数:Threads = 1。ROB的恢复方式:RecoverKind = Writeback等等。
之后的段落为[ Config.Pipeline
],给出了关于处理器pipeline的一系列配置参数比如fetch,dispatch,issue,commit各个流水线级的发射宽度:DecodeWidth = 4等等。

段落[ Config.Queues ]给出了CPU当中各级队列的size的设置,段落[ Config.FunctionalUnits ]给出了CPU当中各个功能模块的个数,
在标志“Simulation Statistics“之后即真正的仿真结果统计:
[ Global ]段给出了全局的统计参数,包括总共执行的时钟周期数等等,其中Dispatch.Uop.move
= 9961 表示在dispatch级总共发射了9961个move指令(微指令),其他类似的参数想依次类推。
在“Committed branches“标志之后记录了此次运行总共进行了多少次分支预测以及分支预测的准确程度。
2. 生成详细的内存结构运行报告
很多时候我们需要知道此次程序运行总共进行了多少次内存读写,其中L1cache和L2cache各自的hit比例是多少。multi2sim同样提供了相应的报告工具来生成内存系统的详细运行报告,参数为--mem-report。实际运行指令为:
./m2s --x86-sim detailed --mem-report report.txt hello
在生成的report.txt文件当中便可以对内存系统的运行状态一览无余。其中段落明的命名规则为
mm: main memory
l1: L1 cache
l2: L2 cache
x86-l1-0: L1 cache of core 0
x86-l2: shared L2 cache
知道了这些命名规则我们便可以轻松找到相应内存模块的运行参数,比如要知道core0的L1cache的hit rate我们首先找到[x86-l1-0]段,然后找到HitRatio
= 0.7455即表示hit率位0.7455。其他的各种参数以此类推。
该文件后面的类似[Network.x86-net-l1-l2.Node.Switch]段的数据是针对内存结构当中的互联网络进行的运行时统计数据,关于互联网络的话题将在后面的文章当中详细介绍。

待续。。。

参考文献:

[1] “multi2sim user guide”http://www.multi2sim.org/files/multi2sim-r311.pdf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐