Pamięć operacyjna

Pamięć operacyjna, pamięć podstawowa, pamięć wewnętrzna (ang. primary storage, internal memory) – pamięć komputerowa adresowana i dostępna bezpośrednio przez procesor, a nie za pośrednictwem urządzeń wejścia-wyjścia. Wyróżnienie to wynika z architektury komputera, ograniczeń technicznych konstrukcji procesora i pamięci komputerowych, a głównie ze znacznych różnic w czasie dostępu do danych w poszczególnych typach pamięci. Większość procesorów wymaga by w pamięci operacyjnej były umieszczone rozkazy procesora (program) dostępne bezpośrednio dla jego jednostek wykonawczych i stąd też nazwa – pamięć operacyjna. Wynika z tego, że jest to każda pamięć, która może być zmapowana w przestrzeń adresową procesora. W architekturze komputera von Neumanna procesor ma jedną przestrzeń adresową pamięci operacyjnej, w której przechowywany jest zarówno program, jak i dane. W architekturze harwardzkiej procesor ma oddzieloną przestrzeń dla programu i dla danych. Konstruowane są także procesory o cechach obu architektur. Obecnie pamięci operacyjne są wyłącznie pamięciami elektronicznymi.

Historia 
Wczesne komputery wykorzystywały linie opóźniające, lampy Williamsa lub obrotowe bębny magnetyczne. W 1954 roku te metody zostały w większości zastąpione pamięcią ferrytową. Pamięć ferrytowa pozostała dominująca do lat 70. XX wieku, kiedy postępy w technologii układów scalonych pozwoliły pamięci półprzewodnikowej stać się ekonomicznie konkurencyjną. Doprowadziło to do nowoczesnej pamięci o dostępie swobodnym (RAM).

Historyczne typy pamięci operacyjnej:
 liczniki i rejestry maszyn do księgowania i fakturowania, np. komputer PARK
 pamięć mechaniczna, np. komputer Z1
 pamięć na przekaźnikach, np. komputer Z3
 pamięci na akustycznych liniach opóźniających
 pamięć na rurach rtęciowych, np. komputer XYZ
 pamięć magnetostrykcyjna, np. komputer ZAM-2
 pamięć bębnowa, np. komputer UMC-1
 pamięć ferrytowa, np. komputer Odra 1305
 pamięć cienkowarstwowa
 pamięć drutowa, np. niektóre minikomputery Mera

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.

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.

Kiedy zapełni się pamięć operacyjna, wtedy wykorzystywana jest pamięć zewnętrzna, 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.

Zobacz też 

 pamięć konwencjonalna

Przypisy 

Pamięci komputerowe