(57)【要約】アドレス変換ユニットは、変換索引バッファ又はセグメンテーションバッファを使用して、仮想アドレスからメモリにアクセスするための物理アドレスを生成する。仮想アドレスが所定の範囲内である場合、アドレス変換ユニットは物理アドレスを生成するためにセグメンテーションバッファを使用する。物理アドレスの生成時に、メモリは、プロセッサにより処理されている命令に従って、プロセッサからデータを受信し、又はプロセッサにデータを提供する。
2006525607.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてアドレス変換を実行する方法であって、
メモリ位置に対する仮想アドレスを受信し、
前記仮想アドレスが仮想アドレス空間でのブロックの所定の開始と所定のブロックサイズとにより定められた範囲内であるか否かを決定し、
前記仮想アドレスが前記範囲内であることに応じて、物理ベースアドレスへのインデックスを生成し、
オフセットを生成し、
前記オフセットと前記物理ベースアドレスとに応じて、物理アドレスを生成することを有する方法。
【請求項２】
請求項１に記載の方法であって、
前記物理アドレスが前記範囲内でないことに応じて、変換索引バッファを通じて前記仮想アドレスから前記物理アドレスを生成することを更に有する方法。
【請求項３】
請求項１に記載の方法であって、
前記物理ベーステーブルのエントリ毎に前記仮想アドレスが前記範囲内であるか否かの決定を繰り返すことを更に有する方法。
【請求項４】
請求項１に記載の方法であって、
前記オフセットは、前記仮想アドレスと、前記ブロックの開始と、前記ブロックサイズの一部との関数である方法。
【請求項５】
請求項４に記載の方法であって、
前記ブロックサイズの一部は、前記コンピュータシステムにおけるノードの数に基づく方法。
【請求項６】
請求項１に記載の方法であって、
前記インデックスは、前記仮想アドレスの特定のビットと、前記ブロックの開始と、前記ブロックサイズの一部との関数である方法。
【請求項７】
請求項１に記載の方法であって、
前記仮想アドレスが前記範囲内であることに応じて、ヒットの指示を生成することを更に有する方法。
【請求項８】
請求項１に記載の方法であって、
前記仮想アドレスが前記範囲内でないことに応じて、ミスの指示を生成することを更に有する方法。
【請求項９】
請求項１に記載の方法であって、
前記物理アドレスに従ってメモリ位置へのアクセスを提供することを更に有する方法。
【請求項１０】
コンピュータシステムにおいてアドレス変換を実行するシステムであって、
メモリ位置に対する仮想アドレスを生成するように動作可能なプロセッサと、
前記仮想アドレスに応じて物理アドレスを生成するように動作可能であり、前記仮想アドレスが所定の範囲にないことに応じて変換バッファを使用して前記仮想アドレスを生成するように動作可能であり、前記仮想アドレスが前記範囲にあることに応じてセグメンテーションバッファを使用して前記物理アドレスを生成するように動作可能なアドレス変換器と、
前記物理アドレスから前記メモリ位置にアクセスするように動作可能なメモリと
を有するシステム。
【請求項１１】
請求項１０に記載のシステムであって、
前記セグメンテーションバッファは、ベース仮想アドレスフィールドと、全ブロックサイズフィールドと、物理ベーステーブルと、シフトフィールドと、アトリビュートフィールドとをそれぞれ有する複数のエントリを有するシステム。
【請求項１２】
請求項１１に記載のシステムであって、
前記アドレス変換器は、前記ベース仮想アドレスフィールドと前記全ブロックサイズフィールドとにより定められた範囲と、前記仮想アドレスとを比較するシステム。
【請求項１３】
請求項１２に記載のシステムであって、
前記アドレス変換器は、前記仮想アドレスが前記セグメンテーションバッファのエントリの範囲内にないことに応じて、ミスの指示を生成するシステム。
【請求項１４】
請求項１２に記載のシステムであって、
前記アドレス変換器は、前記仮想アドレスが前記セグメンテーションバッファの何らかのエントリの範囲内にあることに応じて、ヒットの指示を生成するシステム。
【請求項１５】
請求項１０に記載のシステムであって、
前記プロセッサは、前記物理アドレスにより特定されたメモリ位置へのアクセスを与えられるシステム。
【請求項１６】
コンピュータシステムにおいてアドレス変換を実行するシステムであって、
メモリ位置に対する仮想アドレスを受信する手段と、
前記仮想アドレスが仮想アドレス空間でのブロックの所定の開始と所定のブロックサイズとにより定められた範囲内であるか否かを決定する手段と、
前記仮想アドレスが前記範囲内であることに応じて、物理ベースアドレスへのインデックスを生成する手段と、
オフセットを生成する手段と、
前記オフセットと前記物理ベースアドレスとに応じて物理アドレスを生成する手段と
を有するシステム。
【請求項１７】
請求項１６に記載のシステムであって、
前記物理ベーステーブルのエントリ毎に前記仮想アドレスが前記範囲内であるか否かの決定を繰り返す手段を更に有するシステム。
【請求項１８】
請求項１６に記載のシステムであって、
前記仮想アドレスが前記範囲内であることに応じて、ヒットの指示を生成する手段を更に有するシステム。
【請求項１９】
請求項１６に記載のシステムであって、
前記仮想アドレスが前記範囲内でないことに応じて、ミスの指示を生成する手段を更に有するシステム。
【請求項２０】
請求項１６に記載のシステムであって、
前記物理アドレスに従ってメモリ位置へのアクセスを提供する手段を更に有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してコンピュータメモリ処理に関し、特にコンピュータシステムにおいてアドレス変換を実行するシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータシステムでは、メモリのデータ位置にアクセスするため、物理アドレスへの仮想アドレスの変換を支援するために、変換索引バッファ（ＴＬＢ：Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）が使用されている。コンピュータシステムは、必要に応じてプログラムがデータにアクセスすることができる多数のメモリノードを有し得る。しかし、ＴＬＢは限られた数のエントリしか保持することができない。その結果、ＴＬＢは、多数のメモリノードに渡って広がる大量のデータセットにアクセスするプログラムにとって、不十分な範囲を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前述のことから、従来のＴＬＢの実装の機能を超えて広がるアドレス変換技術の必要性が生じていることが、当業者にわかる。本発明によれば、コンピュータシステムにおいてアドレス変換を実行するシステム及び方法が提供され、従来のＴＬＢの実装に関連する欠点及び問題を実質的に除去し、又は大いに低減する。
【課題を解決するための手段】
【０００４】
本発明の実施例によれば、コンピュータシステムにおいてアドレス変換を実行する方法が提供され、仮想アドレスを受信し、仮想アドレスが仮想アドレス空間でのブロックの所定の開始と所定のブロックサイズとにより定められた範囲内であるか否かを決定することを有する。仮想アドレスがその範囲内である場合、物理ベースアドレスへのインデックスとオフセットとが生成される。オフセットと物理ベースアドレスとに応じて、物理アドレスが生成される。仮想アドレスがその範囲内でない場合、従来の変換索引バッファを通じてアドレス変換が実行される。
【発明の効果】
【０００５】
本発明は、従来のＴＬＢの実装に対してさまざまな利点を提供し、その一部又は全部が特定の実施例に含まれてもよく、含まれなくてもよい。例えば、１つの技術的利点は、コンピュータシステムの実行プログラムのアドレス空間を広げることにある。他の技術的利点は、従来のＴＬＢの実装のみの使用で生じ得る複数のＴＬＢのミスを低減することにある。他の技術的な利点は、以下の図面、説明及び特許請求の範囲から当業者に容易に明らかになり得る。
【発明を実施するための最良の形態】
【０００６】
本発明の完全な理解のため、添付図面と共に以下の説明に対して参照が行われる。図面において、同様の参照数字は同様の部分を表す。
【０００７】
図１は、コンピュータシステムのアドレス変換ユニット１０を示すブロック図である。アドレス変換ユニット１０は、プロセッサ１２から受信した仮想アドレスから、物理アドレスを生成する。物理アドレスは、メモリ１４にアクセスするために使用される。メモリ１４はアドレス変換ユニット１０及び／又はプロセッサ１２にローカルでもよく、リモートでもよい。
【０００８】
プロセッサ１２から受信した仮想アドレスに応じて、アドレス変換ユニット１０は、従来のコンピュータシステムの設計時のような変換索引バッファ（ＴＬＢ：ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）１６又は本発明のセグメンテーションバッファ１８を使用して、メモリ１４へのアクセス用の物理アドレスを生成する。変換器１９を通じた物理アドレスの生成時に、メモリ１４は、プロセッサ１２により処理されている命令に従って、プロセッサ１２からデータを受信し、又はプロセッサ１２にデータを提供する。
【０００９】
図２は、セグメンテーションバッファ１８の簡単なブロック図を示している。セグメンテーションバッファ１８は、以下のフィールドを有する複数の特別のエントリを有する  −ベース仮想アドレス（ＢＶＡ：Ｂａｓｅ  Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ）、長さ（Ｌ：Ｌｅｎｇｔｈ）、ノードブロックサイズ（ＮＢＳ：Ｎｏｄｅ  Ｂｌｏｃｋ  Ｓｉｚｅ）、物理ベーステーブル（ＰＢ：Ｐｈｙｓｉｃａｌ  Ｂａｓｅ  Ｔａｂｌｅ）、物理ベーステーブルシフト（ＰＢＳＨＩＦＴ：Ｐｈｙｓｉｃａｌ  Ｂａｓｅ  ｔａｂｌｅ  Ｓｈｉｆｔ）及びアトリビュート（Ａｔｔｒｉｂ）。ＢＶＡは仮想アドレス空間でのブロックの開始を表す。Ｌはブロックの全サイズを表す。ＮＢＳはノードＮ毎のブロックサイズを表し、Ｎはブロックを有するノードの数である。ＰＢ｛０．．．ＰＢｍａｘ−１｝は各ノードのブロックの物理ベースアドレスを有するテーブルを表す。ＰＢＳＨＩＦＴは、仮想アドレスのうちどのビットが物理ベーステーブルへのインデックスに使用されるかを表す。アトリビュートは、ＴＬＢ１６のページアトリビュートに類似したセグメントアトリビュートである。
【００１０】
物理アドレスがＴＬＢ１６により生成されたか、セグメンテーションバッファ１８により生成されたかに関する決定は、仮想アドレスが所定の範囲内にあるか否かに依存する。所定の範囲は、ＢＶＡとＢＶＡ＋Ｌとの間の範囲として定められる。仮想アドレスがこの範囲内にない場合、ミスが特定され、物理アドレスがＴＬＢ１６を使用して生成される。仮想アドレスがこの範囲内にある場合、ヒットが特定され、物理アドレスがセグメンテーションバッファ１８を使用して生成される。その範囲と仮想アドレスとの比較は、物理ベーステーブルのエントリ毎に実行される。仮想アドレスが物理ベーステーブルのエントリの範囲内にないことに応じて、ミスの指示がセグメンテーションバッファ１８により提供される。このミスの指示により、物理アドレスがＴＬＢ１６を使用して生成されることになる。仮想アドレスが物理ベーステーブルの何らかのエントリの何らかの範囲内にあることに応じて、ヒットの指示がセグメンテーションバッファ１８により提供される。
【００１１】
ヒットを特定すると、アドレス変換ユニット１０は、仮想アドレスに対応する物理アドレスを生成するために、セグメンテーションバッファ１８を使用する。物理アドレスは、物理ベーステーブルから得られた物理ベースアドレスと、オフセットとを有する。物理ベースアドレスは、物理ベーステーブルへのインデックスを生成することにより特定される。このインデックスは、仮想アドレスと、ヒットの指示に関連するベース仮想アドレスと、ヒットの指示に関連するＮＢＳと、ヒットの指示に関連するＰＢＳＨＩＦＴとに従って決定される。このインデックスは、（ＶＡ−ＢＶＡ）−ＮＢＳ＊ＰＢＳＨＩＦＴとして表される。オフセットは、仮想アドレスと、ヒットの指示に関連するベース仮想アドレスと、ヒットの指示に関連するＮＢＳとの関数であり、（ＶＡ−ＢＶＡ）／ＮＳとして表される。物理ベースアドレスとオフセットとを結合することにより、物理アドレスが生成される。
【００１２】
このように、本発明に従って、コンピュータシステムにおいてアドレス変換を実行し、前述の利点を満足するシステム及び方法が提供されることが明らかである。本発明について詳細に説明したが、様々な変更、置換及び変形が当業者により容易に確かめられ、特許請求の範囲に定められる本発明の要旨及び範囲を逸脱することなく行われることがわかる。更に、本発明は、特許請求の範囲に反映されていないここで行われた如何なる記述にも決して限定されないことを意図する。
【図面の簡単な説明】
【００１３】
【図１】コンピュータシステム内のアドレス変換ユニットの例
【図２】アドレス変換ユニットのセグメンテーションバッファの例
【図１】
2006525607.tif 000003
【図２】
2006525607.tif 000004
【国際調査報告】
2006525607.tif 000005
2006525607.tif 000006
2006525607.tif 000007
2006525607.tif 000008
2006525607.tif 000009
2006525607.tif 000010