diff options
author | Nathan Binkert <nate@binkert.org> | 2010-06-10 23:17:07 -0700 |
---|---|---|
committer | Nathan Binkert <nate@binkert.org> | 2010-06-10 23:17:07 -0700 |
commit | 006818aeea6176c4500c5f7414e9f2a822c77062 (patch) | |
tree | 74adbd6cc14951943bd6eafc4aba2fb98be7a526 /src/mem/ruby/network/garnet/flexible-pipeline | |
parent | bc87fa30d72df7db6265be50b2c39dc218076f9f (diff) | |
download | gem5-006818aeea6176c4500c5f7414e9f2a822c77062.tar.xz |
ruby: get rid of Vector and use STL
add a couple of helper functions to base for deleteing all pointers in
a container and outputting containers to a stream
Diffstat (limited to 'src/mem/ruby/network/garnet/flexible-pipeline')
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(); |