ruby: added random seed option to config scripts
[gem5.git] / src / mem / ruby / config / MOESI_CMP_directory.rb
1
2 require "cfg.rb"
3 require "util.rb"
4
5
6 class MOESI_CMP_directory_L1CacheController < L1CacheController
7 attr :icache, :dcache
8 attr :num_l2_controllers
9 def initialize(obj_name, mach_type, icache, dcache, sequencer, num_l2_controllers)
10 super(obj_name, mach_type, [icache, dcache], sequencer)
11 @icache = icache
12 @dcache = dcache
13 @num_l2_controllers = num_l2_controllers
14 end
15 def argv()
16 num_select_bits = log_int(num_l2_controllers)
17 num_block_bits = log_int(RubySystem.block_size_bytes)
18
19 l2_select_low_bit = num_block_bits
20
21 vec = super()
22 vec += " icache " + @icache.obj_name
23 vec += " dcache " + @dcache.obj_name
24 vec += " request_latency "+request_latency().to_s
25 vec += " l2_select_low_bit " + l2_select_low_bit.to_s
26 vec += " l2_select_num_bits " + num_select_bits.to_s
27 return vec
28 end
29 end
30
31 class MOESI_CMP_directory_L2CacheController < CacheController
32 attr :cache
33 def initialize(obj_name, mach_type, cache)
34 super(obj_name, mach_type, [cache])
35 @cache = cache
36 end
37 def argv()
38 vec = super()
39 vec += " cache " + @cache.obj_name
40 vec += " request_latency "+request_latency().to_s
41 vec += " response_latency "+response_latency().to_s
42 return vec
43 end
44 end
45
46
47 class MOESI_CMP_directory_DirectoryController < DirectoryController
48 def initialize(obj_name, mach_type, directory, memory_control)
49 super(obj_name, mach_type, directory, memory_control)
50 end
51 def argv()
52 vec = super()
53 vec += " directory_latency "+directory_latency.to_s
54 return vec
55 end
56
57 end
58
59 class MOESI_CMP_directory_DMAController < DMAController
60 def initialize(obj_name, mach_type, dma_sequencer)
61 super(obj_name, mach_type, dma_sequencer)
62 end
63 def argv()
64 vec = super
65 vec += " request_latency "+request_latency.to_s
66 vec += " response_latency "+response_latency.to_s
67 return vec
68 end
69 end