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



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

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

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

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

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

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

TDT DESEMBER, 2008, 09:00 13:00

TDT DESEMBER, 2011, 09:00 13:00

TDT DESEMBER, 2009, 09:00 13:00

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

TDT AUGUST, 2011, 09:00 13:00

TDT AUGUST, 2009, 09:00 13:00

TDT4160 AUGUST, 2008, 09:00 13:00

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

ANSWER KEY FOR THE EXAM

ANSWER KEY FOR THE EXAM

TDT DESEMBER, 2009, 09:00 13:00

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

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

Eksamensoppgåve i TDT4160 datamaskiner og digitalteknikk

Kapittel 4: Microarchitecture level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Fortsetelse Microarchitecture level

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Fortsetelse Microarchitecture level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Fortsetelse Microarchitecture level

INF2270. Datamaskin Arkitektur

Oppgave 2 Maskinkode (vekt 12%)

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

Forelesning ISA: IJVM Kap 4.2

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

1 TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF2270. Datamaskin Arkitektur

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

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

Forelesning Instruksjonstyper Kap 5.5

Innhold. Oppgave 1 Oversettelse (vekt 15%)

NORGES TEKNISK- NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

IN1020. Datamaskinarkitektur

MAX MIN RESET. 7 Data Inn Data Ut. Load

Digital logic level: Oppsummering

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

Intel Core i7. Omid Mirmotahari 4

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Løsningsforslag eksamen TDT4160 høsten 2005

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Forelesning Adresseringsmodi Kap 5.4

Generell informasjon

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Maskinvaredelen av INF 103: oversikt og innhold (1)

Forelesning 5. Diverse komponenter/større system

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

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

Tema for denne forelesningen: tilpassing til pipeline. forwarding. eliminere NOP. faktisk MIPS. in 147, våren 1999 pipelining 1 9

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

ytelsen til hukommelseshierarkier

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

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

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

INF1400 Kap4rest Kombinatorisk Logikk

Kapittel 3: Digital logic level

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

NORGES TEKNISK- NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Intel Core i7. Omid Mirmotahari 4

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Oppsummering av digitalteknikkdelen

EKSAMENSOPPGAVE, INF-2200

Datamaskinens oppbygning

Oppgave 1 Oversettelse (total vekt 20%)

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

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Transkript:

Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 16. DESEMBER, 213, 9: 13: Kontakt under eksamen: Gunnar Tufte 7359356/9742478 Tillatte hjelpemidler: D. Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt, enkel kalkulator tillatt. Målform: Bokmål Page 1 of 2

OPPGAVE 1: OPPSTART, LITT AV HVERT (25 %) a. Unrer konstruksjon av et datamaskinsystem er det krav til minnesystemet om en gjennomsnittlig minneaksesstid (memory access time) på minimum 4.5ns. To forskjellige løsninger er tilgjengelig. Minnesystem-A har et nivå med hurtigbuffer (cache) med en aksesstid på 2ns og med et trefforholdstall (hit ratio) på 9 %. Hovedminnet har en aksesstid på 2ns. Minnesystem-B har et nivå med hurtigbuffer (cache) med en aksesstid på 1ns og med et trefforholdstall (hit ratio) på 6 %. Hovedminnet har en aksesstid på 15ns. Tilfredstiller noen av de to minnesystemene kravet om 4.5ns gjennomsnittlig minneaksesstid? I så fall hvilket? b. Ut fra informasjonen i figur 1, er dette en asynkron eller synkron bussoverføring? Begrunn svaret kort. Figur 1: Address decoding. c. Hva kjennetegner superskalareprosessorer? d. Memory wall (minne veggen) er et begrep som blant annet skaper problemer innen skalering. Hvilke egenskaper ved prosessorer og minne ligger i begrepet? e. Hvordan påvirkes Instruksjonsnivåparallellitet (Instruction Level parallellism (ILP)) av antall trinn i samlebånd (pipeeline)? Forklar kort. Page 2 of 2

OPPGAVE 2: DIGITALT LOGISK NIVÅ (25 % (15 % PÅ A, 1 % PÅ B)) I figur 2 er det eksterne bussgrensesnittet for en mikrokontroller vist. Alle enhetene har et aktivt lavt (logisk ) CS (Chip Select)-signal. A Addressbus A23 M icrocontroller OR NAND? A[23:] CS R/W D[15:] CS R/W D[15:] CS R/W D[15:] CS R D[15:] R/W Data[15:] RAM 1 Data bus D[15:] 16 RAM 2 RAM 3 ROM Figur 2: Address decoding. a. i) Hva er adresseområde for RAM 1, RAM 2 og RAM 3? ii) Tegn minnekart (memory map) for systemets RAM-brikker. iii) Er det overlapp/konflikter i RAM-adresserommet? b. i) Hva er det maksimale antall addresser som kan utnyttest til ROM-brikken? Angi antall adresser (ord) eller tegn et adresse kart. ii) Angi maksimal størrelse på ROM-brikke i bytes. Page 3 of 2

OPPGAVE 3: MIKROARKITEKTUR OG MIKROINSTRUKSJONER (25 % (5 % PÅ A, 1 % PÅ B OG C)) Bruk vedlagte diagram i figur 4, figur 5, figur 6, figur 7, figur 8 og figur 9 for IJVM til å løse oppgavene. a. Hva brukes registerne MAR og MDR i figur 4 til? b. Lag mikroinstruksjon(er) for følgende IJVM-operasjon: OPC = MDR + LV + CPP + 2. Bruk mikroarkitekturen i figur 4. Du trenger ikke ta hensyn til Addr- og J-feltene. Oppgi korrekt bit-verdi for ALU-, C-, Memog B-feltene. Se figur 5. c. i) For å få bedre ytelse blir mikroarkitekturen endret til å bruke datapath som er vist i figur 8.Hvordan vil dette påvirke mikroinstruksjonene for instruksjonen: OPC = MDR + LV + CPP + 2? Gi eksempel på hvordan den nye mikroarkitekturen kan øke ytelsen. ii) For ytterliger øking av ytelse skiftest det til mikroarkitekturen vist i figur 9. Hvilke ytelseforbedrings tiltak er gjort i figur 9? Page 4 of 2

OPPGAVE 4: INSTRUKSJONSSETT ARKITEKTUR (ISA)(25 % (1 % PÅ A OG B, 5 % PÅ B)) En svært enkel prosessor har to laste- og lagre-instruksjon (load and store instruction), 8 ALUinstruksjoner, noen spesielle instruksjoner som inkluderer NOP-instruksjonen og to flytkontrollinstruksjoner (flow control instructions). Instruksjonsformatet er vist i figur 3. Alle registre og busser er -bit. Prosessoren har en Harvard-arkitektur. Load/store: Load: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit LoadDI: opcode Adr 8 bit 24 bit Store: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit StoreDI: opcode Adr 8 bit 24 bit ALU: opcode Rn Rn Rn opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit Spesial: NOP: opcode DC DC DC 8 bit 8 bit 8 bit 8 bit MOVC: opcode Rn Constant 8 bit 8 bit 16 bit CP: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit Flow control: BZ opcode Rn DC 8 bit 8 bit 16 bit RT opcode DC DC DC 8 bit 8 bit 8 bit 8 bit Rn: any user register, R - R15 DC: Don t care. Adr: any data memory location within range. Figur 3: Instruction formats. Page 5 of 2

Instructions set: LOAD: Load data from memory. load Rn, Rn Load register Rn from memory location in Rn. LOADDI: Load data from memory. load Adr Load register R from memory location Adr. STORE: Store data in memory. store Rn, Rn Store register Rn in memory location in Rn. STOREDI: Store data in memory. store Adr Store register R in memory Adr. ALU: Data manipulation, register register operations. ADD Rn, Rn, Rn ADD, Rn = Rn + Rn. Set Z-flag if result =. NAND Rn, Rn, Rn Bitwise NAND, Rn = Rn Rn. Set Z-flag if result =. OR Rn, Rn, Rn Bitwice OR, Rn = Rn + Rn. Set Z-flag if result =. INV Rn, Rn Bitwice invert, Rn = Rn. Set Z-flag if result =. INC Rn, Rn Increment, Rn = Rn + 1. Set Z-flag if result =. DEC Rn, Rn Decrement, Rn = Rn 1. Set Z-flag if result =. MUL Rn, Rn, Rn Multiplication, Rn = Rn Rn. Set Z-flag if result =. CMP, Rn, Rn Compare, Set Z-flag if Rn = Rn Special: Misc. CP Rn, Rn Copy, Rn < Rn NOP Waste of time, 1 clk cycle. MOVC Rn, constant Put a constant in register Rn = C. Flow control: Branch. BZ, Rn Conditional branch on zero, PC = Rn. RT Return, return from branch. Rn: Any user register. Target register to the left, i.e. ADD R1, R1, R3: R1 = R1 + R3. DC: Don t care. Page 6 of 2

a. En tenkt kodesnutt leser to verdier fra to minneadresser. Hvordan kan PC (Program Counter) avhenge av innholdet i disse minneadressene for den oppgitte sudokoden (Hvilke mulige verdier kan PC ha etter at koden har kjørt)? LOADDI x FF FF ; CP R1, R; LOADDI x FF FF 4; OR R, R, R1; BZ R b. 1) Angi hvilke adresseringsmodi (addressing modes) som brukes i følgende instruksjoner: i) LOADDI ii) LOAD ii) MOVEC 2) Ut fra gitt instruksjonssett gi eksempel på instruksjonstype (instruction format): i) Null adresse instruksjon (Zero-address instruction). ii) Tre adresse instruksjon (Three-address instruction). c. Er det mulig å utvide instruksjonsettet med fleire instruksjonar, f.eks. med shift instruksjonar, utan å endre på ISA? Begrunn svaret. Page 7 of 2

IJVM appendix Page 8 of 2

Figur 4: Block diagram (IJVM). Page 9 of 2

Figur 5: Microinstruction format (IJVM). Page 1 of 2

ANSWER KEY FOR THE EXAM Page 1 of 2

OPPGAVE 1: OPPSTART, LITT AV HVERT (25 %) a. Unrer konstruksjon av et datamaskinsystem er det krav til minnesystemet om en gjennomsnittlig minneaksesstid (memory access time) på minimum 4.5ns. To forskjellige løsninger er tilgjengelig. Minnesystem-A har et nivå med hurtigbuffer (cache) med en aksesstid på 2ns og med et trefforholdstall (hit ratio) på 9 %. Hovedminnet har en aksesstid på 2ns. Minnesystem-B har et nivå med hurtigbuffer (cache) med en aksesstid på 1ns og med et trefforholdstall (hit ratio) på 6 %. Hovedminnet har en aksesstid på 15ns. Tilfredstiller noen av de to minnesystemene kravet om 4.5ns gjennomsnittlig minneaksesstid? I så fall hvilket? Answer: Går ut frå at all minneaksess går via cache: mean access time = c + ((1 h) m); Minnesystem-A: 2 + (1.9) 2) = 4ns Minnesystem-B: 1 + (1.6) 15) = 7ns Viss ein går ut frå at ein kan aksessere minne direkte også får ein noko slikt: mean access time = h c + ((1 h) m); Minnesystem-A: 2.9 + (1.9) 2) = 3.8ns Minnesystem-B: 1.6 + (1.6) 15) = 6.6ns Ikkje heilt korrekt men gir rett konklusjon. b. Ut fra informasjonen i figur 1, er dette en asynkron eller synkron bussoverføring? Begrunn svaret kort. Answer: Ingen klokke = asynk. c. Hva kjennetegner superskalareprosessorer? Answer: Duplisering av utførende enheter i datapath", samlebånd kan då innholde dupliserte einingar, f.eks. duplisere ALU trinn. (Høg ILP). d. Memory wall (minne veggen) er et begrep som blant annet skaper problemer innen skalering. Hvilke egenskaper ved prosessorer og minne ligger i begrepet? Answer: Prosessor ytelsen aukar fortare enn minne ytelsen. Prossesor ytelse, klokke og prosesseringskapasitet (throughput), aukar mykje fortare enn minne aksesstid minkar. e. Hvordan påvirkes Instruksjonsnivåparallellitet (Instruction Level parallellism (ILP)) av antall trinn i samlebånd (pipeeline)? Forklar kort. Answer: ILP aukar ved auke i samlebandsteg. Fordi antall instruksjoner som samlebandet behandlar aukar. Page 2 of 2

OPPGAVE 2: DIGITALT LOGISK NIVÅ (25 % (15 % PÅ A, 1 % PÅ B)) I figur 2 er det eksterne bussgrensesnittet for en mikrokontroller vist. Alle enhetene har et aktivt lavt (logisk ) CS (Chip Select)-signal. a. i) Hva er adresseområde for RAM 1, RAM 2 og RAM 3? ii) Tegn minnekart (memory map) for systemets RAM-brikker. iii) Er det overlapp/konflikter i RAM-adresserommet? Answer: i) RAM 1: x - x FF FF RAM 2: xe - xf FF FF RAM 3: x8 - xcf FF FF ii) Tegning der alle tre RAM-brikker er med. iii) Nei, ser lett ut frå adr. kartet. b. i) Hva er det maksimale antall addresser som kan utnyttest til ROM-brikken? Angi antall adresser (ord) eller tegn et adresse kart. ii) Angi maksimal størrelse på ROM-brikke i bytes. Answer: i) Adresse tilgjengelig: x1 - xd FF FF, x1 - x7f FF FF og xd - xff FF FFF. Eller tegn kart. Eller angi ledige adresser. ii) dobbelt av i). Sidan databussen er på 16 bit. Page 3 of 2

OPPGAVE 3: MIKROARKITEKTUR OG MIKROINSTRUKSJONER (25 % (5 % PÅ A, 1 % PÅ B OG C)) Bruk vedlagte diagram i figur 4, figur 5, figur 6, figur 7, figur 8 og figur 9 for IJVM til å løse oppgavene. a. Hva brukes registerne MAR og MDR i figur 4 til? Answer: Grensesnitt mot eksterntminne. MAR: peikar til minne adresse i eksternt minne. MDR data som skal skrivast til minne adresse gitt i MAR ved skriveoperasjon, eller innhold i minneadresse peika på av MAR ved leseopperasjon. b. Lag mikroinstruksjon(er) for følgende IJVM-operasjon: OPC = MDR + LV + CPP + 2. Bruk mikroarkitekturen i figur 4. Du trenger ikke ta hensyn til Addr- og J-feltene. Oppgi korrekt bit-verdi for ALU-, C-, Memog B-feltene. Se figur 5. Answer: Ein mulig løysing: 1: ALU: B-function, B-bus: MDR, C-bus: H [11][ ()][1] 2: ALU: A + B + 1, B-Bus: LV, C-bus: H [11111][5 (11)][1] 3: ALU: A + B + 1, B-bus: CPP, C-bus: OPC [11111][6 (11)][1] Alle løysingar som gir OPC = MDR + LV + CPP + 2 er like rett. c. i) For å få bedre ytelse blir mikroarkitekturen endret til å bruke datapath som er vist i figur 8.Hvordan vil dette påvirke mikroinstruksjonene for instruksjonen: OPC = MDR + LV + CPP + 2? Gi eksempel på hvordan den nye mikroarkitekturen kan øke ytelsen. ii) For ytterliger øking av ytelse skiftest det til mikroarkitekturen vist i figur 9. Hvilke ytelseforbedrings tiltak er gjort i figur 9? Answer: i): Kan nå utnytte den nye bussen for å slippe å bruke H-registeret for alle to-operand ALU-funksjoner. F.eks. for OPC = MDR + LV + CPP + 2: 1 : ALU: A + B + 1, A-Bus: MDR, B-Bus: LV, C-bus: OPC 2 : ALU: A + B + 1, A-Bus: OPC, B-Bus: CPP, C-bus: OPC ii): Pipelining som gir økt ILP samt muligheit for høgare klokkefrekvens. (det er også lagt til ein IFU men ikkje nødvendigt for korrekt svar). Page 4 of 2

OPPGAVE 4: INSTRUKSJONSSETT ARKITEKTUR (ISA)(25 % (1 % PÅ A OG B, 5 % PÅ B)) En svært enkel prosessor har to laste- og lagre-instruksjon (load and store instruction), 8 ALUinstruksjoner, noen spesielle instruksjoner som inkluderer NOP-instruksjonen og to flytkontrollinstruksjoner (flow control instructions). Instruksjonsformatet er vist i figur 3. Alle registre og busser er -bit. Prosessoren har en Harvard-arkitektur. Page 5 of 2

Instructions set: LOAD: Load data from memory. load Rn, Rn Load register Rn from memory location in Rn. LOADDI: Load data from memory. load Adr Load register R from memory location Adr. STORE: Store data in memory. store Rn, Rn Store register Rn in memory location in Rn. STOREDI: Store data in memory. store Adr Store register R in memory Adr. ALU: Data manipulation, register register operations. ADD Rn, Rn, Rn ADD, Rn = Rn + Rn. Set Z-flag if result =. NAND Rn, Rn, Rn Bitwise NAND, Rn = Rn Rn. Set Z-flag if result =. OR Rn, Rn, Rn Bitwice OR, Rn = Rn + Rn. Set Z-flag if result =. INV Rn, Rn Bitwice invert, Rn = Rn. Set Z-flag if result =. INC Rn, Rn Increment, Rn = Rn + 1. Set Z-flag if result =. DEC Rn, Rn Decrement, Rn = Rn 1. Set Z-flag if result =. MUL Rn, Rn, Rn Multiplication, Rn = Rn Rn. Set Z-flag if result =. CMP, Rn, Rn Compare, Set Z-flag if Rn = Rn Special: Misc. CP Rn, Rn Copy, Rn < Rn NOP Waste of time, 1 clk cycle. MOVC Rn, constant Put a constant in register Rn = C. Flow control: Branch. BZ, Rn Conditional branch on zero, PC = Rn. RT Return, return from branch. Rn: Any user register. Target register to the left, i.e. ADD R1, R1, R3: R1 = R1 + R3. DC: Don t care. Page 6 of 2

a. En tenkt kodesnutt leser to verdier fra to minneadresser. Hvordan kan PC (Program Counter) avhenge av innholdet i disse minneadressene for den oppgitte sudokoden (Hvilke mulige verdier kan PC ha etter at koden har kjørt)? LOADDI x FF FF ; CP R1, R; LOADDI x FF FF 4; OR R, R, R1; BZ R Answer: PC vil være = viss begge minne lokasjonene x FF FF og x FF FF 4 er (resultatet av OR = ). Ellers vil PC peke på neste instruksjon, i.e. Pc = PC + 1. Gir litt slakk her viss dei skjønnar kva som skjer. b. 1) Angi hvilke adresseringsmodi (addressing modes) som brukes i følgende instruksjoner: i) LOADDI ii) LOAD ii) MOVEC 2) Ut fra gitt instruksjonssett gi eksempel på instruksjonstype (instruction format): i) Null adresse instruksjon (Zero-address instruction). ii) Tre adresse instruksjon (Three-address instruction). Answer: 1) i) Direct Addressing. ii) Register Addresing. ii) Imidiate Addressing. 2) i) f.eks. NOP og/eller RT er rett svar ii) Dei flestr ALU, alle med oppcode Rn, Rn, Rn c. Er det mulig å utvide instruksjonsettet med fleire instruksjonar, f.eks. med shift instruksjonar, utan å endre på ISA? Begrunn svaret. Answer: Nei, viss ein endrar instruksjonssette endrast ISA. Page 7 of 2

IJVM appendix Page 8 of 2

SLR1 SLL8 Function No shift 1 Shift 8 bit left 1 Shift 1 bit right Figur 6: ALU functions (IJVM). Page 9 of 2

Figur 7: Timing diagram (IJVM). Page 1 of 2

Figur 8: Alternative microarchitecture I. Page 11 of 2

Figur 9: Alternative microarchitecture II. Page 12 of 2

Figur 1: Address decoding. A Addressbus A23 M icrocontroller OR NAND? A[23:] CS R/W D[15:] CS R/W D[15:] CS R/W D[15:] CS R D[15:] R/W Data[15:] RAM 1 Data bus D[15:] 16 RAM 2 RAM 3 ROM Figur 11: Address decoding. Page 13 of 2

Load/store: Load: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit LoadDI: opcode Adr 8 bit 24 bit Store: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit StoreDI: opcode Adr 8 bit 24 bit ALU: opcode Rn Rn Rn opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit Spesial: NOP: opcode DC DC DC 8 bit 8 bit 8 bit 8 bit MOVC: opcode Rn Constant 8 bit 8 bit 16 bit CP: opcode Rn Rn DC 8 bit 8 bit 8 bit 8 bit Flow control: BZ opcode Rn DC 8 bit 8 bit 16 bit RT opcode DC DC DC 8 bit 8 bit 8 bit 8 bit Rn: any user register, R - R15 DC: Don t care. Adr: any data memory location within range. Figur 12: Instruction formats. Page 14 of 2

Figur 13: Block diagram (IJVM). Page 15 of 2

Figur 14: Microinstruction format (IJVM). Page 16 of 2

SLR1 SLL8 Function No shift 1 Shift 8 bit left 1 Shift 1 bit right Figur 15: ALU functions (IJVM). Page 17 of 2

Figur 16: Timing diagram (IJVM). Page 18 of 2

Figur 17: Alternative microarchitecture I. Page 19 of 2

Figur 18: Alternative microarchitecture II. Page 2 of 2