581365-8 Tietokoneen rakenne, erilliskoe 2.4.2004  

Kirjoita jokaiseen vastauspaperiin: oma nimi, henkilötunnus, kurssin nimi, nimikirjoitus ja sivunumero.

  1. [30 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. [10 p] Kuvaile täsmällisesti allamainitut ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa (jos niitä siellä on):
      • data-riippuvuudet (data dependencies)
      • kontrolliriippuvuudet (control dependencies)
    2. [8 p] Miten data- ja kontrolliriippuvuuksista aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää? Anna molempiin tapauksiin useampi ratkaisumalli ja kuvaa lyhyesti, miten ne toimivat.
    3. [8 p] Oletetaan nyt, että arkkitehtuuri on laajennettu superskalaariksi (superscalar) arkkitehtuuriksi (noutopoliikka: nouda ja pura 3 käskyä kerrallaan, issue-politiikka: out-of-order issue, out-of-order completion). Kuvaile täsmällisesti allamainitut uudet ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa (jos niitä siellä on):
      • kirjoitusriippuvuudet (output dependencies)
      • antiriippuvuudet (antidependencies)
    4. [4 p] Miten kohdan (c) kustakin uudesta ongelmatyypistä aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää?

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

  2. [15 p] IA-64 ja Itanium.
    1. Selitä käsite "predikoitu suoritus (predicated execution)". Anna esimerkki.
    2. Selitä käsite "spekulatiivinen lataus tai kontrollispekulointi (speculative loading or control speculation)". Anna esimerkki.
    3. Selitä käsite "data spekulointi (data speculation)". Anna esimerkki.
    4. Selitä käsite "ohjelmisto liukuhihnoitus (software pipelining)". Anna esimerkki.
    5. Selitä käsite "haarautumisrekisteri (branch register)". Anna esimerkki.

  3. [15 p] Kontrolli (control)
    1. [2 p] Minkä ongelman kontrolli ratkaisee?
    2. [4 p] Miten langoitettu (hardwired) kontrolli toimii? Anna (kuvallinen) esimerkki.
    3. [5 p] Miten mikro-ohjelmoituun (microprogrammed) kontrolli toimii? Anna (kuvallinen) esimerkki.
    4. [2 p] Mitä etuja langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun kontrolliin?
    5. [2 p] Mitä etuja mikro-ohjelmoidussa kontrollissa on verrattuna langoitettuun kontrolliin?