ptsnk Processzort Avagy mi is kell hozz Grosz

  • Slides: 45
Download presentation
Építsünk Processzort Avagy mi is kell hozzá Grosz Imre f. doc. Építsünk Processzort 2005.

Építsünk Processzort Avagy mi is kell hozzá Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Szóhossz és címtartomány meghatározása l l 2 Legyen 8 bites, vagyis 1 bájtos (Ez

Szóhossz és címtartomány meghatározása l l 2 Legyen 8 bites, vagyis 1 bájtos (Ez mindig használatos) Címtartomány legyen két szó hosszú = 16 bit, 64 k (Ha józanul használjuk sok mindenre elég) Címtartomány bővítés: 3 bájt 24 bit = 16 M, 3 bájtos cím kezelése nehézkes, jobb megoldás a cím szegmentálása 4 bájt 32 bit = 4 M Közbülső cím tartomány, pl. 20 bit = 1 M előfordul, de belső kezelése bonyolultabb lehet. Tok lábszámra is gondolni kellene. Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Regiszterek - Legyen Akkumulátor - Kell egy rejtett közbülső regiszter az Aritmetika bemenetén -

Regiszterek - Legyen Akkumulátor - Kell egy rejtett közbülső regiszter az Aritmetika bemenetén - + legalább 6 regiszter - Lehessen (összerendelve) párosával is kezelni őket - Műveletek legyenek vonatkoztathatóak mindegyikre, (legalább néhányra), vagyis az Aritmetika kijelölt helyről kijelölt helyre is dolgozzon - Legyenek betölthetőek 3 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Aritmetika l l 4 Legyen jelző (flag) bitekkel ellátva Elvégzendő műveletek (értelem szerint, külön

Aritmetika l l 4 Legyen jelző (flag) bitekkel ellátva Elvégzendő műveletek (értelem szerint, külön parancsra, jelző bitek bevonásával is): - összeadás, 16 bites is - kivonás, 16 bites is - növelés (increment), 16 bites is - csökkentés (decrement), 16 bites is - betöltés, 16 bites is - komplementálások - forgatások (shift, rotate) - Logikai (bit) műveletek (ÉS, VAGY, KIZÁRÓ_VAGY, EKVIVALENCIA) - Perifériára vonatkozó be és kivitel Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Egyéb műveletek - Szubrutin hívása - Szubrutinból való visszatérés - Címnövelés művelet nélkül (NOP)

Egyéb műveletek - Szubrutin hívása - Szubrutinból való visszatérés - Címnövelés művelet nélkül (NOP) - Megállítás (HALT) - Blokkos átvitelek - Megszakítás kiszolgáló utasítások 5 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Jelző bitek (flag-ek) - Signum MSB bit vizsgálatához - Zero flag (Minden bit 0)

Jelző bitek (flag-ek) - Signum MSB bit vizsgálatához - Zero flag (Minden bit 0) - P Paritas (1 -k száma páros) - Túlcsordulás - Átvitel (Carry) - Közbülső átvitel, tetrád határán BCD-nél érdekes - Összeadás/kivonás jelzése - Megszakítás engedélyezése/tiltása 6 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Szubrutin híváskor mentés - Árnyék regiszterbe (pl. ’ regiszterek). Ez lehet külön utasítással is.

Szubrutin híváskor mentés - Árnyék regiszterbe (pl. ’ regiszterek). Ez lehet külön utasítással is. - Verem tárba (STACK) címkezelés csökkenő, vagyis mélyülő irány 7 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Címszámlálók - Program cím - Veremtár (Stack) cím - Index regiszter 1, - Index

Címszámlálók - Program cím - Veremtár (Stack) cím - Index regiszter 1, - Index regiszter 2 - Címző regiszter pár kezeléséhez 8 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Cím műveletek l l 9 - Növelés 1 -el, - Növelés 2 -vel -

Cím műveletek l l 9 - Növelés 1 -el, - Növelés 2 -vel - Csökkentés 2 -vel - Betöltés - Hozzáadás - Levonás - 0 -ba állítás (PC, a RESET hatására) - Maximális értékre állítás (Stack, a RESET hatására) Cím módosítás végrehajtása címkezelésre épített aritmetikával Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Utasítás feldolgozása - Utasítás regiszter (Ebbe kerül a memóriából kiolvasott utasítás) - Utasítás dekóder.

Utasítás feldolgozása - Utasítás regiszter (Ebbe kerül a memóriából kiolvasott utasítás) - Utasítás dekóder. Értelmezi az utasítást, és előállítja a belső részek ütemezett vezérlő jeleit. Adatforrás (Regiszter) kijelölése, ha kell a következő memória cím(ek) beolvasását vezérli. - Memória cím műveletek vezérlése - Aritmetika vezérlő jelei - Aritmetika kiegészítések vezérlő jelei, pl. Paritásképzés, BCD korrekció, léptetés vezérlések, stb. - Flag-ek beíró jelei - Külvilág vezérlő jelei 10 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Megszakítás kezelése - Megszakítás engedélyezés/tiltás kezelése - Az Engedélyezés végrehajtás egy utasítás lehívó ciklussal

Megszakítás kezelése - Megszakítás engedélyezés/tiltás kezelése - Az Engedélyezés végrehajtás egy utasítás lehívó ciklussal való késleltetése - Megszakítás elfogadás vizsgálati helyének kijelölése - Kérelem sorba állítás - Megszakítással kapcsolatos bejövő, vagy belső utasítás, illetve adat kezelése - Megszakítás elfogadási sorozat vezérlése - Veremtár (Stack) kezelése, első a cím mentése - Megszakítási rutin kezdőcím beállítása - Megszakítás befejezése utasítással kapcsolatos ciklus(ok) szervezése. - Stack kezelés, visszatérési prioritás kezelése. 11 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Vezérlő (Control) jelek előállítása) - Utasítás lehívás (Fetch, vagy M 1 ciklus) - Memória

Vezérlő (Control) jelek előállítása) - Utasítás lehívás (Fetch, vagy M 1 ciklus) - Memória művelet jelzése {tri-state} - Periféria művelet jelzése (ha külön van ilyen) {tri-state} - Megszakítás művelet jelzése (ha külön van ilyen) - Megállítás: Halt művelet jelzése (ha külön van ilyen) - Olvasás ciklus {tri-state} - Írás ciklus {tri-state} - Felfüggesztés kérelem elfogadó jel kezelése 12 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Bemenő jelek - Órajel. Általában technológiai okokból, valamely különleges feltétellel rendelkezik - RESET Aszinkron

Bemenő jelek - Órajel. Általában technológiai okokból, valamely különleges feltétellel rendelkezik - RESET Aszinkron általános törlő jel. Minimális hossza, és a vezérlő jelekhez megkívánt szinkronizmusa betartandó. - Megszakításkérések: Engedélyezhető. ez a „Maszkolható”, Mindig érvényre jutó, nem maszkolható. - Végrehajtás várakoztatás kérése Wait, vagy Ready bemenet - Működés felfüggesztés kérése (BUSREQ) 13 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Adatforgalom - Kétirányú sínmeghajtón keresztül - Tri-state állapotba vezérelhető - Az utasítás is itt

Adatforgalom - Kétirányú sínmeghajtón keresztül - Tri-state állapotba vezérelhető - Az utasítás is itt jut be 14 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Cím meghajtás l 15 Tri-state kimeneti meghajtó Grosz Imre f. doc. Építsünk Processzort 2005.

Cím meghajtás l 15 Tri-state kimeneti meghajtó Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Utasítás fajták l 16 Külön tárgyalandó kérdés - Milyeneket és mennyit akarunk Grosz Imre

Utasítás fajták l 16 Külön tárgyalandó kérdés - Milyeneket és mennyit akarunk Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Egy lehetséges utasítás készlet: l l l l 17 Utasítások csoportjai: Aritmetikai utasítások Logikai

Egy lehetséges utasítás készlet: l l l l 17 Utasítások csoportjai: Aritmetikai utasítások Logikai utasítások Boole műveletek Adatmozgató utasítások Program elágazások Vezérlő utasítások Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Utasítások lehetséges szerkezetei: 18 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Utasítások lehetséges szerkezetei: 18 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Aritmetikai utasítások (1) l l 19 Összeadás Akkuhoz átvitel bittel, és nélküle: - Konstans

Aritmetikai utasítások (1) l l 19 Összeadás Akkuhoz átvitel bittel, és nélküle: - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt Kivonás Akkuból kölcsön bittel, és nélküle: - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Aritmetikai utasítások (2) l l l 20 Inkrementálás: - Konstans(ot) - Regisztertartalom, - Direkt

Aritmetikai utasítások (2) l l l 20 Inkrementálás: - Konstans(ot) - Regisztertartalom, - Direkt címzett bájt - Indirekt címzett bájt - Adat címző regiszteren keresztül címzett tartalom Dekrementálás: - Konstans - Regisztertartalom, - Direkt címzett bájt - Indirekt címzett bájt Helyesbítés BCD számok összeadása után Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Logikai utasítások (1) l l 21 ÉS (AND) Akkuhoz (eredmény A-ba kerül) - Konstans

Logikai utasítások (1) l l 21 ÉS (AND) Akkuhoz (eredmény A-ba kerül) - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt Direkt címzett bájt (direkt helyére kerül). - Akku. - Konstans VAGY (OR) Akkuhoz (eredmény A-ba) - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt Direkt címzett bájt (direkt helyére kerül). - Akku Grosz Imre f. doc. . - Konstans Építsünk Processzort 2005. 03. 29.

Logikai utasítások (2) l l l 22 KIZÁRÓ-VAGY (EXOR) Akkuhoz (A-ba) - Konstans -

Logikai utasítások (2) l l l 22 KIZÁRÓ-VAGY (EXOR) Akkuhoz (A-ba) - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt EKVIVALENCIA (EXNOR) Akkuhoz (A-ba) - Konstans - Regisztertartalom, - direkt címzett bájt - indirekt címzett bájt Direkt címzett bájt (direkt helyére kerül). - Akku. - Konstans Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Logikai utasítások (3) l l 23 Akku nullázása Akku bitenkénti negálása Akku balra (MSB

Logikai utasítások (3) l l 23 Akku nullázása Akku bitenkénti negálása Akku balra (MSB felé) forgatása Carryn keresztül / nélkül Akku jobbra (LSB felé) forgatása Carryn keresztül / nélkül Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Adatmozgató utasítások (1) l l 24 Akkuba töltés forrás: - Konstans - Regisztertartalom, -

Adatmozgató utasítások (1) l l 24 Akkuba töltés forrás: - Konstans - Regisztertartalom, - Direkt címzett bájt - Indirekt címzett bájt - Periféria Regiszterbe töltés forrás: - Konstans - Akkumulátor - direkt címzett bájt - Periféria Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Adatmozgató utasítások (2) l l l 25 Direkt címzett bájtba töltés forrás: - Konstans

Adatmozgató utasítások (2) l l l 25 Direkt címzett bájtba töltés forrás: - Konstans - Regiszter tartalom - Akkumulátor - direkt címzett bájt - indirekt címzett bájt Direkt címzett bájt (direkt helyére kerül). - Akku. - Konstans Indirekt címzett bájtba töltés forrás: - Konstans - Akkumulátor - direkt címzett bájt Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Adatmozgató utasítások (3) l l l 26 Adat címző regiszterbe töltés forrás: - Konstans

Adatmozgató utasítások (3) l l l 26 Adat címző regiszterbe töltés forrás: - Konstans - Regiszter(ek) - Memóriából olvasott adat Relatív címzett programbájt beolvasása Adatcímző regiszter-pár szerint - PC szerint Memóriában lévő adattár olvasása/ írása MOVX - 16 bites indirekt cím ((HL regiszter-pár)) Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Adatmozgató utasítások (4) l l 27 Veremtár műveletek: - Mentés - Visszaolvasás - ()

Adatmozgató utasítások (4) l l 27 Veremtár műveletek: - Mentés - Visszaolvasás - () Akkuval kapcsolatos cserék - Regisztertartalommal - direkt címzett bájttal - indirekt címzett bájttal Akku alsó négy bit felcserélése - indirekt címzett bájt alsó négy bitjével Akku felső, alsó tetrád felcserélése Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Boole műveletek (1) l l l 28 Vizsgálat: - Carryt (Flag biteket) - kijelölt

Boole műveletek (1) l l l 28 Vizsgálat: - Carryt (Flag biteket) - kijelölt bitet Törlés: - Carryt (Flag biteket) - kijelölt bitet 1 -re állítás: - Carryt - kijelölt bitet Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Boole műveletek (2) l l 29 Negálás: - Carryjé - kijelölt bité Carry és

Boole műveletek (2) l l 29 Negálás: - Carryjé - kijelölt bité Carry és a kijelölt bit/ kijelölt bit negáltja ÉS kapcsolata - VAGY kapcsolata Kijelölt bit betöltése - Carrybe Carry betöltése - kijelölt bitbe Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29. -

Programelágazások (1) l l l 30 Abszolút ugrás - 16 bites cím szerint Hívás

Programelágazások (1) l l l 30 Abszolút ugrás - 16 bites cím szerint Hívás abszolút címzéssel - 16 bites cím szerint Feltételes ugrás - Jelzők (Flagek) szerint - Relatív +- adott távon (többnyire 255 címen) belül - Indirekt (A) plus (HL, vagy index regiszter) - ha Akku 0/ nem 0 - A és direkt címzett bájt tartalma eltér/megegyezik - A és konstans eltér/megegyezik - ha regisztertartalom és a konstans eltér/megegyezik - ha az indirekt címzett bájt és a konstans eltér/megegyezik Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Programelágazások (2) l l 31 Regisztertartalom dekrementálása, ugrás, ha nem 0 Regisztertartalom inkrementálása, ugrás,

Programelágazások (2) l l 31 Regisztertartalom dekrementálása, ugrás, ha nem 0 Regisztertartalom inkrementálása, ugrás, ha nem 0 Ugrás, ha a kijelölt bit 0/1 - Carry (Flag bitek) - kijelölt bit Ugrás, ha a kijelölt bit 1, majd a bit törlése Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Visszatérés szubrutinból - RET Bármely szubrutint lezárja - RETI Megszakítás szubrutint lezárja, feldolgozott megszakítás

Visszatérés szubrutinból - RET Bármely szubrutint lezárja - RETI Megszakítás szubrutint lezárja, feldolgozott megszakítás kérelmet törli (Egyes megoldásokban a periféria is feldolgozza) - RETN Nem maszkolható megszakítás kérelmet befejezi, a maszkolható engedélyező bitjét visszaállítja 32 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Vezérlő utasítások l NOP: HALT l STOP l EI DI l l 33 -

Vezérlő utasítások l NOP: HALT l STOP l EI DI l l 33 - Címet eggyel növeli - Megállítja a működést (Alvó üzemmód) - kikapcsolja a processzort (Csak a RESET-re éled újra) - Engedélyezi a megszakítást - Tiltja a megszakítás elfogadását Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Felhasználandó áramkörök - Tri-state kimenetű regiszterek (belső sínekhez) - Sín leválasztó erősítők - Aritmetikai-logikai

Felhasználandó áramkörök - Tri-state kimenetű regiszterek (belső sínekhez) - Sín leválasztó erősítők - Aritmetikai-logikai elem ALU(k) - Léptető, vagyis Shifter - Paritás-generáló áramkör - Multiplexerek - Dekóderek, vagy PROMOK - Ütemvezérlő. Regiszter, vagy számláló alapú (esetleg mindegyik) - Flip-flopok - Kapuk 34 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (1) Tri-state kimenetű regiszterek (belső sínekhez) 35 Grosz Imre f. doc.

Processzorhoz felhasználandó áramkörök (1) Tri-state kimenetű regiszterek (belső sínekhez) 35 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (2) Sín leválasztó erősítők 36 Grosz Imre f. doc. Építsünk Processzort

Processzorhoz felhasználandó áramkörök (2) Sín leválasztó erősítők 36 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (3) l 37 Aritmetikai-logikai elem ALU(k) Grosz Imre f. doc. Építsünk

Processzorhoz felhasználandó áramkörök (3) l 37 Aritmetikai-logikai elem ALU(k) Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (4) l 38 Léptető, vagyis Shifter Grosz Imre f. doc. Építsünk

Processzorhoz felhasználandó áramkörök (4) l 38 Léptető, vagyis Shifter Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (5) l 39 Paritás-generáló áramkör Grosz Imre f. doc. Építsünk Processzort

Processzorhoz felhasználandó áramkörök (5) l 39 Paritás-generáló áramkör Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (6) l 40 Multiplexerek Grosz Imre f. doc. Építsünk Processzort 2005.

Processzorhoz felhasználandó áramkörök (6) l 40 Multiplexerek Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (7) l 41 Dekóderek, és/vagy PROMOK Grosz Imre f. doc. Építsünk

Processzorhoz felhasználandó áramkörök (7) l 41 Dekóderek, és/vagy PROMOK Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Processzorhoz felhasználandó áramkörök (8) l 42 - Ütemvezérlő, Regiszter, vagy számláló alapú (esetleg mindegyik)

Processzorhoz felhasználandó áramkörök (8) l 42 - Ütemvezérlő, Regiszter, vagy számláló alapú (esetleg mindegyik) pl. a felépítés szükséglete szerinti ROM-s vezérléssel - Flip-flopok - Kapuk Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Működési ciklusok (ütemek) kialakításai l 43 Egy ütem: - 10 -12 óraütem (azonos él)

Működési ciklusok (ütemek) kialakításai l 43 Egy ütem: - 10 -12 óraütem (azonos él) - 3 -4 óraütem, él helyzete is fontos lehet - 1 (2) óraütem, él helyzete fontos példák (Z-80 elemi ciklusai) fóliáról Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Összetett utasítás időbeli lefolyása (1) CALL (szubrutin hívó utasítás és lefolyása) 44 Grosz Imre

Összetett utasítás időbeli lefolyása (1) CALL (szubrutin hívó utasítás és lefolyása) 44 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.

Összetett utasítás időbeli lefolyása (2) 45 Grosz Imre f. doc. Építsünk Processzort 2005. 03.

Összetett utasítás időbeli lefolyása (2) 45 Grosz Imre f. doc. Építsünk Processzort 2005. 03. 29.