CA-A- pamiec podreczna

Transkrypt

CA-A- pamiec podreczna
ARCHITEKTURA KOMPUTERÓW
Zasada lokalności
W komputerze z programem zintegrowanym programy i dane
mają tedencję do skupiania w wymiarze przestrzennym i czasowym.
lokalność przestrzenna (spatial locality)
Jest prawdopodobne uŜycie informacji z sąsiednich lokacji pamięci.
lokalność czasowa (temporal locality)
Kod uŜyty będzie zapewne ponownie uŜyty w nieodległym czasie.
wniosek:
Warto utworzyć w pobliŜu procesora bufor
zawierający kopie aktualnie uŜywanych bloków pamięci głównej
i korzystać z kopii zamiast z oryginału.
→ uŜycie bufora musi być przeźroczyste dla programu – nierozróŜnialne
na poziomie ISA, realizowane na poziomie HSA (organizacji)
→ bufor umoŜliwia wykorzystanie zalet szybkich pamięci statycznych
i pojemnych lecz wolnych pamięci dynamicznych.
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-1
ARCHITEKTURA KOMPUTERÓW
Bufory pamięci
bufor zawiera kopie aktualnie przetwarzanych danych
M(AT)
…
…
…
M(AH+2)
M(AH+1)
M(AH)
M(A+N+1)
M(A+N)
…
…
…
M(A+2)
M(A+1)
M(A+0)
M(A–1)
bufor sekwencyjny – kolejka
AT
AH
A 2 M(A 2)
…
…
A N M(A N)
…
…
A 0 M(A 0)
…
…
A 1 M(A 1)
…
M(A N)
…
M(A 1)
…
M(A 2)
…
…
M(A 0)
bufor blokowo-skojarzeniowy
(3)
N
…
4
3
2
1
0
Dana N↓N–3
Dana 4↓1
Dana 1↓××
Dana 2↓××
Dana 0↓××
bufor skojarzeniowo-sekwencyjny
organizacja sekwencyjna – kolejka
• bufor rozkazów (instruction queue), bufor zapisów (write buffer)
organizacja blokowo-skojarzeniowa
• pamięć podręczna (cache memory) – zawiera kopie uŜywanych danych
organizacja skojarzeniowo-sekwencyjna
• bufor przywracania kolejności (reorder buffer) (PISO parallel-in serial-out)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-2
ARCHITEKTURA KOMPUTERÓW
Skuteczność buforów cache
Zasada lokalności nie gwarantuje obecności kopii danych w buforze cache.
Skuteczność uŜycia pamięci podręcznej:
• współczynnik trafień (hit rate) h
• współczynnik chybień (miss rate) m = 1 − h
• tmp – średnia strata czasu w razie chybienia (miss penalty)
Średni czasu dostępu do pamięci
• w pamięci jednopoziomowej
t a = (1 − m) tca + m (t ram + t mp )
• w pamięci dwupoziomowej (inkluzywnej – L1 ⊂ L2)
t a = (1 − m1 ) t ca1 + (m1 − m2 )(t ca 2 + t mp1 ) + m2 (t ram + t mp1 + t mp 2 )
(m1 > m2, bo kaŜde trafienie w L1 jest trafieniem w L2,
a kaŜde chybienie w L2 jest chybieniem w L1)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-3
ARCHITEKTURA KOMPUTERÓW
Charakterystyki skuteczności
• większa liczba linii – lepsza lokalność czasowa
• większy rozmiar linii – lepsza lokalność przestrzenna
• dla ustalonej pojemności, ze zwiększaniem rozmiaru linii, dominujący staje
się wpływ zanikania lokalności czasowej i następuje wzrost strat czasu
w razie chybienia (czas wymiany jest proporcjonalny do liczby transferów)
m
ta
s
s
ZaleŜność współczynnika chybień m i średniego czasu dostępu do pamięci ta
od rozmiaru linii s dla ustalonej pojemności bufora cache
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-4
ARCHITEKTURA KOMPUTERÓW
Pamięć wielopoziomowa
MMU
„RAM”
L1 cache
rejestry
ta
0,25–1 ns
rozmiar 1–4 k B
register
0,5–5 ns
8–64 k B
cache
L2 cache
pamięć główna
pamięć wtórna
1–5 ns
10–50 ns
1–10 ms
64–512kB 256 MB–4GB 20–120 GB
cache
memory
storage
Hierarchia pamięci wielopoziomowej
• niektóre przestrzenie adresowe lub ich części nie mogą być buforowane
• procesor adresuje pamięć główną – sterownik bufora przechwytuje transfery
• specjalne rozkazy – sposób działania wewnętrznego bufora cache
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-5
ARCHITEKTURA KOMPUTERÓW
Organizacja pamięci podręcznej
Konieczna jest identyfikacja kopii w buforze cache:
→ jedynym identyfikatorem danej lub bloku danych jest adres
→ jednorodna struktura ułatwia identyfikację, upraszcza i przyśpiesza dostęp
→ kopiowanie pojedynczych bajtów/słów jest sprzeczne z zasadą lokalności
→ jednostką informacji powinno być 2k bajtów/słów (linia wymiany)
→ identyfikatorem lokacji w buforze moŜe być skrócony adres
→ przestrzeń adresowa procesora = suma rozłącznych linii
CAM
status (0) etykieta adresu (0)
status (1) etykieta adresu (1)
status (i)
etykieta adresu (i)
status(N) etykieta adresu (N)
adres
0
0
0
1
0
0
RAM
linia 0
linia 1
linia i
linia N
trafienie
dane
Schemat organizacji pamięci podręcznej
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-6
ARCHITEKTURA KOMPUTERÓW
Pamięć podręczna wielopoziomowa
zasada lokalności → pamięć podręczna wielopoziomowa (L(n+1) = PG)
• organizacja hierarchiczna – typowa
→ lokalizacja danej umieszczonej w pamięci L(i) dostępna w L(i+1)
→ pamięć poziomu i-go L(i) zawiera kopie niektórych danych z pamięci
poziomu (i+1)-go L(i+1), z których część moŜe być zaktualizowana
→ dana aktualna dostępna zawsze na najniŜszym poziomie
• organizacja separowana – (ATHLON – victim cache)
→ Ŝadna lokalizacja danej w pamięci L(i) nie jest dostępna w L(i+1)
problem spójności
• zgodność wszystkich kopii informacji, albo
• znajomość (świadomość) lokalizacji informacji aktualnej
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-7
ARCHITEKTURA KOMPUTERÓW
Parametry bufora
bufor poziomu L1
• rozmiar linii – dostosowany do rozmiaru magistrali danych procesora
(systemu) i moŜliwości transferów blokowych
• rozmiar pamięci – wystarczający do pomieszczenia kilku (2N) stron lub
innych jednostek przydziału (bloków) pamięci
bufor poziomu L2
• rozmiar linii – identyczny jak w L1
• rozmiar bufora – wystarczający do pomieszczenia zbioru roboczego procesu
Typowe parametry
• szerokość magistrali danych – 2k bajtów,
• transfer blokowy – nałoŜenie 2m transferów całą szerokością magistrali
→ linia powinna zawierać 2k+m =2B bajtów
• rozmiar strony – 2P bajtów
→ rozmiar bufora L1 – 2N stron = 2P+N bajtów
→ łączna liczba linii w buforze L1 = 2P+N−B
→ rozmiar bufora L2 – 2W 2N stron
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-8
ARCHITEKTURA KOMPUTERÓW
Aktualizacja zawartości bufora cache
Warunkiem utrzymania spójności jest aktualizacja linii, która obejmuje
• uniewaŜnienie linii zawierającej dane przypadkowe lub nieaktualne
• wypełnienie linii (bloku) nową zawartością
• wymiana linii w razie braku wolnego miejsca w buforze
• zapis w obszarze skopiowanej linii
o zapis skrośny (write through) – zgodność wszystkich kopii informacji
o zapis lokalny (copy-back) – znajomość lokalizacji informacji aktualnej
Zapis moŜe być poprzedzony kopiowaniem nieobecnej linii (allocate on write)
Allocate on write
Copy-back
Write through
No allocate on write
ObciąŜenie magistrali pamięci transferami powinno być minimalne
transfery ( memory + cache)
memory traffic ratio =
transfery (cache)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-9
ARCHITEKTURA KOMPUTERÓW
Bufory zapisu (write buffer)
Chybienie podczas próby zapisu
• w trybie WT (no allocate-on-write) wymaga transferu do poziomu wyŜszego
• w trybie CB uprzedzające kopiowanie (allocate-on-write) wymaga blokady
zapisu oraz powoduje niezgodność kopii (zapis lokalny) po odblokowaniu
• w trybie CB kopiowanie odłoŜone (no allocate-on-write) do chybienia w razie
odczytu lub kolejnego zapisu nie powoduje strat jeśli zapis jest buforowany
Bufor zapisu: pamięć FIFO (kolejka – musi być zachowana kolejność zapisów)
→ nasycenie bufora (write buffer saturation) → blokada kolejnego zapisu
rm
rm
rh
wh
rejestry
L1 cache
(WT)
wm
rh
wh
raw
bufor
L2 cache
(WT)
wm
pamięć
główna
raw
bufor
Bufory zapisu i ścieŜki przepływu danych w systemie pamięci
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-10
ARCHITEKTURA KOMPUTERÓW
Obsługa pamięci podręcznej
• uniewaŜnianie linii (line invalidation)
− przed pierwszym wypełnieniem
− wskutek zewnętrznej zmiany oryginału danych w pamięci głównej
− przełączanie procesów – uniewaŜnienie wszystkich linii (line flush)
• wypełnianie linii (line fill) oraz wymiana linii (line exchange)
− chybienie podczas odczytu (miss on read) lub (w trybie AOW) zapisu
• odczyt danej (read)
− trafienie podczas odczytu (hit on read)
• zapis danej (write) → rozbieŜność kopii z oryginałem
− trafienie podczas zapisu (hit on write)
∗ zapis skrośny (jednoczesny) (write through, WT) – modyfikuje kopię
w buforze wyŜszego poziomu
∗ zapis lokalny (zwrotny) (write/copy back, WB/CB) – w kopii lokalnej,
opóźniony zapis do bufora wyŜszego poziomu podczas usuwania linii
∗ uniewaŜnienie linii trafionej i zapis bezpośredni (omijający) do pamięci
głównej (write aside) lub bufora poziomu wyŜszego
− chybienie podczas zapisu (miss on write) – zapis do pamięci głównej lub
bufora poziomu wyŜszego (NAOW) lub wypełnienie i zapis (AOW)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-11
ARCHITEKTURA KOMPUTERÓW
Zarządzanie pamięcią podręczną
Sposoby umieszczania i aktualizacji danych w buforze:
• strategie wypełniania pamięci podręcznej – odwzorowanie pamięci głównej
w liniach pamięci podręcznej
− losowe – zbiór linii w zbiór lokacji linii (dowolnie)
− bezpośrednie – podzbiór linii w linię lokacji
− blokowo-skojarzeniowe – podzbiór linii w podzbiór lokacji linii
• strategie wymiany kopii w pamięci podręcznej w celu aktualizacji bufora
(bezzasadne w odwzorowaniu bezpośrednim!)
− losowa (random) – dowolnie (skuteczna przy odwzorowaniu losowym)
− kolejkowa (FIFO) – kolejność wymiany linii jest zgodna z kolejnością ich
wypełniania (usuwana jest linia najdawniej alokowana)
− LRU (last recently used) – wymieniana jest linia najdawniej uŜyta
(skuteczna przy odwzorowaniu blokowo-skojarzeniowym).
• strategie pobierania linii z pamięci głównej
− pobranie wymuszone (demand fetching) – uaktywniane chybieniem
− pobranie uprzedzające (prefetching) – na podstawie prognozy dostępu.
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-12
ARCHITEKTURA KOMPUTERÓW
Odwzorowanie linii w buforze pamięci podręcznej
• całkowicie skojarzeniowe (fully associative) – kaŜda linia pamięci głównej
moŜe być skopiowana w dowolnej lokacji linii pamięci podręcznej
− wymiana linii konieczna wtedy, gdy wszystkie linie są uŜyte
− największy współczynnik trafień, brak migotania (thrashing)
• bezpośrednie (direct mapped) – rozłącznym podzbiorom linii pamięci
głównej przypisano unikatowe lokacje linii pamięci w podręcznej
− najkrótszy czas kojarzenia – rekord indeksujący adresu (cache index)
− najmniejszy współczynnik trafień
− chybienia wskutek konfliktu odwzorowania (conflict miss) – migotanie
• wielodroŜne (set-associative) – rozłącznym podzbiorom linii pamięci
głównej przypisano rozłączne podzbiory lokacji linii w pamięci podręcznej
(bezpośrednie odwzorowanie bloków, pełne skojarzenie w podzbiorze)
− czas dostępu dłuŜszy niŜ dla pamięci z odwzorowaniem bezpośrednim
− niewielkie migotanie, duŜy współczynnik trafień
− konflikt odwzorowania maleje ze wzrostem liczby lokacji w bloku
przeplot – podzbiór tworzą linie, których adresy (etykiety) róŜnią się o 2K
(K – liczba lokacji linii lub podzbiorów linii w buforze)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-13
ARCHITEKTURA KOMPUTERÓW
Odwzorowanie całkowicie skojarzeniowe
CAM
RAM
status 1
etykieta adresu 1
linia xxx
status 2
etykieta adresu 2
linia xxx
status d
etykieta adresu d
linia xxx
status N
etykieta adresu N
linia xxx
...
chybienie
...
?=
adres linii
trafienie
dane
pamięć główna
linia 00000
linia 00001
linia 00FFE
linia 00FFF
linia 01000
linia 0EFFF
linia 0F000
linia 0F001
indeks słowa
adres fizyczny
linia 0FFFE
linia 0FFFF
Bufor całkowicie asocjacyjny (fully associative)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-14
ARCHITEKTURA KOMPUTERÓW
Odwzorowanie bezpośrednie
CAM
RAM
status (000)
etykieta adresu (000)
linia (xx000)
status (001)
etykieta adresu (001)
linia (xx001)
status (ddd)
etykieta adresu (ddd)
linia (xxddd)
status(FFE)
etykieta adresu (FFE)
linia (xxFFE)
status(FFF)
etykieta adresu (FFF)
linia (xxFFF)
chybienie
?=
adres linii
trafienie
dane
indeks linii
indeks słowa
pamięć główna
linia 00000
linia 00001
.....
linia 00FFE
linia 00FFF
linia 01000
.....
linia xxFFF
linia zz000
.....
linia FEFFF
linia FF000
linia FF001
.....
linia FFFFE
linia FFFFF
adres fizyczny
Bufor z odwzorowaniem bezpośrednim (direct mapped)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-15
ARCHITEKTURA KOMPUTERÓW
Odwzorowanie blokowo-skojarzeniowe (wielodroŜne)
CAM
RAM
blok 000
status
status
status
status
1(000)
2(000)
3(000)
4(000)
etykieta
etykieta
etykieta
etykieta
...
adresu
adresu
adresu
adresu
1(000)
2(000)
3(000)
4(000)
linia
linia
linia
linia
...
(xx000)
(xx000)
(xx000)
(xx000)
...
blok ddd
status
status
status
status
1(ddd)
2(ddd)
3(ddd)
4(ddd)
etykieta
etykieta
etykieta
etykieta
...
adresu
adresu
adresu
adresu
1(ddd)
2(ddd)
3(ddd)
4(ddd)
linia
linia
linia
linia
...
(xxddd)
(xxddd)
(xxddd)
(xxddd)
...
blok FFF
status
status
status
status
1(FFF)
2(FFF)
3(FFF)
4(FFF)
chybienie
etykieta
etykieta
etykieta
etykieta
?=
adres linii
adresu
adresu
adresu
adresu
1(FFF)
2(FFF)
3(FFF)
4(FFF)
linia
linia
linia
linia
indeks trafienia
indeks bloku
(xxFFF)
(xxFFF)
(xxFFF)
(xxFFF)
M PX/DM X
pami ęć główna
linia 00000
.....
linia 00ddd
.....
linia 00FFF
linia 01000
.....
linia 01ddd
.....
linia 01FFF
.....
linia zz000
.....
linia zzddd
...
linia zzFFF
.....
linia FF000
.....
linia FFddd
...
linia FFFFF
indeks słowa
adres fizyczny
dane
Bufor blokowo-skojarzeniowy (set-associative)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-16
ARCHITEKTURA KOMPUTERÓW
Organizacja pamięci podręcznej a charakterystyki skuteczności
m
0,020
2w
0,010
4w
0,005
8w
0,002
16w
0,001
1w=4
0,0005
32w cs
ZaleŜność współczynnika chybień od rozmiaru linii (pamięć dwudroŜna)
2
4
8
16
32
64
128
m/m0
12
[kB]
1-d
2-d
4-d
8-d
10
8
6
4
2
cs
Wpływ organizacji pamięci na częstość konfliktów odwzorowania
2
4
8
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
16
32
64
128
[kB]
5-17
ARCHITEKTURA KOMPUTERÓW
Strategie wymiany linii
Aktualizacja bufora podczas przełączania zadań
• bufor „ciepły” (warm cache) – część bufora nie jest wymieniana
• bufor „zimny” (cold cache) – uniewaŜnianie całego bufora
Algorytmy wymiany
• losowy – tylko w buforze całkowicie asocjacyjnym
ο – ryzyko usunięcia potrzebnej linii – 2–K (K – liczba lokacji w buforze)
• kolejkowy (FIFO)
ο – liczba bitów historii – log 2 S (S – liczba lokacji w podzbiorze)
ο – ryzyko usunięcia potrzebnej linii – p 2–S
ο –
• wg uŜywalności (LRU)
ο – liczba bitów historii – (S–1) log 2 S (S – liczba lokacji w podzbiorze)
ο – ryzyko usunięcia potrzebnej linii – p 2–S
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-18
ARCHITEKTURA KOMPUTERÓW
Strategie pobierania linii
• pobranie wymuszone (demand fetching) – uaktywniane chybieniem
• pobranie uprzedzające (prefetching) – na podstawie prognozy dostępu, nie
powinno powodować opóźniania pobrań wymuszonych (rozmiar linii wpływa
na szybkość wypełniania)
Antycypacja jednostopniowa (one block lookahead, OBL)
– w chwili pobrania linii i-tej z pamięci głównej naleŜy teŜ pobrać linię i+1
Pobranie uprzedzające (antycypowane)
• automatyczne (prefetch always), inicjowane podczas kaŜdej próby dostępu
→ przy okazji zwrotu do linii i jest zawsze pobierana linia i+1
• implikowane w razie chybienia (prefetch on a miss)
→ wraz z wymuszonym wskutek chybienia pobraniem linii i zawsze jest
pobierana linia i+1
• markowane (tagged prefetch)
→ podczas pierwszego, markowanego (tagged) zwrotu do linii i-tej, wraz
z linią i jest pobierana linia i+1
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-19
ARCHITEKTURA KOMPUTERÓW
Intensywność pobrań uprzedzających
• automatyczne (prefetch always)
→ obciąŜenie magistral o 20–80% większe niŜ w pobraniach wymuszonych
• implikowane w razie chybienia (prefetch on a miss)
→ obciąŜenie magistral nieznacznie większe niŜ w pobraniach wymuszonych
• markowane (tagged prefetch)
→ obciąŜenie magistral podobne jak w pobraniach wymuszonych
m
m
linia 16B
0,100
0,050
0,100
0,050
0,010
0,005
0,010
0,005
0,001
cs
1
2
4
8
16
32
64 [kB]
linia 32B
0,001
cs
2
4
8
16
32
64 128 [kB]
Współczynnik chybień m w funkcji rozmiaru pamięci podręcznej cs dla
strategii pobrań ( – wymuszone, ο – implikowane, • – markowane, automat.)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-20
ARCHITEKTURA KOMPUTERÓW
Zintegrowany model spójności pamięci podręcznej
RM (WT)
I
ESH-W
S
ESH-W
ESH-W
RH, WH
ESH-R
RM (CB)
WM|AOW (CB)
M
RH,WH
WH
ESH-R
E
ESH-R
RH
Stany linii pamięci podręcznej obsługiwanej w trybie WT lub CB
(I – niewaŜny (invalid), E – zgodny (exclusive), M – zmieniony (modified),
S – współdzielony (shared))
M – chybienie (miss), H – trafienie (hit), R – podczas odczytu, W – podczas zapisu,
ESH – podglądnięcie trafienia zewnętrznego (external snoop hit)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-21
ARCHITEKTURA KOMPUTERÓW
Strategia zapisu jednorazowego (write-once)
(Pentium) niewiele rejestrów → duŜo zmiennych roboczych w pamięci
→ pierwszy zapis skrośny (WT), kolejne zapisy lokalne (CB)
RM
I
ESH-W
S
ESH-W
ESH-W
ESH-R
RH
ESH-R
CB→WT
WH
WT→CB
ESH-R
CB→WT
WH
M
RH
WH
E
ESH-R
RH
Stany linii pamięci podręcznej obsługiwanej w trybie WO
L1: WT→CB, L2: CB – krótki czas zapisu, częściowa zgodność danych
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-22
ARCHITEKTURA KOMPUTERÓW
Pełny model spójności (MESI)
RM (WT)
I
ESH-W
S
ESH-W
WH (WT)
ESH-R
RH (WT)
WH (WO)
ESH-W
RM (CB)
ESH-R (WO)
ESH-R (WO)
RH (CB)
M
WH (CB)
WH (CB)
ESH-R (CB)
RH (CB)
E
ESH-R (CB)
Model spójności wielopoziomowej pamięci podręcznej (protokół MESI)
Obsługa pamięci dwupoziomowej:
L1: WT, L2: WT – długi czas zapisu, całkowita zgodność danych
L1: CB, L2: CB – najkrótszy czas zapisu, utrata zgodności danych po zapisie
L1: WT, L2: CB – krótszy czas zapisu, zgodność danych L1-L2
L1: CB, L2: WT – utrata zgodności danych po zapisie, długi czas wymiany
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-23
ARCHITEKTURA KOMPUTERÓW
Wymiana linii – aspekty czasowe
CB
RM→LF
R BUF R BUF
A
R BUF R BUF
AD
LA
D
DR0
DR1
DR2
DR3
DW0
DW1
DW0
DW1
DW1
DW0
R/#W
RM→LF
A
R BUF R BUF
A
CB
R BUF R BUF
AD
LA
D
DR0
DR1
DR2
DR3
DW0
DW1
R/#W
HOLD
HLDA ↓
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-24
ARCHITEKTURA KOMPUTERÓW
Rozszerzony model spójności
RM/WT
I
S
ESH-W
RM
ESH-W
WH/WT
ESH-R
RH/WT
WT
ESH-W
RM/CB
A
CB
WH/CB
M
RH/CB
WH/CB
ESH-R/CB
E
ESH-R
RH/CB
(I – niewaŜny (invalid), E – zgodny (exclusive), M – zmieniony (modified),
A – przydzielony (allocated), S – współdzielony (shared))
RH / WH – trafienie podczas odczytu (R) / zapisu (W), RM – chybienie podczas odczytu
(read miss), ESH – podglądnięcie trafienia zewnętrznego (external snoop hit),
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-25
ARCHITEKTURA KOMPUTERÓW
Architektura systemu pamięci podręcznej (1)
przesyłanie danych między procesorem a pamięcią podręczną:
• przez magistralę systemową – sterownik typu look-aside (LA)
• przez separowaną magistralę lokalną – sterownik typu look-through (LT)
procesor
sterownik LA
L2 cache
L1 cache
rejestry
urządzenie zewnętrzne
urządzenie zewnętrzne
trafienie
bufor
magistrali
pamięci
magistrala
pamięci
pamięć
główna
Architektura pamięci podręcznej typu look-aside
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-26
ARCHITEKTURA KOMPUTERÓW
Architektura systemu pamięci podręcznej (2)
procesor
sterownik LT
L2 cache
L1 cache
magistrala
lokalna
rejestry
urządzenie
zewnętrzne
urządzenie
zewnętrzne
bufor
magistrali
pamięci
pamięć
główna
magistrala pamięci
Architektura pamięci podręcznej typu look-through
sterownik podglądający (look-aside)
• wada – blokowanie magistrali systemowej podczas transferów
• zaleta – prostota konstrukcji
sterownik pośredniczący (look-through)
• wada – skomplikowana struktura
• zaleta – odciąŜenie magistrali systemowej (transfery magistralą lokalną)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-27
ARCHITEKTURA KOMPUTERÓW
Przyspieszanie translacji adresu podczas dostępu do pamięci podręcznej
a)
trafienie
b)
trafienie
DPA
C
CPU
VA
MMU
chybienie
C
RPA
VA
RA
CPU
M
VPA
MMU
chybienie
=
?
≠
M
RPA
Translacja adresu wirtualnego podczas dostępu do pamięci podręcznej: a)
sekwencyjna, b) równoległa. CPU – procesor, MMU – jednostka zarządzania
pamięcią, M – pamięć główna, C – pamięć podręczna, VA – adres wirtualny,
RA – adres rzeczywisty, VPA – adres strony wirtualnej, RPA – adres strony
rzeczywistej, DPA – bezpośredni adres na stronie
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-28
ARCHITEKTURA KOMPUTERÓW
Spójność pamięci w systemie wieloprocesorowym
Spójność
• zgodność wszystkich kopii informacji, albo
• znajomość (świadomość) lokalizacji informacji aktualnej
Protokół uzgadniania
• działania procesora (CPU action)
• działania na magistrali (bus action) – podglądanie magistrali (snooping)
Modele spójności systemu wieloprocesorowego ze wspólna pamięcią
• zapisz–uniewaŜnij (write–invalidate)
o Synapse– aktualizacja lokalna, inne kopie uniewaŜniane
o Illinois – aktualizacja lokalna, kopia markowana (wyłączna – dzielona),
podobny protokół jak w modelu MESI
o Berkeley – aktualizacja lokalna, inne kopie tylko do odczytu
• zapisz–aktualizuj (write–update)
o Firefly – aktualizacja globalna, kopia markowana (wyłączna – dzielona)
o Dragon – aktualizacja ograniczona (z wyłączeniem pamięci głównej),
kopia markowana (wyłączna – dzielona)
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-29
ARCHITEKTURA KOMPUTERÓW
Pamięć podręczna dysku (disk cache)
obsługa : copy back (write through wymusza niepotrzebne zapisy)
rozmiar: sektor, ścieŜka, cylinder itp.
DB
DB
dyski
dyski
DMA
DMA
dyski
dyski
„RAM”
MoŜliwe usytuowania bufora pamięci podręcznej dysku
© Janusz Biernat, CA-A- pamiec podreczna, 14 listopada 2004
5-30