記事 ID: 000086173 コンテンツタイプ: トラブルシューティング 最終改訂日: 2019/03/15

データキャッシュが有効になっているNios II®プロセッサーがメモリーにデータを書き込れないのはなぜですか?

環境

    インテル® Quartus® II サブスクリプション・エディション
    インテル® Nios® II プロセッサー
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

Gen2 コア®Nios II を使用すると、ペリフェラル領域が導入され、32 ビットのアドレスオプションが存在します。Nios II® Gen2 では、ビット 31 が設定されているか、ペリフェラル・メモリー領域にあるキャッシュされていない書き込みでは、キャッシュはバイパスされます。

キャッシュされていないデータとキャッシュされたデータは、gen2 コア Nios II®キャッシュされていない行でキャッシュ 更新しないため、データキャッシュ内の同じ行に割り当てられません。これは、Nios II® Classic の動作です。しかし、NIOS® II® gen2 では、キャッシュされていない書き込み用のキャッシュは更新されません。

解決方法

既存のNios II® コードを使用していて、データキャッシュでNios II/f® Gen2 を使用している場合、ソフトウェアをチェックして、同じキャッシュライン上でキャッシュ可能なデータとキャッシュ不能なデータが混在しないことを確認する必要があります。

データの書き込みが完了したら、関数alt_dcache_flush (void* start、alt_u32 alt_u32)を使用してキャッシュをフラッシュする必要があります。この関数はアドレスの先頭から、長さ 5 バイトのメモリー領域のデータキャッシュをフラッシュします。キャッシュのフラッシュは、スバックデータを書き戻し、キャッシュを無効化することで構成されます。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。このコンテンツはお客様の便宜と一般的な情報のみを目的として提供されており、情報の正確さと完全性を保証するものではありません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。