581365-8 Tietokoneen rakenne, kurssikuulustelu 2.11.2001

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

  1. [12 p] Yhdistelmäpiiriä (combinatorial circuit) käytetään kontrolloimaan 7-segmenttistä näyttöä (ks. Figure A.34). 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ä Z5 (pystyviiva vasemmalla alhaalla) ja sitä kontrolloivaa vastaavaa piirin ulostuloa Z5. Ulostulon Z5 arvo on siis yksi (1) kun kyseinen segmentti on valaistu.

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

  2. [12 p] Virtuaalimuisti
    1. [2 p] Minkä perusongelman virtuaalimuisti ratkaisee?
    2. [2 p] Mihin ilmiöön virtuaalimuistin ratkaisu perustuu?
    3. [3 p] Miten TLB liittyy perusongelman ratkaisuun? Minkä ongelman TLB ratkaisee? Miksi TLB:stä on hyötyä?
    4. [3 p] Mitä TLB:llä ja välimuistilla (cache) on yhteistä ja miten ne eroavat toisistaan?
    5. [2 p] Mikä on käänteinen sivutaulu (inverted page table) ja mitä hyötyä/haittaa siitä on tavanomaiseen sivutauluun verrattuna?


  3. [12 p] Riippuvuudet. Oletetaan, että RISC-arkkitehtuurin konekielen ALU-käskyissä on kaksi rekisterioperandia ja että tulos menee aina ensiksi mainittuun (vasemmanpuoliseen) rekisteriin. Arkkitehtuuri on toteutettu (tavanomaisesti, ei superskalaarina) liukuhihnoitettuna siten, että parhaimmassa tapauksessa joka syklillä (cycle) saadaan yksi konekäsky valmiiksi.

    Tarkastellaan seuraavaa kääntäjän generoimaa käskysarjaa:

    	Load	R2, VarX   ; Regs(R2) <- Mem(VarX)
    	Add	R5, R2     ; Regs(R5) <- Regs (R5) + Regs(R2)  
    	Load	R2, VarY
    	Add	R3, R2
    	Mul	R3, R5
    	Jnzer	R2, Loop
    	Add	R4, R2
    
    Useat seikat edellämainitussa koodisegmentissä voivat hidastaa suorittimen toimintaa maksiminopeudesta.

     

    1. [8 p] Kuvaile täsmällisesti allamainitut ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa:
      • data-riippuvuudet (data dependencies)
      • rakenteelliset riippuvuudet (structural dependencies)
      • kontrolliriippuvuudet (control dependencies)
      Miten kustakin ongelmatyypistä aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää?

       

    2. [4 p] Oletetaan nyt, että arkkitehtuuri toteutetaankin superskalaarina (superscalar). Kuvaile täsmällisesti allamainitut uudet ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa.
      • kirjoitusriippuvuus (output dependencies)
      • antiriippuvuus (antidependencies)
      Miten kustakin uudesta ongelmatyypistä aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää?

    Tee tarvittavat lisäoletukset ja kirjaa ne näkyviin.

  4. [12 p] Langoitettu kontrolli (hardwired control)
    1. [3 p] Minkä ongelman (langoitettu) kontrolli ratkaisee?
    2. [3 p] Miten langoitettu kontrolli toimii? Anna (kuvallinen) esimerkki.
    3. [2 p] Mitä ongelmia langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun (microprogrammed) kontrolliin?
    4. [2 p] Mitä etuja langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun (microprogrammed) kontrolliin?
    5. [2 p] Kannattaisiko RISC suoritin toteuttaa langoitetulla vai mikro-ohjelmoidulla kontrollilla? Miksi?