69
Máté: Architektú rák 4. előadás 1 Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás: CALL op ; eljárás hívás - közeli: push IP, IP op, - távoli: push CS, push IP, (CS:IP) op. Visszatérés az eljárásból: RET ; visszatérés a hívó programhoz (RETurn) - közeli: pop IP, - távoli: pop IP, pop CS. RET op ; . . . , SP SP+op ; op csak közvetlen adat lehet!

Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

  • Upload
    ismael

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás: CALLop; eljárás hívás - közeli: push IP, IP  op, - távoli: push CS, push IP, (CS:IP)  op. Visszatérés az eljárásból: RET; visszatérés a hívó programhoz (RETurn) - PowerPoint PPT Presentation

Citation preview

Page 1: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Vezérlés átadó utasítások

Eljárásokkal kapcsolatos utasítások

Eljárás hívás:

CALL op ; eljárás hívás

- közeli: push IP, IP op,

- távoli: push CS, push IP, (CS:IP) op.

Visszatérés az eljárásból:

RET ; visszatérés a hívó programhoz (RETurn)

- közeli: pop IP,

- távoli: pop IP, pop CS.

RET op ; . . . , SP SP+op

; op csak közvetlen adat lehet!

Page 2: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feltétlen vezérlés átadás (ugrás)

JMP op ; ha op közeli: IP op,

; ha távoli: (CS:IP) op.

Page 3: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feltételes ugrások, aritmetikai csoport

Előjeles Reláció Előjel nélküli

JZ ≡ JE = JZ ≡ JE

JNZ ≡ JNE ≠ JNZ ≡ JNE

JG ≡ JNLE > JA ≡ JNBE

JGE ≡ JNL ≥ JAE ≡ JNB ≡ JNC

JL ≡ JNGE < JB ≡ JNAE ≡ JC

JLE ≡ JNG ≤ JBE ≡ JNA

A feltételek: Zero, Equal, No (Not), Greater, Less, Above, Below, Carry

Page 4: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

A feltételek: Zero, Equal, No (Not), Carry, Sign, Overflow, Parity Even, Parity Odd.

Feltételes ugrások, logikai csoport

a flag igaz (1) flag a flag hamis (0)

JZ ≡ JE Zero JNZ ≡ JNE

JC Carry JNC

JS Sign JNS

JO Overflow JNO

LP ≡ JPE Parity JNP ≡ JPO

JCXZ CX = 0

Page 5: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Minden feltételes vezérlés átadás IP relatív címzéssel (SHORT) valósul meg!

Pl.:

JZ MESSZE ; Hibás, ha

; MESSZE messze van

Megoldás:

JNZ IDE ; Negált feltételű ugrás

JMP MESSZE

IDE: . . .

Page 6: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Ciklus szervező utasítások

IP relatív címzéssel (SHORT) valósulnak meg.

LOOP ipr ; CX CX – 1, ugrás ipr -re,

; ha CX 0

LOOPZ ipr ; CX CX – 1, ugrás ipr -re,

; ha (CX 0 és Z=1)

LOOPE ipr ; ugyanaz mint LOOPZ

LOOPNZ ipr ; CX CX – 1, ugrás ipr -re,

; ha (CX 0 és Z=0)

LOOPNE ipr ; ugyanaz mint LOOPNZ

Page 7: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

; 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 8: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme?

mov cx, 100mov di, -1 ; előbb lehessen inc, mint cmpmov al, 3

NEXT: inc dicmp array[di], al ; array di-edik eleme = 3?LOOPE NEXT ; ugrás NEXT-re,

; ha CX0 és a di-edik elem=3JNE NEM3 ; CX = 0 vagy array[di] 3. . . ; array 3. . .

NEM3: . . . ; di az első 3-tól különböző . . . ; elem indexe

Page 9: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

String kezelő utasításokAz s forrás területet (DS:SI),

a d cél területet pedig (ES:DI) címzi. Az utasítás végződése (B / W) vagy az operandus

jelzi, hogy bájtos vagy szavas a művelet.A címzésben résztvevő indexregiszterek értéke

1-gyel módosul bájtos, 2-vel szavas művelet esetén.

Ha a D (Direction) flag értéke 0, akkor az indexregiszterek értéke növekszik, 1, akkor csökken.

CLD ; D 0STD ; D 1

Page 10: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Az alábbi utasítások – mint általában az adat mozgató utasítások –

érintetlenül hagyják a flag-eket

Átvitel az (ES:DI) által mutatott címre a (DS:SI) által mutatott címről:

MOVSB ; MOVe String Byte

MOVSW ; MOVe String Word

MOVS d,s ; MOVe String (byte vagy word)

d és s csak azt mondja meg, hogy bájtos vagy szavas az átvitel!

Page 11: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Betöltés AL-be illetve AX-be a (DS:SI) által mutatott

címről (csak SI módosul):

LODSB ; LOaD String Byte

LODSW ; LOaD String Word

LODS s ; LOaD String (byte vagy word)

Tárolás az (ES:DI) által mutatott címre AL-ből illetve

AX-ből (csak DI módosul):

STOSB ; STOre String Byte

STOSW ; STOre String Word

STOS d ; STOre String (byte vagy word)

Page 12: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Az alábbi utasítások beállítják a flag-eket

Az (ES:DI) és a (DS:SI) által mutatott címen lévő byte illetve szó összehasonlítása, a flag-ek s – d (!!!) értékének megfelelően állnak be.CMPSB ; CoMPare String ByteCMPSW ; CoMPare String WordCMPS d,s ; CoMPare String (byte vagy word)

Az (ES:DI) által mutatott címen lévő byte (word) összehasonlítása AL-lel (AX-szel), a flag-ek AL – d (AX – d) értékének megfelelően állnak be.SCASB ; SCAn String ByteSCASW ; SCAn String WordSCAS d ; SCAn String (byte vagy word)

Page 13: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Ismétlő prefixumokREP REPZ REPE és REPNZ REPNE

A Z, E, NZ és NE végződésnek hasonló szerepe van, mint a LOOP utasítás esetén.

Ismétlő prefixum használata esetén a string kezelő utasítás CX-szer kerül(het) végrehajtásra:

• ha CX = 0, akkor egyszer sem(!!!), • különben minden végrehajtást követően 1-gyel

csökken a CX regiszter tartalma. Amennyiben CX csökkentett értéke 0, akkor nem történik további ismétlés.

A flag beállító string kezelő utasítás ismétlésének további feltétele, hogy a flag állapota megegyezzen a prefixum végződésében előírttal.

Page 14: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Ismétlő prefixumokREP REPZ REPE és REPNZ

REPNE

A program jobb olvashatósága érdekében

• flag-et nem állító utasítások előtt mindig REP-et használjunk,

• flag-et beállító utasítás előtt pedig sohase REP-et, hanem helyette a vele egyenértékű REPE-t vagy REPZ-t!

Page 15: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

A LOOP utasítás ismertetésénél bemutatott feladat megoldása string kezelő utasítás segítségével :

; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme?

mov cx,100mov di,offset arrayMOV AL,3

REPE SCAS array ; array 0., 1., ... eleme = 3?JNE NEM3. . . ; array 3,. . .

NEM3: DEC DI ; DI az első 3 elemre mutat

. . .

Page 16: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Megjegyzések:

- A mostani megoldás használja az ES szegmens regisztert, és feltételeztük, hogy a tartalma jó.

- A két megoldás közötti eltérés nem minden pontban lényeges, pl. az első változat úgy is elkészíthető lett volna, hogy ott is

mov di,offset array

szerepeljen, de a mostani megoldásnál ez az utasítás kötelező!

- A mostani megoldás lényegesen gyorsabb végrehajtást biztosít, mint a korábbi.

Page 17: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeték

(pipelining).Kezdetben:

Utasítás beolvasás Utasítás végrehajtás

Minden fázist külön hardver hajt végre (2.4. ábra), ezek párhuzamosan működhetnek (szerelő csarnok).

utasítás beolvasó egység

utasítás dekódoló egység

operandus beolvasó egység

utasítás végrehajtó

egység

eredményvisszaíró egység

S1 S2 S3 S4 S5

Page 18: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

• Késleltetés (latency): mennyi ideig tart egy utasítás.

• Áteresztőképesség (processor bandwidth): hány MIPS (Million Instruction Per Second) a sebesség.

A végrehajtás alatt lévő utasítás sorszámaS1: 1 2 3 4 5 6 7 8 9S2: 1 2 3 4 5 6 7 8S3: 1 2 3 4 5 6 7 …S4: 1 2 3 4 5 6S5: 1 2 3 4 5idő 1 2 3 4 5 6 7 8 9 …

Page 19: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Több szállítószalagos CPU

Két szállítószalag (2.5. ábra):• Két ALU, de közös regiszterek, • A két szállítószalag lehet különböző is (Pentium):

fő – ez többet tud, elsőbbséget élvez – és mellékBonyolult szabályok a párhuzamos végrehajthatóságra

(fordítók vagy hardver).

S1 S2 S3 S4 S5

utasítás beolvasó egység

utasítás dekódoló egység

operandus beolvasó egység

utasítás végrehajtó

egység

eredményvisszaíró egység

utasítás dekódoló egység

operandus beolvasó egység

utasítás végrehajtó

egység

eredményvisszaíró egység

Page 20: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Szuperskaláris processzor 5 funkcionális egységgel:

S1 S2 S3 S5

utasítás beolvasó egység

utasítás dekódoló egység

operandus beolvasó egység

ALU

eredményvisszaíró egység

S4

ALU

LOAD

STORE

lebegő-pontos

egység 2.6. ábra

Page 21: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Processzor szintű párhuzamosítás

• Tömb (array) processzor (2.7. ábra)

Vezérlő egység

Teríti az utasításokat

processzor

memória

8*8-as processzor/memória rács

sok azonos processzor (ILLIAC IV: (4*)8*8), mindnek saját memóriája. Vezérlő processzor adja ki a feladatot. Mindegyik processzor ugyanazt csinálja, de a saját adatain.

Már nem divatos (drága, nehéz kihasználni).

Page 22: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

• Vektor processzorok

Vektor regisztereket használnak.

A vektor regiszter több hagyományos regiszterből áll. Gyors szállítószalag gondoskodik a regiszterek feltöltéséről, szintén gyors szállítószalag továbbítja a regiszterek tartamát az aritmetikai egységbe, pl. a vektor regiszterek összeadásához. Az eredmények szintén vektor regiszterbe kerülnek.

Jól kombinálhatók hagyományos processzorokkal.

Page 23: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

• Multiprocesszorok

CPU CPU CPU…

közös memória

A közös memória megkönnyíti a feladat megosztását. • Csak közös memória. Nagyon terheli a memória sínt.

• Lokális memória is van.

Sok (>64) processzoros rendszert nehéz építeni a közös memória miatt.

CPU CPU CPU…

közös memória

helyi memóriák

Page 24: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

• Multiszámítógépek: Nincs közös memória:A CPU-k üzenetekkel kommunikálnak egymással.Néhány μs üzenet idő.

2-3 dimenziós hálók, fák, gyűrűk.

Közel 10 000-es rendszer is van.

Page 25: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Gyorsító tár (cache – 2.16. ábra)A processzorok mindig gyorsabbak a memóriáknál. 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 - cashe line) kerül beolvasásra a memóriából a gyorsító tárba.

Page 26: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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.

Page 27: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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

Közös gyorsító tár: párhuzamosítás nem lehetséges.

Hierarchia:

• elsődleges, a CPU lapkán,

• másodlagos, a CPU-val egy tokban,

• külön tokban.

Page 28: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 Data2047

… …

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 29: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Halmaz kezelésű 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 30: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 31: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 32: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 33: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

CPU (Central Processing Unit)

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

címzés adat

sín vezérlésmegszakítások

sín kiosztássegéd processzorállapotsegéd információk

Φ +5V földelés

órajel tápfeszültség

CPU

Page 34: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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ín vezérlésmegszakítások

sín kiosztássegéd processzorállapotsegéd információk

Φ +5V

CPU

Page 35: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Lényeges a cím- és adatlábak száma (3.33. á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ín vezérlésmegszakítások

sín kiosztássegéd processzorállapotsegéd információk

Φ +5V

CPU

Page 36: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Ó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ín vezérlésmegszakítások

sín kiosztássegéd processzorállapotsegéd információk

Φ +5V

CPU

Page 37: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Pl. utasítás betöltése: • A CPU kéri a sín haszá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ín vezérlésmegszakítások

sín kiosztássegéd processzorállapotsegéd információk

Φ +5V

CPU

Page 38: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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.34. ábra.

sínvezérlő memória

lemez modem nyomtató

memória-sín

B/K sín

CPU lapka

regiszterek

Lapkán belüli sinek

ALU

Page 39: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 40: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 tranceiver).

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 41: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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

8088

20 bites cím

vezérlés 80288 4 bites 80388

8 bites

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

Page 42: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Sokszorozott (multiplexed) sín: pl. először a cím van a sínen (ugyanazokon a vezetékeken), majd az adat. 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, és általában bonyolultabb a sín protokoll is.

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 43: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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

SCSI-szkenner

SCSI-lemez

SCSI-vezérlő

Video vezérlő

Hálózati vezérlő

PCI-híd

CPU

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

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

PCI sín

SCSI sín

Memória sín

ISA sín

Page 44: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Alaplap (motherboard, parentboard, 3.49. á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 (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).

Page 45: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Page 46: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Sínek időzítése

Szinkron sín: a sín egy vezetékén lévő 5 – 100 MHz-es órajel vezérel. 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.37. á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 47: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

adat

A kiolvasandó rekesz címe

TAD

TML

T1 T2 T3

Olvasási ciklus 1 várakozó állapottal

Minimális válasz idő

Φ

cím

adat

MREQ#

RD#

WAIT#

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

Page 48: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 49: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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

Akkor indulhat újabb tranzakció, ha SSYN# negált.

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

Page 50: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Aszinkron sín működése (3.38. ábra)

A kiolvasandó rekesz címe

adat

cím

MREQ#

RD#

MSYN#

adat

SSYN#

Page 51: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 52: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 53: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Sín ütemezés (kiosztás – bus arbitration) • Centralizált (3.39. á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.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).

ütemező

1 2 3 4 5

Sín foglalás kérés

Sín foglalás engedélyezés

Csak akkor engedi tovább a jelet, ha nem kérte a sínt

Page 54: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

• 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.40. ábra: ha nem foglalt és be, akkor lefoglalhatja a sínt (ki negálása, foglalt beállítása).

1 2 3 4 5

Sín foglalás kérés

Ütemezési vonal

Foglalt

Page 55: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Sín műveletek

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

Blokkos átvitel (3.41. á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 56: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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

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

(24 címnek, 16 adatnak, … ). ISA (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 57: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 132 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.50. vagy 2.30. ábra): Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.

Page 58: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

3.50. ábra. Egy tipikus Pentium II 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 59: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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.51. ábra. A PCI sín centrális ütemezőt használ.

Page 60: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Általános soros sín (USB)Igény: bármikor könnyen lehessen perifériát

kapcsolni a géphez, ne kelljen újra boot-olni, ne kelljen áramellátásról gondoskodni, … Plug ‘n Play perifériák.

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

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 61: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 62: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

A keret lehet• Control – vezérlő:

Eszköz konfigurálás,Paracs,Á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 63: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 64: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

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 65: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feladatok

Hova helyezi el a visszatérési címet a CALL utasítás?

Honnan „tudja” a RET utasítás, hogy közeli vagy távoli ugrással kell visszatérni az eljárásból?

Mi a közös jellemzője a feltételes ugró utasításoknak?

Sorolja fel az aritmetikai csoportba tartozó feltételes ugró utasításokat!

Milyen ciklus szervező utasításokat ismer? Hogy működnek?

Page 66: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feladatok

Milyen string kezelő utasításokat ismer?

Mely string kezelő utasítások módosítják/nem módosítják a flag-eket?

Hogy állítja be a flag-eket a CMPSB utasítás?

Mi a szerepe a string kezelő utasításokban az operandusoknak?

Milyen ismétlő prefixumokat ismer?

Page 67: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

FeladatokAz alábbi feladatok megoldásában használjon

ismétlési prefixumot!Állapítsa meg egy 0-ra végződő string hosszát!Keresse meg egy 0-ra végződő string-ben az A betű

első/utolsó előfordulását (ha van)!Állapítsa meg, hogy egy 0-ra végződő string-ben

előfordul-e az ABC jelsorozat!Töltse fel az n bájt hosszúságú bájt vektort az ABC

mintával!Írjon eljárást egy n bájt hosszúságú forrás terület cél

területre másolására (a két terület átfedhet)!

Page 68: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feladatok

Mi a tömb processzor lényege?

Mi a vektor processzor lényege?

Hogy működik a direkt leképezésű gyorsító tár?

Mik az osztott gyorsító tár előnyei?

Mi a szerepe a találati aránynak?

Mi a sínprotokoll?

Mi a mester, és mi a szolga?

Mit jelent a sokszorozott (multiplexed) sín?

Hogy működik a szinkron/aszinkron sín?

Page 69: Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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

Feladatok

Milyen sínt ismer?

Mit jelent a sín ütemezés?

Milyen sín ütemezőket ismer?

Mi az általános soros sín lényege, haszna?