プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

CISCは命令実行に必要なサイクル数に大きなばらつきがあるからです。


実行サイクルにサイクル数が複数かかると、
パイプラインに遊びができます。
通常のパイプラインでは、命令デコードやオペランドフェッチや結果書込などは動けるのに
実行サイクルが処理を終了しないうちは次へ行けません。
またCISCは命令が複雑な分デコードにも時間がかかります。
場合により複数サイクルかかったりします。これもパイプラインの渋滞につながります。

RISCはこれらに着眼し大半の命令が1サイクルで実行可能な命令からなる命令セットにしました。
もちろんデコードも単純で大半が1サイクルです。
また、演算の大半をレジスタ間に限定することにより、
アドレス修飾によるオーバヘッド、特に前命令の実行結果が終了しないと
次命令のオペランドが確定しないといったような場合のオーべヘッドの削減を狙いました。

余談ですが、その後の技術の進歩で、最近の高速CPUはCISCに見えても
内部で命令をRISC命令に分解し、RISC風に処理します。
またメモリとの演算でもレジスタリネーミング技術などでカバーし、
RISCに対して面積増加はありますが、
性能は命令セットアーキテクチャにあまり影響しない、
という意見が多くなって来ています。自分もこの意見に賛成です。
    • good
    • 0

(古典的な) パイプラインで「どうして高速化できるのか」を考えてみてください.


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!