[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.
- [6 p] Kuvaile täsmällisesti ongelmatyypit datariippuvuus (raw), kontrolliriippuvuus
ja rakenteellinen riippuvuus. Anna selkeällä tavalla kyseisen ongelmatyypin yksi esiintymä em. käskysarjassa (jos niitä siellä on).
- [6 p] Miten data-, kontrolli- ja rakenteellisista riippuvuuksista aiheutuvaa suorituskykyongelmia voidaan välttää tai vähentää? Anna yhteensä kuusi ratkaisumallia (kuhunkin riippuvuustyyppiin vähintään yksi ja kontrolliriippuvuuteen vähintään kaksi) ja kuvaa lyhyesti, miten ne toimivat. Ratkaisumallien tulee olla sellaisia, että ne eivät vaadi liukuhihnan pysäyttämistä ("kupla").
- [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 (waw) ja antiriippuvuus (war)) sekä selkeällä tavalla kyseisen ongelmatyypin yksi esiintymä em. käskysarjassa (jos niitä siellä on).
- [2 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.
Ratkaisumallien tulee olla sellaisia, että ne eivät vaadi liukuhihnan pysäyttämistä ("kupla").