Technika Cyfrowa i Mikroprocesory
Pamięci
dr in\. Krzysztof Kołek
Materiały wyłącznie dla potrzeb wykładu Układy cyfrowe oraz mikroprocesory II/III rok RA wydział EAIiE AGH.
Inne wykorzystanie bez zgody autora zabronione.
1
Plan
Podział
Hierarchia
Ogólna charakterystyka
Architektura
SRAM
DRAM
SDRAM
ROM/EPROM/EEPROM/FLASH
Pamięć notatnikowa
Pamięć wirtualna
Podsumowanie
2
1
Podział
Biologiczne
Pamięci
Półprzewodnikowe Magnetyczne Optyczne
RAM
HDD
CD
ROM
FDD
DVD
Flash
Taśma
SSD
Pamięci półprzewodnikowe szybkie, magnetyczne i optyczne pojemne. W
dalszym ciągu tylko o pamięciach półprzewodnikowych
Pamięci półprzewodnikowe u\ywane jako pamięć operacyjna (równie\ rejestry
procesora i pamięć notatnikowa (ang. cache)), magnetyczne i optyczne oraz
flash jako pamięć masowa
Zwykle \aden z typów pamięci samodzielnie nie jest wystarczający i stosuje
się jednocześnie: rejestry, cache, RAM, ROM, HDD, streamer, CD/DVD
3
Hierarchia pamięci
Rejestry wewnątrz procesora (układu programowalnego),
bardzo szybkie ale mało pojemne; zawierają dane
aktualnie przetwarzane przez procesor (~10 - ~100 bitów)
Cache pośredniczy między pamięcią RAM/ROM a rejestrami;
zawiera dane w stosunku do których sterownik cache
podejrzewa, i\ będą potrzebne w najbli\szym czasie (kilka-
kilkaset kb)
RAM/ROM zawierajÄ… aktualnie wykonywany program oraz
aktualnie przetwarzane dane (~kB - ~MB)
DRAM / SDRAM pamięć operacyjna (~MB)
Pamięć wirtualna nie jest to fizyczny nowy rodzaj pamięci;
fragment pamięci masowej widziana przez procesor jako
pamięć RAM (~MB ~GB)
Pamięci masowe (FDD, HDD, Flash, CD, DVD) programy i
dane aktualnie nie przetwarzane przez procesor (~GB - ~TB)
4
2
wzrost kosztu / bit
Wzrost szybko
Å›
ci, wi
Ä™
ksza cz
Ä™
stotliwo
ść
u
\
ycie,
Wzrost pojemno
Å›
ci
Charakterystyka
Pojemność liczba bitów (bajtów, słów)
Szerokość magistrali danych (1, 2, 4, 8, 16, 32, 64 bity)
Czas dostępu (ang. access time) czas wymagany do wykonania odczytu, mo\e
się znacznie ró\nić od czas zapisu
Czas cyklu czas między kolejnymi cyklami zapisu/odczytu
Transfer danych (pasmo) FDD 0.5Mb/s (Mb Mbit) , HDD 140Mb/s, CDx32
38.4Mb/s, DVDx4 43.2Mb/s, FLASH 160Mb/s, DRAM 1600Mb/s
Pamięci o dostępie swobodnym (RAM Random Access Memory), LIFO
(Last-In First-Out), FIFO (First-In First-Out), pamięć RAM ma jednakowy
czas dostępu do ka\dej danej, FIFO to pamięć bezadresowa
Pamięci stałe, a pamięci ulotne (ang. non-volatile / volatile)
Pamięć jedno/dwuportowe dwuportowa szczególnie istotna w przypadku
pamięci video
Asynchroniczne / synchroniczne zmiana adresu i sterowań powoduje zapis lub
odczyt / operacje wykonywane zgodnie ze zboczem zegara
5
Pamięci półprzewodnikowe
PROM / ROM Programmable Read-Only Memory / Read-Only
Memory
EPROM Erasable Programmable Read-Only Memory
EEPROM Electrically Erasable Programmable Read-Only Memory
FLASH
RAM Random Access Memory
OTP EPROM One Time Programmable EPROM, tańsze od EPROM
6
3
Architektura
L0 L0
SÅ‚owo 0 SÅ‚owo 0
A0
L1 L1
SÅ‚owo 1 SÅ‚owo 1
A1 Dekoder
L2 L2
1 z N
SÅ‚owo 2 SÅ‚owo 2
A2
. . . .
.
. . . .
.
. . . .
.
LN-1 LN-1
SÅ‚owo N-1 SÅ‚owo N-1
AK-1
M M
SÅ‚owo M-bitowe SÅ‚owo M-bitowe
N słów, N linii adresowych K linii adresowych, max. 2^K słów
7
Architektura- tablica
M-bitowa
L0
komórka
A0
L1
A1 Dekoder Tablica
.
L2
1 z N N wierszy .
A2
.
O kolumn
.
. Kwadratowa
.
.
K bitowych
organizacja skraca
.
. . . . . . .
.
LN-1 połączenia
AK-1
. . . . . . .
AK LN
Dekoder Wybór słowa M-bit
AK+P-1 LN+O-1
1 z O 1 z O
M
N=2^K, O=2^P
K linii adresowych, max. 2^K słów
8
4
Architektura- hierarchiczna
Adres wiersza
Adres kolumny
Adres bloku
M
Organizacja logiczna i fizyczna mogą być odmienne
9
RAM
Pamięci ulotne tracą zawartość po zaniku zasilania
RAM statyczne oraz dynamiczne (SRAM oraz DRAM)
RAM:
Asynchroniczne
Synchroniczne
SSRAM SDRAM
DDR Double Data Rate podwójna prędkość odczytu
QDR Quad Data Rate poczwórna prędkość odczytu
DRAM u\ywane typowo jako pamięć operacyjne; w prostych
mikroprocesorach pamięć operacyjna typu SRAM
SRAM droga, ale nie wymaga odświe\ania; małe pojemności (256kB);
szybsza od DRAM stosowana jako cache
10
5
RAM
" DRAM
" SDRAM interface synchroniczny; burst read synchronizowany
zegarem; kaskadowe dostęp: dekodowanie adresu wiersza, aktywacja
wiersza, dekodowanie adresu kolumny, dostęp do komórki na
przecięciu wiersza i kolumny
" FPM DRAM
" EDO DRAM
" PC133 SDRAM
" DDR DRAM dual clock edge
" QDR dual clock edge, dual port
" 1T-SRAM
" Direct RDRAM
11
SRAM
BL
BL
VDD
WL
T2 T4
T1
T6
T3 T5
" 6 tranzystorów / 1 bit przerzutnik bistabilny
" Zapis 0 : T1 i T6 otwarte (bo komórka wybrana), BL\=1, BL=0 =>
włączenie T5 i zatkanie T4 => włączenie T2 i zatkanie T3 co
podtrzymuje stan na bramkach np. T4 i T5
" Mniejsza pojemność, ale większa szybkość od DRAM prostsze
sekwencje sygnałów sterujących
12
6
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
" A[0..15], IO[0..15], CE,OE, WE
" BHE/BLE Byte High Enable/Byte Low Enable
13
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
14
7
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
Czas dostępu !!!
tRC = 8ns min (Read Cycle Time)
tAA = 8ns max (Address Access Time) <<<< !!!
tOHA = 3ns min (Data Hold From Address Change)
15
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
tACE = 8ns max (CE Low To Data Valied)
tDOE = 4ns max (OE Low To Data Valied)
tHZOE = 4ns max (OE High To High Z)
tHZCE = 4ns max (CE High To High Z)
16
8
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
tWC = 8ns min (Write Cycle Time)
tSD = 4ns min (Data Set-Up Time To Write End)
tHD = 0ns min (Data Hold Time To Write End)
tSA = 0ns min (Address Set-Up To Write Start)
tSCE = 7ns min (CE Low To Write End)
17
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
tAW = 6ns min (Address Set-Up To Write End)
tPWE = 6ns min (WE Pulse Width)
18
9
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
128K x 8
A[0..15]
IO[1..8]
IO[9..16]
WE\
OE\
CE\
A16
BHE\
BLE\
19
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
128K x 16
A[0..15]
IO[1..16]
WE\
OE\
A16
CE\
BHE\
BLE\
A[0..15]
IO[1..16]
WE\
OE\
CE\
BHE\
BLE\
20
10
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
256K x 16
A[0..15] A[0..15]
IO[1..16] IO[1..16]
WE\ WE\
OE\ OE\
CE\ CE\
BHE\ BHE\
BLE\ BLE\
A[0..15] A[0..15]
IO[1..16] IO[1..16]
A17 A16
WE\ WE\
OE\ OE\
CE\ CE\
O0
O1
BHE\ BHE\
BLE\ BLE\
O2
O3
21
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM
64K x 32
A[0..15]
IO[1..16]
WE\
OE\
CE\
IO[1..32]
BHE\
BLE\
A[0..15]
IO[1..16]
WE\
OE\
CE\
BHE\
BLE\
22
11
DRAM
BL
" Cs jeden dla ka\dego bitu, CBL jeden dla ka\dej kolumny
WL
Tr
" Zapis: Å‚adowanie Cs poprzez odblokowanie Tr (linia WL) i
wstawienie BL w odpowiedni stan STOPNIOWE
ROZAADOWYWANIE KONDENSATORA Cs
Cs
CBL
" Odczyt: otwarcie Tr; układy związane z linią BL (ang. sense amplifier) odczytują poziom
napięcia, a następnie doładowują kondensator Cs (ustaw BL na Vdd/2, faza redystrybucji
ładunku między Cs i CBL, faza detekcji stanu i faza doładowania Cs)
" Odświe\anie: to odczyt bez wyprowadzenia danych na zewnątrz; odblokowanie tranzystorów w
wierszu (WL) powoduje i\ układy odczytu stany wszystkich linii BL doładują wszystkie
kondensatory w związane z bitami tego wiersza; ukryte odświe\anie następuję po ka\dym
odczycie
" Czas dostępu kilkanaście kilkadziesiąt ns
" Cykl odświe\ania (podanie WSZYSTKICH adresów wierszy, w dowolnej kolejności) 8-64ms
23
Architektura - DRAM
D
RAS
OE
CS Bufor magistrali danych
WE
A . . . . . . .
W0
d.
A0
w
W1
A1
.
i
W2 .
A2 e
1024x1024
.
10
r .
.
.
.
s
.
. . . . . . .
.
z
W9
A9
a
. . . . . . .
K0 K9
Adres kolumny
CAS
24
12
DRAM sygnały we/wy
A wejście adresowe MULTIPLEKSOWANE
A
w czasie
D
10
8
D we/wy danych
RAS
RAS\ Row Address Strobe
CAS
OE
CAS\ Column Address Strobe
WE
CS OE\ Output Enable
WE\ Write Enable
CS\ Chip Select
" NarastajÄ…ce zbocze RAS\ zapisuje adres wiersza
" NarastajÄ…ce zbocze CAS\ zapisuje adres kolumny
" OE\=H oraz WE\=L D pracuje jako wejście
" OE\=L oraz WE\=H D pracuje jako wyjście
" CS\=H układ nie reaguje na sygnały sterujące, a D w stanie wysokiej
impedancji; nie zawsze występuje; układ mo\e być nieaktywny np. dla
OE\=H i WE\=H
25
DRAM cykl odczytu (HITACHI HM5116100)
26
13
DRAM cykl wczesnego zapisu (HITACHI HM5116100)
27
DRAM cykl opóznionego zapisu (HITACHI HM5116100)
28
14
DRAM cykl odświe\ania (HITACHI HM5116100)
29
DRAM fast page mode - odczyt (HITACHI HM5116100)
30
15
DRAM fast page mode - zapis (HITACHI HM5116100)
TU WIDOCZNY ZYSK
tylko adresy kolumn przyspieszają dostęp !!!
31
DRAM rozwój DRAM a rozwój procesorów
Szybkość CPU i DRAM
1000
CPU
100
10
DRAM
1
Powiększająca się ró\nica w szybkościach wymaga sztuczek !!!
32
16
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
SDRAM
" Synchronous Dynamic Random Access Memory
" Pamięć ASYNCHRONICZNA odpowiada najszybciej jak to mo\liwe na
zmiany sygnałów sterujących. Gdzie zysk dla pracy SYNCHRONICZNEJ?
" W pamięci synchronicznej pojedynczy sygnał zegarowy taktujący wszystkie
operacje na pamięci; sygnały sterujące w takt zegara sterują wewnętrznym
automatem FSM, realizujÄ…cym przychodzÄ…ce z zewnÄ…trz instrukcje
" Synchroniczne instrukcje mogą być przetwarzane potokowo (ang. pipeline)
nowa instrukcja mo\e się pojawić gdy poprzednia się jeszcze nie skończyła!!!
tutaj widoczny zysk SDRAM w stosunku do DRAM
" Wynik instrukcji widoczny jest z pewnym opóznieniem (ang. latency). W
przypadku zapisu jest on wykonywany po określonej liczbie cykli zegara
względem podania danych do zapisu i wydania komendy zapisu. W
przypadku odczytu wynik pojawia się określona liczbę cykli zegara po
wydaniu rozkazu odczytu
33
SDRAM
" Wewnętrzna budowa w znacznej części jak DRAM
" Dostęp do pamięci mo\e odbywać się jak do pamięci DRAM, jednak zyski
widoczne podczas transferu pakietowego (ang. burst). Podczas takiego
transferu przesyła się kilka kolejnych lokacji (2, 4 lub 8), ale podaje adres
tylko pierwszej lokacji resztÄ™ generuje automatycznie licznik wbudowany w
pamięć. W trybie burst dla magistrali 333MHz dane pojawiają się co 3ns!!!
" Pamięć zwykle składa się z kilku banków ka\dy transfer w trybie burst z
innym bankiem taki przeplot (ang. interleave) podnosi transfer
" Pamięć musi przed pracą zostać zaprogramowana posiada specjalny rejestr
konfiguracyjny zawierajÄ…cy np. informacje o parametrach czasowych
" Sterownik pamięci mo\e przejąć całkowicie kontrolę nad odświe\aniem
" Pamięć realizuje sekwencje rozkazów jest to więc właściwie
KOPROCESOR (specjalizowany sterownik wykonujÄ…cy zadania dla
procesora głównego)
" Pamięć raczej przystosowana do bezpośredniej współpracy ze sterownikiem
cache, a nie do bezpośredniej współpracy z procesorem
34
17
SDRAM (NEC mPD45128441)
35
SDRAM (NEC mPD45128441)
CLK zegar`taktujÄ…cy; aktywne zbocze narastajÄ…ce
CKE\ bramkowanie zegara; w stanie niskim wprowadza układ w tryb suspend
(oszczędzanie do 99% energii)
RAS\, CAS\, WE\ do dekodowania komend
CS\ - odcina układ od magistral, ale nie przerywa wykonywania komend
DQM sterowanie wycinaniem elementów pakietu w trybie burst. Ustawienie w
stan jedynki logicznej pomija dane do zapisu lub nie wystawia danych
odczytywanych
A magistrala adresowa, multipleksowana; szerokość zale\na od pojemności;
częścią sygnały BAx pełniące funkcje selektorów banków
DQ magistrala danych
36
18
SDRAM rozkazy (NEC mPD45128441)
37
SDRAM przykład operacji (NEC mPD45128441)
38
19
DDR SDRAM
" W ka\dym okresie zegara transfer dwóch porcji danych (Double Data Rate)
oba zbocza pracujÄ… dwukrotny wzrost transferu
" Podwójny sygnał zegarowy: CLK oraz CLK\
" Dodatkowy dwukierunkowy sygnał DQS; w fazie odczytu sterowany przez
pamięć, w fazie zapisu przez kontroler pamięci; określa poło\enie wa\nych
danych na magistrali danych względem zbocza lub środka DQS
" DDR pracują do częstotliwości zegara 200MHz (dane co 2,5ns)
" DDR2 pracują do częstotliwości zegara 400MHz (dane co 1,25ns)
" DDR3 pracują do częstotliwości zegara 500MHz (dane co 1ns)
39
PROM / ROM
Pamięć wyłącznie do odczytu programowana jednorazowo (poprzez
utworzenie lub przepalenie wewnętrznych połączeń) przez
u\ytkownika lub programowana w procesie produkcyjnym
Zwykle przechowuje programy startowe (BIOS (ang. Basic Input-
Output System) aktualnie jest to raczej flash; zawiera procedury
startowe oraz procedury dostępu do urządzeń we/wy) lub niezmienne
nastawy; dostęp do danych w ROM wolniejszy od dostępu do RAM
często system procesorowy kopiuje dane z ROM do pomocniczej
pamięci RAM i następnie korzysta tylko z RAM
40
20
EPROM
EEPROM kasowany światłem ultrafioletowym, Układ scalony zawiera
okienko kwarcowe do kasowania
Czas kasowania rzędu minut; rośnie wraz z kolejnymi skasowaniami
Liczba skasowań ograniczona rzędu kilkudziesięciu
Czas zapisu rzędu milisekund/B
Programowanie w dedykowanych programatorach
41
EPROM NMC27C64 (8k x 8)
42
21
EPROM NMC27C64 (8k x 8)
Programowanie
Odczyt
43
EEPROM
RAM Random Access Memory
PROM / ROM Programmable Read-Only Memory
EPROM Erasable Programmable Read-Only Memory
EEPROM Electrically Erasable Programmable Read-Only Memory
44
22
FLASH
Floating Gate Transistor a oprócz tej bramki bramka zwykła
Mo\liwość kasowania i zapisu wielu komórek jednocześnie
Odczyt w czasie jak DRAM (~ns)
Zapis skomplikowany; czas jak HDD (~ms)
Maksymalna liczba cykli kasowania/zapisu 100 000 1 000 000
ID
UGS
45
Cache (pam. notatnikowa)
Szybka, o niewielkiej pojemności, pamięć do przechowywania
najczęściej u\ywanych danych
Procesor zwykle dłu\szy okres czasu operuje w jednym obszarze
pamięci 90% odwołań do pamięci w zakresie 16kB
Cache ZAWSZE ZAWIERA KOPI danych. Zawiera ostatnio
u\ywane (najczęściej u\ywane) dane oraz kod programu
Podczas odczytu przez procesor:
1. Dane są dostępne w cache wówczas są odczytywane z tej szybkiej
pamięci
2. Danych nie ma w cache odczytywana jest wymagana dana, i jest ona
wraz kilkoma sÄ…siednimi bajtami (zwykle 16B) umieszczana w cache
(uprzednio zwykle z cache coś trzeba wyrzucić)
Podczas zapisu dana zapisywana jest do pamięci głównej, oraz je\eli
kopia danej jest w cache to tam te\ wykonywany jest zapis
Co w przypadku transferu DMA?
46
23
Cache
Pojemność
Szybkość
Odległość od procesora
Cena / bajt
CPU L1 L2 L3 Main Memory
µP
L1 zintegrowane z procesorem, pracuje z zegarem procesora kilka kilkadziesiÄ…t kB,
czasami i L2 zintegrowane z procesorem setki kB pojedyncze MB
Core i7 ma wewnątrz równie\ L3 8MB
Czas dostępu do L1 lepszy o rząd wielkości od czasu dostępu do pamięci głównej
47
Cache i486
Blok
Katalog Dane
B2 B1 B0 V 21 bitowy adres zestawu 0 Zestaw 0
B2 B1 B0 V 21 bitowy adres zestawu n Zestaw n
B2 B1 B0 V 21 bitowy adres zestawu 127 Zestaw 127
A31 .... A11 A10 .... A4 A3 .... A0
48
24
Cache i486
Pojemność 4 bloki po 2kB (2kB 128 zestawów po 16B)
Z zestawem danych związany 21-bitowy adres zestawu w pamięci głównej oraz
flaga wa\ności danych (V)
Podczas dostępu bity A10-A4 lokalizują zestaw; jednocześnie porównywane są
bity A31-A11 w odpowiednich zestawach wszystkich bloków to wykrywa
czy dane są w pamięci cache; dane są obecne je\eli jedno z porównań jest
prawdziwe oraz flaga V jest ustawiona to tzw. trafienie
Bity B2-B0 słu\ą do oznaczenia numeru bloku z najdawniej u\ywanymi danymi
dla ka\dego zestawu; je\eli potrzeba zwolnić miejsce usuwany jest zestaw
najdawniej u\ywany
W przypadku trafienia dane z całego zestawu (128 bitów) transferowane są do
procesora; w przypadku braku trafienia inicjowana jest 16-bajtowa
transmisja typu burst
49
Pamięć wirtualna
Mo\liwość u\ycia pamięci masowej jako rozszerzenia pamięci operacyjnej w
sposób niewidoczny dla aplikacji. Aplikacja mo\e widzieć ciągły obszar
pamięci operacyjnej większy od rozmiaru fizycznej pamięci (lub od
rozmiaru aktualnie wolnej pamięci)
Realizowana dzięki współdziałaniu mechanizmów procesora i systemu
operacyjnego. W procesorach Intela realizowane na poziomie segmentu lub
strony
Pojemność
Szybkość
Odległość od procesora
Cena / bajt
CPU Cache Main Memory HDD
50
25
Podsumowanie
System determinuje typ u\ywanej pamięci
CPU
Cache
SRAM
DRAM / SDRAM
HDD
Tape
Zasoby sieciowe
Czas przechowania danych: FLASH 5 lat, HDD 10 lat, CD/DVD 15 lat. I tak
najlepszy papier (gliniane sumeryjskie tabliczki ?)
Wzrost szybkości procesorów wymaga sztuczek w konstrukcji pamięci
Nieunikniony wzrost pojemności w przyszłości
51
Literatura
Turczyński M., Goczyński R.: Koprocesory 80286, 80386 i i486, KOW Help ,
Warszawa, 1992.
Metzger P.: Anatomia PC, Helion, Gliwice, 2004.
Sacha K.: Pamięci półprzewodnikowe RAM, WNT, Warszawa, 1991.
Prince B.: Nowoczesne pamięci półprzewodnikowe, WNT, 1999.
Tietze ., Schenk C.: Układy półprzewodnikowe, WNT, 2000.
Marks P.: Pamięci masowe w systemach mikroprocesorowych: Poradnik konstruktora,
Wydawnictwo BTC, 2006.
52
26
Szybko
ść
Pojemno
ść
Wyszukiwarka
Podobne podstrony:
skrypt hipnotyczny lepsza pamiec8 37 Skrypty w Visual Studio (2)MATLAB cw Skryptysyst oper skrypty 2Skrypt Latexskrypt rozdz 2 4Sprawdź swoją pamięć A4Biochemia zwierząt skrypt URT2 Skrypt do lab OU Rozdział 6 Wiercenie 3Skrypt 1SKRYPT ELEKTROTECHNIKA ZADANIA PRDZMIENNY3 FAZOWY 14skrypt część ogólna J Woźniakuczenie sie i pamiecwięcej podobnych podstron