
Energy-Efficient Memory Port Assignment 291
for ports i =1..n
assigned = FALSE
for ports j =1..n
if PrevColor [j] = Color (G, CS, i)
if (TempAssign [j] = NULL)
TempAssign [j] = Node (G, CS, i)
assigned = TRUE
break
if (assigned = TRUE) continue;
for ports m =1..n
if TempAssign [m] = NULL
TempAssign [m]=Node(G, CS, i)
PrevColor [m] = Color (G, CS, i)
break
UpdateSchedule (G, CS, TempAssign)
The input to REASSIGN
PORTS is a scheduled DFG with memory access
nodes already colored, and the number of ports. The color of the previous
memory node assigned to a port is stored in PrevColor array, with the array
elements initialized to NULL. At every cycle in the schedule, ...