Tietokoneen rakenne, koe 11.4.2014         

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

  1. [9 p] Digitaalilogiikka
    1. [3 p] Mikä on yhdistelmäpiiri (combinational circuit) ja mihin niitä käytetään? Anna konkreettinen esimerkki yhdistelmäpiiristä?
    2. [3 p] Mikä on sarjallinen piiri (sequential circuit) ja mihin niitä käytetään? Miten ne eroavat yhdistelmäpiireistä? Anna konkreettinen esimerkki sarjallisesta piiristä?
    3. [3 p] Mikä on Karnaugh-kartta ja mihin tarkoitukseen sitä käytetään? Anna konkreettinen esimerkki?
  2.  
  3. [9 p] Välimuisti.
    1. [3 p] Minkä ongelman välimuisti ratkaisee?
      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?
      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?
    3. [3 p] Minkä ongelman MESI-protokolla ratkaisee ja kuinka se toimii pääpiirteissään?
  4.  
  5. [9 p] Kontrolliriippuvuudet. (Ehdolliset) haarautumiskäskyt vaikuttavat liukuhihnoitetun suorittimen toimintaan merkittävästä. Selitä, mikä tässä on varsinainen ongelma (kohta a). Haarautumiskäskyjen tehokasta käsittelyä varten onkin kehitetty useita menetelmiä. Kerro kustakin menetelmästä (kohdat b-e), kuinka se ratkoo tätä ongelmaa, millä eri tavoin ratkaisu on toteutettavissa sekä selvitä ratkaisun hyvät/huonot puolet.
    1. [2 p] Mikä on varsinainen ongelma kontrolliriippuvuuksissa ja miksi ne voivat hidastaa suoritusta?
    2. Viivästetty haarautuminen (delayed branch)
    3. Silmukkapuskuri (loop buffer)
    4. [2 p] Haarautumisen staattinen ennustaminen (static branch prediction)
    5. [3 p] Haarautumisen dynaaminen ennustaminen (dynamic branch prediction)
  6.  
  7. [9 p] Mikro-ohjelmoitu (microprogrammed) kontrolli
    1. [1 p] Minkä ongelman suorittimen kontrolli ratkaisee? Mitä kontrolli tekee?
    2. [2 p] Miten mikro-ohjelmoitu kontrolli toteutetaan?
    3. [2 p] Vertaile mikrokoodin käskyjä konekielen konekäskyihin. Erot? Samankaltaisuudet?
    4. [2 p] Miten horisontaalinen mikrokoodi eroaa vertikaalisesta mikrokoodista. Anna esimerkki.
    5. [2 p] Mitkä etuja/haittoja mikro-ohjelmoidulla kontrollilla on langoitettuun kontrolliin verrattuna?