Architecture description languages for programmable embedded systems

Embedded systems present a tremendous opportunity to customise designs by exploiting the application behaviour. Shrinking time-to-market, coupled with short product lifetimes, create a critical need for rapid exploration and evaluation of candidate architectures. Architecture description languages (ADL) enable exploration of programmable architectures for a given set of application programs under various design constraints such as area, power and performance. The ADL is used to specify programmable embedded systems, including processor, coprocessor and memory architectures. The ADL specification is used to generate a variety of software tools and models facilitating exploration and validation of candidate architectures. The paper surveys the existing ADLs in terms of (a) the inherent features of the languages and (b) the methodologies they support to enable simulation, compilation, synthesis, test generation and validation of programmable embedded systems. It concludes with a discussion of the relative merits and demerits of the existing ADLs and expected features of future ADLs.

[1]  Nikil D. Dutt,et al.  A top-down methodology for microprocessor validation , 2004, IEEE Design & Test of Computers.

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

[3]  Robin Milner,et al.  Definition of standard ML , 1990 .

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

[5]  Aviral Shrivastava,et al.  A customizable compiler framework for embedded systems , 2001 .

[6]  Jack W. Davidson,et al.  A formal model and specification language for procedure calling conventions , 1995, POPL '95.

[7]  Srinivas Devadas,et al.  A methodology for accurate performance evaluation in architecture exploration , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[8]  Norman Ramsey,et al.  Specifying representations of machine instructions , 1997, TOPL.

[9]  Maria Freericks,et al.  The nml machine description formalism , 1991 .

[10]  Nikil D. Dutt,et al.  V-SAT: a visual specification and analysis tool for system-on-chip exploration , 2001, Proceedings 25th EUROMICRO Conference. Informatics: Theory and Practice for the New Millennium.

[11]  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).

[12]  Mario Barbacci,et al.  Instruction set processor specifications (ISPS): The notation and its applications , 1981, IEEE Transactions on Computers.

[13]  Nikil D. Dutt,et al.  Automatic modeling and validation of pipeline specifications driven by an architecture description language [SoC] , 2002, Proceedings of ASP-DAC/VLSI Design 2002. 7th Asia and South Pacific Design Automation Conference and 15h International Conference on VLSI Design.

[14]  Nikil D. Dutt,et al.  Automatic validation of pipeline specifications , 2001, Sixth IEEE International High-Level Design Validation and Test Workshop.

[15]  Rainer Leupers,et al.  RTL processor synthesis for architecture exploration and implementation , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[16]  G. Braun,et al.  A universal technique for fast and flexible instruction-set architecture simulation , 2002, Proceedings 2002 Design Automation Conference (IEEE Cat. No.02CH37324).

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

[18]  Chuck Siska,et al.  A processor description language supporting retargetable multi-pipeline DSP program development tools , 1998, Proceedings. 11th International Symposium on System Synthesis (Cat. No.98EX210).

[19]  Sharad Malik,et al.  Synthesizing operating system based device drivers in embedded systems , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).

[20]  Nikil Dutt,et al.  Specification-driven validation of programmable embedded systems , 2004 .

[21]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[22]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[23]  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).

[24]  Edwin A. Harcourt,et al.  Generation Of Software Tools From Processor Descriptions For Hardware/software Codesign , 1997, Proceedings of the 34th Design Automation Conference.

[25]  Nikil D. Dutt,et al.  An efficient retargetable framework for instruction-set simulation , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).

[26]  Nikil D. Dutt,et al.  Automatic functional test program generation for pipelined processors using model checking , 2002, Seventh IEEE International High-Level Design Validation and Test Workshop, 2002..

[27]  Alois Knoll,et al.  Automated generation of DSP program development tools using a machine description formalism , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[28]  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..

[29]  Hiroyuki Tomiyama,et al.  Language and compiler for optimizing datapath widths of embedded systems , 1998 .

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

[31]  Nikil D. Dutt,et al.  Processor-memory co-exploration driven by a Memory-Aware Architecture Description Language , 2001, VLSI Design 2001. Fourteenth International Conference on VLSI Design.

[32]  Nikil D. Dutt,et al.  Functional coverage driven test generation for validation of pipelined processors , 2005, Design, Automation and Test in Europe.

[33]  Nikil D. Dutt,et al.  Rapid exploration of pipelined processors through automatic generation of synthesizable RTL models , 2003, 14th IEEE International Workshop on Rapid Systems Prototyping, 2003. Proceedings..

[34]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[35]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[36]  Gert Goossens,et al.  Code Generation for Embedded Processors , 1995 .

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

[38]  Nikil D. Dutt,et al.  RTGEN: An Algorithm for Automatic Generation of Reservation Tables from Architectural Descriptions , 2003, IEEE Trans. Very Large Scale Integr. Syst..

[39]  Nikil D. Dutt,et al.  Memory aware compilation through accurate timing extraction , 2000, Proceedings 37th Design Automation Conference.

[40]  Heinrich Meyr,et al.  A methodology for the design of application specific instruction set processors (ASIP) using the machine description language LISA , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[41]  Nikil D. Dutt,et al.  Graph-based functional test program generation for pipelined processors , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[42]  Nikil D. Dutt,et al.  Instruction set compiled simulation: a technique for fast and flexible instruction set simulation , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[43]  赤星 博輝,et al.  A study on design support for computer architecture design , 1996 .

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

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

[46]  Nikil D. Dutt,et al.  Processor-memory coexploration using an architecture description language , 2004, TECS.

[47]  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).

[48]  Rainer Leupers,et al.  Retargetable Code Generation Based on Structural Processor Description , 1998, Des. Autom. Embed. Syst..

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

[50]  Nikil D. Dutt,et al.  Automatic verification of in-order execution in microprocessors with fragmented pipelines and multicycle functional units , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[51]  B. Ramakrishna Rau,et al.  HMDES Version 2.0 Specification , 1996 .

[52]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[53]  S. Devadas,et al.  ISDL: An Instruction Set Description Language For Retargetability , 1997, Proceedings of the 34th Design Automation Conference.

[54]  Nikil D. Dutt,et al.  Towards Automatic Validation of Dynamic Behavior in Pipelined Processor Specifications , 2003, Des. Autom. Embed. Syst..

[55]  Hiroyuki Tomiyama,et al.  Architecture Description Languages for Systems-on-Chip Design , 1999 .

[56]  Nikil D. Dutt,et al.  Modeling and validation of pipeline specifications , 2004, TECS.

[57]  Rajat Moona,et al.  Processor modeling for hardware software codesign , 1999, Proceedings Twelfth International Conference on VLSI Design. (Cat. No.PR00013).

[58]  Nikil D. Dutt,et al.  Synthesis-driven exploration of pipelined embedded processors , 2004, 17th International Conference on VLSI Design. Proceedings..

[59]  Eko Fajar Nurprasetyo,et al.  A Programming Language for Processor Based Embedded Systems , 1998 .

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

[61]  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.

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

[63]  Nikil D. Dutt,et al.  Reducing code size for heterogeneous-connectivity-based VLIW DSPs through synthesis of instruction set extensions , 2003, CASES '03.

[64]  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.

[65]  Yoshinori Takeuchi,et al.  Synthesizable HDL Generation for Pipelined Processors from a Micro-Operation Description (Special Section of Selected Papers from the 12th Workshop on Circuit and Systems in Karuizawa) , 2000 .

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

[67]  Nikil D. Dutt,et al.  Modeling and Verification of Pipelined Embedded Processors in the Presence of Hazards and Exceptions , 2002, DIPES.

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

[69]  Pierre G. Paulin,et al.  Flexware: A flexible firmware development environment for embedded systems , 1994, Code Generation for Embedded Processors.