Evaluating Placement Algorithms for Run-Time Reconfigurable Systems*
Dedra Eatmon
Clay S. Gloster, Jr.
[email protected] [email protected] North Carolina State University Electrical and Computer Engineering Department
*can be found at http://www4.ncsu.edu/~deatmon/DREAM.html Paper Number: E1
Outline n n
n
Background Information and Motivation Dynamic REsource Allocation & Management (DREAM) Framework Conclusions and Future Work
Eatmon & Gloster
2
E1
Introduction n
n
n
The Field Programmable Gate Array (FPGA) provides an alternative to both general purpose processor and Application Specific Integrated Circuits (ASIC) With FPGAs, logic can be configured to realize different applications in hardware FPGAs can provide better performance than general purpose processors without the fabrication expense of ASIC
Eatmon & Gloster
3
E1
A Generic FPGA Architecture n
n
n
Each configurable logic block (CLB) contains gates interconnected by switches and routing Pins can be programmed as input, output, or bidirectional Considering applications where routing dominates the design area, the number of applications that can be executed on a single device is limited
Eatmon & Gloster
4
E1
Reconfigurable Computing Systems n
n
n
n
The application is partitioned into candidates to be implemented in both hardware and software The FPGA implements hardware portions of application Host processor executes portions to remain in software Partitioning can result in significant speedup over implementing the entire application in software
Eatmon & Gloster
5
E1
Run-time Reconfigurable Systems n
n
n
A run-time reconfigurable computing system allows either partial or full reconfiguration of FPGAs during execution because the FPGA may not rely solely on pin-to-pin connections for I/O Here, mappings must be placed as quickly as possible to service the user’s needs in potentially compute-intensive applications Delay in placement introduces delay in execution, neither of which are desired
Eatmon & Gloster
6
E1
Related Research n
n
n
n
K. Bazargan and M. Sarrafzadeh have presented serveral algorithms for placing modules on reconfigurable computing systems The paper presents a solution that trades execution time for quality of placement They introduce a placement algorithm that is a hybrid of the best-fit and first fit algorithms While the paper introduces a single placement algorithm, DREAM is a framework that allows user to benchmark the performance of several algorithms
Eatmon & Gloster
7
E1
DREAM Framework n
n
Request File The Dynamic Resource Module library Allocation and Management (DREAM) Framework has been designed to evaluate DREAM placement algorithms for Framework configurable logic devices Written in Java, the framework simulates placement on a device and Placed Modules Report evaluates the quality of each • %device utilization placement using a cost • avg. placement time function
Eatmon & Gloster
8
E1
Relocateable Hardware Modules n
The tool simulates placement on devices that support relocateable hardware modules (RHMs) – Applications are independent of each other – Application mappings do not require pin-to-pin connections
n
n
RHMs are graphical representations of mappings that include internal routing RHMs can be placed during execution of existing modules without interrupting other modules
Eatmon & Gloster
9
E1
DREAM User Interface n
n
n
The DREAM Framework for relocateable hardware is a graphical method of placing modules on a hardware device The CLBs of an FPGA are represented by a 2-D array of blocks where a size m grid denotes m x m CLBs Each module is a representation of an FPGA mapping of an application
Eatmon & Gloster
10
E1
Features of DREAM n
n
n n n n
n
n
User can chose one of three algorithms – Exhaustive search – First-fit – Random Clear: Clears the grid representing the hardware resource and disposes of any previously placed modules Next: Processes requests one at a time as controlled by user Cost: Calculates the cost of the current placement Save: Saves the current placement in a file for future use Load: Loads a previously saved placement onto the grid representing the hardware resource Place All: Processes all requests in the entire request file and places modules accordingly Exit: Stops execution of the program and closes the application
Eatmon & Gloster
11
E1
DREAM Cost Function n
n n
Simplistic cost function calculates amount of contiguous space in two dimensions after each placement Cost ranges from zero (empty grid) to m2 (full grid) Cost assists in identifying the best placement
Eatmon & Gloster
12
E1
Cost Function Example, x-direction n
n
n
n
The grid is first scanned in the x-direction to find the maximum amount of contiguous space in each row x C i is the maximum amount of contiguous space in the xdirection for row i m x ( m − C i ) , where Costx= ∑ i =1 m is the size of the grid Costx=1329 Given the current placement, the cost is to be calculated
Eatmon & Gloster
13
E1
Cost Function Example, y-direction n
n
n
n
The grid is then scanned in the y-direction to find the maximum amount of contiguous space in each row y C i is the maxiumum amount of contiguous spce in the y-direction for row i m y ( m − ) , where Costy = ∑ C i i =1 m is the size of the grid Costy =1446
Eatmon & Gloster
14
E1
Cost Function Example, Total Cost n
n n
The total cost equals the sum of the cost in both directions CostTotal = Costx + Costy CostTotal = 2775
Eatmon & Gloster
15
E1
First -Fit and Random Placement n
First-fit Placement – Module is placed at the first available empty location – If no empty locations exist, insertion is denied
n
Random Placement – Random (x,y) location is generated and checked for availability – If (x,y) is available, RHM is placed there; if not, another random location is generated and checked – If RHM not placed after pre-determined number of attempts (default = 8000 attempts), insertion is denied
Eatmon & Gloster
16
E1
DREAM User Modes n
DREAM can be executed in two modes – musd: multiple users requesting modules on a single device (default) – mumd: multiple users per device with multiple devices available
DREAM -mumd
Eatmon & Gloster
17
E1
Exhaustive Search n
Exhaustive Search Placement – Each (x,y) location on the grid, is first checked for availability – If available, cost of placing RHM is calculated at that location – After all available locations have been checked, RHM is then placed at location with minimum cost – If no location is available, insertion is denied
Eatmon & Gloster
18
E1
Conclusions n
n
n
n
The DREAM Framework answers the call for a tool to identify placement algorithms that can be effectively used for real-time placement DREAM can be used in conjunction with a run-time reconfigurable system to provide numerical data for performing a comparative analysis of placement algorithms A cost function has been presented to aid in benchmarking placement algorithms A comparison of a few placement algorithms has been presented
Eatmon & Gloster
19
E1