(57)【特許請求の範囲】
【請求項１】
キャッシュメモリにおいて、タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）と、タグメモリ検索手段と、ＭＳＨＲ検索手段と、プロセッサからデータの要求を受け前記タグ検索手段と前記ＭＳＨＲ検索手段を並行して動作させるキャッシュ制御手段を備えることを特徴とするキャッシュメモリ。
【請求項２】
前記キャッシュ制御手段は前記タグ検索手段の動作時間の一部または全部と前記ＭＳＨＲ検索手段の動作時間の一部または全部が重なるように動作させる請求項１に記載のキャッシュメモリ。
【請求項３】
前記キャッシュ制御手段は前記タグ検索手段と前記ＭＳＨＲ検索手段から検索結果を受け取り、要求された前記データに関する情報が前記タグメモリに含まれる場合、あるいは要求された前記データがＭＳＨＲに含まれる場合、要求された前記データを前記プロセッサへ送付する請求項１または２に記載のキャッシュメモリ。
【請求項４】
前記キャッシュ制御手段は前記タグ検索手段と前記ＭＳＨＲ検索手段から検索結果を受け取り、要求された前記データに関する情報が前記タグメモリに含まれずかつ要求された前記データがＭＳＨＲに含まれない場合、使用可能なＭＳＨＲがあるとき主メモリへアクセスする請求項１または２に記載のキャッシュメモリ。
【請求項５】
タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）を備えたキャッシュメモリの検索方法であって、プロセッサからデータの要求を受け、前記タグメモリの検索と前記ＭＳＨＲの検索を並行して行うことを特徴とするキャッシュメモリの検索方法。
【請求項６】
前記タグメモリの検索動作時間の一部または全部と前記ＭＳＨＲの検索動作時間の一部または全部が重なっている請求項５に記載のキャッシュメモリの検索方法。
【請求項７】
前記タグメモリおよび前記ＭＳＨＲの検索の結果、要求された前記データに関する情報が前記タグメモリに含まれる場合、あるいは要求された前記データがＭＳＨＲに含まれる場合、要求された前記データを前記プロセッサへ送付する請求項５または６に記載のキャッシュメモリの検索方法。
【請求項８】
前記タグメモリおよび前記ＭＳＨＲの検索の結果、要求された前記データに関する情報が前記タグメモリに含まれずかつ要求された前記データがＭＳＨＲに含まれない場合、使用可能なＭＳＨＲがあるとき主メモリへアクセスする請求項５または６に記載のキャッシュメモリの検索方法。
【請求項９】
請求項１から請求項４のいずれかに記載のキャッシュメモリを有する情報処理装置。
【請求項１０】
タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）を備えたキャッシュメモリを駆動させるプログラムであって、プロセッサからデータの要求を受けるステップと、前記タグメモリの検索と前記ＭＳＨＲの検索を並行して行うステップとをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラムに関する。
【背景技術】
【０００２】
プロセッサ、キャッシュメモリ、および主メモリを備える情報処理装置において、キャッシュメモリは、プロセッサがメモリアクセスリクエストを行ってからプロセッサの所望のデータが読み出されるまでの時間（アクセス時間）の短縮に効果があることが知られている。
【０００３】
キャッシュメモリは、主メモリのデータの一部であってプロセッサからアクセスされる可能性の高いデータを保持している。プロセッサがメモリアクセスリクエストを行った際に、プロセッサの所望のデータがキャッシュメモリに保持されている場合（キャッシュヒット）には、キャッシュメモリはデータをプロセッサに供給するのでアクセス時間の短縮が可能になる。
【０００４】
一方、プロセッサの所望のデータがキャッシュメモリに保持されていない場合（キャッシュミス）には、キャッシュメモリは主メモリ上のデータを読み出しデータを取得してからプロセッサへ供給する。
【０００５】
この場合（キャッシュミス）は、主メモリ上のデータを読み出すためアクセス時間が長くなり、プログラムの性能を低下させる原因となる。
【０００６】
このようなキャッシュメモリの特性から、キャッシュのヒット率を向上させることと同時に、キャッシュメモリおよび主メモリへのアクセス時間の短縮が重要となる。
【０００７】
そのうち、アクセス時間を短縮させるために、非特許文献１（Ｄａｖｉｄ  Ｋｒｏｆｔ，  “ＬＯＣＫＵＰ−ＦＲＥＥ  ＩＮＳＴＲＵＣＴＩＯＮ  ＦＥＴＣＨ／ＰＲＥＦＥＴＣＨ  ＣＡＣＨＥ  ＯＲＧＡＮＩＺＡＴＩＯＮ”，  ２５  Ｙｅａｒｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉａ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  （Ｓｅｌｅｃｔｅｄ  Ｐａｐｅｒｓ），  ＡＣＭ，  １９９８，  ｐ．１９５−２０１  ）ではノンブロッキングキャッシュの技術が開示されている。
【０００８】
一度キャッシュミスが生じるとメモリからデータを読み出し取得するまでの間キャッシュメモリが停止（ストール）してしまうブロッキングキャッシュの技術に対して、非特許文献１のノンブロッキングキャッシュの技術では、ＭＳＨＲ（Ｍｉｓｓ  ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）を有し、このＭＳＨＲにキャッシュミスを処理するための情報を保持することにより、複数のキャッシュミスのメモリアクセスリクエストを同時に処理することが可能となる。
【０００９】
このＭＳＨＲを有するキャッシュメモリでは、複数のキャッシュミスのメモリアクセスリクエストを同時に処理することでアクセス時間の短縮が可能である。
【００１０】
図面を用いて、ノンブロッキングキャッシュの技術を使ったキャッシュメモリを詳細に説明する。図２は、関連技術におけるノンブロッキングキャッシュの技術を使ったキャッシュメモリの構成例を示すブロック図である。
【００１１】
図２に示すように、キャッシュメモリ４は、タグメモリ１１と、タグ検索部４１と、タグ制御部４２と、ＭＳＨＲ１２と、ＭＳＨＲ検索部４３と、ＭＳＨＲ制御部４４とを備えている。キャッシュメモリ４は、プロセッサ１と、主メモリ２とに接続している。プロセッサ１は、キャッシュメモリ４にメモリアクセスリクエストを行う。主メモリ２は、主メモリ２上のデータをキャッシュメモリ４に供給する。
【００１２】
キャッシュメモリ４は、プロセッサ１がメモリアクセスリクエストを行うと、タグ検索部４１がタグメモリ１１内の検索を行い、検索結果をタグ制御部４２に送り、タグ制御部４２でキャッシュヒット／キャッシュミスの判定を行う。
【００１３】
キャッシュミスした場合にはＭＳＨＲ検索部４３がＭＳＨＲ１２内の検索を行い、検索結果をＭＳＨＲ制御部４４に送り、ＭＳＨＲ制御部４４でＭＳＨＲ１２の動作を決定する。
【００１４】
また、特許文献１（再特ＷＯ２０１００２４０７１号公報）を用いるとキャッシュメモリのアクセスに先立ちメモリアクセスリクエストとＭＳＨＲを対応付けておき、更に、メモリアクセスリクエストがキャッシュミスした場合に使用するＭＳＨＲの候補を決定しておく。そして、キャッシュミスした場合には候補のＭＳＨＲを使用するので、ＭＳＨＲの枯渇が原因による停止（ストール）時間を短縮することが可能である。
【００１５】
その他、キャッシュメモリは、特許文献２（特表２００８−５２５９０４号公報）、特許文献３（特開平０７−２５３９２６号公報）にも記載されている。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】Ｄａｖｉｄ  Ｋｒｏｆｔ，  “ＬＯＣＫＵＰ−ＦＲＥＥ  ＩＮＳＴＲＵＣＴＩＯＮ  ＦＥＴＣＨ／ＰＲＥＦＥＴＣＨ  ＣＡＣＨＥ  ＯＲＧＡＮＩＺＡＴＩＯＮ”，  ２５  Ｙｅａｒｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉａ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  （Ｓｅｌｅｃｔｅｄ  Ｐａｐｅｒｓ），  ＡＣＭ，  １９９８，  ｐ．１９５−２０１
【特許文献】
【００１７】
【特許文献１】再特ＷＯ２０１００２４０７１号公報
【特許文献２】特表２００８−５２５９０４号公報
【特許文献３】特開平０７−２５３９２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述のような、ノンブロッキングキャッシュの技術を使ったキャッシュメモリは、プロセッサがメモリアクセスリクエストを行うと、タグメモリ内のタグ検索を行い、キャッシュミスした場合に、続けてＭＳＨＲ内のＭＳＨＲ検索を開始していたため、アクセス時間が増加していた。
【００１９】
本発明の目的は、この課題を解決したキャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明は、キャッシュメモリにおいて、タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）と、タグメモリ検索手段と、ＭＳＨＲ検索手段と、プロセッサからデータの要求を受け前記タグ検索手段と前記ＭＳＨＲ検索手段を並行して動作させるキャッシュ制御手段を備えることを特徴とする。
【００２１】
本発明は、タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）を備えたキャッシュメモリの検索方法であって、プロセッサからデータの要求を受け、前記タグメモリの検索と前記ＭＳＨＲの検索を並行して行うことを特徴とする。
【００２２】
本発明は、タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）を備えたキャッシュメモリを駆動させるプログラムであって、プロセッサからデータの要求を受けるステップと、前記タグメモリの検索と前記ＭＳＨＲの検索を並行して行うステップとをコンピュータに実行させるプログラムであることを特徴とする。
【発明の効果】
【００２３】
本発明のキャッシュメモリは、アクセス時間を短縮することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態におけるキャッシュメモリの構成例を示すブロック図である。
【図２】関連技術におけるノンブロッキングキャッシュの技術を使ったキャッシュメモリの構成例を示すブロック図である。
【図３】本発明の第１の実施形態におけるキャッシュメモリの動作例を説明するためのフローチャートである。
【図４】関連技術におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【図５】本発明の第１の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【図６】本発明の第２の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【図７】本発明の第３の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について図面を参照して詳細に説明する。
（第１の実施形態）
図１は、本発明のキッシュメモリの構成例を示すブロック図である。
【００２６】
図１に示すように、第１の実施形態におけるキャッシュメモリ３の構成は、タグメモリ１１と、タグ検索部３１と、ＭＳＨＲ１２と、ＭＳＨＲ検索部３２と、キャッシュ制御部３３とを備えている。そして、キャッシュメモリ３は、プロセッサ１と、主メモリ２とに接続している。プロセッサ１は、キャッシュメモリ３にメモリアクセスリクエストを行う。主メモリ２は、主メモリ２上のデータをキャッシュメモリ３に供給する。メモリアクセスリクエストには、所望のデータの主メモリ２上の格納位置のアドレスが含まれている。
【００２７】
図１では、キャッシュメモリが備えるデータメモリの要素は省略している。データメモリは、プロセッサからアクセスされる可能性の高いデータを保持している。
【００２８】
タグメモリ１１には、キャッシュメモリ３に保持されているデータの内容を示すための情報（タグ）が格納されている。このタグには、キャッシュメモリ３に保持されているデータの主メモリ２上の格納位置のアドレス等が含まれている。
【００２９】
タグ検索部３１は、プロセッサ１のメモリアクセスリクエストのアドレスを基に、タグメモリ１１内の検索を行い、検索結果をキャッシュ制御部３３に送る。
【００３０】
ＭＳＨＲ１２には、キャッシュミスした時のメモリアクセスリクエストの情報が格納されている。この情報の中にはデータの主メモリ２上の格納位置のアドレス等が含まれている。
【００３１】
ＭＳＨＲ検索部３２は、プロセッサ１のメモリアクセスリクエストのアドレスを基に、ＭＳＨＲ１２内の検索を行い、検索結果をキャッシュ制御部３３に送る。
【００３２】
キャッシュ制御部３３は、タグ検索部３１およびＭＳＨＲ検索部３２の検索結果を基にアクセス動作を決定する。
【００３３】
次に、図面を用いて本実施の形態の動作を詳細に説明する。
【００３４】
図３は、本発明の第１の実施形態におけるキャッシュメモリの動作例を説明するためのフローチャートである。
【００３５】
図３に示すように、まず、プロセッサ１は、キャッシュメモリ３に主メモリのアドレスを含んだメモリアクセスリクエストを発行する（ステップＳ３０１）。
【００３６】
次に、キャッシュメモリ３は、タグ検索部３１およびＭＳＨＲ検索部３２にて検索を並行に開始する（ステップＳ３０２）。
【００３７】
次に、タグ検索部３１は、メモリアクセスのアドレスを基に、タグメモリ１１内を検索し、タグメモリ１１内に該当アドレスの情報があるか否かを含んだ検索結果をキャッシュ制御部３３に送る（ステップＳ３０３）。
【００３８】
並列して、ＭＳＨＲ検索部３２は、メモリアクセスのアドレスを基に、ＭＳＨＲ１２内を検索し、ＭＳＨＲ１２内に該当アドレスの情報があるか否かを含んだ検索結果をキャッシュ制御部３３に送る。また、この検索結果にはＭＳＨＲ１２内に空きＭＳＨＲがあるか否かも含まれている（ステップＳ３０４）。
【００３９】
キャッシュ制御部３３は受け取ったタグ検索結果、ＭＳＨＲ検索結果および空きＭＳＨＲの有無の結果によりアクセス動作を決定する（ステップＳ３０５）。
【００４０】
アクセス動作の決定方法の例として、キャッシュ制御部３３は、第一のケースとしてキャッシュヒットした、第二のケースとしてキャッシュミスかつＭＳＨＲ内にデータがある、第三のケースとしてキャッシュミスかつＭＳＨＲ内にデータがなくかつ空きＭＳＨＲがある、第四のケースとしてキャッシュミスかつＭＳＨＲ内にデータがなくかつ空きＭＳＨＲがない、のいずれかのケースであることを判断し、下記のアクセス動作を決定する。
【００４１】
第一のケースでは、キャッシュ制御部３３は、キャッシュメモリ内のデータをプロセッサ１に送出する（ステップＳ３０６）。そして、終了する。
【００４２】
第二のケースでは、ＭＳＨＲ内のデータをプロセッサ１に送出する（ステップＳ３０７）。そして、終了する。
【００４３】
第三のケースでは、ＭＳＨＲ１２は、主メモリからデータを受け取った後にＭＳＨＲ内のデータをプロセッサ１に送出する（ステップＳ３０８）。そして、終了する。
【００４４】
第四のケースでは、ＭＳＨＲが空くまで動作を停止（ストール）させる（ステップＳ３０９）。そして、ＭＳＨＲが空くと、第三のケース（ステップＳ３０８）へ行く。
【００４５】
次に、図面を用いて本実施の形態の効果を説明する。
【００４６】
図４は、関連技術におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【００４７】
図４に示すように、関連技術のキャッシュメモリは、メモリアクセスリクエストのアドレスを基に、タグ検索とタグ制御を行う。キャッシュミスしたと判断した後、ＭＳＨＲ検索とＭＳＨＲ制御を行っている。よって、アクセス時間は、タグ検索とタグ制御とＭＳＨＲ検索とＭＳＨＲ制御の動作時間の合計となる。
【００４８】
一例として、タグ検索は４サイクル、タグ制御は２サイクル、ＭＳＨＲ検索は４サイクル、ＭＳＨＲ制御は２サイクルの場合、関連技術のキャッシュメモリのアクセス時間は１２サイクルになる。
【００４９】
図５は、本発明の第１の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【００５０】
図５に示すように、本発明の第１の実施形態におけるキャッシュメモリは、メモリアクセスリクエストのアドレスを基に、タグ検索を行い、並行してＭＳＨＲ検索を行い、次にキャッシュ制御を行っている。よって、アクセス時間は、タグ検索の動作時間あるいはＭＳＨＲ検索の動作時間のどちらか一方とキャッシュ制御の動作時間の合計となる。
【００５１】
一例として、タグ検索は４サイクル、ＭＳＨＲ検索は４サイクル、キャッシュ制御は２サイクルの場合、本発明のキャッシュメモリのアクセス時間は６サイクルになる。
【００５２】
このように本発明を用いることでアクセス時間の短縮が可能となる。よって、プロセッサ、主メモリ及び本発明のキャッシュメモリを有する情報処理装置はアクセス時間の短縮が可能となる。
（第２の実施形態）
図６は、本発明の第２の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【００５３】
図６に示すように、本発明の第２の実施形態におけるキャッシュメモリは、メモリアクセスリクエストのアドレスを基に、タグ検索を行い、タグ検索に遅れてＭＳＨＲ検索を行い、次にキャッシュ制御を行っている。よって、アクセス時間は、タグ検索の動作開始からＭＳＨＲ検索の動作終了までの時間とキャッシュ制御の動作時間の合計となる。
【００５４】
第２の実施形態において、メモリアクセスリクエストのアドレスを基に、タグ検索を行い、タグ検索に遅れてＭＳＨＲ検索を行う構成にしたこと以外は第１の実施形態と同様の構成を有する。よって、第１の実施形態と同一の構成要素には同一参照数字を付記してその説明を省略する。
【００５５】
一例として、タグ検索は４サイクル、ＭＳＨＲ検索は４サイクル、キャッシュ制御は２サイクル、そしてＭＳＨＲ検索はタグ検索開始から１サイクル遅れて開始する場合、本発明のキャッシュメモリのアクセス時間は７サイクルになる。
【００５６】
このように本発明を用いることでアクセス時間の短縮が可能となる。よって、プロセッサ、主メモリ及び本発明のキャッシュメモリを有する情報処理装置はアクセス時間の短縮が可能となる。
（第３の実施形態）
図７は、本発明の第３の実施形態におけるキャッシュメモリの各動作のアクセス時間の一例を説明するブロック図である。
【００５７】
図７に示すように、本発明の第３の実施形態におけるキャッシュメモリは、メモリアクセスリクエストのアドレスを基に、ＭＳＨＲ検索を行い、ＭＳＨＲ検索に遅れてタグ検索を行い、次にキャッシュ制御を行っている。よって、アクセス時間は、ＭＳＨＲ検索の動作開始からタグ検索の動作終了までの時間とキャッシュ制御の動作時間の合計となる。
【００５８】
第３の実施形態において、メモリアクセスリクエストのアドレスを基に、ＭＳＨＲ検索を行い、ＭＳＨＲ検索に遅れてタグ検索を行う構成にしたこと以外は第１の実施形態と同様の構成を有する。よって、第１の実施形態と同一の構成要素には同一参照数字を付記してその説明を省略する。
【００５９】
一例として、タグ検索は４サイクル、ＭＳＨＲ検索は４サイクル、キャッシュ制御は２サイクル、そしてタグ検索はＭＳＨＲ検索開始から１サイクル遅れて開始する場合、本発明のキャッシュメモリのアクセス時間は７サイクルになる。
【００６０】
このように本発明を用いることでアクセス時間の短縮が可能となる。よって、プロセッサ、主メモリ及び本発明のキャッシュメモリを有する情報処理装置はアクセス時間の短縮が可能となる。
【００６１】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することが出来る。
【符号の説明】
【００６２】
１    プロセッサ
２    主メモリ
３、４    キャッシュメモリ
１１    タグメモリ
１２    ＭＳＨＲ
３１、４１    タグ検索部
３２、４３    ＭＳＨＲ検索部
３３    キャッシュ制御部
４２    タグ制御部
４４    ＭＳＨＲ制御部
【要約】
【課題】ノンブロッキングキャッシュの技術を使ったキャッシュメモリは、プロセッサがメモリアクセスリクエストを行うと、タグメモリ内のタグ検索を行い、キャッシュミスした場合に、続けてＭＳＨＲ内のＭＳＨＲ検索を開始していたため、アクセス時間が増加していた。
【解決手段】本発明は、キャッシュメモリにおいて、タグメモリと、ＭＳＨＲ（Ｍｉｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ／Ｓｔａｔｕｓ  Ｈｏｌｄｉｎｇ  Ｒｅｇｉｓｔｅｒ）と、タグメモリ検索手段と、ＭＳＨＲ検索手段と、プロセッサからデータの要求を受け前記タグ検索手段と前記ＭＳＨＲ検索手段を並行して動作させるキャッシュ制御手段を備えることを特徴とする。
【選択図】      図１【図１】
0005500274.tif 000002
【図２】
0005500274.tif 000003
【図３】
0005500274.tif 000004
【図４】
0005500274.tif 000005
【図５】
0005500274.tif 000006
【図６】
0005500274.tif 000007
【図７】
0005500274.tif 000008