(57)【特許請求の範囲】
【請求項１】
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスを、それぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
を備えるフラッシュ制御装置。
【請求項２】
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第２タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第２タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせる各キャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第２タグ識別子が存在する場合に、前記ライン記憶部内の該前記第２タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施する更新部を
更に備える請求項１に記載のフラッシュ制御装置。
【請求項３】
前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第３タグ識別子を算出し、前記ライン記憶部内の該前記第３タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にする無効部を
更に備える請求項１または請求項２に記載のフラッシュ制御装置。
【請求項４】
ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部を更に備え、
前記ウェイ特定部は、前記アドレス算出部が算出する前記アドレスに基づいて、前記特定のウェイを送信する
請求項１乃至請求項３のいずれかに記載のフラッシュ制御装置。
【請求項５】
前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
請求項１乃至請求項４に記載のフラッシュ制御装置。
【請求項６】
前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
請求項１乃至請求項５のいずれかに記載のフラッシュ制御装置。
【請求項７】
前記所定のフォーマットは、前記ライン情報と前記ウェイとを１つの値として表し、前記値を、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
請求項１乃至請求項６のいずれかに記載のフラッシュ制御装置。
【請求項８】
請求項１乃至請求項７のいずれかに記載のフラッシュ制御装置を有するキャッシュメモリ装置。
【請求項９】
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスをそれぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
フラッシュ制御方法。
【請求項１０】
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第２タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第２タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともにフラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第２タグ識別子が存在する場合に、前記ライン記憶部内の該前記第２タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施するステップを
更に含む請求項９に記載のフラッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速な処理を可能にするフラッシュ制御装置及びキャッシュメモリ装置等に関する。
【背景技術】
【０００２】
キャッシュメモリ装置を実現する方式としては、ダイレクトマップ方式（Ｄｉｒｅｃｔ  Ｍａｐｐｅｄ）、フルアソシアティブ方式（Ｆｕｌｌｙ  Ａｓｓｏｃｉａｔｉｖｅ）、あるいは、セットアソシアティブ方式（Ｓｅｔ  Ａｓｓｏｃｉａｔｉｖｅ）等がある。
複数のプロセッサがメインメモリ（主記憶装置）を共有しつつ、全部または一部のプロセッサがキャッシュメモリ装置をそれぞれ持つコンピュータシステムにおいては、キャッシュメモリ装置とメインメモリとの間におけるデータの一貫性（整合性、キャッシュコヒーレンシ、Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｃｙ）について留意する必要がある。
【０００３】
データの一貫性を保つためには、ハードウェアがキャッシュメモリ装置及びメインメモリにおけるデータ一貫性を維持する制御を行う手法、ソフトウェアが明示的にアクセス先アドレスやキャッシュメモリ装置の動作を制御する手法、または、ハードウェアとソフトウェアとが協調しながらキャッシュメモリ装置の動作を制御する手法等がある。上述した手法において、特に、ハードウェアが一貫性を制御する手法により、ユーザは、ハードウェアを意識することなくプログラミングすることができる。
【０００４】
例えば、図１１に示すような構成を有するベクトルプロセッサが、ベクトルストア命令を処理する場合に、スカラプロセッサにおけるキャッシュメモリ装置１０５が有するデータと、メインメモリ１０４におけるデータとは、一貫性を有する必要がある。図１１は、一般的なベクトルプロセッサが有する構成を表すブロック図である。
【０００５】
ベクトルプロセッサは、ベクトルプロセッシング部１００と、スカラプロセッシング部１０２と、メモリネットワーク１０３と、メインメモリ１０４とを有する。
【０００６】
スカラプロセッシング部１０２は、命令をメインメモリ１０４から読み出す命令フェッチ、該命令を解釈するデコード、デコードした命令を実行する順序を決めるスケジューリング、及び、該順序に応じて命令を実行する命令実行等の処理を行う。さらに、スカラプロセッシング部１０２は、ベクトルプロセッシング部１００に対して、メインメモリ１０４からデータを読み出すロード命令、メインメモリ１０４へデータを書き込むストア命令、及び、ベクトル演算命令等を指示する。
【０００７】
ベクトルプロセッシング部１００は、ベクトルデータを保持するベクトルレジスタと、ストア命令及びロード命令等をそれぞれ処理する演算器等とを有する。ベクトルプロセッシング部１００は、スカラプロセッシング部１０２が指示する命令に応じて、メモリネットワーク１０３を介して、メインメモリ１０４が記憶するデータを送受信する。
【０００８】
メモリネットワーク１０３は、スカラプロセッシング部１０２及びベクトルプロセッシング部１００と、メインメモリ１０４との間においてデータを転送する。
【０００９】
スカラプロセッシング部１０２は、メインメモリ１０４からデータを読み出すオーバヘッドを低減するキャッシュメモリ装置１０５を有する。
【００１０】
図１２を参照しながら、該キャッシュメモリ装置１０５について説明する。図１２は、ベクトルプロセッサにおいて一般的なキャッシュメモリ装置が有する構成を表すブロック図である。キャッシュメモリ装置１０５は、リクエスト発行制御部２００と、フラッシュ制御部２０２と、キャッシュ部２０１とを有する。
【００１１】
リクエスト発行制御部２００は、例えば、１つのデータをメインメモリ１０４からスカラプロセッシング部１０２に読み出すスカラロード命令または複数のデータをベクトルプロセッシング部１００からメインメモリ１０４に書き込むベクトルストア命令等、命令を実行する順序を決め、該順序に応じて命令を発行する。
【００１２】
キャッシュ部２０１は、アドレスアレイ２１０と、データアレイ２１１と、キャッシュヒット判定２１３と、データアライン２１４とを有する。以下の説明においては、キャッシュ部２０１は、４ウェイ（ｗａｙ）セットアソシアティブ方式により実現されるライトスルーキャッシュメモリ装置であるとする。
【００１３】
データアレイ２１１は、キャッシュライン単位にて、メインメモリ１０４が記憶するデータの複製を記憶可能である。アドレスアレイ２１０は、該データアレイ２１１が記憶するデータの複製元が存在するアドレスを記憶可能である。アドレスアレイ２１０が記憶するアドレスは、該データアレイ２１１が記憶するデータに関連付けされている。アドレスアレイ２１０は、該データアレイ２１１が記憶するデータのアドレスと、該アドレスが有効であるか否かを表すバリッド情報とを関連付けて記憶する。該アドレスが「有効」である場合に、該アドレスに関連付けされたデータアレイ２１１は、メインメモリ１０４上の該アドレスにおけるデータを記憶していることを表す。
【００１４】
キャッシュ部２０１は、リクエスト発行制御部２００が発行する命令に対して、該アドレスアレイ２１０を参照することにより、データアレイ２１１が、該命令がアクセスするアドレスにおけるデータを、記憶しているか否かを判定する。
【００１５】
スカラロード命令を実行する状況において、データアレイ２１１が、該命令がアクセスするアドレスにおけるデータを、記憶している場合に、キャッシュ部２０１は、データアレイ２１１より該データを読み出し、読み出したデータをリードデータとして出力する。データアレイ２１１が、該命令がアクセスするアドレスにおけるデータを、記憶していない場合には、キャッシュ部２０１は、メインメモリ１０４からデータアレイ２１１へデータを読み出すリード処理を行う。
【００１６】
スカラストア命令を実行する状況において、データアレイ２１１が、該命令がアクセスするアドレスにおけるデータを記憶している場合に、キャッシュ部２０１は、データアレイ２１１に該データを書き込む。
【００１７】
フラッシュ制御部２０２は、アドレス計算部２２０と、フラッシュアドレスアレイ２２２を有するアドレス一致比較部２２１と、フラッシュ指示信号生成部２２３とを有する。
【００１８】
フラッシュアドレスアレイ２２２は、アドレスアレイ２１０が記憶するアドレスデータの複製を記憶する。
【００１９】
アドレス計算部２２０は、リクエスト発行制御部２００が送信するベクトルストア命令に応じて、データをストアするアドレスを算出し、該算出したアドレスをアドレス一致比較部２２１に送信する。
【００２０】
次に、アドレス一致比較部２２１は、該アドレスを受信し、受信したアドレスと、フラッシュアドレスアレイ２２２が記憶するアドレスとを比較する。
【００２１】
アドレス一致比較部２２１が該受信したアドレスと、フラッシュアドレスアレイ２２２が記憶するアドレスとが一致する場合に、フラッシュ指示信号生成部２２３は、該受信したアドレスに関連付けされたキャッシュラインを無効にする（フラッシュする）信号（以降、「フラッシュ指示信号２０３」と表す）を、キャッシュ部２０１に送る。キャッシュ部２０１は、該フラッシュ指示信号２０３を受信する処理に応じて、状態２１２に「無効」を表すバリッド情報を書き込むことにより、該キャッシュラインを無効にする。
【００２２】
一方、キャッシュ部２０１は、データアレイ２１１に新たなキャッシュラインを記憶させる場合、及び、あるキャッシュラインをフラッシュする場合に、変更するキャッシュラインに関する情報をフラッシュ制御部２０２に送信する。
【００２３】
フラッシュ指示信号生成部２２３が、メインメモリへデータを書き込むベクトルストア命令に応じて、キャッシュ部２０１にフラッシュ指示信号２０３を送ることにより、データの一貫性は保たれる。
【００２４】
特許文献１乃至特許文献３は、キャッシュメモリ装置１０５におけるデータと、メインメモリ１０４におけるデータとの一貫性を制御する技術を開示する。
【００２５】
特許文献１は、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおいて、データの一貫性を維持する処理に起因する性能低下を低減するキャッシュメモリ装置等を開示する。
【００２６】
特許文献１に開示されたキャッシュメモリ装置は、フラッシュ処理を実施するため、アドレスアレイの複製であるフラッシュアドレスアレイを有し、該フラッシュアドレスアレイが記憶するアドレスとベクトルストア命令において参照されるアドレスとが一致するか否かを比較し、これらのアドレスが一致する場合に、フラッシュを指示する信号を送信する。
【００２７】
特許文献２は、フラッシュアドレスアレイが有効であるか否かを表すバリッド情報を、高速に処理するキャッシュメモリ装置を開示する。
【００２８】
高速に処理するために、特許文献２に開示されたキャッシュメモリ装置は、上記バリッド情報を記憶するとともに、１マシンサイクルにおいて読み出し及び書き込みを実施可能な記憶手段を有する。
【００２９】
特許文献３は、アドレスアレイを構成するために必要なハードウェア量を削減できるキャッシュメモリ制御方式を開示する。
【００３０】
特許文献３に開示されたキャッシュメモリ制御方式では、複数のキャッシュラインをまとめたブロック単位で、フラッシュ処理が行なわれる。すなわち、メインメモリが記憶するデータの更新処理に応答して、該更新処理により更新されたメインメモリのデータの複製を有するキャッシュラインを含むブロックにおける全てのキャッシュラインがフラッシュされる。
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】特許第３７５７７６８号公報
【特許文献２】特開平０４−１８１３４３号公報
【特許文献３】特開平０５−０６６９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３２】
しかしながら、特許文献１および特許文献２に開示されたキャッシュメモリ装置において、高速な処理を実現するためには、アドレスアレイを比較する処理の並列度を上げる必要があり、そのため、フラッシュアドレスアレイ、または、リードポートを増やす必要がある。その結果、並列度を増やすにつれて、キャッシュメモリ装置の回路規模は増大するという問題が特許文献１および２記載の技術にはある。
【００３３】
また、特許文献３が開示するキャッシュメモリ装置は、複数のアドレスアレイをまとめたブロック単位で処理を行うため、複数のキャッシュラインを一度にフラッシュすることができる。しかしながら、該キャッシュメモリ装置は、セットアソシアティブ方式において必須のウェイを制御することができないため、セットアソシアティブ方式に適用できないという問題点がある。
【００３４】
本発明の目的は、セットアソシアティブ方式キャッシュメモリ装置を効率よく制御するフラッシュ制御装置等を提供することである。
【課題を解決するための手段】
【００３５】
前述の目的を達成するために、本発明に係るフラッシュ制御装置は、以下の構成を備えることを特徴とする。
【００３６】
即ち、本発明に係るフラッシュ制御装置は、
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスを、それぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
を備えることを特徴とする。
【００３７】
また、本発明の他の見地として、本発明に係るフラッシュ制御方法は、
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスをそれぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
ことを特徴とする。
【発明の効果】
【００３８】
本発明に係るフラッシュ制御装置等によれば、セットアソシアティブ方式キャッシュメモリ装置を効率よく制御することできる。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。
【図３】タグ及びキャッシュラインの一例を概念的に表す図である。
【図４】第１の実施形態に係るタグ記憶部及びライン記憶部が記憶可能なデータの一例を概念的に表す図である。
【図５】本発明の第２の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。
【図６】本発明の第２の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。
【図７】本発明の第３の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。
【図８】本発明の第３の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。
【図９】本発明の第４の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。
【図１０】本発明の第４の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。
【図１１】一般的なベクトルプロセッサが有する構成を表すブロック図である。
【図１２】ベクトルプロセッサにおいて一般的なキャッシュメモリ装置が有する構成を表すブロック図である。
【発明を実施するための形態】
【００４０】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００４１】
＜第１の実施形態＞
本発明の第１の実施形態に係るフラッシュ制御装置１１が有する構成と、フラッシュ制御装置１１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るフラッシュ制御装置１１が有する構成を示すブロック図である。図２は、本発明の第１の実施形態に係るフラッシュ制御装置１１における処理の流れを示すフローチャートである。
【００４２】
第１の実施形態に係るフラッシュ制御装置１１は、指示部１３と、タグ記憶部１４と、ライン記憶部１５とを有する。
【００４３】
タグ記憶部１４は、複数のキャッシュラインに関連付けされたタグを識別するタグ識別子と、該タグ識別子が有効であるか否かを表すタグ情報とを関連付けて記憶することができる。
【００４４】
ライン記憶部１５は、データアレイ（不図示、例えば、図１２）内にキャッシュラインが有効であるか否かを表すライン情報と、該ライン情報が有効である場合に、データアレイ内の領域を指し示すウェイに関する情報とを関連付けて記憶することができる。ライン記憶部１５は、タグに関連付けされた複数のキャッシュラインに関する情報を、該タグを表すタグ識別子を記憶するタグ記憶部１４における領域に関連付けて記憶する。
【００４５】
ライン記憶部１５は、タグに関連付けされたキャッシュラインの状態を表す情報を、所定のフォーマットに従い記憶する。例えば、所定のフォーマットは、キャッシュラインを識別するアドレスが小さい順に並べるフォーマット、アドレスが大きい順に並べるフォーマット、あるいはライン情報とウェイを合わせて符号化する形態で保持するフォーマット等である。
【００４６】
また、符号化する形態の一例として、３ウェイのセットアソシアティブ方式を採用するキャッシュメモリ装置に対して、２ビットを用いてライン情報とウェイとを１つの数として表現する形態がある。
【００４７】
２ビットを用いてウェイを指定することにより、４つのウェイを指定することが可能である。一方、上述した例におけるキャッシュメモリ装置は、３つのウェイしか有していない。２ビットにて表現された値が、該キャッシュメモリ装置に存在しないウェイを指し示す場合に、該値が、「ライン情報が無効である状態」を表すとする。
【００４８】
例えば、符号化後の値が２ｂ１１（「２ｂ」は、ビットにて表現する場合に２ビットであり、かつ、２進表記に従い表記されていることを表す）である場合に、ライン情報が「無効」であることを表現し、それ以外の値の場合に、ライン情報が「有効」かつ符号化後の２ビットの値がウェイを表現することとする形態である。
【００４９】
３ウェイを有するキャッシュメモリ装置及び２ビットを有するライン情報という例を用いて説明したが、所定のフォーマットは、上述した例に限定されない。
【００５０】
ここで、エントリは、タグ記憶部１４における領域と、ライン記憶部１５における領域とが関連付けされた領域を表すとする。すなわち、「ライン記憶部１５における特定タグのエントリ」は、タグ記憶部１４においてタグ識別子が該特定タグである領域に関連付けされたライン記憶部１５における領域を表す。
【００５１】
例えば、図１の例において、タグ記憶部１４は、タグ識別子が１である第１タグと、第１タグが有効であることを表すタグ情報とを関連付けて記憶することができる（タグ記憶部１４における２行目）。さらに、ライン記憶部１５は、該第１タグに関連付けされた複数のキャッシュラインについて、それぞれのキャッシュラインに関するライン情報とウェイとを関連付けて記憶することができる（ライン情報における２行目）。この場合、エントリは、タグ記憶部１４における２行目と、ライン記憶部１５における２行目を表す。
【００５２】
すなわち、図１の例において、例えば、タグ記憶部１４におけるＮ行目（Ｎは、正整数）の記憶領域は、ライン記憶部１５におけるＮ行目の記憶領域に関連付けされている。この場合、Ｎ番目のエントリは、タグ記憶部１４におけるＮ行目と、ライン記憶部１５におけるＮ行目とを表す。簡易的に説明するため、本実施形態の説明においては、上述したように関連付けされていることを仮定する。しかしながら、本実施形態は、上述した例に限定されない。
【００５３】
また、簡潔に説明をするため、以降の説明においては、以下の例を用いて本実施形態を説明する。
【００５４】
メインメモリにおけるアドレスは、１バイト（ｂｙｔｅ）単位であり、４８ビット（ｂｉｔ）にて表記される。
【００５５】
各キャッシュラインの大きさは、２５６バイトである。すなわち、各キャッシュラインは、メインメモリにおいてアドレスが連続する２５６個のデータを記憶可能である。
【００５６】
キャッシュラインのアドレスは、メインメモリにおけるアドレスを表す４８ビットのうち、上位４０ビットによって識別され（４０＝４８ビット−８ビット（キャッシュラインにおける２５６個のデータに相当））、アドレスの下位８ビットを０とした４８ビットにて表記される。
【００５７】
タグ識別子は、キャッシュラインのアドレスを表す４８ビットのうち、上位３２ビットである。すなわち、各タグは、共通のタグ識別子を有する２５６個のキャッシュラインに関連付けされる。
【００５８】
キャッシュメモリ装置は、４ウェイセットアソシアティブ方式を採用する。
【００５９】
以上のような例を用いて本実施形態を説明するが、本実施形態は、上述した例に限定されない。本発明の各実施形態においても同様である。
【００６０】
図３が表す例を参照しながら、タグ及びキャッシュラインについて説明を行う。図３は、タグ及びキャッシュラインの一例を概念的に表す図である。例えば、「アドレス４８ｈ０００１００００００００」（「４８ｈ」は、ビットにて表現する場合に４８ビットであり、かつ、１６進表記に従い表記されていることを表す）のキャッシュラインは、メインメモリにおけるアドレスが「４８ｈ０００１００００００００」乃至「４８ｈ０００１００００００ＦＦ」におけるデータに関連付けされている。
【００６１】
さらに、「タグ３２ｈ０００１００００」（「３２ｈ」は、ビットにて表現する場合に３２ビットであり、かつ、１６進表記に従い表記されていることを表す）は、「アドレス４８ｈ０００１００００００００」乃至「アドレス４８ｈ０００１００００ＦＦ００」のキャッシュラインに関連付けされている。例えば、ライン記憶部１５は、「タグ３２ｈ０００１００００」のエントリに、「アドレス４８ｈ０００１００００００００」乃至「アドレス４８ｈ０００１００００ＦＦ００」における、それぞれのキャッシュラインに関するライン情報とウェイとを、所定のフォーマットに従い、関連付けて記憶する。
【００６２】
さらに、図４を参照しながら、ライン情報、ウェイ、及び、タグ情報等について詳述する。図４は、第１の実施形態に係るタグ記憶部１４及びライン記憶部１５が記憶可能なデータの一例を概念的に表す図である。
【００６３】
例えば、図４の例において、タグ記憶部１４は、「タグ３２ｈ０００１００００」と、該タグが有効であることを表す「タグ情報１」とを関連付けて記憶する。ライン記憶部１５は、「タグ３２ｈ０００１００００」のエントリに、「アドレス４８ｈ０００１００００００００」乃至「アドレス４８ｈ０００１００００ＦＦ００」のキャッシュラインに関するライン情報とウェイとを、所定のフォーマットに従い、関連付けて記憶する。例えば、所定のフォーマットがキャッシュラインのアドレスが小さい順に並べるフォーマットである場合、ライン記憶部１５は、「アドレス４８ｈ０００１０００００Ｎ００」（Ｎは、１桁の１６進数）のキャッシュラインに関連付けされたウェイとライン情報とを、左からＮ番目に相当する領域に記憶する。
【００６４】
図４の例において、「アドレス４８ｈ０００１００００００００」のキャッシュラインは「ライン情報０」に関連付けされているため、キャッシュメモリ装置は、該キャッシュラインを記憶していない。「アドレス４８ｈ０００１０００００１００」のキャッシュラインは「ライン情報１」及び「ウェイ２」に関連付けされているため、キャッシュメモリ装置は、「ウェイ２」において該キャッシュラインにおけるデータを記憶している。同様に、「アドレス４８ｈ０００１０００００２００」のキャッシュラインが「ライン情報１」及び「ウェイ０」に関連付けされているため、キャッシュメモリ装置は、「ウェイ０」において該キャッシュラインにおけるデータを記憶している。
【００６５】
次に、図１に示すキャッシュフラッシュ装置における処理の流れについて、図２を参照しながら説明を行う。まず、ウェイ特定部１２は、アドレス１６を複数受信し、受信したアドレス１６から、所定の算出方法に従い、該アドレス１６を含むキャッシュラインのアドレス、及び、該キャッシュラインに関連付けされたタグ識別子をそれぞれ算出する（ステップＳ２１）。例えば、所定の算出方法として、該アドレス１６の上位ビットからキャッシュラインのアドレス、及び、該キャッシュラインに関連付けされたタグ識別子を算出する方法等がある。
【００６６】
例えば、ウェイ特定部１２は、「アドレス４８ｈ０００１０００００００８」、「アドレス４８ｈ０００１０００００１０８」及び「アドレス４８ｈ０００１０００００２０８」を受信したとする。その場合、ウェイ特定部１２は、「アドレス４８ｈ０００１０００００００８」からキャッシュラインのアドレスである「アドレス４８ｈ０００１００００００００」と、「タグ３２ｈ０００１００００」とを算出する。
【００６７】
同様に、ウェイ特定部１２は、「アドレス４８ｈ０００１０００００１０８」からキャッシュラインのアドレスである「アドレス４８ｈ０００１０００００１００」と、「タグ３２ｈ０００１００００」とを算出する。さらに、ウェイ特定部１２は、「アドレス４８ｈ０００１０００００２０８」からキャッシュラインのアドレスである「アドレス４８ｈ０００１０００００２００」と、「タグ３２ｈ０００１００００」とを算出する。
【００６８】
上述した例において、受信したアドレスを含むキャッシュラインは、お互いに異なる。しかしながら、該キャッシュラインを含むタグは、上述したいずれのアドレスにも共通する。
【００６９】
次に、ウェイ特定部１２は、タグ記憶部１４において、算出したタグ識別子と一致するタグ識別子を探す（ステップＳ２２）。一致するタグ識別子が存在する場合（ステップＳ２２にてＹＥＳと判定）、ウェイ特定部１２は、タグ記憶部１４から該タグ識別子に関連付けされたタグ情報を読み取り、該タグ情報が有効であるか否かを判定する（ステップＳ２３）。一致するタグ識別子が存在しない場合（ステップＳ２２にてＮＯと判定）及び、該タグ情報が有効でない場合（ステップＳ２３にてＮＯと判定）、指示部１３は、「該当なし」を表す信号を送信する（ステップＳ２７）。
【００７０】
該タグ情報が有効である場合（ステップＳ２３にてＹＥＳと判定）、ウェイ特定部１２は、ライン記憶部１５における該タグのエントリから、複数のキャッシュラインに関するライン情報及びウェイを一度に読み取る（ステップＳ２４）。
【００７１】
次に、ウェイ特定部１２は、読み取ったライン情報が有効であり、かつ、読み取ったウェイが特定のウェイを表すと判定する場合に、該ウェイを指示部１３に送信する（ステップＳ２５）。
【００７２】
指示部１３は、受信したウェイにおいて、前記受信したアドレスより算出したアドレスに対応するデータアレイの領域をフラッシュするフラッシュ命令１７をキャッシュメモリ装置に指示する（ステップＳ２６）。
【００７３】
例えば、図４が示す例において、ウェイ特定部１２は、タグ記憶部１４から「タグ３２ｈ０００１００００」を探し、該タグ識別子に関連付けされた「タグ情報１」を読み取る。すなわち、ウェイ特定部１２は、「タグ３２ｈ０００１００００」が有効であると判断する。
【００７４】
次に、ウェイ特定部１２は、ライン記憶部１５から、「タグ３２ｈ０００１００００」に関連付けされた「アドレス４８ｈ０００１００００００００」乃至「アドレス４８ｈ０００１００００ＦＦ００」のキャッシュラインに関連付けされたライン情報とウェイとを、それぞれ、読み取る。
【００７５】
例えば、ウェイ特定部１２は、「アドレス４８ｈ０００１０００００１００」のキャッシュラインが「ウェイ２」において有効であること、及び、「アドレス４８ｈ０００１０００００２００」のキャッシュラインが「ウェイ０」において有効であること等を読み取り、読み取ったウェイを指示部１３に送信する。
【００７６】
次に、指示部１３は、該ウェイを受信する処理に応じて、「アドレス４８ｈ０００１０００００１００」のキャッシュラインを記憶可能なデータアレイの領域のうち「ウェイ２」をフラッシュする命令をキャッシュメモリ装置に指示する。それとともに、指示部１３は、「アドレス４８ｈ０００１０００００２００」のキャッシュラインを記憶可能なデータアレイの領域のうち「ウェイ０」をフラッシュする命令をキャッシュメモリ装置に指示する。
【００７７】
特許文献１乃至３に記載の装置は、セットアソシアティブ方式を採用するキャッシュメモリ装置を高速に制御することができない。その理由は、セットアソシアティブ方式を採用するキャッシュメモリ装置において、キャッシュラインを記憶可能なウェイが複数存在することにより、フラッシュするウェイを指定できないためである。
【００７８】
一方、本実施形態によれば、ライン記憶部１５がキャッシュラインを記憶するウェイを関連付けて記憶するため、フラッシュするキャッシュラインを記憶するウェイを特定することができる。
【００７９】
即ち、本発明における第１の実施形態に係るフラッシュ制御装置によれば、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
【００８０】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００８１】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８２】
図５と図６とを参照しながら、本発明の第２の実施形態に係るフラッシュ制御装置５１が有する構成と、フラッシュ制御装置５１が行う処理とについて説明する。図５は、本発明の第２の実施形態に係るフラッシュ制御装置５１が有する構成を示すブロック図である。図６は、本発明の第２の実施形態に係るフラッシュ制御装置５１における処理の流れを示すフローチャートである。
【００８３】
本実施形態に係るフラッシュ制御装置５１は、第１の実施形態に加え、更に、タグ記憶部１４及びライン記憶部１５におけるデータを更新する更新部５２を有する。
【００８４】
キャッシュ部（不図示、例えば、図１２）は、アドレスアレイ及びデータアレイにキャッシュラインを記憶させる処理に応じて、該キャッシュラインを記憶させるアドレス１６及びウェイを、本実施形態に係るフラッシュ制御装置５１に通知する。
【００８５】
更新部５２は、該アドレス１６及び該ウェイを受信し、受信したアドレス１６から、所定の算出方法に従い、タグ識別子を算出する（ステップＳ６１）。次に、更新部５２は、タグ記憶部１４において算出したタグ識別子に一致し、かつタグ情報が「有効」であるタグ識別子が存在するか否かを判定する（ステップＳ６２）。
【００８６】
タグ記憶部１４が有効なタグ識別子を記憶する場合に（ステップＳ６２にてＹＥＳと判定）、更新部５２は、ライン記憶部１５内の該タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させるとともに、該キャッシュラインに関連付けされたライン情報を「有効」にする（ステップＳ６６）。
【００８７】
タグ記憶部１４が有効なタグ識別子を記憶しない場合に（ステップＳ６２にてＮＯと判定）、更新部５２は、タグ記憶部１４において、タグ情報が無効であることと関連付けされたタグ識別子を探す（ステップＳ６３）。
【００８８】
タグ記憶部１４において、タグ情報が無効であることと関連付けされたタグ識別子が存在しない場合に（ステップＳ６３にてＮＯと判定）、更新部５２は、所定の選択方法に従い、タグ識別子を選び、選んだタグ識別子を有するタグに関連付けされた複数のキャッシュラインを全てフラッシュさせるフラッシュ命令１７を指示するとともに、フラッシュさせる各キャッシュラインに関連付けられたライン情報を全て「無効」にする（ステップＳ６４）。
【００８９】
例えば、所定の選択方法は、ランダムに選ぶ方法、あるいは、最も参照されていないタグ識別子を選ぶ方法等である。本実施形態は、例示した所定の選択方法に限定されない。
【００９０】
その後、更新部５２は、タグ記憶部１４において、フラッシュしたキャッシュラインに関連付けされたタグ識別子を記憶する領域に、算出したタグのタグ識別子を記憶させるとともに、該タグ識別子に関連付けされたタグ情報を「有効」にする（ステップＳ６５）。それとともに、更新部５２は、所定のフォーマットに従って、該キャッシュラインに関連付けされたウェイに受信したウェイを記憶させるとともに、該キャッシュラインに関連付けされたライン情報を「有効」にする（ステップＳ６６）。
【００９１】
タグ記憶部１４において、タグ情報が無効であることと関連付けされたタグ識別子が存在する場合（ステップＳ６３にてＹＥＳと判定）、更新部５２は、該無効なタグ情報を記憶する領域に、上述したフラッシュ処理後と同様の処理を行う（ステップＳ６５及びステップＳ６６）。
【００９２】
本発明の第２の実施形態は、本発明の第１の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
【００９３】
さらに、第２の実施形態によれば、キャッシュ部が、アドレスアレイ及びデータアレイにキャッシュラインを記憶させる処理に応じて更新を行うため、更に処理時間を短縮することができる。
【００９４】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする第３の実施形態について説明する。
【００９５】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００９６】
図７と図８とを参照しながら、本発明の第３の実施形態に係るフラッシュ制御装置７１が有する構成と、フラッシュ制御装置７１が行う処理とについて説明する。図７は、本発明の第３の実施形態に係るフラッシュ制御装置７１が有する構成を示すブロック図である。図８は、本発明の第３の実施形態に係るフラッシュ制御装置７１における処理の流れを示すフローチャートである。
【００９７】
本実施形態に係るフラッシュ制御装置７１は、第１の実施形態に加え、更に、タグ記憶部１４においてタグ情報を無効にする無効部７２を有する。
【００９８】
キャッシュ部（不図示、例えば、図１２）は、アドレスアレイ及びデータアレイからキャッシュラインをフラッシュする処理に応じて、フラッシュしたアドレス１６及びウェイを、本実施形態に係るフラッシュ制御装置７１に通知する。
【００９９】
無効部７２は、該アドレス１６及び該ウェイを受信し、受信したアドレス１６から、所定の算出方法に従い、タグ識別子を算出する（ステップＳ８１）。次に、無効部７２は、ライン記憶部１５内の該タグ識別子のエントリにおいて、該受信したアドレス１６を含むキャッシュラインに関連付けされたライン情報を「無効」にする（ステップＳ８２）。
【０１００】
本発明の第３の実施形態は、本発明の第１の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
【０１０１】
さらに、第３の実施形態によれば、キャッシュ部が、アドレスアレイ及びデータアレイにキャッシュラインをフラッシュする処理に応じて更新を行うため、更に処理時間を短縮することができる。
【０１０２】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする第４の実施形態について説明する。
【０１０３】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１０４】
図９と図１０とを参照しながら、本発明の第４の実施形態に係るフラッシュ制御装置９１が有する構成と、フラッシュ制御装置９１が行う処理とについて説明する。図９は、本発明の第４の実施形態に係るフラッシュ制御装置９１が有する構成を示すブロック図である。図１０は、本発明の第４の実施形態に係るフラッシュ制御装置９１における処理の流れを示すフローチャートである。
【０１０５】
本実施形態に係るフラッシュ制御装置９１は、第１の実施形態に加え、更に、ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部９２を有する。
【０１０６】
一般的に、ベクトルストア命令は、データを記憶させるアドレスの基点となるベースアドレス、アドレスの間隔を表すディスタンス、及び、ベクトル長に関する値を参照する。
【０１０７】
ここで、ベクトルストア命令は、「Ｂａｓｅ」、「Ｂａｓｅ＋Ｄｉｓｔ」、「Ｂａｓｅ＋Ｄｉｓｔ×２」、・・・、「Ｂａｓｅ＋Ｄｉｓｔ×（ＶＬ−１）」（ただし、Ｂａｓｅはベースアドレス、Ｄｉｓｔはディスタンス、ＶＬはベクトル長を表す）が指し示す各アドレスに、８バイト長を有するデータをストアすると仮定する。さらに、ベースアドレスが「４８ｈ０００１０００００００８」であり、ディスタンスが「４８ｈ０００００００００１００」であり、ＶＬが「３」であるベクトルストア命令を実行するとする。
【０１０８】
アドレス算出部９２は、ベクトルストア命令を受信し、その後、データを記憶させるアドレスを算出する（ステップＳ１０１）。すなわち、アドレス算出部９２は、ベースアドレス、ディスタンス、及び、ベクトル長に基づいて、上述したアドレスを算出する。
【０１０９】
例えば、アドレス算出部９２は、データをストアするアドレスとして、「４８ｈ０００１０００００００８」、「４８ｈ０００１０００００１０８」及び「４８ｈ０００１０００００２０８」を算出する。次に、アドレス算出部９２は、算出したアドレスをウェイ特定部１２に送信する。
【０１１０】
ウェイ特定部１２は、該アドレスを受信し、受信したアドレスに応じて、上述したような処理を行う（ステップＳ１０２）。
【０１１１】
第４の実施形態は、第１の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
【０１１２】
さらに、第４の実施形態によれば、アドレス算出部９２がベクトルストア命令に応じてデータを記憶させるアドレスを算出するため、フラッシュ制御装置９１は、必ずしも、フラッシュする全てのアドレスを受信する必要がなくなる。その結果、データをやり取りする時間を、さらに、短縮することができる。
【０１１３】
尚、上述した例において本実施形態について説明したが、本実施形態は上述した例に限定されない。
【０１１４】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
（付記１）
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスを、それぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
を備えるフラッシュ制御装置。
【０１１５】
（付記２）
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第２タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第２タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第２タグ識別子が存在する場合に、前記ライン記憶部内の該前記第２タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施する更新部を
更に備える付記１に記載のフラッシュ制御装置。
【０１１６】
（付記３）
前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第３タグ識別子を算出し、前記ライン記憶部内の該前記第３タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にする無効部を
更に備える付記１または付記２に記載のフラッシュ制御装置。
【０１１７】
（付記４）
ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部を更に備え、
前記ウェイ特定部は、前記アドレス算出部が算出する前記アドレスに基づいて、前記特定のウェイを送信する
付記１乃至付記３のいずれかに記載のフラッシュ制御装置。
【０１１８】
（付記５）
前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
付記１乃至付記４に記載のフラッシュ制御装置。
【０１１９】
（付記６）
前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記１乃至付記５のいずれかに記載のフラッシュ制御装置。
【０１２０】
（付記７）
前記所定のフォーマットは、前記ライン情報と前記ウェイとを１つの値として表し、前記値を、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記１乃至付記６のいずれかに記載のフラッシュ制御装置。
【０１２１】
（付記８）
付記１乃至付記７のいずれかに記載のフラッシュ制御装置を有するキャッシュメモリ装置。
【０１２２】
（付記９）
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第１キャッシュラインが有効であるか否かを表すライン情報と、前記第１キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
１つ以上のフラッシュするアドレスから、所定の算出方法に従い、第１タグ識別子及び前記キャッシュラインを識別する第１アドレスをそれぞれ算出し、前記タグ記憶部において、前記第１タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第２キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第２キャッシュラインのうち、前記第１アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
フラッシュ制御方法。
【０１２３】
（付記１０）
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第２タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第２タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第２タグ識別子が存在する場合に、前記ライン記憶部内の該前記第２タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施するステップを
更に含む付記９に記載のフラッシュ制御方法。
【０１２４】
（付記１１）
前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第３タグ識別子を算出し、前記ライン記憶部内の該前記第３タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にするステップを
更に含む付記９または付記１０に記載のフラッシュ制御方法。
【０１２５】
（付記１２）
ベクトルストア命令に応じてデータを記憶させるアドレスを算出するステップを更に含み、
前記アドレスに基づいて、前記特定のウェイを送信する
付記９乃至付記１２のいずれかに記載のフラッシュ制御方法。
【０１２６】
（付記１３）
前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
付記９乃至付記１２に記載のフラッシュ制御方法。
【０１２７】
（付記１４）
前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記９乃至付記１３のいずれかに記載のフラッシュ制御方法。
【０１２８】
（付記１５）
前記所定のフォーマットは、前記ライン情報と前記ウェイとを１つの値として表し、前記値を、前記キャッシュライン識別するアドレスの値が小さい順に並べるフォーマットである
付記９乃至付記１４のいずれかに記載のフラッシュ制御方法。
【符号の説明】
【０１２９】
１１    フラッシュ制御装置
１２    ウェイ特定部
１３    指示部
１４    タグ記憶部
１５    ライン記憶部
１６    アドレス
１７    フラッシュ命令
５１    フラッシュ制御装置
５２    更新部
７１    フラッシュ制御装置
７２    無効部
９１    フラッシュ制御装置
９２    アドレス算出部
１００    ベクトルプロセッシング部
１０２    スカラプロセッシング部
１０３    メモリネットワーク
１０４    メインメモリ
１０５    キャッシュメモリ装置
２００    リクエスト発行制御部
２０１    キャッシュ部
２０２    フラッシュ制御部
２０３    フラッシュ指示信号
２１０    アドレスアレイ
２１１    データアレイ
２１２    状態
２１３    キャッシュヒット判定
２１４    データアライン
２２０    アドレス計算部
２２１    アドレス一致比較部
２２２    フラッシュアドレスアレイ
２２３    フラッシュ指示信号生成部
【要約】
【課題】セットアソシアティブ方式キャッシュメモリ装置を効率よく制御することできるフラッシュ制御装置等を提供する。
【解決手段】フラッシュ制御装置１１は、複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部１４と、ライン記憶部１５と、ウェイ特定部１２と、フラッシュするキャッシュラインを記憶可能なウェイのうち、ウェイ特定部１２が選んだウェイをフラッシュする指示をする指示部１３とを備える。
【選択図】  図１【図１】
0005445701.tif 000002
【図２】
0005445701.tif 000003
【図３】
0005445701.tif 000004
【図４】
0005445701.tif 000005
【図５】
0005445701.tif 000006
【図６】
0005445701.tif 000007
【図７】
0005445701.tif 000008
【図８】
0005445701.tif 000009
【図９】
0005445701.tif 000010
【図１０】
0005445701.tif 000011
【図１１】
0005445701.tif 000012
【図１２】
0005445701.tif 000013