データ処理装置であって、共有メモリ内のデータへのアクセスを必要とするデータ処理動作を実行するための複数の処理装置を備える処理回路とアクセス動作拡張値を記憶保存するための設定状況記憶装置と、前記複数の処理装置による共有アクセス動作の取り扱いを調整するための共有アクセス調整回路と、を備え、それぞれの前記処理装置は、その処理装置によるアクセスのために前記データのサブセットを記憶保存するための、それと関連付けられたローカルキャッシュ構造と、前記ローカルキャッシュ構造に対して行われるアクセス動作を取り扱うためのアクセス制御回路とを有し、前記アクセス動作の少なくとも1つのタイプは、ローカルアクセス動作又は前記共有アクセス動作として行われ、前記共有アクセス動作を受けると、前記アクセス制御回路が前記関連付けられたローカルキャッシュ構造へのローカルアクセス動作を行うのに加えて前記共有アクセス調整回路に共有アクセス信号を送り、前記ローカルアクセス動作を受けると、前記アクセス制御回路が、前記アクセス動作拡張値が設定されていなければ前記共有アクセス調整回路に共有アクセス信号を送ることなく前記関連付けられたローカルキャッシュ構造に対してローカルアクセス動作を行い、前記アクセス動作拡張値が設定されていれば前記ローカルアクセス動作を共有アクセス動作として対処するように構成されるデータ処理装置。前記処理回路上で作動するソフトウエアが複数の階層レベルのソフトウエアから成り、前記アクセス動作拡張値が所定の階層レベルで設定及び設定解除され、前記アクセス制御回路が、前記所定の階層レベルより低い階層レベルのソフトウエアによって行われるローカルアクセス動作を取り扱う際に、前記アクセス動作拡張値だけに応答することを特徴とする、請求項1記載のデータ処理装置。前記少なくとも1つのタイプのアクセス動作が、前記ローカルキャッシュ構造の少なくとも1つのエントリー内に保存されているデータの状態を更新するために行われるメインテナンスアクセス動作を備えていることを特徴とする、請求項1又は請求項2記載のデータ処理装置。前記メインテナンスアクセス動作が、前記ローカルキャッシュ構造の前記少なくとも1つのエントリーに関して、除去動作と無効化動作のうちの少なくとも1つを実行することを特徴とする、請求項3記載のデータ処理装置。前記処理回路がその処理回路上での少なくとも1つの仮想記憶装置の作動実行をサポートするためにハイパーバイザソフトウエアを作動させ、その仮想記憶装置が少なくとも1つのタイプのアクセス動作を行うことを特徴とする、請求項1から4のいずれか1項に記載のデータ処理装置。前記少なくとも1つの仮想記憶装置のそれぞれが1つ以上のアプリケーションプログラムを実行させるオペレーティングシステムを備えていることを特徴とする、請求項5記載のデータ処理装置。前記ハイパーバイザソフトウエアが前記オペレーティングシステムを前記複数の処理装置のうちの第1の処理装置から前記複数の処理装置のうちの第2の処理装置に移行させた場合に、前記ハイパーバイザソフトウエアが前記アクセス動作拡張値を設定させることを特徴とする、請求項6記載のデータ処理装置。前記アクセス動作拡張値の設定に続いて、前記アクセス制御回路が前記少なくとも1つの仮想記憶装置によって行われたすべてのローカルアクセス動作を前記共有アクセス動作として対処するが、引き続き、前記ハイパーバイザソフトウエアによって行われたローカルアクセス動作をローカルアクセス動作として取り扱うことを特徴とする、請求項7記載のデータ処理装置。前記ローカルキャッシュ構造が、前記データ処理動作のためのオペランドデータとして用いられたデータをキャッシュ化するためのデータキャッシュであることを特徴とする、請求項1から8のいずれか1項に記載のデータ処理装置。前記ローカルキャッシュ構造が、前記共有メモリ内のページテーブルから得られ、前記関連付けられた処理装置内で仮想アドレスから物理アドレスへの変換を行う際に用いられるページテーブルデータをキャッシュ化するための変換ルックアサイドバッファを備えていることを特徴とする、請求項1から8のいずれか1項に記載のデータ処理装置。前記ローカルキャッシュ構造が、前記データ処理動作を定義するために用いられる命令をキャッシュ化するための命令キャッシュであることを特徴とする、請求項1から8のいずれか1項に記載のデータ処理装置。前記共有アクセス調整回路が、前記共有アクセス信号に応答して、そのアクセス制御回路が前記共有アクセス信号を発行した処理装置以外の各処理装置に対してローカルアクセス動作要求を一斉に送り、それによってそのローカルアクセス動作がそれら各処理装置上で実行されることを特徴とする、請求項1から11のいずれか1項に記載のデータ処理装置。前記共有アクセス調整回路が前記共有アクセス信号に応答して、そのローカルキャッシュ構造が前記共有アクセス動作で識別されたデータを含んでいる可能性のある前記複数の処理装置のうちの処理装置のサブセットを判定して、そのサブセット内の処理装置のそれぞれにローカルアクセス動作要求を送ることを特徴とする、請求項1から11のいずれか1項に記載の処理装置。前記処理装置のうちの第1の処理装置によってメモリバリア動作が実行されると、前記処理装置のうちの前記第1の処理装置が、前記アクセス動作拡張値が設定されていれば、メモリバリア信号を送って前記メモリバリア動作を前記処理装置のうちの少なくとも1つの他の処理装置で実行させるようにすることを特徴とする、請求項1から13のいずれか1項記載のデータ処理装置。前記処理装置のうちの前記第1の処理装置が前記メモリバリア信号を前記共有アクセス調整回路に送って、前記メモリバリア動作を前記処理装置のうちの前記少なくとも1つの処理装置上で実行させることを特徴とする、請求項14記載のデータ処理装置。前記共有アクセス調整回路がキャッシュコヒーレンスプロトコルを用いるキャッシュコヒーレンス回路を備えており、各処理装置によってアクセスされた前記データが確実に最新の状態に更新されていることを特徴とする、請求項1から15のいずれか1項に記載のデータ装置。前記設定状況記憶装置が前記複数の処理装置のそれぞれに対して個別のアクセス動作拡張値を記憶保存しており、ローカルアクセス動作を取り扱う際に前記アクセス制御回路がその関連付けられたアクセス動作拡張値を参照することを特徴とする、請求項1から16のいずれか1項に記載のデータ装置。前記複数の処理装置が対称型マルチプロセッシングSMP処理回路の複数のプロセッサを形成していることを特徴とする、請求項1から17のいずれか1項に記載のデータ装置。共有メモリ内のデータへのアクセスを必要とするデータ処理動作を行うための複数の処理装置を有しているデータ処理装置であって、各処理装置がその処理装置によるアクセスのための前記データのサブセット保存用に関連付けられたローカルキャッシュ構造を有しているデータ処理装置、の内の前記ローカルキャッシュ構造に対して行われるアクセス動作を取り扱うための方法であって、前記複数の処理装置による共有アクセス動作の取り扱いを調整する共有アクセス調整回路を設けるステップと、アクセス動作拡張値を記憶保存するステップと、前記ローカルキャッシュ構造の1つに対して行われる前記共有アクセス動作を取り扱う際に、その1つのローカルキャッシュ構造に対するローカルアクセス動作を実行するのに加えて、前記共有アクセス調整回路に共有アクセス信号を送るステップと、前記ローカルキャッシュ構造の1つに対して行われるローカルアクセス動作を取り扱う際に、i前記アクセス動作拡張値が設定されていなければ、前記共有アクセス調整回路に共有アクセス信号を送らずに、前記ローカルキャッシュ構造の前記1つに対してローカルアクセス動作を行い、ii前記アクセス動作拡張値が設定されていれば、そのローカルアクセス動作を共有アクセス動作として対処するステップ、とを備えるアクセス動作を取り扱う方法。データ処理装置であって、共有メモリ内のデータに対するデータ処理動作を行うための複数の処理装置手段を備え、各処理装置手段が、その処理装置手段によるアクセス用の前記データのサブセットを記憶保存するための、それと関連付けられたローカルキャッシュ構造手段と、そのローカルキャッシュ構造手段に対して行われるアクセス動作を取り扱い、そのローカルキャッシュ構造に対して行われる少なくとも1つのタイプのアクセス動作がローカルアクセス動作か共有アクセス動作として行われるアクセス制御手段と、を有する処理手段回路と、アクセス動作拡張値を記憶保存するための設定状況記憶保存手段と、前記複数の処理装置手段による前記共有アクセス動作を調整するための共有アクセス調整手段と、を備え、前記共有アクセス動作を受けると、前記アクセス制御手段が、関連付けられたローカルキャッシュ構造に対してローカルアクセス動作を実行するに加えて前記共有アクセス調整手段に対して共有アクセス信号を送り、前記ローカルアクセス動作を受けると、前記アクセス制御手段が、アクセス動作拡張値が設定されていなければ共有アクセス調整手段に対して共有アクセス信号を送らずにその関連付けられたローカルキャッシュ構造手段にローカルアクセス動作を行い、アクセス動作拡張値が設定されていればそのローカルアクセス動作を前記共有アクセス動作として対処するデータ処理装置。キャッシュメインテナンス動作は、そのローカルキャッシュ構造への1回以上のエントリーの状態を更新するために、オペレーティングシステムによってしばしば行われる。例えば、オペレーティングシステムがハイパーバイザソフトウエア層によってハードウエアプラットホームからシールドされているモノプロセッサオペレーティングシステムであるような場合に、そのオペレーティングシステムがそのデータ処理装置が備えている複数の処理装置を十分に認識していない時には、そのキャッシュメインテナンス動作に関連性のあるデータが別の処理装置のローカルキャッシュ構造に保存されている可能性があっても、キャッシュメインテナンス動作が、そのオペレーティングシステムが現在作動している処理装置に関係するローカルキャッシュ構造に関してのみ行われることが起こり得る。純粋に例として示す場合には、特定のアドレス範囲やあるいは特定のプロセス識別子プロセスIDに対するすべてのキャッシュ化されたエントリーを無効化すべきだと認識している状況を想定する。その動作が、オペレーティングシステムが現在作動している処理装置のローカルキャッシュ構造に関してのみ行われた場合に、そのようなキャッシュメインテナンス動作はその特定のアドレス範囲内にあったり、あるいはその特定のプロセスIDに関連したそのローカルキャッシュ構造内でキャッシュ化されているすべてのエントリーを正しく無効化する。しかしながら、他の処理装置のいずれかに対応するローカルキャッシュ構造内に保持されているデータに対しては何の動作も行われない。前に述べたように、これらの処理装置はそのようなキャッシュメインテナンス動作の対象として意図されたデータを依然として保持している可能性があるが、そのオペレーティングシステムがハードウエアアーキテクチャを認識していないので、それらのエントリーがそのキャッシュメインテナンス動作の対象にはならない。こうした問題はハイパーバイザソフトウエアが用いられた場合に起きるだけでなく、ハイパーバイザソフトウエア層が用いられている場合にもしばしば起きる可能性がある。特に、それぞれ1つ以上のアプリケーションプログラムを作動させている1つのオペレーティングシステムを含む処理回路内の少なくとも1つの仮想記憶装置の実行をサポートするために、ハイパーバイザソフトウエアを実行してしまう可能性がある。こうした状況では、そのオペレーティングシステムとその1つ以上のアプリケーションプログラムは根底にあるハードウエアプラットホームに関する知識を保有している必要はなく、そして特に、多重処理システムが使用中であることを必ずしも認識していない場合がある。従って、そのアプリケーションプログラム及び/又はそのオペレーティングシステムがモノプロセッサ環境を想定したキャッシュメインテナンス動作を実行してしまう可能性があり、従って、前に述べたような問題を引き起こす可能性がある。この問題を解決するための1つの方法は、ハイパーバイザが、そのオペレーティングシステム及び/又はアプリケーションが1つの処理装置から別の処理装置に移行されている切り換えられていると表現される場合もある時に、別の形態のキャッシュメインテナンス動作を行うこと。例えば、切り換えられたオペレーティングシステム及び/又はアプリケーションプログラムが新しいプロセッサコアに対して動作を開始出来るようにされる前に、ハイパーバイザがデータキャッシュ除去及び無効化動作、命令キャッシュ無効化動作、TLB無効化動作などを広範に行う場合もある。しかしながら、そのようなアプローチが問題を解決する可能性はあるが、そのことは性能にかなりの影響を及ぼし、そして、特に多重処理プラットホームを用いることでもたらされる可能性のある利点の実現を阻んでしまう。別の方式は、そのオペレーティングシステム及び/又はアプリケーションを1つのソース処理装置から目的の処理装置に移行している時に、ハイパーバイザがその目的のプロセッサに後で行われる可能性のある動作の一部の目標になる可能性があることをマークする方法である。その場合、ハイパーバイザソフトウエアはそのような動作をソースプロセッサと同時に目的のプロセッサに対しても行う必要があるかどうかも判断することになろう。しかし、そのようなアプローチの重大な欠陥は、その目的のプロセッサに対して行われる動作をトラップする必要があることである。このことは、ハイパーバイザソフトウエアが必要とされる以上に呼び出されるので、性能上のかなりの負担を生じさせることになる。特に、そのトラッピング機能が微細ベースに対して設計されていない場合には、そのハイパーバイザソフトウエアはそのソースプロセッサとの関連で何の動作も必要とされないような多数の動作のために呼び出されてしまう可能性がある。さらに、ハイパーバイザソフトウエアがそのソースプロセッサと同時に目的のプロセッサに対してもそのような動作を行う必要性があるかどうかを理解する必要性があるので、複雑性に関するかなり重大な問題が生じてしまう。従って、それぞれがそのようなローカルキャッシュ構造を有している複数の処理装置を有するデータ処理システム内のローカルキャッシュ構造に対して行われるアクセス動作を取り扱うためのより改良された技術を提供することが望ましい。第1の態様から鑑みると、本発明は、共有されたメモリ内のデータにアクセスする必要があるデータ処理動作を行うための複数の処理装置を備えたデータ処理装置を提供するものであり、それぞれの処理装置は当該処理装置によってアクセスされる前記データのサブセットを保存するためのそれに関連したローカルキャッシュ構造と、そのローカルキャッシュ構造に対して行われるアクセス動作、ローカルアクセス動作か共有アクセス動作として行われるそのローカルキャッシュ構造に対する少なくとも1つのタイプのアクセス動作を取り扱うアクセス制御回路を備える。さらにこのデータ処理装置は、アクセス動作拡張値を記憶保存するための状況設定記憶装置と、前記複数の処理装置による共有アクセス動作の取り扱いを調整する共有アクセス調整回路とを含んでいる。そして、その共有アクセス動作を受け取ると、アクセス制御回路がその関連するローカルキャッシュ構造に対するローカルアクセス動作を行うのに加えて共有アクセス調整回路に共有アクセス信号を送り、そのローカルアクセス動作を受けると、前記アクセス拡張値が設定されていなければその共有アクセス調整回路に共有アクセス信号を送らずにそのローカルアクセス動作を行うように構成され、アクセス動作拡張値が設定されていれば、そのローカルアクセス動作を前記共有アクセス動作として取り扱うように構成されている。本発明によれば、一定のタイプのアクセス動作はローカルアクセス動作あるいは共有アクセス動作として行うことができる。その場合、そのアクセス動作拡張値が設定されているかどうかに基づいてローカルアクセス動作が取り扱われるような形態でアクセス動作拡張値を記憶保存するために、設定状況記憶装置が設けられる。1つのローカルキャッシュ構造に関連したアクセス制御回路によって共有アクセス動作が受け取られ、そしてそのアクセス動作拡張値の値が関係のないものであれば、そのアクセス制御回路は単にその関連したローカルキャッシュ構造に対するローカルアクセス動作と行って、さらに、共有アクセス調整回路に共有アクセス信号を送るだけである。そして、共有アクセス調整回路はその他の処理装置に信号を一斉送信して、そのローカルアクセス動作がそれらの関連しているローカルキャッシュ構造に関して行われるようにするか、あるいは、その共有アクセス調整回路が保持している一定の状態に関してその信号を送るべき処理装置のサブセットを判定する。アクセス制御回路がローカルアクセス動作を受けた時に、アクセス動作拡張値が設定されていなければ、そのアクセス制御回路は単にその関連するローカルキャッシュ構造に対するローカルアクセス動作を実行するだけである。しかし、アクセス動作拡張値が設定されていれば、その場合は、本発明に従って、唯1つのローカルアクセス動作が受け取られただけでも、そのアクセス制御回路はそのローカルアクセス動作を共有アクセス動作として取り扱う。そのような方式によれば、上に述べた問題が軽減されることが理解されよう。特に、一度アクセス動作拡張値が設定されてしまうと、ローカルアクセス動作が共有アクセス動作として取り扱われるので、従って、そのローカルアクセス動作を行わせるエンティティがその多重処理システムの構造について認識しているかどうか、あるいは、それが標的にしようとしているデータが別の処理装置のローカルキャッシュ構造に実際に記憶保存されている可能性は問題とはならない。さらに、本発明による方式は、多重処理プラットホーム上で動作するという性能上の利点が保持されているので、前に述べた機構と比較して、性能をかなり向上させ、複雑さを軽減してくれる。さらに、ハイパーバイザソフトウエアが用いられる実施形態では、どんなローカルアクセス動作もトラップする必要はないし、ハイパーバイザソフトウエアがそのようなトラップされた動作をどのように処理すべきかを決めるためにそれらの動作を理解する必要もない。アクセス動作拡張値が一度設定されると、一実施形態においては、その後のすべてのローカルアクセス動作を、そのソースには関係なく共有アクセス動作として取り扱わせることができる。しかしながら、別の実施形態においては、処理回路上で実行されるソフトウエアが複数の階層レベルのソフトウエアから成り、所定の階層レベルで実行されるソフトウエアによって、アクセス動作拡張値が設定されたり設定解除されたりし、アクセス制御回路は、前記所定の階層レベルより低い階層レベルのソフトウエアによって行われるローカルアクセス動作を取り扱う場合、それに応答するだけである。従って、1つの例として、ハイパーバイザソフトウエアが用いられている実施形態を想定すると、そのハイパーバイザソフトウエアが最も高い階層レベルを形成し、オペレーティングシステムがより低い階層レベルを形成し、そしてそのオペレーティングシステム上で動作するアプリケーションプログラムがさらに低い階層レベルを形成する場合がある。ハイパーバイザレベルでアクセス動作拡張値が設定されると、そのオペレーティングシステムやアプリケーションプログラムによって行われるどのローカルアクセス動作も共有アクセス動作として取り扱われ、ハイパーバイザソフトウエアはローカルアクセス動作として取り扱われるローカルアクセス動作を引き続き行うことができる。これは、例えば、オペレーティングシステムがモノプロセッサオペレーティングシステムであって、従ってその処理回路の多重処理的性質を認識していない場合に有益である。別の例でも、そのオペレーティングシステムが処理回路の多重プロセッサ的性質を認識しており、例えば、1つの動作がどのプロセッサを対象に行われるべきかを認識するような方法で最適化されているが、その知識がそのオペレーティングシステムがハイパーバイザの下で実行しているような、間違っている可能性があるような場合でも有益である。別の実施形態において、アクセス動作拡張値がオペレーティングシステムによって設定される場合は、その下層のアプリケーションプログラムによって行われるすべてのローカルアクセス動作は共有アクセス動作として取り扱われるが、そのオペレーティングシステムそして、そのオペレーティングシステムの上位にあるすべてのハイパーバイザレベルは、アクセス制御回路によってローカルアクセス動作として取り扱われるローカルアクセス動作を引き続き行うことができる。ローカルアクセス動作と共有アクセス動作のいずれとしてでも行うことができる少なくとも1つのタイプのアクセス動作は、種々の形態を採ることができる。一実施形態において、1つのそのようなアクセス動作はローカルキャッシュ構造の少なくとも1つのエントリーに記憶保存されているデータの状態を更新するために行われるメインテナンスアクセス動作である。従って、メインテナンスアクセス動作は必ずしもキャッシュ構造内に保存されているデータ自体を更新しなくても、その代わりにそのデータに関連したローカルキャッシュ構造内に保持された関連した状態への変更をもたらす。1つの特殊な実施形態では、メインテナンスアクセス動作はそのローカルキャッシュ構造内の前記少なくとも1つのエントリーに対する除去動作か無効化動作のうちの少なくとも1つを実行する。除去動作はすべてのダーティーな、そして有効なデータをメモリに追い出し、ダーティーなデータがメモリに保持されている対応するデータより新しいデータになる。そのようなメインテナンスアクセス動作は通常はデータキャッシュに関連して行われる。無効化動作は、例えば、そのエントリーに関連した有効ビットをリセットすることによって、そのローカルキャッシュ構造内の特定のエントリーの現在の内容を無効にする。無効化動作は、例えば、命令キャッシュ、データキャッシュ、TLBなどの種々の異なったローカルキャッシュ構造との関連でしばしば用いられる。一実施形態において、処理回路はハイパーバイザソフトウエアを実行してその処理回路上の少なくとも1つの仮想記憶装置の実行をサポートし、その仮想記憶装置は前記の少なくとも1つのタイプのアクセス動作を行うように構成される。各仮想記憶装置は通常1つ以上のアプリケーションプログラムを実行するオペレーティングシステムによって構成される。上にも述べたように、多重処理システム内のそのようなハイパーバイザソフトウエアの1つの使用は、モノプロセッサにその多重処理システムで実行すべきオペレーティングシステムを認識できるようにして、そのハイパーバイザソフトウエアがハードウエアプラットホームの特殊な構造をそのオペレーティングシステムから遮蔽できるようにするためである。しかしながら、そのオペレーティングシステムが多重プロセッサで使用可能のものであっても、ハイパーバイザソフトウエアの制御の下でそのようなオペレーティングシステムを実行することには依然として利点があり得る。例えば、多重プロセッサで使用可能にされたオペレーティングシステムを、複数のオペレーティングシステムが所定の多重プロセッサシステム上で共存することが求められた場合に、ハイパーバイザソフトウエアの制御下で実行させることができる。こうした方式によって、2つの知られているオペレーティングシステムをそのいずれかを修正しなくても、そのハードウエア上で同時並行的に実行させることができる。別の例として、ハイパーバイザソフトウエアはプロセッサのパワーアップ及びダウンがそのハイパーバイザの制御下で行われる場合に、多重プロセッサシステム内でしばしば用いられることもある。そのような実施形態では、オペレーティングシステムは、通常はその上で作動しているハードウエアが作業負荷に応じて異なった数のプロセッサを有していることを認識しない。ハイパーバイザレベル内で多重プロセッサシステムのパワーアップ/ダウンを制御することにより、OEMベンダーは必要とされる多重オペレーティングシステムに修正を加えることなく、付加価値を提供することができる。ハイパーバイザソフトウエアを用いるのは、通常は、ある時点でオペレーティングシステムを複数の処理装置のうちの1つの処理装置から別の処理装置に移動させて、その移動プロセス後に、そのオペレーティングシステムが、それが移動させられた処理装置上で、下層に存在するすべてのアプリケーションと共に動作を再開させるようにする場合である。1つの特殊な実施形態で、ハイパーバイザソフトウエアが1つのオペレーティングシステムをそのような状態で移動させた場合、そのハイパーバイザソフトウエアはアクセス動作拡張値を設定させる。そのアクセス動作拡張値の設定に続いて、アクセス制御回路が前記少なくとも1つの仮想記憶装置によって行われたすべてのアクセス動作を共有アクセス動作として取り扱うが、そのハイパーバイザソフトウエアによって行われたローカルアクセス動作は引き続きローカルアクセス動作として取り扱う。前述のように、ローカルキャッシュ構造は様々な形態を採ることができる。一実施形態において、ローカルキャッシュ構造は前記データ処理動作に関するオペランドデータとして用いられるキャッシングデータ用のデータキャッシュである。あるいは、そのローカルキャッシュ構造は前記共有メモリ内のページテーブルから得られて関連する処理装置内で仮想アドレスから物理アドレスへの変換を行う場合に用いられるページテーブルデータをキャッシングするためのトランスレーションルックアサイドバッファで構成することもできる。別の例では、ローカルキャッシュ構造は前記データ処理動作を定義するために用いられる命令をキャッシングするための命令キャッシュで構成することもできる。さらに別の例で、そのローカルキャッシュ構造を1つの分岐を取り入れるか取り入れないかを予測する場合に分岐予測装置によって参照されるデータを保存するために用いられる分岐履歴バッファや、分岐命令のためのターゲットアドレスを保存するために用いられる分岐ターゲットバッファで構成することもできる。共有アクセス調整回路が共有アクセス信号に対応できるようにする方法は多数ある。一実施形態において、共有アクセス調整回路は前記共有アクセス信号に応答して、そのアクセス制御回路が前記アクセス信号を出した処理装置以外の処理装置のそれぞれにローカルアクセス動作要求を一斉に送り、それによって、そのローカルアクセス動作がそれら処理装置のそれぞれで実行される。従って、そのような実施形態では、共有アクセス調整回路は最初の共有アクセス動作の対象であるデータをどの処理装置が含んでいるのかつまり、その最初の共有アクセス動作がその通りに行われた共有アクセス動作であるか、あるいは、アクセス動作拡張値が設定されているのでアクセス制御回路によって共有アクセス動作にアップグレードされたローカルアクセス動作であるかを判定しようとは試みない。その代わりに、共有アクセス調整回路は単にそれぞれの処理装置に対して要求を送り、それらの処理装置に、最初の共有アクセス動作によって指定されたデータに関してローカルアクセス動作を行わせるだけである。別の実施形態において、共有アクセス調整回路は前記アクセス信号に応答して、そのローカルキャッシュ構造が共有アクセス動作によって識別されたデータを含んでいる可能性のある前記複数の処理装置から処理装置のサブセットを判定して、そのサブセットのそれぞれの処理装置にローカルアクセス動作要求を送る。そのような方式は、共有アクセス調整回路がそのデータがどこでキャッシュ化されたかについてのなんらかの記録を保持しており、従って、その特定のデータに関して、どのローカルキャッシュ構造がそのデータのコピーを記憶している可能性があるかが分かっているような場合に利用可能である。これによって、その共有アクセス調整回路によって出された要求を処理装置のサブセットに限定して、それによって、エネルギー効率ゲインを生み出し、可能性としては不必要なアクセス動作が実行される回数を減少することによって性能を向上させる可能性も生まれる。上に述べた本発明の実施形態の技術はアクセス動作との関連で用いられるが、その技術は他のタイプの動作との関連で用いることもできる。例えば、1つのアプリケーションプログラムが、例えば書き込み動作など前のメモリ動作がそのシステムの他の部分で確実に見えるようにしたり、あるいは、後のメモリ動作がそのような前のメモリ動作と順序づけられることを求めているような場合に、そのようなアプリケーションプログラムがメモリアクセスの所定の順序付けを強制的に実行するか、あるいは、前のメモリ動作の結果が確実に見えるようにされるために、アプリケーションプログラムがメモリバリア動作を行うことが知られている。しかしながら、当該メモリ動作とメモリバリア動作の間にそのアプリケーションプログラムが1つの処理装置から別の処理装置に移行されている場合は、そのメモリバリア動作が意図した目的を達成できない可能性もある。しかし、一実施形態によれば、前記処理装置の最初の1つによるメモリバリア動作が実行されると、その最初の処理装置が、前記アクセス動作拡張値が設定されていれば、メモリバリア信号を送って前記メモリバリア動作を前記複数の処理装置のうちの少なくとも1つの処理装置上で実行させるように構成される。他の処理装置にメモリバリア信号と従ってメモリバリア動作をローカルで実行する必要性を通知するために、専用伝達経路を設けることもできる。しかしながら、一実施形態においては、前記複数の処理装置のうちの最初の装置がそのメモリバリア信号を前記共通アクセス調整回路に送って、そのメモリバリア動作を前記複数の処理装置のうちの少なくとも1つの他の装置上で実行させる。従って、そのような実施形態では、必要な処理装置に対するメモリバリア動作の伝達を管理するために共有アクセス調整回路が再利用される。共有アクセス調整回路は様々な形態を採ることができる。しかしながら、一実施形態においては、共有アクセス調整回路はそれぞれの処理装置によってアクセスされる前記データが確実に更新されるようにするためにキャッシュコヒーレンスプロトコルを採用するキャッシュコヒーレンス回路を備える。一実施形態においては、システム全体のために単一のアクセス動作拡張値を設けることができる。しかしながら、別の実施形態においては、設定状況記憶装置が前記複数の処理装置のそれぞれに対して個別のアクセス動作拡張値を保存しており、アクセス制御回路はローカルアクセス動作を取り扱う時にその関連するアクセス動作拡張値を参照するようになっている。そのような一実施形態において、何らかの中央記憶装置によってそのような設定状況記憶装置が与えられる場合もあるし、あるいは、各処理装置内に個別の記憶保存装置が設けられそれらが集合的に設定状況記憶装置を形成し、各処理装置に対して適切なアクセス動作拡張値がローカルに記憶保存されるようになっている。複数の処理装置が種々の形態を採ることもでき、一実施形態においては、それら複数の処理装置のそれぞれがプロセッサを備えている。これらのプロセッサはすべてが同一のものでなくてもよいが、一実施形態においては、それら複数のプロセッサが対称型マルチプロセッシングSMP処理回路を形成している。第2の態様から鑑みると、本発明は1つのデータ処理装置内のローカルキャッシュ構造に対して行われるアクセス動作を取り扱う方法を提供し、そのデータ処理装置は共有メモリ内のデータに対するアクセスを必要とするデータ処理動作を実行するための複数の処理装置を有しており、各処理装置はその処理装置によるアクセスするために前記データのサブセットを記憶保存するためにそれ関連付けられたローカルキャッシュ構造を有している。さらに、その方法は、前記複数の処理装置による共有アクセス動作の取り扱いを調整するための共有アクセス調整回路を設けるステップと、アクセス動作拡張値を記憶保存するステップと、それらローカルキャッシュ構造の1つに対して行われる前記共有アクセス動作を取り扱う場合に、前記複数のローカルキャッシュ構造のうちの前記1つのローカルキャッシュ構造に対するローカルアクセス動作を実行するのに加えて、共有アクセス調整回路に対して共有アクセス信号を送るステップと、前記複数のローカルキャッシュ構造の1つに対して行われるローカルアクセス動作を取り扱う場合に、そのアクセス動作拡張値が設定されていなければ、共有アクセス調整回路に対して共有アクセス信号を送らずに前記複数のローカルキャッシュ構造の前記1つの構造に対してローカルアクセス動作を実行し、そしてアクセス動作拡張値が設定されていれば、その共有アクセス動作に対処するステップを備える。第3の態様から鑑みると、本発明はデータ処理装置を提供し、このデータ処理装置は共有メモリ内のデータに対するアクセスを必要とするデータ処理動作を実行するための複数の処理装置手段を備えており、各処理装置手段はその処理装置手段によるアクセス用の前記データのサブセットを記憶保存するためにそれと関連付けられたローカルキャッシュ構造手段と、そのローカルキャッシュ構造に対して行われるアクセス動作を取り扱うためのアクセス制御手段を有しており、そのローカルキャッシュ構造手段に対する少なくとも1つのタイプのアクセス動作がローカルアクセス動作か又は共有アクセス動作として行われることを特徴としている。このデータ処理装置はさらに、1つのアクセス動作拡張値を記憶保存するための設定状況記憶手段と、前記複数の処理装置手段による前記共有アクセス動作の取り扱いを調整するための共有アクセス調整手段を含んでおり、前記共有アクセス動作を受け取ると、アクセス制御手段がその関連付けられたローカルキャッシュ構造に対するローカルアクセス動作を実行するのに加えて共有アクセス調整手段に共有アクセス信号を送り、前記ローカルアクセス動作を受け取ると、アクセス制御手段が、アクセス動作拡張値が設定されていなければ、共有アクセス調整回路に共有アクセス信号を送らずに関連付けられたローカルキャッシュ構造手段に対してローカルアクセス動作を実行し、そして、アクセス動作拡張値が設定されていれば、そのローカルアクセス動作を前記共有アクセス動作として処理する。以下に、添付図面に図示されている実施形態を参照して、例示のみを目的として本発明をさらに詳しく説明する。図1は一実施形態による多重処理システムを示している。複数の処理装置10、40が設けられており、図示されている例では、両方も処理装置とも1つのプロセッサコアと関連付けられたローカルキャッシュ構造を含んでいる。プロセッサは同一である必要はないが、一実施形態においては、これらのプロセッサは同様の構造を持ち、SMPシステムを形成している。図に示すように、第1の処理回路10は一連の命令を実行するためのコア20を備えている。コア20は1つ以上のキャッシュ24へのアクセスを有しており、これらのキャッシュ24は一実施形態においては命令キャッシュと個別データキャッシュで構成することができる。仮想アドレスから物理アドレスへの変換などのメモリアクセス制御動作を行う場合には、メモリ管理装置MMU26によって参照されるTLB28のような他のローカルキャッシュ構造を設けることもできる。前記ローカルキャッシュ構造、この例ではキャッシュ24とTLB28に関するメインテナンス動作を行うためにメインテナンス回路22も設けられている。一実施形態において、このメインテナンス回路22はプロセッサコア20の一部を形成しているとみなすことができ、例えば、コア20によって提供される実行原理の1つを形成していると考えることができる。プロセッサ10はプロセッサの動作を構成するために用いられる1つ以上の設定状況レジスタ30も含んでいる。本発明のこれらの実施形態によれば、この設定状況レジスタ30はキャッシュメインテナンス動作を実行する時にメインテナンス回路22が参照する1つのアクセス動作拡張値を含んでいる。具体的には、後でより詳細に説明するように、このアクセス動作拡張値の値に基づいて、メインテナンス回路はローカル動作として指定されたキャッシュメインテナンス動作をどのように取り扱うかを変更する。図示してある実施形態では、プロセッサ40がプロセッサ10に対して同じ形態で構成されており、従って、コア50、メインテナンス回路52、キャッシュ54、MMU56内部のTLB58、及び1つ以上の設定状況レジスタ60を含んでいる。種々の処理装置10、40はコヒーレント相互接続70を介して共有メモリ75に接続されている。コヒーレント相互接続70は種々のローカルキャッシュ構造内に保存されているデータを確実にコヒーレントな状態で保存するので、従って、各プロセッサはそのデータを同じように見ている。それ故、例として言えば、コア50がそのデータキャッシュ54内に無いデータアクセス要求を出した場合、これはコヒーレント相互接続70に要求を出させることになり、それが要求されたデータが処理装置10の対応するデータキャッシュ24内に保存されているかどうかを判断することになる。保存されていれば、そのデータは処理装置10のデータキャッシュから引き出されて、処理装置40に提供される。コヒーレント相互接続70によって用いられるコヒーレンスプロトコルに従って、処理装置10のデータキャッシュ内の関連性のあるデータを無効としてマークすることもできるし、あるいは、処理装置10と40の両方がそのデータのコピーを共有のものとマークすることもできる。このことは、次に、そのデータに関連して行われるその後のアクセス動作がどのように取り扱われるかに影響を及ぼす。要求されているデータをその他のキャッシュの1つに見出せない場合だけ、そのデータはメモリ75からアクセスされる。そのような技術はデータのコヒーレンスを維持する上ではうまく働くが、ハードウエアで作動するオペレーティングシステムとより下層のアプリケーションがそのハードウエアの多重プロセッサ的な性質を認識していないと、複数の仮想記憶装置を稼動させようとしてハイパーバイザソフトウエアを用いる場合に起きるような問題が発生する可能性がある。特に、図1に示すように、ハイパーバイザソフトウエア80が処理回路上の少なくとも1つの仮想記憶装置90の作動をサポートするために、複数の処理装置10、40から成るハードウエアプラットホーム上で実行される場合がある。各仮想記憶装置は1つ以上のアプリケーションプログラム94、96を作動させるオペレーティングシステム92から成る。以下により詳細に述べるように、本発明の前記の実施形態の技術は単一の仮想記憶装置90だけがハイパーバイザ80によって実行される場合に用いることができるが、その作動がハイパーバイザソフトウエアによってサポートされる2つ以上の仮想記憶装置が存在する場合もある。従って、点線で囲んだ箇所に示すように、複数のアプリケーションプログラム104、106を作動させるオペレーティングシステム102なら成る少なくともさらに1つの仮想記憶装置100を設けることもできる。動作中に、ハイパーバイザソフトウエア80が、例えば、各処理装置10、40のデータ流負荷を考慮して性能を増大させようとする場合のように、仮想記憶装置を1つの処理装置から別の処理装置に移行させることができる。下層にあるハードウエアがハイパーバイザソフトウエア80によってその仮想記憶装置から遮蔽されているので、仮想記憶装置90は、通常、処理装置10と40のいずれで作動しているかを認識しておらず、さらに、その動作が1つの処理装置から別の処理装置に切り換えられた時点も通常は認識していない。従って、オペレーティングシステム92及び/又はアプリケーションプログラム94、96は、仮想記憶装置がこれらのキャッシュメインテナンス動作の対象であるデータがローカルキャッシュ構造内に保存されていると予想するので、ローカルキャッシュメインテナンス動作として指定されるキャッシュメインテナンス動作を行う。しかしながら、そのデータが最初にキャッシュ構造に保存されていた時とそのキャッシュメインテナンス動作が行われた時との間に、その仮想記憶装置が1つの処理装置から別の処理装置に移されていたとすると、この前提条件は正しくなくなり、そのキャッシュメインテナンス動作の対象であるデータのすべてが必ずしもそのキャッシュメインテナンス動作の対象とはされないことから、間違った動作をもたらす可能性がある。コヒーレント相互接続70の存在と特定のキャッシュエントリーを共有のものとマークすることは、それ自体では、問題が確実に発生しないようにする上で十分ではない。例えば、1つの仮想記憶装置が10個のデータ値をキャッシュに書き込んで、それらのデータ値のうちの3つが処理装置10のキャッシュ24に書き込まれ、仮想記憶装置90が処理装置10で作動しており、次に仮想記憶装置90を処理装置40への切換えがハイパーバイザによって行われ、残りの7つのデータ値がデータキャッシュ54に書き込まれる場合を想定する。次に、キャッシュメインテナンス動作がこれら10個のデータ値を含む一連のアドレスを除去するためにキャッシュメインテナンス動作が行われて、仮想記憶装置90が依然として処理装置40上で作動しているとすると、キャッシュ54内の7つのデータ値がそのキャッシュに存在しており、必要な除去作業が行われることは明らかである。これらのエントリーが共有のものとマークされていると、そのデータの他のすべてもコピーも確実に無効化されるように、コヒーレント相互接続70に対しても信号が送られる。しかしながら、問題の他の3つのデータ値に関しては、処理装置40内のローカルに実行されるキャッシュメインテナンス動作がこれらの関連付けられたアドレスに関連してキャッシュミスを検出するだけで、さらに別の動作は行わないその代わりに、そのデータはすでにメモリに追い出されたと想定される。しかし、その結果として、これら3つのデータ値は依然としてキャッシュ24内に存在しており、除去されていないから、これら3つのデータ値に関して共有メモリ75が更新されていないという結果になる。このことは仮想記憶装置の正しくない動作を引き起こす可能性がある。本発明の実施形態によれば、この問題はアクセス動作拡張ビットの提供を通じて解決される。このアクセス動作拡張ビットは特定の階層レベルのソフトウエアによって設定され、一度設定されると、その階層のより低いレベルのソフトウエアによって行われるローカルキャッシュメインテナンス動作の取り扱い方に影響を及ぼす。従って、一実施形態においては、このアクセス動作拡張ビットは、オペレーティングシステム92によって設定され、アプリケーション94、96によって行われるその後のすべてのキャッシュメインテナンス動作は、そのオペレーティングシステムがアクセス動作拡張ビットを設定してあるか否かによって異なった状態で取り扱われるようにされる。しかしながら、以下の検討では、仮想記憶装置によってオペレーティングシステム92によるものかアプリケーションプログラム94、94のいずれか1つに依るかは関係なく行われるすべてのキャッシュメインテナンス動作が、アクセス動作拡張ビットが設定されているか否かによって異なった状態で取り扱われるように、そのアクセス動作拡張ビットはハイパーバイザソフトウエア80によって設定可能であることを想定している。図2は、一実施形態によるアクセス動作拡張ビットの値によってローカルキャッシュメインテナンス動作の取り扱いがどのように影響を受けるかを示すフローチャートである。具体的には、ステップ150で、メインテナンス回路がキャッシュメインテナンス動作の受け入れを待機している。キャッシュメインテナンス動作が受け取られると、ステップ155で、そのキャッシュメインテナンス動作がローカルアクセス動作か否かが判定される。否であれば、プロセスはステップ165に進んで、共有アクセス信号がコヒーレント相互接続に送られて、1つ以上の他の処理装置上でローカルアクセス動作を行わせ、さらに、ステップ170で、ステップ150でキャッシュメインテナンス動作を受け入れるメインテナンス回路に関連付けられたローカルキャッシュ構造に関して、ローカルキャッシュメインテナンス動作が行われる。なお、ステップ165と170が連続して示されているが、これらのステップは逆の順番で行われてもよく、あるいは、並行的に行われてもよい。さらにいくつかの実施形態では、ステップ170で行われるローカルキャッシュメインテナンス動作はその共有アクセス信号に対して、その他のいずれの処理装置上での対応するローカルキャッシュメインテナンス動作の実行結果には無関係に実行される。しかしながら、別の実施形態においては、ステップ170でのローカルキャッシュメインテナンス動作の実行は、ステップ165でコヒーレント相互接続で出された共有アクセス信号に応答して、他の種々の処理装置がそれぞれのローカルキャッシュメインテナンス動作の実行を完了するまで遅延されてしまう場合がある。ステップ155で、キャッシュメインテナンス動作がローカルアクセス動作であると判断された場合、ステップ160で、アクセス動作拡張ビットが設定されているか否かが判定される。否であれば、そのキャッシュメインテナンス動作は単にローカルな動作として取り扱われ、従って、そのローカル。キャッシュメインテナンス動作はステップ170で実行される。しかしながら、そのアクセス動作拡張ビットがステップ160で設定済みと判断された場合は、そのローカルアクセス動作は実際に共有アクセス動作として対処される。従って、ステップ165とステップ170が実行される。その結果、アクセス動作拡張ビットが設定されている場合、ローカルアクセス動作として指定されたキャッシュメインテナンス動作がアップグレードされて共有アクセス動作として対処される。従って、これによって、どの処理装置上で仮想記憶装置が現在作動しているかには関係なく、関係するすべてのキャッシュ構造で確実に実行される。図3は一実施形態においてアクセス動作拡張ビットをいつ設定するかを、ハイパーバイザソフトウエア80がどのように判断するかを示すフローチャートである。ステップ200で、ハイパーバイザはオペレーティングシステムをソース処理装置から目的の処理装置に移行させる。このプロセスの間、ハイパーバイザソフトウエアはステップ205でそのオペレーティングシステムが多重プロセッサを認識しているかどうか、この例では、ハードウエアがSMP処理回路であるからSMPを認識しているかどうかを判定する。オペレーティングシステムがSMPを認識していなければ、プロセスがステップ210に進んで、アクセス動作拡張ビットが設定され、そのオペレーティングシステムがSMPを認識しているのであれば、ステップ215でそのアクセス動作拡張ビットが除去される。ステップ210あるいは215に続いて、ハイパーバイザはそのオペレーティングシステムがステップ220で目的の処理装置上で作動を開始できるようにする。図3を参照して説明した実施形態では、オペレーティングシステムがSMPを認識していれば、それがキャッシュメインテナンス動作を行い、共有かローカルかが正しく識別される。しかし、別の実施形態においては、オペレーティングシステムがSMPを認識しているか否かに関係なく、単にオペレーティングシステムを1つの処理装置から別の処理装置に移動させる度に、アクセス動作拡張ビットを設定するように構成される場合もある。こうした方式は、SMPで稼動可能にされるオペレーティングシステムが、どのプロセッサの上で動作が行われるべきかを理解するような方法で最適化されている場合には有効である。何故なら、この知識はそのオペレーティングシステムがハイパーバイザ層の下で稼動している場合は間違っている可能性があるからである。図4Aは、一実施形態において、ローカルアクセス動作がどのように取り扱われるかを図式的に示している。この例の目的に合わせて、多重処理システムが3つの処理装置300、320、340を有していると仮定されている。図示のために、これらの処理装置の関連性のある内部構造だけを示してある。従って、キャッシュ処理装置300、320、340は関連するメインテナンス回路305、325、345を有しており、これらは1つ以上のローカルキャッシュ構造310、330、350と結合されている。アクセス動作拡張ビット307が処理装置300との関連で示されており、この例では、そのアクセス動作拡張ビットが設定されることを想定している。種々の信号ラインに沿って示されている丸で囲んだ数字は、メインテナンス回路305が受け取ると起きるローカルアクセス動作の順番を示している。従って、図に示されているように、ローカルアクセス動作がメインテナンス回路305によって一度受け取られると、それはアクセス動作拡張ビット307を参照するが、この例では、それは設定されている。従って、メインテナンス回路305はその関連するローカルキャッシュ構造310に対してローカルアクセス動作を行うと同時に、コヒーレント相互接続360内の調整回路370に対しても共有アクセス信号を送る。この例では、その調整回路は共有アクセス信号を受信すると他の処理装置のそれぞれに要求を一斉に送るだけであるから、従って、メインテナンス回路325とメインテナンス回路345の両方は要求を受け取って、ローカルアクセス動作を実行する。従って、図4Aに示すように、メインテナンス回路325、340の両方はそれらが関連付けられているローカルキャッシュ構造330、350に対してそれぞれローカルアクセス動作を実行する。ローカルキャッシュ構造310に関するローカルアクセス動作の実行は調整回路に共有アクセス信号を送るプロセスやその後の他のローカルアクセス動作とは完全に切り離すことができるが、一実施形態においては、メインテナンス回路305は他のローカルアクセス動作がすべて実行されて、それらのローカルアクセス動作の結果が調整回路370を介してメインテナンス回路305に戻されるまで、そのローカルアクセス動作の実行を遅らせることができる。従って、メインテナンス回路305とローカルキャッシュ構造310の間のローカルアクセス動作信号経路の近くの丸で囲んだ数字6が示すように、そのローカルアクセス動作はその他の動作が完了した後で実行されてもよい。図4Bは、別の実施形態を示しており、この実施形態では、調整回路370が共有アクセス信号を受信したら他のどの処理装置が要求を送るべきかの判断を可能にする履歴データを保持している。図4Bに示しているこの特殊な例では、調整回路370がローカルキャッシュ構造に対する割り当てデータの履歴380を保持している。従って、調整回路370によって共有アクセス信号が受信されると、その調整回路はその共有アクセス信号で識別されたデータアドレスを考慮に入れて、その割り当て履歴380を参照して、ローカルキャッシュ構造330、350のいずれがそのアドレスで以前にキャッシュ化されたデータを有しているかを判断することができる。図示されている例では、調整回路370はローカルキャッシュ構造330がそのアドレスで以前にキャッシュ化されたデータを有しており、ローカルキャッシュ構造350の方は有していないと判断する。従って、その要求はメインテナンス回路325に送られるだけで、メインテナンス回路345には送られない。調整回路370は様々な形態を採り得るが、一実施形態においては、キャッシュコヒーレンスプロトコルによって必要とされるようなスヌープ動作を実行するために用いられるスヌープ制御装置によって形成される。その機能はデータキャッシュに関してばかりでなく、命令キャッシュ、TLBなどに関しても行われるように拡張することができる。図5は、仮想記憶装置で実行できる動作の特殊なシーケンスを図示するフローチャートである。具体的に、ステップ400であるコードが発生されると、その間に、そのコードは通常はデータキャッシュに書き込まれる。しかしながら、そのコードが実行される前に、最初にメモリの外部に保存され、それから命令キャッシュ内に取り込まれる。従って、ステップ410で、ローカルデータキャッシュ除去動作が行われて、そしてステップ420で、ローカル命令キャッシュ無効化動作が行われる。このローカルキャッシュ除去動作410は有効ではあるがダーティーなデータをデータキャッシュ内にもたらし、それらのデータはメモリに追い出されるが、ローカル命令キャッシュ無効化動作は、コード発生ステップ400で更新された可能性のあるすべての命令を確実に無効化して、新しいコードの実行が開始された際に誤って参照されないようにする。従って、ステップ430で、その新しいコードが実行される際、メモリから正しい命令が受け取られ、通常は命令キャッシュに保存される。本発明の実施形態による上に述べた技術が用いられないとしたら、1つの処理装置から別の処理装置への仮想記憶装置の実行の切り換えが、正しくない動作を引き起こしてしまう可能性があるだろう。具体的には、図5に示す時間帯Aこれはコード発生プロセスが開始してから若干後に始まり、ステップ410でローカルデータ除去動作が行われる前に終了するの間に、仮想記憶装置が第1の処理装置から第2の処理装置に切り換えられると、その後、第2の処理装置のデータキャッシュに保存されているデータだけが取り除かれることになる。このことは、新しく発生されたコードのいくつかが第1の処理装置のデータキャッシュに残ってしまい、そのデータは取り除かれないという事態をもたらす可能性がある。しかしながら、上に述べた技術を用いれば、ステップ410で行われるローカルデータキャッシュのデータ除去動作が共有データキャッシュのデータ除去動作にアップグレードされるので、これらのエントリーが第2の処理装置のデータキャッシュ内にあるのか、あるいは第1の処理装置のデータキャッシュ内にあるのかには関係なく、必要なエントリーのすべてを取り除いてくれる。同様に、時間帯Bの間に、第2の処理装置から第1の処理装置に仮想記憶装置の実行が切り戻されると、問題が発生する可能性がある。そのような例では、本発明を用いなければ、第1の処理装置のローカル命令キャッシュがステップ420で無効化されていないから、従って、ステップ430で正しくない命令が実行されてしまう可能性がある。しかしながら、上に述べた技術を用いることにより、ローカル命令キャッシュ無効化動作がステップ420で共有命令キャッシュ無効化動作にアップグレードされるので、両方の命令キャッシュの関連するエントリーが確実に無効化される。図6はページテーブル更新プロセスを示すフローチャートである。特に、ステップ450で、ページテーブルエントリーを用いてアドレス変換が行われ、その間に、ページテーブルエントリーは通常はMMUのTLB内に保存される。その後、そのページテーブルエントリーを更新する必要がある。従って、ローカルTLB無効化動作がステップ460で行われて、更新される予定のTLB内のすべてのキャッシュエントリーが無効化される。その後、関連するページテーブルエントリーがステップ470で修正される。そして、ステップ480でページテーブルエントリーを用いてそのプロセスが再開されてアドレス変換が行われ、その間に、ページテーブルデータが再びメモリからTLBに保存される。そのようなプロセスが単一の処理装置で行われるなら、何の問題も起こらない。しかしながら、仮想記憶装置の動作が図6の時間帯Aのいつかの時点で第1の処理装置から第2の処理装置に切り換えられて、その後に、その仮想記憶装置の動作が時間帯Bのいつかの時点で第2の処理装置から第1の処理装置に切り戻されたとしたら、本発明の実施形態の技術が用いられていなければ、問題が発生する。具体的には、時間帯A中に起きる切り換えのせいで、ステップ460でのローカルTLB無効化動作が第1の処理装置のTLB内の関連するページテーブルエントリーを無効化しない。このことは、実行が後で時間帯B中に第1の処理装置に戻されると、第1の処理装置のTLB内にまだ残っている古くなったデータの存在によりヒットが送る可能性があることを意味している。しかしながら、上に述べた本発明の実施形態の技術を用いることによって、この問題は発生しなくなる。何故なら、ステップ460で行われるローカルTLB無効化動作が共有TLB無効化動作にアップグレードされて、従って、両方のTLBの関連するエントリーが無効化されるからである。本発明の実施形態による技術をキャッシュメインテナンス動作の取り扱いとの関連で上に述べたが、それらの技術は以下に図7と8を参照して述べるように、メモリバリア動作を確実に正しく行わせるためにも用いることができる。当業者なら分かるが、プログラムが書き込み動作などの前に行ったメモリ動作の結果をシステム内のいくつかの他のエージェントにはっきりと確実に見えるようにすることを望んだり、あるいは、何らかのメモリ動作がその後で行われる前に前のメモリ動作が確実に完了しているようにすることを望むのであれば、メモリバリア動作を実行することができる。従って、図7のステップ500に示すように、メモリバリア動作を実行すべきかどうかについての判断が行われ、メモリバリア動作を実行すると判断された時にはいつでも、ステップ510でアクセス動作拡張ビットが設定されているかどうかの判定がなされる。メモリバリア動作を実行しない場合、ステップ530で、仮想記憶装置が現在実行されている処理装置上でメモリバリア動作が単にローカルに実行されるだけである。しかし、アクセス動作拡張ビットが設定されていれば、ステップ520でメモリバリア信号520がコヒーレント相互接続に送られ、そして、ステップ530でメモリバリア動作がローカルに行われる。そして、コヒーレント相互接続が適切な要求を他の処理装置に送らせて、それらの処理装置にもメモリバリア動作をローカルに実行させる。そのような方式の利点は、図8に示すイベントのシーケンス例を想定した場合にはっきり理解することができる。具体的には、ステップ550で、書き込み動作が行われて、その書き込みデータがバッファされる。具体的に、多くのシステムで、書き込み動作はその書き込み動作が書き込みバッファに置かれた時点で改良したと想定され、実際には、書き込みバッファがドレインされて、その書き込みデータは実際にメモリに入れられるのは多くのサイクルの後であることがある。従って、書き込みデータを後の何らかの動作に見えるようにすることが重要である場合には、通常は、図8のステップ560で示されているように、書き込み動作に続いてメモリバリア動作が行われる。その後、前の書き込み動作の書き込み動作が見えることを期待する動作がステップ570で行われると、ステップ560で行われるメモリバリア動作がその書き込みデータを確実に実際に見えるようにする。しかしながら、仮想記憶装置の実行が図8に示す時間Aで1つの処理装置から別の処理装置に切り換えられると、本発明の実施形態の技術が採用されなければ、メモリバリア動作560はその目的を達成できないことが明らかである。何故ならば、その動作は仮想記憶装置が現在作動している処理装置にローカルに実施されるが、書き込みデータは実際には別の処理装置の書き込みバッファに保持されているからである。しかしながら、本発明の実施形態の技術を使用すれば、ステップ560で行われるメモリバリア動作が共有メモリバリア動作にアップグレードされて、そのメモリバリア動作を両方の装置で行われるようにし、従って、その書き込みデータをメモリに排出させ、そして後の動作がステップ570で行われると見えるようにするからである。具体的な実施形態を上に述べたが、本発明はこれらの実施形態に限定されるものではなく、本発明の範囲内で多くの修正や付け加えが可能であると理解されるべきである。例えば、以下の従属請求項の特徴の様々な組み合わせを、本発明の範囲を逸脱せずに行うことも可能である。