Systèmes embarqués
Cours 5
Systèmes embarqués
Sylvain Tisserant - ESIL
Systèmes embarqués - S. Tisserant - ESIL - 2009
Microcontrôleurs PIC
General Instrument
Fin des années 70
Processeur 16 bits (CP1600)
Capacités d’entrées-sorties limitées par rapport à ses
concurrents (Intel 8086 et Motolora 68000)
Conception d’un contrôleur d’entrées-sorties à associer au
CP1600 : Peripheral Interface Controller (PIC)
Le CP1600 a disparu mais pas le PIC, pris en charge par
MicroChip qui a repris la division microélectronique de General
Instrument dans les années 80.
Les microcontrôleurs PIC sont encore parmi les plus populaires
aujourd’hui
Réputation : extrême robustesse
Systèmes embarqués - S. Tisserant - ESIL - 2009
Microcontrôleurs PIC (2)
Principalement manipulation d’octets (données sur 8 bits)
Les PICs se déclinent en 3 familles en fonction de la longueur
des instructions machines
Baseline : 12 bits
Mid-Range : 14 bits
High-End : 16 bits
Jeux d’instructions presque identiques pour les deux premières
familles (33 et 35 instructions respectivement)
Les µC Mid-Range disposent de 2 bits supplémentaires pour
l’adressage de la mémoire
Le jeu d’instructions de la 3
ème
famille est un peu plus étendu
avec 59 instructions
Systèmes embarqués - S. Tisserant - ESIL - 2009
Microcontrôleurs PIC (3)
Architecture RISC
Nouvelle famille de PIC avec des données de 16 bits dont
certains composants sont plus orientés vers le traitement de
signaux numériques (DSC : Digital Signal Controller)
Autour de ces différents cœurs chaque circuit se distingue par le
type des entrées-sorties (SPI, I2C, UART, CAN, LIN, USB,
IrDA) et le type de mémoire non volatile.
Systèmes embarqués - S. Tisserant - ESIL - 2009
Microcontrôleurs PIC (3)
La nomenclature reflète ces déclinaisons : PIC xx X yyyy
yyyy : identification du type (taille mémoire, ADC, vitesse
max, E/S, etc.)
X : lettre (F : Flash, C : EPROM, CR : ROM)
xx : famille (10, 12, 16 & 18 : 8 bits, 24 : 16 bits)
dsPIC : DSC 30 & 33
Nombreux formats physiques (boîtiers, broches, etc.)
Philosophie : conserver au maximum la compatibilité
(instructions, brochages, etc.) avec les produits antérieurs
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM
Acorn Computers
1985 : premier prototype ARM1 (Acorn RISC Machine)
1986 : commercialisation de l’ARM2
Architecture extrêmement simple
Données 32 bits, adressage 26 bits, 16 registres
Très performant pour une très faible consommation
Très vite l’ARM2 est le microprocesseur 32 bits le plus
vendu
ARM : Advanced RISC Machines
Fruit d’une collaboration Acorn, Apple et VLSI (1990)
1991 : ARM6
PDA Newton d’Apple
RiscPC d’Acorn
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM
Vente des cœurs sous forme de plans ou dessins :
Propriété Intellectuelle (IP) : bloc fonctionnel conçu pour être
intégré dans un système sur puce (SoC)
Plusieurs niveaux de licences : masques, synthétisable
(Verilog), etc.
Beaucoup de microcontrôleurs sont basés sur des cœurs
ARM
Licences achetées par un grand nombre de fabricants de
microprocesseurs et/ou microcontrôleurs
Aujourd’hui : 75 % des processeurs embarqués
Excellent rapport performance/consommation (MIPS/mW)
Assistants, téléphones mobiles, consoles de jeux, lecteurs
multimedia, routeurs, périphériques (disques durs,
contrôleurs, etc.)
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM
Une série de processeurs
ARM7, ARM9, ARM10, ARM11 & Cortex
Faible surface silicium faible coût
Faible consommation
Système d’interruptions efficace
Grande variété des modes d’adressage
Cœurs très similaires, mais pas compatibilité totale
ARM7 :
32 bits – Von Neuman – 3 étages de pipeline – 100 MHz
ARM9 :
32 bits – Harvard – 5 étages de pipeline – 200 MHz
ARM10 :
64 bits – Harvard – 5 étages de pipeline – 300 MHz
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7 et mémoire
Bus du processeur synchrone
CLK & CLKEN
Von Neumann
Bus pour données et instructions
Seules les instructions load,store et swap permettent
l’accès à la mémoire
Deux cycles d’horloge par transfert, mais un transfert peut être
effectué à chaque cycle
Adressage sur 32 bits (4 Go)
ADDR[31:0]
Bus de lecture et d’écriture distincts
WDATA[31:0], RDATA[31:0] & WRITE
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7 et mémoire (2)
Transferts par mots (32 bits), demi-mots (16 bits) et octets
SIZE[1:0]
Adresse de mots multiple de 4 et de demi-mots paire
ADDR[1:0] ou ADDR[0] sont ignorés
Représentation big-endian ou little-endian
CFGBIGEND
Quatre type de cycles
Interne : bloque le chargement du code
Coprocesseur : aucun transfert mémoire
Non séquentiel
Séquentiel
TRANS[1:0]
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7 et mémoire (3)
Le cycle lecture-écriture de l’instruction swap ne peut être
interrompu
LOCK
Accès aux périphériques en écrivant en mémoire
Octet 0 Octet 1 Octet 2 Octet 3
i + 3i i + 2i + 1 adresse
big endian
Octet 3 Octet 2 Octet 1 Octet 0
i + 3i i + 2i + 1 adresse
little endian
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM et coprocesseurs
Interface disponible au niveau du processeur
Signaux pour interfaçage matériel & instructions particulières
Communication via le bus de données
Jusqu’à 16 coprocesseurs
Gestion de la mémoire
Calcul en virgule flottante (VFP), etc.
Si coprocesseur absent
Instruction non définie
permet exécution
mais plus lente
Systèmes embarqués - S. Tisserant - ESIL - 2009
Modes de fonctionnement
Sept modes de fonctionnement
User : mode d’exécution normal
FIQ : mode de traitement d’une interruption rapide
IRQ : mode de traitement d’une interruption normale
Supervisor : mode privilégié (sur Reset ou SWI) en général
pour système d’exploitation
Abort : Impossibilité d’exécuter un transfert mémoire
(ABORT)
Undefined : mode activé par un code d’instruction non défini
permet émulation d’un coprocesseur
System : mode privilégié avec accès aux mêmes registres
que le mode User
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7 et registres
Au total 37 registres de 32 bits
Pas tous visibles simultanément
Selon le mode de fonctionnement
13 registres généraux : R0 à R12
2 registres mixtes par mode
R13 : pointeur de pile privée pour chaque mode
R14 : adresse de retour
Compteur ordinal : R15
Accessible au programmeur
Registre d’état (CPSR : Current Program Status Register)
Indicateurs d’états, mode de fonctionnement, masques
d’interruption, etc.
Un registre par mode de fonctionnement
Une sauvegarde par mode privilégié (SPSR : Saved PSR)
Systèmes embarqués - S. Tisserant - ESIL - 2009
ARM7 et banques de registres
Systèmes embarqués - S. Tisserant - ESIL - 2009
Le registre d’état (CPSR et SPSR)
Indicateurs conditionnels
N : négatif
Z : zéro
C : retenue
V : débordement
Q : débordement dans une
série d’opérations (sur
certains modèles)
Validation des interruptions
I : masque IRQ
F : masque FIQ
Mode Thumb
T = 0 : mode ARM (32 bits)
T = 1 : mode Thumb (16 bits)
Indicateurs de mode
5 bits de bas poids
10000 : user
10001 : FIQ
10010 : IRQ
10011 : supervisor
10111 : abort
11011 : undefined
11111 : system
Systèmes embarqués - S. Tisserant - ESIL - 2009
Les instructions
Toutes les instructions travaillent sur des registres, sauf les
instructions load,store et swap.
Gain en performances grâce à une architecture simplifiée
Codage des instructions sur un seul mot
Flux régulier dans le pipeline
Pipeline à 3 étages pour ARM7
Chargement, codage et exécution
Un cycle d’horloge par instruction
Pas d’anticipation des branchements
Systèmes embarqués - S. Tisserant - ESIL - 2009
Deux jeux d’instructions
ARM : 58 instructions de 32 bits avec accès aux 15 registres
3 opérandes : OP dest, src1, src2
Instructions à exécution conditionnelle
Décalage de src2 (barrel shifter) : spécificité de ARM
Thumb : 30 instructions de 16 bits avec accès à 8 registres (R0
à R7)
Sous ensemble des instructions ARM
2 opérandes : OP dest/src1, src2
Pas d’exécution conditionnelle
Pas de décalage de src2
Réduction de la taille du programme
Sans dégradation importante des performances car
décompression au niveau du matériel, avant décodage
Systèmes embarqués - S. Tisserant - ESIL - 2009
Codage des instructions ARM
Bits 28-31 : condition d’exécution (cond)
Bits 21-27 : code opération
Bit 20 : modification du registre d’état si S = 1
Bits 16-19 : registre source 1
Bits 11-15 : registre destination
Bits 0-10 : identification source 2 (plusieurs formes : constante,
registre, registre avec décalage, etc.)
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !