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

Post on 06-Jan-2016

24 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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!

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.

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

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

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

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

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

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

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

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!

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)

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)

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.

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!

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

. . .

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.

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

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 …

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

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

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

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.

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

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.

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.

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.

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.

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

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.

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

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.

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

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

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

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

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

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

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

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!

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.

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

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.

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

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

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

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

… … … … …

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.

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.

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.

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#

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.

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

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

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

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.

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ő

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.

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

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.

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

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.

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.

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.

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.

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?

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?

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

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?

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?

top related