bélyegkép|jobbra|RAM Memória modul

A RAM az angol random-access memory rövidítése; magyarul tetszőleges hozzáférésű memóriának vagy közvetlen hozzáférésű memóriának nevezik.Angol-magyar műszaki szótár (1994–1999, Scriptum Rt.) Olyan írható–olvasható számítógépes memória, amelynek bármely címezhető része közel azonos idő alatt érhető el. A RAM a számítógép működése közben a CPU által végrehajtott programok, valamint a feldolgozás alatt álló adatok ideiglenes tárolására szolgál. A legtöbb RAM úgynevezett illékony memória: ez azt jelenti, hogy tartalma csak addig marad meg, amíg az eszköz tápellátást kap; kikapcsoláskor vagy áramkimaradáskor a benne tárolt adatok elvesznek. Bár a ROM egyes típusai szintén közvetlenül címezhetők, a RAM kifejezést a gyakorlatban az írható–olvasható munkamemóriára használják.

A magyar véletlen elérésű memória kifejezés nem pontos, hiszen a memória elérése nem véletlenszerűen, hanem pontos címzések alapján történik, az angol random szó itt arra utal, hogy egy adott memóriarész elérésének gyorsasága független az elhelyezkedésétől (ellentétben például a szalagos adattárolással, amikor a szalag jelenlegi pozíciójától távoli adatokat hosszabb idő elérni).(számítástechnika) véletlen/statisztikus/közvetlen elérés/hozzáférés Angol-magyar műszaki szótár (1994-1999, Scriptum Rt.)

Általános

A RAM a Neumann-architektúrájú számítógépek elsődleges tárolója, más néven főmemóriája (main memory). Rendszerszinten a RAM feladata az operációs rendszer, az éppen futó alkalmazások, valamint a processzor (CPU) által aktívan feldolgozott adatok és utasítások ideiglenes tárolása.

A „közvetlen elérés” megnevezés arra utal, hogy a memória bármelyik címezhető része megközelítőleg azonos idő – algoritmikus értelemben állandó, O(1) nagyságrendű lépésszám – alatt olvasható ki vagy írható felül. Ez az elv alapvető eltérést jelent a szekvenciális adathordozóktól, például a mágnesszalagtól, valamint a blokkalapú háttértáraktól, például a merevlemeztől vagy a szilárdtest-meghajtótól, ahol az adatok fizikai elhelyezkedése és a tároló mechanikus vagy logikai felépítése jelentősen befolyásolhatja az elérési időt.

Fizikai felépítését tekintve a modern RAM-ok túlnyomórészt félvezető alapú integrált áramkörökből készülnek. A tárolás alapegysége a memóriacella, amely jellemzően egy bitnyi – azaz 0 vagy 1 értékű – információt rögzít. Ezek a cellák sorokba és oszlopokba rendezett, memóriacímekkel hivatkozható mátrixot alkotnak. A félvezetős memóriák a tranzisztorok miniatürizációjának köszönhetően az 1970-es évek elejétől – többek között az Intel 1103 integrált áramkörének megjelenésével – szorították ki a 20. század közepén domináns ferritgyűrűs memóriákat (magnetic-core memory).

Működési mechanizmusuk és belső hardveres felépítésük alapján a memóriákat két fő kategóriába sorolják:

A statikus RAM vagy SRAM flip-flop jellegű áramkörök segítségével tárolja az adatot. Hozzáférése rendkívül gyors, és amíg tápfeszültséget kap, nem igényel periodikus frissítést. Hátránya a nagyobb fizikai kiterjedés – egy cella felépítése több, jellemzően hat tranzisztort igényel – és a drágább előállítási költség. Ennek megfelelően napjainkban elsősorban a processzorokba integrált, kis kapacitású, de rendkívül gyors gyorsítótárak (cache) formájában alkalmazzák. A dinamikus RAM vagy DRAM felépítése lényegesen egyszerűbb: cellánként jellemzően egyetlen tranzisztort és egy parányi kondenzátort tartalmaz. Mivel a kondenzátorok folyamatosan veszítenek töltésükből, a hardvernek a tárolt adatokat rendszeres időközönként automatikusan újra kell írnia; ezt nevezik frissítésnek. Magas adatsűrűsége és gazdaságos gyárthatósága miatt ez a technológia adja a számítógépek nagy kapacitású főmemóriájának alapját.

A processzor és a RAM közötti adatáramlást a memóriavezérlő (memory controller) felügyeli, amely a modern PC-architektúrákban jellemzően már magába a processzorlapkába van integrálva. Bár a RAM nagyságrendekkel gyorsabb a háttértáraknál, a mikroprocesszorok számítási teljesítményének fejlődése történelmileg rendre meghaladta a főmemória sávszélesség- és késleltetés-javulásának ütemét. Ezt a teljesítménybeli aszimmetriát a szakirodalom „memóriafal” (memory wall) problémaként ismeri. Ennek áthidalására a rendszertervezők a processzor mellé épített többszintű SRAM gyorsítótárakat, például L1, L2 és L3 cache-t, előtöltési (prefetching) algoritmusokat, valamint többcsatornás (multi-channel) memóriavezérlőket alkalmaznak.

A személyi számítógépekben a rendszermemória fizikailag többnyire nyomtatott áramköri lapkákra szerelt, cserélhető memóriamodulokból áll. Asztali rendszerek és szerverek esetében a DIMM (Dual In-line Memory Module), hordozható és kompakt gépeknél pedig a méretében kisebb SO-DIMM a bevett modulformátum. A jelenlegi konfigurációk többsége a szinkron dinamikus RAM valamelyik dupla adatátviteli sebességű, vagyis DDR SDRAM-generációjára – például DDR4-re vagy DDR5-re – épül.

Címzés és késleltetés

A RAM-ban tárolt adatok címek segítségével érhetők el. A modern számítógépes memóriákban a tárolócellák címekkel rendelkeznek; a memória gyakran szavakba rendeződik, de rendszerint a bájtok is külön címezhetők. A fizikai memóriacellák biteket tárolnak: egy bit a bináris 0 vagy 1 érték egyikét jelenti, nyolc bit pedig egy bájtot alkot. A memóriamodulokon több memóriachip található, ezekben pedig nagyszámú memóriacella helyezkedik el; a memóriachipek dekódoló áramkörei választják ki az adott címhez tartozó cellákat.

A processzor a memóriaeléréshez címet ad meg, a tényleges olvasási és írási műveleteket azonban a memóriavezérlő irányítja. A dinamikus RAM-okban az adat eléréséhez először a megfelelő sort kell aktiválni, majd azon belül a megfelelő oszlopot kell kiválasztani. A DRAM-cellák jellemzően sorokba és oszlopokba rendezett mátrixot alkotnak, a sor- és oszlopcímzés pedig a memóriacella kiválasztásának alapja.

A hagyományos DRAM-működésben a sor kiválasztásához a RAS (Row Address Strobe), az oszlop kiválasztásához pedig a CAS (Column Address Strobe) jel kapcsolódik. A RAS először kiválasztja az adott sort, majd a CAS az aktív soron belül kijelöli a megfelelő oszlopot. A modern SDRAM- és DDR SDRAM-memóriákban ezek a fogalmak részben történeti eredetűek, de az időzítések elnevezésében és a memória működésének leírásában továbbra is használatosak.

A memóriaelérés nem történik azonnal: a sor aktiválása, az oszlop kiválasztása, az adat kiolvasása és a következő művelet előkészítése között várakozási idők vannak. Ezeket memória-késleltetéseknek nevezik. A memóriamodulok időzítéseit gyakran több számmal adják meg, például 16-18-18-38 vagy 36-38-38-80 formában.

Az első érték a CAS latency (CL), vagyis az a késleltetés, amely a memóriavezérlő adatkérése és az adat elérhetővé válása között telik el, órajelciklusokban mérve. A további gyakori értékek közé tartozik a tRCD, amely a sor aktiválása és az oszlop elérése közötti időt jelzi; a tRP, amely egy sor lezárásához és egy másik sor előkészítéséhez szükséges idő; valamint a tRAS, amely a sor minimális aktív idejét adja meg.

A RAM teljesítményét ezért nemcsak az órajel vagy az adatátviteli sebesség határozza meg, hanem a késleltetés, a sávszélesség, a memóriacsatornák száma, a memóriavezérlő működése és az adott alkalmazás memóriahasználati mintázata is. Két- vagy többcsatornás memória-architektúrában a rendszer több memóriaútvonalat használhat párhuzamosan, ami növelheti az elérhető memória-sávszélességet.

Két fő típusa Statikus RAM vagy SRAM (angolul: static random-access memory): a memóriacella több tranzisztorból álló bistabil áramkörként tárolja az adatot. Nem igényel periodikus frissítést, ezért gyorsabb hozzáférést tesz lehetővé, ugyanakkor nagyobb helyigényű és drágább, mint a DRAM. Emiatt főként processzor-gyorsítótárakban és más, kis kapacitású, nagy sebességű memóriaterületeken használják. Dinamikus RAM vagy DRAM (angolul: dynamic random-access memory): egy memóriacella jellemzően egy tranzisztorból és egy kondenzátorból áll. Az adatot a kondenzátor töltése reprezentálja, amely idővel csökken, ezért a cellák tartalmát rendszeresen frissíteni kell. A DRAM olcsóbban és nagyobb sűrűségben gyártható, ezért a modern számítógépek főmemóriájának alapvető technológiája. Ennek elterjedt változatai közé tartoznak a DDR SDRAM különböző generációi.

Megbízhatóság és biztonság

A RAM működése során előfordulhatnak memóriahibák, például véletlenszerű bitátfordulások vagy tartósabb hardverhibák. Ezek oka lehet elektromos zaj, feszültségingadozás, hőterhelés, a memóriaelemek öregedése, kozmikus háttérsugárzás, illetve a DRAM-cellák közötti kölcsönhatás. A hibák egy része átmeneti jellegű, más részük pedig ismétlődő vagy tartós hardverhibára utalhat. Nagy megbízhatóságot igénylő rendszerekben, például szerverekben és munkaállomásokban gyakran alkalmaznak ECC memóriát, amely hibajavító kódok segítségével képes bizonyos memóriahibák felismerésére és javítására.

A modern DRAM-ok egyik ismert biztonsági problémája a Rowhammer jelenség. Ennek során egy memóriasor nagyon gyakori aktiválása elektromos kölcsönhatás révén bitátfordulást idézhet elő a szomszédos memóriasorokban. A jelenség azért jelentős, mert megfelelő körülmények között nemcsak adatromláshoz, hanem jogosultságkiterjesztéshez vagy más támadási formákhoz is felhasználható.

Főbb paraméterei

A RAM jellemzésére több műszaki adatot használnak. Ezek közül a legfontosabbak a tárolókapacitás, az adatátviteli sebesség, a sávszélesség, a késleltetés, a modul fizikai kialakítása, valamint az, hogy a memória egy- vagy többcsatornás rendszerben működik-e.

A főbb jellemzők röviden:

Tárolókapacitás: azt jelzi, hogy a memóriamodul mennyi adatot képes tárolni. A kapacitást általában GB-ban adják meg. Adatátviteli sebesség: azt mutatja meg, hogy a memória milyen ütemben képes adatátvitelre. A DDR típusú memóriáknál ezt gyakran MT/s-ban, azaz másodpercenkénti millió adatátvitelben adják meg; ez nem azonos közvetlenül a fizikai órajellel, mert a DDR-technológia az órajel fel- és lefutó élén is továbbít adatot. Sávszélesség: azt fejezi ki, hogy adott idő alatt mennyi adat vihető át a memória és a processzor, illetve a memóriavezérlő között. A sávszélességet befolyásolja a memória-adatút szélessége, az adatátviteli sebesség és a memóriacsatornák száma. Késleltetés: azt jelzi, hogy egy memóriaelérési kérés kiadása után mennyi idő telik el az adat elérhetővé válásáig. A gyakorlatban ezt részben az időzítési értékek, például a CAS latency (CL), a tRCD, a tRP és a tRAS írják le. Fizikai kialakítás: meghatározza, hogy a modul milyen foglalatba illeszthető, és milyen rendszerekben használható. Asztali számítógépekben és szerverekben gyakoriak a DIMM modulok, hordozható számítógépekben pedig a kisebb méretű SO-DIMM modulok; szerverekben emellett regiszteres vagy terheléscsökkentett modulváltozatok is használatosak. Memóriacsatornák száma: két- vagy többcsatornás memória-architektúrában a rendszer több memóriaútvonalat használhat párhuzamosan, ami növelheti a processzor számára elérhető memória-sávszélességet.

A késleltetés különösen olyan alkalmazásoknál lehet jelentős, amelyek gyakori, kis méretű vagy nehezen előrejelezhető memóriaeléréseket végeznek; nagy, folyamatos adatmozgatásnál viszont a sávszélesség válhat meghatározóbb tényezővé. Emiatt két azonos névleges adatátviteli sebességű memóriamodul valós teljesítménye eltérhet, ha az időzítéseik különböznek.

A RAM teljesítményét a gyakorlatban nem egyetlen adat határozza meg. A kapacitás, a sávszélesség, a késleltetés, a memóriacsatornák száma, a memóriavezérlő működése, a gyorsítótár-hierarchia és az adott alkalmazás memóriahasználati mintázata együtt befolyásolja a rendszer teljesítményét.

Főbb memóriagyártók és memóriamodul-márkák

bélyegkép|jobbra|Egy DDR-SDRAM memóriamodul