gem5
|
#include <OutputUnit.hh>
Public Member Functions | |
OutputUnit (int id, PortDirection direction, Router *router) | |
~OutputUnit () | |
void | set_out_link (NetworkLink *link) |
void | set_credit_link (CreditLink *credit_link) |
void | wakeup () |
flitBuffer * | getOutQueue () |
void | print (std::ostream &out) const |
void | decrement_credit (int out_vc) |
void | increment_credit (int out_vc) |
bool | has_credit (int out_vc) |
bool | has_free_vc (int vnet) |
int | select_free_vc (int vnet) |
PortDirection | get_direction () |
int | get_credit_count (int vc) |
int | get_outlink_id () |
void | set_vc_state (VC_state_type state, int vc, Cycles curTime) |
bool | is_vc_idle (int vc, Cycles curTime) |
void | insert_flit (flit *t_flit) |
uint32_t | functionalWrite (Packet *pkt) |
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_out_link |
CreditLink * | m_credit_link |
flitBuffer * | m_out_buffer |
std::vector< OutVcState * > | m_outvc_state |
Additional Inherited Members | |
Protected Member Functions inherited from Consumer | |
void | scheduleEvent (Cycles timeDelta) |
Definition at line 48 of file OutputUnit.hh.
OutputUnit::OutputUnit | ( | int | id, |
PortDirection | direction, | ||
Router * | router | ||
) |
Definition at line 44 of file OutputUnit.cc.
References Router::get_net_ptr(), Router::get_num_vcs(), Router::get_vc_per_vnet(), ArmISA::i, SparcISA::id, m_direction, m_id, m_num_vcs, m_out_buffer, m_outvc_state, m_router, and m_vc_per_vnet.
OutputUnit::~OutputUnit | ( | ) |
Definition at line 59 of file OutputUnit.cc.
References m5::stl_helpers::deletePointers(), m_out_buffer, and m_outvc_state.
void OutputUnit::decrement_credit | ( | int | out_vc | ) |
Definition at line 66 of file OutputUnit.cc.
References Clocked::curCycle(), DPRINTF, Router::get_id(), m_id, m_outvc_state, and m_router.
uint32_t OutputUnit::functionalWrite | ( | Packet * | pkt | ) |
Definition at line 165 of file OutputUnit.cc.
References flitBuffer::functionalWrite(), and m_out_buffer.
|
inline |
Definition at line 67 of file OutputUnit.hh.
References m_outvc_state.
|
inline |
Definition at line 64 of file OutputUnit.hh.
References m_direction.
|
inline |
Definition at line 73 of file OutputUnit.hh.
References NetworkLink::get_id(), and m_out_link.
flitBuffer * OutputUnit::getOutQueue | ( | ) |
Definition at line 147 of file OutputUnit.cc.
References m_out_buffer.
Referenced by Router::addOutPort().
bool OutputUnit::has_credit | ( | int | out_vc | ) |
Definition at line 89 of file OutputUnit.cc.
References ACTIVE_, Clocked::curCycle(), m_outvc_state, and m_router.
bool OutputUnit::has_free_vc | ( | int | vnet | ) |
Definition at line 98 of file OutputUnit.cc.
References Clocked::curCycle(), is_vc_idle(), m_router, and m_vc_per_vnet.
void OutputUnit::increment_credit | ( | int | out_vc | ) |
Definition at line 76 of file OutputUnit.cc.
References Clocked::curCycle(), DPRINTF, Router::get_id(), m_id, m_outvc_state, and m_router.
Referenced by wakeup().
|
inline |
Definition at line 91 of file OutputUnit.hh.
References Clocked::clockEdge(), flitBuffer::insert(), m_out_buffer, m_out_link, m_router, and Consumer::scheduleEventAbsolute().
|
inline |
Definition at line 85 of file OutputUnit.hh.
References IDLE_, and m_outvc_state.
Referenced by has_free_vc(), and select_free_vc().
|
inlinevirtual |
Implements Consumer.
Definition at line 57 of file OutputUnit.hh.
int OutputUnit::select_free_vc | ( | int | vnet | ) |
Definition at line 111 of file OutputUnit.cc.
References ACTIVE_, Clocked::curCycle(), is_vc_idle(), m_outvc_state, m_router, and m_vc_per_vnet.
void OutputUnit::set_credit_link | ( | CreditLink * | credit_link | ) |
Definition at line 159 of file OutputUnit.cc.
References m_credit_link.
Referenced by Router::addOutPort().
void OutputUnit::set_out_link | ( | NetworkLink * | link | ) |
Definition at line 153 of file OutputUnit.cc.
References m_out_link.
Referenced by Router::addOutPort().
|
inline |
|
virtual |
Implements Consumer.
Definition at line 133 of file OutputUnit.cc.
References NetworkLink::consumeLink(), Clocked::curCycle(), flit::get_vc(), IDLE_, increment_credit(), Credit::is_free_signal(), NetworkLink::isReady(), m_credit_link, m_router, and set_vc_state().
|
private |
Definition at line 106 of file OutputUnit.hh.
Referenced by set_credit_link(), and wakeup().
|
private |
Definition at line 101 of file OutputUnit.hh.
Referenced by get_direction(), and OutputUnit().
|
private |
Definition at line 100 of file OutputUnit.hh.
Referenced by decrement_credit(), increment_credit(), and OutputUnit().
|
private |
Definition at line 102 of file OutputUnit.hh.
Referenced by OutputUnit().
|
private |
Definition at line 108 of file OutputUnit.hh.
Referenced by functionalWrite(), getOutQueue(), insert_flit(), OutputUnit(), and ~OutputUnit().
|
private |
Definition at line 105 of file OutputUnit.hh.
Referenced by get_outlink_id(), insert_flit(), and set_out_link().
|
private |
Definition at line 109 of file OutputUnit.hh.
Referenced by decrement_credit(), get_credit_count(), has_credit(), increment_credit(), is_vc_idle(), OutputUnit(), select_free_vc(), set_vc_state(), and ~OutputUnit().
|
private |
Definition at line 104 of file OutputUnit.hh.
Referenced by decrement_credit(), has_credit(), has_free_vc(), increment_credit(), insert_flit(), OutputUnit(), select_free_vc(), and wakeup().
|
private |
Definition at line 103 of file OutputUnit.hh.
Referenced by has_free_vc(), OutputUnit(), and select_free_vc().