(57)【要約】  変換索引緩衝器のエントリを最適化するシステムが提供される。システムは、多数のエントリを記憶するように構成されている変換索引緩衝器であって、各エントリがサイズ属性をもち、各エントリが対応するページを参照する変換索引緩衝器と、新しいページが既存のエントリによって参照される既存のページに隣接しているときは、変換索引緩衝器内の既存のエントリのサイズ属性を修正するように構成された制御論理とを含む。既存のエントリは、そのサイズ属性を修正した後で、既存のページおよび新しいページを含む統合されたページを参照する。【選択図】    図３
2008533620.tif 000002
【特許請求の範囲】
【請求項１】
仮想メモリの隣接ブロックを物理メモリにマップし、仮想メモリの隣接ブロックのサイズを示すサイズ属性を与えるように構成された変換索引緩衝器(translation lookaside buffer, TLB)と、
仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変え、それに応じて、サイズ属性を変えるように構成されたプロセッサとを含む処理システム。
【請求項２】
プロセッサが、ＴＬＢを含んでいる請求項１記載の処理システム。
【請求項３】
プロセッサが、仮想メモリの第１のブロックを仮想メモリの第２のブロックと統合することによって、仮想メモリの隣接ブロックのサイズを変えるようにさらに構成されている請求項１記載の処理システム。
【請求項４】
プロセッサが、仮想メモリの第１および第２のブロックの両者が隣接し、物理メモリの対応するものも隣接しているという判断に応答して、仮想メモリの第１および第２のブロックを統合するようにさらに構成されている請求項３記載の処理システム。
【請求項５】
プロセッサが、仮想メモリの第１のブロックのページアドレスを、物理メモリの対応するブロックのページアドレスにマップすることによって、仮想メモリの第１および第２のブロックを物理メモリの対応するブロックにマップするようにさらに構成されていて、仮想メモリの第１のブロックのページアドレスが、仮想メモリの第２のブロックのページアドレスよりも小さい請求項４記載の処理システム。
【請求項６】
プロセッサが、ページアドレスのマッピングを変更せずに、サイズ属性を変えることによって、仮想メモリの第１および第２のブロックを統合するようにさらに構成されている請求項５記載の処理システム。
【請求項７】
プロセッサが、サイズ属性を変え、仮想メモリの第２のブロックのページアドレスを、仮想メモリの第１のブロックのページアドレスへ変更し、それに応じて、物理メモリのブロックのページアドレスを変更することによって、仮想メモリの第１および第２のブロックを統合するようにさらに構成されている請求項５記載の処理システム。
【請求項８】
複数のエントリを記憶するように構成された変換索引緩衝器(ＴＬＢ)であって、エントリの各々が仮想メモリの隣接ブロックを物理メモリにマップし、エントリの各々が仮想メモリのそれぞれのブロックのサイズを示すサイズ属性をもつ、変換索引緩衝器(ＴＬＢ)と、
エントリの１つに対する仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変えるように構成されているプロセッサであって、前記エントリの１つに対するサイズ属性を変えるようにさらに構成されているプロセッサとを含む処理システム。
【請求項９】
プロセッサが、ＴＬＢを含んでいる請求項８記載の処理システム。
【請求項１０】
プロセッサが、前記エントリの１つに対する仮想メモリのブロックを、仮想メモリの新しいブロックと統合することによって、前記エントリの１つに対する仮想メモリの隣接ブロックのサイズを変えるようにさらに構成されている請求項８記載の処理システム。
【請求項１１】
プロセッサが、前記エントリの１つに対する仮想メモリブロックと新しい仮想メモリブロックとを、仮想メモリの両者のブロックが隣接し、物理メモリの対応するブロックも隣接しているという判断に応答して、統合するようにさらに構成されている請求項１０記載の処理システム。
【請求項１２】
プロセッサが、前記エントリの１つに対する仮想メモリブロックのページアドレスを、物理メモリの対応するブロックのページアドレスにマップすることによって、仮想メモリの統合されたブロックを物理メモリにマップするようにさらに構成されている請求項１１記載の処理システム。
【請求項１３】
プロセッサが、新しい仮想メモリブロックのページアドレスを、物理メモリの対応するブロックのページアドレスにマップすることによって、仮想メモリの統合されたブロックを物理メモリにマップするようにさらに構成されている請求項１１記載の処理システム。
【請求項１４】
複数のエントリを変換索引緩衝器(ＴＬＢ)に記憶する方法であって、
隣接仮想メモリブロックを物理メモリにマップすることと、
仮想メモリの隣接ブロックのサイズを示すサイズ属性を与えることと、
仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変えることと、
サイズ属性を変えて、仮想メモリの隣接ブロックおよび対応する物理メモリにおける変更を反映することとを含む方法。
【請求項１５】
仮想メモリの隣接ブロックのサイズおよび対応する物理メモリが、仮想メモリの第１のブロックを仮想メモリの第２のブロックと統合することによって変えられる請求項１４記載の方法。
【請求項１６】
仮想メモリの第１および第２のブロックの両者が隣接し、対応する物理メモリも隣接しているという判断に応答して、仮想メモリの第１および第２のブロックが統合される請求項１５記載の方法。
【請求項１７】
仮想メモリの統合された第１および第２のブロックを、物理メモリにマップすることが、
仮想メモリの第１のブロックのページアドレスが、仮想メモリの第２のブロックのページアドレスよりも小さいと判断することと、仮想メモリの第１のブロックのページアドレスを、物理メモリの対応するブロックのページアドレスにマップすることとを含む請求項１６記載の処理システム。
【請求項１８】
ページアドレスのマッピングを変更せずに、サイズ属性を変えることによって、仮想メモリの第１および第２のブロックが統合される請求項１７記載の方法。
【請求項１９】
サイズ属性を変え、仮想メモリの第２のブロックのページアドレスを仮想メモリの第１のブロックのページアドレスへ変更し、それに応じて、対応する物理メモリのページアドレスを変更することによって、仮想メモリの第１および第２のブロックが統合される請求項１７記載の方法。
【請求項２０】
複数のエントリを変換索引緩衝器(ＴＬＢ)に記憶する方法であって、
仮想メモリの新しいブロックを識別することと、
仮想メモリの新しいブロックに隣接する仮想メモリの既存のブロックをもつＴＬＢ内のエントリの位置を特定することであって、ＴＬＢエントリが仮想メモリの既存のブロックと物理メモリとの間のマッピングを含むことと、
ＴＬＢエントリにおいて、仮想メモリの新しいブロックと既存のブロックとを統合し、およびそれらの対応する物理メモリを統合することとを含み、仮想メモリの新しいブロックと既存のブロックとを統合することが、サイズ属性を調整して、仮想メモリの既存のブロックサイズから、仮想メモリの統合されたブロックサイズへのサイズの変更を反映することをさらに含む方法。
【請求項２１】
仮想メモリの既存のブロックに対する対応する物理メモリが、仮想メモリの新しいブロックに対する対応するメモリに隣接していると判断することをさらに含む請求項２０記載の方法。
【請求項２２】
仮想メモリの統合されたブロックが、仮想メモリの既存のブロックおよび新しいブロックに対応する物理メモリよって表わされる物理メモリのブロックにマップすると判断することをさらに含む請求項２１記載の方法。
【請求項２３】
仮想メモリの既存のブロックのページアドレスを、対応する物理メモリのページアドレスにマップすることによって、仮想メモリの既存のブロックが、対応する物理メモリにマップされる請求項２１記載の方法。
【請求項２４】
仮想メモリの既存のブロックのページアドレスが、仮想メモリの新しいブロックのページアドレスよりも小さいと判断することをさらに含み、仮想メモリの新しいブロックと既存のブロックとを統合することが、エントリのページマッピングを変更せずに、サイズ属性を調整することをさらに含む請求項２３記載の方法。
【請求項２５】
仮想メモリの既存のブロックのページアドレスが、仮想メモリの新しいブロックのページアドレスよりも大きいと判断することをさらに含み、仮想メモリの新しいブロックと既存のブロックとを統合することが、サイズ属性を調整することと、仮想メモリの新しいブロックのページアドレスを、対応する物理メモリのページアドレスにマップすることとをさらに含む請求項２３記載の方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
本開示は、概ね、変換索引緩衝器、より具体的には、変換索引緩衝器のエントリを最適化する方法およびシステムに関する。
【発明の背景】
【０００２】
今日、多くの既存のコンピュータシステムは、仮想メモリを使用している。仮想メモリは、メモリを、仮想記憶装置の大きい均一の配列へ抽出する（abstract）技術である。仮想記憶装置は、プロセッサがすぐに使用できるメモリよりも大きい。より小さい物理メモリ、一般に、半導体メモリ(例えば、ＲＡＭまたはＤＲＡＭであるが、これらに限定されない)（以下では、単に“メモリ”と呼ぶ）のみが使用可能であるとき、この分離は、大きい仮想メモリをプログラマに与えることを可能にし、それによって、メモリ記憶装置の限度に対する懸念からプログラマを解放する。その結果、より短い待ち時間のメモリが多数のアプリケーションを全て保持するのに十分に大きくなくても、より長い待ち時間のハードドライブの記憶装置から、より短い待ち時間のメモリへ、多数のアプリケーションの一部をロードすることによって、多数のアプリケーションを起動することができる。これは、最近使用されていないメモリの一部を識別し、それらをハードドライブ上にコピーすることによって達成され得る。これは、より即時の使用（more immediate use）のために、メモリ内のスペースを解放して、メモリの新しい部分にロードする。
【０００３】
今日、多くの処理システムにおいて、中央処理ユニット(central processing unit, CPU)は仮想メモリを使用して、プログラムを実行している。このような処理システムでは、仮想アドレスが、対応する物理アドレスにマップされる。一般に、このマッピングは、変換索引緩衝器(translation lookaside buffer, TLB)によって行われる。ＴＬＢは、単に、最も頻繁に使用される仮想メモリのページアドレスを、対応する物理メモリのページアドレスにマップするメモリでしかない。
【０００４】
通常、各ＴＬＢエントリは、メモリ内の１ページを仮想メモリのページアドレスにマップする。このため、各ＴＬＢエントリによって表わすことができるアドレス数は制限される。ＴＬＢを維持するには、システム資源が必要であるので、多数の隣接ページ（contiguous page）のエントリを１つのエントリに統合する(consolidate)ことによって、ＴＬＢエントリを最適化するより効率的な方法およびシステムを提供することが望ましい。
【発明の概要】
【０００５】
処理システムが開示される。処理システムは、仮想メモリの隣接ブロックを物理メモリにマップし、仮想メモリの隣接ブロックのサイズを示すサイズ属性を与えるように構成された変換索引緩衝器(ＴＬＢ)と、仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変え、それに応じて、サイズ属性を変えるように構成されたプロセッサとを含む。
【０００６】
処理システムの別の態様が開示される。処理システムは、複数のエントリを記憶するように構成された変換索引緩衝器(ＴＬＢ)であって、エントリの各々が仮想メモリの隣接ブロックを物理メモリにマップし、エントリの各々が仮想メモリのそれぞれのブロックのサイズを示すサイズ属性をもつ、変換索引緩衝器(ＴＬＢ)と、エントリの１つに対する仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変えるように構成されたプロセッサであって、前記エントリの１つのサイズ属性を変えるようにさらに構成されたプロセッサとを含む。
【０００７】
複数のエントリを変換索引緩衝器(ＴＬＢ)に記憶する方法が開示される。方法は、隣接仮想メモリブロックを物理メモリにマップすることと、仮想メモリの隣接ブロックのサイズを示すサイズ属性を与えることと、仮想メモリの隣接ブロックのサイズおよび対応する物理メモリを変えることと、サイズ属性を変えて、仮想メモリの隣接ブロックおよび対応する物理メモリにおける変更を反映することとを含む。
【０００８】
複数のエントリを変換索引緩衝器(ＴＬＢ)に記憶する方法の別の態様が開示される。方法は、仮想メモリの新しいブロックを識別することと、仮想メモリの新しいブロックに隣接する仮想メモリの既存のブロックをもつＴＬＢ内のエントリの位置を特定する（locate）ことであって、ＴＬＢエントリが仮想メモリの既存のブロックと物理メモリとの間のマッピングを含んでいることと、ＴＬＢエントリにおいて、仮想メモリの新しいブロックと既存のブロックとを統合し、および対応する物理メモリを統合することとを含み、仮想メモリの新しいブロックと既存のブロックとを統合することが、サイズ属性を調整して、仮想メモリの既存のブロックのサイズから、仮想メモリの統合されたブロックのサイズへのサイズ変更を反映することをさらに含む。
【０００９】
本発明の他の実施形態は、本発明の種々の実施形態が例示的に示され記載されている次の詳細な説明から、当業者には容易に明らかになるであろうと理解される。認識されるように、本発明は他のおよび異なる実施形態が可能であり、その幾つかの細部は、種々の他の点において、本発明の意図および範囲から全く逸脱することなく変更することができる。したがって、図面および詳細な説明は、本質的に例示的であって、限定的ではないと考えられる。
【好ましい実施形態の詳細な説明】
【００１０】
添付の図面に関連して後述される詳細な説明は、本発明の種々の実施形態の説明として意図されており、本発明が実行され得る唯一の実施形態を表わすことを意図していない。詳細な説明は、本発明を完全に理解させるために、具体的な詳細を含んでいる。しかしながら、当業者には、本発明が、これらの具体的な詳細がなくても実行され得ることが明らかであるだろう。幾つかの例において、本発明の概念を不明瞭にするのを避けるために、周知の構造および構成要素がブロック図の形で示されている。
【００１１】
図１は、データ処理システム100の例を示す概念ブロック図である。データ処理システム100は、スタンドアローン システムであるか、または、その代わりに、有線または無線電話、パーソナル ディジタル アシスタント(Personal Digital Assistant, PDA)、パーソナルコンピュータ(Personal Computer, PC)、ラップトップ、ディジタルカメラ、ゲーム機、ページャ、モデム、ビデオ会議装置、または任意の他の適切なデバイスに埋め込まれ得る。データ処理システム100は、プロセッサ102、例えば、マイクロプロセッサまたは他の処理エンティティを含み得る。プロセッサ102は、任意の数のアプリケーションを実行するプラットフォーム、例えば、オペレーティングシステム、ウェブブラウザ、電子メールシステム、ワードプロセッサ、およびビデオ、電話、等を支援する他のソフトウェアプログラムとして使用され得る。
【００１２】
処理システム100はメモリ104も含み、メモリ104は、プロセッサ102によってその機能を行うのに必要とされるプログラム命令およびデータを保持する。メモリ104は、ランダム アクセス メモリ（Random Access Memory, RAM）または他の適切なメモリによって実施され、プロセッサのメインメモリ、Ｌ２キャッシュ、またはその組合せとして働き得る。プロセッサ102によって起動される種々のプログラムのプログラム命令は、ハードドライブのような不揮発性記憶デバイス106からメモリ104へロードされ得る。
【００１３】
ＴＬＢ108は、メモリのページアドレスを、参照番号106（例示的に、不揮発性記憶デバイスを含み得る）から、メモリ104内の対応するページアドレスへマップするのに使用され得る。ＴＬＢは、プロセッサ102に統合(integrate)される比較的に小型で高速のキャッシュであり得るが、説明のために、プロセッサ102と別々に示されている。プロセッサ102は、メモリ104にアクセスする必要があるとき、ＴＬＢ108を仮想メモリのページアドレスに対してサーチする。プロセッサ102がＴＬＢ108内で仮想メモリのページアドレスを見付けると、“ＴＬＢヒット（TLB hit）”が発生する。ＴＬＢヒットのときは、プロセッサ102は、ＴＬＢ108から、対応する物理メモリのページアドレスを検索し、それをメモリ104にアドレスバスによって供給する。次に、プロセッサ102は、メモリ104内のそのアドレスのコンテンツにアクセスし、データバスによって読み出しまたは書き込み動作を行うことができる。
【００１４】
プロセッサが、ＴＬＢ108内で仮想メモリのページアドレスを見付けることができないときは、“ＴＬＢミス（TLB miss）”が発生する。ＴＬＢミスを処理する種々の技術は、技術的に周知であり、したがって、プロセッサ102が、それが現在の動作を行うのに必要な物理メモリのページアドレスを判断する特定の処理機能を起動できることを記載することを除いて、これ以上は説明しない。プロセッサが物理メモリのページアドレスを判断すると、プロセッサはメモリ104にアクセスすることができる。これには、プログラム命令をメモリ104と不揮発性記憶デバイス106との間で転送することが必要であるときと、ないときがあり得る。新しいＴＬＢエントリがＴＬＢ108内に生成され、同じ物理メモリのページアドレスへの将来のアクセスを処理することができる。
【００１５】
プロセッサ102は、１つのＴＬＢエントリに記憶することができるページ数を動的に管理するように構成され得る。図２に示されているように、ＴＬＢ108内の各ＴＬＢエントリ200は、仮想メモリのページアドレス202と物理メモリのページアドレス204とを含み得る。既に説明したように、仮想メモリのページアドレス202は、物理メモリのページアドレス204にマップされ、物理メモリのページアドレス204は、メモリ内のページ(図示されていない)に対応する。サイズ属性206は、仮想メモリのページアドレス202に追加され得る。サイズ属性206は、各ＴＬＢエントリによって表わされるページ数を示すのに使用され得る。
【００１６】
データ処理システムの少なくとも1つの実施形態において、プロセッサは、所与のＴＬＢエントリのサイズ属性を動的に調整するように構成され得る。これは、種々のやり方で達成され得る。図１に戻って、ＴＬＢミスが発生すると、プロセッサ102は、それが現在の動作を行うのに必要な物理メモリのページアドレスを判断する特定の処理機能を起動する。しかしながら、プロセッサ102は、新しいＴＬＢエントリを生成する前に、先ず、提案された新しいエントリがＴＬＢ108内の既存のエントリに隣接しているかどうかを判断する。両者の仮想メモリのページアドレスが隣接し、物理メモリのページアドレスが隣接するときは、ＴＬＢ108内の２つのエントリは隣接していると言われる。プロセッサ102が、既存のＴＬＢエントリとの隣接が存在すると判断すると、２つの仮想メモリページおよび２つの物理メモリページは、ＴＬＢ108内で１つのエントリへ統合され得る。サイズ属性206(図２参照)を大きくして、仮想メモリのページアドレスおよび対応する物理メモリのページアドレスが、メモリ104内の２ページを表わすと示すことができる。その代わりに、プロセッサ102が、既存のＴＬＢエントリとの隣接が存在しないと判断すると、新しいＴＬＢエントリが生成され得る。
【００１７】
次に、プロセッサ102がＴＬＢ108内のエントリをどのように最適化するかを示す例を記載する。図３は、ＴＬＢ内の既存のエントリ300と提案された新しいエントリ302とを示している。既存のエントリ300は、サイズ属性、最上位ビット部分（Ｘ１）と最下位ビット（Ｙ１）とをもつ仮想メモリのページアドレス、および最上位ビット部分（Ａ１）と最下位ビット（Ｂ１）とをもつ物理メモリのページアドレスを含み得る。サイズ属性は、ＴＬＢエントリがメモリの１ページを表わすことを示すように設定される。部分Ｘ１は、ビット１３ないし３１を構成し、部分Ｙ１は、ビット１２を構成している。同様に、提案された新しいエントリ302は、最上位ビット部分（Ｘ２）と最下位ビット（Ｙ２）とをもつ仮想メモリのページアドレス、および最上位ビット部分（Ａ２）と最下位ビット（Ｂ２）とをもつ対応する物理メモリのページアドレスを含み得る。既存のエントリ300および提案されたエントリ302の両者において、ビット０ないし１１はアドレスのオフセット部分に相当し、したがってエントリの一部ではないことに注意すべきである。
【００１８】
プロセッサは、既存のエントリ300および提案されたエントリ302を最適化することができるかどうかを次のように判断する。最初に、既存のエントリ300および提案されたエントリ302の仮想メモリのページアドレスが比較される。Ｘ１＝Ｘ２およびＹ１＝Ｙ２であるときは、ＴＬＢヒットであると見なされる。既に説明したように、プロセッサは、次に、対応する物理メモリのページアドレスをＴＬＢから検索し、それをアドレスバス上に置いて、メモリにアクセスし得る。他方で、Ｘ１≠Ｘ２またはＹ１≠Ｙ２であるときは、ＴＬＢミスであると見なされる。プロセッサが別のＴＬＢエントリとＴＬＢヒットを得ることができないと仮定すると、プロセッサは、対応する物理メモリのページアドレスを判断する特定の処理機能を起動する。しかしながら、新しいＴＬＢエントリが生成される前に、提案されたエントリ302は、ＴＬＢ内の既存のエントリとの隣接を調べられる。
【００１９】
図３に示されている例では、提案されたエントリ302は、ＴＬＢミスに応答して、既存のエントリ300との隣接を調べられる。これは、４ステップのプロセスで達成され得る。最初に、仮想メモリのページアドレスが、Ｘ１をＸ２と、Ｙ１をＹ２と比較することによって、隣接を調べられる。Ｘ１＝Ｘ２およびＹ１≠Ｙ２であるとき、仮想メモリのページアドレスは、１つの最下位ビットをオフにされ、仮想メモリのアドレス空間内で隣接していると言われる。第２に、物理メモリのページアドレスが、Ａ１をＡ２と、Ｂ１をＢ２と比較することによって、隣接を調べられる。Ａ１＝Ａ２およびＢ１≠Ｂ２であるときは、物理メモリのページアドレスも、１つの最下位ビットをオフにされ、物理メモリのアドレス空間内で隣接していると言われる。第３に、既存のエントリおよび提案されたエントリの仮想メモリのページアドレスおよび物理メモリのページアドレスを調べて、提案されたエントリの仮想メモリのページアドレスおよび物理メモリのページアドレスの両者が、既存のエントリの仮想メモリのページアドレスおよび物理メモリのページアドレスよりも大きいか、または小さいかをそれぞれ確認する。最後に、既存のエントリと提案されたエントリとが、１つのより大きいエントリに統合されることになるとき、より大きいエントリによってカバーされる仮想ページのアドレス範囲および物理ページのアドレス範囲を調べて、両者のアドレス範囲が大きいサイズの境界上で整列するかを確認する。これらの条件が全て満たされると、既存のエントリおよび提案されたエントリは、１つのエントリに統合することができる。提案されたエントリ302の仮想メモリのページアドレスおよび物理メモリのページアドレスが、既存のエントリ300のそれよりも大きい場合、２つのエントリは、単にサイズ属性を大きくすることによって統合され、統合されたＴＬＢエントリは、元のエントリ300の仮想メモリのページアドレスおよび物理メモリのページアドレスで始まるメモリ内の２ページを表わすと示すことができる。その代わりに、提案されたエントリ302の仮想メモリのページアドレスおよび物理メモリのページアドレスが、既存のエントリ300のそれよりも小さいときは、２つのエントリは、提案された仮想メモリのページアドレスおよび物理メモリのページアドレスを既存のエントリ上に書き込み、サイズ属性を変更することによって統合され、統合されたＴＬＢエントリは、新しいエントリ302の仮想メモリのページアドレスおよび物理メモリのページアドレスで始まるメモリ内の２ページを表わすと示すことができる。
【００２０】
ここで、例を与える。既存のエントリ300の仮想メモリページが、アドレス“０ｘ００００＿００００”で始まる４ＫＢであり、対応する物理メモリページが、アドレス“０ｘ８０００＿００００”で始まる４ＫＢページであると仮定する。提案されたエントリ302の仮想メモリページが、アドレス“０ｘ００００＿１０００”で始まる４ＫＢページであり、対応する物理メモリページが、アドレス“０ｘ８０００＿１０００”で始まる４ＫＢページであるとき、両者のエントリは、既存のエントリと同じアドレスで始まる８ＫＢの領域へ統合されることができる。しかしながら、既存のエントリの仮想領域がアドレス“０ｘ００００＿１０００”で、対応する物理領域がアドレス“０ｘ８０００＿１０００”で始まり、提案されたエントリの仮想領域がアドレス“０ｘ００００＿２０００”で、対応する物理領域がアドレス“０ｘ８０００＿２０００”で始まるとき、得られる８ＫＢのページは、８ＫＢの領域上で整列する境界で始まらないので、既存のエントリと提案されたエントリは結合できない。
【００２１】
結果として、隣接の検査が満たされたと仮定すると、既存のエントリ300のサイズ属性は、動的に８ＫＢに変更される。８ＫＢのサイズは、既存のページが４ＫＢであり、新しいページが４ＫＢであるという事実に基づく。このように、新しいページと既存のページとを統合または結合すると、８ＫＢのページになる。上述の例が示しているように、新しいページに隣接している既存のページをＴＬＢ内で位置を特定する（locate）ことができるときは、既存のページのエントリを単に修正するだけでよく、新しいページのために、別のエントリをＴＬＢに加える必要はない。
【００２２】
さらに加えて、修正された(８ＫＢ)のエントリが、Ｙ１およびＢ１をもち、その両者が“０”にまだ設定されていないときは、両者を“０”に設定する必要があり得る。これを行うと、修正されたエントリは、新しい８ＫＢのページの開始アドレス(すなわち、２つの隣接する４ＫＢのページの小さい方の番号)を正確に反映する。しかしながら、全ての実施がこの変更を必要とするとは限らないことに注意すべきである。本質的に、４ＫＢのエントリが８ＫＢのエントリに変換されるとき、既存のエントリのビット１２は、仮想ページアドレスの最下位ビットから、オフセット(図示されていない)の最上位ビットへ効果的に変わる。オフセットは、メモリにアクセスするための完全な物理ページアドレスを形成するのに使用される。オフセットは、仮想ページアドレスと物理ページアドレスとの間の変換またはマッピングプロセスにおいて重要ではない。(４ＫＢではなく)８ＫＢのエントリのサイズ属性は、ビット１２が現在オフセットの一部であることを示す。したがって、仮想ページアドレスのビット１２をＴＬＢエントリの一部であると見なす必要は最早なく、したがって、次のアドレスとの比較に加えて、整合を判断する必要はない。幾つかの実施では、サイズ属性に基づいて、ＴＬＢエントリの仮想ページアドレス部分および物理ページアドレス部分の両者内の、このビット位置を適切に、自動的に無視することができる。他の実施では、これらのビット位置の一方または他方、あるいはこの両者が、より小さい番号のページアドレス(言い換えると、それらは０である)を反映するのに必要であり得る。
【００２３】
本明細書に与えられている開示および教示に基づいて、上述を拡張し、より大きいページサイズの統合に対応できることが分かるであろう。さらに説明するために、修正されたエントリ300を使用し、(２つの隣接する４ＫＢのページが統合されたので)エントリ300は、現在、８ＫＢのページを参照している。プロセッサ102(図１参照)は、修正されたエントリ300によって参照される８ＫＢのページに隣接する別の８ＫＢのページを参照するＴＬＢ108内のエントリをサーチするようにさらに構成することができる。修正されたエントリ300によって参照される８ＫＢのページに隣接する別の８ＫＢのページがあると判断されると、２つの既存のエントリの一方のサイズ属性を修正し、現在、そのエントリのページサイズが１６ＫＢであることを反映することができ、残りのエントリを削除することができる。その結果、２つの隣接する８ＫＢのページが、２つの異なるエントリによって参照されるのとは対照的に、１６ＫＢのページは、現在、１つのエントリによって参照される。上述をさらに拡張し、新しく統合された１６ＫＢのページに隣接する別の既存の１６ＫＢのページをさらに統合して、１つのエントリによって参照される３２ＫＢのページを形成することができる。上述を拡張し、ページを統合して、次第により大きいページサイズにすることができる。
【００２４】
オプションで、プロセッサ102(図１参照)は、より小さいページサイズをもつページを参照するエントリを統合して、所望のページサイズをもつページを参照する更新されたエントリを生成するようにさらに構成することができる。したがって、更新されたエントリは、同じ所望のページサイズをもつページを参照する別のエントリと統合することができる。例えば、説明のために、修正されたエントリ300を再び使用し、エントリ300は、現在、８ＫＢのページを参照している。プロセッサ102(図１参照)は、先ず、２つの隣接する４ＫＢのページを統合し、１つのエントリによって参照される８ＫＢのページを生成することができる。新しく生成された８ＫＢのページは、現在、エントリ300によって参照されている８ＫＢのページとさらに統合され、１つのエントリによって参照される１６ＫＢのページを形成することができる。同様に、プロセッサ102は、次に４つの隣接する４ＫＢのページを統合して、別のエントリによって参照される別の１６ＫＢのページを形成することができる。続いて、新しく形成された１６ＫＢのページを、以前に形成された１６ＫＢのページと統合し、３２ＫＢのページを形成することができる。本明細書に与えられている開示および教示に基づいて、当業者は、本発明の開示にしたがって、どのように上述を拡張し、ＴＬＢ108内のエントリを最適化し、他のより大きいページサイズをカバーするかが分かるであろう。
【００２５】
本明細書に開示されている実施形態に関連して記載された種々の例示的な論理ブロック、モジュール、回路、および／または構成要素は、汎用プロセッサ、ディジタル信号プロセッサ（digital signal processor, DSP）、特定用途向け集積回路（application specific integrated circuit, ASIC）、フィールド プログラマブル ゲート アレイ（field programmable gate array, FPGA）または他のプログラマブル論理構成要素、ディスクリートなゲートまたはトランジスタ論理、ディスクリートなハードウェア構成要素、あるいは本明細書に記載されている機能を行うように設計された任意の組合せで実施または実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、その代わりに、プロセッサは、従来のプロセッサ、制御装置、マイクロコントローラ、または状態機械であってもよい。プロセッサは、計算構成要素（computing component）の組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、多数のマイクロプロセッサ、ＤＳＰのコアと関連する１つ以上のマイクロプロセッサ、または任意の他のこのような構成としても実施され得る。
【００２６】
本明細書に開示されている実施形態に関連して記載された方法またはアルゴリズムは、ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両者の組合せにおいて、制御論理、プログラミング命令、または他の命令の形で、直接的に具体化され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭ、または技術的に知られている記憶媒体の任意の他の形態の中に存在し得る。記憶媒体はプロセッサに接続され、プロセッサは記憶媒体から情報を読み出し、そこへ情報を書き込むことができる。その代りに、記憶媒体は、プロセッサと一体構成であってもよい。
【００２７】
開示された実施形態のこれまでの記述は、当業者が本発明を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は当業者には容易に明らかになり、本明細書に定義されている一般的な原理は、本発明の範囲の意図から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示されている実施形態に制限されることを意図されず、特許請求項にしたがう全範囲にしたがい、要素を単数形で記載していることは、“１つおよび１つのみ”であると具体的に記載されていないならば、“１つおよび１つのみ”ではなく、むしろ“１つ以上”であることを意味することを意図している。当業者に知られている、または知られることになる本開示の全体を通して記載されている種々の実施形態の要素に対する、全ての構造的および機能的に同等のものは、参照によって本明細書に明示的に取り入れられ、特許請求項によって含まれることを意図されている。さらに加えて、本明細書の開示は、そのような開示が特許請求項に明示的に記載されているかどうかに関わらず、公に供されることを意図されていない。特許請求項の要素は、その要素が“〜のための手段（means for）”という語句を使用して、または方法の特許請求項の場合は、“〜のためのステップ（step for）”という語句を使用して明示的に記載されていないならば、米国特許法第１１２条第６項の条項のもとで解釈されない。
【図面の簡単な説明】
【００２８】
【図１】本開示にしたがって変換索引テーブルを最適化するシステムを示す単純化されたブロック図。
【図２】本開示にしたがってＴＬＢエントリを示す単純化された概略図。
【図３】本開示にしたがって説明に使用されるＴＬＢエントリおよび提案されたエントリを示す単純化された概略図。
【符号の説明】
【００２９】
200・・・ＴＬＢエントリ、202・・・仮想メモリのページアドレス、204・・・物理メモリのページアドレス、300・・・既存のエントリ、302・・・新しいエントリ。
【図１】
2008533620.tif 000003
【図２】
2008533620.tif 000004
【図３】
2008533620.tif 000005
【国際調査報告】
2008533620.tif 000006
2008533620.tif 000007