(57)【要約】【課題】キャッシュメモリ，ＴＬＢ，及びＴＳＢをそなえた情報処理装置において、メモリアクセスの際にＴＬＢミスが発生した場合における当該メモリアクセスの処理時間を大幅に短縮できるようにする。【課題手段】第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、アドレス変換バッファ手段１３から第２物理アドレスの検索を行う第２検索部１４と、この検索の結果である第２物理アドレスを用いて、第１仮想アドレスについての第１アドレス変換対を、アドレス変換用テーブル１１からキャッシュメモリ手段１２に対して登録を行うプリフェッチ制御部２２とをそなえて構成する。【選択図】図１
2007122667.tif 000002
【特許請求の範囲】
【請求項１】
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換用テーブルとして保持する記憶手段に接続され、
キャッシュメモリ手段と、
前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、
前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、
前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、
前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、
を有することを特徴とする演算処理装置。
【請求項２】
前記演算処理装置は、さらに仮想アドレス生成部を有し、
前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、
前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする請求項２記載の演算処理装置。
【請求項４】
前記プリフェッチ制御部は、
前記第２物理アドレスを用いて、前記アドレス変換用テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、
前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項５】
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換用テーブルとして保持する記憶手段と、
キャッシュメモリ手段と、
前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、
前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、
前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、
前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、
を有することを特徴とする情報処理装置。
【請求項６】
前記情報処理装置は、さらに仮想アドレス生成部を有し、
前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、
前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記プリフェッチ制御部は、
前記第２物理アドレスを用いて、前記アドレス変換用テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、
前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする請求項５記載の情報処理装置。
【請求項９】
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換用テーブルとして記憶手段に保持するステップと、
前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持するステップと、
前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行うステップと、
前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行うステップと、
前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルからキャッシュメモリ手段に対して登録を行うステップと、
を有することを特徴とする演算処理装置のメモリアクセス方法。
【請求項１０】
前記演算処理装置のメモリアクセス方法は、
前記第１アドレス変換対を保持するステップにおいて、
前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリ手段に対して登録を行うステップをさらに有することを特徴とする請求項９記載の演算処理装置のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＭＵ（Memory Management Unit）等のキャッシュメモリ及びＴＬＢ（Translation Lookaside Buffer）をそなえた情報処理装置に関し、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰ（ＴＬＢミス）が発生した際にキャッシュメモリへデータのプリフェッチを行う技術に関する。
【背景技術】
【０００２】
一般に、ＣＰＵ（Central Processing Unit）の動作速度に比べて主記憶部の動作速度が遅く、また、ＣＰＵと主記憶部との距離も遠いため、ＣＰＵが主記憶部からデータを取得するために、主記憶アクセスが発生すると処理時間がかかる。
そのため、ＣＰＵ内部において命令制御及び演算制御を実行処理する命令演算部と主記憶部との間にキャッシュメモリを装備するシステムが現在主流になっている。
【０００３】
キャッシュメモリは、主記憶部と比べると記憶できる容量は小さいが高速で動作し、また、命令演算部との距離も主記憶部よりも近いため、命令演算部は主記憶部にアクセスするよりも遥かに短時間でデータを取り出すことができる。
次に、ＭＭＵ（Memory Management Unit）について述べると、例えば、ＳＰＡＲＣ（登録商標）アーキテクチャにおいて、ＯＳ（Operating System）は仮想アドレスから物理アドレスへの変換テーブルを管理していて、その一部のエントリを主記憶部上のＴＳＢ（Translation Storage Buffer；アドレス変換用テーブル）に、ＴＴＥ（Translation Table Entry）と呼ばれる仮想アドレス（ＴＴＥ−Ｔａｇ）と物理アドレス（ＴＴＥ−Ｄａｔａ）との対から構成されるエントリを格納している。
【０００４】
さらに、その一部のエントリをＭＭＵ内のＴＬＢ（Translation Lookaside Buffer）に格納している。
ここで、ＴＳＢは容量が多いが命令演算部からのアクセスに時間がかかり、ＴＬＢは容量が少ないが命令演算部から高速なアクセスが可能である。
このようなＴＳＢとＴＬＢとをそなえたシステムでは、指定した仮想アドレスがＭＭＵ内にあるＴＬＢに登録されていない場合、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰ（ＭＭＵミス；ＴＬＢミス）が発生する。
【０００５】
このとき、命令演算部はこのＭＭＵ−ＭＩＳＳ−ＴＲＡＰをＯＳに報告し、報告を受けたＯＳがCPU内部の命令演算部に対してメモリアクセス処理を要求することにより、ＣＰＵ内部の命令演算部が、図９のフローチャート（ステップＳ１００〜Ｓ１１８）及び図１０のタイムチャート（Ｔ１〜Ｔ３３）に示すごとく当該メモリアクセス処理を実行する。なお、図１０に示すＴ１〜Ｔ３７はＣＰＵ内部の命令演算部の処理単位時間を示している。
【０００６】
つまり、命令演算部が仮想アドレスに基づくメモリアクセスを開始し（図９のステップＳ１００）、当該仮想アドレスと当該仮想アドレスに対応する物理アドレスとの対によるエントリを、ＴＬＢから検索する（図９のステップＳ１０１，図１０のＴ１参照）。
ここで、当該仮想アドレスを含むエントリがＴＬＢに登録されていれば（つまり、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰが発生しない場合；図９のステップＳ１０２のＮｏルート）、命令演算部は、検索された当該仮想アドレスに対応する物理アドレスが示すデータを取得すべく、当該物理アドレスを用いてキャッシュメモリを検索する（図９のステップＳ１０３）。
【０００７】
そして、キャッシュメモリに当該データが含まれるキャッシュエントリが登録されていれば（図９のステップＳ１０４のＹｅｓルート）、命令演算部は当該データを読み出すことによりメモリアクセスを完了して（ステップＳ１０５）、処理を終了する。
なお、キャッシュメモリに当該物理アドレスとデータとの対によるキャッシュエントリが登録されていない場合（図９のステップＳ１０４のＮｏルート）、命令演算部は当該物理アドレスを用いて主記憶アクセスを行い、当該物理アドレスのデータをキャッシュメモリに登録し（図９のステップＳ１０６）、再度当該仮想アドレスによる処理を開始する（図９のステップＳ１０７；つまり、上記ステップＳ１００へリターンする）。
【０００８】
一方、検索を行なった当該仮想アドレスの対によるエントリがＴＬＢに登録されていない場合（つまり、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰが発生した場合；図９のステップＳ１０２のＹｅｓルート，図１０のＴ２参照）、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰの報告を受けたＯＳは、命令演算部に対して後述する図９のステップＳ１０８〜Ｓ１１８までの処理を要求する。
【０００９】
つまり、命令演算部はＭＭＵミスが発生した当該仮想アドレスをレジスタにセットするとともに、当該仮想アドレスに基づいて、当該仮想アドレスに対応するＴＳＢ上の仮想アドレス（以下、ＴＳＢ仮想アドレスという）を生成しレジスタにセットした後、これら仮想アドレス及びＴＳＢ仮想アドレスをレジスタから読み出す（図９のステップＳ１０８，Ｓ１０９及び図１０のＴ３〜Ｔ８参照）。
【００１０】
なお、当該仮想アドレスをレジスタにセットする処理及びＴＳＢ仮想アドレスを生成してレジスタにセットする処理は、図１０のＴ２からＴ３の間に実行される。
次に、仮想アドレスとＴＳＢ仮想アドレスとの関係について説明する。上述したように、仮想アドレスと物理アドレスとの対によるエントリは主記憶上のＴＳＢに保持されており、この仮想アドレスと物理アドレスとの対によるエントリが保持されているＴＳＢ上のアドレスがＴＳＢ物理アドレスであり、このＴＳＢ物理アドレスに対応する仮想アドレスがＴＳＢ仮想アドレスである。さらに、このＭＭＵでは、ＴＳＢ仮想アドレスとＴＳＢ物理アドレスとの対によるエントリは、ＴＬＢに登録保持されている。
【００１１】
次に、命令演算部は、読み出したＴＳＢ仮想アドレスを用いたメモリアクセスを開始し（図９のステップＳ１１０）、当該ＴＳＢ仮想アドレスと、当該ＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスとの対によるエントリを、ＴＬＢから検索する（図９のステップＳ１１１，図１０のＴ９参照）。そして、かかるエントリがＴＬＢから検索される（ヒットする）と（図９のステップＳ１１２，図１０のＴ１０参照）、命令演算部は当該ＴＳＢ物理アドレスを用いてキャッシュメモリを検索する（図９のステップＳ１１３，図１０のＴ１１参照）。
【００１２】
ここで、キャッシュメモリに当該ＴＳＢ物理アドレスと、当該ＴＳＢ物理アドレスが示す主記憶上に保持されたデータ（ＴＴＥ−ＴＡＧ／Ｄａｔａ；仮想アドレスと物理アドレスとの対）との対によるエントリが検索される（ヒットする）と（図９のステップＳ１１４のＹｅｓルート）、検索された当該エントリをＴＬＢに登録する（図９のステップＳ１１５）ことによって、上記ステップＳ１０１で検索し上記ステップＳ１０２においてＭＭＵミスが発生した仮想アドレスと、当該仮想アドレスに対応する物理アドレスとの対によるエントリがＴＬＢに登録される。そして、命令演算部は当該仮想アドレスを用いたメモリアクセスを再度開始する（図９のステップＳ１１６；つまり、上記ステップＳ１００へリターンする）。
【００１３】
一方、キャッシュメモリに当該ＴＳＢ物理アドレスとデータとの対によるキャッシュエントリが登録されていない場合（つまり、キャッシュメモリミスが発生した場合；図９のステップＳ１１４のＮｏルート、図１０のＴ１２参照）、当該ＴＳＢ物理アドレスを用いて主記憶に対するアクセスを行ない（図９のステップＳ１１７，図１０のＴ１３参照）、主記憶部から当該ＴＳＢ物理アドレスとデータとの対を読み出してキャッシュメモリに登録し（図１０のＴ１４参照）、再度、当該ＴＳＢ物理アドレスを用いたメモリアクセスを開始する（図９のステップＳ１１８，図１０のＴ１５以降参照；つまり、上記ステップＳ１１０へリターンする）。
【００１４】
なお、図１０のＴ１５〜Ｔ２２の処理は、上述した図９のステップＳ１１０〜Ｓ１１６に該当し、図１０のＴ２３〜Ｔ２８の処理は、上述した図９のステップＳ１００〜Ｓ１０４，Ｓ１０６，Ｓ１０７に該当し、図１０のＴ２９〜Ｔ３３の処理は、上述した図９のステップＳ１００〜Ｓ１０５までの処理に該当する。
さらに、従来から、ＴＬＢで変換ミス（ＴＬＢミス）が発生した場合の処理技術は種々提案されている（例えば、下記特許文献１〜３参照）。
【特許文献１】特開２０００−１１２８２１号公報
【特許文献２】特開平０２−２８５４４０号公報
【特許文献３】特開平０２−１７８７５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上述したように、従来のＭＭＵでは、検索を行なった当該仮想アドレスの対によるエントリがＴＬＢに登録されていないために、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰが発生した場合には、命令演算部はＯＳ主導のもと、下記（１）〜（６）の処理を行なっている。
（１）ＭＭＵ−ＭＩＳＳ−ＴＲＡＰをＯＳに報告。
（２）指定した仮想アドレスをレジスタから読み出す。
【００１６】
（３）当該仮想アドレスに基づいて生成されるＴＳＢ仮想アドレスをレジスタから読み出す。
（４）ＴＳＢ仮想アドレスを用いてメモリアクセスを行なう。
（５）ＴＳＢ仮想アドレスに対するデータがキャッシュメモリまたは主記憶にあれば、ＴＴＥ−ＴＡＧ／Ｄａｔａ（仮想アドレスと物理アドレスとの対）をＴＬＢに登録する。
【００１７】
（６）再度、指定した仮想アドレスのメモリアクセスを行なう。
ここで、上記（５）の処理において、キャッシュメモリに当該データが無かった場合、主記憶部へのメモリアクセスが発生するので、処理に時間がかかってしまい、上記（１）〜（６）の全体の処理を完了するのに多くの時間を要する。
また、図１０に示したように、従来の技術では、ＯＳがＴＳＢ仮想アドレスを生成した後に当該仮想アドレスをレジスタにセットし、このセットしたＴＳＢ仮想アドレスをレジスタから読み出し（Ｔ６〜Ｔ８参照）、このＴＳＢ仮想アドレスに基づいて得られたＴＳＢ物理アドレスを用いてキャッシュメモリを検索し（Ｔ１１参照）、ここでキャッシュメモリにデータが存在しない場合には（Ｔ１２参照）、主記憶アクセスを開始する（Ｔ１３参照）。このように、従来の技術では、ＴＳＢ仮想アドレスの生成後、主記憶アクセスを開始するまでに時間が長いという問題があった。
【００１８】
つまり、従来の技術では、Ｔ２〜Ｔ３の間にＴＳＢ仮想アドレスを生成しているにも係わらず、キャッシュミスが結果的に判明した後におけるＴ１３のタイミングまで主記憶アクセスが開始されず、データ（ここではＴＳＢ物理アドレスに対応するＴＴＥ）がキャッシュメモリに到着するまでに多くの時間を要するという問題があった。
さらに、図１０に示したように、従来の技術では、ＴＳＢ物理アドレスに対応するＴＴＥがＴ１４のタイミングで到着するのにも係わらず、このＴＴＥの物理アドレス（ＴＴＥ−Ｄａｔａ）についてのデータのキャッシュメモリに対するフェッチは、キャッシュミスが結果的に判明した後におけるＴ２７のタイミングまで実行されず、データがキャッシュメモリに到着するまでに多くの時間を要するという問題があった。
【００１９】
また、連続するメモリアクセスにおいて、先行するメモリアクセス及び後続のメモリアクセスの双方においてＴＬＢミスが発生した場合、先行するメモリアクセスに対する上記（１）〜（６）の処理が完了しなければ、後続のメモリアクセスに対して上記（１）〜（６）の処理を実行することができないという問題があった。
つまり、図１１のタイムチャート（Ｔ１〜Ｔ５６）に示すごとく、連続するメモリアクセスにおいて連続してＴＬＢミスが発生する場合、先行するメモリアクセスにおいてＴＬＢミスを発生した仮想アドレスをＴＬＢに登録する処理（Ｔ１〜Ｔ２２参照）が完了するまで、後続のメモリアクセスは開始されないため（Ｔ２４参照）、この後続のメモリアクセスにおいてもＴＬＢミスが発生すると、後続のメモリアクセスが完了するためには非常に時間がかかってしまうことになる（Ｔ５６参照）。なお、図１１における、先行するメモリアクセスの処理内容（Ｔ１〜Ｔ３３）は、図１０に示すメモリアクセスの処理内容（Ｔ１〜Ｔ３３）と同様であり、さらに、図１１における、後続のメモリアクセスの処理（Ｔ２４〜Ｔ５６）は、処理対象のアドレスが異なるだけであり、その処理内容は先行するメモリアクセスの処理（Ｔ１〜Ｔ３３）と同様である。
【００２０】
本発明は、このような課題に鑑み創案されたもので、キャッシュメモリ，ＴＬＢ，及びＴＳＢをそなえた情報処理装置において、メモリアクセスの際にＴＬＢミスが発生した場合における当該メモリアクセスの処理時間を大幅に短縮するとともに、互いに連続するメモリアクセスがともにＴＬＢミスを発生した場合であっても、これら連続するメモリアクセスに対する処理時間を大幅に短縮することを目的とする。
【課題を解決するための手段】
【００２１】
上記目的を達成するために、本発明の演算処理装置は、データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして保持する記憶手段に接続され、キャッシュメモリ手段と、前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、を有することを特徴とする。（請求項１）
さらに本発明の演算処理装置は、さらに仮想アドレス生成部を有し、前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする。（請求項２）
さらに本発明の演算処理装置は、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする。（請求項３）
さらに本発明の演算処理装置は、前記プリフェッチ制御部は、前記第２物理アドレスを用いて、前記アドレス変換テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする。（請求項４）
さらに本発明の情報処理装置は、データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして保持する記憶手段と、キャッシュメモリ手段と、前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、を有することを特徴とする。（請求項５）
さらに本発明の情報処理装置は、前記情報処理装置は、さらに仮想アドレス生成部を有し、前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする。（請求項６）
さらに本発明の情報処理装置は、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする。（請求項７）
さらに本発明の情報処理装置は、前記プリフェッチ制御部は、前記第２物理アドレスを用いて、前記アドレス変換テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする。（請求項８）
さらに本発明のメモリアクセス方法は、データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして記憶手段に保持するステップと、前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持するステップと、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行うステップと、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行うステップと、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルからキャッシュメモリ手段に対して登録を行うステップと、を有することを特徴とする。（請求項９）
さらに本発明のメモリアクセス方法は、前記演算処理装置のメモリアクセス方法は、前記第１アドレス変換対を保持するステップにおいて、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリ手段に対して登録を行うステップをさらに有することを特徴とする。（請求項１０）
【発明の効果】
【００２２】
このように、本発明によれば、ＯＳからの要求に基づくＴＬＢミスに対する通常の処理において、仮想アドレス（ＴＴＥ−Ｔａｇ）と物理アドレス（ＴＴＥ−Ｄａｔａ）との対によるエントリであるＴＴＥを取得すべく主記憶アクセスを実行するよりも前に、第１プリフェッチ制御部が主記憶アクセスを前倒しで実行することになり、これにより、当該第１アドレス変換対がキャッシュメモリに到着するタイミングが早くなり、ＴＬＢミスが発生したメモリアクセスの処理時間を大幅に短縮することができるという効果を有する。
【００２３】
また、パイプライン処理により、ＯＳからの要求による処理が実行される前に当該処理を実行することにより、互いに連続する命令がともにＴＬＢミスを発生した場合であっても、先行する命令に対するメモリアクセス処理が終了するのを待つことなく、当該メモリアクセス処理と逐次的して後続の命令に対するメモリアクセス処理を実行することができ、後続の命令に対する第１プリフェッチ制御部によるプリフェッチ処理を前倒しして実行することができるようになる。この結果、早い段階でキャッシュメモリにデータ（前述のＴＴＥ又は第１物理アドレスに対応するデータ）を保持することができ、連続するメモリアクセスにおいてＴＬＢミスが発生した場合においても、かかる連続するメモリアクセスの処理時間を大幅に短縮することができるという効果を有する。
【００２４】
さらに、ＴＬＢに対して前述のＴＴＥの登録を行う登録部が当該ＴＴＥの登録を開始するのと同時に、当該ＴＴＥに含まれる第１物理アドレスに基づいて、当該第１物理アドレスが示すアドレスに保持されたデータを、主記憶部から前記キャッシュメモリにプリフェッチを行う第２プリフェッチ制御部（データプリフェッチ制御部）が、当該ＴＴＥに含まれる第１物理アドレスに保持されたデータを、当該第１物理アドレスに基づいて主記憶部からキャッシュメモリに対してプリフェッチを行うため、ＯＳからの要求による主記憶アクセスを実行する前に、当該第２プリフェッチ制御部が主記憶アクセスを前倒しで実行することにより、かかるメモリアクセスの処理時間を大幅に短縮することができるという効果を有する。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の第１実施形態について
まず、図１に示すブロック図を参照しつつ、本発明の第１実施形態としての情報処理装置の構成について説明する。図１に示すように、本情報処理装置１は、主記憶部１０と、例えば、命令演算部３，キャッシュメモリ１２，ＴＬＢ１３，ＶＡ（Virtual Address；仮想アドレス）比較器（第１検索部；第２検索部；検索部）１４，ＴＳＢ−ＶＡ生成論理（第１生成部）１５，レジスタ１６，ＰＡ（Physical Address；物理アドレス）生成論理（生成部；第２生成部）１７，ＰＡ比較器（キャッシュメモリ検索部）１８，キャッシュメモリ制御部１９，登録部２０，及びプリフェッチ制御部２１とを含む演算処理装置２をそなえて構成されている。
【００２６】
主記憶部１０は、命令を実行する命令演算部３によって実行される命令にかかるデータを保持するとともに、当該データが保持されているアドレスを示す物理アドレス（第１物理アドレス；ＴＴＥ（Translation Table Entry）−Ｄａｔａ）と当該物理アドレスに対応する仮想アドレス（第１仮想アドレス；ＴＴＥ−Ｔａｇ）とのアドレス変換対（第１アドレスエントリ；ＴＴＥ）によるエントリを保持するＴＳＢ（Translation Storage Buffer；アドレス変換用テーブル，以下、ＴＳＢ領域という）１１をそなえている。
【００２７】
キャッシュメモリ１２は、命令演算部３と主記憶部１０との間に実装され、一時的にデータを保持するものである。
ＴＬＢ１３は、ＴＳＢ領域１１においてアドレス変換対であるエントリが保持されているアドレスを示す物理アドレス（第２物理アドレス；以下、ＴＳＢ物理アドレスという）と、当該ＴＳＢ物理アドレスに対応する仮想アドレス（第２仮想アドレス；以下、ＴＳＢ仮想アドレスという）とのアドレス変換対であるエントリ（第２アドレスエントリ；以下、ＴＳＢアドレスエントリという）を保持するとともに、アドレス変換対（第１アドレスエントリ）を保持しうるように構成されている。
【００２８】
なお、上述したように、以下の説明において、単に“仮想アドレス”という場合は第１仮想アドレスを示し、単に“物理アドレス”という場合は第１物理アドレスを示し、単に“アドレス変換対”という場合は第１アドレスエントリを示す。これに対して、以下の説明において、第２物理アドレスを“ＴＳＢ物理アドレス”といい、第２仮想アドレスを“ＴＳＢ仮想アドレス”といい、第２アドレスエントリを“ＴＳＢアドレスエントリ”という。
【００２９】
ここで、キャッシュメモリ１２及びＴＬＢ１３のデータの保持方法について説明する。
キャッシュメモリ１２は、物理アドレスと当該物理アドレスが示す主記憶部１０のアドレスに保持されたデータとの対であるキャッシュエントリを保持する際には、物理アドレスを検索タグである“Ｃａｃｈｅ−Ｔａｇ”として保持するとともに、かかるデータを検索対象のデータとして“Ｃａｃｈｅ−ｄａｔａ”として保持する。
【００３０】
また、キャッシュメモリ１２は、ＴＳＢ物理アドレスと当該ＴＳＢ物理アドレスが示すＴＳＢ領域１１のアドレスに保持されたデータとしてのアドレス変換対（ＴＴＥ）とを保持する際には、ＴＳＢ物理アドレスを“Ｃａｃｈｅ−Ｔａｇ”として保持するとともに、アドレス変換対を“Ｃａｃｈｅ−ｄａｔａ”として保持する。
ＴＬＢ１３は、仮想アドレスと物理アドレスとのアドレス変換対を保持する際には、仮想アドレスを検索タグとしての“Ｔａｇ”として保持するとともに、物理アドレスを検索対象のデータとしての“Ｄａｔａ”として保持する。
【００３１】
さらに、ＴＬＢ１３は、ＴＳＢ仮想アドレスとＴＳＢ物理アドレスとのＴＳＢアドレスエントリを保持する際には、ＴＳＢ仮想アドレスを検索の索引として用いる“Ｔａｇ”として保持するとともに、ＴＳＢ物理アドレスを検索の対象である“Ｄａｔａ”として保持する。
また、図１に示すように、ＶＡ比較器１４は、命令演算部３の処理対象の仮想アドレス（図中“アクセスアドレス”と表記）についてのアドレス変換対であるＴＳＢアドレスエントリを、当該仮想アドレスに基づいてＴＬＢ１３から検索するものである。
【００３２】
さらに、ＶＡ比較器１４は、ＴＳＢ−ＶＡ生成部１５によって当該アクセスアドレスから一対一に対応するＴＳＢ仮想アドレスが生成されると同時に、生成された当該ＴＳＢ仮想アドレスについてのＴＳＢアドレスエントリを、当該ＴＳＢ仮想アドレスに基づいてＴＬＢ１３から検索を行う。
ＴＳＢ−ＶＡ生成論理（以下、ＴＳＢ−ＶＡ生成部という）１５は、ＶＡ比較器１４による検索の結果、処理対象の仮想アドレスについてのアドレス変換対がＴＬＢ１３に保持されていない（つまり、ＴＬＢミスが発生した）場合に、当該仮想アドレスに一対一に対応するＴＳＢ仮想アドレスを生成するものである。
【００３３】
レジスタ１６は、ＴＬＢミスが発生した仮想アドレス又はＴＳＢ−ＶＡ生成部１５によって生成されたＴＳＢ仮想アドレスを一時的に保持するものである。
ＰＡ生成論理（以下、ＰＡ生成部という）１７は、ＶＡ比較器１４がＴＬＢ１３を検索した結果得られた、ＴＬＢミスが発生したＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスに基づいて、ＴＳＢ領域１１の実際のアドレスを示す最終的なＴＳＢ物理アドレスを生成するものであり、ＶＡ比較器１４の検索終了と同時に最終的なＴＳＢ物理アドレスを生成する。
【００３４】
例えば、ＰＡ生成部１７は、前述したＴＬＢミスが発生したＴＳＢ仮想アドレスにＴＳＢ物理アドレスに当該ＴＳＢ仮想アドレスの一部を加えることによって最終的なＴＳＢ物理アドレスを生成する。
さらに、ＰＡ生成部１７は、ＴＬＢミスが発生した後にＴＳＢ領域１１から読み出された物理アドレスと、当該物理アドレスに対応する仮想アドレスとに基づいて、当該仮想アドレスに対応する、主記憶部１０の実際のアドレスを示す最終的な物理アドレスを生成する。
【００３５】
例えば、ＰＡ生成部１７は、物理アドレスに仮想アドレスの一部を加えることによって当該最終的な物理アドレスを生成する。
ＰＡ比較器１８は、キャッシュメモリ１２に保持されたデータを検索するものであり、物理アドレスに基づいて、当該物理アドレスが示す主記憶部１０のアドレスに保持されたデータを検索する。
【００３６】
さらに、ＰＡ比較器１８は、ＴＳＢ物理アドレスに基づいて、当該ＴＳＢ物理アドレスが示すＴＳＢ領域１１のアドレスに保持されたエントリであるアドレス変換対を検索する。
キャッシュメモリ制御部１９は、キャッシュメモリ１２を制御するものであり、ＰＡ比較器１８による検索の結果、検索対象のキャッシュエントリキャッシュメモリ１２に保持されていない場合、主記憶部１０から検索対象であるデータを読み出してキャッシュメモリ１２にキャッシュエントリとして保持させる。
【００３７】
登録部２０は、キャッシュメモリ１２に保持されたキャッシュエントリのうち、アドレス変換対をＴＬＢ１３に登録するものである。なお、本情報処理装置１では、ＴＳＢアドレスエントリは、ＯＳ（Operating System）によって管理されており、ＴＬＢ１３に予め登録保持されている。
プリフェッチ制御部２１は、第１プリフェッチ制御部２２と、第２プリフェッチ制御部（データプリフェッチ制御部）２３とをそなえて構成されている。
【００３８】
第１プリフェッチ制御部２２は、ＶＡ比較器１４によってＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスが検索されると同時にＰＡ生成部１７によって生成された最終的なＴＳＢ物理アドレスを用いて、ＴＬＢミスが発生した処理対象の仮想アドレスについてのアドレス変換対を、主記憶部１０のＴＳＢ領域１１からキャッシュメモリ１２にプリフェッチを行うものである。
【００３９】
ここで、図１及び図２を参照しながら、第１プリフェッチ制御部２２についてより詳細に説明すると、第１プリフェッチ制御部２２は、ＶＡ比較器１４によって、レジスタ１６にセットされたＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスがＴＬＢ１３から検索されると同時に、ＰＡ比較器１８に、当該検索されたＴＳＢ物理アドレスに基づいて、このＴＳＢ物理アドレスと、このＴＳＢ物理アドレスが示すＴＳＢ領域１１のアドレスに保持されたアドレス変換対との対であるキャッシュエントリを、キャッシュメモリ１２から検索させる。
【００４０】
つまり、第１プリフェッチ制御部２２は、ＰＡ生成部１７によって最終的なＴＳＢ物理アドレスが生成された場合、ＰＡ比較器１８に、この最終的なＴＳＢ物理アドレスを用いたキャッシュメモリの検索を実行させる。
そして、ＰＡ比較器１８による検索の結果、ＴＳＢ物理アドレスとアドレス変換対との対であるキャッシュエントリがキャッシュメモリ１２から検索されなかった（つまり、キャッシュメモリ１２にかかるキャッシュエントリが保持されていない）場合に、第１プリフェッチ制御部２２は、キャッシュメモリ制御部１９にＴＳＢ物理アドレスとアドレス変換対との対をキャッシュエントリとしてキャッシュメモリ１２に登録させる。
【００４１】
つまり、第１プリフェッチ制御部２２は、キャッシュメモリ制御部１９を制御することによって、かかる最終的なＴＳＢ物理アドレスに基づいて主記憶部１０のＴＳＢ領域１１からアドレス変換対を読み出して、ＴＳＢ物理アドレスと当該読み出したアドレス変換対との対をキャッシュメモリ１２にキャッシュエントリとして保持させる。
第２プリフェッチ制御部２３は、キャッシュメモリ１２に保持されたキャッシュエントリを、ＴＬＢミスが発生した仮想アドレスのアドレス変換対のＴＬＢ１３への登録を登録部２０が開始すると同時に、当該アドレス変換対の物理アドレスに基づいて、この物理アドレスに保持されたデータを、主記憶部１０からキャッシュメモリ１２に対してキャッシュミスが発生した場合にのみプリフェッチを行うものである。
【００４２】
なお、本情報処理装置１において、少なくともＴＳＢ−ＶＡ生成論部１５，レジスタ１６，ＰＡ生成論部１７，ＰＡ比較器１８，キャッシュメモリ制御部１９，及び登録部２０が、検索部１４による検索の結果、ＴＬＢミスが発生した仮想アドレスについてのアドレス変換対が、ＴＬＢ１３に保持されていない場合には、当該仮想アドレスに一対一に対応するＴＳＢ仮想アドレスのＴＳＢアドレスエントリに基づいて、当該仮想アドレスに対応するアドレス変換対を、ＴＬＢ１３に登録を行う第１アドレスエントリ登録部として機能する。また、プリフェッチ制御部２１の第１プリフェッチ制御部２２も第１アドレスエントリ登録部として機能してもよい。
【００４３】
ここで、図１及び図３を参照しながら、第２プリフェッチ制御部２３についてより詳細に説明すると、第２プリフェッチ制御部２３は、ＶＡ比較器１４による検索の結果、処理対象の仮想アドレスについてのアドレス変換対がＴＬＢ１３に保持されていない場合には、第１アドレスエントリ登録部として機能するＴＳＢ−ＶＡ生成部１５，レジスタ１６，ＰＡ生成部１７，ＰＡ比較器１８，キャッシュメモリ制御部１９，登録部２０，及び第１プリフェッチ制御部２２が、かかる仮想アドレスについてのアドレス変換対をＴＬＢ１３に登録を開始するのと同時に、かかるアドレス変換対の物理アドレスが示すアドレス上のデータをキャッシュメモリ１２に対してキャッシュミスが発生した場合にのみプリフェッチを行う。
【００４４】
つまり、第２プリフェッチ制御部２３は、登録部２０がアドレス変換対をＴＬＢ１３への登録開始をトリガとして、キャッシュメモリ制御部１９を制御し、キャッシュメモリ制御部１９に、かかるアドレス変換対の物理アドレスに基づいて、当該物理アドレスが示す主記憶部１０上のアドレスに保持されたデータを主記憶部１０から読み出してキャッシュメモリ１２に登録を行う。
【００４５】
次に、図４に示すフローチャート（ステップＳ１０〜Ｓ３２）及び図５に示すタイムチャート（ｔ１〜ｔ４０）を参照しながら、本情報処理装置１の動作（プリフェッチ制御方法）について説明する。なお、図５におけるｔ１〜ｔ４０のそれぞれは、本情報処理装置１の処理単位時間を示す。
まず、命令演算部３が、仮想アドレスに基づくメモリアクセスを開始し（図４のステップＳ１０）、ＶＡ比較器１４が、当該仮想アドレスと当該仮想アドレスに対応する物理アドレスとのアドレス変換対を、ＴＬＢ１３からの検索を行う（図４のステップＳ１１，図５のｔ１参照；第１検索ステップ）。
【００４６】
ここで、かかるアドレス変換対がＴＳＢ１３に登録されていない場合（つまり、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰが発生した場合；図４のステップＳ１２のＹｅｓルート，図５のｔ２参照）、命令演算部３は、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰをＯＳに報告するとともに、ＴＳＢ−ＶＡ生成部１５が、ＴＬＢミスが発生した仮想アドレスに基づいて、当該仮想アドレスに一対一に対応するＴＳＢ仮想アドレス（ＴＳＢ−ＶＡ）を生成する（図５のｔ３参照；第１生成ステップ）。
【００４７】
このとき、図５のｔ３〜ｔ５に示す間に、ＯＳによって、かかる仮想アドレスと当該生成されたＴＳＢ仮想アドレスとがレジスタ１６に一旦セットされる。
そして、ＴＳＢ−ＶＡ生成部１５によってＴＳＢ仮想アドレスが生成されると同時に（つまり、ＴＳＢ仮想アドレスが生成されると直ちに）、ＶＡ比較器１４が、生成されたＴＳＢ仮想アドレスについてのＴＳＢアドレスエントリを、ＴＬＢ１３から検索する（図４のステップＳ１３，図５のｔ４参照；第２検索ステップ）。
【００４８】
次いで、ＶＡ比較器１４によってＴＳＢアドレスエントリがＴＬＢ１３から検索される（つまり、ＴＬＢ−ＨＩＴが発生した場合；図４のステップＳ１４、図５のｔ５参照）と同時（つまり、ＶＡ比較器１４によってＴＳＢアドレスエントリが検索されると直ちに）、第１プリフェッチ制御部２２が、検索されたＴＳＢ物理アドレスを用いて、ＴＬＢミスが発生した仮想アドレスのアドレス変換対（ＴＴＥ−Ｄａｔａ）を、主記憶部１０のＴＳＢ領域１１からキャッシュメモリ１２にプリフェッチを行う（図４のステップＳ１５、図５のｔ６〜ｔ８参照；第１プリフェッチ制御ステップ）。
【００４９】
なお、第１プリフェッチ制御ステップでは、第１プリフェッチ制御部２２からの信号に基づいてＰＡ比較器１８がかかるアドレス変換対をキャッシュメモリ１２から検索し（キャッシュメモリ検索ステップ）、その検索の結果かかるアドレス変換対がキャッシュメモリ１２に保持されていない（キャッシュミスが発生した）場合（図５のｔ７参照）、キャッシュメモリ制御部１９が第１プリフェッチ制御部２２からの信号に基づいて、ＴＳＢ物理アドレスとアドレス変換対との対をキャッシュメモリ１２にプリフェッチすべく、主記憶部１０のＴＳＢ領域１１にアクセスを開始する（図５のｔ８参照）。なお、当該アドレス変換対を受信すると、キャッシュメモリ制御部１９は、当該アドレス変換対と当該ＴＳＢ物理アドレスとをキャッシュメモリ１２にキャッシュエントリとして保持させる（保持ステップ）。ただし、図５に示す例では、当該アドレス変換対を、後述するＯＳからの要求に基づく通常の処理（図５のｔ１２〜ｔ１６）後に受信するので、図５に示す例では、保持ステップはｔ１９のタイミングで実行される。
【００５０】
ここで、本情報処理装置１では、第１プリフェッチ制御部２２がプリフェッチを開始するのと同時に、ＯＳからの要求に基づくＴＬＢミスに対する通常の処理が開始される（図５のｔ６参照）。
つまり、ＯＳからの要求に基づいて、命令演算部３が、ＴＬＢミスが発生した仮想アドレスをレジスタ１６から読み出し（図４のステップＳ１６、図５のｔ６〜ｔ８参照）、さらに、ＴＳＢ−ＶＡ生成部１５によって生成されたＴＳＢ仮想アドレスをレジスタ１６から読み出す（図４のステップＳ１７、図５のｔ９〜ｔ１１参照）。
【００５１】
そして、読み出されたＴＳＢ仮想アドレスによるメモリアクセスが開始され（図４のステップＳ１８）、まず、ＶＡ比較器１４が、ＴＳＢ仮想アドレスに基づいて当該ＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスをＴＬＢ１３から検索する（図４のステップＳ１９、図５のｔ１２参照）。
次に、ＴＳＢ物理アドレスが検索されると（ＴＬＢヒットした場合；図４のステップＳ２０、図５のｔ１３参照）、ＰＡ比較器１８が、検索されたＴＳＢ物理アドレスに基づいて、当該ＴＳＢ物理アドレスと当該ＴＳＢ物理アドレスに対応するアドレス変換対（ＴＴＥ−Ｄａｔａ）をキャッシュメモリ１２から検索を行う（図４のステップＳ２１、図５のｔ１４参照）。
【００５２】
ここで、ＰＡ比較器１８による検索の結果、キャッシュメモリ１２に当該ＴＳＢ物理アドレスと当該アドレス変換対との対がキャッシュエントリとして保持されていない場合（つまり、キャッシュミスが発生した場合；図４のステップＳ２２のＮｏルート、図５のｔ１５参照）、キャッシュメモリ制御部１９が、当該ＴＳＢ物理アドレスと当該アドレス変換対との対をキャッシュメモリ１２にフェッチすべく、主記憶部１０のＴＳＢ領域１１にアクセスを行なう（図４のステップＳ２３、図５のｔ１６参照）。
【００５３】
このように、本情報処理装置１では、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰをＯＳに報告した後のＯＳからの要求に基づくＴＬＢミスに対する処理（図４のステップＳ１６〜Ｓ２３、図５のｔ１２〜ｔ１６参照）が実行される前に、ＴＳＢ−ＶＡ生成部１５によってＴＳＢ仮想アドレスが生成されると直ちに、ＶＡ比較器１４と第１プリフェッチ制御部２２とがＴＬＢミスが発生した仮想アドレスについてのアドレス変換対をキャッシュメモリ１２に保持させるべくプリフェッチ処理（図４のステップＳ１３〜Ｓ１５、図５のｔ４〜ｔ７参照）を実行するので、ＯＳから要求に基づく通常の処理に対して本例においては８ｔ分（８処理単位時間）も早く主記憶部１０へのアクセスを実行することができる（図５のｔ８参照）。
【００５４】
したがって、キャッシュメモリ１２に当該アドレス変換対が到着して、当該アドレス変換対がキャッシュメモリ１２に登録されるタイミングを、かかる通常の処理のみを実行した場合よりも前倒しして早くすることができ、ＴＬＢミスが発生した場合の処理時間を短縮することができる。
そして、ＯＳの要求に基づく主記憶アクセス（図４のステップＳ２３、図５のｔ１６参照）後、アドレス変換対がキャッシュメモリ１２に到着した場合、このアドレス変換対とこのアドレス変換対に対応するＴＳＢ物理アドレスとの対がキャッシュエントリとしてキャッシュメモリ１２に登録され（図５のｔ１９参照；保持ステップ）、再度、ＴＳＢ−ＶＡ生成部１５によって生成されたＴＳＢ仮想アドレスによるメモリアクセスが開始される（図４のステップＳ２４参照）。つまり、図４のステップＳ１８にリターンすることになる。
【００５５】
ここで、ＶＡ比較器１４が、ＴＳＢ−ＶＡ生成部１５によって生成されたＴＬＢミスが発生した仮想アドレスに一対一に対応するＴＳＢ仮想アドレスに基づいて、再度ＴＬＢ１３を検索し（図４のステップＳ１９，Ｓ２０、図５のｔ２０、ｔ２１参照）、ＰＡ比較器１８が、ヒットしたＴＳＢ物理アドレスを用いて、ＴＬＢミスが発生した仮想アドレスのアドレス変換対（ＴＴＥ−Ｄａｔａ）をキャッシュメモリ１２から検索する（図４のステップＳ２１、図５のｔ２２参照）。
【００５６】
このＴＳＢ物理アドレスとアドレス変換対との対は、上記ステップＳ２３（つまり、図５のｔ１９参照；保持ステップ）においてキャッシュメモリ１２にキャッシュエントリとして既に登録されているので、今回のＰＡ比較器１８による検索では、このＴＳＢ物理アドレスとアドレス変換対との対であるキャッシュエントリがヒットし（図４のステップＳ２２のＹｅｓルート、図５のｔ２３参照）、ＴＳＢ−ＶＡ生成部１５によって生成されたＴＳＢ仮想アドレスのメモリアクセス（ＴＳＢ−ＶＡアクセス）が完了する（図５のｔ２４参照）。
【００５７】
次に、登録部２０が、キャッシュヒットしたアドレス変換対をＴＬＢ１３に登録する（図４のステップＳ２５、図５のｔ２５，ｔ２６，ｔ２７参照；第１アドレスエントリ登録ステップ）。
このとき、本情報処理装置１では、登録部２０がアドレス変換対のＴＬＢ１３への登録を開始すると同時に、第２プリフェッチ制御部２３が、当該アドレス変換対の物理アドレスに基づいて、当該物理アドレスが示す主記憶部１０のアドレスに保持されたデータを、主記憶部１０からキャッシュメモリ１２にプリフェッチを行う（図４のステップＳ２６、図５のｔ２５〜ｔ２８参照；第２プリフェッチ制御ステップ，プリフェッチ制御ステップ）。
【００５８】
つまり、第２プリフェッチ制御部２３は、登録部２０によるアドレス変換対のＴＬＢ１３への登録開始をトリガとして、もしくは、登録部２０に入力されるＴＬＢ登録要求信号をトリガとして、プリフェッチを開始する。
具体的には、第２プリフェッチ制御部２３は、まず、かかるアドレス変換対の仮想アドレスと物理アドレスとに基づいて、ＰＡ生成部１７に最終的な物理アドレスを生成させる（図５のｔ２５参照；第２生成ステップ，生成ステップ）。
【００５９】
次に、第２プリフェッチ制御部２３は、ＰＡ比較器１８に、ＰＡ生成部１７によって生成された最終的な物理アドレスを用いたキャッシュメモリ１２の検索を実行させる（図５のｔ２６参照；キャッシュメモリ検索ステップ）。
ここで、キャッシュミスが発生した場合（図５のｔ２７参照）、第２プリフェッチ制御部２３は、キャッシュメモリ制御部１９に、キャッシュミスが発生した物理アドレスを用いた当該物理アドレスが示す主記憶部１０のアドレスに保持されたデータに対するプリフェッチを実行させる（つまり、主記憶アクセスを実行させる；図５のｔ２８参照）。
【００６０】
なお、当該データを受信した場合、キャッシュメモリ制御部１９は、当該データと当該物理アドレスとの対をキャッシュエントリとしてキャッシュメモリ１２に保持させる（保持ステップ）。ただし、図５に示す例では、当該データが、後述するＯＳからの要求に基づく通常の処理（図５のｔ２８〜ｔ３２）後に到着するので、図５に示す例では、保持ステップはｔ３５のタイミングで実行される。
【００６１】
一方、図４のステップＳ２５及び図５のｔ２５〜ｔ２８に示すＴＴＥ−Ｄａｔａの登録処理が完了すると、命令演算部３は、再度ＴＬＢミスが発生した仮想アドレスのメモリアクセス処理を開始する（図４のステップＳ２７）。つまり、上記ステップＳ１０にリターンすることになる。
そして、ＶＡ比較器１４は、ＴＬＢミスが発生した仮想アドレスを用いて再度ＴＬＢ１３の検索を行う（図４のステップＳ１１、図５のｔ２８参照）。
【００６２】
ここでは、上記図４のステップＳ２５及び図５のｔ２５〜２５における登録処理によって、当該仮想アドレスのアドレス変換対がエントリとしてＴＬＢ１３に登録されているので、ＭＭＵ−ＭＩＳＳ−ＴＲＡＰ（ＴＬＢミス）は発生せずにＴＬＢヒットになる（図４のステップＳ１２のＮｏルート、図５のｔ２９参照）。
次に、ＰＡ比較器１８が、ＴＬＢヒットが発生した当該仮想アドレスに対応する物理アドレスを用いて、当該物理アドレスが示す主記憶部１０のアドレスに保持されたデータをキャッシュメモリ１２から検索する（図４のステップＳ２８、図５のｔ３０参照）。
【００６３】
ここで、ＰＡ比較器１８による検索の結果、キャッシュメモリ１２に当該物理アドレスと当該データとの対であるキャッシュエントリが保持されていない場合（つまり、キャッシュミスが発生した場合；図４のステップＳ２９のＮｏルート、図５のｔ３１参照）、キャッシュメモリ制御部１９が、当該物理アドレスと当該データとの対をキャッシュメモリ１２にフェッチすべく、主記憶部１０にアクセスを行なう（図４のステップＳ３０、図５のｔ３２参照）。
【００６４】
このように、本情報処理装置１において、ＴＬＢミスが発生した仮想アドレスと物理アドレスとのアドレス変換対のＴＬＢ１３への登録処理（図４のステップＳ２５、図５のｔ２５〜ｔ２８参照）後に実行される、ＯＳからの要求に基づく当該仮想アドレスを用いた処理（ＶＡアクセス；図５のｔ２８〜ｔ３２）が開始される前に、かかる登録処理が開始されるのと同時に、第２プリフェッチ制御部２３がキャッシュメモリ１２に当該仮想アドレスに対応する物理アドレスと、この物理アドレスが示すアドレス上のデータとをキャッシュエントリとして保持させるべく、プリフェッチ処理（図４のステップＳ２６、図５のｔ２５〜ｔ２８参照）を実行する。
【００６５】
したがって、ＯＳからの要求に基づく処理に対して、例えば本例においては４ｔ分（４処理単位時間）早く主記憶部１０へのアクセスを実行することができることとなる（図５のｔ２８参照）。
そのため、キャッシュメモリ１２が当該データを受信し、当該データがキャッシュメモリ１２に登録されるタイミングを、かかる通常の処理のみを実行した場合よりも前倒しすることができ、ＴＬＢミスが発生した場合の処理時間を短縮することができる。
【００６６】
そして、ＯＳの要求に基づく主記憶アクセス（図４のステップＳ３０、図５のｔ３２参照）後、物理アドレスが示すアドレス上のデータをキャッシュメモリ１２が受信すると、この物理アドレスとこのデータとの対がキャッシュエントリとしてキャッシュメモリ１２に登録され（図５のｔ３５参照；保持ステップ）、再度、ＴＬＢミスが発生した仮想アドレスによるメモリアクセスが開始される（図４のステップＳ３１参照）。つまり、図４のステップＳ１０にリターンする。
【００６７】
ここで、ＶＡ比較器１４が、ＴＬＢミスが発生した仮想アドレス用いて、３度目のＴＬＢ１３への検索を実行する（図４のステップＳ１１、図５のｔ３６参照）。
次に、ＴＬＢヒット（図４のステップＳ１２のＮｏルート、図５のｔ３７参照）した結果得られた、当該仮想アドレスに対応する物理アドレスを用いて、ＰＡ比較器１８が、当該物理アドレスが示すデータを、キャッシュメモリ１２から再度検索を行う（図４のステップＳ２８、図５のｔ３８参照）。
【００６８】
当該物理アドレスと当該データとの対は、上記ステップＳ３０（つまり、図５のｔ３５参照）においてキャッシュメモリ１２にキャッシュエントリとして既に登録されているので、今回のＰＡ比較器１８による検索では、この物理アドレスとデータとの対がキャッシュエントリとしてヒットすることになる（図４のステップＳ２９のＹｅｓルート、図５のｔ３９参照）。
【００６９】
そして、検索された当該データが命令演算部３へ送られることにより、このメモリアクセス処理は完了する（図４のステップＳ３２、図５のｔ４０参照）。
このように、本発明の第１実施形態としての情報処理装置１及びプリフェッチ制御方法によれば、ＶＡ比較器１４が、ＴＳＢ−ＶＡ生成部１５によってＴＳＢ仮想アドレスが生成されると同時に当該ＴＳＢ仮想アドレスを用いてＴＳＢアドレスエントリをＴＬＢ１３から検索し（第２検索ステップ）、このＶＡ比較器１４によって当該ＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスが検索されると同時に、第１プリフェッチ制御部が、検索された当該ＴＳＢ物理アドレスを用いて、ＴＬＢミスが発生した仮想アドレスのアドレス変換対を主記憶部１０のＴＳＢ領域１１からキャッシュメモリ１２に対してプリフェッチを行う（第１プリフェッチ制御ステップ）ので、本情報処理装置１における、ＯＳからの要求に基づくＴＬＢミスに対する通常の処理において、当該アドレス変換対を取得すべく主記憶アクセスを実行するよりも前に、第１プリフェッチ制御部２２が主記憶アクセスを前倒しで実行することになり、当該アドレス変換対をキャッシュメモリ１２が受信するタイミングが早くなり、その結果、ＴＬＢミスが発生したメモリアクセスの処理時間を大幅に短縮することが可能となる。
【００７０】
さらに、登録部２０が当該アドレス変換対のＴＬＢ１３への登録（登録ステップ；第１アドレスエントリ登録ステップ）を開始するのと同時に、第２プリフェッチ制御部２３が、当該アドレス変換対の物理アドレスが示すアドレスに保持されたデータを、当該物理アドレスに基づいて主記憶部１０からキャッシュメモリ１２にプリフェッチを行うため（第２プリフェッチ制御ステップ）、本情報処理装置１における、ＯＳからの要求に基づくＴＬＢミスに対する通常の処理において、当該データを取得すべく主記憶アクセスを実行する以前、第２プリフェッチ制御部２３が主記憶アクセスを前倒しで実行することになり、当該データがキャッシュメモリ１２に到着するタイミングが早くなり、その結果、ＴＬＢミスが発生したメモリアクセスの処理時間を短縮することができる。
【００７１】
〔２〕本発明の第２実施形態について
次に、本発明の第２実施形態としての情報処理装置について説明する。図１に示すように、本発明の第２実施形態としての情報処理装置１´は、上述した図１に示す第１実施形態の情報処理装置１と同一の構成をそなえており、第１実施形態の情報処理装置１に対して、ＶＡ比較器１４，ＴＳＢ−ＶＡ生成部１５，ＰＡ生成部１７，ＰＡ比較器１８，キャッシュメモリ制御部１９，登録部２０，及びプリフェッチ制御部２１が、ＴＬＢミスが発生した場合に、ＯＳへＭＭＵ−ＭＩＳＳ−ＴＲＡＰを報告する前に生成されるＴＬＢミスが発生したことを示す信号（以下、ＴＬＢミス信号という）に基づいて当該ＭＭＵ−ＭＩＳＳ−ＴＲＡＰ処理を実行するように構成されているとともに、連続する命令に対する処理（メモリアクセス処理）をパイプライン制御により逐次的に実行するように構成されている。
【００７２】
したがって、図６に示すごとく、本情報処理装置１´では、ＶＡ比較器１４がＴＬＢミス発生したときに生成されたＴＳＢミス信号に基づいて検索を行ない、第１プリフェッチ制御部２２は、ＶＡ比較器１４によって、レジスタ１６にセットされたＴＳＢ仮想アドレスに対応するＴＳＢ物理アドレスがＴＬＢ１３から検索されると同時に、かかるＴＬＢミス信号に基づいてプリフェッチ処理を実行する。
【００７３】
ここで、本発明の第２実施形態としてのプリフェッチ制御方法について、図７に示すフローチャート（ステップＳ１０，Ｓ１１，Ｓ１２´，Ｓ１３〜Ｓ３２）を参照しながら説明する。なお、図７において既述の符号と同一の符号は同一のステップもしくは略同一のステップを示している。
この図７に示すごとく、本プリフェッチ制御方法は、上述した図４に示す第１実施形態のプリフェッチ制御方法に対して、第１実施形態のプリフェッチ制御方法におけるＭＭＵ−ＭＩＳＳ−ＴＲＡＰをＯＳに報告するステップ（ステップＳ１２）が、ＴＬＢミス信号を発信するステップ（ステップＳ１２´）になる点を除いては同様である。
【００７４】
つまり、初めにＴＬＢミスが発生が発生した場合（ステップＳ１２´のＹｅｓルート）、ＴＳＢ−ＶＡ生成部１５によってＴＬＢミスが発生した仮想アドレスに一対一に対応するＴＳＢ仮想アドレスが生成されると、ＶＡ比較器１４が当該ＴＳＢ仮想アドレスを用いてＴＬＢ１３を検索し（ステップＳ１３）、ヒットした（ステップＳ１４）ＴＳＢ物理アドレスを用いて、第１プリフェッチ制御部２２がかかる仮想アドレスのアドレス変換対をキャッシュメモリ１２に対してプリフェッチを行う。
【００７５】
一方、かかるＴＬＢミスの発生（ステップＳ１２´のＹｅｓルート）後、命令演算部３がＯＳに対してＭＭＵ−ＭＩＳＳ−ＴＲＡＰを報告した後は、上述した第１実施形態のプリフェッチ制御方法と同様に、ステップＳ１６〜Ｓ２７の処理が実行される。
したがって、本情報処理装置１´及び本プリフェッチ制御方法によれば、上述した第１実施形態と同様の作用効果を得ることができる。
【００７６】
さらに、本情報処理装置１´は、上述のごとく、ＶＡ比較器１４，ＴＳＢ−ＶＡ生成部１５，ＰＡ生成部１７，ＰＡ比較器１８，キャッシュメモリ制御部１９，登録部２０，及びプリフェッチ制御部２１がパイプライン制御されており、本情報処理装置１´のパイプライン動作（つまり、本情報処理装置１´による、連続する２つの命令に対するメモリアクセス処理）について、図８に示すタイムチャート（ｔ１〜ｔ７１）を参照しながら説明する。なお、図８において既述の処理内容と同様の処理内容は、ここではその詳細な説明は省略する。また、図８におけるｔ１〜ｔ７１のそれぞれは、本情報処理装置１´の処理単位時間を示している。
【００７７】
図８に示すように、本情報処理装置１´は、命令演算部３に連続して２つの命令が入力されると、まず、ＶＡ比較器１４が、先行する処理対象の仮想アドレスを用いてＴＬＢ１３を検索する（ｔ１参照）。ここでＴＬＢミスが発生した場合（ｔ２参照）、ＴＳＢ−ＶＡ生成部１５，ＶＡ比較器１４，及び第１プリフェッチ制御部２２（ＰＡ比較器１８及びキャッシュメモリ制御部１９）による処理が順次実行される（ｔ３〜ｔ８参照）。なお、このｔ３〜ｔ８のそれぞれの処理は、図４に示すｔ３〜ｔ８のそれぞれの処理と同様である。
【００７８】
このとき、本情報処理装置１´では、ＶＡ比較器１４は、先行する仮想アドレスを用いた検索（ｔ１参照）を完了すると同時に、後続の仮想アドレスを用いたＴＬＢ１３の検索を実行する（ｔ２参照）。
そして、後続の仮想アドレスについてもＴＬＢミスが発生した場合、ＴＳＢ−ＶＡ生成部１５，ＶＡ比較器１４，及び第１プリフェッチ制御部２２が、先行する仮想アドレスに対する処理が終了すると同時に（つまり、次の処理単位時間において）、後続の仮想アドレスに対する処理を実行する（ｔ４〜ｔ９参照）。
【００７９】
したがって、図８に示す例では、ＴＳＢ−ＶＡ生成部１５，ＶＡ比較器１４，及び第１プリフェッチ制御部２２のそれぞれによる後続の仮想アドレスに対する処理が、先行する仮想アドレスに対する処理に対して、１ｔ分（１処理単位時間）ずれて実行され、先行する仮想アドレスに対する処理と、後続の仮想アドレスに対する処理とが逐次的に実行される。
【００８０】
後続の仮想アドレスに対しては、通常では、ｔ２９のタイミングにおいて処理が実行され、ＯＳからの要求に基づいて行われる、ＴＳＢ物理アドレスに対応するＴＬＢミスが発生した仮想アドレスのアドレス変換対のＴＳＢ領域１１からのフェッチ（主記憶アクセス）は、ｔ４４のタイミングで実行されるが、本情報処理装置１´では、上述のようにｔ９のタイミングで前倒しして主記憶アクセスを実行することが可能となるため、キャッシュメモリ１２にデータが登録されるタイミングを通常の処理のみを実行した場合よりも早くすることができ、その結果、連続するメモリアクセスがともにＴＬＢミスが発生した場合の処理時間を短縮することが可能となる。
【００８１】
なお、図８では、後続の仮想アドレスに対する通常の処理（ｔ２９〜ｔ７１参照）において、ＰＡ比較器１８によるＴＳＢ物理アドレスを用いた検索結果（ｔ４２参照）がキャッシュミスされる（ｔ４３参照）場合を例に挙げて説明したが、上述のようにｔ９のタイミングで既に主記憶アクセスを実行しているので、ここでキャッシュヒットする場合もある。この場合には、メモリアクセス処理の処理時間をさらに短縮することが可能となる。
【００８２】
また、ここでは２つの命令が連続する場合を例に挙げて説明したが、３以上の命令が連続する場合においては、当該命令の処理におけるプリフェッチ制御部２１によるプリフェッチ処理が通常の処理よりも早い段階で実行されることになり、後続の命令ほどプリフェッチ処理による処理時間短縮の効果が高まる。
なお、図８において、先行する仮想アドレスに対するｔ１〜ｔ４０における処理（図中の“先行するＶＡアクセス”及び“先行するＴＳＢ−ＶＡアクセス”）は、上述した図４のｔ１〜ｔ４０における処理と同様である。さらに、後続の仮想アドレスに対するｔ２９〜ｔ７１における処理（図中の“後続のＶＡアクセス”及び“後続のＴＳＢ−ＶＡアクセス”）は、処理対象の仮想アドレスが異なるだけで、その処理内容は先行する仮想アドレスに対するｔ１〜ｔ４０に対する処理と同様である。
【００８３】
このように、本発明の第２実施形態としての情報処理装置１´によれば、ＶＡ比較器１４，ＴＳＢ−ＶＡ生成部１５，ＰＡ生成部１７，ＰＡ比較器１８，キャッシュメモリ制御部１９，登録部２０，及びプリフェッチ制御部２１が、ＯＳにＭＭＵ−ＭＩＳＳ−ＴＲＡＰを報告する前に生成されるＴＬＢミス信号に基づいて動作を行うとともに、パイプライン制御されているため、連続する命令においてともにＴＬＢミスが発生した場合であっても、先行する命令に対するメモリアクセス処理が終了するのを待つことなく、当該メモリアクセス処理と逐次的に後続の命令に対するメモリアクセス処理を実行することができ、後続の命令に対するプリフェッチ制御部２１によるプリフェッチ処理を、大幅に前倒しして実行することができるようになり、非常に早い段階でキャッシュメモリ１２にデータ（アドレス変換対もしくは物理アドレスに対応するデータ）を保持することができる。これにより、連続するメモリアクセスにおいてＴＬＢミスが発生した場合であっても、かかる処理時間を短縮することができる。
【００８４】
〔３〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形、組み合わせて実施することができる。
なお、本発明において、上述した図５，図８のタイムチャートにおける処理単位時間は限定されるものではない。つまり、図５，図８のタイムチャートに示す各処理が実行される処理時間（各処理の処理時間の長さ）は本発明において限定されるものではない。
【００８５】
以上、詳述したように、本発明の情報処理装置は、命令を実行する命令演算部と、該命令演算部によって実行される命令にかかるデータを保持するとともに、当該データが保持されているアドレスを示す第１物理アドレスと当該第１物理アドレスに対応する第１仮想アドレスとの第１アドレス変換対を保持するアドレス変換用テーブルをそなえた主記憶部と、前記命令演算部と前記主記憶部との間に介装され、一時的にデータを保持するキャッシュメモリと、前記アドレス変換用テーブルにおいて第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの第２アドレス変換対を保持するとともに、第１アドレス変換対を保持しうるアドレス変換用バッファと、処理対象の第１仮想アドレスについての第１アドレス変換対を前記アドレス変換用バッファから検索する第１検索部と、該第１検索部による検索の結果、前記の処理対象の第１仮想アドレスについての第１アドレス変換対が、前記アドレス変換用バッファに保持されていない場合に、当該第１仮想アドレスに基づいて当該第１仮想アドレスに対応する第２仮想アドレスを生成する第１生成部と、該第１生成部によって前記第２仮想アドレスが生成されると同時に、生成された前記第２仮想アドレスについての第２アドレス変換対を、前記アドレス変換用バッファから検索する第２検索部と、該第２検索部によって前記第２仮想アドレスに対応する第２物理アドレスが検索されると同時に、検索された当該第２物理アドレスを用いて、前記の処理対象の第１仮想アドレスについての第１アドレス変換対を、前記主記憶部の前記アドレス変換用テーブルから前記キャッシュメモリにプリフェッチする第１プリフェッチ制御部とをそなえて構成されていることを特徴としている。
【００８６】
なお、前記第１検索部，前記第１生成部，前記第２検索部，及び前記第１プリフェッチ制御部がパイプライン制御され、前記第１検索部，前記第１生成部，前記第２検索部，及び前記第１プリフェッチ制御部が、連続する命令に対する処理を並列的に実行することが好ましい。
さらに、前記第２物理アドレスと前記第１アドレス変換対との対を、前記キャッシュメモリから検索するキャッシュメモリ検索部をそなえ、前記第１プリフェッチ制御部が、前記キャッシュメモリ検索部に、前記第２物理アドレスに基づいて、当該第２物理アドレスと当該第２物理アドレスが示すアドレスに保持された第１アドレス変換対との対を、前記キャッシュメモリから検索させ、前記キャッシュメモリ検索部による検索の結果、当該第２物理アドレスと当該第１アドレス変換対との対が前記キャッシュメモリに保持されていない場合に、前記アドレス変換用テーブルから当該第１アドレス変換対を読み出して、当該第２物理アドレスと当該第１アドレス変換対との対を、前記キャッシュメモリに保持させることが好ましい。
【００８７】
また、前記キャッシュメモリに保持された、前記の処理対象の第１仮想アドレスについての第１アドレス変換対を、前記アドレス変換用バッファに登録する登録部と、該登録部が前記第１アドレス変換対の前記アドレス変換用バッファへの登録を開始すると同時に、当該第１アドレス変換対の第１物理アドレスに基づいて、当該第１物理アドレスが示すアドレスに保持されたデータを、前記主記憶部から前記キャッシュメモリにプリフェッチする第２プリフェッチ制御部とをそなえて構成されていることが好ましい。
【００８８】
なお、第２仮想アドレスと第２物理アドレスとに基づいて、当該第２仮想アドレスに対する最終的な物理アドレスを生成する第２生成部をそなえ、前記第１プリフェッチ制御部が、前記第２生成部によって生成された最終的な物理アドレスを用いて前記プリフェッチを実行することが好ましい。
また、本発明の情報処理装置は、命令を実行する命令演算部と、該命令演算部によって実行される命令にかかるデータを保持するとともに、当該データが保持されているアドレスを示す第１物理アドレスと当該第１物理アドレスに対応する第１仮想アドレスとの第１アドレス変換対を保持するアドレス変換用テーブルをそなえた主記憶部と、前記命令演算部と前記主記憶部との間に介装され、一時的にデータを保持するキャッシュメモリと、前記アドレス変換用テーブルにおいて第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの第２アドレス変換対を保持するとともに、第１アドレス変換対を保持しうるアドレス変換用バッファと、処理対象の第１仮想アドレスについての第１アドレス変換対を前記アドレス変換用バッファから検索する検索部と、該検索部による検索の結果、前記の処理対象の第１仮想アドレスについての第１アドレス変換対が、前記アドレス変換用バッファに保持されていない場合に、当該第１仮想アドレスに対応する第２アドレス変換対に基づいて、当該第１仮想アドレスについての第１アドレス変換対を、前記アドレス変換用バッファに登録する第１アドレス変換対登録部と、該第１アドレス変換対登録部が前記第１アドレス変換対の前記アドレス変換用バッファへの登録を開始すると同時に、当該第１アドレス変換対の第１物理アドレスに基づいて、当該第１物理アドレスが示すアドレスに保持されたデータを、前記主記憶部から前記キャッシュメモリにプリフェッチするデータプリフェッチ制御部とをそなえて構成されていることを特徴としている。
【００８９】
なお、前記第１物理アドレスと前記データとの対を、前記キャッシュメモリから検索するキャッシュメモリ検索部をそなえ、前記データプリフェッチ制御部が、前記キャッシュメモリ検索部に、前記第１物理アドレスに基づいて、当該第１物理アドレスと当該第１物理アドレスが示すアドレスに保持された前記データとの対を、前記キャッシュメモリから検索させ、前記キャッシュメモリ検索部による検索の結果、当該第１物理アドレスと当該データとの対が前記キャッシュメモリに保持されていない場合に、当該データを読み出して、当該第１物理アドレスと当該データとの対を、前記キャッシュメモリに保持させることが好ましい。
【００９０】
さらに、第１仮想アドレスと第１物理アドレスとに基づいて、当該第１仮想アドレスに対する最終的な物理アドレスを生成する生成部をそなえ、前記データプリフェッチ制御部が、前記生成部によって生成された最終的な物理アドレスを用いて前記プリフェッチを実行することが好ましい。
また、本発明のプリフェッチ制御方法は、命令を実行する命令演算部と、該命令演算部によって実行される命令にかかるデータを保持するとともに、当該データが保持されているアドレスを示す第１物理アドレスと当該第１物理アドレスに対応する第１仮想アドレスとの第１アドレス変換対を保持するアドレス変換用テーブルをそなえた主記憶部と、前記命令演算部と前記主記憶部との間に介装され、一時的にデータを保持するキャッシュメモリと、前記アドレス変換用テーブルにおいて第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの第２アドレス変換対を保持するとともに、第１アドレス変換対を保持しうるアドレス変換用バッファとをそなえた情報処理装置において、前記アドレス変換用バッファに第１アドレス変換対をプリフェッチする方法であって、処理対象の第１仮想アドレスについての第１アドレス変換対を前記アドレス変換用バッファから検索する第１検索ステップと、該第１検索ステップにおける検索の結果、前記の処理対象の第１仮想アドレスについての第１アドレス変換対が、前記アドレス変換用バッファに保持されていない場合に、当該第１仮想アドレスに基づいて当該第１仮想アドレスに対応する第２仮想アドレスを生成する第１生成ステップと、該第１生成ステップにおいて前記第２仮想アドレスが生成されると同時に、生成された前記第２仮想アドレスについての第２アドレス変換対を、前記アドレス変換用バッファから検索する第２検索ステップと、該第２検索ステップにおいて前記第２仮想アドレスに対応する第２物理アドレスが検索されると同時に、検索された当該第２物理アドレスを用いて、前記の処理対象の第１仮想アドレスについての第１アドレス変換対を、前記主記憶部の前記アドレス変換用テーブルから前記キャッシュメモリにプリフェッチする第１プリフェッチ制御ステップとを含んでいることを特徴としている。
【００９１】
なお、前記第１検索ステップ，前記第１生成ステップ，前記第２検索ステップ，及び前記第１プリフェッチ制御ステップが、パイプライン制御によって連続する命令に対して並列的に実行されることが好ましい。
さらに、前記第１プリフェッチ制御ステップが、前記第２物理アドレスに基づいて、当該第２物理アドレスと当該第２物理アドレスが示すアドレスに保持された第１アドレス変換対との対を、前記キャッシュメモリから検索するキャッシュメモリ検索ステップと、前記キャッシュメモリ検索ステップにおける検索の結果、当該第２物理アドレスと当該第１アドレス変換対との対が前記キャッシュメモリに保持されていない場合に、前記アドレス変換用テーブルから当該第１アドレス変換対を読み出して、当該第２物理アドレスと当該第１アドレス変換対との対を、前記キャッシュメモリに保持させる保持ステップとを含んでいることが好ましい。
【００９２】
また、前記キャッシュメモリに保持された、前記の処理対象の第１仮想アドレスについての第１アドレス変換対を、前記アドレス変換用バッファに登録する登録ステップと、該登録ステップにおいて前記第１アドレス変換対の前記アドレス変換用バッファへの登録が開始されると同時に、当該第１アドレス変換対の第１物理アドレスに基づいて、当該第１物理アドレスが示すアドレスに保持されたデータを、前記主記憶部から前記キャッシュメモリにプリフェッチする第２プリフェッチ制御ステップとを含んでいることが好ましい。
【００９３】
なお、第２仮想アドレスと第２物理アドレスとに基づいて、当該第２仮想アドレスに対する最終的な物理アドレスを生成する第２生成ステップを含み、前記第１プリフェッチ制御ステップが、前記第２生成ステップにおいて生成された最終的な物理アドレスを用いて前記プリフェッチを実行することが好ましい。
また、本発明のプリフェッチ制御方法は、命令を実行する命令演算部と、該命令演算部によって実行される命令にかかるデータを保持するとともに、当該データが保持されているアドレスを示す第１物理アドレスと当該第１物理アドレスに対応する第１仮想アドレスとの第１アドレス変換対を保持するアドレス変換用テーブルをそなえた主記憶部と、前記命令演算部と前記主記憶部との間に介装され、一時的にデータを保持するキャッシュメモリと、前記アドレス変換用テーブルにおいて第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの第２アドレス変換対を保持するとともに、第１アドレス変換対を保持しうるアドレス変換用バッファとをそなえた情報処理装置において、前記キャッシュメモリに前記命令にかかるデータをプリフェッチする方法であって、処理対象の第１仮想アドレスについての第１アドレス変換対を前記アドレス変換用バッファから検索する検索ステップと、該検索ステップにおける検索の結果、前記の処理対象の第１仮想アドレスについての第１アドレス変換対が、前記アドレス変換用バッファに保持されていない場合に、当該第１仮想アドレスに対応する第２アドレス変換対に基づいて、当該第１仮想アドレスについての第１アドレス変換対を、前記アドレス変換用バッファに登録する第１アドレス変換対登録ステップと、該第１アドレス変換対登録ステップにおいて前記第１アドレス変換対の前記アドレス変換用バッファへの登録が開始されると同時に、当該第１アドレス変換対の第１物理アドレスに基づいて、当該第１物理アドレスが示すアドレスに保持されたデータを、前記主記憶部から前記キャッシュメモリにプリフェッチするデータプリフェッチ制御ステップとを含んでいることを特徴としている。
【００９４】
なお、前記データプリフェッチ制御ステップが、前記第１物理アドレスに基づいて、当該第１物理アドレスと当該第１物理アドレスが示すアドレスに保持された前記データとの対を、前記キャッシュメモリから検索するキャッシュメモリ検索ステップと、前記キャッシュメモリ検索ステップにおける検索の結果、当該第１物理アドレスと当該データとの対が前記キャッシュメモリに保持されていない場合に、当該データを読み出して、当該第１物理アドレスと当該データとの対を、前記キャッシュメモリに保持させる保持ステップとを含んでいることが好ましい。
【００９５】
さらに、第１仮想アドレスと第１物理アドレスとに基づいて、当該第１仮想アドレスに対する最終的な物理アドレスを生成する生成ステップを含み、前記データプリフェッチ制御ステップが、前記生成ステップにおいて生成された最終的な物理アドレスを用いて前記プリフェッチを実行することが好ましい。
〔４〕付記
（付記１）
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして保持する記憶手段に接続され、キャッシュメモリ手段と、前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、を有することを特徴とする演算処理装置。
【００９６】
（付記２）
前記演算処理装置は、さらに仮想アドレス生成部を有し、前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする付記１記載の演算処理装置。
【００９７】
（付記３）
前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする付記２記載の演算処理装置。
【００９８】
（付記４）
前記プリフェッチ制御部は、前記第２物理アドレスを用いて、前記アドレス変換テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする付記１記載の演算処理装置。
【００９９】
（付記５）
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして保持する記憶手段と、キャッシュメモリ手段と、前記記憶手段において前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持しうるアドレス変換バッファ手段と、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行う第１検索部と、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行う第２検索部と、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルから前記キャッシュメモリ手段に対して登録を行うプリフェッチ制御部と、を有することを特徴とする情報処理装置。
【０１００】
（付記６）
前記情報処理装置は、さらに仮想アドレス生成部を有し、前記第１仮想アドレスに対応する第１アドレス変換対が前記アドレス変換バッファ手段に保持されていない場合に、前記第１仮想アドレスに一対一に対応する前記第２仮想アドレスの生成を、前記仮想アドレス生成部により行うことを特徴とする付記５記載の情報処理装置。
【０１０１】
（付記７）前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部がパイプライン制御され、前記第１検索部、前記仮想アドレス生成部、前記第２検索部及び前記プリフェッチ制御部が連続する命令に対する処理を逐次的に実行することを特徴とする付記６記載の演算処理装置。
（付記８）
前記プリフェッチ制御部は、前記第２物理アドレスを用いて、前記アドレス変換テーブルから前記第１アドレス変換対を検索し、前記第２物理アドレス及び検索した前記第１アドレス変換対との組を前期キャッシュメモリ手段に登録を行う第１プリフェッチ制御部と、前記アドレス変換バッファ手段が前記第１アドレス変換対の登録を開始する場合に、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリに対して登録を行う第２プリフェッチ制御部とを有することを特徴とする付記５記載の演算処理装置。
【０１０２】
（付記９）
データが保持されている第１物理アドレスと前記第１物理アドレスに対応する第１仮想アドレスとの対である第１アドレス変換対をアドレス変換テーブルとして記憶手段に保持するステップと、前記第１アドレス変換対が保持されているアドレスを示す第２物理アドレスと当該第２物理アドレスに対応する第２仮想アドレスとの対である第２アドレス変換対を保持するとともに、前記第１アドレス変換対を保持するステップと、前記第１仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第１物理アドレスの検索を行うステップと、前記第１仮想アドレスに一対一に対応する第２仮想アドレスを用いて、前記アドレス変換バッファ手段から前記第２物理アドレスの検索を行うステップと、前記検索結果である第２物理アドレスを用いて、前記第１仮想アドレスについての前記第１アドレス変換対を、前記アドレス変換用テーブルからキャッシュメモリ手段に対して登録を行うステップと、を有することを特徴とする演算処理装置のメモリアクセス方法。
【０１０３】
（付記１０）
前記演算処理装置のメモリアクセス方法は、前記第１アドレス変換対を保持するステップにおいて、前記第１アドレス変換対に含まれる第１物理アドレスに基づいて、前記第１物理アドレスに保持されたデータを、前記記憶手段から前記キャッシュメモリ手段に対して登録を行うステップをさらに有することを特徴とする付記９記載の演算処理装置のメモリアクセス方法。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１実施形態及び第２実施形態としての情報処理装置の構成を示すブロック図である。
【図２】本発明の第１実施形態としての情報処理装置の要部構成を示すブロック図である。
【図３】本発明の第１実施形態としての情報処理装置の要部構成を示すブロック図である。
【図４】本発明の第１実施形態としてのプリフェッチ制御方法の手順を説明するためのフローチャートである。
【図５】本発明の第１実施形態としてのプリフェッチ制御方法の手順の一例を示すタイムチャートである。
【図６】本発明の第２実施形態としての情報処理装置の要部構成を示すブロック図である。
【図７】本発明の第２実施形態としてのプリフェッチ制御方法の手順を説明するためのフローチャートである。
【図８】本発明の第２実施形態としてのプリフェッチ制御方法の手順の一例を示すタイムチャートである。
【図９】従来のＭＭＵ（Memory Management Unit）をそなえた情報処理装置の動作の手順を説明するためのフローチャートである。
【図１０】従来のＭＭＵをそなえた情報処理装置の動作の手順の一例を示すタイムチャートである。
【図１１】従来のＭＭＵをそなえた情報処理装置の動作の手順の一例を示すタイムチャートである。
【符号の説明】
【０１０５】
１，１´  情報処理装置
１０  主記憶部
１１  ＴＳＢ（Translation Storage Buffer；ＴＳＢ領域；アドレス変換用テーブル）
１２  キャッシュメモリ
１３  ＴＬＢ（Translation Lookaside Buffer；アドレス変換用バッファ）
１４  ＶＡ（Virtual Address）比較器（第１検索部；第２検索部；検索部）
１５  ＴＳＢ−ＶＡ生成論理（第１生成部）
１６  レジスタ
１７  ＰＡ（Physical Address）生成論理（生成部；第２生成部）
１８  ＰＡ比較器（キャッシュメモリ検索部）
１９  キャッシュメモリ制御部
２０  登録部
２１  プリフェッチ制御部
２２  第１プリフェッチ制御部
２３  第２プリフェッチ制御部（データプリフェッチ制御部）
【図１】
2007122667.tif 000003
【図２】
2007122667.tif 000004
【図３】
2007122667.tif 000005
【図４】
2007122667.tif 000006
【図５】
2007122667.tif 000007
【図６】
2007122667.tif 000008
【図７】
2007122667.tif 000009
【図８】
2007122667.tif 000010
【図９】
2007122667.tif 000011
【図１０】
2007122667.tif 000012
【図１１】
2007122667.tif 000013