(57)【要約】【課題】ページテーブル検索での不要なメモリアクセスの発生を抑制することができるアドレス変換装置を提供する。【解決手段】仮想アドレスと物理アドレスの組をページサイズ毎に保持しアドレス変換を行うアドレス変換バッファ（ＴＬＢ）と、ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組がＴＬＢに登録された場合、ＴＬＢから追い出された仮想アドレスとそれに対応するページサイズとの組を保持する記憶部と、ベースアドレスをページサイズ毎に保持するベースレジスタと、メモリアクセス要求に含まれる変換対象の仮想アドレスに基づきＴＬＢを検索し、検索ミスが発生した場合、記憶部及びベースレジスタが保持する情報から生成したポインタアドレスに基づいて主記憶を検索し変換対象の仮想アドレスを物理アドレスに変換するようにして、不要なメモリアクセスの発生を抑制する。【選択図】図１
2013073270.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置と、メモリアクセス要求を発行する命令制御部とに接続されるアドレス変換装置において、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部と、
を有することを特徴とするアドレス変換装置。
【請求項２】
前記アドレス変換装置において、
前記メモリ管理部は、
前記変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組のうち、前記変換対象の仮想アドレスと一致する仮想アドレスと組に含まれるページサイズと、前記一致する仮想アドレスと組に含まれるページサイズに対応する前記ベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、最大の計数値のカウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項１記載のアドレス変換装置。
【請求項４】
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、計数値が所定値を超えた複数のカウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする請求項３記載のアドレス変換装置。
【請求項５】
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタにおいて計数値が所定値を超えた複数のカウンタのうち、計数値が大きい値のカウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする請求項３記載のアドレス変換装置。
【請求項６】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスの組のうち、前記ベースレジスタが有するページサイズ毎のカウンタのうち最小の計数値のカウンタのベースレジスタに対応するページサイズの新たな仮想アドレスと物理アドレスを、前記アドレス変換バッファに登録することを特徴とする請求項１記載のアドレス変換装置。
【請求項７】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎に、命令に対するメモリアクセスに用いる命令用カウンタとオペランドに対するメモリアクセスに用いるオペランド用カウンタを有し、前記アドレス変換バッファに命令に対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有する命令用カウンタの計数値を増分させるとともに、前記アドレス変換バッファにオペランドに対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するオペランド用カウンタの計数値を増分させ、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項１記載のアドレス変換装置。
【請求項８】
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち、計数値が所定値を超えた複数の命令用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち、計数値が所定値を超えた複数のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする請求項７記載のアドレス変換装置。
【請求項９】
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタにおいて計数値が所定値を超えた複数の命令用カウンタのうち、最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタにおいて計数値が所定値を超えた複数のオペランド用カウンタのうち、最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする請求項７記載のアドレス変換装置。
【請求項１０】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令制御部と、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部とを有することを特徴とする演算処理装置。
【請求項１１】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置の制御方法において、
演算処理装置のメモリ管理部が、前記演算処理装置の命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき、仮想アドレスと物理アドレスの組を登録するアドレス変換バッファを検索し、
前記アドレス変換バッファの検索により検索ミスが発生した場合、メモリ管理部が、履歴保持部が保持するアドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組と、ベースレジスタが保持する、ページの区切りを示す、仮想アドレスの一部であるベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記ページテーブルが保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換することを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス変換装置、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
ハードウェアによるアドレス変換機構を装備し、複数のページサイズを扱うことができるページング方式を用いた仮想記憶システムがある。仮想記憶システムでは、一般に、仮想アドレス（ＶＡ：Virtual Address）から物理アドレス（ＰＡ：Physical Address）へのアドレス変換を高速に行うためにアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）が用いられる。
【０００３】
このような仮想記憶システムにおいて、プロセッサによるメモリアクセス時にＴＬＢミスが発生した場合には、主記憶に配置されたページテーブルを、ページサイズ毎に検索する必要がある。ページテーブルには、仮想アドレスと物理アドレスとの対応関係を示すエントリ（アドレス変換情報）が格納されている。ページテーブルを検索した結果、ＴＬＢミスを発生させた仮想アドレスに対応するエントリを有するページテーブルが見つかれば、それをＴＬＢに登録する。一方、対応するエントリを有するページテーブルが見つからない場合には、ソフトウェアに依頼して対応するエントリを有するページテーブルを用意した上でＴＬＢに登録する。主記憶に配置されているページテーブルの検索方式としては、例えば図６（Ａ）及び（Ｂ）に示すような方式がある。
【０００４】
図６（Ａ）に示す検索方式では、主記憶に配置しているページテーブルを検索するために、ポインタアドレス生成用のベースアドレスが格納されたベースレジスタＢＲＥＧを１つ有する。ベースレジスタＢＲＥＧは、ある１つのページサイズ（第１のページサイズ）に対応しており、第１のページサイズに対応するページテーブルの検索に用いられる第１のベースアドレスＢＡＳＥが格納されている。
【０００５】
メモリアクセス時にＴＬＢミスが発生した場合には、ＰＴＡ生成処理１０１により、ＴＬＢミスを発生させた仮想アドレスＭＶＡの一部とベースレジスタＢＲＥＧに格納されている第１のベースアドレスＢＡＳＥから、第１のポインタアドレスＰＴＡ１が生成される。第１のポインタアドレスＰＴＡ１は、主記憶から第１のページサイズに対応するページテーブルを検索するためのポインタアドレスである。テーブル検索処理１０２では、第１のポインタアドレスＰＴＡ１が指し示すアドレスから第１のページサイズに対応するページテーブルが読み出される。読み出されたページテーブルからＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つかった場合には、そのエントリがＴＬＢに登録されて、仮想アドレスＭＶＡに対応する物理アドレスＰＡ１が出力され、ハードウェアによるアドレス変換処理を終了する。
【０００６】
一方、読み出されたページテーブルから仮想アドレスＭＶＡに対応するエントリが見つからない場合には、ＰＴＡ生成処理１０３により、主記憶から第２のページサイズに対応するページテーブルを検索するための第２のポインタアドレスＰＴＡ２が生成される。ここで、第１のポインタアドレスＰＴＡ１が指し示すアドレスの領域には、第２のページサイズに対応するページテーブルの検索に用いられる第２のベースアドレスが格納されている。ＰＴＡ生成処理１０３では、ＴＬＢミスを発生させた仮想アドレスＭＶＡの一部とこの第２のベースアドレスから、第２のポインタアドレスＰＴＡ２を生成する。
【０００７】
テーブル検索処理１０４では、生成された第２のポインタアドレスＰＴＡ２を用い、第１のページサイズと同様にして、第２のページサイズに対応するページテーブルの検索を行う。検索の結果、ページテーブルからＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つかった場合には、そのエントリがＴＬＢに登録されて、仮想アドレスＭＶＡに対応する物理アドレスＰＡ２が出力され、アドレス変換処理を終了する。以降、ＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つからない場合には、該当するエントリに辿り着くまで、各ページサイズに係るＰＴＡ生成処理１０５、１０７、及びテーブル検索処理１０６、１０８を順に行う。
【０００８】
図６（Ａ）に示した検索方式では、ＴＬＢミスの仮想アドレスＭＶＡに対応する物理アドレスが、物理アドレスＰＡ１である場合には１回のページテーブル検索が必要であり、物理アドレスＰＡ２である場合には２回のページテーブル検索が必要である。同様に、ＴＬＢミスの仮想アドレスＭＶＡに対応する物理アドレスが、物理アドレスＰＡ３である場合には３回のページテーブル検索が必要であり、物理アドレスＰＡ４である場合には４回のページテーブル検索が必要である。したがって、図６（Ａ）に示した検索方式では、ページテーブル検索のために最多でサポートしているページサイズの数の回数分のメモリアクセスが発生する。また、図６（Ａ）に示した検索方式では、ページサイズに対応するページテーブルの検索順を制御することができない。
【０００９】
図６（Ｂ）に示す検索方式では、主記憶に配置しているページテーブルを検索するために、ポインタアドレス生成用のベースアドレスが格納されたベースレジスタをサポートしているページサイズの数分有する。各ベースレジスタＢ１ＲＥＧ、Ｂ２ＲＥＧ、Ｂ３ＲＥＧ、Ｂ４ＲＥＧには、有効ビットＶ、ページテーブルの検索に用いられるベースアドレスＢＡＳＥ、ページサイズＰＳ、テーブルサイズＴＳ等が格納されている。
【００１０】
ＴＬＢミスが発生した場合には、ＰＴＡ生成処理１１１により、ＴＬＢミスを発生させた仮想アドレスＭＶＡの一部とベースレジスタの１つに格納されているベースアドレスＢＡＳＥから、ページサイズに対応するページテーブルのポインタアドレスが生成される。テーブル検索処理１１３では、このポインタアドレスが指し示すアドレスからページテーブルが読み出される。読み出されたページテーブルからＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つかった場合には、そのエントリがＴＬＢに登録されて、仮想アドレスＭＶＡに対応する物理アドレスが出力され、ハードウェアによるアドレス変換処理を終了する。
【００１１】
一方、読み出されたページテーブルから仮想アドレスＭＶＡに対応するエントリが見つからない場合には、別のベースレジスタからベースアドレスＢＡＳＥを取り出す。そして、ＰＴＡ生成処理１１１により、ＴＬＢミスの仮想アドレスＭＶＡの一部と今回取り出したベースアドレスＢＡＳＥから、ページサイズに対応するページテーブルのポインタアドレスが生成される。テーブル検索処理１１３にて、このポインタアドレスが指し示すアドレスから同様にページテーブルの検索し、アドレス変換処理を行う。
【００１２】
図６（Ｂ）に示した検索方式では、検索順序制御機構１１２によりページテーブルの検索を逐次的に行うか、並列に行うかが制御可能である。ページテーブルの検索を逐次的に行う場合には、どのベースレジスタの情報を使用するかの優先順位が固定であり、ページサイズに対応するページテーブルの検索もその順に従い固定である。逐次的にページテーブルを検索する際、検索したページテーブルにＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが登録されていた場合には、後続のページテーブル検索は行わずに、アドレス変換処理を終了する。しかし、検索したページテーブルにＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つからない場合には、ページテーブル検索のために最多でベースレジスタの数の分のメモリアクセスが発生する。また、並行にページテーブルを検索する場合には、ページテーブル検索のためにベースレジスタの数の分のメモリアクセスが発生する。このように、図６（Ｂ）に示した検索方式では、１つのＴＬＢミスに対して、ページテーブル検索のために１回から最大では有効なベースレジスタの数の分のメモリアクセスが発生する。
【００１３】
また、下記特許文献１には、あるサイズのページをｎページ持つ主記憶に関し、ページの使用頻度をカウントする使用頻度カウンタを有し、使用頻度に応じたページの入れ換えを行う主記憶のページ管理方式が提案されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平５−４０６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ここで、１つのＴＬＢミスに対して、実際にＴＬＢに登録され使用されるページテーブルのエントリは、ＴＬＢミスを発生させた仮想アドレスに対応する１つのエントリだけである。
【００１６】
図６（Ａ）に示した検索方式では、第１のポインタアドレスＰＴＡ１により検索したページテーブルに、ＴＬＢミスの仮想アドレスに対応するエントリが存在すれば、１回のページテーブル検索（メモリアクセス）でアドレス変換処理が終了する。しかし、検索したページテーブルにＴＬＢミスの仮想アドレスに対応するエントリが存在しない場合には、対応するエントリに辿り着くまで複数回のページテーブル検索（メモリアクセス）が行われる。そのため、無駄なテーブルフェッチによるメモリアクセス（リクエスト）が頻発するという問題がある。また、不要なページテーブルのエントリがキャッシュメモリに登録されることで、キャッシュメモリが汚染されるという問題がある。さらには、不要なページテーブルから検索を行う可能性があり、ページテーブル検索の処理時間を無駄に増加させることとなる。
【００１７】
また、図６（Ｂ）に示した検索方式では、ページテーブルの検索を逐次的に行うと、図６（Ａ）に示した検索方式と同様の問題がある。ページテーブルの検索を並行に行う場合にも、無駄なテーブルフェッチによるメモリアクセス（リクエスト）が頻発するとともに、使用しないページテーブルのエントリがキャッシュメモリに登録されてキャッシュメモリが汚染されるという問題がある。
【００１８】
１つの側面では、本発明の目的は、ＴＬＢミスが発生した場合に、ページテーブル検索における不要なメモリアクセスの発生を抑制することができるアドレス変換装置を提供することにある。
【課題を解決するための手段】
【００１９】
アドレス変換装置の一態様は、仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、アドレス変換バッファに、仮想アドレスと物理アドレスの組を保持するページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、アドレス変換バッファから追い出された仮想アドレスとそれに対応するページサイズとの組を保持する履歴保持部と、ベースアドレスをページサイズ毎に保持するベースレジスタと、メモリ管理部とを有する。メモリ管理部は、命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づきアドレス変換バッファを検索し、検索ミスが発生した場合、履歴保持部が保持する仮想アドレスとページサイズとの組とベースレジスタが保持するベースアドレスとから生成した、主記憶装置におけるページテーブルのアドレスを示すポインタアドレスに基づき、主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、変換対象の仮想アドレスを物理アドレスに変換する。
【発明の効果】
【００２０】
発明の１態様においては、ＴＬＢミスが発生した場合に、ページテーブル検索における不要なメモリアクセスの発生を抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態におけるページテーブルの第１の検索方式の例を模式的に示す図である。
【図２】本実施形態におけるページテーブルの第１の検索方式の他の例を模式的に示す図である。
【図３】本実施形態におけるページテーブルの第２の検索方式の例を模式的に示す図である。
【図４】本実施形態におけるページテーブルの第３の検索方式の例を模式的に示す図である。
【図５】本実施形態におけるプロセッサシステムの構成例を示す図である。
【図６】ページテーブルの検索方式の例を模式的に示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
まず、本発明の実施形態におけるページテーブルの検索方式について説明する。以下に説明するページテーブルの検索方式は、メモリアクセスにおいてＴＬＢミスが発生したときに行われる主記憶に配置されているページテーブルの検索に係る検索方式である。なお、以下の説明においては、ページテーブルを逐次的に検索するように検索順序の制御を行う動作モードを「逐次モード」とも称し、複数のページテーブルを並列に検索するように検索順序の制御を行う動作モードを「並列モード」とも称す。
【００２３】
＜第１の検索方式＞
図１は、本実施形態におけるページテーブルの第１の検索方式の例を模式的に示す図である。本実施形態におけるページテーブルの第１の検索方式では、ページテーブルを検索した際にページテーブルがヒットした回数をカウントするための使用頻度カウンタをベースレジスタ毎に設け、そのカウンタ値に応じてページテーブルの検索順序を制御する。ページテーブルがヒットするとは、そのページテーブルにＴＬＢミスを発生させた仮想アドレス（以下、単に「ＴＬＢミスの仮想アドレス」とも称す。）に対応するエントリが存在することを意味する。
【００２４】
図１において、ベースレジスタＢｉＲＥＧ（ｉは添え字であり、ｉ＝１、２、３、４である。以下についても同様）は、主記憶に配置されているページテーブルを検索するためのポインタアドレス生成用のベースアドレスＢＡＳＥが格納されるレジスタである。ベースレジスタＢｉＲＥＧは、例えばサポートするページサイズの各々に対して設けられる。ベースレジスタＢｉＲＥＧの各々には、ベースアドレスＢＡＳＥの他に、例えば有効ビットＶ、ページサイズＰＳ、テーブルサイズＴＳ等が格納されている。有効ビットＶは、ベースレジスタＢｉＲＥＧに格納されている情報が有効であるか否かを示す。ページサイズＰＳは、ベースレジスタＢｉＲＥＧに格納されている情報が、サポートされる複数のページサイズの内のどのページサイズに対応する情報であるかを示し、テーブルサイズＴＳは、ページテーブルの大きさを示す。
【００２５】
ＰＴＡ生成処理１１−ｉでは、ＴＬＢミスを発生させた仮想アドレスＭＶＡの一部とベースレジスタＢｉＲＥＧに格納されているベースアドレスＢＡＳＥとから、そのページサイズＰＳに対応するページテーブルのポインタアドレスＰＴＡｉが生成される。検索順序制御機構１２Ａは、ベースレジスタＢｉＲＥＧ毎に設けられた使用頻度カウンタ１４−ｉのカウンタ値に基づいて、ページテーブルの検索順序を制御する。検索順序制御機構１２Ａによって指定される検索順序に従って、テーブル検索処理１３−ｉが行われる。
【００２６】
テーブル検索処理１３−ｉでは、対応するＰＴＡ生成処理１１−ｉにより生成されたポインタアドレスＰＴＡｉが指し示すアドレスからページテーブルが読み出され、ＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが存在するか否かが検索される。また、テーブル検索処理１３−ｉでは、読み出されたページテーブルからＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが見つかった場合には、そのエントリがＴＬＢに登録され、仮想アドレスＭＶＡに対応する物理アドレスＰＡｉが出力される。また、テーブル検索処理１３−ｉにおける検索結果は、検索順序制御機構１２Ａ等に報告される。
【００２７】
使用頻度カウンタ１４−ｉは、対応するベースレジスタＢｉＲＥＧに格納されているベースアドレスＢＡＳＥから生成されたポインタアドレスＰＴＡｉに基づいて読み出されたページテーブルが過去にヒットした回数をカウントする。使用頻度カウンタ１４−ｉは、例えばポインタアドレスＰＴＡｉに基づいて読み出されたページテーブルがヒットした場合には、そのカウンタ値が１だけインクリメント（＋１）される。なお、使用頻度カウンタ１４−ｉの何れかにおいて、カウンタ値が最大値に達する、若しくはオーバーフローする場合には、例えばすべての使用頻度カウンタ１４−ｉのカウンタ値がクリア又は任意の値に設定される。また、すべての使用頻度カウンタ１４−ｉのカウンタ値を１ずつデクリメント（−１）するようにしても良い。また、ベースレジスタＢｉＲＥＧの何れかが更新された場合には、それまでのカウンタ値は意味をなさないため、例えばすべての使用頻度カウンタ１４−ｉのカウンタ値がクリア又は任意の値に設定される。
【００２８】
第１の検索方式において主記憶のページテーブルを逐次的に検索する逐次モードでは、検索順序制御機構１２Ａは、使用頻度カウンタ１４−ｉのカウンタ値が大きいベースレジスタＢｉＲＥＧに対応するページサイズ順にページテーブルの検索を行うように制御する。これにより、過去のヒット率が高いページテーブルを検索するためのベースアドレスＢＡＳＥが格納されたベースレジスタＢｉＲＥＧを優先してページテーブルの検索を行うことができる。すなわち、ＴＬＢミスの仮想アドレスＭＶＡに対応するエントリが存在する可能性が高いと考えられる順にページテーブルの検索を行うことができ、不要なメモリアクセス（リクエスト）の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【００２９】
なお、逐次モードであっても、複数の使用頻度カウンタ１４−ｉのカウンタ値が所定の閾値に達した場合には、複数個のベースレジスタＢｉＲＥＧによるページテーブル、すなわち複数のページサイズに対応するページテーブルを同時に検索するようにしても良い。例えば、カウンタ値が閾値に達した使用頻度カウンタ１４−ｉの内のカウンタ値が大きい使用頻度カウンタ１４−ｉに対応するベースレジスタＢｉＲＥＧについて同時にページテーブルの検索を行うようにしても良い。そうすることで、例えば２つのページサイズが均等な頻度で使用されているような場合に、ページテーブルを検索するページサイズの変更にかかる時間を短縮でき、アドレス変換処理に要する時間の短縮を図ることができる。
【００３０】
また、第１の検索方式において主記憶のページテーブルを並列に検索する並列モードでは、検索順序制御機構１２Ａは、使用頻度カウンタ１４−ｉのカウンタ値が大きい複数個のベースレジスタＢｉＲＥＧに対応するページテーブルを同時に検索するように制御する。ただし、同時に検索を行うページテーブルの数は、ベースレジスタＢｉＲＥＧの総数未満の数とする。これにより、すべてのページテーブルを同時に検索せずに、過去のヒット率が高いページテーブルを検索するためのベースアドレスＢＡＳＥが格納されたベースレジスタＢｉＲＥＧの幾つかを優先して同時にページテーブルの検索を行うことができる。したがって、不要なメモリアクセス（リクエスト）の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【００３１】
なお、ベースレジスタＢｉＲＥＧが、命令用及びオペランド用として共通して用いられる場合には、図２に示すように命令用の使用頻度カウンタ１４Ａ−ｉとオペランド用の使用頻度カウンタ１４Ｂ−ｉとをベースレジスタＢｉＲＥＧ毎に設けるようにしても良い。図２は、本実施形態におけるページテーブルの第１の検索方式の他の例を模式的に示す図である。図２において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００３２】
図２において、命令用の使用頻度カウンタ（ＩＦ）１４Ａ−ｉ及びオペランド用の使用頻度カウンタ（ＯＰ）１４Ｂ−ｉのカウンタとしての機能は、図１に示した使用頻度カウンタ１４−ｉと同様である。命令用の使用頻度カウンタ（ＩＦ）１４Ａ−ｉは命令アクセスにおいて使用され、オペランド用の使用頻度カウンタ（ＯＰ）１４Ｂ−ｉはオペランドアクセスにおいて使用される。すなわち、命令アクセスにおいてページテーブルがヒットした場合には、そのポインタアドレスＰＴＡｉの生成に使用されたベースレジスタＢｉＲＥＧに対応する命令用の使用頻度カウンタ（ＩＦ）１４Ａ−ｉのカウンタ値が１だけインクリメントされる。同様に、オペランドアクセスにおいてページテーブルがヒットした場合には、そのポインタアドレスＰＴＡｉの生成に使用されたベースレジスタＢｉＲＥＧに対応するオペランド用の使用頻度カウンタ（ＯＰ）１４Ｂ−ｉのカウンタ値が１だけインクリメントされる。
【００３３】
また、検索順序制御機構１２Ｂは、図１に示した検索順序制御機構１２Ａに対応し、命令用の使用頻度カウンタ（ＩＦ）１４Ａ−ｉ及びオペランド用の使用頻度カウンタ（ＯＰ）１４Ｂ−ｉのカウンタ値に基づいて、ページテーブルの検索順序を制御する。検索順序制御機構１２Ｂは、命令アクセスにおいてページテーブルの検索を行う場合には、命令用の使用頻度カウンタ（ＩＦ）１４Ａ−ｉのカウンタ値に基づいて、ページテーブルの検索順序を制御する。また、検索順序制御機構１２Ｂは、オペランドアクセスにおいてページテーブルの検索を行う場合には、オペランド用の使用頻度カウンタ（ＯＰ）１４Ｂ−ｉのカウンタ値に基づいて、ページテーブルの検索順序を制御する。
【００３４】
＜第２の検索方式＞
図３は、本実施形態におけるページテーブルの第２の検索方式の例を模式的に示す図である。図３において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。本実施形態におけるページテーブルの第２の検索方式では、新規エントリの登録によりＴＬＢから追い出されたエントリの履歴情報を所定数格納しておく。そして、ページテーブルを逐次的に検索する場合には、格納されている履歴情報を参照してページテーブルの検索順序を決定し、ページテーブルの検索を行う。
【００３５】
図３において、アドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）１５は、主記憶に配置されたページテーブルの一部を保持（キャッシュ）し、仮想アドレスから物理アドレスへのアドレス変換を行う。記憶部１６は、新規エントリの登録によりＴＬＢ１５から追い出されたエントリの履歴情報を格納する。履歴情報は、例えば仮想アドレスＶＡ及びページサイズＰＳを含む。仮想アドレス比較処理１７では、ＴＬＢミスを発生させた仮想アドレスＭＶＡと履歴情報として記憶部１６に格納されている仮想アドレスＶＡとが比較され、一致するものがある場合には選択部１８に通知される。
【００３６】
選択部１８は、仮想アドレス比較処理１７による通知を受けると、ＴＬＢミスの仮想アドレスＭＶＡと格納されている仮想アドレスＶＡとが一致した履歴情報のページサイズＰＳを取り出して出力する。ページサイズ比較処理１９では、選択部１８より出力されたページサイズと、有効なベースレジスタＢｉＲＥＧに格納されているページサイズとが比較され、比較結果を検索順序制御部１２Ｃに通知する。
【００３７】
検索順序制御部１２Ｃは、主記憶のページテーブルを逐次的に検索する逐次モードでは、ページサイズ比較処理１９での比較結果を参照してページテーブルの検索順序を制御する。詳細には、検索順序制御部１２Ｃは、ページサイズ比較処理１９にて選択部１８より出力されたページサイズと格納されているページサイズとが一致するベースレジスタＢｉＲＥＧがある場合には、そのベースレジスタＢｉＲＥＧによるページテーブルの検索を最初に行うよう制御する。検索順序制御機構１２Ｃによって決定される検索順序に従って、テーブル検索処理１３−ｉが行われる。
【００３８】
このように第２の検索方式では、新規エントリを登録するためにＴＬＢ１５から追い出されたエントリを参照し、仮想アドレスがＴＬＢミスの仮想アドレスＭＶＡと一致するページサイズに対応するベースレジスタＢｉＲＥＧを優先しページテーブルの検索を行う。これにより、必要なページテーブルから検索を行うことができ、不要なページテーブルの検索にかかる時間を省くことが可能になり、アドレス変換に要する時間を短縮することができるとともに、不要なメモリアクセス（リクエスト）の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【００３９】
＜第３の検索方式＞
図４は、本実施形態におけるページテーブルの第３の検索方式の例を模式的に示す図である。図４において、図１及び図３に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。図４に示す本実施形態におけるページテーブルの第３の検索方式は、前述した第１の検索方式と第２の検索方式とを組み合わせた検索方式である。
【００４０】
図４において、検索順序制御機構１２Ｄは、ページテーブルを逐次的に検索する場合には、前述した第２の検索方式に従ってページテーブルの検索順序の制御を行い、その後、前述第１の検索方式に従ってページテーブルの検索順序の制御を行う。例えば、検索順序制御機構１２Ｄは、記憶部１６に格納された履歴情報を参照し、仮想アドレスがＴＬＢミスの仮想アドレスＭＶＡと一致するページサイズに対応するベースレジスタＢｉＲＥＧを優先しページテーブルの検索を行うように制御する。検索の結果、ＴＬＢミスの仮想アドレスＭＶＡに対応するエントリがヒットしなかった場合には、検索順序制御機構１２Ｄは、使用頻度カウンタ１４−ｉのカウンタ値が大きいベースレジスタＢｉＲＥＧに対応するページサイズ順にページテーブルの検索を行うように制御する。このとき、履歴情報に格納された仮想アドレスがＴＬＢミスの仮想アドレスＭＶＡと一致したことによって既にページテーブルの検索が行われたベースレジスタＢｉＲＥＧを除外してページテーブルの検索順序が制御される。したがって、第３の検索方式においても、前述した第１の検索方式及び第２の検索方式と同様に、不要なメモリアクセス（リクエスト）の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【００４１】
図４に示した第３の検索方式では、さらに新規エントリを登録するためにＴＬＢ１５から追い出されたエントリを履歴情報として格納するか否かを、使用頻度カウンタ１４−ｉのカウンタ値を参照して決定するようにしている。選択部２０は、カウンタ大小比較処理２１によりカウンタ値が小さいと判定された使用頻度カウンタ１４−ｉに対応するベースレジスタＢｉＲＥＧに格納されているページサイズを出力する。ページサイズ比較処理２２では、選択部２０より出力されたページサイズと新規エントリの登録によりＴＬＢ１５から追い出されたエントリのページサイズとが比較され、一致する場合には、そのエントリを履歴情報として記憶部１６に格納することを許可する。
【００４２】
このようにして記憶部１６に履歴情報として格納するエントリを、使用頻度カウンタ１４−ｉのカウンタ値が小さいページサイズ、すなわち参照頻度の低い（ページテーブルのヒット率が低い）ページサイズのエントリに限定する。これにより、参照頻度が低いページサイズのエントリのみ履歴情報として登録されるようになり、履歴情報として保持可能なエントリ数を減らしたとしても、参照頻度の低いページサイズのエントリが履歴情報として残っている可能性を高めることができる。したがって、参照頻度が低いページサイズについては前述の第２の検索方式で予測し、参照頻度が高いページサイズについては前述の第１の検索方式で予測することとなり、変換対象アドレスのページサイズの参照頻度にかかわらず、使用されるページサイズの予測が可能になる。
【００４３】
次に、前述した各検索方式でのページテーブル検索を実現するプロセッサシステムについて説明する。図５は、本実施形態におけるプロセッサシステムの構成例を示す図である。
【００４４】
図５において、５１は命令演算部、５２はメモリ管理部、５３はキャッシュ制御部、５４は主記憶（又は下位階層キャッシュ）である。メモリ管理部５２は、アドレス変換制御部５５、アドレス変換バッファ部（ＴＬＢ部）５６、ＴＬＢヒット検出部５７、出力部５８、及びポインタアドレス（ＰＴＡ）生成部５９を有する。キャッシュ制御部５３は、キャッシュタグ部６０、キャッシュ（データ部）６１、キャッシュヒット検出部６２、出力部６３、及びテーブルヒット検出部６４を有する。また、アドレス変換制御部５５は、ページサイズ比較部７０、記憶部７１、仮想アドレス比較部７２、出力部７３、ページサイズ比較部７４、出力部７５、使用頻度カウンタ７６、ベースレジスタＢｉＲＥＧ、カウンタ値比較部７７、及びカウンタ値チェック部７８を有する。ページサイズ比較部７４、出力部７５、及びカウンタ値比較部７７により、前述した検索順序制御機構の機能が実現される。
【００４５】
なお、図５に示したプロセッサシステムの構成は一例であって、これに限定されるものではない。例えば、ＴＬＢ部５６、キャッシュタグ部６０、キャッシュ６１、ベースレジスタＢｉＲＥＧ、記憶部７１等は、命令用及びオペランド用に分離しても良いし、共用しても良い。また、ベースレジスタＢｉＲＥＧ（及びそれに対応する使用頻度カウンタ７６）や記憶部７１に格納される履歴情報ＲＩの数についても任意である。また、ＴＬＢ部５６の階層構造についても何ら制約はない。
【００４６】
図５に示したプロセッサシステムでの処理について説明する。
〔処理Ａ〕
まず、実行する処理の流れの制御や演算等を行う命令演算部５１から仮想アドレスを用いた命令／オペランドのメモリアクセス要求ＲＥＱ１が発行されると、メモリ管理部５２は、その仮想アドレスに対応するエントリがＴＬＢ部５６に存在するか検索を行う。ＴＬＢ部５６は、ページテーブルの一部を保持（キャッシュ）している。すなわち、ＴＬＢ部５６には、仮想アドレスと物理アドレスとの対応情報を有するエントリが格納されており、基本的には仮想アドレスがＴＬＢタグとして、物理アドレスがＴＬＢデータとして格納されている。
【００４７】
メモリアクセス要求ＲＥＱ１における仮想アドレスの一部がインデックスとしてＴＬＢ部５６に供給され、それに応じてインデックスに対応するエントリのＴＬＢタグがＴＬＢ部５６からＴＬＢヒット検出部５７に供給される。ＴＬＢヒット検出部５７は、ＴＬＢ部５６から供給されるＴＬＢタグと、そのＴＬＢタグに対応するメモリアクセス要求ＲＥＱ１における仮想アドレスの一部とを比較する。比較の結果、ＴＬＢタグと仮想アドレスの一部とが一致する、すなわちメモリアクセス要求ＲＥＱ１における仮想アドレスに対応するエントリがＴＬＢ部５６に存在する場合には、メモリ管理部５２は、そのエントリを用いて仮想アドレスを物理アドレスに変換する。そして、キャッシュ制御部５３は、変換された物理アドレスに対して命令フェッチ、オペランドフェッチ、オペランドストア等を実行する。
【００４８】
一方、ＴＬＢタグと仮想アドレスの一部とが一致しない、すなわちメモリアクセス要求ＲＥＱ１における仮想アドレスに対応するエントリがＴＬＢ部５６に存在しない場合（ＴＬＢミスの場合）には、ＴＬＢヒット検出部５７は、ＴＬＢミス信号をアサートする。ＴＬＢミス信号がアサートされると、それをトリガとして出力部５８は、アドレス変換制御部５５及びキャッシュ制御部５３へ第１のテーブル検索要求ＲＥＱ２を発行する。
【００４９】
〔処理Ｂ〕
第１のテーブル検索要求ＲＥＱ２が発行されるとアドレス変換制御部５５では、仮想アドレス比較部７２が、ＴＬＢミスを発生させた仮想アドレスと記憶部７１に履歴情報ＲＩとして格納している仮想アドレスとの比較を行う。仮想アドレス比較部７２での比較の結果、ＴＬＢミスの仮想アドレスに一致する仮想アドレスが格納されている履歴情報ＲＩがある場合には、出力部７３は、その仮想アドレスと一緒に格納されてページサイズを取り出し、ページサイズ比較部７４に供給する。ページサイズ比較部７４は、出力部７３から供給されるページサイズと、有効なベースレジスタＢｉＲＥＧに格納されているページサイズとを比較する。ページサイズ比較部７４での比較の結果、出力部７３から供給されるページサイズに一致するページサイズが存在した場合には、出力部７５は、そのページサイズに対応するベースレジスタＢｉＲＥＧの情報をポインタアドレス生成部５９に供給する。ポインタアドレス生成部５９は、出力部７５から供給されたベースレジスタＢｉＲＥＧの情報とＴＬＢミスの仮想アドレスから、ページテーブルを検索するためのポインタアドレスＰＴＡを生成する。この生成されたポインタアドレスＰＴＡを用いてメモリアクセスが行われる。
【００５０】
〔処理Ｃ〕
ページテーブル検索に係るメモリアクセスでは、まずキャッシュタグ部６０及びキャッシュ６１を検索する。ポインタアドレスＰＴＡの一部がインデックスとしてキャッシュタグ部６０に供給され、それに応じてインデックスに対応するタグがキャッシュタグ部６０からキャッシュヒット検出部６２に供給される。キャッシュヒット検出部６２は、キャッシュタグ部６０から供給されるタグと、そのタグに対応するポインタアドレスＰＴＡの一部とを比較する。その結果、タグとポインタアドレスＰＴＡの一部とが一致しない場合には、ポインタアドレスＰＴＡに対応するデータがキャッシュ６１に存在しない（キャッシュミス）と判定する。このとき、キャッシュヒット検出部６２は、キャッシュミスを報告し、主記憶５４にデータ要求ＲＥＱ４を発行する。データ要求ＲＥＱ４に対する応答として主記憶５４からデータＤＡＴが供給されると、ポインタアドレスＰＴＡ及び主記憶５４からのデータＤＡＴをキャッシュタグ部６０及びキャッシュ６１にタグ及びデータとして登録し、再度テーブル検索要求処理を行う。
【００５１】
ポインタアドレスＰＴＡに対応するデータがキャッシュ６１に存在する場合には、キャッシュヒット検出部６２は、キャッシュヒットを報告し、キャッシュ６１の読み出しデータは有効となり出力部６３を介して出力される。このキャッシュ６１の読み出しデータは、ＴＬＢタグ及びＴＬＢデータの対で構成されている。テーブルヒット検出部６４は、ＴＬＢタグとしての仮想アドレスとＴＬＢミスの仮想アドレスとが一致する場合には、テーブルヒットを報告し、ＴＬＢ登録要求ＲＥＱ３をメモリ管理部５２のＴＬＢ部５６に対して行う。これにより、ＴＬＢタグ及びＴＬＢデータの対がＴＬＢ部５６に登録され、ＴＬＢミスによるページテーブルの検索及びＴＬＢ部５６へのエントリ登録に係る処理が完了する。テーブルヒット検出部６４は、ＴＬＢタグとしての仮想アドレスとＴＬＢミスの仮想アドレスとが一致しない場合には、テーブルミスを報告し、それをトリガとして出力部５８は、第２のテーブル検索要求ＲＥＱ２を発行する。
【００５２】
〔処理Ｄ〕
第２のテーブル検索要求ＲＥＱ２が発行されるとアドレス変換制御部５５では、カウンタ値比較部７７が、ベースレジスタＢｉＲＥＧ毎に設けられている使用頻度カウンタ７６のカウンタ値の比較を行う。出力部７５は、カウンタ値比較部７７での比較結果に応じて検索順序を制御し、ベースレジスタＢｉＲＥＧの情報をポインタアドレス生成部５９に供給する。なお、命令用及びオペランド用に使用頻度カウンタ７６をそれぞれ設けた場合には、命令リクエストによるテーブル検索要求では命令用の使用頻度カウンタのカウンタ値を比較し、オペランドリクエストによるテーブル検索要求ではオペランド用の使用頻度カウンタのカウンタ値を比較する。
【００５３】
一例として、ベースレジスタＢ１ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が２であるとし、ベースレジスタＢ２ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が３であるとする。また、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が４であるとし、ベースレジスタＢ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が０であるとする。ここで、仮に前述した〔処理Ｂ〕及び〔処理Ｃ〕によって履歴情報ＲＩによるページテーブルの検索がベースレジスタＢ１ＲＥＧについて既に行われている場合には、ベースレジスタＢ１ＲＥＧを除いて使用頻度カウンタ７６のカウンタ値の比較を行う。すなわち、カウンタ値比較部７７は、ベースレジスタＢ２ＲＥＧ、Ｂ３ＲＥＧ、Ｂ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を比較する。一方、履歴情報ＲＩによるページテーブルの検索が行われていない場合には、カウンタ値比較部７７は、ベースレジスタＢ１ＲＥＧ、Ｂ２ＲＥＧ、Ｂ３ＲＥＧ、Ｂ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を比較する。
【００５４】
以下では、ベースレジスタＢ１ＲＥＧについては既に履歴情報ＲＩによるページテーブルの検索が行われているものとして説明する。このとき、ページテーブルの検索順序は、Ｂ３ＲＥＧ→Ｂ２ＲＥＧ→Ｂ４ＲＥＧとなる。出力部７５から供給されるベースレジスタの情報とＴＬＢミスの仮想アドレスから、ポインタアドレス生成部５９によりページテーブルを検索するためのポインタアドレスＰＴＡが生成され、ページテーブル検索に係るメモリアクセスが行われる。なお、それぞれのポインタアドレスＰＴＡを用いたメモリアクセスについては前述した〔処理Ｃ〕と同様であるので、以下ではメモリアクセスについての説明は省略し、ページテーブル検索の流れについて説明する。
【００５５】
〔処理Ｄ−１：逐次モード〕
逐次モードでは、ベースレジスタＢ３ＲＥＧによるページテーブルの検索が行われ、その検索においてテーブルヒット検出部６４がテーブルヒットを報告すれば、ＴＬＢ登録要求ＲＥＱ３をメモリ管理部５２のＴＬＢ部５６に対して行う。これにより、キャッシュ６１の読み出しデータであるＴＬＢタグ及びＴＬＢデータの対がＴＬＢ部５６に登録され、ＴＬＢミスによるページテーブルの検索及びＴＬＢ部５６へのエントリ登録に係る処理が完了する。一方、ベースレジスタＢ３ＲＥＧによるページテーブルの検索においてテーブルヒット検出部６４がテーブルミスを報告した場合には、それをトリガとして次のページテーブルについてのテーブル検索要求が発行される。そして、ベースレジスタＢ３ＲＥＧによるページテーブルの検索と同様にして、ベースレジスタＢ２ＲＥＧによるページテーブルの検索が行われる。さらに、ベースレジスタＢ２ＲＥＧによるページテーブルの検索においてもテーブルヒット検出部６４がテーブルミスを報告した場合には、それをトリガとして次のページテーブルについてのテーブル検索要求が発行される。そして、ベースレジスタＢ３ＲＥＧによるページテーブルの検索と同様にして、ベースレジスタＢ４ＲＥＧによるページテーブルの検索が行われる。
【００５６】
〔処理Ｄ−２：並列モード〕
並列モードでは、優先順位の高い複数のベースレジスタによるページテーブル検索を並列に要求する。ここでは、優先順位の高い２つのベースレジスタによるページテーブル検索を並行して行う例を示す。本例では、ベースレジスタＢ３ＲＥＧによるページテーブルの検索が開始された後、テーブルヒット検出部６４からの検出結果を待たずに、ベースレジスタＢ２ＲＥＧによるページテーブルの検索に係るテーブル検索要求が発行される。
【００５７】
ベースレジスタＢ３ＲＥＧによるページテーブルの検索においてテーブルヒット検出部６４がテーブルヒットを報告すれば、ＴＬＢ登録要求ＲＥＱ３をメモリ管理部５２のＴＬＢ部５６に対して行う。これにより、キャッシュ６１の読み出しデータであるＴＬＢタグ及びＴＬＢデータの対がＴＬＢ部５６に登録され、ＴＬＢミスによるページテーブルの検索及びＴＬＢ部５６へのエントリ登録に係る処理が完了する。また、この場合には、ベースレジスタＢ２ＲＥＧによるページテーブルの検索において、主記憶５４へのデータ要求ＲＥＱ４を行っていればそのデータ要求ＲＥＱ４を完了させる。
【００５８】
ベースレジスタＢ３ＲＥＧによるページテーブルの検索においてテーブルヒット検出部６４がテーブルミスを報告した場合には、ベースレジスタＢ２ＲＥＧに対する処理へ移行する。そして、ベースレジスタＢ２ＲＥＧによるページテーブルの検索においてテーブルヒット検出部６４がテーブルヒットを報告すれば、ＴＬＢ登録要求ＲＥＱ３をメモリ管理部５２のＴＬＢ部５６に対して行う。これにより、キャッシュ６１の読み出しデータであるＴＬＢタグ及びＴＬＢデータの対がＴＬＢ部５６に登録され、ＴＬＢミスによるページテーブルの検索及びＴＬＢ部５６へのエントリ登録に係る処理が完了する。一方、ベースレジスタＢ２ＲＥＧによるページテーブルの検索においてテーブルヒット検出部６４がテーブルミスを報告した場合には、ベースレジスタＢ４ＲＥＧによるページテーブルの検索が行われる。
【００５９】
なお、優先順位が高い２つのベースレジスタＢ３ＲＥＧ、Ｂ２ＲＥＧによるページテーブルの検索において、ともにテーブルミスが報告された場合に、次のベースレジスタＢ４ＲＥＧによるページテーブルの検索を行うようにしているが、これに限定されない。例えば、ベースレジスタＢ３ＲＥＧによるページテーブルの検索においてテーブルミスが報告された時点で、次のベースレジスタＢ４ＲＥＧによるページテーブルの検索を行うようにしても良い。
【００６０】
また、例えば、履歴情報ＲＩによるページテーブルの検索が行われていない場合には、優先順位の高い２つのベースレジスタＢ３ＲＥＧ、Ｂ２ＲＥＧによるページテーブルの検索を並行して行う。その検索において、ともにテーブルミスが報告された場合に、次の２つのベースレジスタＢ１ＲＥＧ、Ｂ４ＲＥＧによるページテーブルの検索を、ベースレジスタＢ３ＲＥＧ、Ｂ２ＲＥＧによるページテーブルの検索と同様にして並行に行うようにしても良い。
【００６１】
なお、前述した説明では、ページテーブルの検索を第３の検索方式で行う場合を一例として説明したが、第１の検索方式又は第２の検索方式で行うことも可能である。第１の検索方式で行う場合には、〔処理Ａ〕においてＴＬＢミスが発生したときに、出力部５８が第２のテーブル検索要求ＲＥＱ２を発行して〔処理Ｄ〕から処理を継続すれば良い。したがって、第１の検索方式のみが行われる場合には、プロセッサシステムは、ページサイズ比較部７０、記憶部７１、仮想アドレス比較部７２、及び出力部７３を備えていなくとも良い。また、第２の検索方式で行う場合には、〔処理Ａ〕〜〔処理Ｃ〕を行った後、残りの各ベースレジスタＢｉＲＥＧによるページテーブルの検索を予め定めた順序で行えば良い。したがって、第２の検索方式のみが行われる場合には、プロセッサシステムは、使用頻度カウンタ７６、カウンタ値比較部７７、及びカウンタ値チェック部７８を備えていなくとも良い。
【００６２】
以下に、図５に示したプロセッサシステムにおける履歴情報ＲＩの書き込み、及び使用頻度カウンタ７６の制御について説明する。
・履歴情報ＲＩの書き込み
新規エントリの登録によりＴＬＢ部５６から追い出されたエントリを履歴情報ＲＩとして記憶部７１に格納する際、使用頻度カウンタ１４−ｉのカウンタ値にかかわらず格納する場合には、ＴＬＢ部５６から追い出されたエントリがそのまま記憶部７１に書き込まれる。また、使用頻度カウンタ１４−ｉのカウンタ値を参照して、カウンタ値が小さいページサイズのエントリに限定する場合には、カウンタ値比較部７７が、各ベースレジスタＢｉＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を比較する。そして、カウンタ値比較部７７は、比較結果に基づきカウンタ値が小さいページサイズをページサイズ比較部７０に通知する。ページサイズ比較部７０は、カウンタ値比較部７７より通知されたページサイズとＴＬＢ部５６から追い出されたエントリのページサイズとの比較を行い、一致する場合にはＴＬＢ部５６から追い出されたエントリの記憶部７１への書き込みを許可する。
【００６３】
・使用頻度カウンタ７６の制御
使用頻度カウンタ７６の制御は、信号ＳＧ１、ＳＧ２、及びカウンタ値チェック部７８の出力に基づいて行われる。
【００６４】
信号ＳＧ１は、ベースレジスタＢｉＲＥＧの更新を通知する信号である。信号ＳＧ１によりベースレジスタＢｉＲＥＧの更新が通知されると、それまでのカウンタ値は意味をなさないため、例えばすべての使用頻度カウンタ７６のカウンタ値がクリア又は任意の値に再設定される。例えば、ベースレジスタＢ１ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が２であるとし、ベースレジスタＢ２ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が３であるとする。また、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が４であるとし、ベースレジスタＢ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が０であるとする。この状態で、信号ＳＧ１によりベースレジスタＢ１ＲＥＧの更新が通知された場合には、ベースレジスタＢ１ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を０とする。また、ベースレジスタＢ２ＲＥＧ、Ｂ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値をともに０とし、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を１とする。このようにして、ベースレジスタＢ１ＲＥＧが更新される前に、ベースレジスタＢ２ＲＥＧ、Ｂ３ＲＥＧ、Ｂ４ＲＥＧの中で最もカウンタ値が大きかった使用頻度カウンタ７６のカウンタ値を大きく設定する。
【００６５】
信号ＳＧ２は、ページテーブルがヒットしＴＬＢ登録要求ＲＥＱ３が発行されたときに、使用頻度カウンタ７６のカウンタ値を１インクリメントさせるための信号である。信号ＳＧ２がアサートさせると、ヒットしたページテーブルに係るベースレジスタＢｉＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が１インクリメントされる。
【００６６】
カウンタ値チェック部７８は、使用頻度カウンタ７６のカウンタ値が最大値に達したか、若しくはオーバーフローするかを判定し、判定結果を出力する。使用頻度カウンタ７６のカウンタ値が最大値に達したか、若しくはオーバーフローすると判定された場合には、例えばすべての使用頻度カウンタ７６のカウンタ値がクリア又は任意の値に再設定される。例えば、使用頻度カウンタ７６のカウンタ値の最大値を４とし、カウンタ値が最大値に達したと判定された場合に、使用頻度カウンタ７６のカウンタ値をクリア又は任意の値に設定するものとする。ベースレジスタＢ１ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が２であるとし、ベースレジスタＢ２ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が３であるとする。また、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が４であるとし、ベースレジスタＢ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が０であるとする。このとき、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値が最大値に達しているので、ベースレジスタＢ１ＲＥＧ、Ｂ２ＲＥＧ、Ｂ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値をともに０とする。また、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を１とする。このようにすることで、次にページテーブルの検索を行う際にも、クリア前にカウンタ値が最も大きいベースレジスタから検索を行うことができる。
【００６７】
また、使用頻度カウンタ７６のカウンタ値が最大値に達したか、若しくはオーバーフローすると判定された場合には、例えばすべての使用頻度カウンタ７６のカウンタ値を１デクリメントするようにしてもよい。例えば、使用頻度カウンタ７６のカウンタ値が前述した例と同様である場合には、ベースレジスタＢ１ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を１にし、ベースレジスタＢ２ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を２にする。また、ベースレジスタＢ３ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を３にし、ベースレジスタＢ４ＲＥＧに対応する使用頻度カウンタ７６のカウンタ値を０にする。こうすることにより、使用頻度が高いページテーブルのベースレジスタと使用頻度が低いページテーブルのベースレジスタとのカウンタ値に差をつけることができる。したがって、次にページテーブルの検索を行う際にも使用頻度の高いベースレジスタを優先してページテーブルの検索を行うことができる。
【００６８】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６９】
（付記１）
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置と、メモリアクセス要求を発行する命令制御部とに接続されるアドレス変換装置において、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部と、
を有することを特徴とするアドレス変換装置。
（付記２）
前記アドレス変換装置において、
前記メモリ管理部は、
前記変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組のうち、前記変換対象の仮想アドレスと一致する仮想アドレスと組に含まれるページサイズと、前記一致する仮想アドレスと組に含まれるページサイズに対応する前記ベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記１記載のアドレス変換装置。
（付記３）
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、最大の計数値のカウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記１記載のアドレス変換装置。
（付記４）
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、計数値が所定値を超えた複数のカウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする付記３記載のアドレス変換装置。
（付記５）
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタにおいて計数値が所定値を超えた複数のカウンタのうち、計数値が大きい値のカウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする付記３記載のアドレス変換装置。
（付記６）
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスの組のうち、前記ベースレジスタが有するページサイズ毎のカウンタのうち最小の計数値のカウンタのベースレジスタに対応するページサイズの新たな仮想アドレスと物理アドレスを、前記アドレス変換バッファに登録することを特徴とする付記１記載のアドレス変換装置。
（付記７）
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎に、命令に対するメモリアクセスに用いる命令用カウンタとオペランドに対するメモリアクセスに用いるオペランド用カウンタを有し、前記アドレス変換バッファに命令に対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有する命令用カウンタの計数値を増分させるとともに、前記アドレス変換バッファにオペランドに対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するオペランド用カウンタの計数値を増分させ、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記１記載のアドレス変換装置。
（付記８）
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち、計数値が所定値を超えた複数の命令用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち、計数値が所定値を超えた複数のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする付記７記載のアドレス変換装置。
（付記９）
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタにおいて計数値が所定値を超えた複数の命令用カウンタのうち、最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタにおいて計数値が所定値を超えた複数のオペランド用カウンタのうち、最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする付記７記載のアドレス変換装置。
（付記１０）
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令制御部と、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部とを有することを特徴とする演算処理装置。
（付記１１）
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置の制御方法において、
演算処理装置のメモリ管理部が、前記演算処理装置の命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき、仮想アドレスと物理アドレスの組を登録するアドレス変換バッファを検索し、
前記アドレス変換バッファの検索により検索ミスが発生した場合、メモリ管理部が、履歴保持部が保持するアドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組と、ベースレジスタが保持する、ページの区切りを示す、仮想アドレスの一部であるベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記ページテーブルが保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換することを特徴とする演算処理装置の制御方法。
【符号の説明】
【００７０】
ＢｉＲＥＧ  ベースレジスタ
１１−ｉ  ＰＴＡ生成処理
１２Ａ〜１２Ｄ  検索順序制御機構
１３−ｉ  テーブル検索処理
１４−ｉ  使用頻度カウンタ
１４Ａ−ｉ  使用頻度カウンタ（命令用）
１４Ｂ−ｉ  使用頻度カウンタ（オペランド用）
１５  アドレス変換バッファ（ＴＬＢ）
１６  記憶部
１７  仮想アドレス比較処理
１８  選択部
１９  ページサイズ比較処理
【図１】
2013073270.tif 000003
【図２】
2013073270.tif 000004
【図３】
2013073270.tif 000005
【図４】
2013073270.tif 000006
【図５】
2013073270.tif 000007
【図６】
2013073270.tif 000008