Cykl rozkazowy, w informatyce ciąg czynności, które wykonuje układ sterowania jednostki centralnej w czasie realizowania jednego rozkazu



Pobieranie 7.28 Mb.
Strona34/52
Data30.10.2017
Rozmiar7.28 Mb.
1   ...   30   31   32   33   34   35   36   37   ...   52

Linijka – (ang. cache line) najmniejsza porcja informacji, jaką pamięć podręczna może wymieniać z pamięcią główną, zwykle 16 lub 32 bajty.
TAG-RAM – katalog zawierający numery linijek, ich status i ewentualnie numery stron pamięci głównej znajdujące się w pamięci podręcznej.
Rodzaje mapowania pamięci głównej w pamięci podręcznej:

– mapowanie bezpośrednie,

– pełna asocjacja,

– asocjacja zespołowa.


Mapowanie bezpośrednie (ang. direct mapping) – pamięć główna jest dzielona na strony zgodne z wymiarem bloku pamięci podręcznej. Porządek linijek jest narzucony sposobem ich numeracji. Pamięć podręczna zawiera kopię jednej strony. Zaleta – prostota i łatwość wyszukiwania linijki, wada – odwołanie do linijki nieznajdującej się w pamięci podręcznej, tzw. chybienie, wymaga załadowania nowej strony, a więc również aktualizowania całej pamięci podręcznej (np. Motorola MC 68020, DEC Alpha 21164).
Pamięć główna

Linijka 0

Strona 0

Linijka n

Linijka 0

Strona 1

Linijka n



Linijka 0

Strona n

Linijka n

Pamięć podręczna



Linijka 0

Linijka 1



Linijka n

Rys. VIII-3a. Odwzorowanie typu bezpośredniego
Pełna asocjacja (ang. fully associative) – pamięć główna nie jest dzielona na strony i nie jest narzucony porządek umieszczania linijek. Zaleta – duża elastyczność, tj. w przypadku chybienia, kopiowana jest tylko jedna linijka, wada – konieczność przeszukiwania całego TAG-RAM w celu odnalezienia linijki (np. Zilog 80000, bufor TLB w Intel Pentium).
Pamięć główna

Linijka 0

Linijka 1

Linijka 2



Linijka n

Pamięć podręczna



Linijka 2

Linijka 0



Linijka k

Rys. VIII-3b. Odwzorowanie typu pełna asocjacja
Asocjacja zespołowa (sekcyjna/blokowa) (ang. set associative) – kombinacja poprzednich rozwiązań; pamięć główna jest dzielona na strony zgodne z wymiarem bloku nazywanego kanałem (ang. way) pamięci podręcznej. Porządek linijek jest narzucony sposobem ich numeracji. Strona może znajdować się tylko w jednym kanale (np. Intel Pentium/Core, AMD Athlon).
Pamięć główna

Linijka 0

Strona 0

Linijka n

Linijka 0

Strona 1

Linijka n



Linijka 0

Strona n

Linijka n

Pamięć podręczna

Linijka 0

Linijka 1

...

Linijka n



Linijka 0

Linijka 1



Linijka n

Kanał 0



Kanał k


Rys. VIII-3c. Odwzorowanie typu asocjacja zespołowa
Reguły zastępowania bloków danych w pamięci podręcznej:

  • algorytm LRU (ang. least recently used), czyli najdawniej używany, wada - wymaga przechowywania historii odwołań do każdego bloku pamięci podręcznej (np. Intel Core);

  • algorytm FIFO (ang. first in first out), czyli najdłużej przechowywany w pamięci podręcznej, wada - blok jest usuwany nawet, jeśli był ostatnio używany (np. DEC VAX);

  • algorytm LFU (ang. least frequently used), czyli najrzadziej używany, wada – wymaga stosowania liczników odwołań do każdego bloku pamięci podręcznej;

  • algorytm losowy (swobodny) (np. AMD K6),

--------

Intel Core – pamięć poziomu L2 zawiera kopię linijek z poziomu L1 (patrz rys. VIII-2).



AMD Athlon – pamięć poziomu L2 (tzw. „victim cache”) zawiera wyłącznie linijki wyrzucone z poziomu L1; pobieranie linijek z pamięci głównej do L1 odbywa się z pominięciem poziomu L2.
Strategie zapisywania z pamięci podręcznej do pamięci głównej:

  • zapis natychmiastowy (ang. write through), czyli po zapisie do pamięci podręcznej jest uaktualniana zawartość pamięci głównej; wada – spada wydajność systemu, gdyż każdy zapis odnosi się również do pamięci głównej (np. Intel 486);

  • zapis opóźniony (ang. write back), czyli blok danych z pamięci podręcznej jest odsyłany do pamięci głównej, jeśli wystąpiła konieczność pobrania nowego bloku; wada – w sytuacji zawieszenia systemu (aplikacji) lub systemach wieloprocesorowych, pamięć podręczna zawiera inne dane niż pamięć główna, występuje tzw. niespójność pamięci (np. Intel Core).


Problem niespójności pamięci podręcznych i metody przeciwdziałania
Dany blok danych, zwany linijką, może występować jednocześnie w pamięciach podręcznych wielu procesorów lub różnych poziomach pamięci podręcznej procesora. Jeżeli procesory mogą swobodnie modyfikować zawartość własnych pamięci podręcznych, to może powstać niespójny obraz pamięci (ang. cache coherence).

Rys. VIII-4. Powielenie bloku danych w pamięciach podręcznych procesorów A i B


W systemach jednoprocesorowych (jednordzeniowych) problem niespójności danych w pamięci podręcznej i głównej występuje również, jeśli jest realizowana transmisja DMA.

Rys. VIII-5. Problem niespójności w przypadku transmisji DMA


Rozwiązania problemu spójności:

  • programowe - oznakowanie wspólnych linijek w fazie kompilacji i blokowanie ich przesyłu do pamięci podręcznych; linijki powodujące niespójność są znakowane (ang. non-cachable memory), wówczas każdy procesor musi pobierać je z pamięci głównej i tam je zapisywać:

  • stałe zapobieganie (nieefektywne gdy kilka procesorów jedynie czyta te dane),

  • czasowe zapobieganie - wymaga dynamicznej analizy działania programu (ang. profiling) z określeniem okresów bezpiecznych dla wspólnych danych;

  • sprzętowe - analiza kodu na etapie wykonywania; wymagane są rozbudowane sterowniki lokalnej pamięci podręcznej lub rozbudowany sterownik pamięci głównej;

  • protokoły katalogowe,

  • protokoły podglądania.


Protokoły katalogowe (ang. directory-based protocols) bazują na przechowywaniu w pamięci głównej zbioru informacji o zawartości poszczególnych pamięci podręcznych oraz aktualnie wydanych prawach dostępu. Niezbędny jest układ logiczny, tzw. arbiter (jedna z funkcji sterownika pamięci głównej), nadzorujący przesyłanie danych pomiędzy pamięciami podręcznymi a pamięcią główną. Przed udzieleniem prawa wyłączności do zapisu jednemu z procesorów arbiter żąda unieważnienia kopii linijki przechowywanej w pozostałych procesorach.
Protokoły podglądania (ang. snooping protocols) - utrzymywanie spójności spoczywa na wszystkich procesorach. Stosowane są dwie metody podglądania: zapis z unieważnieniem (ang. write-invalidate) (podobnie jak w protokole katalogowym) oraz zapis z aktualizacją (ang. write-broadcast), który polega na rozesłaniu zaktualizowanej wartości do wszystkich procesorów przechowujących wspólną linijkę. W zapisie z unieważnieniem stosuje się dwubitowe pole stanu dla każdej linijki, określające jeden z możliwych stanów: zmodyfikowany, wyłączny, wspólny, nieważny (ang. Modified, Exclusive, Shared, Invalid) - stąd nazwa protokół MESI5 (stosowany m.in. w systemach z procesorami Core, Athlon, Power PC). Inne mniej znane protokoły: "Illinois" stosowany SGI Power and Challenge, "Firefly" - SPARCCenter 2000.
Znaczenie poszczególnych stanów:

  • Zmodyfikowany. Zawartość linijki pamięci podręcznej została zmieniona, a więc różni się od tej w pamięci głównej.

  • Wyłączny. Zawartość linijki pamięci podręcznej jest taka sama jak w pamięci głównej i nie występuje w innych pamięciach podręcznych (może być modyfikowana).

  • Wspólny. Linijka pamięci podręcznej jest taka sama jak w pamięci głównej i może, (ale nie musi) występować w innych pamięciach podręcznych (nie może być modyfikowana).

  • Nieważny. Linijka nie zawiera ważnych danych.

Chybienie (ang. miss) odczytu/zapisu – adres docelowy nie znajduje się w pamięci podręcznej.



Trafienie (ang. hit) odczytu/zapisu – adres docelowy znajduje się w pamięci podręcznej.
Możliwe przejścia do innych stanów.

Opis skrótów:



PI – procesor inicjujący, PP – pozostałe procesory, BS – bity stanu, pp – pamięć podręczna, pg – pamięć główna.
Trafienie odczytu:

  • BS(PI)=zmodyfikowany/wspólny/wyłączny => odczyt danych z pp(PI);

  • BS(PI)=nieważny => postępowanie jak w przypadku Chybienie odczytu.


Chybienie odczytu:

  • BS(PP)=wyłączny/wspólny => BS(PP)=wspólny, odczyt bloku z pg do pp(PI), odczyt danych z pp(PI), BS(PI)=wspólny;

  • BS(PP)=zmodyfikowany => zapis bloku z pp(PP) do pg, BS(PP)=wspólny, odczyt bloku z pg przez PI, odczyt danych z pp(PI), BS(PI)=wspólny;

  • w pp(PP) nie ma kopii bloku => odczyt bloku z pg do pp(PI), odczyt danych z pp(PI), BS(PI)=wyłączny;


Trafienie zapisu:

  • BS(PI)=wspólny => BS(PP)=nieważny, zapis danych do pp(PI), BS(PI)=zmodyfikowany;

  • BS(PI)=wyłączny => zapis danych do pp(PI), BS(PI)=zmodyfikowany;

  • BS(PI)=zmodyfikowany => zapis danych do pp(PI).


Chybienie zapisu:

  • BS(PP)=zmodyfikowany => zapis bloku z pp(PP) do pg, BS(PP)=nieważny, odczyt bloku z pg do pp(PI), zapis danych do pp(PI), BS(PI)=zmodyfikowany;

  • BS(PP)=wyłączny/wspólny => odczyt bloku z pg do pp(PI), zapis danych do pp(PI), BS(PP)=nieważny), BS(PI)=zmodyfikowany.


Współpraca pamięci głównej z pamięcią wirtualną
Plik strony (ang. page file) – obszar pamięci masowej (wirtualnej), w której przechowuje się dane niemieszczące się w pamięci głównej.
Segmentacja - metoda implementacji pamięci wirtualnej, w której pamięć procesu jest dzielona na różnych rozmiarów segmenty; pobierany z pamięci wirtualnej segment jest umieszczany w dowolnym, ale jednolitym obszarze pamięci głównej; każdy segment jest charakteryzowany przez adres bazowy i rozmiar.
Stronicowanie (ang. paging) – metoda implementacji pamięci wirtualnej, w której pamięć główna i wirtualna są dzielone na jednakowej wielkości bloki.
Strona (ang. page) – jeden z bloków jednakowej wielkości, na które jest dzielona pamięć wirtualna (pamięć logiczna procesu).
Ramka strony (ang. frame) – jeden z bloków jednakowej wielkości, na które jest dzielona pamięć główna.




Pobieranie 7.28 Mb.

Share with your friends:
1   ...   30   31   32   33   34   35   36   37   ...   52




©operacji.org 2020
wyślij wiadomość

    Strona główna
warunków zamówienia
istotnych warunków
przedmiotu zamówienia
wyboru operacji
Specyfikacja istotnych
produktu leczniczego
oceny operacji
rozwoju lokalnego
strategii rozwoju
kierowanego przez
specyfikacja istotnych
Nazwa przedmiotu
Karta oceny
ramach działania
przez społeczno
obszary wiejskie
dofinansowanie projektu
lokalnego kierowanego
Europa inwestująca
Regulamin organizacyjny
przetargu nieograniczonego
kryteria wyboru
Kryteria wyboru
Lokalne kryteria
Zapytanie ofertowe
Informacja prasowa
nazwa produktu
Program nauczania
Instrukcja obsługi
zamówienia publicznego
Komunikat prasowy
programu operacyjnego
udzielenie zamówienia
realizacji operacji
opieki zdrowotnej
przyznanie pomocy
ramach strategii
Karta kwalifikacyjna
oceny zgodno
Specyfikacja techniczna
Instrukcja wypełniania
Wymagania edukacyjne
Regulamin konkursu
lokalnych kryteriów
strategia rozwoju
sprawozdania finansowego
ramach programu
ramach poddziałania
kryteriów wyboru
operacji przez
trybie przetargu