lokális adat terület ha egy eljárás működéséhez lokális adat területre,
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 PresentationTRANSCRIPT
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
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.)
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.
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.
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).
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!
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.
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
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
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: . . .
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
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
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
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
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)
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)
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)
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!
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
. . .
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.
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.
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)
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
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.
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)
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.
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
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!
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
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.
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.
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!
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.
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).
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.
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.
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.
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).
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.
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ő
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.
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).
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.
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.
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.
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.
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.
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, …
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)
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.
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ó.
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.
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.
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?
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?
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)!
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?
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?