Rdzenie z serii Cortex
Cortex to rodzina nowoczesnych rdzeni mikrokontrolerowych i mikroprocesorowych opracowanych przez firmę ARM, będąca następcą popularnych rozwiązań opartych na ARM7 i pochodnych. Twórcy rdzeni Cortex założyli, że nowe będą one obsługiwać zestaw instrukcji Thumb2 (architektura ARMv7), powinny także szybciej wykonywać programy przy takiej samej częstotliwości taktowania jak starsze rdzenie, powinny mieć prostszą budowę (dzięki czemu uprości się implementacja mikrokontrolera w krzemie), dużą wagę przywiązano także do zminimalizowania poboru energii.
Rys. 1
Na rys. 1 pokazano praktyczne skutki zastosowania listy instrukcji Thumb 2 w mikrokontrolerach STM32: przeciętny spadek wydajności w stosunku do ?czystych? poleceń ARM wynosi ok. 3% przy jednoczesnym obniżeniu o 30% pojemności wymaganej pamięci programu.
Wersje rdzeni Cortex
Rodzina Cortex składa się z trzech wersji rdzeni:
- Cortex R – przeznaczonych do stosowania w systemach czasu rzeczywistego,
- Cortex A – przeznaczonych do stosowania w dużych systemach z zaimplementowanymi systemami operacyjnymi, mają wbudowaną m.in. jednostkę MMU,
- Cortex M – rdzenie zoptymalizowane cenowo, przeznaczone dla aplikacji mikrokontrolerowych.
Odnośnik do opisu rdzenia Cortex-M3 (w języku angielskim). |
Więcej informacji o liście instrukcji Thumb2 (w języku angielskim). |
Twórcy rdzeni Cortex uwzględnili w sygnalizowane przez programistów informacje o nieprzejrzystym i nie najlepiej działającym dotychczas kontrolerze obsługi przerwań ? rdzenie Cortex wyposażono w zupełnie nowy, szybki i łatwy w obsłudze kontroler NVIC. Charakteryzuje się on krótkim, przewidywalnym czasem obsługi przerwań, w tym także zgłaszanych jednocześnie (rys. 2).
Rys. 2. Obsługa przerwań w rdzeniach Cortex jest szybsza niż w ARM7, a czas reakcji jest łatwy do określenia
Rdzenie Cortex wyposażono także w rozszerzenie ARM NEON (Media Acceleration Technology), dzięki któremu CPU jest w stanie szybko wykonywać dodatkowe instrukcje ułatwiające programową implementację algorytmów DSP.
Porównanie rdzeni Cortex-M3 i ARM7TDMI
Przygotowane przez firmę ARM porównanie cech i możliwości rdzeni ARM7TDMI i Cortex-M3 przedstawiono w tab. 1. Na rys. 3 pokazano budowę rdzenia Cortex-M3 wraz z podstawowym otoczeniem.
Porównanie szybkości wykonywania programów przez rdzenie ARM7 oraz Cortex-M3
Rys. 3. Budowa rdzenia Cortex-M3
Tab. 1. Porównanie podstawowych cech i parametrów rdzeniu ARM7TDMI i Cortex-M3
Cecha/parametr | ARM7TDMI | ARM Cortex-M3 |
---|---|---|
Architektura | ARMv4T (von Neumann) | ARMv7-M (Harvard) |
Lista instrukcji | Thumb/ARM | Thumb/Thumb-2 |
Pipeline | 3-stopniowy | 3-stopniowy + przewidywanie rozgałęzień |
Przerwania | FIQ/IRQ | NMI +1?240 |
Opóźnienie obsługi przerwania | 24?42 cykle zegara | 12 cykli zegara |
Minimalny odstęp pomiędzy obsługą kolejnych przerwań | 24 cykle zegara | 6 cykli zegara |
Tryby oszczędzania energii | – | wbudowane |
Ochrona pamięci | – | 8 obszarów |
Prędkość wykonywania poleceń | 0,95 DMIPS/MHz (ARM) 0,74 DMIPS/MHz (Thumb) |
1,25 DMIPS/MHz (Tumb 2) |
Pobór mocy | 0,28 mW/MHz | 0,19 mW/MHz |