Neue Mikroarchitektur für Cortex-M

KI auf Mikrocontrollern mit Armv8.1-M und Helium

14. Februar 2019, 15:00 Uhr | Joseph Yiu, Senior Principal Engineer bei Arm, und Frank Riemenschneider

Fortsetzung des Artikels von Teil 3

Performance-Monitoring-Einheit (PMU)

In Armv8.1-M werden die Profilzähler in Data Watchpoint and Trace (DWT) erweitert, um die Funktionen der Performance-Monitoring-Unit (PMU) zu unterstützen, wie sie in Cortex-A-Prozessoren zu finden sind. Dies ermöglicht erweiterte Profilfunktionen, einschließlich der Möglichkeit, Cache-Hits/Misses zu analysieren. Die bisherigen Profilierungsfunktionen sind weiterhin verfügbar, aber damit Softwareentwickler das Beste aus der Architektur herausholen können, müssen Debugger aktualisiert werden.

Die PMU verwendet einen von der DWT getrennten Adressraum, obwohl die Zähler physikalisch gleich sind (Address Aliasing) und Debug-Tools daher nicht gleichzeitig PMU und Legacy-DWT-Profiling verwenden können.

Funktionen für Signalverarbeitungsanwendungen:

  • Armv8.1-M enthält mehrere Verbesserungen der Debug-Architektur, die die Debug-Effizienz für Signalverarbeitungsanwendungen weiter erhöhen. Dazu gehören Datenüberwachungspunkte mit Bitmaske zur Feststellung von Wertübereinstimmungen, was für die Erkennung von Signalbereichen nützlich ist, sowie Haltepunkte mit Zähler, die erst bei Erreichen eines bestimmten Zählwertes ausgelöst werden. Dies kann zum Beispiel nützlich sein, um einen Prozessor anzuhalten, wenn sich ein digitaler Filter stabilisiert hat.
  • Erweiterung für Zuverlässigkeit, Verfügbarkeit und Wartbarkeit (RAS). 

Die RAS-Erweiterung wurde in Cortex-A-Prozessoren in der Armv8-A-Architektur eingeführt. RAS sind drei Aspekte der Zuverlässigkeit eines Systems: Zuverlässigkeit (Kontinuität des korrekten Service), Verfügbarkeit (Einsatzbereitschaft für den korrekten Service) und Servicefreundlichkeit (Änderungs- und Reparaturfähigkeit). Der Bedarf für die RAS-Erweiterung stammt von Server- und Unternehmensanwendungen. RAS-Techniken reduzieren ungeplante Ausfälle. So können transiente Fehler erkannt und korrigiert werden, bevor sie zu Anwendungs- oder Systemausfällen führen. Ausfallkomponenten können identifiziert und ausgetauscht werden und der Ausfall kann vorzeitig vorhergesagt werden, um einen Austausch während der geplanten Wartung zu ermöglichen.

Während Cortex-M-Prozessoren hauptsächlich in Embedded- und Automotive-Anwendungen eingesetzt werden, machen die Anforderungen an die funktionale Sicherheit für Automobil- und Industrieanwendungen RAS zur ersten Wahl für die nächste Generation von Cortex-M-Prozessoren, da viele Techniken für RAS auch Aspekte der funktionalen Sicherheit unterstützen.

Bei Prozessoren, die mit Armv8.1-M entwickelt wurden, deckt die RAS-Erweiterung die Hinzufügung der Anweisung Error Synchronization Barrier (ESB), Fehlermelderegister (für Fehler bei fehlerkorrigierenden Codes im Cache) und Verbesserungen der Busschnittstellen-ebene, wie Paritäts- oder Fehlerkorrekturcode (ECC)-Signale für Integritätsprüfungen der Bustransfers.

Die Funktion zur Signalisierung von fehlerhaften Daten ist neu in integrierten Prozessoren. Ein häufiges Anwendungsbeispiel ist die Behandlung von beschädigten Daten im Data-Cache (Bild 4). Eine Cache-Linie ist zum Beispiel durch eine Spannungsinstabilität beschädigt. Wenn der Fehler mehr als ein Bit beträgt, können die fehlerkorrigierenden Codes (ECC) den Fehler nicht beheben, wenn die Daten in der beschädigten Cache-Zeile verwendet werden.

Später kam es zu einer Cache-Zeilenverdrängung, welche die beschädigten Daten löschte. Der ECC-Fehler wird zu diesem Zeitpunkt erkannt und löst das Seitenbandsignal auf dem zu bestätigenden Bus aus. Der Zustand wird im Speichersystem gespeichert. Zu diesem Zeitpunkt ist keine Fehlerausnahme aufgetreten (Bild 5).

Wenn die beschädigten Daten von einem Prozessor gelesen werden (dies kann ein anderer Prozessor oder ein anderer Busmaster im System sein), werden die Informationen hinsichtlich der Korrumpierung weitergeleitet und lösen eine Fehlerausnahme beim Prozessor aus (Bild 6).

Dieser Ansatz hat mehrere Vorteile: Wenn die beschädigten Daten von keinem Busmaster verwendet werden (zum Beispiel später durch andere Daten überschrieben werden), ist es nicht notwendig, eine Fehlerausnahme auszulösen. Die Fehler-Exzeption wird bei der Verwendung der Daten ausgelöst und ist synchron zu den betroffenen Anwendungen. Wenn keine Signalisierung hinsichtlich der beschädigten Daten verfügbar ist, muss die Ausnahme bei der Verdrängung von Cache-Zeilen ausgelöst werden und der Prozessor kann eine völlig unabhängige Anwendung ausführen, was es schwierig macht zu entscheiden, welche Anwendungen betroffen sind.

Die Verwendung der RAS-Erweiterung ermöglicht auch eine bessere Konsistenz zwischen Cortex-M- und Cortex-A-Prozessoren, was ein Vorteil für Software ist, die Fehlerbedingungen in heterogenen Multiprozessorsystemen mit Cortex-A- und Cortex-M-Prozessoren handhabt.

Anbieter zum Thema

zu Matchmaker+
InstruktionFunktion
CINCbedingtes Inkrement
CNEGbedingtes Negieren
CSELbedingte Auswahl
CSETbedingtes Setzen des Registers auf 1
CSETMsetzt bedingt alle Bits im Register auf 1
CSINCbedingte Auswahl / Inkrement
CSINVbedingte Auswahl / Bitweise invertieren
CSNEGbedingtes Auswählen / Negieren
CINVbedingte Invertierung

 

Tabelle 1: Neue Instruktionen in der Armv8.1-M-Architektur für bedingte Ausführungen.


  1. KI auf Mikrocontrollern mit Armv8.1-M und Helium
  2. Helium-Funktionen
  3. Verbesserungen bei der Gleitkomma-Verarbeitung
  4. Performance-Monitoring-Einheit (PMU)
  5. Migration der Software auf Armv8.1-M und Fazit

Das könnte Sie auch interessieren

Verwandte Artikel

ARM Germany GmbH