STM32F7 von STMicroelectronics ARMs Cortex-M7 - der Schlüssel zu sicherheits­kritischen Anwendungen?

Automotive, Industriesteuerungen und Konnektivität

Mit dem Cortex-M7 will ARM jetzt endlich auch die Märkte angreifen, bei denen man mit M3/M4 nur begrenzt erfolgreich war. Im Automobil sind dies u.a. Dashboard, Chassis, Steer-by-Wire und Electric Power Steering, Spracherkennung und Audiosysteme. Dazu kommt der Trend zur Integration in weniger MCUs/ASSPs, bei denen die pure Rechenleistung (diese liegt fast auf dem Niveau eines Applikationsprozessors Cortex-A9) des Cortex-M7 helfen dürfte. Neben den neuen Sicherheitsmerkmalen und dem Determinismus mit garantierten Interrupt-Reaktionszeiten dürfte die Autoindustrie auch an dem möglichen vollständigen Tracen mittels Embedded Trace Macrocell interessiert sein. Diese kostet bei einer optionalen Implementierung übrigens 25.000 zusätzliche Gatter (nur Instruktionen) bzw. 100.000 Gatter (Instruktionen und Daten).
Im Bereich der Instrustriesteuerungen zielt der M7 auf Servos, Umrichter und PLCs. Hier finden sich heute 80–90 % der Kosten in Software wieder, so dass die Kunden an der Skalierbarkeit der Cortex-M-CPUs und dem damit einhergehenden Schutz in Software-Investitionen interessiert sein dürften. Zudem adressiert der M7 über seine TCMs und geringe Interrupt-Latenzzeiten benötigte Interrupt-Antwortzeiten von teilweise 100 ns und darunter.
Für den deutschen Markt ergeben sich sicherlich auch Chancen bei weißer Ware: Man stelle sich nur eine Waschmaschine mit mehr Pumpen vor, welche helfen, das Waschergebnis zu verbessern, oder eine Spülmaschine mit Sprachsteuerung, die zum Einstz kommt, wenn Hausfrau oder Hausmann gerade schmutzige Hände hat.
Last but not least möchte ARM den M7 auch in WiFi-Modulen unterbringen. Hier gibt es den Trend zu 802.11ac-Lösungen mit Übertragungsraten von mehreren 100 Mbit/s. Hier könnten im Vergleich zum Cortex-M3, den man in diversen 802.11n-Modulen findet, natürlich die hohe CPU-Rechenleistung und die Caches helfen.
Neue Mikroarchitektur treibt ­Rechenleistung hoch
Die vom Cortex-M3 und -M4 bekannte dreistufige, doch sehr einfach gehaltene Pipeline wurde beim M7 vollständig durch eine 6-stufige Dual-Issue-Pipeline ersetzt (Bild 2), wobei die parallele Ausführung von zwei Befehlen nicht bei allen Sequenzen möglich ist – hier ist der Compiler dafür verantwortlich, einen möglichst optimalen Code zu generieren. Allerdings sind die meisten Befehle parallelisierbar, anders als bei anderen Architekturen, wo der Compiler einige wenige, quasi magische Befehlspaare erzeugen muss. In jedem Fall ist auch die parallele Ausführung zweier Befehle in der Kombination Laden/Laden und Laden/Speichern möglich. Die fünf Ausführungseinheiten teilen sich in eine Einheit für Laden/Speichern, zwei ALUs, eine Einheit für MAC-Instruktionen und eine Gleitkomma-Einheit auf.
Die beiden ALUs der Integer-Pipeline unterscheiden sich dahingehend, dass eine ausschließlich für einfache Operationen vorgesehen ist und eine auch SIMD-fähig ist. Die MAC-Pipeline kann Berechnungen der Art 32 × 32 + 64 bit = 64 bit ausführen.