Programming Tools for Reconfigurable Processors

The capability to tailor the processor instruction set architecture (ISA) around the computational requirements of a given application is proposed today as the most appealing way to match performance with very short time-to-market, accomplishing the reduction of non-recurring engineering (NRE) costs. From Mask-Time Configurable Processors (MTCPs) to Run-Time Reconfigurable Processors (RTRPs), the ISA customization is performed “moving” kernels of initial code from software to hardware, thus introducing a design space exploration problem involving skills in both software and hardware design. Since adaptive processors appear as the natural extension of Digital Signal Processors (DSPs), programming tools for customizable processors need to be as similar as possible to standard software development environments, in order to enable the adaptive computing to the wide audience of DSP programmers. While fast design-space explorations can be performed using high-level description languages, programmers proficient in hardware design can further improve the performance through “structural” descriptions involving, for example, the direct utilization of macro-operators or the possibility of balancing critical paths through register insertion. The widespread knowledge of the ANSI C among developers suggests its usage as main entry language for both configurable and reconfigurable architectures, thus introducing the problem of translating C codes (or C dialects) into some kind of hardware description, be it HDL in case of MTCPs or bit-stream for RTRPs. In this context, Data-Flow Graphs (DFGs) can be efficiently used to close the gap between hardware and software design, thus representing the most natural bridge between the hardware and software descriptions. Furthermore, standard ANSI C can be used by the programmer for the management of the application control flow on the processor core, embedding custom-designed instructions in

[1]  Arthur H. Veen,et al.  Dataflow machine architecture , 1986, CSUR.

[2]  John Wawrzynek,et al.  The Garp Architecture and C Compiler , 2000, Computer.

[3]  Madhavan Mukund Petri Nets and Step Transition Systems , 1992, Int. J. Found. Comput. Sci..

[4]  Rudy Lauwereins,et al.  Reconfigurable Instruction Set Processors from a Hardware/Software Perspective , 2002, IEEE Trans. Software Eng..

[5]  Carl Ebeling,et al.  Specifying and compiling applications for RaPiD , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[6]  Guang R. Gao,et al.  A timed Petri-net model for fine-grain loop scheduling , 1991, PLDI '91.

[7]  Raul Camposano From behavior to structure: high-level synthesis , 1990, IEEE Design & Test of Computers.

[8]  Andrea Lodi,et al.  A C-based algorithm development flow for a reconfigurable processor architecture , 2003, Proceedings. 2003 International Symposium on System-on-Chip (IEEE Cat. No.03EX748).

[9]  Seth Copen Goldstein,et al.  Fast compilation for pipelined reconfigurable fabrics , 1999, FPGA '99.

[10]  Stamatis Vassiliadis,et al.  The MOLEN polymorphic processor , 2004, IEEE Transactions on Computers.

[11]  Wayne Luk,et al.  Pipeline vectorization , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[12]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[13]  Reiner W. Hartenstein,et al.  A decade of reconfigurable computing: a visionary retrospective , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[14]  A. Lodi,et al.  A VLIW processor with reconfigurable instruction set for embedded applications , 2003, 2003 IEEE International Solid-State Circuits Conference, 2003. Digest of Technical Papers. ISSCC..

[15]  Scott A. Mahlke,et al.  IMPACT: an architectural framework for multiple-instruction-issue processors , 1991, ISCA '91.

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

[17]  Krishna V. Palem,et al.  Adaptive explicitly parallel instruction computing , 2001 .

[18]  Greg Snider Performance-constrained pipelining of software loops onto reconfigurable hardware , 2002, FPGA '02.

[19]  André DeHon,et al.  The Density Advantage of Configurable Computing , 2000, Computer.

[20]  Viktor K. Prasanna,et al.  Reconfigurable computing systems , 2002 .

[21]  Dominique Lavenier,et al.  Evaluation of the streams-C C-to-FPGA compiler: an applications perspective , 2001, FPGA '01.

[22]  Claudio Mucci,et al.  A cycle-accurate ISS for a dynamically reconfigurable processor architecture , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[23]  Jeffrey M. Arnold,et al.  S5: the architecture and development flow of a software configurable processor , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[24]  Andreas Koch,et al.  Architecture Exploration and Tools for Pipelined Coarse-Grained Reconfigurable Arrays , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[25]  Luciano Lavagno,et al.  An optimizing C front-end for hardware synthesis , 2006 .

[26]  Giovanni De Micheli,et al.  Synthesis of hardware models in C with pointers and complex data structures , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[27]  Chris Sullivan,et al.  Using C based logic synthesis to bridge the productivity gap , 2004, ASP-DAC 2004: Asia and South Pacific Design Automation Conference 2004 (IEEE Cat. No.04EX753).

[28]  Rudy Lauwereins,et al.  DRESC: a retargetable compiler for coarse-grained reconfigurable architectures , 2002, 2002 IEEE International Conference on Field-Programmable Technology, 2002. (FPT). Proceedings..

[29]  Steve Leibson,et al.  Engineering the complex SOC : fast, flexible design with configurable processors , 2004 .

[30]  Roberto Guerrieri,et al.  A VLIW processor with reconfigurable instruction set for embedded applications , 2003 .

[31]  Ieee Circuits,et al.  IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems information for authors , 2018, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[32]  T. Sato,et al.  Implementation of dynamically reconfigurable processor DAPDNA-2 , 2005, 2005 IEEE VLSI-TSA International Symposium on VLSI Design, Automation and Test, 2005. (VLSI-TSA-DAT)..

[33]  Maya Gokhale,et al.  NAPA C: compiling for a hybrid RISC/FPGA architecture , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[34]  Scott A. Mahlke,et al.  Automated custom instruction generation for domain-specific processor acceleration , 2005, IEEE Transactions on Computers.

[35]  Jürgen Becker,et al.  Reconfigurable processor architectures for mobile phones , 2003, Proceedings International Parallel and Distributed Processing Symposium.

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

[37]  R. Guerrieri,et al.  XiSystem: a XiRisc-based SoC with reconfigurable IO module , 2005, IEEE Journal of Solid-State Circuits.

[38]  Giovanni De Micheli Hardware synthesis from C/C++ models , 1999, DATE '99.

[39]  Thorsten von Eicken,et al.  技術解説 IEEE Computer , 1999 .

[40]  Fadi J. Kurdahi,et al.  MorphoSys: An Integrated Reconfigurable System for Data-Parallel and Computation-Intensive Applications , 2000, IEEE Trans. Computers.

[41]  Jari Nurmi,et al.  A FPGA Implementation of An Open-Source Floating-Point Computation System , 2005, 2005 International Symposium on System-on-Chip.

[42]  Henry Hoffmann,et al.  The Raw Microprocessor: A Computational Fabric for Software Circuits and General-Purpose Programs , 2002, IEEE Micro.

[43]  Rupert Baines,et al.  A total cost approach to evaluating different reconfigurable architectures for baseband processing in wireless receivers , 2003, IEEE Commun. Mag..

[44]  Ayal Zaks,et al.  Auto-vectorization of interleaved data for SIMD , 2006, PLDI '06.

[45]  Bruce A. Draper,et al.  High-Level Language Abstraction for Reconfigurable Computing , 2003, Computer.

[46]  Scott A. Mahlke,et al.  IMPACT: An Architectural Framework for Multiple-Instruction-Issue Processors , 1998, 25 Years ISCA: Retrospectives and Reprints.

[47]  共立出版株式会社 コンピュータ・サイエンス : ACM computing surveys , 1978 .