ARMとIntel x86-64の違い

Difference Between Intel Arm Featured

高性能のノートパソコンやエッジサーバーにARMチップが普及している今、これらの新しいデバイスが次の購入に値するかどうかを尋ねるのは正当なことでしょう。ARMプロセッサと、かつてチップ市場を妨げることなく運営していたより強力なx86-64前身との技術的な違いを理解する時が来ました。

目次

  • x86-64とは何か?
  • 命令セット
  • 消費電力
  • ARMまたはx86システムを選ぶべきか?

読む:ARMはついにノートパソコンでx86 CPUを置き換えることができるのか?さあ、見てみましょう!

x86-64とは何か?

デスクトップおよびノートパソコンに搭載されるIntelプロセッサは、時に「x86」プロセッサと呼ばれます。現代のすべてのコンピュータが使用する64ビットアーキテクチャは、x86モデルの上に位置し、現在は「x86-64」と呼ばれています。

これは少し混乱を招くかもしれませんが、Windowsに2つの異なるプログラムファイルフォルダがある理由を説明するのに役立ちます。

X86arm Programfiles

簡単に言えば、すべての32ビットアプリケーションはx86フォルダに入れ、64ビットのものは別のフォルダに入ります。これはMicrosoftが2001年に64ビット版のWindows XPをリリースして以来の慣例です。

少し簡略化すると、「x86-64」を「x86」と呼びます。32ビットと64ビットのチップには十分な類似点があるため、まとめてグループ化できます。

「x86」というラベルは、Intelが作成したマイクロプロセッサ8086に由来しています。この16ビットチップは、現代のプロセッサが現在でも多く使っている命令セットの下で動作し、進化した計算タスクを実行しています。

テキストエディタから高度なビデオレンダリングソフトウェアに至るまで、1978年に生まれたアーキテクチャの下で動作する能力が今でもあります!

8086マイクロプロセッサのリリース以降、Intelは80286や80386などの将来のモデルに対して命名規則を継続しましたが、Pentiumシリーズをリリースすることで伝統を破りました。それでも、命令セットを使用するすべてのその後のプロセッサを「x86」としてカテゴライズすることで、古いチップに敬意を表しています。

2000年代にAMSが最初にリリースしたOpteronシリーズの64ビットプロセッサさえ、同じ呼称が与えられています。デスクトップシステムやサーバーにおける圧倒的な多数の64ビットプロセッサが今でも謙虚な8086の柱に立っているからです。

命令セット

プロセッサのすべての機能は、命令セットと呼ばれるものを基にしています。これは、チップが実行できる基本的な操作のハードウェアに組み込まれたセットです。各命令は、基本的な数学やデータの移動などを行うようにチップに指示します。あなたがマシン上で実行するすべてのプログラムのコードの底には、プロセッサに話しかける層があります。この層は、自身でアセンブリ言語と呼ばれるコードを使用し、そこからさらに基底命令に変換される命令に繋がります。そのため、しばしばマシンコードやマシン言語と呼ばれます。

The IHS of an Intel i386

ここでARMとx86チップの核心的な違いに到達します。

x86チップは複雑命令セットコンピューティング(CISC)を使用しているのに対して、ARMチップは縮小命令セットコンピューティング(RISC)を使用しています。CISCチップは、タスクを達成するためにクロックサイクルを犠牲にしながら、一つの命令により多くの「作業」を詰め込もうとするのに対し、RISCチップは(名前の通り)非常に小さな命令セットを持ち、すべてをよりシンプルなステップに分解して、一つのクロックサイクルで実行されるようにします。

CISCとRISC

CISCチップが2つの数を乗算する必要がある場合、単一のコマンド MULT 2, 3 を実行するかもしれません。この単一のコマンドは、メモリから数を読み込み、それらを乗算し、結果を適切なメモリ位置に保存することをカバーします。RISCチップが同じ操作を行う場合、はるかに多くのステップが必要です。最初に、レジスタから実行ユニットに数を移動するための LOAD 命令。そして、数を乗算するための PROD 命令。最後に、結果を適切なレジスタに配置するための STOR 命令です。

Apple M1 SoC mounted on a MacBook

CISCチップは命令がシンプルに見えるため、効率的に思えるかもしれませんが、いくつかの重要な違いを考慮する必要があります。

  • まず、CISCチップは複数のクロックサイクルでコマンドを実行しますが、RISCチップの各命令は単一のクロックサイクルで実行されます。このため、仮定的な MULT コマンドは、同じタスクを実行するRISC命令のセットと同じサイクル数で実行される可能性があります。
  • 第二に、CISCのすべての命令とロジックはトランジスタに格納する必要があります。RISCチップは少ない命令を保存するだけで済むため、より少ないトランジスタを使用できます。
  • 第三に、RISCによって必要とされるトランジスタ数が少ないため、消費電力が低くなります。

CISCにはいくつかの利点があります。まず、コンピュータはCのような人間のプログラム言語からプロセッサのアセンブリ言語に変換するためにあまり作業をしなくて済みます。実際、上記の MULT コマンドは、Cコマンド foo = foo * bar と非常に似ています。

RISCチップは、アセンブリ言語にコードを落とし込むためにコンパイラにもっと多くの作業を求めます。CISCチップはシステムメモリ上で直接操作を実行できる一方、RISCチップは作業を行う前にデータをメモリからプロセッサのレジスタに引き込む必要があります。

二者択一のパフォーマンスコンテストにおいて、消費者にとっては明確な勝者がいないのが現実です。しかし、RISCにはCISCに対して本当に優位に立つためのもう1つの秘訣があります。

消費電力

CISCとRISCの間では、消費電力に関しては全く競争になりません。RISCがここで王冠を持っています。縮小命令セットはウェハのフットプリントを縮小し、チップを小さくし、その結果、電力をあまり消費しないという利点を提供します。

Interior components of a traditional ATX desktop power supply

小さなチップは、より少ない微細なコンポーネントで構成されているため、電気的抵抗も少なく、運転に必要なワット数も少なくて済みます。この最良の例はスマートフォンで、これは「コンピュータライト」デバイスであり、比較的少ないサイズながらも膨大な性能を持ち、場合によっては比較的小さなバッテリーで24時間以上の稼働を実現します。

とはいえ、これはすべてのコンピュータがARMチップを使用して電力消費を削減するようになることを意味するわけではありません。デスクトップ市場では、システムが通常、バッテリーの代わりに直接壁のコンセントに接続されるため、パワー効率はそれほど大きな優先事項ではありません。CISCチップはこれらの状況でも驚異的な性能を発揮し、今後変わる兆候は見られません。

ARMまたはx86システムを選ぶべきか?

MicrosoftがARMアーキテクチャ向けにWindows 11をリリースし、AppleがMacをARMチップに切り替えていることから、あなたもARM PCを購入したいと考えているかもしれません。しかし、それは非常にシンプルな質問に集約されます。あなたは、バッテリーから供給されるワット時あたりのパフォーマンスを最大限に引き出そうとしていますか?それとも、バッテリー寿命を損なうことを顧みず、デバイスを通じてできる限り多くの生のパフォーマンスを押し出そうとしていますか?

誰かがシステムを購入する場合の使用ケースの大多数にとって、決定はそれほど簡単です。最終的には、充電ケーブルを忘れずに持って行くことを確認してください!