ARMとx86、なぜXNUMXつが他よりもエネルギー効率が高いのですか?

ARMとx86

最初の今週の発表で Apple ISAを搭載したプロセッサをベースにしたMacintosh ARM、数か月前にAppleによる移行を発表した後、トピックARM vs x86が登場し、低電力デバイスにISAx86を搭載したCPUがない理由が再び登場しました。 しかし、この問題を取り巻く動機と神話は何ですか?

消費量が86W未満、さらには10 Wのx5プロセッサを使用するスマートフォン、タブレット、およびすべての種類のデバイスが表示されない理由を疑問に思ったことがある場合は、関心がないためではないことをお知らせください。 インテル or AMD、しかし、これにはいくつかの理由があります。これは、x86アーキテクチャの性質に関係する一連の克服できない障壁です。

ARM vsx86またはCISCvs RISC

RISCとCISC

ARMはAdvancedRISC Machinesの略で、すべてのx86ベースは CPU CISCのような命令セットがあると言われています。 しかし、これはどういう意味ですか? RISCは縮小命令セットコンピューティングまたは縮小命令セットを使用したコンピューティングの略であり、CISCは複雑な命令セットコンピューティングの略です。したがって、さまざまなプロセッサで使用される命令のセットを分類する方法です。

主な違いは、RISCの命令セットが少ないため、より複雑な命令を実行するためにいくつかの単純な命令を使用する必要があるのに対し、CISCユニットの場合はXNUMXつの命令で多くの複雑な命令を実行できることです。 、したがって、CISCドライブはメモリ量の観点からスペースを節約します。

ProcesadorRenderGenérico

たとえば、RISCの合計のマシンコードは次のようになります。

  1. 最初のオペランドをアキュムレータレジスタに格納します
  2. XNUMX番目のオペランドをロードし、加算を実行します。
  3. 結果をアキュムレータレジスタに格納します。

代わりに、CISCプロセッサでは:

  1. 第XNUMXオペランドと第XNUMXオペランドを追加します。

機械語については、 RISCバイナリ より多くの指示があるため、 はるかに多くのメモリを消費します 、CISCバイナリでは、コードははるかに軽量です。

プロセッサの命令サイクル

フェッチデコード実行

すべてのプロセッサは、CISCであるかRISCであるかに関係なく、次のXNUMXつの異なる段階を経る必要があります。

フェッチ: 次の命令がメモリにフェッチされます。

デコード: 命令はデコードされ、実行の準備が整います。

実行します。 命令は、CPUの実行ユニットのXNUMXつによって実行されます。 命令の結果は、対応するメモリバンクまたはレジスタに書き込まれます。

In RISCプロセッサ CPUによって実行される命令は、バイナリコードの命令と同等ですが、CISCでは、マシンコードの命令は次のようになります。 いくつかのマイクロ命令に分解され、 つまり、 のデコードユニット CISCプロセッサは はるかに複雑 これは、x86の消費量が増えるための最も重要な要素のXNUMXつです。

x86とARMのセグメンテーション

セグメンテーション

90年代の初めからすべてのCPUが持っている特徴のXNUMXつはセグメンテーションです。これは、プロセッサで命令が完全に実行されて次の命令に道を譲るのを待つのではなく、命令の各段階で進められるというものです。サイクル。それぞれがいくつかのサブステージに分割できます。

RISCプロセッサは、バイナリコード内の命令数とCPUによって実行される命令数との間に直接的な相関関係があるため、命令をいくつかの段階に分割するのは非常に簡単です。 だが x86では非常に困難です 、セグメンテーションはデコード段階で生成されたマイクロ命令で行われるため、さらに多くのことを意味します 追加の回路 継続的に電力を実行および消費します。

それだけでなく、たとえばARMの各命令のオペコードはx86の場合は固定サイズですが、可変であるため、x86プロセッサの場合はマイクロ命令の命令のデコードがはるかに複雑になります。

レコードが少ないほど、エネルギー効率が低くなります

Registros

ISAx86には はるかに少ないレジスタ その内部では、他のISASよりも、これは、メモリまたはキャッシュで多くの命令を実行する必要があることを意味します。 はるかに多くのエネルギーを消費することになります 実行時。 これはx86アーキテクチャの古典的な問題であり、CISCアーキテクチャであるためではありません。

それを理解するには、考慮する必要があります エネルギー消費 各操作の データとプロセッサ間の距離 .

非常に低電力のデバイスでのx86とARMの比較。

インテルスマートフォン

Intelは、数年前に故障したIntelMedfieldプロセッサでそれを試しました。

さらに、検討されてきた可能性のXNUMXつは、 混合CPU は、その命令を内部でARM命令にデコードし、最も信頼のおけるプロセッサである86つのISAS間の完全な互換性を可能にするxXNUMXで構成されています。

しかし悲しいことに、ARMもIntelとAMDも、特に後者は、この混合プロセッサを作ることに興味がありません。 両方のモードで作業することは非常に困難ですが、 それを除けば、x86命令のデコードは引き続き問題になるため、一方向にしか機能せず、回路の大部分が無駄になるプロセッサが必要になります。