(57)【特許請求の範囲】
【請求項１】
拡張線形アドレスモードを有するマイクロプロセッサであって、
上記マイクロプロセッサは、
オフセットを出力するように命令を復号する復号器と、
セグメント・セレクタおよびセグメント拡張部を格納するセグメント・レジスタと、
上記オフセットと上記セグメント・セレクタと上記セグメント拡張部とを有する拡張線形アドレスを生成するアドレス生成ユニットとから構成され；
上記拡張線形アドレスを物理アドレスに変換するページ・ウォーク中に拡張線形アドレスモードにあるとき、上記マイクロプロセッサは第１ポインタを利用して第１テーブルをページダイレクトリとして参照し、また上記ページウォーク中に拡張線形アドレスモードにないときは、上記マイクロプロセッサは第２ポインタを利用して第２テーブルをページダイレクトリとして参照することを特徴とするマイクロプロセッサ。
【請求項２】
システム・バスと、
システム・バスに結合されたメモリと、
システム・バスに結合されたマイクロプロセッサとを含むコンピュータにおいて、前記マイクロプロセッサは、
オフセットを出力するように命令を復号する復号器と、
セグメント・セレクタおよびセグメント拡張部を格納するセグメント・レジスタと、
上記オフセット、上記セグメント・セレクタおよび上記セグメント拡張部を有しする拡張線形アドレスを生成するアドレス生成ユニットとから構成され；
上記拡張線形アドレスを物理アドレスに変換するページ・ウォーク中に拡張線形アドレスモードにあるとき、上記マイクロプロセッサは第１ポインタを利用して第１テーブルをページダイレクトリとして参照し、また上記ページウォーク中に拡張線形アドレスモードにないときは、上記マイクロプロセッサは第２ポインタを利用して第２テーブルをページダイレクトリとして参照することを特徴とするマイクロプロセッサ。
【請求項３】
拡張線形アドレスモードを有するマイクロプロセッサであって、このマイクロプロセッサはレジスタ・ファイルと、
命令セットに属する命令を復号する復号器と、
第１および第２のソース・レジスタ内に格納された値の連結として拡張線形アドレスを生成するアドレス生成ユニットとから構成され；
上記命令セットは拡張線形アドレスを指定する命令を有し、この拡張線形アドレス名を指定する命令は第１レジスタ・ファイル内の第１ソース・レジスタと第２ソース・レジスタを特定するものであり；
上記拡張線形アドレスを物理アドレスに変換するページ・ウォーク中に拡張線形アドレスモードにあるとき、上記マイクロプロセッサは第１ポインタを利用して第１テーブルをページダイレクトリとして参照し、また上記ページウォーク中に拡張線形アドレスモードにないときは、上記マイクロプロセッサは第２ポインタを利用して第２テーブルをページダイレクトリとして参照することを特徴とするマイクロプロセッサ。
【請求項４】
システム・バスと、
システム・バスに結合されたメモリと、
システム・バスに結合され、拡張線形アドレスモードを有するマイクロプロセッサとを具備したコンピュータであって：
前記マイクロプロセッサは、
レジスタ・ファイルと、
命令セットに属する命令を復号する復号器と、
第１および第２のソース・レジスタ内に格納された値の連結として拡張線形アドレスを生成するアドレス生成ユニットとから構成され、
上記命令セットは拡張線形アドレスを指定する命令を有し、このアドレスを指定する命令はレジスタ・ファイル内の第１ソース・レジスタと第２ソース・レジスタを特定するものであり；
上記拡張線形アドレスを物理アドレスに変換するページ・ウォーク中に拡張線形アドレスモードにあるとき、上記マイクロプロセッサは第１ポインタを利用して第１テーブルをページダイレクトリとして参照し、また上記ページウォーク中に拡張線形アドレスモードにないときは、上記マイクロプロセッサは第２ポインタを利用して第２テーブルをページダイレクトリとして参照することを特徴とするマイクロプロセッサ。
【請求項５】
拡張線形アドレスを有するマイクロプロセッサを使用してページ・ウォークを実行する方法であって、上記マイクロプロセッサは：
拡張線形アドレスモードにある時にはメモリ内の第１テーブルを指示する第１ポインタを選択するステップを行い、
拡張線形アドレスモードにない時にはメモリ内の第２テーブルを指示する第２ポインタを選択するステップとを行い、  拡張線形アドレスモードの時には第１テーブルがページ・ダイレクトリとして機能し、また拡張線形アドレスモードにない時には、第２テーブルがページ・ダイレクトリとして機能することを特徴とするページ・ウォークを実行する方法。
【発明の詳細な説明】
【０００１】
（分野）
本発明は、マイクロプロセッサおよびコンピュータ・システムに関し、より詳細には、拡張された線形アドレス生成および変換機能を備えた仮想メモリ・システムに関する。
【０００２】
（背景）
たいていのマイクロプロセッサは、プログラム実行環境の部分が必要に応じて物理メモリにマッピングされる、仮想メモリまたはデマンド・ページング・メモリのスキームを使用する。仮想メモリ・スキームを使用すると、物理メモリの使用サイズがマイクロプロセッサの線形アドレス・スペースよりもかなり小さくなり、メモリ保護のためのメカニズムを提供することも可能であるため、同じ物理メモリを共用している複数のタスク（プログラム）が互いにマイナスに干渉し合うことがなくなる。
【０００３】
物理メモリはメモリ階層システムの一部であり、図１に示したコンピュータ・システムの一部として図示することができる。マイクロプロセッサ１０２は、命令キャッシュ１０４およびデータ・キャッシュ１０６を含む第１レベル・キャッシュを有する。マイクロプロセッサ１０２は、バックサイド・バス１１０を介して、統一された第２レベル・キャッシュ１０８と通信する。第２レベル・キャッシュ１０８は命令とデータの両方を含み、物理的にチップ・ダイ１０２上に常駐している。キャッシュ１０４および１０６はメモリ階層の第１レベルを含み、キャッシュ１０８は第２レベルを含む。
【０００４】
図１の例示的コンピュータ・システムのためのメモリ階層の第３レベルは、メモリ１１２によって示される。マイクロプロセッサ１０２は、ホスト・プロセッサ（フロント・サイド）バス１１４とチップセット１１６を介してメモリ１１２と通信する。チップセット１１６は、グラフィック・プロセッサ１２０と通信するためにグラフィック・バス１１８も用意し、周辺構成要素バス１２２などの他のバスへのブリッジとしての役割を果たす。ディスク・ユニット１２４などの２次記憶装置は、メモリ階層内にさらに他のレベルとなっている。
【０００５】
図２は、命令キャッシュおよびデータ・キャッシュを含む、マイクロプロセッサ１０２内の機能ユニットの一部を示す図である。マイクロプロセッサ１０２内では、フェッチ・ユニット２０２が命令キャッシュ１０４から命令をフェッチし、復号ユニット２０６がこれらの命令を復号する。ＣＩＳＣ（複雑命令セット・コンピュータ）アーキテクチャの場合、復号ユニット２０６が複雑な命令を１つまたは複数のマイクロ命令に復号する。通常、これらのマイクロ命令はロード／格納タイプのアーキテクチャを定義するため、メモリ操作に関係するマイクロ命令は単純なロード操作または格納操作である。ただし、本発明は、たとえばＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャまたはＶＬＩＷ（超長命令語）アーキテクチャなどの、他のアーキテクチャでも実施することができる。
【０００６】
ＲＩＳＣアーキテクチャの場合、命令はマイクロ命令に復号されない。本発明はＲＩＳＣアーキテクチャならびにＣＩＳＣアーキテクチャに対して実施可能であるため、特に記載のない限り命令とマイクロ命令とは区別しないものとし、これらを単に命令と呼ぶ。
【０００７】
たいていの命令はいくつかのソース・オペランドで動作し、結果を生成する。これらは、明示的にまたは間接的方法で、値の読取りまたは書込みが行われるソース・ロケーションおよび宛先ロケーションに名前を付ける。名前は、論理（アーキテクチャ）レジスタまたはメモリ内の位置のいずれかであってよい。論理レジスタを物理レジスタとして改名すると、命令を順序外れで実行することができる。図２では、ＲＡＴ（レジスタ割付けテーブル）２１０が論理レジスタと物理レジスタとの間の現在のマッピングを格納する、改名ユニット２０８によってレジスタの改名が実行される。物理レジスタは、レジスタ・ファイル２１２によって示される。
【０００８】
あらゆる論理レジスタが、物理レジスタ・ファイル２１２内の物理レジスタへのマッピングを有し、このマッピングはエントリとしてＲＡＴ  ２１０内に格納される。ＲＡＴ  ２１０内のエントリは論理レジスタによって索引付けされ、物理レジスタ・ファイル２１２内の物理レジスタへのポインタを含む。物理レジスタ・ファイル２１２内のレジスタは、一部を整数専用に、その他を浮動小数点数専用にすることができるが、図２では説明を簡単にするためにこれらの区別が示されていない。
【０００９】
命令を改名する場合、現在のＲＡＴが命令のソース論理レジスタを改名するための必須マッピングを提供し、命令の宛先論理レジスタ用に新しいマッピングが作成される。この新しいマッピングがＲＡＴ内の古いマッピングを追い出す。
【００１０】
改名された命令は、命令ウィンドウ・バッファ２１６内に配置される。すべての「作動中」命令が命令ウィンドウ・バッファ２１６内にエントリを有し、これが循環バッファとして動作する。命令ウィンドウ・バッファ２１６は、メモリ参照が正しく実行されるようにメモリを明確にし、元のプログラム順序で命令をリタイアさせることができる。（ＣＩＳＣアーキテクチャの場合、複雑命令は、複雑命令を構成しているすべてのマイクロ命令が一緒にリタイアするときにリタイアする。）
【００１１】
結果をメモリ位置に書き込む命令の場合、命令リタイア時にデータ・キャッシュ１０６（メモリ階層の一部）が更新される。結果を論理レジスタに書き込む命令の場合、論理レジスタ専用のレジスタがないので、リタイア時に書込みが実行される必要はない。（物理レジスタ・ファイル２１２は、命令が改名されたときに宛先論理レジスタがマッピングされた物理レジスタ内の命令リタイアの結果を有する。）
【００１２】
スケジューラ２１８は、実行のために実行ユニット２２０に命令をスケジューリングする。説明を簡単にするために、実行ユニット２２０内にはメモリ実行ユニット２２４だけを明示的に示す。ロード命令または格納命令は、線形アドレスを計算するためにスケジューラ２１８によってＡＧＵ（アドレス生成ユニット）２２２にディスパッチされ、メモリ実行ユニット２２４は、この線形アドレスを物理アドレスに変換してロード命令または格納命令を実行する。メモリ実行ユニットは、データ・キャッシュ１０６ではなく、転送バッファ（図示せず）へデータを送信するかまたはここからデータを受信することが可能であり、転送バッファは、最終的に命令リタイア時にデータ・キャッシュ１０６に書き込むことができるオブジェクトを格納する。スケジューラ２１８によって実行されるスケジューリング機能は、たとえばＴｏｍａｓｕｌｏのアルゴリズム（またはその変形）を実施する予約ステーション（図示せず）によって、あるいはスコアボードによって、認識することができる。実行ユニット２２０は、実行される命令に応じて、レジスタ・ファイル２１２からデータを取り出すか、またはここへデータを送ることができる。
【００１３】
本発明の他の実施形態では、物理レジスタ２１２と命令ウィンドウ・バッファ２１６のデータ構造内に含まれた情報コンテンツを様々な機能ユニットによって認識することができる。たとえば、リオーダ・バッファは、命令ウィンドウ・バッファ２１６と物理レジスタ・ファイル２１２を交換することが可能であるため、その結果がリオーダ・バッファに格納され、さらにレジスタ・ファイル内のレジスタが専用の論理レジスタとなる。このタイプの実施形態では、論理レジスタへの書込み命令の結果が、命令リタイア時に論理レジスタに書き込まれる。
【００１４】
最近のたいていのコンピュータ・システムでは、マイクロプロセッサは線形アドレスを生成することによってメモリ位置を参照するが、図１のバス１１４などのアドレス・バスに物理アドレスを与えることによって、特定のメモリ位置からオブジェクトが取り出される。線形アドレスは物理アドレスと同じであってよく、この場合アドレス変換が不要である。ただし通常は、線形アドレスが物理アドレスに変換される仮想メモリ・スキームが使用される。この場合、線形アドレスは仮想アドレスと呼ばれることがある。線形アドレス・スペースが、マイクロプロセッサによって生成されるすべての線形アドレスのセットであるのに対し、物理アドレス・スペースはすべての物理アドレスのセットである。
【００１５】
Ｉｎｔｅｌ（登録商標）  Ａｒｃｈｉｔｅｃｔｕｒｅ  ３２ビット（ＩＡ−３２）マイクロプロセッサ（Ｉｎｔｅｌ（登録商標）は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ，Ｓａｎｔａ  Ｃｌａｒａ，Ｃａｌｉｆｏｒｎｉａの登録商標）などの一部のマイクロプロセッサ・アーキテクチャでは、論理アドレスが線形アドレスに変換される別のタイプのアドレス変換もある。これらのタイプのアーキテクチャの場合、命令は論理アドレス・オフセットを提供し、次いでこれらが図２のＡＧＵ  ２２２によって線形アドレスに変換される。この特別段階のアドレス変換によって、たとえばアプリケーション・コードでは監視（オペレーティング・システム）コードが修正できないなどといった、追加のセキュリティが提供できる。
【００１６】
論理アドレスの線形アドレスへのマッピングが、図３に示されている。論理アドレスは、セグメント・セレクタ３０２ａおよびオフセット３０４を含む。セグメント・セレクタ３０２ａは、記述子キャッシュ３０２ｂを含むセグメント・レジスタ３０２内に格納される。セグメント・セレクタ３０２ａは記述子テーブル３０６内のセグメント記述子３０８を指示する。記述子テーブル３０６は、メモリ内に格納されたセグメント記述子のテーブルを提供する。セグメント記述子はセグメント・ベース・アドレスを提供し、その結果、加算３１２によって示されるように、セグメント記述子によって提供されたベース・アドレスにオフセットを追加することにより、線形アドレスが得られる。セグメント記述子には、ベース・アドレスの提供に加えて、アクセス権およびセグメント・サイズなどその他様々なタイプの情報が含まれる。ベース・アドレス、アクセス権、セグメント・サイズ、および他の情報は、記述子キャッシュ３０２ｂにキャッシュされる。
【００１７】
仮想メモリ・システムまたはデマンド・ページング・メモリ・システムは、図４に示されるように、線形（仮想）アドレス・スペースと物理アドレス・スペースとの間のマッピングとして図示することができる。仮想メモリ・システムでは、線形アドレス・スペースおよび物理アドレス・スペースが、一定サイズであるか、いくつかの固定サイズのいずれかである場合に、通常はページと呼ばれる、隣接するアドレスのブロックに分割される。典型的なページ・サイズは、たとえば４Ｋバイトであろう。
【００１８】
図４に示されたマッピングは、ディレクトリ・テーブルおよびページ・テーブルを含む、汎用２レベル階層マッピングを例示したものである。ページ・ディレクトリ・テーブルおよびページ・テーブルは物理メモリ内に格納され、通常はそれ自体がページと同じサイズである。ページ・ディレクトリ・テーブル・エントリ（ＰＤＥ）は物理メモリ内のページ・テーブルをポイントし、ページ・テーブル・エントリ（ＰＴＥ）は物理メモリ内のページを指示する。図４の２レベル階層マッピングの場合、線形アドレスがディレクトリ・フィールド４０２、テーブル・フィールド４０４、およびオフセット・フィールド４０６を含む。ディレクトリ・フィールドはＰＤＥへのオフセット、テーブル・フィールドはＰＴＥへのオフセット、またオフセット・フィールドはページ内のメモリ位置へのオフセットである。
【００１９】
図４では、ページ・ディレクトリ・ベース・レジスタ（ＰＤＢＲ）４０８がページ・ディレクトリ４１０のベース・アドレスを指示し、ディレクトリ・フィールド４０２に格納された値がＰＤＢＲ  ４０８に格納された値に加えられて、ページ・ディレクトリ４１０内にあるＰＤＥ  ４１２の物理アドレスを提供する。次にＰＤＥ  ４１２がページ・テーブル４１４のベース・アドレスを指示し、これがテーブル・フィールド４０４に格納された値に追加されて、ページ・テーブル４１４にあるＰＴＥ  ４１６を指示する。ＰＴＥ  ４１６はページ４１８のベース・アドレスを指示し、このページ・ベース・アドレスがオフセット４０６に格納された値に加えられて物理アドレス４２０とする。これによって線形アドレス４２２が物理アドレス４２０にマッピングされる。
【００２０】
ページ・ディレクトリおよびページ・テーブルに格納されたエントリにアクセスするには、メモリ・バス・トランザクションが必要であるため、プロセッサのサイクル時間に関して費用がかかる可能性がある。ただし、局所性の原理により、キャッシュ内に線形アドレスと物理アドレスとの間の最近のマッピングを格納すること（アドレス変換バッファ（ＴＬＢ）と呼ばれる）によって、メモリ・バス・トランザクションの数を減らすことができる。命令アドレスおよびデータ・アドレスに対して、別々のＴＬＢがあってもよい。ＴＬＢ内のエントリは、線形アドレスによって索引付けされる。ＴＬＢ内でヒットすることによって、線形アドレスに関連付けられた物理アドレスが提供される。ミスがあると、線形アドレスの物理アドレスへの変換を得るために、図４に示されたようにメモリ階層にアクセスされる（ページ・ウォーク）。
【００２１】
ＩＡ−３２マイクロプロセッサの中には、線形アドレスを物理アドレスに変換する場合にいくつかのモードを使用しているものがあり、本明細書では、モードＡ、Ｂ、およびＣと呼ぶこれら３つのモードについて考察する。モードＡは、ページ・サイズが４ＫＢの３２ビットの物理アドレス・スペースをサポートする。モードＢは、ページ・サイズが４ＫＢまたは４ＭＢのいずれかの３２ビット物理アドレス・スペースをサポートする。モードＡおよびＢの場合、ページおよびディレクトリ・テーブル・エントリは、それぞれ４バイトである。モードＣは、ページ・サイズが４ＫＢまたは２ＭＢで、６４ＧＢの物理アドレス・サイズに対する３６ビット物理アドレス・スペース（物理アドレス拡張）をサポートしている。モードＣの場合、ページ・テーブル・エントリおよびディレクトリ・テーブル・エントリは、それぞれ８バイトである。それぞれのモードで、ページ・テーブルとディレクトリ・テーブルはページと同じサイズである。すべてのモードは３２ビット線形アドレス変換用である。
【００２２】
モードＡは図５に示されており、線形アドレスの最初の１２ビットがページ・フレーム内の物理アドレスへのオフセットとして使用され、線形アドレスの次の１０ビットがページ・テーブルへのオフセットとして使用され、線形アドレスの上位１０ビットがページ・ディレクトリへのオフセットとして使用される。たとえば、図５では、線形アドレスのテーブル・フィールド５０６が指示するページ・テーブル５０４内のＰＴＥ  ５０２が、物理メモリ内の所望のページ・フレームのアドレスを提供し、線形アドレスのオフセット５０８と連結されると、所望のオブジェクトの物理アドレスを提供する。ＰＤＢＲレジスタ、ページ・ディレクトリ・エントリ、およびページ・テーブル・エントリが、それぞれ３２ビット・アドレスの上位２０ビットを提供し、その結果、ページ・ディレクトリ、ページ・テーブル、およびページがそれぞれ４ＫＢ境界線上で強制的に位置合わせされる。
【００２３】
４ＭＢページ・サイズの場合のモードＢが、図６に示される。（４ＫＢページ・サイズの場合、モードＢはモードＡと同様である。）線形アドレスの最初の２２ビットは、物理４ＭＢページ・フレームにオフセットを提供し、線形アドレスの上位１０ビットはページ・テーブルにオフセットを提供する。４ＭＢページ・サイズのモードＢは、１レベルのアドレス変換しか必要としないことに留意されたい。図６のページ・ディレクトリにあるＰＤＥは、ページが４ＭＢ境界線上で強制的に位置合わせされるように３２ビット・アドレスの上位１０ビットを提供する。
【００２４】
４ＫＢページ・サイズの場合のモードＣが、図７に示される。これにはページ・ディレクトリ・ポインタ・テーブル（ＰＤＰＴ）７０２によって提供される第３レベルのアドレス変換が含まれる。ＰＤＰＴ  ７０２内の各エントリは８バイトであり、ＰＤＰＴ内には４つのエントリがある。ＰＤＢＲ  ７０４は、ＰＤＰＴのベースを指示する３２ビット・アドレスの上位２７ビットを提供し、その結果ＰＤＰＴは３２バイト境界線上で強制的に位置合わせされる。ＰＤＰＴ、ページ・ディレクトリ、およびページ・テーブル内の各エントリは３６ビット・アドレスの上位２４ビットを提供し、その結果ページ・ディレクトリ、ページ・テーブル、およびページは４ＫＢ境界線上で強制的に位置合わせされる。
【００２５】
２ＭＢページ・サイズの場合のモードＣが図８に示されている。２つのレベルのアドレス変換のみが必要であり、ページ・ディレクトリを指示するために４エントリＰＤＰＴが再度使用される。ページ・ディレクトリ内のエントリが３６ビット・アドレスの上位１５ビットを提供し、その結果ページは２ＭＢ境界線上で強制的に位置合わせされる。
【００２６】
図７および８に記載されたモードＣの場合のページ構造では、６４ＧＢの拡張アドレス・スペースのうち一度に４ＧＢまでをアドレス指定することが可能である。拡張アドレス・スペースの他の４ＧＢセクションをアドレス指定するには、別のＰＤＰＴを指示するようにＰＤＢＲレジスタ内に別のエントリを配置するか、またはＰＤＰＴ内のエントリを変更することができる。ＩＡ−３２アーキテクチャのアドレス変換に関する詳細は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎから市販されているＩｎｔｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｄｅｖｅｌｏｐｅｒ’ｓ  Ｍａｎｕａｌ  ｆｏｒ  ｔｈｅ  Ｐｅｎｔｉｕｍ（登録商標）  Ｐｒｏ，Ｖｏｌ．３を参照されたい。（Ｐｅｎｔｉｕｍ（登録商標）は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。）
【００２７】
マイクロプロセッサの線形アドレス・スペースを増やすことによって、ユーザーおよびシステムのスペースが増加し、物理アドレス・スペースを増やすための線形アドレスの消耗に関連付けられた負担が減少する。線形アドレス・スペースを増やすために、マイクロプロセッサのワード・サイズをたとえば３２ビットから６４ビットに増やすことは、エンジニアリング・デザインの主要なタスクである。したがって、既存のマイクロプロセッサ・デザインで、ワード・サイズを増やさずに線形アドレス・スペースを増やすことは、経済的に有用であろう。さらに、マイクロプロセッサの線形アドレス・スペースを増加し、元のサイズの線形アドレス・スペース用にデザインされたコードおよびサポートされるページング構造と後方互換性を持たせることが有利であろう。
【００２８】
（概要）
本発明の実施態様は、拡張された線形アドレス・スペースを提供するコンピュータおよびマイクロプロセッサを対象とする。一実施態様では拡張線形アドレスが生成され、その下位部分はオフセットおよびセグメント・セレクタに基づき、上位部分はセグメント拡張部に基づいている。他の実施態様では、２つのレジスタに格納された値を連結することによって、線形アドレスが生成される。他の実施態様では、線形アドレス拡張があるかどうかに応じて階層変換のレベルが決まるような、ページ・ディレクトリへのアクセスによる線形アドレスから物理アドレスへの変換を提供する。
【００２９】
（実施形態の詳細な説明）
本発明の実施形態は、拡張線形アドレス指定が使用されるときを示すために、１つまたは複数の演算コードを使用することによって、後方互換性のある拡張線形アドレス・スペースを提供するものである。一実施形態では、演算コードが、マイクロプロセッサ・レジスタ内のＬＡＥ（線形アドレス拡張）ビットが設定されるかどうかを示す。ＬＡＥビットが設定され、次いでＡＧＵ  ２２２が論理アドレスを拡張線形アドレスに変換する。
【００３０】
図９は、論理アドレスを拡張線形アドレスに変換するための一実施形態を示す図である。セグメント・レジスタ９０２は、図９に示されるように、セグメント記述子を選択するのに必要な範囲を超えて拡張される。セグメント・セレクタ９０４と表示されたセグメント・レジスタ９０２の一部が、前述のようなベース・アドレスを提供するように記述子テーブル９０６とセグメント記述子９０８を選択するのに使用され、９１２で示される拡張線形アドレスの下位部分を提供するために、オフセット・レジスタ９１０内のオフセット値がベース・アドレスに追加される。セグメント拡張部９１４と表示された、セグメント・レジスタ９０２の中でセグメント記述子９０８を選択するのに使用されない部分が、９１６で示される拡張線形アドレスの上位部分を形成する。９１４が線形アドレス９１２の下位部分に追加されるかまたは連結されると、拡張線形アドレスが得られる。
【００３１】
他の実施形態では、命令がソース・レジスタを介して拡張線形アドレスを提供する。その際、ソース・レジスタに格納された値を連結することによって拡張線形アドレスが得られる。たとえば、メモリ内でのオブジェクトのロード、格納、追加、および交換に関する新しい命令を、命令セットに導入することができる。これらの新しい命令は、復号器２０６によって１つまたは複数のマイクロ命令に復号され、マイクロ命令が、その演算コード内のソース・レジスタを介して拡張線形アドレスを指定する。
【００３２】
この手順が、図１０の流れ図に示されている。ステップ１００２では、復号化命令が、拡張線形アドレス・スペース内で動作する命令セットに属する命令であることを条件として、拡張線形アドレスを形成するために、復号化命令によって命名されたソース・レジスタ内の値が連結される。ステップ１００４では、復号化命令が元の線形アドレス・スペース内で動作するものである場合、その後、線形アドレスを得るために、命令によって提供されたオフセットがセグメント記述子によって提供されたベース・アドレスに追加される。
【００３３】
図１０ａは、図１０を実施する図である。マルチプレクサ１００６、１００８、および１０１０が、拡張線形アドレス・マイクロ命令がある（ＬＡＥμｏｐラインがアサートされる）かどうかに基づいてその入力を選択する。ＬＡＥμｏｐラインがアサートされない場合、マルチプレクサ１００６および１００８は、ＡＧＵ  ２２２にそれぞれ命令待ち行列即時およびセグメント・ベース・アドレスを提供し、その結果、従来の方法で線形アドレスが計算される。ただし、ＬＡＥμｏｐがアサートされた場合、次にマルチプレクサ１０１０はレジスタＲ１およびＲ２のコンテンツを連結し、拡張線形アドレスが得られる。
【００３４】
いったん拡張線形アドレスが生成されると、これが物理線形アドレスに変換される。本発明の実施形態では、特別レベルの変換をアドレス変換階層に導入することによってこのアドレス変換を提供しているが、この特別レベルの変換は、拡張線形アドレス指定が示されているという条件付きで使用される。
【００３５】
図１１は、４ＫＢページングを使用した、拡張線形アドレス変換の一実施形態を示す図である。図１１の特有の例では、拡張線形アドレスは４２ビットであり、ページ・ディレクトリ１１０２へのオフセットとして、最高１０ビットが使用されている。ページ・ディレクトリ１１０２用のベース・アドレスは、ＰＤＢＲ  １１０４によって提供される。図１１では、Ｍｕｘ（マルチプレクサ）１１０６が、拡張線形アドレス指定が示されているかどうかを示すために符号的に使用されており、次いでページ・ディレクトリ１１０２によって提供されるＰＤＥが、次に下位レベルのアドレス変換であるページ・ディレクトリ１１０８のベース・アドレスとして使用される。たとえば、ＬＡＥビットが設定されるか、または線形アドレスの上位１０ビットすべてがゼロというわけでない場合、拡張線形アドレス指定を示すことができる。拡張線形アドレス指定がサポートされていない場合、ｍｕｘ  １１０６は、ページ・ディレクトリ１１０８のベース・アドレスを指示するためにＰＤＢＲ  １１０４が使用されることを符号的に示す。ディレクトリ・テーブル・エントリおよびページ・テーブル・エントリは、それぞれ４バイトである。ＰＴＥ  １１１０は、３６物理アドレスの上位２４ビットを提供し、これがオフセット１１１２からの１２ビットと連結されて３６ビット・アドレスを提供する。物理アドレス・スペースは６４Ｇバイトである。
【００３６】
４ＭＢページングを使用した拡張線形アドレス変換の一実施形態が、図１２に示される。ページ・ディレクトリ１２０２は、拡張線形アドレス指定が示されているかどうかという条件付きで、特別レベルのアドレス変換を提供する。ページ・サイズのため、拡張線形アドレスを物理アドレスに変換するには、２レベルのページ・ディレクトリだけが使用される。図１２の各ページ・ディレクトリ・エントリは４バイトであり、物理アドレス・スペースは６４Ｇバイトである。
【００３７】
６４Ｇバイトの拡張物理アドレス・スペース内の、４ＫＢページングを使用した拡張線形アドレス変換のための一実施形態が、図１３に示される。図７のモードＣの場合と同様、拡張線形アドレス変換が示されていない場合、ＰＤＢＲ  １３０２は、通常キャッシュ内に維持されるＰＤＰＴ  １３０４のベース・アドレスを指示するのに使用される。拡張線形アドレス変換をサポートするには、ページ・ディレクトリ１３０６のベース・アドレスを指示するためにＰＤＢＲ  １３０２が使用され、拡張線形アドレスのビット・ポジション３０から３８（Ａｄｄｒ［３８：３０］）が、ページ・ディレクトリ１３０６へのオフセットを提供する。ページ・ディレクトリ１３０６にある最初の４つのエントリも、ＰＤＰＴ  １３０４内にキャッシュされていることに留意されたい。図１３の場合、ディレクトリ・テーブル・エントリおよびページ・テーブル・エントリはそれぞれ８バイトであり、各ディレクトリおよびページ内のエントリ数は２9 ＝５１２となるため、各ディレクトリおよびページのサイズは４ＫＢである。ページ・ディレクトリ１３０６へのオフセットとして使用されるのは９ビットだけであるので、線形アドレス内のポジション３８より上のビットは本実施形態では使用されない。したがって、線形アドレス・レジスタが４２ビットである場合、拡張アドレス変換は、高位の３ビットがゼロに等しい４２ビットの線形アドレスに提供される。
【００３８】
図１４には、６４Ｇバイトの拡張物理アドレス・スペースで２ＭＢページングを使用する、拡張線形アドレス変換の一実施形態が示されており、改めて説明する必要もないであろう。図１４のページ・ディレクトリ内のエントリは８バイトであり、その結果、図１３の場合と同様に、ポジション３８より上の線形アドレス・ビットはゼロである。
【００３９】
開示された実施形態には、特許請求の範囲に示された本発明の範囲を逸脱することなく、様々な修正を行うことができる。
【図面の簡単な説明】
【図１】  従来技術のコンピュータ・システムを示す図である。
【図２】  従来技術のマイクロプロセッサを示す図である。
【図３】  論理アドレスを線形アドレスに変換するための従来技術を示す図である。
【図４】  線形アドレスを物理アドレスに変換するための従来技術を示す図である。
【図５】  ４Ｋバイト・ページングを使用して、３２ビットの線形アドレスを３２ビットの物理アドレスに変換するための従来技術を示す図である。
【図６】  ４Ｍバイト・ページングを使用して、３２ビットの線形アドレスを３２ビットの物理アドレスに変換するための従来技術を示す図である。
【図７】  ４Ｋバイト・ページングを使用して、３２ビットの線形アドレスを３６ビットの物理アドレスに変換するための従来技術を示す図である。
【図８】  ２Ｂバイト・ページングを使用して、３２ビットの線形アドレスを３６ビットの物理アドレスに変換するための従来技術を示す図である。
【図９】  拡張線形アドレスを提供するための例示的一実施形態を示す図である。
【図１０】  拡張線形アドレスを提供するための他の実施形態例を示す図である。
【図１０ａ】  図１０の一実施例を示す図である。
【図１１】  ４Ｋバイト・ページングおよび４バイト・エントリを使用して、４２ビットの線形アドレスを３６ビットの物理アドレスに変換するための例示的一実施形態を示す図である。
【図１２】  ４Ｍバイト・ページングおよび４バイト・エントリを使用して、４２ビットの線形アドレスを３６ビットの物理アドレスに変換するための例示的一実施形態を示す図である。
【図１３】  ４Ｋバイト・ページングおよび８バイト・エントリを使用して、４２ビットの線形アドレスを３６ビットの物理アドレスに変換するための例示的一実施形態を示す図である。
【図１４】  ２Ｍバイト・ページングおよび８バイト・エントリを使用して、４２ビットの線形アドレスを３６ビットの物理アドレスに変換するための例示的一実施形態を示す図である。
【図１】
0004593792.tif 000002
【図２】
0004593792.tif 000003
【図３】
0004593792.tif 000004
【図４】
0004593792.tif 000005
【図５】
0004593792.tif 000006
【図６】
0004593792.tif 000007
【図７】
0004593792.tif 000008
【図８】
0004593792.tif 000009
【図９】
0004593792.tif 000010
【図１０】
0004593792.tif 000011
【図１０ａ】
0004593792.tif 000012
【図１１】
0004593792.tif 000013
【図１２】
0004593792.tif 000014
【図１３】
0004593792.tif 000015
【図１４】
0004593792.tif 000016