Vous êtes sur la page 1sur 70

RTS12: Systmes Embarqus

cours 1: Introduction aux systmes


embarqus

Fabrice Jumel, Kevin Marquet, Lionel Morel, Tanguy Risset, Guillaume Salagnac
tanguy.risset@insa-lyon.fr
Lab CITI, INSA de Lyon

- p. 1/70
Le cours Systme embarqu

Introduction Logiciel embarqu


Processeurs embarqus Chaine de compilation, modles de programmation, OS
introduction au MSP 430
embarqus, virtualisation
Prsentation des SoC
Architecture matrielle
Processeurs embarqus, mmoire dans les systmes
embarqus, FPGA, SoC, MPSoC
Rseau de capteurs
Programmation de micro-controleur, TP sur la plate-forme
EZ430
Expos darticles de recherche

- p. 2/70
Les intervenants

Introduction Fabrice Jumel (CPE)


Processeurs embarqus
Kevin Marquet (Insa-IF)
introduction au MSP 430

Prsentation des SoC


Lionel Morel (Insa-IF)
Guillaume Salagnac (Insa-IF)
Tanguy Risset (Insa-TC)

- p. 3/70
Plan du cours 1 (2H)

Introduction Introduction gnrale aux systmes embarqus


Processeurs embarqus
Architecture des processeurs embarqus
introduction au MSP 430

Prsentation des SoC


Prsentation rapides du MSP430
Systmes sur puces

URL:
http://perso.citi.insa-lyon.fr/trisset/cours/rts12/

- p. 4/70
Plan du cours 1 (2H)

Introduction Introduction gnrale aux systmes embarqus


Processeurs embarqus
Architecture des processeurs embarqus
introduction au MSP 430

Prsentation des SoC


Prsentation rapides du MSP430
Systmes sur puces

URL:
http://perso.citi.insa-lyon.fr/trisset/cours/rts12/

- p. 5/70
Un peu dhistoire

Introduction
Aujourdhui
Fin du XIXme sicle : dmonstration du potentiel des
Processeurs embarqus
technologies lectroniques pour les transmissions sans fil.
introduction au MSP 430
Seconde guerre mondiale
Prsentation des SoC
Application au calcul (dcryptage)
Premiers ordinateurs (ENIAC)

1947-1954
Invention puis commercialisation des transistors
semi-conducteurs
Les transistors remplacent les postes radio tubes

Annes 60 et 70: premiers circuits intgrs, LSI

- p. 6/70
Un peu dhistoire

Introduction
Aujourdhui
1960-2010
Rduction des tailles de transistors ( 100000)
Processeurs embarqus
volution anticipe (loi de Moore)
introduction au MSP 430
Industrie au coeur de la croissance conomique des 50
Prsentation des SoC

dernires annes
Augmentation exponentielle des performances

Puissance (Joy) :MIPS = 2


anne1984
Densit (Moore) :Transistors par puce = 2
anne1964
Densit des supports magntiques Maximal Areal

anne1971
Density (Frank): MAD = 10 10
Stagnation des performances pour la rapidit daccs

aux disques RAID (multiplications des disques) et


caches.

- p. 7/70
Aujourdhui

Introduction
Aujourdhui
Circuits mixtes analogique/digital (tlcommunications)
Processeurs embarqus
Micro-systmes (capteurs, actionneurs intgrs)
introduction au MSP 430 Nano-technologies (horizon 5 10 ans)
Prsentation des SoC
Taille de gravure: 90 nm
Cots de R&D de plus en plus levs
La demande (ordinateurs, tlphones mobiles, etc.) stagne
Peu de produits vraiment nouveaux (VHS => DVD,
camscopes => numriques, tlphones fixes => mobiles)
Crise financire et conomique des TIC

- p. 8/70
Introduction

Processeurs embarqus
Processeurs embarqus
connomie
ISA
Pipeline
Classification
Charactristiques Processeurs embarqus
introduction au MSP 430

Prsentation des SoC

- p. 9/70
Part de march

Introduction Quel est le le microprocesseur le plus vendu ?


Processeurs embarqus Rponse classique: "Le Pentium: 92% du march"
Processeurs embarqus
connomie
ISA
Faux!......
Pipeline En fait les Pentium ne reprsentent que 2% des
Classification
Charactristiques microprocesseurs vendus dans le monde.
introduction au MSP 430

Prsentation des SoC

- p. 10/70
Contradiction ?

Introduction Alors dou vient la position dIntel (16% du march des


Processeurs embarqus
Processeurs embarqus
semi-conducteurs) ?
connomie
ISA
processeurs: 2% du silicium, 30% des revenus
Pipeline
Classification
Charactristiques

introduction au MSP 430

Prsentation des SoC

- p. 11/70
Et au sein des processeurs

Introduction 3 milliards de processeurs 8 bits vendus par an (8051, 6805


Processeurs embarqus
Processeurs embarqus
etc.)
connomie
ISA
32 bits (Pentium, Athlon, mais aussi PowerPC, 68000, MIPS,
Pipeline
Classification
ARM etc.)
Charactristiques
La plupart (98%) sont embarqus (3 fois plus dARM vendus
introduction au MSP 430
que de Pentium)
Prsentation des SoC

- p. 12/70
Varit des processeurs embarqus

Introduction

Processeurs embarqus
Processeurs embarqus
connomie
ISA
Pipeline
Classification
Charactristiques

introduction au MSP 430

Prsentation des SoC

Les applications sont plus varies que pour les ordinateurs


Beaucoup de processeurs embarqus sont des processeurs
de bureau qui nont pas percs (MIPS, 68K, SPARC, ARM,
PowerPC)

- p. 13/70
Une image en 2007

Introduction

Processeurs embarqus
Processeurs embarqus
connomie
ISA
Pipeline
Classification
Charactristiques

introduction au MSP 430

Prsentation des SoC

- p. 14/70
Architecture "Von Neuman" ou "Princeton"

Introduction La mmoire contient les donnes et les instructions


Processeurs embarqus
Processeurs embarqus
Lunit centrale (CPU) charge les instructions depuis la
connomie
ISA
mmoire.
Pipeline
Classification Un ensemble de registres aide le CPU:
Charactristiques
Compteur dinstructions (Program counter: PC),
introduction au MSP 430
Registre dinstruction (Instruction register: IR)
Prsentation des SoC
Pointeur de pile (stack pointer: SP)
Registres usage gnral (Accumulateur: A)

Memory Proc

- p. 15/70
Architecture Harvard

Introduction Donnes et instructions dans des mmoires spares


Processeurs embarqus
Processeurs embarqus
Autorise deux accs simultans la mmoire.
connomie
ISA Utilis pour la plupart des DSP
Pipeline
Classification meilleure bande passante
Charactristiques
Performances plus prdictibles
introduction au MSP 430

Prsentation des SoC


Instruction Proc
Memory

Data
Memory

- p. 16/70
Le jeu dinstruction

Introduction Le jeu dinstruction (Instruction Set Architecture: ISA) a une


Processeurs embarqus
Processeurs embarqus
importance capitale
connomie Il dtermine les instructions lmentaires excutes par le
ISA
Pipeline CPU.
Classification
Charactristiques Cest un quilibre entre la complexit matrielle du CPU
introduction au MSP 430 et la facilit dexprimer les actions requises
Prsentation des SoC
On le reprsente de manire symbolique (ex: MSP, code
sur 16 bits):
mov r5,@r8 ; commentaire [R8]<-R5
lab: ADD r4,r5 ; R5<-R5+R4
Deux classes de jeux dinstructions:
CISC: Complex Instruction Set Computer
RISC: Reduce Instruction Set Computer

- p. 17/70
CISC: Complex Instruction Set Computer

Introduction Une instruction peut designer plusieurs oprations


Processeurs embarqus
Processeurs embarqus
lmentaires.
connomie Ex: un load, une opration arithmtique et un store,
ISA
Pipeline Ex: calculer une interpolation linaire de plusieurs
Classification
Charactristiques valeurs en mmoire.
introduction au MSP 430 Acclration par des mcanismes matriels complexes
Prsentation des SoC
Grandes variations de taille et de temps dexcution pour les
instructions
Rsulte en un code compact mais complexe gnrer.
Vax, Motorola 68000, Intel x86/Pentium

- p. 18/70
Exemple: instructions de lISA du Pentium

Introduction JE EIP + displacement


4 4 8
Processeurs embarqus
JE Condition Displacement
Processeurs embarqus
connomie
ISA Call
Pipeline 8 32
Classification CALL Offset
Charactristiques

introduction au MSP 430 Mov $EBX, [EDI+displacement]


6 1 1 8 8
Prsentation des SoC
MOV d w rm postbyte Displacement

Push ESI
5 3

PUSH Reg

Add $EAX, Immediate


4 3 1 32

ADD Reg w Immediate

Test $EDX, Immediate


7 1 8 32

TEST w PostByte Immediate

- p. 19/70
RISC: Reduced Instruction Set Computer

Introduction Petites instructions simples, toutes de mme taille, ayant


Processeurs embarqus
Processeurs embarqus
toutes (presque) le mme temps dexcution
connomie
ISA
Pas dinstruction complexe
Pipeline
Classification Acclration en pipelinant lexcution (entre 3 et 7 tages de
Charactristiques
pipeline pour une instruction) augmentation de la vitesse
introduction au MSP 430
dhorloge
Prsentation des SoC
Code plus simple gnrer, mais moins compact
Tous les microprocesseurs modernes utilisent ce paradigme:
SPARC, MIPS, ARM, PowerPC, etc.

- p. 20/70
Exemple: instructions de lISA du MSP

Introduction 1 operand instruction


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Processeurs embarqus
Processeurs embarqus 0 0 B/W Ad
0 0 0 1 opcode Dest reg.
connomie
ISA
Pipeline
Classification relative Jumps
Charactristiques 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

introduction au MSP 430


0 0 1 condition PC offset (10 bits)

Prsentation des SoC

2 operands instruction
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Dest reg. Ad B/W As Dest reg.


opcode

Exemples:
PUSB.B R4

JNE -56

ADD.W R4,R4

- p. 21/70
Le CPU

Introduction Lunit de contrle configure le chemin de donne suivant


Processeurs embarqus
Processeurs embarqus
linstruction excuter.
connomie
ISA
Lexcution dune instruction est dcompose en plusieurs
Pipeline
Classification
phases dun cycle.
Charactristiques
Processor Datapath
introduction au MSP 430

ALU
Prsentation des SoC
Control unit
control/Status
Register File

PC IR

Memory

- p. 22/70
Le pipeline RISC: exemple du MIPS

Introduction Le pipeline dpend de larchitecture, pour le MIPS:


Processeurs embarqus Instruction Fetch (IF, Fetch):
Processeurs embarqus
connomie charge linstruction dans lIR
ISA
Pipeline Instruction Decode (ID, Decode):
Classification
Charactristiques dcode linstruction et met en place le contrle du chemin
introduction au MSP 430 de donne
Prsentation des SoC
Execute (Ex): excute le calcul dans le chemin de
donne.
Memory access (Mem): accde la mmoire
Write Back (WB): crit dans le banc de registre

- p. 23/70
Le pipeline RISC: exemple du MIPS

Introduction Physiquement, larchitecture du processeur est organise en


Processeurs embarqus
Processeurs embarqus
calculs combinatoires pour chaque tape de pipeline,
connomie spars par des registres.
ISA
Pipeline
Classification
Charactristiques

introduction au MSP 430

Prsentation des SoC

- p. 24/70
Le pipeline RISC: exemple du MIPS

Introduction Lorsque linstruction suivante ne peut pas tre excute tout


Processeurs embarqus
Processeurs embarqus
de suite, cela cre une "bulle".
connomie
ISA
Par exemple une addition utilisant un registre qui vient dtre
Pipeline
Classification
charg doit tre retard dun cycle.
Charactristiques

introduction au MSP 430

Prsentation des SoC

- p. 25/70
Bilan architecture non pipeline

Introduction Excution non pipeline:


Processeurs embarqus 5 cycles pour excuter une instruction
Processeurs embarqus
connomie 15 cycles pour 3 instructions.
ISA
Pipeline
Classification
Excution pipeline:
Charactristiques 5 cycles pour excuter une instruction
introduction au MSP 430 8 cycles pour 3 instructions.
Prsentation des SoC sans branchement, une instruction par cycle
Un branchement (conditionnel ou pas) interrompt le
pipeline car il faut attendre de dcoder ladresse de
branchement pour charger linstruction suivante
quelques cycles dinactivit (pipeline stall)
Lors dun branchement, certain ISA autorisent lutilisation
de ces delai slots: une ou deux instructions aprs le
branchement sont excutes, que le branchement soit
pris ou pas (comme si elles taint crites avant le
branchement).

- p. 26/70
Paralllisme au sein du processeur

Introduction
Indpendamment du pipeline, Deux paradigmes dominants:
Processeurs embarqus Super Scalaire
Processeurs embarqus
connomie Duplication des units,
ISA
Pipeline Rpartition au vol des instructions sur les units
Classification
Charactristiques disponibles (re-ordonnancement des instructions: out of
introduction au MSP 430 order execution)
Prsentation des SoC
Exemple: le PowerPC 970 (4 ALU, 2 FPU)
Efficace mais complexifie lunit de contrle (problme
des interruptions)
Very Large Instruction Word (VLIW)
Duplication des units,
Lordonnancement 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 bass sur les
architecures RISC, avec entre 4 et 8 units.
Exemple: TriMedia (Philips), Itanium IA64 (Intel).
- p. 27/70
Paralllisme au sein du processeur

Introduction
Une autre approche possible: instructions SIMD.
Processeurs embarqus Modification du data-path pour proposer des oprations
Processeurs embarqus
connomie parallles sur 16 ou 8 bits
ISA
Pipeline Exemple: Sun Visual Instruction Set, Intel Pentium MMX,
Classification
Charactristiques Philips TriMedia
introduction au MSP 430
Gains importants sur certains traitements mais trs peu
Prsentation des SoC
utilis en pratique (difficile infrer par le compilateur)
Librairies crites en assembleur (programmes non
portables)
Fonction C reprsentant 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. 28/70
Mmoire

Introduction Plusieurs technologies pour les mmoires:


Processeurs embarqus Mmoires statiques (SRAM): petites, rapides,
Processeurs embarqus
connomie consommatrices, peu denses (chres).
ISA
Pipeline Mmoires dynamiques (DRAM): grandes, lentes, trs
Classification
Charactristiques denses, transactions chres
introduction au MSP 430 De plus en plus de place On-Chip pour la mmoire (dans ce
Prsentation des SoC cas elles sont moins efficaces que les chips mmoire).
Ne pas oublier que le code aussi rside en mmoire
Tous les systmes ont des caches pour cacher les temps de
latence lors de laccs la mmoire, en gnral plusieurs
niveaux de caches: hirarchie mmoire.

- p. 29/70
Principe du Cache

Introduction 0
1
0
Processeurs embarqus 2
Processeurs embarqus 3
connomie 4
ISA 5
Pipeline 6
Classification 7
Charactristiques 0 8
1 9
introduction au MSP 430
1 cycle 2 1020 cycles 10
Espace
11000
001111
03 100000
0 00
11
11111 11
Prsentation des SoC
00
11
Processeur
00
11 0
1
045
1 0
1
0
1 00
11
0012
11
mmoire
13 adressable
6 14
7 15
16
17
18
Cache de donnes (SRAM) 19
20
21
22
23 N1

Mmoire principale (DRAM)

- p. 30/70
Hirarchie Mmoire

Introduction

Processeurs embarqus Processeur Processeur


Processeurs embarqus /DSP /DSP
connomie
ISA
ASIC / ASIP
D: cache de donnes
Pipeline D I D I
I: cache dinstructions
Classification
Charactristiques

introduction au MSP 430

Mmoire cache Cache Cache


Prsentation des SoC
de niveau 4
de niveau 3 de niveau 2

SOC

Bus systme externe

Bancs de mmoire DRAM

contrleur
mmoire

- p. 31/70
Diffrents types de processeurs embarqus

Introduction Beaucoup de Processeurs usage gnral ayant une ou


Processeurs embarqus
Processeurs embarqus
deux gnrations
connomie
ISA
4, 8, 16 ou 32 bits (taille des mots)
Pipeline
Classification RISC et CISC
Charactristiques

introduction au MSP 430


DSP: Digital Signal Processor
Prsentation des SoC
ASIP: Application Specific Integrated Processor

- p. 32/70
68000, x86

Introduction Famille des Motorola 68000


Processeurs embarqus Un des plus vieux processeur embarqu (ex Sun, Mac)
Processeurs embarqus
connomie Architecture CISC
ISA
Pipeline ISA propre et les meilleurs outils de dveloppement,
Classification
Charactristiques beaucoup dutilisateurs
introduction au MSP 430 Famille des x86
Prsentation des SoC Dmarre au 8086 (Intel) puis 80286, 386, 486, Pentium, et
Athlon (AMD)
En processeurs embarqus: 5 fois moins que MIPS, ARM
ou 68000.
architecture CISC, compatible avec le code du 8086
compatibilit mais mauvaises performances

- p. 33/70
SPARC, 29000 et i960

Introduction SPARC
Processeurs embarqus Un des premier RISC avoir t embarqu (pratiquement
Processeurs embarqus
connomie plus aujourdhui)
ISA
Pipeline SPARC est une architecture brevete (soft core,
Classification
Charactristiques Intellectuel Property: IP), plusieurs compagnies fabriquent
introduction au MSP 430 des SPARC
Prsentation des SoC 29000 (AMD)
Le 29000 a eu beaucoup de succs (imprimante laser
Apple) grce ces 192 registres
AMD a arrt la production car le dveloppement des
outils cotait trop cher.
i960 (intel)
Le i960 a t le plus vendu des processeurs embarqus
au milieu des annes 90 (router rseau et HP Laserjet).

- p. 34/70
MIPS, ARM, SuperH et PowerPC

Introduction MIPS (microprocessor without interlocked pipeline stages)


Processeurs embarqus Originellement pour les stations puissantes (SGI)
Processeurs embarqus
connomie Puis, march des consoles de jeux (Nitendo N64)
ISA
Pipeline Famille trs tendue: du plus gros (MIPS 20Kc, 64 bit) au
Classification
Charactristiques plus petit (SmartMIPS, 32 bit pour carte puce)
introduction au MSP 430 ARM (Advanced RISC Machines, ex Acorn)
Prsentation des SoC Un des 32 bits embarqus les plus populaires :
tlphones portables
Faible consommation
Le successeur: StrongArm est commercialis par Intel
sous le nom de XScale
SuperH (ou SH: Hitachi) Utilis dans les stations Sega et les
PDA
PowerPC autant utilis en embarqu quen ordinateur

- p. 35/70
Et les autres....

Introduction Plus de 100 processeurs embarqus 32 bits sur le march


Processeurs embarqus
Processeurs embarqus
Les constructeurs de FPGA proposent des soft-processeurs
connomie
ISA
pour configurer les FPGA: Nios (Altera), MicroBlaze (Xilinx)
Pipeline
Classification Certain processeurs RISC (Crusoe de Transmetta) peuvent
Charactristiques
excuter du code CISC (Intel)
introduction au MSP 430
Principe: recompilation du code lexcution (runtime
Prsentation des SoC
compilation)
Gain obtenus par un mcanisme de cache, doptimisation
pousse des portion de code rptes (boucle), et grce
au paralllisme de niveau instruction
Rduction drastique de la consommation pour des
performances quivalentes

- p. 36/70
Micro-contrleurs

Introduction Utilis pour le contrle embarqu


Processeurs embarqus Censeur, contrleurs simples
Processeurs embarqus
connomie Manipule des vnements, quelques donnes mais en
ISA
Pipeline faible quantit
Classification
Charactristiques Exemple: camescope, disque dur, appareil photo
introduction au MSP 430 numrique, machine laver, four micro-onde
Prsentation des SoC Quelques caractristiques frquentes
Priphriques prsents sur le circuit (timer, convertisseur
analogique numrique, interface de communication),
accessible directement grce aux registres
Programme et donnes intgres au circuit
Accs direct du programmeur de nombreuses broches
du circuit
Instructions spcialises pour les manipulation de bits.

Le MSP430 appartient cette catgorie

- p. 37/70
DSP: Digital Signal Processing

Introduction Utiliss pour les applications de traitement du signal


Processeurs embarqus Grande quantits de donnes numrises, souvent
Processeurs embarqus
connomie organises en flux
ISA
Pipeline Filtre numrique sur tlphone, TV numrique,
Classification
Charactristiques synthtiseur de sons
introduction au MSP 430 Relativement proche des GPP, mais quelques
Prsentation des SoC caractristiques en plus:
Bande passante leve (deux bus)
Instructions ddies pour les calculs de traitement du
signal: multiplication accumulation,
Arithmtique spcifique (mode darrondi)
Registres ddis pour certains oprateurs.
Constructeurs: Texas Instrument, puis Analog Devices,
Motorola

- p. 38/70
Quelques mcanismes matriels utiles

Introduction Densit de code:


Processeurs embarqus La taille du code est importante pour les codes
Processeurs embarqus
connomie embarqus car elle influe sur la taille de la mmoire
ISA
Pipeline utilise
Classification
Charactristiques Un programme C compil pour SPARC prendra deux fois
introduction au MSP 430 plus de place en mmoire que le mme programme
Prsentation des SoC compil pour le 68030.
En gnral les code RISC sont deux fois moins dense que
les codes CISC (ex: instruction TBLS du 68300: table
lookup and interpolate)
Les options de compilation doivent tre utilises avec
prcaution.
Le code est quelquefois stock compress et
decompress au vol par du matriel spcifique.

- p. 39/70
Quelques mcanismes matriels utiles

Introduction Manipulations au niveau bit:


Processeurs embarqus Utilis pour les algorithmes de cryptage mais surtout pour
Processeurs embarqus
connomie les pilotes de priphriques.
ISA
Pipeline La plupart des priphriques indiquent leur tat au
Classification
Charactristiques processeur en mettant un certain bit 1 dans un certain
introduction au MSP 430 registre.
Prsentation des SoC
Un processeur standard doit rapatrier le mot de 32 bit,
masquer et tester 0
Les instructions BIC, BIT et BIS du MSP430 font des
manipulation au niveau bit dans la mmoire

- p. 40/70
Quelques mcanismes matriels utiles

Introduction Donnes non-aligns


Processeurs embarqus De nombreux traitements manipulent des donnes de
Processeurs embarqus
connomie taille non-multiple de 32 (paquets TCP/IP, video streams,
ISA
Pipeline cls dencryption, 20 bits, 56 bits)
Classification
Charactristiques Les processeurs RISC savent uniquement transfrer des
introduction au MSP 430 mots (32 bits) aligns (cals sur une adresse multiple de
Prsentation des SoC 32 bits).
La plupart des architectures CISC (68k, x86) peuvent faire
des chargements non aligns

- p. 41/70
Quelques mcanismes matriels utiles

Introduction Gestion spcifique du cache


Processeurs embarqus Les caches amliorent les performances mais introduisent
Processeurs embarqus
connomie du non-dterminisme.
ISA
Pipeline Les contraintes spcifiques des systmes embarqus ont
Classification
Charactristiques entran des mcanismes particuliers pour les cache
introduction au MSP 430
On peut vouloir bloquer le cache (cache locking): forcer
Prsentation des SoC certaines donnes ou instruction se charger et rester
dans le cache (on parle aussi de mmoire scratch-pad
memory ou de software controlled cache).
La plupart des caches utilisent une politique de
Write-Back: une donne modifie dans le cache nest pas
forcment immdiatement recopie en memoire. Dans le
cas de priphriques mapps en mmoire, il est
indispensable de recopier immdiatement (politique
write-through)

- p. 42/70
Quelques mots sur la consommation

Introduction Trois composantes de la consommation dune porte logique


Processeurs embarqus
Processeurs embarqus
(inverseur)
connomie Consommation dynamique : Pdyn = C.V 2
ISA
CC
Pipeline (C capacit de la porte)
Classification
Charactristiques Consommation statique : Pstatic = VCC .Ileak
introduction au MSP 430 (VCC : tension dalimentation, Ileak intensit des
Prsentation des SoC courants de fuite)
Consommation de court-circuit Pcs = K..(VCC 2VT h )3 .
(K:constante technologique ; VT h :tension seuil ;
:temps de monte descente du signal)
Pdyn Pstatic Pcs
Demain Pdyn Pstatic Pcs

- p. 43/70
Consommation dun circuit CMOS

Introduction Gnralisation nave en prenant en compte une activit


Processeurs embarqus
Processeurs embarqus
moyenne (nombre moyen de portes commutant)
connomie Consommation dynamique : Pdyn = C.V 2 ..f
ISA
CC
Pipeline (f : frquence du circuit)
Classification
Charactristiques Consommation statique : Pstatic = VCC .Ileak .N.kdesign
introduction au MSP 430 (N: nombre de portes, kdesign constante dpendant
Prsentation des SoC du design)
Cette modlisation est trs imprcise pour un circuit dont le
comportement nest pas stationnaire (ex: processeur)

- p. 44/70
Rduction statique de la consommation

Introduction Le facteur le plus important est la tension dalimentation


Processeurs embarqus
Processeurs embarqus
(VCC ) dabord 3.3 V puis 2.5 V. Les versions rcentes de
connomie Xscale (strong ARM, Intel) et les puces smartCard
ISA
Pipeline fonctionnent a 0.65 V
Classification
Charactristiques On peut diffrencier les tensions en fonction du bloc du chip:
introduction au MSP 430 1.5 V pour le processeur, 3.3 pour linterface du bus et les
Prsentation des SoC pattes dentre/sortie (ex: Strong ARM de Digital)
Plus la technologie est intgre, moins elle consomme
(capacit diminue).
Frquence dhorloge peu leve compense par le
paralllisme
Complexit rduite des diffrents composants (moins de
registres, architectures RISC)

- p. 45/70
Introduction

Processeurs embarqus

introduction au MSP 430


introduction au MSP 430
Documents techniques
Architecture
Priphriques introduction au MSP 430
Chane de dveloppement

Prsentation des SoC

- p. 46/70
Documents techniques

Introduction Documents du cours sur Moodle


Processeurs embarqus
http://perso.citi.insa-lyon.fr/afraboul/rts6/
introduction au MSP 430
introduction au MSP 430
Manuel de programmation du MSP
Documents techniques
Architecture
(MSP430x2xx_Family_Users_Guide_(Rev._D)_slau144d.pdf)
Priphriques
Chane de dveloppement
Manuel du MSP430F2274 (msp430f2274.pdf)
Prsentation des SoC Feuilles de schmatique
Users Manual EZ430
(eZ430-RF2500_User Guide_SLAU227A.pdf)
Datasheet du composant radio (cc2500.pdf)
Documents IAR
IAR compiler reference guide, ...

Site de Texas Instrument


Exemples de programme / drivers, Notes dapplication, ...

The mspgcc toolchain:


http://mspgcc.sourceforge.net/
Notamment la doc mspgcc (download puis documentation)
- p. 47/70
Architecture du MSP

Introduction

Processeurs embarqus Flash RAM Peripheral Peripheral


Clock ROM
introduction au MSP 430 Bus 8 bits 8 bits
introduction au MSP 430
Ctrl
Documents techniques
Architecture
Priphriques Adress
16 8
Chane de dveloppement
RISCCPU
16 bit

JTAG
Prsentation des SoC

16 Data Bus 8
Conv

Watchdog Peripheral Peripheral Peripheral


Timer 8 bits 8 bits
16 bits

- p. 48/70
CPU RISC 16 bits

Introduction
R0/PC Program counter
Processeurs embarqus
R1/SP Stack Pointer
introduction au MSP 430 28 Instructions sur 16 bits R2/SR/CG1 Status Reg
introduction au MSP 430
Documents techniques
Architecture
64 Ko de mmoire adressable R3/CG2 Constant Gen

Priphriques
Chane de dveloppement
Priphriques mapps en R4 General Purpose

MAB Memory Address Bus


R5 General Purpose
mmoire

MDB Memory Data Bus


Prsentation des SoC

.....
16 registres 16 bits (r0-r16) R14 General Purpose

r0: PC (Program counter) R15 General Purpose

r1: SP (Stack pointeur)


r2: SR (status register) Z
dest src
C
16 bit ALU
r3: constante 0 V
N

R3: Status Register


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OS CPU
Reserved V SCG1 SCG1 GIE N Z GC
COFF OFF

- p. 49/70
Periphrique intgrs

Introduction timers
Processeurs embarqus
contrleur LCD
introduction au MSP 430
introduction au MSP 430 mutliplieur cabl
Documents techniques
Architecture
Priphriques
contrleur de bus
Chane de dveloppement
convertisseur analogique numrique, comparateur
Prsentation des SoC
ports sries

- p. 50/70
Priphrique mapp en mmoire

Introduction lcriture une certaine adresse est interprte comme une


Processeurs embarqus
communication avec le priphrique.
introduction au MSP 430
introduction au MSP 430
Exemple : le multiplieur matriel
Documents techniques
Accessible par des registres mapps entre les adresses
Architecture
Priphriques
Chane de dveloppement
0x0130 et 0x013F
criture ladresse 0x130, positionne le premier
Prsentation des SoC

oprande (unsigned mult)


criture ladresse 0x138, positionne le deuxime
oprande et lance le calcul
Le rsultat est ladresse 0x013A, sur 32 bits

Les autres priphriques sont aussi accessibles par des


registres mapp en mmoire: les SFR (Special Function
Registers), en C:
criture vers le priphrique: SFR = valeur
lecture des registres du priphrique: variable = SFR

- p. 51/70
Exemple: multiplieur cabl

Introduction
int main(void) {
Processeurs embarqus
int i;
introduction au MSP 430
introduction au MSP 430 int *p,*res;
Documents techniques
Architecture
int main(void) {
Priphriques
Chane de dveloppement
int i; __asm__("mov #304, R4");
Prsentation des SoC
int *p,*res; __asm__("mov #2, @R4");
// 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. 52/70
Mapping mmoire

Introduction Interrupt Vector Table: indique les adresses des fonctions de


Processeurs embarqus
gestion des interruption
introduction au MSP 430
introduction au MSP 430
Lors du Boot, le MSP va lire ladresse 0xFFFE: handler du
Documents techniques
Architecture
reset.
Priphriques
0xFFFF
Chane de dveloppement Interrupt Vector Table Word/Byte
Sur le MSP430F149: 0xFFE0
Prsentation des SoC
0x0 0x1FF: 0xFFDF
Word/Byte
priphriques FLASH/ROM

0x200 B=0x9FF: RAM


A 11111111111111
00000000000000
00000000000000
11111111111111
(2Ko), Donnes et pile 00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
dexcution 00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
B
00000000000000
11111111111111
0xC00 0xFFF: Boot
RAM Word/Byte
mem. 0x200
0x1FF
0x1000 0x10FF: byte 16 bit peripheral Modules
Word
info. mem. 0x100
0xFF 6 bit peripheral Modules
A=0x1100 0xFFFF: Byte
0x10
ROM (60 Ko): code. 0xF
Special Function Register Byte
0x0
- p. 53/70
Chane de dveloppement

Introduction Plusieurs configurations


Processeurs embarqus Programmation directe du micro-contrleur
introduction au MSP 430 Simulation du micro-contrleur (sans les priphriques)
introduction au MSP 430
Documents techniques
Architecture
Plusieurs plateformes de dveloppement
Priphriques mspgcc (GNU)
Chane de dveloppement
IAR (texas Instrument)
Prsentation des SoC
..

- p. 54/70
RTS6: Conception et programmation de Systme

Introduction

Processeurs embarqus

introduction au MSP 430

Prsentation des SoC


Quest ce quun SoC
Exemple SoC: appareil photo
numrique
Autre exemple: iPaQ H5500
Architecture carte iPaQ
Introduction aux systmes sur puces (SoC)
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 55/70
Quest ce quun SoC

Introduction "System" : une collection dlments en interaction.


Processeurs embarqus
"On Chip" : sur un seul circuit.
introduction au MSP 430

Prsentation des SoC


Mais tous les circuits intgrs ne sont pas des SOC, Un
Quest ce quun SoC SOC implmente une fonction "complte"
Exemple SoC: appareil photo
numrique Dcodeur MPEG2 vido + audio + systme + transport +
Autre exemple: iPaQ H5500
Architecture carte iPaQ graphique + interface utilisateur
H5500
Architecture S3CA400A01 Terminal GSM : tout sauf la RF
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 56/70
Qest ce quun SoC

Introduction Une seule fonction


Processeurs embarqus
un seul programme, excut en boucle
introduction au MSP 430
Contraintes importantes
Prsentation des SoC
Quest ce quun SoC cot, consommation, taille, performance, . . .
Exemple SoC: appareil photo
numrique Prise en compte de lenvironnement
Autre exemple: iPaQ H5500
Architecture carte iPaQ doivent ragir en fonction de nombreux paramtres
H5500
Architecture S3CA400A01 souvent associ des contraintes de temps-rel
(companion chip)
Critres de qualit de
conception dun SOC
Les lments constitutifs dun SOC sont "complexes",
Choix en fonction des
contraintes
rutilisables et de nature varie :
Mthodologie de conception
SocLib
Fonctions analogiques (convertisseurs A/N, filtres, etc.)
Organisation logicielle Fonctions numriques cbles (dcodeur de Viterbi)
Exemple dune plateforme
soclib Fonctions logicielles (sur micro-contrleur, DSP, RISC)
Composants de base (mmoires)

- p. 57/70
Exemple SoC: appareil photo numrique

Introduction CCD

Processeurs embarqus
preprocesseur CCD (?)
introduction au MSP 430 CAN

Prsentation des SoC


Quest ce quun SoC Lentille
Exemple SoC: appareil photo
numrique compression
microcontroleur (?)
Autre exemple: iPaQ H5500 JPEG (?) UART
Architecture carte iPaQ
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
Une seule fonction : prendre des photos
contraintes
Mthodologie de conception
Contraintes : taille, poids, consommation
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 58/70
Autre exemple: iPaQ H5500

Introduction Site http://www.handhelds.org/: "encourage and


Processeurs embarqus
facilitate the creation of open source software for use on
introduction au MSP 430
handheld and wearable computers"
Prsentation des SoC
Quest ce quun SoC
Adaptation de linux pour PDA
Exemple SoC: appareil photo
numrique
Autre exemple: iPaQ H5500
Architecture carte iPaQ
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 59/70
iPaQ H5500, une fois dmont

Introduction

Processeurs embarqus

introduction au MSP 430

Prsentation des SoC


Quest ce quun SoC
Exemple SoC: appareil photo
numrique
Autre exemple: iPaQ H5500
Architecture carte iPaQ
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 60/70
Architecture carte iPaQ H5500

Introduction
BUS
Processeurs embarqus
Cotulla Intel PXA250
introduction au MSP 430

Prsentation des SoC


Quest ce quun SoC
ARM Xscale
Exemple SoC: appareil photo
numrique
Autre exemple: iPaQ H5500
SAMSUNG
Architecture carte iPaQ
S3CA400A01
H5500
Architecture S3CA400A01 (SAMCOP)
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme SDRAM 0
soclib

SDRAM 1

- p. 61/70
Architecture S3CA400A01 (companion chip)

Introduction

Processeurs embarqus
DMA (2channel)
introduction au MSP 430
CINT
Prsentation des SoC Interuption DP[1:0]
Quest ce quun SoC
DN[1:0]
Exemple SoC: appareil photo USB
Accel I/F
numrique Interface Accelerometer
CS[5:2] 2

Bus systeme (AHB)


Autre exemple: iPaQ H5500 RDY Intel
Architecture carte iPaQ Cotulla
nOE
H5500 (Xscale) Bridge
Architecture S3CA400A01 nWE LED[4:0]
LED

Bus periphrique (APB)


(companion chip)
Critres de qualit de
conception dun SOC
Interne Buffer DQ
Choix en fonction des
32 KBytes OneWire
contraintes
Mthodologie de conception
SocLib
SD Card I/F
Organisation logicielle SD Host
DREQ[1:0] 6
Exemple dune plateforme MA[25:0]
soclib DMA
MD[31:0]

Touch Panel I/F FCD I/F FCD I/F


11
PCMCIA
Expansion PWR Man.
RXD[1:0]
ADC
UART TXD[1:0]
Data[31:0]
Addr[10:0]
control

XP.XM.YP.YM
ADC[3:0]

Reset, PLL, VCC, MCUCLK

- p. 62/70
Critres de qualit de conception dun SOC

Introduction Mtriques usuelles


Processeurs embarqus Cot lunit: cot de fabrication dune unit sans inclure
introduction au MSP 430
les cot non rcurrents
Prsentation des SoC Cots non rcurrents: cot de conception dun systme
Quest ce quun SoC
Exemple SoC: appareil photo
numrique
(cot de mise en place de la premire pice).
Autre exemple: iPaQ H5500 Taille
Architecture carte iPaQ
H5500 Performance
Architecture S3CA400A01
(companion chip) Consommation
Critres de qualit de
conception dun SOC volutivit: possibilit de faire voluer le systme pour en
Choix en fonction des
contraintes
Mthodologie de conception
avoir des versions drives.
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 63/70
Critres de qualit de conception dun SOC

Introduction Mtriques usuelles (suite)


Processeurs embarqus Temps de prototypage : temps de mise en place dun
introduction au MSP 430
premier systme fonctionnel
Prsentation des SoC Temps de mise sur le march : systme suffisamment
Quest ce quun SoC
Exemple SoC: appareil photo
numrique
fiable pour tre commercialis
Autre exemple: iPaQ H5500 Maintenance : possibilit de modifications du systme par
Architecture carte iPaQ
H5500
Architecture S3CA400A01
rapport sa premire version
(companion chip) Fiabilit, sret de fonctionnement, . . .
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 64/70
Choix en fonction des contraintes

Introduction Une grande souplesse de ralisation est possible


Processeurs embarqus Il ny a pas de solution unique
introduction au MSP 430 Performance implmentation
Prsentation des SoC uniquement matrielle
Quest ce quun SoC
Exemple SoC: appareil photo
numrique
Autre exemple: iPaQ H5500
Architecture carte iPaQ contrainte
H5500
Architecture S3CA400A01
de performance
(companion chip)
Critres de qualit de
conception dun SOC implmenation
Choix en fonction des uniquement logicielle
contraintes
Mthodologie de conception Cot
SocLib
Organisation logicielle contrainte
Exemple dune plateforme de cot
soclib

- p. 65/70
Mthodologie de conception

Introduction
Intrts du codesign
Processeurs embarqus Conception rapide de SoC : time to market
introduction au MSP 430 Cycle de conception de haut niveau pour rduire les
Prsentation des SoC
Quest ce quun SoC
temps destimations des solutions
Exemple SoC: appareil photo
numrique
Rduire la difficult de validation et dboguage
Autre exemple: iPaQ H5500
Rutilisation dIP
Architecture carte iPaQ
H5500
Architecture S3CA400A01
Modules reconfigurables
(companion chip)
Critres de qualit de Converger vers une solution optimale en fonction des
conception dun SOC
Choix en fonction des contraintes de dpart
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 66/70
Mthodologie de conception

Introduction La conception ncessite davoir une modlisation complte


Processeurs embarqus
Approche logicielle
introduction au MSP 430
les objets migrent vers le HW jusqu ce que les
Prsentation des SoC
Quest ce quun SoC contraintes de performances soit atteintes (pour un cot
Exemple SoC: appareil photo
numrique
minimum)
Autre exemple: iPaQ H5500
Architecture carte iPaQ Approche matrielle
H5500
Architecture S3CA400A01 les objets migrent en SW tant que les contraintes de
(companion chip)
Critres de qualit de performances restent atteintes (pour un cot minimum)
conception dun SOC
Choix en fonction des
contraintes
Le meilleur partitionnement ncessite en gnral lexpertise
Mthodologie de conception
SocLib
dun concepteur.
Organisation logicielle
Exemple dune plateforme
soclib

- p. 67/70
SocLib

Introduction

Processeurs embarqus

introduction au MSP 430

Prsentation des SoC http://soclib.lip6.fr/


Quest ce quun SoC
Exemple SoC: appareil photo Environnement de conception et de simulation gratuit et
numrique
Autre exemple: iPaQ H5500 open source
Architecture carte iPaQ
H5500 Utilise des modles de composants crits en SystemC
Architecture S3CA400A01
(companion chip) processeur
Critres de qualit de
conception dun SOC interconnexion
Choix en fonction des
contraintes
Mthodologie de conception
priphriques
SocLib
...
Organisation logicielle
Exemple dune plateforme
soclib
Utilisation dune chane de compilation standard (GNU)

- p. 68/70
Organisation logicielle

Introduction Systme dexploitation multithread : Mutek


Processeurs embarqus Gestion de lAPI de thread Posix
introduction au MSP 430 Gestion des interruptions
Prsentation des SoC Commutation de contexte rapide
Quest ce quun SoC
Exemple SoC: appareil photo
numrique
Logiciel cross-compil avec gcc
Autre exemple: iPaQ H5500
Architecture carte iPaQ Intgration du systme avec lapplicatif ldition des liens
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
SocLib
Organisation logicielle
Exemple dune plateforme
soclib

- p. 69/70
Exemple dune plateforme soclib

Introduction

Processeurs embarqus MISP 3000


introduction au MSP 430

Prsentation des SoC


I D RAM multi bancs
Quest ce quun SoC
Exemple SoC: appareil photo RAM
numrique
Autre exemple: iPaQ H5500 Cache
Architecture carte iPaQ
H5500
Architecture S3CA400A01
(companion chip)
Critres de qualit de
conception dun SOC
Choix en fonction des
contraintes
Mthodologie de conception
Interconnexion
SocLib
Organisation logicielle
Exemple dune plateforme
soclib
TTY RAM
smaphores filtre audio

- p. 70/70