Professional Documents
Culture Documents
A PC Működése
A PC Működése
A PC Működése
8.1. Bevezetés
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.
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.)
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
i386DX 32 32 32 4 16-40
GB
i486DX2 32 32 32 4 50-
GB 100
8.2. A memória
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.
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
egy adott fizikai címet sokféleképpen - általában négyezer féle módon tudunk
kifejezni, megadni.
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.
8.3. A processzor
A processzor egy utasítás végrehajtása alatt több működési fázison megy át:
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 :
kijelölése a fô funkciója.
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.
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.)
- 4 vezérlô regiszterrel,
- 2 test regiszterrel,
Ciklusok
Hexa kód Assembly kód Értelmezés
száma
Adatmozgatás
Aritmetika
Korrekció
Logika
Léptetés
Feltételbit
FA 2 cli letiltja az interruptokat
Ugrások
Ciklus szervezés
Verem
Szubrutin
Interrupt
visszatérés az interrupt
CF 32 iret
rutinból
String
I/O műveletek
Egyéb
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.
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.
(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.)
EGA VGA SVGA
karakter grafika karakter grafika karakter grafika
video RAM 64 - 256 64 - 256 256 256 >= 1000 >= 1000
(kbyte)
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.1. A memória
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 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.
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.
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.
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
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 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.)
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.
Az ún. user portok lehetôvé teszik, hogy az IBM PC -hez nagyon változatos "egyéni"
funkciójú berendezéseket illesszünk.
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.