🔄 Losowy artykuł
Szlaki górskie Pociągiem dookoła Polski Podróże kulinarne Hotele-unikaty świata Parkingi przy lotniskach Łowiska Europy Campingi dla kamperów Imprezy — atrakcje w Polsce Poradnik pilota drona Wydarzenia i bilety Promocje bankowe Kamery na żywo Oferty Centrum Podróży Koliber Triper.pl Trip.FazaFM.com — plany podróży

Pamięć podręczna procesora

Schemat pamięci podręcznej procesora

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 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

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ą 8-drożne, posiadają rozdzieloną pamięć danych i kodu, a długość linii wynosi 64 bajty.

L-2 cache

Pamięć drugiego poziomu, o rozmiarze od 64 KB do 12 MB, 2, 4 lub 8-drożna, o długości linii od 64 do 128 bajtów, 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–300 MHz). 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

Pamięć podręczna procesora trzeciego poziomu jest wykorzystywana, gdy pamięć L2 jest niewystarczająca, aby pomieścić potrzebne dane. 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. W systemach z wieloma procesorami lub rdzeniami, pamięć cache trzeciego poziomu najczęściej jest współdzielona przez wszystkie rdzenie i ma od kilku do kilkudziesięciu megabajtów.

Spójność pamięci podręcznej

W systemach wieloprocesorowych ze współdzieloną pamięcią zastosowanie pamięci cache jest kluczowe dla zapewnienia lokalności i możliwej niezależności działania poszczególnych procesorów od wspólnych elementów systemu (współdzielonej pamięci oraz magistrali zapewniającej do niej dostęp). Jest to niezbędne dla zapewnienia maksymalnej wydajności pracy poszczególnych procesorów. Wymaga to jednak odpowiednich metod zapewniających spójność (koherencję) danych zapisanych w pamięci (w języku angielskim jest to określane jako cache coherency). Można wyróżnić dwa typy pamięci cache[1]:

  • write-through - każdy zapis do pamięci cache jest jednocześnie zapisem do pamięci współdzielonej
  • write-back - zapis danych do pamięci podręcznej jest synchnronizowany z pamięcią współdzieloną tylko w przypadku gdy zajdzie taka potrzeba (inny procesor odwołuje się do tego samego fragmentu czy komórek pamięci).

Pierwszy jest dużo prostszy technicznie w realizacji, ale powoduje nadmierne przesyłanie danych przez magistalę zapewniającą dostęp do pamięci (na przykład, w sytuacji gdy dana komórka jest wielokrotnie zapisywana przez jeden procesor a nie jest odczytywana przez żaden inny). Drugi, zapewniający znacznie optymalniejsze wykorzystanie zasobów, wymaga odpowiednich mechanizmów zapewniających spójność danych w pamięci dostępnych dla poszczególnych procesorów systemu. Jest więc bardziej skomplikowany i kosztowniejszy w realizacji[1].

Przypisy

  1. ↑ a b Cache coherency. „BYTE”, s. 125, sierpień 1992. (ang.). 
ℹ Źródło: artykuł „Pamięć podręczna procesora” w polskiej Wikipedii. Treść dostępna na licencji CC BY-SA 4.0; lista autorów w historii edycji. Wersja może się różnić od aktualnej na Wikipedii (kopia odświeżana okresowo).
💳 Revolut
Karta wielowalutowa do podróży — płacisz za granicą bez przewalutowań.
Odbierz kartę →
💰 ZEN.COM
Konta multiwalutowe i karty — płatności bez granic z poziomu aplikacji.
Sprawdź ZEN →
🌍 Wise
Przelewy za granicę po realnym kursie — bez ukrytych marż.
Wypróbuj Wise →
Linki polecające — obowiązują regulaminy usług.
FazaFM.com — radio i newsy Hrubek.pl — Hrubieszów blisko Ciebie Gorzkie Groszki — blog