garnet: rename and rearrange config parameters.
authorTushar Krishna <tushar@csail.mit.edu>
Wed, 18 May 2011 07:04:14 +0000 (03:04 -0400)
committerTushar Krishna <tushar@csail.mit.edu>
Wed, 18 May 2011 07:04:14 +0000 (03:04 -0400)
Renamed (message) class to vnet for consistency with rest of ruby.
Moved some parameters specific to fixed/flexible garnet networks into their
corresponding py files.

19 files changed:
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
src/mem/ruby/network/garnet/BaseGarnetNetwork.py
src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py
src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc
src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py
src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
src/mem/ruby/network/garnet/flexible-pipeline/Router.cc

index 2e3cc8b2414a1a764b98056fa6f6d30cd87739ea..e3eb73b0a225e9ed24b168e3c09fd54e6fee4949 100644 (file)
@@ -37,10 +37,7 @@ BaseGarnetNetwork::BaseGarnetNetwork(const Params *p)
     : Network(p)
 {
     m_ni_flit_size = p->ni_flit_size;
-    m_number_of_pipe_stages = p->number_of_pipe_stages;
-    m_vcs_per_class = p->vcs_per_class;
-    m_buffers_per_data_vc = p->buffers_per_data_vc;
-    m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
+    m_vcs_per_vnet = p->vcs_per_vnet;
 
     m_ruby_start = 0;
     m_flits_received = 0;
index 8e3115eb51e5fa101d457545c86ed1dd0e0805fc..95d4c5f5c5669a23dbb6bc1e3900288adb07d4ec 100644 (file)
@@ -49,17 +49,11 @@ class BaseGarnetNetwork : public Network
 
     void init();
     int getNiFlitSize() {return m_ni_flit_size; }
-    int getNumPipeStages() {return m_number_of_pipe_stages; }
-    int getVCsPerClass() {return m_vcs_per_class; }
-    int getBuffersPerDataVC() {return m_buffers_per_data_vc; }
-    int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; }
+    int getVCsPerVnet() {return m_vcs_per_vnet; }
 
   protected:
     int m_ni_flit_size;
-    int m_number_of_pipe_stages;
-    int m_vcs_per_class;
-    int m_buffers_per_data_vc;
-    int m_buffers_per_ctrl_vc;
+    int m_vcs_per_vnet;
 
     int m_flits_received;
     int m_flits_injected;
index d2366ed1a977869427302029266a80628dc9debb..8073131f4221906a7ccb011fdb9d6443f1b6daea 100644 (file)
@@ -35,7 +35,4 @@ class BaseGarnetNetwork(RubyNetwork):
     type = 'BaseGarnetNetwork'
     abstract = True
     ni_flit_size = Param.Int(16, "network interface flit size in bytes")
-    number_of_pipe_stages = Param.Int(4, "router pipeline stages");
-    vcs_per_class = Param.Int(4, "virtual channels per message class");
-    buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel");
-    buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel");
+    vcs_per_vnet = Param.Int(4, "virtual channels per virtual network");
index 363ff2e44e3d6e6a70d2c7f0dd38d307e46da7be..1fb7e0b7b34b07465e1624e794d6ad3bd713f843 100644 (file)
@@ -37,8 +37,8 @@ class NetworkLink_d(SimObject):
     type = 'NetworkLink_d'
     link_id = Param.Int(Parent.link_id, "link id")
     link_latency = Param.Int(Parent.latency, "link latency")
-    vcs_per_class = Param.Int(Parent.vcs_per_class,
-                              "virtual channels per message class")
+    vcs_per_vnet = Param.Int(Parent.vcs_per_vnet,
+                              "virtual channels per virtual network")
     virt_nets = Param.Int(Parent.number_of_virtual_networks,
                           "number of virtual networks")
     channel_width = Param.Int(Parent.bandwidth_factor,
index c8b9fbea71d8110de9c1d6ecd6980075a2665c64..17dba251dbb3ae5f310d701fcb74aa113fb7514d 100644 (file)
@@ -49,6 +49,9 @@ using m5::stl_helpers::deletePointers;
 GarnetNetwork_d::GarnetNetwork_d(const Params *p)
     : BaseGarnetNetwork(p)
 {
+    m_buffers_per_data_vc = p->buffers_per_data_vc;
+    m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc;
+
     // record the routers
     for (vector<BasicRouter*>::const_iterator i = 
              m_topology_ptr->params()->routers.begin();
@@ -254,9 +257,9 @@ GarnetNetwork_d::printStats(ostream& out) const
 {
     double average_link_utilization = 0;
     vector<double> average_vc_load;
-    average_vc_load.resize(m_virtual_networks*m_vcs_per_class);
+    average_vc_load.resize(m_virtual_networks*m_vcs_per_vnet);
 
-    for (int i = 0; i < m_virtual_networks*m_vcs_per_class; i++)
+    for (int i = 0; i < m_virtual_networks*m_vcs_per_vnet; i++)
     {
         average_vc_load[i] = 0;
     }
@@ -272,7 +275,7 @@ GarnetNetwork_d::printStats(ostream& out) const
 
         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);
+            assert(vc_load.size() == m_vcs_per_vnet*m_virtual_networks);
             average_vc_load[j] += vc_load[j];
         }
     }
@@ -282,8 +285,8 @@ GarnetNetwork_d::printStats(ostream& out) const
         << " flits/cycle" << endl;
     out << "-------------" << endl;
 
-    for (int i = 0; i < m_vcs_per_class*m_virtual_networks; i++) {
-        if (!m_in_use[i/m_vcs_per_class])
+    for (int i = 0; i < m_vcs_per_vnet*m_virtual_networks; i++) {
+        if (!m_in_use[i/m_vcs_per_vnet])
             continue;
 
         average_vc_load[i] = (double(average_vc_load[i]) /
index b4e264be1b8d4c589b375d06ad846bd11f1c1e43..6254bd383483367d9e3ec30bead33a3fbd95ef33 100644 (file)
@@ -59,6 +59,9 @@ class GarnetNetwork_d : public BaseGarnetNetwork
 
     int getNumNodes() { return m_nodes; }
 
+    int getBuffersPerDataVC() {return m_buffers_per_data_vc; }
+    int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; }
+
     // returns the queue requested for the given component
     MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
     MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num);
@@ -71,14 +74,14 @@ class GarnetNetwork_d : public BaseGarnetNetwork
     void
     set_vnet_type(int vc, VNET_type vnet_type)
     {
-        int vnet = vc/getVCsPerClass();
+        int vnet = vc/getVCsPerVnet();
         m_vnet_type[vnet] = vnet_type;
     }
 
     VNET_type
     get_vnet_type(int vc)
     {
-        int vnet = vc/getVCsPerClass();
+        int vnet = vc/getVCsPerVnet();
         return m_vnet_type[vnet];
     }
 
@@ -130,6 +133,9 @@ class GarnetNetwork_d : public BaseGarnetNetwork
     std::vector<NetworkLink_d *> m_link_ptr_vector; // All links in the network
     std::vector<CreditLink_d *> m_creditlink_ptr_vector; // All links in net
     std::vector<NetworkInterface_d *> m_ni_ptr_vector;   // All NI's in Network
+
+    int m_buffers_per_data_vc;
+    int m_buffers_per_ctrl_vc;
 };
 
 inline std::ostream&
index ee7a4a48048d22566043922a78c3842e06cda8a9..a3a00525d9efb9b5d9cfbaf03d1e4b412f03a1fe 100644 (file)
@@ -33,4 +33,5 @@ from BaseGarnetNetwork import BaseGarnetNetwork
 
 class GarnetNetwork_d(BaseGarnetNetwork):
     type = 'GarnetNetwork_d'
-
+    buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel");
+    buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel");
index c88568d2d15a54ed6185c3a9344a64572cc4d56c..b2a01fb46bbb22155060cb36e0e27d90dd27e673 100644 (file)
@@ -35,8 +35,8 @@ from BasicRouter import BasicRouter
 class GarnetRouter_d(BasicRouter):
     type = 'GarnetRouter_d'
     cxx_class = 'Router_d'
-    vcs_per_class = Param.Int(Parent.vcs_per_class,
-                              "virtual channels per message class")
+    vcs_per_vnet = Param.Int(Parent.vcs_per_vnet,
+                              "virtual channels per virtual network")
     virt_nets = Param.Int(Parent.number_of_virtual_networks,
                           "number of virtual networks")
 
index 0dd51019ce30770d1fa2fe0a2c00410a73e1bd4a..558352253c07993c7d1003ee4b90b6a3fce90d5e 100644 (file)
@@ -47,7 +47,7 @@ NetworkInterface_d::NetworkInterface_d(int id, int virtual_networks,
     m_id = id;
     m_net_ptr = network_ptr;
     m_virtual_networks  = virtual_networks;
-    m_vc_per_vnet = m_net_ptr->getVCsPerClass();
+    m_vc_per_vnet = m_net_ptr->getVCsPerVnet();
     m_num_vcs = m_vc_per_vnet*m_virtual_networks;
 
     m_vc_round_robin = 0;
index 38627b109e904d290ec514e5e228bb257e576e53..cc6ec6abf73a8be264762790596417080cfd5822 100644 (file)
@@ -39,9 +39,9 @@ NetworkLink_d::NetworkLink_d(const Params *p)
     m_id = p->link_id;
     linkBuffer = new flitBuffer_d();
     m_link_utilized = 0;
-    m_vc_load.resize(p->vcs_per_class * p->virt_nets);
+    m_vc_load.resize(p->vcs_per_vnet * p->virt_nets);
 
-    for (int i = 0; i < (p->vcs_per_class * p->virt_nets); i++) {
+    for (int i = 0; i < (p->vcs_per_vnet * p->virt_nets); i++) {
         m_vc_load[i] = 0;
     }
 }
index d8f460e2eb4d3b73de15796e8d639b191d3a1a83..62ab5ce07f881ecbdf2e9efbb09ae75f7a33a25e 100644 (file)
@@ -47,7 +47,7 @@ Router_d::Router_d(const Params *p)
     : BasicRouter(p)
 {
     m_virtual_networks = p->virt_nets;
-    m_vc_per_vnet = p->vcs_per_class;
+    m_vc_per_vnet = p->vcs_per_vnet;
     m_num_vcs = m_virtual_networks * m_vc_per_vnet;
 
     m_routing_unit = new RoutingUnit_d(this);
index 4077f30e66906ff690443ce95ec8f1043b208691..591ab4beb006668caa7923dafa3ae64d6dbac2a0 100644 (file)
@@ -37,8 +37,8 @@ class NetworkLink(SimObject):
     type = 'NetworkLink'
     link_id = Param.Int(Parent.link_id, "link id")
     link_latency = Param.Int(Parent.latency, "link latency")
-    vcs_per_class = Param.Int(Parent.vcs_per_class,
-                              "virtual channels per message class")
+    vcs_per_vnet = Param.Int(Parent.vcs_per_vnet,
+                              "virtual channels per virtual network")
     virt_nets = Param.Int(Parent.number_of_virtual_networks,
                           "number of virtual networks")
     channel_width = Param.Int(Parent.bandwidth_factor,
index d403633a802d704197b1c678ecde7c44430d5d68..62ae2dbd6f86ec8293978b856bd446ddb5a22fe1 100644 (file)
@@ -49,6 +49,7 @@ GarnetNetwork::GarnetNetwork(const Params *p)
     : BaseGarnetNetwork(p)
 {
     m_buffer_size = p->buffer_size;
+    m_number_of_pipe_stages = p->number_of_pipe_stages;
 
     // record the routers
     for (vector<BasicRouter*>::const_iterator i = 
@@ -221,9 +222,9 @@ GarnetNetwork::printStats(ostream& out) const
 {
     double average_link_utilization = 0;
     vector<double> average_vc_load;
-    average_vc_load.resize(m_virtual_networks*m_vcs_per_class);
+    average_vc_load.resize(m_virtual_networks*m_vcs_per_vnet);
 
-    for (int i = 0; i < m_virtual_networks*m_vcs_per_class; i++) {
+    for (int i = 0; i < m_virtual_networks*m_vcs_per_vnet; i++) {
         average_vc_load[i] = 0;
     }
 
@@ -236,7 +237,7 @@ GarnetNetwork::printStats(ostream& out) const
             m_link_ptr_vector[i]->getLinkUtilization();
         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);
+            assert(vc_load.size() == m_vcs_per_vnet*m_virtual_networks);
             average_vc_load[j] += vc_load[j];
         }
     }
@@ -246,8 +247,8 @@ GarnetNetwork::printStats(ostream& out) const
            " flits/cycle" <<endl;
     out << "-------------" << endl;
 
-    for (int i = 0; i < m_vcs_per_class*m_virtual_networks; i++) {
-        if (!m_in_use[i/m_vcs_per_class])
+    for (int i = 0; i < m_vcs_per_vnet*m_virtual_networks; i++) {
+        if (!m_in_use[i/m_vcs_per_vnet])
             continue;
 
         average_vc_load[i] = (double(average_vc_load[i]) /
index a19e167a80d74776b11e530fffe4eeb03b40b3bd..6e08330f312596b9ab961a9c6c7003678d2c48bb 100644 (file)
@@ -57,6 +57,7 @@ class GarnetNetwork : public BaseGarnetNetwork
     void init();
 
     int getBufferSize() { return m_buffer_size; }
+    int getNumPipeStages() {return m_number_of_pipe_stages; }
 
     // returns the queue requested for the given component
     MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
@@ -115,6 +116,7 @@ class GarnetNetwork : public BaseGarnetNetwork
     std::vector<NetworkInterface *> m_ni_ptr_vector; // All NI's in Network
 
     int m_buffer_size;
+    int m_number_of_pipe_stages;
 };
 
 inline std::ostream&
index 0844fe3b442b0dbb74a3cb29c2a8f1aea17e3690..7ad61a5ce34778fa8607a33898ced70136b7ad11 100644 (file)
@@ -35,4 +35,4 @@ class GarnetNetwork(BaseGarnetNetwork):
     type = 'GarnetNetwork'
     buffer_size = Param.Int(0,
         "default buffer size; 0 indicates infinite buffering");
-
+    number_of_pipe_stages = Param.Int(4, "router pipeline stages");
index a7ddfb7fb5fa8f1ca7a853d85d4a88d33a0bee54..b626471a60e96bfeec2c0d683fa0f737abdd2e77 100644 (file)
@@ -35,8 +35,8 @@ from BasicRouter import BasicRouter
 class GarnetRouter(BasicRouter):
     type = 'GarnetRouter'
     cxx_class = 'Router'
-    vcs_per_class = Param.Int(Parent.vcs_per_class,
-                              "virtual channels per message class")
+    vcs_per_vnet = Param.Int(Parent.vcs_per_vnet,
+                              "virtual channels per virtual network")
     virt_nets = Param.Int(Parent.number_of_virtual_networks,
                           "number of virtual networks")
 
index df9f91c2de8698d71b72d8677d3bb715b5e5afff..a41c2768dc0a76d94bf7fc63a978907c72c3b63d 100644 (file)
@@ -47,7 +47,7 @@ NetworkInterface::NetworkInterface(int id, int virtual_networks,
     m_id = id;
     m_net_ptr = network_ptr;
     m_virtual_networks  = virtual_networks;
-    m_vc_per_vnet = m_net_ptr->getVCsPerClass();
+    m_vc_per_vnet = m_net_ptr->getVCsPerVnet();
     m_num_vcs = m_vc_per_vnet*m_virtual_networks;
 
     m_vc_round_robin = 0;
index c6584700aa1e74a839601cee1aca01ba775e90fe..3886be69e26ff1b7522b32632f9d5d5c07af7785 100644 (file)
@@ -41,7 +41,7 @@ NetworkLink::NetworkLink(const Params *p)
     m_latency = p->link_latency;
     m_id = p->link_id;
     int num_net = p->virt_nets;
-    int num_vc = p->vcs_per_class;
+    int num_vc = p->vcs_per_vnet;
     m_vc_load.resize(num_net * num_vc);
 
     for (int i = 0; i < num_net * num_vc; i++)
index 51af50b7dd7142cd19c8506e90fbcd22459b96c5..9965d32119a71c9dd75cb6d49493ad66303d2d25 100644 (file)
@@ -44,7 +44,7 @@ Router::Router(const Params *p)
 {
     m_id = p->router_id;
     m_virtual_networks = p->virt_nets;
-    m_vc_per_vnet = p->vcs_per_class;
+    m_vc_per_vnet = p->vcs_per_vnet;
     m_round_robin_inport = 0;
     m_round_robin_start = 0;
     m_num_vcs = m_vc_per_vnet * m_virtual_networks;