Systemy Komputerow- pamięć podręczna, TZN, Systemy Operacyjne i Sieci


Systemy Komputerowe - wykłady

14. Koncepcja pamięci podręcznej (cache)

0x01 graphic


Koncepcja pamięci kieszeniowej wynika bezpośrednio z własności pamięci statycznych (SRAM) i dynamicznych (DRAM). Jak było to przedstawione wcześniej pamięci statyczne są szybsze od pamięci dynamicznych, natomiast pobierają więcej energii i są zdecydowanie droższe. Ponadto są układami o niższym stopniu scalenia. Z tych powodów nie jest możliwe zbudowanie całej pamięci operacyjnej z pamięci statycznych. Z drugiej strony pamięci dynamiczne są zbyt wolne dla szybkich współczesnych procesorów i wymagają przy dostępie długich stanów oczekiwania. Aby zmniejszyć ten efekt, wprowadzono koncepcję wykorzystującą dwa rodzaje pamięci. Pamięć systemu składa się z relatywnie dużej pamięci operacyjnej (rzędu kilkudziesięciu do kilkuset MB) zbudowanej z pamięci dynamicznych oraz z mniejszej (kilka do kilkuset KB), lecz znacznie szybszej pamięci kieszeniowej zbudowanej z pamięci statycznych. Zastosowany w systemie sterownik koordynuje współpracę pamięci z pozostałymi układami. W przypadku operacji na pamięci sterownik (tzw. sterownik pamięci cache) ten sprawdza, czy poszukiwana informacja znajduje się w pamięci cache. Jeżeli tak, operacja jest wykonywana na pamięci cache, bez stanów oczekiwania. Sytuacja taka nazywana jest trafieniem. W przypadku nieobecności informacji w pamięci cache, następuje dostęp do pamięci operacyjnej z koniecznymi stanami oczekiwania. Jest to tak zwane chybienie.

Elementy i organizacja systemu pamięci cache

System pamięci kieszeniowej cache składa się z trzech zasadniczych elementów:

W celu zapewnienia możliwości szybkiego sprawdzenia, czy komórka pamięci, na której ma być wykonana operacja, jest odwzorowana w pamięci cache, bank danych i katalog, tworzą tzw. jednoblokową pamięć asocjacyjną. 

Pamięć cache stanowi jeden blok, który jest dzielony na zestawy. Pamięć główna dzielona jest na strony o rozmiarze równym rozmiarowi bloku pamięci cache. Strony są z kolei również dzielone na zestawy, przy czym ilość zestawów w stronie jest identyczna jak w bloku pamięci cache. Każdy zestaw w pamięci cache ma swoją pozycję w katalogu TAG-RAM. Zawiera ona adres strony z którego pochodzi dany zestaw. Każdy zestaw jest wpisywany na miejsce w pamięci cache do zestawu o numerze zgodnym z numerem zestawu na stronie. Umożliwia to szybkie sprawdzenie obecności zestawu poprzez sprawdzenie adresu bloku w określonej pozycji katalogu.

0x01 graphic

Rys 14.1. Organizacja jednoblokowej pamięci cache (przykład wymiany danych)

W przypadku wymiany zestawu na danej pozycji modyfikowany jest adres bloku w pozycji katalogu odpowiadającej temu zestawowi. Analizując przykład na rys 14.1. łatwo zauważyć, że w wyniku np. odczytu odpowiednich komórek w pamięci cache są odwzorowane zestawy 3 i 4 ze strony 0 oraz zestaw 2 ze strony 1. Jeżeli w tej sytuacji adres skierowany przez procesor do pamięci kieszeniowej dotyczy jednego z tych zestawów wówczas mamy do czynienia z trafieniem. Jest więc możliwość bezpośredniego wykorzystania dostępnych w banku pamięci cache danych. 

Jeżeli w kolejnym (czwartym) kroku nastąpi odwołanie do zestawu 4 na stronie 2, to danych tych nie da się odczytać z pamięci kieszeniowej, ale trzeba się odwołać wprost do pamięci RAM. Przy okazji zestaw ten zostanie wpisany w banku danych na miejsce istniejącego zestawu 4 ze strony 0. Jednocześnie w pozycji katalogu cache odpowiadającej danemu zestawowi w miejsce strony 0 zostanie wpisana strona 2. Mówi się wówczas, że nastąpiło chybienie. 

0x01 graphic

Architektura systemu z pamięcią cache

Organizacja pamięci kieszeniowej może być realizowana w oparciu o jedną z dwóch podstawowych rodzajów architektury systemu:

Architektura  Look-through

Sposób połączenia pamięci kieszeniowej przy architekturze Look-through pokazano na rys. 14.2.

0x01 graphic

Rys. 14.2. Architektura  Look-through

Jak widać pamięć cache połączona jest magistralą lokalną z procesorem oddzielając go od reszty systemu. W przypadku trafienia główna magistrala systemu nie jest używana, co powoduje dodatkowe zwiększenie szybkości działania systemu, poprzez możliwość wykorzystania tej magistrali przez innego zarządcę (np. sterownik DMA). Żądanie dostępu do pamięci głównej tylko w przypadku chybienia. Inicjowany jest wówczas cykl magistrali głównej z koniecznymi stratami oczekiwania.

Architektura  Look-aside

Sposób połączenia pamięci kieszeniowej przy architekturze Look-aside pokazano na rys. 14.3.

0x01 graphic

Rys. 14.3. Architektura Look-aside

W tej architekturze, w przeciwieństwie do architektury Look-through, procesor nie jest odizolowany od reszty układów. Dostęp do pamięci cache oraz pamięci głównej realizowany jest poprzez magistralę główną co powoduje, że nawet w przypadku trafienia magistrala jest niedostępna dla innych zarządców. Niewątpliwą jednak zaletą tej architektury jest prostsza konstrukcja, niższy koszt i nieco szybsza realizacja operacji w przypadku chybienia. 

0x01 graphic

Zapewnienie zgodności pamięci cache z pamięcią główną

Wspomniano już wcześniej, że jedną z funkcji sterownika pamięci cache jest zapewnienie zgodności zawartości pamięci cache z pamięcią główną. Problem ten zostanie opisany w tym miejscu nieco szerzej. 

Niezgodność zawartości pamięci cache z zawartością pamięci głównej RAM występuje w dwóch przypadkach:

  1. zapisano do pamięci cache dane bez zapisu tych danych do pamięci głównej,

  2. zapisano do pamięci głównej dane baz zapisu tych danych do pamięci cache.

Czasowa niezgodność pamięci jest dopuszczalna, nie wolno natomiast dopuścić do sytuacji, w której zostanie użyta nieaktualna informacja. 

Pierwsza sytuacja występuje w przypadku trafienia przy zapisie. 

W przypadku zapisu do pamięci cache stosowane są następujące strategie utrzymania zgodności:

W strategii Write-through każdy zapis do pamięci cache powoduje jednocześnie zapis do pamięci głównej. Jest to rozwiązanie bardzo proste i pewne, niestety powo-dujące zmniejszenie szybkości działania systemu (każdy zapis to zapis do „wolnej” pamięci głównej). 

Buforowane (lub inaczej opóźnione) Write-through polega na zapisaniu informacji, zarówno w przypadku trafienia, jak i chybienia, do bufora sterownika cache, przy czym procesor widzi tę operację jako dostęp do pamięci bez stanów oczekiwania. W rzeczywistości operacja zapisu do pamięci głównej jest realizowana później (jest opóźniona). Stany oczekiwania występują dla procesora jedynie w przypadku kolejno po sobie następujących zapisów do pamięci. Pomiędzy zapisem informacji do pamięci cache, dostęp do magistrali dla innych zarządców magistrali jest blokowany w celu uniknięcia użycia nieaktualnej informacji (dodatkowy powód tej operacji to potrzeba dostępności magistrali dla dokonania przepisania informacji z bufoni). 

W przypadku strategii Write-back zawartości pamięci cache i pamięci głównej są uzgadniane tylko w przypadku takiej potrzeby. Występuje ona, gdy inny zarządca magistrali chce skorzystać z komórki pamięci głównej, która zawiera nieaktualną informację lub gdy w pamięci cache wymieniana jest linia zawierająca informację nową. Budowa pamięci cache stosującej strategię Write-back jest bardziej skomplikowana, gdyż, jak wynika z powyższego opisu, należy śledzić operacje magistrali na pamięci głównej dotyczące innych zarządców magistrali. W przypadku operacji na komórkach odwzorowanych w pamięci cache należy przeprowadzić jej uaktualnienie. 

Drugi przypadek, dla którego może wystąpić niezgodność pamięci głównej i pamięci cache występuje, gdy inny (niż procesor główny) zarządca magistrali dokonuje zapisu do pamięci (na przykład w przypadku transmisji DMA do pamięci głównej. Najczęściej używaną metodą utrzymania zgodności dla takiego przypadku, jest śledzenie przez sterownik cache operacji magistral. Reakcja systemu pamięci cache zależy od strategii stosowanej do utrzymania zgodności przy zapisie informacji przez procesor. 

0x01 graphic

5



Wyszukiwarka

Podobne podstrony:
Pamięci dynamiczne RAM, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
Konfiguracja pamięci wirtualnej w Win 2003 serwer, Szkoła, Systemy Operacyjnie i sieci komputerowe,
08.Warstwa Prezentacji (5 Warstwa), Technik Informatyk, Technik - Informatyk, Podręczniki i materiał
Pamięci półprzewodnikowe, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
Pamięci dynamiczne RAM, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
format[1], Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
System plików, zOthers, Systemy operacyjne i sieci komputerowe
bramki logiczne, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
router, Szkoła, Systemy Operacyjnie i sieci komputerowe, sieci
Dyski twarde-woluminy, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
WiFi, Systemy Operacyjne i Sieci Komputerowe
Normy prawne dotyczące rozpowszechniania programów komputerowych, 1.Systemy operacyjne i sieci kompu
System operacyjny i sieci komputerowe, Liceum
Konsola odzyskiwania systemu, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Systemy operacyjne i sieci komputerowe sem3
Windows 7 - Wersje i Instalacja, Systemy Operacyjne i Sieci Komputerowe
Materiał Nauczania - SOiSK - kl. I Technikum, Systemy Operacyjne i Sieci Komputerowe

więcej podobnych podstron