MESI_Two_Level.py (12065:e3e51756dfef) MESI_Two_Level.py (12598:b80b2d9a251b)
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;

--- 29 unchanged lines hidden (view full) ---

38# Declare caches used by the protocol
39#
40class L1Cache(RubyCache): pass
41class L2Cache(RubyCache): pass
42
43def define_options(parser):
44 return
45
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;

--- 29 unchanged lines hidden (view full) ---

38# Declare caches used by the protocol
39#
40class L1Cache(RubyCache): pass
41class L2Cache(RubyCache): pass
42
43def define_options(parser):
44 return
45
46def create_system(options, full_system, system, dma_ports, ruby_system):
46def create_system(options, full_system, system, dma_ports, bootmem,
47 ruby_system):
47
48 if buildEnv['PROTOCOL'] != 'MESI_Two_Level':
49 fatal("This script requires the MESI_Two_Level protocol to be built.")
50
51 cpu_sequencers = []
52
53 #
54 # The ruby network creation expects the list of nodes in the system to be

--- 113 unchanged lines hidden (view full) ---

168
169 # Run each of the ruby memory controllers at a ratio of the frequency of
170 # the ruby system
171 # clk_divider value is a fix to pass regression.
172 ruby_system.memctrl_clk_domain = DerivedClockDomain(
173 clk_domain = ruby_system.clk_domain,
174 clk_divider = 3)
175
48
49 if buildEnv['PROTOCOL'] != 'MESI_Two_Level':
50 fatal("This script requires the MESI_Two_Level protocol to be built.")
51
52 cpu_sequencers = []
53
54 #
55 # The ruby network creation expects the list of nodes in the system to be

--- 113 unchanged lines hidden (view full) ---

169
170 # Run each of the ruby memory controllers at a ratio of the frequency of
171 # the ruby system
172 # clk_divider value is a fix to pass regression.
173 ruby_system.memctrl_clk_domain = DerivedClockDomain(
174 clk_domain = ruby_system.clk_domain,
175 clk_divider = 3)
176
176 dir_cntrl_nodes = create_directories(options, system.mem_ranges,
177 ruby_system)
177 mem_dir_cntrl_nodes, rom_dir_cntrl_node = create_directories(
178 options, system.mem_ranges, bootmem, ruby_system, system)
179 dir_cntrl_nodes = mem_dir_cntrl_nodes[:]
180 if rom_dir_cntrl_node is not None:
181 dir_cntrl_nodes.append(rom_dir_cntrl_node)
178 for dir_cntrl in dir_cntrl_nodes:
179 # Connect the directory controllers and the network
180 dir_cntrl.requestToDir = MessageBuffer()
181 dir_cntrl.requestToDir.slave = ruby_system.network.master
182 dir_cntrl.responseToDir = MessageBuffer()
183 dir_cntrl.responseToDir.slave = ruby_system.network.master
184 dir_cntrl.responseFromDir = MessageBuffer()
185 dir_cntrl.responseFromDir.master = ruby_system.network.slave

--- 40 unchanged lines hidden (view full) ---

226 io_controller.responseFromDir.slave = ruby_system.network.master
227 io_controller.requestToDir = MessageBuffer()
228 io_controller.requestToDir.master = ruby_system.network.slave
229
230 all_cntrls = all_cntrls + [io_controller]
231
232 ruby_system.network.number_of_virtual_networks = 3
233 topology = create_topology(all_cntrls, options)
182 for dir_cntrl in dir_cntrl_nodes:
183 # Connect the directory controllers and the network
184 dir_cntrl.requestToDir = MessageBuffer()
185 dir_cntrl.requestToDir.slave = ruby_system.network.master
186 dir_cntrl.responseToDir = MessageBuffer()
187 dir_cntrl.responseToDir.slave = ruby_system.network.master
188 dir_cntrl.responseFromDir = MessageBuffer()
189 dir_cntrl.responseFromDir.master = ruby_system.network.slave

--- 40 unchanged lines hidden (view full) ---

230 io_controller.responseFromDir.slave = ruby_system.network.master
231 io_controller.requestToDir = MessageBuffer()
232 io_controller.requestToDir.master = ruby_system.network.slave
233
234 all_cntrls = all_cntrls + [io_controller]
235
236 ruby_system.network.number_of_virtual_networks = 3
237 topology = create_topology(all_cntrls, options)
234 return (cpu_sequencers, dir_cntrl_nodes, topology)
238 return (cpu_sequencers, mem_dir_cntrl_nodes, topology)