Donanım performans sayacı - Hardware performance counter

İçinde bilgisayarlar, donanım performans sayaçlarıveya donanım sayaçları bir dizi özel amaçlıdır kayıtlar modern içine inşa edilmiş mikroişlemciler donanımla ilgili faaliyetlerin sayısını bilgisayar sistemleri içinde depolamak. İleri düzey kullanıcılar genellikle düşük seviyeli işlem yapmak için bu sayaçlara güvenir. performans analizi veya ayarlama.

Uygulamalar

Bir işlemcideki mevcut donanım sayaçlarının sayısı, her biri İşlemci model, bir geliştiricinin ölçmek isteyebileceği birçok farklı olaya sahip olabilir. Her sayaç, bir L1 önbellek kaçırma veya bir dal yanlış tahmin gibi izlenecek bir olay türünün dizini ile programlanabilir.

Böyle bir sayacı ve ilgili bir talimatı uygulayan ilk işlemcilerden biri RDPMC erişmek için Intel Pentium, ancak şu tarihe kadar belgelenmedi Terje Mathisen onlara tersine mühendislik hakkında bir makale yazdı Bayt Temmuz 1994.[1]

Aşağıdaki tabloda, bazı CPU örnekleri ve mevcut donanım sayaçlarının sayısı gösterilmektedir:

İşlemcimevcut HW sayaçları
UltraSparc II2
Pentium III2
ARM112
AMD Athlon4
IA-644
ARM Cortex-A52[2]
ARM Cortex-A84
ARM Cortex-A9 MPCore6
POWER48
Pentium 418

Yazılım tekniklerine karşı

Yazılımla karşılaştırıldığında profil oluşturanlar, donanım sayaçları CPU'nun işlevsel birimleri, önbellekleri ve ana belleği vb. ile ilgili çok sayıda ayrıntılı performans bilgisine düşük ek yük erişimi sağlar. Bunları kullanmanın bir başka yararı da genel olarak kaynak kodu değişikliklerine gerek olmamasıdır. Bununla birlikte, donanım kuruluşlarındaki farklılıklar nedeniyle donanım sayaçlarının türleri ve anlamları bir tür mimariden diğerine değişir.

Düşük seviyeli performans ölçümlerini kaynak kodla ilişkilendirmede zorluklar olabilir. Sayaçları depolamak için sınırlı sayıda kayıt, genellikle kullanıcıları istenen tüm performans metriklerini toplamak için birden fazla ölçüm yapmaya zorlar.

Öğretim bazlı örnekleme

IBS profilinin çıktısı CodeAnalyst.

Modern süper skalar işlemciler birden çok talimatı planlar ve uygular hizmet dışı Bir seferde. Bu "uçuş sırasında" talimatlar, bellek erişimine, önbellekteki isabetlere, işlem hattındaki duraklamalara ve diğer birçok faktöre bağlı olarak herhangi bir zamanda kaldırılabilir. Bu, performans sayacı olaylarının yanlış talimatlarla ilişkilendirilmesine neden olarak, hassas performans analizini zorlaştırabilir veya imkansız hale getirebilir.

AMD, bu dezavantajlardan bazılarını hafifletmek için yöntemler geliştirdi. Örneğin, Opteron işlemcileri uyguladı [3] 2007'de Yönerge Tabanlı Örnekleme (veya IBS) olarak bilinen bir teknik. AMD'nin IBS uygulaması, hem getirme örneklemesi (süper skalar ardışık düzeninin önü) hem de işlem örnekleme (ardışık düzeninin arkası) için donanım sayaçları sağlar. Bu, kullanımdan kaldırılan talimatları "ana" AMD64 talimatı ile ilişkilendiren ayrı performans verileriyle sonuçlanır.

Ayrıca bakınız

Referanslar

  1. ^ "Pentium Sırları". Gamedev.net. Alındı 2012-02-14.
  2. ^ Cortex-A5 Teknik Referans Kılavuzu
  3. ^ "Talimat Tabanlı Örnekleme: AMD Ailesi 10h İşlemciler için Yeni Bir Performans Analizi Tekniği" (PDF). AMD. Alındı 2015-10-16.