(57)【要約】【課題】キャッシュコントローラ内のキャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができるキャッシュコントローラを提供する。【解決手段】マスタからのアクセスが無効化範囲設定部１２１の条件に合致すると判定された場合、キャッシュコントローラ１１０は、無効化判定回路１２０及びタグメモリ改変部１２２により、タグメモリ１１１内の該当するアドレスのＶＡＬＩＤフラグ１１３を強制的にリセットする。これにより、ＶＡＬＩＤフラグがリセットされた、該当するアドレスのキャッシュデータはメモリ１０４に書き戻されることなく破棄される。そして、マスタによってアクセスされるデータが該当するアドレスに従って上書きされる。【選択図】図２
2011248515.tif 000002
【特許請求の範囲】
【請求項１】
マスタ及びプロセッサが接続され、前記マスタからのアクセスによってキャッシュデータを破棄するキャッシュコントローラであって、
キャッシュデータを保持するキャッシュエントリが有効である場合にセットされるＶＡＬＩＤフラグと、キャッシュエントリに対して書き込みがなされていない場合にセットされるＤＩＲＴＹフラグとを保持するフラグ保持部と、
前記プロセッサから書き込み可能であり、前記キャッシュデータを無効化する条件を設定する無効化条件設定部と、
前記マスタからのアクセスが前記無効化条件設定部によって設定された無効化する条件に合致するか否かを判定する無効化判定部と、
前記無効化判定部による判定の結果、前記マスタからのアクセスが前記無効化する条件に合致する場合、前記フラグ保持部に保持され、セットされたＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするフラグ書換部と、を備え、
前記ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方がリセットされた場合、前記キャッシュエントリに保持されたキャッシュデータが破棄されることを特徴とするキャッシュコントローラ。
【請求項２】
請求項１に記載のキャッシュコントローラであって、
前記無効化条件設定部は、前記無効化する条件として前記マスタを指定し、
前記無効化判定部は、前記無効化条件設定部によって指定されたマスタからのアクセスがあった場合、前記無効化する条件に合致すると判定することを特徴とするキャッシュコントローラ。
【請求項３】
請求項１又は２に記載のキャッシュコントローラであって、
前記無効化条件設定部は、前記無効化する条件として前記マスタからのアクセスの種別を設定し、
前記無効化判定部は、前記マスタからのアクセスが前記無効化条件設定部によって設定されたアクセスの種別に一致する場合、前記無効化する条件に合致すると判定することを特徴とするキャッシュコントローラ。
【請求項４】
請求項１又は２に記載のキャッシュコントローラであって、
前記無効化条件設定部は、前記無効化する条件として無効化アクセス数を設定し、
前記無効化判定部は、前記マスタからのアクセス数が前記無効化条件設定部によって設定された無効化アクセス数を越えた場合、前記マスタからのアクセスが前記無効化する条件に合致すると判定することを特徴とするキャッシュコントローラ。
【請求項５】
請求項１又は２に記載のキャッシュコントローラであって、
前記無効化条件設定部は、前記無効化する条件として無効化サイクル数を設定し、
前記無効化判定部は、前記マスタによってアクセスされてからの経過サイクル数が前記無効化条件設定部によって設定された無効化サイクル数に達した場合、前記マスタからのアクセスが前記無効化する条件に合致すると判定することを特徴とするキャッシュコントローラ。
【請求項６】
請求項１〜５のいずれか一項に記載のキャッシュコントローラであって、
前記無効化条件設定部は、前記無効化する条件としてアドレス空間を設定し、
前記無効化判定部は、前記マスタからのアクセスが前記無効化条件設定部によって設定されたアドレス空間に対するものである場合、前記無効化する条件に合致すると判定することを特徴とするキャッシュコントローラ。
【請求項７】
マスタ及びプロセッサが接続され、前記マスタからのアクセスによってキャッシュデータを破棄するキャッシュコントローラの制御方法であって、
キャッシュデータを保持するキャッシュエントリが有効である場合にセットされるＶＡＬＩＤフラグと、キャッシュエントリに対して書き込みがなされていない場合にセットされるＤＩＲＴＹフラグとをメモリに保持するフラグ保持ステップと、
前記プロセッサから書き込まれ、前記キャッシュデータを無効化する条件を設定する無効化条件設定ステップと、
前記マスタからのアクセスが前記無効化条件設定ステップで設定された無効化する条件に合致するか否かを判定する無効化判定ステップと、
前記無効化判定ステップにおける判定の結果、前記マスタからのアクセスが前記無効化する条件に合致する場合、前記メモリに保持され、セットされたＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするフラグ書換ステップと、を有し、
前記ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方がリセットされた場合、前記キャッシュエントリに保持されたキャッシュデータが破棄されることを特徴とするキャッシュコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュデータを破棄する機能が搭載されたキャッシュコントローラ及びその制御方法に関する。
【背景技術】
【０００２】
ネットワークや画像処理の高度化のため、プロセッサやＤＭＡが扱うデータ量が増加している。これに伴い、処理を高速化するために、キャッシュコントローラを内蔵するシステムＬＳＩが多く製造されている。
【０００３】
このようなシステムＬＳＩでは、マスタからのキャッシュコントローラへのアクセスでミスヒットが発生した場合、キャッシュコントローラ内のタグメモリのＶＡＬＩＤフラグがセットされ、キャッシュコントローラ内にデータがあることが示される。これと同時に、メモリからデータが読み出され、キャッシュコントローラ内のデータメモリに格納される。
【０００４】
ＶＡＬＩＤフラグがセットされたキャッシュデータへの書き込みに対しては、タグメモリ内のＤＩＲＴＹフラグがセットされる。ＤＩＲＴＹフラグがセットされたデータは、他のデータによって置き換えられるときにメモリに書き戻され、タグメモリのＶＡＬＩＤフラグ及びＤＩＲＴＹフラグがリセットされる。
【０００５】
例えば、中間生成物であるデータがキャッシュコントローラにキャッシュされる処理が行われる場合（図１参照）、中間生成物であるデータ（１３１）は、キャッシュコントローラ（１１０）に一時的にキャッシュされるが、マスタ（１０２）が読み込みを行った後、システムにとっては不要になる。したがって、このデータ（１３１）をメモリ（１０４）に書き戻すことなく破棄することが可能である。従来のキャッシュデータの破棄方法では、プロセッサからのキャッシュコントローラ内のレジスタに破棄するアドレスを書き込むことで、キャッシュデータの破棄が行われる（特許文献１参照）。
【０００６】
図１３は、従来のキャッシュデータの破棄方法が行われるキャッシュコントローラの構成を示す図である。キャッシュコントローラ１１１０は、キャッシュエントリ単位のＶＡＬＩＤフラグ及びＤＩＲＴＹフラグを有するタグメモリ１１１１、無効化判定回路１１２０、無効化範囲設定部１１２１及びタグメモリ改変部１１２２を備える。キャッシュデータを無効にする場合、プロセッサ１１００が無効化範囲設定部１１２１に破棄するアドレスを設定することで、無効化判定回路１１２０が起動する。そして、タグメモリ１１１１内に該当するアドレスが存在する場合、タグメモリ改変部１１２２は、タグメモリ１１１１内の該当するデータのＶＡＬＩＤフラグをリセットする。これにより、キャッシュデータは破棄される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４００８９４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記説明したキャッシュコントローラ１１１０では、プロセッサ１１００が破棄するアドレスを無効化範囲設定部１１２１に書き込むため、キャッシュデータを破棄する処理をプロセッサ１１００に行わせる必要があった。このため、破棄するデータ量が増加するとプロセッサ１１００による処理の負荷が増大する。
【０００９】
本発明の目的は、キャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができるキャッシュコントローラ及びその制御方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明のキャッシュコントローラは、マスタ及びプロセッサが接続され、前記マスタからのアクセスによってキャッシュデータを破棄するキャッシュコントローラであって、キャッシュデータを保持するキャッシュエントリが有効である場合にセットされるＶＡＬＩＤフラグと、キャッシュエントリに対して書き込みがなされていない場合にセットされるＤＩＲＴＹフラグとを保持するフラグ保持部と、前記プロセッサから書き込み可能であり、前記キャッシュデータを無効化する条件を設定する無効化条件設定部と、前記マスタからのアクセスが前記無効化条件設定部によって設定された無効化する条件に合致するか否かを判定する無効化判定部と、前記無効化判定部による判定の結果、前記マスタからのアクセスが前記無効化する条件に合致する場合、前記フラグ保持部に保持され、セットされたＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするフラグ書換部と、を備え、前記ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方がリセットされた場合、前記キャッシュエントリに保持されたキャッシュデータが破棄されることを特徴とする構成を有する。
【００１１】
この構成によれば、マスタからのアクセスが無効化する条件に合致する場合、ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするので、プロセッサが介在することなく、外部トリガであるマスタからのアクセスによりキャッシュデータが破棄される。したがって、キャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができる。さらに、破棄するキャッシュデータのデータ量が多くても、プロセッサの処理の負荷を増大させることなく、キャッシュデータを効率良く破棄することができる。
【００１２】
また、本発明のキャッシュコントローラは、前記無効化条件設定部は、前記無効化する条件として前記マスタを指定し、前記無効化判定部は、前記無効化条件設定部によって指定されたマスタからのアクセスが前記無効化する条件に合致すると判定することを特徴とする構成を有する。
【００１３】
この構成によれば、指定されたマスタからのアクセスが無効化する条件に合致すると判定されるので、キャッシュデータを破棄可能なマスタを限定することができる。
【００１４】
また、本発明のキャッシュコントローラは、前記無効化条件設定部は、前記無効化する条件として前記マスタからのアクセスの種別を設定し、前記無効化判定部は、前記マスタからのアクセスが前記無効化条件設定部によって設定されたアクセスの種別に一致する場合、前記無効化する条件に合致すると判定することを特徴とする構成を有する。
【００１５】
この構成によれば、設定されたアクセスの種別に一致するマスタからのアクセスが無効化する条件に合致すると判定されるので、アクセスの種別としてライトアクセスのみが設定された場合、プロセッサは、マスタの転送完了を受けると、データを読み出し、例えば、デバック情報として表示することが可能となる。
【００１６】
また、本発明のキャッシュコントローラは、前記無効化条件設定部は、前記無効化する条件として無効化アクセス数を設定し、前記無効化判定部は、前記マスタからのアクセス数が前記無効化条件設定部によって設定された無効化アクセス数を越えた場合、前記マスタからのアクセスが前記無効化する条件に合致すると判定することを特徴とする構成を有する。
【００１７】
この構成によれば、マスタからのアクセス数が設定された無効化アクセス数を越えた場合、マスタからのアクセスが無効化する条件に合致すると判定されるので、繰り返し同じデータを読み込むような動作、例えば、同じ画像データを何枚も重ね合わせるようなマスタにも対応することが可能になる。
【００１８】
また、本発明のキャッシュコントローラは、前記無効化条件設定部は、前記無効化する条件として無効化サイクル数を設定し、前記無効化判定部は、前記マスタによってアクセスされてからの経過サイクル数が前記無効化条件設定部によって設定された無効化サイクル数に達した場合、前記マスタからのアクセスが前記無効化する条件に合致すると判定することを特徴とする構成を有する。
【００１９】
この構成によれば、マスタによってアクセスされてからの経過サイクル数が設定された無効化サイクル数に達した場合、マスタからのアクセスが無効化する条件に合致すると判定されるので、キャッシュコントローラに長時間滞留しているデータを破棄することができ、データメモリを自動的に開放することができる。
【００２０】
また、本発明のキャッシュコントローラは、前記無効化条件設定部は、前記無効化する条件としてアドレス空間を設定し、前記無効化判定部は、前記マスタからのアクセスが前記無効化条件設定部によって設定されたアドレス空間に対するものである場合、当該マスタからのアクセスを前記無効化する条件に合致すると判定することを特徴とする構成を有する。
【００２１】
この構成によれば、マスタからのアクセスが設定されたアドレス空間に対するものである場合、無効化する条件に合致すると判定されるので、任意のアドレス空間を設定することができ、設計の自由度を高めることができる。
【００２２】
本発明のキャッシュコントローラの制御方法は、マスタ及びプロセッサが接続され、前記マスタからのアクセスによってキャッシュデータを破棄するキャッシュコントローラの制御方法であって、キャッシュデータを保持するキャッシュエントリが有効である場合にセットされるＶＡＬＩＤフラグと、キャッシュエントリに対して書き込みがなされていない場合にセットされるＤＩＲＴＹフラグとをメモリに保持するフラグ保持ステップと、前記プロセッサから書き込まれ、前記キャッシュデータを無効化する条件を設定する無効化条件設定ステップと、前記マスタからのアクセスが前記無効化条件設定ステップで設定された無効化する条件に合致するか否かを判定する無効化判定ステップと、前記無効化判定ステップにおける判定の結果、前記マスタからのアクセスが前記無効化する条件に合致する場合、前記メモリに保持され、セットされたＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするフラグ書換ステップと、を有し、前記ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方がリセットされた場合、前記キャッシュエントリに保持されたキャッシュデータが破棄されることを特徴とする構成を有する。
【００２３】
この構成によれば、マスタからのアクセスが無効化する条件に合致する場合、ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするので、プロセッサが介在することなく、外部トリガであるマスタからのアクセスによりキャッシュデータが破棄される。したがって、キャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができる。さらに、破棄するキャッシュデータのデータ量が多くても、プロセッサの処理の負荷を増大させることなく、キャッシュデータを効率良く破棄することができる。
【発明の効果】
【００２４】
本発明は、マスタからのアクセスが無効化する条件に合致する場合、ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットすることにより、外部トリガであるマスタからのアクセスによりキャッシュデータを破棄することができる。したがって、キャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができるキャッシュコントローラを提供することができるものである。さらに、破棄するキャッシュデータのデータ量が多くても、プロセッサの処理の負荷を増大させることなく、キャッシュデータを効率良く破棄することができる。
【図面の簡単な説明】
【００２５】
【図１】第１の実施形態におけるキャッシュコントローラが適用されたコンピュータシステムの構成を示すブロック図
【図２】キャッシュコントローラ１１０の構成を示すブロック図
【図３】無効化範囲設定部１２１の構成を示す図
【図４】タグメモリ１１１のアドレスマップを示す図
【図５】キャッシュコントローラ１１０の動作手順を示すフローチャート
【図６】第２の実施形態における無効化範囲設定部２２１の構成を示す図
【図７】第３の実施形態におけるキャッシュコントローラ３１０の構成を示すブロック図
【図８】無効化範囲設定部３２１の構成を示す図
【図９】キャッシュコントローラ３１０の動作手順を示すフローチャート
【図１０】第４の実施形態におけるキャッシュコントローラ４１０の構成を示すブロック図
【図１１】無効化範囲設定部４２１の構成を示す図
【図１２】キャッシュコントローラ４１０の動作手順を示すフローチャート
【図１３】従来のキャッシュデータの破棄方法が行われるキャッシュコントローラの構成を示す図
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について、図面を参照して説明する。
【００２７】
（第１の実施形態）
図１は、第１の実施形態におけるキャッシュコントローラが適用されたコンピュータシステムの構成を示すブロック図である。このコンピュータシステムでは、バス１０５にマスタ１０１，１０２及びキャッシュコントローラ１１０が接続されている。また、キャッシュコントローラ１１０には、メモリ１０４が接続されている。マスタ１０１，１０２として、プロセッサやＤＭＡコントローラ等が挙げられる。
【００２８】
キャッシュコントローラ１１０にキャッシュされる中間生成物であるデータ１３１は、キャッシュコントローラ１１０に一時的に保持されるが、マスタ１０２が読み込みを行った後、システムにとって不要になる。したがって、このデータ１３１を、メモリ１０４に書き戻す（ライトバック）ことなく破棄することが可能である。
【００２９】
図２は、キャッシュコントローラ１１０の構成を示すブロック図である。キャッシュコントローラ１１０は、前述したマスタ１０１、マスタ１０２、メモリ１０４の他、プロセッサ１００にも接続され、外部トリガであるマスタ１０１，１０２からのアクセスによりキャッシュデータを廃棄可能である。なお、キャッシュコントローラに接続されるマスタ、プロセッサ及びメモリの数は任意の数で良い。
【００３０】
キャッシュコントローラ１１０は、タグメモリ１１１、データメモリ１１６、無効化判定回路１２０、無効化範囲設定部１２１及びタグメモリ改変部１２２を備える。
【００３１】
図３は、無効化範囲設定部１２１の構成を示す図である。無効化範囲設定部１２１は、図３（Ａ）に示すように、開始アドレス設定部１４０、終了アドレス設定部１４１、ＶＡＬＩＤフラグ書換設定部１４２、ＤＩＲＴＹフラグ書換設定部１４３及びマスタ設定部１４４を備える。なお、キャッシュコントローラ１１０内の無効化範囲設定部１２１の数は任意の数でよい。
【００３２】
無効化範囲設定部１２１（無効化条件設定部）に登録される条件は、プロセッサ１００によって動作開始時などに設定される。図３（Ｂ）に示すように、無効化範囲設定部１２１内のＶＡＬＩＤフラグ書換設定部１４２には、ＶＡＬＩＤフラグのリセット、セット又は変更なしが設定される。また、ＤＩＲＴＹフラグ書換設定部１４３には、ＤＩＲＴＹフラグのリセット、セット又は変更なしが設定される。また、マスタ設定部１４４には、指定されたマスタが設定される。
【００３３】
データメモリ１１６には、キャッシュデータが保持されるキャッシュエントリが設けられる。タグメモリ１１１（フラグ保持部）は、キャッシュエントリ毎に、ＶＡＬＩＤフラグ１１３、ＤＩＲＴＹフラグ１１４及びアドレス１１５を備える。ＶＡＬＩＤフラグは、キャッシュエントリが有効であるときにセットされ、無効であるときにリセットされるフラグである。また、ＤＩＲＴＹフラグは、ＶＡＬＩＤフラグがセットされたキャッシュデータへの書き込みがなされるときにセットされており、ライトバックされるときにリセットされるフラグである。すなわち、ＤＩＲＴＹフラグは、キャッシュエントリに対して書き込みがなされていないときにセットされるフラグである。なお、データメモリ１１６に設けられるキャッシュエントリの数は任意の数でよい。
【００３４】
無効化判定回路１２０は、無効化範囲設定部１２１内のマスタ設定部１４４に設定されたマスタ（指定されたマスタ）から、開始アドレス設定部１４０と終了アドレス設定部１４１に設定されたアドレス空間へのアクセスがあった場合、つぎのような動作を行う。すなわち、無効化判定回路１２０は、該当するアドレスに対応するタグメモリ１１１内のＶＡＬＩＤフラグ１１３、ＤＩＲＴＹフラグ１１４を、それぞれＶＡＬＩＤフラグ書換設定部１４２、ＤＩＲＴＹフラグ書換設定部１４３の条件に従って改変するように、タグメモリ改変部１２２に指示する。
【００３５】
図４は、タグメモリ１１１のアドレスマップを示す図である。例えば、アドレスマップで示されるアドレスＡ０を開始アドレス設定部１４０に設定し、アドレスＡ１を終了アドレス設定部１４１に設定し、マスタ設定部１４４にマスタ１０２を設定し、ＶＡＬＩＤフラグ書換設定部１４２にリセットを設定した場合を示す。この場合、マスタ１０１からのアクセスは、無効化判定回路１２０によって無効化範囲設定部１２１の条件に合致しないと判定される。したがって、キャッシュコントローラ１１０は通常の動作を実行する。すなわち、キャッシュコントローラ１１０では、ＶＡＬＩＤフラグ１１３がセットされた、該当するアドレスのキャッシュデータは、破棄されることなくメモリ１０４に書き戻され、ＤＩＲＴＹフラグはリセットされる。
【００３６】
これに対し、マスタ１０２からのアドレスＢ１へのアクセスは、無効化判定回路１２０によって無効化範囲設定部１２１の条件に合致すると判定される。したがって、該当するアドレスのタグメモリ１１１内のＶＡＬＩＤフラグ１１３は強制的にリセットされる。そして、ＶＡＬＩＤフラグ１１３がリセットされることにより、キャッシュコントローラ１１０内の該当するアドレスのキャッシュデータは、メモリ１０４に書き戻されることなく破棄される。
【００３７】
また、マスタ１０２からのアドレスＢ０，Ｂ２へアクセスは、無効化判定回路１２０により、開始アドレス設定部１４０と終了アドレス設定部１４１の範囲外と判定される。したがって、強制的なタグメモリ１１１の書き換えは起こらず、キャッシュコントローラ１１０は通常の動作を行う。
【００３８】
図５は、キャッシュコントローラ１１０の動作手順を示すフローチャートである。キャッシュコントローラ１１０は、マスタからのアクセスが有った否かを判別する（ステップＳ１）。マスタからのアクセスが無い場合、本動作は終了する。
【００３９】
一方、マスタからのアクセスが有った場合、キャッシュコントローラ１１０は、無効化判定回路１２０により、マスタからのアクセスが無効化範囲設定部１２１の条件に合致するか否かを判定する（ステップＳ２）。条件に合致しないと判定された場合、キャッシュコントローラ１１０は通常の動作を行う（ステップＳ３）。すなわち、マスタからのアクセスにより、ＶＡＬＩＤフラグがセットされた該当するアドレスのキャッシュデータはメモリ１０４に書き戻される。そして、マスタによってアクセスされるデータが該当するアドレスに従って上書きされる。この後、本動作を終了する。
【００４０】
一方、マスタからのアクセスが無効化範囲設定部１２１の条件に合致すると判定された場合、キャッシュコントローラ１１０は、無効化判定回路１２０及びタグメモリ改変部１２２により、タグメモリ１１１内の該当するアドレスのＶＡＬＩＤフラグ１１３を強制的にリセットする（ステップＳ４）。これにより、ＶＡＬＩＤフラグがリセットされた、該当するアドレスのキャッシュデータはメモリ１０４に書き戻されることなく破棄される。そして、マスタによってアクセスされるデータが該当するアドレスに従って上書きされる。この後、本動作を終了する。
【００４１】
ここで、ＶＡＬＩＤフラグ１１３をリセットする場合、キャッシュデータは即座に破棄されたことになる。また、ＤＩＲＴＹフラグ１１４のみをリセットする場合、該当するアドレスのキャッシュデータの置換が発生した時点で、ＤＩＲＴＹフラグ１１４が依然としてリセットされていれば、キャッシュデータは破棄される。一方、ＤＩＲＴＹフラグ１１４がセットされていれば、メモリ１０４への書き戻しが発生する。
【００４２】
第１の実施形態のキャッシュコントローラによれば、最初に無効化範囲設定部１２１に条件を設定することで、それ以降、プロセッサ１００が介在することはなく、条件に合致したキャッシュデータは破棄される。これにより、プロセッサ１００の処理の負荷を軽減することができる。
【００４３】
このように、マスタからのアクセスが無効化する条件に合致する場合、ＶＡＬＩＤフラグ及びＤＩＲＴＹフラグの少なくとも一方をリセットするので、プロセッサが介在することなく、外部トリガであるマスタからのアクセスによりキャッシュデータが破棄される。したがって、キャッシュデータを破棄する際、プロセッサによる処理の負荷を軽減することができる。さらに、破棄するキャッシュデータのデータ量が多くても、プロセッサの処理の負荷を増大させることなく、キャッシュデータを効率良く破棄することができる。
【００４４】
また、指定されたマスタからのアクセスが無効化する条件に合致すると判定されるので、キャッシュデータを破棄可能なマスタを限定することができる。
【００４５】
また、マスタからのアクセスが設定されたアドレス空間に対するものである場合、無効化する条件に合致すると判定されるので、任意のアドレス空間を設定することができ、設計の自由度を高めることができる。
【００４６】
また、システムで不要になったデータを即座に破棄することにより、キャッシュコントローラ１１０内のデータメモリ１１６の利用効率が向上し、システムの性能も向上する。さらに、データを書き戻すことなく破棄するので、メモリ１０４へのアクセス回数を減らすことができる。
【００４７】
（第２の実施形態）
図６は、第２の実施形態における無効化範囲設定部２２１の構成を示す図である。第１の実施形態と同一の構成要素については、同一の符号が付されている。また、第２の実施形態における、その他のキャッシュコントローラの構成は第１の実施形態と同一であり、同一の符号を用いることによりその説明を省略する。
【００４８】
第１の実施形態では、マスタからのアクセス種別は、無効化判定回路１２０における判定条件となっていなかったが、第２の実施形態では、マスタからのアクセス種別毎に設定が可能である。
【００４９】
無効化範囲設定部２２１には、図６（Ａ）に示すように、第１の実施形態の無効化範囲設定部１２１と比べ、アクセス種別設定部（レジスタ）１４５が追加されている。図６（Ｂ）に示すように、アクセス種別設定部１４５には、「リードアクセスのみ」、「ライトアクセスのみ」及び「リード・ライトとも」が設定可能である。
【００５０】
無効化判定回路１２０は、判定条件として、第１の実施形態で示した条件に加え、アクセス種別設定部（レジスタ）１４５に設定されているマスタのアクセス種別を判定する。
【００５１】
第１の実施形態のキャッシュコントローラでは、マスタ１０２がリードした直後にキャッシュデータは破棄されるので、マスタ１０２の転送が完了した後、プロセッサ１００が該当するメモリ空間のデータ１３１を読み戻すことは不可能である。
【００５２】
しかし、システムのデバッグ時において、マスタ１０２が転送したデータ１３１をプロセッサ１００が読み出して確認したい場合がある。通常、デバック中、該当するデータ１３１は、デバッグのために、プロセッサ１００やＩＣＥ（In-Circuit Emulator）から読み出されるが、該当するデータ領域への書き込みは行われない。
【００５３】
このため、例えば、アクセス種別設定部１４５に「ライトアクセスのみ」が設定された場合、プロセッサ１００は、マスタ１０２の転送完了を受けると、データ１３１を読み出し、デバック情報として表示することが可能となる。この確認後、プロセッサ１００が該当するデータ領域へのライトアクセスを発行することにより、データ１３１は破棄される。第２の実施形態のキャッシュコントローラは、このような動作を行う場合に有効である。
【００５４】
なお、上記実施形態では、プロセッサからのライトアクセスでキャッシュデータが破棄される場合を示したが、これに限らず、任意のマスタからのリードアクセス又はライトアクセスで破棄が行われるようにしてもよい。
【００５５】
また、マスタ１０２からのリードアクセスを、無効化判定回路１２０の合致条件として無効化範囲設定部２２１に設定した場合、マスタ１０２から読み出された時点でデータ１３１は破棄（無効化）され、メモリ（キャッシュ領域）空間は開放される。これにより、プロセッサ１００による処理の負荷の削減及びキャッシュ領域の有効利用が可能になる。
【００５６】
（第３の実施形態）
図７は、第３の実施形態におけるキャッシュコントローラ３１０の構成を示すブロック図である。第３の実施形態のキャッシュコントローラ３１０において、第１の実施形態と同一の構成要素については、同一の符号が付されている。
【００５７】
第３の実施形態のキャッシュコントローラ３１０には、第１の実施形態のキャッシュコントローラ１１０と比べ、マスタからのアクセス数を計測するアクセス数計測部１２３が設けられている。このアクセス数計測部１２３は無効化判定回路１２０に接続される。また、無効化範囲設定部３２１の構成が第１の実施形態の無効化範囲設定部１２１と異なる。
【００５８】
図８は、無効化範囲設定部３２１の構成を示す図である。図８（Ａ）に示すように、無効化範囲設定部３２１には、第１の実施形態の無効化範囲設定部１２１と比べ、アクセス数設定部１４６が追加されている。また、図８（Ｂ）に示すように、アクセス数設定部１４６には、アクセス数計測部１２３によって計測されるアクセス数と比較される無効化アクセス数が設定される。
【００５９】
図９は、キャッシュコントローラ３１０の動作手順を示すフローチャートである。キャッシュコントローラ３１０は、マスタからのアクセスが有った否かを判別する（ステップＳ１１）。マスタからのアクセスが無い場合、本動作は終了する。
【００６０】
一方、マスタからのアクセスが有った場合、キャッシュコントローラ１１０は、無効化判定回路１２０により、マスタからのアクセスが無効化範囲設定部３２１におけるアクセス数設定部１４６以外の条件に合致するか否かを判定する（ステップＳ１２）。
【００６１】
アクセス数設定部１４６以外の条件に合致しないと判定された場合、キャッシュコントローラ１１０は、通常の動作を行い（ステップＳ１５）、本動作を終了する。
【００６２】
一方、アクセス数設定部１４６以外の条件に合致すると判定された場合、無効化判定回路１２０は、その判定結果をアクセス数計測部１２３に通知する。アクセス数計測部１２３は、この通知を受けると、アクセスのカウントを行い、そのカウント数を無効化判定回路１２０に通知する（ステップＳ１３）。
【００６３】
無効化判定回路１２０は、アクセス数計測部１２３で計測されたカウント数とアクセス数設定部１４６に設定された無効化アクセス数とを比較し、計測されたカウント数がアクセス数設定部１４６に設定されている値（無効化アクセス数）を越えたか否かを判定する（ステップＳ１４）。
【００６４】
カウント数が無効化アクセス数を越えた場合、キャッシュコントローラ１１０は、タグメモリ改変部１２２を起動し、タグメモリ１１１内のＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４を無効化範囲設定部３２１の設定に従って強制的に書き換える（ステップＳ１６）。この書き換えにより、ＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４の少なくとも一方はリセットされる。さらに、キャッシュコントローラ１１０は、アクセス数計測部１２３のカウント数をクリアし（ステップＳ１７）、本動作を終了する。一方、ステップＳ１４でカウント数が無効化アクセス数を越えていない場合、キャッシュコントローラ１１０は、ステップＳ１５で通常の動作を行い、本動作を終了する。
【００６５】
このように、第３の実施形態のキャッシュコントローラは、マスタからのアクセス回数を無効化アクセス数として無効化範囲設定部に設定することにより、繰り返し同じデータを読み込むような動作、例えば、同じ画像データを何枚も重ね合わせるようなマスタにも対応することが可能になる。
【００６６】
なお、アクセス数計測部１２３は、マスタを区別することなくアクセスのカウント数を計測したが、マスタ毎のアクセスのカウント数を計測し、マスタ設定部１４４で指定されたマスタのアクセスのカウント数が対応する無効化アクセス数と比較されるようにしてもよい。
【００６７】
また、マスタからのアクセスはリードアクセスでなく、ライトアクセスのみ、又は両方ともであってもよいことは、第１、第２の実施形態と同様である。
【００６８】
（第４の実施の形態）
図１０は、第４の実施形態におけるキャッシュコントローラ４１０の構成を示すブロック図である。第４の実施形態のキャッシュコントローラ４１０において、第１の実施形態と同一の構成要素については、同一の符号が付されている。
【００６９】
第４の実施形態のキャッシュコントローラ４１０には、第１の実施形態のキャッシュコントローラ１１０と比べ、マスタによってアクセスされてからの経過サイクル数を計測するサイクル数計測部１２４が設けられている。このサイクル数計測部１２４は無効化判定回路１２０に接続されている。また、無効化範囲設定部４２１の構成は第１の実施形態の無効化範囲設定部１２１と異なる。
【００７０】
図１１は、無効化範囲設定部４２１の構成を示す図である。図１１（Ａ）に示すように、無効化範囲設定部４２１には、第１の実施形態の無効化範囲設定部１２１と比べ、サイクル数設定部１４７が追加されている。また、図１１（Ｂ）に示すように、サイクル数設定部１４７には、サイクル数計測部１２４によって計測される経過サイクル数と比較される無効化サイクル数が設定されている。
【００７１】
図１２は、キャッシュコントローラ４１０の動作手順を示すフローチャートである。キャッシュコントローラ４１０は、マスタからのアクセスが有った否かを判別する（ステップＳ２１）。ステップＳ２１でマスタからのアクセスが無いと判別された場合、キャッシュコントローラ４１０は、計測中のサイクル数が無効化サイクル数と一致するか否かを判別する（ステップＳ２８）。ステップＳ２８において合致しないと判別された場合、キャッシュコントローラ４１０は本動作を終了する。
【００７２】
一方、計測中のサイクル数が無効化アクセス数と一致すると判別された場合はステップＳ２６に進み、キャッシュコントローラ４１０は、タグメモリ改変部１２２を起動し、タグメモリ１１１内のＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４を無効化範囲設定部４２１の設定に従って強制的に書き換える（ステップＳ２６）。この書き換えにより、セットされていたＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４の少なくとも一方はリセットされる。
【００７３】
そして、キャッシュコントローラ４１０は、サイクル数計測部１２４のカウント数をクリアし、計測を停止させる（ステップＳ２７）。この後、キャッシュコントローラ４１０は本動作を終了する。
【００７４】
一方、ステップＳ２１でマスタからのアクセスが有ると判別された場合、キャッシュコントローラ４１０は、無効化判定回路１２０により、マスタからのアクセスが無効化範囲設定部４２１におけるサイクル数設定部１４７以外の条件に合致するか否かを判定する（ステップＳ２２）。サイクル数設定部１４７以外の条件に合致しないと判定された場合、キャッシュコントローラ４１０は、通常の動作を行い（ステップＳ２５）、本動作を終了する。
【００７５】
一方、サイクル数設定部１４７以外の条件に合致すると判定された場合、無効化判定回路１２０は、その判定結果をサイクル数計測部１２４に通知する。この通知を受けたサイクル数計測部１２４は、サイクル数の計測を開始する（ステップＳ２３）。このとき、サイクル計測中である場合、サイクル数計測部１２４は、既に計測したカウント値のリセットを行い、再度カウントを継続する。そして、サイクル数計測部１２４は、計測したサイクル数を無効化判定回路１２０に通知する。
【００７６】
無効化判定回路１２０は、サイクル数計測部１２４で計測されたサイクル数とサイクル数設定部１４７に設定された無効化サイクル数とを比較し、計測されたサイクル数がサイクル数設定部１４７に設定されている値（無効化サイクル数）に一致した（達した）か否かを比較する（ステップＳ２４）。
【００７７】
計測されたサイクル数が無効化アクセス数に一致した場合、キャッシュコントローラ４１０は、タグメモリ改変部１２２を起動し、タグメモリ１１１内のＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４を無効化範囲設定部４２１の設定に従って強制的に書き換える（ステップＳ２６）。この書き換えにより、セットされていたＶＡＬＩＤフラグ１１３及びＤＩＲＴＹフラグ１１４の少なくとも一方はリセットされる。
【００７８】
そして、キャッシュコントローラ４１０は、サイクル数計測部１２４のカウント数をクリアし、計測を停止させる（ステップＳ２７）。この後、キャッシュコントローラ４１０は本動作を終了する。
【００７９】
一方、ステップＳ２４で計測されたサイクル数が無効化サイクル数に一致しなかった場合、キャッシュコントローラ４１０は、ステップＳ２５で通常の動作を行い、本動作を終了する。
【００８０】
ここで、通信系のデータ処理について説明する。データには、通常、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ：生存時間）と呼ばれる有効時間が設定されている。このＴＴＬ内においては、データは有効である必要がある。しかし、このＴＴＬを越えた場合、そのデータの有効性を保証する必要がない。
【００８１】
例えば、ＴＴＬが１０ｍｓであるデータがあった場合、このデータは１０ｍｓ以内で処理される必要がある。１０ｍｓを越えた場合、データが未到達もしくは通信エラーで壊れていたと認識され、送信側もしくは受信側で再送受信処理が行われる。
【００８２】
ＴＴＬを越えたデータについては、データが処理済であるか否かにかかわらず、データを保持する必要がないので、キャッシュコントローラから破棄することが可能である。具体的に、データ１３１はマスタ１０２から読み出されて処理された後、データ１３２としてメモリ１０４に書き出される（図１参照）。このとき、何らかの理由で、マスタ１０２によるデータ１３１の処理が停滞した場合、データ１３１は、長時間、キャッシュコントローラ１１０に滞留する。
【００８３】
一般的に、ＴＴＬを越えたデータは、プロセッサ１００が無効化する、もしくはデータのライトバックとしてメモリ１０４に書き戻される。例えば、ある通信フレームで使うメモリ空間を無効化範囲設定部４２１の開始アドレス設定部１４０と終了アドレス設定部１４１に設定し、サイクル数設定部１４７にＴＴＬで１０ｍｓを設定したとする。
【００８４】
通信モジュールが外部から受信した通信データは、データ１３０としてメモリ１０４に展開される。そして、マスタ１０２は、メモリ１０４からデータ１３０を読み出し、データ処理後、データ１３１としてキャッシュコントローラ４１０経由で書き込みを行う。
【００８５】
このとき、キャッシュコントローラ４１０は、データ１３１を書き込む際、無効化範囲設定部４２１と無効化判定回路１２０に従って、キャッシュエントリ毎に接続されているサイクル数計測部１２４のカウント値をリセットし、サイクルの計測を開始する。
【００８６】
無効化判定回路１２０は、サイクル計測中、１０ｍｓに到達したことを検出すると、タグメモリ改変部１２２を起動し、タグメモリ１１１内のＶＡＬＩＤフラグ１１３とＤＩＲＴＹフラグ１１４を無効化範囲設定部４２１の設定に従って改変する。
【００８７】
また、サイクル計測中、無効化判定回路１２０から無効化範囲設定部４２１内のサイクル数設定部１４７以外の条件が一致したことの通知を受けた場合、サイクル数計測部１２４は、カウント値のリセットを行い、サイクルの計測を続行する。
【００８８】
このように、第４の実施形態におけるキャッシュコントローラは、無効化判定回路１２０がサイクル数計測部１２４の経過サイクル数とサイクル数設定部１４７の無効化サイクル数が一致した場合、データの無効化を行い、データ１３１が占めているキャッシュコントローラ４１０内のデータメモリ１１６を自動的に開放する。これにより、プロセッサ１００の処理の負荷を削減し、キャッシュコントローラ４１０内のデータメモリを有効的に活用することができる。
【００８９】
このように、マスタによってアクセスされてからの経過サイクル数が設定された無効化サイクル数を越えた場合、マスタからのアクセスが無効化する条件に合致すると判定されるので、キャッシュコントローラに長時間滞留しているデータを破棄することができ、データメモリを自動的に開放することができる。
【００９０】
なお、サイクル計測中、無効化判定回路１２０から条件が一致したことの通知を受けた場合、必ずしもサイクル数計測部１２４のカウント値をリセットする必要はない。
【産業上の利用可能性】
【００９１】
本発明は、プロセッサ等のマスタと、ＤＭＡコントローラ等のマスタとが混在してキャッシュコントローラが接続されるシステムにおいて、プロセッサによる処理の負荷の低減とともに、キャッシュコントローラのデータメモリに記憶されたキャッシュデータを破棄してデータメモリを利用するキャッシュコントローラ等として有用である。
【符号の説明】
【００９２】
１００  プロセッサ
１０２、１０３  マスタ
１０４  メモリ
１０５、１０６  バス
１１０、２１０、３１０、４１０  キャッシュコントローラ
１１１  タグメモリ
１１３  ＶＡＬＩＤフラグ
１１４  ＤＩＲＴＹフラグ
１１５  アドレス
１１６  データメモリ
１２０  無効化判定回路
１２１、２２１、３２１、４２１  無効化範囲設定部
１２２  タグメモリ改変部
１２３  アクセス数計測部
１２４  サイクル数計測部
１３０、１３１、１３２  データ
１４０  開始アドレス設定部
１４１  終了アドレス設定部
１４２  ＶＡＬＩＤフラグ書換設定部
１４３  ＤＩＲＴＹフラグ書換設定部
１４４  マスタ設定部
１４５  アクセス種別設定部
１４６  アクセス数設定部
１４７  サイクル数設定部
【図１】
2011248515.tif 000003
【図２】
2011248515.tif 000004
【図３】
2011248515.tif 000005
【図４】
2011248515.tif 000006
【図５】
2011248515.tif 000007
【図６】
2011248515.tif 000008
【図７】
2011248515.tif 000009
【図８】
2011248515.tif 000010
【図９】
2011248515.tif 000011
【図１０】
2011248515.tif 000012
【図１１】
2011248515.tif 000013
【図１２】
2011248515.tif 000014
【図１３】
2011248515.tif 000015