gem5  v22.1.0.0
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

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

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

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

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

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

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

◆ addWeight()

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

Definition at line 68 of file

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

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

Member Data Documentation

◆ m_inports_dirn2idx

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

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

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

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

Definition at line 96 of file RoutingUnit.hh.

Referenced by addOutDirection().

◆ m_router

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

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

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

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 Wed Dec 21 2022 10:24:24 for gem5 by doxygen 1.9.1