Chapitre 1: Architecture ARM
Version: 1.0
Date: 4-09-2016
1
Plan
I. Introduction
II. Le processeur Cortex-M4
III. Gestion de la mémoire
IV. Gestion des interruptions
V. Gestion de l’énergie
2
ARM (Advanced Risc Machines)
Une agence d’architecture fondée en Novembre 1990
Conçoit la gamme des processeurs ARM
ARM ne fabrique pas elle-même le silicium
3
Pourquoi ARM ?
4
Les utilisateurs de ARM
5
Les familles des processeurs ARM
More Than 40 company
ST, NXP, Atmel, Samsung…
Cortex-A : processeurs d’applications pour les applications complexes .
Cortex-R : systèmes temps réel
6
Cortex-M : Profil de microcontrôleur optimisé pour les applications sensibles aux coûts .
Les familles des processeurs ARM
CORTEX-M4 : jeu d’instructions
Jeu d’instruction
RISC 32-bit
8
CORTEX-M4 : Performance du CPU
Le temps total utilisé par un CPU pour exécuter un programme
CPU Time = N * CPI * CC
• N : Nombre d’instructions par programme
• CPI : Cycle Par Instruction
• CC : Clock Cycle
9
CORTEX-M4 : Architecture HARVARD
10
CORTEX-M4 : Gestion de la mémoire
Cortex-M4 comprend deux technologies pour réduire les besoins en mémoire de données:
• Unaligned Data Support
• Atomic Bit Banding
Ces technologies peuvent considérablement améliorer l'utilisation des données de la
mémoire (SRAM).
11
CORTEX-M4 : Gestion de la mémoire
Unaligned Data :
Processeur qui ne
supporte pas la ARM Cortex-M4
technologie supporte la technologie
“unaligned data” “unaligned data”
Long (32) Long (32)
Long (32) Long (32)
short (16) short (16) short (16)
short (16) Char Char Char Char
Données Char
alignées Char
Char
Char
Espace Perdu Espace libre
12
CORTEX-M4 : Gestion de la mémoire
Bit Banding :
Méthode traditionelle Implémentation du Cortex-M4
Disable external events
Read byte (RAM, register) 32bit
Mémoire
0 1 0 0 1 0 1 1 @Rbase+N b31 b0
REELLE
example: 20000000h to 200FFFFFh
Mask and modify bit element
X X X X X 1 X X
b31
Mémoire
Write byte (RAM, register) VIRTUALLE
0 1 0 0 1 1 1 1
b0
Enable external events
13
CORTEX-M4 : Gestion de la mémoire
Bit Banding :
Chaque bit de la région « bit band » (1MB) est mappé à une adresse de 32 bits (région d’alias : Zone virtuelle)
Chaque bit dans la région « bit band » peut être consulté séparément par les 32 bits correspondants dans la région
d'alias.
14
CORTEX-M4 : Pipeline
• Les instructions du processeur nécessitent généralement plusieurs activités consécutives:
FETCH
Instruction extraite de la mémoire
DECODE Instruction décodée
EXECUTE Exécution de l’instruction
15
CORTEX-M4 : Pipeline
Cycle 1 2 3 4 5 6 7 8 9
Operation
ADD F D E
SUB F D E
ORR F D E
AND F D E
ORR F D E
EOR F D E
F- Fetch D - Decode E - Execute
Dans cet exemple, il faut 6 cycles pour exécuter des instructions 6.
cycles d'horloge par instruction (CPI) = 1
16
CORTEX-M4 : Pipeline
Cycle 1 2 3 4 5 6 7 8 9
Address Operation
0x8000 B 0x8FEC F D E
0x8002 SUB F D
0x8004 ORR F
0x8FEC AND F D E
0x8FEE ORR F D E
0x8FF0 EOR F D E
F- Fetch D - Decode E - Execute
17
CORTEX-M4 : Manipulation des interruptions
Le processeur Cortex-M4 intègre un registre pour la gestion des interruptions appelé : «
Nested Vectored Interrupt Controller » (NVIC)
Le NVIC prend en charge jusqu'à 240 ligne d’interruptions chacune avec jusqu'à 256
niveaux de priorité
Le processeur Cortex-M4 Prend en charge des fonctionnalités avancées pour les
applications en temps réel :
• Gestion des interruptions en attente.
• Préemption.
• Gestion des arrivées tardives.
18
CORTEX-M4 : Registres
Contains return address after ISR
Contains next instruction address
CORTEX-M4 : Gestion de l’énergie
les différents modes de faible puissance dans le processeur Cortex-M4 :
Mode Sommeil (Sleep mode)
Dans ce mode, seulement l'horloge du processeur Cortex-M4 est arrêtée et les
périphériques sont conservés en mode actif. La consommation de courant augmente avec la
fréquence d'horloge.
Mode d'Arrêt (Stop mode)
Dans ce mode, le noyau Cortex-M4 est arrêté et les différentes horloges sont éteintes. Le
contenu des registres et de la mémoire sont conservés. Tous les broches d'entrée/sortie
gardent le même état que le mode "Actif".
Mode Veille (Standby mode)
Dans ce mode, le noyau Cortex-M4 est arrêté et les horloges sont éteintes. Le régulateur de
tension est désactivé. Le contenu de la mémoire et des registres sont perdus à l'exception
des registres dans le domaine de sauvegarde. Ce mode a la consommation de courant la
plus basse. 20
CORTEX-M4 : Architecture
Interrupt controller: CM4 Core:
Harvard (Separate Busses)
32 Bits Register & ALUs.
WIC
Multi layer Bus Matrix
(Parallel transfers between
core, memory, & peripherals
21
Pourquoi CORTEX-M4?
Performance Temps réel
5 raisons
pour choisir
Cortex-M4
Mémoire Gestion de
optimisée l’énergie
Debuggage
22