Podstawowe wiadomości o pamięci

  25 lipiec 2010
Oceń ten artykuł
(0 głosów)

Pamięć stanowi przestrzeń roboczą procesora. Pełni ona rolę tymczasowego miejsca przechowywania, w którym muszą być umieszczone programy i dane przetwarzane w danej chwili przez procesor. Tymczasowy charakter nośnika, jakim jest pamięć, wynika stąd, że dane i programy znajdują się w niej tylko wtedy, gdy komputer jest podłączony do zasilania.

W związku z tym przed wyłączeniem lub zrestartowaniem komputera wszystkie zmodyfikowane dane należy zapisać na trwałym nośniku (zazwyczaj dysku twardym). Dzięki temu w przyszłości dane będą mogły zostać ponownie załadowane do pamięci.

Przez lata definicja pamięci RAM zmieniła się z objaśnienia skrótu do pojęcia, które określa ją jako podstawową przestrzeń roboczą, w której procesor uruchamia programy i która zazwyczaj jest zbudowana z typu układów pamięci o nazwie dynamicznej pamięci RAM (DRAM Dynamic RAM). Jedną z charakterystycznych cech układów DRAM (a zatem ogólnie pojmowanej pamięci RAM) jest to, że przechowują dane w sposób dynamiczny, co tak naprawdę jest dwuznaczne. Po pierwsze, informacja może być wielokrotnie i w dowolnej chwili zapisywana. Po drugie, dane zawarte w pamięci DRAM muszą być odświeżane (a właściwie ponownie zapisywane), co około 15 ms (milisekund). W przypadku innego typu pamięci RAM, określanego mianem statycznej pamięci RAM (SRAM Static RAM), okresowe odświeżanie nie jest konieczne. Istotną informacją dotyczącą wszystkich typów pamięci RAM jest to, że dane są w niej przechowywane tylko wtedy, gdy doprowadzone jest napięcie zasilające.

Pojęcie RAM może odnosić się zarówno do fizycznych układów, z których jest zbudowana pamięć systemowa, jak i do logicznej struktury i mapowania pamięci. Logiczna struktura i mapowanie pamięci pozwalają określić sposób, w jaki adresy pamięci są mapowane na adresy fizyczne układów pamięci oraz adresy komórek zawierających określony typ danych systemowych.

Uruchomienie programu powoduje załadowanie jego plików do pamięci RAM. Tak długo, jak program jest aktywny, tak długo jego pliki znajdują się w pamięci operacyjnej. Procesor wykonuje instrukcje programu zawarte w pamięci systemowej, a następnie wyniki zapisuje również w pamięci RAM. W przypadku używania edytora tekstu w pamięci operacyjnej są przechowywane znaki wprowadzone z klawiatury, natomiast po otwarciu programu służącego do obliczeń w pamięci RAM są umieszczane przetwarzane liczby. Wykonanie operacji zapisu danych powoduje, że program zapisuje zawartość pamięci operacyjnej na dysk twardy w postaci pliku.

W nowszych komputerach PC stosowane są trzy podstawowe typy pamięci:

  • ROM Read-Only Memory (pamięć tylko do odczytu),
  • DRAM Dynamic Random Access Memory (dynamiczna pamięć o swobodnym dostępie),
  • SRAM Static RAM (statyczna pamięć RAM).

ROM (ang. Read-Only Memory pamięć tylko do odczytu) jest typem pamięci, który pozwala na trwałe lub częściowo trwałe przechowywanie danych. W nazwie pamięci znajduje się określenie "tylko do odczytu", które używane jest dlatego, że niemożliwe, lub bardzo utrudnione, jest zapisanie w niej danych. Pamięć ROM często jest również określana mianem pamięci nieulotnej (ang. nonvolatile memory), co wynika z faktu, że zawarte w niej dane nie znikają nawet po odłączeniu zasilania. Pamięć ROM sama w sobie stanowi idealne miejsce do przechowywania instrukcji stosowanych przy inicjalizacji komputera czyli programów odpowiedzialnych za jego uruchomienie.

Podstawowy BIOS systemu znajduje się w układzie ROM umieszczonym na płycie głównej. Oprócz tego w układy pamięci ROM wyposażone są również karty. W tym przypadku w pamięci ROM zawarte są dodatkowe procedury BIOS-u oraz sterowniki wykorzystywane przez określoną kartę, a zwłaszcza te, które muszą być aktywne w trakcie inicjalizacji systemu (np. karta graficzna). Karty, które podczas uruchamiania komputera nie muszą być włączone, zazwyczaj są pozbawione układu ROM, ponieważ wymagane przez nie sterowniki mogą być załadowane z dysku twardego w dalszej fazie procesu inicjalizacji.

W większości obecnie dostępnych systemów wykorzystywana jest pamięć ROM określana mianem pamięci EEPROM (ang. Electrically Erasable PROM elektrycznie kasowalny PROM) będąca odmianą układu Flash. Pamięć Flash jest typową pamięcią nieulotną oferującą możliwość wielokrotnego zapisu, dzięki czemu umożliwia użytkownikom wykonanie w prosty sposób aktualizacji zawartości układu ROM lub oprogramowania układu umieszczonego na płycie głównej lub dowolnego innego komponentu (karta graficzna, kontroler SCSI, urządzenia peryferyjne itp.).

DRAM

DRAM (ang. Dynamic RAM dynamiczna pamięć RAM) jest typem pamięci pełniącym rolę pamięci operacyjnej w większości obecnie dostępnych komputerów. Do podstawowych jej zalet należy zaliczyć wysoką gęstość zapisu danych, co oznacza, że w bardzo małym układzie możliwe jest upakowanie znacznej ilości bitów. Ponadto pamięć DRAM jest dość tania, dzięki czemu można sobie pozwolić na zakup modułów o większej pojemności.

Komórki pamięci DRAM są wykonane z niewielkich kondensatorów, które w celu oznaczenia bitu przechowują ładunek elektryczny. Cały problem z tego typu pamięcią jest związany z jej "dynamicznością". Poza tym ze względu na zastosowaną architekturę konieczne jest ciągłe odświeżanie. Przy jego braku ładunki elektryczne znajdujące się w poszczególnych kondensatorach zanikną, wskutek czego zostaną utracone dane. Operacja odświeżania występuje w momencie, gdy systemowy kontroler pamięci chwilowo oddaje kontrolę i udostępnia wszystkie wiersze układów pamięci zawierające dane. Większość komputerów dysponuje kontrolerem pamięci (zazwyczaj zintegrowanym z mostkiem północnym chipsetu płyty głównej), który pozwala na wykonywanie odświeżania co 15 mikrosekund. Wartość ta jest zgodna ze standardem przemysłowym. Oznacza to, że w celu odświeżenia danych zapisanych w wierszach pamięci są one odczytywane co 15 mikrosekund.

Niestety, operacja odświeżania pamięci powoduje, że procesor musi przerwać wykonywania innych zadań. Wynika to stąd, że każdy cykl związany z odświeżaniem wymaga kilku cykli pracy procesora. W starszych komputerach cykle odświeżania zajmowały 10 lub nawet więcej procent całkowitego czasu procesora. W przypadku nowszych systemów taktowanych częstotliwościami rzędu setek megaherców obciążenie związane z odświeżaniem stanowi ułamkową część procenta (lub nawet mniej) całkowitego czasu pracy jednostki centralnej. Chociaż niektóre systemy dysponują możliwością zmiany parametrów (przy użyciu programu CMOS Setup) dotyczących cykli odświeżania, to jednak należy być świadomym, że zwiększenie czasu, jaki upływa pomiędzy kolejnymi cyklami odświeżającymi, wpływa nie tylko na wzrost wydajności komputera, ale może również spowodować, że w niektórych komórkach pamięci dojdzie do utraty ładunku, co z kolei będzie przyczyną losowego pojawiania się błędów miękkich. Błąd miękki (ang. soft error) należy do błędów danych nie wywołanych fizycznym uszkodzeniem układu pamięci. Zazwyczaj bezpieczniejszym będzie pozostawienie zalecanych lub domyślnych wartości związanych z cyklami odświeżania. Ponieważ operacje związane z cyklami odświeżania pamięci nie przekraczają 1% ogólnego obciążenia obecnie dostępnych systemów, dlatego też zmiana częstotliwości ich występowania ma niewielki wpływ na wydajność. Prawie zawsze najlepszym rozwiązaniem będzie pozostawienie domyślnych lub ustawianych automatycznie wartości dotyczących taktowania dowolnego typu pamięci konfigurowanej w programie BIOS Setup. W przypadku ustawień automatycznych płyta główna odczytuje parametry taktowania z układu ROM SPD (ang. Serial Presence Detect) znajdującego się w module pamięci, a następnie ustawia zgodną z nimi częstotliwość występowania cykli odświeżania.

Pamięć DRAM dla każdego bitu stosuje tylko jedną parę złożoną z tranzystora i kondensatora, co powoduje, że charakteryzuje się dużą gęstością pozwalającą w porównaniu z innymi typami pamięci uzyskać większą pojemność dla pojedynczego układu. Aktualnie dostępne są moduły DRAM oferujące gęstości, które odpowiadają pojemności 512 MB lub większej. Oznacza to, że układy pamięci DRAM zawierają 512 milionów lub nawet więcej tranzystorów. Porównanie pamięci DRAM z procesorem Pentium 4 liczącym 55 milionów tranzystorów sprawia, że ten wypada w nim żałośnie. Tak znaczna różnica w liczbie tranzystorów bierze się stąd, że w przeciwieństwie do procesora, układ pamięci składa się z tranzystorów i kondensatorów tworzących ciągłą siatkę (zazwyczaj kwadratową) opartą na prostych i powtarzalnych strukturach. Dla porównania, procesor jest o wiele bardziej złożonym układem scalonym zawierającym różne struktury i elementy połączone ze sobą w bardziej nieregularny sposób.

Tranzystor każdej komórki pamięci DRAM przechowującej bit dokonuje odczytu wartości ładunku przyległego kondensatora. Jeśli kondensator jest naładowany, wtedy komórka ma wartość 1. W przeciwnym wypadku komórka ma wartość 0. Ładunek zgromadzony w niewielkich kondensatorach cały czas zanika, dlatego też konieczne jest ciągłe odświeżanie pamięci. Nawet chwilowa przerwa w zasilaniu lub dowolny inny czynnik zakłócający cykle odświeżania może spowodować zaniknięcie w komórkach pamięci DRAM ładunku, a tym samym utratę danych. Jeśli taka sytuacja przydarzy się w trakcie pracy systemu, wtedy może to doprowadzić do pojawienia się niebieskiego ekranu, ogólnych błędów ochrony pamięci, uszkodzenia plików i kilku innych objawów wskazujących na awarię.

Pamięć DRAM została zastosowana w komputerach osobistych ze względu na niską cenę i dużą gęstość, która pozwala wytwarzać pojemne układy o niewielkich rozmiarach. Niestety, wadą pamięci DRAM jest długi czas dostępu sprawiający, że jest ona znacznie wolniejsza od procesora. Z tego też powodu w celu zwiększenia wydajności opracowano wiele różnych architektur tego typu pamięci.

Pamięć podręczna SRAM

Kolejnym rodzajem pamięci charakteryzującym się w porównaniu z większością typów układów DRAM o wiele krótszym czasem dostępu jest pamięć SRAM. Pamięć statyczna SRAM (ang. Static RAM) została tak nazwana, ponieważ nie wymaga, tak jak pamięć DRAM, okresowego odświeżania. Dzięki jej architekturze nie tylko uniknięto odświeżania, ale również uzyskano pamięć znacznie szybszą od modułów DRAM, która może spełnić wymagania stawiane przez nowsze modele procesorów.

Czas dostępu do pamięci SRAM wynosi 2 ns lub nawet mniej, dlatego też może współpracować z procesorami pracującymi z częstotliwością 500 MHz lub wyższą. Jest to wynikiem zastosowanej architektury, w której do przechowywania każdego bitu wykorzystywana jest grupa sześciu tranzystorów. Użycie tranzystorów pozbawionych kondensatorów, które z czasem traciły ładunek, oznacza, że nie jest wymagane okresowe odświeżanie. W czasie gdy jest doprowadzone zasilanie, pamięć SRAM przechowuje zawarte w niej dane.

W porównaniu z pamięcią DRAM, układ SRAM jest znacznie szybszy, ale również charakteryzuje się mniejszą gęstością i o wiele wyższą ceną. Mniejsza gęstość oznacza, że moduły pamięci SRAM są większe i są w stanie przechowywać mniejszą ilość bitów. Duża liczba tranzystorów i ich grupowanie wpływa na to, że w porównaniu z układami DRAM koszty wytwarzania większych modułów pamięci SRAM są znacznie wyższe. Przykładowo, moduł pamięci DRAM może mieć pojemność 64 MB lub większą, natomiast w przybliżeniu odpowiadające im pod względem wielkości układy SRAM dysponują pojemnością wynoszącą tylko 2 MB. Pamięć o takiej pojemności kosztuje tyle co moduł DRAM mający pojemność 64 MB. Mówiąc wprost, w porównaniu z układem DRAM pamięć SRAM pod względem rozmiarów jest 30-krotnie większa, a ponadto jest 30 razy droższa. Wysoka cena i ograniczenia związane z wielkością modułów spowodowały, że pamięć SRAM nie mogła pełnić roli pamięci operacyjnej komputerów PC.

Chociaż pamięć SRAM ze względu na wysoką cenę nie może być użyta jako pamięć systemowa, to jednak projektanci znaleźli dla niej zastosowanie, dzięki czemu uzyskano znaczny wzrost wydajności komputerów. Zamiast wydania sporej kwoty na moduły SRAM pełniące rolę pamięci operacyjnej, która dzięki swojej szybkości może lepiej współpracować z procesorem, opracowano pamięć podręczną SRAM charakteryzującą się niewielką pojemnością, krótkim czasem dostępu i znacznie korzystniejszą ceną. Tego typu pamięć pracuje z częstotliwością bliską lub nawet równą częstotliwości procesora, który zazwyczaj bezpośrednio odczytuje lub zapisuje znajdujące się w niej dane. Po wykonaniu operacji odczytu danych zawartych w pamięci podręcznej pobierane są kolejne dane z wolniejszej pamięci operacyjnej (DRAM). Po raz pierwszy SRAM została zastosowana w roku 1986 i 1987 w systemach opartych na procesorze 386 taktowanym zegarem 16 i 20 MHz. Były to pierwsze komputery PC, w których wykorzystano pamięć podręczną (ang. cache memory) bufor o dużej szybkości złożony z układów pamięci SRAM bezpośrednio wykorzystywany przez procesor. Ponieważ pamięć podręczna może pracować z częstotliwością procesora, w architekturze systemowej jej kontroler przewiduje zapotrzebowanie procesora na dane, a następnie umieszcza je w szybkiej pamięci cache. Jeśli procesor odwoła się do określonego adresu pamięci, wtedy znajdujące się tam dane zamiast ze znacznie wolniejszej pamięci operacyjnej zostaną pobrane z pamięci podręcznej.

Efektywność pamięci cache wyraża się skutecznością trafień. Współczynnik ten jest stosunkiem trafień danych w pamięci podręcznej do całkowitej liczby operacji odczytu pamięci RAM. Trafienie (ang. hit) ma miejsce wtedy, gdy dane wymagane przez procesor zostały wcześniej pobrane z pamięci RAM i umieszczone w pamięci podręcznej, dzięki czemu procesor może je pobrać bezpośrednio z niej. Chybienie (ang. cache miss) zachodzi w momencie, gdy kontroler pamięci cache nie przewidział określonego adresu pamięci, spod którego zostały pobrane dane i w efekcie nie umieścił ich wcześniej w pamięci podręcznej. W tym przypadku procesor jest zmuszony do odczytania danych z wolniejszej pamięci operacyjnej, co wiąże się z dłuższym czasem trwania operacji, ponieważ cykle pamięci RAM, w porównaniu z szybkością procesora, są wykonywane ze znacznie niższą częstotliwością. Jeśli procesor zintegrowany z pamięcią cache pracuje z częstotliwością 2000 MHz (2 GHz), wtedy zarówno on, jak i pamięć podręczna będą taktowane co 0,5 ns, natomiast pamięć systemowa najprawdopodobniej będzie dysponowała cyklami wykonywanymi co 3 ns (lub 6 ns w przypadku pamięci DDR Double Data Rate), czyli sześć razy wolniej. Wynika z tego, że w przeliczeniu na megaherce pamięć operacyjna może pracować z częstotliwością wynoszącą tylko 333 MHz. A zatem oznacza to, że przy każdej operacji odczytu danych z pamięci RAM, procesor taktowany zegarem 2 GHz jest zmuszony do sześciokrotnego obniżenia częstotliwości wynoszącej tylko 333 MHz. Operacja zmniejszenia szybkości pracy procesora jest realizowana poprzez wykonanie dodatkowych cykli zwanych cyklami oczekiwania (ang. wait states). W czasie cykli oczekiwania związanych z odebraniem z wolniejszej pamięci systemowej żądanych danych, poza chłodzeniem się procesora nie jest wykonywana żadna inna operacja. Z pewnością spowolnienie pracy procesora nie jest mile widziane, dlatego też wraz ze wzrostem jego szybkości funkcje realizowane przez pamięć podręczną zaczęły zyskiwać na znaczeniu.

W celu minimalizacji ilości operacji odczytu danych z wolnej pamięci RAM wykonywanych przez procesor, w nowszych systemach zazwyczaj stosuje się dwa poziomy pamięci podręcznej Level 1 (L1) i Level 2 (L2). Pamięć cache L1 określa się również mianem pamięci wewnętrznej (ang. Internal cache), ponieważ jest ona bezpośrednio zintegrowana z procesorem i stanowi część jego rdzenia (płytki). Z tego też powodu pamięć cache L1 zawsze pracuje z częstotliwością rdzenia procesora i jest najszybszą pamięcią w całym systemie. Dzięki temu, że we wszystkich procesorach, począwszy od układu 486, zastosowano zintegrowaną pamięć podręczną L1, w porównaniu z ich poprzednikami cechują się one znacznie większą wydajnością. Pamięć cache L2 jest również określana mianem zewnętrznej pamięci podręcznej (ang. external cache), ponieważ została umieszczona poza procesorem. Początkowo oznaczało to, że znajdowała się na płycie głównej tak jak w przypadku komputerów opartych na procesorach 386, 486 i Pentium. W tego typu systemach pamięć cache L2 pracuje z częstotliwością płyty głównej, ponieważ jest na niej fizycznie zainstalowana. W komputerach wyposażonych w procesor Pentium lub starsze układy pamięć cache L2 zazwyczaj znajduje się w pobliżu gniazda procesora.

Wskutek dążenia do zwiększenia wydajności, nowsze procesory zostały zintegrowane z pamięcią podręczną L2. We wszystkich procesorach, które pojawiły się w sprzedaży od końca 1999 r. (i niektórych starszych modelach), pamięć cache L2, podobnie jak pamięć cache L1, była integralną częścią rdzenia. W przypadku procesorów zintegrowanych z pamięcią podręczną L2 pracuje ona z częstotliwością rdzenia, a ponadto jest o wiele bardziej wydajna.

Procesor firmy Intel o nazwie Itanium, w celu dodatkowego zwiększenia wydajności, dysponuje trzema poziomami zintegrowanej pamięci podręcznej. Większa pojemność pamięci cache oraz większa ilość jej poziomów pozwala na złagodzenie różnicy szybkości rdzenia procesora i stosunkowo wolnej pamięci RAM oraz płyty głównej.

Więcej w tej kategorii: Moduły pamięci »

Skomentuj

Popularne Artykuły

Pomagaj z nami

Warto zobaczyć

Reklama

Nowości

Bestsellery książkowe

  • Autor:
  • Cena:
  • Status:

Książka chwilowo niedostępna.

Szukaj

Newsletter

Kupuj najtaniej

Społeczność