gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
SwitchAllocator Class Reference

#include <SwitchAllocator.hh>

Inheritance diagram for SwitchAllocator:
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 ()
 
- 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_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< std::vector< bool > > m_port_requests
 
std::vector< std::vector< int > > m_vc_winners
 
std::vector< InputUnit * > m_input_unit
 
std::vector< OutputUnit * > m_output_unit
 

Additional Inherited Members

- Protected Member Functions inherited from Consumer
void scheduleEvent (Cycles timeDelta)
 

Detailed Description

Definition at line 47 of file SwitchAllocator.hh.

Constructor & Destructor Documentation

SwitchAllocator::SwitchAllocator ( Router router)

Member Function Documentation

void SwitchAllocator::arbitrate_inports ( )
void SwitchAllocator::arbitrate_outports ( )
void SwitchAllocator::check_for_wakeup ( )
void SwitchAllocator::clear_request_vector ( )

Definition at line 382 of file SwitchAllocator.cc.

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

Referenced by wakeup().

double SwitchAllocator::get_input_arbiter_activity ( )
inline

Definition at line 63 of file SwitchAllocator.hh.

References m_input_arbiter_activity.

Referenced by Router::collateStats().

double SwitchAllocator::get_output_arbiter_activity ( )
inline

Definition at line 68 of file SwitchAllocator.hh.

References m_output_arbiter_activity.

Referenced by Router::collateStats().

int SwitchAllocator::get_vnet ( int  invc)

Definition at line 371 of file SwitchAllocator.cc.

References m_vc_per_vnet.

Referenced by send_allowed(), and vc_allocate().

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

Implements Consumer.

Definition at line 56 of file SwitchAllocator.hh.

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

Definition at line 342 of file SwitchAllocator.cc.

References get_vnet(), m_input_unit, and m_output_unit.

Referenced by arbitrate_outports().

void SwitchAllocator::wakeup ( )
virtual

Implements Consumer.

Definition at line 92 of file SwitchAllocator.cc.

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

Referenced by Router::wakeup().

Member Data Documentation

double SwitchAllocator::m_input_arbiter_activity
private
std::vector<InputUnit *> SwitchAllocator::m_input_unit
private
int SwitchAllocator::m_num_inports
private
int SwitchAllocator::m_num_outports
private

Definition at line 74 of file SwitchAllocator.hh.

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

int SwitchAllocator::m_num_vcs
private

Definition at line 75 of file SwitchAllocator.hh.

Referenced by arbitrate_inports(), check_for_wakeup(), and SwitchAllocator().

double SwitchAllocator::m_output_arbiter_activity
private
std::vector<OutputUnit *> SwitchAllocator::m_output_unit
private

Definition at line 85 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), init(), send_allowed(), and vc_allocate().

std::vector<std::vector<bool> > SwitchAllocator::m_port_requests
private
std::vector<int> SwitchAllocator::m_round_robin_inport
private

Definition at line 81 of file SwitchAllocator.hh.

Referenced by arbitrate_outports(), and init().

std::vector<int> SwitchAllocator::m_round_robin_invc
private

Definition at line 80 of file SwitchAllocator.hh.

Referenced by arbitrate_inports(), and init().

Router* SwitchAllocator::m_router
private
int SwitchAllocator::m_vc_per_vnet
private

Definition at line 75 of file SwitchAllocator.hh.

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

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

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 Fri Jun 9 2017 13:04:20 for gem5 by doxygen 1.8.6