Tietokoneen toiminta, 2 ov, kurssikuulustelu 11.5.2004
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
oma nimi,
opiskelijanumero (tai henkilötunnus), kurssin nimi, nimikirjoitus ja sivunumero.
Kokeesta voi saada 46 pistettä. (Laskuharjoituksista oli
saatavilla 12 ja ennakkoon palautetuista tehtävistä 5 pistettä.)
Pyri vastaamaan kaikkiin kysymyksiin lyhyesti, mutta kokonaisilla lauseilla.
- [12p] Konekäskyjen suoritus ja koneen rakenne.
- [4 p] Mitä vaiheita konekäskyn suorittamisessa on?
- [1 p] Miten suoritin tietää, mikä konekäsky on kulloinkin
suoritusvuorossa?
- [3 p] Määrittele käsite keskeytys (exception,
interrupt). Minkä tyyppisiä keskeytyksiä on olemassa? Miten
suoritin käsittelee keskeytykset?
- [4 p] Mitä kaikkea järjestelmässä tapahtuu siitä hetkestä alkaen kun
suorituksessa oleva ohjelma P haluaa tallettaa dataa levylle,
siihen hetkeen asti kun P jatkaa suoritustaan I/O:n jälkeen?
Kerro mitä I/O-mallia kuvauksessasi käytit.
- [12p] Tiedon sijainti
Kuvaa kaikki ne tiedon sijaintipaikat,
joista konekäsky voi ladata tarvitsemansa tiedon. Anna jokaisesta
sijaintipaikasta ttk-91 symbolista konekieltä käyttäen
konekäsky, joka viittaa juuri siinä sijaintipaikassa olevaan tietoon.
Kerro erityisesti, missä käskyn suorituksen
vaiheessa kyseinen viittaus tapahtuu ja miten viitattu tieto löytyy
järjestelmästä konekäskyssä olevien tietojen perusteella.
Millaisia nopeuseroja tiedon haussa eri paikoista on (karkealla tasolla).
(HUOM: välimuistia ei oteta huomioon tässä
tapauksessa,
vaikka data usein sijaitseekin siellä. )
- [10 p] Hamming-koodi.
Oletetaan, että muistiin halutaan tallentaa 4-bittinen data
(0xB eli 1011), joka suojataan Hamming-koodin avulla. Oletetaan, että
bitit numeroidaan oikealta vasemmalle (kuten luennoilla ja harjoituksissa).
Käytössä on parillinen pariteetti.
- [2 p] Montako pariteettibittiä tarvitaan suojaamaan
näitä neljää databittiä?
- [4 p] Anna Hamming-koodilla suojattu kyseisen datan esitysmuoto
(pariteettibitteineen).
- [2 p] Oletetaan nyt, että Hamming-koodatun datan kolmas bitti oikealta
on muuttunut.
Havaitaanko virhe Hamming-koodin avulla? Voidaanko se korjata? Miten tai miksi
ei? Näytä yksityiskohtaisesti.
- [2 p] Oletetaan nyt, että Hamming-koodatussa datassa toinen ja
kolmas bitti oikealta ovat molemmat muuttuneet.
Havaitaanko virhe Hamming-koodin avulla? Voidaanko se korjata? Miten tai miksi
ei? Näytä yksityiskohtaisesti.
- [12p] Aliohjelmien/funktioiden toteutus.
- [2 p] Miten aliohjelmat toteutetaan konekielitasolla? Mitkä
asiat ovat tärkeitä aliohjelmien toteutuksessa?
- [2 p] Miten arvo- ja viiteparametrien välittäminen ja käyttö
eroavat toisistaan konekielitasolla?
- [4 p] Funktio Apua(A, B, C) palauttaa arvonaan lausekkeen A*B+C
arvon. Parametrit ovat kaikki
arvoparametreja. Toteuta ttk-91 symbolisella konekielellä ohjelma,
joka
(i) lukee kolme kokonaislukua, (ii) funktiota Apua käyttäen
laskee salaisen Apua-arvon ja (iii) lopulta tulostaa sen.
- [4 p] Toteuta ttk-91 symbolisella konekielellä edellisessä
kohdassa mainittu funktio Apua(A, B, C).
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