• No results found

Tentamen i Digitalteknik och Datorarkitektur DV1 5p

N/A
N/A
Protected

Academic year: 2022

Share "Tentamen i Digitalteknik och Datorarkitektur DV1 5p"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Tentamen i

Digitalteknik och Datorarkitektur DV1 5p

Torsdag 1999-08-12

Lokal: Polacksbackens skrivsal, MIC Skrivtid: 09.00 - 15.00.

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Tentamen omfattar 42 skrivningspoäng. Totalt 20 poäng på tentamen ger garanterat godkänt.

För att erhålla betyg på hela kursen krävs förutom avklarad tentamen även att samtliga laborationer och inlämningsuppgifter redovisats och godkänts.

Allmänt:

 Om du är osäker på vad som avses i någon fråga, skriv då vad du gör för antaganden!

 Skriv endast en uppgift per blad och skriv bara på ena sidan av papperet.

 Skriv namn på alla papper.

 Referera inte mellan olika svar.

 Oläsliga/Oförståeliga svar samt okommenterade och/eller otydliga programmerings- lösningar rättas inte vilket per definition ger noll poäng!

Under tentamenstid nås Per O Foyer på telefon 0708-80 88 60.

1. Var sak på sin plats

Vilka är delstegen i instruktionscykeln i en von Neumann-dator?

(3p)

”…som en rosa dröm med volanger och sånt… …och sedan blir det bara svart… …eller nå’t… …fast jag vet inte…”

– Ur filmen Yrrol

Information

Logotypen längst upp till vänster på denna sida är Uppsala universitets nya logotyp vars officiella invigning ägde rum den första juli 1999.

(2)

2. Den itusågade damen

Beskriv punktvis vad som händer i en dator vid ett vektoriserat avbrott, från det att en I/O- enhet begär avbrott tills dess att den får service. Beskriv också minst två sätt på vilket CPU:n kan få reda på orsaken till avbrottet.

OBS: Du ska beskriva det generella fallet, inte specifikt vad som sker i en MIPS-processor.

(2p)

3. Persons parfymeri

Beskriv en enkel ALU. Den ALU du beskriver bör vara kapabel att utföra några olika operationer. Rita ett diagram som visar vilka komponenter som finns och hur de är förbundna (både internt och externt) med varandra.

(3p)

5. Öppna ditt fönster, släpp in lite sol

En RISC-processor har betydligt fler interna register än en CISC-processor. En teknik som kan användas i en RISC-processorarkitektur är ”överlappande registerfönster” (overlapping register windows). Antag att det totala antalet tillgängliga register i en RISC-CPU är 128 stycken och att fönsterstorleken är totalt 24 register.

a) Förklara, helst med en illustration, med ovanstående antagande hur parametrar överförs till och från subrutiner med hjälp av fönsterteknik och ange dessutom eventuella hjälpregister samt hur registerfönstren i sig är organiserade.

b) Vad händer – och varför – med exekveringsprestandan i ett RISC-baserat system när subrutinanrop är djupt nästlade (där omfattande rekursion är ett extremfall)?

(3p)

4. I glassboxen

Förklara kortfattat följande begrepp:

a) Interleavat minne b) Ofullständig avkodning c) FPU

d) Pipeline

e) Control Unit (CU)

(5p) Ungarnas favorit

sommaren 1999

(3)

6. Det är en evighetsmaskin!

Nedanstående processorarkitektur är given. Förutom styrsignalerna på bilden finns även signalerna FETCH, DECODE och WFMFC.

a) Skriv mikrokoden för processorns hämtfas.

b) Skriv mikrokoden till exekveringsfasen för assemblerinstruktionen MOVI #<data>,<adr>

vars funktion är: Ladda minnescell <adr> med <data>,det vill säga (<adr>) <= <data>. c) Studera arkitekturen. Är det möjligt att i denna maskin implementera villkorliga hopp (i

stil med ”JZ LABEL” – Jump if Zero)? Motivera svaret.

d) Förklara kortfattat i ord strategin för hur instruktioner för relativa hopp kan implementeras i ovanstående arkitektur.

OBS #1: All mikrokod ska skrivas i mnemoteknisk form (till exempel PCout, TEMPin).

OBS #2: Okommenterad kod ger noll (zero, ingen, null, nada) poäng.

(6p)

(4)

7. Inget onödigt tjaffs här inte!

En RISC-processor, nanoRISC, har 256 stycken generella 32-bitarsregister benämnda R0,...,R255. Det finns dessutom en 32-bits programräknare PC och ett statusregister RS som innehåller en Z-flagga (zero) och en C-flagga (carry). Instruktionsrepertoaren är mycket spartansk och de enda instruktioner som kan accessa minne är LOAD och STORE. LOADI som används för att ladda ett register med direktdata kan endast hantera 24-bitsvärden. Vid en LOADI behåller alltid destinationsregistrets översta åtta bitar sitt tidigare värde. nanoRISC- processorn arbetar inte med någon traditionell stack utan programmeraren hänsvisas till att använda de generella register som finns. Varje instruktion är exakt ett 32-bitarsord stor.

Tillgängliga register:

R0, R1,..., R255 : generella register (32-bit) RS : statusregister (2-bit)

PC : programräknare (32-bit)

Tillgängliga instruktioner:

Nedan står Rx och Ry för godtyckliga R-register (R0, ..., R255)

Syntax Operation

LOAD (Rx),Ry : Ry  @Rx (OBS! 32-bitsoperation) LOADI #<data>,Rx : Rx  #<data> (OBS! endast 24-bit data) STORE Rx,(Ry) : @Ry  Rx

ADD Rx,Ry : Ry  Ry + Rx SUB Rx,Ry : Ry  Ry - Rx

OR Rx,Ry : Ry  Ry + Rx (bitvis OR) AND Rx,Ry : Ry  Ry  Rx (bitvis AND) XOR Rx,Ry : Ry  Ry  Rx (bitvis XOR) JAL Rx : PC  Rx (ovillkorligt hopp)

JC Rx : PC  Rx (hopp om C-flagga i RS satt) JZ Rx : PC  Rx (hopp om Z-flagga i RS satt) JSUB Rx,Ry : Ry  PC + 1 (returadress),

PC  Rx (hopp) RET Rx : PC  Rx (retur från subrutin)

Hopp, och hopp till subrutiner, är lite speciella. Hopp sker till en adress som finns lagrad i ett R-register. Endast de 24 minst signifikanta bitarna i R-registret används som adress. Vid hopp till subrutin sker hoppet till den adress ett R-register anger och returadressen lagras samtidigt

(5)

Uppgift

Skriv en subrutin, NEG, i nanoRISC-assembler. Subrutinen NEG ska omvandla ett givet 32- bitarstal till tvåkomplementform. Subrutinen ska använda register R1 som in- och ut- parameter vilket innebär att R1 vid subrutininträdet innehåller det tal som ska tvåkomplementeras och vid utträdet svaret. Returadressen ska i subrutinen förutsättas finnas i register R255.

Ett exempelanrop av NEG skulle kunna se ut så här:

* Exempelanrop: Hämta ett 32-bits tal på adress A000, tvåkomplementera

* och lagra på samma adress.

.

XOR R193,R193 ;nollställ hela R193 (32-bit) LOADI #A000,R193 ;R193 := A000

LOAD (R193),R1 ;R1 := talet på adress A000 (32-bit) XOR R254,R254 ;nollställ hela R254 (32-bit)

LOADI #NEG,R254 ;R254 := adress till subrutin (24-bit) JSUB R254,R255 ;Hoppa till NEG med returadress i R255 STORE R1,(R193) ;lagra resultatet på adress A000

. .

Kommentera din lösning väl!

(6p)

8. Co-driver

Förklara principerna för direktmappad respektive minnesmappad I/O-adressering.

(2p)

9. Notis

Förklara hur en programmerare kan dra nytta av principen locality of reference för att optimera exekveringshastigheten i samband med cache-minnen.

(1p)

10. Knyppling i den högre skolan

a) Vad innebär interleaving i minnessammanhang? Rita en figur samt förklara principen för adressavkodning jämte fördelar och nackdelar med minnes-interleave-tekniken som sådan.

b) Vad innebär interleaving i disksammanhang? Illustrera med en enkel principskiss och förklara motivet till att ibland interleava diskar.

(3p)

(6)

11. Att motionera sitt minne

DRAM-minnen utgör en central del i datorer med måttliga prestanda, speciellt persondatorer.

a) Förklara vad förkortningen DRAM betyder och förklara det principiella funktionssättet hos ett minne av DRAM-typ.

b) Vilken CPU-busstyp är sannolikt enklast att använda DRAM-minnen tillsammans med, en synkron eller asynkron buss? Motivera svaret.

c) En MIPS-processor ska utrustas med DRAM-minne uppbyggt kring minneskapslar om vardera 4Mbit x 1 (det vill säga 4M individuellt adresserbara bitar i varje kapsel). Hur stort blir minnesutrymmet mätt i Mb (megabyte) för den minsta möjliga minneskonfiguration som medger läsning och skrivning av processorns samtliga storlekar på data? Motivera svaret.

d) Visa och förklara med en enkel skiss hur 2n individuellt adresserbara minnesceller kan adresseras med färre än n adressledningar.

(6p)

12. En krans av tusensköna

Förklara hur daisy chain-teknik kan användas för att ordna I/O-enheter i ett prioritetssystem.

(2p)

Tentamen slut!

References