説明

アドレス変換装置、演算処理装置及び演算処理装置の制御方法

【課題】ページテーブル検索での不要なメモリアクセスの発生を抑制することができるアドレス変換装置を提供する。
【解決手段】仮想アドレスと物理アドレスの組をページサイズ毎に保持しアドレス変換を行うアドレス変換バッファ(TLB)と、ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組がTLBに登録された場合、TLBから追い出された仮想アドレスとそれに対応するページサイズとの組を保持する記憶部と、ベースアドレスをページサイズ毎に保持するベースレジスタと、メモリアクセス要求に含まれる変換対象の仮想アドレスに基づきTLBを検索し、検索ミスが発生した場合、記憶部及びベースレジスタが保持する情報から生成したポインタアドレスに基づいて主記憶を検索し変換対象の仮想アドレスを物理アドレスに変換するようにして、不要なメモリアクセスの発生を抑制する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アドレス変換装置、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【0002】
ハードウェアによるアドレス変換機構を装備し、複数のページサイズを扱うことができるページング方式を用いた仮想記憶システムがある。仮想記憶システムでは、一般に、仮想アドレス(VA:Virtual Address)から物理アドレス(PA:Physical Address)へのアドレス変換を高速に行うためにアドレス変換バッファ(TLB:Translation Lookaside Buffer)が用いられる。
【0003】
このような仮想記憶システムにおいて、プロセッサによるメモリアクセス時にTLBミスが発生した場合には、主記憶に配置されたページテーブルを、ページサイズ毎に検索する必要がある。ページテーブルには、仮想アドレスと物理アドレスとの対応関係を示すエントリ(アドレス変換情報)が格納されている。ページテーブルを検索した結果、TLBミスを発生させた仮想アドレスに対応するエントリを有するページテーブルが見つかれば、それをTLBに登録する。一方、対応するエントリを有するページテーブルが見つからない場合には、ソフトウェアに依頼して対応するエントリを有するページテーブルを用意した上でTLBに登録する。主記憶に配置されているページテーブルの検索方式としては、例えば図6(A)及び(B)に示すような方式がある。
【0004】
図6(A)に示す検索方式では、主記憶に配置しているページテーブルを検索するために、ポインタアドレス生成用のベースアドレスが格納されたベースレジスタBREGを1つ有する。ベースレジスタBREGは、ある1つのページサイズ(第1のページサイズ)に対応しており、第1のページサイズに対応するページテーブルの検索に用いられる第1のベースアドレスBASEが格納されている。
【0005】
メモリアクセス時にTLBミスが発生した場合には、PTA生成処理101により、TLBミスを発生させた仮想アドレスMVAの一部とベースレジスタBREGに格納されている第1のベースアドレスBASEから、第1のポインタアドレスPTA1が生成される。第1のポインタアドレスPTA1は、主記憶から第1のページサイズに対応するページテーブルを検索するためのポインタアドレスである。テーブル検索処理102では、第1のポインタアドレスPTA1が指し示すアドレスから第1のページサイズに対応するページテーブルが読み出される。読み出されたページテーブルからTLBミスの仮想アドレスMVAに対応するエントリが見つかった場合には、そのエントリがTLBに登録されて、仮想アドレスMVAに対応する物理アドレスPA1が出力され、ハードウェアによるアドレス変換処理を終了する。
【0006】
一方、読み出されたページテーブルから仮想アドレスMVAに対応するエントリが見つからない場合には、PTA生成処理103により、主記憶から第2のページサイズに対応するページテーブルを検索するための第2のポインタアドレスPTA2が生成される。ここで、第1のポインタアドレスPTA1が指し示すアドレスの領域には、第2のページサイズに対応するページテーブルの検索に用いられる第2のベースアドレスが格納されている。PTA生成処理103では、TLBミスを発生させた仮想アドレスMVAの一部とこの第2のベースアドレスから、第2のポインタアドレスPTA2を生成する。
【0007】
テーブル検索処理104では、生成された第2のポインタアドレスPTA2を用い、第1のページサイズと同様にして、第2のページサイズに対応するページテーブルの検索を行う。検索の結果、ページテーブルからTLBミスの仮想アドレスMVAに対応するエントリが見つかった場合には、そのエントリがTLBに登録されて、仮想アドレスMVAに対応する物理アドレスPA2が出力され、アドレス変換処理を終了する。以降、TLBミスの仮想アドレスMVAに対応するエントリが見つからない場合には、該当するエントリに辿り着くまで、各ページサイズに係るPTA生成処理105、107、及びテーブル検索処理106、108を順に行う。
【0008】
図6(A)に示した検索方式では、TLBミスの仮想アドレスMVAに対応する物理アドレスが、物理アドレスPA1である場合には1回のページテーブル検索が必要であり、物理アドレスPA2である場合には2回のページテーブル検索が必要である。同様に、TLBミスの仮想アドレスMVAに対応する物理アドレスが、物理アドレスPA3である場合には3回のページテーブル検索が必要であり、物理アドレスPA4である場合には4回のページテーブル検索が必要である。したがって、図6(A)に示した検索方式では、ページテーブル検索のために最多でサポートしているページサイズの数の回数分のメモリアクセスが発生する。また、図6(A)に示した検索方式では、ページサイズに対応するページテーブルの検索順を制御することができない。
【0009】
図6(B)に示す検索方式では、主記憶に配置しているページテーブルを検索するために、ポインタアドレス生成用のベースアドレスが格納されたベースレジスタをサポートしているページサイズの数分有する。各ベースレジスタB1REG、B2REG、B3REG、B4REGには、有効ビットV、ページテーブルの検索に用いられるベースアドレスBASE、ページサイズPS、テーブルサイズTS等が格納されている。
【0010】
TLBミスが発生した場合には、PTA生成処理111により、TLBミスを発生させた仮想アドレスMVAの一部とベースレジスタの1つに格納されているベースアドレスBASEから、ページサイズに対応するページテーブルのポインタアドレスが生成される。テーブル検索処理113では、このポインタアドレスが指し示すアドレスからページテーブルが読み出される。読み出されたページテーブルからTLBミスの仮想アドレスMVAに対応するエントリが見つかった場合には、そのエントリがTLBに登録されて、仮想アドレスMVAに対応する物理アドレスが出力され、ハードウェアによるアドレス変換処理を終了する。
【0011】
一方、読み出されたページテーブルから仮想アドレスMVAに対応するエントリが見つからない場合には、別のベースレジスタからベースアドレスBASEを取り出す。そして、PTA生成処理111により、TLBミスの仮想アドレスMVAの一部と今回取り出したベースアドレスBASEから、ページサイズに対応するページテーブルのポインタアドレスが生成される。テーブル検索処理113にて、このポインタアドレスが指し示すアドレスから同様にページテーブルの検索し、アドレス変換処理を行う。
【0012】
図6(B)に示した検索方式では、検索順序制御機構112によりページテーブルの検索を逐次的に行うか、並列に行うかが制御可能である。ページテーブルの検索を逐次的に行う場合には、どのベースレジスタの情報を使用するかの優先順位が固定であり、ページサイズに対応するページテーブルの検索もその順に従い固定である。逐次的にページテーブルを検索する際、検索したページテーブルにTLBミスの仮想アドレスMVAに対応するエントリが登録されていた場合には、後続のページテーブル検索は行わずに、アドレス変換処理を終了する。しかし、検索したページテーブルにTLBミスの仮想アドレスMVAに対応するエントリが見つからない場合には、ページテーブル検索のために最多でベースレジスタの数の分のメモリアクセスが発生する。また、並行にページテーブルを検索する場合には、ページテーブル検索のためにベースレジスタの数の分のメモリアクセスが発生する。このように、図6(B)に示した検索方式では、1つのTLBミスに対して、ページテーブル検索のために1回から最大では有効なベースレジスタの数の分のメモリアクセスが発生する。
【0013】
また、下記特許文献1には、あるサイズのページをnページ持つ主記憶に関し、ページの使用頻度をカウントする使用頻度カウンタを有し、使用頻度に応じたページの入れ換えを行う主記憶のページ管理方式が提案されている。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開平5−40698号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
ここで、1つのTLBミスに対して、実際にTLBに登録され使用されるページテーブルのエントリは、TLBミスを発生させた仮想アドレスに対応する1つのエントリだけである。
【0016】
図6(A)に示した検索方式では、第1のポインタアドレスPTA1により検索したページテーブルに、TLBミスの仮想アドレスに対応するエントリが存在すれば、1回のページテーブル検索(メモリアクセス)でアドレス変換処理が終了する。しかし、検索したページテーブルにTLBミスの仮想アドレスに対応するエントリが存在しない場合には、対応するエントリに辿り着くまで複数回のページテーブル検索(メモリアクセス)が行われる。そのため、無駄なテーブルフェッチによるメモリアクセス(リクエスト)が頻発するという問題がある。また、不要なページテーブルのエントリがキャッシュメモリに登録されることで、キャッシュメモリが汚染されるという問題がある。さらには、不要なページテーブルから検索を行う可能性があり、ページテーブル検索の処理時間を無駄に増加させることとなる。
【0017】
また、図6(B)に示した検索方式では、ページテーブルの検索を逐次的に行うと、図6(A)に示した検索方式と同様の問題がある。ページテーブルの検索を並行に行う場合にも、無駄なテーブルフェッチによるメモリアクセス(リクエスト)が頻発するとともに、使用しないページテーブルのエントリがキャッシュメモリに登録されてキャッシュメモリが汚染されるという問題がある。
【0018】
1つの側面では、本発明の目的は、TLBミスが発生した場合に、ページテーブル検索における不要なメモリアクセスの発生を抑制することができるアドレス変換装置を提供することにある。
【課題を解決するための手段】
【0019】
アドレス変換装置の一態様は、仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、アドレス変換バッファに、仮想アドレスと物理アドレスの組を保持するページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、アドレス変換バッファから追い出された仮想アドレスとそれに対応するページサイズとの組を保持する履歴保持部と、ベースアドレスをページサイズ毎に保持するベースレジスタと、メモリ管理部とを有する。メモリ管理部は、命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づきアドレス変換バッファを検索し、検索ミスが発生した場合、履歴保持部が保持する仮想アドレスとページサイズとの組とベースレジスタが保持するベースアドレスとから生成した、主記憶装置におけるページテーブルのアドレスを示すポインタアドレスに基づき、主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、変換対象の仮想アドレスを物理アドレスに変換する。
【発明の効果】
【0020】
発明の1態様においては、TLBミスが発生した場合に、ページテーブル検索における不要なメモリアクセスの発生を抑制することができる。
【図面の簡単な説明】
【0021】
【図1】本発明の実施形態におけるページテーブルの第1の検索方式の例を模式的に示す図である。
【図2】本実施形態におけるページテーブルの第1の検索方式の他の例を模式的に示す図である。
【図3】本実施形態におけるページテーブルの第2の検索方式の例を模式的に示す図である。
【図4】本実施形態におけるページテーブルの第3の検索方式の例を模式的に示す図である。
【図5】本実施形態におけるプロセッサシステムの構成例を示す図である。
【図6】ページテーブルの検索方式の例を模式的に示す図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面に基づいて説明する。
まず、本発明の実施形態におけるページテーブルの検索方式について説明する。以下に説明するページテーブルの検索方式は、メモリアクセスにおいてTLBミスが発生したときに行われる主記憶に配置されているページテーブルの検索に係る検索方式である。なお、以下の説明においては、ページテーブルを逐次的に検索するように検索順序の制御を行う動作モードを「逐次モード」とも称し、複数のページテーブルを並列に検索するように検索順序の制御を行う動作モードを「並列モード」とも称す。
【0023】
<第1の検索方式>
図1は、本実施形態におけるページテーブルの第1の検索方式の例を模式的に示す図である。本実施形態におけるページテーブルの第1の検索方式では、ページテーブルを検索した際にページテーブルがヒットした回数をカウントするための使用頻度カウンタをベースレジスタ毎に設け、そのカウンタ値に応じてページテーブルの検索順序を制御する。ページテーブルがヒットするとは、そのページテーブルにTLBミスを発生させた仮想アドレス(以下、単に「TLBミスの仮想アドレス」とも称す。)に対応するエントリが存在することを意味する。
【0024】
図1において、ベースレジスタBiREG(iは添え字であり、i=1、2、3、4である。以下についても同様)は、主記憶に配置されているページテーブルを検索するためのポインタアドレス生成用のベースアドレスBASEが格納されるレジスタである。ベースレジスタBiREGは、例えばサポートするページサイズの各々に対して設けられる。ベースレジスタBiREGの各々には、ベースアドレスBASEの他に、例えば有効ビットV、ページサイズPS、テーブルサイズTS等が格納されている。有効ビットVは、ベースレジスタBiREGに格納されている情報が有効であるか否かを示す。ページサイズPSは、ベースレジスタBiREGに格納されている情報が、サポートされる複数のページサイズの内のどのページサイズに対応する情報であるかを示し、テーブルサイズTSは、ページテーブルの大きさを示す。
【0025】
PTA生成処理11−iでは、TLBミスを発生させた仮想アドレスMVAの一部とベースレジスタBiREGに格納されているベースアドレスBASEとから、そのページサイズPSに対応するページテーブルのポインタアドレスPTAiが生成される。検索順序制御機構12Aは、ベースレジスタBiREG毎に設けられた使用頻度カウンタ14−iのカウンタ値に基づいて、ページテーブルの検索順序を制御する。検索順序制御機構12Aによって指定される検索順序に従って、テーブル検索処理13−iが行われる。
【0026】
テーブル検索処理13−iでは、対応するPTA生成処理11−iにより生成されたポインタアドレスPTAiが指し示すアドレスからページテーブルが読み出され、TLBミスの仮想アドレスMVAに対応するエントリが存在するか否かが検索される。また、テーブル検索処理13−iでは、読み出されたページテーブルからTLBミスの仮想アドレスMVAに対応するエントリが見つかった場合には、そのエントリがTLBに登録され、仮想アドレスMVAに対応する物理アドレスPAiが出力される。また、テーブル検索処理13−iにおける検索結果は、検索順序制御機構12A等に報告される。
【0027】
使用頻度カウンタ14−iは、対応するベースレジスタBiREGに格納されているベースアドレスBASEから生成されたポインタアドレスPTAiに基づいて読み出されたページテーブルが過去にヒットした回数をカウントする。使用頻度カウンタ14−iは、例えばポインタアドレスPTAiに基づいて読み出されたページテーブルがヒットした場合には、そのカウンタ値が1だけインクリメント(+1)される。なお、使用頻度カウンタ14−iの何れかにおいて、カウンタ値が最大値に達する、若しくはオーバーフローする場合には、例えばすべての使用頻度カウンタ14−iのカウンタ値がクリア又は任意の値に設定される。また、すべての使用頻度カウンタ14−iのカウンタ値を1ずつデクリメント(−1)するようにしても良い。また、ベースレジスタBiREGの何れかが更新された場合には、それまでのカウンタ値は意味をなさないため、例えばすべての使用頻度カウンタ14−iのカウンタ値がクリア又は任意の値に設定される。
【0028】
第1の検索方式において主記憶のページテーブルを逐次的に検索する逐次モードでは、検索順序制御機構12Aは、使用頻度カウンタ14−iのカウンタ値が大きいベースレジスタBiREGに対応するページサイズ順にページテーブルの検索を行うように制御する。これにより、過去のヒット率が高いページテーブルを検索するためのベースアドレスBASEが格納されたベースレジスタBiREGを優先してページテーブルの検索を行うことができる。すなわち、TLBミスの仮想アドレスMVAに対応するエントリが存在する可能性が高いと考えられる順にページテーブルの検索を行うことができ、不要なメモリアクセス(リクエスト)の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【0029】
なお、逐次モードであっても、複数の使用頻度カウンタ14−iのカウンタ値が所定の閾値に達した場合には、複数個のベースレジスタBiREGによるページテーブル、すなわち複数のページサイズに対応するページテーブルを同時に検索するようにしても良い。例えば、カウンタ値が閾値に達した使用頻度カウンタ14−iの内のカウンタ値が大きい使用頻度カウンタ14−iに対応するベースレジスタBiREGについて同時にページテーブルの検索を行うようにしても良い。そうすることで、例えば2つのページサイズが均等な頻度で使用されているような場合に、ページテーブルを検索するページサイズの変更にかかる時間を短縮でき、アドレス変換処理に要する時間の短縮を図ることができる。
【0030】
また、第1の検索方式において主記憶のページテーブルを並列に検索する並列モードでは、検索順序制御機構12Aは、使用頻度カウンタ14−iのカウンタ値が大きい複数個のベースレジスタBiREGに対応するページテーブルを同時に検索するように制御する。ただし、同時に検索を行うページテーブルの数は、ベースレジスタBiREGの総数未満の数とする。これにより、すべてのページテーブルを同時に検索せずに、過去のヒット率が高いページテーブルを検索するためのベースアドレスBASEが格納されたベースレジスタBiREGの幾つかを優先して同時にページテーブルの検索を行うことができる。したがって、不要なメモリアクセス(リクエスト)の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【0031】
なお、ベースレジスタBiREGが、命令用及びオペランド用として共通して用いられる場合には、図2に示すように命令用の使用頻度カウンタ14A−iとオペランド用の使用頻度カウンタ14B−iとをベースレジスタBiREG毎に設けるようにしても良い。図2は、本実施形態におけるページテーブルの第1の検索方式の他の例を模式的に示す図である。図2において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0032】
図2において、命令用の使用頻度カウンタ(IF)14A−i及びオペランド用の使用頻度カウンタ(OP)14B−iのカウンタとしての機能は、図1に示した使用頻度カウンタ14−iと同様である。命令用の使用頻度カウンタ(IF)14A−iは命令アクセスにおいて使用され、オペランド用の使用頻度カウンタ(OP)14B−iはオペランドアクセスにおいて使用される。すなわち、命令アクセスにおいてページテーブルがヒットした場合には、そのポインタアドレスPTAiの生成に使用されたベースレジスタBiREGに対応する命令用の使用頻度カウンタ(IF)14A−iのカウンタ値が1だけインクリメントされる。同様に、オペランドアクセスにおいてページテーブルがヒットした場合には、そのポインタアドレスPTAiの生成に使用されたベースレジスタBiREGに対応するオペランド用の使用頻度カウンタ(OP)14B−iのカウンタ値が1だけインクリメントされる。
【0033】
また、検索順序制御機構12Bは、図1に示した検索順序制御機構12Aに対応し、命令用の使用頻度カウンタ(IF)14A−i及びオペランド用の使用頻度カウンタ(OP)14B−iのカウンタ値に基づいて、ページテーブルの検索順序を制御する。検索順序制御機構12Bは、命令アクセスにおいてページテーブルの検索を行う場合には、命令用の使用頻度カウンタ(IF)14A−iのカウンタ値に基づいて、ページテーブルの検索順序を制御する。また、検索順序制御機構12Bは、オペランドアクセスにおいてページテーブルの検索を行う場合には、オペランド用の使用頻度カウンタ(OP)14B−iのカウンタ値に基づいて、ページテーブルの検索順序を制御する。
【0034】
<第2の検索方式>
図3は、本実施形態におけるページテーブルの第2の検索方式の例を模式的に示す図である。図3において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。本実施形態におけるページテーブルの第2の検索方式では、新規エントリの登録によりTLBから追い出されたエントリの履歴情報を所定数格納しておく。そして、ページテーブルを逐次的に検索する場合には、格納されている履歴情報を参照してページテーブルの検索順序を決定し、ページテーブルの検索を行う。
【0035】
図3において、アドレス変換バッファ(TLB:Translation Lookaside Buffer)15は、主記憶に配置されたページテーブルの一部を保持(キャッシュ)し、仮想アドレスから物理アドレスへのアドレス変換を行う。記憶部16は、新規エントリの登録によりTLB15から追い出されたエントリの履歴情報を格納する。履歴情報は、例えば仮想アドレスVA及びページサイズPSを含む。仮想アドレス比較処理17では、TLBミスを発生させた仮想アドレスMVAと履歴情報として記憶部16に格納されている仮想アドレスVAとが比較され、一致するものがある場合には選択部18に通知される。
【0036】
選択部18は、仮想アドレス比較処理17による通知を受けると、TLBミスの仮想アドレスMVAと格納されている仮想アドレスVAとが一致した履歴情報のページサイズPSを取り出して出力する。ページサイズ比較処理19では、選択部18より出力されたページサイズと、有効なベースレジスタBiREGに格納されているページサイズとが比較され、比較結果を検索順序制御部12Cに通知する。
【0037】
検索順序制御部12Cは、主記憶のページテーブルを逐次的に検索する逐次モードでは、ページサイズ比較処理19での比較結果を参照してページテーブルの検索順序を制御する。詳細には、検索順序制御部12Cは、ページサイズ比較処理19にて選択部18より出力されたページサイズと格納されているページサイズとが一致するベースレジスタBiREGがある場合には、そのベースレジスタBiREGによるページテーブルの検索を最初に行うよう制御する。検索順序制御機構12Cによって決定される検索順序に従って、テーブル検索処理13−iが行われる。
【0038】
このように第2の検索方式では、新規エントリを登録するためにTLB15から追い出されたエントリを参照し、仮想アドレスがTLBミスの仮想アドレスMVAと一致するページサイズに対応するベースレジスタBiREGを優先しページテーブルの検索を行う。これにより、必要なページテーブルから検索を行うことができ、不要なページテーブルの検索にかかる時間を省くことが可能になり、アドレス変換に要する時間を短縮することができるとともに、不要なメモリアクセス(リクエスト)の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【0039】
<第3の検索方式>
図4は、本実施形態におけるページテーブルの第3の検索方式の例を模式的に示す図である。図4において、図1及び図3に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。図4に示す本実施形態におけるページテーブルの第3の検索方式は、前述した第1の検索方式と第2の検索方式とを組み合わせた検索方式である。
【0040】
図4において、検索順序制御機構12Dは、ページテーブルを逐次的に検索する場合には、前述した第2の検索方式に従ってページテーブルの検索順序の制御を行い、その後、前述第1の検索方式に従ってページテーブルの検索順序の制御を行う。例えば、検索順序制御機構12Dは、記憶部16に格納された履歴情報を参照し、仮想アドレスがTLBミスの仮想アドレスMVAと一致するページサイズに対応するベースレジスタBiREGを優先しページテーブルの検索を行うように制御する。検索の結果、TLBミスの仮想アドレスMVAに対応するエントリがヒットしなかった場合には、検索順序制御機構12Dは、使用頻度カウンタ14−iのカウンタ値が大きいベースレジスタBiREGに対応するページサイズ順にページテーブルの検索を行うように制御する。このとき、履歴情報に格納された仮想アドレスがTLBミスの仮想アドレスMVAと一致したことによって既にページテーブルの検索が行われたベースレジスタBiREGを除外してページテーブルの検索順序が制御される。したがって、第3の検索方式においても、前述した第1の検索方式及び第2の検索方式と同様に、不要なメモリアクセス(リクエスト)の発生を抑制することができる。また、不要なページテーブルのエントリがキャッシュメモリに登録されることを抑制し、キャッシュメモリが汚染されるのを防止することができる。
【0041】
図4に示した第3の検索方式では、さらに新規エントリを登録するためにTLB15から追い出されたエントリを履歴情報として格納するか否かを、使用頻度カウンタ14−iのカウンタ値を参照して決定するようにしている。選択部20は、カウンタ大小比較処理21によりカウンタ値が小さいと判定された使用頻度カウンタ14−iに対応するベースレジスタBiREGに格納されているページサイズを出力する。ページサイズ比較処理22では、選択部20より出力されたページサイズと新規エントリの登録によりTLB15から追い出されたエントリのページサイズとが比較され、一致する場合には、そのエントリを履歴情報として記憶部16に格納することを許可する。
【0042】
このようにして記憶部16に履歴情報として格納するエントリを、使用頻度カウンタ14−iのカウンタ値が小さいページサイズ、すなわち参照頻度の低い(ページテーブルのヒット率が低い)ページサイズのエントリに限定する。これにより、参照頻度が低いページサイズのエントリのみ履歴情報として登録されるようになり、履歴情報として保持可能なエントリ数を減らしたとしても、参照頻度の低いページサイズのエントリが履歴情報として残っている可能性を高めることができる。したがって、参照頻度が低いページサイズについては前述の第2の検索方式で予測し、参照頻度が高いページサイズについては前述の第1の検索方式で予測することとなり、変換対象アドレスのページサイズの参照頻度にかかわらず、使用されるページサイズの予測が可能になる。
【0043】
次に、前述した各検索方式でのページテーブル検索を実現するプロセッサシステムについて説明する。図5は、本実施形態におけるプロセッサシステムの構成例を示す図である。
【0044】
図5において、51は命令演算部、52はメモリ管理部、53はキャッシュ制御部、54は主記憶(又は下位階層キャッシュ)である。メモリ管理部52は、アドレス変換制御部55、アドレス変換バッファ部(TLB部)56、TLBヒット検出部57、出力部58、及びポインタアドレス(PTA)生成部59を有する。キャッシュ制御部53は、キャッシュタグ部60、キャッシュ(データ部)61、キャッシュヒット検出部62、出力部63、及びテーブルヒット検出部64を有する。また、アドレス変換制御部55は、ページサイズ比較部70、記憶部71、仮想アドレス比較部72、出力部73、ページサイズ比較部74、出力部75、使用頻度カウンタ76、ベースレジスタBiREG、カウンタ値比較部77、及びカウンタ値チェック部78を有する。ページサイズ比較部74、出力部75、及びカウンタ値比較部77により、前述した検索順序制御機構の機能が実現される。
【0045】
なお、図5に示したプロセッサシステムの構成は一例であって、これに限定されるものではない。例えば、TLB部56、キャッシュタグ部60、キャッシュ61、ベースレジスタBiREG、記憶部71等は、命令用及びオペランド用に分離しても良いし、共用しても良い。また、ベースレジスタBiREG(及びそれに対応する使用頻度カウンタ76)や記憶部71に格納される履歴情報RIの数についても任意である。また、TLB部56の階層構造についても何ら制約はない。
【0046】
図5に示したプロセッサシステムでの処理について説明する。
〔処理A〕
まず、実行する処理の流れの制御や演算等を行う命令演算部51から仮想アドレスを用いた命令/オペランドのメモリアクセス要求REQ1が発行されると、メモリ管理部52は、その仮想アドレスに対応するエントリがTLB部56に存在するか検索を行う。TLB部56は、ページテーブルの一部を保持(キャッシュ)している。すなわち、TLB部56には、仮想アドレスと物理アドレスとの対応情報を有するエントリが格納されており、基本的には仮想アドレスがTLBタグとして、物理アドレスがTLBデータとして格納されている。
【0047】
メモリアクセス要求REQ1における仮想アドレスの一部がインデックスとしてTLB部56に供給され、それに応じてインデックスに対応するエントリのTLBタグがTLB部56からTLBヒット検出部57に供給される。TLBヒット検出部57は、TLB部56から供給されるTLBタグと、そのTLBタグに対応するメモリアクセス要求REQ1における仮想アドレスの一部とを比較する。比較の結果、TLBタグと仮想アドレスの一部とが一致する、すなわちメモリアクセス要求REQ1における仮想アドレスに対応するエントリがTLB部56に存在する場合には、メモリ管理部52は、そのエントリを用いて仮想アドレスを物理アドレスに変換する。そして、キャッシュ制御部53は、変換された物理アドレスに対して命令フェッチ、オペランドフェッチ、オペランドストア等を実行する。
【0048】
一方、TLBタグと仮想アドレスの一部とが一致しない、すなわちメモリアクセス要求REQ1における仮想アドレスに対応するエントリがTLB部56に存在しない場合(TLBミスの場合)には、TLBヒット検出部57は、TLBミス信号をアサートする。TLBミス信号がアサートされると、それをトリガとして出力部58は、アドレス変換制御部55及びキャッシュ制御部53へ第1のテーブル検索要求REQ2を発行する。
【0049】
〔処理B〕
第1のテーブル検索要求REQ2が発行されるとアドレス変換制御部55では、仮想アドレス比較部72が、TLBミスを発生させた仮想アドレスと記憶部71に履歴情報RIとして格納している仮想アドレスとの比較を行う。仮想アドレス比較部72での比較の結果、TLBミスの仮想アドレスに一致する仮想アドレスが格納されている履歴情報RIがある場合には、出力部73は、その仮想アドレスと一緒に格納されてページサイズを取り出し、ページサイズ比較部74に供給する。ページサイズ比較部74は、出力部73から供給されるページサイズと、有効なベースレジスタBiREGに格納されているページサイズとを比較する。ページサイズ比較部74での比較の結果、出力部73から供給されるページサイズに一致するページサイズが存在した場合には、出力部75は、そのページサイズに対応するベースレジスタBiREGの情報をポインタアドレス生成部59に供給する。ポインタアドレス生成部59は、出力部75から供給されたベースレジスタBiREGの情報とTLBミスの仮想アドレスから、ページテーブルを検索するためのポインタアドレスPTAを生成する。この生成されたポインタアドレスPTAを用いてメモリアクセスが行われる。
【0050】
〔処理C〕
ページテーブル検索に係るメモリアクセスでは、まずキャッシュタグ部60及びキャッシュ61を検索する。ポインタアドレスPTAの一部がインデックスとしてキャッシュタグ部60に供給され、それに応じてインデックスに対応するタグがキャッシュタグ部60からキャッシュヒット検出部62に供給される。キャッシュヒット検出部62は、キャッシュタグ部60から供給されるタグと、そのタグに対応するポインタアドレスPTAの一部とを比較する。その結果、タグとポインタアドレスPTAの一部とが一致しない場合には、ポインタアドレスPTAに対応するデータがキャッシュ61に存在しない(キャッシュミス)と判定する。このとき、キャッシュヒット検出部62は、キャッシュミスを報告し、主記憶54にデータ要求REQ4を発行する。データ要求REQ4に対する応答として主記憶54からデータDATが供給されると、ポインタアドレスPTA及び主記憶54からのデータDATをキャッシュタグ部60及びキャッシュ61にタグ及びデータとして登録し、再度テーブル検索要求処理を行う。
【0051】
ポインタアドレスPTAに対応するデータがキャッシュ61に存在する場合には、キャッシュヒット検出部62は、キャッシュヒットを報告し、キャッシュ61の読み出しデータは有効となり出力部63を介して出力される。このキャッシュ61の読み出しデータは、TLBタグ及びTLBデータの対で構成されている。テーブルヒット検出部64は、TLBタグとしての仮想アドレスとTLBミスの仮想アドレスとが一致する場合には、テーブルヒットを報告し、TLB登録要求REQ3をメモリ管理部52のTLB部56に対して行う。これにより、TLBタグ及びTLBデータの対がTLB部56に登録され、TLBミスによるページテーブルの検索及びTLB部56へのエントリ登録に係る処理が完了する。テーブルヒット検出部64は、TLBタグとしての仮想アドレスとTLBミスの仮想アドレスとが一致しない場合には、テーブルミスを報告し、それをトリガとして出力部58は、第2のテーブル検索要求REQ2を発行する。
【0052】
〔処理D〕
第2のテーブル検索要求REQ2が発行されるとアドレス変換制御部55では、カウンタ値比較部77が、ベースレジスタBiREG毎に設けられている使用頻度カウンタ76のカウンタ値の比較を行う。出力部75は、カウンタ値比較部77での比較結果に応じて検索順序を制御し、ベースレジスタBiREGの情報をポインタアドレス生成部59に供給する。なお、命令用及びオペランド用に使用頻度カウンタ76をそれぞれ設けた場合には、命令リクエストによるテーブル検索要求では命令用の使用頻度カウンタのカウンタ値を比較し、オペランドリクエストによるテーブル検索要求ではオペランド用の使用頻度カウンタのカウンタ値を比較する。
【0053】
一例として、ベースレジスタB1REGに対応する使用頻度カウンタ76のカウンタ値が2であるとし、ベースレジスタB2REGに対応する使用頻度カウンタ76のカウンタ値が3であるとする。また、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値が4であるとし、ベースレジスタB4REGに対応する使用頻度カウンタ76のカウンタ値が0であるとする。ここで、仮に前述した〔処理B〕及び〔処理C〕によって履歴情報RIによるページテーブルの検索がベースレジスタB1REGについて既に行われている場合には、ベースレジスタB1REGを除いて使用頻度カウンタ76のカウンタ値の比較を行う。すなわち、カウンタ値比較部77は、ベースレジスタB2REG、B3REG、B4REGに対応する使用頻度カウンタ76のカウンタ値を比較する。一方、履歴情報RIによるページテーブルの検索が行われていない場合には、カウンタ値比較部77は、ベースレジスタB1REG、B2REG、B3REG、B4REGに対応する使用頻度カウンタ76のカウンタ値を比較する。
【0054】
以下では、ベースレジスタB1REGについては既に履歴情報RIによるページテーブルの検索が行われているものとして説明する。このとき、ページテーブルの検索順序は、B3REG→B2REG→B4REGとなる。出力部75から供給されるベースレジスタの情報とTLBミスの仮想アドレスから、ポインタアドレス生成部59によりページテーブルを検索するためのポインタアドレスPTAが生成され、ページテーブル検索に係るメモリアクセスが行われる。なお、それぞれのポインタアドレスPTAを用いたメモリアクセスについては前述した〔処理C〕と同様であるので、以下ではメモリアクセスについての説明は省略し、ページテーブル検索の流れについて説明する。
【0055】
〔処理D−1:逐次モード〕
逐次モードでは、ベースレジスタB3REGによるページテーブルの検索が行われ、その検索においてテーブルヒット検出部64がテーブルヒットを報告すれば、TLB登録要求REQ3をメモリ管理部52のTLB部56に対して行う。これにより、キャッシュ61の読み出しデータであるTLBタグ及びTLBデータの対がTLB部56に登録され、TLBミスによるページテーブルの検索及びTLB部56へのエントリ登録に係る処理が完了する。一方、ベースレジスタB3REGによるページテーブルの検索においてテーブルヒット検出部64がテーブルミスを報告した場合には、それをトリガとして次のページテーブルについてのテーブル検索要求が発行される。そして、ベースレジスタB3REGによるページテーブルの検索と同様にして、ベースレジスタB2REGによるページテーブルの検索が行われる。さらに、ベースレジスタB2REGによるページテーブルの検索においてもテーブルヒット検出部64がテーブルミスを報告した場合には、それをトリガとして次のページテーブルについてのテーブル検索要求が発行される。そして、ベースレジスタB3REGによるページテーブルの検索と同様にして、ベースレジスタB4REGによるページテーブルの検索が行われる。
【0056】
〔処理D−2:並列モード〕
並列モードでは、優先順位の高い複数のベースレジスタによるページテーブル検索を並列に要求する。ここでは、優先順位の高い2つのベースレジスタによるページテーブル検索を並行して行う例を示す。本例では、ベースレジスタB3REGによるページテーブルの検索が開始された後、テーブルヒット検出部64からの検出結果を待たずに、ベースレジスタB2REGによるページテーブルの検索に係るテーブル検索要求が発行される。
【0057】
ベースレジスタB3REGによるページテーブルの検索においてテーブルヒット検出部64がテーブルヒットを報告すれば、TLB登録要求REQ3をメモリ管理部52のTLB部56に対して行う。これにより、キャッシュ61の読み出しデータであるTLBタグ及びTLBデータの対がTLB部56に登録され、TLBミスによるページテーブルの検索及びTLB部56へのエントリ登録に係る処理が完了する。また、この場合には、ベースレジスタB2REGによるページテーブルの検索において、主記憶54へのデータ要求REQ4を行っていればそのデータ要求REQ4を完了させる。
【0058】
ベースレジスタB3REGによるページテーブルの検索においてテーブルヒット検出部64がテーブルミスを報告した場合には、ベースレジスタB2REGに対する処理へ移行する。そして、ベースレジスタB2REGによるページテーブルの検索においてテーブルヒット検出部64がテーブルヒットを報告すれば、TLB登録要求REQ3をメモリ管理部52のTLB部56に対して行う。これにより、キャッシュ61の読み出しデータであるTLBタグ及びTLBデータの対がTLB部56に登録され、TLBミスによるページテーブルの検索及びTLB部56へのエントリ登録に係る処理が完了する。一方、ベースレジスタB2REGによるページテーブルの検索においてテーブルヒット検出部64がテーブルミスを報告した場合には、ベースレジスタB4REGによるページテーブルの検索が行われる。
【0059】
なお、優先順位が高い2つのベースレジスタB3REG、B2REGによるページテーブルの検索において、ともにテーブルミスが報告された場合に、次のベースレジスタB4REGによるページテーブルの検索を行うようにしているが、これに限定されない。例えば、ベースレジスタB3REGによるページテーブルの検索においてテーブルミスが報告された時点で、次のベースレジスタB4REGによるページテーブルの検索を行うようにしても良い。
【0060】
また、例えば、履歴情報RIによるページテーブルの検索が行われていない場合には、優先順位の高い2つのベースレジスタB3REG、B2REGによるページテーブルの検索を並行して行う。その検索において、ともにテーブルミスが報告された場合に、次の2つのベースレジスタB1REG、B4REGによるページテーブルの検索を、ベースレジスタB3REG、B2REGによるページテーブルの検索と同様にして並行に行うようにしても良い。
【0061】
なお、前述した説明では、ページテーブルの検索を第3の検索方式で行う場合を一例として説明したが、第1の検索方式又は第2の検索方式で行うことも可能である。第1の検索方式で行う場合には、〔処理A〕においてTLBミスが発生したときに、出力部58が第2のテーブル検索要求REQ2を発行して〔処理D〕から処理を継続すれば良い。したがって、第1の検索方式のみが行われる場合には、プロセッサシステムは、ページサイズ比較部70、記憶部71、仮想アドレス比較部72、及び出力部73を備えていなくとも良い。また、第2の検索方式で行う場合には、〔処理A〕〜〔処理C〕を行った後、残りの各ベースレジスタBiREGによるページテーブルの検索を予め定めた順序で行えば良い。したがって、第2の検索方式のみが行われる場合には、プロセッサシステムは、使用頻度カウンタ76、カウンタ値比較部77、及びカウンタ値チェック部78を備えていなくとも良い。
【0062】
以下に、図5に示したプロセッサシステムにおける履歴情報RIの書き込み、及び使用頻度カウンタ76の制御について説明する。
・履歴情報RIの書き込み
新規エントリの登録によりTLB部56から追い出されたエントリを履歴情報RIとして記憶部71に格納する際、使用頻度カウンタ14−iのカウンタ値にかかわらず格納する場合には、TLB部56から追い出されたエントリがそのまま記憶部71に書き込まれる。また、使用頻度カウンタ14−iのカウンタ値を参照して、カウンタ値が小さいページサイズのエントリに限定する場合には、カウンタ値比較部77が、各ベースレジスタBiREGに対応する使用頻度カウンタ76のカウンタ値を比較する。そして、カウンタ値比較部77は、比較結果に基づきカウンタ値が小さいページサイズをページサイズ比較部70に通知する。ページサイズ比較部70は、カウンタ値比較部77より通知されたページサイズとTLB部56から追い出されたエントリのページサイズとの比較を行い、一致する場合にはTLB部56から追い出されたエントリの記憶部71への書き込みを許可する。
【0063】
・使用頻度カウンタ76の制御
使用頻度カウンタ76の制御は、信号SG1、SG2、及びカウンタ値チェック部78の出力に基づいて行われる。
【0064】
信号SG1は、ベースレジスタBiREGの更新を通知する信号である。信号SG1によりベースレジスタBiREGの更新が通知されると、それまでのカウンタ値は意味をなさないため、例えばすべての使用頻度カウンタ76のカウンタ値がクリア又は任意の値に再設定される。例えば、ベースレジスタB1REGに対応する使用頻度カウンタ76のカウンタ値が2であるとし、ベースレジスタB2REGに対応する使用頻度カウンタ76のカウンタ値が3であるとする。また、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値が4であるとし、ベースレジスタB4REGに対応する使用頻度カウンタ76のカウンタ値が0であるとする。この状態で、信号SG1によりベースレジスタB1REGの更新が通知された場合には、ベースレジスタB1REGに対応する使用頻度カウンタ76のカウンタ値を0とする。また、ベースレジスタB2REG、B4REGに対応する使用頻度カウンタ76のカウンタ値をともに0とし、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値を1とする。このようにして、ベースレジスタB1REGが更新される前に、ベースレジスタB2REG、B3REG、B4REGの中で最もカウンタ値が大きかった使用頻度カウンタ76のカウンタ値を大きく設定する。
【0065】
信号SG2は、ページテーブルがヒットしTLB登録要求REQ3が発行されたときに、使用頻度カウンタ76のカウンタ値を1インクリメントさせるための信号である。信号SG2がアサートさせると、ヒットしたページテーブルに係るベースレジスタBiREGに対応する使用頻度カウンタ76のカウンタ値が1インクリメントされる。
【0066】
カウンタ値チェック部78は、使用頻度カウンタ76のカウンタ値が最大値に達したか、若しくはオーバーフローするかを判定し、判定結果を出力する。使用頻度カウンタ76のカウンタ値が最大値に達したか、若しくはオーバーフローすると判定された場合には、例えばすべての使用頻度カウンタ76のカウンタ値がクリア又は任意の値に再設定される。例えば、使用頻度カウンタ76のカウンタ値の最大値を4とし、カウンタ値が最大値に達したと判定された場合に、使用頻度カウンタ76のカウンタ値をクリア又は任意の値に設定するものとする。ベースレジスタB1REGに対応する使用頻度カウンタ76のカウンタ値が2であるとし、ベースレジスタB2REGに対応する使用頻度カウンタ76のカウンタ値が3であるとする。また、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値が4であるとし、ベースレジスタB4REGに対応する使用頻度カウンタ76のカウンタ値が0であるとする。このとき、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値が最大値に達しているので、ベースレジスタB1REG、B2REG、B4REGに対応する使用頻度カウンタ76のカウンタ値をともに0とする。また、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値を1とする。このようにすることで、次にページテーブルの検索を行う際にも、クリア前にカウンタ値が最も大きいベースレジスタから検索を行うことができる。
【0067】
また、使用頻度カウンタ76のカウンタ値が最大値に達したか、若しくはオーバーフローすると判定された場合には、例えばすべての使用頻度カウンタ76のカウンタ値を1デクリメントするようにしてもよい。例えば、使用頻度カウンタ76のカウンタ値が前述した例と同様である場合には、ベースレジスタB1REGに対応する使用頻度カウンタ76のカウンタ値を1にし、ベースレジスタB2REGに対応する使用頻度カウンタ76のカウンタ値を2にする。また、ベースレジスタB3REGに対応する使用頻度カウンタ76のカウンタ値を3にし、ベースレジスタB4REGに対応する使用頻度カウンタ76のカウンタ値を0にする。こうすることにより、使用頻度が高いページテーブルのベースレジスタと使用頻度が低いページテーブルのベースレジスタとのカウンタ値に差をつけることができる。したがって、次にページテーブルの検索を行う際にも使用頻度の高いベースレジスタを優先してページテーブルの検索を行うことができる。
【0068】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【0069】
(付記1)
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置と、メモリアクセス要求を発行する命令制御部とに接続されるアドレス変換装置において、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部と、
を有することを特徴とするアドレス変換装置。
(付記2)
前記アドレス変換装置において、
前記メモリ管理部は、
前記変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組のうち、前記変換対象の仮想アドレスと一致する仮想アドレスと組に含まれるページサイズと、前記一致する仮想アドレスと組に含まれるページサイズに対応する前記ベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記1記載のアドレス変換装置。
(付記3)
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、最大の計数値のカウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記1記載のアドレス変換装置。
(付記4)
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、計数値が所定値を超えた複数のカウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする付記3記載のアドレス変換装置。
(付記5)
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタにおいて計数値が所定値を超えた複数のカウンタのうち、計数値が大きい値のカウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする付記3記載のアドレス変換装置。
(付記6)
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスの組のうち、前記ベースレジスタが有するページサイズ毎のカウンタのうち最小の計数値のカウンタのベースレジスタに対応するページサイズの新たな仮想アドレスと物理アドレスを、前記アドレス変換バッファに登録することを特徴とする付記1記載のアドレス変換装置。
(付記7)
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎に、命令に対するメモリアクセスに用いる命令用カウンタとオペランドに対するメモリアクセスに用いるオペランド用カウンタを有し、前記アドレス変換バッファに命令に対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有する命令用カウンタの計数値を増分させるとともに、前記アドレス変換バッファにオペランドに対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するオペランド用カウンタの計数値を増分させ、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする付記1記載のアドレス変換装置。
(付記8)
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち、計数値が所定値を超えた複数の命令用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち、計数値が所定値を超えた複数のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする付記7記載のアドレス変換装置。
(付記9)
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタにおいて計数値が所定値を超えた複数の命令用カウンタのうち、最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタにおいて計数値が所定値を超えた複数のオペランド用カウンタのうち、最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする付記7記載のアドレス変換装置。
(付記10)
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令制御部と、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部とを有することを特徴とする演算処理装置。
(付記11)
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置の制御方法において、
演算処理装置のメモリ管理部が、前記演算処理装置の命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき、仮想アドレスと物理アドレスの組を登録するアドレス変換バッファを検索し、
前記アドレス変換バッファの検索により検索ミスが発生した場合、メモリ管理部が、履歴保持部が保持するアドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組と、ベースレジスタが保持する、ページの区切りを示す、仮想アドレスの一部であるベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記ページテーブルが保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換することを特徴とする演算処理装置の制御方法。
【符号の説明】
【0070】
BiREG ベースレジスタ
11−i PTA生成処理
12A〜12D 検索順序制御機構
13−i テーブル検索処理
14−i 使用頻度カウンタ
14A−i 使用頻度カウンタ(命令用)
14B−i 使用頻度カウンタ(オペランド用)
15 アドレス変換バッファ(TLB)
16 記憶部
17 仮想アドレス比較処理
18 選択部
19 ページサイズ比較処理

【特許請求の範囲】
【請求項1】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置と、メモリアクセス要求を発行する命令制御部とに接続されるアドレス変換装置において、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部と、
を有することを特徴とするアドレス変換装置。
【請求項2】
前記アドレス変換装置において、
前記メモリ管理部は、
前記変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組のうち、前記変換対象の仮想アドレスと一致する仮想アドレスと組に含まれるページサイズと、前記一致する仮想アドレスと組に含まれるページサイズに対応する前記ベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項1記載のアドレス変換装置。
【請求項3】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、最大の計数値のカウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項1記載のアドレス変換装置。
【請求項4】
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタのうち、計数値が所定値を超えた複数のカウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする請求項3記載のアドレス変換装置。
【請求項5】
前記アドレス変換装置において、
前記メモリ管理部は、
メモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のカウンタにおいて計数値が所定値を超えた複数のカウンタのうち、計数値が大きい値のカウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする請求項3記載のアドレス変換装置。
【請求項6】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎にカウンタを有し、前記アドレス変換バッファに新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するカウンタの計数値を増分させ、
前記メモリ管理部は、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスの組のうち、前記ベースレジスタが有するページサイズ毎のカウンタのうち最小の計数値のカウンタのベースレジスタに対応するページサイズの新たな仮想アドレスと物理アドレスを、前記アドレス変換バッファに登録することを特徴とする請求項1記載のアドレス変換装置。
【請求項7】
前記アドレス変換装置において、
前記ベースレジスタはさらに、
ページサイズ毎に、命令に対するメモリアクセスに用いる命令用カウンタとオペランドに対するメモリアクセスに用いるオペランド用カウンタを有し、前記アドレス変換バッファに命令に対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有する命令用カウンタの計数値を増分させるとともに、前記アドレス変換バッファにオペランドに対するメモリアクセス要求により新たな仮想アドレスと物理アドレスの組が登録された場合、登録された仮想アドレスに対応するページサイズのベースレジスタが有するオペランド用カウンタの計数値を増分させ、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから前記ポインタアドレスを生成することを特徴とする請求項1記載のアドレス変換装置。
【請求項8】
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタのうち、計数値が所定値を超えた複数の命令用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタのうち、計数値が所定値を超えた複数のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成した複数のポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を並列に検索することを特徴とする請求項7記載のアドレス変換装置。
【請求項9】
前記アドレス変換装置において、
前記メモリ管理部は、
命令に対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎の命令用カウンタにおいて計数値が所定値を超えた複数の命令用カウンタのうち、最大の計数値の命令用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索するとともに、オペランドに対するメモリアクセス要求により検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズの組と、前記ベースレジスタが有するページサイズ毎のオペランド用カウンタにおいて計数値が所定値を超えた複数のオペランド用カウンタのうち、最大の計数値のオペランド用カウンタのベースレジスタが保持するベースアドレスとから生成したポインタアドレスから順に、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索することを特徴とする請求項7記載のアドレス変換装置。
【請求項10】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令制御部と、
仮想アドレスと物理アドレスの組をページサイズ毎に保持して、仮想アドレスと物理アドレスの変換を行うアドレス変換バッファと、
前記アドレス変換バッファに前記ページテーブルから読み出された新たな仮想アドレスと物理アドレスとの組が登録された場合、前記アドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組を保持する履歴保持部と、
前記ページの区切りを示す、仮想アドレスの一部であるベースアドレスをページサイズ毎に保持するベースレジスタと、
前記命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき前記アドレス変換バッファを検索し、検索ミスが発生した場合、前記履歴保持部が保持する仮想アドレスとページサイズとの組と前記ベースレジスタが保持するベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記主記憶装置が保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換するメモリ管理部とを有することを特徴とする演算処理装置。
【請求項11】
仮想アドレスと物理アドレスの組を、仮想アドレスと物理アドレスの変換が行われる単位であるページの大きさを示すページサイズ毎に保持するページテーブルを記憶する主記憶装置に接続される演算処理装置の制御方法において、
演算処理装置のメモリ管理部が、前記演算処理装置の命令制御部が発行したメモリアクセス要求に含まれる変換対象の仮想アドレスに基づき、仮想アドレスと物理アドレスの組を登録するアドレス変換バッファを検索し、
前記アドレス変換バッファの検索により検索ミスが発生した場合、メモリ管理部が、履歴保持部が保持するアドレス変換バッファから追い出された仮想アドレスと、前記追い出された仮想アドレスに対応するページサイズとの組と、ベースレジスタが保持する、ページの区切りを示す、仮想アドレスの一部であるベースアドレスとから生成した、前記主記憶装置における前記ページテーブルのアドレスを示すポインタアドレスに基づき、前記ページテーブルが保持する仮想アドレスと物理アドレスの組を検索し、前記変換対象の仮想アドレスを物理アドレスに変換することを特徴とする演算処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−73270(P2013−73270A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−209755(P2011−209755)
【出願日】平成23年9月26日(2011.9.26)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】