summaryrefslogtreecommitdiff
path: root/configs/common/CacheConfig.py
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-10-15 08:08:08 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2012-10-15 08:08:08 -0400
commit1c321b88473d65ff4bd9a7b65a91351781fd31d8 (patch)
tree0a1ec8860927b8f453c42b3997fcde1979a43939 /configs/common/CacheConfig.py
parenta850fc916f06f05c1c55d634cdb2b230a7c23d11 (diff)
downloadgem5-1c321b88473d65ff4bd9a7b65a91351781fd31d8.tar.xz
Regression: Use CPU clock and 32-byte width for L1-L2 bus
This patch changes the CoherentBus between the L1s and L2 to use the CPU clock and also four times the width compared to the default bus. The parameters are not intending to fit every single scenario, but rather serve as a better startingpoint than what we previously had. Note that the scripts that do not use the addTwoLevelCacheHiearchy are not affected by this change. A separate patch will update the stats.
Diffstat (limited to 'configs/common/CacheConfig.py')
-rw-r--r--configs/common/CacheConfig.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/configs/common/CacheConfig.py b/configs/common/CacheConfig.py
index bc724f65f..563323946 100644
--- a/configs/common/CacheConfig.py
+++ b/configs/common/CacheConfig.py
@@ -36,14 +36,22 @@ from O3_ARM_v7a import *
def config_cache(options, system):
if options.l2cache:
+ # Provide a clock for the L2 and the L1-to-L2 bus here as they
+ # are not connected using addTwoLevelCacheHierarchy. Use the
+ # same clock as the CPUs, and set the L1-to-L2 bus width to 32
+ # bytes (256 bits).
if options.cpu_type == "arm_detailed":
- system.l2 = O3_ARM_v7aL2(size = options.l2_size, assoc = options.l2_assoc,
- block_size=options.cacheline_size)
+ system.l2 = O3_ARM_v7aL2(clock = options.clock,
+ size = options.l2_size,
+ assoc = options.l2_assoc,
+ block_size=options.cacheline_size)
else:
- system.l2 = L2Cache(size = options.l2_size, assoc = options.l2_assoc,
- block_size=options.cacheline_size)
+ system.l2 = L2Cache(clock = options.clock,
+ size = options.l2_size,
+ assoc = options.l2_assoc,
+ block_size = options.cacheline_size)
- system.tol2bus = CoherentBus()
+ system.tol2bus = CoherentBus(clock = options.clock, width = 32)
system.l2.cpu_side = system.tol2bus.master
system.l2.mem_side = system.membus.slave
@@ -51,11 +59,11 @@ def config_cache(options, system):
if options.caches:
if options.cpu_type == "arm_detailed":
icache = O3_ARM_v7a_ICache(size = options.l1i_size,
- assoc = options.l1i_assoc,
- block_size=options.cacheline_size)
+ assoc = options.l1i_assoc,
+ block_size=options.cacheline_size)
dcache = O3_ARM_v7a_DCache(size = options.l1d_size,
- assoc = options.l1d_assoc,
- block_size=options.cacheline_size)
+ assoc = options.l1d_assoc,
+ block_size=options.cacheline_size)
else:
icache = L1Cache(size = options.l1i_size,
assoc = options.l1i_assoc,
@@ -64,6 +72,8 @@ def config_cache(options, system):
assoc = options.l1d_assoc,
block_size=options.cacheline_size)
+ # When connecting the caches, the clock is also inherited
+ # from the CPU in question
if buildEnv['TARGET_ISA'] == 'x86':
system.cpu[i].addPrivateSplitL1Caches(icache, dcache,
PageTableWalkerCache(),