You are on page 1of 36

RTS6: Conception et programmation de Systmes Embarqus cours 1: Introduction aux systmes embarqus

Antoine Fraboulet, Fabrice Jumel, Lionel Morel, Tanguy Risset tanguy.risset@insa-lyon.fr Lab CITI, INSA de Lyon

- p. 1/133

Plan du cours 1 (2H)

Introduction Processeurs embarqus introduction au MSP 430 Prsentation des SoC

s s s s

Introduction gnrale aux systmes embarqus Architecture des processeurs embarqus Prsentation rapides du MSP430 Systmes sur puces

Introduction q Un peu dhistoire q Aujourdhui Processeurs embarqus introduction au MSP 430 Prsentation des SoC

Un peu dhistoire

- p. 3/133

Un peu dhistoire

Introduction q Un peu dhistoire q Aujourdhui Processeurs embarqus introduction au MSP 430 Prsentation des SoC

Fin du XIXme sicle : dmonstration du potentiel des technologies lectroniques pour les transmissions sans l. Seconde guerre mondiale x Application au calcul (dcryptage) x Premiers ordinateurs (ENIAC) 1947-1954 x Invention puis commercialisation des transistors semi-conducteurs x Les transistors remplacent les postes radio tubes Annes 60 et 70: premiers circuits intgrs, LSI

Un peu dhistoire

Introduction q Un peu dhistoire q Aujourdhui Processeurs embarqus introduction au MSP 430 Prsentation des SoC

1960-2002 x Rduction des tailles de transistors ( 10000) x volution anticipe (loi de Moore) x Industrie au coeur de la croissance conomique des 50 dernires annes x Augmentation exponentielle des performances anne1984 s Puissance (Joy) :MIPS = 2 anne1964 s Densit (Moore) :Transistors par puce = 2 s Densit des supports magntiques Maximal Areal anne1971 10 Density (Frank): MAD = 10 s Stagnation des performances pour la rapidit daccs aux disques RAID (multiplications des disques) et caches.

- p. 5/133

Aujourdhui

Introduction q Un peu dhistoire q Aujourdhui Processeurs embarqus introduction au MSP 430

s s s s

Prsentation des SoC

s s s

Circuits mixtes analogique/digital (tlcommunications) Micro-systmes (capteurs, actionneurs intgrs) Nano-technologies (horizon 5 10 ans) 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 xes => mobiles) Crise nancire et conomique des TIC

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Processeurs embarqus

- p. 7/133

Part de march

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Quel est le le microprocesseur le plus vendu ? x Rponse classique: "Le Pentium: 92% du march" Faux!...... x En fait les Pentium ne reprsentent que 2% des microprocesseurs vendus dans le monde.

Contradiction ?

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Alors dou vient la position dIntel (16% du march des semi-conducteurs) ? processeurs: 2% du silicium, 30% des revenus

- p. 9/133

Et au sein des processeurs

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

3 milliards de processeurs 8 bits vendus par an (8051, 6805 etc.) 32 bits (Pentium, Athlon, mais aussi PowerPC, 68000, MIPS, ARM etc.) La plupart (98%) sont embarqus (3 fois plus dARM vendus que de Pentium)

Varit des processeurs embarqus

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

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. 11/133

Une image en 2007

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Architecture "Von Neuman" ou "Princeton"

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

La mmoire contient les donnes et les instructions Lunit centrale (CPU) charge les instructions depuis la mmoire. Un ensemble de registres aide le CPU: x Compteur dinstructions (Program counter: PC), x Registre dinstruction (Instruction register: IR) x Pointeur de pile (stack pointer: SP) x Registres usage gnral (Accumulateur: A)
Memory Proc

- p. 13/133

Architecture Harvard

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s s

Donnes et instructions dans des mmoires spares Autorise deux accs simultans la mmoire. Utilis pour la plupart des DSP x meilleure bande passante x Performances plus prdictibles
Instruction Memory Data Memory Proc

Le jeu dinstruction

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Le jeu dinstruction (Instruction Set Architecture: ISA) a une importance capitale x Il dtermine les instructions lmentaires excutes par le CPU. x Cest un quilibre entre la complexit matrielle du CPU et la facilit dexprimer les actions requises x 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: x CISC: Complex Instruction Set Computer x RISC: Reduce Instruction Set Computer

- p. 15/133

CISC: Complex Instruction Set Computer

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

s s

Une instruction peut designer plusieurs oprations lmentaires. Ex: un load, une opration arithmtique et un store, Ex: calculer une interpolation linaire de plusieurs valeurs en mmoire. Acclration par des mcanismes matriels complexes 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

Exemple: instructions de lISA du Pentium

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

JE EIP + displacement 4 JE 4 Condition 8 Displacement

Call 8 CALL Offset 32

Mov $EBX, [EDI+displacement] 1 1 6 8 MOV d w rm postbyte

8 Displacement

Push ESI 5 PUSH

3 Reg

Add $EAX, Immediate 4 3 1 ADD Reg w

32 Immediate

Test $EDX, Immediate 7 1 TEST w

8 PostByte

32 Immediate

- p. 17/133

RISC: Reduced Instruction Set Computer

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

s s

Petites instructions simples, toutes de mme taille, ayant toutes (presque) le mme temps dexcution Pas dinstruction complexe Acclration en pipelinant lexcution (entre 3 et 7 tages de pipeline pour une instruction) augmentation de la vitesse dhorloge Code plus simple gnrer, mais moins compact Tous les microprocesseurs modernes utilisent ce paradigme: SPARC, MIPS, ARM, PowerPC, etc.

Exemple: instructions de lISA du MSP

Introduction

1 operand instruction 15 14 0 13 0 12 1 11 0 10 0 9 8 opcode 7 6 B/W 5 Ad 4 3 2 Dest reg. 1 0

Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

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

PC offset (10 bits)

2 operands instruction 15 14 opcode 13 12 11 Dest reg. 10 9 8 Ad 7 B/W 6 As 5 4 3 2 Dest reg. 1 0

Exemples: s PUSB.B R4 s JNE -56 s ADD.W R4,R4

- p. 19/133

Le CPU

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques

Lunit de contrle congure le chemin de donne suivant linstruction excuter. Lexcution dune instruction est dcompose en plusieurs phases dun cycle.
Processor
Datapath ALU Control unit control/Status Register File

introduction au MSP 430 Prsentation des SoC

PC

IR

Memory

Le pipeline RISC: exemple du MIPS

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Le pipeline dpend de larchitecture, pour le MIPS: x Instruction Fetch (IF, Fetch): charge linstruction dans lIR x Instruction Decode (ID, Decode): dcode linstruction et met en place le contrle du chemin de donne x Execute (Ex): excute le calcul dans le chemin de donne. x Memory access (Mem): accde la mmoire x Write Back (WB): crit dans le banc de registre

- p. 21/133

Le pipeline RISC: exemple du MIPS

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Physiquement, larchitecture du processeur est organise en calculs combinatoires pour chaque tape de pipeline, spars par des registres.

Le pipeline RISC: exemple du MIPS

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Lorsque linstruction suivante ne peut pas tre excute tout de suite, cela cre une "bulle". Par exemple une addition utilisant un registre qui vient dtre charg doit tre retard dun cycle.

- p. 23/133

Bilan architecture non pipeline

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Excution non pipeline: x 5 cycles pour excuter une instruction x 15 cycles pour 3 instructions. Excution pipeline: x 5 cycles pour excuter une instruction x 8 cycles pour 3 instructions. x sans branchement, une instruction par cycle x 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) x 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).

Paralllisme au sein du processeur

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Indpendamment du pipeline, Deux paradigmes dominants: s Super Scalaire x Duplication des units, x Rpartition au vol des instructions sur les units disponibles (re-ordonnancement des instructions: out of order execution) x Exemple: le PowerPC 970 (4 ALU, 2 FPU) x Efcace mais complexie lunit de contrle (problme des interruptions) s Very Large Instruction Word (VLIW) x Duplication des units, x Lordonnancement des instructions est x la compilation (tout se passe comme si les instructions pouvait tre regroupe sur 64 bits, 128 bits etc.) x Invent par Josh Fisher (Yale) partir du trace scheduling x Les processeurs VLIW sont tous bass sur les architecures RISC, avec entre 4 et 8 units. x Exemple: TriMedia (Philips), Itanium IA64 (Intel).
- p. 25/133

Paralllisme au sein du processeur

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Une autre approche possible: instructions SIMD. s Modication du data-path pour proposer des oprations parallles sur 16 ou 8 bits s Exemple: Sun Visual Instruction Set, Intel Pentium MMX, Philips TriMedia s Gains importants sur certains traitements mais trs peu utilis en pratique (difcile infrer par le compilateur) x Librairies crites en assembleur (programmes non portables) x Fonction C reprsentant les instructions assembleurs (compiler intrinsic) x Exemple: instruction ifir8ii R1, R2, R3 du Trimedia:
8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits

Mmoire

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

Plusieurs technologies pour les mmoires: x Mmoires statiques (SRAM): petites, rapides, consommatrices, peu denses (chres). x Mmoires dynamiques (DRAM): grandes, lentes, trs denses, transactions chres De plus en plus de place On-Chip pour la mmoire (dans ce cas elles sont moins efcaces 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. 27/133

Principe du Cache

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

1 cycle 1 1 0 Processeur 0 1 0 1 0 111 000

1 0

1 0

0 1 2 3 4 5 6 7

11 00 11 00 11 00 11 00 111111 000000 12 11 00 11 00 13
14

1020 cycles

0 1 2 3 4 5 6 7 8 9 10 11

Espace mmoire adressable

Cache de donnes (SRAM)

15 16 17 18 19 20 21 22 23

N1

Mmoire principale (DRAM)

Hirarchie Mmoire

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Processeur /DSP D: cache de donnes I: cache dinstructions

Processeur /DSP ASIC / ASIP

Mmoire cache de niveau 4

Cache de niveau 3

Cache de niveau 2

SOC

Bus systme externe

Bancs de mmoire DRAM contrleur mmoire

- p. 29/133

Diffrents types de processeurs embarqus

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s s s

Beaucoup de Processeurs usage gnral ayant une ou deux gnrations 4, 8, 16 ou 32 bits (taille des mots) RISC et CISC DSP: Digital Signal Processor ASIP: Application Specic Integrated Processor

68000, x86

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

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

- p. 31/133

SPARC, 29000 et i960

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

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

MIPS, ARM, SuperH et PowerPC

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

MIPS (microprocessor without interlocked pipeline stages) x Originellement pour les stations puissantes (SGI) x Puis, march des consoles de jeux (Nitendo N64) x Famille trs tendue: du plus gros (MIPS 20Kc, 64 bit) au plus petit (SmartMIPS, 32 bit pour carte puce) ARM (Advanced RISC Machines, ex Acorn) x Un des 32 bits embarqus les plus populaires : tlphones portables x Faible consommation x 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. 33/133

Et les autres....

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

Plus de 100 processeurs embarqus 32 bits sur le march Les constructeurs de FPGA proposent des soft-processeurs pour congurer les FPGA: Nios (Altera), MicroBlaze (Xilinx) Certain processeurs RISC (Crusoe de Transmetta) peuvent excuter du code CISC (Intel) x Principe: recompilation du code lexcution (runtime compilation) x Gain obtenus par un mcanisme de cache, doptimisation pousse des portion de code rptes (boucle), et grce au paralllisme de niveau instruction x Rduction drastique de la consommation pour des performances quivalentes

Micro-contrleurs

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Utilis pour le contrle embarqu x Censeur, contrleurs simples x Manipule des vnements, quelques donnes mais en faible quantit x Exemple: camescope, disque dur, appareil photo numrique, machine laver, four micro-onde Quelques caractristiques frquentes x Priphriques prsents sur le circuit (timer, convertisseur analogique numrique, interface de communication), accessible directement grce aux registres x Programme et donnes intgres au circuit x Accs direct du programmeur de nombreuses broches du circuit x Instructions spcialises pour les manipulation de bits. Le MSP430 appartient cette catgorie

- p. 35/133

DSP: Digital Signal Processing

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Utiliss pour les applications de traitement du signal x Grande quantits de donnes numrises, souvent organises en ux x Filtre numrique sur tlphone, TV numrique, synthtiseur de sons Relativement proche des GPP, mais quelques caractristiques en plus: x Bande passante leve (deux bus) x Instructions ddies pour les calculs de traitement du signal: multiplication accumulation, x Arithmtique spcique (mode darrondi) x Registres ddis pour certains oprateurs. x Constructeurs: Texas Instrument, puis Analog Devices, Motorola

Quelques mcanismes matriels utiles

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Densit de code: x La taille du code est importante pour les codes embarqus car elle inue sur la taille de la mmoire utilise x Un programme C compil pour SPARC prendra deux fois plus de place en mmoire que le mme programme compil pour le 68030. x En gnral les code RISC sont deux fois moins dense que les codes CISC (ex: instruction TBLS du 68300: table lookup and interpolate) x Les options de compilation doivent tre utilises avec prcaution. x Le code est quelquefois stock compress et decompress au vol par du matriel spcique.

- p. 37/133

Quelques mcanismes matriels utiles

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Manipulations au niveau bit: x Utilis pour les algorithmes de cryptage mais surtout pour les pilotes de priphriques. x La plupart des priphriques indiquent leur tat au processeur en mettant un certain bit 1 dans un certain registre. x Un processeur standard doit rapatrier le mot de 32 bit, masquer et tester 0 x Les instructions BIC, BIT et BIS du MSP430 font des manipulation au niveau bit dans la mmoire

Quelques mcanismes matriels utiles

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Donnes non-aligns x De nombreux traitements manipulent des donnes de taille non-multiple de 32 (paquets TCP/IP, video streams, cls dencryption, 20 bits, 56 bits) x Les processeurs RISC savent uniquement transfrer des mots (32 bits) aligns (cals sur une adresse multiple de 32 bits). x La plupart des architectures CISC (68k, x86) peuvent faire des chargements non aligns

- p. 39/133

Quelques mcanismes matriels utiles

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Gestion spcique du cache x Les caches amliorent les performances mais introduisent du non-dterminisme. x Les contraintes spciques des systmes embarqus ont entran des mcanismes particuliers pour les cache x On peut vouloir bloquer le cache (cache locking): forcer certaines donnes ou instruction se charger et rester dans le cache (on parle aussi de mmoire scratch-pad memory ou de software controlled cache). x La plupart des caches utilisent une politique de Write-Back: une donne modie 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)

Quelques mots sur la consommation

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

Trois composantes de la consommation dune porte logique (inverseur) x Consommation dynamique : Pdyn = C.V 2 CC (C capacit de la porte) x Consommation statique : Pstatic = VCC .Ileak (VCC : tension dalimentation, Ileak intensit des courants de fuite) x Consommation de court-circuit Pcs = K..(VCC 2VT h )3 . (K:constante technologique ; VT h :tension seuil ; :temps de monte descente du signal) Aujourdhui (2004) Pdyn Pstatic Pcs Demain (2007) Pdyn Pstatic Pcs

- p. 41/133

Consommation dun circuit CMOS

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Gnralisation nave en prenant en compte une activit moyenne (nombre moyen de portes commutant) x Consommation dynamique : Pdyn = C.V 2 ..f CC (f : frquence du circuit) x Consommation statique : Pstatic = VCC .Ileak .N.kdesign (N: nombre de portes, kdesign constante dpendant du design) Cette modlisation est trs imprcise pour un circuit dont le comportement nest pas stationnaire (ex: processeur)

Rduction statique de la consommation

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Le facteur le plus important est la tension dalimentation (VCC ) dabord 3.3 V puis 2.5 V. Les versions rcentes de Xscale (strong ARM, Intel) et les puces smartCard fonctionnent a 0.65 V On peut diffrencier les tensions en fonction du bloc du chip: 1.5 V pour le processeur, 3.3 pour linterface du bus et les 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. 43/133

Rduction dynamique de la consommation

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

s s

Gestion dynamique de la frquence dhorloge Exemple: processeur Crusoe (Transmetta) Suppression de lhorloge sur un bloc (Dynamic clock gating) Gestion dynamique de lalimentation (pas encore ralis)

Low Power Mode pour le MSP430

Introduction Processeurs embarqus q Processeurs embarqus q connomie q ISA q Pipeline q Classication q Charactristiques introduction au MSP 430 Prsentation des SoC

Diffrent mode pour rduire la consommation x LPM0: le CPU est arrt x LPM1, LPM2: lhorloge rapide (MCLK) est aussi arrte x LPM3 le gnrateur dhorloge est arrt x LPM4 : loscillateur du crystal est arrt Le temps de reprise est dautant plus long que la veille est profonde.

- p. 45/133

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

introduction au MSP 430

TI MSP430 : ez430-rf2500

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

- p. 47/133

Documents techniques

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

s s

Documents du cours http:// Manuel de programmation du MSP


(MSP430x2xx_Family_Users_Guide_(Rev._D)_slau144d.pdf)

s s s

Manuel du MSP430F2274 (msp430f2274.pdf) Feuilles de schmatique Users Manual EZ430


(eZ430-RF2500_User Guide_SLAU227A.pdf)

s s

Datasheet du composant radio (cc2500.pdf) Documents IAR x IAR compiler reference guide, ... Site de Texas Instrument x Exemples de programme / drivers, Notes dapplication, ... The mspgcc toolchain: http://mspgcc.sourceforge.net/

Architecture du MSP

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

Clock

Bus Ctrl 16 JTAG

Flash ROM

RAM

Peripheral 8 bits

Peripheral 8 bits

Adress

RISCCPU 16 bit

16

Data

Bus Conv

Watchdog Timer

Peripheral 16 bits

Peripheral 8 bits

Peripheral 8 bits

- p. 49/133

CPU RISC 16 bits

Introduction
R0/PC Program counter

Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

s s s

28 Instructions sur 16 bits 64 Ko de mmoire adressable Priphriques mapps en mmoire 16 registres 16 bits (r0-r16) x r0: PC (Program counter) x r1: SP (Stack pointeur) x r2: SR (status register) x r3: constante 0
R3: Status Register

R1/SP Stack Pointer R2/SR/CG1 Status Reg

R3/CG2 Constant Gen R4 General Purpose R5 General Purpose ..... MAB Memory Address Bus src 16 bit ALU N

MDB Memory Data Bus

R14 General Purpose R15 General Purpose

Z C V

dest

15

14

13 Reserved

12

11

10

8 V

7 SCG1

6 SCG1

5 OS COFF

4 CPU OFF

3 GIE

2 N

1 Z

0 GC

Periphrique intgrs

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

s s s s s s

timers contrleur LCD mutliplieur cabl contrleur de bus convertisseur analogique numrique, comparateur ports sries

- p. 51/133

Priphrique mapp en mmoire

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

lcriture une certaine adresse est interprte comme une communication avec le priphrique. Exemple : le multiplieur matriel x Accessible par des registres mapps entre les adresses 0x0130 et 0x013F x criture ladresse 0x130, positionne le premier oprande (unsigned mult) x criture ladresse 0x138, positionne le deuxime oprande et lance le calcul x 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: x criture vers le priphrique: SFR = valeur x lecture des registres du priphrique: variable = SFR

Exemple: multiplieur cabl

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

int main(void) { int i; int *p,*res; int main(void) { int i; int *p,*res; p=0x130; *p=2; p=0x138; *p=5; res=0x13A; i=*res; nop(); } nop();
- p. 53/133

__asm__("mov #304, R4"); __asm__("mov #2, @R4"); // p=0x130; // *p=2; __asm__("mov #312, R4"); __asm__("mov #5, @R4"); //p=0x138; //*p=5; __asm__("mov #314, R4"); __asm__("mov @R4, R5"); //res=0x13A; i=*res;

Mapping mmoire

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

Interrupt Vector Table: indique les adresses des fonctions de gestion des interruption Lors du Boot, le MSP va lire ladresse 0xFFFE: handler du reset.
0xFFFF

Sur le MSP430F149: x 0x0 0x1FF: priphriques x 0x200 B=0x9FF: RAM (2Ko), Donnes et pile dexcution x 0xC00 0xFFF: Boot mem. x 0x1000 0x10FF: byte info. mem. x A=0x1100 0xFFFF:

Interrupt Vector Table 0xFFE0 0xFFDF

Word/Byte

Word/Byte FLASH/ROM

11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000 11111111111111 00000000000000
RAM Word/Byte

0x200 0x1FF 0x100 0xFF 0x10

16 bit peripheral Modules

Word

6 bit peripheral Modules

Byte

Chane de dveloppement

Introduction Processeurs embarqus introduction au MSP 430 q introduction au MSP 430 q TI MSP430 : ez430-rf2500 q Documents techniques q Architecture q Priphriques q Chane de dveloppement Prsentation des SoC

Plusieurs congurations x Programmation directe du micro-contrleur x Simulation du micro-contrleur (sans les priphriques) Plusieurs plateformes de dveloppement x mspgcc (GNU) x IAR (texas Instrument) x ..

- p. 55/133

RTS6: Conception et programmation de Systme

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

Introduction aux systmes sur puces (SoC)

Quest ce quun SoC

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

s s s

"System" : une collection dlments en interaction. "On Chip" : sur un seul circuit. Mais tous les circuits intgrs ne sont pas des SOC, Un SOC implmente une fonction "complte" x Dcodeur MPEG2 vido + audio + systme + transport + graphique + interface utilisateur x Terminal GSM : tout sauf la RF

- p. 57/133

Qest ce quun SoC

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

Une seule fonction un seul programme, excut en boucle Contraintes importantes cot, consommation, taille, performance, . . . Prise en compte de lenvironnement doivent ragir en fonction de nombreux paramtres souvent associ des contraintes de temps-rel Les lments constitutifs dun SOC sont "complexes", rutilisables et de nature varie : x Fonctions analogiques (convertisseurs A/N, ltres, etc.) x Fonctions numriques cbles (dcodeur de Viterbi) x Fonctions logicielles (sur micro-contrleur, DSP, RISC) x Composants de base (mmoires)

Exemple SoC: appareil photo numrique

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

CCD

preprocesseur CCD (?) CAN

Lentille compression JPEG (?) microcontroleur (?) UART

s s

Une seule fonction : prendre des photos Contraintes : taille, poids, consommation

- p. 59/133

Autre exemple: iPaQ H5500

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

Site http://www.handhelds.org/: "encourage and facilitate the creation of open source software for use on handheld and wearable computers" Adaptation de linux pour PDA

iPaQ H5500, une fois dmont

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

- p. 61/133

Architecture carte iPaQ H5500

Introduction

BUS
Processeurs embarqus

Cotulla Intel PXA250


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

ARM Xscale

SAMSUNG S3CA400A01 (SAMCOP)

SDRAM 0

SDRAM 1

Architecture S3CA400A01 (companion chip)

Introduction Processeurs embarqus introduction au MSP 430


CINT

DMA (2channel)

Prsentation des SoC q Quest ce quun SoC q Exemple SoC: appareil photo numrique q Autre exemple: iPaQ H5500 q Architecture carte iPaQ H5500 q Architecture S3CA400A01 (companion chip) q Critres de qualit de conception dun SOC q Choix en fonction des contraintes q Mthodologie de conception q SocLib q Organisation logicielle q Exemple dune plateforme soclib
DREQ[1:0] MA[25:0] MD[31:0]

Interuption USB Bus systeme (AHB)


CS[5:2] RDY nOE nWE

DP[1:0] DN[1:0] Accel I/F 2

Interface Intel Cotulla (Xscale)

Accelerometer

Bridge Bus periphrique (APB) LED

LED[4:0]

Interne Buffer 32 KBytes

OneWire

DQ

SD Host DMA Touch Panel I/F PCMCIA Expansion


Addr[10:0] Data[31:0] control

SD Card I/F 6

FCD I/F

FCD I/F 11

PWR Man. ADC


XP.XM.YP.YM

UART

RXD[1:0] TXD[1:0]

ADC[3:0]

Reset, PLL, VCC, MCUCLK

- p. 63/133

Critres de qualit de conception dun SOC

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

Mtriques usuelles x Cot lunit: cot de fabrication dune unit sans inclure les cot non rcurrents x Cots non rcurrents: cot de conception dun systme (cot de mise en place de la premire pice). x Taille x Performance x Consommation x volutivit: possibilit de faire voluer le systme pour en avoir des versions drives.

Critres de qualit de conception dun SOC

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

Mtriques usuelles (suite) x Temps de prototypage : temps de mise en place dun premier systme fonctionnel x Temps de mise sur le march : systme sufsamment able pour tre commercialis x Maintenance : possibilit de modications du systme par rapport sa premire version x Fiabilit, sret de fonctionnement, . . .

- p. 65/133

Choix en fonction des contraintes

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

Une grande souplesse de ralisation est possible x Il ny a pas de solution unique


Performance implmentation uniquement matrielle

contrainte de performance implmenation uniquement logicielle Cot contrainte de cot

Mthodologie de conception

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

Intrts du codesign s Conception rapide de SoC : time to market x Cycle de conception de haut niveau pour rduire les temps destimations des solutions s Rduire la difcult de validation et dboguage x Rutilisation dIP x Modules recongurables s Converger vers une solution optimale en fonction des contraintes de dpart

- p. 67/133

Mthodologie de conception

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

s s

La conception ncessite davoir une modlisation complte Approche logicielle x les objets migrent vers le HW jusqu ce que les contraintes de performances soit atteintes (pour un cot minimum) Approche matrielle x les objets migrent en SW tant que les contraintes de performances restent atteintes (pour un cot minimum) Le meilleur partitionnement ncessite en gnral lexpertise dun concepteur.

SocLib

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

http://soclib.lip6.fr/ s Environnement de conception et de simulation gratuit et open source s Utilise des modles de composants crits en SystemC x processeur x interconnexion x priphriques x ... s Utilisation dune chane de compilation standard (GNU)

- p. 69/133

Organisation logicielle

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

s s

Systme dexploitation multithread : Mutek x Gestion de lAPI de thread Posix x Gestion des interruptions x Commutation de contexte rapide Logiciel cross-compil avec gcc Intgration du systme avec lapplicatif ldition des liens

Exemple dune plateforme soclib

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

MISP 3000 I Cache D RAM multi bancs RAM

Interconnexion TTY RAM


smaphores filtre audio

- p. 71/133

You might also like