インストラクション 【instruction】 命令語 / 機械語命令
概要
インストラクション(instruction)とは、命令、指示、指図、教育、指導、取扱説明書などの意味を持つ英単語。コンピュータの分野では、マイクロプロセッサ(MPU/CPU)などに与える機械語の命令のことをインストラクションという。実行可能な形式のコンピュータプログラムはインストラクションの組み合わせとして構成されている。プロセッサがどのようなインストラクションを実行できるかは設計時に決まっており、その体系を「命令セット」あるいは「命令セットアーキテクチャ」(ISA:Instruction Set Architecture)という。これはプロセッサ内部の回路構造(マイクロアーキテクチャ)とは独立に定義され、ISAが共通しているプロセッサは内部の構造が異なっていても同じプログラムコードを実行できる。
IPC (Instructions Per Cycle)
マイクロプロセッサ(MPU/CPU)の性能指標の一つで、クロック周波数あたりの実行命令数。あるベンチマークプログラムを実行した場合に、1クロックあたり平均いくつの命令を実行できるかを示したもの。この値が高いほど実行効率が高く性能が高い。1命令当たりの平均クロック数を表すCPIとは互いに逆数の関係にある。
マイクロプロセッサは内部の個々の回路の動作のタイミングを合わせるために、クロック(時計)と呼ばれる素子から一定の時間間隔で信号を発信し、これに合わせて各回路が演算やデータ転送を行なうようになっている。この間隔のことを1クロック(あるいは1サイクル)と呼び、この間に実行できる平均の命令数が高いほど処理能力が高い。
CPI (Cycles Per Instruction)
マイクロプロセッサ(CPU/MPU)の性能指標の一つで、一つの命令を実行するのにCPUクロック周期が何サイクル必要かを表したもの。同じクロック周波数なら、この値が小さいプロセッサほど効率よく高速にプログラムを実行することができる。1クロック当たりの平均実行命令数を表すIPCとは互いに逆数の関係にある。
プロセッサの構造・設計によって大きく規定されるが、同じプロセッサでも命令によって必要なサイクル数が異なる場合があるため、厳密にはどのような命令で構成されたプログラムを実行するかにより変化する。異なる設計のプロセッサを比較する場合は同じ内容の処理を行うベンチマークテストなどを行なって計測することが多い。
最も単純なプロセッサでは、一命令ごとに順番に読み出し、デコード、実行、書き戻しなどの実行ステージを経るため、5~10CPI程度となることが多い。パイプラインを導入して各ステージで別の命令を処理できるようにすることで、1サイクルに近づけることができる。
さらに、スーパースカラ型のプロセッサでは複数の実行ユニットを並行に動作させ、依存関係にない命令を同時に実行することで、1を下回る値(平均すると1クロックの間に1つ以上の命令を実行できる)を実現することもできる。