Pamięć podręczna procesora

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Pamięć podręczna procesora (ang. CPU cache) - jest pamięcią typu SRAM (pamięć statyczna) o krótkim czasie dostępu. Zlokalizowana jest często bezpośrednio w jądrze procesora. Zastosowanie wielopoziomowej hierarchii pamięci podręcznej pozwala, korzystając z zasady lokalności przestrzennej i czasowej na zapewnienie złudzenia posiadania szybkiej i pojemnej pamięci głównej, a więc zmniejsza średni czas dostępu do pamięci głównej.

Współcześnie stosuje się 2 i 3-poziomowe pamięci podręczne. Najważniejszymi parametrami funkcjonalnymi pamięci podręcznych są: pojemność i czas dostępu. Pod względem budowy można wyróżnić 3 podstawowe typy organizacji pamięci: - pamięć całkowicie skojarzeniowa (ang. fully associative) - pamięć z odwzorowaniem bezpośrednim (ang. direct-mapped) - pamięć wielodrożna (set-associative)

L-1 cache[edytuj | edytuj kod]

Zlokalizowana we wnętrzu procesora pamięć podręczna pierwszego poziomu przyspiesza dostęp do bloków pamięci wyższego poziomu, który stanowi zależnie od konstrukcji pamięć operacyjną lub pamięć podręczną drugiego poziomu (L-2). Z uwagi na ograniczenia rozmiarów i mocy procesora zawsze jest najmniejsza. Umieszczona jest najbliżej głównego jądra procesora i umożliwia najszybszą komunikację procesora. Typowe pamięci L-1 współczesnych procesorów są 2-drożne, posiadają rozdzieloną pamięć danych i kodu, a długość linii wynosi 64 B.

L-2 cache[edytuj | edytuj kod]

Pamięć drugiego poziomu, o rozmiarze od 64KB do 12MB, 2,4 lub 8-drożna, o długości linii od 64 do 128 B, jest wykorzystywana jako bufor pomiędzy stosunkowo wolną pamięcią RAM a jądrem procesora i pamięcią cache L1. Ostatnimi procesorami nie posiadającymi pamięci podręcznej drugiego poziomu były pierwsze procesory Celeron (jądro Convington, taktowane 266-300MHz). Obecność pamięci drugiego poziomu powoduje duży wzrost wydajności w wielu aplikacjach - dzieje się tak, ponieważ dane poddawane obróbce muszą być pobierane z pamięci RAM, która ma opóźnienia rzędu kilkudziesięciu-kilkuset nanosekund. Dzisiejsze procesory są wyposażone w złożone układy przewidywania, jakie dane będą potrzebne - dane te są pobierane z wyprzedzeniem do pamięci cache, która ma opóźnienia rzędu kilku-kilkunastu nanosekund, co znacznie skraca czas oczekiwania procesora na dane do obliczeń.

L-3 cache[edytuj | edytuj kod]

Pamięć podręczna procesora trzeciego poziomu jest wykorzystywana, kiedy pamięć L2 jest niewystarczająca aby pomieścić potrzebne dane. Najczęściej spotykana jest w procesorach dedykowanych do zastosowań serwerowych. Obecność cache trzeciego poziomu pozwala na znaczącą poprawę wydajności w stosunku do procesorów o konstrukcji pamięci dwupoziomowej w wielu aplikacjach i programach. Jest "ratunkiem" przed sięgnięciem po dane do powolnej pamięci RAM, aczkolwiek gdy w pamięci L3 brakuje miejsca komputer szuka "pomocy" w powolnej pamięci RAM. W systemach z wieloma procesorami lub rdzeniami, pamięć cache trzeciego poziomu najczęściej jest współdzielona przez wszystkie rdzenie i ma od kilku do kilkunastu megabajtów (co jest niewielką ilością w porównaniu do pamięci RAM której rozmiar w nowszych komputerach oscyluje w granicach kilku gigabajtów). Jej wysoka wydajność wynika z droższych i lepszych komponentów, oraz bliższego fizycznego ulokowania przy procesorze.