5. PAMIĘĆ OPERACYJNA. Pamięć cyfrowa - układ cyfrowy lub mechaniczny przeznaczony do przechowywania danych binarnych. Do prawidłowego funkcjonowania procesora potrzebna jest pamięć operacyjna, która staje się jego przestrzenią roboczą. Pamięć operacyjna, potocznie nazywana RAM (ang. Random Access Memory - pamięć o dostępie swobodnym), jest pamięcią adresowaną, dostępną bezpośrednio przez procesor. PAMIĘĆ O DOSTĘPIE SWOBODNYM RAM Pamięć o swobodnym dostępnie RAM pozwala na odczytywanie i zapisywanie danych na dowolnym obszarze ich przechowywania, w przeciwieństwie do pamięci o dostępie sekwencyjnym (czyli takich, gdzie przeszukiwany jest nośnik w celu odczytania zapisanych danych). Mimo, że określenie Random Access Memory odnosi się do różnych typów nośników i pamięci z bezpośrednim dostępem do nich, to skrótem RAM zwykło się nazywać pamięć operacyjną komputera. Jako, że pamięć operacyjna jest przestrzenią roboczą procesora, to mogą być umieszczone w niej rozkazy (kody operacji) procesora, otwarte pliki systemu operacyjnego, uruchomione programy oraz wyniki (dane) działania programów. Wymianą informacji pomiędzy procesorem a pamięcią steruje tzw. kontroler pamięci, który do niedawna był częścią chipsetu płyty głównej, a obecnie zintegrowany jest z najnowszymi procesorami. Główną cechą pamięci RAM jest zdolność do przechowywania danych tylko wtedy, gdy podłączone jest zasilanie. W momencie gdy napięcie zanika, zawartość pamięci zostaje skasowana. Dlatego o pamięci RAM mówimy że jest pamięcią ulotną i właśnie dlatego należy pamiętać chociażby o prawidłowym zamykaniem systemu operacyjnego, aby mógł on zapisać informacje zawarte w pamięci RAM do pamięci masowej (np. na dysk twardy). Pamięć RAM w zależności od budowy dzieli się na dwa typy: SRAM DRAM PAMIĘĆ SRAM SRAM (ang. Static Random Access Memory) - statyczna pamięć RAM, pamięć półprzewodnikowa zbudowana na bazie przerzutników i tranzystorów. Jedną komórkę pamięci (1 bit) tworzy jeden przerzutnik RS (zbudowany z czterech tranzystorów) i dwa tranzystory sterujące. Słowo statyczna oznacza, że nie wymaga okresowego odświeżania (brak kondensatora) i przechowuje dane tak długo jak długo doprowadzane jest zasilanie. Pamięć tego typu wykorzystywana jest w szybkich pamięciach podręcznych cache L1 i L2 - gdzie ważniejsza jest wydajność niż pojemność. Duża złożoność takiej pamięci przekłada się na wyższe koszty produkcji i z tego powodu nie buduje się modułów pamięci SRAM o dużych pojemnościach. Wyklucza to zastosowanie SRAM-u jako pamięci operacyjnej komputera. Mateusz Pańkowski 1
PAMIĘĆ DRAM Pamięć dynamiczna DRAM (ang. Dynamic Random Access Memory) jest odmianą pamięci RAM zbudowaną na baize tranzystorów i kondensatorów. Pojedyncza komórka pamięci składa się z kondensatora oraz tranzystora sterującego procesem ładowania. W przypadku gdy kondensator jest naładowany, to przechowuje bitową jedynkę, natomiast gdy jest rozładowany, mamy bitowe zero. Budowa pamięci ma postać matrycy, w której aby odwołać się do konkretnej komórki należy podać adres wiersza i kolumny. Zaletą tego typu pamięci jest mała złożoność (tylko 1 kondensator i tranzystor) co pozwala na budowanie pamięci o dużej gęstości (1 GB DRAM = 1024 miliony kondensatorów i tranzystorów), niewielkich rozmiarach i dobrym stosunku ceny do pojemności. To głównie duża pojemność i niska cena powodują, że pamięć DRAM nadaje się idealnie do pełnienia roli pamięci operacyjnej komputera. Niestety poza zaletami, pamięć ta ma również zasadniczą wadę. Potrzebuje odświeżania jej zawartości, co spowodowane jest naturalnym zjawiskiem dotyczącym kondensatorów, czyli upływności. Zjawisko to polega na zanikaniu ładunków elektrycznych zgromadzonych w kondensatorze. Jak wiadomo, brak ładunku jest równe zeru, czyli braku danych. Rozwiązano ten problem poprzez okresowe doładowywanie kondensatorów (dlatego pamięć ta ma nazwę dynamiczna ). W trakcie procesu odświeżania nie może być prowadzony zapis ani odczyt danych z pamięci - następuje ogólne spowolnienie pracy pamięci. Dla poszczególnych typów pamięci DRAM można zauważyć pewne parametry, których celem jest określenie wydajności. W języku informatycznym parametry te nazywa się timingami RAM. Jest kilka takich parametrów: tcl (CAS Latency) - jest to czas (liczbę cykli zegara) pomiędzy wysłaniem przez kontroler pamięci żądania dostępu do określonej kolumny pamięci a odczytaniem danych z tej kolumny. Im niższa wartość tcl, tym mniej czasu potrzeba na trcd (RAS to CAS Delay) - czas jaki upływa od zakończenia wysyłania adresu konkretnej kolumny (CAS) do podania adresu konkretnego wiersza (RAS). trp (RAS Precharge) - czas jaki upływa pomiędzy następnych adresowaniem wierszy pamięci. tras (Row Address Strobe) - czas jaki upływa pomiędzy aktywacją i dezaktywacją wierszy. tcr (Command Rate) - czas jaki upływa pomiędzy adresowanie dwóch komórek pamięci. Podstawowy i najczęściej stosowany zapis do przedstawienia timingów wygląda następująco: 4-4-4-12-1 (tcl-trcdtrp-tras-tcr). Im mniejsze są powyższe wartości, tym szybszy jest dostęp do komórek pamięci, co ma wpływ na zwiększenie ogólnej wydajności RAM-u. Pamięć DRAM jest ciągle rozwijana i głównym czynnikiem na to wpływającym jest potrzeba dostosowania jej wydajności do wymogów stawianych przez magistralę pamięci na płycie głównej. Od kiedy wprowadzono na rynek pierwsze pamięci DRAM powstało kilka nowszych wariantów: FPM DRAM - (ang. Fast Page Mode) rodzaj pamięci DRAM, w którym zastosowano technikę stronicowania pozwalającą na szybsze odnoszenie się do danych zapisanych w jednym wierszu. Pamięć stosowana w czasach procesorów Intel 486 i pierwszych modeli Pentium. Pamięć asynchroniczna. Mateusz Pańkowski 2
REDO/BEDO DRAM - (ang. Extended Data Out/Burst EDO) rozszerzenie pamięci FPM. EDO charakteryzowała się tym, że podczas przetwarzania danych bieżącej komórki, mogła pobierać instrukcję adresującą kolejną komórkę. W BEDO dodatkowo wprowadzono licznik adresów do kontrolera pamięci oraz dodano funkcję przeplatania dwóch banków pamięci. Polegało to na tym, że gdy przyznany został dostęp do jednego banku, kontroler pamięci mógł przystąpić do określania adresu w drugim banku. Pamięć asynchroniczna. SDRAM - (ang. Synchronous DRAM, SDR SDRAM) w związku z końcem tradycyjnych pamięci asynchronicznych, których możliwości odbiegały od możliwości magistrali procesora, opracowany nowy typ pamięci synchronicznej DRAM. Istota tego rozwiązania jest zsynchronizowanie pamięci z magistralą systemową, co spowodowało zmniejszenie strat czasowych w trakcie przesyłania danych do/z procesora. Kości zasilane były napięciem 3.3V. Powstały trzy wersje SDRAM: - PC-66 pracująca z częstotliwością 66 MHz - PC-100 pracująca z częstotliwością 100 MHz - PC-133 pracująca z częstotliwością 133 MHz Sposób przesyłu danych w pamięciach SDRAM: SDR 1 transfer w cyklu zegarowym Częstotliwość zegara = 100 MHz Częstotliwość przesyłania danych = 100 MHz Rys. 1. Przesył informacji w pamięciach SDR. DDR SDRAM - (ang. Double Data Rate SDRAM) następca pamięci SDRAM, o podwójnym tempie przesyłu danych. Powstały do tej pory trzy odmiany pamięci DDR SDRAM: - DDR - zastosowano tu sposób transmisji (na narastającym i opadającym zboczu sygnału zegarowego), który pozwolił na podwojenie ilości przesyłanych danych bez potrzeby zwiększania częstotliwości magistrali. Dodatkowo wprowadzono 2-bitowy bufor, w którym gromadzone są dane przed wysłaniem (ang. prefetch bufor). Kości są zasilane napięciem 2.5V. Brak kompatybilności wstecz z pamięcią SDRAM. Wersje pamięci: Oznaczenie Częstotliwość zegara Przepustowość PC-1600 (DDR200) 100 MHz (200 MHz) 1.6 GB/s PC-2100 (DDR266) 133 MHz (266 MHz) 2.1 GB/s PC-2700 (DDR200) 166 MHz (333 MHz) 2.7 GB/s PC-3200 (DDR200) 200 MHz (400 MHz) 3.2 GB/s - DDR2 - nowsza i szybsza odmiana pamięci DDR. Poza podwójnym tempem przesyłu zastosowano specjalny 4-bitowy bufor pozwalający na wysyłanie większej ilości danych w ciągu jednego cyklu. Dodatkowo podwojono mnożnik zegarowy magistrali. Niej jest kompatybilna z DDR i SDRAM. Wymaga zasilania o napięciu 1.8V. Wersję pamięci: Mateusz Pańkowski 3
Oznaczenie Częstotliwość zegara Przepustowość PC2-3200 (DDR2-400) 100 MHz (200 MHz) 3.2 GB/s PC2-4200 (DDR2-533) 133 MHz (266 MHz) 4.3 GB/s PC2-5300/5400 (DDR2-667) 166 MHz (333 MHz) 5.3 GB/s PC2-6400 (DDR2-800) 200 MHz (400 MHz) 6.4 GB/s PC2-8500 (DDR2-1066) 200 MHz (533 MHz) 8.5 GB/s - DDR3 - rozwinięcie standardów DDR/DDR2. Brak kompatybilności wstecz. Zasilanie zostało zredukowane do 1.5V (pamięci wykonane w technologii 50nm potrzebują 1.35V) co pozwoliło na zmniejszenie poboru energii. Bufor jest 8-bitowy. Mnożnik magistrali zwiększono do 4 i dzięki temu uzyskano transfer z prędkością 6.4 GB/s przy częstotliwości 100 MHz. Wersje pamięci: Oznaczenie Częstotliwość zegara Przepustowość PC3-6400 (DDR3-800) 100 MHz (400 MHz) 6.4 GB/s PC3-8500 (DDR3-1066) 133 MHz (533 MHz) 8.5 GB/s PC3-10600 (DDR3-1333) 166 MHz (667 MHz) 10.6 GB/s PC3-12800 (DDR3-1600) 200 MHz (800 MHz) 12.7 GB/s PC3-16000 (DDR3-2000) 250 MHz (1000 MHz) 16 GB/s PC3-17000 (DDR3-2133) 266 MHz (1066 MHz) 17 GB/s PC3-19200 (DDR3-2400) 300 MHz (1200 MHz) 19.2 GB/s Sposób przesyłu danych w pamięciach DDR: DDR 1 transfer w cyklu zegarowym Częstotliwość zegara = 100 MHz Częstotliwość przesyłania danych = 200 MHz Rys. 2. Przesył informacji w pamięciach DDR. W przypadku pamięci DDR stosuje się technologię pracy dwukanałowej (ang. dual channel). Stosuje się ją w kontrolerze pamięci w celu wydajniejszej obsługi RAM-u. Technologia ta polega na podwojeniu przepustowości przesyłu danych pomiędzy kontrolerem pamięci a pamięcią RAM poprzez wykorzystanie dwóch 64-bitowych kanałów, co daje razem magistralę o szerokości 128 bitów. Praca dwukanałowa wymaga umieszczania modułów pamięci parami w skorelowanych (współzależnych) ze sobą gniazdach, które na płytach głównych oznaczane są najczęściej odpowiednimi kolorami. Z założenia, oba moduły pamięci powinny być takie same, jednak możliwe jest również używanie podobnych modułów różnych producentów, pod warunkiem, że mają taką samą wielkość pamięci (różne timingi są dopuszczalne). Gniazda na płycie głównej wyglądają następująco: Mateusz Pańkowski 4
Rys. 3. Złącza pamięci obsługujące tryb dual channel i ich kolorystyka. Kolejna generacja pamięci DDR ma być oznaczona jako DDR4 i dostępna w sprzedaży w 2013 roku. Istnieje również oddzielna grupa pamięci SDRAM przeznaczona do kart graficznych i poszczególne wersje oznaczane są jako: VRAM, GDDR2 (ang. Graphics Double Data Rate 2), GDDR3, GDDR4 i GDDR5. RDRAM - (ang. Rambus DRAM) zostało opracowane przez firmę Rambus w 1999 roku. Mimo, że magistrala pamięci RDRAM ma szerokość tylko 16 bitów, to pracuje ona z dużą prędkością przesyłając dane na rosnącym i opadającym zboczu. Pierwsze RDRAM pozwalały na przesyłanie informacji z prędkością magistrali 400 MHz i przepustowością rzędu 1.6 GB/s. XDR RDRAM - następca RDRAM-u umożliwia pracę z częstotliwością magistrali do 1066 MHz i przepustowością przeszło 29 GB/s. Jego nowszą odmianą jest pamięć XDR2 RDRAM, która umożliwia transfer rzędu 38.4 GB/s. Pamięci XDR znalazły swoje zastosowanie głównie w konsolach do gier, wydajnych kartach sieciowych i serwerach. Tego typu pamięć została wykorzystana przez firmę Sony w swojej konsoli do gier PlayStation 3. Pamięci RDRAM nie są jednak tak popularne jak DDR w systemach klasy PC ze względu na ich wysoką cenę. MODUŁY PAMIĘCI RAM Pamięć RAM fizycznie przyjmuje postać układu scalonego. Pierwsze pamięci DRAM montowano bezpośrednio na płytach głównych (wlutowane) bez możliwości ich rozbudowy. Kolejnym krokiem już umożliwiającym rozbudowę było umieszczanie pamięci w specjalnych podstawkach, które niestety pod wpływem temperatury miały problemy ze stykami. Rozwiązaniem tych problemów było stworzenie specjalnych modułów, które są drukowanymi płytkami z przylutowanymi na stałe układami (chipami, kośćmi) pamięci DRAM. Moduły te montuje się w specjalnych gniazdach na płycie głównej. Opracowano trzy odmiany modułów: SIMM, DIMM i RIMM. Moduły SIMM Moduły SIMM (ang. Single Inline Memory Module) zostały stworzone na potrzeby asynchronicznych pamięci FPM i EDO DRAM. Powstały dwie odmiany modułów SIMM: Mateusz Pańkowski 5
SIMM 30-końcówkowy - obsługiwał 8-bitowa magistralę pamięci. Pojemności 256KB, 1MB, 4MB, 8MB, 16MB. Rys. 4. Moduł SIMM 30-końcówkowy. SIMM 72-końcówkowy - przeznaczony dla pamięci 32-bitowych. Pojemności 1 MB, 2 MB, 4 MB, 8 MB, 16 MB, 32 MB, 64 MB, 128 MB. Rys. 5. Moduł SIMM 72-końcówkowy. Moduły DIMM (SO-DIMM) Gdy powstała nowa odmiana pamięci - synchroniczne SDRAM, trzeba było opracować nowe, odpowiednie dla tego typu pamięci moduły. Moduły te oznaczono symbolem DIMM (ang. Dual Inline Memory Module). Od poprzedniego modułu (SIMM) różni się on znacząco. Zmieniono sposób montażu, wymiary i liczbę pinów. Każdy nowszy rodzaj pamięci SDRAM (SDR i DDR) wydawany jest na innym typie modułu DIMM, co uniemożliwia uszkodzenie pamięci. Opracowano następujące typu modułów DIMM: SO-DIMM - mniejszy moduł, przeznaczony do komputerów przenośnych (laptopów). W zależności jakiego rodzaju pamięć była wykorzystywana, tyle pinów (końcówek) miał moduł: o FPM i EDO - 72-końcówkowy o SDR - 144-końcówkowy o DDR i DDR2-200 końcówkowy o DD3-204-końcówkowy Rys. 6. Moduły SO-DIMM 200-końcówkowy DDR (z lewej) i 204-końcówkowy DDR3 (z prawej) Mateusz Pańkowski 6
DIMM - większy moduł przeznaczony do komputerów stacjonarnych (również serwerów). Typy modułów: o SDR - 168-końcówkowy o DDR - 184-końcówkowy o DDR2-240-końcówkowy o DDR3-240-końcówkowy Rys. 7. Moduły DIMM 168-końcówkowy DDR (góra, lewo), 184-końcówkowy DDR (góra, prawo), 240-końcówkowy DDR2 (dół, lewo), 204-końcówkowy DDR3 (dół, prawo) Można zauważyć, że każdy z modułów na stykach posiada specjalne wyżłobienie. Ma ono na celu uniemożliwienie błędnego montażu modułu w gnieździe na płycie głównej. Oczywiście gniazda dostosowane są do poszczególnych modułów po przez umieszczone w odpowiednim miejscu przetłoczenie. Moduły RIMM Moduły RIMM (ang. Rambus Inline Memory Module) zostały opracowane na potrzeby produkowanych przez firmę Rambus kości pamięci RDRAM. Wielkością są bardzo zbliżone do modułów DIMM, jednak nie są z nimi kompatybilne sprzętowo i wymagają odpowiednich gniazd na płycie głównej. Opracowano moduły: RIMM 16-bit - 168-końcówkowy, przeznaczony dla pamięci RIMM 1600 i 2100. RIMM 32-bit - 232-końcówkowy, przeznaczony dla pamięci RIMM 3200 i 4267. RIMM 64-bit - 326-końcówkowy, przeznaczony dla pamięci RIMM 6400 i 8532. Moduły pamięci RIMM musiały być wyposażone w radiator służący do odprowadzania nadmiernej ilości ciepła. 16- bitowe moduły musiały być montowane na płycie głównej parami. Moduły 32-bitowe mogły być instalowane pojedynczo, jednak wiązało się to z koniecznością zaślepienia drugiego gniazda. Po około roku od rozpoczęcia produkcji, moduły RIMM wycofano ze sprzedaży ze względu na opłaty licencyjne oraz mniejszą niż zakładano wydajność. Rys. 8. Moduł RIMM. Mateusz Pańkowski 7