0
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
ADD R1,R2,R3 | IF | ID | EX | MA | WB | | | | | | |
SUB R4,R1,R3 | | IF | ID | EX | MA | WB | | | | | |
AND R6,R1,R7 | | | IF | ID | EX | MA | WB | | | | |
OR R8,R1,R9 | | | | IF | ID | EX | MA | WB | | | |
XOR R10,R1,R11 | | | | | IF | ID | EX | MA | WB | | |
この後のすべての命令は、R1の値が書き込まれているかどうかによって決まります。だから、これを修正するために、私は積み重ねを挿入する必要があります。MIPS命令のタイミングと固定のハザード
AFTER (Using Stalls)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
ADD R1,R2,R3 | IF | ID | EX | MA | WB | | | | | | |
SUB R4,R1,R3 | | IF | ID | * | * | EX | MA | WB | | | |
AND R6,R1,R7 | | | IF | ID | EX | MA | WB | | | | |
OR R8,R1,R9 | | | | IF | ID | EX | MA | WB | | | |
XOR R10,R1,R11 | | | | | IF | ID | EX | MA | WB | | |
メモリアクセスが発生した後に別のストールを挿入する必要がありますか?
転送を使用した場合、タイミングはどのように見えますか?それ、どうやったら出来るの?屋台で
AFAICT、 'SUB'のストールは後で開始されません。 'T3'で' ID'の後まで失速が必要であることさえ知らないので、T2で 'IF'を実行します。つまり、 'SUB'は' SUB'の 'EX'だけ' T6'( 'ADD'の' WB'の後ろ)に止めなければならないので、 ' - IF ID * * EX MA WB'のように見えるはずです。 T5で)。他の命令の「IF」と「ID」には遅延がないため、「スケジュール通りに」開始します。あなたが同意すれば、分析を続ける前に2番目の図を修正したいと思います。 –
私はあなたが提案した変更を加えたと思います。それはあなたが言っていることですか? – brandenwagner
閉じる。今度は他の人のために繰り返します。 「IF」と「ID」はストールしないので、通常の場所に移動します。したがって、 'AND'の' IF'は 'T3'(_not_' T5')です... –