ARM vs x86, Neden Bir Enerji Diğerinden Daha Verimli?

x86 vs ARM

İlk haftanın duyurusu ile Apple ISA ile işlemcilere dayalı Macintosh ARM, birkaç ay önce Apple'ın geçişini duyurduktan sonra, ARM vs x86 konusu ortaya çıktı ve neden düşük güçlü cihazlarda ISA x86 ile CPU bulunmadığı sorusu yeniden ortaya çıktı. Peki bu konuyu çevreleyen güdüler ve mitler nelerdir?

86 W ve hatta 10 W altında tüketime sahip x5 işlemcileri kullanan akıllı telefonları, tabletleri ve her türlü cihazı neden göremediğinizi hiç merak ettiyseniz, o zaman bunun ilgisizlikten kaynaklanmadığını söyleyelim. Intel or AMD, ancak bunun birkaç nedeni var, x86 mimarisinin doğasıyla ilgili bir dizi aşılmaz engel var.

ARM, x86 veya CISC, RISC

RISC ve CISC

ARM, Gelişmiş RISC Makineleri anlamına gelirken, her x86 tabanlı işlemci CISC benzeri bir komut setine sahip olduğu söyleniyor. Ama bu ne anlama geliyor? RISC, Azaltılmış Komut Seti Hesaplama veya Azaltılmış Komut Seti ile Hesaplama anlamına gelirken, CISC, Karmaşık Komut Seti Hesaplama anlamına gelir, Bu nedenle, farklı işlemciler tarafından kullanılan komut setlerini sınıflandırmanın bir yoludur.

Temel fark, RISC'nin azaltılmış bir talimat setine sahip olması nedeniyle, daha karmaşık olanı yürütmek için birkaç basit talimatın kullanılması gerekli olurken, bir CISC birimi durumunda birçok karmaşık talimat tek bir talimatta gerçekleştirilebilir. , böylece CISC sürücüler bellek miktarı açısından yerden tasarruf sağlar.

İşlemci Render Genérico

Örneğin, RISC'deki bir toplamın makine kodu aşağıdaki gibi olacaktır:

  1. İlk işleneni akümülatör kaydında saklar
  2. İkinci işleneni yükleyin ve eklemeyi yapın.
  3. Sonucu akümülatör kaydında saklar.

Bunun yerine, bir CISC işlemcide:

  1. Birinci ve ikinci işleneni ekleyin.

Makine koduna gelince, bir RISC ikili daha fazla talimat var ve bu nedenle çok daha fazla hafıza kaplıyor CISC ikilisinde kod çok daha hafiftir.

İşlemcilerin talimat döngüsü

Getirme Kod Çözme Yürütme

Her işlemci, ister CISC ister RISC olsun, dört farklı aşamadan geçmelidir:

Getir: Aşağıdaki talimat hafızaya alınır.

Kod çözme: Talimatın kodu çözülür ve yürütülmek üzere hazırlanır.

Yürüt: Talimat, CPU'nun yürütme birimlerinden biri tarafından yürütülür. ve talimatın sonucu ilgili hafıza bankasına veya sicile yazılır.

In RISC işlemciler CPU tarafından yürütülen bir talimat ikili koddaki bir talimata eşdeğerdir, CISC'de ise makine kodundaki bir talimat birkaç mikro talimata bölünmüş, bu şu demektir Kod çözme birimi CISC işlemciler çok daha karmaşık ve x86'nın daha yüksek tüketime sahip olması için en önemli faktörlerden bir diğeridir.

X86 ve ARM'de segmentasyon

Segmantasyon

90'ların başından beri tüm CPU'ların sahip olduğu özelliklerden biri, işlemcide tam olarak bir talimatın bir sonrakine yol açmak için yürütülmesini beklemek yerine, talimatın her aşamasında ilerletilmesinden oluşan segmentasyondur. Her biri birkaç alt aşamaya ayrılabilen döngü.

RISC işlemcileri, ikili koddaki komut sayısı ile CPU tarafından yürütülenler arasında doğrudan bir korelasyona sahip olduğundan, talimatları birkaç aşamaya ayırmak çok kolaydır. Fakat x86'da son derece zordur Segmentasyon, Kod Çözme aşamasında oluşturulan mikro talimatlar üzerinde yapıldığından, ek devre sürekli çalışan ve güç tüketen.

Sadece bu değil, örneğin, x86 durumunda, ARM'deki her talimatın işlem kodları sabit boyutta iken, bunlar değişkendir, bu da mikro talimatlardaki talimatların kodunun çözülmesini x86 işlemcileri durumunda çok daha karmaşık hale getirir.

Daha az kayıt, daha az enerji verimliliği demektir

kayıtlar

ISA x86, çok daha az kayıt bu, diğer ISAS'lerden farklı olarak, bu, bellekte veya önbelleklerde birçok talimatın gerçekleştirilmesi gerektiği anlamına gelir. çok daha fazla enerji tüketmek yürütürken. Bu, x86 mimarisinin klasik bir sorunudur ve bir CISC mimarisi olduğundan değil.

Anlamak için hesaba katmak gerekiyor enerji tüketimi her işlemin oranı, veri ve işlemci arasındaki mesafe .

çok düşük güçlü cihazlarda x86 vs ARM.

Intel Akıllı Telefon

Intel bunu birkaç yıl önce başarısız Intel Medfield işlemcisi ile denedi.

Dahası, dikkate alınan olasılıklardan biri, bir karışık CPU , talimatlarını dahili olarak ARM talimatlarına dönüştüren ve kesin işlemci olacak iki ISAS arasında tam uyumluluğa izin veren bir x86'dan oluşur.

Ancak ne yazık ki ne ARM ne de Intel ve AMD, özellikle ikincisi, bu karma işlemciyi yapmakla ilgilenmiyor. her iki modda da çalışmayı başarması çok zor olurdu, bunun dışında x86 komutlarının deşifre edilmesi bir sorun olmaya devam edecekti, bu nedenle yalnızca tek bir şekilde çalışabilen ve devrenin çoğunun boşa gideceği bir işlemcimiz olacaktı.