Stırikerfi I
09.12.41


Lokapróf 20. desember 1991


Leyfileg hjálpargögn: Kennslubækur og fyrirlestranótur


1. [15%] Tölva nokkur notar 16 bita fleytitölur meğ einn bita undir formerki, 6 bita fyrir veldi og 9 bita undir brothluta. Kódun fleytitalnanna er hin sama og notuğ er fyrir IEEE fleytitölur. Hér ağ neğan eru tvær slíkar tölur sem einnig hafa veriğ villukódağar meğ Hamming kóda sem getur leiğrétt eina villu. Til şess hefur veriğ bætt viğ 5 varbitum í sætum 1, 2, 4, 8, 16. Afkódiğ tölurnar, leggiğ şær saman og setjiğ niğurstöğuna á Hamming kóda.

1100 1001 0111 0111 0100 0
1100 1000 0000 1000 0000 0



2. [10%] Skrifiğ 8086 undirforrit sem snır viğ streng ('ABC' verğur ağ 'CBA'). Şegar kallağ er á undirforritiğ inniheldur BX upphafsvistfang strengsins og AX hefur lengd hans. Forritiğ má ekki nota neitt aukaminni, nema á staflanum til ağ forğa şeim gistum sem şağ notar. Reyniğ ağ skrifa forritiğ şannig ağ şağ verği sem hrağvirkast.



3. [30%] Skrifiğ 8086 undirforrit sem notar síu Eratosşenesar til ağ búa til töflu A, sem segir til um hvort tala sé frumtala (prímtala). Töfluna á ağ vera hægt ağ nota şannig ağ x er frumtala ef A[x] = 1, annars er A[x] = 0 og x er ekki frumtala.
Sían byrjar í 2, segir ağ hún sé frumtala og síar síğan út ağra hverja tölu í töflunni. Næsta frumtala er 3 og şá er síuğ út şriğja hver tala í afgangnum af töflunni. Tala 5 er næst, og svo koll af kolli. Hér ağ neğan er nánari lısing á ağferğinni:
            A[0]=0                 ; 0 og 1 ekki frumtölur
            A[1]=0
            fyrir i=2 til MAX
                A[i]=1             ; Upphaflega allar tölur frumtölur
            endir
            fyrir i=2 til MAX/2    ; Sía út samsettar tölur
                ef A[i]=1 şá
                    fyrir k=i+i til MAX skref i
                        A[k]=0
                    endir
                endir
            endir
Í ykkar 8086 undirforriti kemur vistfang töflunnar í ES:DI og stærğin (MAX) í AX.



4. [10%] Hvers vegna eru TSR (Terminate and Stay Resident) forrit ekki notuğ í fjölverka stırikerfum eins og t.d. UNIX? Er eitthvağ şar sem kemur í stağinn?



5. [10%] Eftirfarandi forrit keyrir á RISC gjörva sem hefur 5 şrepa pípun (şrepin eru Ná í Skipun, Greina, Ná í Gögn, Framkvæma, Skrifa Niğurstöğu), 2 biğhólf og gjörvinn gerir ekkert til ağ stjórna gagnaárekstrum.
             100    nop
             101    jmp 100
             102    jmp 100
             103    jmp 104
             104    move R1, 0
Şiğ megiğ gera ráğ fyrir şví ağ skipanabendi (instruction pointer) sé breytt í Framkvæmdaşrepi pípunnar. Hvağ gerir forritiğ? Útskıriğ hvers vegna.



6. [10%] Ein ağferğ sem notuğ er af şığendum til ağ láta forrit keyrast hrağar er kölluğ "loop unrolling". Hún felst í şví ağ breyta lykkjum meğ fastan ítrunarfjölda, t.d. 10, şannig ağ í stağ lykkjunnar eru skipanirnar inní lykkjunni endurteknar 10 sinnum í forritinu. Şetta stækkar forritiğ, en eykur oftast hrağann. a) Hvers vegna? b) Hvers vegna hefur şessi ağferğ lítil áhrif í HP PA tölvunum og getur jafnvel minnkağ hrağann í Cray tölvum?



7. [15%] Tölva hefur 16 MB minni, 1 KB skyndiminni (cache), sem er mengistengiğ (set associative) şar sem hvert mengi hefur 2 línur og hver lína er 8 bæti.
a) Lısiğ şessu skyndiminni nánar (fjölda lína, fjölda mengja, hvağa bitar í vistfangi gegna hvağa hlutverki, hvağa línur í minni fara í hvağa mengi í skyndiminni, ...)
b) Gjörvinn vill fá ağgang ağ eftirfarandi eins bætis minnishólfum í şessari röğ:
56C2A0, 8BE829, 78AEA4, 56C2A7, 00C8A1
Í hvağa línusæti og mengi fara línurnar sem náğ er í og hvağa línum er hent út ef şess şarf? Gefiğ ykkur şær forsendur sem şarf, í viğbót viğ şağ sem kemur fram í dæminu og segiğ frá şeim.