next up previous
Következő: A processzor | Tartalomjegyzék | Előző: Bevezetés

A memória

A számítógép talán legbutább részegységének 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 közvetlen kapcsolatban áll a processzorral. 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 IBM-PC processzorai közvetlenül 20 címző vezetékkel rendelkeznek, a megcímezhető memória nagysága tehát 220 cellából áll. 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 memóriájában mintegy 500 könyvoldalnyi információ fér el. (Zárójelben meg kell jegyeznünk, hogy újabban - nem kis ravaszkodással - mód nyílik a közvetlenül címezhető memória-terület jelentékeny növelésére is. Ezt részben az egyre "mohóbb" programok kényszerítették ki a tervezőkből, részben pedig a memóriabővítések olcsóbbá válása serkentette. Ennek részleteivel nem foglalkozunk.)


8.2.1. ábra


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, 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élnek 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 is titulálják.) A memória - mint minden elektronikus alkatelem - működési sebessége természetesen véges. A gyorsabb általában drágább is, a lassúbb olcsóbb. 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 már a helyes értéket tartalmazzák, illetve 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, 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ékbol á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 $\times $ 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:

\begin{displaymath}{\rm 14010 + BABA = 1FACA} \quad ,\end{displaymath}

vagyis - decimálisan - a memória 129738-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 nagyon 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 foglalnak le. A 8.2.2. ábra ezt mutatja.


8.2.2. ábra


A memória legalján az interrupt vektorok találhatók. Ezek négybyte-os címek - amelyek az interruptok bekövetkezésekor, megszakítva a normális program végrehajtás menetét - ide irányítják a programot. Az 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 használható RAM memória áll a programok rendelkezésére. Az A000 - CFFF tartományban helyezkednek el a különböző képernyő memóriák, később kicsit részletesebben is szólunk róluk. D000 - EFFF között speciális funkciók találnak helyet maguknak pl. az ún. expanded memória itt tükröződik 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 lényegében speciális memóriacímeknek tekinthetjük. 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/MEMR 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ásd 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 8.6.1. ábrán láthatunk.


8.2.3. ábra



next up previous
Következő: A processzor | Tartalomjegyzék | Előző: Bevezetés

1999-09-23