Organizacja pamięci

Transkrypt

Organizacja pamięci
PODSTAWY INFORMATYKI
dr inż. Krzysztof Małecki
Magistrala
Procesor
Pamięć
Układy I/O
ADRES
125 126 127 128 129 130
289 290 291 292
293 294 295 296
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
10101101
...
10101101
10101101
10101101
10000001
10101101
10011101
...
10101101
PAMIĘĆ
...
297 298 299 300
Pamięci półprzewodnikowe
Cyfrowe układy scalone przeznaczone do
przechowywania dużej ilości informacji
w postaci binarnej.
1
Podstawowe parametry
Pojemność
Maksymalna ilość informacji jaką możemy przechować w danej pamięci
podawana w bitach(b) lub bajtach(B).
najbardziej
znaczący bit
najmniej
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
Pamięci taśmowe
głowica
Dostęp swobodny
Czas dostępu nie zależy od
adresu słowa w pamięci, czyli
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, dźwię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.
promieniami
UV.
Programowanie
w
programatorach.
Kasowanie
specjalnych
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óźniej
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óźniej zaczęto ich używać w
innych typach, jak: Secure Digital, Memory Stick i xDPicture Cards, dyski USB.
5
Organizacja pamięci
Wprowadzanie i
wyprowadzanie
informacji do i z
pamięci
n
Szyna danych
DB
m
Szyna adresowa
Dokonywanie wyboru
na którym słowie
dokonujemy operacji
AB
PAMIĘĆ
R/W#
CS#
Rodzaj operacji
R - czytanie
W - zapis
Adres
Uaktywnienie
układu pamięci
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
słowie
1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1
16
m
PAMIĘĆ
Długość słowa = ilość wyprowadzeń szyny danych
N - liczba słów przechowywanych w pamięci
m - liczba linii szyny adresowej
Aby zaadresować N słów potrzeba
M - pojemność pamięci
n - długość słowa
N=2m
m = log2 N
linii szyny adresowej
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
Organizacja bitowa
32 x 1b
A1 A0
Organizacja bajtowa
4 x 1B
Łą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
CS#
R/W#
CS#
R/W#
D0
D1
D2
D3
CS#
R/W#
D0
D1
D2
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
CS#
256k x 4b
R/W#
CS#
256k x 4b
R/W#
CS#
256k x 4b
R/W#
CS#
R/W#
Dekoder
18
R/W#
A19 A18
A17 - A0
Technologia wykonania
Statyczna SRAM
Dynamiczna DRAM
prostota budowy
duże pojemności
Wolniejsza
wymaga odświeżania
tańsza
droga
szybka
gorsza do scalenia
Static RAM
Dynamic RAM
Asynchronous SRAM
Synchronous SRAM
Burst SRAM
8.5 ns - 12 ns
Pipelined burst SRAM
4.5 ns - 8 ns
każdy bit danych jest
przechowywany w zmiennej
lokalizacji — w oddzielnym
kondensatorze w obwodzie
zintegrowanym
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
RZĄD (Row)
wiersz
Pojedynczy płat
(organizacja)
kolumna
X x Y x 1bit
KOLUMNA (Column)
Liczba płatów = szerokość szyny danych
Adres
Dane
RAS #
CAS#
DRAM
WE#
OE#
RAS – Row Adress Select
CAS – Column Adress Select
WE – Write Enable
OE – Output Enable
CE – Chip Enable
CE#
Sposób adresowania słowa w pamięci DRAM
Wejście
adresowe
RAS#
Rejestr
zatrzaskowy
adresu
wiersza
Dekoder
wierszy
Dekoder
kolumn
CAS#
Rejestr
zatrzaskowy
adresu
kolumny
9
PM -Page Mode
Odczyt z pamięci DRAM
tc - czas między cyklami
ta - czas dostępu
tD RAS-CAS
RAS
CAS
Wejście
adresowe
pamięci
Adres wiersza
Adres kolumny
Adres wiersza
S
OE
Wyjścia
danych
Dane
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
porcjach po kilka
bajtów
równocześnie
RAS
CAS
ADR
Row-1
Col -1
Col -2
Col -3
Col -4
odczyt
WE
DATA
zapis
D.Out
R1-C1
D.Out
R1-C2
D.Out
R1-C3
D.Out
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
R1-C1
D.Out
R1-C2
D.Out
R1-C3
D.Out
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
Inny sposób sterowania
Inna technika dostępu
Głównie dostęp sekwencyjny
Układy odświeżania zamknięte wewnątrz pamięci
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
RDRAM
VC-SDRAM
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
Dwa 16-bitowe rejestry
offset
1000110011101001
1000110011101001
Adres fizyczny = 16 * segment +offset
+
1000110011101001 segment
0000
0000111011111011 offset
Adres logiczny: para rejestrów Segment i Offset
Adres fizyczny
segment
1000110011101001
offset
1000110011101001
liczba
Początek segmentu
x 16
odległość
Adres fizyczny
Maksymalnie 65536 bajtów czyli 64 kB
Offset - adres efektywny
12
pamięć
Procesor zaopatrzony jest w rejestry segmentowe:
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
SS = 1000000010001100
Program 1
CS = 1011001111111111
DS = 0001001011101101
SS = 1111000010001100
Program 2
CS = 1111001011101001
DS = 0001001011101101
SS = 1001111010001100
Program 3
stos
64 kB
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
wykorzystanie
fizycznej
aplikacji
pamięci
oraz
RAM
w
poprawiają
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óźniejszych 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
2 bity - prawa dostępu do segmentu (4 poz.)
1 bit - rodzaj tablicy (lokalna globalna)
13 bitów
Wskaźnik do tablicy
Segment Descriptor
8 BAJTÓW
REJESTR OFFSETOWY 32-bitowy
<
= 64 bity
20 bitów
rozmiar segmentu
...
220 . 212
32 bity adres
bazowy segmentu
12 bitów
granulacja i reszta
220 = 1 MB
= 232 = 4GB
1B
4 kB
214 = 16384
+
Deskryptor segmentu
zawiera inf. na temat
lokalizacji i rozmiaru
segmentu
ADRES LINIOWY 32-bitowy
Nie jest możliwe wykonanie tak
wielkiej pamięci operacyjnej
> koszty
> sterowanie
> zasilanie
BŁĄD
214 . 232 = 64TB
Nośnik magnetyczny
(pamięć masowa)
RAM
pamięć operacyjna
Winamp
Winamp
Winamp
PAMIĘĆ
Corel
program
Draw Corel Draw
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
0
1
2
3
4
24
1
123
...
...
TABLICA STRON
0
1
2
3
0
1
221
24
45
65
0
1
2
3
Nr ramki
3
PAMIĘĆ OPERACYJNA
221
24
45
65
...
OFFSET
0
1
2
...
STRONA
8
24
12
7
...
...
...
...
ADRES WIRTUALNY
2
...
6
4 kB
7
4 kB
8
4 kB
9
4 kB
10
4 kB
Pamięć fizyczna
PRZESTRZEŃ ADRESÓW
WIRTUALNYCH
RAMKA 0
A W NIEJ
STRONA 1
STRONA 0
RAMKA 1
PUSTA
STRONA 1
RAMKA 2
A W NIEJ
STRONA 0
STRONA 2
RAMKA 3
A W NIEJ
STRONA 5
STRONA 3
RAMKA 4
PUSTA
STRONA 4
RAMKA 5
PUSTA
STRONA 5
Adres fizyczny = Nr ramki * 4kB + Offset
STRONA 6
...
17
Tworzenie adresu fizycznego
Adres logiczny
SEGMENTACJA
Adres liniowy
Adres fizyczny
STRONICOWANIE
Adres fizyczny
Coraz wyższe prędkości pracy procesorów wymagają
zwiększenia prędkości działania układów pamięciowych.
Procesor musi czekać coraz dłużej na kolejną porcję danych
PAMIĘĆ PODRĘCZNA (CACHE)
Pamięć
operacyjna
CACHE
Duża, tania,
wolna:
dziesiątki ns
Mała szybka
i nie tak bardzo droga
kilka ns
Ograniczenia:
> cena
> technologia
PROCESOR
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
FSB - Front Side Bus
RAM
CACHE
Najnowsze architektury
BSB niezależna magistrala
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
Strona 3
Pamięć główna
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
Kanał 0
Kanał 1
Strona 3
Pamięć główna
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