Komputer składa się z czterech głównych elementów sprzętowych (rys.): pamięci, procesora, urządzeń peryferyjnych i łączy komunikacyjnych. Pamięć służy do przechowywania danych i programów, procesor steruje pracą całego systemu i przetwarza dane, urządzenia peryferyjne służą do wymiany danych ze światem zewnętrznym, łącza natomiast umożliwiają wzajemne
komunikowanie się elementów systemu.
W pamięci są przechowywane dane przetwarzane przez komputer oraz instrukcje określające wykonywane czynności. W komputerach cyfrowych informacje te są przechowywane w postaci binarnej, czyli są reprezentowane przez ciągi bitów. Bity są logicznie łączone w bajty (osiem
bitów), a te w słowa (zwykle od jednego do ośmiu bajtów). Pamięć komputera ma z reguły strukturę hierarchiczną - podstawowe elementy strukturalne to rejestry, pamięć wewnętrzna (główna) oraz pamięć zewnętrzna (pomocnicza). Rejestry są najszybszymi komórkami pamięci. Są częścią procesora i zawierają dane aktualnie w nim przetwarzane.
Pamięć wewnętrzna przechowuje dane, które mają być przetworzone, oraz instrukcje opisujące, jak mają być przetworzone. Głównym celem, jaki stoi przed architektem-projektantem, jest uzyskanie możliwie szybkiej i pojemnej pamięci wewnętrznej bez dramatycznego wzrostu jej ceny. Do zwiększenia szybkości pamięci służą dwie techniki: przeplatanie (scalenie wielu
niezależnych pamięci w jeden szybszy system działający jako całość) i zastosowanie pamięci podręcznej (ang. cache; mała, bardzo szybko i zastosowanie pamięci podręcznej (ang. cache; mała, bardzo szybko dostępna pamięć przechowująca zawartość niektórych - często używanych -
komórek pamięci wewnętrznej). Natomiast powszechnie stosowanym rozwiązaniem zwiększającym efektywną pojemność pamięci jest pamięć wirtualna.
Zastosowanie pamięci wirtualnej stwarza wrażenie dysponowania pamięcią wewnętrzną o bardzo wielkiej pojemności, podczas gdy naprawdę tak nie jest. Technika ta polega na przechowywaniu dużej części zawartości pamięci wewnętrznej w powolnej pamięci zewnętrznej, przy czym odpowiednie jej fragmenty są przenoszone (w sposób niewidoczny dla działających programów) do pamięci wewnętrznej tylko wtedy, gdy są aktualnie potrzebne. Jedną z najważniejszych cech organizacji pamięci współczesnych komputerów jest mapowanie (odwzorowywanie) pamięci. Przed wykonaniem programu jest on wczytywany w jakieś, z góry nieznane, miejsce w pamięci
fizycznej. Mapowanie pamięci polega na odwzorowaniu logicznej przestrzeni adresowej programu (zbioru adresów instrukcji i danych występujących w programie) na fizyczną przestrzeń adresową programu (aktualne adresy fizyczne komórek pamięci wewnętrznej, w których program i dane są zapisane). Najczęstszym sposobem mapowania jest stosowanie rejestrów bazowych (b-rejestrów). Do rejestru bazowego programu jest wpisywany fizyczny adres pierwszej komórki, od której zaczyna się zapis programu w pamięci. Mapowanie polega wówczas na przetłumaczeniu adresów logicznych występujących w napisanym programie na adresy fizyczne przez dodanie do każdego adresu logicznego wartości b-rejestru. Oczywiście, wartości rejestrów bazowych różnych programów muszą być różne, aby zapobiec zakłócaniu się programów podczas ich wspólnego
przebywania w pamięci. Innym sposobem mapowania jest stronicowanie. Polega to na podzieleniu przestrzeni adresowych (logicznej i fizycznej) na jednakowej wielkości fragmenty zwane stronami. Mapowanie uzyskuje się przypisując stronom pamięci logicznej strony pamięci fizycznej, co można traktować jako ciąg rejestrów bazowych
Rodzaje pamięci
Pamięci elektroniczne dzielone są ze względu na:
ulotność:
pamięci ulotne przechowują dane tak długo, jak długo włączone jest ich zasilanie,
pamięci nieulotne zachowują dane także po odłączeniu zasilania.
możliwości zapisu i odczytu:
tylko do odczytu (zapis odbywa się w fazie produkcji),
jednokrotnego zapisu,
wielokrotnego zapisu.
nośnik:
półprzewodnikowy (układ scalony),
optyczny,
magnetyczny (w tym pamięć ferrytowa),
magnetooptyczny,
polimerowy (np. Millipede),
papierowy (np. karta dziurkowana),
linia opóźniająca (np. pamięć rtęciowa).
łatwość (możliwość) przeniesienia wraz z zapisem do innego urządzenia,
miejsce w konstrukcji komputera:
rejestry procesora,
pamięć operacyjna, czyli RAM,
pamięć podręczna, czyli cache,
pamięć zewnętrzna, czyli masowa (stacje dysków, taśm itp.),
pamięć robocza podzespołów (np. rejestry stanu urządzenia,
bufory w kartach sieciowych, bufor wysyłanego lub odebranego znaku w łączu szeregowym, pamięć obrazu w kartach grafiki),
sposób dostępu do informacji:
pamięć o dostępie swobodnym,
pamięć o dostępie szeregowym (cyklicznym) (rejestry przesuwne, pamięć taśmowa),
Moduł pamięci RAM (typu SDR SDRAM)
Pamięć komputerowa
pamięć o dostępie szeregowym (cyklicznym) (rejestry przesuwne, pamięć taśmowa),
pamięć skojarzeniowa (asocjacyjna),
pamięć wielopoziomowa (np. dla programisty widoczna jako pamięć o dostępie swobodnym, a
dla programisty nisko-poziomowego jako pamięć o dostępie szeregowym).
Urządzenia zaliczane do kategorii pamięci
taśmy i karty dziurkowane (obecnie już praktycznie nieużywane),
karty magnetyczne (także o znaczeniu historycznym),
taśmy magnetyczne na szpulach i w kasetach,
bębny,
dyskietki (magnetyczne "dyski miękkie"),
dyski twarde (magnetyczne),
dyski optyczne:
CD-ROM, CD-R, CD-RW,
DVD-ROM, DVD-R, DVD-RW, DVD+R, DVD+RW,
HD DVD,
BD-ROM, BD-R, BD-RW,
DMD,
EVD,
HVD.
dyski magnetooptyczne,
rejestry procesora,
pamięć cache (pamięć podręczna),
pamięć operacyjna - aktualnie RAM i jej różne odmiany PRAM, MRAM, FRAM,
ROM - Read-Only Memory (pamięć tylko do odczytu),
PROM - Programmable Read-Only Memory (programowalna pamięć tylko do odczytu),
EPROM - Erasable-Programmable Read-Only Memory (kasowalno-programowalna pamięć tylko do odczytu (kasowana promieniowaniem ultrafioletowym),
EEPROM - Electrically Erasable-Programmable Read-Only Memory (elektrycznie kasowalnoprogramowalna pamięć tylko do odczytu (kasowana elektrycznie),
Flash EEPROM - (błyskawicznie działająca elektrycznie kasowalno-programowalna pamięć kasowana elektrycznie).
Parametry pamięci i nośników pamięci komputerowych
Zestawienie alfabetyczne podstawowych parametrów pamięci komputerowych, 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) - Latencja;
czas oczekiwania CAS - CAS latency;
gęstość zapisu (ang. Computer Storage Density) - ilości informacji, którą można zapisać na określonej długości ścieżki;
ilość, pojemność, wielkość - liczba komórek przechowujących dane, w zależności od rodzaju i przeznaczenia wyrażana w liczbie kb, kB, MB, itd.;
liczba cylindrów, ścieżek o tych samych numerach na powierzchniach roboczych dysków;
liczba głowic odczytu/zapisu - od kilkunastu do kilkudziesięciu;
pobór mocy - wyrażany w Watach;
prędkość obrotowa dysku - parametr dysków HDD wyrażany w liczbie obrotów na minutę;
średni czas dostępu (ang. Average Access Time) - suma ś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);
transfer, 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].
Szybkość pamięci
Koszt pamięci jest zazwyczaj związany z szybkością dostępu do danych danego rodzaju pamięci - im szybsza pamięć tym jest droższa. 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, rozmiar rzędu kilkudziesięciu do kilkuset bajtów,
pamięć podręczna procesora (cache L1), wbudowany w procesor, rozmiar od 4 do 64 kB,
pamięć podręczna procesora (cache L2), rozmiar od 128 kB do 12 MB,
pamięć RAM, rozmiar obecnie od 256 MB (dawniej od kilku kB) do kilku GB,
plik wymiany (swap) na dysku twardym, rozmiar rzędu kilkudziesięciu MB do kilku GB (definiowany przez użytkownika lub automatycznie przez system operacyjny).
Pamięć półprzewodnikowa
Rodzaj pamięci będącej cyfrowym układem scalonym i przechowującej
informacje w postaci binarnej. Zaliczamy do niej pamięć RAM i ROM. Pamięci są jednymi z podstawowych stosowanych w komputerach PC.
Punktem pamięci półprzewodnikowej statycznej jest przerzutnik sr, zbudowany w oparciu o technologię bipolarną lub unipolarną. Zasada działania takiej pamięci polega na podaniu sygnału jedynki logicznej na odpowiednią linię słowa zapisu (lub odczytu) oraz sygnału "1" lub "0" na linię bitu zapisywanego
(odczytywanego). W odróżnieniu od pamięci statycznej pamięć dynamiczna wymaga dodatkowego działania, jakim jest odświeżanie.
Pamięci półprzewodnikowe mają organizację określoną jako:
n oznacza tutaj wielkość pamięci (np. 16, 256, 1024)
m liczbę bitów dostępnych po zaadresowaniu pojedynczej komórki (m = l, 4 lub 8).
EPROM
(ang. Erasable Programmable Read-Only Memory) - rodzaj pamięci cyfrowej w postaci układu scalonego, przechowującej zawartość także po odłączeniu zasilania. Wykorzystuje specjalnie skonstruowany tranzystor MOS z dwiema bramkami: sterującą,
normalnie połączoną elektrycznie z resztą układu i bramką pamiętającą,
odizolowaną od reszty układu. Pamięć EPROM programowana jest przy pomocy urządzenia elektronicznego, które podaje na dren tranzystora napięcie wyższe niż
normalnie używane w obwodach elektronicznych (zwykle ok. 18 V, w układach cyfrowych stosuje się napięcia 3,3-5 V), zdolne do chwilowego przebicia warstwy izolacyjnej wokół bramki pamiętającej. Programowanie układu polega na przebiciu cienkiej warstwy izolatora i wpuszczeniu do bramki pamiętającej określonego ładunku
elektrycznego. Jego obecność na stałe zatyka tranzystor, niezależnie od stanu drugiej bramki. Skasowanie pamięci polega na odprowadzeniu ładunku z bramki. Raz zapisana, pamięć EPROM może zostać skasowana jedynie przez wystawienie jej na działanie silnego światła ultrafioletowego (wymagana długość fali: 253,7 nm), które jonizuje izolator umożliwiając odpłynięcie zgromadzonego ładunku. Pamięci EPROM wielokrotnego programowania można rozpoznać po przeźroczystym okienku ze szkła kwarcowego na górze układu, przez które widać kość krzemową i które umożliwia dostęp światła ultrafioletowego w razie konieczności skasowania. Istnieją wersje jednokrotnego programowania (OTP) które nie posiadają okienka kasowania a układ krzemowy jest zamontowany w obudowie z tworzywa sztucznego. Istotną cechą tego rozwiązania jest znacznie niższa cena układu wynikająca z niższego kosztu samej obudowy. Pamięć EPROM przechowuje dane przez około dziesięć do dwudziestu lat. Pozwala na około tysiąc cykli zapisu i dowolną liczbę cykli odczytu. Aby ochronić pamięć przed przypadkowym skasowaniem okienko musi być zawsze zasłonięte. W starszych płytach głównych pamięć EPROM wykorzystywana była do zapisu BIOS-u płyty. Okienko
kości EPROM zakrywane było etykietką z nazwą producenta BIOS-u, numerem wersji i notką o prawach autorskich.
Pamięć tylko do odczytu
ROM (ang. Read-Only Memory - pamięć tylko do odczytu) - rodzaj pamięci urządzenia elektronicznego, w szczególności komputera. Zawiera ona stałe dane potrzebne w pracy urządzenia - np. procedury startowe komputera, czy próbki przebiegu w cyfrowym generatorze funkcyjnym. Z pamięci jej dane można tylko odczytywać. Są w niej zachowane pewne podstawowe dane, które muszą zostać zachowane nawet jeśli urządzenie nie jest zasilane.
Rodzaje pamięci ROM
W normalnym cyklu pracy urządzenia pamięć ta może być tylko odczytywana. Przygotowanie, poprzez zapis informacji do pamięci, wykonywane jest w zależności od rodzaju pamięci. Najpopularniejsze rodzaje to:
ROM - pamięci tylko do odczytu. Ten typ pamięci programowany jest przez producenta w trakcie procesu produkcyjnego. Czasami ROM określana jako MROM (Mask programmable ROM).
PROM (ang. Programmable ROM) - programowalna pamięć tylko do odczytu. Jest to pamięć jednokrotnego zapisu. Pierwsze pamięci tego typu były programowane przez przepalenie cieniutkich drucików wbudowanych w strukturę (tzw "przepalanie połączeń").
EPROM (ang. Erasable Programmable ROM) - kasowalna pamięć tylko do odczytu. Pamięć do której zaprogramowania potrzebne jest specjalne urządzenie, zwane programatorem PROM (PROM Programmer albo PROM Burner). Pamięci tego typu montowane są zazwyczaj w obudowie ceramicznej ze szklanym "okienkiem" umożliwiającym skasowanie poprzez naświetlanie ultrafioletem.
EEPROM (ang. Electrically Erasable Programmable ROM) - pamięć kasowalna i programowalna elektrycznie. Wykonywana w różnych postaciach (np. jako FLASH), różniących się sposobem organizacji kasowania i zapisu.
Flash EEPROM - kasowanie, a co za tym idzie także zapisywanie odbywa się tylko dla określonej dla danego typu liczby komórek pamięci jednocześnie podczas jednej operacji programowania.
Przykład sterowania
Schemat obok przedstawia jeden ze sposobów realizacji cyfrowego układu sekwencyjnego, poprzez
odpowiednie zaprogramowanie komórek pamięci. Rozwiązanie to jest alternatywą dla realizacji bramkowej. Komórki pamięci ROM (Rys. 1) adresowane są ciągiem czterech bitów (A3 A2 A1 A0). Wybór odpowiedniego adresu następuje dwiema drogami: przez pętlę sprzężenia zwrotnego, realizowaną na przerzutnikach typu D oraz wyjście multipleksera, którego stan jest jednym z sygnałów sterujących (W1, W2 lub 0) multiplekser.
To, który sygnał sterujący zostanie przekazany do adresu A0 pamięci zależy z kolei, od zaadresowania multipleksera tę samą pętlą sprzężenia.
Pozostałe bity wyjściowe (X, Y, W, Z) służą do sterowania działaniem zewnętrznych układów.
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ą.
Cache (pamięć podręczna) to mechanizm, w którym ostatnio pobierane dane dostępne ze źródła o wysokiej latencji i niższej przepustowości są przechowywane w pamięci o lepszych parametrach. Cache jest elementem właściwie wszystkich systemów - współczesny procesor ma 2 albo 3 poziomy pamięci cache oddzielającej go od pamięci RAM. Dostęp do dysku jest buforowany w pamięci RAM, a dokumenty HTTP są buforowane przez pośredniki HTTP oraz przez przeglądarkę. Systemy te są tak wydajne dzięki lokalności odwołań - jeśli nastąpiło odwołanie do pewnych danych, jest
duża szansa, że w najbliższej przyszłości będą one potrzebne ponownie. Niektóre systemy cache próbują przewidywać, które dane będą potrzebne i pobierają je wyprzedzając żądania. Np. cache procesora pobiera dane w pakietach po kilkadziesiąt czy też więcej bajtów, cache dysku zaś nawet do kolejnych kilkuset kilobajtów czytanego właśnie pliku. Niektóre systemy pamięci cache umożliwiają informowanie systemu na temat charakteru danych by umożliwiać bardziej efektywne buforowanie. Służy temu np. wywołanie systemowe madvise.
Zasady projektowania cache
Część systemu komputerowego zajmująca się buforowaniem danych powinna charakteryzować się następującymi właściwościami:
powinna być jak najbardziej automatyczna
jej działanie nie powinno wpływać na semantykę pozostałych części systemu
powinna w jak największym stopniu poprawiać wydajność systemu w warunkach rzeczywistej pracy
Projektując cache rozpatruje się pewne typowe warunki, w jakich będzie on wykorzystywany. Program korzystający z cache ma więcej informacji na temat użycia pamięci w najbliższym czasie, i wydajność systemu można polepszyć jeśli zrezygnuje się z pełnej automatyzacji a pozwoli na dawanie cache'owi sugestii co do właściwego zachowania w danej sytuacji. W ten sposób działa m.in. wywołanie systemowe
madvise, specjalne instrukcje asemblera na niektórych procesorach, nagłówki kontroli cache'owania w HTTP; wiele systemów zarządzania bazami danych pozwala też na przekazywanie kontrolerowi pamięci sugestii. Zadanie cache można wyrazić w następujący sposób: mamy duży zbiór obiektów w powolnej pamięci, i niewielką ilość szybkiej pamięci, w której na pewno nie pomieszczą się wszystkie obiekty. Ciągle niewielką ilość szybkiej pamięci, w której na pewno nie pomieszczą się wszystkie obiekty. Ciągle napływają żądania dostępu do obiektów, a cache musi je wszystkie spełnić w jak najmniejszym stopniu korzystając z pamięci powolnej.
Temperatura danych
Przy rozpatrywaniu systemu cache przydatne jest pojęcie "temperatury" - czyli prawdopodobieństwa, że w
najbliższym czasie wpłynie żądanie dostępu do tego obiektu (jeśli obiekt jest duży, temperatura poszczególnych części może się różnić). Jest oczywiste, że powinniśmy w szybkiej pamięci trzymać obiekty o możliwie wysokiej temperaturze.
Jednak temperatura obiektu nie jest znana, i musimy jakoś ją oszacować. Typowe heurystyki to:
lokalność czasowa - jeśli obiekt był ostatnio żądany, to jest duże prawdopodobieństwo, że będzie żądany ponownie w najbliższym czasie
lokalność przestrzenna - jeśli obiekt był ostatnio żądany, to prawdopodobnie będą też żądane obiekty leżące blisko niego. Położenie w wypadku pamięci komputera oznacza zwykle adres maszynowy. W przypadku plików na stronie internetowej, pliki linkujące do siebie leżą blisko siebie.
niektórych typach obiektów wiemy, że ich średnia temperatura jest wyższa niż innych typów - np. temperatura pliku (z grubsza proporcjonalna do liczby ściągnięć) html na stronie internetowej jest zazwyczaj wyższa niż temperatura pliku pdf.
Żeby zmaksymalizować średnią temperaturę cache, należałoby operować na poziomie jak najmniejszych jednostek, np. kilku bajtów. Byłoby to jednak bardzo niepraktyczne (obiekty zwykle są większe), więc używa się większych jednostek - np. w DBMS kilkudziesięciokilobajtowych stron. Strona taka może zawierać wiele obiektów. W miarę możliwości powinno się tak projektować strony, aby obiekty na jednej stronie miały podobną i skorelowaną temperaturę. Jeśli na każdej stronie znajdowałyby się zarówno obiekty gorące jak i chłodne, niemożliwe byłoby uzyskanie wysokiej temperatury cache. Jeśli natomiast niektóre strony będą znacznie cieplejsze od innych, cache może zawierać te pierwsze i osiągnąć wyższą temperaturę. Na przykład w typowym drzewie
indeksowym obiekty są relatywnie chłodne, natomiast wskaźniki są znacznie gorętsze. Tak więc trzymanie danych tylko na liściach pozwala na znacznie lepszą separację niż gdyby trzymać je na każdym węźle. W miarę możliwości powinno się trzymać na stronie obiekty o skorelowanej temperaturze, np. strony pamięci wirtualnej procesora zawierają leżące po kolei bajty, które ze względu na lokalność przestrzenną mają prawdopodobnie skorelowane temperatury. Z tego też powodu używa się osobnych linii cache dla
danych i dla kodu.
Przykłady cache
Cache procesora
Pamięć cache przyspiesza dostęp do relatywnie wolnej pamięci RAM. Charakteryzuje się bardzo krótkim czasem dostępu. Jest używana do przechowywania danych, które będą w niedługim czasie przetwarzane. Na współczesnych procesorach są 2 lub 3 poziomy pamięci cache: L1 (zintegrowana z procesorem), a także L2 i L3 (umieszczone w jednym chipie razem z procesorem, lub na płycie głównej).
Cache dysku twardego
Pamięć cache dysku twardego przyspiesza dostęp do bardzo wolnej pamięci masowej (w porównaniu do pamięci RAM do której dane są pobierane). Cache o wielkości od 128 KB do 32 MB jest zazwyczaj podzielony na dwie części: obszar podsystemu odpowiedzialnego za odczyt z wyprzedzeniem i buforowanie odczytu oraz mniejszy obszar opóźnionego zapisu. Dysk z kontrolerem komunikuje się magistralą szybszą niż najszybsze budowane dyski twarde - daje to możliwość przechowania danych w
buforze i wysłania do kontrolera bez wykonywania cyklu dostępu do nośnika oraz wpływa pozytywnie na szybkość całego systemu.
Cache przeglądarki
Nazwa cache oznacza też miejsce na dysku twardym, w którym przeglądarka internetowa przechowuje
odwiedzone uprzednio strony (lub części stron) WWW. Ma to na celu przyspieszenie przeglądania stron
internetowych, gdyż nie ma potrzeby ściągania odwiedzonych już stron z Internetu.
RAM (ang. Random Access Memory) - podstawowy rodzaj pamięci cyfrowej zwany pamięcią o dostępie swobodnym. Choć nazwa sugeruje, że oznacza to każdą pamięć o bezpośrednim dostępie do dowolnej komórki pamięci (w przeciwieństwie do pamięci o dostępie sekwencyjnym, np. rejestrów przesuwających), "nazwa ta ze względów historycznych oznacza tylko te rodzaje pamięci o bezpośrednim dostępie, które mogą być też zapisywane przez procesor, a wyklucza pamięci ROM (tylko do odczytu), pomimo iż w ich przypadku również występuje swobodny dostęp do zawartości."
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 kilka sekund po zaniku napięcia zasilania, niektóre typy wymagają także odświeżania, dlatego wyniki pracy programów muszą być zapisane na innym nośniku danych.
Pamięci RAM dzieli się na pamięci statyczne (ang. Static RAM, w skrócie SRAM) oraz pamięci dynamiczne (ang. Dynamic RAM, w skrócie DRAM). Pamięci statyczne są szybsze od pamięci dynamicznych, które wymagają ponadto częstego odświeżania, bez którego szybko tracą swoją zawartość. Pomimo swoich zalet są one jednak dużo droższe i w praktyce używa się pamięci DRAM.
Pamięć RAM jest stosowana głównie jako pamięć operacyjna komputera, jako pamięć niektórych komponentów (procesorów specjalizowanych) komputera (np. kart graficznych, dźwiękowych, itp.), jako pamięć danych sterowników mikroprocesorowych.
Technologie pamięci RAM
Współczesna pamięć RAM jest realizowana sprzętowo w postaci układów scalonych występujących w różnych technologiach lub jako fragmenty bardziej złożonych scalonych układów cyfrowych (np. pamięć cache L1 procesora, a ostatnio także L2) oraz w postaci różnych modułów, znajdujących głównie zastosowanie w komputerach. Wyróżnia się pamięci trwałe (NVRAM) i ulotne.
Pamięci nieulotne (Non-Volatile Random Access Memory)
FRAM - nośnikiem danych jest kryształ
MEMS - pamięć mikroelektromechaniczna
MRAM - nośnikiem danych są magnetyczne złącza tunelowe (konstrukcja prototypowa)
NRAM - Nanotube RAM - pamięć zbudowana z węglowych nanorurek (konstrukcja eksperymentalna)
OUM - pamięć oparta o zmiany stanu stopów pierwiastków rudotwórczych
PRAM - elementem pamięciowym jest kryształ (konstrukcja prototypowa)
Rozwój modułów pamięci używanych w komputerach PC
OD 1981 R.
Dual in-line packane - DIP (ang. Dual In-line Package), czasami nazywany DIL - w elektronice rodzaj obudowy elementów elektronicznych, głównie układów scalonych o małej i średniej skali integracji. Wyprowadzenia elementu umieszczone są w równej linii na dwóch dłuższych bokach prostokątnej obudowy. Obudowy typu DIP produkowane są z wersjach DIP4 (cztery wyprowadzenia), DIP8 (osiem wyprowadzeń), DIP14 (czternaście wyprowadzeń), DIP16, DIP20 i większych. Produkowane są także obudowy typu SDIP, SK-DIP i innych, które różnią się od obudów DIP wymiarami, odległością między wyprowadzeniami itp. Obudowy typu DIP przeznaczone są do montażu przewlekanego (ang. THT, Through-Hole Technology). Odległość między wyprowadzeniami to 2,54 mm. Pozostałe wymiary obudów DIP także są ustandaryzowane, ale różne w zależności od liczby wyprowadzeń. Ilość wyprowadzeń (pinów) wynosi 8, 14, 16, 18, 20, 22, 24, 28, 32, 36, najwyżej 40, 42, 48, rzadko 64.
Produkowany w 1981 r. Używany w PC, XT, At
Schemat układu DIL 16
Układ 7400 w obudowie DIL 14
SIPP (z ang. Single Inline Pin Package) jest drugą generacją pamięci DRAM, która powstała w wyniku zapotrzebowania na rynku na łatwy w montażu na płycie głównej rodzaj pamięci RAM. Układ SIPP używał 30 pinów wzdłuż obrzeża i wyeliminował potrzebę, aby każdy chip DRAM był montowany indywidualnie. SIPP zrewolucjonizował sposób, w jaki komputery osobiste (PC) używały pamięci RAM, ponieważ znacznie szybciej można go było zmienić na inny model.
Produkowany od 1981 r. Używany 286, AT, 386
OD 1994 R.
SIMM (z ang. Single Inline Memory Module) to pojedynczy moduł pamięci liniowej. Jest to następna po SIPP generacja pamięci DRAM. Istotną innowacją w układzie SIMM było to, że nie posiadał od wystających elementów tzw. pinów tak jak w poprzedniej wersji DRAM, którą był SIPP, ponieważ były one umieszczone na powierzchni płytki montażowej. Inną ważną zmianą było też takie fizyczne ukształtowanie płytki pamięci SIMM, aby nie było można zainstalować jej niewłaściwie. Technicznie pomogło to wyeliminować możliwość potencjalnych uszkodzeń w trakcie montażu układu pamięci na płycie głównej. Produkowane w 1994 r. Produkowane dla niektórych 286, 386, 486
Moduły SIMM można podzielić na:
starsze 30-pinowe (8 lub 9 bitowe): 256KB, 1MB, 4MB, 16MB
nowsze 72-pinowe (32 lub 36 bitowe): 1 MB, 2 MB, 4 MB, 8 MB, 16 MB, 32 MB, 64 MB, 128 MB
DIMM (ang. Dual In-Line Memory Module) - Złącza na płycie
głównej w których można montować pamięci 168 pin SDRAM
DIMMS, 184 pin DDR DIMMS, 240 pin DDR2 DIMMS. Produkowane do niektórych Pentium, Pentium II, Pentium III, Pentium IV i Celeron
Najpopularniejsze typy DIMM to:
72-pinowe, stosowane w SO-DIMM (32 bitowe)
144-pinowe, stosowane w SO-DIMM (64 bitowe)
168-pinowe, stosowane w SDR SDRAM
184-pinowe, stosowane w DDR SDRAM
240-pinowe, stosowane w DDR-II SDRAM
SDR SDRAM (ang. Single Data Rate Synchronous Dynamic Random Access Memory) - to pamięć dynamiczna, (dawniej nazywana po prostu SDRAM, po wprowadzeniu techologii DDR SDRAM został dodany przedrostek SDR) synchroniczna, zbudowana na kondensatorach i tranzystorach. Synchroniczna, ponieważ działa ona zgodnie z przebiegiem taktu zegara procesora (współpraca z magistralą systemową).
Pamięć SDR SDRAM jest taktowana częstotliwościami 66, 100 i 133 MHz. Produkowane były kości 16, 32, 64, 128, 256 i 512 MB. Produkcja została zaprzestana z powodu pojawienia się DDR - szybszych i wydajniejszych pamięci, których wielkość dochodzi już do 2 GB.
RIMM (ang. Rambus Inline Memory Module) - jeden z rodzajów kości pamięci komputerowej, na którym umieszczone są układy scalone z pamięcią Rambus DRAM (RDRAM). Pentium IV - po niecałym roku produkcji wycofane z powodu opłat licencyjnych oraz mniejszej niż zamierzano wydajności
Najpopularniejsze kości typu RIMM:
160-pinowe, stosowane SO-RIMM
184-pinowe, stosowane RIMM 16-bitowe
232-pinowa, stosowane RIMM 32-bitowe
26-pinowa, stosowane RIMM 64-bitowe
Kości 16-bitowe pamięci RIMM na płytach głównych muszą być montowane w parach, kości 32-bitowe mogą być instalowane pojedynczo. Każde niewykorzystane gniazdo pamięci na płycie głównej (ang. slot) musi być zamknięte specjalną zaślepką.Kości pamięci RIMM wyposażone są w radiator, konieczny do odprowadzania nadmiaru ciepła.
RAMBUS Incorporated (NASDAQ: RMBS) - firma założona w 1990 roku; dostarcza technologię bardzo szybkich interfejsów. Najbardziej znanym produktem tej firmy jest technologia pamięci Rambus Direct RAM, którą to zaprojektowano by zastąpić miejsce SDRAM i zakwestionowała używanie DDR RAM jako standardowej pamięci w komputerach.
Licencja
Jako przedsiębiorstwo bez własnych działów produkcyjnych pamięci, Rambus prowadzi swój biznes poprzez wstawianie patentów, a potem licencjonowanie technologii, np. Nintendo wykupiło licencję na pamięć od Rambus dla swoich konsol N64. Jednakże najsławniejszym porozumieniem było to zawarte w 1996 r. z Intel Corporation, w którym Intel został zobligowany do używania RDRAM jako głównej technologii pamięci na wszystkich urządzeniach aż do 2002 roku.
W zamian Intelowi zostały dane udziały w zyskach za honoraria autorskie Rambusa. Zarząd Intela oczekiwał, że będzie to dochodowe źródło o wysokich wpływach. W rzeczywistości standard RDRAM nie okazał się popularny, a przedsiębiorstwa produkujące płyty główne kupowały moduły od VIA Technologies, które pracowały używając technologii SDRAM.
Pierwsze płyty główne w komputerach, które obsługiwały RDRAM, pojawiły się w 1999 roku. Obsługiwały PC 800 RDRAM, które pracowały przy częstotliwości zegara 800 MHz, podczas gdy przepustowość kości wynosiła 1600 MB/s na 16-bitowej magistrali, używającej 184 piny tworzące moduł pamięci RIMM. Były znacznie szybsze niż wcześniejszy standard PC 133 SDRAM, który pracował z częstotliwością 133 MHz i posiadał 64-bitową szerokość szyny danych (używającej 168 pinów tworzących moduł DIMM) i osiągał przepustowość dochodzącą do 1066 MB/s.
Do negatywnych cech technologii RDRAM należy zaliczyć wzrost opóźnień, zwiększenie wytwarzanego ciepła, złożoność produkcji i kosztów. PC 800 RDRAM pracuje z 45 ns opóźnieniem, a w PC 133 SDRAM opóźnienie wynoszą 7,5 ns. Kości pamięci RDRAM wydzielają także znacząco więcej ciepła niż kostki SDRAM. Każda pamięć RDRAM jest wyposażona w kontroler pamięci, co podnosi złożoność produkcji w porównaniu z SDRAM, który wyposażony była tylko w jeden kontroler pamięci, ulokowany na północnym brzegu modułu. Wysokie koszty produkcji i opłat ponoszonych przy kupnie licencji spowodowały, że ceny RDRAM były od 2 do 3 razy wyższe niż PC 133 SDRAM. Wprowadzony w 2000 roku DDR SDRAM pracował na wydajnym zegarze przy częstotliwości 266 MHz, a ponieważ model posiadał 64 bitową szerokość szyny danych (używającej 184 pinów tworzących moduł DIMM) mógł osiągnąć przepustowość dochodzącą do 2100 MB/s.
Z wprowadzeniem modułów i850 Intel postanowił dodatkowo używać podwójnego kanału PC 800 RDRAM, podwajając osiągana przepustowość 3200 MB/s poprzez wzrost szerokości magistrali do 32 bitów. W 2002 podążył za tym moduł i850E, który wprowadził PC 1066 RDRAM, poprzez maksymalny wzrost podwojonego kanału (dual-channel) i osiąganej przepustowości do 4200 MB/s. Także w 2002 roku Intel wypuścił na rynek moduł E7205 Granitebay, który umożliwił używanie podwójnego kanału DDR przy maksymalnej osiąganej przepustowości 4200 MB/s, ale z dużo niższym opóźnieniem niż w konkurencyjnym RDRAM. W 2003 Intel rozpowszechnił moduł i875P, a w nim podwójny kanał DDR 400, gdzie maksymalna osiągana przepustowość wynosiła 6400 MB/s i to oznaczało koniec RDRAM jako technologii z konkurencyjnymi osiągami.
Konsole do gier z pamięcią firmy Rambus
Nintendo 64 był pierwszą konsolą do gier wideo, która używała pamięć RDRAM. Wyposażona była w 4 MB pamięci, pracujące przy częstotliwości 500 MHz RDRAM. Expansion Pak dał dodatkowe 4 MB RDRAMu dając w sumie 8 MB.
32 MB RDRAMu było używane w konsolach do gier wideo Sony PlayStation 2. W 2005 Sony i Rambus ogłosiły, że PlayStation 3 będzie pracował z pamięcią XDR Rambus i procesorem Rambusa nazwany FlexIO.
OD 1999 R.
DIMM (ang. Dual In-Line Memory Module) - Złącza na płycie głównej w których można montować pamięci 168 pin SDRAM DIMMS, 184 pin DDR DIMMS, 240 pin DDR2 DIMMS
DDR SDRAM (ang. Double Data Rate Synchronous Dynamic Random Access Memory) - rodzaj pamięci typu RAM stosowana w komputerach jako pamięć operacyjna oraz jako pamięć kart graficznych. Produkowane do Pentium IV, Athlon, Duron, Sempron
Budowa
Pamięci te budowane są w obudowach TSOP jak i BGA i mogą wytrzymać temperaturę do 70°C. Kości przeznaczone dla płyt głównych zawierające moduły DDR SDRAM posiadają 184 styki kontaktowe i jeden przedział (w odróżnieniu od SDR SDRAM, który ma ich 168 oraz dwa przedziały).
Działanie
Produkcję pamięci DDR SDRAM rozpoczęto w 1999 roku. Jest ona modyfikacją dotychczas stosowanej pamięci SDRAM (ang. Synchronous Dynamic RAM). W pamięci typu DDR SDRAM dane przesyłane są w czasie trwania zarówno rosnącego jak i opadającego zbocza zegara, przez co uzyskana została dwa razy większa przepustowość niż w przypadku konwencjonalnej SDRAM typu PC-100 i PC-133. Kości zasilane są napięciem 2,5 V a nie 3,3 V, co wraz ze zmniejszeniem pojemności wewnątrz układów pamięci, powoduje znaczące ograniczenie poboru mocy.
Oznaczenia
Stosowane są dwa rodzaje oznaczeń pamięci DDR SDRAM. Mniejszy (np. PC-200) mówi o częstotliwości, z jaką działają kości. Natomiast większy (np. PC1600) mówi o teoretycznej przepustowości jaką mogą osiągnąć. Szerokość magistrali pamięci wynosi 64 bity. Przepustowość obliczana jest metodą:
DDR-200 (PC-1600) - (64 bity * 2 * 100 MHz)/8 = 1,6 GB/s
DDR-266 (PC-2100) - (64 bity * 2 * 133 MHz)/8 = 2,1 GB/s
DDR-333 (PC-2700) - (64 bity * 2 * 166 MHz)/8 = 2,7 GB/s
DDR-400 (PC-3200) - (64 bity * 2 * 200 MHz)/8 = 3,2 GB/s
OD 2003 R.
DDR2 SDRAM (ang. Double Data Rate 2 Synchronous Dynamic Random Access Memory) - kolejny po DDR standard pamięci RAM typu SDRAM, stosowany w komputerach jako pamięć operacyjna.
Pamięć DDR2 charakteryzuje się wyższą efektywną częstotliwością taktowania (533, 667, 800, 1066 MHz) oraz niższym poborem prądu. Podobnie jak DDR, pamięć DDR2 wykorzystuje do przesyłania danych wznoszące i opadające zbocze sygnału zegarowego.
Pamięci DDR2 budowane są w obudowach FBGA (ang. Fine-pitch Ball Grid Array). Mogą pracować w temperaturze do 70°C.
Moduły pamięci DDR2 nie są kompatybilne z modułami DDR. Obecnie DDR2 obsługiwane są zarówno przez procesory firmy Intel jak i AMD.
Kompatybilność wsteczna
Pamięci DDR2 nie są kompatybilne z ich poprzednikami. Wynika to z ilości pinów, gęstości ich rozstawienia, napięcia pracy oraz pewnych zmian konstrukcyjnych.
Dodatkowe informacje
Najszybsze z obecnie produkowanych pamięci DDR2 osiągają 1150MHz (standard PC2-9200), przy opóźnieniach na poziomie 5-5-5-15 oraz napięciu zasilającym 2,1V. Ponadto, zdarzają się również moduły kierowane dla określonej grupy osób, która od konkretnych komponentów wymaga podobnie konkretnych właściwości.
Różnice w stosunku do DDR
Moduły zasilane są napięciem 1,8 V, zamiast 2,5 V.
Układy terminujące zostały przeniesione z płyty głównej do wnętrza pamięci (ang. ODT, On Die Termination). Zapobiega to powstaniu błędów wskutek transmisji odbitych sygnałów.
DDR2 przesyła 4 bity w ciągu jednego taktu zegara (DDR tylko 2).
Podwojona prędkość układu wejścia/wyjścia (I/O) pozwala na obniżenie prędkości całego modułu bez zmniejszania jego przepustowości.
Liczba pinów została zwiększona ze 184 do 240.
Wycięcia w płytce pamięci umieszczone są w różnych miejscach, w celu zapobiegnięcia podłączenia niewłaściwych kości.
Oznaczenia chipów i modułów
OD 2007 R
DDR3 SDRAM (ang. Double Data Rate Synchronous Dynamic Random Access Memory (ver. 3)) - nowy standard pamięci RAM typu SDRAM, będący rozwinięciem pamięci DDR i DDR2, stosowanych w komputerach jako pamięć operacyjna.
Pamięć DDR3 wykonana jest w technologii 90 nm, która umożliwia zastosowanie niższego napięcia (1,5 V w porównaniu z 1,8 V dla DDR2 i 2,5 V dla DDR). Dzięki temu pamięć DDR3 charakteryzuje się zmniejszonym poborem mocy o około 40% w stosunku do pamięci DDR2 oraz większą przepustowością w porównaniu do DDR2 i DDR. Pamięci DDR3 nie będą kompatybilne wstecz, tzn. nie będą współpracowały z chipsetami obsługującymi DDR i DDR2. Posiadają także przesunięte wcięcie w prawą stronę w stosunku do DDR2 (w DDR2 wcięcie znajduje się prawie na środku kości).
Obsługa pamięci DDR3 przez procesory została wprowadzona w 2007 roku w chipsetach płyt głównych przeznaczonych dla procesorów Intel oraz zostanie wprowadzona w 2008 roku w procesorach firmy AMD.
Moduły DDR3
PC3-6400 o przepustowości 6,4 GB/s, pracujące z częstotliwością 800 MHz
PC3-8500 o przepustowości 8,5 GB/s, pracujące z częstotliwością 1066 MHz
PC3-10600 o przepustowości 10,6 GB/s, pracujące z częstotliwością 1333 MHz
PC3-12700 o przepustowości 12,7 GB/s, pracujące z częstotliwością 1600 MHz
PC3-15000 o przepustowości 15 GB/s, pracujące z częstotliwością 1866 MHz
PC3-16000 o przepustowości 16 GB/s, pracujące z częstotliwością 2000 MHz
Zalety w stosunku do DDR2
większa przepustowość przy niższym napięciu
mniejszy pobór prądu o 40%
Wady w stosunku do DDR2
Na ogół znacznie wyższe opóźnienia (timingi) lecz zrekompensowane przez wyższą przepustowość.
Na chwilę obecną koszt pamięci DDR3 jest o wiele wyższy od pamięci DDR2.
Źródła:
http://www.rambus.com/products/rdram/documentation/whitepapers.aspx/ - dokumentacja technologii RIMM
www.wikipedia.pl
,,Encyklopedia nauki i techniki”
http://v3r0m.atspace.com/
http://www.mim.pr.radom.pl/
,,Pamięć komputera”
„Pamięć. Nośniki i systemy przechowywania danych”
„Krótki kurs architektury i organizacji komputerów”