Nios® Vプロセッサー・リファレンス・マニュアル

ID 683632
日付 5/26/2023
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

2.2. プロセッサーのパイプライン

Nios V/mプロセッサーでは、5ステージのパイプラインを採用しています。

表 6.  プロセッサーのパイプライン・ステージ
ステージ 指示的意味 機能
F 命令フェッチ
  • PC+4の計算
  • 次の命令フェッチ
  • レジスターファイル読み出しのプリデコード
D 命令デコード
  • 命令をデコードする
  • レジスターファイル読み出しデータが使用可能
  • 危険の解決とデータ転送
E 命令の実行
  • ALU演算
  • メモリーアドレス計算
  • 分岐解決
  • CSR読み出し/書き込み
M メモリー
  • メモリーとマルチサイクル動作
  • レジスターファイル書き込み
  • 分岐リダイレクト
W 書き戻し
  • 汎用レジスター値を提供することにより、データ依存関係の解決が容易になります。

Nios® V/mプロセッサーによる汎用レジスターファイルの実装には、M20Kメモリーブロックが使われます。プロセッサーでは、1処理サイクルかけてM20Kの位置からの読み出しを行います。つまり、Fステージでレジスターファイルの読み出しが開始され、汎用レジスター値はDステージで使用可能になります。

M20Kの位置への書き込みには2処理サイクルがかかります。したがって、Mステージで汎用レジスターへの書き込みが開始されます。解決すべき依存関係がある場合は、MステージからWステージにその値が繰り越されます。

コアによるデータの依存関係の解決は、Dステージで行われます。オペランドは、レジスターファイルの読み出しからEステージ、Mステージ、またはWステージに移動できます。

パイプラインがストールする理由:
  • データ依存性: ソースオペランドがDステージで使用できない場合、DステージとFステージの命令は、オペランドが使用可能になるまでストールします。このシナリオが発生する可能性があるのは、EステージまたはMステージのロード命令またはマルチサイクル命令のデスティネーション汎用レジスターがDステージの命令のソースである場合です。
  • リソースストール: メモリー動作またはマルチサイクルがMステージで保留中の場合、前のステージの命令は、Mステージで命令が完了するまでストールします。