Temporal partitioning and scheduling data flow graphs for reconfigurable computers
- 1 June 1999
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computers
- Vol. 48 (6) , 579-590
- https://doi.org/10.1109/12.773795
Abstract
FPGA-based configurable computing machines are evolving rapidly. They offer the ability to deliver very high performance at a fraction of the cost when compared to supercomputers. The first generation of configurable computers (those with multiple FPGAs connected using a specific interconnect) used statically reconfigurable FPGAs. On these configurable computers, computations are performed by partitioning an entire task into spatially interconnected subtasks. Such configurable computers are used in logic emulation systems and for functional verification of hardware. In general, configurable computers provide the ability to reconfigure rapidly to any desired custom form. Hence, the available resources can be reused effectively to cut down the hardware costs and also improve the performance. In this paper, we introduce the concept of temporal partitioning to partition a task into temporally interconnected subtasks. Specifically, we present algorithms for temporal partitioning and scheduling data flow graphs for configurable computers. We are given a configurable computing unit (RPU) with a logic capacity of S/sub RPU/ and a computational task represented by an acyclic data flow graph G=(V, E). Computations with logic area requirements that exceed S/sub RPU/ cannot be completely mapped on a configurable computer (using traditional spatial mapping techniques). However, a temporal partitioning of the data flow graph followed by proper scheduling can facilitate the configurable computer based execution. Temporal partitioning of the data flow graph is a k-way partitioning of G=(V, E) such that each partitioned segment will not exceed S/sub RPU/ in its logic requirement. Scheduling assigns an execution order to the partitioned segments so as to ensure proper execution. Thus, for each segment in {s/sub 1/,s/sub 2/,...,s/sub k/}, scheduling assigns a unique ordering S/sub i/-j,1/spl les/i/spl les/k,1/spl les/j/spl les/k, such that the computation would execute in proper sequential order as defined by the flow graph G=(V, E).Keywords
This publication has 23 references indexed in Scilit:
- The roles of FPGAs in reprogrammable systemsProceedings of the IEEE, 1998
- REACT: Reactive environment for runtime reconfigurationPublished by Springer Nature ,1998
- Logic emulation with virtual wiresIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1997
- RACE: Reconfigurable and adaptive computing environmentPublished by Springer Nature ,1996
- The Trianus system and its application to custom computingPublished by Springer Nature ,1996
- FPGA and CPLD architectures: a tutorialIEEE Design & Test of Computers, 1996
- An efficient logic emulation systemIEEE Transactions on Very Large Scale Integration (VLSI) Systems, 1993
- Fast algorithms for computing the discrete cosine transformIEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, 1992
- The high-level synthesis of digital systemsProceedings of the IEEE, 1990
- Force-directed scheduling for the behavioral synthesis of ASICsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1989