Digitlis technika V Szmtgp architektrk Szmtgpek Programozhat mveletvgz

  • Slides: 29
Download presentation
Digitális technika V. ) Számítógép architektúrák

Digitális technika V. ) Számítógép architektúrák

Számítógépek Programozható műveletvégző, adatfeldolgozó Tárolás: o Adatok o Műveletsor

Számítógépek Programozható műveletvégző, adatfeldolgozó Tárolás: o Adatok o Műveletsor

Neumann-elv • • • Bináris Műveletvégzés Tárolás Be-, kimenet Vezérlés → Aritmetika → Memória

Neumann-elv • • • Bináris Műveletvégzés Tárolás Be-, kimenet Vezérlés → Aritmetika → Memória → Perifériák → Vezérlő egység Aritmetika Program Vezérlő Memória Kimenet

4 címes utasítás-szervezés 5 mezős utasítás: Következő utasítás címe Operációs kód Pl. . :

4 címes utasítás-szervezés 5 mezős utasítás: Következő utasítás címe Operációs kód Pl. . : +, -, *, /… Operandus 1 címe Operandus 2 címe Eredmény cím • Redundás • Nagy méret v Programszámláló (PC) Ø Automatikus inkrementálás Ø Felülírható v. Akkumulátor Következő utasítás címe Operációs kód

1 címes utasítás szervezés Művelet / Operációs kód • Cím = f ( Operációs

1 címes utasítás szervezés Művelet / Operációs kód • Cím = f ( Operációs Kód ) • Cím: – Adatcím – Adat – Utasítás cím Cím

1 címes µP felépítése Flag ALU Átmenti reg. Vezérlő CLK Dekóder Utasítás regiszter =

1 címes µP felépítése Flag ALU Átmenti reg. Vezérlő CLK Dekóder Utasítás regiszter = Memória címreg. PC Op. kód Cím Adatregiszter Memória Kimeneti reg. Bemeneti reg. Akku

Korszerűbb µP felépítés → C(entral) P(rocessed) U(nit) • Külső memória • Külső periféria illesztők

Korszerűbb µP felépítés → C(entral) P(rocessed) U(nit) • Külső memória • Külső periféria illesztők Vezérlő egység CPU Perifériák Memória RAM ROM I/O 1 I/O 2 Legkorszerűbb felépítés I/O N

Intel 8085 -ös CPU oszcillátorhoz kötve CPU resetelve ← Soros kimeneti vonal ← Soros

Intel 8085 -ös CPU oszcillátorhoz kötve CPU resetelve ← Soros kimeneti vonal ← Soros bemeneti vonal → Nem maszkolható Restart interrupt → Restart Interrupt → Interrupt észlelve ← Cím-, és adatjel Multifunkciós, Tri. State +5 V X 1 VCC X 2 HOLD Reset Out HLDA SOD SID Trap CLK OUT RESET IN READY RST 7. 5 IO / M RST 6. 5 S 1 RST 5. 5 RD INTR INTA WR ALE AD 0 S 0 AD 1 A 15 AD 2 A 14 AD 3 A 13 AD 4 A 12 AD 5 A 11 AD 6 A 10 AD 7 A 9 VSS A 8 GND ← másik Master lefoglalta a sínt → fogadta a másik Master kérését → fosc / 2 ← PC = 0, Regiszterek törlése ← külső memória R/W műveletre kész → IO / Memória művelet, státusz → adatbusz kész az olvasásra → adatbuszon az adat már készen áll → címtároló engedélyezése → státusz Címjel, Tri-State

8085 -ből épült rendszer

8085 -ből épült rendszer

8085 -ös blokkvázlata Int. A Intr RST 6. 5 Trap RST 5. 5 RST

8085 -ös blokkvázlata Int. A Intr RST 6. 5 Trap RST 5. 5 RST 7. 5 Megsz. kezelő. A(kku) SID SOD Soros I/O Műv. reg. Átmenti reg. Flag ALU Ut. dekóder B reg. C reg. D reg. E reg. H reg. L reg. Verem pointer (SP) Program Száml. (PC) +/- cím tároló X 1 Időzítés és vezérlés X 2 Cím buffer CLK OUT RD WR Ready ALE S 0 S 1 IO/ M HLDA HOLD Reset out In AD 0 – AD 7 Adat/Cím buff. A 8 – A 15

Programkód elkészítése MVI A, 32 D 1 1 0 1 0 0001 H 0

Programkód elkészítése MVI A, 32 D 1 1 0 1 0 0001 H 0 0 1 0 0 0002 H 0 1 0 0003 H 0004 H 0 0 1 0 1 1 1 0 0 0 0 7 FFEH 0 1 0 0 1 1 0 0 7 FFFH x x x x 8000 H x x x x 8001 H x x x x FFFBH x x x x FFFCH x x x x FFFDH x x x x FFFEH x x x x FFFFH x x x x MVI B, 11 D ADD B. . . STA 8000 H Assembly fordító és programozó HLT A-ba 32 D B-be 11 D A és B összeadása STOP RAM memória 0 EEPROM memória Assembly kód 0000 H

Alaputasítások végrehajtása • (Általában) Utasítás = Művelet + Operandus címe • Műveleti kód →

Alaputasítások végrehajtása • (Általában) Utasítás = Művelet + Operandus címe • Műveleti kód → utasítás hossza • Utasítás hossza: 1, 2, 3 byte (+ 0, 1, 2 byte)

Assembly nyelv utasításai • Adatmozgatók • Aritmetikai és Logikai • Ugró: – Feltétel nélküli

Assembly nyelv utasításai • Adatmozgatók • Aritmetikai és Logikai • Ugró: – Feltétel nélküli – Feltételes • Szubrutin hívó • Vegyes – I/O kezelés – Megszakítás vezérlők

1) Adatmozgató utasítások • • 0 1 D D MOV r 1, r 2

1) Adatmozgató utasítások • • 0 1 D D MOV r 1, r 2 (r 2) → (r 1) 0 1 D D MOV r, M ((H)(L)) → (r) 0 1 1 1 MOV M, r (r) → ((H), (L)) MVI r, data → (r), 2 B-os MVI M, data → ((H)(L)), 2 B-os LHLD addr M → (H)(L), 3 B-os XCHG (H) ↔ (D), (L) ↔ (E), 1 B-os r: 8085 -ös belső regisztere: 000 B; 001 C; 010 D; 011 E; 100 H; 101 L; 111 A(kku) M: külső memória 1 „rekeszének” címe D: cél regiszter kiválasztó bit S: forrás regiszter kiválasztó bit ((H)(L)): a H és L regiszterekben lévő memória címre történik D S S S D 1 1 0 0 S S S

2) Aritmetikai és Logikai utasítások • • • • • ADD r ADD M

2) Aritmetikai és Logikai utasítások • • • • • ADD r ADD M ADI data ADC r ADC M ACI data SUB r SUB M SUI data ANA r ANA M ANI data ORA r / M / data XRA r / M / data INR r / M DCR r / M CMP r / M CMA PCHL SPHL (A) + (r) → (A) + ((H)(L)) → (A), kód: 86 H, 2 B-os (A) + data → (A), kód: C 6 H, 2 B-os (A) - (r) → (A) - ((H)(L)) → (A) - data → (A) & (r) → (A) & ((H)(L)) → (A) & data → (A), VAGY kapcsolat kizáró VAGY kapcsolat Inkrementálás Dekrementálás Komparálás Komplemetálás (Akku) (H, L) → (PC) (H, L) → (SP)

3) Ugró utasítások • A feltétel a Flag regiszter tartalma. • Flag regiszter felépítése:

3) Ugró utasítások • A feltétel a Flag regiszter tartalma. • Flag regiszter felépítése: S Cy Ac – – – – S: Cy: Ac: Z: P: X 5: V: Z P X 5 V SIGNUM, előjel flag, S = 0 ↔ eredmény pozitív CARRY, átvitel flag, Cy = 1 ↔ volt átvitel járulékos átvitel flag ZERO flag, Z = 1 ↔ művelet eredménye = 0 paritás flag, P = 0 ↔ eredmény páros alól/felül csordulást jelző flag túlcsordulás flag. -

Ugró utasítások • • JMP addrfeltétel nélkül, kód: C 3 H, 3 B Feltételes

Ugró utasítások • • JMP addrfeltétel nélkül, kód: C 3 H, 3 B Feltételes ugró utasítás: 1 1 C C C 0 1 JZ addr ugrik, ha Z(ero) flag = 1, CCC = 001 B JNZ addr ha Z flag = 0, CCC = 000 B JC addr ha C(arry) flag = 1, CCC = 011 B JNC addr ha C flag = 0, CCC = 010 B JPO addr ha a paritás páratlan, CCC = 100 B JPE addr ha a paritás páros, CCC = 101 B 0

4) Szubrutin hívás, utasításai Szubrutin: a kódban egyszer definiált eljárás, melyet akárhányszor hívhatunk meg,

4) Szubrutin hívás, utasításai Szubrutin: a kódban egyszer definiált eljárás, melyet akárhányszor hívhatunk meg, használhatunk fel. ► MVI B, 3 D ; ez lesz a szorzó ► MVI C, 10 D ; ez a szorzandó ► CALL SZOR ; szorzo szubrutin meghívasa ► CALL KIIR ; kiiro szubrutin meghivasa ►. ► SZOR: ; szubrutin fejléce ► PUSH PSW ; A es flag-ek mentese a verembe ► DCR B ; B=B-1 ► MOV A, C ; C masolasa A-ba A= 10 30 20 ► ADD C ; A=A+C B= 2013 ► DCR B ; B=B-1 C= 10 ► JNZ 13 A 1 H ; visszaugras, ha meg kell szorozni D= 30 ► MOV D, A ; eredmeny (A) mentese D-be ► POP PSW ; hivast megelozo alapot beallitasa ► RET ; visszatoltes, visszaugras ZF= 01 ► END

Szubrutin hívás • CALL „utasítás” SP-be az aktuális PC cím beírása (ide tér vissza),

Szubrutin hívás • CALL „utasítás” SP-be az aktuális PC cím beírása (ide tér vissza), szubrutin hívása, 3 B, kód: CD • RET SP-ből PC feltöltése, 1 B, kód: C 9 H

5) Soros IO vezérlő utasítások • SIM • RIM ”A” 7. bitjét kiteszi a

5) Soros IO vezérlő utasítások • SIM • RIM ”A” 7. bitjét kiteszi a SOD vonalra, 1 B, kód: 30 H ”A” regiszter 7. bitjébe menti a SID vonal állapotát, 1 B

6) Megszakítás kezelés • • µP-ban „főprogram” fut. Külső periféria kiszolgálást kér. A µP

6) Megszakítás kezelés • • µP-ban „főprogram” fut. Külső periféria kiszolgálást kér. A µP elmenti aktuális állapotát (PC, Flag regiszter, regiszterek), majd meghívja a megszakítást lekezelő „megszakítási szubrutint”. Jelzés lehet: – – • • EI Enable Interrupt, megszakítás engedélyezése, 1 B, FBH DI Disable Interrupt, megszakítás tiltása, 1 B, F 3 H Megszakítások egymásba „skatulyázhatók” (ha a prioritás engedi) Megszakítási szubrutin felépítése: – – – • Belső interrupt kezelővel (TRAP, RST vonalak) Külső IC-vel µP állapotának mentése (PUSH) EI? Megszakítási program Állapot visszaállítása (POP) EI? RET A µP az INTA kimeneten jelzi a külvilág (megszakítást kérő felé), hogy a megszakítás regisztrálva lett

Belső megszakítás kezelő Int. A RST 6. 5 Intr RST 5. 5 Intr Trap

Belső megszakítás kezelő Int. A RST 6. 5 Intr RST 5. 5 Intr Trap RST 7. 5 Megsz. kezelő. INTR 7. 5: maszkolható, 1. legnagyobb prioritás, felfutó élre aktív INTR 6. 5: maszkolható, 2. legnagyobb prioritás, szintre érzékeny INTR 5. 5: maszkolható, 3. legnagyobb prioritás, szintre érzékeny TRAP (RST 4. 5): nem tiltható 4. legnagyobb prioritás INTR: maszkolható (tiltható), legkisebb prioritású • • 8 prioritási szint: IT 0→ 0000 H IT 1 → 0008 H. TRAP → 0024 H RST 5. 5 → 002 CH RST 6. 5 → 0034 H RST 7. 5 → 003 CH

D(irect) M(memory) A(cces) mód • HOLD bemeneten jelezheti egy másik Master a µP felé,

D(irect) M(memory) A(cces) mód • HOLD bemeneten jelezheti egy másik Master a µP felé, hogy le akarja foglalni a sínt. • HLDA kimeneten jelzi a µP , hogy elengedte a sínt. HOLD HLDA

Adat címzési módok: A) Közvetlen operandusú • utasításban van az adat. Pl. : ADI

Adat címzési módok: A) Közvetlen operandusú • utasításban van az adat. Pl. : ADI 32 D µP belső Regiszterei B A PC SP Cím információ Adat információ Regiszter utalás Műveleti kód + Adat Memória

B) Direkt címzés • A műveleti kód mellet megtalálható az operandus memória címe. Pl.

B) Direkt címzés • A műveleti kód mellet megtalálható az operandus memória címe. Pl. : JNZ 1345 H (itt van az operandus). Utasítás 3 B-os!!! µP belső Műveleti kód + Cím Memória Regiszterei B A PC SP Cím információ Adat információ Regiszter utalás Operandus

C) Indirekt címzés • A műveleti kód által hivatkozott regiszter/cím az operandus címét tartalmazza

C) Indirekt címzés • A műveleti kód által hivatkozott regiszter/cím az operandus címét tartalmazza H, L regiszter pár tartalmazza a címet. Pl. : MVI M, 11 D µP belső Műveleti kód + Cím Memória Regiszterei Cím B A PC SP Cím információ Adat információ Regiszter utalás Operandus

D) Bázis regiszteres címzés • Műveleti kódban utalás az operandust tartalmazó regiszterre. Pl. :

D) Bázis regiszteres címzés • Műveleti kódban utalás az operandust tartalmazó regiszterre. Pl. : MOV A, B µP belső Regiszterei B A PC SP Cím információ Adat információ Regiszter utalás Műveleti kód + Regiszter Memória

E) PC relatív címzés • A címet a PC és a műveleti kód (~offszet)

E) PC relatív címzés • A címet a PC és a műveleti kód (~offszet) együttesen adják 0 D, 1 D, 2 D, …n. D µP belső Műveleti kód + Offszet Memória Regiszterei Operandus 0 B A Cím információ Adat információ Regiszter utalás + Operandus 1 Operandus 2 PC . SP Operanuds n

F) Indexelt címzés • A címet a PC és valamely regiszter tartalma (~offszet) együttesen

F) Indexelt címzés • A címet a PC és valamely regiszter tartalma (~offszet) együttesen adják µP belső Műveleti kód Memória Regiszterei 0 D, 1 D, 2 D, …n. D B A PC SP Cím információ Adat információ Regiszter utalás + Operandus