Løsningsforslag eksamen TDT4160 høsten 2005



Like dokumenter
EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Forelesning Hurtigbuffer Kap 4.5

Forelesning ISA-nivået Kap 5.1

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning Optimalisering av μark Kap 4.4

SIE 4005, 9/10 (4. Forelesn.)

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Forelesning Instruksjonstyper Kap 5.5

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

Forelesning ISA: IJVM Kap 4.2

Fortsetelse Microarchitecture level

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Maskinvaredelen av INF 103: oversikt og innhold (1)

TDT4258 Eksamen vår 2013

SIE 4005, 8/10 (3. Forelesn.)

TDT4160 AUGUST, 2008, 09:00 13:00

Fortsetelse Microarchitecture level

Tildeling av minne til prosesser

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls.

Intel Core i7. Omid Mirmotahari 4

INF2270. Datamaskin Arkitektur

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF2270. Datamaskin Arkitektur

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

IN1020. Datamaskinarkitektur

Forelesning Mikroprogram for IJVM Kap 4.3

Forelesning Adresseringsmodi Kap 5.4

Tildeling av minne til prosesser

Forelesning 5. Diverse komponenter/større system

Introduksjon til DARK assembly

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

INF1400 Kap4rest Kombinatorisk Logikk

Oppsummering av digitalteknikkdelen

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Faglig kontakt under eksamen: Institutt for datateknikk og informasjonsvitenskap, Gløshaugen Steinar Line /

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

TDT DESEMBER, 2008, 09:00 13:00

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

SIE 4005, 2/10 (2. Forelesn.)

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Kapittel 4: Microarchitecture level

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

Dagens temaer. tema er hentet fra kapittel 4.3 og 4.4 om pipelining. til neste ukes forelesning (hvis tid) INF ! Mikrokode. !

Hvorfor lære om maskinvare*?

1 TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

IN1020. Minnehierarki

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Intel Core i7. Omid Mirmotahari 4

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

TDT DESEMBER, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT AUGUST, 2011, 09:00 13:00

Dagens temaer. Intern hukommelse (1) Maskinvaredelen av INF 103: oversikt og innhold (2) Maskinvaredelen av INF 103: oversikt og innhold (1)

Minnehåndtering i operativsystemer

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Øving 1: Busser, adressemodi, multiplekser og styreord

Datamaskinens virkemåte

Institiutt for informatikk og e-læring, NTNU Kontrollenheten Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

DBS22 Databasegjenopprettingsteknikker

Kapittel 3: Digital logic level

Litt om Javas class-filer og byte-kode

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting

INF2270. Input / Output (I/O)

NORGES TEKNISK- NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

TDT AUGUST, 2009, 09:00 13:00

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Transkript:

Løsningsforslag eksamen TDT4160 høsten 005 NB! Ved en feil er summen av prosentvektene for alle oppgavene 90 % og ikke 100 %. For å korrigere dette, ble alle resultater delt på 0,9. Oppgave 1 Alternativ Oppgave 1 4 5 a) X b) X c) X d) X e) X f) X g) X h) X i) X j) X k) X l) X m) X n) X o) X

Oppgave a) Underflyt vil si at en flyttallsoperasjon gir et resultat som er for nærme null til å kunne bli representert. I praksis vil dette si en eksponent som er mindre (negativt tall) enn hva som kan bli representert. b) I1: R = R * R5 I: R4 = R + 1 I: R = R5 + 1 I4: R7 = R * R4 Sann dataavhengighet. En senere instruksjon leser det en tidligere har skrevet. I eksempelet leser I R som blir skrevet av I1. I1 må dermed få skrive før I leser. Utavhengighet. To instruksjoner skriver til samme lokasjon (for eksempel register). I eksempelet skriver både I1 og I til R. I1 må dermed få skrive før I skriver. Antiavhengighet. En senere instruksjoner skriver til samme lokasjon (for eksempel register) som en tidligere leser fra. I eksempelet skriver I til R som I leser fra. I må dermed få lese før I skriver. c) Følgende steg skjer under behandling av et avbrudd: Enhet aktiverer avbruddslinje CPU godkjenner avbrudd Enhet oppgir avbruddsvektor CPU lagrer programinformasjon (programteller, statusord) CPU bruker avbruddsvektor til å finne avbruddsrutine Avbruddsrutine lagrer registerverdier Avbruddsrutine finner ekstra info om avbrudd (hvilken enhet, hvilken situasjon har oppstått) Avbrudd håndteres Avbruddsrutine setter tilbake registerverdier Programteller og statusord blir satt tilbake d) Hvis LOAD og STORE aksesserer forskjellige registre og hovedlagerceller er de ikke avhengig av hverandre og de kan fritt bytte rekkefølge. Hvis LOAD og STORE bruker samme register, har vi en vanlig avhengighet som håndteres som normalt. Hvis LOAD og STORE bruker samme (eller overlappende) hovedlagercelle har vi også en avhengighet. Denne kan være vanskelig å oppdage i kjøretid ettersom adressen kan være ukjent ved kompilering. Eksempel: Store [R4], R Load R6, [R8] Hvis R4 = R8 betyr dette i praksis at R6 blir satt lik R. Hvis instruksjonene derimot bytter rekkefølge vil ikke dette være resultatet lengre. IA-64 inneholder advanced load -instruksjoner som løser akkurat dette problemet.

Oppgave a) Lokalitetsprinsippet er årsaken til at hurtigbuffre fungerer så bra som de gjør. Dette prinsippet sier at (hoved-)lager ikke blir aksessert i et tilfeldig mønster. Dermed kan man forutse fremtidige lageraksesser og passe på å ha data i hurtigbuffer før de trengs. Lokalitetsprinsippet kan deles i to: Lokalitet i tid og lokalitet i rom. Lokalitet i tid sier at hvis en lagerlokasjon blir aksessert, er det sannsynlig at samme lokasjon vil bli aksessert i nær fremtid. Hvis noe hentes fra hovedlager, bør det derfor lagres i hurtigbuffer. Lokalitet i rom sier at hvis en lagerlokasjon blir aksessert, er det sannsynlig at en lokasjon i nærheten vil bli aksessert i nær fremtid. Hvis noe hentes fra hovedlager, bør data fra etterfølgende adresser derfor også hentes og lagres i hurtigbuffer. b) Write through : Data som blir skrevet til en hurtigbuffer, blir også skrevet til lavere nivå (1. nivå =>. nivå;. nivå => hovedlager). Dette er en enkel løsning som også sikrer at vi ikke har inkonsistens (ulik verdi for samme adresse på forskjellig nivå i minnehierarkiet). Ulempen er at det medfører flere skriveoperasjoner enn strengt tatt nødvendig. En fordel er at innlegging av nye hurtigbufferlinjer tar kortere tid ettersom man slipper å skrive tilbake en gammel. Dessuten er dette en enklere løsning enn Write back. Write back : Data som blir skrevet til en hurtigbuffer blir ikke skrevet til lavere nivå før det er absolutt nødvendig. Dette er en mer komplisert løsning som tillater inkonsistens i minnehierarkiet. Fordelen er at det blir så få skriveoperasjoner som mulig. Ulempen med write though betyr ikke så mye når det er snakk om skriving fra 1. til. nivås hurtigbuffer. Disse ligger uansett inne på prosessorbrikken begge to. Derimot tar skriveoperasjoner mellom. nivås hurtigbuffer og hovedlager lang tid og det er fornuftig å ta ekstra kompleksitet i form av write back for å minimere antallet.

c) Med direkte avbildning blir hovedlageradresser brukt som følger: Siden vi har 4 linjer, ord per linje og hvert ord er på bit, vil vi få følgende oppdeling av adressen: Tag 15 (= 0 - - 1 - ) bit Linje bit Ord 1 bit Byte bit Dette betyr at innholdet i minneadresser hvor linje-bit ene er like, vil havne på samme hurtigbufferlinje. Instruksjoner (starter på adresse 0 og er lagret fortløpende, hver instr. er bit): Instruksjon 1 &, startadr 0000 0000 linje 0 Instruksjon & 4, startadr 0000 1000 linje 1 Instruksjon 5 & 6, startadr 0001 0000 linje Instruksjon 7 & 8, startadr 0001 1000 linje Når det gjelder data, var det oppgitt at de lå lagret fra adresse 0010 1000. De 5 siste bit ene gir linje, ord og byte-plassering i hurtigbufferet. Dette gir: X, adr 0010 1000 linje 1, ord 0, byte 0 Lister opp innholdet i hurtigbuffer etter at hver instruksjon har blitt utført. Kaller de 8 bit ene som blir lest for X. 1. MOV R0, #0 1. MOV R5, #40 1. LD R1, [R5] 1 X ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) = Data etterfølgende X i hovedlager. Instruksjon og 4 vil først bli hentet inn til linje 1, men vil rett etterpå bli overskrevet når LOAD-instruksjonen aksesserer hovedlageret.

4. ADD R1, R1, R9 1 Instruksjon Instruksjon 4 5. ST [R5], R1 Her får vi skriving til en adresse der data ikke finnes i hurtigbuffer. Pga. write allocation hentes data (hurtigbufferlinje) inn først. Kaller innholdet i R1 for Y. 6. ADD R5, R5, #4 7. SUB R0, R0, #1 Instruksjon 7 Instruksjon 8 8. ADD R9, R9, #1 Instruksjon 7 Instruksjon 8 Oppgave 4 a) Mikroarkitektur kan deles opp i styreenhet (kontrollenhet el. control unit ) og utførende enhet ( datapath ). Den utførende enhet inneholder registrene og ALU og er den som faktisk utfører operasjoner. Styreenheten inneholder logikk for å få den utførende til å gjøre de rette operasjonene for eksempel utføre et mikroprogram som implementerer en ISA-instruksjon. I tillegg bestemmer styreenheten neste tilstand, henter inn og tolker ISA-instruksjoner.

b) ISA-instruksjoner er de instruksjonene som er tilgjengelig for (assembly-) programmerere. De definerer dermed grensesnittet mellom maskinvare og programvare. Styreenheten i mikroarkitekturen leser inn ISA-instruksjoner fra et program og sørger for at disse blir utført av den utførende enheten. Styresignalene som blir generert fra styreenheten kan enten være generert av en sekvensiell krets (hardwired) eller via et mikroprogram. Et mikroprogram er en sekvens av mikroinstruksjoner som til sammen implementerer en ISA-instruksjon. En mikroinstruksjon er dermed en del av et mikroprogram og bestemmer hva den utførende enheten skal gjøre i en hel klokkesyklus. Mikroinstruksjonen vil også inneholde informasjon om hvilken mikroinstruksjon som skal utføres etterpå (styring av styreenheten). c) De tre figurene er gitt på neste side. (Pga. av at det i oppgaven står at MIR lastes i slutten av en klokkesyklus mens det i læreboka er slik at MIR lastes i starten av en klokkesyklus, ble det også godtatt at MIR inneholder mikroinstruksjonene til hhv. Bipush, Bipush og Swap6).

Legg merke til at skriveoperasjonen ( wr ) mot hovedlager enda ikke har tatt effekt.