DC_LockdownRange

構文

#include <nitro/os.h>
void DC_LockdownRange( const void* startAddr, u32 nBytes );

引数

startAddr ロックダウンする範囲の最下位アドレス
nBytes ロックダウンする範囲のバイト数(最大1KB)

返り値

なし。

説明

指定領域にヒットしているデータキャッシュの内容をロックして破棄されないようにします。

ただし、1KBのロックダウンブロック単位でロックされますので、この関数を一度呼び出す度にキャッシュとして使用できる領域が1KBずつロックされることになり、ミス率が上昇します。最大で3ブロック分のデータキャッシュをロックダウンすることができます。

startAddr は32バイト単位で下位方向に丸められます。startAddr + nBytes は32バイト単位で上位方向に丸められます。

内部動作

システム制御コプロセッサのレジスタ7, 9を操作しています。
指定されたデータをキャッシュにロードする期間、内部で割り込みが禁止されます。

参照

DC_TouchRange,DC_Unlockdown, DC_UnlockdownAll

履歴

2005/11/14 startAddrの型をconst void*に変更
2005/01/21 ロックダウンブロックに関する記述を追加
2003/12/22 初版