Önbellek nedir?

click fraud protection

Önbellek nedir ve neden CPU'lar, GPU'lar ve diğer işlemci türleri buna sahiptir? Bilmeniz gereken her şey burada.

Hızlı Linkler

  • Önbellek: Az miktarda yüksek hızlı bellek
  • Önbellek düzeyleri ve bellek hiyerarşisi
  • Önbellek gereklidir ancak performansı tek başına artırmaz

Her ne kadar önbellek, çekirdekler kadar konuşulmasa da, Veri deposu (Rastgele Erişim Belleği) veya VRAMMuhtemelen bunu daha önce duymuşsunuzdur, özellikle de son zamanlarda. AMD gururla oyun performansının reklamını yapıyor 3D V-Cache özellikli Ryzen CPU'lar Önbellek kullanımının bir sonucu olarak Intel'in 13. nesil Raptor Lake CPU'larıyla yaptığı en büyük iyileştirmelerden biri daha fazla önbellek eklemekti.

Peki önbellek megabayt cinsinden ölçüldüğünde performansı nasıl artırabilir? Bugünlerde en ucuz RAM kitleri bile 16 GB ile geliyor; peki, fazladan birkaç megabaytlık önbellek eklemek nasıl performansta bu kadar büyük bir fark yaratabilir? Önbellek normal bellek türü değildir.

Önbellek: Az miktarda yüksek hızlı bellek

Kaynak: AMD

Önbellek aslında işlemcilerde oldukça yeni bir gelişmedir, geçmişi 1990'lara kadar uzanır ve RAM nedeniyle icat edilmiştir. RAM, işlemcilerin (CPU'lar ve GPU'lar gibi) oldukça sık ihtiyaç duyması beklenen önemli miktarda veriyi depolayan bilgisayarlardaki önemli bir bileşendir. Uzun bir süre boyunca RAM performansındaki gelişmeler CPU performansındaki gelişmelere ayak uydurdu ancak 1990'lara gelindiğinde bu durum RAM'in en yeni CPU'lara ayak uyduramayacağı açık. RAM'in kapasitesi çok fazlaydı ancak aktarım hızları çok fazlaydı yavaş.

İşte önbellek devreye giriyor. Fiziksel olarak veya kapasite olarak neredeyse RAM kadar büyük değildir, ancak işlemcinin içindedir ve verileri çok hızlı ve çok düşük bir gecikmeyle aktarabilir. Önbellek, işlemcinin gerçekten ihtiyaç duyduğu verileri sakladığı sürece, RAM'den aynı verileri istemek birçok kez daha yavaş olduğundan zamandan tasarruf edebilir. RAM sorununa harika bir çözümdü ve CPU tasarımcılarının daha hızlı CPU'lar üretmeye devam etmelerine olanak sağladı. RAM tasarımcıları, fazla endişelenmelerine gerek kalmadan daha büyük RAM kapasiteleri üretmeye devam edecek verim. Günümüzde önbellek hemen hemen her tür işlemcide bulunmaktadır.

Önbelleğin neden bu kadar küçük olduğunu merak ediyor olabilirsiniz. Bunun çoğunlukla alan ve parayla ilgisi var. 32 MB'lık önbellek bile işlemcide oldukça fazla yer kaplayabilir ve modern yongaların toplam alanı kabaca 600 mm2 ile sınırlıdır ve bunun akıllıca kullanılması gerekir. Bu, önbelleğe daha fazla alan ayırmanın oldukça pahalı olabileceği anlamına gelir ve bu durum aslında iyileşmeye değil, daha da kötüye gidiyor. En son üretim süreçleri, önbellek yoğunluğunda giderek daha küçük iyileştirmeler sağlıyor ve TSMC, 3nm sürecinin ilk yinelemesinde önbellek boyutunu azaltma konusunda hiçbir şekilde başarısız oldu.

Önbellek düzeyleri ve bellek hiyerarşisi

Kaynak: Carlos Carvalho

Önbelleğin icadı, bilgisayardaki tüm veri depolama aygıtları için yeni bir katman olduğu anlamına geliyordu. Bu katmanlar, yukarıdaki resimde görebileceğiniz bellek hiyerarşisi adı verilen şeyi oluşturur ve bu hiyerarşiyi ayrıntılarıyla anlatır. Bir CPU içindeki tipik bir sistemde hangi bellek nereye gider (gerçi diğer türdeki işlemciler çok hoş görünecektir) benzer). Günümüzde modern bellek hiyerarşisi yalnızca önbellek, RAM ve kalıcı depolama aygıtlarını içermiyor, aynı zamanda önbelleğin kendi içindeki bir bellek hiyerarşisini de içeriyor.

Çoğu işlemcinin çeşitli amaçlara yönelik farklı önbellek düzeyleri vardır. İlk ve en küçük önbellek düzeyi, hemen ihtiyaç duyulan verileri işlemek için ayrı çekirdeklerin verildiği L1'dir. L1 önbellek genellikle kilobayt cinsinden ölçülür; en yeni Ryzen 7000 CPU'lar çekirdek başına 64KB L1 önbelleğe sahiptir. Ek olarak, modern L1 önbelleği genellikle L1I (talimatlar için) ve L1D (veriler için) olarak ikiye ayrılır.

Sırada, tek tek çekirdekler yerine bir grup çekirdek için olan L2 var. Doğal olarak, L2 önbelleği L1 önbellekten daha büyüktür, çoğu zaman büyüklük sırasına göre, ancak çok daha büyük olması ve daha fazla çekirdeğe hizmet vermek zorunda olması, daha yavaş olduğu ve daha yüksek gecikmeye sahip olduğu anlamına gelir. Bazı işlemciler, özellikle GPU'lar ve daha yavaş CPU'lar yalnızca L2 önbelleğe kadar çıkar.

Bir sonraki adım genellikle çipteki tüm çekirdekler tarafından kullanılan L3'tür. Boyutu, işlemciye bağlı olarak L2 önbelleğinden birkaç kat daha büyük ila birkaç kat daha büyük arasında değişebilir. Bu, L2 önbellekten bile daha yavaş olduğu ancak yine de RAM'den daha iyi performans gösterdiği anlamına gelir. Ek olarak, L3 önbelleği sıklıkla bir "kurban önbelleği" görevi de görür; L1 ve L2 önbelleğinden çıkarılan veriler buraya gider. Gerekmediği takdirde L3 önbelleğinden de çıkarılabilir. Günümüzde L3 önbellek, chiplet teknolojisi nedeniyle AMD için özellikle önemlidir. Ryzen 3D V-Cache yongaları 64 MB L3 önbellek içerir ve RX 7000 Bellek Önbellek Kalıplarının (veya MCD'lerin) her biri 16 MB L3 önbellek içerir.

Çoğu işlemcide görülen en yüksek önbellek seviyesi L4'tür ve bu genellikle o kadar büyüktür ki aslında RAM'dir. Aslında L4 önbelleği kullanan en yeni CPU'lar, üst düzey modellerde L4 önbellek olarak HBM2'yi kullanan Intel'in Sapphire Rapids Xeon yongalarıdır. Öte yandan AMD hiçbir zaman L4 önbellek kullanmadı ve bunun yerine daha fazla CPU ve V-Cache yongaları ekleyerek L3 önbelleğini yüksek kapasitelere çıkarmakla yetindi. L4 önbellek, CPU ile entegre GPU arasında veri paylaşabilen yerleşik bir çözüm olduğundan, genellikle entegre GPU'lara daha fazla fayda sağlar.

Bazı yonga setlerinde, özellikle de mobil olanlarda, başka bir önbellek türü daha vardır: sistem düzeyinde önbellek (SLC). Bu önbellek daha sonra GPU, NPU ve CPU gibi tüm yonga setinde kullanılır. Bir önbellek, ana belleğe yönelik istek ihtiyacının yerini alabilir, böylece bir SLC, tüm SoC'ye fayda sağlar.

Önbellek gereklidir ancak performansı tek başına artırmaz

Önbellekteki son yeniliklerle ilgili tüm heyecana rağmen, bu performans açısından sihirli bir değnek değil. Sonuçta önbellekte herhangi bir işleme yeteneği yoktur; yalnızca verileri depolar ve hepsi bu. Her işlemci daha fazla önbelleğe sahip olmanın kesinlikle faydasını görse de, tam olarak ihtiyaç duyulan miktardan fazlasını eklemek genellikle çok pahalıdır. Daha fazla önbellek eklemek, iş yüküne bağlı olarak performansı iyileştirmeyebilir; bu da işlemciye tonlarca yük bindirmemek için başka bir teşviktir.

Bununla birlikte, belirli durumlarda büyük miktarda önbellek ekleyebilmek istenebilir. Örneğin, çok fazla önbelleğe sahip CPU'lar oyunlarda daha iyi performans gösterir. AMD'nin 3D V-Cache'li Ryzen CPU'ları, V-Cache'siz çiplere göre daha düşük frekansa sahip olmalarına rağmen oyun oynamak için oldukça hızlıdır ve Intel'in 13. nesil CPU'ları 12. nesil yongalardan önemli ölçüde daha hızlıdır; tek büyük gelişme, büyütülmüş önbellek.

Sonuçta, işlemcilerin RAM'i olabildiğince sık atlayabilmesi ve performansın mümkün olduğu kadar sınırsız olabilmesi için önbellek mevcuttur. CPU tasarımcılarının önbellek kapasitesini boyutla ve dolayısıyla maliyetle dengelemesi gerekiyor; bu da her nesil yeni üretim süreciyle daha da zorlaşıyor. Her ne kadar işlemcilere önbellek eklemenin yeni yolları, önbelleğin icat edilmesinden onlarca yıl sonra ortaya çıksa da, işlemcilerin bu temel bileşeninin amacının değişeceğini hayal etmek zor.