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

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

47def define_options(parser):
48 parser.add_option("--allow-atomic-migration", action="store_true",
49 help="allow migratory sharing for atomic only accessed blocks")
50 parser.add_option("--pf-on", action="store_true",
51 help="Hammer: enable Probe Filter")
52 parser.add_option("--dir-on", action="store_true",
53 help="Hammer: enable Full-bit Directory")
54
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;

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

47def define_options(parser):
48 parser.add_option("--allow-atomic-migration", action="store_true",
49 help="allow migratory sharing for atomic only accessed blocks")
50 parser.add_option("--pf-on", action="store_true",
51 help="Hammer: enable Probe Filter")
52 parser.add_option("--dir-on", action="store_true",
53 help="Hammer: enable Full-bit Directory")
54
55def create_system(options, full_system, system, dma_ports, ruby_system):
55def create_system(options, full_system, system, dma_ports, bootmem,
56 ruby_system):
56
57 if buildEnv['PROTOCOL'] != 'MOESI_hammer':
58 panic("This script requires the MOESI_hammer protocol to be built.")
59
60 cpu_sequencers = []
61
62 #
63 # The ruby network creation expects the list of nodes in the system to be

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

167
168 # Run each of the ruby memory controllers at a ratio of the frequency of
169 # the ruby system
170 # clk_divider value is a fix to pass regression.
171 ruby_system.memctrl_clk_domain = DerivedClockDomain(
172 clk_domain=ruby_system.clk_domain,
173 clk_divider=3)
174
57
58 if buildEnv['PROTOCOL'] != 'MOESI_hammer':
59 panic("This script requires the MOESI_hammer protocol to be built.")
60
61 cpu_sequencers = []
62
63 #
64 # The ruby network creation expects the list of nodes in the system to be

--- 103 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
175 dir_cntrl_nodes = create_directories(options, system.mem_ranges,
176 ruby_system)
176 mem_dir_cntrl_nodes, rom_dir_cntrl_node = create_directories(
177 options, system.mem_ranges, bootmem, ruby_system, system)
178 dir_cntrl_nodes = mem_dir_cntrl_nodes[:]
179 if rom_dir_cntrl_node is not None:
180 dir_cntrl_nodes.append(rom_dir_cntrl_node)
177 for dir_cntrl in dir_cntrl_nodes:
178 pf = ProbeFilter(size = pf_size, assoc = 4,
179 start_index_bit = pf_start_bit)
180
181 dir_cntrl.probeFilter = pf
182 dir_cntrl.probe_filter_enabled = options.pf_on
183 dir_cntrl.full_bit_dir_enabled = options.dir_on
184

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

249 io_controller.requestToDir = MessageBuffer()
250 io_controller.requestToDir.master = ruby_system.network.slave
251 io_controller.mandatoryQueue = MessageBuffer()
252
253 all_cntrls = all_cntrls + [io_controller]
254
255 ruby_system.network.number_of_virtual_networks = 6
256 topology = create_topology(all_cntrls, options)
181 for dir_cntrl in dir_cntrl_nodes:
182 pf = ProbeFilter(size = pf_size, assoc = 4,
183 start_index_bit = pf_start_bit)
184
185 dir_cntrl.probeFilter = pf
186 dir_cntrl.probe_filter_enabled = options.pf_on
187 dir_cntrl.full_bit_dir_enabled = options.dir_on
188

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

253 io_controller.requestToDir = MessageBuffer()
254 io_controller.requestToDir.master = ruby_system.network.slave
255 io_controller.mandatoryQueue = MessageBuffer()
256
257 all_cntrls = all_cntrls + [io_controller]
258
259 ruby_system.network.number_of_virtual_networks = 6
260 topology = create_topology(all_cntrls, options)
257 return (cpu_sequencers, dir_cntrl_nodes, topology)
261 return (cpu_sequencers, mem_dir_cntrl_nodes, topology)