ARM と Intel x86-64 の違い
ARM チップが高性能ラップトップやエッジ サーバーに広く採用されるようになった今、これらの新しいデバイスを次に購入する価値があるかどうか疑問に思うのは当然です。ARM プロセッサと、これまでチップ市場を妨げられることなく支配してきたより強力な x86-64 の前身との技術的な違いを理解するときが来ました。
そもそも x86-64 とはどういう意味ですか?
デスクトップ コンピュータやラップトップ コンピュータに搭載されている Intel プロセッサは、「x86」プロセッサと呼ばれることもあります。現在、すべての最新コンピュータが使用している 64 ビット アーキテクチャは、x86 モデルをベースとしており、「x86-64」と呼ばれています。
少しわかりにくいように聞こえますが、Windows に2 つの異なるProgram Filesフォルダーが存在する理由を説明するのに役立ちます。
簡単にするために、すべての 32 ビット アプリケーションは x86 フォルダーに保存し、64 ビット アプリケーションはその他のフォルダーに保存します。これは、Microsoft が 2001 年に 64 ビット バージョンの Windows XP をリリースして以来の慣例です。
少し簡単にするために、「x86-64」を「x86」と呼ぶことにします。32 ビット チップと 64 ビット チップには、グループ化できるほどの類似点があるからです。
「x86」という名称は、現代の処理の祖先である、Intel が開発した 8086 というマイクロプロセッサに由来しています。この 16 ビット チップは、高度なコンピューティング タスクを実行するために、現在でも主に現代のプロセッサで使用されている命令セットに基づいて動作しました。
テキスト エディターから高度なビデオ レンダリング ソフトウェアまで、すべてが 1978 年に誕生したアーキテクチャの下で動作する能力を今でも持っています。
8086 マイクロプロセッサのリリース以来、Intel は 80286 や 80386 などの将来のモデルにもこの命名規則を使用し続けましたが、Pentium シリーズをリリースして伝統を破りました。それでも、私たちは古いチップに敬意を表して、その命令セットを使用する後続のすべてのプロセッサを「x86」として分類しています。
AMD が 2000 年代に Opteron シリーズで初めてリリースした、より新しい 64 ビット プロセッサにも同じ名称が付けられています。デスクトップ システムやサーバーの 64 ビット プロセッサの圧倒的多数が、現在では控えめになった 8086 を基盤として存続しているからです。
命令セット
プロセッサの機能はすべて、命令セットと呼ばれるものに基づいています。これは、チップが実行できる基本的な操作のハードワイヤード セットです。各命令は、チップに基本的な計算やデータの移動などの操作を指示します。マシンで実行するすべてのプログラムのコード ビットの下部には、プロセッサと通信するレイヤーがあります。このレイヤーは、アセンブリ言語と呼ばれる独自のコードも使用します。アセンブリ言語は、さらに 1 ステップ下がって、マシン コードまたはマシン言語と呼ばれる基本命令に変換されます。
ここで、ARM チップと x86 チップの根本的な違いが明らかになります。
x86 チップは複合命令セット コンピューティング (CISC)を使用するのに対し、ARM チップは縮小命令セット コンピューティング (RISC)を使用します。CISC チップは、このタスクを実行するためにクロック サイクルを犠牲にして、1 つの命令に多くの「作業」を盛り込もうとしますが、RISC チップは (名前が示すように) はるかに小さな命令セットを持ち、すべてを 1 つのクロック サイクルで実行できるより単純なステップに分割します。
CISC vs.危険
CISC チップが 2 つの数値を乗算する必要がある場合、1 つのコマンドを実行する可能性があります。MULT 2, 3
この 1 つのコマンドで、メモリから数値をロードし、それらを乗算し、結果を適切なメモリ位置に格納します。RISC チップで同じ操作を実行するには、さらに多くの手順が必要になります。まず、LOAD
レジスタから実行ユニットに数値を移動する命令。次に、PROD
数値を乗算する命令。最後に、STOR
結果を適切なレジスタに配置する命令。
CISC チップはコマンドが単純なのでより効率的に思えるかもしれませんが、いくつかの重要な違いに留意してください。
- まず、CISC チップは複数のクロック サイクルにわたってコマンドを実行しますが、RISC チップの各命令は 1 つのクロック サイクルで実行されます。このため、この仮想
MULT
コマンドは、同じタスクを実行する RISC 命令セットと同じサイクル数で実行される可能性があります。 - 第二に、CISC のすべての命令とロジックはトランジスタに格納する必要があります。RISC チップでは格納する命令が少ないため、使用するトランジスタの数が少なくて済みます。
- 3 番目に、RISC に必要なトランジスタの数が少ないため、消費電力を抑えることができます。
CISC にはいくつかの利点があります。まず、コンピューターは、C のような人間レベルのプログラミング言語からプロセッサレベルのアセンブリ言語に変換するために多くの作業を行う必要がありません。実際、MULT
上記のコマンドは C コマンドと非常によく似ていますfoo = foo * bar
。
RISC チップは、コードをアセンブリ言語に書き出すために、コンパイラに多くの作業を要求します。CISC チップはシステム メモリ上で直接操作を実行することもできますが、RISC チップは操作する前にメモリからプロセッサ レジスタにデータを引き出す必要があります。
消費者の観点から見ると、両者のパフォーマンスを直接比較した場合、明確な勝者はいません。しかし、RISC には、CISC に対して本当に優位に立つための切り札がもう 1 つあります。
消費電力
CISC と RISC は、電力使用量に関してはまったく互角です。RISC が断然優れています。命令セットが減るとウェハーの占有面積が減り、チップが小さくなるため、消費電力が少なくなります。
より小さなチップとより少ない微細な部品は、対処しなければならない電気抵抗も少なく、動作に必要なワット数もそれほど多くありません。このことを最もよく示すケーススタディは、スマートフォンの実証済み技術です。スマートフォンは、比較的小さなサイズで非常に高いパフォーマンスを発揮する「コンピューター ライト」デバイスですが、多くの場合、比較的小さなバッテリーで 24 時間以上も持続します。
とはいえ、これはすべてのコンピューターが電力消費を抑えるために ARM チップを使い始めるという意味ではありません。デスクトップ市場では、システムがバッテリーではなく壁のコンセントに直接接続されることが一般的であるため、電力効率はそれほど大きな優先事項ではありません。CISC チップは、このような状況でも依然として驚異的なパフォーマンスを発揮し、この状況がすぐに変わる兆しはまったくありません。
ARM システムと x86 システムのどちらを入手すべきでしょうか?
しかし、それはすべてを 1 つの非常に単純な質問にまとめます。バッテリーから供給されるワット時あたりのパフォーマンスを最大限に引き出そうとしていますか? それとも、バッテリー寿命を犠牲にしてでも、デバイスを通じて生のパフォーマンスを最大限に引き出そうとしていますか?
システムを購入するほとんどの用途では、決定は簡単です。最後に、充電ケーブルを忘れずに持参するようにしてください。
画像クレジット:滅菌服を着たエンジニアの男性がマイクロチップを持っている(DepositPhotos)
コメントを残す