581365-8 Tietokoneen rakenne, erilliskoe 5.4.2002
Kirjoita jokaiseen vastauspaperiin: oma nimi, henkilötunnus,
kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [10 p] S-R kiikku (latch, flip-flop). Mitä S-R kiikku tekee? Minkä
ongelman se ratkaisee? Mikä on sen rakenne? Anna sille NOR-portteihin (NOR
gate) perustuva toteutus. Miten se toimii eri tilanteissa? Anna kuvaava
esimerkki.
Jos et muista, mikä oli S-R kiikku, niin anna vastauksesi jollekin toiselle
(nimeämällesi) kiikulle.
(Vastauksesi saa olla korkeintaan 2 sivua pitkä, kuvat mukaanluettuna)
- [15 p] Väylät
- [6 p] Kuvassa 3.19 (koepaperin kääntöpuolella) esitetään CPU:n
suorittama muistin READ-operaation ajoitus sekä synkroonista että
epäsynkroonista ajoitusta käyttäen. Anna vastaavat kaaviot CPU:n
WRITE-operaatiolle. Voit olettaa, että väylällä on myös
Write-signaali, jonka käyttö on analoginen Read-signaalin käytön
kanssa. Anna perustelut kullekin signaalitason muutokselle.
- [9 p] Kuvassa 3.22 (koepaperin kääntöpuolella) on PCI-väylän
lukuoperaatio. Oletetaan, että CPU lukee siinä kolme sanaa muistista.
- Mitkä johtimet ovat sellaisia, että niihin kirjoittaa sekä CPU
että muistipiiri? Miksi tästä ei aiheudu ongelmia?
- Oletetaan, että muistipiiri voi löytää haetun datan joko
yhden, kahden tai kolmen kellojakson aikana. Miten muistipiiri
kertoo tästä CPU:lle?
- Miten tapahtuu tilanteessa, jossa CPU ei olekaan valmis ottamaan
vastaan muistipiirin lähettämää sanaa?
- Mitä tapahtuu PCI väylää käytettäessä, jos 3 laitetta
haluaa samanaikaisesti käyttää väylää?
- Miten muistipiiri tietää, että väylätapahtuma on päättynyt?
- [15 p] Langoitettu kontrolli (hardwired control)
- [2 p] Minkä ongelman (langoitettu) kontrolli ratkaisee?
- [5 p] Miten langoitettu kontrolli toimii? Anna (kuvallinen) esimerkki.
- [2 p] Mitä ongelmia langoitetussa kontrollissa on verrattuna
mikro-ohjelmoituun (microprogrammed) kontrolliin?
- [2 p] Mitä etuja langoitetussa kontrollissa on verrattuna
mikro-ohjelmoituun (microprogrammed) kontrolliin?
- [2 p] Kannattaisiko RISC suoritin toteuttaa langoitetulla vai
mikro-ohjelmoidulla kontrollilla? Miksi?
- [2 p] Oletetaan, että suorittimen käskykanta on laaja ja että osa
konekäskyistä on toteutettu keskeytyskäsittelijän kautta tapahtuvien
aliohjelmien avulla. Oletetaan edelleen, että haluamme jatkossa
luultavasti päivittää suoraan toteutettujen konekäskyjen joukkoa sen
mukaan, mitkä konekäskyt osoittautuvat useimmiten käytetyiksi.
Kannattaako tässä tapauksessa suorittimen kontrolli toteuttaa
langoitettuna vai mikro-ohjelmoituna? Miksi?
- [20 p] Ehdottomat hypyt ja ehdolliset haarautumiset aiheuttavat ongelmia
liukuhihnoitetuissa suorittimissa. Näitä ongelmia on ratkottu usealla eri
tavalla. Kerro kustakin allamainitusta ratkaisumenetelmästä, (i) minkä
ongelman se ratkaisee ja minkä tyyppiseen arkkitehtuuriin ongelma liittyy,
(ii) miten ratkaisu on toteutettu sekä (iii) ratkaisun hyvät/huonot
puolet.
- Viivästetty haarautuminen (delayed branch)
- Monta käskyvirtaa (multiple streams)
- Silmukkapuskuri (loop buffer)
- Ennakoiva käskyn nouto (prefetch branch target)
- Haarautumisen ennustaminen (branch prediction)
- Haarautumisen historiataulu (branch history table)
- Nollan syklin haarautumiset (zero cycle branches)
- Predikoitu suoritus (predicated execution)
- Haarautumisen kohdepuskuri (branch target buffer)
- Paluupinopuskuri (return stack buffer)