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
|
||||
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()
|
||||
|
||||
@@ -65,12 +65,17 @@ class NetworkLink_d : public SimObject, public Consumer
|
||||
inline bool isReady() { return linkBuffer->isReady(); }
|
||||
inline flit_d* peekLink() { return linkBuffer->peekTopFlit(); }
|
||||
inline flit_d* consumeLink() { return linkBuffer->getTopFlit(); }
|
||||
void init_net_ptr(GarnetNetwork_d* net_ptr)
|
||||
{
|
||||
m_net_ptr = net_ptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
int m_id;
|
||||
int m_latency;
|
||||
|
||||
int channel_width;
|
||||
|
||||
GarnetNetwork_d *m_net_ptr;
|
||||
flitBuffer_d *linkBuffer;
|
||||
Consumer *link_consumer;
|
||||
flitBuffer_d *link_srcQueue;
|
||||
|
||||
@@ -245,13 +245,9 @@ NetworkLink_d::calculate_power()
|
||||
channel_width /* channel width */,
|
||||
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
|
||||
double sim_cycles = 0.0;
|
||||
// (double)(g_eventQueue_ptr->getTime() - m_net_ptr->getRubyStartTime());
|
||||
double sim_cycles =
|
||||
(double)(g_eventQueue_ptr->getTime() - m_net_ptr->getRubyStartTime());
|
||||
|
||||
double Plink_dyn = orion_link_ptr->calc_dynamic_energy(channel_width/2)*
|
||||
(m_link_utilized/ sim_cycles)*freq_Hz;
|
||||
|
||||
Reference in New Issue
Block a user