Pamięci dynamiczne RAM
Pamięci dynamiczne DRAM pozwalają uzyskiwać duże pojemności w pojedynczym układzie scalonym. Zasada działania komórki pamięci dynamicznej opiera się na magazynowaniu ładunku na określonej niewielkiej pojemności elektrycznej. Pojemność nie naładowana to logiczne 0 natomiast pojemność naładowana to logiczna jedynka. Sposób przechowywania tych danych powoduje konieczność cyklicznego „odświeżania” czyli doładowania tych pojemności.
Obsługa pamięci DRAM
Adres słowa na którym chcemy wykonać operację podawany jest w dwóch równych częściach zwanych adresem wiersza i adresem kolumny. Zmniejsza to ilość potzrebnych wyprowadzeń szyny adresoweji upraszcza konstrukcję dekoderów adresu.
Zamiast wejścia RW# jak w pamięci statycznej mamy w pamięci DRAM dwa wejścia :
OE# - (output enable)czyli zezwolenie na odczyt i
WE# - (write enable)czyli zezwolenie na zapis
Sygnał CE# - ( chip enable) jest równoważny sygnałowi uaktywniającemu w pamięci SRAM czyli CS#
Sygnały RAS# i CAS# są związane z wprowadzeniem adresu do pamięci
Układy logiczne(multipleksery) dokonują konwersji adresu na postać wymaganą przez pamięci DRAM.Sygnał podany na wejście S multipleksera wybiera czy starsza czy młodsza część adresu jest podawana na jego wyjście.
Poprawne zaadresowanie pamięci DRAM wymaga wykonania następujących czynności:
Podanie starszej części adresu na linie adresowe DRAM jako adresu wiersza a następnie wytworzenie aktywnego zbocza sygnału RAS# powodującego zapamiętanie tego adresu w rejestrze zatrzaskowym adresu wiersza
Odmierzenie określonego opóźnienia czasowego.
Podanie młodszej części adresu na linie adresowe pamięci DRAM jako adresu kolumny i wytworzenie aktywnego zbocza sygnału CAS# powodującego zapamiętanie tego adresu w rejestrze zatrzaskowym adresu kolumny
Następnie zgodnie z sygnałami sterującymi OE# lub WE# wykonywana jest operacja odczytu lub zapisu na zaadresowanym słowie. Po operacji odzcytu odmierzane jest kolejne opóźnienie czasowe przed rozpoczęciem następnego cyklu potrzebne do doładowania pojemności komórek pamiętających odczytywane słowo.
Wynika to stąd że w trakcie sprawdzania stanu takiej pojemności jest ona w znacznej mierze rozładowana
Przebiegi na wyprowadzeniach pamięci w przypadku odczytu:
Stan niski na wejściu OE# sygnalizuje operację zapisu.
Po pojawieniu się na wejściu adresowym pamięci adresu wiersza S=0 jest on zatrzaskiwany w rejestrze zatrzaskowym adresu wiersza opadającym zboczem sygnału RAS#.
Następnie sygnał S zmienia wartość na 1 co powoduje podanie na wejście adresowe pamięci adresu kolumny. Adres ten jest zatrzaskiwany w rejestrze zatrzaskowym kolumny opadającym zboczem sygnału CAS#.
Zbocze opadające sygnału CAS# musi zostać opóźnione w stosunku do zbocza opadającego sygnału RAS# o określony czas zwany opóźnieniem sygnału CAS# względem sygnału RAS# oznaczanego
tD RAS-CAS
Po zatrzaśnięciu adresu kolumny oraz zdekodowaniu adresu wiersza i kolumny zawartość zaadresowanego słowa pojawia się na wyprowadzeniach danych układu pamięci. Czas jaki upływa od momentu podania prawidłowego adresu przez zarządcę magistral do momentu pojawienia się poprawnych danych na magistrali adresowej jest czasem dostępu (tak jak w pamięciach SRAM). Czas ten oznaczony jesy przez
ta
Po odczycie zawartości słowa musi upłynąć kolejny odcinek czasu potrzebny do doładowania komórek pamięci odczytywanego słowa i dopiero wówczas może się rozpocząć kolejny cykl dostępu do pamięci.
Minimalny czas pomiędzy dwoma kolejnymi cyklami oznaczany jest przez tc
Operacja odczytu dla pamięci DRAM
Cylk magistrali - stany oczekiwania
Dostęp do pamięci musi się odbywać z zachowaniem określonych zależności czasowych. Praca magistrali taktowana jest zegarem o określonej częstotliwości, będącej zwykle podwielokrotnością częstotliwości zegara taktującego procesor. Wartość częstotliwości zależy od rodzaju magistarli (ISA, PCI). Zegar magistrali oznaczany jest przez BCLK (bus clock).
Dla magistrali ISA pojedynczy cykl magistrali realizowany jest w ciągu dwóch taktów zegara magistrali (BCLK) oznaczony przez Ts lub T1 (send status) oraz Tc lub T2 (perform command). Dla większych częstotliwości tego zegara lub wolniejszych pamięci konieczne jest opóźnienie wykonania operacji na pamięci. Przykładowo w przypadku operacji odczytu musimy odczekać aż na magistrali danych ustalą się prawidłowe wartości bitów odczytywanego słowa . Opóźnienie to jest realizowane przez wstawienie dodatkowych taktów zegara magistrali zwanych stanami oczekiwania(wait states)
Na przedstawionym poniżej rysunku pokazane są przykładowe cykle odczytu bez stanu oczekiwania i z jednym stanem oczekiwania oraz cykl zapisu z jednym z jednym stanem oczekiwania.
Cykle te mogą być rozdzielone czasem podczas którego na magistrali nie są wykonywane żadne operacje. Stan taki oznaczamy przez Ti nazywamy stanem uśpienia magistrali.
W celu uproszczenia wykresu pominięte zostały sygnały CAS i RAS(mógłby to być wykres czasowy dla pamięci statycznych.
Odświeżanie pamięci DRAM
Odświeżanie komórek pamięci DRAM polega na cyklicznym doładowywaniu pojemnosci pamiętających przechowujących wartość 1. Częstotliwość odświeżania zapewniająca poprawną pracę pamięci DRAM jest podawana przez producentajako parametr katalogowy, którego należy przestrzegać. Operacja odświeżania pamięci realizowana jest przez układy logiczne będące elementem płyty głównej.
Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM:
Sygnałem RAS
CAS przed RAS
Odświeżanie ukryte
Autoodświeżanie
Najczęściej soptykanym sposobem jest odświeżanie sygnałem RAS. Na sygnał z generatora odświeżania układy logiczne odświeżania przejmują kontrolę nad magistralami (stają się zarządcami magistral). Następnie podają one na magistralę adresową zawartość tak zwanego licznika odświeżania . Licznik ten adresuje kolejne wiersze przeznaczone do odświeżania i po każdym odświeżaniu kolejnego wiersza jest zwiększany o jeden. Po podaniu adresu generowany jest sygnał RAS powodujący odświeżanie zaadresowanego wiersza.
Dwa następne sposobywymagają obecności w układach pamięci wewnętrznego licznika odświeżania.
W sposobie CAS przed RAS sterownik DRAM wytwarza aktywny sygnał CAS a następnie sygnał RAS. W odpowiedzi na taką sekwencję układy pamięci DRAM odświeżają wiersz wskazywany przez ich wewnętrzny licznik odświeżania.
Przy odświeżaniu ukrytym po wytworzeniu aktywnych poziomów sygnałów RAS i CAS i odczycie komórki sygnał RAS zmienia kolejno stan na nieaktywny i aktywny przy stale aktywnym sygnale CAS. Powoduje to pozostawienie zawartości odczytywanej komórki na wejściach danych przy jednoczesnym (równoległym) odświeżaniu wiersza zaadresowanego przez wewnętrzny licznik odświeżania pamięci.
Odświeżanie automatyczne stosowane jest przy mniejszych pojemnościach pamięci dynamicznych. W tym przypadku układy logiczne odświeżania są zawarte wewnątrz układów pamięci a potrzebę odświeżania kolejnego wiersza sygnalizuje się aktywnym stanem na wejściu REFRESH# pamięci.
Dostep w trybie stronicowania
Dostęp do pamięci w trybie stronicowania jest sposobem na przyspieszenie współpracy z pamięcią DRAM. Wykorzystuje się tu dwie właściwości:
Większość odczytów wykonywanych jest spod kolejnych położonych obok siebie adresów, co oznacza że starsza część adresu(adres wiersza) nie zmienia się, a zmienia się jedynie adres kolumny.
Drugim wykorzystywanym faktem jest to że czas t D RAS-CAS stanowi ok. 50 % czasu dostępu. Jeżeli przy odczytach kolejnych słów nie będziemy zmieniać adresu wiersza a jedynie adres kolumny to czas dostępu do pamięci ulegnie skróceniu (o czas opóźnienia CAS względem RAS). Realizacja trybu ze stronicowaniem wymaga od procesora adresowania potokowego czyli podania następnego słowa jeszcze w czasie raalizacji dostępu do poprzedniego słowa.
Dostęp w trybie stronicowania
Pamięć parcująca w trybie stronicowania wymaga pewnych dodatkowych układów. Początek dostępu jest prawie identyczny jak dla zwykłych pamięci DRAM. Najpierw podany jest adres wiersza, który jest zatrzaskiwany w rejestrze zatrzaskowym wiersza wewnątzr pamięci. Adres ten jest jednak zapamiętywany również w rejestrze zatrzaskowym znajdującym się w bloku sterowania pamięcią DRAM. Następnie podawany jest adres kolumny zatrzaskiwany w rejestrze zatrzaskowym kolumny wewnątrz układu pamięci.
Kolejny dostęp różni się od poprzedniego. Po podaniu nowego adresu przez zarządce magistral jego część będąca adresem wiersza jest porównywana z zawartością rejstru adresu wiersza w układzie sterowania pamięcią. Jeżeli jest ona identyczna układ sterowania pamięcią DRAM utrzymuje stan niski sygnału RAS# do końca bieżącego cyklu odczytu. Dla pamięci DRAM pracującej w trybie stronicowania oznacza to że kolejny dostęp dotyczy słowa położonego w tym samym wierszu i należy wczytać jedynie adres kolumny. Powoduje to ominięcie generowania opóźnienia sygnału CAS# względem RAS# i załadowanie od razu adresu kolumny sygnałem CAS#
Dostęp w trybie seryjnym (Burst)
Dostęp w trybie seryjnym (ang. Burst) stosowany jest przy współpracy pamięci głównej z pamięcią cache. Pamięć ta odczytuje bądź zapisuje informacje liniami, których długość zależy od rozwiązania pamięci cache. Dla 32 bitowej(4bajtowej) magistrali danych do wypełnienia lini potrzeba 4 dostepów do pamięci. Operacje te dotyczą jednak kolejnych leżących obok siebie słów. Oznacza to że adres wiersza nie będzie się zmieniał, zaś adres kolumny przy każdym kolejnym dostępie będzie większy o jeden.
Jeśli wewnątrz pamięci umieścimy układ który będzie zwiększał wartość adresu kolumny o 1 przy każdym podaniu zbocza aktywnegosygnału CAS# to taka pamięć może pracować w trybie burst.
W trybie tym podajemy adres wiersza i kolumny pierwszego słowa . Następnie podajemy kolejne zbocze aktywne sygnału CAS# nie podając adresów kolumny gdyż generowany jest on wewnątrz pamięci. Zysk czasowy wynika z braku konieczności zapewnienia tzw. czasu ustalania oraz czasu przetrzymania dla adresu kolumny.
Pamięć SDRAM
Modyfikacja pamięci SDRAM polega na zsynchronizowaniu operacji pamięci z zewnętzrnym zegarem. Zmiana dotyczy więc interfejsu pomiędzy pamięcią a systemem. Opisywane do tej pory pamięci pracowały asynchronicznie w stosunku do procesora. Synchronizacja operacji pamięci z zegarem procesora pozwala osiągnąć optymalną szybkość współpracy obydwu układów. Pamięć SDRAM szczególnie nadaje się do współpracy z pamięcią podręczną cache.
Pamięci DDRAM są pamięciami typu SDRAM w których dane są przesyłane dwustronnie. Podwojenie szerokości pasma odbywa się przez wykorzystanie obu połówek sygnału (góra / dół) do przesyłania danych w jednym cyklu zegara.
Maksymalne obsługiwane częstotliwości to : FSB466 (2 x 233MHz
Pamięci DDR2
W związku z zwiększeniem częstotliwości magistrali procesorów pamięci DDR zaczęły pełnić rolę „wąskiego gardła” i aby tego uniknąć rozszerzono standard DDR o dodatkowe właściwości.
Główne różnice między DDR i DDR2 to obsługiwane częstotliwości:
W DDR2 obsługiwane są większe częstotliwości niż w DDR(nawet do 2x400Mhz)
Przegląd stosowanych pamięci DRAM
Na rynku jest obecnie kilka rodzajów pamięci dynamicznych RAM. Najstarsze pamięci typu FPM RAM mają czas dostępu rzędu 70 ns(nanosekund)
Jej następca pamięć EDO RAM dzięki zmniejszeniu cykli oczekiwania (adresowanie potokowe) pozwoliło zmniejszyć niemal o połowę czas oczekiwania.
Opisane powyżej pamięci zostały już wyparte z rynku po wprowadzeniu pamięci SD RAM czyli pamięci pracującej synchronicznie z zegarem systemowym.
Sygnały sterujące powodują wykonanie określonej operacji po pojawieniu się aktywnego zbocza (np. narastającego) na wejściu zegarowym, eliminuje to więc wystąpienie dodatkowych stanów oczekiwania w przypadku przesunięć czasowych. Pamięci SD RAM mają organizację 64 - bitową czyli dostosowaną do szerkości magistrali procesorów Pentium. Dodatkowo mogą być przystosowane do pracy w trybie burst. Nawet dla magistarli lokalnej 100 MHz ich wydajność jest bardzo dobra.
Rzadziej spotykanym typem są pamięci typu RDRAM charakteryzujące się dużą szybkością działania. Komunikacja z pamięcią odbywa się poprzez 8 bitową magistralę. Przesyłane są nią pakiety dotyczące wykonania operacji odczytu lub zapisu.. Transmisja taktowana jest zegarem RXCLK. Po wprowadzeniu żądania odczytu adresu wiersza jest on ładowany do bufora(z czasem dostępu rzędu 10 ns). Z buforów odczytywane są również adresy kolumn które są nastepnie transmitowane na zewnątrz.
Przykładowy schemat pamięci RDRAM
Moduły SIMM i DIMM
Pamięci DRAM w celu umożliwienia szybkiej ich wymiany umieszczane są w tzw. modułach. Obecnie spotyka się dwa rozdzaje modułów:
SIMM - o 32 bitowej szerokości magistrali danych
DIMM - o 64 - bitowej magistrali danych
Pamięci SDRAM są tworzone w modułach DIMM
Osobną grupę pamięci stanowią pamięci przeznaczone do kart graficznych. Oprócz standardowej technologi DRAM stosuje się też inne ich odmiany np.
VRAM do której dostęp mogą mieć równocześnie dwa układy np. mikroprocesor główny i procesor karty graficznej, co przyspiesza wykonywanie operacji graficznych.
SGRAM która jest pamięcią synchroniczną wzbogaconą o dodatkowe funkcje przeznaczone np. do współpracy z akcelatorami graficznymi
Pamięci ROM
Pamięć ROM (read only memory) jest pamięcią nieulotną przeznaczoną tylko do odczytu.
Określenie „tylko do odczytu” oznacza że w trakcie jej normalnej pracy w systemie . Niektóre typy pamięci ROM można jednak zapisywać oczywiście w określonych warunkach.
Podstawowymi typami pamięci ROM są:
MROM - pamięć której zawartość jest ustalana w procesie produkcji i nie może być zmieniana.
EPROM - pamięć wielokrotnie programowalna, przy czym kasowanie odbywa się poprzez naświetlanie promieniami UV. Zarówno kasowanie jak i programowanie odbywa się poza systemem w spacjalnych urządzeniach. Pamięć ta obecnie nie jest już stosowana
EEPROM - pamięć kasowalna i programowalna na dordze elektrycznej. Pamięci te można też wyjmować (w zależności od producenta) i programować specjalnym programatorem. W tego typu pamięci przechowywany jest Flash-BIOS czyli oprogramowanie które może być uaktualniane.
9