changeset f5335ac67f41 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=f5335ac67f41
description:
ruby: replace Time with Cycles in garnet fixed and flexible
diffstat:
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc | 6 +-
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh | 9 +-
src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh | 18 ++--
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc | 9 +-
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh | 3 +-
src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh | 6 +-
src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc | 2 +-
src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh | 6 +-
src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc | 6 +-
src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc | 2 +-
src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc | 12 +-
src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh | 22 ++--
src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc | 4 +-
src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh | 4 +-
src/mem/ruby/network/garnet/fixed-pipeline/flit_d.cc | 4 +-
src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh | 41
+++------
src/mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/InVcState.cc | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/InVcState.hh | 10 +-
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc | 18 ++-
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.cc | 6 +-
src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.hh | 10 +-
src/mem/ruby/network/garnet/flexible-pipeline/Router.cc | 20 ++--
src/mem/ruby/network/garnet/flexible-pipeline/Router.hh | 4 +-
src/mem/ruby/network/garnet/flexible-pipeline/flit.cc | 12 +-
src/mem/ruby/network/garnet/flexible-pipeline/flit.hh | 18 ++--
src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.cc | 4 +-
src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh | 4 +-
src/mem/ruby/network/simple/Throttle.hh | 2 +-
32 files changed, 144 insertions(+), 148 deletions(-)
diffs (truncated from 1052 to 300 lines):
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/BaseGarnetNetwork.cc
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc Sun Feb 10 21:43:08
2013 -0600
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc Sun Feb 10 21:43:09
2013 -0600
@@ -36,7 +36,7 @@
using namespace std;
BaseGarnetNetwork::BaseGarnetNetwork(const Params *p)
- : Network(p)
+ : Network(p), m_ruby_start(0)
{
m_ni_flit_size = p->ni_flit_size;
m_vcs_per_vnet = p->vcs_per_vnet;
@@ -44,8 +44,6 @@
if (m_enable_fault_model)
fault_model = p->fault_model;
- m_ruby_start = 0;
-
// Currently Garnet only supports uniform bandwidth for all
// links and network interfaces.
for (std::vector<BasicExtLink*>::const_iterator i =
@@ -130,7 +128,7 @@
m_ruby_start = curCycle();
}
-Time
+Cycles
BaseGarnetNetwork::getRubyStartTime()
{
return m_ruby_start;
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
--- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh Sun Feb 10 21:43:08
2013 -0600
+++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh Sun Feb 10 21:43:09
2013 -0600
@@ -40,7 +40,6 @@
#include "mem/ruby/network/Network.hh"
#include "mem/ruby/network/fault_model/FaultModel.hh"
#include "params/BaseGarnetNetwork.hh"
-#include "math.h"
class BaseGarnetNetwork : public Network
{
@@ -58,13 +57,13 @@
void increment_received_flits(int vnet) { m_flits_received[vnet]++; }
void
- increment_network_latency(Time latency, int vnet)
+ increment_network_latency(Cycles latency, int vnet)
{
m_network_latency[vnet] += latency;
}
void
- increment_queueing_latency(Time latency, int vnet)
+ increment_queueing_latency(Cycles latency, int vnet)
{
m_queueing_latency[vnet] += latency;
}
@@ -81,7 +80,7 @@
virtual void checkNetworkAllocation(NodeID id, bool ordered,
int network_num, std::string vnet_type) = 0;
- Time getRubyStartTime();
+ Cycles getRubyStartTime();
void clearStats();
void printStats(std::ostream& out) const;
void printPerformanceStats(std::ostream& out) const;
@@ -104,7 +103,7 @@
std::vector<std::vector<MessageBuffer*> > m_toNetQueues;
std::vector<std::vector<MessageBuffer*> > m_fromNetQueues;
- Time m_ruby_start;
+ Cycles m_ruby_start;
};
#endif // __MEM_RUBY_NETWORK_GARNET_BASEGARNETNETWORK_HH__
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh Sun Feb 10
21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh Sun Feb 10
21:43:09 2013 -0600
@@ -56,18 +56,18 @@
inline int get_inlink_id() { return m_in_link->get_id(); }
inline void
- set_vc_state(VC_state_type state, int vc, Time curTime)
+ set_vc_state(VC_state_type state, int vc, Cycles curTime)
{
m_vcs[vc]->set_state(state, curTime);
}
inline void
- set_enqueue_time(int invc, Time time)
+ set_enqueue_time(int invc, Cycles time)
{
m_vcs[invc]->set_enqueue_time(time);
}
- inline Time
+ inline Cycles
get_enqueue_time(int invc)
{
return m_vcs[invc]->get_enqueue_time();
@@ -86,7 +86,7 @@
}
inline void
- increment_credit(int in_vc, bool free_signal, Time curTime)
+ increment_credit(int in_vc, bool free_signal, Cycles curTime)
{
flit_d *t_flit = new flit_d(in_vc, free_signal, curTime);
creditQueue->insert(t_flit);
@@ -100,14 +100,14 @@
}
inline void
- updateRoute(int vc, int outport, Time curTime)
+ updateRoute(int vc, int outport, Cycles curTime)
{
m_vcs[vc]->set_outport(outport);
m_vcs[vc]->set_state(VC_AB_, curTime);
}
inline void
- grant_vc(int in_vc, int out_vc, Time curTime)
+ grant_vc(int in_vc, int out_vc, Cycles curTime)
{
m_vcs[in_vc]->grant_vc(out_vc, curTime);
}
@@ -125,20 +125,20 @@
}
inline bool
- need_stage(int vc, VC_state_type state, flit_stage stage, Time curTime)
+ need_stage(int vc, VC_state_type state, flit_stage stage, Cycles curTime)
{
return m_vcs[vc]->need_stage(state, stage, curTime);
}
inline bool
need_stage_nextcycle(int vc, VC_state_type state, flit_stage stage,
- Time curTime)
+ Cycles curTime)
{
return m_vcs[vc]->need_stage_nextcycle(state, stage, curTime);
}
inline bool
- isReady(int invc, Time curTime)
+ isReady(int invc, Cycles curTime)
{
return m_vcs[invc]->isReady(curTime);
}
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Sun Feb
10 21:43:09 2013 -0600
@@ -255,9 +255,10 @@
int vnet = t_flit->get_vnet();
m_net_ptr->increment_received_flits(vnet);
- int network_delay = m_net_ptr->curCycle() -
- t_flit->get_enqueue_time();
- int queueing_delay = t_flit->get_delay();
+ Cycles network_delay = m_net_ptr->curCycle() -
+ t_flit->get_enqueue_time();
+ Cycles queueing_delay = t_flit->get_delay();
+
m_net_ptr->increment_network_latency(network_delay, vnet);
m_net_ptr->increment_queueing_latency(queueing_delay, vnet);
delete t_flit;
@@ -321,7 +322,7 @@
m_out_vc_state[vc]->decrement_credit();
// Just removing the flit
flit_d *t_flit = m_ni_buffers[vc]->getTopFlit();
- t_flit->set_time(m_net_ptr->curCycle() + 1);
+ t_flit->set_time(m_net_ptr->curCycle() + Cycles(1));
outSrcQueue->insert(t_flit);
// schedule the out link
outNetLink->scheduleEvent(Cycles(1));
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh Sun Feb
10 21:43:09 2013 -0600
@@ -62,7 +62,8 @@
double calculate_power();
- inline bool isReady(Time curTime) { return linkBuffer->isReady(curTime); }
+ inline bool isReady(Cycles curTime)
+ { return linkBuffer->isReady(curTime); }
inline flit_d* peekLink() { return linkBuffer->peekTopFlit(); }
inline flit_d* consumeLink() { return linkBuffer->getTopFlit(); }
void init_net_ptr(GarnetNetwork_d* net_ptr)
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh Sun Feb
10 21:43:09 2013 -0600
@@ -46,12 +46,12 @@
void set_inport(int port) { m_in_port = port; }
void set_invc(int vc) { m_in_vc = vc; }
inline bool
- isInState(VC_state_type state, Time request_time)
+ isInState(VC_state_type state, Cycles request_time)
{
return ((m_vc_state == state) && (request_time >= m_time) );
}
inline void
- setState(VC_state_type state, Time time)
+ setState(VC_state_type state, Cycles time)
{
m_vc_state = state;
m_time = time;
@@ -63,7 +63,7 @@
private:
GarnetNetwork_d *m_network_ptr;
int m_id ;
- Time m_time;
+ Cycles m_time;
VC_state_type m_vc_state;
int m_in_port;
int m_in_vc;
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc Sun Feb
10 21:43:09 2013 -0600
@@ -102,7 +102,7 @@
void
OutputUnit_d::update_vc(int vc, int in_port, int in_vc)
{
- m_outvc_state[vc]->setState(ACTIVE_, m_router->curCycle() + 1);
+ m_outvc_state[vc]->setState(ACTIVE_, m_router->curCycle() + Cycles(1));
m_outvc_state[vc]->set_inport(in_port);
m_outvc_state[vc]->set_invc(in_vc);
m_router->update_incredit(in_port, in_vc,
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh
--- a/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh Sun Feb
10 21:43:09 2013 -0600
@@ -69,13 +69,13 @@
}
inline void
- set_vc_state(VC_state_type state, int vc, Time curTime)
+ set_vc_state(VC_state_type state, int vc, Cycles curTime)
{
- m_outvc_state[vc]->setState(state, curTime + 1);
+ m_outvc_state[vc]->setState(state, curTime + Cycles(1));
}
inline bool
- is_vc_idle(int vc, Time curTime)
+ is_vc_idle(int vc, Cycles curTime)
{
return (m_outvc_state[vc]->isInState(IDLE_, curTime));
}
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc Sun Feb
10 21:43:09 2013 -0600
@@ -181,7 +181,8 @@
t_flit->advance_stage(ST_, m_router->curCycle());
t_flit->set_vc(outvc);
t_flit->set_outport(outport);
- t_flit->set_time(m_router->curCycle() + 1);
+ t_flit->set_time(m_router->curCycle() + Cycles(1));
+
m_output_unit[outport]->decrement_credit(outvc);
m_router->update_sw_winner(inport, t_flit);
m_global_arbiter_activity++;
@@ -200,7 +201,8 @@
m_input_unit[inport]->set_vc_state(IDLE_, invc,
m_router->curCycle());
- m_input_unit[inport]->set_enqueue_time(invc, INFINITE_);
+ m_input_unit[inport]->set_enqueue_time(invc,
+ Cycles(INFINITE_));
} else {
// Send a credit back
// but do not indicate that the VC is idle
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc Sun Feb 10
21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc Sun Feb 10
21:43:09 2013 -0600
@@ -74,7 +74,7 @@
if (t_flit->is_stage(ST_, m_router->curCycle())) {
int outport = t_flit->get_outport();
t_flit->advance_stage(LT_, m_router->curCycle());
- t_flit->set_time(m_router->curCycle() + 1);
+ t_flit->set_time(m_router->curCycle() + Cycles(1));
// This will take care of waking up the Network Link
m_output_unit[outport]->insert_flit(t_flit);
diff -r 66b3ed9a176e -r f5335ac67f41
src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc
--- a/src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc Sun Feb
10 21:43:08 2013 -0600
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc Sun Feb
10 21:43:09 2013 -0600
@@ -30,13 +30,13 @@
#include "mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh"
-VirtualChannel_d::VirtualChannel_d(int id, Time curTime)
+VirtualChannel_d::VirtualChannel_d(int id, Cycles curTime)
+ : m_enqueue_time(INFINITE_)
{
m_id = id;
m_input_buffer = new flitBuffer_d();
m_vc_state.first = IDLE_;
m_vc_state.second = curTime;
- m_enqueue_time = INFINITE_;
}
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev