Tietokoneen rakenne, koe 3.6.2014   suomeksi Other side in English

Kirjoita jokaiseen vastauspaperiin: nimi, nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.
Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [9 p] Digitaalilogiikka
    1. [2 p] Mikä on kiikku (flip-flop)? Sisäänmenot? Ulostulot?
    2. [2 p] Miten toteuttaisit 32-bittisen rekisterin kiikkujen avulla?
    3. [2 p] Mikä on yhden bitin yhteenlaskupiiri? Sisäänmenot? Ulostulot?
    4. [2 p] Kuinka toteuttaisit 32-bittisen yhteenlaskun 8-bittisten yhteenlaskupiirien avulla?
    5. [1 p] Miten ROM-piiri eroaa rekisteristä? Sisäänmenot? Ulostulot?
  2.  
  3. [9 p] Välimuisti.
    1. [4 p] Minkä ongelman välimuisti ratkaisee? Miksi välimuistia tarvitaan?
      Mihin periaatteeseen välimuistiratkaisut perustuvat? Selitä sen toiminta.
      Miten välimuisti periaatteellisella tasolla toimii? Mikä on välimuistin kuvausfunktio?
      Miten arvioidaan, toimiiko välimuisti hyvin tai huonosti?
      Miksi jaettu välimuisti usein toimii tehokkaammin kuin yhdistetty välimuisti?
      Miksi monitasoinen välimuisti usein toimii tehokkaammin kuin yksitasoinen välimuisti?
    2. [3 p] Selitä pääpirteissään kuinka joukkoassosiatiivinen välimuisti toimii. Anna esimerkki.
      Miksi joukkoassosiatiivinen välimuisti toimii usein paremmin kuin suoraa kuvausta käyttävä välimuisti?
      Miksi yleensä käytetään joukkoassosiatiivista välimuistia täysin assosiatiivisen välimuistin asemesta?
    3. [2 p] Minkä ongelman MESI-protokolla ratkaisee ja kuinka se toimii pääpiirteissään?
  4.  
  5. [9 p] Anna liukuhihnatason esimerkit kuhunkin allamainittuun riippuvuuteen (hazard). Tee esimerkeistäsi sellaisia, että riippuvuuden aiheuttama suorituskyvyn alenemisen ilmenee selkeästi. Selitä, minkälaisessa arkkitehtuurissa ja missä tilanteessa kyseinen riippuvuustilanne voi ilmetä. Anna kullekin riippuvuustyypille yksi sellainen ratkaisumenetelmä, joka ei vaadi liukuhihnan pysäyttämistä ("kupla", "bubble").
    1. Data-riippuvuus (data dependency, raw)
    2. Rakenteellinen riippuvuus (structural dependency)
    3. Kontrolliriippuvuus (control dependency)
    4. Kirjoitusriippuvuus (output dependency, waw)
    5. Antiriippuvuus (antidependency, war )
  6.  
  7. [9 p] Kontrolli
    1. [2 p] Minkä ongelman kontrolli ratkaisee?
    2. [2 p] Miten langoitettu (hard wired) kontrolli on toteutettu?
    3. [3 p] Miten mikro-ohjelmoitu (microprogrammed) kontrolli on toteutettu?
    4. [2 p] Vertaile mikrokoodin suoritusta suorittimen konekielen suoritukseen käskyjen nouto- ja suoritussyklissä. Mitä niillä on yhteistä? Kuinka ne eroavat toisistaan?