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

Relevanta dokument
Exempeltentamen Datorteknik, EIT070,

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 17 mars 2016 Datorteknik, EIT070

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Närliggande allokering Datorteknik

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

Minnet från processorns sida Datorteknik

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

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

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

Digitala System: Datorteknik ERIK LARSSON

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

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med Operativsystem

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

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Pipelining i Intel 80486

Datorarkitekturer med operativsystem ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

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

TSEA28 Datorteknik Y (och U)

Hantering av hazards i multi-pipelines

Pipelining i Intel Pentium II

CE_O5. Cacheminne. Hemlaboration 2.

Tentamen. Datorteknik Y, TSEA28

Föreläsning 2. Operativsystem och programmering

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

Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Datorsystem. Tentamen

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

Omtentamen i CDT204 - Datorarkitektur

Datorsystemteknik DVGA03 Föreläsning 8

Grundläggande datavetenskap, 4p

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)

Föreläsningsanteckningar 5. Cacheminnen

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

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Datorsystem. Tentamen

Tentamen. Datorteknik Y, TSEA28

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

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)

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

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.

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

Jämförelse av skrivtekniker till cacheminne

Datorsystemteknik för E/D

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

Tentamen. Datorteknik Y, TSEA28

Lösningar till tentamen i EIT070 Datorteknik

HF0010. Introduktionskurs i datateknik 1,5 hp

Lösningar till tentamen i EIT070 Datorteknik

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

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

Datorteknik ERIK LARSSON

CE_O8. Cacheminne. Hemlaboration 2.

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Introduktion till programmering

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

Tentamen. Datorteknik Y, TSEA28

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

MESI i Intel Core 2 Duo

Tentamen PC-teknik 5 p Lösningar och kommentarer

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

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

Tentamensskrivning 11 januari 2016

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

CPU. Carry/Borrow IX. Programräknare

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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 PC-teknik 5 p Lösningar och kommentarer

Tentamen (Exempel) Datorteknik Y, TSEA28

Inledande programmering med C# (1DV402) Introduktion till programmering

IT för personligt arbete F5

Transkript:

Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Tentamen den 14 januari 2015 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. a) Förklara vad en kompilator är och vad den används till. Svar: En kompilator är ett datorprogram som utifrån en programtext skrivet i ett högnivåspråk som till exempel C, skapar ett motsvarande lågnivåprogram kapabelt att utföra de aktiviteter som programtexten beskriver, alltså ett slags översättare. Normalt genererar en kompilator maskinkod, b) Förklara sambandet mellan klockfrekvens och klockcykeltid. Svar: f=1/t. En processor med en frekvens på 1 MHz som utför en instruktion varje klockcykel utför således 1.000.000 instruktioner per sekund. c) Diskutera prestanda för en dator med klockfrekvens f, klockcykeltid T, och ett C-program med Y antal högnivåinstruktioner skrivna i C. Svar: Om man antar att varje högnivåinstruktion blir en maskinstruktion och att varje maskininstruktion exekverar på 1 klockcykel så blir exekveringstiden: Y*T d) Ge exempel på vad som påverkar prestandan i en dator förutom klockfrekvens. Svar: Algoritmer påverkar hur många instruktioner som behövs, programmeringsspråk påverkar antal instruktioner som behövs, kompilatorn påverkar hur många maskininstruktioner som behövs, kompilatorn påverkar prestanda av minnesaccess genom att använda mycket register, hårdvaran påverkar tid för varje instruktion. e) Beskriv Amdahls lag och konstruera ett exempel som illustrerar det lagen påstår. Svar: Om f är den del av ett program som måste exekveras sekventiellt så är 1-f den del av programmet som kan exekveras parallellt. Om p är antal beräkningsenheter så blir exekveringstiden: Tp=f*Ts+(1-f)*Ts/p 2

Uppgift 2. Totalt 10 poäng. a) Beskriv en minneshierarki. Svar: Typiska värden är: Processor registers: 8-32 registers (32 bitar -> 32-128 bytes) accesstid: få ns, 0-1 klockcykler On-chip cache memory (L1):32 till 128 Kbytes, accesstid = ~10 ns, 3 klockcykler Off-chip cache memory (L2):128 Kbytes till 12 Mbytes, accesstid = 10-tal ns, 10 klockcykler Main memory:256 Mbytes till 4Gbytes, accesstid = ~100 ns, 100 klockcykler Hard disk:1gbyte tid 1Tbyte, accesstid = 10-tal milliseconds, 10 000 000 klockcykler 3

b) Beskriv likheter och olikheter av datatyperna: Unsigned char och signed char Svar: Båda kräver 1 byte i lagringsutrymme. Skillnaden är i hur tal representeras. För unsigned char kan tal mellan 0 och 255 lagras. För signed char kan tal mellan -128 och 127 lagras. c) Förklara Little Endian och Big Endian. Svar: Om t ex ett tal som kräver två bytes (byte 1 och byte 2) ska lagras så kan byte 1 lagras innan byte 2, eller tvärtom. 4

Uppgift 3. Totalt 15 poäng. a) Förklara varför det är bra med cacheminne. Svar: Cacheminne är för program där det uppstår lokalitet i tid och rum. Lokalitet är t ex när samma instruktion (och instruktioner i dess närhet) används flera gånger. Används en instruktion endast engång per exekvering är cacheminne inte bra. b) I cacheminnen, vad är skillnaden mellan direktmappning och associativmappning? Svar: I ett cacheminne med direktmappning kan en byte bara hamna i en specifik cacherad. Det underlättar implementation och man slipper ha så kallade ersättningsalgoritmer. Men, det minskar flexibilitetet i att ha data/instruktioner i cacheminne. Associativmappnng är det mest flexibla. Data/instruktioner kan hamna i vilken cacherad som helst. Det krävs algoritmer för att för att bestämma vilken cacherad som ska ersättas vid en miss. Det tar också längre tid vid sökning efter data eftersom alla cacherader måste sökas igenom. c) Antag ett cacheminne på 64 byte som använder direktmappning och där blockstorleken/cacheline är på 8 byte. 1. Om processorn läser på adress C000EAFCH, vilka minnesceller (vilka adresser) kommer då att läsas in i cacheminnet? Svar: C00EAF8 C000EAFFH (OBS, man läser in 8 byte i taget och det gäller att hålla kolla på hur dessa ligger.) 2. Efter att processorn läst på adress C000EAFCH, fortsätter processorn att läsa adresserna enligt tabellen nedan i turordning. Ange för varje läsning om det är en träff (hit) eller miss (miss), där följande gäller för varje fall: i. Fall 1: blockstorleken 8 byte och direktmappning ii. Fall 2: blockstorleken 16 byte och direktmappning iii. Fall 3: blockstorleken 8 byte och associativmappning 5

C000EB00H C000EB04H C000EB08H C000EB0CH C000EB80H C000EB84H C000EB00H C000EB88H C000EB8CH C000EB90H Fall 1 Fall 2 Fall 3 MISS MISS MISS TRÄFF TRÄFF TRÄFF MISS TRÄFF MISS TRÄFF TRÄFF TRÄFF MISS MISS MISS TRÄFF TRÄFF TRÄFF MISS MISS TRÄFF MISS MISS MISS TRÄFF TRÄFF TRÄFF MISS MISS MISS 6

Uppgift 4. Totalt 15 poäng. a) Förklara följande adresseringsmoder: a. Direktadressering (Direct addressing) b. Omedelbaraddressering (Immediate addressing) c. Minnesindirektadressering (Memory indirect addressing) d. Registeradressering (Register addressing) e. Register indirektadressering (Register indirect addressing) Svar: (a) I direktadressering så pekar operanden ut en adress i minnet (b) I omedelbaradressering ligger operanden i instruktionen (c) I minnesinderektadressering ligger operanden i en adress som pekas ut av den adress som finns i instruktionen (d) I registeradressering ligger operanden i det register som pekas ut i instruktionen (e) I registeradressering pekas ett register ut i instruktionen. Det registret innehåller en adress i minnet där operanden ligger. b) Vilken/vilka av adresseringsmoderna ovan resulterar i minst konflikter i en pipeline (förklara och motivera)? Svar: För att minska antalet konflikter gäller det att minska antalet minnesaccesser till RAM/primärminne. Adresseringsmoder som har minst accesser till minnet är: omedelbaradressering och registeradressering. c) Beskriv vad som händer om följande instruktion exekveras i en pipeline: ADD R4, X //R4 <- R4 + X Svar: Om pipelinen består av FI, DI, CO, FO, EI, WO, händer följande. I FI kommer instruktionen hämtas från minnet. I DI avkodas instruktionen så att processorn vet vad som ska göras. I CO beräknas vilka operander som är inblandade. I detta exempel är det register R4 och minnesplatsen X. I FO hämtas operanderna, dvs innehållet i register R4 och innehållet på minnesplats X. I EI 7

beräknas additionen mha ALUn. I WO skrivs svaret av beräkningen i register R4. d) När uppkommer kontrollkonflikter i en pipeline? Svar: Kontrollkonflikter uppstår på grund av hopp. Normalt (inga hopp) så hämtas instruktionerna i den ordning de ligger i minnet. Det blir i en pipeline så att man påbörjar arbetet med en instruktion men den är fel eftersom man ska göra ett hopp. e) Förklara hur delayed branching används om programmeraren skrivit detta: MUL R3, R4 R3<-R3*R4 SUB #1, R2 R2<-R2-1 ADD R1, R2 R1<-R1+R2 BEZ TAR Branch om zero MOVE #10, R1 R1<-10 Svar: Vid villkorliga hopp (t ex BEZ) uppkommer en kontrollkonflikt. Ett enkelt sätt är att fördröja pipelinen så att 1 eller flera efterföljande instruktioner inte exekveras. Man gör så kallade STALL. Problemet är att prestandan går ner eftersom man slösar bort tid. För att undvika detta slöseri med tid kan man exekvera en instruktion som alltid ska exekveras. I detta fall kan man exekvera MUL R3, R4. Man placerar då den instruktionen efter BEZ TAR men i och med att man har en pipeline så kommer MUL R3, R4 att exekveras oavsett om hoppet tas eller inte. 8

Uppgift 5. Totalt 10 poäng. a) Vad används ett instruktionsfönster till? Svar: Instruktions fönster (instruction window) innehåller de instruktioner som processorn har att välja mellan vid en viss tidpunkt. Så, en superscalar processor, t ex, har vid varje tidpunkt de instruktioner som finns i instruktionsfönstret att välja mellan. b) Vad är skillnaden mellan en superscalar processor och en very long instruction word processor? Svar: Den fundamentala skillnaden ligger i hur och när det bestäms vilka instruktioner som ska exekveras. I en superscalar processor sköts det med hårdvara vid exekvering av programmet. I en VLIW processor sköts det om vid kompilering. c) Förklara hur loop unrolling kan öka prestandan. Svar: Om man har en VLIW så har man ett antal beräkningsenheter. Om man har en loop där man utför få instruktioner, så kommer många beräkningsenheter inte användas när loopen exekveras. Men, om man gör unrooling så kan man ändra så att loopen körs färre gånger men man gör mer arbete (fler instruktioner) i varje iteration. Då kan man utföra dessa instruktioner på de beräkningsenheter som finns tillgängliga. d) Hur fungerar branch predication? Svar: Detta är en kompilatorteknik som planerar att båda branches exekveras men man har villkor på när en exekvering blir synlig (committad). 9