Kavram Bilgisayar Donanımı

Önbellek (Cache) Nedir?

Kısa cevap

Önbellek (cache), sık veya yakın zamanda ihtiyaç duyulması beklenen verilerin daha hızlı erişilebilen bir yerde geçici olarak tutulmasıdır. CPU önbelleğinde L1, L2 ve L3 gibi katmanlar işlemcinin RAM’e daha az bekleyerek erişmesine yardımcı olur.

Önbellek, tekrar kullanılma ihtimali yüksek olan veri veya komutların daha hızlı erişilebilen bir yerde tutulması yöntemidir. “Cache” kavramı yalnızca işlemcilerde değil tarayıcılarda, depolama aygıtlarında ve yazılımlarda da kullanılır. Bu maddede özellikle CPU önbelleği anlatılmaktadır.

CPU önbelleği ne işe yarar?

CPU çok hızlı çalışır; ana sistem belleği olan RAM ise işlemci çekirdeğine göre daha uzakta ve daha yüksek gecikmelidir. İşlemcinin sık ihtiyaç duyduğu verilerin bir kopyasının küçük ama çok hızlı önbelleklerde tutulması, CPU’nun her seferinde RAM’i bekleme ihtimalini azaltır.

İşlemci ihtiyaç duyduğu veriyi önce yakın önbellek katmanlarında arar. Veri bulunursa buna “cache hit”, bulunamaz ve daha alt düzey belleğe gidilmesi gerekirse “cache miss” denir.

L1, L2 ve L3 cache nedir?

Katman Genel konum / özellik Genel eğilim
L1 Çekirdeğe en yakın önbellek En küçük ve en düşük gecikmeli katman
L2 L1’den daha büyük ikinci seviye L1’e göre daha yüksek kapasite, daha fazla gecikme
L3 Birçok modern CPU’da çekirdekler arasında paylaşılabilen son seviye önbellek Daha büyük kapasite, L1/L2’ye göre daha yüksek gecikme

Bu tablo genel bir modeldir. Modern işlemcilerin önbellek mimarileri üreticiye ve nesle göre değişebilir; tüm işlemcilerde katmanların boyutu, paylaşım biçimi veya isimlendirmesi aynı değildir.

Neden bütün bellek L1 kadar hızlı değil?

Çok hızlı belleği büyük kapasitede ve CPU çekirdeğine çok yakın tasarlamak fiziksel alan, enerji ve maliyet açısından zordur. Bu nedenle bilgisayarlarda katmanlı bir bellek hiyerarşisi kullanılır: az miktarda çok hızlı önbellek, daha büyük RAM ve çok daha büyük kalıcı depolama.

Cache ile RAM arasındaki fark nedir?

İkisi de aktif çalışmada kullanılan verileri tutabilir; ancak CPU cache çok daha küçük kapasitelidir ve işlemciye çok daha yakındır. RAM ise gigabaytlar düzeyinde kapasite sunan ana çalışma belleğidir. Uygulamalar doğrudan RAM kapasitesine ihtiyaç duyarken CPU cache, işlemcinin veri erişim gecikmesini azaltmaya çalışan donanımsal bir katmandır.

Cache hit ve cache miss nedir?

İşlemcinin aradığı veri önbellekte bulunuyorsa cache hit gerçekleşir ve veri daha hızlı sağlanabilir. Bulunamıyorsa cache miss olur ve sistem veriyi daha alt düzey önbellekten veya RAM’den getirmek zorunda kalır. Bir programın veri erişim düzeni, önbellekten ne kadar yararlanabileceğini etkiler.

Daha fazla L3 cache her zaman daha hızlı mı?

Hayır. Daha büyük önbellek belirli iş yüklerinde avantaj sağlayabilir; fakat CPU performansı mimari, çekirdek sayısı, saat hızları, bellek alt sistemi, yazılım ve güç sınırları gibi birçok etkene bağlıdır. Farklı işlemcileri yalnızca “MB cache” değerine göre karşılaştırmak doğru değildir.

Tarayıcı cache ile CPU cache aynı şey mi?

Aynı temel fikirden yararlanırlar fakat farklı düzeylerde çalışırlar. Tarayıcı önbelleği web dosyalarını depolama alanında tutarak tekrar indirmeyi azaltabilir. CPU cache ise işlemcinin komut ve verilere daha düşük gecikmeyle erişmesini sağlayan donanımsal bellektir.

Önbellek silinir mi?

CPU cache donanım tarafından sürekli yönetilir ve kullanıcı normalde L1/L2/L3 içeriğini elle temizlemez. “Önbelleği temizle” ifadesi günlük kullanımda çoğunlukla tarayıcı veya uygulama cache’ini ifade eder.

Cache neden veri kopyası tutar?

İşlemci aynı veriye veya yakın bellek adreslerine tekrar tekrar ihtiyaç duyabilir. Önbellek, yakın zamanda veya sık kullanılan veri ve komutların kopyalarını işlemciye daha yakın bir yerde tutarak daha yavaş ana belleğe yapılacak erişimlerin bir bölümünü azaltmayı amaçlar. Bu yaklaşım zamansal ve mekânsal yerellik olarak bilinen yaygın program davranışlarından yararlanır.

L3 cache bütün çekirdekler tarafından paylaşılır mı?

Bu, işlemci mimarisine bağlıdır. Birçok modern masaüstü işlemcide L1 ve L2 önbellekler çekirdeğe daha yakın veya çekirdeğe özeldir; L3 ise birden fazla çekirdek arasında paylaşılan son seviye önbellek olarak tasarlanabilir. Ancak kesin yapı modelden modele değiştiği için üreticinin teknik özellikleri esas alınmalıdır.

Cache gecikmesi neden kapasite kadar önemlidir?

Önbelleğin amacı yalnızca veri saklamak değil, işlemcinin veriye mümkün olduğunca kısa sürede ulaşmasını sağlamaktır. Daha büyük bellek katmanları genellikle daha yüksek kapasite sunarken erişim gecikmeleri de artabilir. Bu nedenle L1, L2 ve L3 katmanlarının farklı boyut ve hızlarda olması bilinçli bir tasarım tercihidir.

Kısaca cache

Cache, hız için kullanılan geçici veri katmanıdır. CPU’daki L1, L2 ve L3 önbellekler, işlemcinin ihtiyaç duyduğu verilere mümkün olduğunca RAM’e gitmeden erişebilmesine yardımcı olur. Önbellek kapasitesi önemli bir tasarım unsurudur ama işlemci hızını tek başına açıklamaz.

Kaynaklar ve doğrulama