A mai témák. Számítógép architektúrák. CISC és RISC. A teljesítmény fokozás. További előnyök. A RISC gondolat



Hasonló dokumentumok
Számítógép architektúrák. A mai témák. A teljesítmény fokozás. A processzor teljesítmény növelése

Számítógép architektúrák. A processzor teljesítmény növelése

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

Számítógép architektúrák Korszerű architektúrák Mai program Pentium P6 processzor (esettanulmány) Párhuzamosítások a CPU-n kívül

Számítógép architektúrák. Korszerű architektúrák

Számítógép architektúrák záróvizsga-kérdések február

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

Számítógép architektúrák. Korszerű architektúrák

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

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

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

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

Számítógépek felépítése, alapfogalmak

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

Számítógépek felépítése

SzA19. Az elágazások vizsgálata

Számítógépek felépítése, alapfogalmak

Számítógép architektúra

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

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)

Központi vezérlőegység

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

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

Processzor (CPU - Central Processing Unit)

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Hardver Ismeretek IA32 -> IA64

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Összeadás BCD számokkal

Számítógép architektúrák I. Várady Géza

Nagy Gergely április 4.

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

Labor gyakorlat Mikrovezérlők

Adatok ábrázolása, adattípusok

Párhuzamos programozási modellek

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

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

Mikrorendszerek tervezése

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

Mintavételes szabályozás mikrovezérlő segítségével

Bevezetés az informatikába

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

Számítógép architektúrák II.

Labor gyakorlat Mikrovezérlők

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Számítógép architektúrák. Bemutatkozom. A tárgy címe, célja. Számítógépek, számítási modellek

Java programozási nyelv

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Számítógépek, számítógép rendszerek

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

Magas szintű optimalizálás

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

Szenzorhálózatok programfejlesztési kérdései. Orosz György

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

Számítógépek architektúrák. Bemutatkozom. A tárgy célja. Architektúrák

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

Hardver Ismeretek. Várady Géza

Módosított ábra: szaggatott nyíl: a fejlődési ív Az ábrából kimaradt a mobil szegmens (hordozható számítógépek). Y tengely: ár.

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Számítógép felépítése

Számítógépek architektúrák. Architektúrák

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

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

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

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Digitális rendszerek. Utasításarchitektúra szintje

Architektúra, megszakítási rendszerek

Grafikus processzorok általános célú programozása (GPGPU)

Operációs rendszerek Folyamatok 1.1

Bevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar

Beágyazott rendszerek KMABR11TNC Tematika.

Programtervezés. Dr. Iványi Péter

Az operációs rendszer szerkezete, szolgáltatásai

2017/12/16 21:33 1/7 Hardver alapok

elektronikus adattárolást memóriacím

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

Párhuzamos programozási platformok

Bevezetés a párhuzamos programozási koncepciókba

egy szisztolikus példa

Programozás alapjai Bevezetés

Programozási nyelvek 6. előadás

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Az interrupt Benesóczky Zoltán 2004

Számítógépek, számítógép rendszerek

Bevezetés a számítástechnikába

Operációs rendszerek III.

Labor gyakorlat Mikrovezérlők

Digitális rendszerek. Mikroarchitektúra szintje

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

Multimédia hardver szabványok

2016/08/31 02:45 1/6 Hardver alapok

Assembly. Iványi Péter

Mikroprocesszorok (Microprocessors, CPU-s)

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Számítógépek architektúrák. Architektúrák

Átírás:

A mai témák Számítógép architektúrák A processzor teljesítmény növelése CISC és RISC Párhuzamosságok Utasítás szintű párhuzamosságok Futószalag feldolgozás Többszörözés (szuperskalaritás) A függőségek kezelése A soros konzisztencia fenntartás Teljesítménynövelés Vadász, 2007 Ea5 2 A teljesítmény fokozás Nem strukturális módszerek Órajel frekvencia növelés, Instrukciók számának csökkentése (optimálás) Strukturális módszerek Ciklusszám csökkentés: RISC architektúrákkal Ciklusszám csökkentés párhuzamosításokkal CISC és RISC CISC: Complex Instruction Set Computer RISC: Reduced Instruction Set Computer (Ezek CPU jellemzők) Történelmileg előbb a CISC-ek minél többet bízz a hardverre, bonyolult kat mikro-programokkal, bonyolult kkal egyszerűbb a programozás (pl. PUSHALL), bonyolult címzési módokat biztosítanak. Az elgondolás nagyon jó, de Teljesítménynövelés Vadász, 2007 Ea5 3 Teljesítménynövelés Vadász, 2007 Ea5 4 A RISC gondolat Statisztikákból kiderült: gyakoribbak az egyszerű k. Akkor azokra hegyezzük ki a CPU-t! (Ez az új gondolat!) Az egyszerű k azonos logikájúak: egyszerűbb áramkörök, ezek gyorsabbak, egyszerűbb, egységes dekódolás, ez is gyorsabb, több regiszter lehet, ez is gyorsít, egyszerűek, egyformák a címzési módok is. A bonyolultabb feladatokat viszont több val. Lehet, hosszabb lesz a program. Teljesítménynövelés Vadász, 2007 Ea5 5 További előnyök Egyforma a ciklusidő (többnyire 1 utasítás/1 ciklus). Ez segíti a szupercsatornázást (lásd később). Az egyszerű áramkörök (nagyobb frekvenciát engednek) engedik a belső egységek többszörözését. Lehetséges a szuperskalaritás. Könnyebb a spekulatív végrehajtás is. Befér a tokba a gyorsítótár is, egyre nagyobb. Illesztés operációs rendszerhez, fordítóprogramhoz. Teljesítménynövelés Vadász, 2007 Ea5 6 1

Párhuzamosítások CPU-n belül: Futószalag (pipe-line, csatorna) alkalmazása, Többszörözésekkel: több t párhuzamosan dolgoznak fel (2-3 way: 2-3 utas) CPU-n kívül: Fix feladat szétosztással (társprocesszorok) lebegőpontos aritmetikára, grafikára, képfeldolgozásra stb. Változó feladat szétosztású multiprocesszoros rendszerek (dual/quad systems). A rendelkezésre álló és a hasznosított párhuzamosság A párhuzamosság egyik legjobb teljesítménynövelő technika A rendelkezésre álló párhuzamosság: ami a feladatból, a megoldásukból adódik, a probléma megoldásban benne van A hasznosított párhuzamosság : amit a végrehajtás során érvényesíteni tudunk. Teljesítménynövelés Vadász, 2007 Ea5 7 Teljesítménynövelés Vadász, 2007 Ea5 8 A rendelkezésre álló párhuzamosság Kétféle lehet: funkcionális párhuzamosság és adat párhuzamosság. A funkcionális ~ a feladatmegoldás logikájából jön. Belátható, hogy akár egy imperatív programban egyes szálak futhatnának párhuzamosan. A funkcionális ~ rendszerint szabálytalan (kivéve a ciklusszintű ~-ot). A párhuzamosság mértéke nem nagy (gyenge párhuzamosság). Az adat párhuzamosság olyan adatszerkezetek használatából származik, melyek elemein párhuzamosan lehet operációkat végezni. Többnyire szabályos ~. A párhuzamosság erős lehet (mértéke nagy, több-számjegyű). Teljesítménynövelés Vadász, 2007 Ea5 9 Az adatpárhuzamosság Adatpárhuzamos architektúra kell. Vektorprocesszorok. Teljesítménynövelés Vadász, 2007 Ea5 10 A rendelkezésre álló funkcionális párhuzamosság szintjei A szemcsézettség (granuláció) különböző lehet Utasítás szintű párhuzamosság (finom szemcsézettség); Instrukciókat párhuzamosan hajtunk végre Ciklus szintű párhuzamosság (közepes szemcsézettség); Egymást különben követő iterációkat párhuzamosan Eljárás szintű párhuzamosság (közepes szemcsézettség); Eljárásokat, függvényhívásokat párhuzamosan Szálak Program szintű párhuzamosság (durva szemcsézettség). Felhasználói szint. Processzek (taszkok) párhuzamosan. Hasznosításukhoz az operációs rendszer segítsége kell. Több processzoros HW is. Az eljárás szintű párhuzamosság hasznosulása Eljárások párhuzamosan. A szálak (threads) kezelése kell Lehet fejlesztő rendszer segítségével, lehet az operációs rendszer segítségével hasznosítani A ciklusszintű párhuzamosság hasznosulása Iterációk párhuzamosan. A fordítóprogram segíti felfedezni ezt Teljesítménynövelés Vadász, 2007 Ea5 11 Teljesítménynövelés Vadász, 2007 Ea5 12 2

Utasítás szintű párhuzamosság hasznosulása Instrukciókat párhuzamosan hajtunk végre utasításszinten párhuzamos architektúrákkal (Instuction-Level Paralell, ILP processzorokkal) Hagyományos soros programoknál ez rejtett (transzparens) marad: a processzor fedezi fel a programban rejlő párhuzamosítási lehetőséget. Futószalag feldolgozással és processzoron belüli funkcionális elemek többszörözéseivel. Teljesítménynövelés Vadász, 2007 Ea5 13 A futószalag (pipe-line, csővezeték, csatorna) feldolgozás Egyetlen feldolgozása is több fokozaton (stage) megy keresztül. Legalább: felhozatal (fetch), dekódolás (decode) (és utasítás kibocsátás ), a tényleges végrehajtás, Az eredmény beírás. Az egyes fokozatokat más-más egységek végzik, párhuzamosan dolgozhatnak: az i. végrehajtása során dekódolható az i+1., felhozható az i+2. sít. Teljesítménynövelés Vadász, 2007 Ea5 14 A RISC előnyök itt érvényesülnek Egyforma k - egyforma fokozat idők. Egy ciklusra valóban kijöhet egy! Vannak gondok is Időzítési kockázat: egy hoz kell az előző eredménye. Várakozni kell rá. Függőség. Az R3000 szupercsöve Az k végrehajtását 5 fokozatra (stage) osztja. Minden fokozatot még 2 fázisra. 1 fokozat/1 ciklus A fokozatok: Instrukció felhozatal IF Olvasások, ellenőrzés RD ALU operációk ALU Adatmemória elérés MEM Regiszter visszaírás WB Teljesítménynövelés Vadász, 2007 Ea5 15 Teljesítménynövelés Vadász, 2007 Ea5 16 Az végrehajtása során használja A fokozatok, fázisok tevékenysége a címleképzést segítő asszociatív tárat (TLB, Translation Lookaside Buffer), az gyorsítótárat (I-Cache), az adat gyorsítótárat (D-Cache), a regiszterfájlt (RF). TLB I-Cache RF ALU D-Cache RF TLB IF RD ALU MEM WB Aritmetikai számítás Regiszterfájl írás TLB-t használva virtuális címet fizikaira képez Leképzett címet küldi az I-Cache-nek Felhoz az I-Cache-ből, dekódol, ellenőriz Regiszterfájl olvasás Adat címszámítás Adat cím leképzés Cím küldés D-Cache-nek Adat mozgatása Regiszterfájl írás Címszámítás Döntés Aritmetikai Tároló (Store) Betöltő (Load) Ugró Teljesítménynövelés Vadász, 2007 Ea5 17 Teljesítménynövelés Vadász, 2007 Ea5 18 3

i-2 i-1 i i+1 i+2 Az 5 mélységű futószalag Currens ciklus A PowerPC 6 futószalagjai Elágazások Felhozatal + Dekódolás-kibocsátás-végrehajtás-becslés (2 fokozat) Fixpontos aritmetika Felhozatal + Dekódolás-kibocsátás + Végrehajtás + Beírás (4 fokozat) Load/Store k Felhozatal + Dekódolás-kibocsátás + Címképzés + Gyorsítótár + Beírás (5 fokozat) Lebegőpontos aritmetika Felhozatal + Kibocsátás + Dekódolás + Végrehajtás1 + Végrahajtás2 + Beírás (6 fokozat) Teljesítménynövelés Vadász, 2007 Ea5 19 Teljesítménynövelés Vadász, 2007 Ea5 20 Megjegyzés A funkcionális egységek többszörözése A szupercsatornás CPU: nagyon sok fokozat A futószalag technika nemcsak processzoron belül (mikroszinten) alkalmazható Makroszinten (több processzor képezi csövet) is alkalmazzák Logikai szinten is (figyelj a burok csővezetékére) Az adatfolyam gépek is ha úgy tetszik futószalagot használnak A funkcionális egységek többszörözése általános párhuzamosítási technika Az utasításszintű párhuzamosításban is lehet többszörözés: Több dekódoló Több végrehajtó egység (ALU/VE) stb. A többszörözés természetes makroszinten is vö. MIMD párhuzamosság Teljesítménynövelés Vadász, 2007 Ea5 21 Teljesítménynövelés Vadász, 2007 Ea5 22 Pipe-line versus többszörözés Többszörözés processzoron belül Pipe-lined CPU FU 1 FU 2 FU 3 FU - funkcionális egység Szuperskalár CPU FU 1 FU 2 FU 3 Egyik típus: VLIW (Very Long Instruction Word) architektúrák Pl. Trace, Intel IA64 Speciális fordító állítja elő a hosszú utasítást (pl. egy hosszú utasításban egy lebegőpontos és egy fixpontos ADD vagy MUL, esetleg még szélesebb ) Több ALU, ezeknek párhuzamosan a hosszú utasítást szétbontva bocsátja ki a dekódoló Statikus a függőség feloldás (függőséget lásd később) Másik: szuperskalár processzorok Teljesítménynövelés Vadász, 2007 Ea5 23 Teljesítménynövelés Vadász, 2007 Ea5 24 4

Többszörözés processzoron belül, szuperskalár processzorok Egy ütemben (időablakban) több hagyományos t visznek be (hoznak be) A több hagyományos t a (esetleg több) dekódoló elemzi, és többszörös az utasítás kibocsátás Párhuzamosan több ALU (végrehajtó egység, VE) dolgozik I-Cache F D VE VE VE A szuperskalár processzorok Jellemző a dinamikus függőség-feloldás Természetes a futószalag technika is A jellegzetes feladatok a szuperskalár feldolgozásban Párhuzamos dekódolás Szuperskalár (többutas) utasítás kibocsátás Párhuzamos végrehajtás A végrehajtás soros konzisztenciájának megőrzése A kivételkezelés soros konzisztenciájának megőrzése Hány utas a processzor? Regiszterfájl Teljesítménynövelés Vadász, 2007 Ea5 25 Teljesítménynövelés Vadász, 2007 Ea5 26 Az utasítások közötti függőségek A függőségek a párhuzamos végrehajtás alapvető korlátját jelentik Adatfüggőség: egy az előző eredményét használja Vezérlésfüggőség: feltételes ugró utasítástól függenek a vezérlési ágak Erőforrás függőség: k ugyanazt az erőforrást igénylik (pl. valamilyen végrehajtó egységet, ALU-t) Az adatfüggőségek Valódi függőség a RAW függőség i1: load r1, a // r1 (a) i2: add r2, r1, r1 // r2 (r1) + (r1) Hamis függőség a WAR és a WAW függőség, i1: mul r1, r2, r3 // r1 (r2) * (r3) i2: add r2, r4, r5 // r2 (r4) + (r5) ui. regiszter-átnevezéssel fel lehet oldani i1: mul r1, r2, r3 // r1 (r2) * (r3) i2: add r36, r4, r5 // r36 (r4) + (r5) Teljesítménynövelés Vadász, 2007 Ea5 27 Teljesítménynövelés Vadász, 2007 Ea5 28 További adatfüggőség, függőségi gráf A ciklusfüggőség (ismétlési függőség) k-ad rendű ismétlési függőség esetén a szóban forgó utasítás a megelőző k. ciklusban kiszámított értékre hivatkozik Az adat- és vezérlésfüggőségek felfedezhetők és ún. függőségi gráfban rögzíthetők. Irányított gráf: csomópontok az k, élek a függőségek A függőségi gráf segítheti az utasításütemezést a valódi függőségek feloldására. Teljesítménynövelés Vadász, 2007 Ea5 29 A függőségek észlelése és feloldása A függőségek észlelése és feloldása lehet statikus, vagy dinamikus Statikus: a fordítóprogram észleli és oldja fel: átrendezett sorozatot generál A VLIW processzorok függőségmentes sorozatot várnak Szuperskalár és futószalag processzorokra is lehet Dinamikus: a függőségek észlelése és kezelése a processzor feladata A legtöbb szuperskalár processzor ilyen Teljesítménynövelés Vadász, 2007 Ea5 30 5

A dinamikus függőség-kezelés A processzor két csúszó ablakot alkalmaz Kibocsátási ablakot, melyben azok az k vannak, melyeket a következő ciklusban kibocsátana; Végrehajtási ablakot, melyben Az k még végrehajtás alatt vannak (eredményük még nincs meg). Minden ütemben vizsgálja, a kibocsátási ablakban van-e a másik ablakbeli tól függő, Ill. a kibocsátási ablak i között van-e függőség. Ezektől és a kibocsátási politikától is függ a kibocsátás Kibocsátási politikák Blokkolós kibocsátás Addig blokkol t, míg a függősége megszűnik Sorrenden kívüli kibocsátás blokkolt utáni függetleneket sorrenden kívül Spekulatív kibocsátás Vezérlési függőség kezelésére mindkét ágat Teljesítménynövelés Vadász, 2007 Ea5 31 Teljesítménynövelés Vadász, 2007 Ea5 32 A spekulatív végrehajtás Egy-egy t (operációt, elemi t) a lehető leghamarabb végrehajtanak, és függetlenül attól, hogy eredményére szükség lesz-e vagy sem (amint lehet + függetlenül a szükségességétől. Szükségtelensége esetén gondoskodnak arról, hogy ne okozzon hibát!). A betöltő (load) kat (elég gyakoriak és elég költségesek) pl. célszerű spekulatívan végrehajtani (minél előbb és mindenképpen). A soros konzisztencia fenntartása Konzisztencia itt: ellentmondás mentesség Ha felborul a sorrend a statikus v. dinamikus függőségkezelés, kódoptimalizálás miatt? A programozó szándéka? A logikai integritás? Párhuzamos végrehajtással is fenn kell tartani a soros végrehajtás logikáját! A soros konzisztencia lehet Utasítás feldolgozás soros konzisztenciája, Processzor konzisztencia (k sorrendje) Memória konzisztencia (memória hozzáférések sorrendje) Kivétel feldolgozás soros konzisztenciája Teljesítménynövelés Vadász, 2007 Ea5 33 Teljesítménynövelés Vadász, 2007 Ea5 34 A processzor konzisztencia Az k befejezésének a sorrendje a kérdés Gyenge konzisztencia estén a befejezési sorrend eltérhet a programozottól, de ez integritási hibát nem okozhat. Erős konzisztencia esetén a befejezési sorrend szigorúan a programozói sorrend Legtöbbször ezt egy átrendező puffer (ROB, ReOrder Buffer) alkalmazásával történik A ROB A ROB egy kezdet- és végmutatókkal rendelkező körpuffer. Kezdetmutató jelzi a következő szabad bejegyzés helyét. Az egyes bejegyzésekben nyilvántartják a bejegyzéshez tartozó állapotát (kibocsátott, végrehajtás alatti, befejeződött). Egy csak akkor írható ki, ha befejeződött, és minden előtte lévő már ki van írva. A ROB segíti a spekulatív végrehajtásból adódó k érvényesítését, nem érvényesítését is (további állapotjelzővel) Teljesítménynövelés Vadász, 2007 Ea5 35 Teljesítménynövelés Vadász, 2007 Ea5 36 6

A megszakításkezelési sorrend Ezt a konzisztenciát is segíti a ROB A megszakítások, kivételek kérését akkor fogadja el a processzor, mikor a ROB-ból kiírják (érvényesítik) az t A memória konzisztencia Gyenge memória konzisztencia esetén eltérés lehet a programozott sorrendtől ahol a programozói szándék nem sérül, A be-ki mozgató (load-store) knál is lehetséges a spekulatív végrehajtás: általában a load-ok előzhetnek store-okat Teljesítménynövelés Vadász, 2007 Ea5 37 Teljesítménynövelés Vadász, 2007 Ea5 38 Számítógép architektúrák A processzor teljesítmény növelése VÉGE 7