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.



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

Teljesítmény: időegység alatt végrehajtott utasítások száma. Egységek: MIPS, GIPS, MFLOPS, GFLOPS, TFLOPS, PFLOPS. Mai nagyteljesítményű GPGPU k: 1-2

Első sor az érdekes, IBM PC ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

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

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

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

SzA19. Az elágazások vizsgálata

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

Dr. Sima Dezső. Architektúrák III. Készítette: Kappel Krisztián. komment by Krysz, Felix (2010, 2009 ősz)

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

Ismétlés: Moore törvény. Tranzisztorok mérőszáma: n*százmillió, n*milliárd.

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

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

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

* 800 MHz/PC-3200/ATA-100. SPECint_base2000/f c Pentium III. Pentium * 800 MHz/PC-2667/ATA-100 * * * * *

3. Az elektronikus számítógépek fejlődése napjainkig 1

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

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Mikroprocesszorok (Microprocessors, CPU-s)

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

Processzor (CPU - Central Processing Unit)

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

Multimédia hardver szabványok

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

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

Az informatika fejlõdéstörténete

Hardver Ismeretek IA32 -> IA64

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

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre

Digitális rendszerek. Digitális logika szintje

Ez egy program. De ki tudja végrehajtani?

Összeadás BCD számokkal

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

A számítógép felépítése A processzor és csatlakoztatása

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

Bepillantás a gépházba

Bevezetés az informatikába

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

Hibrid előadás: az ea másik felében a Morgen Stanley munkatársa kiegészítéseket fog hozzáfűzni a témához. Hagyományos és szerverrendszerek.

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

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

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

AMD PROCESSZOROK KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA KÓD: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS,BSC

Számítógépes alapismeretek

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

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

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

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

elektronikus adattárolást memóriacím

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

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

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

Párhuzamos programozási platformok

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

A számítástechnika fejlődése

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

Szupermikroprocesszorok és alkalmazásaik

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

Négyprocesszoros közvetlen csatolású szerverek architektúrája:

Digitális rendszerek. Mikroarchitektúra szintje

Párhuzamos programozási platformok

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

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)

Feladatlap: Számítógép összetevők keresése

Fábián Zoltán Hálózatok elmélet

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

Programozási nyelvek 6. előadás

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

1. Generáció( ):

Alaplap. Az alaplapról. Néhány processzorfoglalat. Slot. < Hardver

Dr. Illés Zoltán

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

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Számítógép fajtái. 1) személyi számítógép ( PC, Apple Macintosh) - asztali (desktop) - hordozható (laptop, notebook, palmtop)

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

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

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Informatikai alapismeretek földtudományi BSC számára

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK A STRUKTURÁLT SZÁMÍTÓGÉP-FELÉPÍTÉS. Misák Sándor. 2. előadás DE TTK

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

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

Bevezetés az informatikába

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

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

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

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

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

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

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

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

3DMark 06 CPU. Magok / Szálak 8MB / MB /

Assembly. Iványi Péter

Az Informatika Elméleti Alapjai Dr. Kutor László. A számolás korai segédeszközei A korszerű számítógépek kialakulása

Az Informatika Elméleti Alapjai Dr. Kutor László. A számolás korai segédeszközei A korszerű számítógépek kialakulása

IT - Alapismeretek. Feladatgyűjtemény

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

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

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

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

Átírás:

2009. 09. 23. 1

2

3

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. A value PC hez hasonló idővonalat kell elképzelni hozzá. Túlnyomórészt szerverek, desktopok, olcsó PC k, mobil gépek. Manapság az eladásra jellemző arány: ~70% a mobil és ~30% a desktop. Szerverek fajtái: MP (multi processor), DP (dual processor), UP (uni processor). Történelem: UNIVAC ot gyártották először sorozatban. ENIAC (1946): Kívülről vezérelte program. Ennek a fejlesztésébe Neumann nem szólhatott bele (idevágó irodalom: Számítógépfejlődés Pascaltól Neumannig). A belső programvezérlés csapatmunka eredménye. Ez lett az EDVAC (1949). Neumann 45 ben összefoglalta a munkákat, tisztán leírta a számítógép működését, és publikálta azt (ezért nem lehetett szabadalmaztatni sem). Eckert és Mauchly. IAS: Institute of Advanced Studies rövidítése. UNIVAC: fixpontos + decimális + karakteres, gazdasági célokra. Tárolás: ferritgyűrűs tár. IAS: fixpontos + bináris + lebegőpontos, tudományos célra. Tárolás: képcsöves módszer. IBM bevonta tanácsadónak Neumannt, csak az UNIVAC után kezdtek el gépeket gyártani. 50 es években vették át a vezetést. A régi, híres gépeket tudni kell időben elhelyezni! IBM 360: Mind az ötféle formátumot támogatta. Család fogalma megjelenik: egy egész sor CPU t mutattak be, különböző teljesítmény/ár arányban. I/O rendszer (csatorna) fájl szervezésű, önálló logikai egység. N*100.000$ -ba került. IBM 370: Virtuális memória (~tár) bevezetése (memória volt a szűk keresztmetszet). 360 nál még ferritgyűrűs memória volt, 70 es évek elejéig. Magyarázat: amint az integrált áramkörök megjelentek ( 60 ban indult el), tranzisztorok száma adott területen évenként duplázódott (Moore törvénye). 1 Kbyte os memória megjelenése volt az áttörés (1971. Könnyű megjegyezni: mivel évente duplázódik, és 10 év telt el, 2^10=1024 byte) => kb. 11 év alatt vált elég komplexé. DEC: PDP-8: még éppenhogy működött, ez már csak 20.000$ -ba került. 12 biten címezhető RAM. PDP-11: 16 biten címezhető a RAM. VAX. Mikroprocesszor: 71 körül, párezer tranzisztorral. ~400 dolláros kit, forrasztgatás után működőképes. 4004 es teljesítménynövekedés: 10 évenként 100x!! 81: IBM PC megjelenése (Apple, Commodore már korábban megjelentette a gépeit). Elterjedése: 1. A piac meghódítása 2. Mindent publikáltak => Klónok megjelenése, minden eszköz IBM kompatibilis lett. 4

2009. 09. 30. Y tengely: ár helyett most teljesítmény érték. Logaritmus skála (1,10,100,1000, ) - idő skála (1,2,3,4,5, ). 10 év alatt ~100x teljesítménynövekedés 2003-2005 -ig. SPEC: teljesítménymérési módszer eljárásból fakadó számérték. Abszolút teljesítmény: hány utasítást dolgoz fel másodpercenként. Fc és IPC függő. 8088: Az Intel 8086 ból redukálták vissza (16 helyett 8 bites I/O adatbusz!, a 16 bites regiszterek megmaradtak! feldolgozás). Az IBM PC alap processzora. Az I/O határozza meg leginkább a számítógép árát. IBM PC azért 8 bites I/O val rendelkezik, hogy olcsóbb legyen. (8086: már ehhez is lehetett csatolni co-processort matematikai lebegőpontos társprocesszor) 80286: protected mode megjelenése 386(1985): 32 bites architektúra. SX: 16 bites adatbusz és 32 bites regiszterek, DX: 32-32 bit. Cache még nem a CPU ban volt benne, 1. generációs futószalag. Virtuális mód megjelenése. 486(1988): DX: integrált, működőképes lebegőpontos co-processzor. SX: ugyanez le volt tiltva (később bele sem tették már) 2. Generációs futószalag (CPU ban cache, + elágazásbecslés). (1.5 generációs: van cache, nincs elágazásbecslés. Intel nem gyártott ilyet) DX2, DX4: nem az Intel gyártotta, hanem a Cyrix és az AMD, nem referenciamodellek. EDO RAM. On-die (CPU lapkára rákerült) L1. L2 külön, rendszerbuszon. Pentium(1993): 64 bit szélességű adatbusz. A feldolgozás 32 biten történik. SDRAM itt jelent meg. 66-166 MHz. Első generációs (keskeny) szuperskalár (2-3 RISC utasítás/óraciklus). A buszfrekvencia lassabban fejlődött, mint az órafrekvencia Az AMD ekkoriban fejlesztette ki a DDR elvet: Double Data Rate. Mindkét élen adat: FSB: pl. 100 Mhz ->400 megatranszfer, Intel a Pentium 4 ben már használta a DDR-t és a DDR2-t: 4-800 megatranszfer. A DDR technológia tehát nem csak a memóriához köthető Pentium 66 Mhz ig órajel = FSB. Utána: szorzók megjelenése. A 100 MHz es Pentium esetében pl. még 66 MHz es FSB volt. A PC-66 MHz es SDRAM ot a Pentium 66 MHz es processzorhoz hozzá lehetett illeszteni. L1 cache: külön Instruction és külön Data. Pentium MMX(1995): az első generációs szuperskalár processzor ISA kiterjesztése. 133->233 MHz L1 cache: külön Instruction és külön Data. Pentium Pro(1996): Széles szuperskalár (~4 RISC utasítás / óraciklus), általános célú alkalmazásban körülbelül ennyi utasítás párhuzamosítható pufferelt kibocsájtás esetén. Direkt kibocsátásnál: ~2). Eddig az IPC 10x -növekedés, órajel szintén => 100x összesen. Utána az IPC stagnált (elérték a 4 es szélességet), az órajelnek kellett 100x ra nőni. Dedikált buszon csatlakozik az L2 Pentium II(1997): 2,5. generációs szuperskalár processzor. Gyakorlatilag a Pentium Pro kiegészítése a MMX kiterjesztéssel, és néhány egyéb fejlesztés. 233 MHz en jött ki az első. Az FSB kezdetben 66, később 100 MHz => PC-66 és PC-100 SDRAM. Az Intel Celeron itt jelent meg kisebb cache -el (66 MHz) és a Celeron A (100 MHz) Dedikált buszon csatlakozik az L2, de volt olyan mag, ahol már a CPU lapkájára bekerült. Aktív hűtés megjelenése. Pentium III (1999): 450 MHz től 1.3 GHz. 2 féle tokozás: Slot-1 és FCPGA. On-die L2 cache (CPU lapkáján). Pentium 4(2000): Netburst architektúra. Prescott mag hőtermelése 103 Watt! Ez a léghűtés fizikai határa. Willamette, Northwood, Prescott magok. Northwood: HyperThreading, Prescott: 64 bit (feldolgozás, eleinte nem aktiválták) A Pentium D 3,8 GHz (Dual Core) kétféle magja a Prescott és a Cedar Mill volt. Kétmagos változatokban jelent meg az L3. 2004 ben a 4 GHz es CPU bejelentéseket vissza kellett vonni (be volt tervezve még 10 GHz is, a disszipáció miatt megrekedt). 2004-5 környékén a fejlődés megállt (csak a magok számában lehet effektíven növelni a teljesítményt, lásd Sokmagos processzorok jegyzet eleje). 5

Pai: Performance(absolute-instruction) Pao: Performance(absolute-operation) Pr: Performance(relative) tv: vizsgált rendszer futási ideje IPC: utasítások száma / ciklus Pa nehezen mérhető: 1. Performance Counter (pl. lehívott, végrehajtott utasítások, elágazási utasítások) segítségével történik, minden CPU nak ezen keresztül mérhető a teljesítménye. A benchmark programok tudják kezelni ezt, így szolgálnak információkkal. 2. A Performance Counter alkalmazásfüggő is, pl. a lebegőpontos utasítások lassabbak. Relatív teljesítmény: benchmark programcsomag. Különféle műveletekre a futási időt összehasonlítja egy referenciarendszer értékeivel. Azért van alul a vizsgált rendszer ideje, hogy a tört minél nagyobb lehessen (mert a rendszer valószínűleg gyorsabb a referenciánál. A tört így nagyobb lesz 1 nél. Segíti az eladást). Amit kapunk, az a gyorsítás mértani közepe. Ezt a SPEC cég definiálta. SPEC int: fixpontos. SPEC base: standard, szabványos compiler beállításokkal mért (base nélküli: lehet trükközni, pl flagekkel). IPC hatékonyság feldolgozási szélesség (példák: szekvenciálisnál pl: 1/10, futószalag: ~1, szuperskalár: ~2-4). Pár évente újra definiálják a referenciaértékeket, pl. 89, 92, 95, 2000, 2006 -> más-más programokat tartalmaznak. Hatékonysági korlát: általános célú alkalmazásoknál általában max. 4-5 utasítás Párhuzamosítható. Legkisebb komplexitás (~tranzisztorszám) a futószalaghoz kell. VLIW egy új utasításszintű architektúrát (ISA) igényel. Szuperskalár: evolúciós irány, komptatibilitás. EPIC VLIW: forradalmat igényelt, de a felhasználók nem álltak át rá. 6

Bottleneck: szűk keresztmetszet. Itt a futószalag is behozott szűk keresztmetszetet, ezt feloldották. Innentől új paradigmára van szükség. Emlékeztető: Térbeli kibocsájtás = Párhuzamos kibocsájtás. Statikus függőségkezelés: architektúrát tekintve legegyszerűbb, ha a compiler re bízzuk a függőségkezelést. VLIW esetén ez elvárás. Amit a compiler egyszerre kibocsát, az legyen független. Baloldalra még órán fel volt rajzolva a szekvenciális (soros) feldolgozás, de mivel az nem ILP, így itt nincs feltüntetve. 7

VLIW működése. 10-20 feldolgozó egység. Ez határozza meg a VLIW hosszát (az utasításszó mezőinek számát) -> 320-640 bit hosszúak (32 bit * 10-20 FE) is lehetnek. Annyi utasítás lehetséges a VLIW -ben, ahány feldolgozó egység található a processzorban. Emlékeztető: Ha van ~100 féle utasítás, akkor 8 bit hosszú a műveleti kód. Ha ~32 regiszterünk van, azt 5 biten lehet megcímezni. Amennyiben regiszter-regiszter architektúráról van szó, akkor 8 (MK) + 3(forrás,forrás,cél)*5 => 32 bit hosszú egy mező (utasítás) a VLIW ben. 8

Alapelv: Új technológia => szűk keresztmetszetek => ezek feloldása, majd a technológia határához elérkezünk => új technológia => A kibocsátott utasítások közt lehetnek olyanok, amelyek egymástól függenek, a függőségkezelés a CPU ra hárul. Compiler segítheti a párhuzamos feldolgozást, például utasítás sorrend megváltoztatásával (a legdurvább függőség a LOAD nál lép fel. A compiler minél előrébb helyezi el, hogy a kívánt adat megérkezzen, mikor szükség lesz rá. Az időigénye akár többszáz óraciklus is lehet). Ez a 2. generációs szuperskalárok Továbbfejlesztési lehetőségek: Vektoros, azaz: több utasítás / művelet (SIMD). Multimédia, grafika, matematikai számítások esetén nyújt segítséget. Tehát csak dedikált alkalmazásokra tudunk hatékonyságot növelni, általános célúaknál már nem! 9

10

Komplexitás determinálja a sorrendet. Futószalag => Szuperskalár => kiterjesztés. Az utasítások több műveletet kezdeményeznek. Csak akkor előny, ha azt az alkalmazás támogatja (pl. multimédia, grafika, matematika) => dedikált alkalmazások. 11

CPI: Cycles per Instruction (IPC reciproka) IP: egy ciklusban kibocsátott utasítások OPI: Operation per Instruction EPIC: a VLIW új neve, Intel Itanium processzor. 12

CPIi = 1 / IPCi Szekvenciális: CPIi: pl. 3 (-> IPC ~ 0.33) Futószalag: első ábra jelenti az ideális állapotot, a második az átlagos esetet (IPCi pl. 0.8 -> CPI ~ 1.25) VLIW: Még nem támogatja a SIMD et EPIC: Már támogatja a SIMD et. 13

A spekuláció alapvető az elágazáskezelésben és a LOAD oknál (sokáig tart az adatok beolvasása a memóriából). η: Spekulatívan végrehajtott utasítások hatékonysága = Jó utasítások száma / összes utasítás száma. ~0.8-0.9. A lebegőpontos osztás n*10 ciklusig is eltarthat. Fénysebesség: 30 cm / ns; az elektronok a szilíciumlapkán: 20 cm/ns! 1 GHz 1 ns óraciklus. Alapvető, hogy mennyi a csíkszélesség! A kisebb méretek (csíkszélesség) gyorsulást idéznek elő. Egy futószalag fokozata: puffer -> logika -> puffer. Logikai hossz: hány NAND kapun kell keresztülmenni. FO4: Fan-out: egy NAND kapu késleltetési ideje Növelték a fokozatok számát -> csökken a logikai hossza az egyes fokozatoknak. Korábban volt 100 FO4 is, ma ~10-15 FO4. Prescott mag: 30 fokozatot is elérték. A spekulatív elágazásbecslés miatt a rossz irányba lehívott utasítások száma ilyen mértékben túlságosan nagy veszteséget okoz (túl nagy a buborék). Eredmény: napjainkban ~15 fokozat jellemző. Mikroarchitektúra: manapság ez a döntő, ettől függ az órafrekvencia sebessége. Napjainkban a hatékonyság növelése csak pár százalék különbséget okozhat. 14

2009. 10. 07. Időben párhuzamos ~ temporális Futószalag. Bevezetés: Az utasítás-szintű párhuzamosság fejlődésének jellemzése - 100x növekedés 10 évenként (utóbbi időben stagnálás) - Oka: 3 különböző párhuzamosság megjelenés (időbeli, térbeli párhuzamos utasítás kibocsájtás, utasításon belüli - több művelet/utasítás) => a feldolgozási szélesség növekedése - Teljesítmény = órafrekvencia * ciklusonkénti eredményesen végrehajtott utasítások száma, Pai = Fc * IPCeff (FONTOS!!) 15

Pipelined EUs: A lebegőpontos utasítások végrehajtásánál az Execute fokozatok párhuzamosítása (a kitevők azonos alakra hozása, mantissza, ) Jellemzően tudományos célú gépeken alkalmazzák. 2 db 64-128 bites fixpontos szám összeadása 0,5-1 óraciklust igényel. Ez ~ 0,3 ns idő (megj.: ezalatt a fény ~10 cm t halad). Ilyen rövid időtartamnál erre nincs szükség. Lebegőpontos osztás a legrosszabb műveletek egyike, ugyanis kivonásokra vezethető vissza. A lebegőpontos összeadás ~0.3 ns időt vesz igénybe. Pipelined processors: Futószalag. Minden óraciklusban be tud fogadni egy új utasítást. Az ábrán láthatóak a futószalag bevezetéseinek lépései, a futószalag tehát fokozatosan jelent meg. 16

80 as évek közepétől a 80-as évek végéig minden gyártó áttért a futószalag technológiára (80386 tól). Intel/AMD: x86 (ez a domináns: az eladott processzorok 80-90% -a) Motorola: M68000 (CISC) MIPS R: RISC 17

Mint minden paradigmaváltásnál, itt is új, szűk keresztmetszetek jelentek meg. 18

- RAM sávszélesség szűk keresztmetszete: A gyorsabb processzort (minden óraciklusban képes utasítást befogadni, ellentétben a korábban általánosan elterjedt ~4 óraciklusnyi időtől) az amúgyis lassú RAM nem tudta olyan gyorsan követni, és még jobban is terheljük. Megoldás: cache. és adat : CISC processzoroknál. 19

Futószalag cache nélkül: 80386 (I. generációs futószalag processzor) Futószalag cache használatával: 80486 (II. generációs futószalag processzor) Volt olyan gyártó, amelyik előbb vezette be a cache t, mint a futószalagot (pl. Motorola, MIPS R) A zárójelek értelmezése: Ha egy változó van, akkor univerzális cache, ha kettő, akkor Instruction/Data cache (kilobyte). A cache a szekvenciális feldolgozást kifejezetten hátráltatja! Csak a ciklusokat támogatja, azokat is csak akkor, ha azok beleférnek a cache-be. Ebből következik, hogy minél nagyobb a cache, annál jobb, DE: ekkor az elérési idő is megnő -> optimumra van szükség. Ez kb: 64K, 3 óraciklus. L1: jellemzően 64 Kb (3 óraciklus) megj.: AMD nél 32 Kb is. L2: fél-2 Mb (10-15 ciklus) L3: 6-12 Mb (30 ciklus is akár) 20

- Második szűk keresztmetszet: az elágazáskezelés problémája. Futószalag esetén ugrási résről beszélünk, azaz körülbelül annyi utasítást hívhatunk le feleslegesen ugrás esetén, ahány fokozatunk van (n fokozat esetén n-1). Ezért kiemelkedő fontosságú az ugrási irány lehető legjobb becslése. Az ugrás folyamata a következő: 1. Az ugrási irány becslése 2. Az utasításlehívást folytatjuk a becslés alapján 3. Ellenőrizzük a becslés helyességét 4. A valós irányban folytatjuk (jóváhagyjuk vagy eldobjuk) a végrehajtást Feltétlen elágazásnál is fellép, de nem olyan jelentős. Execute fokozatnál vizsgálja a Flaget. Ciklusoknál nagyon jó a becslés (ha a ciklusváltozó n, a becslés n-1 szer jó lesz) Nem-szuperskalár processzoroknál a fix (rögzített, mindig ugrunk ) elágazásbecslés jellemző, az első generációs szuperskalároknál a statikus a jellemző. Statikus elágazásbecslés esetén a feltétel kiértékelésekor Displacement vizsgálat történik: ha D<0, ugrik, ha nagyobb, akkor soros folytatás. Kód alapján történik a becslés, ezért primitív elágazásbecslési technika, a jobb rendszerek a múlt alapján becsültek. Dinamikus esetén a címet vizsgáljuk. 21

Ismétlés: Az elágazási utasítások alapblokkokra osztják fel a kódot. Az alapblokkok általában 3-4 adatmanipuláló utasítást tartalmaznak. 22

80486 tól jelenik meg az elágazásbecslés. (II. generációs futószalag processzor) Minden gyártó bevezette. 1989: futószalag technika kimerülése 23

Cache megjelenése azért előzte meg az elágazásbecslést, mert azt egyszerűbb volt megvalósítani (komplexitás ~ tranzisztorok száma). 24

Fontos, összefoglalás. A másfeledik generáció azokra a processzorokra vonatkozik, amelyeknek már volt cache e, de még nem volt bennük elágazásbecslés. 25

Megoldás: kibocsájtásbeli párhuzamosság 26

2009. 10. 07. 27

EPIC: a VLIW mai neve. Explicitly Parallel Instruction Computer. A statikus függőségfeloldás a compiler feladata. 28

Az ábrán például 6 utasítás található egy VLIW -ben. Gyakorlatilag: az utasítások továbbra is 32 bitesek, de maga a hosszú utasításszó (VLIW) akár 10-20x 32 bit hosszú is lehet. 29

A compiler ma is kezel függőségeket, pl. az összes LOAD utasítást előrébb hozza, hogy a lassú, RAM ból való betöltés eredménye már kéznél legyen, ha szükség van rá -> dinamikus függőségkezelésnél is van szerepe. 30

Szuperskalárok esetén a szekvenciális konzisztenciát meg kell őrizni! ROB segítségével. 31

32

33

Fontos: TRACE, CYDRA, és azok elődei (prototípusok). ELI-512: a szám a VLIW hosszát jelöli. 16*32 bit. 1980-as évek elején kezdték el fejleszteni, és ~5 évre volt szükség ahhoz, hogy a piacon bevezethessék. 34

Kevésbé komplex processzor: gyorsabb, hamarabb meg tud jelenni (szuperskalár csak később jelent meg) 35

Teljesen más utasításrendszer (ISA: Instruction Set Architecture) Új compiler -eket és operációs rendszereket kell írni Nem érte el a kritikus tömeget Az alkalmazásokat nem kell mindenképpen újraírni, de a VLIW lehetőségeit csak így tudjuk kihasználni. 36

Például nincs mindig 30 utasítás, amivel ki lehetne tölteni => részlegesen lesz kitöltve, hézagos lesz. Ez vezet a rossz sávszélesség kihasználáshoz. 37

A két cég nevét nem kell tudni, csak azt, hogy minden VLIW fejlesztő cég tönkrement. Ezektől a cégektől a fejlesztők az Intelhez és a HP hoz mentek. HP nál kezdeményezték az VLIW processzorok továbbfejlesztését, mert ez a jövő. A partner az Intel lett. HP lett a fősodrásban, az IBM mellékvágányra futott. 38

1997 ben egy konferencián már EPIC néven szerepel, a VLIW már el volt használva. 1999 re ígérték az elsőt Merced néven (Mercedes). 2 évett késett. Átkeresztelték Itanium ra. A Merced (2001) 600 MHz en működött, miközben a 2000-ben kijött Pentium 4 már 1.5 GHz en, 400 (FSB: 100 Mhz, 4 transzfer/órajel) megatranszferrel. bukás. A nagy processzorszámú, nagy megbízhatóságú, drága rendszerek szintjére emelkedett, és halad felfelé. Támogatja a SIMD et. 39

Kompatibilis ISA: A korábbi fejlesztésekkel kompatibilis! Nem igényel változtatást a korábban megírt programokban. A függőségeket a processzor kezeli. 40

Két nagy cég: IBM és DEC, az előbbi a piacvezető. Az IBM nyeresége megegyezett a DEC forgalmával! IBM Cheetah: IBM 360 (CISC) utáni fejlesztés első munkaállomás, amely RISC chip et használt. America project: Ennek a keretében használták először a szuperskalár fogalmat, 1987 ben DEC Multititan project: VAX (CISC) leváltására indították - RISC. Az egyetemi rendszerek jellemzően csak szimulált rendszerek voltak ("Mi lenne, ha.. ) A japánok bejelentették az 5. generációs számítógép programot, hogy itt is átvegyék a vezetést. A memóriagyártás terén sikerült is, a 6 legnagyobb gyártóból csak a Texas bírta ki a piacon. Dél-koreai Samsung lett a vezető. A zárójeles értékek a kibocsájtási rátát mutatják. 41

RISC: A legelső szuperskalár processzor egy beágyazott rendszerben volt található az Intel által gyártva, nincs nagy jelentősége. M, HP, SPARC, MIPS, AM: meglévő rendszereket szuperskalárosítottak, fejlesztették tovább. IBM, DEC, Power PC: új rendszerek, erre a célra készítve. IBM Power: az igazi kommersz, első szuperskalár Mindegyik kimúlt, kivéve: Power CISC: Eltolódás tapasztalható megjelenések tekintetében (~3 év). Intel a vezető gyártó, Motorola egy ideig vetélytárs, AMD kezd megjelenni a piacon. Cyrix -ből lett később a VIA. Az Intel és az AMD maradt meg a piacon. A családokat nem kell tudni, de kommentálni kell, ha a képet mutatják. CISC: a memóriában bitfolyamként látszódnak az utasítások, nincs eleje, sem vége. Ezek az utasítások komplexebbek is (megjelenik a memória, mint operandus) Az összes rendszer néhány év alatt ( 90-95) szuperskalárrá változott. 42

Alpha 21064: a legtisztább RISC Pentium: a legtisztább CISC 43

FX utasítások a dominánsak! Memóriaműveletek: Load + Store = 30%+10% = 0,4. FP utasítás általános célú alkalmazásokban meglehetősen ritka (ennek ellenére számításba kell venni) Hasznos szélesség általános célú alkalmazások esetén nem pufferelt kibocsájtás mellett: ~2-3 utasítás / ciklus. Direkt (nem pufferelt) kibocsájtás esetén kb 2 utasítás / óraciklus => általános célú alkalmazásoknál 2-3 -nál nagyobb szélességben nincs értelme gondolkodni 44

Adat-cache portok számolásához az előző dián található memóriaműveletekből vettük a 0.4 értéket, ez tehát a memóriához nyúlást jelképezi. FX itt azért van duplázva, mert ezeket a végrehajtó egységeket terhelik a Load/Store címszámítások is. A címszámítást tehát rejtett, fixpontos regiszterek segítségével végezzük el. EU: Execution Unit(végrehajtó egység, VE) Összesen tehát 5-6 VE szükséges. 45

Kibocsájtási szűk keresztmetszet: a kibocsájtás (Issue) az első függő utasításig történik. A függőségek miatt nem tudunk annyit kibocsátani, amekkora az utasítás-ablak mérete. Megoldás: pufferekbe tesszük a kibocsátott utasításokat, és ott vizsgáljuk meg a függőségeket. 46

2009. 10. 14. A kibocsátáshoz nem kell függőségvizsgálat! Azt a Shelving buffer -ekhez csatolt függőségvizsgálók végzik. A függetleneket ki lehet bocsájtani. Shelving buffer: várakoztató állomás. A kibocsátási szűk keresztmetszet megszűnt. Ezzel nem biztos, hogy gyorsul a rendszer; amennyiben volt szűkebb keresztmetszet is, maradhat ugyanolyan sebességű, mint korábban. A kibocsátás 2 fázisú: 1. Pufferbe kerül dispatch, kiküldés. 2. Pufferből VE be kerül Issue, kibocsátás. Komplikációk: ha a puffer megtelik, vagy az adatút szélessége kicsi (ha egy típusúak az utasítások), akkor nem lehet 4 utasítást egyszerre kibocsátani. Megoldási módok az adatutak szélességére: 1. Minden adatút worst case: legjobb teljesítmény (mert a legrosszabbra készülnek, 4 széles legyen minden) 2. Fixpontosnak pl. 2-szeres szélességű, lebegőpontok egyszeres (statisztikai közép: 2 vagy 3 (nem nagy a veszteség, és olcsó)) Egyéb megoldások: Több FP VE hez 1 puffer: csoportpuffer Mindent közös pufferből: centralizált puffer (univerzális; Pentium Pro). 47

Mindig a legszűkebb keresztmetszetű alrendszer határozza meg a rendszer teljesítményét. Azt a sínt, amely a processzort köti össze az északi híddal, Front Side Bus (FSB) nek nevezzük (régebben: rendszerbusz) 48

Ismétlés: 3 fajta adatfüggőség: RAW, WAW, WAR. Az utóbbi kettő regiszterátnevezéssel megoldható. Neumann elvű rendszer->imperatív programozás (Pascal, C,..): változók értéket kapnak, átíródhatnak ->szekvenciális végrehajtás->a beírás sorrendje meg kell feleljen az utasítások sorrendjének! Szuperskalár esetben ez nem egyértelmű -> ROB Sok utasítást kell kiküldeni egyszerre->lassú->elődekódolás! (pl. megállapítja az utasításcsoportot, kiszűri az elágazásokat, akár a címet is kiszámítja. L2 -> elődekódolás -> L1) Első generációs szuperskalár: Rendszerbusz a CPU és az északi híd között, erre csatlakozott az L2 Második generációs szuperskalár: FSB (Északi híd felé, ez volt korábban a rendszerbusz, ezen van az L3) és BSB (L2 cache felé, dedikált busz) Harmadik generációs szuperskalár: L2 a CPU ban. 49

50

A két kiugró érték: csak a tudományos célú programoknál (ilyen esetekben nagy párhuzamosság érhető el) 51

52

Általános célú programoknál nem lehet tovább javítani! 53

RISC: 64 bit. 2000 környékén kiszorultak a piacról. Egyszerű struktúra, gyorsan pörgetve. Nem volt esélyük olyan magas frekvenciát elérni, hogy versenyezhessenek a CISC ekkel. Példa: Alpha, 300 MHz. CISC: 32 bit. Intel+HP. Hatékonyabb, de lassabb. IA: Intel Architecture Intel bejelentése 1997 -ben: Azt állították, hogy az IA32 (CISC) et felváltja az IA64 (EIPC). A Merced et 1999-re ígérték, 2001 ben jelent meg, 6-700 MHz el. Bukás volt, mert egy évvel korábban a P4 1,5 GHz el jött ki! AMD(2000): x86-64 bites ISA bejelentése (kompatibilis volt a korábbi változattal) Direct Connection, RAM vezérlő a lapkán, soros buszok. - Opteron: Szerverre - Athlon64: Desktopra Microsoft megtámogatta, az Intelnek muszáj volt utánoznia. 54

Kétműveletes utasítások: 90 es években. Jellemzően lebegőpontos műveletek. Kicsi a hatékonysága. 3 operandus, két művelet. Ismétlés: SIMD: Single Instruction Multiple Data. Egy utasításban több művelet => vektorutasítások. MM: Multimédia, képfeldolgozás, jellemzően FX feldolgozás(2d, pixelek tárolási módja, stb.). FP: lebegőpontos (3D grafika: térpontok miatt) Első rendszerek: 64 bit, napjainkban: 128 bit hosszú lehet egy vektorutasítás. Nemsokára 256 bit hosszú lesz. 64 biten 2/4/8/16/32 db utasítás eltárolása lehetséges. LP: szimplapontos: 32, duplapontos: 64 bit. Pentium II: A lebegőpontos regisztertárba rakták be a multimédiát, MMX (MultiMedia extension). 55

A kiterjesztés fejlődése: I. Intel: MMX (FX SIMD). 1997 ben, PII II. AMD: 3DNow! (FX, FP is + extra SIMD regiszterblokk), 1999 ben, K6-2+ III. Intel: SSE (FX, FP, SIMD regiszter), 2000-ben, P4 IV. AMD: 3DNow! Professional (innentől rákényszerültek, hogy lemásolják az Intelt) Egy ritka alkalom, hogy az Intel az AMD t másolja: Ismétlés, előzmények: - RISC processzorok egyszerűek, de gyorsak, a CISC ek pedig lassabbak, de hatékonyabbak (pl. Alpha: 300 MHz, Pentium: 166 MHz) - CISC elhúzott teljesítményben (a magas órajelen járó RISC et nehéz továbbgyorsítani észlelhető mértékben). 5 év alatt a RISC kiszorult ( 95-2000) - Intel és HP 1997 ben bejelentik a Merced et. Azt jósolták, az IA-32 (CISC) t felváltja az IA- 64 (EPIC). 2001 ben bemutatták, bukás. - AMD: bevezette a korábbi fejlesztésekkel kompatibilis, x86-64 et: 2000: 64 bites ISA bejelentés 2003: Opteron Athlon 64 megjelenése. Direkt csatolt: a CPU tartalmazza a memóriavezérlőt, és vannak soros linkjei: hyper transport bus, 3 db van belőle, és I/O vagy CPU köthető mindegyikre => akár 4 CPU is összeköthető, MP rendszer kialakítható belőle. Az AMD elnyerte a Microsoft együttműködését (x86-64 támogatású OS). Az Intel az IA-64 el szintén ezt akarta elérni, de a Microsoft nem tett eleget ennek, így rákényszerültek az AMD ISA jára. 56

Módosított dia: szaggatott vonal választja el kb a generációkat. 1997: FX-SIMD megjelenése, az átállás éve. AGP busz megjelenése. Előtte: 2,5. generáció Utána: 3. generáció Amelyek nincsenek színezve, azok nem támogatják a SIMD et. Órán nem beszéltünk az SSE3 ról. Intel P4 magok: Willamette(2000) Northwood(2002): HyperThreading, 55 millió tranzisztor Prescott (2004): már bennevolt a 64 bit, de még nem publikálták. 110 millió tranzisztor (a 64 bit re való áttérés növelte meg ennyire) 57

58

Ugyanaz, mint az előző ábra. 59

60

Branch prediction accuracy: Elágazásbecslés pontosságának javítása Ha a futószalagok fokozatainak logikai hosszát csökkentjük, akkor a fokozatok száma nő, ezáltal a helytelen elágazásbecslés hibája nagyobb súlyosságú (több utasítást kell eldobni) 90-2003: ~10 év Pentium Pro: 1995 61

62

63

64

65

66

Az, hogy melyik újítás mikor lépett be, az a rendelkezésre álló hardver komplexitásától függött! 67

Nem blokkoló cache: olyan cache, amely cache miss esetén, az adat memóriából történő betöltése közben is ki tud elégíteni igényeket. FONTOS ÁBRA! 68

69

70

71

72

73

- Bal oldal: Brute Force, nyers erő. Továbblépés. Szélesség növelése: 4 helyett 8 as kibocsátás. - Jobb oldal: Ügyességen alapuló megoldás. A mag több szálat tud egyszerre kezelni. Több bemeneti tölcsér. Minden fájlnak külön adattere (regisztertere) van. 74

75