581365-8 Tietokoneen rakenne, erilliskoe 4.6.2002

Kirjoita jokaiseen vastauspaperiin: oma nimi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.

  1. [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.

    1. [4 p] Anna Z6 totuustaulukkona.
    2. [4 p] Anna Z6 Boolean lausekkeena SOP (sum of products) muodossa.
    3. [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.
    4. [3 p] Anna Z6 Boolean lausekkeena POS (product of sums) muodossa.

     

  2. [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
    1. [5 p] Suoraa kuvausta (direct mapping) käyttävä kuvausfunktio (mapping function)?
    2. [5 p] Täysin assosiatiivista (associative or fully associative) kuvausta käyttävä kuvausfunktio.
    3. [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ä?

  3. [15 p] Mikro-ohjelmoitu kontrolli (microprogrammed control).
    Kuvaile lyhyesti mikro-ohjelmoidun kontrollin rakenne kattaen ainakin seuraavat seikat:
    1. [4 p] Miten yhden konekäskyn suoritus oikeastaan tapahtuu?
    2. [2 p] Miten laitteisto siirtyy suorittamaan seuraavaa konekäskyä?
    3. [1 p] Miten laitteisto siirtyy suorittamaan uutta prosessia (ohjelmaa)?
    4. [2 p] Miten horisontaalinen mikrokoodi eroaa vertikaalisesta mikrokoodista?
    5. [1 p] Miten mikro-ohjelmoitu kontrolli eroaa langoitetusta (hardwired) kontrollista?
    6. [2 p] Milloin olisi järkevää käyttää mikro-ohjelmoitua kontrollia langoitetun asemesta?
      Entä päin vastoin?
    7. [3 p] Miten Pentium-II -arkkitehtuurin kontrolli on toteutettu? Mikro-ohjelmoituna? Langoitettuna?

  4. [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.
    1. Viivästetty haarautuminen (delayed branch)
    2. Monta käskyvirtaa (multiple streams)
    3. Silmukkapuskuri (loop buffer)
    4. Ennakoiva käskyn nouto (prefetch branch target)
    5. Haarautumisen ennustaminen (branch prediction)
    6. Haarautumisen historiataulu (branch history table)
    7. Nollan syklin haarautumiset (zero cycle branches)
    8. Predikoitu suoritus (predicated execution)
    9. Haarautumisen kohdepuskuri (branch target buffer)
    10. Paluupinopuskuri (return stack buffer)