RTS6: Conception et programmation de Systèmes Embarqués cours 1: Introduction aux systèmes embarqués

Antoine Fraboulet, Fabrice Jumel, Lionel Morel, Tanguy Risset [email protected] Lab CITI, INSA de Lyon

- p. 1/133

Plan du cours 1 (2H)

Introduction ■ Introduction générale aux systèmes embarqués Processeurs embarqués ■ Architecture des processeurs embarqués introduction au MSP 430 ■ Présentation rapides du MSP430 Présentation des SoC ■ Systèmes sur puces

- p. 2/133 Introduction ● Un peu d’histoire ● Aujourd’hui

Processeurs embarqués introduction au MSP 430

Présentation des SoC Un peu d’histoire

- p. 3/133

Un peu d’histoire

Introduction ■ Fin du XIXème siècle : démonstration du potentiel des ● Un peu d’histoire ● 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 ■ Années 60 et 70: premiers circuits intégrés, LSI

- p. 4/133 Un peu d’histoire

Introduction ■ 1960-2002 ● Un peu d’histoire ● 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 −1984 ■ Puissance (Joy) :MIPS = 2année −1964 ■ Densité (Moore) :Transistors par puce = 2année ■ Densité des supports magnétiques «Maximal Areal année−1971 Density» (Frank): MAD = 10 10 ■ “Stagnation” des performances pour la rapidité d’accès aux disques → RAID (multiplications des disques) et caches.

- p. 5/133

Aujourd’hui

Introduction ■ Circuits mixtes analogique/digital (télécommunications) ● Un peu d’histoire ● Aujourd’hui ■ Micro-systèmes (capteurs, actionneurs intégrés) Processeurs embarqués ■ Nano-technologies (horizon 5 à 10 ans) introduction au MSP 430 ■ Présentation des SoC Taille de gravure: 90 nm ■ Coûts de R&D de plus en plus élevés ■ La demande (ordinateurs, téléphones mobiles, etc.) stagne ■ Peu de produits vraiment nouveaux (VHS => DVD, caméscopes => numériques, téléphones fixes => mobiles) ■ Crise financière et économique des TIC

- p. 6/133 Introduction

Processeurs embarqués ● Processeurs embarqués ● Éconnomie ● ISA ● Pipeline ● Classification ● Charactéristiques Processeurs embarqués introduction au MSP 430

Présentation des SoC

- p. 7/133

Part de marché

Introduction ■ Quel est le le microprocesseur le plus vendu ? Processeurs embarqués ◆ Réponse classique: "Le Pentium: 92% du marché" ● Processeurs embarqués ● Éconnomie ■ ● ISA Faux!...... ● Pipeline ◆ En fait les Pentium ne représentent que 2% des ● Classification ● Charactéristiques microprocesseurs vendus dans le monde. introduction au MSP 430

Présentation des SoC

- p. 8/133 Contradiction ?

Introduction ■ Alors d’ou vient la position d’ (16% du marché des Processeurs embarqués semi-conducteurs) ? ● Processeurs embarqués ● Éconnomie ■ ● ISA processeurs: 2% du silicium, 30% des revenus ● Pipeline ● Classification ● Charactéristiques introduction au MSP 430

Présentation des SoC

- p. 9/133

Et au sein des processeurs

Introduction ■ 3 milliards de processeurs 8 bits vendus par an (8051, 6805 Processeurs embarqués etc.) ● Processeurs embarqués ● Éconnomie ■ ● ISA 32 bits (Pentium, Athlon, mais aussi PowerPC, 68000, MIPS, ● Pipeline ARM etc.) ● Classification ● Charactéristiques ■ La plupart (98%) sont embarqués (3 fois plus d’ARM vendus introduction au MSP 430 que de Pentium) Présentation des SoC

- p. 10/133 Variété des processeurs embarqués

Introduction

Processeurs embarqués ● Processeurs embarqués ● Éconnomie ● ISA ● Pipeline ● Classification ● Charactéristiques introduction au MSP 430

Présentation des SoC

■ Les applications sont plus variées que pour les ordinateurs ■ Beaucoup de processeurs embarqués sont des processeurs de bureau qui n’ont pas percés (MIPS, 68K, SPARC, ARM, PowerPC)

- p. 11/133

Une image en 2007

Introduction

Processeurs embarqués ● Processeurs embarqués ● Éconnomie ● ISA ● Pipeline ● Classification ● Charactéristiques introduction au MSP 430

Présentation des SoC

- p. 12/133 Architecture "Von Neuman" ou "Princeton"

Introduction ■ La mémoire contient les données et les instructions Processeurs embarqués ■ ● Processeurs embarqués L’unité centrale (CPU) charge les instructions depuis la ● Éconnomie ● ISA mémoire. ● Pipeline ■ ● Classification Un ensemble de registres aide le CPU: ● Charactéristiques ◆ Compteur d’instructions (Program counter: PC), introduction au MSP 430 ◆ Registre d’instruction (Instruction register: IR) Présentation des SoC ◆ Pointeur de pile (stack pointer: SP) ◆ Registres à usage général (Accumulateur: A) Memory Proc

- p. 13/133

Architecture Harvard

Introduction ■ Données et instructions dans des mémoires séparées Processeurs embarqués ■ ● Processeurs embarqués Autorise deux accès simultanés à la mémoire. ● Éconnomie ■ ● ISA Utilisé pour la plupart des DSP ● Pipeline ◆ ● Classification meilleure bande passante ● Charactéristiques ◆ Performances plus prédictibles introduction au MSP 430 Instruction Présentation des SoC Proc Memory

Data Memory

- p. 14/133 Le jeu d’instruction

Introduction ■ Le jeu d’instruction (Instruction Set Architecture: ISA) a une Processeurs embarqués importance capitale ● Processeurs embarqués ● Éconnomie ◆ Il détermine les instructions élémentaires exécutées par le ● ISA ● Pipeline CPU. ● Classification ◆ ● Charactéristiques C’est un équilibre entre la complexité matérielle du CPU introduction au MSP 430 et la facilité d’exprimer les actions requises ◆ Présentation des SoC On le représente de manière symbolique (ex: MSP, code sur 16 bits): mov r5,@r8 ; commentaire [R8]<-R5 lab: ADD r4,r5 ; R5<-R5+R4 ■ Deux classes de jeux d’instructions: ◆ CISC: Complex Instruction Set Computer ◆ RISC: Reduce Instruction Set Computer

- p. 15/133

CISC: Complex Instruction Set Computer

Introduction ■ Une instruction peut designer plusieurs opérations Processeurs embarqués élémentaires. ● Processeurs embarqués ● Éconnomie Ex: un load, une opération arithmétique et un store, ● ISA ● Pipeline Ex: calculer une interpolation linéaire de plusieurs ● Classification ● Charactéristiques valeurs en mémoire. introduction au MSP 430 ■ Accélération par des mécanismes matériels complexes Présentation des SoC ■ Grandes variations de taille et de temps d’exécution pour les instructions ■ Résulte en un code compact mais complexe à générer. ■ Vax, Motorola 68000, Intel /Pentium

- p. 16/133 Exemple: instructions de l’ISA du Pentium

Introduction JE EIP + displacement 44 8 Processeurs embarqués JE Condition Displacement ● Processeurs embarqués ● Éconnomie ● ISA Call ● Pipeline 8 32 ● Classification CALL Offset ● Charactéristiques introduction au MSP 430 Mov $EBX, [EDI+displacement] 61 1 8 8 Présentation des SoC MOV dw r−m 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. 17/133

RISC: Reduced Instruction Set Computer

Introduction ■ Petites instructions simples, toutes de même taille, ayant Processeurs embarqués toutes (presque) le même temps d’exécution ● Processeurs embarqués ● Éconnomie ■ ● ISA Pas d’instruction complexe ● Pipeline ■ ● Classification Accélération en pipelinant l’exécution (entre 3 et 7 étages de ● Charactéristiques pipeline pour une instruction) ⇒ augmentation de la vitesse introduction au MSP 430 d’horloge Présentation des SoC ■ Code plus simple à générer, mais moins compact ■ Tous les microprocesseurs modernes utilisent ce paradigme: SPARC, MIPS, ARM, PowerPC, etc.

- p. 18/133 Exemple: instructions de l’ISA du MSP

Introduction 1 operand instruction 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Processeurs embarqués ● Processeurs embarqués 00 0 10 0 opcode B/W Ad Dest reg. ● Éconnomie ● ISA ● Pipeline ● Classification relative Jumps ● Charactéristiques 1514 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)

Présentation des SoC

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

opcode Dest reg. Ad B/W As Dest reg. Exemples: ■ PUSB.B R4 ■ JNE -56 ■ ADD.W R4,R4

- p. 19/133

Le CPU

Introduction ■ L’unité de contrôle configure le chemin de donnée suivant Processeurs embarqués l’instruction à exécuter. ● Processeurs embarqués ● Éconnomie ■ ● ISA L’exécution d’une instruction est décomposée en plusieurs ● Pipeline phases d’un cycle. ● Classification ● Charactéristiques Processor Datapath introduction au MSP 430

ALU Présentation des SoC Control unit control/Status Register File

PC IR

Memory

- p. 20/133 Le pipeline RISC: exemple du MIPS

Introduction ■ Le pipeline dépend de l’architecture, pour le MIPS: Processeurs embarqués ◆ Instruction Fetch (IF, Fetch): ● Processeurs embarqués ● Éconnomie charge l’instruction dans l’IR ● ISA ◆ ● Pipeline Instruction Decode (ID, Decode): ● Classification ● Charactéristiques décode l’instruction et met en place le contrôle du chemin introduction au MSP 430 de donnée ◆ Présentation des SoC Execute (Ex): exécute le calcul dans le chemin de donnée. ◆ Memory access (Mem): accède la mémoire ◆ Write Back (WB): écrit dans le banc de registre

- p. 21/133

Le pipeline RISC: exemple du MIPS

Introduction ■ Physiquement, l’architecture du processeur est organisée en Processeurs embarqués calculs combinatoires pour chaque étape de pipeline, ● Processeurs embarqués ● Éconnomie séparés par des registres. ● ISA ● Pipeline ● Classification ● Charactéristiques introduction au MSP 430

Présentation des SoC

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

Introduction ■ Lorsque l’instruction suivante ne peut pas être exécutée tout Processeurs embarqués de suite, cela crée une "bulle". ● Processeurs embarqués ● Éconnomie ■ ● ISA Par exemple une addition utilisant un registre qui vient d’être ● Pipeline chargé doit être retardé d’un cycle. ● Classification ● Charactéristiques introduction au MSP 430

Présentation des SoC

- p. 23/133

Bilan architecture non pipelinée

Introduction ■ Exécution non pipelinée: Processeurs embarqués ◆ 5 cycles pour exécuter une instruction ● Processeurs embarqués ● Éconnomie ◆ ⇒ 15 cycles pour 3 instructions. ● ISA ● Pipeline ■ Exécution pipelinée: ● Classification ● Charactéristiques ◆ 5 cycles pour exécuter une instruction introduction au MSP 430 ◆ 8 cycles pour 3 instructions. Présentation des SoC ◆ ⇒ sans branchement, une instruction par cycle ◆ Un branchement (conditionnel ou pas) interrompt le pipeline car il faut attendre de décoder l’adresse de branchement pour charger l’instruction suivante ⇒ quelques cycles d’inactivité (pipeline stall) ◆ Lors d’un branchement, certain ISA autorisent l’utilisation de ces delai slots: une ou deux instructions après le branchement sont exécutées, que le branchement soit pris ou pas (comme si elles étaint écrites avant le branchement).

- 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

Parallélisme au sein du processeur

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

Introduction ■ Plusieurs technologies pour les mémoires: Processeurs embarqués ◆ Mémoires statiques (SRAM): petites, rapides, ● Processeurs embarqués ● Éconnomie consommatrices, peu denses (chères). ● ISA ◆ ● Pipeline Mémoires dynamiques (DRAM): grandes, lentes, très ● Classification ● Charactéristiques denses, transactions chères introduction au MSP 430 ■ De plus en plus de place On-Chip pour la mémoire (dans ce Présentation des SoC cas elles sont moins efficaces que les chips mémoire). ■ Ne pas oublier que le code aussi réside en mémoire ■ Tous les systèmes ont des caches pour cacher les temps de latence lors de l’accès à la mémoire, en général plusieurs niveaux de caches: hiérarchie mémoire.

- p. 27/133

Principe du Cache

Introduction 0 0 1 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  3  11 Présentation des SoC Processeur 4 12 mémoire     5 13 adressable 6 14 7 15 16 17 18 Cache de données (SRAM) 19 20 21 22 23 N−1

Mémoire principale (DRAM)

- p. 28/133 Hiérarchie Mémoire

Introduction

Processeurs embarqués Processeur Processeur ● Processeurs embarqués /DSP /DSP ● Éconnomie ASIC / ASIP ● ISA D: cache de données DIDI ● Pipeline I: cache d’instructions ● Classification ● Charactéristiques introduction au MSP 430

Mémoire cache Cache Cache Présentation des SoC de niveau 4 de niveau 3 de niveau 2

SOC

Bus système externe

Bancs de mémoire DRAM

contrôleur mémoire

- p. 29/133

Différents types de processeurs embarqués

Introduction ■ Beaucoup de Processeurs à usage général ayant une ou Processeurs embarqués deux générations ● Processeurs embarqués ● Éconnomie ■ ● ISA 4, 8, 16 ou 32 bits (taille des mots) ● Pipeline ■ ● Classification RISC et CISC ● Charactéristiques ■ DSP: Digital Signal Processor introduction au MSP 430 ■ Présentation des SoC ASIP: Application Specific Integrated Processor

- p. 30/133 68000, x86

Introduction ■ Famille des Motorola 68000 Processeurs embarqués ◆ Un des plus vieux processeur embarqué (ex Sun, Mac) ● Processeurs embarqués ● Éconnomie ◆ Architecture CISC ● ISA ◆ ● Pipeline ISA propre et les meilleurs outils de développement, ● Classification ● Charactéristiques beaucoup d’utilisateurs introduction au MSP 430 ■ Famille des x86 Présentation des SoC ◆ Démarre au 8086 (Intel) puis 80286, 386, 486, Pentium, et Athlon (AMD) ◆ En processeurs embarqués: 5 fois moins que MIPS, ARM ou 68000. ◆ architecture CISC, compatible avec le code du 8086 ◆ compatibilité mais mauvaises performances

- p. 31/133

SPARC, 29000 et i960

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

Introduction ■ MIPS ( without interlocked pipeline stages) Processeurs embarqués ◆ Originellement pour les stations puissantes (SGI) ● Processeurs embarqués ● Éconnomie ◆ Puis, marché des consoles de jeux (Nitendo N64) ● ISA ◆ ● Pipeline Famille très étendue: du plus gros (MIPS 20Kc, 64 bit) au ● Classification ● Charactéristiques plus petit (SmartMIPS, 32 bit pour carte à puce) introduction au MSP 430 ■ ARM (Advanced RISC Machines, ex Acorn) Présentation des SoC ◆ Un des 32 bits embarqués les plus populaires : téléphones 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é qu’en ordinateur

- p. 33/133

Et les autres....

Introduction ■ Plus de 100 processeurs embarqués 32 bits sur le marché Processeurs embarqués ■ ● Processeurs embarqués 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 ● Charactéristiques exécuter du code CISC (Intel) introduction au MSP 430 ◆ Principe: recompilation du code à l’exécution (runtime Présentation des SoC compilation) ◆ Gain obtenus par un mécanisme de cache, d’optimisation poussée des portion de code répétées (boucle), et grâce au parallélisme de niveau instruction ◆ Réduction drastique de la consommation pour des performances équivalentes

- p. 34/133 Micro-contrôleurs

Introduction ■ Utilisé pour le contrôle embarqué Processeurs embarqués ◆ Censeur, contrôleurs simples ● Processeurs embarqués ● Éconnomie ◆ Manipule des événements, quelques données mais en ● ISA ● Pipeline faible quantité ● Classification ◆ ● Charactéristiques Exemple: camescope, disque dur, appareil photo introduction au MSP 430 numérique, machine à laver, four à micro-onde

Présentation des SoC ■ Quelques caractéristiques fréquentes ◆ Périphériques présents sur le circuit (timer, convertisseur analogique numérique, interface de communication), accessible directement grâce aux registres ◆ Programme et données intégrées au circuit ◆ Accès direct du programmeur à de nombreuses broches du circuit ◆ Instructions spécialisées pour les manipulation de bits. ■ Le MSP430 appartient à cette catégorie

- p. 35/133

DSP: Digital Signal Processing

Introduction ■ Utilisés pour les applications de traitement du signal Processeurs embarqués ◆ Grande quantités de données numérisées, souvent ● Processeurs embarqués ● Éconnomie organisées en flux ● ISA ◆ ● Pipeline Filtre numérique sur téléphone, TV numérique, ● Classification ● Charactéristiques synthétiseur de sons introduction au MSP 430 ■ Relativement proche des GPP, mais quelques Présentation des SoC caractéristiques en plus: ◆ Bande passante élevée (deux bus) ◆ Instructions dédiées pour les calculs de traitement du signal: multiplication accumulation, ◆ Arithmétique spécifique (mode d’arrondi) ◆ Registres dédiés pour certains opérateurs. ◆ Constructeurs: Texas Instrument, puis Analog Devices, Motorola

- p. 36/133 Quelques mécanismes matériels utiles

Introduction ■ Densité de code: Processeurs embarqués ◆ La taille du code est importante pour les codes ● Processeurs embarqués ● Éconnomie embarqués car elle influe sur la taille de la mémoire ● ISA ● Pipeline utilisée ● Classification ◆ ● Charactéristiques Un programme C compilé pour SPARC prendra deux fois introduction au MSP 430 plus de place en mémoire que le même programme

Présentation des SoC compilé pour le 68030. ◆ En général 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 utilisées avec précaution. ◆ Le code est quelquefois stocké compressé et decompressé au vol par du matériel spécifique.

- p. 37/133

Quelques mécanismes matériels utiles

Introduction ■ Manipulations au niveau bit: Processeurs embarqués ◆ Utilisé pour les algorithmes de cryptage mais surtout pour ● Processeurs embarqués ● Éconnomie les pilotes de périphériques. ● ISA ◆ ● Pipeline La plupart des périphériques indiquent leur état au ● Classification ● Charactéristiques processeur en mettant un certain bit à 1 dans un certain introduction au MSP 430 registre. ◆ Présentation 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 mémoire

- p. 38/133 Quelques mécanismes matériels utiles

Introduction ■ Données non-alignés Processeurs embarqués ◆ De nombreux traitements manipulent des données de ● Processeurs embarqués ● Éconnomie taille non-multiple de 32 (paquets TCP/IP, video streams, ● ISA ● Pipeline clés d’encryption, 20 bits, 56 bits) ● Classification ◆ ● Charactéristiques Les processeurs RISC savent uniquement transférer des introduction au MSP 430 mots (32 bits) alignés (calés sur une adresse multiple de

Présentation des SoC 32 bits). ◆ La plupart des architectures CISC (68k, x86) peuvent faire des chargements non alignés

- p. 39/133

Quelques mécanismes matériels utiles

Introduction ■ Gestion spécifique du cache Processeurs embarqués ◆ Les caches améliorent les performances mais introduisent ● Processeurs embarqués ● Éconnomie du non-déterminisme. ● ISA ◆ ● Pipeline Les contraintes spécifiques des systèmes embarqués ont ● Classification ● Charactéristiques entraîné des mécanismes particuliers pour les cache ◆ introduction au MSP 430 On peut vouloir bloquer le cache (cache locking): forcer

Présentation des SoC certaines données ou instruction à se charger et rester dans le cache (on parle aussi de mémoire scratch-pad memory ou de software controlled cache). ◆ La plupart des caches utilisent une politique de Write-Back: une donnée modifiée dans le cache n’est pas forcément immédiatement recopiée en memoire. Dans le cas de périphériques mappés en mémoire, il est indispensable de recopier immédiatement (politique write-through)

- p. 40/133 Quelques mots sur la consommation

Introduction ■ Trois composantes de la consommation d’une porte logique Processeurs embarqués (inverseur) ● Processeurs embarqués 2 ● ◆ Éconnomie Consommation dynamique : Pdyn = C.V ● ISA CC ● Pipeline (C capacité de la porte) ● Classification ◆ ● Charactéristiques Consommation statique : Pstatic = VCC .Ileak introduction au MSP 430 (VCC : tension d’alimentation, Ileak intensité des

Présentation des SoC courants de fuite) ◆ 3 Consommation de court-circuit Pcs = K.τ.(VCC − 2VTh) . (K:constante technologique ; VTh:tension seuil ; τ:temps de montée descente du signal) ■ Aujourd’hui (2004) Pdyn ≫ Pstatic ≫ Pcs ■ Demain (2007) Pdyn ≈ Pstatic ≫ Pcs

- p. 41/133

Consommation d’un circuit CMOS

Introduction ■ Généralisation naïve en prenant en compte une activité Processeurs embarqués moyenne α (nombre moyen de portes commutant) ● Processeurs embarqués 2 ● ◆ Éconnomie Consommation dynamique : Pdyn = C.V .α.f ● ISA CC ● Pipeline (f: fréquence du circuit) ● Classification ◆ ● Charactéristiques Consommation statique : Pstatic = VCC .Ileak.N.kdesign introduction au MSP 430 (N: nombre de portes, kdesign constante dépendant

Présentation des SoC du design) ■ Cette modélisation est très imprécise pour un circuit dont le comportement n’est pas stationnaire (ex: processeur)

- p. 42/133 Réduction statique de la consommation

Introduction ■ Le facteur le plus important est la tension d’alimentation Processeurs embarqués (V ) d’abord 3.3 V puis 2.5 V. Les versions récentes de ● Processeurs embarqués CC ● Éconnomie Xscale (strong ARM, Intel) et les puces smartCard ● ISA ● Pipeline fonctionnent a 0.65 V ● Classification ● Charactéristiques ■ On peut différencier les tensions en fonction du bloc du chip: introduction au MSP 430 1.5 V pour le processeur, 3.3 pour l’interface du bus et les Présentation des SoC pattes d’entrée/sortie (ex: Strong ARM de Digital) ■ Plus la technologie est intégrée, moins elle consomme (capacité diminuée). ■ Fréquence d’horloge peu élevée compensée par le parallélisme ■ Complexité réduite des différents composants (moins de registres, architectures RISC)

- p. 43/133

Réduction dynamique de la consommation

Introduction ■ Gestion dynamique de la fréquence d’horloge Processeurs embarqués ■ ● Processeurs embarqués Exemple: processeur Crusoe (Transmetta) ● Éconnomie ● ISA Suppression de l’horloge sur un bloc (Dynamic clock ● Pipeline gating) ● Classification ● Charactéristiques ■ Gestion dynamique de l’alimentation (pas encore réalisé) introduction au MSP 430

Présentation des SoC

- p. 44/133 Low Power Mode pour le MSP430

Introduction ■ Différent mode pour réduire la consommation Processeurs embarqués ◆ LPM0: le CPU est arrété ● Processeurs embarqués ● Éconnomie ◆ LPM1, LPM2: l’horloge rapide (MCLK) est aussi arrétée ● ISA ◆ ● Pipeline LPM3 le générateur d’horloge est arrété ● Classification ◆ ● Charactéristiques LPM4 : l’oscillateur du crystal est arrété introduction au MSP 430 ■ Le temps de reprise est d’autant plus long que la veille est Présentation des SoC profonde.

- p. 45/133

Introduction

Processeurs embarqués introduction au MSP 430 ● introduction au MSP 430 ● TI MSP430 : ez430-rf2500 ● Documents techniques ● Architecture introduction au MSP 430 ● Périphériques ● Chaîne de développement

Présentation des SoC

- p. 46/133 TI MSP430 : ez430-rf2500

Introduction

Processeurs embarqués introduction au MSP 430 ● introduction au MSP 430 ● TI MSP430 : ez430-rf2500 ● Documents techniques ● Architecture ● Périphériques ● Chaîne de développement

Présentation des SoC

- p. 47/133

Documents techniques

Introduction ■ Documents du cours http:// Processeurs embarqués ■ Manuel de programmation du MSP introduction au MSP 430 ● introduction au MSP 430 (MSP430x2xx_Family_User's_Guide_(Rev._D)_slau144d.pdf) ● TI MSP430 : ez430-rf2500 ■ ● Documents techniques Manuel du MSP430F2274 (msp430f2274.pdf) ● Architecture ● Périphériques ■ Feuilles de schématique ● Chaîne de développement ■ Présentation des SoC User’s 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 d’application, ... ■ The mspgcc toolchain: http://mspgcc.sourceforge.net/ ■ Notamment la doc mspgcc (download puis documentation)

- p. 48/133 Architecture du MSP

Introduction

Processeurs embarqués Flash RAM Peripheral Peripheral Clock ROM introduction au MSP 430 Bus 8 bits 8 bits ● introduction au MSP 430 Ctrl ● TI MSP430 : ez430-rf2500 ● Documents techniques ● Architecture 16 Adress 8 ● Périphériques RISC−CPU ● Chaîne de développement 16 bit Présentation des SoC JTAG 16 Data Bus 8 Conv

Watchdog Peripheral Peripheral Peripheral Timer 16 bits 8 bits 8 bits

- p. 49/133

CPU RISC 16 bits

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 ■ 64 Ko de mémoire adressable R3/CG2 Constant Gen ● Documents techniques ● Architecture ■ R4 General Purpose ● Périphériques Périphériques mappés en R5 General Purpose ● Chaîne de développement mémoire Présentation des SoC ■ ..... 16 registres 16 bits (r0-r16) R14 General Purpose ◆ R15 General Purpose r0: PC (Program counter) MDB Memory Data Bus MAB Memory Address Bus ◆ r1: SP (Stack pointeur)

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

R3: Status Register 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OS− CPU V SCG1 SCG1 GIE NZ Reserved COFF OFF GC

- 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 ■ contrôleur de bus ● Architecture ● Périphériques ■ ● Chaîne de développement convertisseur analogique numérique, comparateur ■ Présentation des SoC ports séries

- p. 51/133

Périphérique mappé en mémoire

Introduction ■ l’écriture à une certaine adresse est interprétée comme une Processeurs embarqués communication avec le périphérique. introduction au MSP 430 ■ ● introduction au MSP 430 Exemple : le multiplieur matériel ● TI MSP430 : ez430-rf2500 ◆ ● Documents techniques Accessible par des registres mappés entre les adresses ● Architecture 0x0130 et 0x013F ● Périphériques ● Chaîne de développement ◆ Écriture à l’adresse 0x130, positionne le premier Présentation des SoC opérande (unsigned mult) ◆ Écriture à l’adresse 0x138, positionne le deuxième opérande et lance le calcul ◆ Le résultat est à l’adresse 0x013A, sur 32 bits ■ Les autres périphériques sont aussi accessibles par des registres mappé en mémoire: les SFR (Special Function Registers), en C: ◆ écriture vers le périphérique: SFR = valeur ◆ lecture des registres du périphérique: variable = SFR

- 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 int main(void) { ● Documents techniques ● Architecture int i; __asm__("mov #304, R4"); ● Périphériques ● 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

Introduction ■ Interrupt Vector Table: indique les adresses des fonctions de Processeurs embarqués gestion des interruption introduction au MSP 430 ■ ● introduction au MSP 430 Lors du Boot, le MSP va lire l’adresse 0xFFFE: handler du ● TI MSP430 : ez430-rf2500 ● Documents techniques reset. 0xFFFF ● Architecture ● Word/Byte Périphériques ■ Interrupt Vector Table ● Chaîne de développement Sur le MSP430F149: 0xFFE0 ◆ 0xFFDF Présentation des SoC 0x0 0x1FF à : Word/Byte périphériques FLASH/ROM ◆ 0x200 0x9FF à B= : RAM A    (2Ko), Données et pile    d’exécution  B  ◆ 0xC00 à 0xFFF: Boot  RAM Word/Byte mem. 0x200 0x1FF ◆ 16 bit peripheral Modules 0x1000 à 0x10FF: byte 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. 54/133 Chaîne de développement

Introduction ■ Plusieurs configurations Processeurs embarqués ◆ Programmation directe du micro-contrôleur introduction au MSP 430 ◆ Simulation du micro-contrôleur (sans les périphériques) ● introduction au MSP 430 ● TI MSP430 : ez430-rf2500 ■ ● Documents techniques Plusieurs plateformes de développement ● Architecture ◆ mspgcc (GNU) ● Périphériques ● Chaîne de développement ◆ IAR (texas Instrument) Présentation des SoC ◆ ..

- p. 55/133

RTS6: Conception et programmation de Systèmes

Introduction

Processeurs embarqués introduction au MSP 430

Présentation des SoC ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo numérique ● Autre exemple: iPaQ H5500 Introduction aux systèmes sur puces (SoC) ● Architecture carte iPaQ H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 56/133 Qu’est ce qu’un SoC

Introduction ■ "System" : une collection d’éléments en interaction. Processeurs embarqués ■ "On Chip" : sur un seul circuit. introduction au MSP 430 ■ Mais tous les circuits intégrés ne sont pas des SOC, Un Présentation des SoC ● Qu’est ce qu’un SoC SOC implémente une fonction "complète" ● Exemple SoC: appareil photo ◆ numérique Décodeur MPEG2 vidéo + audio + système + transport + ● Autre exemple: iPaQ H5500 ● Architecture carte iPaQ graphique + interface utilisateur H5500 ◆ ● Architecture S3CA400A01 Terminal GSM : tout sauf la RF (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 57/133

Q’est ce qu’un SoC

Introduction ■ Une seule fonction Processeurs embarqués un seul programme, exécuté en boucle introduction au MSP 430 ■ Contraintes importantes Présentation des SoC ● Qu’est ce qu’un SoC coût, consommation, taille, performance, . . . ● Exemple SoC: appareil photo ■ numérique Prise en compte de l’environnement ● Autre exemple: iPaQ H5500 ● Architecture carte iPaQ doivent réagir en fonction de nombreux paramètres H5500 ● Architecture S3CA400A01 souvent associé à des contraintes de temps-réel (companion chip) ● Critères de qualité de ■ conception d’un SOC Les éléments constitutifs d’un SOC sont "complexes", ● Choix en fonction des contraintes réutilisables et de nature variée : ● Méthodologie de conception ◆ ● SocLib Fonctions analogiques (convertisseurs A/N, filtres, etc.) ● Organisation logicielle ◆ Fonctions numériques câblées (décodeur de Viterbi) ● Exemple d’une plateforme soclib ◆ Fonctions logicielles (sur micro-contrôleur, DSP, RISC) ◆ Composants de base (mémoires)

- p. 58/133 Exemple SoC: appareil photo numérique

Introduction CCD

Processeurs embarqués preprocesseur CCD (?) introduction au MSP 430 CAN

Présentation des SoC ● Qu’est ce qu’un SoC Lentille ● Exemple SoC: appareil photo compression numérique microcontroleur (?) ● Autre exemple: iPaQ H5500 JPEG (?) UART ● Architecture carte iPaQ H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ■ Une seule fonction : prendre des photos ● Choix en fonction des contraintes ■ ● Méthodologie de conception Contraintes : taille, poids, consommation ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 59/133

Autre exemple: iPaQ H5500

Introduction ■ Site http://www.handhelds.org/: "encourage and Processeurs embarqués facilitate the creation of open source software for use on introduction au MSP 430 handheld and wearable computers" Présentation des SoC ■ ● Qu’est ce qu’un SoC Adaptation de linux pour PDA ● Exemple SoC: appareil photo numérique ● Autre exemple: iPaQ H5500 ● Architecture carte iPaQ H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 60/133 iPaQ H5500, une fois démonté

Introduction

Processeurs embarqués introduction au MSP 430

Présentation des SoC ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo numérique ● Autre exemple: iPaQ H5500 ● Architecture carte iPaQ H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 61/133

Architecture carte iPaQ H5500

Introduction BUS Processeurs embarqués Cotulla Intel PXA250 introduction au MSP 430

Présentation des SoC ● Qu’est ce qu’un SoC ARM Xscale ● Exemple SoC: appareil photo numérique ● Autre exemple: iPaQ H5500 SAMSUNG ● Architecture carte iPaQ S3CA400A01 H5500 ● Architecture S3CA400A01 (SAMCOP) (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme SDRAM 0 soclib

SDRAM 1

- p. 62/133 Architecture S3CA400A01 (companion chip)

Introduction

Processeurs embarqués DMA (2channel) introduction au MSP 430 CINT Interuption Présentation des SoC DP[1:0] ● Qu’est ce qu’un SoC DN[1:0] ● USB Exemple SoC: appareil photo Accel I/F numérique Interface Accelerometer CS[5:2] 2 ● Autre exemple: iPaQ H5500 RDY Intel ● Architecture carte iPaQ Cotulla nOE H5500 (Xscale) Bridge ● nWE LED[4:0] Architecture S3CA400A01 LED (companion chip) ● Critères de qualité de Bus systeme (AHB) conception d’un SOC Interne Buffer ● Choix en fonction des DQ 32 KBytes OneWire contraintes ● Méthodologie de conception ● SocLib

Bus periphérique (APB) SD Card I/F ● Organisation logicielle SD Host DREQ[1:0] 6 ● Exemple d’une 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] control Data[31:0] Addr[10:0]

ADC[3:0] Reset, PLL, VCC, MCU−CLK XP.XM.YP.YM - p. 63/133

Critères de qualité de conception d’un SOC

Introduction ■ Métriques usuelles Processeurs embarqués ◆ Coût à l’unité: coût de fabrication d’une unité sans inclure introduction au MSP 430 les coût non récurrents Présentation des SoC ◆ Coûts non récurrents: coût de conception d’un système ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo (coût de mise en place de la première pièce). numérique ● Autre exemple: iPaQ H5500 ◆ Taille ● Architecture carte iPaQ ◆ H5500 Performance ● Architecture S3CA400A01 (companion chip) ◆ Consommation ● Critères de qualité de conception d’un SOC ◆ Évolutivité: possibilité de faire évoluer le système pour en ● Choix en fonction des contraintes avoir des versions dérivées. ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 64/133 Critères de qualité de conception d’un SOC

Introduction ■ Métriques usuelles (suite) Processeurs embarqués ◆ Temps de prototypage : temps de mise en place d’un introduction au MSP 430 premier système fonctionnel Présentation des SoC ◆ Temps de mise sur le marché : système suffisamment ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo fiable pour être commercialisé numérique ● Autre exemple: iPaQ H5500 ◆ Maintenance : possibilité de modifications du système par ● Architecture carte iPaQ H5500 rapport à sa première version ● Architecture S3CA400A01 (companion chip) ◆ Fiabilité, sûreté de fonctionnement, ... ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 65/133

Choix en fonction des contraintes

Introduction ■ Une grande souplesse de réalisation est possible Processeurs embarqués ◆ Il n’y a pas de solution unique introduction au MSP 430 Performance implémentation Présentation des SoC uniquement matérielle ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo numérique ● Autre exemple: iPaQ H5500 ● Architecture carte iPaQ contrainte H5500 ● Architecture S3CA400A01 de performance (companion chip) ● Critères de qualité de conception d’un SOC implémenation ● Choix en fonction des uniquement logicielle contraintes ● Méthodologie de conception Coût ● SocLib ● Organisation logicielle contrainte ● Exemple d’une plateforme de coût soclib

- 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 temps d’estimations des solutions ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo ■ numérique Réduire la difficulté de validation et déboguage ● Autre exemple: iPaQ H5500 ◆ ● Architecture carte iPaQ Réutilisation d’IP 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

Introduction ■ La conception nécessite d’avoir une modélisation complète Processeurs embarqués ■ Approche logicielle introduction au MSP 430 ◆ les objets migrent vers le HW jusqu’à ce que les Présentation des SoC ● Qu’est ce qu’un SoC contraintes de performances soit atteintes (pour un coût ● Exemple SoC: appareil photo numérique minimum) ● Autre exemple: iPaQ H5500 ■ ● Architecture carte iPaQ Approche matérielle H5500 ◆ ● Architecture S3CA400A01 les objets migrent en SW tant que les contraintes de (companion chip) ● Critères de qualité de performances restent atteintes (pour un coût minimum) conception d’un SOC ● Choix en fonction des ■ contraintes Le meilleur partitionnement nécessite en général l’expertise ● Méthodologie de conception ● SocLib d’un concepteur. ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 68/133 SocLib

Introduction

Processeurs embarqués introduction au MSP 430

Présentation des SoC http://soclib.lip6.fr/ ● Qu’est ce qu’un SoC ■ ● Exemple SoC: appareil photo Environnement de conception et de simulation gratuit et numérique ● Autre exemple: iPaQ H5500 open source ● Architecture carte iPaQ H5500 ■ ● Architecture S3CA400A01 Utilise des modèles de composants écrits en SystemC (companion chip) ◆ ● Critères de qualité de processeur conception d’un SOC ◆ ● Choix en fonction des interconnexion contraintes ◆ ● Méthodologie de conception périphériques ● SocLib ◆ ● Organisation logicielle ... ● Exemple d’une plateforme ■ soclib Utilisation d’une chaîne de compilation standard (GNU)

- p. 69/133

Organisation logicielle

Introduction ■ Système d’exploitation multithread : Mutek Processeurs embarqués ◆ Gestion de l’API de thread Posix introduction au MSP 430 ◆ Gestion des interruptions Présentation des SoC ◆ Commutation de contexte rapide ● Qu’est ce qu’un SoC ● Exemple SoC: appareil photo ■ numérique Logiciel cross-compilé avec gcc ● Autre exemple: iPaQ H5500 ■ ● Architecture carte iPaQ Intégration du système avec l’applicatif à l’édition des liens H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib

- p. 70/133 Exemple d’une plateforme soclib

Introduction

Processeurs embarqués MISP 3000 introduction au MSP 430

Présentation des SoC RAM multi bancs ● Qu’est ce qu’un SoC I D ● Exemple SoC: appareil photo RAM numérique ● Autre exemple: iPaQ H5500 Cache ● Architecture carte iPaQ H5500 ● Architecture S3CA400A01 (companion chip) ● Critères de qualité de conception d’un SOC ● Choix en fonction des contraintes Interconnexion ● Méthodologie de conception ● SocLib ● Organisation logicielle ● Exemple d’une plateforme soclib TTY RAM sémaphores filtre audio

- p. 71/133