An efficient algorithm for finding empty space for online FPGA placement

A fast and efficient algorithm for finding empty area is necessary for online placement, task relocation and defragmentation on a partially reconfigurable FPGA. We present an algorithm that finds empty area as a list of overlapping maximal rectangles. Using an innovative representation of the FPGA, we are able to predict possible locations of the maximal empty rectangles. Worst-case time complexity of our algorithm is O(xy) where x is the number of columns, y is the number of rows and x.y is the total number of cells on the FPGA. Experiments show that, in practice, our algorithm needs to scan less than 15% of the FPGA cells to make a list of all maximal empty rectangles.

[1]  Alok Aggarwal,et al.  Fast algorithms for computing the largest empty rectangle , 1987, SCG '87.

[2]  Patrick Healy,et al.  An optimal algorithm for rectangle placement , 1999, Oper. Res. Lett..

[3]  Majid Sarrafzadeh,et al.  Fast Template Placement for Reconfigurable Computing Systems , 2000, IEEE Des. Test Comput..

[4]  Marco Platzner,et al.  Fast online task placement on FPGAs: free space partitioning and 2D-hashing , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[5]  Gustavo Ribeiro Alves,et al.  Run-time management of logic resources on reconfigurable systems , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[6]  Renée J. Miller,et al.  Mining for empty spaces in large data sets , 2003, Theor. Comput. Sci..

[7]  Ranga Vemuri,et al.  Area Fragmentation in Reconfigurable Operating Systems , 2004, ERSA.

[8]  M. Orlowski,et al.  A new algorithm for the largest empty rectangle problem , 1990, Algorithmica.