CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

Relevanta dokument
Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Processor pipelining genom historien (Intel i9-intel i7)

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Parallellism i CDC 7600, pipelinens ursprung

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Pipelining i Intel Pentium II

Hantering av hazards i pipelines

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Grundläggande datavetenskap, 4p

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Datorteknik ERIK LARSSON

Pipelining i Intel 80486

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

Datorarkitekturer med operativsystem ERIK LARSSON

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Datorteknik ERIK LARSSON

Datorsystemteknik DVGA03 Föreläsning 8

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

DEC Alpha instruktions Arkitektur

Spekulativ exekvering i CPU pipelining

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

32 Bitar Blir 64 Sammanfattning

SIMD i Intel s P5- baserade Pentium MMX

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Datorarkitekturer med operativsystem ERIK LARSSON

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

IT för personligt arbete F5

Datorteknik ERIK LARSSON

Minnesisolering för virtuella maskiner en hypervisorstudie

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Arm Cortex-A8 Pipeline

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Multithreading in Intel Pentium 4 - Hyperthreading

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt)

HF0010. Introduktionskurs i datateknik 1,5 hp

Rapport (1,5 HP) Lunds Universitet HT15

Föreläsning 2. Operativsystem och programmering

Föreläsning 1: Intro till kursen och programmering

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Digitala System: Datorteknik ERIK LARSSON

Valet mellan CISC och RISC processorn

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Föreläsning 1: Intro till kursen och programmering

Jämförelse av skrivtekniker till cacheminne

Parallellism i NVIDIAs Fermi GPU

Filöverföring i Windowsmiljö

Datorarkitekturer med operativsystem ERIK LARSSON

Datorhårdvaruteknik 1DV426 - Seminarie 1

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Laboration i datateknik

Cacheminne Intel Core i7

Tentamen den 17 mars 2016 Datorteknik, EIT070

Grafiska pipelinens funktion

Datorsystemteknik DAV A14 Föreläsning 1

Digitalteknik och Datorarkitektur 5hp

Hyper-Threading i Intelprocessorer

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Exempeltentamen Datorteknik, EIT070,

Cacheminne i en Intel Core 2 Duo-processor

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Datorsystemteknik DAV A14 Föreläsning 1

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Introduktion till programmering

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Det finns en hemsida. Adressen är

KUNDCASE. Inovia gjorde sin AI-utveckling 10 gånger snabbare med Power-plattformen

Mobile First Video on demand och livesändningar på Internet. Juni 2012

MESI i Intel Core 2 Duo

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Central Processing Unit

Gymnasiearbetets titel (huvudrubrik)

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Varför behöver man vara källkritisk?

Hannes Larsson - IDA 2, LTH Campus Helsingborg. NEC V R 4300i. Interlock-handling EDT621

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

TSEA28 Datorteknik Y (och U)

Att köpa ny dator SeniorNet Lidingö Januari-2016

Operativsystem. Hierarkin för hårdvara läses nerifrån

TSEA28 Datorteknik Y (och U)

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Datorarkitekturer med Operativsystem

Moderkortet Persondatorer Moderkortet Innehåll

Transkript:

CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson

Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde sig av sina komponenter. En jämförelse mellan den första superskalära processorn och en modern processor görs för att visa på hur teknik har återanvänts, samt hur den har utvecklats och hur prestandan har påverkats. För att enkelt visa vad som förändrats, så har jämförelsen gjort mellan komponentstruktur och prestanda. Genom faktasökningar på specifikationer och komponentsinformation om alla system som jämförts, så har resultaten jämfört och sammanställts i denna rapport. Resultaten jämförs sedan med en frågeställning för att dra en slutsats om hur tekniken har förändrats och hur den möjligen kommer se ut.

Innehållsförteckning 1. Introduktion... 4 a. Bakgrund... 4 b. Syfte... 4 c. Frågeställning... 4 2. Metod... 4 a. Litteratur... 4 b. Källor... 4 3. Resultat... 5 a. CDC6600 CP (CDC6600 Central Processor)... 5 i. Struktur... 5 ii. Prestanda... 5 b. Modern processor... 5 i. Struktur... 6 ii. Prestanda... 6 c. Jämförelse... 6 4. Diskussion... 7 a. Frågeställningsresultat... 7 b. Reflektioner... 7 5. Slutsats... 7 6. Referenslista... 9

1.Introduktion a. Bakgrund Denna rapport handlar om att beskriva den första superskalära processorn i CDC6600 (CDC6600, 2015) och sedan jämföra den med moderna superskalära processorer. Jämförelsen görs för att klargöra de förändringar som skett sedan tekniken med superskalära processorer uppkom, och hur den har förbättrats. b. Syfte Syftet med rapporten är att få en klar bild av hur den första superskalära processorn fungerade och såg ut. Syftet är också att jämföra dess funktionalitet från när tekniken först används mot hur den används idag samt fördelar/nackdelar och förändringar. c. Frågeställning I denna rapport ska följande frågor att besvaras: - Vad gjorde CDC6600 till den första superskalära processorn? - Hur skiljer sig den första superskalära processorn sig mot moderna superskalära processorer? 2. Metod a. Litteratur För att hitta information till just denna rapport hittade jag det mesta på internet i form av artiklar, forum och databaser av information då den mest fakta finns där i dagsläget. Självklart gäller det att vara extra källkritisk när man letar information på internet, men då ämnet jag valt inte är riktat i de flest meningar så valde jag att tro på den information jag hittade. Anledningen till att jag valde att helt använda mig av internet som källa var för att materialet jag sökte inte var riktad. Den information jag sökte var endast menad för att redogöra resultat i form av specifikationer. Söktermer: CDC6600, RISC, CISC, Superscalar processors, Scalar processors, Processors, b. Källor Mina källor kommer ifrån sökningar baserade på ämnet av rapporten. Källorna jag valt att ta information ifrån är ren fakta från antingen tillverkare eller källor som inte har någon ekonomisk vinning av att informationen är fel. Källorna har dubbelkollats så att det inte finns motstridig information på något annat ställe, utan de ger samma vilket gör att jag tror på mina källor.

Information så som t.ex. antal användare av just en specifik produkt kan vara skapt för att öka marknadsföringen av produkten men i detta fall bortses det då flera källor säger samma sak. Nästan alla källor är ganska nyligen uppdaterade vilket gör att informationen är aktuell, men behöver inte vara trovärdig för det. Dock pratar upprepningen av samma fakta återigen för att den är trovärdig. 3. Resultat a. CDC6600 CP (CDC6600 Central Processor) i. Struktur CDC6600, som lanserades år 1965 (till CERN i Geneve, Schweiz) blev ofta kallad för den första processorn (Superscalar Processors, 2015) med superskalär design. Och anledningen till att den blev kallad superskalär är pga. hur den använde komponenterna den bestod av. Tidigare modeller av processorer under samma tidsperiod så använde sig av endast en enkel CPU för att hantera allt i systemet. Detta gjorde också att CPU:n behövde vara ganska komplex för att kunna hantera allt i systemet. Skaparen Seymour Cray (Seymour Cray, 2015) av CDC6600 såg dock en möjlighet att förbättra prestandan på denna metod, samt minimera komplexiteten på CPU:n. Genom att låta CPU endast hantera aritmetiska och logiska beräkningar, och låta separata, mindre processorer ta hand om speciellt dedikerade uppgifter så som minnetsåtkomst och input/output, så kunde uppdelning göra så att CPU:n kunde avlastas och behövde därmed inte vara lika komplex. Anledningen till uppdelningen var att inte tvinga CPU:n att hålla koll på ett lika stort instruktionsset, vilket i sin tur gav ett minskat instruktionsset och gav senare namnet till RISC (Rise of the RISC Processor, 2015). Uppdelningen av dessa komponenter och hur de jobbade parallellt ihop är grunden för superskalära processorer, och det som idag nästan finns överallt. ii. Prestanda CDC6600 innehöll 10 stycken parallella funktionsenheter som kunde utförda 10 stycken parallella instruktioner samtidigt. Fördelen var såklart att man kunde utför fler instruktioner samtidigt, men nackdelen var att när en funktionsenhet jobbade med en instruktion så var den upptagen med den, alltså saknade den funktionaliteten pipelining (Pipeline (computing), 2015). För att kunna jobba parallellt med varandra så krävdes ganska stor arbetskraft från CPU:n för att bestämma om instruktioner kunde arbetas med utan att data som påverkades av varje instruktion inte krockade. Vissa kunde köras utan att krocka, men vissa påverkade samma data så de blev pausade. Detta krävde många beroendekontroller som utfördes på CPU:ns arbetskraft. Och allt eftersom fler instruktioner matades in desto mer påfrestad blev såklart CPU:n då fler beroendekontroller behövdes göras. Så även om parallella beräkningar kunde göras, så kunde också omfattningen av antalet instruktioner skapa problem då kontroller av krockar ökade i takt med att antalet instruktioner ökade. Då mängden hårdvara ökade så ökade också effektförbrukningen på superskalära processorer. Det var också därför kylning introducerades på CDC6600. b. Modern processor

i. Struktur Utvecklingen går framåt varje dag som går och man kan onekligen säga att dagens processorer är betydligt bättre än de vi såg på 1960-talet. Bättre komponenter, billigare komponenter och betydligt bättre struktur på hur en CPU ser ut. Däremot ser en processor, till grunden, ungefär likadan ut som den gjorde innan. Den innehåller en ALU för att utför aritmetiska & logiska beräkningar, ett register som tillhandahåller innehållet till ALU:ns beräkningar och ser till att resultatet sparas undan. Sedan finns också en kontrollenhet som utför programmen genom att peka runt varje operation av programmet till ALU, register och andra komponenter (Central processing unit, 2015). Moderna processorer använder sig av en kombination av superskaläritet och pipelining när det kommer till logiska beräkningar. Instruktioner kommer in genom en pipeline likt en stack där alla instruktioner flyttas ett steg för varje klockcykel. När en instruktion kommer till slutet av pipelinen så hanteras den av en kontrollenhet, så kallad dispatcher (Central processing unit, 2015), och skicka vidare till en av flera funtionsenheter. Kontrollenheten i detta fall bestämmer om instruktionen kan utföras parallellt utan att krocka med någon annan instruktion som utförs. Detta gör att en processor blir superskalär. ii. Prestanda Även om dagens moderna processorer är betydligt mycket snabbare då de har en hög klockfrekvens pga. Bättre komponenter, så betyder det inte att det är en bättre processor. Om t.ex. kontrollenheten vid slutet av en pipeline inte effektivt kan hantera alla instruktioner och skicka vidare dom, så kan det resultera i att processorn får samma prestanda som en billig processor. Problemet med effektförbrukning är också ett problem idag då fler komponenter beror på klockfrekvensen och ändrar sig därefter, vilket kräver energi. Detta i sin tur skapar värme vilket gör att processorn inte kan köras optimalt, och därför är kylningen av processorn en stor del. c. Jämförelse Det är svårt att jämföra superskalära processorer med t.ex. CDC6600 CP då det skiljer sig ganska mycket i ett rent fysisk perspektiv. Komponenterna har blivit bättre och fler, hanteringen av instruktioner har ökat då komponenterna blivit bättre. Komponenterna i moderna processorer har ökat sedan CDC6600 kom ut. På tidigare processorer så fanns det vanligtvis två stycken ALU:s och en FPU. Om man jämför detta mot idag så används oftast 4 ALU:s, två FPU:s och två SIMD enheter (Superscalar Processors, 2015). Så rent komponentmässigt så används fler och bättre komponenter på moderna processorer, men som sagt tidigare, dessa komponenter kräver också att de hanteras rätt. Skillnaden på hur den första superskalära processorn hanterade instruktioner parallellt skiljer sig också en del från hur den har blivit idag. I dagsläget används en kombination av superskalära processorer med pipelining för att utöka prestanda ännu mer (Central processing unit, 2015). En superskalär processor har flera parallella funktionsenheter som hanterar instruktionerna, men problemet med dessa var att när de hanterade en instruktion så ansågs de vara upptagna. Detta skapade en begränsning och då också ett problem. Detta löstes genom att introducera pipelining på processorn. Genom att låta alla instruktioner komma in genom en pipeline och sen hanteras av en kontrollenhet så kunde man avgöra

om krockar skulle uppstå om man körde instruktionen samtidigt som någon annan. Om de inte gjorde detta så skickades instruktionerna in i pipelinade funktionsenheter som kunde hantera flera instruktioner efter varandra. Detta ökade såklart prestandan på processorn då den klarade av att hantera flera instruktioner åt gången, och parallellt med varandra. På tidigare modeller av processorer så fanns det färre komponenter, vilket ledde till mindre effektförbrukning och mindre värme, men samtidigt var prestandan sämre. På moderna processorer har prestandan ökat, samtidigt som att komponenterna blivit fler och effektförbrukning ökat, vilket har lett till mer avancerade kylsystem för att hålla processorn på en optimal nivå (Datorarkitektur med operativsystem, 2015). Rent generellt så har klockfrekvensen ökat avsevärt om man jämför med CDC6600, dock är detta också baserat på ny teknik och nya komponenter som gör det möjligt. Samtidigt så har ju komplexiteten på CPU:n ökat vilket kräver mer av processorn. 4.Diskussion a. Frågeställningsresultat Frågorna som jag ville ha svar på innan jag börjar skriva denna rapport var till för att få en djupare bild av hur superskalära processorer fungerade. Anledningen till att jag valde just detta ämne var pga. Hur mycket det används i dagen moderna processorer. Det som var oförväntat med mina resultat var att tekniken faktiskt ser ganska lik ut idag, cirka 50 år efter att den uppfanns, bara att den har förbättrats. Genom min jämförelse så har jag fått svar på hur en processor behöver vara uppbyggd för att klassas som superskalär. Jag har även fått se bevis på hur tekniken har förändrats vilket har visat att mycket av tekniken har behållits, bara att den har utvecklats. b. Reflektioner Eftersom tekniken har hållit sig på samma nivå ganska länge och bara förbättrats så är jag lite intresserad av att se hur det kommer se ut i framtiden. Kommer det att komma en ny teknik som gör den teknik vi använder i dag blir helt utbytt? Kommer den teknik vi använder att utvecklas till något bättre, eller kommer den att stanna var som den är? Med tanke på det tekniska mönstret vi har i samhället idag så tror jag definitivt att det kommer bli en ökning av både prestanda och komponenter, men samtidigt så tror jag nog att tekniken kommer att bytas ut. 5.Slutsats Anledningen till hela rapporten var att klargöra för mig själv och läsaren vilka förändringar som gjort inom området med superskalära processorer, och hur tekniken ser ut i moderna processorer. Syftet var alltså att förstå vad en superskalär processor är och vad som gör den superskalär.

Jag gjorde faktasökningar för att få en klarbild om vad en superskalär processor var och hur tekniken fungerade. Detta gjordes för att göra det möjligt att förstå och göra det möjligt att jämför den första superskalära processorn med dagens processorer. Resultatet som jag fick fram var till en viss del som jag trodde. Jag tog förgivet att tekniken hade utvecklats och blivit bättre än när den först kom ut, men att nästan all grundstruktur hade behållits till moderna processorer. Den hade förfarande utvecklats och gjorts bättre men den hade fortfarande samma grundpelare. Utifrån mitt resultat så kunde jag svara på mina frågor om vad som gjorde en processor superskalär och vad som skiljer sig ifrån processorn jag hade som referat och moderna processorer. Jag tror också att denna teknik kommer att göras bättre men jag tror samtidigt att om de har behållit tekniken i cirka 60 år så finns det en anledning till det, vilket får mig att tro att den inte kommer bytas ut, utan.

6.Referenslista 1. CDC6600, 2015 [Online] https://en.wikipedia.org/wiki/cdc_6600 [01-12-2015] 2. Superscalar Processors, 2015 [Online] https://en.wikipedia.org/wiki/superscalar_processor [01-12-2015] 3. Datorarkitektur med operativsystem, 2015 [Online] http://www.eit.lth.se/fileadmin/eit/courses/edt621/f%d67.15.pdf [04-12-2015] 4. Rise of the RISC Processor, 2015 [Online] http://alanclements.org/rischistory.html [05-12-2015] 5. Seymour Cray, 2015 [Online] https://en.wikipedia.org/wiki/seymour_cray [06-12-2015] 6. Pipeline (computing), 2015 [Online] https://en.wikipedia.org/wiki/pipeline_(computing) [07-12-2015] 7. Central processing unit, 2015 [Online] https://en.wikipedia.org/wiki/central_processing_unit#clock_rate [07-12-2015]