581365-8 Tietokoneen rakenne, erilliskuulustelu 16.1.2007 

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

  1. [9 p] Yhdistelmäpiiriä (combinatorial circuit) käytetään kontrolloimaan 7-segmenttistä näyttöä (ks. kuva alla). 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ä Z4 (vaakaviiva keskellä) ja sitä kontrolloivaa vastaavaa piirin ulostuloa Z4. Ulostulon Z4 arvo on siis yksi (1) kun kyseinen segmentti on valaistu.

    1. Anna Z4 totuustaulukkona.
    2. Anna Z4 Boolean lausekkeena SOP (sum of products) muodossa.
    3. Anna Z4:n SOP-muotoa vastaava Karnaugh-kartta (Karnaugh Map) ja sen avulla muodostettu mahdollisimman yksinkertainen SOP-muotoinen Z4:n Boolean lauseke. Näytä, miten yksinkertaistaminen tapahtui Karnaugh-kartan avulla.
    4. Anna Z4 Boolean lausekkeena POS (product of sums) muodossa.

  2. [9 p] Boothin algorithmi kokonaislukujen kertolaskuun.
    1. Mikä on Boothin algoritmin perusidea?
    2. Näytä esimerkkinä, miten algoritmi toimii kertolaskun 14*14 yhteydessä (desimaaliluvut 14*14).
    3. Milloin Boothin algoritmi on nopeampi kuin tavanomainen ratkaisu? Anna esimerkki.
    4. Milloin Boothin algoritmi on hitaampi kuin tavanomainen ratkaisu? Anna esimerkki.
       

     
  3. [9 p] Kun suoritin käyttää liukuhihnoitusta, suorituksessa on yhtä aikaa useita eri vaiheessa eteneviä konekäskyjä. Selitä täsmällisesti mitä seuraavat käskyjen väliset riippuvuudet tarkoittavat. Anna konkreettinen (konekielitason) esimerkki kustakin riippuvuustyypistä. Kerro myös, miten kunkin riippuvuuden aiheuttamat mahdolliset ongelmat torjutaan sekä kuinka niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia voidaan vähentää?
    1. data-riippuvuus (data-dependency)
    2. rakenteellinen riippuvuus (structural dependency)
    3. kontrolliriippivuus (control dependency)
    4. kirjoitusriippuvuus (output dependency)
    5. antiriippuvuus (antidependency)

     
  4. [9 p] Mikro-ohjelmoitu kontrolli (microprogrammed control)
    1. Minkä ongelman suorittimen kontrolli ratkaisee?
    2. Miten mikro-ohjelmoitu kontrolli on toteutettu?
    3. Mitkä etuja/haittoja mikro-ohjelmoidun kontrollilla on langoitettuun (hardwired) kontrolliin verrattuna?
    4. Millä kolmella eri tavalla seuraava mikro-ohjelman kontrolliosoite ("micro-program PC", control address) voidaan tuottaa ja missä tilanteessa niitä kutakin käytetään?
    5. Miten keskeytykset toteutetaan mikro-ohjelmoidussa kontrollissa?