Pamięć komputerowa – w informatyce, w szerszym znaczeniu pamięć oznacza wszelkie urządzenia lub elementy urządzeń, które są używane do przechowywania informacji używanej przez komputery i inne urządzenia cyfrowe. W węższym znaczeniu oznacza moduły komputera, służące do przechowywania danych i programów. Pamięć i procesor są głównymi elementami architektury komputera. thumb|upright=2.0|Pamięci komputerowe
Wprowadzenie thumb|Karta pamięci Emulex Persyst Współczesne komputery są sekwencyjnymi układami cyfrowymi, stanom ich elementów można przyporządkować liczby. Większość podstawowych elementów układów może przyjmować 2 stabilne stany, naturalnie odpowiada im dwójkowy system liczbowy. Każdy element, którego stan wewnętrzny może być odczytany, a stan ten może być ustawiony i jest przechowany w elemencie, pomimo zmian sygnałów wejściowych jest elementem sekwencyjnym. Układy o takich cechach, przeznaczone do przechowywania informacji nazywane są pamięcią komputerową.
Podział pamięci Ze względu na sposób wymiany informacji między urządzeniem pamięci a procesorem wyróżnia się pamięć wewnętrzną, zwaną podstawową, oraz pamięć zewnętrzną.
Pamięć podstawowa
Pamięć podstawowa (ang. primary storage) znana również jako pamięć wewnętrzna, często określana po prostu jako pamięć, jest jedyną bezpośrednio dostępną dla procesora. Procesor czyta instrukcje tam przechowywane i wykonuje je zgodnie z wymaganiami. Wszelkie aktywowane dane są tam również przechowywane w jednolity sposób.
Pamięć główna (RAM) jest bezpośrednio lub pośrednio połączona z centralną jednostką przetwarzania za pośrednictwem magistrali komunikacyjnej, w której wyróżnia się szynę adresową, szynę danych i szynę sterującą. W najprostszym, tradycyjnym cyklu odczytu pamięci CPU najpierw ustawia szynę adresową, tak by wskazywała żądaną lokalizację danych w pamięci. Pamięć ustawia na szynie danych liczbę zapisaną we wskazanej komórce, procesor odczytuje szynę danych i przekazuje te dane do swoich rejestrów. W trakcie cyklu odczytu bądź zapisu do pamięci procesor przekazuje informacje o wykonywanej operacji na szynie sterującej. W zaawansowanych konstrukcjach cykl odczytu i zapisu do pamięci jest znacznie bardziej skomplikowany, a teoretyczny układ szyn nie odpowiada ich fizycznemu układowi.
Oprócz pamięci głównej o dużej pojemności istnieją jeszcze dwie podwarstwy pamięci podstawowej: Rejestry procesora znajdują się wewnątrz procesora. Każdy rejestr zwykle zawiera słowo danych (często 32 lub 64 bity). Instrukcje procesora nakazują jednostce arytmetyczno-logicznej wykonywanie różnych obliczeń lub innych operacji na tych danych (lub za jego pomocą). Rejestry są najszybszymi ze wszystkich form przechowywania danych komputerowych. Pamięć podręczna procesora jest pośrednim etapem między ultraszybkimi rejestrami i znacznie wolniejszą pamięcią RAM. Została wprowadzona wyłącznie w celu poprawy wydajności komputerów. Najczęściej używane informacje w pamięci głównej są po prostu powielane w pamięci podręcznej, która jest szybsza, ale o znacznie mniejszej pojemności. Z drugiej strony pamięć główna jest znacznie wolniejsza, ale ma znacznie większą pojemność niż rejestry procesorów. Wielopoziomowa hierarchiczna konfiguracja pamięci podręcznej jest również powszechnie używana – podstawowa pamięć podręczna jest najmniejsza, najszybsza i znajduje się wewnątrz procesora; dodatkowa pamięć podręczna jest nieco większa i wolniejsza.
Pamięć dodatkowa
thumb|Dyski twarde w różnych rozmiarach Pamięć dodatkowa (ang. secondary storage) znana również jako pamięć zewnętrzna różni się od pamięci operacyjnej tym, że nie jest bezpośrednio dostępna przez procesor. Komputer zwykle korzysta z kanałów wejścia/wyjścia w celu uzyskania dostępu do pamięci dodatkowej i przesyłania żądanych danych przy użyciu buforów w pamięci operacyjnej. Pamięć dodatkowa przechowuje dane nawet, gdy urządzenie jest wyłączone. W przeliczeniu na jednostkę zazwyczaj jest to również o dwa rzędy wielkości tańsze rozwiązanie niż pamięć operacyjna. Współczesne systemy komputerowe mają zwykle również o dwa rzędy wielkości więcej pamięci dodatkowej niż pamięci operacyjnej, a dane w niej przechowywane są przez dłuższy czas.
W nowoczesnych komputerach dyski twarde są zwykle używane jako pamięć dodatkowa. Czas potrzebny do uzyskania dostępu do danego bajtu informacji przechowywanych na dysku twardym wynosi zwykle kilka tysięcznych sekundy, czyli milisekund. Natomiast czas potrzebny do uzyskania dostępu do danego bajtu informacji przechowywanych w pamięci o dostępie swobodnym jest mierzony w miliardowych częściach sekundy, czyli nanosekundach. Obrazuje to istotną różnicę czasu dostępu, która odróżnia pamięć półprzewodnikową od obrotowych magnetycznych urządzeń pamięciowych. Różnica ta jest jednak wielokrotnie mniejsza, jeśli weźmie się pod uwagę nowoczesne dyski SSD.
Pamięć trzeciorzędna thumb|200px|Wielka biblioteka taśm z automatycznym podajnikiem Pamięć trzeciorzędna (ang. tertiary storage) zapewnia trzeci poziom pamięci komputerowej. Zazwyczaj obejmuje to zrobotyzowany mechanizm, który montuje i odmontowuje wyjmowalne nośniki pamięci masowej z urządzenia magazynującego, zgodnie z wymaganiami systemu; takie dane są często przed użyciem kopiowane wpierw do pamięci dodatkowej. Pamięć trzeciorzędna jest używana przede wszystkim do archiwizowania rzadko używanych informacji, ponieważ jest znacznie wolniejsza niż pamięć dodatkowa (czas dostępu rzędu 5–60 sekund w porównaniu do 1-10 milisekund). Jest to szczególnie użyteczne w przypadku wyjątkowo dużych magazynów danych, do których można uzyskać dostęp bez udziału pracowników obsługi technicznej. Kiedy komputer potrzebuje odczytać informacje z trzeciorzędnej pamięci, najpierw przejdzie do bazy danych katalogu, aby ustalić, która taśma lub dysk zawiera informacje.
Pamięć off-line Pamięć w trybie off-line (ang. off-line storage) to przechowywanie danych na nośniku lub urządzeniu, które nie jest kontrolowane przez jednostkę przetwarzającą. Nośnik jest nagrywany, zwykle na drugim lub trzecim urządzeniu pamięci masowej, a następnie fizycznie usuwany lub odłączany. Musi zostać włożony lub podłączony przez człowieka, zanim komputer będzie mógł ponownie uzyskać do niego dostęp. W przeciwieństwie do trzeciorzędnej pamięci, nie można uzyskać do niej dostępu bez interakcji człowieka.
Przechowywanie danych w trybie off-line służy do fizycznego przesyłania informacji, ponieważ odłączony nośnik można łatwo przetransportować. Dodatkowo w przypadku katastrofy, na przykład pożaru, zniszczenie oryginalnych danych nie będzie miało wpływu na nośnik znajdujący się w zdalnej lokalizacji, umożliwiając odtworzenie po awarii. Pamięć masowa w trybie off-line zwiększa ogólne bezpieczeństwo informacji, ponieważ jest fizycznie niedostępna z komputera, a techniki ataków komputerowych nie mogą mieć wpływu na poufność ani integralność danych. Ponadto, jeśli rzadko uzyskuje się dostęp do informacji przechowywanych w celach archiwalnych, przechowywanie w trybie off-line jest tańsze niż przechowywanie trzeciorzędne.
W nowoczesnych komputerach osobistych większość drugorzędnych i trzeciorzędnych nośników pamięci jest również używana do przechowywania w trybie off-line. Najpopularniejszymi nośnikami są dyski optyczne i urządzenia z pamięcią flash, w znacznie mniejszym stopniu wymienne twarde dyski. W przedsiębiorstwach często stosowane są taśmy magnetyczne. Starsze przykłady to dyskietki, dyskietki Zip lub karty dziurkowane.
Hierarchia thumb|upright=0.5|Moduł pamięci RAM (typu SDR SDRAM) Koszt pamięci jest zazwyczaj związany z szybkością dostępu do danych zgromadzonych w danym rodzaju pamięci – im szybsza pamięć, tym jest droższa. Dlatego stosowane są różne techniki przenoszenia danych pomiędzy różnego typu pamięciami, aby zapewnić możliwie krótki czas dostępu do najbardziej potrzebnych danych przy ograniczonych zasobach najszybszych pamięci. Dane aktualnie używane są trzymane w szybszej pamięci, natomiast te aktualnie niepotrzebne w wolniejszej. Ponieważ różnice w czasie dostępu między kolejnymi poziomami są często rzędu 10:1, dobre wykorzystanie właściwości pamięci podręcznej (cache) ma zazwyczaj większe znaczenie niż liczba cykli procesora koniecznych do wykonania algorytmu. Zasada przenoszenia mniej potrzebnych danych do wolniejszej pamięci jest podstawą funkcjonowania pamięci wirtualnej komputera oraz stronicowania pamięci.
Klasyczne rodzaje pamięci używane w komputerach PC (uszeregowane od najszybszej): rejestry procesora pamięć podręczna procesora pamięć RAM dyski półprzewodnikowe (SSD) dyski twarde (HDD)
Pamięć wewnętrzna Pamięć tego typu jest jedyną dostępną bezpośrednio dla procesora. To z niej są odczytywane programy oraz dane, na których one operują. Procesor odczytuje instrukcje przechowywane w pamięci wewnętrznej, a następnie je wykonuje.
Pamięć wewnętrzna jest pamięcią ulotną, ponieważ jej zadaniem jest przechowywanie danych potrzebnych podczas pracy komputera.
We współczesnych komputerach ten rodzaj pamięci występuje zarówno wewnątrz procesora, jak i na płycie głównej.
Rejestry procesora
Są one najszybszą forma pamięci komputerowej, a jednocześnie najmniejsza pod względem pojemności. Znajdują się wewnątrz procesora, zazwyczaj jest ich kilkanaście. We współczesnych jednostkach pojedynczy rejestr ma rozmiar 32 lub 64 bitów. To w nich właśnie znajdują się dane, na których procesor może wykonywać jakiekolwiek operacje. Dane w rejestrach są przechowywane tylko w momencie, kiedy są potrzebne, a następnie, po wykonaniu obliczeń, trafiają do pamięci RAM.
Pamięć podręczna procesora
Pamięć podręczna jest nieco wolniejsza, ale też większa niż rejestry. Przyspiesza dostęp do danych zawartych w pamięci RAM, ponieważ przechowuje informacje, do których w niedalekiej przyszłości program może żądać dostępu. Cechuje ją budowa kilkupoziomowa (najczęściej występują trzy lub cztery poziomy). Ten rodzaj pamięci także znajduje się wewnątrz procesora. Rozmiar pamięci podręcznej rzadko przekracza kilkanaście megabajtów.
Pamięć RAM
Znajduje się na płycie głównej, jej rozmiar to zazwyczaj kilka-kilkanaście gigabajtów. Jest połączona z procesorem dedykowaną magistralą (właściwie – dwoma magistralami: adresową i danych). Ponieważ pamięć RAM jest ulotna, to w momencie włączenia komputera zawiera losowe informacje. Dane do niej są ładowane z dysku twardego lub innego trwałego nośnika. Czas dostępu do pamięci RAM wynosi zazwyczaj kilkadziesiąt do kilkuset nanosekund.
Pamięć zewnętrzna
Pamięć zewnętrzna nie jest bezpośrednio dostępna dla procesora. Składają się na nią dyski znajdujące się fizycznie wewnątrz komputera, jak i nośniki podłączane przez odpowiednie gniazda (zazwyczaj USB). Każde żądanie odczytu danych z tego rodzaju nośników powoduje ich przesłanie do określonego bloku pamięci RAM, skąd mogą być pobrane i wykorzystane do obliczeń. Urządzenia tego typu mają dużo większą pojemność (liczoną zwykle w setkach gigabajtów albo w terabajtach) niż pamięć wewnętrzna, a koszt ich produkcji jest niższy. Wiąże się to z dłuższym czasem dostępu.
Najczęściej spotykanym we współczesnych komputerach rodzajem pamięci zewnętrznej są dyski twarde oraz półprzewodnikowe. Czas dostępu do danych zgromadzonych na dysku twardym to zazwyczaj kilka milisekund, około 100 tysięcy razy dłuższy niż do pamięci RAM. Dyski optyczne, takie jak CD czy DVD charakteryzuje jeszcze dłuższy czas oczekiwania na pobranie danych.
Do kategorii pamięci zewnętrznej należą także nośniki flash, dyskietki, karty perforowane.
Próba dostępu do danych leżących obok siebie na nośniku mechanicznym jest dużo szybsza od dostępu losowego. Dlatego opracowano techniki optymalnego rozkładania danych w takich rodzajach pamięci. Inną metodą na redukcję wąskiego gardła, jakim jest odczyt informacji z pamięci zewnętrznej, jest połączenie kilku nośników i równoległy odczyt porcji danych z każdego z nich.