命令セット・アセンブリ
現在の高性能なx86のCPUが、複雑な命令を内部でどのように実行しているかの説明として正しいものはどれか。
- Aすべての命令を、ソフトウェアのエミュレータで1命令ずつ実行する
- B命令を解読してRISCに似た単純なマイクロオペレーションに分け、それをパイプラインで実行する
- C複雑な命令は実行できないので、OSがエラーとして停止させる
答えと解説を見る
正解:B. 命令を解読してRISCに似た単純なマイクロオペレーションに分け、それをパイプラインで実行する
x86のCPUは、可変長で複雑な命令を前段のデコーダでマイクロオペレーション(μop)と呼ぶ単純な操作に分け、後段ではそれらをアウトオブオーダーで実行します。一度分けたμopを保存して解読をやり直さずに済ませるμopキャッシュを持つCPUもあります。こうして、昔のソフトウェアとの互換性を保ちながら、RISCと同じような高速な実行の技術を使っています。
- A. ソフトウェアでエミュレートしているわけではありません。
- B. 正しい。外はCISC、中はRISCに近い形です。
- C. 複雑な命令も実行できます。