ARCHITEKTURA KOMPUTERÓW

Download Report

Transcript ARCHITEKTURA KOMPUTERÓW

Architektura systemów komputerowych
Wykład 8
Pamięć komputerowa
dr inż. Wojciech Bieniecki
Instytut Nauk Ekonomicznych
i Informatyki
http://wbieniec.kis.p.lodz.pl/pwsz
Klasyfikacja pamięci
PAMIĘĆ
PÓŁPRZEWODNIKOWA
RAM
ROM
SRAM
MASOWA
HDD
PROM
FDD
EPROM
DRAM
CD-ROM
EEPROM
DVD-ROM
FLASH
MO
FLASH
2
Układy pamięci
Układy programowalne to układy scalone o programowanej przez
użytkownika wewnętrznej sieci połączeń.
Raz zaprogramowane stają się układami czysto kombinacyjnymi i jako takie
są bardzo użyteczne.
ROM (read-only memory), jest to pamięć stała.
Dla każdego adresu doprowadzonego do
wejścia, wyprowadza na wyjście pewien
zestaw bitów.
Pamięci ROM oraz układy programowalne są
elementami o nieulotnej zawartości (nonvolatile), co oznacza, że zawarta w nich
informacja nie zostaje stracona po wyłączeniu
napięć zasilających.
3
Odmiany ROM
Odmiany ROM różnią się sposobem programowania.
Pamięci programowane maską (mask programmable ROMs). Bitową strukturę ich wnętrza
ustala się w czasie produkcji
Programowalne pamięci stałe PROM (ang. Programmable ROM) są programowane przez
użytkownika. Polega to na przepaleniu tzw bezpieczników po odpowiednim ich
zaadresowaniu i doprowadzeniu właściwychs ygałów sterujących. Pamięci są dość szybkie
(25-50ns) zużywające dużo mocy (0.5 – 1W) o małych i średnich pojemnościach (od 32x8
do 8K x 8)
Reprogramowalne pamięci stałe EPROM (erasable programmable
ROM). Bity informacji są zapamiętane jako ładunki elektryczne na
pływających bramch tranzystorów MOS. Mogą być usuwane z
bramek poprzez naświetlanie mocnymi promieniami UV, przez
kilkadziesiąt minut. Obudowy tych pamięci posiadają kwarcowe
okienka przepuszczające światło. Pamięci te produkuje się techniką
NMOS lub CMOS. Są niezbyt szybkie (200ns), zużywają niewiele
energii zwłaszcza w stanie spoczynku i mają duże pojemności.
Współczesne pamięci EPROM są równie szybkie jak pamięci
bipolarne.
4
Odmiany ROM
Tańsza odmiana EPROM – OTP-EPROM (one time programmable
ROM) – nie zawiera okna do kasowania, może być programowana
jednokrotnie.
EEPROM – elektrycznie kasowalne pamięci PROM (electrically
erasable PROMs). Są programowane i kasowane elektrycznie
napięciem o wartości 5V bez konieczności wyjmowania z układu
aplikacyjnego.
Pamięci ROM są szeroko stosowane w sprzęcie komputerowym i
mikroprocesorowym, służą do przechowywania docelowych
programów i tablic z danymi.
Pamięci ROM o małych pojemnościach mogą zastępować układy
bramek logicznych i skomplikowanej sieci połączeń.
5
Układy programowalne
PAL – programmable array logic
PLA – programmable logic arrays
CPLD – Complex Programmable Logical Device
FPGA – Field Programmable Gate Array
CSoC – Configurable on a Chip
Są to układy logiczne o dużej liczbie bramek o programowanych połączeniach
pomiędzy nimi
Po zaprogramowaniu połączeń otrzymuje się układ realizujący założone funkcje
logiczne.
Wykonane są techniką bipolarną lub CMOS. Dla układów bipolarnych stosuje się
programowanie jednokrotne polegające na przepalaniu połączeń.
Programowanie CMOS polega na programowaniu pływającej bramki
tranzystorów MOS. Połączenia mogą być kasowane poprzez UV lub elektrycznie.
6
Układy programowalne
Ze względu na ściśle zdefiniowaną strukturę danego układu nie jest możliwe
zaprogramowanie dowolnej sieci połączeń.
Każde 3 stanowe wyjście układu PAL lub PLA jest wyjściem bramki OR
Wszystkie bramki AND i OR są dla
uproszczenia rysowane z pojedynczą
linią wejściową. W rzeczywistości są to
bramki wielowejściowe i mają tyle
wejść ile zaznaczono przecięć.
7
Układy PAL
8
Układy PLA
9
PAL - PLA
PAL i PLA są tylko układami kombinacyjnymi – nie ma w nich elementów
pamięciowych.
Oba typy układów produkowane są również w odmianach zawierających rejestry
(tzw. Sekwencyjne układy logiczne)
Do programowania układów PAL, PLA FPGA potrzebny jest programator oraz język
VHDL.
Programator służy do przepalania bezpieczników oraz weryfikacji poprawności
działania układu.
Programator jest połączony złączem
szeregowym z komputerem PC, a przy
pomocy specjalnego programu określa się
położenie bezpieczników
Przykład – bramka XOR
10
Pamięci RAM
SRAM – static Random access memory- szybkie pamięci o niewielkiej pojemności,
których elementami są przerzutniki. Zastosowanie w pamięciach typu Cache.
11
Pamięci RAM
DRAM – dynamic RAM – zbudowane z elementów, które nie są
przerzutnikami a specjalnymi układami elektronicznymi
zawierającymi mniejszą liczbę elementów (np. kondensatory). Czas
pamiętania jest rzędu kilku milisekund – konieczność odświeżania
zawartości
12
Typy pamięci RAM
FPM – fast page mode – tradycyjny typ pamięci dla PC zanim
wytworzono EDO. Były montowane a modułach SIMM o
pojemnościach 2 – 32 MB. Występowały w wersjach 70ns i 60ns
EDO – extended data out – nowsza wersja
FPM, przyspieszony odczyt danych.
Umożliwia to przyspieszenie działania o
około 5%. Występowały w wersjach 60ns i
50ns.
13
Typy pamięci RAM
EEC RAM – pamięci używane w serwerach, które miały
możliwość korekcji błędów
SDRAM – synchroniczny DRAM. Moduł pamięci synchronizuje
dostęp z zegarem procesora, co poprawia transfer. Dzięki
temu jedna porcja danych może być przesłana do CPU
podczas gdy następna jest w przygotowaniu
SDRAM występuje w modułach 64-bitowych
(długie DIMMy). Czas dostępu to około 6-12ns.
Przy prędkości 66MHz były szybsze 5% od EDO.
Występowały również dla prędkości 100 i 133MHz.
RDRAM (RIMM) - osiągał
przepustowość dochodzącą
do 1066 MB/s.
14
Typy pamięci RAM
DDR RAM – podwojona wersja DRAM (ang. Double Data Rate Synchronous
Dynamic Random Access Memory). Moduły 184 stykowe
W pamięci typu DDR SDRAM dane przesyłane są w czasie trwania zarówno
rosnącego jak i opadającego zbocza zegara, przez co uzyskana została dwa razy
większa przepustowość niż w przypadku konwencjonalnej SDRAM typu PC-100 i
PC-133.
Szerokość magistrali pamięci wynosi 64 bity.
Przepustowość obliczana jest metodą:
DDR-200 (PC-1600) – (64 bity * 2 * 100 MHz)/8 = 1,6 GiB/s
DDR-266 (PC-2100) – (64 bity * 2 * 133 MHz)/8 = 2,1 GiB/s
DDR-333 (PC-2700) – (64 bity * 2 * 166 MHz)/8 = 2,7 GiB/s
DDR-400 (PC-3200) – (64 bity * 2 * 200 MHz)/8 = 3,2 GiB/s
15
Typy pamięci RAM
Pamięć DDR2 charakteryzuje się wyższą
efektywnością oraz niższym poborem prądu.
Podobnie jak DDR, pamięć DDR2 wykorzystuje
do przesyłania danych wznoszące i opadające
zbocze sygnału zegarowego
Moduły zasilane są napięciem 1,8 V, zamiast
2,5 V.
Układy terminujące zostały przeniesione z
płyty głównej do wnętrza pamięci (ang.
ODT, On Die Termination). Zapobiega to
powstaniu błędów wskutek transmisji
odbitych sygnałów.
DDR2 przesyła 4 bity w ciągu jednego taktu zegara (DDR tylko 2).
Podwojona prędkość układu wejścia/wyjścia (I/O) pozwala na obniżenie prędkości
całego modułu bez zmniejszania jego przepustowości.
Liczba pinów została zwiększona ze 184 do 240.
Wycięcia w płytce pamięci umieszczone są w różnych miejscach, w celu
16
zapobiegnięcia podłączenia niewłaściwych modułów.
Typy pamięci RAM
Nazwa
chipa
Zegar
MHz
Cykl
zegara
ns
Takto
wanie
Szyny
MHz
Transfer
danych
mln/s
Nazwa
modułu
Transfer
szczytowy
MB/s
DDR2400
100
10
400
400
PC2-3200
3200
DDR2533
133
7.5
533
533
PC2-4200
PC2-4300
4266
DDR2667
166
6
667
667
PC2-5300
PC2-5400
5333
DDR2800
200
5
800
800
PC2-6400
6400
1066
PC2-8500
PC286001
8533
DDR21066
266
3.75
1066
17
Typy pamięci RAM
Pamięć DDR3 wykonana w technologii 90 nm,
napięcie 1,5 V.
Zmniejszony pobór mocy o około 40% w
stosunku do pamięci DDR2 oraz większą
przepustowością koszt produkcji niższy o 63%.
Pamięci DDR3 nie są kompatybilne wstecz.
Posiadają przesunięte wcięcie w prawą stronę
w stosunku do DDR2 (w DDR2 wcięcie
znajduje się prawie na środku modułu).
DDR3 została wprowadzona w 2007 roku dla
płyt Intel
Moduły DDR3
PC3-6400 (DDR3-800) przep.6,4 GB/s,
PC3-8500 (DDR3-1066) przep. 8,5 GB/s,
PC3-10600 (DDR3-1333) przep. 10,6 GB/s,
PC3-12800 (DDR3-1600) przep.12,7 GB/s,
PC3-15000 (DDR3-1866) przep. 15 GB/s,
PC3-16000 (DDR3-2000) przep. 16 GB/s
PC3-17000 (DDR3-2133) przep. 17 GB/s
18
PC3-19200 (DDR3-2400) przep. 19,2 GB/s
Sposoby dostępu do pamięci
Sekwencyjny
Bezpośredni
Swobodny
Skojarzeniowy
19
Organizacja pamięci
n słów 8-bitowych
WE
PAMIĘĆ
WY
O/Z
adres
Pamięć jest podzielona na komórki, w których
przechowywane są pojedyncze słowa (bajty).
Każda komórka ma swój adres, którego
podanie umożliwia dostęp – wykonanie
rozkazu odczytu lub zapisu
20
Pamięć o dostępie sekwencyjnym
Jest to pamięć, w której dane identyfikuje się według kolejności ich
zapisywania na nośniku, a kolejność odczytywania danych jest
zgodna z kolejnością ich zapisu.
Czas dostępu do informacji zależy od aktualnego położenia głowicy
w stosunku do miejsca zapisu informacji.
Taką organizację mają pamięci taśmowe (np. DDS, LTO) i są
używane do tworzenia backupów zawartości dysków.
21
Pamięć o dostępie bezpośrednim
Jest to kombinacja pamięci o dostępie swobodnym i pamięci o
dostępie sekwencyjnym.
Nośnik pamięci jest podzielony na bloki o pojemności od kilkuset
do kilku tysięcy bajtów.
Bloki są adresowane zgodnie z zasadą dostępu swobodnego, a
dostęp do danych w ramach bloku jest sekwencyjny.
Czas dostępu jest zależny od miejsca zapisania danych, ale jest
znacznie krótszy niż w pamięciach o dostępie sekwencyjnym.
Taką organizacje mają pamięci dyskowe.
22
Organizacja pamięci o dostępie
bezpośrednim.
23
Pamięć o dostępie swobodnym
Jest to pamięć, w której czas dostępu nie zależy od miejsca zapisania
danej.
Każda komórka pamięci ma określony numer jednoznacznie
identyfikujący jej położenie - adres komórki
Pamięć operacyjna jest zawsze pamięcią o dostępie swobodnym.
Przykłady pamięci o dostępie swobodnym to RAM i ROM.
24
Organizacja pamięci o dostępie
swobodnym.
25
Pamięć o dostępie swobodnym
Specjalny układ zwany dekoderem
adresu przekształca wpływające adresy
tak aby umożliwić odczyt z matrycy.
Na żądaną linię słowa podajemy
napięcie, po czym pobieramy lub
zapisujemy wartości na linii bitów.
Najmniejszą jednostką, którą możemy
odczytać jest 1 bajt
26
Pamięć o dostępie skojarzeniowym
Inaczej – pamięć asocjacyjna, pamięć adresowana zawartością.
Dostęp do danych uzyskuje się poprzez podanie zawartości
szukanej komórki pamięci, całej lub wybranych jej bitów.
Pamięci takie są bardzo szybkie, ale kosztowne.
Używa się ich do organizacji pamięci podręcznej Cache
27
Organizacja pamięci skojarzeniowej
28
Pamięć o dostępie cyklicznym
ZEGAR
komparator
adres
-------------------------
L
I
C
Z
N
I
K
REJESTRY
PRZESUWAJĄCE
B
U
F
O
R
Sprzężenie zwrotne
R/W
Komparator porównuje adres podany z bieżącym, tzn generowanym przez pamięć i
wskazującym miejsce w pamięci, które może być w danej chwili zapisane lub
odczytane.
29
W momencie uzyskania zgodności następuje odczyt lub zapis.
Współpraca pamięci z CPU
30
Współpraca pamięci z CPU
31
Typy danych w pamięci
32
Pamięć w procesorach 8-bitowych
33
Pamięć w procesorach 16-bitowych
34
Pamięć w procesorach 32-bitowych
35
Synchronizacja pracy pamięci
Operacje na pamięci są synchronizowane przez przebieg czasowy
generowany przez zegar systemowy.
36
Cykl odczytu pamięci
CPU przesyła adres
komórek pamięci na szyny
adresowe podczas tego
odcinka czasowego
CPU odczytuje dane z
szyny danych
wystawione z
odpowiednich
komórek pamięci
podczas tego odcinka
czasowego
System pamięci musi zdekodować
adres szyny adresowej i podłączyć
dane do szyny danych podczas
tego odcina czasowego
37
Cykl zapisu pamięci
CPU wstawia adres oraz
dane na magistralę (szyny
danych + szyny adresowe)
podczas tego odcinka
czasowego
Czasami przed końcem cyklu
zegara system musi zdjąć i
przechować wyspecyfikowane
wartości danych
38
Działanie pamięci podręcznej
Procesor musi dostarczać dane z bardzo dużą prędkością,
nieosiągalną przez zwykłą pamięć RAM. Cache to tymczasowy bufor.
Szybkość przesyłu danych zależy od ich ilości. Począwszy od
procesora 80486 wprowadzono dwa poziomy pamięci podręcznej
39
Działanie pamięci podręcznej
użycie bufora jest z założenia przezroczyste dla programu (realizacja
całkowicie hardwareowa)
sposób wykonania rozkazu nie może zależeć od obecności bufora
Zastosowanie pamięci buforowej nie otwiera osobnej przestrzeni
adresowej – nie ma potrzeby tworzenia specjalnych rozkazów
dostępu do bufora
Zastosowanie bufora jest widoczne jedynie w skróceniu (lub nie)
czasu wykonania
programu
40
Działanie pamięci podręcznej
linia – jednostka wymiany danych między buforem a pamięcią główną
bloki są wyrównywane w sposób naturalny – adres pierwszego słowa jest
podzielny przez długość bloku
41
Działanie pamięci podręcznej
chybienie
42
Pamięć podręczna inkluzywna
Każdy obiekt z L1 ma swoja kopię w L2
Przepływ danych pamięć główna ->L2 -> L1 -> procesor
Pojemność L2 jest znacząco większa od L1
Rozwiązanie stosowane do r. 2000
43
Pamięć podręczna ekskluzywna
L2 zawiera obiekty usuwane z L1
Pojemność równa jest sumie L1 i L2
L2 nie musi być większy niż L1
Stopień asocjacyjności L2 wyższy niż L1
Stosowane od r 2000:
AMD K7,K8, Intel Pentium 4, Core
44
Ilościowa ocena skuteczności Cache
Współczynnik trafień (hit rate) h określa jaka część odwołań została
obsłużona przez cache.
Współczynnik chybień (miss rate) m=1-h
tmp – średnia strata czasu w razie chybienia (miss penalty)
Średni czas dostępu w systemie z pamięcią cache (jednopoziomową)
wynosi
tav = h∙tc + (1-h)∙tm
Gdzie
tc - czas dostępu pamięci cache
tm - czas dostępu pamięci głównej
45
Ilościowa ocena skuteczności Cache
Współczynnik trafień zależy od
Pojemności cache
Organizacji i algorytmów
wymiany
Wykonywanego programu
W zakresie do 0,9
współczynnik trafień
zależy głównie od wielkości
pamięci cache
Powyżej na współczynnik
trafień wpływ ma
organizacja pamięci i
46
algorytmy wymiany