PC IR CR FR GPU APU MPU
Ált. processzor legfontosabb képességei : Utasítások és adatok megcímzése, A beolvasott utasítás értelmezése (utasítás dekódolás) és végrehajtása, Aritmetikai, logikai műveletek elvégzése (ALU, Arithmetical Logical Unit), Adatok mozgatása regiszterek között, ill. a regiszterek és a memória között, A RAM kijelölt részét verem memóriaként (stack) tudja kezelni. (A verem kezeléséhez az ún. verem mutatót (stack pointer) használja.) Feltételes elágazások a program végrehajtás során (conditional jump and call), Külső események hatására az aktuális program félbehagyása és az eseményt kiszolgáló program végrehajtása, majd a félbeszakított program folytatása (interrupt), A busz vezérlésének felfüggesztése és a vezérlési jogának átadása (arbitráció), Rugalmas alkalmazkodás a perifériák és memóriák sebességéhez.
CISC processzorokRISC processzorok 1 Az utasítások összetettek, több gépi ciklust igényelnek Egy gépi ciklus alatt végrehajtható egyszerű utasítások 2 Több utasítás is igénybe veheti a tárolótCsak a LOAD/STORE utasítások használhatják a tárat 3 A pipelining feldolgozás kismértékűpipeliningJelentős pipelining feldolgozás 4 Mikroprogram által vezérelt utasítás- végrehajtás Huzalozott utasítás-végrehajtás 5 Változó hosszúságú utasításokRögzített hosszúságú utasítások 6 Sokféle utasítás és címzési módKevés utasítás és címzési mód 7 Bonyolult mikroprogramBonyolult fordítóprogram 8 Kevés regiszterNagyméretű regisztertár
A mikroprocesszor belső felépítése
A kommunikáció folyamata A CPU kijelöli az egységet, amellyel kommunikálni fog (címzés, a címbuszon), A CPU kijelöli a kommunikáció irányát (olvasás vagy írás, a vezérlőbusz segítségével), Az adat forrása ráteszi az adatbuszra az adatot (a vezérlőbusz irányításával), Az adat felhasználója bemintavételezi az adatot a saját belső regiszterébe (a vezérlőbusz irányításával).
Busz ciklusok Utasítás olvasási ciklus (más néven FETCH ciklus) Adat olvasási ciklus (memória vagy periféria olvasás) Írási ciklus (memória vagy periféria írás) Interrupt (megszakítás) elfogadási ciklus
A CPU architektúrájának fő elemei Utasítás dekóder Az utasítás regiszterben levő utasítás értelmezését végzi. Vezérlő és időzítő egység Ez az egység vezérli a CPU részegységeinek működését (az adatutakat, a belső regiszterek beírását, ALU-t stb.) a felismert utasításnak megfelelően, ill. reagál a külső jelekre Aritmetikai logikai egység (ALU) Regiszeterek –Általános célú regiszterek (belső adattárolás) –Speciális regiszterek
Speciális regiszterek Regiszterek: egy-egy adat átmeneti befogadására szolgáló, bit hosszúságú, gyors működésű tárolóhelyek –PC (Program Counter)-Utasításszámláló regiszter: a tárolt program soronkövetkező utasításának memóriabeli címét tárolja –IR (Instruction Register)-Utasításregiszter, amely a tárolóból előkeresett, végrehajtandó utasítást befogadja a feldolgozás időtartamára. –CR vagy FR (Control/Status Register, Flag Register) – vezérlő/állapotjelző regiszter, az aktuális processzorállapotot visszatükröző és vezérlési előírásokat is tartalmazó reg. –Akkumulátor regiszter (A műveletek egyik operandusa és eredménye többnyire ebben a regiszterben helyezkedik el. Mérete a mikroprocesszor belső adatbuszának szószélességével egyezik meg.) –Jelzőbit (flag) regiszter. Többnyire a műveletek eredményétől függő jelzőbitek (flagek) és egyéb, a CPU állapotára vonatkozó információk helyezkednek el ebben a regiszterben. –Bázis regiszter (adat bázis-relatív címzése), Index regiszter
Általános Flag-ek Signum: Az eredmény előjele pozitív vagy negatív. Zero: Az eredmény 0. Carry: Aritmetikai átvitel és rotáló/shiftelő műveleteknél ez a bit is bekapcsolódhat az operandus adatbitjei közé. Auxiliary carry vagy Half carry: A 3. és 4. bit közötti átvitel (BCD műveletek esetén) Parity: A művelet eredményében az 1-esek száma páros. N: Az utolsó művelet kivonás volt.
Utasítások, utasításvégrehajtás
Adatmozgató utasítások (forrás-cél):
Adatmozgató utasítások Az adatmozgató utasítások egy, vagy több byte átvitelére alkalmasak. RISC processzoroknál külön byte-os és külön szavas adatmozgató utasítások vannak, míg összetett utasításkészletű processzorok esetében, ahol az utasításhossz nem állandó, magában az utasításban kell megadni az átvinni kívánt adat méretét. Az átvitt adat az eredeti helyén is megmarad, tehát ez valójában csak adatmásolás.RISC
Adatmozgató utasítások A memória-regiszter, regiszter-memória közötti adatmozgató utasításokat tároló hivatkozású adatátviteli utasításnak hívják. Memória-memória közötti adatátvitelt közvetlenül nem használnak a processzorok.
Adatmozgató utasítások Periféria utasítások programozott átvitellel, karakterenként, figyelmet fordítva a periféria állapotára (karakter átvihetősége) megszakításos rendszerrel, ahol is a periféria kezdeményezi az átvitelt (szintén karakterenkénti átvitel) közvetlen memóriaelérés (DMA)DMA Speciális adatmozgató utasítások a veremkezelő utasítások (POP,PUSH). Az operandusokat a processzor mindig a veremtárolóból veszi és az eredményt oda helyezi el, ehhez az SP regisztert használva fel.POP,PUSHSP
Emlékeztető - Verem Az utoljára bevitt adatot lehet először kivenni LIFO –Last In First Out Stack –nek is szokták nevezni Sok helyen használják – Operációs rendszerek – Függvények hívása Verem (véges) és verem mutató (stack pointer) Verem műveletek PUSH – Elem betétele – Ha tele a verem, hiba POP – Elem kivétele – Ha üres a verem, hiba
Műveleti utasítások aritmetikai utasítások (különböző adatformátumokkal: fix-, lebegőpontos, BCD (Binary Coded Decimal - Binárisan Kódolt Decimális), string)BCD logikai műveletek léptető utasítások bit műveletek
Számok írásmódja Fixpontos – a -m,a -m+1,…a -1,a 0, a 1,a 2,…a n (pl:5123,896) –Kisebb, vagy kevesebb számjegyből álló számok írásakor alkalmazzuk. Lebegőpontos – a*r p (a:mantissza, p:karakterisztika-hatványkitevő, r:radix-a számrendszer alapszáma pl: *10 7 ) Normalizált(Olyan hatványkitevős alakra hozzuk a számokat, amelyben az egészrész 0 értékű, vagy csak az egyes helyiértéken található értékes számjegy pl :(0, *2 4 ) 2
Aritmetikai utasítások Egészek és BCD számok összeadására, kivonására szolgáló utasítások, amelyek minden processzornál megtalálhatók, a szorzási és osztási utasítások, amelyekkel a 16 és 32 bites processzorok is rendelkeznek, valamint a lebegőpontos műveleti utasítások 32 bites processzorok esetében. Ezen műveletek során a processzor az állapotregiszter egyes bitjeit beállítja, lehetőséget adva a programvégrehajtás vezérlésére: –carry (átvitel. A túlcsordulás jelzésére használt jelzőbitek általános neve),carry –Sign (Előjel),Sign –zero, –Overflow (Túlcsordulás. Akkor keletkezik, ha a műveletvégzés eredménye nagyobb, mint a tárolóban megjeleníthető érték.)Overflow
Aritmetikai utasítások –Összeadás:ADD op1, op2 –Kivonás:SUB op1,op2 –Szorzás:MUL op1,op2 –Osztás:DIV op1,op2 Logikai utasítások –Bitenkénti ÉS:AND op1, op2 –Bitenkénti VAGY:OR op1,op2 –Bitenkénti XOR:XOR op1,op2 A bitenkénti logikai utasítások az operandusok azonos sorszámú bitjei között hajtódnak végre, párhuzamosan.
Shiftelő, rotáló utasítások A shiftelő utasításoknál az adat i-edik bitje jobbra shiftelésnél az i-1-edik bit pozícióba másolódik s a legnagyobb helyiértékű bit törlődik. SHR op A rotálás olyan shiftelés. ahol a legnagyobb és legkisebb helyiértékű bitet egymás folytatásának kell tekinteni. RR op
A bit kezelő utasítások valamely regiszter, memória esetleg periféria bitet képesek 1-be ill. 0-ba állítani, invertálni, esetleg valamely flagbe átmásolni. SETBbit1-be állítja a bitet CLRbittörli a bitet TESTbita bitet bemásolja a Z flagbe Bit kezelő utasítások
Vezérlés átadó utasítások Ezen utasítások hatására a valamely feltétel flagtől függően vagy attól függetlenül a következő végrehajtandó utasítás nem a következő címen levő utasítás lesz. Feltétel nélküli ugrás: JUMP cím vagyJP cím stb. Hatására a megadott címen folytatódik a program végrehajtás (PC=cím). Feltételes ugrás: JUMP feltétel, cím
Szubrutin hívás A szubrutinra a program tetszőleges helyéről lehet hivatkozni az ún. szubrutin hívással (CALL). Ez az utasítás a stack tetejére menti a következő utasítás címét, majd a szubrutin elejére ugrik. A szubrutinból visszatérő utasítás (RET) leveszi a stack tetejéről a visszatérési címet, majd oda ugrik, vagyis visszatér a félbeszakított program folytatásához.
Három egymásba ágyazott szubrutin
Feltételes és feltétel nélküli szubrutin hívás Feltétel nélküli szubrutin hívás: –CALL cím Az utasítás először a stack tetejére menti a következő utasítás címét, majd a megadott címre ugrik. Feltételes szubrutin hívás: –CALL feltétel, cím A szubrutin hívás csak a feltétel teljesülése esetén következik be. Feltétel nélküli visszatérés szubrutinból: –RET Az utasítás hatására a STACK tetejéről a PC-be kerül a visszatérési cím, és a következő utasítást erről a címről veszi a CPU.
Ciklus szervező utasítások Ezekkel az utasításokkal egy program részlet előre megadott számú ismétlése oldható meg. Az utasításhoz tartozik egy ciklus változó, melynek helye előre definiált (pl. egy adott regiszter). A ciklikusan ismételendő program részlet előtt a ciklus változót be kell állítani. Az utasítás a ciklus végén helyezkedik el. Dekrementálja a ciklus változó értékét, s ha az még nem 0, akkor a megadott címre (a ciklus elejére) ugrik. DJNZ relatív cím
CPU vezérlő utasítások NOP: Időhúzó utasítás, nem csinál semmit (No operation). Ciklusban, vagy többször egymás után alkalmazva programból lehet időzítést előállítani.. HALT: Hatására interruptra várakozó állapotba kerül a processzor, NOP-okat hajt végre, amíg egy interrupt be nem következik, vagy RESET jelet nem kap a CPU. EI: Globális interrupt engedélyező utasítás. DI: Globális interrupt tiltó utasítás. Hatására a CPU az NMI-n (nem maszkolható megszakításon) kívül nem fogad el megszakítást. CPU-tól függően egyéb vezérlő utasítások is léteznek.
Periféria kezelési módzserek Közvetlen szoftver ütemezés (nincs szükség szinkronizálásra- nincs mihez, vagy biztosan elkészül a köv. művelet indítására) Lekérdezéses ütemezés a szinkronizálást státus figyeléssel: Ilyenkor a program, a periféria adatregiszteréhez fordulás előtt ciklikusan addig olvassa a státusz regisztert, amíg az azt nem jelzi, hogy kész a következő műveletre
A program megszakításos (interruptos) periféria kezelés –Az interrupt rutin első utasításának végrehajtása előtt a CPU automatikusan a stack tetejére menti a visszatérési címet és a CPU interrupt előtti állapotára vonatkozó információkat. –A periféria kezelését az IT rutin elvégzi, engedélyezi a további IT-ket, majd egy return from interrupt, (RETI) utasítás végrehajtása után visszatér a megszakítás észlelését követő utasításhoz. A RETI utasítás egyrészt a CPU automatikusan elmentett állapotszavát állítja vissza, másrészt a visszatérési címet veszi le a stack tetejéről, s erre a címre adja a vezérlést. Többszintű interrupt rendszer – prioritási szint! Periféria kezelési módzserek
A közvetlen memória hozzáférés (DMA, Direct Memory Access) –A DMA közvetlen adatátvitelt eredményez a memória és az I/O készülék között, a CPU igénybevétele nélkül. –A periféria közvetlen memória-hozzáféréssel rendelkezik –Cél: a közvetlen vezérléssel nagysebességű adatátvitel elérése Periféria kezelési módzserek
DMA sematikus ábra
DMA adatátvitel A CPU, az I/O készülékek és a memória közös buszon osztozkodnak. A CPU és az I/O készülékek azonos ciklusban nem férhetnek hozzá a memóriához A DMA végezhet memória-memória, vagy I/O-I/O adatátvitelt is.
DMA adatátvitel folyamata
DMA adatátviteli eljárások CPU leállítás (CPU halt): a DMA kérésére a CPU leáll, és lekapcsolódik a buszról a DMA adatátvitel tartama alatt. CPU működésének lassítása! Memória időszelet: a memória ciklus két időtartamra oszlik. Az egyik a CPU-é, a másik a DMA-é. –Ez a módszer nagy CPU végrehajtási és nagy DMA adatátviteli sebességet eredményez. –CPU és DMA memória-hozzáférés minden ciklusban van. (Nagy sebességű memóriát igényel)
Ciklus lopás: kompromisszum a CPU halt és a memória időszelet között, ami átlapoláshoz vezet a CPU program végrehajtása és a DMA adatátvitele között. Ha a CPU-nak és a DMA-nak azonos időben lenne szüksége memóriára, a DMA-nak prioritása van a CPU-val szemben. –A CPU működését lassítja, de nem állítja le. DMA adatátviteli eljárások
DMA által használt regiszterek Címregiszter: azokat a memória-rekesz címeket tárolja, amelyek a következő írási/olvasási műveletekhez szükséges információkat, adatokat tárolják. Számláló regiszter: a szavakat számlálja Állapot regiszter: tartalma meghatározza az adatáramlás irányát, vagyis a hardware üzemmódját. A CPU szempontjából nézve ezek a regiszterek úgy kezelhetők, mint az I/O portok, vagy a címezhető memória rekeszek.
Állapot-regiszter = Adatbemenet külső eszközről 1 = Adatkimenet külső eszközre 1 = DMA logika aktív 0 = DMA logika inaktív Nem használt Bit szám
READ művelet időzítése DMAREQ INHIBIT CPU 0 DMACK A0-A15 DMARW D0-D7 WRITE DMA Óra ciklus órajel
Események sorrendje Amikor a DMA érzékeli a logikai 1-et, a DMA REQ vonalon az INHIBIT jel logikai 0 lesz. Az INHIBIT logikai 0 marad, amíg a második logikai 1-be menő óraimpulzus meg nem jelenik Egy óraciklus ideig a CPU műveletek szünetelnek, mert az INHIBIT a CPU órajel vonalat logikai 0-n tartja. Ilyenkor a CPU nagy ellenállással kapcsolódik a cím és az adatbuszokra, vagyis gyakorlatilag lekapcsolja magát a buszról. Ha az INHIBIT 0, akkor a címregiszter tartalma megjelenik a buszregiszter címvonalon. A DMA eszköz a DMAC logikai 1 szintre helyezésével nyugtázza a DMA kérést A DMA állapotregiszter tartalma határozza meg a DMARW vezérlő vonal beállítását (0-külső eszközről kell adatot vinni a buszrendszer adatvonalaira) Az állapotregiszter 0 bithelye határozza meg a WRITE vezérlővonal beállítását. A címvonalon lévő címet minden RAM interface dekódolja és a címnek megfelelően kerül kiválasztásra a megcímzett RAM. Amikor a WRITE vezérlőjel logikai1, az adat a megcímzett memóriarekeszbe kerül.
DMA vezérlő funkciók Címvonal vezérlés Adatátviteli vezérlés Cím tárolás Szószám-tárolás Üzemmód-vezérlés
Címvonal vezérlés A DMA rendszerben a memória-címbuszt vagy a CPU, vagy a DMA hajtja meg attól függően, hogy az adott ciklusban a memóriát melyik eszköz használja. A DMA ciklusban a DMA vezérlőnek a kívánt DMA művelet elvégzéséhez szükséges címet kell a címbuszra adni.
Adatátviteli vezérlés A DMA vezérlőnek a memória és az I/O készülék közötti közvetlen adatátvitelhez –megfelelő időzítéssel- vezérlőjeleket kell szolgáltatni. Ezek a vezérlőjelek csak a DMA ciklusban kapcsolódnak a vezérlő- buszra.
Cím-tárolás A DMA vezérlő címregisztere tartalmazza a következő írásra vagy olvasására kerülő szó címét. Ezt minden szó-átvitelénél inkrementálni vagy dekrementálni kell.
Szószám-tárolás A DMA adatátvitel indításakor a CPU betölti a DMA vezérlő számláló- regiszterébe az átvitelre kerülő szavak számát. A DMA adatátvitel alatt a DMA vezérlő számlálja az átvitt szavakat és a megadott számú szó átvitele után befejezi az adatátvitelt.
DMA vezérlés Elosztott DMA: mindegyik I/O készülékben van egy DMA vezérlő Centralizált DMA: Egyetlen DMA szolgál az összes I/O készülék vezérlésére. DMA adatátvitel indításakor a CPU előírja: –az üzemmódot, –a kezdő memória-címet –az átviendő szavak számát –az átvitel irányát
Repeatitive DMA Néhány alkalmazásnál igény a DMA adatátvitel többszöri ismétlése a CPU beavatkozása nélkül. Ez a ~ A funkció megvalósításához 2 regiszter kell. –Az egyik tárolja kezdőcímet –A másik az induló szószámot Így lehetővé válik, hogy a DMA vezérlő automatikusan újra induljon a CPU beavatkozása nélkül.
Multiplex DMA/CPU A nagy sebességű DMA adatátvitel mellett lehetővé teszi a nagysebességű CPU működést is. A leggyorsabb DMA működés a CPU megállításával jön létre Multiplex esetben 20%-kal csökken, de CPU leállás helyett tovább dolgozik Hátrány: jobb hardware igény. (nagysebességű RAM, két háromállapotú és kétirányú buszmeghajtó szükséges)
Utasítás-végrehajtás
Utasítások szerkezete A számítógépek utasításainak hossza processzoronként változó. –utasítások hossza rögzített, (fix hosszúságú utasítás a csökkentett utasításkészletű (RISC) processzorokra jellemző)RISC –változó CISC processzorok esetében változó, gyakran igen hosszú utasításokat alkalmaznak. CISC
Az utasítás szerkezete megszabja, hogy a processzornak az utasítást hogyan kell értelmeznie. Utasítások szerkezete
Az utasítások három fő részre bonthatók: Műveleti jelrész vagy operációs kód (struktúrált ), amely az elvégzendő feladat fajtáját mondja meg, –a műveleti jelrész további részekre osztható –az egyes részek meghatározzák a művelet típusát, azaz, hogy mely utasításcsoportba tartozik –információt szolgáltatnak az utasítást követő operanduszt illetően is. címrész, amely a művelethez szükséges adatok memóriacímét mutatja meg, –három-, két-, egy- és nullacímes (a proc.-nak hány címre van szüksége a végrehajtáshoz) módosító rész - a pontos címmeghatározáshoz ad előírást
Négycímes utasításszerkezet viszonylag kevés utasításból álló programot lehet előállítani A négycímes utasításszerkezet áll: – egy műveleti jelből, –tartalmazza két műveleti operandus címét, –az eredmény címét és –a következő utasítás címét. A keletkező utasítások igen hosszúak lesznek, ezért ez az utasításszerkezetet visszaszorult
Háromcímes utasításszerkezet Az utasításszámláló regiszter (PC) bevezetésével a soron következő utasítás címe elhagyható.regiszterPC Minden egyes utasítás végrehajtásakor a processzor eggyel növeli a PC tartalmát, de ez csak akkor lehetséges, ha az utasítások a végrehajtás sorrendjében vannak eltárolva a memóriában. Az így kapott utasításszerkezet a háromcímes utasításszerkezet.
Kétcímes utasításszerkezet az eredmény elhagyására kétféle módszer van –a processzor az eredményt automatikusan visszaírja az operandus helyére, –az eredmény tárolására egy külön regisztert tart fenn. Ez általában az aritmetikai egységhez tartozó akkumulátor regiszter (AC).AC
Egycímes utasításszerkezet A második operanduscím elhagyásával jutunk az egycímes utasításszerkezethez, amelyhez feltétlenül szükséges az AC regiszter, mint második cím. Így egy művelet mindig az utasításban megcímzett tárolóhely és az AC tartalma között kerül végrehajtásra és az eredményt a processzor visszaírja az akkumulátorba. A memóriában való adatmozgatás is az akkumulátort használja második operandusként.
Nullacímes utasításszerkezet szükséges az úgynevezett veremtároló alkalmazása Ez egy speciális tároló, amely a LIFO (Last in First out. Az utolsónak bekerült adat kerül ki először) elven működik, adatokat csak a verem tetejére lehet elhelyezni és csak onnét lehet levenni is.LIFO A veremtároló általában a főmemóriában van kialakítva és a veremmutató regiszter (SP) segítségével kezelhető.SP –Az SP arra a tárolócímre mutat, ahonnét a processzor a következő adatot leveszi (pop), vagy ahová a következő adatot beteszi (push).poppush
A RISC processzorok háromcímes,RISC A CISC processzorok általában két, vagy egycímes utasításszerkezettel dolgoznak.CISC Az Intel processzoroknál az utasítások műveleti része egy (i8086/i80286) vagy kétbyte-os (i80386/i80486) amelyhez két bit kapcsolódik. –Az egyik megadja, hogy a memóriabeli operanduscímre, vagy onnan kell szállítani, (kezdőcím) –míg a másik az operandus méretére (byte/word) vonatkozóan ad információt. (hossz)word –8086 és esetében ezt egy úgynevezett MODE byte követi, amely meghatározza az operandus helyét,MODE –majd az OFFSET, amely a szegmensen belüli relatív címet adja meg és a közvetlen adatkonstans egy-két byte-on.OFFSETszegmens –Az utasítást megelőzheti egy-három byte-os prefix, amely módosítja az utasítás tartalmát.
Bitműveletek A bitműveletek egyes processzorok esetében külön műveleteket jelentenek, melyekkel az – operandusok egyes bitjeit állíthatjuk be a megfelelő értékre, vagy –egyszerűen csak ellenőrizhetjük azok állapotát. A külön bitművelettel nem rendelkező processzoroknál a bitműveletek aritmetikai és léptető, illetve forgató utasításokkal végezhetők el, mely utóbbiak a bitműveletek csoportjához sorolhatók.
Vezérlő utasítások A program futását vezérlő utasítások. –Általában a veremtárolót használják, ahová a vezérlés átadása előtti (visszatérési) címet a proceszor elmenti. –A verem tetejét az SP (Stack Pointer - Veremmutató regiszter. A veremtároló legfelső elemét jelöli ki.) mutatja.SP
Vezérlésátadó utasítások Feltétel nélküli –Feltétel nélküli ugrásnál az utasításban szereplő címmel tölti fel a processzor az utasításszámláló regiszter tartalmát, amely a következő utasítás címe lesz és a program innen folytatódik. regiszter Feltételes vezérlésátadó utasítások –Feltételes ugró utasításnál a műveleti jelrész által előírt feltétel teljesülése esetén adódik át a vezérlés az operandusban megadott címre és a program az ott található utasítással folytatódik. Ha az operációs kód által előírt feltétel nem teljesül, a program a soron következő utasítással folytatódik.operandus
Szubrutinhívó utasítások Szubrutin (alprogram) hívó utasítások. – Ezen utasítások feltétel nélküli vezérlésátadó utasítások, de megőrzik annak a helynek a címét, ahonnan a vezérlésátadás történt, így az alprogram végrehajtódása után a vezérlés visszatér az eltárolt címre és a program onnan folytatódik. Egyes processzorok esetében lehetőség van feltételes szubrutinhívó utasítások végrehajtására is.
Ciklusszervező utasítások Iteráció (hurok, vagy ciklus) utasítás. Az utasítás meghatározott programutasítások végrehajtását segíti elő az utasításban szereplő feltétel teljesüléséig.
Működést szabályozó utasítások A működést szabályozó utasítások a megszakításokra vonatkozó tiltás és engedélyezés (enable/inhibit interrupt-megszakítás. IP ).interrupt –Ezek segítségével a perifériák által kezdeményezett megszakítás kérelmeket lehet tiltani, illetve engedélyezni. Ide tartozik a processzor futását felfüggesztő utasítás (HALT-gépi ciklus), amelyet csak egy speciális megszakítás-kérelemmel lehet feloldani (RESET-A processzor egyik bemenete, segítségével a CPU újraindítható).HALTRESET
Processzor állapotok, gépi ciklus Minden tárhoz fordulás egy alapidőtartamot igényel, ennek neve gépi ciklus. A gépi ciklusok fázisokból épülnek fel, amely alatt valamely részművelet végrehajtására kerül sor. Egy-egy fázis tovább bontható órajel-időtartamokra.
Normál gépi ciklus a program végrehajtása során: –utasításnak, illetve adatnak a memóriából történő kiolvasására, –adatnak a memóriába történő beírására, vagy – input portról történő bevitelnek, illetve output portra történő kivitelnek a végrehajtására alkalmas.port
HALTHALT típusú gépi ciklus HALT állapotban a processzor nem hajt végre utasításokat, várakozik. –A ciklust erre a célra szolgáló utasítással lehet előidézni (HLT), –elfogadását letiltani nem lehet, határozatlan ideig fennállhat. –Az állapot feloldásához külső beavatkozás szükséges : külső HOLD igény jelzése - az igény elfogadása a HALT állapot ideiglenes felfüggesztését eredményezi, megszűnése után a processzor ismét HALT-ba kerül.HOLD a processzor resetelése, - a PC nullázódik és az utasítások végrehajtása elkezdődik a 0. memóriacímtől.PC külső megszakításkérés - feltétel, hogy a megszakításkérő bemenet engedélyezve legyen, erről a HALT utasítás előtt kell gondoskodni.
Műveleti vezérlés az utasítás-végrehajtás lépései további elemi műveletek sorozatára bonthatók fel –Ezek a műveletek adatútvonalak kapuzását, –bizonyos állapotok beállítását eredményezik. –Az operációs kód alapján történõ vezérelhetőség csak lépésenkénti vezérlési lehetőség, valamint az adatutak kapuzásának (engedélyezés/tiltás) lehetősége alapján valósítható meg.
Az elemi műveletek végzése Hardver mód (huzalozott) –Az elemi tevékenységek sorrendjének vezérlését bonyolult sorrendi, kombinációs áramkörrel oldják meg. Ez a szükséges sorrendben adja ki az egyes kapuk működtetésére szolgáló vezérlő jeleket, amely gyors működést eredményez, de költséges megoldás. –Egyszerűbben kezelhető a programozható logikával történő megvalósítás. Ezek az áramkörök programozható ÉS és VAGY kapukból állnak. Gyors működés érhető el. (RISK)
Szoftver mód (mikroprogramozott) A processzorok műveleti vezérlése kétféle struktúrában oldható meg. –horizontális struktúra –vertikális struktúra. A különbség az utasítás- feldolgozás párhuzamosítási fokában mérhető, amely vonatkozik: az utasítás és adatelőkészítésre az operációs kód kiértékelésére a művelet végrehajtására
Mikroutasítások A mikroutasítások szerkezetileg hasonlítanak a gépi kódú utasításokhoz. Két részből állnak: –a következõ mikroutasítás címe a tárolt mikroprogramban, –a vezérlési mező, amely meghatározza az engedélyezett vezérlési pontokat. Ezen vezérlési pontok engedélyezése teszi lehetővé elemi műveletek végzését. –Egy utasítás elemi lépéseinek vezérlése sok ilyen pont meghatározott sorrendben történő vezérlését jelenti. A mikrovezérlő egy mikrocímregisztert is tartalmaz a következő mikroutasítás címének nyilvántartására.
Horizontális-Vertikális mikroutasítás Horizontális mikroutasítás esetében a vezérlési mező minden bitje egy vezérlési pont engedélyezését, vagy állapotjelző beállítását végzi. Vertikális vezérlési struktúrájú mikroutasításnál egy operációs kód és az operandus címe található,operandus –ezen formátum csak kis számú elemi műveletet vezérel, így a gépi kódú utasítás végrehajtása több mikroutasítás végrehajtását jelenti. –A mikroprogram tartalmazhat mikroeljárást, mikroszubrutint, hasonlóan a makroszintű utasításokhoz. –A működés gyorsítására a mikroutasítások a vezérlőegység regisztertárainak tartalmával dolgoznak.
Műveletvégrehajtás gyorsítása Az órajel frekvencia növelése Párhuzamosítás, átlapolás (pipelining)pipelining –Az átlapolásos technika alapja a processzor folyamatainak részfeladatokra való osztása. Ezen folyamatok alatt az utasítások és műveletek elvégzésének lépéseit kell érteni. –A lényeg, hogy a folyamatot olyan lépésekre kell bontani, amelyek önálló egységet képeznek, egy-egy külön erőforráshoz kapcsolódnak. –Így a felszabadult erőforrást egy másik folyamat rögtön igénybe tudja venni. Egy folyamat elvégzésének ideje nem változik, de ugyanazon idő alatt több folyamat fut le. Ez az átlapolásos (pipelining, adatcsatornás) feldolgozás.
PipeliningPipelining ütemezés Aszinkron módszer –Aszinkron esetben a feldolgozás folyamatos, amit úgy valósítanak meg, hogy az egymást követő fokozatok jelzik, amikor elkészültek egy feladat végrehajtásával és képesek egy újabb feladat fogadására. Szinkron módszer –Szinkron esetben órajel hatására, azonos időben kezdenek hozzá a fokozatok a feladatok végrehajtásához, az ütemet a legtöbb időt igénylő egység szabja meg.
Adatátvitel
Vezérlő vezeték Adat vezeték Cím vezeték Vezérlő vezeték Adat vezeték Cím vezeték Külső adatbusz DMA adatbusz RAM Interfce CPUDMA DMA vezérlés I/O eszköz Szimultán DMA rendszer
CPU-val megvalósított rendszerek „okos” CPU – „buta” periféria –Vezérlésnél: a CPU teljes vezérlő-jelkészlete A perifériák jelentős mennyiségű belső logikát használnak –CPU csak elemi vezérlőjeleket ad, amit a csatlakozó készülék értelmez és végrehajt. –Vezérlőjelek: I/O vagy memóriaművelet adatforgalom iránya –A csatlakozó eszköz két vezérlőjelet és egy órajelet fogad, majd a belső logikával dekódolja az információt
Adatok továbbítása (ált.) Adatátviteli szabályok: Szimplex: egy csatorna, az adat csak egy irányba folyhat. Az egyik az adó, a másik a vevő. Az adótól a vevőig folyhat az átvitel. Pl.: rádió Félduplex: egy csatorna, az adat két irányba folyhat, de nem egy időben. Egyszer az egyik fél az adó és a másik a vevő utána pedig fordítva az adatáramlás irányától függően. Ez az átvitel a számítógépek közötti kommunikációra alkalmas. Pl.: műholdas kapcsolatok, CB rádió. Duplex: két csatornán kétirányú adatátvitelt enged meg egy időben tehát mindkét állomásnak egyidejűleg teszi lehetővé az adást és a vételt. Egyik csatorna sérülése esetén átmehet félduplexbe. Pl.: telefon.
Soros bemenet/kimenet a mikroszámítógépekben Ha a CPU-nak soros adatokat kell fogadnia, továbbítania, akkor olyan illesztő logikával kell ellátni, amely a soros adatokat párhuzamossá ill. fordítva képes alakítani. MODEMSI μCμC Soros vonal SI: Soros interface μC: Mikroszámítógép Digitális logikai jelek
Átviteli módok: Szinkron: melynek lényege, hogy az adó először elküld egy jelet a vevőnek, az ráhangolódik, így szinkronba kerül az adóval (szinkronizáló karakter!). Így az üzenet bitjei szigorú rendben követik egymást. Nagytömegű adat esetén gyorsabb, hibavédettebb. Az adatfolyam pontosan alkalmazkodik az órajelhez Aszinkron: melynek lényege, hogy az adó és a vevő nem hangolják össze a tempót. Start-stop byte-onként történik az adatátvitel. (A karakterek között egy folyamatos „megszakítás” jelet találunk) A kibocsátás és a mintavételezés ritmusa eltérő. A karakterszervezésű üzenetek átviteli módja. Hosszú adatátvitel nem valósítható meg vele. –Aszinkron adategység felépítése: START bit-adategység-STOP bit
Soros CPU-I/O illesztő IOSEL Külső buszrendszer adatvonalak IORW IOSEL: azonosítja a folyamatban lévő I/O műveletet IORW: írási és olvasási művelet kiválasztás
Adás és vétel sebességének vezérlése IOSEL Külső buszrendszer adatvonalak IORW Vevő Adó Vevő óra Vevő adat Adó óra Adó adat
Real-time logika A beavatkozáshoz (pl. vezérléshez) szükséges adatok „valós idejűek” – olyan sűrűek, mintha a vezérlőjeleket kiadó és a visszajelzéseket fogadó rendszer azonos lenne az általa befolyásolt jelenséggel. A real-time működésben lévő két egység egymáshoz képest időben alig eltérő szinkronban van. Pl: Munkaidő nyilvántartó mikroszámítógép rendszer működtetése