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