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

Pipeline példák. Pipe 1. feladat Adott a következő utasítás sorozat i1: R0 MEM [R1+8] i2: R2 R0 * 3 i3: R3 MEM [R1+12] i4: R4 R3 * 5 i5: R0 R2 + R4 A.

Hasonló előadás


Az előadások a következő témára: "Pipeline példák. Pipe 1. feladat Adott a következő utasítás sorozat i1: R0 MEM [R1+8] i2: R2 R0 * 3 i3: R3 MEM [R1+12] i4: R4 R3 * 5 i5: R0 R2 + R4 A."— Előadás másolata:

1 Pipeline példák

2 Pipe 1. feladat Adott a következő utasítás sorozat i1: R0 MEM [R1+8] i2: R2 R0 * 3 i3: R3 MEM [R1+12] i4: R4 R3 * 5 i5: R0 R2 + R4 A pipeline 5 fokozatú IF: utasítás lehívás, ID: utasítás dekódolás, EX: végrehajtás MEM: memória hozzáférés, WB: regiszter visszaírás IFIDEXMEMWB

3 Pipe 1. feladat a. kérdés Adat-egymásrahatások. Megadás formája: függő: függés típusa( amitől függ) Típusok: –RAW: read after write –WAR: write after read –WAW: write after write i1: R0  MEM [R1+8] i2: R2  R0 * 3 i3: R3  MEM [R1+12] i4: R4  R3 * 5 i5: R0  R2 + R4 i1: - i2: RAW(i1) i3: - i4: RAW(i3) i5: RAW(i4), RAW(i2),WAW(i1),WAR(i2)

4 Pipe 1. feladat b. kérdés Ütemezés i1IFIDEXMEMWB i2IFIDA*EXMEMWBi3IFF*IDEXMEMWBi4IFA*IDEXMEMWB i5IFF*IDEXMEMWB i2-A*: i2-nek kell i1 eredménye, az csak MEM végén van meg, adatfüggés i3-F*:ID-t i2 foglalja, feldolgozási függés i4-A*:i4-nek kell i3 eredménye, MEM végén van meg, adatfüggés i5-F*:ID-t foglalja i4, feldolgozási függés

5 Pipe 1. feladat c. kérdés Forwarding i1IFIDEXMEMWB i2IFIDA*EXMEMWBi3IFF*IDEXMEMWBi4IFA*IDEXMEMWB i5IFF*IDEXMEMWB i2 az i1 eredményét (R0 értéke) a MEM/WB regiszterből veszi i4 az i3 eredményét (R3 értéke) a MEM/WB regiszterből veszi i5 az i4 eredményét (R4 értéke) az EX/MEM regiszterből veszi (nincs memória hivatkozás)

6 Pipe 1. feladat d. kérdés Végrehajtás pipeline-nal és anélkül –Pipeline: 11 egységnyi idő (feltöltéssel/kiürüléssel együtt) –Nélküle: – Összesen 22 egységnyi idő i15 i24 i35 i44 i54

7 Pipe 1. feladat e. kérdés Gyorsítás átrendezéssel Eredeti sorrend: i1: R0  MEM [R1+8] i2: R2  R0 * 3 i3: R3  MEM [R1+12] i4: R4  R3 * 5 i5: R0  R2 + R4 Átrendezve i1: R0  MEM [R1+8] i2: R3  MEM [R1+12] i3: R2  R0 * 3 i4: R4  R3 * 5 i5: R0  R2 + R4 Ezzel felszámoltuk az –eredeti jelöléssel- i2: RAW(i1) és az i4: RAW(i3) függőségek miatti várakozásokat Mivel a feldolgozási függéseket az adat függések okozták, azok is megszűnnek, így várakozás nélkül 9 egységnyi idő alatt végrehajtható a program

8 Pipe 2. feladat Adott a következő utasítás sorozat i1: R5  MEM [R3+24] i2: R6  MEM [R4+16] i3: R7  R6 + R5 i4: R8  R6 – R5 i5: R5  R7 * R8 I6: R4  R4 + 4 A pipeline 5 fokozatú IF: utasítás lehívás, ID: utasítás dekódolás, EX: végrehajtás MEM: memória hozzáférés, WB: regiszter visszaírás IFIDEXMEMWB

9 Pipe 2. feladat a. kérdés Adat-egymásrahatások. Megadás formája: függő: függés típusa(amitől függ) Típusok: –RAW: read after write –WAR: write after read –WAW: write after write i1: R5  MEM [R3+24] i2: R6  MEM [R4+16] i3: R7  R6 + R5 i4: R8  R6 – R5 i5: R5  R7 * R8 i6: R4  R4 + 4 i1: - i2:- i3: RAW(i1), RAW(i2) i4: RAW(i1).RAW(i2) i5: RAW(i3), RAW(i4),WAW(i1), WAR(i3), WAR(i4) i6: WAR(i2)

10 Pipe 2. feladat b. kérdés Ütemezés 18 i1 IFIDEXMEMWB A*i3IFIDEXMEMWB i2IFIDEXMEMWBi5IFIDEXMEMWBi4IFIDEXMEMWBF* i6IFIDEXMEMWB

11 Pipe 2. feladat c. kérdés Forwarding 18 i1 IFIDEXMEMWB A*i3IFIDEXMEMWB i2IFIDEXMEMWBi5IFIDEXMEMWBi4IFIDEXMEMWBF* i6IFIDEXMEMWB

12 Pipe 2. feladat d. kérdés Végrehajtás pipeline-nal és anélkül –Pipeline: 11 egységnyi idő (feltöltéssel/kiürüléssel együtt) –Nélküle: –Összesen 26 egységnyi idő i15 i25 i34 i44 i54 i64

13 Pipe 2. feladat e. kérdés Gyorsítás átrendezéssel Eredeti sorrend: i1: R5  MEM [R3+24] i2: R6  MEM [R4+16] i3: R7  R6 + R5 i4: R8  R6 – R5 i5: R5  R7 * R8 i6: R4  R4 + 4 Átrendezve i1: R5  MEM [R3+24] i2: R6  MEM [R4+16] i3: R4  R4 + 4 i4: R7  R6 + R5 i5: R8  R6 – R5 i6: R5  R7 * R8 Ezzel felszámoltuk az –eredeti jelöléssel- i3: RAW(i1), RAW(i2) és az i4: RAW(i1),RAW(i2) függés miatti várakozást Mivel a feldolgozási várakozást az adat függés miatti okozta, az is megszűnik, így várakozás nélkül 10 egységnyi idő alatt végrehajtható a program

14 Pipe 2. feladat e. kérdés Az ütemezés, forwardinggal 18 i1 IFIDEXMEMWB i3IFID EXMEM WB i2IFIDEXMEMWB i5 IFIDEXMEMWB i4IFIDEXMEMWB i6IFIDEXMEMWB

15 Pipe 3. feladat Adott a következő utasítás sorozat i1: D0  D1 * D2 i2: D3  D0 + D5 i3: MEM [R0 + 4]  D3 i4: MEM [R0 +12]  D0 D0~D5 regiszterek lebegőpontos számot, R0 egész számot tárol A lebegőpontos összeadás 4 időegységet, a szorzás 7 egységet, a többi művelet 1 időegységet késleltet. Az iterációs idő mindig 1 egység

16 Pipe 3. feladat A pipeline szerkezete IF ID EX MEMWB S0S1S2S3 M0M1M2M3M4M5M6 M0~M6: lebegőpontos szorzás S0~S3: lebegőpontos összeadás

17 Pipe 3. feladat a. kérdés Adat egymásra hatások. Megadás formája: függő: függés típusa(amitől függ) Típusok: –RAW: read after write –WAR: write after read –WAW: write after write i1: D0  D1 * D2 i2: D3  D0 + D5 i3: MEM [R0 + 4]  D3 i4: MEM [R0 +12]  D0 i1: - i2: RAW(i1) i3: RAW(i2) i4: RAW(i1)

18 Pipe 3. feladat b. kérdés Ütemezés i1IFIDM0 MEM WBM1M2M3M4M5M6A*i2IFIDA* S0S1S2S3 MEM WBF*i3IFIDF* A* F*EX MEM WBF* i4 IFID F* EX MEM WBF* Az EX helyett az ID-ben is lehet várakoztatni!

19 Pipe 3. feladat c. kérdés Gyorsítás átrendezéssel Eredeti sorrend: i1: D0  D1 * D2 i2: D3  D0 + D5 i3: MEM [R0 + 4]  D3 i4: MEM [R0 +12]  D0 Átrendezve i1: D0  D1 * D2 i2: D3  D0 + D5 i3: MEM [R0 +12]  D0 i4: MEM [R0 + 4]  D3 Távolabbra került a D3 miatti adatfüggésben érintett i2 és i3

20 Pipe 3. feladat d. kérdés Ütemezés átrendezés után i1IFIDM0 MEM WBM1M2M3M4M5M6A*i2IFIDA* S0S1S2S3 MEM WBF*i3IFIDF* EX MEM WBF* A*F*i4 IFID EX MEM WB i2: szüksége van i1 eredményére (D0 értéke), adat függés miatt várakozik i3: i2 foglalja az ID egységet, feldolgozási függés miatt várakozik i4: szüksége van i2 eredményére ( D3 értéke), adat függés miatt, azután i2 foglalja a MEM egységet, feldolgozási függés miatt

21 Pipe 4. feladat Adott a következő utasítás sorozat i1: D2  D0 * D1 i2: MEM [R0 + 0]  D2 i3: D2  D0 + D1 i4: MEM [R0 +8]  D2 D0~D2 regiszterek lebegőpontos számot, R0 egész számot tárol A lebegőpontos összeadás 4 időegységet, a szorzás 7 egységet, a többi művelet 1 időegységet késleltet. Az iterációs idő mindig 1 egység

22 Pipe 4. feladat a. kérdés Adat egymásra hatások. Megadás formája: függő: függés típusa(amitől függ) Típusok: –RAW: read after write –WAR: write after read –WAW: write after write i1: D2  D0 * D1 i2: MEM [R0 + 0]  D2 i3: D2  D0 + D1 i4: MEM [R0 +8]  D2 i1: - i2: RAW(i1) i3: WAW(i1),WAR(i2) i4: RAW(i3)

23 Pipe 4. feladat b. kérdés Ütemezés: i3 WB állapota nem előzheti meg i1 WB állapotát, mert ez hibás értéket adna D2-ben. Ezért i1IFIDM0 MEM WBM1M2M3M4M5M6 EX i2IFIDA* F* MEM WB A STORE műveleteket EX helyett az ID-ben is lehet várakoztatni! S0i3IFIDS1S2 MEM WBS3 A*/F* F*F*F*F*EX i4 IFID MEM WBF*F*F*F*F*F*F*F*

24 Pipeline feladatok 2

25 Pipe 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 a) Azonosítsuk a WAW és WAR adat függőségeket! i2: WAW(i1), RAW(i1) i4: WAR(i3) i6: WAW(i3), RAW(i3),RAW(i5) i3: RAW(i2) i5: RAW(i4) i6: RAW(i6)

26 Pipe 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 a)Azonosítsuk a WAW és WAR adat függőségeket! Rajzoljuk meg a prcecenciagráfot! Ha több függés van, mindet tüntessük fel! i2: WAW(i1),RAW(i1) i4: WAR(i3) i6: WAW(i3), RAW(i3),RAW(i5) i3: RAW(i2) i5: RAW(i4) WAW i1 i4 i3 i6 i2 i5 WAW RAW WAR RAW i7 RAW i7: RAW(i6) RAW

27 Pipe 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 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: i2: WAW(i1), RAW(i1) i4: WAR(i3) i6: WAW(i3), RAW(i3),RAW(i5) i3: RAW(i2) i5: RAW(i4) LogikaiFizikai R0U7 R1U3 D0T6 D1T2 D2T8 D3T1 D4T11 i7: RAW(i6)

28 Pipe 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) i4: WAR(i3) i6: WAW(i3), RAW(i3),RAW(i5) i3: RAW(i1) i5: RAW(i4) LogikaiFizikai R0U7 R1U3 D0T6 D1T2 D2T8 D3T1 D4T11 T12 U7 T13 T6 T14 T8 T13 T15 U3 T16T6 T15 T17 T14 T16 U3 T17 Log.Kezd.i1i2i3i4i5i6i7 R0U7 R1U3 D0T6 D1T2T12T13 D2T8T15 D3T1T16 D4T11T14T17 i7: RAW(i6) D1T12 D1T13 D4T14 D2T15 D3T16 D4T17

29 Pipe Feladat Átnevezés után: i1: T12  MEM [U7+0] i2: T13  T6 * T12 i3: T14  T8 / T13 i4: T15  MEM [U3+0] i5: T16  T6 + T15 i6: T17  T14 – T16 i7: MEM [U3]  T17 i2: RAW(i1) i4: - i6: RAW(i3),RAW(i5) i3: RAW(i2) i5: RAW(i4) i1 i4 i3 i6 i2 i5 RAW i7 RAW i7: RAW(i6) RAW

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

31 Pipe Feladat Legyen adott az alábbi utasítás sorozat: i1: D1  D2 – D3 i2: D4  D1 + D2 i3: D5  D4 + D1 i4: D0  D2 / D5 i5: D1  MEM [R0 + 0] i6: D4  D1 + D2 i7: D5  D4 + D1 Rajzoljuk fel az utasítások precedenciagráfját! i5: WAW(i1),WAR(i2),WAR(i3) i6: WAW(i2), WAR(i3),RAW(i5) i7: WAW(i3),WAR(i4),RAW(i6), RAW(i5) WAW i1 i4 i3 i6 i2 i5 WAW RAW WAR RAW i7 RAW WAR i2: RAW(i1) i3: RAW(i1),RAW(i2) i4: RAW(i3) WAW WAR RAW WAR

32 Pipe Feladat Legyen adott az alábbi utasítás sorozat: D1  D2 – D3 D4  D1 + D2 D5  D4 + D1 D0  D2 / D5 D1  MEM [R0 + 0] D4  D1 + D2 D5  D4 + D1 Regiszter átnevezéssel szüntessük meg a WAW és WAR függőségeket! Használjuk a T0,T1…Tn jelölést, és minden utasítás esetén nevezzünk át! T11 T12 T13 T14 T15 T16 T13 T17 T15 T11 LogikaiFizikai R0U4 D0T6 D1T2 D2T8 D3T1 D4T9 D5T10 T1T1T8T8 T8T8 T8T8 U4 T8T8 D1T11 D4T12 D5T13 D0T14 D1T15 D4T16 D5T17 Log.Kezd.i1i2i3i4i5i6i7 R0U4 D0T6T14 D1T2T11T15 D2T8 D3T1 D4T9T12T16 D5T10T13T17

33 Pipe Feladat Átnevezés után: D1  D2 – D3 D4  D1 + D2 D5  D4 + D1 D0  D2 / D5 D1  MEM [R0 + 0] D4  D1 + D2 D5  D4 + D1 T11 T12 T13 T14 T15 T16 T13 T17 T15 T11 T1T1T8T8 T8T8 T8T8 U4 T8T8 i2: RAW(i1) i3: RAW(i1),RAW(i2) i4: RAW(i3) i5: - i6: RAW(i5) i7: RAW(i6),RAW(i5) i1 i4 i3 i6 i2 i5 RAW i7 RAW A precedencia gráf két részre esett szét, azaz az i1~i4 és i5~i7 közötti utasítások párhuzamosan végrehajthatók


Letölteni ppt "Pipeline példák. Pipe 1. feladat Adott a következő utasítás sorozat i1: R0 MEM [R1+8] i2: R2 R0 * 3 i3: R3 MEM [R1+12] i4: R4 R3 * 5 i5: R0 R2 + R4 A."

Hasonló előadás


Google Hirdetések