ARM Cortex-M

aus Schachcomputer.info Wiki, der freien Schachcomputer-Wissensdatenbank
Version vom 30. Januar 2023, 22:38 Uhr von Chessguru (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

ARM Cortex-M ist eine Familie von IP-Cores primär für 32-Bit-Mikrocontroller, die vom Unternehmen ARM entwickelt wird und an verschiedene Hersteller lizenziert wird. Der Kern stellt eine Reduced Instruction Set Computer (RISC) dar, ist ein Teil der ARMv6- bzw. ARMv7-Architektur und unterteilt sich in aufsteigender Komplexität in die Einheiten Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4 und Cortex-M7.

Allgemeines

ARM Limited stellt selbst keine Mikroprozessoren bzw. Microcontroller her, sondern lizenziert den Kern an Hersteller und Chipproduzenten, sogenannte integrated device manufacturers (IDM), welche den eigentlichen ARM-Kern um eigene und herstellerspezifische Peripherie wie z. B. Controller Area Network (CAN), Local Interconnect Network (LIN), Universal Serial Bus (USB), I²C-Bus, Serial Peripheral Interface (SPI), Serielle Schnittstellen, Ethernet-Schnittstellen, Pulsweitenmodulation-Ausgänge, Analog-Digital-Wandler, Universal Asynchronous Receiver Transmitter (UART) und viele weitere erweitern. Diese Einheiten werden über den Advanced Mikrocontroller Bus Architecture (AMBA) an den ARM-Kern angeschlossen. ARM Limited bietet für den Kern verschiedene Lizenzmodelle an, welche sich in den Kosten und Umfang der zur Verfügung gestellten Daten unterscheiden. In allen Fällen ist das Recht verbunden, eigene Hardware mit ARM-Prozessoren frei vertreiben zu dürfen.

Die "ARM Cortex-M"-Prozessoren sind für den Lizenznehmer als IP-Core in der Hardwarebeschreibungssprache Verilog verfügbar und können mittels Logiksynthese als digitale Hardwareschaltung abgebildet werden, um dann entweder in Field Programmable Gate Arrays (FPGAs) oder Anwendungsspezifische integrierte Schaltungen (ASICs) eingesetzt zu werden. Je nach Lizenzmodell ist entweder die Verwendung des IP-Core gestattet (IP-Core Lizenz) oder aber es kann eine vollkommen neue, eigene Mikroarchitektur entwickelt werden, die die ISA von ARM implementiert (Architektur-Lizenz). Bei Besitz beider Lizenzen ist auch das Erweitern und Verändern der IP-Cores möglich. Vorteile der Architekturlizenz sind, dass für Hersteller neben der Integration eigener Peripherie auch andere Erweiterungen wie eigene Maschinenbefehle, Integration spezieller Debugschnittstellen oder aufgrund einer eigenen Architektur eine Optimierung für einen bestimmten Einsatzzweck (wie beispielsweise Mobilgeräte) möglich werden.

Befehlssatz

Die Prozessoren Cortex-M0 und M1 basieren auf einer ARMv6-M Architektur, die Cortex-M3 auf einer ARMv7-M Architektur, und die Cortex-M4 sowie Cortex-M7 auf einer ARMv7-ME Architektur. Die Unterschiede betreffen primär den Befehlssatz und die zur Verfügung stehenden Maschinenbefehle. Die Linien sind so festgelegt, dass die binären Maschinenbefehle aufwärts kompatibel sind, das heißt, ein Maschinenprogramm von einem Cortex-M0 oder M1 ist ohne Veränderung auch auf einem Cortex-M3, M4 oder M7 lauffähig. Umgekehrt können nicht alle Befehle des Cortex-M3, M4 oder M7 auf der Cortex-M0 oder M1 ausgeführt werden.

Alle Prozessoren aus der Cortex-M-Familie unterstützen die Basisbefehle aus dem so genannten Thumb-Befehlssatz, dem Thumb-2-Befehlssatz und bieten zusätzlich eine Multipliziereinheit in Hardware. M0 und M1 fehlen allerdings im Thumb-Befehlssatz neuere Erweiterungen wie die Befehle CBZ, CBNZ und IT, welche erst in der später entwickelten ARMv7-M-Architektur verfügbar sind. Und der Thumb-2-Befehlssatz ist auf einige wenige Befehle wie BL, DMB, DSB, ISB, MRS und MSR limitiert. Die Einschränkungen bei M0 und M1 sind Folge der Vorgabe, die Chipfläche möglichst klein zu halten.

Cortex-M3, mit größerer Chipfläche, umfasst den vollständigen Thumb- und Thumb-2-Befehlssatz, bietet darüber hinaus einige spezielle Instruktionen, eine eigene Divisionseinheit in Hardware und kann mathematische Befehle wie Addition statt mit Überlauf auch mit Sättigung behandeln, was insbesondere im Bereich der Signalverarbeitung von Bedeutung ist. Cortex-M4 erweitert diese Möglichkeiten um einige spezielle Befehle, wie sie bei digitalen Signalprozessoren (DSP) üblich sind, und bietet optional eine Gleitkommaeinheit für die Bearbeitung von Gleitkommazahlen nach der Norm IEEE 754 für einfache Genauigkeit. Der Cortex-M7 erweitert die Gleitkommaeinheit für die Bearbeitung von Gleitkommazahlen für doppelte Genauigkeit.


Typen

Cortex-M0

Besonderheiten

Besonderheiten des Cortex-M0 sind:

  • ARMv6-M-Architektur
  • Von-Neumann-Architektur (anders als M3 und M4)
  • Wake-Up-Interrupt-Controller
  • Befehlssatz
    • Thumb - fast vollständig bis auf CBZ, CBNZ, IT.
    • Thumb-2 - Teilmenge bestehend aus BL, DMB, DSB, ISB, MRS, MSR.
    • 32-bit-Multipliziereinheit, zur Synthese wählbar mit einem Zyklus, was eine größere Chipfläche bedingt, oder mit 32 Zyklen und weniger Chipfläche.
  • 3-stufige Pipeline

Implementierungen

Unter anderem bieten folgende Halbleiterhersteller Cortex-M0 basierende Mikrocontroller an:

  • Infineon: XMC1000 Familie
  • nuvoTon: NuMicro Familie
  • NXP: LPC11xx und LPC12xx Familien
  • STMicroelectronics: STM32-F0 Familie
  • Toshiba: TX00 Familie

Cortex-M0+

Besonderheiten

Besonderheiten des Cortex-M0+ sind:

  • ARMv6-M-Architektur
  • Von-Neumann-Architektur (anders als M3 und M4)
  • Wake-Up-Interrupt-Controller
  • Interrupt-Vektor-Tabellen-Verschiebung ins RAM
  • Befehlssatz
    • Thumb - fast vollständig bis auf CBZ, CBNZ, IT.
    • Thumb-2 - Teilmenge bestehend aus BL, DMB, DSB, ISB, MRS, MSR.
    • 32-bit-Multipliziereinheit, zur Synthese wählbar mit einem Zyklus, was eine höhere Chipfläche bedingt, oder mit 32 Zyklen und weniger Chipfläche.
  • 2-stufige Pipeline

Implementierungen

Unter anderem bieten folgende Halbleiterhersteller Cortex-M0+ basierende Mikrocontroller an:

  • Atmel: SAM D20/21 und SAM D10/11 Familie
  • Freescale: Kinetis KL Familie
  • NXP: LPC800 Familie
  • Renesas: Synergy Familie (S1)
  • Silicon Laboratories: Zero-Gecko Familie (EFM32ZG)
  • Spansion/Cypress: FM0+ Familie
  • STMicroelectronics: STM32L0 Familie

Cortex-M1

Besonderheiten

Besonderheiten des Cortex-M1 sind:

  • ARMv6-M-Architektur
  • Befehlssatz
    • Thumb - fast vollständig bis auf CBZ, CBNZ, IT.
    • Thumb-2 - Teilmenge bestehend aus BL, DMB, DSB, ISB, MRS, MSR.
    • 32-bit-Multipliziereinheit, zur Synthese wählbar mit einem Zyklus, was eine höhere Chipfläche bedingt, oder mit 32 Zyklen und weniger Chipfläche.

Implementierungen

Unter anderem bieten folgende Halbleiterhersteller von Field Programmable Gate Array (FPGA) sogenannte Soft-Cores für ihre Logikbausteine an:

  • Actel FPGAs
  • Altera FPGAs
  • Xilinx FPGAs

Cortex-M3

Besonderheiten

Besonderheiten des Cortex-M3 sind:

  • ARMv7-M-Architektur
  • Befehlssatz
    • vollständiger Thumb-Befehlssatz
    • vollständiger Thumb-2-Befehlssatz
    • 32-bit-Multipliziereinheit mit einem Zyklus, 2 bis 12 Zyklen langer Divisionsbefehl, Mathematische Funktionseinheit mit Überlauf- oder Sättigungseigenschaft.
  • 3-stufige Pipeline mit Sprungvorhersage
  • 1 bis 240 physikalische Hardwareinterrupt, eine spezielle Form von Interrupts mit 12 Zyklen Latenz.
  • Verschiedenartiger Bereitschaftsbetrieb (Sleep Modes)
  • Speicherschutzeinheit (MPU) mit 8 Regionen als Option
  • 1,25 DMIPS pro MHz Taktfrequenz
  • herstellbar mit 90 nm-Halbleitertechnologie.
  • 32 µW pro MHz Taktfrequenz
  • Fläche am Chip für den Kern: 0,12 mm²

Implementierungen

Unter anderem bieten folgende Halbleiterhersteller Cortex-M3 basierende Mikrocontroller an:

  • Actel: SmartFusion-Familie
  • Atmel: SAM3-Familie
  • Cypress Semiconductor: PSoC 5
  • NXP: LPC13xx, LPC17xx, LPC18xx Familien
  • Silicon Laboratories: Tiny Gecko (EFM32TG), Gecko (EFM32G), Leopard Gecko (EFM32LG) und Giant-Gecko Familien (EFM32GG)
  • Spansion/Cypress: FM3 Familie
  • STMicroelectronics: STM32 F2, F1, L1, W Familien
  • Texas Instruments: Stellaris, TMS470, und einige Prozessoren aus der OMAP4-Familie
  • Toshiba: TX03 Familie

Cortex-M4

Besonderheiten

Im Aufbau entspricht der Cortex-M4 einem M3, welcher um spezielle DSP-Befehle und optional eine Gleitkommaeinheit erweitert ist. Cortex-M4 mit Gleitkommaeinheit wird als Cortex-M4F bezeichnet. Besonderheiten des Cortex-M4 sind:

  • ARMv7-ME Architektur
  • Befehlssatz
    • vollständiger Thumb-Befehlssatz
    • vollständiger Thumb-2-Befehlssatz
    • 32-bit-Multipliziereinheit mit einem Zyklus, 2 bis 12 Zyklen langer Divisionsbefehl, mathematische Funktionseinheit mit Überlauf- oder Sättigungseigenschaft.
    • DSP-Erweiterungen: 16/32-bit MAC-Befehl mit einem Zyklus, 8/16-Bit SIMD-Arithmetik.
    • optionale Gleitkommaeinheit mit der Bezeichnung FPv4-SP, IEEE-754 kompatibel.
  • 3-stufige Pipeline mit Sprungvorhersage
  • 1 bis 240 physikalische Hardwareinterrupt, eine spezielle Form von Interrupts mit 12 Zyklen Latenz.
  • verschiedenartiger Bereitschaftsbetrieb
  • Speicherschutzeinheit (MPU) mit 8 Regionen als Option
  • 1,25 DMIPS pro MHz Taktfrequenz (1,27 DMIPS / MHz mit FPU)

Implementierungen

Unter anderem bieten folgende Halbleiterhersteller Cortex-M4 basierende Mikrocontroller an:

  • Atmel: SAM4 Familie (Cortex-M4)
  • Freescale: Kinetis-Familie (Cortex-M4 und Cortex-M4F)
  • Infineon: XMC4000 Familie (Cortex-M4F)
  • NXP: LPC40xx und LPC43xx Familien (Cortex-M4)
  • Silicon Laboratories: Wonder Gecko Familie (EFM32WG, Cortex-M4F)
  • Spansion/Cypress: FM4 Familie (Cortex-M4F)
  • STMicroelectronics: STM32-F4 Familie (Cortex-M4F)
  • Texas Instruments: Stellaris-LM4F und Tiva-TM4C Familie (Cortex-M4F)
  • Toshiba: TX04 Familie (Cortex-M4F)

Cortex-M7

Besonderheiten

Im Vergleich zum Cortex-M4 wurde der M7 mit einer längeren Dual-Issue-Pipeline für höhere Taktfrequenzen, einem neu konzipierten Speichersystem u. a. mit L1-Caches und TCMs, einer Verdoppelung der DSP-Performance gegenüber dem M4 und einem optionalen Lock-Step-Betrieb ausgestattet. Besonderheiten des Cortex-M7 sind:

  • ARMv7-ME Architektur
  • Befehlssatz
    • vollständiger Thumb-Befehlssatz
    • vollständiger Thumb-2-Befehlssatz
  • L1-Caches für Befehle und Daten von jeweils 4-64 KB
  • TCM für Befehle und Daten jeweils 0-16 MB
  • insgesamt 6 Speicherschnittstellen, davon 2 × 64 bit und 4 × 32 bit
  • 32-bit-Multipliziereinheit mit einem Zyklus, 2 bis 12 Zyklen langer Divisionsbefehl, mathematische Funktionseinheit mit Überlauf- oder Sättigungseigenschaft.
  • DSP-Erweiterungen: 16/32-bit MAC-Befehl mit einem Zyklus, 8/16-Bit SIMD-Arithmetik.
  • Gleitkommaeinheit mit der Bezeichnung FPv5, IEEE-754 kompatibel, mit Instruktionen für einfache Genauigkeit (32 Register á 32 bit) oder optional, je nach Implementierung, auch doppelte Genauigkeit (16 Register á 64 bit).
  • 6-stufige Dual-Issue-Pipeline mit Sprungvorhersage
  • 1 bis 240 physikalische Hardwareinterrupt, eine spezielle Form von Interrupts mit 11-12 Zyklen Latenz.
  • verschiedenartiger Bereitschaftsbetrieb
  • Speicherschutzeinheit (MPU) mit 8 oder 16 Regionen als Option
  • Lock-Step-Betrieb mit zwei unabhängig arbeitenden Cores
  • maximale Taktfrequenz bei Herstellung in einem 40-nm-LP-Prozess 400 MHz
  • 2,14 DMIPS pro MHz Taktfrequenz

Implementierungen

Bislang bieten nur Atmel und ST Microelectronics Cortex-M7 basierende Mikrocontroller an; Freescale hat die Lizenzierung des Cortex-M7, aber noch keine Produkte angekündigt:

  • Atmel: SAM S-, E- und V-Serie
  • STMicroelectronics: STM32-F7-Familie



Seite "ARM Cortex-M". In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 6. Juni 2017, 18:59 UTC. URL: https://de.wikipedia.org/w/index.php?title=ARM_Cortex-M&oldid=166144145 (Abgerufen: 6. Juni 2017, 22:09 UTC)