581365-8 Tietokoneen rakenne, erilliskoe 4.6.2002
Kirjoita jokaiseen vastauspaperiin: oma nimi,
henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [15 p] Yhdistelmäpiiriä (combinatorial circuit) käytetään
kontrolloimaan 7-segmenttistä näyttöä (ks. Figure A.34,
kääntöpuolella). Piirillä on neljä sisäänmenoa, joiden avulla on
koodattu desimaalinumero käyttäen pakattua desimaaliesitystä. Tässä
esityksessä numerot 0, 1, 2,..., 9 ovat koodattuna siis biteiksi 0000,
0001, 0010, ..., 1001. Sisäänmenobitit ovat vasemmalta oikealle
järjestyksessä X1, X2, X3, X4.
(Jos haluat, voit nimetä ne uudelleen biteiksi A, B, C ja D)
Sisäänmenojen avulla piiri valitsee, mitkä näytön segmenteistä on
kulloinkin aktivoitu (valaistu). Tarkastelemme jatkossa vain
näyttösegmenttiä Z6 (pystyviiva oikealla alhaalla) ja sitä
kontrolloivaa vastaavaa piirin ulostuloa Z6. Ulostulon Z6
arvo on siis yksi (1) kun kyseinen segmentti on valaistu.
- [4 p] Anna Z6 totuustaulukkona.
- [4 p] Anna Z6 Boolean lausekkeena SOP (sum of products)
muodossa.
- [4 p] Anna Z6:n SOP-muotoa vastaava Karnaugh-kartta
(Karnaugh Map) ja sen avulla muodostettu mahdollisimman
yksinkertainen SOP-muotoinen Z6:n Boolean lauseke.
Näytä, miten yksinkertaistaminen tapahtui Karnaugh-kartan avulla.
- [3 p] Anna Z6 Boolean lausekkeena POS (product of sums)
muodossa.
- [15 p] Välimuisti. Oletetaan, että (epärealistisen pienessä
välimuistiratkaisussa) 4-tavuisen sanan 8-bittinen tavuosoite on 0xA2.
Välimuistin rivin pituus (cache line size) on 32 tavua. Tee (kuvallinen)
esimerkki ja näytä miten viitattu muistipaikka löytyy välimuistista, kun
käytössä on
- [5 p] Suoraa kuvausta (direct mapping) käyttävä kuvausfunktio
(mapping function)?
- [5 p] Täysin assosiatiivista (associative or fully associative)
kuvausta käyttävä kuvausfunktio.
- [5 p] Joukkoassosiatiivista kuvausta joukon koolla 4 (4-way set
associative mapping) käyttävä kuvausfunktio?
Voit olettaa esimerkissäsi, että viitattu muistipaikka löytyy
välimuistista.
Montako tavua välimuistiin mahtuu? Mitkä ovat eri osoitekenttien
nimet/pituudet kunkin kuvaustyypin yhteydessä?
- [15 p] Mikro-ohjelmoitu kontrolli (microprogrammed control).
Kuvaile lyhyesti mikro-ohjelmoidun kontrollin rakenne kattaen ainakin
seuraavat seikat:
- [4 p] Miten yhden konekäskyn suoritus oikeastaan tapahtuu?
- [2 p] Miten laitteisto siirtyy suorittamaan seuraavaa
konekäskyä?
- [1 p] Miten laitteisto siirtyy suorittamaan uutta prosessia
(ohjelmaa)?
- [2 p] Miten horisontaalinen mikrokoodi eroaa vertikaalisesta
mikrokoodista?
- [1 p] Miten mikro-ohjelmoitu kontrolli eroaa langoitetusta
(hardwired) kontrollista?
- [2 p] Milloin olisi järkevää käyttää mikro-ohjelmoitua
kontrollia langoitetun asemesta?
Entä päin vastoin?
- [3 p] Miten Pentium-II -arkkitehtuurin kontrolli on toteutettu?
Mikro-ohjelmoituna? Langoitettuna?
- [15 p] Ehdottomat hypyt ja ehdolliset haarautumiset aiheuttavat ongelmia
liukuhihnoitetuissa suorittimissa. Näitä ongelmia on ratkottu usealla eri
tavalla. Kerro kustakin allamainitusta ratkaisumenetelmästä, (i) minkä
ongelman se ratkaisee ja minkä tyyppiseen arkkitehtuuriin ongelma liittyy,
(ii) miten ratkaisu on toteutettu sekä (iii) ratkaisun hyvät/huonot
puolet.
- Viivästetty haarautuminen (delayed branch)
- Monta käskyvirtaa (multiple streams)
- Silmukkapuskuri (loop buffer)
- Ennakoiva käskyn nouto (prefetch branch target)
- Haarautumisen ennustaminen (branch prediction)
- Haarautumisen historiataulu (branch history table)
- Nollan syklin haarautumiset (zero cycle branches)
- Predikoitu suoritus (predicated execution)
- Haarautumisen kohdepuskuri (branch target buffer)
- Paluupinopuskuri (return stack buffer)