Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

5.2.7.1. パイプラインのストール

パイプラインは、ステージがストールした場合、そのステージまたは以前のステージに新しい値が入力されないように設定されています。パイプライン・ステージが空であっても、パイプライン・ステージの「キャッチング・アップ」は許容されません。

A ステージと D ステージのみがストールを作成できます。

次のいずれかの条件が発生すると、A ステージのストールが発生します。

  • A ステージのメモリー命令が、Avalon-MM データマスター要求が完了するのを待機しています。通常、これは、ロードまたはストアーがデータキャッシュでミスした場合、またはflushd命令がダーティーラインを書き戻す必要がある場合に発生します。
  • A ステージのシフト / ローティト命令はまだ実行中です。これは、マルチサイクル・シフト回路 ( すなわち、ハードウェア・マルチプライヤーが使用できない場合 ) でのみ発生します。
  • A ステージの除算命令はまだ実行中です。これは、オプションの除算回路が使用可能な場合にのみ発生します。
  • A ステージのマルチサイクル・カスタム命令は stall 信号をアサート中です。これは、デザインにマルチサイクル・カスタム命令が含まれている場合にのみ発生します。

D ステージのストールは、命令が遅延結果命令の結果をより早く使用しようとし、かつ M ステージのパイプライン・フラッシュがアクティブでない場合に発生します。遅延結果命令は、ロード、シフト、ローティト、rdctl、乗算 ( ハードウェア乗算がサポートされている場合 )、除算 ( ハードウェア除算がサポートされている場合 )、およびマルチサイクル・カスタム命令 ( 存在する場合 )です。