(57)【特許請求の範囲】
【請求項１】
各メモリロケーションが対応するアドレスを有する、データ値を記憶するための複数個の当該メモリロケーションを持つメモリへのアクセスを制御するためのデータ処理装置であって、
前記メモリ内の複数個の論理領域のアドレス範囲を同定する情報を記憶するためのアドレス範囲記憶装置と、
各論理領域に対して、前記論理領域内のメモリロケーションへのアクセスを制御するために用いられる属性を記憶するための属性記憶装置と、
前記メモリロケーションの１つに対応する、処理装置によって与えられるアドレスを、前記複数個の論理領域のアドレス範囲と比較し、１つ以上の論理領域が前記アドレスを含んでいる場合には、前記アドレスを含んでいるこれらの論理領域を示す信号を発生するための、アドレス比較器論理回路と、
そのアドレス比較器論理回路によって発生される信号に応答して、前記アドレスを含んでいるどの論理領域が最高の優先順位を有しているかを判定し、アドレスによって特定されるメモリロケーションへのアクセスを制御する際に使用するためのその最高優先順位に対応する属性を属性記憶装置に出力するために、所定の優先順位判定規準を与えるための属性判定論理回路から構成され、前記論理領域の１つが全メモリをカバーしかつ前記論理領域の最低優先順位を有するバックグラウンド領域であり、それによって、プロセッサによって与えられるアドレスが他の論理領域のいずれにも存在しないメモリロケーションに対応している場合には、バックグラウンド領域と関連付けられた属性を出力するように、前記属性判定論理回路が構成されていることを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、前記論理領域のアドレス範囲が、どのメモリロケーションで該領域が始まるかを同定するベースアドレスと、論理領域の大きさを同定するサイズ属性によって特定されることを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、大きさＸのメモリ領域が値Ｘの倍数であるベースアドレスを持つ必要があるように、前記ベースアドレスがサイズ属性の関数として決定されることを特徴とするデータ処理装置。
【請求項４】
請求項２または３に記載のデータ処理装置において、前記ベースアドレスとサイズ属性が、利用者によってプログラム可能であることを特徴とするデータ処理装置。
【請求項５】
請求項１に記載のデータ処理装置において、前記論理領域のアドレス範囲が、論理領域の始りと終わりを同定するスタートアドレスとエンドアドレスによって特定されることを特徴とするデータ処理装置。
【請求項６】
請求項５に記載のデータ処理装置において、前記スタートアドレスとエンドアドレスが、利用者によってプログラム可能であることを特徴とするデータ処理装置。
【請求項７】
請求項１から６のいずれかに記載のデータ処理装置において、前記アドレス比較器論理回路が、各アドレス範囲に対して１個の、多数の比較器から構成されていることを特徴とするデータ処理装置。
【請求項８】
請求項１から７のいずれかに記載のデータ処理装置において、前記アドレス範囲記憶装置が、多数のレジスタから構成されていることを特徴とするデータ処理装置。
【請求項９】
請求項７に記載のデータ処理装置において、前記アドレス範囲記憶装置が多数のレジスタから構成されており、別々のレジスタが各比較器と関連付けられていることを特徴とするデータ処理装置。
【請求項１０】
請求項１から９のいずれかに請求項のいずれかに記載のデータ処理装置において、前記属性記憶装置が、マルチプレクサに接続された複数個の属性レジスタを備え、各レジスタは論理領域の属性を含み、さらに、マルチプレクサに前記アドレスを含む最大優先順位領域に対応する属性レジスタから属性を出力させるために、前記属性判定論理回路がマルチプレクサに信号を出力することを特徴とするデータ処理装置。
【請求項１１】
請求項１から１０のいずれかに記載のデータ処理装置において、前記アドレス比較器論理回路が複数個の出力を有し、１個の出力が各論理領域に与えられ、さらに、対応の論理領域が前記アドレスを含むかどうかを示すための信号が、前記出力に発生され、前記属性判定論理回路が、前記複数個の出力からの信号を受信するための、対応の複数個の入力を有し、該複数個の入力が、所定の優先順位規準を適用するため、前記属性判定論理回路によって使用される相対優先順位を有することを特徴とするデータ処理装置。
【請求項１２】
請求項１から１０のいずれかに記載のデータ処理装置において、前記所定の優先順位基準が、前記論理領域の相対優先順位を特定する優先順位情報を、前記属性判定論理回路によってアクセス可能な記憶装置に優先順位情報として記憶されることを特徴とするデータ処理装置。
【請求項１３】
請求項１から１２のいずれかに記載のデータ処理装置において、さらに、プロセッサによって要求されるデータ値が記憶される、またはプロセッサコアによって処理されるデータ値が記憶されるべき、前記メモリ内のメモリロケーションに対応するアドレスを与えるためのプロセッサコアを備えていることを特徴とするデータ処理装置。
【請求項１４】
請求項１３に記載のデータ処理装置において、さらに、前記プロセッサコアによってアクセス可能なデータ値を記憶するためのキャッシュを備えていることを特徴とするデータ処理装置。
【請求項１５】
請求項１４に記載のデータ処理装置において、命令を記憶するために第１のキャッシュが設けられ、さらにデータを記憶するために第２のキャッシュが設けられており、前記アドレス比較器論理回路および属性判定論理回路が、前記第１および第２のキャッシュのそれぞれに対して複写されることを特徴とするデータ処理装置。
【請求項１６】
各メモリロケーションが対応するアドレスを有する、データ値を記憶するための複数の当該メモリロケーションを持つメモリへのアクセスを制御するためのデータ処理装置を動作させる方法であって、該方法が、
（ａ）  前記メモリ内の複数個の論理領域のアドレス範囲を同定する情報を記憶するステップと、
（ｂ）  各論理領域に対して、前記論理領域内のメモリロケーションへのアクセスを制御するために用いられる属性、を記憶するためのステップと、
（ｃ）  前記メモリロケーションの１つに対応する、処理装置によって与えられるアドレスを、前記複数個の論理領域のアドレス範囲と比較するステップと、
（ｄ）  １つ以上の論理領域が前記アドレスを含んでいる場合には、前記アドレスを含んでいるこれらの論理領域を示す信号を発生するステップと、
（ｅ）  前記ステップ（ｄ）で発生される信号に応答して、前記アドレスを含んでいるどの論理領域が最高の優先順位を有しているかを判定するために、所定の優先順位判定規準を適用するステップと、
（ｆ）  アドレスによって特定されるメモリロケーションへのアクセスを制御する際に使用するため、最高の優先順位領域に対応する記憶された属性を出力するステップから構成され、
前記論理領域の１つが全メモリをカバーしかつ前記論理領域の最低優先順位を有するバックグラウンド領域であり、それによって、前記ステップ（ｄ）で発生される信号が、プロセッサによって与えられるアドレスが他の論理領域のいずれにも存在しないメモリロケーションに対応していることを示す場合には、前記ステップ（ｆ）で、バックグラウンド領域と関連付けられた記憶された属性が出力されるようになっていることを特徴とする動作方法。
【発明の詳細な説明】
発明の分野
本発明は、データ値を記憶するための複数個のメモリロケーションを有するメモリをアクセスするためのデータ処理装置および方法に係り、特に、メモリアクセスを保護するようなデータ処理装置および方法に関する。「データ値」という用語は、ここでは、データ語などデータの項目すなわちブロックと、命令の両方を参照している。
従来技術の説明
メモリを多数の分割論理領域にセグメント化すること、およびそれらのメモリ領域へのアクセスを制御するために、それらの領域のそれぞれに対して保護属性を特定すること、例えば、それらの領域がスーパバイザモードでのみアクセス可能であるかどうか、キャッシュベースシステムにおいてそれらの領域がキャッシュ可能、バッファ可能であるかどうかなどを特定することは既知である。それゆえ、プロセッサが特定のメモリ領域内に入るメモリアドレスを発生する場合には、現在の動作モードにあるプロセッサがそのメモリアドレスをアクセスする権利を与えられているかどうかを判定し、かつそのメモリ領域から取り込まれるデータ値がキャッシュ可能であるかどうか、そのメモリ領域に書き込まれるデータ値がバッファ可能であるかどうかなどを判定するために、その領域の保護属性が使用される。度々、しかし排他的ではないが、そのような保護機構は、仮想−物理アドレス変換との関連して仮想メモリシステム内で使用される。
大抵の装置では、論理領域を定義するために与えられるフレキシビリティが制限される。幾つかの技術は、１ｋｂ、２ｋｂおよび４ｋｂ領域など、幾つかの異なる大きさの領域を与えることによって、幾分フレキシビリティを改善しているが、論理領域は、典型的には、例えば４ｋｂ領域などの固定の大きさである。典型的には、異なる大きさの領域が与えられる場合、それらのアドレスを含んでいる論理領域を判定するためにアドレスを比較するのに必要なハードウエアが、それらの領域が２のべき乗だけ変化する大きさに抑制される場合、多少複雑でなくなるので、それらの領域は２のべき乗だけ変化する大きさに抑制されることになる。
上述の方法を用いると、メモリの利用者エリア、およびメモリのスーパバイザエリアを特定することが可能である。例えば、４ｋｂの固定された大きさの論理領域が与えられ、そのシステムが４ｋｂのスーパバイザコードおよび１２ｋｂの利用者コードを要求する場合を考えると、それらの両方が１６ｋｂＲＡＭにマップ化される必要がある。これを達成するために、４個の論理領域、すなわち、スーパバイザコード用に１個の４ｋｂ領域および利用者コード用に３個の４ｋｂ領域が定義される必要がある。
上述の従来技術において必要とされるものよりも少ない領域を定義し、それによってシステムのフレキシビリティを改善する一方で、上記の機能を与えることが望まれる。
ヨーロッパ特許公開公報ＥＰ−Ａ−０，７００，００２には、マイクロプロセッサのモジュラーチップ選択制御回路が記載されている。そのチップ選択回路は、メモリのサブブロックがオーバラップするかまたは主ブロックの境界内に完全に存在するように、オーバラップメモリマップを作成することができる。メモリの各ブロックに対してデコーダが使用され、デコーダの出力を受信しかつチップイネーブル信号などの外部制御信号を作動させるかどうか優先順位機構に基づいて判定するために、優先順位実施回路が設けられている。
ヨーロッパ特許公開公報ＥＰ−Ａ−０，６５６，５９２には、１つの動作モードを有し、変換属性ビットが、第１のトランスペアレント変換レジスタ（ＴＴＲ）、第２のＴＴＲ、またはデフォールトロケーションのいずれか１つから与えられる、メモリ管理ユニット（ＭＰＵ）が記載されている。それらのＴＴＲは、異なるアドレス空間および異なるアドレスメモリサイズをそれぞれマップ化することができ、デフォールトロケーションは、それらのＴＴＲの１つによってマップ化されないすべてのメモリをカバーする。
米国特許公報ＵＳ−Ａ−３，８２７，０２９には、ハードウエアメモリバイオレーション保護サブシステムがハードウエアオプションとしてコンピュータシステムに付加されるように設計されている、小型のデジタルコンピュータシステムが記載されている。
発明の要約
第１の観点から見て、本発明は、各メモリロケーションが対応するアドレスを有する、データ値を記憶するための複数個の当該メモリロケーション、を持っているメモリへのアクセスを制御するためのデータ処理装置を提供する。この装置は、前記メモリ内の複数個の論理領域のアドレス範囲を同定する情報を記憶するためのアドレス範囲記憶装置と、各論理領域に対して、前記論理領域内のメモリロケーションへのアクセスを制御するために用いられる属性を記憶するための属性記憶装置と、前記メモリロケーションの１つに対応する、処理装置によって与えられるアドレスを、前記複数個の論理領域のアドレス範囲と比較し、１つ以上の論理領域が前記アドレスを含んでいる場合には、前記アドレスを含んでいるこれらの論理領域を示す信号を発生するための、アドレス比較器論理回路と、そのアドレス比較器論理回路によって発生される信号に応答して、前記アドレスを含んでいるどの論理領域が最高の優先順位を有しているかを判定し、アドレスによって特定されるメモリロケーションへのアクセスを制御する際に使用するためのその最高優先順位に対応する属性を属性記憶装置に出力するために、所定の優先順位判定規準を与えるための属性判定論理回路から構成され、前記論理領域の１つが全メモリをカバーしかつ前記論理領域の最低優先順位を有するバックグラウンド領域であり、それによって、プロセッサによって与えられるアドレスが他の論理領域のいずれにも存在しないメモリロケーションに対応している場合には、バックグラウンド領域と関連付けられた属性を出力するように、属性判定論理回路が構成される。
本発明によれば、オーバラップしている論理領域が定義され、相対優先順位が各論理領域に割り当てられる。処理装置が２つ以上の論理領域内にあるアドレスを特定する場合には、どの論理領域が最高の優先順位を持つかを判定するために優先順位規準が使用される。各論理領域は、論理領域内のメモリロケーションへのアクセスを制御するために使用される、その領域に対して特定される多数の属性を持つことになる。どの領域が最高の優先順位を持つかの判定に基づいて、その最大優先順位領域に対する属性が、プロセッサによって特定される特定メモリへのアクセスを制御するために使用される。
前述の例を参照する。１６ｋｂＲＡＭ内に４ｋｂのスーパバイザコードと１２ｋｂの利用者コードを与えることが望ましい場合にも、スーパバイザコードに対して４ｋｂ領域を、そして利用者コードに対して１６ｋｂ領域の２つのオーバラップ領域を与えることによって、本発明によって達成される。スーパバイザ領域は、利用者領域よりも高い優先順位を持つように定義される。したがって、４ｋｂオーバラップ領域をアクセスするどのような試みもスーパバイザ領域と関連付けられた属性によって管理されることが保証される。それゆえ、本発明によれば、従来技術によって定義される４つの領域ではなく、この例では２つの領域が定義される必要があるだけである。
好適な実施例では、前記論理領域の１つが、全メモリをカバーしかつ前記論理領域の最低優先順位を有するバックグラウンド領域として使用され、それによって、プロセッサによって与えられるアドレスが、他のいずれの論理領域内にも存在しないメモリロケーションに対応する場合には、該バックグラウンド領域と関連付けられた属性が該アドレスによって特定されるメモリロケーションへのアクセスを制御するために使用される。
定義されるメモリロケーションがメモリのアドレス空間を完全に満たさず、それゆえ、アドレスマップに「穴」があることになる可能性がある。しかし、全メモリをカバーするため最低優先順位領域を構成し、その論理メモリ領域に対して適当な属性を特定することによって、アクセスが穴に対してなされる場合でも何が起こっているかを定義することが可能である（例えば、その属性は、フルアクセスかノーアクセスに設定される）。
好適な実施例では、論理領域のアドレス範囲が、領域が開始されるメモリロケーションを同定するベースアドレス、および前記論理領域の大きさを同定するサイズ属性によって特定される。好適な実施例では、大きさXのメモリ領域が値Xの倍数であるベースアドレスを有する必要があるように、前記ベースアドレスがサイズ属性の関数として決定される。この方法は、ハードウエア構成を簡単にするのに役立つ。ベースアドレスとサイズ属性は、典型的には、利用者によってプログラム可能である。ベースアドレスとサイズ属性を使用することの代替案として、論理領域のアドレス範囲を、論理領域の始めと終わりを同定するスタートアドレスおよびエンドアドレスによって特定するようにしても良い。
アドレス比較器論理回路は、いかなる適切な方法でも構成され得る。好適な実施例では、アドレス比較器論理回路が、各アドレス範囲に対して１個の、多数の比較器から構成されている。
アドレス範囲記憶装置は、いかなるアドレス範囲記憶装置であっても良い。しかし、好適な実施例では、アドレス範囲記憶装置が、多数のレジスタから構成されている。好適には、分割レジスタがアドレス比較器論理回路の各比較器と関連付けられている。
属性記憶装置は、いかなる適切な形態をも取り得る。しかし、好適な実施例では、属性記憶装置が、マルチプレクサに接続された複数個の属性レジスタを備え、各レジスタは論理領域の属性を含み、さらに、マルチプレクサに前記アドレスを含む最大優先順位領域に対応する属性レジスタから属性を出力させるために、前記属性判定論理回路がマルチプレクサに信号を出力するようになっている。
好適な実施例では、前記アドレス比較器論理回路は複数個の出力を有し、１個の出力が各論理領域に与えられ、さらに、対応の論理領域が前記アドレスを含むかどうかを示すための信号が、前記出力に発生され、前記属性判定論理回路が、前記複数個の出力からの信号を受信するための、対応の複数個の入力を有し、該複数個の入力が、所定の優先順位規準を与えるため、前記属性判定論理回路によって使用される相対優先順位を有する。
しかし、所定の優先順位規準を与えるために、代替技術が使用され得ることは理解されるであろう。例えば、前記所定の優先順位基準は、前記論理領域の相対優先順位を特定する優先順位情報を、前記属性判定論理回路によってアクセス可能な記憶装置に優先順位情報として記憶され得る。
好適な実施例では、データ処理装置は、さらに、プロセッサによって要求されるデータ値が記憶される、またはプロセッサコアによって処理されるデータ値が記憶されるべき、前記メモリ内のメモリロケーションに対応するアドレスを与えるためのプロセッサコアを備えている。さらに、データ処理回路は、前記プロセッサコアによってアクセス可能なデータ値を記憶するためのキャッシュを備えている。そのような装置では、効率を改善するため、最大優先順位領域の属性の判定が、好ましくは、キャッシュ検索が行われている間になされる。
命令とデータの両方を記憶するため、単一のキャッシュが設けられる。そのようなキャッシュは、度々フォン・ノイマン・アーキテクチャを持つと言われる。しかし、代替案として、命令を記憶するために第１のキャッシュを設け、さらにデータを記憶するために第２のキャッシュを設けても良い。そのようなキャッシュは、度々ハーバード・アーキテクチャを持つと言われ、前記アドレス比較器論理回路および属性判定論理回路が、前記第１および第２のキャッシュのそれぞれに対して複写される。それゆえ、好適には、別々のデータおよび命令キャッシュを用いるとき、メモリへのアクセスを制御するために使用される属性を判定するために要求されるデータ処理回路の要素が、各キャッシュに対して複写される。前に述べたように、最高優先順位領域の属性の判定は、キャッシュ検索が行われている間になされるのが好ましい。２つのキャッシュがある場合には、データキャッシュ内の検索動作は、命令キャッシュ内の検索動作が行われている間にも生ずる。それゆえ、命令キャッシュとデータキャッシュの両方における検索動作に対応するメモリアドレスをアクセスために使用されるべき属性を判定するために、２組の回路網が必要である。
第２の観点から見て、本発明は、各メモリロケーションが対応するアドレスを有する、データ値を記憶するための複数の当該メモリロケーションを持つメモリへのアクセスを制御するためのデータ処理装置を動作させる方法を提供する。この方法は、（ａ）前記メモリ内の複数個の論理領域のアドレス範囲を同定する情報を記憶するステップと、（ｂ）各論理領域に対して、前記論理領域内のメモリロケーションへのアクセスを制御するために用いられる属性、を記憶するためのステップと、（ｃ）前記メモリロケーションの１つに対応する、処理装置によって与えられるアドレスを、前記複数個の論理領域のアドレス範囲と比較するステップと、（ｄ）１つ以上の論理領域が前記アドレスを含んでいる場合には、前記アドレスを含んでいるこれらの論理領域を示す信号を発生するステップと、（ｅ）前記ステップ（ｄ）で発生される信号に応答して、前記アドレスを含んでいるどの論理領域が最高の優先順位を有しているかを判定するために、所定の優先順位判定規準を適用するステップと、（ｆ）アドレスによって特定されるメモリロケーションへのアクセスを制御する際に使用するため、最高の優先順位領域に対応する記憶された属性を出力するステップから構成され、さらに、前記論理領域の１つが全メモリをカバーしかつ前記論理領域の最低優先順位を有するバックグラウンド領域であり、それによって、前記ステップ（ｄ）で発生される信号が、プロセッサによって与えられるアドレスが他の論理領域のいずれにも存在しないメモリロケーションに対応していることを示す場合には、前記ステップ（ｆ）で、バックグラウンド領域と関連付けられた記憶された属性が出力されるようになっている。
【図面の簡単な説明】
以下、添付図面を参照しながら、例示によってのみ本発明の実施例について説明する。これらの図において、同一の符号は同一の特徴に対して使用されている。
図１は、本発明の好適な実施例に係るデータ処理装置を表しているブロック図である。
図２は、本発明の好適な実施例に係る、メモリ内の異なる大きさの論理領域が５ビットのサイズフィールドによってどのように特定されるかを表している表である。
図３は、図１のメモリへのアクセスを制御するために使用される属性を決定するために、本発明の好適な実施例によって実行される処理ステップを説明しているフロー図である。
図４Ａおよび図４Ｂは、分割されたデータおよび命令が使用されている、本発明の実施例を説明する図である。
発明を実施するための最良の形態
図１のブロック図を参照して、本発明の好適な実施例に係るデータ処理回路について説明する。図１に示されるように、データ処理回路は、メモリ１２０から受け取った命令を処理するように構成されたプロセッサコア１０を有する。それらの命令を実行するための、プロセッサコア１０によって要求されるデータもまた、メモリ１２０から取り込まれる。キャッシュ３０は、メモリ１２０から取り込まれるデータおよび命令を記憶するためのものであり、プロセッサコア１０によって容易にアクセス可能になっている。また、キャッシュ３０への命令およびデータの蓄積を制御すると共に、キャッシュからのデータおよび命令の取り込みを制御するため、キャッシュ制御ユニット４０が設けられている。
本発明の好適な実施例では、メモリ１２０内に、各論理領域が独立してプログラム可能なサイズを有する、複数個の論理領域が定義される。好適な実施例を説明するため、４GBのアドレス空間を有するメモリ１２０を考える。また、８個の論理領域が、メモリアドレス空間内に定義されるものと仮定する。明らかに、メモリの実際の大きさ、および定義可能な論理領域数が、データ処理装置の特別な要求に合うように変更され得ることは、当業者にとって明白であろう。
各論理領域は、好適には、その領域がメモリ内で始まる場所およびその論理領域の大きさを定義するサイズフィールドを特定するところのベースアドレスによって定義される。（後で詳細に説明される）保護ユニット内の比較器のハードウエア要求を簡単化するために、ベースアドレスは、「サイズ」境界に対応する必要があるという制限が課せられる。そのため、例えば、１MBの大きさを有する論理領域は、メモリ内の１MB境界に対応するベースアドレスで始まるように構成されることになる。好適な実施例では、ベースアドレスに課せられるこの制限は必須のものではなく、保護ユニット内により一層複雑なハードウエアを与えることによって、ベースアドレスをサイズ境界以外のメモリロケーションで開始させることが可能であろうことは、当業者によって理解されるであろう。
好適な実施例では、論理領域の大きさは、４KBから４GBの範囲内で選択される。しかし、この範囲選択は、所望に応じて変更可能であることは理解されるであろう。図２は、５ビットフィールドを有するサイズレジスタが、どのように異なるメモリサイズに対してプログラムされるかを示している表である。図２に示された例においては、その大きさが２のべき乗だけ変化する。しかし、その大きさが２のべき乗だけ変化するように限定される必要性はなく、より一層大きなビット数を有するサイズレジスタを与えることによって、各領域の大きさのプログラミングに付加的フレキシビリティを与えることが可能であることは、当業者によって理解されよう。
ベースおよびサイズレジスタの使用に対する代替案として、論理領域を定義するためにスタートおよびエンドレジスタが使用され得る。そのような場合、各論理領域の始めと終わりの実際のアドレスに対応している情報は、領域のサイズやベースアドレスではなく、レジスタに記憶される。
上述のように、論理領域を、ベースおよびサイズレジスタまたはスタートおよびエンドレジスタのいずれかを用いて定義することによって、利用者は、メモリ内で論理領域をオーバラップさせるようにプログラムすることができる。本発明の好適な実施例では、各論理領域が、それと関連した、保護、記憶可能でかつバッファ可能な属性などの、独立の属性を持つことになる。論理領域をオーバラップさせる可能性が与えられた場合、メモリへのどのようなアクセスも予測可能な方法で行われることが明らかに重要である。好適な実施例では、これは図１で説明された保護ユニット２０を用いて達成される。この保護ユニットの動作についてさらに詳細に説明する。
プロセッサコア１０が、データ項目または命令を要求すると（今後、命令またはデータは、ともにデータ値として参照する）、そのプロセッサコアは、そのデータ値のメモリアドレスをプロセッサバス５０のバスライン５４に載せる。さらに、そのプロセッサコア１０は、プロセッサ制御信号をバスライン５２に発生する。そのプロセッサ制御信号は、アドレスが、読み書き要求、アクセスの型（例えば、シーケンシャル）、アクセスの大きさ（例えば、語、バイト）、プロセッサの動作モード（例えば、スーパーバイザまたは利用者）など、に対応するかどうかなどの情報を含む。このプロセッサ制御信号は、キャッシュ制御ユニット４０によって受信され、要求されたデータ値がキャッシュ３０内に記憶されるかどうかを判定するよう、キャッシュ制御ユニット４０に指示を与える。そのキャッシュ制御ユニット４０は、アドレスに対応するデータがキャッシュ内に記憶されるかどうかを判定するために、バスライン５４上のアドレスをキャッシュ内のアドレスと比較するように、キャッシュ３０に命令を与える。もし、そうであれば、データ値がキャッシュ３０からデータバス上に出力され、その時点でそれがプロセッサコア１０によって読み出される。そのアドレスに対応するデータ値が、キャッシュ３０内に存在しない場合には、データ値がメモリ１２０から取り込まれる必要があることを示すために、キャッシュ制御ユニット４０は、ライン１３０を介して信号をバスインタフェースユニット９５に渡す。
このキャッシュ検索プロセスが行われている間、保護ユニット２０内の保護制御器１５０も、バスライン５２上のプロセス制御信号を受信し、プロセス制御信号がメモリ１２０またはキャッシュ３０に対する仮想読み書きアクセスに関係していることを判定すると、バスライン５４上にプロセスコア１０によって置かれたアドレスを検査するように、アドレス比較器７０に命令する。好適な実施例では、各論理領域に対して１個のアドレス比較器があり、それら比較器のそれぞれは、特定の論理領域のアドレス範囲を含んでいる関連レジスタを有する。各比較器は、アドレスが対応の論理領域内に含まれるかどうかを判定するために、そのアドレス範囲をバスライン５４上の特定アドレスと比較するように配置されている。比較器が、アドレスが論理領域のアドレス範囲内にあることを判定するときはいつでも、その比較器は、対応のライン１６０を通して優先順位エンコーダ７５に対してヒット信号を出力する。
優先順位エンコーダ７５は、全ての比較器７０によって出力される信号を受信する。優先順位エンコーダが１個のヒット信号を受信した場合には、これは、アドレスが１個の論理領域内に存在することのみを示す。この場合、優先順位エンコーダ７５は、信号をマルチプレクサ８０に送信し、属性レジスタ８５からその論理領域に対応する属性を選択するよう、マルチプレクサ８０に命令する。その後、これらの属性は、メモリ１２０へのアクセスを制御するように使用されるか、またはキャッシュ３０から取り込まれたデータ値の使用を制御するように使用される。好適な実施例では、論理領域の１つがメモリ１２０の全アドレス空間をカバーするバックグラウンド領域にあることになるので、常に、発生される少なくとも１個のヒット信号があることになる。しかし、バックグラウンド領域の定義は必ずしも必須ではなく、代替実施例においては、ヒット信号がアドレス比較器７０によって発生され得ないということもある。この場合、優先順位エンコーダ７５は、ヒット信号が検出されなかったことを示す信号を発生するように配置され、この信号は、優先順位エンコーダ７５から論理回路９０に出力されることになる。データ処理回路がこの場合にどのように動作するかは、論理回路９０がどのように構成されるかによって決まる。例えば、論理領域のどこにも含まれないアドレスにアクセスしようとするいかなる試みも、ライン１４０を通してプロセッサコア１０に戻される中止信号をもたらすように、その論理回路は構成される。
アドレス比較器７０によって、１個以上のヒット信号が出力されると仮定すると、それぞれの定義された論理領域の相対優先順位を判定するために、優先順位エンコーダ７５が優先順位判定基準を与えるように構成される。各論理領域に関する優先順位情報は、保護ユニット２０内に記憶され、優先順位エンコーダは、アドレス比較器がヒット信号を発生した各論理領域に対して、どの論理領域が最高の優先順位を持つかを判定するために、対応の優先順位情報を使用するようになっている。
しかし、好適な実施例では、論理領域の相対優先順位が、優先順位エンコーダ７５に対する入力の構成によって判定される。８個の論理領域（論理領域０−７）に対応する８個のアドレス比較器７０（比較器０−７）がある場合には、優先順位エンコーダ７５における８個の入力（入力０−７）に接続された８個の対応のワイヤ１６０があることが好ましい。論理領域に対応する入力は、優先順位が入力番号とともに大きくなるように、すなわち、入力番号７が最高の優先順位を持ち、入力番号０が最小の優先順位を持つように、優先順位を割り当てられる。
その後、優先順位エンコーダは、条件論理を与え、ヒット信号が論理領域７に対応する入力番号７で受信されたかどうかを最初に決定するようになっている。もし、そうなら、論理領域７の属性が属性レジスタ８５から出力されるべきであることを示す信号が、優先順位エンコーダ７５からマルチプレクサ８０に出力される。ヒット信号が論理領域７に対応する入力において受信されなかった場合には、優先順位エンコーダ７５が、ヒット信号が論理領域６に対応する入力番号６において受信されたかどうかを決定する。もし、そうであれば、論理領域６の属性が属性レジスタ８５から出力されるべきであることを示す信号が、優先順位エンコーダ７５からマルチプレクサ８０に出力される。ヒット信号が論理領域６に対応する入力において受信されなかった場合には、ヒット信号を持つ入力が見出されるまで同一のプロセスが順次各入力に対して繰り返される。上述の説明は、論理面でのプロセスを同定しているが、実行される実際のプロセスは、典型的には上述のように連続的には実行されないであろう。しかし、その代わり、適切な論理回路が与えられ、８個の入力の全てを受信し、かつ最高の優先順位領域を同定する出力を発生する。
好適な実施例では、これは、全メモリアドレス空間をカバーするバックグラウンド領域として設定されるので、常に最低の優先順位領域（領域０）にヒット信号がある。それゆえ、優先順位エンコーダ７５によって実行される処理は、プロセッサコア１０によって与えられるアドレスを含む最大優先順位領域に対応する属性を、属性レジスタ８５から取り込むようにマルチプレクサに指示する、マルチプレクサ８０に送られる信号を生じさせる。マルチプレクサ８０によって出力される属性は、論理ユニット９０およびバスインタフェースユニット９５に送られる。また、論理ユニット９０は、バスライン５２からプロセッサ制御信号を受信する。このプロセッサ制御信号は、とりわけ、プロセッサコア１０の動作モードを確定する。それゆえ、論理回路９０はこの情報を使用して、マルチプレクサ８０によって出力される属性が、現在の動作モードにあるプロセッサコア１０に、要求されるメモリアドレスへのアクセスを許可するかどうかを判定することができる。例えば、論理ユニット９０が、プロセッサコア１０が利用者モードにあることを判定し、マルチプレクサ８０によって出力される属性が、メモリアドレスがスーパバイザモードでのみアクセスされ得ることを示す場合には、論理回路９０は、プロセッサコア１０への通路１４０およびバスインタフェースユニット９５への通路１７０上に中止信号を生成するように構成される。
保護ユニット２０によって実行される処理は、十分な処理速度を確保するために、キャッシュ検索プロセスと同時に行われることが好ましい。要求されるデータ値が、キャッシュ３０において利用可能であり、論理ユニット９０がライン１４０に中止信号を生成しない場合には、プロセッサコア１０は、キャッシュ３０から取り込まれるデータを使用することになる。しかし、要求されるデータ値が、キャッシュ３０において利用可能ではない場合には、前に述べたように、そのデータ値に対してメモリ１２０をアクセスするようにバスインタフェースユニット（ＢＩＵ）９５に命令を与える信号が、通路１３０上に送られることになる。
ＢＩＵ９５は、バスライン５２上のプロセッサ制御信号を調べ、プロセッサコア１０によって与えられる命令が読み書き命令であるかどうかを判定する。それが読み出し命令であり、中止信号が論理回路９０から通路７０上に受信されないと仮定すると、そのときはＢＩＵ９５がマルチプレクサ１００に命令を与え、アドレスをバスライン５４からバス６０の外部アドレスバスライン６４上に渡す。（これは、メモリ１２０への仕掛かり中の書き込み命令が書き込みバッファ１０５においてペンディングになっていないということを仮定している。すなわち、そのようなペンディング書き込み命令がある場合には、これらは読み出し命令の前に実行されることになる。書き込みバッファの動作は、後で詳細に述べられる）。また、メモリ１２０へのアクセスを制御するためにメモり制御器１８０によって使用される制御信号が、バスライン６２上に置かれる。そのメモリ制御器１８０は、メモリ読み出しが要求されていることを、バスライン６２上の制御信号から判定し、バスライン６４上に示されたアドレスにあるデータを、データバスライン６６上に出力するように、メモリに命令する。
ＢＩＵ９５は、信号をバッファ１１０に送り、バッファ１１０に、メモリ１２０によって外部バスライン６６上に置かれるデータを、プロセッサバスラインに渡させる。さらに、保護ユニット２０のマルチプレクサ８０からＢＩＵ９５によって受信される属性が、アドレスがキャッシュ可能なデータ値を含むことを示す場合には、ＢＩＵ９５は、通路１３５を通してキャッシュ制御装置４０に信号を送り、取り込んだデータ値をキャッシュ３０に蓄積するよう、キャッシュ制御装置に命令する。メモリ１２０から取り込まれ、バスライン５６上に置かれたデータ値は、その後、キャッシュ３０に蓄積され、プロセッサコア１０に渡される。次に、そのデータ値は、プロセッサコア１０によってそのキャッシュから直接に簡単にアクセスされ得る。ＢＩＵ９５によって受信された属性が、データ値がキャッシュ可能ではないことを示す場合には、そのデータはキャッシュに記憶されず、プロセッサコア１０がバスライン５６からデータ値を読み出す。
上述の説明により、データ値をメモリ１２０から読み出す目的で、メモリ１２０へのアクセスを制御するために、保護ユニット２０がどのように使用されるかが説明された。プロセッサコア１０によって与えられたアドレスが、プロセッサがデータ値を書き込みたいと願っているアドレスである場合には、次の手順が取られる。
プロセッサコアは、プロセッサ制御信号をバスライン５２上に、アドレスをバスライン５４上に、そして記憶されるべきデータ値をバスライン５６上に置く。保護ユニット２０内の保護制御器１５０は、バスライン５２上のプロセッサ制御信号を調べ、プロセッサ制御信号がメモリ１２０への書き込みアクセスに関連することを判定すると、アドレス比較器７０に命令を与え、プロセッサコア１０によってバスライン５４上に置かれるアドレスを調べる。そのとき、保護ユニットは、そのアドレスを含む最大優先順位の論理領域を判定するために、読み出し命令を参照して前に述べたものと同一の手続きを実行する。これにより、ＢＩＵ９５および論理回路９０に出力される領域に対応する属性が得られる。
ＢＩＵ９５は、バスライン５２上のプロセッサ制御信号を調べ、プロセッサコア１０によって与えられる命令が読み書き命令であるかどうかを判定する。それが書き込み命令であると仮定すると、そのときはＢＩＵ９５は、書き込み手続きが行われる必要があることを判定し、その書き込み手続きを制御するため、保護ユニット２０から受信される属性情報を使用する。
論理ユニット９０は、マルチプレクサ８０によって出力される属性、およびプロセッサ制御信号から、プロセッサコアはその現在の動作モードにおいて特定のアドレスに書き込むことができるかどうかを判定し、書き込めない場合には、中止信号を発生することになる。いかなる中止信号も通路１７０を通してＢＩＵ９５に送られ、それに書き込み命令を無視するよう命令する。その中止信号は、また、通路１４０を通してプロセッサコア１０に送られ、データ、アドレスおよび制御情報をそれぞれバスライン５６，５４および５２から取り除かさせ、プロセッサコア１０にそのような中止の場合に要求されるいかなる例外手続きをも実行可能にさせる。
しかし、プロセッサコアがバスライン５４上に置かれたアドレスに書き込む権利を有し、それゆえ、中止信号がＢＩＵ９５によって受信されないと仮定すると、そのときは、ＢＩＵ９５は、マルチプレクサ８０からの属性情報を使用し、書き込まれるべきデータがバッファ可能であるかないかを判定する。そのデータがバッファ可能である場合、ＢＩＵ９５は、バス５０からデータ、アドレスおよび制御情報を取り込むよう、書き込みバッファ１０５に命令する。一度これがなされると、完了されるべき書き込み命令を待つことなく、次の命令がプロセッサコア１０によって処理される。
書き込みバッファは、好適にはＦＩＦＯバッファである。外部バス６０が自由であるとき、ＢＩＵ９５は、書き込みバッファから外部バス６０に次の項目を出力するように、マルチプレクサ１００に命令する。そのマルチプレクサ１００は、その後、必要な制御、アドレスおよびデータ信号をそれぞれバスライン６２、６４および６６に出力する。メモリ制御器１８０は、その制御信号を用いてメモリ１２０への書き込みアクセスを制御する。この時点で、データがメモリ１２０に記憶されることになる。記憶されるべきデータが、書き込みバッファ１０５から連続的に処理されると、ある時点で、プロセッサによってバスライン５４上に与えられるアドレスに対応するデータが、メモリ１２０に記憶されることになる。
しかし、バスインタフェースユニット９５が、データが記憶されるべきアドレスがバッファ可能でないことを判定した場合には、そのバスインタフェースユニット９５は、直接バスライン５２、５４および５６からプロセッサ制御、アドレスおよびデータ情報を選択するようマルチプレクサ１００に命令する。その後、マルチプレクサ１００は、そのデータをメモリ１２０の対応のアドレスに記憶させるように、この情報を外部バス６０上に出力する。しかし、これを行う前に、書き込み命令が正しい順序で処理されるように、書き込みバッファ１０５は、典型的にはその内部のいかなる入力をも流出させる。一度現在の書き込み命令に対応するバッファ不可能なデータが記憶されると、次の命令が処理される。
保護ユニット２０内で実行される処理ステップを説明している図３を参照して、保護ユニット２０によって実行されるプロセスについて説明する。ステップ３００で、保護ユニット２０は、プロセッサコア１０によってアドレスバスライン５４上に置かれるアドレスを待つ。前に述べたように、保護ユニット２０内の保護制御器１５０は、PCバス５２上の制御信号に応答して、プロセッサコア１０によってバス５４上に置かれるアドレスを調べるようにアドレス比較器７０に命令する。好適な実施例では、各論理領域に対して１個のアドレス比較器が設けられている。それゆえ、好適な実施例では、アドレス比較器ブロック７０内に８個のアドレス比較器がある。各アドレス比較器は、対応の論理領域に対するアドレス範囲を含む関連のアドレスレジスタを有する。ステップ３１０で、アドレスライン５４から受信されたアドレスは、関連のレジスタ内にあるアドレス範囲と比較される。そして、アドレスがそのアドレス範囲にある場合には、ステップ３２０で、そのアドレス比較器によって対応のワイヤ１６０上に「ヒット」信号が出力される。
アドレス比較器７０によって発生される全ての信号が、優先順位エンコーダ７５に与えられる。ここで、ステップ３３０で、最高の優先順位を有するアドレスを含んでいる論理領域を判定するために、優先順位規準が加えられる。前に述べたように、好適な実施例では、これは、最高の優先順位領域に対応する入力においてヒット信号が受信されたかどうかを最初に判定する、条件論理を与えるように優先順位エンコーダを配列することによって実行される。受信されなかった場合には、ヒット信号が同定されるまで次の最大優先順位領域等に対応する入力が検査される。優先順位エンコーダ７５は、優先順位を低減させながら順に入力を論理的に検査するので、同定された最初のヒット信号は、プロセッサコア１０によって与えられるアドレスを含んでいる最高の優先順位論理領域に対応することになる。このプロセスは、一度に１つの入力に連続的に実行される必要がないことを理解されるであろう。好適な実施例では、８個の入力の全てを一緒に受信し、最高の優先順位領域を同定する出力を発生するために、適切な論理回路が与えられる。
好適な実施例では、全アドレス空間が様々な論理領域によってカバーされるか、または論理領域の１つがメモリ１２０の全アドレス空間をカバーしているバックグラウンド領域であるので、常に少なくとも１個のヒット信号が存在する。しかし、バックグラウンド論理領域が定義される必要はない。それゆえ、プロセッサコア１０によって与えられるアドレスがメモリ１２０内の「穴」に対応することを示す、生成されるヒット信号がないということも可能である。そのような場合には、バックグラウンド領域が存在せず、そのシステムは、典型的には穴へのアクセスがどのように取り扱われるかを定義するためにハードワイヤ接続される。例えば、穴へのいかなるアクセスも論理回路９０によって発生される中止信号をもたらす。他方、バックグラウンド領域が定義される場合には、そのバックグラウンド領域に対応する属性がアクセスを制御するために使用されるので、これに頼る必要はない。
バックグラウンド領域が最低の優先順位領域として確立されると仮定すると、このバックグラウンド領域は、全アドレス空間をカバーするようにハードワイヤ接続される。そのとき、この最低優先順位領域は、アドレス比較器７０によって実行される比較プロセスから除外される。それによって、１個少ない比較器および１個少ないワイヤ１６０となる。アドレス比較器７０によってヒット信号が発生されず、それによって他の論理領域のいずれも前記アドレスを含まないことを示している場合には、優先順位エンコーダ７５は、マルチプレクサ８０に信号を送り、それに最低の優先順位領域と関連付けられた属性を選択させる命令を出すように構成される。アドレス比較器は、そのアドレスを最低優先順位領域のアドレス範囲と比較しないので、この方法はわずかにフレキシビリティに欠けるが、効率を改善する。この最低優先順位領域の属性は、他の論理領域のいずれも前記アドレスを含まないことを判定するアドレス比較器の直接の結果として使用される。
一度、優先順位エンコーダ７５が、そのアドレスを含んでいるどの論理領域が最大優先順位を持つかを判定すると、ステップ３４０で、それはマルチプレクサ８０に信号を出力し、その論理領域の属性を含んでいる属性レジスタ８５から属性を選択するよう命令する。一度、マルチプレクサ８０によって属性が選択されると、それらの属性は、メモリまたはキャッシュアクセスを制御するのに使用するため、ステップ３５０で出力される。
好適な実施例では、ステップ３５０で出力される属性が、その現在の動作モードにおけるプロセッサコア１０がそれらの属性によって定義される論理領域内のメモリアドレスにアクセスすべきではないことを、示すかどうかを判定するため、論理ユニット９０によって最終検査が実行される。例えば、プロセッサコア１０が利用者モードで動作しており、ステップ３７０で出力される属性の１つがそのアドレスがスーパバイザモードにおいてのみアクセス可能であることを示す場合には、論理ユニット９０は、通路１４０を通してプロセッサコア１０に中止信号を出し、プロセッサコア１０がそのメモリ領域をアクセスできないことを示すとともに、その中止信号を通路１７０を通してＢＩＵ９５にも送る。
上述の説明は、可変サイズの複数個の論理メモリ領域が定義され、かつ装置のフレキシビリティを改善するためにそれらの論理メモリ領域がオーバラップされている、データ処理装置についてなされた。
ここでは、特定の実施例について説明したが、本発明はそれらに制限されず、本発明の範囲内で幾多の変形や付加がなされ得ることを理解されたい。例えば、キャッシュ３０は、図１に表されているように、命令とデータの両方を記憶するように使用しても良い。あるいは、代替案として、命令を記憶するために１つのキャッシュを設け、さらにデータを記憶するために分離したキャッシュを設けても良い。後者の場合、好ましくは１つは命令用そして１つはデータ用の２つの保護ユニット２０が使用される。これが実現できる２つの方法を図４Aおよび図４Bで説明する。
図４Aにおいて、命令キャッシュ４３０およびデータキャッシュ４４０は、プロセッサコア１０によって同時にアクセス可能である。命令アドレスが命令キャッシュ４３０においてキャッシュ検索に使用されるとき、そのアドレスは、必要ならメモリへのアクセスを制御するために使用されるべき属性を判定するために、保護ユニット４００にも適用される。同時に、データアドレスがデータキャッシュ４４０においてキャッシュ検索に使用されるとき、そのアドレスは、必要ならメモリへのアクセスを制御するために使用されるべき属性を判定するために、保護ユニット４１０にも適用される。属性レジスタおよび論理領域を定義しているレジスタが一組のレジスタ４２０によって与えられるということを除いて、保護ユニット４００および４１０は、好ましくは、図１に示された保護ユニット２０と同一である。それゆえ、図４Aにおいては、同一の論理領域および属性が、メモリへのデータおよび命令アクセスの両方に対して使用される。
しかし、図４Bに示された代替方法は、保護ユニット４００および４１０がそれぞれ別々のレジスタ４５０および４６０を持つようになっており、それによって、異なる属性を持つ異なる大きさの論理領域を、データおよび命令アクセスに対して特定されるようにする。例えば、命令領域に対して異なる大きさのデータ領域が要求されるので、これはさらなるフレキシビリティを与える。
【図１】
0003710490.tif 000002
【図２】
0003710490.tif 000003
【図３】
0003710490.tif 000004
【図４Ａ】
0003710490.tif 000005
【図４Ｂ】
0003710490.tif 000006