581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 16.8.2005    

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [15 p] Hamming koodi. Oletetaan, että meillä on 4-bittinen data 0111, joka suojataan Hamming koodin avulla. Oletetaan, että bitit numeroidaan oikealta vasemmalle (kuten Stallingsin kirjassa esitettiin). Käytössä on parillinen pariteetti.
    1. [2 p] Montako pariteettibittiä tarvitaan suojaamaan näitä neljää data-bittiä?
    2. [4 p] Anna Hamming koodilla suojattu kyseisen datan esitysmuoto (pariteettibitteineen).
    3. [3 p] Oletetaan, että toinen (2) bitti vasemmalta (kyseisessä datassa pariteettibitteineen) on tiedon siirron aikana muuttunut. Havaitaanko virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä yksityiskohtaisesti.
    4. [3 p] Oletetaan, että joku tarkistusbiteistä muuttuu tiedon siirron aikana, mutta muut bitit siirtyvät oikein. Havaitaanko virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä yksityiskohtaisesti.
    5. [3 p] Jos databittejä olisi 64, niin montako pariteettibittiä tarvittaisiin?
       
  2. [15 p] Määrittele seuraavat käsitteet
    1. [3 p] prosessi
    2. [3 p] etuoikeutettu tila
    3. [3 p] muistiväylä
    4. [3 p] Epäsuora I/O
    5. [3 p] DMA (Direct Memory Access)

  3. [15 p] Konekäskyjen suoritus, keskeytykset.
    1. [5 p] Kerro millainen on TTK-91 koneen käskyrakenne ja mitä tietoja mihinkin kenttään talletetaan. Anna konekäskyn "SUB R4, T(R3)" esitysmuoto muistissa käskyrakenteen mukaan kokonaislukuina (ei tarvitse muuttaa biteiksi), kun symbolitaulussa T:n arvo on 70.
    2. [5 p] Mitä suorittimella tapahtuu konekäskyä "SUB R4, T(R3)" suoritettaessa suoritussyklin eri vaiheissa?
    3. [5 p] Mitä ovat keskeytykset (exception, interrupt) ja minkä tyyppisiä keskeytyksiä on olemassa?

  4. [15 p]  Ttk-91 koneen symbolinen konekieli. Kokonaislukuarvoiset muuttujat K1 ja K2 sekä kokonaislukuarvoinen taulukko T[32] on määritelty pääohjelmatasolla. Taulukossa on siis 32 alkiota (indeksit 0,...,31).
    1. [1 p] Anna muuttujien K1 ja K2 sekä taulukon T määrittely.
    2. [7 p] Tee aliohjelma Bitit(Luku, N, B), joka palauttaa N vähiten merkitsevää bittiä kokonaisluvusta Luku N-alkioisessa taulukossa B. Taulukon alkioiden arvojoukko sisältää siis vain nollia ja ykkösiä. Jos Luku on esimerkiksi 5, niin T[0]=1, T[2]=1 ja muiden alkioiden arvo on nolla. Parametrit Luku ja N ovat arvoparametreja ja parametri B on viiteparametri.
    3. [7 p] Anna käskyt, joilla ensin luetaan muuttujaan K1 kokonaisluku ja sen jälkeen aliohjelmaa Bitit käyttäen haetaan taulukkoon T luvun bittiesitys ja tulostetaan bitit. Tämän jälkeen luetaan muuttujaan K2 kokonaisluku ja aliohjelmaa Bitit käyttäen haetaan taulukkoon T luvun bittiesitys. Lopuksi tulostetaan kuinka monta 1-bittiä luvussa K2 oli.
    Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja 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