Cortex-M3 vs Cortex-M4 – czym się różnią?

FPU

Koprocesor FPU (Floating-Point Unit) służy do wykonywania operacji na liczbach zmiennoprzecinkowych pojedynczej precyzji i jest elementem stosowanym opcjonalnie w rdzeniach nazywanych Cortex-M4F (nie wszyscy producenci używają sufiksu F w nazwie rdzenia, nie wynika on z oficjalnej nomenklatury firmy ARM). FPU zapewnia realizację następujących operacji na liczbach zmiennoprzecinkowych pojedynczej precyzji: dodawanie, odejmowanie, mnożenie, dzielenie, mnożenie i sumowanie oraz pierwiastkowanie. Zapewnia również konwersję formatów pomiędzy liczbami stałoprzecinkowymi a zmiennoprzecinkowymi oraz dostarcza instrukcje z wykorzystaniem stałych zmiennoprzecinkowych.
FPU ma cztery główne funkcjonalności:

  • udostępnia rozszerzone rejestry zmiennoprzecinkowe, które oprogramowanie traktuje jak 32 rejestry pojedynczej precyzji lub jak 16 rejestrów podwójnego słowa,
  • wykonuje operacje arytmetyczne na liczbach zmiennoprzecinkowych pojedynczej precyzji,
  • przeprowadza konwersję formatów między liczbami całkowitymi, zmiennoprzecinkowymi pojedynczej precyzji, i zmiennoprzecinkowymi połówkowej precyzji (16-bitowymi),
  • przesyła dane rejestrów pojedynczej precyzji i podwójnego słowa.

Pozostałe układy funkcjonalne, takie jak kontroler wektorowych przerwań zagnieżdżonych NVIC (Nested Vectored Interrupt Controller), jednostka ochrony pamięci MPU (Memory Protection Unit) oraz port debugowania DAP (Debug Access Port) są takie same jak w rdzeniu Cortex-M3.
W tabeli zestawiono najważniejsze cechy rdzeni Cortex-M3 i Cortex-M4/-M4F.

 

Porównanie cech rdzeni Cortex-M3 i Cortex-M4/Cortex-M4F

Parametr Cortex-M3 Cortex-M4
Architektura ARMv7-M (Harvard) ARMv7-M (Harvard)
Obsługa ISA Thumb/Thumb-2 Thumb/Thumb-2
Rozszerzenia DSP Niedostępne Jednotaktowa, 16- /32-bitowa jednostka MAC.
Jednotaktowa, 2x 16-bitowa jednostka MAC.
zestaw 8-/16-bitowych instrukcji SIMD
Zaimplementowane sprzętowo operacje dzielenia. (2-12 cykli).
Opcjonalna jednostka zmiennoprzecinkowa Niedostępne Jednostka zmiennoprzecinkowa pojedynczej precyzji.
Zgodność z normą IEEE 754. Tylko w Cortex-M4F.
Przetwarzanie potokowe 3-stopniowe + wykonywanie spekulatywne instrukcji za skokiem warunkowym. 3-stopniowe + wykonywanie spekulatywne instrukcji za skokiem warunkowym.
Szybkość przetwarzania – test Dhrystone 1,25 DMIPS/MHz 1,25 DMIPS/MHz
Ochrona pamięci Opcjonalna jednostka ochrony pamięci (MPU – Memory Protection Unit) dla 8 regionów z opcją wyłączania podregionów (SRD – Sub Region Disable) i domyślną segmentacją. Opcjonalna jednostka ochrony pamięci (MPU – Memory Protection Unit) dla 8 regionów z opcją wyłączania podregionów (SRD – Sub Region Disable) i domyślną segmentacją.
Przerwania Przerwania niemaskowalne (NMI – Non-Maskable Interrupt) + od 1 do 240 przerwań fizycznych Przerwania niemaskowalne (NMI – Non-Maskable Interrupt) + od 1 do 240 przerwań fizycznych
Opóźnienie obsługi przerwania 12 cykli 12 cykli
Opóźnienie między przerwaniami 6 cykli 6 cykli
Poziomy priorytetów przerwań Od 8 do 256 poziomów priorytetów Od 8 do 256 poziomów priorytetów
Kontroler przerwań wake-up (Wake-up Interrupt Controller) Do 240 przerwań wake-up Do 240 przerwań wake-up
Tryby uśpienia Instrukcje WFI (Wait for Interrupt) i WFE (Wait for Event) oraz opcja przejścia do trybu uśpienia po wyłączeniu (Sleep On Exit).
Sygnały trybu uśpienia i głębokiego uśpienia (Sleep & Deep Sleep Signals).
Opcjonalny tryb zachowania (Retention Mode) z zestawem zarządzania energią (ARM Power Management Kit).
Instrukcje WFI (Wait for Interrupt) i WFE (Wait for Event) oraz opcja przejścia do trybu uśpienia po wyłączeniu (Sleep On Exit).
Sygnały trybu uśpienia i głębokiego uśpienia (Sleep & Deep Sleep Signals).
Opcjonalny tryb zachowania (Retention Mode) z zestawem zarządzania energią (ARM Power Management Kit).
Operacje bitowe Zintegrowane instrukcje oraz atomowy dostęp do bitów (bit banding). Zintegrowane instrukcje oraz atomowy dostęp do bitów (bit banding).
Debugowanie Opcjonalne testowanie połączeń (JTAG – Joint Test Action Group) oraz porty SWD (Serial-Wire Debug).
Do 8 punktów zatrzymania (breakpoints) i 4 punktów obserwacji (watchpoints).
Opcjonalne testowanie połączeń (JTAG – Joint Test Action Group) oraz porty SWD (Serial-Wire Debug).
Do 8 punktów zatrzymania (breakpoints) i 4 punktów obserwacji (watchpoints).
Śledzenie Opcjonalne instrukcje śledzenia: ETM (Embedded Trace Macrocell), DWT (Data Watchpoint) oraz ITM (Instrumentation Trace Macrocell). Opcjonalne instrukcje śledzenia: ETM (Embedded Trace Macrocell), DWT (Data Watchpoint) oraz ITM (Instrumentation Trace Macrocell).

O autorze