(57)【特許請求の範囲】
【請求項１】
仮想アドレスを物理アドレスに変換する変換索引バッファと、
前記変換索引バッファに接続され、仮想アドレスを物理アドレスに変換するときの属性を決める変換属性フィールドを含む変換索引バッファ導入レジスタと、
それぞれがデフォルト変換属性フィールドを含むレジスタ・セットと、
前記レジスタ・セットと変換属性フィールドとに結合され、変換索引バッファ導入レジスタが使用するための対応するデフォルト変換属性を事前ロードするが、変換しようとする仮想アドレスの変換に対して妥当でないとき、デフォルト変換属性が置き換えられる事前ロード・ユニットと
を含むことを特徴とするプロセッサ。
【請求項２】
前記仮想アドレスのＮビットが、対応する前記デフォルト変換属性フィールドを持つ前記レジスタ・セット内のレジスタを識別するために使用されることを特徴とする請求項１記載のプロセッサ。
【請求項３】
前記変換属性フィールドに記憶されたデータが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも１つを含むことを特徴とする請求項２記載のプロセッサ。
【請求項４】
前記変換索引バッファに接続され、その変換索引バッファ内でページ不在が発生すると、変換のためのページ番号を生成するためのページ不在ハンドラをさらに含むことを特徴とする請求項１記載のプロセッサ。
【請求項５】
前記変換索引バッファに接続され、その変換索引バッファ内でページ不在が発生すると、変換のためのページ番号を生成するためのソフトウエアページ不在ハンドラを呼び出すイベント処理ユニットをさらに含むことを特徴とする請求項１記載のプロセッサ。
【請求項６】
仮想アドレスを物理アドレスに変換する時に使用するために、変換属性フィールドに事前ロードする方法であって、
前記仮想アドレスに対する変換が現在利用可能であるか否かを検出するステップと、
複数の記憶されたデフォルト変換属性の一つを、前記変換属性フィールドのための対応するデフォルト変換属性として選択するステップと、
前記仮想アドレスの変換が新しい変換を生成するために現在利用可能でないときに、前記対応するデフォルト変換属性を事前ロードするステップと、
その事前ロードされたデフォルト変換属性が妥当であればそれを用い、妥当でないならそれを妥当な変換属性で上書きするステップと
を含むことを特徴とする方法。
【請求項７】
前記仮想アドレスの変換のための仮想ページ番号を記憶するステップをさらに有することを特徴とする請求項６記載の方法。
【請求項８】
前記事前ロードするステップが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも１つを識別するために、前記デフォルト変換属性を事前ロードすることを特徴とする請求項６記載の方法。
【請求項９】
前記事前ロードする際にソフトウエア・ページ不在ハンドラを実行することを含むことを特徴とする請求項６記載の方法。
【請求項１０】
コンピュータ・システムで使用する装置であって、その装置が、
仮想アドレスを物理アドレスに変換するための複数の変換を記憶するように構成されたアドレス変換ユニットであって、前記複数の変換のそれぞれが、前記仮想アドレスに含まれていない属性を決めるための変換属性フィールドを含む、前記アドレス変換ユニットと、
複数のデフォルト変換属性を記憶するように構成されたデフォルト変換属性記憶領域と、
ある仮想アドレスの変換が前記アドレス変換ユニットに記憶されていないことを指示する信号を受信するように結合された第１入力を有する事前ロード・ユニットと、
を有する、前記コンピュータ・システムで使用する装置において、
前記複数のデフォルト変換属性のそれぞれが、前記仮想アドレスの異なる仮想領域に対して選択され、
前記事前ロード・ユニットが、前記デフォルト変換属性記憶領域に接続されると共に前記アドレス変換ユニットに接続され、事前ロードに引き続いてページ不在ハンドラを用いて前記変換を決定し、前記アドレス変換ユニットに前記変換を完成するのに必要な残りのデータを記憶する前に、前記仮想アドレスの前記仮想領域を識別するＮビットに基づいて前記複数のデフォルト変換属性からデフォルト変換属性を選択し、前記アドレス変換ユニットに現在選択されたデフォルト変換属性を事前ロードすることを特徴とする、前記コンピュータ・システムで使用する装置。
【請求項１１】
前記複数のデフォルト変換属性のそれぞれが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも１つを含むことを特徴とする請求項１０記載の装置。
【請求項１２】
前記アドレス変換ユニットに接続されたハードウエア・ページ不在ハンドラとソフトウエア・ページ不在ハンドラのいずれか１つをさらに有することを特徴とする請求項１０または１１記載の装置。
【請求項１３】
前記デフォルト変換属性記憶領域がレジスタのセットであることを特徴とする請求項１０〜１２のいずれかに記載の装置。
【請求項１４】
前記レジスタのセットのそれぞれがデフォルト変換属性フィールドを有することを特徴とする請求項１３記載の装置。
【請求項１５】
仮想ページ番号フィールド、物理ページ番号フィールド、変換属性フィールドを含む変換索引バッファ導入領域をさらに有することを特徴とする請求項１０〜１４のいずれかに記載の装置。
【請求項１６】
前記仮想アドレスのＮビットが、前記デフォルト変換属性記憶領域のレジスタのセット内の対応するレジスタを識別するために用いられることを特徴とする請求項１３〜１５のいずれかに記載の装置。
【請求項１７】
前記アドレス変換ユニットがアドレス変換索引バッファであることを特徴とする請求項１０、１１、１３〜１６のいずれかに記載の装置。
【請求項１８】
前記アドレス変換索引バッファに接続されたハードウエア・ページ不在ハンドラをさらに有することを特徴とする請求項１７に記載の装置。
【請求項１９】
ソフトウエア・ページ不在ハンドラを呼び出すイベント処理ユニットをさらに有することを特徴とする請求項１０、１１、１３〜１７のいずれかに記載の装置。
【請求項２０】
前記アドレス変換ユニット、前記デフォルト変換属性記憶領域、前記事前ロード・ユニットを有するプロセッサと、
前記プロセッサに接続され、前記信号に応答して前記プロセッサによって実行されるソフトウエア・ページ不在ハンドラを記憶する記憶装置であって、前記ソフトウエア・ページ不在ハンドラの実行によって、前記事前ロード・ユニットによって妥当でないデフォルト変換属性がロードされていると、前記プロセッサが前記変換属性フィールドに妥当な値を書き込む、前記記憶装置と
をさらに有することを特徴とする請求項１０、１１、１３〜１７のいずれかに記載の装置。
【請求項２１】
前記信号に応答して仮想ページ番号フィールドに仮想アドレスの少なくとも一部を記憶することを特徴とする請求項１９または２０に記載の装置。
【請求項２２】
前記変換属性フィールドが変換に用いる属性を決めることを特徴とする請求項１０〜２１のいずれかに記載の装置。
【請求項２３】
変換を、仮想アドレスを物理アドレスに変換するためのアドレス変換ユニットに記憶するコンピュータで実施する方法であって、
前記仮想アドレスが前記アドレス変換ユニットに記憶されていない変換を検出するステップと、
デフォルト変換属性記憶領域にデフォルト変換属性を記憶するステップと
を有する方法において、
前記デフォルト変換属性のそれぞれが、前記仮想アドレスの異なった仮想領域に対して選択されており、
前記仮想アドレスの前記仮想領域を識別するＮビットに基づいて現在選択されたデフォルト変換属性として前記複数のデフォルト変換属性の１つを選択するステップと、
前記アドレス変換ユニットに前記現在選択されたデフォルト変換属性を事前ロードするステップと、
前記事前ロードするステップに続いてページ不在ハンドラを使用して前記変換を決定するステップと、
前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップと
を有することを特徴とする前記方法。
【請求項２４】
前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップが
前記変換が前記事前ロードされたデフォルト変換属性を含んでいると、前記事前ロードされたデフォルト変換属性を上書きせずに、前記アドレス変換ユニットにその変換を記憶し、
前記変換が前記事前ロードされたデフォルト変換属性を含んでいないと、前記事前ロードされたデフォルト変換属性を正しい変換属性で上書きすることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップの前に、前記アドレス変換ユニットに前記変換の仮想ページ番号を記憶するステップをさらに有することを特徴とする請求項２３に記載の方法。
【請求項２６】
前記事前ロードするステップは、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも１つを識別するために、前記現在選択されたデフォルト変換属性を事前ロードすることを特徴とする請求項２３〜２５のいずれかに記載の方法。
【請求項２７】
前記決定するステップが、ソフトウエア・ページ不在ハンドラを実行するステップを有することを特徴とする請求項２３〜２６のいずれかに記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータ・システムの分野に関する。詳細には、本発明はメモリ管理の領域に関する。
【０００２】
【従来の技術】
メモリ・アドレッシング方式は、仮想メモリを実施するためにページングと呼ばれる技術をしばしば使用する。ページングを使用する場合、仮想アドレス空間（すなわち、プロセッサの実行ユニット、またはプロセッサのセグメンテーション・ユニットに関連する実行ユニットのどちらかによって発生するアドレス空間）は、ページと呼ばれる固定サイズのブロックに分割され、それらのおのおのはシステム上で利用できるいずれかの物理アドレス（すなわち、ハードウェアの記憶場所に対応するアドレス）にマップされる。通常のコンピュータ・システムでは、メモリ管理ユニットは、ページング・アルゴリズムにしたがって１つまたは複数のページ・テーブルを使用して、仮想アドレスの物理アドレスへのマッピングを判定および継続する。
【０００３】
プロセッサの実行ユニットから仮想アドレスを受けると、通常のメモリ管理ユニットは、最初にページ・テーブルを使用して、仮想アドレスをそれに対応する物理アドレスに変換する。ページ・テーブルはしばしば主記憶装置に記憶されているので、ページ・テーブルへのアクセスには時間がかかる。ページング変換の速度を上げるために、ある種のコンピュータ・システムは、最も最近に使用した変換を、変換索引バッファまたはＴＬＢ（しばしばプロセッサに配置される、より高速のメモリ）に記憶する。変換を必要とする仮想アドレスが発生すると、メモリ管理ユニットは最初にＴＬＢの変換を検索し、その後ページ・テーブルにアクセスする。ＴＬＢに変換が記憶されている場合は、ＴＬＢ「ヒット」が現れ、ＴＬＢは変換を行う。しかし、変換がＴＬＢに記憶されていない場合は、ＴＬＢ「不在」が現れ、ページ不在ハンドラが呼び出されてページ・テーブルにアクセスし、変換を実行する。
【０００４】
ページ不在ハンドラを処理するために、幾つかの異なる技術が利用されるが、その中には、１）ページ・テーブルにアクセスするためのプロセッサ上のハードウェア（「ハードウェア・ページ不在ハンドラ」と呼ばれる）、２）実行するとページ・テーブルのアクセスを制御するオペレーティング・システム・ルーチン（「ソフトウェア・ページ不在ハンドラ」と呼ばれる）などが含まれる。ある種のシステムは、ＴＬＢ不在を処理する多数の技術を使用する。例えば、１つのシステムでは、ハードウェア・ページ不在ハンドラを使用してハッシュされたページ・テーブルにアクセスし、ソフトウェア・ページ不在ハンドラを使用してハッシュされていないページ・テーブルの移動を制御する。したがってここでは、「ページ不在ハンドラ」という語句は、別のアドレス変換ユニットが変換を行わない場合に、変換を行うための任意の技術を指すのに使用される。
【０００５】
ソフトウェア・ページ不在ハンドラを使用する際には、ＴＬＢ不在が発生すると、プロセッサは現行処理の実行を中断し、中断した処理の実行環境（すなわち中断した処理の実行再開に必要な情報）を記憶し、ソフトウェア・ページ不在ハンドラを実行してページング変換を実施することになる。ソフトウェア・ページ不在ハンドラを実行すると変換が生じ、通常その変換はＴＬＢに導入される。ソフトウェア・ページ不在ハンドラが完了すると、プロセッサは中断した処理の実行を再開する。
【０００６】
ある種のコンピュータ・システムは、現在では、アドレス拡張を使用して仮想アドレス空間をさらにその各領域に分割するが、個々の各領域は１つまたは複数のページを含むことができる。各領域はそれぞれ、領域識別子（「アドレス空間識別子」とも呼ばれる）によって識別される。ある種のコンピュータ・システムでは、Ｎビットの仮想アドレスを使用して、２N個の異なる仮想アドレス空間の領域を識別する。２N個の領域はそれぞれ、任意数の異なる用途に使用される可能性がある。さらに、仮想メモリの異なる領域の異なる様々な用途がそれぞれ、異なるメモリ・アクセス文字（たとえば局所的、大域的など）を有する場合がある。
【０００７】
ＴＬＢへの変換の導入は、通常は一つまたは複数のＴＬＢ導入レジスタを使用して行われる。例えば、ページ不在ハンドラはＴＬＢ導入レジスタに変換を記憶し、その変換をＴＬＢに収納させるようにプロセッサに命令する。ＴＬＢ導入レジスタは、しばしば領域識別フィールド、変換属性フィールド、仮想ページ番号フィールド、および物理ページ番号フィールドを含む。変換属性フィールドは、アクセス中のページの様々な文字を識別するデータ（例えばアクセス保護など）を記憶するために使用される。
【０００８】
【発明が解決しようとする課題】
通常のコンピュータ・システムは、ページ不在を認識すると、１）仮想ページ番号および領域識別子をＴＬＢ導入レジスタにロードし、２）ページ不在ハンドラに命令して物理ページ番号およびその属性をＴＬＢ導入レジスタにロードさせる。一領域中の各ページの属性は変化する可能性があるが、一領域中の各ページの大部分はしばしば同じ属性を有する。ただし、ページ不在ハンドラは、変換が収納されるたびに、一領域中の個々のページの属性をロードしなければならない。ＴＬＢの充填は他のタイプのイベント（例えば、除外、割り込み、オペレーティング・システムの呼び出しなど）よりはるかに高い率で起こるので、ページ不在ハンドラはできる限り簡素化されることが望ましい。本発明はそれを実現することを目的とする。
【０００９】
【課題を解決するための手段】
仮想アドレスから物理アドレスへの変換の変換ユニットへの導入を簡素化するための方法および装置について記述する。本発明の１つの態様によれば、コンピュータ・システムで使用する装置は、一般に変換ユニット、デフォルト属性記憶区域、および事前ロード・ユニットを含む状態で提供される。変換ユニットは仮想アドレスを物理アドレスに変換する変換を記憶し、これらの個々の変換は属性フィールドを含む。デフォルト変換属性記憶区域は、幾つかのデフォルト変換属性を記憶する。事前ロード・ユニットは、デフォルト変換ユニットおよび変換ユニットに結合される。仮想アドレスの変換が変換ユニットに記憶されていないことを示す信号を変換ユニットから受信すると、これに応答して事前ロード・ユニットは、適当なデフォルト変換属性を変換ユニットへ伝送する。
【００１０】
本発明は、以下の説明および本発明を図示する添付の図面を参照することによって、最も良く理解することができよう。
【００１１】
【発明の実施の形態】
以下の記述では、多数の特定の詳細を示し、本発明を全体的に理解することができるようにする。ただし、これらの詳細を含まずに本発明を実行する場合があることを理解されたい。その他の例では、不必要に本発明を不明瞭にしないために、周知の回路、構造、および技術については詳細に示していない。
【００１２】
概要
ＴＬＢの充填を簡素化するための方法および装置について記述する。一実施形態では、プロセッサは記憶区域を含み、幾つかの異なる仮想アドレス・セットの個々に対するデフォルト変換属性を記憶する。ＴＬＢ不在に応答して、プロセッサはＴＬＢ導入レジスタに、仮想アドレスの適当なデフォルト変換属性を事前ロードする。事前ロードされたデフォルト変換属性が妥当な場合は、ページ不在ハンドラはＴＬＢ導入レジスタの属性フィールドをロードせず、ＴＬＢ充填の性能は向上する。しかし、このデフォルト変換属性が妥当でない場合は、ページ不在ハンドラは妥当な属性をこの事前ロードされたデフォルト属性に単に上書きする。代替の実施形態では、デフォルト変換属性は、ＴＬＢのエントリに直接事前ロードされ、ＴＬＢ導入レジスタは、使用される場合も使用されない場合もあり、また存在する場合も存在しない場合もある。
【００１３】
本発明の一実施形態
図１は、あるビット数の仮想アドレスによってアドレス指定することができる、異なる仮想領域を図示するブロック・ダイアグラムである。図１は、０から６３までの番号が付けられた、６４個のビットを有する仮想アドレス１００を示す図である。本発明の一実施形態では、仮想アドレス１００の上側ビットＮ個を使用して、２N個の異なる仮想領域１０５を識別する。したがって、図１に図示する例に示すように、異なる個々の仮想領域は、２(64-N)バイトのアドレス指定可能な空間を有する。この実施形態は６４ビット・コンピュータ・システムに関連して記述しているが、本発明は６４ビット・コンピュータ・システムに限定されるものではない。
【００１４】
異なる実施形態では、任意数の異なる属性を、任意数の異なる方法で領域およびページに割り当てる場合がある。例えば、異なる実施形態では、任意数の異なる方法で仮想領域をページに分解することができる。例えば、個々の仮想領域は一つまたは複数のページを含むことができる、領域ごとに異なるサイズのページを含むことができる、同一の領域がサイズの異なるページを含むことができる、などがある。さらに、異なる実施形態では、任意数の異なる方法でアクセス保護基準を指定することができる。例えば、同一の保護キーがある領域のあらゆるページに対して使用される場合がある、個々のページにそれ自体の保護キーがある場合があるなど。さらに、異なる実施形態では、任意数の異なる方法でキャッシュ方式を扱うことができる。例えば、同一のキャッシング・プロトコルがある領域のあらゆるページに対して使用される場合がある、個々のページがそれ自体のキャッシング・プロトコルをもつ場合があるなど。アドレス拡張を使用して仮想空間の異なる領域を識別する一実施形態について記述したが、代替の実施形態が異なる仮想領域をサポートする必要はない。
【００１５】
図２は、本発明の一実施形態の例示的な実施を図示するブロック・ダイアグラムである。図２は、物理アドレス２０５への変換を必要とする、Ｋビットを含む仮想アドレス２００を示す図である。仮想アドレス２００は仮想領域識別フィールド２１０、仮想ページ番号フィールド２２０、およびオフセット・フィールド２１５を含む。オフセット・フィールド２１５はｍビットを含む。多数のページ・サイズ（例えば４Ｋ、１６Ｋ，４Ｍ）がサポートされている実施形態では、オフセット・フィールド２１５および仮想ページ番号フィールド２２０のビット数は、仮想アドレスが属するページ・サイズに左右される。オフセットの可変サイズを、図２に、オフセット・フィールド２１５と仮想ページ番号フィールド２２０の間の破線によって図示する。
【００１６】
一実施形態では、仮想領域識別子フィールド２１０のＮビットを使用して、レジスタ・セット２２５中の１つのレジスタを識別する。レジスタ・セット２２５は２N個のレジスタを含み、その時点で実行中の処理に関連する個々の領域の、領域識別子およびデフォルト変換属性を記憶する。この実施形態では、レジスタ・セット２２５は、プロセッサによって多重タスクされているあらゆる処理のデフォルト変換属性を必ずしも記憶しない。各領域のデフォルト変換属性は、ある処理と別の処理の間で異なるように選ぶことができる。その時点で多重タスクされている処理のデフォルト変換属性は、主記憶装置とレジスタ２２５の間で、オペレーティング・システムによってスワップされる。もちろん、代替の実施形態では、これより多数または少数のレジスタを含むことができる。
【００１７】
既に述べたように、本発明の代替の実施形態が、異なる仮想領域をサポートする必要はない（すなわち、本発明の代替の実施形態はアドレス拡張として領域識別子を使用しない）。また、レジスタ・セットを使用してデフォルト変換属性を記憶し、仮想アドレスのビットに基づいてデフォルト変換属性が選択される一実施形態について記述したが、代替の実施形態では、任意数の異なる技術を使用して、デフォルト変換属性を記憶する、またはそこから選択する、あるいはその両方を行うことができる。例えば、デフォルト変換属性は、１）特定または全ての領域のデフォルト変換属性をハード・ワイヤすることによって記憶される、２）特定または全ての仮想アドレス（仮想領域をサポートしないコンピュータ・システムを含む）のデフォルト変換属性をハード・ワイヤすることによって記憶される、３）プロセッサ外部の記憶領域に記憶される、またはソフトウェア・ハンドラによってアクセスされる、あるいはその両方が行われる、４）仮想アドレスにその時点で関連している命令に基づいて選択される（例えば、入出力命令を実行すると１組のデフォルト変換属性を選択することになるが、非入出力命令を実行すると他の１組のデフォルト変換属性を選択することになる場合がある）などの可能性がある。「デフォルト変換属性記憶区域」という語句は、ここではデフォルト変換属性を記憶するための任意の機構を指して使用される。「デフォルト変換属性選択基準」という語句は、ここではデフォルト変換属性記憶区域のデフォルト変換属性から選択するための任意の技術を指して使用される。
【００１８】
デフォルト・ページ・サイズ、デフォルト・キャッシュ・プロトコル、デフォルト保護キーなどを含む任意数の属性が、デフォルト変換属性の一部として記憶される可能性がある。一例を挙げると、ある領域のデフォルト・ページ・サイズは、その領域で最もよくアクセスされるまたは現れる、あるいはその両方であるページ・サイズを表現するために選択されることになる。その領域で最もよくアクセスされるまたは現れる、あるいはその両方であるページ・サイズを選択すれば、事前ロードされたデフォルト・ページ・サイズは、より頻繁にその領域に属する仮想アドレスの妥当なページ・サイズになることになる。保護キーは任意数の目的に使用されるが、本発明の一実施形態では、保護キーは定義域ベースの保護モデルをサポートし、単一アドレス空間オペレーティング・システム・モデルが異なるキー識別子を保護定義域に割り当てることができるようにするために使用される。デフォルト変換属性の一部として保護キーを使用する一実施形態では、領域のデフォルト保護キーがその領域識別子となる。
【００１９】
仮想アドレス２００の仮想ページ番号と共に、レジスタ２２５の識別された１つからの領域識別子がＴＬＢ２３０に送信される。ＴＬＢ２３０は任意数の方法で導入されている（例えば、１つまたは複数の完全に連合するキャッシュ、１つまたは複数の直接マップされたキャッシュ、完全に連合するキャッシュと直接マップされたキャッシュとの組み合わせなど）。ＴＬＢ２３０が仮想アドレス２００の変換を含む場合は、ＴＬＢ２３０から物理ページ番号が取り出され、これがオフセット・フィールド２１５からのｍビットと連結されて物理アドレス２０５を生成する。
【００２０】
しかし、ＴＬＢが仮想アドレス２００の変換を含まない場合は、ＴＬＢ不在障害が発生する。ＴＬＢ不在障害に応答して、事前ロード回路２４０は、ＴＬＢ導入レジスタ・セット２４５に、識別されたレジスタからのデフォルト変換属性を事前ロードする。さらに、ページ不在ハンドラ・セット２５０が呼び出され、仮想アドレスの変換を決定する。このページ不在ハンドラ・セット２５０は、様々なタイプ（例えばハードウェアまたはソフトウェア・ページ不在ハンドラ）であること、および様々な技術（例えばハッシュされたページ・テーブル、ハッシュされた様々な機能、線形ページ・テーブルなど）を使用することができる、任意数のページ不在ハンドラを代表している。多数のページ不在ハンドラが設けられている場合は、任意数の技術を利用してそれらのページ不在ハンドラからの選択を行うことができるが、それらの技術には、１つのページ不在ハンドラがページ不在であることによって次のページ不在ハンドラが呼び出される階層構成も含まれる。したがって本発明は、ページ不在ハンドラの数またはタイプ、ならびにそれらのページ不在ハンドラが使用する技術によって制限されるものではない。
【００２１】
ＴＬＢ導入レジスタ２４５に事前ロードされたデフォルト変換属性が変換に妥当な場合、ページ不在ハンドラは、ＴＬＢ導入レジスタに変換の物理ページ番号はロードするが、変換属性はロードしない。このようにして、変換属性をロードしないので、ページ不在ハンドラの性能は向上する。
【００２２】
しかし、事前ロードされたデフォルト変換属性が妥当でない場合は、ページ不在ハンドラは妥当な変換属性と物理ページ番号を両方ともＴＬＢ導入レジスタ２４５にロードしなければならない。ＴＬＢ導入レジスタ２４５に妥当な変換が記憶されると、ＴＬＢ２３０に変換がインストールされる。
【００２３】
デフォルト変換属性の事前ロードはまた、仮想領域中の全てまたはほとんどのページが同一の変換属性を共有する場合に、ページ・テーブルのサイズを減少させるためにも使用される。例えば、仮想領域中の全てのページが同一の変換属性を共有する場合は、それらの共通の変換属性がレジスタ・セット２２５中の識別されたレジスタから事前ロードされることになるので、共通の変換属性をあらゆるページ・テーブルの個々のエントリに記憶する必要はない。
【００２４】
本発明が仮想アドレスから物理アドレスへの変換を助ける一実施形態について記述したが、代替の実施形態では、本発明を使用して、仮想アドレスの変換済みアドレスへの変換を行う場合がある。変換済みアドレスは後に物理アドレスに転換される。さらに、一実施形態について、特定のフィールドに関連して記述した（例えば仮想ページ番号フィールド２２０は仮想領域識別子フィールド２１０を含む）が、代替の実施形態では異なるフィールドを使用して、本発明を実施する可能性がある（例えば、代替の実施形態では、仮想ページ番号フィールドは仮想領域識別子フィールドを含まない、または部分的にこれと重複することもない場合がある）。
【００２５】
ＴＬＢ導入レジスタは任意数のレジスタを表現し、ＴＬＢ２３０中の導入用変換データの記憶に限定される必要はない。例えば、ＴＬＢ導入レジスタのフィールドは、変換以外にも情報を含む、異なる幾つかのシステム・レジスタに属する場合がある。変換の完了に応答して、変換はこれらの異なる幾つかのレジスタからＴＬＢ２３０へ送信され、ＴＬＢ２３０のエントリに記憶される。
【００２６】
前述のように、本発明の一実施形態では、デフォルト変換属性を、ＴＬＢ導入レジスタではなくＴＬＢエントリに直接事前ロードする。このような実施形態では、ＴＬＢ導入レジスタを含む場合と含まない場合とがある。「ＴＬＢユニット」という用語は、ここではＴＬＢと、存在する場合にはこれに関連する導入レジスタを指して使用される。したがって、デフォルト変換属性のＴＬＢユニットへの事前ロードとは、いずれかの導入レジスタの事前ロードか、またはＴＬＢ中のあるエントリの事前ロードかのどちらかを指す。
【００２７】
「アドレス変換ユニット」という用語は、ここでは、コンピュータ・システム中の仮想アドレス変換のための任意の機構を指して使用され、１）ＴＬＢユニット、２）ソフトウェアまたはハードウェア・ページ不在ハンドラなどを含む。本発明は、導入用デフォルト変換属性のＴＬＢへの事前ロードに限定されるものではなく、導入用デフォルト変換属性を任意のアドレス変換ユニットに事前ロードするために使用される場合がある（例えば、変換を記憶している何らかの形態の主記憶装置ベース・テーブルに、デフォルト変換属性を事前ロードする）。事前ロード回路が事前ロードを実行する一実施形態について記述したが、代替の実施形態ではソフトウェアを使用して事前ロードを実行する可能性もある。「事前ロード・ユニット」という用語は、ここでは、導入用デフォルト変換属性をアドレス変換ユニットに事前ロードするための任意の機構を指して使用される。
【００２８】
図３は、本発明の一実施形態による、仮想アドレスを対応する物理アドレスに変換せよという要求に応答して実行される各段階を図示する、フロー・ダイアグラムである。このフロー・ダイアグラムは段階３００から開始し、ここから制御は段階３１０に移る。
【００２９】
段階３１０に示すように、ＴＬＢが仮想アドレスの変換を含むかどうかを判別する。一致が見つかった場合は、フローは段階３２０に移り、そこでこの一致する変換を使用して仮想アドレスの対応する物理アドレスを決定し、フロー・ダイアグラムは終了する。見つからない場合は、フローは段階３３０に移る。
【００３０】
段階３３０に示すように、仮想アドレスの仮想ページ番号はＴＬＢ導入レジスタに記憶される。段階３３０から、フローは段階３４０に移る。
【００３１】
段階３４０に示すように、仮想アドレスのデフォルト変換属性がＴＬＢ導入レジスタに事前ロードされる。領域識別子が使用されている場合は、その領域の領域識別子もまた、ＴＬＢ導入レジスタにロードされる場合がある。段階３４０から、制御は段階３５０に移る。
【００３２】
段階３５０でＴＬＢ不在障害が発生し、フローは段階３６０に移る。障害の発生およびその処理は、当技術分野で周知である。段階３５０から、制御は段階３６０に移る。
【００３３】
段階３６０に示すように、ＴＬＢ不在障害はページ不在ハンドラによって処理される。ソフトウェア・ページ不在ハンドラの場合は、プロセッサは現行処理の実行を中断し、中断した処理の実行環境（すなわち、中断した処理の実行再開に必要な情報）を記憶し、ソフトウェア・ページ不在ハンドラを呼び出して変換を実施する。ページ不在ハンドラは、プロセッサに命令してＴＬＢ導入レジスタに変換を記憶させ、ＴＬＢに変換を導入し、中断した処理の実行を再開する。ハードウェア・ページ不在ハンドラの場合は、ハードウェア・ページ不在ハンドラは、（例えばページ・テーブルにアクセスする、ハード・ワイヤード変換を使用することなどによって）変換を実施し、またはＴＬＢに変換を導入する、あるいはその両方を行う。段階３６０については、図４に関連してさらに記述する。段階３６０から、制御は段階３７０に移る。
【００３４】
段階３７０に示すように、プロセッサは中断した処理の実行を再開する。ソフトウェア・ページ不在ハンドラの場合、プロセッサはＴＬＢ不在障害が命令（すなわち、段階３００に記述した仮想アドレスを生成する命令）を引き起こした時点から、中断した処理の実行を再開する。その間に、同一の仮想アドレスが再び生成されることになる。ただし、今回は変換がＴＬＢに記憶されている。その結果、制御はフロー・ダイアグラムを通過し、仮想アドレスに対応する物理アドレスを決定する段階３２０で終了する。
【００３５】
図４は、本発明の一実施形態による、図３の段階３６０で実行された各段階のさらに詳細な説明を図示するフロー・ダイアグラムである。ソフトウェア・ページ不在ハンドラが使用される場合は、図４に示す各段階は、ソフトウェア・ページ不在ハンドラの実行に応答して実行されることになる。ＴＬＢ不在障害が発生する段階３５０から、制御は段階４００に移る。
【００３６】
段階４００に示すように、仮想アドレスの変換を決定し、制御は段階４１０に移る。段階４００を実行するために、任意数の技術が使用される可能性がある。
【００３７】
段階４１０で、事前ロードされたデフォルト変換属性が、決定した変換に対して妥当であるかどうかを判別する。妥当であれば、フローは段階４３０に移る。妥当でない場合には、フローは段階４２０に移る。このようにして、事前ロードされたデフォルト変換属性（最も頻繁に使用される属性でなければならない）が妥当な場合には、変換の属性部分をロードする必要をなくすことによって、ＴＬＢの充填は簡素化される。段階４１０は、任意数の技術を使用して実行される可能性があり、１）ページ・テーブルのエントリ中の妥当な変換属性（あるいは所与ページの変換属性がデフォルト変換属性と異なるかどうか）を指示するデータを記憶すること、２）オペレーティング・システムを実施して、デフォルト変換属性と異なる変換属性を有する特定のアドレス範囲を試験することなどを含む。
【００３８】
段階４２０に示すように、事前ロードされてＴＬＢ導入レジスタに記憶されたデフォルト変換属性は、妥当な属性で上書きされる。多数のデフォルト変換属性が事前ロードされている場合は、異なる実施形態では、妥当でない属性のみに選択的に上書きすることができる。段階４２０から、フローは段階４３０に移る。
【００３９】
段階４３０で、決定した変換の物理ページ番号がＴＬＢ導入レジスタにロードされる。段階４３０から、フローは段階４４０に移る。
【００４０】
段階４４０に示すように、変換はＴＬＢにインストールされ、フローは段階３７０に移る。ソフトウェア・ページ不在ハンドラの場合は、ソフトウェア・ページ不在ハンドラは、実行時に変換のインストールおよび中断された処理の再開を引き起こす、１つまたは複数の命令を含む。
【００４１】
例示的コンピュータ・システム
図５は、本発明の一実施形態による、ソフトウェア・ページ不在ハンドラを含む例示的コンピュータ・システム５００のブロック・ダイアグラムである。例示的コンピュータ・システム５００は、バス５１５によって記憶装置５１０と結合されるプロセッサ５０５を含む。さらに、キーボード５２０およびディスプレイ５２５など、幾つかのユーザ入出力装置もまたバス５１５に結合される場合があるが、これらの部分は本発明に不可欠なものではない。ネットワーク５３０もまたバス５１５に結合される場合がある。プロセッサ５０５は、ＣＩＳＣ、ＲＩＳＣ、ＶＬＩＷ、またはハイブリッド・アーキテクチャなど、いずれかのアーキテクチャ・タイプの中央処理装置を表現する。さらに、プロセッサ５０５は１つまたは複数のチップ上で実施される可能性がある。記憶装置５１０は、１つまたは複数のデータ記憶機構を表現する。例えば、記憶装置５１０は、読み出し専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュ・メモリ装置、またはその他の器械可読媒体、あるいはそれらの組み合わせを含む場合がある。バス５１５は、１つまたは複数のバス（例えばＰＣＩ、ＩＳＡ、Ｘ−Ｂｕｓ、ＥＩＳＡ、ＶＥＳＡ）、およびブリッジ（バス・コントローラとも呼ばれる）を表現する。この実施形態では単一プロセッサ・コンピュータ・システムに関して記述したが、本発明は多重プロセッサ・コンピュータ・システムで実施することができる。
【００４２】
図５はまた、記憶装置５１０が、変換を決定するためのソフトウェア・ページ不在ハンドラ５３５およびページ・テーブル・セット５４０を内部に記憶していることも図示している。もちろん、記憶装置５１０が、オペレーティング・システムおよび様々なアプリケーション（図示せず）などの付加的なソフトウェアを含むことが好ましいが、これらは本発明の理解には不要である。
【００４３】
図５は、プロセッサ５０５が実行ユニット５４５、レジスタ・セット５５０、ＴＬＢ５５５、事前ロード回路５６０、ＴＬＢ導入レジスタ・セット５６５、およびイベント処理ユニット５７０を含むことを付加的に図示する。実行ユニット５４５は、物理アドレスに変換するため、仮想アドレスのフィールドを伝送するようにレジスタ・セット５５０およびＴＬＢ５５５に結合される。レジスタ５５０およびＴＬＢ５５５は、図２に関連して記述した方法と同様の方法で、事前ロード回路５６０およびＴＬＢ導入レジスタ５６５と共に動作する。
【００４４】
ＴＬＢ不在に応答して、イベント処理ユニット５７０はソフトウェア・ページ不在ハンドラ５３５の実行を開始する。ソフトウェア・ページ不在ハンドラ５３５を実行すると、プロセッサ５０５はページ・テーブル・セット５４０から変換を引き出し、前述のようにそれらの変換をＴＬＢ５５５に収容する。ソフトウェア・ページ不在ハンドラ５３５は、事前ロードされたデフォルト変換属性が妥当な場合には、デフォルト変換属性の事前ロードを利用するように書き込まれている。
【００４５】
前述のように、本発明は、ページ不在ハンドラの数またはタイプ、ならびにそれらのページ不在ハンドラが使用する技術によって制限されるものではない。したがって、単一のソフトウェア・ページ不在ハンドラを有するコンピュータ・システムを示したが、代替の実施形態では、任意数の異なる技術を使用する、任意数のソフトウェアまたはハードウェア・ページ不在ハンドラあるいはその両方を含むことが可能である。具体的には、代替の実施形態は、ソフトウェア・ページ不在ハンドラ５３５に加えて、またはこれの代わりに、プロセッサに組み込まれたハードウェア・ページ不在ハンドラを有することができる。
【００４６】
図５は単一のＴＬＢを有するプロセッサを図示するが、このプロセッサの代替の実施形態では、ＴＬＢ導入レジスタを共有するか、または別々のＴＬＢ導入レジスタを有する場合がある多数のＴＬＢ（例えばデータＴＬＢ、命令ＴＬＢなど）を含むことができる。記憶区域という用語は、ここでは、記憶装置５１０や、プロセッサ内の１つまたは複数のレジスタなどの記憶装置中の位置を含めた、データを記憶するための任意の機構を指して使用される。
【００４７】
代替の実施形態
本発明を、幾つかの実施形態に関して説明したが、本発明が、記述した実施形態に限定されるものではないことを当業者なら理解するであろう。本発明の方法および装置は、修正および変更を加えて実行することができる。したがって、以上の記述は、本発明の制限ではなく例示であるとみなされたい。
【図面の簡単な説明】
【図１】  本発明の一実施形態による、特定ビット数の仮想アドレスによってアドレス指定することができる異なる仮想領域を図示するブロック・ダイアグラムである。
【図２】  本発明の一実施形態の例示的な実施を図示するブロック・ダイアグラムである。
【図３】  本発明の一実施形態による、仮想アドレスを対応する物理アドレスに変換せよという要求に応答して実行される各段階を図示するフロー・ダイアグラムである。
【図４】  本発明の一実施形態による、図３の段階３６０で実行される各段階のさらに詳細な説明を図示するフロー・ダイアグラムである。
【図５】  本発明の一実施形態による、例示的なコンピュータ・システムのブロック・ダイアグラムである。
【符号の説明】
２００  仮想アドレス
２０５  物理アドレス
２１０  仮想領域番号フィールド
２１５  オフセット・フィールド
２２０  仮想ページ番号フィールド
２２５  レジスタ・セット
２３０  ＴＬＢ
２４０  事前ロード回路
２４５  ＴＬＢ導入レジスタ・セット
２５０  ページ不在ハンドラ・セット
【図１】
0003998787.tif 000002
【図２】
0003998787.tif 000003
【図３】
0003998787.tif 000004
【図４】
0003998787.tif 000005
【図５】
0003998787.tif 000006