ruby: garnet: refactor code in network links
authorNilay Vaish <nilay@cs.wisc.edu>
Wed, 23 Sep 2015 16:23:11 +0000 (11:23 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Wed, 23 Sep 2015 16:23:11 +0000 (11:23 -0500)
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh
src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc

index 32fce83ce04c1f9d3380ec0848c0bf854c342e49..8d9acd4333b1572d0ede03ebf7b06672f34db8f4 100644 (file)
 #include "mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh"
 
 NetworkLink_d::NetworkLink_d(const Params *p)
-    : ClockedObject(p), Consumer(this)
+    : ClockedObject(p), Consumer(this), m_id(p->link_id),
+      m_latency(p->link_latency),  channel_width(p->channel_width),
+      linkBuffer(new flitBuffer_d()), link_consumer(nullptr),
+      link_srcQueue(nullptr), m_link_utilized(0),
+      m_vc_load(p->vcs_per_vnet * p->virt_nets)
 {
-    m_latency = p->link_latency;
-    channel_width = p->channel_width;
-    m_id = p->link_id;
-    linkBuffer = new flitBuffer_d();
-    m_link_utilized = 0;
-    m_vc_load.resize(p->vcs_per_vnet * p->virt_nets);
-
-    for (int i = 0; i < (p->vcs_per_vnet * p->virt_nets); i++) {
-        m_vc_load[i] = 0;
-    }
 }
 
 NetworkLink_d::~NetworkLink_d()
index 22ca27a7ec98890d27009ae6db3760e764a544e6..ad9fef2f4ded1b6e48fde711307a892a6e48306b 100644 (file)
@@ -51,8 +51,8 @@ class NetworkLink_d : public ClockedObject, public Consumer
 
     void setLinkConsumer(Consumer *consumer);
     void setSourceQueue(flitBuffer_d *srcQueue);
-    void print(std::ostream& out) const{}
-    int get_id(){return m_id;}
+    void print(std::ostream& out) const {}
+    int get_id() const { return m_id; }
     void wakeup();
 
     unsigned int getLinkUtilization() const { return m_link_utilized; }
@@ -67,9 +67,9 @@ class NetworkLink_d : public ClockedObject, public Consumer
     uint32_t functionalWrite(Packet *);
 
   private:
-    int m_id;
-    Cycles m_latency;
-    int channel_width;
+    const int m_id;
+    const Cycles m_latency;
+    const int channel_width;
 
     flitBuffer_d *linkBuffer;
     Consumer *link_consumer;
index f007422bd7691cbae20d90909704f92fa5043dc2..f445b5d075fd3347262dbd211ef0153e44eec235 100644 (file)
 #include "mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh"
 
 NetworkLink::NetworkLink(const Params *p)
-    : ClockedObject(p), Consumer(this)
+    : ClockedObject(p), Consumer(this), m_id(p->link_id),
+      m_latency(p->link_latency), m_in_port(0), m_out_port(0),
+      linkBuffer(new flitBuffer()), link_consumer(nullptr),
+      link_source(nullptr), link_srcQueue(nullptr),  m_link_utilized(0),
+      m_vc_load(p->virt_nets * p->vcs_per_vnet)
 {
-    linkBuffer = new flitBuffer();
-    m_in_port = 0;
-    m_out_port = 0;
-    m_link_utilized = 0;
-    m_latency = p->link_latency;
-    m_id = p->link_id;
-
-    int num_net = p->virt_nets;
-    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++)
-        m_vc_load[i] = 0;
 }
 
 NetworkLink::~NetworkLink()