Hierarchia pamięci podręcznych
Piętrowy układ coraz większych, ale coraz wolniejszych poziomów cache między rdzeniem CPU a pamięcią główną (RAM). Każdy poziom to kompromis między rozmiarem a szybkością, mający zasypać ogromną przepaść między prędkością procesora a pamięci.
Problem („ściana pamięci”): CPU jest o rzędy wielkości szybszy od RAM — bez cache'u ciągle czekałby setki cykli na dane. Rozwiązaniem jest piramida poziomów: rejestry (najszybsze, najmniejsze), L1 (kilka kB na rdzeń, ~4 cykle), L2 (setki kB–MB, ~12 cykli), L3 (dziesiątki MB, współdzielony między rdzeniami, ~40 cykli), a dalej RAM (setki cykli). Pomysł opiera się na lokalności: programy zwykle ponownie używają niedawnych danych (czasowa) i danych sąsiednich (przestrzenna), więc mały szybki cache przechwytuje większość odwołań. Wybory projektowe na każdym poziomie: rozmiar, asocjacyjność, inkluzywność/ekskluzywność i sposób współdzielenia. Cache bywa najważniejszym czynnikiem realnej wydajności. Powiązane z cache L1/L2/L3 i chybieniem cache.