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