命令セットとは何ですか?
命令セット、または命令セットアーキテクチャは、コンピュータープロセッサが実行できるコマンドの集合です。 ワードプロセッシングアプリケーションの実行からビデオファイルのエンコードまで、コンピューターが行うすべてのことは、これらのコマンドのいくつかの組み合わせに還元できます。 プログラマーは、これらの命令を使用してプログラムを直接作成するのではなく、プログラミングコードを機械命令に変換するコンパイラーと呼ばれる特別な種類のソフトウェアを使用します。 ほとんどのパーソナルコンピューターは1970年代に最初に使用された命令セットを使用しますが、スマートフォン、タブレット、およびその他のデバイスは、低電力環境向けに最適化されたより単純な命令セットを使用します。
コンピュータは無制限のタスクを実行できるように見えるかもしれませんが、内部のマイクロプロセッサは、命令と呼ばれる事前定義された限られた数のコマンドを実行できるだけです。 それ自体では、各命令は比較的単純で、おそらくプロセッサに2つの数字を追加するか、データをある場所から別の場所に移動するように指示します。 これらの基本的な指示を組み合わせると、非常に強力になり、すべての種類のソフトウェアの基礎として使用されます。 CPUのパフォーマンスと互換性は、CPUがサポートする命令の数と種類に直接関係するため、命令セットは、新しいデザインの商業的成功または失敗の重要な要素になります。
CPUは命令セットの一部である機能のみを実行できますが、ソフトウェアにこれらのコマンドを埋め込むコンピュータープログラマーはほとんどいません。 代わりに、コンパイルとして知られる中間ステップが使用されます。 このプロセスでは、コンパイラと呼ばれるプログラムが、プログラマーが使用する人間に優しいコードを、プロセッサが理解する「マシンコード」に変換します。 異なるコンピュータープロセッサは異なる命令セットをサポートするため、プログラムを実行するプロセッサのタイプに合わせてコンパイラを設計する必要があります。 1秒間に数億から数十億もの命令を実行できる最新のマイクロプロセッサにより、コンパイラはコンピュータ用のソフトウェアを作成する唯一の実用的な手段になりました。
1980年代以降に販売されたほぼすべてのパーソナルコンピューターで使用されているマイクロプロセッサは、元々1970年代半ばに登場したIntel®プロセッサ用に設計されたx86と呼ばれる命令セットを使用します。 下位互換性への欲求は、PC市場でx86を支配し続けるのに役立ちましたが、新しい命令が拡張機能を通じて追加されることもあります。 多くのスマートフォン、タブレット、および他のタイプの家庭用電化製品は、ARM命令セットに基づくマイクロプロセッサーを使用します。ARM命令セットは、x86よりもシンプルで電力効率が高くなります。 ハイエンドサーバー、スーパーコンピューター、およびゲームコンソールなどの他の専用デバイスは、異なる命令セットを使用する場合があります。