Introduction aux systèmes embarqués
Transcription
Introduction aux systèmes embarqués
Chapter 1: Introduction aux systèmes embarqués Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Objectifs d’apprentissage • Survol des systèmes embarqués • Le Défi du design – optimisation de métriques opérationnelles • Technologies – Processeurs – Circuit intégrés – Outils de conception Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Survol des systèmes embarqués • Ordinateurs partout • Nous pensons surtout à des ordinateurs de “bureau” – PC – Portables – Serveurs • Il existe un autre type beaucoup plus répandu... Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Survol des systèmes embarqués • Système embarqué – Système à micro‐ordinateur « caché » – Difficile à définir précisément – pratiquement tout ce qui n’est pas un ordinateur de bureau – Des milliards d’unités produites chaque année, contre des millions d’ordinateurs de bureau ! – Environ, 50 par maison et automobile Les ordinateurs sont ici… et ici... et meme ici... Beaucoup plus de ceuxla, et ils coûtent beaucoup moins cher. Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Une “petite” liste Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR’s, DVD players Video game consoles Video phones Washers and dryers et beaucoup plus encore ! Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Quelques caractéristiques communes • Fonction dédiée – Exécutes un programme spécifique, répétitivement • Répond à des contraintes serrées – Faible coût, consommation d’énergie – Petites dimensions physiques, – Temps de réponse optimal, etc. • Réactif et opère en temps‐réel – Réagit continuellement aux conditions d’opération – Répond en dedans de contraintes de temps Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Exemple de système embarqué : Caméra numérique Digital camera chip CCD CCD preprocessor Pixel coprocessor D2A A2D lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller • • • Display ctrl ISA bus interface UART LCD ctrl Fonction dédiée – toujours une caméra Contraintes serrées – abordable, opération à piles, petites dimensions, réponse rapide Réactif et opération en temps réel – jusqu’à un certain point Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le défi du design – Optimisation des métriques de conception • Le but idéal du design : – Concevoir et implémenter un système embarqué avec la fonctionnalité désirée • Le défi à relever : – Optimiser simultanément plusieurs contraintes de design • Métrique de conception : Un trait mesurable après l’implémentation Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le défi du design – Optimisation des métriques de conception • Métriques communes – Coût unitaire : le coût de manufacturer chaque unité du systèmes, à l’exclusion des coûts non récurrents (NRE) – NRE (« Non‐Recurring Engineering cost ») : Le coût de conception initial du système – – – – Size: La dimension physique du système Performance : Le temps de réponse du système Énergie consommée : l’alimentation du système Flexibilité: La capacité de modifier le système à coût raisonnable (NRE faible) Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le défi du design – Optimisation des métriques de conception • Métriques communes (suite) – Temps de prototypage: temps requis pour monter une version opérationnelle du système – Temps de mise en marché : temps requis pour développer une version commercialisable. – Maintenabilité: capacité de modifier le système après la mise en marché – Fiabilité, Sécurité d’utilisation, etc. Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le problème : améliorer une métrique peut avoir un effet négatif sur une autre Énergie Performance dimension • Une expertise simultanée en logiciel et matériel est souvent requise pour optimiser les métriques de conception Coût NRE CCD Digital camera chip A2D CCD preprocessor Pixel coprocessor D2A lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller Display ctrl ISA bus interface UART LCD ctrl Matériel Logiciel Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le temps de mise en marché: une métrique exigeante Revenus ($) • Temps requis pour développer une version commercialisable. • Fenêtre d’opportunité – Période durant laquelle le produit réaliserait le plus gros volume de ventes Temps (mois) • Durée moyenne : 8 mois • Les délais peuvent coûter cher ! Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Pertes due à l’entrée au marché retardée • Modèle simplifié des revenus Revenus ($) Pic des revenus À-temps Pic des revenus suite à l’introduction en retard du produit Marché décroissant Marché croissant Retardé D Entrée À-temps W Entrée en retard 2W Time – Durée de vie du produit = 2W, sommet des ventes atteint à W – Le temps de mise en marché définit un triangle représentant la pénétration du marché – L’aire du triangle représente les revenus • Perte due au retard – La différence de surface entre les triangles À‐temps et Retardé Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Pertes due à l’entrée au marché retardée • Aire = ½*(base*hauteur) – Á‐temps = 0.5*2W * W – Retardé = 0.5*(2W‐D)*(W‐D) Revenus ($) Pic des revenus À-temps Pic des revenus suite à l’introduction en retard du produit Marché décroissant Marché croissant Retardé • Pourcentage de perte de revenu = (D(3W‐D)/2W2)*100% • Exemples – D Entrée À-temps W Entrée Retardée 2W Temps – Durée de vie 2W=1 an – D = 4 semaines : (4*(3*26 –4)/2*26^2) = 22% – D = 10 semaines : (10*(3*26 –10)/2*26^2) = 50% Les délais coûtent cher ! Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Métriques NRE et coût unitaires • Coûts: – Coût unitaire : le coût de manufacturer chaque unité du systèmes, à l’exclusion des coûts non récurrents (NRE) – NRE (Non‐Recurring Engineering cost): Le coût de concevoir le système • – Coût total = NRE + coût unitaire* # d’unités – Coût total par unité = coût total / # d’unités = (NRE / # d’unités) + coût unitaire Exemple – NRE=$2000, coût unitaire=$100 – For 10 unités – Coût total = $2000 + 10*$100 = $3000 – Coût total par unité = $2000/10 + $100 = $300 L’amortissement du NRE sur toutes les unités ajoute un coût $200 par unité Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Métriques NRE et coût unitaires • Comparaison de technologies – la meilleure dépend de la quantité ! – Technologie A: NRE=$2,000, coût unitaire=$100 – Technologie B: NRE=$30,000, coût unitaire =$30 – Technologie C: NRE=$100,000, coût unitaire =$2 $200,000 B C $120,000 $80,000 $40,000 A B $160 p er p rod uc t c ost $160,000 tota l c ost (x1000) $200 A C $120 $80 $40 $0 $0 0 800 1600 2400 Numb er of units (volume) 0 800 1600 2400 Numb er of units (volume) • Mais, il faut aussi considérer le temps de mise en marché ! Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis La métrique de performance • Largement utilisée, souvent mal – Fréquence d’horloge, # instructions par seconde – mesures inefficaces ; par exemple, un usager se préoccupe plus du temps de réponse d’une caméra que par la fréquence du processeur. • Latence (temps de réponse) – Time entre le début et la fin d’une tâche (ex. 0.25 s par prise de vue d’une caméra x) • Rapidité – Tâches exécutées par seconde (ex. Camera A traite 4 images par seconde) – Peut être meilleur que le temps de réponse dû à l’usage de parallélisme de tâches, e.g. Camera B peut capturer 8 images par seconde (en capturant une nouvelle image pendant qu’elle sauve la précédente). Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Trois technologies clés • Technologie – Une façon d’accomplir une tâche, en utilisant un ensemble de processus, méthodes, connaissances techniques. • Trois aspects technologiques à considérer pour les systèmes embarqués – Processeurs – Mise en œuvre sur CI – Design de haut niveau Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Processeurs • Trois types, dépendant de l’unité de calcul pour implémenter la fonctionnalité désirée • Peuvent êtres programmables ou préprogrammés • Peuvent être à usage général, spécialisé ou dédié Controller Datapath Controller Datapath Controller Datapath Control logic and State register Control logic and State register Registers Control logic index Register file State register + IR PC General ALU IR Custom ALU PC Data Memory and I/O Program memory Data Memory Data Memory and I/O Program memory Assembly code for: Assembly code for: total = 0 for i =1 to … total = 0 for i =1 to … Usage général (“logiciel”) total Usage spécialisé (uC, DSP) Usage dédié (“matériel”) Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Usage de processeurs • Les processeurs se distinguent par le degré d’adaptation au problème spécifique à résoudre Fonctionnalité désirée Processeur à usage général total = 0 for i = 1 to N loop total += M[i] end loop Processeur spécialisé Processeur dédié Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Processeur à usage général • Circuit programmable utilisable pour une variété d’applications – Souvent appelé “microprocesseur” • Traits – Mémoire de programme – Grand nombre et variété de registres – UCT à usage général • Bénéfices pour l’usager – Temps de mise en marché et NRE bas – Grande flexibilité • « Pentium » et « Power PC » les plus connus, mais il existe de nombreux autres Controller Datapath Control logic and State register Register file IR PC Program memory Assembly code for: total = 0 for i =1 to … Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis General ALU Data Memory Processeur dédié • Conçu pour exécuter une fonction spécifique – Ex. coprocesseur, accélérateur or périphérique. • Traits – Contient uniquement les composants requis pour l’application – Non programmable au sens habituel Controller Datapath Control logic index total State register + Data Memory and I/O • Bénéfices pour l’usager – Rapide – Faible consommation d’énergie – Petites dimensions Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Processeur à usage spécialisé • Processeur programmable optimisé pour une classe d’applications ayant des traits communs – Compromis entre l’usage général et l’usage dédié ; le uC et les DSP sont des exemples • Traits – Mémoire de programme – Circuits de données optimisés – Unités fonctionnelles spécialisées • Bénéfices pour l’usager Controller Datapath Control logic and State register Registers IR Custom ALU PC Program memory Data Memory and I/O Assembly code for: total = 0 for i =1 to … – Un peu de flexibilité et bonnes performance, dimension et consommation d’énergie Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Technologies de mise en œuvre sur CI • La manière dont un design est réalisée dans un CI, une fois réduit à l’échelle des portes logiques. • Un CI consiste en plusieurs couches de semi‐conducteurs (jusqu’à 10+) • Les technologies différent par – La méthode de fabrication des couches – La généricité des CI obtenus • La technologie de mise en œuvre et l’architecture des processeurs sont des concepts distincts ! IC package IC source gate oxide channel drain Silicon substrate Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Technologies de mise en œuvre sur CI • Trois types de technologies de mise en oeuvre – CI complètement dédié (ASIC/VLSI) – ASIC semi dédié (« gate array » and « standard cell ») – PLD (« Programmable Logic Device ») Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis ASIC/VLSI • Toutes les couches sont optimisées pour la fonctionnalité du système embarqué considéré – Dimension et placement des transistors – Largeur et routage des liens • Bénéfices – Excellente performance, grande densité, petites dimensions, faible courant • Limitations – NRE élevé (e.g., $1 M), temps de mise en marché élevé Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Semi‐dédié • Les couches inférieurs sont partiellement ou complètement réalisées – Il reste a faire le routage des fils et éventuellement ajouter des blocs fonctionnels additionnels • Bénéfices – Bonne performance, bonnes dimensions, NRE plus faible que ASIC (aussi bas que $10k) • Limitations – Demande des semaines à des mois de temps de développement Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis PLD • Toutes les couches sont déjà réalisées mais les composants sont à configurer et inter relier – Les CI sont disponible à l’unité – Des liens sont faits ou défaits pour realiser la fonctionnalité désirée – « Field‐Programmable Gate Array (FPGA) » très populaire • Bénéfices – Faibles coûts NRE bas, produit final disponible rapidement • Limitations – Plus grosses dimensions physiques, plus grande consommation en courant, relativement plus lents, plus coûteux Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Technologie de design de haut niveau • Le processus pour convertir une fonctionnalité désirée en un design concret Compilation/ Synthèse Compilation/Synthèse: Automatise l’exploration et génère les détails de mise en œuvre pour la couche inférieure adjacente Librairies/IP: permettent d’incorporer des blocs déjà réalisés dans des niveaux d’abstraction supérieurs Test/Vérification: S’assure du bon fonctionnement à chaque niveau, de manière à réduire les itérations couteuses entre niveaux. Librairies/ IP Test/ Vérification Spécification système Synthèse système Hw/Sw/ OS Simulateurs de modèles./ Vérificateurs Spécification comportementale Synthèse comportementale Cores Co simulateurs Hw/Sw Spécification RTL Synthèse RTL Composants RTL Simulateurs HDL Spécification logique Synthèse logique Portes/ Cellules Simulateurs logiques Vers l’implémentation finale Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Le co‐design • Dans le passé : – La conception du matériel et du logiciel faisait appel à des technologies différentes – Les outils de synthèse récents permettent une vue unifiée : le “co‐ design” matériel/logiciel Code séquentiel (e.g., C, VHDL) Synthèse comportementale (1990's) Compilateurs (1960's,1970's) Transferts entre registres Instructions en assembleur Assembleurs, éditeurs de liens (1950's, 1960's) Synthèse RTL (1980's, 1990's) Équations logiques/FSM's Code machine Sunthèse logique (1970's, 1980's) Portes logiques Microprocesseur plus program : “logiciel” Implémentation VLSI, ASIC, ou PLD : “matériel” Le choix du matériel versus logiciel pour une fonction particulière est simplement un compromis entre métriques de design telles la performance, la puissance consommée, les dimensions physiques, les coûts NRE et, surtout, la flexibilité ; il n’existe pas de différence fondamentale entre ce que le matériel et le logiciel peuvent réaliser. Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Summary • Les systèmes embarqués sont partout ! • Le défi principal du concepteur : optimisation des métriques de design – Les métriques de design sont ne conflit les unes avec les autres • Une vue unifiée du matériel et du logiciel est necéssaire pour améliorer le processus de développement • Trois aspects technologiques clés : – Processeur : usage général, spécialisé, dédié – CI : custom, semi‐custom, PLD – Design: Compilation/synthèse, librairies/IP, test/vérification Traduit et adapté de Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis