次の図に、MicroBlaze Configuration ウィザードの [Cache] ページを示します。
-
Enable Instruction Cache: マシン ステータス レジスタ (MSR) の命令キャッシュ イネーブル (ICE) ビットを設定することにより命令キャッシュがソフトウェアでイネーブルになっている場合にのみ、このキャッシュを使用します。
命令キャッシュの設定オプションは次のとおりです。
- Size in Bytes: [Enable Instruction Cache] (C_USE_ICACHE) がオンの場合に、命令キャッシュのサイズを指定します。すべてのサイズがサポートされないアーキテクチャもあります。
- Line Length: 外部命令メモリからのキャッシュ ミス転送のキャッシュ ライン長を 4、8、または 16 ワードに設定します。
- Base Address: 命令キャッシュのベース アドレスを指定します。このパラメーターは、[Enable Instruction Cache] (C_USE_ICACHE) がオンの場合にのみ使用されます。
- High Address: 命令キャッシュの上位アドレスを指定します。このパラメーターは、[Enable Instruction Cache] (C_USE_ICACHE) がオンの場合にのみ使用されます。
-
Enable Writes:
wic
命令で命令キャッシュ ラインを無効にできるようにします。このパラメーターは、[Enable Instruction Cache] (C_USE_ICACHE) がオンの場合にのみ使用されます。 -
Use Cache for All Memory
Accesses: 命令キャッシュがディスエーブルになっている場合でも、外部命令メモリへのキャッシュ可能な範囲内のすべてのアクセスに MicroBlaze の専用キャッシュ インターフェイスを使用します。
オフの場合、命令キャッシュがディスエーブルであれば、命令キャッシュでこれらのアクセスにペリフェラル AXI が使用されます。
オンの場合、外部メモリ コントローラーでキャッシュ インターフェイス MicroBlaze 命令メモリのみを提供する必要があります。このパラメーターは、ACE (AXI Coherency Extension) を使用する場合にオンにします。
- Use Distributed RAM for Tags: 命令キャッシュ タグを使用して、各キャッシュ ラインのアドレスおよび Valid ビットを保持します。オンの場合、命令キャッシュ タグはブロック RAM ではなく分散メモリに格納されます。これによりブロック RAM が節約されるので、最大周波数を増加できます。
-
Data Width: AXI インターコネクトを使用する際の命令キャッシュのバス幅を指定します。この幅は、次のいずれかに設定できます。
- 32-bit: キャッシュ ラインの長さによって、32 ビット ワードのキャッシュ ラインを送信するのにバーストを使用します。
- Full Cache line: キャッシュ ラインの長さによって、キャッシュ ラインごとに 128、256、または 512 ビットのデータ幅の単一転送を実行します。
- 512-bit: 単一送信を実行しますが、キャッシュ ラインの長さ (4 または 8 ワード) によって、128 または 256 ビットのみを使用します。
幅の広い 2 つの設定では、キャッシュ ラインの長さによって、キャッシュ サイズが少なくとも 8 KB、16 KB、または 32 KB である必要があります。AXI インターコネクトのサイズを削減するには、この設定をインターコネクトのデータ幅と同じにする必要があります。ほとんどの場合、幅設定でベストなパフォーマンスが得られます。
この設定は、エリア最適化、ACE (AXI Coherency Extension) を使用する場合、フォールト トレランスがオンの場合は使用できません。
-
Number of Streams: 命令キャッシュで使用されるストリーム バッファーの数を指定します。ストリーム バッファーは、プロセッサが命令を要求する前に、その命令を投機的にプリフェッチするために使用されます。これにより、プロセッサがメモリから命令をフェッチするのにかかる時間が短くなるので、通常パフォーマンスが改善されます。
命令キャッシュ ストリームを使用できるようにするには、エリア最適化または ACE (AXI Coherency Extension) をイネーブルにしないでください。
- Number of Victims: 保存する命令キャッシュ ビクティムの数を指定します。ビクティムはキャッシュから追い出されたキャッシュ ラインです。ビクティムが保存されない場合は、必要に応じて追い出されたラインをすべてメモリから再度読み出す必要があります。最近のラインを保存しておくと、より高速にフェッチできるので、パフォーマンスが改善します。
推奨: 2、4、または 8 個のキャッシュ ラインを保存できます。保存するキャッシュ ラインが多いほど、パフォーマンスも良くなります。推奨値は 8 ラインです。注記: 命令キャッシュ ビクティムを使用できるようにするには、エリア最適化または ACE (AXI Coherency Extension) をイネーブルにしないでください。 -
Enable Data Cache: マシン ステータス レジスタ (MSR) のデータ キャッシュ イネーブル (DCE) ビットを設定することによりデータ キャッシュがソフトウェアでイネーブルになっている場合にのみ、このキャッシュを使用します。
[Data Cache Feature]:
- Size in Bytes: C_USE_DCACHE (C_USE_DCACHE) がオンの場合に、データ キャッシュのサイズを指定します。一部のアーキテクチャではすべてのサイズはサポートされていません。
- Line Length: 外部メモリからのキャッシュ ミス転送のキャッシュ ライン長を 4、8、または 16 ワードに設定します。
- Base Address: データ キャッシュのベース アドレスを指定します。このパラメーターは、C_USE_DCACHE (C_USE_DCACHE) がオンの場合にのみ使用されます。
- High Address: データ キャッシュの上位アドレスを指定します。このパラメーターは、C_USE_DCACHE (C_USE_DCACHE) がオンの場合にのみ使用されます。
-
Enable Writes:
wdc
命令でデータ キャッシュ ラインを無効にできるようにします。このパラメーターは、C_USE_DCACHE (C_USE_DCACHE) がオンの場合にのみ使用されます。 -
Use Cache for All Memory
Accesses: データ キャッシュがディスエーブルになっている場合でも、外部メモリへのキャッシュ可能な範囲内のすべてのアクセスに MicroBlaze の専用キャッシュ インターフェイスを使用します。
オフの場合、データ キャッシュがディスエーブルであれば、データ キャッシュでこれらのアクセスにペリフェラル AXI が使用されます。
オンの場合、外部メモリ コントローラーでキャッシュ インターフェイス MicroBlaze データ メモリのみを提供する必要があります。このパラメーターは、ACE (AXI Coherency Extension) を使用する場合にオンにします。
- Use Distributed RAM for Tags: データ キャッシュ タグを使用して、各キャッシュ ラインのアドレスおよび Valid ビットを保持します。オンの場合、データ キャッシュ タグはブロック RAM ではなく分散メモリに格納されます。これによりブロック RAM が節約されるので、最大周波数を増加できます。
-
Data Width: AXI インターコネクトを使用する際のデータ キャッシュのバス幅を指定します。この幅は、次のいずれかに設定できます。
- 32-bit: キャッシュ ラインの長さによって、32 ビット ワードのキャッシュ ラインを送信するのにバーストを使用します。
- Full Cache line: キャッシュ ラインの長さによって、キャッシュ ラインごとに 128、256、または 512 ビットのデータ幅の単一転送を実行します。
- 512-bit: 単一送信を実行しますが、キャッシュ ラインの長さ (4 または 8 ワード) によって、128 または 256 ビットのみを使用します。
幅の広い 2 つの設定では、キャッシュ ラインの長さによって、キャッシュ サイズが少なくとも 8 KB、16 KB、または 32 KB である必要があります。AXI インターコネクトのサイズを削減するには、この設定をインターコネクトのデータ幅と同じにする必要があります。ほとんどの場合、幅設定でベストなパフォーマンスが得られます。注記: この設定は、エリア最適化、ACE (AXI Coherency Extension) を使用する場合、フォールト トレランスがオンの場合は使用できません。
-
Number of Streams: 命令キャッシュで使用されるストリーム バッファーの数を指定します。ストリーム バッファーは、プロセッサが命令を要求する前に、その命令を投機的にプリフェッチするために使用されます。これにより、プロセッサがメモリから命令をフェッチするのにかかる時間が短くなるので、通常パフォーマンスが改善されます。
命令キャッシュ ストリームを使用できるようにするには、ACE (AXI Coherency Extension) のエリア最適化をイネーブルにしないでください。
- Enable Write-back Storage Policy: ライトバック データ ストレージ ポリシーの使用をイネーブルにします。このポリシーが有効になると、必要な場合にのみデータ キャッシュのデータがメモリに書き込まれ、ほとんどの場合にパフォーマンスを改善できます。ライトバックがイネーブルの場合、データはキャッシュ ライン全体を書き込むことにより格納されます。ライトバックを使用するには、適切な場合にソフトウェアでキャッシュをフラッシュし、直接メモリ アクセス (DMA) を使用する場合などにデータがメモリに存在するようにする必要があります。ディスエーブルの場合は、ライトスルー ポリシーが使用され、常にデータがメモリに即書き込まれます。
ヒント: MMU がイネーブルの場合、このパラメーターを設定すると各 TLB エントリに対してストレージ ポリシーを個別に選択できます。- Number of Victims: 保存するデータ キャッシュ ビクティムの数を指定します。ビクティムはキャッシュから追い出されたキャッシュ ラインです。ビクティムが保存されない場合は、必要に応じて追い出されたラインをすべてメモリから再度読み出す必要があります。最近のラインを保存しておくと、より高速にフェッチできるので、パフォーマンスが改善します。
推奨: 2、4、または 8 個のキャッシュ ラインを保存できます。保存するキャッシュ ラインが多いほど、パフォーマンスも良くなります。推奨値は 8 ラインです。注記: データ キャッシュ ビクティムを使用できるようにするには、エリア最適化または ACE (AXI Coherency Extension) をイネーブルにしないでください。