Architecture de traitement pour les systèmes embarqués
Transcription
Architecture de traitement pour les systèmes embarqués
Architecture de traitement pour les systèmes embarqués UE1 M2-ESA Ensea - UCP Organisation du module I. (A) Intro + Principaux concepts d’architecture (3h) III. (B) Principes de fonctionnement des processeurs (3h) IV. Étude quantitative du jeu d’instruction (3h) V. Mesure de performances et amélioration (3h) VI. Spécificités des DSP + classification (4h) VII. Étude des architectures SoC pour l’embarqué I. Architecture SoC DiMITRI pour la radio logicielle (2h) Interventions Intervenant Durée Date I.A Concepts B.Miramond 3h 19 octobre I.B Principe F. Verdier 3h 24 octobre II. ISA B. Miramond 3h 10 Nov. III. Performances F. Verdier 3h 14 Nov. IV. DSP B. Miramond 4h 16 Nov. V. SoC J. Quévremont 3h Thales 23 Nov. Objectifs de la formation 1. Assurer les connaissances de base sur l’architecture et le fonctionnement des unités de traitement de l’embarqué 1. Processeurs RISC 2. Processeurs DSP 2. Savoir différencier les différents types d’architecture 1. Impact du jeu d’instruction sur l’architecture 2. Comparaison de performances 3. Savoir faire les choix de plateforme matérielle en fonction des besoins de l’application embarquée Bibliographie • Architecture de l’ordinateur, A. Tanenbaum, 2005 – Cerclades + Ensea (3) • Architecture des ordinateurs : une approche quantitative, J. Hennessy & A. Patterson, 2003. – St Martin + Cerclades + Ensea (anglais) • Traitement numérique du signal temps réel, M. Corneloup, Polycopié de cours, 2001. – Ensea • Embedded systems architecture, Noergaard, 2005 – Ensea • ARM system-on-chip architecture, S. Furber, 2000 – Ensea Plan de la première partie I. II. Historique des architectures de traitement Spécificités des architectures embarqués I. Historiques de architectures de traitement a. L’ordinateur • Le terme 'ordinateur' est d’origine biblique – « celui qui met en ordre » (divin) – ordonnateur – « entrer dans les ordres », « ordination » • Il a été proposé par le professeur de philologie Jacques Perret dans une lettre datée du 16 avril 1955 en réponse à une demande d’IBM France 1. Génération zéro: les calculateurs mécaniques (1642-1945) a. Les premiers calculateurs • Blaise Pascal (1623-1662) – 1642 Première calculatrice mécanique (à 19 ans) • Addition, soustraction en base 10 • Leibnitz (1646-1716) – 1670 Ajout de l’opération de multiplication, et division La pascaline • Charles Babbage (1792-1871) – « Machine à différence » : • un seul algorithme (méthode des différences finies) • pour les tables numériques pour la navigation en mer • Résultats gravés sur un plateau de cuivre – Machine analytique (1840) • Lecture sur des cartes perforées • Différents algorithmes exécutables !!! • 4 parties – Le magasin(la mémoire) = 1000 mots de 50 chiffres = 1,25Mo – Le moulin (l’unité de calcul) – L’entrée (lecteur de cartes perforées) – La sortie (perforation ou impression) – 1843 Premier programme informatique • Ada Lovelace (langage d’assemblage) Charles Babbage Première machine analytique Ada Lovelace (Byron) • `Is thy face like thy mother's, my fair child! Ada! sole daughter of my house and of my heart? When last I saw thy young blue eyes they smiled' And then we parted,-not as now we part, but with a hope.' • From Childe Harold's Pilgrimage,Byron, (1816), Canto III. 2. La première génération les tubes à vides (1945-1955) a. Innovations • Technologiques – 1904 John Flemming invente le tube à vide : • Interrupteur électronique (pannes fréquentes, encombrant) • Réalisations : Alan Turing – 1943 Premier calculateur numérique – Resté sous silence pendant 30ans b. Machine de Harvard • « the beginning of the era of the modern computer» • Ordinateur à relais • 1944 Howard Aiken Addition – Mark 1 à Harvard Multiplicatio – Entièrement automatique n Division – Electro-mécanique Logarithme – 16m x 2,5m – 4500 Kg – Démarré par un moteur 5 chevaux trigo – – – – Utilise un arbre de synchronisation 72 mots de 23 chiffres Temps de cycle : 6 secondes Soit 0.16 Hz 1s 6s 15,3s 1min 1min Mark I Principe de l’architecture de Harvard MI MD : Mémoire d’instruction : Mémoire de données c. ENIAC - Premier ordinateur électronique • 1946 : Mauchly et Eckert • Projet de l’US Army • Capable d’être reprogrammée par branchements • Vendue à 500 000$ à 1 unité • 1 cycle = 200ms soit 5 cycles/sec • Une multiplication de 2 opérandes à 10 chiffres prenait 14 cycles, soit 2800 ms • Il est divisé en 30 unités autonomes (dont 20 accumulateurs / additionneurs 10 digits, 1 multiplicateur et 1 "Master Programmer" capable de gérer les boucles). • ENIAC (1946) – 30m de long – 2.5m de haut – 18 000 tubes à vide – 1500 relais – 30 Tonnes – 140 KW – 20 registres de 10 chiffres décimaux – 6000 commutateurs pour la programmation – Participant : Von Neumann Les limites • il doit être recâblé pour exécuter un nouveau programme. • De plus l'ENIAC utilise des registres décimaux et non binaires. d. La machine de Von Neumann • Von Neumann (1903,1957) – Il se greffe au projet ENIAC après 1946 • Idées – On peut représenter le programme sous une forme numérique et le ranger en mémoire comme les données (plus de programmation des commutateurs) – Introduction de l’arithmétique binaire! – Ancêtre à la base des architectures actuelles • Résultat : l’IAS (1952) – Premier ordinateur à programme enregistré – Mémoire séparée du CPU Schéma de la machine de Von Neumann 5 parties • La mémoire • L’UAL • L’unité de commande • Les entrées • Les sorties Mémoire (4096 mots de 40 bits) Unité arithmétique et logique Unité de commande Accumulateur Entrées Sorties L’apport de Von Neumann • Le premier ordinateur à programme enregistré • Le programme est traduit de manière numérique et écrit en mémoire. • Pour cela, création d’un jeu d’instructions machine, et transformation des calculs en séries d’instructions • La machine devient plus flexible parce que programmable Von Neumann’s Bottleneck • La séparation entre le CPU et la mémoire a amené à la notion de Von Neumann’s Bottleneck • (goulot d’étranglement qu’est la communication entre processeur et mémoire). • ‘’ Surely there must be a less primitive way of making big changes in the store than by pushing vast numbers of words back and forth through the von Neumann bottleneck. Not only is this tube a literal bottleneck for the data traffic of a problem, but, more importantly, it is an intellectual bottleneck that has kept us tied to wordat-a-time thinking instead of encouraging us to think in terms of the larger conceptual units of the task at hand. Thus programming is basically planning and detailing the enormous traffic of words through the von Neumann bottleneck, and much of that traffic concerns not significant data itself, but where to find it." • John Backus in his 1977 ACM Turing award lecture Machine de Von Neumann • Structure des mots mémoire mots de 40 bits : – Soit 2 instructions de 20 bits – Soit 1 entier signé de 40 bits • Instructions composées de 2 champs – 8 bits codent le type d’instruction – 12 bits pour spécifier (adresser) un des 4096 mots Code d’instruction adressage • Ex : – PUSH – ACC $1024 $0015 Von Neumann et sa machine e. L’assembleur • 1947 : Amélioration du traitement binaire : le langage Assembleur est inventé par l'anglais Maurice V. Wilkes. 3. 2ème génération les transistors (1955-1965) a. Innovations • technologiques – 1948 : Invention du transistor aux Bell Labs (Bardeen, Shockley) • Interrupteur commandé électroniquement • Beaucoup moins encombrant que le tube • Concepts architecturaux – Programmation en langage machine – Microprogrammation – Représentation des nombres en virgule flottante • Logicielles – Apparition des systèmes d’exploitation – Programmation en assembleur – Premier langage de haut niveau : le FORTRAN b. Le début des grandes firmes • IBM – (7090, 7094, 7030…) • Bull – (PDP-1, PDP-8…) • DEC – (TX-0, TX-2…) • CDC – (6600, 6700, Cray-1…) IBM 7094 (uniquement les consoles…) PDP-8 4. 3ème génération les circuits intégrés (1965-1980) a. Les circuits intégrés • 1961 Premiers circuits intégrés (sur silicium R. Noyce) – Innovations technologiques • Moindre encombrement • Moindre consommation • Gain en performances b. Innovations • Innovations architecturales – Compatibilité des machines d’une même gamme (IBM: System/360) – Introduction du parallélisme (multiprogrammation) – Systèmes à multi-processeurs • Logiciels – Langages de programmation • Basic, Pascal, C, … • Exemples d’architectures – IBM 360, CDC 6000, PDP 11, … L’offre d’IBM: System/360 Caractéristiqu es des System/3… Performance relative Temps de cycle (ns) Mémoire max. (Ko) 30 40 50 60 1 1 KHz 10 2 KHz 21 4 KHz 1000 3,5 1,6 KHz 625 500 250 64 256 256 512 IBM 360 PDP-11 c. Naissance d’Intel, le premier microprocesseur • 1968 R. Noyce, G. Moore et A. Rock fondent Intel Corporation • 1970 première UC composée de 2300 transistors (LSI) : le 4004 processeur 4bits • 1973 le 8008 processeur 8bits • 1978 le 8086 processeurs 16 bits 1971 : Premier microprocesseur Intel 4004 Microprocesseur 4 bits 108 KHz 60000 Instructions par seconde 2300 transistors 4ème génération Les VLSI (1980, maintenant) a. Innovations • Densité d’intégration augmente : VLSI – Dizaine de milliers -> millions de transistors sur une puce • Passage du centre de calcul à l’ordinateur personnel • Innovations architecturales – réseaux d’ordinateurs – Concepts de parallélisme développés • Logiciels MSI (100 – 100K) SSI (10-100) VLSI b. Circuits intégrés Matériaux de base • Silicium Motif de base • transistor Gravés sur des galettes de silicium (wafer) Densité d’intégration • SSI – Small Scale Integration (1960’s) – 1 à 10 portes / circuit – Moins de 100 transistors • MSI – Medium Scale Integration – 10 à 100 portes / circuit – Plus de 3000 transistors • LSI – Large Scale Integration (1970’s) – 100 à 10 000 portes / circuit – Plusieurs dizaines de milliers de transistors • VLSI – Very Large Scale Integration (1980’s) – + de 10 000 portes / circuit – 1 million de transistors • ULSI – Ultra Large Scale Integration (2000’s) – + de 100 000 porte / circuit c. Les nouveautés • 1977 Apple puis Apple II (Steve Jobs) – Plusieurs millions d’exemplaires • 1981 l’IBM PC (personnal computer) – Intel 8088 – MS-DOS (microsoft) – Plans diffusés gratuitement => clonage • 1980 Architecture RISC dominante • 1990 UC Superscalaires (cours de M1) IBM PC Apple II d. Evolution chez Intel • 8086 (1978) – 16bits, 1Mo, • 80286 (1982) – 16 bits, mémoire étentue • 80386 (1985) – 32 bits • 80486 (1989) – 32 bits, cache de 8K • Pentium (1993) – Double pipeline • Pentium pro (1995) – Cache mémoire à 2 niveaux 8Ko + 256Ko • Pentium II + Celeron + Xeon – MMX • Pentium III • Pentium IV (1997) Compatibilité (1999) ascendante (2000) Evolution des processeurs Intel: densité, fréquence d’horloge 8000 7000 6000 5000 Année MHz Transistors 4000 3000 2000 1000 80 48 6 Pe nt iu m Pe nt iu m II 80 38 6 80 28 6 80 86 80 80 80 08 40 04 0 Evolution des processeurs Intel: mémoire 10000000 1000000 100000 10000 1000 mémoire Ko 100 10 II Pe nt iu m iu m 6 Pe nt 48 80 6 38 80 6 28 80 86 80 80 80 80 0,1 08 1 Intérieur du Pentium IV (Intel) • année 2003 • ~40 millions de transistors • Gravure à 0,09 µ m • 2-4 GHz 5. Résumé Mécanisme de l’arithmétique a. L’héritage Automates Falcon Pascal Leibnitz Jacquard Logique mathématique Technologie Leibnitz Mécanique Babbage Boole Turing ENIAC Electromécanique Electronique Von Neumann Wilkes Industrie Informatique b. Evolution historique 1980’s Suppression de la microprogrammation => cablé 1970’s « Ajouter du matériel par logiciel » : explosion des jeux d’instructions 1960’s 5 Niveaux : OS 1957’s 4 Niveaux : J. Bachus premier compilateur FORTRAN 1951 3 Niveaux : M. Wilkes, niveau microprogrammation 1945 2 Niveaux : Von Neumann, ISA + physique Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau 1 Niveau 0 Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau 1 Niveau 0 Couche des langages d’application Traduction (compilateur) Couche du langage d’assemblage Traduction (assembleur) Couche du système d’exploitation Interprétation partielle (OS) Couche architecture du jeu d’instruction (ISA) Interprétation (microprogramme) ou exécution directe (cablé) Couche microarchitecture Matériel Couche logique numérique II. L’ordinateur actuel organisation 1. Fonctionnement a. Spectre des ordinateurs actuels Type Ordinateur jetable Ordinateur enfoui Ordinateur de jeux PC Serveur Station de travail Mainframe superordinateur Prix (euro) 1 10 100 1K 10K 100K 1M Exemple d’application Carte de vœux téléphone, voitures Jeux vidéo Ordinateur portable Serveur de réseau Mini superordinateur Traitement par lot : banque 10M Prévision météo b. Quelques marques de processeurs standards • Intel, AMD, Via – Ordinateur personnel • Sun – Stations de travail (ultrasparc) – Systèmes enfouis (microjava 701) • Nvidia – Carte graphique • Transmeta, altera, Xilinx, ARM, MIPS – Systèmes enfouis (crusoe, nios, virtex, arm9, mipsRx000) • … c. Architecture actuelle de l’ordinateur UC Mémoire Console E/S à ruban Autres E/S Le bus central Architecture du PDP-8 (1965) structurée autour d’un bus central : • L’omnibus Le bus et la mémoire peuvent disposer de signaux séparées entre données et instructions (Harvard) Architecture des ordinateurs : terme inventé par IBM en 1964 pour le 360 c. Architecture actuelle de l’ordinateur UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne Bus externe • Données • Adresses • Commandes d. Echanges entre le processeur et la mémoire • Le processeur exécute un programme – Programme écrit en mémoire – Transfert d’instructions • Le programme manipule des variables – Transfert de données • Toutes ces informations sont rangées à un certain emplacement – Transfert d’adresses Principe général d’exécution UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne 1) Charger la prochaine instruction Principe général d’exécution UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne 2) Charger les données sur lesquelles travaille l’instruction Principe général d’exécution UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne 3) Exécuter l’instruction et modifier la copie locale des données Principe général d’exécution UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne 4) Ranger le résultat en mémoire Principe général d’exécution UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Mémoire principale Bus interne 5) Envoyer l’adresse de la prochaine instruction Revenir à l’étape 1) d. Définition du cycle d’exécution d’une machine de Von Neumann Un cycle d’exécution machine consiste à 2. Charger l’instruction 3. Charger ses données 4. Faire un traitement sur ces données 5. Ranger le résultat du traitement 6. Désigner la prochaine instruction 2. Revenons sur l’organisation multi niveaux Niveau 5 Couche des langages d’application Traduction (compilateur) Niveau 4 Couche du langage d’assemblage Traduction (assembleur) Niveau 3 Couche du système d’exploitation Interprétation partielle (OS) Niveau 2 Niveau 1 Couche architecture du jeu d’instruction (ISA) Interprétation (microprogramme) ou exécution directe (cablé) Couche microarchitecture Matériel Niveau 0 Couche logique numérique Niveau physique • Architecture et fonctionnement interne des composants • Informations au niveau bit s = abc + abc + abc + abc a b c a b c a abc abc e1 e2 b abc en abc s c OU s Niveau microarchitecture • Architecture matérielle du processeur • Information au niveau mot Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder MAR MDR 4 MPC 9 PC 8 MBR Contrôleur 8 SP LV JMPC Addr J Alu CPP TOS OPC JAMN/JAMZ H 6 C Bus B Bus ALU Shifter N Z 2 High Bit 2 MIR C MB Niveau ISA • • • • Architecture de jeu d’instruction du processeur Interface entre matériel et logiciel Écrit en code binaire C’est le code manipulé et mémorisé en mémoire principale au moment de l’exécution • Totalement dépendant de l’architecture sousjacente • Informations au niveau mot • Dimensionnement des champs de l’instruction : – Adresse – Constantes – Opérandes… Code d’instruction adressage • • • • Niveau OS Exemple : primitives de uCOS Visibilité du niveau système Gestion du code binaire, du chargement… Responsable de la commutation de contextes • Services de communications entre processus • Abstraction des périphériques d’E/S • … UC / CPU Unité de Contrôle Disque (HDD) Unités d’entrée/sortie Registres UAL Bus interne Mémoire principale Niveau Assemblage • Premier niveau historique de programmation • Dépend d’une famille d’architecture de processeur /* code assembleur */ /* a:R0 b:R1 Tab:R2 load R2,Tab; load R0,(R2); load R1,12; add R3,R0,R1; store (R2),R3; */ Niveau Langage d’application • L’interface avec le programmeur humain • Langages • Abstraction des mécanismes d’exécution de l’unité de calcul sous-jacente • Totalement indépendant du CPU • Nécessité de logiciels qui écrivent du code : – – – – Compilateurs Assembleurs Interpréteurs Editeurs de liens 2. Spécificités des architectures embarqués a) Architecture d’un système embarqué Marché de l’embarqué • Augmentation de la puissance des processeurs selon la loi de Moore • Explosion du marché informatique • Baisse des prix => Emergence de l’informatique embarquée Systèmes embarqués Définition : Un système électronique embarqué ou enfoui est un élément constitutif d’un système plus complexe pour lequel il rend des services bien précis (contrôle, surveillance, communication…). Il est constitué de parties matérielles et logicielles qui sont conçues spécifiquement pour réaliser une fonction dédiée. Domaines d’application • Applications utilisateur – Jeux, bureautique, services, multimédia – Téléphones, PDA, lecteurs MP3… • Contrôle – Contrôle-commande (automobile, usines, robots…) • Traitement du signal – Radar, sonar, avionique – Traitement de srosses quantités de données • Network computing – Téléphonie, routeur… Exemples - Netgear DG632 ADSL Modem/router 1. Telephon decoupling electronics (for ADSL). 2. Multicolour LED (displaying network status). 3. Single colour LED (displaying USB status). 4. Main processor, a TNETD7300GDU, a member of Texas Instruments' AR7 product line. 5. JTAG (Joint Test Action Group) test and programming port. 6. RAM, a single ESMT M12L64164A 8 MB chip. 7. Flash memory, obscured by sticker. 8. Power supply regulator. 9. Main power supply fuse. 10. Power connector. 11. Reset button. 12. Quartz crystal. 13. Ethernet port. 14. Ethernet transformer, Delta LF8505. 15. KS8721B ethernet PHY transmitter receiver. 16. USB port. 17. Telephone (RJ11) port. 18. Telephone connector fuses. Texas Instrument AR7 SoC architecture AR7 merges the functionality of three chips into one: • integrating a 32-bit RISC processor, • a DSP-based (TIC62x) digital transceiver, • and an ADSL analog front end Exemple – Téléphone mobile Systèmes embarqués Les caractéristiques principales d’un système électronique embarqué sont : • Autonomes. Une fois enfouis dans l’application il ne sont (le plus souvent) plus accessibles • Temps réel. Les temps de réponses de ces systèmes sont aussi importants que l’exactitude des résultats • Réactifs. Il doit réagir à l’arrivée d’informations extérieures non prévues Architecture représentative d’un système embarqué Architectures embarqués Besoins Léger Moyen RAM < 4Mo ROM/Flas < 2Mo h Processeu DragonBall rs 68k ColdFire ARM Matériel Pas de MMU Exemple PDA, tel 2-8 Mo Haut de gamme 8-32 Mo Haute disponibili té > 100 Mo 2-4 Mo 4-16 Mo Go (HDD) MIPS ColdFire ARM PowerPC SoC MIPS ARM PowerPC x86 Video controller Console PowerPC x86 Routeur Wifi ≅ PC Serveur Le microprocesseur au centre 2005 : Une automobile de classe haute contient une centaine de microprocesseurs (de 8 à 32 bits) … Exemple – Automobile (Laguna) Le microprocesseur au centre 2005 : Une automobile de classe haute contient une centaine de microprocesseurs (de 8 à 32 bits) • Matériel disponible sans conception • Développement logiciel rapide • Flexible • Bas coût induit par les grandes quantités vendues • Bénéficier de la dernière technologie de fabrication • Bénéficier de l’optimisation de grandes équipes de concepteurs Quel type de processeur? • Processeurs généraux – Fonctionnalités multiples – Surdimensionné • Processeurs dédiés – Bon pour l’application pour laquelle il a été conçu, pas forcément pour les autres • Processeurs de traitement du signal (DSP) – Traitements intensifs (voix, image…) – Téléphones portables • SoC – Système multi composants (proc, ASIC, …) Le marché du processeur embarqué • 6 % des processeurs vendus sont destinés au marché des PC • Avec 85 % avec un système windows • 94 % des processeurs vendus sont destinés au marché de l’embarqué • 95% avec un OS ouvert Architectures de traitement utilisées dans l’embarqué Roadmap semi-conducteurs Différence avec l’informatique générale • Dans les systèmes embarqués, les tâches concurrentes sont définies statiquement • Un système est conçu pour un nombre limité de fonctionnalités • Elles ne changent pas avec le temps • Cela autorise de dimensionner au mieux et d’optimiser le système en fonction de ses besoins Différence avec l’informatique générale Informatique : • Processeur standard – Multiples unités fonctionnelles (flottant) – Vitesse élevée (> GHz) – Consommation électrique élevée – Chaleur – Taille • • • • MMU (mémoire virtuelle) OS Cache Grand nombre de périphériques Embarqué : • Processeur dédié (contrôleur) – – – – – Architecture adaptée Vitesse faible (~200 MHz) 8-32bits : mémoire limitée Basse consommation Petite taille, grand volume => faible coût • Processeur DSP (traitements) – Très puissants • Qqs Mo de mémoire • RTOS b) Systèmes embarqués temps réel Systèmes embarqués temps réel Systèmes embarqués temps réel Systèmes embarqués Systèmes temps réel Systèmes temps réel Définition Ce sont des systèmes liés au contrôle de procédés l’exécution de programmes dans ces systèmes doit terminer avant une date butoir appelée échéance au-delà de laquelle les résultats ne sont plus valides Exemple critique : le contrôleur de frein d’une voiture Systèmes embarqués temps réel Exemples : Hard : Pilotage automatique de la ligne 14 Dispositif de surveillance d’une centrale nucléaire Système de guidage de missiles Régulateur de vitesse en automobile Soft : Téléphone portable Lecteur DVD, électroménager Les catégories de temps réel … • Système temps-réel dur/stricte (hard real-time) Le non-respect des échéances peut avoir des conséquences graves sur le fonctionnement du système ou sur son environnement (auto-pilotage, freinage, assistance médicalisée…). Les échéances ne doivent jamais être dépassées. • Système temps-réel mou (soft real-time) Le non-respect des échéances ralentit le système sans conséquences graves (billetterie automatique…). Le système doit répondre au mieux, le plus rapidement possible. Systèmes multi-périodes • La plupart des systèmes embarqués sont dit mutlirate ou multi-période – Les données sont capturées à un certain rythme – Les traitement sur ces données ne sont pas forcément à la même granularité – Différents traitements peuvent intervenir de manière indépendante – Les actionneurs fonctionnent à une fréquence différentes Systèmes temps réel • Il ne s’agit pas de rendre le résultat le plus rapidement possible, mais simplement à temps. • L’échelle de temps de l’échéance peut varier d’une application à l’autre – microseconde en contrôle radar – milliseconde pour la synchronisation image/son (mpeg) – minute pour les distributeurs automatiques Déterminisme • Pour être en mesure de respecter les contraintes temporelles associées aux exécutions de programmes, le système (son architecture) est conçu et dimensionné de manière à réduire tout indéterminisme : – Simplifier les méthodes de gestion matérielle (os) – Ordonnancer les tâches les plus urgentes – Développer du matériel dédié aux types de calculs réalisés • Le temps de réponse du système est garantie!!! Concevoir pour optimiser Rendre l’exécution déterministe • En temps d’exécution • En taille mémoire utilisée • En consommation d’énergie Optimisations : • Minimiser les communications • Minimiser les synchronisations • Utilisation des propriétés de la théorie des graphes pour manipuler l’application et son implantation logicielle et/ou matérielle Les défis de l’embarqué • Concevoir/Produire vite le logiciel et le matériel • À bas coût • Répondre aux contraintes non fonctionnelles (taille, performance, consommation) • Appréhender la complexité (matérielle, logicielle et intergicielle) • Prévoir la réutilisation du système pour plusieurs générations Un compromis difficile à respecter (problème multicritères): coût / performances / consommation Résumé • Les systèmes embarqués – Sont en plein essor commercial – et sont donc conçus à base de processeurs programmables. – Ce sont des systèmes autonomes, – le plus souvent temps réel. • La conjonction de ces facteurs conduit à des contraintes d’ordonnancement sévères en terme de – Prédictibilité – Taille mémoire Présentation des spécialités du domaine de compétence Architecture • UE15 • UE16 • UE17 • UE18 Adéquation Algorithme Architecture Méthodologie de conception Architecture des systèmes reconfigurables Nouvelles technologies, nouvelles architectures