Hardware-software co-design of embedded systems

This paper surveys the design of embedded computer systems, which use software running on programmable computers to implement system functions. Creating an embedded computer system which meets its performance, cost, and design time goals is a hardware-software co-design problem-the design of the hardware and software components influence each other. This paper emphasizes a historical approach to show the relationships between well-understood design problems and the as-yet unsolved problems in co-design. We describe the relationship between hardware and software architecture in the early stages of embedded system design. We describe analysis techniques for hardware and software relevant to the architectural choices required for hardware-software co-design. We also describe design and synthesis techniques for co-design and related problems. >

[1]  Mani Srivastava,et al.  Rapid-prototyping of hardware and software in a unified framework , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[2]  Jay K. Strosnider,et al.  SMART (strategic memory allocation for real-time) cache design using the MIPS R3000 , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[3]  Phillip Ein-Dor,et al.  Attributes of the performance of central processing units: a relative performance prediction model , 1987, CACM.

[4]  Rajiv Gupta,et al.  Applying compiler techniques to scheduling in real-time systems , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[5]  Pierre G. Paulin,et al.  DSP design tool requirements for embedded systems: A telecommunications industrial perspective , 1995, J. VLSI Signal Process..

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

[7]  Stephen J. Mellor,et al.  Object lifecycles: modeling the world in states , 1992 .

[8]  Masahiro Tsuchiya,et al.  A Task Allocation Model for Distributed Computing Systems , 1982, IEEE Transactions on Computers.

[9]  David B. Kirk,et al.  Process dependent static cache partitioning for real-time systems , 1988, Proceedings. Real-Time Systems Symposium.

[10]  Hideyuki Tokuda,et al.  An object-oriented real-time programming language , 1992, Computer.

[11]  Mark N. Wegman,et al.  An efficient method of computing static single assignment form , 1989, POPL '89.

[12]  Harold S. Stone,et al.  Multiprocessor Scheduling with the Aid of Network Flow Algorithms , 1977, IEEE Transactions on Software Engineering.

[13]  Eng-Kee Kwang,et al.  Multiple microcontrollers in an embedded system , 1992 .

[14]  Donald E. Thomas,et al.  Architectural partitioning for system level synthesis of integrated circuits , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[15]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[16]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[17]  Alice C. Parker,et al.  The high-level synthesis of digital systems , 1990, Proc. IEEE.

[18]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[19]  D. B. Kirk,et al.  SMART (strategic memory allocation for real-time) cache design , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[20]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.

[21]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[22]  Jörg Henkel,et al.  Fast timing analysis for hardware-software co-synthesis , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[23]  A LeeEdward,et al.  A Hardware-Software Codesign Methodology for DSP Applications , 1993 .

[24]  Jing-Jang Hwang,et al.  Multiprocessor scheduling with interprocessor communication delays , 1988 .

[25]  Philip Koopman,et al.  Towards Execution Models of Distributed Systems: A Case Study of Elevator Design , 1993 .

[26]  Michael A. Cusumano,et al.  Japan's Software Factories: A Challenge to U.S. Management, Michael A. Cusumano. 1991. Oxford University Press, New York, NY. 513 pages. ISBN: 0-19-506216-7 , 1991, The Journal of Asian Studies.

[27]  Krithi Ramamritham,et al.  Efficient Scheduling Algorithms for Real-Time Multiprocessor Systems , 1989, IEEE Trans. Parallel Distributed Syst..

[28]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[29]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[30]  Dennis W. Leinbaugh,et al.  Guaranteed response times in a distributed hard-real-time environment , 1986, IEEE Transactions on Software Engineering.

[31]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[32]  Mary Lou Soffa,et al.  An Incremental Version of Iterative Data Flow Analysis , 1989, IEEE Trans. Software Eng..

[33]  Peter Duzy,et al.  The Synthesis Approach to Digital System Design , 1992 .

[34]  Arthur B. Maccabe,et al.  The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages , 1990, PLDI '90.

[35]  Hisashi Kobayashi,et al.  Modeling and analysis , 1978 .

[36]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[37]  Chien-Chung Shen,et al.  A Graph Matching Approach to Optimal Task Assignment in Distributed Computing Systems Using a Minimax Criterion , 1985, IEEE Trans. Computers.

[38]  Ahmed Amine Jerraya,et al.  Interactive system-level partitioning with PARTIF , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[39]  Minh N. Do,et al.  Youn-Long Steve Lin , 1992 .

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

[41]  William P. Birmingham,et al.  Automating the design of computer systems , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[42]  Dennis W. Leinbaugh Guaranteed Response Times in a Hard-Real-Time Environment , 1980, IEEE Transactions on Software Engineering.

[43]  Daniel D. Gajski,et al.  High ― Level Synthesis: Introduction to Chip and System Design , 1992 .

[44]  Richard H. Thayer,et al.  Standards, Guidelines, and Examples on System and Software Requirements Engineering , 1994 .

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

[46]  Wayne H. Wolf,et al.  An Automaton Model for Scheduling Constraints in Synchronous Machines , 1995, IEEE Trans. Computers.

[47]  Edward A. Lee,et al.  Gabriel: a design environment for DSP , 1989, IEEE Micro.

[48]  Alice C. Parker,et al.  SOS: Synthesis of application-specific heterogeneous multiprocessor systems , 2001, J. Parallel Distributed Comput..

[49]  Eric McRae Avoiding microcontroller processing pile-ups , 1993 .

[50]  Michael Hsieh,et al.  An integrated environment for concurrent development of a pixel processor ASIC and application software , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[51]  William P. Birmingham,et al.  Optimal part selection , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[52]  Gaetano Borriello,et al.  Synthesis of the hardware/software interface in microcontroller-based systems , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[53]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[54]  Frederick K. Teichmann,et al.  Airplane design manual , 1939 .

[55]  Catherine E. Houstis,et al.  Module Allocation of Real-Time Applications to Distributed Systems , 1987, IEEE Trans. Software Eng..

[56]  Mani B. Srivastava,et al.  Design and implementation of a robot control system using a unified hardware-software rapid-prototyping framework , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[57]  K. Mani Chandy,et al.  A comparison of list schedules for parallel processing systems , 1974, Commun. ACM.

[58]  Wesley W. Chu,et al.  Task Allocation and Precedence Relations for Distributed Real-Time Systems , 1987, IEEE Transactions on Computers.

[59]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[60]  Hironori Kasahara,et al.  Practical Multiprocessor Scheduling Algorithms for Efficient Parallel Processing , 1984, IEEE Transactions on Computers.

[61]  Edward A. Lee,et al.  A hardware-software codesign methodology for DSP applications , 1993, IEEE Design & Test of Computers.

[62]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[63]  Wayne H. Wolf Modern VLSI design - a systems approach , 1994 .

[64]  C. E. Houstics Module allocation of real-time applications to distributed systems , 1990 .

[65]  Frank D. Anger,et al.  Scheduling Precedence Graphs in Systems with Interprocessor Communication Times , 1989, SIAM J. Comput..

[66]  Alan M. Davis,et al.  Software requirements - analysis and specification , 1990 .

[67]  Michael G. Burke An interval-based approach to exhaustive and incremental interprocedural data-flow analysis , 1990, TOPL.

[68]  Jay Kurt Strosnider Highly responsive real time token rings , 1988 .

[69]  Eduardo B. Fernández,et al.  Bounds on the Number of Processors and Time for Multiprocessor Optimal Schedules , 1973, IEEE Transactions on Computers.

[70]  Daniel P. Siewiorek,et al.  A case study in embedded-system design: The VuMan 2 wearable computer , 1993, IEEE Design & Test of Computers.

[71]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[72]  Hesham El-Rewini,et al.  Scheduling Parallel Program Tasks onto Arbitrary Target Machines , 1990, J. Parallel Distributed Comput..

[73]  James P. Huang Modeling of Software Partition for Distributed Real-Time Applications , 1985, IEEE Transactions on Software Engineering.

[74]  G. A. Frank,et al.  An Architecture Design and Assessment System for Software/Hardware Codesign , 1985, DAC 1985.

[75]  Chang Yun Park,et al.  Predicting deterministic execution times of real-time programs , 1992 .

[76]  Luciano Lavagno,et al.  A Formal Specification Model for Hardware/Software Codesign , 1993 .

[77]  Alan C. Shaw Deterministic timing schema for parallel programs , 1991, [1991] Proceedings. The Fifth International Parallel Processing Symposium.

[78]  Wesley W. Chu,et al.  Task Allocation in Distributed Data Processing , 1980, Computer.

[79]  Kang G. Shin,et al.  Static allocation of periodic tasks with precedence constraints in distributed real-time systems , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.