• Oyunlardaki ve uygulamalardaki L3 önbelleğinin küçük bir karşılaştırması. L1 L2 L3 işlemci önbelleği neyi etkiler 3. düzey önbellek nasıl açılır

    Hepinize iyi günler. Bugün size önbellek gibi bir şeyi açıklamaya çalışacağız. İşlemci önbelleği, DDR4 söz konusu olduğunda standart RAM'den 16-17 kat daha hızlı olan ultra hızlı bir veri işleme dizisidir.

    Bu makaleden şunları öğreneceksiniz:

    RAM'in herhangi bir veriyi işlemesini ve bitmiş hesaplamaların sonuçlarını daha fazla işlem için çipe göndermesini beklemeden CPU'nun maksimum hızlarda çalışmasına izin veren önbellek miktarıdır. Benzer bir ilke HDD'de izlenebilir, burada yalnızca 8–128 MB'lik bir arabellek kullanılır. Başka bir şey de hızların çok daha düşük olması, ancak sürecin benzer olmasıdır.

    İşlemci önbelleği nedir?

    Hesaplama süreci genel olarak nasıl işliyor? Tüm veriler, önemli kullanıcı ve sistem bilgilerinin geçici olarak depolanması için tasarlanmış olan RAM'de saklanır. İşlemci, önbellek adı verilen ultra hızlı bir bloğa sürülen belirli sayıda görevi kendisi için seçer ve doğrudan görevlerini yapmaya başlar.

    Hesaplama sonuçları yine RAM'e gönderilir, ancak çok daha küçük bir miktarda (bin çıktı değeri yerine çok daha azını alırız) ve işlenmek üzere yeni bir dizi alınır. Ve böylece iş bitene kadar.

    İşin hızı, RAM'in verimliliği ile belirlenir. Ancak, 4000 MHz'in altındaki hız aşırtma çözümleri de dahil olmak üzere tek bir modern DDR4 modülü, "yavaş" önbelleğiyle en bodur işlemcinin yeteneklerine yakın değildi.

    Bunun nedeni, CPU'nun hızının RAM'in performansını ortalama 15 kat, hatta daha fazla aşmasıdır. Ve sadece frekans parametrelerine bakmayın, bunlara ek olarak yeterince fark var.
    Teorik olarak, süper güçlü Intel Xeon ve AMD Epyc'in bile boşta kalmaya zorlandığı ortaya çıktı, ancak aslında her iki sunucu yongası da sınırlarında çalışıyor. Ve hepsi, önbellek boyutuna göre (60 MB veya daha fazla) gerekli miktarda veri topladıkları ve verileri anında işledikleri için. RAM, hesaplamalar için dizilerin toplandığı bir tür depo görevi görür. Bilgisayarın bilgi işlem verimliliği artar ve herkes mutlu olur.

    Tarihe kısa bir gezi

    Önbellekten ilk söz, 80'lerin sonuna kadar uzanıyor. O zamana kadar işlemci ve belleğin hızı yaklaşık olarak aynıydı. Çiplerin hızlı gelişimi, RAM'in hızını artırmak için bir tür "koltuk değneği" gerektiriyordu, ancak ultra hızlı yongaların kullanılması çok pahalıydı ve bu nedenle daha ekonomik bir seçenekle, yüksek hızlı bir belleğin tanıtılmasıyla idare etmeye karar verdiler. CPU'daki dizi.

    Önbellek modülü ilk olarak Intel 80386'da ortaya çıktı. O sırada DRAM gecikmeleri 120 nanosaniye civarında gezinirken, daha modern bir SRAM modülü gecikmeyi o sırada etkileyici bir şekilde 10 nanosaniyeye düşürdü. HDD ve SSD arasındaki çatışmada yaklaşık bir resim daha net bir şekilde gösterilmiştir.

    Başlangıçta, önbellek, o zamanın teknik sürecinin seviyesi nedeniyle doğrudan anakartlara lehimlendi. Intel 80486'dan başlayarak, 8 kb bellek doğrudan işlemci kalıbına dahil edildi, bu da performansı daha da artırdı ve kalıp alanını azalttı.

    Bu düzen teknolojisi, yalnızca Pentium MMX'in piyasaya sürülmesine kadar alakalı kaldı ve ardından SRAM belleği daha gelişmiş SDRAM ile değiştirildi.
    Ve işlemciler çok daha küçüldü ve bu nedenle harici devrelere olan ihtiyaç ortadan kalktı.

    önbellek seviyeleri

    Modern CPU'ların işaretlenmesinde ve'ye ek olarak, 1,2 ve 3 seviyeli önbellek boyutu gibi bir şey bulabilirsiniz. Nasıl tanımlanır ve neyi etkiler? Basit terimlerle anlayalım.

    • Birinci düzey (L1) önbellek, CPU mimarisindeki en önemli ve en hızlı yongadır. Bir işlemci, çekirdek sayısına eşit sayıda modül barındırabilir. Mikro devrenin en çok talep edilen ve önemli verileri yalnızca çekirdeğinden bellekte saklayabilmesi dikkat çekicidir. Dizinin boyutu genellikle 32-64 KB ile sınırlıdır.
    • İkinci seviye önbellek (L2) - hızdaki düşüş, arabellek boyutunda 256 ve hatta 512 KB'ye ulaşan bir artışla telafi edilir. Çalışma prensibi L1 ile aynıdır, ancak içinde daha az öncelikli verilerin depolanması nedeniyle bellek talep frekansı daha düşüktür.
    • Üçüncü düzey (L3) önbellek, listelenenler arasında en yavaş ve en hacimli bölümdür. Yine de, bu dizi RAM'den çok daha hızlıdır. Sunucu yongaları söz konusu olduğunda boyut 20 ve hatta 60 MB'a ulaşabilir. Dizinin faydası çok büyüktür: sistemin tüm çekirdekleri arasındaki veri alışverişinde önemli bir bağlantıdır. L3 olmasaydı, çipin tüm öğeleri dağılırdı.

    Satışta hem iki hem de üç seviyeli bir hafıza yapısı bulabilirsiniz. Hangisi daha iyi? İşlemciyi sadece ofis programları ve gündelik oyunlar için kullanırsanız herhangi bir fark hissetmezsiniz. Sistem, karmaşık 3D oyunlar, arşivleme, işleme ve grafikler dikkate alınarak monte edilirse, bazı durumlarda artış% 5 ila 10 arasında değişecektir.
    Bir L3 önbelleği, yalnızca düzenli olarak karmaşık hesaplamalar gerektiren çok iş parçacıklı uygulamalarla düzenli olarak çalışmayı düşünüyorsanız haklı çıkar. Bu nedenle, sunucu modelleri genellikle büyük L3 önbellekleri kullanır. Bunun yeterli olmadığı zamanlar olmasına rağmen, ana karta bağlı ayrı bir mikro devre gibi görünen L4 modüllerini ek olarak kurmanız gerekir.

    İşlemcinizdeki seviye sayısını ve önbellek boyutunu nasıl öğrenebilirsiniz?

    Bunun 3 şekilde yapılabileceği gerçeğiyle başlayalım:

    • komut satırı aracılığıyla (yalnızca L2 ve L3 önbelleği);
    • İnternette özellikleri arayarak;
    • üçüncü taraf yardımcı programları kullanarak.

    Çoğu işlemci için L1'in 32 KB olduğu ve L2 ile L3'ün büyük ölçüde dalgalanabileceği gerçeğini temel alırsak, son 2 değere ihtiyacımız var. Bunları aramak için, "Başlat" aracılığıyla komut satırını açın (arama çubuğundan "cmd" değerini girin).

    Sistem, L2 için şüpheli derecede yüksek bir değer gösterecektir. İşlemci çekirdeği sayısına bölmeniz ve nihai sonucu bulmanız gerekir.

    Ağda veri arayacaksanız, önce CPU'nun tam adını bulun. "Bilgisayarım" simgesine sağ tıklayın ve "Özellikler"i seçin. "Sistem" sütununda, gerçekten ihtiyacımız olan bir "İşlemci" öğesi olacaktır. Adını aynı Google veya Yandex'de yeniden yazın ve sitelerdeki değeri görün. Güvenilir bilgi için üreticinin resmi portallarını (Intel veya AMD) seçmek daha iyidir.
    Üçüncü yöntem de sorun yaratmaz, ancak taşın özelliklerini incelemek için GPU-Z, AIDA64 gibi ek yazılımların ve diğer yardımcı programların yüklenmesini gerektirir. Ayrıntılı olarak hız aşırtma ve sürü oluşturma hayranları için bir seçenek.

    Sonuçlar

    Artık önbelleğin ne olduğunu, boyutunun neye bağlı olduğunu ve ultra hızlı bir veri dizisinin hangi amaçlarla kullanıldığını anlıyorsunuz. Şu anda, büyük miktarlarda önbellek açısından piyasadaki en ilginç çözümler, 16 MB L3 ile AMD Ryzen 5 ve 7 cihazlarıdır.

    İlerleyen yazılarımızda işlemciler, chiplerin faydaları ve daha fazlası gibi konuları ele alacağız. ve bizimle kal. Tekrar görüşene kadar hoşçakalın.

    AMD işlemciler için L3 önbelleği ne kadar önemlidir?

    Aslında, çok çekirdekli işlemcileri, mevcut tüm çekirdekler tarafından paylaşılacak ayrılmış bellekle donatmak mantıklıdır. Bu rolde, hızlı bir L3 önbelleği, en sık istenen verilere erişimi önemli ölçüde hızlandırabilir. Ardından, mümkünse çekirdeklerin yavaş ana belleğe (RAM) erişmesi gerekmeyecektir.

    En azından teoride. Son zamanlarda AMD Athlon II X4 işlemcisini duyurdu L3 önbelleği olmayan bir Phenom II X4 modeli olan , bunun çok gerekli olmadığını ima ediyor. Önbelleğin performansı nasıl etkilediğini görmek için iki işlemciyi (L3 önbelleği olan ve olmayan) doğrudan karşılaştırmaya karar verdik.

    Büyütmek için resme tıklayın.

    Önbellek nasıl çalışır?

    Testlere dalmadan önce, bazı temel bilgileri anlamak önemlidir. Önbellek ilkesi oldukça basittir. Önbellek, CPU isteklerini daha uzak ve daha yavaş belleğe indirgemek için verileri işlemcinin işlem çekirdeklerine mümkün olduğunca yakın arabelleğe alır. Modern masaüstü platformlarında, önbellek hiyerarşisi, RAM erişiminden önce gelen üç adede kadar seviye içerir. Ayrıca, ikinci ve özellikle üçüncü seviyelerin önbellekleri yalnızca veri arabelleğe alma işlevi görmez. Amaçları, çekirdeklerin bilgi alışverişi yapması gerektiğinde CPU veri yolunun aşırı yüklenmesini önlemektir.

    Vuruşlar ve ıskalamalar

    Önbellek mimarisinin etkinliği isabet yüzdesi ile ölçülür. Önbellek tarafından karşılanabilecek veri istekleri isabet olarak kabul edilir. Bu önbellek gerekli verileri içermiyorsa, istek bellek boru hattı boyunca iletilir ve bir kayıp sayılır. Tabii ki, ıskalamalar bilgiyi almak için daha fazla zamana yol açar. Sonuç olarak, hesaplama hattında "kabarcıklar" (kesinti süresi) ve gecikmeler ortaya çıkar. Vuruşlar ise maksimum performansı korumanıza izin verir.

    Önbellek yazma, münhasırlık, tutarlılık

    Değiştirme ilkeleri, önbellek alanının yeni girişler için nasıl kullanılabilir hale getirileceğini belirler. Önbelleğe yazılan verilerin er ya da geç ana bellekte görünmesi gerektiğinden, sistemler bunu önbelleğe yazarken (write-through) aynı anda yapabilir veya veri alanını "kirli" (write-back) olarak işaretleyebilir, ve önbellekten çıkarılacağı zaman belleğe yazın.

    Birkaç önbellek seviyesindeki veriler, fazlalık olmadan özel olarak depolanabilir. O zaman iki farklı önbellek hiyerarşisinde aynı veri satırlarını bulamazsınız. Veya önbellekler kapsayıcı olarak çalışabilir, yani önbelleğin alt düzeylerinin önbelleğin üst düzeylerinde (işlemci çekirdeğine daha yakın) bulunan verileri içermesi garanti edilir. AMD Phenom özel bir L3 önbellek kullanırken, Intel kapsayıcı bir önbellek stratejisi izliyor. Tutarlılık protokolleri, verileri çekirdekler, önbellek katmanları ve hatta işlemciler arasında tutarlı ve güncel tutar.

    önbellek boyutu

    Daha büyük bir önbellek daha fazla veri tutabilir, ancak gecikmeyi artırma eğilimindedir. Ek olarak, büyük bir önbellek önemli sayıda işlemci transistörü tüketir, bu nedenle transistörlerin "bütçesi", kalıp boyutu, güç tüketimi ve performans / gecikme süresi arasında bir denge bulmak önemlidir.

    ilişkilendirilebilirlik

    RAM'deki kayıtlar doğrudan önbelleğe eşlenebilir, yani RAM'deki verilerin bir kopyası için önbellekte yalnızca bir konum vardır veya bunlar n-yollu ilişkilendirilebilir, yani önbellekte n olası konum vardır bu verilerin depolanabileceği yer. Daha yüksek ilişkilendirilebilirlik (tamamen ilişkilendirilebilir önbelleklere kadar), önbellekteki mevcut verilerin üzerine yazılması gerekmediğinden en iyi önbelleğe alma esnekliğini sağlar. Başka bir deyişle, yüksek bir n-derecesi ilişkilendirilebilirlik, daha yüksek bir isabet oranını garanti eder, ancak tüm bu ilişkilendirmelerin bir isabet için test edilmesi daha fazla zaman aldığından gecikmeyi artırır. Kural olarak, en yüksek ilişkilendirme derecesi, son önbellekleme düzeyi için uygundur, çünkü maksimum kapasite orada mevcuttur ve bu önbellek dışında veri aramak, işlemcinin yavaş RAM'e erişmesine neden olur.

    Birkaç örnek vermek gerekirse, Core i5 ve i7, veriler için 8 yollu ilişkilendirilebilirliğe sahip 32 KB L1 önbellek ve talimatlar için 4 yollu ilişkilendirilebilirliğe sahip 32 KB L1 önbellek kullanır. Intel'in talimatların daha hızlı kullanılabilir olmasını istemesi ve veriler için L1 önbelleğinin maksimum isabet yüzdesine sahip olması anlaşılır bir durumdur. Intel'in L2 önbelleği 8 yollu ilişkilendirilebilirliğe sahipken, Intel'in L3 önbelleği isabetleri en üst düzeye çıkarmak için 16 yollu ilişkilendirme uyguladığı için daha da akıllıdır.

    Ancak AMD, gecikmeyi azaltmak için 2 yollu ilişkilendirilebilirliğe sahip L1 önbelleği kullanan Phenom II X4 işlemcilerle farklı bir strateji izliyor. Olası eksiklikleri telafi etmek için önbellek kapasitesi ikiye katlandı: veriler için 64 KB ve talimatlar için 64 KB. L2 önbelleği, Intel tasarımı gibi 8 yollu ilişkilendirilebilirliğe sahiptir, ancak AMD'nin L3 önbelleği 48 yollu ilişkilendirilebilirlikle çalışır. Ancak bir önbellek mimarisini veya diğerini seçme kararı, tüm CPU mimarisi dikkate alınmadan değerlendirilemez. Test sonuçlarının pratik öneme sahip olması oldukça doğaldır ve amacımız, tüm bu karmaşık çok seviyeli önbelleğe alma yapısının pratik bir testiydi.

    Her modern işlemcinin, işlemcinin talimatlarını ve verilerini neredeyse anında kullanıma hazır şekilde depolayan özel bir önbelleği vardır. Bu seviye genellikle birinci önbellek seviyesi veya L1 olarak anılır ve ilk olarak 486DX işlemcilerle tanıtıldı. Son zamanlarda, AMD işlemciler çekirdek başına 64k L1 önbellek (veri ve yönergeler için) kullanacak şekilde standart hale gelirken, Intel işlemciler çekirdek başına 32k L1 önbellek kullanır (ayrıca veri ve yönergeler için)

    İlk seviye önbellek ilk olarak 486DX işlemcilerde göründü ve ardından tüm modern CPU'ların ayrılmaz bir özelliği haline geldi.

    İkinci seviye (L2) önbellek, Pentium III'ün piyasaya sürülmesinden sonra tüm işlemcilerde göründü, ancak bunun paketteki ilk uygulamaları Pentium Pro işlemcideydi (ancak bir çipte değil). Modern işlemciler, 6 MB'a kadar çip üzerinde L2 önbellek ile donatılmıştır. Kural olarak, bu hacim, örneğin bir Intel Core 2 Duo işlemcide iki çekirdeğe bölünür. Düzenli L2 yapılandırmaları, çekirdek başına 512 KB veya 1 MB önbellek sağlar. Daha küçük L2 önbelleğe sahip işlemciler genellikle daha düşük fiyat seviyesindedir. Aşağıda erken L2 önbellek uygulamalarının bir diyagramı bulunmaktadır.

    Pentium Pro'nun işlemci paketinde L2 önbelleği vardı. Pentium III ve Athlon'un sonraki nesilleri, o zamanlar çok yaygın olan (1998, 1999) ayrı SRAM yongaları aracılığıyla L2 önbelleğini uyguladı.

    180 nm'ye kadar işlem teknolojisinin sonraki duyurusu, üreticilerin nihayet L2 önbelleğini işlemci kalıbına entegre etmesine izin verdi.


    İlk çift çekirdekli işlemciler, bir pakete iki kalıp takıldığında basitçe mevcut tasarımları kullanıyordu. AMD yekpare bir kalıp üzerinde çift çekirdekli bir işlemci çıkardı, bir bellek denetleyicisi ve bir anahtar ekledi ve Intel, ilk çift çekirdekli işlemcisi için tek bir pakette iki tek çekirdekli kalıbı bir araya getirdi.


    L2 önbellek ilk kez Core 2 Duo işlemcilerde iki çekirdek arasında paylaştırıldı. AMD daha da ileri giderek ilk dört çekirdekli Phenom'unu sıfırdan inşa ederken, Intel yine ilk dört çekirdekli işlemcisi için birkaç kalıp kullandı, bu sefer maliyetleri düşük tutmak için iki çift çekirdekli Core 2 kalıbı.

    L3 önbelleği, Alpha 21165 işlemcisinin (96 kB, 1995'te tanıtılmıştır) veya IBM Power 4'ün (256 kB, 2001) ilk günlerinden beri mevcuttur. Ancak, x86 tabanlı mimarilerde, L3 önbelleği ilk olarak Intel Itanium 2, Pentium 4 Extreme (Gallatin, her iki işlemci de 2003'te) ve Xeon MP (2006) modelleriyle ortaya çıktı.

    Modern mimariler L3 önbelleğini çok çekirdekli işlemcilerdeki çekirdekler arasında veri alışverişi için geniş ve paylaşılan bir arabellek olarak kullansa da, ilk uygulamalar önbellek hiyerarşisinde yalnızca başka bir seviye sağladı. Bu aynı zamanda yüksek n-dereceli çağrışımcılık ile vurgulanır. Birkaç çekirdeğin ana RAM'e çok yavaş erişim kullandığı bir durum elde etmektense önbellekte biraz daha uzun süre veri aramak daha iyidir. AMD, daha önce bahsedilen Phenom hattıyla birlikte ilk olarak bir masaüstü işlemcide L3 önbelleğini tanıttı. 65nm Phenom X4, 2MB paylaşımlı L3 önbellek içerirken mevcut 45nm Phenom II X4, 6MB paylaşımlı L3 önbelleğe sahiptir. Intel Core i7 ve i5 işlemciler 8 MB L3 önbellek kullanır.

    Modern dört çekirdekli işlemciler, her çekirdek için ayrılmış L1 ve L2 önbelleklerinin yanı sıra tüm çekirdekler tarafından paylaşılan büyük bir L3 önbelleğine sahiptir. Paylaşılan L3 önbelleği, çekirdeklerin üzerinde paralel olarak çalışabileceği veri alışverişine de izin verir.


    Önbellek, istenmesi en muhtemel bilgileri içeren hızlı erişimli bir ara arabellektir. Önbellekteki verilere erişmek, ham verileri RAM'den (RAM) almaktan ve harici (sabit disk veya yarıiletken sürücü) bellekten daha hızlıdır, bu nedenle ortalama erişim süresini azaltır ve bilgisayar sisteminin genel performansını artırır.

    Bazı merkezi işlem birimi (CPU) modellerinde, kayıtlardan daha yavaş olan rasgele erişim belleğine (RAM) erişimi en aza indirmek için kendi önbellekleri bulunur. Önbellek, RAM saat hızı CPU saat hızından önemli ölçüde düşük olduğunda önemli performans kazanımları sağlayabilir. Önbellek için saat hızı genellikle CPU frekansından çok daha az değildir.

    önbellek seviyeleri

    CPU önbelleği birkaç seviyeye ayrılmıştır. Genel amaçlı bir işlemcide, düzey sayısı şu anda 3'e kadar çıkabilir. Düzey N+1 önbellekler, Düzey N önbelleklere göre tipik olarak daha büyüktür ve erişim ve veri aktarımında daha yavaştır.

    En hızlı bellek birinci düzey önbellektir -- L1-önbellek. Aslında işlemciyle aynı yonga üzerinde bulunduğu ve işlevsel blokların bir parçası olduğu için işlemcinin ayrılmaz bir parçasıdır. Modern işlemcilerde, L1 önbelleği genellikle talimat (talimat) önbelleği ve veri önbelleği (Harvard mimarisi) olmak üzere iki önbelleğe ayrılır. L1 önbelleği olmayan çoğu işlemci çalışamaz. L1 önbelleği işlemci frekansında çalışır ve genel olarak her saat döngüsünde erişilebilir. Aynı anda birden çok okuma/yazma işlemi gerçekleştirmek genellikle mümkündür. Erişim gecikmesi tipik olarak 2-4 çekirdek döngüsüdür. Hacim genellikle küçüktür - 384 KB'den fazla değildir.

    En hızlı ikinci L2 önbellek - ikinci seviye bir önbellek, genellikle L1 gibi bir çip üzerinde bulunur. Daha eski işlemcilerde anakart üzerindeki yonga seti. L2 önbelleğinin hacmi 128 KB ila 1x12 MB arasındadır. Modern çok çekirdekli işlemcilerde, aynı yonga üzerinde bulunan ikinci seviye önbellek ayrı bir bellektir - toplam önbellek boyutu nM MB'dir, her çekirdekte nM / nC MB bulunur; burada nC, işlemci çekirdeği sayısıdır. Tipik olarak, çekirdek çipte bulunan L2 önbelleğinin gecikme süresi 8 ila 20 çekirdek döngüsüdür.

    Üçüncü seviye önbellek en az hızlı olanıdır, ancak boyutu çok etkileyici olabilir - 24 MB'den fazla. L3 önbelleği, önceki önbelleklerden daha yavaştır, ancak yine de RAM'den önemli ölçüde daha hızlıdır. Çok işlemcili sistemlerde, ortak kullanımdadır ve çeşitli L2 verilerini senkronize etmek için tasarlanmıştır.

    Bazen 4. seviye bir önbellek de vardır, genellikle ayrı bir çipte bulunur. Düzey 4 önbellek kullanımı, yalnızca yüksek performanslı sunucular ve ana çerçeveler için haklıdır.

    Farklı önbellekler (hem bir hem birden çok işlemci) arasındaki senkronizasyon sorunu, önbellek tutarlılığı ile çözülür. Farklı düzeylerdeki önbellekler veya dedikleri gibi önbellek mimarileri arasında bilgi alışverişi için üç seçenek vardır: kapsayıcı, özel ve özel olmayan.

    AMD işlemciler için L3 önbelleği ne kadar önemlidir?

    Aslında, çok çekirdekli işlemcileri, mevcut tüm çekirdekler tarafından paylaşılacak ayrılmış bellekle donatmak mantıklıdır. Bu rolde, hızlı bir L3 önbelleği, en sık istenen verilere erişimi önemli ölçüde hızlandırabilir. O zaman çekirdekler, eğer böyle bir fırsat varsa, yavaş ana belleğe (RAM, RAM) erişmek zorunda kalmayacak.

    En azından teoride. AMD kısa bir süre önce L3 önbelleği olmayan bir Phenom II X4 modeli olan Athlon II X4 işlemcisini duyurarak bunun gerekli olmadığını ima etti. Önbelleğin performansı nasıl etkilediğini görmek için iki işlemciyi (L3 önbelleği olan ve olmayan) doğrudan karşılaştırmaya karar verdik.

    Önbellek nasıl çalışır?

    Testlere dalmadan önce, bazı temel bilgileri anlamak önemlidir. Önbellek ilkesi oldukça basittir. Önbellek, CPU isteklerini daha uzak ve daha yavaş belleğe indirgemek için verileri işlemcinin işlem çekirdeklerine mümkün olduğunca yakın arabelleğe alır. Modern masaüstü platformlarında, önbellek hiyerarşisi, RAM erişiminden önce gelen üç adede kadar seviye içerir. Ayrıca, ikinci ve özellikle üçüncü seviyelerin önbellekleri yalnızca veri arabelleğe alma işlevi görmez. Amaçları, çekirdeklerin bilgi alışverişi yapması gerektiğinde CPU veri yolunun aşırı yüklenmesini önlemektir.

    Vuruşlar ve ıskalamalar

    Önbellek mimarisinin etkinliği isabet yüzdesi ile ölçülür. Önbellek tarafından karşılanabilecek veri istekleri isabet olarak kabul edilir. Bu önbellek gerekli verileri içermiyorsa, istek bellek boru hattı boyunca iletilir ve bir kayıp sayılır. Tabii ki, ıskalamalar bilgiyi almak için daha fazla zamana yol açar. Sonuç olarak, hesaplama hattında "kabarcıklar" (kesinti süresi) ve gecikmeler ortaya çıkar. Vuruşlar ise maksimum performansı korumanıza izin verir.

    Önbellek yazma, münhasırlık, tutarlılık

    Değiştirme ilkeleri, önbellek alanının yeni girişler için nasıl kullanılabilir hale getirileceğini belirler. Önbelleğe yazılan verilerin er ya da geç ana bellekte görünmesi gerektiğinden, sistemler bunu önbelleğe yazarken (write-through) aynı anda yapabilir veya veri alanını "kirli" (write-back) olarak işaretleyebilir, ve önbellekten çıkarılacağı zaman belleğe yazın.

    Birkaç önbellek seviyesindeki veriler, fazlalık olmadan özel olarak depolanabilir. O zaman iki farklı önbellek hiyerarşisinde aynı veri satırlarını bulamazsınız. Veya önbellekler kapsayıcı olarak çalışabilir, yani önbelleğin alt düzeylerinin önbelleğin üst düzeylerinde (işlemci çekirdeğine daha yakın) bulunan verileri içermesi garanti edilir. AMD Phenom özel bir L3 önbellek kullanırken, Intel kapsayıcı bir önbellek stratejisi izliyor. Tutarlılık protokolleri, verileri çekirdekler, önbellek katmanları ve hatta işlemciler arasında tutarlı ve güncel tutar.

    önbellek boyutu

    Daha büyük bir önbellek daha fazla veri tutabilir, ancak gecikmeyi artırma eğilimindedir. Ek olarak, büyük bir önbellek önemli sayıda işlemci transistörü tüketir, bu nedenle transistörlerin "bütçesi", kalıp boyutu, güç tüketimi ve performans / gecikme süresi arasında bir denge bulmak önemlidir.

    ilişkilendirilebilirlik

    RAM'deki kayıtlar doğrudan önbelleğe eşlenebilir, yani RAM'deki verilerin bir kopyası için önbellekte yalnızca bir konum vardır veya bunlar n-yollu ilişkilendirilebilir, yani önbellekte n olası konum vardır bu verilerin depolanabileceği yer. Daha yüksek ilişkilendirilebilirlik (tamamen ilişkilendirilebilir önbelleklere kadar), önbellekteki mevcut verilerin üzerine yazılması gerekmediğinden en iyi önbelleğe alma esnekliğini sağlar. Başka bir deyişle, yüksek bir n-derecesi ilişkilendirilebilirlik, daha yüksek bir isabet oranını garanti eder, ancak tüm bu ilişkilendirmelerin bir isabet için test edilmesi daha fazla zaman aldığından gecikmeyi artırır. Kural olarak, en yüksek ilişkilendirme derecesi, son önbellekleme düzeyi için uygundur, çünkü maksimum kapasite orada mevcuttur ve bu önbellek dışında veri aramak, işlemcinin yavaş RAM'e erişmesine neden olur.

    Birkaç örnek vermek gerekirse, Core i5 ve i7, veriler için 8 yollu ilişkilendirilebilirliğe sahip 32 KB L1 önbellek ve talimatlar için 4 yollu ilişkilendirilebilirliğe sahip 32 KB L1 önbellek kullanır. Intel'in talimatların daha hızlı kullanılabilir olmasını istemesi ve veriler için L1 önbelleğinin maksimum isabet yüzdesine sahip olması anlaşılır bir durumdur. Intel'in L2 önbelleği 8 yollu ilişkilendirilebilirliğe sahipken, Intel'in L3 önbelleği isabetleri en üst düzeye çıkarmak için 16 yollu ilişkilendirme uyguladığı için daha da akıllıdır.

    Ancak AMD, gecikmeyi azaltmak için 2 yollu ilişkilendirilebilirliğe sahip L1 önbelleği kullanan Phenom II X4 işlemcilerle farklı bir strateji izliyor. Olası eksiklikleri telafi etmek için önbellek kapasitesi ikiye katlandı: veriler için 64 KB ve talimatlar için 64 KB. L2 önbelleği, Intel tasarımı gibi 8 yollu ilişkilendirilebilirliğe sahiptir, ancak AMD'nin L3 önbelleği 48 yollu ilişkilendirilebilirlikle çalışır. Ancak bir önbellek mimarisini veya diğerini seçme kararı, tüm CPU mimarisi dikkate alınmadan değerlendirilemez. Test sonuçlarının pratik öneme sahip olması oldukça doğaldır ve amacımız, tüm bu karmaşık çok seviyeli önbelleğe alma yapısının pratik bir testiydi.

    Bilgisayar işlemcileri son birkaç yılda önemli ilerlemeler kaydetti. Transistörlerin boyutu her yıl küçülüyor ve performans artıyor. Aynı zamanda, Moore yasası zaten geçersiz hale geliyor. İşlemcilerin performansına gelince, yalnızca transistör sayısı ve frekansı değil, aynı zamanda önbellek miktarı da dikkate alınmalıdır.

    İşlemciler hakkında bilgi ararken önbellek hakkında bir şeyler duymuş olabilirsiniz. Ama genelde bu rakamlara pek dikkat etmeyiz, işlemci reklamlarında bile pek öne çıkmazlar. İşlemci önbelleğinin neyi etkilediğini, ne tür önbellek olduğunu ve bunların nasıl çalıştığını görelim.

    Basit bir ifadeyle, işlemci önbelleği yalnızca çok hızlı bir bellektir. Bildiğiniz gibi, bir bilgisayarın birkaç tür belleği vardır. Bu, verileri, işletim sistemini ve SSD veya sabit sürücü gibi programları depolamak için kullanılan salt okunur bir bellektir. Bilgisayar ayrıca RAM kullanır. Bu, sabit olandan çok daha hızlı olan rastgele erişimli bir bellektir. Ve son olarak, işlemci, topluca önbellek olarak adlandırılan daha da hızlı bellek bloklarına sahiptir.

    Bir bilgisayarın belleğini hız açısından bir hiyerarşi olarak düşünürseniz önbellek bu hiyerarşinin en üstünde yer alır. Ayrıca işlemcinin bir parçası olduğu için bilgi işlem çekirdeklerine en yakın olanıdır.

    İşlemci önbelleği statik bir bellektir (SRAM) ve RAM ile çalışmayı hızlandırmak için tasarlanmıştır. Dinamik Rastgele Erişimli Belleğin (DRAM) aksine, veriler burada sürekli güncellenmeden saklanabilir.

    İşlemci önbelleği nasıl çalışır?

    Bildiğiniz gibi program, işlemcinin yürüttüğü bir dizi talimattır. Bir programı çalıştırdığınızda, bilgisayarın bu talimatları salt okunur bellekten işlemciye aktarması gerekir. Bellek hiyerarşisinin devreye girdiği yer burasıdır. İlk olarak, veriler RAM'e yüklenir ve ardından işlemciye aktarılır.

    Bu günlerde, bir işlemci saniyede çok sayıda talimatı işleyebilir. Yeteneklerinden en iyi şekilde yararlanmak için işlemcinin süper hızlı belleğe ihtiyacı vardır. Bu nedenle önbellek geliştirildi.

    İşlemcinin bellek denetleyicisi, RAM'den veri alma ve önbelleğe gönderme işini yapar. Sisteminizde kullanılan işlemciye bağlı olarak, bu denetleyici anakartın kuzey köprüsünde veya işlemcinin kendisinde bulunabilir. Önbellek ayrıca işlemcide yürütme talimatlarının sonuçlarını da saklar. Ek olarak, işlemci önbelleğinin kendisinin de kendi hiyerarşisi vardır.

    İşlemci önbellek seviyeleri - L1, L2 ve L3

    İşlemci önbelleğinin tamamı üç düzeye ayrılmıştır: L1, L2 ve L3. Bu hiyerarşi aynı zamanda önbelleğin hızına olduğu kadar boyutuna da bağlıdır.

    • L1 Önbellek (birinci düzey önbellek) işlemcideki en hızlı önbellek türüdür. Erişim önceliği açısından, bu önbellek, bir programın belirli bir talimatı yürütmek için ihtiyaç duyabileceği verileri içerir;
    • L2 Önbellek (işlemcinin ikinci seviyesinin önbelleği)- L1'den daha yavaş, ancak boyut olarak daha büyük. Hacmi 256 kilobayttan sekiz megabayta kadar olabilir. L2 önbelleği, işlemcinin gelecekte ihtiyaç duyabileceği verileri içerir. Çoğu modern işlemcide, L1 ve L2 önbellekleri, işlemci çekirdeklerinin kendisinde bulunur ve her çekirdek kendi önbelleğini alır;
    • L3 Önbellek (üçüncü düzey önbellek) en büyük ve en yavaş önbellektir. Boyutu 4 ila 50 megabayt arasında olabilir. Modern CPU'larda, L3 önbelleği için çip üzerinde ayrı bir yer ayrılmıştır.

    Şu anda bunların hepsi işlemci önbellek seviyeleri, Intel bir L4 önbellek oluşturmaya çalıştı, ancak bu teknoloji henüz kök salmadı.

    İşlemcideki önbellek ne için?

    Bu makalenin ana sorusunu cevaplamanın zamanı geldi, işlemci önbelleği neyi etkiler? Veriler RAM'den L3 önbelleğine, ardından L2'ye ve sonra L1'e akar. İşlemci bir işlemi gerçekleştirmek için veriye ihtiyaç duyduğunda onu L1 önbelleğinde bulmaya çalışır ve bulursa bu duruma önbellek isabeti denir. Aksi takdirde, arama L2 ve L3 önbelleklerinde devam eder. Şimdi bile veri bulunamazsa, RAM'e bir istekte bulunulur.

    Artık önbelleğin RAM ile işlemci arasındaki bilgi aktarımını hızlandırmak için tasarlandığını biliyoruz. Verilerin bellekten çıkarılması için geçen süreye Gecikme denir. L1 önbelleği en düşük gecikme süresine sahiptir, yani en hızlısıdır, L3 önbelleği ise en yüksektir. Önbellekte veri olmadığında, işlemcinin belleğe erişmesi gerektiğinden daha da yüksek gecikme yaşarız.

    Daha önce, işlemcilerin tasarımında, L2 ve L3 önbellekleri işlemcinin dışına taşındı ve bu da yüksek gecikmeye neden oldu. Bununla birlikte, işlemcilerin üretildiği üretim sürecindeki azalma, eskisinden çok daha küçük bir alana milyarlarca transistör sığdırabilmenizi sağlar. Sonuç olarak, önbelleği çekirdeğe mümkün olduğunca yakın yerleştirmek için alan boşaltılır ve gecikme daha da azaltılır.

    Önbellek performansı nasıl etkiler?

    Bir önbelleğin bilgisayarın performansı üzerindeki etkisi, doğrudan verimliliğine ve önbellek isabetlerinin sayısına bağlıdır. Önbellekte veri olmadığı durumlar, genel performansı büyük ölçüde düşürür.

    İşlemcinin arka arkaya 100 kez L1 önbelleğinden veri yüklediğini hayal edin. Önbellek isabet yüzdesi %100 ise, işlemcinin bu verileri alması 100 nanosaniye sürer. Ancak isabet yüzdesi %99'a düşer düşmez, işlemcinin L2 önbelleğinden veri alması gerekecek ve şimdiden 10 nanosaniyelik bir gecikme var. 99 istek için 99 nanosaniye ve 1 istek için 10 nanosaniye alırsınız. Bu nedenle, önbellek isabetlerinin yüzdesini %1 azaltmak, işlemci performansını %10 azaltır.

    Gerçek zamanlı olarak, önbellekteki isabetlerin yüzdesi %95 ile %97 arasındadır. Ancak anladığınız gibi, bu göstergeler arasındaki performans farkı% 2 değil,% 14'tür. Örnekte, affedilen verilerin her zaman L2 önbelleğinde olduğunu varsaydığımızı, gerçek hayatta verilerin önbellekten kaldırılabileceğini, yani gecikme süresi olan RAM'den alınması gerektiğini unutmayın. 80-120 nanosaniye. Burada yüzde 95 ile yüzde 97 arasındaki fark daha da önemli.

    AMD Bulldozer ve Piledriver işlemcilerindeki düşük önbellek performansı, Intel işlemcilere yenilmelerinin ana nedenlerinden biriydi. Bu işlemcilerde, L1 önbelleği birden çok çekirdek arasında paylaşıldı ve bu da onu çok verimsiz hale getirdi. Modern Ryzen işlemcilerde bu sorun yok.

    Önbellek ne kadar büyük olursa, işlemci daha fazla durumda ihtiyaç duyduğu verileri daha hızlı alabileceği için performansın o kadar yüksek olduğu sonucuna varılabilir. Ancak, yalnızca işlemci önbelleğinin boyutuna değil, mimarisine de dikkat etmeye değer.

    sonuçlar

    Artık işlemci önbelleğinin neden sorumlu olduğunu ve nasıl çalıştığını biliyorsunuz. Önbellek tasarımı sürekli gelişiyor ve bellek daha hızlı ve daha ucuz hale geliyor. AMD ve Intel, önbellekle ilgili pek çok deney yaptı ve hatta Intel, L4 önbelleğini kullanmayı denedi. İşlemci pazarı her zamankinden daha hızlı büyüyor. Önbellek mimarisi, işlemcilerin sürekli artan gücüne ayak uyduracaktır.

    Ayrıca modern bilgisayarların sahip olduğu darboğazları ortadan kaldırmak için çok şey yapılıyor. Bellek gecikmesini azaltmak bu işin en önemli kısımlarından biridir. Gelecek çok umut verici görünüyor.

    Benzer girişler.