581365-8 Tietokoneen rakenne, luentokurssin koe 16.12.1999

Sallittu materiaali: laskin

  1. [8 p] Yhdistelmäpiiriä (combinatorial circuit) käytetään kontrolloimaan 7-segmenttistä näyttöä (ks. Figure A.34 koepaperin toisella 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.

    Sisäänmenojen avulla piiri valitsee, mitkä näytön segmenteistä on kulloinkin aktivoitu (valaistu). Tarkastelemme jatkossa vain näyttösegmenttiä Z4 (vaakasuora viiva 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 Z4:n Boolean lauseke. Näytä, miten yksinkertaistaminen tapahtui Karnaugh-kartan avulla.
    4. Anna Z4 Boolean lausekkeena POS (product of sums) muodossa.

  2. [8 p] Ehdolliset ja ehdottomat haarautumiskäskyt vaikuttavat huomattavat liukuhihnoitetun prosessorin toimintaan.
    1. [6 p] Millä eri tavoin haarautumiskäskyjen tuomia ongelmia voidaan ratkoa? Kerro kustakin (ainakin kuudesta) menetelmästä,
      1. minkä ongelman se ratkaisee?
      2. miten se kyseisen ongelman ratkaisee?
      3. miten tehokas ratkaisu on suorituskyvyn kannalta?
    2. [2 p] Miten haarautumiskäskyt vaikuttavat ei-liukuhihnoitetun prosessorin toimintaan? Perustele.

  3. [8 p] Liitteenä olevassa kuvassa (ks. Fig. 15.12 koepaperin toisella puolella) on kuvattu hyvin yksinkertaisen koneen mikrokäskyjen rakenne. Arkkitehtuuri voidaan toteuttaa joko vertikaalisia tai horisontaalisia mikrokäskyjä käyttäen.

    Oleta, että muistiviite kestää kaksi kellojaksoa. Read-operaation jälkeen luettu luku ei siis ole MDR:ssä heti Read-käskyä seuraavan kellojakson alussa, mutta on siellä (MDR:ssä) sitä seuraavan kellojakson (mikrokäskyn) alussa.

    1. [2 p] Mitä etuja/haittoja vertikaalisten mikrokäskyjen käyttämisellä arkkitehtuurin toteuttamisessa on verrattuna horisontaalisten mikrokäskyjen käyttöön?
    2. [3 p] Anna optimaaliset vertikaaliset mikrokäskyt, joiden avulla toteutetaan konekäskyt
      I      LOAD (Ri)      % ACC <= (memory(Ri))
      II ADD (Ri+) % ACC <= (ACC) + (memory(Ri)); Ri <= (Ri) + 1
    3. [3 p] Anna vastaavasti optimaaliset horisontaaliset mikrokäskyt, joiden avulla edellä mainitut konekäskyt ("LOAD (Ri)" ja "ADD (Ri+)") saadaan toteutettua.

    Älä koodaa käskyn noutovaihetta, vaan ainoastaan suoritusvaihe. Konekäskyjen rekisteri Ri voi olla mikä tahansa koneen neljästä rekisteristä.

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