in English Other side in English

Tietokoneen rakenne, koe 15.10.2013

Voit vastata suomeksi, ruotsiksi tai englanniksi.
Kirjoita jokaiseen vastauspaperiin: nimi, nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.
Kirjoita vastauspaperiin kaikki tekemäsi olettamukset. Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [7 p] Lyhyesti
    1. Mikä on Karnaugh kaavio (Karnaugh map). Minkä ongelman se ratkaisee?
    2. Mikä on TLB? Minkä ongelman se ratkaisee?
    3. Minkälaiseen alueellisuuteen (locality) TLB:n toiminta perustuu?
    4. Selitä väylän aikavuorottelu (multiplexing). Minkä ongelman se ratkaisee?
    5. Mitä tarkoittaa väylän vuoronvalinta? Minkä ongelman se ratkaisee? Miten se voidaan toteuttaa?
    6. Mikä on Booth'in algoritmi? Minkä ongelman se ratkaisee? Miksi se on yleensä parempi kuin perusratkaisu?
    7. Mikä on NUMA? Minkä ongelman se ratkaisee? Miksi ratkaisu perustuisi NUMA:an?
       
  2. [8 p] Välimuisti.
    1. [4 p] Selitä kuinka joukkoassosiatiivinen välimuisti toimii. Käytä esimerkkinä (epärealistisen pientä) välimuistia, jossa osoitteet ovat 16-bittisiä, välimuistirivin pituus on 16 tavua ja välimuistin koko on 512 tavua. Toteutus perustuu joukkoassosiatiiviseen kuvaukseen joukon koolla 2. Käsittelyssä on lukuviite 4-tavuiseen sanaan tavuosoitteessa 0x2BC4.
       
      Selitä esimerkkivälimuistin rakenne yksityiskohtaisesti ja piirrä kuva, josta se käy ilmi. Huolehdi, että vastauksestasi käy selkeästi ilmi kuinka annettu tavuosoite jakautuu osiin (bittitasolla). Selitä, miten viitattu muistipaikka löytyy välimuistista. Oleta, että viitattu muistipaikka löytyy välimuistista tällä kertaa.

    2.  
    3. [4 p] Moniytimisellä suorittimella kullakin ytimellä on oma L1 datavälimuistinsa. Välimuistin yhteneväisyysongelma on ratkaistu MESI-protokollan avulla. Säikeet A, B ja C, jotka ovat vastaavasti suorituksessa ytimillä 1, 2 ja 3, ovat kaikki lukemassa yhteistä muuttujaa Sum. Missä MESI-tilassa kunkin ytimen L1 datavälimuistin muuttujan Sum sisältävä rivi on? Seuraavaksi prosessi B kirjoittaa uuden arvon muuttujaan Sum. Mitä tapahtuu näissä välimuisteissa ja muistissa nyt? Missä MESI-tilassa nyt kunkin ytimen L1 datavälimuistin muuttujan Sum sisältävä rivi on?

  3.  
  4. [8 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 jokaiselle riippuvuustyypille yksi sellainen ratkaisumenetelmä, joka ei vaadi liukuhihnan pysäyttämistä ("kupla", "bubble").
    1. [2 p] Data-riippuvuus (data dependency, raw)
    2. [2 p] Rakenteellinen riippuvuus (structural dependency)
    3. [2 p] Kontrolliriippuvuus (control dependency)
    4. Kirjoitusriippuvuus (output dependency, waw)
    5. Antiriippuvuus (antidependency, war )

  5. [7 p] Kontrolli
    1. [1 p] Minkä ongelman kontrolli ratkaisee?
    2. [3 p] Miten mikro-ohjelmoitu (microprogrammed) kontrolli on toteutettu?
    3. [3 p] Vertaile mikrokoodin suoritusta suorittimen konekielen suoritukseen. Mitä niillä on yhteistä? Kuinka ne eroavat toisistaan?