Pamięć komputerowa

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Ten artykuł dotyczy ogólnie pojętej pamięci komputerowej. Zobacz też: pamięć cyfrowa i pamięć operacyjna.
Karta pamięci do komputera IBM 5150
Różne rodzaje pamięci RAM

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). Jest jednym z najważniejszych elementów komputera[1]. Potocznie pod pojęciem pamięć komputerowa rozumie się samą pamięć operacyjną.

Sposób zapisu danych[edytuj | edytuj kod]

Karta pamięci Emulex Persyst

Współczesne komputery reprezentują dane za pomocą binarnego systemu liczbowego. Każda ich forma (tekst, liczby, obrazy, muzyka itp.) są zamieniane na ciąg bitów – cyfr binarnych – z których każdy przyjmuje wartość 0 lub 1. Informacja może być zapisana przez dany komputer, jeżeli posiada on dostatecznie dużą ilość pamięci, by zmieścić w niej binarną reprezentację tych danych. Najpopularniejszą jednostką pojemności jest bajt, składający się z 8 bitów.

Informacja jest zamieniana na ciąg bitów za pomocą ustalonych standardów kodowania, takich jak kod ASCII, standard MPEG-4 czy format plików graficznych JPEG.

Poprzez dodanie nadmiarowych bitów do każdej jednostki danych (bajta, kilku bajtów itp.), urządzenia zarządzające pamięcią mogą wykryć ewentualne przekłamania powstałe podczas przechowywania i przesyłania informacji między komponentami komputera. Niektóre metody sprawdzania błędów pozwalają tylko na stwierdzenie, czy doszło do jakichś nieoczekiwanych zmian (np. bit parzystości, cykliczny kod nadmiarowy – CRC), natomiast inne mogą w określonych sytuacjach przywrócić poprzednią wartość zmienionych bitów (kodowanie korekcyjne, kod splotowy).

Dane przechowywane w pamięci komputera nierzadko są poddawane kompresji. Skutkuje to możliwością przechowania większej ilości informacji w urządzeniu. Ze względów bezpieczeństwa, niektóre dane (np. numery kart kredytowych) mogą być przechowywane w pamięci w postaci zaszyfrowanej, aby zminimalizować ryzyko przechwycenia ich przez nieuprawnione osoby.

Hierarchia i podział pamięci[edytuj | edytuj kod]

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[2]. 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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

 Osobny artykuł: Rejestr 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[edytuj | edytuj kod]

 Osobny artykuł: 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[edytuj | edytuj kod]

 Osobny artykuł: 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[edytuj | edytuj kod]

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[3]. 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[edytuj | edytuj kod]

Moduł pamięci RAM DDR

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ść[edytuj | edytuj kod]

Pamięć nieulotna przechowuje dane nawet wtedy, kiedy nie jest podłączona do zasilania[4], 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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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ść[edytuj | edytuj kod]

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ść[edytuj | edytuj kod]

Czas oczekiwania (ang. latency)
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[4]).
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

Nośniki pamięci[edytuj | edytuj kod]

Pamięć bębnowa w muzeum Politechniki Moskiewskiej

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

Nośniki magnetyczne[edytuj | edytuj kod]

 Osobny artykuł: Nośnik magnetyczny.

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 (wypierane przez karty czipowe). Dawniej jako pamięć operacyjną stosowaną pamięć bębnową.

Nośniki półprzewodnikowe[edytuj | edytuj kod]

 Osobny artykuł: Pamięć półprzewodnikowa.

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 także 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[5][6][7][8].

Nośniki optyczne[edytuj | edytuj kod]

 Osobny artykuł: Dysk optyczny.

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[9]:

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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

Parametry pamięci[edytuj | edytuj kod]

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 CAS (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).

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. David A. Patterson, John L. Hennessy: Computer Organization and Design: The Hardware/Software Interface. Wyd. trzecie. Amsterdam: Morgan Kaufmann Publishers, 2005. ISBN 1-55860-604-1. OCLC 56213091.
  2. Marek Tudruj, Hierarchia pamięci w komputerze, edux.pjwstk.edu.pl [dostęp 2018-05-25].
  3. Jeffrey S. Vitter: Algorithms and Data Structures for External Memory. Hanover: Now Publishers, 2008. ISBN 978-1-60198-106-6.
  4. a b Sparsh Mittal, Jeffrey Vetter, A Survey of Software Techniques for Using Non-Volatile Memories for Storage and Main Memory Systems, researchgate.net, 2015 [dostęp 2018-06-26].
  5. Mark Hachman, New Samsung Notebook Replaces Hard Drive With Flash, extremetech.com, 23 maja 2006 [dostęp 2018-06-26].
  6. Walaika Haskins, Toshiba Tosses Hat Into Notebook Flash Storage Ring, technewsworld.com, 10 grudnia 2007 [dostęp 2018-06-26].
  7. Mac Pro – Storage and RAID options for your Mac Pro, apple.com, 27 lipca 2006 [zarchiwizowane z adresu 2013-06-06].
  8. MacBook Air Replaces the Standard Notebook Hard Disk for Solid State Flash Storage, apple.com, 15 listopada 2010 [zarchiwizowane z adresu 2011-08-23].
  9. Jim Taylor, DVD FAQ, dvddemystified.com, 13 lipca 2009 [zarchiwizowane z adresu 2009-08-22].