gem5  v22.1.0.0
Public Member Functions | Private Attributes | List of all members
gem5::ruby::garnet::OutputUnit Class Reference

#include <OutputUnit.hh>

Inheritance diagram for gem5::ruby::garnet::OutputUnit:

Public Member Functions

 OutputUnit (int id, PortDirection direction, Router *router, uint32_t consumerVcs)
 ~OutputUnit ()=default
void set_out_link (NetworkLink *link)
void set_credit_link (CreditLink *credit_link)
void wakeup ()
flitBuffergetOutQueue ()
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, Tick curTime)
bool is_vc_idle (int vc, Tick curTime)
void insert_flit (flit *t_flit)
int getVcsPerVnet ()
bool functionalRead (Packet *pkt, WriteMask &mask)
uint32_t functionalWrite (Packet *pkt)
- Public Member Functions inherited from gem5::ruby::Consumer
 Consumer (ClockedObject *em, Event::Priority ev_prio=Event::Default_Pri)
virtual ~Consumer ()
virtual void storeEventInfo (int info)
bool alreadyScheduled (Tick time)
ClockedObjectgetObject ()
void scheduleEventAbsolute (Tick timeAbs)
void scheduleEvent (Cycles timeDelta)

Private Attributes

PortDirection m_direction
int m_vc_per_vnet
flitBuffer outBuffer
std::vector< OutVcStateoutVcState

Detailed Description

Definition at line 56 of file OutputUnit.hh.

Constructor & Destructor Documentation

◆ OutputUnit()

gem5::ruby::garnet::OutputUnit::OutputUnit ( int  id,
PortDirection  direction,
Router router,
uint32_t  consumerVcs 

◆ ~OutputUnit()

gem5::ruby::garnet::OutputUnit::~OutputUnit ( )

Member Function Documentation

◆ decrement_credit()

void gem5::ruby::garnet::OutputUnit::decrement_credit ( int  out_vc)

◆ functionalRead()

bool gem5::ruby::garnet::OutputUnit::functionalRead ( Packet pkt,
WriteMask mask 

◆ functionalWrite()

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

Definition at line 182 of file

References gem5::ruby::garnet::flitBuffer::functionalWrite(), and outBuffer.

◆ get_credit_count()

int gem5::ruby::garnet::OutputUnit::get_credit_count ( int  vc)

Definition at line 76 of file OutputUnit.hh.

References outVcState.

Referenced by decrement_credit(), and increment_credit().

◆ get_direction()

PortDirection gem5::ruby::garnet::OutputUnit::get_direction ( )

Definition at line 73 of file OutputUnit.hh.

References m_direction.

Referenced by decrement_credit(), and increment_credit().

◆ get_outlink_id()

int gem5::ruby::garnet::OutputUnit::get_outlink_id ( )

Definition at line 82 of file OutputUnit.hh.

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

◆ getOutQueue()

flitBuffer * gem5::ruby::garnet::OutputUnit::getOutQueue ( )

Definition at line 151 of file

References outBuffer.

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

◆ getVcsPerVnet()

int gem5::ruby::garnet::OutputUnit::getVcsPerVnet ( )

Definition at line 102 of file OutputUnit.hh.

References m_vc_per_vnet.

◆ has_credit()

bool gem5::ruby::garnet::OutputUnit::has_credit ( int  out_vc)

◆ has_free_vc()

bool gem5::ruby::garnet::OutputUnit::has_free_vc ( int  vnet)

Definition at line 98 of file

References gem5::curTick(), is_vc_idle(), and m_vc_per_vnet.

◆ increment_credit()

void gem5::ruby::garnet::OutputUnit::increment_credit ( int  out_vc)

◆ insert_flit()

void gem5::ruby::garnet::OutputUnit::insert_flit ( flit t_flit)

◆ is_vc_idle()

bool gem5::ruby::garnet::OutputUnit::is_vc_idle ( int  vc,
Tick  curTime 

Definition at line 94 of file OutputUnit.hh.

References gem5::ruby::garnet::IDLE_, and outVcState.

Referenced by has_free_vc(), and select_free_vc().

◆ print()

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

Implements gem5::ruby::Consumer.

Definition at line 66 of file OutputUnit.hh.

◆ select_free_vc()

int gem5::ruby::garnet::OutputUnit::select_free_vc ( int  vnet)

◆ set_credit_link()

void gem5::ruby::garnet::OutputUnit::set_credit_link ( CreditLink credit_link)

Definition at line 163 of file

References m_credit_link.

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

◆ set_out_link()

void gem5::ruby::garnet::OutputUnit::set_out_link ( NetworkLink link)

Definition at line 157 of file

References m_out_link.

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

◆ set_vc_state()

void gem5::ruby::garnet::OutputUnit::set_vc_state ( VC_state_type  state,
int  vc,
Tick  curTime 

Definition at line 88 of file OutputUnit.hh.

References outVcState, and state.

Referenced by wakeup().

◆ wakeup()

void gem5::ruby::garnet::OutputUnit::wakeup ( )

Member Data Documentation

◆ m_credit_link

CreditLink* gem5::ruby::garnet::OutputUnit::m_credit_link

Definition at line 116 of file OutputUnit.hh.

Referenced by decrement_credit(), increment_credit(), set_credit_link(), and wakeup().

◆ m_direction

PortDirection gem5::ruby::garnet::OutputUnit::m_direction

Definition at line 113 of file OutputUnit.hh.

Referenced by get_direction().

◆ m_id

GEM5_CLASS_VAR_USED int gem5::ruby::garnet::OutputUnit::m_id

Definition at line 112 of file OutputUnit.hh.

◆ m_out_link

NetworkLink* gem5::ruby::garnet::OutputUnit::m_out_link

Definition at line 115 of file OutputUnit.hh.

Referenced by get_outlink_id(), insert_flit(), and set_out_link().

◆ m_router

Router* gem5::ruby::garnet::OutputUnit::m_router

Definition at line 111 of file OutputUnit.hh.

Referenced by decrement_credit(), increment_credit(), insert_flit(), and OutputUnit().

◆ m_vc_per_vnet

int gem5::ruby::garnet::OutputUnit::m_vc_per_vnet

Definition at line 114 of file OutputUnit.hh.

Referenced by getVcsPerVnet(), has_free_vc(), and select_free_vc().

◆ outBuffer

flitBuffer gem5::ruby::garnet::OutputUnit::outBuffer

Definition at line 119 of file OutputUnit.hh.

Referenced by functionalRead(), functionalWrite(), getOutQueue(), and insert_flit().

◆ outVcState

std::vector<OutVcState> gem5::ruby::garnet::OutputUnit::outVcState

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

Generated on Wed Dec 21 2022 10:24:24 for gem5 by doxygen 1.9.1