1. INFORMÁCIÓ FELDOLGOZÁS, MIKROVEZÉRlŐK

Hasonló dokumentumok
Bevezetés a számítástechnikába

Dr. Oniga István DIGITÁLIS TECHNIKA 2

A mikroprocesszor felépítése és működése

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

4. Fejezet : Az egész számok (integer) ábrázolása

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Összeadás BCD számokkal

Harmadik gyakorlat. Számrendszerek

Assembly programozás: 2. gyakorlat

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Processzor (CPU - Central Processing Unit)

Fixpontos és lebegőpontos DSP Számrendszerek

Kombinációs hálózatok Számok és kódok

Informatikai Rendszerek Alapjai

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Aritmetikai utasítások I.

Számítógépek felépítése, alapfogalmak

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Digitális technika VIMIAA01

ASCII karaktertáblázat 1. (9)

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

2. Fejezet : Számrendszerek

Digitális technika VIMIAA02 1. EA

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Informatika érettségi vizsga

Digitális technika VIMIAA01

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Bevezetés az informatikába

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Központi vezérlőegység

Digitális technika VIMIAA01

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Programozott soros szinkron adatátvitel

Bevezetés az informatikába

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

A számítógép fő részei

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Számítógép felépítése

IT - Alapismeretek. Feladatgyűjtemény

Digitális technika VIMIAA hét

Máté: Számítógép architektúrák

5. Fejezet : Lebegőpontos számok

Adatok ábrázolása, adattípusok

Digitális technika VIMIAA hét

Számítógépek felépítése, alapfogalmak

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

Mintavételes szabályozás mikrovezérlő segítségével

IT - Alapismeretek. Megoldások

Máté: Számítógép architektúrák

Szám- és kódrendszerek

Digitális rendszerek. Utasításarchitektúra szintje

A számrendszerekrl általában

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

INFO1 Számok és karakterek

Számrendszerek és az informatika

5.1.4 Laborgyakorlat: A Windows számológép használata hálózati címeknél

Jelek és adatok. A jelek csoportosítása:

Vonalkód referencia-útmutató

Feladat: Indítsd el a Jegyzettömböt (vagy Word programot)! Alt + számok a numerikus billentyűzeten!

Dr. Oniga István DIGITÁLIS TECHNIKA 8

I. el adás, A számítógép belseje

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

A/D és D/A konverterek vezérlése számítógéppel

Számítógépek felépítése

I+K technológiák. Számrendszerek, kódolás

2016/08/31 02:45 1/6 Hardver alapok

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Szekvenciális hálózatok és automaták

1. forduló Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

Az Informatika Elméleti Alapjai

Jelfeldolgozás a közlekedésben

Tudásszint mérés feladatlap

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

A fejlődés megindulása. A Z3 nevet viselő 1941-ben megépített programvezérlésű elektromechanikus gép már a 2-es számrendszert használta.

Összetett feladatok megoldása

Átírás:

. INFORMÁCIÓ FELDOLGOZÁS, MIKROVEZÉRlŐK Bizonyára sokakban felmerül az kérdés, hogy mi az oka annak a szédületes informatikai fejlődésnek ami jelenleg a világra jellemző. Először két sokkoló dátum: 97: Az első mikroprocesszor megjelenése Csak 29 év! 98: Az első IBM PC megjelenése Csak 9 év! 98-töl: A számítógépek részt vesznek az újabb számítógép generációk létrehozásában Evolúció?! ( TERMINATOR I. II.) A számítógépek ott vannak mindenütt. El tudnánk képzelni ezek nélkül ma az életünket? Már nem. A számítógép megjelenése úgyszólván minden korábbi technikát, technológiát átalakított. " Ez a szédületes fejlődés egyeseket lenyűgöz, másokat megrémít, de egy biztos, az emberiség többsége tisztában sincs a dolog jelentőségével és veszélyével. Nem is tudják, hogy milyen mértékben beépült életükbe a technika. Ma már a kenyérpirító is processzoros áramkört tartalmaz. A naphosszat számítógép előtt dolgozó milliók többsége sem gondolta még végig, képes lenne-e a munkáját mechanikus írógéppel írni, akár több példányban újra és újra, vagy papír-ceruza módszerrel fejben számolni. Nagy valószínűséggel nem.mindezt csak azért írtam le, hogy akik a soron következő fejezetek hatására kapnak kedvet a mikroprocesszoros áramkörök fejlesztéséhez, egy nagyon fontos gondolatot mindig tartsanak szem előtt: az a célunk, hogy egy jobb világot hagyjunk hátra az utókornak és nem pedig az, hogy egy önműködő, emberektől mentes világot. " (Lamár Krisztián). SZÁMRENDSZEREK Sajnálatos módon egy kis matematikával kell kezdenünk a könyvet. Előszőr a tízes (decimális), kettes (bináris) és a tizenhatos (hexadecimális) számrendszereket foglaljuk össze nagyon röviden, ami a továbbiakban leírtak megértéséhez szükséges. A ± a a a a a a a a A számok szokásos írásmódja: ( m m m 2 0, 2 n ) ahol a, a,, a, a,, a az egyes helyiértékeken szereplő számjegyek alaki értékei. Ha m m 0 n a számrendszer, amelyben a fenti jelsorozatot értelmezzük, alapszáma r (radix), akkor a leírt jelsorozat a következő számértéket jelenti: n i A=± ar i és ahol 0 a i < r i= m A digitális technikában a leggyakrabban a kettes, tízes és tizenhatos alapszámú számrendszereket használják. Azt hogy egy leírt számérték milyen számrendszerben van leírva szokták a szám után írt B (kettes) D (tízes) és H (hexadecimális) betűkkel megkülönböztetni. nem elegendő. Ezért a szokások szerint, a 9-nél nagyobb, 0 5 értékű számjegyeket az ABC első hat betűjét használjuk fel: A=0, B=, C=2, D=3, E=4, F=5 megfeleltetéssel. Vagyis a hexadecimális A szám az 0-et jelent decimálisan, és így tovább Például a 2AF hexadecimális szám értéke decimálisan: 3 2 0 2 AFH = 2A F6 = 2 6 0 6 6 5 6 = 892 2560 6 5 = 07830 A kettes számrendszer használatát az indokolja, hogy az információ ábrázolásánál és feldolgozásánál kétállapotú jelekkel dolgozunk, aminek használata és értelmezése nehezebb a tízes számrendszerhez szokott emberi agy számára. A bináris számoknál sokkal hosszabb számsorozatokat kell leírnunk egy adott szám ábrázolásakor, és még könnyű az egymás után következő nullák és egyesek sorrendjét eltéveszteni. A tizenhatos számrendszer használata (bár ez is bonyolultabb mint a tízes ) erre a problémára ad megoldást. Ugyanis egy bináris szám négy helyiértéke megfelel egy hexadecimális szám egy helyiértékének. Az átalakításkor a bináris számot a 2 0 helyiértéktől kezdődően négyes csoportokra (tetrádokra) bontjuk. Az így képződött bináris számnégyeseket, a hexadecimális megfelelőjükkel helyettesítve megkapjuk a szám hexadecimális alakját. Például: 00000B=00 0 00 =AEF3H Természetesen az átalakítás visszafelé is elvégezhető: F2AH= 000 000 00 = 00000000B Vagyis a hexadecimális számábrázolással sokkal tömörebben tudunk bináris információt leírni, és a bináris-hexadecimális átalakítás nagyon egyszerű a mellékelt táblázat alapján. A következő táblázatban összefoglaltuk az eddig leírtakat: TIZES 6-OS 2-ES 0 0 0000 000 2 2 000 3 3 00 4 4 000 5 5 00 6 6 00 7 7 0 8 8 000 9 9 00 0 A 00 B 0 2 C 00 3 D 0 4 E 0 5 F Tízes számrendszerben például a 7346-os szám értékét a számjegyek és a hozzájuk tartozó helyiértékek (ezek a radix (itt a 0) hatványai) szorzatának összege adja: 7346 = = = =7346D 3 2 0 0 7 0 3 0 4 0 6 0 7000 300 40 6 73460 Kettes számrendszerben a radix=2, igy csak két számjegy a 0 és van, és a helyiértékek 2 hatványai. 4 3 2 0 00B= 002 = 2 0 2 2 2 0 2 = 6 0 4 2 0 = 220=22D Természetesen a törtszámok is ábrázolhatók a kettes számrendszerben:.0 = = = 0 2 3 4 2 2 0 2 2 2 2 0 / 4 /8 /6. 43750 Hexadecimális számok ábrázolásához 6 számjegy szükséges, a tízes számrendszer tíz számjegye.. A BCD-KÓD Azt az eljárást, amikor egy bítcsoporthoz valamilyen információ egységet rendelünk, kódolásnak nevezzük A kettes számrendszer szerinti ábrázolás elsősorban akkor előnyös, ha aritmetikai műveleteket kívánunk végezni a számokkal, mivel a számok belső ábrázolása bináris.. Ilyenkor azonban a Decimális számjegy BCD kód Gray kód Aiken kód Stibitz kód 2 az 5-ből kód 0 0000 0000 0000 00 000 000 000 000 000 000 2 000 00 000 00 000 3 00 000 00 00 000 4 000 00 000 0 000 5 00 0 0 000 000 6 00 00 00 00 000 7 0 000 0 00 000 8 000 00 0 0 000 9 00 0 00 000 -- -2-

szokásos tízes számrendszerbeli megjelenítés előtt a bináris számokat vissza kell alakítani, kijelezhető decimális alakban. Ezért célszerű olyan kódrend-szereket használni, ahol a tízes számrendszerbeli számok szám-jegyeit egyenként konvertáljuk át az alkalmazott bináris kódba. Mivel a tízes számrendszerben tízféle számjegyet használunk, ezek ábrázolásához legkevesebb 4 bit(= tetrád) szükséges. A leg-gyakrabban használt kódrendszerek bináris kódszavai láthatók a táblázatban. Ezek közül a BCD kód használata a legelterjedtebb. Az ábrázolandó számokat számjegyenként kódoljuk, így végzünk velük műveleteket, (amelyek természetesen bonyolultabbak, mintha bináris számokkal végeznénk), de az eredmények megjelenítése sokkal egyszerűbb lesz. Példaként a 2659 decimális szám BCD kódú ábrázolása látható..2 AZ INFORMÁCIÓ ÁBRÁZOLÁSA Az információ feldolgozása, tárolása egymástól jól megkülönböztethető két állapotú fizikai jellemzőket felhasználó eszközök segítségével történik. Ilyen fizikai jellemzők: egy vezetéken áram folyik vagy nem, egy áramkör adott pontján kicsi (low=l) (pl. 0 Volt) vagy nagy (high=h) (5Volt) feszültség van, egy kondenzátor töltött vagy nem (dinamikus RAM memóriák) egy adott helyen lévő kis mágnesezhető anyag mágnesessége Észak-Déli, vagy a fordított Dél-Északi (floppi- és merevlemezeknél, mágnesszalagoknál) egy adott ponton egy fénysugár át tud haladni vagy nem (lyukszalag, lyukkártya) egy adott pontra irányított lézer fénysugár visszaverődik, vagy nem (CD, DVD-ROM) Ezeket a fizikai jellemzőket megfelelő elektronikus eszközökkel egymásba könnyen át tudjuk alakítani: például a floppy meghajtó kimenetén a belső, mágnesesen tárolt információ kétállapotú (TTL szintű) jelfolyamként jelenik meg. Ezért általában a gyakorlatban a fizikai jellemzők helyett a két állapotot az és 0 (vagy H (High) L (Low)) szimbólumokkal jelöljük. Ezt az elemi információ egységet bit-nek hívjuk, és két értéke: 0 vagy lehet. Ha ilyen bitekből csoportokat alkotunk, akkor összetetebb információ kezelésére, tárolására is lehetőség nyílik. Azt az eljárást, amikor egy bítcsoporthoz valamilyen információ egységet rendelünk, kódolásnak nevezzük. Mivel az információ feldolgozás sokszor számításokat igényel, az egyik legkézenfekvőbb kódolás, mikor a bitcsoportot bináris számként értelmezzük, kódoljuk. Például az 0 bitcsoport -- az első fejezetben már leírtak alapján a 84=3 tizes számrendszerbeli (decimális) számot jelentheti. Természetesen számok mellett szöveges információkkal is találkozunk, ezért a szöveg betűit (karaktereit) is bitcsoportokkal ábrázoljuk (kódoljuk). Fontos! Sem a bitcsoport hossza, sem benne lévő bitek sorrendje önmagában nem határozza meg azt, hogy mit kódoltunk, azaz csak a hozzárendelés (a kódolás) ismeretében tudjuk az információt értelmezni! Bár a bitcsoportban lévő bitek száma elvileg tetszőleges lehet, a gyakorlatban a 4 (félbájt=nibble) illetve 8 bites (bájt) csoportok (illetve a bájt többszörösének) használata terjedt el. A következőkben a két legfontosabb adatforma a numerikus adatok (számok), illetve szöveges adatok (a karakterek) kódolását tekintjük át röviden. 2 6 5 9 0 0 0 0 0 0 0 0 0 0.2. SZÁMOK ÁBRÁZOLÁSA A számok ábrázolásánál három alapvető ábrázolási mód terjedt el: fixpontos ábrázolás lebegőpontos ábrázolás BCD alakban történő ábrázolás.2.. Fixpontos számábrázolás A fixpontos számábrázolásnál, ahogy azt az elnevezés is mutatja, a bináris pont egy rögzített helyen található. Ha csak egész számokat ábrázolunk, a bináris pont a szám ábrázolására lefoglalt terület jobb szélén, vagyis a legértéktelenebb bit után helyezkedik el. Ebből következik, hogy az így ábrázolt számok törtrészt nem tartalmazhatnak. Az ábrázolási tartományt, vagyis a pozitív és negatív tartományban ábrázolható maximális érték nagyságát a szám tárolására használt terület hossza-- vagyis a bitek száma--határozza meg. Egész típusú számokat--az alkalmazásuk jellegétől, az adatok értékkészletétől függően--két alapvető típusba sorolhatjuk: előjel nélküli, abszolút-értékes ábrázolás előjeles ábrázolás Előjel nélküli ábrázolást akkor alkalmazunk, ha pl. csak pozitív értékekkel dolgozunk és biztosított, hogy a teljes algoritmus alatt negatív szám nem fordulhat elő. Mivel ebben az esetben az előjel tárolására nem kell egy bitet "feláldozni", a rendelkezésre álló bitek mindegyike az adat tárolására használható fel. A maximálisan tárolható érték az ábrázolásra szánt bitek számából egyszerűen számolható: maximális érték=2^n-, ahol N a bitek száma. egy bájt esetén 0-255 két bájt esetén 0-65535 három bájt esetén 0-6 777 25 négy bájt esetén 0-4 294 967 295 tartományba eső egész számokat ábrázolhatunk. Előjeles ábrázolást akkor alkalmazunk, ha nemcsak pozitív, hanem negatív számokat is ábrázolnunk (tárolnunk) kell. Ekkor két különbözô mód közül választhatunk: előjeles abszolút-értékes ábrázolás kettes komplemens-kódú ábrázolás Előjeles abszolút-értékes ábrázolásnál a rendelkezésre álló bitek közül egyet, a legmagasabb helyértéküt, az adatbitektől elkülönítjük. Ezen bit értéke határozza meg az elôjelet, ami: -es érték esetén a szám előjele negatív 0-ás érték esetén a szám előjele pozitív A maximális ábrázolható érték mindkét tartományban =2^(N-) -, ahol N a bitek száma. Ebből következik, hogy például a két bájtos előjeles abszolút-értékes ábrázolás esetén az ábrázolható egész számok a -32767...32767 tartományba esnek. Példaként ábrázoljuk két bájton előjeles abszolút-értékes számábrázolással: a) a decimális 29647-et.. A 29647 decimális érték binárisan=0000 2. Az előjelet figyelembe véve és két bájtra kiegészítve: 00000-3- -4-

b) A decimális -5748-at.. Az 5748 decimális érték binárisan=000000 2. Az előjelet figyelembe véve és két bájtra kiegészítve:00000000 A kettes komplemens kódú ábrázolás azt jelenti, hogy pozitív szám esetén a szám abszolút értékét kifejező bináris számjegyek úgy töltik ki a bitpozíciókat, mintha a képzeletbeli bináris pont az ábrázolásra fenntartott bitpozíciók után következne. A bináris szám értékes jegyeit megelőző összes pozícióba nulla kerül. Így automatikusan a legmagasabb--az előjelet tartalmazó--pozícióba is nulla kerül, amely ennél az ábrázolási módnál a pozitív előjelet jelenti. Két bájton ábrázolható legnagyobb pozitív szám ezek szerint: 0 =32767 Negatív szám tárolása esetén, első lépesként a szám abszolút értékét, mint egy pozitív számot az előbb leírtak szerint ábrázoljuk. Ezután ezt a számot bitenként invertáljuk, vagyis minden pozíción a bit értékét ellentétjére változtatjuk. Legvégül az így kapott értékhez -et binárisan hozzáadunk, és így megkapjuk az eredeti szám kettes komplemensét. A két bájton ábrázolható legnagyobb negatív szám: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=-32768 Ha egy kettes komplemens kódban ábrázolt számot értelmezni akarunk, akkor a bináris alak legmagasabb bitpozíciójában lévő érték egyrészt megadja a szám előjelét, másrészt megszabja a visszaalakítás módját is. Amennyiben az előjel bit nulla, akkor a szám azonos a bináris értékével. Ha a legmagasabb helyiértéken lévő bit értéke, akkor először a bitenkénti invertálást, majd az bináris hozzáadását kell elvégezni. Az így kapott számot már pozitív számként, a szokásos módon alakítható vissza, de az eredmény negatív előjelet kap! Az egész típusú előjeles számok kettes komplemens kódban történő ábrázolásának előnye, hogy így a kivonás visszavezethető az előjelbittel együtt elvégzett összeadásra, és műveletvégzés közben nem kell az előjelbitet külön kezelni. Példaként határozzuk meg a következő, kettes komplemens kódban ábrázolt számot: 0 0 0 0 0 0 0 Mivel az előjelbit, ezért a szám negatív lesz. Első lépésként végezzük el az invertálást: Adjunk a számhoz -et: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 azaz decimálisan és az előjelet figyelembe a szám decimális alakban véve: -374.2..2 Lebegőpontos számábrázolás A fixpontos egész ábrázolási mód két jelentős hátrányát--az aránylag szűk ábrázolási tartományt, és a törtrész hiányát--a lebegőpontos számábrázolási mód küszöböli ki. Az ábrázolás alapgondolata az, hogy bármely "A" szám felírható exponenciális alakban, egy együttható és egy hatvány szorzataként: A=M*0 K, ahol M - az együttható (Mantissza); K - a hatvány kitevője, (Karakterisztika) Az így felírt számot normál alakra hozzuk, vagyis úgy átalakítjuk, hogy a mantissza csak törtrészt tartalmazzon és a törtrész első nullától különböző számjegye közvetlenül a tizedespont mögött áll. Ebből a felírási módból nyilvánvalóan adódik, hogy két értéket kell tárolni, az M mantisszát és a K karakterisztikát. Mivel a számítógép bináris ábrázolási rendszeréhez közelebb állnak kettő hatványai mint a tízé, ezért a számrendszer, és így az ábrázolás alapjául általában kettőt, vagy a tizenhatot szokták választani. A lebegőpontos alakban tárolt számokkal műveleteket végző aritmetikai rutinok meglehetősen bonyolultak, ezért assembler programokban történő alkalmazásuk úgy célszerű, ha van lebegőpontos rutinokat tartalmazó programcsomagunk. A programunkba beszerkesztve, az operandusok megadása után meghívjuk a megfelelő aritmetikai rutint. A rutin végrehajtása után az eredmény rendelkezésre áll és felhasználható..2..3 BCD alakú számábrázolás Erről már az első fejezetben is írtunk. Ez a számábrázolási mód elvileg tetszőleges pontosságú számábrázolást tesz lehetővé. A szám minden egyes számjegyét--annak bináris megfelelőjével helyettesítve--4 biten tároljuk. A tizedespont helye osztja ketté a számot egésszé és törtté. Ilyen módon ábrázolt számok összeadását és kivonását megkönnyíti a több mikrokontroller utasításkészletében szereplő DAA utasítás, de az előnyök egy része elveszik a lassan és bonyolultan végrehajtható szorzásnál és osztásnál. A legnagyobb előnye, hogy nagyon egyszerűen alakítható át megjeleníthető formára..2.2 KARAKTEREK ÁBRÁZOLÁSA - AZ ASCII KÓDRENDSZER A karakterek kódolásánál csaknem kizárólag az amerikai hadsereg által 953-ban kifejlesztett, majd szabványosított ASCCI kódolást használják. Az ASCII rövidítés az American Standard Code for Information Interchange (=Amerikai szabványos kód az információ kölcsönös cseréjére) kifejezés rövidítése. Az ilyen módon kódolt bitcsoportokat ASCII karaktereknek nevezzük. Az ASCII karakterkészlet 28 darab, hét bites, különböző kódot tartalmaz, amelyik mindegyike egy egyedi karaktert reprezentál. Természetesen felmerülhet a kérdés, hogy miért 7, és nem 8 bites kódot választottak, hiszen ekkor 256 különféle kód volna lehetséges (és ez a bájtos tárolási módhoz is illeszkedne). Az ASCII kód ANSI X3.4-977-es szabványának függelékében szerepel az a megállapítás, hogy minimum 7 bit a legtöbb felhasználásban elegendő. Ez érthető is, mert ha az angol ABC-t tekintjük, annak 26 kis, 26 nagybetűje, az írásjelek (vessző, kérdőjel, stb.) valamint a 0 szám együttesen már több mint 64 különféle karaktert jelent, aminek kódolásához már 7 bit szükséges. Az ANSI szabvány az ASCII karakterkészlet definiálásakor a kódokat két fő csoportba osztotta: grafikus karakterek és vezérlő karakterek csoportjába. Grafikus karakterek esetén a megjeleníthető, látható, nyomtatható karaktereket értjük, míg a vezérlő karakterek, a megjelenítés vezérlésére, formájának kialakítására, valamint az információcsere vezérlésére szolgálnak. A vezérlőkaraktereket három kategóriába soroljuk: információcsere vezérlők, formátumot befolyásolók és információ elkülönítők. Az első 32 karakter, és az utolsó DEL karakter tartozik ezekbe a kategóriákba. Információcsere vezérlő karakterre példa a 04H kódú EOT karakter, amit annak a jelzésére használnak, hogy a karakterek átvitele befejeződött és ez a kód jelöli, hogy nincs több átviendő karakter. Formátum befolyásoló karakterekkel lehet a karaktersorozat megjelenési formáját befolyásolni. Például az LF Line Feed (Soremelés) karakter hatására a karakterek megjelenítése az adott pozícióban, de új sorban folytatódik. Pl. az A,B,C,D,LF,E,F -5- -6-

GRAFIKUS ("LÁTHATÓ") KARAKTEREK karaktersorozat az ABCD EF formában jelenik meg. Az információ elkülönítő karakterek az információ logikai értelemben való elkülönítésére szolgálnak. Ilyen módon lehetséges különböző hosszúságú karaktersorozatok rekordok átvitele. Ha például három különböző hosszúságú rekordot akarunk átvinni, akkor a rekordokat a Rekord Separator (RS) (kód: EH) karakterrel lehet egymástól elválasztani. A vezérlőkarakterek némelyike a fentiek egyikébe sem sorolható be, ezeket általános vezérlőkaraktereknek nevezzü az ASCII KÓDOK KOMMUNIKÁCIÓ VEZÉRLÉS NUL,SOH,STX,ETX EOT,ENQ,ACK,DLE NAK,SYN,ETB VEZÉRLŐ KARAKTEREK FORMÁTUM VEZÉRLŐK BS,HT,LF,VT FF,CR INFORMÁCIÓ SZÉTVÁLASZTÓK FS,GS,RS,US ÁLTALÁNOS BEL,SO,SI,DC-4 CAN,EM,SUB,ESC DC=XON DC3=XOFF -7- Ahogy a felsorolásból is látható volt, az ASCII vezérlő karakterek alapvetően a karakter orientált átviteli eljárások kialakításának támogatását végzik. Ilyen szempontból az ASCII karakterkód készletet egy adatátviteli (kommunikációs) kódnak is nevezhetjük. AZ ASCII kódrendszer kialakítása abban az időszakban történt meg, amikor még az adatmegjelenítő perifériák csaknem kizárólag mechanikus működésűek voltak (teletype, telex, géptávíró). Ezért a kódrendszerből hiányoznak azok a vezérlő kódok, amelyek a már csaknem kizárólagosan használt képernyő orientált rendszerekben használatosak: a kurzormozgató, képernyőtörlő, stb. funkciókhoz rendelt kódok. Mivel ezekről a szabvány nem rendelkezik, ezért bizonyos inkompatibilitás van az egyes megjelenítők között, hogy konkréten melyik vezérlőkaraktereket rendelték hozzá az adott funkcióhoz. A PC-k megjelenésekor az IBM által hozzáadott bites kiterjesztéssel újabb 28 karakter használatát szabványosította, amely kódrendszer Latin néven ismert. Ez tartalmazza számos európai nyelv pl. francia, német spanyol, stb. speciális nemzeti karaktereit, valamint a görög ABC betűit, táblázatrajzoló karaktereket is. Mivel a PC-ben a vezérlőkódok egy részére már nem volt szükség, ezért ezeket látható karakterekkel (mosolygó, szomorú arc, kőr, treff stb.) helyettesítették. A PC-k elterjedésével indokolttá vált számos más nemzeti karakterek kódtáblába vétele, amely a 8 bitből adódó maximum 256 kódba nem fért be. A megoldás: a kódtáblák (kódlapok) bevezetése. A 8 bites kódot két részre osztották: ha a legfelső bit nulla (ez a kódtábla alsó 28 karaktere) akkor a szabványos ASCII kódot jelenti, míg ha a legfelső bit (ez a felső 28 karakter) akkor kódtábla szerinti kódolást jelenti. Ez azt jelentette, hogy egy kód megjelenítéskor azt is tudni kellett, hogy milyen kódtábla szerint született az eredeti szöveg. Például a 437-es kódtábla az eredeti amerikai kódolást jelenti, míg például a 852-es kódlap alsó 28 karaktere ASCII kód, míg a felső 28 karakter kódolja a középeurópai (köztük a magyar) nemzeti betűjeleket. Hogy még összetettebb legyen a karakterábrázolás, a Windows megjelenésével - annak grafikus felülete miatt pl. táblázatrajzoló karakterekre nem volt szükség - újabb kódlapokat definiáltak, ami megbonyolította a DOS alatti és a Windows alatti szövegek kölcsönös megjelenítését. A részletek mellőzésével: a DOS-ban, illetve a Windows-ban írt magyar karaktereket tartalmazó szöveg akkor jelenik meg helyesen a szöveg, ha a DOS-ban a 852-es kódlapot, és a magyar Widowsot (itt kódlap: 252) használjuk. A következő oldalon az ASCII kódtábla, és az első 32 vezérlő karakter jelentése látható. ASCII kódtábla, vezérlőkódok jelentése DEC HEX KAR DEC HEX KAR 0 00 NUL 64 40 @ 0 SOH 65 4 A 2 02 STX 66 42 B 3 03 ETX 67 43 C 4 04 EOT 68 44 D 5 05 ENQ 69 45 E 6 06 ACK 70 46 F 7 07 BEL 7 47 G 8 08 BS 72 48 H 9 09 HT 73 49 I 0 0A LF 74 4A J 0B VT 75 4B K 2 0C FF 76 4C L 3 0D CR 77 4D M 4 0E SO 78 4E N 5 0F SI 79 4F O 6 0 DLE 80 50 P 7 DC 8 5 Q 8 2 DC2 82 52 R 9 3 DC3 83 53 S 20 4 DC4 84 54 T 2 5 NAK 85 55 U 22 6 SYN 86 56 V 23 7 ETB 87 57 W 24 8 CAN 88 58 X 25 9 EM 89 59 Y 26 A SUB 90 5A Z 27 B ESC 9 5B [ 28 C FS 92 5C 29 D GS 93 5D ] 30 E RS 94 5E ^ 3 F US 95 5F - 32 20 SP 96 60 Ś 33 2! 97 6 a 34 22 " 98 62 b 35 23 # 99 63 c 36 24 $ 00 64 d 37 25 % 0 65 e 38 26 02 66 f 39 27 Ś 03 67 g 40 28 ( 04 68 h 4 29 ) 05 69 i 42 2A * 06 6A j 43 2B 07 6B k 44 2C, 08 6C l 45 2D - 09 6D m 46 2E. 0 6E n 47 2F / 6F o 48 30 0 2 70 p 49 3 3 7 q 50 32 2 4 72 r 5 33 3 5 73 s 52 34 4 6 74 t 53 35 5 7 75 u 54 36 6 8 76 v 55 37 7 9 77 w 56 38 8 20 78 x 57 39 9 2 79 y 58 3A : 22 7A z 59 3B ; 23 7B 60 3C < 24 7C 6 3D = 25 7D 62 3E > 26 7E 63 3F? 27 7F DEL.3 INFORMÁCIÓ FELDOLGOZÁS NUL NULL Character Null (semmi) SOH Start of Heading fejléc kezdete STX Start of Text szöveg kezdete ETX End of Text szöveg vége EOT End of Transmission adás vége ENQ Enquiry kérés ACK Acknowledge elfogadás, nyugtázás BEL Bell hangjelzés BS Backspace visszaléptetés HT Horizontal Tabulation vízszintes tabuláció LF Line Feed soremelés VT Vertical Tabulation függőleges tabuláció FF Form Feed lapdobás CR Carriage Return kocsi-vissza SO Shift Out kódváltás SI Shift In kód visszaváltás DLE Data Link Escape adat átkapcsolás DC Device Control általános vez.jel (XON) DC2 Device Control 2 általános vezérlőjel DC3 Device Control 3 általán. vez.jel (XOFF ) DC4 Device Control 4 általános vezérlőjel NAK Negative Acknowledge negatív nyugtázás SYN Synchronous Idle szinkronizáló jel ETB End of Transm. Block egy blokk adás vége CAN Cancel érvénytelenítés EM End of Medium inform. hordozó vége SUB Substitute helyettesítés ESC Escape átkapcsolás FS File Separator fájl elválasztó GS Group Separator csoport elválasztó RS Record Separator rekord elválasztó US Unit Separator egység elválasztó SP Space szóköz DEL Delete törlés Az egész gyors fejlődés oka az, hogy nagyon sok emberi tevékenység a következő módon modellezhető: vannak bizonyos bemenő jellemzőink (adataink), ezeket egy algoritmus alapján feldolgozzuk, hogy megkapjuk a kimeneti eredményt. Tessék példaként a főzési tevékenyégre gondolni: a bemenő adat a nyersanyagok fajtája, mennyissége, egy feldolgozással (a főzéssel) hozzuk létre a főtt ételt, egy készítési módszer (a szakácskönyvben lé-vő algoritmus alap-ján. Általánosan tekintve így működik egy automata mosó- -8-

gép, vagy akár egy cirkálórakéta is. A mikroprocesszoros rendszerek két állapotú digitális áramkörökből épülnek fel, így a be- és kimenőjeleik is digitális jelek. A rendszer központi eleme a mikroprocesszor, amely utasításokat értelmez, és ezeket az utasításokat a memóriából--vagy más néven--a tárból kiolvassa. A rendszernek a külső környezethez való kapcsolatát a be- és kimeneti egység biztosítja. Az így felépített rendszert mikroszámítógépnek, vagy röviden mikrogépnek nevezzük. Ci Logikai műveletvégző V 0 V 03 V 02 A L A következőkben azt mutatjuk meg, hogy az előző fejezetben ismertetett digitális alap áramkörökkel egy ilyen információ feldolgozása megvalósítható. A program lényegében utasítások sorozatos végrehajtását jelenti. Ezek az utasítások részben az adatokon végzett aritmetikai-logikai műveletek, részben az adatok megfelelő helyen ( (a tárban) történő eltárolását és a tárból való, a műveletekhez történő betöltést végző adatmozgatási műveletek egymás utánja. Ezeket a tevékenységeket kapuáram-körökkel és flip-flopokkal valósíthatjuk meg. A bináris adatok tárolása flip-flopokból kialakított tárolóregiszterekkel oldható meg. A regiszter bemenetén lévő információ ( ami lényegében egy adott pillanatban egy feszültségszint) a közösített órajel bemenet aktivizálására beíródik, tárolódik és a D tárolók kimenetén megjelenik. Az adatok áramlása, elágaztatása, megfelelő helyre juttatása ÉS kapuk segítségével megvalósítható. A kapurendszer kimenetén akkor jelenik meg a bemeneti információ, ha a közös kapuzó-jelre H szintet kapcsolunk. B V 0 V 02 V 03 V 04 V 0 V C i Vezérlő logika V 04 S Aritmetikai műveletvégző A B -9- C i- V V -bites ALU 0 A B UTASITÁS = MŰVELETI KÓD OPERANDUSOK S BEMENET beviteli eszközök V V0 MŰVELET AKTIV 0 0 NEM B V0 0 A VAGY B V02 0 A ÉS B V03 A B V04 KÖRNYEZET (KÜLVILÁG) C i- BEMENETI BITEK =ENG KAPUZÁS BEIRÓJEL memória (tároló) központi egység D Q CLOCK D Q CLOCK D Q CLOCK KIMENETI BITEK TÁROLÓSOR=REGISZTER kiviteli eszközök C Az aritmetikai-logikai műveletek is megoldhatók kapuáramkörökkel. A kapuk önállóan képesek logikai műveletek elvégzésére, és a teljes összeadó is felépíthető kapuáramkörökből. Az ábrán ott látható az igazságtáblája: a három bemenő adat az összeadandó A és B jelű bitek, valamint az előző helyiérték összeadásánál D képzett átvitel bit. A kimenő adat az S jelű összeg, és az összeadásnál képződött C átvitel bit. Ezekből az elemekből már kialakítható egy egyszerű, négy alapműveletet végrehajtó aritmetikai-logikai egység. (ALU = Arithmetic Logical Unit) Az ábrán látható az egység vázlata. Egy utasítás áll a műveletet azonosító kódból, és a TELJES ÖSSZEADÓ S=ABD A S A B D S C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KIMENET B D műveletekben résztvevő elemekből az operandusokból, amivel a műveletet elvégezzük. A V0 és V műveleti kód variációk a dekódoló valamelyik kimenetét H-ba állítja, engedélyezve a megfelelő logikai vagy aritmetikai művelet elvégzését (pl. az műveleti kód az A és B bitek összegének képzését teszi lehetővé a már megismert teljes összeadó V04 vezérlőjellel történő engedélyezésével.) FONTOS!!! Ha valaki ezt megértette, akkor már "mindent tud", hiszen a bonyolultság már csak részletkérdés: 8 ilyen egységet összekapcsolva, egy bájton végezzük a műveleteket el, ha bonyolultabb áramköröket és több bites műveleti kódot használunk, akkor összetettebb műveleteket: eltolást, forgatást, akár szorzást is el tudunk végezni, de természetesen ilyenkor az utasítások végrehajtása több lépésben több órajel-ütem alatt zajlik, de az itt közölt alapelv változatlan marad!.4 MIKROPROCESSZOR MŰKÖDÉSE Ha az utasításokat egymás után akarjuk végrehajtani, akkor egy memóriából kell sorban egymás után ezeket kiolvasni, és az ALU segítségével feldolgozni. Ennek végrehajtását a vezérlő egység-nek nevezett elem (CU=Control Unit) végzi. A működésének megértéséhez nézzük a következő ábrát: Az utasítások, és az adatok a memóriában vannak. A vezérlés maga néhány regiszter segítségével valósul meg: Programszámláló (PC) A programszámláló mindig annak az utasításnak a címét tartalmazza, amit a mikroprocesszornak majd a tárból le kell hívnia. Utasítás regiszter (IR) Amikor a mikroprocesszor egy utasítást hív le a tárolóból, az utasításnak megfelelő bináris kód az utasítás regiszterbe kerül. Az utasítás-dekódoló egység ezt feldogozva állítja elő az utasítás tényleges végrehajtásához szükséges logikai vezérlőjeleket. A tároló adatmutató címregisztere (DC) Ez a regiszter tárolja annak az adatnak a címét, amelyet a CPU kiolvas vagy beír a memóriába. A címbuszra a címek két forrásból kerülhetnek: a programszámlálóból és a tároló cím regiszterből. A kiválasztást a multiplexer végzi, ahogy ezt a 8.2 ábrán összefoglaltuk. Akkumulátor (AC) Az aritmetikai-logikai egységben lévő akkumulátor regiszter a legtöbb műveletben résztvevő, kitüntetett szerepű regiszter. Az utasítások nagy része kapcsolódik ehhez a regiszterhez. Általános segédregiszterek. Ezeket a regisztereket a CPU műveleteihez szükséges adatok átmeneti -0-!

tárolása használják. Minél nagyobb ezek száma, annál kevesebbet kell a CPU-nak a külső memóriához fordulni, azaz a mikroprocesszor teljesítményét növeli. Státuszregiszter. A státuszregiszter bitjei tartalmazzák a CPU által végrehajtott műveletekre vonatkozó információkat. Flag (e.:fleg)-eknek, vagy magyarosan jelzőbiteknek is nevezzük, és mindegyik valamilyen speciális mikroprocesszor állapotot jelez. A legfontosabbak: az átvitel bit (ha egy összeadás eredménye 9 bites akkor ezt az átvitel (=carry) bit értéke jelzi), az eredmény negatív voltát jelző bit, stb. A regiszterek közül a legfontosabb a PC amit szoktunk utasítás mutatónak is hívni: ennek tartalma mondja meg, hogy melyik a memóriából kiolvasandó utasítás címe. A kiolvasott utasítás a feldolgozáshoz az IR nevű utasítás regiszterbe kerül. Az adat kiolvasásához az adatcímet a PC-hez hasonló módon a DC adatmutató regiszter tartalmazza. Hogyan is működik ez az egész? Először a PC-be be kell tölteni az elsőnek végrehajtandó utasítás címét. (pl. a mindent alaphelyzetbe hozó RESET folyamat ezt a regisztert nullázza - így az első utasításnak a nulla című tároló helyen kell lennie.) Ez a cím kijutva a memóriát címző vonalakra, a címdekódoló segítségével kiválasztja az utasítást tartalmazó regisztert és a tartalmát a memória adatvezetékein keresztül az IR utasításregiszterbe írja. Ezzel megtörtént a memóriában lévő utasítás lehívása, és megkezdődhet a végrehajtása. Mint tudjuk, egy utasítás bináris formában tartalmazza a műveleti kódot, és az operandust (illetve a tényleges operandus memóriabeli címét). Ha az utasításban ténylegesen egy adat van operandusként, akkor a művelet azonnal végrehajtható az ALU segítségével. Ha az utasítás adatrésze a tényleges adat címét tartalmazza, akkor ismét a memóriához kell fordulni: a DC regiszterbe be kell tölteni ezt a címet, és megcímezve a memóriát a tényleges adatot olvassuk ki, és az ALU-ba juttatva elvégezzük a műveletet, és megnöveljük a PC értékét eggyel, hogy a következőleg végrehajtandó utasításra mutasson. Mivel egy művelet általában két operandust igényel, ezért az ALU-ban egy kitüntetett regisztert (AC) használunk, ami mindig tartalmazza az egyik az operandust, és a művelet eredménye is ott képződik. A kitüntetett regiszter neve akkumulátor (AC vagy ACC vagy csak egyszerűen A) vagy a PIC-eknél working regiszter (W). Az egy-operandusos műveletek legtöbbje az akkumulátorra vonatkozik. A mikroprocesszor által végrehajtható utasítások halmazának, az utasításkészlet-nek jelentős része kapcsolódik az ALU-hoz, tulajdonképpen annak funkcionális működését írja le. A műveletek eredményére utaló ún. státuszbitek (túlcsordulás, az eredmény nulla, stb.) egy külön regiszterbe, a státuszregiszterbe kerülnek. Ha például a memóriában lévő két számot akarunk összeadni, akkor először egy adatmozgató utasítással kiolvassuk a memóriából az adatot az akkumulátorba, majd utána a másik operandus címét felhasználva, kiolvassuk a memóriából az operandust és végrehajtjuk a művelet. Mi van akkor, ha az utasítás ugró utasítás? Ilyenkor az utasítás operandusa azt a címet tartalmazza, amit az utasításmutató regiszterbe kell tölteni, hogy az utasítások végrehajtását arról a címről folytassuk. Vagyis az utasítás végrehajtásakor az operandus-részt a PC-be töltjük. A memóriában az adatok és az utasításra jellemző kódok azonos alakban--bináris formában vannak eltárolva. De, ha ez az alakok azonosak, honnan tudja a mikroprocesszor hogy adott esetben az adat egy utasításkód, vagy ténylegesen egy adat? A magyarázat nagyon egyszerű: az értelmezés, illetve a sorrend dönti el. A mikroprocesszor mikor utasítást hajt végre, feltételezi hogy a memóriából kiolvasott érték egy utasításkód. A programozónak kell biztosítania, hogy a memóriában az utasítások és adatok sorrendje megfelelő legyen. lehívás, utasítás végrehajtás. Minden ilyen utasítás ciklus több egy vagy több órajel hatására hajtódik végre, ezek a gépi ciklusok. Ha az ALU és CU egységeket a kiegé-szítő áramköreikkel egy tokba integráljuk, akkor beszélünk MIKROPROCESSZORRÓL. Az hogy egy utasítás végrehajtása több lépésből áll, a következő az ábrán követhető példán mutatjuk be. Legyen a kiolvasott és dekódolt utasítás az akkumulátor (A) tartalmának bitenkénti invertálása (komplementálása). A lépések: (ld. ábra!). A tartalmát a belső buszra kapuzzuk, 2. Kinyitjuk a komplementáló regiszter belső buszra csatlakozó bemeneti kapuját, 3. A belső busz tartalmát a regiszterbe írjuk, 4. Elvégezzük a komplementálást, 5. Kinyitjuk a komplementáló regiszter belső buszra csatlakozó kimeneti kapuját, így a komplementált érték a belső buszra kerül, 6. Az A regiszter belső buszra csatlakozó bemeneti kapuját kinyitva, a komplemetált érték az A regiszterbe kerül. Látható, hogy az utasítás végrehajtása a kapukat engedélyező, és a regiszterekbe író vezérlőjelek megfelelő sorrendű és időzítésű kiadását igényli. Azt, hogy egy utasítás végrehajtása milyen vezérlőjelek milyen sorrendű kiadását igényli, eltárolhatjuk egy ún. mikroprogram tárban. Ez olyan mikroutasítás szavakból áll amelynek annyi bitje van, ahány vezérlési pont. Egy utasítás dekódolása meghatározza az utasításhoz tartozó mikroprogram elsőnek végrehajtandó utasítását (vagyis a vezérlési pontok gerjesztését.) Az utasításhoz tartozó mikroprogram lefutását az órajel ütemezi. Úgy is elképzelhetjük, hogy a központi egység utasításainak végrehajtását egy másik, a vezérlési pontok gerjesztését vezérlő egység végzi. (Számítógép a számítógépben.) Mivel igen sok gyakran használt utasítás olyan egyszerű, hogy mikroprogram nélkül, "behuzalozva" is megvalósítható, a mikroprocesszor tervezőknek két alapvető lehetősége van:. Bonyolult utasításkészlet kialakítása mikroprogramozás segítségével, 2. Egyszerű utasításkészlet kialakítása, behuzalozva, hardveresen, mikroprogram nélkül, gyorsan, a bonyolultabb műveleteket kis, az egyszerűbb utasításokkal megírt programrészletekkel végrehajtva. Az első megoldást alkalmazó processzorok, a CISC-ek (Complex Instruction Set Computer = Összetett utasításkészletű processzor) míg a második megoldást a RISC-ek (Reduced Instruction Set Computer = Egyszerűsített utasításkészletű processzor) alkalmazzák. Például a bináris szorzás, ami eltolások és összeadások sorozata, megvalósítható programmal: egy olyan mikroprocesszorral, amelyik tud eltolni és összeadni, vagy a hardverben realizálva mikroprogram segítségével. Az utasítás végrehajtásakor utasításciklusokat hajtunk végre: pl. utasítás lehívás, dekódolás, adat -- -2-

.5 MIKROSZÁMÍTÓGÉPEK, MIKROKONTROLLEREK Mikroszámítógép-nek vagy mikrogép-nek integrált áramkörökből felépített programot végrehajtani tudó rendszert nevezzük. A mikroprocesszor típusától függetlenül egy mikrogépnek a következő főbb részekkel kell rendelkeznie: a központi egység (ez a mikroprocesszor). A mikroprocesszor a mikrogép központi egysége. Az eredeti angol elnevezése alapján szokták CPU-nak is mondani. Jellemzői alapvetően meghatározzák a teljes mikrogép működését. Funkcióit a következőképpen foglalhatjuk össze:. A mikrogép minden eleme számára biztosítja az időzítő és vezérlőjeleket. 2. Elvégzi az adatok és utasítások tárból/ba való mozgatását. 3. Dekódolja és végrehajtja az utasításokat. 4. Irányítja a be/kimeneti egységekkel kapcsolatos adatforgalmat. a programtár és adattár (ez a memória, ami lehet közös (pl. PC-nél), vagy különálló), az egyikben a működtető program, a másikban a program működése során létrejövő, vagy a külvilág felől érkező adatok vannak tárolva, a be és kiviteli egység, (Input/Output, röviden I/O, vagy Be/Ki egység) (ezek neve: periféria) amely a külvilággal tartja a kapcsolatot, IORQ: kimenet; Ez a jel jelzi, hogy be/kimeneti egységhez való fordulás van folyamatban. A kommunikáció módjától függően a buszokon történő jeláramlás lehet egyirányú: ilyen például a címsín, hiszen a címek a processzortól erednek, és a sin ezeket a memóriához, valamint a be és kimeneti egységhez juttatja el. Lehet kétirányú: ilyen az adatbusz, hiszen biztosítania kell az adatok mindkét irányba történő (a processzorból és a processzorba) áramlását. A mikroszámítógépek fejlődésére a méretek csökkentése a jellemző. Kezdetben az egyes funkcionális egységeket, a CPU-t, memóriát, I/O-t külön nyomtatott áramköri kártyákon, kártyamodulként alakították ki. Később az integrálási technika CSALÁDELV: CPU AZONOS, ADAT ÉS PROGRAM MEMÓRIA MÉRETE PERIFÉRIÁK SZÁMA FAJTÁJA KÜLÖNBÖZIK fejlődése lehetővé tette az összes egység egy kártyára történő elhelyezését. Ilyen például a PC alaplapja. Ezeket hívjuk egykártyás mikrogépeknek vagy SBC-nek. (SBC=Single Board Computer). Az integrálási technika további fejődése lehetővé tette, hogy egy mikroszámítógép minden részegységét egy lapkára integráljanak: ezek az egytokos mikroszámítógépek, másnéven mikro-kontrollerek, vagy magyarul mikrovezérlők. Azért hogy különféle feladatoknak meg tudjon felelni egy mikrokontroller, ezeket a családelv alapján különböző kialakításban gyártják. az egységek közötti információ- és adatáramlást biztosító vonalak. Ez a kommunikáció az ún. sín-eken vagy más néven busz vonalakon keresztül valósul meg. Mi is az a sín? A sín azonos funkciójú vezetékek csoportja. Erre a vezetékkötegre minden egység párhuza-mosan kapcsolódik azért, hogy egymáshoz információt tudjon továbbítani. Például a mikroprocesszor, a memória valamint a be- és kimeneti áramkörök, az egymás (és a külvilág) közötti adatcsere érdekében ugyanarra a nyolc vezetékre kapcsolódnak, és ez az adatsín. A vezérlőbusz vezetékein adja ki a mikroprocesszor az elvégzendő műveletre vonatkozó információt-- például hogy a megcímzett egységre adatot küld. A legtöbb mikroprocesszor típus még azt is megkülönbözteti (egy másik vezérlőjellel), hogy a tárral vagy a be-kimeneti egységgel kíván kommunikálni. Ez utóbbi megkülönböztetés a processzor oldaláról nem indokolt, hiszen akár memória, akár I/O egység, mindig regisz-tereket használunk. -3- Úgy is mondhatjuk, hogy az I/O regiszterek olyan speciális memória re-giszterek, amelyek egyik oldala a külvilághoz kapcsolódik. Amikor memóriacímzéssel érjük el az ilyen regisztereket, akkor beszélünk memóriába ágyazott (=mem-ory mapped) I/O rend-szerről. A mikroprocesszor időzítő és vezérlő jelei biztosítják a CPU és a többi rendszerelem összehangolt működését. Ezek be- és kimeneti jelek lehetnek. Foglaljuk össze a legfontosabbakat: RESET: bemenet; Mivel a mikroprocesszor egy bonyolult, tárolókat is tartalmazó logikai hálózat, ezért biztosítani kell alaphelyzetét. A jel aktív szintje végzi el ezt az alaphelyzetbe állítást. MEMR/MEMW: kimenet; Ez a vonal jelzi, hogy a CPU olvasási(r), vagy írási műveletet akar végrehajtani a memóriával. IOR/IOW: kimenet; Ez a vonal jelzi, hogy a CPU olvasási (R), vagy írási műveletet (W) akar végrehajtani az I/O egységgel..6 ELLENŐRZŐ KÉRDÉSEK. Mi az a radix? 2. Miért használunk 6-os (hexadecimális) számrendszert? Mi az előnye? 3. Alakítsuk át a 0-es számrendszerbeli 5468-as számot hexadecimálissá és binárissá! 4. Alakítsuk át az 000000 bináris számot hexadecimálissá és decimálissá! 5. Miért előnyös a BCD kódolás?mi a kódolás? 6. Ismertesse a számok három alapvető ábrázolási módját! 7. Mi az a kettes komplemens, és miért használjuk? 8. Mutassa be az ASCII kódrendszert! Hogyan csoportosítható? 9. Mutassa be az információ feldolgozás általános modelljét! 0. Mi az a mikroszámítógép?. Milyen alapvető digitális áramkörökből épül fel egy számítógép? 2. Mi az az utasítás, és milyen részekből áll? 3. Hogyan működik a mikroprocesszor? 4. Mik azok a PC, IR, DC, AC, státusz regiszterek? 5. Mi az utasítás-utasításciklus-ütem közötti kapcsolat? 6. Mi az utasításkészlet? 7. Mit jelent a mikroprogramozott utasítás végrehajtás? 8. Jellemezze a CISC és RISC processzorokat! 9. Milyen részekből áll egy mikroszámítógép. és mi az egyes részek feladata? 20. Mi a mikrokontroller, és mi a családelv lényege? -4-