21
Pamięci półprzewodnikowe
Pojawienie się w latach 70-tych półprzewodnikowych pamięci operacyjnych zrewolucjonizowało systemy komputerowe. Pojemność i szybkość działania owych pamięci gwałtownie rosły, a ich ceny malały. Dzisiaj pamięć operacyjna stanowi najważniejszą część systemu komputerowego, a kolejne wydania systemu Windows wymagają dodawania następnych megabajtów pamięci.
Zwykle rozbudowa pamięci pozwoli nam zwiększyć wydajność komputera. Oznacza to, że system operacyjny oraz poszczególne aplikacje będą działać znacznie szybciej, a my nie będziemy czekać niecierpliwie na wykonanie prostych operacji. Z obserwacji wynika, że po zwiększeniu ilości pamięci operacyjnej działanie komputera staje się płynniejsze i maleje częstotliwość odwołań do dysku twardego.
Pamięć operacyjna odgrywa centralną rolę w działaniu współczesnego systemu komputerowego. Pamięć ta jest wielką tablicą słów lub bajtów, której każdy element ma przypisany adres. Stanowi ona magazyn szybko dostępnych danych eksploatowanych wspólnie przez jednostkę centralną i urządzenia wejścia - wyjścia. Podczas wykonania cyklu pobierania rozkazów procesor centralny czyta je z pamięci operacyjnej; także podczas wykonywania cyklu pobierania danych procesor czyta i zapisuje dane do jej pamięci. Operacje wejścia-wyjścia dokonywane za pośrednictwem metody DMA (direct memory access) również używają pamięci operacyjnej do odczytywania i zapisywania danych. Pamięć operacyjna jest w zasadzie jedyną pamięcią, którą jednostka centralna może adresować bezpośrednio. W przypadku innych rodzajów pamięci, na przykład pamięci dyskowej, aby przetwarzać znajdujące się w nich dane, procesor musi najpierw sprowadzić je do pamięci operacyjnej za pomocą odpowiednich operacji wejścia-wyjścia. Zupełnie podobnie, aby jednostka centralna mogła wykonywać instrukcje, muszą one znajdować się w tej pamięci operacyjnej.
Aby program mógł być wykonany, musi być zaadresowany za pomocą adresów oraz załadowany do pamięci. Podczas wykonywania programu rozkazy i dane są pobierane z pamięci za pomocą generowania tych właśnie adresów. Kiedy program zakończy działanie, wtedy jego miejsce w pamięci jest oznaczone jako wolne, co umożliwia załadowanie i wykonanie następnego programu.
Jeśli chcemy uzyskać zarówno lepsze wykorzystanie jednostki centralnej, jak i szybszą reakcję komputera na polecenia jego użytkowników, to musimy przechowywać kilka programów w pamięci operacyjnej. Jest wiele różnych sposobów zarządzania pamięcią. Odzwierciedlają one różne podejścia do tego zagadnienia, przy czym efektywność poszczególnych algorytmów zależy od konkretnej sytuacji. Wybór sposobu zarządzania pamięcią zależy od wielu czynników, a zwłaszcza od cech sprzętu, w którym działa dany system. Każdy algorytm wymaga swoistego wspomagania sprzętowego.
Mały rozmiar, niska cena oraz mały pobór mocy - oto wymagania, które co chyba oczywiste, postawimy układom pamięci, które zastosujemy w mikrokomputerze. Wymagania te spełniają tylko pamięci półprzewodnikowe, produkowane jako układy scalone LSI, i w zasadzie tylko one są stosowane do budowy mikrokomputerów. Wykorzystuje się dwa typy pamięci:
· pamięć stałą - pamięć typu ROM,
· pamięć zapisywalną - pamięć typu RAM.
Do półprzewodnikowej pamięci zapisywalnej RAM (powszechnie stosowana nazwa pochodzi od ang. random access memory - pamięć o swobodnym dostępie) mikroprocesor może zapisywać informację oraz ją odczytywać. Niestety, pamięci RAM mają przykrą właściwość - pamiętają tylko wtedy, gdy jest włączone napięcie zasilania, a po jego wyłączeniu tracą zapisaną w nich informacje. Wyklucza to budowę mikrokomputera tylko z takich elementów, ponieważ każdy zanik napięcia zasilania powodowałby wymazanie programu i konieczność wprowadzania go za pomocą jakiegoś dodatkowego urządzenia. Dlatego też w systemach mikroprocesorowych zawsze obok pamięci typu RAM stosuje się pamięć stałą - ROM (od ang. read only memory - pamięć, z której można tylko czytać). Z pamięci ROM mikroprocesor może tylko czytać informację, nie może do niej nic wpisać zapis informacji wymaga tu specjalnych warunków i nie jest możliwy w czasie normalnej pracy mikrokomputera, ale za to pamięć ROM pamięta również przy braku zasilania. Podział przestrzeni adresowej na części przeznaczone na pamięci typu ROM i RAM zależy oczywiście od konstruktora. W pamięci ROM są zapisane: stały program oraz dane nie zmieniające się w czasie pracy. Do pamięci RAM zostanie zapisany program użytkownika. Muszą się w niej również znajdować wszelkiego typu komórki robocze, z których korzystają programy np. do zapamiętywania wyników częściowych obliczeń itp.
Parametrami określającymi szybkość działania układów pamięci jest czas dostępu i czas cyklu. Czas dostępu definiowany jest jako czas od podania adresu do chwili pojawienia się informacji na wyjściu pamięci. Czas cyklu jest to czas, po którym można ponowić żądanie czasu dostępu pamięci. Czas dostępu mierzony jest w bilionowych częściach sekundy, czyli nanosekundach (ns) i w systemach PC leży w zakresie od 200 do kilku ns. Wymaganie odpowiednio krótkiego czasu dostępu, stawiane pamięciom, zależy głównie od częstotliwości zegara systemu. Zwykle potrzebne są co najmniej dwa cykle na dostęp do pamięci oraz opcjonalnie pewna liczba stanów pustych, tzw. wait states, które umożliwiają współpracę z niezbyt szybkimi pamięciami. Wraz ze wzrostem częstotliwości zegara rosną wymagania. Ponieważ szybsze pamięci są droższe, zatem rozwiązaniem ekonomicznym jest pamięć kieszeniowa. W kieszeni pełniącej rolę inteligentnego bufora stosuje się ultraszybkie pamięci, podczas gdy pozostała część systemu RAM może być znacznie wolniejsza. W przypadku wymiany pamięci należy pamiętać, że nowa pamięć nie może mieć dłuższego czasu dostępu niż wymieniana. Może to więc być pamięć o tym samym czasie dostępu lub szybsza. W celu określenia czasu dostępu należy odczytać oznaczenie kodowe na obudowie kości.
Skrótem ROM (Read Only Memory pamięć tylko do odczytu) określa się układy pamięci, umożliwiające wyłącznie odczyt danych. Każdy komputer PC wyposażony jest w pamięć stałą ROM. Zawiera ona podstawowe procedury umożliwiające uruchomienie systemu i wczytanie systemu operacyjnego. Oprócz nich w pamięci ROM zapisane są również procedury do obsługi urządzeń zewnętrznych, jak klawiatura, ekran, porty komunikacyjne. Cały zestaw tych procedur nosi nazwę BIOS (Basic Input/Output System).
System pamięci ROM zawiera dwa podstawowe programy: autotest POST (Power On Self Test), zbiór procedur wejścia/wyjścia BIOS i opcjonalnie interpreter języka BASIC. Interpreter BASICA jest spotykany tylko w markowych komputerach. Ideą oprogramowania pamiętanego w ROM jest umożliwienie automatycznego ładowania systemu operacyjnego i zachowanie elastyczności w przypadku dokonywania zmian w systemie. Każda wersja ROM ma datę opracowania, typ systemu, dla którego jest przeznaczona oraz numer. Informacje te są pamiętane przez każdy z układów pamięci w komórce FFFFE. Zawartość pamięci można odczytać za pomocą programu DEBUG, będącego zewnętrznym poleceniem systemu DOS.
PROM, EPROM, EEPROM
Typową pamięć ROM programuje się podczas produkcji, choć niekiedy nazwę tą stosuje się również do układów typu PROM (Programmable ROM). Zapis informacji odbywa się tu dzięki temu, że po doprowadzeniu do układu odpowiednio wysokiego napięcia są przepalane pojedyncze diody wewnątrz matrycy pamięciowej. Informacja zapisywana do pamięci PROM jest nieodwracalna, tzn. jest tam zapamiętana w sposób trwały, gdyż nie można „ożywić” przepalonych diod.
Z tego właśnie powodu powstały układy EPROM (Eraseable PROM), czyli kasowalna pamięć stała. Zawartość EPROM można skasować stosując naświetlanie układu promieniowaniem ultrafioletowym przez około dwadzieścia minut; wszystkie komórki pamięci zostaną wówczas wprowadzone w stan 1. Programowanie pamięci EPROM, czyli zapis bitów o wartości 0 na odpowiednie miejsce w matrycy, odbywa się tak samo jak w przypadku pamięci PROM - za pomocą wyższego napięcia (należy dodać, że istnieją układy EPROM, w których można uzyskać to samo stosując normalne napięcie pracy 5V). Pojedyncze komórki pamięci zawierają tranzystory polowe, w których bramki zostają wprowadzone w stan 0 lub 1 i pozostają w tym stanie (tzw. pływająca bramka, floating gate). Odpowiadający bramce kanał znajduje się albo w stanie przewodzenia albo w stanie zaporowym, a więc i on również zawiera trwałą informację: 0 lub 1.
Krok naprzód w stosunku do pamięci EPROM stanowią tzw. pamięci EEPROM (Electrically Eresable PROM) czyli elektronicznie kasowalna pamięć PROM. Kasowanie zapamiętanej informacji nie odbywa się tu za pomocą ultrafioletu, ale elektrycznie, oraz nie obejmuje całego układu, lecz tylko pojedyncze słowo (bajt). Pamięci EEPROM zachowują się więc prawie tak samo jak pamięci RAM z wyjątkiem tego, że po wyłączeniu zasilania informacja zawarta w nich nie ginie, a czas potrzebny do jej zapisu o rząd wielkości większy od czasu dostępu przy odczycie. Kasowanie pamięci EEPROM polega po prostu na wpisaniu do niej nowej wartości i z tego powodu niektórzy producenci nazywają je skrótem EAROM (Electrically Alterable ROM). Niezależnie od rozwiązania, w typowych warunkach pracy możliwy jest jedynie odczyt zawartości pamięci.
Niektórzy producenci stosują tzw. Flash ROM, będący w uproszczeniu rodzajem EEPROM-u, pozwalający na przeprogramowanie zawartości przez użytkownika, zazwyczaj przy zastosowaniu specjalnego oprogramowania. Dzięki temu można stosunkowo łatwo dokonać wymiany zawartego w pamięci stałej oprogramowania systemowego.
W komputerach ROM stosowany jest do przechowania programu podstawowej obsługi wejścia/wyjścia (BIOS) komputera, również niektóre karty (np. sterowniki obrazu VGA i nowsze oraz nietypowe kontrolery dyskowe) mogą być wyposażone we własne BIOS-y. Pamięci stałe pracują stosunkowo wolno, dlatego najczęściej stosuje się tzw. shadow, polegający na przepisaniu zawartości pamięci stałej do specjalnego obszaru RAM, zabezpieczanego następnie elektronicznie przed zapisem.
Aby zrozumieć działanie pamięci Flash EPROM, przyjrzyjmy się, jak działa „zwykły” EPROM. Jest on zbudowany z setek tysięcy tranzystorów. Ich łącza stanowią komórki pamięci. Każde z nich jest „przykryte” maleńką płytką izolatora, co powoduje, że gromadzi się tam mały ładunek elektryczny odpowiadający logicznej zawartości pamięci. Dlatego do operacji zapisu i odczytu potrzebne jest zadziałanie określonym ładunkiem elektrycznym. Jeśli zmniejszy się powierzchnię izolatora, ładunek potrzebny do zapisania tej samej ilości danych będzie można odpowiednio zmniejszyć, zwiększając przy okazji trwałość układów pamięci. Ma to miejsce w układach EEPROM. W pamięciach typu Flash udało się do minimum ograniczyć powierzchnię izolatora. Dzięki temu wartość wymaganego ładunku jest bardzo niewielka, a tym samym proces zapisu i kasowania można przeprowadzić za pomocą krótkiego impulsu elektrycznego. Stąd zresztą pojawiła się nazwa „flash”, czyli (błysk). Nie jest to jeszcze pamięć, która obecnie mogłaby całkowicie zastąpić pamięci dyskowe - kasowanie zawartości pamięci Flash wymaga ok. 3 sekund. To co ją jednak predysponuje do zastosowania w komputerach przenośnych to małe wymiary, stosunkowo duża pojemność i prostota rozwiązania. Flash EPROM nie wymagają żadnych dodatkowych urządzeń, nie licząc odpowiedniego gniazda. Nie muszą być także zasilane, aby przechowywać wprowadzone dane zbędna jest zatem obecność akumulatorów lub miniaturowych baterii. Są one zbudowane z wielu układów EEPROM i kształtem przypominają karty kredytowe. Cała karta podlega w trakcie pracy procesom weryfikacji. Umieszczone na karcie układy EEPROM, testowane są specjalną procedurą sprawdzającą poprawność kasowania i zapisu. Jeśli jakiś układ nie pracuje poprawnie zostaje odłączony. Pamięć Flash działa dalej mając jedynie zmniejszoną pojemność, a zepsuty układ można potem wymienić. Poza tym każdy z układów z osobna ma wbudowane procedury wykrywające błędną pracę poszczególnych komórek pamięci. Jeśli w trakcie kasowania wykryją one komórkę, która zachowała informację, proces kasowania zostaje powtórzony.
Wiele komputerów z procesorem Pentium wyposażonych jest w BIOS-ROM (Flash EPROM). Użytkownik jest w stanie zaktualizować swój BIOS za pomocą oprogramowania z dyskietki dostarczonej od producenta, dokonując zapisu nowych danych do układu. Innym zastosowaniem są karty sieciowe, które muszą przechowywać swoje parametry niezależnie od dopływu prądu.
We współczesnym komputerze klasy PC znajduje się kilka rodzajów pamięci. Główną jest pamięć operacyjna, w której przechowywane są aktualnie wykonujące się programy i należące do nich dane. Pamięć tę określa się także jako RAM, co jest skrótem od angielskiego terminu Random Access Memory, czyli dosłownie „pamięć o swobodnym dostępie”. Określenie to bierze się stąd, że zawartość pamięci tego typu może być odczytywana i zapisywana w dowolnym momencie i w dowolnej kolejności (alternatywą są np. pamięci sekwencyjne, w których zapis i odczyt musi następować w określonej z góry kolejności). Niekiedy spotyka się określenie „pamięć ulotna” (ang. volatile), sens tego terminu łatwo zrozumieć, jeśli się zważy, że zawartość pamięci RAM ginie po wyłączeniu zasilania.
Rozróżnia się dwa typy pamięci RAM:
* pamięć dynamiczną DRAM (Dynamic Random Access Memory)
* statyczną SRAM (Static Random Access Memory)
DRAM (Dynamic RAM) pamięci dynamiczne zbudowane są z wielu niewielkich kondensatorków (w rzeczywistości ich rolę pełnią bramki tranzystorów), w których rozróżnia się dwa stany: obecność (1) lub brak (0) ładunku elektrycznego. Ponieważ „kondensatory” mają tendencję do rozładowywania, zawartość pamięci DRAM musi być co pewien czas odświeżana silnym impulsem. Pamięci DRAM mają zazwyczaj duże czasy dostępu np. 60 ns. Stosując specjalne techniki (np. przeplotu lub stronicowania) można dodatkowo przyspieszyć pracę pamięci - płyta główna musi być wówczas wyposażona w odpowiednie układy.
SRAM (Static RAM) czyli Statyczny RAM dzięki nieco innej metodzie przechowywania danych nie wymagają odświeżania i są szybsze, lecz mniej pojemne i droższe od DRAM. Pamięci te są nazywane statycznymi dlatego, że ich układy logiczne utrzymują się w stanie spoczynkowym nawet wtedy, gdy nie są odczytywane. Komórka pamięci SRAM składa się z tranzystorów. Mogą one przechowywać informację dłużej niż kondensatory i nie potrzebują stałego odświeżania. Są znacznie szybsze podczas zapisu i odczytu (brak cykli odświeżania) w porównaniu z dynamicznymi RAM-ami (DRAM), które składają się z kondensatorów. Pamięci SRAM są najprostsze w zastosowaniach, ponieważ wszelkie przerwy w pracy systemu mogą być regulowane tylko przez procesor, pamięć zaś będzie przez cały czas w stanie gotowości. W komputerach SRAM stosowane są najczęściej jako układy pamięci cache. Szybkość dostępu do pamięci to zsumowana długość cyklu zapisania/odczytu danych w komórce i cyklu odświeżania. Czas dostępu dla pamięci SRAM wynosi od 5 ns.
Do tego celu potrzebne są dodatkowe obwody logiczne podające impuls odświeżający równocześnie do wszystkich obwodów odświeżania, a następnie uaktywnia się kolejno linie słów, wpisując do nich stan logiczny 1. Pamięci dynamiczne pobierają większy prąd niż pamięci statyczne, gdyż podczas odświeżania regularnie płynie prąd ładujący kondensatory. Tylko od mikroprocesora zależy, w jakim czasie nastąpi potrzebne odświeżanie pamięci DRAM. Najprościej można to zrealizować w czasie przerwy w normalnym cyklu zegarowym, podczas której na pewno nie wystąpi potrzeba korzystania z pamięci. Metoda taka nazywa się „odświeżaniem ukrytym” (hidden refresh) i funkcjonuje niezauważalnie dla procesora, a więc nie spowalnia pracy systemu. Drugi sposób odświeżania, znany pod nazwą „wykradanie cykli” (cycle stealing), polega na tym , że impulsy zegarowe CPU są wydłużane w czasie wykonywania cyklu odświeżającego. Powstaje tu pewien problem, gdyż cały system pracuje wówczas wolniej. Wada ta występuje w metodzie, noszącej angielską nazwę burst refresh (odświeżanie przerywające) i polegającej na tym, że obwód odświeżania generuje impuls HOLD przeznaczony dla mikroprocesora, a więc procesor jest podczas odświeżania po prostu zatrzymany. Cykl odświeżania pamięci spowalnia ich działanie.
Pamięć robocza DRAM (Dynamic Random Access Memory), w rzeczywistości składa się tylko z tranzystora i kondensatora. Z tego też względu pamięć DRAM pozwala na uzyskanie najwyższego stopnia integracji. Architektura ta ma swoją wadę. W pamięci dynamicznej poszczególne informacje są przechowywane w miniaturowych kondensatorach, które szybko tracą swój ładunek, co powoduje konieczność ciągłego odświeżania zawartości DRAM (Refresh).
Wnętrze modułu DRAM podobnie składa się z wierszy (ang. rows) oraz kolumn (ang. columns). Aby w takiej pamięci znaleźć odpowiednią informację, wystarczy podać jej adres, czyli kombinację złożoną z numeru wiersza i kolumny. Obszar, w którym wszystkie adresy posiadają ten sam numer wiersza, nosi nazwę strony (page).
Przed przystąpieniem do operacji odczytu lub zapisu danych system przekazuje do modułu pamięci odpowiednie adresy wierszy i kolumn. Całe adresy mogą być transmitowane poprzez jedno łącze (pin), gdyż pierwszy jest zawsze przesyłany adres wiersza. W momencie, gdy moduł pamięci otrzyma ów adres, wczyta wszystkie znajdujące się w tym wierszu komórki do tzw. przedwzamcniacza odczytu. Z tego miejsca układ pamięci wyszukuje następnie - za pomocą adresu kolumny - potrzebne dane.
Po zakończeniu transmisji cała zawartość przedwzmacniacza (a więc pełny wiersz) jest z powrotem przepisywana do odpowiednich komórek. Kontrolę nad taką transmisją zapewniają dwa sygnały sterujące: RAS (Row Address Strobe) i CAS (Column Address Strobe). RAS sygnalizuje przy tym ważność adresu wiersza, natomiast CAS - ważność adresu kolumny. Wartość czasu dostępu, w którym układ interpretuje sygnał RAS, jest umieszczona na obudowie każdego modułu i wynosi z reguły od 70 do 90 nanosekund. W przypadku szybkich układów DRAM wartość ta sięga do 60 nanosekund.
Ten czas dostępu nie określa jednak zbyt dokładnie wydajności danego układu DRAM. Moduł pamięci potrzebuje bowiem trochę czasu, aby przepisać ponownie z przedwzmacniacza zawartość odpowiednich komórek oraz przygotować się do kolejnej transmisji. Pełny czas transmisji dla danego układu pamięci jest więc prawie dwukrotnie dłuższy od nominalnego czasu dostępu.
W szczególnym przypadku dwa kolejne odwołania do pamięci mogą dotyczyć tej samej strony danych. W takiej sytuacji numer wiersza nie musi być już ponownie transmitowany, co wyraźnie skraca czas dostępu do danych. Jeśli weźmiemy jeszcze pod uwagę opóźnienia spowodowane propagacją sygnałów sterujących, to okaże się, że dla układów DRAM o czasie dostępu 70 ns długość cyklu CAS skróci się do około 50 ns.
Instalowane na płytach głównych różne układy nie odwołują się przeważnie do pamięci, by odczytać pojedyncze bajty, lecz większe pakiety danych (ang. bursts). Burst jest to zestaw kilku odwołań odnoszących się do tej samej strony pamięci (ang. page). W przypadku takich zbiorowych odwołań dużą rolę odgrywa taktowanie systemu. Nie chodzi tu jednak o częstotliwość, z jaką pracuje CPU, ale o tę, przy której odbywa się transmisja danych pomiędzy procesorem a kontrolerem pamięci. Częstotliwość taktowania dla komputera 486DX/33 wynosi 33 MHz, natomiast dla P90 - 60 MHz
Do dokładnego określenia danego zestawu (burst) potrzebna jest informacja o liczbie taktów systemowych wymaganych przez kontroler do odczytania z pamięci zawartości czterech komórek danych. Odpowiednie wartości definiuje się w setupie komputera, a ich zapis przyjmuje najczęściej postać czterech cyfr umieszczonych przed słowem burst, np. 4-2-2-2 burst umożliwia odczytanie czterech komórek danych w ciągu dziesięciu taktów. Tryb burst jest uzależniony od częstotliwości taktowania, gdyż przy 60 MHz jeden takt jest znacznie krótszy niż w przypadku 33 MHz. Na tej podstawie możemy bardzo łatwo obliczyć maksymalną częstotliwość taktowania dla danego modułu pamięci.
Aby ograniczyć nieco wpływ „bezwładności” układów DRAM, projektanci płyt głównych musieli skorzystać z kilku sztuczek. Moduł Saturn firmy Intel odwołuje się na zmianę do dwóch różnych banków pamięci. W czasie, gdy jeden z nich wykorzystywany jest do odczytu danych, drugi ma czas na „odpoczynek” (Memory Interleave). Takie rozwiązanie pozwala skrócić czas dostępu o około dziesięć nanosekund.
Innym mechanizmem wykorzystywanym w modułach pamięci jest pipelining (przetwarzanie potokowe). Taka metoda dostępu pozwala kontrolerowi pamięci na przesyłanie do układu DRAM następnego adresu, zanim jeszcze CPU odczyta poprzednią komórkę danych. Aby cały mechanizm mógł funkcjonować, kontroler pamięci powinien dodatkowo składować przesyłane dane. W związku z tym musi pojawić się jeszcze jeden cykl oczekiwania. Mimo tej niedogodności efekt końcowy jest zadowalający: pipelining umożliwia skrócenie cyklu 3-2-2-2 Burst do 4-1-1-1.
Zasada działania pamięci DRAM i SRAM
Układy pamięci RAM są zbudowane z elektronicznych elementów, które mogą zapamiętać swój stan. Dla każdego bitu informacji jest potrzebny jeden taki układ. W zależności od tego czy pamięć RAM jest tak zwaną statyczną pamięcią (SRAM - Static RAM), czy dynamiczną - (DRAM - Dynamic RAM) zbudowana jest z innych komponentów i swoje działanie opiera na innych zasadach. Pamięć SRAM jako element pamiętający wykorzystuje przerzutnik, natomiast DRAM bazuje najczęściej na tzw. pojemnościach pasożytniczych (kondensator). DRAM charakteryzuje się niskim poborem mocy, jednak związana z tym skłonność do samorzutnego rozładowywania się komórek pamięci sprawia, że konieczne staje się odświeżanie zawartości pamięci impulsami pojawiającymi się w określonych odstępach czasu. W przypadku SRAM nie występuje konieczność odświeżania komórek pamięci, lecz okupione jest to ogólnie zwiększonym poborem mocy. Pamięci SRAM, ze względu na krótki czas dostępu są często stosowane jako pamięć podręczna. Wykonane w technologii CMOS pamięci SRAM mają mniejszy pobór mocy, są jednak stosunkowo drogie w produkcji.
Budowa pamięci
Pamięć jest zorganizowana jako ciąg komórek. W mikrokomputerach podstawową komórkę pamięci stanowi bajt (ang.byte). Mówi się, że pamięć ma strukturę bajtową. Każda komórka pamięci ma numer tzw. adres pamięci. Procesor uzyskuje dostęp do informacji zapisanej w danej komórce podając jej adres. Wysyła także sygnał sterujący, który mówi, czy dana informacja ma być do pamięci wpisana czy też pobrana. W mikroprocesorach starszych typów adres zapisywany był na 16 bajtach, w nowszych na 24 lub 32 bajtach (w modułach DIMM na 64 bajtach)
Liczba adresów, którą procesor może wygenerować jest różna i zależy od liczby bitów adresu (np. 16 bitów zapisuje adresy z zakresu 0...65535). Zbiór adresów które procesor może wygenerować nazywamy przestrzenią adresową procesora. Ograniczona liczba różnych adresów limituje wielkość pamięci, która może być zainstalowana w komputerze. Wielkość pamięci wpływa na możliwości komputera. Duża pamięć pozwala na pisanie programów działających szybciej kosztem większego jej zajęcia, przechowywanie kilku programów jednocześnie w pamięci, operowanie na dużych zbiorach danych.
Nowsza odmian pamięci DRAM nosi nazwę FPM-DRAM (Fast Page Mode DRAM), która w postaci modułów SIMM występuje obecnie jeszcze w wielu komputerach 486 i Pentium. W układach FPM-DRAM dostęp do pamięci jest znacznie szybszy niż w klasycznych modułach DRAM, gdyż adres wiersza RAS (adres strony) jest generowany tylko raz, jeśli kolejne komórki pamięci znajdują się na tej samej stronie pamięci.
Czas dostępu do tych pamięci zazwyczaj wynosi 70 lub 60 ns. Pamięci te charakteryzują się niską - jak na dzisiejsze czasy - wydajnością, dane przesyłane są jako seria 5-3-3-3 w cyklach pracy procesora. Sposób dostępu do komórek pamięci, zorganizowanych jako matryca 3D, jest zdeterminowany przez sygnały RAS i CAS. Sygnał RAS (Row Access Signal) odpowiada za wybranie bieżącego wiersza (strony), a CAS (Column Access Signal) wyznacza odpowiednią kolumnę. Proces odczytu z pamięci FPM rozpoczyna się od wybrania odpowiedniego wiersza sygnałem RAS, po czym następuje uaktywnienie sygnału CAS w celu zaadresowania kolumny. Każdy cykl sygnału CAS zawiera wybranie adresu kolumny, oczekiwanie na dane, przekazanie danych do systemu i przygotowanie do następnego cyklu. W czasie cyklu CAS, gdy sygnał CAS przyjmuje poziom wysoki, wyjścia danych są zablokowane. Jest to istotne z tego względu, że zmiana sygnału na wysoki może nastąpić tylko po zakończeniu przesyłania danych. Mówiąc prościej, przed wyznaczeniem następnej komórki, czyli zaadresowaniu jej w danej kolumnie, musi zakończyć się operacja na danych. Ponieważ często jest tak, że przesyłamy w jeden region pamięci dane w większych porcjach, Fast Page Mode RAM potrafi nieco skrócić czas potrzebny na dostęp do informacji, gdy jej poszczególne bity znajdują się na samej stronie.
Układy EDO-DRAM Extended Data Output
Pamięć EDO-DRAM (Extended Data-Out DRAM) posiada niemal identyczną budowę jak FPM-DRAM. Jedyna różnica polega na tym, że w przypadku pamięci EDO odczytane informacje pozostają na magistrali danych także wtedy, gdy sygnał CAS (adres kolumn) przestaje być aktywny. Dzięki takiemu mechanizmowi buforowania procesor może już w trakcie odczytu danych generować kolejny adres. Rozwiązanie to pozwala zwykle zaoszczędzić jeden lub dwa takty zegara, ale może być stosowane tylko przy operacjach odczytu.
Dokładniej mówiąc pamięci EDO-DRAM dostarczają poprawnych wartości danych jeszcze wtedy, gdy nie jest już dostępny sygnał CAS. Dzięki takiemu rozwiązaniu kontroler pamięci może przesłać do układu adres nowej komórki danych w tym samym czasie, w którym następuje jeszcze odczyt poprzednich danych. Technika ta jest więc bardzo podobna do pipeliningu; jedyną różnicą jest brak cyklu oczekiwania. Stało się to możliwe, gdyż układy EDO-DRAM przejęły od kontrolera pamięci funkcje pamięci pośredniej. Aby moduły EDO-DRAM można umieścić na płycie głównej komputera, muszą one prawidłowo współpracować z istniejącą konfiguracją. Nie w każdym przypadku możemy więc - w celu zwiększenia wydajności pracy komputera - zastąpić stare pamięci DRAM szybszymi modułami EDO-DRAM. Nowa technika ma także i inny słaby punkt. W przypadku dwóch banków EDO-DRAM nie jest możliwy dostęp typu Interleave, gdyż odwołanie do drugiego z nich następowałoby już wtedy, gdy poprzednie dane byłyby jeszcze w użyciu. Mimo tych niedogodności wydajność pamięci EDO-DRAM wyraźnie przewyższa możliwości tradycyjnych modułów DRAM. Dzięki tej technice szybkość transmisji danych pomiędzy pamięcią a CPU zwiększa się o około 20%.
Czas dostępu wynosi tutaj 70 i 60 ns. Coraz częściej spotyka się układy pracujące z szybkością 50 ns, są one szczególnie popularne w nowszych kartach graficznych. Najważniejszą zaletą pamięci typu EDO jest zmniejszenie liczby cykli oczekiwania podczas operacji sekwencyjnego odczytu. EDO może pracować przesyłając dane w serii 5-2-2-2.
Termin Extended Data Out określa sposób, w jaki dane są przesyłane z pamięci. W przypadku FPM przed wybraniem następnej komórki w kolumnie, musiała zakończyć się operacja na danych. Natomiast EDO umożliwia rozpoczęcie wyznaczania następnego adresu w czasie, gdy dane są jeszcze odczytywane z poprzedniego miejsca. Tak naprawdę jedyną modyfikacją, jaka była konieczna, żeby osiągnąć ten efekt była zmiana zachowania się pamięci na sygnał CAS. Gdy sygnał CAS przyjmuje stan wysoki, wyjścia nie są blokowane, a przesyłanie danych jest kontynuowane dopóki CAS nie przyjmie ponownie wartości niskiej.
Znany producent półprzewodników, firma Ramtron, opracowała technologię o nazwie Enhanced DRAM (E-DRAM). Moduły te posiadają taką samą budowę jak układy EDO-DRAM, ale mechanizmy decydujące o ich szybkości nie znajdują się w samej pamięci. Wzmacniacze odczytu E-DRAM są wyposażone w bardzo szybkie moduły SRAM, których czas dostępu wynosi zaledwie 8 nanosekund. Układy E-DRAM odciążają także kontroler pamięci, gdyż same sprawdzają, czy pomiędzy dwoma odwołaniami nie nastąpiła zmiana strony (page). Dzięki temu ich reakcje na sygnały page-hits (strona załadowana) lub page-misses (brak strony) są znacznie szybsze. Moduły te mogą pracować w trybie 2-1-1-1-Burst (w przypadku page-hit) przy częstotliwości taktowania kontrolera pamięci wynoszącej 40 MHz. Jeśli następuje zmiana aktywnej strony, wydajność pamięci maleje ( format 3-1-1-1 ). W przypadku zapisu danych moduły E-DRAM mogą zawsze pracować w trybie 2-1-1-1-Burst.
Rozwinięciem pamięci EDO jest BEDO RAM. Pamięć Burst-EDO-DRAM jest jeszcze szybsza i może być wykorzystywana jedynie w nowoczesnych płytach głównych Pentium. Zasadniczą zmianą w przypadku BEDO jest sposób, w jaki dane przesyłane są po wyznaczeniu adresu. Płyty te nie adresują już pojedynczych komórek pamięci roboczej, lecz zapisują i odczytują dane pogrupowane w specjalne pakiety, zwane fachowo „Burst”. Z reguły jeden pakiet Burst składa się z czterech podwójnych słów, a więc liczy 4 x 32 bity. Szybki dostęp do pamięci jest tu możliwy dlatego, że układ Burst-EDO-DRAM wyręcza procesor w generowaniu adresów kolumn i to zarówno podczas odczytu, jak i zapisu danych.
BEDO posiada wewnętrzny licznik adresów, kontroler pamięci odwołuje się tylko do pierwszej komórki pamięci, a pozostałe bity przesyła samoczynnie układ logiki. Jest to tak zwane przesyłanie w trybie burst, co pozwala na cykl pracy 5-1-1-1. Moduły BEDO posiadają także inne modyfikacje wpływające na ich wydajność, np. skrócenie odstępu pomiędzy zboczami sygnału CAS, oraz opóźnienia pomiędzy sygnałem RAS i CAS. Nie zrezygnowano także z pomysłu stosowanego w pamięciach EDO. W czasie przesłania ostatniego bitu w pakiecie (burst) danych, wysterowywany jest już kolejny adres. Obecnie znaczenie opisywanych układów pamięci znacznie zmalało, gdyż można je stosować tylko w przypadku niektórych płyt głównych. Po zwiększeniu częstotliwości magistrali powyżej 66 MHz, BEDO nie może dostarczać danych w sekwencji 5-1-1-1.
(Synchronous Dynamic RAM, nie mylić z SRAM!!!). Najważniejszą cechą tego nowego rodzaju pamięci jest możliwość pracy zgodnie z taktem zegara systemowego. Podobnie do układów BEDO, SDRAM-y mogą pracować w cyklu 5-1-1-1. Istotną różnicą jest natomiast możliwość bezpiecznej współpracy z magistralą systemów przy prędkości nawet 100 MHz. Technologia synchronicznej pamięci DRAM bazuje na rozwiązaniach stosowanych w pamięciach dynamicznych, którą połączono z synchronizowaniem sygnałów kontrolnych, przesyłania danych z taktem zegara. Funkcjonalnie SDRAM przypomina typową DRAM, zawartość pamięci musi być odświeżana. Jednak znaczne udoskonalenia, takie jak wewnętrzny pipelining czy przeplot (interleaving) sprawiają, że ten rodzaj pamięci oferuje bardzo wysoką wydajność. Warto także wspomnieć o istnieniu programowalnego trybu burst, gdzie możliwa jest kontrola prędkości transferu danych oraz eliminacja cykli oczekiwania (wait states).
Synchroniczna pamięć dynamiczna RAM (Synchronous Dynamic RAM - SDRAM) jest najnowszym po fast - page - mode (FPM) i EDORAM - standardem pamięci DRAM dla komputerów PC. Układ SDRAM może pracować bez cykli oczekiwania (wait states).
Pamięci SDRAM mają zupełnie inną architekturę niż tradycyjne układy FPM i EDO. Chociaż wykorzystują ten sam zestaw sygnałów, to jednak oprócz magistrali danych i adresowej większość z nich pełni całkowicie inne funkcje. na przykład sygnały RAS, CAS, CS i WE tworzą czterobitowe tzw. słowo sterujące (command word), które razem z rejestrem trybu pracy (mode register) konfiguruje i programuje układ oraz określa jego parametry pracy. W celu zwiększenia wydajności pamięci SDRAM są wewnętrznie podzielone na banki. Pozwala to realizować adresowanie z przeplotem już w obrębie samego układu. Ponadto w układach SDRAM zastosowano przetwarzanie potokowe o trzech poziomach, dzięki czemu można rozpocząć wykonywanie kolejnego cyklu dostępu do pamięci zanim zakończy się poprzedni. W SDRAM zaimplementowano też mechanizmy zapewniające szybszy dostęp do pamięci przy zapisie/odczycie całych segmentów, zwanych też paczkami (burst) danych, a mianowicie automatycznie zwiększany licznik adresu komórki.
...
Misku_Cortez