Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Építsünk Processzort Avagy mi is kell hozzá
2
Szóhossz és címtartomány meghatározása
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
3
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 Grosz Imre f. doc. Építsünk Processzort
4
Aritmetika 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
5
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 Grosz Imre f. doc. Építsünk Processzort
6
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 Grosz Imre f. doc. Építsünk Processzort
7
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 Grosz Imre f. doc. Építsünk Processzort
8
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 Grosz Imre f. doc. Építsünk Processzort
9
Cím műveletek - 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
10
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 Grosz Imre f. doc. Építsünk Processzort
11
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. Grosz Imre f. doc. Építsünk Processzort
12
Vezérlő (Control) jelek előállítása)
- Utasítás lehívás (Fetch, vagy M1 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 Grosz Imre f. doc. Építsünk Processzort
13
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) Grosz Imre f. doc. Építsünk Processzort
14
Adatforgalom - Kétirányú sínmeghajtón keresztül - Tri-state állapotba vezérelhető - Az utasítás is itt jut be Grosz Imre f. doc. Építsünk Processzort
15
Cím meghajtás Tri-state kimeneti meghajtó
Grosz Imre f. doc. Építsünk Processzort
16
Utasítás fajták Külön tárgyalandó kérdés - Milyeneket és mennyit akarunk Grosz Imre f. doc. Építsünk Processzort
17
Egy lehetséges utasítás készlet:
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
18
Utasítások lehetséges szerkezetei:
Grosz Imre f. doc. Építsünk Processzort
19
Aritmetikai utasítások (1)
Ö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
20
Aritmetikai utasítások (2)
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
21
Logikai utasítások (1) É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 .- Konstans Grosz Imre f. doc. Építsünk Processzort
22
Logikai utasítások (2) 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
23
Logikai utasítások (3) 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
24
Adatmozgató utasítások (1)
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
25
Adatmozgató utasítások (2)
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
26
Adatmozgató utasítások (3)
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 bites indirekt cím ((HL regiszter-pár)) Grosz Imre f. doc. Építsünk Processzort
27
Adatmozgató utasítások (4)
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
28
Boole műveletek (1) 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
29
Boole műveletek (2) 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
30
Programelágazások (1) Abszolút ugrás - 16 bites cím szerint
Hívás abszolút címzéssel 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
31
Programelágazások (2) 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
32
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 Grosz Imre f. doc. Építsünk Processzort
33
Vezérlő utasítások NOP: - Címet eggyel növeli
HALT - Megállítja a működést (Alvó üzemmód) STOP - kikapcsolja a processzort (Csak a RESET-re éled újra) EI - Engedélyezi a megszakítást DI - Tiltja a megszakítás elfogadását Grosz Imre f. doc. Építsünk Processzort
34
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 Grosz Imre f. doc. Építsünk Processzort
35
Processzorhoz felhasználandó áramkörök (1)
Tri-state kimenetű regiszterek (belső sínekhez) Grosz Imre f. doc. Építsünk Processzort
36
Processzorhoz felhasználandó áramkörök (2)
Sín leválasztó erősítők Grosz Imre f. doc. Építsünk Processzort
37
Processzorhoz felhasználandó áramkörök (3)
Aritmetikai-logikai elem ALU(k) Grosz Imre f. doc. Építsünk Processzort
38
Processzorhoz felhasználandó áramkörök (4)
Léptető, vagyis Shifter Grosz Imre f. doc. Építsünk Processzort
39
Processzorhoz felhasználandó áramkörök (5)
Paritás-generáló áramkör Grosz Imre f. doc. Építsünk Processzort
40
Processzorhoz felhasználandó áramkörök (6)
Multiplexerek Grosz Imre f. doc. Építsünk Processzort
41
Processzorhoz felhasználandó áramkörök (7)
Dekóderek, és/vagy PROMOK Grosz Imre f. doc. Építsünk Processzort
42
Processzorhoz felhasználandó áramkörök (8)
- Ü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
43
Működési ciklusok (ütemek) kialakításai
Egy ütem: óraütem (azonos él) ó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
44
Összetett utasítás időbeli lefolyása (1)
CALL (szubrutin hívó utasítás és lefolyása) Grosz Imre f. doc. Építsünk Processzort
45
Összetett utasítás időbeli lefolyása (2)
Grosz Imre f. doc. Építsünk Processzort
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.