; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word
description
Transcript of ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word
Máté: Architektúrák 4. előadás 1
; 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 2
; 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 3
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 4
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 5
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 6
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 7
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 8
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 9
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 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ö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 11
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 12
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 13
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 14
; 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 15
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 16
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 17
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 18
+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 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
Máté: Architektúrák 4. előadás 20
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 21
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 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
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 32
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 33
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 34
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 35
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 36
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 37
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 38
Ó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 39
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 40
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 41
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 42
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 43
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 44
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 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
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 53
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 54
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 55
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.
Máté: Architektúrák 4. előadás 56
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).
Máté: Architektúrák 4. előadás 57
• 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 kérheti a sínt (ki negálása, foglalt beállítása).
Máté: Architektúrák 4. előadás 58
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 59
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 60
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 61
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 62
Á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 63
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 64
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 65
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 66
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 67
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 68
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 69
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 70
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 71
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 72
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 73
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 74
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 75
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 76
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 77
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 78
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 79
Feladatok
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 szabványosítására?
Mit jelent a sokszorozott (multiplexed) sín?
Máté: Architektúrák 4. előadás 80
Feladatok
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 81
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 82
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 83
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?