gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ruby::garnet::SwitchAllocator Class Reference

#include <SwitchAllocator.hh>

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

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 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

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
 
Routerm_router
 
std::vector< int > m_round_robin_invc
 
std::vector< int > m_round_robin_inport
 
std::vector< int > m_port_requests
 
std::vector< int > m_vc_winners
 

Detailed Description

Definition at line 54 of file SwitchAllocator.hh.

Constructor & Destructor Documentation

◆ SwitchAllocator()

gem5::ruby::garnet::SwitchAllocator::SwitchAllocator ( Router * router)

Member Function Documentation

◆ arbitrate_inports()

void gem5::ruby::garnet::SwitchAllocator::arbitrate_inports ( )

◆ arbitrate_outports()

◆ check_for_wakeup()

void gem5::ruby::garnet::SwitchAllocator::check_for_wakeup ( )

Definition at line 357 of file SwitchAllocator.cc.

References gem5::ArmISA::i, m_num_inports, m_num_vcs, m_router, and gem5::ruby::garnet::SA_.

Referenced by wakeup().

◆ clear_request_vector()

void gem5::ruby::garnet::SwitchAllocator::clear_request_vector ( )

Definition at line 387 of file SwitchAllocator.cc.

References m_port_requests.

Referenced by wakeup().

◆ get_input_arbiter_activity()

double gem5::ruby::garnet::SwitchAllocator::get_input_arbiter_activity ( )
inline

Definition at line 70 of file SwitchAllocator.hh.

References m_input_arbiter_activity.

◆ get_output_arbiter_activity()

double gem5::ruby::garnet::SwitchAllocator::get_output_arbiter_activity ( )
inline

Definition at line 75 of file SwitchAllocator.hh.

References m_output_arbiter_activity.

◆ get_vnet()

int gem5::ruby::garnet::SwitchAllocator::get_vnet ( int invc)

Definition at line 376 of file SwitchAllocator.cc.

References m_vc_per_vnet.

Referenced by send_allowed(), and vc_allocate().

◆ init()

void gem5::ruby::garnet::SwitchAllocator::init ( )

◆ print()

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

Implements gem5::ruby::Consumer.

Definition at line 63 of file SwitchAllocator.hh.

◆ resetStats()

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

Definition at line 393 of file SwitchAllocator.cc.

References m_input_arbiter_activity, and m_output_arbiter_activity.

◆ send_allowed()

bool gem5::ruby::garnet::SwitchAllocator::send_allowed ( int inport,
int invc,
int outport,
int outvc )

◆ vc_allocate()

int gem5::ruby::garnet::SwitchAllocator::vc_allocate ( int outport,
int inport,
int invc )

Definition at line 342 of file SwitchAllocator.cc.

References get_vnet(), and m_router.

Referenced by arbitrate_outports().

◆ wakeup()

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

Member Data Documentation

◆ m_input_arbiter_activity

double gem5::ruby::garnet::SwitchAllocator::m_input_arbiter_activity
private

◆ m_num_inports

int gem5::ruby::garnet::SwitchAllocator::m_num_inports
private

Definition at line 83 of file SwitchAllocator.hh.

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

◆ m_num_outports

int gem5::ruby::garnet::SwitchAllocator::m_num_outports
private

Definition at line 83 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), and init().

◆ m_num_vcs

int gem5::ruby::garnet::SwitchAllocator::m_num_vcs
private

◆ m_output_arbiter_activity

double gem5::ruby::garnet::SwitchAllocator::m_output_arbiter_activity
private

◆ m_port_requests

std::vector<int> gem5::ruby::garnet::SwitchAllocator::m_port_requests
private

◆ m_round_robin_inport

std::vector<int> gem5::ruby::garnet::SwitchAllocator::m_round_robin_inport
private

Definition at line 90 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), and init().

◆ m_round_robin_invc

std::vector<int> gem5::ruby::garnet::SwitchAllocator::m_round_robin_invc
private

Definition at line 89 of file SwitchAllocator.hh.

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

◆ m_router

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

◆ m_vc_per_vnet

int gem5::ruby::garnet::SwitchAllocator::m_vc_per_vnet
private

Definition at line 84 of file SwitchAllocator.hh.

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

◆ m_vc_winners

std::vector<int> gem5::ruby::garnet::SwitchAllocator::m_vc_winners
private

Definition at line 92 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 Mon May 26 2025 09:19:37 for gem5 by doxygen 1.13.2