Zertifizierung von Multi-Core-Systemen

Sicher auf mehreren Kernen

1. Juli 2016, 13:12 Uhr | Von Rudolf Fuchsen und Mehmet Özer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Sicherheit kostet Prozessorzeit

Die angenommene Plattform basiert auf einem Vierkernprozessor. Der Major Time Frame ist in drei zeitliche Partitionsfenster unterteilt (tp1 bis tp3). Die sicherheitskritische Anwendung (RP2, rot) soll ausschließlichen Zugriff auf einen der Kerne (Core_C) sowie exklusiven Zugriff auf die gesamte Plattform während ihres Zeitfensters (tp2) haben. Eine rechenintensive Partition (RP3) soll während ihres Zeitfensters (tp3) exklusiven Zugriff auf die verbleibenden drei Kerne besitzen. Eine weitere Zeitpartition (tp1) wird von zwei Ressourcenpartitionen (RP1 und RP4) geteilt. RP1 wird auf zwei Kernen ausgeführt, RP4 auf einem Kern.

Die gewählte Konfiguration setzt auf ein Höchstmaß an Isolation für die kritische Anwendung und akzeptiert dafür die Vergeudung von Prozessorzeit. Ressource Partition 2 ist die einzige Partition, die auf Kern C ausgeführt wird; während der Zeitscheibe der Zeitpartition tp2 wird keine andere Partition ausgeführt. Dadurch werden alle Interferenzen auf Hardware- und Software-Ebene eliminiert. Der Grad an Determinismus dieser Konfiguration ist sogar höher als auf einer RTOS-basierten Plattform, da die kritische Anwendung den Kern nicht mit anderen Partitionen teilt und dadurch der Zustand der privaten Caches unverändert bleibt.

Nichtsdestotrotz muss die Einstellung der Caches und Übersetzungspuffer (TLB) berücksichtigt werden. Der PikeOS-Hypervisor stellt Mittel zur Verfügung, um Befehls-Caches und TLBs zu invalidieren und den Daten-Cache zwischen den Umschaltungen der Zeitpartitionen zu leeren. Dadurch wird sichergestellt, dass sich Caches und Übersetzungspuffer bei der Partitionsausführung in einem definierten Zustand befinden. Das Leeren und Invalidieren des Cache und des Übersetzungspuffers erfolgt während der Umschaltung der Zeitpartition, wodurch den eigentlichen Zeitpartitionen Prozessorzyklen verloren gehen (Jitter). Ein möglicher Ansatz ist, ein kleines Zeitpartitionsfenster zu definieren, dem eine eigene Zeitpartitions-ID zugewiesen wird, und dieses vor der Ausführung der zeitkritischen Anwendung einzufügen. Dadurch wird der Jitter der zeitkritischen Anwendung eliminiert.

Vertikale Marktaspekte

Mit dem Positionspapier CAST 32 (Originalfassung) [3] haben die EASA und FAA eine Abhandlung veröffentlicht, in welcher 24 Zielvorgaben zur Handhabung von Mehrkernprozessoren in Avioniksystemen auf den Sicherheitsanforderungsstufen (DAL) A und B erörtert werden. Es wurde eine Untergruppe von 16 Zielen ermittelt, um in Avioniksystemen der Stufe DAL C Mehrfachkerne anzuwenden. Die Abhandlung bezieht sich nur auf Mehrkernprozessoren mit zwei aktiven Kernen. Das Positionspapier CAST 32 kann als sehr brauchbare Einführung angesichts der Bedenken der Luftfahrtbehörden bezüglich des Einsatzes von Mehrfachkernen verwendet werden.

Die Sicherheitsstandards für die Bahnindustrie (EN 50128, EN 50129) sind flexibler und erwähnen den Einsatz von Multiprozessorsystemen für „Eisenbahnsteuerungs- und Überwachungssysteme“. Das Hauptanliegen beim Einsatz von Mehrkernprozessoren ist die Bestimmung der maximalen Ausführungszeit (Worst Case Execution Time, WCET). Die in dieser Abhandlung erörterten Hardware- und Software-Interferenzkanäle können die Bestimmung der maximalen Ausführungszeit unmöglich machen. Das Unternehmen Sysgo hat die oben beschriebene Konfiguration für seinen PikeOS-Echtzeit-Hypervisor verwendet, um das weltweit erste SIL4-Zertifikat für ein Mehrkernsystem (Dual-Core Intel i7) zu erhalten. Dieses Prinzip ist nicht auf Doppelkerne beschränkt, solange eine passende PikeOS-Konfiguration den Prozessor deterministisch kontrollieren kann.

Literatur

[1] Fuchsen, R.: How to address certification for multi-core based IMA platforms. Digital Avionics Systems Conference (DASC), IEEE/AIAA, Salt Lake City, USA, 2010.
[2] Nordhoff, S.: How hypervisor operating systems can cope with multi-core certification challenges. Vortrag auf der Aviation Electronics Europe, München, 2016.
[3] Certification Authorities Software Team (Hrsg.): Position Paper CAST-32 on Multi-core Processors, Originalfassung, Mai 2014. www.faa.gov/aircraft/air_cert/design_approvals/air_software/cast/cast_papers/

 

Die Autoren

passend zum Thema

Dipl.-Ing. Rudolf Fuchsen
ist als Vice President Engineering bei Sysgo verantwortlich für das Produktportfolio sowie für Zertifizierungsvorhaben. Er ist ausgewiesener Experte im Bereich sicherheitskritischer Echtzeit-Software und einer der Schöpfer von PikeOS, Sysgos Virtualisierungsplattform für sichere Embedded-Software. Rudolf Fuchsen kam 1995 zu Sysgo und hat seinen Abschluss als Diplom-Ingenieur an der RWTH in Aachen gemacht.

 

rudolf.fuchsen@sysgo.com


Dipl.-Ing. Mehmet Özer
ist Solutions Architect bei Sysgo in Mainz. Sein Tätigkeitsschwerpunkt sind Projekte mit hohen Anforderungen an die funktionale Sicherheit für die Märkte Railway, Medizintechnik und Industrie-Automation. Er studierte Elektrotechnik an der TU Darmstadt und arbeitet seit über 20 Jahren als Applikationsingenieur für Embedded-Systeme.
 

 

mehmet.oezer@sysgo.com



  1. Sicher auf mehreren Kernen
  2. Wie stark bremst ein gemeinsamer Cache?
  3. Software-Interferenzkanäle
  4. Sicherheit kostet Prozessorzeit

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu SYSGO AG

Weitere Artikel zu Cyber-Security

Weitere Artikel zu Funktionale Sicherheit/Safety

Weitere Artikel zu Betriebssysteme