Tietokoneen toiminta, Kevät 2011, Harjoitus 3
Nämä tehtävät tehdään etukäteen ja käsitellään harjoituksissa 3. kurssiviikolla 31.1. - 4.2.2011.
Harjoitukset pohjautuvat verkkoluentoihin 4 ja
5.
Jos haluatte mieluummin käyttää Authorware versioita, niin ne saa
verkkoluentojen koostesivulta.
Tehtävät:
- Muistiviitteet ja keskeytykset
- Montako muistiviitettä tarvitaan konekäskyn "STORE R1, @5(R2)" suorittamiseksi? Mitkä ne ovat?
- Montako muistiviitettä tarvitaan konekäskyn "ADD R4, R5" suorittamiseksi? Mitkä ne ovat?
- Miten keskeytykset on toteutettu suorittimessa? Mitä tapahtuu keskeytyksen käsittelyn jälkeen?
- Oletetaan, että tietyssä sovelluksessa tarvitaan sen omaa keskeytyskäsittelijää tietyn tyyppisten keskeytysten yhteydessä. Miten tämän voisi käytännössä toteuttaa konekäskytasolla eli miten valitaan annettu keskeytyskäsittelijä tietyn keskeytyksen yhteydessä tätä sovellusta ajettaessa ?
- Anna esimerkki tilanteesta, jossa olisi hyvä estää keskeytysten käsittely. Kuinka tämä käytännössä toteutetaan suorittimen tasolla? Mitä tapahtuu, jos keskeytykset ovat estettynä kauan aikaa?
- Käskyjen suorittaminen
- Miksi jokaisen käskyn suorituksen alussa kasvatetaan käskyosoittimen (program counter, PC) arvoa? Mitä tapahtuisi, jos tätä ei tehtäisi?
- Kuvaa seuraavien käskyjen nouto ja suoritus prosessorin rekisteritasolla (PC, MAR, Rx, ...):
- STORE R1, A
- JUMP R5
- CALL SP, KESKIARVO
- SVC SP, =HALT
- Aliohjelman parametrina on taulukko. Miten tämän parametrin välitys toteutetaan konekielellä, jos parametri on
- arvoparametri
- viiteparametri
(Periaatteen yksityiskohtainen selittäminen riittää, koodia ei ole pakko kirjoittaa)
- Tee tason B TitoTrainer tehtävät b-120, b-150, b-350 ja b-370.
(Voit samantien toki tehdä kaikki muutkin b-tason tehtävät.)
(Aliohjelmatehtävät taso C vasta seuraavalla viikolla)
Tiina.Niklander@cs.helsinki.fi