gem5 v24.0.0.0
|
#include <Consumer.hh>
Public Member Functions | |
Consumer (ClockedObject *em, Event::Priority ev_prio=Event::Default_Pri) | |
virtual | ~Consumer () |
virtual void | wakeup ()=0 |
virtual void | print (std::ostream &out) const =0 |
virtual void | storeEventInfo (int info) |
bool | alreadyScheduled (Tick time) |
ClockedObject * | getObject () |
void | scheduleEventAbsolute (Tick timeAbs) |
void | scheduleEvent (Cycles timeDelta) |
Private Member Functions | |
void | scheduleNextWakeup () |
void | processCurrentEvent () |
Private Attributes | |
std::set< Tick > | m_wakeup_ticks |
EventFunctionWrapper | m_wakeup_event |
ClockedObject * | em |
Definition at line 61 of file Consumer.hh.
gem5::ruby::Consumer::Consumer | ( | ClockedObject * | em, |
Event::Priority | ev_prio = Event::Default_Pri ) |
Definition at line 49 of file Consumer.cc.
References processCurrentEvent().
|
inlinevirtual |
Definition at line 68 of file Consumer.hh.
|
inline |
Definition at line 76 of file Consumer.hh.
References m_wakeup_ticks.
Referenced by gem5::ruby::garnet::SwitchAllocator::check_for_wakeup().
|
inline |
Definition at line 82 of file Consumer.hh.
References em.
Referenced by gem5::ruby::garnet::NetworkBridge::scheduleFlit().
|
pure virtual |
Implemented in gem5::ruby::AbstractController, gem5::ruby::garnet::CrossbarSwitch, gem5::ruby::garnet::InputUnit, gem5::ruby::garnet::NetworkInterface, gem5::ruby::garnet::NetworkLink, gem5::ruby::garnet::OutputUnit, gem5::ruby::garnet::Router, gem5::ruby::garnet::SwitchAllocator, gem5::ruby::PerfectSwitch, and gem5::ruby::Throttle.
Referenced by gem5::ruby::operator<<().
|
private |
Definition at line 86 of file Consumer.cc.
References gem5::Clocked::clockEdge(), em, m_wakeup_ticks, scheduleNextWakeup(), and wakeup().
Referenced by Consumer().
void gem5::ruby::Consumer::scheduleEvent | ( | Cycles | timeDelta | ) |
Definition at line 56 of file Consumer.cc.
References gem5::Clocked::clockEdge(), em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by gem5::ruby::garnet::NetworkInterface::checkReschedule(), gem5::ruby::MessageBuffer::isReady(), gem5::ruby::PerfectSwitch::operateMessageBuffer(), gem5::ruby::garnet::Router::schedule_wakeup(), gem5::ruby::AbstractController::serviceMemoryQueue(), gem5::ruby::garnet::NetworkBridge::wakeup(), gem5::ruby::garnet::NetworkLink::wakeup(), gem5::ruby::garnet::OutputUnit::wakeup(), and gem5::ruby::Throttle::wakeup().
void gem5::ruby::Consumer::scheduleEventAbsolute | ( | Tick | timeAbs | ) |
Definition at line 63 of file Consumer.cc.
References gem5::Clocked::clockPeriod(), gem5::divCeil(), em, m_wakeup_ticks, and scheduleNextWakeup().
Referenced by gem5::ruby::garnet::NetworkInterface::dequeueCallback(), gem5::ruby::MessageBuffer::enqueue(), gem5::ruby::garnet::InputUnit::increment_credit(), gem5::ruby::garnet::OutputUnit::insert_flit(), gem5::ruby::MessageBuffer::reanalyzeList(), gem5::ruby::MessageBuffer::recycle(), gem5::ruby::garnet::NetworkBridge::scheduleFlit(), gem5::ruby::garnet::NetworkInterface::scheduleFlit(), gem5::ruby::TimerTable::set(), gem5::ruby::garnet::NetworkInterface::wakeup(), and gem5::ruby::garnet::NetworkLink::wakeup().
|
private |
Definition at line 71 of file Consumer.cc.
References gem5::Clocked::clockEdge(), em, m_wakeup_event, m_wakeup_ticks, gem5::EventManager::reschedule(), gem5::EventManager::schedule(), gem5::Event::scheduled(), and gem5::Event::when().
Referenced by processCurrentEvent(), scheduleEvent(), and scheduleEventAbsolute().
|
inlinevirtual |
Reimplemented in gem5::ruby::PerfectSwitch.
Definition at line 73 of file Consumer.hh.
Referenced by gem5::ruby::MessageBuffer::enqueue().
|
pure virtual |
Implemented in gem5::ruby::AbstractController, gem5::ruby::garnet::CrossbarSwitch, gem5::ruby::garnet::InputUnit, gem5::ruby::garnet::NetworkBridge, gem5::ruby::garnet::NetworkInterface, gem5::ruby::garnet::NetworkLink, gem5::ruby::garnet::OutputUnit, gem5::ruby::garnet::Router, gem5::ruby::garnet::SwitchAllocator, gem5::ruby::PerfectSwitch, and gem5::ruby::Throttle.
Referenced by processCurrentEvent().
|
private |
Definition at line 93 of file Consumer.hh.
Referenced by getObject(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), and scheduleNextWakeup().
|
private |
Definition at line 92 of file Consumer.hh.
Referenced by scheduleNextWakeup().
|
private |
Definition at line 91 of file Consumer.hh.
Referenced by alreadyScheduled(), processCurrentEvent(), scheduleEvent(), scheduleEventAbsolute(), and scheduleNextWakeup().