gem5
|
#include <PerfectSwitch.hh>
Public Member Functions | |
PerfectSwitch (SwitchID sid, Switch *, uint32_t) | |
~PerfectSwitch () | |
std::string | name () |
void | init (SimpleNetwork *) |
void | addInPort (const std::vector< MessageBuffer * > &in) |
void | addOutPort (const std::vector< MessageBuffer * > &out, const NetDest &routing_table_entry) |
int | getInLinks () const |
int | getOutLinks () const |
void | wakeup () |
void | storeEventInfo (int info) |
void | clearStats () |
void | collateStats () |
void | print (std::ostream &out) const |
Public Member Functions inherited from Consumer | |
Consumer (ClockedObject *_em) | |
virtual | ~Consumer () |
bool | alreadyScheduled (Tick time) |
void | insertScheduledWakeupTime (Tick time) |
void | scheduleEventAbsolute (Tick timeAbs) |
Private Member Functions | |
PerfectSwitch (const PerfectSwitch &obj) | |
PerfectSwitch & | operator= (const PerfectSwitch &obj) |
void | operateVnet (int vnet) |
void | operateMessageBuffer (MessageBuffer *b, int incoming, int vnet) |
Private Attributes | |
const SwitchID | m_switch_id |
Switch *const | m_switch |
std::vector< std::vector < MessageBuffer * > > | m_in |
std::vector< std::vector < MessageBuffer * > > | m_out |
std::vector< NetDest > | m_routing_table |
std::vector< LinkOrder > | m_link_order |
uint32_t | m_virtual_networks |
int | m_round_robin_start |
int | m_wakeups_wo_switch |
SimpleNetwork * | m_network_ptr |
std::vector< int > | m_pending_message_count |
Additional Inherited Members | |
Protected Member Functions inherited from Consumer | |
void | scheduleEvent (Cycles timeDelta) |
Definition at line 59 of file PerfectSwitch.hh.
Definition at line 52 of file PerfectSwitch.cc.
References m_round_robin_start, m_virtual_networks, and m_wakeups_wo_switch.
PerfectSwitch::~PerfectSwitch | ( | ) |
Definition at line 100 of file PerfectSwitch.cc.
|
private |
void PerfectSwitch::addInPort | ( | const std::vector< MessageBuffer * > & | in | ) |
Definition at line 71 of file PerfectSwitch.cc.
References ArmISA::i, and m_in.
Referenced by Switch::addInPort().
void PerfectSwitch::addOutPort | ( | const std::vector< MessageBuffer * > & | out, |
const NetDest & | routing_table_entry | ||
) |
Definition at line 86 of file PerfectSwitch.cc.
References MipsISA::l, LinkOrder::m_link, m_link_order, m_out, m_routing_table, and LinkOrder::m_value.
Referenced by Switch::addOutPort().
void PerfectSwitch::clearStats | ( | ) |
Definition at line 316 of file PerfectSwitch.cc.
Referenced by Switch::resetStats().
void PerfectSwitch::collateStats | ( | ) |
Definition at line 320 of file PerfectSwitch.cc.
Referenced by Switch::collateStats().
|
inline |
Definition at line 73 of file PerfectSwitch.hh.
References m_in.
|
inline |
Definition at line 74 of file PerfectSwitch.hh.
References m_out.
void PerfectSwitch::init | ( | SimpleNetwork * | network_ptr | ) |
Definition at line 61 of file PerfectSwitch.cc.
References ArmISA::i, m_network_ptr, m_pending_message_count, and m_virtual_networks.
Referenced by Switch::init().
|
inline |
Definition at line 65 of file PerfectSwitch.hh.
References csprintf(), and m_switch_id.
|
private |
Definition at line 139 of file PerfectSwitch.cc.
References NetDest::AND(), Clocked::clockEdge(), NetDest::count(), Clocked::cyclesToTicks(), MessageBuffer::dequeue(), DPRINTF, SimpleNetwork::getAdaptiveRouting(), Message::getDestination(), ArmISA::i, NetDest::intersectionIsNotEmpty(), MessageBuffer::isReady(), SimpleNetwork::isVNetOrdered(), m_link_order, m_network_ptr, m_out, m_pending_message_count, m_routing_table, m_switch, m_virtual_networks, MessageBuffer::peekMsgPtr(), Random::random(), random_mt, NetDest::removeNetDest(), Consumer::scheduleEvent(), and ArmISA::v.
Referenced by operateVnet().
|
private |
Definition at line 105 of file PerfectSwitch.cc.
References m_in, m_pending_message_count, m_round_robin_start, operateMessageBuffer(), and X86ISA::size().
Referenced by wakeup().
|
private |
|
virtual |
Implements Consumer.
Definition at line 326 of file PerfectSwitch.cc.
References m_switch_id.
Referenced by operator<<().
|
virtual |
Reimplemented from Consumer.
Definition at line 310 of file PerfectSwitch.cc.
References m_pending_message_count.
|
virtual |
Implements Consumer.
Definition at line 285 of file PerfectSwitch.cc.
References m_virtual_networks, m_wakeups_wo_switch, operateVnet(), and PRIORITY_SWITCH_LIMIT.
|
private |
Definition at line 95 of file PerfectSwitch.hh.
Referenced by addInPort(), getInLinks(), and operateVnet().
|
private |
Definition at line 99 of file PerfectSwitch.hh.
Referenced by addOutPort(), and operateMessageBuffer().
|
private |
Definition at line 105 of file PerfectSwitch.hh.
Referenced by init(), and operateMessageBuffer().
|
private |
Definition at line 96 of file PerfectSwitch.hh.
Referenced by addOutPort(), getOutLinks(), and operateMessageBuffer().
|
private |
Definition at line 106 of file PerfectSwitch.hh.
Referenced by init(), operateMessageBuffer(), operateVnet(), and storeEventInfo().
|
private |
Definition at line 102 of file PerfectSwitch.hh.
Referenced by operateVnet(), and PerfectSwitch().
|
private |
Definition at line 98 of file PerfectSwitch.hh.
Referenced by addOutPort(), and operateMessageBuffer().
|
private |
Definition at line 92 of file PerfectSwitch.hh.
Referenced by operateMessageBuffer().
|
private |
Definition at line 91 of file PerfectSwitch.hh.
|
private |
Definition at line 101 of file PerfectSwitch.hh.
Referenced by init(), operateMessageBuffer(), PerfectSwitch(), and wakeup().
|
private |
Definition at line 103 of file PerfectSwitch.hh.
Referenced by PerfectSwitch(), and wakeup().