gem5
|
#include <InputUnit.hh>
Public Member Functions | |
InputUnit (int id, PortDirection direction, Router *router) | |
~InputUnit () | |
void | wakeup () |
void | print (std::ostream &out) const |
PortDirection | get_direction () |
void | set_vc_idle (int vc, Cycles curTime) |
void | set_vc_active (int vc, Cycles curTime) |
void | grant_outport (int vc, int outport) |
void | grant_outvc (int vc, int outvc) |
int | get_outport (int invc) |
int | get_outvc (int invc) |
Cycles | get_enqueue_time (int invc) |
void | increment_credit (int in_vc, bool free_signal, Cycles curTime) |
flit * | peekTopFlit (int vc) |
flit * | getTopFlit (int vc) |
bool | need_stage (int vc, flit_stage stage, Cycles time) |
bool | isReady (int invc, Cycles curTime) |
flitBuffer * | getCreditQueue () |
void | set_in_link (NetworkLink *link) |
int | get_inlink_id () |
void | set_credit_link (CreditLink *credit_link) |
double | get_buf_read_activity (unsigned int vnet) const |
double | get_buf_write_activity (unsigned int vnet) const |
uint32_t | functionalWrite (Packet *pkt) |
void | resetStats () |
Public Member Functions inherited from Consumer | |
Consumer (ClockedObject *_em) | |
virtual | ~Consumer () |
virtual void | storeEventInfo (int info) |
bool | alreadyScheduled (Tick time) |
void | insertScheduledWakeupTime (Tick time) |
void | scheduleEventAbsolute (Tick timeAbs) |
Private Attributes | |
int | m_id |
PortDirection | m_direction |
int | m_num_vcs |
int | m_vc_per_vnet |
Router * | m_router |
NetworkLink * | m_in_link |
CreditLink * | m_credit_link |
flitBuffer * | creditQueue |
std::vector< VirtualChannel * > | m_vcs |
std::vector< double > | m_num_buffer_writes |
std::vector< double > | m_num_buffer_reads |
Additional Inherited Members | |
Protected Member Functions inherited from Consumer | |
void | scheduleEvent (Cycles timeDelta) |
Definition at line 48 of file InputUnit.hh.
InputUnit::InputUnit | ( | int | id, |
PortDirection | direction, | ||
Router * | router | ||
) |
Definition at line 44 of file InputUnit.cc.
References creditQueue, Router::get_num_vcs(), Router::get_vc_per_vnet(), ArmISA::i, SparcISA::id, m_direction, m_id, m_num_buffer_reads, m_num_buffer_writes, m_num_vcs, m_router, m_vc_per_vnet, and m_vcs.
InputUnit::~InputUnit | ( | ) |
Definition at line 68 of file InputUnit.cc.
References creditQueue, m5::stl_helpers::deletePointers(), and m_vcs.
uint32_t InputUnit::functionalWrite | ( | Packet * | pkt | ) |
Definition at line 154 of file InputUnit.cc.
|
inline |
Definition at line 143 of file InputUnit.hh.
References m_num_buffer_reads.
|
inline |
Definition at line 145 of file InputUnit.hh.
References m_num_buffer_writes.
|
inline |
Definition at line 57 of file InputUnit.hh.
References m_direction.
|
inline |
Definition at line 96 of file InputUnit.hh.
References m_vcs.
|
inline |
Definition at line 135 of file InputUnit.hh.
References NetworkLink::get_id(), and m_in_link.
|
inline |
Definition at line 84 of file InputUnit.hh.
References m_vcs.
|
inline |
Definition at line 90 of file InputUnit.hh.
References m_vcs.
|
inline |
Definition at line 127 of file InputUnit.hh.
References creditQueue.
Referenced by Router::addInPort().
|
inline |
Definition at line 110 of file InputUnit.hh.
References m_vcs.
|
inline |
|
inline |
Definition at line 78 of file InputUnit.hh.
References m_vcs.
void InputUnit::increment_credit | ( | int | in_vc, |
bool | free_signal, | ||
Cycles | curTime | ||
) |
Definition at line 145 of file InputUnit.cc.
References Clocked::clockEdge(), creditQueue, flitBuffer::insert(), m_credit_link, m_router, and Consumer::scheduleEventAbsolute().
|
inline |
Definition at line 122 of file InputUnit.hh.
References m_vcs.
|
inline |
Definition at line 116 of file InputUnit.hh.
References m_vcs.
|
inline |
Definition at line 104 of file InputUnit.hh.
References m_vcs.
|
inlinevirtual |
Implements Consumer.
Definition at line 55 of file InputUnit.hh.
void InputUnit::resetStats | ( | ) |
Definition at line 165 of file InputUnit.cc.
References ArmISA::j, m_num_buffer_reads, and m_num_buffer_writes.
|
inline |
Definition at line 138 of file InputUnit.hh.
References m_credit_link.
Referenced by Router::addInPort().
|
inline |
Definition at line 130 of file InputUnit.hh.
References m_in_link.
Referenced by Router::addInPort().
|
inline |
|
inline |
Definition at line 60 of file InputUnit.hh.
References m_vcs.
|
virtual |
Implements Consumer.
Definition at line 85 of file InputUnit.cc.
References ACTIVE_, flit::advance_stage(), NetworkLink::consumeLink(), Clocked::curCycle(), Router::get_pipe_stages(), flit::get_route(), flit::get_type(), flit::get_vc(), grant_outport(), HEAD_, HEAD_TAIL_, IDLE_, flit::increment_hops(), NetworkLink::isReady(), m_direction, m_id, m_in_link, m_num_buffer_reads, m_num_buffer_writes, m_router, m_vc_per_vnet, m_vcs, Router::route_compute(), SA_, Router::schedule_wakeup(), and set_vc_active().
|
private |
Definition at line 160 of file InputUnit.hh.
Referenced by getCreditQueue(), increment_credit(), InputUnit(), and ~InputUnit().
|
private |
Definition at line 159 of file InputUnit.hh.
Referenced by increment_credit(), and set_credit_link().
|
private |
Definition at line 153 of file InputUnit.hh.
Referenced by get_direction(), InputUnit(), and wakeup().
|
private |
Definition at line 152 of file InputUnit.hh.
Referenced by InputUnit(), and wakeup().
|
private |
Definition at line 158 of file InputUnit.hh.
Referenced by get_inlink_id(), set_in_link(), and wakeup().
|
private |
Definition at line 167 of file InputUnit.hh.
Referenced by get_buf_read_activity(), InputUnit(), resetStats(), and wakeup().
|
private |
Definition at line 166 of file InputUnit.hh.
Referenced by get_buf_write_activity(), InputUnit(), resetStats(), and wakeup().
|
private |
Definition at line 154 of file InputUnit.hh.
Referenced by functionalWrite(), and InputUnit().
|
private |
Definition at line 157 of file InputUnit.hh.
Referenced by increment_credit(), InputUnit(), and wakeup().
|
private |
Definition at line 155 of file InputUnit.hh.
Referenced by InputUnit(), and wakeup().
|
private |
Definition at line 163 of file InputUnit.hh.
Referenced by functionalWrite(), get_enqueue_time(), get_outport(), get_outvc(), getTopFlit(), grant_outport(), grant_outvc(), InputUnit(), isReady(), need_stage(), peekTopFlit(), set_vc_active(), set_vc_idle(), wakeup(), and ~InputUnit().