lokális adat terület ha egy eljárás működéséhez lokális adat területre,

58
Máté: Architektú rák 4. előadás 1 Lokális adat terület Ha 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ése MOV BP,SP ; BP SP, ; a stack relatív címzéshez SUB SP,n ; n a munkaterület ; byte-jainak száma . . . ; további regiszter mentések

Upload: terena

Post on 11-Jan-2016

18 views

Category:

Documents


1 download

DESCRIPTION

Lokális adat terület Ha 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. . . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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

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

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

; byte-jainak száma. . . ; további regiszter mentések

Page 2: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 3: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 4: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 5: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 6: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 7: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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

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

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

Page 8: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 9: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 10: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 11: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 12: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

; 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 13: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

; 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 14: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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, ha 1, akkor csökken.

CLD ; D 0STD ; D 1

Page 15: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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)

Page 16: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 17: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 18: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Ismétlő prefixumokREP REPZ REPE és REPNZ

REPNEA Z, E, NZ és NE végződésnek hasonló szerepe van, mint aLOOP utasítás esetén. Ismétlő prefixum használata esetén astring 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. 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. 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é pedig REP helyett a vele egyenértékű REPE-t vagy REPZ-t!

Page 19: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

A LOOP utasítás ismertetésénél bemutatott feladat (dia) 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 20: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Megjegyzések:

- A mostani megoldás az ES szegmens regisztert használja, é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 21: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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

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

Page 22: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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ék

Bonyolult szabályok a párhuzamos végrehajthatóságra (fordítók vagy hardver).

Szuperskaláris architektúrák (2.6. ábra): CDC 6600 (1964) 10 funkcionális egység,Pentium II (1997)

Page 23: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Processzor szintű párhuzamosítás • Tömb (array) processzor (2.7. ábra): 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).

• Vektor processzor (Cray-1): erős szállítószalag, regiszter-vektorok. Pl. egy utasítással sok adat betöltése regiszter-vektorba, egy utasítással két regiszter-vektor összeadása, …Hagyományos processzorokkal összeépíthetők.

• Multiprocesszorok, multiszámítógépek

Page 24: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Multiprocesszorok, multiszámítógépek

Multiprocesszorok (2.8. ábra): 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.

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: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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űködése: (4_38_abrahoz)

Page 26: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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 – jobb találati arány, de nagyobb a sor betöltési ideje is.

Page 27: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Memória tokozásRégen a memóriát lapkánként forgalmazták

(1K-1M bit), újabban több lapka kerül egy kis áramköri lapra (modul), és azt lehet illeszteni.

• SIMM (Single Inline Memory Modul, 2.17. ábra): 1-8 db 32 Mbit (=4MB), egyszerre 8-32 bit olvasható vagy írható,

• DIMM (Dual Inline Memory Modul): 64MB –, egyszerre 64 bit olvasható vagy írható,

• SO-DIMM (Small Outline DIMM) notesz gépekben.

Alkalmazható hiba jelzés/javítás, de 1 hiba/10 év!

Page 29: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Memória hierarchia (2.18. ábra)

Elérési idő: néhány nanosec 100 msecKapacitás: néhány bájt néhány száz GB1 byte ára

Page 30: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

CPU (Central Processing Unit)

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

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.

Pl. utasítás betöltése: utasítás címe a cím lábakra, 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.

Page 31: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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). Óra, áram (3.3 v. 5V), föld, továbbá vezérlőlábak: • sínvezérlés (bus control, mit csináljon a sín), • megszakítások, • sínkiosztás (ütemezés, egyeztetés – bus arbitration,

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

Page 32: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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

A memória sohasem lehet mester!

Page 33: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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

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

Sínszélesség (pl. IBM PC: 3.36., 3.49. ábra). Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás.

Sokszorozott (multiplexed) sín: pl. először a cím van a sínen (ugyanazokon a vezetékeken), majd az adat.

Keskenyebb sín olcsóbb, de kisebb sávszélesség lassabb.

Page 34: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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űködésük: közvetlen memóriaelérés (DMA, Direct Memory Access), megszakítás (interrupt) + megszakításkezelő.

Egyszerre többen igénylik a sínt (CPU, I/O vezérlő) - sínütemező (bus arbiter) dönt, általában I/O elsőbbséget kap (cikluslopás).

Page 35: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 36: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 a ciklusidő (sín ciklus) egész számú többszöröséig tart (pl. 2.1 ciklusidő helyett 3 ciklusidő kell).

Pl.: 3.37. ábra: 40 MHz, 40 (50) nsec válasz idejű memória esetén egy olvasási idő 3 (4) ciklus.

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

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 37: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 SYN…). Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet (3.38. ábra).

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), negálja MSYN#-t,• Szolga: látja MSYN# negálását, negálja SSYN#-t.

Page 38: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Sín ütemezés (kiosztás – bus arbitration) • centralizált: (margaréta) láncolás (daisy chaining),

egy vagy többszintű lehet (3.39. ábra). Ha van kérés és a sín szabad: sínlefoglalás engedélyezése.Néha további vezeték a sín lefoglalás jelzésére (újabb sín kérés kezdődhet a sín használata közben).

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

Page 39: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Sín műveletekAz eddigiek közönséges sín műveletek voltak.Blokkos átvitel: 3.41. ábra. Több processzoros rendszerekben:

olvasás – módosítás – visszaírás ciklus: szemafor.Megszakítás kezelés: 3.42. ábra, IRi, INT,

ha CPU tudja fogadni INTA#, i D0-D7, a CPU megszakításvektor táblázat i –edik eleméből tudja a megszakítást kiszolgáló eljárás kezdőcímét, megszakítás (később tárgyaljuk részletesen), …

Nyolcnál több eszköz kiszolgálásához több megszakítás vezérlő kapcsolható össze.

Page 40: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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ín sávszélesség kellene

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

Page 41: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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. ábra): Belső sín,

PCI híd, PCI sín, ISA híd, ISA sín.A cím és adatvezetékek multiplexeltek. PCI sínkiosztás (3.51. ábra): request, grant.

Page 42: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Általános soros sín

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) kommunikál az eszközökkel (3.54. ábra). A frissen csatlakoztatott eszköz címe 0. Ha tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja).

Page 43: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 44: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 45: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 46: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 47: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Pentium IIFelülről kompatibilis az I8088, …, Pentium Pro-val.29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz,

32 bites gép, 64 bites adat sín.SEC (Single Edge Cartridge) tokozás (3. 43. ábra). Két szintű belső gyorsító tár: 16 KB utasítás + 16 KB

adat, 512 KB közös, másodlagos (fele olyan gyors, mint a CPU), 32 B-os gyorsító sor (cash line).

1 vagy 2 CPU közös memóriával (szimatolás - snoop).Gépi utasítások RISC szerű mikroutasítások, több

mikroutasítás futhat egyszerre: szuperskaláris gép.Két külső szinkron sín (PCI és ISA): 3. 50. ábra.

Page 48: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Pentium II logikai lábkiosztása (3.44. ábra)Sín ütemezés: BPRI#: magas prioritású igény

engedélyezése, LOCK#: sín foglalás több ciklusra,Kérés: A#: 8 bájtos adat címe (64 GB címezhető),

ADS#: a cím érvényes, REQ#: kívánság,Válasz: RS#: státus, TRDY#: a szolga tud adatot

fogadni,Adat: D#: 8 bájtos adat, DRDY#: az adat a sínen van,

DBSY#: a sín foglalt.RESET#: a CPU alapállapotba hozatala,Megszakítások: régi vezérlő, és APIC (Advanced

Programmable Interrupt Controller),VID: 5 különböző tápfeszültség kódolása, …

Page 49: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Pentium II memória sínA memóriaigények, tranzakciók 6 állapota: 6 fázisú

csővezeték (3.44. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat):

0. Sín ütemezés (kiosztás, bus arbitration): melyik sínmester következik,

1. Kérés: cím a sínre, kérés indítása,2. Hibajelzés: a szolga hibát jelez(het),3. Szimatolás: a másik CPU gyorsító tárában,4. Válasz: kész lesz-e az adat a következő ciklusban,5. Adat: megvan az adat. (3.45. ábra)

Page 50: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

UltraSPARC II64 bites RISC gép, felűről kompatibilis a 32 bites

SPARC V8 architektúrával.CPU, 5.4 millió tranzisztor, 4 CPU közös memóriával

használható. 787 láb (3.46-47. ábra). 64 (jelenleg csak 44) bites cím és 128 bites adat lehetséges.

Belső gyorsító tár (16 KB utasítás + 16 KB adat).Külső 512 KB - 16 MB. 8 K - 256 K 64 B-os gyorsító

sor (cash line) lehet. A címzéséhez 13 – 18 bit szükséges. A CPU mindig 18 bites Line címet (Címkeazonosítót) ad át. Csak maximális méret esetén van mind a 18 bit kihasználva.

Page 51: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

512 KB –os gyorsító tár eseté a 44 bites cím felosztása (3.47. ábra, 3_47_abrahoz): Tag: 25 bit, Line: 13 bit, bájt cím: 6 bit = 44 bit.

Pl. 16 MB –os tár esetén 20 bites Tag (Címkeadat) is elég lenne, de ilyekor – hogy a CPU egységesen működhessen – a gyorsító tár Tag –et kiegészíti Line legmagasabb helyértékű bitjeivel.

Az Adat címe a gyorsító sor címén (Címkeazonosító) kívül még 2 bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része (16 bájt) mozgatható.

Page 52: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

UltraSPARC II

SBus: 25 MHz-es szinkron sín a perifériáknak. A memóriához lassú!

UPA (Ultra Port Architecture) sín, kapcsoló vagy mindkettő. A memóriák és max. 4 CPU kommunikációját kezeli.

UDB II (UltraSPARC Data Buffer II): ezen keresztül zajlik a memória és a gyorsító tárak közötti adatforgalom.

Page 53: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

picoJava II

JVM-et (Java Virtual Machine) megvalósító hardver (SUN microJava 701, benne a SUN picoJava II központi egység, 3.48. ábra). 64 bites memória sín (külön adat és cím vezetékek) és 32 bites PCI sín interfész. Flash PROM.Elsősorban beépített számítógépekben alkalmazzák.

Szabványos BGA (Ball Grid Array) tokban: SUN microJava 701 + 316 láb: memória (adat, cím), PCI sín, vezérlés, órák, megszakítás, tesztelés, programozható B/K (nyomógombok), … számára.

Page 54: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 55: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 56: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 57: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

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 58: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,

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

Feladatok

Milyen sínt ismer?

Mit jelent a sín ütemezés?

Milyen sín ütemezőket ismer?

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