
Günümüze kadar mimari açıdan herhangi bir işlemci or GPU entegre bir önbelleğe sahip olmayan. Performans için gerekli olduğundan, önbellek olmadığı için herhangi bir CPU veya GPU'nun performansı düşer. Ancak önbellek bir CPU veya GPU'daki performansı ne ölçüde etkiler? Bunu size ayrıntılı olarak açıklıyoruz.
Önbelleğe sahip ilk PC CPU'su, Intel 80486, o zamandan beri, tüm işlemcilerin, yalnızca CPU'lar için değil, aynı zamanda GPU'lar için de birkaç düzeyden oluşan bir hiyerarşide önbellek belleğini nasıl birleştirdiğini gördük.

Ana yardımcı programlar herkes tarafından bilinir. İlk olarak, işlemci ve işlemci arasındaki muazzam gecikmeyi azaltmak RAM, ikincisi, farklı talimatların her birinin güç tüketimi ve üçüncüsü, özellikle aynı bellek adresine erişen birkaç çekirdekten bahsedersek, daha yüksek gecikmeye yol açabilecek belleğe erişimle çekişmeyi azaltır.
Ancak, yeni işlemciler tasarlanırken dikkate alınan önbellek performansını ölçmenin bir yolu vardır. Önbelleğin hem CPU hem de GPU'nuzdaki performansı nasıl etkilediğini öğrenmek için okumaya devam edin.
Önbellek Özeti

Öncelikle önbelleğin CPU veya GPU tarafından adreslenebilen bir alan olmadığını aklımızda tutmalıyız, adreslenebilir alandan bahsettiğimizde CPU veya GPU'nun bir sonraki veri veya talimatın bulunduğu belirli bir bellek adresine işaret edebileceğini kastediyoruz. işlemek için. Dolayısıyla önbellek CPU tarafından gösterilemez ve bu nedenle CPU tarafından yönetilemez.
Önbellek mekanizmalarının otomatik olarak çalıştığı ve bir CPU çekirdeği bir arama yaptığında yaptığı şeyin, belirli verileri bulmak için farklı önbelleklerden geçtiği söylenebilir. Bir çekirdek değişiklik yaptığında, bu verilerin geri kalan önbelleklerdeki tüm kopyaları da otomatik olarak güncellenir. Aynı şekilde, RAM içeriğinin hangi kopyalarının önbellekte tutulacağına ve hangilerinin saklanmayacağına karar veren önbellek mekanizmalarının kendisidir.
Ve önbelleğin yaptığı şey, o anda yürütülmekte olan kod satırlarına en yakın belleğin kopyalarını depolamaktır. Bunun nedeni, kodun çoğunlukla sıralı olmasıdır, bu nedenle çoğu zaman programda işlenecek bir sonraki satır hemen sonraki satır olacaktır.
Önbellek performansı nasıl ölçülür?

CPU veya GPU'nun bellekteki verilere erişmesi gerektiğinde, yaptıkları ilk şey önceki önbelleğin farklı seviyelerine erişmektir. Bu yüzden ilk önce birinci seviye önbelleği arayacak, eğer veriyi bulamazsa bir sonraki seviyeye inecek ve aranan veriyi bulana kadar böyle devam edecek.
Veriler bir önbellek seviyesinde olmadığında, “Önbellek Eksikliği” dediğimiz şey meydana gelir ve bu nedenle hiyerarşinin bir sonraki seviyesine inmek gerekir. Bu, eklenecek gecikme açısından ek bir süre olmasına neden olur. Öte yandan, eğer sahipsek
Bunu anlamak için, 3 önbellek seviyesine sahip bir CPU veya GPU'muz olduğunu ve verileri üçüncü seviyede bulduğumuzu varsayalım. Dolayısıyla bu durumda arama süresi aşağıdaki gibi özetlenebilir:
Önbelleğe alınmış veri arama zaman = birinci seviye önbellek arama süresi + ikinci seviye önbellek atlama süresi + ikinci seviye önbellek arama süresi + önbellek atlama gecikmesi 3. seviye + 3. seviye önbellek arama süresi
Önbellek arama süresinin RAM'deki doğrudan arama süresini aşması durumunda, söz konusu işlemcinin önbellek tasarımının yetersiz uygulanacağı dikkate alınmalıdır, çünkü hiçbir mantıksal anlamda önbellekte bir veri aramanın daha uzun sürmesi haklı değildir. bellekten daha. Bu nedenle, her seviye tarafından eklenen farklı gecikme süreleri erişim süresine daha da fazla gecikme eklediğinden, genellikle ek önbellek seviyeleri görmüyoruz.
AMAT'ın ölçülmesi

AMAT, Ortalama Bellek Erişim Süresi veya ortalama bellek erişim süresi anlamına gelir. Bir CPU veya GPU'daki tüm talimatların aynı gecikmeye sahip olmaması ve belleğe aynı şekilde bağlı olmaması nedeniyle bir ortalamadır. Ancak aynı zamanda bir CPU veya GPU'nun önbelleğinin performansını ölçmemize yardımcı olur.
Herhangi bir CPU veya GPU'nun AMAT değerini hesaplamak için aşağıdaki formül kullanılır:
AMAT = Vuruş Süresi + Miss Oranı * Miss Penaltı
Bizi ilgilendiren, CPU'nun verilere erişim süresini ve dolayısıyla veriyi bulma konusundaki gecikmeyi ölçtüğü için AMAT'ın düşük olmasıdır. Önbelleğin performansını ölçmek için AMAT formülünün farklı değerlerine gelince, bunlar şunlardır:
- İlk değer, Hit Time, yani CPU veya GPU'nun önbellekteki verileri bulması için gereken süre . Bu durumda, yolculuğun daha hızlı gerçekleştirilebilmesi için önbelleğin küçük olması önemlidir. Önbellek ne kadar büyükse, yolculuğu yapmak o kadar uzun sürer. Bu nedenle çekirdeğe en yakın önbellek seviyelerinin boyutu çok küçüktür.
- İkinci değer ise Verilerin önbellekte bulunmama yüzdesi olan Miss Rate . Bu, Önbelleğe alınmış bir veriyi bulmanın en iyi yolu depolama kapasitesini artırmak olduğundan, Hit Rate ile çelişir. Önbellek ayrıca, kısa vadede CPU'lar veya GPU'lar tarafından daha fazla erişime sahip olacak diğerlerine yer açmak için hangi verileri içeride tutması gerektiğini bilmek için mekanizmalara sahip olmalıdır.
- Üçüncü değer ise Bayan Penalty, bu veri önbellekte değil de RAM bellekteyse, bir veriye erişmek için geçen gecikme süresidir. Bu, saat döngüleri söz konusu olduğunda çok büyük bir zamandır. Açıkça görüldüğü gibi, verilerin önbellekte değil de RAM'de olması durumunda, RAM'den önce önbellek hiyerarşisinde sağlanan arama süresi eklenmelidir.
Önbelleğin performansı, bu nedenle, Hit Time veya Miss Rate'in nasıl optimize edildiğine bağlı olacaktır, çünkü bir bölümü optimize etmek diğerine zarar vermek anlamına geldiğinden, mimarlar yeni bir tane tasarlarken hangi değere daha fazla önem vereceklerine karar vermelidir. CPU veya yeni bir GPU.