Скачать презентацию Mechatronika Optika és Gépészeti Informatika Tanszék Kovács Endre Скачать презентацию Mechatronika Optika és Gépészeti Informatika Tanszék Kovács Endre

74b13d35fce04c96e74a1d060051a4ed.ppt

  • Количество слайдов: 19

Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek felépítése, működési Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek felépítése, működési módjai Mikroprocesszoros Rendszerek Felépítése

Buszrendszer CPU OPERATÍV TÁR μ processzor RAM ROM BUS Illesztő egységek I/O Interface 1. Buszrendszer CPU OPERATÍV TÁR μ processzor RAM ROM BUS Illesztő egységek I/O Interface 1. 2. Klaviatúra . . . Monitor I/O Interface n. Perif. Egység n. Periféria egységek: Klaviatúra, Monitor, Printer, Egér, Szkenner, …… stb. Mérő perifériák, Ipari folyamatirányító rendszerek perifériái, …. stb.

CÍM BUS A 0 A 1 A 2 A 15 BUS ADAT BUS CONTROL CÍM BUS A 0 A 1 A 2 A 15 BUS ADAT BUS CONTROL BUS Pld: Operatív tár Írás CPU H 1 L 0 CPU Slave 1 0 1 0 Tápfeszültség Cím érvényes Adat érvényes D 0 D 1 D 7 MR MW I/O R I/O W ACK Address Data MW ACK t [ ns ]

CPU H 1 L 0 CPU Slave 1 0 Address Cím érvényes Adat érvényes CPU H 1 L 0 CPU Slave 1 0 Address Cím érvényes Adat érvényes 1 Data MW 0 1 ACK 0 t [ ns ] BUSZ CIKLUS BUSZ ciklusok: Operatív tár olvasás Operatív tár írás I/O olvasás I/O írás IT vektor beolvasás DMA ciklusok Memory Read Memory Write I/O Read I/O Write MR MW IOR IOW Handshake jelpár: MW-ACK

Decimális Bináris 27 26 25 24 23 22 21 20 1 1 1 23 Decimális Bináris 27 26 25 24 23 22 21 20 1 1 1 23 22 21 20 18 B 7 3 23 22 21 20 1 1 Hexadecimális 0 1 1 1 B 7 0 0 0 0. . . 1 1 1 1 0. . . 255 0 1 2 3. 9 00. . . FF 0 1 2 3. 9 10 11 12 13 14 15 A B C D E F

Operatív tár Gépi szó hossza A byte egész számú többszöröse. 8, 16, 32, 64, Operatív tár Gépi szó hossza A byte egész számú többszöröse. 8, 16, 32, 64, 128 bites gépi szó. (Arithmetika) Címezhető legkisebb egység Külön címmel rendelkező (külön elérhető memória regiszter. Pld. byte Operatív tár mérete Memóriaregiszterek száma byte-ban. RAM Random Access Memory ROM Read-Only Memory Technológia MOS-FET Dinamikus memória 0000 : 00 0001 : B 7 0002 : 3 F 0003 : . . . A 1. . . FFFF : 00 Pld: 64 Kbyte

Mikroprocesszor belső felépítése Központi vezérlő egység Arithmetikai egység CPU fő elemei: • Vezérlő egység: Mikroprocesszor belső felépítése Központi vezérlő egység Arithmetikai egység CPU fő elemei: • Vezérlő egység: • utasítás számláló (PC, IP), • utasítás regiszter (IR), • akkumulátor (ACC), • vezérlő jelek (órajel, IT, stb. ) • ALU: aritmetikai és logikai műveletek, feltétel vizsgálat • Regiszterek: általános célú, státusz, címzés: szegmens, index, stb. • belső busz, memória címregiszter, memória adatregiszter

BUSZ Meghajtó interface BUSZ Meghajtó interface

A μ processzoros rendszer regiszter modellje (részlet) RAM térkép: Regisztertömb : 0200 : LDA A μ processzoros rendszer regiszter modellje (részlet) RAM térkép: Regisztertömb : 0200 : LDA /3 A/ 0201 : 0202 : A: 04 00 F: B: 00 C: 00 D: 00 E: 00 H: 00 L: 00 Addr L /00/ Addr H /20/ 0203 : Vezérlő/ Utasítás dekóder ADD /87/ 0204 : Addr L /00/ 0205 : Addr H /30/ 0206 : STA /32/ 0207 : LDA 0203 0202 0201 0200 PC : SP : Addr : /3 A/ 0208 : Addr H /40/ 2000 : . . . 20 Addr L /00/ További 2 db byte 00 3000 : 4000 : . . . 04 . . . 05 . . . -- . . . Regisztermodell: FFFF : - • A: Akkumulátor, • B, C, D, E, H általános célú regiszterek, Fontos !! • PC: utasítás számláló regiszter (IR), Az utasítás felhozatala után a PC a • SP: Stack pointer, soronkövetkező utasítás első byte-jára mutat. ………. .

A gépi kódú program Assembly nyelvű program: …………. . LDA 2000; ADD 3000; Fordítási A gépi kódú program Assembly nyelvű program: …………. . LDA 2000; ADD 3000; Fordítási folyamat gépi kódú program STA 4000; (compiler, linker) …………… Utasításkészlet • Adatmozgató utasítások • Arithmetikai / Logikai utasítások • Vezérlésátadó utasítások (feltétel nélküli és feltételes ugrás) • Szubrutinhívás • I/O utasítások • Különleges utasítások (IT vezérlése, NOP …. . )

1. Utasítás: Utasítás felhozatal: PC=0200 • Buszciklus MR, addr: 0200, data: 3 A • 1. Utasítás: Utasítás felhozatal: PC=0200 • Buszciklus MR, addr: 0200, data: 3 A • Buszciklus MR, addr: 0201, data: 00 • Buszciklus MR, addr: 0202, data: 20 Utasítás dekódolás [ A (2000) ] Végrehajtás: • Buszciklus MR, addr: 2000, data: 04 PC=0203, Akkumulátor: 04 RAM térkép: 0200 : LDA /3 A/ 0201 : Addr L /00/ 0202 : Addr H /20/ 0203 : ADD 1. utasítás /87/ 2. Utasítás: Utasítás felhozatal: PC=0203 • Buszciklus MR, addr: 0203, data: 87 • Buszciklus MR, addr: 0204, data: 00 • Buszciklus MR, addr: 0205, data: 30 Utasítás dekódolás [ A = A + (3000) ] Végrehajtás: • Buszciklus MR, addr: 3000, data: 05 • ALU A = A + 05 PC=0206, Akkumulátor: 09 0204 : Addr L /00/ 0205 : Addr H /30/ 3. Utasítás: Utasítás felhozatal: PC=0206 • Buszciklus MR, addr: 0206, data: 32 • Buszciklus MR, addr: 0207, data: 00 • Buszciklus MR, addr: 0208, data: 40 Utasítás dekódolás [ A --> (4000) ] Végrehajtás: • Buszciklus MW, addr: 4000, data: 09 PC=0209, Akkumulátor: 09 4000 : 0206 : STA /32/ 0207 : Addr L /00/ 0208 : Addr H /40/ 2000 : 3000 : FFFF : 2. utasítás . . . 04 . . . 05 . . . 09 . . . -- 3. utasítás

Az ugrás (feltétel nélküli ugrás) utasítás végrehajtása Program 025 A : kezdete 0280 : Az ugrás (feltétel nélküli ugrás) utasítás végrehajtása Program 025 A : kezdete 0280 : JMP 0281 : 00 0282 : 50 JUMP utasítás 1. Utasítás: Utasítás felhozatal: PC=0280 • Buszciklus MR, addr: 0280, data: „JUMP” • Buszciklus MR, addr: 0281, data: 00 • Buszciklus MR, addr: 0282, data: 50 PC=0283 Utasítás dekódolás [ PC 5000 ] Végrehajtás: • PC=5000 0283 : . Nem tároltuk azt az információt, hogy ‘honnan ugrottunk az új címre !! 5000 : LDA /3 A/ Addr L /00/ Addr H /20/ Program vége Feltételes ugró utasítás

A feltételes ugrás utasítás végrehajtása 027 F : S: Z: AC: P: CY: 00 A feltételes ugrás utasítás végrehajtása 027 F : S: Z: AC: P: CY: 00 0282 : 0 1 JIZ 0281 : F: „CMPA” 0280 : A FLAG (állapotjelző) szerepe: 50 0283 : S Z - AC - P - Előjel Zéró Kiegészítő átviteljelző Auxiliary Carry Flag Paritásjelző Átviteljelző Carry Flag Az utasításkészlet leírása meghatározza, hogy mely utasítások melyik FLAG-eket állítják. . CY 5000 : JIZ Utasítás: Utasítás felhozatal: PC=0280 • Buszciklus MR, addr: 0280, data: „JIZ” • Buszciklus MR, addr: 0281, data: 00 • Buszciklus MR, addr: 0282, data: 50 PC=0283 Utasítás dekódolás Ha igaz akkor [ PC < 5000 ] Végrehajtás: • Ha Z=1 PC=5000 • Ha Z=0 PC=0283 NEM VÁLTOZIK!

A STACK Stack kezelő utasítások: PUSH, POP Szükségessége az Elméleti Számítástudomány eredményeiből következik. A A STACK Stack kezelő utasítások: PUSH, POP Szükségessége az Elméleti Számítástudomány eredményeiből következik. A stack (verem) a memóriában helyezkedik el, mérete és helye (kezdőcíme) a programból meghatározható. 9000 : 9001: Példa: D 3 C: D 3 A stack kezdőcímét a programban értékadó utasítással állítjuk be. - 9004 : B: 9002 : 9003 F 7 9003 : SP : - - F 7 PUSH BC Végrehajtás előtt: SP=9003, B=D 3, C=F 7 SP=SP-1, B regiszter tartalmának beírása az op. tárba SP=SP-1, C regiszter tartalmának beírása az op. tárba Végrehajtás után: SP=9001, B=D 3, C=F 7, (9002)=D 3, (9001)=F 7

A Szubrutinhívó utasítás végrehajtása (CALL, RET utasítás pár) 025 A : Program • Paraméterátadás: A Szubrutinhívó utasítás végrehajtása (CALL, RET utasítás pár) 025 A : Program • Paraméterátadás: pld: y=f(x) ->hol található x • Címkidolgozás: hol kezdődik az alprogram • Visszatérési lehetőség biztosítása >STACK kezdete 0280 : CALL 0281 : 00 0282 : 50 CALL 5000 0283 : . 5000 : Szubrutin kezdete Szubrutin 503 D : RET 503 E : Program vége CALL Utasítás: Utasítás felhozatal: PC=0280 • Buszciklus MR, addr: 0280, data: „CALL” • Buszciklus MR, addr: 0281, data: 00 • Buszciklus MR, addr: 0282, data: 50 PC=0283 Utasítás dekódolás Végrehajtás: • PC -> Stack (Push jellegű művelet) • PC=5000 RET Utasítás: Utasítás felhozatal: PC=503 D • Buszciklus MR, addr: 503 D, data: „RET” PC=503 E Utasítás dekódolás Végrehajtás: • PC <- Stack (Pop jellegű művelet), PC=0283

ZH !!! • Egy főprogramhoz több szubrutin is tartozhat. • Egy szubrutinon belül meghívhatunk ZH !!! • Egy főprogramhoz több szubrutin is tartozhat. • Egy szubrutinon belül meghívhatunk egy másik szubrutint ? • Ebben az esetben STACK tartalma hogyan alakul ? • Elvileg végtelen számú szubrutin ágyazódhat egymásba ?

Az Interrupt (A Program megszakítása)_1 μ processzor IRQ 1 I/O Interface OPERATÍV TÁR . Az Interrupt (A Program megszakítása)_1 μ processzor IRQ 1 I/O Interface OPERATÍV TÁR . . . IT ok: A Folyamatban rendkívüli esemény történt, azonnal reagálni kell, el kell zárni a gázcsapot. IRQ 1: Interrupt request, (Megszakítás igény) jelentkezése. A BUS egyik Control vezetéke. IT Rutin 1: 1. IT ok 1 Érzékelők: Beavatkozók: Túlnyomas érzékelő Mágnesszelep …………. . IPARI FOLYAMAT Interrupt lekezelő rutin, amelynek haladéktalanul le kell futnia, az I/O interfacen lévő regiszter megfelelő bitjét 0 -ra állítva (az OUT-put rendszervói segítségével el kell zárnia a mágnes szelepet, majd vissza kell térni a főprogramba, oda ahol a megszakítás előtt a programvégrehajtás tartott.

Az Interrupt (A Program megszakítása)_2 • Szükségessége • Címkidolgozás: hol kezdődik az IT kezelő Az Interrupt (A Program megszakítása)_2 • Szükségessége • Címkidolgozás: hol kezdődik az IT kezelő alprogram • Vezérlés: visszatérési lehetőség biztosítása >STACK • Egymásba ágyazódó IT-k • IT Prioritás rendszer kialakítása 025 A : Főprogram kezdete 0280 : LDA /3 A/ 0281 : Az IT jelentkezése: Előre nem tervezhető időpontban. ( A program futásához asszinkron. ) Végrehajtás lépései: • Az éppen végrehajtás alatt álló utasítást befejezni. • A PC ekkor a soron következő utasításra mutat. Ezt az értéket (op. tár címet elmenteni a STACK-be. • Címkidolgozás: • Vezérlés: • Visszatérés a főprogramba. Addr L /00/ 0282 : Főprogram Addr H /20/ 0283 : Főprogram. vége 5000 : IT Rutin 1 kezdete IT Rutin 1 503 D : 503 E : RETURN IT

Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) 0000 : IT UGRÁSI IT regiszter IT Az Interrupt (A Program megszakítása)_3 (címkidolgozás, vezérlés) 0000 : IT UGRÁSI IT regiszter IT rutin 1 kezdőcíme PC=5000 00 TÁBLA Program IT vektor 42 PC Az IT ekkor jelentkezik, VEKTOR PC->STACK I/O Interface 1. IT Rutin 1 kezdete IT Rutin 1 PC<-STACK RETURN IT