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

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

45 help="Token_CMP: # of l1 retries before going persistent")
46 parser.add_option("--timeout-latency", type="int", default=300,
47 help="Token_CMP: cycles until issuing again");
48 parser.add_option("--disable-dyn-timeouts", action="store_true",
49 help="Token_CMP: disable dyanimc timeouts, use fixed latency instead")
50 parser.add_option("--allow-atomic-migration", action="store_true",
51 help="allow migratory sharing for atomic only accessed blocks")
52
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;

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

45 help="Token_CMP: # of l1 retries before going persistent")
46 parser.add_option("--timeout-latency", type="int", default=300,
47 help="Token_CMP: cycles until issuing again");
48 parser.add_option("--disable-dyn-timeouts", action="store_true",
49 help="Token_CMP: disable dyanimc timeouts, use fixed latency instead")
50 parser.add_option("--allow-atomic-migration", action="store_true",
51 help="allow migratory sharing for atomic only accessed blocks")
52
53def create_system(options, full_system, system, dma_ports, ruby_system):
53def create_system(options, full_system, system, dma_ports, bootmem,
54 ruby_system):
54
55 if buildEnv['PROTOCOL'] != 'MOESI_CMP_token':
56 panic("This script requires the MOESI_CMP_token protocol to be built.")
57
58 #
59 # number of tokens that the owner passes to requests so that shared blocks can
60 # respond to read requests
61 #

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

185
186 # Run each of the ruby memory controllers at a ratio of the frequency of
187 # the ruby system
188 # clk_divider value is a fix to pass regression.
189 ruby_system.memctrl_clk_domain = DerivedClockDomain(
190 clk_domain=ruby_system.clk_domain,
191 clk_divider=3)
192
55
56 if buildEnv['PROTOCOL'] != 'MOESI_CMP_token':
57 panic("This script requires the MOESI_CMP_token protocol to be built.")
58
59 #
60 # number of tokens that the owner passes to requests so that shared blocks can
61 # respond to read requests
62 #

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

186
187 # Run each of the ruby memory controllers at a ratio of the frequency of
188 # the ruby system
189 # clk_divider value is a fix to pass regression.
190 ruby_system.memctrl_clk_domain = DerivedClockDomain(
191 clk_domain=ruby_system.clk_domain,
192 clk_divider=3)
193
193 dir_cntrl_nodes = create_directories(options, system.mem_ranges,
194 ruby_system)
194 mem_dir_cntrl_nodes, rom_dir_cntrl_node = create_directories(
195 options, system.mem_ranges, bootmem, ruby_system, system)
196 dir_cntrl_nodes = mem_dir_cntrl_nodes[:]
197 if rom_dir_cntrl_node is not None:
198 dir_cntrl_nodes.append(rom_dir_cntrl_node)
195 for dir_cntrl in dir_cntrl_nodes:
196 dir_cntrl.l2_select_num_bits = l2_bits
197 # Connect the directory controllers and the network
198 dir_cntrl.requestToDir = MessageBuffer()
199 dir_cntrl.requestToDir.slave = ruby_system.network.master
200 dir_cntrl.responseToDir = MessageBuffer()
201 dir_cntrl.responseToDir.slave = ruby_system.network.master
202 dir_cntrl.persistentToDir = MessageBuffer(ordered = True)

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

259 io_controller.reqToDirectory = MessageBuffer()
260 io_controller.reqToDirectory.master = ruby_system.network.slave
261
262 all_cntrls = all_cntrls + [io_controller]
263
264
265 ruby_system.network.number_of_virtual_networks = 6
266 topology = create_topology(all_cntrls, options)
199 for dir_cntrl in dir_cntrl_nodes:
200 dir_cntrl.l2_select_num_bits = l2_bits
201 # Connect the directory controllers and the network
202 dir_cntrl.requestToDir = MessageBuffer()
203 dir_cntrl.requestToDir.slave = ruby_system.network.master
204 dir_cntrl.responseToDir = MessageBuffer()
205 dir_cntrl.responseToDir.slave = ruby_system.network.master
206 dir_cntrl.persistentToDir = MessageBuffer(ordered = True)

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

263 io_controller.reqToDirectory = MessageBuffer()
264 io_controller.reqToDirectory.master = ruby_system.network.slave
265
266 all_cntrls = all_cntrls + [io_controller]
267
268
269 ruby_system.network.number_of_virtual_networks = 6
270 topology = create_topology(all_cntrls, options)
267 return (cpu_sequencers, dir_cntrl_nodes, topology)
271 return (cpu_sequencers, mem_dir_cntrl_nodes, topology)