Sunteți pe pagina 1din 14

Paralelism la nivel de instruciune

for (i = 0; i <= 999; i = i + 1) x[i] = x[i] + y[i] Fiecare iteraie a ciclului poate fi suprapus cu orice alt iteraie Desfacerea unui ciclu poate fi fcut static e ctre co!pilator sau ina!ic e ctre "ar #are$ % alt alternati& ar fi s folosi! !a'ini ()*D sau +,-.uri (+rap"ics ,rocessin/ -nits)

Dependenele de date i hazardurile


,entru eter!inarea parelis!ului 'i cu! poate fi el exploatat este critic s eter!in! c0t parelis! exist 1ntr.un pro/ra! 'i cu! poate fi exploatat Dac 2 instruciuni sunt paralele3 ele pot fi executate si!ultan 1ntr.un pipe fr a cau4a stall.uri Dac 2 instruciuni sunt epen ete3 ele nu pot fi paralele 'i tre5uie executate 1n or ine

Dependenele de date
6xist 7 tipuri 1$ epen ene 2$ epen ene 7$ epen ene e epen ene8 e nu!e e ate e control

% instruciune 9 pre4int o epen en e ate fa e instruciunea i ac8 )nstruciunea i pro uce un re4ultat care poate fi utili4at e instruciunea j )nstruciunea j pre4int epen ene e ate fa e instruciunea k3 iar instruciunea k pre4int epen ene e ate fa e instruciunea i$

Exemplu
:oop8 :$D F03 0(;1) <<F0 este un 'ir e ele! =DD$D F>3 F03 F2 <<a u/are scalar 1n F2 ($D F>3 0(;1) <<!e!orare re4ultat D=DD-) ;13 ;13 ?.@ << ecre!entare pointer @ 5ytes AB6 ;13 ;23 :%%, <<salt ;1 C= ;2

Dependenele de date
Depen enele sunt proprieti ale programelor. Deter!inarea unui "a4ar 'i c0n un "a4ar /enerea4 un stall sunt proprieti ale or/ani4rii pipe.ului$ % epen en e at con&er/e ctre8 1$ ,osi5ilitatea unui "a4ar 2$ %r inea 1n care re4ultatele tre5uiesc calculate 7$ Du! un paralelis! poate fi exploatat

Dependenele de date
% epen en poate fi soluionat astfel8 1$ (e !enine epen ena ar se e&it "a4ar ul 2$ 6li!inarea epen enei prin transfor!area co ului % &aloare (o at) poate EcirculaF 1ntre instruciuni prin inter!e iul re/istrelor sau prin inter!e iul locaiilor e !e!orie Detectarea epen enelor 1n ca4ul re/istrelor este u'oar eoarece nu!ele re/istrelor este fix 1n ca rul instruciunilor Depen enele in ca rul locaiilor e !e!orie sunt !ai ificil e eter!inat eoarece 2 a rese pot referi aceea'i locaie e !e!orie ar coninutul ei este iferit

Dependenele de nume
% astfel e epen apare c0n 2 instruciuni utili4ea4 acela'i re/istru sau aceea'i locaie e !e!orie G ar nu exist flux e ate 1ntre instruciunile asociate acelui nu!e$ ,resupune! c instruciunea i prece e instruciunea j$ % antidependen 1ntre i 'i 9 apare c0n instruciunea j scrie un re/istru sau o locaie e !e!orie citit e instruciunea i$ % dependen de ieire apare c0n instruciunile i 'i j scriu acela'i re/istru sau aceea'i locaie e !e!orie % epen en e nu!e3 nu este o epen en a e&rat G nici o &aloare nu se trans!ite 1ntre instruciuni )nstruciunile i!plicate 1n astfel e epene pot fi executate si!ultan sau pot fi reor onate instruciunile

Hazarduri de date
;=H G or inea pro/ra!ului tre5uie !eninut (i prece e 9) pentru ca 9 s pri!easc &aloarea corect e la i$ H=H G epen en e tip output H=; G anti epen en$ Bu pot aprea 1n pipe.uri eoarece toate citirile se execut 1n )D iar scrierile se execut !ai t0r4iu 1n HA ;=; . nu este "a4ar

Dependene de control
% epen en e control eter!in or inea unei instruciuni i care respect un 5rac"$ Depen ena e control G 1n /eneral G tre5uie s pstre4e or inea pro/ra!ului$ )f p1 (1; )f p2 (2; (1 este epen ent e control pentru p1 'i si!ilar (2 pentru p2 Donstr0n/eri8 1$ % instruciune epen ent e control pe un 5ranc" nu poate fi !utat 1naintea 5ranc".ului 2$ % instruciune epen ent e control pe un 5ranc" nu poate fi !utat up 5ranc"$

Dependene de control
,strarea co!porta!entului e excepie presupune c orice execuie e instruciuni nu !o ific or inea e apariie a excepiilor 1n pro/ra!$ D=DD- ;23 ;73 ;> A6IJ ;23 :1 :H ;13 0(;2) :18 Dac nu se !enine epen ena e ate i!plicat e ;23 se poate !o ifica re4ultatul pro/ra!ului$ Dac se i/nor epen ena e control 'i se !ut instruciunea e :%=D 1nainte e 5ranc"3 instruciunea :%=D poate cau4a o excepie e !e!orie$ Kntre A6IJ 'i :H nu exist epen en e ate ci oar e control =L se pot intersc"i!5a cele 2 instruciuni 1ntre ele$

Dependene de control
Fluxul e ate G este fluxul &alorilor e ate actual prin instruciuni care pro uce re4ultate$ =ceste re4ultate sunt consu!ate tot e instruciuni Aranc".urile fac fluxul e ate ina!ic =L ele per!it s a&e! !ai !ulte surse e ate pentru o sin/ur instruciune$

B- 6(M6 (-F)D)6BM s !enine! epen ene e ate %r inea e execuie a pro/ra!ului este cea care eter!in ce pre ecesor &a oferi &alori unei instruciuni$

Dependene de control
D=DDA6IJ D(-A:8 %; ;13 ;23 ;7 ;>3 : ;13 ;N3 ;O P$$ ;Q3 ;13 ;@

Raloarea lui ;1 este utili4at e %; funcie e 5ranc" (M or F) Deci3 epen ena e ate sin/ur nu este suficient pentru a pstra corectitu inea$ )nstruciunea %; pre4int epen en e ate pentru D=DD- 'i D(-A-3 ar oar si!pla pstrare a or inii instruciunilor nu este suficient pentru o execuie corect a pro/ra!ului$

Dependene de control
D0teo at pute! eter!ina ac &iolarea epen enei e control &a afecta sau nu fluxul e ate sau co!portarea pe excepie$ D=DDA6IJ D(-AD=DDsSip8 %; ;13 ;23 ;7 ;123 sSip ;>3 ;N3 ;O ;N3 ;>3 ;9 ;Q3 ;@3 ;9

,resupune! c 'ti!8 . ;> al instruciunii D(-A- nu a fost utili4at up instruciunea %;$ Dac ;> nu a fost utili4at =L !o ificarea &alorii lui ;> 1nainte e 5ranc" nu poate afecta fluxul e ate (;> este E ea F) =L D(-A- nu poate /enera o excepie =L pute! !uta D(-A1nainte e 5ranc"

Dependene de control
Dac 5ranc".ul este M;-63 execuia lui D(-A- nu &a afecta re4ultatele pro/ra!ului$ =cest tip e planificare a co ului este tot o for! e speculaie$ Depen ena e control poate fi !eninut prin i!ple!entarea etectrii "a4ar urilor e control care cau4ea4 stall.uri e control$

S-ar putea să vă placă și