Cortex-M0 Plus-Mikrocontroller

Hallo und willkommen zu dieser Präsentation des ARM® Cortex®-M0+-Kerns, der in allen Produkten der STM32U0-Mikrocontrollerfamilie eingebettet ist.
Cortex-M0+ Prozessor überview
- ARMv6-M-Architektur
- Von Neuman-Architektur, 2-stagE-Pipeline
- Single-Issue-Architektur
- Multiplizieren in 1-Zyklus
- Speicherschutzeinheit (MPU)
- Einzelzyklus-E/A-Port

| Extrem stromsparendes Design Sehr kompakter Code | |
| Geringer Stromverbrauch und hohe Energieeffizienz | Mit Ausnahme von Steuerbefehlen sowie Verzweigungs- und Verknüpfungsbefehlen sind alle Befehle 16 Bit lang. |
Der Cortex®-M0+-Kern ist Teil der ARM Cortex-M-Gruppe von 32-Bit-RISC-Kernen. Er implementiert die ARMv6-M-Architektur und verfügt über einen 2-stagDie Pipeline.
Der Cortex®-M0+ verfügt über einen einzigartigen AHB-Lite-Master-Port, unterstützt jedoch gleichzeitiges Abrufen von Befehlen und Datenzugriffen, wenn der Datenzugriff auf den Adressbereich des Fast I/O-Ports abzielt.
Kompatibilität mit Cortex-M-Prozessoren
Nahtlose Architektur für alle Anwendungen

STM32U0-Mikrocontroller integrieren einen ARM® Cortex®-M0+-Kern, um vom unvergleichlichen Leistung-pro-Milliwatt-Verhältnis zu profitieren.
Alle Cortex®-M-CPUs haben eine 32-Bit-Architektur.
Der Cortex®-M3 war die erste von ARM veröffentlichte Cortex®-M-CPU.
Dann entschied sich ARM, zwischen zwei Produktlinien zu unterscheiden: Hochleistung und Niedrigstrom, wobei die Kompatibilität zwischen ihnen erhalten blieb.
Der Cortex®-M0+ gehört zur Low-Power-Produktlinie. Er ist für batteriebetriebene Geräte konzipiert, die sehr empfindlich auf den Stromverbrauch reagieren.
Kernarchitektur überview

Der Cortex®-M0+ Kern bietet mehr Leistung als der Cortex®-M0 Kern dank der 2-stage-Befehlspipeline.
Beginnen wir unsere Beschreibung der CPU mit dem Prozessorkern, der für das Abrufen und Ausführen von Anweisungen zuständig ist.
ARM Cortex-M0+ → 2 stagE-Pipeline

Die meisten V6-M-Befehle sind 16 Bit lang. Es gibt nur sechs 32-Bit-Befehle und die meisten davon sind Steuerbefehle, die selten verwendet werden. Der Branch- und Link-Befehl, der zum Aufrufen eines Unterprogramms verwendet wird, ist jedoch ebenfalls 32 Bit lang, um einen großen Offset zwischen diesem Befehl und dem Label zu unterstützen, das auf den nächsten auszuführenden Befehl verweist.
Im Idealfall lädt ein 32-Bit-Zugriff zwei 16-Bit-Befehle, was zu weniger Abrufvorgängen pro Befehl führt.
Während Takt Nummer 2 erfolgt kein Befehlsabruf. Der AHB Lite-Port ist verfügbar, um einen Datenzugriff auszuführen, wenn Befehl N ein Lade-/Speicherbefehl ist.
Filialleistung
Cortex®-M0+ Kern
• Maximal zwei 16-Bit-Branch-Shadow-Anweisungen

Auf einem bestimmten Zweig werden weniger vorab abgerufene Anweisungen verschwendet (dank der 2-stage-Pipeline).
Im Takt Nummer 1 ruft der Prozessor Inst0 und einen unbedingten Verzweigungsbefehl ab.
Im Takt Nummer 2 führt es Instr0 aus.
Im dritten Takt führt es den Verzweigungsbefehl aus, während es die beiden nächsten aufeinanderfolgenden Befehle Inst3 und Inst1, sogenannte Verzweigungsschattenbefehle, abruft.
Bei Takt Nummer 4 verwirft der Prozessor Inst1 und Inst2 und ruft InstrN und InstN+1 ab.
Cortex-M0, M3 und M4 implementieren einen 3-stage-Pipeline: Fetch, Decode und Execute. Die Anzahl der Branch-Shadow-Befehle ist größer: bis zu vier 16-Bit-Befehle.
Kernarchitektur überview

Der Cortex®-M0+ hat weder einen eingebetteten Cache noch internen RAM. Folglich wird jede Befehlsabruftransaktion an die AHB-Lite-Schnittstelle geleitet und jeder Datenzugriff wird entweder an die AHB-Lite-Schnittstelle oder den Single-Cycle-E/A-Port geleitet.
Beachten Sie, dass der STM32U0 einen Befehlscache auf SoC-Ebene implementiert, der sich außerhalb der CPU befindet und sich im eingebetteten Flash-Controller befindet.
Der AHB-Lite-Masterport ist mit einer Busmatrix verbunden, sodass die CPU auf Speicher und Peripheriegeräte zugreifen kann. Da Transaktionen auf AHB-Lite gepipelinet werden, beträgt der beste Durchsatz 32 Datenbits oder Anweisungen pro Takt mit einer minimalen Latenz von 2 Takten.
Der Cortex®-M0+ verfügt zudem über einen Single-Cycle-I/O-Port, der der CPU den Datenzugriff mit einer Latenz von 1 Takt ermöglicht. Eine externe Dekodierungslogik bestimmt den Adressbereich, in dem Datenzugriffe an diesen Port geleitet werden.
Im STM32U0 wird der Single-Cycle-E/A-Port nicht zum Zugriff auf GPIO-Portregister verwendet. GPIO-Ports werden stattdessen AHB zugeordnet, sodass der Zugriff per DMA möglich ist.
Speicherschutzeinheit
- MPU-Attributeinstellungen definieren Zugriffsberechtigungen
- 8 unabhängige Speicherbereiche
- Kann Code ausführen?
- Können Daten geschrieben werden?
- Zugriff im nicht privilegierten Modus?
Die MPU im STM32U0-Mikrocontroller bietet Unterstützung für acht unabhängige Speicherbereiche mit unabhängig konfigurierbaren Attributen für:
- Zugriffsberechtigung: Lesen/Schreiben im privilegierten/unprivilegierten Modus erlaubt oder nicht,
- Ausführungsberechtigung: ausführbarer Bereich oder Bereich, in dem der Befehlsabruf verboten ist.
Verweise
- Weitere Einzelheiten finden Sie in der folgenden Dokumentation:
- Programmierhandbuch für Cortex®-M32+-Prozessoren der STM0G0-Serie (PM0223)
- Verwalten der Speicherschutzeinheit (MPU) in STM32-MCUs (AN4838)
- ARM webWebsite unter folgendem Link:
- http://www.arm.com/products/processors/cortex-m/cortex-m0+-processor.php
Weitere Einzelheiten finden Sie in diesen Anwendungshinweisen und im Cortex®-M0+-Programmierhandbuch unter www.st.com webWebsite.
Besuchen Sie auch die ARM webSite, auf der Sie weitere Informationen zum Cortex®-M0+-Kern finden.
Danke
© STMicroelectronics – Alle Rechte vorbehalten.
Das ST-Logo ist eine Marke oder eine eingetragene Marke von STMicroelectronics International NV oder seinen Tochtergesellschaften in der EU und/oder anderen Ländern.
Weitere Informationen zu ST-Marken finden Sie unter www.st.com/trademarks
Alle anderen Produkt- oder Servicenamen sind Eigentum ihrer jeweiligen Inhaber.
Dokumente / Ressourcen
![]() |
ST Cortex-M0 Plus-Mikrocontroller [pdf] Bedienungsanleitung Cortex-M0, Cortex-M23, Cortex-M33-M35P, Cortex-M55, Cortex-M85, Cortex-M0 Plus Mikrocontroller, Cortex-M0 Plus, Mikrocontroller |

