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) |