C Compiler Retargeting Based on Instruction Semantics Models

Efficient architecture exploration and design of application specific instruction-set processors (ASIPs) requires retargetable software development tools, in particular C compilers that can be quickly adapted to new architectures. A widespread approach is to model the target architecture in a dedicated architecture description language (ADL) and to generate the tools automatically from the ADL specification. For C compiler generation, however, most existing systems are limited either by the manual retargeting effort or by redundancies in the ADL models that lead to potential inconsistencies. We present a new approach to retargetable compilation, based on the LISA 2.0 ADL with instruction semantics, that minimizes redundancies while simultaneously achieving a high degree of automation. The key of our approach is to generate the mapping rules needed in the compiler's code selector from the instruction semantics information. We describe the required analysis and generation techniques, and present experimental results for several embedded processors.

[1]  Trond Ytterdal,et al.  Behavioral modeling and simulation of high-speed analog-to-digital converters using SystemC , 2003, Proceedings of the 2003 International Symposium on Circuits and Systems, 2003. ISCAS '03..

[2]  Mendel Rosenblum,et al.  Embra: fast and flexible machine simulation , 1996, SIGMETRICS '96.

[3]  Gerhard Fettweis,et al.  A new network processor architecture for high-speed communications , 1999, 1999 IEEE Workshop on Signal Processing Systems. SiPS 99. Design and Implementation (Cat. No.99TH8461).

[4]  Peter Gray,et al.  The COBRA-ABS high-level synthesis system for multi-FPGA custom computing machines , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[5]  Heinrich Meyr,et al.  LISA—machine description language for cycle-accurate models of programmable DSP architectures , 1999, DAC '99.

[6]  Waleed Meleis,et al.  Efficient backtracking instruction schedulers , 2000, Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622).

[7]  Clifford Liem,et al.  Industrial experience using rule-driven retargetable code generation for multimedia applications , 1995 .

[8]  Waleed Meleis,et al.  Backtracking-Based Instruction Scheduling to Fill Branch Delay Slots , 2004, International Journal of Parallel Programming.

[9]  Mark Smotherman,et al.  Efficient DAG construction and heuristic calculation for instruction scheduling , 1991, MICRO 24.

[10]  Ahmed Amine Jerraya,et al.  Industrial experience using rule-driven retargetable code generation for multimedia applications , 1995, Proceedings of the Eighth International Symposium on System Synthesis.

[11]  Rainer Leupers,et al.  A universal technique for fast and flexible instruction-set architecture simulation , 2002, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[12]  Hans Eveking,et al.  Symbolic simulation techniques-state-of-the-art and applications , 2001, Sixth IEEE International High-Level Design Validation and Test Workshop.

[13]  Rainer Leupers,et al.  Application specific compiler/architecture codesign: a case study , 2002, LCTES/SCOPES '02.

[14]  Kingshuk Karuri,et al.  A methodology and tool suite for C compiler generation from ADL processor models , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[15]  Alfred V. Aho,et al.  Code generation using tree matching and dynamic programming , 1989, ACM Trans. Program. Lang. Syst..

[16]  Rainer Leupers,et al.  Modeling Instruction Semantics in ADL Processor Descriptions for C Compiler Retargeting , 2004, SAMOS.

[17]  Rainer Leupers,et al.  Instruction scheduler generation for retargetable compilation , 2003, IEEE Design & Test of Computers.

[18]  Heinrich Meyr,et al.  LISA-machine description language and generic machine model for HW/SW co-design , 1996, VLSI Signal Processing, IX.

[19]  Gert Goossens,et al.  Chess: retargetable code generation for embedded DSP processors , 1994, Code Generation for Embedded Processors.

[20]  Srinivas Devadas,et al.  ISDL: an instruction set description language for retargetability , 1997, DAC.

[21]  Heinrich Meyr,et al.  Architecture implementation using the machine description language LISA , 2002, Proceedings of ASP-DAC/VLSI Design 2002. 7th Asia and South Pacific Design Automation Conference and 15h International Conference on VLSI Design.

[22]  Heinrich Meyr,et al.  A novel methodology for the design of application-specificinstruction-set processors (ASIPs) using a machine description language , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[23]  Yoshinori Takeuchi,et al.  Design of application specific CISC using PEAS-III , 2002, Proceedings 13th IEEE International Workshop on Rapid System Prototyping.

[24]  David Keppel,et al.  Shade: a fast instruction-set simulator for execution profiling , 1994, SIGMETRICS.

[25]  Gerhard Fettweis,et al.  A generic tool set for application specific processor architectures , 2000, CODES '00.

[26]  S. Sahu,et al.  SPHINX: a high level synthesis system for DSP design , 1992, [Proceedings] 1992 IEEE International Symposium on Circuits and Systems.

[27]  Yoshinori Takeuchi,et al.  PEAS-III: an ASIP design environment , 2000, Proceedings 2000 International Conference on Computer Design.

[28]  Susan J. Eggers,et al.  The Marion system for retargetable instruction scheduling , 1991, PLDI '91.

[29]  Hugo De Man,et al.  A graph based processor model for retargetable code generation , 1996, Proceedings ED&TC European Design and Test Conference.

[30]  Miltos D. Grammatikakis,et al.  IPSIM: systemc 3.0 enhancements for communication refinement , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[31]  Rainer Leupers,et al.  Instruction encoding synthesis for architecture exploration using hierarchical processor models , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[32]  Sanjay M. Krishnamurthy,et al.  A brief survey of papers on scheduling for pipelined processors , 1990, SIGP.

[33]  Ricardo E. Gonzalez,et al.  Xtensa: A Configurable and Extensible Processor , 2000, IEEE Micro.

[34]  Erik Hagersten,et al.  Simple COMA node implementations , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[35]  Yoshinori Takeuchi,et al.  Design space exploration for DSP applications using the ASIP development system PEAS-III , 2002, 2002 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[36]  G. Venkatesh,et al.  Simulator for IDEAL-implementation and environment , 1991, [1991] Proceedings. Fourth CSI/IEEE International Symposium on VLSI Design.

[37]  Christophe Tabacznyj Abstract Clustering for Program Comprehension , 2000, IWFM.

[38]  Guido Araujo,et al.  Code generation algorithms for digital signal processors , 1997 .

[39]  David Keppel,et al.  A portable interface for on-the-fly instruction space modification , 1991, ASPLOS IV.

[40]  Kemal Ebcioglu,et al.  CARS: a new code generation framework for clustered ILP processors , 2001, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture.

[41]  Markus Freericks,et al.  Describing instruction set processors using nML , 1995, Proceedings the European Design and Test Conference. ED&TC 1995.

[42]  Lothar Nowak Graph based retargetable microcode compilation in the MIMOLA design system , 1987, MICRO 20.

[43]  Keith D. Cooper,et al.  An Experimental Evaluation of List Scheduling , 1998 .

[44]  Srinivas Devadas,et al.  Instruction selection, resource allocation, and scheduling in the AVIV retargetable code generator , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[45]  Rodolfo Azevedo,et al.  Exploring memory hierarchy with ArchC , 2003, Proceedings. 15th Symposium on Computer Architecture and High Performance Computing.

[46]  Rainer Leupers,et al.  A novel approach for flexible and consistent ADL-driven ASIP design , 2004, Proceedings. 41st Design Automation Conference, 2004..

[47]  Nikil Dutt,et al.  RTGEN: an algorithm for automatic generation of reservation tables from architectural descriptions , 1999, Proceedings 12th International Symposium on System Synthesis.

[48]  Sharad Malik,et al.  Architecture Description Languages for Retargetable Compilation , 2007, The Compiler Design Handbook, 2nd ed..

[49]  Daniel D. Gajski,et al.  A retargetable, ultra-fast instruction set simulator , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[50]  Nikil D. Dutt,et al.  Functional abstraction driven design space exploration of heterogeneous programmable architectures , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[51]  James R. Larus,et al.  Fast out-of-order processor simulation using memoization , 1998, ASPLOS VIII.

[52]  Heinrich Meyr,et al.  Retargetable compiled simulation of embedded processors using a machine description language , 2000, TODE.

[53]  Edwin A. Harcourt,et al.  Generation of software tools from processor descriptions for hardware/software codesign , 1997, DAC.

[54]  Magdy Bayoumi,et al.  Synthesizing DSP architectures from behavioral specifications: a formal approach , 1990, IEEE International Symposium on Circuits and Systems.

[55]  Sharad Malik,et al.  Flexible and formal modeling of microprocessors with application to retargetable simulation , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[56]  Peter S. Magnusson,et al.  Efficient memory simulation in SimICS , 1995, Proceedings of Simulation Symposium.

[57]  Pierre G. Paulin Towards application-specific architecture platforms: embedded systems design automation technologies , 2000, Proceedings of the 26th Euromicro Conference. EUROMICRO 2000. Informatics: Inventing the Future.

[58]  Rainer Leupers,et al.  Generation of interpretive and compiled instruction set simulators , 1999, Proceedings of the ASP-DAC '99 Asia and South Pacific Design Automation Conference 1999 (Cat. No.99EX198).

[59]  S. Sutarwala,et al.  TSG-a test system generator for debugging and regression test of high-level behavioral synthesis tools , 1989, Proceedings. 'Meeting the Tests of Time'., International Test Conference.

[60]  Rainer Leupers,et al.  Retargetable generation of code selectors from HDL processor models , 1997, Proceedings European Design and Test Conference. ED & TC 97.

[61]  Christopher W. Fraser,et al.  Engineering a simple, efficient code-generator generator , 1992, LOPL.

[62]  Heinrich Meyr,et al.  Using static scheduling techniques for the retargeting of high speed, compiled simulators for embedded processors from an abstract machine description , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[63]  James R. Larus,et al.  Facile: a language and compiler for high-performance processor simulators , 2001, PLDI '01.

[64]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .

[65]  Michael Gschwind,et al.  Dynamic Binary Translation and Optimization , 2001, IEEE Trans. Computers.

[66]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[67]  Nikil D. Dutt,et al.  EXPRESSION: a language for architecture exploration through compiler/simulator retargetability , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).