Számítógépek (IBM - PC).

8.1. Bevezetés

Ebben a fejezetben számítógépekrôl lesz szó, vagyis a legáltalánosabb digitális gépekrôl, amelyek rendkívül széles körben használhatók. Célszerűségi okokból azonban nem általánosságban beszélünk róluk, hanem nagyon tudatosan kiválasztottunk egy ún. professzionális személyi számítógépet, az IBM PC-t. (International Business Machines, - Personal Computer)

Választásunkat elsôsorban az igazolhatja, hogy napjainkban ez a gép a legelterjedtebb, - igaz nem csupán önálló alkalmazásokban, hanem hálózatok termináljaként is. Hazai viszonyaink között ez a gép amolyan "mădchen für alles", vagyis mindenre felhasználható kis cseléd. Ugyanakkor azt is el kell mondanunk, hogy vannak sokkal ügyesebben tervezett gépek, amelyek pedagógiai értéke is jelentôsebb.

Célunk ezen gép (egyedin túlmutató, minden gépre jellemzô közös) funkcióinak számbavétele, megértése. Mindezt azonban nem abból a kiinduló pontból, hogy a számítógép univerzális "digit-rágcsáló", melynek egyik legfôbb feladata - kissé karikírozva - a legnagyobb prímszám keresése. A háttérben egy egészen más motívum munkálkodik: a számítógép arra a célra (is) szolgál, hogy vele méréseket vezéreljünk, a mérési eredményeket kiértékeljük. A modell-vasút vezérléstôl a neurofiziológiai méréseken át az on-line Fourier-transzformációig terjedô sávot tekintjük meghatározónak. Másképp fogalmazva, a természettudományos-műszaki munkában szokásos méréstechnikai komputer alkalmazások támogatása a célunk.

Az eredeti PC-t, minden PC-k ôsét 1980-ban tervezték. Ha a komputerek történetét elemezzük, akkor azt mondhatjuk, hogy egy komputer-év hozzávetôleg 10 emberévnek felel meg. Az IBM PC tehát manapság túlkoros Matuzsálemhez hasonlítható, amelyet csak a rendszeres fiatalítás, "szervátültetés" tart karban. Ennek a folyamatnak a legfontosabb mozgatói, nem feltétlenül fontossági sorrendben:

· a RAM és ROM memóriák kapacitásának növekedése, folyamatos árcsökkenésük mellett;

· a tömegtárolásra alkalmas ún. hard-diszkek tárolási kapacitásának és adatelérési sebességének növekedése, miközben 1 bitre jutó áruk folyamatosan csökkent;

· az egy chip-be integrálható áramköri elemek számának és működési sebességének drasztikus növekedése, a megbízhatóság fokozódása a gyártási költségek csökkenésével párhuzamosan;

· elképzelhetetlenül nagy mennyiségű, jól használható program létrejötte, amelyek törvényes, vagy illegális úton közkinccsé váltak.

A manapság elérhetô IBM-PC-ék alig hasonlítanak ôseikre, annyival "többet tudnak" az újak; - viszont elvben a legújabb gépen is futnak a legelsô programok is. (Ezt szakmai zsargonban úgy mondják, hogy "felülrôl kompatibilis".) Fordítva persze már nem ez a helyzet, - de ez a konzervatív szemlélet és gyakorlat jelentôsen megnöveli a géptípus élethosszát. Ugyanakkor magával hoz egy csomó felesleges koloncot, amelyet az újabb lehetôségek mellett is folyton figyelembe kell venni. (A mai PC természetesen arcán viseli ''ifjúkori bűneit".)

Az IBM - PC arculata sokat változott. A legelsô gépek 180 kByte floppy diszk kapacitása helyett ma már gigabyte-okról beszélünk. A legelsô konstrukció több tucat integrált áramkört tartalmazott, ma egy alaplapon 2 - 4 soklábú IC-t találunk és beszélnek már arról is, hogy az egy-chipes PC is itt dörömböl az ajtón. - Jócskán változott a gép alapsoftware-e is: a DOS 2.0 változata helyett ma már a DOS 7.0 használatos, persze mások mellett. - A monitor kezdetben csak karakterek megjelenítését szolgálta, mostanra kiszínesedett, felbontása is sokat javult és kifejezetten szép képeket is tud mutatni.

8.1.1. ábra

A PC felépítésének áttekintô vázlatát a 8.1.1. ábrán látjuk. A gép dobozában az ún. alaplapon kap helyet többek között a processzor és a RAM memória. Ehhez a laphoz csatlakoztathatók a diszk-kontrollerek, az adapterek, - illetve az interface-eken keresztül a külsô perifériális eszközök. Általában a PC dobozában foglal helyet a HDD, FDD, CD-ROM olvasó is. (Az ábrák részben angol nyelvű könyvekbôl származnak. Sok kifejezést meghagytunk, mivel ezek a szakmai nyelvben így is elfogadottak, használatosak.)

A PC processzora természetesen sokat fejlôdött. Errôl a 8.1.1. Táblázatban látunk adatokat. (Az adatokat a késôbbiekben értelmezzük.)

Hangsúlyozzuk, hogy a PC fejlôdése ma is tart és nem látszanak még azok a fizikai-technikai-pénzügyi tényezôk, melyek igazában korlátot jelentenének. A legfontosabb jellemzôkre külön is felhívjuk a figyelmet:

· óriásit növekedett az ún. órafrekvencia, mely a műveletvégzés sebességére utal;

· egyre "szélesebb" lett az adatbusz és a címbusz, így nagyobb memória címezhetô és egyidejűleg sokkal több adat érhetô el.

(Ugyanakkor furcsa paradoxon: most már nemcsak a tápegység zümmög, de külön hűtôventillátor kell a processzorra is, persze aminek surrogását a tápegység zaja elnyomja...)

Nagyon fontos tudatosítani, hogy a processzorok egymást követô típusai nem csak az elemi áramkörök működési sebességében és a párhuzamos cím-adat vezetékek számában különböznek. Ez csak a "nyers erô" alkalmazása lenne. - Legalább ennyire meghatározó, hogy összetett, "kifinomult", a működést gyorsító elvek is megjelentek a processzor hardware felépítésében (cache tároló, pipe-line, mikroprogramozott utasítások, stb).

 

Regiszter Címbusz Adatbusz

szélesség (bit)

Címezhetô

tartomány

Órafrekven cia (MHz)

Kivezeté-

sek száma

8088

16

20

8

1 MB

6-10

 

80188

16

20

8

1 MB

6-10

 

80186

16

20

16

1 MB

6-10

 

80286

16

24

16

16 MB

12-20

68

i386SX

32

24

16

16 MB

16-25

132

i386DX

32

32

32

4 GB

16-40

 

i486

32

32

32

4 GB

25-50

168

i486DX2

32

32

32

4 GB

50-100

 

Pentium

32

32

64

4 GB

60-266

273

8.1.1 Táblázat. A processzorok adatainak változásai az elmúlt 16 év során

A mai processzorok működésének két, nagyon különbözô módja lehetséges: a reális és a védett (protected). Reális módban a memória helyeinek az ún. fizikai címzését egy viszonylag egyszerű módon számítjuk ki. A védett mód arra szolgál, hogy a processzor több feladattal tudjon foglalkozni, idôosztásos rendszerben (OS/2, UNIX, NT, WINDOWS,...). Ilyenkor minden feladat egy idôszeletet kap a vezérlô rendszertôl.

Ennek az igen összetett feladatnak a megbízható működését egy bonyolult memória számítási és engedélyezési metódus biztosítja. A részletekkel e tantárgy keretében nem tudunk foglalkozni. - A továbbiak lényegében a reális működési módot tételezzük fel, minden elsôsorban erre vonatkozik.

A 8.1.2. ábra kissé részletesebben mutatja az alaplemezt. A processzor - hagyományosan - két részbôl áll: a 80x86-os általános célú processzorból és a 80x87 jelzésű ún. aritmetika processzorból. (Természetesen a 80x86 is képes számolási műveletekre, azonban csak egészszámokon tud osztást vagy szorzást végezni. A lebegôpontos számok kezelése az aritmetika processzor joga és kötelessége. ) - A Pentiumon belül jelentôs méretű "cache" található. Ez átmeneti tároló, amelyhez a hozzáférés sokkal gyorsabb, mint a RAM memóriához (10-20 ns, szemben a memória chipek 60-100 ns értékével). A cache olyan adatokat tárol, amelyekre a processzornak többször van szüksége. Ezt a cache vezérlô egység dönti el, illetve vezérli. - Az ábrán jelölt más egységekrôl késôbb lesz szó.

 

A 8.1.3. ábrán a manapság szokásos ún. Neumann elvű digitális számítógép egy végtelenül leegyszerűsített vázlatát látjuk. (A Neumann elv egyszerű megfogalmazása: csak egyetlen - vagyis nem több/sok - processzor van benne, továbbá az adatok és utasítások keverve tárolódnak egyetlen memória-tömbben.) - A központi processzor elsôszámú feladata az, hogy végrehajtsa azokat az utasításokat, amelyeket a memóriából elôvesz, és az eredményeket, - ha az utasítás ezt rendeli, - ismét a memóriába helyezze el. A processzor az "okos"; - az ész teljes egésze, vagy legalább a zöme az ô birtoka. Ebben található a centrális szerepkörű ALU (aritmetikai - logikai egység).

A processzor tartja a kapcsolatot az I/O egységekkel is. (Input/Output - bemenet/kimenet). Ezek közül a triviálisak: a billentyűzet, valamint a képernyô, másként a monitor. Közéjük sorolhatjuk azokat az egységeket is, mint a HDD vagy FDD. De ide tartozónak tekinthetünk például egy AD konvertert, digitális léptetô motort, amelyik a mérôfejet viszi tovább egy újabb mérési pontba, stb. - A processzor szorgalmasan rágcsálja a programot ("digit crunching machine") és ebbôl csak a külvilág, a rendszerhez tartozó perifériális berendezések zökkentik ki azzal, hogy kiszolgálásukhoz megszakítást (interrupt) - vagyis processzor idôt/törôdést - kérnek. Az interrupt hatására a processzor abbahagyja a futó program végrehajtását, és arra részprogramra ugrik, amelyik kiszolgálást kért. Természetesen elôzôleg elrakja mindazt az információt, amely ahhoz szükséges, hogy a megszakított programhoz vissza tudjon térni.

A továbbiakban az IBM-PC funkcionális blokkvázlatát rakjuk össze, mely a működés alapvonásait hivatott összefoglalni, interpretálni. Az eredményül kapott, a felrajzolt vázlat szerinti gép bizonyos értelemben fiktív, egyetlen konkrét gépre sem igaz, - de mégis mindegyikre jellemzô. Ismerete nagyon fontos, mert csak a működés részleteinek tudásával lehet a gépet önállóan, a mérési feladathoz simulóan felhasználni.

8.2. A memória

A számítógép működése szempontjából legbutább részegységnek a memóriát kell tartanunk. Feladata rendkívül egyszerűen összfoglalható: minél gyorsabban el kell tennie adatokat (bit-kombinációkat), illetve azokat minél gyorsabban elô kell varázsolnia.

A memória vitálisan fontos kapcsolatban áll a processzorral.

A memóriák legnagyobb része DRAM-okból épül (D - dynamic). Itt az információ aprócska kondenzátorokon tárolódik. Értelemszerűen ezek rendszeresen felfrissítésre szorulnak, - a DRAM-on alapuló memória nem lehet túlságosan gyors, viszont relatíve olcsón gyártható.

A SRAM (S - static) memória lényegében bistabil multivibrátorokból áll. Ezek kiolvasása és írása sokkal gyorsabban megtörténhet. Míg egy DRAM címem végrehajtott művelet 60 - 100 ns idôbe telik, a SRAM ugyanezt 10-20 ns alatt végrehajtja.

(A nagyságrendek illusztrálására egy furcsa példa: ha egy utasszállító repülôgép átlagos sebessége 900 km/óra, akkor 10 ns alatt mindössze ezredmilliméternyi - vagyis a hajszál vastagságánál jóval kisebb - utat tesz meg ! )

A SRAM memóriákat ún. cache tárolóként alkalmazzák ( magyarul átmeneti tárolónak nevezik ôket.) Ezek úgy működnek, hogy a DRAM memóriából beolvasnak egy kisebb/nagyobb blokkot, ami esetleg több utasítást is tartalmaz. Erre pl. az adatbusz megnövekedett szélessége is lehetôséget teremt.

Nagy az esélye annak, hogy a beolvasott program egymást követô utasításokból áll (vagyis nincsenek benne ugró utasítások). Ilyen esetekben a cache jelentôs idômegtakarítást eredményez. Persze a memóriába néha írni is kell. Ilyenkor általában nem a cache-be írnak, hanem közvetlenül a DRAM memóriába. - Aligha meglepô, hogy a cache vezérlése csak valamilyen definiált, esetleg az említettôl eltérô algoritmussal történhet, tehát a cache vezérlô igen lényeges szerepet tölt be.

A cache elvét természetesen másutt is alkalmazzák: a HD - DRAM - processzor között software (pl. SMARTDRIVE) teremti meg ezt a lehetôséget.

Az újabb processzorok igen jelentôs méretű cache tárolókat is tartalmaznak, a hozzájuk tartozó vezérlô egységekkel együtt.

Az egyik legdöntôbb kérdés: a processzor hány memóriahely individuális megcímzésére alkalmas, mekkora memóriát képes közvetlenül kezelni.

 

Az ôs IBM PC processzora 20 közvetlenül címzô vezetékkel rendelkezett, a megcímezhetô memória nagysága tehát 220, vagyis kb, egy millió cella. Egy cellában egy byte, vagyis egy nyolc bites információ-mennyiség található. Ez nem jelentéktelen érték, mivel így a PC ún. operatív RAM (pontosabban DRAM) memóriájában mintegy 500 könyvoldalnyi információ fér el. A processzor és a memória közötti adatforgalom vázlata a 8.2.1..ábrán látható. A címvezetékeket a processzor vezérli, - azzal, hogy kijelöli a kívánt memória-rekeszt. A MEMR és MEMW (memória olvasás és írás) vezetékek pedig megmutatják, hogy az adatvezetéken a forgalom iránya a processzorból kifele, vagy befele mutat. E vezetékeken megjelenô jel hatására zajlik le a tulajdonképpeni memória-művelet, - ha itt nincsen jel, akkor az adatvezetékek következmények nélkül változhatnak.

(Egy szóhasználattal is meg kell ismerkednünk. Azonos funkciójú, párhuzamos vezetékeket elôszeretettel nevezik angol eredetű szóhasználattal "busz"-nak, vagy magyarosabban "sín"-nek - ne keressük az elnevezések értelmét. Beszélni lehet tehát cím-, és adatbuszról. Továbbmenve: az adatbusz, a címbusz, valamint az ezek működtetéséhez szükséges vezérlô jelek összességét I/O busznak, belsô busznak is titulálják.)

A memória - mint minden elektronikus alkatelem -működési sebessége természetesen véges. A processzornak valahogy értesülnie kell arról, hogy egy memóriaciklus befejezôdött. Ezt a célt szolgálja a READY vezeték, amelyet a memória kezel. Ennek állapota jelzi, hogy az adatvezetékek kiolvasáskor már a helyes értéket tartalmazzák, illetve beíráskor az adatvezetékek jelét a memória már átvette.

Meg kell ismerkednünk az IBM - PC -nél szokásos memóriacímzési konvencióval is. A processzor 220 = 1 MB memóriaterület megcímzésére alkalmas. A processzor címzésre használható regiszterei azonban csak 16 bitesek (voltak), vagyis csak 64 KB címezhetô velük. A különbségek áthidalására kitalálták, hogy a valódi címet egy ún. szegmens és egy offset (eltolás) értékbôl állítják elô. A szegmenscímet is 16 bites regiszterek kezelik, ezért a tényleges fizikai címet az alábbiak szerint lehet kiszámolni:

fizikai cím = 16 * szegmens érték + offset érték.

Ez annyit jelent, hogy például ha a szegmens érték 1401, az offset érték pedig BABA (természetesen hexadecimálisan számolunk), akkor a (1401:BABA) fizikai címe:

14010

+ BABA

--------

1FACA

vagyis - decimálisan - a memória 129.738-ik helyére mutat.

Vegyük észre, hogy

· a szegmenscím mindig a memória 16 byte-os egységeire utal. (Ezeket paragrafusoknak hívja e speciális nyelvhasználat.)

· egy adott fizikai címet sokféleképpen - általában négyezer féle módon tudunk kifejezni, megadni.

Az 1 MB-nyi memórián belül bizonyos funkciók biztosításához memóriaterületeket foglaltak le (valamikor), ezekre a konvenciókra a legújabb gépek is változatlanul ügyelnek. A 8.2.2. ábra ezt mutatja.

A memória legalján az interrupt vektorok találhatók. Ezek négybyte-os címek, (szegmens és offset) amelyek az interruptok bekövetkezésekor, megszakítva a normális program végrehajtás menetét, ide ugratják az utasítás számlálót. A közvetlenül efeletti memóriaterületen a BIOS (Basic Input Output System) rendszerváltozói helyezkednek el. E zóna fölé kerülnek a DOS (Disk Operating System) bizonyos rutinjai és eszközkezelô programjai.

A felhasználói programoké a következô szakasz, az A000 szegmensig. Ez annyit jelent, hogy kb. 500 kB (max. 600 kB) használható RAM memória áll a programok rendelkezésére. Az A000 - C000 tartományban helyezkednek el a különbözô képernyô memóriák, késôbb kicsit részletesebben is szólunk majd róluk. D000 - F000 között speciális funkciók találnak helyet maguknak. Ezek közül igen fontos, hogy az ún. expanded memória - mely szintén DRAM-okból áll - az itt elhelyezhetô "ablakokon" keresztül tükrözhetô a hagyományos memóriamezôbe.

 

Az F000-tól felfele található a BIOS, természetesen ROM formájában. A BIOS teszi lehetôvé a gép megindítását, a képernyô működtetését, a diszkekhez való hozzáférést. Ez tölti fel a gépet a konfigurációnak megfelelô alapadatokkal.

Itt, a memóriáknál említjük meg elôször az ún. "port"-okat. Ezeken keresztül történik az I/O berendezéseknek a processzorhoz kötése. - A portokat olyan speciális memóriacímeknek tekinthetjük, amelyekhez valamilyen funkcionális egység (HDD, hangkártya, idôzítô stb.) tartozik.

Kiválasztásukra 16 bit áll rendelkezésre, - tehát 64 K lehetséges portcím létezhet. A 16 bit egyébként a PC címbuszának alsó része, így valahogy gondoskodni kell arról, hogy megkülönböztethessük: memóriát, vagy portot címezünk. E célra szolgál az IOR és IOW vezetékpár, melyek funkciója megegyezik a MEMR/MEMW vezetékekével. Ha tehát ezeken jelenik meg írásra, vagy olvasásra felszólító jel, akkor az adatforgalom a porttal bonyolódik. - Természetesen itt is szükség van a READY jelre is. (L. 8.2.3 ábra. ) A portcímek kiosztása a PC felépítésének szerves része: meghatározott helye van a diszkeknek, az aszinkron vonalnak, stb. Néhány erre vonatkozó adatot a PC blokkvázlatán láthatunk.

 

 

 

 

8.3. A processzor

 

A processzort természetesen tárgyalhatnánk nagyon összetett hardware elemként, de beszélhetünk róla mint a software anyjáról is, mivel ez determinálja a leszármazottak alapvetô vonásait. Mindkét tárgyalási mód jogos, azonban itt e két vonatkozást nem választjuk szét.

A processzor működésének megértéséhez a rendszerórától kell elindulnunk. A rendszeróra - egy kvarckristály vezérelt oszcillátor - folyamatosan periodikus jeleket szolgáltat. (L. 8.3.1 ábra.) Általában két ilyen jel ad ki egy ún. processzorciklust. E ciklusok szabják meg, hogy a processzor hogyan lépked, - erre a taktusra hajtja végre az utasításokat. Az egyszerű utasításokat kevés, a bonyolultabbakat nagyon sok ciklus alatt tudja csak végrehajtani (késôbb adatokat találunk arra, hogy hány ciklus kell egy utasítás végrehajtásához). - Két, vagy több processzorciklus alkot egy buszciklust, melyek során a processzor a memóriához fordul. Ennek elsô fele a státusinformációt juttatja a buszra, - vagyis lényegében ekkor történik a címzés, a második fele az utasítást közli, - például azt, hogy a kérdéses címen írást kell végrehajtani.

A processzor egy utasítás végrehajtása alatt több működési fázison megy át:

- be kell hoznia a memóriából az utasítást (fetch);

- az utasítást dekódolnia kell;

- végre kell hajtania az utasításban megszabott logikai és adatmozgatási műveleteket;

- az eredményt (esetleg) újra a memóriában kell elhelyeznie, vagyis ismételten a memóriához kell fordulnia.

- meg kell határoznia a következô utasítás címét.

Fontos megértenünk, hogy a rendszeróra frekvenciájának növelésével a processzor egyre gyorsabb lesz, mivel az utasítások végrehajtásához szükséges idô csökken. Persze ehhez az kell, hogy a processzor egyre gyorsabb működésű elemekbôl épüljön fel. - Más a helyzet a buszciklusidôvel. Ennek csökkentése nem célszerű, mert a memóriaelemek csak késéssel válaszolnak, az egyéb perifériális eszközök pedig a nagyon gyors jelek fogadására nincsenek felkészülve. - Mindezek együttes hatásaként most már megérthetjük, hogy a rendszeróra frekvenciájának kétszeresére növelése a processzor/gép sebességét csak kettônél kisebb arányban növelheti. (Ezért mutatnak a különbözô gépsebesség-tesztek különbözô működési sebességet. Ugyanis mindegyikük egy jól-rosszul megválasztott programszakasz futási idejét méri. Nem közömbös azonban az, hogy az utasítások végrehajtása során hányszor kell a memóriához nyúlni. )

Az IBM - PC processzorai információs alapegységként byte-okat kezelnek. A címzési rendszer azonban szükségessé tette nagyobb, pl. a "két byte = egy szó", vagyis a 16 bites információ mennyiség bevezetését is.

Ezt fontos értenünk akkor, amikor a processzor regisztereirôl beszélünk. (A regiszter szó nem jelent túlságosan sokat: arra utal, hogy bizonyos mennyiségű bit van egy "csokorban", tehát bistabil multivibrátorok együttesének lehetne gondolni ôket. - Ezek a regiszterek azonban rajta vannak a processzor lapkán, ezekhez fér hozzá leggyorsabban a rendszer. A regiszterek egy csoportja alkalmas aritmetikai, logikai funkciók végrehajtására, másik csoportjuknak inkább csak a memóriahelyek megcímzésében van szerepük.) A regiszterek elnevezése és szerepe az alábbi :

AX - akkumulátor, kiemelt jelentôségű, központi szerepe van. Bizonyos

utasítások csak erre vonatkoznak.

BX - bázisregiszter, egy alapcímhez képesti relatív eltérések

kijelölése a fô funkciója.

CX - számlálóregiszter, elsôdlegesen az ismételni kívánt utasítások

esetén van szerepe (ciklus érték)

DX - adatregiszter, fôként adatok byte-jainak kijelölésére szolgál.

Fontos szerepe van az I/O utasításokban.

E regiszterek 16 bitesek (voltak), LO és HI byte-jaik (AL, AH, stb) külön is címezhetôk, tehát pl. CL a számlálóregiszter alacsonyabb helyiértékű byte-jára utal. A 8.1.1. Táblázatból már tudjuk, hogy már az i386 esetében is ezek a regiszterek igazából 32 bitesek.

SI - forrás (source) indexregiszter, elsôsorban adatok címzésére gyakran szerepel DS -sel együtt

DI - cél (destination) regiszter, szintén adatok címzésére, gyakran társul az ES regiszterrel

BP - bázis pointer (mutató), a bázisregiszterhez hasonló szerepkörrel SP - verem (stack) pointer, a verem aktuális tartalmára mutat.

IP - utasítás (instruction) pointer, a feldolgozandó utasításra mutat

F - feltételbitek (flag) regisztere; átvitel, paritás, elôjel, megszakítás engedélyezése stb.

Nagyon fontosak az ún. szegmens regiszterek. Ezekkel 64 kB nagyságú területeket jelölhetünk ki. Több, egymástól függetlenül megválasztható terület kijelölésére van módunk a szegmens-regiszterrekkel:

CS - kód szegmensregiszter, IP-vel együtt adja meg az utasítás pontos helyét

DS - adat szegmensregiszter

SS - stack (verem) szegmensregiszter (ez a LIFO tároló - last in first out - a szunrutinra ugrások, illetve az interruptok esetén nagy jelentôségű, mivel lehetôvé teszi az egymásba ágyazott visszatérési címek egyszerű kezelését. Megjelenése, alkalmazása óta alapvetôern változott meg a programok struktúrája.)

ES, FS, GS - extra szegmensregiszterek, lehetôséget teremtenek újabb újabb adatszegmensek definiálására és címzésére.

Az újabb ( > 386) processzorok esetén ez a sor még kiegészül:

- 4 memória kezelô regiszterrel,

- 4 vezérlô regiszterrel,

- 2 test regiszterrel,

- 8 "debug" (hibakeresô) regiszterrel.

A control (vezérlô) regiszterek a protected (védett) üzemmódban a címek kiszámításában, a különbözô feladatok prioritási viszonyainak eldöntésében érdekeltek. - A debug regiszterek a hibák keresésében, javításában vesznek részt.

A fentiekbôl látszik, hogy a programozó egyidejűleg több szegmensben manipulálhat (CS,DS,SS,ES). Az offset - vagyis a szegmens kezdetétôl mért eltolás megadására számos regiszter szolgálhat (IP, DX, BX, BP, stb).

Emlékeztetnünk kell itt arra, hogy a számítógépek a memóriában elhelyezett programot dolgozzák fel, utasításonként. Az utasításoknak ún. gépi kódjuk van, amelyet a processzor felismer, és annak megfelelôen cselekszik. A gépi kódok nulláknak és egyeseknek a keverékei, emberi értelmezésre, memorizálásra általában nem alkalmasak. E nehézségnek az áthidalására készítenek minden processzorhoz ún. assembly (szerelô) nyelvű fordító programot. Ennek használatakor a programozó a magasszintű programnyelvekben megszokott kényelmes lehetôségekhez jut, eredményként pedig egy direkt gépi kódú program keletkezik. Ezek a programok általában a legtömörebbek, éppen ezért a futási idejük a lehetô legkisebb. Ez mérési feladatok esetén nagyon fontossá válhat.

Most illusztrációként bemutatunk néhány példát az assembly nyelv jelöléseire. Az utasítások általában néhány betűbôl - rendszerint háromból - állnak, amely betűk angol szavakra, szótöredékekre emlékeztetnek. Ezeket már könnyen lehet memorizálni - az ilyen szavakat hívják "mnemonics"-nak. (MOV - move, LEA - load effective address, IMUL - integer multiplication, stb)

Az IBM - PC utasításainak leírására egyetlen byte szolgál. Sok esetben azonban ez nem elég, mert pl. abban az esetben, ha a memóriából kívánunk behozni egy értéket, meg a kell adni a címet, mely önmagában is két byte.Az utasítások tehát különbözô hosszúságúak lesznek, vagyis különbözô számú byte szükséges leírásukhoz. Ez attól függ, hogy az utasítás operandusait honnan kell venni, illetve az eredményt hová kell elhelyezni. E szempontból más-más szerepük van a regisztereknek, a memóriahelyeknek/portoknak, illetve az utasításhoz közvetlenül kapcsolódó adatoknak. Ezek tehát befolyásolják azt, hogy az utasítás milyen hosszú lesz. (Hosszabb utasítás hosszabb végrehajtási idôt is fog jelenteni, mert többször kell a memóriához fordulni.)- Az IBM - PC legrövidebb utasításai egyetlen byte hosszúságúak, a leghosszabb pedig hét byte-ot igényel.

A következô oldalon bemutatjuk az utasításkészlet legfontosabb csoportjait. Ha az utasítások megjelölésére egy byte áll rendelkezésre, akkor - elvben - összesen 256 utasítás lehetséges. Az egyes utasítás csoportokban számos utasítás található, ezek teljes felsorolása helyett csak példát adunk mindegyik alcsoportból. - Mindenütt feltüntetjük az assembly nyelvű megnevezést, a hozzá tartozó gépi kódot (ezt természetesen hexadecimálisan adjuk meg), valamint azt, hogy hozzávetôleg hány processzor ciklus szükséges az utasítás végrehajtásához. Természetesen a szükséges ciklusok száma függ a processzor típusától is. A Pentiumnak számos olyan utasítása van, amelyik csak egyetlen ciklust igényel, míg a fejletlenebb processzorok csak három, vagy több ciklus alatt végeznek velük.

 

 

 

 

 

 

 

 

 

 

 

 

Hexa kód

Ciklusok

száma

Assembly kód

Értelmezés

Adatmozgatás

8B C3

2

mov ax,bx

BX tartalmát AX-be tölti

89 87 123B

10

mov [123Bh+bx],ax

AX tartalmát beírja 123Bh és BX összegével megcímzett helyre

Aritmetika

03 C3

3

add ax,bx

AX-hez hozzáadja BX tartal-mát

F7 F9

190

idiv cx

AX taltalmát elosztja CX-el. Hányados: AX, maradék: DX

Korrekció

98

2

cbw

byte-ból szót készít

Logika

23 C2

3

and ax,dx

logikai ÉS bitenként AX és DX között; eredmény: AX

F7 C1 008

4

test cx, 08h

logikai ÉS bitenként 08h és CX között, CX tartalma nem változik

Léptetés

D3 E0

15

shl ax,cl

AX-et CL tartalmának meg-felelôen bitenként balra shifteli

Feltételbit

FA

2

cli

letiltja az interruptokat

Ugrások

EB 16 90

30

jmp ittavege

feltétel nélkül az "ittavege" cimkére ugrik

Ciklus szervezés

E2 F2

5-17

loop haho

ismetles a "haho" nevű cimkétôl

Verem

50

11

push ax

AX-et a verem tetejére teszi

58

8

pop ax

a verem tetjét AX-be tölti

Szubrutin

E8 00D

19

call girls

ugrás a ''girls" nevű szub-

rutinra

C3

12

ret

visszatérés a szubrutinból

Interrupt

CD 21

51

int 21h

ugrás a 21h interrupt rutinra

CF

32

iret

visszatérés az interrupt

rutinból

String

AD

12

lodsw

string-elem (szó) mozgatása

I/O műveletek

EC

8

in al,dx

a DX számú port tartalmát beolvasssuk AL-be

EE

8

out dx,al

a DX számú portra írjuk AL értékét

Egyéb

90

3

nop

üres utasítás

8.4. Diszkek

Az átlagos IBM PC-hez mind floppy diszk (FD - hajlékony lemezes tároló), mind pedig hard-disc (HD - merev lemezes tároló) is csatlakozik. Ez utóbbit elôszeretettel említik Winchesterként is, - a szóhasználat eredete a homályba vész.

Mindkét tároló azonos alapelven működik: forgó mágneses lemezre írunk illetve innen olvasunk a mágneses indukció törvény felhasználásával. - A floppy lemez lassabban forog, a fejek a lemezhez közvetlenül hozzáérnek. A hard diszknél a lemezek forgási sebessége szignifikánsabb nagyobb, a fejek "légpárnán lebegnek" a mágneses hozdozóközeg felett (360 illetve 3000-10000 ford/perc). A 8.4.1 ábrán látjuk a diszk mechanikai felépítésének vázlatát

A 8.4.2. ábra a hard disc méretviszonyairól tájékoztat. Talán ebbôl megérthetô, miért nem elônyös, ha ennek közelében dohányoznak. A légpárna kialakulásához ugyanis levegô szükséges, - ez csak úgy biztosítható, ha a disc a külvilággal ténylegesen érintkezni tud.

Hogyan helyezkedik el az információ a lemezen, illetve hogyan lehet egy adott szakaszt elérni? - A lemez legkisebb kiválasztható infor-mációs egysége a szektor. Ez általában 512 byte információt tartalmaz. - Az azonos rádiuszon található szektorok a "track"-en vagy cilinderen helyezkednek el. Ezek felett/alatt mozog a fej, ezért több lemez esetén több fejre van szükség.

 

 

 

Egy elemi információs egység kijelöléséhez tehát egy számhármas tartozik: meg kell mondanunk, hogy melyik fej olvasson, hányadik track-rôl és hányadik szektort. Természetesen ehhez a fejet a megfelelô pozícióba kell mozgatnunk és megvárnunk, míg a kívánt információ pont "alája fordul". (8.4.3. ábra). Mindez idôt igényel: 10 - 100 msec.-re van szükség, attól függôen, hogy milyen távoli track-en kellett az új helyzetet elfoglalni. A diszkek nagyon sokkal lassabbak, mint a RAM memóriák. - Érdemes felfigyelni a szektorok számozására. Az egymás melletti szektorok sorszámai nem folytatólagosak. Ennek oka az, hogy egy szektor beolvasása után egy kis idôt kell hagyni az információ elren-dezésére, mozgatására.

Egy file általában hosszabb, mint 512 byte. Azt, hogy egy file tárolása a szektorok milyen sorrendjében helyezkedik el, a DOS dönti el. A DOS természetesen mindezt szigorúan naplózza, hogy a lemezen elhelyezkedô összetördelt információ valaha még egyszer visszanyerhetô legyen. Ezt a naplót FAT (file allocation table ) névvel illetik, és természetesen ez is lemezen helyezkedik el. Kulcs-szerepe nyilvánvaló, - ha ez megsérül, akkor a tárolt információ nem állítható vissza. Nem csoda az sem, hogy a különösen rosszindulatú komputer-vírusok kedvelt támadási pontja a FAT.

Láttuk, hogy a diszkek meglehetôsen bonyolult feladatkört látnak el. A mechanikai részeket tartalmazó blokkot meghajtónak (drive) nevezik, a vezérlést ellátó kártyát pedig lemez vezérlônek, disc-controller-nek hívják. A kontrollerek általában több meghajtó vezérlését is el tudják látni. - A 8.4.4. ábrán a disc controller felépítésének vázlatát mutatjuk. Látható, hogy ez ROM-ot is tartalmaz, amelybe a disc bonyolult kiszolgáló BIOS rutinjai tárolódnak, sôt a vezérlési feladatok koordinálását egy külön "értelmes" eszköz, mikroprocesszor látja el.

 

8.5. Monitor, video vezérlô

A monitoron (képernyôn) jelenik meg a kép, vagy szöveg. A képernyôt - a televízióhoz hasonlóan - elektronsugár futja végig: a sorok és a képek váltásának idôpillanatait a vízszintes és függôleges sorszinkron jelek jelölik ki. Ennek vázlatát láthatjuk a 8.5.1. ábrán. A videojel az ernyôt érô elektronsugár intenzitását, tehát a pixelek fényességét szabja meg. A kép elôállításához a videojelen kívül a szinkronjelek is múlhatatlanul szükséges.- A színes képek három elektronsugár (RGB - red, green, blue) intenzitás kombinációiból állnak elô.

A video vezérlô (adapter) tartalmazza mindazon áramköröket, amelyek képernyôn való ábramegjelenítéshez szükségesek. Elsôsorban megtalálható rajta az ún. video processzor, amelyik a "kuli-munkát" végzi, továbbá az a képernyô memória, amelyik a megjelenô kép elemi

képpontjainak - az ún. pixel-eknek - a szinérôl, intenzitásáról tartalmaz információt. Mivel a képgenerálásnak állandónak és folyamatosnak kell lennie, nem csodálkozhatunk azon, hogy ezt a munkát egy önálló intelligenciával rendelkezô egységre, egy processzorra bízzák. A video processzor vezérlése, a működési mód paramétereinek beállítása port-címeken keresztül történik, természetesen a központi processzor vezérlete alatt. A monitoron megjelenô képet a video processzor készíti el, - a központi processzortól lényegében függetlenül. L.: 8.5.2. ábra.

A video processzor nagyon összetett, gyors működésre kifejlesztett chip. Bonyolultsága a központi processzoréval vetekszik.

Többfajta monitor/adapter típus volt, illetve van használatban. Fontos tudni, hogy mindegyik adapter lényegében csak a saját magához illeszkedô monitorral képes együttműködni. A monitorok többsége ugyanis csak meghatározott értékű sor illetve képszinkronjel frekvencián tud működni. A legfontosabb adapter/monitor típusokat a 8.5.2. Táblázatban foglaltuk össze.

(MDA : Mono Display Adapter ; CGA : Color Graphic Adapter ; EGA : Enhanced Graphic Adapter; VGA - Video Graphic Adapter; SVGA - Super Video Graphic Adapter, XGA - Extended Graphic Adapter. Láthatjuk, hogy ezek a rövidítések butácskák, nem informatívek.)

8.5.1. Táblázat. Ma használatos képernyôk jellemzôi

 

EGA

VGA

SVGA

 

karakter

grafika

karakter

grafika

karakter

grafika

felbontás (pixel)

640*350

640*350

640*480

640*480

1288*960

1280*1024

video szegmens

B800

A000

B800

A000

B800

A000

video RAM (kbyte)

64 - 256

64 - 256

256

256

>= 1000

>= 1000

karakter mátrix

8*14,8*8

8*14,8*8

9*16

9*16

9*16

9*16

színek száma

16 64-bôl

16 64-bôl

256

256

256

256, > 1m

monitor vezérlés

digitális

digitális

analóg

analóg

analóg

analóg

vízsz. frekvencia (kHz)

15.7-21.8

15.7-21.8

31.5

31.5

< 90

<90

függ. frekvencia (Hz)

60

60

50-70

50-70

50-90

50-90

video sávszél. (MHz)

14.3-16.3

14.3-16.3

28

28

< 100

< 100

 

A 8.5.1. Táblázatban a ma használatos képernyô üzemmódok vannak felsorolva. Innen kitűnik, hogy a kép és sorfrekvencia adatok ugyancsak eltérnek a televíziózásban megszokott szabványok értékeitôl. Ezért nem lehet az IBM PC képét hagyományos televízió képernyôn láthatóvá tenni. - A nagyfelbontású színes képek elôállításához sok esetben nem csak az adaptert és a monitort kell egybecsengôen megválasztani, hanem az ún. device driver (eszköz kezelô program) sem lehet akármilyen.

Példaképpen számoljuk ki, hogy mekkora memória szükséges egy manapság már nem nagyon elfogadható EGA kép tárolásához. A képernyô-pontok száma 640*350, egy képpont 16 különbözô színű lehet, tehát a tároláshoz 640*350*4 bit, vagyis 112 KB kell. Ennyi azonban a 8.2.1. ábrán látható memória térkép szerint nem áll rendelkezésre.

A megoldás elve a 8.5.3. ábrán látható. A memória (pontosabban a video memória) egy byte-jának címzése során egyidejűleg több "síkon/lapon" elhelyezkedô, összetartozó byte érhetô el, amelyek megfelelô bitjei adják a keresett pixel színének leírását. Természetesen ehhez a videoprocesszor segítségére is szükség van, - a központi processzor az ilyen üzemhez "nincsen hozzászokva".

Figyelnünk kell arra a furcsa helyzetre, hogy a video memóriához a video processzornak folyamatosan hozzáférést kell biztosítani, hiszen enélkül a monitoron megjelenô ábra nem lenne élvezhetô. Ugyanakkor a video memóriát a központi processzor is használja, módosítja, - így lehet a képek folyamatos váltását biztosítani. - Ha a két feljogosított egyidejűleg akarja a video memóriát kezelni, ez bizony konfliktust jelent. (Azt mondják, ilyenkor a kép "havazik".)

A videoprocesszor tevékenységébe nyilván nem lehet beavatkozni, neki kell az elsôbbséget biztosítani. De mikor juthat szóhoz a központi processzor?

Több megoldás létezik. Az egyik szerint a sor-kép visszafutások alatt lehet a tartalmat manipulálni. A másik szerint ún. video RAM-ot kell alkalmazni. Ennek két adat csatlakozási helye van: az egyiken a kiolvasás adatai, a másikon a beírandó adatok vannak jelen. Ha a kérdéses címet hívjuk, a video processzor részére kiolvasunk, de a tartalmat felülírjuk a központi processzor óhaja szerint.

8.6. Az IBM PC blokkvázlata

Az alábbiakban áttekintjük azokat az egységeket, amelyek működését, funkcióit érdemes megismerni a gép hatékony felhasználásához. Leírásunk csak a legszükségesebb ismeretekre korlátozódik, olyanokra, amelyek az alkalmzott processzortól függetlenül meglévônek tekinthetô. Ezeket az egységeket külön-külön chip formájában már aligha találjuk meg, de software hozzáférésük minden gépben biztosított. - Az összefoglaló blokkvázlatot a 8.6.1 ábrán láthatjuk.

 

 

8.6.1. A memória

A processzor az utasításokat a memóriából veszi elô. A memória általában DRAM elemekbôl áll, amelyeket rendszeresen frissíteni kell. A felfrissítés folyamatában kulcsszerepe van a DMA vezérlônek (l. késôbb). - Érdekes tulajdonsága a memóriának, hogy egy byte tárolásához 9 bitet használnak, a kilencedik paritásbit (ma már gyakran elhagyják). Minden írás és olvasás folyamatban paritás ellenôrzés is lezajlik. Ha paritáshiba van, akkor a processzor NMI (Non Maskable Interrupt - nem maszkolható megszakítás) bemenetén keresztül olyan interruptra ugrik, mely a képernyôn közli e sajnálatos esemény bekövetkeztét, majd a gép vezérelhetetlen állapotba kerül. (Érdekességként megjegyezzük, hogy - nevével ellentétben - az NMI software módszerekkel letiltható.)

A memóriaművelet befejezését jelzô READY jel a WAIT logika egységen keresztül jut el a processzorhoz. Ezt az egységet meg lehet tanítani arra, hogy hány többlet-buszciklusnyi ideig várakozzon a READY jel érkeztére. Nyilván a leggyorsabb rendszer nulla WAIT state-et engedélyez, - ez hardware szempontból a lehetô leggyorsabb memória-chipeket igényli.

(A READY jel azért jut az óragenerátoron keresztül a processzorba, hogy az esemény az órajelsorozattal szinkronizálódjon, - így ugyanis biztonságosabb a feldolgozása.

A RESET jel is hasonló sorsra lel. A RESET gomb működtetésére a processzor abbahagyja addigi tevékenységét, és elugrik a ROM memória FFFF:0000 helyén található címre, elindítva a gép újtöltését (boot-olását).)

A tágabban értelmezett memória fontos része az ún. CMOS RAM. Ez 64-256 byte tárolására alkalmas, méghozzá úgy, hogy a beléírt adatok kikapcsolt készülék mellett is megmaradnak. A megoldás rendkívül egyszerű: egy kis telep vagy akkumulátor fenntartja a tápfeszültséget a hálózati ellátás megszűntekor is. - E memória mellett helyezkedik el egy kvarcoszcillátor, mely az idô és dátum értékét tartja fenn, szintén a gép kikapcsolt állapotában is. A CMOS memóriában tehát tárolódnak az idô/dátum adatok, valamint a rendszer bekapcsolásánál nélkülözhetetlen, a konfigurációra vonatkozó információk. Ezek közül talán a legfontosabb az, ami a hard-diszk-rôl közöl fontos ismereteket. A gép ébresztését végzô POST (Power On Self Test) program is a CMOS RAM-ból veszi a saját magára vonatkozó információt.

8.6.2 Az interrupt vezérlô

Az I/O eszközökkel való együttműködés koordinálására az IBM PC-ben egy ún. interrupt vezérlô chipet használnak. Ennek feladata, hogy a hardware interrupt kéréseket kezelje. A hardware szó itt arra utal, hogy valóságos fizikai jelek (az áramkör bizonyos pontjain félreérthetetlenül megjelenô HI/LO jelek) kezdeményezhetik a futó program megszakítását és a megfelelô interrupt rutinra történô ugrást.

Ha az áramkör az interruptot fogadja, akkor errôl a processzort az IRQ (Interrupt Request) vezetéken értesíti. A processzor ekkor még befejezi az éppen futó utasítást, majd az INTA (Interrupt Acknowledge) vezetéken keresztül kéri, hogy az interrupt vezérlô közölje, hányas számú interruptot fogadta el, hogy a processzor ennek címére ugorhasson.

Az interrupt vezérlô 8 hardware jelet kezel, ezeknek prioritás sorrendjük van. Ha például a 4-es szintű interrupt végrehajtása során közben bejelentkezik a 0 szintű (ennek a legmagasabb a prioritása) , akkor a vezérlés átadódik ennek. Ha azonban a 7-es szint kér egy kis figyelmet a processzortól, azt csak a négyes interrupt befejezése után kaphatja meg, - feltéve hogy nincsen nála magasabb prioritású várakozó interrupt kérés.

A legmagasabb szintű interrupt, a nullás, egy idômérô rendszert működtet. Ezt az interruptot a "nullás idôzítô" (l. késôbb) kb. 50 millisec.-ként periodikusan kéri. Hatására egy számláló tartalma eggyel növekszik. A gép működés közben innen veszi/veheti az idô-adatokat. - A következô legfontosabb interrupt szint a billentyűzeté. Ha a billentyűzet bármelyik gombját lenyomjuk, vagy felengedjük, a rendszer azonnal észleli és - általában - ezt a BIOS munkamezô egy címén elhelyezi, hogy a késôbbiekben rendelkezésre álljon.

A következô interrupt bemenethez egy újabb interrupt vezérlô kimenete csatlakozik. Ezzel a fogással két interrupt vezérlôvel 15 interruptot lehet kezelni. Ez a 15 interrupt szint egy manapság jól megtöltött PC esetén éppen csak elég: gyakoriak az ún. interrupt összeütközések, amikor több perifériális berendezés ugyanazt az interrupt szintet akarja használni. - A PC blokkvázlat ábráján (8.6.1) láthatjuk, melyek azok a legfontosabb perifériális berendezések, amelyek az interrupt vezérlôt elérhetik.

Az IBM PC méréstechnikai felhasználása szinte elképzelhetetlen az interrupt lehetôségek felhasználása nélkül. Az interrupt vezérlô pontosan leírt, viszonylag egyszerű software eszközökkel könnyen kezelhetô (pl. nem kívánt interruptok letiltása, az interrupt prioritások módosítása stb.).

Itt kell hangsúlyoznunk azt, hogy az elôzôekben leírtak csak az ún. hardware interruptokra vonatkoznak. Az IBM PC használói sokszor kiaknázzák az ún. software interruptokat is. Ezek lényegében a rendszer működése szempontjából fontos szubrutinok, amelyek csak megfelelô programokból érhetôk el. A legfontosabb BIOS és DOS műveletek ilyen software "generált" interruptok formájában jelennek meg.

9.6.3. DMA (Direct Memory Access)

Ha nagyobb adatmennyiségeket kívánunk a memória egyes részei között mozgatni, vagy egy perifériális eszközrôl a memóriába beolvasni, akkor ehhez igénybe vehetjük a processzor utasításait. A folyamat óhatatlanul lassú lesz, mert mind az olvasási, mind az írási művelet legalább egy-egy buszciklust igényel; - nem is említve még címek számolgatásához szükséges idôket.

Ezért már régen feltalálták, hogy e műveletek céljaira egy önálló, "cél-processzort" kell használni, amelyik az írási és olvasási címeket automatikusan és igen gyorsan egyesével növeli, és a beolvasott adatot késlekedés nélkül írja a cél-helyre. Természetesen ezen folyamat alatt az "igazi" processzornak hallgatnia kell, nehogy a cím,- vagy adatbuszon helyrehozhatatlan keveredés álljon elô.

Az IBM PC -ben is van ilyen ún. DMA vezérlô, mely különösen a képek és a mérési eredményekként létrejövô adattömbök mozgatásában jeleskedik. Ezen túlmenôen van még egy igen fontos feladata: a DMA vezérlô végzi a dinamikus RAM memória felfrissítését. Az idôzítô 1. csatornája kb. 15 microsec.-ként jelzést küld a DMA vezérlônek. Ez ezt továbbítja a DMA RQ (DMA REQUEST) vezetéken a processzornak. A processzor ekkor befejezi az elkezdett processzorciklust, majd visszaüzen a DMA vezérlônek, hogy az átveheti a buszok vezérlését. A DMA 5 processzor-ciklus idejéig kezeli a vonalakat. (Érdemes felfigyelni rá: ezen szakasz alatt a processzor számára "nem telik az idô"...). - A DMA egység által végrehajtott látszólagos adatblokk-mozgások a memória egy-egy részének felfrissítésével járnak. 512 ilyen felfrissítô ciklus az egész memóriát "felújítja", a teljes memória tehát mintegy millisecundumonként felfrissítésre kerül. Ez bôven elegendô a megbízható, hibamentes működéshez.

8.6.4. Idôzítôk

Az IBM PC fontos tartozékai az idôzítôk. Az idôzítôkben kétbyte-os számlálók vannak elhelyezve, amelyek azonos jelforrásból táplálkoznak. Amikor a számláló "lejár", a megfelelô kimeneti vezetéken jel jelenik meg, ami további funkciókat indít. A számlálás újrakezdésekor egy beállított számértékre "felhúzzuk" a számlálót, amikor a számláló eléri a zérus tartalmat, létrejön a kimenô jel. Az idôzítôk astabil és monostabil üzemmódban egyaránt képesek működni.

Az idôzítôk a rendszeróra leszármaztatott jelébôl kapnak periodikus impulzus-sorozatot. Ennek ismétlôdési ideje 839 ns., függetlenül attól, hogy a rendszeróra ténylegesen milyen frekvenciával rezeg. Az idôzítô tehát alkalmas valódi idô megállapítására, például a különbözô gépsebességet mérô programok az idôzítôk felhasználásával mérik meg egy adott program futási idejét, amit aztán a gépek gyorsasági viszonyainak összehasonlítási adataként kezelhetünk.

A három idôzítô szerepköre elôre meg van szabva. A 0. idôzítô a gép idô/dátum tartalmának meghatározásában segédkezik, az 1. idôzítô a DMA kérést indítja és így a DRAM felfrissítését kezdeményezi, 2. idôzítô pedig a hangszórót működteti. Ezt az idôzítôt általában különösebb következmény nélkül elvehetjük a rendszertôl és például periodikus mérési idôpontok kijelölésre használhatjuk. Némi meggondolások után a 0. idôzítôt is "elkérhetjük" és saját céljainkra használhatjuk. Az 1. idôzítôt manipulálni azonban veszélyes: ez a memória összeomlásához vezethet.

8.6.5. Billentyűzet

Errôl legalább annyit kell tudnunk, hogy ujjaink mozgását a billentyűzeten egy külön mikroprocesszor figyeli. Ez a processzor állapítja meg a lenyomott billentyű ún. scan kódját, valamint rögzíti azt a tényt, hogy a billentyűt lenyomtuk/felengedtük, vagy egyszerre több billentyűt nyomtunk-e meg. - Ezek az események viszonylag magas prioritás szinttel a PC központi processzorában interruptot kezdeményeznek.

(8.6.5.1. ábra)

 

A billentyűzet mikroprocesszor a PC-vel kétirányú soros vonalon kommunikál.

A POST által végzett vizsgálat kiterjed a billentyűzet ellenôrzésére is. (Ha a billentyűzet hiányzik, vagy rosszul működik, a gép - noha elvileg megtehetné - nem indul.)

Az IBM PC által favorizált billentyűzet-kiosztás amolyan ipari szabvánnyá vált, amelyet alapvetôen más felépítésű gépek is használnak.

8.6.6. Aszinkron I/O port

Az IBM PC - hez való hozzáférésnek a legegyszerűbb eszköze az aszinkron port. Soros információ fogadására és küldésére alkalmas. Mivel ez a kommunikációs lehetôség majdnem minden gépen megtalálható, a gépek egymáshoz kötésének kézenfekvô megoldása. A soros adatátvitel tényébôl fakadóan az átvitel sebessége mérsékelt, illetve lassú (400 - 50 kBaud).

A kommunikáció az RS-232 szabvány szerint bonyolódik. L. 7.4.1. fejezet.

Fontos tudnunk, hogy az IBM PC soros portján megjelenô feszültségértékek plusz és mínusz 12 V értékűek, - berendezések egymáshoz kötése elôtt jó ezt emlékezetünkbe idézni. Az aszinkron porthoz csatlakoztatható egy nagyon népszerű eszköz, az egér. Az egér alján lévô gumigömb elmozdulásai két egymásra merôlegesen elhelyezett tárcsát fordítanak el. A tárcsa fogazott, a fogak között átvilágító fényforrás fényét a túloldalon fényérzékelô detektálja. Az egész elrendezés megfelel a 7.3.2. ábrán látható vázlatnak, vagyis egy egyszerű, mechanikus működésű analóg-digitál átalakítónak. - Az egérben található elektronikus alkatrészek feszültség/áram ellátását az aszinkron port jelvezetékei biztosítják, mivel a port kimeneti pontjain tápfeszültségek nem jelennek meg.

8.6.7. Printer port

A printer port feladata az, hogy a felhasználó a lehetô legegyszerűbben a géphez tudja kapcsolni nyomtatóját. A port vezetékei, azok funkciói szabványosak, lehetôvé teszik, hogy a gép hand-shake üzemmmódban nyolc bites kódokat küldhessen a nyomtató felé, illetve bemeneti vezetékei segítségével a nyomtató bizonyos állapotait érzékelhesse (kifogyott a papír, a nyomtató foglalt, stb.)

A printer portot - elnevezésétôl eltérôen - nagyon sok célra fel lehet használni: bármilyen eszköz vezérlésen kezdve az ún. hardware kulcsos program védelemig.

Ez utóbbi azon alapul, hogy lehet készíteni olyan relatíve egyszerű logikai áramköröket, amelyek bemenetét a port kimenô jelei vezérlik, a logikai áramkör kimenetét pedig a port bemenô vezetékeire vezetik vissza. A logikai áramkör jelenléte így software módon ellenôrizhetô. - Ha ez a rendszer ügyesen van tervezve, a printer port alapfunkciói változatlanul megmaradnak. A programját védeni kívánó software gyártó tehát a programmal együtt odaadja a felhasználónak a hardware kulcsot. Ha ez nem másolható, - vagy legalább is egyszerűen nem "koppintható", - akkor a software-t hiába másolják le, hardware kulcs nélküli gépen nem fog futni.

(Megjegyezzük, hogy a printer portot sokszor paralel portnak titulálják. Ez pontatlan elnevezés, kerüljük. Valóságos paralel portokat is árulnak, amelyek ki- és bemenô adatforgalmat is bonyolítanak. Szerepük fôleg a gyors adatküldésben, fogadásában van, pl. a scanner-ekben.)

8.6.8. Felhasználói portok

Az ún. user portok lehetôvé teszik, hogy az IBM PC -hez nagyon változatos "egyéni" funkciójú berendezéseket illesszünk.

A user kártyáknak természetszerűleg illeszkedniök kell az IBM PC belsô buszához. A kártyán detektálni kell a vonatkozó port címeket, tehát legalább a címbusznak, az adatbusznak, valamint az IOW, IOR, READY jeleknek a csatlakozását is biztosítani kell.

Ami pedig a port címtartományát illeti: a 300 - 30F címekre általában minden további nélkül telepíthetünk berendezést. Nagyon összetett gépek esetén azonban e tartomány már más célokra el van használva, - ilyenkor a port címkiosztási táblázat alapos vizsgálatával találhatunk olyan újabb tartományt, mely semmi elôzô funkcióval nem ütközik.