2016-04-11 12 views
-1

ロード・ワード命令の直後に(mips 32の)分岐命令が続きます。パイプライン・スタールにおける意思決定

lw r2, (0)r1;-- I swap registers here as opposed to my previous question 
Beq r2, r3, target; 

実行図、IF ID EX MEM WBを生産します。私は両方の方法が可能であれば理解したいBEQ

IF ID EX MEM WB 
    IF * * ID EX 

or 

IF ID EX MEM WB 
    * * IF ID EX 

のための今すぐ失速はどこにする必要があります。また、そのような屋台にはどのようなハードウェア操作が関係していますか?

+1

これは、MIPS 2201命令セットを表すものですか?これは、MIPS 2201命令セットを表すものですか? –

答えて

1

あなたが表示する単純なパイプラインでは、lwは、次のinsnがフェッチされている間にまだデコードされています。パイプラインは、両方が解読されるまで競合するとは判断できません。

第2ストールが何をしているかを正確に考えてみましょう。CPUは、現在の命令がデコードされる前に次の命令をフェッチするのを遅らせます。どちらの命令がこの時点で何であるかはわかりません。

IF ID EX MEM WB  lw 
    * IF ID EX  beq // lw isn't even decoded yet, and neither is this one, so no way to tell if they conflict. 

再:あなたのアップデート:IFそれはパイプラインステージだ、命令ではありません。あなたがパイプライン図を削除する前に


ところで、質問がずっと明確でした。

+0

ありがとう、私は私の質問でかなりの誤りを犯したことに気付いた。命令フェッチ後にパイプラインが競合するとは限りませんか? –

+0

@ ZacUwyoH:*両方の*命令がデコードされるまで何も知らない。 2番目の命令が '$ r10、$ r11、$ r12を追加するとどうなるでしょうか? 2番目の命令がデコードされるまでそれは分かりません。だからあなたの現在の編集では、問題の両方の図が間違っています。 –

+0

ID作業後の2つのストール、または解決策は何でしょうか? –

関連する問題