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)



Relevanta dokument
Grundläggande datavetenskap, 4p

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

Processor pipelining genom historien (Intel i9-intel i7)

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

Pipelining i Intel 80486

Datorteknik ERIK LARSSON

Närliggande allokering Datorteknik

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

Datorsystemteknik DVGA03 Föreläsning 8

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

Digitala System: Datorteknik ERIK LARSSON

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

Datorteknik ERIK LARSSON

Pipelining i Intel Pentium II

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

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

4. Pipelining. 4. Pipelining

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

DEC Alpha instruktions Arkitektur

Minnet från processorns sida Datorteknik

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorarkitektur. Fö 9: Datorarkitektur. Datororganisation. Typiska Arkitekturattribut. Introduktion till datorarkitektur.

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Det finns en hemsida. Adressen är

Datorsystem. Exempeltentamen

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

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

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

TSEA28 Datorteknik Y (och U)

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

MESI i Intel Core 2 Duo

IT för personligt arbete F5

Arm Cortex-A8 Pipeline

SIMD i Intel s P5- baserade Pentium MMX

Parallellism i CDC 7600, pipelinens ursprung

Datorarkitekturer med operativsystem ERIK LARSSON

Datorsystemteknik DAV A14 Föreläsning 1

Föreläsningsanteckningar 4. Pipelining

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

TSEA28 Datorteknik Y (och U)

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

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Cacheminne Intel Core i7

Tentamen den 18 mars svar Datorteknik, EIT070

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Datorsystem. Tentamen

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

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

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

32 Bitar Blir 64 Sammanfattning

LINCE. -vad kommer sedan? Linköpings Universitet

Jämförelse av skrivtekniker till cacheminne

TSEA28 Datorteknik Y (och U)

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Parallellism i NVIDIAs Fermi GPU

Att köpa ny dator SeniorNet Lidingö Februari-2019

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Tentamen den 17 mars 2016 Datorteknik, EIT070

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

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

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Hantering av hazards i pipelines

Intel Pentium. Intel khz. 32 million 2600MHz. Copyright 2005 Benny Thörnberg, Mattias O Nils

Målsättning med kursen

Tentamen PC-teknik 5 p Lösningar och kommentarer

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

Datorsystemteknik DAV A14 Föreläsning 1

Agenda. Syfte med datorbygge Datorns delar. Datorbygge. Moderkort Processor Minne och hårddisk Instickskort Övrigt

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

Digitalteknik och Datorarkitektur 5hp

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

Digitalteknik och Datorarkitektur

Moderkortet Persondatorer Moderkortet Innehåll

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

Datorsystem. Tentamen

Innehåll. Programmeringsteknisk översiktskurs för yrkeshögskoleprogram. Operativsystem. Vad är/gör en processor? Klockhastighet

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Datorarkitekturer med operativsystem ERIK LARSSON

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

Datorsystemteknik för E/D

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Transkript:

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

En dators arkitektur På en lägre nivå kan vi ha lite olika syn på vad en dator är: Frågor som rör instruktionsuppsättningsarkitektur (ISA) relaterar till programmeringen av datorn Frågor som rör hur olika logiska enheter är kopplade till varandra brukar benämnas mikroarkitektur. Mikroarkitekturen skall möjliggöra realiseringen av ISA. Systemdesign omfattar helheten vad gäller hårdvara för datorsystemet.

CPU En CPU (central processing unit) är ett mikrochip som innehåller det mesta en dator behöver för att bearbeta data Den aritmetiska enheten (ALU) sköter alla matematiska beräkningar på heltal och logiska uttryck Flyttalsenheten (FPU) sköter beräkningar på flyttal

CPU Kontrollenheten sköter om att läsa instruktioner och data för att rätt sak ska vara på rätt plats vid rätt tidpunkt De olika delarna kommunicerar med olika busar Databus Adress bus Kontroll bus Data lagras tillfälligt i olika register Animation om hur en CPU arbetar hittar du på http://courses.cs.vt.edu/~csonline/machi nearchitecture/lessons/cpu/sumprogram.html

Instruktionsuppsättningar En processor kan endast utföra relativt enkla operatorer Aritmetiska (addera, subtrahera, etc) Logiska (and, or, etc) Dataflyttning (move, input, store, etc) Programkontroll (goto, if, call, etc) Operatorerna tar typiskt sina argument från register och lägger oftast även resultaten i register Man kan tänka på registren som processorns kladdpapper I x86 finns det ca 35 olika heltalsregister av olika bit-längd 8 flyttalsregister organiserade som en stack

Mikroarkitektur Samma instruktionsuppsättningar (tex x86) kan realiseras på olika mikroarkitekturer Intels Pentium och AMD Athlon kör båda x86, men processorerna har olika mikroarkitektur

Pipelining Om instruktionerna är relativt enkla har man större kontroll över hur olika instruktioner skall lösas Ett exempel på steg som är typiska för utförandet av en typisk instruktion är: Hämta instruktion (IF, Instruktion Fetch) Dekoda (ID, Instruction decode and register fetch) Utför (EX, Execute) Minnesåtkomst (MEM, Memory access) Skriv tillbaks (WB, Register writeback)

Pipelining När vi identifierat specialiserade funktioner som skall utföras kan vi konstruera speciella kretsar i CPU:n som utför de olika delstegen parallellt. Det kallas för att processorn arbetar pipelinat Processorns arbete är strikt tidsstyrt med en klockpuls Varje delsteg tar ett fixt antal klockcykler att utföra Pipelining gör att alla stegen måste synkroniseras med varandra och cykeltiderna måste synkroniseras Detta ger att alla delsteg måste vänta på det delsteg som tar längst tid

INSTR 1 INSTR 2 INSTR 1 INSTR 2 INSTR 3 INSTR 4 INSTR 5

Pipelining I teorin ger pipelining nära nog samma uppsnabbning som antal steg i pipelinen I praktiken kommer det att finnas beroende mellan data etc som gör att uppsnabbningen blir något långsammare

CISC-RISC För att underlätta synkronisering mellan operatorer reducerade man antalet operatorer till ett fåtal relativt enkla (Reduced Instruction Set Computer, RISC) Exempel Motorolas PowerPC Fördelen är möjligheten till Pipelining, nackdelen är att det behövs fler operatorer för att lösa en given uppgift En annan approach är att ha komplexa operatorer (Complex Instruction Set, CISC) Exempel Intels i486 Fördelen är att det behövs relativt få operatorer för att lösa ett givet problem, nackdelen är att Pipelining blir svårare Moderna CISC processorer (tex Intel Pentium 4) bryter internt ner operatorerna för att kunna använda pipelining De senaste varianterna av Intel P4 har 31 stegs pipelining

Multicore Genom att lägga två eller fler CPU:er på samma chip kan beräkningskraften hos hela chipet öka CPU:erna delar vissa resurser, som businterface och cach-minnen Fördelen är att man med lägre klockfrekvens kan få bibehållen prestanda Nackdelen är att det kan bli databeroenden mellan CPU:erna En multicore CPU kan köra multithread utan multiplex!

Vektorprocessorer En vanlig CPU arbetar typiskt på ett tal (hel- eller flyt) i gången En vektorprocessor arbetar på många flyttal samtidigt Fram till 1990-talet var vektorprocessorer vanliga på superdatorer En Cray-1 hade 8 vektorregister med vardera 64 st 64 bitars tal Vektorprocessorer lämpar sig mycket bra för tekniska beräkningar På moderna datorer finns ofta Single Instructions Multiple Data (SIMD) möjligheter knutna till grafikprocessorerna

Beräkningskapacitet Hur snabb en dator är beror av en rad olika faktorer Klockfrekvens Ordstorlek Cachestorlek Instruktionsmängd (RISC, CISC) Bearbetningstekniker (pipelining, multicore) Hur man mäter

Klockfrekvens All digital elektronik (som en mikroprocessor) måste utföra sina operationer synkront Detta styrs med en klockpuls En klockcykel är den minsta tidsenhet vi kan ha på en dator Vissa operationer går att utföra på en cykel medan andra operationer tar flera cykler Generellt är gäller att en dator med högre klockfrekvens är snabbare CPU använder en högre frekvens än kringutrustning som minnen etc Klockfrekvensen mäts typiskt i GHz

Ordstorlek Ju fler bitar processorn kan arbeta med samtidigt, desto snabbare går det Registren, busarna och ALU sätter begränsningar för hur många bitar vi kan ha I dagsläget har de flesta datorer 32 eller 64 bitars ordstorlek

Cache Data som används i beräkningar används ojämt En del data används ofta och annat data sällan Genom att se till att det data som används ofta ligger i snabbare minne kommer hela datorn att kunna göra mer på mindre tid Registren är de snabbaste minnena följt av cache-minnen på olika nivåer

Att mäta hastighet Ett sätt att mäta prestanda är att räkna hur många flyttalsoperationer per sekund (flops) ett system kan prestera Detta sätt att räkna är relevant för tekniska beräkningar etc. Det är helt irrelevant för hur snabbt en tex kompilator kommer att gå på systemet Det tar inte heller hänsyn till snabbhet på kringutrustning som tex hårddiskar etc

Att mäta hastighet Ett annat sätt att mäta hastighet är att köra en applikation som känns relevant och klocka hur lång tid det tar att lösa en specifik uppgift Då mäter man hela systemets prestanda men repeterbarheten kan bli låg