Tentamen den 17 mars 2016 Datorteknik, EIT070

Relevanta dokument
Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Exempeltentamen Datorteknik, EIT070,

Tentamen den 18 mars svar Datorteknik, EIT070

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Minnet från processorns sida Datorteknik

Datorarkitekturer med Operativsystem

CE_O5. Cacheminne. Hemlaboration 2.

Föreläsningsanteckningar 5. Cacheminnen

CE_O8. Cacheminne. Hemlaboration 2.

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Cacheminne i en Intel Core 2 Duo-processor

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

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

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

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

Datorsystemteknik för E/D

MESI i Intel Core 2 Duo

Digitalteknik och Datorarkitektur 5hp

Jämförelse av skrivtekniker till cacheminne

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

TSEA28 Datorteknik Y (och U)

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

HF0010. Introduktionskurs i datateknik 1,5 hp

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Cacheminne i en AMD Opteron Processor

Digitala System: Datorteknik ERIK LARSSON

Datorsystemteknik DVGA03 Föreläsning 8

Tentamensskrivning 11 januari 2016

Närliggande allokering Datorteknik

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)

Datorsystem. Tentamen

Datorteknik ERIK LARSSON

Snapdragon 810: Cacheminnet

Parallellism i CDC 7600, pipelinens ursprung

Några gamla tentamensuppgifter: Minneshantering

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Hantering av hazards i pipelines

Cacheminne och adressöversättning

Datorarkitekturer med operativsystem ERIK LARSSON

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

Pipelining i Intel 80486

Datorteknik ERIK LARSSON

Lösningar till tentamen i EIT070 Datorteknik

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

Datorarkitekturer med operativsystem ERIK LARSSON

Öka prestanda i Shared-Cache multi-core processorer

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

Tentamen. Datorteknik Y, TSEA28

IT för personligt arbete F5

Lösningar till tentamen i EIT070 Datorteknik

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

DatorsystemteknikDAVA14 Föreläsning 9

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

Pipelining i Intel Pentium II

Datorteknik ERIK LARSSON

Föreläsning 5 1 CPI Sammanfattning pipelining Cacheminnen

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

Lösningsförslag till Tenta i Mikrodator

Föreläsningsanteckningar 4. Pipelining

Omtentamen i CDT204 - Datorarkitektur

Cache-koherens protokoll MESI och MOSI

Datorsystem. Tentamen

Mer datorarkitektur. En titt I datorn Minnen

Grundläggande datavetenskap, 4p

Arm Cortex-A8 Pipeline

Hemlaboration Cache Cacheminnen

Tentamen Grundläggande programmering

Processor pipelining genom historien (Intel i9-intel i7)

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

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Betygsgränser: För. Skriv endast på en. Denna. Uppgift. 1. (2p) 2. (2p) Uppgift. Uppgift 1) 4. Var god. vänd.

Tentamen PC-teknik 5 p

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

Tentamen PC-teknik 5 p Lösningar och kommentarer

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

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Lösningsförslag till tentamen i IS1500 Datorteknik

Lösningsförslag till Tenta i Mikrodator

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.

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

Datorteknik ERIK LARSSON

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Att använda pekare i. C-kod

Tentamen i Digital Design

Transkript:

Lunds Universitet LTH Tentamen den 17 mars 2016 Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg 5 krävs 40 poäng Alla lösa blad skall vara samlade i omslagsarket. Inlämnade uppgifter skall vara försedda med uppgiftens nummer. Lösningarna skrivs in i nummerordning. Skriv namn på varje ark. Omslagsarket skall vara fullständigt ifyllt med inskrivningsår, namn och personnummer. Kryssa för lösta uppgifter och ange antalet inlämnade blad. 1

Uppgift 1. Totalt 15 poäng. Givet: 16000000 (16 miljoner) instruktioner ska exekveras där varje instruktion tar 200ns (n=nano=10-9 ) att exekvera och instruktionerna kan delas optimalt på 1, 2, 4 och 8 pipelinesteg. a) Beräkna tid för varje steg i pipeline, exekveringstid och speed-up. För svar, visa beräkningarna och fyll i tabellen nedan (återge tabellen på svarsblad). Exekveringstiden för att exekvera 16000000=16*10 6 instruktioner då varje steg tar 200*10-9 blir 16*10 6 *200*10-9 = 3200*10 6 *10-9 = 3.2 sekunder. När varje steg i pipelinen tar 100ns, så kommer exekveringstiden att halveras, 3.2/2=1.6 sekunder. Speed-up blir 2. Om man vill vara exakt kan man lägga till ett extra steg i början av exekveringen. Detta påverkar endast med 100ns, vilket är försumbart. När varje steg i pipelinen tar 50 ns, så kommer exekveringstiden att halveras ytterligare en gång, 3.2/4=0.8 sekunder. Speed-up blir 4. När varje steg i pipelinen tar 25 ns, så kommer exekveringstiden att halveras ytterligare en gång, 3.2/8=0.4 sekunder. Speed-up blir 8. Djup i pipeline Tid för varje steg Exekveringstid Speed-up 1 200 ns 3.2 sekunder 1 2 100 ns 1.6 sekunder 2 4 50 ns 0.8 sekunder 4 8 25 ns 0.4 sekunder 8 2

b) Som i (a) men beräkna tid för varje steg i pipeline, exekveringstid och speed-up och ta hänsyn till att varje pipelinesteg genererar extra kontroll om 10 ns. För svar, visa beräkningarna och fyll i tabellen nedan (återge tabellen på svarsblad). Djup i pipeline Tid för varje steg Exekveringstid Speed-up 1 210 ns 3.36 sekunder 1 2 110 1.76 sekunder 1.9 4 60 0.96 sekunder 3.5 8 35 0.56 sekunder 6 Exekveringstiden för att exekvera 16000000=16*10 6 instruktioner då varje steg tar 210*10-9 blir 16*10 6 *210*10-9 = 3360*10 6 *10-9 = 3.36 sekunder. När varje steg i pipelinen tar 110ns, så kommer exekveringstiden att bli 16*10 6 *110*10-9 = 1760*10 6 *10-9 = 1.76 sekunder. Speed-up blir 3.36/1.76=1.9 När varje steg i pipelinen tar 60ns, så kommer exekveringstiden att bli 16*10 6 *60*10-9 = 960*10 6 *10-9 = 0.96 sekunder. Speed-up blir 3.36/0.96=3.5 När varje steg i pipelinen tar 35ns, så kommer exekveringstiden att bli 16*10 6 *35*10-9 = 560*10 6 *10-9 = 0.56 sekunder. Speed-up blir 3.36/0.56=6. 3

c) Som i (a) men ta hänsyn till konflikter (hazards) men inte extra kontroll som i (b). Konflikter genererar stalls som fördröjer exekveringen, t ex om pipelinen i exemplet nedan har 2 steg så är sannolikheten att en instruktion påverkas med en (1) stall givet som 60% (se tabell). För svar, visa beräkningarna och fyll i tabellen nedan (återge tabellen på svarsblad). Djup i Risk för stall Tid för Exekveringstid Speed-up pipeline per instruktion varje steg 1 0% 200 ns 3.2 sekunder 1 2 60% 100 ns 2.56 sekunder 1.25 4 140% 50 ns 1.92 sekunder 1.67 8 410% 25 ns 2.04 sekunder 1.57 Exekveringstiden för att exekvera 16000000=16*10 6 instruktioner då varje steg tar 200*10-9 blir 16*10 6 *200*10-9 = 3200*10 6 *10-9 = 3.2 sekunder. När varje steg i pipelinen tar 100ns och risken för stall per instruktion är 60%, så kommer exekveringstiden att bli 16*10 6 *1.6*100*10-9 = 2560*10 6 *10-9 = 2.56 sekunder. Speed-up blir 3.2/2.56=1.25 När varje steg i pipelinen tar 50ns, så kommer exekveringstiden att bli 16*10 6 *2.4*50*10-9 = 1.92*10 6 *10-9 = 1.92 sekunder. Speed-up blir 3.2/1.92=1.67 När varje steg i pipelinen tar 25ns, så kommer exekveringstiden att bli 16*10 6 *5.1*25*10-9 = 2.040*10 6 *10-9 = 2.04 sekunder. Speed-up blir 3.2/2.04=1.57. 4

Uppgift 2. Totalt 15 poäng. a) En processor med en klockfrekvens på 4GHz (G=giga=10 9 ) har ett primärminne med accesstid (läsningar och skrivningar) på 100ns (n=nano=10-9 ). Hur många klockcykler hinner processorn exekvera på den tid det tar att göra en minnesaccess? När klockfrekvensen är 4GHz=4*10 9 så är tiden för en klockcykel 1/4*10 9 =0.25*10-9 =0.25ns. På 100ns, hinner processorn 100ns/0.25ns=400 klockcykler b) En processor med klockfrekvens på 4GHz (G=giga=10 9 ) har ett primärminne med accesstid (läsningar och skrivningar) på 100ns (n=nano=10-9 ) och en I-cache med accesstid på 10ns. Vilken hitrate behövs för att minnesaccesser i genomsnitt ska ta den tid det tar för processorn att exekvera 100 klockcykler? Den tid det tar för processorn att hinna 100 klockcykler är lika med: 100*1/4G=100*1/4*10 9 =25ns. Om hit raten ges av x, så kommer vi spendera x*10ns om vi får en träff i cacheminnet och (1-x)*(10+100)ns om vi får en miss och måste läsa i primärminnet. Uttrycket för minnesaccess blir: x*10ns+(1-x)*(10+100)ns. Vi vet att vi har 25 ns på oss så vi löser: 25=x*10+(1-x)*(10+100). Ur detta får vi att x=85/100=0.85. Vi behöver en hit rate på minst 0.85. (man skulle kunna argumentera för att vid miss i cacheminnet är tiden för kontroll om det är en hit eller en miss liten i förhållande till access till cacheminnet att man säger att vid miss så är tiden (1- x)*(10+100)ns.) 5

c) En processor har ett cacheminne med direktmappning där data element är 8 bitar (1 byte) och minnet adresseras per data element. Adressrymden är 20 bitar och för cacheminnet är en tag 11 bitar och varje block/cachrad kan lagra 16 bytes. Hur stort är cacheminnet? För svar, visa beräkning och med svar på cacheminnets storlek i bytes. När det gäller adressering så vet vi att vi måste ha några bitar för att adressera ett dataelement i en given cacherad/block. Varje block/cacherad är 16 bytes och vi kan adressera varje byte då data element är 8 bitar. För att adressera 16 bytes behöver vi 4 bitar. När det gäller antal tag-bitar så är de givna av antal adressbitar minus antal bitar för att adressera på en given cacherad minus antal cacherader. Det gör att antalet cacherader ges av antal adressbitar (20) minus antal tag bitar (11) minus antal bitar för att adressera en cacherad (4), 20-11-4=5. Det finns alltså 2 5 cachrader. Och eftersom varje cacherad kan lagra 16 bytes (2 4 ), kan vi räkna ut cacheminnets storlek till 2 5 *2 4 = 2 9 =512 bytes. Svar: Cacheminnets storlek är 512 bytes. 6

d) Antag ett 16-way set-associativt cacheminne som har storleken 2Mbytes (2 21 bytes). Varje block (cacherad) består av 16 dataord där ett dataord är på 64 bitar. Adressrymden (fysiskadress) är på 64- bitar. Hur är bitarna organiserade i cacheminnet (tag, index, offset). För svar, visa beräkning och hur många bitar som används för: TAG, CACHELINE/SET (index) och BYTE (offset). Ett dataord är på 64 bitar, dvs är 8 bytes. En cacherad består av 16 dataord, vilket gör att varje cacherad innehåller 8*16 bytes=128 bytes=2 7 bytes. I och med att en cacherad består av 16 dataord behövs 4 bitar att adressera. Det gör att BYTE=4. Storleken på cacheminnet är 2Mbytes, dvs 2 21 bytes och varje cacherad innehåller 2 7 bytes finns det 2 21 /2 7 = 2 14 cacherader. Dessa cacherader grupperas i grupper om 16, pga att minnet är 16- way-set-associative. För att representera 16 (2 4 ) behövs 4 bitar. Det gör att det finns 2 14 /2 4 =2 10 grupper, vilket gör att CACHELINE/SET=10. Storleken på TAG bestäms av antal adressbitar (64) antal bitar för CACHELINE/SET (10) antal bitar för BYTE (4): 64-10-4=50. Svar: Cacheminnet är organiserat enligt följande: TAG: 50 bitar, CACHELINE/SET 11 bitar och BYTE 4 bitar. 7

Uppgift 3. Totalt 10 poäng. Hur många beräkningsenheter behövs för att få en speed-up på 7 gånger jämfört med ren sekventiell exekvering om programmet som ska exekveras kan göras parallellt till 98%? Tid för att exekvera sekventiellt är Ts och tid för att exekvera parallellt är Tp och speed-up blir Ts/Tp. Tp är lika med den del som måste exekvera sekventiellt, vilket är 2% av Ts, dvs 0.02*Ts, plus den del som kan exekvera parallellt, vilket är 98% av Ts på p beräkningsenheter, dvs 0.98*Ts/p. Speed-up (Ts/Tp) är givet till 7. Hur många beräkningsenheter (p) behövs för att nå speed-up till 7. Speed-up=Ts/Tp. Uttrycket blir: 7=Ts/(0.02*Ts+0.98*Ts/p). Detta kan förenklas till=1/(0.02+0.98/p). Ur detta fås att p= 0.98/(1/7-0.02)=7.9, dvs 8 beräkningsenheter behövs. 8

Uppgift 4. Totalt 10 poäng. a) På vilket sätt påverkar en hoppinstruktion prestandan av en pipeline? Vid hoppinstruktioner exekveras inte nästa instruktion, vilket är normalt vid pipelining, utan instruktioner som ligger dit hoppet ska ske ska exekveras. Detta gör att pipelinen inte kan hållas full, vilket gör att prestandan går ner. b) Om en variabel är deklarerad som en char, hur mycket minnesplats i bitar behövs för att lagra variabeln? En char kan lagra värden mellan 0 och 255 och till detta behövs det 8 bitar, dvs 1 byte c) Förklara vad locality of references är och varför det är viktigt när det gäller hur datorer byggs. Locality of references innebär att vid exekvering så grupperar sig instruktioner och data i rum och tid. temporal : Under ett slumpvis valt kort tidsintervall används bara en mycket liten del av minnets adresser, dvs samma adressområden används om och om igen. spatial : När man använder en minnesadress så är sannolikheten stor att man också kommer att använda närliggande adresser. Eftersom vid exekvering av program blir så här så kan man lagra lite information närmre processorn, som man gör i cacheminnen och virtuelltminne. 9