CARD_SetCacheFlushThreshold

構文

#include <nitro/card.h>

void CARD_SetCacheFlushThreshold(u32 icache, u32 dcache);

引数

icache 命令キャッシュの無効化閾値
dcache データキャッシュの無効化閾値

返り値

なし。

説明

ライブラリ内部でDMA転送が必要とされる場合に行うキャッシュ無効化処理の方式を切り替える閾値を設定します。

キャッシュの無効化については、その範囲が小さなものであればIC_InvalidateRange( )DC_FlushRange( )などで部分的に処理すべきですが、 ある程度の規模より大きなバッファに対してはあまりにも時間がかかりすぎるためIC_InvalidateAll( )DC_FlushAll( )などで キャッシュ全体を無効化するほうが効率が良くなります。 この関数は、そのようなキャッシュ無効化処理の方式を切り替えるべきサイズの閾値を変更することが出来ます。

CARDライブラリがDMA転送を行う際、ここで設定した閾値より小さなサイズであれば キャッシュを部分的に無効化し、そうでなければキャッシュ全体を無効化します。
デフォルト設定では、この値はicacheが0x400(1kB)、dcacheが0x2400(9kB)になっています。 これは多くの一般的なプログラムで良好と考えられる経験的な設定値であり、 各々のプログラムの構成や場面に応じてさらに適切な値があれば自由に変更してかまいません。

参照

CARD_GetCacheFlushThreshold

履歴

2008/12/05 デフォルト値を変更。
2007/05/16 初版