581305-6 Tietokoneen toiminta, 4 op, koe 29.4.2014   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi. Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [12 p] Tiedon esitysmuodot
    1. [4 p] Anna kokonaisluvun +37 esitysmuoto 16-bittisessä kahden komplementin (twos complement) Big-Endian esitysmuodossa.
    2. [4 p] Anna kokonaisluvun -37 esitysmuoto 16-bittisessä kahden komplementti (twos complement) Big-Endian esitysmuodossa.
    3. [4 p] Mikä on liukuvun +0.375 esitysmuoto 32-bittisessä IEEE liukulukustandardin Big-Endian esitysmuodossa.

  2. [13 p] Konekäskyjen suoritus.
    1. [5 p] Määrittele käsite "käskyjen nouto- ja suoritussykli" (fetch-execute cycle).
      Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu? Miten PC liittyy tähän?
      Anna konkreettinen konekäskytason esimerkki käyttäen konekäskyä "MUL R1, T(R2)".
    2. [4 p] Mikä on etuoikeutettu käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä? Mitä etuoikeuksia siihen liittyy? Miten siihen päästään ja kuinka siitä palataan normaaliin käskyjen suoritustilaan? Miten tilarekisteri SR liittyy tähän?
    3. [4 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä? Miten tilarekisteri SR liittyy tähän? Anna konkreettinen konekäskytason esimerkki käyttäen jotain konekäskyn "MUL R1, T(R2)" suoritukseen liittyvää keskeytystä.
       
  3. [13 p] Ohjelma ja sen suoritus.
    1. [4 p] Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
    2. [4 p] Miten prosessin vaihto toteutetaan konekäskytasolla?
    3. [5 p] Milloin prosessi P siirtyy "suorituksessa" (running) tilasta "odottaa" (waiting, blocked) tilaan?
      Anna esimerkki olosuhteista, jossa näin tapahtuisi. Miten tilan siirtyminen toteutetaan?
      Minkä tapahtuman seurauksena ja milloin P pääsee takaisin suoritukseen? Miten tämä tilan muutos toteutetaan?
     
  4. [12 p] Titokone, TitoTrainer ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen a+3b-c arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 4. Parametrit a ja b ovat arvoparametreja ja parametri c on viiteparametri. Muuttujat x ja y on määritelty pääohjelmatasolla.
    1. [5 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x, y, y).
    2. [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x-y, 7654321, x-y).  
    3. [4 p] Toteuta ttk-91 symbolisella konekielellä funktio F.
       
    Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.

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