![Page 1: Lokális adat terület Ha egy eljárás működéséhez lokális adat területre,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/1.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/2.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/3.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/4.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/5.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/6.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/7.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/8.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/9.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/10.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/11.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/12.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/13.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/14.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/15.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/16.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/17.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/18.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/19.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/20.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/21.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/22.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/23.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/24.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/25.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/26.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/27.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/28.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/29.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/30.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/31.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/32.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/33.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/34.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/35.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/36.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/37.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/38.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/39.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/40.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/41.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/42.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/43.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/44.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/45.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/46.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/47.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/48.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/49.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/50.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/51.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/52.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/53.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/54.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/55.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/56.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/57.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022081519/568143e2550346895db06b01/html5/thumbnails/58.jpg)
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?