; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word

83
Máté: Architektú rák 4. előadás 1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL – ben. mov cl, n ; a ciklus előkészítése xor ch, ch mov al, 1 ; lehetne: mov ax, 1 xor ah, ah ; akkor ez nem kell JCXZ kesz ; ha n=0, akkor 0-szor ; fut a ciklus mag c_mag: mul A ; ciklus mag LOOP c_mag ; ismétlés, ha kell kesz: mov B, ax

description

; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n ; a ciklus előkészítése xorch, ch moval, 1; lehetne:mov ax, 1 xorah, ah; akkor ez nem kell JCXZkesz; ha n=0, akkor 0-szor - PowerPoint PPT Presentation

Transcript of ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word

Page 1: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

; B = A n-dik hatványa,

; A és n előjel nélküli byte, B word

; Feltétel: A n-1 –dik hatványa elfér AL –ben.

mov cl, n ; a ciklus előkészítése

xor ch, ch

mov al, 1 ; lehetne: mov ax, 1

xor ah, ah ; akkor ez nem kell

JCXZ kesz ; ha n=0, akkor 0-szor

; fut a ciklus mag

c_mag: mul A ; ciklus mag

LOOP c_mag ; ismétlés, ha kell

kesz: mov B, ax

Page 2: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

; 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

; A

Page 3: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 4: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 5: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 6: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 7: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 8: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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; D

Page 9: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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

; Az A-tól C-ig tartó program rész:

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 10: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 BX

; CRET ; 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 11: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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.

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

Page 12: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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

push bx ; mentések

push cx

push dx

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 13: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 14: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

; 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 15: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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

call skal

Hatására a verembe került a visszatérési cím

Page 16: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 17: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 PUSH BP ; BP értékét mentenünk kell

+ 2 cx MOV BP,SP ; BP SP, + 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 18: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

+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 . . .

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 dx,dx ; az eredmény ideiglenes helyejcxz kesz ; ugrás a kesz címkére, ha n=0xor bx,bx ; bx 0, indexezéshez

Page 19: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 20: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 21: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

C konvencióHogy egy eljárás különböző számú paraméterrel legyen hívható, azt úgy lehet elérni, hogy a paramétereket fordított sorrendben tesszük a verembe, mert ilyenkor a visszatérési cím alatt lesz az első, alatta a második, stb. paraméter, és általában a korábbi paraméterek döntik el, hogy hogyan folytatódik a paramétersor.

f(x,y); push y

push x

call f

Page 22: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 byte-os munkaterület lefoglalása. . . ; további regiszter mentések

Page 23: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 24: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 25: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 26: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

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 27: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Gyorsító tár (cache – 2.16. ábra)A processzorok mindig gyorsabbak a memóriáknál. A CPU lapkára integrálható memória gyors, de kicsi.Feloldási lehetőség: a központi memória egy kis részét

(gyorsító tár) a CPU lapkára helyezni: Amikor egy utasításnak adatra van szüksége, akkor először itt keresi, ha nincs itt, akkor a központi memóriában.

Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz (ciklus, mátrix manipulálás, …).

Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor - cache line) kerül beolvasásra a memóriából a gyorsító tárba.

Page 28: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsító tárból.

Hiba arány: 1-h.Ha a gyorsító tár elérési ideje: c,

a memória elérési ideje: m, akkor azátlagos elérési idő = c + (1- h) m.

A gyorsító tár mérete: nagyobb tár – drágább.A gyorsító sor mérete: nagyobb sor – nagyobb a sor

betöltési ideje is. Ugyanakkora tárban kevesebb gyorsító sor fér el.

Page 29: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Osztott (külön utasítás és adat) gyorsító tár előnyei: • Egyik szállítószalag végzi az utasítás,

másik az operandus előolvasást. • Az utasítás gyorsító tárat sohasem kell visszaírni

(az utasítások nem módosulnak).Egyesített gyorsító tár: nem lehetséges

párhuzamosítás.

Hierarchia:• elsődleges, a CPU lapkán,• másodlagos, a CPU-val egy tokban,• külön tokban.

Page 30: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Direkt leképezésű gyorsító tár működése: (4_38_abrahoz) Bitek: 16 11 3 2

32 bites cím: TAG Vonal (Line) SZÓ BÁJT

Entry V TAG Data (32 bájt)2047

… …

10

Ha a gyorsító tár Vonal által mutatott sorában V=1 (valid), és a TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a sorban).

Page 31: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Halmazkezelésű (csoportasszociatív) gyorsító tár

Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort.

Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsító tárról beszélünk.

Ritka a több, mint 4 utas kezelés.

LRU (Least Recently Used) algoritmus: gyorsító sor betöltése előtt a legrégebben használt bejegyzés kerül ki a gyorsító tárból.

Page 32: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Halmaz kezelésű gyorsító tár (4.39. ábra)

Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében V=1 (valid), és a hozzá tartozó TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben).

Entry V Tag Data V Tag Data V Tag Data V Tag Data2k-1

10

A bejegyzés

B bejegyzés

C bejegyzés

D bejegyzés

Page 33: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Memóriába írásStratégiák:Írás áteresztés (write through): az írás a memóriába

történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort.

Késleltetett írás (write deferred, write back): ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél.

Ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén.

Page 34: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Memória hierarchia (2.18. ábra)

Elérési idő:

néhány nanosec

>100 msec

Kapacitás:

néhány bájt

néhány száz GB

regiszterek

Gyorsító tár

Központi memória

Mágneslemez

Szalag Optikai lemez

Page 35: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

CPU (Central Processing Unit)

Általában egyetlen lapkán van. Lábakon keresztül kommunikál a többi egységgel (3.34. ábra).

címzés adat

sínvezérlésmegszakítások

sínütemezés/kiosztássegédprocesszorállapotvegyes

Φ +5V földelés

órajel tápfeszültség

CPU

Page 36: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Lábak (pins) három típusa: cím, adat, vezérlés. Ezek párhuzamos vezetékeken, az un. sínen keresztül kapcsolódnak a memória, az I/O egységek hasonló lábaihoz.

címzés adat

sínvezérlésmegszakítások

sínütemezés/kiosztás

segédprocesszorállapotvegyes

Φ +5V

CPU

Page 37: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Lényeges a cím- és adatlábak száma (3.34. ábra):

• Ha m címláb van, akkor 2m memóriarekesz érhető el (tipikus m = 16, 20, 32, 64).

• Ha n adatláb van, akkor egyszerre n bit olvasható illetve írható (tipikus n = 8, 16, 32, 36, 64).

címzés adat

sínvezérlésmegszakítások

sínütemezés/kiosztás

segédprocesszorállapotvegyes

Φ +5V

CPU

Page 38: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Óra, áram (3.3 v. 5V), föld, továbbá vezérlőlábak: • sín vezérlés (bus control): mit csináljon a sín, • megszakítások, • sín kiosztás (ütemezés, egyeztetés – bus arbitration):

kinek dolgozzon a sín, • segéd processzor vezérlése, jelzései, • állapot, • egyebek.

címzés adat

sínvezérlésmegszakítások

sínütemezés/kiosztás

segédprocesszorállapotvegyes

Φ +5V

CPU

Page 39: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Pl. utasítás betöltése: • A CPU kéri a sín használat jogát,• Az utasítás címét a cím lábakra teszi, • vezérlő vonalon informálja a memóriát, hogy olvasni

szeretne, • a memória a kért szót az adat vonalakra teszi, kész jelzést

tesz egy vezérlő vonalra, • a CPU végrehajtáshoz átveszi az utasítást.

címzés adat

sínvezérlésmegszakítások

sínütemezés/kiosztás

segédprocesszorállapotvegyes

Φ +5V

CPU

Page 40: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sín (bus): Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább kettő van: egy belső és egy külső (I/O), 3.35. ábra.

sínvezérlő memória

lemez modem nyomtató

memória-sín

B/K sín

CPU lapka

regiszterek

Lapkán belüli sínek

ALU

Page 41: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sínprotokoll: a sín működésének + a csatlakozások mechanikai, elektronikus definíciója

Mesterek (masters): aktív (kezdeményező) berendezések (CPU, lemez vezérlő).

Szolgák (slaves): passzív (végrehajtó) berendezések (lemez vezérlő, CPU), 3.35. ábra.

Ez a szereposztás tranzakciónként eltérő lehet.

Mester Szolga példa

CPU Segéd proc. CPU felkínálja az utasítást

Segéd proc. CPU Segéd proc. kéri az operandusokat

A memória sohasem lehet mester!

Page 42: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

A sínhez kapcsolódó lapkák lényegében erősítők.Mester – sín vezérlő (bus driver) – sín. Sín – sín vevő (bus receiver) – szolga.Mester–szolgáknál: sín adó-vevő (bus transceiver).

A csatlakozás gyakran tri-state device vagy open collector – wired-OR segítségével történik.

Sávszélesség: (továbbítható bitek száma) / sec.Sávszélesség növelése:

Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás. Sínszélesség: szélesebb sín drágább, kompatibilitás.

Page 43: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sínszélesség (pl. IBM PC: 3.37., 3.51. ábra).

8086

20 bites cím

vezérlés 80286 4 bites 80386

8 bites

3.37. ábra. A cím szélességének növekedése az elmúlt időszakban

Page 44: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

3.51. ábra. A PC/AT sín két komponense, az eredeti PC és az új rész

Page 45: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Alaplap (motherboard, parentboard, 3.51. ábra)

Rajta van a CPU, sín(ek), ezen illesztő helyek (slots) a memória és a beviteli/kiviteli (Input/Output – I/O) eszközök számára (3.51., 2.28. ábra).

I/O eszköz: maga az eszköz + vezérlő (controller) külön kártyán vagy az alaplapon (2.29. ábra).

Gyorsabb CPU gyorsabb sínt igényel!

Kívánság: PC cseréjénél megmaradhasson a régi perifériák egy része: az új gépben is kell a régi sín!

Sínek szabványosítása.

Egy gépen belül több sín is használható: 2.30. ábra.

Page 46: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

2.30. ábra. Egy tipikus modern PC PCI, SCSI és ISA sínnel

Hálózati vezérlő

SCSI sín

Memóriasín

SCSI-szkenner

SCSI-lemez

SCSI-vezérlő

Video vezérlő

PCI-hídCPU

Gyorsító tárKözponti memória

Nyomtató vezérlőHangkártya ISA-híd Modem

PCI sín

ISA sín

Page 47: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sokszorozott (multiplexed) sín: pl. először a cím van a sínen, majd az adat (ugyanazokon a vezetékeken). Ilyenkor a sín szélesség lényegesen csökken (olcsóbb, kevesebb láb szükséges a sínhez való csatlakozáshoz), csökken a sáv szélesség is, de nem olyan mértékben. Általában bonyolultabb a sín protokoll.

Page 48: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sínek időzítése

Szinkron sín: 5 – 100 MHz-es órajel van a sín egy vezetékén. Minden síntevékenység az órajelhez van igazítva.

Síntevékenységek: cím megadása, vezérlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.38. ábra)

Jelölés Tevékenység min max idő

TAD Cím megérkezési ideje a sínre 11 ns

TML Cím a sínen van MREC# előtt 6 ns

… … … … …

Page 49: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

adat

A kiolvasandó rekesz címe

TAD

TML

T1 T2 T3

Olvasási ciklus 1 várakozó állapottal

A memóriából történő olvasás ideje

Φ

cím

adat

MREQ#

RD#

WAIT#

Kicsit hosszabb válasz idő esetén még egy várakozó ciklusra lenne szükség.

Page 50: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Minden sínművelet a ciklusidő (sín ciklus) egész számú többszöröséig tart: pl. 2.1 ciklusidő helyett 3 ciklusidő kell.

A leglassabb eszközhöz kell a sín sebességét igazítani, a gyors eszköz is lassan fog működni.

Page 51: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Aszinkron sín: Minden eseményt egy előző esemény okoz! Nincs órajel, WAIT.

MSYN# (kérés - Master SYNchronization), SSYN# (kész - Slave SYNchronization).

Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

Page 52: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Aszinkron sín működése (3.39. ábra)Akkor indulhat újabb tranzakció, ha SSYN# negált.

adat

A kiolvasandó rekesz címecím

MREQ#

RD#

MSYN#

adat

SSYN#

Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

Page 53: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Teljes kézfogás (full handshake):

Akkor indulhat, ha SSYN# negált!

• Mester: kívánságok beállítása, majd MSYN#, vár,

• Szolga: látja MSYN#-t: dolgozik, majd SSYN#, vár,

• Mester: látja SSYN# -t (kész), dolgozik, ha kell, majd negálja MSYN# -t,

• Szolga: látja MSYN# negálását, negálja SSYN# -t.

Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

Page 54: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sínütemezés (kiosztás)

Ha egyszerre többen is igénylik a sínt (CPU, I/O vezérlő), akkor a sínütemező (bus arbiter) dönt.

Általában I/O elsőbbséget kap (cikluslopás).

Page 55: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sínütemezés (kiosztás – bus arbitration) • Centralizált (3.40. (a) ábra): (margaréta) láncolás

(daisy chaining), egy vagy többszintű lehet.

Ha van kérés és a sín szabad: sín foglalási engedély.

Page 56: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Néha további vezeték van az engedély fogadásának jelzésére (újabb sín kérés kezdődhet a sín használata közben).

Page 57: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

• decentralizált

- pl. 16 prioritású: 16 eszközhöz 16 kérés vonal, minden eszköz minden kérés vonalat figyel, tudja, hogy a saját kérése volt-e a legmagasabb prioritású.

- 3.41. ábra: ha nem foglalt és be, akkor kérheti a sínt (ki negálása, foglalt beállítása).

Page 58: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Sín műveletek

Az eddigiek közönséges sín műveletek voltak.

Blokkos átvitel (3.42. ábra): A kezdő memória címen kívül az adat sínre kell tenni a mozgatandó adatok számát. Esetleges várakozó ciklusok után ciklusonként egy adat mozgatása történik.

Megszakítás kezelés: később tárgyaljuk részletesen.

Több processzoros rendszerekben: olvasás – módosítás – visszaírás ciklus: szemafor.

Page 59: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Példák sínekreAz első IBM PC (3.37. ábra) 62 vonalas (vezeték,

line), 20 címnek, 8 adatnak + DMA, megszakítás …PC/AT szinkron sín (3.51. ábra): további 36 vezeték

(címnek összesen 24, adatnak 16, … ). Microchannel (IBM OS/2 gépekhez), szabadalmakISA (Industry Standard Architecture) lényegében

8.33 MHz-es PC/AT sín (sávszélesség: 16.7 MB/s).EISA (Extended ISA) 32 bitesre bővített ISA

(sávszélesség: 33.3 MB/s).Színes TV-hez 135 MB/s sávszélesség kellene

(1024*768 pixel, 3 bájt*2, 30 kép/sec).lemez memória képernyő

Page 60: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések.

Új változatai: 64 bites adat, 66 MHz, 528 MB/s.

Problémák: • a memóriához lassú,• nem kompatíbilis az ISA bővítőkártyákkal.

Megoldás (3.52. vagy 2.30. ábra): több sín Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.

Page 61: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

PCI sín ütemezés (kiosztás): request, grant.

PCI ütemező

PCI eszköz

RE

Q#

GN

T#

PCI eszköz

RE

Q#

GN

T#

PCI eszköz

RE

Q#

GN

T#

PCI eszköz

RE

Q#

GN

T#

3.54. ábra. A PCI sín centrális ütemezőt használ.

Page 62: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Általános soros sín (USB)

Igény: bármikor könnyen lehessen perifériát kapcsolni a géphez, ne kelljen szétszedni a gépet, újra boot-olni, ne kelljen áramellátásról gondoskodni, … Plug ’n Play (csatlakoztasd és működik) perifériák.Sokféle perifériát lehessen azonos módon csatlakoztatni, akár a gép működése közben, hardver ismeretek nélkül.

Page 63: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

USB (Universal Serial Bus - általános soros sín): Négy vezeték: adatok (2), tápfeszültség (1), föld (1).

USB 1.0 1,5 Mbps (billentyűzet, egér,…)

USB 1.1 12 Mbps (nyomtató, fényképezőgép,…)

USB 2.0 480 Mbps (DVD lejátszó,…)

A központi elosztó (root hub) 1 ms-onként üzenetekkel (frame, 3.54. ábra) kommunikál az eszközökkel.

A frissen csatlakoztatott eszköz címe 0. Ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja).

Page 64: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Frame – keret

Egy vagy több csomagból áll.

Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat.

Az első csomag mindig SOF: Start Of Frame – keret kezdet, szinkronizálja az eszközöket.

Page 65: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

A keret lehet• Control – vezérlő:

Eszköz konfigurálás,Parancs,Állapot lekérdezés.

• Isochronous – izoszinkron: valós idejű eszközök használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet.

• Bulk – csoportos: nagy tömegű adat átvitelére szolgál.• Interrupt – megszakítás: Az USB nem támogatja a

megszakítást, helyette pl. 50 ms-enként lekérdezhető az eszköz állapota.

Page 66: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

A csomag lehet

• Token – parancs (központ küldi az eszköznek):SOF.IN – be: adatokat kér az eszköztől.

Az IN parancsban meg lehet adni, melyik eszköztől milyen adatokra van szükség.

OUT – ki: adatok fogadására kéri az eszközt.SETUP – beállítás: konfigurálja az eszközt.

Page 67: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

A csomag lehet (folytatás)

• Data – adat: 64 bájt információ mozgatása akármelyik irányban. A Data csomag részei:

SYN: 8 bit szinkronizáció, PID: a csomag típusa (8 bites), PAYLOAD: hasznos adat, CRC: Cyclic Redundancy Code – ciklikus redundancia

kód (16 bit az adatátvitel helyességének ellenőrzésére).• Handshake – kézfogás:

ACK: az előző adatcsomagot hibátlanul vettem, NAK: CRC hibát észleltem, STALL: kérem, várjon, el vagyok foglalva.

• Special – speciális.

Page 68: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

3.52. ábra. Egy korai Pentium rendszer architektúrája

SCSI USB Grafikus illesztő

PCI-híd

CPU

Gyorsító tárFő

memória

NyomtatóHangkártya

ISA-híd

Monitor

PCI sín

Memória sín

ISA sín

Másodlagos gyorsító tár

Egér Billentyűzet

Monitor

Szabad PCI bővítő hely

Szabad ISA bővítő helyek

Gyorsító tár sín

IDE diszk

Page 69: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

3.53. ábra. Egy modern Pentium 4 rendszer sín struktúrája

PCI sín

Pentium 4 CPU

I DCsatolólapka

Főmemória

Grafikuskártya

Monitor

ATAPI vezérlőUSB 2SCSI

Egér Billen-tyűzet

Mágneslemez-egység

DVD-meghajtó

Memóriasín

AGP sín

Lokális sín

1. szintű gyorsítótárak

2. szintű gyorsítótár

Szabad bővítőhely

Page 70: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

3.57. ábra. Egy tipikus PCI Express rendszer vázlata

2. szintű gyorsítótár

CPUCsatoló lapka

Memória

Kapcsoló

GrafikaMágnes-lemezek Hálózat USB 2 Egyéb

Soros kapcsolatot biztosító

csatorna párok

Egy csatorna csak két vezeték

PCI Express

Page 71: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Hagyományos sín PCI Express

Több leágazású sín Központosított kapcsoló

Széles, párhuzamos sín Keskeny, közvetlen soros kapcsolat

Bonyolult mester – szolga kapcsolat Kicsi, csomagkapcsolt hálózat

CRC kód: nagyobb megbízhatóság

A csatlakozó kábel > 50 cm lehet

Az eszköz kapcsoló is lehet

Meleg csatlakoztatási lehetőség

Kisebb csatlakozók: kisebb gép

• Nem kell nagy bővítőkártyával csatlakozni a sínhez• A winchester a monitorba is kerülhet

Egy csatorna hasznos sávszélessége minimum 2 Gbps, de bíznak benne, hogy hamarosan 10 Gbps

Page 72: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

3.58. ábra. A PCI Express protokollrendszer A csomagok formátuma

Fejléc cím, magas/alacsony prioritás, …Seq# az üzenet sorszámaCRC ciklikus redundanciakód (Cyclic Redundancy Check)

Ha a számított és kapott CRC megegyezik, akkor nyugtázza, különben újra kéri az adatot.

Rétegek

Szoftver

Tranzakciós Fejléc Hasznos adat

Kapcsolati Seq# Fejléc Hasznos adat CRC

Fizikai Keret Seq# Fejléc Hasznos adat CRC Keret

Page 73: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Feladatok

Milyen paraméter átadási módszereket ismer?

Alakítsa át a skalárszorzat kiszámításának változatait, 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!

Page 74: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Feladatok

Eljárás hívás esetén mit jelent a C konvenció?

Hogy történik a paraméter átadás C függvények esetén?

Mi a lokális adat terület?

Hogy alakíthatunk ki lokális adat területet?

Mi a rekurzív, és mi a re-entrant eljárás?

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)!

Page 75: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokHol helyezkedhet el a gyorsítótár?Mi a lokalitási elv?Mit nevezünk találati aránynak?Mi a szerepe a találati aránynak?Mi a hiba arány?Hogy határozható meg az átlagos keresési idő?Mi a gyorsító sor?Mit nevezünk osztott gyorsítótárnak?Mit nevezünk egyesített gyorsítótárnak?Mik az osztott gyorsító tár előnyei?

Page 76: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMit tartalmaz a direkt leképezésű gyorsító tár egy

bejegyzése?Mi a TAG?Mire szolgál a valid (érvényes) jelzés?Hogy működik a direkt leképezésű gyorsító tár?Egy memória cella hány helyen lehet egy direkt

leképezésű gyorsító tárban?Hogy dönthető el, hogy egy memória cella bent van-e

egy direkt leképezésű gyorsító tárban?Milyen esetben nem hatékony egy direkt leképezésű

gyorsító tár?

Page 77: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMilyen 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?Mit nevezünk írás áteresztésnek (write through)?Mit nevezünk késleltetett írásnak (write deferred,

write back)?Mit nevezünk írás allokálásnak (write allocation)?

Page 78: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMit jelent a CPU rövidítés?Hogy tartja a kapcsolatot a CPU a környezetével?Milyen lábai vannak egy CPU-nak?Miért lényeges a cím és adat lábak száma?Hány cím adható meg k cím vezetéken?Mit nevezünk sínnek?Mit nevezünk sín vezérlésnek? Mit nevezünk sín ütemezésnek? Hogyan történik egy adat beolvasása a memóriából?Hogyan történik egy adat kiírása a memóriába?

Page 79: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Feladatok

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 növelhető egy sín sávszélessége?

Miért nem növelhető szabadon a sín sávszélessége?

Miért volt szükség a sínek szabványosítására?

Mit jelent a sokszorozott (multiplexed) sín?

Page 80: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

Feladatok

Milyen hatása van a sokszorozott sín használatának?

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?

Page 81: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMilyen 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?Miért volt fontos az ISA sín megtartása fejlettebb sín

alkalmazása esetén?Hogy történik a PCI sín ütemezése?Miért használnak külön sínt a memória eléréséhez?Hogy illeszkedik a PCI sín a memória sínhez?

Page 82: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMilyen igények kielégítésére szolgál az általános

soros sín (USB)? 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? Mit jelent egy eszköz konfigurálása?Mi a keret (frame), és milyen kereteket ismer?Mi a csomag, és milyen csomagokat ismer?Milyen irányban haladhatnak a csomagok?

Page 83: ; B = A n-dik hatványa,  ; A és n előjel nélküli byte, B word

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

FeladatokMire szolgál a SOF csomag?Mire szolgál az IN/OUT csomag?Mire szolgál az ACK/NAK csomag?Mi a CRC? 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?