Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Relevanta dokument
Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 17 mars 2016 Datorteknik, EIT070

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

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

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Exempeltentamen Datorteknik, EIT070,

Datorteknik ERIK LARSSON

Minnet från processorns sida Datorteknik

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

Datorteknik ERIK LARSSON

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

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

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

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

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.

Pipelining i Intel 80486

Pipelining i Intel Pentium II

MESI i Intel Core 2 Duo

Föreläsning 2. Operativsystem och programmering

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

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.

Parallellism i NVIDIAs Fermi GPU

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

Datorteknik ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Datorsystem. Tentamen

Jämförelse av skrivtekniker till cacheminne

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

Snapdragon 810: Cacheminnet

Datorsystemteknik DVGA03 Föreläsning 8

Arm Cortex-A8 Pipeline

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

Hantering av hazards i pipelines

TSEA28 Datorteknik Y (och U)

HF0010. Introduktionskurs i datateknik 1,5 hp

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

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Datorarkitekturer med operativsystem ERIK LARSSON

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

Processor pipelining genom historien (Intel i9-intel i7)

Datorsystemteknik för E/D

Datorarkitekturer med Operativsystem

TSEA28 Datorteknik Y (och U)

F5: Högnivåprogrammering

Datorsystem. Tentamen

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

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

Föreläsningsanteckningar 5. Cacheminnen

Datorarkitekturer med operativsystem ERIK LARSSON

F5: Högnivå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

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

CE_O8. Cacheminne. Hemlaboration 2.

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Cache-koherens protokoll MESI och MOSI

4. Pipelining. 4. Pipelining

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

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

IT för personligt arbete F5

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

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

Cacheminne i en Intel Core 2 Duo-processor

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

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

Datorteknik ERIK LARSSON

Introduktion till programmering

Datorsystem. Exempeltentamen

Datorarkitekturer med operativsystem ERIK LARSSON

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

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

Cacheminne Intel Core i7

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Lösningar till tentamen i EIT070 Datorteknik

CE_O5. Cacheminne. Hemlaboration 2.

Transkript:

Lunds Universitet LTH Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Skrivtid: 08.00-13.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. Omslagsarket skall vara fullständigt ifyllt. Kryssa för lösta uppgifter och ange antalet inlämnade blad. 1

Uppgift 1. Totalt 10 poäng. Beskriv och motivera lösning tydligt (omotiverade svar = poängavdrag). Dina antaganden ska tydligt framgå a) I minnet lagras 1:or och 0:or. Hur vet processorn att en viss mängd 1:or och 0:or ska tolkas som en instruktion eller data? Svar: Det beror på kontexten, vilket i det här fallet beror på om processorn är i fetch eller execute läge. Om processorn är i fetch läge och processorn läser på en address i minnet så kommer processorn tolka det som läses som en instruktion. Om processorn är i execute läge och processorn läser på en adress så är för att hämta data och då kommer processorn tolka det som läses som data. Processorn vet också tack vare instruktionen vad det är för typ av data som ska läsas, char, integer, osv. b) Vad tar en kompilator som indata och vad genererar den som utdata? Svar: En kompilator tar ett program skrivet i ett högnivåspråk som indata och genererar maskinkod eller assemblerkod som utdata. c) Vad gör en kontrollenhet under den tid som kallas FETCH? Svar: En kontrollenhet har som uppgift att ställa in kontrollsignaler. Vid FETCH ska kontrollenheten ställa in kontrollsignaler så att innehållet som pekas ut av innehållet i programräknaren hämtas in till instruktionsregistret. Under FETCH kan också programräknaren räknas upp så att processorn är beredd att hämta nästa instruktion. d) Hur påverkar implementationen av kontrollenheten prestandan i processorn? Svar: Antal klockcykler som behövs för att utföra en instruktion påverkas av hur kontrollenheten är uppbyggd. Om processorn t ex har en buss måste kontrollenheten bestå av fler kontrollsteg då det uppkommer konflikter på buss. Det påverkar prestandan på sätt att det tar längre tid att exekvera en instruktion. 2

e) Beskriv vad Little Endian är. Svar: När man lagrar en byte i ett minne får man 8-bitar. Minnen är ofta byteadresserade så då är det är enkelt. Det som lagras på en viss adress är just en byte. Men, om man vill lagra större datatyper, t ex ett heltal (integer) så krävs flera bytes. Det blir då en fråga hur dessa byten sätts ihop. Om en datatyp kräver två bytes och man lagrar med så kallad Little Endian så kommer den minst värda byten lagras först, dvs med lägst adress. Uppgift 2. Totalt 10 poäng. Beskriv och motivera lösning tydligt (omotiverade svar = poängavdrag). Dina antaganden ska tydligt framgå a) När man pratar om minnen, talar man ofta om fragmentering. Vad är fragmentering? Svar: Under tiden en dator exekverar så ligger olika program i minnet. När man påbörjar exekveringen så laddar man in program och använder dem. Så fort ett program blivit färdig så blir den platsen ledig. Nästa program som ska exekvera kanske inte får plats där, utan det bildas ett ledigt utrymme som är litet. Minnet kommer efter ett tag bestå av en massa små hål och det är detta som kallas att minnet är fragmenterat. Det innebär att det kan finnas plats i minnet, dvs om man lägger ihop alla delarna, men eftersom de ligger utspridda kan man inte ladda in ett program i primärminnet. b) I ett primärminne, förklara hur fragmentering kan undvikas? Svar: Ett sätt att undvika fragmentering är att använda så kallad paging. När man använder paging så delar man upp minnet i frames (ramar) och i varje ram kan man lagra en sida (page). För att hålla ordning på vilka sidor som ligger var så använder man sig av en sidtabell. Finessen med paging är att varje ledig frame kan användas även om dessa frames ligger utspridda. Man ska notera att med paging så undviker man extern fragmentering, men man kommer få intern fragmentering då storleken av ett program inte alltid matchar exakt med ramstorleken. Om man har ramstorlek 512 bytes och ska lagra ett program på 513 bytes så behöver man två ramar och använder då 512*2=1024 bytes. 3

c) Diskutera skrivstrategier för ett system med en D-cache? Svar: Det finns olika strategier för när man ska uppdatera en D- cache. Själva problemet är att det som finns i primärminnet kan skilja sig från det som finns i cacheminnet. För att råda bot på detta kan man t ex göra så att varje gång processorn skriver i cacheminnet så uppdateras primärminnet direkt. Fördelen med detta är att cacheminne och primärminne alltid innehåller samma sak. Nackdelen är att man tar bort effekten av ett cacheminne genom att man gör skrivningarna också till primärminnet. Ett annat alternativ är att man gör uppdateringar på det som behöver uppdateras och man gör det med jämna mellanrum. Lite då och då blir primärminnet uppdaterat så att det innehåller samma sak som cacheminnet. Ett tredje alternativ är att uppdatera när man ska ersätta en cacherad. d) Diskutera skrivstrategier för ett system med en I-cache? Svar: I en I-cache lagras instruktioner. Instruktioner blir inte modifierade så det finns ingen anledning att uppdatera primärminnet. e) Varför används en så kallad translation look-aside buffer (TLB)? Svar: Om man använder paging så måste man använda sidtabeller. Sidtabellen måste lagras någonstans. Om man lagrar sidtabellen i primärminnet kommer varje läsning i minnet resultera i två läsningar. Först en läsning för att titta i sidtabellen och sedan en läsning för rätt information. För att snabba på läsningar i primärminnet när man använder paging kan man använda en translation look-aside buffer (TLB). En TLB är ett cacheminne för sidtabellen. Det gör att man oftast bara behöver läsa i TLBn och sedan i primärminnet. 4

Uppgift 3. Totalt 20 poäng. Beskriv och motivera lösning tydligt (omotiverade svar = poängavdrag). Dina antaganden ska tydligt framgå För uppgiften gäller en dator med följande komponenter. En processor med 1 CPI (klockcykel per instruktion) med en klockfrekvens på f=4ghz och ett minnessystem där access (läsning och skrivning) till primärminne tar tpm=100ns och access till cacheminnet tar tcm=10ns. Programmet som exekverar har 40% load/store instruktioner. a) Hur lång tid tar en klockcykel (tc)? Svar: Processorns frekvens är f och då är tiden på en klockcykel 1/f. Det gör att tc=1/f och om f=4ghz=4*10 9 Hz så blir tc =1/f=1/4*10 9 =0.25 ns. b) Hur många instruktioner hinner processorn med på 1 sekund? Svar: Om processorn klarar av 1 instruktion per klockcykel, vilket är givet av att CPI=1, så hinner processorn med: 4G=4*10 9 instruktioner på en sekund. c) Förklara termen CPI och teckna ett uttryck hur CPI beräknas? Svar: Termen CPI står för klockcykler per instruktion. Det fås genom att se hur många klockcykler det behövs för att utföra en instruktion. Man tar typiskt ett antal instruktioner och så ser man hur många klockcykler som behövs för att exekvera dem. d) Förklara hur en processor kan ha 1 CPI (klockcykel per instruktion) Svar: Ett sätt att över tiden får 1 CPI är att använda pipelining. Om man använder pipelining kan man ha flera instruktioner aktiva samtidigt, dock i olika pipeline steg. Om man har en pipeline med 4 steg och varje instruktion tar 4 klockcykler så kommer en instruktion bli klar i varje klockcykel, dvs man får 1 CPI. e) Antag att datorn ovan saknar cacheminnet. 1. Teckna ett uttryck för beräkning av medeltiden för tid som används för minnesaccess för instruktioner (tavgi). Svar: En processor gör kontinuerligt FETCH och EXECUTE. Minneaccess för att hämta instruktioner görs i FETCH och varje FECTH hämtar en instruktion. I och med att varje FECTH gör en minnesaccess så kommer medeltiden som används för minnesaccess av instruktioner (tavgi) beror tid för att läsa i 5

minnet. Varje instruktion måste läsas, vilket är givet av tpm, så tavgi = tpm = 100ns. 2. Teckna ett uttryck för beräkning av verklig CPI där hänsyn endast tas till minnesaccess för instruktioner (CPIi). Svar: Processorn måste för varje instruktion läsa in instruktionen (i FETCH fasen) och sedan exekvera instruktionen (i EXECUTE fasen). Tid för att läsa en instruktion i primärminnet är 100 ns. Processorn har en CPI 1 vid 4GHz. På den tid som minnet gör en läsning (100 ns) hinner processorn med 400 klockcykler (och 400 instruktioner). Beräkningen av 400 klockcykler beräknas som: tpm / (1/f)=tpm * f = 100*10-9 * 4*10 9 =400. Det gör att CPIi = CPI+400=401. 3. Teckna ett uttryck för beräkning av medeltiden för den tid som används för minnesaccess för data (tavgd). Svar: Minnesaccesser för data görs under EXECUTE delen. Programmet som exekverar har 40% instruktioner som gör access till primärminnet, vilket innebär att 60% av instruktionerna inte gör minnesaccess till primärminnet. Varje minnes minnesaccess är given av tpm = 100 ns. Medeltiden minnesaccess för data (tavgd)blir 0.4*100ns + 0.6*0=40ns. 4. Teckna ett uttryck för beräkning av verklig CPI där hänsyn endast tas till minnesaccess för data (CPDd). Svar: Processorn behöver alltid 1 CPI och till detta ska vi lägga de klockcykler som motsvaras av tid för minnesläsningar. Vi tecknar minnesaccess för data som CPDd = CPI + de klockcykler som går åt under tavgd. Vi har ovan räknat ut att på den tid det tar att läsa och skriva i minnet (tpm=100ns) hinner processorn exekvera 400 instruktioner. Vi har också ovan räknat ut att medeltiden minnesaccess för data (tavgd)blir 0.4*100ns + 0.6*0=40ns. Med detta kan vi räkna ut att processorn på tiden tavgd=40ns hinner med 400/100*40=160 klockcykler. Vi tecknar nu minnesaccess för data (CPDd) som CPI+ tavgd /(1/f), vilket blir CPI+ tavgd f=1+40ns4g=1+160=161. 6

5. Teckna ett uttryck för beräkning av verklig CPI där hänsyn tas till minnesaccess för både instruktioner och data (CPIid). Svar: Verklig CPI där hänsyn tas till både minnesaccess för både instruktioner och data blir: CPIid=CPI+CPIi+CPId -2 =1+400+160=561. Termerna CPIi och CPId är tecknade och beräknade ovan. Termen -2 tar vi med för att CPIi och CPId består av 1 CPI var. f) Antag att datorn ovan, dvs med cacheminne, och där hitrate i D- cache och I-cache är dhit=ihit=98%. 1. Teckna ett uttryck för beräkning av medeltiden för tid som används för minnesaccess för instruktioner (tavgi). Svar: Varje instruktion måste läsas in till processorn. Läsning av instruktioner kan göras i I-cache och primärminnet. I och med att hitraten för att läsa i I-chachen är 98% kommer endast 2% av läsningarna av instruktioner behöva läsa i primärminnet. Medeltiden för tid som används för minnesaccess för instruktioner (tavgi) blir: ihit* tcm + (1-ihit ) * tpm= 0.98*10+0.02*100= 9.8+2=11.2 ns. 2. Teckna ett uttryck för beräkning av verklig CPI där hänsyn endast tas till minnesaccess för instruktioner (CPIi). Svar: Vi beräknade medeltiden för tid som används för minnesaccess för instruktioner (tavgi) till 11.2 ns. På den tiden hinner processorn utföra tavgi/(1/f) klockcykler. Vi beräknar: tavgi/(1/f)= tavgi*f=11.2*10-9 *4*10 9 =11.2*4=44.8. Uttrycket för CPIi=CPI+ tavgi/(1/f)=1+44.8=45.8 3. Teckna ett uttryck för beräkning av medeltiden för den tid som används för minnesaccess för data (tavgd). Svar: Vi vet att 40% av instruktionerna gör load/store. Det gör att 60% av instruktionerna inte gör load store. För instruktionerna som gör load/store kommer vi i 98% av fallen läsa i cacheminnet. Det gör att i 2% av fallen kommer vi läsa i primärminnet. Medeltiden för den tid som används för minnesaccess för data (tavgd) blir: 0.4*(dhit*tcm + (1-dhit)*tpm+0.6*0=0.4*(dhit*tcm+(1-dhit)*tpm= 0.4(0.98*10+0.02*100)=0.4*(9.8+2)=0.4*11.2=4.48 7

4. Teckna ett uttryck för beräkning av verklig CPI där hänsyn endast tas till minnesaccess för data (CPId). Svar: Svar: Vi beräknade medeltiden för tid som används för minnesaccess för instruktioner (tavgd) till 4.48 ns. På den tiden hinner processorn utföra tavgd/(1/f) klockcykler. Vi beräknar: tavgd/(1/f)= tavgd*f=4.48*10-9 *4*10 9 =4.48*4=17.92. Uttrycket för CPIi=CPI+ tavgi/(1/f)=1+17.92=18.92 5. Teckna ett uttryck för beräkning av verklig CPI där hänsyn tas till minnesaccess för både instruktioner och data (CPIid). Svar: Verklig CPI där hänsyn tas till både minnesaccess för både instruktioner och data blir: CPIid=CPI+CPIi+CPId -2 =1+45.8+17.92=64.72. Termerna CPIi och CPId är tecknade och beräknade ovan. Termen -2 tar vi med för att CPIi och CPId består av 1 CPI var. Uppgift 4. Totalt 10 poäng. Beskriv och motivera lösning tydligt (omotiverade svar = poängavdrag). Dina antaganden ska tydligt framgå a) Hur klassificerar Flynn datorarkitekturer? Svar: Flynn klassificerade datorarkitekturer baserat på instruktionsflöde och dataflöde. Med detta fick han följande klasser: Single-instruction single-datastream (SISD) Single-instruction multiple-datastream (SIMD) Multiple-instruction single-datastream (MISD) Multiple-instruction multiple-datastream (MIMD) b) Hur fungerar Amdahls lag? Svar: Amdahls lag säger att ett relativt få instruktioner som måste exekveras i en sekvens på en arkitektur där man kan exekvera parallellt har en relativt stor påverkan. Om tiden Ts är den tid det tar att exekvera på en beräkningsenhet, f är så stor del av programmet som måste exekvera sekventiellt, och p är antal beräkningsenheter i den parallella arkitekturen. Då kan man teckna exekveringstiden av programmet som Tp=f*Ts+(1-f)*Ts/p. c) Vad är fördelen med att göra kontextbyten ofta? 8

Svar: När man gör kontextbyten ofta så byter man ofta mellan program och det gör att användaren i större utsträckning får illusion av att arkitekturen är parallell. d) Jämför en tråd och en process Svar: Ett program som börjar exekvera blir en process och en process måste bestå av minst en tråd, men kan bestå av flera. Allt som finns beskrivet för en process, delas mellan alla trådarna. Det gör att det är mindre kostsamt att byta (göra kontextbyte) mellan olika trådar än vad det är att byta mellan olika processer. e) Jämför en superscalar och very long instruction word processor Svar: Både en superscalar och en very long instruction word processor har flera beräkningsenheter för att öka prestandan genom att exekvera flera instruktioner parallellt. Det som skiljer är på sättet de hanterar parallellism. En superscalar processor tar ett program och försöker under drift (on-the-fly) hitta instruktioner som kan exekvera parallellt. Processorn har då ett fönster med instruktioner att välja mellan men detta fönster kan inte göras alltför stort då det har ett pris i hårdvara och det tar tid att söka igenom, vilket sänker prestandan. I en very long instruction word processor är det kompilatorn som undersöker och schemalägger hur parallellismen ska utnyttjas. I och med att det är kompilatorn som undersöker möjligheterna att exekvera instruktioner parallellt så finns det mer tid, dvs fönstret att leta efter instruktioner som kan exekvera parallellt kan göras lika stort som programmet. Fördelen med en superscalar processor är att vilket program som helst kan exekveras och binärer (kompilerade program) kan flyttas mellan olika processorer. Nackdelar är att det krävs mer hårdvara, effektförbrukningen kan bli hög. Fördelen med en very long instruction word processor är att ingen hårdvara behövs för att leta instruktioner som kan exekvera parallellt. Den hårdvaran kan istället användas för att införa fler beräkningsenheter. Nackdelar är att binärer (kompilerade program) inte kan flyttas mellan olika processorer eftersom binärerna är kompilerade för en arkitektur med ett visst antal beräkningsenheter. 9