The valiant_router class Enacpsulates a router that performs oblivious, global routing according to "A Scheme for Fast Parallel Computation" by Valiant.
More...
#include <valiant_routing.h>
The valiant_router class Enacpsulates a router that performs oblivious, global routing according to "A Scheme for Fast Parallel Computation" by Valiant.
Definition at line 14 of file valiant_routing.h.
Enumerator |
---|
minimal |
|
intermediate_switch |
|
final_node |
|
Definition at line 71 of file valiant_routing.h.
sstmac::hw::valiant_router::valiant_router |
( |
| ) |
|
|
inline |
virtual sstmac::hw::valiant_router::~valiant_router |
( |
| ) |
|
|
inlinevirtual |
configure_final_path Once the packet has switched to Valiant and reached the intermediate switch, compute a path to the final ejection switch
- Parameters
-
configure_intermediate_path Once the packet has switched to Valiant, compute a path to the chosen intermediate switch
- Parameters
-
virtual void sstmac::hw::valiant_router::finalize_init |
( |
| ) |
|
|
virtual |
virtual int sstmac::hw::valiant_router::first_stage_vc |
( |
int |
topology_vc | ) |
|
|
inlinevirtual |
The topology object specifies a virtual channel based purely on geometry.
However, the final virtual channel depends on both geometry and routing algorithm. In this case, we need a separate set of virtual channels depending on whether we are in the first stage (routing to the intermediate switch) or the second stage (routing to the final switch).
- Parameters
-
topology_vc | The geometry-specific virtual channel |
- Returns
- The first stage virtual channel
Reimplemented in sstmac::hw::ugal_router.
Definition at line 48 of file valiant_routing.h.
intermediate_step
- Parameters
-
rtbl | The routing interface with path information |
pkt | The packet corresponding to the structured_routable |
- Returns
- The next action to take. It may be intermediate_switch or final_node depending on whether the intermediate switch has been reached or not.
next_routing_stage Figure out which action is required for the packet
- Parameters
-
pkt | The packet being routed |
- Returns
- It may be intermediate_switch or final_node depending on whether the intermediate switch has been reached or not. Or it may be minimal if the packet is still on the minimal path and has not switched to Valiant.
virtual void sstmac::hw::valiant_router::route |
( |
packet * |
pkt | ) |
|
|
virtual |
void sstmac::hw::valiant_router::route_valiant |
( |
packet * |
pkt | ) |
|
|
protected |
route_valiant Figure out if in intermediate or final stage and make appropriate routing computation
- Parameters
-
virtual int sstmac::hw::valiant_router::second_stage_vc |
( |
int |
topology_vc | ) |
|
|
inlinevirtual |
The topology object specifies a virtual channel based purely on geometry.
However, the final virtual channel depends on both geometry and routing algorithm. In this case, we need a separate set of virtual channels depending on whether we are in the first stage (routing to the intermediate switch) or the second stage (routing to the final switch).
- Parameters
-
topology_vc | The geometry-specific virtual channel |
- Returns
- The second stage virtual channel
Reimplemented in sstmac::hw::ugal_router.
Definition at line 63 of file valiant_routing.h.
virtual std::string sstmac::hw::valiant_router::to_string |
( |
| ) |
const |
|
inlinevirtual |
The documentation for this class was generated from the following file: