計算機架構與加速器

快取記憶體(Cache memory)

快取是緊貼處理器、又小又極快的記憶體,存放它最近用過的資料副本——就像把你常伸手去拿的幾樣工具放在面前桌上,而不是每次都走去儲藏室(主記憶體)。處理器先查快取;命中可在幾個週期內取得資料,未命中則得跋涉到數百個週期外的慢速 DRAM。

快取之所以有效,是因為真實程式有「局部性」:很快會重用同一筆資料(時間局部性),接著存取鄰近位址(空間局部性),所以快取一次抓進整條 64 位元組的快取行。晶片把快取疊成階層——又小又即時的 L1(32 KB)、較大的 L2(256 KB 到 1 MB)、龐大且共享的 L3(數十 MB)——一層比一層大、也一層比一層慢。由於主記憶體約比核心慢 100 倍,95% 以上的命中率才能讓處理器不致挨餓;彌合這道速度鴻溝,正是「記憶體牆」這整件事的核心。

快取容量並非免費:越大越慢,且耗用更多面積與功耗,所以設計者會調校階層而非做一塊巨型快取。為騰出空間被逐出的快取行,依循如 LRU(最近最少使用)等替換策略。

又称
cacheL1/L2/L3 cache快取