background image

KONCEPCJA PAMIĘCI 

KONCEPCJA PAMIĘCI 

PODRĘCZNEJ (CACHE)

PODRĘCZNEJ (CACHE)

Architektura komputera z pamięcią cache

Architektura komputera z pamięcią cache

Elementy systemu pamięci cache

Elementy systemu pamięci cache

Organizacja pamięci cache

Organizacja pamięci cache

background image

Przypomnijmy: 

Przypomnijmy: 

pamięci statyczne są szybsze, droższe, pobierają więcej energii i 

pamięci statyczne są szybsze, droższe, pobierają więcej energii i 

są trudniejsze do scalania

są trudniejsze do scalania

pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej 

pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej 

energii i są łatwiejsze do scalania

energii i są łatwiejsze do scalania

Wniosek 1

Wniosek 1

: nie jest możliwe zbudowanie całej pamięci operacyjnej z 

: nie jest możliwe zbudowanie całej pamięci operacyjnej z 

pamięci statycznych, a pamięci dynamiczne są za wolne dla 

pamięci statycznych, a pamięci dynamiczne są za wolne dla 

współczesnych procesorów i częstotliwości zegara

współczesnych procesorów i częstotliwości zegara

Wniosek 2

Wniosek 2

: wprowadza się dużą pamięć operacyjną (rzędu kilka GB) 

: wprowadza się dużą pamięć operacyjną (rzędu kilka GB) 

zbudowaną z pamięci dynamicznych i małą (kilka kilkaset kB) 

zbudowaną z pamięci dynamicznych i małą (kilka kilkaset kB) 

pamięć podręczną - statyczną - znacznie szybszą (wraz ze 

pamięć podręczną - statyczną - znacznie szybszą (wraz ze 

sterownikiem)

sterownikiem)

Wniosek 3

Wniosek 3

: dwa rodzaje architektury:

: dwa rodzaje architektury:

Look-trough („dostęp przez”)

Look-trough („dostęp przez”)

Look-aside

Look-aside

 

(„dostęp bezpośredni”)

(„dostęp bezpośredni”)

Back-side  („dostęp od tyłu”)

Back-side  („dostęp od tyłu”)

KONCEPCJA PAMIĘCI PODRĘCZNEJ 

KONCEPCJA PAMIĘCI PODRĘCZNEJ 

(CACHE)

(CACHE)

background image

W  przypadku  „chybienia”

W  przypadku  „chybienia”

 

 

wykorzystywana 

jest 

wykorzystywana 

jest 

magistrala 

główna 

magistrala 

główna 

koniecznymi 

stanami 

koniecznymi 

stanami 

oczekiwania

oczekiwania

CACHE

CACHE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

MIKROPROCESO

MIKROPROCESO

R

R

W  przypadku  „trafienia”

W  przypadku  „trafienia”

 

 

główna 

magistrala 

główna 

magistrala 

danych 

nie 

jest 

danych 

nie 

jest 

wykorzystywana 

co 

wykorzystywana 

co 

dodatkowo 

przyspiesza 

dodatkowo 

przyspiesza 

pracę 

systemu 

(z 

pracę 

systemu 

(z 

magistrali  głównej  mogą 

magistrali  głównej  mogą 

w  tym  czasie  korzystać 

w  tym  czasie  korzystać 

inni zarządcy).

inni zarządcy).

Magistrala 

Magistrala 

lokalna

lokalna

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

ARCHITEKTURA LOOK-THROUGH 

ARCHITEKTURA LOOK-THROUGH 

(„dostęp przez”)

(„dostęp przez”)

 

Wykorzystana w procesorach 

Wykorzystana w procesorach 

Intel Pentium II

Intel Pentium II

background image

Zalety:

Zalety:

prostsza 

prostsza 

konstrukcja

konstrukcja

szybsza realizacja w 

szybsza realizacja w 

przypadku 

przypadku 

chybienia

chybienia

Wady:

Wady:

nawet przy trafieniu 

nawet przy trafieniu 

magistrala  nie  jest 

magistrala  nie  jest 

dostępna dla innych 

dostępna dla innych 

zarządców

zarządców

CACHE

CACHE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

MIKROPROCESO

MIKROPROCESO

R

R

W  przypadku  „trafienia” 

W  przypadku  „trafienia” 

„chybienia”

„chybienia”

 

główna 

 

główna 

magistrala  danych  jest 

magistrala  danych  jest 

stale wykorzystywana.

stale wykorzystywana.

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

ARCHITEKTURA LOOK-ASIDE 

ARCHITEKTURA LOOK-ASIDE 

(„dostęp bezpośredni”)

(„dostęp bezpośredni”)

 

Wykorzystana w procesorach 

Wykorzystana w procesorach 

x86 i Pentium 

x86 i Pentium 

background image

W czasie, kiedy procesor 

W czasie, kiedy procesor 

łączy się pamięcią cache, 

łączy się pamięcią cache, 

możliwe jest wykorzystanie 

możliwe jest wykorzystanie 

magistrali głównej przez 

magistrali głównej przez 

inne urządzenia 

inne urządzenia 

zapisujące/odczytujące do 

zapisujące/odczytujące do 

pamięci RAM. prostsza 

pamięci RAM. prostsza 

konstrukcja

konstrukcja

CACHE

CACHE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

MIKROPROCESO

MIKROPROCESO

R

R

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

ARCHITEKTURA BACK-SIDE 

ARCHITEKTURA BACK-SIDE 

(„dostęp od tyłu”)

(„dostęp od tyłu”)

 

Magistra

Magistra

la

la

 lokalna

 lokalna

Wykorzystana w procesorach 

Wykorzystana w procesorach 

Intel Pentium Pro

Intel Pentium Pro

background image

Bank danych pamięci cache

Bank danych pamięci cache

 (pamięć danych)

 (pamięć danych)

przechowuje, umożliwia zapisywanie i odczytywanie 

przechowuje, umożliwia zapisywanie i odczytywanie 

informacji 

informacji 

Katalog pamięci cache

Katalog pamięci cache

 (zwany TAG-RAMem)

 (zwany TAG-RAMem)

umożliwia szybkie sprawdzanie czy poszukiwana 

umożliwia szybkie sprawdzanie czy poszukiwana 

informacja znajduje się w pamięci danych cache 

informacja znajduje się w pamięci danych cache 

(konkretnie: czy dany adres jest odwzorowany w pamięci 

(konkretnie: czy dany adres jest odwzorowany w pamięci 

cache)

cache)

Sterownik pamięci cache

Sterownik pamięci cache

realizuje sprawdzenie adresu w katalogu pamięci cache, 

realizuje sprawdzenie adresu w katalogu pamięci cache, 

organizuje współpracę pamięci cache z systemem  i 

organizuje współpracę pamięci cache z systemem  i 

zapewnia zgodność zawartości pamięci cache z pamięcią 

zapewnia zgodność zawartości pamięci cache z pamięcią 

główną

główną

ELEMENTY SYSTEMU PAMIĘCI CACHE

ELEMENTY SYSTEMU PAMIĘCI CACHE

background image

Zestaw 1

Zestaw 1

Strona 1

Strona 1

Strona 0

Strona 0

Strona 0

Strona 0

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Strona 1

Strona 1

Strona 0

Strona 0

Strona 2

Strona 2

Dane 1

Dane 1

Dane 2

Dane 2

Dane 3

Dane 3

Dane 3

Dane 3

Dane 2

Dane 2

Dane 4

Dane 4

Dane 1

Dane 1

O1

O1

O2

O2

O3

O3

Katalog cache 

Katalog cache 

(TAG-RAM)

(TAG-RAM)

Bank cache

Bank cache

O4

O4

Dane 4

Dane 4

Strona 

Strona 

2

2

Bank danych i katalog pamięci cache (TAG-

Bank danych i katalog pamięci cache (TAG-

RAM)  tworzą  tzw.  jednoblokową  pamięć 

RAM)  tworzą  tzw.  jednoblokową  pamięć 

asocjacyjną

asocjacyjną

Pamięć 

cache 

stanowi 

jeden 

blok 

Pamięć 

cache 

stanowi 

jeden 

blok 

podzielony na zestawy

podzielony na zestawy

Pamięć  główna  dzielona  jest  na  strony  o 

Pamięć  główna  dzielona  jest  na  strony  o 

rozmiarze 

równym 

rozmiarowi 

bloku 

rozmiarze 

równym 

rozmiarowi 

bloku 

pamięci  cache.  Strony  podobnie  jak  blok 

pamięci  cache.  Strony  podobnie  jak  blok 

pamięci cache dzielone są na zestawy

pamięci cache dzielone są na zestawy

Każdy  zestaw  w  pamięci  cache  ma  swoją 

Każdy  zestaw  w  pamięci  cache  ma  swoją 

pozycję  w  katalogu  (TAG-RAM)  -  zawiera 

pozycję  w  katalogu  (TAG-RAM)  -  zawiera 

adres skąd pochodzi dany zestaw

adres skąd pochodzi dany zestaw

Każdy zestaw jest wpisywany na miejsce w 

Każdy zestaw jest wpisywany na miejsce w 

pamięci  cache  do  zestawu  o  numerze 

pamięci  cache  do  zestawu  o  numerze 

zgodnym z numerem zestawu w stronie

zgodnym z numerem zestawu w stronie

Pamięć 

Pamięć 

główna

główna

ORGANIZACJA PAMIĘCI CACHE

ORGANIZACJA PAMIĘCI CACHE

background image

Bank  danych  i  katalog  pamięci  cache  (TAG-RAM)  tworzą  tzw. 

Bank  danych  i  katalog  pamięci  cache  (TAG-RAM)  tworzą  tzw. 

jednoblokową pamięć asocjacyjną

jednoblokową pamięć asocjacyjną

Pamięć cache stanowi jeden blok podzielony na zestawy

Pamięć cache stanowi jeden blok podzielony na zestawy

Pamięć  główna  dzielona  jest  na  strony  o  rozmiarze  równym 

Pamięć  główna  dzielona  jest  na  strony  o  rozmiarze  równym 

rozmiarowi  bloku  pamięci  cache.  Strony  podobnie  jak  blok 

rozmiarowi  bloku  pamięci  cache.  Strony  podobnie  jak  blok 

pamięci cache dzielone są na zestawy

pamięci cache dzielone są na zestawy

Każdy  zestaw  w  pamięci  cache  ma  swoją  pozycję  w  katalogu 

Każdy  zestaw  w  pamięci  cache  ma  swoją  pozycję  w  katalogu 

(TAG-RAM) - zawiera adres skąd pochodzi dany zestaw

(TAG-RAM) - zawiera adres skąd pochodzi dany zestaw

Każdy zestaw  jest  wpisywany na  miejsce w pamięci  cache  do 

Każdy zestaw  jest  wpisywany na  miejsce w pamięci  cache  do 

zestawu o numerze zgodnym z numerem zestawu w stronie

zestawu o numerze zgodnym z numerem zestawu w stronie

ORGANIZACJA PAMIĘCI CACHE

ORGANIZACJA PAMIĘCI CACHE

Podsumowanie

background image

Przyczyny niezgodności: 

Przyczyny niezgodności: 

nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w 

nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w 

przypadku trafienia przy zapisie do pamięci)

przypadku trafienia przy zapisie do pamięci)

nastąpił zapis do pamięci głównej bez zapisu do pamięci cache (gdy z 

nastąpił zapis do pamięci głównej bez zapisu do pamięci cache (gdy z 

magistrali głównej korzystał inny zarządca magistrali niż procesor 

magistrali głównej korzystał inny zarządca magistrali niż procesor 

np. transmisja DMA do pamięci głównej)

np. transmisja DMA do pamięci głównej)

Strategie utrzymania zgodności: 

Strategie utrzymania zgodności: 

Write-through (zapis do pamięci cache powoduje jednoczesny  zapis 

Write-through (zapis do pamięci cache powoduje jednoczesny  zapis 

do pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się 

do pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się 

informacje do wolnej pamięci głównej)

informacje do wolnej pamięci głównej)

Buforowane (opóźnione) write-through (jak wyżej ale zapis do bufora 

Buforowane (opóźnione) write-through (jak wyżej ale zapis do bufora 

i dopiero później z bufora do pamięci głównej aby nie spowalniać 

i dopiero później z bufora do pamięci głównej aby nie spowalniać 

pracy)

pracy)

Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka 

Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka 

potrzeba - operacje bardzo skomplikowane)

potrzeba - operacje bardzo skomplikowane)

Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w 

Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w 

pamięci cache, gdyż nie jest możliwe zapewnienie zgodności, np. obszar 

pamięci cache, gdyż nie jest możliwe zapewnienie zgodności, np. obszar 

pamięci RAM karty sieciowej, gdzie zapis może realizować procesor przez 

pamięci RAM karty sieciowej, gdzie zapis może realizować procesor przez 

magistralę systemową  jak i sterownik sieci (nie ma możliwości śledzenia 

magistralę systemową  jak i sterownik sieci (nie ma możliwości śledzenia 

magistrali sieci). W systemie muszą więc istnieć układy NCA (

magistrali sieci). W systemie muszą więc istnieć układy NCA (

non-cachable 

non-cachable 

access

access

) uniemożliwiające niektóre zapisy do pamięci cache.

) uniemożliwiające niektóre zapisy do pamięci cache.

ZAPEWNIENIE ZGODNOŚCI PAMIĘCI 

ZAPEWNIENIE ZGODNOŚCI PAMIĘCI 

CACHE

CACHE

background image

Pamięć cache (zwłaszcza typu Look-through) możer występować:

Pamięć cache (zwłaszcza typu Look-through) możer występować:

wewnątrz procesora - pamięć cache pierwszego poziomu (L1-  lovel 1),

wewnątrz procesora - pamięć cache pierwszego poziomu (L1-  lovel 1),

pamięć zewnętrzna - pamięć drugiego poziomu (L2).

pamięć zewnętrzna - pamięć drugiego poziomu (L2).

Pamięć tego typu pojawiła się po raz pierwszy w procesorach 80486.

Pamięć tego typu pojawiła się po raz pierwszy w procesorach 80486.

Pamięć  L2  jest  znacznie  większa  od  L1,  dzięki  czemu  jeśli  nie  nastąpiło 

Pamięć  L2  jest  znacznie  większa  od  L1,  dzięki  czemu  jeśli  nie  nastąpiło 

„trafienie”  w  pamięci  L1  to  istnieje  duża  szansa  trafienia  do  L2  (oczywiście 

„trafienie”  w  pamięci  L1  to  istnieje  duża  szansa  trafienia  do  L2  (oczywiście 

informacja  z  pamięci  L1  znajduje  się  w  pamięci  L2)  -  przyspiesza  to  pracę 

informacja  z  pamięci  L1  znajduje  się  w  pamięci  L2)  -  przyspiesza  to  pracę 

systemu.

systemu.

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

8048

8048

6

6

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

CACHE 1-go poziomu

CACHE 1-go poziomu

Blok sterowania 

Blok sterowania 

magistralą

magistralą

S

y

g

n

a

ły

 s

te

ru

c

e

S

y

g

n

a

ły

 s

te

ru

c

e

CACHE 2-go poziomu

CACHE 2-go poziomu

Magistrala lokalna

Magistrala lokalna

Układy 

Układy 

logiczne 

logiczne 

NCA

NCA

Sygnały sterujące

Sygnały sterujące

PAMIĘĆ CACHE DRUGIEGO POZIOMU

PAMIĘĆ CACHE DRUGIEGO POZIOMU

Pamięć L1 jest podzielona na dwa bloki: 

Pamięć L1 jest podzielona na dwa bloki: 

danych 

danych 

rozkazów, 

rozkazów, 

działa z częstotliwością pracy CPU, pojemności rzędu kilkudziesięciu 

działa z częstotliwością pracy CPU, pojemności rzędu kilkudziesięciu 

KB; 

KB; 

Pamięć  trzeciego  poziomu  L3

Pamięć  trzeciego  poziomu  L3

  jest  oddzielnym  układem  na  płycie 

  jest  oddzielnym  układem  na  płycie 

głównej.

głównej.

Stosowana jest zazwyczaj w serwerach i wydajnych stacjach roboczych.

Stosowana jest zazwyczaj w serwerach i wydajnych stacjach roboczych.

Jest wolniejsza od CPU, pojemność około kilku MB.

Jest wolniejsza od CPU, pojemność około kilku MB.

background image

DZIĘKUJĘ ZA UWAGĘ ! 

DZIĘKUJĘ ZA UWAGĘ ! 

background image

Zjawisko lokalności

Zjawisko lokalności

 - procesor odwołuje się najczęściej do pamięci (

 - procesor odwołuje się najczęściej do pamięci (

trafienie

trafienie

w pewnym niewielkim obszarze (w okolicach danego programu) - bardzo 

w pewnym niewielkim obszarze (w okolicach danego programu) - bardzo 

rzadko do obszarów odległych. Stąd stosowanie szybkich pamięci 

rzadko do obszarów odległych. Stąd stosowanie szybkich pamięci 

kieszeniowych (cache) zawierających właśnie taki lokalny obszar pamięci. 

kieszeniowych (cache) zawierających właśnie taki lokalny obszar pamięci. 

0

0

1

1

q-1

q-1

1 blok

1 blok

2 blok

2 blok

k-1 blok

k-1 blok

k-2 blok

k-2 blok

...

...

0

0

1

1

m-1

m-1

2

2

m-2

m-2

q słów

q słów

log

log

2

2

k

k

pamięć operacyjna

pamięć operacyjna

pamięć kieszeniowa

pamięć kieszeniowa

zawiera tylko 

zawiera tylko 

m

m

 spośród

 spośród

 k

 k

 bloków 

 bloków 

(k>>m)

(k>>m)

Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache 

Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache 

(

(

chybienie

chybienie

) to następuje wymiana zawartości jednej komórki pamięci 

) to następuje wymiana zawartości jednej komórki pamięci 

kieszeniowej. 

kieszeniowej. 

Nr 

Nr 

bloku

bloku

PAMIĘĆ KIESZENIOWA 

PAMIĘĆ KIESZENIOWA 

(przypomnienie)

(przypomnienie)


Document Outline