RAM, czyli pamięć o dostępie swobodnym PDF

Title RAM, czyli pamięć o dostępie swobodnym
Author Macio Wara
Course Senior Project
Institution Florida Memorial University
Pages 18
File Size 719.4 KB
File Type PDF
Total Downloads 3
Total Views 115

Summary

RAM, czyli pamięć o dostępie swobodnym...


Description

Pamięć operacyjna RAM, czyli pamięć o dostępie swobodnym Pamięć operacyjna komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie) służy do przechowywania danych aktualnie przetwarzanych przez program oraz ciągu rozkazów, z których składa się ten program. Pamięć RAM jest pamięcią ulotną, co oznacza, iż po wyłączeniu komputera informacja w niej zawarta jest tracona. Pamięć ta jest często nazywana DRAM (ang. Dynamic RAM) ze względu na zasadę działania: pojedyncza komórka pamięci zawiera kondensator (pojemność), który naładowany do pewnego napięcia , przechowuje jeden bit danych. Kondensator jednak szybko rozładowuje się i należy systematycznie odświeżać zawartość komórki, poprzez zaadresowanie jej i ponowne doładowanie kondensatora. Proces ten nosi nazwę odświeżania pamięci i musi być realizowany cyklicznie. Pamięć charakteryzowana jest przez dwa istotne parametry: pojemność oraz czas dostępu. Pojemność pamięci jest funkcją liczby linii adresowych i wielkości komórki; jeśli pamięć jest adresowana za pomocą 10-liniowej (10bitowej) szyny adresowej, a każda komórka może przechowywać 8 bitów, pojemność wynosi 1024 bajty. Czas jaki upłynie od momentu zaadresowania komórki pamięci do uzyskania zapisanej w tej komórce informacji nazywa się czasem dostępu. Czasy dostępu współczesnych pamięci DRAM wynoszą kilka nanosekund, co oznacza, iż w ciągu tych kilku nanosekund, zanim nie zostanie odczytana informacja, nie można zaadresować następnej komórki. 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 sprawia, że konieczne staje się odświeżanie zawartości impulsami pojawiającymi się w określonych odstępach czasu. W przypadku SRAM nie występuje konieczność odświeżania komórek 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.

1

Jak działa pamięć RAM? Jak działa pamięć RAM? Upraszczając - ma ona 2 wejścia, do których procesor wpisuje adres żądanego bajtu (ponieważ wewnętrzna architektura pamięci przypomina tabelę, potrzebne są 2 liczby, określające wiersz i kolumnę). Na wejście CPU podaje także informację, czy chce odczytać lub zapisać dane. Gdy adres zostanie ustalony, dane są zapisywane lub odczytane do/z komórki. Każda z tych operacji (a także okres oczekiwania między nimi) zabiera określony czas. Długość wykonania operacji aż do momentu zapisu/odczytu danych określona jest jako czas dostępu i charakteryzuje każdy typ pamięci. Magistrala W komputerze pamięć jest podłączona do głównej magistrali danych, która łączy się także z procesorem i urządzeniami wejścia-wyjścia. Magistrala ta pracuje z określoną częstotliwością. Obecnie najczęściej jest to częstotliwość 66, 100 lub 133 MHz. Każda z wcześniej opisanych operacji (wpisanie adresu wiersza i kolumny, wybór trybu zapis/odczyt, wprowadzenie bajta do zapisu/odczytu) zabiera jeden bądź więcej cykli zegara magistrali. Im wolniejsza pamięć, tym dłużej blokuje ona magistralę i komunikację z innymi elementami komputera. Jej działanie można przyspieszyć na kilka sposobów: przez redukcję czasu dostępu, czyli wzrost częstotliwości pracy, albo poszerzenie magistrali np. z 16- do 32-bitowej, żeby za każdym razem można było odczytać więcej niż jeden bajt. Drugi przypadek wymaga zwiększenia liczby pinów w układach scalonych i liczby połączeń na płytkach drukowanych, co zwiększa koszty produkcji, a także powoduje wzrost ilości pobieranego prądu.

2

Typy pamięci Rozróżniamy w zasadzie dwa typy pamięci elektronicznej, które dość istotnie różnią się pod względem budowy. Jest to pamięć dynamiczna oraz statyczna. Do pierwszego typu należą wszystkie używane dziś i zapewne w najbliższej przyszłości typy pamięci operacyjnej RAM. Pamięć dynamiczna ma prostą budowę i składa się z poszczególnych komórek, które są połączone w macierze. Każda komórka ma swój adres do której zawsze dochodzą dwie linie słowa i bitów.

Na górze czerwony przebieg oznacza sygnał jaki wędruje magistralą do pamięci. Jeden cykl to jeden prostokąt. W środku widać jak pracuje pamięć SDRAM o czasie opóźnienia 2 CAS. Oznacza to, iż ta kość potrzebuje aż dwóch cykli zegarowych na ustabilizowanie sygnału, aby bez zakłóceń przesłać kolejną daną. Prowadzi to do sporych przestojów i straty czasu. Nowe pamięci EDRAM nie potrzebują tych dodatkowych nanosekund.

Komórka pamięci zawiera kondensator i tranzystor. Pierwszy ma za zadanie przechować przez pewien czas ładunek elektryczny, a drugi sterować tym ładunkiem. Baza i emiter tranzystora połączone są ze wspomnianymi liniami, a kolektor z kondensatorem. Chcąc zapisać logiczne "jeden" na kondensatorze, należy na bazę tranzystora przesłać impuls prądowy aby otworzyć kanał, a następnie przesłać ładunek przez kolektor do kondensatora. Wobec czego do zapisania danej potrzebne będą dwa impulsy prądowe. Przy odczytywaniu danej także trzeba użyć dwóch linii. Linia słowa pracuje w komórce jako linia sterująca pracą tranzystora, a po linii bitów napływa lub spływa dana do detektora znajdującego się także w pamięci. Aby cały proces przebiegał bezbłędnie komórki muszą być co jakiś czas odświeżane, ponieważ ładunek znajdujący się na kondensatorze ma określony czas "życia", po którym zwyczajnie się rozładuje. Dlatego właśnie pamięci dynamiczne muszą być ciągle odświeżane, a pozbawienie ich dopływu prądu powoduje wyzerowanie ich wartości. Naciśnięcie przycisku reset jest właśnie rozładowaniem kondensatorów.

3

Schemat działania pamięci RAM.

Pamięć statyczna Pamięć statyczna czyli tzw. SRAM (Static RAM) jest zbudowana w oparciu wyłącznie o tranzystory. Logiczne 1 lub 0 tworzy określony stan otwarcia bądź zamknięcia kanałów na kolejnych układach. Liczba wymaganych tranzystorów do budowy tylko jednej komórki to od 4 do nawet 10 układów. Zaletą SRAM'u oprócz przechowywania informacji bez podtrzymywania napięcia jest duża szybkość. SRAM stosowany jest m.in. jako pamięć cache L1 lub L2 wewnątrz procesorów. Wadą tego typu pamięci jest cena, która jest kilkanaście razy wyższa od pamięci dynamicznych.

4

Pamięć oparta o układy statyczne charakteryzuje się tym iż jest nieulotna i nie wymaga odświeżania.

W zależności od tego jaką wartość reprezentuje komórka, jeden z tranzystorów przewodzi, a drugi jest w stanie odcięcia. Gdy komórka nie jest wybrana na linii słowa występuje napięcie 0,3 V dzięki czemu prąd płynący przez przewodzący tranzystor płynie do linii słowa (złącze połączone z linią bitów jest spolaryzowane zaporowo). Gdy chcemy odczytać stan, na linii słowa podajemy napięcie 3 V przez co spolaryzowane zaporowo staje się złącze z linią słowa, natomiast przewodzić zaczyna złącze z linią bitów. Spadek napięcia na odpowiednim rezystorze powoduje różnicę potencjałów która odczytywana jest przez wzmacniacz różnicowy jako 0 lub 1 (w zależności czy linia D czy D zaprzeczone ma wyższy potencjał). Podczas zapisu komórki na linii słowa również wystawiamy napięcie 3 V a na linii bitów żądane wartości, co spowoduje odpowiednie ustawienie tranzystorów. Pamięć dynamiczna

Pamięć dynamiczna cechuje się ulotnością ze względu na użycie pojemności C. Wymaga to niestety odświeżania poprzez podanie odczytywanej wartości na sprzężenie zwrotne. Konieczny jest wtedy okresowy odczyt komórki, realizowany sprzętowo, lub programowo. W przypadku wartości 1 kondensator jest załadowany, w przypadku 0 rozładowany. Zapisywanie wartości polega na podaniu stanu logicznego na linię bitów i napięcia na bramkę tranzystora T2 co powoduje ładowanie/rozładowanie kondensatora. Odczyt działa analogicznie, z tym że napięcie podajemy na bramkę T3. Wtedy prąd płynie przez tranzystory T1 i T3 do linii bitów.

5

Budowa pamięci Aby zorganizować komórki pamięci w sprawnie funkcjonujący układ, należy je odpowiednio zaadresować. Najprostszym sposobem jest zorganizowanie pamięci liniowo - jest to tak zwane adresowanie 2D. Do każdej komórki podłączone jest wejście, sygnał wybierania pochodzący z dekodera oraz wyjście. Nieco innym sposobem jest adresowanie przy użyciu tzw. matrycy 3D. Pamięć organizuje się tutaj dzieląc dostępne elementy na wiersze i kolumny. Dostęp do pojedynczego elementu pamiętającego można uzyskać po zaadresowaniu odpowiedniego wiersza i kolumny. Dlatego też komórka RAM obok wejścia i wyjścia musi dysponować jeszcze dwoma sygnałami wybierania, odpowiednio z dekodera kolumn i wierszy. Zaletą pamięci adresowanej liniowo jest prosty i szybszy dostęp do poszczególnych bitów niż w przypadku pamięci stronicowanej (3D), lecz niestety, przy takiej organizacji budowanie większych modułów RAM jest kłopotliwe. Dlatego też w przemyśle stosuje się zazwyczaj układy pamięci zorganizowanej w matrycę 3D, pozwala to na nieskomplikowane tworzenie większych modułów o jednolitym sposobie adresowania. W komputerach PC procesor uzyskuje dostęp do danych zawartych w pamięci DRAM w pakietach o długości 4-bitów (z pojedynczego rzędu), które są przesyłane sekwencyjnie lub naprzemiennie (tzw. przeplot interleave). Pomimo tego, że ostatnie trzy bity są dostarczane wraz z taktem zegara, to konieczność odpowiedniego przygotowania transmisji danych sprawia, że przed pierwszym bitem "wstawiony" zostaje jeden cykl oczekiwania. Taki sposób transferu danych można oznaczyć jako cykl 2-1-1-1.

Budowa logiczna pojedynczej komórki pamięci 6

Struktura pamięci 2D

Struktura pamięci 3D

7

Pojęcie adresu Adresem nazywamy pewną specyficzną liczbę, która opisuje komórkę pamięci. Za pomocą adresu informujemy procesor gdzie ma zostać zapisana, lub odczytana dana. Niestety, ze względu na różne sposoby dostępu procesora do pamięci samo pojęcie adresu niewiele już znaczy. Poniżej zdefiniowane są najistotniejsze pojęcia adresów, które należy poznać aby bez problemu orientować się podczas czytania specjalistycznej literatury: adres fizyczny - (physical address) jest adresem najniższego poziomu. Podczas komunikacji procesora z układem obsługującym pamięć, na jego liniach adresowych wystawiany jest właśnie adres fizyczny. Wykorzystujemy go przy tworzeniu tablic implementujących stronicowanie, lub podczas komunikowania się z dowolnymi urządzeniami. Należy zauważyć, że podczas gdy mechanizm stronicowania pamięci jest wyłączony, adres fizyczny jest równy adresowi liniowemu, adres liniowy - (linear address) jest formą przejściową między adresem fizycznym. Dzięki istnieniu adresu liniowego można uzyskać ciągłość pamięci nawet, jeżeli fizycznie jest ona porozrzucana. Adres liniowy jest zamieniany przez mechanizm stronicowania na adres fizyczny za pomocą tablic stron. W systemach wielozadaniowych niemożliwa jest wymiana adresów liniowych pomiędzy zadaniami, gdyż każde z nich może mieć oddzielne tablice stron. Adresy liniowe wykorzystujemy głównie przy tworzeniu deskryptorów, adres logiczny - (logical address) jest adresem złożonym z dwóch członów: identyfikatora segmentu i przemieszczenia w tym segmencie. Dla trybu rzeczywistego i V86 identyfikatorem segmentu będzie jego adres liniowy podzielony przez 16, dla trybu chronionego będzie to selektor segmentu. Adres taki zapisujemy w postaci SEGMENT:OFFSET lub SELEKTOR:OFFSET. Adres logiczny powinien być wykorzystywany do zapisywania lub odczytywania danych, procesor automatycznie zamienia go na adres logiczny a następnie na adres fizyczny, adres segmentowy - (segment) jest pierwszą częścią adresu logicznego. Jeżeli został podany bez przemieszczenia oznacza to, że wskazuje nie konkretną komórkę pamięci a cały blok. Domyślnie przyjmujemy przemieszczenie 0. Adres segmentowy zwracany jest przez niektóre funkcje interfejsów API (Application Program Interface), adres relatywny - (offset) jest przemieszczeniem względem segmentu, lub jakiegoś bloku danych. Adres takiego segmentu musi być znany.

8

FAST PAGE MODE (FPM RAM)

Pamięci FPM DRAM to pamięci o czasie dostępu 70 lub 60 ns. Układy 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, 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 w celu zaadresowania kolumny następuje uaktywnienie sygnału CAS. 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 pamięci. EXTENDED DATA OUTPUT (EDO RAM) Czas dostępu pamięci EDO wynosi 70 i 60 ns. Coraz częściej spotyka się także układy pracujące z szybkością 50 ns. Najważniejszą zaletą pamięci typu EDO jest zmniejszenie liczby cykli oczekiwania podczas operacji sekwencyjnego odczytu. W przypadku modułów bazujących na FPM, cykl dostępu do pamięci wynosił 5-3-3-3, natomiast EDO może pracować przesyłając dane w serii 5-2-22. 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ę jedyna modyfikacja, jaka była konieczna, żeby osiągnąć ten efekt to 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.

9

BURST EXTENDED DATA OUTPUT (BEDO RAM)

Rozwinięciem pamięci EDO jest BEDO RAM. Zasadniczą zmianą w przypadku BEDO jest sposób, w jaki dane przesyłane są po wyznaczeniu adresu. Otóż dzięki temu, że 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 rozwiązania stosowanego w pamięciach EDO. W czasie przesłania ostatniego bitu w pakiecie (burst) danych, wysterowywany jest już kolejny adres. Ten rodzaj RAM-u nie stał się popularny, ponieważ po zwiększeniu częstotliwości magistrali powyżej 66 MHz, BEDO nie może dostarczać danych w sekwencji 5-1-1-1. SYNCHRONICZNA DRAM (SDRAM) SDRAM jest pamięcią synchroniczną, używaną do dziś w pecetach. Została ona uznana jako obowiązujący standard przez forum JEDEC, z którym współpracują największe firmy elektroniczne. Forum to jest otwartą organizacją, która określa i rozwija standardy pamięci elektronicznych (włącznie z DDR-SDRAM). Pamięci DIMM SDRAM to moduły 168-pinowe z 64-bitową magistralą (lub 72bitową z kontrolą parzystości). Jest ich kilka rodzajów, ale te najpopularniejsze to moduły niebuforowane zasilane napięciem 3.3V. Przepustowość pamięci PC133 jest równa 1,064 GB/s.

Najważniejszą cechą tych 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ą systemową przy prędkości 100 MHz (10 ns). Technologia synchronicznej pamięci DRAM bazuje na rozwiązaniach stosowanych w pamięciach dynamicznych, zastosowano tu jednak synchroniczne przesyłanie danych równocześnie 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 10

wspomnieć o istnieniu programowalnego trybu burst, gdzie możliwa jest kontrola prędkości transferu danych oraz eliminacja cykli oczekiwania (wait states). Burst mode ... tak nazywają się specjalne tryby pracy, w których dane można przesyłać w pakietach po 1, 2, 4, 8 bajtów oraz o całej szerokości wiersza pamięci (strony). SDRAM rodził się w bólach - w końcu to zupełnie nowy standard. Początkowo wiele pamięci nie spełniało ustalonych wcześniej norm. Do modułów DIMM dodano więc specjalny układ pamięci stałej z zapisanymi parametrami chipów (SPD). Trzeba było także zmodyfikować nieco typy pinów w układach, gdyż ich liczba była niewystarczająca. Pierwsze moduły, które można spotkać w starszych komputerach (głównie pierwszych maszynach z procesorami Pentium), mogą nie działać w nowszych (pomijając oczywiście problem prędkości). Później Intel wprowadził szczegółowe specyfikacje pamięci - PC100 i PC133, które określają, jakie normy musi spełniać moduł DIMM i jak ma być skonstruowany. Chociaż PC100 i PC133 informują głównie o częstotliwości, z jaką pracuje pamięć, nie oznacza to, że wszystkie moduły są identyczne. Np. w PC100 powszechnie używa się modułów 8 ns, chociaż z przeliczenia wynika, że przeznaczone są one do pamięci 125 MHz (1 sekunda = miliard ns, więc 1 000 000 000/8 = 125 000 000, czyli 125MHz). Normy JEDEC określają graniczną częstotliwość pracy jako 125 MHz, choć udało się z powodzeniem wprowadzić pamięci 133 MHz, a niektóre moduły są w stanie pracować nawet z częstotliwością 166MHz. PAMIĘĆ CACHE - SRAM Wydajność systemu wyposażonego nawet w najszybszą pamięć SDRAM, wzrośnie jeśli tylko na płycie głównej zostanie umieszczona pamięć podręczna. Cache drugiego poziomu jest tak zwaną pamięcią statyczną SRAM. Ten rodzaj RAM jest szybszy od pamięci dynamicznych, jednak bardziej kosztowny. Już w komputerach 386 na płytach głównych montowano 64 KB tej pamięci. Początkowo stosowany był asynchroniczny SRAM, którego główną zaletą była duża naonczas szybkość (zazwyczaj 15 ns). Dosyć często jednak występowała konieczność wstawienia cyklu oczekiwania z powodu braku synchronizacji pomiędzy buforem a procesorem. Dlatego też pojawił się synchroniczny SRAM, którego parametry pracy poprawiły się właśnie dzięki eliminacji wait states. O ile pierwsze pamięci asynchroniczne mogły w najlepszym razie osiągnąć cykl 32-2-2 przy magistrali 66 MHz, to w przypadku synchronicznego bufora możliwe było stosowanie cyklu pracy 2-1-1-1. Obecnie jedynym rodzajem cache'u stosowanego na płytach głównych jest tzw. Piplined Burst SRAM. PB-cache 11

pracuje synchronicznie oraz dodatkowo zawiera specjalne rejestry wejścia/wyjścia umożliwiające pipelining. Ponieważ przeładowanie rejestrów zajmuje trochę czasu, konieczna jest praca w cyklu 3-1-1-1. Dlaczego więc stosuje się cache PB zamiast synchronicznego? Otóż synchroniczny SRAM doskonale pracuje do częstotliwości 66 MHz, jednak powyżej tej granicy następuje wyraźny spadek wydajności (3-2-2-2). Natomiast Piplined Burst cache, mimo że wymaga jednego cyklu oczekiwania więcej, może bezproblemowo pracować z magistralą 100 MHz w sekwencji 3-1-1-1. SIMM-y kont...


Similar Free PDFs