gem5  v21.1.0.2
Public Member Functions | Private Attributes | List of all members
gem5::ruby::garnet::InputUnit Class Reference

#include <InputUnit.hh>

Inheritance diagram for gem5::ruby::garnet::InputUnit:
gem5::ruby::Consumer

Public Member Functions

 InputUnit (int id, PortDirection direction, Router *router)
 
 ~InputUnit ()=default
 
void wakeup ()
 
void print (std::ostream &out) const
 
PortDirection get_direction ()
 
void set_vc_idle (int vc, Tick curTime)
 
void set_vc_active (int vc, Tick 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)
 
Tick get_enqueue_time (int invc)
 
void increment_credit (int in_vc, bool free_signal, Tick curTime)
 
flitpeekTopFlit (int vc)
 
flitgetTopFlit (int vc)
 
bool need_stage (int vc, flit_stage stage, Tick time)
 
bool isReady (int invc, Tick curTime)
 
flitBuffergetCreditQueue ()
 
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 gem5::ruby::Consumer
 Consumer (ClockedObject *_em)
 
virtual ~Consumer ()
 
virtual void storeEventInfo (int info)
 
bool alreadyScheduled (Tick time)
 
ClockedObjectgetObject ()
 
void scheduleEventAbsolute (Tick timeAbs)
 
void scheduleEvent (Cycles timeDelta)
 

Private Attributes

Routerm_router
 
int m_id
 
PortDirection m_direction
 
int m_vc_per_vnet
 
NetworkLinkm_in_link
 
CreditLinkm_credit_link
 
flitBuffer creditQueue
 
std::vector< VirtualChannelvirtualChannels
 
std::vector< double > m_num_buffer_writes
 
std::vector< double > m_num_buffer_reads
 

Detailed Description

Definition at line 55 of file InputUnit.hh.

Constructor & Destructor Documentation

◆ InputUnit()

gem5::ruby::garnet::InputUnit::InputUnit ( int  id,
PortDirection  direction,
Router router 
)

◆ ~InputUnit()

gem5::ruby::garnet::InputUnit::~InputUnit ( )
default

Member Function Documentation

◆ functionalWrite()

uint32_t gem5::ruby::garnet::InputUnit::functionalWrite ( Packet pkt)

Definition at line 156 of file InputUnit.cc.

References virtualChannels.

◆ get_buf_read_activity()

double gem5::ruby::garnet::InputUnit::get_buf_read_activity ( unsigned int  vnet) const
inline

Definition at line 150 of file InputUnit.hh.

References m_num_buffer_reads.

◆ get_buf_write_activity()

double gem5::ruby::garnet::InputUnit::get_buf_write_activity ( unsigned int  vnet) const
inline

Definition at line 152 of file InputUnit.hh.

References m_num_buffer_writes.

◆ get_direction()

PortDirection gem5::ruby::garnet::InputUnit::get_direction ( )
inline

Definition at line 64 of file InputUnit.hh.

References m_direction.

◆ get_enqueue_time()

Tick gem5::ruby::garnet::InputUnit::get_enqueue_time ( int  invc)
inline

Definition at line 103 of file InputUnit.hh.

References virtualChannels.

Referenced by gem5::ruby::garnet::SwitchAllocator::send_allowed().

◆ get_inlink_id()

int gem5::ruby::garnet::InputUnit::get_inlink_id ( )
inline

Definition at line 142 of file InputUnit.hh.

References gem5::ruby::garnet::NetworkLink::get_id(), and m_in_link.

◆ get_outport()

int gem5::ruby::garnet::InputUnit::get_outport ( int  invc)
inline

Definition at line 91 of file InputUnit.hh.

References virtualChannels.

Referenced by gem5::ruby::garnet::SwitchAllocator::arbitrate_inports().

◆ get_outvc()

int gem5::ruby::garnet::InputUnit::get_outvc ( int  invc)
inline

Definition at line 97 of file InputUnit.hh.

References virtualChannels.

◆ getCreditQueue()

flitBuffer* gem5::ruby::garnet::InputUnit::getCreditQueue ( )
inline

Definition at line 134 of file InputUnit.hh.

References creditQueue.

Referenced by gem5::ruby::garnet::Router::addInPort().

◆ getTopFlit()

flit* gem5::ruby::garnet::InputUnit::getTopFlit ( int  vc)
inline

Definition at line 117 of file InputUnit.hh.

References virtualChannels.

◆ grant_outport()

void gem5::ruby::garnet::InputUnit::grant_outport ( int  vc,
int  outport 
)
inline

Definition at line 79 of file InputUnit.hh.

References virtualChannels.

Referenced by wakeup().

◆ grant_outvc()

void gem5::ruby::garnet::InputUnit::grant_outvc ( int  vc,
int  outvc 
)
inline

Definition at line 85 of file InputUnit.hh.

References virtualChannels.

Referenced by gem5::ruby::garnet::SwitchAllocator::vc_allocate().

◆ increment_credit()

void gem5::ruby::garnet::InputUnit::increment_credit ( int  in_vc,
bool  free_signal,
Tick  curTime 
)

◆ isReady()

bool gem5::ruby::garnet::InputUnit::isReady ( int  invc,
Tick  curTime 
)
inline

Definition at line 129 of file InputUnit.hh.

References virtualChannels.

◆ need_stage()

bool gem5::ruby::garnet::InputUnit::need_stage ( int  vc,
flit_stage  stage,
Tick  time 
)
inline

Definition at line 123 of file InputUnit.hh.

References virtualChannels.

Referenced by gem5::ruby::garnet::SwitchAllocator::check_for_wakeup().

◆ peekTopFlit()

flit* gem5::ruby::garnet::InputUnit::peekTopFlit ( int  vc)
inline

Definition at line 111 of file InputUnit.hh.

References virtualChannels.

◆ print()

void gem5::ruby::garnet::InputUnit::print ( std::ostream &  out) const
inlinevirtual

Implements gem5::ruby::Consumer.

Definition at line 62 of file InputUnit.hh.

◆ resetStats()

void gem5::ruby::garnet::InputUnit::resetStats ( )

Definition at line 167 of file InputUnit.cc.

References gem5::ArmISA::j, m_num_buffer_reads, and m_num_buffer_writes.

◆ set_credit_link()

void gem5::ruby::garnet::InputUnit::set_credit_link ( CreditLink credit_link)
inline

Definition at line 145 of file InputUnit.hh.

References m_credit_link.

Referenced by gem5::ruby::garnet::Router::addInPort().

◆ set_in_link()

void gem5::ruby::garnet::InputUnit::set_in_link ( NetworkLink link)
inline

Definition at line 137 of file InputUnit.hh.

References m_in_link.

Referenced by gem5::ruby::garnet::Router::addInPort().

◆ set_vc_active()

void gem5::ruby::garnet::InputUnit::set_vc_active ( int  vc,
Tick  curTime 
)
inline

Definition at line 73 of file InputUnit.hh.

References virtualChannels.

Referenced by wakeup().

◆ set_vc_idle()

void gem5::ruby::garnet::InputUnit::set_vc_idle ( int  vc,
Tick  curTime 
)
inline

Definition at line 67 of file InputUnit.hh.

References virtualChannels.

◆ wakeup()

void gem5::ruby::garnet::InputUnit::wakeup ( )
virtual

Member Data Documentation

◆ creditQueue

flitBuffer gem5::ruby::garnet::InputUnit::creditQueue
private

Definition at line 165 of file InputUnit.hh.

Referenced by getCreditQueue(), and increment_credit().

◆ m_credit_link

CreditLink* gem5::ruby::garnet::InputUnit::m_credit_link
private

Definition at line 164 of file InputUnit.hh.

Referenced by increment_credit(), and set_credit_link().

◆ m_direction

PortDirection gem5::ruby::garnet::InputUnit::m_direction
private

Definition at line 161 of file InputUnit.hh.

Referenced by get_direction(), and wakeup().

◆ m_id

int gem5::ruby::garnet::InputUnit::m_id
private

Definition at line 160 of file InputUnit.hh.

Referenced by wakeup().

◆ m_in_link

NetworkLink* gem5::ruby::garnet::InputUnit::m_in_link
private

Definition at line 163 of file InputUnit.hh.

Referenced by get_inlink_id(), set_in_link(), and wakeup().

◆ m_num_buffer_reads

std::vector<double> gem5::ruby::garnet::InputUnit::m_num_buffer_reads
private

Definition at line 172 of file InputUnit.hh.

Referenced by get_buf_read_activity(), InputUnit(), resetStats(), and wakeup().

◆ m_num_buffer_writes

std::vector<double> gem5::ruby::garnet::InputUnit::m_num_buffer_writes
private

Definition at line 171 of file InputUnit.hh.

Referenced by get_buf_write_activity(), InputUnit(), resetStats(), and wakeup().

◆ m_router

Router* gem5::ruby::garnet::InputUnit::m_router
private

Definition at line 159 of file InputUnit.hh.

Referenced by increment_credit(), InputUnit(), and wakeup().

◆ m_vc_per_vnet

int gem5::ruby::garnet::InputUnit::m_vc_per_vnet
private

Definition at line 162 of file InputUnit.hh.

Referenced by InputUnit(), and wakeup().

◆ virtualChannels

std::vector<VirtualChannel> gem5::ruby::garnet::InputUnit::virtualChannels
private

The documentation for this class was generated from the following files:

Generated on Tue Sep 21 2021 12:32:10 for gem5 by doxygen 1.8.17