RAM (ang. Random Access Memory - pamięć o dostępie swobodnym) - podstawowy rodzaj pamięci cyfrowej. Choć nazwa sugeruje, że oznacza to każdą pamięć o bezpośrednim dostępie do dowolnej komórki pamięci (w przeciwieństwie do pamięci o dostępie sekwencyjnym, np. rejestrów przesuwnych), ze względów historycznych określa ona tylko te rodzaje pamięci o bezpośrednim dostępie, w których możliwy jest wielokrotny i łatwy zapis, a wyklucza pamięci ROM (tylko do odczytu) i EEPROM których zapis trwa znacznie dłużej niż odczyt, pomimo iż w ich przypadku również występuje swobodny dostęp do zawartości.
W pamięci RAM przechowywane są aktualnie wykonywane programy i dane dla tych programów oraz wyniki ich pracy. W temperaturze pokojowej zawartość większości pamięci RAM jest tracona w czasie mniejszym niż sekunda po zaniku napięcia zasilania, niektóre typy wymagają także odświeżania, dlatego wyniki pracy programów, wymagające trwałego przechowania, muszą być zapisane na innym nośniku danych.
Pamięci RAM dzieli się na pamięci statyczne (ang. Static RAM, w skrócie SRAM) oraz pamięci dynamiczne (ang. Dynamic RAM, w skrócie DRAM). Pamięci statyczne są szybsze od pamięci dynamicznych, które wymagają ponadto częstego odświeżania, bez którego szybko tracą swoją zawartość. Pomimo swoich zalet są one jednak dużo droższe; używane są w układach, gdzie wymagana jest duża szybkość (np. pamięć podręczna procesora lub ilość pamięci jest niewielka, że nie opłaca się konstruować układu odświeżania (np. proste mikrokontrolery). W komputerach wymagających dużej ilości pamięci jako pamięć operacyjną używa się pamięci DRAM.
Są najbardziej znanym rodzajem pamięci półprzewodnikowych, ponieważ to właśnie te pamięci są powszechnie stosowane jako pamięci operacyjne komputerów. Komórka pamięci dynamicznej (omawiana w poprzednim wykładzie) jest bardzo prosta i zajmuje małą powierzchnię, dlatego najlepiej nadaje się do budowy pamięci o dużej pojemności. Jednak prosta zasada działania (pamiętanie stanu logicznego "1" lub "0" w postaci ładunku w pojemności lub jego braku) jest trudna do praktycznego wykorzystania. Problem stwarza zjawisko podziału ładunku występujące podczas odczytu. Pojemność pasożytnicza linii bitu, do której dołączone jest bardzo wiele komórek pamięci, jest wielokrotnie większa od pojemności kondensatora C w pojedynczej komórce. W rezultacie przy odczycie jedynki odczytywane z komórki pamięci napięcie jest wielokrotnie mniejsze od napięcia UDD. Typowa wartość odczytywanego napięcia jedynki to kilkadziesiąt mV. Po odczycie napięcie na kondensatorze pozostaje na tym poziomie, toteż następny odczyt jedynki nie jest już możliwy. Wynika z tego, że:
- odczyt wymaga zastosowania wzmacniacza regenerującego właściwy poziom logiczny
- po odczycie konieczne jest odświeżenie zawartości komórki przez ponowny zapis do niej odczytanego stanu logicznego.
Dlatego układy zapisu/odczytu dla pamięci dynamicznych są dużo bardziej skomplikowane, niż w przypadku pamięci statycznych. Wykorzystuje się w nich zasadę wstępnego ładowania, znaną nam już z bramek dynamicznych typu DOMINO, ale tutaj wykorzystaną w nieco inny sposób.