(57)【要約】  この演算処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、メインＴＬＢに保持されるページテーブルの一部を保持するマイクロＴＬＢとを備える。このような構成において、演算処理装置は、メインＴＬＢに保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれるコンテキストＩＤとを対応付けてエントリとしてマイクロＴＬＢに登録し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤをコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを応答し、エントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信する。
2008155849.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、
前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、
前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索手段と、
前記検索手段によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段によりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答手段と、
を備えたことを特徴とする演算処理装置。
【請求項２】
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、
前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索することを特徴とする請求項１に記載の演算処理装置。
【請求項３】
当該演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置であって、
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする請求項１または２に記載の演算処理装置。
【請求項４】
仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、
前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、
前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索ステップと、
前記検索ステップによりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答ステップと、
を含んだことを特徴とするＴＬＢ制御方法。
【請求項５】
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、
前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索することを特徴とする請求項４に記載のＴＬＢ制御方法。
【請求項６】
当該ＴＬＢ制御方法は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置に適したＴＬＢ制御方法であって、
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする請求項４または５に記載のＴＬＢ制御方法。
【請求項７】
仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、
前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、
前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索手順と、
前記検索手順によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答手順と、
をコンピュータに実行させることを特徴とするＴＬＢ制御プログラム。
【請求項８】
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、
前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索することを特徴とする請求項７に記載のＴＬＢ制御プログラム。
【請求項９】
当該ＴＬＢ制御プログラムは、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置としてのコンピュータに実行するＴＬＢ制御プログラムであって、
前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする請求項７または８に記載のＴＬＢ制御プログラム。
【請求項１０】
演算部と、
前記演算部に接続される、情報を格納可能な記憶部と、
前記記憶部のアクセスに用いられる、仮想アドレスと物理アドレスとの対応を示すエントリを保持するメインＴＬＢと、
メインＴＬＢに保持されるエントリの一部を、実効コンテキストを示す実効コンテキストＩＤと対応付けて保持するマイクロＴＬＢと、
前記演算部から出力される、仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、前記マイクロＴＬＢまたは前記メインＴＬＢに保持されるエントリから取得するデータ取得手段と、
アドレス変換要求に応じて、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストＩＤとに一致する情報を保持するエントリを、前記マイクロＴＬＢから検索する検索手段と、
前記検索手段により前記マイクロＴＬＢからエントリが検索された場合に、検索されたエントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段により前記マイクロＴＬＢからエントリが検索されなかった場合にアドレス変換要求をメインＴＬＢに送信するアドレス応答手段と、
を備えたことを特徴とする情報処理装置。
【請求項１１】
前記情報処理装置において、
前記検索手段により、前記マイクロＴＬＢからエントリが検索されたかった場合、前記メインＴＬＢに保持される前記アドレス変換要求に対応する物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、前記アドレス変換要求に含まれる実効コンテキストＩＤとを対応付けてマイクロＴＬＢに登録する登録手段をさらに備えることを特徴とする、請求項１０に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、メインＴＬＢに保持されるページテーブルの一部を保持するマイクロＴＬＢとを備え、演算部から出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロＴＬＢまたはメインＴＬＢに保持されるエントリから取得して演算部に応答する演算処理装置、ＴＬＢ制御方法、ＴＬＢ制御プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来より、仮想記憶方式を適用するコンピュータには、仮想アドレス（ＶＡ：Virtual  address）から物理アドレス（ＰＡ：physical  address）への変換を行うためのページテーブルと呼ばれる一覧表が主記憶（メインメモリ）に記憶されている。コンピュータは、アドレス変換の度に主記憶内にあるページテーブルを参照しに行くと、非常に多くの時間が費やされることになるために、通常、ＴＬＢ（アドレス変換バッファ：Translation-Lookasaide  buffer）と呼ばれるアドレス変換専用のキャッシュを設けてＣＰＵ内に配置している。【０００３】
そして、コンピュータにおける演算部や命令制御部は、メモリアクセスする際に、ＴＬＢにて仮想アドレスを物理アドレスに変換し、物理アドレスを用いて直接メモリに対してアクセスするため、ＴＬＢのアクセスの速さがそのままメモリアクセスの速さに影響する。ＴＬＢのアクセスを早くするためには、ＴＬＢの容量を小さくする必要があるが、あまり小さいとＴＬＢミスが多発し、アクセス時間を大きくしてしまう。一方、ＴＬＢの容量を大きくした場合、検索にかかる時間は大きくなり、それがハードウエアの性能向上を阻害する原因になる。そこで、アクセス時間を短縮するとともに、ハードウエアの性能を向上させる手法として、ＴＬＢを２階層で構成する手法が多く用いられる。【０００４】
２階層のＴＬＢは、マイクロＴＬＢとして用いられるＣＡＭ(content  addressable  memory、fully  associative  TLB)と、メインＴＬＢとして用いられるＲＡＭ(Random  Access  Memory、Set  associative  TLB)とから構成される。それぞれのＴＬＢのエントリには、ページサイズと呼ばれるサイズが割り当てられており、そのサイズは８Ｋページ、６４Ｋページ、５１２Ｋページ、４Ｍページ、３２Ｍページ、２５６Ｍページの６種類がある。そのうち、ＲＡＭには、８Ｋページと４Ｍページが格納可能であり、ＣＡＭには、それ以外のページと、ＬＯＣＫエントリと呼ばれる特殊なエントリが格納可能である。また、ＲＡＭには、その構造上一種類のページサイズしか登録できないため、８Ｋページ、４Ｍページのエントリを登録するために２組のＲＡＭを用意している。そして、ＲＡＭは、ページサイズの制約が大きい一方で、実装面積に対する記憶容量が比較的大きい。【０００５】
これに対してＣＡＭは、すべてのページサイズを登録可能であり、ＬＯＣＫエントリにつけられたＬＯＣＫビットによるエントリ制御も可能である。ところが、ＣＡＭは、ＲＡＭに比べて実装面積に対する記憶領域が小さく、多くのエントリを格納することができない。そのため、ＣＡＭには、比較的使われる頻度が小さい６４Ｋページと５１２Ｋページ、３２Ｍページ、２５６Ｍページ、ＲＡＭに登録するには信頼性に問題のあるロックエントリやグローバルビットが格納される。また、マイクロＴＬＢは、このＣＡＭで構成されており、ページサイズによらず過去に検索されたアドレス変換情報を小容量であるが保持している。【０００６】
コンピュータにおける演算部や命令制御部は、マイクロＴＬＢにおいてアドレス変換を行う場合に、送信するリクエスト要求の仮想アドレスとコンテキストと、ＴＬＢに登録されているＴＬＢ仮想アドレスとＴＬＢコンテキストとページサイズ情報とを用いてマイクロＴＬＢの検索を行う。そして、演算部や命令制御部は、仮想アドレスとコンテキストと、ＴＬＢ仮想アドレスとＴＬＢコンテキストとが一致し、さらにその一致したエントリが有効であればマイクロＴＬＢヒットとなり物理アドレスへの変換を行う。ここで用いられているコンテキストとは、各プロセスの各仮想アドレスが属するプログラムもしくはアドレス空間ごとに与えられた識別子であり、ＳＰＡＲＣアーキテクチャでは、コンテキストレジスタに格納されている。このコンテキストレジスタには、「primary、secondary、nucleus」の三種類の空間があり、ＯＳによって値が割り振られる。【０００７】
そして、コンテキストレジスタに格納されるコンテキストを異なるプロセスで共有して使用するために、グローバルビットが利用されていている。演算部や命令制御部は、このグローバルビットが有効であるエントリに対しては、アドレス検索時にコンテキストの一致を無視することができ、仮想アドレスの一致のみでアドレス変換を行う。【０００８】
上記した演算部や命令制御部がアドレス変換を行う処理を、図７を用いて具体的に説明する。図７に示すように、マイクロＴＬＢは、６３ｂｉｔから１３ｂｉｔまでのＴＬＢ仮想アドレス[６３：１３]と１２ｂｉｔから０ｂｉｔのコンテキスト値[１２：０]とを保持する。そして、演算部や命令制御部は、アドレス変換要求としてＴＬＢアクセスをマイクロＴＬＢに出力する。このＴＬＢアクセスは、仮想アドレス[６３：１３]と、１ｂｉｔから０ｂｉｔの実効コンテキストＩＤ[１：０]から構成される。このＴＬＢアクセスを受け付けたマイクロＴＬＢは、２ｂｉｔの実効コンテキストＩＤに対応する１２ｂｉｔから０ｂｉｔのコンテキスト値[１２：０]を取得する。そして、マイクロＴＬＢのアドレス比較部は、ＴＬＢ仮想アドレス[６３：１３]と入力された仮想アドレス[６３：１３]とを比較した結果をＡＮＤ回路に出力し、コンテキスト比較部は、ＴＬＢコンテキスト[１２：０]と入力されて変換されたコンテキスト値[１２：０]との比較結果と、当該コンテキストにグローバルビットが付加されているかを判定した結果をＡＮＤ回路に出力する。【０００９】
そして、ＡＮＤ回路は、アドレス比較部により一致する旨の信号と、コンテキスト比較部により一致する旨の信号またはGlobal-bit（グローバルビット）である旨の信号と、Entry-Validにより入力された当該仮想アドレスに対応するエントリが有効である旨の信号とを受け付けると、ENTRY_MATCHとして仮想アドレスに対応する物理アドレスを応答する。一方、アドレス比較部により一致しない旨の信号、コンテキスト比較部により一致しない旨の信号または、Entry-Validにより入力された当該仮想アドレスに対応するエントリが無効である旨の信号を受け付けると、ＡＮＤ回路は、マイクロＴＬＢミスしたことを応答する。【００１０】
さらに最近では、プロセッサの高速化に伴い、頻繁にアクセスされるマイクロＴＬＢでのアドレス変換も高速化が求められる。そこで、異なるプロセスにおいてコンテキストを共通に使用できるシェアドコンテキスト（Shared-Context：共有ビット）が用いられている（特許文献１参照）。このシェアドコンテキストを採用した場合には、コンテキストレジスタとシェアドコンテキストレジスタのどちらかのコンテキストとマッチすれば、コンテキストマッチとして、仮想アドレスから物理アドレスへの変換を実施することができる。【００１１】
【特許文献１】特開平５−２２５０６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記した従来の技術は、アドレス検索処理速度が低下するために、性能が低下するという課題があった。具体的には、マイクロＴＬＢにコンテキストとシェアドコンテキストのそれぞれについて比較部を用意する必要があり、この比較部を追加すると比較ＢＩＴ数の増加によりアドレス検索処理速度が低下してしまい、結果として、コンピュータの性能が低下する。【００１３】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である演算処理装置、ＴＬＢ制御方法、ＴＬＢ制御プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索手段と、前記検索手段によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段によりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答手段と、を備えたことを特徴とする。【００１５】
また、請求項２に係る発明は、上記の発明において、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤをコンテキストに変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索する。【００１６】
また、請求項３に係る発明は、上記の発明において、当該演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置であって、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤをコンテキストに変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする。【００１７】
また、請求項４に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索ステップと、前記検索ステップによりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答ステップと、を含んだことを特徴とする。【００１８】
また、請求項５に係る発明は、上記の発明において、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索することを特徴とする。【００１９】
また、請求項６に係る発明は、上記の発明において、当該ＴＬＢ制御方法は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置に適したＴＬＢ制御方法であって、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする。【００２０】
また、請求項７に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、前記メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリをマイクロＴＬＢから検索する検索手順と、前記検索手順によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するアドレス応答手順と、をコンピュータに実行させることを特徴とする。【００２１】
また、請求項８に係る発明は、上記の発明において、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持するものであって、前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索することを特徴とする。【００２２】
また、請求項９に係る発明は、上記の発明において、当該ＴＬＢ制御プログラムは、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置としてのコンピュータに実行するＴＬＢ制御プログラムであって、前記マイクロＴＬＢは、前記物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索することを特徴とする。【００２３】
また、請求項１０に係る発明は、演算部と、前記演算部に接続される、情報を格納可能な記憶部と、前記記憶部のアクセスに用いられる、仮想アドレスと物理アドレスとの対応を示すエントリを保持するメインＴＬＢと、メインＴＬＢに保持されるエントリの一部を、実効コンテキストを示す実効コンテキストＩＤと対応付けて保持するマイクロＴＬＢと、前記演算部から出力される、仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、前記マイクロＴＬＢまたは前記メインＴＬＢに保持されるエントリから取得するデータ取得手段と、アドレス変換要求に応じて、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストＩＤとに一致する情報を保持するエントリを、前記マイクロＴＬＢから検索する検索手段と、前記検索手段により前記マイクロＴＬＢからエントリが検索された場合に、検索されたエントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段により前記マイクロＴＬＢからエントリが検索されなかった場合にアドレス変換要求をメインＴＬＢに送信するアドレス応答手段と、を備えたことを特徴とする。【００２４】
また、請求項１１に係る発明は、前記情報処理装置において、前記検索手段により、前記マイクロＴＬＢからエントリが検索されたかった場合、前記メインＴＬＢに保持される前記アドレス変換要求に対応する物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、前記アドレス変換要求に含まれる実効コンテキストＩＤとを対応付けてマイクロＴＬＢに登録する登録手段をさらに備えることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持し、保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを演算部に応答し、エントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するので、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である【００２６】
例えば、ＴＬＢへのアクセス変換要求（ＴＬＢアクセス）に使用される実効コンテキストＩＤ（コンテキストＩＤ）をマイクロＴＬＢに登録して、検索することができる結果、１３ビットのコンテキストを用いる場合に比べて、処理性能を向上させることが可能である。また、実効コンテキストＩＤを用いることで、シェアドコンテキストを用いた場合でも、シェアドコンテキストを検索する論理回路を別途用意する必要がない結果、実効コンテキストＩＤを比較する１つの論理回路だけで検索することができるので、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。なお、実効コンテキストＩＤとは、プロセスごとに割り当てられる実行コンテキストの識別子であり、シェアドコンテキスト／共有コンテキストとは、複数のプロセス間で共有に割り当てられたコンテキストの識別子である。【００２７】
また、本発明によれば、マイクロＴＬＢは、物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す二ビットのコンテキストＩＤとを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索するので、検索時に比較対象となるビット数をさらに削減することができる結果、性能をさらに向上させることが可能である。【００２８】
例えば、ＴＬＢへのアクセス変換要求（ＴＬＢアクセス）に使用される２ビットの実効コンテキストＩＤをマイクロＴＬＢに登録して、検索することができる結果、２ビットの比較を行えばよく、１３ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。【００２９】
また、本発明によれば、演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用し、マイクロＴＬＢは、物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索するので、マルチスレッド方式を用いた場合でも、性能をさらに向上させることが可能である。
【図面の簡単な説明】
【００３０】
【図１】図１は、実施例１に係る演算処理装置の概要と特徴を説明するための図である。
【図２】図２は、実施例１に係る演算処理装置の構成を示すブロック図である。
【図３】図３は、マイクロＴＬＢに登録される情報の例を示す図である。
【図４】図４は、実施例１に係る演算処理装置におけるマイクロＴＬＢの回路構成を説明するための図である。
【図５】図５は、実施例１に係る演算処理装置におけるマイクロＴＬＢへのエントリ登録処理の流れを示すフローチャートである。
【図６】図６は、実施例１に係る演算処理装置におけるマイクロＴＬＢのエントリ検索処理の流れを示すフローチャートである。
【図７】図７は、従来技術を説明するための図である。
【符号の説明】
【００３１】
１０  演算処理装置
１１  ＣＰＵ
１１ａ  演算部／命令制御部
２０  Ｌ１キャッシュ制御部
２１  Ｌ１キャッシュＲＡＭ
２２  メインＴＬＢ
２３  マイクロＴＬＢ
２４  記憶部
２５  登録部
２６  アドレス比較部
２７  コンテキストＩＤ比較部
２８  スレッド比較部
２９  アドレス応答部
３０  Ｌ２キャッシュ制御部
３１  Ｌ２キャッシュＲＡＭ
４０  主記憶部（メモリ）
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照して、この実施例に係る演算処理装置、ＴＬＢ制御方法およびＴＬＢ制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る演算処理装置の概要および特徴、演算処理装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
【実施例１】
【００３３】
まず最初に、図１を用いて、実施例１に係る演算処理装置の概要および特徴を説明する。図１は、実施例１に係る演算処理装置の概要と特徴を説明するための図である。【００３４】
図１に示すように、この演算処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、メインＴＬＢに保持されるページテーブルの一部を保持するマイクロＴＬＢとを備える。また、マイクロＴＬＢに接続される演算部／命令制御部は、仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求をマイクロＴＬＢに対して送信し、マイクロＴＬＢに当該アドレス変換要求に対応するエントリがない（マイクロＴＬＢミス）場合には、メインＴＬＢからマイクロＴＬＢに登録後、再度マイクロＴＬＢに対してアドレス変換要求をする。また、この演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用している。【００３５】
このような構成において、この演算処理装置は、演算部／命令制御部などのプロセッサから出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロＴＬＢまたはメインＴＬＢに保持されるエントリから取得してプロセッサに応答することを概要とするものである。特に、本実施例による演算処理装置では、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である点に主たる特徴がある。【００３６】
この主たる特徴を具体的に説明すると、演算処理装置は、演算部／命令制御部などからマイクロＴＬＢに対してアドレス変換要求が入力（ＴＬＢアクセス）されてマイクロＴＬＢミスが発生し、応答されたメインＴＬＢに保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれる実効コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロＴＬＢに登録する（図１の（１）〜（３）参照）。具体的に例を挙げれば、演算処理装置は、応答されたメインＴＬＢに保持される物理アドレス[４６：１３]と、当該物理アドレスに関連付けられたＴＬＢ仮想アドレス[６３：１３]と、ＴＬＢアクセス時のアドレス変換要求に含まれるｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す実効コンテキストＩＤ[１：０]と、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロＴＬＢに登録する。【００３７】
例えば、演算処理装置は、応答されたメインＴＬＢに保持される物理アドレス[４６：１３]で示される「０ｘ０００１１１・・・」と、当該物理アドレスに関連付けられたＴＬＢ仮想アドレス[６３：１３]で示される「１ｘ１２３４５６・・・」と、ＴＬＢアクセス時のアドレス変換要求に含まれるｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す実効コンテキストＩＤ[１：０]で示される「１０」と、物理アドレスが使用されるスレッドを示すスレッド情報「スレッド１」とを対応付けてエントリとしてマイクロＴＬＢに登録する。なお、ここで、ｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す実効コンテキストＩＤを用いることで、シェアドコンテキストを保持する必要はない。【００３８】
その後、演算処理装置は、演算部などからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索する（図１の（４）参照）。上記した例で具体的に説明すると、演算処理装置は、演算部などからアドレス変換要求を再び受信した場合に、当該アドレス変換要求に含まれる実効コンテキストＩＤ[１：０]をコンテキスト値[１２：０]に変換することなく、当該アドレス変換要求に含まれるＴＬＢ仮想アドレス[６３：１３]と実効コンテキストＩＤ[１：０]とスレッド情報とに一致するエントリをマイクロＴＬＢから検索する。【００３９】
例えば、演算処理装置は、ＴＬＢ仮想アドレス[６３：１３]で示される「１ｘ１２３４５６・・・」と実効コンテキストＩＤ「１０」とスレッド情報「スレッド１」を含むアドレス変換要求を受信した場合に、これらに一致するエントリをマイクロＴＬＢから検索する。【００４０】
そして、演算処理装置は、マイクロＴＬＢからエントリが検索された場合に、エントリに含まれる物理アドレスを応答し、マイクロＴＬＢからエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信する（図１の（５）参照）。上記した例で具体的に説明すると、演算処理装置は、マイクロＴＬＢからエントリが検索された場合に、ＴＬＢ仮想アドレス[６３：１３]で示される「１ｘ１２３４５６・・・」と実効コンテキストＩＤ「１０」とスレッド情報「スレッド１」に対応付けて保持される物理アドレス「０ｘ０００１１１・・・」を応答し、マイクロＴＬＢからエントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信する。【００４１】
このように、実施例１に係る演算処理装置は、[１２：０]からなる１３ビットのコンテキストではなく、[１：０]からなる２ビットの実効コンテキストＩＤを用いて、マイクロＴＬＢに登録されているエントリを検索することができ、シェアドコンテキストを比較する必要がない結果、上記した主たる特徴のごとく、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。【００４２】
［演算処理装置の構成］
次に、図２を用いて、図１に示した演算処理装置の構成を説明する。図２は、実施例１に係る演算処理装置の構成を示すブロック図である。図２に示すように、この演算処理装置１０は、ＣＰＵ１１と、Ｌ１キャッシュ制御部２０と、Ｌ２キャッシュ制御部３０と、主記憶部４０とから構成される。【００４３】
ＣＰＵ１１は、主記憶部４０に記憶される各種プログラムを実行する処理部であり、特に本実施例に密接に関連するものとしては、演算部／命令制御部１１ａと、Ｌ１キャッシュ制御部２０とを備える。【００４４】
演算部／命令制御部１１ａは、ＣＰＵ１１により実行される演算処理に応じてデータの書き込みおよび読み出しに関する命令を出力し、必要なデータを後述するマイクロＴＬＢ２３、メインＴＬＢ２２、Ｌ１キャッシュＲＡＭ２１、Ｌ２キャッシュＲＡＭ３１または主記憶部４０から取得し、取得されたデータに対する演算処理を行う。【００４５】
Ｌ１キャッシュ制御部２０は、演算部／命令制御部１１ａから仮想アドレスを取得した場合に、対応するデータをＬ１キャッシュＲＡＭ２１から取得して演算部／命令制御部１１ａに出力し、対応するデータがＬ１キャッシュＲＡＭ２１に存在しない場合に、Ｌ２キャッシュアドレスアクセスをＬ２キャッシュ制御部３０に出力する処理部である。特に、本実施例に密接に関連するものとしては、Ｌ１キャッシュ制御部２０は、Ｌ１キャッシュＲＡＭ２１と、メインＴＬＢ２２と、マイクロＴＬＢ２３とを備える。【００４６】
Ｌ１キャッシュＲＡＭ２１は、ＣＰＵ１１と同じモジュールに集積または実装されている高速で少容量なメモリある。Ｌ１キャッシュＲＡＭ２１は、使用頻度の高いデータを記憶することで、ＣＰＵ１１によって実行される命令とデータを一時的に保持するために使われ、主記憶部４０が新しいデータの供給に追いつく間、一定量のデータを供給してＣＰＵ１１が処理を続行できるようにする。【００４７】
メインＴＬＢ２２は、主記憶上に配置される仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持する。具体的に例を挙げれば、演算部／命令制御部１１ａによってマイクロＴＬＢ２３にアドレス変換要求が送信されて、マイクロＴＬＢミスが発生すると、メインＴＬＢ２２は、マイクロＴＬＢ２３からアドレス変換要求を受け付けて、当該アドレス変換要求に対して物理アドレスを応答する。また、メインＴＬＢ２２は、マイクロＴＬＢ２３からアドレス変換要求に対応する物理アドレスを保持していない場合、当該アドレス変換要求を主記憶部４０に出力する。【００４８】
マイクロＴＬＢ２３は、メインＴＬＢに保持されるページテーブルの一部を保持する。特に本実施例に密接に関連するものとしてマイクロＴＬＢ２３は、記憶部２４と、登録部２５と、アドレス比較部２６と、コンテキストＩＤ比較部２７と、スレッド比較部２８と、アドレス応答部２９とを備える。【００４９】
記憶部２４は、後述する登録部２５によって登録されたメインＴＬＢ２２に保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、実効コンテキストトＩＤと、スレッド情報とを対応付けてエントリとして記憶する。具体的に例を挙げれば、記憶部２４は、図３に示すように、仮想アドレス[６３：１３]と実効コンテキストＩＤ[１：０]とスレッド情報から構成されるＴＡＧ部と、物理アドレス[４６：１３]とａｔｔｒｉｂｕｔｅｓ（Ｅｎｔｒｙ−Ｖａｌｉｄなど）[１２：０]とから構成されるデータ部とを対応付けて記憶する。なお、図３は、マイクロＴＬＢに登録される情報の例を示す図である。【００５０】
登録部２５は、メインＴＬＢ２２に保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれる実効コンテキストＩＤと、スレッド情報とを対応付けてエントリとしてマイクロＴＬＢ２３の記憶部２４に登録する。具体的に例を挙げれば、登録部２５は、演算部／命令制御部１１ａにメインＴＬＢ２２から応答された物理アドレス[４６：１３]と、当該物理アドレスに関連付けられた仮想アドレス[６３：１３]と、ＴＬＢアクセス時のアドレス変換要求に含まれるｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す実効コンテキストＩＤ[１：０]と、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロＴＬＢ２３の記憶部２４に登録する。例えば、登録部２５は、物理アドレス[４６：１３]で示される「０ｘ０００１１１・・・」と、当該物理アドレスに関連付けられた仮想アドレス[６３：１３]で示される「１ｘ１２３４５６・・・」と、ＴＬＢアクセス時のアドレス変換要求に含まれるｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す実効コンテキストＩＤ[１：０]で示される「１０」と、物理アドレスが使用されるスレッドを示すスレッド情報「スレッド１」とを対応付けてエントリとしてマイクロＴＬＢ２３に登録する。【００５１】
アドレス比較部２６は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるＴＬＢ仮想アドレスと一致するエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリから検索する。具体的に例を挙げれば、アドレス比較部２６は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる仮想アドレス[６３：１３]と一致する仮想アドレスを含むエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリのＴＬＢ仮想アドレス[６３：１３]を参照して検索する。そして、アドレス比較部２６は、一致したエントリがあった場合には、その旨を示す信号（例えば、一致したエントリ情報など）を後述するアドレス応答部２９に通知し、一致したエントリがない場合には、その旨を示す信号（例えば、マイクロＴＬＢミスなど）を後述するアドレス応答部２９に通知する。【００５２】
コンテキストＩＤ比較部２７は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストＩＤと一致する実効コンテキストＩＤを含むエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリから検索する。具体的に例を挙げれば、コンテキストＩＤ比較部２７は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストＩＤ[１：０]を、コンテキストを特定するコンテキスト値[１２：０]に変換することなく、実効コンテキストＩＤ[１：０]と一致する実効コンテキストＩＤを含むエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリのＴＬＢ実効コンテキストＩＤ[１：０]を参照して検索する。そして、アドレス比較部２６と同様、コンテキストＩＤ比較部２７は、一致したエントリがあった場合には、その旨を示す信号（例えば、一致したエントリ情報など）を後述するアドレス応答部２９に通知し、一致したエントリがない場合には、その旨を示す信号（例えば、マイクロＴＬＢミスなど）を後述するアドレス応答部２９に通知する。【００５３】
スレッド比較部２８は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるスレッド情報と一致するスレッド情報を含むエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリから検索する。具体的に例を挙げれば、スレッド比較部２８は、演算部／命令制御部１１ａからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるスレッド情報と一致するスレッド情報を含むエントリを、マイクロＴＬＢ２３の記憶部２４に記憶される各エントリのＴＬＢスレッド情報を参照して検索する。そして、アドレス比較部２６は、一致したエントリがあった場合には、その旨を示す信号（例えば、一致したエントリ情報など）を後述するアドレス応答部２９に通知し、一致したエントリがない場合には、その旨を示す信号（例えば、マイクロＴＬＢミスなど）を後述するアドレス応答部２９に通知する。【００５４】
アドレス応答部２９は、アドレス変換要求に対応するエントリがマイクロＴＬＢ２３から検索された場合に、エントリに含まれる物理アドレスをプロセッサに応答し、エントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢ２２に送信する。上記した例で具体的に説明すると、アドレス応答部２９は、アドレス比較部２６から受け付けたアドレス変換要求の仮想アドレスと一致するエントリ情報と、コンテキストＩＤ比較部２７から受け付けたアドレス変換要求の実効コンテキストＩＤと一致するエントリ情報と、スレッド情報比較部２８から受け付けたアドレス変換要求のスレッド情報と一致するエントリ情報とが全て一致する場合に、当該受け付けたエントリに対応する物理アドレス[４６：１３]をマイクロＴＬＢ２３の記憶部２４から取得して、アドレス変換要求を送信した演算部／命令制御部１１ａに応答する。【００５５】
一方、アドレス応答部２９は、アドレス比較部２６から受け付けたアドレス変換要求の仮想アドレスと一致するエントリ情報と、コンテキストＩＤ比較部２７から受け付けたアドレス変換要求の実効コンテキストＩＤと一致するエントリ情報と、スレッド比較部２８から受け付けたアドレス変換要求のスレッド情報と一致するエントリ情報とが一致しない場合や、アドレス比較部２６、コンテキストＩＤ比較部２７、スレッド情報部２８のいずれから、入力されたアドレス変換要求と一致する情報がないことを示す信号（例えば、マイクロＴＬＢミスなど）を受信した場合に、演算部／命令制御部１１ａから送信されたアドレス変換要求をメインＴＬＢ２２に送信する。【００５６】
Ｌ２キャッシュ制御部３０は、Ｌ２キャッシュＲＡＭ３１を備え、Ｌ１キャッシュ制御部２０からＬ２キャッシュアクセスアドレスを取得した場合に、取得したＬ２キャッシュアクセスアドレスに対応するデータを、Ｌ２キャッシュＲＡＭ３１から読み出してＬ１キャッシュ制御部２０に出力する。Ｌ２キャッシュＲＡＭ３１は、Ｌ１キャッシュＲＡＭ２１より低速で主記憶部４０より高速であるとともに、Ｌ１キャッシュＲＡＭ２１より容量が大きく主記憶部４０より容量が小さいメモリであり、使用頻度の高いデータを記憶する。【００５７】
主記憶部４０は、ＣＰＵ１１によって利用されるデータ、命令および仮想アドレスから物理アドレスへの変換表（ページテーブル）を記憶する大容量のメインメモリであり、ＣＰＵ１１の演算部／命令制御部１１ａ、Ｌ１キャッシュ制御部２０やＬ２キャッシュ制御部３０からの要求に応答して、対応するデータを要求先の処理部に応答する。【００５８】
［演算処理装置におけるマイクロＴＬＢの回路構成］
次に、図４を用いて、演算処理装置におけるマイクロＴＬＢの回路構成について説明する。図４は、実施例１に係る演算処理装置におけるマイクロＴＬＢの回路構成を説明するための図である。【００５９】
図４に示すように、演算部／命令制御部１１ａからアクセス変換要求（ＴＬＢアクセス）がマイクロＴＬＢ２３に入力されると、アクセス変換要求に含まれる仮想アドレス[６３：１３]は、アドレス比較部２６に入力され、アクセス変換要求に含まれる実効コンテキストＩＤ[１：０]は、コンテキストＩＤ比較部２７に入力され、アクセス変換要求に含まれるスレッド情報は、スレッド比較部２８にそれぞれ入力される。そして、アドレス比較部２６は、入力された仮想アドレス[６３：１３]に一致する仮想アドレスを、記憶部２４に記憶されるＴＬＢ仮想アドレス[６３：１３]を参照して検索し、その結果をＡＮＤ回路（アドレス応答部２９）に出力する。【００６０】
同様に、コンテキストＩＤ比較部２７は、入力された実効コンテキストＩＤ[１：０]に一致する実効コンテキストＩＤを、記憶部２４に記憶されるＴＬＢ実効コンテキストＩＤ[１：０]を参照して検索し、その結果をＡＮＤ回路（アドレス応答部２９）に出力し、スレッド比較部２８は、入力されたスレッド情報に一致するスレッド情報を、記憶部２４に記憶されるスレッド情報を参照して検索し、その結果をＡＮＤ回路（アドレス応答部２９）に出力する。【００６１】
そして、ＡＮＤ回路は、アドレス比較部２６より入力されたエントリと、コンテキストＩＤ比較部２７より入力されたエントリと、スレッド比較部２８より入力されたエントリとが全て一致し、さらに、そのエントリが「有効」であることをＥｎｔｒｙ−Ｖａｌｉｄから取得すると、当該エントリに含まれる物理アドレスを応答する。一方、ＡＮＤ回路は、アドレス比較部２６より入力されたエントリと、コンテキストＩＤ比較部２７より入力されたエントリと、スレッド比較部２８より入力されたエントリとのいずれかが一致しない、一致したエントリが検索されなかった、一致したエントリが「無効」であった場合には、アドレス変換要求をメインＴＬＢ２２に出力する。【００６２】
［演算処理装置による処理］
次に、図５と図６とを用いて、演算処理装置による処理を説明する。図５は、実施例１に係る演算処理装置におけるマイクロＴＬＢへのエントリ登録処理の流れを示すフローチャートであり、図６は、実施例１に係る演算処理装置におけるマイクロＴＬＢのエントリ検索処理の流れを示すフローチャートである。【００６３】
（エントリ登録処理）
図５に示すように、演算部／命令制御部１１ａから入力されたアドレス変換要求に対してマイクロＴＬＢミスが発生すると（ステップＳ５０１肯定）、マイクロＴＬＢ２３のアドレス応答部２９は、メインＴＬＢ２２に対して、演算部／命令制御部１１ａから入力されたアドレス変換要求を送信する（ステップＳ５０２）。【００６４】
その後、入力されたアドレス変換要求に対する応答として物理アドレスがメインＴＬＢ２２から演算部／命令制御部１１ａに送信されるとともに、アドレス変換要求に対する応答である物理アドレスがマイクロＴＬＢ２３に入力されると（ステップＳ５０３肯定）、マイクロＴＬＢ２３の登録部２５は、入力された物理アドレスに対応付けて、仮想アドレス、実効コンテキストＩＤ、スレッド情報とを記憶部２４に格納する（ステップＳ５０４）。【００６５】
（エントリ検索処理）
図６に示すように、演算部／命令制御部１１ａからアドレス変換要求を受信すると（ステップＳ６０１肯定）、マイクロＴＬＢ２３は、アドレス変換要求に含まれる２ビットの実効コンテキストＩＤを、コンテキストを特定する１３ビットのコンテキスト値に変換することなく、アドレス変換要求に含まれる「仮想アドレス、実効コンテキストＩＤ、スレッド情報」との全てが一致するエントリをマイクロＴＬＢ２３の記憶部２４から検索する（ステップＳ６０２）。【００６６】
そして、全てが一致するエントリが検索され（ステップＳ６０３肯定）、さらに、当該エントリが「有効」であれば、マイクロＴＬＢ２３は、当該エントリに含まれる物理アドレス[４６：１３]を取得して、演算部／命令制御部１１ａに応答する（ステップＳ６０４）。【００６７】
一方、全てが一致するエントリが検索されなかった場合（ステップＳ６０３否定）、または、当該エントリが「有効」でない場合、マイクロＴＬＢ２３は、演算部／命令制御部１１ａから入力されたアドレス変換要求をメインＴＬＢ２２に送信する（ステップＳ６０５）。【００６８】
［実施例１による効果］
このように、実施例１によれば、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、メインＴＬＢに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストＩＤに対応付けてエントリとして保持するマイクロＴＬＢとを備え、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを演算部に応答し、エントリが検索されなかった場合に、アドレス変換要求をメインＴＬＢに送信するので、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。【００６９】
例えば、ＴＬＢへのアクセス変換要求（ＴＬＢアクセス）に使用される実効コンテキストＩＤをマイクロＴＬＢに登録して、検索することができる結果、１３ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。また、実効コンテキストＩＤを用いることで、シェアドコンテキストを用いた場合でも、シェアドコンテキストを検索する論理回路を別途用意する必要がない結果、実効コンテキストを比較する１つの論理回路だけで検索することができるので、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。【００７０】
また、実施例１によれば、マイクロＴＬＢは、物理アドレスと、仮想アドレスと、コンテキストＩＤとしてｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙまたはｎｕｃｌｅｕｓを示す２ビットのコンテキストＩＤとを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとに一致するエントリを検索するので、検索時に比較対象となるビット数をさらに削減することができる結果、性能をさらに向上させることが可能である。【００７１】
例えば、ＴＬＢへのアクセス変換要求（ＴＬＢアクセス）に使用される２ビットの実効コンテキストＩＤをマイクロＴＬＢに登録して、検索することができる結果、２ビットの比較を行えばよく、１３ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。【００７２】
また、実施例１によれば、演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用し、マイクロＴＬＢは、物理アドレスと、仮想アドレスと、コンテキストＩＤと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストＩＤを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストＩＤとスレッド情報とに一致するエントリをマイクロＴＬＢから検索するので、マルチスレッド方式を用いた場合でも、性能をさらに向上させることが可能である。
【実施例２】
【００７３】
さて、これまで実施例について説明したが、本実施例は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、（１）シングルスレッド方式への対応、（２）システム構成等、にそれぞれ区分けして異なる実施例を説明する。【００７４】
（１）シングルスレッド方式への対応
例えば、実施例１では、マルチスレッド方式に採用した演算処理装置を例に挙げて説明したが、本実施例はこれに限定されるものではなく、シングルスレッド方式を採用した演算処理装置にも本実施例を適用することができる。その場合、実施例１で説明したスレッド比較部を除いた構成またはスレッド比較部から出力される値を考慮しない手法を用いることで、シングルスレッド方式を採用した演算処理装置にも適用することができる。【００７５】
（２）システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、主記憶部からの物理アドレスを含むエントリの出力処理など）の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００７６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合（例えば、アドレス比較部とコンテキストＩＤ比較部とを統合するなど）して構成することができる。
【産業上の利用可能性】
【００７７】
以上のように、本実施例に係る演算処理装置、ＴＬＢ制御方法、ＴＬＢ制御プログラムおよび情報処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインＴＬＢと、メインＴＬＢに保持されるページテーブルの一部を保持するマイクロＴＬＢとを備え、プロセッサから出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロＴＬＢまたはメインＴＬＢに保持されるエントリから取得してプロセッサに応答することに有用であり、特に、アドレス検索に用いるビット数を削減し、性能を向上させることと、シェアドコンテキストを用いた場合においても、性能を向上させることに適する。
【図１】
2008155849.tif 000003
【図２】
2008155849.tif 000004
【図３】
2008155849.tif 000005
【図４】
2008155849.tif 000006
【図５】
2008155849.tif 000007
【図６】
2008155849.tif 000008
【図７】
2008155849.tif 000009
【国際調査報告】
2008155849.tif 000010
2008155849.tif 000011
2008155849.tif 000012
2008155849.tif 000013