Architektúrák gyakorlat 2006

1. Gyakorlat - Követelmények

ZH
A gyakorlaton 1 db ZH dolgozatot kell teljesíteni az utolsó előtti héten. A ZH-n maximum 50 pont szerezhető amelyből legalább 20 pontot el kell érni a gyakorlat teljesítéséhez. Ha valaki tehát 20, vagy annál több pontot szerez, akkor mehet vizsgázni.
Ha nem sikerül valakinek elérni a 20 pontot, lehetősége van javításra az utolsó héten, és a ZH-val megegyező feltételekkel írhat egy javítót. Ha a javítón sikerül elérni a 20 pontot, akkor mehet ugyan vizsgázni, de az eredeti ZH pontszámát viszi tovább, és nem a javítón elért pontszámot. Ha itt sem éri el valaki a 20 pontot, akkor nem írom alá a félévét.
Tesztek
4 v. 5 teszt várható a félév során, kb. minden második héten, a gyakorlatok első 10 percében. A teszteken összesen 50 pontot lehet elérni. Ebből aki nem teljesíti legalább a felét (25-nél kevesebb pontot szerez), az nem írhat ZH-t. Aki viszont 46, vagy annál több pontot szerez, annak nem kell ZH-t írni, hanem viheti tovább a pontszámát. A többieknek ZH-t kell írni.
A teszteken elért pontszám nem számít bele a ZH pontszámába.
Tesztelő környezet
Mindenki regisztrálja magát a moodle rendszerben: azonosítonak, a saját kabinetes h-s azonosítodat (pl: h123456), email cimnek pedig a studos levelezesi cimedet add meg. Vezeték és utónévként a sajat vezeték és utónevedet kell használnod!
Regisztráció után vedd fel a "Számítógép architektúra - Erdőhelyi B." című kurzust. A kurzus belépési kódja: sza. A beugró nevű tesztet ki lehet próbálni mindennemű következmény nélkül. Az ehhez szükséges jelszó: beugro.

2. Gyakorlat

Architektúrák
Mi a különbség az értelmezés és a fordítás között?
Mi a Neumann elv?
Valamikor 1 mikron átmérőjű volt a mikroprocesszor egy tranzisztora. Moore szabálya szerint mekkora volt az átmérője három évvel később?
Számrendszerek
Tanenbaum A Függelék. Számok konvertálása 2-es, 10-es, 16-os számrendszerek között. Pl:
77d = 100 1101b = 4dh
185d = 1011 1001b = 0b9h
bedh = 1011 1110 1101b = 3053d

19,625d = 1 0011,101b
114,25d = 111 0010,01b
Hány különböző szám fejezhető ki 1 bájton?
Hány különböző szám fejezhető ki n darab bináris számjegyen?
Helyik a legnagyobb?
Ha r az alap?
Műveletek
Összeadás, kivonás 2-es, 16-os számrendszerben.
Negatív számok: 1-es, 2-es komplemens.
Hajtsuk végre a következő számításokat 8 bites kettes komplemensű számokon:
00101101 + 01101111
11111111 + 11111111
Lebegőpontos számábrázolás
Tanenbaum B függelék. IEEE szabvány egyszeres pontosságú, normalizált.
114.25     ==> 0100 0010 1110 0100 1000 0000 0000 0000b
             = 42e4 8000h
39.25      ==> 421d 0000h
1.0625     ==> 3f88 0000h
3fc0 0000h ==> 1,5
Nem kötelező feladat: C program a konvertálásra?

3. Gyakorlat

Feladatok
Mekkora a hexadecimális E6 és C7 Hamming távolsága?
Az alábbi memóriák közül melyik lehetséges, melyik ésszerű? Indokolja meg!
10 bites címek    1024 db    8 bites rekesz
10                1024      12
 9                1024      10
11                1024      10
10                  10    1024
1024                10      10
Címzések
Szegmens:offszet címzés: Lineáris cím = segm * 16 + offs.
  segm:1272h  ===> *16  ===>    12720h
  offs:1a3bh                   + 1a3bh
                               -------
                                1415bh    lineáris cím
Egy lineáris címnek hány logikai (szegmens:offszet) címe van? Mondjunk olyan logikai címeket, melyek az 12345h lineáris címre mutatnak. Mi a helyzet a 0ffffh:0010h címmel?

Helyesek e az alábbi címzések? Ha igen, mely lineáris címre hivatkoznak? Tegyük fel, hogy a regiszterek tartalma: AX=0021h, BX= 0031h, CX=0001h, DX=0341h, SI=1223h, DI=0402h, DS=1234h SS=0405h, ES=2365h, BP=1200h;
[BX + 0121h]
[CX + 4]
IP:[BX + SI + 0123h]
ES:[SI + 0001]
[123456789ABCh]
ES:[09D3h]
[SI-500d]
SS:[BX+DI+1999d]
[SI+DI]
[IP]
[BP+SI]
DS:[BP+SI]
Összeadas
Tegyük fel hogy a következő példákban az adatszegmensünk így néz ki:
ds:0000 CD 20 FF 9F 00 9A F0 FE

Bájtsorrend!
mov       al, [0]         ;al=CD
mov       ax, [0]         ;ax=20CD
mov       ax, 5h         ;ax=0005h
add       al, 0001h      ;ax=0006h
mov       ax, 5h
add       al, [0001h]    ;ax=0025h
mov       ax, 5h
mov       bx, 6h
add       ax, bx         ;ax=000Bh
mov       ax, 5h
mov       bx, 6h
add       ax, [bx]       ;ax=FEF5h

4. Gyakorlat

Boole-algebra
Hány n változós Boole függvény létezik?

Egyszerűsítsük az alábbi kifejezéseket!
A('A + B) + B                = B

(A'C) + (ABC) + AC           = A

AB + A'B + 'AB + 'A'B        = 1

ABC + 'A + 'B + 'C           = 1
Mennyi lesz a kifejezések értéke, A=1, B=0, C=1 esetén?
Szorzás
mov       ax, 0102h
mov       cx, 0003h
mul       cl             ;ax=0006h
mov       ax, 0102h
mov       cx, 0003h
mul       cx             ;dxax=0000 0306h
mov       ax, 0202h
mov       si, 0003h      ;ds:0003= 9fh
mul       byte ptr [si]  ;ax=013eh
mov       ax, 0602h
mov       si, 0003h      ;ds:0003= 9f 00h
mul       word ptr [si]  ;0602h*009fh = 0003 bb3eh
Feladat
Írjunk egy programrészletet, amely kiszámolja az alábbi kifejezés értékét! Feltesszük, hogy minden regiszter előjeltelen számot tartalmaz és minden művelet eredménye elfér 16 biten. Az eredményt tároljuk ax-ben.

(cx + ax ) * bx
add       ax, cx
mul       bx
bx * dx + ax
mov       cx, ax         ;ax mentése
mov       ax, dx         ;csak ax-ben tudunk szorozni
mul       bx             ;szorzás bx-el
add       ax, cx         eredmény ax-ben
ax * ax + bx * bx
mul       ax             ;ax*ax
mov       cx, ax         ;ax mentése
mov       ax, bx         ;bx-et attesszük ax-be
mul       ax             ;
add       ax, cx         ;eredmény ax-ben
Architektúrák
Mit nevezünk kombinációs áramkörnek?

Milyen kombinációs áramköröket ismer?

Hogy működik a „fél összeadó”?

Mi indokolja a „fél összeadó” elnevezést?

Hogy épül fel a teljes összeadó?

Milyen részei vannak az ALU-nak?

Milyen be- és kimenetei vannak az 1 bites ALU-nak?

Milyen műveletek végezhetők el az ALU-val?

Milyen nem kombinációs áramköröket ismer?

Kombinációs áramkör-e az ALU?

5. Gyakorlat

Előjeles műveletek
Adjunk össze egy 8 bites előjeles számot és egy 16 bites előjeltelen számot! Például a -10d-t és a 2525d-t.
mov al, -10d             ;al=0f6h
cbw                      ;ax=0fff6h
mov bx, 2525d            ;bx=09ddh
add ax, bx               ;ax=09d3h
Szorozzuk össze a 8 bites -2d-t a szintén 8 bites 3d-vel!
mov       al, -2d        ;al=0feh
mov       cl, 3d         ;cl=03h
imul      cl             ;ax=fffah
Szorozzunk össze egy 8 bites előjeles, ill. egy 16 bites előjeles számot! Például a -2d-t és a -520d-t.
mov       al, -2d        ;al=0feh
cbw                      ;ax=0fffeh
mov       cx, -520d      ;cx=0fdf8h
imul      cl             ;dxax=0000 0410h azaz 1040d
Feladat
Számoljuk ki a következő kifejezés értékét! Az eredményt helyezzük AX-be!
min( a*c , a+b ) ahol, a és c 8, b 16 bites előjeltelen számok.
  mov ax,adat   ;ds betoltese
  mov ds,ax     ;ds beallitasa
                ;ide jon maga a program
  mov al, a
  mul c         ;ax=a*c

  mov bx, b     ;bx=b
  mov cl, a     ;cl=a
  xor ch, ch    ;cx=a tizenhat biten
  add bx, cx    ;bx=a+b

  cmp ax, bx    ;flagek bx-ax szerint
  jb  vege      ;ha ax kisebb, ugrik
  mov ax, bx
vege:
Az adatszegmens
  a     db 4
  c     db 3
  b     dw 9
A teljes forráskód letölthető innen.
Gyorsítótárak
Hol helyezkedhet el a gyorsítótár?
Mi a lokalitási elv?
Mit nevezünk találati aránynak?
Mi a hiba arány?
Hogy határozható meg az átlagos keresési idő?
Mi a gyorsító sor?
Direkt leképezésű gyorsítótár működése. Mikor hatékony, és mikor nem hatékony?
Egy memória cella hány helyen lehet egy direkt leképezésű gyorsító tárban?
Halmaz kezelésű gyorsítótár működése.
Milyen a halmazkezelésű gyorsító tár felépítése?
Hogy működik a halmazkezelésű gyorsító tár?
Mi a halmazkezelésű gyorsító tár előnye a direkt leképezésűvel szemben?
Mi az LRU algoritmus?
Milyen memóriába írási stratégiákat ismer gyorsító tár esetén?

6. Gyakorlat

Sztring hossza
Számoljuk meg, hogy milyen hosszú egy sztring! Tegyük fel, hogy a sztringet a 0 karakter zárja.
  mov cx, 0     ;szamlalo
  mov bx, offset hahostr
 betolt:
  mov al, [bx]
  cmp al, 0
  je  vege
  inc bx
  inc cx
  jmp betolt
vege:
Az adatszegmens
  hahostr   db "Haho !", 0
A teljes forráskód letölthető innen.
100-nál nagyobb
Írjon programrészletet amely megszámolja az 50 elemű, szavakból álló A tömb 100-nál nagyobb elemeit!
Sínek
Mit nevezünk sínnek?
Mi a sínprotokoll?
Mi a mester, és mi a szolga?
Mit nevezünk sín vezérlőnek/vevőnek/adó-vevőnek?
Mi a sávszélesség?
Mi a sín aszimmetria?
Hogy működik a szinkron/aszinkron sín?
Mire szolgál a mester/szolga szinkronizáció?
Mi a teljes kézfogás?
Milyen sín ütemezőket ismer?
Hogy működik a centralizált sín ütemező?
Hogy működik a decentralizált sín ütemező?
Milyen sín műveleteket ismer?
Miért előnyös a blokkos átvitel?
Milyen sínt ismer?
Ismertesse az ISA sínt!
Ismertesse az EISA sínt!
Ismertesse az PCI sínt!
Hogy használható több sín egy gépen belül?

Milyen vezetékeket tartalmaz az USB sín, és miért?
Miért kényelmes az USB sín használata?
Mi a központi elosztó (root hub), és hogy működik?
Mi történik eszköz USB porthoz csatlakoztatásakor?

Mire szolgál a PCI Express?
Hogy kapcsolódik a PCI Express a CPU-hoz?
Hogy kapcsolódik a PCI Express az eszközökhöz?
Milyen előnyei vannak a PCI Express-nek a sínnel szemben?
Milyen rétegei vannak a PCI Express protokollnak?
Mi a CRC?

7. Gyakorlat

Maximum
Keressük meg egy bájtokból álló számsorozat legnagyobb elemét! A számsorozat hosszát a len változó tartalmazza. Az eredményt taroljuk a max változóban.
    mov   cx, len   ;cx= hossz
    mov   bx, offset sor ;bx-be kerul sor offsetje
    xor   dx, dx    ;dx=0
betolt:
    mov   al, [bx]  ;szam betöltése al-be
    cmp   al, dl    ;ha kisebb= mint az eddigi legnagyobb
    jbe   kov       ;ugorja át a következő utasítást
    mov   dl, al    ;ez lesz az aktuális legnagyobb
kov:
    inc   bx        ;index növelése
    loop  betolt
    mov   max, dl   ;max valtozóba tároljuk el dl-t

Az adatszegmens pl a következő is lehet:
    len   dw 5
    max   db 0
    sor   db 4,5,2,7,3
A teljes forráskód letölthető innen.
Mikroarchitektúra szint
Mi a mikroarchitektúra szint feladata?
Mi az adatút?
Milyen sínjei vannak a Mic-1 -nek?
Mely regiszterek csatlakoznak az A sínhez?
Mely regiszterek csatlakoznak a B sínhez?
Mely regiszterek csatlakoznak a C sínhez?
Milyen jelek szükségesek az adatút vezérléséhez?
Mire szolgál az SP regiszter két vezérlő bemenete?
Mire szolgál az MBR regiszter két vezérlő bemenete?
Hány jel szolgál az A sín vezérlésére?
Hány jel szolgál a B sín vezérlésére?
Hány jel szolgál az ALU és a léptető vezérlésére?
Hány jel szolgál a C sín vezérlésére?
Hogy történik a memóriából olvasás?
Hogy történik a memóriába írás?
Mire szolgál a MAR/MDR regiszter?
Ha egy mikroutasítás módosítja MAR tartalmát, és olvas a memóriából, akkor mely címről fog olvasni?
Memóriából olvasás után mikor használható MDR új értéke az adatúton illetve MPC meghatározásához?
Mire szolgál a PC és az MBR regiszter?
Hogy valósítható meg Mic-1-en az IADD utasítás?

8. Gyakorlat

Számoljunk betűket
Számoljuk meg, hogy hány kisbetű van egy karakterláncban!
    mov   cl, 0     ;számláló
    mov   bx, offset text
    mov   si, 0
kov:
    mov   al, [bx+si] ;betöltjük a köv. betűt
    cmp   al, 0     ;elérkeztünk a végére?
    je    vege      ;ha igen, ugrik a végére
    cmp   al, 'a'   ;kell-e számolni
    jb    nemszamol ;ugrik, ha nem kell számolni
    cmp   al, 'z'   ;
    ja    nemszamol ;ugrik, ha nem kell számolni
    inc   cl        ;noveli a számlálót
nemszamol:
    inc   si
    jmp   kov
vege:
    mov   n, cl     ;n-be rakjuk a végeredményt
Architektúrák
Mit nevezünk pollozásos technikának?
Mire használható a DMA?
Hogy működik a DMA?
Milyen regiszterei vannak a DMA-nak?
Mire szolgál a NOP utasítás?
Mire szolgál a WAIT utasítás?
Mire szolgál a HLT utasítás?
Mit nevezünk program megszakításnak?
Mi a megszakítás kezelő?
Hogyan történhet a nyomtatás szervezése megszakítás segítségével?
Megszakítható-e a megszakítás kezelő?
Mi a csapda?
Mi a különbség a csapda és a megszakítás között?
Mit jelent az átlátszóság megszakítás esetén?

9. Gyakorlat

Architektúrák
Mit jelent a RISC rövidítés?
Mit jelent a CISC rövidítés?
Mi segítette elő a CISC gépek kialakulását?
Miért előnyös a RISC architektúra?
Miért nem tért át az Intel RISC processzorok gyártására?
Hogyan alkalmazza az Intel a RISC elveket?
Melyek a modern számítógép tervezés legfontosabb elvei?
Miért van szükség sok regiszterre a RISC gépeken?

Milyen párhuzamosítási lehetőségeket ismer?
Mi az utasítás szintű párhuzamosítás?
Szemléltesse az utasítás szintű párhuzamosságot!
Mit jelent a csővezeték (pipelining)?
Mi a késleltetés (latency)?
Mi az áteresztő képesség?
A késleltetés vagy az áteresztő képesség a fontosabb a gép teljesítménye szempontjából?
Mi az előnye/ hátránya a több szállítószalagos CPU-nak?
Mi a szuperskaláris architektúra lényege?

Hogy működik a tömb (array) processzor?
Mi a tömb (array) processzor előnye/hátránya?
Hogy működik a vektor processzor?
Mi a vektor processzor előnye/hátránya?
Mi a multiprocesszorok lényege?
Mi a szerepe a közös/helyi memóriák szerepe a multiprocesszoros rendszerekben?
Miért nehéz sok processzoros rendszert építeni?
Mi a lényege multiszámítógépeknek?
Hogy tartják a kapcsolatot egymással a multiszámítógépek CPU-i?

Mi az úthossz?
Milyen lehetőségek vannak a Mic-1 gyorsítására?
Mi az előnye a három sínes architektúrának a Mic-1-gyel szemben?
Sorolja fel a Mic-1 és Mic-2 közötti különbségeket! Miért eredményeznek ezek gyorsítást?
Mi az utasítás betöltő egység (IFU) feladata?
Milyen részei vannak az IFU-nak?
Mi az IMAR szerepe az IFU-ban?
Írja le az IMAR és a PC regiszter kapcsolatát?
Hogy működik az IFU?
Hogy ábrázolható véges állapotú géppel (FSM) az IFU működése?
Mi a különbség Mic-2 és Mic-3 között? Miért eredményez ez gyorsítást?

Milyen szakaszai vannak a Mic-4 csővezetékének?
Mi a feladata a dekódolónak?
Mi a feladata a sorba állító egységnek?
Mire szolgál a Final bit?
Mire szolgál a Goto bit?
Hogy történik az Mic-4-en adatút vezérlése?
Miért gyorsabb a Mic-4, mint a Mic-3?
Milyen speciális feladatokat kell megoldani Mic-4 esetén a feltételes elágazásnál?

10. Gyakorlat

Architektúrák
Mi az eltolási rés (delay slot)?
Mit nevezünk elágazás jövendölésnek?
Milyen dinamikus elágazás jövendöléseket ismer?
Milyen statikus elágazás jövendöléseket ismer?
Mit nevezünk függőségnek?
Milyen függőségeket ismer?
Mely függőségek oldhatók fel, és hogyan?

Mi az előnye a sorrendtől eltérő végrehajtásnak?
Mire szolgál a regiszter átnevezés?
Mi a feltételezett végrehajtás?
Mit nevezünk emelésnek?
Mikor előnyös az emelés?
Milyen mellékhatásai lehetnek a feltételezett végrehajtásnak?

11. Gyakorlat

Pentium 4
Milyen gyorsítótárakat használ a Pentium 4?
Jellemezze a Pentium 4 L2 gyorsítótárát!
Mire szolgál az előre betöltő?
Mit jelent a szimatolás?
Hogy működik a Pentium 4 memória sín csővezetéke?
Milyen sorrendben dekódolja a Pentium 4 az utasításokat?
Mire szolgál a mikroROM?

Mire szolgál a nyomkövető gyorsítótár?
Milyen elágazás jövendölést használ a Pentium 4?
Mire szolgál az L1 BTB?
Mire szolgál a nyomkövető BTB?
Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium 4-en?
Mire szolgál a lefoglaló/átnevező egység?
Mire szolgálnak a regiszter gyűjtők?
Milyen sorrendben fejeződik be az utasítások végrehajtása a Pentium 4-en?
Mi a különbség a Pentium 4 két egész aritmetikájú ALU-ja között?
Miért nem tárolható azonnal az eredmény L2-be?
UltraSPARC III
Hogy működik az UltraSPARC III másodlagos gyorsítótára?
Mire szolgál az UPA (Ultra Port Architecture)?
Mire szolgál az UDB II (UltraSPARC Data Buffer II)?
Milyen szervezésű az UltraSPARC III L1 I gyorsítótára?
Mire szolgál a munka regisztergyűjtő?
Mire szolgál az architektúrális regisztergyűjtő?
Mire szolgál az előre betöltő gyorsítótár?
Mire szolgál a tárolási sor?
Mire szolgál a tárolási gyorsítótár?

Mire szolgál az UltraSPARC III ugrótáblája?
Milyen elágazás jövendölést használ az UltraSPARC III?
Mit nevezünk eltolás résnek?
Hogy kezeli az UltraSPARC III az eltolás rést?
Mire szolgál az utasítás csoportosító egység?
Mire szolgál a munka regisztergyűjtő?
Mire szolgál az architektúrális regisztergyűjtő?
Hány ALU van az UltraSPARC III-ban?
Mire szolgál az előre betöltő gyorsítótár?
Mire szolgál a tárolási sor?
Mire szolgál a tárolási gyorsítótár?
Hogy kezeli az UltraSPARC III a függőségeket?
Intel 8051
Mi az I-8051 fő alkalmazási területe?
Nagyságrendileg milyen árú egy I-8051?
Jellemezze az I-8051-et!
Mi a RAM?
Mi a ROM?
Hány bites a RAM ADDR regiszter?
Hány bites a ROM ADDR regiszter?
Mekkora az I-8051 RAM-ja?
Mekkora az I-8051 ROM-ja?
Hol helyezkednek el az I-8051 regiszterei?
Mire szolgál az IR, SP, B, ACC, TMP1-2 regiszter?
Mi a PSW?
Hogy történik PC növelése?

Milyen és hány be/kimenete van az I-8051-nak?
Mire használhatók az I-8051 be/kimenetei?
Hány időzítője van az I-8051-nak?
Mire használhatók az I-8051 időzítői?
Mik az I-8051 ALU-jának bemenetei?
Milyen állapotai vannak az óraciklusának?
Jellemezze a CISC gépeket!
Jellemezze a RISC gépeket!
CISC vagy RISC gép a Pentium 4?
CISC vagy RISC gép az UltraSPARC III?
CISC vagy RISC gép az I-8051?
Hasonlítsa össze a Pentium 4-et, az UltraSPARC III-at és az I-8051-ez!