
La önbellek hafızası Her zaman CPU'da değildi. Aslında, eski işlemcilerde böyle bir özellik yoktu. Daha sonra, günümüzün RAM modüllerine benzer modüller ortaya çıktı ve bu modüller, tıpkı matematik yardımcı işlemcileri (FPU'lar) gibi, CPU'nuzun performansını artırmak için isteğe bağlı olarak bir önbellek eklemenize olanak tanıdı.
Günümüz mikroişlemcilerinde önbellek belleği çipin içine entegre edilmiş, artık neredeyse ayrılmaz bir parçası haline geldi ve daha fazla fayda sağlamak için çeşitli seviyelere sahip. Bu eğitimde, bu bellek türü ve önemi hakkında daha fazla bilgi edineceksiniz.
önbellek nedir?
Önbelleğin ne olduğunu anlatmaya başlamadan önce çok kısa bir özet geçmek istiyorum. bir işlemci nasıl çalışır, böylece performansını daha iyi anlayabilirsiniz. Basitçe söylemek gerekirse, CPU, veri bitleriyle bir dizi işlemi işleyen bir "hesap makinesinden" başka bir şey değildir.
CPU'nun hangi hesaplamaları yapması gerektiğini gösterecek olan yazılım, yani programdır. Program, bir dizi veri ve talimattan oluşur. Tüm bu veri ve talimatlar, Ikincil bellek (sabit disk) ana (birincil) belleğe gönderilecektir. Buradan CPU tarafından yakalanacak ve dahili belleğine girilecektir. Talimat, CPU'nun verilerle ne yapması gerektiğini gösterecektir. Örneğin, bir ekleme talimatı olabilir. Yazılım bu şekilde yürütülür...
Kısaca söylemek gerekirse, ilk bilgisayarlar bu talimatları ve verileri almak için tek bir yavaş bellek katmanı (bir tür ROM veya manyetik depolama) kullanıyordu. Ancak CPU'lar gelişip hızlandıkça, bu belleğin yavaşlığından kaynaklanan büyük darboğazlar ortaya çıktı. Bu nedenle CPU ile ikincil bellek arasına hızlı bir arabellek eklendi: Veri deposu (SDRAM).
Buna rağmen, CPU, RAM'in hızından daha hızlı gelişmeye devam etti ve bu da başka bir darboğaz yarattı. Bu nedenle, işlemciye daha yakın ve RAM ile CPU arasında yer alan, çok daha hızlı başka bir bellek geliştirildi: önbellek (SRAM).
İkincil bellek ucuzdur, bu yüzden uygun fiyata büyük kapasiteler elde edebilirsiniz. RAM söz konusu olduğunda, ikincil bellekten daha hızlıdır, ancak aynı zamanda daha pahalıdır. Bu nedenle birincil bellek kapasiteleri o kadar büyük değildir. Merdivenden aşağı doğru devam edersek, daha da pahalı olan ve bu nedenle çok düşük kapasitelere sahip olan önbellekle karşılaşırız. Sonra, yine son derece pahalı ve sınırlı kapasiteye sahip kayıt defterleri gelir...
Bu önbellek sayesinde CPU çekirdekleri çok daha hızlı beslenebilir, böylece gecikmeler ve bant genişliği RAM, CPU performansını çok fazla etkilemeyecek şekilde çalışır. Bu, verileri ve talimatları çok daha yerel ve hızlı bir şekilde sağlamanın bir yoludur... Başka bir deyişle, daha "elinizin altında" olmaları için.
Günümüzde ikincil hafızanın gelişmesi büyük bir sıçrama anlamına geliyor. Yeni hafızadan bahsediyorum. SSD veya katı hal sabit diskleriAncak yine de RAM'den daha yavaştırlar, dolayısıyla bu diğer seviyelere hala ihtiyaç vardır.
Modern bir işlemcideki önbellek düzeyleri

Modern bir işlemcide tek bir önbellek seviyesi yoktur, birkaç seviyeye ayrılmıştır. Genellikle 2 ila 4 seviye bulunur. seviyeler veya seviyeler (L):
- LLC (Son Seviye Önbelleği): Bu, önbellek belleğinin son seviyesidir; yani RAM'e "en yakın", yani işlemci içinde en yüksek sayıya sahip olanıdır. Seviyeye bağlı olarak L4, L3 veya L2 olabilir. Örneğin, mevcut Intel ve AMD işlemcilerde L3'tür. Bu bellek birkaç megabayta ulaşabilir ve birleşiktir, yani hem verileri hem de talimatları depolar. Genellikle, bu tür bellek, birden fazla çekirdek varsa, tüm çekirdekler tarafından paylaşılır. Örneğin, L3 ve L2 varsa, L2 yalnızca bir çekirdeğe ayrılabilir veya iki çekirdek tarafından paylaşılabilir ve L3 hepsini besler.
- L1 önbellek: Bu önbellek, öncekinden daha hızlıdır ve kontrol ünitesine daha yakın bir konumda yer aldığından, bilgileri daha hızlı alıp yürütme birimlerine gönderebilir. Daha yüksek seviyelerin aksine, L1'in kapasitesi daha düşüktür; bu normaldir, çünkü seviyeler ne kadar düşükse kapasite de o kadar düşüktür. Ancak en önemli fark, birçok işlemcide diğer seviyeler gibi birleşik olmamasıdır. Bu durumda, L1I ve L1D olarak ayrılmıştır, yani yalnızca talimatlar ve yalnızca veriler için ayrılmıştır.
Neden önemli?
Bu noktada, neden iyileştirdiğine dair bir izleniminiz olacak. performansPratik bir örnek bunu çok iyi anlamanıza yardımcı olacaktır. Bir işi (bir programı) yapmak için ihtiyaç duyduğunuz araçları (talimatlar ve veriler) almak için CPU'ya gitmeniz gerektiğini düşünün.
Sahip olmak aynı şey değil araçlar Mağazada (ikincil bellek), garajda (RAM) veya parmaklarınızın ucunda (önbellek) bulundurmaktan daha verimlidir. Mağazaya veya garaja gitmeniz gerekiyorsa, hemen yanı başınızda olmalarına göre çok daha uzun sürer. Bu her zaman böyle değildir. Bir talimata veya veriye ilk ihtiyaç duyduğunuzda, onları almak için odaya veya garaja gitmeniz gerekir. Ancak onları bir kez alıp yanınıza koyduğunuzda, bir dahaki sefere ihtiyaç duyduğunuzda çok daha verimli olursunuz.
CPU, bir arama ve hata sistemi Talimatları ve verileri her zaman önce L1'de arayacaktır. Bir arıza durumunda L2'de arayacak, orada da yoksa L3'e (eğer varsa) gidecektir. Ayrıca bir arıza durumunda, RAM'de arama yapmaktan başka seçeneği kalmayacak ve bu da daha fazla saat döngüsü gerektirecektir. Ancak başarılı olursa, erişim çok daha hızlı olacaktır. L1'e erişmek için L2'ye göre daha az döngü gerektiğini ve L3'ye erişmek için de LXNUMX'e göre daha az döngü gerektiğini unutmayın.
Önbelleğin amacı, bellek erişim gecikmesini azaltmaktır. Israr ediyorum, ben çok şey özetliyor Nasıl çalıştığını açıklıyoruz. Ama temel olarak, uygulamalarınızın ve oyunlarınızın çok daha hızlı çalışmasını sağlar.

