wykl04

wykl04



Wykład 4

Pamięć podręczna


Lokalność odniesień

Zwykle kod i dane nie są „porozrzucane" przypadkowo po całej dostępnej przestrzeni adresowej w pamięci RAM. Większość odwołań do pamięci w trakcie wykonywania programu odbywa się przez pewien czas pracy mikroprocesora w wąskim obszarze. Zjawisko to jest określane mianem iokainości odniesień, można je uzasadnić intuicyjnie w następujący sposób:

O Z wyjątkiem rozkazów skoku i wywołania procedury, realizacja programów ma charakter sekwencyjny. Tak więc, w większości przypadków następny rozkaz przewidziany do pobrania z pamięci następuje bezpośrednio po ostatnio pobranym rozkazie.

O Rzadkością jest występowanie w programach długich, nieprzerwanych sekwencji wywołań procedury (procedura wywołuje procedurę itd.), a potem długiej sekwencji powrotów z procedur. Wymagałoby to ciągłego odwoływania się do oddalonych od siebie obszarów pamięci głównej, zawierających kody poszczególnych procedur.

<1 Większość pętli (konstrukcji bardzo często występujących w programach) składa się z małej liczby wielokrotnie powtarzanych rozkazów. Podczas iteracji następuje kolejne powtarzanie zwartej części programu.

O W wielu programach znaczna część obliczeń obejmuje przetwarzanie struktur danych, takich jak tablice lub szeregi rekordów ułożone kolejno w pamięci operacyjnej. Tak więc procesor pobiera dane zapisane w sposób uporządkowany w małym jej fragmencie.

Można przyjąć z dobrym prawdopodobieństwem (np. 0,9) że większość odwołań do pamięci mieścić się będzie w bloku o rozmiarze nie przekraczającym np. 16 kB._


•    Lokalność odniesień - przesłanki tworzenia pamięci podręcznej

•    Pamięć podręczna - podstawy

•    Struktura pamięci podręcznej

•    Pamięć podręczna - działanie

•    Właściwości pamięci podręcznej

•    Funkcja odwzorowania

-    Odwzorowanie bezpośrednie

-    Odwzorowanie skojarzeniowe

-    Odwzorowanie sekcyjno-skojarzeniowe

•    Algorytmy zastępowania

•    Problemy zapisu

•    Rozmiar bloku

•    Topologie pamięci

•    Liczba pamięci podręcznych

•    Trójpoziomowa pamięć podręczna - ITANIUM

•    Struktura logiczna pamięci podręcznej

•    Współczynnik trafień


Pamięć podręczna (cacha)


Pamięć podręczna - podstawy

4Pamięć podręczna = sposób na zbudowanie pamięci o szybkości

właściwej dla szybkich (ale mało pojemnych pamięci) i pojemności jaką cechują się pamięci o dużej pojemności (ale wolne).

£ Pamięć podręczna zawiera kopię części zawartości pamięci głównej.

Gdy procesor zamierza odczytać słowo w pamięci, najpierw następuje sprawdzenie, czy słowo to nie znajduje się w pamięci podręcznej. Jeśli tak, to słowo jest dostarczane do procesora. Jeśli nie, to blok pamięci głównej zawierający ustaloną liczbę słów jest wczytywany do pamięci podręcznej, a następnie słowo jest dostarczane do procesora.

Błock Transfer

CPU


(*)    Adm


Struktura pamięci podręcznej



BI #1

Zotca

lik Bk* /

l... - J BI #7

BI #M


a)    Pamięć główna

b)    Pamięć podręczna (cache)


2*-l


wierszy zawierających K słów każdy, a liczba wierszy jest znacząco mniejsza od liczby bloków w pamięci głównej (C«M). W każdej chwili, pewien zespół bloków pamięci głównej pozostaje w wierszach pamięci podręcznej.


Pamięć ołówna składa się z 2" adresowalnych słów, przy czym każde słowo ma jednoznaczny adres n-bitowy. Aby było możliwe odwzorowywanie pamięć ta składa się z pewnej liczby bloków o stałej długości, zawierających K słów każdy. Tak więc występuje M=2n/K bloków.



Właściwości pamięci podręcznej


Zagadnienia charakterystyczne dla pamięci podręcznych


i t Pojemność pamięci ■J Rodzaj odwzorowania:

•    bezpośrednie

•    skojarzeniowe

•    sekwencyjno - skojarzeniowe


Algorytm wymiany O najmniej ostatnio używany (LRU) (\ pierwszy wszedł - pierwszy wychodzi (FIFO)

O najrzadziej używany (LFU)

O swobodny ^ £ Spójność. Sposób zapisu

jednoczesny

opóźniony

■) (- Rozmiar bloku ^ Liczba pamięci podręcznych

9 jedno- lub dwupoziomowa • jednolita lub rozszczepiona

Pamięć podręczna - działanie




•ę Jeśli słowo w bloku pamięci jest odczytywane, to odpowiedni blok jest przenoszony do jednego z wierszy pamięci podręcznej.

Ponieważ bloków jest więcej niż wierszy, określony wiersz nie może być jednoznacznie i trwale przypisany określonemu blokowi.

Każdy wiersz zawiera w związku z tym znacznik określający, który blok jest właśnie przechowywany. Znacznik jest zwykle częścią adresu pamięci głównej

Podczas operacji odczytu procesor generuje adres słowa, które ma być odczytane, RA. Jeśli słowo jest zawarte w pamięci podręcznej, jest dostarczane do procesora. W przeciwnym razie blok zawierąjący to słowo jest ładowany do pamięci podręcznej, po czym słowo jest dostarczane do procesora

Właściwości pamięci podręcznej

** Funkcja odwzorowania ** Rodzaj odwzorowania:

bezpośrednie

skojarzeniowe

sekwencyjno - skojarzeniowe

Funkcja odwzorowania


^ Pamięć podręczna zawiera kopię części zawartości pamięci głównej.

^ Wierszy w pamięci podręcznej jest mniej niż bloków pamięci głównej wymagany jest aigorytm odwzorowania bloków pamięci głównej w wierszach pamięci podręcznej (metoda określania który

(*) Adns


blok pamięci głównej aktualnie zajmuje wiersz pamięci podręcznej.

Wybór funkcji odwzorowania dyktuje organizację pamięd podręcznej.


Odwzorowanie bezpośrednie - cz.ll

? Funkcja odwzorowywania może być realizowana za pomocą adresu.

Każdy adres pamięci głównej składa się z 3 pól.

Wykorzystanie części adresu jako numeru wiersza pozwala na jednoznaczne odwzorowanie każdego bloku pamięci głównej w pamięci podręcznej

Wiersz    Stewo

Adres psraieci gtewnq *


8


14    2


Adres słowa (np. bajtu) w pamięci podręcznej

^ Najprostsza metoda odwzorowania = odwzorowanie bezpośrednie, polega na odwzorowywaniu każdego bloku pamięci głównej na tylko jeden wiersz pamięci podręcznej. ^    MahMemwj

Odwzorowywanie: i - numer wiersza cache


i=j modulo m


gdzie:

j - numer bloku pamięci głównej,

m - liczba wierszy w pamięci podręcznej




Odwzorowanie bezpośrednie - cz.HI


| Przykład:

Pojemność cache = 64 KB.

O Bloki po 4 bajty.

Organizacja cache:

214 (16K) wierszy po 4 bajty każdy.

O Pojemność pamięci głównej 16 MB (16M x 1 bajt) o 24-bitowy adres (224 = 16 M).

U

o Dla odwzorowania pamięć główna = 4 M bloków po 4 bajty każdy.

Adres -

Znacz- Wimr^słuwo Dane


OB - przykład odczytu

mk


FFFC

FFF8


Cztemastobitowy numer wiersza jest wykorzystywany jako indeks dostępu do określonego wiersza w pamięci


11221344


podręcznej


0008

0004

0000


FFFC

FFF8


12345678


Znacz1 Dane o1


01    12345678

FF    11223344


00

01

00


87654321 11235813 13579246


Numer

wiersza

3FFF

3FFF


0002

0001

0000


01


I


0008

0004

0000

FFFC

FFF8


0008

0004

0000


Jeśli 8-bitowy znacznik jest zgodny ze znacznikiem aktualnie przechowywanym w tym wierszu, to 2-bitowy numer słowa służy do wyboru jednego z 4 bajtów w tym wierszu

W przeciwnym razie 22-bitowe pole obejmujące znacznik i wiersz jest wykorzystywane do pobrania bloku z pamięci głównej


11235813


87654321

I3570246


ruUfl pWrftna ItKittw    /

• Pobierane bajty:

(tagx2ł‘+wierszx2ł)+0, (tagx2l6+wierszx2J)+1,

(tagx2łł+wierszx2ł)+3,


32 boy —►


Mm punięci 1

Odwzorowanie skojarzeniowe



m=16K=214


i=/modulo 214.


Żadne dwa bloki odwzorowane w tym samym wierszu nie mają takiego samego znacznika.


000000, 000001

000002,000003    !


Wiersz pamięci

Wiersz pamięci

podręcznej

podręcznej

(teoria)

(przykład)

0

0

1

1


Przypisane adresy początkowe (teoria)

0, 4xm,... , 4x(2s-m)

4, 4x(m+1),..., 4x( 2s-m+1)


Przypisane adresy początkowe bloków pamięci głównej i (przykład) 000000, 010000, ..., FF0000

000004,010004, ..., FF0004


m-1


3FFF


4x(m-1), 4x(2m-1) .....4x(2s-1)


00FFFC, 01 FFFC.....

FFFFFC


^k. Odwzorowywanie skojarzeniowe eiiminuje wady odwzorowywania bezpośredniego, gdyż umożliwia ładowanie każdego bloku pamięci głównej do dowolnego wiersza pamięci podręcznej.

Sterujące układy logiczne pamięci podręcznej interpretują adres pamięci po prostu jako znacznik i pole słowa

Pole znacznika jednoznacznie określa biok pamięci głównej. W celu stwierdzenia, czy blok znajduje się w pamięci podręcznej, sterujące układy logiczne pamięci podręcznej muszą jednocześnie zbadać zgodność znacznika wszystkich wierszy.



08 - przykład odczytu

A*m Dioe


• Adres pamięci głównej składa się z 22-bitowego znacznika i 2-bitowego numeru bajtu.

— 32WCy—•» FMnJpćitfanu lf MB


*    W przypadku każdego wiersza pamięci podręcznej 22-bitowy znacznik musi być przechowywany razem z 32-bitowym blokiem danych.

•    W przypadku odwzorowania skojarzeniowego blok do zastąpienia jest wybierany elastycznie, kiedy nowy blok jest wczytywany do pamięci podręcznej.

Sbm


22


2



OSS - przykład odczytu

Przykład: dwa wiersze w każdej sekcji (k=2); 8K sekcji (adresowanych 13-ma bitami)

TtK

•m

11223366

0008

0004

woo

r—

l

ł

{

1

7HC

m

12345671

, J i

;r-'

0006

0004

OOM

11235013

777777T7

i

» i

mc

i ■ i . * \

i i i ■

0001

0004

0000

07*54321

13579246

i , i ■ ,.j i

-33M»-.(13*ilW-jj-«-33bl»— Pnl|łHt|dn l4K«bw

-•—31 bity—w

r»wt< |i*w> i< mb


37634321

11235SI3

13571246


AtettpoitdtMwaąi*


Np. do sekcji #0 przypisane bloki 000000, 00A000, FF1000


13-bitów nru sekcji identyfikuje sekcję (2 wiersze) i określa nr bloku w pamięci głównej (moduio 213)

* Następnie jest sprawdzana zgodność obu wierszy sekcji z numerem znacznika adresu, do którego chcemy uzyskać dostęp.

Pobierany jest bajt o n-rze określonym przez „nr słowa"

Stkjt_Stewo


Odwzorowywanie: m = vxk; i = J moduloy gdzie:

i - numer sekcji pamięci podręcznej,

j - numer bloku pamięci głównej,

m - liczba wierszy pamięci podręcznej.

Za pomocą d bitów precyzuje się jedną z v = 2d sekcji, a s bitów (znacznik -t nr sekcji) określa jeden z 2* bloków pamięci głównej.


W tej metodzie pamięć podręczna jest dzielona na v sekcji, z których każda składa się z k wierszy.

Blok Bj, może być odwzorowywany na dowolny wiersz sekcji „i".

Sterujące układy logiczne pamięci podręcznej interpretują adres pamięci jako trzy pola: znacznik, sekcja i słowo.

I ( I I * I

I . I I I

j^rj

i . | * * i


Maln Mtaiory

H„

H|



•    bezpośrednie (direct mapped) - rozłącznym podzbiorom bloków pamięci głównej przypisano unikatowe wiersze 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

•    całkowicie skojarzeniowe (fully associative) - każdy blok pamięci głównej może by skopiowany do dowolnego wiersza pamięci podręcznej

-    wymiana wiersza konieczna tylko wtedy, gdy wszystkie wiersze są użyte największy współczynnik trafień, brak migotania (thrashing)

•    wielodrożne (set-associative) - rozłącznym podzbiorom bloków pamięci głównej przypisano rozłączne podzbiory (sekcje) wierszy 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 wierszy w sekcji

Właściwości pamięci podręcznej


Algorytm wymiany

o najmniej ostatnio używany (LRU) o pierwszy wszedł - pierwszy wychodzi (FIFO)

° najrzadziej używany (LFU)

T swobodny


Algorytmy wymiany

O Algorytm „najmniej ostatnio używany" {ang. least-recentfy used - LRU).

Algorytm określa, że należy zastąpić ten blok w sekcji, który pozostawał w pamięci podręcznej najdłużej bez odwoływania się do niego.

O Algorytm „pierwszy wchodzi - pierwszy wychodzi" {ang. fistin - firstout-

FIFO).

Polega on na zastępowaniu tego bloku w sekcji, który najdłużej pozostawał w pamięci podręcznej.

O Algorytm „najrzadziej używany" {ang. /east frequent/y used- LFU).

Określa on, że zastępowany jest ten blok w sekcji, którego dotyczyło najmniej odniesień.

r Metodą abstrahującą od ilości odniesień jest przypadkowy wybór wśród i kandydujących wierszy.

Algorytmy wymiany


^Gdy do pamięci podręcznej jest wprowadzany nowy blok, jeden z istniejących bloków musi być zastąpiony.

W przypadku odwzorowywania bezpośredniego istnieje tylko jeden możliwy wiersz dla każdego określonego bloku i wybór nie jest możliwy.

! W przypadku metody skojarzeniowej i sekcyjno-skojarzeniowej : wymagany jest algorytm zastępowania.


Właściwości pamięci podręcznej

n Sposób zapisu

(jednoczesny opóźniony

** Spójność ** Rozmiar pobieranego bloku

Problemy zapisu

Przed zastąpieniem bloku w pamięci podręcznej należy sprawdzić, czy musi on być zaktualizowany w pamięci głównej.

Aigorytm zapisu jednoczesnego (ang. write through).

Przy jej zastosowaniu wszystkie operacje zapisu są prowadzone jednocześnie zarówno do pamięci głównej, jak i do pamięci podręcznej, co zapewnia stałą aktualność danych w pamięci głównej.

O Algorytm zapisu opóźnionego {ang. write back),

Aktualizuje się tylko pamięć podręczną (ustawiany jest bit aktualizacji - UPDATE skojarzony z wierszem pamięci podręcznej).

Przed zastąpieniem blok jest wpisywany do pamięci głównej, gdy UPDATE=1.

ok. 15% udział aktualizacji w operacjach dostępu


Spójność 2 3

Problemy zapisu

*


Problem spójności

Występuje w przypadku organizacji magistralowej, w której pamięć główna jest wspóina, a także gdy więcej niż jedno urządzenie (zwykle procesor) ma pamięć podręczną.

-    procesor zmienia zawartość pamięci podręcznej

-    układ we/wy (inny procesor) zmienia zawartość pamięci głównej

Jeśli dane w jednej pamięci podręcznej są zmieniane, to operacja taka powoduje unieważnienie odpowiedniego słowa nie tyiko w pamięci głównej, ale także w innych pamięciach podręcznych (jeśli to słowo w nich akurat występuje).

Jeśli dane są zmieniane w pamięci głównej, to operacja taka powoduje unieważnienie odpowiedniego słowa w pamięciach podręcznych (jeśli to słowo w nich akurat występuje).


Rozmiar bloku

W przypadku doboru rozmiaru bloku pobieranego do pamięci podręcznej i jednoczesnego zapewnienia zwiększenia liczby trafień należy brać pod uwagę dwa szczególne zjawiska

O Użycie większych bloków powoduje zmniejszenie liczby bloków, które mieszczą się w pamięci podręcznej. Ponieważ każde wpisanie bloku powoduje usunięcie starej zawartości pamięci podręcznej, mała liczba bloków sprawia, że dane są usuwane niedługo po ich pobraniu.

O Gdy blok staje się większy, każde dodatkowe słowo jest dalsze od potrzebnego słowa, staje się więc mniej prawdopodobne jego użycie w niedalekiej przyszłości.

•jjfc Związek między rozmiarem bloku a współczynnikiem trafień jest złożony i uzależniony od stopnia lokalnośd określonego programu.

4 .. 8 słów - blisko optimum

Topologio pamięci

Look - Aside (dostęp bezpośredni)


pmląt

otmcilM

MM


p*ąt

pnlttna

C«Etł«



Procesor odwołuje się do cache wykorzystując magistralę pamięciową. Pamięć podręczna jest podłączona równolegle z pamięcią operacyjną RAM. W takim układzie częstotliwość pracy obu pamięci jest taka sama (komunikacja odbywa się po wspólnej magistrali), tylko czas dostępu dzięki szybkości cache może ulec skróceniu. Wykorzystanie tej samej magistrali nie jest korzystne. Jest ona blokowana przy każdym dostępie procesora do cache i nie może być w tym samym czasie udostępniona innym urządzeniom.

Look - Throgh (dostęp „przez")

Układ pamięci podręcznej pośredniczy w dostępie procesora do RAM. Procesor odwołuje się do układu cache, natomiast ten układ jest dołączony przez magistralę pamięciową do RAM.

Backside (dostęp „z tyłu")

Układ pamięci podręcznej jest dołączony do procesora przez oddzielną magistralę nazywaną BSB (Back Side Bus). Druga magistrala FSB (Front Side Bus) łączy procesor z pamięcią główną. W tym układzie częstotliwości obu magistral są zupełnie niezależne. Możliwe jest też wykorzystanie magistrali FSB przez inne urządzenia zapisujące do pamięci RAM, w czasie gdy procesor komunikuje się z cache po BSB.


Liczba pamięci podręcznych

Kiedy wprowadzono pamięci podręczne, typowy system miał pojedynczą pamięć podręczną. Ostatnio stało się normą wykorzystywanie wielu pamięci podręcznych. Dwoma aspektami tego zagadnienia projektowego są: liczba poziomów pamięci oraz podział lub scalanie pamięci podręcznych.

O w miarę wzrostu gęstości upakowania układów logicznych stało się możliwe dysponowanie pamięcią podręczną wewnątrz tego samego mikroukładu co procesor: określamy to mianem pamięci podręcznej w procesorze (ang. on-chip cache).

O Większość współczesnych projektów zawiera zarówno pamięć podręczną wewnątrzprocesorowa, jak i zewnętrzną. Wynikająca stąd organizacja jest znana jako dwupoziomowa pamięć podręczna, przy czym pamięć wewnętrzna jest oznaczana jako poziom 1 (LI), a zewnętrzna jako poziom 2 (L2).

O jeśli zastosowana jest pamięć podręczna L2 SRAM, to często możliwe jest szybkie pobranie brakującej informacji. Jeśli pamięć SRAM jest dostatecznie szybka, aby dostosować się do szybkości magistrali, to możliwy jest dostęp do danych za pomocą transakcji o zerowym czasie oczekiwania, co stanowi najszybszy rodzaj transferów magistralowych.

Na ogół obecność L2 poprawia wydajność (zależy od współczynników trafień w LI i L2)

Właściwości pamięci podręczna]

Liczba pamięci podręcznych

CPU

LI

L2

(L3)

4+

Main

mem


Struktura logiczna PP

Gdy po raz pierwszy wprowadzono wewnątrzprocesorową pamięć podręczną, w wielu projektach zawierających pojedynczą pamięć podręczną wykorzystywano ją zarówno do przechowywania danych, jak i rozkazów. Obecnie stało się powszechne dzielenie pamięci podręcznej na dwie: jedną przeznaczoną na rozkazy, drugą zaś na dane.

< > Zalety pamięci jednolitej:

Dla danego rozmiaru pamięci podręcznej pamięć jednolita wyróżnia się większym współczynnikiem trafień niż pamięć podzielona, ponieważ automatycznie równoważy ona pobieranie rozkazów z pobieraniem danych. To znaczy, jeśli struktura rozkazów przewiduje o wiele więcej pobrań rozkazów niż danych, pamięć podręczna będzie wykazywała tendencję do wypełniania się rozkazami. Jeżeli natomiast wymagane jest częstsze pobieranie danych, pamięć ta będzie się wypełniała danymi. Upraszcza się układ procesora.

O Zalety pamięci podzielonej:

Kluczową zaletą podzielonej pamięci podręcznej jest to, że eliminowana jest rywalizacja o pamięć podręczną między procesorem rozkazów a jednostką wykonującą. Jest to ważne w każdym rozwiązaniu wykorzystującym potokowe przetwarzanie rozkazów (p. superskalarne).

-J (• Aby określić średni czas dostępu do obiektu, musimy rozważyć nie tylko szybkości obu poziomów pamięci, ale także prawdopodobieństwo, że poszukiwane dane mogą być znalezione w pamięci Ml. Prawdopodobieństwo to iest znane iako współczynnik trafień.

*3 jt Średni czas dostępu;

Ts^HxTl +(\-H)x(Tl +r2)=r, +(l-H)xT2

gdzie:

T, - średni (systemowy) czas dostępu,

Tj - czas dostępu do pamięci Ml (np. pamięci podręcznej, w tym dyskowej),

T2 - czas dostępu do pamięci M2 (np. pamięci głównej, pamięci dyskowej),

H - współczynnik trafień (ułamek czasu, w którym odniesienia są odnajdywane w pamięci Ml).


Współczynnik trafień

Pamięć wyższego poziomu (Ml) jest mniejsza, szybsza i droższa (na bit) niż pamięć niższego poziomu (M2). Pamięć Ml jest wykorzystywana do tymczasowego przechowywania części zawartości większej pamięci M2. Gdy następuje odniesienie do pamięci, przeprowadzana jest próba znalezienia poszukiwanych danych w pamięci Ml. Jeśli się ona powiedzie, wykonywany jest szybki dostęp. Jeśli nie, to odpowiedni blok pamięci M2 jest kopiowany do pamięci Ml, a dostęp następuje za pośrednictwem pamięci Ml. Ze względu na lokalność, jeśli blok został już doprowadzony do pamięci Ml, powinno nastąpić wiele odniesień do tego bloku, co powoduje przyspieszenie obsługi.


PP w systemach wisloprocssorowych

Problem spójności danych. Musi istnieć taki mechanizm zapisu, który pozwala na uaktualnianie wszystkich kopii zawartości tej samej komórki pamięci głównej.    _ _


Rozwiązania programowe

•    Analiza programów w fazie kompilacji i określenie, które dane są narażone na niespójność.

•    System operacyjny i sam program zapobiega kierowaniu takich danych do pamięci podręcznych.

•    Każdy procesor musi je odczytywać zawsze z pamięci głównej i tam zapisywać ich zmiany.

•    Rozwiązanie bardzo nieefektywne pod względem czasu dostępu.

•    Bardziej zaawansowane sposoby polegają na analizie, w którym momencie dane wspólne procesorów mogą być niespójne i tylko wtedy nie są kierowane do cache.

•    W praktyce, część pamięci głównej definiuje się jako wspólną (tak zwaną non-cachable memory), która nie może być kopiowana do pamięci podręcznych. Jeśli dane są narażone na niespójność zapisuje się je właśnie w tym obszarze pamięci głównej systemu.



PP w systemach wialoprocasorowych

Rozwiązania sprzętowe

•    Protokoły katalogowe

-    wprowadzenie tak zwanego katalogu pamięci i specjalnego sterownika, który zapisuje w nim aktualne informacje o kopiach danych przechowywanych przez różne procesory. Sterownik ma możliwość komunikacji ze wszystkimi układami, w wypadku zmiany zawartości pamięci, wysyła do nich rozkazy aktualizacji.

-    Sterownik centralny może zostać przeciążony = zwolnienie pracy systemu.

•    Protokoły podglądania

-    odpowiedzialność za utrzymanie spójności danych rozkłada się na wszystkie sterowniki pamięci podręcznych. Muszą one kontrolować co się dzieje na magistrali komunikacyjnej (podglądać) - w wypadku zmiany danych, których kopia jest w ich cache odpowiednio ją uaktualniać.

-    Muszą tu także być podjęte odpowiednie środki, które zapobiegają przeciążeniu magistrali.

Rozwiązania protokołów podglądania

•    Zapis z unieważnieniem

-    wszystkie dane z pamięci wspólnej są dostępne dla procesorów do odczytu - mogą je kopiować do swoich pamięci podręcznych cache. Jednak jeśli któryś chce zmienić zawartość pamięci, wysyła specjalne powiadomienie - unieważnia wszystkie kopie zmienianego bloku danych pobrane przez inne procesory. Procesor zapisujący musi "dostać" blok wspólnej pamięci na wyłączność na czas jego zmiany. Dopiero po zakończeniu zapisu wszystkie inne procesory mogą z niego korzystać ale teraz odczytają jego aktualną zawartość z pamięci głównej. Przy odwoływaniu się do niego układ cache nie wygeneruje sygnału trafienia, gdyż blok jest już unieważniony w wyniku zmodyfikowania przez inny procesor (status wiersza).

•    Zapis z aktualizacja

-    gdy jeden procesor zmienia jakiś blok pamięci, zostaje on dostarczony do wszystkich innych układów, dzięki czemu pamięci podręczne zawierające jego kopię mogą ją uaktualnić.


Protokół MESI

•    Trafienie odczytu (RH) to procesor pobiera potrzebne mu dane bez zmiany ich aktualnego statusu niezależnie czy w jego pamięci podręcznej są one w stanie zmodyfikowane, wspólne lub wyłączne.

•    Trafienie zapisu (WH):

-    (Wspólny) procesor sygnalizuje zamiar modyfikacji bloku wspólnego. Wszystkie inne procesory posiadające jego kopię unieważniają ją. Po tej operacji blok jest w stanie wyłącznym - jego kopia jest ważna tylko w cache procesora inicjującego zapis. Dokonuje zapisu i ustawia status bloku na zmodyfikowany.

-    (Wyłączny) procesor inicjujący ma już wyłączną kontrolę nad blokiem więc dokonuje jego modyfikacji.

-    (Zmodyfikowany) procesor inicjujący ma ciągle wyłączną kontrolę nad blokiem i kolejny raz go aktualizuje.

Protokół unieważniania zapisu (MESI: modified, exclusive, shared, invalid)

Bity MESI określają Jeden z czterech możliwych statusów odpowiadającego wiersza:

-    Zmodyfikowany (Modified) - dane w wierszu zostały zmodyfikowane (różnią się od odpowiednika w RAM) i są dostępne tylko w tej pamięci podręcznej.

-    Wyłączny (Exclusive) - dane w wierszu są takie same jak w RAM i nie występują w innych pamięciach cache.


-    Wspólny (Shared) - dane w wierszu są takie same jak w RAM i mogą występować w innych pamięciach cache.

-    Nieważny (Invalid) - wierszu nie zawiera ważnych danych

RH - trafienie odczytu

RMS - chybienie odczytu, wspóiny

RME - chybienie odczytu, wyłączny

WH - trafienie zapisu

WM - chybienie zapisu

SHR - śledź trafienie odczytu

SHW - śledź trafienie zapisu lub

odczytu z zamiarem modyfikacji


Protokół MESI

• Chybienie odczytu (RM) - procesor inicjuje odczyt bloku z pamięci głównej. Umieszcza sygnał na magistrali alarmujący wszystkie pozostałe procesory, żeby śledziły tą operację. Możliwe są następujące sytuacje:

-    (ma wyłączny) jeden z pozostałych procesorów ma kopię tego bloku danych w wierszu o statusie wyłączny. Sygnalizuje, że dysponuje tym blokiem, po czym zmienia status swojej kopii bloku na wspólny. Procesor inicjujący odczyt umieszcza blok danych w swojej pamięci podręcznej (w wolnej linijce) i nadaje linijce status wspólny (RME).

-    (ma wspólny) jeden (wiele) procesorów sygnalizuje, że ma kopię bloku w stanie wspólnym w swojej cache. Wtedy procesor iniqujący też umieszcza blok w wolnym wierszu swojej cache i nadaje mu status wspólny (RMS).

-    (ma zmodyfikowany) jeden z pozostałych procesorów ma zmodyfikowaną kopię bloku danych. Wtedy wysyła sygnał anulujący próbę odczytu danych z pamięci głównej, przejmuje sterowanie magistralą i zapisuje w niej swoją kopię bloku danych. Zmienia status zapisywanego wiersza na wspólny (SHR). Procesor inicjujący ponowi próbę odczytu; - odczyta aktualną kopię danych z pamięci głównej, nadając jej status wspóiny.

-    (nie ma) żaden z procesorów nie sygnalizuje posiadania kopii bloku danych w swojej cache; procesor inicjujący odczytuje potrzebne mu dane umieszcza w swoim wierszu cache nadając jej status wyłączny.

Protokół ME8I


• Chybienie zapisu (WM) następuje gdy procesor chce zapisać dane w bloku określonym adresie, a nie znajduje się on w jego cache. Wtedy inicjowany jest odczyt bloku bez zamiaru modyfikacji. Możliwe są następujące sytuacje:

-    (ma zmodyfikowany) jedna z pozostałych pamięci ma kopię tego bloku w wierszu o statusie zmodyfikowany. W takiej sytuacji procesor inicjujący oddaje sterowanie magistralą. Procesor posiadający zmodyfikowaną kopię danych zapisuje ją do pamięci głównej, jednocześnie ustawia ich status odpowiedniego wiersza w swojej cache na nieważny, bo procesor inicjujący dokona za chwilę modyfikacji bloku (SHW). Następnie procesor inicjujący ponawia odczyt bloku, który jest już ważny wyłącznie w jego pamięci podręcznej i może zostać zmodyfikowany.

-    (nie ma) Jeśli żadna inna pamięć podręczna nie ma zmodyfikowanej kopii bloku. Procesor inicjujący odczytuje blok i zapisuje go w swojej cache, po czym modyfikuje. W tym czasie jeśli inne pamięci mają blok w statusie wyłączny lub wspólny zmieniają jego stan na nieważny (SHW).

1

Adresy 24-bitowe, 16M x bajt

2

Do możliwych rozwiązań problemu spójności pamięci podręcznej należą:

^ Obserwowanie magistrali z zapisem jednoczesnym

Każdy sterownik pamięci podręcznej monitoruje linie adresowe w celu wykryda operacji . zapisu do pamięci głównej dokonywanych przez inne jednostki nadrzędne magistrali. Jeśli inna jednostka nadrzędna wpisuje dane do takiej lokacji w pamięci wspólnej, która ! występuje również w pamięci podręcznej, to sterownik pamięci podręcznej unieważnia dostęp do pamięci podręcznej. Strategia ta jest uzależniona od tego, czy wszystkie sterowniki pamięci podręcznych posługują się metodą zapisu Jednoczesnego.

^ Sprzętowe zapewnianie spójności {ang. hardware transparenc/).

Wykorzystywane są dodatkowe rozwiązania sprzętowe zapewniające, że wszystkie aktualizacje pamięci głównej dokonywane za pośrednictwem pamięci podręcznej znajdują 1 odzwierciedlenie we wszystkich pamięciach podręcznych. Jeśli jeden procesor modyfikuje słowo w swojej pamięci podręcznej, aktualizacja ta jest wprowadzana również do pamięci głównej. Ponadto, wszystkie odpowiednie słowa w pozostałych pamięciach podręcznych są podobnie aktualizowane.

3

Pamięć wyłączona ze współpracy z pamięcią podręczną {ang. non-cachable memory).

Tytko część pamięci głównej jest wspólna dla więcej niż jednego procesora I jest oznaczana jako wyłączona ze współpracy z pamięcią podręczną.

W takim systemie wszystkie operacje dostępu do tych lokalizacji odbywają się bezpośrednio do pamięci głównej.


Wyszukiwarka

Podobne podstrony:
wykl04c Wykład 4Pamięć podręczna Lokalność odniesień Zwykle kod i dane nie są „porozrzucane"
wykl04 Wykład 4Pamięć podręczna Lokalność odniesień Zwykle kod i dane nie są „porozrzucane"
wykl04c Wykład 4Pamięć podręczna Lokalność odniesień Zwykle kod i dane nie są „porozrzucane"
Cel ćwiczeń: -Tożsamy z celami uwzględnionymi w celach wykładu. Proponowane podręczniki: •
Cel ćwiczeń: -Tożsamy z celami uwzględnionymi w celach wykładu. Proponowane podręczniki: •
e.    Wykładowca prosi studentów, aby odnieśli znane im już pojęcia do kultury j
INFORMACJA LOKALNA O ZAWODZIEFILOLOG ANGIELSKI -kod 233008 Filolog angielski (kod zawodu-233008) to
Wykład 73. Kwasy nukleinowe - budowa i funkcje 3.3. Kod
Wykład 8 (16) ZMIANY SKÓRNE W PRZEWLEKŁEJ POSTACI GVHB 7 / / Objawy kliniczne są dosyć znamienne i
-    Wykłady w ogólnej liczbie 15 godzin, zwykle 1 godzinę zegarową 1 x w tygodniu
Wykłady w Korpusie Morskim rozpoczynały się zwykle w połowie września, gdy kadeci starszych kursów p
Wykłady z położnictwa Podręcznik dla studentów położnictwa
Wykłady z położnictwa Podręcznik dla studentów położnictwa Adoau Mapłnlr nu Lo*lk a-medJca
img197 197 Utrzymanie odniesionej szybkości transmisji na nie zmienionym poziomie 2lbit/s/Hz] można
3TEMAT NUMERU 9 lutego 2012 Gazeta LokalnaSzok! Zahil konkubinę Will ■ V f I 1 I I   &nb
Rapid Prototyping - Podręcznik Minos (powstaje siatka wielokątna, której powierzchnie są płaskie); o

więcej podobnych podstron