(57)【特許請求の範囲】
【請求項１】
メモリ属性索引信号を受信し、メモリ属性索引信号に応答して直線メモリ属性信号を選択するメモリ属性パレットと、
直線メモリ属性信号を受信し、直線メモリ属性信号に応答して有効メモリ属性信号を選択する有効メモリ属性セレクタと、
有効メモリ属性セレクタに物理属性信号を提供する物理属性レジスタと、
有効メモリ属性信号を受信し、有効メモリ属性信号に応答してメモリ管理信号を提供するメモリ管理回路とから構成され、上記有効メモリ属性セレクタは直線メモリ属性信号と物理属性信号に応答して有効メモリ属性信号を選択することを特徴とするコンピュータ・システム。
【請求項２】
メモリ属性索引信号を受信し、メモリ属性索引信号に応答して直線メモリ属性信号を選択するメモリ属性パレットと、
有効メモリ属性セレクタに物理属性信号を提供する物理属性レジスタと、
直線メモリ属性信号を受信し、直線メモリ属性信号および物理属性信号に応答して有効メモリ属性信号を選択する有効メモリ属性セレクタと、
有効メモリ属性信号を受信し、有効メモリ属性信号に応答してメモリ管理信号を提供するメモリ管理回路と
を含むコンピュータ・システム。
【請求項３】
メモリ属性索引信号を受信し、メモリ属性索引信号に応答して直線メモリ属性信号を選択するメモリ属性パレットと、
入力した直線メモリ属性信号を記憶し、次いでパレット・レジスタに転送する少なくとも１つの外部レジスタと、
有効メモリ属性セレクタに物理属性信号を提供する物理属性レジスタと、
直線メモリ属性信号を受信し、直線メモリ属性信号および物理属性信号に応答して有効メモリ属性信号を選択する有効メモリ属性セレクタとを含み、
上記メモリ属性パレットは直線メモリ属性信号を記憶するパレット・レジスタであり、上記少なくとも１つの外部レジスタはプログラムとオペレーティングシステムからアクセス出来ることを特徴としたコンピュータ・システム。
【発明の詳細な説明】
【０００１】
（発明の背景）
本発明の技術分野
本発明は、コンピュータ・システム、特に、メモリの各セクションのメモリ属性を割り当てるためのメモリ属性パレットを含むコンピュータ・メモリ・システムに関する。
【０００２】
従来技術の説明
Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されるＰｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサは、メモリの特定のセクションの効果的なメモリ・タイプを設定するために共に使用される２つの対話機構を含む。メモリ・タイプ・レンジ・レジスタ（ＭＴＲＲ）は物理アドレス範囲のメモリ属性を定義する。ページ・テーブルによって直線的にアドレス指定されたメモリ・ページにメモリ属性を動的に割り当てることができる。ＭＴＲＲは通常ＢＩＯＳによって設定される特定のアラインメントおよび長さの制約がある静的物理範囲を記述するのに適しているが、プログラムの直線的にアドレス指定された動的なデータ構造体を記述することができない。ページ・テーブルによって、メモリ属性をメモリの直線的にアドレス指定されたページに動的に割り当てることができる。これによって、メモリ属性を任意のデータ構造体に適用する際のオペレーティング・システム（ＯＳ）とアプリケーションの柔軟性が与えられる。
【０００３】
Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサのページ・テーブルはライト・スルー（ＷＴ）およびアンキャッシャブル（ＵＣ）を含むすべてのメモリ属性のサブセットのみを提供する。ページ・ディレクトリおよびページ・テーブル・エントリは、メモリ・タイプを選択する２つのビット、すなわちページ・キャッシュ・ディスエーブル（ＰＣＤ）およびページ・ライト・スルー（ＰＷＴ）を含む。残りの２つのメモリ・タイプは残りの予約ビットのみを使用して指定できるが、そうすることで将来新しいメモリ属性を導入することが妨げられるであろう。
【０００４】
したがって、柔軟で拡張可能な形で直線的メモリ範囲にページ・テーブル・メモリ・タイプの符号化を与える手段が必要である。
【０００５】
（発明の要旨）
本発明は、メモリ属性索引信号を受信し、メモリ属性索引信号に応答して直線メモリ属性信号を選択するメモリ属性パレットを有するコンピュータ・システムを含む。有効メモリ属性セレクタは直線メモリ属性信号を受信し、直線メモリ属性信号に応答して有効メモリ属性信号を選択する。メモリ管理回路は有効メモリ属性信号を受信し、有効メモリ属性信号に応答してメモリ管理信号を提供する。本発明の特定の実施態様は、有効メモリ属性セレクタに物理メモリ属性信号を与える物理属性レジスタを含むことができ、有効メモリ属性セレクタが直線メモリ属性信号および物理メモリ属性信号に応答して有効メモリ属性信号を選択する。
【０００６】
（好ましい実施形態の詳細な説明）
本発明は直線メモリ属性が指定されるコンピュータ・システムに関する。本発明のいくつかの実施形態では、物理メモリ属性、例えばＭＴＲＲも指定される。メモリ属性パレット（ＭＡＰ）は索引信号を受信し、索引信号に応答して直線メモリ属性を選択する。有効メモリ属性セレクタは選択された直線メモリ属性信号を受信し、物理属性レジスタから物理メモリ属性信号を受信でき、それに応答して、有効メモリ属性を表す有効メモリ属性信号を選択する。本発明の好ましい実施形態では、直線メモリ属性は１つまたは複数のレジスタに書き込むことができる。これによって、プログラムまたはＯＳの作成者は、将来のメモリ属性を含めて、メモリ属性を柔軟に選択できる。本発明によって、プログラムは選択したメモリ属性をメモリの特定のセクションに適用でき、それによってコンピュータ・システムはより高いパフォーマンスを得ることができる。
【０００７】
好ましい実施形態では、メモリ属性パレットはマイクロプロセッサ内にある。本発明は特定のタイプのマイクロプロセッサに関する使用に限定されない。実際、本発明は、マイクロプロセッサとメモリの一般に理解されている構造と信号に関して記述されている。ただし、本発明の特定の実施形態は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎから発売されているＰｅｎｔｉｕｍ（登録商標）Ｐｒｏマイクロプロセッサ内とそれに関係するチップ・セット内で現在使用されている構造を含む。ただし、本発明はＰｅｎｔｉｕｍ（登録商標）Ｐｒｏマイクロプロセッサで使用されている下記の構造および信号に関する使用に限定されない。Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏマイクロプロセッサの基本構造および信号はＰｅｎｔｉｕｍ  Ｐｒｏ  Ｆａｍｉｌｙ  Ｄｅｖｅｌｏｐｅｒ’ｓ  Ｍａｎｕａｌ、Ｖｏｌ．１：Ｓｐｅｃｉｆｉｃａｔｉｏｎ、Ｖｏｌ．２：Ｐｒｏｇｒａｍｍｅｒ’ｓ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ、およびＶｏｌ．３：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｗｒｉｔｅｒ’ｓ  Ｍａｎｕａｌ（特にＶｏｌ．３、第１１章）（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ、１９９６）に記載されている。本明細書で使用する「メモリ属性」という用語は、Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサに関する「メモリ・タイプ」と呼ばれるものを含むが、これに限定されるわけではない。
【０００８】
図１を参照すると、コンピュータ・システム１０はマイクロプロセッサとも呼べるプロセッサ１４を含む。コンピュータ・システム１０は、異なるサイズとプロセッサ１４に関して異なるアクセス速度を有する様々なメモリを含む。メモリはメイン・メモリ１６、Ｌ２キャッシュ２０、およびハード・ドライブなどの周辺装置２２を含む。データは、プロセッサ１４の内部にあるＬ１キャッシュから読み出し、またそこに書きこむことができる。さらに、コンピュータ・システム１０は、プロセッサ２６が代表する１つまたは複数の追加のプロセッサを含むことができる。プロセッサ２６はメイン・メモリ１６をプロセッサ１４と共用できる。データはプロセッサ・バス２８、ＰＣＩバス３０、バックサイド・バス３４、およびバス３６を含む様々なバスを介して転送される。メモリ・コントローラ３８は様々なメモリとプロセッサ１４およびプロセッサ２６（ある場合）との間のデータの転送を制御する。コンピュータ・システム１０は例にすぎない。本発明によるコンピュータ・システムはコンピュータ・システム１０のすべての構成要素（例えば別個のＬ２キャッシュ）を含む必要はない。さらに、メモリ・コントローラ３８はルックアサイド、ルックスルー、ライトバック、またはライトスルー・キャッシュ構成などの特定の構成に限定されない。
【０００９】
図２を参照すると、メモリ属性パレット（ＭＡＰ）５０はメモリ属性索引信号を受信する。好ましい実施形態では、ＭＡＰは３つのメモリ属性索引信号、すなわち、導線５４、５６、および５８を通るＰＣＤ、ＰＷＴ、およびＭＡＰ索引信号を受信する。Ｐｅｎｔｉｕｍ（登録商標）ＰｒｏプロセッサではＰＣＤ（ページ・キャッシュ・ディスエーブル）およびＰＷＴ（ページ・ライト・スルー）が採用されている。Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサでは、ＰＣＤおよびＰＷＴ信号は、制御レジスタＣＲ３のそれぞれフラグ・ビット４および３である。Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサでは、レジスタＣＲ３は、ＣＲ３レジスタがページ・ディレクトリ・ポインタ・テーブルと呼ばれる、ＣＲ４物理アドレス拡張（ＰＡＥ）ビットがセットされている時を除き、ページ・ディレクトリ・ベース・アドレス・レジスタと呼ばれる。
【００１０】
ＰＣＤおよびＰＷＴビットはページ・ディレクトリ・エントリおよびページ・テーブル・エントリに供給される。ＭＡＰ索引信号は制御レジスタＣＲ３、ページ・ディレクトリ・エントリ、およびページ・テーブル・エントリの予約ビットの位置に供給できる第３の索引信号である。単に例として、ＭＡＰ信号ビットは小容量（例えば、４Ｋ）のページ・テーブル・エントリ用のビット７、および大容量（例えば、２Ｍ／４Ｍ）のページをマッピングするページ・ディレクトリ・エントリ用のビット１２である。ＭＡＰ索引ビットはレジスタＣＲ３、ページ・ディレクトリ・エントリ、またはページ・ディレクトリ・ポインタ・エントリについては定義されておらず、したがって、ゼロと見なされる。メモリ属性索引信号がＰＣＤ、ＰＷＴ、およびＭＡＰ信号と呼ばれる必要はなく、ＣＲ３レジスタ、ページ・ディレクトリ・エントリ、またはページ・テーブル・エントリに関して供給される必要もないことは当然である。
【００１１】
ＭＡＰ５０内のセレクタ５２は、８つの直線属性レジスタＲ０、Ｒ１、．．．Ｒ７に分割されるレジスタ６０の最大８つの直線メモリ属性の１つを選択する。セレクタ５２は、マルチプレクサでもよく、導線５４、５６、および５８を通る索引信号ＰＣＤ、ＰＷＴ、およびＭＡＰのステートに基づいてレジスタＲ０、Ｒ１、．．．Ｒ７の１つの内容を導線８２に供給する。（様々な多重化技法のうち任意の技法を使用できる。）Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサの場合のように、レジスタ６０は、リング０／ＯＳでＥＣＸレジスタを介してパラメータとして「ｒｄｍｓｒ」（読み出しモデル専用レジスタ）命令および「ｗｒｍｓｒ」（書き込みモデル専用レジスタ）命令に渡されるＭＳＲアドレス０ｘ２７７であってもよい。したがって、レジスタ６０の内容、またはその一部はプログラムの動作中に変更でき、それによってプログラマは柔軟にメモリ属性を選択できる。レジスタ６０はアーキテクチャによって定義することができる。（本発明の代替実施形態では、小容量レジスタの内容を変更することで、わずか１つまたは２つの索引信号から多数の属性にアクセスすることができる。）
【００１２】
レジスタ６０は６４ビット・リード／ライト・アクセス可能モデル専用レジスタ（ＭＳＲ）であってよい。あるいは、直線属性レジスタＲ０、Ｒ１、．．．Ｒ７は異なるアドレスを有し、互いに別個であってもよい。データはバス６２を介してレジスタ６４からレジスタ６０に書き込むことができる。図２に示すように、レジスタ６４はＥＣＸレジスタなどのマイクロプロセッサ内部のレジスタでもよい。あるいは、レジスタ６４はマイクロプロセッサの内部または外部のメモリ内の位置であってもよい。レジスタ６４は異なるメモリ位置を有するレジスタのグループを表すことができる。属性データは、レジスタ６４が表すことができるメモリへのポインタを介してアクセスできる。レジスタ６４とレジスタ６０の間には図示されていない追加の回路があってもよい。属性データは導線６６、６８、．．．８０を介してレジスタ６０から読み出すことができる。好ましい実施形態では、導線６６、６８、．．．８０および８２はＮビット幅である。Ｎは３、８、またはその他の数である。バス６２および導線６６、６８、．．．８０はまた適当な読み出しおよび／または書き込み回路を表す。セレクタ５２はレジスタ６０にいつでもアクセスできるので、レジスタ６０をパレット・レジスタと呼んでもよい。レジスタ６４はＭＡＰ５０の外部にあるので、外部レジスタと呼ぶこともできる（プロセッサ１４の外部にあるか否かにかかわらず）。
【００１３】
以下にレジスタ６０の例を示す。
【表１】
0004312952.tif 000002
【００１４】
レジスタ６０の例では、ビット０〜７はレジスタＲ０を含み、ビット８〜１５はレジスタＲ１を含み、．．．、ビット５６〜６３はレジスタＲ７を含む。（この意味では、レジスタ６０は多数のレジスタと考えることもできる。さらに、説明したように、レジスタは異なるアドレスにあってもよい）メモリ属性０（ＭＡＰ０）はレジスタ０のメモリ０〜２内にある。ＭＡ０、ＭＡ１、．．．、ＭＡ７はＭＡＰ５０を介して利用可能なレジスタ６０内に含まれる８つのメモリ属性を指定する。したがって、ＭＡＰ５０は８エントリ、８ビット幅のプログラマブル・テーブルである。この例では、Ｒｓｖｄは各ページ属性の最上位ビットで、将来の拡張のために予約されている。もちろんメモリ属性ＭＡ０、ＭＡ１、．．．、ＭＡ７を３ビットより多くのビット数、またはそれより少ないビット数で表すことも可能である。図２の構造のいくつかの実施例では、メモリ属性は８つより少なくてもよい。その場合、いくつかの属性はレジスタ６０の複数のエントリに含めることができる。あるいは、索引信号の一定の組み合わせがアサートされないことが予想できる。
【００１５】
物理属性レジスタ８４は導線８６上で物理メモリ属性信号を有効メモリ属性セレクタ８８に提供する。物理メモリ属性信号は物理メモリ属性を表す。物理属性レジスタ８４はＭＴＲＲでもよく、物理メモリ属性信号はＭＴＴＲメモリ・タイプの信号でもよい。有効メモリ属性セレクタ８８は導線８２上でセレクタ５２から直線メモリ属性信号も受信する。直線メモリ属性信号は直線メモリ属性を表す。有効メモリ属性セレクタ８８は、メモリ管理回路９０によって受信される有効メモリ属性信号を導線９２上に生成する処理の規則に従う。メモリ管理回路９０は、有効メモリ属性信号に応答して、導線９４上でメモリ管理信号を供給する。図示のように、メモリ管理回路９０はプロセッサ１４内に含まれるが、プロセッサの外部にあってもよい。メモリ管理信号は、例えば、下の表１に概要を述べるメモリ動作を制御するのに使用される。
【００１６】
Ｉｎｔｅｌ４８６プロセッサ、Ｐｅｎｔｉｕｍ（登録商標）プロセッサ、Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサを含むＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎのプロセッサおよびその上で実行される既存のソフトウェアとの互換性は、例えばリセット時にレジスタ６０に正しい値を書き込むことによって維持できる。これらの初期値は以前の既存のページ・テーブル・メモリ・タイプおよびＭＴＲＲとの完全な後方互換性を提供するようにプログラミングできる。さらに、デフォルト設定はソフトウェアがＭＡＰ５０について定義された予約済みページ・テーブル・ビットを使用するケースで互換性を提供する。レジスタ６０内で、ＭＡ０〜ＭＡ７の各々の３ビットは、例えば、本明細書に合わせて下記の表１に示すように製造される、表２（Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏ  Ｆａｍｉｌｙ  Ｄｅｖｅｌｏｐｅｒｓ  Ｍａｎｕａｌ、ｖｏｌ．３、表１１−５ｐｐ．１１−１４）プロセッサに示す、Ｐｅｎｔｉｕｍ（登録商標）ＰｒｏプロセッサＭＴＲＲで使用されるのと同じ符号化を有するメモリ属性を指定することができる。
【表２】
0004312952.tif 000003
【００１７】
表１の変更は、下記のように符号化‘０００がＵＣで、符号化‘１１１がＵＣ−であるという点である。本発明の一実施形態では、符号化‘１１１は変数ＭＴＲＲ（ＶＭＴＲＲＳ）については未定義のままで、一般保護（ＧＰ）違反を生成する書き込み継続を試みる。ＭＡＰに未定義メモリ・タイプ符号化を書き込もうとすると、可変ＭＴＲＲのようなＧＰ違反が発生することがある。表１はまた本発明の一実施形態によるＭＴＲＲメモリ属性およびその特性を示す。
【００１８】
下記の表２はＭＡＰ５０への索引付けにＭＡＰ、ＰＣＤ、およびＰＷＴ索引信号を使用する方法と、リセット後のレジスタ６０の内容である。
【表３】
0004312952.tif 000004
【００１９】
ＷＢ（ライト・バック）およびＷＴ（ライト・スルー）は表１に定義されている。ＵＣ−およびＵＣは表１に定義されたＵＣ（アンキャッシャブル）の例である。ＵＣ−は、ＰＣＤ、ＰＷＴ＝１０の場合に発生する。ＵＣは、ＰＣＤ、ＰＷＴ＝１１の場合に発生する。下記の表３に示すように、有効メモリ属性セレクタ８８で、物理属性レジスタ８４からのＷＣはＭＡＰ５０からのＵＣ−より優勢である。これと対照的に、有効メモリ属性セレクタ８８で、ＭＡＰ５０からのＵＣは物理属性レジスタ８４からのＷＣより優勢である。
【００２０】
好ましい実施形態では、レジスタ６０内の８つのエントリすべてが４Ｋ／２Ｍ・４Ｍページ・フレームを記述するために利用できる。ＭＡＰ索引ビットはＣＲ３レジスタ（物理アドレス拡張（ＰＡＥ）がイネーブルの場合のページ・ディレクトリ・ポインタ・テーブル）内に定義されておらず、大容量のページを記述していない場合にはページ・ディレクトリ内に定義されていない。これらの場合、ＰＣＤおよびＰＷＴ索引信号のみを使用してＭＡＰ５０内に索引付けするので、ＯＳはページ階層のメモリ属性を記述するのにレジスタ６０の最初の４エントリのみしか使用できないように制限される。ページ階層の各レベルのＭＡＰ索引方式の一例を図３に示す。ＭＡＰ索引ビットがゼロ以外の値の場合、予約済みビット違反はディスエーブルされるが、その他のすべての予約済みビットについては残っている。これは、モードＡ／Ｂの４Ｋページ、モードＢの４ＭＢページ、およびモードＣの４Ｋ・２ＭＢページのそれぞれについてもあてはまる。
【００２１】
有効メモリ属性セレクタ８８は、直線メモリ属性および物理メモリ属性に基づいて、導線８２に加えるべき有効メモリ属性信号を選択するためにマッピングを適用する。マッピングの一例を下記の表３に示す。
【表４】
0004312952.tif 000005
【００２２】
表３のマッピングは、レジスタＣＲ０内にキャッシュ・ディスエーブル（ＣＤ）およびノンライトスルー（ＮＷ）フラグがあれば０に設定されていることを前提とする。表３の実施形態では、有効メモリ属性は直線メモリ属性がＷＴで物理メモリ属性がＷＰまたはＷＣの場合に未定義である。有効メモリ属性は直線メモリ属性がＷＰで物理メモリ属性がＷＣまたはＷＴの場合にも未定義である。ただし、別の実施形態では、有効メモリ属性はそのような場合にも定義できる。ＵＣ＿ＭＴＲＲはＭＴＲＲから受け取ったＵＣ属性を示し、データがキャッシュに入れられていないので、プロセッサはキャッシュをスヌープする必要がない。これはパフォーマンスの理由から好ましい。ＵＣ＿ＰＡＧＥはページ・テーブルから受け取ったＵＣ属性を示し、データがページ・エイリアシングからキャッシュに入れられた可能性があるので、プロセッサはキャッシュを検査する必要がある。一般に、ノーメンクレチャー「ＸＸ＿ＰＡＧＥ」はページ・テーブルがＭＴＲＲより優勢である場合に属性ＸＸがページ・テーブルから受け取ったものであることを示す。ノーメンクレチャー「ＸＸ＿ＭＴＲＲ」はＭＴＲＲがページ・テーブルより優勢である場合に属性ＸＸがＭＴＲＲから受け取ったものであることを示す。以下のコメントは表３およびＭｉｃｒｏｓｏｆｔのＯＳで動作するように設計された本発明の特定の実施形態に適用できる。Ｗｉｎｄｏｗｓ  ＮＴ４．０  ｓｅｒｖｉｃｅ  ｐａｃｋ  ３以前のＭｉｃｒｏｓｏｆｔ  ＯＳ（例えば、ＤＯＳ、Ｗｉｎｄｏｗｓ３．１、Ｗｉｎｄｏｗｓ９５、初期のＷｉｎｄｏｗｓ  ＮＴバージョン用）の場合、プログラムｆａｓｔｖｉｄ．ｅｘｅなどのソフトウェアは、ＯＳがアンキャッシャブル・メモリにＵＣ−符号化を使用している場合に、ＯＳに通知することなくＭＴＲＲのメモリ・タイプをＵＣからＷＣに変更できる。その場合、ＷＣはＵＣよりも優勢である。ＯＳ  ＮＴ４．０  ｓｅｒｖｉｃｅ  ｐａｃｋ  ３は、ページ・テーブル内でＵＣ−ではなくＵＣを使用し、これはＭＴＲＲのＷＣよりも優勢である。ＵＣ−およびＵＣは表１に関して前述している。
【００２３】
Ｐｅｎｔｉｕｍ（登録商標）ＰｒｏプロセッサでＭＴＲＲをディスエーブルにしたことで、ページ送りのイネーブルならびにＰＣＤおよびＰＷＴ索引ビットの設定にかかわらず、有効メモリ・タイプのＵＣが採用されることになった。ＭＡＰイネーブルのプロセッサの場合、この挙動は変更できる。ページ送りおよびＭＴＲＲがディスエーブルされる場合、有効メモリ・タイプはＵＣである。ＭＴＲＲがディスエーブルされ、ページ送りがイネーブルされる場合、ページ・テーブル／ＭＡＰからの有効メモリ・タイプが使用できる。
【００２４】
（追加情報および実施形態）
本発明の様々な構造は、当業者に知られている様々な材料および方法のうち任意のものに従って実施できる。マイクロプロセッサ内には、もちろん図示されておらずまたは本明細書に記載されていない多数の構成要素が存在する。２つの図示された構造の間に中間構造（バッファなどの）または信号が存在することもある。一部の導線は図示のように連続せず、中間構造によって中断していることがある。図中のボックスの境界線は例示にすぎない。実際のデバイスはそのような区画された境界線を含む必要はないであろう。図示の構成要素の相対的なサイズは実際の相対的なサイズを示すものではない。
【００２５】
「接続された」という用語およびそれに関係する用語は動作的な意味で使用され、必ずしも直接の接続に限定されるわけではない。本明細書で、ある構成要素が含まれる「ことがある」、「ことができる」、または「ことが好ましい」と述べる場合、その特定の構成要素は含まれる必要がない。
【００２６】
ＭＡＰ機能はＣＰＵＩＤ命令を使用してＯＳによって検出できる。特に、ＯＳはＥＡＸレジスタ内に値１を有するＣＰＵＩＤ命令を実行し、ＥＤＸレジスタの戻り値のビット１６を検査することでこの機能のサポートを判定することができる。ＭＡＰがサポートされている場合、ＯＳはページ属性テーブルのプログラミング用に指定されたモデル専用レジスタを使用し、またページ・テーブル内に以前予約されていたＭＡＰ索引ビットを使用することができる。
【００２７】
ＯＳは、ＭＡＰエントリの変更が、プロセッサ・キャッシュと翻訳ルックアサイド・バッファ（ＴＬＢ）の一貫性、例えば、プロセッサ・キャッシュとＴＬＢのフラッシュを含む演算の特定のシーケンスを維持するような形で行われることを保証できる。
【００２８】
図２に関して説明した実施形態の代替形態である本発明の実施形態では、メモリ属性パレットは索引信号ＰＣＤ、ＰＷＴ、およびＭＡＰの特定のステートに応答して並列の導線上に単一ビットを生成する。例えば、８つの属性があるとすると、８本の並列の導線があり、その１つだけが一度にアサートされる。有効メモリ属性セレクタは並列の導線を収容し、その上を流れる信号に適当に応答する。
【００２９】
ＭＡＰではページ・テーブルに任意のメモリ・タイプが指定でき、したがって、単一の物理ページを異なるメモリ・タイプの２つの異なる直線ページによってマッピングすることが可能である。この方法は未定義の結果を招く場合があり、したがって、推奨できない。特に、ＷＣライトはプロセッサ・キャッシュを検査する必要がないので、ＷＰページがキャッシュ可能なページにエイリアシングされないことが好ましい。
【００３０】
ＭＡＰのコンテキストを切り替えたくないＯＳはすべてのプロセッサ上に同等のＭＡＰエントリ値を有することができる。
【００３１】
ページ・テーブルとしてページ・ディレクトリを使用し、ページ・サイズ拡張（ＰＳＥ）または物理アドレス拡張（ＰＡＥ）をイネーブルするＯＳは、４ＫＢのページ・テーブル・エントリ（ＰＴＥ）についてＭＡＰ索引の使用を注意深く精査しなければならない。ページ・テーブル・エントリのＭＡＰ索引ビット（ビット７）はページ・サイズを表すので、ＯＳはＰＤＥとしても使用される４Ｋバイトのページ・テーブル・エントリ（ＰＴＥ）についてＭＡＰエントリＭＡ０〜３しか使用することができない。このメモリがＰＴＥとして使用されている場合にＯＳがＭＡＰエントリＭＡ４〜７にアクセスしようとすれば、このメモリがＰＤＥとしてアクセスされる場合にＰＳビットを誤って設定する可能性がある。
【００３２】
ＯＳが、ＭＡＰ内に定義されたページ・テーブル・メモリ・タイプを常に有効メモリ・タイプにしておきたい場合、デフォルトのＭＴＲＲメモリ・タイプをライトバックに設定し、ＯＳがページ・テーブルの使用によってのみ管理したい領域をカバーするＭＴＲＲをディスエーブルし、またはすべてのＭＴＲＲをディスエーブルすることができる。
【００３３】
好ましい実施形態ではＭＡＰ５０はそれをサポートするすべてのプロセッサ上で常にイネーブルにされ、ページ送りがイネーブルにされた場合はいつでも、またすべてのページ送りモード（例えばＰＳＥ、ＰＡＥ）でテーブルのルックアップが常に行われる。
【００３４】
ＭＡＰ５０はページ属性テーブルとも呼ばれる。
【００３５】
本発明では、直線メモリは直線、論理、および仮想アドレスと呼ばれる内容を幅広く含むと解釈すべきである。
【００３６】
直線メモリ属性信号は一度に１つの直線メモリ属性しか表さず、物理メモリ属性信号は一度に１つの物理メモリ属性しか表さず、有効メモリ属性信号は一度に１つの有効メモリ属性しか表さないことが好ましい。あるいは、１つまたは複数の信号が一度に複数の属性を表すことも可能である。
【００３７】
別のＭＡＰの実施形態は優先ビットを含む。この実施形態は試験と将来の属性の拡張の場合に特に価値がある。ＭＡＰ内の各エントリは、このエントリがＭＴＲＲに常に優先する、またはＭＴＲＲに常に優先されることを可能にする２つの優先ビットを有する。エントリごとの２ビット優先符号化を表４に示す。
【表５】
0004312952.tif 000006
【００３８】
あるいは、表５に示すように、単一のビットを使用することもできる。
【表６】
0004312952.tif 000007
【００３９】
最後に、ＭＡＰテーブル全体について２つのビットまたは単一ビットが存在できる。表４および５の手法は必要ない。ＯＳがＭＡＰ５０を常に優先させたい場合、ＯＳはＭＴＲＲをディスエーブルすることができる。
【００４０】
ＯＳは８つの最も有用なメモリ属性の組み合わせを採用して、すべてのプロセッサでシステム全体についてこれらを使用することができる。ただし、これはプロセスあたり１回変更が可能である。一度にＭＡＰ全体を保存／復元する特別の１対の命令も可能である。
【００４１】
新しいビットＭＡＰ［２］は、可能であればいつでも、ＣＲ３およびページ・ディレクトリ・ポインタ・テーブル（ＰＤＰＴ）用に定義でき、３つのビットを使用してＭＡＰ０〜７を索引付けできる。いくつかの実施形態では、予約済みビットがなくビット７が０に定義されている、モードＢまたはモードＣでの４Ｋページ・ディレクトリの場合を除いて、すべての場合にこれがあてはまる。したがって、ＯＳはこれらの２つのモードでページ・テーブルを記述する場合を除いて、８つのＭＡＰエントリをすべて使用してそのページ送り構造を記述することができる。
【００４２】
レジスタ６０はプロセッサ１４内にある必要はなく、むしろ、例えば、メイン・メモリ１６内に配置することができる。
【００４３】
本発明はすべての現在および将来のメモリ属性をＯＳおよびアプリケーションが両方共利用可能にする柔軟で、プログラミング可能で、拡張可能な手段を提供する。本発明はまた、ページ・テーブルとＭＴＲＲにそれぞれ機能をいくらか有する方法ではなく、単一の機構を介してすべてのメモリ属性を利用可能にすることで、ＯＳの一貫したメモリ属性使用モデルを提供する。
【００４４】
本開示の恩恵に浴する当業者は、本発明の範囲を逸脱することなく、前述の説明および図面のその他の多数の変形形態が可能であることを理解するであろう。したがって、本発明の範囲を定義するのは本発明の任意の変更を含む首記の請求の範囲である。
【図面の簡単な説明】
【図１】  本発明の一実施形態による例示的なコンピュータ・システムの概略ブロック図である。
【図２】  図１のコンピュータ・システムの例示的なプロセッサの一部の構成要素の概略ブロック図である。
【図３】  本発明の一実施形態によるページング階層のメモリ属性テーブル索引方式を示す図である。
【図１】
0004312952.tif 000008
【図２】
0004312952.tif 000009
【図３】
0004312952.tif 000010