in English Other side in English

Tietokoneen rakenne, kuulustelu 25.1.2011

Voit vastata suomeksi, ruotsiksi tai englanniksi.
Kirjoita jokaiseen vastauspaperiin: nimi, nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.
Kirjoita vastauspaperiin kaikki tekemäsi olettamukset. Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [9 p] Välimuisti (cache) ja TLB
    1. [3 p] Minkä ongelman välimuisti yrittää ratkaista? Minkälaiseen paikallisuuteen välimuistiratkaisu perustuu ja miksi? Mitä täsmälleen tapahtuu välimuistihudin (cache miss) yhteydessä ja mikä on sen suorituskykykustannus?
    2. [3 p] Minkä ongelman TLB yrittää ratkaista? Minkälaiseen paikallisuuteen TLB-ratkaisu perustuu ja miksi? Mitä täsmälleen tapahtuu TLB-hudin (TLB miss) yhteydessä ja mikä on sen suorituskykykustannus?
    3. Selitä käsite "joukkoassosiatiivinen välimuisti" (set associative cache).
    4. Selitä käsitteet "yhdistetty välimuisti" (unified cache) ja "jaettu välimuisti" (split cache).
    5. Missä suhteessa välimuisti ja TLB ovat toisiinsa?

  2. [18 p] Riippuvuudet. Oletetaan, että RISC-arkkitehtuurin konekielen ALU-käskyissä on kolme rekisterioperandia ja että tulos menee aina ensiksi mainittuun (vasemmanpuoleiseen) 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. [6 p] Kuvaile täsmällisesti ongelmatyypit datariippuvuus (data dependency), kontrolliriippuvuus (control dependency) ja rakenteellinen riippuvuus (structural dependency). Anna selkeällä tavalla kyseisen ongelmatyypin yksi esiintymä em. käskysarjassa (jos niitä siellä on).
    2. [4 p] Miten data-, kontrolli- ja rakenteellisista riippuvuuksista aiheutuvaa suorituskykyongelmia voidaan välttää tai vähentää? Anna kuhunkin riippuvuustyyppiin yksi (kontrolliriippuvuuteen 2 kpl) ratkaisumalli ja kuvaa lyhyesti, miten se toimii.
    3. [4 p] Oletetaan nyt, että arkkitehtuuri on laajennettu superskalaariksi (superscalar) noutopoliikalla nouda ja pura 3 käskyä kerrallaan ja issue-politiikalla out-of-order issue, out-of-order completion. Kuvaile täsmällisesti uudet ongelmatyypit (kirjoitusriippuvuus (output dependencies) ja antiriippuvuus (antidependencies)) sekä selkeällä tavalla kyseisen ongelmatyypin yksi esiintymä em. käskysarjassa (jos niitä siellä on).
    4. [4 p] Miten kohdan (c) kummastakin uudesta ongelmatyypistä aiheutuvia suorituskykyä heikentäviä ongelmia voidaan välttää tai vähentää? Anna kumpaankin uuteen riippuvuustyyppiin yksi ratkaisumalli ja kuvaa lyhyesti, miten se toimii.

  3. [9 p] Kontrolli
    1. Minkä ongelman suorittimen kontrolli ratkaisee?
    2. Miten langoitettu kontrolli toteutetetaan?
    3. Miten mikro-ohjelmoitu kontrolli toteutetaan?
    4. Miten horisontaalinen mikrokoodi eroaa vertikaalisesta mikrokoodista. Anna esimerkki.
    5. Mitkä etuja/haittoja langoitetulla kontrollilla on mikro-ohjelmoituun (microprogrammed) kontrolliin verrattuna?