インテルのみ表示可能 — GUID: gol1675050697692
Ixiasoft
3.2. プロセッサーのパイプライン
プロセッサーでは、5ステージのパイプラインを採用しています。
ステージ | 指示的意味 | 機能 |
---|---|---|
F | 命令フェッチ |
|
D | 命令デコード |
|
E | 命令の実行 |
|
M | メモリー |
|
W | 書き戻し |
|
Nios® V/gプロセッサーによる汎用レジスターファイルの実装には、M20Kメモリーブロックが使われます。プロセッサーでは、1処理サイクルかけてM20Kの位置からの読み出しを行います。つまり、Fステージでレジスターファイルの読み出しが開始され、汎用レジスター値はDステージで使用可能になります。
M20Kの位置への書き込みには2処理サイクルがかかります。したがって、Mステージで汎用レジスターへの書き込みが開始されます。解決すべき依存関係がある場合は、MステージからWステージにその値が繰り越されます。
コアによるデータの依存関係の解決は、Dステージで行われます。オペランドは、レジスターファイルの読み出しからEステージ、Mステージ、またはWステージに移動できます。
パイプラインがストールする理由:
- データ依存性: ソースオペランドがDステージで使用できない場合、DステージとFステージの命令は、オペランドが使用可能になるまでストールします。このシナリオが発生する可能性があるのは、EステージまたはMステージのロード命令またはマルチサイクル命令のデスティネーション汎用レジスターがDステージの命令のソースである場合です。
- リソースストール: メモリー動作またはマルチサイクルがMステージで保留中の場合、前のステージの命令は、Mステージで命令が完了するまでストールします。