Vez - PowerPoint PPT Presentation

About This Presentation
Title:

Vez

Description:

Title: ARCH/1 - 1 Last modified by: lektor Created Date: 11/7/1995 10:49:56 PM Document presentation format: Diavet t s a k perny re Other titles – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 92
Provided by: usz85
Category:
Tags: check | matrix | parity | vez

less

Transcript and Presenter's Notes

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.

3
Felté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
4
Felté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
50
3.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.

52
Memó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.

73
3.52. ábra. Egy korai Pentium rendszer
architektúrája
74
PCI sín
3.53. ábra. Egy modern Pentium 4 rendszer sín
struktúrája
75
PCI 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
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 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

77
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
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?
Write a Comment
User Comments (0)
About PowerShow.com