felietony

Zarys historii nośników informacji. Część druga: dziś

Kompakt, twardziel i flaszka

22
21 czerwca 2008, 14:05 Andrzej Urbankowski

Pamięć RAM

Pamięć RAM, która zastąpiła pamięć ferrytową, jest podstawową pamięcią operacyjną komputera. Podstawową, ponieważ współczesne komputery mają kilka, hierarchicznie usytuowanych, warstw pamięci, co zostało przedstawione w tabeli poniżej.

Pierwszą, najszybszą warstwę pamięci komputera tworzą rejestry CPU. Jednocześnie ich pojemność jest najmniejsza. Im niżej, tym pamięć jest wolniejsza, ale może przechowywać większą ilość danych. Kolejno mamy pamięci cache: L1, L2, L3, a potem RAM, HDD, Flash. Wynika z tego podstawowa zasada: odwołania do najwolniejszych pamięci powinny być jak najrzadsze. Wtedy program działa najszybciej. Łatwo powiedzieć, trudniej zrealizować.

Zapoznajcie się wobec tego z ewolucją współczesnego RAM-u. Fotografie pokazują zmiany w jego wyglądzie, jakie zachodziły na przestrzeni lat.

 

 


Od pamięci mieszczącej się w niewielkiej obudowie DIP (ang. Dual In Package), stosowanej w pierwszych komputerach PC typu XT lub AT, do współcześnie stosowanych DDR3. Jednak praktycznie rzecz biorąc, wygląd modułu pamięci niewiele się zmienił od powstania pamięci SDRAM w obudowie DIMM. Oczywiście, zmieniała się liczba styków oraz liczba i usytuowanie kluczy ustalających położenie modułu w jego gnieździe. Nie można tego natomiast powiedzieć o parametrach elektrycznych pamięci, które zmieniały się bardzo dynamicznie.

Zasadniczo cały czas rosły pojemności modułów oraz ich częstotliwość działania. Gorzej z opóźnieniami w czasie dostępu do informacji. Dało się to zauważyć przy przejściu z pamięci DDR na DDR2 i z DDR2 na DDR3. Pierwsze modele pamięci DDR2, którymi zastąpiono pamięć DDR, obniżały ogólną wydajność komputera. W okresie dominacji na rynku procesorów Athlon 64 firma AMD nie spieszyła się z opracowaniem kontrolera pamięci DDR2, ponieważ istniejący, wbudowany w procesor kontroler pamięci DDR zapewniał przewagę nad produktami Intela, wykorzystującymi teoretycznie lepszą i szybszą pamięć DDR2. Rozwój technologii powoli jednak zniwelował istniejące różnice i AMD musiała opracować kontroler pamięci DDR2. Właściwie od tego momentu zaczęły się kłopoty tej firmy, bo nowy kontroler przez długi czas nie dorównywał wydajnością starszemu bratu. Problemy, zwłaszcza finansowe, zaczęły narastać po kontrowersyjnym zakupie firmy ATI, jednak najpoważniejszym ciosem okazała się intelowska architektura Core 2 Duo, na którą do dzisiaj AMD nie znalazła odpowiedzi. Procesory Phenom, choć niezłe, wydajnościowo nie dorównały procesorom C2D. Obecnie AMD stoi u progu bankructwa, walcząc o przeżycie i tnąc koszty na wszelkie możliwe sposoby. Ze względów rynkowych życzę „zielonym” powrotu do pełnej formy, zwłaszcza finansowej.

Nieustanny postęp technologiczny skutkował również ciągłym zmniejszaniem się poboru mocy przez pamięć RAM, która obecnie wykonywana jest w postaci układów scalonych.

Czas najwyższy przedstawić zasadę działania pamięci RAM. Najogólniej rzecz biorąc, zbudowane są one z elementów elektronicznych, które potrafią zapamiętać swój stan. Każdy taki element potrafi zapamiętać bit informacji. Patrząc historycznie, pamięci podzieliły się na SRAM (ang. Static RAM) i DRAM (ang. Dynamic RAM). Te pierwsze jako element pamiętający swój stan stosują przerzutnik, w drugich jest nim kondensator. Głównie ze względu na o wiele niższy pobór mocy na rynku utrzymały się pamięci DRAM, pomimo niedogodności związanej z koniecznością okresowego uzupełniania ładunku rozładowującego się kondensatora. Taki proces nazywa się odświeżaniem pamięci. Aby pamięć spełniła swoje zadanie, każda jej komórka musi mieć swój adres, który umożliwi przekazanie lub pobranie informacji. Najprostszym sposobem adresowania pamięci jest tzw. 2D. Każda komórka pamięci ma podłączone przewody wejścia, wyjścia i sygnału wybierania – pochodzącego z dekodera adresów. Z kolei metoda 3D polega na podziale istniejących elementów na rzędy i kolumny.

Dostęp do elementu uzyskuje się, adresując odpowiedni rząd i kolumnę. Z tego powodu komórka RAM musi jeszcze mieć dwa sygnały wybierania: z dekodera kolumn i wierszy. Wprawdzie metoda 2D umożliwia szybszy dostęp do komórki pamięci, ale utrudnia budowę modułu pamięci o większej pojemności. Metoda 3D umożliwia prosty i jednolity dostęp do komórek pamięci i obecnie jest powszechnie stosowana. Podstawową zasadą jest podział pamięci na tzw. banki, co ułatwia pracę dekoderowi adresów.

Celowo pomijam obszerne zagadnienie opóźnień (timingów) poszczególnych rodzajów pamięci, od FPMRAM, EDORAM i BEDORAM, poprzez SDR SDRAM, RDRAM, DDR SDRAM i DDR2 SDRAM, do DDR3, DDR4 i DDR5. Zainteresowanych odsyłam do Google’a. Ograniczę się jedynie do zdefiniowania podstawowych współczynników charakteryzujących współczesne pamięci RAM.

CAS latency (CL) – oznacza czas (mierzony liczbą cykli impulsów taktujących), który upływa od wysłania przez kontroler pamięci żądania odczytu miejsca pamięci (ang. memory location) do przesłania odczytanych danych dalej (ang. output pins). Im niższy jest ten współczynnik, tym pamięć powinna działać szybciej.

RCD – określa wartość przerwy wymaganej pomiędzy podaniem adresu wiersza i kolumny.

RP – określa czas trwania sygnału odświeżania pamięci.

RAS określa liczbę cykli wymaganych do wykonania polecenia aktywacji jednego z banków pamięci, zanim adres wiersza będzie mógł zostać załadowany. Wszystkie te współczynniki, łącznie z typem pamięci, zazwyczaj podawane są na obudowie modułu, co pozwala szybko się zorientować, czego można się po nim spodziewać.

Sądzę, że na potrzeby tego opracowania wystarczy powiedzieć, że pamięć SDR SDRAM (ang. Single Data Rate Synchronous DRAM) ma (teoretycznie) o połowę mniejszą wydajność od DDR SDRAM (ang. Double Data Rate Synchronous DRAM). Zależność ta wynika ze sposobu przenoszenia informacji wewnątrz pamięci, co związane jest z wykorzystywaniem do tego celu odpowiednich fragmentów sygnału taktującego, na jego opadającej i wznoszącej się części. Innymi słowy, pamięć SDR SDRAM wykonuje jedną operację podczas cyklu zegara taktującego, a DDR SDRAM – dwie. Dane do pamięci i z pamięci mogą być przekazywane asynchronicznie lub synchronicznie z taktowaniem CPU. Pamięć SDRAM umożliwia synchroniczną transmisję danych, co zwiększa wydajność pamięci, a zatem i całej maszyny. Spowodowane to jest brakiem konieczności oczekiwania na „zwolnienie” magistrali przekazującej dane, ponieważ następuje ono jednocześnie z ich pobraniem. Jako o pewnej ciekawostce wspomnę jeszcze o tzw. dwukanałowości pamięci RAM. Rozwiązanie to wynika z konstrukcji kontrolera pamięci, a nie zmian konstrukcyjnych pamięci. Teoretycznie zdublowanie kanału przesyłu informacji na trasie RAM – CPU powinno zaowocować podwojeniem wydajności maszyny. W praktyce wzrost wynosi 3–4%, ale i to nie jest do pogardzenia.

Dla porządku wspomnę również o firmie Rambus i jej „produktach”. Firma ta nie cieszy się sympatią na rynku pamięci, ponieważ jej niebagatelnym źródłem dochodów są wpływy z wielu procesów sądowych, które bez przerwy wytacza innym firmom, oskarżając je o plagiaty rozwiązań technicznych. Sprawa sięga czasów, gdy Rambus jako członek JEDEC (ang. Joint Electron Device Engineering Council – rada ustalająca standardy urządzeń elektronicznych) wykorzystał informacje, które miał z tego tytułu, i opatentował kilka ogólnie stosowanych przez producentów pamięci rozwiązań technicznych. Niczego nie produkując, Rambus żyje z opłat uzyskiwanych za licencjonowanie własnych patentów, sprytnie przy tym wykorzystuje na swoją korzyść luki prawne w ustawodawstwie. Niezbyt chlubnie zakończyła się również współpraca Rambusa z Intelem, który musiał wycofać się z promowania nieudanej pamięci RDRAM. Trzeba jednak przyznać, że opracowana i opatentowana przez Rambusa pamięć XDR, wraz z przeznaczonymi do niej interfejsami, jest obecnie najszybszym na świecie zestawem obsługującym porty I/O, zapewniającym największą możliwą obecnie do osiągnięcia przepustowość 16 GB/s dla jednego modułu. Pamięć XDR potrafi przenieść 8 bitów danych w ciągu jednego cyklu zegara taktującego, który może działać z częstotliwością do 6,4 GHz. Jest to wprost wymarzone rozwiązanie dla urządzeń obsługujących multimedia, z HDTV włącznie.

Niezależnie od tego różne udoskonalenia wprowadzane nieustannie do projektów i technologii produkcji pamięci, takie jak wewnętrzny pipelining czy przeplot (ang. interleaving), sprawiają, że pamięci mają coraz większą wydajność. Warto także wspomnieć o istnieniu programowalnego trybu burst, w którym możliwa jest kontrola prędkości transferu danych oraz eliminacja cykli oczekiwania (ang. wait states). Daje się zauważyć ogólna tendencja do zwiększania częstotliwości działania pamięci przy jednoczesnym wzroście czasu oczekiwania na dostęp do danych. Obecnie wzrost wydajności komputera wyposażonego w pamięć DDR3 w porównaniu do DDR2 jest prawie niezauważalny. Jednak podobna sytuacja miała miejsce przy przejściu z DDR na DDR2. Ale pamięć DDR3 zużywa zdecydowanie mniej mocy, ponieważ działa przy niższym napięciu zasilającym. Wniosek? Cierpliwości! Niebawem pamięci DDR3 będą miały lepsze parametry niż DDR2 i bez wątpienia stanieją. A co z pamięciami DDR4 i DDR5? Obecnie wykorzystywane są one wyłącznie do obsadzania kart graficznych. Ogólnie biorąc, mogą one działać przy wyższych częstotliwościach niż DDR3, jednak kosztem dłuższych timingów. Pobierają również mniej mocy. Czyli sytuacja identyczna jak w relacji DDR2 – DDR3. Ograniczeniem we wprowadzaniu na stałe pamięci DDR3, DDR4 i DDR5 jako pamięci operacyjnej RAM jest konieczność przeprojektowania kontrolerów pamięci oraz cena. To kwestia kilku lat, chociaż już teraz pojawiają się płyty główne umożliwiające umieszczenie w slotach pamięci RAM zarówno modułów DDR2, jak i DDR3.

Pamięć ROM

Pamięć ROM (ang. Read Only Menory), podobnie jak RAM, jest operacyjną półprzewodnikową pamięcią ogólnodostępną. Od RAM-u różni się brakiem możliwości zapisywania w niej bieżącej informacji. Dlatego też wykorzystywana jest jako skład stałych danych, potrzebnych do działania komputera, jak procedury startowe lub próbki przebiegu w cyfrowym generatorze funkcyjnym. Dane te są odczytywane z ROM-u zależnie od potrzeb systemu operacyjnego. Istnieje kilka rodzajów pamięci ROM, różniących się sposobem zapisu i kasowania danych: CROM, PROM, EPROM, EAROM, EEPROM, Flash EEPROM.

2