Mit dem Schedulinganalyse-Tool SymTA/S für Echtzeitsoftware von Symtavision ist es jetzt möglich, Software, die für eine Single-Core-Plattform entwickelt wurde auf eine Multi-Core-Plattform zu portieren, das gilt insbesondere für die Mikrocontroller von Infineon Technologies.
Die konventionelle Vorgehensweise ist, Software in kleinen Schritten zu modifizieren und die Ergebnisse kontinuierlich zu überprüfen. Bei der Portierung von Software auf Multi-Core-Architekturen ist diese Politik der kleinen Schritte allerdings nicht immer realisierbar. Die Controllerarchitektur wird nicht nur hinsichtlich zusätzlicher Cores verändert, sondern auch bezüglich unterstützter Taktraten, Speicherarchitektur, Kommunikationsarchitektur oder Core-Befehlen, so dass sich auch die Laufzeit deutlich verändern kann. Außerdem kann die neue Architektur auch neue Compilerversionen und Betriebssysteme erfordern, was möglicherweise ebenfalls das Laufzeitverhalten beeinflusst.
Während des Migrationsprozesses lauten die wichtigsten Fragen für Entwickler:
Die Entscheidung, welche Runnables auf welche Cores verteilt werden und welche Daten-Container sich auf welchen Speichern befinden, hängt stark von den Kommunikations-Overheads ab. Die Kommunikation zwischen den Cores wird in AUTOSAR 4 über IOC (Inter OS-Application Communcation) realisiert. Auch die Kommunikation mit externen Speichern kann zu wesentlich längeren Ausführungszeiten der Runnables führen.
Diese Kommunikations-Overheads können die gesamte erwartete Performance eines Multi-Core-CPUs aufbrauchen. Hier stellt sich die Frage, wie groß diese Overheads tatsächlich sind und wie man sie verringern kann. Um abschätzen zu können, ob eine bestimmte Aufteilung kleine oder große Overheads hat, sind mehrere Schritte notwendig.
Zuerst muss ein “Kostenkatalog” für diverse anwendbare Kommunikationsmechanismen zwischen den Cores festgelegt werden. Die Daten werden dann mittels eines von Gliwa entwickelten Benchmarks auf der Ziel-Hardware und dem ausgewählten Betriebssystem, aber noch unabhängig von der Benutzeranwendung gemessen.
Anschließend wird die Benutzeranwendung direkt in SymTA/S modelliert oder basierend auf einer AUTOSAR-Konfigurationsdatei, die Abhängigkeiten und Kommunikationstypen zwischen den Runnables enthält, in SymTA/S importiert.
SymTA/S kombiniert die Daten des Kostenkatalogs mit denen des Modells der Benutzeranwendung und berechnet mit Hilfe der Metriken die Größe der Kommunikations-Overheads im gesamten System.
Verschiedene Aufteilungsmöglichkeiten können so verglichen und eine potentiell bessere Partitionierung mit weniger Overheads gefunden werden. Zudem kann die Einhaltung von Timingvorgaben durch Schedulinganalyse überprüft werden.
Infineon empfiehlt SymTA/S für die modellbasierte Portierung von ECU-Software auf Multi-Core-Systeme. Durch den modellbasierten Ansatz ist es möglich, die Speicherzuordnung von Runnables und Daten zu verändern und “was wäre wenn”-Fragen zu beantworten.
Eine noch höhere Effizienz lässt sich zukünftig durch den Einsatz der Metriken zur Entwicklung eines automatisierten Verteilungsgenerators erreichen.