MOESI_CMP_directory.py (8322:19949c6de823) | MOESI_CMP_directory.py (8436:5648986156db) |
---|---|
1# Copyright (c) 2006-2007 The Regents of The University of Michigan 2# Copyright (c) 2009 Advanced Micro Devices, Inc. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions are 7# met: redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer; --- 33 unchanged lines hidden (view full) --- 42# Note: the L2 Cache latency is not currently used 43# 44class L2Cache(RubyCache): 45 latency = 15 46 47def define_options(parser): 48 return 49 | 1# Copyright (c) 2006-2007 The Regents of The University of Michigan 2# Copyright (c) 2009 Advanced Micro Devices, Inc. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions are 7# met: redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer; --- 33 unchanged lines hidden (view full) --- 42# Note: the L2 Cache latency is not currently used 43# 44class L2Cache(RubyCache): 45 latency = 15 46 47def define_options(parser): 48 return 49 |
50def create_system(options, system, piobus, dma_devices): 51 | 50def create_system(options, system, piobus, dma_devices, ruby_system): 51 |
52 if buildEnv['PROTOCOL'] != 'MOESI_CMP_directory': 53 panic("This script requires the MOESI_CMP_directory protocol to be built.") 54 55 cpu_sequencers = [] 56 57 # 58 # The ruby network creation expects the list of nodes in the system to be 59 # consistent with the NetDest list. Therefore the l1 controller nodes must be --- 23 unchanged lines hidden (view full) --- 83 l1d_cache = L1Cache(size = options.l1d_size, 84 assoc = options.l1d_assoc, 85 start_index_bit = block_size_bits) 86 87 l1_cntrl = L1Cache_Controller(version = i, 88 cntrl_id = cntrl_count, 89 L1IcacheMemory = l1i_cache, 90 L1DcacheMemory = l1d_cache, | 52 if buildEnv['PROTOCOL'] != 'MOESI_CMP_directory': 53 panic("This script requires the MOESI_CMP_directory protocol to be built.") 54 55 cpu_sequencers = [] 56 57 # 58 # The ruby network creation expects the list of nodes in the system to be 59 # consistent with the NetDest list. Therefore the l1 controller nodes must be --- 23 unchanged lines hidden (view full) --- 83 l1d_cache = L1Cache(size = options.l1d_size, 84 assoc = options.l1d_assoc, 85 start_index_bit = block_size_bits) 86 87 l1_cntrl = L1Cache_Controller(version = i, 88 cntrl_id = cntrl_count, 89 L1IcacheMemory = l1i_cache, 90 L1DcacheMemory = l1d_cache, |
91 l2_select_num_bits = l2_bits) | 91 l2_select_num_bits = l2_bits, 92 ruby_system = ruby_system) |
92 93 cpu_seq = RubySequencer(version = i, 94 icache = l1i_cache, 95 dcache = l1d_cache, 96 physMemPort = system.physmem.port, | 93 94 cpu_seq = RubySequencer(version = i, 95 icache = l1i_cache, 96 dcache = l1d_cache, 97 physMemPort = system.physmem.port, |
97 physmem = system.physmem) | 98 physmem = system.physmem, 99 ruby_system = ruby_system) |
98 99 l1_cntrl.sequencer = cpu_seq 100 101 if piobus != None: 102 cpu_seq.pio_port = piobus.port 103 104 exec("system.l1_cntrl%d = l1_cntrl" % i) 105 # --- 11 unchanged lines hidden (view full) --- 117 # First create the Ruby objects associated with this cpu 118 # 119 l2_cache = L2Cache(size = options.l2_size, 120 assoc = options.l2_assoc, 121 start_index_bit = l2_index_start) 122 123 l2_cntrl = L2Cache_Controller(version = i, 124 cntrl_id = cntrl_count, | 100 101 l1_cntrl.sequencer = cpu_seq 102 103 if piobus != None: 104 cpu_seq.pio_port = piobus.port 105 106 exec("system.l1_cntrl%d = l1_cntrl" % i) 107 # --- 11 unchanged lines hidden (view full) --- 119 # First create the Ruby objects associated with this cpu 120 # 121 l2_cache = L2Cache(size = options.l2_size, 122 assoc = options.l2_assoc, 123 start_index_bit = l2_index_start) 124 125 l2_cntrl = L2Cache_Controller(version = i, 126 cntrl_id = cntrl_count, |
125 L2cacheMemory = l2_cache) | 127 L2cacheMemory = l2_cache, 128 ruby_system = ruby_system) |
126 127 exec("system.l2_cntrl%d = l2_cntrl" % i) 128 l2_cntrl_nodes.append(l2_cntrl) 129 130 cntrl_count += 1 131 132 phys_mem_size = long(system.physmem.range.second) - \ 133 long(system.physmem.range.first) + 1 --- 8 unchanged lines hidden (view full) --- 142 143 dir_size = MemorySize('0B') 144 dir_size.value = mem_module_size 145 146 dir_cntrl = Directory_Controller(version = i, 147 cntrl_id = cntrl_count, 148 directory = \ 149 RubyDirectoryMemory(version = i, | 129 130 exec("system.l2_cntrl%d = l2_cntrl" % i) 131 l2_cntrl_nodes.append(l2_cntrl) 132 133 cntrl_count += 1 134 135 phys_mem_size = long(system.physmem.range.second) - \ 136 long(system.physmem.range.first) + 1 --- 8 unchanged lines hidden (view full) --- 145 146 dir_size = MemorySize('0B') 147 dir_size.value = mem_module_size 148 149 dir_cntrl = Directory_Controller(version = i, 150 cntrl_id = cntrl_count, 151 directory = \ 152 RubyDirectoryMemory(version = i, |
150 size = \ 151 dir_size), 152 memBuffer = mem_cntrl) | 153 size = dir_size), 154 memBuffer = mem_cntrl, 155 ruby_system = ruby_system) |
153 154 exec("system.dir_cntrl%d = dir_cntrl" % i) 155 dir_cntrl_nodes.append(dir_cntrl) 156 157 cntrl_count += 1 158 159 for i, dma_device in enumerate(dma_devices): 160 # --- 25 unchanged lines hidden --- | 156 157 exec("system.dir_cntrl%d = dir_cntrl" % i) 158 dir_cntrl_nodes.append(dir_cntrl) 159 160 cntrl_count += 1 161 162 for i, dma_device in enumerate(dma_devices): 163 # --- 25 unchanged lines hidden --- |