Rdzenie z serii Cortex

Wprowadzenie

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.

$6

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

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

Porównanie szybkości wykonywania programów przez rdzenie ARM7 oraz Cortex-M3

Rys. 3. Budowa rdzenia 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

O autorze