summaryrefslogtreecommitdiff
path: root/src/mem/ruby/network/garnet/flexible-pipeline
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/network/garnet/flexible-pipeline')
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc40
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh16
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc22
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh14
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc4
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh5
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/Router.cc50
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/Router.hh23
8 files changed, 92 insertions, 82 deletions
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
index e063e6a0e..232898c52 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
@@ -28,6 +28,7 @@
* Authors: Niket Agarwal
*/
+#include "base/stl_helpers.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
#include "mem/protocol/MachineType.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh"
@@ -40,6 +41,7 @@
#include "mem/ruby/common/NetDest.hh"
using namespace std;
+using m5::stl_helpers::deletePointers;
GarnetNetwork::GarnetNetwork(const Params *p)
: BaseGarnetNetwork(p)
@@ -47,10 +49,10 @@ GarnetNetwork::GarnetNetwork(const Params *p)
m_ruby_start = 0;
// Allocate to and from queues
- m_toNetQueues.setSize(m_nodes); // Queues that are getting messages from protocol
- m_fromNetQueues.setSize(m_nodes); // Queues that are feeding the protocol
- m_in_use.setSize(m_virtual_networks);
- m_ordered.setSize(m_virtual_networks);
+ m_toNetQueues.resize(m_nodes); // Queues that are getting messages from protocol
+ m_fromNetQueues.resize(m_nodes); // Queues that are feeding the protocol
+ m_in_use.resize(m_virtual_networks);
+ m_ordered.resize(m_virtual_networks);
for (int i = 0; i < m_virtual_networks; i++)
{
m_in_use[i] = false;
@@ -60,8 +62,8 @@ GarnetNetwork::GarnetNetwork(const Params *p)
for (int node = 0; node < m_nodes; node++)
{
//Setting how many vitual message buffers will there be per Network Queue
- m_toNetQueues[node].setSize(m_virtual_networks);
- m_fromNetQueues[node].setSize(m_virtual_networks);
+ m_toNetQueues[node].resize(m_virtual_networks);
+ m_fromNetQueues[node].resize(m_virtual_networks);
for (int j = 0; j < m_virtual_networks; j++)
{
@@ -80,13 +82,13 @@ void GarnetNetwork::init()
int number_of_routers = m_topology_ptr->numSwitches();
for (int i=0; i<number_of_routers; i++) {
- m_router_ptr_vector.insertAtBottom(new Router(i, this));
+ m_router_ptr_vector.push_back(new Router(i, this));
}
for (int i=0; i < m_nodes; i++) {
NetworkInterface *ni = new NetworkInterface(i, m_virtual_networks, this);
ni->addNode(m_toNetQueues[i], m_fromNetQueues[i]);
- m_ni_ptr_vector.insertAtBottom(ni);
+ m_ni_ptr_vector.push_back(ni);
}
m_topology_ptr->createLinks(this, false); // false because this isn't a reconfiguration
}
@@ -95,12 +97,12 @@ GarnetNetwork::~GarnetNetwork()
{
for (int i = 0; i < m_nodes; i++)
{
- m_toNetQueues[i].deletePointers();
- m_fromNetQueues[i].deletePointers();
+ deletePointers(m_toNetQueues[i]);
+ deletePointers(m_fromNetQueues[i]);
}
- m_router_ptr_vector.deletePointers();
- m_ni_ptr_vector.deletePointers();
- m_link_ptr_vector.deletePointers();
+ deletePointers(m_router_ptr_vector);
+ deletePointers(m_ni_ptr_vector);
+ deletePointers(m_link_ptr_vector);
delete m_topology_ptr;
}
@@ -123,7 +125,7 @@ void GarnetNetwork::makeInLink(NodeID src, SwitchID dest, const NetDest& routing
if(!isReconfiguration)
{
NetworkLink *net_link = new NetworkLink(m_link_ptr_vector.size(), link_latency, this);
- m_link_ptr_vector.insertAtBottom(net_link);
+ m_link_ptr_vector.push_back(net_link);
m_router_ptr_vector[dest]->addInPort(net_link);
m_ni_ptr_vector[src]->addOutPort(net_link);
}
@@ -143,7 +145,7 @@ void GarnetNetwork::makeOutLink(SwitchID src, NodeID dest, const NetDest& routin
if(!isReconfiguration)
{
NetworkLink *net_link = new NetworkLink(m_link_ptr_vector.size(), link_latency, this);
- m_link_ptr_vector.insertAtBottom(net_link);
+ m_link_ptr_vector.push_back(net_link);
m_router_ptr_vector[src]->addOutPort(net_link, routing_table_entry, link_weight);
m_ni_ptr_vector[dest]->addInPort(net_link);
}
@@ -159,7 +161,7 @@ void GarnetNetwork::makeInternalLink(SwitchID src, SwitchID dest, const NetDest&
if(!isReconfiguration)
{
NetworkLink *net_link = new NetworkLink(m_link_ptr_vector.size(), link_latency, this);
- m_link_ptr_vector.insertAtBottom(net_link);
+ m_link_ptr_vector.push_back(net_link);
m_router_ptr_vector[dest]->addInPort(net_link);
m_router_ptr_vector[src]->addOutPort(net_link, routing_table_entry, link_weight);
}
@@ -208,8 +210,8 @@ Time GarnetNetwork::getRubyStartTime()
void GarnetNetwork::printStats(ostream& out) const
{ double average_link_utilization = 0;
- Vector<double > average_vc_load;
- average_vc_load.setSize(m_virtual_networks*m_vcs_per_class);
+ std::vector<double> average_vc_load;
+ average_vc_load.resize(m_virtual_networks*m_vcs_per_class);
for(int i = 0; i < m_virtual_networks*m_vcs_per_class; i++)
{
@@ -223,7 +225,7 @@ void GarnetNetwork::printStats(ostream& out) const
for(int i = 0; i < m_link_ptr_vector.size(); i++)
{
average_link_utilization += m_link_ptr_vector[i]->getLinkUtilization();
- Vector<int > vc_load = m_link_ptr_vector[i]->getVcLoad();
+ std::vector<int> vc_load = m_link_ptr_vector[i]->getVcLoad();
for(int j = 0; j < vc_load.size(); j++)
{
assert(vc_load.size() == m_vcs_per_class*m_virtual_networks);
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
index c116a324b..62857223e 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
@@ -32,10 +32,10 @@
#define GARNET_NETWORK_H
#include <iostream>
+#include <vector>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
#include "mem/ruby/network/garnet/BaseGarnetNetwork.hh"
-#include "mem/gems_common/Vector.hh"
#include "mem/ruby/network/Network.hh"
#include "params/GarnetNetwork.hh"
@@ -89,15 +89,15 @@ private:
// int m_virtual_networks;
// int m_nodes;
- Vector<bool> m_in_use;
- Vector<bool> m_ordered;
+ std::vector<bool> m_in_use;
+ std::vector<bool> m_ordered;
- Vector<Vector<MessageBuffer*> > m_toNetQueues;
- Vector<Vector<MessageBuffer*> > m_fromNetQueues;
+ std::vector<std::vector<MessageBuffer*> > m_toNetQueues;
+ std::vector<std::vector<MessageBuffer*> > m_fromNetQueues;
- Vector<Router *> m_router_ptr_vector; // All Routers in Network
- Vector<NetworkLink *> m_link_ptr_vector; // All links in the network
- Vector<NetworkInterface *> m_ni_ptr_vector; // All NI's in Network
+ std::vector<Router *> m_router_ptr_vector; // All Routers in Network
+ std::vector<NetworkLink *> m_link_ptr_vector; // All links in the network
+ std::vector<NetworkInterface *> m_ni_ptr_vector; // All NI's in Network
// Topology* m_topology_ptr;
Time m_ruby_start;
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
index c81f5e4b2..b233ca0f5 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
@@ -30,11 +30,15 @@
#include <cmath>
+#include "base/stl_helpers.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh"
#include "mem/ruby/buffers/MessageBuffer.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh"
#include "mem/ruby/slicc_interface/NetworkMessage.hh"
+using namespace std;
+using m5::stl_helpers::deletePointers;
+
NetworkInterface::NetworkInterface(int id, int virtual_networks, GarnetNetwork *network_ptr)
{
m_id = id;
@@ -44,14 +48,14 @@ NetworkInterface::NetworkInterface(int id, int virtual_networks, GarnetNetwork *
m_num_vcs = m_vc_per_vnet*m_virtual_networks;
m_vc_round_robin = 0;
- m_ni_buffers.setSize(m_num_vcs);
- inNode_ptr.setSize(m_virtual_networks);
- outNode_ptr.setSize(m_virtual_networks);
+ m_ni_buffers.resize(m_num_vcs);
+ inNode_ptr.resize(m_virtual_networks);
+ outNode_ptr.resize(m_virtual_networks);
for(int i =0; i < m_num_vcs; i++)
m_ni_buffers[i] = new flitBuffer(); // instantiating the NI flit buffers
- m_vc_allocator.setSize(m_virtual_networks);
+ m_vc_allocator.resize(m_virtual_networks);
for(int i = 0; i < m_virtual_networks; i++)
{
m_vc_allocator[i] = 0;
@@ -59,15 +63,15 @@ NetworkInterface::NetworkInterface(int id, int virtual_networks, GarnetNetwork *
for(int i = 0; i < m_num_vcs; i++)
{
- m_out_vc_state.insertAtBottom(new OutVcState(i));
+ m_out_vc_state.push_back(new OutVcState(i));
m_out_vc_state[i]->setState(IDLE_, g_eventQueue_ptr->getTime());
}
}
NetworkInterface::~NetworkInterface()
{
- m_out_vc_state.deletePointers();
- m_ni_buffers.deletePointers();
+ deletePointers(m_out_vc_state);
+ deletePointers(m_ni_buffers);
delete outSrcQueue;
}
@@ -85,7 +89,7 @@ void NetworkInterface::addOutPort(NetworkLink *out_link)
out_link->setSource(this);
}
-void NetworkInterface::addNode(Vector<MessageBuffer*>& in, Vector<MessageBuffer*>& out)
+void NetworkInterface::addNode(vector<MessageBuffer*>& in, vector<MessageBuffer*>& out)
{
ASSERT(in.size() == m_virtual_networks);
inNode_ptr = in;
@@ -106,7 +110,7 @@ bool NetworkInterface::flitisizeMessage(MsgPtr msg_ptr, int vnet)
NetworkMessage *net_msg_ptr =
safe_cast<NetworkMessage*>(msg_ptr.get());
NetDest net_msg_dest = net_msg_ptr->getInternalDestination();
- Vector<NodeID> dest_nodes = net_msg_dest.getAllDest(); // gets all the destinations associated with this message.
+ vector<NodeID> dest_nodes = net_msg_dest.getAllDest(); // gets all the destinations associated with this message.
int num_flits = (int) ceil((double) m_net_ptr->MessageSizeType_to_int(net_msg_ptr->getMessageSize())/m_net_ptr->getFlitSize() ); // Number of flits is dependent on the link bandwidth available. This is expressed in terms of bytes/cycle or the flit size
for(int ctr = 0; ctr < dest_nodes.size(); ctr++) // loop because we will be converting all multicast messages into unicast messages
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh
index bc2701125..01608498d 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh
@@ -32,10 +32,10 @@
#define NET_INTERFACE_H
#include <iostream>
+#include <vector>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
-#include "mem/gems_common/Vector.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh"
#include "mem/ruby/slicc_interface/Message.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh"
@@ -55,7 +55,7 @@ public:
void addOutPort(NetworkLink *out_link);
void wakeup();
- void addNode(Vector<MessageBuffer *> &inNode, Vector<MessageBuffer *> &outNode);
+ void addNode(std::vector<MessageBuffer *> &inNode, std::vector<MessageBuffer *> &outNode);
void grant_vc(int out_port, int vc, Time grant_time);
void release_vc(int out_port, int vc, Time release_time);
bool isBufferNotFull(int vc, int inport)
@@ -73,8 +73,8 @@ private:
int m_virtual_networks, m_num_vcs, m_vc_per_vnet;
NodeID m_id;
- Vector<OutVcState *> m_out_vc_state;
- Vector<int > m_vc_allocator;
+ std::vector<OutVcState *> m_out_vc_state;
+ std::vector<int> m_vc_allocator;
int m_vc_round_robin; // For round robin scheduling
flitBuffer *outSrcQueue; // For modelling link contention
@@ -82,10 +82,10 @@ private:
NetworkLink *outNetLink;
// Input Flit Buffers
- Vector<flitBuffer *> m_ni_buffers; // The flit buffers which will serve the Consumer
+ std::vector<flitBuffer *> m_ni_buffers; // The flit buffers which will serve the Consumer
- Vector<MessageBuffer *> inNode_ptr; // The Message buffers that takes messages from the protocol
- Vector<MessageBuffer *> outNode_ptr; // The Message buffers that provides messages to the protocol
+ std::vector<MessageBuffer *> inNode_ptr; // The Message buffers that takes messages from the protocol
+ std::vector<MessageBuffer *> outNode_ptr; // The Message buffers that provides messages to the protocol
bool flitisizeMessage(MsgPtr msg_ptr, int vnet);
int calculateVC(int vnet);
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
index 6e106137a..2947ce8ec 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
@@ -42,7 +42,7 @@ NetworkLink::NetworkLink(int id, int latency, GarnetNetwork *net_ptr)
m_latency = latency;
int num_net = net_ptr->getNumberOfVirtualNetworks();
int num_vc = m_net_ptr->getVCsPerClass();
- m_vc_load.setSize(num_net*num_vc);
+ m_vc_load.resize(num_net * num_vc);
for(int i = 0; i < num_net*num_vc; i++)
m_vc_load[i] = 0;
@@ -91,7 +91,7 @@ void NetworkLink::release_vc_link(int vc, Time release_time)
link_source->release_vc(m_out_port, vc, release_time);
}
-Vector<int> NetworkLink::getVcLoad()
+std::vector<int> NetworkLink::getVcLoad()
{
return m_vc_load;
}
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh
index 3f648ae14..c23d55b48 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh
@@ -32,6 +32,7 @@
#define NETWORK_LINK_H
#include <iostream>
+#include <vector>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh"
@@ -67,13 +68,13 @@ public:
bool isBufferNotFull_link(int vc);
void setSource(FlexibleConsumer *source);
double getLinkUtilization();
- Vector<int> getVcLoad();
+ std::vector<int> getVcLoad();
protected:
int m_id, m_latency;
int m_in_port, m_out_port;
int m_link_utilized;
- Vector<int > m_vc_load;
+ std::vector<int> m_vc_load;
GarnetNetwork *m_net_ptr;
flitBuffer *linkBuffer;
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc b/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
index 4cdb9dad8..95b92d49d 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
@@ -28,6 +28,7 @@
* Authors: Niket Agarwal
*/
+#include "base/stl_helpers.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/Router.hh"
#include "mem/ruby/slicc_interface/NetworkMessage.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/InVcState.hh"
@@ -35,6 +36,7 @@
#include "mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh"
using namespace std;
+using m5::stl_helpers::deletePointers;
Router::Router(int id, GarnetNetwork *network_ptr)
{
@@ -52,14 +54,14 @@ Router::~Router()
{
for (int i = 0; i < m_in_link.size(); i++)
{
- m_in_vc_state[i].deletePointers();
+ deletePointers(m_in_vc_state[i]);
}
for (int i = 0; i < m_out_link.size(); i++)
{
- m_out_vc_state[i].deletePointers();
- m_router_buffers[i].deletePointers();
+ deletePointers(m_out_vc_state[i]);
+ deletePointers(m_router_buffers[i]);
}
- m_out_src_queue.deletePointers();
+ deletePointers(m_out_src_queue);
delete m_vc_arbiter;
}
@@ -67,19 +69,19 @@ Router::~Router()
void Router::addInPort(NetworkLink *in_link)
{
int port = m_in_link.size();
- Vector<InVcState *> in_vc_vector;
+ vector<InVcState *> in_vc_vector;
for(int i = 0; i < m_num_vcs; i++)
{
- in_vc_vector.insertAtBottom(new InVcState(i));
+ in_vc_vector.push_back(new InVcState(i));
in_vc_vector[i]->setState(IDLE_, g_eventQueue_ptr->getTime());
}
- m_in_vc_state.insertAtBottom(in_vc_vector);
- m_in_link.insertAtBottom(in_link);
+ m_in_vc_state.push_back(in_vc_vector);
+ m_in_link.push_back(in_link);
in_link->setLinkConsumer(this);
in_link->setInPort(port);
int start = 0;
- m_round_robin_invc.insertAtBottom(start);
+ m_round_robin_invc.push_back(start);
}
@@ -88,30 +90,30 @@ void Router::addOutPort(NetworkLink *out_link, const NetDest& routing_table_entr
int port = m_out_link.size();
out_link->setOutPort(port);
int start = 0;
- m_vc_round_robin.insertAtBottom(start);
+ m_vc_round_robin.push_back(start);
- m_out_src_queue.insertAtBottom(new flitBuffer());
+ m_out_src_queue.push_back(new flitBuffer());
- m_out_link.insertAtBottom(out_link);
- m_routing_table.insertAtBottom(routing_table_entry);
+ m_out_link.push_back(out_link);
+ m_routing_table.push_back(routing_table_entry);
out_link->setSourceQueue(m_out_src_queue[port]);
out_link->setSource(this);
- Vector<flitBuffer *> intermediateQueues;
+ vector<flitBuffer *> intermediateQueues;
for(int i = 0; i < m_num_vcs; i++)
{
- intermediateQueues.insertAtBottom(new flitBuffer(m_net_ptr->getBufferSize()));
+ intermediateQueues.push_back(new flitBuffer(m_net_ptr->getBufferSize()));
}
- m_router_buffers.insertAtBottom(intermediateQueues);
+ m_router_buffers.push_back(intermediateQueues);
- Vector<OutVcState *> out_vc_vector;
+ vector<OutVcState *> out_vc_vector;
for(int i = 0; i < m_num_vcs; i++)
{
- out_vc_vector.insertAtBottom(new OutVcState(i));
+ out_vc_vector.push_back(new OutVcState(i));
out_vc_vector[i]->setState(IDLE_, g_eventQueue_ptr->getTime());
}
- m_out_vc_state.insertAtBottom(out_vc_vector);
- m_link_weights.insertAtBottom(link_weight);
+ m_out_vc_state.push_back(out_vc_vector);
+ m_link_weights.push_back(link_weight);
}
bool Router::isBufferNotFull(int vc, int inport)
@@ -164,7 +166,7 @@ void Router::vc_arbitrate()
if(in_vc_state->isInState(VC_AB_, g_eventQueue_ptr->getTime()))
{
int outport = in_vc_state->get_outport();
- Vector<int > valid_vcs = get_valid_vcs(invc);
+ vector<int> valid_vcs = get_valid_vcs(invc);
for(int valid_vc_iter = 0; valid_vc_iter < valid_vcs.size(); valid_vc_iter++)
{
if(m_out_vc_state[outport][valid_vcs[valid_vc_iter]]->isInState(IDLE_, g_eventQueue_ptr->getTime()))
@@ -180,9 +182,9 @@ void Router::vc_arbitrate()
}
}
-Vector<int > Router::get_valid_vcs(int invc)
+vector<int> Router::get_valid_vcs(int invc)
{
- Vector<int > vc_list;
+ vector<int> vc_list;
for(int vnet = 0; vnet < m_virtual_networks; vnet++)
{
@@ -197,7 +199,7 @@ Vector<int > Router::get_valid_vcs(int invc)
for(int offset = 0; offset < vc_per_vnet; offset++)
{
- vc_list.insertAtBottom(base+offset);
+ vc_list.push_back(base+offset);
}
break;
}
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh b/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
index 5d2610fae..b6ebb601f 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
@@ -32,6 +32,7 @@
#define ROUTER_H
#include <iostream>
+#include <vector>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
@@ -68,23 +69,23 @@ private:
int m_id;
int m_virtual_networks, m_num_vcs, m_vc_per_vnet;
GarnetNetwork *m_net_ptr;
- Vector<int > m_vc_round_robin; // For scheduling of out source queues
+ std::vector<int> m_vc_round_robin; // For scheduling of out source queues
int m_round_robin_inport, m_round_robin_start; // for vc arbitration
- Vector<int > m_round_robin_invc; // For every outport. for vc arbitration
+ std::vector<int> m_round_robin_invc; // For every outport. for vc arbitration
- Vector<Vector<flitBuffer *> > m_router_buffers; // These are essentially output buffers
- Vector<flitBuffer *> m_out_src_queue; // These are source queues for the output link
- Vector<NetworkLink *> m_in_link;
- Vector<NetworkLink *> m_out_link;
- Vector<Vector<InVcState * > > m_in_vc_state;
- Vector<Vector<OutVcState * > > m_out_vc_state;
- Vector<NetDest> m_routing_table;
- Vector<int > m_link_weights;
+ std::vector<std::vector<flitBuffer *> > m_router_buffers; // These are essentially output buffers
+ std::vector<flitBuffer *> m_out_src_queue; // These are source queues for the output link
+ std::vector<NetworkLink *> m_in_link;
+ std::vector<NetworkLink *> m_out_link;
+ std::vector<std::vector<InVcState *> > m_in_vc_state;
+ std::vector<std::vector<OutVcState *> > m_out_vc_state;
+ std::vector<NetDest> m_routing_table;
+ std::vector<int> m_link_weights;
VCarbiter *m_vc_arbiter;
/*********** Private methods *************/
int getRoute(NetDest destination);
- Vector<int > get_valid_vcs(int invc);
+ std::vector<int> get_valid_vcs(int invc);
void routeCompute(flit *m_flit, int inport);
void checkReschedule();
void check_arbiter_reschedule();