Tentamen den 18 mars svar Datorteknik, EIT070

Relevanta dokument
Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Exempeltentamen Datorteknik, EIT070,

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Närliggande allokering Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Minnet från processorns sida Datorteknik

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

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Pipelining i Intel Pentium II

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

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

Grundläggande datavetenskap, 4p

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

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.

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

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

Datorsystemteknik för E/D

Hantering av hazards i pipelines

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

Digitala System: Datorteknik ERIK LARSSON

Datorsystemteknik DVGA03 Föreläsning 8

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

Datorsystem. Tentamen

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

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

Datorarkitekturer med Operativsystem

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

TSEA28 Datorteknik Y (och U)

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

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

Datorteknik ERIK LARSSON

Hantering av hazards i multi-pipelines

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

Parallellism i NVIDIAs Fermi GPU

Arm Cortex-A8 Pipeline

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

Pipelining i Intel 80486

Datorsystem. Tentamen

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)

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

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Datorteknik ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

Jämförelse av skrivtekniker till cacheminne

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)

HF0010. Introduktionskurs i datateknik 1,5 hp

Snapdragon 810: Cacheminnet

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

Tentamen. Datorteknik Y, TSEA28

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

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

Datorsystem. Exempeltentamen

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

Föreläsningsanteckningar 5. Cacheminnen

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

4. Pipelining. 4. Pipelining

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

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.

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

TSEA28 Datorteknik Y (och U)

Lösningar till tentamen i EIT070 Datorteknik

SIMD i Intel s P5- baserade Pentium MMX

CE_O5. Cacheminne. Hemlaboration 2.

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

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

Lösningar till tentamen i EIT070 Datorteknik

Introduktion till programmering

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

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

TSEA28 Datorteknik Y (och U)

Tentamen PC-teknik 5 p

TSEA28 Datorteknik Y (och U)

Lösningar till tentamen i EIT070 Datorteknik

Institutionen för datavetenskap 2014/15

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

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

F5: Högnivåprogrammering

Transkript:

Lunds Universitet LTH Tentamen den 18 mars 2015 - svar 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. a) Vad tar en kompilator som indata och vad genererar den som utdata? b) Vad gör en kontrollenhet under den tid som kallas FETCH? c) Hur påverkar implementationen av kontrollenheten prestandan i processorn? Svar till uppgift 1. a) En kompilator tar som indata ett program (källkod) beskrivet i ett högnivåspråk och genererar som utdata maskininstruktioner för en specifik processor. b) FETCH delen för en instruktion är gemensam för alla instruktioner, dvs det är samma sak som görs. Det som görs är att: (1) ta värdet som finns i programräknaren (2) läsa den data som finns på den plats som pekas ut av programräknaren (3) räkna upp programräknaren (4) lagra instruktion som lästs in i instruktionsregister (så att instruktion kan avkodas) c) Kontrollenheten bryter ned det som ska göras för en maskininstruktion i mindre delar (steg). Ju färre steg som används, ju snabbare exekveras instruktionerna. Det ställer krav på att mer saker kan utföras parallellt i varje steg, vilket ökar kostnaden för hårdvara. 2

Uppgift 2. a) Beskriv vad som görs vid ett kontextbyte. b) Hur bestäms det när kontextbyte ska ske? c) Varför används en så kallad translation look-aside buffer (TLB)? Svar till uppgift 2. a) Vid ett kontextbyte byter en processor exekvering av ett program (process/tråd) till ett annat program. För att göra detta möjligt måste information, t ex register innehåll, sparas i t ex ett process control block och registren måste laddas med information från det program som ska påbörja exekvering (från dess process control block). b) Kontextbyten sker vid avbrott. Dessa avbrott kan genereras av en extern klocka eller när ett program vill göra ett systemanrop för att göra t ex en I/O operation. c) Om minnet använder paging så behövs en sidtabell som håller ordning på var en sida (page) ligger i minnet. Denna sidtabell måste lagras någonstans. Om sidtabellen lagras i primärminnet kommer varje läsning/skrivning till primärminnet ta två accesser. Först en för att läsa sidtabellen och sedan en access för att läsa/skriva datan. Om man använder en TLB, dvs en cache för sidtabellen, så sparar man tid för läsning av sidtabell. 3

Uppgift 3. a) Assembly instruktioner för att adressera data använder olika adresseringsmöjligheter (moder). Vad kallas den typ av konflikter som instruktioners adressering kan påverka i en pipeline? b) Vad kan man göra för att minska pipeline stalls på grund av kontrollkonflikter? c) Hur fungerar delayed branching? Svar till uppgift 3. a) Instruktioner som hämtar data i minnet, t ex register indirekt, kommer att skapa en konflikt i pipelinen då processorn samtidigt som en instruktion vill läsa i minnet för att få tag på data också vill läsa i minnet för att hämta nästa instruktion. Denna typ av konflikter kallas strukturella hazards. b) Kontrollkonflikter i en pipeline kan man minska genom att använda delayed branching, branch prediction, och spekulativ exekvering. c) Delayed branching är en kompilatorteknik där kompilatorn går igenom koden. Ordningen av instruktioner ändras så att kompilatorn stoppar in en instruktion som alltid ska exekveras EFTER en hoppinstruktion. Detta har programmeraren skrivit: MUL R3, R4 SUB #1, R2 ADD R1, R2 BEZ TAR MOVE #10, R1 R3<-R3*R4 R2<-R2-1 R1<-R1+R2 Branch om zero R1<-10 Detta är det som kompilatorn (assemblatorn) genererar: SUB #1, R2 ADD R1, R2 BEZ TAR MUL R3, R4 MOVE #10, R1 R2<-R2-1 R1<-R1+R2 Branch om zero R3<-R3*R4 R1<-10 Även om MUL R3, R4 är placerad efter hoppet (BEZ) kommer instruktionen MUL R3, R4 alltid att exekveras. 4

Uppgift 4. a) I ett dataprogram används ett alfabet bestående av 28 tecken där varje tecken lagras som en byte. En vektor (en-dimensionell array) används för att lagra alfabetet. Vid uppstart av datorn läser processorn de 28 tecknen i en sekvens (ett tecken i taget). Första tecknet ligger på adress 0. Om cacheminnet för data består av cacherader om 8 bytes, vilken är sannolikheten för miss när denna data (alfabetet) läses? b) Om en optimal processor använder 2 klockcykler per instruktion (CPI), det kostar 100 klockcykler att läsa i minnet, och processorn läser data var 5:e instruktion (1 instruktion för läsning till minnet och sedan 4 instruktioner för beräkning), vad blir uttrycket för den verkliga tiden i klockcykler om cachesystemet ovan används (bortse från instruktions cache). Om du inte kan lösa uppgift (a) så anta sannolikhet för miss som p. Svar uppgift 4. a) I och med att data läses vid uppstart kan man anta att all data är fel i cacheminnet. 28 bytes ska läsas. Data läses en byte i taget. När processorn vill läsa på adress 0 får man en miss och data läses in till en cacherad. Här läses 8 bytes in (det som ligger på adress 0, 1, 2, 7). När processorn sedan vill läsa på adress 1 kollas cacheminnet och då hittas data (det lästes in samtidigt som data lästes av byte på minnesplats 0). Det viktiga att komma ihåg är att data läses till hel cacherad. Så, av 28 minnesläsningar kommer det att bli 4 missar. Det gör att missraten är: 4/28 (kan förenklas till 1/7). b) Den verkliga CPI för processorn ges av CPI plus misscykler i I-cache och i D-cache. I uppgiften står att man ska bortse från misscykler från I-cache (de sätts till 0). Misscykler från D-cache ges av antal läsningar i minnet (20%), missrate (1/7) och tid för minnesläsning (100). Den verkliga CPI:n blir då: 2+0.2*1/7*100 (ungefär 4.86 klockcykler). Optimal CPU är: 4.86/2=2.4 ggr snabbare. 5

Uppgift 5. a) Hur klassificerar Flynn datorarkitekturer? b) Hur fungerar Amdahls lag? c) Vad är True data dependency? Svar uppgift 5. a) Flynn klassificerar datorarkitekturer baserat på instruktionsström och dataström. Om det finns en instruktionsström och en dataström så har man en Singel Instruction, Single Data (SISD). Varje (instruktionsström och dataström) kan vara Single eller Multiple. Det gör att det finns följande klasser: Singel Instruction, Single Data (SISD) Single Instruction, Multiple Data (SIMD) Multiple Instruction, Single Data (MISD) Multiple Instructions, Multiple Data (MIMD) b) Amdahls lag visar på den maximala förbättring man kan få i ett datorsystem när man lägger till flera beräkningsenheter om ett program (algoritm) implementeras så att f är den del som måste exekveras sekventiellt och resten (1-f) kan exekveras parallellt. Om en processor används kommer tiden vara Ts (f*ts+(1-f)*ts). Om n processorer används blir exekveringstiden Tp= f*ts+(1-f)*ts/n. Man ser att även om endast en liten del av programmet måste exekvera sekventiellt så påverkar det väldigt mycket. c) True data dependency uppstår i arkitekturer med parallellism, t ex superscalar processorer, där det finns flera parallella pipelines. True data dependency uppkommer när resultat från en instruktion behövs som indata i följande instruktion. Om ordningen av instruktioner är så här: MUL R4, R3, R1 ADD R2, R4, R5 R4 R3 * R1 R2 R4 + R5 Om instruktionerna ovan exekverar i varsin pipeline så kommer inte R4 för instruktionen ADD R2, R4, R5 vara klart när instruktionen behöver värdet. 6