Abstract
The co-synthesis of hardware–software systems for complex embedded applications has been studied extensively with focus on various qualitative system objectives such as high speed performance and low power dissipation. One of the main challenges in the construction of multiprocessor systems for complex real time applications is provide high levels of system availability that satisfies the users’ expectations. Even though the area of hardware software cosynthesis has been studied extensively in the recent past, the issues that specifically relate to design exploration for highly available architectures need to be addressed more systematically and in a manner that supports active user participation.
In this paper, we propose a user-centric co-synthesis mechanism for generating gracefully degrading, heterogeneous multiprocessor architectures that fulfills the dual objectives of achieving real-time performance as well as ensuring high levels of system availability at acceptable cost. A flexible interface allows the user to specify rules that effectively capture the users’ perceived availability expectations under different working conditions. We propose an algorithm to map these user requirements to the importance attached to the subset of services provided during any functional state. The system availability is evaluated on the basis of these user-driven importance values and a CTMC model of the underlying fail-repair process. We employ a stochastic timing model in which all the relevant performance parameters such as task execution times, data arrival times and data communication times are taken to be random variables. A stochastic scheduling algorithm assigns start and completion time distributions to tasks. A hierarchical genetic algorithm optimizes the selections of resources, i.e. processors and busses, and the task allocations.
We report the results of a number of experiments performed with representative task graphs. Analysis shows that the co-synthesis tool we have developed is effectively driven by the user’s availability requirements as well as by the topological characteristics of the task graph to yield high quality architectures. We experimentally demonstrate the edge provided by a stochastic timing model in terms of performance assessment, resource utilization, system-availability and cost.
Similar content being viewed by others
References
Beaudry MD (1978) Performance-related reliability measures for computing systems. IEEE Trans Comput C-27(6):540–547
Garey G, Johnson D (1979) Computers and intractability—a guide to the theory of NP-completeness. Freeman, New York
Musa DJ, Iannino A, Okumoto K (1987) Software reliability: measurement, prediction and application. McGraw-Hill, New York
Kalavade A, Lee EA (1993) A hardware software co-design methodology for DSP applications. IEEE Des Test Comput 10(3):16–28
Ernst R, Henkel J, Benner T (1993) Hardware software co-synthesis for micro-controllers. IEEE Des Test Comput 10(4):64–75
Jeong B et al. (2000) Hardware-software cosynthesis for run-time incrementally reconfigurable FPGAs. In: Proceedings of the Asia South Pacific design automation conference, January 2000
Contenson J-N, Esteve D, Cloute F (1999) Hardware-software co-design of an avionics communication protocol interface system: an industrial case study. In: Proceedings of the 7th international workshop on hardware software codesign, Rome, Italy, May 1999
Parker A, Prakash S (1992) Sos: Synthesis of application specific heterogeneous multiprocessor systems. J Parallel Distributed Comput 16:338–351
Tirat-Gefen YG (1997) Theory and Practice in system-level design of application-specific heterogeneous multiprocessors. PhD thesis, University of California
Dave BP, Jha NK (1997) COHRA: Hardware software co-synthesis of hierarchical heterogeneous distributed embedded system architectures. IEEE Trans Comput 17(10):900–919
Dave BP, Jha NK (1999) COFTA: Hardware software co-synthesis of heterogeneous distributed embedded systems for low overhead fault tolerance. IEEE Trans Comput 48(4):417–441
Dick RP, Jha NK (1998) MOGAC: A multiobjective genetic algorithm for hardware software co-synthesis of distributed embedded systems. IEEE Trans Comput Aided Des Integr Circuits Systems 17(10):920–935
Xie Y, Wolf W (2001) ASICosyn:Co-Synthesis of conditional task graphs with custom ASICs. In: Proceedings of the international conference on ASICs, pp 130–135
Brandolese C, Fornaciari W et al. (2006) Affinity driven system design exploration for heterogeneous multiprocessor SOC. IEEE Trans Comput 55(5):508–519
Pimentel AD, Erbas C, Polstra S (2006) A systematic approach to exploring embedded system architectures at multiple abstraction levels. IEEE Trans Comput 55(2):99–112
Xie Y, Li L et al. (2004) Reliability aware cosynthesis for embedded systems. In: Proceedings of the 15th conference on application specific systems, architectures and processors (ASAP’04)
Hou CJ, Shin KG (1997) Allocation of periodic task modules with precedence and deadline constraints in distributed real time systems. IEEE Trans Comput 46(12):1338–1356
Choi H, Kulkarni VG, Trivedi KS (1994) Markov regenerative stochastic petrinets. Perform Evaluation 20(1–3):337–357
Muppala JK, Trivedi KS (1995) System dependencies in Markov dependability modeling, In: Proceedings of fault tolerant systems and software, pp 38–47
Blum AM, Goyal A, Heidelberger P, Lavenberg SS, Nakayama N, Shahabuddin P (1994) Modeling and analysis of system dependability using the system availability estimator. In: 24th annual international symposium on fault tolerant computing (FTCS-24), pp 137–141
Armstrong JM (1997) Reliability-importance and dual failure-mode components. IEEE Trans Comput 46(2):212–221
Varvarigou TA, Ahuja S (1997) MOFA: A model for fault and availability in complex systems. IEEE Trans Reliab 46(2):222–232
Olkin I, Glesser LJ, Derman C (1994) Probability models and applications. Macmillan, New York
Vilkomir SA, Parnas DL, Mendiratta VB, Murphy E (2005) Availability evaluation of hardware/software systems with several recovery procedures. In: Proceedings of international computer software and applications conference (COMPSAC’05), pp 473–478
Ravikumar CP, Chakraverty S (1998) VLSI implementation of a strongly fault secure ALU. J Comput Sci Eng 13:283–288
Rao TRN, Fujiwara E (1989) Error control coding for computer systems. Prentice-Hall, Englewood Cliffs
Goldberg DE (1989) Genetic algorithm in search, optimization and machine learning. Addison-Wesley, Reading
Chakraverty S, Ravikumar CP (2000) A stochastic framework for co-synthesis of real-time systems. In: Proceedings on languages, compilers and tools for embedded systems LCTES-2000, Vancouver, Canada, pp 51–59
Author information
Authors and Affiliations
Corresponding author
Additional information
An erratum to this article is available at http://dx.doi.org/10.1007/s10617-007-9008-5.
Rights and permissions
About this article
Cite this article
Chakraverty, S., Kumar, A. A rule-based availability-driven cosynthesis scheme. Des Autom Embed Syst 11, 193–222 (2007). https://doi.org/10.1007/s10617-007-9005-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-007-9005-8