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üzey | Tipik boyut | Erişim süresi | Ait olduğu | Özellik |
|---|---|---|---|---|
| L1 | 32 – 64 KB (veri ve komutlar için ayrı ayrı) | ~4 çevrim | her çekirdek | En hızlı ve en küçük; L1d (veri) ve L1i (komutlar) olarak bölünmüş |
| L2 | 256 KB – 2 MB | ~12 çevrim | genellikle her çekirdek | L1 ile L3 arasında tampon |
| L3 | 8 – 128 MB (ve daha fazla, 3D V-Cache) | ~40 çevrim | tüm çekirdekler birlikte | Çekirdekler arasında veri alışverişi yapar |
| RAM | GB | ~200+ çevrim | harici | karşı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