Title: Vez
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, (CSIP) ? 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 ? SPop
- op csak közvetlen adat lehet!
2- Feltétlen vezérlés átadás (ugrás)
- JMP op ha op közeli IP ? op,
- ha távoli (CSIP) ? op.
3Feltételes ugrások, aritmetikai csoport Feltételes ugrások, aritmetikai csoport Feltételes ugrások, aritmetikai csoport
Elojeles Reláció Elojel nélküli
JZ JE JZ JE
JNZ JNE ? JNZ JNE
JG JNLE gt JA JNBE
JGE JNL JAE JNB JNC
JL JNGE lt JB JNAE JC
JLE JNG JBE JNA
A feltételek Zero, Equal, No (Not), Greater,
Less, Above, Below, Carry
4Feltételes ugrások, logikai csoport Feltételes ugrások, logikai csoport 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
JP JPE Parity JNP JPO
JCXZ CX 0
- A feltételek Zero, Equal, No (Not), Carry, Sign,
Overflow, Parity Even, Parity Odd.
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ételu ugrás
- JMP MESSZE
- IDE . . .
6- Ciklus szervezo 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 Z1)
- LOOPE ipr ugyanaz mint LOOPZ
- LOOPNZ ipr CX ? CX 1, ugrás ipr -re,
- ha (CX ? 0 és Z0)
- LOOPNE ipr ugyanaz mint LOOPNZ
7- B A n-dik hatványa,
- A és n elojel nélküli byte, B word
- Feltétel A n-1 dik hatványa elfér AL ben.
- mov cl, n a ciklus elokészítése
- xor ch, ch
- mov al, 1 lehetne mov ax, 1
- xor ah, ah akkor ez nem kell
- JCXZ kesz ha n0, 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
8- Két vektor skalár szorzata. 1. változat
- code segment para public code
- assume cscode, dsdata, ssstack, esnothing
-
- skalar proc far
- push ds visszatérési cím a verembe
- xor ax,ax ax ? 0
- push ax visszatérés offset címe
- mov ax,data ds a data szegmensre mutasson
- mov ds,ax sajnos mov ds,data
- nem megengedett
- A
9- mov cl,n cl ? n, 0 ? n ? 255
- xor ch,ch cx n szavasan
- xor dx,dx az eredmény ideiglenes helye
- jcxz kesz ugrás a kesz címkére,
- ha CX (n) 0
- xor bx,bx bx ? 0,
- bx-et használjuk indexezéshez
10- ism mov al,abx al ? a0, késobb a1, ...
- imul bbx ax ? a0?b0, a1?b1, ...
- add dx,ax dx ? részösszeg
- inc bx bx ? bx1, az index növelése
- B
- dec cx cx ? cx-1, (vissza)számlálás
- jcxz kesz ugrás a kész címkére, ha cx0
- jmp ism ugrás az ism címkére
- kesz mov ax,dx a skalár szorzat értéke ax-ben
- C
11- call hexa az eredmény kiírása
- hexadecimálisan
- mov si,offset kvse kocsi vissza soremelés
- call kiiro kiírása
- ret vissza az Op. rendszerhez
- skalar endp a skalár eljárás vége
- D
12- Egyszerusítési lehetoség
- B
- dec cx cx ? cx-1, (vissza)számlálás
- jcxz kesz ugrás a kész címkére, ha cx0
- jmp ism ugrás az ism címkére
- kesz mov ax,dx a skalár szorzat értéke
ax-ben - helyett
- B
- LOOP ism ugrás az ism címkére,
- ha kell ismételni
- kesz mov ax,dx a skalár szorzat értéke ax-ben
13- Annak érdekében, hogy a skalárszorzatot kiszámító
program ne rontson el regisztereket, kívánatos
ezek mentése - A
- PUSH BX mentés
- PUSH CX
- PUSH DX
- és visszamentése
- POP DX visszamentés
- POP CX
- POP BX
- C
14- A paraméterek szabványos helyen történo átadása
- Két vektor skalár szorzata. 2. változat
- . . .
- A
- ELJÁRÁS HÍVÁS A PARAMÉTEREK
- SZABVÁNYOS HELYEN TÖRTÉNO ÁTADÁSÁVAL
- CALL SKAL ELJÁRÁS HÍVÁS
- eredmény az AX regiszterben
- C
- call hexa az eredmény kiírása
- mov si,offset kvse kocsi vissza, soremelés
- call kiiro kiírása
- . . .
- ret vissza az Op. rendszerhez
- skalar endp a skalár eljárás vége
- D
15- SKAL PROC KÖZELI (NEAR) ELJÁRÁS
KEZDETE - Az A-tól C-ig tartó program rész
- PUSH BX MENTÉSEK
- PUSH CX
- PUSH DX
- mov cl,n cl ? n, 0 ? n ? 255
- xor ch,ch cx n szavasan
- xor dx,dx az eredmény ideiglenes helye
- jcxz kesz ugrás a kesz címkére, ha n0
- xor bx,bx bx ? 0,
- bx-et használjuk indexezéshez
16- ism mov al,abx al ? a0, késobb a1, ...
- imul bbx ax ? a0?b0, a1?b1,...
- add dx,ax dx ? részösszeg
- inc bx bx ? bx1, az index növelése
- B
- LOOP ism ugrás az ism címkére,
- ha kell ismételni
- kesz mov ax,dx a skalár szorzat értéke
ax-ben - POP DX VISSZAMENTÉSEK
- POP CX
- POP BX
- C
- RET VISSZATÉRÉS A HÍVÓ PROGRAMHOZ
- SKAL ENDP A SKAL ELJÁRÁS VÉGE
- D
-
- Csak az a és b vektor skalár szorzatát tudja
kiszámolni!
17- A paraméterek regiszterekben történo átadása
- Két vektor skalár szorzata. 3. változat
- . . .
- A
- ELJÁRÁS HÍVÁS A PARAMÉTEREK
- REGISZTEREKBEN TÖRTÉNO ÁTADÁSÁVAL
- MOV CL, n PARAMÉTER BEÁLLÍTÁSOK
- XOR CH, CH CX n, ÉRTÉK
- MOV SI,OFFSET a SI ? a OFFSET CÍME
- MOV DI,OFFSET b DI ? b OFFSET CÍME
- call skal eljárás hívás
- eredmény az ax regiszterben
- call hexa az eredmény kiírása
- mov si,offset kvse kocsi vissza, soremelés
- call kiiro kiírása
- . . .
- ret visszatérés az Op. rendszerhez
- skalar endp a skalár eljárás vége
18- skal proc Közeli (NEAR) eljárás kezdete
- push bx mentések
- push cx
- push dx
- xor dx,dx az eredmény ideiglenes helye
- jcxz kesz ugrás a kesz címkére, ha n0
- xor bx,bx bx ? 0,
- bx-et használjuk indexezéshez
19- ism mov al,SIBX FÜGGETLEN a-tól
- imul BYTE PTR DIBX FÜGGETLEN b-tol
- csak BYTE PTR-bol derül ki, hogy 8 bites a
szorzás - add dx,ax dx ? részösszeg
- inc bx bx ? bx1, az index növelése
- loop ism ugrás az ism címkére,
- ha kell ismételni
- kesz mov ax,dx a skalár szorzat értéke
ax-ben - pop dx visszamentések
- pop cx
- pop bx
- ret visszatérés a hívó programhoz
- skal endp a skal eljárás vége
- D
- . . .
- Így csak kevés paraméter adható át!
20- Két vektor skalár szorzata. 4. változat
- . . .
- A
- ELJÁRÁS HÍVÁS A PARAMÉTEREK
- VEREMBEN TÖRTÉNO ÁTADÁSÁVAL
- MOV AL,n AL-t nem kell menteni, mert
- XOR AH,AH AX-ben kapjuk az eredményt
- PUSH AX AXn a verembe
- MOV AX,OFFSET a AX ? a OFFSET címe
- PUSH AX a verembe
- MOV AX,OFFSET b AX ? b OFFSET címe
- PUSH AX a verembe
- A verembe került
- n értéke, a címe, b címe paraméterek
21- call skal eljárás hívás
- eredmény az ax regiszterben
- ADD SP,6 paraméterek ürítése a verembol
- . . .
- ret visszatérés az Op. rendszerhez
- skalar endp a skalár eljárás vége
-
- call skal
- Hatására a verembe került a visszatérési cím
22- skal proc Közeli (near) eljárás kezdete
- PUSH BP BP értékét mentenünk kell
- MOV BP,SP BP ? SP,
- a stack relatív címzéshez
- PUSH SI mentések
- PUSH DI
- push bx
- push cx
- push dx
- A verem tartalma
- n értéke, a címe, b címe paraméterek
- visszatérési cím,
- bp, si, di, bx, cx, dx mentett regiszterek
23- A verem tartalma
- n értéke, a címe, b címe paraméterek
- visszatérési cím,
- bp, si, di, bx, cx, dx mentett regiszterek
- (SSSP) dx PUSH BP BP értékét mentenünk kell
- 2 cx MOV BP,SP BP ? SP,
- 4 bx
- 6 di
- 8 si
- 10 bp - - - - - - - - - - - - - - - - - - - -
- (SSBP) - 12 visszatérési cím 2
- 14 b címe 4
- 16 a címe 6
- 18 n értéke 8
- . . . korábbi mentések . . .
24- 10 bp - - - - - - - - - - - - - - - - - - - -
- (SSBP) - 12 visszatérési cím 2
- 14 b címe 4
- 16 a címe 6
- 18 n értéke 8
- . . . korábbi mentések . . .
- MOV SI,6BP SI ? az egyik vektor címe
- MOV DI,4BP DI ? a másik vektor címe
- MOV CX,8BP CX ? a dimenzió értéke
- xor dx,dx az eredmény ideiglenes helye
- jcxz kesz ugrás a kesz címkére, ha n0
- xor bx,bx bx ? 0, indexezéshez
25- ism mov al,sibx független a-tól
- imul byte ptr dibx független b-tol
- csak byte ptr-bol derül ki, hogy 8 bites a
szorzás - add dx,ax dx ? részösszeg
- inc bx bx ? bx1, az index növelése
- loop ism ugrás az ism címkére,
- ha kell ismételni
- kesz mov ax,dx a skalár szorzat értéke
ax-ben
26- pop dx visszamentések
- pop cx
- pop bx
- POP DI
- POP SI
- POP BP
- ret visszatérés a hívó programhoz
- skal endp a skal eljárás vége
- D
- . . .
- ADD SP,6 paraméterek ürítése a verembol
- helyett más megoldás
- RET 6 visszatérés a hívó programhoz
- verem ürítéssel . . . SP SP 6
27- C konvenció
- Hogy egy eljárás különbözo számú paraméterrel
legyen hívható, azt úgy lehet elérni, hogy a
paramétereket fordított sorrendben tesszük a
verembe, mert ilyenkor a visszatérési cím alatt
lesz az elso, alatta a második, stb. paraméter,
és általában a korábbi paraméterek döntik el,
hogy hogyan folytatódik a paramétersor.
f(x,y) push y
push x
call f
28- Lokális adat terület, rekurzív és re-entrant
eljárások - Ha egy eljárás muködéséhez lokális adat
területre, - munkaterületre van szükség, és a muködés
befejeztével a - munkaterület tartalma fölösleges, akkor a
munkaterületet - célszeruen 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 byte-os munkaterület lefoglalása
- . . . további regiszter mentések
29- Lokális adat terület (NEAR eljárás esetén)
- (SSSP) lokális adat terület . . .
- 2 . . .
- . . . . . .
- . . . 2
- bp - - - - - - - - - - - - - - - - - - - - -
(SSBP) - 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 érheto el. (A veremben átadott
- paraméterek ugyancsak stack relatív címzéssel, de
pozitív - displacement érték mellett érhetok el.)
30- 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.
31- 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 lehetové, ami azt jelenti, hogy az eljárás
még nem fejezodö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életlentol 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épzelheto el, és minden processzus
saját vermet használ.
32- 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 lehetové teszi (re-entrant).
33- Gyorsító tár (cache 2.16. ábra)
- A processzorok mindig gyorsabbak a memóriáknál.
- A CPU lapkára integrálható memória gyors, de
kicsi. - Feloldási lehetosé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
eloszö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övetkezo valószínuleg
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éretu) blokk (gyorsító sor -
cache line) kerül beolvasásra a memóriából a
gyorsító tárba.
34- 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 ido 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. Ugyanakkora tárban
kevesebb gyorsító sor fér el.
35- Osztott (külön utasítás és adat) gyorsító tár
elonyei - Egyik szállítószalag végzi az utasítás, másik az
operandus eloolvasást. - Az utasítás gyorsító tárat sohasem kell
visszaírni (az utasítások nem módosulnak). - Egyesített gyorsító tár nem lehetséges
párhuzamosítás. - Hierarchia
- elsodleges, a CPU lapkán,
- másodlagos, a CPU-val egy tokban,
- külön tokban.
36- Direkt leképezésu gyorsító tár muködése
(4_38_abrahoz)
Bitek 16 11 3 2
32 bites cím TAG Vonal (Line) SZÓ BÁJT
Entry V TAG Data (32 bájt)
2047
1
0
Ha a gyorsító tár Vonal által mutatott sorában
V1 (valid), és a TAG megegyezik a címben lévo
TAG-gel, akkor az adat bent van a gyorsító tárban
(ebben a sorban).
37- Halmazkezelésu (csoportasszociatív) gyorsító tár
- Ha egy program gyakran használ olyan szavakat,
amelyek távol vannak egymástól, de ugyanoda
képzodnek le a gyorsító tárban, akkor surun kell
cserélni a gyorsító sort. - Ha minden címhez n bejegyzés van, akkor n utas
halmazkeresésu 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 elott a legrégebben használt
bejegyzés kerül ki a gyorsító tárból.
38- Halmaz kezelésu gyorsító tár (4.39. ábra)
Entry V Tag Data V Tag Data V Tag Data V Tag Data
2k-1
1
0
D bejegyzés
A bejegyzés
B bejegyzés
C bejegyzés
Ha a gyorsító tár Vonal által mutatott sorában
az A, B, C és D bejegyzések egyikében V1
(valid), és a hozzá tartozó TAG megegyezik a
címben lévo TAG-gel, akkor az adat bent van a
gyorsító tárban (ebben a bejegyzésben).
39- Memóriába írás
- Straté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 elotte
betölthetjük írás allokálás (write allocation)
többnyire ezt alkalmazzák késleltetett írás
esetén.
40- Memória hierarchia (2.18. ábra)
Elérési ido néhány nanosec gt100 msec
Kapacitás néhány bájt néhány száz
GB
41- CPU (Central Processing Unit)
- Általában egyetlen lapkán van. Lábakon keresztül
kommunikál a többi egységgel (3.34. ábra).
CPU
42- 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.
43- Lényeges a cím- és adatlábak száma (3.34. ábra)
- Ha m címláb van, akkor 2m memóriarekesz érheto 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).
44- Óra, áram (3.3 v. 5V), föld, továbbá
vezérlolá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.
45- Pl. utasítás betöltése
- A CPU kéri a sín használat jogát,
- Az utasítás címét a cím lábakra teszi,
- vezérlo 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érlo vonalra, - a CPU végrehajtáshoz átveszi az utasítást.
46- Sín (bus) Korai személyi számítógépeknél
egyetlen (külso) rendszersín, manapság legalább
ketto van egy belso és egy külso (I/O), 3.35.
ábra.
47- Sínprotokoll a sín muködésének a csatlakozások
mechanikai, elektronikus definíciója - Mesterek (masters) aktív (kezdeményezo)
berendezések (CPU, lemez vezérlo). - Szolgák (slaves) passzív (végrehajtó)
berendezések (lemez vezérlo, CPU), 3.35. ábra. - Ez a szereposztás tranzakciónként eltéro 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!
48- A sínhez kapcsolódó lapkák lényegében
erosítok.Mester sín vezérlo (bus driver)
sín. Sín sín vevo (bus receiver)
szolga.Mesterszolgáknál sín adó-vevo (bus
transceiver). - 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.
49- Sínszélesség (pl. IBM PC 3.37., 3.51. ábra).
3.37. ábra. A cím szélességének növekedése az
elmúlt idoszakban
503.51. ábra. A PC/AT sín két komponense, az
eredeti PC és az új rész
51- Alaplap (motherboard, parentboard, 3.51. ábra)
- Rajta van a CPU, sín(ek), ezen illeszto helyek
(slots) a memória és a beviteli/kiviteli
(Input/Output I/O) eszközök számára (3.51.,
2.28. ábra). - I/O eszköz maga az eszköz vezérlo (controller)
külön kártyán vagy az alaplapon (2.29. ábra). - 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.
52Memóriasín
SCSI sín
Hálózati vezérlo
2.30. ábra. Egy tipikus modern PC PCI, SCSI és
ISA sínnel
53- Sokszorozott (multiplexed) sín pl. eloször a cím
van a sínen, majd az adat (ugyanazokon a
vezetékeken). 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. Általában bonyolultabb a
sín protokoll.
54- Sínek idozítése
- Szinkron sín 5 100 MHz-es órajel van a sín egy
vezetékén. Minden síntevékenység az órajelhez van
igazítva. - Síntevékenységek cím megadása, vezérlojelek
(MREQ, RD, WAIT), adat megérkezése, (3.38.
ábra)
Jelölés Tevékenység min max ido
TAD Cím megérkezési ideje a sínre 11 ns
TML Cím a sínen van MREC elott 6 ns
55 Kicsit hosszabb válasz ido esetén még egy
várakozó ciklusra lenne szükség.
56- Minden sínmuvelet a ciklusido (sín ciklus) egész
számú többszöröséig tart pl. 2.1 ciklusido
helyett 3 ciklusido kell. -
- A leglassabb eszközhöz kell a sín sebességét
igazítani, a gyors eszköz is lassan fog muködni.
57-
- Aszinkron sín Minden eseményt egy elozo esemény
okoz! Nincs órajel, WAIT. MSYN (kérés -
Master SYNchronization), SSYN (kész - Slave
SYNchronization). - Ugyanazon a sínen gyors és lassú mester - szolga
pár is lehet.
58-
- Aszinkron sín muködése (3.39. ábra)
- Akkor indulhat újabb tranzakció, ha SSYN negált.
Ugyanazon a sínen gyors és lassú mester -
szolga pár is lehet.
59- 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.
60- Sínütemezés (kiosztás)
- Ha egyszerre többen is igénylik a sínt (CPU,
I/O vezérlo), akkor a sínütemezo (bus arbiter)
dönt. - Általában I/O elsobbséget kap (cikluslopás).
61- Sínütemezés (kiosztás bus arbitration)
- Centralizált (3.40. (a) ábra) (margaréta)
láncolás (daisy chaining), egy vagy többszintu
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 kezdodhet
a sín használata közben).
62- 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.41. ábra ha nem foglalt és be, akkor
lefoglalhatja a sínt (ki negálása, foglalt
beállítása).
Sínhasználat kérése
Foglalt
F
Ütemezo vonal
63- Sín muveletek
- Az eddigiek közönséges sín muveletek voltak.
- Blokkos átvitel (3.42. ábra) A kezdo 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ésobb tárgyaljuk
részletesen. - Több processzoros rendszerekben olvasás
módosítás visszaírás ciklus szemafor.
64- Példák sínekre
- Az elso IBM PC (3.37. ábra) 62 vonalas (vezeték,
line), 20 címnek, 8 adatnak DMA, megszakítás - PC/AT szinkron sín (3.51. ábra) további 36
vezeték (címnek összesen 24, adatnak 16, ). - Microchannel (IBM OS/2 gépekhez), szabadalmak
- 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 bovített ISA
(sávszélesség 33.3 MB/s). - Színes TV-hez 135 MB/s sávszélesség kellene
(1024768 pixel, 3 bájt2, 30 kép/sec).lemez ?
memória ? képernyo
65- PCI (Peripheral Component Interconnect) 32 bites
adat átvitel (33,3 MHz, sávszélesség 133 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 bovítokártyákkal.
- Megoldás (3.52. vagy 2.30. ábra) több sín Belso
sín, PCI híd, PCI sín, ISA híd, ISA sín.
66- PCI sín ütemezés (kiosztás) request, grant.
3.54. ábra. A PCI sín centrális ütemezot használ.
67- Általános soros sín (USB)
- Igény bármikor könnyen lehessen perifériát
kapcsolni a géphez, ne kelljen szétszedni a
gépet, újra boot-olni, ne kelljen áramellátásról
gondoskodni, Plug n Play (csatlakoztasd és
muködik) perifériák.Sokféle perifériát lehessen
azonos módon csatlakoztatni, akár a gép muködése
közben, hardver ismeretek nélkül.
68- USB (Universal Serial Bus - általános soros sín)
Négy vezeték adatok (2), tápfeszültség (1),
föld (1). - USB 1.0 1,5 Mbps (billentyuzet, egér,)
- USB 1.1 12 Mbps (nyomtató, fényképezogép,)
- USB 2.0 480 Mbps (DVD lejátszó,)
- 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).
69- 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 elso csomag mindig SOF Start Of Frame
keret kezdet, szinkronizálja az eszközöket.
70- A keret lehet
- Control vezérlo
- Eszköz konfigurálás,
- Parancs,
- Állapot lekérdezés.
- Isochronous izoszinkron valós ideju eszközök
használják, pl. telefon. Hiba esetén nem kell
ismételni az üzenetet. - Bulk csoportos nagy tömegu 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érdezheto az eszköz állapota.
71- A csomag lehet
- Token parancs (központ küldi az eszköznek)
- SOF.
- IN be adatokat kér az eszköztol. Az IN
parancsban meg lehet adni, melyik eszköztol
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.
72- 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 ellenorzésére). - Handshake kézfogás
- ACK az elozo adatcsomagot hibátlanul vettem,
- NAK CRC hibát észleltem,
- STALL kérem, várjon, el vagyok foglalva.
- Special speciális.
733.52. ábra. Egy korai Pentium rendszer
architektúrája
74PCI sín
3.53. ábra. Egy modern Pentium 4 rendszer sín
struktúrája
75PCI Express
Csatoló lapka
2. szintu gyorsítótár
CPU
Memória
Soros kapcsolatot biztosító csatorna párok Egy
csatorna csak két vezeték
Kapcsoló
Mágnes-lemezek
Hálózat
Grafika
USB 2
Egyéb
3.57. ábra. Egy tipikus PCI Express rendszer
vázlata
76Hagyományos sín PCI Express
Több leágazású sín Központosított kapcsoló
Széles, párhuzamos sín Keskeny, közvetlen soros kapcsolat
Bonyolult mester szolga kapcsolat Kicsi, csomagkapcsolt hálózat
CRC kód nagyobb megbízhatóság
A csatlakozó kábel gt 50 cm lehet
Az eszköz kapcsoló is lehet
Meleg csatlakoztatási lehetoség
Kisebb csatlakozók kisebb gép
- Nem kell nagy bovítokártyával csatlakozni a
sínhez - A winchester a monitorba is kerülhet
- Egy csatorna hasznos sávszélessége minimum 2
Gbps, de bíznak benne, hogy hamarosan 10 Gbps
77Rétegek
Szoftver
Tranzakciós Fejléc Hasznos adat
Kapcsolati Seq Fejléc Hasznos adat CRC
Fizikai Keret Seq Fejléc Hasznos adat CRC Keret
3.58. ábra. A PCI Express protokollrendszer A
csomagok formátuma Fejléc cím, magas/alacsony
prioritás, Seq az üzenet sorszáma CRC
ciklikus redundanciakód (Cyclic Redundancy
Check) Ha a számított és kapott CRC megegyezik,
akkor nyugtázza, különben újra kéri az adatot.
78- Feladatok
- Melyik az eljárást hívó utasítás?
- Hova helyezi el a visszatérési címet a CALL
utasítás? - Mi a különbség a közeli és távoli eljárás hívás
között? - Meghívható-e egy közeli/távoli eljárás másik
szegmensbol? - Honnan tudja a CALL utasítás, hogy közeli vagy
távoli a hívott eljárá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 történik RET 4 hatására?
- Mi történik CALL FAR 8BXSI hatására?
79- Feladatok
- Milyen a feltételes ugró utasítások címzési
módja? - Mi a különbség a JA és JG utasítás között?
- Sorolja fel az aritmetikai csoportba tartozó
feltételes ugró utasításokat! - Írjon programrészletet, amely az A, B, C címkéhez
ágazik el aszerint, hogy AX lt, vagy gt 0! - Írjon programrészletet, amely az A, B, C címkéhez
ágazik el aszerint, hogy X lt, vagy gt Y! X
elojeles, Y elojel nélküli bájt. - A program JCXZ A utasítása hibás, mert az A címke
túl messze van. Hogy javítható a hiba?
80- Feladatok
- Milyen ciklus szervezo utasításokat ismer? Hogy
muködnek? - Mi a különbség a LOOP és a LOOPZ utasítás között?
- Írjon programrészletet az 50 elemu, szavakból
álló A tömb elso 0 elemének megtalálására! - Írjon programrészletet az 50 elemu, szavakból
álló A tömb utolsó 0 elemének megtalálására! - Írjon programrészletet az 50 elemu, bájtokból
álló A tömbben található a betuk megszámlálására! - Hibás a LOOPNE A utasítás, mert az A címke túl
messze van. Hogy javítható a hiba?
81- Feladatok
- Milyen paraméter átadási módszereket ismer?
- Alakítsa át a skalárszorzat kiszámításának
változatait, hogy elojeles/elojel nélküli
bájt/word vektor elemeit összegezze (számítson
arra, hogy az eredmény nem fér el egy
bájton/word-ön)! - Készítsen eljárást 2 jegyu elojeles/elojel
nélküli szám decimálissá konvertálására és
kiírására! - Készítsen eljárást elojeles/elojel nélküli word
decimálissá konvertálására és kiírására!
82- Feladatok
- Eljárás hívás esetén mit jelent a C konvenció?
- Hogy történik a paraméter átadás C függvények
esetén? - Mi a lokális adat terület?
- Hogy alakíthatunk ki lokális adat területet?
- Mi a rekurzív, és mi a re-entrant eljárás?
- Készítsen rekurzív eljárást n! kiszámítására!
- Készítsen rekurzív eljárást a és b legnagyobb
közös osztójának meghatározására (euklideszi
algoritmus)!
83- Feladatok
- Hol helyezkedhet el a gyorsítótár?
- Mi a lokalitási elv?
- Mit nevezünk találati aránynak?
- Mi a szerepe a találati aránynak?
- Mi a hiba arány?
- Hogy határozható meg az átlagos keresési ido?
- Mi a gyorsító sor?
- Mit nevezünk osztott gyorsítótárnak?
- Mit nevezünk egyesített gyorsítótárnak?
- Mik az osztott gyorsító tár elonyei?
84- Feladatok
- Mit tartalmaz a direkt leképezésu gyorsító tár
egy bejegyzése? - Mi a TAG?
- Mire szolgál a valid (érvényes) jelzés?
- Hogy muködik a direkt leképezésu gyorsító tár?
- Egy memória cella hány helyen lehet egy direkt
leképezésu gyorsító tárban? - Hogy döntheto el, hogy egy memória cella bent
van-e egy direkt leképezésu gyorsító tárban? - Milyen esetben nem hatékony egy direkt leképezésu
gyorsító tár?
85- Feladatok
- Milyen a halmazkezelésu gyorsító tár felépítése?
- Hogy muködik a halmazkezelésu gyorsító tár?
- Mi a halmazkezelésu gyorsító tár elonye a direkt
leképezésuvel szemben? - Mi az LRU algoritmus?
- Milyen memóriába írási stratégiákat ismer
gyorsító tár esetén? - Mit nevezünk írás áteresztésnek (write through)?
- Mit nevezünk késleltetett írásnak (write
deferred, write back)? - Mit nevezünk írás allokálásnak (write allocation)?
86- Feladatok
- Mit jelent a CPU rövidítés?
- Hogy tartja a kapcsolatot a CPU a környezetével?
- Milyen lábai vannak egy CPU-nak?
- Miért lényeges a cím és adat lábak száma?
- Hány cím adható meg k cím vezetéken?
- Mit nevezünk sínnek?
- Mit nevezünk sín vezérlésnek?
- Mit nevezünk sín ütemezésnek?
- Hogyan történik egy adat beolvasása a memóriából?
- Hogyan történik egy adat kiírása a memóriába?
87- Feladatok
- Mit nevetünk sínnek?
- Mi a sínprotokoll?
- Mi a mester, és mi a szolga?
- Mit nevezünk sín vezérlonek/vevonek/adó-vevonek?
- Mi a sávszélesség?
- Mi a sín aszimmetria?
- Hogy növelheto egy sín sávszélessége?
- Miért nem növelheto szabadon a sín sávszélessége?
- Miért volt szükség a sínek szbványosítására?
- Mit jelent a sokszorozott (multiplexed) sín?
88- Feladatok
- Mit jelent a sokszorozott (multiplexed)?
- Milyen hatása van a sokszorozott sín
használatának? - Hogy muködik a szinkron/aszinkron sín?
- Mire szolgál a mester/szolga szinkronizáció?
- Mi a teljes kézfogás?
- Milyen sín ütemezoket ismer?
- Hogy muködik a centralizált sín ütemezo?
- Hogy muködik a decentralizált sín ütemezo?
- Milyen sín muveleteket ismer?
- Miért elonyös a blokkos átvitel?
89- Feladatok
- Milyen sínt ismer?
- Ismertesse az ISA sínt!
- Ismertesse az EISA sínt!
- Ismertesse az PCI sínt!
- Hogy használható több sín egy gépen belül?
- Miért volt fontos az ISA sín megtartása
fejlettebb sín alkalmazása esetén? - Hogy történik a PCI sín ütemezése?
- Miért használnak külön sínt a memória eléréséhez?
- Hogy illeszkedik a PCI sín a memória sínhez?
90- Feladatok
- Milyen igények kielégítésére szolgál az általános
soros sín (USB)? - Milyen vezetékeket tartalmaz az USB sín, és
miért? - Miért kényelmes az USB sín használata?
- Mi a központi elosztó (root hub), és hogy
muködik? - Mi történik eszköz USB porthoz csatlakoztatásakor?
- Mit jelent egy eszköz konfigurálása?
- Mi a keret (frame), és milyen kereteket ismer?
- Mi a csomag, és milyen csomagokat ismer?
- Milyen irányban haladhatnak a csomagok?
91- Feladatok
- Mire szolgál a SOF csomag?
- Mire szolgál az IN/OUT csomag?
- Mire szolgál az ACK/NAK csomag?
- Mi a CRC?
- Mire szolgál a PCI Express?
- Hogy kapcsolódik a PCI Express a CPU-hoz?
- Hogy kapcsolódik a PCI Express az eszközökhöz?
- Milyen elonyei vannak a PCI Express-nek a sínnel
szemben? - Milyen rétegei vannak a PCI Express protokollnak?