采集gem5benchmark的数据

1.      benchmark执行的过程中,每模拟1M1百万条指令)指令后,取此时的L2Cache的命中率和不命中率,可以写个脚本,通过-I 参数模拟指定数量的指令,比如-I 1000000 表示模拟1M条指令。这样耗费时间较多,比如要取100个点,1M2M。。。100M,则需要模拟100次。

2.      换一个思路,运行一次benchmark的模拟程序,就完成100数据采集,也就是通过判断模拟指令的条数(system->totalNumInsts % 1000000 ==0),如果模拟指令条数是1M的倍数,则取点,输出此时的命中次数和不命中次数,可以直接输出到屏幕上,因为若是输出到stats.txt的话应该是在模拟结束才能取(这个我也不确定,我也不知道能不能再模拟的过程输出到stats.txt,需要后续的确认)。

3.      如何找到命中次数呢,现在以

system.l2.overall_misses::total             423898388                       # number of overallmisses

为例,通过stats.txt的输出可以知道,不命中次数,通过grep –r 查找知道,Formula 类型的overallMisses记录不命中率,通过overallMisses.total()函数得到不命中次数。

其实这点早应该想到,记录系统模拟指令条数的System * sytem变量就是通过totalNumInsts得到的,应该也得想到得通过total函数得到的

你可能感兴趣的:(gem5,Gem5模拟器专栏)