
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. 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).
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 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.
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.
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ó.
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:
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.

A RAM-piacon érdemes különbséget tenni a memóriachipeket gyártó félvezetőipari vállalatok és a végfelhasználói memóriamodulokat forgalmazó márkák között. Egy memóriamodul gyakran nem ugyanattól a vállalattól származó chipeket használ, mint amelynek a márkaneve a modulon szerepel.