56
Máté: Architektú rák 2. előadás 1 CPU (Central Processing Unit) feladatai • a végrehajtandó utasítás betöltése, • a betöltött utasítás típusának megállapítása, • az ezt követő utasítás címének megállapítása, • ha kell, az operandus(ok) helyének megállapítása, • ha kell, az operandus(ok) betöltése, • az utasítás végrehajtása, • ha kell, az eredmény helyének megállapítása, • ha kell, az eredmény tárolása, • az egész ciklus újra kezdése.

CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

  • Upload
    jayden

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése, a betöltött utasítás típusának megállapítása, az ezt követő utasítás címének megállapítása, ha kell, az operandus(ok) helyének megállapítása, ha kell, az operandus(ok) betöltése, az utasítás végrehajtása, - PowerPoint PPT Presentation

Citation preview

Page 1: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 1

CPU (Central Processing Unit) feladatai

• a végrehajtandó utasítás betöltése,

• a betöltött utasítás típusának megállapítása,

• az ezt követő utasítás címének megállapítása,

• ha kell, az operandus(ok) helyének megállapítása,

• ha kell, az operandus(ok) betöltése,

• az utasítás végrehajtása,

• ha kell, az eredmény helyének megállapítása,

• ha kell, az eredmény tárolása,

• az egész ciklus újra kezdése.

Page 2: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 2

Központi memória (2.9. ábra)

A programok és adatok tárolására szolgál.

Bit: a memória alapegysége, egy 0-t vagy 1-et tartalmazhat.

Memória rekesz (cella): több bit együttese. Minden rekesz ugyanannyi bitből áll. Minden rekeszhez hozzá van rendelve egy szám, a rekesz címe. Egy rekeszre a címével hivatkozhatunk. A rekesz a legkisebb címezhető egység.

Page 3: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 3

Központi memória (2.9. ábra)

0 . . .

1 . . .

. . .

n-1 . . .

Cím Rekesz/cella

Rekesz hossza

A rekesz hossza manapság legtöbbször 8 bit (byte ~ bájt).

n a memória cellák száma

Page 4: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 4

A bitek számarekeszenként

néhány számítógép-történetileg

érdekes, kereskedelmi

forgalomba került gépen (2.10. ábra)

Számítógép Bit

Burroughs B1700 1

IBM PC 8

DEC PDP-8 12

IBM 1130 16

DEC PDP-15 18

XDS 940 24

Electrologica X8 27

XDS Sigma 9 32

Honeywell 6180 36

CDC 3600 48

CDC Cyber 60

Page 5: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 5

Bájtsorrend

A legtöbb processzor több egymás utáni bájttal is tud dolgozni (szó – word, …).

A legmagasabb helyértékű bájt a szóban a legalacsonyabb címen: legmagasabb címen: nagy (big) endian kis (little) endian

MSBfirst LSBfirstMost/Least Significant Byte first

Ha egy 32 bites szó bájtjainak értéke rendre: a, b, c, d, akkor a szó értéke:

a*2563+b*2562+c*256+d a+b*256+c*2562+d*2563

Page 6: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 6

Bájtsorrend (2.11. ábra)

A memória címek úgy vannak fölírva, hogy a legmagasabb helyértékű bájt van bal oldalon.

Cim Nagy endian

0 0 1 2 3

4 4 5 6 7

8 8 9 10 11

12 12 13 14 15

Kis endian Cím

3 2 1 0 0

7 6 5 4 4

11 10 9 8 8

15 14 13 12 12

32 bites szó 32 bites szó

Page 7: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 7

Bájtsorrend (12. ábra)A szövegek karaktereit mindkét esetben növekvő bájt

sorrendben helyezik el

Cím nagy endian

0 0T

1E

2X

3T

4 412

534

656

7 78

kis endian Cím

3T

2X

1E

0T

0

712

634

556

478

4

A TEXT szöveg és az 12345678 hexadecimális szám elhelyezése a két géptípuson

Cím

0 0T

1E

2X

3T

4 478

556

634

7 12

Problémák a gépek közötti kommunikációban!

Page 8: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 8

Kódolás: adat + ellenőrző bitek = kódszó.Két kódszó Hamming távolsága: az eltérő bitek

száma. Pl.: 11001 és 11011 (Hamming) távolsága = 1.

Hibaérzékelő kód: bármely két kódszó távolsága > 1: paritás bit.

d hibás bit javítása: a kódszavak távolsága > 2d.Egy hibát javító kód (2.13. ábra):

m adat, r ellenőrző bit, összesen n = m + r. 2m „jó” szó, + minden „jó” szónak n db „egyhibás” szomszédja van, ezért (1+ n)2m2n = 2m+ r , 2m -mel egyszerűsítve: m + r +12r, vagy másképp: m + r 2r szükséges.

Page 9: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 9

Minden utasítás tartalmaz műveleti kódot. Ezen kívül tartalmazhat az operandusokra, eredményre vonatkozó információt.

Utasítás típusok:• regiszter-memória utasítások: a regiszterek és a

memória közötti adatforgalom (betöltés, tárolás). Ilyenkor egy regiszter és egy memória cím megadása szükséges a címrészen.

• regiszter-regiszter utasítások: összeadás, kivonás, …Az eredmény is regiszterben keletkezik.Ilyenkor három regiszter megadása szükséges a címrészen.

• …

Page 10: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 10

Címzési módszerek

Három cím: cél = forrás1 + forrás2.

A memória sok rekeszt tartalmaz, de csak kevés regiszter van. Egy regiszter néhány bittel címezhető.

Regiszterek használata rövidíti a címeket, de nyújtja a programot, ha az operandus csak egyszer kell.

A legtöbb operandust többször használjuk.

Implicit operandusok:

• Két cím: regiszter2 = regiszter2 + forrás1.

• Egy cím: akkumulátor = akkumulátor + forrás1.

• Nulla cím: verem, pl. az IJVM IADD utasítása.

Page 11: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 11

Operandus megadás

• Közvetlen operandus (immediate operand): Az operandus megadása az utasításban (5.17. ábra)

• Direkt címzés (direct addressing): A memóriacím megadása a címrészen. Az utasítás mindig ugyanazt a címet használja. Az operandus értéke változhat, de a címe nem (fordításkor ismert kell legyen!).

• Regiszter címzés (register addressing): Mint a direkt címzés, csak nem memóriát, hanem regisztert címez.

MOV R1 #4

Page 12: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 12

• Regiszter-indirekt címzés (register indirect addresing): A címrészen valamelyik regisztert adjuk meg, de a megadott regiszter nem az operandust tartalmazza, hanem azt a memóriacímet, amely az operandust tartalmazza (mutató - pointer).

Rövidebb és a cím változtatható.

Önmódosító program (Neumann): Ma már kerülendő (cache problémák!), pl. regiszter-indirekt címzéssel kikerülhetjük.

Page 13: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 13

Pl.:, a 100 szóból álló A tömb elemeinek összeadása (egy elem 4 bájt), ~ 5.18. ábra.

MOV R1, #0 ; gyűjtsük az eredményt R1-ben,; kezdetben ez legyen 0.

MOV R2, #A ; az A tömb címeMOV R3, #A + 400 ; a tömb utáni első cím

C: ADD R1, (R2) ; regiszter-indirekt címzés a tömb; aktuális elemének elérésére

ADD R2, #4 ; R2 tartalmát növeljük 4-gyelCMP R2, R3 ; végeztünk?BLT C ; ugrás a C címkéhez, ha nem. . . ; kész az összegzés

Page 14: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 14

• Indexelt címzés (indexed addressing): Egy eltolási érték (offset) és egy (index) regiszter tartalmának összege lesz az operandus címe, 5.19-20. ábra.

MOV R1, #0 ; gyűjtsük az eredményt R1-ben,; kezdetben ez legyen 0.

MOV R2, #0 ; az index kezdő értékeMOV R3, #400 ; a tömb mögé mutató index

C: ADD R1, A(R2); indexelt címzés a tömb; aktuális elemének elérésére

ADD R2, #4 ; R2 tartalmát növeljük 4-gyelCMP R2, R3 ; végeztünk?BLT C ; ugrás a C címkéhez, ha nem. . . ; kész az összegzés

Page 15: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 15

• Bázisindex címzés (based-indexed addressing): Egy eltolási érték (offset) és két (egy bázis és egy index) regiszter tartalmának összege lesz az operandus címe. Ha R5 A címét tartalmazza, akkor

C: ADD R1, A(R2) helyett aC: ADD R1, (R2+R5) utasítás is írható.• Verem címzés (stack addressing): Az operandus a

verem tetején van. Nem kell operandust megadni az utasításban.

Page 16: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 16

Az Intel 8086/8088 társzervezése

A memória byte szervezésű.

Egy byte 8 bitből áll. word, double word.

Byte sorrend: Little Endian (LSBfirst).

A negatív számok 2-es komplemens kódban.

szegmens, szegmens cím

a szegmensen belüli „relatív” cím, logikai cím, virtuális cím, OFFSET, displacement, eltolás, Effective Address (EA)

fizikai cím (Address)

Page 17: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 17

Az Intel 8086/8088 üzemmódjai

valós (real) védett (protected)

szegmens cím

szegmens regiszter

szegmens regiszter page tábla elem

tartalma * 16 ↓

szegmens kezdőcíme

fizikai cím

szegmens kezdőcíme + szegmensen belüli cím

Page 18: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 18

Szegmens regiszterek (16 bitesek)

A szegmens regiszterek bevezetésének eredeti célja az volt, hogy nagyobb memóriát lehessen elérni.

• CS (Code Segment) utasítások címzéséhez

• SS (Stack Segment) verem címzéséhez

• DS (Data Segment) (automatikus) adat terület címzéséhez

• ES (Extra Segment) másodlagos adat terület címzéséhez

Page 19: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 19

Vezérlő regiszterek (16 bitesek)• IP (Instruction Pointer) az éppen végrehajtandó utasítás

logikai címét tartalmazza a CS által mutatott szegmensben• SP (Stack Pointer) a stack-be (verembe) utolsónak beírt

elem logika címét tartalmazza az SS által mutatott szegmensben

• STATUS (SR vagy FLAGS) a processzor állapotát jelző regiszter

• BP (Base Pointer) a stack indexelt címzéséhez használatos• SI (Source Index) a kiindulási (forrás) adat terület indexelt

címzéséhez használatos• DI (Destination Index) a cél adat terület indexelt

címzéséhez használatos

Page 20: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 20

STATUS (FLAGS) bitjei (flag-jei)

• O (Overflow) előjeles túlcsordulás

• D (Direction) a string műveletek iránya, 0: növekvő, 1: csökkenő

• I (Interrupt) 1: megszakítás engedélyezése (enable), 0: tiltása (disable)

• T (Trap) 1: „single step”, 0: automatikus üzemmód

• S (Sign) az eredmény legmagasabb helyértékű bit-je (előjel bit)

• Z (Zero) 1 (igaz), ha az eredmény 0, különben 0 (hamis)

• A (Auxiliary Carry) átvitel a 3. és 4. bit között (decimális aritmetika)

• P (Parity) az eredmény alsó 8 bitjének paritása

• C (Carry) átvitel előjel nélküli műveleteknél

- - - - O D I T S Z - A - P - C

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Page 21: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 21

Általános regiszterek (16 illetve 8 bitesek)

wordhigher byte

lower byte

AX AH AL Accumulátor (szorzás, osztás is)

BX BH BL Base Register (címző regiszter)

CX CH CL Counter Register (számláló regiszter)

DX DH DL Data Register (szorzás, osztás, I/O)

Page 22: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 22

Az I8086/88 címzési rendszere Operandus megadás

Adat megadás

• Kódba épített adat (immediate – közvetlen operandus)MOV AL, 6 ; AL új tartalma 6MOV AX, 0FFH ; AX új tartalma 000FFH

• Regiszter címzés:MOV AX, BX

Az egyik cím mindig regiszter!A többi adat megadás esetén az automatikus szegmens

regiszter: DS

Page 23: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 23

Direkt memória címzés: a címrészen az operandus logikai címe (eltolás, displacement)

MOV AX, SZO ; AX új tartalma SZO tartalma

MOV AL, KAR ; AL új tartalma KAR tartalma

Valahol a DS által mutatott szegmensben:

SZO DW 1375HKAR DB 3FH

(DS:SZO) illetve (DS:KAR)

MOV AX, KAR ; hibás

MOV AL, SZO ; hibás

MOV AX, WORD PTR KAR ; helyes, de …

MOV AL, BYTE PTR SZO ; helyes, de …

Page 24: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 24

• Indexelt címzés: a logikai cím: a 8 vagy 16 bites eltolás + SI vagy DI (esetleg BX) tartalma

MOV AX, 10H[SI] MOV AX, -10H[SI] MOV AX, [SI]

Regiszter-indirekt címzés: eltolási érték nélküli indexelt címzés

MOV AX, [BX] MOV AX, [SI]

• Bázis relatív (bázisindex) címzés: a logikai cím: eltolás + BX + SI vagy DI tartalma

MOV AX, 10H[BX][SI] MOV AX, [BX+SI+10H]

Page 25: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 25

Stack (verem) terület címzés

Automatikus szegmens regiszter: SS

Megegyezik a bázis relatív címzéssel, csak a BX regiszter helyett a BP szerepel.

Page 26: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 26

Program terület címzés

Automatikus szegmens regiszter: CSA végrehajtandó utasítás címe: (CS:IP) Egy utasítás végrehajtásának elején:

IP = IP + az utasítás hossza.• IP relatív címzés:

IP = IP + a 8 bites előjeles közvetlen operandus• Direkt utasítás címzés: Az operandus annak az utasításnak

a címe, ahova a vezérlést átadni kívánjuk.Közeli (NEAR): IP <= a 16 bites operandusTávoli (FAR): (CS:IP) <= a 32 bites operandus.

CALL VALAMI ; az eljárás típusától függően ; NEAR vagy FAR

Page 27: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 27

• Indirekt utasítás címzés: Bármilyen adat címzési móddal megadott szóban vagy dupla szóban tárolt címre történő vezérlés átadás. Pl.:

JMP AX ; ugrás az AX-ben tárolt címre

JMP [BX] ; ugrás a (DS:BX) által címzett ; szóban tárolt címre.

JMP FAR [BX] ; ugrás a (DS:BX) által ; címzett dupla szóban tárolt

címre.

Page 28: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 28

Az utasítások szerkezete

Prefixum: utasítás ismétlés, explicit szegmens megadás vagy LOCK

MOV AX, CS:S ; S nem a DS,

; hanem a CS regiszterrel címzendő

Operációs kód: szimbolikus alakját mnemonic-nak nevezzük

Címzési mód byte: hogyan kell az operandust értelmezni

Operandus: mivel kell a műveletet elvégezni

prefixum operációs kód címzési mód operandus

0 - 2 byte 1 byte 0 - 1 byte 0 - 4 byte

Page 29: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 29

Címzési mód byte

A legtöbb utasítás kód után szerepel. Szerkezete:

7 6 5 4 3 2 1 0

Mód Regiszter Reg/Mem

Ha a műveleti kód legalacsonyabb helyértékű bit-je 0, akkor byte-os művelet, 1, akkor word-ös (szavas) művelet.

Page 30: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 30

 Regiszter Reg/Mem jelentése, ha Mód =

byte word 00 01 10 11

000 AL AX BX + SI + DI

„00”

+

8

bit

displ.

„00”

+

16

bit

displ.

R e g i s z t e r

001 CL CX

010 DL DX BP + SI + DI011 BL BX

100 AH SP SI DI101 CH BP

110 DH SI közv. op. BP+8 bit d. BP+16 bit d.

111 BH DI BX „00”+8 bit „00”+16 bit

Page 31: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 31

Szimbolikus alakban az operandusok sorrendje, gépi utasítás formájában a gépi utasítás kód mondja meg a regiszter és a memória közti adatátvitel irányát. Pl. az alábbi két utasítás esetén a címzési mód byte megegyezik:

MOV AX, 122H[SI+BX]

; hexadecimálisan 8B 80 0122

MOV 122H[SI+BX], AX

; hexadecimálisan 89 80 0122

7 6 5 4 3 2 1 0

1 0 0 0 0 0 0 0

Mód Reriszter Reg/Mem

+16 bit d. AX SI+BX

Page 32: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 32

Az általános regiszterek és SI, DI, SP, BP korlátlanul használható, a többi (a szegmens regiszterek, IP és STATUS) csak speciális utasításokkal. Pl.:

MOV DS, ADAT ; hibás!

MOV AX, ADAT ; helyes!

MOV DS, AX ; helyes!

A „többi” regiszter nem lehet aritmetikai utasítás operandusa, sőt, IP és CS csak vezérlés átadó utasításokkal módosítható, közvetlenül nem is olvasható.

Page 33: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 33

; Assembly főprogram, amely adott szöveget ír a képernyőre

; =================================================

KOD SEGMENT PARA PUBLIC CODE ; Szegmens kezdet

; KOD: a szegmens neve

; align-type (igazítás típusa): BYTE, WORD, PARA, PAGE

; combine-type: PUBLIC, COMMON, AT kifejezés, STACK

; class: CODE, DATA, (CONSTANT,) STACK, MEMORY; ajánlott értelemszerűen

ASSUME CS:KOD, DS:ADAT, SS:VEREM, ES:NOTHING

; feltételezett szegmens regiszter értékek.

; A beállításról ez az utasítás nem gondoskodik!

Page 34: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 34

KIIR PROC FAR ; A fő eljárás mindig FAR; FAR: távoli, NEAR: közeli eljárás

; Az operációs rendszer úgy hívja meg a főprogramokat, hogy ; a CS és IP a program végén lévő END utasításban megadott ; címke szegmens és OFFSET címét tartalmazza, SS és SP a; a STACK kombinációs típusú szegmens végét mutatja,; a visszatérés szegmens címe DS-ben van, OFFSET-je pedig 0

PUSH DS ; DS-ben van a visszatérési cím; SEGMENT része

XOR AX, AX ; AX0, az OFFSET rész = 0PUSH AX ; Veremben a (FAR) visszatérési cím MOV AX, ADAT ; AX az ADAT SEGMENT címeMOV DS, AX

; Most már teljesül, amit az ASSUME utasításban írtunk; Eddig tartott a főprogram előkészületi része

Page 35: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 35

MOV SI, OFFSET SZOVEG; SISZÖVEG OFFSET címe

CLD ; a SZÖVEGet növekvő címek; szerint kell olvasni

CALL KIIRO ; Eljárás hívás

RET ; Visszatérés az op. rendszerhez

; a veremből visszaolvasott ; szegmens és OFFSET címre

KIIR ENDP ; A KIIR eljárás vége

Page 36: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 36

KIIRO PROC ; NEAR eljárás,; megadása nem kötelező

CIKLUS: LODSB ; ALa következő karakterCMP AL, 0 ; AL =? 0JE VEGE ; ugrás a VEGE címkéhez,

; ha AL=0MOV AH, 14 ; BIOS rutin paraméterezéseINT 10H ; a 10-es interrupt hívása:

; az AL-ben lévő karaktert kiírja

; a képernyőreJMP CIKLUS ; ugrás a CIKLUS címkéhez,

; a kiírás folytatásaVEGE: RET ; Visszatérés a hívó programhozKIIRO ENDP ; A KIIRO eljárás végeKOD ENDS ; A KOD szegmens vége

Page 37: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 37

ADAT SEGMENTPARA PUBLIC DATASZOVEG DB Ezt a szöveget kiírja a képernyőre

DB 13, 10, 0 ; 13: a kocsi vissza,; 10: a soremelés kódja,; 0: a szöveg vége jel

ADAT ENDS ; Az ADAT szegmens vége; =================================================VEREM SEGMENTPARA STACK

DW 100 DUP (?) ; Helyfoglalás 100 db ; inicializálatlan szó számára

VEREM ENDS ; A VEREM szegmens vége; =================================================

END KIIR ; Modul vége, ; a program kezdőcíme: KIIR

Page 38: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 38

Digitális logikai szint

Digitális áramkör: két érték – általában

0-1 volt között az egyik (pl. 0, hamis),

2-5 volt között a másik (1, igaz).

Más feszültségeket nem engednek meg.

Kapu (gate): kétértékű jelek valamilyen függvényét tudja meghatározni.Kapcsolási idő néhány ns (nanoszekundum = 10-9 s)

Page 39: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 39

NEM (NOT) kapu (3.1-2. ábra)

Emitter

Bázis Kollektor

+ Vcc

Vbe

Vki + Vcc

0 + Vcc

0

Tranzisztor

A X0 11 0

Igazság tábla:

Szimbolikus jelölése: A X

NEM (NOT) kapu, inverter

erősítő Inverziós gömb

+ Vcc + Vcc

Page 40: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 40

NEM-ÉS (NAND) kapu (3.1-2. ábra)

A B X0 0 10 1 11 0 11 1 0

Igazság tábla:

+ Vcc

V1

Vki

V2

Szimbolikus jelölése

A

BX

Page 41: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 41

NEM-VAGY (NOR) kapu (3.1-2. ábra)

+ Vcc

Vki

A B X0 0 10 1 01 0 01 1 0

Igazság tábla:

V1 V2

Szimbolikus jelölése

A

BX

Page 42: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 42

ÉS (AND) kapu (3.2. ábra)

A B X0 0 00 1 01 0 01 1 1

Igazság tábla:

Szimbolikus jelölése A

BX

Page 43: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 43

VAGY (OR) kapu (3.2. ábra)

A B X0 0 00 1 11 0 11 1 1

Igazság tábla:

Szimbolikus jelölése A

BX

Page 44: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 44

Boole-algebraOlyan algebra, amelynek változói és függvényei

csak a 0, 1 értéket veszik fel, a műveletei:

• ÉS (konjunkció), • VAGY (diszjunkció), • NEM (negáció).

Igazságtábla: olyan táblázat, amely a változók összes lehetséges értéke mellett megadja a függvény vagy kifejezés értékét.

Page 45: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 45

Pl. 3 változós többségi függvény (3.3. ábra): értéke 1, ha legalább két argumentuma 1

A B C M

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

ABCCABCBABCAM

Igazság tábla:

Boole-algebrai alakja:

A fölülvonás a NEM (negáció),

az egymás mellé írás az ÉS,

a + a VAGY művelet jele.

Diszjunktív normálforma.

Page 46: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 46

Boole-függvény megvalósításának lépései (3.3. ábra):• igazságtábla, • negált értékek,• ÉS kapuk bemenetei, • ÉS kapuk, • VAGY kapu, kimenet.

A B C M0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

A

B

C

M

A B C A B C

ABCCABCBABCAM

Page 47: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 47

NAND és NOR előnye: teljesség (3.4. ábra)

NOT

AND OR

Page 48: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 48

Definíció: Akkor mondjuk, hogy két Boole-függvény ekvivalens, ha az összes lehetséges bemenetre a két függvény azonos kimenetet ad.

Két Boole-függvény ekvivalenciája könnyen ellenőrizhető az igazság táblájuk alapján.

Pl.: AB + AC és A(B + C) ekvivalens (3.5. ábra).

Az első függvény megvalósításához két ÉS és egy VAGY kapura van szükség, a másodikhoz elegendő egy ÉS és egy VAGY kapu.

Page 49: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 49

Néhány azonosság (3.6. ábra)

Szabály ÉS forma VAGY forma

Identitás 1A = A 0+A=A

Null 0A = 0 1+A=1

Idempotens AA=A A+A=A

Inverz AA=0 A+A=1

Kommutatív AB=BA A+B=B+A

Asszociatív (AB)C=A(BC) (A+B)+C=A+(B+C)

Disztribúciós A+BC=(A+B)(A+C) A(B+C)=AB+AC

Abszorpciós A(A+B)=A A+AB=A

De Morgan AB=A+B A+B=AB

Page 50: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 50

Disztribúciós szabály:

A+BC=A+(BC)=(A+B)(A+C)

Jelölje az ÉS műveletet ٨ , a VAGY műveletet ٧ , akkor

A ٧ (B ٨ C) = (A ٧ B) ٨ (A ٧ C)

Page 51: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 51

Feladatok

Milyen feladatai vannak a CPU-nak?

Mi a központi memória feladata?

Mi a memória cella/rekesz?

Mit jelent a big endian kifejezés?

Milyen problémát okoz az eltérő bájtsorrend?

Mi a Hamming távolság?

Mekkora a hexadecimális E6 és C7 Hamming távolsága?

Hány ellenőrző bit szükséges 256 kódszó 1 hibát javító kódolásához?

Page 52: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 52

Feladatok

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 10241024 10 10

Egy régi gépnek 8192 szavas memóriája volt. Miért nem 8000?

Page 53: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 53

FeladatokA memória 100-adik bájtjától a 01234567H 4 bájtos

számot és – folytatólagosan – az abcd szöveget helyeztük el. Mi az egyes bájtok tartalma, ha a memória big/little endian szervezésű? Mi a helyzet Intel 8086/8088-as gépen?

Hogyan számítjuk ki a fizikai címet Intel 8086/8088-as gépen valós üzemmódban?

Melyik címre hivatkozik az alábbi utasítás?MOV AX, 12H[SI]

Melyik címre ugrik az alábbi utasítás?JMP FAR SS:6[BX,DI]

Page 54: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 54

FeladatokMilyen operandus megadási módokat ismer? Ezek

közül melyek alkalmazhatók az IBM PC-n?Mi a közvetlen operandus megadás?Mi a direkt címzés?Mi a regiszter címzés?Mi a regiszter-indirekt címzés?Mi az indexelt címzés?Mi a bázisindex címzés?Milyen az I-8086/8088 társzervezése?Ismertesse az I-8086/8088 regiszter készletét!

Page 55: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 55

FeladatokIsmertesse az I-8086/8088 szegmens regisztereit! Ismertesse az I-8086/8088 általános regisztereit! Ismertesse az I-8086/8088 vezérlő regisztereit! Mire szolgál a STATUS (FLAGS) regiszter?Ismertesse az I-8086/8088 utasításainak szerkezetét!Ismertesse az I-8086/8088 címzési módjait! Ismertesse az I-8086/8088 stack terület címzését! Ismertesse az I-8086/8088 program terület címzését!Milyen prefixumokat ismer?Mire szolgál a címzési mód bájt?

Page 56: CPU (Central Processing Unit) feladatai a végrehajtandó utasítás betöltése,

Máté: Architektúrák 2. előadás 56

FeladatokMi az igazság tábla? Írja fel a NEM, ÉS, VAGY,

NAND, NOR, XOR művelet igazság tábláját!Mi a Bool algebra?Írja fel a 3 változós többségi függvény igazság tábláját

és Bool-algebrai alakját!Mikor mondunk két Boole-függvényt equivalensnek?Hogy valósítható meg egy Boole-függvény?Mit jelent a NAND és NOR művelet teljessége?Írja föl a Boole-algebra legfontosabb azonosságait!Mit jelent az áramköri ekvivalencia?Írja fel a De Morgan szabályt!