Upload
ismael
View
25
Download
0
Embed Size (px)
DESCRIPTION
Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás: CALLop; eljárás hívás - közeli: push IP, IP op, - távoli: push CS, push IP, (CS:IP) op. Visszatérés az eljárásból: RET; visszatérés a hívó programhoz (RETurn) - PowerPoint PPT Presentation
Citation preview
Máté: Architektúrák 4. előadás 1
Vezérlés átadó utasítások
Eljárásokkal kapcsolatos utasítások
Eljárás hívás:
CALL op ; eljárás hívás
- közeli: push IP, IP op,
- távoli: push CS, push IP, (CS:IP) op.
Visszatérés az eljárásból:
RET ; visszatérés a hívó programhoz (RETurn)
- közeli: pop IP,
- távoli: pop IP, pop CS.
RET op ; . . . , SP SP+op
; op csak közvetlen adat lehet!
Máté: Architektúrák 4. előadás 2
Feltétlen vezérlés átadás (ugrás)
JMP op ; ha op közeli: IP op,
; ha távoli: (CS:IP) op.
Máté: Architektúrák 4. előadás 3
Feltételes ugrások, aritmetikai csoport
Előjeles Reláció Előjel nélküli
JZ ≡ JE = JZ ≡ JE
JNZ ≡ JNE ≠ JNZ ≡ JNE
JG ≡ JNLE > JA ≡ JNBE
JGE ≡ JNL ≥ JAE ≡ JNB ≡ JNC
JL ≡ JNGE < JB ≡ JNAE ≡ JC
JLE ≡ JNG ≤ JBE ≡ JNA
A feltételek: Zero, Equal, No (Not), Greater, Less, Above, Below, Carry
Máté: Architektúrák 4. előadás 4
A feltételek: Zero, Equal, No (Not), Carry, Sign, Overflow, Parity Even, Parity Odd.
Feltételes ugrások, logikai csoport
a flag igaz (1) flag a flag hamis (0)
JZ ≡ JE Zero JNZ ≡ JNE
JC Carry JNC
JS Sign JNS
JO Overflow JNO
LP ≡ JPE Parity JNP ≡ JPO
JCXZ CX = 0
Máté: Architektúrák 4. előadás 5
Minden feltételes vezérlés átadás IP relatív címzéssel (SHORT) valósul meg!
Pl.:
JZ MESSZE ; Hibás, ha
; MESSZE messze van
Megoldás:
JNZ IDE ; Negált feltételű ugrás
JMP MESSZE
IDE: . . .
Máté: Architektúrák 4. előadás 6
Ciklus szervező utasítások
IP relatív címzéssel (SHORT) valósulnak meg.
LOOP ipr ; CX CX – 1, ugrás ipr -re,
; ha CX 0
LOOPZ ipr ; CX CX – 1, ugrás ipr -re,
; ha (CX 0 és Z=1)
LOOPE ipr ; ugyanaz mint LOOPZ
LOOPNZ ipr ; CX CX – 1, ugrás ipr -re,
; ha (CX 0 és Z=0)
LOOPNE ipr ; ugyanaz mint LOOPNZ
Máté: Architektúrák 4. előadás 7
; B = A n-dik hatványa,
; A és n előjel nélküli byte, B word
; Feltétel: A n-1 –dik hatványa elfér AL –ben.
mov cl, n ; a ciklus előkészítése
xor ch, ch
mov al, 1 ; lehetne: mov ax, 1
xor ah, ah ; akkor ez nem kell
JCXZ kesz ; ha n=0, akkor 0-szor
; fut a ciklus mag
c_mag: mul A ; ciklus mag
LOOP c_mag ; ismétlés, ha kell
kesz: mov B, ax
Máté: Architektúrák 4. előadás 8
; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme?
mov cx, 100mov di, -1 ; előbb lehessen inc, mint cmpmov al, 3
NEXT: inc dicmp array[di], al ; array di-edik eleme = 3?LOOPE NEXT ; ugrás NEXT-re,
; ha CX0 és a di-edik elem=3JNE NEM3 ; CX = 0 vagy array[di] 3. . . ; array 3. . .
NEM3: . . . ; di az első 3-tól különböző . . . ; elem indexe
Máté: Architektúrák 4. előadás 9
String kezelő utasításokAz s forrás területet (DS:SI),
a d cél területet pedig (ES:DI) címzi. Az utasítás végződése (B / W) vagy az operandus
jelzi, hogy bájtos vagy szavas a művelet.A címzésben résztvevő indexregiszterek értéke
1-gyel módosul bájtos, 2-vel szavas művelet esetén.
Ha a D (Direction) flag értéke 0, akkor az indexregiszterek értéke növekszik, 1, akkor csökken.
CLD ; D 0STD ; D 1
Máté: Architektúrák 4. előadás 10
Az alábbi utasítások – mint általában az adat mozgató utasítások –
érintetlenül hagyják a flag-eket
Átvitel az (ES:DI) által mutatott címre a (DS:SI) által mutatott címről:
MOVSB ; MOVe String Byte
MOVSW ; MOVe String Word
MOVS d,s ; MOVe String (byte vagy word)
d és s csak azt mondja meg, hogy bájtos vagy szavas az átvitel!
Máté: Architektúrák 4. előadás 11
Betöltés AL-be illetve AX-be a (DS:SI) által mutatott
címről (csak SI módosul):
LODSB ; LOaD String Byte
LODSW ; LOaD String Word
LODS s ; LOaD String (byte vagy word)
Tárolás az (ES:DI) által mutatott címre AL-ből illetve
AX-ből (csak DI módosul):
STOSB ; STOre String Byte
STOSW ; STOre String Word
STOS d ; STOre String (byte vagy word)
Máté: Architektúrák 4. előadás 12
Az alábbi utasítások beállítják a flag-eket
Az (ES:DI) és a (DS:SI) által mutatott címen lévő byte illetve szó összehasonlítása, a flag-ek s – d (!!!) értékének megfelelően állnak be.CMPSB ; CoMPare String ByteCMPSW ; CoMPare String WordCMPS d,s ; CoMPare String (byte vagy word)
Az (ES:DI) által mutatott címen lévő byte (word) összehasonlítása AL-lel (AX-szel), a flag-ek AL – d (AX – d) értékének megfelelően állnak be.SCASB ; SCAn String ByteSCASW ; SCAn String WordSCAS d ; SCAn String (byte vagy word)
Máté: Architektúrák 4. előadás 13
Ismétlő prefixumokREP REPZ REPE és REPNZ REPNE
A Z, E, NZ és NE végződésnek hasonló szerepe van, mint a LOOP utasítás esetén.
Ismétlő prefixum használata esetén a string kezelő utasítás CX-szer kerül(het) végrehajtásra:
• ha CX = 0, akkor egyszer sem(!!!), • különben minden végrehajtást követően 1-gyel
csökken a CX regiszter tartalma. Amennyiben CX csökkentett értéke 0, akkor nem történik további ismétlés.
A flag beállító string kezelő utasítás ismétlésének további feltétele, hogy a flag állapota megegyezzen a prefixum végződésében előírttal.
Máté: Architektúrák 4. előadás 14
Ismétlő prefixumokREP REPZ REPE és REPNZ
REPNE
A program jobb olvashatósága érdekében
• flag-et nem állító utasítások előtt mindig REP-et használjunk,
• flag-et beállító utasítás előtt pedig sohase REP-et, hanem helyette a vele egyenértékű REPE-t vagy REPZ-t!
Máté: Architektúrák 4. előadás 15
A LOOP utasítás ismertetésénél bemutatott feladat megoldása string kezelő utasítás segítségével :
; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme?
mov cx,100mov di,offset arrayMOV AL,3
REPE SCAS array ; array 0., 1., ... eleme = 3?JNE NEM3. . . ; array 3,. . .
NEM3: DEC DI ; DI az első 3 elemre mutat
. . .
Máté: Architektúrák 4. előadás 16
Megjegyzések:
- A mostani megoldás használja az ES szegmens regisztert, és feltételeztük, hogy a tartalma jó.
- A két megoldás közötti eltérés nem minden pontban lényeges, pl. az első változat úgy is elkészíthető lett volna, hogy ott is
mov di,offset array
szerepeljen, de a mostani megoldásnál ez az utasítás kötelező!
- A mostani megoldás lényegesen gyorsabb végrehajtást biztosít, mint a korábbi.
Máté: Architektúrák 4. előadás 17
Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeték
(pipelining).Kezdetben:
Utasítás beolvasás Utasítás végrehajtás
Minden fázist külön hardver hajt végre (2.4. ábra), ezek párhuzamosan működhetnek (szerelő csarnok).
utasítás beolvasó egység
utasítás dekódoló egység
operandus beolvasó egység
utasítás végrehajtó
egység
eredményvisszaíró egység
S1 S2 S3 S4 S5
Máté: Architektúrák 4. előadás 18
• Késleltetés (latency): mennyi ideig tart egy utasítás.
• Áteresztőképesség (processor bandwidth): hány MIPS (Million Instruction Per Second) a sebesség.
A végrehajtás alatt lévő utasítás sorszámaS1: 1 2 3 4 5 6 7 8 9S2: 1 2 3 4 5 6 7 8S3: 1 2 3 4 5 6 7 …S4: 1 2 3 4 5 6S5: 1 2 3 4 5idő 1 2 3 4 5 6 7 8 9 …
Máté: Architektúrák 4. előadás 19
Több szállítószalagos CPU
Két szállítószalag (2.5. ábra):• Két ALU, de közös regiszterek, • A két szállítószalag lehet különböző is (Pentium):
fő – ez többet tud, elsőbbséget élvez – és mellékBonyolult szabályok a párhuzamos végrehajthatóságra
(fordítók vagy hardver).
S1 S2 S3 S4 S5
utasítás beolvasó egység
utasítás dekódoló egység
operandus beolvasó egység
utasítás végrehajtó
egység
eredményvisszaíró egység
utasítás dekódoló egység
operandus beolvasó egység
utasítás végrehajtó
egység
eredményvisszaíró egység
Máté: Architektúrák 4. előadás 20
Szuperskaláris processzor 5 funkcionális egységgel:
S1 S2 S3 S5
utasítás beolvasó egység
utasítás dekódoló egység
operandus beolvasó egység
ALU
eredményvisszaíró egység
S4
ALU
LOAD
STORE
lebegő-pontos
egység 2.6. ábra
Máté: Architektúrák 4. előadás 21
Processzor szintű párhuzamosítás
• Tömb (array) processzor (2.7. ábra)
Vezérlő egység
Teríti az utasításokat
processzor
memória
8*8-as processzor/memória rács
sok azonos processzor (ILLIAC IV: (4*)8*8), mindnek saját memóriája. Vezérlő processzor adja ki a feladatot. Mindegyik processzor ugyanazt csinálja, de a saját adatain.
Már nem divatos (drága, nehéz kihasználni).
Máté: Architektúrák 4. előadás 22
• Vektor processzorok
Vektor regisztereket használnak.
A vektor regiszter több hagyományos regiszterből áll. Gyors szállítószalag gondoskodik a regiszterek feltöltéséről, szintén gyors szállítószalag továbbítja a regiszterek tartamát az aritmetikai egységbe, pl. a vektor regiszterek összeadásához. Az eredmények szintén vektor regiszterbe kerülnek.
Jól kombinálhatók hagyományos processzorokkal.
Máté: Architektúrák 4. előadás 23
• Multiprocesszorok
CPU CPU CPU…
közös memória
A közös memória megkönnyíti a feladat megosztását. • Csak közös memória. Nagyon terheli a memória sínt.
• Lokális memória is van.
Sok (>64) processzoros rendszert nehéz építeni a közös memória miatt.
CPU CPU CPU…
közös memória
helyi memóriák
Máté: Architektúrák 4. előadás 24
• Multiszámítógépek: Nincs közös memória:A CPU-k üzenetekkel kommunikálnak egymással.Néhány μs üzenet idő.
2-3 dimenziós hálók, fák, gyűrűk.
Közel 10 000-es rendszer is van.
Máté: Architektúrák 4. előadás 25
Gyorsító tár (cache – 2.16. ábra)A processzorok mindig gyorsabbak a memóriáknál. Feloldási lehetőség: a központi memória egy kis részét
(gyorsító tár) a CPU lapkára helyezni: Amikor egy utasításnak adatra van szüksége, akkor először itt keresi, ha nincs itt, akkor a központi memóriában.
Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz (ciklus, mátrix manipulálás, …).
Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor - cashe line) kerül beolvasásra a memóriából a gyorsító tárba.
Máté: Architektúrák 4. előadás 26
Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsító tárból.
Hiba arány: 1-h.
Ha a gyorsító tár elérési ideje: c,
a memória elérési ideje: m, akkor az
átlagos elérési idő = c + (1- h) m.
A gyorsító tár mérete: nagyobb tár – drágább.
A gyorsító sor mérete: nagyobb sor – nagyobb a sor betöltési ideje is.
Máté: Architektúrák 4. előadás 27
Osztott (külön utasítás és adat) gyorsító tár előnyei: • Egyik szállítószalag végzi az utasítás,
másik az operandus előolvasást. • Az utasítás gyorsító tárat sohasem kell visszaírni
(az utasítások nem módosulnak).
Közös gyorsító tár: párhuzamosítás nem lehetséges.
Hierarchia:
• elsődleges, a CPU lapkán,
• másodlagos, a CPU-val egy tokban,
• külön tokban.
Máté: Architektúrák 4. előadás 28
Direkt leképezésű gyorsító tár működése: (4_38_abrahoz) Bitek: 16 11 3 2
32 bites cím: TAG Vonal (Line) SZÓ BÁJT
Entry V TAG Data2047
… …
10
Ha a gyorsító tár Vonal által mutatott sorában V=1 (valid), és a TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a sorban).
Máté: Architektúrák 4. előadás 29
Halmaz kezelésű gyorsító tár
Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort.
Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsító tárról beszélünk.
Ritka a több, mint 4 utas kezelés.
LRU (Least Recently Used) algoritmus: gyorsító sor betöltése előtt a legrégebben használt bejegyzés kerül ki a gyorsító tárból.
Máté: Architektúrák 4. előadás 30
Halmaz kezelésű gyorsító tár (4.39. ábra)
Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében V=1 (valid), és a hozzá tartozó TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben).
Entry V Tag Data V Tag Data V Tag Data V Tag Data2k-1
10
A bejegyzés
B bejegyzés
C bejegyzés
D bejegyzés
Máté: Architektúrák 4. előadás 31
Memóriába írásStratégiák:Írás áteresztés (write through): az írás a memóriába
történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort.
Késleltetett írás (write deferred, write back): ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél.
Ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén.
Máté: Architektúrák 4. előadás 32
Memória hierarchia (2.18. ábra)
Elérési idő:
néhány nanosec
100 msec
Kapacitás:
néhány bájt
néhány száz GB
regiszterek
Gyorsító tár
Központi memória
Mágneslemez
Szalag Optikai lemez
Máté: Architektúrák 4. előadás 33
CPU (Central Processing Unit)
Általában egyetlen lapkán van. Lábakon keresztül kommunikál a többi egységgel (3.33. ábra).
címzés adat
sín vezérlésmegszakítások
sín kiosztássegéd processzorállapotsegéd információk
Φ +5V földelés
órajel tápfeszültség
CPU
Máté: Architektúrák 4. előadás 34
Lábak (pins) három típusa: cím, adat, vezérlés. Ezek párhuzamos vezetékeken, az un. sínen keresztül kapcsolódnak a memória, az I/O egységek hasonló lábaihoz.
címzés adat
sín vezérlésmegszakítások
sín kiosztássegéd processzorállapotsegéd információk
Φ +5V
CPU
Máté: Architektúrák 4. előadás 35
Lényeges a cím- és adatlábak száma (3.33. ábra):
• Ha m címláb van, akkor 2m memóriarekesz érhető el (tipikus m = 16, 20, 32, 64).
• Ha n adatláb van, akkor egyszerre n bit olvasható illetve írható (tipikus n = 8, 16, 32, 36, 64).
címzés adat
sín vezérlésmegszakítások
sín kiosztássegéd processzorállapotsegéd információk
Φ +5V
CPU
Máté: Architektúrák 4. előadás 36
Óra, áram (3.3 v. 5V), föld, továbbá vezérlőlábak: • sín vezérlés (bus control): mit csináljon a sín, • megszakítások, • sín kiosztás (ütemezés, egyeztetés – bus arbitration):
kinek dolgozzon a sín, • segéd processzor vezérlése, jelzései, • állapot, • egyebek.
címzés adat
sín vezérlésmegszakítások
sín kiosztássegéd processzorállapotsegéd információk
Φ +5V
CPU
Máté: Architektúrák 4. előadás 37
Pl. utasítás betöltése: • A CPU kéri a sín haszálat jogát,• Az utasítás címét a cím lábakra teszi, • vezérlő vonalon informálja a memóriát, hogy olvasni
szeretne, • a memória a kért szót az adat vonalakra teszi, kész jelzést
tesz egy vezérlő vonalra, • a CPU végrehajtáshoz átveszi az utasítást.
címzés adat
sín vezérlésmegszakítások
sín kiosztássegéd processzorállapotsegéd információk
Φ +5V
CPU
Máté: Architektúrák 4. előadás 38
Sín (bus): Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább kettő van: egy belső és egy külső (I/O), 3.34. ábra.
sínvezérlő memória
lemez modem nyomtató
memória-sín
B/K sín
CPU lapka
regiszterek
Lapkán belüli sinek
ALU
Máté: Architektúrák 4. előadás 39
Sínprotokoll: a sín működésének + a csatlakozások mechanikai, elektronikus definíciója
Mesterek (masters): aktív (kezdeményező) berendezések (CPU, lemez vezérlő).
Szolgák (slaves): passzív (végrehajtó) berendezések (lemez vezérlő, CPU), 3.35. ábra.
Ez a szereposztás tranzakciónként eltérő lehet.
Mester Szolga példa
CPU Segéd proc. CPU felkínálja az utasítást
Segéd proc. CPU Segéd proc. kéri az operandusokat
A memória sohasem lehet mester!
Máté: Architektúrák 4. előadás 40
A sínhez kapcsolódó lapkák lényegében erősítők.Mester – sín vezérlő (bus driver) – sín. Sín – sín vevő (bus receiver) – szolga.Mester–szolgáknál: sín adó-vevő (bus tranceiver).
A csatlakozás gyakran tri-state device vagy open collector – wired-OR segítségével történik.
Sávszélesség: (továbbítható bitek száma) / sec.Sávszélesség növelése:
Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás. Sínszélesség: szélesebb sín drágább, kompatibilitás.
Máté: Architektúrák 4. előadás 41
Sínszélesség (pl. IBM PC: 3.36., 3.49. ábra).
8088
20 bites cím
vezérlés 80288 4 bites 80388
8 bites
3.36. ábra. A cím szélességének növekedése az elmúlt időszakban
Máté: Architektúrák 4. előadás 42
Sokszorozott (multiplexed) sín: pl. először a cím van a sínen (ugyanazokon a vezetékeken), majd az adat. Ilyenkor a sín szélesség lényegesen csökken (olcsóbb, kevesebb láb szükséges a sínhez való csatlakozáshoz), csökken a sáv szélesség is, de nem olyan mértékben, és általában bonyolultabb a sín protokoll is.
Gyorsabb CPU gyorsabb sínt igényel!Kívánság: PC cseréjénél megmaradhasson a régi
perifériák egy része: az új gépben is kell a régi sín!Sínek szabványosítása.Egy gépen belül több sín is használható: 2.30. ábra.
Máté: Architektúrák 4. előadás 43
2.30. ábra. Egy tipikus modern PC PCI, SCSI és ISA sínnel
SCSI-szkenner
SCSI-lemez
SCSI-vezérlő
Video vezérlő
Hálózati vezérlő
PCI-híd
CPU
Gyorsító tárKözponti memória
Nyomtató vezérlőHangkártya ISA-híd Modem
PCI sín
SCSI sín
Memória sín
ISA sín
Máté: Architektúrák 4. előadás 44
Alaplap (motherboard, parentboard, 3.49. ábra)
Rajta van a CPU, sín(ek), ezen illesztő helyek (slots) a memória és a beviteli/kiviteli (Input/Output – I/O) eszközök számára (2.28. ábra).
I/O eszköz: maga az eszköz + vezérlő (controller) külön kártyán vagy az alaplapon (2.29. ábra).
Máté: Architektúrák 4. előadás 45
Máté: Architektúrák 4. előadás 46
Sínek időzítése
Szinkron sín: a sín egy vezetékén lévő 5 – 100 MHz-es órajel vezérel. Minden síntevékenység az órajelhez van igazítva.
Síntevékenységek: cím megadása, vezérlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.37. ábra)
Jelölés Tevékenység min max idő
TAD Cím megérkezési ideje a sínre 11 ns
TML Cím a sínen van MREC# előtt 6 ns
… … … … …
Máté: Architektúrák 4. előadás 47
adat
A kiolvasandó rekesz címe
TAD
TML
T1 T2 T3
Olvasási ciklus 1 várakozó állapottal
Minimális válasz idő
Φ
cím
adat
MREQ#
RD#
WAIT#
Kicsit hosszabb válasz idő esetén még egy várakozó ciklusra lenne szükség.
Máté: Architektúrák 4. előadás 48
Minden sínművelet a ciklusidő (sín ciklus) egész számú többszöröséig tart: pl. 2.1 ciklusidő helyett 3 ciklusidő kell.
A leglassabb eszközhöz kell a sín sebességét igazítani, a gyors eszköz is lassan fog működni.
Máté: Architektúrák 4. előadás 49
Aszinkron sín: Minden eseményt egy előző esemény okoz! Nincs órajel, WAIT. MSYN# (kérés - Master SYNchronization), SSYN# (kész - Slave SYNchronization).
Akkor indulhat újabb tranzakció, ha SSYN# negált.
Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák 4. előadás 50
Aszinkron sín működése (3.38. ábra)
A kiolvasandó rekesz címe
adat
cím
MREQ#
RD#
MSYN#
adat
SSYN#
Máté: Architektúrák 4. előadás 51
Teljes kézfogás (full handshake):
Akkor indulhat, ha SSYN# negált!
• Mester: kívánságok beállítása, majd MSYN#, vár,
• Szolga: látja MSYN#-t: dolgozik, majd SSYN#, vár,
• Mester: látja SSYN# -t (kész), dolgozik, ha kell, majd negálja MSYN# -t,
• Szolga: látja MSYN# negálását, negálja SSYN# -t.
Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák 4. előadás 52
Sín ütemezés (kiosztás)
Ha egyszerre többen is igénylik a sínt (CPU, I/O vezérlő), akkor a sín ütemező (bus arbiter) dönt.
Általában I/O elsőbbséget kap (cikluslopás).
Máté: Architektúrák 4. előadás 53
Sín ütemezés (kiosztás – bus arbitration) • Centralizált (3.39. ábra): (margaréta) láncolás
(daisy chaining), egy vagy többszintű lehet.
Ha van kérés és a sín szabad: sín foglalási engedély.Néha további vezeték van az engedély fogadásának
jelzésére (újabb sín kérés kezdődhet a sín használata közben).
ütemező
1 2 3 4 5
Sín foglalás kérés
Sín foglalás engedélyezés
Csak akkor engedi tovább a jelet, ha nem kérte a sínt
Máté: Architektúrák 4. előadás 54
• decentralizált
- pl. 16 prioritású: 16 eszközhöz 16 kérés vonal, minden eszköz minden kérés vonalat figyel, tudja, hogy a saját kérése volt-e a legmagasabb prioritású.
- 3.40. ábra: ha nem foglalt és be, akkor lefoglalhatja a sínt (ki negálása, foglalt beállítása).
1 2 3 4 5
Sín foglalás kérés
Ütemezési vonal
Foglalt
Máté: Architektúrák 4. előadás 55
Sín műveletek
Az eddigiek közönséges sín műveletek voltak.
Blokkos átvitel (3.41. ábra): A kezdő memória címen kívül az adat sínre kell tenni a mozgatandó adatok számát. Esetleges várakozó ciklusok után ciklusonként egy adat mozgatása történik.
Megszakítás kezelés: később tárgyaljuk részletesen.
Több processzoros rendszerekben: olvasás – módosítás – visszaírás ciklus: szemafor.
Máté: Architektúrák 4. előadás 56
Példák sínekreAz első IBM PC (3.36. ábra) 62 vonalas (vezeték,
line), 20 címnek, 8 adatnak, DMA, megszakítás …PC/AT szinkron sín (3.49. ábra): további 36 vezeték
(24 címnek, 16 adatnak, … ). ISA (Industry Standard Architecture) lényegében
8.33 MHz-es PC/AT sín (sávszélesség: 16.7 MB/s).EISA (Extended ISA) 32 bitesre bővített ISA
(sávszélesség: 33.3 MB/s).Színes TV-hez 135 MB/s sávszélesség kellene
(1024*768 pixel, 3 bájt*2, 30 kép/sec).lemez memória képernyő
Máté: Architektúrák 4. előadás 57
PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 132 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések.
Új változatai: 64 bites adat, 66 MHz, 528 MB/s.
Problémák: • a memóriához lassú,• nem kompatíbilis az ISA bővítőkártyákkal.
Megoldás (3.50. vagy 2.30. ábra): Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.
Máté: Architektúrák 4. előadás 58
3.50. ábra. Egy tipikus Pentium II rendszer architektúrája
SCSI USB Grafikus illesztő
PCI-híd
CPU
Gyorsító tárFő
memória
NyomtatóHangkártya
ISA-híd
Monitor
PCI sín
Memória sín
ISA sín
Másodlagos gyorsító tár
Egér Billentyűzet
Monitor
Szabad PCI bővítő hely
Szabad ISA bővítő helyek
Gyorsító tár sín
IDE diszk
Máté: Architektúrák 4. előadás 59
PCI sín ütemezés (kiosztás): request, grant.
PCI ütemező
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
3.51. ábra. A PCI sín centrális ütemezőt használ.
Máté: Architektúrák 4. előadás 60
Általános soros sín (USB)Igény: bármikor könnyen lehessen perifériát
kapcsolni a géphez, ne kelljen újra boot-olni, ne kelljen áramellátásról gondoskodni, … Plug ‘n Play perifériák.
USB (Universal Serial Bus - általános soros sín): Négy vezeték: adatok (2), tápfeszültség (1), föld (1).
A központi elosztó (root hub) 1 ms-onként üzenetekkel (frame, 3.54. ábra) kommunikál az eszközökkel.
A frissen csatlakoztatott eszköz címe 0. Ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja).
Máté: Architektúrák 4. előadás 61
Frame – keret
Egy vagy több csomagból áll.
Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat.
Az első csomag mindig SOF: Start Of Frame – keret kezdet, szinkronizálja az eszközöket.
Máté: Architektúrák 4. előadás 62
A keret lehet• Control – vezérlő:
Eszköz konfigurálás,Paracs,Állapot lekérdezés.
• Isochronous – izoszinkron: valós idejű eszközök használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet.
• Bulk – csoportos: nagy tömegű adat átvitelére szolgál.• Interrupt – megszakítás: Az USB nem támogatja a
megszakítást, helyette pl. 50 ms-enként lekérdezhető az eszköz állapota.
Máté: Architektúrák 4. előadás 63
A csomag lehet
• Token – parancs (központ küldi az eszköznek):SOF.IN – be: adatokat kér az eszköztől.
Az IN parancsban meg lehet adni, melyik eszköztől milyen adatokra van szükség.
OUT – ki: adatok fogadására kéri az eszközt.SETUP – beállítás: konfigurálja az eszközt.
Máté: Architektúrák 4. előadás 64
A csomag lehet (folytatás)
• Data – adat: 64 bájt információ mozgatása akármelyik irányban. A Data csomag részei:
SYN: 8 bit szinkronizáció, PID: a csomag típusa (8 bites), PAYLOAD: hasznos adat, CRC: Cyclic Redundancy Code – ciklikus redundancia
kód (16 bit az adatátvitel helyességének ellenőrzésére).• Handshake – kézfogás:
ACK: az előző adatcsomagot hibátlanul vettem, NAK: CRC hibát észleltem, STALL: kérem, várjon, el vagyok foglalva.
• Special – speciális.
Máté: Architektúrák 4. előadás 65
Feladatok
Hova helyezi el a visszatérési címet a CALL utasítás?
Honnan „tudja” a RET utasítás, hogy közeli vagy távoli ugrással kell visszatérni az eljárásból?
Mi a közös jellemzője a feltételes ugró utasításoknak?
Sorolja fel az aritmetikai csoportba tartozó feltételes ugró utasításokat!
Milyen ciklus szervező utasításokat ismer? Hogy működnek?
Máté: Architektúrák 4. előadás 66
Feladatok
Milyen string kezelő utasításokat ismer?
Mely string kezelő utasítások módosítják/nem módosítják a flag-eket?
Hogy állítja be a flag-eket a CMPSB utasítás?
Mi a szerepe a string kezelő utasításokban az operandusoknak?
Milyen ismétlő prefixumokat ismer?
Máté: Architektúrák 4. előadás 67
FeladatokAz alábbi feladatok megoldásában használjon
ismétlési prefixumot!Állapítsa meg egy 0-ra végződő string hosszát!Keresse meg egy 0-ra végződő string-ben az A betű
első/utolsó előfordulását (ha van)!Állapítsa meg, hogy egy 0-ra végződő string-ben
előfordul-e az ABC jelsorozat!Töltse fel az n bájt hosszúságú bájt vektort az ABC
mintával!Írjon eljárást egy n bájt hosszúságú forrás terület cél
területre másolására (a két terület átfedhet)!
Máté: Architektúrák 4. előadás 68
Feladatok
Mi a tömb processzor lényege?
Mi a vektor processzor lényege?
Hogy működik a direkt leképezésű gyorsító tár?
Mik az osztott gyorsító tár előnyei?
Mi a szerepe a találati aránynak?
Mi a sínprotokoll?
Mi a mester, és mi a szolga?
Mit jelent a sokszorozott (multiplexed) sín?
Hogy működik a szinkron/aszinkron sín?
Máté: Architektúrák 4. előadás 69
Feladatok
Milyen sínt ismer?
Mit jelent a sín ütemezés?
Milyen sín ütemezőket ismer?
Mi az általános soros sín lényege, haszna?