Tietokoneen toiminta, 2 ov, erilliskoe 2.11.2004

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, opiskelijanumero (tai henkilötunnus), kurssin nimi, nimikirjoitus ja sivunumero.

Kokeesta voi saada 60 pistettä.

Pyri vastaamaan kaikkiin kysymyksiin lyhyesti, mutta kokonaisilla lauseilla.

  1. [15 p] Konekäskyjen suoritus:
    1. [12 p] Mitä suorittimella tapahtuu konekäskyä   "ADD  R5, A(R3)" suoritettaessa? Käy huolellisesti ja yksityiskohtaisesti läpi käskyn suoritussyklin eri vaiheet ja kaikki käskyn suorittamiseen liittyvät yksityiskohdat joka kohdassa.
    2. [3 p] Mitä laitteistossa tapahtuu, jos edellisen kohdan käskyä suoritettaessa yhteenlaskun tulos on niin suuri, että se ei mahdu tulosrekisteriin? Miten tämä tapahtuma näkyy käskyn suoritussyklissä vai näkyykö se lainkaan?

  2.  
  3. [15 p] Tiedon esitys, lukujärjestelmät ja tiedon muuttumattomuus.
    1. [2 p] Mikä on desimaalijärjestelmän luvun 37 esitys binäärijärjestelmässä? Miten luku esitetään tavussa (8 bittiä)?
    2. [4 p] Mitä desimaalilukuja vastaavat bittijonot 00011101 ja 10011010 kun kokonaislukujen esitysmuoto on
      1. etumerkkibitti erikseen
      2. kahden komplementti
    3. [9 p] Oletetaan, että muistiin on talletettu 8-bittinen data 10011010 ja että se suojataan virheen korjaavalla Hamming-koodilla.
      1. [6 p] Miten tuo suojaaminen tapahtuu? Kuinka monta ylimääräistä bittiä tarvitaan? Miten ne sijaitsevat? Mitkä ovat niiden arvot? Anna koodattu bittijono kokonaisuudessaan.
      2. [3 p] Miten Hamming-koodia käytetään korjaamaan tilanne, jossa kyseinen data on muuttunut dataksi 11011010 eikä yksikään Hamming-koodiin kuuluvista biteistä ole muuttunut.

  4.  
  5. [15 p] Tietokoneen rakenne ja oheislaitteiden käyttö
    1. [3 p] Määrittele käsite keskeytys (exception, interrupt). Minkä tyyppisiä keskeytyksiä on olemassa?
    2. [3 p] Mitä tarkoittaa "etuoikeutettu tila" (supervisor state, priviledged state)? Mihin sitä käytetään?
    3. [9 p] Mitä kaikkea järjestelmässä tapahtuu siitä hetkestä alkaen, kun suorituksessa oleva ohjelma P haluaa tallettaa dataa levylle, siihen asti kun P jatkaa suoritustaan I/O:n jälkeen? Kerro huolellisesti mitä I/O-mallia kuvauksessasi käytit.

     
  6. [15p] TTK-91: Taulukko Taulu[0..49] sekä muuttujat X ja I oletetaan määritellyiksi pääohjelmatasolla. Toteuta seuraavat tehtävät TTK-91 -koneen symbolisella konekielellä.
    1. [2 p] Tulosta taulukon Taulu alkion Taulu[42] arvo.
    2. [2 p] Tulosta alkion Taulu[I] osoite. Voit olettaa, että I:n arvo on välillä 0..49.
    3. [2 p] Sijoita muuttujan X arvo alkion Taulu[I] arvoksi.
    4. [3 p] Alusta taulukko Taulu siten, että kunkin alkion Taulu[I] arvoksi tulee 5*i + 6875341.
    5. [6 p] Käytössäsi on funktio ka(Arr, Dim), joka palauttaa arvonaan Dim-kokoisen taulukon Arr alkioiden keskiarvon. Parametri Arr on viiteparametri ja Dim on arvoparametri. Laske tätä funktiota käyttäen taulukon Taulu alkioiden keskiarvo ja sijoita se muuttujan X arvoksi. Huomaa, että sinun siis ei tarvitse toteuttaa funktiota ka.
    Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia. Tuo funktio ka on toteutettu näiden suositusten mukaisesti.

TTK-91 konekielen käskyt ovat: NOP, STORE, LOAD, IN, OUT, ADD, SUB, MUL, DIV, MOD, AND, OR, XOR, SHL, SHR, NOT, COMP, JUMP, JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS, JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC, IRET