garnet: added network ptr to links to be used by orion
This commit is contained in:
@@ -90,6 +90,13 @@ GarnetNetwork_d::init()
|
|||||||
}
|
}
|
||||||
// false because this isn't a reconfiguration
|
// false because this isn't a reconfiguration
|
||||||
m_topology_ptr->createLinks(this, false);
|
m_topology_ptr->createLinks(this, false);
|
||||||
|
|
||||||
|
// initialize the link's network pointers
|
||||||
|
for (vector<NetworkLink_d*>::const_iterator i = m_link_ptr_vector.begin();
|
||||||
|
i != m_link_ptr_vector.end(); ++i) {
|
||||||
|
NetworkLink_d* net_link = safe_cast<NetworkLink_d*>(*i);
|
||||||
|
net_link->init_net_ptr(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GarnetNetwork_d::~GarnetNetwork_d()
|
GarnetNetwork_d::~GarnetNetwork_d()
|
||||||
|
|||||||
@@ -65,12 +65,17 @@ class NetworkLink_d : public SimObject, public Consumer
|
|||||||
inline bool isReady() { return linkBuffer->isReady(); }
|
inline bool isReady() { return linkBuffer->isReady(); }
|
||||||
inline flit_d* peekLink() { return linkBuffer->peekTopFlit(); }
|
inline flit_d* peekLink() { return linkBuffer->peekTopFlit(); }
|
||||||
inline flit_d* consumeLink() { return linkBuffer->getTopFlit(); }
|
inline flit_d* consumeLink() { return linkBuffer->getTopFlit(); }
|
||||||
|
void init_net_ptr(GarnetNetwork_d* net_ptr)
|
||||||
|
{
|
||||||
|
m_net_ptr = net_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int m_id;
|
int m_id;
|
||||||
int m_latency;
|
int m_latency;
|
||||||
|
|
||||||
int channel_width;
|
int channel_width;
|
||||||
|
|
||||||
|
GarnetNetwork_d *m_net_ptr;
|
||||||
flitBuffer_d *linkBuffer;
|
flitBuffer_d *linkBuffer;
|
||||||
Consumer *link_consumer;
|
Consumer *link_consumer;
|
||||||
flitBuffer_d *link_srcQueue;
|
flitBuffer_d *link_srcQueue;
|
||||||
|
|||||||
@@ -245,13 +245,9 @@ NetworkLink_d::calculate_power()
|
|||||||
channel_width /* channel width */,
|
channel_width /* channel width */,
|
||||||
orion_cfg_ptr);
|
orion_cfg_ptr);
|
||||||
|
|
||||||
//
|
|
||||||
// NOTE! I believe this calculation will be moved to McPAT, thus this
|
|
||||||
// reference to the net_ptr can be removed
|
|
||||||
//
|
|
||||||
// // Dynamic Power
|
// // Dynamic Power
|
||||||
double sim_cycles = 0.0;
|
double sim_cycles =
|
||||||
// (double)(g_eventQueue_ptr->getTime() - m_net_ptr->getRubyStartTime());
|
(double)(g_eventQueue_ptr->getTime() - m_net_ptr->getRubyStartTime());
|
||||||
|
|
||||||
double Plink_dyn = orion_link_ptr->calc_dynamic_energy(channel_width/2)*
|
double Plink_dyn = orion_link_ptr->calc_dynamic_energy(channel_width/2)*
|
||||||
(m_link_utilized/ sim_cycles)*freq_Hz;
|
(m_link_utilized/ sim_cycles)*freq_Hz;
|
||||||
|
|||||||
Reference in New Issue
Block a user