(57)【要約】  【課題】  各ラインの有効性を保持するバリッドビットを有するキャッシュメモリのインバリデートを行う際には、ライン毎に順次バリッドビットをクリアする必要がある。従来のキャッシュメモリでは、このインバリデートを実施している間はアクセスを受け付けることができないため、インバリデート処理時間だけＣＰＵをストールさせる必要があった。  【解決手段】  インバリデート直後のアクセスは必ずキャッシュミスするため、インバリデート処理中に後続のアクセスをキャッシュミスと判定させ、外部バスアクセスを起動し、インバリデート完了を確認してから、外部バスアクセスにより読み出したデータをキャッシュメモリに格納することのできる制御回路を備え、インバリデートの後続アクセスの外部バスアクセスをインバリデート実行中に処理することができる構成とした。  【選択図】  図１
2005044142.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリの各ラインの有効性を示すバリッドビットを有するキャッシュメモリ装置において、
外部からのインバリデート要求信号に従って、該要求信号に対応する前記バリッドビットをインバリデートするインバリデート制御回路と、
キャッシュミス時に外部バスアクセスを起動する外部バスアクセス制御回路と、を備え、
前記インバリデート制御回路がインバリデート実行中である間に、前記外部バスアクセス制御回路は、任意の外部バスアクセスを起動する、
ことを特徴とするキャッシュメモリ装置。
【請求項２】
請求項１に記載のキャッシュメモリ装置において、
前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、前記外部バスアクセス制御回路は、該アクセス要求をキャッシュミスと判断し、対応する外部バスアクセスを起動する、
ことを特徴とするキャッシュメモリ装置。
【請求項３】
請求項１に記載のキャッシュメモリ装置において、
前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、該インバリデート制御回路は、キャッシュアクセスを不可能にするインバリデートイネーブル信号を出力する、
ことを特徴とするキャッシュメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バリッドビットを有するキャッシュメモリ装置に関するものである。
【背景技術】
【０００２】
キャッシュメモリはメインメモリへのアクセスを高速化するために使用される階層化メモリ技術である。キャッシュメモリにはメインメモリのコピーが置かれ、処理装置はメインメモリをアクセスする代わりに、このキャッシュメモリをアクセスすることによって高速化される。
【０００３】
さらに、通常キャッシュメモリは、バリッドビットを各ラインに有し、キャッシュのラインに有効なデータが入っているか否かを判別する。このようなキャッシュメモリをインバリデートする技術として、例えば、メインメモリの更新をキャッシュメモリに反映させる技術として、各ラインのタグメモリのアドレスを順次読み出して、インバリデートすべきアドレスの範囲に含まれているか否かを判断し、その結果によりインバリデートすべきと判断されたラインをインバリデートする（例えば、特許文献１参照。）。この従来技術では、キャッシュメモリの各ラインをインバリデートすべき範囲にあるかどうかを順次判断することによって、ラインの数に相応する時間でキャッシュメモリのインバリデートを行う。
【０００４】
この従来のインバリデート動作の例を示すタイミングチャートを図３に示す。図３において、２００はインバリデート要求信号、２０１はキャッシュアクセス信号、１０２はインバリデート時のアドレスとなるカウンタである。イベントタイミング６００でインバリデート要求信号２００が発行されると、カウンタ１０２をクロックサイクル毎に順次カウントアップし、インバリデート時のキャッシュアクセスのアドレスとして順次バリッドビットをインバリデートしていく。イベントタイミング６０１でカウント値がインバリデートすべきラインの合計数（ｎ個）に達するとインバリデートを完了とし、キャッシュアクセス信号２０１を見て、通常のキャッシュアクセスを開始する。
【特許文献１】特開平８−３３５１８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のインバリデートの従来技術では、各ラインに対してキャッシュのインバリデートを順次行うため、後続のキャッシュアクセス要求は遅延され、最長でキャッシュメモリのライン数に相当する時間だけＣＰＵをストールさせる必要があるという問題があった。
【０００６】
本発明の目的は、キャッシュメモリをインバリデートする場合に、インバリデート処理をしている間に後続のアクセスを受け付け、高性能化を図ったキャッシュメモリ装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の請求項１に記載のキャッシュメモリ装置は、キャッシュメモリの各ラインの有効性を示すバリッドビットを有するキャッシュメモリ装置において、外部からのインバリデート要求信号に従って、該要求信号に対応する前記バリッドビットをインバリデートするインバリデート制御回路と、キャッシュミス時に外部バスアクセスを起動する外部バスアクセス制御回路と、を備え、前記インバリデート制御回路がインバリデート実行中である間に、前記外部バスアクセス制御回路は、任意の外部バスアクセスを起動することを特徴とするものである。
【０００８】
また、本発明の請求項２に記載のキャッシュメモリ装置は、請求項１に記載のキャッシュメモリ装置において、前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、前記外部バスアクセス制御回路は、該アクセス要求をキャッシュミスと判断し、対応する外部バスアクセスを起動することを特徴とするものである。
【０００９】
また、本発明の請求項３に記載のキャッシュメモリ装置は、請求項１に記載のキャッシュメモリ装置において、前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、該インバリデート制御回路は、キャッシュアクセスを不可能にするインバリデートイネーブル信号を出力することを特徴とするものである。
【発明の効果】
【００１０】
本発明の請求項１にかかるキャッシュメモリ装置によれば、キャッシュメモリの各ラインの有効性を示すバリッドビットを有するキャッシュメモリ装置において、外部からのインバリデート要求信号に従って、該要求信号に対応する前記バリッドビットをインバリデートするインバリデート制御回路と、キャッシュミス時に外部バスアクセスを起動する外部バスアクセス制御回路と、を備え、前記インバリデート制御回路がインバリデート実行中である間に、前記外部バスアクセス制御回路は、任意の外部バスアクセスを起動するようにしたので、インバリデート実行中に後続のキャッシュアクセス要求の外部バスアクセスを起動することにより、インバリデート実行と並行して外部バスアクセスを行うことが可能となり、装置の高性能化を図ることができる。
【００１１】
また、本発明の請求項２にかかるキャッシュメモリ装置によれば、請求項１に記載のキャッシュメモリ装置において、前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、前記外部バスアクセス制御回路は、該アクセス要求をキャッシュミスと判断し、対応する外部バスアクセスを起動するようにしたので、キャッシュメモリ装置がアクセス要求を受けた際に、外部バスアクセス制御回路がインバリデート制御回路からインバリデート実行中である情報を受け取っている場合には、そのアクセス要求をキャッシュミスと判定して外部バスアクセスを起動し、メインメモリからデータを読み出し、それらをバッファに保持しておくことにより、インバリデート完了後、即座にキャッシュにそのデータを格納することが可能になり、インバリデートアクセスの直後のキャッシュアクセスの外部バスアクセスがインバリデート実行中に処理可能となるため、装置の高性能化を図ることができる。
【００１２】
また、本発明の請求項３にかかるキャッシュメモリ装置によれば、請求項１に記載のキャッシュメモリ装置において、前記インバリデート制御回路がインバリデート実行中である間に、前記キャッシュメモリ装置がアクセス要求を受けたとき、該インバリデート制御回路は、キャッシュアクセスを不可能にするインバリデートイネーブル信号を出力するようにしたので、インバリデート実行中はキャッシュアクセスをしないことを保証することにより、装置は、インバリデート未完了ときの不正なデータを読み出すこと、また、新たに格納した有効なデータを誤ってインバリデートしてしまうことなく、正しく動作することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の各実施の形態について、図面を用いて説明する。
（実施の形態１）
まず、本発明の請求項１及び請求項２に記載された発明に対応するキャッシュメモリ装置を、実施の形態１として、図面を参照しながら説明する。
【００１４】
図１は、本発明の実施の形態１によるキャッシュメモリ装置の構成を示すブロック図である。図１において、１はキャッシュメモリであり、制御部１００と、タグメモリ１１０と、データメモリ１２０と、バリッドビット１３０とによって構成される。制御部１００は、インバリデート制御回路１０１と、外部バスアクセス制御回路１０３と、キャッシュメモリに与えるアドレスを選択するセレクタ１０５とをもつ。セレクタ１０５は、インバリデートイネーブル信号１０４により制御される。インバリデート制御回路１０１は、インバリデートの際にアドレスを与えるカウンタ１０２を含んでいる。２００はインバリデート要求信号、２０１はキャッシュアクセス信号、２０２はアドレス信号である。４はメインメモリである。３は外部バスアクセスを起動してメインメモリ４から読み出したデータを保持するバッファである。
【００１５】
図２は、図１に示したキャッシュメモリ装置における、インバリデート動作時にキャッシュアクセス要求が発行された場合の動作を説明するためのタイムチャートである。図１と同一のものには同じ符号を示してある。２０３は外部バスアクセス信号、４００は外部バスアクセスによりメインメモリ４から読み出し、バッファ３に保持されているデータ、２０４は外部バスアクセスによりメインメモリ４から読み出されたデータ４００を、キャッシュメモリ１に格納する際のデータである。５００〜５０５はイベントタイミングである。
【００１６】
次に、図１と図２に基づいて、上記のように構成されている本実施の形態１によるキャッシュメモリ装置の、インバリデート動作時にキャッシュアクセス要求が発行された場合の動作を説明する。
【００１７】
キャッシュアクセス信号２０１が発行される（イベントタイミング５０３）と、外部バスアクセス制御回路１０３は、インバリデートイネーブル信号１０４を確認する。インバリデートイネーブル信号１０４がアサートされている場合には、バリッドビット１３０をインバリデート実行中であると判断し、キャッシュアクセス２０１をキャッシュミスと判定して、入力アドレス２０２でメインメモリ４からアクセス対象のデータを読み出すために、外部バスアクセス２０３を起動する（イベントタイミング５０４）。メインメモリ４から読み出したデータ４００は、バッファ３に保持される。外部バスアクセス制御回路１０３は、インバリデートイネーブル信号１０４がネゲートされる（イベントタイミング５０１）ことにより、インバリデート動作の完了を判断すると、バッファ３に保持しているデータ４００をキャッシュ格納データ２０４としてキャッシュメモリ内にとりこみ（イベントタイミング５０５）、外部バスアクセス２０３を起動したアドレス２０２でタグメモリ１１０、データメモリ１２０、バリッドビット１３０を索引し、格納データ２０４をデータメモリに、アドレス２０２をタグメモリに格納し、バリットビットを有効にし、インバリデート実行中に要求されたキャッシュアクセス信号２０１のアクセスを完了とする。このようにして、インバリデート実行中に後続のキャッシュアクセス要求を受け付けることができる。
インバリデート終了後の動作は、一般のキャッシュメモリの動作と同様である。
【００１８】
このように、本実施の形態１によるキャッシュメモリ装置では、外部のインバリデート要求に応じて、キャッシュメモリのインバリデートを行うインバリデート制御回路１０１と、キャッシュミスのとき外部バスアクセスを起動する外部バスアクセス制御回路１０３と、通常キャッシュアクセスのときのアドレス、又はインバリデート制御回路１０１のカウンタ１０２により生成されたインバリデートの対象となるキャッシュメモリのアドレスを選択するセレクタ１０５とを備えるようにしたので、インバリデート実行中に後続のキャッシュアクセス要求を受け付けて該後続のキャッシュアクセス要求の外部バスアクセスを起動し、メインメモリからデータを読み出し、それらをバッファに保持しておくことにより、インバリデート完了後、即座にそのデータをキャッシュに格納することが可能となり、インバリデートアクセスの直後のキャッシュアクセスの外部バスアクセスがインバリデート実行中に処理することができるため、装置の高性能化を図ることができる。
なお、本発明は、バリッドビットを有する全てのキャッシュメモリ構成に対応可能である。
【００１９】
（実施の形態２）
次に、本発明の請求項３に記載された発明に対応するキャッシュメモリ装置を、実施の形態２として、図１、図２を参照しながら説明する。
【００２０】
本実施の形態２によるキャッシュメモリ装置の構成は、図１に示された前述の実施の形態１によるキャッシュメモリ装置の構成と同様なため、その説明を省略する。
【００２１】
以下、本実施の形態２によるキャッシュメモリ装置における、インバリデート動作について、図２を用いて説明する。
【００２２】
まず、ここでは、バリッドビット１３０の各ラインは１ビットであり、当該ラインが有効であれば「１」を、無効であれば「０」をそれぞれ保持しているとする。このバリッドビット１３０は、セレクタ１０５から与えられるアドレスにより索引される。
【００２３】
インバリデート要求信号２００が発行される(イベントタイミング５００)と、制御部１００のインバリデート制御回路１０１は、カウンタ１０２をリセットし、クロックサイクル毎に順次カウントアップしていくことにより、インバリデートするラインのアドレスを生成していく。また、同時にインバリデート実行中であることを示すインバリデートイネーブル信号１０４をアサートする。カウンタ１０２は、カウント値がラインの合計数（ｎ個）に達するまでカウントアップを続け、達したところでインバリデート動作を完了とする。その間、インバリデートイネーブル信号１０４はアサートされ続ける。セレクタ１０５は、インバリデートイネーブル信号１０４で制御され、通常の動作時はアドレス２０２を選択するが、インバリデートイネーブル信号がアサートされている間はカウンタ１０２の出力を選択し、そのアドレスでアクセスしたラインのバリッドビット１３０をインバリデートすることになる。
【００２４】
インバリデートイネーブル信号１０４が、インバリデートが完了するまで決してネゲートされないため、キャッシュアクセス要求は発行されたとしても、実行されないように制御される。
【００２５】
このように、本実施の形態２によるキャッシュメモリ装置では、インバリデート要求信号を受けて、インバリデート制御回路１０１はインバリデートの実行を開始させると同時に、インバリデートの実行中であることを示すインバリデートイネーブル信号１０４をアサートし出力し続けることとしたので、アサートされたインバリデートイネーブル信号１０４により制御されているセレクタ１０５が、インバリデートの実行中に、インバリデートの対象となるキャッシュメモリのラインのアドレスのみを選択することが保証され、装置はインバリデートの実行中にキャッシュアクセス要求を受けても、キャッシュアクセスを不可能に制御することができるため、インバリデート未完了ときの不正なデータを読み出すこと、また、新たに格納した有効なデータを誤ってインバリデートしてしまうことなく、正しく動作することができる。
【産業上の利用可能性】
【００２６】
本発明に係るキャッシュメモリ装置は、キャッシュメモリをインバリデートする場合に、インバリデート処理をしている間に後続のアクセスを受け付けることができるという効果を有し、バリッドビットを有するキャッシュメモリ装置の動作安定化、及び高性能化を図るのに適している。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施の形態１及び実施の形態２によるキャッシュメモリ装置の構成を示すブロック図である。
【図２】本発明の実施の形態１及び実施の形態２によるキャッシュメモリ装置における、インバリデート動作時にキャッシュアクセス要求が発行された場合の動作を説明するためのタイムチャートである。
【図３】従来のキャッシュメモリ装置における、インバリデート動作時のタイムチャートである。
【符号の説明】
【００２８】
１  キャッシュメモリ装置
３  バッファ
４  メモリ
１００  制御部
１０１  インバリデート制御回路
１０２  カウンタ
１０３  外部バスアクセス制御回路
１０４  インバリデートイネブール信号
１０５  セレクタ
１１０  タグメモリ
１２０  データメモリ
１３０  バリッドビット
２００  インバリデート要求信号
２０１  キャッシュアクセス信号
２０２  アドレス信号
２０３  外部バスアクセス信号
５００〜５０５、６００、６０１  イベントタイミング
【図１】
2005044142.tif 000003
【図２】
2005044142.tif 000004
【図３】
2005044142.tif 000005