in English Other side in English

581365-8 Tietokoneen rakenne, erilliskuulustelu 27.3.2007 

Kirjoita jokaiseen vastauspaperiin: oma nimi, henkilö- tai opiskelijatunnus, kurssin nimi, nimikirjoitus ja sivunumero.

  1. [18 p] Riippuvuudet. Oletetaan, että RISC-arkkitehtuurin konekielen ALU-käskyissä on kolme rekisterioperandia ja että tulos menee aina ensiksi mainittuun (vasemmanpuoliseen) rekisteriin. Arkkitehtuuri on toteutettu (tavanomaisesti, ei superskalaarina) liukuhihnoitettuna siten, että parhaimmassa tapauksessa joka syklillä (cycle) saadaan yksi konekäsky valmiiksi. Liukuhihnassa on viisi vaihetta (käskyn nouto, käskyn purku, rekistereiden luku, ALU, write-back).

    Tarkastellaan seuraavaa kääntäjän generoimaa käskysarjaa (käskyn numero vasemmalla):

    1         Load  R2, VarX     ; Regs(2) <- Mem(VarX)
    2         Add   R5, R5, R2   ; Regs(5) <- Regs(5) + Regs(2)  
    3 Loop    Move  R2, R6       ; Regs(2) <- Regs(6)
    4         Add   R3, R3, R2
    5         Add   R2, R3, R5 
    6         Jnzer R3, Loop
    7         Move  R1, R2
    Useat seikat edellämainitussa koodisegmentissä voivat hidastaa suorittimen toimintaa maksiminopeudesta.
    1. Kuvaile täsmällisesti allamainitut ongelmatyypit ja anna selkeällä tavalla yksi kyseisen ongelmatyypin esiintymä em. käskysarjassa (jos niitä siellä on):
      • data-riippuvuus (data dependency)
      • kontrolliriippuvuus (control dependency)
      • rakenteellinen riippuvuus (structural dependency)
    2. Miten data-, kontrolli- ja datariippuvuuksista aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää? Anna kuhunkin riippuvuustyyppiin yksi ratkaisumalli ja kuvaa lyhyesti, miten se toimii.
    3. Oletetaan nyt, että arkkitehtuuri on laajennettu superskalaariksi (superscalar) arkkitehtuuriksi noutopoliikalla nouda ja pura 3 käskyä kerrallaan ja issue-politiikalla out-of-order issue, out-of-order completion. Kuvaile täsmällisesti allamainitut uudet ongelmatyypit ja selkeällä tavalla yksi kyseisen ongelmatyypin esiintymä em. käskysarjassa (jos niitä siellä on):
      • kirjoitusriippuvuus (output dependencies)
      • antiriippuvuus (antidependencies)
    4. Miten kohdan (c) kustakin uudesta ongelmatyypistä aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää? Anna kuhunkin uuteen riippuvuustyyppiin yksi ratkaisumalli ja kuvaa lyhyesti, miten se toimii.

    Tee tarvittavat lisäoletukset ja kirjaa ne näkyviin.

  2. [9 p] Virtuaalimuistin TLB ja välimuisti
    1. Miten virtuaalimuistin TLB ja välimuisti toimivat yhdessä muistiviittauksiin käytetyn ajan minimoimiseksi?
    2. Mitä yhteistä on virtuaalimuistin TLB'llä ja välimuistilla?
    3. Mitkä ovat suurimmat erot virtuaalimuistin TLB'n ja välimuistin välillä?
    4. Hyödynnetäänkö virtuaalimuistin TLB'ssä ja välimuistissa ajallista paikallisuutta (temporal locality)? Miten se ilmenee niissä?
    5. Hyödynnetäänkö virtuaalimuistin TLB'ssä ja välimuistissa alueellista paikallisuutta (spatial locality)? Miten se ilmenee niissä?
       

     
  3. [9 p] IA-64 ja Itanium. Selitä seuraavat IA-64 arkkitehtuuriin liittyvät käsitteet. Anna kullekin käsitteelle konkreettinen (konekielitason) esimerkki.
    1. WLIW, nippu (bundle), mallinne (kaavain, template)
    2. Predikoitu suoritus (predicated execution)
    3. Spekulatiivinen lataus eli kontrollispekulointi (speculative loading or control speculation)
    4. Data spekulointi (data speculation)
    5. Ohjelmisto liukuhihnoitus (software pipelining)