命令セットアーキテクチャ
Instruction Set Architecture, ISA コンピュータのハードウェアとソフトウェアがやり取りするためのルールや言語のようなイメージ radish-miyazaki.icon
役割
命令の定義
プロセッサ が実行できる基本的な操作の集合を定義する これにより、プログラムはハードウェアに対して何を行うべきかを指示できる
ソフトウェアとハードウェアの橋渡し
ソフトウェア(OS やネイティブ)は ISA を使ってハードウェアと通信する 互換性
ある ISA に基づいて開発されたソフトウェアは、その ISA をサポートするどのプロセッサ上からでも動作する
構成要素
命令セット
プロセッサが直接実行できる命令のリスト
e.g. 加算命令、減算命令、データ転送命令、論理演算命令
プロセッサ内で使われる高速な記憶装置
ISA では利用可能なレジスタ数や役割を規定する
命令がどのようなデータにアクセスするかを定義する
e.g. メモリから直接読み書きするのか、レジスタを介すのか
データ形式
データの扱い方(整数や浮動小数点、文字列など)やビット数を定義
32 bit と 64 bit の違いもここに含まれる
外部デバイス(ディスクやネットワーク、ディスプレイなど)とのデータのやり取りも ISA の一部として定義される
CISC(Complex Instruction Set Computing): 複雑な命令を 1 つの命令として実行できるアーキテクチャ
MISC(Reduced Instruction Set Computing): 簡単で高速な命令を多く実行することで、効率を高めたアーキテクチャ
2009年現在では、「RISC対CISC」という単純な優劣論争は、技術的にはもはや意味を持たない。
x86などの代表的なCISCプロセッサは内部的にRISCのアーキテクチャを段階的に取り入れ6、逆に代表的なRISCプロセッサは命令の追加を続けているためである7。