(57)【特許請求の範囲】
【請求項１】
メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行う方法であって、前記方法は、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第１のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第２のモードとを含んで構成され、前記方法はさらに、
各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶するステップと、
第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶するステップとを含み、
前記第２の動作モードでは、前記変換索引バッファの上位ビットに前記各仮想アドレス識別子を記憶させ、下位ビットに前記各仮想アドレス識別子に関連して複数個（Ｍ個）の前記保護ビットを記憶させて、連続したメモリ・ブロックのそれぞれに関連する前記Ｍ個の前記保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍ個のメモリ・ブロックのメモリ・ブロック保護を提供する方法。
【請求項２】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶するステップを含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項１に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
【請求項３】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶するステップを含むことを特徴とする、請求項２に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
【請求項４】
各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項１に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
【請求項５】
各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項１に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
【請求項６】
メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行うためのシステムであって、前記システムは、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第１のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第２のモードとを含んで構成され、前記システムはさらに、
各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する手段と、
第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する手段とを含み、
前記第２の動作モードでは、上位ビットの各エントリ内に、前記仮想アドレス識別子と、前記各仮想アドレス識別子に関連して下位ビットに記憶された複数個（Ｍ個）の保護ビットとを記憶させることにより、前記変換索引バッファの連続したメモリ・ブロックのそれぞれに関連する前記Ｍ個の保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍ個のメモリ・ブロックのメモリ・ブロック保護を提供できるようにする、システム。
【請求項７】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項６に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項８】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、請求項７に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項９】
各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項６に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項１０】
各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項１に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項１１】
プロセッサと、メモリと、内部の仮想アドレスを前記メモリ内の実アドレスにマッピングするメモリ管理ユニットとを含む、データ処理システムであって、前記データ処理システムは、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第１のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第２のモードとを含んで構成され、
前記メモリ管理ユニットが、
変換索引バッファと、
各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記索引バッファに記憶する手段と、
第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記索引バッファに記憶する手段とを含み、
前記第２の動作モードは、上位ビットの各エントリ内に、前記仮想アドレス識別子と、前記各仮想アドレス識別子に関連して下位ビットに記憶された複数個（Ｍ個）の保護ビットとを記憶させることにより、前記変換索引バッファの連続したメモリ・ブロックのそれぞれに関連する前記Ｍ個の保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍ個のメモリ・ブロックのメモリ・ブロック保護を提供できるようにする、データ処理システム。
【請求項１２】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項１１に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項１３】
第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、請求項１２に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項１４】
各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項１１に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【請求項１５】
各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項１１に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に改良型のデータ処理システムに関し、詳細にはデータ処理システムにおいて効率的なメモリ管理を行うための改良された方法およびシステムに関する。より詳細には、本発明は、二重モード変換索引バッファを利用してデータ処理システムにおいて効率的なメモリ管理を行うための改良された方法およびシステムに関する。
【０００２】
【従来の技術】
最新式のデータ処理システムはしばしば、いわゆる「有効」または「仮想」アドレス空間を利用して、各アプリケーションが、そのアプリケーション用の「専用」アドレス空間を利用できるようにする。したがって、そのようなシステムはなんらかの技術を利用して、システム・メモリ内でこれらの「有効」アドレスを実アドレスに変換しなければならない。当然ながら、複数の有効アドレスが単一の実アドレスにマップ可能なことを当業者なら理解するであろう。したがって、有効アドレス空間を正確に維持するためには、有効アドレスから実アドレスに効率的かつ迅速に変換できる技術を提供することが重要である。
【０００３】
この有効メモリ・アドレスから実メモリ・アドレスへのマッピングは通常、有効アドレス空間から実アドレス空間へのマッピングを支援するメモリ管理ユニットを利用して実施される。そのようなメモリ管理ユニットは通常、高速メモリ内に設けられた変換索引バッファを使って、限られた数の有効アドレスを実メモリ・アドレスに変換している。
【０００４】
変換のために新しい有効アドレスを必要とする場合、通常、周知のアルゴリズムを使って、変換索引バッファ内にどの有効アドレスを記憶しどのアドレスを置き換えるか判定する。たとえば、いわゆるＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｔｉｌｉｚｅｄ）アルゴリズムが、変換索引バッファとして使用するために使用可能な高速メモリの量が限られるという理由で、しばしば使用される。
【０００５】
この設計は、標準の汎用処理アプリケーションでは良好に動作するが、既知の変換索引バッファは容量が限られているため、これらのプロセッサ用に選択された専用アプリケーションでは困難が生じる。データまたは命令を含む多数のメモリ・ブロックを制御しなければならないアプリケーションでは、変換索引バッファを絶えずロードし、無効化し、再ロードするのに要するオーバヘッドが、まったく煩わしいことがある。それに付随して、変換索引バッファのサイズと編成を専用アプリケーションに合わせて変更するのに必要なコストが、通常法外なものになる。
【０００６】
その結果、データ処理システム内で様々なメモリ管理シナリオを効率的に管理できる改良型メモリ管理ユニットが必要であることは明らかであろう。
【０００７】
【発明が解決しようとする課題】
したがって、本発明の一目的は、改良型データ処理システムを提供することである。
【０００８】
本発明のもう一つの目的は、データ処理システムにおける効率的メモリ管理のための改良された方法およびシステムを提供することである。
【０００９】
本発明のもう一つの目的は、二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理のための改良された方法およびシステムを提供することである。
【００１０】
【課題を解決するための手段】
上記目的は、以下に説明するようにして達成される。データ処理システムにおいて、メモリ管理ユニットを利用して変換索引バッファ内で有効アドレスを実アドレスに変換する効率的メモリ管理方法およびそのシステムを開示する。第１の動作モード中に、選択した数の有効アドレス識別子が、変換索引バッファ内に記憶される。各仮想アドレス識別子には、単一のメモリ・ブロック用の対応する実アドレス・エントリが関連し、変換索引バッファを使って、選択された仮想アドレスを対応する実アドレスに変換することができる。第２の動作モードでは、選択された数の仮想アドレス識別子が変換索引バッファ内に記憶され、各仮想アドレス識別子が、それに関連する記憶されたいくつかの保護ビットを有し、各保護ビットは、関連する仮想アドレス識別子で始まる多数の連続するメモリ・ブロックの保護状況を示し、さらに、一定サイズの変換索引バッファを使って、多数のメモリ・ブロックのメモリ・ブロック保護を提供することができる。
【００１１】
本発明の新規な機能と思われる特徴は、併記の特許請求の範囲に記載されている。しかしながら、本発明自体、ならびに好ましい使用態様、さらにその目的および利点は、以下の例示的実施形態についての詳細な説明を、添付の図面を参照して読めば最もよく理解されよう。
【００１２】
【発明の実施の形態】
次に、図面、特に図１を参照すると、好ましい実施形態に従って情報を処理するための、１０で全体的に示したプロセッサのブロック図が示されている。好ましい実施形態では、プロセッサ１０は、単一の集積回路スーパースカラー・マイクロプロセッサである。したがって、後でさらに考察するように、プロセッサ１０は、様々なユニット、レジスタ、バッファ、メモリおよびその他のセクションを含み、それらはすべて集積回路によって構成される。また、好ましい実施形態においては、プロセッサ１０は、縮小命令セット・コンピュータ（ＲＩＳＣ）技術に従って動作する。図１に示したように、システム・バス１１が、プロセッサ１０のバス・インターフェース・ユニット（ＢＩＵ）１２に接続される。ＢＩＵ１２は、プロセッサ１０とシステム・バス１１の間での情報の転送を制御する。
【００１３】
ＢＩＵ１２は、プロセッサ１０の命令キャッシュ１４およびデータ・キャッシュ１６に接続されている。命令キャッシュ１４やデータ・キャッシュ１６などの高速キャッシュは、システム・メモリからキャッシュに前に転送されたデータまたは命令のサブセットに対する比較的高速なアクセスが可能であり、それによりデータ処理システムの動作の速度が高まる。命令キャッシュ１４は、ブランチ・ユニット１８に命令を出力する。ブランチ・ユニット１８は、命令キャッシュ１４からのそのような命令に応答して、プロセッサ１０のその他の実行回路に選択的に命令を出力する。
【００１４】
システム・バス１１に接続されたシステム・メモリと、データ・キャシュまたは命令キャッシュとの間でのオペランドまたは命令の転送は通常、ブロックと呼ばれる固定した長さの単位で実施される。データのブロックは、当技術分野では周知の、トラック、セクタ、行、バイトなどの様々なサイズで転送することができる。ブランチ・ユニット１８によるメモリ・アクセスによって、データ・キャッシュ１６から必要なデータを取り出すことができるとき、そのような成功をキャッシュ「ヒット」と呼び、また必要なデータの取出しをキャッシュ内で行うことができず、システム・メモリまたは別のプロセッサ・キャッシュから実行しなければならないとき、そのような失敗を「ミス」と呼ぶ。命令キャッシュ１４とデータ・キャッシュ１６が共に、システム・メモリ内で仮想メモリ・アドレスの実メモリ・アドレスへのマッピングを支援するために利用されるメモリ管理ユニットを含むことを当業者なら理解するであろう。本明細書で後で詳細に述べるように、各メモリ管理ユニットは、変換索引バッファを使って、仮想メモリ・アドレスを実アドレスに迅速かつ正確に変換できることが好ましい。本発明の重要な一特徴によれば、各変換索引バッファを２つの別のモードで動作させることができ、以下に述べる変換索引バッファの動作モードの説明は、命令キャッシュ１４にもデータ・キャッシュ１６にも同じく適用される。
【００１５】
好ましい実施形態では、プロセッサ１０の実行回路は、ブランチ・ユニット１８の他にも、多数の実行ユニット、すなわち固定小数点ユニット（ＦＸＵ）２２、ロード記憶ユニット（ＬＳＵ）２８、および浮動小数点ユニット（ＦＰＵ）３０を含む。ＦＸＵ２２とＬＳＵ２８は、ソース・オペランド情報を汎用レジスタ（ＧＰＲ）３２から入力する。ＦＸＵ２２とＬＳＵ２８は、演算結果（宛先オペランド情報）を、ＧＰＲ３２の固定小数点名前変更バッファ内の選択されたエントリに記憶するために出力する。
【００１６】
さらに、ＬＳＵ２８は、浮動小数点レジスタ（ＦＰＲ）３６からソース・オペランド情報を入力する。ＦＰＵ３０は、そのソース・オペランド情報をＦＰＲ３６およびＬＳＵ２８から入力する。ＬＳＵ２８とＦＰＵ３０は、演算結果（宛先オペランド情報）を、ＦＰＲ３６の浮動小数点名前変更バッファ内の選択されたエントリに記憶するために出力する。
【００１７】
命令キャッシュ１４からの命令入力に応答して、ブランチ・ユニット１８は、ディスパッチ・ユニット２０を介して、実行ユニット２２、２８、３０、３２および３６のうちの選択された１つに、選択的に命令をディスパッチする。各実行ユニットは、特定クラスの命令のうちの１つまたは複数の命令を実行する。たとえば、ＦＸＵ２２は、加算、減算、ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算など、ソース・オペランドに対する第１のクラスの固定小数点算術演算を実行する。ＦＰＵ３０は、浮動小数点乗算や除法演算など、ソース・オペランドに対する浮動小数点演算を実行する。
【００１８】
ロード命令に応答して、ＬＳＵ２８は、データ・キャッシュ１６から情報を入力し、その情報を、ＧＰＲ３２とＦＰＲ３６またはＦＰＵ３０あるいはその両方中の名前変更バッファのうちの選択されたものにコピーする。その情報がデータ・キャッシュ１６内に記憶されていない場合は、データ・キャッシュ１６は、その情報をシステム・バス１１に接続されたシステム・メモリから（ＢＩＵ１２およびシステム・バス１１を介して）入力する。さらに、データ・キャシュ１６は、データ・キャッシュ１６から、システム・バス１１に接続されたシステム・メモリに情報を（ＢＩＵ１２およびシステム・バス１１を介して）出力することもできる。
【００１９】
ブランチ・ユニット１８からの記憶命令に応答して、ＬＳＵ２８は、記憶アドレスを生成し、ＧＰＲ３２とＦＰＲ３６のうちの選択された１つからデータを読み取る。その後、記憶命令がいつでも完了できる状態になったときに、記憶アドレスおよびデータがデータ・キャッシュに書き込まれる。
【００２０】
情報は、ＧＰＲ３２内の名前変更バッファのうちの選択された１つに記憶されるので、その情報は、命令によって指定され、選択された名前変更バッファが割り振られた記憶場所（たとえば、ＧＰＲ３２のうちの１つ）と関連付けられる。名前変更バッファのうちの選択された１つに記憶された情報は、ブランチ・ユニット１８からの信号に応答してＧＰＲ３２のうちの関連する１つにコピーされる。ブランチ・ユニット１８は、そのように、情報を生成した命令が「完了」したことを完了ユニット４０が示すのに応答して、名前変更バッファのうちの選択された１つに記憶された情報をコピーするよう指示する。好ましい実施形態においては、プロセッサ１０が、プロセッサ１０の１サイクルの間に命令を複数回完了することもある。
【００２１】
情報は、ＦＰＲ３６の名前変更バッファのうちの選択された１つに記憶されるので、その情報はＦＰＲ３６のうちの１つと関連付けられる。名前変更バッファのうちの選択された１つに記憶された情報は、ブランチ・ユニット１８からの信号に応答してＦＰＲ３６のうちそれに関連する１つにコピーされる。ブランチ・ユニット１８は、そのように、情報を生成した命令が「完了」したことを完了ユニット４０が示すのに応答して、名前変更バッファのうちの選択された１つに記憶された情報をコピーするように指示する。好ましい実施形態では、プロセッサ１０が、プロセッサ１０の１サイクルの間に命令を複数回完了することもある。
【００２２】
プロセッサ１０は、実行ユニット２２、２８、３０、３２、および３６のいくつかにおいて複数の命令を同時に処理することによって、高いパフォーマンスを達成する。したがって、各命令は、一連のステップとして処理され、各ステップはそれぞれ他の命令のステップと並列に実行可能である。このような技術は、「パイプライン方式」と呼ばれる。通常、命令は、５つのステップ、すなわちフェッチ、復号／ディスパッチ、実行、終了、完了として処理される。
【００２３】
フェッチ・ステップでは、ブランチ・ユニット１８が、一連の命令を記憶している１つまたは複数のメモリ・アドレスから、１つまたは複数の命令を（命令キャッシュ１４から）選択的に入力する。
【００２４】
復号／ディスパッチ・ステップでは、ブランチ・ユニット１８が、最高３つまでのフェッチされた命令を復号し、それぞれディスパッチした命令の結果（宛先オペランド情報）用の名前変更バッファ・エントリを予約した後で、最高３つまでの復号化した命令を、実行ユニット２２、２８、３０、３２および３６のうちの（復号ステップでの復号に応答して）選択されたものに選択的にディスパッチする。プロセッサ１０は、命令をそのプログラムされた順序でディスパッチする。ブランチ・ユニットは、各命令に固有のタグを、命令識別子（ＩＩＤ）として割り当てる。
【００２５】
実行ステップでは、オペランドの準備ができ次第、実行ユニットが、ディスパッチされた命令を実行する。終了ステップでは、実行ユニットが、出力結果（宛先オペランド情報）を、前に考察したように名前変更バッファの選択されたエントリに記憶する。各実行ユニットは、命令の実行を終了したとの信号をブランチ・ユニットに送る。実行ユニットは、命令の状況をＩＩＤと共にブランチ・ユニットに送り返す。
【００２６】
次に、図２を参照すると、本発明の方法およびシステムの第１のモードに従って変換索引バッファを利用した仮想アドレスの実アドレスへの変換を示す詳細なブロックが示されている。図に示したように、３２ビットの有効アドレスは、有効アドレス・レジスタに結合され、４ビットのセグメント・レジスタ・エントリ、１６ビットの有効ページ・エントリ、および１２ビットのバイトまたはオフセット・エントリを含む。次に、この３２ビットの有効アドレスを、仮想セグメント識別子を決定するセグメント・レジスタ５２と組み合わせて利用して、５２ビットの仮想アドレスを作成する。この５２ビットの仮想アドレスは、２４ビットの仮想セグメント識別子、１６ビットのページ、ならびに有効アドレスから変化しないバイトまたはオフセット値を含む。
【００２７】
次に、本発明の重要な特徴によれば、２４ビットの仮想セグメント識別子と１６ビットのページ識別子をレジスタ５４から取り出し、それを使って変換索引バッファ５６にアクセスする。変換索引バッファ５６は、仮想アドレス識別子を１２ビットの実ページ番号に変換するために利用できる３２エントリ２重セット連想式変換索引バッファであることが好ましい。次に２０ビットの実ページ番号をレジスタ５８内の１２ビットのバイト・オフセットと連結して、３２ビットの実アドレスを形成する。
【００２８】
本発明のこの図の実施形態においては、３２の異なる仮想セグメント識別子を変換索引バッファ５６内に記憶でき、したがって一般に「ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｔｉｌｉｚｅｄ）」として知られる置換アルゴリズムを使って、変換索引バッファ５６内の様々なアドレスを周期的に置き換えなければならないことを当業者は理解されよう。
【００２９】
次に、図３を参照すると、本発明の方法およびシステムの第１のモードに従って動作するときの、図２の変換索引バッファ５６の編成を示す詳細なブロック図が示されている。図３に示したように、変換索引バッファ５６内の各エントリ６０は、１つの有効エントリ・ビット（Ｖ）と、ビット１〜２４内の仮想セグメント識別子（ＶＳＩＤ）と、ビット４〜１５の有効アドレス（ＥＡ）とを含む上位エントリ６２を含む。参照数字６４で示した、変換索引バッファのエントリ６０の下位の３２ビットは、２０ビットの実ページ番号（ＲＰＮ）と、本発明の議論とは無関係に実行特権を禁止するかまたは特別な実行特権を付与するために利用される２つの実行特権ビット（ＮＥ、ＳＥ）と、特定のページ・ブロックのキャッシュ属性を記述する様々なページ属性ビット（Ｃ、ＷＩＭＧ）と、単一の実ページ番号用のページ保護ビット（ＰＰ）とを含む。このようにして、この種の変換索引バッファでは普通のことであるが、仮想アドレス識別子を利用して、システム・メモリ内で迅速かつ効率的な技法でアドレスを実メモリ・アドレスに変換することができる。しかし、変換索引バッファ５６のサイズが制限されているため、所与の時間に異なる３２のアドレスに変換できるアドレスの数が限られている。
【００３０】
前に考察したように、プロセッサ用のある種の特別なアプリケーションは、大量のメモリの制御および保護を必要とし、これらの動作は、この種のプロセッサ内で使用される典型的な変換索引バッファのサイズが制限されているとすれば、まったく厄介である。したがって、本発明の重要な特徴によれば、図２の変換索引バッファ５６を第２の動作モードで動作させ、それを利用して、多数のメモリ・ブロックの保護状況を図４に示した方式で決定することができる。
【００３１】
前述のように、３２ビットの有効アドレスは、有効アドレス・レジスタ７０に結合され、有効アドレスの最上位４ビットおよびページ識別子を使ってレジスタ７４内で２０ビットのページ識別子を作成する。特定のセグメント・グループ内の基本セグメントの仮想セグメント識別子が識別され、変換索引バッファ７６に第２の動作モードでアクセスするためにレジスタ７４内のページ識別子と一緒に使用される２４ビットの処理識別子が提供される。この動作モードでは、変換索引バッファの使い方が変わるので、変換索引バッファ７６は、図２で使用したものと異なる参照番号を付けてある。
【００３２】
図４に示したように、変換索引バッファ７６の出力は、多数のメモリ・ブロックのそれぞれに１つの保護ビットを含む。データ・キャッシュ内のアプリケーションにおいて、これらの保護ビットが、ユーザがそのビットに関連するメモリ・ブロックに書き込むことができるかどうかを判定する書込みエネーブル（ＷＥ）ビットを構成することを当業者なら理解するであろう。変換索引バッファ７６が命令キャッシュ内で利用される場合、各保護ビットは、実行特権ビットを構成し、そのメモリ・ブロック内にある命令が実行できるかどうかを判定するために利用される。
【００３３】
最後に、図５には、本発明の方法およびシステムの第２のモードに従って動作するときの、図４の変換索引バッファの編成を示す詳細なブロック図が示されている。上の図３に関して説明したのと同様に、各変換索引バッファ・エントリ８０内に、そのエントリの有効性を示す１つの有効エントリ・ビット（Ｖ）が設けられる。次に、２４ビットの仮想セグメント識別子（ＶＳＩＤ）および有効アドレスのエレメント・ビット（ＥＡ）を利用して、参照数字８２で示したように保護状況を制御すべき多数のメモリ・ブロックの始めの基本メモリ・ブロックを識別する。その後、参照数字８４に示したように、本発明の重要な特徴によれば、独立な３２個の保護ビット（ＮＥ）がリストされる。各保護ビットは、メモリの単一のブロックまたはページの保護状況を示し、変換索引バッファのエントリ８０の上位半分で識別された基本ブロックまたはページの後に続く。前述のように、これらの保護ビットを使って、命令の実行を禁止または許可し、各ページへのデータの書込みを禁止または許可することができる。
【００３４】
したがって、本発明の方法およびシステムによれば、変換索引バッファの各エントリ内の３２個のメモリ・ブロックのそれぞれに１つずつ保護ビットを提供することによって、最高４メガバイトまでの空間に、１２８キロバイトの連続ブロックにおいて４キロバイトの細分性でメモリ保護を提供することができる。このシステムは、メモリの１２８キロバイトのブロックがそれぞれ連続し、かつ変換索引バッファのエントリの上位半分にリストされた基本エントリで始まるだけでよいため、４メガバイト全部のメモリが連続である必要はないので、極めて柔軟性がある。このようにして、大量のメモリにアクセスし保護しなければならない適用業務において、変換索引バッファの設計およびサイズを大幅に変更する必要なしに、変換索引バッファを無効にして再ロードしなければならない回数をほぼ最小限に抑えることができる。
【００３５】
以上の説明を参照すれば、二重モードの変換索引バッファを利用することによって、本発明のメモリ管理ユニットが、大量の高速メモリをアドレス変換に使用しないという設計要件を満たしながら、大きなミスの不利益なしに大量のメモリの保護をサポートすることができることを当業者なら理解されよう。
【００３６】
本発明を好ましい実施形態に関して特に図示し説明したが、本発明の精神および範囲から逸脱することなしに、形態および詳細に様々な変更を加えることができることが当業者には理解されよう。
【００３７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３８】
（１）メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行う方法であって、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶するステップと、
各仮想アドレスが、それに関連して記憶されたＭ個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるＭ個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍ個のメモリ・ブロックのメモリ・ブロック保護が提供できるように、第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶するステップとを含む方法。
（２）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶するステップを含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記（１）に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
（３）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶するステップを含むことを特徴とする、上記（２）に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
（４）各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記（１）に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
（５）各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記（１）に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
（６）メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行うためのシステムであって、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する手段と、
各仮想アドレスが、それに関連して記憶されたＭ個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるＭ個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍ個のメモリ・ブロックのメモリ・ブロック保護が提供できるように、第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する手段とを含むシステム。
（７）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記（６）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（８）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、上記（７）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（９）各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記（６）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（１０）各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記（１）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（１１）プロセッサと、メモリと、内部の仮想アドレスを前記メモリ内の実アドレスにマッピングするメモリ管理ユニットとを含む、データ処理システムであって、
前記メモリ管理ユニットが、
変換索引バッファと、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記索引バッファに記憶する手段と、
各仮想アドレスが、それに関連して記憶されたＭ個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるＭ個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高Ｎ×Ｍまでのメモリ・ブロックのメモリ・ブロック保護を提供できるように、第２の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記索引バッファに記憶する手段とを含むデータ処理システム。
（１２）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記（１１）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（１３）第１の動作モードで動作中に最高Ｎ個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、上記（１２）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（１４）各メモリ・ブロックがデータを含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記（１１）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
（１５）各メモリ・ブロックが命令を含み、前記Ｍ個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記（１１）に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【図面の簡単な説明】
【図１】本発明の方法およびシステムを実施するために利用されるデータ処理システムの詳細なブロック図である。
【図２】本発明の方法およびシステムの第１のモードによる、変換索引バッファを利用した仮想アドレスの実アドレスへの変換を示す詳細なブロック図である。
【図３】本発明の方法およびシステムの第１のモードに従って動作するときの、図２の変換索引バッファの各エントリを示す詳細ブロック図である。
【図４】本発明の方法およびシステムの第２のモードによる、変換索引バッファを利用した大量のメモリ・ブロックの保護状況の決定を示す詳細なブロック図である。
【図５】本発明の方法およびシステムの第２のモードに従って動作するときの、図４の変換索引バッファの各エントリの詳細ブロック図である。
【符号の説明】
１０    プロセッサ
１１    システム・バス
１２    バス・インターフェース・ユニット（ＢＩＵ）
１４    命令キャッシュ
１６    データ・キャッシュ
１８    ブランチ・ユニット
２２    固定小数点ユニット（ＦＸＵ）
２８    ロード記憶ユニット（ＬＳＵ）
３０    浮動小数点ユニット（ＦＰＵ）
３２    汎用アーキテクチャ・レジスタ（ＧＰＲ）
３６    浮動小数点アーキテクチャ・レジスタ（ＦＰＲ）
【図１】
0003618868.tif 000002
【図２】
0003618868.tif 000003
【図３】
0003618868.tif 000004
【図４】
0003618868.tif 000005
【図５】
0003618868.tif 000006