5 ステージのパイプライン化された CPU には、次の一連のステージがあります。
IF – 命令メモリからの命令フェッチ。
RD – 命令のデコードとレジスタの読み取り。
EX – 実行: データおよびアドレス計算用の ALU 演算。
MA – データ メモリ アクセス – 書き込みアクセスの場合、RD 状態でのレジスタ読み取りが使用されます。
WB – ライトバックを登録します。
次の一連の命令を検討してください。
I1: L R0, loc 1 ; R0 <=M[loc1]
I2: A R0, R0 1 ; R0 <= R0 + R0
I3: S R2, R0 1 ; R2 <= R2 - R0
各ステージに 1 クロック サイクルかかるとします。I1 のフェッチから始まる上記の一連の命令を完了するのにかかるクロック サイクル数は?
だからここに私の解決策があります。
1 2 3 4 5 6 7 8 9 10 11 12 13
I1: IF RD EX MA WB
I2: IF - - - RD EX MA WB
I3: IF - - - - - - RD EX MA WB
このようにして、合計13サイクルを取得しています。オペランド転送は質問で明示的に言及されていないため、私はそれを想定しています。そのため、登録はWBステージ後にのみ利用可能になります. ただし、オプションは次のとおりです。
- A.8
- B.10
- C.12
- D.15