Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaZsigmond Soós Megváltozta több, mint 10 éve
1
Máté: Architektúrák2. előadás1 Központi memória (2.9. ábra) A programok és adatok tárolására szolgál. Bit: a memória alapegysége, egy 0-t vagy 1-et tartalmazhat. Memória rekesz (cella): több bit együttese. Minden rekesz ugyanannyi bitből áll. Minden rekeszhez hozzá van rendelve egy szám, a rekesz címe. Egy rekeszre a címével hivatkozhatunk. A rekesz a legkisebb címezhető egység (2.10. ábra). Ma ez legtöbbször 8 bites (bájt – byte). A legtöbb processzor több egymás utáni bájttal is tud dolgozni (szó – word).
2
Máté: Architektúrák2. előadás2 Bájtsorrend (2.11., 12. ábra) A legmagasabb helyértékű bájt a szóban a legalacsonyabb címen: legmagasabb címen: nagy (big) endian kis (little) endian MSBfirstLSBfirst Most/Least Significant Byte first Ha egy 32 bites szó bájtjainak értéke rendre: a, b, c, d, akkor a szó értéke: a*256 3 +b*256 2 +c*256+d a+b*256+c*256 2 +d*256 3 A szövegek karaktereit mindkét esetben növekvő bájt sorrendben helyezik el: problémák a gépek közötti kommunikációban!
3
Máté: Architektúrák2. előadás3 Az Intel 8086/8088 társzervezése A memória byte szervezésű (A5). Egy byte 8 bitből áll. word, double word. Byte sorrend: Little Endian. A negatív számok 2-es komplemens kódban. szegmens, szegmens cím a szegmensen belüli „relatív” cím, logikai cím, virtuális cím, OFFSET, displacement, eltolás, Effective Address (EA) fizikai cím (Address)
4
Máté: Architektúrák2. előadás4 Az Intel 8086/8088 üzemmódjai valós (real) védett (protected) szegmens cím szegmens regiszter ↓ szegmens regiszter page tábla elem tartalma * 16 ↓ szegmens kezdőcíme fizikai cím szegmens kezdőcíme + szegmensen belüli cím
5
Máté: Architektúrák2. előadás5 Szegmens regiszterek (16 bitesek) CS(Code Segment) utasítások címzéséhez SS(Stack Segment) verem címzéséhez DS(Data Segment) (automatikus) adat terület címzéséhez ES(Extra Segment) másodlagos adat terület címzéséhez
6
Máté: Architektúrák2. előadás6 Vezérlő regiszterek (16 bitesek) IP(Instruction Pointer) az éppen végrehajtandó utasítás logikai címét tartalmazza a CS által mutatott szegmensben SP (Stack Pointer) a stack-be (verembe) utolsónak beírt elem logika címét tartalmazza az SS által mutatott szegmensben STATUS(STATUS, SR vagy FLAGS) a processzor állapotát jelző regiszter BP(Base Pointer) a stack indexelt címzéséhez használatos SI(Source Index) a kiindulási (forrás) adat terület indexelt címzéséhez használatos DI(Destination Index) a cél adat terület indexelt címzéséhez használatos
7
Máté: Architektúrák2. előadás7 STATUS (FLAGS) bitjei (flag-jei) O (Overflow) előjeles túlcsordulás D (Direction) a string műveletek iránya, 0: növekvő, 1: csökkenő I (Interrupt) 1: megszakítás engedélyezése (enable), 0: tiltása (disable) T (Trap) 1: „single step”, 0: automatikus üzemmód S (Sign( az eredmény legmagasabb helyértékű bit-je (előjel bit) Z (Zero) 1 (igaz), ha az eredmény 0, különben 0 (hamis) A (Auxiliary Carry) átvitel a 3. és 4. bit között (decimális aritmetika) P (Parity) az eredmény alsó 8 bitjének paritása C (Carry) átvitel előjel nélküli műveleteknél ----ODITSZ-A-P-C 1514131211109876543210
8
Máté: Architektúrák2. előadás8 Általános regiszterek (16 illetve 8 bitesek) word higher byte lower byte AXAHALAccumulátor (szorzás, osztás is) BXBHBLBase Register (címző regiszter) CXCHCLCounter Register (számláló regiszter) DXDHDLData Register (szorzás, osztás, I/O)
9
Máté: Architektúrák2. előadás9 Címzési módok Közvetlen operandus (immediate operand): Az operandus megadása a címrészen (5.16. ábra) Direkt címzés (direct addressing): A memóriacím megadása a címrészen. Az utasítás mindig ugyanazt a címet használja. Az operandus értéke változhat, de a címe nem (fordításkor ismert kell legyen!). Regiszter címzés (register addressing): Mint a direkt címzés, csak nem memóriát, hanem regisztert címez. MOVR14
10
Máté: Architektúrák2. előadás10 Regiszter-indirekt címzés (register indirect addresing): A címrészen valamelyik regisztert adjuk meg, de a megadott regiszter nem az operandust tartalmazza, hanem azt a memóriacímet, amely az operandust tartalmazza (mutató - pointer). Rövidebb és a cím változtatható. Pl.: 5.17. ábra, tömb elemeinek összeadása (a jelöléstől eltekintve Pentium II program). Önmódosító program (Neumann): Ma már kerülendő (cache problémák!), regiszter indirekt címzéssel kikerültük.
11
Máté: Architektúrák2. előadás11 Indexelt címzés (indexed addressing,): Egy eltolási érték (offset) és egy (index) regiszter tartalmának összege lesz az operandus címe, 5.18-19. ábra. Bázisindex címzés (based-indexed addressing): Egy eltolási érték (offset) és két (egy bázis és egy index) regiszter tartalmának összege lesz az operandus címe. Ha R5 A, R6 B címét tartalmazza, akkor LOOP:MOVR4, (R2 + R5) ANDR4, (R2 + R6) Verem címzés (stack addressing): Nem kell operandusz! Az I8086/88 címzési rendszere (A7-9) Minta program: A3-4
12
Máté: Architektúrák2. előadás12 Az I8086/88 címzési rendszere Memória címzés Adat terület címzés Kódba épített adat (immediate – közvetlen operandus) MOVAL, 6; AL új tartalma 6 MOVAX, 0FFH; AX új tartalma 000FFH
13
Máté: Architektúrák2. előadás13 Automatikus szegmens regiszter (ASSUME): DS Direkt memória címzés: a címrészen az operandus logikai címe (eltolás, displacement) MOV AX, SZO; AX új tartalma SZO tartalma MOV AL, KAR; AL új tartalma KAR tartalma Valahol a DS által mutatott szegmensben: SZODW1375H KARDB3FH (DS:SZO) illetve (DS:KAR) MOVAX, KAR; hibás MOVAL, SZO; hibás MOVAX, WORD PTR KAR; helyes MOVAL, BYTE PTR SZO; helyes
14
Máté: Architektúrák2. előadás14 Indexelt címzés: a logikai cím: a 8 vagy 16 bites eltolás + SI vagy DI (BX) tartalma MOVAX, [SI] MOVAX, 10H[SI] MOVAX, -10H[SI] Regiszter indirekt címzés: eltolási érték nélküli indexelt címzés MOVAX, [BX] MOVAX, [SI] Bázis relatív címzés: a logikai cím: eltolás + SI vagy DI + BX tartalma MOVAX, 10H[BX][SI] MOVAX, [BX+SI+10H]
15
Máté: Architektúrák2. előadás15 Stack terület címzés Automatikus szegmens regiszter (ASSUME): SS Megegyezik a bázis relatív címzéssel, csak a BX regiszter helyett a BP szerepel.
16
Máté: Architektúrák2. előadás16 Program terület címzés Automatikus szegmens regiszter (ASSUME): CS A végrehajtandó utasítás címe: (CS:IP) Egy utasítás végrehajtásának elején: IP = IP + az utasítás hossza. IP relatív címzés: IP = IP + a 8 bites előjeles közvetlen operandus Direkt utasítás címzés: Az operandus annak az utasításnak a címe, ahova a vezérlést átadni kívánjuk. Közeli (NEAR):IP = a 16 bites operandus Távoli (FAR):(CS:IP) = a 32 bites operandus. CALL VALAMI; az eljárás típusától függően NEAR vagy FAR
17
Máté: Architektúrák2. előadás17 Indirekt utasítás címzés: Bármilyen adat címzési móddal megadott szóban vagy dupla szóban tárolt címre történő vezérlés átadás. Pl.: JMPAX ; ugrás az AX-ben tárolt címre JMP[BX] ; ugrás a (DS:BX) által címzett ; szóban tárolt címre.
18
Máté: Architektúrák2. előadás18 Az utasítások szerkezete Prefixum: utasítás ismétlés, explicit szegmens megadás vagy LOCK MOVAX, CS:S; S nem a DS, ; hanem a CS regiszterrel címzendő Operációs kód: szimbolikus alakját mnemonic-nak nevezzük Címzési mód byte: hogyan kell az operandust értelmezni Operandus: mivel kell a műveletet elvégezni prefixumoperációs kódcímzési módoperandus 0 - 2 byte1 byte0 - 1 byte0 - 4 byte
19
Máté: Architektúrák2. előadás19 Címzési mód byte A legtöbb utasítás kód után szerepel. Szerkezete: 76543210 MódReriszterReg/Mem A regiszter byte vagy word, ha a műveleti kód legalacsonyabb helyértékű bit-je 0 vagy 1.
20
Máté: Architektúrák2. előadás20 RegiszterReg/Mem jelentése, ha Mód = byteword00011011 000ALAXBX + SI + DI „00” + 8 bit displ. „00” + 16 bit displ. R e g i s z t e r 001CLCX 010DLDXBP + SI + DI 011BLBX 100AHSP SI DI 101CHBP 110DHSIközv.BP+8 bit d.BP+16 bit d. 111BHDIBX„00”+8 bit„00”+16 bit
21
Máté: Architektúrák2. előadás21 Szimbolikus alakban az operandusok sorrendje, gépi utasítás formájában a gépi utasítás kód mondja meg a regiszter és a memória közti adatátvitel irányát. Pl. az alábbi két utasítás esetén a címzési mód byte megegyezik: MOVAX, 122H[SI+BX] ; hexadecimálisan 8B 80 0122 MOV122H[BX][SI], AX ; hexadecimálisan 89 80 0122
22
Máté: Architektúrák2. előadás22 Az általános regiszterek és SI, DI, SP, BP korlátlanul használható, a többi (a szegmens regiszterek, IP és STATUS) csak speciális utasításokkal. Pl.: MOVDS, ADAT; hibás! MOVAX, ADAT; helyes! MOVDS, AX; helyes! A „többi” regiszter nem lehet aritmetikai utasítás operandusa, sőt, IP és CS csak vezérlés átadó utasításokkal módosítható, közvetlenül nem is olvasható
23
Máté: Architektúrák2. előadás23 ; Assembly főprogram, amely adott szöveget ír a képernyőre ; ================================================= KOD SEGMENT PARA PUBLIC CODE ; Szegmens kezdet ; KOD: a szegmens neve ; align-type (igazítás típusa): BYTE, WORD, PARA, PAGE ; combine-type: PUBLIC, COMMON, AT Kifejezés , STACK ; class: CODE, DATA, (CONSTANT,) STACK, MEMORY ; ajánlott értelemszerűen ASSUMECS:KOD, DS:ADAT, SS:VEREM, ES:NOTHING ; feltételezett szegmens regiszter értékek. ; A beállításról ez az utasítás nem gondoskodik KIIRPROCFAR; A fő eljárás mindig FAR ; FAR: távoli, NEAR: közeli eljárás
24
Máté: Architektúrák2. előadás24 ; Az operációs rendszer úgy hívja meg a főprogramokat, hogy ; a CS és IP a program végén lévő END utasításban megadott ; címke szegmens és OFFSET címét tartalmazza, SS és SP a ; a STACK kombinációs típusú szegmens végét mutatja, ; a visszatérés szegmens címe DS-ben van, OFFSET-je pedig 0 PUSHDS; DS-ben van a visszatérési cím ; SEGMENT része XORAX, AX; AX 0, az OFFSET rész = 0 PUSHAX; Veremben a (FAR) visszatérési cím MOVAX, ADAT; AX az ADAT SEGMENT címe MOVDS, AX ; Most teljesült, amit az ASSUME utasításban írtunk ; Eddig tartott a főprogram előkészületi része
25
Máté: Architektúrák2. előadás25 MOVSI, OFFSET SZOVEG ; SI SZÖVEG ; OFFSET címe CLD; ld. később CALL KIIRO; Eljárás hívás RET; Visszatérés az op. rendszerhez ; a veremből visszaolvasott ; szegmens és OFFSET címre KIIRENDP; A KIIR eljárás vége
26
Máté: Architektúrák2. előadás26 KIIROPROC; NEAR eljárás, ; megadása nem kötelező CIKLUS:LODSB; AL a következő karakter CMPAL, 0 ; AL =? 0 JEVEGE; ugrás a VEGE címkéhez, ; ha AL=0 MOVAH,14 ; BIOS rutin paraméterezése INT 10H; a 10-es interrupt hívása: ; az AL-ben lévő karaktert kiírja ; a képernyőre JMPCIKLUS ; ugrás a CIKLUS címkéhez, ; a kiírás folytatása VEGE:RET; Visszatérés a hívó programhoz KIIROENDP; A KIIRO eljárás vége KODENDS; A KOD szegmens vége
27
Máté: Architektúrák2. előadás27 ADATSEGMENTPARA PUBLIC DATA SZOVEGDBEzt a szöveget kiírja a képernyőre DB13, 10; 13: a kocsi vissza, ; 10: a soremelés kódja, DB0; 0: a szöveg vége jel ADATENDS; Az ADAT szegmens vége ; ================================================= VEREMSEGMENTPARA STACK DW100 DUP (?); Helyfoglalás 100 db ; inicializálatlan szó számára VEREMENDS; A VEREM szegmens vége ; ================================================= ENDKIIR; Modul vége, ; a program kezdőcíme: KIIR
28
Máté: Architektúrák2. előadás28 Kódolás: adat + ellenőrző bitek = kódszó. Két kódszó Hamming távolsága: az eltérő bitek száma. Pl.: 11001 és 11011 (Hamming) távolsága = 1. Hibaérzékelő kód: bármely két kódszó távolsága > 1: paritás bit. d hibás bit javítása: a kódszavak távolsága > 2d. Egy hibát javító kód (2.13. ábra): m adat, r ellenőrző bit, n = m + r. 2 m „jó” szó, + minden „jó” szónak n db „egyhibás” szomszédja van, ezért (n +1)2 m 2 n = 2 m+ r, egyszerűsítve m + r +1 2 r, vagy másképp m + r 2 r szükséges.
29
Máté: Architektúrák2. előadás29 Digitális logikai szint Digitális áramkör: két érték – általában 0-1 volt között az egyik (pl. 0, hamis), 2-5 volt között a másik (1, igaz). Más feszültségeket nem engednek meg. Kapu (gate): kétértékű jelek valamilyen függvényét tudja kiszámítani (3.1. ábra). Kapcsolási idő néhány ns (nanoszekundum = 10 -9 s) NOT, NAND, NOR, AND, OR kapuk (3.2. ábra). Inverziós gömb (Inversion Bubble).
30
Máté: Architektúrák2. előadás30 Boole algebra Olyan algebra, amelynek változói és függvényei csak a 0, 1 értéket veszik fel. Igazságtábla: pl. 3 változós többségi függvény (értéke 1, ha legalább két operandusz 1: 3.3. ábra). Boole függvény megvalósításának lépései: igazságtábla, ÉS kapuk bemenetei, ÉS kapuk, VAGY kapu bemenetei, VAGY kapu, kimenet.
31
Máté: Architektúrák2. előadás31 NAND és NOR előnye: teljesség (3.4. ábra). Boole függvények ekvivalenciája (3.5. ábra). Néhány azonosság (3.6. ábra). Egyszerű kapuk ekvivalens megvalósításai (3.7-8. ábra). Dualitás: egy szabály a duálisába megy át, ha a formulában egyidejűleg felcseréljük az ÉS és VAGY műveleteket és a 0 és 1 értékeket. Pozitív logika:0 volt hamis, Negatív logika:0 volt igaz (3.9. ábra).
32
Máté: Architektúrák2. előadás32 Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia vagy műanyag lapon (tokban), lábakkal (pins). Négy alaptípus: SSI (Small Scale Integrated 1-10 kapu) 3.10 ábra, MSI (Medium Scale..., 10-100 kapu), LSI (Large Scale..., 100-100 000 kapu), VLSI (Very Large Scale..., > 100 000 kapu). Példa SSI-re: 3.10. ábra, V cc : feszültség, GND: föld. Kapukésleltetés (gate delay): 1-10 nsec.
33
Máté: Architektúrák2. előadás33 Kívánalom: sok kapu – kevés láb Kombinációs áramkörök Definíció: A kimeneteket egyértelműen meghatározzák a pillanatnyi bemenetek. Multiplexer: 2 n adatbemenet, n vezérlő bemenet, 1 kimenet (3.11. ábra), az egyik adatbemenet kapuzott (gated) a kimenetre. Többségi függvény: (3.3., 12. ábra), Párhuzamos-soros átalakítás (vezérlő vonalakon rendre: 000, 001, … 111).
34
Máté: Architektúrák2. előadás34 Demultiplexer: egy egyedi bemenetet irányít az n vezérlő bemenet értékétől függően a 2 n kimenet egyikére (3.11. ábrán a bemenetek összekötve, a vagy kapu törölve). Dekódoló: n bemenet, 2 n kimenet. Pontosan egy kimeneten lesz 1 (3.13. ábra). Demultiplexerrel: a bemenetet igazra állítjuk. Összehasonlító (comparator): (3.14. ábra). Programozható logikai tömbök: PLA (Programmable Logic Array, 3.15. ábra).
35
Máté: Architektúrák2. előadás35 Aritmetikai áramkörök Léptető (shifter): 3.16. ábra, C=0: balra, 1: jobbra. Összeadók: Fél-összeadó (half adder, 3.17. ábra), Teljes összeadó (full adder, 3.18. ábra). - átvitel továbbterjesztő (ripple carry adder), - átvitel kiválasztó (carry select adder) eljárás. Aritmetikai-logikai egység: bitszelet (bit slice, 3.19. ábra), ALU (Arithmetic Logic Unit, 3.20. ábra). Az F0, F1 vezérlő jelektől függően ÉS, VAGY (+), NEGÁCIÓ vagy ÖSSZEADÁS. INC bemenet.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.