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; --- 60 unchanged lines hidden (view full) --- 69 # First create the Ruby objects associated with this cpu 70 # Only one cache exists for this protocol, so by default use the L1D 71 # config parameters. 72 # 73 cache = L1Cache(size = options.l1d_size, 74 assoc = options.l1d_assoc, 75 start_index_bit = block_size_bits) 76 |
77 |
78 # the ruby random tester reuses num_cpus to specify the 79 # number of cpu ports connected to the tester object, which 80 # is stored in system.cpu. because there is only ever one 81 # tester object, num_cpus is not necessarily equal to the 82 # size of system.cpu; therefore if len(system.cpu) == 1 83 # we use system.cpu[0] to set the clk_domain, thereby ensuring 84 # we don't index off the end of the cpu list. 85 if len(system.cpu) == 1: 86 clk_domain = system.cpu[0].clk_domain 87 else: 88 clk_domain = system.cpu[i].clk_domain |
89 |
90 # Only one unified L1 cache exists. Can cache instructions and data. 91 l1_cntrl = L1Cache_Controller(version=i, cacheMemory=cache, 92 send_evictions=send_evicts(options), 93 transitions_per_cycle=options.ports, 94 clk_domain=clk_domain, 95 ruby_system=ruby_system) 96 97 cpu_seq = RubySequencer(version=i, icache=cache, dcache=cache, 98 clk_domain=clk_domain, ruby_system=ruby_system) 99 |
100 l1_cntrl.sequencer = cpu_seq 101 exec("ruby_system.l1_cntrl%d = l1_cntrl" % i) 102 103 # Add controllers and sequencers to the appropriate lists 104 cpu_sequencers.append(cpu_seq) 105 l1_cntrl_nodes.append(l1_cntrl) 106 107 # Connect the L1 controllers and the network --- 94 unchanged lines hidden --- |