Tietokoneen toiminta, kevät 2004
Harjoitus 4
Käsitellään harjoitusryhmissä tiistaina 1.6.2004.
Varaudu harjoituksiin etukäteen tutustumalla käsiteltävään asiaan ja yrittämällä itse tehdä tehtäviä niin
paljon kuin mahdollista.
Harjoitustilaisuudessa tehtävät sitten 'viimeistellään' ryhmissä.
- Ttk-91-koneen konekäskyn osoiteosa on vain 16-bittinen. Tämä asettaa
rajoituksia käskyssä olevien vakioiden koolle.
- Mikä on suurin positiivinen luku, joka voidaan esittää käskyssä
vakiona?
- Mikä on pienin negatiivinen luku, joka voidaan esittää käskyssä
vakiona?
- Miten tulee toimia, jos tarvitaankin suurempaa vakiota? Esimerkiksi
lukua 500000?
- Entä miten tulisi menetellä, jos tarvitaan suurta vakiota
indeksoidun osoitusmoodin kanssa? Esimerkiksi, jos halutaan lukea data
osoitteesta (R1)+666666?
- Tiedon esitys.
- Mikä on desimaalijärjestelmän luvun 43.234 binääriesitys?
- Mitä desimaalijärjestelmän lukua binääriluku 101010.1010 vastaa?
- Mikä on desimaalilukujen +23 ja -75 esitys seuraavissa 16 bitin
Big-Endian esitysmuodoissa:
- etumerkillinen (sign and magnitude)
- kahden komplementti (two's complement)
- yhden komplementti (one's complement)
- 32767 vakiolisäys (biased by 32767)
- Mikä on desimaaliluvun 33.125 IEEE-liukulukustandardin mukainen esitys?
- Hamming-koodi.
- Onko Hamming-koodatussa bittijonossa 100 1101 (4 databittiä ja 3 tarkistusbittiä) virheitä, jos niin millaisia ja miten ne korjataan? Entä bittijonossa 100 1100?
- Montako piuhaa (johdinta, bittiä) tarvitaan 32-bittisen dataväylän
turvaamiseksi virheenkorjaavaa Hamming-koodia käyttäen?
(Haluamme siis pystyä kerralla siirtämään 32 bittiä todellista
dataa tarkistusbittien lisäksi)
- Miksi Hamming-koodin käyttö ei ole hyvä ratkaisu paikallisverkkojen
tiedonsiirron turvaamiseen?
- Välimuisti. Oletetaan, että tiedon saantiaika (1 sana) välimuistista on
2 ns ja tavallisesta muistista 10 ns. Välimuistin lohkon (rivin) koko on
neljä sanaa. Oletetaan, että välimuistia käytettäessä 97%
muistiviitteistä löytyy välimuistista. Voit (epärealistisesti) olettaa,
että välimuistista löytyy aina tilaa uudelle lohkolle ja että tiedon
siirtoaika MBR:stä rekisteriin on nolla.
- Jos välimuistia ei käytetä, niin kauanko keskimääräisesti
kestää datan (1 sana) lukeminen rekisteriin?
- Jos välimuistia käytetään, niin kauanko keskimääräisesti
kestää datan (1 sana) lukeminen rekisteriin?
- Voiko prosessi havaita, löytyikö tieto välimuistista vai ei?
- Tarvitseeko sovelluksen käyttäjän (ihminen) tietää, löytyikö tieto
välimuistista vai ei? Miksi?
- Tee aliohjelma Init(Arr, Dim, Val), joka alustaa annetun taulukon Arr siten, että kunkin alkion Arr[i] arvoksi tulee luku Val + i. Parametri Arr on alustettavan taulukon osoite, Dim on ko. taulukon alkioiden lukumäärä ja Val on kokonaisluku. Parametrit
annetaan pinossa, taulukon osoite viiteparametrina ja muut arvoparametreina.
- Prosessi.
- Mitä tapahtuu, jos Ready-to-Run jono on tyhjä?
- Voiko samasta ohjelmasta olla monta prosessia yhtä aikaa Ready-to-Run
jonossa? Miten tai miksi ei?
- Kumpi kestää kauemmin, aliohjelman kutsu vai prosessin vaihto?
Miksi?
- Kuuluuko välimuistin sisältö prosessin suoritinympäristöön vai
ei? Miksi?
- Kuuluvatko MAR ja MBR prosessin suoritinympäristöön vai ei? Miksi