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.

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Információs függvények
Programozási feladatok
Az adatbázis kezelés alapjai
PLC alapismeretek.
Recovery (helyreállítás) feladatok gyakorlatra
Párhuzamos programozás (a fork/join és a parbegin/parend technika)
A MÉRŐESZKÖZÖK CSOPORTOSÍTÁSA
Objektum-orientált adatbázisok Alapfogalmak
Az MSZ EN villámvédelmi szabványsorozat 2
Memória típusok csoportosítása, jellemzése
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Matematika II. 3. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Geometriai modellezés
Bipoláris integrált áramkörök alapelemei
Szerkezeti leírás Összetevők és beültetésük Összetevők és beültetésük Általános kiosztás (generic map) Általános kiosztás (generic map) Generate parancs.
A térvezérelt tranzisztorok (JFET és MOSFET)
Csoportosítás megadása: Δx – csoport szélesség
Máté: Architektúrák14. előadás1 nn5n5 D1D1 D2D2 D3D3 D4D4 D5D
RISC – CISC RISC: Reduced Instruction Set Computer csökkentett utasításkészletű számítógép CISC: Complex Instruction Set Computer összetett utasításkészletű.
Máté: Architektúrák7. előadás1 RISC – CISC RISC: Reduced Instruction Set Computer csökkentett utasításkészletű számítógép CISC: Complex Instruction Set.
Minőségmenedzsment 9.előadás
Logikai ismeretreprezentáció Példák. Logikai műveletek igazságtáblája ABA’A * BA + B A  BA  B
TECHNOLÓGIA & KONSTRUKCIÓ
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
Utasítás végrehajtás lépései
Adatbázis rendszerek II
Tranzakciók gyakorlati anyag
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
a CPU gyorsítása, pipeline, cache
Halmazok Összefoglalás.
Adatbázis rendszerek II
Relációs algebra. A relációs adatbáziskezelő nyelvek lekérdező utasításai a relációs algebra műveleteit valósítják meg. A relációs algebra a relációkon.
Dinamikus elágazás jövendölés
A szingulett gerjesztett állapot dezaktiválódási csatornái E SS1S1 S2S2 T1T1 T2T2 ?
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 8
Számítógépes szimuláció A RITSIM-2000 rendszer ismertetése.
Výsledný odpor rezistorov zapojených vedľa seba. I V A U2U2 R2R2 – + U V I1I1 A V I1I1 A I2I2.
Az országos közúthálózat fejlesztése,
Egyszerű 16 bites processzor Jan Gray: XR16. Általános jellemzők Az FPGA-k komplexitása megengedi mikroprocesszoros alkalmazások megvalósítását xr16 Pipelined,
A 741-es műveleti erősítő belső kapcsolása
Lénárt Szabolcs Páll Boglárka
Fogyasztók az áramkörben
Zárthelyi feladat megoldása
Bipoláris integrált áramkörök alapelemei Elektronika I. BME Elektronikus Eszközök Tanszéke Mizsei János 2004.március.
Analóg alapkapcsolások
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 A bipoláris IC technológia.
Logika 4. Logikai összefüggések Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék március 3.
Analitikus geometria gyorstalpaló
A számítógép felépítése
Jel és adatvezetékek védelme, árnyékolások, tömítések.
A Mikroprocesszor Harmadik rész.
Normál feladat megoldása és érzékenységvizsgálata
1 Vektorok, mátrixok.
Készítette: Horváth Viktória
Módosított normál feladat
Parametrikus programozás
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Írja fel a tizes számrendszerbeli
ADATBÁZIS- RENDSZEREK 12. rész: Konkurenciavezérlés.
Kommunikáció és szinkronizáció. 1.) Kommunikáció: Lehetőség arra, hogy egyik folyamat befolyásolja a másik folyamat lefutását. Kommunikáció eszközei: közös.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK.
Fejlett pipeline megoldások IMSC 2019
Pipeline példák (IMSC, 2019).
Pipeline példák (Normál, 2019).
Cache példák 2019 (IMSC).
Előadás másolata:

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 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

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)

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

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)

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

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

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

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)

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

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

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

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

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

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

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

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)

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!

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

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

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

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)

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*

Pipeline feladatok 2

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)

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

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)

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

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

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)

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

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

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