Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fejlett pipeline megoldások IMSC 2019

Hasonló előadás


Az előadások a következő témára: "Fejlett pipeline megoldások IMSC 2019"— Előadás másolata:

1 Fejlett pipeline megoldások IMSC 2019

2 Pipe-2 1.1. Feladat Legyen adott az alábbi utasítás sorozat:
i1: D1MEM [R0+0] i2: D1D0 * D1 i3: D4D2 / D1 i4: D2MEM [R1+0] i5: D3D0 + D2 i6: D4D4 – D3 i7: MEM [R1]D4 i2: WAW(i1) i3: RAW(i1) i4: WAR(i3) i5: RAW(i4) i6: WAW(i3), RAW(i3),RAW(i5) i7: RAW(i6) a) Azonosítsuk a WAW és WAR adat függőségeket!

3 Pipe-2 1.1. Feladat Legyen adott az alábbi utasítás sorozat:
i1: D1MEM [R0+0] i2: D1D0 * D1 i3: D4D2 / D1 i4: D2MEM [R1+0] i5: D3D0 + D2 i6: D4D4 – D3 i7: MEM [R1]D4 i1 WAW i2 RAW RAW i3 i2: WAW(i1),RAW(i1) WAR i4 i3: RAW(i1) WAW RAW i4: WAR(i3) RAW i6 i5: RAW(i4) RAW i5 i6: WAW(i3), RAW(i3),RAW(i5) RAW i7: RAW(i6) i7 a) Rajzolja fel az utasítások precedenciagráfját! Az éleket cimkézze fel az egymásrahatások típusának megfelelően (RAW/WAR/WAW)! Ha két utasítás között több egymásrahatás is van, tüntesse fel mindet!

4 Pipe-2 1.1. Feladat Legyen adott az alábbi utasítás sorozat:
i1: D1MEM [R0+0] i2: D1D0 * D1 i3: D4D2 / D1 i4: D2MEM [R1+0] i5: D3D0 + D2 i6: D4D4 – D3 i7: MEM [R1]D4 i2: WAW(i1) i3: RAW(i1) i4: WAR(i3) i5: RAW(i4) i6: WAW(i3), RAW(i3),RAW(i5) i7: RAW(i6) b) Szüntesse meg a WAW és WAR adat-egymásrahatásokat regiszter átnevezés segítségével! A regiszter átnevezést végezze el minden utasításra szisztematikusan! A lebegőpontos fizikai regisztereket jelölje T0, T1, T2, . . ., az egész típusú fizikai regisztereket U0, U1, U2, A regiszterleképző tábla tartalma kezdetben: Logikai Fizikai R0 U7 R1 U3 D0 T6 D1 T2 D2 T8 D3 T1 D4 T11

5 Pipe-2 1.1. Feladat Legyen adott az alábbi utasítás sorozat:
Logikai Fizikai R0 U7 R1 U3 D0 T6 D1 T2 D2 T8 D3 T1 D4 T11 1.1. Feladat Legyen adott az alábbi utasítás sorozat: i1: D1MEM [R0+0] i2: D1D0 * D1 i3: D4D2 / D1 i4: D2MEM [R1+0] i5: D3D0 + D2 i6: D4D4 – D3 i7: MEM [R1]D4 T12 U7 T13 T6 T12 T14 T8 T13 T15 U3 D1 T12 T16 T6 T15 D1 T13 T17 T14 T16 D4 T14 U3 T17 D2 T15 D3 T16 Log. Kezd. i1 i2 i3 i4 i5 i6 i7 R0 U7 R1 U3 D0 T6 D1 T2 T12 T13 D2 T8 T15 D3 T1 T16 D4 T11 T14 T17 D4 T17

6 Pipe-2 1.1. Feladat c) A függőségek és a precedencia gráf az átnevezések után: i1: D1MEM [R0+0] i2: D1D0 * D1 i3: D4D2 / D1 i4: D2MEM [R1+0] i5: D3D0 + D2 i6: D4D4 – D3 i7: MEM [R1]D4 T12 U7 i2: RAW(i1) T13 T6 T12 i3: RAW(i2) T14 T8 T13 T15 U3 i1 RAW i5: RAW(i5) i2 T16 T6 T15 i6: RAW(i3),RAW(i5) T17 T14 T16 RAW U3 T17 i6: RAW(i6) i3 i4 RAW RAW i6 RAW i5 RAW i7

7 2. feladat Legyen adott az alábbi utasítássorozat:
i1: R2  MEM [R0+0] i2: R3  R0 * R2 i3: R8  R4 / R3 i4: R5  MEM [R1+8] i5: R6  R2 + R5 i6: R9  R5 / R6 i7: R10  R6 * R9 Az utasítássorozatot lefordítjuk egy olyan VLIW processzorra, melyben az alábbi utasítások helyezhetők el egy utasításcsoportban: 2 db memóriaművelet (végrehajtási idő: 3 órajel, iterációs idő 1 órajel) 2 db egész aritmetikai művelet, vagy ugró utasítás (végrehajtási idő: 1 órajel)

8 a) Ütemezze a megadott utasítássorozatot a megadott VLIW processzoron
a) Ütemezze a megadott utasítássorozatot a megadott VLIW processzoron! Határozza meg az utasításcsoportok tartalmát, és a csoportok végrehajtásának idejét! Függőségi gráf i1 i4 i6 i2 i5 A ki nem töltött helyekre NOP értendő! i3 i7 i1: R2  MEM [R0+0] i2: R3  R0 * R2 i3: R8  R4 / R3 i4: R5  MEM [R1+8] i5: R6  R2 + R5 i6: R9  R5 / R6 i7: R10  R6 * R9 Mem1 Mem2 Int1 Int2 1 i1 i4 2 3 4 i2 i5 5 i3 i6 6 i7

9 b) Mennyivel gyorsabb az így kapott program, mintha hagyományos 1-utas processzoron futtatnánk (pipeline nélkül)? Ha egyszerűen összeadjuk minden utasítás végrehajtási idejét, 11 jön ki, szemben az előző pontban, a VLIW megoldásra kiszámolt 6 órajellel.

10 c) Hány utasításcsoportot állít elő a fordító klasszikus, és hányat dinamikus VLIW architektúra esetén? A klasszikus nem képes egymásrahatásokat kezelni, tehát a fordítónak kell a NOP sorokat is generálni, vagyis 6 csoport lesz, dinamikusnál az egymásra hatásokat a processzor kezeli, nem kell a NOP sorokat generálni, tehát 4 utasításcsoport lesz.

11 4 ugrást követ, 2 bites az állapotgép tehát a PHT 8 bites.
Elágazásbecslés 3. feladat A processzor a program végrehajtása közben az alábbi sorrendben, az alábbi címeken lévő feltételes ugró utasításokat értékeli ki (a zárójelben ”T” jelzi, ha az ugrás ténylegesen bekövetkezett, és ”N”, ha nem): • 464 (T), 543 (N), 777 (N), 543 (N), 777 (N), 464 (T), 777 (N), 464 (T), 543 (T) A processzor egyszerű, 2 bites állapotgépre alapozott dinamikus elágazásbecslést használ, és 4 ugró utasítást tud követni. a) Hány bites az állapotgép? 4 ugrást követ, 2 bites az állapotgép tehát a PHT 8 bites. nem ugrott Nem ugrik 00 01 10 11 Ugrik ugrott

12 b) Írja fel a PHT tartalmát minden egyes feltételes ugrás végrehajtása után! Jelezze, hogy a becslő eltalálta-e az ugrás kimenetelét! Kezdetben minden állapotgép értéke 1. 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 M1 M2 M3 S/H

13 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

14 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

15 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

16 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

17 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

18 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

19 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

20 464(T) 543(N) 777(N) 543(T) %4 3 1 M0 2 M1 M2 M3 S/H H S

21 4. feladat Globális PHT, globális BHR, 2 bites, utolsó két ugrás eredményét tárolja, léptető regiszter, tartalma indexeli a PHT-ket Ugrás esetén a BHR-be a 1 lép be, nem ugrásnál 0 a) Hány bitet foglal el a PHT? BHR 2 bit, 4 értéket tud tárolni, mindegyikhez tartozik egy 2 bites állapotgép, vagyis a PHT 4*2=8 bites

22 b) Feltételes ugrások címei, (T) ha teljesült, (N) ha nem
1 M1 M2 M3 S/H BHR 11 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H BHR 11

23 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H BHR 11 10 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00

24 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00

25 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00 01 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00 01

26 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00 01 464(T) 543(N) 777(N) 543(T) M0 1 M1 M2 M3 2 S/H H S BHR 11 10 00 01

27 Elágazásbecslés 5. Feladat
a) Átlagosan hány ciklusonként végez a pipeline egy utasítás végrehajtásával? Utasítás 0,85 Nem ugró Késl=0,85*0+0,15*0,1*4+0,15*0,9*0,9* ,15*0,9*0,1*3=0,1005 Átlagosan 1,1005 ciklusonként végez 0,15 Ugró 0,1 Nincs benne 4 Találat 0,9 0,9 Benne van Nem Találat 3 0,1

28 Elágazásbecslés 5. Feladat
b) Hogy viszonyul az eredmény a BTB nélküli esethez, amikor minden ugró utasítás egységesen 2 szünet beiktatását vonja maga után? Ebben az esetben az eredmény: = 1.3 ciklus/utasítás, vagyis lassabb, mint BTB-vel.


Letölteni ppt "Fejlett pipeline megoldások IMSC 2019"

Hasonló előadás


Google Hirdetések