わかりました、MIP に関する質問です。転送は無効になっています。RAW ハザードを表す命令が 2 つある場合、実際に何が行われているのでしょうか?
命令 1 は、パイプラインを通る旅を開始します。命令 2 がフェッチされ、デコードされ、ハザードが識別されます。ID は、データがレジスタ ファイルに書き戻されるまで、必要なレジスタからデータを読み取ることができません。
ID が開始され、ハザードのために命令が停止し (適切な名前が付けられているように)、ID が命令 1 の WB と同時に完了すると考えられます。
インスト 1 | 場合 | ID | 例 | MEM | WB
インスト 2 | -- | 場合 | ID | -----> | ID仕上げ | 例 | MEM | WB
それで、私は次のようになるだろうと私に言った人と話していました:
IF-ID-EX-MEM-WB
__ _ __ _ __ _IF-ID-EX-MEM-WB
(IDはWBに合わせます)
つまり、デコード時にデータの準備ができていないことがわかり、nop され、同じ命令が再度フェッチされます。PC はすでに命令 3 を取得しているため、PC に何が起こるかについての答えはありませんでした (パイプラインがどのようにバックアップされるかはよくわかりません)。
特定のステージへのクロックを無効/有効にする方が理にかなっています。これは、命令をフェーズに保ち、実行を防ぐように見えるためです。
さまざまな学術資料を見つけることができますが、実際の動作に関して正式なものはありません。