CPU Önbelleği nedir?

click fraud protection

Modern CPU'lar inanılmaz derecede hızlı çalışır; sistem RAM'inden önemli ölçüde daha iyi performans gösterebilirler. CPU ve bellek arasındaki bu hız dengesizliği, işlemcinizin genellikle boşta kalmasına ve bir işlemi yürütmeye devam edebilmesi için verilerin kendisine gönderilmesini beklemesine 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.

Bir CPU önbelleği bir CPU'yu nasıl hızlandırır?

CPU önbelleği, mümkün olduğunca hızlı olacak ve ardından 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ışarak bir 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 nanosaniyelik bir önbellek gecikmesine sahiptir. Karşılaştırıldığında, modern yüksek hızlı RAM'in gecikme süresi 14 nanosaniye civarındadır.

İpucu: Önbellek seviyeleri daha sonra daha ayrıntılı olarak açıklanacaktır, ancak alt önbellek katmanları daha hızlıdır ancak daha pahalıdır, bu nedenle kapasiteleri daha düşüktür. Bir nanosaniye saniyenin milyarda biridir, bu nedenle 0,8 saniyelik bir gecikme, sonuç döndürmenin saniyenin milyarda birinden daha az zaman aldığı anlamına gelir.

Bant genişliği açısından, CPU önbelleği, geleneksel depolama ve RAM'e göre önemli performans iyileştirmeleri sunar. L1 ve L3 önbelleğinin okuma hızları sırasıyla 2,3 TB/sn ve 370 GB/sn'de zirve yapabilirken, RAM'in bant genişliği tipik olarak 40 GB/sn civarındadır. Bu artan bant genişliği, CPU önbelleğinin verileri CPU'ya RAM'den çok daha hızlı aktarabileceği anlamına gelir.

Mümkün olan maksimum hızları elde etmek için CPU önbelleği aslında CPU kalıbının silikonunun içine yerleştirilmiştir. Bu, herhangi bir elektrik sinyalinin kat etmesi gereken mesafeyi en aza indirerek gecikmeyi mümkün olduğunca düşük tutar. Örneğin, L3 önbelleği anakarttan CPU kalıbına ilk taşındığında, zamanın işlemcisi (Pentium 4 EE) %10-20 performans artışı elde edebilmişti.

CPU önbellek mimarisi

Modern CPU'lar genellikle L1-3 etiketli üç katman CPU önbelleği kullanır; düşük numaralı önbellekler CPU çekirdeklerine daha yakın, daha hızlı ve daha pahalıdır. Çok çekirdekli bir CPU'daki her bir CPU çekirdeğinin kendi L1 önbelleği vardır. Tipik olarak L1I ve L1D olmak üzere iki kısma ayrılır. L1I, CPU için talimatları önbelleğe almak için kullanılırken L1D, bu talimatların gerçekleştirileceği verileri önbelleğe almak için kullanılır.

Her CPU çekirdeği tipik olarak modern bir CPU'da kendi L2 önbelleğine sahiptir. L2 önbelleği, L1 önbelleğinden daha büyük ve daha yavaştır ve öncelikle L2 önbelleğine sığmayacak verileri depolamak için kullanılır. Çekirdek başına ayrılmış bir L2 önbelleğine sahip olarak, önbellek çekişmesi önlenir. Önbellek çekişmesi, farklı çekirdeklerin kendi iş yükleri için önbellek alanı talep etme mücadelesidir 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, daha düşük çekirdek başına önbellek seviyelerinde çoğaltılacak veri miktarını azaltmak mümkündür.

İpucu: Örnek olarak, önbellek boyutlarında Intel'in i9-9900K'sında çekirdek başına 64KB L1 ve 256KB L2 önbellek (toplam 512KB L1 ve 2MB L2 için), ayrıca 16MB paylaşımlı L3 önbelleği vardır.

CPU önbelleği nasıl kullanılır?

CPU önbelleğinin tüm seviyeleri, verileri RAM'den ö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ğu kadar hızlı almak için genellikle önbellek katmanlarında arama yapar. Veriler bir önbellek isabetinde bulunursa, CPU işlemeye devam edebilir. Veriler önbellekte değilse, yani önbellek ıskasında, o zaman CPU'nun RAM'i ve ardından veriler orada değilse sabit sürücüyü kontrol etmesi gerekir. Daha hızlı katmanlar, maksimum performans için her zaman önce kontrol edilir.

CPU'nun ihtiyaç duyduğu verilere ihtiyaç duyduğunda önbellekte sahip olmasına yardımcı olmak için önbellek, CPU'nun daha sonra ihtiyaç duyabileceği verileri önceden boşaltmaya çalışır. Örneğin, CPU bir görüntü için bazı veriler talep ettiyse, önbellek, mümkün olduğunca hızlı bir şekilde CPU'ya beslenebilmesi için daha fazla görüntü verisini önceden önbelleğe almaya çalışabilir.