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

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

8.5.45. flushd

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

アドレス rA + σ(IMM16) に関連付けられたデータ・キャッシュ・ラインをフラッシュする

アセンブラー構文

flushd IMM16(rA)

flushd -100(r6)

説明

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

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

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

使用法

アドレス指定されたメモリー位置がキャッシュにない場合でも、flushdを使用してダーティーラインをメモリーに書き戻し、キャッシュラインをフラッシュする。対照的に、他のキャッシュクリアー・オプションについては、「flushda のデータ・キャッシュ・アドレスのフラッシュ」、「initd のデータ・キャッシュ・ラインの初期化」、および「initda のデータ・キャッシュ・アドレスの初期化」を参照。

データキャッシュについて詳しくは、「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 0x3b