1 / 69

Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

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)

ismael
Download Presentation

Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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! 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. 4. előadás

  3. A feltételek: Zero, Equal, No(Not), Greater, Less, Above, Below, Carry 4. előadás

  4. A feltételek: Zero, Equal, No(Not), Carry, Sign, Overflow, Parity Even, Parity Odd. 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: . . . 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 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 4. előadás

  8. ; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme? mov cx, 100 mov di, -1 ; előbb lehessen inc, mint cmp mov al, 3 NEXT: inc di cmp array[di], al ; array di-edik eleme = 3? LOOPE NEXT ; ugrás NEXT-re, ; ha CX0 és a di-edik elem=3 JNE NEM3 ; CX = 0 vagy array[di]  3 . . . ; array  3 . . . NEM3: . . . ; di az első 3-tól különböző . . . ; elem indexe 4. előadás

  9. String kezelő utasítások Az s forrás területet(DS:SI), a d cél területet pedig (ES:DI)címzi. Az utasítás végződése (B / W) vagy az operandus jelzi, hogy bájtos vagy szavas a művelet. A címzésben résztvevő indexregiszterek értéke 1-gyel módosul bájtos, 2-vel szavas művelet esetén. Ha a D (Direction)flag értéke 0, akkor az indexregiszterek értéke növekszik, 1, akkor csökken. CLD ; D  0 STD ; D  1 4. előadás

  10. Az alábbi utasítások – mint általában az adat mozgató utasítások – érintetlenül hagyják a flag-eket Átvitel az (ES:DI) által mutatott címre a (DS:SI) által mutatott címről: MOVSB ; MOVe String Byte MOVSW ; MOVe String Word MOVS d,s ; MOVe String (byte vagy word) d és s csak azt mondja meg, hogy bájtos vagy szavas az átvitel! 4. előadás

  11. Betöltés AL-be illetve AX-be a (DS:SI) által mutatott címről (csak SI módosul): LODSB ; LOaD String Byte LODSW ; LOaD String Word LODS s ; LOaD String (byte vagy word) Tárolás az (ES:DI) által mutatott címre AL-ből illetve AX-ből (csak DI módosul): STOSB ; STOre String Byte STOSW ; STOre String Word STOS d ; STOre String (byte vagy word) 4. előadás

  12. Az alábbi utasítások beállítják a flag-eket Az (ES:DI) és a (DS:SI) által mutatott címen lévő byte illetve szó összehasonlítása, a flag-ek s – d (!!!) értékének megfelelően állnak be. CMPSB ; CoMPare String Byte CMPSW ; CoMPare String Word CMPS d,s ; CoMPare String (byte vagy word) Az (ES:DI) által mutatott címen lévő byte (word) összehasonlítása AL-lel (AX-szel), a flag-ek AL – d(AX – d) értékének megfelelően állnak be. SCASB ; SCAn String Byte SCASW ; SCAn String Word SCAS d ; SCAn String (byte vagy word) 4. előadás

  13. Ismétlő prefixumok REP  REPZ  REPE és REPNZ  REPNE A Z, E, NZ és NE végződésnek hasonló szerepe van, mint a LOOP utasítás esetén. Ismétlő prefixum használata esetén a string kezelő utasítás CX-szer kerül(het) végrehajtásra: • ha CX = 0, akkor egyszer sem(!!!), • különben minden végrehajtást követően 1-gyelcsökken a CX regiszter tartalma. Amennyiben CX csökkentett értéke 0, akkor nem történik további ismétlés. A flag beállító string kezelő utasítás ismétlésének további feltétele, hogy a flag állapota megegyezzen a prefixum végződésében előírttal. 4. előadás

  14. Ismétlő prefixumok REP  REPZ  REPE és REPNZ  REPNE A program jobb olvashatósága érdekében • flag-et nem állító utasítások előtt mindigREP-ethasználjunk, • flag-et beállító utasítás előtt pedigsohaseREP-et, hanemhelyette a vele egyenértékűREPE-tvagy REPZ-t! 4. előadás

  15. A LOOP utasítás ismertetésénél bemutatott feladat megoldása string kezelő utasítás segítségével : ; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme? mov cx,100 mov di,offset array MOV AL,3 REPE SCAS array ; array 0., 1., ... eleme = 3? JNE NEM3 . . . ; array  3, . . . NEM3: DEC DI ; DI az első  3 elemre mutat . . . 4. előadás

  16. Megjegyzések: - Amostani megoldás használja az ES szegmens regisztert, és feltételeztük, hogy a tartalma jó. - A két megoldás közötti eltérés nem minden pontban lényeges, pl. az első változat úgy is elkészíthető lett volna, hogy ott is mov di,offset array szerepeljen, de a mostani megoldásnál ez az utasítás kötelező! - A mostani megoldás lényegesen gyorsabb végrehajtást biztosít, mint a korábbi. 4. előadás

  17. operandus beolvasó egység utasítás végrehajtó egység utasítás beolvasó egység utasítás dekódoló egység eredményvisszaíró egység Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeték (pipelining). Kezdetben: Utasítás beolvasás Utasítás végrehajtás Minden fázist külön hardver hajt végre (2.4. ábra), ezek párhuzamosan működhetnek (szerelő csarnok). S1 S2 S3 S4 S5 4. előadás

  18. Késleltetés (latency): mennyi ideig tart egy utasítás. • Áteresztőképesség (processor bandwidth): hány MIPS (Million Instruction Per Second) a sebesség. 4. előadás

  19. Több szállítószalagos CPU Két szállítószalag (2.5. ábra): Két ALU, de közös regiszterek, A két szállítószalag lehet különböző is (Pentium): fő – ez többet tud, elsőbbséget élvez – és mellék Bonyolult szabályok a párhuzamos végrehajthatóságra (fordítók vagy hardver). operandus beolvasó egység utasítás végrehajtó egység utasítás dekódoló egység eredményvisszaíró egység utasítás beolvasó egység operandus beolvasó egység utasítás végrehajtó egység utasítás dekódoló egység eredményvisszaíró egység S1 S2 S3 S4 S5 4. előadás

  20. S4 ALU ALU operandus beolvasó egység utasítás beolvasó egység utasítás dekódoló egység eredményvisszaíró egység LOAD STORE lebegő-pontos egység Szuperskaláris processzor 5 funkcionális egységgel: S1 S2 S3 S5 2.6. ábra 4. előadás

  21. Vezérlő egység sok azonos processzor (ILLIAC IV: (4*)8*8), mindnek saját memóriája. Vezérlő processzor adja ki a feladatot. Mindegyik processzor ugyanazt csinálja, de a saját adatain. Már nem divatos (drága, nehéz kihasználni). Processzor szintű párhuzamosítás • Tömb (array) processzor (2.7. ábra) Teríti az utasításokat processzor memória 8*8-as processzor/memória rács 4. előadás

  22. Vektor processzorok Vektor regisztereket használnak. A vektor regiszter több hagyományos regiszterből áll. Gyors szállítószalag gondoskodik a regiszterek feltöltéséről, szintén gyors szállítószalag továbbítja a regiszterek tartamát az aritmetikai egységbe, pl. a vektor regiszterek összeadásához. Az eredmények szintén vektor regiszterbe kerülnek. Jól kombinálhatók hagyományos processzorokkal. 4. előadás

  23. A közös memória megkönnyíti a feladat megosztását. • Csak közös memória. Nagyon terheli a memória sínt. • Lokális memória is van. • Sok (>64) processzoros rendszert nehéz építeni a közös memória miatt. közös memória … CPU CPU CPU helyi memóriák közös memória … CPU CPU CPU • Multiprocesszorok 4. előadás

  24. Multiszámítógépek: Nincs közös memória:A CPU-k üzenetekkel kommunikálnak egymással.Néhány μs üzenet idő. 2-3 dimenziós hálók, fák, gyűrűk. Közel 10 000-es rendszer is van. 4. előadás

  25. Gyorsító tár (cache – 2.16. ábra) A processzorok mindig gyorsabbak a memóriáknál. Feloldási lehetőség: a központi memória egy kis részét (gyorsító tár) a CPU lapkára helyezni: Amikor egy utasításnak adatra van szüksége, akkor először itt keresi, ha nincs itt, akkor a központi memóriában. Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz (ciklus, mátrix manipulálás, …). Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor - cashe line) kerül beolvasásra a memóriából a gyorsító tárba. 4. előadás

  26. Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsító tárból. Hiba arány:1-h. Ha a gyorsító tár elérési ideje: c, a memória elérési ideje: m, akkor az átlagos elérési idő = c + (1- h) m. A gyorsító tár mérete: nagyobb tár – drágább. A gyorsító sor mérete: nagyobb sor – nagyobb a sor betöltési ideje is. 4. előadás

  27. Osztott (külön utasítás és adat) gyorsító tár előnyei: • Egyik szállítószalag végzi az utasítás, másik az operandus előolvasást. • Az utasítás gyorsító tárat sohasem kell visszaírni (az utasítások nem módosulnak). Közös gyorsító tár: párhuzamosítás nem lehetséges. Hierarchia: • elsődleges, a CPU lapkán, • másodlagos, a CPU-val egy tokban, • külön tokban. 4. előadás

  28. Direkt leképezésű gyorsító tár működése: (4_38_abrahoz) 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). 4. előadás

  29. Halmaz kezelésű gyorsító tár Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort. Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsító tárról beszélünk. Ritka a több, mint 4 utas kezelés. LRU (Least Recently Used) algoritmus: gyorsító sor betöltése előtt a legrégebben használt bejegyzés kerül ki a gyorsító tárból. 4. előadás

  30. Halmaz kezelésű gyorsító tár (4.39. ábra) 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 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). 4. előadás

  31. 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 előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén. 4. előadás

  32. regiszterek Gyorsító tár Központi memória Mágneslemez Optikai lemez Szalag Elérési idő: néhány nanosec 100 msec Kapacitás: néhány bájt néhány száz GB Memória hierarchia (2.18. ábra) 4. előadás

  33. címzés adat sín vezérlésmegszakítások sín kiosztássegéd processzorállapotsegéd információk Φ+5V földelés órajel tápfeszültség CPU (Central Processing Unit) Általában egyetlen lapkán van. Lábakon keresztül kommunikál a többi egységgel (3.33. ábra). CPU 4. előadás

  34. címzés adat sín vezérlésmegszakítások sín kiosztássegéd processzorállapotsegéd információk CPU Φ+5V 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. 4. előadás

  35. címzés adat sín vezérlésmegszakítások sín kiosztássegéd processzorállapotsegéd információk CPU Φ+5V Lényeges a cím- és adatlábak száma (3.33. ábra): • Ha m címláb van, akkor 2m memóriarekesz érhető el (tipikus m = 16, 20, 32, 64). • Ha n adatláb van, akkor egyszerre n bit olvasható illetve írható (tipikus n = 8, 16, 32, 36, 64). 4. előadás

  36. címzés adat sín vezérlésmegszakítások sín kiosztássegéd processzorállapotsegéd információk CPU Φ+5V Ó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. 4. előadás

  37. címzés adat sín vezérlésmegszakítások sín kiosztássegéd processzorállapotsegéd információk CPU Φ+5V Pl. utasítás betöltése: • A CPU kéri a sín haszálat jogát, • Az utasítás címét a cím lábakra teszi, • vezérlő vonalon informálja a memóriát, hogy olvasni szeretne, • a memória a kért szót az adat vonalakra teszi, kész jelzést tesz egy vezérlő vonalra, • a CPU végrehajtáshoz átveszi az utasítást. 4. előadás

  38. CPU lapka regiszterek memória-sín memória sínvezérlő B/K sín ALU modem nyomtató lemez Lapkán belüli sinek Sín (bus): Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább kettő van: egy belső és egy külső (I/O), 3.34. ábra. 4. előadás

  39. Sínprotokoll: a sín működésének + a csatlakozások mechanikai, elektronikus definíciója Mesterek (masters): aktív (kezdeményező) berendezések (CPU, lemez vezérlő). Szolgák (slaves): passzív (végrehajtó) berendezések (lemez vezérlő, CPU), 3.35. ábra. Ez a szereposztás tranzakciónként eltérő lehet. A memória sohasem lehet mester! 4. előadás

  40. A sínhez kapcsolódó lapkák lényegében erősítők.Mester – sín vezérlő (bus driver) – sín. Sín – sín vevő (bus receiver) – szolga.Mester–szolgáknál: sín adó-vevő (bus tranceiver). A csatlakozás gyakran tri-state device vagy open collector – wired-OR segítségével történik. Sávszélesség: (továbbítható bitek száma) / sec. Sávszélesség növelése:Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás. Sínszélesség: szélesebb sín  drágább, kompatibilitás. 4. előadás

  41. 8088 80288 80388 20 bites cím vezérlés 4 bites 8 bites Sínszélesség (pl. IBM PC: 3.36., 3.49. ábra). 3.36. ábra. A cím szélességének növekedése az elmúlt időszakban 4. előadás

  42. Sokszorozott (multiplexed) sín: pl. először a cím van a sínen (ugyanazokon a vezetékeken), majd az adat. Ilyenkor a sín szélesség lényegesen csökken (olcsóbb, kevesebb láb szükséges a sínhez való csatlakozáshoz), csökken a sáv szélesség is, de nem olyan mértékben, és általában bonyolultabb a sín protokoll is. Gyorsabb CPU gyorsabb sínt igényel! Kívánság:PC cseréjénél megmaradhasson a régi perifériák egy része: az új gépben is kell a régi sín! Sínek szabványosítása. Egy gépen belül több sín is használható: 2.30. ábra. 4. előadás

  43. CPU Memória sín Központi memória Gyorsító tár PCI-híd SCSI sín SCSI-szkenner SCSI-lemez SCSI-vezérlő Video vezérlő Hálózati vezérlő PCI sín Nyomtató vezérlő Hangkártya ISA-híd Modem ISA sín 2.30. ábra.Egy tipikus modern PC PCI, SCSI és ISA sínnel 4. előadás

  44. Alaplap (motherboard, parentboard, 3.49. ábra) Rajta van a CPU, sín(ek), ezen illesztő helyek (slots) a memória és a beviteli/kiviteli (Input/Output – I/O) eszközök számára (2.28. ábra). I/O eszköz: maga az eszköz + vezérlő (controller) külön kártyán vagy az alaplapon (2.29. ábra). 4. előadás

  45. 4. előadás

  46. Sínek időzítése Szinkron sín: a sín egy vezetékén lévő 5 – 100 MHz-es órajel vezérel. Minden síntevékenység az órajelhez van igazítva. Síntevékenységek: cím megadása, vezérlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.37. ábra) 4. előadás

  47. Olvasási ciklus 1 várakozó állapottal T1 T2 T3 Φ címadatMREQ#RD#WAIT# TAD A kiolvasandó rekesz címe adat TML Minimális válasz idő Kicsit hosszabb válasz idő esetén még egy várakozó ciklusra lenne szükség. 4. előadás

  48. Minden sínművelet a ciklusidő (sín ciklus) egész számú többszöröséig tart: pl. 2.1 ciklusidő helyett 3 ciklusidő kell. A leglassabb eszközhöz kell a sín sebességét igazítani, a gyors eszköz is lassan fog működni. 4. előadás

  49. Aszinkron sín: Minden eseményt egy előző esemény okoz! Nincs órajel, WAIT. MSYN# (kérés - Master SYNchronization), SSYN# (kész - Slave SYNchronization). Akkor indulhat újabb tranzakció, ha SSYN# negált. Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet. 4. előadás

  50. címMREQ#RD#MSYN# adatSSYN# A kiolvasandó rekesz címe adat Aszinkron sín működése (3.38. ábra) 4. előadás

More Related