Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 28

A PC működése

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).
8.1.1
  Regiszter Címbusz Adatbusz Címezhetô Kivezeté- Táblázat. A
Órafrekven
szélesség (bit) tartomány cia (MHz) sek száma

 
8088 16 20 8 1 6-10
MB

 
80188 16 20 8 1 6-10
MB

 
80186 16 20 16 1 6-10
MB

80286 16 24 16 16 12-20 68
MB

i386SX 32 24 16 16 16-25 132


MB

 
i386DX 32 32 32 4 16-40
GB

i486 32 32 32 4 25-50 168


GB

 
i486DX2 32 32 32 4 50-
GB 100

Pentium 32 32 64 4 60- 273


GB 266
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.

Ciklusok
Hexa kód Assembly kód Értelmezés
száma
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

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


E8 00D 19 call girls
rutinra

C3 12 ret visszatérés a szubrutinból

Interrupt

CD 21 51 int 21h ugrás a 21h interrupt


rutinra

visszatérés az interrupt
CF 32 iret
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 640*350 640*350 640*480 640*480 1288*960 1280*1024


(pixel)

video B800 A000 B800 A000 B800 A000


szegmens

video RAM 64 - 256 64 - 256 256 256 >= 1000 >= 1000
(kbyte)

karakter 8*14,8*8 8*14,8*8 9*16 9*16 9*16 9*16


mátrix

színek száma 16 64-bôl 16 64-bôl 256 256 256 256, > 1m

monitor digitális digitális analóg analóg analóg analóg


vezérlés

vízsz. 15.7-21.8 15.7-21.8 31.5 31.5 < 90 <90


frekvencia
(kHz)

függ. 60 60 50-70 50-70 50-90 50-90


frekvencia
(Hz)
video sávszél. 14.3-16.3 14.3-16.3 28 28 < 100 < 100
(MHz)

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.

 
 

 
 

You might also like