(57)【要約】      （修正有）【課題】プロセス（コンテキスト）の切り替え時にエントリを無効化せずとも、アドレス変換に係る検索を適切なエントリだけを対象として行えるアドレス変換装置を提供する。【解決手段】アクセス要求したプロセスのコンテキストとエントリのコンテキストとが一致すると判定された場合にオンとされるマッチフラグ３６をエントリ毎に設け、アクセス要求で指定された仮想アドレスＶＡを物理アドレスＰＡに変換する場合に、マッチフラグ３６がオンであるエントリだけを対象としてアドレス変換に用いるエントリを検索する。アクセス要求したプロセスのコンテキストに対応するものでないエントリのマッチフラグ３６はオフされるので、プロセス（コンテキスト）の切り替え時にエントリを無効化しなくとも、アクセス要求したプロセスのコンテキストに対応するエントリだけを対象とした検索が可能となる。【選択図】図３
2013097671.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを実行する命令制御部からのアクセス要求に含まれる仮想アドレスを物理アドレスに変換するアドレス変換装置において、
仮想アドレスと物理アドレスとの対応関係を示す第１のアドレス情報と、前記第１のアドレス情報が有効であるかを示す有効情報と、前記第１のアドレス情報に対応するコンテキスト情報が前記アクセス要求に含まれるコンテキスト情報と一致するかを示す一致情報と、を保持する第１のエントリを複数有する第１のアドレス変換部と、
前記複数の第１のエントリの各々に保持された第１のアドレス情報のアドレスモードを示すコンテキスト情報を、前記複数の第１のエントリの各々に対応して保持する情報保持部と、
前記アクセス要求に含まれるコンテキスト情報と、前記情報保持部に保持されたコンテキスト情報を比較するとともに、前記比較した結果が一致する場合、一致する前記情報保持部に保持されたコンテキスト情報に対応する第１のエントリに保持された一致情報を、コンテキスト情報の一致を示すように変更する比較部と、
前記複数の第１のエントリのうち、有効情報が有効を示しかつ一致情報が一致を示す第１のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索し、検索した第１のアドレス情報に含まれる物理アドレスを出力する制御部と、
を有することを特徴とするアドレス変換装置。
【請求項２】
前記アドレス変換装置はさらに、
仮想アドレスと物理アドレスとの対応関係を示す第２のアドレス情報を保持する第２のエントリを複数有する第２のアドレス変換部を有し、
前記制御部は、
前記複数の第１のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索できない場合、前記複数の第２のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第２のアドレス情報を検索し、検索した第２のアドレス情報に含まれる物理アドレスを出力することを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
前記命令制御部は、
複数のステージを有するパイプラインを備え、
前記比較部は、
前記パイプラインが有する複数のステージのうち、第１のステージで、前記アクセス要求に含まれるコンテキスト情報と、前記情報保持部に保持されたコンテキスト情報を比較し、
前記制御部は、
前記複数のステージにおける前記第１のステージの次の第２のステージで、前記複数の第１のエントリのうち、有効情報が有効を示しかつ一致情報が一致を示す第１のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索することを特徴とする請求項１又は２記載のアドレス変換装置。
【請求項４】
前記比較部は、
前記アクセス要求に含まれるコンテキスト情報と、前記情報保持部が有する複数の第１のエントリに保持されたコンテキスト情報の全てを同時に比較することを特徴とする請求項１〜３の何れか１項に記載のアドレス変換装置。
【請求項５】
前記制御部は、
前記複数の第１のエントリのうち、前記複数の第１のエントリの全てから、有効情報が有効を示しかつ一致情報が一致を示し、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を同時に検索することを特徴とする請求項１〜４の何れか１項に記載のアドレス変換装置。
【請求項６】
前記制御部は、
プロセスの切り替え時に、切り替え後のプロセスに対応するコンテキスト情報を保持する第１のエントリの有効情報が有効である旨を示すように変更することを特徴とする請求項１〜５の何れか１項に記載のアドレス変換装置。
【請求項７】
仮想アドレスと物理アドレスとの対応関係を示す第１のアドレス情報と、前記第１のアドレス情報が有効であるかを示す有効情報と、前記第１のアドレス情報に対応するコンテキスト情報がアクセス要求に含まれるコンテキスト情報と一致するかを示す一致情報を保持する第１のエントリを複数有する第１のアドレス変換部と、前記複数の第１のエントリの各々に保持された第１のアドレス情報のアドレスモードを示すコンテキスト情報を、前記複数の第１のエントリの各々に対応して保持する情報保持部を有し、プロセスを実行する命令制御部からのアクセス要求に含まれる仮想アドレスを物理アドレスに変換するアドレス変換装置の制御方法において、
前記アドレス変換装置が有する比較部が、前記アクセス要求に含まれるコンテキスト情報と、前記情報保持部に保持されたコンテキスト情報を比較し、
前記比較した結果が一致する場合、前記比較部が、一致した前記情報保持部に保持されたコンテキスト情報に対応する第１のエントリに保持された一致情報を、コンテキスト情報の一致を示すように変更し、
前記アドレス変換装置が有する制御部が、前記複数の第１のエントリのうち、有効情報が有効を示しかつ一致情報が一致を示す第１のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索し、
前記制御部が、前記検索した第１のアドレス情報に含まれる物理アドレスを出力する、
ことを特徴とするアドレス変換装置の制御方法。
【請求項８】
プロセスを実行するとともに、仮想アドレスを含むアクセス要求を出力する命令制御部と、
仮想アドレスと物理アドレスとの対応関係を示す第１のアドレス情報と、前記第１のアドレス情報が有効であるかを示す有効情報と、前記第１のアドレス情報に対応するコンテキスト情報が前記アクセス要求に含まれるコンテキスト情報と一致するかを示す一致情報と、を保持する第１のエントリを複数有する第１のアドレス変換部と、
前記複数の第１のエントリの各々に保持された第１のアドレス情報のアドレスモードを示すコンテキスト情報を、前記複数の第１のエントリの各々に対応して保持する情報保持部と、
前記アクセス要求に含まれるコンテキスト情報と、前記情報保持部に保持されたコンテキスト情報を比較するとともに、前記比較した結果が一致する場合、一致する前記情報保持部に保持されたコンテキスト情報に対応する第１のエントリに保持された一致情報を、コンテキスト情報の一致を示すように変更する比較部と、
前記複数の第１のエントリのうち、有効情報が有効を示しかつ一致情報が一致を示す第１のエントリから、前記アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索し、検索した第１のアドレス情報に含まれる物理アドレスを出力する制御部と、
を有することを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置に関する。
【背景技術】
【０００２】
計算機では、実際の物理メモリが提供可能なメモリ空間を越えるメモリ空間を利用するプログラムの走行や、複数の処理を並行して行うマルチタスクの処理のために仮想記憶が利用される。演算処理装置としてのプロセッサが仮想記憶モードで動作しているとき、プロセッサによるメインメモリ等へのアクセスは、プロセッサから出力された仮想アドレス（ＶＡ：Virtual Address）を物理アドレス（ＰＡ：Physical Address）に変換して行われる。
【０００３】
この仮想アドレスから物理アドレスへの変換を、アクセスのたびにメインメモリ（主記憶）に格納されたアドレス変換テーブルを参照して行うと性能の低下を招いてしまう。そこで、仮想アドレスから物理アドレスへのアドレス変換テーブルの情報の一部を保持（キャッシュ）するアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）を設け、物理アドレスへの変換を高速に行う手法がとられる。
【０００４】
また、ＴＬＢのアクセスをさらに効率的に行うために、容量が小さい（エントリ数が少ない）が高速にアクセス可能なマイクロＴＬＢと、低速かつ大容量（エントリ数が多い）のメインＴＬＢとからなる２階層の構成を採用することが多くなってきている。プロセッサからメインメモリ等へのアクセス時には、まずマイクロＴＬＢが参照され、仮想アドレスに対応する情報が見つからなければ、メインＴＬＢが参照される。さらに、メインＴＬＢに仮想アドレスに対応する情報が見つからなければ、メインメモリのアドレス変換テーブルが参照される。高い性能を求められるプロセッサにおいては、マイクロＴＬＢの実装面積、性能、高速アクセスなどの面で様々な工夫が行われている。
【０００５】
マイクロＴＬＢの一例を図１０に示す。図１０に示すマイクロＴＬＢは、後述する３つのアドレスモードをもつアーキテクチャにおいて、各エントリが保持するアドレス情報のアドレスモードを示す２ビットの情報をコンテキストＩＤとして登録し、複数のアドレスモードについてアドレス変換を行う。
【０００６】
図１０において、１０１はＣＡＭ（Content Addressable Memory：連想メモリ）部である。ＣＡＭ部１０１は、タグ部とデータ部を有する。タグ部には、エントリが有効であるか無効であるかを示す有効フラグ（Ｖ）１０２、コンテキストＩＤ（ＣＴＩＤＲ＜ｉ＞）１０３、及び仮想アドレス（ＶＡＤ＜ｉ＞）１０４がエントリ（Ｅｎｔｒｙ）＜ｉ＞として保持される。また、データ部には、仮想アドレス（ＶＡＤ＜ｉ＞）１０４に対応する物理アドレス（ＰＡＤ＜ｉ＞）１０５がエントリ＜ｉ＞として保持される。なお、ｉは添え字であり、ｉ＝１、２、３、…、Ｎの自然数である。また、１０６はＣＰＵが有するレジスタの値等のＣＰＵの内部状態を表すコンテキストを保持するコンテキストレジスタである。コンテキストレジスタ１０６は、第１〜第３のレジスタ１０６−１〜１０６−３を有する。
【０００７】
第１のアドレスモードのコンテキストＩＤを例えば“００”とし、第１のアドレスモードのコンテキスト（ＣＴＸＥａ）が、コンテキストレジスタ１０６の第１のレジスタ１０６−１に保持される。また、第２のアドレスモードのコンテキストＩＤを例えば“０１”とし、第２のアドレスモードのコンテキスト（ＣＴＸＥｂ）が、コンテキストレジスタ１０６の第２のレジスタ１０６−２に保持される。同様に、第３のアドレスモードのコンテキストＩＤを例えば“１０”とし、第３のアドレスモードのコンテキスト（ＣＴＸＥｃ）が、コンテキストレジスタ１０６の第３のレジスタ１０６−３に保持される。ここで、コンテキストは、ＯＳ等が動かすプロセスを識別するための情報（プロセスを特定する情報）である。
【０００８】
プロセッサによるメインメモリ等へのアクセス時には、プロセッサからのアクセス要求に含まれる仮想アドレス及びコンテキストＩＤを用いてマイクロＴＬＢを検索する。詳細には、アクセス要求に係る仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）及びコンテキストＩＤ（ＣＴＩＤ）を検索用のタグとして使用し、ＣＡＭ部１０１の全エントリ（エントリ＜１＞〜エントリ＜Ｎ＞）を並行動作により同時に検索する。仮想アドレスＶＡにおける上位部ＶＡＵ（ＶＰＮ）は仮想ページ番号に相当する部分であり、仮想アドレスＶＡにおける残りの下位部ＶＡＬ（ＰＯＦ）はページ内オフセットに相当する部分である。
【０００９】
検索の結果、有効フラグ（Ｖ）１０２が有効を示し、かつコンテキストＩＤ（ＣＴＩＤ）とコンテキストＩＤ（ＣＴＩＤＲ）、及び仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）と仮想アドレスＶＡＤがともに一致するエントリがあれば、ＴＬＢエントリヒットとする。そして、ヒットしたエントリにおける物理アドレスＰＡＤを出力し、それを上位部ＰＡＵ（ＰＰＮ）として下位部ＰＡＬ（ＰＯＦ）と連結して、変換後のアドレス、すなわち物理アドレスＰＡを求める。一方、マイクロＴＬＢのエントリがヒットしなかった場合には、アクセス要求に係る仮想アドレス及びコンテキストをメインＴＬＢに供給し、供給した仮想アドレス及びコンテキストを用いたメインＴＬＢの検索が行われる。
【００１０】
ここで、物理アドレスＰＡにおける上位部ＰＡＵ（ＰＰＮ）は物理ページ番号に相当する部分であり、物理アドレスＰＡにおける下位部ＰＡＬ（ＰＯＦ）はページ内オフセットに相当する部分である。また、ページ内オフセットに相当する下位部ＰＡＬ（ＰＯＦ）は、仮想アドレスＶＡでページ内オフセットに相当する下位部ＶＡＬ（ＰＯＦ）を何ら変換していないものであり、等しいデータ（アドレス値）である。
【００１１】
現在実行しているプロセスのＩＤと情報が保存されたときのプロセスＩＤとを比較し、比較したプロセスのＩＤが一致する場合にのみ、物理アドレスに変換する仮想アドレスと保存されている仮想アドレスとの比較を行うようにしたＴＬＢが提案されている。また、プロセッサで扱うプロセスがＴＬＢのプロセスＩＤ部では扱えない数になった場合にＴＬＢにおけるアドレスの情報を選択的に無効にするＴＬＢが提案されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０００−１６３３１８号公報
【特許文献２】特開昭６３−８１５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
一般に、複数のプロセスが動作する場合には、プロセス毎に異なる仮想アドレス空間が割り当てられる。すなわち、プロセス毎に仮想アドレスと物理アドレスとの対応関係が異なる。したがって、同じアドレスモードでプロセスを切り替えることによりコンテキストスイッチが発生し、コンテキストレジスタの情報が書き替えられると、書き替え前にマイクロＴＬＢに登録されていたアドレスモードの情報（エントリ）は、異なるコンテキストの情報であるので使用できない。そのため、書き替え前に登録されていたアドレスモードのマイクロＴＬＢに登録済みの情報（エントリ）については、有効フラグ（Ｖ）１０２を落とすことによりすべて無効化する。
【００１４】
つまり、同じアドレスモードでコンテキストが（Ａ）から（Ｂ）に変わった場合には、そのアドレスモードのマイクロＴＬＢの登録情報（エントリ）はすべて無効化される。その後、再度コンテキストが変わり、コンテキストが（Ｂ）から（Ａ）に戻った場合には、コンテキストが（Ａ）の情報はマイクロＴＬＢに登録されていないため、マイクロＴＬＢのエントリがヒットせずにアドレス変換に時間を要する結果となり、性能の低下を招いていた。例えば、ＯＳ（オペーレーティングシステム）のいわゆる特権モードとユーザモードの切り替えが頻繁に行われると、マイクロＴＬＢの登録情報の無効化（フラッシュ）が頻繁に発生し、性能が低下してしまう。
【００１５】
１つの側面では、本発明は、アドレス変換に係る検索範囲を絞ることを可能とすることを目的とする。
【課題を解決するための手段】
【００１６】
アドレス変換装置の一態様は、プロセスを実行する命令制御部からのアクセス要求に含まれる仮想アドレスを物理アドレスに変換するアドレス変換装置において、仮想アドレスと物理アドレスとの対応関係を示す第１のアドレス情報と、第１のアドレス情報が有効であるかを示す有効情報と、第１のアドレス情報に対応するコンテキスト情報がプロセスを実行する命令制御部からのアクセス要求に含まれるコンテキスト情報と一致するかを示す一致情報とを保持する第１のエントリを複数有する第１のアドレス変換部と、複数の第１のエントリの各々に保持された第１のアドレス情報のアドレスモードを示すコンテキスト情報を、複数の第１のエントリの各々に対応して保持する情報保持部と、アクセス要求に含まれるコンテキスト情報と、情報保持部に保持されたコンテキスト情報を比較するとともに、比較した結果が一致する場合、一致する情報保持部に保持されたコンテキスト情報に対応する第１のエントリに保持された一致情報を、コンテキスト情報の一致を示すように変更する比較部と、複数の第１のエントリのうち、有効情報が有効を示しかつ一致情報が一致を示す第１のエントリから、アクセス要求に含まれる仮想アドレスと同一の仮想アドレスを含む第１のアドレス情報を検索し、検索した第１のアドレス情報に含まれる物理アドレスを出力する制御部とを有する。
【発明の効果】
【００１７】
一実施態様では、アドレス変換に係る検索範囲を絞ることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態におけるプロセッサを含むプロセッサシステムの構成例を示す図である。
【図２】本実施形態におけるＴＬＢの構成例を示す図である。
【図３】本実施形態におけるマイクロＴＬＢの構成例を示す図である。
【図４】本実施形態におけるコンテキスト比較部を説明するための図である。
【図５】本実施形態におけるＣＡＭ部を説明するための図である。
【図６】本実施形態におけるメインＴＬＢの構成例を示す図である。
【図７】ＴＬＢ検索に係るパイプライン処理を説明するための図である。
【図８】本実施形態におけるＴＬＢ検索処理の一例を示すフローチャートである。
【図９】本実施形態におけるＴＬＢ検索処理の一例を示すフローチャートである。
【図１０】マイクロＴＬＢの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
図１は、本発明の一実施形態におけるプロセッサシステムの構成例を示す図である。
図１において、１１は演算処理装置としてのＣＰＵ（Central Processing Unit）であり、１７は主記憶部である。ＣＰＵ１１は、命令制御部・演算部１２と、１次キャッシュ（Ｌ１キャッシュ）１４及びアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）部１５を有する１次キャッシュ部１３と、２次キャッシュ（Ｌ２キャッシュ）１６とを有する。ＣＰＵ１１（命令制御部・演算部１２、１次キャッシュ部１３、２次キャッシュ１６）は、例えば１つのチップに形成され、図示しないバス等を介してメインメモリ等の主記憶部１７と接続されている。
【００２１】
命令制御部・演算部１２は、ＣＰＵ１１が実行する命令処理の制御や命令に基きデータに対する演算を行う。命令制御部・演算部１２は、処理すべき命令や命令の対象となるデータを記憶装置から読み込み、読み込んだ命令を解釈して解釈結果に従い演算等を行う。１次キャッシュ１４、２次キャッシュ１６、主記憶部１７は、命令制御部・演算部１２が読み込む命令やデータ、及び命令制御部・演算部１２から出力される演算結果等を記憶する記憶装置である。
【００２２】
１次キャッシュ１４は、２次キャッシュ１６に記憶される情報（命令、データ等）の一部が記憶され、命令制御部・演算部１２からの要求に対して２次キャッシュ１６よりも高速に命令やデータ等を応答することが可能である。２次キャッシュ１６には、主記憶部１７に記憶される命令、データ等の一部が記憶される。また、主記憶部１７には、仮想アドレスから物理アドレスへのアドレス変換を行う際に用いられるアドレス変換テーブル（仮想アドレスと物理アドレスとの対応関係を示す情報）が記憶されている。ＴＬＢ部１５は、この仮想アドレスから物理アドレスへのアドレス変換テーブルの情報の一部を保持（キャッシュ）し、命令制御部・演算部１２から出力された仮想アドレスを物理アドレスに変換する。
【００２３】
データの読み込み等の要求が命令制御部・演算部１２から発行されると、まずＴＬＢ部１５にて仮想アドレスを物理アドレスに変換し、物理アドレスを用いて記憶装置（１次キャッシュ１４、２次キャッシュ１６、主記憶部１７）に対してアクセスを行う。そして、要求に対応するデータが１次キャッシュ１４に存在する場合には、１次キャッシュ１４から命令制御部・演算部１２にデータが供給される。要求に対応するデータが１次キャッシュ１４に存在しない場合には、２次キャッシュ１６を検索し、２次キャッシュ１６に存在すれば、２次キャッシュ１６から１次キャッシュ１４を介して命令制御部・演算部１２にデータが供給される。要求に対応するデータが２次キャッシュ１６にも存在しない場合には、主記憶部１７から２次キャッシュ１６及び１次キャッシュ１４を介して命令制御部・演算部１２にデータが供給される。
【００２４】
図２は、ＴＬＢ部１５の構成例を示す図である。本実施形態におけるＴＬＢ部１５は、データキャッシュと同様に２階層の構造が用いられ、容量が小さい（エントリ数が少ない）が高速にアクセス可能なマイクロＴＬＢ２１と、低速かつ大容量（エントリ数が多い）のメインＴＬＢ２２とを有する。例えば、マイクロＴＬＢ２１は参照方式としてフルアソシアティブ方式が用いられ、メインＴＬＢ２２は参照方式としてセットアソシアティブ方式が用いられる。
【００２５】
ＴＬＢ部１５は、命令制御部・演算部１２から要求ＲＥＱが発行されると、要求ＲＥＱにおいて指定された仮想アドレスＶＡを用いて情報を検索し、仮想アドレスＶＡを物理アドレスＰＡに変換する。本実施形態では、要求ＲＥＱにおいて指定された仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）とコンテキストＣＴＸＴを用いてＴＬＢ部１５での検索を行う。ここで、仮想アドレスＶＡにおける上位部ＶＡＵ（ＶＰＮ）は仮想ページ番号に相当する部分であり、仮想アドレスＶＡにおける残りの下位部ＶＡＬ（ＰＯＦ）はページ内オフセットに相当する部分である。例えば、仮想アドレスＶＡを６４ビット（＜６３：０＞）とし、上位部ＶＡＵ（ＶＰＮ）を６３〜１３ビット目（＜６３：１３＞）とし、下位部ＶＡＬ（ＰＯＦ）を１２〜０ビット目（＜１２：０＞）とする。コンテキストＣＴＸＴ（例えば１３ビット）は、ＯＳ等が動かすプロセスを識別するための情報（プロセスを特定する情報）である。
【００２６】
まず、仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）とコンテキストＣＴＸＴを用いてマイクロＴＬＢ２１を検索し、対応する物理アドレスの情報（物理アドレスＰＡの上位部ＰＡＵ（ＰＰＮ））が検索されれば、検索された物理アドレスの情報が出力される。出力された情報を上位部ＰＡＵ（ＰＰＮ）として下位部ＰＡＬ（ＰＯＦ）と連結して、変換後のアドレスである物理アドレスＰＡが求められる。ここで、物理アドレスＰＡにおける上位部ＰＡＵ（ＰＰＮ）は物理ページ番号に相当する部分であり、物理アドレスＰＡにおける下位部ＰＡＬ（ＰＯＦ）はページ内オフセットに相当する部分である。また、ページ内オフセットに相当する下位部ＰＡＬ（ＰＯＦ）は、仮想アドレスＶＡでページ内オフセットに相当する下位部ＶＡＬ（ＰＯＦ）を何ら変換していないものであり、等しいデータ（アドレス値）である。例えば、物理アドレスＰＡを４８ビット（＜４７：０＞）とし、上位部ＰＡＵ（ＰＰＮ）を４７〜１３ビット目（＜４７：１３＞）とし、下位部ＰＡＬ（ＰＯＦ）を１２〜０ビット目（＜１２：０＞）とする。
【００２７】
マイクロＴＬＢ２１を検索した結果、対応する物理アドレスの情報がマイクロＴＬＢ２１にない場合には、仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）とコンテキストＣＴＸＴをメインＴＬＢ２２に供給して、メインＴＬＢ２２を検索する。対応する物理アドレスの情報（物理アドレスＰＡの上位部ＰＡＵ（ＰＰＮ））がメインＴＬＢ２２にあれば、その情報ＰＨＹＡＤがメインＴＬＢ２２からマイクロＴＬＢ２１に出力され、マイクロＴＬＢ２１に登録される。そして、再度マイクロＴＬＢ２１の検索を行い、対応する物理アドレスの情報（物理アドレスＰＡの上位部ＰＡＵ（ＰＰＮ））が出力される。なお、メインＴＬＢ２２からの情報を登録するマイクロＴＬＢ２１のエントリは、例えば後述する有効フラグやＬＲＵアルゴリズム等を用いて適宜決定すれば良い。
【００２８】
図３は、マイクロＴＬＢ２１の構成例を示す図である。なお、図３には、第１〜第３の３つのアドレスモードをもつアーキテクチャにおけるマイクロＴＬＢ２１を一例として示している。マイクロＴＬＢ２１は、コンテキスト比較部３１、コンテキストレジスタ３２、コンテキストアレイ３３、及びＣＡＭ（Content Addressable Memory：連想メモリ）部３４を有する。
【００２９】
コンテキストレジスタ３２は、第１〜第３のレジスタ３２−１〜３２−３を有する。第１のレジスタ３２−１には、第１のアドレスモードのコンテキスト（ＣＴＸＥａ）が保持される。同様に、第２のレジスタ３２−２には、第２のアドレスモードのコンテキスト（ＣＴＸＥｂ）が保持され、第３のレジスタ３２−３には、第３のアドレスモードのコンテキスト（ＣＴＸＥｃ）が保持される。
【００３０】
コンテキストアレイ３３は、ＣＡＭ部３４に保持されるエントリと同数のレジスタ３３−ｉを有する。なお、ｉは添え字であり、ｉ＝１、２、３、…、Ｎの自然数である（以下の説明においても同様）。言い換えれば、コンテキストアレイ３３のレジスタ３３−ｉは、ＣＡＭ部３４に保持される各エントリ（Ｅｎｔｒｙ）＜ｉ＞に対応して設けられている。レジスタ３３−ｉの各々には、ＣＡＭ部３４の対応するエントリ＜ｉ＞のコンテキスト（ＣＴＸＲ＜ｉ＞）が保持される。
【００３１】
コンテキスト比較部３１は、コンテキストＩＤ（ＣＴＩＤ）、コンテキストレジスタ３２に保持されているコンテキスト、及びコンテキストアレイ３３に保持されているコンテキストが入力される。コンテキストＩＤ（ＣＴＩＤ）は、アドレスモードを示す２ビットの情報である。
【００３２】
コンテキスト比較部３１は、コンテキストアレイ３３のすべてのエントリについて、コンテキストレジスタ３２に保持されているコンテキストとコンテキストアレイ３３に保持されているコンテキストとをエントリ毎に比較する。すなわち、第１〜第３のレジスタ３２−１〜３２−３に保持されているコンテキスト（ＣＴＸＥａ、ＣＴＸＥｂ、ＣＴＸＥｃ）とレジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）とを比較する。
【００３３】
コンテキスト比較部３１は、現在のアドレスモードのコンテキストとレジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）とが一致した場合には、そのエントリに対応するコンテキストマッチ信号ＣＴＸＭＴをアクティブにして出力する。つまり、コンテキスト比較部３１は、ＣＡＭ部３４に保持されているエントリのコンテキストが現在のアドレスモードのコンテキスト（アクセス要求したプロセスのコンテキスト）と一致する場合にコンテキストマッチ信号ＣＴＸＭＴをアクティブにして出力する。
【００３４】
図４にコンテキスト比較部の構成例を示す。なお、図４においては、１つのエントリ分に対応する構成のみを示しているが、コンテキスト比較部は図４に示す構成をＣＡＭ部３４に保持されているエントリ数分有している。
【００３５】
図４において、４１、４２、４３は比較器である。比較器４１は、コンテキストレジスタ３２の第１のレジスタ３２−１に保持されているコンテキスト（ＣＴＸＥａ）と、コンテキストアレイ３３のレジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）とを比較する。比較器４２は、コンテキストレジスタ３２の第２のレジスタ３２−２に保持されているコンテキスト（ＣＴＸＥｂ）と、コンテキストアレイ３３のレジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）とを比較する。比較器４３は、コンテキストレジスタ３２の第３のレジスタ３２−３に保持されているコンテキスト（ＣＴＸＥｃ）と、コンテキストアレイ３３のレジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）とを比較する。比較器４１、４２、４３は、対象のコンテキストが一致した場合に、出力をアクティブにする。
【００３６】
そして、比較器４１、４２、４３からの比較結果に応じた出力が、コンテキストＩＤ（ＣＴＩＤ）に応じて選択され、コンテキストマッチ信号ＣＴＸＭＴ＜ｉ＞として出力される。第１のアドレスモードのときには比較器４１の出力が選択されてコンテキストマッチ信号ＣＴＸＭＴ＜ｉ＞として出力される。また、第２のアドレスモードのときには比較器４２の出力が、第３のアドレスモードのときには比較器４３の出力がそれぞれコンテキストマッチ信号ＣＴＸＭＴ＜ｉ＞として選択され、出力される。
【００３７】
図３に戻り、ＣＡＭ部３４は、タグ部とデータ部を有する。タグ部には、有効フラグ（Ｖ）３５、マッチフラグ（Ｍ）３６、及び仮想アドレス（ＶＡＤ＜ｉ＞）３７がエントリ＜ｉ＞として保持される。また、データ部には、仮想アドレス（ＶＡＤ＜ｉ＞）３７に対応する物理アドレス（ＰＡＤ＜ｉ＞）３８がエントリ＜ｉ＞として保持される。有効フラグ（Ｖ）３５は、エントリが有効であるか無効であるかを示すものである。例えば、エントリが有効である場合には有効フラグ（Ｖ）３５を“１”とし、エントリが無効である場合には有効フラグ（Ｖ）３５を“０”とする。なお、本実施形態では、コンテキストレジスタが書き換えられても、書き換え前のコンテキストに対応するエントリの有効フラグ（Ｖ）３５はおとされずに（無効化されずに）維持される。マッチフラグ（Ｍ）３６は、エントリが現在のアドレスモードのコンテキストの情報であるか否かを示すものであり、対応するコンテキストマッチ信号ＣＴＸＭＴ＜ｉ＞がアクティブであればマッチフラグ（Ｍ）３６がオン（“１”）になる。
【００３８】
ＣＡＭ部３４は、要求ＲＥＱにおいて指定された仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）を検索用のタグとして使用し、全エントリ（エントリ＜１＞〜エントリ＜Ｎ＞）を並行動作により同時に検索する。そして、有効フラグ（Ｖ）３５が有効を示すとともにマッチフラグ（Ｍ）３６がオンであり、かつ仮想アドレスＶＡの上位部ＶＡＵ（ＶＰＮ）と仮想アドレスＶＡＤが一致する場合には、対応するエントリのエントリマッチ信号ＥＮＴＭＴをアクティブにして出力する。エントリマッチ信号ＥＮＴＭＴは、ＴＬＢエントリがヒットした場合にアクティブにされ、ミスの場合にインアクティブにされる。
【００３９】
エントリマッチ信号ＥＮＴＭＴの一つがアクティブである場合、すなわちＴＬＢエントリがヒットした場合には、ヒットしたエントリにおける物理アドレスＰＡＤがＣＡＭ部３４より出力される。そして、出力された物理アドレスＰＡＤを上位部ＰＡＵ（ＰＰＮ）として下位部ＰＡＬ（ＰＯＦ）と連結して、変換後のアドレスである物理アドレスＰＡを求める。なお、マイクロＴＬＢのエントリがヒットしなかった場合には、要求ＲＥＱにおいて指定された仮想アドレス及びコンテキストをメインＴＬＢに供給する。
【００４０】
図５は、ＣＡＭ部３４の内部構成例を示す図である。なお、図５においては、１つのエントリ分に対応するＴＬＢエントリのヒット／ミス判定に係る構成のみを示しているが、ＣＡＭ部３４は図５に示す構成をエントリ数分有している。
【００４１】
図５において、５１は比較器であり、５２は３入力の論理積演算回路（ＡＮＤ回路）である。比較器５１は、要求ＲＥＱにおいて指定された仮想アドレスＶＡの上位部ＶＡＵとエントリの仮想アドレス（ＶＡＤ＜ｉ＞）３７とを比較し、一致した場合には出力をアクティブ（真）にする。ＡＮＤ回路５２は、有効フラグ（Ｖ）３５、マッチフラグ（Ｍ）３６、及び比較器５１の出力が入力され、演算結果をエントリマッチ信号ＥＮＴＭＴ＜ｉ＞として出力する。
【００４２】
図６は、メインＴＬＢ２２の構成例を示す図である。図６には、２ｗａｙセットアソシアティブ方式を用いたメインＴＬＢ２２を一例として示している。図６において、６１はタグ部であり、６２はデータ部であり、６３−０、６３−１は比較器である。タグ部６１は、ｗａｙ０のタグ部６１−０及びｗａｙ１のタグ部６１−１を有する。同様に、データ部６２は、ｗａｙ０のデータ部６２−０及びｗａｙ１のデータ部６２−１を有する。
【００４３】
ｗａｙ０のタグ部６１−０には、エントリが有効であるか無効であるかを示す有効フラグ（Ｖ）、コンテキスト（ＣＴＸ０＜ｊ＞）、及び仮想アドレス（ＶＡＤＡ０＜ｊ＞）がエントリとして保持される。同様に、ｗａｙ１のタグ部６１−１には、エントリが有効であるか無効であるかを示す有効フラグ（Ｖ）、コンテキスト（ＣＴＸ１＜ｊ＞）、及び仮想アドレス（ＶＡＤＡ１＜ｊ＞）がエントリとして保持される。また、ｗａｙ０のデータ部６２−０には、仮想アドレス（ＶＡＤＡ０＜ｊ＞）に対応する物理アドレス（ＰＡＤ０＜ｊ＞）がエントリとして保持され、ｗａｙ１のデータ部６２−１には、仮想アドレス（ＶＡＤＡ１＜ｊ＞）に対応する物理アドレス（ＰＡＤ１＜ｊ＞）がエントリとして保持される。なお、ｊは添え字であり、ｊ＝１、２、３、・・・の自然数である。
【００４４】
メインＴＬＢ２２では、要求ＲＥＱにおいて指定された仮想アドレスＶＡの上位部ＶＡＵの一部である第２の上位部ＶＡＵＢをインデックスタグＩＮＤＥＸとしてタグ部６１−０、６１−１及びデータ部６２−０、６２−１がそれぞれ参照される。タグ部６１−０、６１−１からはインデックスタグＩＮＤＥＸにより一意に特定されるエントリが比較器６３−０、６３−１に出力される。
【００４５】
比較器６３−０は、コンテキストＣＴＸＴ及び仮想アドレスＶＡの上位部ＶＡＵの一部である第１の上位部ＶＡＵＡと、タグ部６１−０から出力されたエントリのコンテキスト（ＣＴＸ０＜ｊ＞）及び仮想アドレス（ＶＡＤＡ０＜ｊ＞）とを比較する。その結果、コンテキストＣＴＸＴとコンテキスト（ＣＴＸ０＜ｊ＞）、及び仮想アドレスＶＡの第１の上位部ＶＡＵＡと仮想アドレス（ＶＡＤＡ０＜ｊ＞）がともに一致し、かつ有効フラグ（Ｖ）が有効を示している場合には、エントリヒットとする。これにより、インデックスタグＩＮＤＥＸにより一意に特定され、データ部６２−０から出力された物理アドレス（ＰＡＤ０＜ｊ＞）が、対応する物理アドレスＰＨＹＡＤとしてマイクロＴＬＢに出力される。
【００４６】
また、比較器６３−１は、コンテキストＣＴＸＴ及び仮想アドレスＶＡの第１の上位部ＶＡＵＡと、タグ部６１−１から出力されたエントリのコンテキスト（ＣＴＸ１＜ｊ＞）及び仮想アドレス（ＶＡＤＡ１＜ｊ＞）とを比較する。その結果、コンテキストＣＴＸＴとコンテキスト（ＣＴＸ１＜ｊ＞）、及び仮想アドレスＶＡの第１の上位部ＶＡＵＡと仮想アドレス（ＶＡＤＡ１＜ｊ＞）がともに一致し、かつ有効フラグ（Ｖ）が有効を示している場合には、エントリヒットとする。これにより、インデックスタグＩＮＤＥＸにより一意に特定され、データ部６２−１から出力された物理アドレス（ＰＡＤ１＜ｊ＞）が、対応する物理アドレスＰＨＹＡＤとしてマイクロＴＬＢに出力される。
【００４７】
図７は、本実施形態におけるＴＬＢ検索に係るパイプライン処理を説明するための図である。図７には、マイクロＴＬＢではエントリがヒットせずにメインＴＬＢでエントリヒットして、そのデータをマイクロＴＬＢに書き込むまでの処理を一例として示している。図７において、Ｐステージ及びＴステージの処理は、マイクロＴＬＢのパイプラインに係る処理であり、ＭＰステージ、ＭＴステージ、ＭＭステージ、ＭＢステージ及びＭＲステージの処理は、メインＴＬＢのパイプラインに係る処理である。
【００４８】
Ｐステージ（コンテキストアレイアクセスステージ）では、マイクロＴＬＢにおいてコンテキストアレイ３３に対するアクセスを行う。そして、コンテキストレジスタ３２に保持されているコンテキストとコンテキストアレイ３３に保持されているコンテキストの比較がコンテキスト比較部３１により行われる。すなわち、マイクロＴＬＢ２１のＣＡＭ部３４に保持されているエントリ＜ｉ＞のコンテキストがアクセス要求したプロセスのコンテキスト（現在のアドレスモードのコンテキスト）と一致するか否かの判定を行う。続く、Ｔステージ（マイクロＴＬＢアクセスステージ）では、マイクロＴＬＢにおいてＣＡＭ部３４に対するアクセスを行う。要求ＲＥＱにおいて指定された仮想アドレスＶＡに対応する物理アドレスＰＡの情報を持つエントリが、ＣＡＭ部３４に保持されているエントリの中に存在するか検索を行う。
【００４９】
検索の結果、指定された仮想アドレスＶＡに対応する物理アドレスＰＡの情報を持つエントリがマイクロＴＬＢ２１（ＣＡＭ部３４）に存在しない、すなわちヒットしない場合には、メインＴＬＢに対して要求を発行しメインＴＬＢのパイプラインに係る処理に移る。ＭＰステージ（プライオリティステージ）では、要求（リクエスト）がいくつかあるので、その選択を行う。ＭＴステージ（メインＴＬＢアクセスステージ）では、仮想アドレスＶＡの一部をインデックスタグとして使用し、メインＴＬＢ２２のメモリ（タグ部６１、データ部６２）に対するアクセスを行う。ＭＭステージ（メインＴＬＢマッチステージ）では、メインＴＬＢ２２のメモリ（タグ部６１）から読み出された結果の中に、要求ＲＥＱにおいて指定された仮想アドレスＶＡ等に対応するものが存在するか、マッチ回路である比較器６３−０、６３−１により判定する。ＭＢステージ（エントリセレクトステージ）では、ＭＭステージでの判定の結果、指定された仮想アドレスＶＡ等に対応するものが存在すると判定された場合に、メモリ（データ部６２）から読み出された対応するデータが選択される。ＭＲステージ（マイクロＴＬＢライトステージ）では、ＭＢステージで選択されたデータをマイクロＴＬＢ２１に書き込む（登録する）。ＭＲステージにおけるマイクロＴＬＢ２１への登録は、例えば有効フラグやＬＲＵアルゴリズム等を用いて書き込むエントリを適宜決定し行われる。
【００５０】
図８は、本実施形態におけるＴＬＢ検索処理の例を示すフローチャートである。図８に示す処理は、マイクロＴＬＢ２１におけるコンテキストアレイ検索処理であり、図７に示したＰステージのサイクルにおいて各エントリに対し並列して実行される。コンテキストアレイ検索処理では、コンテキストアレイ３３のレジスタ３３−ｉに保持されているコンテキストとコンテキストレジスタ３２の第１〜第３のレジスタ３２−１〜３２−３に保持されているコンテキストとの比較判定が行われる。
【００５１】
コンテキストアレイ検索処理が開始されると、ステップＳ１１にて、コンテキスト比較部３１は、レジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）と第１のレジスタ３２−１に保持されているコンテキスト（ＣＴＸＥａ）が一致するか否かを判定する。一致すると判定した場合にはステップＳ１２に進み、一致しないと判定した場合にはステップＳ１３に進む。
【００５２】
ステップＳ１２にて、コンテキスト比較部３１は、入力されるコンテキストＩＤ（ＣＴＩＤ）に基づいて、アドレスモードが第１のアドレスモードであるか否かを判定する。アドレスモードが第１のアドレスモードであると判定した場合にはステップＳ１７に進み、第１のアドレスモードではないと判定した場合にはステップＳ１３に進む。
【００５３】
ステップＳ１３にて、コンテキスト比較部３１は、レジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）と第２のレジスタ３２−２に保持されているコンテキスト（ＣＴＸＥｂ）が一致するか否かを判定する。一致すると判定した場合には、ステップＳ１４に進み、一致しないと判定した場合にはステップＳ１５に進む。ステップＳ１４にて、コンテキスト比較部３１は、アドレスモードが第２のアドレスモードであるか否かを判定し、第２のアドレスモードであると判定した場合にはステップＳ１７に進み、第２のアドレスモードではないと判定した場合にはステップＳ１５に進む。
【００５４】
ステップＳ１５にて、コンテキスト比較部３１は、レジスタ３３−ｉに保持されているコンテキスト（ＣＴＸＲ＜ｉ＞）と第３のレジスタ３２−３に保持されているコンテキスト（ＣＴＸＥｃ）が一致するか否かを判定する。一致すると判定した場合には、ステップＳ１６に進み、一致しないと判定した場合にはステップＳ１８に進む。ステップＳ１６にて、コンテキスト比較部３１は、アドレスモードが第３のアドレスモードであるか否かを判定し、第３のアドレスモードであると判定した場合にはステップＳ１７に進み、第３のアドレスモードではないと判定した場合にはステップＳ１８に進む。
【００５５】
エントリ＜ｉ＞のコンテキストが現在のアドレスモードのコンテキストと一致すると判定した場合に進むステップＳ１７にて、コンテキスト比較部３１は、コンテキストマッチ信号ＣＴＸＭＴ＜ｉ＞をアクティブにして出力する。これにより、エントリ＜ｉ＞のマッチフラグ（Ｍ）３６が“１”に設定され、処理が終了する。一方、そうでない場合に進むステップＳ１８では、エントリ＜ｉ＞のマッチフラグ（Ｍ）３６が“０”とされ、処理が終了する。
【００５６】
なお、前述の説明では、レジスタ３３−ｉに保持されているコンテキストと第１〜第３のレジスタ３２−１〜３２−３に保持されているコンテキストとの比較は、説明の便宜上、第１〜第３のアドレスモードについて順に行うようにしているが、実際の動作では第１〜第３のアドレスモードについて並列して行われる。
【００５７】
図９は、本実施形態におけるＴＬＢ検索処理の例を示すフローチャートである。図９に示す処理は、マイクロＴＬＢ２１におけるＴＬＢ検索処理であり、図７に示したＴステージのサイクルにおいて各エントリに対し並列して実行される。
【００５８】
ＴＬＢ検索処理が開始されると、ステップＳ２１にて、ＣＡＭ部３４は、エントリ＜ｉ＞の有効フラグ（Ｖ）３５が“１”であるか否かを判定し、“１”であると判定した場合にはステップＳ２２に進む。一方、エントリ＜ｉ＞の有効フラグ（Ｖ）３５が“１”ではないと判定した場合には、エントリ＜ｉ＞についてＴＬＢエントリミスとして処理を終了する。
【００５９】
ステップＳ２２にて、ＣＡＭ部３４は、エントリ＜ｉ＞のマッチフラグ（Ｍ）３６が“１”であるか否かを判定し、“１”であると判定した場合にはステップＳ２３に進む。一方、エントリ＜ｉ＞のマッチフラグ（Ｍ）３６が“１”ではないと判定した場合には、エントリ＜ｉ＞についてＴＬＢエントリミスとして処理を終了する。
【００６０】
ステップＳ２３にて、ＣＡＭ部３４は、エントリ＜ｉ＞の仮想アドレス値（ＶＡＤ＜ｉ＞）３７と要求ＲＥＱにおいて指定された仮想アドレスＶＡの上位部ＶＡＵとが一致するか否かを判定する。その結果、一致すると判定した場合には、エントリ＜ｉ＞についてＴＬＢエントリヒットとして、また一致しないと判定した場合には、エントリ＜ｉ＞についてＴＬＢエントリミスとして、処理を終了する。なお、前述の説明では、説明の便宜上、有効フラグ（Ｖ）３５、マッチフラグ（Ｍ）３６、及び仮想アドレス値（ＶＡＤ＜ｉ＞）３７に係る判定を順に行うようにしているが、実際の動作ではこれらの判定は並列して行われる。
【００６１】
本実施形態によれば、あるアドレスモードでプロセスが切り替わることによりコンテキストスイッチが発生し、コンテキストレジスタ３３の情報が書き替えられても、マイクロＴＬＢ２１に登録されている情報を無効化せずに（有効フラグ（Ｖ）３５をおとさずに）保持する。また、マイクロＴＬＢ２１に登録されている情報のコンテキストをコンテキストアレイ３３にエントリ毎に保持する。また、マイクロＴＬＢ２１にマッチフラグ（Ｍ）３６をエントリ毎に設け、そのマッチフラグ（Ｍ）３６によってマイクロＴＬＢ２１に登録されている情報の有効性を判断する。
【００６２】
マイクロＴＬＢ２１では、命令制御部・演算部１２から発行されたアクセスの要求を受けると、Ｐステージのサイクルで、アクセス要求したプロセスのコンテキスト（現在のアドレスモードのコンテキスト）と、コンテキストアレイ３３に保持されているコンテキストとが一致するか否かを、コンテキスト比較部３１により確認する。一致する場合には、そのエントリのマッチフラグ（Ｍ）３６をオン（“１”）にし、一致しない場合には、そのエントリのマッチフラグ（Ｍ）３６をオフ（“０”）にする。
【００６３】
Ｐステージに続くＴステージのサイクルで、マイクロＴＬＢ２１のＣＡＭ部３４にアクセスする際、マッチフラグ（Ｍ）３６も参照してマイクロＴＬＢ２１の検索を行う。これにより、マッチフラグ（Ｍ）３６がオンであるエントリだけを対象とした、すなわちＣＡＭ部３４に保持されているエントリの中から、アクセス要求したプロセスのコンテキストに対応するエントリだけを対象とした検索を行うことができる。また、プロセスが切り替わることによりコンテキストスイッチが発生し、コンテキストレジスタ３３の情報が書き替えられると、切り替え後のコンテキストに対応するものではないエントリのマッチフラグ（Ｍ）３６はオフになるので、マイクロＴＬＢ２１での仮想アドレスに係る検索からは除かれる。したがって、コンテキストレジスタ３３の情報が書き替えられても、エントリの有効フラグ（Ｖ）３５をオフ、すなわちそのエントリの情報を無効化する必要がなく、元のプロセスに再度切り替わった場合にエントリミスの発生を抑制することができる。その結果、アドレス変換に要する時間の増加を抑制し、性能低下を抑えることができる。
【００６４】
例えば、第１のアドレスモードでコンテキストが（Ａ）であるときの情報が、エントリ＜１＞としてＣＡＭ部３４に保持されているとする。そして、第１のアドレスモードで、かつコンテキストが（Ａ）でアクセスの要求が発行されたとする。このとき、Ｐステージでの比較の結果、コンテキストが一致するので、エントリ＜１＞のマッチフラグ（Ｍ）３６がオンに設定され、有効なエントリとされる。さらに、Ｔステージでの参照において、要求において指定された仮想アドレスとエントリ＜１＞の仮想アドレス（ＶＡＤ＜１＞）が一致した場合には、ＴＬＢエントリヒットとしてアドレス変換が行われ、対応する物理アドレスが求められる。
【００６５】
この状態で、第１のアドレスモードでコンテキストが（Ｂ）へ切り替わった場合には、Ｐステージでの比較の結果、コンテキストが一致しないので、エントリ＜１＞のマッチフラグ（Ｍ）３６がオフに設定される。続く、Ｔステージでの参照においては、マッチフラグ（Ｍ）３６がオフであるので、エントリ＜１＞はＴＬＢミスとなる。
【００６６】
その後、再度第１のアドレスモードでコンテキストが（Ａ）へ切り替わり、第１のアドレスモードで、かつコンテキストが（Ａ）でアクセスの要求が発行された場合には、Ｐステージでの比較の結果、コンテキストが一致し、エントリ＜１＞のマッチフラグ（Ｍ）３６がオンに設定される。そして、Ｔステージでの参照において、エントリ＜１＞は有効なエントリとして参照される。
【００６７】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６８】
１１  ＣＰＵ
１２  命令制御部・演算部
１３  １次キャッシュ部
１４  １次キャッシュ
１５  アドレス変換バッファ（ＴＬＢ）部
１６  ２次キャッシュ
１７  主記憶部
２１  マイクロＴＬＢ
２２  メインＴＬＢ
３１  コンテキスト比較部
３２  コンテキストレジスタ
３３  コンテキストアレイ
３４  ＣＡＭ（連想メモリ）部
３５  有効フラグ
３６  マッチフラグ
【図１】
2013097671.tif 000003
【図２】
2013097671.tif 000004
【図３】
2013097671.tif 000005
【図４】
2013097671.tif 000006
【図５】
2013097671.tif 000007
【図６】
2013097671.tif 000008
【図７】
2013097671.tif 000009
【図８】
2013097671.tif 000010
【図９】
2013097671.tif 000011
【図１０】
2013097671.tif 000012