The parameter L2_CACHE_NUM_SETS_BITS should be bigger than the number of
bits required to address an L2 bank. Since you have g_NUM_L2_BANKS=256,
you need 8 bits to map an address to an L2 bank, and the remaining bits
are used to map to a set. So your L2_CACHE_NUM_SET_BITS should be at
least nine (though obviously you want it to be bigger since you want
more than one or two blocks for each cache bank).
Another alternative is to reduce the number of cache banks.
-Alaa
Alessandro Bardine wrote:
I am using gems (MOESI_CMP_NUCA) with the following parameters and commands:
istc-disable
dstc-disable
instruction-fetch-mode instruction-fetch-trace
load-module ruby
load-module opal
ruby0.setparam g_NUM_PROCESSORS 8
ruby0.setparam g_PROCS_PER_CHIP 8
ruby0.setparam L1_CACHE_NUM_SETS_BITS 8
ruby0.setparam L1_CACHE_ASSOC 4
ruby0.setparam g_NUM_L2_BANKS 256
ruby0.setparam L2_CACHE_NUM_SETS_BITS 8
ruby0.setparam L2_CACHE_ASSOC 4
ruby0.setparam_str g_NETWORK_TOPOLOGY FILE_SPECIFIED
ruby0.setparam_str g_DYNAMIC_TIMEOUT_ENABLED false
ruby0.setparam_str REMOVE_SINGLE_CYCLE_DCACHE_FAST_PATH true
ruby0.setparam_str g_CACHE_DESIGN NUCACOL
ruby0.setparam_str g_adaptive_routing false
ruby0.setparam NUMBER_OF_VIRTUAL_NETWORKS 7
ruby0.setparam g_endpoint_bandwidth 1000
ruby0.setparam_str g_NUCA_PREDICTOR_CONFIG DNUCA
ruby0.setparam_str ENABLE_MIGRATION true
ruby0.setparam_str COLLECTOR_HANDLES_OFF_CHIP_REQUESTS true
ruby0.setparam_str PERFECT_DNUCA_SEARCH true
ruby0.init
opal0.init
opal0.sim-start "output-dnuca.opal"
opal0.sim-step 3
ruby0.dump-stats "output-dnuca.ruby"
opal0.stats
and I get the following error when the sim-step starts:
...
opalinterface: doing notify callback
Opal: opal-ruby link established.
OpalInterface: installation successful.
[0] PC 0x418634 NPC 0x4185e4 ctx 0x0
[1] PC 0x418618 NPC 0x41861c ctx 0x0
[2] PC 0x418624 NPC 0x418628 ctx 0x0
[3] PC 0x418610 NPC 0x418614 ctx 0x0
[4] PC 0x418618 NPC 0x41861c ctx 0x0
[5] PC 0x418628 NPC 0x41862c ctx 0x0
[6] PC 0x41860c NPC 0x418610 ctx 0x0
[7] PC 0x418620 NPC 0x418624 ctx 0x0
failed assertion 'L2bank < RubyConfig::numberOfL2CachePerChip()/2' at fn
MachineID map_L1CacheMachId_to_L2CacheLocalBank(const Address&, const
MachineID&) in slicc_interface/RubySlicc_ComponentMapping.h:171
failed assertion 'L2bank < RubyConfig::numberOfL2CachePerChip()/2' at fn
MachineID map_L1CacheMachId_to_L2CacheLocalBank(const Address&, const
MachineID&) in slicc_interface/RubySlicc_ComponentMapping.h:171
At this point you might want to attach a debug to the running and get to the
crash site; otherwise press enter to continue
PID: 26055
Now i try to dump the ruby stats I get a file containing:
...
L2_CACHE_NUM_SETS_BITS 0
...
I have tried various L2 cache size for block and associativity but I always
get the same error.
Where am I wrong?
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
|