4.Tétel Az adat-, a vezérlés és az erőforrás-függőségek Flashcards
Függőségek csoportosítása
-Adatfüggőségek: Egymást követő utasítások
ugyanazt az adatot használják.
-Vezérlés függőség: Feltétlen, vagy feltételes ugró
utasítások esetén.
-Erőforrás függőség: Utasítások ugyanazt az
erőforrást (VE)et akarják
használni.
Adatfüggőségek csoportosítása
Kép1
Műveleti adatfüggőség
kép2+kép3
Ál-adatfüggőség, WAR- write after read
A.) Probléma
( Szorzásnál:)
I1 mul r3r2r1
I2 add r2r4r5
Mit tehetünk, hogy ne írja felül a
következő operandus az előzőt?
MUL sokkal lassabb, ADD megelőzi!!
- szekvenciális feldolgozás -> nincsen gond
- párhuzamos feldolgozásnál viszont előfordulhat az I2 utasítás hamarabb fut le, mint az I1 -> az
add utasítás felülírhatja a mul utasítás bemenő operandusát.A két utasítás között függőség áll
fenn.
B.) Megoldás: Megszüntethető regiszter átnevezéssel r2 -> r27
átmeneti regiszter önálló, saját címtartománnyal.
I1 mul r3r2r1
I2 add r27r4r5
Extra hardver: átnevezési regiszterkészletet építettek be.
Az I2 utasításban szereplő cél operandust egy egészen más regiszterbe helyezzük (átmeneti
regisztertérbe) -> a két utasítás függetlenné vált.
WAW – Write After Write
A.) Probléma
I1 mul r3r2r1
I2 add r3r4r5
- Mindkét utasítás ugyan abba a regiszterbe ír.
- Párhuzamos feldolgozásnál az I2 utasítás hamarabb írhat az r3- as
regiszterbe, ami hibát eredményezhet.
B.) Megoldás: átnevezési regiszterkészlet bevezetése. (történhet statikusan és dinamikusan is)
I1 mul r3r2r1
I2 add r31r4r5
Ciklusbeli adatfüggőségek
A.) Probléma:
do I=2,n
X(I):=A(I)*X(I-1)+B(I)
end do
Valós függőség, az X I. eleme értékének meghatározásához
szükségünk van az X I-1. elemének értékére, ami párhuzamos
feldolgozás esetén még nincs kész.
A lassítás mértéke függ attól, hogy az X-nek melyik indexű értékére van szükség. A példában a
leginkább lassító eset szerepel, kevésbé lassít pl. az I-2 vagy I-3 stb.(2től N-ig megy a ciklus)
B.)
Kezelése: Algoritmus átalakítással.
Vezérlés függőségek
Feltétlen elágazás, késleltetett ugrás, statikus elágazás kezelés
kép4+
Statikus kezelés:
- NOP (no operation) utasítás a futószalag számától függően (JMP után tesszük be).
- Ez az ugrási rés, vagy buborék. o Kétfokozatú futószalagnál: 2-1=1 rés o Négyfokozatú
futószalagnál: 4-1=3 rés o N-fokozatú futószalagnál: n-1 rés
Lényege: Fölösleges utasításokat végzünk, de nem veszélyeztetjük a regiszter tartalmakat.
Kétfokozatú futószalag esetén. Minden JMP utasítás után beszúr egy NOP –ot
MUL
JMP címke
NOP
ADD
Címke SHL
+kép5
+kép6