diff -r a0ca00815cc4 -r 978884edf438 configs/common/CacheConfig.py --- a/configs/common/CacheConfig.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/common/CacheConfig.py Wed Oct 03 17:33:33 2012 +0200 @@ -38,9 +38,11 @@ if options.l2cache: if options.cpu_type == "arm_detailed": system.l2 = O3_ARM_v7aL2(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, block_size=options.cacheline_size) else: system.l2 = L2Cache(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, block_size=options.cacheline_size) system.tol2bus = CoherentBus() @@ -52,16 +54,20 @@ if options.cpu_type == "arm_detailed": icache = O3_ARM_v7a_ICache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, block_size=options.cacheline_size) dcache = O3_ARM_v7a_DCache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, block_size=options.cacheline_size) else: icache = L1Cache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, block_size=options.cacheline_size) dcache = L1Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, block_size=options.cacheline_size) if buildEnv['TARGET_ISA'] == 'x86': diff -r a0ca00815cc4 -r 978884edf438 configs/common/Options.py --- a/configs/common/Options.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/common/Options.py Wed Oct 03 17:33:33 2012 +0200 @@ -54,6 +54,10 @@ parser.add_option("--l1i_assoc", type="int", default=2) parser.add_option("--l2_assoc", type="int", default=8) parser.add_option("--l3_assoc", type="int", default=16) + parser.add_option("--l1d_latency", type="int", default="3") + parser.add_option("--l1i_latency", type="int", default="3") + parser.add_option("--l2_latency", type="int", default="15") + parser.add_option("--l3_latency", type="int", default="17") parser.add_option("--cacheline_size", type="int", default=64) parser.add_option("--ruby", action="store_true") parser.add_option("--smt", action="store_true", default=False, diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/MESI_CMP_directory.py --- a/configs/ruby/MESI_CMP_directory.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/MESI_CMP_directory.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,13 +37,13 @@ # Note: the L1 Cache latency is only used by the sequencer on fast path hits # class L1Cache(RubyCache): - latency = 3 + pass # # Note: the L2 Cache latency is not currently used # class L2Cache(RubyCache): - latency = 15 + pass def define_options(parser): return @@ -80,9 +80,11 @@ # l1i_cache = L1Cache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, start_index_bit = block_size_bits) l1d_cache = L1Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, start_index_bit = block_size_bits) l1_cntrl = L1Cache_Controller(version = i, @@ -122,6 +124,7 @@ # l2_cache = L2Cache(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, start_index_bit = l2_index_start) l2_cntrl = L2Cache_Controller(version = i, diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/MI_example.py --- a/configs/ruby/MI_example.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/MI_example.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,7 +37,7 @@ # Note: the cache latency is only used by the sequencer on fast path hits # class Cache(RubyCache): - latency = 3 + pass def define_options(parser): return @@ -74,6 +74,7 @@ # cache = Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, start_index_bit = block_size_bits) # diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/MOESI_CMP_directory.py --- a/configs/ruby/MOESI_CMP_directory.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/MOESI_CMP_directory.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,13 +37,13 @@ # Note: the L1 Cache latency is only used by the sequencer on fast path hits # class L1Cache(RubyCache): - latency = 3 + pass # # Note: the L2 Cache latency is not currently used # class L2Cache(RubyCache): - latency = 15 + pass def define_options(parser): return @@ -80,9 +80,11 @@ # l1i_cache = L1Cache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, start_index_bit = block_size_bits) l1d_cache = L1Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, start_index_bit = block_size_bits) l1_cntrl = L1Cache_Controller(version = i, @@ -121,6 +123,7 @@ # l2_cache = L2Cache(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, start_index_bit = l2_index_start) l2_cntrl = L2Cache_Controller(version = i, diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/MOESI_CMP_token.py --- a/configs/ruby/MOESI_CMP_token.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/MOESI_CMP_token.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,13 +37,13 @@ # Note: the L1 Cache latency is only used by the sequencer on fast path hits # class L1Cache(RubyCache): - latency = 2 + pass # # Note: the L2 Cache latency is not currently used # class L2Cache(RubyCache): - latency = 10 + pass def define_options(parser): parser.add_option("--l1-retries", type="int", default=1, @@ -93,9 +93,11 @@ # l1i_cache = L1Cache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, start_index_bit = block_size_bits) l1d_cache = L1Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, start_index_bit = block_size_bits) l1_cntrl = L1Cache_Controller(version = i, @@ -143,6 +145,7 @@ # l2_cache = L2Cache(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, start_index_bit = l2_index_start) l2_cntrl = L2Cache_Controller(version = i, diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/MOESI_hammer.py --- a/configs/ruby/MOESI_hammer.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/MOESI_hammer.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,13 +37,13 @@ # Note: the L1 Cache latency is only used by the sequencer on fast path hits # class L1Cache(RubyCache): - latency = 2 + pass # # Note: the L2 Cache latency is not currently used # class L2Cache(RubyCache): - latency = 10 + pass # # Probe filter is a cache, latency is not used @@ -89,13 +89,16 @@ # l1i_cache = L1Cache(size = options.l1i_size, assoc = options.l1i_assoc, + latency = options.l1i_latency, start_index_bit = block_size_bits, is_icache = True) l1d_cache = L1Cache(size = options.l1d_size, assoc = options.l1d_assoc, + latency = options.l1d_latency, start_index_bit = block_size_bits) l2_cache = L2Cache(size = options.l2_size, assoc = options.l2_assoc, + latency = options.l2_latency, start_index_bit = block_size_bits) l1_cntrl = L1Cache_Controller(version = i, diff -r a0ca00815cc4 -r 978884edf438 configs/ruby/Network_test.py --- a/configs/ruby/Network_test.py Fri Sep 28 09:35:25 2012 -0400 +++ b/configs/ruby/Network_test.py Wed Oct 03 17:33:33 2012 +0200 @@ -37,7 +37,7 @@ # Note: the cache latency is only used by the sequencer on fast path hits # class Cache(RubyCache): - latency = 3 + pass def define_options(parser): return @@ -77,7 +77,8 @@ # config parameters. # cache = Cache(size = options.l1d_size, - assoc = options.l1d_assoc) + assoc = options.l1d_assoc, + latency = options.l1d_latency) # # Only one unified L1 cache exists. Can cache instructions and data.