(57)【特許請求の範囲】
【請求項１】
データ処理装置であって、
（イ）データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するデータメモリと、
（ロ）前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生する手段と、
（ハ）前記アクセス要求の処理を制御するメモリマネジメントコントローラと、
を具備し、
（ニ）前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションが固定数のサブセクションを含みサブセクションのサイズはメインセクション内で一定であって各メインセクションについて独立に設定され、
（ホ）前記メモリマネジメントコントローラは各サブセクションについて１つ以上のアクセスコントロールパラメータを記憶しており、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される、データ処理装置。
【請求項２】
請求項１記載の装置であって、該装置は各々が各メインセクションのサブセクションサイズを定義するデータを記憶する複数のメインセクションレジスタを具備する、データ処理装置。
【請求項３】
請求項１記載の装置であって、前記アクセス要求発生装置は中央処理装置コアを具備する、データ処理装置。
【請求項４】
請求項２記載の装置であって、サブセクションサイズを定義する前記データはプログラム命令制御の元で前記メインセクションレジスタへ書き込まれる、データ処理装置。
【請求項５】
請求項４記載の装置であって、前記中央処理装置コアとのコプロセッサを具備し、前記メインセクションレジスタは前記コプロセッサにより実行されるプログラム命令の元で書き込まれる、データ処理装置。
【請求項６】
請求項１記載の装置であって、前記特定のメモリアドレス内の固定位置を有する１つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義される、データ処理装置。
【請求項７】
請求項１記載の装置であって、前記特定のメモリアドレス内の可変位置を有する１つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義される、データ処理装置。
【請求項８】
請求項７記載の装置であって、該装置は前記特定のメモリアドレスを含むメインセクションに対するサブセクションのサイズに従って前記特定のメモリアドレス内からデコードする前記サブセクションを選定するバレルシフタを具備する、データ処理装置。
【請求項９】
請求項１記載の装置であって、該装置は各々が各サブセクションに対する前記１つ以上のアクセスコントロールパラメータを記憶する複数のサブセクションレジスタを具備する、データ処理装置。
【請求項１０】
請求項９記載の装置であって、前記１つ以上のアクセスコントロールパラメータはプログラム命令制御の元で前記サブセクションレジスタへ書き込まれる、データ処理装置。
【請求項１１】
請求項１０記載の装置であって、前記アクセス要求発生手段は中央処理装置コアを具備し、前記サブセクションレジスタは前記中央処理装置コアにより実行されるプログラム命令の制御の元で書き込まれる、データ処理装置。
【請求項１２】
請求項９記載の装置であって、前記特定のメモリアドレス内の固定位置を有する１つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義され、前記特定のメモリアドレス内の可変位置を有する１つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義され、前記サブセクションレジスタは前記メインセクションビットおよび前記サブセクションビットに応答して前記特定のメモリアドレスに対する前記アクセスコントロールパラメータを読み取るようにアドレスされる、データ処理装置。
【請求項１３】
請求項１記載の装置であって、該装置は任意のサブセクションの外側の特定のメモリアドレスへのアクセス要求を検出するアボート信号発生器を具備する、データ処理装置。
【請求項１４】
請求項１３記載の装置であって、前記特定のメモリアドレス内の固定位置を有する１つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義され、前記特定のメモリアドレス内の可変位置を有する１つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義され、前記メインセクションビットは前記特定のメモリアドレスの最上位ビットであり前記サブセクションビットは前記特定のメモリアドレスの下位ビットであり、前記アボート信号発生器は前記メインセクションビットと前記サブセクションビットとの間の前記特定のメモリアドレスの任意のビットがセットされる場合にアボート信号を発生する、データ処理装置。
【請求項１５】
請求項１３記載の装置であって、１つ以上のメインセクションがリザーブされ、前記アボート信号発生器は前記特定のメモリアドレスがリザーブされたメインセクション内にある場合にアボート信号を発生する、データ処理装置。
【請求項１６】
請求項１記載の装置であって、該装置はライトバッファを具備し、前記１つ以上のアクセスコントロールパラメータは前記ライトバッファを経由して前記特定のメモリアドレスへのライト要求を送ることができるかを示すフラグを含む、データ処理装置。
【請求項１７】
請求項１記載の装置であって、該装置はキャッシュメモリを具備し、前記１つ以上のアクセスコントロールパラメータは前記特定のメモリアドレスへのライト要求を前記キャッシュメモリ書き込むことができるかを示すフラグを含む、データ処理装置。
【請求項１８】
請求項１記載の装置であって、前記１つ以上のアクセスコントロールパラメータは１つ以上のフラグを含みそれらは前記装置の現在の動作モードを示す１つ以上のモードビットと論理的に結合して前記アクセス要求の進行を許可すべきかを決定する、データ処理装置。
【請求項１９】
請求項１記載の装置であって、前記装置は集積回路である、データ処理装置。
【請求項２０】
データ処理方法であって、該方法は、
（イ）データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するステップと、
（ロ）前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生するステップと、
（ハ）メモリマネジメントコントローラにより前記アクセス要求の処理を制御するステップと、を含み、
（ニ）前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションが固定数のサブセクションを含みサブセクションのサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
（ホ）前記メモリマネジメントコントローラは各サブセクションについて１つ以上のアクセスコントロールパラメータを記憶し、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の進行が制御される、データ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理の分野に関する。特に、本発明はデータメモリのさまざまな部分へのアクセスを制御するメモリマネジメントコントローラを有するデータ処理システムに関する。
【０００２】
【従来の技術】
データメモリのさまざまな部分へのアクセスを制御するメモリマネジメントコントローラ／メモリマネジメントユニット／ＭＭＵを組み込んだデータ処理システムを提供することが知られている。所望しない限り別のタスクからのデータを変更することができないようにタスクを分離することが望ましいマルチタスク処理システムにおいてこのようなメモリマネジメントユニットは特に有用である。これにより１つのタスク内の問題が別のタスクへ広がってそれを改変することが抑制されるため信頼度が高まる。
【０００３】
代表的なメインフレームコンピュータについてこのような保護を実施する場合、どのタスクが物理的メモリのどのエリアへのアクセスを有するかを定義するデータが中央処理装置の外部のランダムアクセスメモリに保持することができるページテーブル定義に記憶される。また、（アドバンストＲＩＳＣマシン社製）ＡＲＭ６００等の集積回路にオンチップメモリマネジメントユニットを組み込むことができる。このようなオンチップ法ではメモリマネジメントユニットデータへのオフチップアクセスの必要性を回避することにより動作速度が増し中央処理装置コアを備えた集積回路の外部にデータメモリを付加することによる複雑化や費用の問題が回避される。中央処理装置コアを備えた集積回路の外部に付加回路素子を設ける必要性を回避することはサイズおよび費用が重要となる埋込コントローラ等の応用において特に重要である。
【０００４】
メモリマネジメントユニットの設計における重要な要因はメモリアクセスを制御することができるアドレスリゾルーションである。例えば、システムのデータメモリは４ｋバイトセクションへ分割することができ、４ｋバイトセクション内の各アドレスへのアクセスは共通ベースで管理される、すなわち、各セクションについてそのセクションへのアクセスを有するタスクと提供されるアクセスのタイプとは別々に定義される。したがって、データメモリの各４ｋバイトセクションについて１組のアクセスコントロールパラメータを記憶する必要がある。
【０００５】
データメモリを独立に管理することができる小さいサイズのセクションへ分割することによりデータメモリへのアクセス制御に高度のアドレスリゾルーションを提供することが望ましい場合もある。例えば、データメモリが直接マッピングされた入出力位置もしくは別々に処理すべきクリティカルコントロールパラメータを記憶するメモリセクションを表す場合にこのような小ブロックが適切である。このような状況に対処するには２５６バイトのセクションを有するリゾルーションとすることが望ましい。
【０００６】
これとは対照的に、（例えば、プリンタ内のデータを定義するフォント等の）固定プログラム命令すなわちデータを記憶するリードオンリメモリへのアクセスの場合には、関連する大量のデータは粗いレベルのリゾルーションで制御できればよい。この場合、４Ｍバイトセクションでアクセスを制御するのが適切である。
【０００７】
このような競合要求に対処する従来の方法はメモリマネジメントユニットにシステムの全アドレス空間内で所望される最小セクションサイズに対処できるリゾルーションを持たせることである、すなわち、いくつかのエリアを２５６バイトの細密なアドレスリゾルーションで制御する必要がある場合、全アドレス空間がこのようなリゾルーションで制御される。その結果、全アドレス空間に対するアクセスコントロールパラメータを保持するのに大量の記憶装置を必要とするという不利を招くことになる。大量のアクセスコントロールパラメータを記憶する必要性により必要な集積回路のサイズが増大するという不利を招くアクセスコントロールパラメータのオンチップ記憶の場合特にそうである。集積回路のサイズが増大すると（製造歩留りの低減により）集積回路のコストが増大しかつ（特に、回路サイズを低減するためにダイナミックメモリセルが使用される場合、付加回路素子を駆動する必要があるため）回路の消費電力が増大する。
【０００８】
【発明が解決しようとする課題】
本発明はシステム全体のアクセスコントロールパラメータを処理するのに必要なデータ記憶装置の量を増大する不利を招くことなく別々に制御することができるデータメモリセクションのサイズの細密なアドレスリゾルーションの可能性を提供する問題に関連している。
【０００９】
【課題を解決するための手段】
本発明の１つの局面からデータ処理装置が提供され、該装置は、
（ｉ）データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するデータメモリと、
（ｉｉ）前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生する手段と、
（ｉｉｉ）前記アクセス要求の処理を制御するメモリマネジメントコントローラと、
を具備し、
（ｉｖ）前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションは固定数のサブセクションを含みサブセクションサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
（ｖ）前記メモリマネジメントコントローラは各サブセクションに対して１つ以上のアクセスコントロールパラメータを記憶し、サブセクションの前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される。
【００１０】
本発明は各メインセクション内に固定数の可変サイズサブセクションを設けることにより複雑さを増すという不利を招くことなく１つのアドレス空間内にアクセスコントロールの広範に異なるリゾルーションを提供できると認識するものである。この方法により、メインセクション内の固定数のサブセクションに対して小さいサブセクションサイズを使用すると、そのメインセクション内のアドレス空間の大きいエリアが全サブセクションの外側となって有効にアンマップされることを理解されたい。システム内でのこのような連続性の欠如はフィールド内のトレンドと衝突する。しかし、メインセクション内に固定数のサブセクションを設けると各メインセクションに対してどのリゾルーションが選択されるかに無関係にシステムが必要とするアクセスコントロールパラメータの数は一定となる。そのため細密なリゾルーションが選定される場合にアクセスコントロールパラメータに必要な大量の記憶装置が回避される。メモリマップの不連続性は通常欠点と見なされるが、アドレスが広がるトレンドにより利用可能なアドレス空間が大きく増大すれば、アドレス空間の浪費と見なされるものは問題とはならない。
【００１１】
本発明は（例えば、構成が固定された埋込コントローラのように）システムの製作中に各メインセクション内のサブセクションのサイズが一定であるような状況で使用することができるが、各々が各メインセクションに対するサブセクションサイズを定義するデータを記憶する複数のメインセクションレジスタを具備する実施例により（例えば、インストールされるＲＡＭサイズのさまざまなオプション等の）システム構成の変化に対処する柔軟性が高められる。
【００１２】
サブセクションサイズを定義するデータをメインセクションレジスタ内に記憶することにより一層容易に変更できるようになる。
【００１３】
アクセス要求を発生する手段は（例えば、ディスクドライブコントローラからのアクセス要求等の）任意数の形式をとることができることを理解されたい。しかし、前記アクセス要求を発生する手段が中央処理装置コアを具備する実施例に使用するのに本発明は特に適している。
【００１４】
前記したように、サブセクションサイズを定義するデータを記憶するためのメインセクションレジスタを設けることができる。これらのメインセクションレジスタは、主要なハードウェアを再設計することなくサブセクションサイズの構成を変化することができるように、ディップスイッチ等の、固定ハードウェアエレメントにより書き込むことができる。しかし、実施例ではサブセクションサイズを定義する前記データはプログラム命令制御の元で前記メインセクションへ書き込まれる。
【００１５】
プログラム制御の元でメインセクションレジスタへデータを書き込むことによりユーザは僅かな努力でシステムの構成において高度の柔軟性を有利に得ることができる。
【００１６】
プログラム制御の元でメインセクションレジスタへ書き込むことができるようにする際の問題点はプログラム内のバグにより当面の物理的ハードウェア構成を表さない不適切なデータがこれらのメインセクションレジスタへ書き込まれる可能性があることである。メインセクションレジスタ内のデータはシステム全体の動作にとって重要でありデータのこのような改変により重大問点およびデータ損失を生じることがある。
【００１７】
この可能性を低減するために、実施例には前記中央処理装置コアとのコプロセッサが含まれており、前記メインセクションレジスタの書き込みは前記コプロセッサにより実行されるプログラム命令の制御の元で行われる。
【００１８】
中央処理装置コアではなくコプロセッサがメインセクションレジスタへの書き込みを行えるようにすることによりメインセクションレジスタデータが改変される可能性が低減される。コプロセッサは一般的に命令の明確に定義されたサブセットしか演算しないため、その演算におけるバグおよびメインセクションレジスタへの不適切な書き込みを行う可能性が低くなる。
【００１９】
アドレス空間を分割する簡単で有利な方法は前記特定のメモリアドレス内の固定位置を有する１つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションを定義することである。
【００２０】
当該メインセクションへマップするこのような固定位置メインセクションビットを有することにより特定のメモリアドレスを簡単にデコードして当該メインセクションしたがってこのメモリアドレスに対するサブセクションサイズを決定することができる。
【００２１】
前記特定のメモリアドレス内の可変位置を有する１つ以上のサブセクションビットを与えて前記特定のメモリアドレスを含むサブセクションを定義することが好ましい。サブセクションのサイズが変動する場合には、このような可変位置サブセクションビットによりサブセクションは各メインセクションのアドレス空間内で隣接配置することができる。
【００２２】
サブセクションビットが特定のメモリアドレス内で位置が変動する場合には、前記特定のメモリアドレスを含むメインセクションに対するサブセクションサイズに応じて前記特定のメモリアドレス内から前記デコードするサブセクションビットを選定するためのバレルシフタが特に効率的な実施例により提供される。
【００２３】
サブセクションサイズに応じてサブセクションビットの高速選定を行うのにバレルシフターは特に適している。
【００２４】
メモリマネジメントコントローラにより利用されるアクセスコントロールパラメータはプログラム実行中に修正できることが望ましい比較的ダイナミックなデータである。したがって、実施例により各々が各サブセクションに対する前記１つ以上のアクセスコントロールパラメータを記憶する複数のサブセクションレジスタが提供される。
【００２５】
アクセスコントロールパラメータをダイナミックに修正することができる最も簡便な方法は前記１つ以上のアクセスコントロールパラメータがプログラム命令制御の元で前記サブセクションレジスタへ書き込まれるようにすることである。
【００２６】
メインセクションレジスタ内に記憶されるデータとは対照的に、サブセクションレジスタ内のデータはデバイスの構成にとって重要性は低く規則的に修正される可能性が高い。したがって、前記中央処理装置コアにより実行されるプログラム命令の制御の元で前記サブセクションレジスタへの書き込みを行うことが望ましい。
【００２７】
前記サブセクションレジスタが前記メインセクションビットおよび前記サブセクションビットに応答して前記特定のメモリアドレスに対する前記アクセスコントロールパラメータを読み取るようにアドレスされる実施例において所与特定のメモリアドレスに対する適切なサブセクションレジスタの選定を簡便に達成することができる。
【００２８】
前記したように、本発明によりシステムのメモリマップへある程度の非連続性が導入される。したがって、未定義エリアへメモリアクセスがなされるという特有の危険性が存在する。この問題に対抗するために、実施例により任意のサブセクションの外側の特定のメモリアドレスへのアクセス要求を検出するアボート信号発生器が提供される。
【００２９】
サブセクションの可変サイズによりアドレス空間のさまざまな部分がさまざまな構成において未定義とされる場合には、前記メインセクションビットが前記特定のメモリアドレスの最上位ビットとなり前記サブセクションビットは前記特定のメモリアドレスの下位ビットとなる実施例とされ、前記メインセクションビットおよび前記サブセクションビット間の前記特定メモリアドレスの任意のビットが設定されると前記アボート信号発生器によりアボート信号が発生される。
【００３０】
ワイドなアドレスバスを有するプロセッサ内の大量のアドレス空間により１つ以上のメインセクションがリザーブされるシステムが提供される。このようなシステムでは、前記特定のメモリアドレスがリザーブされたメインセクション内にある場合に前記アボート信号発生器がアボート信号を発生することが望ましい。
【００３１】
メモリマネジメントコントローラにより利用されるアクセスコントロールパラメータは多くの形式をとることができる。特に好ましいコントロールパラメータはライト要求をライトバッファ内にバッファできるかどうかを示すフラグ、ライト要求をキャッシュメモリへ書き込むことができるかどうかを示すフラグ、および所与のサブセクションへ特定タイプのアクセスを行うのにどのプロセッサ動作モードを許可すべきかを示すフラグを含んでいる。
【００３２】
本発明は個別回路部品として実現することができる。しかし、前記したように、本発明は集積回路を含む実施例に使用するのに特に適している。このような実施例では、従来のメモリマネジメントユニットに較べて回路面積の節減が非常に著しい。
【００３３】
本発明のもう１つの局面によりデータ処理方法が提供され、該方法は、
（ｉ）データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶し、
（ｉｉ）前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生し、
（ｉｉｉ）メモリマネジメントコントローラにより前記アクセス要求の処理を制御する、ステップを含み、
（ｉｖ）前記メモリマネジメントコントローラにより前記アドレス空間は複数の固定サイズメインセクションへ分割され、各メインセクションは固定数のサブセクションを含みサブセクションサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
（ｖ）前記メモリマネジメントコントローラにより各サブセクションについて１つ以上のアクセスコントロールパラメータが記憶され、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される。
【００３４】
【発明の実施の形態】
図１に３２ビットシステムに対するアドレス空間マップを示す。アドレス空間は８つの等サイズメインセクションすなわちチャンクへ分割される。８つのチャンクはＣｈｕｎｋ０からＣｈｕｎｋ７までである。本実施例では奇数番のチャンクはリザーブされる。最上位メインセクション（Ｃｈｕｎｋ０）はメモリアドレス００００００００から１ＦＦＦＦＦＦＦ（１６進）までである、すなわち、３２Ｍバイトである。
【００３５】
各チャンクは１６のサブセクションすなわちグレインを含んでいる。グレインサイズはチャンク間で変動することがある、すなわちＣｈｕｎｋ０は２５６バイトの各グレインを含むことができ、Ｃｈｕｎｋ２は１Ｍバイトのグレインを含んでいる。グレインはチャンク内の最下位アドレスから上へ連続的に伸びている。最上位グレインの頂部境界はそのチャンクのグレインサイズに従って位置が変動する。頂部グレインの最上位境界とチャンク内の最上位アドレス間のアドレス空間エリアは未使用かつ未保護である。
【００３６】
図２にＣｈｕｎｋ０を２つの代替構成で示し、１つは２５６バイトグレインでありもう１つは１ｋバイトグレインである。２５６バイトグレインの場合には、最下位グレインはアドレス００００００００から００００００ＦＦまでである。他のグレインはメモリ位置０００００ＦＦＦにおける最上位グレインの最上位アドレスまで連続的に続く。このグレインサイズはここに記載する特定実施例によりサポートされる最小グレインサイズである。他の実施例ではより小さいグレインサイズが可能である。小さいグレインサイズは入出力アドレス空間に対処するメモリもしくは小型オンチップランダムアクセスメモリのチャンクに適切である。
【００３７】
図２には各々が１ｋバイトのグレインサイズを有するグレインにより構成されたＣｈｕｎｋ０であるアドレス空間の同じメインセクションも示されている。この構成では、最下位グレインはアドレス００００００００から０００００３ＦＦまでである。最上グレイン内の最上位アドレスはメモリアドレス００００３ＦＦＦである。アドレス空間の００００４０００および１ＦＦＦＦＦＦＦ間のエリアは未使用かつ未保護である。
【００３８】
図３にメモリマネジメントユニットの一部を示す。全体機能レベルにおいて、メモリマネジメントユニットは特定のアドレスｖａ［３１：０］を受信し当該アクセスがバッファ可能か、キャッシュ可能か、もしくはアボートすべきか、を示す信号をそのアドレスへ戻す。これを達成するために、メモリマネジメントユニットはデータ処理システムの状態を示すいくつかの入力も要求しこのような状態変数に依存する適切な出力を発生する。
【００３９】
仮想アドレスｖａ［３１：２９］の最上位３ビットにより仮想アドレスのあるチャンクが指定される。これらの３ビットは有効なチャンクのいずれがアクセスされているかを示す４ビット出力もしくは３ビットが図１に示すアドレス空間の１つのリザーブされたセクション内のアドレスを示す場合のチャンクアボート信号を発生するように働くチャンクデコーダ１０へ入力される。有効なチャンクがアクセスされているものとすると、チャンクデコーダ１０から出力されるビットの１つがハイとなる。これにより各々がそのチャンクに対するグレインサイズを示す３ビットコードを記憶する４つのチャンクレジスタ１２の中の１つが選定される。選定されたチャンクレジスタ１２に記憶されている３ビットコードはグレインデコーダ１４へ通される。
【００４０】
グレインデコーダ１４はアクセスされるチャンクのグレインサイズを指定するその３ビット入力を取り込んでマッピングしその出力である８ビットラインの１つをロー値となるように制御する。グレインデコーダ１４からの残りの７ビットライン出力はハイのままである。さまざまな３ビットチャンクレジスタコードをその対応するグレインサイズと共に表１に示す。
【００４１】
【表１】
0003605205.tif 000002
【００４２】
グレインデコーダ１４からの出力はバレルシフタ１６へ送られる。ロー値を有するグレインデコーダ１４からのビットライン出力は当該ビットラインに一緒に接続されたゲートを有するバレルシフタ１６内の４個の電界効果型トランジスタをオン（すなわち、導電）とする。特定アドレスｖａ［２５：８］の１８ビットが入力としてバレルシフタ１６へ送られる。バレルシフタ１６はこれらの１８ビットの中から４ビットを出力として選定する。どの４ビットを選定するかはグレインデコーダ１４からのどのビット出力がローであるかによって決まる。
【００４３】
表１にグレインサイズが記載されており、選定される４ビットはアクセスされるアドレスに対するグレイン番号（Ｇｒａｉｎ＃）を表す。２５６バイトのグレインサイズについて考える。この場合、１６のグレインにより占有される各チャンク内のアドレス空間はアドレスビットｖａ［１１：０］に対応するものである。これらのアドレスビットのうち、４ビットｖａ［１１：８］は１６グレインのうちアドレスがその中にあるものを表し、８ビットｖａ［７：０］は当該グレイン内の特定のメモリ位置を表す。したがって、バレルシフタ１６により４ビットｖａ［１１：８］がグレイン番号として選定される。
【００４４】
前記したオペレーションにより当該アドレスを含むチャンクを指定する４ビット出力がチャンクデコーダ１０から発生され、当該グレインを与える４ビットグレイン番号がバレルシフタ１６から発生される。したがって、メモリアドレス空間内の全てのグレインの中から、個別のグレインが識別されている。チャンクデコーダ１０からの４ビットおよびバレルシフタ１６からの４ビットが、１ブロックのグレインレジスタ２０内の６４個の４ビットレジスタから適切な１個を選定する、レジスタセレクタ１８へ入力される。グレインレジスタブロック２０内の各４ビットレジスタが当該メモリのグレインに対するアクセスコントロールパラメータを表す４ビットデータを記憶している。１ビットはそのグレイン内のデータがバッファ可能であるかを示し、１ビットはそのグレイン内のデータがキャッシュ可能であるかを示し、２ビットａｐ［１：０］はそのグレイン内のデータへアクセスするのにシステムがどの動作モードでなければならないかを指定するのに使用されるフラグである。データがキャッシュ可能であるかバッファ可能であるかを示すフラグはメモリマネジメントユニットから直接出力される。フラグａｐ［１：０］はモードデコーダ２２へ送られてさらに処理される。
【００４５】
モードデコーダ２２は他にもいくつかのフラグ入力を受信する。チャンクデコーダ１０からのチャンクアボート信号は特定アドレスｖａ［３１：０］がアドレス空間のリザーブされたチャンク内にあるかどうかを示す。フラグｓｐｖはプロセッサが現在スーパーバイザモードで作動しているかどうかを示す。フラグｗＮｒはアクセスがリードアクセスであるかライトアクセスであるかを示す。フラグｓおよびｒがコプロセッサにより設定されてモードデコーダ２２への他方の入力の処理方法を修正する能力がユーザへ提供される。表２にモードデコーダ２２への入力をモードデコーダからのアボート信号出力へマッピングする様子を示す。
【００４６】
【表２】
0003605205.tif 000003
【００４７】
表２にはチャンクアボート信号は含まれない。このチャンクアボート信号は他の入力から得られる結果とＯＲされて全体アボート信号出力が発生される。
【００４８】
グレインサイズを定義するチャンクレジスタ１２の内容がコプロセッサの制御の元で汎用システムデータバスＣｄａｔａ［３１：０］を介して設定される。グレインサイズはシステム構成の機能でありパワーアップによるシステムの初期化時のみ設定すればよい。この機能を実施するコプロセッサを使用すれば主中央処理装置コアが誤動作中にこれらの値を改変する可能性が低減される。
【００４９】
これに対して、グレインレジスタ２０に記憶されたアクセスコントロールパラメータは中央処理装置コアで実行されるプログラム命令によって変化し作動中にも変化することがある。したがって、グレインレジスタ２０内に記憶されるアクセスコントロールパラメータは中央処理装置コアの制御の元で汎用データバスＣｄａｔａ［３１：０］を介して設定される。
【００５０】
３２ビットメモリアドレス内のビットを使用してグレインサイズを変える様子を図４に示す。例Ａは１ｋバイトグレインの場合を示す。この場合、０−９ビットはグレイン内のアドレスを表す。１３−１０ビットはグレイン番号を表す、すなわち、図３のバレルシフタ１６により選定され出力されるのは１３−１０ビットである。最上位３ビット、３１−２９ビット、はチャンク番号を表す。２８−１４ビットはそのグレインサイズを有する各チャンク内のグレイン外側のアドレス空間を表し未使用未保護アドレス空間である。この未使用未保護アドレス空間へアクセスしようとする試みは検出されアボートとなる。
【００５１】
図４の例Ｂは１つのグレインが１Ｍバイトのサイズを有する場合に対応する。この場合、１９−０ビットはグレインアドレスに対応し２３−２０ビットはグレイン番号に対応する。チャンク番号はやはり最上位３ビット、３１−２９ビット、により与えられる。
【００５２】
例Ｃは２５６バイトのグレインサイズに対応する。この場合、７−０ビットがグレインアドレスに対応し、１１−８ビットがグレイン番号に対応し３１−２９ビットがチャンク番号に対応する。
【００５３】
最後に、例Ｄは４Ｍバイトのグレインサイズに対応する。この場合、グレインアドレスは２１ビットから０ビットまでであり、グレインアドレスは２５−２２ビットの中にありチャンクアドレスはやはり３１−２９ビット中にある。４Ｍバイトのグレインサイズは本実施例でサポートされる最大サイズであるが（表１参照）、チャンク内のアドレス空間はまだ完全には充填されない。２８−２６ビットは未使用である。
【００５４】
図５に図３の回路の動作を示す。この場合、それぞれ２５６バイト、１ｋバイト、４Ｍバイト、および２５６ｋバイトのグレインサイズを有するチャンク０，２，４，および６によりメモリが構成される。これはチャンクレジスタ１２内に記憶されたさまざまな３ビットコードを反映している（表１参照）。
【００５５】
本実施例において、アドレス４０００３９ＢＣ（１６進）へのアクセスが試みられる。このアドレス（ｖａ［３１：２９］）の最上位３ビットは０１０である。これはＣｈｕｎｋ２に対応する。チャンクデコーダ１０はこれらの３ビットをデコードして００１の３ビットコードをグレインデコーダ１４へ出力するチャンクレジスタ１２の中の適切なレジスタへアクセスする。
【００５６】
グレインデコーダ１４は３ビットコード００１をデコードしてメモリアドレスｖａ［１３：１０］の４ビットに対応するビットラインをローとする。したがって、これらの４ビットが全アドレスｖａ［３１：０］から選別されバレルシフタ１６の出力は４ビットグレイン番号１１１０を有するようになる。
【００５７】
チャンクデコーダ１０の前記アクションおよびグレインデコーダ１４とバレルシフタ１６の組合せアクションによりチャンク番号およびグレイン番号がレジスタセレクタ１８へ送られその（第２のチャンクに対応する）第２のバンクからレジスタ番号Ｅ（１６進）が選出される。選定されたレジスタを黒で示す。次に選定されたグレインレジスタからの４つのアクセスコントロールパラメータが選定されたグレインレジスタから出力される。モードデコーダ２２が選定されたグレインレジスタからの２ビットａｐ［１：０］を受信し他の入力と共にデコードしてアボート信号を発生する。キャッシュ可能およびバッファ可能フラグは選定されたグレインレジスタから直接読み出される。
【００５８】
図６にメモリアドレス０００００９１９（１６進）へのアクセスを示す。このアドレスはＣｈｕｎｋ０内にある。チャンクレジスタはＣｈｕｎｋ０に対する３ビットグレインサイズコード０００を保持している。これはグレインデコーダ１４によりデコードされてバレルシフタ１６がｖａ［１１：８］ビットをグレイン番号として選定するようにされる。この場合、グレイン番号の４ビットは１００１である。レジスタセレクタ１８はチャンク仕様およびグレイン仕様に応答して第１バンクの１６個のレジスタの中のＣｈｕｎｋ０に対応するレジスタ９を選定する。
【００５９】
図７にアドレス８３０ＣＥ０６Ａへのアクセスを示す。このアドレスはＣｈｕｎｋ４内にある。Ｃｈｕｎｋ４は４Ｍバイトのグレインサイズを有している。このグレインサイズはグレインデコーダ１４へ送られる３ビットコード１１１により表される。グレインデコーダ１４およびバレルシフタ１６はグレイン番号を表す４ビットｖａ［２５：２２］を一緒に選定する。これらのビットは１１００である。したがって、グレイン番号およびチャンクによりグレインレジスタ２０の第３バンクからグレインレジスタＣ（１６進）が選定される。
【００６０】
最後に、図８にアドレスＣ００７８ＡＦ５へのメモリアクセスを示す。このアドレスはＣｈｕｎｋ６内にある。Ｃｈｕｎｋ６のグレインサイズは２５６ｋバイトである。したがって、グレイン番号はｖａ［２１：１８］ビット、すなわち０００１、として選定される。１グレイン以内ではしたがって、グレインレジスタ２０の第４バンクが選定される。
【００６１】
図９に集積回路２４を示す。集積回路２４は中央処理装置コア２６、メモリマネジメントユニット２８、内部データキャッシュ３０、ライトバッファ３２およびコプロセッサ３４を含んでいる。これらの機能ユニットはデータバスＣｄａｔａ［３１：０］、仮想アドレスバスｖａ［３１：０］および物理的アドレスバスｐａ［３１：０］により連結されている。中央処理装置コア２６は仮想アドレスｖａ［３１：０］をメモリマネジメントユニット２８へ通す。メモリマネジメントユニットは図３、図５、図６、図７および図８に関して検討したように仮想アドレスｖａ［３１：０］を分析する。この分析に応答して、メモリマネジメントユニット２８はキャッシュ可能信号Ｃ、バッファ可能信号Ｂおよびアボート信号Ａを出力する。キャッシュ可能信号Ｃは内部データキャッシュ３０へ通される。バッファ可能信号Ｂはライトバッファ３２へ通される。３つの信号は全て中央処理装置コア２６へ通される。
【００６２】
コプロセッサ３４はデータバスＣｄａｔａ［３１：０］に接続されていて通常のコプレッシング機能を実施しさらに初期化されるとシステムのグレインサイズ指定コードをチャンクレジスタ１２へ書き込むことができるようにされる。
【００６３】
図３に示すチャンクデコーダのチャンクアボート信号を発生するアクションにより実現されないチャンクへのメモリアクセスの試みが検出されアボートされる。
【００６４】
メモリマネジメントユニット２８は仮想アドレスの実アドレスへのマッピングも行う。
【００６５】
図１０に有効チャンク内のグレインの最上位アドレスとそのチャンクの頂部間のメモリアドレスへのメモリアクセスの試みを検出する機構を示す。このようなメモリアクセスはグレイン番号の頂部とチャンク番号の底部間で少なくとも１つのビットがハイであるメモリアドレスへのアクセスに対応する。チャンク番号の底部は常にｖａ［２８］ビットでありグレインアドレスの頂部は（２５６バイトグレインに対する）ｖａ［１２］ビットから（４Ｍバイトグレインに対する）ｖａ［２６］ビットの間で２ビットステップ変化する。これらの任意のビットの設定をＯＲゲート３６により検出することができる。各ビットはブランキング回路３８を介してＯＲゲート３６へ送られる。現在検出されたグレインデコーダ１４からのグレインサイズに応答して、これらの各ブランキング回路３８は１６のグレイン内の有効なグレインアドレスビットに対応するビットの通過を阻止する。グレインアドレス空間の頂部よりも上のビットだけがＯＲゲート３６へ通すことを許される。これらのビットのいずれかが設定されると、アボート信号が発生される。このアボート信号はチャンクデコーダ１０からのチャンクアボート信号およびモードデコーダ２２からの任意のアボート信号と共にＯＲされて複合アボート信号が発生される。
【００６６】
添付図を参照して本発明の実施例について詳細に説明してきたが、本発明はこれらの精密な実施例に限定はされず、当業者ならば特許請求の範囲に明記された本発明の範囲および精神を逸脱することなくさまざまな変更および修正が可能であると思われる。
【図面の簡単な説明】
【図１】３２ビットアドレス空間のメモリマップを示す図。
【図２】サイズの異なるサブセクションを有するアドレス空間のメインセクションを示す図。
【図３】メモリマネジメントユニットの一部を示す図。
【図４】サイズの異なるサブセクションに対するアドレス内のビット空間の配分を示す図。
【図５】サイズの異なるサブセクションを含むメインセクションを有する図３のシステムの動作を示す図。
【図６】サイズの異なるサブセクションを含むメインセクションを有する図３のシステムの動作を示す図。
【図７】サイズの異なるサブセクションを含むメインセクションを有する図３のシステムの動作を示す図。
【図８】サイズの異なるサブセクションを含むメインセクションを有する図３のシステムの動作を示す図。
【図９】メモリマネジメントユニットを含むさまざまな機能ユニットを有する集積回路を示す図。
【図１０】メインセクション内の最上位サブセクションよりも上のアドレス空間のエリアへの有効なメモリアクセスの試みを検出する機構を示す図。
【符号の説明】
１０  チャンクデコーダ
１２  チャンクレジスタ
１４  グレインデコーダ
１６    バレルシフタ
１８    レジスタセレクタ
２０    グレインレジスタ
２４    モードデコーダ
２６    中央処理装置コア
２８    メモリマネジメントユニット
３０    内部データキャッシュ
３２    ライトバッファ
３４    コプロセッサ
３６    ＯＲゲート
３８    ブランキング回路
【図１】
0003605205.tif 000004
【図２】
0003605205.tif 000005
【図３】
0003605205.tif 000006
【図４】
0003605205.tif 000007
【図５】
0003605205.tif 000008
【図６】
0003605205.tif 000009
【図７】
0003605205.tif 000010
【図８】
0003605205.tif 000011
【図９】
0003605205.tif 000012
【図１０】
0003605205.tif 000013