Network.cc (10086:bd1089db3a88) | Network.cc (10303:71e0934af9f1) |
---|---|
1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 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; --- 35 unchanged lines hidden (view full) --- 44 // Total nodes/controllers in network 45 // Must make sure this is called after the State Machine constructors 46 m_nodes = MachineType_base_number(MachineType_NUM); 47 assert(m_nodes != 0); 48 assert(m_virtual_networks != 0); 49 50 m_topology_ptr = new Topology(p->routers.size(), p->ext_links, 51 p->int_links); | 1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 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; --- 35 unchanged lines hidden (view full) --- 44 // Total nodes/controllers in network 45 // Must make sure this is called after the State Machine constructors 46 m_nodes = MachineType_base_number(MachineType_NUM); 47 assert(m_nodes != 0); 48 assert(m_virtual_networks != 0); 49 50 m_topology_ptr = new Topology(p->routers.size(), p->ext_links, 51 p->int_links); |
52 53 // Allocate to and from queues 54 // Queues that are getting messages from protocol 55 m_toNetQueues.resize(m_nodes); 56 57 // Queues that are feeding the protocol 58 m_fromNetQueues.resize(m_nodes); 59 60 for (int node = 0; node < m_nodes; node++) { 61 // Setting number of virtual message buffers per Network Queue 62 m_toNetQueues[node].resize(m_virtual_networks); 63 m_fromNetQueues[node].resize(m_virtual_networks); 64 65 // Instantiating the Message Buffers that 66 // interact with the coherence protocol 67 for (int j = 0; j < m_virtual_networks; j++) { 68 m_toNetQueues[node][j] = new MessageBuffer(); 69 m_fromNetQueues[node][j] = new MessageBuffer(); 70 } 71 } 72 73 m_in_use.resize(m_virtual_networks); 74 m_ordered.resize(m_virtual_networks); 75 76 for (int i = 0; i < m_virtual_networks; i++) { 77 m_in_use[i] = false; 78 m_ordered[i] = false; 79 } 80 |
|
52 p->ruby_system->registerNetwork(this); 53 54 // Initialize the controller's network pointers 55 for (std::vector<BasicExtLink*>::const_iterator i = p->ext_links.begin(); 56 i != p->ext_links.end(); ++i) { 57 BasicExtLink *ext_link = (*i); 58 AbstractController *abs_cntrl = ext_link->params()->ext_node; 59 abs_cntrl->initNetworkPtr(this); 60 } 61 62 // Register a callback function for combining the statistics 63 Stats::registerDumpCallback(new StatsCallback(this)); 64} 65 | 81 p->ruby_system->registerNetwork(this); 82 83 // Initialize the controller's network pointers 84 for (std::vector<BasicExtLink*>::const_iterator i = p->ext_links.begin(); 85 i != p->ext_links.end(); ++i) { 86 BasicExtLink *ext_link = (*i); 87 AbstractController *abs_cntrl = ext_link->params()->ext_node; 88 abs_cntrl->initNetworkPtr(this); 89 } 90 91 // Register a callback function for combining the statistics 92 Stats::registerDumpCallback(new StatsCallback(this)); 93} 94 |
95Network::~Network() 96{ 97 for (int node = 0; node < m_nodes; node++) { 98 // Delete the Message Buffers 99 for (int j = 0; j < m_virtual_networks; j++) { 100 delete m_toNetQueues[node][j]; 101 delete m_fromNetQueues[node][j]; 102 } 103 } 104 105 delete m_topology_ptr; 106} 107 |
|
66void 67Network::init() 68{ 69 m_data_msg_size = RubySystem::getBlockSizeBytes() + m_control_msg_size; 70} 71 72uint32_t 73Network::MessageSizeType_to_int(MessageSizeType size_type) --- 26 unchanged lines hidden --- | 108void 109Network::init() 110{ 111 m_data_msg_size = RubySystem::getBlockSizeBytes() + m_control_msg_size; 112} 113 114uint32_t 115Network::MessageSizeType_to_int(MessageSizeType size_type) --- 26 unchanged lines hidden --- |