Avdelingfor ingeniørutdanning



Like dokumenter
. (AABBCCDDEEFF)16 X (16)10 = (:1:)16. (AABBCCDDEEFF)16 X (20)8 = (1/)8. (AABBCCDDEEFF)16 + (1)2 = {Z)16. (1)10 + (1)10 = (W)10

, ~', -~ lalle trykte og skrevne hjelpemidler. I Kalkulator som ikke kan kommunisere med andre.

Emne: Datamaskinarkitektur Emnekode:lO 134A Faglig veileder: Lars Kristiansen

Avdelingfor ingeniørotdanning

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

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

ITPE2400/DATS2400: Datamaskinarkitektur

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF1400 Kap4rest Kombinatorisk Logikk

Forelesning 5. Diverse komponenter/større system

Oppsummering av digitalteknikkdelen

IN1020. Datamaskinarkitektur

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

UNIVERSITETET I OSLO

G høgskolen i oslo ~~'~6"'-- - i Kalkulator som ikke kan kommunisere med andre. Dato:OS~3. Faglig veileder: Lars Kristiansen.

Intel Core i7. Omid Mirmotahari 4

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

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

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

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

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

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

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

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

Løsningsforslag til regneøving 6. a) Bruk boolsk algebra til å forkorte følgende uttrykk [1] Fjerner 0 uttrykk, og får: [4]

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Datamaskiner og operativsystemer =>Datamaskinorganisering og arkitektur

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

Dark load-store-maskin

Løsningsforslag INF1400 H04

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

Oppgave 2 Maskinkode (vekt 12%)

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

- - I Aile trykte og skrevne. samt kalkulator

Løsningsforslag til eksamen i INF2270

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

rn;t--~! Dato: !Eksamenstid: Alle trykte og skrevne hjelpemidler. -- Kalkulator som ikke kan kommunisere

UNIVERSITETET I OSLO

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

.~~uppe(r): Dato: Eksamenstid: ;1.00 Eksamensoppgaven Antall sider (inkl Antall oppgaver: I Antall vedlegg:

Forelesning Instruksjonstyper Kap 5.5

INF2270. Datamaskin Arkitektur

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

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

MAX MIN RESET. 7 Data Inn Data Ut. Load

Maskinvaredelen av INF 103: oversikt og innhold (1)

Dagens temaer. Dagens emner er hentet fra Englander kapittel 10 (side ) Mer om adresseringsmodi. RISC og CISC-prosessorer.

Synkron logikk. Sekvensiell logikk; to typer:

UNIVERSITETET I OSLO

EKSAMEN (Del 1, høsten 2015)

7. Hvilket alternativ (A, B eller C) representerer hexadesimaltallet B737 (16) på oktal form?

5 E, B (16) , 1011 (2) Danner grupper a' fire bit , (2) Danner grupper a' tre bit 1 3 6, 5 4 (8)

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

4 kombinatorisk logikk, løsning

I Kalkulator som ikke kan kommunisere med andre

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

Generell informasjon

NY EKSAMEN Emnekode: ITD13012

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

EKSAMEN Emnekode: ITD13012

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

Løsningsforslag til eksamen i INF2270

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

Dagens temaer. Mer om adresseringsmodi. Indeksert adressering med offset og auto-inkrement eller dekrement. Register-indirekte adressering

INF2270. Datamaskin Arkitektur

Intel Core i7. Omid Mirmotahari 4

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Repetisjon digital-teknikk. teknikk,, INF2270

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

Datamaskinens oppbygning

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Oppsummering digital-teknikk, teknikk, INF2270

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre,

Innhold. Oppgave 1 Oversettelse (vekt 15%)

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

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

Eksamen INF2270 våren 2018

TDT4110 IT Grunnkurs Høst 2016

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Kort repetisjon fra forrige gang. Kombinatorisk logikk

Repetisjon. Sentrale temaer i kurset som er relevante for eksamen (Eksamen kan inneholde stoff som ikke er nevnt her)

TDT4160 AUGUST, 2008, 09:00 13:00

Kapittel 4: Microarchitecture level

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK Fredag 21. mai 2004 Tid. Kl

IN1020. Logiske porter om forenkling til ALU

Dagens tema. Dagens tema er hentet fra kapittel 4.3 og 4.4. Mer om pipelining Ytelse Hasarder. Pipelining i Pentium-arkitekturen

Forelesning 9. Registre, tellere og minne

Løsningsforslag eksamen TDT4160 høsten 2005

TDT DESEMBER, 2008, 09:00 13:00

TFE4101 Krets- og Digitalteknikk Høst 2016

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

TDT DESEMBER, 2009, 09:00 13:00

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

Dagens tema: Enda mer MIPS maskinkode

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

Transkript:

Avdelingfor ingeniørutdanning

Denne eksamen består av tre deler. Det er sannsynlig at del I vil telle rundt 10 prosent. og at del Il og del III vil telle rundt 45 prosent bver. Dersom du finner oppgaveteksten uklar eller ufullstendig, så bør du opplyse om bvliken tolkning som ligger til grunn for din besvarelse. DEL I (10 prosent) Du skal skrive et assemblerprogram for assembleren TASM. Programmet skal lese inne en rekke positive heltall fra bruker, og regne ut gjennomsnittet av disse tallene (rundet ned til nærmeste heltall). Du har gitt en macro les inn. Denne macroen ber bruker om å gi et heltall, leser inn dette heltallet og legger det i registeret al. Macroen sørger for at heltallet bruker oppgir ligger i intervallet O... 255. Macroen forandrer ikke innholdet av andre registere enn al. (Dette er alt du trenger å vite om macroen les inn. Du trenger ikke å vite hvordan innmaten i macroen ser ut.) Skrivet assemblerprogram som leser inn tall fra bruker ved å kalle macroen lesinn. Innlesningen av tall skal terminere når macroen lesinn legger O i registeret al, eller når bruker forsøker å skrive inn mer enn 100 tall. Når programmet terminerer skal gjennomsnittet (rundet ned til nærmeste heltall) av tallene som ble skrevet inn, ligge i registeret al. D EL Il (45 prosent) Oppgave 1 Oppgave a Finn x, y og z slik at de tre likhetene under holder. (100)2 X (X)2 = (10000)2 (100)8 x (Y)8 = (10000)8 (Ji1J(J[)1?l!) 16 X (lchj)16 == (Z)16 Oppgave b U nder finner du fem tall. Sett dem opp i stigende rekkefølge. Oppgave c {loolooll.lol)2 (92.11}16 (92.01)10 (looloool)scd (224.5)8 U nder finner du fire tall. Sett dem opp i stigende rekkefølge. (10.11)16 (10000.01)2 (1000.01 h (IO.II)& Oppgave d Under finner du to 7-bits strenger. De skal tolkes som heltall på toerkomplements form med fortegn. Gi de tilsvarende tallene i vanlig desimal notasjon (med fortegn). 1001001 0110110 l

Oppgave 2 Funksjonen F er gitt ved det boolske uttrykket (X Z + Y) + Xy Z. Oppgave a Gi F som en sum av mintermer. Oppgave b Gi F som et produkt av makstermer. Oppgave c Implementer F utelukkende ved help av NOR-porter og NOT-porter. Oppgave d Implementer F utelukkende ved hjelp av NOT-porter og en 4-til-l multiplekser. Oppgave 3 Du skal konstruere en sekvensiell krets som styrer luftkjøleaniegget i et møterom. Når anlegget er i gang, vil det sannsynligvis bli kaldere i rommet. Når anlegget er slått av, vil det sannsynligvis bli varmere i rommet. På hver klokkesykei får kretsen to input K og V. Dersom K = 1, så er det for kaldt i rommet (f.eks. under 19 grader). Dersom K = O, så er det ikke for kaldt i rommet. Dersom V = 1, så er det for varmt i rommet (f.eks. over 25 grader). Dersom V = o. så er det ikke for varmt i rommet. Så, dersom V = K = O, så er temraturen i rommet passe. (Når tempraturen er passe, så skal kjøleanlegget fortsette å gå dersom det allerede er i gang, og det skal fortsette å stå dersom det ikke er i gang.) Legg merke til at inputkombinasjonen K = V = l ikke kan forekomme. På hver klokkesykei gir kretsen kun en output X. Dersom X = O, så skjer det ingenting. Dersom X = l, så vil kjøleanlegget igangsettes dersom det står, og det vil stanse dersom det er i gang. Oppgave a Tegn et tilstandsdiagram over kretsen. Oppgave b Implementer kretsen ved hjelp aven D-vippe. (Det holder med en vippe.) DEL III (45 prosent). Denne oppgaven dreier seg om en datamaskin med en meget enkel arkitektur. Figur 1 er et diagram over maskinens datapath. La oss begynne med å se nærmere på maskinens aritmetisk-logiske enhet. Den er merket ALU i figuren. Vel, det er strengt talt bare snakk om en aritmetisk enhet, og den er uhyre primitiv. Den tar imot ett n-bits tall på inngangen merket A og gir ut ett n-bits tall på utgangen merket B. Enheten har kun ett styringsbit 2

S. Tabellen input S o l input A x I x output B + l (O dersom x = 2n - l) I x x - l (2n - l dersom x = O) beskriver funksjonaliteten til ALU. Vi ser at ALU "legger til en" dersom S = O, og '"trekker fra en" dersom S = l. (Når det ikke er mulig for for ALU å legge til en, dvs. i det tilfellet hvor det n-bits tallet ALU tar imot er 2n - l ("bare enere inn"), så gir ALU tallet O ut ("bare nuller ut"). Det tilsvarende skjer når det ikke er mulig for ALU å trekke fra en. Da vil "bare nuller inn" gi '.bare enere ut". ) Videre finner du i diagrammet over datapathen en standard 6-til-64 dekoder med "enable"- inngang E. og en standard 64-til-1 multiplekser. Du ser også at datapathen innehholder 64 registere. Vi kaller disse registerne Ro, Ri, R2,'.', ~3. Det er standard registere med en "load"-inngang tegnet på registerets venstre side. Alle de 64 registeme er koblet til samme klokke. (Hvert register holder n bit. og vi trenger ikke bry oss om den eksakte størrelsen på n i denne oppgaven.) Så, den eneste komponenten i datapathen som ikke er standard, er den aritmetiske enheten (ALU) vi har beskrevet over. Diagrammet viser at datapathen har tre input R (6 bit), E (l bit) og S (l bit). Det betyr at den styres av kontrollord på 8 bit. Vi sier at et slikt kontrollord skal gis på formen (R, E. S). Videre har datapath en output Z (l bit). A v diagrammet ser vi at Z = O dersom alle de n bitene ut fra AL U er O. og at Z = l ellers. Oppgave l Gi et kontrollord som legger til 1 i registeret Ro. Gi et kontrollord som trekker fra l i registeret Ri. (Slutt. Oppgave 1.) I figur 2 ser vi hvordail datapathen inngår som en del aven primitiv ensykel datamaskin. Du finner den som komponenten merket Datapath. Maskinen kan programmeres ved at man legger et assemblerprogram i nlaskinens ROM. Assemblerspråket har fire instruksjoner. (1) inc Rk (2) dec Rk (3) jnz linjenr Vi nummerer og tilordner intruksjollene til hver sin binærkode: (4) jz linjenr 00 01 10 11 inc dec Hver instruksjon skal gis ved 8 bit io,il,i2,ia,i4,is,i6,i7. Vi bruker de to første bitene io, il til å. angi hvilken av de fire intruksjonen det dreier seg om. De seks siste bitene jnz jz i2, ia, i4, is, i6, i7 angir instruksjonens parameter.. Instruksjonen inc: Rk. (io = O, i l = O l. Bitene i2, ia, i., i5,~, i7 gir k.. Instruksjonen dec Rk. (iq = O, il = 1 Rk- Bitene i2,ia,i4,is,i6,i7 gir k. Denne instruksjonen øker registeret Rk med Denne instruksjonen trekker fra 1 i registeret 3

. Instruksjonen jnz linjenr. (iq = 1,il = O.) Dette er en betinget hoppinstruksjon. De seks siste bitene i2, i3, i4, is, i6, i7 forteller hvilken linje i assemblerprogrammet det eventuelt skal hoppes til. Det skal hoppes dersom Z (output fra datapath) var 1 etter forrige klokkesykel.. Instruksjonen jz linjenr. (io = l, il = l.) Dette er også en betinget hoppinstruksjon. De seks siste bitene i2, i3, i4, is, i6, i7 forteller hvilken linje i assemblerprogrammet det eventuelt skal hoppes til. Det skal hoppes dersom Z (output fra datapath) var O etter forrige klokkesykel. Oppgave 2 Her et program skrevet i assemblerspråket: forts: dec R3 jnz forts Programmet utfører operasjonen R3 f- O. Programmet sørger altså for at registeret R3 settes til O, uansett hva som måtte ligge i registeret når programmet starter. Gi dette programmet i binær form, dvs. gi programmet slik det vil se ut i maskinens ROM. (Slutt. Oppgave 2.) Komponetene i figur 2 som er merket ROM, Counter og D-vippe er standard hyllevare. ROM er et 64 x 8 bit "read only memory", dvs. at det har en adresseinngang på 6 bit og gir 8 bit ut (io,il,i2.i3,i4,is,i6,i7)' D-vippe er en standard D-vippe med et bit inn og et bit ut. Counter er en standard 6-bits teller med parallell innlasting (load). Tabellen -load count o1 l x operasjon øker med 1 parallell innlasting forteller det du trenger å vite om Counter. (Vi antar at Counter er nullstilt når eksekveringen av et program starter.) Figuren viser ingen klokker og klokkeinnganger, men samtlige klokkeinnganger i arkitekturen er selvsagt koblet til den sammen klokken. De enste kompontente i figuren vi ikke har forklart er den kombinatoriske kretsen som er merket Branch Controlog maskinens instruksjonsdekoder som er merket Decoder. Det er din oppgave å konstruere disse kretsene slik at maskinen virker og blir i stand til å eksekvere assemblerkode som ligger i ROM. Oppgave 3 Tegn et portdiagram mer-kretsen-branch Control: tslutt. eppgave 3.) Oppgave 4 Tegn et portdiagram over kretsen Decoder. (Slutt. Oppgave 4.) Oppgave 5 Skrivet assemblerprogram som utfører operasjonen Ro 1-- Ro + RI. Programmet skal bevare innholdet i registeret RI' Vi tenker oss altså at det ligger et vilkårlig tall i Ro og et vilkårlig tall i RI når programmet starter. Programmet skal sørge for at summen av de to tallene legges i Ro. Videre skal programmet sørge for at den verdien RI holder når programmet er ferdig er samme verdi som RI holdt når programmet startet. Skriv assemblerkode med I.

"labler" etter mønster av det lille programmet fra oppgave l. Hint: Det er ikke mulig å få til dette uten å bruke (og ødelegge innholdet av) et hjelperegister. Bruk R2 som hjelperegister. (Slutt. Oppgave 5.) Oppgave 6 Hvor effektiv er den datamaskinen vi har designet i denne oppgaven? Kan du si noe om hvor mange klokkesykler som kreves for å addere to tall på vår maskin versus hvor mange klokkesykler som kreves for å addere to tall på en standard arkitektur (f.eks. arkitekturen i den tredje obligatoriske oppgaven eller i en Pentium-prosessor)? Hvor vesentlig er en eventuell forskjell i effektivitet? Skriv kort. (Slutt. Oppgave 6.) Vi skal nå utvide maskinen vår med et minne, et såkalt RAM (random access memory). Figuren 3 viser et slikt rimelig standard 2n x n RAM. (n er størrelsen på registerne i Datapath.) Inngangen W styrer hvorvidt det skrives til RAM eller ikke. N år W = l skrives det, når W = O skrives det ikke. Det ganske enkelt å utvide arkitekturen vår med et slikt RAM dersom vi er litt smarte. Vi reserverer registeret ~3, og bruker det som et fast adresseringsregister. Når det skrives (leses) til (fra) RAM, så skrives (leses) det alltid til (fra) den plassen i RAM som er gitt ved innholdet i ~3. Oppgave 7 Du skal modifisere arkitekturen i Datapath og koble til RAM-brikken fra figur 3 slik at data kan utveksles mellom registere og RAM. Utgangen av regsiteret ~3 skal kobles direkte i adresseinngangen på RAM-brikken. Du kan fritt bruke multipleksere, dekodere og eventuelle andre standard kretser (men du vil ikke trenge så veldig mange slike komponenter dersom du er litt lur). Den modifiserte versjonen av Datapath med RAM styres av et kontrollord som er litt større enn kontrollordet som styrer den umodifiserte versjonen. Beskriv formen på dette kontrollordet, og (a) gi et kontrollord som lagrer innholdet av registeret RIS i RAM. Innholdet i registeret skal lagres på adressen som ligger i adresseringsregisteret ~. (b) gi et kontrollord som henter data fra RAM til registeret R16. adressen som ligger i adresseringsregisteret ~. Data skal hentes fra (Slutt. Oppgave 7.) Vi skal nå utvide assemblerspråket over med to instruksjoner. Instuksjonen store Rk lagrer data i RAM. Parameteren Rk angir at data som skal lagres ligger i registeret Rk' Adressen hvor data skal lagres, ligger i det faste adresseringsregisteret B.63. Videre utvider vi språket med instruksjonen load Rk. Denne instruksjonen transporterer data fra RAM til datapathen. Paramet-eren Rk -e.ngir at.de.data som hentes-- skal-legges i registeret Rk' Adressen data skal hentes fra, ligger i adresseringsregisteret ~3' Oppgave 8 Modifiser maskinen i figur 2 til en maskin som kan eksekvere program skrevet i dette assemblerspråket, dvs. språket som har instruksjonene inc, dec, jnz, jz, store og load. De nødvendige forandringene i datapathen ble gjort i oppgave 7. Forklar hvordan de øvrige bestanddeler av maskinen må modifiseres. Hvis du får tid, så. tegner du portdiagrammet til maskinens intruksjonsdekoder. (Slutt. Oppgave 8.) 5

E R 716"1 6-til-64 DECODER o............ 63 Reg O Reg i Reg 63 D R /, o 64-til-ll1tJXJ..... 63 s ALU n ~ yz Figure 1: Datapath 6

-ol Figure 2: Hele arkitekturen 7