De Intel 80x86 reeks voor PC Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 1 Voorgeschiedenis Intel 4004 1971 4-bit architectuur Intel 8008 1972 8-bit architectuur Intel 8080 1974 ook 8-bit architectuur grotere instructie set adres ruimte van 64Kb machine met accumulator 6 chips Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 2 8086 (1978) Intel 8086 eerste processor van de 80x86 reeks 16-bit processor 16-bit adressen alleen 640Kbytes is adresseerbaar klok-frequentie: 4.7 MHz snelheid: 0.33 MIPS (vergelijk met de andere in de reeks) 8 registers (dit blijft zo voor de hele reeks) alle parameters worden via de stapel doorgegeven (dit blijft zo voor de hele reeks) -> vaak gebruik van cache (zie later) basis voor IBM PC XT (1981) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 3 80286 (1982) Intel 80286 = 8086+ het blijft een 16-bit processor hogere klok-frequenties: tot 16 MHz 5 maal sneller dan de 8086 (1.6 - 2.1 MIPS) protected mode en real mode (oude 8086 mode) in protected mode zijn er 4 geprivilegieerde niveaus biedt ondersteuning voor multi-tasking besturingssystemen (bv OS/2) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 4 80286 (vervolg) Intel 80286 (vervolg) 24-bit adressen adresbereik van 16Mbytes (DOS gebruikt dat echter niet) maar geen lineaire adresruimte, wel segmenten van 64K kunst- en vliegwerk voor programmeren slechte overdraagbaarheid van programma's (naar of van bv de Motorola 68000) ook klok-frequentie van 8086 werkt nog, zodat toepassingen die daarop steunen (om timing te doen) nog kunnen draaien basis voor de IBM PC AT Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 5 i386 (1985) 32-bit processor hogere klok-frequenties: 16 - 20 - 25 MHz snelheid (3 - 7 MIPS) van een mainframe van 1970 32-bit adressen geeft een adresbereik van 4Gbytes prefetch queue van 16 bytes paginatie unit die paginatie op aanvraag ondersteunt Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 6 i386 (vervolg) DOS maakt van de nieuwe mogelijkheden geen gebruik (UNIX wel) voor compatibiliteitsreden: de 8086-real-mode kan nog altijd op de i386 weer een nieuwe mode: virtual 8086 mode = real mode maar bovenop de protected mode, zodat je de protectie er bij hebt Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 7 i486 (1991) natuurlijk volledig compatible met de vorige processoren in de reeks integreert op 1 chip een (krachtigere) i386 de i387 (FP-coprocessor) 8Kbyte cache prefetch queue van 32 bytes 4 write buffers om resultaten bij te houden als de bus bezet is bevat 1.2 miljoen transistoren (=50 keer zoveel als op de 8086) betekent veel hogere snelheid dan de i386: 20 - 54 MIPS is +- 3 maal sneller als de i386 met dezelfde klok-frequentie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 8 i486 (vervolg) vaak bevindt zich op het moederbord nog een 'secondlevel cache' van 128 tot 256 Kbytes on-chip cache: 1 klok cyclus second-level cache: 1 bus cyclus (= 2 klok cycli) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 9 i486 (vervolg) klok-frequenties tussen 25 en 50 MHz mogelijkheid tot "internal frequency doubling" = de frequentie op de chip wordt verdubbeld, niet de frequentie op het moederbord dit vermijdt resonantie problemen op het moederbord naam: i486DX2 25 MHz => 50 MHz 33 MHz => 66 MHz 50 MHz => 100 MHz Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 10 i486 (vervolg) de i486 is een kruising van een CISC met een RISC: vaak gebruikte instructies (zoals de MOV) worden zonder microprogrammatie uitgevoerd de zeer complexe (en niet zo vaak uitgevoerde instructies) worden via microcode uitgevoerd uitspraak over DOS: "DOS running on the i486 is about the same as a supertanker with an outboard motor" Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 11 i486 (vervolg) ook een SX versie bestaat: een "lichtere" i486 geen FP op de chip lagere klok-frequentie (25 MHz, die soms aan 33 MHz wordt gebruikt) i486DX chips die bij de tests niet de hoge frequentie aankunnen (door een kleine lay-out verschuiving bv) worden als SX-versies verkocht concept van "upgradable" de chip kan bijgestaan worden door een upgrade chip die eigenlijk de vorige vervangt via een verbinding tussen de twee chips wordt ervoor gezorgd dat de oude chip in wachttoestand blijft gewone gebruikers moeten deze upgrade kunnen uitvoeren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 12 Pentium (1993) kleine naamverandering omdat cijfers niet patenteerbaar zijn als naam "The design started in 1989 with the primary goal of maximizing performance while preserving software compatibility within the practical constraints of available technology." 3.1 miljoen transistoren deze grote hoeveelheid transistoren op één chip is mogelijk door kleinere component-maten groter gebruik van geconnecteerde lagen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 13 Pentium (vervolg) performantie: 112 MIPS statische superscalaire processor: 2 integer pipelines, met 5 stages elk de twee pipelines werken volledig synchroon ze volgen de volgorde van het programma hier is een belangrijke rol voor de compilers 64-bit externe data-bus (maar een 32-bit processor en 32bit adressen) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 14 Pentium (vervolg) 8Kbyte instructie cache + 8Kbyte gegevens cache telkens "dual ported" om door de twee pipelines tegelijkertijd gebruikt te kunnen worden nodig omdat een superscalaire processor een grotere bandbreedte nodig heeft sprong-voorspellingen een "branch target buffer (BTB)" in associatief geheugen houdt paren bij van sprong-instructies en gekozen sprongadressen (met geschiedenis informatie) compilers werden samen met chip ontworpen (gebeurt klassiek bij RISC processoren) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 15 Pentium (vervolg) "The Pentium achieves roughly two times the speedup on integer code and up to five times the speedup on floating-point vector code when compared with an i486 CPU of identical clock frequency" Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 16 Pentium (vervolg) floating point: i486 geen FP-pipeline (als een FP instructie in uitvoering is, kan er geen tweede beginnen) vermenigvuldiging is in microcode Pentium: FP pipeline (8 stages) voor optelling, aftrekking, vermenigvuldiging en vergelijking (allemaal 3 klokcycli) deling kost 18-32 klokcycli 8 speciale functies worden in microcode uitgevoerd: fsin, fcos, ... 3 formaten worden gesupporteerd: single-precision (32 bit), double precision (64 bit) volgens IEEE formaat, en extended-precision (80 bit) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 17 Pentium (vervolg) compatibiliteit vereist precieze bepaling van uitzondering -> on-chip logica bepaalt of een instructie gegarandeerd zonder uitzondering zal eindigen; indien ja kan de pipeline gewoon verder gevuld worden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 18 Intel Pentium Pro Processor naam was origineel P6, maar omdat de naam Pentium zo gekend was wilde men deze behouden is volgende architectuursprong, blijft t/m Pentium III gebruikt een superpipeline met 10 stages ter vergelijking: de Pentium had 5 stages dit maakt hogere kloksnelheden mogelijk met gelijke silicontechnologie (1 stage: 33% kleiner, dus kloksnelheid: 33% hoger) superscalair: kan 3 instructies tegelijk uitvoeren bevat een L2 cache op de chip van 256K (of 512K) maakt gebruik van (in Intel terminologie): dynamic execution, multiple branch prediction, data flow analysis, speculative execution dynamisch schedulen (gebaseerd op algoritme v. Tomasulo) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 19 Intel Pentium Pro Processor (vervolg) processor architectuur in meer detail: 3 stappen (fig. 3) FETCH/DECODE unit DISPATCH/EXECUTE unit RETIRE unit FETCH/DECODE unit (fig. 4) leest de instructies in volgorde uit de instructie cache leest 20 tot 30 instructies vooruit voorspelt sprongen met behulp van de Branch Target Buffer 20 à 30 instructies bevatten gemakkelijk 5 sprongen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 20 Intel Pentium Pro Processor (vervolg) FETCH/DECODE unit (fig. 4) (vervolg) vertaalt de (CISC) instructie in u-operaties van vaste lengte meest gebruikte IA instr. worden vertaald door 1 u-op sommige in 4 u-op de complexe instructies gaan volledig in microcode (een klein programma van u-ops) de u-op worden in een queue geplaatst en gaan naar de Register Alias Table (RAT) RAT: herbenoemt registers de u-op gaan naar de instruction pool (ook genoemd de ReOrder Buffer dat een associatief geheugen is) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 21 Intel Pentium Pro Processor (vervolg) DISPATCH/EXECUTE unit (fig. 5) bevat 2 integer units, 1 jump unit, 1 FP arithmetic unit, FP multiplier, divider and shifter, 2 address generation units bediend door de Reservation Station via 5 poorten wanneer status van u-op aanduidt dat operanden aanwezig zijn kan een u-op uitgevoerd worden (hier zorgt de dispatch unit voor): instructies worden niet in volgorde uitgevoerd, maar volgens de data-flow principes (dynamic scheduling) resultaten worden terug naar de ROB gestuurd als blijkt dat een slechte sprongvoorspelling gemaakt werd zal de JEU de status van alle u-op na de branch veranderen zodat deze uit de instruction pool genomen worden (speculative execution) de BTB wordt aangepast Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 22 Intel Pentium Pro Processor (vervolg) RETIRE unit (fig. 6) zoekt in de instruction pool naar instructies die uitgevoerd zijn en uit de pool mogen deze unit herstelt de programma volgorde van de instructies houdt rekening met misvoorspellingen en exceptions kan 3 u-op per klok cyclus behandelen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 23 Intel Pentium Pro Processor (vervolg) Bus interface unit (fig. 7) loads kunnen stores voorbijsteken hiervoor dient de Memory Order Buffer (MOB) Dual Independent Bus (D.I.B.) Architecture tweede gescheiden bussen systeembus naar hoofdgeheugen en randapparaten – snelheid klassiek 66MHz, nu al tot 100MHz aparte bus naar L2 cache – helft van kloksnelheid van chip (schaalt mee met processor) beide bussen kunnen in parallel werken piekbandbreedte 3X zo groot als bij Pentium Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 24 Intel Pentium Pro Processor (vervolg) Error Checking and Correction (ECC) eigenschappen detecteert één- en twee-bit fouten verbetert automatisch één-bit fouten standaard aanwezig vanaf 300MHz op L2 cache standaard op geheugen enkele cijfertjes 5.5 miljoen transistoren voor CPU, 15.5 miljoen voor L2 cache 150/166/180/200 en meer MHz 0.35 micron technologie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 25 MMX MMX technologie: uitbreiding van Intel Architectuur om performantie van multimedia toepassingen te verhogen inhoudelijk: zie later bij algemene behandeling van DSP en multimedia extensies toepassingen 2D en 3D visualisaties full-screen, full-motion video combinaties van grafische elementen met video audio synthese spraak synthese en compressie, telefonie, video-conferentie realistische grafische weergaven 3D-spelletjes Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 26 MMX (vervolg) uitgewerkt als module om toe te voegen aan Pentium Pentium MMX Pentium Pro Pentium II bevat 57 nieuwe instructies 8 64-bit nieuwe MMX registers 4 nieuwe data types Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 27 Pentium MMX doelstelling minstens zelfde performantie als Pentium minstens zelfde kloksnelheid op gebied van marketing was dit heel belangrijk veel mensen associëren frequentie met snelheid minstens zelfde CPI Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 28 Pentium MMX probleem 1: toevoegen van MMX op bestaande Pentium architectuur verlaagt de kloksnelheid Pentium architectuur heeft pipeline met 5 stages bottlenecks: decode en cache Pre-fetch, Decode1, Decode2, Execute, Writeback oplossing pipeline herschikken in 6 stages nieuwe stage vooraan, en de rest herschikken Pre-fetch, Fetch, Decode1, Decode2, Execute, Writeback cache aanpassingen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 29 Pentium MMX probleem 2: toevoegen van pipeline stage verlaagt CPI branch hazard is langer er gaat meer tijd verloren bij misvoorspelde sprongen verhogen van CPI door toevoegen van Return Stack Buffer naast Branch Target Buffer speciale buffer met geschiedenis van procedure oproepen verbetering van CPI met 8% verbetering relatie snelheid van processor en snelheid van bus verbetering van CPI met 5% grotere cache, volledig associatieve Translation Lookaside Buffers 16Kb ipv 8Kb voor zowel instructie- als data cache verbetering van CPI met 7 tot 10% totale verbetering tov Pentium CPI: 15% Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 30 Pentium II op architecturaal niveau: niets nieuws tov Pentium Pro nog altijd superpipeline met 10 stages dynamic execution, multiple branch prediction, data flow analysis, speculative execution wel verbeterde technologie en kleine verbeteringen alles aanpassen aan MMX betere sprongvoorspelling ‘dynamic, two-level, adaptive-training, branch prediction’ grotere L1 cache (2X 16Kb) kan tot 3 instructies per klokcyclus decoderen kan tot 40 instructies voorruit kijken (30 bij Pentium Pro) kan tot 4 instructies tegelijk uitvoeren (3 bij Pentium Pro) verbinding met moederbord: Single Edge Contact ipv pinnen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 31 Pentium III op architecturaal niveau: niets nieuws tov Pentium II nog altijd superpipeline met 10 stages dynamic execution, multiple branch prediction, data flow analysis, speculative execution wel verbeterde technologie en 70 nieuwe instructies Intel Processor Serial Number uniek cijfer per processor, opvraagbaar gebruik in beveiliging gebruik in beheer (remote system load and configuration) enkele cijfertjes 9.5 miljoen transistoren voor CPU (Pentium Pro: 5,5) 28 miljoen transistoren inclusief L2 cache 450 tot 1.13 GHz (Pentium Pro: 150/166/180/200) 0.25 tot 0.18 tot 0.13 (9/2001) micron tech. (Pentium Pro: 0.35) grootte L1 en L2 cache: zoals betere Pentium II (2x16K en 512K) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 32 Pentium III (vervolg) 70 nieuwe instructies (SSE: Streaming SIMD Extensions) SIMD floating point SIMD integer ‘cacheability control instructions’ technologieën die hiervan kunnen gebruik maken geavanceerde beeldverwerking 3D streaming audio en video spraakherkenning voordelen hogere resoluties en hogere kwaliteit van beelden hogere kwaliteit audio, MPEG2 video, simultaan MPEG2 encodering en decodering verminderd gebruik van CPU voor spraakherkenning, hogere betrouwbaarheid en snellere respons Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 33 Pentium III: toepassingsdomeinen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 34 Pentium III: toepassingsdomeinen (vervolg) Productivity software Multimedia software gaming, modeling, and simulation applications Internet applications includes audio, video, imaging, and creativity applications 3D software applications such as word processing, presentation, and personal finance programs Internet browsers, as well as 3D and multimedia Web content benchmarks: zie tabel 1-5 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 35 Pentium 4 (2001) eerste belangrijke architecturale vernieuwing sinds Pentium Pro (4 jaar eerder) gebaseerd op .18 micron technologie, maar mikt op .13 bevat 42 milj transistoren (14 milj meer dan PentiumIII) naam: Intel NetBurst Micro-Architecture de chip is dus ook substantieel groter begonnen bij 1.4 GHz, is nu al 2.4 GHz, .13 micron tech. Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 36 Pentium 4 Hyper Pipelined Technology pipeline met 20 stages (verdubbeling tov P6) bij verkeerde voorspellingen is straf zwaarder !! Level 1 Execution Trace Cache speciale instructie cache bewaart geen geheugen blokken maar reeds gebruikte, gedecodeerde instructies (micro-ops) 12K micro-ops bewaart dus geen niet-gebruikte instructies fetching en decode voor instructies uit cache valt weg Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 37 Pentium 4 Advanced Dynamic Execution kijkt 126 instructies vooruit (ipv 42 bij Pentium III) o.a. 48 loads en 24 stores betere branch prediction (33% minder mis-voorspellingen) beter algoritme, 4KB BTB, geschiedenis-gebaseerd Rapid Execution Engine 2 integer ALU’s werken aan dubbele kloksnelheid bv 3GHz op een 1.5GHz Pentium 4 of 4.8GHz op een 2.4GHz Pentium 4 ! Enhanced Floating Point and Multimedia Unit all FP registers 128-bit new register for data movement Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 38 Pentium 4 400MHz Front Side Bus quad-pumped 100MHz-system bus geeft 3 maal grotere bandbreedte dan Pentium III 3.2 GB/s ivm 1.06 GB/s bij Pentium III 256KB Level 2 Advanced Transfer Cache (ATC) transfers vanuit L2: op elke klok cyclus (ipv om de 2) Pentium 4 1.5 GHz geeft 48GB/s vgl: Pentium III 1 GHz geeft 16GB/s niet-blokerend 8-way set associatief 256-bit data bus (32 bytes) 256KB op Pentium 4 tot 2GHz 512KB op Pentium 4 vanaf 2GHz Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 39 Pentium 4 SSE2 (Streaming SIMD Extension 2) 144 nieuwe instructies !! 128-bit SIMD instructies hierdoor zijn minder instructies nodig nadeel: enkel nieuwe software maakt hiervan gebruik interessant voor video, speech, beeld- en fotoverwerking, encryptie, finantiele berekeningen, wetenschappelijke toepassingen Geheugen gebruikt (dure) RDRAM (Rambus DRAM) per paar geheugen upgrades zijn daarom duur Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 40 Pentium 4 Benchmarks SPECint en SPECfp zijn nog niet uit (voor zover ik weet) Pentium 4 is niet sneller voor Productivity Software (zoals Word en Excel) wel sneller voor de andere toepassingen (3D, multimedia, scientific, …) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 41