Memória

A Programozás Wiki wikiből

Bevezető[szerkesztés]

Számítógépben található memória modul

A számítógép alaplapján található a memória. A központi feldolgozóegység direkt kapcsolatban áll a memóriával. A memóriában tartózkodnak az éppen futó programok, és a programhoz tartozó adatok. A számítógép memóriája byte-okból épül fel, melyek sorszámozva vannak 0-tól n-1-ig, ahol n a memória mérete. A mai számítógépek memóriái byte-szervezésűek, ami azt jelenti, hogy a legkisebb adatmennyiség amellyel dolgozhatunk 1 byte (8 bit).

Memória cím[szerkesztés]

A memória byte-jai be vannak sorszámozva, e sorszámokat a megfelelő byte-ok címeinek nevezzük. A memória címeket általában hexadecimálisan adják meg. Tehát, a memória minden byte-jának van egy címe, amit arra használhatunk fel, hogy tudjuk melyik byte-ról van szó. Illetve van tartalma, aktuális értéke, amely $0 és $FF közzé eshet.

Memória címzése[szerkesztés]

Ahhoz, hogy a memória byte-jait elérhessük, a memóriát címezni kell. A központi feldolgozóegység (processzor) a címet 16, 32, 64 biten tárolja. Hogy pontosan hány biten, az processzorra jellemző adat. Mivel 16 biten 216 különböző érték tárolható, ezért 16 bites, vagyis két byte-os címzés esetén csak 216 , azaz 65535 (64 KB) nagyságú lehetne a memóriánk - az ezen felüli byte-ok nem címezhetők. Ez rendkívül kevés, és a mai igényeknek nem felel meg. 32 bites címzés esetén 232 byte, azaz 4 GB a memóriakorlát. Ugyanennyi címbittel még nagyobb memória címezhető, ha a memóriát 2, 4, 8 stb. byte-os egységként kezeljük.

Redundancia[szerkesztés]

Ha a memóriát azonos méretű tárolórekeszek összességének vesszük, akkor szemelőt kell tartanunk azt is, hogy valamennyi tárolórekesz mellett van egy 9. bit is, amelyet ismertebb nevén paritásbit -nek is szokás nevezni. A paritásbit feladata, hogy felismerje az esetleges tárolási hibákat (redundancia). Értéke 0 vagy 1 lesz attól függően, hogy a rekeszbe történő íráskor páros vagy páratlan az egyesek száma. Ha a tárolórekesz kiolvasásakor nem felel meg az egyesek száma a paritásbit értékének, akkor a processzor memória hibát jelez.

Memória tartalma[szerkesztés]

A memória tartalma a program futása során állandóan változhat. A memóriának bármely byte-ját közvetlenül el tudjuk érni, oda eltárolhatunk adatot, és el is tudjuk olvasni annak tartalmát. Tároláskor természetesen a memória előző tartalma törlődik, olvasáskor viszont nem változik. A számítógép kikapcsolásakor a memória tartalma általában elvész.

Memóriák csoportosítása[szerkesztés]

A memóriákat fizikai szempontból két csoportra oszthatjuk.

  • RAM (Random Access Memory)
  1. A központi feldolgozó egység a memória tetszőleges byte-jait azonos idő alatt éri el. Az ilyen elérésű memóriát véletlen elérésű memóriának nevezik.
  2. Olvasható, írható és törölhető a tartalma.
  3. Ahhoz, hogy az adatokat el tudja tárolni, külső tápfeszültségre van szüksége, vagyis a számítógép kikapcsolásakor a benne tárolt adatok elvesznek.
  4. Operatív tár céljára használják. Egy program futása úgy történik, hogy a először a program betöltődik a RAM-ba, majd végrehajtódnak az utasítások.
  5. A RAM gyorsabb mint a ROM.
  • ROM (Read Only Memory)
  1. A memória, amelybe az adatok véglegesen be vannak égetve, a ROM. A számítógép vezérléséhez szükséges alapvető parancsokat tartalmazza.
  2. Tartalma olvasható, de nem változtatható meg.
  3. Programozása a gyártáskor történik.
  4. Információ tartalmát a számítógép kikapcsolásakor is megőrzi.
  5. Speciális fajtája a PROM , melyet a felhasználó egy speciális készülékkel programozhat, utána azonban a tartalma csak olvasható. Például az EPROM , mely ultraibolya fénnyel törölhető majd újraírható.
RAM-ok csoportosítása
  • DRAM (dinamikus RAM): olcsóbban gyártható, mivel a bitet a félvezető kapacitása tárolja, de a háttérben rendszeres időközönként végig kell címezni a sorokat, ellenkező esetben elvész a benne tárolt információ. Sorok és oszlopok: alacsony szinten a DRAM-ok nem egy skalár memóriacímmel címződnek, hanem sor és oszlop kijelöléssel. A sorkijelölés hatására kiolvasódik az egész sor és egyúttal vissza is íródik.
  • SRAM (statikus RAM): ebben már rendes D tároló cella lett kialakítva, ami duplá akkora gyártási költséget jelent. Azonban nem kell frissíteni az SRAM-ot, mert a cella mindkét állapotában stabilan megmarad, amíg tápfeszültséget kap. Általában ezért kisebb kapacitásúak (néhány 10 MB-os nagyságrendig maximum), azonban nagyon gyors működésűek és az üzemi állapotukat nem szakítja meg frissítési ciklus.
ROM-ok csoportosítása
  • PROM: egyszer programozható, üzem közben csak olvasható memória. Technológiailag általában vékony szilíciumszálakat égettek át a programozás során. Az üres memória minden bitjében ép volt ez a szál.
  • EPROM: elektromos árammal írható memória, törlése UV fénnyel történt.
  • EEPROM: elektromos árammal írható és elektromos árammal törölhető memória. UV fény és kvarcablak a tokozáson már nem kell.
  • FLASH ROM: az EEPROM cellájának írása nagyságrendileg 1 ms időt vesz igénybe, azaz nagyon lassú. Ezt feloldandó X oszlop hosszú (pl. 512 byte) sorokra osztották a memóriát a byte szervezés helyett. Így ha bele akarunk írni 2 kB-ot, az 4 ms alatt megtörténik, szemben a klasszikus EEPROM byte-os szervezésével, ahol 2000 ms alatt zajlott volna le. Amennyiben a példának bemutatott FLASH-ben 16 byte-ot akarnánk írni, akkor alacsony szinten kiolvasódik a teljes 512 byte, beleíródik a RAM-ba a megfelelő 16 byte és az új 512 byte-os tartalom íródik vissza a FLASH ROM sorába.

A gyakorlatban az EPROM írási sebessége is gyorsult, ám az igazi sebességnövekedést a FLASH-eknél még mindig azzal érik el, hogy a sorok hossza gyakran hosszabb, mint 512 byte, így az egyidejű párhuzamos írás okán adnak jobb sebességértéket.

Memória típusok használata[szerkesztés]

  • ROM típusú memóriák:
  1. A BIOS-t tartalmazó memória a ROM-BIOS. Melynek feladata az egyes hardver elemek működésének irányítása. Ennek tartalmát a DOS a RAM-ba másolja.
  2. Nagy felbontású VGA monitorok esetén, a vezérlőkártyán is találhatunk ROM-ot.
  • RAM típusú memóriák:
  1. Operatív memória. Ennek első 640 KB-os részét, hagyományos memóriának, az 1 MB feletti részét pedig kiterjesztett memóriának (XMS) nevezzük. A DOS közvetlenül csak a hagyományos memóriát tudja kezelni.
  2. CMOS-RAM. Olyan kis fogyasztású memória, amely külön akkumulátorról kapja az áramot, így a gép kikapcsolásakor sem veszíti el tartalmát. A számítógép konfigurációs beállításait őrzi.
  3. CACHE-MEMORY. Kis kapacitású gyorsító memória.

Virtuális memória[szerkesztés]

A számítógépnek lehet úgynevezett virtuális memóriája. Itt tulajdonképpen arról van szó, hogy a gép - igazi memória hiányában - memóriának használja a merevlemez egy bizonyos meghatározott részét.