Pamięć komputerowa

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.

Wprowadzenie 

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 

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 

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 

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łaśnie w nich 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.

Nośniki tego rodzaju pamięci są zazwyczaj formatowane, tak by uzyskać pewną warstwę abstrakcji, potrzebną do uporządkowania danych w pliki i katalogi, a także pozwalającą dodać do nich metadane opisujące m.in. właściciela pliku, prawa dostępu, czas utworzenia itp.

Pamięć zewnętrzna jest także wykorzystywana w momencie, kiedy zapełni się pamięć operacyjna, do chwilowego zwalniania, nieużywanych w danym momencie, jej obszarów (partycja wymiany, plik wymiany). W momencie, kiedy występuje potrzeba przenoszenia zawartości RAM-u na dysk, obniża się ogólna wydajność komputera.

Cechy pamięci komputerowej 

Technologie pamięci na różnych poziomach hierarchii mają zazwyczaj pewne charakterystyczne cechy, takie jak: ulotność, możliwość zapisu, sposób dostępu, sposób adresowania. Ponadto, można także określić, niezależnie od rodzaju pamięci, jej pojemność i wydajność.

Ulotność 
Pamięć nieulotna przechowuje dane nawet wtedy, kiedy nie jest podłączona do zasilania, dzięki temu nadaje się do przechowywania informacji przez dłuższy czas. Pamięć ulotna natomiast wymaga stałego zasilania, by zachowywać dane. Zazwyczaj najszybsze rodzaje pamięci są właśnie ulotne. Ponieważ pamięć operacyjna musi być szybka, składa się z ulotnych nośników.

Pamięć ulotna może być statyczna lub dynamiczna. Pamięci dynamiczne wymagają okresowego odświeżania poszczególnych komórek, które polega na odczytaniu wartości i zapisaniu jej pod tym samym adresem. Nieodświeżana pamięć dynamiczna w krótkim czasie utraci wszystkie dane. W przeciwieństwie do nich, pamięć statyczna nie wymaga odświeżania, ale jest droższa i zajmuje większą powierzchnię.

Możliwość zapisu 
 Pamięć tylko do odczytu
 Dane do tego rodzaju pamięci można zapisać jednokrotnie (podczas produkcji albo przy pierwszym użyciu), przykładami są CD-ROM i CD-R.
 Pamięć do zapisu i odczytu
 Pozwala na zmianę zawartości w dowolnym momencie. Jest to najczęściej używany rodzaj pamięci, np. w dyskach twardych. Bez możliwości zapisu danych komputery nie mogłyby wykonywać wielu ze swoich zadań.
 Pamięć z powolnym zapisem
 Ten rodzaj pamięci umożliwia nadpisanie znajdujących się w niej danych, jednak zapis trwa dłużej niż odczyt. Przykładem jest CD-RW.

Sposób dostępu 
 Dostęp swobodny
 Czas dostępu do dowolnej komórki pamięci jest podobny. Większość pamięci półprzewodnikowych umożliwia dostęp swobodny.
 Dostęp sekwencyjny
 Czas dostępu do danej komórki jest uzależniony od tego, która komórka była używana wcześniej. Dostęp sekwencyjny jest charakterystyczny np. dla dysków optycznych.

Sposób adresowania 
 Adresowanie komórek
 Każda pojedyncza komórka ma przyporządkowany adres. Ta metoda jest wykorzystywana do adresowania pamięci operacyjnej.
 Adresowanie plików
 Dane są podzielone na pliki i katalogi, posiadające unikatową nazwę. System plików jest odpowiedzialny za przekształcenie nazw plików na adresy danych na nośniku. Wykorzystywany w pamięci zewnętrznej.
 Adresowanie zawartości
 Każda jednostka pamięci jest adresowana w oparciu o to, co się w niej znajduje. Ta metoda może być zaimplementowana programowo lub sprzętowo. Sprzętowe adresowanie zawartości jest używane w pamięci podręcznej procesora.

Pojemność 
 Pojemność
 Maksymalna ilość informacji, którą dane urządzenie może przechować. Wyrażana w wielokrotnościach bitów i bajtów (np. 8 kilobitów, 100 megabajtów)
 Gęstość zapisu
 Ilość informacji zapisywanych na jednostce powierzchni lub w jednostce objętości (np. 10 Mb/cm² lub 32 kB/mm²)

Wydajność 
 Czas dostępu
 Czas potrzebny na dostęp do pojedynczej lokalizacji w pamięci, zazwyczaj wyrażany w nanosekundach dla pamięci wewnętrznej i w milisekundach dla zewnętrznej. Może być różny dla odczytu i zapisu (szczególnie w przypadku pamięci nieulotnej).
 Przepustowość
 Szybkość, z jaką dane mogą być odczytywane lub zapisywane do pamięci, wyrażana zwykle w wielokrotnościach bitów na sekundę (b/s lub bps). Podobnie, jak w przypadku czasu oczekiwania, może być różna dla zapisu i odczytu. Zazwyczaj maksymalna przepustowość jest osiągana przy dostępie sekwencyjnym.
 Niezawodność
 Prawdopodobieństwo przekłamania bitów w pamięci

Parametry pamięci 
Zestawienie alfabetyczne podstawowych parametrów pamięci z pominięciem rozróżnienia na typ i rodzaj pamięci:
 czas cyklu (ang. cycle time) – najkrótszy czas jaki musi upłynąć pomiędzy dwoma żądaniami dostępu do pamięci,
 czas dostępu (ang. access time),
 czas oczekiwania (ang. CAS latency)
 gęstość zapisu (ang. computer storage density) – ilości informacji, jaką można zapisać na określonej długości ścieżki,
 ilość, pojemność, wielkość – liczba danych jaką może przechować pamięć, w zależności od rodzaju i przeznaczenia wyrażana w bitach lub bajtach,
 liczba cylindrów, ścieżek na każdej powierzchni roboczej dysku (zob. CHS),
 liczba głowic odczytu/zapisu – od kilkunastu do kilkudziesięciu,
 pobór mocy – podawany w watach,
 prędkość obrotowa dysku – parametr dysków twardych (ang. hard drive) wyrażany w liczbie obrotów na minutę,
 średni czas dostępu (ang. average access time) – średni czas po jakim urządzenie udostępnia dane, dla dysków jest sumą średniego czasu poszukiwania (ang. average seek time) potrzebnego do umieszczenia głowicy w wybranym cylindrze oraz, opóźnienia rotacyjnego potrzebnego do umieszczenia głowicy nad odpowiednim sektorem (ang. rotational latency)
 szybkość transmisji (ang. transfer speed) – liczbą bitów (bajtów) jaką można przesłać w jednostce czasu pomiędzy pamięcią a innym urządzeniem,
 zasilanie – wyrażane w woltach (V).

Nośniki pamięci 

Współcześnie, najpopularniejszymi nośnikami pamięci są nośniki magnetyczne, półprzewodnikowe i optyczne.

Nośniki magnetyczne 

Nośniki magnetyczne zapisują dane jako polaryzację magnetyczną cząsteczek na powierzchni substancji ferromagnetycznej. Pamięć magnetyczna jest nieulotna. Ze względu na to, że dane z nośnika są odczytywane przez specjalną głowicę, urządzenie pamięci musi być wyposażone w układ poruszający powierzchnią zawierającą dane. Do najpopularniejszych nośników magnetycznych należą dysk twardy, dyskietka i karta magnetyczna (wypierana przez karte czipową). Dawniej jako pamięć operacyjną stosowano pamięć bębnową.

Nośniki półprzewodnikowe 

Pamięć półprzewodnikowa wykorzystuje układy scalone oparte na krzemie do przechowywania informacji. Zawierają miliony lub miliardy małych tranzystorów albo kondensatorów. Istnieją zarówno pamięci półprzewodnikowe ulotne, jak i nieulotne. Pamięć wewnętrzna praktycznie w całości składa się z nośników półprzewodnikowych. Bardzo popularna jest pamięć flash wykorzystywana chociażby w pendrive'ach i kartach pamięci.

Od około 2006 roku producenci laptopów i komputerów osobistych montują w swoich produktach dyski półprzewodnikowe (SSD) jako główny bądź dodatkowy nośnik danych.

Nośniki optyczne 

Nośniki optyczne przechowują informacje na powierzchni plastikowych krążków w postaci punktów odbijających światło lepiej i gorzej uformowanych w długą spiralę. Odczyt jest dokonywany przez wiązkę lasera wysyłaną przez diodę znajdującą się w stacji dysków. Istnieją nośniki optyczne do jedno- jak i wielokrotnego zapisu. W użyciu są następujące rodzaje nośników optycznych:
 CD, CD-ROM, DVD-ROM, BD-ROM: Nośniki tylko do odczytu, używane do masowej dystrybucji danych (muzyki, filmów, programów komputerowych).
 CD-R, DVD-R, DVD+R, BD-R: Nośniki do zapisu jednokrotnego.
 CD-RW, DVD-RW, DVD+RW, DVD-RAM, BD-RE: Nośniki do zapisu wielokrotnego, ale zapis jest wolniejszy od odczytu.
 Ultra Density Optical (UDO)
 HD DVD
 DMD
 EVD
 HVD

Dyski magnetooptyczne są odmianą nośników optycznych, gdzie dane zapisywane są na ferromagnetycznej powierzchni po przyłożeniu pola magnetycznego i skierowaniu lasera na odpowiedni punkt.

Nośniki papierowe 
Nośniki papierowe, głównie w formie kart dziurkowanych, były używane do przechowywania danych i programów w początkowym etapie rozwoju komputerów. Informacja była reprezentowana jako układ otworów na kawałku tektury i odczytywana optycznie. Współczesnymi nośnikami papierowymi są kody kreskowe i kody QR.

Inne nośniki 
 Nośnik polimerowy
 Dane zapisywane są jako układ zagłębień na powierzchni polimeru, ten rodzaj pamięci charakteryzuje się wysoką gęstością zapisu, np. Millipede
 Nośnik z linią opóźniającą
 Informacja jest zamieniana na falę akustyczną przez nadajnik, a następnie dźwięk jest odbierany przez odbiornik i cyfrowy sygnał trafia z powrotem do nadajnika, np. pamięć rtęciowa

Zobacz też 

 pamięć wirtualna
 stronicowanie pamięci
 pamięć podręczna (cache)
 pamięć analogowa
 kontroler pamięci

Przypisy