581365-8 Tietokoneen rakenne, erilliskoe 16.1.2004  
Kirjoita jokaiseen vastauspaperiin: oma nimi, henkilötunnus, 
  kurssin nimi, nimikirjoitus ja sivunumero. 
  - [14 p] Boothin algoritmi kokonaislukujen kertolaskuun. 
    
      - [2 p] Minkä ongelman Boothin algoritmi ratkaisee? 
 
      - [6 p] Miten Boothin algoritmi toimii? 
 
      - [2 p] Mitä Boothin algoritmissa tapahtuu kertolaskun 60*60 tapauksessa? 
        (Lukujen desimaaliarvo on siis 60)
 
      - [2 p] Miksi Boothin algoritmi on parempi kuin perinteinen ratkaisu? 
        Anna kuvaava esimerkki.
 
      - [2 p] Onko tilanteita, joissa perinteinen ratkaisu olisi parempi tai 
        yhtä hyvä kuin Boothin algoritmiin perustuva ratkaisu? Anna kuvaava esimerkki. 
      
 
    
    
      
   -  [16 p] Ehdottomat hypyt ja ehdolliset haarautumiset aiheuttavat ongelmia 
    liukuhihnoitetuissa suorittimissa. Näitä ongelmia on ratkottu usealla eri 
    tavalla. Kerro kustakin allamainitusta ratkaisumenetelmästä, (i) minkä ongelman 
    se ratkaisee, (ii) miten ratkaisu on toteutettu sekä (iii) ratkaisun hyvät/huonot 
    puolet. 
    
      - [2 p] Viivästetty haarautuminen (delayed branch)
 
      - [2 p] Silmukkapuskuri (loop buffer)
 
      - [2 p] Ennakoiva käskyn nouto (prefetch branch target)
 
      - [2 p] Haarautumisen ennustaminen (branch prediction)
 
      - [2 p] Haarautumisen historiataulu (branch history table)
 
      - [2 p] IA-64:n predikoitu suoritus (predicated execution)
 
      - [2 p] IA-64:n data spekulointi (data speculation)
 
      - [2 p] IA-64:n haarautumisrekisteri (branch register)
         
           
    
   
  -  [15 p] Välimuisti. Oletetaan, että (epärealistisen pienessä välimuistiratkaisussa) 
    4-tavuisen sanan 8-bittinen tavuosoite on 0xB6 (heksadesimaali B6). Välimuistin 
    koko on 128 tavua ja rivin pituus (cache line size) on 16 tavua. Tee (kuvallinen) 
    esimerkki ja näytä miten viitattu muistipaikka löytyy välimuistista, kun käytössä 
    on 
    
      - [5 p] Suoraa kuvausta (direct mapping) käyttävä kuvausfunktio (mapping 
        function)?
 
      - [5 p] Täysin assosiatiivista (associative or fully associative) kuvausta 
        käyttävä kuvausfunktio.
 
      - [5 p] Joukkoassosiatiivista kuvausta joukon koolla 2 (2-way set associative 
        mapping) käyttävä kuvausfunktio?
 
    
    Voit olettaa esimerkissäsi, että viitattu muistipaikka löytyy välimuistista.
    Mitkä ovat eri osoitekenttien nimet/pituudet kunkin kuvaustyypin yhteydessä?
    Missä kaikkialla kyseinen muistipaikka voi välimuistissa sijaita 
    kunkin kuvaustyypin yhteydessä?
    
   
  - [15 p] Langoitettu kontrolli (hardwired control) 
    
      - [2 p] Minkä ongelman (langoitettu) kontrolli ratkaisee?
 
      - [7 p] Miten langoitettu kontrolli toimii? Anna (kuvallinen) esimerkki.
 
      - [2 p] Mitä ongelmia langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun 
        (microprogrammed) kontrolliin?
 
      - [2 p] Mitä etuja langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun 
        (microprogrammed) kontrolliin?
 
      - [2 p] Kannattaisiko RISC suoritin toteuttaa langoitetulla vai mikro-ohjelmoidulla 
        kontrollilla? Miksi?