581305-6 Tietokoneen toiminta, 5 op, koe 10.4.2015  

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
Tämä koe on erilliskoe ja sen koealueena on koko kurssi.
  1. [9 p] Lukujen esitysmuoto.
    1. [2 p] Mikä on kokonaisluvun -7 32-bittinen Big-Endian 2-komplementin esitysmuoto?
    2. [2 p] Mikä on kokonaisluvun -7 16-bittinen Little-Endian 2-komplementin esitysmuoto?
    3. [2 p] Mikä on kokonaisluvun -7 8-bittinen Big-Endian vakiolisäys 127 -esitysmuoto?
    4. [3 p] Mikä on liukuluvun -7.0 32-bittinen Big-Endian IEEE-standardin mukainen esitysmuoto?
     
  2. [9 p] Ohjelma ja sen suoritus järjestelmässä
    1. [3 p] Mikä on prosessin esitysmuoto järjestelmässä? Tarkenna.
    2. [3 p] Mitkä ovat järjestelmässä olevan prosessin viisi elinkaaritilaa? Mitä tarkoittaa, kun prosessi on kussakin noista tiloista?
    3. [3 p] Mitä kaikkea järjestelmässä tapahtuu (i) elinkaaritilatasolla ja (ii) rekisteritasolla, kun suorituksessa oleva prosessi P jää odottamaan I/O:ta ja uusi prosessi Q pääsee suoritukseen?
     
  3. [9 p] Konekäskyjen suoritus.
    1. [3 p] Määrittele käsite "käskyjen nouto- ja suoritussykli" (fetch-execute cycle).
      Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu? Miten rekisterit PC, IR, MAR ja MBR liittyvät tähän?
    2. [3 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. [3 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä? Anna konkreettinen konekäskytason esimerkki (mitä nouto- ja suoritussyklissä tapahtuu keskeytyksen seurauksena) käyttäen jotain konekäskyn "mul R5, Salary(R1)" suoritukseen liittyvää keskeytystä. Mainitse käyttämäsi keskeytystyyppi. Miten tilarekisteri SR liittyy tähän?
       
  4. [9 p] Titokone, TitoTrainer ja ttk-91. Taulukko Table on 2-ulotteinen ja se on talletettu riveittäin. Siinä on 5 riviä ja 7 saraketta. Muuttuja x on määritelty pääohjelmatasolla.
    1. [3 p] Toteuta ttk-91 symbolisella konekielellä lause
              Table [3, 6] = 700

    2. [3 p] Voit olettaa, että indeksien i ja j arvot ovat sallituisssa puitteissa. Toteuta ttk-91 symbolisella konekielellä lause
              Table [i, j] = x

       
    3. [3 p] Et voi olettaa, että indeksien i ja j arvot ovat sallituisssa puitteissa. Haluat kuitenkin varmistua, että taulukkoviite kohdistuu oikeasti taulukkoon Table, eikä sen ulkopuolelle. Toteuta ttk-91 symbolisella konekielellä lause
              Table [i, j] = x



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