1

私はgem5でプログラムの実行プロセスを学んでいます。そして何冊か本を読んでください。しかし、プログラム実行の部分についてはまだ混乱しています。以下の私の理解は正しいですか?

  1. まず、コンピュータの命令が ICache に配置され、コンピュータの CPU が命令のフェッチを制御し、フェッチされた命令を命令キューに入れます。次に、命令キューから命令を取得し、命令をマイクロ操作にデコードします. これらのマイクロ操作は、リオーダー バッファに送信されます。リオーダ バッファ内のマイクロ操作がロード/ストアの場合、ロード/ストア キューに送信されます。足し算や引き算などの演算であれば、直接実行ユニットに送られます。このプロセスでは、各実行ユニットに、レジスターの名前変更用に予約されたステーションがあります。マイクロ操作が完了すると、リオーダー バッファに戻ります。マイクロ操作がリオーダ バッファの先頭に到達すると、CPU 外のキャッシュまたはメモリに書き戻すことができます。
  2. ロード キューは、キャッシュからデータを取得します。キャッシュは通常、仮想アドレス インデックスと物理アドレス タグです。ロード操作は、キャッシュから並行してフェッチし、仮想アドレス変換を実行します。キャッシュが見つからない場合、ロード操作は MSHR に送信されます。MSHR は、フェッチしたデータをメモリに送信します。データがメモリ内にある場合、データは最初にキャッシュにフェッチされ、次にフェッチされたデータが MSHR に返され、次にロード キューに返されます。データがメモリ内にない場合、オペレーティング システムはページ フォールトを発行し、データはハード ディスクからメモリにフェッチされ、キャッシュからフェッチされ、MSHR に返されてから、ロード キュー。

質問:

  1. マイクロ操作とは、デコードされたときの mov や add などの操作を指しますか?
  2. 命令発行は、リオーダ バッファに送信された、またはリオーダ バッファから実行ユニットに送信されたマイクロ操作に関するものですか? 命令がデコードされた後、直接リオーダ バッファに送られますか?
  3. ディスパッチと発行は同じプロセスを指しますか?
  4. また、浮動小数点数キューやその他のキューなどのキューも見てきました。リオーダバッファから実行ユニットに命令を送る際に、実行ユニットが不足して命令を一時的に格納する場所のことですか?これらのキューは、トマスロ アルゴリズムのリザベーション ステーションと同じものを指しますか?

ここに画像の説明を入力

4

0 に答える 0