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

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

8.5.49. initd

命令 データ・キャッシュ・ラインの初期化
演算

アドレス rA + σ(IMM16) に関連付けられたデータ・キャッシュ・ラインの初期化

アセンブラー構文

initd IMM16(rA)

initd 0(r6)

説明

Nios II プロセッサーが直接マッピングされているデータキャッシュを実装している場合、initdはラインがダーティーであれば指定されたアドレスにマップされているデータ・キャッシュ・ラインのチェックをせずに ( または書き込まずに ) メモリーに書き戻し、データ・キャッシュ・ラインをクリアーする。initdaとは異なり、initdはアドレス指定されたデータが現在のキャッシュされいないかどうかにかかわらず、キャッシュラインをクリアーする。このプロセス配下のステップで行われる。

  • rA と符号付き 16 ビット即値の和で指定された有効アドレスを計算する。
  • 計算された有効アドレスに関連付けられたデータ・キャッシュ・ラインを特定する。各データキャッシュの有効アドレスは、tagフィールドとlineフィールドを含んでいる。ラインを特定する場合、initdtagフィールドを無視してクリアーするデータ・キャッシュ・ラインを選択するためにのみlineフィールドを使用する。
  • cash line タグの有効アドレスとの比較をスキップし、アドレス指定されたデータが現在キャッシュされているかどうかを判断する。initdは cash line タグを無視するため、initdは指定されたデータ位置が現在キャッシュされているかどうかにかかわらず、キャッシュラインをフラッシュする。
  • データ・キャッシュ・ラインがダーティーの場合、チェックをスキップする。initdはダーティー・キャッシュ・ラインをスコップするため、プロセッサーに変更されたがまだメモリーに書き込まれていないデータは失われる。
  • ラインの有効ビットをクリアーする。

Nios II プロセッサー・コアにデータキャッシュがない場合、initd命令は何も実行しない。

使用法

プロセッサーのデータキャッシュを初期化するには、プロセッサーのリセット後およびデータメモリーにアクセスする前にinitdを使用する。initdはダーティーデータを書き戻さないため、慎重に使用する必要がある。対照的に、他のキャッシュクリアーのオプションについては、「flushd のデータ・キャッシュ・ラインのフラッシュ」、「flushda のデータ・キャッシュ・アドレスのフラッシュ」、および「initda のデータ・キャッシュ・アドレスの初期化」を参照。 アルテラはプロセッサーがリセット解除された際にのみinitdを使用することを推奨している。

データキャッシュについて詳しくは、「Nios II ソフトウェア開発ハンドブック」の「キャッシュおよび密結合メモリー」の章を参照。

例外

スーパーバイザー専用命令

命令型

I

命令フィールド

A = オペランド rA のレジスター・インデックス

IMM16 = 16 ビットの符号付き即値

ビットフィールド
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
A 0 IMM16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IMM16 0x33