src/mem/ruby/network/garnet/SwitchAllocator.cc
/*
 * The wakeup function of the SwitchAllocator performs a 2-stage
 * seperable switch allocation. At the end of the 2nd stage, a free
 * output VC is assigned to the winning flits of each output port.
 * There is no separate VCAllocator stage like the one in garnet1.0.
 * At the end of this function, the router is rescheduled to wakeup
 * next cycle for peforming SA for any flits ready next cycle.
 */
The wakeup function of the SwitchAllocator performs a 2-stage
seperable switch allocation. At the end of the 2nd stage, a free
output VC is assigned to the winning flits of each output port.
There is no separate VCAllocator stage like the one in garnet1.0.
At the end of this function, the router is rescheduled to wakeup
next cycle for peforming SA for any flits ready next cycle.
The wakeup function of the SwitchAllocator performs a 2 - stage seperable switch allocation . At the end of the 2nd stage a free output VC is assigned to the winning flits of each output port . There is no separate VCAllocator stage like the one in garnet1 . 0 . At the end of this function the router is rescheduled to wakeup next cycle for peforming SA for any flits ready next cycle .
void
SwitchAllocator::wakeup()
{
    arbitrate_inports(); 
    arbitrate_outports(); 
    clear_request_vector();
    check_for_wakeup();
}
void SwitchAllocator :: wakeup ( ) { arbitrate_inports ( ) ; arbitrate_outports ( ) ; clear_request_vector ( ) ; check_for_wakeup ( ) ; }
The wakeup function of the SwitchAllocator performs a 2-stage
 seperable switch allocation.
The wakeup function of the SwitchAllocator performs a 2 - stage seperable switch allocation .
// First stage of allocation // Second stage of allocation