Máté: Számítógép architektúrák



Hasonló dokumentumok
Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

A konferencia terem foglaltsága miatt a november 11-i előadást november 12-én 10h-tól tudom megtartani a konferencia teremben.

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Digitális technika VIMIAA01

1. Az utasítás beolvasása a processzorba

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Máté: Számítógép architektúrák

A számítógép alapfelépítése

Szupermikroprocesszorok és alkalmazásaik

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Számítógép Architektúrák

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

Internet programozása. 3. előadás

Erdélyi Magyar TudományEgyetem (EMTE

DSP architektúrák dspic30f család

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Egyszerű programozási tételek

A TMS320C50 és TMS320C24x assembly programozására példák

Egyszerű RISC CPU tervezése

FPGA áramkörök alkalmazásainak vizsgálata

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Számítógép Architektúrák I-II-III.

Matematikai alapok. Dr. Iványi Péter

Ipari Robotok Programozása

4. Programozási nyelvek osztályozása. Amatőr és professzionális

int azt az elõzõ részbõl megtudtuk, a rétegeknek az a feladatuk, hogy valamiféle feladatot végezzenek

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)


C programnyelv 1. Kedves Kollegina, Kolléga!

Máté: Számítógép architektúrák



FIR SZŰRŐK TELJESÍTMÉNYÉNEK JAVÍTÁSA C/C++-BAN

Multimédia hardver szabványok


A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

SZÁMÍTÓGÉP ARCHITEKTÚRÁK


Számítógép Architektúrák

Máté: Számítógép architektúrák


Operációs rendszerek. 3. előadás Ütemezés

2015, Diszkrét matematika

Kétszemélyes négyes sor játék

Gráfokkal megoldható hétköznapi problémák

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for felhasználói kézikönyv 7. változat 5.kiadás

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

1. ábra: Perifériára való írás idődiagramja

Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

15. Programok fordítása és végrehajtása

2. Digitális hálózatok...60


Számítógép Architektúrák (MIKNB113A)

Programozás 3. Dr. Iványi Péter

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

1. A feladatról. 2. Az áramkör leírása. Mechatronika, Optika és Gépészeti Informatika Tanszék D528. Léptetőmotor vezérlése

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk


Algoritmusok. Hogyan csináljam?

Joint Test Action Group (JTAG)

SzA19. Az elágazások vizsgálata

4. Fejezet : Az egész számok (integer) ábrázolása

Számítógép összeszerelése

C# gyorstalpaló. Készítette: Major Péter

A MiniRISC processzor


Operációs rendszerek előadás Multiprogramozott operációs rendszerek


ismerd meg! A PC vagyis a személyi számítógép

1. mérés - LabView 1

Programozható logikai vezérlõk


A mikroszámítógép felépítése.





ű É Í É Ö ű ü Ö É Ö Í É Ö Ö



Az integrált áramkörök kimenetének kialakítása



Az 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja ábra



Digitál-analóg átalakítók (D/A konverterek)



LEGO robotok. IV. rész

The modular mitmót system. A DPY-LED perifériakártya



Átírás:

Elágazás jövendölés ok gép megjövendöli, hogy egy ugrást végre kell hajtani vagy sem. Egy triviális jóslás: a visszafelé irányulót végre kell hajtani (ilyen van a ciklusok végén), az előre irányulót nem (jobb, mint a semmi). Feltételes esetén a gép tovább futhat a jövendölt ágon, amíg nem ír regiszterbe vagy csak firkáló regiszterekbe ír. a a jóslat bejött, akkor minden rendben, ha nem, akkor sincs baj. Több feltételes egymás után! Máté: rchitektúrák. előadás Dinamikus jövendölés Elágazás előzmények tábla (.. ábra), hasonló jellegű, mint a gyorsító tár. Lehet több utas is! Egy jövendölő bit: mi volt legutóbb, alid ejegyzés N Elágazási cím/tag Elágazás volt/nem volt Máté: rchitektúrák. előadás ét jövendölő bit: mi várható és mi volt legutóbb. alid Jövendölő ejegyzés Elágazási cím/tag bitek N a egy belső ciklus újra indul, akkor az várható, hogy a ciklus végén vissza kell ugrani, pedig legutóbb nem kellett. Máté: rchitektúrák. előadás várható bitet csak akkor írja át, ha egymás után kétszer téves volt a jóslat (.. ábra). nincs Jóslás: nincs Jóslás: nem nincs lesz újabb nincs Jóslás: újra lesz nincs Jóslás: Máté: rchitektúrák. előadás táblázat a legutóbbi célcímet is tartalmazhatja. alid Jövendölő ejegyzés Elágazási cím/tag élcím bitek N a az a jövendölés, hogy lesz, akkor arra számít, hogy a legutóbb tárolt célcímre kell ugrani (ezt persze ellenőrizni kell). Máté: rchitektúrák. előadás Figyeljük, hogy az utolsó k feltételes t végre kellette hajtani. Ez egy k bites számot eredményez, ezt az i előzmények blokkos regiszterében tároljuk. a a k bites szám megegyezik a táblázat valamely bejegyzésének a kulcsával (találat), akkor az ott talált jövendölést használja. Máté: rchitektúrák. előadás. előadás

zuperskaláris architektúrák (.. ábra) LU utasítás beolvasó utasítás operandus beolvasó zuperskaláris processzor funkcionális gel LU LOD TORE Lebegőpontos eredmény visszaíró zuperskaláris architektúra esetén a az utasításokat mikroutasításokra darabolhatja. Legegyszerűbb, ha a mikroutasítások végrehajtási sorrendje megegyezik a betöltés sorrendjével, de ez nem mindig optimális. Függőségek a egy utasítás írni/olvasni akar egy regisztert, akkor meg kell várja azon korábbi utasítások befejezését, amelyek ezt a regisztert írni/olvasni akarták! Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás Függőségek Egy utasítás nem hajtható végre az alábbi esetekben: RW (valódi) függőség (Read fter Write): Onnan akarunk olvasni (operandus), ahova még nem fejeződött be egy korábbi írás. WR függőség (Write fter Read): Olyan regiszterbe szeretnénk írni az eredményt, ahonnan még nem fejeződött be egy korábbi olvasás. WW függőség (Write fter Write): Olyan regiszterbe szeretnénk írni az eredményt, ahova még nem fejeződött be egy korábbi írás. Ne boruljon föl az írások sorrendje! Függőségek: nem olvashatjuk, aminek az írása még nem fejeződött be (RW), és nem írhatjuk felül, amit korábbi utasítás olvasni (WR) vagy írni akar (WW). Regiszterenként egyegy számláló, hogy hányszor használják a végrehajtás alatt lévő mikroutasítások a regisztert olvasásra illetve írásra. Pl. Tegyük fel, hogy az n. ciklusban dekódolt utasítás végrehajtása legkorábban az (n+). ciklusban kezdődhet, és a következőben fejeződik be, a szorzás csak két ciklussal később. ciklusonként két utasítást tud kiosztani végrehajtásra (a valóságban utasítást). z utasítások indítása és befejezése az eredeti sorrendben történjék! = ciklus, =kiosztás, =befejezés (~.. ábra). Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás R=R*R R=R+R R=R+R R=R+R RW R miatt I csak I után fejeződhet be sak a ciklus végére történik meg a visszaírás Rbe R=R*R R=RR WR R miatt R=R*R RW R miatt R=R+R WR R miatt megjegyzés hiba Máté: rchitektúrák. előadás R=R*R R=R+R RW R miatt WR R miatt Máté: rchitektúrák. előadás. előadás

. előadás Máté: rchitektúrák. előadás Néhány gép bizonyos utasításokat átugorva függőben hagy, előbb későbbi utasításokat hajt végre, és később tér vissza a függőben hagyott utasítások végrehajtására (~.. ábra). Máté: rchitektúrák. előadás orrendtől eltérő végrehajtás (kezdés és befejezés) esetén (.. ábra) R=R*R R()=RR R=R+R R=R+R R=R*R R=R+R RW WR: R helyett I megelőzi Iet I nem indulhat RW függőség (R) I miatt, de adminisztrációt igényel, hogy melyik regisztereket használja (függőséget okozhat az átugrott utasítás is!). I megelőzheti I et. I R=RR helyett =RR. z segéd regisztert használja R helyett (regiszter átnevezés). z eredményt később átmásolhatja R be, ha R fölszabadult. Máté: rchitektúrák. előadás I eredménye R helyett ben képződik (regiszter átnevezés)! későbbi utasításokban R helyett et kell használni! I RW és WW függőség R miatt (I), RW függőség R () miatt (I), regiszter átnevezés miatt: R=R*R helyett R=R* I WR függőség: Ret I, I olvassa, be I ír (WW) ezért R=R+R helyett =R+R (mostantól R helyett kell). R=R*R R=R+R R=R+R R=R+R R=R*R R()=RR R=R*R() R()=R+R RW WR: R helyett I megelőzi Iet Máté: rchitektúrák. előadás (R=) R=R*R() R()=R+R R=R*R R()=RR R=R+R R=R+R R=R*R R=R+R RW WR: R helyett I megelőzi Iet RW WR Máté: rchitektúrák. előadás (R=) I eredménye a. ciklusban átkerülhet ből Rbe, de jobb, ha a hardver nyilvántartja, hogy hol van. modern PUk gyakran titkos regiszterek tucatjait használják regiszter átnevezésre, hogy ezáltal kiküszöböljék a WR és WW függőségeket. Máté: rchitektúrák. előadás Feltételezett végrehajtás (.. ábra) Páros és páratlan számok köbének összege: evensum = ; oddsum = ; i = ; while(i < limit) { k = i * i * i; if(((i/)*) == i) evensum = evensum + k; else oddsum = oddsum + k; i = i + ; } evensum = ; oddsum = ; i = ; while(i < limit) k = i * i * i; if(((i/)*) == i) evensum = evensum + k; oddsum = oddsum + k; i = i + ; i >= limit igaz hamis

Feltételezett végrehajtás (.. ábra) peculative Execution lap blokk (basic block): lineáris kód sorozat. okszor rövid, nincs elegendő párhuzamosság, hogy hatékonyan kihasználjuk. Emelés: egy utasítás előre hozatala egy on keresztül (lassú műveletek esetén nyerhetünk vele). Pl. evensum és oddsum regiszterbe tölthető az előtt. z egyik LOD természetesen fölösleges. a valamit nem biztos, hogy meg kell csinálni, de nincs más dolga a gépnek, akkor megteheti, de csak firkáló regiszterekbe írhat. a később kiderül, hogy kell, akkor átírja az eredményeket a valódi regiszterekbe, ha nem kell, elfelejti. Máté: rchitektúrák. előadás Feltételezett végrehajtás (peculative Execution) Mellékhatások: fölösleges gyorsító sor csere, PEULTIE_LOD csapda (pl. x= esetén if(x>) z=y/x;), mérgezés bit. Máté: rchitektúrák. előadás Pentium (. november) Felülről kompatibilis az I,, Pentium IIImal..,, M tranzisztor,,, Gz, W, láb (.. ábra), bites gép, bites adat sín. Neturst architektúra. fixpontos LU. Mindkét LU kétszeres órajel sebességgel fut. Többszálúság (hyperthreding): % többlet a lapkán ~ két PU. (a) (b) (c) Többszálúság (hyperthreding,.. ábra) Óraciklus z (a), (b) és (c) processzus külön futtatva az üres téglalapoknál várakozni kényszerül a memóriához fordulások miatt. többszálúság többszörözött regiszter készlet és némi szervező hardver hozzáadásával valósítható meg: EGYÜTT Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás ín ütemezés érés iba zimatolás álasz dat PRI LO R D REQ Misc R TRDY NR D DRDY DY Egyéb Pentium PU Φ táp REET Megszakítások Energiaellátás őmenedzsment Órajel Diagnosztika Inicializálás Egyéb Pentium logikai lábkiosztása (.. ábra) Máté: rchitektúrák. előadás Pentium logikai lábkiosztása (.. ábra) REET: a PU alapállapotba hozatala, Megszakítások: régi vezérlő, és dvanced Programmable Interrupt ontroller (PI) ülönböző tápfeszültségek, alvási állapotok, Jelzés fölött, Rendszersín frekvenciája, Pentium PU REET Megszakítások Energiaellátás őmenedzsment Órajel Diagnosztika Inicializálás Egyéb Máté: rchitektúrák. előadás. előadás

ín ütemezés PRI LO R D érés REQ iba Misc zimatolás Misc R álasz TRDY NR D DRDY dat DY Egyéb Pentium PU Pentium logikai lábkiosztása (.. ábra) ín ütemezés: PRI: magas, R: normál prioritású igény LO: sín foglalás több ciklusra, érés: : bájtos adat címe ( G címezhető), D: a cím érvényes, REQ: kívánság, álasz: R: státus, TRDY: a szolga tud adatot fogadni, dat: D: bájtos adat, DRDY: az adat a sínen van, DY: a sín foglalt. Máté: rchitektúrák. előadás Pentium Gépi utasítások RI szerű mikroutasítások, több mikroutasítás futhat egyszerre: szuperskaláris gép, megengedi a sorrenden kívüli végrehajtást is. szintű belső gyorsító tár. L: utasítás + nyomkövető tár akár dekódolt mikroutasítás tárolására + adat. L: M, egyesített, utas halmaz kezelésű, késleltetve visszaíró, bájtos gyorsító sor. Előre betöltő. z Extrem Editionban M (közös) L is van. Multiprocesszoros rendszerekhez szimatolás snoop. Máté: rchitektúrák. előadás zimatolás snoop a minden processzornak saját írás áteresztő gyorsító tára van (.. ábra) Esemény aját gyorsító tár Többi gyorsító tár Olvasás hiány Olvasás találat Olvasás a gyorsító tárból Írás hiány Írás a memóriába Írás találat Olvasás a memóriából Írás a gyorsító tárba és a memóriába a az írandó szó a gyorsító tárban van, akkor érvényteleníti a gyorsító tár bejegyzést Pentium esetén bonyolultabb a helyzet a késleltetve visszaíró L miatt (ázi feladat). Máté: rchitektúrák. előadás Pentium memória sín memóriaigények, tranzakciók állapota: fázisú csővezeték (.. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat):. ín ütemezés (kiosztás, bus arbitration): eldől, hogy melyik sínmester következik,. érés: cím a sínre, kérés indítása,. ibajelzés: a szolga hibát jelez(het),. zimatolás: a másik PU gyorsító tárában,. álasz: kész lesze az adat a következő ciklusban,. dat: megvan az adat. Máté: rchitektúrák. előadás Φ: tranzakció Pentium memória sín csővezetéke (.. ábra) T T T T T Máté: rchitektúrák. előadás T T T T T T T Ütemezés (nem ábrázoltuk), csak akkor kell, ha másé a sín. : kérés, : hiba, : szimatolás, : válasz, : adat Memória sínhez Memória alrendszer Rendszerinterfész etöltő Pentium mikroarchitektúrája L D+I égrehajtó L D Egész és lebegőpontos végrehajtó Ütemezők efejező emeneti rész orrenden kívüliség vezérlő.. ábra. Pentium blokkdiagramja Máté: rchitektúrák. előadás. előadás

.. ábra. Pentium memória alrendszere Memória sínhez Memória alrendszer Rendszerinterfész L D+I L az első, a második, M a harmadik generációs Pentium ben. L utas halmaz kezelésű, késleltetve visszaíró bájtos gyorsító sor, minden második ciklusban kezdődhet egy bájtos feltöltés a memóriából. Előre betöltő: megpróbálja Lbe tölteni azt a gyorsító sort, amelyre majd szükség lesz (nincs az ábrán). Máté: rchitektúrák. előadás.. ábra. Pentium bemeneti rész Lből betölti és dekódolja a programnak megfelelő sorrendben az utasításokat. z utasításokat RI szerű mikroműveletek sorozatára bontja. a több, mint mikroművelet szükséges, akkor ra etöltő L D+I emeneti rész történik utalás. dekódolt mikroműveletek a be kerülnek (nem kell újra dekódolni). Elágazás jövendölés. Máté: rchitektúrák. előadás bemeneti rész az utasításokat Lből kapja. Ezeket dekódolja, RI szerű mikroműveletekre bontja, a nyomkövető gyorsító tárban tárolja (akár mikroműveletet) a programnak megfelelő sorrendben. mikroműveletet csoportosít minden nyomkövető sorban. Feltételes nál az utolsó t tartalmazó L Tből (ranch Target uffer i cél puffer) kikeresi a jövendölt címet, és onnan folytatja a dekódolást. a az nem szerepel L Tben, akkor statikus jövendölés történik: visszafelé ugrást végre kell hajtani, előre ugrást nem. Máté: rchitektúrák. előadás.. ábra. orrenden kívüliség vezérlő z utasítások a programnak megfelelő sorrendben kerülnek az ütemezőbe, eltérő sorrendben kezdődhet a végrehajtásuk (esetleg regiszter átnevezéssel), de a pontos megszakítás követelménye miatt az előírt sorrendben fejeződnek be. emeneti rész Ütemezők efejező orrenden kívüliség vezérlő Máté: rchitektúrák. előadás Memória sínhez Memória alrendszer Rendszerinterfész etöltő Pentium mikroarchitektúrája L D+I égrehajtó L D Egész és lebegőpontos végrehajtó Ütemezők efejező emeneti rész orrenden kívüliség vezérlő.. ábra. Pentium blokkdiagramja Máté: rchitektúrák. előadás Mit nevezünk jövendölésnek? Milyen dinamikus jövendöléseket ismer? Milyen statikus jövendöléseket ismer? Mi az eltolási rés (delay slot)? ogy működik az eltolási rés szempontjából a Pentium és az UltraPR? Mit nevezünk függőségnek? Milyen függőségeket ismer? Mely függőségek oldhatók fel, és hogyan? Máté: rchitektúrák. előadás. előadás

Mi az előnye a sorrendtől eltérő végrehajtásnak? Mire szolgál a regiszter átnevezés? Mi a feltételezett végrehajtás? Mit nevezünk emelésnek? Mikor előnyös az emelés? Milyen mellékhatásai lehetnek a feltételezett végrehajtásnak? Mi a PEULTIE_LOD lényege? Mi a mérgezés bit? Mi a többszálúság lényege, haszna? Mik a többszálúság megvalósításának feltételei? ogy érvényesül a RI elv a Pentium esetén? Mi a szuperskaláris gép lényege? Mit jelent a sorrenden kívüli végrehajtás? Milyen gyorsítótárakat használ a Pentium? Jellemezze a Pentium L gyorsítótárát! Mire szolgál az előre betöltő? Mit jelent a szimatolás? Milyen sorrendben dekódolja a Pentium az utasításokat? Mire szolgál a? Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás Mire szolgál a nyomkövető gyorsítótár? Milyen jövendölést használ a Pentium? Mire szolgál az L T? Mire szolgál a nyomkövető T? Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium en? z előadáshoz kapcsolódó Fontosabb tételek orrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés Feltételezett végrehajtás Pentium processzor, a Pentium mikroarchitektúrája Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás. előadás