PAMIĘCI
PAMIĘCI
Podstawowe definicje i klasyfikacja
Podstawowe definicje i klasyfikacja
Hierarchia pamięci
Hierarchia pamięci
Pamięci dynamiczne i statyczne RAM
Pamięci dynamiczne i statyczne RAM
PAMIĘCI
PAMIĘCI
Na magistrali adresowej A komputer umieszcza
adres komórki pamięci, z której chce odczytać dane.
Magistralą sterującą S przesłane zostaje do pamięci
żądanie odczytu danych.
W odpowiedzi pamięć wyszukuje pożądaną komórkę
i umieszcza na magistrali danych D jej zawartość.
Komputer odczytuje z magistrali danych zawartość
zaadresowanej komórki.
Cykl zostaje zakończony, sygnały wracają do stanu
neutralnego.
Na magistrali adresowej A komputer umieszcza
adres komórki, do której mają trafić dane.
Na magistrali danych D komputer umieszcza bity
danych,
które
należy
zapamiętać
w
zaadresowanej komórce.
Magistralą sterującą S zostaje przesłane żądanie
zapisu danych.
W odpowiedzi pamięć pobiera dane z magistrali
danych D, wyszukuje komórkę o adresie obecnym
na magistrali adresowej A i zapisuje w niej dane.
Cykl zostaje zakończony, sygnały wracają do
stanu neutralnego.
PRZYPOMNIJMY!!!
PARAMETRY PAMIĘCI
PARAMETRY PAMIĘCI
Pamięć jako układ przeznaczony do
Pamięć jako układ przeznaczony do
przechowywania informacji binarnej można
przechowywania informacji binarnej można
scharakteryzować następującymi parametrami:
scharakteryzować następującymi parametrami:
pojemność
pojemność
szybkość
szybkość
koszt
koszt
pobór mocy
pobór mocy
Pojemność pamięci
Pojemność pamięci
określa ilość informacji jaką
określa ilość informacji jaką
można w niej przechować wyrażoną w bitach,
można w niej przechować wyrażoną w bitach,
bajtach lub słowach.
bajtach lub słowach.
Pamięć dzielona jest na fragmenty (w zależności od
Pamięć dzielona jest na fragmenty (w zależności od
typu pamięci) umożliwiające adresowanie. W
typu pamięci) umożliwiające adresowanie. W
pamięci operacyjnej są to fragmenty określane
pamięci operacyjnej są to fragmenty określane
długością słowa (8, 16, 32, 64 bity). Pojemność
długością słowa (8, 16, 32, 64 bity). Pojemność
określa się podając liczbę słów i długość słowa, np.
określa się podając liczbę słów i długość słowa, np.
512Kx64 - 219 słów 64-bitowych
512Kx64 - 219 słów 64-bitowych
W pamięciach masowych fragmentami są sektory
W pamięciach masowych fragmentami są sektory
(setki lub tysiące słów).
(setki lub tysiące słów).
!
PARAMETRY PAMIĘCI
PARAMETRY PAMIĘCI
Szybkość pamięci
Szybkość pamięci
określa jak często procesor (lub inne
określa jak często procesor (lub inne
urządzenie) może z niej korzystać.
urządzenie) może z niej korzystać.
czas dostępu - czas od momentu żądania informacji z pamięci
czas dostępu - czas od momentu żądania informacji z pamięci
do momentu, w którym ta informacja ukaże się na wyjściu
do momentu, w którym ta informacja ukaże się na wyjściu
pamięci
pamięci
czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma
czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma
żądaniami dostępu do pamięci
żądaniami dostępu do pamięci
szybkość transmisji - określa ile bajtów (bitów) można przesłać
szybkość transmisji - określa ile bajtów (bitów) można przesłać
pomiędzy pamięcią a innym urządzeniem w jednostce czasu.
pomiędzy pamięcią a innym urządzeniem w jednostce czasu.
Koszt pamięci
Koszt pamięci
określa cenę jaką należy ponieść za
określa cenę jaką należy ponieść za
uzyskanie wysokich parametrów pamięci
uzyskanie wysokich parametrów pamięci
szybciej - drożej !!!
szybciej - drożej !!!
wolniej - taniej !!!
wolniej - taniej !!!
Pobór
mocy
Pobór
mocy
określa
jakie
jest
zapotrzebowanie
określa
jakie
jest
zapotrzebowanie
energetyczne na realizację funkcji pamięci zwłaszcza przy
energetyczne na realizację funkcji pamięci zwłaszcza przy
dążeniu do wzrostu jej pojemności
dążeniu do wzrostu jej pojemności
PAMIĘCI
PAMIĘCI
Rejestrowa
Rejestrowa
Kieszeniowa
Kieszeniowa
Operacyjna
Operacyjna
Masowa
Masowa
Zewnętrzna
Zewnętrzna
Z dostępem swobodnym
Z dostępem swobodnym
(bezpośrednim)
(bezpośrednim)
Z dostępem cyklicznym
Z dostępem cyklicznym
Z dostępem
Z dostępem
sekwencyjnym
sekwencyjnym
Z dostępem
Z dostępem
asocjacyjnym
asocjacyjnym
ROM
ROM
RAM
RAM
DRAM
DRAM
(dynamiczne)
(dynamiczne)
SRAM
SRAM
(statyczne)
(statyczne)
H
ie
ra
rc
h
ia
p
a
m
ię
c
i
H
ie
ra
rc
h
ia
p
a
m
ię
c
i
D
o
s
tę
p
d
o
i
n
fo
rm
a
c
ji
D
o
s
tę
p
d
o
i
n
fo
rm
a
c
ji
HIERARCHIA PAMIĘCI
HIERARCHIA PAMIĘCI
Pamięcią RAM (Random Access Memory) nazywamy pamięć
półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu
i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu
zasilania dane są tracone.
Pamięcią RAM (Random Access Memory) nazywamy pamięć
półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu
i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu
zasilania dane są tracone.
Pamięć
Pamięć
2
2
n
n
x m
x m
adres
adres
E
E
zapis/odcz
zapis/odcz
yt
yt
n
n
m
m
PAMIĘCI RAM
PAMIĘCI RAM
Pamięć może posiadać organizację bitową (a) lub bajtową (b).
Pamięć może posiadać organizację bitową (a) lub bajtową (b).
Obie pamięci mają tą samą pojemność wynoszącą 32b. Różnią
Obie pamięci mają tą samą pojemność wynoszącą 32b. Różnią
się natomiast organizacją.
się natomiast organizacją.
jest to pamięć przeznaczona do
jest to pamięć przeznaczona do
pamiętania 32 słów 1 bitowych
pamiętania 32 słów 1 bitowych
(32x1b)
(32x1b)
jest to pamięć przeznaczona do
jest to pamięć przeznaczona do
pamiętania 4 słów 8 bitowych
pamiętania 4 słów 8 bitowych
(4x1B).
(4x1B).
PAMIĘCI RAM
PAMIĘCI RAM
Łączenie układów pamięci dla zwiększenia
Łączenie układów pamięci dla zwiększenia
pojemności:
pojemności:
•
zwiększanie długości słowa
zwiększanie długości słowa
•
zwiększanie ilości słów
zwiększanie ilości słów
PAMIĘCI RAM
PAMIĘCI RAM
Pamięć 64b (16 x 4b)
Pamięć 64b (16 x 4b)
Pamięć zwiększona = 4*64b= 256b
Pamięć zwiększona = 4*64b= 256b
(16 x 16b)
(16 x 16b)
PAMIĘCI RAM
PAMIĘCI RAM
zwiększanie długości słowa (rozbudowa szyny
zwiększanie długości słowa (rozbudowa szyny
danych)
danych)
czterokrotne zwiększenie pamięci
czterokrotne zwiększenie pamięci
Pamięć 64b (16 x 4b)
Pamięć 64b (16 x 4b)
Pamięć zwiększona = 4*64b= 256b
Pamięć zwiększona = 4*64b= 256b
(64 x 4b)
(64 x 4b)
PAMIĘCI RAM
PAMIĘCI RAM
zwiększanie liczby słów (rozbudowa szyny
zwiększanie liczby słów (rozbudowa szyny
adresowej)
adresowej)
czterokrotne zwiększenie pamięci
czterokrotne zwiększenie pamięci
SRAM
SRAM
Układ bitu informacji w komórce pamięci
statycznej
PAMIĘCI RAM
PAMIĘCI RAM
DRAM
DRAM
Układ bitu informacji w komórce pamięci
dynamicznej
CECHY PAMIĘCI
CECHY PAMIĘCI
DRAM
DRAM
SRAM
SRAM
szybkość
szybkość
mała
mała
duża
duża
koszt
koszt
niski
niski
wysoki
wysoki
pojemność
pojemność
duża
duża
mała
mała
pobór mocy
pobór mocy
mały
mały
duży
duży
łatwość scalania
łatwość scalania
duża
duża
mała
mała
konieczność odświeżania
konieczność odświeżania
tak
tak
nie
nie
główne zastosowanie
główne zastosowanie
główna pamięć
główna pamięć
pamięć
pamięć
operacyjna
operacyjna
kieszeniowa
kieszeniowa
(
(
cache
cache
)
)
PAMIĘCI RAM
PAMIĘCI RAM
2
n/2
kolumn
PAMIĘĆ STATYCZNA RAM (SRAM)
PAMIĘĆ STATYCZNA RAM (SRAM)
n bitów adresowych
n bitów adresowych
jest dzielonych na bity
jest dzielonych na bity
górne i dolne
górne i dolne
2
n/2
wierszy
PAMIĘĆ STATYCZNA RAM (SRAM)
PAMIĘĆ STATYCZNA RAM (SRAM)
A
n-1
... A
0
- n linii magistrali adresowej. Przy ich pomocy
komputer przekazuje pamięci w postaci binarnej
adres pożądanej komórki. Dla n linii pamięć ma
pojemność 2
n
komórek.
D
m-1
... D
0
- m linii dwukierunkowej magistrali danych.
Liczba linii danych odpowiada rozmiarowi pojedynczej
komórki pamięci
CE (ang. Chip Enable) - linia uaktywnia układ pamięci.
OE (ang. Output Enable) - podłącza w stanie niskim
wewnętrzną magistralę danych do linii D
m
... D
0
.
Sygnał OE wykorzystuje się przy odczycie zawartości
pamięci (odczyt).
WE (ang. Write Enable) - powoduje, iż informacja z
magistrali danych zostanie umieszczona w
zaadresowanej komórce pamięci (zapis).
PAMIĘĆ DYNAMICZNA RAM
PAMIĘĆ DYNAMICZNA RAM
(DRAM)
(DRAM)
Adres komórki pamięci
dynamicznej dostarczany
jest w dwóch etapach po
tych samych liniach
magistrali adresowej -
najpierw numer wiersza, a
następnie numer kolumny.
PAMIĘĆ DYNAMICZNA RAM
PAMIĘĆ DYNAMICZNA RAM
(DRAM)
(DRAM)
A
n-1
... A
0
- n linii magistrali adresowej. Przy ich pomocy
komputer przekazuje pamięci w postaci binarnej
numer wiersza lub numer kolumny, w których znajduje
się komórka do odczytu lub do zapisu.
D
m-1
... D
0
- m linii dwukierunkowej magistrali danych.
CS (ang. Chip Select) - linia uaktywnia układ pamięci -
odblokowuje pozostałe wejścia sterujące.
WE (ang. Write Enable) - jeśli WE jest w stanie niskim,
dane są przepisywane do wybranej komórki pamięci
(zapis). W stanie wysokim WE pamięć realizuje odczyt
lub odświeżanie.
RAS (ang. Row Address Strobe) - opadające zbocze
tego sygnału informuje pamięć, iż na magistrali
adresowej znajduje się numer wiersza. Numer ten
zostaje zapamiętany w buforze połączonym z
dekoderem wierszy. Pamięć odczytuje dany wiersz i
odświeża go,
CAS (ang. Column Address Strobe) - opadające zbocze
informuje pamięć, iż na magistrali adresowej znajduje
się numer kolumny. Numer jest zapamiętywany w
buforze połączonym z dekoderem kolumn. Komórka
znajdująca się w odczytanym wierszu i kolumnie
zostaje zapisana nową zawartością przy WE = 0 lub jej
zawartość trafia na magistralę danych WE = 1.
PAMIĘĆ DYNAMICZNA RAM
PAMIĘĆ DYNAMICZNA RAM
(DRAM)
(DRAM)
Na magistrali adresowej zostaje umieszczony numer
wiersza zawierającego komórkę pamięci.
Następnie sygnał RAS powoduje zapis numeru wiersza z
magistrali adresowej w zatrzaskach połączonych z
dekoderem wierszy. Dekoder adresuje odpowiedni wiersz
komórek, których zawartość zostaje przesłana do
wzmacniaczy odświeżających. Komórki zostają
odświeżone - jeśli operacja dotyczyła tylko odświeżania,
to w tym momencie może się zakończyć.
Na magistralę adresową trafia numer kolumny
zawierającej komórkę. Sygnał CAS powoduje
zatrzaśnięcie numeru kolumny i przekazanie go do
dekodera kolumn. Dekoder adresuje odpowiednią
kolumnę wzmacniaczy odświeżających, które przekazują
zawartość odczytanej komórki na magistralę danych.
Sygnały sterujące wracają do położenia neutralnego.
Na magistrali adresowej zostaje umieszczony numer
wiersza zawierającego komórkę pamięci.
Sygnał RAS powoduje odczytanie i odświeżenie wiersza
komórek.
Na magistrali danych pojawiają się dane do zapisu w
komórce.
Sygnał WE przyjmuje stan niski - jest to informacja dla
pamięci, iż po otrzymaniu reszty adresu - czyli numeru
kolumny, dane z magistrali danych należy zapisać w
wybranej komórce.
Na magistrali adresowej zostaje umieszczony numer
kolumny
Sygnał CAS powoduje odczytanie kolumny i do wybranej
komórki trafia informacja z magistrali danych.
Sygnały sterujące wracają do położenia neutralnego.
Odczyt
Odczyt
Zapis
Zapis
ODŚWIEŻANIE
ODŚWIEŻANIE
Odświeżanie komórek pamięci dynamicznych polega na cyklicznym
Odświeżanie komórek pamięci dynamicznych polega na cyklicznym
doładowaniu pojemności pamiętających przechowujących wartość
doładowaniu pojemności pamiętających przechowujących wartość
logiczną „1”.
logiczną „1”.
Operacja odświeżania realizowana jest przez specjalistyczne układy
Operacja odświeżania realizowana jest przez specjalistyczne układy
logiczne, będące elementem płyty głównej komputera.
logiczne, będące elementem płyty głównej komputera.
Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych
Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych
RAM:
RAM:
•
sygnałem RAS (tryb wierszowy)
sygnałem RAS (tryb wierszowy)
•
sygnałem CAS przed RAS (tryb statyczny)
sygnałem CAS przed RAS (tryb statyczny)
•
odświeżanie ukryte
odświeżanie ukryte
•
autoodświeżanie
autoodświeżanie
PAMIĘĆ DYNAMICZNA RAM
PAMIĘĆ DYNAMICZNA RAM
(DRAM)
(DRAM)
Zjawisko lokalności
Zjawisko lokalności
- procesor odwołuje się najczęściej do pamięci (
- procesor odwołuje się najczęściej do pamięci (
trafienie
trafienie
)
)
w pewnym niewielkim obszarze (w okolicach danego programu) - bardzo
w pewnym niewielkim obszarze (w okolicach danego programu) - bardzo
rzadko do obszarów odległych. Stąd stosowanie szybkich pamięci
rzadko do obszarów odległych. Stąd stosowanie szybkich pamięci
kieszeniowych (cache) zawierających właśnie taki lokalny obszar pamięci.
kieszeniowych (cache) zawierających właśnie taki lokalny obszar pamięci.
0
0
1
1
q-1
q-1
1 blok
1 blok
2 blok
2 blok
k-1 blok
k-1 blok
k-2 blok
k-2 blok
...
...
0
0
1
1
m-1
m-1
2
2
m-2
m-2
q słów
q słów
log
log
2
2
k
k
pamięć operacyjna
pamięć operacyjna
pamięć kieszeniowa
pamięć kieszeniowa
zawiera tylko
zawiera tylko
m
m
spośród
spośród
k
k
bloków
bloków
(k>>m)
(k>>m)
Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache
Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache
(
(
chybienie
chybienie
) to następuje wymiana zawartości jednej komórki pamięci
) to następuje wymiana zawartości jednej komórki pamięci
kieszeniowej.
kieszeniowej.
Nr
Nr
bloku
bloku
PAMIĘĆ KIESZENIOWA (STATYCZNA)
PAMIĘĆ KIESZENIOWA (STATYCZNA)
RAM
RAM
H - współczynnik
H - współczynnik
trafienia
trafienia
Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q)
Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q)
tj. 8192*8 = 65536B = 64KB
tj. 8192*8 = 65536B = 64KB
oraz pojemność pamięci kieszeniowej m=128 linii
oraz pojemność pamięci kieszeniowej m=128 linii
to długość linii pamięci kieszeniowej wyniesie
to długość linii pamięci kieszeniowej wyniesie
s=8*q + log
s=8*q + log
2
2
k = 8*8 + log
k = 8*8 + log
2
2
8193 = 64+13=77bitów
8193 = 64+13=77bitów
q = 8
q = 8
q =
q =
64
64
q =
q =
16
16
0,3
0,3
0,6
0,6
0,9
0,9
5 kB
5 kB
10 kB
10 kB
15 kB
15 kB
20 kB
20 kB
pojemność pamięci
pojemność pamięci
kieszeniowej
kieszeniowej
PAMIĘĆ KIESZENIOWA (STATYCZNA)
PAMIĘĆ KIESZENIOWA (STATYCZNA)
RAM
RAM
Pamięcią ROM (Read Only Memory) nazywamy pamięć
półprzewodnikową o dostępie swobodnym przeznaczoną tylko do
odczytu uprzednio zapisanych danych. Oznacza to, że nie można
do niej zapisywać danych w trakcie normalnej pracy w systemie.
ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu
zasilania dane nie są tracone.
Pamięcią ROM (Read Only Memory) nazywamy pamięć
półprzewodnikową o dostępie swobodnym przeznaczoną tylko do
odczytu uprzednio zapisanych danych. Oznacza to, że nie można
do niej zapisywać danych w trakcie normalnej pracy w systemie.
ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu
zasilania dane nie są tracone.
•
MROM (
MROM (
mascable ROM
mascable ROM
) zawartość pamięci ustalana jest w
) zawartość pamięci ustalana jest w
procesie produkcji (za pomocą odpowiednich masek) - BIOS do
procesie produkcji (za pomocą odpowiednich masek) - BIOS do
obsługi klawiatury
obsługi klawiatury
•
PROM (
PROM (
programmable ROM
programmable ROM
) pamięć jednokrotnie programowalna
) pamięć jednokrotnie programowalna
przez użytkownika - obecnie nieużywana
przez użytkownika - obecnie nieużywana
•
EPROM pamięć wielokrotnie programowalna w ultrafioletowych
EPROM pamięć wielokrotnie programowalna w ultrafioletowych
programatorach - obecnie wychodzi z użycia
programatorach - obecnie wychodzi z użycia
•
EEPROM
pamięć
kasowana
i
programowana
na
drodze
EEPROM
pamięć
kasowana
i
programowana
na
drodze
elektrycznej
(podobnie
jak
RAM
ale
czas
zapisu
jest
elektrycznej
(podobnie
jak
RAM
ale
czas
zapisu
jest
nieporównywalnie długi) - flash-BIOS (uaktualniany BIOS)
nieporównywalnie długi) - flash-BIOS (uaktualniany BIOS)
PAMIĘCI ROM
PAMIĘCI ROM
DZIĘKUJĘ ZA UWAGĘ !
DZIĘKUJĘ ZA UWAGĘ !
PAMIĘCI RAM
PAMIĘCI RAM
Podstawową komórkę pamięci stanowi przerzutnik (RS)
Podstawową komórkę pamięci stanowi przerzutnik (RS)
sterowany:
sterowany:
•
linią słowa
linią słowa
•
liniami bitowymi (D i D)
liniami bitowymi (D i D)
linia słowa
linia słowa
linia bitu
linia bitu
linia bitu
linia bitu
+Ucc
+Ucc
D
D
D
D
T1
T1
T2
T2
wybór
wybór
Odczyt:
Odczyt:
•
na linię słowa podawany jest stan wysoki;
na linię słowa podawany jest stan wysoki;
•
do linii bitów dołączono wzmacniacz różnicowy, który odczytuje stan
do linii bitów dołączono wzmacniacz różnicowy, który odczytuje stan
przerzutnika („0” to potencjał na D wyższy niż D; „1” to potencjał na
przerzutnika („0” to potencjał na D wyższy niż D; „1” to potencjał na
D niższy).
D niższy).
Zapis:
Zapis:
•
na linię słowa podawany jest stan wysoki;
na linię słowa podawany jest stan wysoki;
•
jeśli zapisujemy „0” to obniżamy potencjał na D, jeśli zapisujemy
jeśli zapisujemy „0” to obniżamy potencjał na D, jeśli zapisujemy
„1”to obniżamy potencjał na linii D.
„1”to obniżamy potencjał na linii D.