Ogólnie

 

Pamięć komputerowa to różnego rodzaju urządzenia i bloki funkcjonalne komputera, służące do przechowywania danych i programów (systemu operacyjnego oraz aplikacji). Potocznie przez "pamięć komputerową" rozumie się samą pamięć operacyjną.

Podstawowa klasyfikacja pamięci

 

W systemach komputerowych występuje pewna hierarchia rodzajów pamięci, w której na najwyższym poziomie mamy pamięci o wysokim koszcie, niewielkiej pojemności i krótkim czasie dostępu a na najniższym poziomie - pamięci o niższym koszcie, dużej pojemności ale za to długim czasie dostępu. Hierarchia ta obejmuje:

  1. Pamięć rejestrową procesora
    Pamięci rozkazów i danych wewnątrz procesora, niezbędne do jego pracy, pracują z częstotliwością procesora, kilkanaście rejestrów 16 i 32 bitowych stanowiących funkcjonalnie integralną część procesora, do których dostęp odbywa się za pomocą multiplekserów sterowanych przez układ sterujący procesora; jest droga, czas dostępu do niej to ułamki nanosekundy, a jej zawartość istnieje tylko w czasie pracy procesora; pamięć ta jest pamięcią statyczną zbudowaną jako układ przerzutników, która musi być najszybsza w systemie komputerowym, gdyż na jej zawartości procesor wykonuje bezpośrednio operacje arytmetyczne i logiczne.

  2. Pamięć podręczna (cache)
    Szybkie pamięci przyspieszające pracę procesora, jest to kilkaset KB pamięci statycznej o dostępie swobodnym zintegrowane z procesorem. Jej zawartość istnieje tylko w czasie podłączenia zasilania (tj. pracy procesora). W pamięci tej przechowywane są najczęściej używane fragmenty zawartości pamięci operacyjnej. Jest to pamięć droga, czas dostępu do niej wynosi kilka nanosekund i jest wyraźnie krótszy od czasu dostępu do pamięci operacyjnej, co daje wydatne skrócenie cyklu maszynowego.

  3. Pamięć operacyjna RAM (Random Acces Memory)
    Pamięć danych i rozkazów, które są pobierane i zapisywane przez procesor oraz urządzenia wejścia – wyjścia. Pracuje kilka razy wolniej niż procesor. Są to zwykle pamięci typu DRAM – wymagają ciągłego odświeżania, w przypadku braku napięcia informacja w nich zapisana znika. W pamięci RAM przechowywane są aktualnie wykonywane programy i dane dla tych programów, oraz wyniki ich pracy. Zawartość większości pamięci RAM jest tracona w momencie zaniku napięcia zasilania, dlatego wyniki pracy programów muszą być zapisane na jakimś nośniku danych. Jest wykorzystywana jako pamięć operacyjna komputera, pamięć niektórych komponentów, procesorów specjalizowanych komputera (np. kart graficznych, dźwiękowych, itp.).
    Odmiany pamięci RAM:
    • SRAM - statyczna pamięć o dostępie swobodnym, przechowuje dane tak długo, jak długo włączone jest zasilanie, w odróżnieniu od pamięci typu DRAM, która wymaga okresowego odświeżania
    • DRAM - rodzaj pamięci o dostępie swobodnym stosowanej w komputerach jako pamięć operacyjną, która przechowuje każdy bit danych w oddzielnym kondensatorze, wymaga okresowego odświeżania
    • DDR
    • DDR2
    • DDR3

  4. Pamięć operacyjna ROM (Read-Only Memory)
    Zawiera ona stałe dane potrzebne w pracy urządzenia - na przykład procedury startowe komputera, czy próbki przebiegu w cyfrowym generatorze funkcyjnym.
    Z pamięci tej dane można tylko odczytywać. Są w niej przechowywane podstawowe dane, które muszą zostać zachowane, nawet jeśli urządzenie nie jest zasilane.

  5. Pamięć masowa
    Nośniki magnetyczne lub optyczne: dyskietki, dyski twarde, płyty CD ROM. Kilka lub kilkadziesiąt GB pamięci przede wszystkim dyskowej, do której czas dostępu wynosi kilka milisekund; jest tania a jej zawartość jest trwała (nie licząc starzenia się zapisu magnetycznego na dysku). Służy do przechowywania wszystkich stale używanych w danym systemie komputerowym kodów programów i danych.

Organizacja pamięci

 

Organizacją pamięci nazywamy sposób podziału obszaru pamięci na słowa. Podstawowa adresowalna komórka pamięci ma rozmiar jednego bajtu. Dane o rozmiarach przekraczających jeden bajt są przechowywane w kilku kolejnych komórkach, pod kilkoma kolejnymi adresami.

Fizyczna organizacja pamięci współczesnych komputerów jest nieco odmienna od organizacji logicznej. Bajty są pogrupowane w słowa pamięci, których długość jest najczęściej dwukrotnie większa od długości słów danych przetwarzanych przez procesor. Taka konstrukcja pamięci umożliwia zwiększenie jej wydajności poprzez transmitowanie większej porcji danych podczas pojedynczego dostępu.

Współczesne procesory 64-bitowe współpracują z pamięcią o szerokości 128 bitów.

Istnieją dwa sposoby zapisu danej wielobajtowej w pamięci, zwane konwencjami adresowania danych. Nazwy konwencji pochodzą z powieści „Podróże Guliwera”, w której odnosiły się one do dwóch społeczności, różniących się zasadami jedzenia gotowanych jaj.

  • W konwencji Little-Endian adres bajtu odzwierciedla wagę bajtu w liczbie. Jest to konwencja naturalna dla komputera, chociaż dla człowieka na pierwszy rzut oka wydaje się dziwna – jesteśmy przyzwyczajeni do zapisywania liczb począwszy od najbardziej znaczących cyfr.
  • Zapis Big-Endian, naturalny dla człowieka, jest zwykle mniej wygodny dla komputera. Dostęp do danej całkowitoliczbowej w pamięci wymaga zmiany wartości adresu w zależności od długości danej. Jeżeli liczba 32-bitowa zostanie zapisana pod adresem A, to jej wartość w postaci jednobajtowej ma adres A+3.