Multicore-based ECUs are increasingly used in embedded automotive software systems to allow more demanding automotive applications at moderate cost and energy consumption. Using a high number of parallel processors together with a high number of executed software components results in a practically unmanageable number of deployment alternatives to choose from. However correct deployment is one important step for reaching timing goals and acceptable latency, both also a must to reach safety goals of safety-relevant automotive applications. In this paper we focus at reducing the complexity of deployment decisions during the phases of allocation and scheduling. We tackle this complexity of deployment decisions by a mixed constructive and analytic approach. On the constructive side, we model a multicore-based embedded automotive software system as a tuple S = (L, R) with a given architecture L of the system's software component network and a given architecture R of the system's platform component network. On the analytic side, we derive models of the system's deployment as a tuple D = (M, Z), where the relation M:L → R describes the allocation mapping from software components to platform components and the relation describes the scheduled start times of software components. The architectures L and R allow to describe hierarchically nested softwareand platformcomponent networks. Hence, we are able to represent coarse-grain structures like domain functions and domain networks as well as fine-grain structures like individual driver-calls, algorithms, ECUs and CPU-cores as well. With all this architectural information contained in precise models, deployment alternatives (allocations and schedules) can be automatically derived and analyzed for conformance with timing requirements, given by a set of timing constraints C. To demonstrate the usability of the approach, we implemented an architecture description language in the academic open source tool CADMOS together with a prototypical allocation and scheduling support. We are evaluating the practicability of the approach within a case study in the German national joint project ARAMiS using a close-to-production multicorebased system in cooperation with Technische Universitat Munchen, AUDI AG and BMW AG. CITATION: Schwitzer, W., Schneider, R., Reinhardt, D. and Hofstetter, G., "Tackling the Complexity of Timing-Relevant Deployment Decisions in Multicore-Based Embedded Automotive Software Systems," SAE Int. J. Passeng. Cars – Electron. Electr. Syst. 6(2):2013, doi:10.4271/2013-01-1224. ____________________________________ THIS DOCUMENT IS PROTECTED BY U.S. AND INTERNATIONAL COPYRIGHT. It may not be reproduced, stored in a retrieval system, distributed or transmitted, in whole or in part, in any form or by any means. Downloaded from SAE International by Wolfgang Schwitzer, Wednesday, March 27, 2013 02:36:24 AM
[1]
Keshab K. Parhi,et al.
Static Rate-Optimal Scheduling of Iterative Data-Flow Programs via Optimum Unfolding
,
1991,
IEEE Trans. Computers.
[2]
Samuel Williams,et al.
The Landscape of Parallel Computing Research: A View from Berkeley
,
2006
.
[3]
Manfred Broy.
A uniform mathematical concept of a component
,
1998,
Softw. Concepts Tools.
[4]
Shuvra S. Bhattacharyya,et al.
Embedded Multiprocessors: Scheduling and Synchronization
,
2000
.
[5]
D. L. Parnas,et al.
On the criteria to be used in decomposing systems into modules
,
1972,
Software Pioneers.
[6]
E. Dijkstra.
On the Role of Scientific Thought
,
1982
.
[7]
Robert Stephens,et al.
A survey of stream processing
,
1997,
Acta Informatica.
[8]
Manfred Broy,et al.
Specification and development of interactive systems: focus on streams, interfaces, and refinement
,
2001
.
[9]
Gilles Kahn,et al.
Coroutines and Networks of Parallel Processes
,
1977,
IFIP Congress.
[10]
Bernhard Schätz,et al.
A Refined Top-Down Methodology for the Development of Automotive Software Systems - The KeylessEntry-System Case Study -
,
2011
.
[11]
Oliver Sinnen,et al.
Task Scheduling for Parallel Systems
,
2007,
Wiley series on parallel and distributed computing.
[12]
Gilles Kahn,et al.
The Semantics of a Simple Language for Parallel Programming
,
1974,
IFIP Congress.