Research Article
A Coarse-Grained Reconfigurable Architecture with Compilation for High Performance
Algorithm 2
ripup_reroute.
Input: &routingPathLst // routingPathLst stores routing requirements | Output: a new less congested routing solution stored in routingPathLst | 1 for (; Max; ++) { | 2 regDuplicatorLst.clear(); // clear regDuplicatorLst before new iteration | 3 newRoutingPathLst.clear(); | 4 for each path in routingPathLst { | 5 src = p.origin; // get start_point of p | 6 dest = p.destination; // get end_point of p | 7 //step 1: ripup | 8 ripup_path(p); // ripup by release all resources used by p | 9 end_step = getReadyStep(dest); | 10 //step 2: reroute | 11 cost_grid = route_path(src, end_step, ®DuplicatorLst); | 12 //step 3: backtrace | 13 new_ = backtrace(dest, &src, cost_grid); | 14 add(new_, newRoutingPathLst); | 15 update(regDuplicatorLst, new_); | 16 } | 17 routingPathLst = newRoutingPathLst; | 18 } |
|