Anasayfa Makale İşlemcilerde IPC Nedir?

İşlemcilerde IPC Nedir?

AMD ve Intel gibi işlemci üreticileri, her yıl tanıtmış olduğu CPU serileriyle birlikte bazı performans ve verimlilik rakamlarından bahseder. Performans söz konusu olduğunda bazen karşılaştığımız terimlerden birisi de IPC (instructions per cycle/clock). Önemli mi? Evet önemli. Bazen bir önceki nesle göre %15-20 seviyelerine varan kazançlardan söz edilir.

Bu birçok teknoloji meraklısı için yabancı bir şey ve açıklaması da biraz karmaşık. IPC, bir CPU’nun tek bir saat döngüsü içinde işleyebileceği talimat sayısını ifade ediyor. Kısa açıklama yeterli değil biliyoruz, şimdi daha fazla ayrıntıya gireceğiz.

IPC Nedir?

Saat hızı size bir CPU’nun bir saniyede kaç döngü tamamlayabileceğini gösterirken, IPC (döngü/saat başına komut sayısı) bir CPU’nun her döngüde kaç görev gerçekleştirebileceğini tanımlamakta.

Örneğin daha hızlı bir saat hızına sahip bir işlemci saniyede daha fazla döngü tamamlayabilirken, daha yüksek IPC’ye sahip ancak daha düşük saat hızı olan bir işlemci buna rağmen bir saniyede daha fazla görevi tamamlayabilir. Sonuç olarak, daha hızlı bir CPU’dan bahsederken hem saat hızı, hem IPC hem de çekirdek sayılarına değinmek daha doğru.

İşlemci saat döngüsü.
İşlemci saat döngüsü.

Dijital devreler, talimatların ne zaman ve nasıl yürütüleceğini bilmek için saat sinyallerine güvenir. Bu nedenle CPU’lar da dahil olmak üzere çoğu elektronik cihazda sabit saat döngüsü sağlamak için dahili bir osilatör (saat) bulunur. Bu saat sinyalleri süreklidir ve yüksek/düşük durumlu basit bir kare dalga gibi görünür.

CPU’daki bir ‘döngü’, bu dahili osilatör tarafından senkronize edilen bu darbelerin ikisi arasındaki zaman aralığıdır. Yani, 1 düşük durumdan yüksek duruma ve tekrar düşük duruma geçmek için geçen süredir.

İşlemcideki bir döngü, dahili osilatör tarafından senkronize edilen darbelerin ikisi arasındaki zaman aralığını göstermekte. Başka bir deyişle, 1 düşük durumdan yüksek duruma ve tekrar düşük duruma geçmek için geçen süre şeklinde tanımlayabiliriz. Saniyede işleyebildiği bu ‘döngülerin’ sayısı, bir işlemcinin ‘saat hızı’ dediğimiz şey.

CPU saat döngüsü ve saat hızı her CPU mimarisi için farklı olabileceğinden, farklı markaların/nesillerin CPU’larını asla sadece saat hızlarını kullanarak karşılaştırmayız. Bunu zaten her fırsatta dile getiriyoruz.

Bir saat döngüsünün ne olduğunu bildiğinize göre IPC’yi tanımlamak çok daha kolay hale geliyor. IPC (saat başına talimat/komut), bir CPU’nun tek bir saat döngüsünde yürütebileceği talimat sayısıdır. Öte yandan işlemcinin saat hızı (GHz şeklinde), bir saniyede tamamlayabildiği saat döngüsü sayısıdır. Yani, 3 GHz’lik bir CPU saniyede 3 milyar döngüyü tamamlayabilir.

Bu arada, herhangi bir işlemci IPC’sinin iş yüküne bağlı olarak değişebileceğini ekleyelim. Ayrıca CPU üreticileri IPC bilgilerini genellikle teknik özellik sayfalarında paylaşmazlar.

Örnek olarak elimizde farklı işlemciler var ve hepsini 3 GHz’e kilitledik diyelim. Bu esnada devreye mimari farkların yanı sıra CPU’ların saat döngüsü başına işleyebileceği talimat sayısı giriyor.

Yukarıda AMD tarafından yıllar içerisindeki IPC gelişimini gösteren bir grafik görüyoruz. Kırmızılılar, 2017 ve 2020 yılları arasında endüstri standardının üstünde IPC kazançları sağladıklarını açıklamıştı.

IPC Kazancını Nasıl Sağlıyorlar?

CPU üreticileri, neredeyse her yeni nesilde az veya çok oranda IPC’yi geliştiriyor. Bu gelişim için birçok faktör bir araya gelebilir fakat kısaca özet geçelim ve bir başka AMD tanıtımına bakalım.

AMD Zen 4 mimarisi ile sağlanan IPC artışı.

Çip tasarımcısı, Zen 4 mimarisi ile bir önceki mimariye kıyasla %13 IPC artışı sağladığını göstermişti. Sağ tarafta listelenen faktörlerin hepsi bu IPC artışına katkıda bulunmuş:

  • L2 Önbellek: CPU’larda L1, L2 ve L3 olmak üzere farklı bellek türleri bulunuyor. Bunların görevi işlem birimine en çok ihtiyaç duyulan verileri hızlıca sağlamak.
  • Execution Engine: Tamsayı ve bellek işlemlerini ve kayan nokta işlemlerini gerçekleştiren birim.
  • Branch Prediction: İşlem hatlarını kullanarak dallanma talimatlarının işlenmesini hızlandırıyor.
  • Load/Store: Tüm yükleme ve depolama talimatlarının yürütülmesinden sorumlu özel bir birim.
  • Front End: Komut getirme ve kod çözme gibi işlemlerle ilgilenen kısım.

IPC ve Saat Hızı İlişkisi

İki farklı işlemci markası ve nesli arasında saat hızını kıyaslayarak karşılaştırma yapılmaz. Ancak aynı nesil ve mimariden işlemcileri karşılaştırabilirsiniz.

Bu ilişkiyi açıklamak biraz zor ama bir örnek verelim. Diyelim ki iki ayrı kişi iki ayrı çukuru kumla dolduracak ve 1 kürek/saniye sabit hızda çalışıyorlar. IPC’yi bir kürek olarak ve saat hızını da birinin kum kürekleme hızı olarak düşünün. Eğer iki kişi de aynı küreği kullanırsa, görevlerini tam olarak aynı zamanda bitireceklerdir.

Ancak bir küreği daha büyük bir kürekle değiştirirseniz ve her iki kişi de aynı hızda kum atmaya devam ederse, daha büyük küreği olan işi daha hızlı bitirir. CPU’daki IPC ve saat hızlarının ilişkisi de benzer.