Chap1 intro 1pp

46
Chapitre 1 : Introduction à la conception des Chapitre 1 : Introduction à la conception des Chapitre 1 : Introduction à la conception des systèmes embarqués Chapitre 1 : Introduction à la conception des systèmes embarqués 1. Définitions et caractéristiques 2. Domaines d'application 3. Exemples de systèmes embarqués 4. Écart de productivité INF3610 Systèmes embarqués 1

Transcript of Chap1 intro 1pp

Chapitre 1 : Introduction à la conception desChapitre 1 : Introduction à la conception desChapitre 1 : Introduction à la conception des systèmes embarqués

Chapitre 1 : Introduction à la conception des systèmes embarqués

1. Définitions et caractéristiques

2. Domaines d'application

3. Exemples de systèmes embarqués

4. Écart de productivitép

INF3610 Systèmes embarqués

1

1. Définitions et caractéristiques1. Définitions et caractéristiques

1. Système temps réel

2. Système embarqué. Sys è e e ba qué

3. Système sur puce

INF3610 Systèmes embarqués

2

Système temps réelSystème temps réel

Un système temps réel est un système numérique qui doit répondre à un ensemble de stimuli provenant de l’environnement dans un intervalle de temps dicté par ce même environnement (i.e. des contraintes temporelles).

INF3610 Systèmes embarqués

3

Système temps réelSystème temps réel

Exemple d’un système temps réel ou réactif:Exemple d’un système temps réel ou réactif:

INF3610 Systèmes embarqués

Exemple de systèeme temps réel: le cruise controlExemple de systèeme temps réel: le cruise controlExemple de systèeme temps réel: le cruise controlExemple de systèeme temps réel: le cruise control

• Spécifications temporelles d’un sous-ensemble de signaux:• Via des sensors, échantillonnage du signal

embrayage (gear) et frein (brake) aumoins à toutes les ms.

• Suite aux valeurs obtenus précédemment,on doit calculer au moins à toutes les

• Finalement, le tableau de bord doit êtremis à jour, au moins à toutes les secondes.

on doit calculer au moins à toutes les secla valeur appropriée pour le contrôleur devalve (qui détermine la nouvelle vitesse).

• Également, il ne doit pas s’écouler plus de1 ms entre le moment où le conducteur

1/sec

1 contraintemoins dure

s e e e o e où e co duc euappuie sur le frein et son effet sur la valve.

Cruise Control

1000/sec

brake

speed

ave_speed

consumptionCruise Control

<= 1ms

gear

valve

3 contraintesdures

INF3610 Systèmes embarqués

51/sec

Caractéristiques d’un système temps réel :

Système temps réelSystème temps réel

• Constitué de deux sous-systèmes: 1 Le contrôleur (PC ou microcontrôleur)

Caractéristiques d’un système temps réel :

1. Le contrôleur (PC ou microcontrôleur)2. Le contrôlé (environnement physique)

INF3610 Systèmes embarqués

6

Caractéristiques d’un système temps réelCaractéristiques d’un système temps réelCaractéristiques d’un système temps réel Caractéristiques d’un système temps réel

• La relation entre les deux sous-systèmes est décrite partrois opérations: échantillonnage, calcul et réponse. Cesopérations doivent se réaliser à l’intérieur d’intervalle(s)de temps: ce sont les contraintes de temps.

i i d• Deux types de contrainte temporelle existent: douce oudure

INF3610 Systèmes embarqués

7

Caractéristiques d’un système temps réelCaractéristiques d’un système temps réelCaractéristiques d’un système temps réel Caractéristiques d’un système temps réel

• Une contrainte douce (système temps réel doux) est moinscontraignante, i.e. qu’elle permet une erreur raisonnable

ù l i dûpar rapport au moment exact où le processus aurait dûs’exécuter. Exemple: encodeur/décodeur vidéo

• Par opposition la contrainte dure (système temps réel dur)• Par opposition, la contrainte dure (système temps réel dur)ne permet aucune erreur sur le moment où le processusaurait dû s’exécuter. Exemple: frein d’une voiture,pacemaker, etc.

INF3610 Systèmes embarqués

8

Composition d’un système embarquéComposition d un système embarqué

• Une partie matérielle utilisée pour la performance• Micro-processeur, contrôleurs, coprocesseurs, DSP

Mé i• Mémoires• ASIC• Interfaces d’entrées/sorties• Interfaces d entrées/sorties

• Une partie logicielle utilisée pour sa flexibilitép g p• Programmes

SoftwareProgram

INF3610 Systèmes embarqués

9

Système embarquéSystème embarquéSystème embarquéSystème embarqué

• Un système embarqué est un système servant à résoudre d f i d â h é ifi li i édes fonctions et des tâches spécifiques et limitées.

• Associé à contraintes en temps réel• Souvent conçu en matériel avec des parties en logiciel• Souvent conçu en matériel avec des parties en logiciel.

• La complexité du système et des fonctions varient largement

• Contrôleur d’un lave-vaisselle• Portable MP3• Contrôleur de missiles

• Le logiciel est utilisé pour la flexibilitéL té i l t tili é l f t l

INF3610 Systèmes embarqués

• Le matériel est utilisé pour la performance et la consommation Voir wikipedia.org

Contraintes des systèmes embarqués• Métriques de conception principales

• Consommation et dissipation de puissance

Contraintes des systèmes embarqués

• Consommation et dissipation de puissance• Taille• Coûts de production et coûts non récurrents• FiabilitéFiabilité• Temps de commercialisation (time to market)

• D’autres contraintes existent: • Tolérance aux pannes• Tolérance aux pannes, • Résistance aux chocs et températures, • BIST• Flexibilité et mises-à-jourFlexibilité et mises à jour

• Souvent utilisés dans un environnement réactif soumis à des contraintes temps réel.

INF3610 Systèmes embarqués

11

• Nécessitent des systèmes haute performance

Système sur puce (SoC)Système sur puce (SoC)

• Un SoC constitue un circuit complexe qui intègre tous les éléments fonctionnels d’un produit sur une même puce. Par exemple, des modules logiciels (DSP), des mémoires,Par exemple, des modules logiciels (DSP), des mémoires, des périphériques, des coprocesseurs matériels (FPGA ou ASIC) et même des modules analogiques ou

t él t i t t êt i ê déoptoélectroniques peuvent tous être mis sur un même dé.

• L’objectif est diminuer au minimum le nombre deL objectif est diminuer au minimum le nombre de composants sur une carte pour mettre tout sur une seule puce.

INF3610 Systèmes embarqués

12

Objectif du SoCSDRAM(16Mbits )

Objectif du SoC

Système sur carte Système sur pucei e carte maîtresse UCTi.e. carte maîtresse - UCT

- mémoire- bus- unités d’exécution spécialisées

INF3610 Systèmes embarqués

13

unités d exécution spécialisées

E l d S C

ADDR: 12bit

SDRAM(16Mbits )Exemple de SoC

• Processeur ARM7SDRAM Controller

R

Arbiter

SDRAM Controller for Capture

Y/CH/V/CLK

Y 8bitC 8bit

Y/C

Y 8bitC 8bit

H/V

ADDR: 12bitDATA: 16bit

ARM Peripheral

ASB ControlRegistersetting

ARM I/F

• Logique dédiée DCT• Contrôleur USB

ARM7TDMI

TIC

DCTQuantize/Zigzag

DMA DCTRAM Interrupt

PIO

TimerDCT Engine

RemapDecoder

DMA

JTAG

P IO 8bit X 2port

Interrupt 2port

DCT RAM1KByte

Wrapper

SRAM(32KByte)

MemoryExpansion

APBBridge

UART

USB

PLL

PLL24MHz

40MHzfor ARM

48MHzfor USB

SCAN toS DRAMC

DCTUSB

SIO 1ch

USBAPBASB

ADDR: 32bitDATA: 32bit

ADDR: 32bitDATA: 16bit

ASB Control

for USBADDR: 31bitDATA: 32bit

EPROMExternalBus I/F

ASB : AMBA System Bus

APB : AMBA Peripheral Bus

Sony Digital Camera SOCINF3610 Systèmes embarqués

14

Sony Digital Camera SOC

2. Clases d’applications2. Clases d’applications

Deux classes d’applications:

1 Systèmes dominés par le contrôle (control1. Systèmes dominés par le contrôle (control dominated systems). E.g. des systèmes réactifs

2. Systèmes dominés par un flôt de données (data-domintated systems)(data domintated systems)

INF3610 Systèmes embarqués

15

Systèmes dominés par le contrôleSystèmes dominés par le contrôle

• Requiert des contraintes de temps- Temps d’exécution prédictible et exécution périodique des tâches

• Requiert des contraintes de temps dures- Une tâche peut demander la plus haute priorité (highest OS

priorities)priorities)

• Plusieurs tâches (sous forme machines à états) partagent le CPU- Contexte multitâche- Changements de contexte rapides requis (< 1s)

INF3610 Systèmes embarqués

Systèmes dominés par le contrôleSystèmes dominés par le contrôle

• Peu de données associées à chaque machine à états- En associant de la mémoires sur puces (registres) à ces

machines on peu accélérer les changements de contextemachines on peu accélérer les changements de contexte(context switches).

• Un RTOS préemptif est en général requis:p p g q– La tâche la plus prioritaire est exécutée en premier.– Les tâches les moins prioritaires sont exécutées en

dernier (ou même jamais)dernier (ou même jamais).– Plusieurs algorithmes d’ordonnancement (statiques ou

dynamiques) existent.

INF3610 Systèmes embarqués

Systèmes dominés par le contrôleSystèmes dominés par le contrôleSystèmes dominés par le contrôleSystèmes dominés par le contrôle

INF3610 Systèmes embarqués

18

Systèmes dominés par le flôt de donnéesSystèmes dominés par le flôt de données

• Caractéristiques:– Beaucoup de MIPS ou de MFLOPS;Beaucoup de MIPS ou de MFLOPS;– Bande passante élevée (Mo/sec);

Instructions spécialisées pour DSP;– Instructions spécialisées pour DSP;– Support limité pour les interruptions et les

changements de contextechangements de contexte – Beaucoup de données pour un même contexte

(processus).

INF3610 Systèmes embarqués

19

(processus).

Systèmes dominés par le flôt de donnéesSystèmes dominés par le flôt de données

• Caractéristiques (suite):– Très peu de changements de contexte sont nécessairesTrès peu de changements de contexte sont nécessaires

car un on a un seul flôt de donnés, mais il est à très haut débit.U ili i l d i ( d– Utilise un simple ordonnancement statique (pas de préemption)

– Contraintes douces plutôt que duresContraintes douces plutôt que dures

INF3610 Systèmes embarqués

20

Systèmes dominés par le flôt de donnéesSystèmes dominés par le flôt de données

Diagramme bloc du TMS320C40

INF3610 Systèmes embarqués

21

3. Exemples de systèmes embarqués3. Exemples de systèmes embarqués

INF3610 Systèmes embarqués

http://www.eecs.berkeley.edu/~apinto/esd/Home.html

INF3610 Systèmes embarqués

23

http://www.eecs.berkeley.edu/ apinto/esd/Home.html

INF3610 Systèmes embarqués

24

Exemple 1: Contrôleur de mineExemple 1: Contrôleur de mine

• Application orientée contrôle• Spécification du système:

• Dans une mine, on désire transformer du minerai en boulettesboulettes

• Ce procédé se fait en deux étapes:1. la séparation du minerai en boulettes de boue2. la cuisson de ces boulettes pour leur durcissement

• Nous allons nous concentrer sur la première étape

INF3610 Systèmes embarqués

Contrôleur de mine Contrôleur de mine

• La séparation du minerai en boulettes s’effectue dans une hi lé t ifmachine appelée centrifugeuse.

• Les minerais arrivent sur des chariots et y ajoute de l’eau d’un réservoir qui s’écoule à un certain débit proportionnel à la ése vo qu s écou e à u ce ta déb t p opo t o e à aquantité de minerai à traiter. Le débit est contrôlé par deux paramètres :

1) La quantité d’eau présente dans le réservoir (plus il y a d’eau, plus la pression est forte, ce qui en résulte un plus grand débit)

2) La valve à la sortie du réservoir. Cette valve peut être réglée à n’importe laquelle valeur entière entre 0 et 100 (%).

INF3610 Systèmes embarqués

Contrôleur de mine Contrôleur de mine

INF3610 Systèmes embarqués

Contrôleur de mine Contrôleur de mine

• Le système est exposé à plusieurs contraintes:

• Quand le niveau d’eau atteint Alerte niveau bas, la pompe est activée pour remplir le réservoir.

• Le débit d’eau requis du réservoir est calculé sur le poids total des minerais arrivés lors des deux dernière secondes.

• Le niveau du réservoir doit EN TOUT TEMPS êtreLe niveau du réservoir doit EN TOUT TEMPS être supérieur à 25 centimètres et EN TOUT TEMPS inférieur à 1 mètre (un débordement entraînerait une épidémie de choléra minier)choléra minier).

INF3610 Systèmes embarqués28

C t ôl d iC t ôl d iContrôleur de mine Contrôleur de mine

• La quantité de minerai présente dans la centrifugeuse déterminera la fréquence d’arrivée des chariots de minerai dans le système :minerai dans le système :– Moins de 200 kg (x < 200) → 5 chariots/seconde– Entre 200 et 250 kg (200 ≤ x < 250) → 4 chariots/seconde– Entre 250 et 300 kg (250 ≤ x < 300) → 3 chariots/seconde– Entre 300 et 350 kg (300 ≤ x < 350) → 2 chariots/seconde– Plus de 350 kg (x ≥ 350) → 1 chariot/secondeus de 350 g ( ≥ 350) c o /seco de

INF3610 Systèmes embarqués

Contrôleur de mine Contrôleur de mine

• Rappel: le système est en 2 partiesRappel: le système est en 2 parties...

1. Le contrôleur (PC ou microcontrôleur)2 Le contrôlé (environnement physique)2. Le contrôlé (environnement physique)

MicroBlaze running RTOS

Hw

INF3610 Systèmes embarqués

Exemple 1Exemple 1

MicroBlaze et RTOS

INF3610 Systèmes embarqués

31Hw

Example 2: Encodeur MPEG-2Example 2: Encodeur MPEG-2

• MPEG 2 est un exemple typique d'application dominée par un flôt de données.

• MPEG 2 décrit une combinaison de compression vidéoMPEG 2 décrit une combinaison de compression vidéo et audio.

• MPEG-2 vise uniquement des usages liés à la télévision é i (diff i DVB t DVD) iti ànumérique (diffusion DVB et DVD), par opposition à

MPEG-4 qui englobent toutes les nouvelles applications multimédias comme le téléchargement et le streaming sur Internet, le multimédia sur mobile, la radio numérique, les jeux vidéo, la télévision et les supports haute définition.

INF3610 Systèmes embarqués32

haute définition.

Encodeur MPEG2Encodeur MPEG2 Video input Pre-processing Buffer fullness Difference Picture

Buffer + DCT Quantizer Buffer + DCT Quantizer (New picture) - Predicted picture Inverse quantizer motion compensated Inverse DCT predictor + picture memory Hufman filter

motion estimation (old picture) - motion vectors encoded coefficients

Entropy PES packets

Control data encoder Buffer Packetizer

INF3610 Systèmes embarqués

33

Control data encoder Buffer Packetizer

Diagramme blocs de l’encodeur MPEG

Profilage de l’encodeur

B

g

Beaucoupd’OPS(doncMatériel)

Motion estimation (compensation du mouvement) dont la fonction principale est la reconnaissance de patrons (Bloc Matching))

DCT

Zig zag

E dPeu d’OPS Encodage

Etc.

Peu d’OPSet beaucoupde contrôle (donc

INF3610 Systèmes embarqués

34

logiciel)

Profilage de l’encodeur (suite)g ( )

Ces fonctions représententseulement 6% des 8086 lignes de code d’une application MPEG4, mais elles consomment 83% du CPU…

Paulin et al Parallel programming models for a multiprocessor SoC platform applied to networking and multimedia TCAD 2006

INF3610 Systèmes embarqués

35

Paulin et al., Parallel programming models for a multiprocessor SoC platform applied to networking and multimedia, TCAD 2006.

Compensation du mouvement

1 3 4 1 2 3 4

2

7 8 5 6 7 8 5 6 10 9 11 12 9 10 11 12 14 13 14 15 16 13 15 16 Chaque image est coupée blocs de 8x8 pixels. Au lieu de transférer tous les 64 pixels, le

vecteur de mouvement (x, y) pour chaque bloc est transféré (d’après sa position précédente).

Image courante Image précédente

Par exemple : le bloc 1 n'a pas été déplacé et le bloc 2 a descendu en Y, etc.

Par exemple : le bloc 3 est trop différent et est donc re-transféré au complet.

INF3610 Systèmes embarqués

36

Reconnaissance de patron (BM)

• On cherche chaque bloc de 8x8 pixels de l’image courante dans une zone élargie de 16x16 pixels de l’image précédente (voir l’exemple sur le bloc 10)

p

de 16x16 pixels de l image précédente (voir l exemple sur le bloc 10) 1 3 4 1 2 3 4 2 7 8 5 6 7 8 5 6 10 9 11 12 9 10 11 12 Espace de recherche

du bloc 10 14 13 14 15 16 13 15 16

INF3610 Systèmes embarqués

37

Image courante Image précédente

Reconnaissance de patron (BM)8 pixels

16 pixels8 pixels

16 pixels

8 pi

xels

s

8 pi

xels

s

On peut démontrer qu’après 81 * 64

16 p

ixel

s

16 p

ixel

squ après 81 64 comparaisons (opérations), si l t ’

8 pixels16 pixels

8 pixels16 pixels

le patron n’a pas été trouvé, c’est qu’il

8 pi

xels

ls 8 pi

xels

ls

n’existe pas.

16 p

ixe

16 p

ixe

INF3610 Systèmes embarqués

38

Spécification d’un BM• On compare un patron de 8x8 pixels sur des blocs d’image p p p g

de 16x16 pixels (les pixels sont des tons de gris codés sur 8 bits). Il y a au maximum 81* 64 comparaisons

• Pour une image 1K x 1K divisée en 4096 blocs on aura 81Pour une image 1K x 1K divisée en 4096 blocs on aura 81 * 64 * 4096 comparaisons

• En supportant 30 images/sec. => 81 * 4096 * 64 * 30 comparaisons/sec 637 MOPScomparaisons/sec. 637 MOPS

• De nos jours, 637 MOPS est atteignable sur un Pentium 4. Mais supposons maintenant 60 images/sec sur un écran

l (24 bi ) 81 * 4096 * (64 * 3) * 60 3 822couleur (24 bits) => 81 * 4096 * (64 * 3) * 60 = 3.822 GOPS…

INF3610 Systèmes embarqués

39

De manière plus généraleDe manière plus générale

INF3610 Systèmes embarqués

40

4. Écart de la productivité4. Écart de la productivitéLogic Transistors/Chip

Transistor/Staff Month

58%/Y d

1B

10B

10M

100M

58%/Yr. compoundComplexity growth rate

1M

10M

100M

10K

100K

1M

21%/Yr compoundxx x

x xx

x

10K

100K

1M

100

1K

10K

21%/Yr. compoundProductivity growth rate

Source: SEMATECH

1K

10K

10

100

SEMATECH

100M logic gates in 90nm = Logic of 1000 ARM7’s I i t f S C 10M$ 100M$ d i t

INF3610 Systèmes embarqués

41

Increasing cost of SoC: 10M$ ~100M$ design costGracieuseté de STMicroelectronics

SolutionsSolutions

• Il faut faire de la réutilisation: logiciel (chap. 2) et matériel (chap. 3)

• Il faut exploiter le parallélisme (multicores et multiprocesseurs)Il faut exploiter le parallélisme (multicores et multiprocesseurs) et l’hétérogénéité (chap. 3)

• Il faut travailler à plus haut niveau d’abstraction (chap. 4)

INF3610 Systèmes embarqués

42

Parallélisme et hétérogénéitéParallélisme et hétérogénéité

ProcesseurARM 1

ProcesseurARM N Mémoire

Bus

Coprocesseur DCT

Coprocesseur SAD

Coprocesseur Q tifi tiDCT SAD Quantification

INF3610 Systèmes embarqués

43

Autre façon d’illustrer l’hétérogénéité…

INF3610 Systèmes embarqués

44Tiré de http://www.ida.liu.se/~petel/codesign/

Ou encore…

Codesign logiciel/matériel

INF3610 Systèmes embarqués

45

Finalement il ne faut pas oublier laFinalement il ne faut pas oublier la consommation de puissance…

INF3610 Systèmes embarqués

46