マイクロオペレーション(micro-op、μop):CPUマイクロアーキテクチャの低水準命令
マイクロオペレーションは、プロセッサが複雑な機械語命令を実装するために用いる基本的な内部命令であり、パイプライン処理、アウト・オブ・オーダー実行などのマイクロアーキテクチャ最適化を可能にする。
マイクロオペレーション(micro-op、μopとも表記)は、プロセッサのマイクロアーキテクチャ内部で、より上位の機械語命令を実装するために用いられる基本的な内部命令である。多くのCPUは複雑な機械語命令を直接実行するのではなく、レジスタの読み書き、データに対する算術演算、メモリアドレスの計算、制御フローの変更といった、より細かな動作を表す1個以上のマイクロオペレーションへ変換する。この内部変換により、ハードウェアのパイプラインをより明確に構成し、柔軟な実行方式を採用できる。
CPU内部での特性と役割
マイクロオペレーションは、プロセッサの実行ユニットを対象とする小さな原子的動作である。通常は、2つのレジスタを加算する、メモリから値をレジスタへロードする、フラグを更新するといった単一の操作を記述する。均一で単純であるため、現代のCPU内部でスケジューリング、パイプライン化、レジスタ名のリネーミング、実行順序の入れ替えを行いやすい。プロセッサは、元の複雑な命令エンコーディングとは独立して取得・発行できるよう、マイクロオペレーションをバッファ、キュー、専用キャッシュに保持する場合がある。
歴史と発展
複雑な命令をより単純な内部ステップへ分解する考え方は現代のCPUより古く、読み取り専用のマイクロコードにマイクロ命令列を格納した、マイクロコード方式の設計に起源を持つ。時代とともに多くの設計はハイブリッドな手法へ発展した。CISCアーキテクチャの一部、とりわけx86はオンザフライでマイクロオペレーションに変換する一方、RISCアーキテクチャは通常、ハードウェアの動作により直接対応する単純な命令を公開している。アウト・オブ・オーダー実行、深いパイプライン、投機的手法の成熟に伴い、マイクロオペレーションの利用は広く普及した。
実装例と区別
- マイクロコードROMまたは制御ストア:一部の設計では、非常に複雑な命令や特権命令のための命令列を実装する。
- デコードからμopへの変換:ハードウェアデコーダが機械語命令を、実行用の1個以上のマイクロオペレーションへ変換する。
- マイクロオペレーションキャッシュ:以前にデコードしたマイクロオペレーション列を格納し、繰り返し行うデコードを省略してレイテンシを低減する。
マイクロオペレーションとマイクロコードは区別して捉えることが有用である。マイクロコードは、多くの場合、制御ユニットが解釈するマイクロ命令の格納済みプログラムを意味するのに対し、マイクロオペレーションは通常、アウト・オブ・オーダー実行エンジンが使用する具体的なハードウェア水準の基本動作を指す。両概念は実際には重なり合うことがあり、用語は設計者によって異なる場合がある。
マイクロオペレーションが重要な理由
マイクロオペレーションの利用は、CPUが命令レベル並列性を活用し、タイミングとハザードの処理を簡素化し、レジスタリネーミング、投機実行、命令融合などの機能を実装する助けとなる。これらの機構は、複雑なCPUファミリー内部における実際の性能、電力効率、互換性レイヤーに直接影響する。
マイクロオペレーションがプロセッサ設計にどのように組み込まれるかについては、マイクロアーキテクチャに関する資料を参照。特定の設計における差異、および機械語命令や個々の命令との関係は、技術文献およびベンダー文書で論じられている。
関連項目
著者
AlegsaOnline.com マイクロオペレーション(micro-op、μop):CPUマイクロアーキテクチャの低水準命令 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/64584