diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -47,7 +47,7 @@ public: VCallocator_d(Router_d *router); void init(); - void wakeup(); + void wakeup(Tick curTime); void check_for_wakeup(); void clear_request_vector(); int get_vnet(int invc); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -110,7 +110,7 @@ } void -VCallocator_d::wakeup() +VCallocator_d::wakeup(Tick curTime) { arbitrate_invcs(); // First stage of allocation arbitrate_outvcs(); // Second stage of allocation diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh Sun Aug 09 12:59:16 2015 -0500 @@ -58,7 +58,7 @@ void addNode(std::vector &inNode, std::vector &outNode); - void wakeup(); + void wakeup(Tick curTime); void grant_vc(int out_port, int vc, Cycles grant_time); void release_vc(int out_port, int vc, Cycles release_time); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc Sun Aug 09 12:59:16 2015 -0500 @@ -238,7 +238,7 @@ */ void -NetworkInterface::wakeup() +NetworkInterface::wakeup(Tick curTime) { MsgPtr msg_ptr; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh Sun Aug 09 12:59:16 2015 -0500 @@ -62,7 +62,7 @@ int get_id() const { return m_id; } void setInPort(int port); void setOutPort(int port); - void wakeup(); + void wakeup(Tick curTime); bool isReady(); void grant_vc_link(int vc, Cycles grant_time); void release_vc_link(int vc, Cycles release_time); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc Sun Aug 09 12:59:16 2015 -0500 @@ -115,7 +115,7 @@ } void -NetworkLink::wakeup() +NetworkLink::wakeup(Tick curTime) { if (!link_srcQueue->isReady(curCycle())) return; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/Router.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh Sun Aug 09 12:59:16 2015 -0500 @@ -58,7 +58,7 @@ void addInPort(NetworkLink *in_link); void addOutPort(NetworkLink *out_link, const NetDest& routing_table_entry, int link_weight); - void wakeup(); + void wakeup(Tick curTime); void request_vc(int in_vc, int in_port, NetDest destination, Cycles request_time); bool isBufferNotFull(int vc, int inport); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/Router.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc Sun Aug 09 12:59:16 2015 -0500 @@ -299,7 +299,7 @@ } void -Router::wakeup() +Router::wakeup(Tick currTick) { flit *t_flit; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh Sun Aug 09 12:59:16 2015 -0500 @@ -45,7 +45,7 @@ ~VCarbiter() {} void printToStream(std::ostream& out) const {} - void wakeup(); + void wakeup(Tick curTime); private: Router *m_router; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc Sun Aug 09 12:59:16 2015 -0500 @@ -38,7 +38,7 @@ } void -VCarbiter::wakeup() +VCarbiter::wakeup(Tick curTime) { m_router->vc_arbitrate(); } diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/simple/PerfectSwitch.hh --- a/src/mem/ruby/network/simple/PerfectSwitch.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/simple/PerfectSwitch.hh Sun Aug 09 12:59:16 2015 -0500 @@ -73,7 +73,7 @@ int getInLinks() const { return m_in.size(); } int getOutLinks() const { return m_out.size(); } - void wakeup(); + void wakeup(Tick curTime); void storeEventInfo(int info); void clearStats(); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/simple/PerfectSwitch.cc --- a/src/mem/ruby/network/simple/PerfectSwitch.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/simple/PerfectSwitch.cc Sun Aug 09 12:59:16 2015 -0500 @@ -280,7 +280,7 @@ } void -PerfectSwitch::wakeup() +PerfectSwitch::wakeup(Tick curTime) { // Give the highest numbered link priority most of the time m_wakeups_wo_switch++; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/simple/Throttle.hh --- a/src/mem/ruby/network/simple/Throttle.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/simple/Throttle.hh Sun Aug 09 12:59:16 2015 -0500 @@ -64,7 +64,7 @@ void addLinks(const std::vector& in_vec, const std::vector& out_vec); - void wakeup(); + void wakeup(Tick curTime); // The average utilization (a fraction) since last clearStats() const Stats::Scalar & getUtilization() const diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/simple/Throttle.cc --- a/src/mem/ruby/network/simple/Throttle.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/simple/Throttle.cc Sun Aug 09 12:59:16 2015 -0500 @@ -155,7 +155,7 @@ } void -Throttle::wakeup() +Throttle::wakeup(Tick curTime) { // Limits the number of message sent to a limited number of bytes/cycle. assert(getLinkBandwidth() > 0); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/slicc_interface/AbstractController.hh --- a/src/mem/ruby/slicc_interface/AbstractController.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/slicc_interface/AbstractController.hh Sun Aug 09 12:59:16 2015 -0500 @@ -79,7 +79,7 @@ virtual AccessPermission getAccessPermission(const Addr &addr) = 0; virtual void printToStream(std::ostream & out) const = 0; - virtual void wakeup() = 0; + virtual void wakeup(Tick curTime) = 0; virtual void resetStats() = 0; virtual void regStats(); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/structures/RubyMemoryControl.hh --- a/src/mem/ruby/structures/RubyMemoryControl.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/structures/RubyMemoryControl.hh Sun Aug 09 12:59:16 2015 -0500 @@ -61,7 +61,7 @@ virtual BaseSlavePort& getSlavePort(const std::string& if_name, PortID idx = InvalidPortID); DrainState drain() M5_ATTR_OVERRIDE; - void wakeup(); + void wakeup(Tick curTime); void setDescription(const std::string& name) { m_description = name; }; std::string getDescription() { return m_description; }; @@ -192,7 +192,7 @@ mem_cntrl = _mem_cntrl; } private: - void process() { mem_cntrl->wakeup(); } + void process() { mem_cntrl->wakeup(when()); } RubyMemoryControl* mem_cntrl; }; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/structures/RubyMemoryControl.cc --- a/src/mem/ruby/structures/RubyMemoryControl.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/structures/RubyMemoryControl.cc Sun Aug 09 12:59:16 2015 -0500 @@ -645,7 +645,7 @@ // wakeup: This function is called once per memory controller clock cycle. void -RubyMemoryControl::wakeup() +RubyMemoryControl::wakeup(Tick curTime) { DPRINTF(RubyMemory, "MemoryController wakeup\n"); // execute everything diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/slicc/symbols/StateMachine.py --- a/src/mem/slicc/symbols/StateMachine.py Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/slicc/symbols/StateMachine.py Sun Aug 09 12:59:16 2015 -0500 @@ -308,7 +308,7 @@ void initNetQueues(); void printToStream(std::ostream& out) const; - void wakeup(); + void wakeup(Tick curTime); void resetStats(); void regStats(); void collateStats(); @@ -1069,7 +1069,7 @@ using namespace std; void -${ident}_Controller::wakeup() +${ident}_Controller::wakeup(Tick curTime) { int counter = 0; while (true) { diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/common/Consumer.hh --- a/src/mem/ruby/common/Consumer.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/common/Consumer.hh Sun Aug 09 12:59:16 2015 -0500 @@ -52,7 +52,7 @@ ~Consumer() { } - virtual void wakeup() = 0; + virtual void wakeup(Tick current_time) = 0; virtual void printToStream(std::ostream& out) const = 0; virtual void storeEventInfo(int info) {} @@ -85,7 +85,7 @@ { } - void process() { m_consumer_ptr->wakeup(); } + void process() { m_consumer_ptr->wakeup(when()); } private: Consumer* m_consumer_ptr; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -48,7 +48,7 @@ InputUnit_d(int id, Router_d *router); ~InputUnit_d(); - void wakeup(); + void wakeup(Tick curTime); flitBuffer_d* getCreditQueue() { return creditQueue; } void printToStream(std::ostream& out) const {}; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -64,7 +64,7 @@ } void -InputUnit_d::wakeup() +InputUnit_d::wakeup(Tick curTime) { flit_d *t_flit; if (m_in_link->isReady(m_router->curCycle())) { diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -58,7 +58,7 @@ void addInPort(NetworkLink_d *in_link, CreditLink_d *credit_link); void addOutPort(NetworkLink_d *out_link, CreditLink_d *credit_link); - void wakeup(); + void wakeup(Tick curTime); void addNode(std::vector &inNode, std::vector &outNode); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -217,7 +217,7 @@ */ void -NetworkInterface_d::wakeup() +NetworkInterface_d::wakeup(Tick curTime) { DPRINTF(RubyNetwork, "m_id: %d woke up at time: %lld", m_id, curCycle()); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -53,7 +53,7 @@ void setSourceQueue(flitBuffer_d *srcQueue); void printToStream(std::ostream& out) const {} int get_id(){return m_id;} - void wakeup(); + void wakeup(Tick curTime); unsigned int getLinkUtilization() const { return m_link_utilized; } const std::vector & getVcLoad() const { return m_vc_load; } diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -64,7 +64,7 @@ } void -NetworkLink_d::wakeup() +NetworkLink_d::wakeup(Tick curTime) { if (link_srcQueue->isReady(curCycle())) { flit_d *t_flit = link_srcQueue->getTopFlit(); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -49,7 +49,7 @@ ~OutputUnit_d(); void set_out_link(NetworkLink_d *link); void set_credit_link(CreditLink_d *credit_link); - void wakeup(); + void wakeup(Tick curTime); flitBuffer_d* getOutQueue(); void update_vc(int vc, int in_port, int in_vc); void printToStream(std::ostream& out) const {}; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -64,7 +64,7 @@ } void -OutputUnit_d::wakeup() +OutputUnit_d::wakeup(Tick curTime) { if (m_credit_link->isReady(m_router->curCycle())) { flit_d *t_flit = m_credit_link->consumeLink(); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -133,13 +133,13 @@ void Router_d::call_sw_alloc() { - m_sw_alloc->wakeup(); + m_sw_alloc->wakeup(clockEdge()); } void Router_d::call_switch() { - m_switch->wakeup(); + m_switch->wakeup(clockEdge()); } void diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -45,7 +45,7 @@ { public: SWallocator_d(Router_d *router); - void wakeup(); + void wakeup(Tick curTime); void init(); void clear_request_vector(); void check_for_wakeup(); diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -75,7 +75,7 @@ } void -SWallocator_d::wakeup() +SWallocator_d::wakeup(Tick curTime) { arbitrate_inports(); // First stage of allocation arbitrate_outports(); // Second stage of allocation diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh Sun Aug 09 12:59:16 2015 -0500 @@ -46,7 +46,7 @@ public: Switch_d(Router_d *router); ~Switch_d(); - void wakeup(); + void wakeup(Tick curTime); void init(); void check_for_wakeup(); void printToStream(std::ostream& out) const {}; diff -r b2ee8d015fb6 -r 95ddf324be85 src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc Sun Aug 09 12:59:16 2015 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc Sun Aug 09 12:59:16 2015 -0500 @@ -62,7 +62,7 @@ } void -Switch_d::wakeup() +Switch_d::wakeup(Tick curTime) { DPRINTF(RubyNetwork, "Switch woke up at time: %lld\n", m_router->curCycle());