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