Pamięć (RAM)
Pamięć komputera, popularnie nazywana RAM (random-access memory), to miejsce składowania danych na których pracuje procesor. Domyślnie mówiąc o pamięci, mamy na myśli pamięć główną dla odróżnienia od cache, czyli pamięci podręcznej. Używa się również określenia pamięć operacyjna. Rozmiar pamięci (pojemność) najczęściej jest podawany w GB (gigabajtach), chociaż zwykle w tym kontekście chodzi o GiB (gibibajty, ) czyli dokładną potęgę liczby dwa. Fizycznie pamięć jest wpięta do płyty głównej w formie jednego lub kilku modułów (tzw. kości).
Pamięć należy sobie wyobrażać jako tablicę bajtów w języku C, czyli jeden spójny obszar podzielony na komórki, w którym każda komórka pamięci przechowuje pojedynczy bajt danych. Dokładnie w ten sposób jest ona dostępna dla procesora. CPU odwołuje się do pamięci przez podanie adresu, czyli numeru interesującej go komórki (jej "indeksu" w tablicy). Adresacja pamięci jest wykonywana przy użyciu pojedynczego rejestru, co we współczesnej architekturze 64-bitowej (x86-64) daje bardzo duży możliwy zakres. Dawna architektura 32-bitowa (x86, dokładniej x86-32) niosła za sobą ograniczenie do adresów, co pozwalało maksymalnie korzystać tylko z 4 GiB pamięci (niezależnie od fizycznej pojemności kości pamięci).
Każda komórka RAM jest równie dostępna i ma taki sam czas dostępu, co oznacza, że procesor może odczytywać lub zapisywać dane w dowolnym miejscu pamięci z podobną prędkością. To właśnie tę jednolitość i swobodę dostępu do danych oznacza "random-access" w skrótowcu RAM; z tej racji używa się również sformułowania pamięć o dostępie swobodnym. Czas dostępu do pojedynczej komórki jest stosunkowo szybki, ale jednak wolny w porównaniu do prędkości działania procesora. To właśnie dlatego CPU zostały wyposażone w pamięć podręczną cache), której celem jest przyspieszenie dostępu do danych.
Niejednolity czas dostępu do pamięci
W przypadku pracy na bardziej wydajnym komputerze, o dużej liczbie rdzeni, efekt jednolitego czasu dostępu może zostać zaburzony przez mechanizm NUMA.
Pamięć RAM służy tylko do przechowywania danych, natomiast obliczenia wykonuje CPU. Wszystkie wartości, które w niej się znajdują są skutkiem wykonywania przez procesor zadanych przez program instrukcji maszynowych. Instrukcja odczytu pozwala na załadowanie wskazanej komórki z pamięci do rejestru procesora, gdzie pobrana wartość może zostać dalej przetworzona. Z kolei instrukcja zapisu pozwala na zapisanie wartości z rejestru do wybranej komórki RAM. Mimo, że adresacja pamięci odbywa się na poziomie bajtów, różne instrukcje mogą pobrać lub zapisać za jednym razem 1, 2, 4, lub 8 bajtów (co odpowiada pełnemu rozmiarowi standardowego rejestru 64-bitowego), a nawet 16, 32, lub 64 bajty (w przypadku pracy na rejestrach wektorowych odpowiednio 128-, 256-, lub 512-bitowych).
Pamięć RAM jest miejscem tymczasowego przechowywania danych w trakcie pracy komputera – jej zawartość zostaje usunięte w momencie odłączenia zasilania. Z tego względu jest określana jako pamięć ulotna (volatile).
Pamięć typu trwałego (non-volatile)
Istnieją eksperymentalne technologie, takie jak Intel Optane, które stanowią rodzaj połączenia między pamięcią RAM a tradycyjnymi nośnikami danych, takimi jak dyski twarde. Jest to tzw. pamięć nieulotna (non-volatile), co oznacza, że jest w stanie zachować dane nawet po wyłączeniu zasilania. Jednocześnie umożliwia ona dostęp do danych z większą przepustowością niż tradycyjne dyski (choć nieco mniejszą niż pamięć ulotna RAM).
Chociaż te technologie nie są jeszcze tak popularne jak standardowe pamięci RAM, rozwijają się i w przyszłości mogą stać się coraz bardziej istotnymi elementami architektury komputerowej.