Multicore

Sicherheit auf allen Kernen

Seite: 3/3

Firma zum Thema

Architekturkonzept

Bild 4 in der Bildergalerie zeigt schematisch die Partitionierung der Gabelstaplersteuerung. Alle Sicherheitsfunktionen sowie die von den Sicherheitsfunktionen benötigten Peripherietreiber werden auf Core 0 ausgeführt, der nach einem Reset per Hardware gestartet wird. Sobald alle Sicherheitsfunktionen laufen, startet Core 0 die Reglerapplikationen auf Core 1 und die Komfortfunktionen auf Core 2 sowie die dazugehörenden Treiber.

Die blauen Boxen repräsentieren jeweils eine Applikation, die einem Task mit definierten Ressourcen zugewiesen wird. Die Kommunikation zwischen den Tasks erfolgt in der Regel über Betriebssystemdienste. Bei wenigen besonders schnellen Zugriffen kann ein Datenaustausch alternativ über shared memory realisiert werden.

Bildergalerie
Bildergalerie mit 6 Bildern

Die Applikationen werden darüber hinaus als eigenständige Hexfiles geflashed, so dass z.B. eine zukünftige Komfortfunktion ergänzt werden kann, ohne dass eine neue Qualifikation der Sicherheitssoftware oder der Fahren/Hebefunktionen nötig ist.

Multi-Core-Laufzeitumgebung

Eine weitere Forderung war es, dass der Applikationsentwickler seinen Code unabhängig von der letztendlichen Partitionierung des Systems erstellen kann. D.h. eine Applikation muss nur wissen, welche Daten sie benötigt und welche Daten sie bereitstellt. Der eigentliche Signalfluss soll über eine Laufzeitumgebung realisiert werden, die zentral konfiguriert und qualifiziert wird.

Bei der Konzeptionierung der Laufzeitumgebung wurde die AUTOSAR RTE als Ausgangspunkt genommen und auf der Basis eine eigene Laufzeitumgebung entwickelt:

  • Zuordnung der Runnables auf Tasks und Tasks auf Cores
  • Erweiterung der Nachrichtendienste über Coregrenzen hinweg
  • Unterstützung unterschiedlicher Speicherbereiche (read only, read/write, write once,…)
  • Direkte Ankopplung der Treiber an die Signale der Laufzeitumgebung
  • Skalierung der Rohdaten in Applikationsdaten im Signallayer

Bild 5 in der Bildergalerie zeigt exemplarisch die Umsetzung einer Sicherheitsfunktion sowie die Fahrenapplikation und eine Komfortfunktion.

Erfahrungen, Fazit, Ausblick

Das Projekt hat gezeigt, dass Multicore Architekturen auch für Sicherheitsapplikationen eine interessante Lösung bieten. Allerdings ist die Entwicklung von Multicore Applikationen deutlich komplexer als die Entwicklung traditioneller Singlecore Programme. Ein Betriebssystem, das optimal auf die Hardware abgestimmt ist und diese vernünftig abstrahiert ist eine wichtige Voraussetzung für den Projekterfolg.

Die Kombination Infineon Aurix und PxROS HR von der Firma HighTec haben sich dabei als gut abgestimmtes Paar erwiesen. Auf dieser Basis konnte mit überschaubarem Aufwand eine leistungsstarke Multicore Laufzeitumgebung entwickelt werden, die bereits in ersten Projekten eingesetzt wird.

Nichtsdestotrotz bleibt die Entwicklung von Multicore Applikationen eine große Herausforderung, da die Systemkomplexität schnell sehr groß wird und Fehler nur schwer zu lokalisieren sind. Im Beispiel des Aurix müssen vielfältige Konfigurationen des Speichers, der Hardware-Safety Funktionen und des Betriebssystems auch nach Änderungen synchron gehalten werden. Hier müssen noch geeignete Werkzeuge entwickelt werden, um dieses wirtschaftlich und sicher zu unterstützen.

Eine weitere spannende Frage für die Zukunft ist die Weiterentwicklung der hier vorgestellten Fail-Safe Architektur in eine Fail-Operational Lösung, bei der Tasks im Fehlerfalle z.B. von einem Core auf einen anderen Core transferiert werden können.

Abkürzungsverzeichnis

  • I : Input – Eingabeeinheit, z.B. Sensor mit ADC Signal;
  • L: Logic – Datenverarbeitungseinheit, z.B. Controller;
  • O: Output – Ausgabeeinheit, z.B. Aktor, der über PWM angesteuert wird;
  • TE: Testeinheit

Literaturverzeichnis

  • [1] ISO26262; Functional Safety – Road Vehicles; ISO / FDIS; 2011
  • [2] Deutsches Institut für Normung e.V.; DIN EN ISO 13849-1/2; Beuth Verlag; Berlin; 2008
  • [3] Barg, Eisenhut-Fuchsberger, Orth, Ost, Springhorn; 10 Schritte zum Performance Level; Bosch-Rexroth; o.A.
  • [4] Infineon; Aurix Safety Manual AP32224 V1.2; Infineon Munich; 2015

* Prof. Fromm vertritt an der Hochschule Darmstadt im Fachbereich Elektrotechnik und Informationstechnik das Gebiet Mikrocontroller und Informationstechnik. Daneben berät und unterstützt er mehrere Firmen im Bereich Embedded Software und System Engineering.

* Thomas Barth ist Lehrkraft für besondere Aufgaben an der Hochschule Darmstadt und forscht an funktionaler Sicherheit auf Mehrkern-Mikrocontrollern.

* Mario Cupelli ist seit 2009 CTO bei HighTec. Die Firma ist spezialisiert auf die professionelle Pflege des GNU Compilers und Entwicklung sicherer Betriebssysteme sowie die Entwicklung innovativer Lösungen für Antriebssysteme.

(ID:44288508)