(57)【要約】  データ処理装置（１００）は、データ値を記憶するメモリと、メモリ属性をメモリの部分と関連させ、かつメモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するメモリ保護ユニット（１３０）とを備える。該メモリ保護ユニットは、それぞれのメモリ領域指示子を複数のメモリ領域（１５０）の少なくとも１つと関連させ、メモリ領域指示子は、メモリ領域と関連したメモリ属性の組を限定するための属性フィールド（２３０）と、下位区分領域メンバシップ値を保持するための下位区分領域フィールド（２４０）とを備える。下位区分領域メンバシップ値は、メモリ属性が、メンバ下位区分領域に適用されるが、非メンバ下位区分領域には適用されないように、それぞれの下位区分領域（１６０−１〜１６０−８）がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、メモリ領域の複数の下位区分領域の各々に対して特定する。
2008527483.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための装置であって、
データ値を記憶するよう動作可能なメモリと、
メモリ属性を前記メモリの部分と関連させるよう、かつ前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するよう動作可能なメモリ保護ユニットとを備え、該メモリ保護ユニットは、それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるよう動作可能であり、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ・下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした装置。
【請求項２】
メモリ属性の前記組は、メモリ・アクセス許可を含む請求項１に記載の装置。
【請求項３】
前記装置は、ユーザ・レベル及び特権のあるレベルを含む複数のレベルで操作可能であり、前記メモリ・アクセス許可は、アクセスの前記複数のレベルのいずれにおいて許可されるかを特定する請求項１に記載の装置。
【請求項４】
前記メモリ属性は、前記メンバ下位区分領域が読取り可能であるかまたは書き込み可能であるかに関する指示を含む請求項１に記載の装置。
【請求項５】
メモリ属性の前記組は、前記メモリ下位区分領域がキャッシュ可能であるかまたはキャッシュ可能でないかに関する指示を含む請求項１に記載の装置。
【請求項６】
メモリ属性の前記組は、前記メンバ下位区分領域がバッファ可能であるかまたはバッファ可能でないかに関する指示を含む請求項１に記載の装置。
【請求項７】
前記メモリ保護ユニットは、複数の連続するメンバ下位区分領域を特定するために前記下位区分領域フィールドを使用するよう動作可能である請求項１に記載の装置。
【請求項８】
前記メモリ保護ユニットは、複数の非連続のメンバ下位区分領域を特定するために前記下位区分領域フィールドを使用するよう動作可能である請求項１に記載の装置。
【請求項９】
前記複数のメモリ領域は、重複メモリ領域である請求項１に記載の装置。
【請求項１０】
前記メモリの与えられたアドレス範囲は、非メンバ下位区分領域として前記複数のメモリ領域の１つの前記下位区分領域フィールドによって特定され、前記与えられたアドレス範囲は、また、メンバ下位区分領域として前記複数のメンバ領域の異なった１つに対応する下位区分領域フィールドによって特定される請求項９に記載の装置。
【請求項１１】
前記データ処理装置は、それぞれのメモリ・アドレス・マッピングを有する複数の異なった処理アプリケーションを実行するよう動作可能であり、前記複数の異なった処理アプリケーションの異なった１つの実行間の文脈切換えが生じたとき、前記メモリ保護ユニットは、前記複数のメモリ領域の少なくとも１つの前記下位区分領域フィールドを更新するよう動作可能である請求項９に記載の装置。
【請求項１２】
前記メモリ保護ユニットは、前記文脈切換えの場合に前記属性フィールドを更新するよう動作可能である請求項１１に記載の装置。
【請求項１３】
前記メモリ領域の前記複数の下位区分領域が等しいサイズである請求項１に記載の装置。
【請求項１４】
アドレス・マスクは、前記メモリ領域のサイズを特定するサイズ値に依存して現在のアドレス・ワードのアドレス特定部分を識別するために用いられ、前記現在のアドレス・ワードは、現在のメモリ場所に対応する請求項１に記載の装置。
【請求項１５】
下位区分領域有効値を決定するよう動作可能な下位区分領域有効性ロジックを備え、前記下位区分領域有効値は、前記現在のメモリ場所が前記メンバ下位区分領域の１つに関連するかまたは前記非メンバ下位区分領域の１つに関連するかを特定する請求項１４に記載の装置。
【請求項１６】
前記下位区分領域有効性ロジックは、前記現在のメモリ場所が属する前記複数の下位区分領域の１つを前記現在のアドレス・ワードから識別するために前記アドレス・マスクを使用するよう動作可能である請求項１５に記載の装置。
【請求項１７】
前記下位区分領域有効性ロジックは、前記アドレス・マスクからのビットと前記現在アドレス・ワードからのビットを論理的に結合することにより選択ビットの組を計算するよう動作可能である請求項１６に記載の装置。
【請求項１８】
前記下位区分領域有効性ロジックは、選択ビットの前記組の異なった１つを論理的に結合することにより最終選択ビットの組を計算するよう動作可能である請求項１７に記載の装置。
【請求項１９】
前記下位区分領域有効性ロジックは、前記下位区分領域有効値を計算するために最終選択ビットの前記組を置換するよう動作可能である置換ロジックを備える請求項１８に記載の装置。
【請求項２０】
前記下位区分領域有効性ロジックは、前記下位区分領域有効値を計算するために前記下位区分領域メンバシップ値を置換するよう動作可能である置換ロジックを備える請求項１８に記載の装置。
【請求項２１】
前記置換ロジックは、前記下位区分領域メンバシップ値をオペランド記憶に書き込むときに前記置換を行うよう動作可能である請求項２０に記載の装置。
【請求項２２】
前記置換ロジックは、単一のロジック・モジュールを備え、前記の単一のロジック・モジュールは前記複数のメモリ領域の各々に対して前記置換を行うよう用いられる請求項２１に記載の装置。
【請求項２３】
データを処理するための方法であって、
データ値をメモリに記憶するステップと、
メモリ属性を前記メモリの部分と関連させ、かつメモリ保護ユニットを用いて前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するステップと、
それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるステップと、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした方法。
【請求項２４】
データを処理するための装置であって、
データ値を記憶するための手段と、
メモリ属性を前記メモリの部分と関連させ、かつ前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するためのメモリ保護手段と、を備え、該メモリ保護手段は、それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるよう動作可能であり、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関する。特に、本発明は、メモリ保護ユニットを有するデータ処理システムに関する。
【背景技術】
【０００２】
メモリ保護ユニットを使用したデータ処理システムにおいてメモリ・アクセスを制御することは知られている。これらのメモリ保護ユニットは、保護ユニット・レジスタに書き込むことによって構成される特性を有する複数の保護領域を限定する。このことは、メモリの特性に渡る制御のレベルを提供し、異なった属性を有する異なったメモリ領域が特定されるのを可能とする。メモリ保護ユニットは、メモリ管理ユニットと類似しているが、それらが仮想アドレスから物理アドレスへのマッピングを含んでいないという意味において、より単純である。さらに、メモリ保護ユニットは、トランザクション・テーブルを用いないが、それら自身を、ハードウェアにおける相対的に小さい数の領域に制限して、応答の予測可能性（predicatability）を改善する。
【０００３】
２つまたは３つ以上の重複メモリ領域を有するようにメモリ保護ユニットをプログラミングすることも知られている。重複領域は、メモリ領域がデータ処理システムにおける物理メモリ装置上に如何にマッピングされ得るかに関する柔軟性を高める。しかしながら、履行の価格を単純化するために、メモリ領域が割り当てられ得る方法に、普通、或る制約がある。メモリ領域のサイズは、２の累乗でなければならず、例えば、２５０Ｂから４ＧＢまでの範囲であり得る。しかしながら、メモリ領域の開始アドレスは、領域のサイズの倍数であるように制約され、すなわち、サイズ２ｎの領域に対して、開始アドレスはｋ＊２ｎでなければならず、ここに、ｋは整数である。このことは、任意のサイズのメモリ領域を限定することがこのようなシステムにおいては可能でないということを意味する。任意のサイズのメモリ領域を有するシステムが創設され得るけれども、それをするのは一層高価格である。メモリ保護ユニットは、代表的には、８から１６までの範囲において異なったメモリ領域を提供する。
【０００４】
メモリ領域が既知のシステムに割り当てられる方法に関する制約に起因して、処理装置によって必要とされる与えられたサイズのメモリ・ブロックを限定するようメモリ属性のそれぞれの組を有する１つ以上のメモリ領域を割り当てることが必要であり得る。これは、メモリ属性が全メモリ領域に適用されなければならないからである。
【０００５】
さらに、既知のメモリ保護ユニットによるメモリ領域の線引きは、データ処理装置上で実行している応用プロセスが周辺装置の異なったグループへのアクセス許可を必要とする状況において特に柔軟なものではない。この困難さは、代表的には、メモリの隣接するブロックが周辺装置の全セットに割り当てられるという状況から生じる。データ処理装置によって実行される異なったアプリケーション・プロセスの多様な性質に起因して、異なったプロセスは既知のメモリ・ユニットにおける周辺装置の異なった下位区分セットへのアクセス許可の異なったセットを必要とするのが通常である。この状況に適応させるために、個々の各周辺装置にそれぞれのメモリ領域を割り当てることが知られている。代表的には、８から１６までのメモリ領域だけが提供されるので、制限された数の領域からの需要は高く、このことは、メモリ保護ユニットによって限定されるべきメモリ領域の数が増加するという要件をもたらしてきた。従って、既知のメモリ保護ユニットよりも一層柔軟性を提供し、なおかつ、増加した多くの数のメモリ保護領域を導入することのオーバーヘッドを含まないデータ処理装置に対する必要性がある。
【発明の開示】
【課題を解決するための手段】
【０００６】
一態様に鑑みると、本発明は、データを処理するための装置であって、
データ値を記憶するよう動作可能なメモリと、
メモリ属性を前記メモリの部分と関連させるよう、かつ前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するよう動作可能なメモリ保護ユニットとを備え、該メモリ保護ユニットは、それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるよう動作可能であり、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした装置を提供する。
【０００７】
本発明の技術は、各メモリ領域が複数の個々の下位区分領域に副分割されるのを許容すること、並びに、下位区分領域の各々が、メモリ属性の限定された組が適用されるメンバ下位区分領域であるか、または代替的に、メモリ領域と関連したメモリ属性が適用されない非メンバ下位区分領域であるかを特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドを、メモリ領域と関連したメモリ領域指示子に設けること、は、物理的メモリの割付けにおいて莫大な柔軟性を提供する。メモリ属性の組を、個々の下位区分領域であるメモリ領域の特定された部分だけに関連させる能力は、メモリ領域の開始アドレスが、克服されるべきメモリ領域のサイズの整数倍でなければならないという制約を許容し、その理由は、もし、完全なメモリ領域を限定することが可能でないサイズのメモリのブロックを割り付けることが望まれる場合には、必要とされるメモリ・ブロックよりも大きいサイズの単一のメモリ領域を、該メモリ・ブロックに割り付けるが、必要とされない該一層大きいメモリ領域の部分を非メンバ・下位区分領域として特定することがなお可能であるからである。非メンバ・下位区分領域は、次に、他のメモリ領域によって用いられることができ、そこで、それらはメンバ・下位区分領域として選択されることができる。
【０００８】
或る下位区分領域だけをメンバ・下位区分領域として選択する能力は、また、各周辺装置のためのメモリ領域の非効率な使用の問題を処理する。これは、単一のメモリ領域の異なった下位区分領域が、周辺装置の全組の異なったものと関連することができ、かつ、異なったアプリケーション・プロセスに対して認可されるべき異なったアクセス許可が、アクセスが認可されるべき周辺装置の与えられた組と関連したそれらの下位区分領域をメンバ下位区分領域として単純に割付けることによって単一のメモリ領域内に収容されることができるからである。
【０００９】
メモリ領域指示子によって限定されるメモリ属性の組は、多くて良くかつ変えられることができるということが理解されるであろう。一実施形態においては、メモリ属性の組は、メモリ・アクセス許可を含む。従って、或る下位区分領域は、読取り専用、読取り及び書き込み双方のアクセス可能または全くアクセス可能でないものとして限定され得る。もう１つの実施形態においては、データ処理装置は、ユーザ・レベル及び特権のあるレベルを含む複数のレベルを含み、そして、メモリ・アクセス許可は、複数のレベルのいずれにおいてアクセスが許可されるかを特定する。従って、例えば、特権のユーザ・レベルは正常なアプリケーション・プロセスに利用可能であり得、それに反して、例外の発生時には、アクセスは特権のあるレベルに提供され得る。従って、或るメモリ領域に対しては、読取り専用の許可がユーザ・レベル・アクセスに対して与えられることができ、それに反して、読取り及び書き込み双方の許可は、特権のあるレベル・アクセスに対して提供されることができる。このことは、命令及び構成パラメータを保持するもののような或るメモリ領域へのアクセスを、ユーザ・レベルでかかるメモリ領域に認可されるアクセスよりも一層制限しない、一層高い特権レベルが認可されるのを許容する柔軟性を提供する。
【００１０】
さらなる実施形態において、メモリ属性の組は、メモリ下位区分領域がキャッシュ可能またはキャッシュ可能でないメモリであるかに関する指示を含む。もう１つの代替的な実施形態は、メンバ・下位区分領域がバッファ可能であるかまたはバッファ可能でないかに関する指示を含むメモリ属性を有する。このことは、キャッシング・データまたはバッファリング・データと関連した何等かの悪影響をプログラマが制御するのを可能とする。例えば、プログラマが期待しないであろう時に生じるメモリ・アクセスを阻止するためにキャッシュ可能またはバッファ可能であるメモリ下位区分領域を割り付けることを回避すること、もしくは、代替的には、データ項目が保持され得る多数の物理的場所が存在することを回避することが望まれるかもしれない。キャッシュ・メモリの特性に起因して、或るメモリ・マッピングされる入力／出力場所は、キャッシングのために適切でない。キャッシュ可能／キャッシュ不可能であるメモリ領域内に或る下位区分領域を設計する、及び、バッファ可能／バッファ不可能である与えられたメモリ領域内に或る下位区分領域を設計する能力は、プログラマに、メモリ・リソースの一層効率的な使用を可能とする一層大きい柔軟性を提供する。
【００１１】
与えられたメモリ領域の下位区分領域は、利用可能な下位区分領域の全数によってのみ制約される、任意の可能な数及び組み合わせで、メンバ・下位区分領域または非メンバ・下位区分領域として割り付けられることができる。しかしながら、一実施形態においては、下位区分領域フィールドが、複数の連続するメンバ下位区分領域を特定するために使用される。このことは、メモリ保護ユニットによって限定され得るメモリ領域のサイズにおける何等かの制限を克服し、その理由は、標準化されていないサイズのメモリ領域の等価物が、必要とされるよりも大きいメモリ領域を選択することによって、メンバ下位区分領域として下位区分領域の連続するグループを選択することによって、かつ、非メンバ下位区分領域として下位区分領域の残りの連続するブロックを割り付けることによって限定され得るからである。このことは、中間サイズのメモリ領域を効果的に限定し、２つの別々に限定された組のメモリ属性を有する２つの異なったメモリ領域を用いた標準化されていないサイズのメモリ領域を形成するための既知のシステムにおける必要性を回避する。
【００１２】
本発明の異なった実施形態においては、下位区分領域フィールドは、複数の非連続のメンバ下位区分領域を特定するために使用される。このことは、周辺装置の各々に対して全メモリ領域を消費することなく周辺装置の異なった下位区分セットに２つの異なったアプリケーション・プロセスのアクセス許可を割り付けることが望まれる場合に非常に大きい柔軟性を提供する。このことは、周辺装置を下位区分領域に関連させることによって達成され、それにより単一のメモリ領域が周辺装置の組と関連される。異なったプログラム・アプリケーションに対して、アクセスが許可されるべき周辺装置と関連されるこれらの下位区分領域は、メンバ・下位区分領域として限定され、それに反して、アクセスが許可されるべきでない周辺装置と関連されるこれらの下位区分領域は、非メンバ・下位区分領域として限定される。従って、一層多い周辺装置が、限定されたメモリ領域の制限された数を有するメモリ保護ユニットを用いて適応され得る。
【００１３】
メモリ保護ユニットの複数のメモリ領域は、重複をもたない連続的に限定されるメモリ領域であって良いが、本発明の一実施形態においては、メモリ保護ユニットのメモリ領域は重複するメモリ領域である。従って、与えられた下位区分領域が、１つ以上のメモリ保護領域内に存在する場合には、次に、例えば、最も高い番号のメモリ領域のメモリ属性がそれに適用され得る。このことは、各メモリ領域が、メンバ下位区分領域または非メンバ下位区分領域として割り当てられ得る複数の下位区分領域を備えるという本発明技術によるシステムにおいて特に有用である。非メンバ・下位区分領域は、下位区分領域をメンバ下位区分領域として限定した一層低い階層レベルに存在するメモリ領域による、割り当てられたメモリ属性であり得る。例えば、もしメモリの与えられた部分が、最も高く番号付けられたメモリ領域レベルにおける非メンバ下位区分領域として割付けられるならば、次に、そのメモリ属性は、該下位区分領域がメンバ下位区分領域として限定される次の最も高いメモリ領域レベルの属性に単に対応する。１つの特定の実施形態において、もし、メモリの与えられたアドレス範囲が、非メンバ下位区分領域として前記複数のメモリ領域の１つの前記下位区分領域フィールドによって特定されるならば、次に、該同じ与えられたアドレス範囲は、また、メンバ下位区分領域として前記複数のメンバ領域の異なった１つに対応する下位区分領域フィールドによっても特定され得る。このことは、メモリの該アドレス範囲が、メモリ属性の割り当てられた組無しで残されるということを回避する。
【００１４】
本発明の一実施形態においては、データ処理装置は、異なったメモリ・アドレス・マッピングを有する複数の異なった処理アプリケーションを実行するよう動作可能である。このような装置の例は、異なった処理アプリケーションのスレッド化された実行を行なうことができる装置である。この実施形態において、前記複数の異なった処理アプリケーションの異なった１つの実行間の文脈切換えの場合において、前記メモリ保護ユニットは、前記複数のメモリ領域の少なくとも１つの前記下位区分領域フィールドを更新するよう動作可能である。このことは、各メモリ領域に対するメモリ属性が固定されたままであることを可能にし、なおかつ、メンバ・下位区分領域及び非メンバ下位区分領域として各メンバ領域の下位区分領域の異なった１つを割り付けることによって、異なった属性が異なった下位区分領域に適用するのを可能とする。従って、例えば、もし、最も高く番号付けられたメモリ領域の下位区分領域がメンバ下位区分領域として予め割り付けられ、なおかつ、文脈切換えの後に、それが非メンバ下位区分領域として割付けられたならば、次に、文脈切換えの前には、最も高いメモリ領域のメモリ属性は、該下位区分領域に適用され、それに反して、文脈切換えの後には、異なった一層低く番号付けられたメモリ領域のメモリ属性が該同じメモリ部分に適用される。さらなる実施形態において、前記メモリ保護ユニットは、前記文脈切換えの場合に前記属性フィールドを更新するよう動作可能である。このことは、実行されているアプリケーション・プロセスのメモリ使用要件の変化を反映するよう、与えられたメモリ領域のメモリ属性が変化されるのを許容する。
【００１５】
メモリ領域は、異なったサイズの下位区分領域に分割され得るけれども、幾つかの実施形態においては、メモリ領域の下位区分領域が等しいサイズであるように設計される。このことは、例えば、周辺装置の組に対応する連続するメモリ・ブロックにおいて与えられた周辺装置に与えられた下位区分領域を割り付ける際の下位区分領域の割付けを単純化する。
【００１６】
現在のアドレス・ワードのアドレス特定部分は、種々の異なった方法でデータ処理装置内で識別され得ることが理解されるであろう。しかしながら、本発明の一実施形態においては、アドレス・マスクは、関連のメモリ領域のサイズを特定するサイズ値に依存して現在のアドレス・ワードのアドレス特定部分を識別するために用いられる。このことは、現在のメモリ・アドレスが属するメモリ領域の効率的な識別を可能とする。
【００１７】
一実施形態においては、データ処理装置は、下位区分領域有効値を決定するよう動作可能な下位区分領域有効性ロジックを備え、前記下位区分領域有効値は、前記現在のメモリ場所が前記メンバ・下位区分領域の１つに関連するかまたは前記非メンバ・下位区分領域の１つに関連するかを特定する。このことは、与えられたメモリ・アドレスが、与えられたメモリ領域及び与えられたメモリ領域のメンバ・下位区分領域の双方に対応するか否かを識別する便利な手段を提供する。
【００１８】
現在のメモリ場所が属する下位区分領域が、かかる下位区分領域及び各領域のための別々の決定として、領域サイズ及びアドレスと一緒に、現在のアドレス・ワード値から直接に決定され得るということが分かるであろう。しかしながら、この識別は、現在のメモリ場所が複数の領域のいずれに属するかを識別するために、かつ、現在のメモリ場所が同一の領域の複数の下位区分領域のいずれに属するかを識別するようアドレス・マスクを再使用するために、アドレス・マスクをベースにした方法を用いることにより、少ない領域の回路で一層効率的に行なわれる。
【００１９】
さらなる実施形態において、有効性ロジックは、前記アドレス・マスクからのビットと前記現在アドレス・ワードからのビットとを論理的に結合することによって選択ビットの組を計算することにより特定の下位区分領域を識別するためにアドレス・マスクを用いるよう動作可能である。またさらなる実施形態において、前記下位区分領域有効性ロジックは、選択ビットの前記組の異なった１つを論理的に結合することにより最終選択ビットの組を計算するよう動作可能である。この方法は、現在のアドレスが関連している下位区分領域を現在のアドレス・ワードから決定するために必要とされるマルチプレクサの数を減ずる。従って、それは、メモリ・アドレスが対応する特定の下位区分領域を特定するアドレスのそれらのビットを隔離する便利な方法を提供する。
【００２０】
さらなる実施形態において、前記下位区分領域有効性ロジックは、前記下位区分領域有効値を計算するために最終選択ビットの前記組を置換する（permute）よう動作可能である置換(permutation)ロジックを備える。一実施形態においては、置換ロジックは、最終選択ビットの前記組を置換するよう動作可能であり、それに反して、もう１つの代替的な実施形態においては、置換ロジックは、前記下位区分領域有効値を計算するために前記下位区分領域メンバシップ値を代わりに置換するよう動作可能である。これらの２つの実施形態は、対応するメモリ領域の適切な下位区分領域を特定するアドレス・ビットをアドレス・マスクから回復する代替的な方法を提供する。
【００２１】
置換ロジックは、下位区分領域メンバシップ値の記憶後であるが下位区分領域有効値の計算前に下位区分領域メンバシップ値の置換を行なうことができるけれども、本発明の幾つかの実施形態においては、置換ロジックは、下位区分領域メンバシップ値をオペランド記憶に書き込む際に置換を行なうよう動作可能である。このことは、置換の段階を下位区分領域メンバシップ値のメモリへの書き込みの段階に結合することにより一層効率的なロジック回路を提供する。
【００２２】
置換ロジックの別々の組が、各個々のメモリ領域の下位区分領域メンバシップ値を置換するために提供され得るということが理解され得るであろう。しかしながら、本発明の実施形態においては、単一のロジック・モジュールは前記複数のメモリ領域の各々に対して前記置換を行うように用いられる。このことは、メモリ・下位区分領域の供給を管理するために必要とされる回路の量を減ずる。
【００２３】
もう１つの態様に鑑みて、本発明は、データを処理するための方法であって、
データ値をメモリに記憶するステップと、
メモリ属性を前記メモリの部分と関連させ、かつメモリ保護ユニットを用いて前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するステップと、
それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるステップと、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした方法を提供する。
【００２４】
さらなる態様に鑑みると、本発明は、データを処理するための装置であって、
データ値を記憶するための手段と、
メモリ属性を前記メモリの部分と関連させ、かつ前記メモリのそれぞれのアドレス範囲に対応する複数のメモリ領域を識別するためのメモリ保護手段と、を備え、該メモリ保護手段は、それぞれのメモリ領域指示子を前記複数のメモリ領域の少なくとも１つと関連させるよう動作可能であり、前記メモリ領域指示子は、前記メモリ領域と関連したメモリ属性の組を限定するための属性フィールドと、それぞれの下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを、前記メモリ領域の複数の下位区分領域の各々に対して特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドとを備え、それにより、前記メモリ属性は、前記メンバ下位区分領域に適用されるが、前記非メンバ下位区分領域には適用されないようにした装置を提供する。
【００２５】
本発明の上述及び他の目的、特徴及び長所は、添付図面と共に読まれるべき実施形態の以下の詳細な説明から明瞭となるであろう。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明の技術によるデータ処理装置を概略的に示す。データ処理装置１００は、処理ロジック１１０、データ及び／または命令を格納するよう動作可能なメモリ１２０、及びメモリ保護ユニット１３０を備える。メモリ１２０は、バス１０５に接続され、処理ロジック１１０は、メモリ保護ユニット１３０に接続され、該メモリ保護ユニット１３０は、バスに接続される。メモリ保護ユニット１３０は、メモリ１２０を管理する方法を提供し、メモリ属性１４０のそれぞれのセットを有する複数の異なったメモリ領域を限定する。メモリ保護ユニット１３０は、物理的なメモリ・アドレス空間を管理する。メモリ保護ユニット１３０は、それぞれの保護ユニット・レジスタに書き込むことにより複数の保護領域の各々と関連した属性を限定する。メモリ領域のサイズは、２ｎであり、ここにｎは整数であり、該サイズは、４ＫＢから４ＧＢの範囲までに及び得る。メモリ領域の開始アドレスは、この実施形態においては、２ｎの倍数であるように制約される。図１は、複数の下位区分領域１６０−１から１６０−８に分割されたメモリ領域１５０を示す。メモリ属性１４０のセットは、全メモリ領域１５０に関係して限定される。しかしながら、メモリ領域１５０に対するメモリ領域指示子は、複数の下位区分領域１６０−１から１６０−８の各々に対して、該下位区分領域がメンバ・下位区分領域であるかまたは非メンバ下位区分領域であるかを特定する下位区分領域メンバシップ値を保持するための下位区分領域フィールドを有する。図１において、メンバ下位区分領域は、斜線領域１６０−２及び１５０−６である。メモリ属性１４０は、メモリ保護ユニット１３０によって、メモリ下位区分領域にだけ与えられ、非メンバ下位区分領域には与えられない。
【００２７】
メモリ属性１４０は、以下のものを含む：メモリ・アクセス許可；メモリ領域が読取り可能であるか及び／または書き込み可能であるかに関する指示；メモリ領域がキャッシュ可能なメモリ領域であるか否かの指示；及びメモリ領域がバッファ可能であるか否かの指示。アクセス許可は、アクセスのユーザ・レベル及びアクセスの特権のあるレベルを含み、メモリ領域指示子の属性フィールドのメモリ・アクセス許可は、関連のメモリ領域へのアクセスのそれらレベルのいずれの１つが許可されるのかを特定する。アクセスの特権のあるレベルは、ユーザ・レベルが可能であるよりも一層制限されない、メモリ、命令及び構成パラメータへのアクセスを可能とし、そして処理ロジック１１０は、例えば、例外が発生した場合に、ユーザ・レベルから特権のあるレベルに切換わるであろう。キャッシュ及び書き込みバッファがその数、タイプ及び主メモリへのタイミング・アクセスを変えるので、それらはメモリ場所の幾つかのタイプと関連したデータの記憶にとって適切ではない。例えば、書き込みバッファ及び書き込みバック・キャッシュは、記憶命令が処理ロジック１１０によって実行されたということが後で実際に生じるようにメモリ１２０への記憶を遅延させることが可能であるということに依存している。これは、メモリ・マッピングされた中断／出力場所のような或るタイプのメモリ場所にとっては適切ではないかも知れない。従って、メモリ保護ユニット１３０は、与えられたメモリ領域がキャッシュ不能、バッファ不能またはその両者として指定されるのを許容する。メモリの下位区分領域並びに一層粗いスケール・メモリ領域を特定するための能力は、既知のメモリ保護システムに関してメモリ・リソース管理におけるさらなる柔軟性を提供する。
【００２８】
図２Ａは、既知のメモリ保護ユニットにおいて用いられるメモリ領域指示子を概略的に示すメモリ領域指示子は、ベース・アドレス・フィールド２１０、サイズ・フィールド２２０及び属性フィールド２３０を含む。このような１つのメモリ領域指示子は、代表的には８から１６の範囲にあるメモリ保護ユニット１３０によって限定されるメモリ領域の各々に対して提供される。ベース・アドレス・フィールド２１０は、関連のメモリ領域１５０の最初のバイトのアドレスを特定する。最初のバイトのアドレスは、領域サイズの倍数であることが要求される。さらに、この配列において、メモリ領域がそのサイズの倍数に割り当てられるという要件があり、従って、サイズ２ｎのメモリ領域に対して、該メモリ領域はｋ＊２ｎであるように割り当てられ、ここに、ｋは整数の値である。サイズ・フィールド２２０は、この配列においては２５０バイトから４ＧＢまでの範囲にあり得る関連のメモリ領域のサイズを特定する。属性フィールド２３０は、メモリ領域と関連したメモリ属性を特定する。これらのメモリ属性は、アクセスのユーザ・レベルが許容されるかまたはアクセスの特権のあるレベルが許容されるかにより、メモリ領域が読取り可能及び／または書き込み可能であるかに関する指示、メモリ領域がキャッシュ可能であるかまたはキャッシュ可能でないかの指示、及びメモリ領域がバッファ可能であるかまたはバッファ可能でないかの指示を含む。既知のメモリ保護システムにおいては、メモリ領域がサイズにおいて変化し得るけれども、メモリ属性は、図２Ａのメモリ領域指示子が関連している全メモリ領域だけに関連している。
【００２９】
図２Ｂは、本発明の技術によるメモリ領域指示子を概略的に示す。図２Ｂのメモリ領域指示子は、図２Ａの既知の指示子と同じ３つのフィールドを有している（すなわち、ベース・アドレス２１０、サイズ・フィールド２２０、及び属性フィールド２３０）。しかしながら、図２Ｂのメモリ領域指示子は、追加の下位区分領域フィールド２４０を有しており、該フィールド２４０は、メモリ領域のそれぞれの下位区分領域がメンバ下位区分領域または非メンバ下位区分領域により、対応のメモリ領域の複数の下位区分領域の各々に対して特定する多数ビットの下位区分領域メンバシップ値を含んでいる。属性フィールド２３０において特定される属性は、下位区分領域メンバシップ値によって特定されるこれらの下位区分領域に対してのみ適用され、その理由は、メンバ下位区分領域及び特定された属性が、示された非メンバ下位区分領域であるこれらの下位区分領域には適用されないからである。従って、図２Ｂのメモリ領域指示子は、与えられたメモリ領域が下位区分領域に分割されるのを可能とし、それにより、メモリ領域に対応する属性は、領域の全メモリ範囲に与えられる代わりに、下位区分領域メンバシップ値によって決定される下位区分領域の下位区分セットにのみ適用される。この柔軟性は、既知のシステムにおけるメモリ領域の数からメモリ領域の数を増加させる必要なく提供され得る。図２Ｂの実施形態においては、メモリ属性及び下位区分領域メンバシップ値が記述子内に特定されたけれども、これらの値は、異なったレジスタ内に別に記憶されてメモリ保護ユニット１３０によって検索され得ることが分かるであろう。
【００３０】
図３は、メモリ保護ユニット１３０によって管理されたメモリ領域が重複領域として如何に配列されるかを概略的に示す。図３は、物理的なメモリ・アドレスに対応するアドレス３１０のブロックを示す。この例においては、示されたアドレス範囲は、０ｘ００００（１６進法）から０ｘ４０００までである。図３にはまた、幾つかの異なったメモリ領域３２０、３３０、３４０、３５０が示されている。それぞれのメモリ領域間に物理的なメモリ・アドレス空間における幾つかの重複があるということが分かり得る。各メモリ領域がサイズ２ｎのものでありかつ２ｎで配列されているということが、この配列においては必要とされるので、一層小さいメモリ領域は、示されているように重複している場合には一層大きい領域内に全体的に横たわる。例えば、メモリ領域３２０、３３０及び３４０は全てアドレス０ｘ１８００を含む。図３におけるそれぞれのメモリ領域の斜線部分の領域は、メンバ下位区分領域を表し、それに反し、メモリ領域の斜線部分でない領域は非メンバ下位区分領域を表す。物理的なメモリ・アドレス０ｘ１８００は、メモリ領域３２０及び３３０のメンバ下位区分領域に対応するが、メモリ領域３４０の非メンバ下位区分領域にも対応するということが分かる。重複メモリ領域は、異なったメモリ領域がデータ処理システムにおける物理的メモリ装置上に如何にマッピングされ得るかに関して柔軟性を高める。重複領域を効果的に管理するために、メモリ保護ユニット１３０は、固定の優先機構を適用して、与えられたメモリ部分に適用されるべきメモリ属性を限定する際にどのメモリ領域が優先権を取るべきかを決定し、ここに、与えられたメモリ部分は、複数のメモリ領域の１つ以上内に落ちる。特に、一層高い優先レベルを有するメモリ領域と関連した属性は、一層低い優先レベルを有するメモリ領域のためのそれらの属性に渡って優先権を取る。この例において、優先レベルは、メモリ保護ユニット１３０によって限定されたメモリ領域の配列に依存する。従って、図３の例においては、もしメモリ領域３２０がレベル０領域であり、メモリ・レベル３３０がレベル１領域であり、メモリ・レベル３４０がレベル２領域であり、そしてメモリ・レベル３５０がレベル３領域であるならば、次に、メモリ領域３２０及びメモリ領域３３０の双方がアドレス０ｘ１８００を含むメンバ下位区分領域を有するので、メモリ・レベル１すなわちメモリ領域３３０に対して特定される属性は、メモリ・レベル０すなわちメモリ領域３２０に対して特定されるメモリ属性に優先的に適用される、ということになる。
【００３１】
メモリの重複特性は、また、バックグランド領域を特定するためにも用いられ得る。例えば、メモリ保護ユニット１３０が、４ＧＢの全物理的なメモリ・アドレス空間を横切ってまばらに配分されている幾つかのメモリ領域を限定した場合を考慮してみる。もし、プログラミング・エラーが生じて、プロセッサが、限定されたメモリ領域のいずれの内にも落ちないメモリ・アドレスに対してアクセス要求を発行したならば、次に、メモリ保護ユニット１３０は、通常、そのメモリ・アクセスを打ち切るであろう。しかしながら、全物理的なメモリ・アドレス空間をカバーする４ＧＢのバックグランド領域であるようにレベル０におけるメモリ領域を限定することによって、メモリ・アクセスが他の特定されたメモリ領域のいずれにも落ちないならば、次に、アクセスは、ユーザがレベル０におけるメモリ領域のためのメモリ領域指示子にプログラミングしたデフォルト属性の組によって制御されるであろう。
【００３２】
図４Ａ及び４Ｂは、メモリ領域内の連続する下位区分領域を特定する際に本発明の技術によって提供される追加の柔軟性を概略的に示している。メモリ保護ユニット１３０によって履行されるメモリ領域のサイズ及びベース・アドレスに関する制約、すなわち、メモリ領域の開始アドレスがメモリ領域のサイズ２ｎの倍数であるという制約に起因して、既知のシステムにおいては、メモリ領域だけを特定するが、メモリ・下位区分領域が限定されるのを許容しないということは、任意のサイズのメモリ領域を割り付けることを可能としない。この状況は、アプリケーション・プロセスがサイズ２４ＫＢの物理的なメモリの連続ブロックの割付けを必要とするという、図４Ａの例によって示されている。しかしながら、メモリ保護ユニット１３０は、サイズ２４ＤＢのメモリ領域を割り付けるための柔軟性を有していなかったものであり、従って、２４ＫＢの全メモリ・ブロックを構成するために、２つのメモリ領域、すなわち長さにおいて１６ＫＢの第１のメモリ領域４１０、及び長さにおいて８ＫＢの第２のメモリ領域４２０を別々に割り付けることが必要であった。メモリの２４ＫＢの連続するブロックを割り付けるために２つのメモリ領域を別々に特定することと関連したオーバーヘッドは高く、その理由は、２つのメモリ領域の各々に対して属性を別々に特定しなければならないからである。
【００３３】
対照的に、図４Ｂは、メモリの２４ＫＢの連続するブロックが本発明の技術による装置によって如何に割り付けられるかを示す。メモリ領域を複数の下位区分領域に分割するための能力、並びに、（下位区分領域のメンバシップ値の適切なビットを用いて）メモリ領域の属性が該特定の下位区分領域に適用されるべきか否かをこれら下位区分領域の各々に対して特定するための能力のために、プロセスに単一の３２ＫＢ領域を割り付けることによって、かつ、該領域内の下位区分領域の幾つかをメンバ下位区分領域にセットし、残りの下位区分領域を非メンバ下位区分領域であるようにセットすることにより、物理的なメモリの２４ＫＢ部分を割り付けることが可能である。特に、図４Ｂの例においては、３２ＫＢのメモリ領域は、サイズにおいて各々４ＫＢの８つの等しい下位区分領域に分割される。従って、６つの連続する４ＫＢの下位区分領域をメンバ下位区分領域として割付け、かつ、残りの２つの４ＫＢの下位区分領域を非メンバ下位区分領域として割付けることによって、２４ＫＢのメモリ部分が容易に限定され得る。図４Ｂの単一の領域を用いて２４ＫＢの部分を限定することの利点は、メモリ属性が全３２ＫＢ領域と関連するということであり、従って、該メモリ属性は、３２ＫＢのメモリ領域の必要な２４ＫＢ部分だけに該メモリ属性が適用され得る、関連のメモリ領域指示子の下位区分領域フィールドを用いることによって、なお一度だけ限定され得る、ということである。
【００３４】
図５Ａから図５Ｃは、処理周辺機器の異なった組にメンバ下位区分領域の異なった組を割り付けることを概略的に示す。図５Ａは、処理ロジック１１０上で実行している第１のアプリケーション・プロセスのための全メモリ・マップを示し、他方、図５Ｂは処理ロジック１１０上で実行している第２の異なったアプリケーション・プロセスのための全メモリ・マップを示す。これらのアプリケーション・プロセスは、ワード処理（ワープロ）アプリケーション、スプレッド・シート・アプリケーションまたはコンピュータ・ゲーム・アプリケーションのような処理アプリケーションに対応する。図５Ａから図５Ｃの例において、８つの周辺装置の全てがデータ処理装置１００によって与えられるという場合を考察する。代表的には、メモリの連続するブロックは、周辺装置の８つのすべてに割付けられる。しかしながら、図５Ａのプロセス１及び図５Ｂのプロセス２は、周辺装置の異なった下位区分セットに対してアクセス許可の異なった組を必要とする。例えば、図５Ａの第１のプロセスにおいては、メモリ・マップ部分５１４、５１６、５１８によってそれぞれ示されるように周辺機器Ｐ１、Ｐ３及びＰ５だけにアクセスを可能とすることが望まれる。この第１のアプリケーション・プロセスは、周辺機器Ｐ２、Ｐ４またはＰ６からＰ８の使用を許可しない。対照的に、図５Ｂの第２のアプリケーション・プロセスは、Ｐ１、Ｐ２及びＰ４である周辺機器の異なった下位区分セットへのアクセスを許可し、そして残りの周辺機器Ｐ３及びＰ５からＰ８へのアクセスを許可しない。図５Ａのメモリ・マップは、また、命令５１０に割り付けられたメモリのブロック、及びデータ記憶に割り付けられたメモリの第２のブロック５１２を示している。同様に、図５Ｂのメモリ・マップによって示されたアプリケーション・プロセスは、命令メモリ・ブロック５２０及び別のデータ・メモリ・ブロック５２２を備えている。各データ記憶メモリ・ブロック５１２、５２２、並びに命令メモリ・ブロック５１０及び５２０の各々は、１つ以上のメモリ領域を含み得る。第２のアプリケーションの命令メモリ５２０は、第１のアプリケーションの命令メモリ５１０とは重複しない。
【００３５】
メモリ保護ユニットを備えた既知のシステムにおいては、周辺装置の異なった下位区分セットへのアクセスを、異なったアプリケーション・プロセスに提供するための要件は、各周辺装置にそれぞれのメモリ領域を別々に割り付けることによって適応される。代表的には、８から１６までのメモリ領域が与えられるので、データ処理装置は、大きいグループの周辺機器及び異なった処理アプリケーションの異なった要件を適応することを試みる際、利用可能なメモリ領域の外で迅速に実行することができる。
【００３６】
しかしながら、本発明の技術によれば、それぞれのメモリ領域をそれぞれの周辺装置に個々に割り付けるための要件は便宜的に回避され、その理由は、それが各メモリ領域に対して個々の下位区分領域を限定することの柔軟性を提供するからである。さらに、各下位区分領域は、領域に関連したメモリ属性が活動的に適用されるメンバ下位区分領域か、または、該領域と関連したメモリ属性が活動的に適用されない非メンバ下位区分領域かのいずれかを指定され得る。従って、合計で８つの周辺装置を有する図５Ａから図５Ｃのシステムにおいて、図５Ｃに示されるメモリ領域は、便宜的に８つの下位区分領域に副分割され、それにより、各下位区分領域は、与えられた周辺装置と関連され得る。このように、図５Ａのメモリ・マップに示されたアプリケーション・プロセスにおいて、周辺機器Ｐ１、Ｐ３及びＰ５だけへのアクセスを許容する要件は、単一のメモリ領域を使用して、かつ、メンバ下位区分領域としてＰ１、Ｐ３及びＰ５と関連する下位区分領域を特定することによって、しかし、非メンバ下位区分領域としてＰ２、Ｐ４及びＰ６からＰ８と関連する下位区分領域を特定することによって、適応され得る。同様に、周辺装置Ｐ１、Ｐ２及びＰ４へのアクセスが必要とされる図５Ｂに示された第２のアプリケーション・プロセスのメモリ・マップにおいては、これは、単一のメモリ領域を用いることによって、かつ、メンバ下位区分領域としてＰ１、Ｐ２及びＰ４と関連した下位区分領域を特定することによって、しかし、Ｐ３及びＰ６からＰ８と関連した下位区分領域を非メンバ下位区分領域と共に割り当てることを特定することによって、達成され得る。この方法で、周辺装置の異なった下位区分セットは、各周辺装置ごとにメモリ領域を消費することなく、異なったアプリケーション・プロセスによってアクセスされ得る。むしろ、単一のメモリ領域は、異なったプロセスのための周辺機器アクセス許可の異なった組を特定するために、下位区分領域のメンバ及び非メンバ特性と一緒に用いられ得る。
【００３７】
第１のプロセス及び第２のプロセス間の文脈切換えの場合において、メモリ保護ユニット１３０は、下位区分領域のいずれが該メモリ領域のためのメンバ・下位区分領域であるかを変更するために、各メモリ領域のために図２Ｂの下位区分領域フィールド２４０を更新するよう動作可能である。さらに、メモリ保護ユニット１３０は、また、文脈切換えから帰結するシステム・メモリへの需要に関する変更を適応させるよう、１つ以上のメモリ領域のための属性フィールド２３０を更新することもできる。
【００３８】
図６は、与えられた下位区分領域がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを特定する下位区分領域有効ビットを決定するよう動作可能な下位区分領域有効性ロジックの部分を概略的に示す。ロジック配列は、現在のアドレス・ワードを記憶するための第１のレジスタ６１０と、マスク・ワードを記憶するための第２のレジスタ６２０と、２７個のＡＮＤゲート６３０−５から６３０−３１までの組と、３つの論理ＯＲゲート６４２、６４４及び６４６の組と、下位区分領域メンバシップ値の置換ブロック６５０と、レジスタ６６０と、マルチプレクサ６７０とを備える。
【００３９】
レジスタ６１０は、処理ロジック１１０によって発生された３２ビットのアドレス・ワードを保持し、他方、レジスタ６２０は、現在のアドレス・ワードの関連のアドレス特定部分を識別するために用いられるアドレス・マスク・ワードを保持する。レジスタ６２０に記憶されたマスク・ワードは、図２Ｂのメモリ領域指示子に特定されたサイズ値２２０に依存する値を有する。ＡＮＤロジック・ゲート６３０−５から６３０−３１は、それぞれの選択ビットＳｉを計算するよう配列されている。ＡＮＤゲート６３０−５は、例えば、アドレス・ワード・レジスタ６１０の要素５から第１の入力を取り、マスク・ワード・レジスタ６２０の８番目の要素から第２の入力を取り、そしてマスク・ワード・レジスタ６２０の５番目のレジスタ要素に対応する第３の反転入力を取る。概して、ｉ＝５から３１までのための選択ビットＳｉは、次の式によって与えられる：Ｓｉ＝Ｍ（ｉ＋３）．Ａｉ．ＮＯＴ（Ｍｉ）．［ＳＩ＝Ｍｉ＋３．Ａｉ．ＮＯＴ（Ｍｉ）］。第１のＯＲゲートは、入力値として選択ビットＳ１０、Ｓ１３、Ｓ１６、Ｓ１９、Ｓ２２、Ｓ２５、Ｓ２８、Ｓ３１を受信する。第２のＯＲゲート６４４は、入力として選択ビットＳ６、Ｓ９、Ｓ１２、Ｓ１５、Ｓ１８、Ｓ２１、Ｓ２４、Ｓ２７及びＳ３０を取り、他方、第３のＯＲゲート６４６は、入力として選択ビットＳ５、Ｓ８、Ｓ１１、Ｓ１４、Ｓ１７、Ｓ２０、Ｓ２３、Ｓ２６及びＳ２９を受信する。このように、ＯＲゲート６４２、６４４及び６４６の各々は、３番目ごとの選択ビット出力が、与えられたＯＲゲートに供給されるＡＮＤゲート６３０−５から６３０−３１までによって出力される２７の選択ビットの下位区分セットを入力として受信する。ＯＲゲート６４２、６４４及び６４６の出力は、現在のアドレス・ワードに対応するメモリ場所が図５Ｃの８つの可能な下位区分領域のいずれに属するかを決定するために用いられる、Ｆ−ビットと示される最終選択ビットに対応する。ＡＮＤゲート６３０−５〜６３０−３１からの３番目ごとの選択ビットを含むグループを選択するために３つのＯＲゲート６４２、６４４及び６４６を用いれば、処理ロジックを簡単にし、その理由は、もしそうでない場合には、２４のマルチプレクサを含むアレイが必要とされるであろうからである。それぞれのＯＲゲート６４２、６４４及び６４６からの３つのＦ−ビットは、選択入力としてマルチプレクサ６７０に供給される。下位区分領域メンバシップ値の置換ブロック６５０は、関連のメモリ領域の下位区分領域の各々がメンバ下位区分領域であるかまたは非メンバ下位区分領域であるかを特定する８ビットの下位区分領域メンバシップ値及び図２Ｂのサイズ・フィールド２２０のサイズ値を入力として受信する。８ビットの下位区分領域メンバシップ値は、それがレジスタ６６０に書き込まれて、次に、マルチプレクサ６７０に入力として供給される前に、置換ブロック６５０によって置換される。
【００４０】
マルチプレクサ６７０の出力は、現在のアドレス・ワードが、メンバ下位区分領域に属するメモリ場所を表すか否かを特定する下位区分領域有効ビットである。置換ブロック６５０は、この例示的実施形態においては、ＯＲゲート配列６４２、６４４、６４６の性質に起因して必要とされ、このことは、これらのＯＲゲートから出力されるＦ−ビットが、８つの可能な下位区分領域のいずれに現在のメモリ・アドレスが対応するかを特定する３つのアドレス・ビットのオーダリング（順番付け）の置換を表し得るということを意味する。これを図７及び図８Ａから図８Ｂを参照して以下に一層完全に説明する。
【００４１】
図７は、選択ビット及びＦ−ビットが図６の回路においていかに計算されるかを示す例である。この単純化された例において、現在のアドレス・ワードは、８ビット・アドレス・ワードＡｉであり、ここに、ｉ＝０〜７であり、そして、同様に、マスク・ワードは、８ビット・マスク・ワードＭｉであり、ここに、ｉ＝０〜７である。セレクト・ビットＳｉ、ｉ＝０〜７、は、図６のＡＮＤゲート６３０−５〜６３０−３１の出力を表す。セレクト・ビットは、図７に示されるように式７１０によって特定され、３つのＦ―ビットの各々は、選択ビットの異なった１の論理的組み合わせから導出される。特に、第１のＦ−ビット、Ｆ０は、選択ビットＳ０、Ｓ３、及びＳ６上で行われる論理的ＯＲ演算によって与えられ、第２のＦ−ビット、Ｆ１は、ＳビットＳ１、Ｓ４、及びＳ７上で行われる論理的ＯＲ演算によって与えられ、そして、第３のＦ−ビット、Ｆ２は、入力Ｓ２及びＳ５を有する論理的ＯＲ演算によって与えられる。これは、図６の論理的ＯＲゲート６４２、６４４及び６４６によって行われる計算と類似しており、その理由は、図７の例におけるＦビットが、２つの介在するＳビットもしくは等価的に３番目ごとのＳ−ビットによって離間された選択ビットから計算され、他方、図６の回路においては、ＯＲゲートへの入力が３番目ごとの論理的ＡＮＤゲートから選択されるからである。
【００４２】
図８Ａ〜図８Ｄは、図７に与えられた式によるＦビットの計算の４つの特定的な例を与えるものである。これら４つの例の各々において、選択ビットＳｉは、式７１０に従って計算され、そして、非ゼロ選択ビットは、マスク・ワードＭの１のストリングの終りにすぐ続く最初の３つのビットに常に対応する。図８Ａの例においては、マスク・ワードは、４つの連続する１を有し、その後に最下位のビット位置における４つの連続するゼロが続く。選択ビットは、式７１０から計算され、それにより、例えばＳ１は、Ａ１  ＡＮＤ  Ｍ４  ＡＮＤ  （ＮＯＴ  Ｍ１）＝Ａ１  ＡＮＤ  １  ＡＮＤ  １＝Ａ１  に等しい。同様に、Ｓ０は、Ａ０  ＡＮＤ  Ｍ３  ＡＮＤ  （ＮＯＴ  Ｍ０）＝Ａ  ＡＮＤ  ０  ＡＮＤ  １＝０  に等しい。選択ワードの他のビットは、同様の方法で計算される。最終の選択ビットＦｉは、図７に与えられた式に従って計算され、それにより、Ｆ０＝Ｓ０  ＯＲ  Ｓ３  ＯＲ  Ｓ６＝０  ＯＲ  Ａ３  ＯＲ  ０＝Ａ３；Ｆ１＝Ｓ１  ＯＲ  Ｓ４  ＯＲ  Ｓ７＝Ａ１  ＯＲ  ０  ＯＲ  ０＝Ａ１；及びＦ２＝Ｓ２  ＯＲ  Ｓ５＝Ａ２  ＯＲ  ０＝Ａ２  である。図８Ｂ〜８Ｄのさらに３つの例のＦ−ビットは、同様の態様で計算される。３つのＦ−ビットは、一緒に、現在のアドレスが、８つの可能な下位区分領域のいずれの１つに属するかを特定する。しかしながら、図６のロジック回路を用いてＦ−ビットが計算される態様に起因して、与えられた領域内の関連の下位区分領域を特定するアドレス・ビットＡｉが置換され得る。Ｆ−ビットが実際に置換されるか否かを決定するために、ｌｏｇ２（サイズ）を決定するための計算が行われ、表記ｌｏｇ２（サイズ）％３によって示される３で除算するときのｌｏｇ２（サイズ）の残りは、再順番付けが実際に必要とされるか否かに関する指示を提供する。この計算は、ｌｏｇ２（サイズ）の値が実際にマスク・ワードに含まれるゼロの全数に対応するということを指摘することによって単純化される。従って、図８Ａの例においては、ｌｏｇ２（サイズ）＝４及び４％３の値は、１に等しい。残りの値が非ゼロであるので、このことは、下位区分領域を特定する３つのアドレス・ビットの正しい順番付けを回復するために特定の置換が必要とされるということを我々に教える。図８Ｂの例においては、マスク・ワードは、５つの連続する１を含み、その後に最下位ビット位置（the lowest order bit positions）において３つの連続するゼロが続く。この場合において、Ｆ−ビットＦ０、Ｆ１及びＦ２は、それぞれアドレス・ビットＡ０、Ａ１及びＡ２に対応する。図８Ｂのマスク・ワードには３つのゼロがあるので、ｌｏｇ２（サイズ）は、３に等しく、それにより、この場合における残りは０であり、そして置換は必要とされない。図８Ｃにおいて、マスク・ワードは、３つの連続する１を備え、その後に最下位のビット位置において５つの連続するゼロが続く。この場合において、図８Ａの場合におけるように、Ｆ−ビットは置換された順番で回復される。特に、Ｆ０、Ｆ１及びＦ２は、それぞれアドレス・ビットＡ３、Ａ４及びＡ２に等しい。この場合において、マスク・ワードは５つのゼロを有するので、ｌｏｇ２（サイズ）は５に等しく、そして３で除算されるときの残りは２に等し��、それにより置換が必要とされる。最後に、図８Ｄの例においては、マスク・ワードは２つの１によって形成され、その後に、最下位の６ビット位置において６つの連続するゼロが続き、そして、Ｆ−ビットは、ｌｏｇ２（サイズ）が６に等しいという事実によって示される置換されない順番で回復され、それにより３で除算されるときの残りはゼロに等しい。図８Ａ〜図８Ｄの例から、図６の回路から回復されたＦ−ビットは、与えられた現在のアドレス・ワードに対応する適切な下位区分領域を特定するアドレス・ビットの隔離を許容するということが分かる。しかしながら、Ｆ−ビットは、置換された順番でアドレス・ビットＡｉを特定する下位区分領域を表し得、それにより、この置換は、補償されなければならない。
【００４３】
図９Ａは、与えられた現在のアドレスが、メンバ下位区分領域である下位区分領域にあるか否かを決定するために用いられる下位区分領域有効ビットを計算するために用いられる第１の配列である。該配列は、下位区分領域メンバシップ値の記憶のための８ビット・レジスタ９１０と、下位区分領域メンバシップ値のビットを置換するための置換ロジック９２０のブロックと、下位区分領域有効ビットを出力するよう動作可能なマルチプレクサ９３０とを備える。この配列は、Ｆ−ビットの正しい順番を回復するための置換が、下位区分領域メンバシップ値上でまたはＦ−ビットそれら自体上でのいずれかで行われ得るという事実を利用している。図９Ａの配列は、レジスタ９１０における置換されない下位区分領域メンバシップ値を記憶し、そして置換ロジック９２０に下位区分領域メンバシップ値を供給し、ここで、８ビット下位区分領域メンバシップ値は、３で除算されるｌｏｇ２（サイズ）の残りに依存して置換される。置換ロジック９２０は、置換された下位区分領域メンバシップ値をマルチプレクサ９３０に出力する。置換されない順番におけるＦ−ビットは、選択ビットとしてマルチプレクサ９３０に供給され、それにより、マルチプレクサの出力は、与えられた下位区分領域がメンバ下位区分領域または非メンバ下位区分領域であるか否かを示す。Ｆ−ビットは、現在のアドレスが対応する８つの可能な下位区分領域の内の特定の下位区分領域を示し、それに反して、レジスタ９１０に記憶された下位区分領域有効値は、特定の下位区分領域がメンバ・下位区分領域であるか否かを示す。置換ロジック９２０は、ｌｏｇ２（サイズ）％３の値に依存して置換を行う。下位区分領域メンバシップ値は、残りが０である場合に置換されないままである。置換されない下位区分領域メンバシップ値がビット順番［７、６、５、４、３、２、１、０］を有するならば、次に、１の残りは、下位区分領域有効値のビット順番［７、３、６、２、５、１、３、０］に帰結し、それに反して、値２の残りは、［７、５、３、１、６、４、２、０］に帰結する。図９Ａの配列は、下位区分領域メンバシップ値が双方の場合において置換されるという点において図６の配列と類似している。しかしながら、図６の配列においては、置換は、下位区分領域メンバシップ値がレジスタ６６０に書き込まれる前に行われ、それに反して、図９Ａの例においては、下位区分領域有効値は、それがレジスタ９１０から読み出された後にかつそれがマルチプレクサ９３０に供給される前に置換される。
【００４４】
図９Ｂは、下位区分領域有効ビットの計算のための代替的な配列を示している。この配列は、図９Ａと同様に、８ビットの下位区分領域メンバシップ値を保持するためのレジスタ９１０と、マルチプレクサ９３０とを備えている。しかしながら、この特定の配列においては、下位区分領域メンバシップ値がレジスタ９１０から読み出された後に下位区分領域メンバシップ値のビットを置換するのでは無くむしろ、下位区分領域メンバシップ値は、マルチプレクサ９３０に置換されずに直接供給される。代わりに、Ｆ−ビットは、それらがマルチプレクサ９３０に供給される前に置換される。この置換は、Ｆ−ビット置換ブロック９４０によって行われる。Ｆ−ビット置換ブロック９４０は、入力として、置換されないＦ−ビットを受信し、そしてメモリ領域のサイズ、すなわち値ｌｏｇ２（サイズ）％３に従って置換を行う。置換の性質は図８Ａ〜図８Ｄに関して上述されている。再度、図９Ａと同様に、マルチプレクサ９３０の出力は、下位区分領域有効ビットである。
【００４５】
図１０は、下位区分領域有効ビットを計算するために、下位区分領域メンバシップ値を置換するための代替的な配列を概略的に示す。この配列においては、単一の置換ロジック・モジュール１０１０が、複数のメモリ領域の各々に対応する下位区分領域メンバシップ値を置換するために用いられる。図１０において、８ビットの下位区分領域メンバシップ値を保持するレジスタが、ブロック要素１０２２、１０２４、１０２６及び１０２８によって表されている。これら４つのレジスタのすべては書き込み可能化される。この配列は、８ビットの下位区分領域メンバシップ値を保持するレジスタのすべてに対応する下位区分領域有効値を置換するために、同じ置換ロジック・ブロックの効率的な再使用を提供する。
【００４６】
図１１は、現在のアドレス・ワードが対応する特定の下位区分領域に、与えられたメモリ領域と関連するメモリ属性が適用されるべきか否かを示す領域ヒット値を計算するために動作可能なロジック配列を概略的に示している。メモリ属性は、メンバ下位区分領域であるそれらの下位区分領域にのみ適用されることを思い起こされたし。該配列は、３つの３２ビット・レジスタ：現在のアドレス・ワード・レジスタ１１００；ベース・アドレス・レジスタ１１１０；及びマスク・ワード・レジスタ１１２０、を備えている。該配列は、また、一連の２７の排他的ＯＲ（ＸＯＲ）ゲート１１３０、一連の２７の論理ＡＮＤゲート１１４０及び論理ＮＯＲゲート１１５０を備えている。現在のアドレス・ワード１１００のビットをＡｉで示し、ここに、ｉは０〜３１の範囲における整数であり、そしてベース・アドレス１１１０のビットをＢｉで示せば、次に、一連のＸＯＲゲート１１３０は、ｉ＝５〜３１に対して計算  Ａｉ  ＸＯＲ  Ｂｉ  を行うということが分かる。一連のＡＮＤゲートは、第１の入力として、それぞれのＸＯＲゲート１１３０の出力を、そして第２の入力として、マスク・ワードＭｉの対応ビットを受信する。従って、ＡＮＤゲート１１４０によって行われる論理演算は、ｉ＝５〜３１に対して（Ａｉ  ＸＯＲ  Ｂｉ）ＡＮＤ  Ｍｉである。一連のＡＮＤゲート１１４０の２７の出力は、ＮＯＲゲート１１５０に入力として供給される。ＮＯＲゲート１１５０へのさらなる入力は、図６の配列によって計算された下位区分領域有効ビットである。下位区分領域有効ビットのさらなる入力無しで、図１１の配列は、与えられたベース・アドレスと関連したメモリ領域に現在のアドレスが対応するか否かを示すために用いられる非ロジック回路に対応する。しかしながら、下位区分領域有効ビット入力１１６０を含めれば、この回路の機能を変え、それにより、それは、現在のアドレス・ワードが特定のベース・アドレス１１１０と関連したメモリ領域内にあるアドレスを表すということ、並びに、現在のアドレスが対応する特定の下位区分領域がメンバ下位区分領域であるということ、の双方を示す。もし、下位区分領域有効ビットの値が１ならば、次に、その値は、ＮＯＲゲート１１５０からの１の出力に対応する領域ヒットを達成するよう、ＮＯＲゲートへの入力上で反転されるので、下位区分領域有効ビットは１の入力値を有するべきであることが必要である。
【００４７】
本発明の図示した実施形態を添付図面を参照してここに詳細に説明してきたけれども、本発明は、それらの詳細な実施形態に制限されるものでは無く、種々の変化及び変更が、特許請求の範囲によって限定される本発明の範囲並びに精神から逸脱することなく、当業者によって行なわれ得るということを理解すべきである。
【図面の簡単な説明】
【００４８】
【図１】メモリ保護ユニットを有するデータ処理システムを概略的に示す図である。
【図２Ａ】既知のメモリ保護ユニットのメモリ領域の記述子を概略的に示す図である。
【図２Ｂ】下位区分領域フィールドを有する本発明によるメモリ記述子を概略的に示す図である。
【図３】重複メモリ領域を割り付けるよう動作可能なメモリ保護ユニットの異なったメモリ領域を概略的に示す図である。
【図４Ａ】異なったサイズのメモリ・ブロックを特定するための２つの別個のメモリ領域の割付けを概略的に示す図である。
【図４Ｂ】図４Ａによって特定された同じメモリ・ブロックを特定するよう本発明による技術によって単一のメモリ領域が如何にして用いられるかを概略的に示す図である。
【図５Ａ】データ処理システム上で実行している異なったアプリケーション・プロセスによる異なった周辺装置へのアクセスのメモリ管理を概略的に示す図である。
【図５Ｂ】データ処理システム上で実行している異なったアプリケーション・プロセスによる異なった周辺装置へのアクセスのメモリ管理を概略的に示す図である。
【図５Ｃ】データ処理システム上で実行している異なったアプリケーション・プロセスによる異なった周辺装置へのアクセスのメモリ管理を概略的に示す図である。
【図６】下位区分領域有効ビットを計算するよう動作可能であるロジックを概略的に示す図である。
【図７】図６の回路素子の出力に対応する値を計算するために用いられる式を示す図である。
【図８Ａ】図６の回路の計算例を示す図である。
【図８Ｂ】図６の回路の計算例を示す図である。
【図８Ｃ】図６の回路の計算例を示す図である。
【図８Ｄ】図６の回路の計算例を示す図である。
【図９Ａ】下位区分領域メンバシップ値を置換するためのロジックを備えた下位区分領域有効ビットを計算するために用いられる回路の部分を概略的に示す図である。
【図９Ｂ】最終選択ビットを置換するよう動作可能な置換ロジックを有する下位区分領域有効ビットを計算するために動作可能な回路の部分を概略的に示す図である。
【図１０】複数の異なったメモリ領域の下位区分領域メンバシップ値を置換するよう動作可能な置換ロジックの単一のブロックを概略的に示す図である。
【図１１】メンバ下位区分領域のための領域ヒットを決定するよう動作可能なロジックの部分を概略的に示す図である。
【符号の説明】
【００４９】
１００      データ処理装置
１０５      バス
１１０      処理ロジック
１２０      メモリ
１３０      メモリ保護ユニット
１４０      メモリ属性
１５０      メモリ領域
１６０−１〜１６０−８      下位区分領域
１６０−２、１６０−６      メンバ下位区分領域
９１０      レジスタ
９２０      置換ロジック
９３０      マルチプレクサ
９４０      置換ブロック
【図１】
2008527483.tif 000003
【図２Ａ】
2008527483.tif 000004
【図２Ｂ】
2008527483.tif 000005
【図３】
2008527483.tif 000006
【図４Ａ】
2008527483.tif 000007
【図４Ｂ】
2008527483.tif 000008
【図５Ａ】
2008527483.tif 000009
【図５Ｂ】
2008527483.tif 000010
【図５Ｃ】
2008527483.tif 000011
【図６】
2008527483.tif 000012
【図７】
2008527483.tif 000013
【図８Ａ】
2008527483.tif 000014
【図８Ｂ】
2008527483.tif 000015
【図８Ｃ】
2008527483.tif 000016
【図８Ｄ】
2008527483.tif 000017
【図９Ａ】
2008527483.tif 000018
【図９Ｂ】
2008527483.tif 000019
【図１０】
2008527483.tif 000020
【図１１】
2008527483.tif 000021
【国際調査報告】
2008527483.tif 000022
2008527483.tif 000023