(57)【要約】      （修正有）【課題】急速なヒットを生成することができるメモリ管理を提供する。【解決手段】メモリ管理が、メモリ保護ユニット８を含むデータ処理システム２の内部で提供され、またベース・アドレスと、リミット・アドレスとの間に広がり、またそれに関連するそれぞれの属性を有する、メモリ・アドレス空間の内部のメモリ領域を規定する。有効なヒットが、メモリ領域の内部で起こる場合、マスク値と、元の問い合わせアドレスから導き出されるＴＡＧ値とを含むブロック・データが生成され、次いで、ビットごとの論理積を使用して、その領域の少なくとも一部分の内部の後続のヒットを識別するために使用される。【選択図】図１
2016110636.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するステップであって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するように、ＸとＮとを選択する、識別するステップと、
前記メモリ・ブロックを表すブロック・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用するステップと
を含む方法。
【請求項２】
Ｘは、前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置することを可能にする、Ｎという整数値が存在する場合に、最大の整数値を有するように選択される、請求項１に記載の方法。
【請求項３】
前記ブロック・データは、マスク値と、前記メモリ・ブロックの前記識別するステップにおいて使用される前記問い合わせアドレスを表す以前の問い合わせ値とを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記ブロック・データを前記使用するステップは、前記マスク値と、前記以前の問い合わせ値とのビットごとの論理積が、前記マスク値と、前記後続の問い合わせアドレスを表す新しい問い合わせ値とのビットごとの論理積にマッチするかどうかを決定するステップを含む、請求項３に記載の方法。
【請求項５】
前記メモリ・アドレス空間は、複数のメモリ領域を含み、対応するメモリ・ブロックは、前記問い合わせアドレスを含む前記複数のメモリ領域のおのおのについて識別される、請求項１から請求項４までのいずれか一の請求項に記載の方法。
【請求項６】
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するブロック識別回路であって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
ＸとＮとは、前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するようになっている、ブロック識別回路と、
前記メモリ・ブロックを表すブロック・データを記憶するブロック・ストレージと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用する決定回路と
を備える装置。
【請求項７】
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するステップと、
メモリの前記ページを表すページ・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ページ・データを使用するステップと
を含む方法。
【請求項８】
階層的ページ・テーブル・データを使用して、前記複数のページのうちのそれぞれのページに関連するメモリ属性データを提供するモードにおいて動作するステップを含む、請求項７に記載の方法。
【請求項９】
前記複数のページは、複数の固定サイズのページである、請求項７または請求項８に記載の方法。
【請求項１０】
前記識別するステップは、
前記リミット・アドレスが、前記複数のページのうちの１つの最上部と一致するかどうかを決定するステップと、
前記ベース・アドレスが、前記複数のページのうちの１つの最下部と一致するかどうかを決定するステップと
を含む、請求項７から請求項９のいずれか一の請求項に記載の方法。
【請求項１１】
前記識別するステップは、
前記リミット・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあるかどうかを決定するステップと、
前記ベース・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあるかどうかを決定するステップと
を含む、請求項７から請求項１０までのいずれか一の請求項に記載の方法。
【請求項１２】
前記メモリ・アドレス空間は、複数のメモリ領域を含んでおり、また前記複数のメモリ領域のうちの１つの内部の有効なヒットは、前記複数のメモリ領域のうちの複数が、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記リミット・アドレスを含む前記複数のページのうちのページよりも低い前記複数のページのうちの１つのページの内部にあり、又は前記リミット・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあり、また前記問い合わせアドレスが、前記同じページの内部の、前記リミット・アドレスよりも比較的に低い
ように位置する場合、また
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記ベース・アドレスを含む前記複数のページのうちのページよりも高い前記複数のページのうちの１つのページの内部にある場合、又は前記ベース・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあり、また前記問い合わせアドレスが、前記同じページの内部において、前記ベース・アドレスよりも比較的に高い場合に、
登録されない、請求項７から請求項９までのいずれか一の請求項に記載の方法。
【請求項１３】
前記記憶するステップは、トランスレーション・ルックアサイド・バッファの内部に記憶するステップである、請求項７から請求項１２までのいずれか一の請求項に記載の方法。
【請求項１４】
前記記憶するステップは、マイクロ・トランスレーション・ルックアサイド・バッファと、主要なトランスレーション・ルックアサイド・バッファとの両方を含む装置の内部の前記マイクロ・トランスレーション・ルックアサイド・バッファの内部にある、請求項７から請求項１２までのいずれか一の請求項に記載の方法。
【請求項１５】
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある、前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するページ識別回路と、
前記ページを表すページ・データを記憶するページ・ストレージと、
後続の問い合わせアドレスが、前記ページの内部に位置するかどうかを決定するために、前記ページ・データを使用する決定回路と
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムの分野に関する。より詳細には、本開示は、データ処理システムの内部のメモリ管理に関する。
【背景技術】
【０００２】
データ処理システムは、１つ又は複数の属性（例えば、リード・オンリー、キャッシュ可能性、特権レベルなど）が、メモリ・アドレスに関連づけられる可能性があるように、メモリ管理能力が備わっていることもある。いくつかのシステムにおいては、階層ページ・テーブル・データを使用したメモリ管理ユニットを使用して、例えば、指定されたメモリ・ページの内部に位置するメモリ・アドレスのために使用されるべき属性を提供することと一緒に、仮想アドレスと、物理アドレスとの間のマッピングを提供することができる。他のシステムにおいては、メモリ保護ユニットが、使用されることもあり、このメモリ保護ユニットにおいては、メモリ・アドレス空間が、それぞれのメモリ領域に関連するプログラマブル境界と、１つ又は複数の属性とを有する複数のメモリ領域へと分割される。
【発明の概要】
【課題を解決するための手段】
【０００３】
いくつかの実例においては、
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するステップであって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するように、ＸとＮとを選択する、識別するステップと、
前記メモリ・ブロックを表すブロック・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用するステップと
を含む方法が、提供されている。
【０００４】
さらなる実例においては、
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するブロック識別回路であって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
ＸとＮとは、前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するようになっている、ブロック識別回路と、
前記メモリ・ブロックを表すブロック・データを記憶するブロック・ストレージと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用する決定回路と
を備える装置が、提供されている。
【０００５】
さらなる実例においては、
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するステップと
メモリの前記ページを表すページ・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ページ・データを使用するステップと
を含む方法が、提供されている。
【０００６】
さらなる実例においては、
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある、前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するページ識別回路と、
前記ページを表すページ・データを記憶するページ・ストレージと、
後続の問い合わせアドレスが、前記ページの内部に位置するかどうかを決定するために、前記ページ・データを使用する決定回路と
を備える装置が、提供されている。
【０００７】
例示の実施例は、次に、実例だけとして、添付の図面を参照して、説明されるであろう。
【図面の簡単な説明】
【０００８】
【図１】メモリ保護ユニットを組み込んだデータ処理システムを概略的に示す図である。
【図２】メモリ保護ユニットと、メモリ管理ユニットとの両方を組み込んだデータ処理システムを概略的に示す図である。
【図３】関連するメモリ属性を有する複数のメモリ領域へのメモリ・アドレス空間の分割を概略的に示す図である。
【図４】マスク・ベースの比較を使用して１つ又は複数のメモリ属性を決定することを概略的に示す流れ図である。
【図５】ページ・ベースの比較を使用して１つ又は複数の属性を決定することを概略的に示す流れ図である。
【発明を実施するための形態】
【０００９】
図１は、プロセッサ・コア４と、メモリ６と、メモリ保護ユニット８とを含むデータ処理システム２を概略的に示すものである。メモリ６は、プロセッサ・コア４によって実行されるべきプログラム命令と、プロセッサ・コア４によって操作されるべきデータとの両方を記憶する。プロセッサ・コア４は、メモリ６に対する、またメモリ６からのデータ値の読み取りと、書き込みとを実行するためのロード・ストア・ユニット１０を含んでいる。命令フェッチ・ユニット１２は、命令パイプライン１４に対して供給するためのメモリ６からプログラム命令をフェッチする。プログラム命令は、汎用レジスタ・ファイル、乗算器２０、シフタ２２、加算器２４など、プロセッサ・コア４の他の部分を制御するための制御信号を生成する命令デコーダ１６によって復号される。
【００１０】
メモリ保護ユニット８は、メモリ６のメモリ・アドレス空間の内部で１つ又は複数のプログラマブル属性値をメモリ・アドレスに関連づける働きをする。メモリ・アドレス空間は、複数のメモリ領域へと分割されることもあり、すなわち、これらの領域の内部のメモリ・アドレスは、少なくとも１つの属性を共有する。例えば、１つのメモリ領域は、リード・オンリー・メモリ・アクセス・オペレーションを許可するように規定されることもあるが、異なるメモリ領域は、読み取りメモリ・アクセス・オペレーションと、書き込みメモリ・アクセス・オペレーションとの両方を許可するように規定されることもある。メモリ領域は、メモリ・アドレス空間の内部のベース・アドレスと、メモリ・アドレス空間の内部のリミット・アドレスとによって規定される。メモリ領域は、そのベース・アドレスからそのリミット・アドレスへと広がる。ベース・アドレスと、リミット・アドレスとは、例えば、３２バイト・アラインメントや６４バイト・アラインメントなど、ある次数のアラインメントの支配下にある可能性がある。それらが規定するメモリ領域についての関連する属性と一緒に、ベース・アドレスと、リミット・アドレスとは、それらがメモリ保護ユニット８によってアクセスされ得るメモリ領域データ・ストア２６の内部に記憶される。ベース・アドレスと、リミット・アドレスと、メモリ属性とは、すべてプログラマブルとすることができ、その結果、システム設計者は、彼らが望むようにメモリ・アドレス空間を分割し、またそのメモリ・アドレス空間の内部で、異なる属性を異なるメモリ領域に関連づけることができる。
【００１１】
動作中に、問い合わせアドレスが、メモリ保護ユニット８によって受信され、またそれが、与えられたメモリ領域のために受信される第１のアドレスであるときに、メモリ保護ユニット８は、メモリ領域データ・ストア２６の内部のベース・アドレス・データと、リミット・アドレス・データとを使用して、メモリ領域のうちのどれの内部に、問い合わせアドレスが位置しているかを決定する。メモリ領域が、オーバーラップしており、また問い合わせアドレスが、複数のメモリ領域の内部に含まれるように識別される場合、この例示の実施例において、問い合わせアドレスは、無効として取り扱われる。それに応じて、問い合わせアドレスが、単一のメモリ領域の内部に位置しているときに、属性データが、問い合わせアドレスのために、戻される。
【００１２】
メモリ領域についての問い合わせアドレスが、初めてアクセスされるとき、その問い合わせアドレスについての１つ又は複数の属性値を戻すことと同様に、メモリ保護ユニット８は、問い合わせアドレスの結論を出し、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がるメモリ・アドレス空間の内部のメモリ・ブロックを識別する働きをする。これらのメモリ・ブロックを使用して、それぞれのマスク値を生成するために使用される問い合わせアドレスから導き出されるＴＡＧ値と一緒に、マスク・ベースの比較ユニット２８の内部に記憶されるマスク値を形成することができる。マスク・ベースの比較は、ベース・アドレスと、リミット・アドレスとに対してメモリ保護ユニット８によって実行される比較よりも急速に実行されることもある。ベース・アドレスと、リミット・アドレスとに対して比較するときにメモリ保護ユニット８は、問い合わせアドレスが、ベース・アドレス以上であり、またリミット・アドレス以下であるというテストを使用する。そのような比較は、比較的低速である。それに反して、マスク・ベースの比較ユニット２８によって実行されるマスク・ベースの比較は、以下でさらに説明されるように、簡単な論理積（ＡＮＤ）演算（又は他の簡単な論理演算）を用いて実行されることもある。
【００１３】
さらなる問い合わせアドレスが、ロード／ストア・ユニット１０、又は命令フェッチ・ユニット１２のいずれかによって生成されるとき、それは、メモリ保護ユニット８と、マスク・ベースの比較ユニット２８との両方に対して供給される。マスク・ベースの比較ユニット２８が、メモリ保護ユニット８によって以前に識別されたようなメモリ領域の内部に全体として、位置することが知られているメモリ・ブロックを指定するマスク・データとＴＡＧデータと（一緒にブロック・データを構成する）を記憶している場合、ヒットが、マスク・ベースの比較ユニット２８によって登録されることもあり、またそれに記憶される属性データは、より急速に、またメモリ保護ユニット８によって実行されている完全な比較と比べてより低いエネルギー・コストで戻される。
【００１４】
下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとは、複数の制約条件を満たすようにするために選択される。より詳細には、ＵＢＡーＬＢＡ＝２Ｘであり、式中で、Ｘは、ゼロ以上の整数であり、ＬＢＡ＝Ｎ＊２Ｘであり、式中で、Ｎは、ゼロ以上の整数であり、またＸとＮとは、メモリ・ブロックが、全体として、問い合わせアドレスが、その内部に位置するように識別されているメモリ領域の内部に位置するように、選択される。いくつかの実施例においては、Ｘは、メモリ・ブロックが、全体として、関係しているメモリ領域の内部に位置することを可能にするＮの整数値が存在している最大の整数値を有するように選択される。これにより、メモリ・ブロックは、より大きくなることができるようになり、そのようにしてマスク・ベースの比較ユニット２８の内部のマスク値とＴＡＧ問い合わせアドレス（ブロック・データ）とのために提供され得る有限のストレージをより良く使用している。
【００１５】
メモリ領域データ・ストア２６の内部に記憶されるベース・アドレスと、リミット・アドレスとを使用して、メモリ保護ユニット８によって実行される決定は、与えられた問い合わせについての与えられたＮ−ビットのベース、リミットの内部の領域と、イネーブル・フラグとについての単一の正確な領域のヒットが、
【数１】
2016110636.tif 000003
を使用して計算可能であるようなものである。
【００１６】
この例示の実施例においては、このヒット値は、１つの領域が、与えられた問い合わせアドレスについてヒットする場合、またヒットする場合だけに有効であると考えられる。複数の領域が、ヒットする場合、問い合わせアドレスは、無効であると考えられる。これは、メモリ・アドレス空間の領域が、無効としてマーク付けされ、またデータ処理システム２による使用からブロックされることを可能にする。
【００１７】
上記で述べられるように、単一の領域についてのヒットがあり、またマスク・ベースの比較ユニット２８の内部にヒットがない場合、メモリ・ブロックは、対応するブロック・データ（そのマスク値を生成した問い合わせ値から導き出されるマスク値及びＴＡＧ値）が、マスク−比較ユニット２８の内部に記憶され得るようにそのヒットについて識別される。上記で考察されるようなメモリ・ブロックと、下位ブロック・アドレスと、上位ブロック・アドレスとを規定することになるＴＡＧ値とともに使用するためのマスク値を決定するメモリ保護ユニット８によって実行される処理は、Ｎ−ビットのベース・アドレスと、リミット・アドレスと、問い合わせアドレスとの単一の領域ヒットについて、以下のように、なる可能性がある。
【数２】
2016110636.tif 000004
【００１８】
一定の伝搬が、上記で考察されるように、またリミット・アドレスと、ベース・アドレスとの最下位ビットの対応する数が、実際上すべてゼロである可能性がある結果として、例えば、３２バイト・アラインメントや６４バイト・アラインメントされたなど、メモリ領域の定義の最小の粒度に基づいて、上記の算出において適用され得ることに注意すべきであろう。
【００１９】
ブロック・データが、マスク・ベースの比較ユニット２８の内部で形成され、また記憶されているときに、それを使用して、任意の後続の問い合わせ、すなわち
【数３】
2016110636.tif 000005
の場合について、有効である（同じメモリ属性が関連づけられるべきヒット）結果として生じるメモリ・ブロックとの簡単なビットごとの論理積（logical AND）の比較を使用して、その同じメモリ・ブロックの内部のヒットを識別することができる。
【００２０】
上記で説明されるマスク・ベースの比較と並行して、ベース・アドレスと、リミット・アドレスとに対するテスト以上の、またテスト以下に基づいた完全な比較が、メモリ・ブロックの内部の問い合わせアドレスの少なくとも第１のアクセスについて、そのメモリ・ブロックに関連する属性を抽出するために、また領域のオーバーラップを管理するために、必要とされ得ることもあることが理解されるであろう。
【００２１】
メモリ領域データ・ストア２６は、それによって規定されるメモリ領域に関連する属性データと一緒に、ベース・アドレスと、リミット・アドレスとについての領域ストレージとしての機能を果たす。メモリ保護ユニット８は、問い合わせアドレスが、メモリ領域の内部にあるかどうかを決定するために、問い合わせアドレスをベース・アドレス及びリミット・アドレスと比較するための比較回路としての機能を果たす。メモリ保護ユニット８はまた、上記で考察されるようなメモリ・ブロックを識別するブロック識別回路としての機能も果たす。マスク・ベースの比較ユニット２８は、メモリ・ブロックを規定するブロック・データを記憶するためのブロック・ストレージとしての機能を果たし、またブロック・データを使用して、後続の問い合わせアドレスが、メモリ領域の内部に位置するかどうかを決定するための決定回路としての機能を果たす。
【００２２】
最終結果が、メモリ・ブロックを規定するブロック・データが、「ｑｕｅｒｙ＿ｉ＆〜ｍａｓｋ」によって与えられるマスク値と、以前の「起源となる」問い合わせ値とを用いて生成されることであるいくつかの機能させられた実例が、以下で与えられる。
【００２３】
次いで、将来の問い合わせが、表現、すなわち、
【数４】
2016110636.tif 000006
に対して検査され得る。すべてのＭＰＵ領域についてのｍａｓｋ＿０の結果は、一緒に論理積を取られて（AND'd）、どのような領域の境界とも相互作用しない最大の領域を生成することができる。
【００２４】
【表１】
2016110636.tif 000007
実例１．  ベースとリミットとの両端において、マスクは、すべて１である。
実例２．  ベースは、０ｘ１００００００へと移動した
実例３．  ベースはゼロのすぐ上に移動した
実例４．  問い合わせは、ベースの次に移動した
【００２５】
図２は、さらなる例示のデータ処理システム３８を示すものである。図２の内部において、図１と共通の要素は、同じ参照番号が、与えられる。図２の例示の実施例は、メモリ保護ユニット３０と、メモリ管理ユニット３２との両方を含んでいる。メモリ管理ユニット３２は、この技術分野における当業者によく知られているであろうやり方（例えば、ページ・テーブル・ウォーク）で、メモリ６と、トランスレーション・ルックアサイド・バッファ４０との内部に記憶される階層的ページ・テーブル・データ３６を使用して、ページ・テーブル・ベースのメモリ管理を実行する。メモリ・アドレス空間は、例えば、４ｋＢメモリ・ページなどの固定サイズ・メモリ・ページへと分割される。これらのメモリ・ページのおのおのは、それに関連する属性データを有する。
【００２６】
マイクロ・トランスレーション・ルックアサイド・バッファ３４は、より高速のアクセスのために、メモリ・アクセス・オペレーションをスピードアップさせ、また消費されるエネルギーを低減させるために、それらの属性データと一緒に、メモリの最も最近に使用されたページを識別するデータを記憶するように提供されることもある。
【００２７】
メモリ管理ユニット３２の代わりに、オペレーションのいくつかのモードにおいて使用され得るメモリ保護ユニット３０は、ベース・アドレスと、リミット・アドレスと、上記で考察されるような属性とによって規定されるメモリ領域へとメモリ・アドレス空間を分割する。しかしながら、この例示の実施例においては、マイクロ・トランスレーション・ルックアサイド・バッファ３４は、メモリ保護ユニット３０によって再使用されて、メモリ領域データ・ストア２６の内部に記憶されるメモリ領域データから導き出されるページ・ベースのデータを記憶する。マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部の入力によって表されるメモリ・ページは、図１の例示の実施例に関連して上記で考察されるメモリ・ブロックについての置き換えと考えられることもある。メモリ・ページは、与えられた実装形態についての固定されたサイズである。
【００２８】
問い合わせアドレスが、マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部で的を外し、またメモリ保護ユニット３０が、メモリ属性を生成する際にアクティブである場合、新しいページ入力は、以下で説明される処理を実行するメモリ保護ユニット３０によって、マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部で行われることもある。この実例においては、ベース・アドレスと、リミット・アドレスとは、６４バイト・アラインメントされており、またアドレスのビット［４：０］は、無視されることもあり、またメモリ・ページは、上記で述べられるように、サイズが４ｋＢである。メモリ保護ユニット３０によって実行される処理は、以下のように表されることもある。
／／問い合わせをベース及びリミットと、またベース及びリミットをページ境界と比較する
ｌｉｍｉｔ＿ａｔ＿ｔｏｐ＝ＡＮＤ  ｌｉｍｉｔ［１０：５］；／／領域リミットは、ページの最上部と一致する
ｂａｓｅ＿ａｔ＿ｂｏｔ＝ＮＯＲ  ｂａｓｅ［１０：５］；／／領域ベースは、ページの最下部と一致する
ｌｉｍｉｔ＿ｅｑ＿ｑｈｉ＝ｑｕｅｒｙ［３１：１１］＝＝ｌｉｍｉｔ［３１：１１］；／／リミットと同じページにおける問い合わせ
ｌｉｍｉｔ＿ｇｔ＿ｑｈｉ＝ｑｕｅｒｙ［３１：１１］＜ｌｉｍｉｔ［３１：１１］；／／リミット・ページより下の問い合わせ
ｌｉｍｉｔ＿ｇｅ＿ｑｌｏ＝ｑｕｅｒｙ［１０：５］＜＝ｌｉｍｉｔ［１０：５］；／／リミットよりページのより低い問い合わせ
ｂａｓｅ＿ｅｑ＿ｑｈｉ＝ｑｕｅｒｙ［３１：１１］＝＝ｂａｓｅ［３１：１１］；／／ベースと同じページにおける問い合わせ
ｂａｓｅ＿ｌｔ＿ｑｈｉ＝ｑｕｅｒｙ［３１：１１］＞ｂａｓｅ［３１：１１］；／／ベース・ページより上の問い合わせ
ｂａｓｅ＿ｌｅ＿ｑｌｏ＝ｑｕｅｒｙ［１０：５］＞＝ｂａｓｅ［１０：５］；／／ベースよりページのより高い問い合わせ
／／リミット・ページより下、又は内側、また最上部におけるリミットの場合に、問い合わせとリミットとの間の全体のページ
ｌｉｍｉｔ＿ｐａｇｅ＿ｏｋ＝ｌｉｍｉｔ＿ｇｔ＿ｑｈｉ  ＯＲ  ｌｉｍｉｔ＿ｅｑ＿ｑｈｉ  ＡＮＤ  ｌｉｍｉｔ＿ａｔ＿ｔｏｐ；
／／ベース・ページより上、又は内側、また最下部におけるベースの場合に、問い合わせとベースとの間の全体のページ
ｂａｓｅ＿ｐａｇｅ＿ｏｋ＝ｂａｓｅ＿ｌｔ＿ｑｈｉ  ＯＲ  ｂａｓｅ＿ｅｑ＿ｑｈｉ  ＡＮＤ  ｂａｓｅ＿ａｔ＿ｂｏｔ；
ｌｉｍｉｔ＿ｈｉｔ＿ｏｋ＝ｌｉｍｉｔ＿ｇｔ＿ｑｈｉ  ＯＲ  ｌｉｍｉｔ＿ｅｑ＿ｑｈｉ  ＡＮＤ  ｌｉｍｉｔ＿ｇｅ＿ｑｌｏ；／／リミットにおける、又はリミットより下の問い合わせ
ｂａｓｅ＿ｈｉｔ＿ｏｋ＝ｂａｓｅ＿ｌｔ＿ｑｈｉ  ＯＲ  ｂａｓｅ＿ｅｑ＿ｑｈｉ  ＡＮＤ  ｂａｓｅ＿ｌｅ＿ｑｌｏ；／／ベースにおける、又はベースより上の問い合わせ
／／領域は、何らかのやり方で問い合わせページを侵害する
ｉｎｆｒｉｎｇｅｓ＝ｌｉｍｉｔ＿ｇｔ＿ｑｈｉ  ＡＮＤ  ｂａｓｅ＿ｌｔ＿ｑｈｉ  ＯＲ  ｌｉｍｉｔ＿ｅｑ＿ｑｈｉ  ＯＲ  ｂａｓｅ＿ｅｑ＿ｑｈｉ；
／／ページ・レベルと、正確なヒットとを決定する
ｐａｇｅ＝ｌｉｍｉｔ＿ｐａｇｅ＿ｏｋ  ＡＮＤ  ｂａｓｅ＿ｐａｇｅ＿ｏｋ；
ｈｉｔ＝ｌｉｍｉｔ＿ｈｉｔ＿ｏｋ  ＡＮＤ  ｂａｓｅ＿ｈｉｔ＿ｏｋ；
【００２９】
この実例においては、この処理は、メモリ領域データ・ストア２６の内部に記憶されるデータによって規定される領域のすべてについて実行され、またヒットは、それが、発生する唯一のヒットである場合に、有効と考えられる。「侵害」の単一の真の値が存在し、またヒット領域が、「ページ」についての真の値を有する場合、アラインメントされた問い合わせアドレスは、マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部の新しいページ・データとしての包含のために適切である。
【００３０】
図３は、メモリの最下部と、メモリの最上部との間に広がるメモリ・アドレス空間についての、複数のメモリ領域への分割を概略的に示すものである。これらのメモリ領域のおのおのは、ベース・アドレスと、リミット・アドレスとの間に広がる。これらのメモリ領域のおのおのは、そのメモリ領域の内部に含まれ、また他のメモリ領域のうちのどれにも含まれない、メモリ・アドレス空間の内部のメモリ・アドレスとともに使用するための、それに関連する、リード・オンリー、読み取り及び書き込み、キャッシュ可能など、１つ又は複数の属性を有している。オーバーラップしたメモリ領域に対応するメモリ・アドレス空間は、無効と考えられ、また図３において、「＊」を用いてマーク付けされる。問い合わせアドレスが、単一のメモリ領域の内部に位置する場合、その単一のメモリ領域に関連する属性は、図１及び２のメモリ管理システムによって関心のある問い合わせアドレスのために戻される。
【００３１】
図４は、図１の実例に従ってマスク・ベースの比較を概略的に示す流れ図である。ステップ４０において、メモリ領域は、指定され、またこれらのメモリ領域を規定するデータは、メモリ領域データ・ストア２６の内部に記憶される。ステップ４２において、問い合わせアドレスが、受信される。次いで、ステップ４４は、受信された問い合わせアドレスが、マスク・ベースの比較ユニット２８によって記憶され、また使用されるブロック・データとヒットするか否かを決定する。ヒットが存在する場合、そのときにはステップ４６は、ブロック・データを使用して、受信された問い合わせアドレスについての属性を決定する働きをする。
【００３２】
ステップ４２において受信される問い合わせアドレスが、ブロック・データの内部でヒットしない場合、そのときにはステップ４８は、上記で考察された判断基準を満たすメモリ・ブロックを（可能な場合には）識別する働きをする。そのようなメモリ・ブロックは、その２のべき乗のサイズに対してアラインメントされ、また全体として、ヒットが起こったメモリ領域の内部に位置する、２の最大のべき乗のサイズを有するように識別される。次いで、ステップ５０は、さらなる使用のために、上記で説明されるような、マスク値と、ＴＡＧ（元の問い合わせアドレスから導き出される）との形式におけるブロック・データをメモリ・ベースの比較ユニット２８に記憶し、また同様にメモリ領域から読み取られている属性データを戻す。
【００３３】
図５は、図２の例示の実施例において実行されるページ・ベースの比較のオペレーションを概略的に示す流れ図である。ステップ５２において、メモリ領域は、属性値と一緒に、ベース・アドレスと、リミット・アドレスとを使用して指定され、またメモリ領域データ・ストア２６の内部に記憶される。ステップ５４において、処理は、問い合わせアドレスが、受信されるまで、待つ。ステップ５６は、問い合わせアドレスが、マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部でヒットするか否かを決定する。マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部でヒットが存在する場合、そのときにはステップ５８は、それに記憶されるページ・データを使用して、問い合わせアドレスに関連する属性を決定する。マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部にヒットが存在しない場合、そのときにはステップ６０は、ページ（メモリ管理ユニット３２によって使用され、またページ・テーブル・データ３６によって規定されるようなサイズの）を識別し、このページは、問い合わせアドレスに対応しており、またメモリ領域データ・ストア２６から読み取られるようなメモリ領域の属性を戻す。次いで、ステップ６２は、上記で説明されるように、識別されるページが、マイクロ・トランスレーション・ルックアサイド・バッファ３４の内部のストレージのために適切であるかどうかを決定する。ページ・テーブル・データが、上記の判断基準に従って、ストレージ及び再使用のために適切である場合、そのときにはステップ６４は、ページ・データをマイクロ・トランスレーション・ルックアサイド・バッファ３４に記憶する働きを行い、そこでは、そのページの内部に位置する別の問い合わせアドレスが、発生する場合に、それを使用して、より急速なヒットを生成することができる。
【００３４】
実例となる実施例が、添付の図面を参照して、本明細書において詳細に説明されているが、特許請求の範囲が、これらの正確な実施例だけには限定されないこと、及び様々な変更形態と、追加形態と、修正形態とが、添付の特許請求の範囲についての範囲及び精神を逸脱することなく、当業者によってその中で達成され得ることが、理解されるべきである。例えば、従属請求項の特徴の様々な組合せは、独立請求項の特徴を用いて行われる可能性がある。
【００３５】
本開示の様々な態様は、以下の条項の形で、提示される。
［条項］
［条項１］
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するステップであって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するように、ＸとＮとを選択する、識別するステップと、
前記メモリ・ブロックを表すブロック・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用するステップと
を含む方法。
［条項２］
Ｘは、前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置することを可能にする、Ｎという整数値が存在する場合に、最大の整数値を有するように選択される、条項１に記載の方法。
［条項３］
前記ブロック・データは、マスク値と、前記メモリ・ブロックの前記識別するステップにおいて使用される前記問い合わせアドレスを表す以前の問い合わせ値とを含む、条項１及び２に記載の方法。
［条項４］
前記ブロック・データを前記使用するステップは、前記マスク値と、前記以前の問い合わせ値とのビットごとの論理積（bitwise AND）が、前記マスク値と、前記後続の問い合わせアドレスを表す新しい問い合わせ値とのビットごとの論理積にマッチするかどうかを決定するステップを含む、条項３に記載の方法。
［条項５］
前記識別するステップは、
前記問い合わせアドレスと、前記ベース・アドレスとのビットごとの排他的論理和（bitwise exclusive OR）を含むベース・ディファレンス値（base difference value）を決定するステップと、
前記問い合わせアドレスと、前記リミット・アドレスとのビットごとの排他的論理和を含むリミット・ディファレンス値（limit difference value）を決定するステップと
を含む、条項１から４までのいずれか一項に記載の方法。
［条項６］
前記識別するステップは、
前記ベース・ディファレンス値の内部の同じ重要性の対応するビット位置におけるビット値の、前記ベース・ディファレンス値の内部の前記対応するビット位置よりも上位のビット位置におけるすべてのビット値との論理和（OR）に対応するベース・ディスコード値（base discord value）の各ビット値を有する前記ベース・ディスコード値を決定するステップと、
前記リミット・ディファレンス値の内部の同じ重要性の対応するビット位置におけるビット値の、前記リミット・ディファレンス値の内部の前記対応するビット位置よりも上位のビット位置におけるすべてのビット値との論理和に対応するリミット・ディスコード値の各ビット値を有する前記リミット・ディスコード値を決定するステップと
を含む、条項５に記載の方法。
［条項７］
前記識別するステップは、
前記ベース・アドレスの内部の同じ重要性の対応するビット位置におけるビット値の、前記ベース・アドレスの内部の前記対応するビット位置よりも下位のビット位置におけるすべてのビット値との否定論理和（NOR）に対応するベース・アラインメント値（base aligned value）の各ビット値を有する前記ベース・アラインメント値を決定するステップと、
前記リミット・アドレスの内部の同じ重要性の対応するビット位置におけるビット値の、前記リミット・アドレスの内部の前記対応するビット位置よりも下位のビット位置におけるすべてのビット値との論理積（AND）に対応するリミット・アラインメント値の各ビット値を有する前記リミット・アラインメント値を決定するステップと
を含む、条項１から６までのいずれか一項に記載の方法。
［条項８］
前記識別するステップは、
前記ベース・ディスコード値と、前記ベース・アラインメント値とのビットごとの論理和に対応するベース・マスク値を決定するステップと、
前記リミット・ディスコード値と、前記リミット・アラインメント値とのビットごとの論理和に対応するリミット・マスク値を決定するステップと
を含む、条項７及び８に記載の方法。
［条項９］
前記マスク値の少なくとも一部分は、前記ベース・マスク値と、前記リミット・マスク値とのビットごとの論理積を含む、条項３及び８に記載の方法。
［条項１０］
前記マスク値の最上位ビットは、前記マスク値に対応する前記メモリ・ブロックが、アクティブであるかどうかを示すイネーブル・ビット（enable bit）を含む、条項９に記載の方法。
［条項１１］
前記メモリ・アドレス空間は、複数のメモリ領域を含み、対応するメモリ・ブロックは、前記問い合わせアドレスを含む前記複数のメモリ領域のおのおのについて識別される、条項１から１０までのいずれか一項に記載の方法。
［条項１２］
前記ブロック・データは、識別される各メモリ・ブロックについてのマスク値のビットごとの論理積を含む、条項９及び１１に記載の方法。
［条項１３］
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、前記問い合わせアドレスを含んでおり、また下位ブロック・アドレスＬＢＡと、上位ブロック・アドレスＵＢＡとの間に連続して広がる前記メモリ・アドレス空間の内部のメモリ・ブロックを識別するブロック識別回路であって、ここで、
ＵＢＡ−ＬＢＡ＝２Ｘであり、式中でＸは、ゼロ以上の整数であり、
ＬＢＡ＝Ｎ＊２Ｘであり、式中でＮは、ゼロ以上の整数であり、また
ＸとＮとは、前記メモリ・ブロックが、全体として、前記メモリ領域の内部に位置するようになっている、ブロック識別回路と、
前記メモリ・ブロックを表すブロック・データを記憶するブロック・ストレージと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ブロック・データを使用する決定回路と
を備える装置。
［条項１４］
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを指定するステップと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較するステップと、
前記問い合わせアドレスが、前記メモリ領域の内部にある場合、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある、前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するステップと、
メモリの前記ページを表すページ・データを記憶するステップと、
後続の問い合わせアドレスが、前記メモリ領域の内部に位置するかどうかを決定するために、前記ページ・データを使用するステップと
を含む方法。
［条項１５］
階層的ページ・テーブル・データを使用して、前記複数のページのうちのそれぞれのページに関連するメモリ属性データを提供するモードにおいて動作するステップを含む、条項１４に記載の方法。
［条項１６］
前記複数のページは、複数の固定サイズのページである、条項１４及び１５のいずれか一項に記載の方法。
［条項１７］
前記識別するステップは、
前記リミット・アドレスが、前記複数のページのうちの１つの最上部と一致するかどうかを決定するステップと、
前記ベース・アドレスが、前記複数のページのうちの１つの最下部と一致するかどうかを決定するステップと
を含む、条項１４、１５、及び１６のいずれか一項に記載の方法。
［条項１８］
前記識別するステップは、
前記リミット・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあるかどうかを決定するステップと、
前記ベース・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあるかどうかを決定するステップと
を含む、条項１４から１７までのいずれか一項に記載の方法。
［条項１９］
前記識別するステップは、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記リミット・アドレスを含む前記複数のページのうちのページよりも低い、前記複数のページのうちの１つのページの内部にあるかどうかを決定するステップと、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記ベース・アドレスを含む前記複数のページのうちのページよりも高い、前記複数のページのうちの１つのページの内部にあるかどうかを決定するステップと
を含む、条項１４から１８までのいずれか一項に記載の方法。
［条項２０］
前記識別するステップは、
前記リミット・アドレスが、前記リミット・アドレスを含む前記複数のページのうちのページの内部にあるよりも、前記問い合わせアドレスが、前記問い合わせアドレスを含む前記複数のページのうちの１つのページの内部で、比較的に低いかどうかを決定するステップと、
前記ベース・アドレスが、前記ベース・アドレスを含む前記複数のページのうちのページの内部にあるよりも、前記問い合わせアドレスが、前記問い合わせアドレスを含む前記複数のページのうちの１つのページの内部で、比較的高いかどうかを決定するステップと
を含む、条項１４から１９までのいずれか一項に記載の方法。
［条項２１］
前記記憶するステップは、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記リミット・アドレスを含む前記複数のページのうちのページよりも低い前記複数のページのうちの１つのページの内部にあり、又は前記リミット・アドレスが、前記複数のページのうちの１つの前記問い合わせアドレスと同じページの内部にあり、また前記リミット・アドレスが、前記複数のページのうちの１つの最上部と一致し、また
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記ベース・アドレスを含む前記複数のページのうちのページよりも高い前記複数のページのうちの１つのページの内部にあり、又は前記ベース・アドレスが、前記複数のページのうちの１つの前記問い合わせアドレスと同じページの内部にあり、また前記ベース・アドレスが、前記複数のページのうちの１つの最下部と一致する
ことがない限り、実行されない、条項１４から１６までのいずれか一項に記載の方法。
［条項２２］
前記メモリ・アドレス空間は、複数のメモリ領域を含み、また前記記憶するステップは、前記複数のメモリ領域のうちの複数が、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記リミット・アドレスを含む前記複数のページのうちのページよりも低い前記複数のページのうちの１つのページの内部にあるように位置する場合に、また
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記ベース・アドレスを含む前記複数のページのうちのページよりも高い前記複数のページのうちの１つのページの内部にあり、或いは
前記リミット・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあり、又は
前記ベース・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にある
場合に、実行されない、条項１４から１６までと、２１とのいずれか一項に記載の方法。
［条項２３］
前記メモリ・アドレス空間は、複数のメモリ領域を含んでおり、また前記複数のメモリ領域のうちの１つの内部の有効なヒットは、前記複数のメモリ領域のうちの複数が、
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記リミット・アドレスを含む前記複数のページのうちのページよりも低い前記複数のページのうちの１つのページの内部にあり、又は前記リミット・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあり、また前記問い合わせアドレスが、前記同じページの内部の、前記リミット・アドレスよりも比較的に低い
ように位置する場合、また
前記問い合わせアドレスが、前記メモリ・アドレス空間の内部の、前記ベース・アドレスを含む前記複数のページのうちのページよりも高い前記複数のページのうちの１つのページの内部にある場合、又は前記ベース・アドレスが、前記複数のページのうちの１つの、前記問い合わせアドレスと同じページの内部にあり、また前記問い合わせアドレスが、前記同じページの内部において、前記ベース・アドレスよりも比較的に高い場合に、
登録されない、条項１４から１６までと、２１及び２２とのうちのいずれか一項に記載の方法。
［条項２４］
前記記憶するステップは、トランスレーション・ルックアサイド・バッファの内部に記憶するステップである、条項１４から２３までのいずれか一項に記載の方法。
［条項２５］
前記記憶するステップは、マイクロ・トランスレーション・ルックアサイド・バッファと、主要なトランスレーション・ルックアサイド・バッファとの両方を含む装置の内部の前記マイクロ・トランスレーション・ルックアサイド・バッファの内部にある、条項１４から２３までのいずれか一項に記載の方法。
［条項２６］
メモリ領域の内部のメモリ・アドレスが、少なくとも１つの属性を共有する前記メモリ領域を規定するために、メモリ・アドレス空間の内部のベース・アドレスと、リミット・アドレスとを記憶する領域ストレージと、
問い合わせアドレスが、前記メモリ領域の内部にあるかどうかを決定するために、前記問い合わせアドレスを前記ベース・アドレス及び前記リミット・アドレスと比較する比較回路と、
前記問い合わせアドレスを含んでおり、また全体として、前記メモリ領域の内部にある、前記メモリ・アドレス空間の内部のメモリの複数のページのうちのメモリのページを識別するページ識別回路と、
前記ページを表すページ・データを記憶するページ・ストレージと、
後続の問い合わせアドレスが、前記ページの内部に位置するかどうかを決定するために、前記ページ・データを使用する決定回路と
を備える装置。
【符号の説明】
【００３６】
２  データ処理システム
４  プロセッサ・コア
６  メモリ
８  メモリ保護ユニット
１０  ロード・ストア・ユニット
１２  命令フェッチ・ユニット
１４  命令パイプライン
１６  命令デコーダ
２０  乗算器
２２  シフタ
２４  加算器
２６  メモリ領域データ・ストア
２８  マスク・ベースの比較ユニット
３０  メモリ保護ユニット
３２  メモリ管理ユニット
３４  マイクロ・トランスレーション・ルックアサイド・バッファ
３６  ページ・テーブル・データ
４０  トランスレーション・ルックアサイド・バッファ
【図１】
2016110636.tif 000008
【図２】
2016110636.tif 000009
【図３】
2016110636.tif 000010
【図４】
2016110636.tif 000011
【図５】
2016110636.tif 000012
【外国語明細書】
2016110636000001.pdf