52
Máté: Architektú rák 3. előadás 1 Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia vagy műanyag lapon (tokban), lábakkal (pins). Négy alaptípus: SSI (Small Scale Integrated 1-10 kapu) 3.10 ábra, MSI (Medium Scale ..., 10-100 kapu), LSI (Large Scale..., 100-100 000 kapu), VLSI (Very Large Scale ..., > 100 000 kapu). Példa SSI-re: 3.10. ábra, V cc : feszültség, GND: föld. Kapukésleltetés (gate delay): 1-10 nsec.

Alapvető digitális logikai áramkörök

  • Upload
    adamma

  • View
    50

  • Download
    3

Embed Size (px)

DESCRIPTION

Alapvető digitális logikai áramkörök Integrált áramkör ( IC , Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia vagy műanyag lapon (tokban), lábakkal (pins). Négy alaptípus: SSI (Small Scale Integrated 1-10 kapu) 3.10 ábra , MSI (Medium Scale ..., 10-100 kapu), - PowerPoint PPT Presentation

Citation preview

Page 1: Alapvető digitális logikai áramkörök

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

Alapvető digitális logikai áramkörök

Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm2 szilícium darab kerámia vagy műanyag lapon (tokban), lábakkal (pins). Négy alaptípus:

• SSI (Small Scale Integrated 1-10 kapu) 3.10 ábra,

• MSI (Medium Scale ..., 10-100 kapu),

• LSI (Large Scale..., 100-100 000 kapu),

• VLSI (Very Large Scale ..., > 100 000 kapu).

Példa SSI-re: 3.10. ábra, Vcc: feszültség, GND: föld.

Kapukésleltetés (gate delay): 1-10 nsec.

Page 2: Alapvető digitális logikai áramkörök

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

Kívánalom: sok kapu – kevés láb

Kombinációs áramkörök

Definíció: A kimeneteket egyértelműen meghatározzák a pillanatnyi bemenetek.

Multiplexer: 2n adatbemenet, n vezérlő bemenet, 1 kimenet (3.11. ábra), az egyik adatbemenet kapuzott (gated) a kimenetre.

• Többségi függvény: (3.3., 12. ábra),

• Párhuzamos-soros átalakítás (vezérlő vonalakon rendre: 000, 001, … 111).

Page 3: Alapvető digitális logikai áramkörök

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

Demultiplexer: egy egyedi bemenetet irányít az n vezérlő bemenet értékétől függően a 2n kimenet egyikére (3.11. ábrán a bemenetek összekötve, a vagy kapu törölve).

Dekódoló: n bemenet, 2n kimenet. Pontosan egy kimeneten lesz 1 (3.13. ábra). Demultiplexerrel: a bemenetet igazra állítjuk.

Összehasonlító (comparator): (3.14. ábra).

Programozható logikai tömbök: PLA (Programmable Logic Array, 3.15. ábra).

Page 4: Alapvető digitális logikai áramkörök

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

Aritmetikai áramkörökLéptető (shifter): 3.16. ábra, C=0: balra, 1: jobbra. Összeadók:• Fél-összeadó (half adder, 3.17. ábra), • Teljes összeadó (full adder, 3.18. ábra). Aritmetikai-logikai egység: bitszelet (bit slice, 3.19.

ábra), ALU (Arithmetic Logic Unit, 3.20. ábra). Az F0, F1 vezérlő jelektől függően:

ÉS, VAGY (+), NEGÁCIÓ vagy ÖSSZEADÁS. INC bemenet.

• átvitel továbbterjesztő (ripple carry adder), • átvitel kiválasztó (carry select adder) eljárás.

Page 5: Alapvető digitális logikai áramkörök

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

Nem kombinációs áramkörök Óra (clock): ciklusidő (cycle time). Pl.: 500 MHz - 2

nsec. Finomabb felbontás eltolással: 3.21. ábra.Memória: „Emlékszik” az utolsó beállításra. Tároló: Szint vezérelt (level triggered). SR tároló (Set Reset latch), 3.22. ábra.

Stabil állapot: a két kimenet 0, 1 vagy 1, 0. S, R bemenet.

Időzített (clocked) SR tároló (3.23. ábra). Időzített D-tároló (3.24. ábra). Mindkét SR tároló

indeterminisztikussá válna, ha S = R = 1 egyszerre fordulna elő.

Page 6: Alapvető digitális logikai áramkörök

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

Pulzusgenerátor 3.25. ábra. Az inverternek van egy pici (1-10 ns) késleltetése.

Flip-flop: élvezérelt (edge triggered), D flip-flop: 3.26. ábra.

3.27. ábra: Tárolók (a, b) és flip-flopok (c, d) :. CK: órajel.(a) CK=1, (b) CK=0 szint esetén írja be D-t,(c) CK emelkedő, (d) CK lefelé menő élénél.Sokszor S (PR), R (CLR) be- és Q# kimenet is van.

3.28. ábra: (a) 2 független D flip-flop, (b) közös CK-val vezérelt 8 D flip-flop: regiszter.

Page 7: Alapvető digitális logikai áramkörök

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

Memória szervezése

Elvárás: szavak címezhetősége. 3.29. ábra: Négy db három bites szó. Nyolc bemenet: három a vezérléshez, kettő a címzéshez (dekódoló), három a bemenő adatoknak, három adat kimenet.

CS (Chip Select): lapka választás,

RD (ReaD): 1: olvasás, 0: írás választása,

OE (Output Enable): kimenet engedélyezése.

Az igazi memóriáknál a bemenet és kimenet közös (kevesebb lábra van szükség): Nem invertáló és invertáló pufferek (tri-state device, 3.30. ábra).

Page 8: Alapvető digitális logikai áramkörök

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

Memórialapkák Előnyös, ha a szavak száma 2 hatvány. 4 Mbit-es memória kétféle szervezése: 3.31. ábra. A jel beállított (asserted) vagy negált ( vagy #).

CS beállított: 1, de CS# beállított: 0a) 512 K bájtos elrendezés: 19 cím, 8 adat vonal. b) 2048*2048 bites elrendezés: 11 cím, 1 adat vonal:

Bit kiválasztás sor- (RAS: Row Address Strobe) és oszlopindex CAS (Column ...) segítségével. Gyakran alkalmazzák nagyobb memóriáknál, bár a két cím megadása lassíthat.

Nagyobb memóriáknál 1, 4, 8, 16 bites kimeneteket is használnak.

Page 9: Alapvető digitális logikai áramkörök

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

RAM (Random Access Memory, 3.32. ábra) • Statikus RAM (SRAM). D flip-flop elemekből épül

fel. Amíg áram alatt van, tartja a tartalmát. Elérési idő: néhány nsec (cache-nek jók).

• Dinamikus RAM (DRAM): minden bit egy tranzisztor és egy kondenzátor: néhány msec-onként frissíteni kell, de nagyobb adatsűrűség érhető el. Elérési idő: néhány tíz nsec (főmemóriák). Szinkron: SDRAM (synchronous DRAM).Aszinkron működésű:- régi: FPM (Fast Page Mode) sor-, oszlopcím.- újabb: EDO (Extended Data Output) lehet új

memóriahivatkozás, mielőtt az előző befejeződik.

Page 10: Alapvető digitális logikai áramkörök

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

ROM (Read-Only Memory)ROM: gyárilag kialakított tartalom.PROM (Programmable ROM): a tartalom

biztosítékok kiégetésével alakul ki (hasonlóan a PLA-khoz, 3.15. ábra).

EPROM (Erasable PROM): a biztosítékok speciális fénnyel kiolvaszthatók és „kijavíthatók”.

EEPROM: elektromos impulzusokkal.Flash (fény) memória: törlés és újraírás csak

blokkonként.Kb. 10 000 használat után „elkopnak”.

Összefoglalás: 3.32. ábra.

Page 11: Alapvető digitális logikai áramkörök

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

Az I8086/8088 utasítás rendszereJelőlések : értékadás : felcserélésop, op1, op2: tetszőlegesen választható operandus

(közvetlen, memória vagy regiszter). op1 és op2 közül az egyik regiszter kell legyen!reg: általános, bázis vagy index regisztermem: memória operandusipr: (8 bites) IP relatív cím port: port cím (8 bites eltolás vagy DX)[op]: az op által mutatott cím tartalma

Page 12: Alapvető digitális logikai áramkörök

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

Adat mozgató utasítások Nem módosítják a flag-eket (kivéve POPF és SAHF)

MOV op1, op2 ; op1 op2 (MOVe)XCHG op1, op2 ; op1 op2 (eXCHanGe), op2 sem

; lehet közvetlen operandusXLAT ; AL [BX+AL] (trans(X)LATe), a

; BX által címzett maximum 256 byte-; os tartomány AL-edik byte-jának ; tartalma lesz AL új tartalma

LDS reg, mem ; reg mem, mem+1; DS mem+2, mem+3 (Load DS)

LES reg, mem ; reg mem, mem+1; ES mem+2, mem+3 (Load ES)

LEAreg, mem ; reg mem effektív (logikai) címe ; (Load Effective Address)

Page 13: Alapvető digitális logikai áramkörök

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

A veremmel (stack-kel) kapcsolatos adat mozgató utasítások:

PUSH op ; SP SP-2; (SS:SP) op

PUSHF ; (PUSH Flags)

; SP SP-2; (SS:SP) STATUS

POP op ; op (SS:SP); SP SP+2

POPF ; (POP Flags)

; STATUS (SS:SP); SP SP+2

Az Intel 8080-nal való kompatibilitást célozza az alábbi két utasítás:

LAHF ; AH STATUS alsó 8 bitje

SAHF ; STATUS alsó 8 bitje AH

Page 14: Alapvető digitális logikai áramkörök

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

Aritmetikai utasításokADD op1, op2 ; op1 op1 + op2 (ADD)

Pl.: előjeles/előjel nélküli számok összeadása MOV AX, -1 ; AX=-1 (=0FFFFH)ADD AX, 2 ; AX=1, C=1, O=0

ADC op1, op2 ; op1 op1 + op2 + C ; (ADD with Carry)

Pl.: két szavas összeadás (előjeles/előjel nélkül)ADD AX, BXADC DX, CX ; (DX:AX) = (DX:AX) +

(CX:BX)

INC op ; op op + 1, C változatlan! (INCrement)

Page 15: Alapvető digitális logikai áramkörök

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

SUB op1, op2 ; op1 op1 - op2 (SUBtraction)

CMP op1, op2 ; flag-ek op1 - op2 szerint (CoMPare)

SBB op1, op2 ; op1 op1 - op2 – C:

; a több szavas kivonást segíti.

DECop ; op op - 1, C változatlan ; (DECrement)

NEG op ; op -op (NEGate)

Page 16: Alapvető digitális logikai áramkörök

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

Az összeadástól és kivonástól eltérően a szorzás és osztás esetében különbséget kell tennünk, hogy előjeles vagy előjel nélküli számábrázolást alkalmazunk-e. További lényeges eltérés, hogy két 8 bites vagy 16 bites mennyiség szorzata ritkán fér el 8 illetve 16 biten, ezért a szorzás műveletét úgy alakították ki, hogy 8 bites tényezők szorzata 16, 16 biteseké pedig 32 biten keletkezzék:

Ha op 8 bites AX AL op.

Ha op 16 bites (DX:AX) AX op.

MUL op ; előjel nélküli szorzás (MULtiplicate),

IMUL op ; előjeles szorzás (Integer MULtiplicate).

Szorzásnál op nem lehet közvetlen operandus!

Page 17: Alapvető digitális logikai áramkörök

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

Osztásnál op nem lehet közvetlen operandus!

Ha op 8 bites: AL AX/op hányadosa,AH AX/op maradéka.

Ha op 16 bites: AX (DX:AX)/op hányadosa,DX (DX:AX)/op maradéka.

DIV op ; (DIVide) előjel nélküli osztás,IDIV op ; (Integer DIVide) előjeles osztás,

; A nem 0 maradék előjele megegyezik; az osztóéval.

Osztásnál túlcsordulás azonnal elhal (abortál) a programunk!

Page 18: Alapvető digitális logikai áramkörök

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

Előjel nélküli osztás előkészítése AH illetve DX nullázásával

történik.

Előjeles osztás előkészítésére szolgál az alábbi két

előjel kiterjesztő utasítás:

CBW ; (Convert Byte to Word)

; AX AL előjel helyesen

CWD ; (Convert Word to Double word)

; (DX:AX) AX előjel helyesen

Pozitív számok esetén (az előjel 0) az előjel kiterjesztés az

AH illetve a DX regiszter nullázását, negatív számok esetén

(az előjel 1) csupa 1-es bittel való feltöltését jelenti.

Page 19: Alapvető digitális logikai áramkörök

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

; Két vektor skalár szorzata. 1. változat

code segment para public ’code’

assume cs:code, ds:data, ss:stack, es:nothing

skalar proc far

push ds ; visszatérési cím a verembe

xor ax,ax ; ax 0

push ax ; visszatérés offset címe

mov ax,data ; ds a data szegmensre mutasson

mov ds,ax ; sajnos „mov ds,data”

; nem megengedett

Page 20: Alapvető digitális logikai áramkörök

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

; A

mov cl,n ; cl n, 0 n 255

xor ch,ch ; cx = n szavasan

xor dx,dx ; az eredmény ideiglenes helye

JCXZ kesz ; ugrás a kesz címkére,

; ha CX (=n) = 0

xor bx,bx ; bx 0,

; bx-et használjuk indexezéshez

Page 21: Alapvető digitális logikai áramkörök

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

ism: mov al,a[bx] ; al a[0], később a[1], ...

imul b[bx] ; ax a[0]b[0], a[1]b[1], ...

add dx,ax ; dx részösszeg

inc bx ; bx bx+1, az index növelése

; B

dec cx ; cx cx-1, (vissza)számlálás

JCXZ kesz ; ugrás a kész címkére, ha cx=0

jmp ism ; ugrás az ism címkére

kesz: mov ax,dx ; a skalár szorzat értéke ax-ben

; C

Page 22: Alapvető digitális logikai áramkörök

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

call hexa ; az eredmény kiírása

; hexadecimálisan

mov si,offset kvse ; kocsi vissza soremelés

call kiiro ; kiírása

ret ; vissza az Op. rendszerhez

skalar endp ; a skalár eljárás vége

; D

Page 23: Alapvető digitális logikai áramkörök

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

hexa proc ; ax kiírása hexadecimálisanxchg ah,al ; ah és al felcserélésecall hexa_b ; al (az eredeti ah) kiírásaxchg ah,al ; ah és al visszacserélésecall hexa_b ; al kiírásaret ; visszatérés

hexa endp ; a hexa eljárás vége; ----------------------------------------------------------hexa_b proc ; al kiírása hexadecimálisan

push cx ; mentés a verembemov cl,4 ; 4 bit-es rotálás előkészítéseROR al,CL ; az első jegy az alsó 4 bitencall h_jegy ; az első jegy kiírása ROR al,CL ; a második jegy az alsó 4 bitencall h_jegy ; a második jegy kiírása pop cx ; visszamentés a verembőlret ; visszatérés

hexa_b endp ; a hexa_b eljárás vége

Page 24: Alapvető digitális logikai áramkörök

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

h_jegy proc ; hexadecimális jegy kiírásapush ax ; mentés a verembeAND al,0FH ; a felső 4 bit 0 lesz,

; a többi változatlanadd al,’0’ ; + 0 kódjacmp al,’9’ ; 9 ?JLE h_jegy1 ; ugrás h_jegy1 -hez, ha igenadd al,’A’-’0’-0AH ; A-F hexadecimális jegyek

; kialakításah_jegy1: mov ah,14 ; BIOS szolgáltatás előkészítése

int 10H ; BIOS hívás: karakter kiíráspop ax ; visszamentés a verembőlret ; visszatérés

h_jegy endp ; a hexa_b eljárás vége

Page 25: Alapvető digitális logikai áramkörök

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

kiiro proc ; szöveg kiírás (DS:SI)-tőlpush axcld

ki1: lodsb ; ala következő karaktercmp al, 0 ; al =? 0je ki2 ; ugrás a ki2 címkéhez, ha al=0mov ah,14 ; BIOS rutin paraméterezéseint 10H ; az AL-ben lévő karaktert

; kiírja a képernyőrejmp ki1 ; a kiírás folytatása

ki2: pop axret ; visszatérés a hívó programhoz

kiiro endp ; a kiíró eljárás vége; ----------------------------------------------------------code ends ; a code szegmens vége

Page 26: Alapvető digitális logikai áramkörök

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

data segment para public ’data’n db 3a db 1, 2, 3b db 3, 2, 1kvse db 13, 10, 0 ; kocsi vissza, soremelésdata ends ; a data szegmens vége; ==========================================stack segment para stack ’stack’

dw 100 dup (?) ; 100 word legyen a veremstack ends ; a stack szegmens vége; ==========================================

end skalar ; modul vége, ; a program kezdő címe: skalar

Page 27: Alapvető digitális logikai áramkörök

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

Egyszerűsítési lehetőség:

; B

dec cx ; cx cx-1, (vissza)számlálás

JCXZ kesz ; ugrás a kész címkére, ha cx=0

jmp ism ; ugrás az ism címkére

kesz: mov ax,dx ; a skalár szorzat értéke ax-ben

helyett:

; B

LOOP ism ; ugrás az ism címkére,

; ha kell ismételni

kesz: mov ax,dx ; a skalár szorzat értéke ax-ben

Page 28: Alapvető digitális logikai áramkörök

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

Annak érdekében, hogy a skalárszorzatot kiszámító program ne rontson el regisztereket, kívánatos ezek mentése:

; A

PUSH BX ; mentés

PUSH CX

PUSH DX

és visszamentése:

POP DX ; visszamentés

POP CX

POP BX

; C

Page 29: Alapvető digitális logikai áramkörök

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

A paraméterek szabványos helyen történő átadása; Két vektor skalár szorzata. 2. változat. . .; A; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; SZABVÁNYOS HELYEN TÖRTÉNŐ ÁTADÁSÁVAL

CALL SKAL ; ELJÁRÁS HÍVÁS; eredmény az AX regiszterben

; Ccall hexa ; az eredmény kiírásamov si,offset kvse ; kocsi vissza, soremelés call kiiro ; kiírása

. . .ret ; vissza az Op. rendszerhez

skalar endp ; a skalár eljárás vége

Page 30: Alapvető digitális logikai áramkörök

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

SKAL PROC ; KÖZELI (NEAR) ELJÁRÁS ; KEZDETE

PUSH BX ; MENTÉSEK

PUSH CX

PUSH DX

mov cl,n ; cl n, 0 n 255

xor ch,ch ; cx = n szavasan

xor dx,dx ; az eredmény ideiglenes helye

jcxz kesz ; ugrás a kesz címkére, ha n=0

xor bx,bx ; bx 0,

; bx-et használjuk indexezéshez

Page 31: Alapvető digitális logikai áramkörök

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

ism: mov al,a[bx] ; al a[0], később a[1], ...imul b[bx] ; ax a[0]b[0], a[1]b[1],...add dx,ax ; dx részösszeginc bx ; bx bx+1, az index növelése

; BLOOP ism ; ugrás az ism címkére,

; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben

POP DX ; VISSZAMENTÉSEKPOP CXPOP BXRET ; VISSZATÉRÉS A HÍVÓ

; PROGRAMHOZSKAL ENDP ; A SKAL ELJÁRÁS VÉGE; D

Csak az a és b vektor skalár szorzatát tudja kiszámolni!

Page 32: Alapvető digitális logikai áramkörök

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

A paraméterek regiszterekben történő átadása ; Két vektor skalár szorzata. 3. változat. . .; A; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; REGISZTEREKBEN TÖRTÉNŐ ÁTADÁSÁVAL

MOV CL, n ; PARAMÉTER BEÁLLÍTÁSOKXOR CH, CH ; CX = n, ÉRTÉKMOV SI,OFFSET a ; SI a OFFSET CÍMEMOV DI,OFFSET b ; DI b OFFSET CÍMEcall skal ; eljárás hívás

; eredmény az ax regiszterbencall hexa ; az eredmény kiírásamov si,offset kvse ; kocsi vissza, soremelés call kiiro ; kiírása

. . .ret ; visszatérés az Op. rendszerhez

skalar endp ; a skalár eljárás vége

Page 33: Alapvető digitális logikai áramkörök

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

skal proc ; Közeli (NEAR) eljárás kezdete

push bx ; mentések

push cx

push dx

xor bx,bx ; bx 0,

; bx-et használjuk indexezéshez

xor dx,dx ; az eredmény ideiglenes helye

jcxz kesz ; ugrás a kesz címkére, ha n=0

Page 34: Alapvető digitális logikai áramkörök

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

ism: mov al,[SI+BX] ; FÜGGETLEN a-tólimul BYTE PTR [DI+BX]; FÜGGETLEN b-től

; csak „BYTE PTR”-ből derül ki, hogy 8 bites a szorzásadd dx,ax ; dx részösszeginc bx ; bx bx+1, az index növeléseloop ism ; ugrás az ism címkére,

; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben

pop dx ; visszamentésekpop cxpop bxret ; visszatérés a hívó programhoz

skal endp ; a skal eljárás vége; D. . .

Így csak kevés paraméter adható át!

Page 35: Alapvető digitális logikai áramkörök

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

; Két vektor skalár szorzata. 4. változat. . .; A; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; VEREMBEN TÖRTÉNŐ ÁTADÁSÁVAL

MOV AL,n ; AL-t nem kell menteni, mertXOR AH,AH ; AX-ben kapjuk az eredménytPUSH AX ; AX=n a verembeMOV AX,OFFSET a ; AX a OFFSET címePUSH AX ; a verembeMOV AX,OFFSET b ; AX b OFFSET címePUSH AX ; a verembe

A verembe került: n értéke, a címe, b címe paraméterek

Page 36: Alapvető digitális logikai áramkörök

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

call skal ; eljárás hívás; eredmény az ax regiszterben

ADD SP,6 ; paraméterek ürítése a veremből . . .

ret ; visszatérés az Op. rendszerhez

skalar endp ; a skalár eljárás vége

A verembe került

call skal

hatására a visszatérési cím

Page 37: Alapvető digitális logikai áramkörök

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

skal proc ; Közeli (near) eljárás kezdetePUSH BP ; BP értékét mentenünk kellMOV BP,SP ; BP SP,

; a stack relatív címzéshezPUSH SI ; mentésekPUSH DIpush bxpush cx push dx

A verem tartalma: n értéke, a címe, b címe paraméterek visszatérési cím, bp, si, di, bx, cx, dx mentett regiszterek

Page 38: Alapvető digitális logikai áramkörök

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

A verem tartalma:

n értéke, a címe, b címe paraméterek visszatérési cím, bp, si, di, bx, cx, dx mentett regiszterek

(SS:SP) dx+ 2 cx+ 4 bx+ 6 di+ 8 si+10 bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)+12 visszatérési cím + 2

+14 b címe + 4+16 a címe + 6+18 n értéke + 8. . . korábbi mentések . . .

Page 39: Alapvető digitális logikai áramkörök

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

MOV SI,6[BP] ; SI az egyik vektor címeMOV DI,4[BP] ; DI a másik vektor címeMOV CX,8[BP] ; CX a dimenzió értékexor bx,bx ; bx 0, indexezéshezxor dx,dx ; az eredmény ideiglenes helyejcxz kesz ; ugrás a kesz címkére, ha n=0

ism: mov al,[si+bx] ; független a-tólimul byte ptr [di+bx] ; független b-től

; csak „byte ptr”-ből derül ki, hogy 8 bites a szorzásadd dx,ax ; dx részösszeginc bx ; bx bx+1, az index növeléseloop ism ; ugrás az ism címkére,

; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben

Page 40: Alapvető digitális logikai áramkörök

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

pop dx ; visszamentésekpop cxpop bxPOP DIPOP SIPOP BPret ; visszatérés a hívó programhoz

skal endp ; a skal eljárás vége; D. . .

ADD SP,6 ; paraméterek ürítése a veremből

helyett más megoldás: RET 6 ; visszatérés a hívó programhoz

; verem ürítéssel: . . . SP = SP + 6

Page 41: Alapvető digitális logikai áramkörök

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

Lokális adat terület, rekurzív és re-entrant eljárásokHa egy eljárás működéséhez lokális adat területre, munkaterületre van szükség, és a működés befejeztével a munkaterület tartalma fölösleges, akkor a munkaterületet célszerűen a veremben alakíthatjuk ki. A munkaterület lefoglalásának ajánlott módja:

. . . proc . . .PUSH BP ; BP értékének mentéseMOV BP,SP ; BP SP,

; a stack relatív címzéshezSUB SP,n ; n a munkaterület byte-jainak

száma. . . ; további regiszter mentések

Page 42: Alapvető digitális logikai áramkörök

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

Lokális adat terület (NEAR eljárás esetén)

(SS:SP) lokális adat terület . . .+ 2 . . .. . . – 2

bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)visszatérési cím + 2

paraméterek . . .korábbi mentések . . .

A munkaterület negatív displacement érték mellett stack relatív címzéssel érhető el. (A veremben átadottparaméterek ugyancsak stack relatív címzéssel, de pozitív displacement érték mellett érhetők el.)

Page 43: Alapvető digitális logikai áramkörök

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

A munkaterület felszabadítása visszatéréskor a

. . . ; visszamentések

MOV SP,BP ; a munkaterület felszabadítása

POP BP ; BP értékének visszamentése

ret . . . ; visszatérés

utasításokkal történhet.

Page 44: Alapvető digitális logikai áramkörök

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

Rekurzív és re-entrant eljárások

Egy eljárás rekurzív, ha önmagát hívja közvetlenül, vagy más eljárásokon keresztül.

Egy eljárás re-entrant, ha többszöri belépést tesz lehetővé, ami azt jelenti, hogy az eljárás még nem fejeződött be, amikor újra felhívható. A rekurzív eljárással szemben a különbség az, hogy a rekurzív eljárásban „programozott”, hogy mikor történik az eljárás újra hívása, re-entrant eljárás esetén az esetleges újra hívás ideje a véletlentől függ. Ez utóbbi esetben azt, hogy a munkaterületek ne keveredjenek össze, az biztosítja, hogy újabb belépés csak másik processzusból képzelhető el, és minden processzus saját vermet használ.

Page 45: Alapvető digitális logikai áramkörök

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

Rekurzív és re-entrant eljárások

Ha egy eljárásunk készítésekor betartjuk, hogy az eljárás a paramétereit a vermen keresztül kapja, kilépéskor visszaállítja a belépéskori regiszter tartalmakat – az esetleg eredményt tartalmazó regiszterek kivételével –, továbbá a fenti módon kialakított munkaterületet használ, akkor az eljárásunk rekurzív is lehet, és a többszöri belépést is lehetővé teszi (re-entrant).

Page 46: Alapvető digitális logikai áramkörök

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

Történeti áttekintés

• Kezdetben: kevés, egyszerű utasítás.

• Később: sok, egyre összetettebb utasítás.

• IBM 360-as család. Lefelé kompatibilis, csak a nagyobb gépek hajtják végre hardveresen az utasításokat (gyors), a kicsik interpretálnak (olcsó).

Interpretálás előnyei:

• hibásan interpretált utasítások könnyű javítása,

• új utasítások egyszerű hozzáadása,

• strukturált felépítés; összetett utasítások hatékony fejlesztése.

Page 47: Alapvető digitális logikai áramkörök

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

Hetvenes évek vége:

• a csak olvasásra használható gyors memóriák (vezérlőtárak – ROM Read Only Memory) megjelenése és beépülése a CPU-ba.

• az első 8 bites processzorok:

- Motorola 68000 egyszerű utasításokkal nagy

interpretert épít (siker),

- Zilog 8000 bonyolult hardver utasításokat

(kudarc).

Page 48: Alapvető digitális logikai áramkörök

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

A nyolcvanas évek elejétől: A központi memória sebessége csaknem elérte a

vezérlő tárak sebességét. RISC (Reduced Instruction Set Computer -

csökkentett utasításkészletű számítógép): SPARC, DEC Alpha. Cél: minél gyorsabban indítani és átlapolni a gyors, egyszerű utasításokat.

CISC (Complex Instruction Set Computer, összetett utasításkészletű számítógép): IBM nagy gépek, VAX, …. Összetett, és lassabb utasítások.

Page 49: Alapvető digitális logikai áramkörök

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

Miért nem nyert a RISC? Kompatibilitás + az elveket az Intel is részben átveszi

(486-tól RISC mag).

RISC tervezési elvei • hardveres (nem mikroprogramozott) utasítások, • az utasítások indítási sebességének maximalizálása, • könnyen dekódolható utasítások, • memóriához fordulás csak betöltés (load) és tárolás

(store) esetén.

Sok regiszter kell!

Page 50: Alapvető digitális logikai áramkörök

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

FeladatokMilyen bemenetei vannak az ALU-nak?Milyen nem kombinációs áramköröket ismer?Kombinációs áramkör-e az ALU?Hogyan csökkenthető az összeadásnál az átvitelekből

származó idő?Magyarázza el a pulzus generátor működését!Mi a különbség a tároló és a flip-flop között? Mi a különbség a SRAM és a DRAM között?Mi az EPROM?Mi az EEPROM?

Page 51: Alapvető digitális logikai áramkörök

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

FeladatokMilyen adat mozgató utasításokat ismer?Milyen aritmetikai utasításokat ismer?Mit csinál az IDIV utasítás?Mit csinál az CWD utasítás?Miért hibás az

imul [di+bx]utasítás?

Milyen paraméter átadási módszereket ismer?Hogy alakíthatunk ki lokális adat területet?Mi a rekurzív és a re-entrant eljárás?

Page 52: Alapvető digitális logikai áramkörök

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

Feladatok

Alakítsa át a skalárszorzat kiszámításának négy változatát, hogy előjeles/előjel nélküli bájt/word vektor elemeit összegezze (számítson arra, hogy az eredmény nem fér el egy bájton/word-ön)!

Készítsen eljárást 2 jegyű előjeles/előjel nélküli szám decimálissá konvertálására és kiírására!

Készítsen eljárást előjeles/előjel nélküli word decimálissá konvertálására és kiírására!

Készítsen rekurzív eljárást n! kiszámítására!

Készítsen rekurzív eljárást a és b legnagyobb közös osztójának meghatározására (euklideszi algoritmus)!