An architectural co-synthesis algorithm for distributed, embedded computing systems

Many embedded computers are distributed systems, composed of several heterogeneous processors and communication links of varying speeds and topologies. This paper describes a new, heuristic algorithm which simultaneously synthesizes the hardware and software architectures of a distributed system to meet a performance goal and minimize cost. The hardware architecture of the synthesized system consists of a network of processors of multiple types and arbitrary communication topology; the software architecture consists of an allocation of processes to processors and a schedule for the processes. Most previous work in co-synthesis targets an architectural template, whereas this algorithm can synthesize a distributed system of arbitrary topology. The algorithm works from a technology database which describes the available processors, communication links, I/O devices, and implementations of processes on processors. Previous work had proposed solving this problem by integer linear programming (ILP); our algorithm is much faster than ILP and produces high-quality results.

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

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

[3]  Edward A. Lee,et al.  Declustering: A New Multiprocessor Scheduling Technique , 1993, IEEE Trans. Parallel Distributed Syst..

[4]  T. Willis,et al.  Book Reviews : DESIGN OF MACHINE ELEMENTS Fifth Edition M. F. Spotts Prentice Hall, Inc., Englewood Cliffs, NJ, 1978 , 1979 .

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

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

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

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

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

[10]  De MicheliGiovanni,et al.  Hardware-Software Cosynthesis for Digital Systems , 1993 .

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

[12]  Gaetano Borriello,et al.  Sizing synchronization queues: a case study in higher level synthesis , 1991, 28th ACM/IEEE Design Automation Conference.

[13]  A. O. Fernandes,et al.  Hardware-software codesign of embedded systems , 1998, Proceedings. XI Brazilian Symposium on Integrated Circuit Design (Cat. No.98EX216).

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

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

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

[17]  Jean Paul Calvez,et al.  Embedded Real-Time Systems , 1993 .

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

[19]  Andrew Wolfe,et al.  TigerSwitch: a case study in embedded computing system design , 1994, Third International Workshop on Hardware/Software Codesign.

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

[21]  Xiaobo Sharon Hu,et al.  Configuration-level hardware/software partitioning for real-time embedded systems , 1994, CODES.

[22]  Andy Wellings,et al.  Embedded Real-Time Systems: a Specification and Design Methodology , 1994 .

[23]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[24]  Miodrag Potkonjak,et al.  Cost optimization in ASIC implementation of periodic hard-real time systems using behavioral synthesis techniques , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

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

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

[27]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

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

[29]  Rolf Ernst,et al.  A path-based technique for estimating hardware runtime in HW/SW-cosynthesis , 1995 .

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

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

[32]  Miodrag Potkonjak,et al.  Cost optimization in ASIC implementation of periodic hard-real time systems using behavioral synthesis techniques , 1995, ICCAD.

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

[34]  Alice C. Parker,et al.  Synthesis of Application-Specific Heterogeneous Multiprocessor Systems , 1992, [1992] Proceedings the 19th Annual International Symposium on Computer Architecture.

[35]  Jean Paul Calvez Embedded real-time systems: a specification and design methodology , 1993 .

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

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

[38]  Wolfgang Rosenstiel,et al.  A method for partitioning UNITY language in hardware and software , 1994, EURO-DAC '94.

[39]  Shimon Even,et al.  Graph Algorithms , 1979 .