Fejlett pipeline megoldások IMSC 2019

Slides:



Advertisements
Hasonló előadás
Alaplap.
Advertisements

Rendszertervezés Hardver ismeretek.
Memóriák típusai, jellemzői
A számítógép felépítése
CUDA.
Párhuzamos programozás (a fork/join és a parbegin/parend technika)
ARM tanfolyam 1. előadás.
A mikroprocesszor 1. rész.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Mutatók, tömbök, függvények
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
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
PIC processzor és környezete
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!’
A memória.
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
Egy egyszerű gép vázlata
a CPU gyorsítása, pipeline, cache
A mikrovezérlők világa
Egy harmadik generációs gép (az IBM 360) felépítése
Hardvereszközök Hardvereszközök I.rész. Hardvereszközök CPU Memóri a Input Háttértárolók Outpu t A számítógép felépítési elve Neumann elvek: 1.Soros utasításvégrehajtás.
Mikrokontroller (MCU, mikroC)
Operátorok Értékadások
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Java programozási nyelv Vezérlési szerkezetek
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
A Mikroprocesszor Harmadik rész.
Mikroprocesszor.
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.
Készítették: Turai Krisztina és Csaja Eszter Natália 9.a
Írja fel a tizes számrendszerbeli
Mikroprocesszorok Működés.
IT ALAPFOGALMAK HARDVER.
Memória példák Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1-DRAM-ra épül, melyben a burst.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
A processzorok (CPU).
7. Multiplikatív műveletek:  : szorzás / : osztás
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
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.
Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla.
PIC mikrokontroller.
Azaz a számítógép „agya” Készítette: Balázs Gergő
A CPU (központi feldolgozó egység vagy processzor)
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
Memóriakezelés feladatok A jegyzet 2015-ös változata szerinti számozással.
Sz&p prof.
CPU (Processzor) A CPU (Central Processing Unit – Központi Feldolgozó Egység) a számítógép azon egysége, amely értelmezi az utasításokat és vezérli.
RAM (Random Access Memory)
Programozási alapok.
Nyomkövetés Mikroprocesszor és mikrokontroller programjainak és a rendszernek a belövése.
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ű.
Programozás C# -ban Elágazások.
Építsünk Processzort Avagy mi is kell hozzá.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Grosz Imre f. doc. Sorrendi áramkörök
A Számítógépek felépítése, működési módjai
Mikrorendszer megvalósítása FPGA környezetben
Egy egyszerű gép vázlata
A Számítógépek felépítése, működési módjai
A számítógép működésének alapjai
Memória példák 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:

Fejlett pipeline megoldások IMSC 2019

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!

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!

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

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

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

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)

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

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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*0+ 0,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

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: 0.85 1+0.15 3 = 1.3 ciklus/utasítás, vagyis lassabb, mint BTB-vel.