640 likes | 828 Views
Case studies. De Intel 80x86 reeks voor PC IBM SP2 parallel computer. De Intel 80x86 reeks voor PC. 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
E N D
Case studies De Intel 80x86 reeks voor PC IBM SP2 parallel computer
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
8086 (1978) • 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)
80286 (1982) • = 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 verschillende geprivilegieerde niveaus • biedt ondersteuning voor multi-tasking besturingssystemen (bv OS/2)
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 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
i386 (1985) • 32-bit processor • hogere klok-frequenties: 16 - 20 - 25 MHz • snelheid (3 - 7 MIPS) van een mainframe van 1970 • 32-bit adressengeeft een adresbereik van 4Gbytes • prefetch queue van 16 bytes • paginatie unit die paginatie op aanvraag ondersteunt
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
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
i486 (vervolg) • vaak bevindt zich op het moederbord nog een 'second-level cache' van 128 tot 256 Kbytes • on-chip cache: 1 klok cyclus • second-level cache: 1 bus cyclus (= 2 klok cycli)
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 MHz33 MHz => 66 MHz 50 MHz => 100 MHz
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"
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
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 transistorendeze grote hoeveelheid transistoren op één chip is mogelijk door • kleinere component-maten • groter gebruik van geconnecteerde lagen
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 32-bit adressen)
Pentium (vervolg) • 8Kbyte instructie cache+ 8Kbyte gegevens cachetelkens "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)
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"
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)
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
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 silicon- technologie (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)
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
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)
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
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
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
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
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
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
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
Pentium MMX • probleem 1: toevoegen van MMX op bestaande Pentium architectuur verlaagt de kloksnelheid • bottlenecks: decode en cache • Pentium architectuur heeft pipeline met 5 stages • 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
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%
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
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 GHz (Pentium Pro: 150/166/180/200) • 0.25 tot 0.18 micron technologie (Pentium Pro: 0.35) • grootte L1 en L2 cache: zoals betere Pentium II (2x16K en 512K)
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
Pentium III: toepassingsdomeinen (vervolg) • Productivity software • applications such as word processing, presentation, and personal finance programs • Multimedia software • includes audio, video, imaging, and creativity applications • 3D software • gaming, modeling, and simulation applications • Internet applications • Internet browsers, as well as 3D and multimedia Web content • benchmarks: zie tabel 1-5
Pentium 4 (2001) • eerste belangrijke architecturale vernieuwing sinds Pentium Pro (4 jaar eerder) • naam: Intel NetBurst Micro-Architecture • gebaseerd op .18 micron technologie, maar mikt op .13 • bevat 42 milj transistoren (14 milj meer dan PentiumIII) • de chip is dus ook substantieel groter • 1.4 GHz, zal 2 GHz worden bij .13 micron tech.
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
Pentium 4 • Advanced Dynamic Execution • kijkt 126 instructies vooruit (ipv 42 bij Pentium III) • betere branch prediction (33% minder mis-voorspellingen) • beter algoritme, 4KB BTB, geschiedenis-gebaseerd • Rapid Execution Engine • 2 integer ALU’s werken aan dubbele kloksnelheid (3GHz)
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 • 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 • 8-way set associatief • 256-bit data bus
Pentium 4 • SSE2 (Streaming SIMS Extension 2) • 144 nieuwe instructies !! • 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
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, …)
Globaal overzicht • SP2 = Scalable Powerparallel 2 • multicomputer, met 4 tot 128 knooppunten,met gedistribueerd geheugen • de processoren zijn Power2 processoren (zie uitleg verder) • “thin” processoren voornamelijk bedoeld voor veel rekenwerk 64 KB data cache, 64-512 MB geheugen, 1-4 GB disk • “wide” processoren voornamelijk bedoeld als zware servers 256 KB data cache, 64-2048 MB geh., 1-8 GB disk • kan een mix van jobs ondersteunen: zowel seriële als parallelle jobs zowel interactieve als batch jobs
Globaal overzicht (vervolg) • 1 frame kan 16 “thin” knooppunten herbergen, of 8 “wide” knooppunten of een mengeling van beide • een SP2 kan natuurlijk bestaan uit meerdere frames • een interconnectie netwerk (High Performance Switch) verbindt de knooppunten (zie tekening) • type: multistage • zeer performant • 1 switch per frame • potentieel kan elke processor met een andere processor simultaan communiceren • de afstand tussen 2 willekeurige knooppunten is gelijk
Power2 processor • in 1990 kondigt IBM het RISC Systeem/6000 aan: een nieuwe familie van (superscalaire) processoren • eerste implementatie heet IBM POWER (Performance Optimized With Enhanced RISC) • tweede implementatie: POWER2 met hogere kloksnelheid, grotere caches, en nog meer superscalair • de processor bestaat uit 8 chips • ICU: instruction cache unit • FXU: fixed point unit • FPU: floating point unit • SCU: storage control unit • 4 DCU: data cache units • niet te verwarren met de PowerChip (alles op 1 chip)
Power2 processor (vervolg) • de ICU: • bevat een 32 KB instructie cache (I-cache) • kan 8 instructies per cyclus ophalen uit de I-cache • kan 6 instructies per cyclus schedulen: • 2 zelf • 2 voor de FXU • 2 voor de FPU • voert voorwaardelijke en onvoorwaardelijke sprong-instructies uit • stuurt de andere instructies naar de FXU of de FPU • bij een sprong: doet een prefetch van de 2 mogelijke paden • als de sprong niet genomen wordt: meestal geen tijdsverlies • als de sprong wel genomen wordt: meestal 1 cyclus verlies
Power2 processor (vervolg) • de FXU • doet loads en stores, rekenkundige en logische bewerkingen • bevat 32 32-bit general purpose registers • bevat 2 functionele eenheden: • 1: optellen en logische bewerkingen uitvoeren • 2: idem + vermenigvuldigen (2 cycli) en delen (13-17 cycli) • inter-pipeline-forwarding mogelijkheid • tussen de uitgang van de ALU van de 1ste functionele eenheid • en de ingang van de ALU van de 2de functionele eenheid(dit verhoogt het parallel gebruik van de twee eenheden)
Power2 processor (vervolg) • de FPU • bevat 32 64-bit FP registers • bevat nog veel meer verborgen registers, voor bv elke load(dit verhoogt het parallel gebruik van de twee eenheden) • bevat 2 autonome identieke functionele eenheden • de CSU • regelt alle communicatie tussen de verschillende chips van de CPU en het geheugen • controleert de bus • de 4 DCU’s • 64 KB data cache - 256 KB data cache • de CPU (alle chips samen) bevatten 23 miljoen transistoren (zie tabel)
oude SP2 configuratie op het rekencentrum • de SP2 is verbonden met (zie tekening) • de IBM 3090 (een oude mainframe) • een rack met 16 GB • Kuleuvennet • werkstations en X-terminalen via ethernet • de SP2 bevat 16 “thin” knooppunten, elk met 4 GB disk • 8 met 128 MB geheugen • 8 met 256 MB geheugen • het rack met 16 GB (met alle gebruikersbestanden) hangt aan 1 bepaalde knoop (sp09) • 1 bepaalde knoop is de communicatie server (ethernet, FDDI, kanaal naar de IBM 3090) (sp10)