Acceleration of software algorithms using hardware/software co-design techniques

Abstract Currently there is significant interest in the design and implementation of embedded systems where the hardware and software subsystems are developed concurrently in order to meet design constraints. We present a development environment for general-purpose systems, where the objective is to accelerate the performance of software-based applications, which are specified by C programs. Such programs may be partitioned into hardware and software subsystems — a speed-critical region of the software is implemented in an FPGA in order to provide the performance acceleration. We also discuss two versions of the underlying system hardware architecture. Practical examples are given to illustrate our approach.

[1]  Gaetano Borriello,et al.  The Chinook hardware/software co-synthesis system , 1995 .

[2]  A. Smith,et al.  PRISM-II compiler and architecture , 1993, [1993] Proceedings IEEE Workshop on FPGAs for Custom Computing Machines.

[3]  Wayne Wolf,et al.  Hardware-software co-design of embedded systems , 1994, Proc. IEEE.

[4]  John Forrest,et al.  A development environment for the cosynthesis of embedded software/hardware systems , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[5]  M. D. Edwards,et al.  Software acceleration using programmable hardware devices , 1996 .

[6]  Axel Jantsch,et al.  Hardware/software partitioning and minimizing memory interface traffic , 1994, EURO-DAC '94.

[7]  John Forrest,et al.  A practical hardware architecture to support software acceleration , 1996, Microprocess. Microsystems.

[8]  J. P. Calvez,et al.  A CoDesign experience with the MCSE methodology , 1994, Third International Workshop on Hardware/Software Codesign.

[9]  Frank Vahid,et al.  A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning , 1994, EURO-DAC '94.

[10]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.

[11]  Abraham Lempel,et al.  A universal algorithm for sequential data compression , 1977, IEEE Trans. Inf. Theory.

[12]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.

[13]  Giovanni De Micheli,et al.  Program implementation schemes for hardware-software systems , 1994, Computer.

[14]  Jan Madsen,et al.  A codesign case study in computer graphics , 1994, CODES.

[15]  H. Veit,et al.  CASTLE: an interactive environment for HW-SW co-design , 1994, Third International Workshop on Hardware/Software Codesign.

[16]  Giovanni De Micheli,et al.  Hardware-software cosynthesis for digital systems , 1993, IEEE Design & Test of Computers.