Mikrocontroller & PLDs

Aktuelle Trends bei Multicore-Mikrocontroller-Architekturen

Seite: 2/4

Anbieter zum Thema

Beim Einsatz von Caches zur Speicherzugriffsbeschleunigung können Datenkonsistenz-Probleme bei gemeinsam verwendeten globalen Speichern auftreten, wenn Daten im Betrieb beschrieben werden sollen. Eine CPU ändert diese bei einem Speicherschreibzugriff nicht im Originalspeicher, sondern zunächst nur in der „Kopie“ im Cache-Speicher. In diesem Fall liefern Lesezugriffe anderer CPUs den ursprünglichen Wert aus dem Originalspeicher und nicht den geänderten Wert. Dieses Cache-Kohärenzproblem löst z. B. ARM durch den Einsatz eines in Hardware implementierten Cache-Snoopers. Er aktualisiert die Inhalte von Caches anderer Cores nach einem Schreibzugriff auf einen Cached-Memory. Das garantiert systemweit transparente Dateninhalte für globale, durch Cache-Einsatz beschleunigte Speicher.

Greifen mehrere Cores auf globale (nicht durch Cache-Speicher beschleunigte) Datenspeicher-Arrays oder Strukturen (SRAMs) zu, müssen die Zugriffe, die die Datenbusbreite übersteigen, durch Semaphore geschützt werden. Hierfür gibt es zwei unterschiedliche Implementierungen über atomare Befehlssequenzen (Atomic Instructions) oder Hardware-Semaphore.

Bei Ersterem verbietet das Bussystem für sogenannte Read/Modify/Write-Back-Befehle die Unterbrechung des Befehlsablaufes, z.B. durch Interrupt oder gleichzeitigen Zugriff einer weiteren CPU. Damit lassen sich in Multicore-Systemen die Zugriffe auf Semaphore-Variablen (realisiert in Software), die zur Zugriffssteuerung auf globale Ressourcen eingesetzt werden, synchronisieren. Der Vorteil ist, dass „beliebig“ viele Semaphore-Variablen verwendet werden können.

Hardware-Semaphore sind spezifische Speicherzellen, die für die Zugriffssteuerung auf Ressourcen (z.B. gleichzeitiger Speicherzugriff durch verschiedene CPUs) durch parallel arbeitende Prozesse vorhanden sind. Eine Einschränkung in der Applikation kann sich durch die Anzahl der implementierten HW-Semaphore ergeben.

Sicherheitsfunktionalität: Safety und Security

Je nach möglicher Gefährdung von Personen durch das Gerät, die Maschine, das Fahrzeug etc. werden Sicherheitsnormen in den verschiedenen Industriezweigen definiert. Je höher die Gefährdung, desto mehr Überwachungsmechanismen werden gefordert, damit eine funktionale Sicherheit des Systems/der Maschine gewährleistet werden kann. Beispiele sind hierfür etwa die SIL- und ASIL- (Automotive SIL) Spezifikationen.

In die neuen Multicore-MCU-Architekturen werden daher eine Reihe von Funktionsblöcken eingebaut, die der Überwachung von und zur entsprechenden Reaktion auf sicherheitsrelevante Ereignisse dienen (siehe Kasten). Alle Überwachungsfunktionen liefern erkannte Fehler an eine eigene Fehlersammel- und Korrektureinheit (z.B. Fault Collection and Control Unit FCCU, resp. Safety Management Unit SMU). In diesen Einheiten kann für jeden Fehlertyp die entsprechende Fehlerreaktion bestimmt werden. Typischerweise stehen der Aufruf einer Interrupt-, bzw. einer Trap-Funktion oder das Auslösen eines internen Resets (Neustart der Software) zur Verfügung. Ebenfalls möglich ist die Signalisierung nach extern über einen spezifischen Signalisierungs-Port/Pin.

Der Vorteil dieser Implementierung liegt in der Möglichkeit softwareunabhängiger Fehlerreaktion (hardwaregesteuerte Fehlerantwort - Generierung eines Resets bzw. externen Signals) auch bei fehlerhafter Taktung des Systems. Diese Safety-Methoden dienen zum Schutz vor Gefahren, zur Verhinderung von Schäden ausgelöst durch fehlerhaft arbeitende Systeme und zur Minimierung der Risiken.

(ID:43519496)