EMZETT.
Giriş yap

L1, L2 ve L3 önbellek

Kısaca: Önbellek (cache), işlemcide yakında gerekecek veri ve komutları tutan çok hızlı bir tampondur. Üç düzey vardır: L1 (küçük, en hızlı), L2 (orta) ve L3 (büyük, paylaşılan, daha yavaş).

Biraz daha ayrıntılı: Ana bellek bir işlemci için çok yavaştır: tek bir erişim yüzlerce hesaplama adımı kadar sürer. Önbellek, programların aynı verilere tekrar tekrar (zamansal yerellik) ve komşu verilere (uzamsal yerellik) ihtiyaç duyduğu gözlemiyle bunu köprüler. Birkaç düzey bir uzlaşmadır: bir bellek ne kadar hızlıysa o kadar pahalı ve küçüktür.

Ayrıntılı

DüzeyTipik boyutErişim süresiAit olduğuÖzellik
L132 – 64 KB (veri ve komutlar için ayrı ayrı)~4 çevrimher çekirdekEn hızlı ve en küçük; L1d (veri) ve L1i (komutlar) olarak bölünmüş
L2256 KB – 2 MB~12 çevrimgenellikle her çekirdekL1 ile L3 arasında tampon
L38 – 128 MB (ve daha fazla, 3D V-Cache)~40 çevrimtüm çekirdekler birlikteÇekirdekler arasında veri alışverişi yapar
RAMGB~200+ çevrimharicikarşılaştırma için

Nasıl çalışır:

  • Veriler 64 baytlık önbellek satırları (cache line) halinde yüklenir.
  • İsabet (hit): Veri oradadır, hızlı. Iskalama (miss): Veri bir sonraki düzeyden getirilmelidir, işlemci bekler.
  • Çıkarma (eviction): Önbellek dolunca genellikle en uzun süredir kullanılmayan satır atılır (LRU benzeri).
  • Tutarlılık (coherence): Bir çekirdek veriyi değiştirirse diğer çekirdekler kopyalarını güncellemeli veya atmalıdır (MESI gibi protokoller).

Neden birkaç düzey?

  • Tek bir büyük önbellek yavaş olurdu (daha uzun yollar, daha fazla yönetim).
  • Küçük, hızlı bir L1 erişimlerin çoğunu yakalar. Sığmayanlar L2 ve L3’te durur.
  • Bu, yüksek hız ile yeterli kapasitenin birleşimini sağlar.

Pratik:

  • Programlar verileri sırayla (diziler) okuduğunda, sıçramalarla (bağlı listeler, rastgele erişim) okumadığında daha hızlı çalışır.
  • Oyunlar ve veritabanları büyük bir L3’ten güçlü biçimde yararlanır (AMD X3D, 3D V-Cache).
  • Önbellek boyutu, saat ve çekirdek sayısının yanı sıra bir satın alma ölçütüdür.
  • Spectre ve Meltdown gibi saldırılar önbellekteki zamanlama farklarından yararlandı.

Ayrıca bak: İşlemci yapısı: yürütme birimleri ve önbellek, Bellek hiyerarşisi ve önbellek satırları, Önbellekler