gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
SwitchAllocator Class Reference

#include <SwitchAllocator.hh>

Inheritance diagram for SwitchAllocator:

Public Member Functions

 SwitchAllocator (Router *router)
void wakeup ()
void init ()
void clear_request_vector ()
void check_for_wakeup ()
int get_vnet (int invc)
void print (std::ostream &out) const
void arbitrate_inports ()
void arbitrate_outports ()
bool send_allowed (int inport, int invc, int outport, int outvc)
int vc_allocate (int outport, int inport, int invc)
double get_input_arbiter_activity ()
double get_output_arbiter_activity ()
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)
ClockedObjectgetObject ()
void scheduleEventAbsolute (Tick timeAbs)
void scheduleEvent (Cycles timeDelta)

Private Attributes

int m_num_inports
int m_num_outports
int m_num_vcs
int m_vc_per_vnet
double m_input_arbiter_activity
double m_output_arbiter_activity
std::vector< int > m_round_robin_invc
std::vector< int > m_round_robin_inport
std::vector< std::vector< bool > > m_port_requests
std::vector< std::vector< int > > m_vc_winners

Detailed Description

Definition at line 45 of file SwitchAllocator.hh.

Constructor & Destructor Documentation

◆ SwitchAllocator()

SwitchAllocator::SwitchAllocator ( Router router)

Member Function Documentation

◆ arbitrate_inports()

void SwitchAllocator::arbitrate_inports ( )

◆ arbitrate_outports()

void SwitchAllocator::arbitrate_outports ( )

◆ check_for_wakeup()

void SwitchAllocator::check_for_wakeup ( )

◆ clear_request_vector()

void SwitchAllocator::clear_request_vector ( )

Definition at line 383 of file

References ArmISA::i, ArmISA::j, m_num_inports, m_num_outports, and m_port_requests.

Referenced by wakeup().

◆ get_input_arbiter_activity()

double SwitchAllocator::get_input_arbiter_activity ( )

Definition at line 61 of file SwitchAllocator.hh.

References m_input_arbiter_activity.

Referenced by Router::collateStats().

◆ get_output_arbiter_activity()

double SwitchAllocator::get_output_arbiter_activity ( )

Definition at line 66 of file SwitchAllocator.hh.

References m_output_arbiter_activity.

Referenced by Router::collateStats().

◆ get_vnet()

int SwitchAllocator::get_vnet ( int  invc)

Definition at line 372 of file

References m_vc_per_vnet.

Referenced by send_allowed(), and vc_allocate().

◆ init()

void SwitchAllocator::init ( )

◆ print()

void SwitchAllocator::print ( std::ostream &  out) const

Implements Consumer.

Definition at line 54 of file SwitchAllocator.hh.

◆ resetStats()

void SwitchAllocator::resetStats ( )

Definition at line 393 of file

References m_input_arbiter_activity, and m_output_arbiter_activity.

Referenced by Router::resetStats().

◆ send_allowed()

bool SwitchAllocator::send_allowed ( int  inport,
int  invc,
int  outport,
int  outvc 

◆ vc_allocate()

int SwitchAllocator::vc_allocate ( int  outport,
int  inport,
int  invc 

◆ wakeup()

void SwitchAllocator::wakeup ( )

Implements Consumer.

Definition at line 87 of file

References arbitrate_inports(), arbitrate_outports(), check_for_wakeup(), and clear_request_vector().

Referenced by Router::wakeup().

Member Data Documentation

◆ m_input_arbiter_activity

double SwitchAllocator::m_input_arbiter_activity

◆ m_num_inports

int SwitchAllocator::m_num_inports

◆ m_num_outports

int SwitchAllocator::m_num_outports

Definition at line 74 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), clear_request_vector(), and init().

◆ m_num_vcs

int SwitchAllocator::m_num_vcs

◆ m_output_arbiter_activity

double SwitchAllocator::m_output_arbiter_activity

◆ m_port_requests

std::vector<std::vector<bool> > SwitchAllocator::m_port_requests

◆ m_round_robin_inport

std::vector<int> SwitchAllocator::m_round_robin_inport

Definition at line 81 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), and init().

◆ m_round_robin_invc

std::vector<int> SwitchAllocator::m_round_robin_invc

Definition at line 80 of file SwitchAllocator.hh.

Referenced by arbitrate_inports(), arbitrate_outports(), and init().

◆ m_router

Router* SwitchAllocator::m_router

◆ m_vc_per_vnet

int SwitchAllocator::m_vc_per_vnet

Definition at line 75 of file SwitchAllocator.hh.

Referenced by get_vnet(), send_allowed(), and SwitchAllocator().

◆ m_vc_winners

std::vector<std::vector<int> > SwitchAllocator::m_vc_winners

Definition at line 83 of file SwitchAllocator.hh.

Referenced by arbitrate_inports(), arbitrate_outports(), and init().

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

Generated on Wed Sep 30 2020 14:02:32 for gem5 by doxygen 1.8.17