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

Relevanta dokument
Tentamen den 18 mars svar Datorteknik, EIT070

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Exempeltentamen Datorteknik, EIT070,

Digitala System: Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Minnet från processorns sida Datorteknik

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

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

Digitala System: Datorteknik ERIK LARSSON

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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)

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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.

Hantering av hazards i pipelines

Grundläggande datavetenskap, 4p

Datorsystem. Tentamen

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Pipelining i Intel 80486

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

Datorsystem. Tentamen

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Processor pipelining genom historien (Intel i9-intel i7)

Hantering av hazards i multi-pipelines

Datorsystemteknik för E/D

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

Datorsystemteknik DVGA03 Föreläsning 8

Digitala System: Datorteknik ERIK LARSSON

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

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

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

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

Datorsystem. Exempeltentamen

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Föreläsningsanteckningar 4. Pipelining

TSEA28 Datorteknik Y (och U)

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.

Datorteknik ERIK LARSSON

Lösningar till tentamen i EIT070 Datorteknik

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Parallellism i CDC 7600, pipelinens ursprung

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Jämförelse av skrivtekniker till cacheminne

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

Lösningar till tentamen i EIT070 Datorteknik

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

Pipelining i Intel Pentium II

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Datorarkitekturer med Operativsystem

MESI i Intel Core 2 Duo

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

4. Pipelining. 4. Pipelining

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

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

Tentamen PC-teknik 5 p Lösningar och kommentarer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Arm Cortex-A8 Pipeline

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

Föreläsningsanteckningar 5. Cacheminnen

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digital- och datorteknik

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

Tentamen. Datorteknik Y, TSEA28

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

Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

Lösningar till tentamen i EIT070 Datorteknik

Tentamensskrivning 11 januari 2016

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Tentamen. Datorteknik Y, TSEA28

Föreläsning 2. Operativsystem och programmering

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Tentamen PC-teknik 5 p Lösningar och kommentarer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Cache-koherens protokoll MESI och MOSI

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

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

Tentamen i EIT070 Datorteknik

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

Operativsystem (ID2200/06) XX XX:00-XX:00

Transkript:

Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 60 poäng För betyg 3 krävs 30 poäng För betyg 4 krävs 40 poäng För betyg 5 krävs 50 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 10 poäng. Beskriv och motivera lösning tydligt. a) Bestäm klockfrekvensen till en 2-stegs pipelined processor så att processorn blir så snabb som möjligt till en så låg effektförbrukningen som möjligt. Givet är att effektförbrukningen (P) beror linjärt på klockfrekvensen (f), dvs P=k*f där k är en konstant. Givet är att: a. klockfrekvensen på bussen och minne är 100 MHz b. att instruktionsläsning tar 100 klockcykler (Fetch) c. att exekvering tar 200 klockcykler (Execute) d. och att vid exekvering (Execute) behövs aldrig minnesläsning. b) Förklara Amdahls lag c) Antag att ett program implementeras så att 10% av instruktionerna måste exekvera sekventiellt och att 90% av instruktionerna kan exekvera parallellt. Hur mycket snabbare går det enligt Amdahls lag att exekvera på en dator med 4 processorer jämfört med en dator med 1 processor? 2

Lösning till uppgift 1. a) Med en två-stegs består pipelinen av två steg, t ex fetch och execute. Fetch-steget tar 100 klockcykler med en frekvens av 100 MHz. Det är i tid: 100*1/100MHz. I och med att uppgiften är att göra processorn så snabb som möjligt men till en så låg effektförbrukning som möjligt, ska execute steget göras lika långt som fetch steget. I execute steget behövs 200 klockcykler. Uttrycket för processorns frekvens blir: 200/f=100*1/100MHz. Nu kan frekvensen f räknas ut och den blir: f=200/100*100mhz=200mhz. Svar: För att få en så snabb processor som möjligt men till så liten effektförbrukning som möjligt ska processorn har klockfrekvensen 200MHz. b) Amdahls lag beskriver hur effektivt ett program kan exekvera på en processor när en aspekt förändras. För att använda Amdahls lag, behövs information på hur lång tid det tar att exekvera ett program på en processor (T1), hur stor del av ett program som måste exekvera parallellt (P), hur mycket stor del som måste exekvera sekventiellt (S=1-P) samt hur många beräkningsenheter processorarkitekturen har (N). Tid för att exekvera programmet blir: T1*(S+P/N) och möjlig speedup blir T1/ Tn vilket är lika med: T1/T1*(S+P/N) som kan förenklas till: 1/(S+P/N). c) För en dator med 4 processorer blir N=4. Om 90% av programmet kan exekveras parallellt blir P=0.9. Eftersom S=1-P blir S=0.1. Den möjliga speedup beräknas med 1/(S+P/N). Med värden blir möjlig prestandaförbättring: 1/(0.1+0.9/4)=3.08 3

Uppgift 2. Totalt 10 poäng. Beskriv och motivera lösning tydligt. a) Beskriv en minneshierarki b) Vad är Big och Little Endian? c) BEZ BranchEqualZero är ett villkorligt hopp. Men, hur och när bestäms villkoret? d) Givet är huvudprogrammet: instruktion 1 call proc A instruktion 3 instruktion 4 call proc A instruktion 6 och de två procedurerna A och B. proca: instruktion 11 call proc B instruktion 13 return procb: Instruktion 21 Instruktion 22 return Gör en lista som visar på i vilken ordning instruktionerna kommer att exekvera. Och, visa hur stacken kommer se ut vid exekveringen. 4

Lösning till uppgift 2. a) En minnen i ett datorsystem organiseras normalt som en hierarki. Närmast processorn finns register. De är få men snabba. Längst från processorn finns lagring som hårddisk. En hårddisk är i sammanhanget långsam men mycket information kan lagras. Mellan hårddisk och register finns primärminne, ett så kallat RAM. Ett primärminne kan lagra mindre än hårddisken men mer än register. Ett primärminne är snabbare än hårddisken men långsammare än register. Mellan primärminne och register är det vanligt att en eller flera nivåer med cacheminnen. I cacheminnen lagras kopior av data och instruktioner. Cacheminnen är långsammare än register men snabbare än primärminne. Cacheminnen kan lagra mer än register men mindre äm primärminne. b) För att lagra stora tal behövs mer än en byte. Big och Little Endian är regler på hur man ska tolka en ordning av bytes. I Big Endian är ordningen så att högsta byten kommer först. Jämför med vanligt talsystem där talen 123 tolkas så att hundratal kommer först. I Little Endian är det tvärtom. Byten som är minst värd kommer först. Det decimala talet 123 (etthundratjugotre) skrivs då som 321. c) För villkorliga hopp avgörs om ett hopp ska ta eller inte av en villkorsflagga. Denna villkorsflagga sätts av någon instruktion som exekverats före instruktionen för villkorshoppet. Till exempel villkorsinstruktionen BranchEqualZero (BEZ) gör hopp baserat på hur Zero-flaggan är satt. Zero-flaggan påverkas typiskt av aritmetiska instruktioner som ADD och SUB. Om till exempel en ADD R1, R2 (R1<- R1+R2) resulterar i ett resultat där R1=0 så sätts Zero-flaggan till 1. I annat fall sätts den till 0. När villkorsinstruktionen exekveras kommer värdet av Zero-flaggan att kontrolleras och baserat på dess värde kommer ett hopp göras eller inte göras. 5

d) Nedan till vänster listas den ordning i vilken instruktionerna kommer exekveras. Nedan till höger visas hur stacken kommer se ut vid call och retur operationerna. Instruktion 1 call proc A push 2 -> stack: instruktion 2 instruktion 11 call proc B push 12 -> stack: instruktion 2, instruktion 12 instruktion 21 instruktion 22 return (från B) pop (PC=12) -> stack: instruktion 2, instruktion 12 instruktion 13 return (från A) pop (PC=2) -> stack: instruktion 2 instruktion 3 instruktion 4 call proc A push (5) ->stack: instruktion 5 instruktion 11 call proc B push (12) -> stack: instruktion 5, instruktion 12 instruktion 21 instruktion 22 return (från B) pop (PC=12) -> stack: instruktion 5, instruktion 12 instruktion 13 return (från A) pop (PC=5) -> stack: instruktion 5 instruktion 6 6

Uppgift 3. Totalt 10 poäng. Beskriv och motivera lösning tydligt. Följande är givet: I-cache miss rate = 2%, D-cache miss rate = 4%, Miss penalty = 100 cykler, Base CPI (ideal cache) = 2 (Clocks per instruktion), Load & stores är 36% av instruktionerna, och uppgiften är att beräkna: genomsnittliga antalet misscykler per instruktion för I-cache och D-cache, verklig CPI och jämför verklig CPI med optimal CPI. 7

Lösning till uppgift 3. a) Genomsnittliga antalet misscykler per instruktion för I-cachen blir om miss rate är 2% och miss penalty 100 cykler så här: *0.02*100=2 b) Genomsnittliga antalet misscykler per instruktion för D-cachen blir om miss rate är 4%, miss penalty 100 cykler och 36% av instruktionerna är LOAD/STORE som vill kommunicera med minnet så här: 0.04*0.36*100=1.44 c) Den verkliga tiden blir då antal clocks per instruction + tid för missar i I-cache och D-cache, dvs 2+2+1.44=5.44 d) Om man nu jämför exekvering utan minnes access (optimal tid), tid 2, med tid där man tar hänsyn till cachemissar (verklig tid), tid 5.44, så får man 5.44/2 8

Uppgift 4. Totalt 10 poäng. Beskriv och motivera lösning tydligt. Antag ett virtuellt minne på 2G bytes, ett primärminne på 16M bytes, och en sida (page) är 2K bytes. a) Hur många sidor får plats i det virtuella minnet? b) Hur många ramar får plats i primärminnet? c) Hur många bitar behövs för att kunna adressera minnet? d) Hur många entries kan det finnas i en sidtabell? e) Hur många bitar används för offset delen i adress? f) Vad är demand paging? Och hur fungerar demand paging? Lösning till uppgift 4. a) Storleken på det virtuella minnet är 2G bytes och varje sida är på 2K bytes. Alltså kommer det att få plats: 2G/2K=1M sidor. b) Storleken på ramar är samma som storleken på sidor. Eftersom primärminnet är 16Mbytes så får det plats 16M/2K=8K ramar. c) Eftersom 2G = 2 31 så behövs 31 bitar. d) Det kan maximalt finnas lika många entries som det finns sidor, dvs 2G/2K. e) Offset används för att avgöra var man är på en sida. Eftersom en sida har storleken 2K bytes. 2K bytes är det samma 2 11 bytes så behövs 11 bitar. f) Demand paging innebär att bara de sidor som önskas (demands) kommer laddas in i primärminnet. Fördelen är att fler program kan vara aktiva. Det går snabbare att byta mellan olika program när man kör time-sharing. 9

Uppgift 5. Totalt 10 poäng. Beskriv och motivera lösning tydligt. a) Visa vad delayed load innebär om programmeraren skrivit: ADD R2, R3 LOAD R1, X ADD R2, R1 ADD R4, R3 SUB R2, R4 b) Visa vad delay branching innebär om programmeraren skrivit: MUL R3, R4 SUB #1, R2 ADD R1, R2 BEZ TAR MOVE #10, R1 TAR: ADD R2, R3 c) Vad är typiskt för en RISC processor om man jämför med en CISC processor? 10

Lösning till uppgift 5. a) Med delayed load exekveras alltid instruktionen efter en load instruktion utan stalls. Det gör att instruktionen efter load inte får ha konflikter med load instruktionen. I exemplet ändras ordningen så att ADD R2, R1 förskjuts nedåt eftersom instruktionen genom R1 har en konflikt med load instruktionen. ADD R2, R3 LOAD R1, X ADD R4, R3 ADD R2, R1 SUB R2, R4 b) Med delay branching fördröjs hoppet så att instruktionen efter hoppet alltid exekveras. Koden ändras så att en instruktionen flyttas till efter hoppet. I exemplet flyttas MUL R3, R4. Ordningen av instruktioner blir så här: SUB #1, R2 ADD R1, R2 BEZ TAR MUL R3, R4 MOVE #10, R1 TAR: ADD R2, R3 c) Typiskt för en RISC processor jämfört med en CISC processor är att en RISC processor har: Få och enkla instruktioner Få adresserings möjligheter Load-store arkitektur Instruktioner har fix längd och format Många register är tillgängliga 11

Uppgift 6. Totalt 10 poäng. Beskriv och motivera lösning tydligt. a) Med timesharing kan flera program exekvera på en processor. Förklara hur det är möjligt. b) Vad menas med att Semafor operatorer är atomära? c) Om Semafor operatorer inte är atomära, ge exempel på hur det kan bli fel. d) Vad används en inode till? Och, vad lagras i en inode? Lösning till uppgift 6. a) Genom att använda avbrott kan exekveringen avbrytas. Avbrott kan genereras av en extern klocka. Vid avbrott kommer exekveringen byta från ett vanligt applikationsprogram till operativsystemet. Operativsystemet bestämmer under sin exekvering vilket program som ska exekvera. b) Atomär betyder odelbar. De maskininstruktioner som svarar mot en Semaforoperator får inte avbrytas (delas) utan måste exekveras i en sekvens som inte avbryts. c) En Semafor används till exempel för att hålla koll på en resurs. Får att hålla ordning på om en resurs är ledig eller inte används en variabel. Om variabeln är 1 är resursen ledig. Annars är den upptagen. En process som vill ha resursen, kollar om variablen är 1. Om den är 1 så minskas värdet och processen tar resursen. Om nu två processer (A 12

och B) vill ha en resurs så kollar process A om variabeln är 1. Låt oss säga att den är det. Så process A vill nu räkna om värdet på variablen. Det tar några maskininstruktioner. Om process A blir avbruten under den tiden så kan process B kolla variabeln och se att resursen är ledig. Process B börjar också ändra värdet på variabeln. Nu har vi ett fall där två processer ändrar värdet på variabeln. d) En inode används för att hålla koll på en fil. En inode innehåller information om vem som skapade filen, när det gjordes, vem som har rättigheter att läsa, skriva och ända filen och var alla block är lagrade. 13