Pamięci
Opracował: Andrzej
Nowak
Bibliografia:
Urządzenia techniki komputerowej, K.
Wojtuszkiewicz
Rodzaje pamięci
Rodzaje pamięci – podział ogólny
RAM
(ang. Random Access Memory), -
pamięć o dostępie swobodnym –
przeznaczona do zapisu i odczytu. RAM jest
pamięcią ulotną, co oznacza, że po
wyłączeniu zasilania informacja w niej
przechowywana jest tracona
.
ROM
(ang. Read Only Memory) – pamięć
półprzewodnikowa – pamięć o dostępie
swobodnym przeznaczona do odczytu. ROM
jest pamięcią nieulotną.
Podstawowe
definicje
Podstawowe definicje
Pamięciami półprzewodnikowymi
nazywamy cyfrowe układy scalone
przeznaczone do przechowywania większych
ilości informacji w postaci binarnej.
Podstawowe definicje
Adres – niepowtarzalna liczba (numer)
przypisana danemu miejscu (słowu) w
pamięci w celu jego identyfikacji
Słowo w pamięci – zestaw pojedynczych
komórek (pojedynczych bitów) pamięci, do
którego odwołujemy się pojedynczym
adresem
Organizacja pamięci – sposób podziału
obszaru pamięci na słowa
Podstawowe
parametry
Podstawowe parametry
Pamięć o dostępie swobodnym –
pamięć, dla której czas dostępu praktycznie
nie zależy od adresu słowa w pamięci,
czyli od miejsca, w którym jest
przechowywana informacja
Transfer danych – maksymalna liczba
danych, jaką możemy odczytywać z
pamięci lub zapisywać do pamięci w
danej jednostce czasu
Podstawowe parametry
Pojemność pamięci – maksymalna liczba
informacji, jaką możemy przechować w
danej pamięci
Czas dostępu – czas, jaki musi upłynąć od
momentu podania poprawnego adresu
słowa w pamięci do czasu ustalenia się
poprawnej wartości tego słowa na wyjściu
pamięci w przypadku operacji odczytu lub
w przypadku operacji zapisu – czas, jaki
upłynie do momentu zapisania wartości do
tego słowa z wejścia pamięci.
DB
AB
R/W# CS#
MEM
M - pojemność pamięci,
n - długość słowa przez,
m - ilość linii adresowych
M = n x 2
m
Organizacja pamięci
R/W#
CS#
dane
adres
Organizacja –
bitowa
,
32x1b
R/W#
CS#
dane
adres
Organizacja –
bajtowa
,
4x1B
Organizacja pamięci
Metody zwiększania
ilości pamięci
1.
Zwiększanie długości słowa
W celu zwiększenia długości słowa
szerszą magistralę danych budujemy z
bitów linii danych kolejnych układów
scalonych pamięci, natomiast magistralę
adresową i sygnały sterujące łączymy
równolegle.
Zwiększanie długości
słowa
Wyjście/wejście
danych
Adresy
D0
D2
D3
D1
D0
D0
D1
D2
D3
CS#
R/W#
2.
Zwiększanie liczby słów
W celu zwiększenia liczby słów pamięci
zwiększamy liczbę potrzebnych adresów, a co za
tym idzie – rozbudowujemy szynę adresową o
dodatkowe bity potrzebne do uzyskania tych
adresów.
Przy niezmienionej długości słowa szyna danych
pozostaje bez zmian.
Dodatkowe bity adresu służą, przy wykorzystaniu
dekodera, do wyboru jednego z łączonych układów
pamięci, z którego odczytamy lub do którego
zapiszemy informację. Wyboru dokonujemy przy
użyciu wejścia CS# uaktywniającego układy
scalone pamięci.
Magistrale adresowe, danych i sygnały sterujące
układów, z których budujemy nowy blok pamięci,
łączymy równolegle.
Zwiększanie ilości
słów
DB
(D0-D3)
A
d
re
s
D
e
ko
d
e
r
2
5
6
k
x
4
b
2
5
6
k
x
4
b
2
5
6
k
x
4
b
2
5
6
k
x
4
b
C
S
#
C
S
#
C
S
#
C
S
#
R
W
#
R
W
#
R
W
#
R
W
#
R/W
A18
A19
A17-A0
18
4
Pamięci
dynamiczne RAM
Pamięci dynamiczne RAM
Komórki pamięci dynamicznych
magazynują ładunki na określonej,
niewielkiej pojemności elektrycznej.
Pojemność
nienaładowana
oznacza
zero
logiczne
.
Pojemność
naładowana
oznacza zapisaną
jedynkę logiczną
.
Obsługa
asynchronicznych
pamięci DRAM
Obsługa asynchronicznych pamięci
DRAM
Adres słowa, na którym chcemy wykonać
operację, podawany jest w dwóch częściach
zwanych:
adres wiersza,
adres kolumny;
Taki sposób adresowania upraszcza konstrukcję –
wyprowadzeń szyny adresowej dekoderów
adresów.
Adres
MEM
Dan
e
WE# (
ang. Write Enable
)- zezwolenie na
zapis informacji
OE# (
ang. Output Enable
)
-
zezwolenie na
odczyt
CE# (
ang. Chip Enable
)- równoważny CS#
RAS# (
ang. Row Adress Select
) i CAS# (
ang.
Column Adress Select
) - związane z
wprowadzeniem adresu do pamięci
Wyprowadzenia pamięci
DRAM
RAS
#
CAS#
WE#
OE
#
CE#
Wejście
adresow
e
RAS#
CAS#
RZW
DW
DK
RZK
DW – dekoder wierszy
DK – dekoder kolumn
RZW – rejestr zatrzaskowy
adresu wiersza
RZK – rejestr zatrzaskowy
adresu kolumny
Sposób adresowania słowa w pamięciach
DRAM
Matryca komórek
pamiętających
- zaadresowane słowo w
pamięci
2n
n
n
n
Adres
wiersza
Adres
kolumny
We
1
We
0
S
Do wejścia
adresowego
pamięci DRAM
0
dla aktywnego sygnału
RAS
1
dla aktywnego sygnału
CAS
Układ konwersji adresu systemowego na adres dla pamięci
DRAM
Do
klasówki
Adresowanie
pamięci DRAM
Adresowanie pamięci DRAM
Poprawne zaadresowanie pamięci DRAM wymaga
wykonania po kolei następujących czynności:
•
Podanie starszej części adresu na linie adresowe
pamięci DRAM jako adresu wiersza, a następnie
wytworzenie aktywnego zbocza sygnału RAS#,
powodującego zapamiętanie tego adresu w
rejestrze zatrzaskowym adresu wiersza.
•
Odmierzenie określonego, wymaganego
opóźnienia czasowego.
•
Podanie młodszej części adresu na linie adresowe
pamięci DRAM jako adresu kolumny i wytworzenie
aktywnego zbocza sygnału CAS# powodującego
zapamiętanie tego adresu w rejestrze
zatrzaskowym adresu kolumny.
Grupa
Marlenki
Adresowanie pamięci DRAM
Następnie, zgodnie z sygnałami
sterującymi OE# lub WE#, wytwarzana jest
operacja odczytu lub zapisu na
zaadresowanym słowie.
Po operacji odczytu odmierzane jest kolejne
opóźnienie czasowe przed rozpoczęciem
następnego cyklu, potrzebne do
doładowania pojemności komórek
pamiętających odczytywane słowo (w
praktyce odświeżany jest cały wiersz).
Adres
wiersza
Adres
kolumny
Adres
wiersza
Ważne
dane
t
C
t
a
t
PD
t
D RAS-CAS
RAS#
CAS#
OE#
Wejścia
danych
Wejścia adresowe
pamięci
Magistrala
zawieszona
Rodzaj
informacji na
magistrali
Operacja odczytu dla pamięci
DRAM
t
C
– minimalny czas pomiędzy dwoma
kolejnymi cyklami
t
a
–
czas dostępu
- czas jaki upłynął od
momentu pojawienia się poprawnych danych
na magistrali danych
t
D RAS-CAS
–
czas opóźnienia
sygnału CAS#
względem sygnału RAS#
t
PD
– (ang.
precharge delay
) czas potrzebny
do doładowania komórek pamięci
odczytywanego słowa
Adres
wiersza
Adres
kolumny
Adres
wiersza
Ważne
dane
t
C
t
D RAS-CAS
RAS#
CAS#
WE#
Wejścia
danych
Wejścia adresowe
pamięci
Magistrala
zawieszona
Rodzaj
informacji na
magistrali
Operacja zapisu dla pamięci
DRAM
Tryby dostępu
do pamięci
Tryby konwencjonalny
dostępu do pamięci
(
Page Mode
)
Tryby konwencjonalny dostępu do pamięci (Page
Mode)
Najstarszy tryb dostępu do pamięci dynamicznej to
oddzielane 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
(ang. Row Adress 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
(ang. Column Adress Select)
Tryby dostępu do pamięci (Page Mode)
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.
Zapis:
Jeżeli sygnał na linii sterującej – 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.
Adres
wiersza
Adres
kolumny
Ważne
dane
RAS#
CAS#
WE#
Operacja odczytu dla pamięci Page
Mode
Adres
wiersza
Adres
kolumny
Ważne
dane
RAS#
CAS#
WE#
Operacja zapisu dla pamięci Page
Mode
Tryby konwencjonalny
dostępu do pamięci
FPM
(
Fast Page Mode
)
Tryby dostępu do pamięci FPM (Fast Page Mode)
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 równocześnie.
Tryby dostępu do pamięci FPM (Fast Page Mode)
Odczyt:
Sygnał na linii kluczącej adresu wiersza – RAS
utrzymuje się na poziomie niskim do czasu
zakończenia ostatniego cyklu pakietu.
Odczyt rozpoznawany jest dzięki utrzymywaniu
sygnału na linii –WE na poziomie wysokim.
Zapis:
Zapis nie różni się od odczytu niczym szczególnym,
prócz zmiany poziomu sygnału linii sterującej – WE.
Jego stan musi być utrzymywany na poziomie
niskim.
Adres
wiersza 1
Adres
kolumny 1
Adres
kolumny 3
Ważne
dane
RAS#
CAS#
WE#
Operacja odczytu dla pamięci
FPM
Adres
kolumny 2
Adres
wiersza 1
Adres
kolumny 1
Adres
kolumny 3
Ważne
dane
RAS#
CAS#
WE#
Operacja zapisu dla pamięci FPM
Adres
kolumny 2
Tryby konwencjonalny
dostępu do pamięci
EDO
(
Extended Data
Out
)
Tryby dostępu do pamięci EDO (Extended Data
Out)
Pamięci dynamiczne EDO są kolejnym
etapem rozwoju prowadzącym do skrócenia
czasu dostępu.
Tryby dostępu do pamięci EDO (Extended Data
Out)
Odczyt:
Charakterystyczne dla EDO jest to, że aktualny
cykl dostępu do pamięci może się rozpocząć
przed zakończeniem
cyklu poprzedniego, a
dane utrzymywane są na wyjściu przez czas
dłuższy niż w przypadku pamięci konwencjonalnej
lub FPM.
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.
Adres
wiersza 1
Adres
kolumny 1
Adres
kolumny 3
Ważne
dane
RAS#
CAS#
WE#
Operacja odczytu dla pamięci
EDO
Adres
kolumny 2
Tryby konwencjonalny
dostępu do pamięci
BEDO
(
Burst EDO
)
Tryby dostępu do pamięci BEDO (Burst EDO)
Pamięci tego typu stanowią kombinację
dwóch idei:
•
wydłużenia czasu obecności danych na
końcówkach wyjściowych (EDO)
•
strumieniowania (Pipelining).
Pamięci tego typu nie są obecnie
wykorzystywane, gdyż firma Intel nigdy
nie dokonała implementacji tego typu
pamięci do swoich układów,
nastawiając się od początku na pamięci
synchroniczne (SDRAM).
Porównanie trybów
pracy pamięci
dynamicznych
Porównanie trybów pracy pamięci
dynamicznych
0
R1
R1
R1 C1
R2
C1
C1
C2
C2
C2
C3
C3
C3
C4
C4
C4
R3
R4
R1/C
1
R1/C
1
R1/C1
R2/C
2
R2/C
2
R2/C2
R3/C
3
R3/C
3
R3/C3
R4/C
4
R4/C
4
R4/C
4
FPM
DRA
M
EDO
RAS
RAS
RAS
CAS
CAS
CAS
AD
R
AD
R
AD
R
DATA
DATA
DATA
200ns
100n
s
300n
s
400n
s
Cykl magistrali
– stan oczekiwania
Cykl magistrali – stan oczekiwania
Dostęp do pamięci musi odbywać się z
zachowaniem określonych zależności
czasowych.
Praca magistrali taktowana jest zegarem o
określonej częstotliwości, będącej zwykle
podwielokrotnością częstotliwości zegara
taktującego procesor. Wartość tej
częstotliwości zależy również od rodzaju
magistrali (ISA, PSI).
Cykl magistrali – stan oczekiwania
Uśpienie
Uśpienie
Uśpienie
Uśpienie
Ti
Ti
T2
T1
T1
T1
Ti
Ti
Ti
T2
T2
T2
T2
DI
DI
DO
VA
VA
VA
(0 WS)
Odczyt
(1 WS)
(1 WS)
Odczyt
Zapis
BCLK
A23 – A0
W / R#
READY
D15 – D0
Cykl magistrali – stan oczekiwania
BCLK
– (ang. Bus Clock)
WS
-stan oczekiwania – (ang. wait state)
Ts
(ang. send status) lub
T1
Tc
(ang. perform command) lub
T2
stan uśpienia -
T
i
(ang. idle state)
VA
– ważny adres
DI
– dane odczytywane
DO
– dane zapisywane
Oznaczenia stosowane na wykresie:
Cykl magistrali – stan oczekiwania
Dla magistrali ISA pojedynczy cykl magistrali
realizowany jest w ciągu dwóch taktów zegara
magistrali (BCLK) oznaczany przez T
s
(ang. send
status) lub T1 oraz T
c
(ang. perform command)
lub T2.
Dla większych częstotliwości tego zegara lub
wolniejszych pamięci konieczne jest opóźnienie
wykonania operacji na pamięci np.:
W przypadku operacji odczytu musimy poczekać, aż
na magistrali danych ustalą się prawidłowe
wartości bitów odczytywanego słowa. Opóźnienie
to jest realizowane przez wstawienie
dodatkowych taktów zegara magistrali zwanych
– stanami oczekiwania (ang. wait states)
Odświeżanie pamięci
DRAM
Odświeżanie pamięci DRAM
Odświeżanie komórek pamięci DRAM polega
na cyklicznym doładowywaniu pojemności
pamiętających przechowujących wartość
1.
Częstotliwość odświeżania zapewniająca
poprawną prace pamięci DRAM podawana
jest przez producenta jako parametr
katalogowy, którego należy przestrzegać.
Odświeżanie pamięci realizowane jest
przez układy logiczne odświeżania będące
elementem systemu - płyty głównej.
Grupa Marlenki do klasówki
Sposoby odświeżania
pamięci dynamicznych
RAM
Odświeżanie pamięci DRAM
•
sygnałem RAS
(ang. RAS only) –
praktycznie już nie stosowany
•
CAS przed RAS
(ang. CAS – before -
RAS) – wymaga obecności w układach
pamięci wewnętrznego licznika
odświeżania. Sterownik DRAM wytwarza
aktywny sygnał CAS, a następnie RAS. W
odpowiedzi na taką sekwencję układy
pamięci DRAM odświeżają wiersz
wskazany przez ich wewnętrzny licznik
odświeżania.
Odświeżanie pamięci DRAM
•
odświeżanie ukryte
(ang. hidden
refresh) – wymaga obecności w układach
pamięci
wewnętrznego licznika
odświeżania. Po wytworzeniu aktywnych
poziomów sygnałów RAS i CAS i odczycie
komórki sygnał RAS zmienia kolejno stan
na nieaktywny i aktywny przy stale
aktywnym sygnale CAS . Powoduje to
pozostawienie zawartości odczytywanej
komórki na wyjściach danych przy
jednoczesnym (równoległym) odświeżaniu
wiersza zaadresowanego przez
wewnętrzny licznik odświeżania pamięci.
Odświeżanie pamięci DRAM
•
samoodświeżanie
(ang. self-
refresh)
– układy logiczne odświeżania są
zawarte wewnątrz układów pamięci.
Odmiany
pamięci
dynamicznych
1.
Dostęp w trybie
stronicowania
Dostęp w trybie stronicowania -
odmiany
Dostęp do pamięci w trybie stronicowania jest
sposobem na przyspieszenie współpracy z pamięcią
DRAM. Realizuje się to poprzez wykorzystanie dwóch
zależności:
•
większość odczytów dokonywana jest spod kolejnych,
położonych koło siebie adresów. Oznacza to, że starsza
część adresu (adres wiersza) nie zmienia się, a zmienia
się jedynie adres kolumny. Wyjątkiem są słowa
położone kolejno na początku i na końcu wiersza.
•
czas t
D RAS-CAS
stanowi około 50% czasu dostępu. –
Jeżeli przy kolejnych odczytach nie będziemy zmieniać
adresu wiersza, a jedynie adres kolumny, to czas
dostępu do pamięci ulegnie skróceniu (w przybliżeniu o
czas opóźnienia sygnału CAS względem RAS)
Układy logiczne realizujące tryb
stronicowania
Rejestr
zatrzasko
wy
komparat
or
Układy
logiczne
sterowani
a
pamięcią
Ten sam wiersz
S
A19 – A10
A23 – A0
A23 – A20
A19 – A10
A9 – A0
RAS#
CAS#
Szyna adresowa
pamięci
Sterownik pamięci DRAM
Praca pamięci DRAM w trybie
stronicowania
CAS#
RAS#
DQ
Wejście
adresowe
pamięci
Adres
wiersza
Adres
kolumny
1
Adres
kolumny
3
Adres
kolumny
2
Adres
kolumny
4
Dana 2
Dana 1
Dana 3
Dana 4
Dostęp w trybie stronicowania
Początek pracy (dostępu do pamięci) jest prawie
identyczny jak dla zwykłych pamięci DRAM.
•
podawany jest adres wiersza, który jest
zatrzaskiwany w rejestrze zatrzaskowym wiersza
wewnątrz układu pamięci.
•
podawany jest adres kolumny, który jest
zatrzaskiwany w rejestrze zatrzaskowym kolumny
wewnątrz układu pamięci.
Grupa
rosyjskieg
o
1 kt
Dostęp w trybie stronicowania
Kolejny dostęp różni się od poprzedniego.
•
po dodaniu nowego adresu przez zarządcę magistrali
jego część będąca adresem wiersza jest porównywana
z zawartością rejestru adresu wiersza w układzie
sterowania pamięcią. Jeżeli jest identyczna, układ
sterowania pamięcią DRAM utrzymuje stan niski
sygnału RAS# do końca bieżącego cyklu odczytu.
Oznacza to, że kolejny dostęp dotyczy słowa
położonego w tym samym wierszu i należy wczytać
jedynie adres kolumny, bez generowania opóźnienia
sygnału CAS# względem RAS#
2
.
Dostęp w trybie seryjnym
(
burst
)
Dostęp w trybie seryjnym (burst)
Dostęp do pamięci możliwy jest w postaci cykli
zgrupowanych (seryjnych - burst) – najczęściej
stosowany przy współpracy pamięci głównej z
pamięcią cache. Pamięć ta odczytuje bądź zapisuje
informacje liniami, których długość zależy od
rozwiązania pamięci cache i przykładowo dla
systemów z procesorem Pentium wynosi 32 bajty.
Ponieważ procesory Pentium mają 64-bitową
(8 bajtów) magistralę danych, potrzeba 4 dostępów
do pamięci, aby wypełnić linię.
Operacje te dotyczą kolejnych, leżących obok siebie
słów.
Dostęp w trybie seryjnym (burst)
Adres wiersza przy każdym dostępie będzie
stały, a jedynie adres kolumny będzie się zmieniał -
o jeden więcej.
Aby pamięć mogła pracować w trybie burst
należy wewnątrz pamięci umieścić układ, który
będzie zwiększał wartość adresu kolumny o 1 po
każdym podaniu zbocza aktywnego sygnału CAS#.
Zysk czasowy wynika z braku konieczności
zapewnienia tak zwanego czasu ustalania oraz
czasu przetrzymania dla adresu kolumny.
Praca pamięci DRAM w trybie seryjnym
(burst)
CAS#
RAS#
DQ
Wejście
adresowe
pamięci
Adres
wiersza
Adres
kolumny
1
Dana 2
Dana 1
Dana 3
Dana 4
Pamięć SDRAM
Odmiany pamięci dynamicznych
Architektura PC od czasu Pentium II
wymagała zwiększenia przepustowości
magistrali pamięciowej powyżej 66 MHz.
Podstawka pod procesor „Super 7”, umożliwiała
podwyższenie przepustowości poza zakres 66
MHz. Główny problem polegał na tym, że
stosowane pamięci nie dały się dostosować do
nowych wymogów – brak możliwości zwiększania
częstotliwości taktowania.
Rozwiązano ten problem wprowadzając
nowy typ pamięci SDRAM.
SDRAM
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 w technice CMOS. Inne są natomiast
sposoby sterowania taką matrycą oraz technika
dostępu.
Wszystkie sygnały sterujące SDRAM
synchronizowane są poprzez jeden przebieg zegarowy.
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.
SDRAM
Dostęp do pamięci SDRAM realizowany jest zwykle w
formie cykli zgrupowanych (burst). Dostęp grupowy obejmuje
swoim zasięgiem 2, 4 lub 8 kolejnych lokacji albo też rozciąga
się na cały wiersz.
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 lub przebiegać według pewnego określonego
szablonu 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)
SDRAM
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.
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
wykorzystywać niezależnie od siebie. Umożliwia to
ukrywanie niektórych opóźnień czasu dostępu.
Problem odświeżania przeniesiony został
całkowicie do wnętrza pamięci 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.
SDRAM - zalety
Zaletą tej techniki jest widoczne (i mierzalne) w
określonych warunkach:
- skrócenie czasu opóźnienia przy
częstotliwościach powyżej 66 MHz – np.: dla 100
MHz – tylko 10 ns.
SDRAM
– schemat blokowy układu
TMS664414
~CAS
~RAS
~CS
~WE
DQM
DQ0 – DQ3
Memory Array
(Bank0)
R
o
w
D
e
co
d
e
r
Sense Amplifier
Column Decoder
R
o
w
A
d
d
re
ss
B
u
ff
e
r
C
o
n
tr
o
l L
o
g
ic
I/O
Buffer
CKE
CLK
Address
4
Uproszczony schemat rys. 2.48 w podręczniku
SDRAM
– schemat blokowy układu
TMS664414
Opis oznaczeń
Control Logic – kontrola logicznych sygnałów
Row Address Buffer – bufor adresowania
wierszów
Row Decoder – dekoder adresów wierszów
Memory Array (Bank) – tablica (bank)
pamięci
Sense Amplifier – różnicowy wzmacniacz
odczytu
Column Decoder – dekoder adresów kolumn
I/O Buffer – bufor wejścia - wyjścia
SDRAM
– schemat blokowy układu
TMS664414
Linie zewnętrzne
układ zamknięty jest w obudowie TSOP-II(
odszukać w Internecie
) i ma
54 końcówki, do których doprowadzone są sygnały zawarte w tabeli:
Sygnały
Znaczenie
Sygnały
Znaczenie
DQ0 – DQ3
Data Input/ Data
Output
~WE
Write Enable
DQM
Output Disable/ Write
Mask
~CS
Chip select
A0 –
A9,A11
Row/Col. Address
CLK
Clock Input
A10 (AP)
Auto Precharge
CKE
Clock Enable
BS0,BS1
Bank Select
~RAS
Row Address Select
~CAS
Column Address
Select
SDRAM
– schemat blokowy układu
TMS664414
Magistrala danych
Każdy z banków (Memory Array) 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 (DQM)
Linia DQM umożliwia wycinanie pojedynczych elementów z
pakietów Burst. W normalnym trybie pracy stan sygnału na linii DQM
utrzymywany jest na niskim poziomie logicznym.
Podniesienie jego poziomu do logicznej 1 – powoduje:
•
W trakcie trwania cyklu 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.
SDRAM
– schemat blokowy układu
TMS664414
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 dezaktywacji
(precharge) banku.
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.
SDRAM
– schemat blokowy układu
TMS664414
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ą zastosowanie w przypadku grupowania
pojedynczych chipów SDRAM w moduły pamięci.
Końcówki CLK (Clock) i ~CKE (Clock Enable).
a)
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.
SDRAM
– schemat blokowy układu
TMS664414
Końcówki CLK (Clock) i ~CKE (Clock Enable).
~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.
SDRAM
- ROZKAZY
Pamięć SDRAM wymienia dane z otoczeniem
w dużych porcjach:
im są większe, tym wyższa jest skuteczność
działania.
Pod pewnymi względami chip SDRAM należy
rozpatrywać jako pewien programowalny sterownik
obsługujące swe własne matryce pamięciowe.
Lista rozkazów tego sterownika obejmuje
pozycje umożliwiające:
- konfigurację urządzenia,
- operację zapisu i odczytu,
- manipulację bankami.
SDRAM
– przykładowe rozkazy
rozkaz
~C
S
~RA
S
~CA
S
~W
E
BS1
(A13)
BS0
(A12
)
A11
A10
A9–A0
Mode Register
Set
0
0
1
0
0
0
0
0
Register Set Data
w-0-0-13-12-11-a-b3-b2-
b1
Bank
Precharge
0
0
1
0
Numer
banku:
00: B0
01: B1
10: B2
11: B3
Bez
znacz
.
0
Bez znaczenia
Row Address
0
0
1
1
Numer
banku:
00: B0
01: B1
10: B2
11: B3
r - 11
r -
10
r9-r8-r7-r6-r5-r4-r3-r2-r1-
r0
Column
Address Entry
Read
0
1
0
1
Numer
banku:
00: B0
01: B1
10: B2
11: B3
Bez
znacz
.
0
c9-c8-c7-c6-c5-c4-c3-c2-
c1-c0
SDRAM
- ROZKAZY
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, 8
3
.
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.
SDRAM
– faza programowania
SDRAM
Registe
r Set
Data
~CLK
~CS
~WE
~RA
S
~CA
S
ADR
SDRAM
- ROZKAZY
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
wprowadzania 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
polecenie 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.
SDRAM
- ROZKAZY
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).
SDRAM
- ROZKAZY
Przykład:
Burst Length =
8
Burst Type =
Seq
Adres początkowy kolumny:
xxxx ...
X101
Adresy kolejne
xxxx ...
X110
xxxx ...
X111
xxxx ...
X000
xxxx ...
X001
xxxx ...
X010
xxxx ...
X011
xxxx ...
X100
SDRAM
- ROZKAZY
Przykład:
Burst Length =
4
Burst Type =
Seq
Adres początkowy kolumny:
xxxx ...
XX10
Adresy kolejne
xxxx ...
XX11
xxxx ...
XX00
xxxx ...
XX01
SDRAM
- ROZKAZY
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. (rys.)
Po zakończeniu fazy Burst bufory wyjściowe przechodzą
automatycznie w stan wysokiej impedancji i układ jest
odcinany od magistrali.
SDRAM
– odczyt danych z pamięci SDRAM
SDRAM
- ROZKAZY
Deaktywacja
Podanie adresu nowego wiersza (aktywacja) musi zostać
poprzedzone przez deaktywację danego banku. Bank można
deaktywować na jeden z trzech sposobów:
Deaktywacja określonego banku o numerze kodowanym na
bitach A12 i A13. Polecenie ma postać ~RAS = 0, ~WE = 0, ~CAS
= 1. Linia A10 utrzymywana jest na niskim poziomie.
Jednocześnie deaktywacja wszystkich banków. Rozkaz
deaktywacji z ustawionym bitem A10 = 1 odnosi się do wszystkich
banków, a stan linii A12 i A13 nie ma znaczenia.
Cykle zapisu i odczytu z przyrostkiem Read-P i Write-P (P-
Precharge). Różnią się od normalnych operacji ustawieniem linii
A10 = 1. Cykle takie przechodzą automatycznie w fazę deaktywacji
banku i nie wymagają żadnych dodatkowych działań. Ustawienie
A10 = 0 w momencie wydawania polecenia zapisu lub odczytu
pozostawia bank w stanie aktywnym.