Wyklad13 pamieci


PODSTAWY INFORMATYKI
dr inż. Krzysztof Małecki
Magistrala
Procesor Pamięć Układy I/O
PAMIĆ
... ... ...
300
ADRES 125 126 127 128 129 130 289 290 291 292 293 294 295 296 297 298 299
Pamięci półprzewodnikowe
Cyfrowe układy scalone przeznaczone do
przechowywania dużej ilości informacji
w postaci binarnej.
1
10011101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10000001
Podstawowe parametry
Pojemność
Maksymalna ilość informacji jaką możemy przechować w danej pamięci
podawana w bitach(b) lub bajtach(B).
najbardziej najmniej
znaczący bit znaczący bit
8 bitów = 1 bajt
210 bajtów = 1 kB
1024 bajty = 1 kB
220 bajtów = 1 MB
1 048 576 bajty = 1 MB
230 bajtów = 1 GB
1 073 741 824 bajty = 1 GB
Czas dostępu
Czas jaki musi upłynąć od momentu podania adresu słowa w
pamięci do czasu ustalenia się poprawnej wartości tego słowa na
wyjściu pamięci (odczyt), lub czas jaki upłynie do momentu
zapisania wartości pochodzącej z wejścia.
Rodzaj dostępu
Sekwencyjne Dostęp swobodny
Czas dostępu nie zależy od
Pamięci taśmowe
adresu słowa w pamięci, czyli
głowica
od miejsca, w którym jest
przechowywana informacja.
2
RAM (Random Access Memory)
Pamięć
operacyjna
program dane
" Pamięć
półprzewodnikowa
o dostępie swobodnym przeznaczona do zapisu i odczytu.
" Pamięć ulotna (brak zasilania powoduje utratę
przechowywanych informacji).
" W pamięci RAM przechowywane są aktualnie
wykonywane programy lub dane początkowe dla tych
programów oraz wyniki ich pracy.
" RAM jest stosowany między innymi jako pamięć
operacyjna komputera (montowany do gniazd na płycie
głównej), jako pamięć niektórych komponentów
komputera (np. kart graficznych, dzwiękowych, itp.) oraz w
wielu innych zastosowaniach - np. w programatorze pralki
automatycznej.
ROM (Read Only Memory)
" Pamięć półprzewodnikowa o dostępie
swobodnym przeznaczona tylko do odczytu.
" Pamięć nieulotna. Zawiera stałe dane potrzebne
w pracy urządzenia - np. procedury startowe
komputera (inicjujące pracę komputera).
" W normalnym cyklu pracy urządzenia pamięć ta
może być tylko odczytywana, zapis do pamięci
dokonywany jest w zależności od rodzaju
pamięci.
3
ROM (Read Only Memory)
MROM (Mascable ROM)
" Zawartość ustalona w procesie produkcji przez nanoszenie
odpowiednich masek. Najtańszy rodzaj ROM (BIOS
klawiatury).
PROM (Programmable ROM)
" Pamięć jednokrotnie programowana przez użytkownika.
Nieodwracalna zmiana, zawartość ustalona w procesie
programowania (nie jest już używana).
EPROM (Elecrically Programmable ROM)
" Pamięć wielokrotnie programowalna. Kasowanie
promieniami UV. Programowanie w specjalnych
programatorach.
ROM (Read Only Memory)
EEPROM (Erasable Electrically Programmable ROM)
" Pamięć wielokrotnie programowalna. Kasowanie i
programowanie na drodze czysto elektrycznej. Zapis do
takiej pamięci (programowanie) nieporównywalnie dłuższy
niż do RAM. Zastosowana w oprogramowaniu BIOS-u,
które może być uaktualniane (Flash-BIOS).
Flash EEPROM
" pozwala na zapisywanie lub kasowanie wielu komórek
pamięci podczas jednej operacji programowania.
NVRAM (Non Volatile RAM)
" Krzyżówka EEPROM z pamięciami statycznymi (parametry
konfiguracyjne urządzeń).
4
Flash EEPROM
" Produkowana w dwóch wersjach: NOR i NAND.
" 1988r.  pierwsze opracowanie pamięci NOR w
firmie Intel.
 długie czasy zapisu i kasowania.
 10 000 do 100 000 cykli kasowania.
 w pierwszych wersjach kart pamięci CF, pózniej
zaczęto w nich stosować tańsze pamięci NAND.
Flash EEPROM
" 1989r.  Samsung i Toshiba: pamięci NAND.
 krótszy czas zapisu i kasowania, większa gęstość
upakowania danych, lepszy współczynnik
koszt/pojemność oraz 10-krotnie większa
wytrzymałość.
 wada: sekwencyjny dostęp do danych, co czyni ją
użyteczną jako pamięć masowa, lecz bezużyteczną
jako pamięć komputera.
 pierwszą kartą pamięci używającą pamięci NAND była
karta SmartMedia, pózniej zaczęto ich używać w
innych typach, jak: Secure Digital, Memory Stick i xD-
Picture Cards, dyski USB.
5
Organizacja pamięci
n
Wprowadzanie i
wyprowadzanie
Szyna danych DB
informacji do i z
pamięci m
Szyna adresowa AB
PAMIĆ
R/W#
Dokonywanie wyboru
CS#
na którym słowie
dokonujemy operacji
Rodzaj operacji
R - czytanie
W - zapis
Uaktywnienie
układu pamięci
Adres
Niepowtarzalna liczba (numer) przypisana danemu miejscu (słowu) w pamięci
w celu jego identyfikacji.
Słowo
Zestaw pojedynczych komórek pamięci, do którego odwołujemy się
pojedynczym adresem
16 bitów
Długość słowa
Ilość bitów w pojedynczym
1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1
słowie
16
PAMIĆ
m
Długość słowa = ilość wyprowadzeń szyny danych
N - liczba słów przechowywanych w pamięci
m - liczba linii szyny adresowej
N = 2 m
Aby zaadresować N słów potrzeba linii szyny adresowej
m = log2 N
M - pojemność pamięci
n - długość słowa
.
M = n N = n .2m
6
Różne organizacje pamięci
D0 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 A1 A0
Organizacja bitowa Organizacja bajtowa
32 x 1b 4 x 1B
Aączenie układów pamięci
" Zwiększanie długości słowa przy niezmienionej ilości słów
" Zwiększenie ilości słów przy niezmienionej długości słowa
Zwiększanie długości słowa przy niezmienionej ilości słów
Dwa układy 1M x 4b = 4Mb
1M x 8b
D7 D6 D5 D4 D3 D2 D1 D0
20
ADRES D0
D1
CS# CS#
D2
R/W# R/W#
D3
D0
D1
CS#
D2
R/W#
D3
7
Zwiększenie ilości słów przy niezmienionej długości słowa
Cztery układy 256k x 4b = 1Mb
1M x 4b = 4Mb
4
D3 - D0
256k x 4b 256k x 4b 256k x 4b 256k x 4b
CS# R/W# CS# R/W# CS# R/W# CS# R/W#
Dekoder
18
R/W#
A19 A18 A17 - A0
Technologia wykonania
Statyczna SRAM Dynamiczna DRAM
prostota budowy
droga
duże pojemności
szybka
Wolniejsza
gorsza do scalenia
wymaga odświeżania
tańsza
Static RAM
Dynamic RAM
Asynchronous SRAM
każdy bit danych jest
przechowywany w zmiennej
Synchronous SRAM
lokalizacji  w oddzielnym
kondensatorze w obwodzie
8.5 ns - 12 ns
Burst SRAM
zintegrowanym
4.5 ns - 8 ns
Pipelined burst SRAM
Na jeden bit danych
potrzebny jest
tylko jeden tranzystor i
kondensator.
8
Pamięć dynamiczna
DRAM
Płat pamięciowy
Budowa pojedynczej
komórki pamięci
RZD (Row)
wiersz
Pojedynczy płat
(organizacja)
kolumna
X x Y x 1bit
KOLUMNA (Column)
Liczba płatów = szerokość szyny danych
Adres
Dane
RAS  Row Adress Select
RAS #
CAS  Column Adress Select
DRAM
CAS#
WE  Write Enable
WE#
OE  Output Enable
OE# CE  Chip Enable
CE#
Sposób adresowania słowa w pamięci DRAM
Rejestr
Wejście
zatrzaskowy
Dekoder
adresowe
adresu
wierszy
wiersza
RAS#
Dekoder
kolumn
Rejestr
zatrzaskowy
adresu
kolumny
CAS#
9
Odczyt z pamięci DRAM PM -Page Mode
tc - czas między cyklami
ta - czas dostępu
tD RAS-CAS
RAS
CAS
Wejście
Adres wiersza Adres kolumny Adres wiersza
adresowe
pamięci
S
OE
Wyjścia
Dane
danych
FPM - Fast Page Mode
" Adres wiersza przekazywany do pamięci tylko 1 raz na 4
cykle dostępu. Pozostałe cykle mają ten sam adres
wiersza a zmienia się adres kolumny
X-X-X-X
Pozostałe cykle
Czas trwania
pierwszego cyklu
Wymiana
danych w
RAS
porcjach po kilka
CAS
bajtów
równocześnie
ADR
Row-1 Col -1 Col -2 Col -3 Col -4
odczyt
WE
zapis
D.Out D.Out D.Out D.Out
DATA
R1-C1 R1-C2 R1-C3 R1-C4
10
EDO - Extended Data Out
" Cykl dostępu do pamięci może się rozpocząć przed
zakończeniem cyklu poprzedniego.
" Dane na wyjściu utrzymywane dłużej niż w PM i FPM.
RAS
5-2-2-2
CAS
ADR
Row-1 Col -1 Col -2 Col -3 Col -4 Row-2
WE
DATA D.Out D.Out D.Out D.Out
R1-C1 R1-C2 R1-C3 R1-C4
BEDO - Burst EDO
5-1-1-1
" uproszczony sposób adresowania.
" adres przekazywany raz na poczwórny cykl i odnosi się do początku obszaru.
" pozostałe adresy są generowane we wnętrzu układu.
SDRAM (Synchroniczne DRAM)
Ta sama matryca komórek
Głównie dostęp sekwencyjny
Inny sposób sterowania
Układy odświeżania zamknięte wewnątrz pamięci
Inna technika dostępu
Dostęp podobnie jak w BEDO 5-1-1-1
Różnica uwidacznia się przy wzroście częst. PC-100 , PC133
DDR-SDRAM Double Data Rate
W każdym takcie zegara przekazywane dwa słowa danych
Standard propagowany jako otwarty  brak opłat licencyjnych
Konstrukcja wewnętrznych chipów zbliżona do budowy pamięci SDRAM
DDR2 SDRAM VC-SDRAM
RDRAM HSDRAM
11
Dostęp do pamięci
" Od modelu 8088 do 80186 magistrala adresowa 20-bitowa
" 80286 magistrala adresowa 24-bitowa, pokrycie przestrzeni 16 MB (224)
" 80386DX magistrala adresowa 32-bitowa, pokrycie 4 GB (232)
" Pentium Pro, Pentium III magistrala adresowa 36-bitowa
" Obecnie magistrala adresowa 40-bitowa, adresowanie 1 TB (240)
220 = 1048576 kombinacji (adresów) 1048576 bajtów = 1MB
segment offset
1000110011101001 1000110011101001
Dwa 16-bitowe rejestry
Adres fizyczny = 16 * segment +offset
segment
1000110011101001
0000
Adres logiczny: para rejestrów Segment i Offset
offset
0000111011111011
+
Adres fizyczny
segment offset
1000110011101001 1000110011101001
liczba
Początek segmentu x 16
odległość
Adres fizyczny
Maksymalnie 65536 bajtów czyli 64 kB
Offset - adres efektywny
12
Procesor zaopatrzony jest w rejestry segmentowe: pamięć
CS - rejestr segmentowy programu
DS - rejestr segmentowy danych
SS - rejestr segmentowy stosu
64 kB
procesor
kod programu
CS
DS
SS
64 kB
dane
CS = 1001001011101001
DS = 1101001011101101
Program 1
SS = 1000000010001100
CS = 1011001111111111
stos
DS = 0001001011101101
Program 2
64 kB
SS = 1111000010001100
CS = 1111001011101001
DS = 0001001011101101
Program 3
SS = 1001111010001100
Tryb rzeczywisty pracy procesora (Real Mode)
Wady :
- program o rozmiarze max 64 kB
- dwa różne adresy logiczne mogą wskazywać na ten sam adres fizyczny
- segmenty mogą na siebie zachodzić a nawet się pokrywać
- brak mechanizmów ochrony (utrudniona wielozadaniowość)
Tryb chroniony pracy procesora (Protected Mode)
- Ochrona poszczególnych zadań pracujących pod kontrolą wielozadaniowego
systemu operacyjnego
- Czteropoziomowy system uprawnień
Microsoft Office Flash MX Adobe Photoshop Media Player
13
Wielozadaniowość (multitasking)
Microsoft Office Flash MX Adobe Photoshop Media Player
procesor
Każdemu (procesowi) przyporządkowany jest kwant czasu. Im jest on
dłuższy tym więcej czasu poświęca procesor na wykonywanie tego
procesu (posiada on wyższy priorytet). W wielu systemach można
zmieniać ten priorytet przydzielając procesom różną moc obliczeniową
procesora.
PAMIĆ WIRTUALNA
Pamięć wirtualna  mechanizm zarządzania pamięcią
komputera zapewniający procesowi wrażenie pracy w jednym
dużym, ciągłym obszarze pamięci operacyjnej podczas gdy
fizycznie może być ona pofragmentowana, nieciągła i
częściowo przechowywana na urządzeniach pamięci
masowej. Systemy korzystające z tej techniki ułatwiają
tworzenie rozbudowanych aplikacji oraz poprawiają
wykorzystanie fizycznej pamięci RAM w systemach
wielozadaniowych.
14
SEGMENTACJA
Jedna z metod ochrony pamięci, używana przy wielozadaniowości.
Każdy proces otrzymuje swój własny obszar pamięci, realizowany
poprzez rejestry segmentowe.
Segmentacja pamięci polega na podzieleniu przez procesor pamięci
fizycznej na fragmenty o określonym początku, rozmiarze,
atrybutach i identyfikatorze. System tworzy takie segmenty na
żądanie aplikacji, przekazując jej jedynie identyfikatory
niepozwalające na odczytanie parametrów segmentów. Programy
odwołują się zatem do kolejnych komórek pamięci w ramach
należących do nich segmentów, nie wiedząc nic o tym, w jakie
miejsca pamięci fizycznej trafiają odwołania do nich. Procesy nie
mają też prawa  widzieć segmentów należących do innych
programów  w czasie przekazywania kontroli procesowi system
musi zablokować definicje segmentów należących do pozostałych
procesów, przy każdym przełączeniu blokując segmenty
wyłączanego programu i na nowo uaktywniając segmenty programu
aktywowanego.
SEGMENTACJA
Okazuje się jednak, że wady segmentacji przeważyły nad zaletami.
Pierwsze implementacje segmentowanej pamięci wirtualnej
narzucały dość poważne ograniczenia na rozmiary segmentów,
zmuszając programistów do dzielenia kodu programów oraz bloków
danych w sposób nienaturalny i utrudniając tworzenie naprawdę
dużych struktur danych.
W mikroprocesorach 80386 i pózniejszych nie można wyłączyć
mechanizmu segmentacji. Aby segmentację uczynić niewidoczną,
Linux wykorzystuje jeden segment o adresie bazowym 0x0 i
rozmiarze 4GB. W celu ochrony pamięci, zamiast segmentacji
stosuje się mechanizm stronicowania, który jest niezależny od
segmentacji.
15
SEGMENTACJA
REJESTR SEGMENTOWY 16-bitowy REJESTR OFFSETOWY 32-bitowy
2 bity - prawa dostępu do segmentu (4 poz.)
13 bitów
Wskaznik do tablicy 1 bit - rodzaj tablicy (lokalna globalna)
Segment Descriptor <
8 BAJTÓW
= 64 bity 20 bitów 32 bity adres 12 bitów
rozmiar segmentu bazowy segmentu granulacja i reszta
BAD
220 = 1 MB 1 B
220 . 212 = 232 = 4GB 4 kB
+
214 = 16384
Deskryptor segmentu
zawiera inf. na temat
ADRES LINIOWY 32-bitowy
lokalizacji i rozmiaru
segmentu
214 . 232 = 64TB
Nie jest możliwe wykonanie tak
wielkiej pamięci operacyjnej
> koszty
> sterowanie Nośnik magnetyczny
RAM
(pamięć masowa)
pamięć operacyjna
> zasilanie
Winamp Winamp Winamp
PAMIĆ
Corel Draw Corel Draw MS Word
program dane MS Word
> za duże segmenty
> za dużo do przerzucania między pam. operacyjną a masową
> niewykorzystane fragmenty pamięci (fragmentacja zewnętrzna)
16
...
Tryb wirtualny pracy procesora (Virtual Mode)
10 bitów 10 bitów 12 bitów
STRONICOWANIE
2 3
RAMKA NR 6
KATALOG STRON
6 4 kB
4
0
24
1
2
1
7
4 kB
3
123
8
4 kB
0 1 2
TABLICA STRON
9 4 kB
221 8 221
0 0 0
24 24 24
1 1 1 10 4 kB
...
2 2 2
45 12 45
3 3 3
65 7 65
Pamięć fizyczna
PRZESTRZEC ADRESÓW
WIRTUALNYCH
PAMIĆ OPERACYJNA
ADRES WIRTUALNY
RAMKA 0
STRONA OFFSET
A W NIEJ STRONA 0
STRONA 1
RAMKA 1
STRONA 1
PUSTA
RAMKA 2
Nr ramki
A W NIEJ STRONA 2
STRONA 0
RAMKA 3
A W NIEJ STRONA 3
STRONA 5
RAMKA 4
STRONA 4
PUSTA
RAMKA 5
STRONA 5
PUSTA
STRONA 6
Adres fizyczny = Nr ramki * 4kB + Offset
17
...
...
...
...
...
...
...
...
...
Tworzenie adresu fizycznego
Adres logiczny
logiczny
SEGMENTACJA
Adres liniowy Adres fizyczny
liniowy Adres
STRONICOWANIE
Adres fizyczny
fizyczny
Coraz wyższe prędkości pracy procesorów wymagają
zwiększenia prędkości działania układów pamięciowych.
Ograniczenia:
Procesor musi czekać coraz dłużej na kolejną porcję danych
> cena
> technologia
PAMIĆ PODRCZNA (CACHE)
Pamięć
CACHE PROCESOR
operacyjna
Duża, tania,
Mała szybka
wolna:
i nie tak bardzo droga
dziesiątki ns
kilka ns
CACHE
PROCESOR
L1 L2 L3
L1
Badania dowiodły, iż większość odwołań do
pamięci mieści się w bloku 16 kb.
18
Różne topologie
Look-Aside
CPU
X86 do Pentium MMX
L1 w procesorze (taktowana tym samym zegarem)
CACHE
L2 dołączona równolegle do magistrali
Częstotliwość Cache i RAM taka sama
RAM
Krótszy czas dostępu
Look-Through (Inline Cache)
CPU CACHE RAM
Dwie magistrale
Inna częstotliwość dla Cache i RAM
Różne topologie  cd.
Backside
BSB - Back Side Bus
CPU CACHE
FSB - Front Side Bus
Najnowsze architektury
BSB niezależna magistrala
RAM
Kompromis między szybkością a pojemnością L2
19
Organizacja pamięci podręcznej
" Cache zorganizowana w Cache Lines o rozmiarach 16 lub 32 bajty
(najmniejsza porcja informacji wymieniana z RAM).
" Dla Cache RAM jest zbiorem linijek pogrupowanych w zespoły
zwane stronami
" TAG-RAM - katalog pamięci podręcznej, które linijki z RAM są w
Cache u
Linijka
(Cache Lines)
16 lub 32 bajty
Strona
Mapowanie bezpośrednie (Direct Mapped)
Strona 0 Strona 1 Strona 2 Strona 3 Pamięć główna
Strona 3 Pamięć podręczna
" Rozmiar bloku pamięci podręcznej równy jest rozmiarowi strony
" Prosta konstrukcja i duża szybkość odszukiwania informacji
" Brak elastyczności przy skokach poza granice stron
20
Pełna asocjacja (Fully Associative)
1 2 3 4 5
Pamięć główna
3 4 9 7 8 9 1 2
Pamięć podręczna
" Operuje się wyłącznie linijkami (brak symbolicznego podziału na strony)
" Odszukanie informacji w Cache u wymaga przeszukania całej tablicy
TRAM
" Rozwiązanie dla Cache u mniejszego od 4KB
Asocjacja zespołowa (Set Associative)
Strona 0 Strona 1 Strona 2 Strona 3 Pamięć główna
Kanał 0 Kanał 1 Pamięć podręczna
" Podział pamięci podręcznej na równe porcje (2, 4 lub 8 kanałów)
" Rozmiar strony w RAM jest równy rozmiarowi kanału w Cache
" Układ 8-kanałowy w procesorach Pentium 4
Cache Hit - trafienie - obecność danych w pamięci podręcznej
Cache Miss - brak trafienia - uruchamiana jest magistrala pamięciowa
i sprowadzana jest nowa linijka
21
Dziękuję za uwagę
22


Wyszukiwarka