581365-8 Tietokoneen rakenne, erilliskoe 5.4.2002

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

  1. [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)

     

  2. [15 p] Väylät
    1. [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.
    2. [9 p] Kuvassa 3.22 (koepaperin kääntöpuolella) on PCI-väylän lukuoperaatio. Oletetaan, että CPU lukee siinä kolme sanaa muistista.
      1. Mitkä johtimet ovat sellaisia, että niihin kirjoittaa sekä CPU että muistipiiri? Miksi tästä ei aiheudu ongelmia?
      2. Oletetaan, että muistipiiri voi löytää haetun datan joko yhden, kahden tai kolmen kellojakson aikana. Miten muistipiiri kertoo tästä CPU:lle?
      3. Miten tapahtuu tilanteessa, jossa CPU ei olekaan valmis ottamaan vastaan muistipiirin lähettämää sanaa?
      4. Mitä tapahtuu PCI väylää käytettäessä, jos 3 laitetta haluaa samanaikaisesti käyttää väylää?
      5. Miten muistipiiri tietää, että väylätapahtuma on päättynyt?

  3. [15 p] Langoitettu kontrolli (hardwired control)
    1. [2 p] Minkä ongelman (langoitettu) kontrolli ratkaisee?
    2. [5 p] Miten langoitettu kontrolli toimii? Anna (kuvallinen) esimerkki.
    3. [2 p] Mitä ongelmia langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun (microprogrammed) kontrolliin?
    4. [2 p] Mitä etuja langoitetussa kontrollissa on verrattuna mikro-ohjelmoituun (microprogrammed) kontrolliin?
    5. [2 p] Kannattaisiko RISC suoritin toteuttaa langoitetulla vai mikro-ohjelmoidulla kontrollilla? Miksi?
    6. [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?

  4. [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.
    1. Viivästetty haarautuminen (delayed branch)
    2. Monta käskyvirtaa (multiple streams)
    3. Silmukkapuskuri (loop buffer)
    4. Ennakoiva käskyn nouto (prefetch branch target)
    5. Haarautumisen ennustaminen (branch prediction)
    6. Haarautumisen historiataulu (branch history table)
    7. Nollan syklin haarautumiset (zero cycle branches)
    8. Predikoitu suoritus (predicated execution)
    9. Haarautumisen kohdepuskuri (branch target buffer)
    10. Paluupinopuskuri (return stack buffer)