我想知道在gem5中在何处设置了诸如mem_ctrls,membus,replacement_policy之类的SimObject名称。查看代码后,我了解到,这些名称在stats.txt中使用。
我研究了SimObject代码文件(py,cc,hh文件)。我通过逐步遍历Simulation.py中的根后代来打印所有Simobject名称,然后使用vscode搜索了诸如mem_ctrls之类的一些名称,但是找不到设置这些名称的位置。
for obj in root.descendants():
print("object name:%s\n"% obj.get_name())
答案 0 :(得分:1)
这些名称是配置/运行脚本中的Python变量名称。
例如,从Learning gem5 simple.py脚本...
open IN, "<$ARGV[0]" or die "Could not open '$ARGV[0]': $!\n";
open OUT, ">$ARGV[0].txt" or die "Could not open '$ARGV[0].txt': $!\n";
while (<IN>)
{
print OUT substr($_, 4, 6)." ".join(" ",substr($_, 10) =~ /\w{4}/g)."\n";
}
close IN;
close OUT;
名称将为from m5.objects import *
# create the system we are going to simulate
system = System()
# Set the clock fequency of the system (and all of its children)
system.clk_domain = SrcClockDomain()
system.clk_domain.clock = '1GHz'
system.clk_domain.voltage_domain = VoltageDomain()
# Set up the system
system.mem_mode = 'timing' # Use timing accesses
system.mem_ranges = [AddrRange('512MB')] # Create an address range
,system
,clk_domain
。
请注意,只有SimObjects才有名称。其他参数(例如整数等)将没有名称。
您可以在此处查看设置位置:https://gem5.googlesource.com/public/gem5/+/master/src/python/m5/SimObject.py#1352