マイクロコード 対 VLIWとRISC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/03 09:39 UTC 版)
「マイクロプログラム方式」の記事における「マイクロコード 対 VLIWとRISC」の解説
1960年代に入ると、マイクロプログラム方式で複雑な命令を実装するという設計が増えていき、その傾向が1980年代中ごろまで続いた。そしてRISC設計哲学が登場し、盛んになっていった。 マイクロプログラム方式のCPUでは、1命令の実行に数クロックサイクルかかり、1クロックサイクルはマイクロプログラムの各ステップの実行に対応している。一部のCISCプロセッサは実行に非常に多大なクロック数のかかる命令を持っている。そのような性質は割り込みレイテンシやパイプライン処理に悪影響を及ぼす。 新たにプロセッサを設計する際、RISCのワイヤードロジックによる制御装置は、CISCのマイクロプログラム方式に比べて次のような利点がある。 アセンブリ言語でのプログラミングは主流ではなくなったため、複雑な高機能命令を実装して生産性を上げることは重要ではなくなった。 より単純な命令はハードウェアで直接実行でき、マイクロコード実行による性能低下を防ぐことができる。 分析によれば、複雑な命令は滅多に使われず、結果としてハードウェア資源の浪費につながる。 複雑な命令の実装に使われていたハードウェア資源を、単純で一般的な命令の性能向上のために使うことができる。 マイクロコードによる複雑な命令は実行に多大なクロック数を必要とし、しかも命令によって必要なクロック数が異なる場合がある。それにより、性能向上のためのパイプライン処理が難しくなる。 逆にマイクロプログラム方式にも利点はある。 マイクロプログラム方式で複雑な命令を実装したとしても、コントロールストアが大きくなるだけで他のハードウェア資源は節約できることもある。例えば、1つのALUで実効アドレスの計算と通常の演算命令の計算を兼ねることが多い(Z80、8086など)。 非RISC命令セットでは、(平均すると)1命令でより多くのことを実行できるため、同じプログラムを書いたとき命令数が少なくて済み、メモリ使用量が低減されキャッシュの効果も大きくなる。 x86系の設計では、命令をデコードした結果(マイクロ命令列)を動的なバッファに出力し、それに対して動的な並べ替え(アウトオブオーダー実行)を行う。静的なマイクロプログラム方式は自動反復命令やFPUの超越関数などの複雑な命令で使用している。 現代的なCISCアーキテクチャでは、単純な命令は直接ハードウェアで実行する設計になっていることもある。 多くのRISCおよびVLIWプロセッサは全ての命令を(その命令がキャッシュ上にある限り)1サイクルで実行する。これはマイクロコードを持つCPUがマイクロ命令を1サイクルにひとつ実行するのとよく似ている。VLIWは水平型マイクロコードのような非常に長い命令を使う。一方RISCはもっと小さい垂直型マイクロコードのような命令を使用する。 マイクロプログラム方式はネットワークプロセッサなどの特定用途向けのプロセッサで今もよく使われている。
※この「マイクロコード 対 VLIWとRISC」の解説は、「マイクロプログラム方式」の解説の一部です。
「マイクロコード 対 VLIWとRISC」を含む「マイクロプログラム方式」の記事については、「マイクロプログラム方式」の概要を参照ください。
- マイクロコード 対 VLIWとRISCのページへのリンク