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

Documents pareils