Académique Documents
Professionnel Documents
Culture Documents
Systèmes Embarqués
cours 1: Introduction aux systèmes
embarqués
- p. 1/133
- p. 2/133
Introduction
● Un peu d’histoire
● Aujourd’hui
Processeurs embarqués
- p. 3/133
Un peu d’histoire
Introduction
● Un peu d’histoire
■ Fin du XIXème siècle : démonstration du potentiel des
● Aujourd’hui technologies électroniques pour les transmissions sans fil.
Processeurs embarqués
■ Seconde guerre mondiale
introduction au MSP 430
◆ Application au calcul (décryptage)
Présentation des SoC
◆ Premiers ordinateurs (ENIAC)
■ 1947-1954
◆ Invention puis commercialisation des transistors à
semi-conducteurs
◆ Les « transistors » remplacent les postes radio à tubes
- p. 4/133
Un peu d’histoire
Introduction
● Un peu d’histoire
■ 1960-2002
● Aujourd’hui ◆ Réduction des tailles de transistors (≃ 10000)
Processeurs embarqués ◆ Évolution anticipée (loi de Moore)
introduction au MSP 430 ◆ Industrie au coeur de la croissance économique des 50
Présentation des SoC
dernières années
◆ Augmentation exponentielle des performances
année−1971
Density» (Frank): MAD = 10 10
■ “Stagnation” des performances pour la rapidité d’accès
- p. 5/133
Aujourd’hui
Introduction
● Un peu d’histoire
■ Circuits mixtes analogique/digital (télécommunications)
● Aujourd’hui
■ Micro-systèmes (capteurs, actionneurs intégrés)
Processeurs embarqués
■ Nano-technologies (horizon 5 à 10 ans)
introduction au MSP 430
- p. 6/133
Introduction
Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques Processeurs embarqués
introduction au MSP 430
- p. 7/133
Part de marché
- p. 8/133
Contradiction ?
- p. 9/133
- p. 10/133
Variété des processeurs embarqués
Introduction
Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques
- p. 11/133
Introduction
Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques
- p. 12/133
Architecture "Von Neuman" ou "Princeton"
Memory Proc
- p. 13/133
Architecture Harvard
Data
Memory
- p. 14/133
Le jeu d’instruction
- p. 15/133
- p. 16/133
Exemple: instructions de l’ISA du Pentium
Push ESI
5 3
PUSH Reg
- p. 17/133
- p. 18/133
Exemple: instructions de l’ISA du MSP
2 operands instruction
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Exemples:
■ PUSB.B R4
■ JNE -56
■ ADD.W R4,R4
- p. 19/133
Le CPU
ALU
Présentation des SoC
Control unit
control/Status
Register File
PC IR
Memory
- p. 20/133
Le pipeline RISC: exemple du MIPS
- p. 21/133
- p. 22/133
Le pipeline RISC: exemple du MIPS
- p. 23/133
- p. 24/133
Parallélisme au sein du processeur
Introduction
Indépendamment du pipeline, Deux paradigmes dominants:
Processeurs embarqués ■ Super Scalaire
● Processeurs embarqués
● Éconnomie ◆ Duplication des unités,
● ISA
● Pipeline ◆ Répartition au vol des instructions sur les unités
● Classification
● Charactéristiques disponibles (re-ordonnancement des instructions: out of
introduction au MSP 430 order execution)
Présentation des SoC
◆ Exemple: le PowerPC 970 (4 ALU, 2 FPU)
◆ Efficace mais complexifie l’unité de contrôle (problème
des interruptions)
■ Very Large Instruction Word (VLIW)
◆ Duplication des unités,
◆ L’ordonnancement des instructions est fixé à la
compilation (tout se passe comme si les instructions
pouvait être regroupe sur 64 bits, 128 bits etc.)
◆ Inventé par Josh Fisher (Yale) à partir du trace scheduling
◆ Les processeurs VLIW sont tous basés sur les
architecures RISC, avec entre 4 et 8 unités.
◆ Exemple: TriMedia (Philips), Itanium IA64 (Intel).
- p. 25/133
Introduction
Une autre approche possible: instructions SIMD.
Processeurs embarqués ■ Modification du data-path pour proposer des opérations
● Processeurs embarqués
● Éconnomie parallèles sur 16 ou 8 bits
● ISA
● Pipeline ■ Exemple: Sun Visual Instruction Set, Intel Pentium MMX,
● Classification
● Charactéristiques Philips TriMedia
introduction au MSP 430
■ Gains importants sur certains traitements mais très peu
Présentation des SoC
utilisé en pratique (difficile à inférer par le compilateur)
◆ Librairies écrites en assembleur (programmes non
portables)
◆ Fonction C représentant les instructions assembleurs
(compiler intrinsic)
◆ Exemple: instruction ifir8ii R1, R2, R3 du Trimedia:
8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits
* * * *
32 bits
- p. 26/133
Mémoire
- p. 27/133
Principe du Cache
Introduction 0
1
0
Processeurs embarqués 2
● Processeurs embarqués 3
● Éconnomie 4
● ISA 5
● Pipeline 6
● Classification 7
● Charactéristiques 0 8
1 9
introduction au MSP 430
1 cycle 2 10−20 cycles 10
Espace
Présentation des SoC Processeur 0
1
0000
11111
0
1
0
3 11
00
00
11
00
11
00
11
111111
000000
11
mémoire
0
1 0
1 4
5
00
11 001213
11 adressable
6 14
7 15
16
17
18
Cache de données (SRAM) 19
20
21
22
23 N−1
- p. 28/133
Hiérarchie Mémoire
Introduction
SOC
contrôleur
mémoire
- p. 29/133
- p. 30/133
68000, x86
- p. 31/133
Introduction ■ SPARC
Processeurs embarqués ◆ Un des premier RISC à avoir été embarqué (pratiquement
● Processeurs embarqués
● Éconnomie plus aujourd’hui)
● ISA
● Pipeline ◆ SPARC est une architecture brevetée (soft core,
● Classification
● Charactéristiques Intellectuel Property: IP), plusieurs compagnies fabriquent
introduction au MSP 430 des SPARC
Présentation des SoC ■ 29000 (AMD)
◆ Le 29000 a eu beaucoup de succès (imprimante laser
Apple) grâce à ces 192 registres
◆ AMD a arrêté la production car le développement des
outils coûtait trop cher.
■ i960 (intel)
◆ Le i960 a été le plus vendu des processeurs embarqués
au milieu des années 90 (router réseau et HP Laserjet).
- p. 32/133
MIPS, ARM, SuperH et PowerPC
- p. 33/133
Et les autres....
- p. 34/133
Micro-contrôleurs
- p. 35/133
- p. 36/133
Quelques mécanismes matériels utiles
- p. 37/133
- p. 38/133
Quelques mécanismes matériels utiles
- p. 39/133
- p. 40/133
Quelques mots sur la consommation
- p. 41/133
- p. 42/133
Réduction statique de la consommation
- p. 43/133
- p. 44/133
Low Power Mode pour le MSP430
- p. 45/133
Introduction
Processeurs embarqués
- p. 46/133
TI MSP430 : ez430-rf2500
Introduction
Processeurs embarqués
- p. 47/133
Documents techniques
- p. 48/133
Architecture du MSP
Introduction
JTAG
Présentation des SoC
16 Data
Bus 8
Conv
- p. 49/133
Introduction
R0/PC Program counter
Processeurs embarqués
R1/SP Stack Pointer
introduction au MSP 430 ■ 28 Instructions sur 16 bits R2/SR/CG1 Status Reg
● introduction au MSP 430
● TI MSP430 : ez430-rf2500
● Documents techniques
■ 64 Ko de mémoire adressable R3/CG2 Constant Gen
● Architecture
● Périphériques
■ Périphériques mappés en R4 General Purpose
MAB Memory Address Bus
R5 General Purpose
● Chaîne de développement
mémoire
MDB Memory Data Bus
.....
OS− CPU
Reserved V SCG1 SCG1 GIE N Z GC
COFF OFF
- p. 50/133
Periphérique intégrés
Introduction ■ timers
Processeurs embarqués
■ contrôleur LCD
introduction au MSP 430
● introduction au MSP 430 ■ mutliplieur cablé
● TI MSP430 : ez430-rf2500
● Documents techniques
● Architecture
■ contrôleur de bus
● Périphériques
● Chaîne de développement
■ convertisseur analogique numérique, comparateur
Présentation des SoC ■ ports séries
- p. 51/133
- p. 52/133
Exemple: multiplieur cablé
Introduction
int main(void) {
Processeurs embarqués
int i;
introduction au MSP 430
● introduction au MSP 430 int *p,*res;
● TI MSP430 : ez430-rf2500
● Documents techniques
int main(void) {
● Architecture
● Périphériques
int i; __asm__("mov #304, R4");
● Chaîne de développement int *p,*res; __asm__("mov #2, @R4");
Présentation des SoC // p=0x130;
p=0x130; // *p=2;
*p=2; __asm__("mov #312, R4");
p=0x138; __asm__("mov #5, @R4");
*p=5; //p=0x138;
res=0x13A; //*p=5;
i=*res; __asm__("mov #314, R4");
__asm__("mov @R4, R5");
nop(); //res=0x13A;
i=*res;
}
nop();
- p. 53/133
Mapping mémoire
- p. 55/133
Introduction
Processeurs embarqués
- p. 56/133
Qu’est ce qu’un SoC
- p. 57/133
- p. 58/133
Exemple SoC: appareil photo numérique
Introduction CCD
Processeurs embarqués
preprocesseur CCD (?)
introduction au MSP 430 CAN
- p. 59/133
- p. 60/133
iPaQ H5500, une fois démonté
Introduction
Processeurs embarqués
- p. 61/133
Introduction
BUS
Processeurs embarqués
Cotulla Intel PXA250
introduction au MSP 430
SDRAM 1
- p. 62/133
Architecture S3CA400A01 (companion chip)
Introduction
Processeurs embarqués
DMA (2channel)
introduction au MSP 430
CINT
Présentation des SoC Interuption
DP[1:0]
● Qu’est ce qu’un SoC
DN[1:0]
● Exemple SoC: appareil photo USB
Accel I/F
numérique Interface Accelerometer
CS[5:2] 2
XP.XM.YP.YM
ADC[3:0]
- p. 63/133
- p. 64/133
Critères de qualité de conception d’un SOC
- p. 65/133
- p. 66/133
Méthodologie de conception
Introduction
Intérêts du «codesign»
Processeurs embarqués ■ Conception rapide de SoC : time to market
introduction au MSP 430 ◆ Cycle de conception de haut niveau pour réduire les
Présentation des SoC
● Qu’est ce qu’un SoC
temps d’estimations des solutions
● Exemple SoC: appareil photo
numérique
■ Réduire la difficulté de validation et déboguage
● Autre exemple: iPaQ H5500
◆ Réutilisation d’IP
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
◆ Modules reconfigurables
(companion chip)
● Critères de qualité de ■ Converger vers une solution optimale en fonction des
conception d’un SOC
● Choix en fonction des contraintes de départ
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib
- p. 67/133
Méthodologie de conception
- p. 68/133
SocLib
Introduction
Processeurs embarqués
- p. 69/133
Organisation logicielle
- p. 70/133
Exemple d’une plateforme soclib
Introduction
- p. 71/133