1

マシン上で次の命令を実行していますパイプラインマシンの実行時間を見つけるにはどうすればよいですか?

マシンがパイプライン化されている場合、約200 ps * 3 = 600 psが必要です。

パイプラインマシンが1,000,003命令を実行する場合、実行時間はどうですか?それは1,000,000 * 200 ps + 600 psですか?

+2

@Yvetteいいえ、IMO、これは非常に多くのコンピュータ工学、コンピュータアーキテクチャ、コンピュータプログラミングの質問です。 MIPSのASMをやって誰もが最大のパフォーマンスを得るためにパイプラインを計画したいと思います。 –

+0

@CraigEsteyうん、それは大丈夫です。私はSuperUがこの側面に入ったのかどうかはわかりませんでした。ありがとう。 –

答えて

2

この図は、古典的な5ステージMIPSパイプラインアーキテクチャのものです。現代のチップはスーパースカラーのデザインを使っていますが、それは無視しましょう。

ここでの問題は、さまざまな種類の命令[各T-state T1-T5]の時間を示していますが、図がループの例でもない限り、実行するサンプルプログラムはありません。その場合は、続行してください。

その他の問題は、パイプラインの「ハザード」です。すなわち、特定の命令の特定のステージ(T状態)は、以前の命令の出力に依存するので、「ストール」しなければならない。それが最終的に必要とするので、それは[完了させる前に、命令の「書き込みを登録する」(T5)段階の完了を待たなければならないため、2番目の命令は、その「読み登録」(T2)を停止しなければならない

L1: add $t1,$t2,$t3 
L2: add $t6,$t4,$t1 

例えば: $t1の値]。

ので、代わりのような素敵な行儀のパイプラインで:

1:  L1:T1 
2:  L1:T2  L2:T1 
3:  L1:T3  L2:T2 
4:  L1:T4  L2:T3 
5:  L1:T5  L2:T4 
6:     L2:T5 

我々はで終わる:

近代的な実装では
1:  L1:T1 
2:  L1:T2  L2:T1 
3:  L1:T3  L2:stall 
4:  L1:T4  L2:stall 
5:  L1:T5  L2:stall 
6:     L2:T2 
7:     L2:T3 
8:     L2:T4 
9:     L2:T5 

、この(例えば、「転送」を避けるために、建築の技術がありますが、アウト・オブ・オーダー実行)、しかし、我々は危険を改善するためにどのようなツールが必要であるかを知るために、特定のアーキテクチャーの実装を知る必要があります。私たちが危険を無視した場合、次のように


私の最高の推測がある...

はもう一度、我々は上の計算を行うために特定のプログラム/シーケンスを必要としています。

プログラムがダイアグラムであると仮定すると、1,000,000命令の場合、そのループ反復回数は1,000,000/4または250,000となります。そして...私たちはブランチ遅延スロットも無視しています。

1回のループ反復のためのタイミング図は次のようになります。L4がする前に、すべての命令が完了し

label inst start exec end 
       time time time 
----- ---- ----- ---- ---- 

L1:  lw  0  800  800 
L2:  sw  200  700  900 
L3:  R  400  600  1000 
L4:  beq  600  500  1100 

注意してください。したがって、支配的な時間はL4の終了時間です。したがって、250,000 * 1100 psまたは275 us、それ以下です。


UPDATE:

しかし、私の教授は答えは+ 1400のPS

まあ1,000,000 * 200 psです、あなたは[明らかに;-)]信じるべき私に言っていますあなたは私のものではありません[私は "推測"を強調しました]。ブランチ予測など鉱山はループ1が完了にL4まで開始できない第二のループにL1を前提としています

はしかし、再び、私たちは実装を知っている必要があります。ループ/配列が完全に展開された[ノー分岐が存在しない] lw, sw, R, R 250,000回繰り返すような場合

は、 IMO、1,000,000 * 200 psであろう。私は教授の分析は、ループ2のためにL1のT1を前提と思う

ループ1. L4のT2と同時に開始することができる

例有用な配列は、送信元/送信先が重複するmemmove配列とすることができる[レジスタが既に予め設定されている]を:

L1:  lw  $t0,4($t1) 
L2:  sw  $t0,0($t1) 
L3:  addu $t1,$t1,$t2 
L4:  bne  $t1,$t3,L1 

再び、これはない分岐遅延スロットを負いません。でそれらをこの作品を作成し、がちょうどnopを追加していないするには、シーケンスはL1, L2, L4, L3

しかし、私はうまく印刷再読することになります。をこの計算は、マルチプレクサこと制御ユニット、PCのアクセスを前提としてい、および符号拡張ユニットには遅延がありません。

だから、それは/不一致があったれる理由の鍵となることがあります。もう一度、疑問があるときは、あなたの教授を信じてください。

+0

しかし、私の教授は私に答えを言っているが1,000,000 * 200のPS + 1400 psです –

関連する問題