background image

Pamięci RAM 

 
Pamięci – wstęp 
 

Pamięci  są  układami  logicznymi  wykorzystywanymi  do  przechowywania,  wydawania  i 

przyjmowania  zakodowanych  danych  informacyjnych.  Podstawowym  typem  pamięci, 
powszechnie  dzisiaj  wykorzystywanym  jest  pamięć  półprzewodnikowa.  Przekazywana 
informacja  jest  zapisywana  w  postaci  binarnej,  jest  to  więc  ciąg  zer  i  jedynek.  Każdy  z 
podstawowych  elementów  danej  nazywany  jest  bitem,  gdy  połączymy  ze  sobą  8  bitów 
dostaniemy jeden bajt, natomiast 16 bitowy element nazywany jest słowem. Podstawowymi 
parametrami opisującymi każdy typ pamięci są: 

 

Szybkość 

 

Pojemność 

 

Pobór mocy 

 

Koszt 

Pojemność każdej pamięci, to ilość informacji którą dana pamięć jest w stanie przechować. 
Mierzy  się  ją  zazwyczaj  w  bitach,  bajtach  i  słowach.  Wyrażana  jest  w  kilobitach  -  kb, 
megabitach - Mb, gigabitach - GB, oraz analogicznie w kilobajtach - kB, megabajtach MB i w 
gigabajtach GB. Obecnie ilość pamięci  mierzy się już tylko  korzystając  z miar megabajtów 
oraz  gigabajtów.  Pojemność  pamięci  jest  zatem  określana  liczbą  słów  i  długością  słowa. 
Liczbę  słów  podaje  się  za  pomocą  odpowiednich  przedrostków,  którym  odpowiadają 
określone mnożniki. 
Zależności pomiędzy jednostkami pojemności: 

 

1 KB pojemności odpowiada liczbie 1024 bajtów 

 

1 MB pojemności odpowiada liczbie 1024 * 1024 bajtów 

 

1 GB pojemności odpowiada liczbie 1024 * 1024 * 1024 bajtów 

Szybkość  jest  parametrem  określającym  jak  często  procesor,  lub  inne  urządzenie 
wykorzystujące  pamięć  mogą  z  niej  korzystać.  Szybkość  pamięci  jest  określana  kilkoma 
precyzyjnymi parametrami: 

 

Czasem  dostępu  -  access  time.  Jest  to  czas  upływający  od  momentu  w  którym 
wysyłane  jest  żądanie  dostępu  do  pamięci  do  czasu  w  którym  informacja  zwrotna 
ukaże  się  na  jej  wyjściu.  Czas  dostępu  szybkich  pamięci  operacyjnych  waha  się  w 
granicach od 20 do 200 ns. 

 

Czasem  cyklu  -  cycle  time.  Jest  to  czas  najkrótszy,  który  upływa  między  dwoma 
kolejnymi  żądaniami  dostępu  do  pamięci.  Czas  ten  jest  zawsze  dłuższy  od  czasu 
dostępu,  co  wynika  z  fizycznej  budowy  pamięci,  chodzi  tu  głównie  o  opóźnienia 
wnoszone przez wszystkie elementy elektroniczne. 

 

Szybkością  transmisji  -  transfer  speed.  Szybkość  transmisji  mierzymy  liczbą  bitów, 
bądź bajtów, którą jesteśmy w stanie przesłać pomiędzy urządzeniem, a pamięcią. Ten 
parametr  jest  bardzo  ważny  w  pamięciach,  adresowanych  ilością  bitów  większą  od 
słowa, na przykład pamięci na dyskach magnetycznych. Ze względu na konieczność 
odczytu i zapisu bloku słów, mniej istotny staje się czas dostępu, natomiast ważniejszy 
jest  czas  w  którym  porcja  danych  może  zostać  przesłana.  Szybkość  transmisji 
mierzymy w bajtach lub bitach na sekundę. 

Każda  nowo  wprowadzana  technologia  pozwala  zmniejszyć  koszt  produkcji  pamięci  oraz 
ulepszyć zarazem jej parametry. Dlatego nowe pamięci dosyć szybko się starzeją, naturalnie 
pod  względem  technologicznym.  Bardzo  często  czas  użytkowania  danego  typu  pamięci  na 
przykład w komputerach klasy PC wynosi zaledwie kilka lat, później należy zaopatrzyć się w 
nowsze  rozwiązania.  Los  taki  spotkał  popularne  w  latach  sześćdziesiątych  ubiegłego  wieku 

background image

ferrytowe pamięci  rdzeniowe, które obecnie można spotkać już chyba tylko w muzeum. Na 
dzień  dzisiejszy  najniższym  kosztem,  a  także  dobrymi  parametrami  charakteryzują  się 
pamięci  półprzewodnikowe.  Istnieje  ich  ogromne  zróżnicowanie  ze  względu  na  pojemność, 
szybkość  działania  oraz  oczywiście  cenę.  Tanie  pamięci  półprzewodnikowe  oparte  na 
układach  scalonych  cechują  się  niewielką  szybkością  działania.  Szybkie  pamięci  mają 
zazwyczaj  mniejsze  pojemności  przy  dosyć  dużej  cenie.  Z  tych  powodów  szuka  się  ciągle 
nowych rozwiązań architektury komputerów, które pozwoliłyby na optymalną ich współpracę 
z  posiadanymi  na  pokładzie  pamięciami.  Pewnym  rozwiązaniem  pamięci  operacyjnych  jest 
stosowanie  dwóch  rodzajów  pamięci  półprzewodnikowych,  pamięci  bardzo  szybkich  o 
małych pojemnościach, oraz pamięci wolniejszych o dużych pojemnościach, które nie są zbyt 
często  czytane  przez  procesor.  Dzięki  temu  będziemy  posiadali  pamięć  operacyjną  o  dużej 
pojemności, a także o szybkim działaniu w przypadku procesów krytycznych do poprawnego 
działania  systemu  operacyjnego.  Bardzo  szybka  pamięć  o  małej  pojemności,  która 
współpracuje z pamięcią operacyjną jest nazywana pamięcią typu Cache. 

Również pobór mocy stanowi bardzo ważny parametr, który staje się problemem przy 

budowaniu  urządzeń  zasilanych  bateryjnie,  jak  komputery  kieszonkowe,  laptopy.  Również 
urządzenia wyposażone w pamięci operacyjne o bardzo dużych pojemnościach. Istnieje wtedy 
problem  z  połączeniem  wielkiej  liczby  układów  scalonych  oraz  z  odpowiednim 
odprowadzeniem wydzielanego ciepła. 

Pamięć zbudowana jest z rejestrów komórek pamięci, w których zapamiętane są słowa 

jednobitowe, czterobitowe lub bajtowe. W każdej komórce odpowiada jej adres, czyli numer 
zapisany  w  postaci  dwójkowej,  który  oznacza  położenie  tej  informacji  w  pamięci.  Chcąc 
dokonać  operacji  odczytu  lub  zapisu  na  pamięci  należy  podać  na  wejścia  adresowe  tej 
pamięci odpowiedni numer komórki którą chcemy modyfikować lub odczytać, a na wejścia 
sterujące  odpowiednią  daną,  w  przypadku  zapisu.  Chcąc  zaadresować  2

n

  komórek  pamięci 

należy  użyć  n  wejść  adresowych.  Przykładowo  do  zaadresowania  pamięci  o  pojemności 
64KB,  czyli  65536  bajtów,  należy  użyć  16  wejść  adresowych.  Jak  wiadomo  informacje  są 
zapisywane w pamięci w postaci binarnej, dlatego najwygodniej jest używać liczb zapisanych 
w postaci szesnastkowej, zwanej też heksadecymalną. 
Pamięci posiadają następujące piny wejścia/wyjścia: 

 

Wejścia adresowe oznaczane A0….An, gdzie n - liczba wyprowadzeń potrzebna do 
zaadresowania 2

n

 komórek pamięci. 

 

Wejścia/wyjścia informacji - danych D0.…Dm, gdzie m jest długością słowa 
zapisywanego pod jedną komórką pamięci. 

 

Wejścia sterujące, które służą do wyboru funkcji jaką pamięć ma wykonać. Są to 
wejścia WE - Write Enable, CS - Chip Selekt, CE - Clock Enable oraz OE - Output 
Enable. 

 

Wejścia strobu adresu: ALE - Adress Latch Enable, RAS - Row Adress Select, CAS - 
Column Adress Select. 
 

Pamięci dynamiczne o swobodnym czasie dostępu - RAM 

W dzisiejszych czasach pamięć RAM realizowana jest sprzętowo, w postaci układów 

scalonych, które występują w różnych technologiach, także jako fragmenty znacznie bardziej 
złożonych  układów  scalonych,  na  przykład  pamięć  podręczna  procesora.  Pamięci  RAM  z 
jakimi mamy najczęściej do czynienia znajdują swe największe zastosowanie w komputerach 
osobistych. 

Pamięć RAM jest wykorzystywana do operacji ciągłego zapisu danych w postaci bajtu 

lub słowa, do tymczasowego zapamiętywania oraz odczytu informacji. Znając podstawy teorii 
automatów  wiadomo,  że  każda  czynność  zapamiętywania  pociąga  za  sobą  stosowanie 
odpowiednich  układów  sekwencyjnych,  w  których  informacje  tego  typu  mogą  być 

background image

zapisywane,  bądź  odczytywane  zgodnie  z  określoną  kolejnością.  Dostęp  do  danej  komórki 
pamięci  zależy  od  miejsca  w  którym  się  ona  znajduje  oraz  czasu,  który  mija  przed 
rozpoczęciem operacji zapisu lub odczytu. 

 

Podział pamięci RAM 
 
Rozróżniamy dwa podstawowe rodzaje pamięci RAM: 

 

Pamięci  statyczne  -  SRAM.  Elementem  pamiętającym  w  tego  typu  pamięci  jest 
bistabilny  przerzutnik  asynchroniczny  typu  RS.  Komórki  wykonywane  były  dawniej 
w  technologii  bipolarnej,  obecnie  stosuje  się  specjalne  układy  MOS.  Informacja  w 
tych  pamięciach  jest  utrzymywana  dopóty,  dopóki  nie  zostanie  zastąpiona  inną  lub 
napięcie zasilające nie zostanie odłączone. 

 

Pamięci dynamiczne - DRAM. Elementem pamiętającym w tego typu pamięciach są 
pojemności  wejściowe  tranzystorów  typu  MOS,  które  gromadzą  ładunek,  lub  go 
odprowadzają.  Istnieje  konieczność  odświeżania  tego  typu  pamięci  w  celu 
uzupełniania ładunku, który dosyć szybko zanika. Do poprawnej pracy tej pamięci nie 
wystarczy więc tylko podłączenie go do zasilania, w przypadku braku częstych cykli 
zapisu lub odczytu, zawartość komórki zostałaby stracona. 

Pamięci DRAM możemy dodatkowo podzielić na kilka podtypów, w zależności od 
implementacji na: 

 

EDO DRAM - Extended Data Out DRAM 

 

FPM DRAM - Fast Page Mode DRAM 

 

SDRAM - Synchroneus DRAM 

 

DDR 

 

GDDR 

W  pamięciach  RAM  poszczególne  komórki  są  ułożone  w  wybierane  liniami  adresu 
wejściowego słowa. Dla  łatwiejszego wyobrażenia sobie struktury pamięci,  przedstawmy ją 
jako dwuwymiarową matrycę, która składa się z n słów zawierających m bitów, dodatkowo 
podzieloną na obszary robocze zwane strefami. 
Dekodery  wejścia  oraz  wyjścia  kooperują  z  równoległymi  rejestrami  pamiętającymi 
przychodzące dane, ponieważ operacja odczytu i zapisu do pamięci trwa zwykle przez sporą 
ilość  cykli  zegarowych.  Zawartości  linii  adresowej  i  danych  mogą  się  w  tym  momencie 
zmienić,  dzięki  użyciu  rejestrów  o  odpowiednich  długościach,  żadna  z  informacji  nie  jest 
tracona. 
Zależnie od stanu logicznego na wejściu R/W komórki pamięciowe przyjmują informację z 
rejestru danych, następuje wtedy cykl zapisu pamięci, albo wyprowadzają na rejestr danych 
zawartość  komórki  pamięci,  w  cyklu  odczytu.  Rejestr  przekazuje  dalej  informację  lub  ją 
odbiera z szyny danych, stanowi on zatem bufor dwukierunkowy. 
 

 

background image

Charakterystyka pamięci DRAM 

 

Informacje  przechowywane  są  w  pamięci  DRAM,  pod  postacią  ładunku 

zgromadzonego przez kondensator Cs. Na skutek rozładowania kondensatora, ustala na nim 
napięcie  odpowiadające  logicznemu  zeru,  natomiast  poprzez  proces  ładowania,  ustalone 
napięcie odpowiada jedynce logicznej. 

Organizując adres jak na rysunku, komórka posiada wejście adresowe W dla wierszy, 

oraz pojedynczą linię danych wspólną dla komórek o adresie określanym przez kolumnę B. 
Wspólny  dla  kolumny  adresowej  B  jest  wzmacniacz  odczytu.  Po  wybraniu  komórki,  na 
wejściach  adresowych  B  oraz  W  ustala  się  stan  wysoki,  a  pojemność  Cs  jest  dołączana  do 
linii danych. Podczas zapisu doprowadzane jest do niej napięcie ze wzmacniacza zapisu, które 
odpowiada logicznej jedynce lub zeru. Po fazie odczytu ładunek znajdujący się w pojemności 
Cs stopniowo ładuje dużo większą pojemność Cb, na którą składa się dodatkowo pojemność 
drenu, dlatego napięcie odczytu powinno być dużo wyższe od napięcia na kondensatorze Cs. 
Odczyt powinien być wzmacniany dobrym układem uzupełnionym o elementy odświeżające 
pamięć, które będą odświeżały poszczególne kolumny niezależnie od wykonywanego cyklu. 
Innym rozwiązaniem jest zastosowanie wielotranzystorowych komórek pamięciowych z dużo 
prostszym układem odświeżania oraz prostym wzmacniaczem odczytu/zapisu. 

Typowa  struktura  pamięci  dynamicznej,  posiadającej  pojemność  64  kilobitów, 

przedstawia  się  jako  matryca  zbudowana  z  256  wierszy  oraz  256  kolumn.  Aby  zmniejszyć 
liczbę  wyprowadzeń  pamięci  dynamicznej  oraz  ułatwić  jej  odświeżanie,  należy 
multipleksować  wejścia  adresowe.  Adresowanie  pamięci  polega  na  podaniu  ośmiu 
ważniejszych bitów adresu, co stanowi adres wiersza, następnie podawane są wartości ośmiu 
młodszych  bitów,  stanowiących  adres  kolumny.  Adres  wiersza  wpisywany  jest  do  rejestru 
wiersza  przy  opadającym  zboczu  sygnału  ~RAS.  Następnie  dekoder  adresu,  którym  jest 
zwykły  multiplekser  wybiera  odpowiadający  żądanemu  adresowi  wiersz.  Podobnie  adres 
kolumny  wpisywany  jest  z  wejść  do  rejestru  kolumny  po  stwierdzeniu  opadającego  zbocza 
sygnału  CAS.  Demultiplekser  wybiera  odpowiednią  kolumnę  o  żądanym  adresie.  Wybranie 
wiersza  oraz  kolumny  w  matrycy  pamięciowej  odpowiada  wskazaniu  jednej  konkretnej 
komórki  pamięci,  przy  zaoszczędzeniu  połowy  wyprowadzeń.  Jeżeli  podczas  operacji 
wskazania adresu, na pinie WE był stan logicznego 0, to zawartość komórki przesyłana jest 
na  wyjście  układu,  ma  wtedy  miejsce  operacja  odczytu.  Gdy  WE  =  1  następuje  zapis 
wejściowej informacji do komórki o podanym adresie. 

 

background image

 

Charakterystyka pamięci SRAM 

 

Podstawowym  elementem  pamiętającym  pamięci  statycznych  RAM  jest  bistabilny, 

który tworzą tranzystory T1, T2 oraz dwa rezystory. Pozostałe rezystory widoczne na rysunku 
stanowią  klucze  przełączające  oraz  odłączające  przerzutnik  bistabilny  od  linii  bitów.  Gdy 
komórka  pamięci  jest  odczytywana  lub  zapisywana  tranzystory  te  stanowią  zwarcie,  dzięki 
temu  przerzutnik  bistabilny  jest  przyłączany  do  linii  bitu,  którą  łączymy  z 
wejściem/wyjściem.  Również  w  tym  wypadku  komórki  pamięci  tworzą  wspólnie  matrycę 
zbudowaną  z  linii  wierszy  oraz  kolumn.  To,  gdzie  dana  komórka  jest  położona  wewnątrz 
matrycy, jednoznacznie określa adres powstały z połączenia numeru wiersza oraz kolumny 
Pamięć statyczna RAM posiada trzy wejścia sterujące, są to: 

 

Uaktywnienie pamięci 

 

Zezwolenie na zapis 

 

Zezwolenie na odczyt 

Jeżeli wejście ~CS jest w stanie logicznym 1 to pamięć nie jest dostępna i jej wszystkie 

wejścia oraz wyjścia znajdują się w stanie wysokiej impedancji, czyli są odłączone. Wraz ze 
zmianą wartości wejścia ~CS na logiczne 0 pamięć jest aktywowana. Jeżeli w tym czasie WE 
jest w stanie logicznego 0, to jest wykonywana operacja odczytu danych z komórki określonej 
przy  pomocy  wejść  adresowych.  Jeżeli  WE  jest  w  stanie  logicznej  jedynki,  układ  zapisze 
wystawione na szynie dane do komórki pamięci znajdującej się pod wskazanym adresem. 

Przykładowa  pamięć  SRAM  zbudowana  jest  z  ośmiu  matryc,  każda  po  128  wierszy  i 

kolumn.  Aby  poprawnie  zaadresować  tego  typu  pamięć  należy  użyć  14  wejść  adresowych. 
Bity bardziej znaczące A0…A6 podawane są na wejścia demultipleksera, który wybiera jeden 
spośród  128  wierszy.  Mniej  znaczące  bity  A7…A13  podawane  są  na  wejścia  drugiego 
demultipleksera, który wybiera jedną spośród 128 kolumn. Tym sposobem wybranych zostało 
dokładnie 8 komórek pamięci, każda przechowująca jeden bit informacji. Możliwy więc jest 
zapis  lub  odczyt  słowa  jedno  -  bajtowego.  Można  spotkać  wiele  różnych  rozwiązań 
adresowania,  odczytywania  i  zapisywania  pamięci  RAM.  Pamięci  aktualnie  stosowane, 
charakteryzujące  się  dużymi  pojemnościami  są  organizowane  do  opisanego  adresowania 
matrycowego,  czyli  najpierw  na  liniach  adresowych  podaje  się  numer  wiersza  a  potem 
kolumny.  W  ten  sposób  wymagana  ilość  połączeń  zmniejsza  nam  się  o  połowę,  co  bardzo 
upraszcza cały układ. 

background image

Pamięci  SRAM  są  szybsze  od  pamięci  DRAM,  najczęściej  stosuje  się  jednak  te  drugie, 

głównie ze względu na znacznie niższą cenę. Pojedyncza komórka pamięci SRAM zawiera aż 
czterokrotnie więcej tranzystorów od analogicznej pamięci DRAM, w związku z tym posiada 
czterokrotnie  większe  zapotrzebowanie  na  moc,  wzrasta  również  drastycznie  stopień 
skomplikowania  układu  scalonego  oraz  jego  wielkość.  Pamięci  o  dużych  rozmiarach  są 
realizowane  w  zasadzie  wyłącznie  jako  dynamiczne.  Tranzystory  MOS,  które 
wykorzystywane są w tego typu układach zapewniają bardzo wysokie rezystancje wejściowe 
oraz  wyjściowe,  utrzymują  ładunek  przez  względnie  długi  czas,  a  ponadto  pobierają 
wielokrotnie  mniej  mocy  od  ich  bipolarnych  odpowiedników.  Ze  względu  na  upływność 
ładunku  zgromadzonego  w  kondensatorze  Cs  w  czasie  liczonym  w  ms,  należy  zadbać  o 
cykliczne odświeżanie tych pamięci z częstotliwością co najmniej kilkuset herców.