(57)【要約】  【課題】  プリフェッチ処理を待つディマンドフェッチ処理の待ち時間を短縮するキャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央処理方法を提供する。  【解決手段】  キャッシュメモリの制御を行うキャッシュメモリ制御装置であって、１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求をそれぞれ受信するPF-PORT２２およびMI-PORT２１と、PF-PORT２２でプリフェッチ要求を受信した後に、MI-PORT２１でプリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、プリフェッチ要求の応答のために確保したMIB２８を、プリフェッチ要求に続くディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う処理パイプライン２７とを備えた。  【選択図】  図２
2006040090.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリの制御を行うキャッシュメモリ制御装置であって、
１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信部と、
前記要求受信部でプリフェッチ要求を受信した後に、前記要求受信部で前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理部と、
を備えてなるキャッシュメモリ制御装置。
【請求項２】
請求項１に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御装置。
【請求項３】
請求項１または請求項２に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするキャッシュメモリ制御装置。
【請求項４】
請求項３に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするキャッシュメモリ制御装置。
【請求項５】
キャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信ステップと、
前記要求受信ステップでプリフェッチ要求を受信した後に、前記要求受信ステップで前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理ステップと、
を備えてなるキャッシュメモリ制御方法。。
【請求項６】
請求項５に記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御方法。
【請求項７】
情報処理に関する制御を行う中央処理装置であって、
プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュと、
前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュと、
前記１次キャッシュのデータを用いて演算を行う演算部と、
を備えてなる中央処理装置。
【請求項８】
請求項７に記載の中央処理装置において、
前記２次キャッシュは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とする中央処理装置。
【請求項９】
付記１乃至７のいずれか一つに記載の中央処理装置と、
前記中央処理装置が用いるデータを格納する主記憶部と、
前記中央処理装置と主記憶装置の間でデータの管理を行う主記憶制御部と、
を備えてなる情報処理装置。
【請求項１０】
情報処理に関する制御を行う中央制御方法であって、
プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュステップと、
前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュステップと、
前記１次キャッシュのデータを用いて演算を行う演算ステップと、
を備えてなる中央制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１次キャッシュと２次キャッシュを備えたキャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央処理方法に関するものである。
【背景技術】
【０００２】
図６は、従来のマルチプロセッサシステムの構成の一例を示すブロック図である。従来のマルチプロセッサシステムは、メインメモリ１、SC（System Controller）２、少なくとも１つのCPU（中央処理装置：Central Processing Unit）１０３で構成される。SC２は、メインメモリ１、全てのCPU１０３と接続された主記憶制御装置である。CPU１０３の内部には、L1キャッシュ４、L2キャッシュ１０５、演算部６を備える。L1キャッシュ４はCPU１０３の１次キャッシュ、L2キャッシュ１０５はCPU１０３の２次キャッシュである。L1キャッシュ４は、命令キャッシュ用のI1キャッシュ１１と、データ（オペランド）キャッシュのD1キャッシュ１２で構成される。演算部６は、L1キャッシュ４のデータを用いて演算を行う。
【０００３】
CPUのメモリアクセスのレイテンシを隠蔽する方法として、プリフェッチが広く用いられている。これは、使われる可能性が高いと思われるメインメモリの領域をあらかじめムーブイン（メインメモリからキャッシュへデータを登録すること）しておくことにより、キャッシュミス率の低下を図るものである。
【０００４】
L2キャッシュ要求（L1キャッシュ４からL2キャッシュ１０５への要求）には、メインメモリ１からの通常の読み出しであるディマンドフェッチ要求と、投機的な読み出しであるプリフェッチ要求がある。ディマンドフェッチ要求は、L2キャッシュ１０５への登録と、要求元であるL1キャッシュ４への登録の両方を行う動作であるが、プリフェッチ要求は、L2キャッシュ１０５への登録は行うが、L1キャッシュ４への登録は行わない動作である。
【０００５】
次に、L2キャッシュ要求の種類について説明する。図７は、L2キャッシュ要求の一例を表す表である。ここで、I1キャッシュ１１のキャッシュブロックは、V（Valid）とI（Invalid）の２状態をとるI1 TC（タイプコード）で管理される。D1キャッシュ１２のキャッシュブロックは、M（Modified）、C（Clean）、I（Invalid）の３状態をとるD1 TC（タイプコード）で管理される。L2キャッシュ１０５のキャッシュブロックは、M（Modified）、O（Ownered）、E（Exclusive）、S（Shared）、I（Invalid）の５状態をとるL2 TC（タイプコード）で管理される。
【０００６】
まず、ディマンドフェッチ要求のためのL2キャッシュ要求IF-MI-SH、OP-MI-SH、OP-MI-CHについて説明する。
【０００７】
I1キャッシュ１１は、命令フェッチミスを契機に、IF-MI-SH（共有型キャッシュブロックを要求するためのL2キャッシュ要求）を発行する。
【０００８】
D1キャッシュ１２は、オペランドロードミスを契機に、OP-MI-SH（共有型キャッシュブロックを要求するためのL2キャッシュ要求）を発行する。また、D1キャッシュ１２は、オペランドストアミスを契機に、OP-MI-CH（排他型キャッシュブロックを要求するためのL2キャッシュ要求）を発行する。また、D1キャッシュ１２は、オペランドロードに関して、OP-MI-BL（キャッシュ登録を伴わないブロックロードと呼ばれるL2キャッシュ要求）を発行する。
【０００９】
また、L1キャッシュミス時のL2キャッシュヒット率の向上を図るために、上述したディマンドフェッチ要求のためのL2キャッシュ要求IF-MI-SH、OP-MI-SH、OP-MI-CHにそれぞれ対応する形で、プリフェッチ要求のためのL2キャッシュ要求IF-PF-SH、OP-PF-SH、OP-PF-EXがある。
【００１０】
プリフェッチ要求において、L1キャッシュ４は、発行した後は一切関与しない。また、L2キャッシュ１０５は、処理待ち要求が多い場合など、プリフェッチ処理が困難であるときには、プリフェッチ要求を捨ててしまっても構わないことになっている。
【００１１】
次に、L2キャッシュ１０５とSC２の間の動作について説明する。L2キャッシュ１０５は、L2キャッシュ要求についてキャッシュヒットであればデータをL1キャッシュ４へ応答する。また、キャッシュミスであればSC２に対してムーブイン要求P-Reqを発行し、その応答S-Replyとして受け取ったデータを、L1キャッシュ４へ応答するとともに、L2キャッシュ１０５にも登録する。
【００１２】
L2キャッシュ１０５からSC２へのP-ReqがP-RDSA（強い共有型）であれば、SC２からL2キャッシュ１０５へS-ReplyとしてS-RBS（共有型）が返される。また、P-ReqがP-RDS（共有型）であれば、S-ReplyとしてS-RBS（共有型）またはS-RBU（排他型）が返される。また、P-ReqがP-RDO（排他型）であれば、S-ReplyとしてS-RBU（排他型）が返される。
【００１３】
L2キャッシュ要求がOP-MI-CHである場合、応答のキャッシュブロックがcleanな（メモリに対する書き戻し義務のない）キャッシュブロックであっても、M型（Modified）で登録を行う。
【００１４】
また、L2キャッシュ要求OP-MI-BLがL2キャッシュミスとなった場合、L2キャッシュ１０５からSC２へP-RDD（他のキャッシュブロックの無効化や共有化を伴わない棄却型のリクエスト）が発行される。
【００１５】
次に、L2キャッシュ１０５の構成について説明する。図８は、従来のL2キャッシュの構成の一例を示すブロック図である。L2キャッシュ１０５は、L2キャッシュ制御部１２０とデータRAM２９で構成される。L2キャッシュ制御部１２０は、MI-PORT２１、PF-PORT２２、その他のポート２３，２４、プライオリティ部２５、処理パイプライン１２７、MIB（ムーブインバッファ）１２８で構成される。
【００１６】
L2キャッシュ１０５へのL2キャッシュ要求は、まず、L2キャッシュ要求に関連づけられたポート２１，２２，２３，２４で受け入れられる。プライオリティ部２５は、ポート２１，２２，２３，２４で待機しているL2キャッシュ要求を取り出し、処理パイプライン１２７に投入する。処理パイプライン１２７は、タグ処理部２６におけるタグの検索および更新、L2キャッシュ要求に対するL1キャッシュへの応答の発行、MIB１２８の確保などを行う。MIB１２８は、キャッシュミスしたデータをSC２から受け取るためのバッファであり、ムーブイン処理毎に確保される。
【００１７】
MIB１２８は、キャッシュミス時に確保され、タグ情報を保持し、対応するムーブイン処理の完了とともに解放される。タグ情報とは、ムーブイン要求元、ムーブイン要求アドレス、リプレース対象のライトバックアドレスなどの情報である。MIB１２８は、SC２からのムーブインデータ到着、およびムーブイン要求アドレスに対する処理の異常終了を、L1キャッシュ４に通知する手段を持つ。L1キャッシュ４への通知信号として、データ有効信号、エラー通知信号などがある。データRAM２９は、SC２からのデータを格納する。L2キャッシュヒットによりSC２から得られるデータはL1キャッシュ４に送られ、L2キャッシュミスによりSC２から得られるデータはL1キャッシュ４に送られるとともにデータRAM２９に登録される。
【００１８】
次に、通常のディマンドフェッチ処理の動作について説明する。図９は、通常のディマンドフェッチ要求に対するL2キャッシュの動作の一例を示すタイムチャートである。L1キャッシュ４から発行されたディマンドフェッチ要求は、MI-PORT２１に格納され、プライオリティ部２５で取り出されて処理パイプライン１２７に投入される。この場合、readフローでタグを検索した結果がキャッシュミスであるため、MIB１２８を確保し、SC２に対してムーブイン要求を発行する。SC２からのムーブインデータは、直ちにL1キャッシュ４へ送られるとともに、原則としてL2キャッシュ１０５へも登録される。
【００１９】
次に、通常のプリフェッチ処理の動作について説明する。図１０は、通常のプリフェッチ要求に対するL2キャッシュの動作の一例を示すタイムチャートである。L1キャッシュ４から発行されたプリフェッチ要求は、PF-PORT２２に格納され、プライオリティ部２５で取り出されて処理パイプライン１２７に投入される。この場合、タグを検索した結果がキャッシュミスであるため、MIB１２８を確保し、SC２に対してムーブイン要求を発行する。SC２からのムーブインデータは、L2キャッシュ１０５のみに登録され、処理が終了する。
【００２０】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。
【特許文献１】特開平２−１３３８４２号公報  （第４−６頁、第２図）
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上述した従来のL2キャッシュにおいては、SC２へのムーブイン要求を発行してから、SC２からの応答が到着するまでの間、同一アドレスに対するムーブイン要求を発行しないようにするために、処理パイプライン１２７に投入された要求と同一アドレスのムーブイン待ち状態のMIBがあるときには、処理パイプライン１２７に投入された要求の処理を中断させ、ポートで待機させる。
【００２２】
図１１は、プリフェッチ要求の直後にディマンドフェッチ要求が発行された場合における従来のL2キャッシュの動作の一例を示すタイムチャートである。このプリフェッチ要求とディマンドフェッチ要求は、同一キャッシュブロック上のアドレスに対して行われている。先行のプリフェッチ要求はPF-PORT２２から取り出され、処理パイプライン１２７に投入される。この場合、タグを検索した結果がキャッシュミスであるため、MIB１２８を確保しSC２へ要求を発行する。後続のディマンドフェッチ要求はMI-PORT２１から取り出されるが、要求のアドレスが処理待ち状態であるため、処理が進まずMI-PORT２１で待機することになる。先行のプリフェッチ要求に対する応答のムーブインデータが到着し、キャッシュブロックをタグに登録してMIB１２８の解放を行う。先行のプリフェッチ要求の処理が終了した後、後続のディマンドフェッチ要求がキャッシュヒットすることでディマンドフェッチ処理が行われる。
【００２３】
つまり、L1キャッシュ４からのディマンドフェッチ要求があり、SC２からムーブインデータが到着しているにもかかわらず、それがプリフェッチ要求の応答であるために、直接L1キャッシュ４にデータを渡すことができず、L2キャッシュ１０５に登録されるのみとなる。プリフェッチ要求に対するムーブイン完了後、ディマンドフェッチ要求が処理パイプラインに投入されたときに、L2キャッシュ１０５に登録されたデータをL1キャッシュ４に送出する。従って、プリフェッチ処理を待つディマンドフェッチ処理の待ち時間が発生していた。
【００２４】
本発明は上述した問題点を解決するためになされたものであり、プリフェッチ処理を待つディマンドフェッチ処理の待ち時間を短縮するキャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上述した課題を解決するため、本発明は、キャッシュメモリの制御を行うキャッシュメモリ制御装置であって、１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信部と、前記要求受信部でプリフェッチ要求を受信した後に、前記要求受信部で前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理部とを備えたものである。
【００２６】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするものである。
【００２７】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするものである。
【００２８】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするものである。
【００２９】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするものである。
【００３０】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするものである。
【００３１】
また、本発明に係るキャッシュメモリ制御装置において、前記すりかえ処理部は、前記ディマンドフェッチ要求が２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とするものである。
【００３２】
また、本発明は、キャッシュメモリの制御を行うキャッシュメモリ制御方法であって、１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信ステップと、前記要求受信ステップでプリフェッチ要求を受信した後に、前記要求受信ステップで前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理ステップとを備えたものである。
【００３３】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするものである。
【００３４】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするものである。
【００３５】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするものである。
【００３６】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするものである。
【００３７】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするものである。
【００３８】
また、本発明に係るキャッシュメモリ制御方法において、前記すりかえ処理ステップは、前記ディマンドフェッチ要求が２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とするものである。
【００３９】
また、本発明は、情報処理に関する制御を行う中央処理装置であって、プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュと、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュと、前記１次キャッシュのデータを用いて演算を行う演算部とを備えたものである。
【００４０】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするものである。
【００４１】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするものである。
【００４２】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするものである。
【００４３】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするものである。
【００４４】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするものである。
【００４５】
また、本発明に係る中央処理装置において、前記２次キャッシュは、前記ディマンドフェッチ要求が前記２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とするものである。
【００４６】
また、本発明は、情報処理を行う情報処理装置であって、上述した少なくとも１つの中央処理装置と、前記中央処理装置が用いるデータを格納する主記憶部と、前記中央処理装置と主記憶装置の間でデータの管理を行う主記憶制御部とを備えたものである。
【００４７】
また、本発明は、情報処理に関する制御を行う中央制御方法であって、情報処理に関する制御を行う中央制御方法であって、プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュステップと、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュステップと、前記１次キャッシュのデータを用いて演算を行う演算ステップとを備えたものである。
【００４８】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするものである。
【００４９】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュステップへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするものである。
【００５０】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記すりかえ判定期間中に、前記予告を通知した後、前記すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュステップへ通知することを特徴とするものである。
【００５１】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするものである。
【００５２】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするものである。
【００５３】
また、本発明に係る中央処理方法において、前記２次キャッシュステップは、前記ディマンドフェッチ要求が前記２次キャッシュステップへの登録を行う必要のない要求であっても前記すりかえ処理を行うことを特徴とするものである。
【００５４】
なお、キャッシュメモリ制御装置とは実施例におけるL2キャッシュ制御部のことであり、要求受信部とは実施例におけるMI-PORTとPF-PORTのことであり、すりかえ処理部とは実施例における処理パイプラインのことである。また、中央処理装置とは実施例におけるCPUのことであり、情報処理装置とは実施例におけるマルチプロセッサシステムのことであり、主記憶部とは実施例におけるメインメモリのことであり、主記憶制御装置とは実施例におけるSCのことである。
【発明の効果】
【００５５】
本発明によれば、プリフェッチ処理を待つディマンドフェッチ処理の待ち時間を短縮することにより、情報処理装置におけるメモリアクセスが高速化できる。
【発明を実施するための最良の形態】
【００５６】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００５７】
本発明においては、先行するプリフェッチ要求のキャッシュミスによって確保されたMIBを、後続のディマンドフェッチ要求で用いることができるようにする。この処理をMIBのすりかえ（swap）処理と呼ぶことにする。具体的には、MIBは、自身が確保される要因であるL1キャッシュからの要求の種類をタグ情報として保持しており、これをプリフェッチ要求からディマンドフェッチ要求に書き換えることで実現する。
【００５８】
図１は、本発明に係るマルチプロセッサシステムの構成の一例を示すブロック図である。図１において、図６と同一符号は図６に示された対象と同一又は相当物を示しており、ここでの説明を省略する。図１のマルチプロセッサシステムは、CPU１０３の代わりにCPU３を、L2キャッシュ１０５の代わりにL2キャッシュ５を備える。
【００５９】
図２は、本発明に係るL2キャッシュの構成の一例を示すブロック図である。図
２において、図８と同一符号は図８に示された対象と同一又は相当物を示しており、ここでの説明を省略する。図２のL2キャッシュは、L2キャッシュ制御部１２０の代わりにL2キャッシュ制御部２０を、処理パイプライン１２７の代わりに処理パイプライン２７を、MIB１２８の代わりにMIB２８を備える。
【００６０】
図３は、本発明に係るすりかえ処理が行われる場合のL2キャッシュの動作の一例を示すタイムチャートである。先行のプリフェッチ要求がPF-PORT２２から処理パイプライン２７に投入されると、キャッシュミスであるため、MIB２８を確保し、P-Reqを発行する。次に、同一アドレスに対する後続のディマンドフェッチ要求がMI-PORT２１から処理パイプライン２７に投入されると、同様にキャッシュミスとなるが、同一アドレスに対するMIB２８が確保されているため、これをディマンドフェッチ要求が確保したかのようにすりかえる処理を行う。次に、先行のプリフェッチ要求に対するSC２からの応答のデータを後続のディマンドフェッチ要求が使うことにより、L1キャッシュ４に対して直ちにデータを送ることができる。
【００６１】
このすりかえ処理は、プリフェッチ要求のキャッシュミスによって、MIB２８が確保された時に行われた処理が、後続のディマンドフェッチ要求によって引き継ぐことが可能となる要求の組み合わせの場合にのみ行うことができる。図４は、本発明に係るすりかえ処理が可能となるプリフェッチとディマンドフェッチの組み合わせの一例を示す表である。
【００６２】
ここで、プリフェッチ要求と同一アドレスに対して、ブロックロードOP-MI-BLを行う場合も、すりかえが可能となる。この場合、先行するプリフェッチ要求との整合性（キャッシュブロックのリプレースのための処理）のため、通常のブロックロードでは行わないL2キャッシュ５への登録を行う。
【００６３】
プリフェッチ要求が確保したMIB２８がSC２からの応答のキャッシュブロックデータを受信し、L2キャッシュ５への登録を開始してしまった場合、そのMIB２８はすりかえ処理の対象としない。プリフェッチ要求ではL1キャッシュ４へデータを送出しないため、すりかえ処理を行ったとしても受信したキャッシュブロックデータをL1キャッシュ４へ直ちに送出することができないためである、
ここで、図４の表にない組み合わせ、即ち、すりかえが不可能である組み合わせについて説明する。
【００６４】
まず、先行するプリフェッチ要求がIF-PF-SHまたはOP-PF-SH、後続のディマンドフェッチ要求がOP-MI-CHの場合、すりかえ処理を行うことができない。なぜなら、図７によれば、先行のプリフェッチにおいてL2キャッシュ登録はS型となる場合があるのに対して、後続のディマンドフェッチにおいてL2キャッシュ登録は常にE型となり、キャッシュの一貫性を保てないためである。
【００６５】
また、後続のディマンドフェッチがIF-MI-SHの場合、すりかえ処理を行うことができない。なぜなら、図７によれば、IF-MI-SHのキャッシュミス時に発行されるP-ReqがP-RDSAであるために、L2キャッシュ登録は常にS型となる。しかし、先行するプリフェッチ要求のキャッシュミスによって発行されたP-Reqの種類によっては、L2キャッシュ登録がE型またはM型となる場合があり、キャッシュの一貫性を保てないためである。
【００６６】
また、後続のディマンドフェッチがOP-MI-SHの場合、すりかえ処理を行うことができない。なぜなら、図７によれば、OP-MI-SHのL2キャッシュ登録はS型またはE型となる。しかし、先行のプリフェッチ要求OP-PF-EXのときの、L2キャッシュ登録はM型となり、キャッシュの一貫性を保てないためである。
【００６７】
図５は、本発明に係る処理パイプラインの構成の一例を示すブロック図である。処理パイプライン２７は、MIBアドレス比較部３１、タグ読み出し部３２，MIBタイプコード判定部３３、MIBすりかえ判定部３４，MIBすりかえ部３５，MIB確保部３６で構成される。
【００６８】
MI-PORT２１またはPF-PORT２２からの要求は、プライオリティ部２５からreadフローとして処理パイプライン２７に投入される。MIBアドレス比較部３１は、先行する要求と後続の要求の対象となるアドレスの比較を行う。
【００６９】
タグ読み出し部３２はタグ処理部２６へタグを渡し、タグ処理部２６は検索を行う。キャッシュヒットの場合、L1キャッシュ４へデータを返し（プリフェッチの場合はデータを返さない）、キャッシュミスした場合、MIB確保部３６はMIB２８を確保し、SC２へムーブイン要求の発行を行う。ここで、ディマンドフェッチ要求のためのreadフローをdemand#readと呼ぶ。
【００７０】
次に、MIB毎にについてすりかえ処理の可能性の検出を行う。MIBタイプコード判定部３３は、連続するL2キャッシュ要求が、図４に示したすりかえ可能な組み合わせであるか否かの判定を行い、すりかえ可能な組み合わせである場合をすりかえ可能性としてMIBすりかえ判定部３４へ渡す。次に、MIBすりかえ判定部３４は、MIBタイプコード判定部３３のすりかえ可能性と、処理パイプライン２７のdemand#readによって、すりかえ条件が成立したと見なし、MIBすりかえ部３５がMIB２８のタグ情報を書き換える。
【００７１】
ここで、MIB２８が保持しているタグ情報には、xreply、address、pf、opc、swappedがある。xreplyは、MIB２８がSC２からの応答を受信したことを示す。addressは、要求するムーブインのアドレスを示す。pfは、MIB２８が確保された要因がプリフェッチであることを示す。opcは、MIB２８が確保された要因となった要求の種類を示す。swappedは、MIB２８の確保された要因がプリフェッチからディマンドフェッチに変わり、すりかえ処理がされたことを示す。
【００７２】
図３において、Tbは、すりかえ処理を行うreadフローが処理パイプライン２７に投入されてから、実際にすりかえ処理が行われるまでの期間であり、すりかえ判定期間と呼ぶことにする。MIB２８に対する更新要求は、readフローが処理パイプライン２７に投入されてから４サイクル後に発行される。また、処理パイプライン２７には、２サイクル毎に処理フローが投入されるものとする。
【００７３】
訂正可能エラーの検出などにより、readフロー自体が中断されることがある。この場合、すりかえ処理は成立しないため、MIB２８のタグ情報の更新も行わない
ここで、すりかえ可能性のあるdemand#readが連続で投入された場合、２度のすりかえ可能性を検出してしまう恐れがある。これを避けるために、２サイクル前に発行された先行の処理フローが同一アドレスに対する処理で、MIB２８のタグ情報の更新を行う場合は、後続の処理フローのすりかえ処理を抑止する。
【００７４】
図３において、Tcは、CPU３がSC２からの応答を受信してから、その要求元のMIB２８が応答を受信したことを示すタグ情報xreplyがセットされるまでの時間である。Tcの区間がTbの区間と重なった場合、つまり、同じMIB２８に対してすりかえ可能性のあるdemand#readフローがさらに投入された場合において、すりかえ処理が成功すれば、到着したムーブインデータを直ちにL1キャッシュ４へ転送する。すりかえ処理が行われなければ、プリフェッチ処理となるため、L1キャッシュ４への通知は行わない。
【００７５】
これを実現するために、すりかえ可能性のあるreadフローが処理パイプライン２７に流れているときにムーブインデータが到着した場合、L1キャッシュ４にムーブインデータの到着の予告を通知し、その後すりかえ処理が行われなければ、L1キャッシュ４にキャンセル信号の発行を行う。
【００７６】
本発明のL2キャッシュ５は、SC２から到着したムーブインデータをL1キャッシュ４に通知するためのMIB２８は、データ有効信号（DOW-fr-SC）とそのキャンセル信号（DOW-CAN-fr-SC）を生成し、L1キャッシュ４に通知する。ここで、DOW-fr-SCは、要求するムーブインデータがSC２からL2キャッシュ５へ到着したことを示す。DOW-CAN-fr-SCは、数サイクル前（ここでは３サイクル前）に発行したDOW-fr-SCが無効になったことを示す。L2キャッシュ５がSC２からムーブインデータを受信したとき、受信するべき要求元のMIB２８を、カレントMIBと呼ぶ。
【００７７】
従来技術において、ムーブインデータが到着し、それがプリフェッチ要求由来ではなくディマンドフェッチ要求由来のものであるときに、DOW-fr-SCを有効にしていた。しかし、本発明においては、カレントMIBにすりかえ可能性がある場合には、DOW-fr-SCの発行を許す。そして、すりかえ可能性によりDOW-fr-SCの発行を許した時刻の３サイクル後に、カレントMIBのswappedタグ情報を参照する。このとき、すりかえ処理が行われなかった場合には、プリフェッチ処理扱いとなるのでDOW-CAN-fr-SCを発行し、先に発行したDOW-fr-SCのキャンセルを行う。
【００７８】
また、すりかえ判定期間中にSC２から到着した応答がエラー応答だった場合、すりかえ処理が成立してディマンドフェッチ処理として扱われていれば、L1キャッシュ４に対するエラー通知を行い、すりかえ処理が成立せずプリフェッチ処理として扱われていれば、L1キャッシュ４に対するエラー通知を行わない。
【００７９】
これを実現するために、本発明のL2キャッシュ５におけるMIB２８は、エラー通知信号を生成し、L1キャッシュ４に通知する。
【００８０】
従来技術においては、プリフェッチ要求により確保されたMIBが受信したエラー応答については、L1キャッシュに対するエラー通知を行わないようにしていた。しかし、本発明においては、すりかえ処理が行われた場合、エラー通知を行わなければならない。そこで、プリフェッチ要求によって確保されたMIB２８がエラー応答を受信すると、その３サイクル後にMIB２８のタグ情報swappedを参照し、すりかえ処理が行われていれば、L1キャッシュ４への通知を行う。この３サイクルという時間は、SC２からのエラー応答を受信したMIB２８（この時点ではタグ情報xreplyがセットされていないため、すりかえ対象になり得る）が、処理パイプライン２７上ですりかえ判定の対象となっていた場合、判定結果がMIB２８のタグ情報にセットされるまでに必要な時間である。
【００８１】
上述したように、エラー応答を受信したMIB２８がすりかえ処理をされた場合、通常のエラー通知信号より遅れてエラー通知信号が発行される。そこで、遅れて発行されたエラー通知信号と、後続の通常のエラー通知信号が衝突する場合には、後続のエラー通知信号を遅らせる。
（付記１）  キャッシュメモリの制御を行うキャッシュメモリ制御装置であって、
１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信部と、
前記要求受信部でプリフェッチ要求を受信した後に、前記要求受信部で前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理部と、
を備えてなるキャッシュメモリ制御装置。
（付記２）  付記１に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御装置。
（付記３）  付記１または２に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするキャッシュメモリ制御装置。
（付記４）  付記３に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするキャッシュメモリ制御装置。
（付記５）  付記１乃至４のいずれかに記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御装置。
（付記６）  付記５に記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするキャッシュメモリ制御装置。
（付記７）  付記１乃至６のいずれかに記載のキャッシュメモリ制御装置において、
前記すりかえ処理部は、前記ディマンドフェッチ要求が２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とするキャッシュメモリ制御装置。
（付記８）  キャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
１次キャッシュから発行されたプリフェッチ要求およびディマンドフェッチ要求を受信する要求受信ステップと、
前記要求受信ステップでプリフェッチ要求を受信した後に、前記要求受信ステップで前記プリフェッチ要求に係るメモリアドレスと同一アドレスを指定したディマンドフェッチ要求を受けた場合に、前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行うすりかえ処理ステップと、
を備えてなるキャッシュメモリ制御方法。
（付記９）  付記８に記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御方法。
（付記１０）  付記８または９に記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とするキャッシュメモリ制御方法。
（付記１１）  付記１０に記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とするキャッシュメモリ制御方法。
（付記１２）  付記８乃至１１のいずれかに記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とするキャッシュメモリ制御方法。
（付記１３）  付記１２に記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とするキャッシュメモリ制御方法。
（付記１４）  付記８乃至１３のいずれかに記載のキャッシュメモリ制御方法において、
前記すりかえ処理ステップは、前記ディマンドフェッチ要求が２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とするキャッシュメモリ制御方法。
（付記１５）  情報処理に関する制御を行う中央処理装置であって、
プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュと、
前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュと、
前記１次キャッシュのデータを用いて演算を行う演算部と、
を備えてなる中央処理装置。
（付記１６）  付記１５に記載の中央処理装置において、
前記２次キャッシュは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とする中央処理装置。
（付記１７）  付記１５または１６に記載の中央処理装置において、
前記２次キャッシュは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とする中央処理装置。
（付記１８）  付記１７に記載の中央処理装置において、
前記２次キャッシュは、前記すりかえ判定期間中に、前記予告を通知した後、すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュへ通知することを特徴とする中央処理装置。
（付記１９）  付記１５乃至１８のいずれかに記載の中央処理装置において、
前記２次キャッシュは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とする中央処理装置。
（付記２０）  付記１９に記載の中央処理装置において、
前記２次キャッシュは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とする中央処理装置。
（付記２１）  付記１５乃至２０のいずれかに記載の中央処理装置において、
前記２次キャッシュは、前記ディマンドフェッチ要求が前記２次キャッシュへの登録を行う必要のない要求であってもすりかえ処理を行うことを特徴とする中央処理装置。
（付記２２）  付記１乃至７のいずれか１つに記載の中央処理装置と、
前記中央処理装置が用いるデータを格納する主記憶部と、
前記中央処理装置と主記憶装置の間でデータの管理を行う主記憶制御部と、
を備えてなる情報処理装置。
（付記２３）  情報処理に関する制御を行う中央制御方法であって、
プリフェッチ要求およびディマンドフェッチ要求を発行する１次キャッシュステップと、
前記プリフェッチ要求の応答のために確保したムーブインバッファを、前記プリフェッチ要求に続く前記ディマンドフェッチ要求の応答のために用いるためのすりかえ処理を行う２次キャッシュステップと、
前記１次キャッシュのデータを用いて演算を行う演算ステップと、
を備えてなる中央制御方法。
（付記２４）  付記２３に記載の中央制御方法において、
前記２次キャッシュステップは、前記ムーブインバッファのタグ情報を書き換えることにより、前記すりかえ処理を行うことを特徴とする中央制御方法。
（付記２５）  付記２３または２４に記載の中央制御方法において、
前記２次キャッシュステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対する正当な応答が到着した場合、前記１次キャッシュステップへ前記ディマンドフェッチ要求に対する応答の到着の予告を通知することを特徴とする中央制御方法。
（付記２６）  付記２５に記載の中央制御方法において、
前記２次キャッシュステップは、前記すりかえ判定期間中に、前記予告を通知した後、前記すりかえ処理を行わない場合は前記予告のキャンセルを前記１次キャッシュステップへ通知することを特徴とする中央制御方法。
（付記２７）  付記２３乃至２６のいずれかに記載の中央制御方法において、
前記２次キャッシュステップは、前記すりかえ処理を行うか否かを判定する期間であるすりかえ判定期間中に、前記プリフェッチ要求に対するエラー応答が到着した場合であっても、前記すりかえ処理を行うことを特徴とする中央制御方法。
（付記２８）  付記２７に記載の中央制御方法において、
前記２次キャッシュステップは、前記すりかえ処理により前記エラー応答が遅延し、前記エラー応答と後続の応答が衝突する場合、前記後続の応答を遅延させることを特徴とする中央制御方法。
（付記２９）  付記２３乃至２８のいずれかに記載の中央制御方法において、
前記２次キャッシュステップは、前記ディマンドフェッチ要求が前記２次キャッシュステップへの登録を行う必要のない要求であっても前記すりかえ処理を行うことを特徴とする中央制御方法。
【図面の簡単な説明】
【００８２】
【図１】本発明に係るマルチプロセッサシステムの構成の一例を示すブロック図である。
【図２】本発明に係るL2キャッシュの構成の一例を示すブロック図である。
【図３】本発明に係るすりかえ処理が行われる場合のL2キャッシュの動作の一例を示すタイムチャートである。
【図４】本発明に係るすりかえ処理が可能となるプリフェッチとディマンドフェッチの組み合わせの一例を示す表である。
【図５】本発明に係る処理パイプラインの構成の一例を示すタイムチャートである。
【図６】従来のマルチプロセッサシステムの構成の一例を示すブロック図である。
【図７】L2キャッシュ要求の一例を表す表である。
【図８】従来のL2キャッシュの構成の一例を示すブロック図である。
【図９】通常のディマンドフェッチ要求に対するL2キャッシュの動作の一例を示すタイムチャートである。
【図１０】通常のプリフェッチ要求に対するL2キャッシュの動作の一例を示すタイムチャートである。
【図１１】プリフェッチ要求の直後にディマンドフェッチ要求が発行された場合における従来のL2キャッシュの動作の一例を示すタイムチャートである。
【符号の説明】
【００８３】
１  メインメモリ、２  SC、３，１０３  CPU、４  L1キャッシュ、５，１０５  L2キャッシュ、６  演算部、１１  I1キャッシュ、１２  D1キャッシュ、２０，１２０  L2キャッシュ制御部、２１  MI-PORT、２２  PF-PORT、２３，２４  ポート、２５  プライオリティ部、２６  タグ処理部、２７，１２７  処理パイプライン、２８，１２８  MIB、２９  データRAM、３１  MIBアドレス比較部、３２  タグ読み出し部、３３  MIBタイプコード判定部、３４  MIBすりかえ判定部、３５  MIBすりかえ部、３６  MIB確保部。
【図１】
2006040090.tif 000003
【図２】
2006040090.tif 000004
【図３】
2006040090.tif 000005
【図４】
2006040090.tif 000006
【図５】
2006040090.tif 000007
【図６】
2006040090.tif 000008
【図７】
2006040090.tif 000009
【図８】
2006040090.tif 000010
【図９】
2006040090.tif 000011
【図１０】
2006040090.tif 000012
【図１１】
2006040090.tif 000013