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

#include <RoutingUnit.hh>

Public Member Functions

 RoutingUnit (Router *router)
 
int outportCompute (RouteInfo route, int inport, PortDirection inport_dirn)
 
void addRoute (std::vector< NetDest > &routing_table_entry)
 
void addWeight (int link_weight)
 
int lookupRoutingTable (int vnet, NetDest net_dest)
 
void addInDirection (PortDirection inport_dirn, int inport)
 
void addOutDirection (PortDirection outport_dirn, int outport)
 
int outportComputeXY (RouteInfo route, int inport, PortDirection inport_dirn)
 
int outportComputeCustom (RouteInfo route, int inport, PortDirection inport_dirn)
 
bool supportsVnet (int vnet, std::vector< int > sVnets)
 

Private Attributes

Routerm_router
 
std::vector< std::vector< NetDest > > m_routing_table
 
std::vector< int > m_weight_table
 
std::map< PortDirection, int > m_inports_dirn2idx
 
std::map< int, PortDirectionm_inports_idx2dirn
 
std::map< int, PortDirectionm_outports_idx2dirn
 
std::map< PortDirection, int > m_outports_dirn2idx
 

Detailed Description

Definition at line 52 of file RoutingUnit.hh.

Constructor & Destructor Documentation

◆ RoutingUnit()

gem5::ruby::garnet::RoutingUnit::RoutingUnit ( Router router)

Definition at line 49 of file RoutingUnit.cc.

References m_router, m_routing_table, and m_weight_table.

Member Function Documentation

◆ addInDirection()

void gem5::ruby::garnet::RoutingUnit::addInDirection ( PortDirection  inport_dirn,
int  inport 
)

Definition at line 149 of file RoutingUnit.cc.

References m_inports_dirn2idx, and m_inports_idx2dirn.

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

◆ addOutDirection()

void gem5::ruby::garnet::RoutingUnit::addOutDirection ( PortDirection  outport_dirn,
int  outport 
)

Definition at line 156 of file RoutingUnit.cc.

References m_outports_dirn2idx, and m_outports_idx2dirn.

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

◆ addRoute()

void gem5::ruby::garnet::RoutingUnit::addRoute ( std::vector< NetDest > &  routing_table_entry)

Definition at line 57 of file RoutingUnit.cc.

References m_routing_table, and gem5::ArmISA::v.

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

◆ addWeight()

void gem5::ruby::garnet::RoutingUnit::addWeight ( int  link_weight)

Definition at line 68 of file RoutingUnit.cc.

References m_weight_table.

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

◆ lookupRoutingTable()

int gem5::ruby::garnet::RoutingUnit::lookupRoutingTable ( int  vnet,
NetDest  net_dest 
)

◆ outportCompute()

int gem5::ruby::garnet::RoutingUnit::outportCompute ( RouteInfo  route,
int  inport,
PortDirection  inport_dirn 
)

◆ outportComputeCustom()

int gem5::ruby::garnet::RoutingUnit::outportComputeCustom ( RouteInfo  route,
int  inport,
PortDirection  inport_dirn 
)

Definition at line 266 of file RoutingUnit.cc.

References panic.

Referenced by outportCompute().

◆ outportComputeXY()

int gem5::ruby::garnet::RoutingUnit::outportComputeXY ( RouteInfo  route,
int  inport,
PortDirection  inport_dirn 
)

◆ supportsVnet()

bool gem5::ruby::garnet::RoutingUnit::supportsVnet ( int  vnet,
std::vector< int >  sVnets 
)

Definition at line 74 of file RoutingUnit.cc.

Member Data Documentation

◆ m_inports_dirn2idx

std::map<PortDirection, int> gem5::ruby::garnet::RoutingUnit::m_inports_dirn2idx
private

Definition at line 94 of file RoutingUnit.hh.

Referenced by addInDirection().

◆ m_inports_idx2dirn

std::map<int, PortDirection> gem5::ruby::garnet::RoutingUnit::m_inports_idx2dirn
private

Definition at line 95 of file RoutingUnit.hh.

Referenced by addInDirection().

◆ m_outports_dirn2idx

std::map<PortDirection, int> gem5::ruby::garnet::RoutingUnit::m_outports_dirn2idx
private

Definition at line 97 of file RoutingUnit.hh.

Referenced by addOutDirection(), and outportComputeXY().

◆ m_outports_idx2dirn

std::map<int, PortDirection> gem5::ruby::garnet::RoutingUnit::m_outports_idx2dirn
private

Definition at line 96 of file RoutingUnit.hh.

Referenced by addOutDirection().

◆ m_router

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

Definition at line 87 of file RoutingUnit.hh.

Referenced by lookupRoutingTable(), outportCompute(), outportComputeXY(), and RoutingUnit().

◆ m_routing_table

std::vector<std::vector<NetDest> > gem5::ruby::garnet::RoutingUnit::m_routing_table
private

Definition at line 90 of file RoutingUnit.hh.

Referenced by addRoute(), lookupRoutingTable(), and RoutingUnit().

◆ m_weight_table

std::vector<int> gem5::ruby::garnet::RoutingUnit::m_weight_table
private

Definition at line 91 of file RoutingUnit.hh.

Referenced by addWeight(), lookupRoutingTable(), and RoutingUnit().


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

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