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

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

5.2.3.2.2. データキャッシュ

  • ダイレクト・マップ・キャッシュの実装
  • 32 バイトのラインサイズ
  • データマスター・ポートは一度にメモリーからキャッシュライン全体を読み出し、クロックサイクルごとに 1 回の読み出しを発行します。
  • ライトバック
  • 書き込み割り当て ( 例 : 命令の格納時、キャッシュミスはそのアドレスでラインを割り当てます。)
  • MMU が存在する場合、VIPT ( 仮想インデックス、物理タグ付け )

タグフィールドのサイズは、キャッシュメモリーと物理アドレスのサイズに依存します。ラインフィールドのサイズは、キャッシュメモリーのサイズにのみ依存します。オフセットフィールドのサイズは、ラインサイズに依存します。32 バイトのラインサイズはそれぞれ 5 ビット幅となります。MMU が存在しないシステムでは、最大データのバイトアドレス・サイズは 31 ビットです。MMU を有するシステムでは、最大データのバイトアドレス・サイズは 32 ビットで、タグフィールドは常に物理フレーム番号 (PFN) のすべてのビットを含みます。

データキャッシュはオプションです。データキャッシュがコアから除外されている場合、データマスタポートも除外できます。

Nios II 命令セットはデータキャッシュをクリアーするためのいくつかの異なる命令を提供しています。使用する命令を判断する際は、2 つの重要な質問に回答する必要があります。キャッシュの一致を検索する際にタグフィールドを考慮する必要がありますか ? クリアーする前に、ダーティー・キャッシュラインをメモリーにライトバックする必要がありますか ? 表の下は、各ケースで使用するための最も適切な命令のリストです。

表 71.  データキャッシュをクリアーする命令
命令 無視するタグフィールド 検討するタグフィールド
Write Dirty Lines flushd flushda
Do Not Write Dirty Lines initd initda

Nios II 命令セットについて詳しくは、「Nios II プロセッサー・リファレンス・ハンドブック」の「命令セット・リファレンス」の章を参照してください。

Nios II/f コアはすべてのデータキャッシュ・バイパス手法を実装します。

データキャッシュバイパス手法について詳しくは、「Nios II プロセッサー・リファレンス・ハンドブック」の「プロセッサー・・アーキテクチャー」の章を参照してください。

キャッシュアクセスと非キャッシュアクセスを同じキャッシュラインに混在させると、データの読み込みが無効になる可能性があります。例えば、次の一連のイベントはキャッシュの非同期性を引き起こします。

  1. Nios II コアはデータをキャッシュに書き込み、ダーティー・データ・キャッシュ・ラインを作成します。
  2. Nios II コアは同じアドレスからのデータを読み出すが、キャッシュをバイパスします。
注: キャッシュラインを読み書きしているかどうかにかかわらず、同じキャッシュラインにキャッシュアクセスと非キャッシュアクセスを混在させないでください。キャッシュされたデータアクセスと非キャッシュのデータアクセスを混在させる必要がある場合は、キャッシュされたアクセスを完了した後、キャッシュされていないアクセスを実行する前に、データキャッシュの対応するラインをフラッシュします。