vezérlés átadó utasítások eljárásokkal kapcsolatos utasítások eljárás hívás:
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 PresentationTRANSCRIPT
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
JP ≡ 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
; Két vektor skalár szorzata. 1. változat
code segment para public ’code’
assume cs:code, ds:data, ss:stack, es:nothing
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
Máté: Architektúrák 4. előadás 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
Máté: Architektúrák 4. előadás 10
ism: mov al,a[bx] ; al a[0], később a[1], ...
imul b[bx] ; ax a[0]b[0], a[1]b[1], ...
add dx,ax ; dx részösszeg
inc bx ; bx bx+1, 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 cx=0
jmp ism ; ugrás az ism címkére
kesz: mov ax,dx ; a skalár szorzat értéke ax-ben
; C
Máté: Architektúrák 4. előadás 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
Máté: Architektúrák 4. előadás 12
Egyszerűsítési lehetőség:
; B
dec cx ; cx cx-1, (vissza)számlálás
jcxz kesz ; ugrás a kész címkére, ha cx=0
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
Máté: Architektúrák 4. előadás 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
Máté: Architektúrák 4. előadás 14
A paraméterek szabványos helyen történő á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ÉNŐ ÁTADÁSÁVAL
CALL SKAL ; ELJÁRÁS HÍVÁS; eredmény az AX regiszterben
; Ccall hexa ; az eredmény kiírásamov 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
Máté: Architektúrák 4. előadás 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 n=0
xor bx,bx ; bx 0,
; bx-et használjuk indexezéshez
Máté: Architektúrák 4. előadás 16
ism: mov al,a[bx] ; al a[0], később a[1], ...imul b[bx] ; ax a[0]b[0], a[1]b[1],...add dx,ax ; dx részösszeginc bx ; bx bx+1, az index növelése
; BLOOP ism ; ugrás az ism címkére,
; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben
POP DX ; VISSZAMENTÉSEKPOP CXPOP BX
; CRET ; VISSZATÉRÉS A HÍVÓ
; PROGRAMHOZSKAL ENDP ; A SKAL ELJÁRÁS VÉGE; D…
Csak az a és b vektor skalár szorzatát tudja kiszámolni!
Máté: Architektúrák 4. előadás 17
A paraméterek regiszterekben történő átadása ; Két vektor skalár szorzata. 3. változat. . .; A; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; REGISZTEREKBEN TÖRTÉNŐ ÁTADÁSÁVAL
MOV CL, n ; PARAMÉTER BEÁLLÍTÁSOKXOR CH, CH ; CX = n, ÉRTÉKMOV SI,OFFSET a ; SI a OFFSET CÍMEMOV DI,OFFSET b ; DI b OFFSET CÍMEcall skal ; eljárás hívás
; eredmény az ax regiszterbencall hexa ; az eredmény kiírásamov si,offset kvse ; kocsi vissza, soremelés call kiiro ; kiírása
. . .ret ; visszatérés az Op.
rendszerhezskalar endp ; a skalár eljárás vége
Máté: Architektúrák 4. előadás 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 n=0
xor bx,bx ; bx 0,
; bx-et használjuk indexezéshez
Máté: Architektúrák 4. előadás 19
ism: mov al,[SI+BX] ; FÜGGETLEN a-tólimul BYTE PTR [DI+BX]; FÜGGETLEN b-től
; csak „BYTE PTR”-ből derül ki, hogy 8 bites a szorzásadd dx,ax ; dx részösszeginc bx ; bx bx+1, az index növeléseloop ism ; ugrás az ism címkére,
; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben
pop dx ; visszamentésekpop cxpop bxret ; 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!
Máté: Architektúrák 4. előadás 20
; Két vektor skalár szorzata. 4. változat. . .; A; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; VEREMBEN TÖRTÉNŐ ÁTADÁSÁVAL
MOV AL,n ; AL-t nem kell menteni, mertXOR AH,AH ; AX-ben kapjuk az eredménytPUSH AX ; AX=n a verembeMOV AX,OFFSET a ; AX a OFFSET címePUSH AX ; a verembeMOV AX,OFFSET b ; AX b OFFSET címePUSH AX ; a verembe
A verembe került: n értéke, a címe, b címe paraméterek
Máté: Architektúrák 4. előadás 21
call skal ; eljárás hívás; eredmény az ax regiszterben
ADD SP,6 ; paraméterek ürítése a veremből
. . .
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
Máté: Architektúrák 4. előadás 22
skal proc ; Közeli (near) eljárás kezdetePUSH BP ; BP értékét mentenünk kellMOV BP,SP ; BP SP,
; a stack relatív címzéshezPUSH SI ; mentésekPUSH DIpush bxpush 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
Máté: Architektúrák 4. előadás 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
(SS:SP) 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 - - - - - - - - - - - - - - - - - - - - - (SS:BP)+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 . . .
Máté: Architektúrák 4. előadás 24
+10 bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)+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,6[BP] ; SI az egyik vektor címeMOV DI,4[BP] ; DI a másik vektor címeMOV CX,8[BP] ; CX a dimenzió értékexor dx,dx ; az eredmény ideiglenes helyejcxz kesz ; ugrás a kesz címkére, ha n=0xor bx,bx ; bx 0, indexezéshez
Máté: Architektúrák 4. előadás 25
ism: mov al,[si+bx] ; független a-tólimul byte ptr [di+bx] ; független b-től
; csak „byte ptr”-ből derül ki, hogy 8 bites a szorzásadd dx,ax ; dx részösszeginc bx ; bx bx+1, az index növeléseloop ism ; ugrás az ism címkére,
; ha kell ismételnikesz: mov ax,dx ; a skalár szorzat értéke ax-ben
Máté: Architektúrák 4. előadás 26
pop dx ; visszamentésekpop cxpop bxPOP DIPOP SIPOP BPret ; 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 veremből
helyett más megoldás: RET 6 ; visszatérés a hívó programhoz
; verem ürítéssel: . . . SP = SP + 6
Máté: Architektúrák 4. előadás 27
C konvencióHogy egy eljárás különböző 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 első, 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
Máté: Architektúrák 4. előadás 28
Lokális adat terület, rekurzív és re-entrant eljárásokHa 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 byte-os munkaterület lefoglalása. . . ; további regiszter mentések
Máté: Architektúrák 4. előadás 29
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 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.
Máté: Architektúrák 4. előadás 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 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 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 lehetővé teszi (re-entrant).
Máté: Architektúrák 4. előadás 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 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 - cache line) kerül beolvasásra a memóriából a gyorsító tárba.
Máté: Architektúrák 4. előadás 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 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. Ugyanakkora tárban kevesebb gyorsító sor fér el.
Máté: Architektúrák 4. előadás 35
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).Egyesített gyorsító tár: nem lehetséges
párhuzamosítás.
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 36
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 Data (32 bájt)2047
… …
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 37
Halmazkezelésű (csoportasszociatív) 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 38
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 39
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 40
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 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).
címzés adat
sínvezérlésmegszakítások
sínütemezés/kiosztássegédprocesszorállapotvegyes
Φ +5V földelés
órajel tápfeszültség
CPU
Máté: Architektúrák 4. előadás 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.
címzés adat
sínvezérlésmegszakítások
sínütemezés/kiosztás
segédprocesszorállapotvegyes
Φ +5V
CPU
Máté: Architektúrák 4. előadás 43
Lényeges a cím- és adatlábak száma (3.34. á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ínvezérlésmegszakítások
sínütemezés/kiosztás
segédprocesszorállapotvegyes
Φ +5V
CPU
Máté: Architektúrák 4. előadás 44
Ó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ínvezérlésmegszakítások
sínütemezés/kiosztás
segédprocesszorállapotvegyes
Φ +5V
CPU
Máté: Architektúrák 4. előadás 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é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ínvezérlésmegszakítások
sínütemezés/kiosztás
segédprocesszorállapotvegyes
Φ +5V
CPU
Máté: Architektúrák 4. előadás 46
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.35. ábra.
sínvezérlő memória
lemez modem nyomtató
memória-sín
B/K sín
CPU lapka
regiszterek
Lapkán belüli sínek
ALU
Máté: Architektúrák 4. előadás 47
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 48
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 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.
Máté: Architektúrák 4. előadás 49
Sínszélesség (pl. IBM PC: 3.37., 3.51. ábra).
8086
20 bites cím
vezérlés 80286 4 bites 80386
8 bites
3.37. á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 50
3.51. ábra. A PC/AT sín két komponense, az eredeti PC és az új rész
Máté: Architektúrák 4. előadás 51
Alaplap (motherboard, parentboard, 3.51. á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 (3.51., 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).
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 52
2.30. ábra. Egy tipikus modern PC PCI, SCSI és ISA sínnel
Hálózati vezérlő
SCSI sín
Memóriasín
SCSI-szkenner
SCSI-lemez
SCSI-vezérlő
Video vezérlő
PCI-hídCPU
Gyorsító tárKözponti memória
Nyomtató vezérlőHangkártya ISA-híd Modem
PCI sín
ISA sín
Máté: Architektúrák 4. előadás 53
Sokszorozott (multiplexed) sín: pl. előszö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.
Máté: Architektúrák 4. előadás 54
Sínek időzí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érlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.38. á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 55
adat
A kiolvasandó rekesz címe
TAD
TML
T1 T2 T3
Olvasási ciklus 1 várakozó állapottal
A memóriából történő olvasás ideje
Φ
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 56
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 57
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).
Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák 4. előadás 58
Aszinkron sín működése (3.39. ábra)Akkor indulhat újabb tranzakció, ha SSYN# negált.
adat
A kiolvasandó rekesz címecím
MREQ#
RD#
MSYN#
adat
SSYN#
Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák 4. előadás 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.
Máté: Architektúrák 4. előadás 60
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 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ö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ínhasználat kérése
Sínhasználat engedélyezése
Csak akkor engedi tovább a jelet, ha nem kérte a sínt
Máté: Architektúrák 4. előadás 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).
1 2 3 4 5
Sínhasználat kérése
Ütemező vonal
FoglaltΦ
Máté: Architektúrák 4. előadás 63
Sín műveletek
Az eddigiek közönséges sín műveletek voltak.
Blokkos átvitel (3.42. á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 64
Példák sínekreAz első 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), szabadalmakISA (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 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 bővítőkártyákkal.
Megoldás (3.52. vagy 2.30. ábra): több sín Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.
Máté: Architektúrák 4. előadás 66
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.54. ábra. A PCI sín centrális ütemezőt használ.
Máté: Architektúrák 4. előadás 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 működik) perifériák.Sokféle perifériát lehessen azonos módon csatlakoztatni, akár a gép működése közben, hardver ismeretek nélkül.
Máté: Architektúrák 4. előadás 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 (billentyűzet, egér,…)
USB 1.1 12 Mbps (nyomtató, fényképezőgé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).
Máté: Architektúrák 4. előadás 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 első csomag mindig SOF: Start Of Frame – keret kezdet, szinkronizálja az eszközöket.
Máté: Architektúrák 4. előadás 70
A keret lehet• Control – vezérlő:
Eszköz konfigurálás,Parancs,Á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 71
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 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 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 73
3.52. ábra. Egy korai Pentium 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 74
3.53. ábra. Egy modern Pentium 4 rendszer sín struktúrája
PCI sín
Pentium 4 CPU
I DCsatolólapka
Főmemória
Grafikuskártya
Monitor
ATAPI vezérlőUSB 2SCSI
Egér Billen-tyűzet
Mágneslemez-egység
DVD-meghajtó
Memóriasín
AGP sín
Lokális sín
1. szintű gyorsítótárak
2. szintű gyorsítótár
Szabad bővítőhely
Máté: Architektúrák 4. előadás 75
3.57. ábra. Egy tipikus PCI Express rendszer vázlata
2. szintű gyorsítótár
CPUCsatoló lapka
Memória
Kapcsoló
GrafikaMágnes-lemezek Hálózat USB 2 Egyéb
Soros kapcsolatot biztosító
csatorna párok
Egy csatorna csak két vezeték
PCI Express
Máté: Architektúrák 4. előadás 76
Hagyomá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 > 50 cm lehet
Az eszköz kapcsoló is lehet
Meleg csatlakoztatási lehetőség
Kisebb csatlakozók: kisebb gép
• Nem kell nagy bővítőká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
Máté: Architektúrák 4. előadás 77
3.58. ábra. A PCI Express protokollrendszer A csomagok formátuma
Fejléc cím, magas/alacsony prioritás, …Seq# az üzenet sorszámaCRC 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.
Rétegek
Szoftver
Tranzakciós Fejléc Hasznos adat
Kapcsolati Seq# Fejléc Hasznos adat CRC
Fizikai Keret Seq# Fejléc Hasznos adat CRC Keret
Máté: Architektúrák 4. előadás 78
FeladatokMelyik 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
szegmensből?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 8[BX][SI] hatására?
Máté: Architektúrák 4. előadás 79
FeladatokMilyen 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 <, = vagy > 0!Írjon programrészletet, amely az A, B, C címkéhez
ágazik el aszerint, hogy X <, = vagy > Y! X előjeles, Y előjel 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?
Máté: Architektúrák 4. előadás 80
FeladatokMilyen ciklus szervező utasításokat ismer? Hogy
működnek?Mi a különbség a LOOP és a LOOPZ utasítás között?Írjon programrészletet az 50 elemű, szavakból álló A
tömb első 0 elemének megtalálására!Írjon programrészletet az 50 elemű, szavakból álló A
tömb utolsó 0 elemének megtalálására!Írjon programrészletet az 50 elemű, bájtokból álló A
tömbben található a betűk 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?
Máté: Architektúrák 4. előadás 81
Feladatok
Milyen paraméter átadási módszereket ismer?
Alakítsa át a skalárszorzat kiszámításának változatait, hogy előjeles/előjel 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 jegyű előjeles/előjel nélküli szám decimálissá konvertálására és kiírására!
Készítsen eljárást előjeles/előjel nélküli word decimálissá konvertálására és kiírására!
Máté: Architektúrák 4. előadás 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)!
Máté: Architektúrák 4. előadás 83
FeladatokHol 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 idő?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 előnyei?
Máté: Architektúrák 4. előadás 84
FeladatokMit tartalmaz a direkt leképezésű gyorsító tár egy
bejegyzése?Mi a TAG?Mire szolgál a valid (érvényes) jelzés?Hogy működik a direkt leképezésű gyorsító tár?Egy memória cella hány helyen lehet egy direkt
leképezésű gyorsító tárban?Hogy dönthető el, hogy egy memória cella bent van-e
egy direkt leképezésű gyorsító tárban?Milyen esetben nem hatékony egy direkt leképezésű
gyorsító tár?
Máté: Architektúrák 4. előadás 85
FeladatokMilyen a halmazkezelésű gyorsító tár felépítése?Hogy működik a halmazkezelésű gyorsító tár?Mi a halmazkezelésű gyorsító tár előnye a direkt
leképezésűvel 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)?
Máté: Architektúrák 4. előadás 86
FeladatokMit 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?
Máté: Architektúrák 4. előadás 87
FeladatokMit nevetünk sínnek?Mi a sínprotokoll?Mi a mester, és mi a szolga?Mit nevezünk sín vezérlőnek/vevőnek/adó-vevőnek?Mi a sávszélesség?Mi a sín aszimmetria?Hogy növelhető egy sín sávszélessége?Miért nem növelhető 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?
Máté: Architektúrák 4. előadás 88
FeladatokMit jelent a sokszorozott (multiplexed)?Milyen hatása van a sokszorozott sín használatának?Hogy működik a szinkron/aszinkron sín?Mire szolgál a mester/szolga szinkronizáció?Mi a teljes kézfogás?Milyen sín ütemezőket ismer?Hogy működik a centralizált sín ütemező?Hogy működik a decentralizált sín ütemező?Milyen sín műveleteket ismer?Miért előnyös a blokkos átvitel?
Máté: Architektúrák 4. előadás 89
FeladatokMilyen 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?
Máté: Architektúrák 4. előadás 90
FeladatokMilyen 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 műkö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?
Máté: Architektúrák 4. előadás 91
FeladatokMire 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 előnyei vannak a PCI Express-nek a sínnel
szemben? Milyen rétegei vannak a PCI Express protokollnak?