• ベストアンサー

パイプライン処理

CISCはなぜパイプライン処理と相性が悪いんですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.2

CISCは命令実行に必要なサイクル数に大きなばらつきがあるからです。 実行サイクルにサイクル数が複数かかると、 パイプラインに遊びができます。 通常のパイプラインでは、命令デコードやオペランドフェッチや結果書込などは動けるのに 実行サイクルが処理を終了しないうちは次へ行けません。 またCISCは命令が複雑な分デコードにも時間がかかります。 場合により複数サイクルかかったりします。これもパイプラインの渋滞につながります。 RISCはこれらに着眼し大半の命令が1サイクルで実行可能な命令からなる命令セットにしました。 もちろんデコードも単純で大半が1サイクルです。 また、演算の大半をレジスタ間に限定することにより、 アドレス修飾によるオーバヘッド、特に前命令の実行結果が終了しないと 次命令のオペランドが確定しないといったような場合のオーべヘッドの削減を狙いました。 余談ですが、その後の技術の進歩で、最近の高速CPUはCISCに見えても 内部で命令をRISC命令に分解し、RISC風に処理します。 またメモリとの演算でもレジスタリネーミング技術などでカバーし、 RISCに対して面積増加はありますが、 性能は命令セットアーキテクチャにあまり影響しない、 という意見が多くなって来ています。自分もこの意見に賛成です。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

(古典的な) パイプラインで「どうして高速化できるのか」を考えてみてください. 教科書的には簡単な問題なので, 「どこまで理解できていて」「どこがわからないのか」を書いてくれれば, その気になったら説明します (「CISC」とか「パイプラインの動作」くらいは自分で調べてくださいね).

関連するQ&A