Politechnika częstochowska pamięć operacyjna Wykonali: marcin olejniczak



Pobieranie 94.36 Kb.
Data27.04.2016
Rozmiar94.36 Kb.

POLITECHNIKA CZĘSTOCHOWSKA




Pamięć operacyjna



Wykonali:

MARCIN OLEJNICZAK


SZYMON ŚWIERCZEK

Rok 2, sem. 3, grupa 6

Na początku rozwoju architektury PC jedynymi pamięciami były układy dynamiczne pracujące w trybie PM (Page Mode), a nieco później FPM Fast Page Mode). Wraz ze wzrostem prędkości procesorów pojawiła się potrzeba skrócenia czasu dostępu do pamięci, co do dziś stanowi główny czynnik rozwoju w tej dziedzinie. Zawsze tak się składało, że pamięć (a właściwie te jej odmiany, których niska cena uzasadniała powszechne użycie) nigdy nie nadążała za postępem w rozwoju samych procesorów. Teoretyczna moc obliczeniowa CPU redukowana jest przez wydłużony czas dostępu do pamięci. Najprostszym sposobem częściowej eliminacji tego niekorzystnego zjawiska jest wprowadzenie struktury wielostopniowej (początkowo dwustopniowej, a później trzystopniowej),w której to pamięć operacyjna (o stosunkowo długim czasie dostępu) połączona jest z procesorem poprzez pośrednią pamięć buforową (Cache) o czasie dostępu o rząd wielkości mniejszym. Buforowe pamięci podręczne realizowane są na podstawie statycznych układów (Static RAM),dzielących się na asynchroniczne i synchroniczne.

Pamięć operacyjna komputera PC to do dziś pamięć dynamiczna DRAM (Dynamic RAM).Technika i technologia przeszły w tym zakresie dosyć długą drogę. W ślad za układami konwencjonalnymi pierwszej generacji podążały kolejne udoskonalane odmiany : PM, FPM, EDO, BEDO, SDRAM. Dziedzina ta rozwija się nie przerwanie. Na rynek wprowadzanie są nowe odmiany pamięci, np.DDR, RDRAM, VC-SDRAM, HSDRAM.


Stały rozwój pamięci dynamicznych wymuszany był zawsze przez nieustające udoskonalenia procesorów. Architekturę mikrokomputerów cechuje bardzo intensywna wymiana danych z pamięcią. Połączenie między CPU a pamięcią operacyjną jest podstawowym kanałem informacyjnym, którym przesyła się (często nawet wielokrotnie tam i z powrotem) większość przetwarzanych informacji.

Elementarną jednostką pamięci (komórką) jest prosta struktura półprzewodnikowa składająca się z tranzystora i kondensatora. Prostota konstrukcji umożliwia ciasne upakowanie ogromnej ilości tego rodzaju układów na stosunkowo małym płatku krzemu. Wadą jest ulotność ładunku zgromadzonego w takim mikroskopijnym kondensatorze. Dla utrzymania logicznego stanu komórki (1 i 0 to kondensator naładowany lub nie) niezbędne okazuje się odświeżanie jej zawartości. Stąd też pochodzi nazwa pamięci dynamiczne, bowiem układy tego typu nigdy nie odpoczywają. Bez względu na to, czy pamięć jest w danym momencie wykorzystywana w cyklu zapisu lub odczytu, czy nie, w jej wnętrzu trwa nieprzerwany ruch mający na celu zachowanie zgromadzonej informacji.



Współczesne układy pamięci dynamicznych zawierają w sobie wiele setek milionów pojedynczych komórek. Aby zapanować nad tym chaosem, grupuje się je w prostokątne formacje (macierze) o określonej dla danej konfiguracji liczbie wierszy i kolumn (X x Y). Pojedyncza macierz nazywana jest płatem pamięciowym. Liczba płatów decyduje o szerokości szyny danych układu. Pojedynczy płat odpowiada organizacji X x Y x 1 bit. Aby osiągnąć szerokość 1 bajtu, potrzeba 8 płatków.

Macierz pamięciowa stanowi serce scalonego układu pamięciowego, ale nie jest jego jedynym elementem. Niemniej ważną rolę odgrywają układy dekoderów adresujących daną komórkę, zestawy precyzyjnych wzmacniaczy sygnałów, wychwytujące minimalne różnice napięć pomiędzy komórkami będącymi w stanach 1 i 0, system buforów wejścia i wyjścia, układy sterowania analizujące stan końcówek sterujących oraz obwody implementujące mechanizmy odświeżania.

Dostęp do takiego układu odbywa się w prosty i logiczny sposób. Za pomocą sygnałów kontrolnych określa się tryb dostępu dla danego cyklu (zapis lub odczyt). Końcówki adresowe układu scalonego podlegają multipleksowaniu, co oznacza, iż adres komórki przekazywany jest w dwóch porcjach (najpierw wiersz, a potem kolumna). Stosownie do aktualnego trybu dostępu, doprowadza informację do portu danych (odczyt) lub odbiera (zapis).



Architektura pamięci matrycowej

Pamięć operacyjna komputera składa się z wielu elementów pamiętających poszczególne bity informacji. Elementy te muszą być ze sobą połączone i to w sposób, który pozwoli zminimalizować ilość połączeń. Jak już wspomniano wcześniej, im większa ilość połączeń tym większy koszt urządzenia i tym mniejsza niezawodność. Podstawową architektura pamięci została przedstawiona na rysunku poniżej:



Jest to tzw. matryca pamięci. Linie poziome to linie adresowe - dzięki nim układ może określić adres odczytywanego słowa. W miejscach pamiętania logicznej jedynki widać poszczególne komórki pamięci. Na razie zaznaczone są tylko w postaci diod półprzewodnikowych (o tym za chwilę). Wyjściem układu są linie danych.

Działanie matrycy pamięci przedstawiono poniżej:

Rysunek przedstawia przykład odczytu danej ośmiobitowej z adresu 7. Na siódmą linię podana została logiczna jedynka. Na wszystkich liniach danych połączonych z tą linią adresową pojawia się więc stan wysoki. Ponieważ jednak te linie są połączone również z innymi liniami adresowymi konieczne jest zapewnienie, że napięcie "nie przejdzie" na nie - spowodowałoby to możliwość pojawienia się błędnej liczby na wyjściu. Stąd konieczność zastosowania diod półprzewodnikowych.

Pamięć skonstruowana według powyższego schematu charakteryzuje się jedną cechą - nie można do niej zapisać danych inaczej niż poprzez odpowiednie zaprojektowanie połączeń. Ponieważ dzieje się to jeszcze przed wyprodukowaniem układu scalonego, możemy stwierdzić, że jest to pamięć tylko do odczytu (ang. Read Only Memory.- ROM).

W zależności od potrzeb zamiast diod w pamięci matrycowej mogą znaleźć się i inne układy pamiętające.



Układy pamiętające

Podstawową cechą pamięci ROM jest brak możliwości jej zaprogramowania na etapie użytkowania. Z drugiej strony niska cena zapisu pojedynczego bitu powoduje, że produkcja urządzeń z pamięcią ROM jest bardzo opłacalna. W związku z tym producenci sprzętu stosują tę pamięć wtedy, gdy dysponują ostateczną i przetestowaną wersją oprogramowania.

Wadą tego rozwiązania jest również fakt, że kości trzeba wykonywać na zamówienie, co opłaca się dopiero przy bardzo dużej skali produkcji.

Dość dawno temu pojawiły się więc pamięci programowalne - PROM (Programmable ROM). Pomysł polegał na tym, aby diody znajdowały się na wszystkich połączeniach linii adresowych z liniami danych tak, jakby pamięć została zaprogramowana samymi jedynkami. W procesie programowania przepuszczano przez odpowiednią diodę dość duży prąd powodujący jej zniszczenie. A tam, gdzie nie było diody w matrycy pojawiało się zapisane zero logiczne. Oczywiście taki zapis był jednorazowy i wymagał odpowiedniego sprzętu.

Pierwszymi pamięciami wielorazowego zapisu były pamięci EPROM (Erasable PROM). Tutaj w komórce pamięci dioda jest podłączona szeregowo do małego układu zawierającego kondensator. Schemat tego układu nie jest dla nas istotny, ważny jest natomiast fakt, że przewodzi on prąd tylko wtedy, gdy kondensator jest rozładowany. Zapisana jest wtedy logiczna jedynka. Proces programowania nie polega więc na zniszczeniu komórki pamięci, ale na naładowaniu właściwego kondensatora, co powoduje odcięcie linii adresowej od linii danych i zapisanie zera logicznego.

Aby skasować pamięć i przygotować ją do programowania należy więc rozładować wszystkie kondensatory z poszczególnych komórek pamięci. W czasach projektowania pamięci EPROM takie zaprojektowanie układu kasującego, aby pamięć nie uległa skasowaniu podczas normalnej pracy było dość trudne, toteż zdecydowano się na zastosowanie kasowania przy pomocy promieniowania ultrafioletowego. Z tego względu pamięci EPROM można łatwo poznać po szklanym okienku znajdującym się na wierzchu układu scalonego.

Proces powtórnego programowania pamięci EPROM składa się więc z dwóch etapów:


  • skasowanie zawartości pamięci w specjalnym kasowniku EPROM - ów (wpisanie do pamięci jedynek),

  • zaprogramowanie (wpisanie programu) do pamięci przy pomocy programatora.

Pamięci EPROM zdobyły sobie na świecie bardzo dużą popularność i praktycznie są stosowane do dziś. Pojawiło się również rozwiązanie pamięci typu EEPROM (Electrically Erasable PROM), w której dodano układ kasowania elektrycznego - wyeliminowało to konieczność stosowania kasownika.

Pamięci typu ROM muszą zawierać stałe oprogramowanie, program użytkownika nie może zapisać danych. Wiadomo zaś, że każdy program musi mieć miejsce do przechowywania swoich zmiennych - pamięć operacyjną.

Musi to być więc pamięć z możliwością zapisu. Taką pamięcią jest tzw., pamięć o dostępie swobodnym (RAM - Random Access Memory). Tutaj jednak zamiast prostych układów opartych na diodach w komórkach pamięci występują przerzutniki. Oprócz standardowej matrycy w kostce pamięci znajdują się również połączenia określające, czy następuje operacja zapisu, czy odczytu.

Komórka pamięci zawiera więc oprócz np. standardowego przerzutnika D bramkę, która "dopuszcza" lub nie, sygnały pochodzące z linii danych. Zapis danej do komórki jest uwarunkowany pojawieniem się dwóch sygnałów:



  • sygnału zapisu,

  • sygnału na właściwej linii adresowej.

Informacja wpisana do komórki zależy zaś od stanu linii danych. Operacja zapisu do takiej pamięci składa się z następujących etapów:

  • ustawienie na szynie adresowej adresu komórek składających się na pojedyncze słowo danych,

  • ustawienie zapisywanej liczby na szynie danych,

  • ustawienie sygnału WRITE.

Analogicznie, odczyt to:

  • ustawienie na szynie adresowej adresu komórek składających się na pojedynczy bajt,

  • ustawienie sygnału READ,

  • odczyt danej z szyny danych.

Sygnały READ/WRITE są zazwyczaj przesyłane jako jeden bit informacji (0/1) po jednej linii sterującej). Oprócz linii READ/WRITE na szynie sterującej znajdują się również inne sygnały takie jak:

  • CS (Chip Select) - wybór układu scalonego, linia przydatna w przypadku korzystania z kilku układów scalonych podłączonych do jednej magistrali,

  • CLOCK - linia zegarowa, umożliwiająca synchronizację poszczególnych układów.

Jedynym problemem jest fakt, że w takim układzie linie danych wpisywanych nie mogą być połączone z liniami danych odczytywanych, gdyż połączenie wyjścia i wejścia przerzutnika (tzw. sprzężenie zwrotne) mogłoby doprowadzić do nieoczekiwanych efektów. Faktycznie więc linie danych muszą być zdublowane. Oczywiście, specjalne układy (o których mowa będzie na następnych stronach) umożliwiają wyprowadzenie na zewnątrz tylko jednej szyny danych i jednej szyny adresowej.

Niestety takie rozwiązanie oprócz zalet konstrukcyjnych ma i wady. Otóż w momencie, gdy procesor próbuje zapisać daną do pamięci, żaden inny układ nie może tej pamięci odczytywać. W systemach, w których jeden główny procesor obsługiwał całe urządzenie nie stanowiło to problemu. Gorzej, gdy z tej samej pamięci mają korzystać np., procesor główny i sterownik karty graficznej. Oczywiście sterownik karty graficznej nie może czekać na odczyt z pamięci obrazu, gdyż objawiłoby się to nieprzyjemnym śnieżeniem ekranu. Procesor główny musi więc czekać, a to negatywnie wpływa na szybkość działania całości. Dlatego też w nowoczesnych kartach graficznych stosowane są pamięci tzw. VRAM (Video RAM), które mają po dwa komplety szyn danych i adresowych i umożliwiają jednoczesny zapis i odczyt danych. Oczywiście, przerzutnik D jako komórka pamiętająca stanowi jedynie przykład. Są już dostępne układy pamiętające znacznie bardziej skomplikowane, charakteryzujące się znacznie krótszymi czasami przełączania - średni czas dostępu rzędu 10 milisekund! Niektóre z tych układów wymagają, aby co jakiś czas doprowadzić do nich specjalny sygnał odświeżania danych - one tworzą tzw. RAM Dynamiczny (Dynamic RAM). Są takie, które odświeżania nie wymagają - to układy RAM-u Statycznego (Static RAM). Niewykluczone, że już wkrótce pojawią się i inne lepsze - jednak zasada połączenia pozostaje ta sama.

Połączeniem cech pamięci RAM i ROM są pamięci tzw. Flash. Pomimo tego, że są to pamięci ROM korzystając z odpowiedniego algorytmu zapisu można wpisać do nich potrzebne dane. Umożliwia to producentowi np., płyty głównej komputera systematyczne udostępnianie nowszych wersji oprogramowania zarządzającego płytą (BIOS). Wiele takich uaktualnień można znaleźć w Internecie. Wiąże się to jednak z pewnymi zagrożeniami: programowanie musi przebiegać bez przerw i zakłóceń, inaczej komputer może się nam nie uruchomić. Innym zagrożeniem są oczywiście wirusy komputerowe.

Aby uniemożliwić wirusowi atak na pamięć FLASH producenci umieszczają zazwyczaj na płycie specjalną zworkę (oznaczoną np. FLASH ENABLE), której zwarcie umożliwia zapis.


Pamięć n*m bitów

Pamięć jest zorganizowana w postaci matrycy komórek pamiętających. Aby w prosty sposób określić pojemność takiej pamięci podajemy wymiary matrycy. I tak, gdy pamięć zorganizowana jest w 16 wierszy i 8 kolumn, powiemy o pamięci 16x8bitowej.

Układ matrycy pamiętającej (zwany też enkoderem) w zupełności wystarcza jedynie w przypadku konstruowania pamięci o pojemnościach rzędu kilku bitów. Problem się pojawia w momencie, gdy chcemy mieć pamięć o większej pojemności. Pamiętajmy, że linie adresowe w matrycy muszą być odpowiednio wysterowane. Oznaczałoby to konieczność zastosowania dużej liczby wyprowadzeń w układzie scalonym.

Najprostszym rozwiązaniem jest dodanie na wejściu układu dekodującego adres wykonanego jako dekoder kodu 1 z n. W tej sytuacji do wejść układu scalonego doprowadzamy liczbę binarną odpowiadającą numerowi wiersza matrycy.



Z tego rozwiązania wynika od razu pewna zasada określająca standardowe pojemności pamięci. W przypadku, gdy układ ma np. 9 wejść - oznacza to N = 29 = 512 linii adresowych. A ogólnie - ilość słów zapisanych w pamięci musi być potęgą dwójki! Gdy m=4, to pamięć ma pojemność 512*4=2048bit=2Kbity.

Adresowanie 2D

W przypadku, gdy mamy pamięć o dużej pojemności matryca będzie długa i wąska. W naszym przypadku 512 linii i 4 kolumny, a jest to pamięć tylko 2Kbity!. W skrajnych przypadkach, gdy wymiar N jest dużo większy od m, wykonanie takiego enkodera byłoby praktycznie niemożliwe. Z drugiej strony zauważmy, że do konstrukcji dekodera 1 z N musielibyśmy zastosować N bramek AND. W takiej sytuacji można zastosować tzw. adresowanie dwuwymiarowe: n wejść adresowych dzielimy na k kolumn i w wierszy. W naszym przykładzie może to być dla n=9, 3 kolumny i 6 wierszy.




Dekoder wejściowy przetwarza 6 bitów adresu na jedną z 26=64 linii adresowych. Aby zachować pojemność 2Kbity potrzeba nam więc 32 linie danych (32*64=2048). Enkoder 32*64bity to już całkiem przyzwoite proporcje wymiarów (znacznie lepsze niż 512*4bity).

Pozostaje problem, jak z 32 linii danych wydzielić słowa 4-bitowe. Otóż na wyjściach enkodera podłącza się cztery ośmiowejściowe multipleksery sterowane trzema pozostałymi bitami adresowymi. Każdy z nich przesyła na wyjście sygnał z tylko jednej linii enkodera, otrzymujemy zatem słowo 4-bitowe (po jednym bicie z każdego multipleksera).


PAMIĘĆ OPERACYJNA RAM.

Tryb Konwencjonalny PM (Page Mode)
Najstarszy tryb dostępu do pamięci dynamicznej to oddzielne adresowanie wiersza i kolumny dla każdego cyklu. Adres wiersza zdejmowany jest przez układ pamięciowy z szyny adresowej w momencie wykrycia opadającego zbocza sygnału sterującego ~RAS (Row Address Select). Po zatrzaśnięciu tego fragmentu adresu w rejestrze wejściowym następuje krótkotrwałe zwolnienie szyny adresowej, po czym odkłada się na niej fragment adresu odpowiedzialny za numer kolumny. Adres ten wprowadzany jest do układu pamięciowego w momencie zdekodowania opadającego zbocza sygnału sterującego ~CAS (Column Address Select).
ODCZYT

Układ pamięciowy ocenia w momencie zdejmowania adresu kolumny również stan końcówki ~WE. Jeżeli jest on wysoki, rozpoznany zostaje cykl odczytu i zawartość zaadresowanej komórki wyprowadzana jest na szynę danych.


Rys.1. Cykl odczytu pamięci dynamicznej – tryb konwencjonalny.


ZAPIS

Jeżeli linia sterująca ~WE znajduje się na poziomie niskim, układ rozpoznaje cykl zapisu i pobiera dane z szyny danych. Tryb adresowania komórki jest taki sam, jak w przypadku odczytu.


Rys.2. Cykl zapisu pamięci dynamicznej – tryb konwencjonalny.



FPM (Fast Page Mode)
FPM (Fast Page Mode) - idea tego rozwiązania jest bardzo prosta: ograniczymy czas dostępu do pamięci pobierając po kilka bitów następujących po sobie jednocześnie. Konkretnie padło na 4 bity w obrębie wiersza, adres komórki (kolumna i wiersz) jest podawany tylko w pierwszym cyklu, pozostałe 3 cykle to operacje na kolejnych 3 komórkach. Rozwiązanie takie ma sens ponieważ przetwarzany przez komputer kod jest zwykle skupiony w jednym wycinku przestrzeni adresowej. Od momentu wprowadzenia tej pamięci pojawiły się oznaczenia typu 5-3-3-3, jest to skrótowy sposób przedstawiania z jaką prędkością działa RAM, każda cyfra oznacza po prostu ile cykli zegara jest potrzebne na zaadresowanie któregoś bajtu. Pierwsza liczba jest z natury rzeczy większa, ponieważ musi zostać uzgodniony adres bazowy, będący odniesieniem dla następnych 3 bajtów.

Tryb FPM oferuje pewne skrócenie czasu dostępu. Różnica w stosunku do trybu konwencjonalnego polega na uproszczeniu mechanizmu adresowania.

Dostęp do dowolnej komórki pamięci operacyjnej PC nie odbywa się poprzez odczytanie (lub zapis) tylko jednej wartości. Szczegóły konstrukcyjne wynikające z samej architektury (magistrale) narzucają bardziej racjonalny styl postępowania; wymiana danych między pamięcią a resztą systemu odbywa się w porcjach po kilka bajtów na raz. Postępowanie takie nie jest pozbawione sensu, zwłaszcza że przetwarzane przez komputer kody (dane i programy) skupione są zwykle w pewnym spójnym wycinku przestrzeni adresowej i w dużej mierze przylegają do siebie.

Przyjmując powyższe założenie, adres wiersza przekazuje się do układu pamięciowego tylko raz na cztery cykle dostępu, które razem tworzą swego rodzaju pakiet (Burst). Pozostałe trzy cykle dostępu mają domyślnie ten sam adres wiersza, a tylko zmienny adres kolumny. Czas trwania poszczególnych cykli pakietu (mierzonych w jednostkach zegarowych magistrali) podaje często w formie czterech liczb oddzielonych od siebie kreską, np. x-x-x-x. Pierwsza liczba informuje o czasie trwania pierwszego cyklu (jest z natury rzeczy większa od pozostałych, gdyż przekazywany jest adres wiersza i kolumny), a pozostałe odnoszą się do olejnych seryjnych cykli dostępu w obrębie tego samego wiersza. Im liczby te są mniejsze (optymalnie 1-1-1-1), tym wymiana danych przebiega szybciej. Pamięci FPM umożliwiają osiągnięcie w najlepszym razie stanu 5-3-3-3 (przy taktowaniu zegarem 66 MHz).


ODCZYT

Linia kluczująca adresu wiersza ~RAS utrzymuje się na poziomie niskim do czasu zakończenia ostatniego cyklu pakietu. Odczyt rozpoznawany jest dzięki utrzymywaniu linii ~WE na poziomie wysokim.


Rys.3. Cykl odczytu pamięci dynamicznej – FPM


ZAPIS


Zapis nie różni się od odczytu niczym szczególnym, prócz zmiany poziomu linii sterującej ~WE. Jej stan musi być utrzymywany na poziomie niskim.
Rys.4. Cykl zapisu pamięci dynamicznej – FPM


EDO (Extended Data Out)
Pamięci dynamiczne EDO stanowiły kolejny etap rozwoju prowadzącego do skrócenia czasu dostępu. Nie była to z pewnością propozycja szczególnie nowatorska, raczej drobna poprawka w układach sterowania (a konkretnie w buforach wyjściowych). W momencie wprowadzenia na rynek układy EDO były zdecydowanie droższe od pamięci konwencjonalnych, ale ich szybkie rozpowszechnienie spowodowało zwiększony popyt i spadek cen. Potem sytuacja się zmieniła i pamięci konwencjonalne stały się droższe, gdyż były produkowane w śladowych ilościach. Jak to często bywa, powszechną akceptację rynku zdobywają często rozwiązania nie tyle rewolucyjne, co proste i tanie.

EDO jest odmianą pamięci DRAM i udostępnia pasmo powyżej 200MB/s. W czasie odczytu dane utrzymywane są na wyjściu aż do chwili, gdy pole pamięci gotowe jest do przekazania następnego bitu. Zachodzenie na siebie kolejnych cykli jest podstawą pracy w stylu Burst. Cztery połączone ze sobą układy taktowane zegarem 50Hz osiągają maksymalny transfer 400MB/s. Średnia prędkość transmisji jest mniejsza. Pamięci te były stosowane bardzo powszechnie.



EDO RAM (Extended Data Out RAM) - jest to rozwiązanie nieco nowsze i nieco szybsze od poprzedniego. Moduł EDO to właściwie FPM, tylko zachowujący się trochę inaczej. FPM przy odczycie 3 ostatnich bitów zachowywał się dość nieefektywnie, a mianowicie uzgadniał adres powiedzmy 3 komórki dopiero po zakończeniu odczytu z 2, tym czasem można się tym spokojnie zająć już w czasie odczytu komórki poprzedzającej i taką właśnie odkrywczą ideę wprowadzono w EDO. Dzięki temu udało się zejść z wartości 5-3-3-3 (typowej dla FPM) do 5-2-2-2 (typowej dla EDO).
ODCZYT

Charakterystyczne dla EDO jest to, iż aktualny cykl dostępu do pamięci może się rozpocząć przed zakończeniem cyklu poprzedniego, a dane utrzymywane są na wyjściu przez dłuższy niż w przypadku pamięci konwencjonalnej lub FPM. W trybie konwencjonalnym i FPM wzmacniacze wyjściowe odcinały dane w momencie wykrycia narastającego zbocza ~CAS. Parametry dostępu do EDO w trybie Burst mogą osiągać w optymalnych warunkach wartości 5-2-2-2.


Rys.5. Cykl odczytu pamięci dynamicznej – EDO.

ZAPIS
Korzyści płynące z zastosowania pamięci tego typu pojawiają się jedynie w czasie realizacji cykli odczytu. Zapis do EDO nie różni się niczym od dostępu do pamięci konwencjonalnej.


Rys.6. Cykl zapisu pamięci dynamicznej – EDO.




BEDO (Burst EDO)
BEDO RAM (Burst EDO RAM) - zasadniczą zmianą w pamięciach tego typu w stosunku do powyższego jest umieszczenie licznika adresów wewnątrz modułu, dzięki czemu kontroler pamięci musi się odwoływać tylko do pierwszej komórki, pozostałe 3 załatwiają się samoczynnie (ich adresy zostają wygenerowane już w RAM-ie).

Pamięci tego typu stanowią kombinację dwóch idei – wydłużenia czasu obecności danych na końcówkach wyjściowych (EDO) oraz strumieniowania (Pipelining).O BEDO można wspomnieć wyłącznie w aspekcie historycznym, gdyż mimo niewielkiego kosztu wprowadzonych poprawek (uzyskiwane efekty są niewspółmiernie większe), pamięci te nie doczekały się szerokiej akceptacji, aż wreszcie o nich zapomniano. Główna przyczyna tego stanu rzeczy leży w architekturze scalonych układów sterowników płyt głównych typu 430VX i 430TX firmy INTEL, które dominowały na rynku w momencie narodzin BEDO. Obydwa układy nastawione były od początku na pamięci synchroniczne (SDRAM), a wsparcie dla BEDO nie zostało w nich w ogóle zaimplementowane.

Parametry Burst wynoszą dla BEDO 5-1-1-1 i sięgają wartości typowych pamięci synchronicznych. Osiąga się to dzięki uproszczonemu sposobowi adresowania. Adres pokazuje się tylko raz na cały poczwórny cykl Burst i odnosi się on do początku obszaru. Pozostałe trzy adresy generowane są we wnętrzu układu. Sygnał ~CAS pełni od momentu przekazywania adresu C1 funkcje zegara kluczującego, a chip BEDO reaguje podobnie do pamięci SDRAM, udostępniając dane z trzech kolejnych komórek pamięci.
Rys.7. Cykl odczytu pamięci dynamicznej – BEDO.



Porównanie

Różnice w trybie pracy czterech podstawowych typów asynchronicznych pamięci dynamicznych najlepiej można zobrazować na jednym rysunku, uwzględniając wspólną skalę dla osi czasu.

Rys.8. Porównanie trybów pracy pamięci dynamicznych.


SDRAM

SDRAM (Synchroniczny DRAM) - obecnie najbardziej rozpowszechnione, moduły te trochę bardziej odstają od reszty tu opisanych, o ile powyższe były asynchroniczne (tzn. nie były uzależnione od częstotliwości taktowania magistrali, pracowały samodzielnie) to taktowanie SDRAM-u jest ściśle powiązane z taktowaniem magistrali pamięciowej. Nowinką jest również przeniesienie obowiązku odświeżania komórek z zewnętrznego kontrolera do wnętrza modułu, każda kość teraz sama dba o to by dane nie zostały utracone. Pamięć synchroniczna może już pracować w cyklu dostępu 5-1-1-1, podobnie jak BEDO, jednak SDRAM może spokojnie być taktowany częstotliwościami rzędu 100 MHz, czego BEDO nie wytrzym


Architektura PC od dłuższego czasu domagała się szybszych pamięci. Mała przepustowość magistrali pamięciowej stawała się szczególnie kłopotliwa w miarę wzrostu częstotliwości taktowania CPU. W chwili wprowadzenia Pentium II stało się oczywiste, że modele taktowane zegarem powyżej 350 MHz nie mogą efektywnie współpracować z magistralą pamięciową 66 MHz. Nie mniejszy nacisk wywoływało powołanie do życia podstawki Super 7, której specyfikacja dopuszczała podwyższenie przepustowości poza zakres oferowany przez szynę 66 MHz. Główny problem polegał na tym, że dotychczas stosowanych pamięci nie dało się

dostosować do nowych wymogów – nie można było bezkarnie zwiększać ich częstotliwości pracy.

Pamięci dynamiczne SDRAM (S = synchroniczne) nie różnią się w swej naturze od innych pamięci dynamicznych; nośnikiem informacji jest nadal matryca komórek, bazujących na kondensatorach i tranzystorach wykonanych w technice CMOS. Inne są natomiast sposoby sterowania taką matrycą oraz technika dostępu.

Wszelkie sygnały sterujące SDRAM synchronizowane są z jednego przebiegu zegarowego. Ułatwia to integrację pamięci w systemie (współpraca z magistralami), bowiem znacznie prościej jest utrzymać (mimo podwyższonych częstotliwości taktujących) i zagwarantować zaostrzone reżimy czasowe.

Dostęp do pamięci SDRAM, jakkolwiek możliwy w klasycznym trybie pojedynczych cykli, ma miejsce z reguły w formie cykli zgrupowanych (Burst). Dostęp grupowy obejmuje swoim zasięgiem 2, 4 lub 8 kolejnych lokalizacji albo też rozciąga się na cały wiersz (Page). Adres początkowy grupy przenoszony jest w pierwszym cyklu wprowadzającym (Lead off). Reszta adresów określana jest w sposób domniemany, a ich wytwarzaniem zajmuje się wewnętrzny licznik pamięci. Dostęp może mieć charakter sekwencyjny i przemierzać kolejne adresy logiczne (choć niekoniecznie musi zaczynać się na początku takiej czwórki, np. przyjmować formę 1, 2, 3, 0) lub przebiegać według pewnego określonego szablonu (Interleave), np. w kolejności 2, 3, 0, 1 w obrębie grupy poczwórnej. Burst może zostać przerwany (przejście w tryb Suspend) i ponownie wznowiony, a jego poszczególne elementy – opuszczone (sygnał DQM).

Przed przystąpieniem do pracy układ SDRAM musi zostać zaprogramowany. Operacja ta dokonywana jest na polecenie BIOS-u i odbywa się zwykle w momencie włączenia komputera. W fazie tej do pamięci SDRAM przekazywane są informacje o charakterze konfiguracyjnym – długość i typ dostępu grupowego oraz niektóre parametry czasowe. Dane te umieszczane są w specjalnym rejestrze konfiguracyjnym (Mode Register).

Większość układów SDRAM dzieli się na niezależne bloki (zwykle 2 lub 4) nazywane bankami. Banki są na tyle autonomiczne, że można je wykorzystać niezależnie od siebie. Umożliwia to zręczne ukrywanie niektórych opóźnień czasu dostępu, np. cyklu wprowadzającego (Lead Off – Row Access Time) przy konieczności zmiany wiersza (Page Miss). Układ pozoruje wówczas tzw. wydłużony cykl grupowy (Extended Burst) oznaczany symbolicznie sygnaturą X-1-1-1-1-1-1-1.

Problem odświeżania przeniesiony został całkowicie do wnętrza SDRAM, a kontroler pamięci nie jest już nim obarczany. Każdy chip wyposażony jest we własny generator pobudzający w odpowiednim rytmie wszystkie wiersze matryc.

SDREAM to kolejny krok naprzód w dziedzinie rozwoju układów pamięci, ale z pewnością nie rozwiązuje jeszcze wszystkich problemów. Zalety tej techniki stają się widoczne (i mierzalne) w określonych warunkach. Czas opóźnienia, mierzony od momentu przyłożenia adresu do momentu pojawienia się pierwszych danych, jest nadal stosunkowo długi. Wynosi on około 5 cykli zegarowych, czyli jest porównywalny z wartościami typowymi dla EDO i FPM. Burst 5-1-1-1 możliwy był do osiągnięcia również przez BEDO, a więc technologię, która mogła wcześniej wejść do użycia. Różnica uwidacznia się dopiero przy wzroście częstotliwości taktowania magistrali powyżej 66 MHz. Techniki EDO i FPM nie sięgają tak wysoko. Pojedynczy cykl dostępu do SDRAM trwa przy częstotliwości 100 MHz tylko10 ns, Burst obejmujący swym zasięgiem cały wiersz pamięci dostarcza potężny strumień danych w tym właśnie tempie.

Dla lepszego zrozumienia techniki SDRAM oraz zjawisk zachodzących we wnętrzu pamięci tego typu omówimy dokładniej konkretny układ scalony. Za przykład posłuży chip SDRAM firmy Texas Instruments oznaczony symbolem TMS664414. Uproszczony schemat blokowy tego układu przedstawia rysunek.



Prezentowany układ stanowi jednostkę pamięci o sumarycznej pojemności 64 MB. Jest on zorganizowany w formie czterech banków po 16 MB. Słowo pamięci ma wymiar 4 bitów (szerokość magistrali danych), co oznacza, iż każdy bank mieści 4 194 304 słów. Konfigurację takiego układu określa się w skrócie jako 4Mx4x4.


Magistrala danych. Każdy z banków omawianego układu wyprowadza po cztery linie danych, co oznacza, że magistrala danych jest czterobitowa, a banki są całkowicie niezależne.

Maskowanie wejścia i wyjścia. Linia DQM umożliwia wycinanie pojedynczych elementów z pakietów Burs, np. a-b-x-d zamiast a-b-c-d. W normalnym trybie pracy stan linii DQM utrzymywany jest na niskim poziomie logicznym. Podniesienie poziomu DQM do wysokości logicznej 1 powoduje:

  • w trakcie trwania zapisu – ignorowanie porcji danych, która byłaby przyjęta przez SDRAM w momencie wyznaczonym przez narastające zbocze sygnału CLK.

  • w trakcie trwania cyklu odczytu – z sekwencji wyjściowej wycinana jest porcja danych, a w fazie czasowej, w której miałaby wystąpić, układ przechodzi w stan wysokiej impedancji.


Magistrala adresowa i selektor banku. Magistrala adresowa jest

dwunastobitowa (A0 – A11) i podlega multipleksowaniu – tymi samymi liniami podawane są różne fragmenty adresu w wydzielonych wycinkach czasowych. W pierwszej kolejności przekazuje się adres wiersza, a następnie adres kolumny. Szczególne znaczenie ma linia A10, która decyduje o trybie deaktywacji.

Linie BS0 i BS1 umożliwiają wybór do bieżącej operacji jednego z czterech banków układu. Selektory banków można przypisać do magistrali adresowej, co powoduje jej wydłużenie do rozmiaru 14 bitów (A0 – A13).

Sygnały sterujące ~RAS, ~CAS, ~WE. Oznaczanie aktualnej fazy podawania adresu dokonywane jest poprzez sygnały sterujące ~RAS (wiersz) i ~CAS (kolumna).

Linia ~WE pełni rolę przełącznika zapisu i odczytu.



Linia ~CS (Chip Select). Stan końcówki ~CS testowany jest przy każdym narastającym zboczu CLK. Urządzenie znajduje się w stanie aktywnym dopóty, dopóki ~CS pozostaje na poziomie zera logicznego. Wykrycie poziomu 1 powoduje przejście w stan, w którym sterowniki DQ odcinają się od magistrali (stan wysokiej impedancji), a układ nie reaguje na żadne sygnały wejściowe z wyjątkiem ~CS. Funkcje sterujące oferowane przez ~CS znajdują zastosowani w przypadku grupowani pojedynczych chipów SDRAM w moduły pamięci.

Końcówki CLK (Clock) i ~CKE (Clock Enable). CLK jest centralnym zegarem sterującym, do którego odnoszą się wszystkie inne sygnały. Układ pamięci SDRAM rejestruje stan wszystkich końcówek wejściowych w momencie wykrycia narastającego zbocza sygnału CLK. Poziom sygnałów na wyjściach układu należy również oceniać w tych samych momentach.

~CKE stanowi bramkę blokującą lub przepuszczającą sygnał zegarowy do wnętrza układu. W normalnym stanie pracy ~CKE znajduje się na wysokim poziomie logicznym. Wymuszenie stanu 0 na tym wejściu powoduje przejście SDRAM w tzw. stan uśpienia (Suspend Mode). Tryb ten charakteryzuje się znacznie zmniejszonym poborem mocy (o około 99%). Z punktu widzenia sygnałów sterujących następuje „zamrożenie” aktualnego stanu, przerwane zostają cykle zapisu i odczytu, układ ani nie wyprowadza, ani nie przyjmuje danych. Przywrócenie normalnego działania następuje przy drugim zboczu CLK liczonym od momentu, gdy ~CKE=1.



Faza programowania (Mode Set). Układ SDRAM musi zostać zaprogramowany przed podjęciem pracy. W trakcie tej operacji określa się następujące parametry:

  • wymiar opóźnienia pomiędzy przyłożeniami adresu kolumny a wprowadzeniem pierwszej porcji danych (CAS Latency). Parametr ten podaje się w jednostkach CLK, a dopuszczalne wartości to 2 lub 3.

  • Długość pakietu (Burst Length); dopuszczalne wartości to 1, 2, 4, 83.

  • Format pakietu – sekwencyjny lub z przeplotem.

Powyższe parametry przekazuje się w formie słowa 10-bitowego podawanego na liniach A0 – A9. Układ SDRAM rozpoznaje fazę programowania dzięki określonej konfiguracji sygnałów sterujących: ~RAS= ~CAS= ~WE = 0.Dane na liniach A0 – A9 sprawdzane są pod względem swej poprawności i jeśli nie spełniają przyjętych kryteriów, zostają odrzucone, a stan układu nie ulega zmianie.



Aktywacja banku. Omawiany układ podzielony jest na cztery banki. Banki mogą być wykorzystywane niezależnie. Właściwość ta ma zasadnicze znaczenie z punktu widzenia ciągłości danych. SDRAM zorganizowany w formie pojedynczego banku zmuszony jest do wprowadzeni przerw w momencie zmian adresu wiersza. Sekwencje aktywacja – deaktywacja (Precharge) to nic innego, jak przygotowanie elektroniki do odczytu. Następuje tu podładowanie linii wiersza do poziomu połowy napięcia zasilania. Operacja ta jest niezbędna dla zapewnienia prawidłowego funkcjonowania wzmacniaczy różnicowych. Układ rozpoznaje komendę aktywacji poprzez specyficzną kombinację sygnałów sterujących ~RAS = 0, ~CAS = 1, ~WE = 1. Na liniach A12 i A13 kodowany jest numer banku (0 – 3). Naprzemienne (Interleave) pobudzanie banków maskuje czas potrzebny na przygotowanie wiersza. W danym momencie zawsze pracuje jeden z banków, a wyprowadzana informacja płynie nieprzerwanym strumieniem w tempie określonym przez CLK.
ZAPIS I ODCZYT

Operacje zapisu i odczytu przebiegają najkorzystniej w formie pakietów (Burst). Ponieważ parametry transmisji określono w fazie programowania, wystarczy podać adres początkowy obszaru pamięci, a kolejne lokalizacje zdefiniowane zostają w sposób jednoznaczny. Adres wiersza ustala się w momencie aktywacji banku tak, że zmieniają się jedynie adresy kolumn , a konkretnie kilka ostatnich bitów (np. Burst ośmiokrotny – 3 bity).

Pierwsza porcja danych pakietu wyprowadzana jest zgodnie z definicją zawartą w fazie programowania (Read Latency lub inaczej CAS Latency) po 2 lub 3 cyklach zegarowych od momentu podania komendy i adresu kolumny. Cykl zapisu następuje bez opóźnienia (Write Latency = 0). Dane przejmowane są z magistrali wraz z wystąpieniem pierwszego narastającego zbocza CLK.

Po zakończeniu fazy Burst bufory wyjściowe przechodzą automatycznie w stan wysokiej impedancji i układ jest odcinany od magistrali.


DDR-SDRAM

Synchroniczne pamięci dynamiczne opatrzone przedrostkiem DDR (Double Data Rate) przekazują w każdym takcie zegara dwa słowa danych. Korzystają z niej między innymi magistrala EV6 procesorów Athlon, karty graficzne w trybie AGP-2X oraz pamięci RAMBUS.

Precyzyjne określenie położenia impulsów danych w stosunku do obydwu zboczy sygnału zegarowego wymagało przyjęcia dwóch rozszerzeń konwencjonalnej techniki SDRAM:


  • impulsy zegarowe przesyła się w formie dwóch przebiegów komplementarnych (CLK/~CLK); momenty kluczowania wyznaczane są na przecięciu tych dwóch przebiegów;

  • wprowadzono specjalny dwukierunkowy sygnał zegarowy DQS. W operacjach odczytu linia ta sterowana jest przez układ pamięciowy, a w fazie zapisu przez kontroler pamięci; system wykorzystuje obydwa zbocza impulsów DQS, przy czym wycinek czasu, w którym dane utrzymywane są na magistrali DQ, dopasowany jest do DQS w zależności od kierunku transmisji; przy zapisie do pamięci wyrównanie do zboczy, a w cyklach odczytu – do środka impulsów.

Konstrukcja wewnętrzna chipów zbliżona jest do klasycznych pamięci SDRAM, ale implementacja funkcji DDR wymaga wprowadzenia pewnych modyfikacji. Ograniczają się one w zasadzie do kilku bramek i rejestrów umożliwiających implementację dwukierunkowego sygnału zegarowego DQS. Stopnie I/O magistrali danych oraz sam sygnał DQS pracują w standardzie SSTL_2, który cechuje się między innymi obecnością sygnału odniesienia, zawieszonego w połowie drogi pomiędzy logicznym 0 a logiczną 1.



DDR-II

Specyfikacja DDR-II obejmuje zakres od PC-3200 wzwyż (początkowo DDR-400 i DDR-533). Technologia jest zgodna w dół aż do zestawu rozkazów. Pierwsze chipy o pojemności 512 Mb wyprodukowane zostały w technologii 0,13 um. Duże problemy związane z równomiernym rozprowadzeniem sygnałów zegarowych w chipach tego typu może świadczyć parametr dopuszczalnych przesunięć zboczy na skutek niedokładności wykonania: wynosi on 0,03 ns. W chipach DDR-II zaimplementowano kilka nowych funkcji pozwalających na lepsze wykorzystanie pasma magistrali (eliminacja pewnych typów kolizji). Zwiększony został również nacisk na poprawę parametrów elektrycznych niektórych sygnałów poprzez precyzyjne operowanie elementami Puul-up i Pull-down.



RDRAM

Technologia RDRAM (Direct Rambus DRAM) opracowana została przez firmę Rambus i przez nią te3ż opatentowana. Nie stanowi więc (tak jak PC-100/133) tzw. otwartego standardu, a producenci zmuszeni są do uiszczania opłat licencyjnych. W obecnej chwili zdefiniowane są trzy standardy Rambus: Base, Concurrent i Direct. Dwa pierwsze stosuje się w stacjach roboczych SGI oraz konsolach Nintendo 64, a trzeci próbuje zaznaczyć swą obecność w świecie PC.

Cechą najbardziej różniącą RDRAM od innych typów pamięci jest pakietowy tryb pracy samej magistrali. Jej początek stanowi kontroler Rambus, koniec zamknięty jest w specjalnie dobranymi termistorami. Do jednej magistrali (kanału) dołączonych może być nie więcej niż 32 użytkowników ( czyli chipów pamięciowych RDRAM). Chipsety obsługujące pamięci Rambus korzystają z co najmniej dwóch takich kanałów, pomnażając w ten sposób możliwości systemu.

RDRAM jest formą pamięci synchronicznej. Podobnie jak w przypadku DDR-SDRAM, wykorzystuje się obydwa zbocza sygnału zegarowego. Również i tu przesyła się (dla lepszego wychwycenia zboczy) parę sygnałów komplementarnych, a właściwe impulsy kluczujące wyzwalane są w punkcie przecięcia zegara i jego negacji. Specjalnością techniki Rambus jest specjalny sposób prowadzenia tych sygnałów. Impulsy wstrzykiwane są w punkcie końcowym (CLK), po czym przebiegają poprzez wszystkie chipydo kontrolera (CTM – clock to master) i drugą linią z powrotem (CFM – clock from master). Dzięki temu każdy z chipów synchronizuje się z takimi impulsami zegarowymi, które są zgodne z kierunkiem aktualnie przesyłanych danych (zapis lub odczyt).



RDRAM ma swoje słabe i mocne strony. Do tych pierwszych należy długi czas upływający od momentu wystosowania rozkazu do pojawienia się pierwszych danych (Initial Latency). Dla modułów PC-800 leży on w przedziale 70-90 ns (PC-133 – ok. 50 ns; DDR – ok. 45 ns). Przewaga RDRAM jest natomiast w długich i nieprzerwanych transferach danych (Burst).Sumaryczny bilans może wypaść na korzyść innych pamięci, zwłaszcza gdy są one dużo tańsze.



VC-SDRAM


Jedną z podstawowych technik skracania czasu dostępu jest wprowadzenie szybkiej pamięci podręcznej, której czas reakcji jest o rząd wielkości mniejszy od czasu reakcji buforowanego obiektu. Wg tej właśnie zasady pracują promowane przez firmę NEC pamięci VC-SDRAM (Virtual Channel).

Aktualna implementacja pamięci VC-SDRAM oferuje 16 kanałów, z których każdy stanowi wirtualną ścieżkę dostępu. Urządzenia żądające dostępu do pamięci (Memory Masters) mogą otwierać niezależne kanały komunikacyjne, przez które widać tylko istotny dla nich obszar. W strefie tej (bez względu na to, jak bardzo jest rozległa i niespójna) nie trzeba troszczyć się o negatywne skutki związane z otwieraniem nowychstron. Wszystkie te czynności przeprowadzane są (w tle) przez kontroler pamięci VC (blok Memory Managment). Ich parametry określane są niezależnie od innych kanałów i dobrane stosownie do potrzeb konkretnego użytkownika. Każdy z kanałów ma nieograniczony dostęp do całego obszaru pamięci (Memory Array) za pośrednictwem bardzo szerokiej magistrali wewnętrznej (128 bajtów). Z zewnątrz widziane są jedynie operacje na kanałach (Foreground Operations), dokonywane za pośrednictwem interfejsu magistrali pamięciowej (Bus Interface). Wszelkie manipulacje na samych komórkach pamięciowych (aktywacje banków, przygotowanie wierszy, pobieranie danych oraz ich zapisu) przebiegają w tle (Background Operations) i są realizowane pod kontrolą systemu zarządzania (Memory Managment).





HSDRAM
Pamięci HSDRAM (High Speed DRAM) produkuje firma EMS należąca do firmy Ramtron.EMS oferuje prócz tego dwa inne rodzaje pamięci ESDRAM i EDRAM.

Ta sama zasada działania,ale w połączeniu z pamięciami SDRAM, stanowi sedno techniki HSDRAM. Integracja pamięci podręcznych wymagała wprowadzenia pewnych zmian w architekturze SDRAM. Zmiany te miały bezpośredni wpływ na parametr, którego sens fizyczny sprowadza się do maksymalnej częstotliwości zegara w cyklach odczytu. Dla HSDRAM wynosi on 4,6 ns (dla porównania: PC-100 – 6 ns, a PC-133 – 5,4 ns). Praktyczne pomiary za pomocą (typowych, a nie specjalnie dobranych przez producenta modułów) programów testowych typu benchmark wykazują przewagę klasycznych modułów SDRAM (pc-133-222) nad HS-DRAM i VC-SDRAM.


PORÓWNANIE PARAMETRÓW PAMIĘCI






ODŚWIEŻANIE

Konieczność odświeżania zawartości komórki pamięci dynamicznej stanowi cechę charakterystyczną, wynikającą z istoty jej działania oraz formy realizacji i jest nie do uniknięcia. Pojedyncze komórki układu scalonego pamięci zgrupowane są w zespoły prostokątnych matryc o pewnej określonej liczbie wierszy (Rows) i kolumn (Columns).Liczba matryc odpowiada szerokości słowa które można przechowywać w takim układzie. Każda matryca odpowiada więc jednemu bitowi szyny danych doprowadzonej do układu pamięci. Odpowiadające sobie linie adresowe wierszy i kolumn są wspólne dla wszystkich matryc, tak jak to przedstawiono na schemacie (16Mb w organizacji 4Mxa – 4M słów 4-bitowych).



Prezentowany układ ma ponad 16 mln komórek pamięci. Na szczęście nie trzeba odświeżać każdej z nich oddzielnie. Odświeżanie sprowadza się do pobudzenia (zaadresowania) linii wiersza, przy czym odświeżaniu ulegają wszystkie komórki należące do tego wiersza. Procesy zachodzące podczas takiego pobudzenia nie różnią się niczym od cyklu zapisu lub odczytu, jednak trudno jest liczyć na to, by dostęp do pamięci odbywał się wg jakiegoś harmonogramu obejmującego wszystkie linie matryc i to w zadanym czasie. Konieczne jest wprowadzenie mechanizmu generującego regularnie impulsy odświeżające, przebiegające kolejno wszystkie wiersze. Kolejność pobudzania wierszy macierzy jest obojętna, ważne jest jedynie, by wszystkie z nich otrzymały przynależny sobie impuls nie rzadziej, niż raz na pewien jasno zdefiniowany okres, zwany cyklem odświeżania (Refresh Time). Innymi słowy, odstęp dzielący dwa kolejne impulsy (adresowane do tego samego wiersza) nie może być dłuższy od cyklu odświeżania. Cykl odświeżania współczesnych pamięci dynamicznych waha się od kilku do kilkudziesięciu milisekund i zależy zarówno od rozmiarów, jak i od organizacji logicznej (liczby wierszy).

Pamięci odświeżane są liniami. Czas cyklu odświeżania jest rzędu ms.
Moment odświeżania wyznaczony jest przez czynniki zewnętrzne. Odświeżanie powinno się odbywać, gdy pamięć jest bezczynna.

- (RAS Only) linie danych są w stanie HiZ. Sygnał ~CAS jest w stanie H, zmienia się sygnał


RAS. Jego opadające zbocza powodują zapamiętanie adresu wiersza doprowadzonego z
zewnątrz (adres wiersza podawany na linie adresowe ADR) i jego odświeżanie w ramach
wybranej kolumny.

  • (CBR)oba sygnały ~RAS i ~CAS są aktywne. Należy zwrócić uwagę, że najpierw występuje opadające zbocze sygnału ~CAS, a potem ~RAS. Taka sekwencja rozpoznawana jest jako chęć odświeżania pamięci. Należy zwrócić też uwagę, że na liniach adresowych poziom jest cały czas obojętny, gdyż adres podawany jest z generatora wewnętrznego. Linie danych też są w stanie HiZ.

  • (Hidden CBR) jest cykl odświeżania pamięci wpleciony w zwykły cykl dostępu. Po zapamiętaniu adresu rzędu opadającym zboczem sygnału ~RAS oraz po zapamiętaniu adresu kolumny opadającym zboczem sygnału ~CAS na liniach danych pojawia się zaadresowana dana. Podczas wystawiania tej danej sygnał ~CAS przyjmuje stan L, a sygnał ~RAS wykonuje skok do stanu H, a następnie do stanu L. W momencie opadającego zbocza sygnału ~RAS następuje ukryty cykl odświeżania.

System zarządzania pamięcią

W trybie rzeczywistym (nie chronionym 8086) każdy program może robić i pisać gdzie chce. Rejestry CS, SS, DS, ES, FS, GS (segmentowe) mogą wskazywać na to samo. Jest to model płaski. W dolnej jego części jest model płaski chroniony. Rejestr CS może tylko adresować segment kodu (CODE) natomiast pozostałe rejestry mogą adresować te obszary pamięci, gdzie znajduje się segment danych, stos oraz urządzenia I/O.

Każdy segment jest opisany przez:


  • adres bazowy (Base Address)

  • limit (rozmiar segmentu)

  • dostęp (czy segment jest typu CODE, DATA, STACK lub tylko dla systemu)

Tryb chroniony umożliwia dzielenie pamięci na rozłączne segmenty, które umożliwiają ochronę danych.

Segmentacja


Polega na podzieleniu programu na segmenty odpowiednio CODE (tylko do odczytu), DATA (do odczytu i zapisu) oraz STACK (do odczytu i zapisu). Każdy segment opisany jest adresem bazowym (Base Address), limitem (jego rozmiarem) oraz dostępem. Każdy rejestr segmentowy powinien pokazywać na swój segment. Adres bazowy segmentów może być różny, czyli segmenty mogą być relokowalne. Tak więc segmenty mogą mieć różne długość.

Wadą segmentacji jest to, że pamięć może zostać "podziurawiona". Stare procesy, które kończą życie zwalniają pamięć pozostawiając dziurę. Gdy inne procesy kończą życie to i one zostawiają dziury. W efekcie pamięć jest "dziurawa". Te wolne obszary nie przylegają do siebie i to uniemożliwia załadowanie dużego programu mimo, że ich suma jest większa niż potrzebuje nowo ładowany program.


Stronicowanie


W przypadku stronicowania każda strona ma wyznaczony rozmiar np. 4kB. Cały obszar pamięci dzielony jest na ramki o tej samej długości.

Strona może być w pamięci wirtualnej(może to być obszar dyskowy) lub w pamięci fizycznej RAM. Jeżeli danej strony nie ma w pamięci fizycznej to trzeba ją sprowadzić z pamięci wirtualnej. Stare strony trzeba przenieść na dysk. Jest to stronicowanie na żądanie. Po uruchomieniu procesu nie ma żadnej strony w pamięci. Gdy jest odwołanie do strony, a jej nie ma wtedy wywoływane jest przerwanie i odpowiednia strona ściągana jest do pamięci. W momencie, gdy jest odwołanie do drugiej strony to ona znów jest sprowadzana. Z każdą stroną skojarzony jest bit poprawności mówiący, czy strona jest w pamięci fizycznej, czy w wirtualnej. Sprowadzanie stron z dysku zajmuje czas.

Gdy jakiejś strony nie ma w pamięci fizycznej i nie ma też już tam miejsca to jakąś stronę trzeba wyrzucić tzn. zapisać ją na dysk, następnie należy sprowadzić potrzebną stronę i uaktualnić tablicę stron.

Do algorytmów stosowanych przy wymianie stron należą:



  • algorytm FIFO (jest bufor w którym są adresy stron i wyrzucana jest ta, która najdłużej była w pamięci, algorytm wykazuje duży brak stron)

  • algorytm LRU (polega na zastąpieniu tej strony, która najdłużej nie była używana; problem jest przy liczeniu czasu)-

  • algorytm drugiej szansy (stosuje się bufor FIFO i bit odniesienia; strona, która najdłużej była w pamięci jest kandydatką do usunięcia, ale sprawdza się czy bit odniesienia , jest ustawiony co oznacza, że do niej było odwołanie; jeżeli było to strona nie będzie wyrzucona bo jest potrzebna).


©absta.pl 2016
wyślij wiadomość

    Strona główna