Buyruk başına çevrim

Ölçünün anlamı. Kutuların genişliği bir buyruğun kapladığı saat çevrimi sayısıdır. Sekiz çevrimde BBÇ 1 ile sekiz, BBÇ 2 ile dört, BBÇ 4 ile iki buyruk tamamlanır.

Buyruk başına çevrim (BBÇ; İngilizce: cycles per instruction, CPI), bir işlemcinin bir makine buyruğunu yürütmek için ortalama olarak harcadığı saat çevrimi sayısıdır. İşlemci başarımını belirleyen temel ölçütlerden biridir; değerin düşük olması aynı işin daha az çevrimde yapıldığını, dolayısıyla daha yüksek başarımı gösterir.

Başarım denklemi

Bir programın işlemcide çalışma süresi üç çarpanın çarpımıyla ifade edilir:

İşlemci zamanı = Buyruk sayısı × BBÇ × Saat çevrim süresi

Buyruk sayısı, programın yürüttüğü toplam makine buyruğu adedidir; saat çevrim süresi ise bir saat çevriminin uzunluğudur (saat hızının tersi). Üç etken arasında BBÇ, buyruk kümesi mimarisi ile işlemci tasarımının ortak etkisini yansıtır.

Denklemin üç çarpanı birbirinden bağımsız değildir. Bir tasarım değişikliği BBÇ'yi düşürürken buyruk sayısını ya da saat çevrim süresini artırabilir; bu durumda toplam sürede kazanç olmayabilir. Aynı nedenle farklı buyruk kümesi mimarilerinin BBÇ değerleri doğrudan karşılaştırılamaz, çünkü bir mimaride tek bir buyruğun yaptığı iş ötekinde birkaç buyruk gerektirebilir.

Ağırlıklı ortalama

Farklı buyruk türleri farklı sayıda çevrim gerektirdiğinden BBÇ, buyruk türlerinin kullanım sıklığına göre bir ağırlıklı ortalama olarak hesaplanır:

BBÇ = Σ (BBÇi × fi)

Burada BBÇi, i türündeki buyruğun gerektirdiği çevrim sayısı; fi ise o türün program içindeki oranıdır.

Örnek

Buyruklarının %50'si bir çevrimde (BBÇ = 1), %30'u iki çevrimde (BBÇ = 2) ve %20'si dört çevrimde (BBÇ = 4) tamamlanan bir program için ortalama BBÇ şöyle hesaplanır:

BBÇ = 0,5 × 1 + 0,3 × 2 + 0,2 × 4 = 1,9

Bu durumda işlemci, bu programdaki her buyruk için ortalama 1,9 çevrim harcar.

Bileşenleri

BBÇ bütçesi. Gerçek BBÇ, ideal değerin üzerine durma çevrimlerinin eklenmesiyle oluşur; en büyük kalem çoğunlukla bellektir.

Gerçek BBÇ, kusursuz çalışan bir boru hattının ulaşacağı ideal değerin üzerine durma çevrimlerinin eklenmesiyle oluşur:

BBÇ = BBÇideal + buyruk başına durma çevrimi

Durma çevrimleri kaynaklarına göre ayrılır ve her biri ayrı ayrı hesaplanabilir. Bellek erişiminden gelen katkı, önbellekte bulamama sıklığı ve bedeliyle belirlenir:

bellek durması = (buyruk başına bellek erişimi) × önbellekte bulamama oranı × bulamama cezası

Boru hattının BBÇ'ye etkisi

Boru hattı düzeni, buyrukların yürütülmesini üst üste bindirerek ideal BBÇ değerini bire çeker. Buna karşılık boru hattının kendi sorunları durma çevrimi ekleyerek bu değeri yeniden yukarı iter; bileşenlerin çoğu buradan gelir.

Denetim sorunu, dallanmanın sonucu belli olmadan getirilen buyrukların iptal edilmesinden kaynaklanır:

denetim sorunu = dallanma sıklığı × yanlış öngörü oranı × dallanma cezası

Veri sorunu, bir buyruğun kendinden önceki buyruğun sonucunu beklemesidir. Veri yönlendirmesi bu beklemelerin çoğunu ortadan kaldırır; kalan durum, sonucu bellekten gelen bir yükleme buyruğunun hemen ardından o değeri kullanan buyruğun gelmesidir:

veri sorunu = yükle-kullan sıklığı × durma çevrimi

Yapı sorunu, iki buyruğun aynı donanım birimini aynı çevrimde istemesinden doğar ve benzer biçimde çakışma sıklığı ile bekleme süresinin çarpımıdır.

Bütçenin okunması

Bu ayrıştırma, tasarım çabasının nereye yöneleceğini belirler. Bütçenin en büyük kalemini küçültmek en çok kazancı getirir; küçük bir kalemi tümüyle ortadan kaldırmak bile toplam başarımı az değiştirir.

Ölçümü

Var olan bir işlemcide BBÇ, donanımın kendi başarım sayaçlarından okunur. İşlemciler tamamlanan buyruk sayısını ve geçen saat çevrimi sayısını ayrı sayaçlarda tutar; ikisinin oranı doğrudan BBÇ değerini verir. Sayaçlar durmaların kaynağını da ayırabildiğinden, yukarıdaki bütçe gerçek bir çalıştırma üzerinde çıkarılabilir.

Henüz üretilmemiş bir tasarımda ölçüm yapılamayacağından BBÇ, mimari benzetimlikleriyle kestirilir. Mikromimari benzetiminde işlemci çevrim düzeyinde modellenir ve seçenekler arasındaki BBÇ farkı donanım üretilmeden karşılaştırılır.

Gerçek bir makinede BBÇ'yi bileşenlerine ayırarak ölçen ilk çalışmalardan biri VAX-11/780 üzerinde yapılmış, ölçülen BBÇ ile tasarım belgelerinde öngörülen değer arasında belirgin bir fark bulunmuştur.

Tarihsel eğilim

BBÇ'nin tipik değeri işlemci tasarımındaki kuşaklarla birlikte düşmüştür. Her buyruğu birkaç çevrimde adım adım yürüten çok çevrimli işlemcilerde BBÇ beş ile on arasındaydı. Boru hattı düzeni, buyrukların yürütülmesini üst üste bindirerek ideal durumda BBÇ değerini bire indirdi. Çoklu buyruk başlatımlı tasarımlar aynı çevrimde birden çok buyruk tamamlayabildiğinden BBÇ birin altına düşebilir; bu noktadan sonra ölçüyü tersine çevirip çevrim başına buyruk kullanmak yaygınlaşmıştır.

Çevrim başına buyruk

BBÇ'nin çarpmaya göre tersi çevrim başına buyruk (ÇBB; İngilizce: instructions per cycle, IPC) olarak adlandırılır:

ÇBB = 1 / BBÇ

İdeal bir boru hattı düzeninde her çevrimde bir buyruk tamamlanır (BBÇ = 1). Aynı çevrimde birden çok buyruk başlatabilen çoklu buyruk başlatımlı (superscalar) işlemcilerde ÇBB birden büyük, dolayısıyla BBÇ birden küçük olabilir. Uygulamada veri ve denetim bağımlılıkları, bellek erişim gecikmeleri ve dallanma yanlış öngörüleri durmalara yol açarak gerçek BBÇ'yi ideal değerinin üzerine çıkarır.

Ayrıca bakınız

Kaynakça

  1. 1 2 Patterson, David A.; Hennessy, John L. (2017). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann. ISBN 978-0128017333.
  2. 1 2 3 4 5 6 7 Hennessy, John L.; Patterson, David A. (2017). Computer Architecture: A Quantitative Approach (6 bas.). Morgan Kaufmann. ISBN 978-0128119051.
  3. ↑ Emer, Joel S.; Clark, Douglas W. (1984). A characterization of processor performance in the VAX-11/780. Proceedings of the 11th Annual International Symposium on Computer Architecture (ISCA). doi:10.1145/285930.285986.