581365-8 Tietokoneen rakenne, loppukoe 3.4.2001

 

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

  1. [15 p] Riippuvuudet. Oletetaan, että RISC-arkkitehtuurin konekielen ALU-käskyissä on kaksi operandia ja että tulos menee aina ensiksi mainittuun (vasemmanpuoliseen) rekisteriin. Arkkitehtuuri on toteutettu liukuhihnoitettuna siten, että parhaimmassa tapauksessa joka syklillä (cycle) saadaan yksi konekäsky valmiiksi.

    Tarkastellaan seuraavaa kääntäjän generoimaa käskysarjaa:

    	Load	R2, VarX   ; Regs(R2) <- Mem(VarX)
    	Add	R5, R2     ; Regs(R5) <- Regs (R5) + Regs(R2)  
    	Load	R2, VarY
    	Add	R3, R2
    	Mul	R3, R5
    	Jnzer	R2, Loop
    	Add	R4, R2
    
    Useat seikat edellämainitussa koodisegmentissä voivat hidastaa suorittimen toimintaa maksiminopeudesta.

    1. Kuvaile täsmällisesti allamainitut ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa.
      • data-riippuvuudet (data dependencies)
      • rakenteelliset riippuvuudet (structural dependencies)
      • kontrolliriippuvuudet (control dependencies)
      Miten kustakin ongelmatyypistä aiheutuvaa ongelmia voidaan välttää tai niiden aiheuttamia suorituskykyä heikentäviä vaikutuksia vähentää?

    2. Oletetaan nyt, että arkkitehtuuri toteutetaankin superskalaarina (superscalar). Kuvaile täsmällisesti allamainitut uudet ongelmatyypit ja merkitse selkeällä tavalla kaikki kyseisen ongelmatyypin esiintymät em. käskysarjassa.
      • kirjoitusriippuvuus (output dependencies)
      • antiriippuvuus (antidependencies)
      Miten kustakin 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] Haarautumiskäskyjen ongelmat. Ehdolliset ja ehdottomat haarautumiskäskyt vaikuttavat huomattavasti liukuhihnoitetun prosessorin toimintaan.
    1. [12 p] Millä eri tavoin haarautumiskäskyjen tuomia ongelmia voidaan ratkoa? Kerro kustakin (ainakin kuudesta) menetelmästä,
      1. Minkä ongelman se ratkaisee?
      2. Miten se kyseisen ongelman ratkaisee?
      3. Miten tehokas ratkaisu on suorituskyvyn kannalta?
    2. [3 p] Miten haarautumiskäskyt vaikuttavat ei-liukuhihnoitetun prosessorin toimintaan? Perustele.

  3. [15 p] TLB ja välimuisti. Minkä ongelman ne ratkaisevat? Mihin ilmiöön ratkaisumenetelmät perustuvat? Mitä niillä on yhteistä? Miten ne eroavat toisistaan?
    (max 2 sivua)

  4. [15 p] Miten kellopulssi saa suorittimen (prosessorin) suorittamaan konekäskyjä. Vastauksen pituus saa olla korkeintaan kaksi sivua. Anna (kuvallinen) esimerkki. (max 2 sivua)