Datorarkitekturer med operativsystem ERIK LARSSON

Relevanta dokument
Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Parallellism i NVIDIAs Fermi GPU

Datorteknik ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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)

Grundläggande datavetenskap, 4p

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

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

SIMD i Intel s P5- baserade Pentium MMX

Parallellism i CDC 7600, pipelinens ursprung

Arm Cortex-A8 Pipeline

Datorarkitekturer med operativsystem ERIK LARSSON

Pipelining i Intel Pentium II

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

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

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

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

Cacheminne Intel Core i7

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

MESI i Intel Core 2 Duo

Datorteknik ERIK LARSSON

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorarkitekturer med operativsystem ERIK LARSSON

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

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

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Processor pipelining genom historien (Intel i9-intel i7)

Tentamen den 17 mars 2016 Datorteknik, EIT070

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Pipelining i Intel 80486

Digitala System: Datorteknik ERIK LARSSON

Program. Datorteknik. Semantiskt gap. C - Inledning. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk

Datorarkitekturer med operativsystem ERIK LARSSON

Hyper-Threading i Intelprocessorer

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

Hantering av hazards i pipelines

Närliggande allokering Datorteknik

HF0010. Introduktionskurs i datateknik 1,5 hp

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

Anujan Balasingam IDA14 NAND flashminnen

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

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

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Minnet från processorns sida Datorteknik

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

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

Datorsystem. Tentamen

Datorsystemteknik DVGA03 Föreläsning 8

Datorarkitekturer med operativsystem ERIK LARSSON

LINCE. -vad kommer sedan? Linköpings Universitet

Spekulativ exekvering i CPU pipelining

Multithreading in Intel Pentium 4 - Hyperthreading

TSEA28 Datorteknik Y (och U)

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

Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur

Datorteknik ERIK LARSSON

Cacheminne i en AMD Opteron Processor

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

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

Personal. Datorarkitekturer med operativsystem. Kursmoment. Laborationer

Cache-koherens protokoll MESI och MOSI

Öka prestanda i Shared-Cache multi-core processorer

Digitalteknik och Datorarkitektur

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Digitalteknik och Datorarkitektur 5hp

Rapport (1,5 HP) Lunds Universitet HT15

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

Datorteknik ERIK LARSSON

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

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

TSEA28 Datorteknik Y (och U)

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk

Digitala System: Datorteknik ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Datorsystemteknik för E/D

MESI-protokollets funktion i multiprocessorer

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

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

TSEA28 Datorteknik Y (och U)

Resurshantering i Dual-Core kluster

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

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

Transkript:

Datorarkitekturer med operativsystem ERIK LARSSON

Parallellberäkning Konstant behov av högre prestanda Prestanda har uppnåtts genom: Utveckling inom halvledarteknik Tekniker som:» Cacheminne» Flera bussar» Pipelining» Superscalar arkitekturer Men, single core CPUer räcker inte till. 4000 3500 3000 2500 2000 1500 1000 Klockfrekvens för några processorer Willamette Prescott Nehalem Ivy Bridge 500 Pentium II 0 486 1990 1995 2000 2005 2010 2015

Parallellberäkning När single core CPUer inte räcker till, fundera på: Fler CPUer Gemensamma resurser (delat minne (shared memory)) Busstruktur Avvägningar: Komplexitet av CPUer Gemensama resurser Prestanda på busstruktur

Klassificering av datorarkitekturer Baserat på instruktionsflödet och dataflödet, klassficerade Flynn datorer: Single-instruction single-datastream (SISD) Single-instruction multiple-datastream (SIMD) Multiple-instruction single-datastream (MISD) Multiple-instruction multiple-datastream (MIMD) Flynn, M., Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol. C-21, pp. 948, 1972.

Single-instruction single-datastream (SISD) En ström av instruktioner (IS) och en ström av data (DS) CPU Kontroll enhet Beräknings enhet IS Minne DS

Single-instruction multiple-datastream (SIMD) En ström av instruktioner (IS) och flera strömmar av data (DS) Beräknings enhet 1 DS 1 Kontroll enhet Beräknings enhet 2 DS 2 IS Beräknings enhet n DS n Minne

Multiple-instruction multipledatastream (MIMD) Flera strömmar av instruktioner (IS) och flera strömmar av data (DS) CPU IS 1 Kontroll Beräknings DS 1 enhet enhet DS 2 CPU IS 2 Kontroll enhet Beräknings enhet Minne CPU DS n IS n Kontroll enhet Beräknings enhet

Multicore och multicomputer Multicore chips: Flera processorer på varje chip Intel x86: Intel Core Duo, Intel Core i7 Multicomputers: Flera datorer sammankopplade Vectorprocessorer; har instruktioner för vektorberäkninar Multimedia extentions MMX för Intel x86, VIS UltraSparc, MDMX för MIPS, MAX-2 för HP PA-RISC

Prestanda på parallella arkitekturer Hur snabbt kan arkitekturer maximallt exekvera? Hur snabbt exekverar arkitekturer på ett normalt program? Hur mäta prestanda på en parallell arkitektur? Hur mäta prestanda om ytterligare funktionella beräkningsenheter läggs till?

Prestanda på parallella arkitekturer Peak rate: den teoretiska gränser på hur snabbt en arkitektur kan exekvera. Ofta har peak rate begränsat intresse eftersom det är svårt att uppnå peak rate Speedup (S): mäter vinsten med en parallell arkitektur jämfört med sekventiell exekvering: S = Ts / Tp där Ts är exekveringstid vid sekventiell exekvering och Tp är exekveringstid med parallell exekvering Efficiency (E) relaterar speedup till antal processorer, E=S/ p där S är speedup och p är antal processorer. Idealt (teori) ska: S= Ts / (Ts/p) = p vilket leder till E=1

Amdahls lag Förbättra en aspekt (sida) av en dator och förvänta sig proportionell förbättring: T improved = T affected improvement factor + T unaffected Exempel: Antag ett program med 100s exekveringstid där 80s används för multiplikation. Hur mycket snabbare (n) måste multiplikationen göras för att systemet ska bli 5 gånger snabbare? En olösbar ekvation. 5X (100/5) 80 20 + = n 20 Tid för icke multiplikation

Amdahls lag Antag att ett program (algoritm) implementeras så att f är den del som måste exekveras sekventiellt. Resten (1-f) kan exekveras parallellt på p enheter. f 1-f T s f (1-f)/p T p Exekveringstid: T p =f*t s +(1-f)*T s /p Speedup: S=T s /T p =T s /(f*t s +(1-f)*T s /p)=1/(f+(1-f)/p) Efficiency: E=S/p=1/(f*(p-1)+1)

Amdahls lag Antag att ett program (algoritm) implementeras så att f är den del som måste exekveras sekventiellt. Resten (1-f) kan exekveras parallellt på p enheter. f=20% (f-1)/4=20% (f-1)/4=20% (f-1)/4=20% (f-1)/4=20% Exempel: om f=20% och man har 4 processorer, fås: Speedup S=1/(0.2+(1-0.2)/4)= 2.5 Efficiency E=1/(0.2*(4-1)+1)= 0.625 Även en liten bit sekventiell exekvering (1/f) leder till begränsningar på speedup och efficiency

Processhantering Ett program behöver resurser för att kunna exekvera Alternerar mellan CPU och I/O cykler För att maximera utnyttjandet av CPU, används multiprogramming (time sharing, multi-tasking) mer än ett program är aktivt. Fetch Execute Fetch Execute Fetch Execute Fetch Tid för Facebook Tid för Musik 0101 0101 0011 Primärminne 0101 0101 0011 Byt program Data/instruktioner Control Central processing unit (CPU)

T I D Kontextbyte (context switch) Process A Process B Save state of A into PCBA Load state of B from PCBB A running Context switch B running Save state of B into PCBB Load state of A from PCBA Context switch A running

Process modell New preemption admitted Ready Running I/O, event completion dispatch I/O, wait exit Waiting Terminated

Processer och trådar En process består av en eller flera trådar (threads) där en tråd är sekventiell kod som kan exekvera parallellt med andra trådar A B C Alla trådar i en process delar data och stack, vilket gör att byte av tråd är mindre kostsamt än byte av process Hårdvarustöd: Programräknare och register per tråd Instruktionshämtning (fetch) på trådbasis Kontextbyte (byte av tråd) Effektiv exekvering av program med flera trådar (multithreading) Effektivt utnyttjande av processorns resurser

A Multithreading Scalar (icke-superscalar) processor En tråd A Tråd blockeras Interleaved multithreading A B C D A A Blocked multithreading A B C D A B C D B C A B B C C D

A Multithreading Superscalar processor A A A A En tråd A A A A Interleaved Blocked Simultaneous multithreading multithreading multithreading (SMT) A B C D A B C D A B C D A A B B C C D D A A A D D A A A A B B B B B B B C C A B A A B C A B C B D B B A B B B C C D

Framtid för multithreading? Kommer multithreading att överleva? Effektförbrukning -> enklare arkitekturer Cache-miss fördröjning Trådbyte kan vara kostnadseffektivt Flera enklare cores kanske delar resurser mer effektivt

Multi core Mål: koppla samman flera datorer för att få högre prestanda Jobb (process) parallelism Throughput av oberoende jobb Parallella program Ett program köra på flera processorer Multicore processorer Chip (IC) med flera processorer (cores)

Exempel 2 quad-core Intel Xeon e5345 (Clovertown) 2 quad-core AMD Opteron X4 2356 (Barcelona)

Exempel 2 oct-core Sun UltraSPARC T2 5140 (Niagara 2) 2 oct-core IBM Cell QS20

Minne-Processor Design Tillgång till minnet är en flaskhals Shared memory multiprocessor (SMP)

Minne-Processor Design Meddelande sändning Varje processor has sin adressrymd Meddelanden för kommunikation mellan processorer

Minne-Processor Design Buss design Bus Ring 2D Mesh N-cube (N = 3) Fully connected

GPU (grafik processor) Operera på element i vektorer T ex MMX (MultiMedia extension, Multiple Math extension eller Matrix Math extension) och SSE (Streaming SIMD Extensions) SIMD: alla processorer exekverar samma instruktion samtidigt men med olika data Vektor processorer: för streaming Instruktioner för vektorer, t ex lv, sv: load/store vektor addv.d: add vektor Vektor processorer är mer generella än ad-hoc media utökningar (MMX, SSE)

GPU historik Video kort 3D grafik behandling GPU:er För processorer för 3D» Spel Hantera pixlar

GPU i systemet

GPU arkitekturer Beräkningar är mycket parallella GPU:er är mycket multi-threaded Använder tråd (thread byts för att gömma långsamt minner» Mindre beroende av multi-level cacheminnen Trend går mot generella GPU:er Hetrogena CPU/GPU system» CPU för sekventiell kod och GPU för parallel kod Programmeringsspråk DirectX, OpenGL C för Graphics Compute Unified Device Architecture (CUDA)

Exempel: NVIDIA Tesla Streaming multiprocess or 8 Streaming processors

Sammanfattning Önskan om mer prestanda kan inte längre mötas med högre klockfrekvens Med parallella datorer samarbetar flera processorer för att lösa en uppgift Parallella program underlättar exekvering i en parallell arkitektur Datorer kan klassas som SISD, SIMD och MIMD Prestandan beror inte bara på antal beräkningsenheter, utan också hur parallellt ett program är Multithreading processorer ger via hårdvarustöd möjlighet att exekvera flera trådar