Application hardware-software co-design for reconfigurable computing systems

Reconfigurable computing (RC) systems are composed of nodes with tightly coupled microprocessor(s) and field programmable gate arrays (FPGA). These systems provide unique application acceleration opportunities through the reconfigurability of the FPGA co-processor, which enables the customization of the hardware to the underlying applications and the processing synergy between the microprocessor and the FPGA. A formal methodology for hardware-software co-design, however, has not yet been established for the mapping of applications onto such reconfigurable systems. To the best of our knowledge, this is the first effort to formalize application co-design on reconfigurable computing systems. This research addresses the task of formalizing hardware-software co-scheduling for RC systems. Scheduling algorithms from related domains such as embedded computing (EC), heterogeneous computing (HC), and reconfigurable hardware (RH) were evaluated for their potential benefits to scheduling for RC. Selected algorithms from these domains were extended to provide scheduling capabilities for RC systems. The enhanced algorithms are analytically and experimentally shown to provide over one order of magnitude improvement in application throughput. The execution models of EC, HC, and RH, however, are quite different from that of RC systems and thus scheduling solutions were often not optimal. To address this, a formal co-design methodology and an efficient co-scheduling algorithm, Reconfigurable-Computing Co-Scheduling (ReCoS), has been proposed. The co-design methodology proposes a framework to identify an optimal co-schedule based on the available resources, constraints, and performance targets. The ReCoS algorithm is shown to provide up to one order of magnitude improvement over the enhanced scheduling algorithms from related domains for mapping applications onto an RC system. The proposed algorithms can be used by Hardware-Software compilers to deliver optimized solutions. They can also be used as the foundation for productivity tools that can guide users in Hardware-Software co-design of RC applications. To increase the usability and decrease the time necessary to co-design an application for an RC system, The Center for High-Performance Reconfigurable Computing (CHREC) Performance Analysis and Co-Design Tool (CHREC-PACT) was created. PACT provides application performance analysis, resource utilization, constraint analysis, and co-design assistance tools to quickly identify an optimal co-schedule between the microprocessor and its reconfigurable processor.

[1]  Marco Platzner,et al.  A Heuristic Approach to Schedule Periodic Real-Time Tasks on Reconfigurable Hardware , 2005, FPL.

[2]  Bharat P. Dave CRUSADE: hardware/software co-synthesis of dynamically reconfigurable heterogeneous real-time distributed embedded systems , 1999 .

[3]  P. Saha,et al.  Extending Embedded Computing Scheduling Algorithms for Reconfigurable Computing Systems , 2007, 2007 3rd Southern Conference on Programmable Logic.

[4]  Tarek A. El-Ghazawi,et al.  Applications of Heterogeneous Computing in Hardware/Software Co-Scheduling , 2007, 2007 IEEE/ACS International Conference on Computer Systems and Applications.

[5]  Howard Jay Siegel,et al.  Techniques for mapping tasks to machines in heterogeneous computing systems , 2000, J. Syst. Archit..

[6]  Jim Stevens,et al.  Enabling a Uniform Programming Model Across the Software/Hardware Boundary , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[7]  Hossam ElGindy,et al.  Dynamic scheduling of tasks on partially reconfigurable FPGAs , 2000 .

[8]  Niraj K. Jha,et al.  COSYN: Hardware-software co-synthesis of heterogeneous distributed embedded systems , 1999, IEEE Trans. Very Large Scale Integr. Syst..

[9]  Nikil D. Dutt,et al.  Physically-aware HW-SW partitioning for reconfigurable architectures with partial dynamic reconfiguration , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[10]  Tarek A. El-Ghazawi,et al.  A Segmentation Model for Partial Run-Time Reconfiguration , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[11]  Tarek A. El-Ghazawi,et al.  Reconfigurable supercomputing , 2004, The IEEE/ACS International Conference onPervasive Services, 2004. ICPS 2004. Proceedings..

[12]  John Wawrzynek,et al.  Reconfigurable computing: what, why, and implications for design automation , 1999, DAC '99.

[13]  Kris Gaj,et al.  High-throughput reconfigurable computing: design and implementation of an IDEA encryption cryptosystem on the SRC-6E reconfigurable computer , 2005, International Conference on Field Programmable Logic and Applications, 2005..

[14]  Stephen D. Brown,et al.  Architecture of FPGAs and CPLDs: A Tutorial , 2000 .

[15]  Tarek A. El-Ghazawi,et al.  A Methodology for Automating Co-Scheduling for Reconfigurable Computing Systems , 2007, 2007 5th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE 2007).

[16]  Tarek A. El-Ghazawi,et al.  An Implementation Comparison of an IDEA Encryption Cryptosystem on Two General-Purpose Reconfigurable Computers , 2003, FPL.

[17]  Howard Jay Siegel,et al.  A dynamic matching and scheduling algorithm for heterogeneous computing systems , 1998, Proceedings Seventh Heterogeneous Computing Workshop (HCW'98).

[18]  Tarek A. El-Ghazawi,et al.  Productivity of High-Level Languages on Reconfigurable Computers: An HPC Perspective , 2007, 2007 International Conference on Field-Programmable Technology.

[19]  Tarek A. El-Ghazawi,et al.  The Promise of High-Performance Reconfigurable Computing , 2008, Computer.

[20]  Chi-Kwong Li,et al.  Heterogeneous Dominant Sequence Cluster (HDSC): a low complexity heterogeneous scheduling algorithm , 1997, 1997 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, PACRIM. 10 Years Networking the Pacific Rim, 1987-1997.

[21]  Ladislau Bölöni,et al.  A comparison study of static mapping heuristics for a class of meta-tasks on heterogeneous computing systems , 1999, Proceedings. Eighth Heterogeneous Computing Workshop (HCW'99).

[22]  C. Esmail,et al.  Effective system and performance benchmarking for reconfigurable computers , 2004, Proceedings. 2004 IEEE International Conference on Field- Programmable Technology (IEEE Cat. No.04EX921).

[23]  Scott Hauck,et al.  Reconfigurable computing: a survey of systems and software , 2002, CSUR.

[24]  Wayne Wolf,et al.  Process partitioning for distributed embedded systems , 1996, Proceedings of 4th International Workshop on Hardware/Software Co-Design. Codes/CASHE '96.

[25]  Tarek A. El-Ghazawi,et al.  Portable library development for reconfigurable computing systems: A case study , 2008, Parallel Comput..

[26]  Maya Gokhale,et al.  Metropolitan road traffic simulation on FPGAs , 2005, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05).

[27]  Alice C. Parker,et al.  A Design Method for Optimal Synthesis of Application-Specific Heterogeneous Multiprocessor Systems , 1992, Proceedings. Workshop on Heterogeneous Processing.

[28]  Ti-Yen Yen,et al.  Sensitivity-driven co-synthesis of distributed embedded systems , 1995 .

[29]  Zhiyuan Li,et al.  Configuration relocation and defragmentation for run-time reconfigurable computing , 2002, IEEE Trans. Very Large Scale Integr. Syst..

[30]  C. Leangsuksun,et al.  Designs and experiments on heterogeneous mapping heuristics , 1994, Proceedings Heterogeneous Computing Workshop.

[31]  Proshanta Saha Automatic Software Hardware Co-Design for Reconfigurable Computing Systems , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[32]  Tarek El-Ghazawi,et al.  Software/Hardware Co-Scheduling for Reconfigurable Computing Systems , 2007 .

[33]  Niraj K. Jha,et al.  MOGAC: a multiobjective genetic algorithm for hardware-software cosynthesis of distributed embedded systems , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[34]  Soonhoi Ha,et al.  A hardware-software cosynthesis technique based on heterogeneous multiprocessor scheduling , 1999, CODES '99.

[35]  Michalis D. Galanis,et al.  Speedups from partitioning critical software parts to coarse-grain reconfigurable hardware , 2005, 2005 IEEE International Conference on Application-Specific Systems, Architecture Processors (ASAP'05).

[36]  Carl Ebeling,et al.  A Type Architecture for Hybrid Micro-Parallel Computers , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[37]  Robert K. Brayton,et al.  HW/SW partitioning and code generation of embedded control applications on a reconfigurable architecture platform , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).