SimObject名称在哪里设置?

时间:2019-08-14 09:02:01

标签: gem5

我想知道在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())

1 个答案:

答案 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 systemclk_domain

请注意,只有SimObjects才有名称。其他参数(例如整数等)将没有名称。

您可以在此处查看设置位置:https://gem5.googlesource.com/public/gem5/+/master/src/python/m5/SimObject.py#1352