581365 Tietokoneen rakenne

Erilliskuulustelu 3.6.2008


1. BOOTHIN ALGORITMI KOKONAISLUKUJEN KERTOLASKUUN [15 p]

  1. Mikä on Boothin algoritmin perusidea? (5 p)
  2. Näytä esimerkkinä, miten algoritmi toimii kertolaskun 14*14 yhteydessä. (6 p)
  3. Milloin Boothin algoritmi on nopeampi kuin tavanomainen ratkaisu? Anna esimerkki.(2 p)
  4. Milloin Boothin algoritmi on hitaampi kuin tavanomainen ratkaisu? Anna esimerkki. (2 p)

2. VÄLIMUISTI JA TLB [15p]

  1. Miksi tarvitaan välimuistia (cache) ja miksi välimuisti toimii? (2 p)
  2. Miksi käytetään TLB:tä ja miksi TLB toimii? (2 p)
  3. Mitä yhteistä/eroa on välimuistilla ja TLB:llä? Miten niiden toiminta liittyy toisiinsa? (4p)
  4. Oleta, että (epärealistisen pienessä) välimuistiratkaisussa viitatun 4-tavuisen sanan 16-bittinen tavuosoite on 0xA0B4. Välimuistin rivin pituus (cache line size) on 16 tavua ja välimuistin koko (cache size) on 256 tavua.
    Piirrä kuva, josta käy ilmi välimuistin rakenne. Selitä miten mainittu muistipaikka löytyy välimuistista,
    kun toteutus perustuu joukkoassosiatiiviseen kuvaukseen, jossa joukon koko on 2 (2-way set associative).
    Huolehdi, että vastauksestasi käy selkeästi ilmi, kuinka annettu tavuosoite jakautuu osiin (bittitasolla).
    Voit olettaa, että viitattu muistipaikka löytyy välimuistista.(7 p)
3. SUPERSKALAARI [14p]
  1. Miten superskalaari eroaa superliukuhihnasta? Miten superskalaari tuo lisää suoritustehoa? (4 p)
  2. Mitkä tekijät rajoittavat superskalaariprosessorin liukuhihnan maksimisuorituskykyä? Anna kustakin
    hidastavasta tekijästä esimerkkikoodi. Selvitä lisäksi, kuinka noita ongelmia on pyritty ratkomaan? (10 p)

4. IA-64 JA ITANIUM [16p]
Selitä seuraavat käsitteet. Anna kullekin (konekielitason) esimerkki.

  1. Predikoitu suoritus (predicated execution) (4 p)
  2. Spekulatiivinen lataus tai kontrollispekulointi (speculative loading or control speculation).(4 p)
  3. Dataspekulointi (data speculation) (4 p)
  4. Ohjelmistoliukuhihnoitus (software pipelining) (4 p)





In English on the other side!