Research Article

Runtime Scheduling, Allocation, and Execution of Real-Time Hardware Tasks onto Xilinx FPGAs Subject to Fault Occurrence

Algorithm 6

EVC heuristic: Compute_TAM().
        input: FPGA_state and the state of the tasks
        output: TAM
1     for     do
2    for     do
3     TAM[i][j] ;
   // Bottom
4     if     then
5     if  FPGA_state[i][ ] is Damaged  then
6      TAM[i][j] TAM[i][j] + ;
7     else  if  Task @ ( ) is Executing  then
8      TAM[i][j] TAM[i][j] + Remaining of Task @ ( );
9     end if
10    else
11     TAM[i][j] TAM[i][j]+ ;
12    end if  
   // Left
13  if     then
14   if  FPGA_state[ ][ ] is Damaged  then
15    TAM[i][j] TAM[i][j] + ;
16   else  if  Task @ ( ) is Executing  then
17    TAM[i][j] TAM[i][j] + Remaining of Task @ ( );
18   end if  
19  else
20   TAM[i][j] TAM[i][j] + ;
21  end if
   // Top
22  if     then
23   if  FPGA_state[ ][ ] is Damaged  then
24    TAM[i][j] TAM[i][j] + ;
25   else  if  Task @ (i, j + 1) is Executing  then
26    TAM[i][j] TAM[i][j] + Remaining of Task @ ( );
27   end if  
28   else
29   TAM[i][j] TAM[i][j] + ;
30  end if
   // Right
31  if     then
32   if  FPGA_state[ ][ ] is Damaged  then
33    TAM[i][j] TAM[i][j] + ;
34   else  if  Task @ ( ) is Executing  then
35    TAM[i][j] TAM[i][j] + Remaining of Task @ ( );
36   end if  
37  else
38   TAM[i][j] TAM[i][j] + ;
39  end if
40 end for
41  end for