CPU Önbellek nedir? modern CPU’lar inanılmaz derecede hızlı çalışır; sistem RAM’inden daha iyi performans gösterebilirler. CPU ve bellek arasındaki bu hız dengesizliği, işlemcinizin genellikle boşta durmasına ve verilerin gönderilmesini bekleyerek işlemin devam etmesine neden olur. Bunun olmasını önlemek için, CPU’ların daha hızlı ve daha hızlı çalışmaya devam etmesine izin vermek için bir CPU önbelleği kullanılır.
CPU önbelleği CPU’yu nasıl hızlandırır?
CPU önbelleği, olabildiğince hızlı olacak ve daha sonra CPU’nun istediği verileri önbelleğe alacak şekilde tasarlanmıştır. CPU önbelleğinin hızı üç şekilde optimize edilmiştir: gecikme, bant genişliği ve yakınlık. CPU önbelleği çok düşük gecikmelerde çalışır ve sonucun döndürülmesi için gereken süreyi en aza indirir. Örneğin, Intel i9-9900k L1, L2 ve L3 önbellek için sırasıyla 0,8, 2,4 ve 11,1 nanosaniye önbellek gecikmesine sahiptir. Buna karşılık, modern yüksek hızlı RAM’in gecikmesi 14 nanosaniye civarındadır.
İpucu: Önbellek seviyeleri daha sonra daha ayrıntılı olarak açıklanacaktır, ancak yalnızca önbellek alt katmanlarını daha hızlı ancak daha pahalıdır, bu nedenle daha düşük kapasitelere sahiptir. Bir nanosaniye saniyenin milyarda biridir, bu nedenle 0,8 saniyelik bir gecikme, bir sonucun döndürülmesinin saniyenin milyarda birinden daha az sürdüğü anlamına gelir.
Bant genişliği açısından, CPU önbelleği geleneksel depolama ve RAM’e göre önemli performans geliştirmeleri sunar. L1 ve L3 önbelleğinin okuma hızları sırasıyla 2,3 TB / s ve 370 GB / s’de zirve yapabilirken RAM’in bant genişliği tipik olarak 40 GB / s’dir. Bu artan bant genişliği, CPU önbelleğinin CPU’ya RAM’den çok daha hızlı veri aktarabileceği anlamına gelir.
Mümkün olan en yüksek hızlara ulaşmak için CPU önbelleği aslında CPU kalıbının silikonuna yerleştirilmiştir. Bu, herhangi bir elektrik sinyalinin gitmesi gereken mesafeyi en aza indirir, böylece gecikmeyi mümkün olduğunca düşük tutar. Örneğin, L3 önbellek ilk olarak anakarttan CPU kalıbına taşındığında, zamanın işlemcisi (Pentium 4 EE)% 10-20’lik bir performans artışı elde edebildi.
CPU önbellek mimarisi
Modern CPU’lar genellikle L1-3 etiketli üç CPU önbellek katmanı kullanır, daha düşük numaralı önbellekler CPU çekirdeklerine daha yakın, daha hızlı ve daha pahalıdır. Çok çekirdekli bir CPU’daki her bir ayrı CPU çekirdeğinin kendi L1 önbelleği vardır. Genellikle L1I ve L1D olmak üzere iki kısma ayrılır. L1I, CPU için talimatları önbelleğe alırken L1D, bu talimatların gerçekleştirileceği verileri önbelleğe almak için kullanılır.
Her CPU çekirdeğinin tipik olarak modern bir CPU üzerinde kendi L2 önbelleği vardır. L2 önbelleği, L1 önbelleğinden daha büyük ve yavaştır ve öncelikle L2 önbelleğine uygun olmayan verileri depolamak için kullanılır. Çekirdek başına özel bir L2 önbelleğe sahip olarak, önbellek çekişmesinden kaçınılır. Önbellek çekişmesi, farklı çekirdeklerin kendi iş yükleri için önbellek alanı talep etmek için savaştığı ve bu da önemli verilerin önbellekten temizlenmesine neden olabilir.
L3 önbelleği tipik olarak işlemcinin tüm CPU çekirdekleri arasında paylaşılır. Yine, L3 önbelleği L2 önbelleğinden daha yavaştır, ancak daha ucuz ve daha büyüktür. Paylaşılan bir önbellek sağlayarak, çekirdek başına önbelleğin daha düşük düzeylerinde çoğaltılacak veri miktarını azaltmak mümkündür.
İpucu: Örnek olarak, önbellek boyutlarında Intel’in i9-9900K’sı çekirdek başına 64KB L1 ve 256KB L2 önbelleğe sahiptir (toplam 512 KB L1 ve 2 MB L2 için), ayrıca 16 MB paylaşılan L3 önbelleğine sahiptir.
CPU önbelleği nasıl kullanılır?
Tüm CPU önbelleği seviyeleri, RAM’deki verileri önbelleğe alarak işlemci performansını hızlandırmak için kullanılır. Bir CPU veri istediğinde, verileri mümkün olduğunca hızlı bir şekilde almak için genellikle önbellek katmanlarında arama yapar. Veriler önbellek isabetinde bulunursa, CPU işlemeye devam edebilir. Veriler önbellekte yoksa, önbellek kaçış denir, CPU, RAM yoksa veri sabit değilse kontrol edin. Daha hızlı katmanlar her zaman maksimum performans için kontrol edilir.
CPU’nun ihtiyaç duyduğunda önbellekte ihtiyaç duyduğu verilere sahip olmasına yardımcı olmak için, önbellek CPU’nun daha sonra ihtiyaç duyabileceği verileri önceden çıkarmaya çalışır. Örneğin, CPU oluşturduğu bir görüntü için bazı veriler isterse, önbellek mümkün olduğunca hızlı bir şekilde CPU’ya beslenebilmesi için daha fazla görüntü verisini önceden etkili bir şekilde önbelleğe almaya çalışabilir.