(57)【要約】【課題】メインメモリ内のデータの最適化を行い、メインメモリの効率を高める。【解決手段】装置は、CPU３１と、データを記憶するメインメモリ４０と、前記データに対応するTAGデータ３３ａ及びデータ単位３３ｂを記憶するキャッシュメモリ３３とを有している。メモリ３３内のデータを消去する場合は、読み出し回路３２aにより、メモリ３３からデータ３３ａを読み出す。比較回路３２c及び判定回路３２dにより、データ３３aが、参照回路３２ｂに保持されたデータ単位３３bの消去可又は消去不可の処理対象を示す情報と、一致するか否かを比較し、一致しているときには、メモリ３３内のデータ単位を消去可又は消去不可と判定する。消去回路３２ｅにより、メモリ３３内のデータ単位がメモリ４０内の対応するデータ単位と差異が生じているか否かを判定し、差異が生じているときには、データ単位をメモリ４０に書き出した後に、メモリ３３内のデータ単位を消去する。【選択図】図１
2007219590.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを記憶する第１のメモリと、
前記第１のメモリのキャッシュとして使用し、前記第１のデータに対応するタグデータ及びデータ単位を記憶する第２のメモリと、
前記第２のメモリから前記タグデータを読み出す読み出し手段と、
前記データ単位の消去可又は消去不可の処理対象を示す情報を保持する保持手段と、
前記読み出し手段により読み出された前記タグデータと前記保持手段に保持された前記情報とが一致するか否かを比較し、この比較結果が一致しているときには前記第２のメモリ内の前記データ単位を消去可又は消去不可と判定する比較判定手段と、
前記第２のメモリ内の前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているときには前記データ単位を前記第１のメモリに書き出した後に、前記データ単位を消去する消去手段と、
を有することを特徴とする 情報処理装置。
【請求項２】
前記保持手段では、前記データ単位の消去対象を示すアドレスを保持し、
前記比較判定手段では、前記読み出し手段により読み出された前記タグデータ中のアドレスと前記保持手段に保持された前記アドレスとが一致するか否かを比較し、この比較結果が一致しているときには前記第２のメモリ内の前記データ単位を消去可と判定し、
前記消去手段では、前記比較判定手段の前記消去可の判定結果に基づいて前記第２のメモリ内の前記データ単位を消去する場合、前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているときには、前記第２のメモリ内の前記データ単位を前記第１のメモリに書き出した後に、前記差異が生じていないときには、前記第１のメモリへの書き出しを行わずに、前記第２のメモリ内の前記タグデータにおける有効ビットを書き込みにより消去することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記保持手段では、前記データ単位の消去不可対象を示すアドレスを保持し、
前記比較判定手段では、前記読み出し手段により読み出された前記タグデータ中のアドレスと前記保持手段に保持された前記アドレスとが不一致か否かを比較し、この比較結果が不一致のときには前記第２のメモリ内の前記データ単位を消去可と判定し、
前記消去手段では、前記比較判定手段の前記消去可の判定結果に基づいて前記第２のメモリ内の前記データ単位を消去する場合、前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているときには、前記第２のメモリ内の前記データ単位を前記第１のメモリに書き出した後に、前記差異が生じていないときには、前記第１のメモリへの書き出しを行わずに、前記第２のメモリ内の前記タグデータにおける有効ビットを書き込みにより消去することを特徴とする請求項１記載の情報処理装置。
【請求項４】
第１のデータを記憶する第１のメモリと、前記第１のメモリのキャッシュとして使用し、前記第１のデータに対応するタグデータ及びデータ単位を記憶する第２のメモリと、を有する情報処理装置のデータ消去方法であって、
前記第２のメモリから前記タグデータを読み出す第１の処理と、
前記読み出されたタグデータが、前記データ単位の消去可又は消去不可の処理対象を示す情報と、一致するか否かを比較し、一致しているときには、前記第２のメモリ内の前記データ単位を消去可又は消去不可と判定する第２の処理と、
前記第２のメモリ内の前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているか否かを判定し、差異が生じているときには、前記データ単位を前記第１のメモリに書き出した後に、前記データ単位を消去すること第３の処理と、
を有することを特徴とする 情報処理装置のデータ消去方法。
【請求項５】
前記第２の処理では、前記読み出されたタグデータ中のアドレスが、前記データ単位の消去対象を示すアドレスと、一致するか否かを比較し、一致しているときには、前記第２のメモリ内の前記データ単位を消去可と判定し、
前記第３の処理では、前記消去可の判定結果に基づいて前記第２のメモリ内の前記データ単位を消去する場合、前記第２のメモリ内の前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているか否かを判定し、差異が生じているときには、前記第２のメモリ内の前記データ単位を前記第１のメモリに書き出した後に、前記差異が生じていないときには、前記第１のメモリへの書き出しを行わずに、前記第２のメモリ内の前記タグデータにおける有効ビットを書き込みにより消去することを特徴とする請求項４記載の情報処理装置のデータ消去方法。
【請求項６】
前記第２の処理では、前記読み出されたタグデータ中のアドレスが、前記データ単位の消去不可対象を示すアドレスと、不一致か否かを比較し、不一致のときには、前記第２のメモリ内の前記データ単位を消去可と判定し、
前記第３の処理では、前記消去可の判定結果に基づいて前記第２のメモリ内の前記データ単位を消去する場合、前記第２のメモリ内の前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているか否かを判定し、差異が生じているときには、前記第２のメモリ内の前記データ単位を前記第１のメモリに書き出した後に、前記差異が生じていないときには、前記第１のメモリへの書き出しを行わずに、前記第２のメモリ内の前記タグデータにおける有効ビットを書き込みにより消去することを特徴とする請求項４記載の情報処理装置のデータ消去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを用いた情報処理装置と、そのデータ消去方法に関するものである。
【背景技術】
【０００２】
一般に、情報処理装置に搭載されるコンピュータの中央処理装置（以下「CPU」という。）の処理速度に比べて、メインメモリ（主記憶装置）に命令やデータを入／出力するアクセス時間はかなり遅く、処理する度にその都度メインメモリからアクセスしていたのでは、処理速度が遅くなる。そのため、CPUの内部あるいは外部に高速なキャッシュメモリ(cache memory)を設け、一旦このキャッシュメモリに高速にある纏まった容量分のデータを予め転送しておき、CPUからのメモリ参照を、このキャッシュメモリに対して行うことにより、情報処理装置全体の処理の高速化を図る技術が知られている。
【０００３】
特に、キャッシュメモリでは、これに対するアクセスに比べ、該キャッシュメモリに格納されたキャッシュデータを消去するための処理に長時間を要する。そこで、消去時間を短縮させる技術が、例えば、次のような文献等に記載されている。
【０００４】
【特許文献１】特開２００５−２１５８９号公報
【０００５】
この特許文献１では、デジタルカメラ、デジタル録音再生装置等の情報処理装置において、ファイルを記憶するメモリカード等の外部メモリと、前記外部メモリのキャッシュとして使用するキャッシュメモリと、前記外部メモリに記憶されているファイルから消去対象のファイルを選択する選択手段と、前記選択手段により複数の消去対象のファイルが選択された場合、該複数の消去対象のファイルについてそれぞれ、前記キャッシュメモリにおけるファイル管理情報のキャッシュデータの更新処理を行う更新手段と、前記更新手段により更新された各キャッシュデータを一括して前記外部メモリに書き出すことで前記複数の消去対象ファイルの消去処理を行う消去手段とを有する情報処理装置の技術が記載されている。このような情報処理装置では、キャッシュデータの更新、外部メモリへの書き出しの一連の動作が改善され、複数のファイルの消去に掛かる時間を短縮させることが可能になっている。
【０００６】
このような技術に関連して、キャッシュメモリ内のデータを消去する方法が種々提案されている。
【０００７】
図４（Ａ）  、（Ｂ）は、従来提案されているキャッシュメモリを搭載した情報処理装置を示す概略の構成図であり、同図（Ａ）は情報処理装置の要部を示す構成図、及び同図（Ｂ）は情報処理装置中のキャッシュメモリの概略の構成図である。
【０００８】
図４（Ａ）に示すように、情報処理装置は、情報処理装置全体を制御するCPU１１を有し、このCPU１１には、キャッシュコントローラ１２、キャッシュメモリ１３、及びラインバッファ１４を介して、ダイナミック・ランダム・アクセス・メモリ（以下「DRAM」という。）等で構成されたメインメモリ２０等が接続されている。
【０００９】
CPU１１に接続されたキャッシュコントローラ１２には、キャッシュメモリ１３が接続されている。キャッシュコントローラ１２は、CPU１１からの命令に従い、キャッシュメモリ１３に対するリード／ライト（読み／書き）のアクセスを制御するものである。キャッシュメモリ１３は、例えば、キャッシュデータを記憶するための複数のブロック（way）１３−１〜１３−ｎを有し、これらがラインバッファ１４を介してメインメモリ２０に接続されている。ラインバッファ１４は、メインメモリ２０から読み出された１ブロック単位のデータを一時保持し、この保持した１ブロック単位のデータを各ブロック１３−１〜１３−ｎに書き込むためのものである。
【００１０】
図４（Ｂ）に示すように、キャッシュコントローラ１２内には、タグ（フラグからなるもので、以下「TAG」という。）読み出し回路１２ａ等が設けられている。各ブロック１３−１〜１３−ｎ内には、複数のTAGデータ１３ａと、アクセス用のデータ（Data)からなる複数のデータ単位１３ｂが設けられている。各ブロック１３−１〜１３−ｎには、必要に応じて、複数の保護ビット１３ｃが設けられることがある。各TAGデータ１３ａは、TAGアドレス（TAG Addess)、TAGの有効ビット（以下「valid」という。）、及び差異状態ビット（以下「dirty」という。）を有している。dirtyとは、そのデータ単位１３ｂがCPU１１からのライトアクセスにより、メインメモリ２０との差異が生じていることを示す状態ビットである。このdirtyビットは、キャッシュメモリ１３内のTAG等において、キャッシュメモリ１３のデータ単位毎に設定される。
【００１１】
従来、キャッシュメモリ１３内のデータのデータ消去については、例えば、下記の４つの手法（１）〜（４）の内のいずれか１つの手法により、データの消去対象と手順を設定していた。
【００１２】
（１）  手法１
キャッシュメモリ１３内のデータ消去を内部のdirty状態によらず、全て消去する。キャッシュメモリ１３内のデータ消去に際し、TAGデータ１３ａのvalidを全てライトアクセスにより無効化(“０”ライト)する。
【００１３】
（２）  手法２
キャッシュメモリ１３内のデータ消去に際し、キャッシュメモリ１３内のTAG情報（TAGアドレス、及びvalid）とdirtyの状態を、全てのTAGデータ１３ａに対してチェックを行い、dirtyに設定されるキャッシュメモリ１３のデータ単位１３ｂは、キャッシュメモリ１３からメインメモリ２０に書き出す。キャッシュメモリ１３内のデータ消去に際し、前記のTAGデータ１３ａのチェックとメインメモリ２０への書き出しを行った後、TAGのvalidを全てライトアクセスにより無効化（“０”ライト）することで、データ消去を行う。
【００１４】
（３）  手法３
キャッシュメモリ１３内のデータ消去に際し、消去対象としたくないデータ単位１３ｂに対して保護ビット１３ｃを付加し、データ消去の際に消去対象としない。保護ビット１３ｃの設定は、キャッシュメモリ１３のラインフィル（line fill)時にアドレス等に従って任意に設定するのが一般的である。キャッシュメモリ１３内のデータ消去に際し、キャッシュメモリ１３内のTAG情報（TAGデータ、及びvalid)とdirtyと保護ビット１３ｃとの状態を、全てのTAGデータ１３aに対してチェックを行い、dirtyに設定されるキャッシュメモリ１３のデータ単位１３ｂは、キャッシュメモリ１３からメインメモリ２０に書き出すが、保護ビット１３ｃが有効となっているデータ単位１３ｂは、消去の対象としないことで、キャッシュメモリ１３内に保護ビット１３ｃに従ったデータが残る。
【００１５】
（４）  手法４
キャッシュメモリ１３内のデータ消去に際し、消去対象としたくないキャッシュメモリ１３のブロック１３−１〜１３−ｎに対して保護手段を設定し、このブロックをデータ消去の際に消去対象としない。キャッシュメモリ１３内のデータ消去に際し、保護手段が施されているブロックに対してはデータ消去を実行しないことで、保護したブロックのデータがキャッシュメモリ１３内に残る。
【００１６】
図５−１（Ａ）、（Ｂ）、図５−２（Ｃ）、（Ｄ）は、従来のキャッシュメモリのデータ消去手法（２）の処理手順を示す図である。
【００１７】
上記のデータ消去の手法（２）は、例えば、下記の（ａ）〜（ｄ）の処理手順により実行される。
【００１８】
（ａ）  データ消去前の状態は、例えば、図５−１（Ａ）に示す状態であるとする。図５−１（Ｂ)、図５−２（Ｃ）のデータ消去ステップ１、２に示すように、キャッシュメモリ１３のデータ消去に際し、TAG読み出し回路１２ａにより、全てのTAGデータ１３ａを順次読み出す。
【００１９】
（ｂ）  その読み出し値に含まれるdirtyの“１”、“０”の値に従い、読み出したTAGデータ１３ａが示すデータ単位１３ｂをメインメモリ２０に書き出す必要があるか否かを、TAG読み出し回路２０にて判断する。
【００２０】
（ｃ）  図５−２（Ｃ)に示すように、（ｂ）の結果、メインメモリ２０に書き出す必要がある場合（valid“１”、dirty“１”）、TAGデータ１３ａが示すメインメモリ２０のアドレス（TAG Addess）と、該当するデータ（Data)をデータ単位１３ｂより読み出し、メインメモリ２０にライトする。図５−１（Ｂ)に示すように、メインメモリ２０に書き出す必要が無い場合は、データ単位１３ｂからの読み出し、及びメインメモリ２０へのライト動作は行わない。
【００２１】
（ｄ）  （ｂ）及び（ｃ）をキャッシュメモリ１３内の全てのTAGデータ１３aに対して行い、dirtyの“１”、“０”のチェックとメインメモリ２０への書き出しを完了する。TAGデータ１３aに対してのvalidの“１”をライトにより消去（“０”）することで、キャッシュメモリ１３内のTAGが無効となり、キャッシュメモリ１３内には有効データ（valid“１”）が無くなる。図５−２（Ｄ）のデータ消去完了に示すように、キャッシュメモリ１３内の全TAGのvalid“１”を“０”に消去することで、キャッシュメモリ１３のデータ消去が完了する。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、従来のキャッシュメモリ１３におけるデータ消去手法（１）〜（４）では、以下のような課題があった。
【００２３】
手法（１）では、キャッシュメモリ１３内のdirtyデータをメインメモリ２０に書くことができず、CPU１１からのライトデータが消去されてしまう。
【００２４】
手法（２）では、キャッシュメモリ１３内のdirtyデータをメインメモリ２０に書くことができるが、消去したくないデータがある場合には対応できない。
【００２５】
手法（３）では、ラインフィル時に保護情報（保護ビット１３ｃ）が決定されるため、データ消去時における保護情報の状態がラインフィル時から変更される場合には対応できない。
【００２６】
手法（４）では、各ブロック１３−１〜１３−ｎ毎に保護手段が設定されるため、ラインフィルの方法と各ブロック１３−１〜１３−ｎ毎の保護手段の設定に制限が発生する他、保護したブロック内に消去可能なデータがあったとしても、これを消去できない。
【課題を解決するための手段】
【００２７】
本発明は、第１のメモリのキャッシュとして使用する第２のメモリのデータ消去機能を持つ情報処理装置において、前記第２のメモリからタグデータを読み出す読み出し手段と、前記第２のメモリに記憶されたデータ単位の消去可又は消去不可の処理対象を示す情報を保持する保持手段と、前記読み出し手段により読み出された前記タグデータと前記保持手段に保持された前記情報とが一致するか否かを比較し、この比較結果が一致しているときには前記第２のメモリ内の前記データ単位を消去可又は消去不可と判定する比較判定手段と、前記第２のメモリ内の前記データ単位が前記第１のメモリ内の対応するデータ単位と差異が生じているときには前記データ単位を前記第１のメモリに書き出した後に、前記データ単位を消去する消去手段とを有している。
【００２８】
そして、前記情報処理装置において、前記比較判定手段により、前記第２のメモリのデータ消去実行時に、前記TAG及びデータ単位を消去可と判定することにより、前記消去手段によって前記第２のメモリデータの選択消去を行うようにしている。
又は、前記比較判定手段により、前記第２のメモリのデータ消去実行時に、前記TAG及びデータ単位を消去不可と判定することにより、前記第２のメモリデータの保護を行うようにしている。
【発明の効果】
【００２９】
請求項１、２、４、５に係る第１の発明によれば、次の（１）、（２）のような効果がある。
【００３０】
（１）  保持手段にデータ消去対象アドレスを設定することで、任意の第２のメモリデータに対して消去可能と指定することができ、第２のメモリ内のデータの最適化を行い、第２のメモリの効率を高めることが可能となる。
【００３１】
（２）  例えば、保持手段のデータ設定が実行プログラム中で任意に設定可能であり、より詳細な第２のメモリのデータ消去を行うことで、第２のメモリのロック設定が実行プログラムにて任意に設定可能となる。
【００３２】
請求項１、３、４、６に係る第２の発明によれば、次の（１）〜（３）のような効果がある。
【００３３】
（１）  第１の発明とほぼ同様に、保持手段にデータ消去不可アドレスを設定することで、任意の第２のメモリデータ以外に対して消去可能と指定することができ、第２のメモリ内のデータの最適化を行い、第２のメモリの効率を高めることが可能となる。
【００３４】
（２）  第１の発明とほぼ同様に、例えば、保持手段のデータ設定が実行プログラム中で任意に設定可能であり、より詳細な第２のメモリのデータ消去を行うことで、第２のメモリのロック設定が実行プログラムにて任意に設定可能となる。
【００３５】
（３）  第１の発明にに比べ、第２のメモリ内に残したいデータ（消去不可データ）を任意に設定することが容易で、それ以外の不要データを第２のメモリ内からデータ消去することが容易となり、例えば、プログラムコードが従来に比較して削減可能となる。
【発明を実施するための最良の形態】
【００３６】
情報処理装置は、データを記憶するメインメモリと、前記データに対応するタグデータ及びデータ単位を記憶するキャッシュメモリとを有している。
【００３７】
このような情報処理装置のデータ消去方法は、キャッシュメモリからタグデータを読み出す第１の処理と、前記読み出されたタグデータが、データ単位の消去可又は消去不可の処理対象を示す情報と、一致するか否かを比較し、一致しているときには、キャッシュメモリ内のデータ単位を消去可又は消去不可と判定する第２の処理と、キャッシュメモリ内のデータ単位がメインメモリ内の対応するデータ単位と差異が生じているか否かを判定し、差異が生じているときには、データ単位をメインメモリに書き出した後に、データ単位を消去する第３の処理とを有している。
【実施例１】
【００３８】
（実施例１の構成）
図１（Ａ） 、（Ｂ）は、本発明の実施例１を示すキャッシュメモリを搭載した情報処理装置の概略の構成図であり、同図（Ａ）は情報処理装置の要部を示す構成図、及び同図（Ｂ）は情報処理装置中のキャッシュメモリの概略の構成図である。
【００３９】
図１（Ａ）に示すように、本実施例１の情報処理装置は、従来と同様に、情報処理装置全体を制御するCPU３１を有し、このCPU３１には、従来と異なるキャッシュコントローラ３２−１、従来と同様の第２のメモリ（例えば、キャッシュメモリ３３）、及び従来と同様のラインバッファ３４を介して、第１のメモリ（例えば、DRAM等で構成されたメインメモリ４０）等が接続されている。
【００４０】
CPU３１に接続されたキャッシュコントローラ３２−１には、キャッシュメモリ３３が接続されている。キャッシュコントローラ３２−１は、CPU３１からの命令に従い、キャッシュメモリ３３に対するリード／ライトのアクセスを制御するものである。キャッシュメモリ３３は、従来と同様に、例えば、キャッシュデータを記憶するための複数のブロック（way）３３−１〜３３−ｎを有し、これらがラインバッファ３４を介してメインメモリ４０に接続されている。
【００４１】
図１（Ｂ）に示すように、キャッシュメモリ３３内の各ブロック３３−１〜３３−ｎには、従来と同様に、複数のTAGデータ３３ａと、アクセス用のデータ（Data)からなる複数のデータ単位３３ｂが設けられている。各ブロック３３−１〜３３−ｎには、必要に応じて、複数の保護ビットが設けられることがある。各TAGデータ３３ａは、各データ単位３３ｂ毎に設定されるTAGアドレス（TAG Addess)、TAGのvalid（有効ビット）、及びdirty（差異状態ビット）を有している。
【００４２】
キャッシュコントローラ３２−１内には、読み出し手段（例えば、TAG読み出し回路３２ａ）と保持手段（例えば、TAG参照回路３２ｂ）とが設けられ、これらのTAG読み出し回路３２ａ及びTAG参照回路３２ｂの出力側に、比較判定手段（例えば、比較回路３２ｃ及び判定回路３２ｄ）と消去手段（例えば、書き出し消去回路３２e）が縦続接続されている。
【００４３】
TAG読み出し回路３２aは、キャッシュメモリ３３からTAGデータ３３ａを読み出す回路である。TAG参照回路３２ｂは、キャッシュメモリ３３内のデータ単位３３ｂの消去対象を示すアドレスを保持する回路であり、レジスタ等で構成されている。比較回路３２ｃは、TAG読み出し回路３２ａにより読み出されたTAGデータ３３ａ中のTAGアドレスの部分データと、TAG参照回路３２ｂに保持されたアドレスの部分データとが一致するか否かを比較する回路である。判定回路３２ｄは、比較回路３２ｃの比較結果が一致の場合は、キャッシュメモリ３３内のデータ単位３３ｂを消去可と判定し、比較結果が不一致の場合は、消去不可と判定する回路である。
【００４４】
書き出し消去回路３２ｅは、判定回路３２ｄの消去可の判定結果に基づいてキャッシュメモリ３３内のデータ単位３３ｂを消去する場合、このデータ単位３３ｂのdirtyが“１”のときには、データ単位３３ｂをメインメモリ４０に書き出した後に、valid“１”を書き込みにより“０”に消去し、dirtyが“０”のときには、メインメモリ４０への書き出しを行わずに、valid“１”を書き込みにより“０”に消去する回路である。
【００４５】
（実施例１のデータ消去方法）
図２−１、図２−２は、本発明の実施例１におけるキャッシュメモリのデータ消去方法の処理手順を示す図である。
【００４６】
本実施例１のデータ消去方法は、TAGデータ３３aを読み出し、dirtyをチェックした後、validをクリアする方法であり、例えば、下記の（ａ）〜（ｃ）の処理手順により実行される。
【００４７】
（ａ）  データ消去前の状態は、例えば、図２−１に示す状態であるとする。図２−１、図２−２のデータ消去ステップに示すように、キャッシュメモリ３３のデータ消去に際し、TAG読み出し回路３２ａにより、全てのTAGデータ３３ａを順次読み出す。
【００４８】
（ｂ）  その読み出し値に含まれるTAGデータ３３a中のdirtyの“１”、“０”の値に従い、読み出したTAGが示すデータ単位３３bをメインメモリ４０に書き出す必要があるか否かを読み出し回路３２aにて判断する。この際、比較回路３２cにより、TAG参照回路３２bで示されるアドレスの部分データと、TAGデータ３３aの読み出し値によるTAGアドレスの部分データとが、一致しているか否かをチェックする。一致している場合に、判定回路３２dにより、該当TAGデータ３３aのデータ単位３３bが消去可能と判断する。この際、TAGデータ３３aの読み出し値に含まれる消去不可を示す保護ビットがある場合でも、判定回路３２dの判定結果を優先する。
【００４９】
（ｃ）  （ｂ）の結果、メインメモリ４０に書き出す必要がある場合、書き出し消去回路３２eにより、TAGが示すメインメモリ４０のアドレスと、該当するデータをデータ単位３３bより読み出し、メインメモリ４０にライトする。メインメモリ４０に書き出す必要が無い場合は、データ単位３３bからの読み出し、及びメインメモリ４０へのライト動作は行わない。（ｂ）及び（ｃ）をキャッシュメモ３３内の全てのTAGデータ３３aに対して行い、dirtyの“１”、“０”のチェックとメインメモリ４０への書き出しを完了する。TAGデータ３３aに対してのvalidの“１”をライトにより“０”に消去するが、判定回路３２ｄにより各TAGが消去可能と判断された場合のみ、キャッシュメモリ３３内のTAGが無効化し（validが“０”）、キャッシュメモリ３３内には消去可能としたデータが無くなり、データ消去が完了する。
【００５０】
（実施例１の効果）
本実施例１によれば、次の（１）、（２）のような効果がある。
【００５１】
（１）  TAG参照回路３２ｂにデータ消去対象アドレスを設定することで、任意のキャッシュメモリデータに対して消去可能と指定することができ、キャッシュメモリ３３内のデータの最適化を行い、キャッシュメモリ３３の効率を高めることが可能となる。
【００５２】
（２）  TAG参照回路３２ｂのデータ設定が実行プログラム中で任意に設定可能であり、より詳細なキャッシュメモリ３３のデータ消去を行うことで、キャッシュロック設定が実行プログラムにて任意に設定可能となる。
【実施例２】
【００５３】
（実施例２の構成）
図３−１、図３−２は、本発明の実施例２におけるキャッシュメモリのデータ消去方法の処理手順を示す図であり、実施例１を示す図１、図２−１、図２−２中の要素と共通の要素には共通の符号が付されている。
【００５４】
本実施例２では、実施例１におけるキャッシュコントローラ３２−１中のTAG参照回路３２ｂ、比較回路３２ｃ、判定回路３２ｄ、及び書き出し消去回路３２ｅに代えて、これとは機能の異なるTAG参照回路３２ｂ−１、比較回路３２ｃ−１、判定回路３２ｄ−１、及び書き出し消去回路３２ｅ−１を設けている。
【００５５】
即ち、本実施例２のキャッシュコントローラ３２−１では、実施例１と同様の読み出し手段（例えば、TAG読み出し回路３２ａ）と、実施例１とは異なる保持手段（例えば、TAG参照回路３２ｂ−１）と、実施例１とは異なる比較判定手段（例えば、比較回路３２ｃ−１及び判定回路３２ｄ−１）と、実施例１とは異なる消去手段（例えば、書き出し消去回路３２e−１）とを有している。
【００５６】
TAG参照回路３２ｂ−１は、キャッシュメモリ３３内のデータ単位３３ｂの消去不可対象を示すアドレスを保持する回路であり、レジスタ等で構成されている。比較回路３２ｃ−１は、TAG読み出し回路３２ａにより読み出されたTAGデータ３３ａ中のTAGアドレスの部分データと、TAG参照回路３２ｂ−１に保持されたアドレスの部分データとが不一致か否かを比較する回路である。判定回路３２ｄ−１は、比較回路３２ｃ−１の比較結果が不一致の場合は、キャッシュメモリ３３内のデータ単位３３ｂを消去可と判定し、比較結果が一致の場合は、消去不可と判定する回路である。
【００５７】
書き出し消去回路３２ｅ−１は、判定回路３２ｄ−１の消去可の判定結果に基づいてキャッシュメモリ３３内のデータ単位３３ｂを消去する場合、このデータ単位３３ｂのdirtyが“１”のときには、データ単位３３ｂをメインメモリ４０に書き出した後に、validの“１”を書き込みにより“０”に消去し、dirtyが“０”のときには、メインメモリ４０への書き出しを行わずに、validの“１”を書き込みにより“０”に消去する回路である。その他の回路構成は、実施例１と同様である。
【００５８】
（実施例２のデータ消去方法）
図３−１、図３−２に示すように、本実施例２のデータ消去方法は、TAGデータ３３aを読み出し、dirtyをチェックした後、validをクリアしない方法であり、例えば、下記の（ａ）〜（ｃ）の処理手順により実行される。
【００５９】
（ａ）  データ消去前の状態は、例えば、図３−１に示す状態であるとする。図３−１、図３−２のデータ消去ステップに示すように、キャッシュメモリ３３のデータ消去に際し、実施例１と同様に、TAG読み出し回路３２ａにより、全てのTAGデータ３３ａを順次読み出す。
【００６０】
（ｂ）  その読み出し値に含まれるTAGデータ３３a中のdirtyの“１”、“０”の値に従い、読み出したTAGが示すデータ単位３３bをメインメモリ４０に書き出す必要があるか否かを、読み出し回路３２aにて判断する。この際、比較回路３２c−１により、TAG参照回路３２b−１で示されるアドレスの部分データと、TAGデータ３３aの読み出し値によるTAGアドレスの部分データとが、不一致か否かをチェックし、不一致の場合に、判定回路３２d−１により、該当TAGのデータ単位３３bが消去可と判断する。この際、TAGデータ３３aの読み出し値に含まれる消去不可を示す保護ビットがある場合でも、判定回路３２d−１の判定結果を優先する。
【００６１】
（ｃ）  （ｂ）の結果、メインメモリ４０に書き出す必要がある場合（dirtyが“１”）、TAGが示すメインメモリ４０のアドレスと、該当するデータをデータ単位３３bより読み出し、メインメモリ４０にライトする。メインメモリ４０に書き出す必要が無い場合（dirtyが“０”）は、データ単位３３bからの読み出し、及びメインメモリ４０へのライト動作は行わない。（ｂ）及び（ｃ）をキャッシュメモリ３３内の全てのTAGに対して行い、dirtyの“１”、“０”のチェックとメインメモリ４０への書き出しを完了する。TAGに対してのvalidの“１”をライトにより“０”に消去するが、判定回路３２ｄ−１により各TAGが消去可と判断された場合のみ、キャッシュメモリ３３内のTAGを無効化し（validを“０”）、キャッシュメモリ３３内には消去可能としたデータが無くなり、データ消去が完了する。
【００６２】
（実施例２の効果）
本実施例２によれば、次の（１）〜（３）のような効果がある。
【００６３】
（１）  実施例１とほぼ同様に、TAG参照回路３２ｂ−１にデータ消去不可アドレスを設定することで、任意のキャッシュメモリデータ以外に対して消去可能と指定することができ、キャッシュメモリ３３内のデータの最適化を行い、キャッシュメモリ３３の効率を高めることが可能となる。
【００６４】
（２）  実施例１とほぼ同様に、TAG参照回路３２ｂ−１のデータ設定が実行プログラム中で任意に設定可能であり、より詳細なキャッシュメモリ３３のデータ消去を行うことで、キャッシュロック設定が実行プログラムにて任意に設定可能となる。
【００６５】
（３）  実施例１に比べ、キャッシュメモリ３３内に残したいデータ（消去不可データ）を任意に設定することが容易で、それ以外の不要データをキャッシュメモリ３３内からデータ消去することが容易となり、プログラムコードが従来に比較して削減可能となる。
【００６６】
なお、本発明は、上記実施例１、２に限定されず、種々の変形や利用形態が可能である。この変形や利用形態としては、例えば、次の（Ａ）〜（Ｃ）のようなものがある。
【００６７】
（Ａ）  実施例１、２においてTAG参照回路３２ｂ，３２ｂ−１で示されるアドレス部分データを1つの例にて説明したが、アドレス部分データを複数持つことで、該当TAGのキャッシュメモリ３３の消去可もしくは不可とする対象アドレスを複数化することが可能である。又、本発明は、種々の情報処理装置に適用が可能である。
【００６８】
（Ｂ）  実施例１、２では、キャッシュメモリ３３を複数のブロック３３−１〜３３−ｎに分けたが、このようなブロック分けしないキャッシュメモリであって、ラインバッファ３４を省略したような構成であっても、実施例１、２とほぼ同様の作用効果が得られる。
【００６９】
（Ｃ）  キャッシュコントローラ３２−１、キャッシュメモリ３３、及びラインバッファ３４は、CPU３０の内部に設けても良い。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施例１を示すキャッシュメモリを搭載した情報処理装置の概略の構成図である。
【図２−１】本発明の実施例１におけるキャッシュメモリのデータ消去方法の処理手順を示す図である。
【図２−２】本発明の実施例１におけるキャッシュメモリのデータ消去方法の処理手順を示す図である。
【図３−１】本発明の実施例２におけるキャッシュメモリのデータ消去方法の処理手順を示す図である。
【図３−２】本発明の実施例２におけるキャッシュメモリのデータ消去方法の処理手順を示す図である。
【図４】従来のキャッシュメモリを搭載した情報処理装置を示す概略の構成図である。
【図５−１】従来のキャッシュメモリのデータ消去手法（２）の処理手順を示す図である。
【図５−２】従来のキャッシュメモリのデータ消去手法（２）の処理手順を示す図である。
【符号の説明】
【００７１】
３１      CPU
３２，３２−１      キャッシュコントローラ
３２ａ      TAG読み出し回路
３２ｂ，３２ｂ−１      TAG参照回路
３２ｃ，３２ｃ−１      比較回路
３２ｄ，３２ｄ−１      判定回路
３２ｅ，３２ｅ−１    書き出し消去回路
３３      キャッシュメモリ
３３ａ      TAGデータ
３３ｂ      データ単位
４０      メインメモリ
【図１】
2007219590.tif 000003
【図２−１】
2007219590.tif 000004
【図２−２】
2007219590.tif 000005
【図３−１】
2007219590.tif 000006
【図３−２】
2007219590.tif 000007
【図４】
2007219590.tif 000008
【図５−１】
2007219590.tif 000009
【図５−２】
2007219590.tif 000010