Vous êtes sur la page 1sur 66

Chapitre 3 : Introduction aux architectures de systmes embarqus

Schma gnral Architectures RISC et difficults (rappel) Architectures DSP Architectures SMP vs AMP Paralllisme dinstructions d instructions Architectures pour ILP (superscalaire et VLIW) Architectures ASIP A hit t (Application S ifi (A li ti Specific Instruction-Set Processor) Exemples dASIP (Librairie diamond cores) d ASIP
1 INF3610 Systmes embarqus

Schma gnral

2 INF3610 Systmes embarqus


S. Leibson, Designing SOCs with Configured Cores, Morgan Kaufman, 2006.

Architecture RISC (rappel)


Cycle d horloge court d'horloge Petit nombre de cycles/instruction Efficacit du pipeline d'instruction Comparaisons avec CISC (Complex Instruction-Set Computer) :
Pour diminuer les accs mmoires autrefois dispendieuses (de plus, on ne connaissait pas encore la mmoire cache). i it l i h ) Pour simplifier la construction des compilateurs. Instruction complexe en langage assembleur pour simplifier le mapping avec un langage de programmation de haut niveau. niveau Pipeline difficile raliser donc Ncpi > 1. N.B. Le CISC est rapparu avec le processeur configurable (RISC + DSP +VLIW + CISC)
3 INF3610 Systmes embarqus

Architecture RISC (rappel)


DLX peut tre ralis avec 5 tapes du pipeline: LI: lecture d'instruction DI: dcodage de l'instruction et lecture des registres : st uct o ectu e eg st es EX: excution et calcul de l'adresse effective (ralisation de l'opration indique par le code d'opration ou addition pour accs mmoire ou addition pour branchement/saut) i ddi i b h / ) MEM: accs mmoire ou fin de branchement (excution de l accs mmoire ou du branchement) l'accs ER: criture du rsultat dans le banc de registres

4 INF3610 Systmes embarqus

Architecture RISC (rappel)

5 INF3610 Systmes embarqus

Architecture RISC (rappel)

6 INF3610 Systmes embarqus

Le pipeline DLX
Adresse calcule Condition de branchement

LI/DI

DI/EX

EX/MEM

MEM/ER

4
ADD

M U X

NCP

Zro?

Branchement pris t i

Donne crire en registre

C P
Mmoire instructions
RI

RI[6:10] A [ ] RI[11:15]

M U X

Registres
MEM/ER B
M U X

UAL

Mmoire donnes Valeur charge Adresse


(DMC)

M U X

Donne crire tendre Imm

RI[16:31]

RI[0:5]

Instruction

Instruction

7 INF3610 Systmes embarqus


Donne crire en registre

Architecture RISC (rappel)


Objectif du concepteur: quilibrer la taille des tages du pipeline. L'acclration li L' l ti lie au pipeline = nombre d't i li b d'tages = 5 Remarques: La difficult principale de la technique du pipeline est ce qu'on appelle les alas du pipeline, en effet il existe des situations, appeles alas de donnes, qui empchent l'instruction suivante du flux d'instruction de s'excuter au cycle d'horloge qui lui est affect. 3 types alas: structurels, donnes et de contrle Par consquent, les alas rduisent la performance du pipeline (acclration infrieure 5) Les alas (ou dpendance) de donnes et de contrle sont ceux qui affectent lacclration de 5 (typiquement entre 3.5 et 5 selon la stratgie) 8

INF3610 Systmes embarqus

Regardons plus en dtail ces dpendances Dpendances de donnes


alas de type LAE (ADD dmarre avant que LD soit complt)
LD ADDD SD F0, F0 0(R1) F4, F0, F2 0(R1), F4

LD

F0, 0(R1) F4, F0, F4 F0 F2 0(R1), F4 F0, 0(R1) F4, F0, F2 0(R1), F4

antidpendances antidpendances alas de type EAL ( cause du dlai dexcution de lopration DIV, LD est complt avant que , p q le DIV soit complt).

DIV SD LD DIV SD

9 INF3610 Systmes embarqus

Regardons plus en dtail ces dpendances

LD

F0, 0(R1) F4, F0, F2 0(R1), F4 F0, 0(R1) F4, F0, F4 F0 F2 0(R1), F4

dpendances de sortie alas de type EAE alas (ADD termine avant DIV)

DIV SD LD ADD SD

10 INF3610 Systmes embarqus

Regardons plus en dtail ces dpendances LAE (lecture aprs criture): j essaie de lire la source avant que i ne l'ait crite: j obtient alors l'ancienne q valeur. C'est l'alas le plus frquent. EAL (criture aprs lecture): j essaie d'crire dans une destination avant qu'elle ne soit lue par i i obtient alors i. par erreur la nouvelle valeur. EAE (criture aprs criture): j essaie d'crire une ( p ) oprande avant qu'il ne soit crit par i. L'criture se fait alors dans le mauvais ordre, et laisse dans la destination la valeur crite par i plutt que celle crite par j j.

11 INF3610 Systmes embarqus

Regardons plus en dtail ces dpendances Dpendances de contrle


instruction1 possde une dpendance de contrle par rapport condition1 instruction2 possde une dpendance de contrle par rapport condition1 instruction3 possde une dpendance de contrle par rapport condition3
if (condition1) instruction1; else instruction2; if (condition3) instruction3;

Le compilateur doit analyser ces dpendances

12 INF3610 Systmes embarqus

Regardons plus en dtail ces dpendances Dpendances de contrle


instruction1 possde une dpendance de contrle par rapport condition1 instruction2 possde une dpendance de contrle par rapport condition1 instruction3 possde une dpendance de contrle par rapport condition3
... SUBI BEQZ LD ADDD SD SUBI BEQZ ... R1,R1,#8 R1, sortie F6,0(R1) F8,F6,F2 0(R1),F8 R1,R1,#8 R1, sortie

Le compilateur doit analyser ces dpendances

13 INF3610 Systmes embarqus

Processeurs DSP
Le DSP (Digital Signal Processor) est un microprocesseur spcialis pour les calculs intenses, notamment en traitement de signaux analogiques. Souvent darchitecture CISC
Multiprocessus Pipeline, superscalaire, VLIW

Il peut tre point flottant ou point fixe

14 INF3610 Systmes embarqus

Processeurs DSP
Architectures de type Harvard ou ddies pour plus de yp p p bande passante Oprations arithmtiques et logiques intenses
Dcalages Multiplication/accumulation (MAC) Accs des tables de valeurs prcalcules (lookup tables) p ( p )

Plusieurs bus avec mmoires de donnes et d'instructions. Bande passante trs leve au niveau des ports dE/S (ex. utilisation d'un DMA avec un grabber d'images)
15 INF3610 Systmes embarqus

Architecture de Von Neumann vs Harvard


Instruction I t ti Donnes

Larchitecture de von Neumann ne permet quun seul accs mmoire par cycle
INF3610 Systmes embarqus

Avec une architecture Harvard, le , programme et les donnes sont spars sur au moins deux bus

16

Processeurs DSP
E. g. deux types de DSP g yp
Architecture ddie un algorithme spcifique (FIR, CODEC gnral, etc.) Architecture ddie une application particulire (tlcom., MPEG4, etc.)

Domaines dapplication d application


Audio (tlphonie, modem, MP3, etc.) Image statique (JPEG, filtrage, reconnaissance, etc.) Vido (MPEG, compression, etc.)

17 INF3610 Systmes embarqus

Processeurs DSP : Benchmarks


La compagnie Berkely Design Technology Inc. p g y g gy (BDTI) a dvelopp (en 1998) une mthodologie pour comparer les processeurs DSP partir dun groupe gro pe dalgorithmes t piq es nomm BDTI typiques BDTIBenchmarks cods directement en assembleur. La mtrique qui se nomme BDTImark prend le temps dexcution de chaque BDTI-Benchmark et retourne une valeur unique rsultante. Plus dinformations sur les produits rcents
BDTI Independant DSP Analysis http://www.bdti.com
18 INF3610 Systmes embarqus

Processeurs DSP : Rsultats de performance


Note: ARM7TDMI/Piccolo ARM7TDMI/Pi l : 14 Intel Pentium : 26 PowerPC 604 : 66

19 INF3610 Systmes embarqus

DSP ddi un algorithme


Architecture pour un FIR TMS320C10

Ref sur FIR: http://www.netrino.com/Embedded-Systems/How-To/Digital-Filters-FIR-IIR p y g


20 INF3610 Systmes embarqus

DSP ddi une application Exemple : OakTech PM36 ddi la compression et la dcompression JPEG

21 INF3610 Systmes embarqus

Processeur ddi une application


Exemple : Motorola C-5 DCP ddi au traitement des grands rseaux

22 INF3610 Systmes embarqus

Comparaisons entre RISC et DSP


RISC gnraux
Orient registre Instructions gnrales Beaucoup de registres gnraux Mmoire cache sur la puce

DSP
Orient mmoire (la plupart d temps) pl part du Jeu dinstructions ddi ou spcialis Registres gnraux et spcialiss RAM et ROM sur la puce

23 INF3610 Systmes embarqus

Comparaisons entre RISC et DSP


Exemples dinstructions spcialises: p p
Zero-overhead looping : le processeur peut excuter une boucle sans perdre de cycles pour
tester la valeur du compteur de boucles; brancher au dbut du corps de boucle et dcrmenter le compteur de boucles;

Ad Adressage spcialis: i li
adressage circulaire (FIR) adressage bit-reversed (FFT)

Registres spcialiss
Compteurs Dcalage 6 bits supplmentaire (registre 38 bits) g pp ( g ) Fentre de registres
24 INF3610 Systmes embarqus

Comparaisons entre RISC et DSP


De plus, les compilateurs RISC sont en gnral plus dous pour expliter le paralllisme dinstructions (mcanismes raffins pour les alas) alors qu'avec les DSP les compilateurs sont moins efficaces (plus payant de dvelopper un compilateur C/C++ pour un processeur dusage gnral que pour un DSP particulier). L gestion d i t La ti des interruptions est aussi plus sophistique ti t i l hi ti dans le RISC. Beaucoup de fabricants combinent maintenant RISC et DSP dans la mme architecture
ARM7TDMI Cortex-A8 Tensilica Xtensa MicroBlaze, etc.
INF3610 Systmes embarqus

25

Comparaisons entre RISC et DSP


Choix du processeur selon les besoins de lapplication

26 INF3610 Systmes embarqus

Architecture SMP vs AMP


SMP (architectures symtriques) ( y q )
o Architecture de processeurs identiques partageant le mme espace mmoire o E.g., un OS partag contrle tous les processeurs et permet lexcution de nimporte quel tche ou application sur nimporte l li ti i t lequel d t eux. l dentre o Plusieurs processeurs plus basse frquence quun seul gros haute frquence:

27 INF3610 Systmes embarqus

Architecture SMP vs AMP

Exemple darchitecture SMP: 4 processeurs de ARM sur la mme puce


28

INF3610 Systmes embarqus

Architecture SMP vs AMP


AMP (architectures asymtriques ou htrognes) ( y q g )
o Permet daugmenter les performances par rapport aux architectures symtriques grce lutilisation des l utilisation processeurs spcialiss dans le type de tches raliser o E gnral on va retrouver d processeurs d En l t des dusage gnral et des processeurs DSP. La page suivante prsente larchitecture du SoC DaVinci TMS32DM365TM de Texas Instruments ddis aux systmes multimdias
29 INF3610 Systmes embarqus

Architecture SMP vs AMP

Exemple d architecture AMP: 2 ARM CortexTM-A9 + darchitecture A9 plusieurs coprocesseurs pour le traitement dimages
INF3610 Systmes embarqus

30

Paralllisme dinstruction
Paralllisme dinstructions (ILP)
Il faut trouver des squences dinstructions d instructions indpendantes qui se recouvriront dans le pipeline.

Trs efficace au niveau du point flottant Exemple avec 2 techniques doptimisation


Ordonnancement simple Droulage des boucles

for (i=1; i<=1000; i++) x[i] = x[i] + s;

Latence FP ALU FP-ALU LD SD

2 1 0
31

Rf.: Computer Architecture, A Quantitative Approach, H&P, 1996. p228-251

INF3610 Systmes embarqus

Technique doptimisation pour le point flottant - 1


Code DLX sans optimisation B: LD ADDD SD SUBI BNEZ F0, 0(R1) F4, F0, F4 F0 F2 0(R1), F4 R1, R1, #8 R1, B ; ; ; ; ; chargement element vecteur x[i] = x[i] + s; [i] [i] ranger pointeur (double-mot) R1 <> 0

Analyse B: LD F0, 0(R1) suspension ADDD F4 F0 F2 F4, F0, suspension suspension SD 0(R1), F4 SUBI R1, R1, #8 BNEZ R1, B suspension 1 2 3 4 5 6 7 8 9

1 it ti itration = 9 cycles l 1000 itrations = 9000 cycles

Rf.: Computer Architecture, A Quantitative Approach, H&P, 1996. p228-251

32 INF3610 Systmes embarqus

Technique doptimisation pour le point flottant - 2


Ordonnancement B: LD F0, 0(R1) suspension i ADDD F4, F0, F2 SUBI R1, R1, #8 BNEZ R1, B SD 8(R1), F4 1 2 3 4 5 6

1 itration = 6 cycles 1000 itrations = 6000 cycles y A = 9000/6000 = 1.5

Rf.: Computer Architecture, A Quantitative Approach, H&P, 1996. p228-251

33 INF3610 Systmes embarqus

Technique doptimisation pour le point flottant - 3


Droulage de la boucle pour 4 itrations B: LD ADDD SD LD ADDD SD LD ADDD SD LD ADDD SD SUBI BNEZ F0, F0 0(R1) F4, F0, F2 0(R1), F4 F6, -8(R1) F8, F6, F2 -8(R1), F8 F10, -16(R1) F12, F10, F2 -16(R1), F12 F14, -24(R1) F16, F14, F2 -24(R1), F16 24(R1) R1, R1, #32 R1, B ; retrait des SUBI et ; BNEZ chaque ; itration

1 itration = 250 itrations = A = 9000/6750

27 cycles 6750 cycles

= 1.33

Rf.: Computer Architecture, A Quantitative Approach, H&P, 1996. p228-251

34 INF3610 Systmes embarqus

Technique doptimisation pour le point flottant - 4


Droulage + Ordonnancement B: LD LD LD LD ADDD ADDD ADDD ADDD SD SD SD SD SUBI BNEZ SD F0, F0 0(R1) F6, -8(R1) F10, -16(R1) F14, -24(R1) F4, F0, F2 F8, F6, F2 F12, F10, F2 F16, F14, F2 0(R1), F4 -8(R1), F8 -16(R1), F12 -24(R1), F16 R1, R1, #32 R1, B 8(R1), F16

1 itration = 250 itrations = A = 9000/3500

14 cycles 3500 cycles

= 2.57

; 8 - 32 = -24

Rf.: Computer Architecture, A Quantitative Approach, H&P, 1996. p228-251

35 INF3610 Systmes embarqus

Architectures pour ILP (Superscalaire et VLIW)


Ide: Excuter plus dune instruction par cycle Impact: CPI < 1 ! Solutions:
plusieurs pipelines travaillent en parallle sur plusieurs instructions

Architecture superscalaire

Architecture VLIW (Very Long Instr. Word)


Une seule instruction effectue plusieurs traitements

36 INF3610 Systmes embarqus

Exemple de superscalaire (PPC 440)

37 INF3610 Systmes embarqus

Architecture superscalaire Plusieurs pipelines en parallle Ordonnancement dynamique selon le cours de lexcution Exemple pour 2 pipelines:
INSTRUCTION ENTIRE FLOTTANT ENTIRE FLOTTANT ENTIRE FLOTTANT
LI LI DI DI LI LI EX E1 DI DI LI LI ME E2 EX E1 DI DI WB E3 ME E2 EX E1 WB E3 ME E2 WB E3 En ME WB En ME WB En ME WB

38 INF3610 Systmes embarqus

Architecture superscalaire Exemple: Parallliser:


B: LD ADDD SD SUBI BNEZ F0,0(R1) F4,F1,F2 F4 F1 F2 0(R1), F4 R1, R1, #8 R1, B

Problme: Le microprocesseur ne peut pas rsoudre tous les alas de donnes. Solution: S l ti Trouver un ordonnancement droul sans dlai ni suspension quon peut sparer sur 2 pipelines. p q p p pp
39 INF3610 Systmes embarqus

Architecture superscalaire Le calcul de laddition se fait en 3 cycles Au moins 3 itrations doivent tre droules Pour 1000 lments (ou 200 itrations)
1 itration = 200 itrations = A = 9000/3400 17 cycles 3400 cycles

= 2.65

B: LD LD LD LD LD ADDD ADDD ADDD ADDD ADDD SD SD SD SD SUBI BNEZ SD

F0,0(R1) F6,-8(R1) F10, 16(R1) F10,-16(R1) F14,-24(R1) F18,-32(R1) F4,F0,F2 F8,F6,F2 F12,F10,F2 F16,F14,F2 F20,F18,F2 , , 0(R1),F4 -8(R1),F8 -16(R1),F12 -24(R1),F16 24(R1) F16 R1, R1, #40 R1, B -32(R1),F16
40

INF3610 Systmes embarqus

Architecture superscalaire PIPELINE ENTIER


B: LD LD LD LD LD SD SD SD SD SUBI BNEZ SD F0,0(R1) F0 0(R1) F6,-8(R1) F10,-16(R1) F14,-24(R1) F18,-32(R1) 0(R1),F4 -8(R1),F8 -16(R1) F12 16(R1),F12 -24(R1),F16 R1, R1, #40 R1, B -32(R1),F16

PIPELINE FLOTTANT
B:

ADDD ADDD ADDD ADDD ADDD

F4,F0,F2 F8,F6,F2 F12,F10,F2 F16,F14,F2 F20,F18,F2

1 itration = 200 itrations = A = 9000/2400

12 cycles 2400 cycles

= 3.75

41 INF3610 Systmes embarqus

Architecture VLIW

42 INF3610 Systmes embarqus

Architecture VLIW
Une architecture VLIW utilisent plusieurs units fonctionnelles indpendantes. Plutt que dessayer de lancer plusieurs instructions indpendantes vers les units, une VLIW met plusieurs oprations dans une seule instruction trs longue, do son nom.

43 INF3610 Systmes embarqus

VLIW Voir aussi:


http://marcel.developpez.com/cours/systeme/architectureordinateur/html/node222.html

44 INF3610 Systmes embarqus

Architecture VLIW Ordonnancement statique le compilateur cherche plusieurs instructions indpendantes et les encode en une seule Des units spciales excutent chaque dinstruction Exemple:
LD F0,0(R1) || LD F6,-8(R1) || ADDD F10,F12,F16 || 0,0( ) 6, 8( ) 0, , 6 ADDD F11,F13,F17 || bnez r1,b || sub r2,r2,#1

45 INF3610 Systmes embarqus

Architecture VLIW
UNIT TRANSFERT 1 LD F0,0(R1) LD F10,-16(R1) LD F18 -32(R1) F18, 32(R1) UNIT TRANSFERT 2 LD F6,-8(R1) LD F14,-24(R1) ADDD F4 F0 F2 F4,F0,F2 ADDD F12,F10,F2 ADDD F20,F18,F2 -ADDD F8 F6 F2 F8,F6,F2 ADDD F16,F14,F2 --SUBI R1, R1, #40 BNEZ R1, B UNIT EXCUTION 1 UNIT EXCUTION 2

UNIT ENTIRE

-SD 0(R1),F4 SD -16(R1),F12 SD -32(R1),F16

-SD -8(R1),F8 SD -24(R1),F16

1 itration = 200 itrations = A = 9000/2000

10 cycles 2000 cycles

= 4.5

46 INF3610 Systmes embarqus

Exemple de p VLIW (TMS320C6472)

47 INF3610 Systmes embarqus

Version AMP (ARM + VLIW dans la famille DaVinci de TI)

Oriente pour le traitement vido

48 INF3610 Systmes embarqus

Attention il y a une limite drouler les boucles et vouloir tout parallliser: paralllisme de boucle Litration 1 indpendante de l itration litration 2 A[i] de l itration 2 dpend de litration A[i+1] de litration 1
for (i=1; i<=1000; i++) x[i] = x[i] + s;

Paralllisme impossible car les bouc es doivent sexcuter dans o d e boucles do e t s e cute da s lordre

for (i=1; i<=100; i++){ ( ; ; ){ A[i+1]= A[i] + C[i]; B[i+1]= B[i] + A[i+1]; }

for (i=1; i<=100; i++){ B[i] de litration 2 dpend de A[i] = A[i] + B[i]; B[i+1] B[i 1] de l itration 1 litration B[i+1] B[i+1]= C[i] + D[i]; } Sauf quil ny a pas de dpendance circulaire

49 INF3610 Systmes embarqus

Il y aussi les dpendances de donnes travers les itrations de boucle: paralllisme de boucle B[i] de litration 2 dpend de B[i+1] de l itration 1 litration
Sauf quil ny a pas de dpendance circulaire for (i=1; i<=100; i++){ A[i] = A[i] + B[i]; B[i+1]= C[i] + D[i]; }

Aprs transformation

A[1] = A[1] + B[1] for (i=1; i<=99; i++){ B[i+1] = C[i] + D[i]; [ ] [ ] [ ] A[i+1] = A[i+1] + B[i+1]; } B[101] = C[100]+D[100];

Travail du compilateur : minimiser les dpendances

50 INF3610 Systmes embarqus

ASIP : Application Specific Instruction Processor


Type darchitecture RISC, DSP, superscalaire, VLIW configurable qui permet d j fi bl i dajouter ou d l denlever d des composants (et mme des instructions) pour mieux sadapter une application. On parle darchitecture la p pp p carte.

51 INF3610 Systmes embarqus

ASIP : Application Specific Instruction Processor


Un noyau (core ou kernel) est toujours inclus, et de d multiples composants sajoutent ce noyau. lti l t j t t En gnral, moins de matriel, dissipation de pu ssa ce o s g a de, o s puissance moins grande, moins de dpendance dpe da ce face aux fournisseurs externes Manque au niveau support logiciel, en particulier a demande des compilateurs adapts (retargetability). Voir la liste de ASIP (core) http: //www.bdti.com/pocket/pocket.htm

52 INF3610 Systmes embarqus

ASIP : Application Specific Instruction Processor On incorpore aussi beaucoup les ASIP avec les processeurs confirgurables

53 INF3610 Systmes embarqus

Exemple dASIP
Tensilica Xtensa
http://www.tensilica.com

Microprocesseur RISC 32 bits, pipeline 5 tages, Haute performance, faible consommation de puissance Configurable plusieurs niveaux
Cache, bus, coprocesseurs DSP, etc. 0 32 niveaux dinterruptions d interruptions 0 3 timers DSP, Unit FP, MAC, MULs

Jeu dinstructions extensible


Intructions dfinies par lusager avec le langage TIE

Interface graphique pour la cration du ASIP


54 INF3610 Systmes embarqus

Exemple dASIP
Tensilica Xtensa

55 INF3610 Systmes embarqus

Ajout dinstructions dans le Xtensa

Les nouvelles instructions sont dcrites avec un langage nomm TIE Elles sont automatiquement ajoutes au pipeline.

56 INF3610 Systmes embarqus

Rsultats dun XTensa sur MPEG4

Accelerating (MPEG-4) Video Decoding with an XTensa Processor, Application Note sur www.tensilica.com
57 INF3610 Systmes embarqus

Librairie Diamond Core de Tensilica Ce n est pas toutes les compagnies qui osent nest se lancer dans la conception dinstructions spcialises. spcialises La compagnie Tensilica offre donc une librairie de noyaux de processeurs dj optimise, allant du simple processeur de contrle au complexe processeur DSP DSP.

58 INF3610 Systmes embarqus

Librairie Diamond Core de Tensilica

S. Leibson, Designing SOCs with Configured Cores, Morgan Kaufman, 2006.


59 INF3610 Systmes embarqus

60 INF3610 Systmes embarqus

Librairie Diamond Core de Tensilica

61 INF3610 Systmes embarqus

Noyau 212GP et 108Mini

62 INF3610 Systmes embarqus

Noyau 330 HiFi

63 INF3610 Systmes embarqus

Noyau 330 HiFi

64 INF3610 Systmes embarqus

Noyau 545CK DSP

65 INF3610 Systmes embarqus

Noyau 545CK DSP

66 INF3610 Systmes embarqus