命令セットアーキテクチャ(ISA)

命令セットアーキテクチャ(ISA)

命令セットアーキテクチャ(ISA)

命令セットアーキテクチャ(ISA)

本節では、
CPUが理解できる命令の体系である
命令セットアーキテクチャ(ISA)を解説する。

ISAは、
ハードウェアとソフトウェアを結ぶ設計上の契約


1. 命令セットアーキテクチャとは

命令セットアーキテクチャとは、
CPUが実行可能な命令の形式・意味・動作を定義した仕様

プログラムは、
最終的にISAで定義された命令列として実行される。


Q1. 命令セットアーキテクチャとは何か

A.
命令セットアーキテクチャ(Instruction Set Architecture)とは、
CPUとプログラムの間で取り決められた命令仕様の集合

以下を含む。

  • 命令の種類
  • 命令の形式
  • レジスタの構成
  • アドレッシング方式

参考:

命令セットアーキテクチャ(Wikipedia)


2. 命令の基本構造

CPU命令は、
オペコードとオペランドで構成される。


Q2. オペコードとは何か

A.
オペコードとは、
CPUに実行させる処理内容を指定する符号

例:

  • 加算
  • 減算
  • 比較
  • 分岐

Q3. オペランドとは何か

A.
オペランドとは、
命令が操作する対象となるデータや場所

オペランドには以下がある。

  • レジスタ
  • メモリアドレス
  • 即値(定数)

Q3-1. 即値とは何か

A.
即値とは、
命令中に直接埋め込まれた定数値

メモリアクセスを伴わない。


3. アドレッシング方式

アドレッシング方式とは、
オペランドをどのように指定するかの規則


Q4. アドレッシング方式とは何か

A.
アドレッシング方式とは、
命令がデータの所在を指定する方法

代表例。

  • レジスタ直接指定
  • メモリ直接指定
  • 間接指定
  • 相対アドレス指定

4. ISAとプログラミング言語の関係

高級言語は、
直接ISAを意識せず記述される。

しかし、
最終的には必ずISA命令に変換される


Q5. コンパイラの役割とは何か

A.
コンパイラとは、
高級言語をISA命令へ変換するソフトウェア

CPUごとに異なるISAに対応する。


5. 設計上の重要性

ISAの設計は、
以下に直接影響する。

  • CPU性能
  • 消費電力
  • ソフトウェア資産
  • 互換性

そのため、
ISAは数十年単位で維持される設計判断となる。