Professional Documents
Culture Documents
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
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
C P
Mmoire instructions
RI
RI[6:10] A [ ] RI[11:15]
M U X
Registres
MEM/ER B
M U X
UAL
M U X
RI[16:31]
RI[0:5]
Instruction
Instruction
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
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
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.
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
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
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.)
DSP ddi une application Exemple : OakTech PM36 ddi la compression et la dcompression JPEG
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
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
25
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.
2 1 0
31
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.33
= 2.57
; 8 - 32 = -24
Architecture superscalaire
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
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
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
PIPELINE FLOTTANT
B:
= 3.75
Architecture VLIW
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.
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
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
= 4.5
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
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];
ASIP : Application Specific Instruction Processor On incorpore aussi beaucoup les ASIP avec les processeurs confirgurables
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
Exemple dASIP
Tensilica Xtensa
Les nouvelles instructions sont dcrites avec un langage nomm TIE Elles sont automatiquement ajoutes au pipeline.
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.