1 / 64

Case studies

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

ping
Download Presentation

Case studies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Case studies De Intel 80x86 reeks voor PC IBM SP2 parallel computer

  2. De Intel 80x86 reeks voor PC

  3. 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

  4. 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)

  5. 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)

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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)

  11. 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

  12. 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"

  13. 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

  14. 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

  15. 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)

  16. 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)

  17. 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"

  18. 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)

  19. 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

  20. 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)

  21. 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

  22. 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)

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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%

  32. 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

  33. 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)

  34. 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

  35. Pentium III: toepassingsdomeinen

  36. 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

  37. 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.

  38. 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

  39. 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)

  40. 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

  41. 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

  42. 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, …)

  43. IBM SP2 parallel computer

  44. 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

  45. 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

  46. 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)

  47. 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

  48. 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)

  49. 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)

  50. 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)

More Related