(57)【要約】      （修正有）【課題】代替ページのプールを使用してＤＭＡ書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラムを提供する。【解決手段】コンピュータ・システムのプラットフォームが、Ｉ／Ｏアダプタに専用のページに対するＤＭＡ書込みページ障害を解決する。Ｉ／Ｏアダプタは、そのページにＤＭＡデータの書込みを試み、そのページが書込みに使用可能でないという決定がなされ、ＤＭＡデータは、代用ページのプールから選択されたその代用ページにおけるデータ・ロケーションに書込まれる。次に、それらのデータ・ロケーションの各ロケーションに対するフラッグ・ロケーションに、フラッグがセットされる。フラッグ・ロケーションはデータ・ロケーションに対応し、フラッグがセットされるとき、フラッグは、そのフラッグのフラッグ・ロケーションに対応するデータ・ロケーションにＤＭＡデータが存在することを表す。【選択図】図１
2007272885.tif 000002
【特許請求の範囲】
【請求項１】
入出力アダプタに専用のページに対するＤＭＡ書込みページ障害をコンピュータにより解決するための方法であって、
前記入出力アダプタにより、ＤＭＡデータを前記ページに書込むための試みを行うステップと、
前記ページが利用可能でないことを決定するステップと、
前記ＤＭＡデータを代替ページにおけるデータ・ロケーションに書込むステップと、
前記データ・ロケーションの各ロケーションに対応するフラッグ・ロケーションにフラッグをセットするステップであって、特定のフラッグが特定のフラッグ・ロケーションにおいてセットされているとき、前記特定のフラッグは、前記特定のフラッグ・ロケーションに対応する特定のデータ・ロケーションにＤＭＡ書込みデータが存在することを表す、ステップと、
を含む、方法。
【請求項２】
ＤＭＡ書込みページの障害に対して使用するための代替ページのプールを維持するステップと、
前記プールから前記代替ページを選択するステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記ページが仮想メモリにおいて見つかるとき、前記ページは利用可能であり、
前記ページが仮想メモリの外に移動していたとき、前記ページは利用可能でない、
請求項１に記載の方法。
【請求項４】
前記入出力アダプタが前記ページにＤＭＡデータを書込むための試みを行うことに応答して、前記ページと関連するアドレス検証及び変換テーブルにおけるエントリを識別するステップと、
前記ページと関連する現在の制御設定を前記エントリから読取るステップと、
前記現在の制御設定に従って、前記ページにＤＭＡデータを書込むための前記試みを処理するステップと、
を更に含む、請求項１に記載の方法。
【請求項５】
前記現在の制御設定が第１の設定であることに応答して、前記ページが利用可能であることを決定し、前記ＤＭＡデータを前記ページに書込むステップを更に含む、請求項４に記載の方法。
【請求項６】
前記現在の制御設定が第２の設定であることに応答して、前記現在の制御設定がもはや前記第２の設定ではなくなるまで、前記ＤＭＡデータを前記ページに書込むことを延期するステップを更に含む、請求項４に記載の方法。
【請求項７】
前記現在の制御設定が第３の設定であることに応答して、前記ページが利用可能でないことを決定するステップと、
前記代替ページを選択するステップと、
前記ページの前記アドレスを前記代替ページのアドレスでもって置換するように前記エントリを更新するステップと、
を更に含む、請求項４に記載の方法。
【請求項８】
前記現在の制御設定が第４の設定であることに応答して、前記ＤＭＡデータを前記代替ページにおけるデータ・ロケーションに書込むステップと、
前記データ・ロケーションに対応するフラッグ・ロケーションにフラッグをセットするステップと、
を更に含む、請求項４に記載の方法。
【請求項９】
前記ページが利用可能にされる必要があることを決定するステップと、
復元ページとなるための代替ページを選択するステップと、
前記ページからのオリジナルデータを前記復元ページに記憶するステップと、
セットされているフラッグを含むフラッグ・ロケーションと関連するデータ・ロケーションに記憶されるデータを選択するステップと、
前記選択されたデータを前記復元ページにコピーするステップであって、前記選択されたデータが前記データ・ロケーションに対応する前記復元ページにおけるロケーションに記憶される、ステップと、
を更に含む、請求項１に記載の方法。
【請求項１０】
入出力アダプタに専用のページに対するＤＭＡ書込みページ障害を解決するための前記入出力アダプタに結合されたプラットフォームを含むデータ処理システムにおける装置であって、
前記入出力アダプタがＤＭＡデータを前記ページに書込むための試みを行い、
前記ページが利用可能でないことを前記プラットフォームが決定し、
前記プラットフォームが前記ＤＭＡデータを代替ページにおけるデータ・ロケーションに書込み、
前記データ・ロケーションの各ロケーションに対応するフラッグ・ロケーションにフラッグをセットし、特定のフラッグが特定のフラッグ・ロケーションにおいてセットさていれるとき、前記特定のフラッグは、前記特定のフラッグ・ロケーションに対応する特定のデータ・ロケーションにＤＭＡ書込みデータが存在することを表す、
装置。
【請求項１１】
前記プラットフォームがＤＭＡ書込みページの障害に対して使用するための代替ページのプールを維持し、
前記プラットフォームが前記プールから前記代替ページを選択する、
請求項１０に記載の装置。
【請求項１２】
前記ページが仮想メモリにおいて見つかるとき、前記ページは利用可能であり、
前記ページが仮想メモリの外に移動していたとき、前記ページは利用可能でない、
請求項１０に記載の装置。
【請求項１３】
前記入出力アダプタが前記ページにＤＭＡデータを書込むための試みを行うことに応答して、前記プラットフォームが、前記ページと関連するアドレス検証及び変換テーブルにおけるエントリを識別し、
前記プラットフォームが、前記ページと関連する現在の制御設定を前記エントリから読取り、
前記プラットフォームが、前記現在の制御設定に従って、前記ページにＤＭＡデータを書込むための前記試みを処理する、
請求項１０に記載の装置。
【請求項１４】
前記現在の制御設定が第１の設定であることに応答して、前記プラットフォームが、前記ページが利用可能であることを決定し、前記ＤＭＡデータを前記ページに書込む、請求項１３に記載の装置。
【請求項１５】
前記現在の制御設定が第２の設定であることに応答して、前記現在の制御設定がもはや前記第２の設定ではなくなるまで、前記プラットフォームが、前記ＤＭＡデータを前記ページに書込むことを延期する、請求項１３に記載の装置。
【請求項１６】
前記現在の制御設定が第３の設定であることに応答して、前記プラットフォームが、前記ページが利用可能でないことを決定し、
前記プラットフォームが前記代替ページを選択し、
前記プラットフォームが、前記ページの前記アドレスを前記代替ページのアドレスでもって置換するように前記エントリを更新する、
請求項１３に記載の装置。
【請求項１７】
前記現在の制御設定が第４の設定であることに応答して、前記プラットフォームが前記ＤＭＡデータを前記代替ページにおけるデータ・ロケーションに書込み、
前記プラットフォームが、前記データ・ロケーションに対応するフラッグ・ロケーションにフラッグをセットする、
請求項１３に記載の装置。
【請求項１８】
前記プラットフォームが、前記ページが利用可能にされる必要があることを決定し、
前記プラットフォームが、復元ページとなるための代替ページを選択し、
前記プラットフォームが、前記ページからのオリジナル・データを前記復元ページに記憶し、
前記プラットフォームが、セットされているフラッグを含むフラッグ・ロケーションと関連するデータ・ロケーションに記憶されるデータを選択し、
前記プラットフォームが、前記選択されたデータを前記復元ページにコピーし、従って、前記選択されたデータが、前記データ・ロケーションに対応する前記復元ページにおけるロケーションに記憶される、
請求項１０に記載の装置。
【請求項１９】
入出力アダプタに専用のページに対するＤＭＡ書込みページ障害を解決するためのコンピュータ使用可能プログラム・コードを含むコンピュータ・プログラムであって、
前記入出力アダプタにより、ＤＭＡデータを前記ページに書込むための試みを行うためのコンピュータ使用可能プログラム・コードと、
前記ページが利用可能でないことを決定するためのコンピュータ使用可能プログラム・コードと、
前記ＤＭＡデータを代替ページにおけるデータ・ロケーションに書込むためのコンピュータ使用可能プログラム・コードと、
前記データ・ロケーションの各ロケーションに対応するフラッグ・ロケーションにフラッグをセットするためのコンピュータ使用可能プログラム・コードであって、特定のフラッグが特定のフラッグ・ロケーションにおいてセットされているとき、前記特定のフラッグは、前記特定のフラッグ・ロケーションに対応する特定のデータ・ロケーションにＤＭＡ書込みデータが存在することを表す、コンピュータ使用可能プログラム・コードと、
コンピュータ・プログラム。
【請求項２０】
ＤＭＡ書込みページの障害に対して使用するための代替ページのプールを維持するためのコンピュータ使用可能プログラム・コードと、
前記プールから前記代替ページを選択するためのコンピュータ使用可能プログラム・コードと、
を更に含む、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、データ処理システムに関し、詳しく云えば、代替の書込みバッファ・ページのプールを使ってＤＭＡ書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラムに関するものである。
【背景技術】
【０００２】
コンピュータ・システムに関する動向によれば、システムは、データ処理を妨げることなく実行中に再構成することが可能である。例えば、複数のオペレーティング・システムがコンピュータにおいて稼動する場合、第１のオペレーティング・システムが特定のメモリ・ブロックを使用しているとき、第２のオペレーティング・システムによる使用のためにそのメモリ・ブロックを再割振りする必要が生じることがある。この場合、第１のオペレーティング・システムは、先ず、メモリが再割振りされる前にその物理メモリのブロックの使用を停止しなければならない。或いは、例えば、物理メモリの或るブロックにおいて問題が検出されることがあり、その場合、そのメモリが置換されるよう、そのメモリをオペレーションから除くことが望ましい。更に、どのオペレーティング・システムがメモリ・ブロックを使用していても、そのメモリ・ブロックはそれの使用を停止しなければならない。
【０００３】
或る点では、物理メモリにおける１つのブロックの使用を停止して他のブロックの使用を開始することは比較的簡単なことである。というのは、このメモリに対するオペレーティング・システムのアクセスに関連したこの問題の局面を処理するために、仮想メモリ管理に関連する機構が一般的なオペレーティング・システムに既に存在するためである。しかし、これらの機構は、オペレーティング・システムによるアクセスを受けるがＩ／Ｏ装置によるアクセスを受けないプログラム・データのためにのみそのメモリ・ブロックが使用されるということに依存する。そのメモリ・ブロックがＩ／Ｏ装置によるアクセスを受ける場合、その問題は更に難しくなる。Ｉ／Ｏ装置によるこのアクセスは、一般にダイレクト・メモリ・アクセス（ＤＭＡ）であるが、これがいつもそのとおりであるわけではない。
【０００４】
Ｉ／Ｏ装置のＩ／Ｏアダプタを介してそのＩ／Ｏ装置によるアクセスを受けるメモリ・ブロックは、一般に、オペレーティング・システムが稼動している限り稼動する本質的にはエンドレスのＩ／Ｏプログラムによってそのメモリ・ブロックへのアクセスが制限されるので、「拘束される（pinned）」、即ち、移動しないようにされる。メモリを拘束するそのようなＩ／Ｏプログラムを停止することは、システムにとって破滅的である。これらのメモリ・ブロックを拘束することによって、それらのメモリ・ブロックは、本来、メモリを拘束したＩ／Ｏ装置による使用に専用のものである。１つ又は複数の個々のメモリ・ブロックを拘束することによって、特定の個々のＩ／Ｏ装置による使用のために、それらのメモリ・ブロックを確保することが可能である。
【０００５】
しかし、メモリ・ブロックを拘束することは、メモリをそれの使用のために拘束しているＩ／Ｏ装置を含むコンピュータ・システムにとって特に効率的であるというわけではない。これらのメモリ・ブロックは、一般に、十分利用されてない。Ｉ／Ｏ装置は、ある点では、そのメモリに書込むことによってそれの拘束されたメモリを使用する必要があることもあるが、多くの場合、メモリは未使用のままになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、代替ページのプールを使用して、ＤＭＡ書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
コンピュータ・システムのプラットフォームが、Ｉ／Ｏアダプタに専用のページに対するＤＭＡ書込みページ障害を解決する。Ｉ／Ｏアダプタは、そのページにＤＭＡデータを書込むことを試みる。そのページが書込みのためには使用可能でないという決定が行われる。そこで、ＤＭＡデータは、代替ページのプールから選択されたその代替ページにおけるデータ・ロケーションに書込まれる。次に、データが書込まれたデータ・ロケーションの各ロケーションに対するフラッグ・ロケーションに、フラッグがセットされる。フラッグ・ロケーションは、データが書込まれたデータ・ロケーションに対応する。フラッグは、それがセットされているとき、そのフラッグのフラッグ・ロケーションに対応するデータ・ロケーションにＤＭＡデータが存在することを表す。
【発明を実施するための最良の形態】
【０００８】
本発明の実施例は、Ｉ／Ｏ装置に専用のページに対する、ＤＭＡ書込みページ障害のようなＩ／Ｏ書込みページ障害を、それらの装置のＩ／Ｏアダプタを通してコンピュータ・システムのプラットフォームが解決することを可能にするための方法、装置、及びコンピュータ・プログラムである。プラットフォームは、それがＩ／Ｏ書込みページ障害を解決することができるので、Ｉ／ＯアダプタがそのＩ／Ｏアダプタに専用のページに書込むことを必要とするまで、その専用のページを他の目的で一時的に使用することができる。
【０００９】
プラットフォームのＩ／Ｏサブシステムは、仮想メモリ・サブシステムによってページ・アウトされたターゲット・ページに記憶されることを意図されたＤＭＡ書込みデータのための一時的な代替ページを提供する。一時的な代替ページは、ＤＭＡ書込みデータが、復元されたページ・アウト・データと仮想メモリ・サブシステムによって再統合されるとき、使用される１バイト当たりの使用インジケータ（本明細書ではフラッグと呼ばれる）を組み込む。
【００１０】
ＤＭＡ書込みページ障害は、Ｉ／Ｏ装置が、それのＩ／Ｏアダプタを介して、特定のターゲット・ページにＤＭＡデータを書込む試みを行い、Ｉ／Ｏ装置が仮想メモリにおいてそのターゲット・ページを見つけることができないときに生じる。ＤＭＡ書込みページ障害が生じるとき、あたかも代替ページがオリジナル・ターゲット・ペ−ジであるかのように、プラットフォームはその代替ページにおけるデータ・ロケーションに書込みデータを記憶する。代替ページにおけるデータ・ロケーションは、オリジナル・ターゲット・ページが仮想メモリからページ・アウトされなかった場合のそのオリジナル・ターゲット・ページにおけるロケーションに対応する。
【００１１】
そこで、フラッグが特定のフラッグ・ロケーションにおいてセットされる。これらの特定のフラッグ・ロケーションは、ＤＭＡ書込みデータが代替ページにおいて記憶されるデータ・ロケーションに対応する。
【００１２】
１つの実施例では、単一の代替ページが使用され、データ・ロケーション及びフラッグ・ロケーションの両方を含む。ＤＭＡ書込みデータが、これらのデータ・ロケーションの特定のロケーションに記憶される。この同じ代替ページに記憶されたフラッグが次にセットされる。それらのセットされるフラッグは、ＤＭＡ書込みデータが記憶されるデータ・ロケーションに対応するフラッグ・ロケーションに記憶される。残りのフラッグ・ロケーションにおけるフラッグはセットされない。
【００１３】
もう１つの実施例では、２つの代替ページが使用される。第１の代替ページはデータ・ロケーションだけを含み、第２の代替ページはフラッグ・ロケーションだけを含む。ＤＭＡ書込みデータは、第１の代替ページにおけるデータ・ロケーションの特定のロケーションに記憶される。次に、フラッグが第２の代替ページにセットされる。第２の代替ページにおける各フラッグ・ロケーションは第１の代替ページにおけるデータ・ロケーションに対応する。ＤＭＡ書込みデータが記憶される第１の代替ページにおけるデータ・ロケーションに対応する第２の代替ページにおけるフラッグ・ロケーションに記憶されるフラッグがセットされる。
【００１４】
特定のフラッグ・ロケーションにおけるフラッグがセットされる場合、それの対応するデータ・ロケーションは有効なＤＭＡ書込みデータを含む。特定のフラッグ・ロケーションにおけるフラッグがセットされない場合、それの対応するデータ・ロケーションは有効なＤＭＡ書込みデータを含まない。
【００１５】
代替ページは一時的なページである。オリジナル・ターゲット・ページが再びメモリにおいて見つかり、もはやページ・アウトされないとき、ＤＭＡ書込みデータは、ＤＭＡ書込みの時間に、オリジナル・ターゲット・ページに記憶されたデータと再統合され得る。そのデータ及びフラッグはＤＭＡ書込みデータを復元するために使用される。フラッグは、どのデータ・ロケーションがＤＭＡ書込みデータを含むかを決定するために使用される。一旦そのＤＭＡ書込みデータが見つけられると、それは、復元されたページを作成するためにオリジナル・ターゲット・ページからのデータと再統合される。
【００１６】
コンピュータ・システムは、一般に、物理ページを特定のＩ／Ｏアダプタと関連付けるために使用されるアドレス検証及び変換テーブルを含む。そのテーブルにおける各エントリは特定の物理ページと関連付けられている。このテーブルは、ＤＭＡオペレーションのアドレスを使用してインデックスされる。本発明の実施例は、このテーブルに制御フィールドを加える。制御フィールドは、各物理ページに対する現在のステータスを表すために使用される。
【００１７】
コンピュータ・システムのプラットフォームは、Ｉ／Ｏオペレーションを遂行するときにアドレス検証及び変換テーブルを使用するＩ／Ｏ変換ソフトウェアを含む。本発明の実施例によれば、Ｉ／Ｏ変換ソフトウェアは、更に、本明細書において説明されるように、使用される代替ページのリストを維持する。リンクされたリスト、マルチレベル・テーブル、待ち行列、又は任意の他の適当なタイプのリストのような任意の形式のリストを使用することが可能である。このリストは、使用可能な代替ページのプールを形成する。
【００１８】
代替ページが必要とされるとき、Ｉ／Ｏ変換ハードウェアはこのリストからページを選択する。そのリストに含まれた代替ページの数が所定の閾値よりも小さくなるとき、割り込みが発生される。この実施例では、割り込みは、Ｉ／Ｏ変換ハードウェア又は機構のようなハードウェアによって発生される。プラットフォームのメモリ仮想化ソフトウェアが、代替ページとして使用可能な追加のページを割り振ることによってその割り込みに応答する。
【００１９】
アドレス検証及び変換テーブルにおける各エントリに対して、そのエントリと関連する物理ページの現在のステータスを表すために、制御フィールド設定が使用される。第１の制御フィールド設定は、正規のＤＭＡ書込み処理がその物理ページに対して生じ得ることを表す。この場合、ターゲットの物理ページがメモリにおいて見つかり、ページ・アウトされない。
【００２０】
第２の制御フィールド設定は、ＤＭＡ書込み処理が行われなければならないということを表す。この設定は、物理ページがページ・アウトされてしまい、代替ページが使用されたときに使用される。この場合、この物理ページに対する代替ページは、オリジナル・ターゲット・ページのデータと再統合されるという過程にある。
【００２１】
第３の制御フィールド設定は、ＤＭＡ書込みを実行する前に代替ページが得られなければならないことを表す。この場合、物理ページがページ・アウトされ、ＤＭＡ書込みデータを一時的に記憶するために使用される代替ページは未だ選択されていない。データ及びフラッグ・ロケーションの両方を含む単一の代替ページが使用される場合、一旦代替ページが選択されると、その代替ページのアドレスが、ターゲット・ページと関連するアドレス検証及び変換テーブルにおけるエントリに記憶される。２つの代替ページが使用される場合、一旦代替ページが選択されると、その代替ページのアドレスを含む記述子のアドレスが、ターゲット・ページと関連するアドレス検証及び変換テーブルにおけるエントリに記憶される。
【００２２】
第４の制御フィールド設定は、ＤＭＡ書込みは処理され得るがターゲット・ページへのＤＭＡ書込みの代わりに、選択された代替ページへのＤＭＡ書込みが処理されなければならないことを表す。制御フィールド設定が第４の制御フィールド設定である場合、ＤＭＡ書込みデータが適切なデータ・ロケーションに記憶された後、対応するフラッグ・ロケーションにおけるフラッグがセットされる。そのページにおける残りのフラッグ・ロケーションにおけるすべての他のフラッグはセットされないままである。
【００２３】
プラットフォームのメモリ仮想化ソフトウェアが、ＤＭＡ書込みのためのターゲットであるページを強制使用することを決定するとき、即ち、そのページがページ・アウトされるとき、プラットフォームのメモリ仮想化ソフトウェアは、アドレス検証及び変換テーブルのこのページのエントリにおける制御フィールドを第３の制御フィールド設定にセットする。そこで、プラットフォームのメモリ仮想化ソフトウェアはそのエントリのアドレス・フィールドをクリアする。
【００２４】
その後、このページが復元される前に、このページがＤＭＡ書込みオペレーションのターゲットになる場合、プラットフォームのＩ／Ｏ変換ハードウェア／機構は、制御フィールド設定が第３の設定であることを知る。その設定が第３の設定であるので、プラットフォームのＩ／Ｏ変換ハードウェア／機構は代替ページのそれのリストから代替ページを選択する。そこで、Ｉ／Ｏ変換ハードウェアは、そのデータ・ロケーションを含む代替ページのアドレスをアドレス検証及び変換テーブルのアドレス・フィールドに入れる。Ｉ／Ｏ変換ハードウェア／機構は更に制御フィールドを第４の設定にセットする。そこで、ＤＭＡ書込みデータが特定のデータ・ロケーションに書き込まれる。ＤＭＡ書込みデータが記憶されたデータ・ロケーションに対応するフラッグ・ロケーションにおいてフラッグがセットされる。
【００２５】
オリジナル・ターゲット・ページが再びメモリにおいて見つけられ、もはやページ・アウトされないとき、現在代替ページに記憶されているデータを、現在オリジナル・ターゲット・ページに記憶されているデータと再統合することが可能である。再統合プロセスが始まるとき、仮想メモリ・ソフトウェアは、代替ページ書込みのエンドレス・シーケンスを回避するために、この特定の物理ページに対するエントリのための制御フィールドを第３の設定にセットする。第３の設定は、この再統合プロセスの間、他のＤＭＡ書込みの処理を延期させる。
【００２６】
そこで、代替ページが復元ページとして使用するために選択される。そこで、特定のデータ・ロケーションからのデータが、そのデータ・ロケーションに対応するその復元ページにおけるロケーションに記憶される。フラッグは、どのデータ・ロケーションが、有効なＤＭＡ書込みデータを含む特定のロケーションであるかを識別するために使用される。そこで、この復元ページのアドレスが、アドレス検証及び変換テーブル・エントリおけるアドレス・フィールドに記憶される。
【００２７】
このとき、そのページは再び仮想メモリ内にあり、正規のＤＭＡ書込み処理のために使用することが可能である。従って、このエントリに対する制御フィールドが第１の設定にセットされる。
【００２８】
当業者が認めるように、代替ページにおけるフィールドの物理サイズは、本発明の実施例の新規性に影響を与えることなく記憶セル使用率を最適化するように大きさを設定される。ほとんどの場合、データ・ロケーションはほとんどのＩ／Ｏバスの特性に適合するようにバイト・レベルで書込み可能でなければならないが、ＤＭＡ生成装置の特性に適合し得る他の方法を使用することも可能であろう。
【００２９】
更に、フラッグ・ロケーションは単一のデータ・ロケーション・バイトのみに対する情報を含み得るし、あるいは複数のバイトに対する情報も含み得る。
【００３０】
特定の機能を遂行するメモリ仮想化ソフトウェア及びＩ／Ｏ変換ハードウェア／機構を説明したが、いずれの適当なプラットフォーム・ソフトウェアも上記の機能を遂行し得るであろう。
【００３１】
図１は、本発明の実施例を含むコンピュータ・システム１００を示す。コンピュータ・システム１００はプラットフォーム１０１を含む。コンピュータ・システム１００は、複数のプロセッサ１０２及び１０４を含む対称マルチプロセッサ（ＳＭＰ）システムであってもよい。それとは別に、シングル・プロセッサ・システムが使用されてもよい。
【００３２】
システム１００では、命令を含むデータ１０６が不揮発性メモリ、例えば、ディスク記憶装置１３５に記憶され、データ１０６のブロック１０８がその不揮発性メモリから揮発性メモリ１１０に書き込まれる。揮発性メモリにおけるそれらの実物理ロケーションに関して、データ１０６のブロック１０８は、データ１０６が仮想メモリ・マップの視点を有する基準と区別するために、データの「物理ページ」１１５と呼ばれる。従って、揮発性メモリ１１０は、時には「物理メモリ」と呼ばれることもある。
【００３３】
揮発性メモリ１１０にデータのブロックがあれば、それらはシステム１００のＩ／Ｏ装置１３５、１４０、１４５及び中央処理ユニット（ＣＰＵ）１０４によるアクセスが可能である。本明細書において使用されるように、用語「Ｉ／Ｏ装置」は、コンピュータ・システム１００にインターフェースする種々の装置のいずれかを指し、システムに情報を提供するか又はシステムから情報を受ける。Ｉ／Ｏ装置の例は、不揮発性ディスク記憶装置１３５のようなメモリ、マウス、トラック・ボール、タッチ・パッドまたは同様のもの、キーボード、ディスプレイ、プリンタ、カメラ、モデム、光学的スキャナ、マイクロフォン、およびオーディオ・スピーカを含む。
【００３４】
更に詳しく言えば、物理ページ１１５が第１バス１２５によってＩ／Ｏブリッジ１３０に結合され、Ｉ／Ｏ装置１３５、１４０、１４５の各々が、対応するＩ／Ｏアダプタ１３６、１４１、１４６及びＩ／Ｏバス１７６のセグメント１３７、１４２、１４７によってＩ／Ｏブリッジ１３０に結合される。
【００３５】
他のコンピュータに対する通信リンクがモデム１４８及び／又は通信アダプタ１４９を介して提供される。
【００３６】
Ｉ／Ｏブリッジ１３０は、Ｉ／Ｏ装置１３５等の間を調停する、即ち、Ｉ／Ｏバス１７６への及びＩ／Ｏバス１７６から第１バス１２５への一時に１つのＩ／Ｏ装置アクセスを許容するバス・ロジックを含むロジック１５０も有する。Ｉ／Ｏブリッジ１３０は、物理ページ１１５からのデータ、又はＩ／Ｏ装置による要求に応答して不揮発性メモリ１３５のようなＩ／Ｏ装置からのデータをキャッシュするためのＩ／Ｏデータ・バッファ１５５も含み、ロジック１５０は、データ・バッファリングを処理するロジックを含む。図示の実施例では、Ｉ／Ｏブリッジ・ロジック１５０はＩ／Ｏプロセッサ１５４を含む。
【００３７】
ＣＰＵ１０４は、オペレーティング・システム１６０及びファームウェア１６５のようなそのＣＰＵにおけるオペレーティング・システム及びファームウェア命令を実行する。なお、図１にはそれらの命令のイメージが示される。ＣＰＵ１０４による実行のための命令は、ファームウェア１６５の命令、ファームウェア１６５のサポートにより実行されるオペレーティング・システム１６０の命令、及びファームウェア１６５、オペレーティング・システム１６０のサポートにより実行されるアプリケーション（図示されていない）の命令を含む。ファームウェア１６５がオペレーティング・システム１６０とは実質的に無関係にプロセッサ上で稼動して低レベルのインターフェースを提供し、従って、プロセッサ１０４のようなハードウェア・コンポーネントに対してオペレーティング・システム１６０よりも多くのアクセスを提供する。或る点では、オペレーティング・システム１６０は、データ１０６のブロック１０８のビューを仮想メモリ１６２のページとして、ＣＰＵ１０４において実行中のアプリケーションに与え、従って、データ１０６の実際のロケーションは、データが、例えば、揮発性メモリ１１０にあるか又はディスク記憶装置１３５にあるかに関係なくまったく透明である。従って、オペレーティング・システム１６０は、揮発性メモリ１１０内に又はそこからデータを多少透明に移動させるためのページング機構１６３及びページ・テーブル１６４を含む。
【００３８】
Ｉ／Ｏ装置仮想メモリ１５２に関して、オペレーティング・システム１６０は、データ１０６のブロック１０８を、変換制御エントリ（Translation Control Entry - ＴＣＥ）テーブル１７５におけるエントリを介して物理ページ１１５にマップするよう、Ｉ／Ｏロジック１５０に指示する。図示の実施例では、ファームウェア１６５が、物理ページ１１５の第１のページから物理ページ１１５の第２のページにデータを移動させるために利用されるサービスを提供し、従って、第１のページは異なるサービスに使われるか又はアイドリングされる。これを行うために、オペレーティング・システム１６０はＴＣＥテーブル１７５における物理ページ１１５の第１のページに対する１つ又は複数のエントリを見つける。しかる後、オペレーティング・システム１６０は、所与のＩ／Ｏ装置仮想メモリ・ページ１５２と関連した第１の物理ページ１１５から第２の物理ページ１１５にそのデータをコピーするようにファームウェア１６５のコンポーネント、即ち、ハイパーバイザ１７０に指示し、Ｉ／Ｏ装置仮想メモリ・ページ１５２に対するその後のアクセスが第２の物理ページに向けられるようにＴＣＥテーブル１７５における関連のマッピングを変更する。ハイパーバイザ１７０は、装置間でＴＣＥテーブル１７５を更新状態に保持すること及びＩ／Ｏオペレーションに関してメモリ・コヒーレンシを維持することを含む多数の機能を有する。
【００３９】
メモリの物理ページは入出力（Ｉ／Ｏ）アダプタによるアクセスを受ける。ＴＣＥテーブル１７５は物理ページをＩ／Ｏアダプタと関連付けるエントリを含む。各エントリは特定の物理ページを特定のＩ／Ｏアダプタに関連付ける。
【００４０】
ＴＣＥテーブル１７５を理解するために、Ｉ／Ｏ装置１３５が、ＣＰＵ１０４の仮想メモリ・ビューと同様に、データ１０６の自身のビューを仮想メモリ１５２のページとして有するものと考えてほしい。Ｉ／Ｏブリッジ・ロジック１５０は、このビューをＩ／Ｏ装置１３５に与える。別の実施例では、Ｉ／Ｏプロセッサ１５４及びファームウェア１６５がこのビューをＩ／Ｏ装置１３５に与える。このビューを維持するために、ＴＣＥテーブル１７５におけるエントリ（図１には示されない）がデータ１０６のブロック１０８をＩ／Ｏ装置仮想メモリ・ページ１５２にマップする。従って、Ｉ／Ｏ装置１３５は、データの実際のロケーションに関係なく、即ち、どの物理ページ１１５が現在データを記憶しようとしているか関係なく、仮想ページ１５２への参照によってデータ１０６を参照することが可能である。
【００４１】
Ｉ／Ｏブリッジ１３０は、バス１２５及びバス１７６の間にあるロジック１５０を提供する。バス１７６におけるメモリ要求が、Ｉ／Ｏ装置仮想メモリ・ページ１５２を反映するように仮想アドレスと共にＩ／Ｏ装置から到来する。そのメモリ要求と関連する正しい物理ページ１１５をバス１７６からアクセスするためにそれがバス１２５に適用しなければならない物理ページ・アドレスを決定するために、Ｉ／Ｏ変換ハードウェア（アドレス変換ロジック）１５６がＴＣＥテーブル１７５（Ｉ／Ｏ装置仮想ページの順序で保持されている）を効果的にアクセスする。（上記の用語「効果的に」が使用されたのは、プロセスがスピード・アップされるよう、実際にロジック１５０がＴＣＥテーブル１７５の関連セクションのキャッシュされたコピーを含むためである）。
【００４２】
ＴＣＥテーブル１７５は、ＤＭＡオペレーションのＩ／Ｏバス・アドレスによってインデックスされるＩ／Ｏアドレス検証及び変換テーブルである。このテーブルは、Ｉ／Ｏアダプタが割り当てられた記憶ロケーションのみをそのＩ／Ｏアダプタがアクセスすることを保証するために、及びプラットフォーム・ソフトウェアが、Ｉ／Ｏアダプタの装置ドライバによって発生されたＩ／Ｏコマンドに含まれたＤＭＡアドレスに関する物理記憶ブロックをリロケートすることを可能にするために使用される。
【００４３】
プラットフォーム１０１は、上述のようなハードウェアを含み、更に、オペレーティング・システム１７７、ドライバ１７８、アプリケーション１７９、及び他のソフトウェア１８０を含む。
【００４４】
図２は、本発明の実施例に従って、各エントリに対する制御フィールドを含むＴＣＥテーブルとも呼ばれるアドレス検証及び変換テーブルの一部を示す。テーブル１８２は、各物理ページに対するアドレス・フィールド１８３及び制御フィールド１８４を含む。本発明の実施例によれば、追加のフィールド、即ち、フィールド１８４が、図１に示されるＴＣＥテーブル１７５に加えられる。
【００４５】
例えば、エントリ１８５は、物理ページ「ａ」及び物理ページ「ａ」に対する現在の制御設定をアクセスするために使用すべきアドレスを含む。物理ページ「ａ」をアクセスするために使用すべきアドレスがエントリ１８５のフィールド１８３ａに記憶される。物理ページ「ａ」に対する現在の制御設定がフィールド１８４ａに記憶される。
【００４６】
エントリ１８６は、物理ページ「ｂ」及び物理ページ「ｂ」に対する現在の制御設定をアクセスするために使用すべきアドレスを含む。物理ページ「ｂ」をアクセスするために使用すべきアドレスがエントリ１８６のフィールド１８３ｂに記憶される。物理ページ「ｂ」に対する現在の制御設定がフィールド１８４ｂに記憶される。
【００４７】
図３は、本発明の実施例に従ってＤＭＡ書込みデータを記憶するために使用される代替データ・ページ１８７を示す。ＤＭＡ書込みデータは、オリジナル・ターゲット・ページにおけるロケーションＸＸＸからロケーションＹＹＹまでのデータ・ロケーションにおいてそのページに記憶されるようにターゲットされた。従って、このＤＭＡ書込みデータは、ロケーションＸＸＸからロケーションＹＹＹまでのデータ・ロケーションにおいて代替ページ１８７に記憶される。ロケーション０からロケーションＸＸＸまで及びロケーションＹＹＹからロケーションＺＺＺまでのデータ・ロケーションはデータをまったく含まないか又は無関係のデータを含む。
【００４８】
図４は、本発明の実施例に従って、フラッグを記憶するために使用される代替フラッグ・ページ１８８を示す。フラッグ・ページ１８８は、フラッグ・ロケーション０乃至ＺＺＺを含む。フラッグ・ページ１８８における各フラッグ・ロケーションがデータ・ページ１８７内に対応するデータ・ロケーションを有する。
【００４９】
各フラッグ・ロケーションには、フラッグが記憶される。特定のフラッグ・ロケーションにおけるフラッグがセットされる場合、そのフラッグ・ロケーションに対応するデータ・ページ内のデータ・ロケーションにおけるデータが、復元される必要がある有効なＤＭＡ書込みデータである。特定のフラッグ・ロケーションにおけるフラッグがセットされない場合、そのフラッグ・ロケーションに対応するデータ・ロケーションにおけるデータは有効なＤＭＡ書込みデータではなく、無視されなければならない。
【００５０】
従って、ロケーション０乃至ＸＸＸ及びロケーションＹＹＹからＺＺＺまでのロケーションにおけるフラッグはセットされず、一方、ロケーションＸＸＸ乃至ＹＹＹにおけるフラッグがセットされる。
【００５１】
図５は、本発明の実施例に従って、ＤＭＡ書込み時にオリジナル・ターゲット・ページに記憶されたオリジナル・データをＤＭＡ書込みデータと統合するために使用される復元ページ１８９を示す。オリジナル・データはオリジナル・ターゲット・ページから検索され、オリジナル・ターゲット・ページにおけるそれらのオリジナル・ロケーションに対応する復元ページ１８９内のデータ・ロケーションにコピーされる。
【００５２】
そこで、ＤＭＡ書込みデータがデータ・ページ１８７から検索され、フラッグ・ページ１８８からのフラッグを使ってオリジナル・データに重畳される。ＤＭＡ書込みデータを重畳するプロセスは、フラッグ・ページ１８８における各ロケーションに対して、そのロケーションにおけるフラッグがセットされているかどうかを決定することによって完成する。フラッグがセットされている場合、そのデータ・ページにおける対応するデータ・ロケーションに記憶されているデータが復元ページ１８９における対応するロケーションに記憶される。フラッグがセットされていない場合、そのデータ・ページにおける対応するデータ・ロケーションに記憶されているいずれのデータも無視され、復元ページにおける対応するロケーションには記憶されない。
【００５３】
図６は、本発明の実施例に従って、データ・ロケーション及びフラッグ・ロケーションの両方を含む単一の代替ページ１９０を示す。図６に示されるように、データ・ロケーション及びフラッグ・ロケーションはページ１９０を通して交互にされる。従って、ページ１９０における第１のロケーションはフラッグ・ロケーションａである。次にロケーションは、フラッグ・ロケーションａに対応するデータ・ロケーションａである。代替ページ１８７及び１８８の代わりに単一の代替ページ１９０を使用することが可能である。
【００５４】
代替ページ１９０は上記のような方法で使用される。ＤＭＡ書込みデータを重畳するプロセスは、ページ１９０における各フラッグ・ロケーションに対してフラッグがセットされているかどうかを決定することによって完成する。フラッグがフラッグ・ロケーションにおいてセットされている場合、対応するデータ・ロケーションに記憶されるデータは、復元ページにおける対応するロケーションに記憶される。フラッグがセットされていない場合、対応するデータ・ロケーションに記憶されている如何なるデータも無視され、復元ページにおける対応するロケーションには記憶されない。
【００５５】
図７及び図８は、本発明の実施例に従って、ＤＭＡ書込みを実行する方法を決定するために制御設定を利用すること及び、オリジナル・ターゲット・ページがページ・アウトされるとき、代替ページを利用することを示す高レベルのフローチャートを示す。プロセスは、ブロック２００によって示されるように開始し、しかる後、ブロック２０２に進む。ブロック２０２は、Ｉ／Ｏ装置が特定のターゲット・ページへのＤＭＡ書込みを実行しようとすることを表す。
【００５６】
次に、ブロック２０４が、この特定のページと関連するエントリをアドレス検証及び変換テーブルに設けることを示す。アドレス検証及び変換テーブルは、それがメモリ・コントローラ、Ｉ／Ｏブリッジ、ＰＣＩバス・ブリッジ、Ｉ／Ｏアダプタ、又は同様のものに設けられてもよいが、メイン・メモリに設けられることが望ましい。
【００５７】
次に、ブロック２０６が、このエントリの制御フィールドの現在の設定を読取ることを表す。そこで、プロセスはブロック２０８に進む。ブロック２０８は、制御フィールド設定が「ａ」であるか否かの決定を示す。制御フィールド設定「ａ」は第１の制御フィールド設定である。制御フィールド設定が「ａ」であるという決定が行われる場合、プロセスは、正規のＤＭＡ処理の継続を表すブロック２１０に進む。そこで、プロセスはブロック２０２に戻る。
【００５８】
ブロック２０８を再び参照すると、制御フィールド設定が「ａ」ではないという決定が行われる場合、プロセスはブロック２１２に進む。ブロック２１２は、制御フィールド設定が「ｂ」であるか否かの決定を示す。制御フィールド設定「ｂ」は第２の制御フィールド設定である。制御フィールド設定が「ｂ」であるという決定が行われる場合、プロセスはブロック２０６に戻る。
【００５９】
ブロック２１２を再び参照すると、制御フィールド設定が「ｂ」ではないという決定が行われる場合、プロセスはブロック２１４に進む。ブロック２１４は、制御フィールド設定が「ｃ」であるか否かの決定を示す。制御フィールド設定「ｃ」は第３の制御フィールド設定である。制御フィールド設定が「ｃ」であるという決定が行われる場合、プロセスはブロック２１６に進む。ブロック２１６は、使用可能な代替ページのリストから２つの代替ページを選択することを表す。１つのページはデータ代替ページであろうし、他のページはフラッグ代替ページであろう。これらの２つのページは相互に関連付けられる。
【００６０】
２つのページを関連付けるための１つの方法は、それらを実メモリにおける２つの連続したページにさせることである。通常、これは偶数／奇数アドレスのペアによって行われる。
【００６１】
これらのページを構成するためのいくつかの方法がある。１つの方法では、偶数ページがＤＭＡデータを含み、一方、奇数ページがフラッグを含む。
【００６２】
２つの別々のページを使用する代わりに、データ及びフラッグの両方を含む単一の代替ページを使用することも可能である。例えば、ＤＭＡバイト０が第１ページのバイト０、即ち、第１バイトに入り、それの対応するフラッグ・バイトが第１ページのバイト１に入る。これは、第２０４８のフラッグ・バイトが第２ページの第２バイトにあることによって継続する。ＤＭＡ及び対応するフラッグ・バイトの間の幾つかの他のマッピングが可能であり、当業者には容易に明らかである。
【００６３】
次に、ブロック２１８は、データ・ロケーションを含む選択されたデータ代替ページのアドレスでもってアドレス検証及び変換テーブルのエントリを更新すること及び制御フィールドを「ｄ」にセットすることを示す。そこで、プロセスはブロック２０６に進む。
【００６４】
ブロック２１４を再び参照すると、制御フィールド設定が「ｃ」ではないという決定が行われる場合、プロセスはブロック２２０に進む。ブロック２２０は、制御フィールド設定が「ｄ」であるか否かに関する決定を示す。制御フィールド設定「ｄ」は第４の制御フィールド設定である。制御フィールド設定が「ｄ」であるという決定が行われる場合、プロセスは、接続符号Ａによって示されるように図８におけるブロック２３０に進む。
【００６５】
ブロック２３０は、アドレス検証及び変換テーブルのエントリのアドレス部分に記憶されたアドレスによって識別されるデータ・ページにＤＭＡ書込みデータを記憶することを示す。次に、ブロック２３２が、このデータ・ページに関連するフラッグ・ページを見つけること示す。しかる後、ブロック２３４が、ＤＭＡ書込み中にデータが記憶されたデータ・ページにおける各データ・ロケーションに対応するフラッグ・ページ内の各フラッグ・ロケーションにフラッグをセットすることを示す。そこで、プロセスは、接続符号Ｂによって示されるように図７のブロック２０２に戻る。
【００６６】
図７におけるブロック２２０を再び参照すると、制御フィールド設定が「ｄ」ではないという決定が行われる場合、プロセスは、エラーをレポートすることを示すブロック２２２に進む。しかる後、プロセスはブロック２０２に戻る。
【００６７】
図９は、本発明の実施例に従って、使用可能な代替ページの数が所定の閾値よりも小さくなったときに割込みを発生することを表す高レベルのフローチャートを示す。プロセスはブロック３００によって示されるように開始し、しかる後、代替ページのリスト、即ち、プールを監視することを示すブロック３０２に進む。これらのリストされたページは、代替ページとして使用されるよう利用可能である。次に，ブロック３０４が、そのリストにおけるページの数が所定の閾値よりも大きいか否かに関する決定を示す。リストされた代替ページの数がその閾値よりも大きいという決定が行われる場合、プロセスはブロック３０２に戻る。リストされた代替ページの数がその閾値よりも大きくないという決定が行われる場合、プロセスはブロック３０６に進む。ブロック３０６は、「ランニング・ロー（running low）」割込みを発生することを示す。そこで、プロセスはブロック３０２に戻る。
【００６８】
図１０は、本発明の実施例に従って、更なる代替ページの割振りを示す高レベルのフローチャートを示す。プロセスはブロック４００によって示されるように開始し、しかる後、ブロック４０２に進む。ブロック４０２は、メモリ仮想化ソフトウェアが「ランニング・ロー」割込みを受けたか否かに関する決定を示す。メモリ仮想化ソフトウェアが「ランニング・ロー」割込みを受けてないという決定が行われる場合、プロセスはブロック４０２に戻る。メモリ仮想化ソフトウェアが「ランニング・ロー」割込みを受けたという決定が行われる場合、プロセスはブロック４０４に進む。ブロック４０４は、メモリ仮想化ソフトウェアが更なるページを代替ページとして使用するためにそれらを割り振ることを示す。これらの新たに割り振られたページは利用可能な代替ページとしてリストされ、従って、利用可能な代替ページのプールの一部となる。そこで、プロセスはブロック４０２に戻る。
【００６９】
図１１は、本発明の実施例に従って、ページ・アウトされた物理ページに対するエントリをプラットフォームが更新する操作を表す高レベルのフローチャートを示す。プロセスはブロック５００によって示されるように開始し、しかる後、ブロック５０２に進む。ブロック５０２は、メモリ仮想化ソフトウェアが、他のプロセスのために使用すべきＩ／Ｏアダプタに専用のページを選択することを表す。次に、ブロック５０４は、特定のページがＤＭＡ書込みのターゲットであるか否かを決定することを示す。メモリ仮想化ソフトウェアは、すべてのＤＭＡオペレーションを検証するために使用されるアドレス検証及び変換テーブルをチェックして、この特定のページがＤＭＡ書込みのターゲットであるかどうかを決定する。アドレス検証及び変換テーブルは、書込み許可フラッグと共に、ＤＭＡオペレーションのターゲットとなり得るすべてのページのアドレスを含む。
【００７０】
ブロック５０４を再び参照すると、その特定のページがＤＭＡ書込みのターゲットではないという決定が行われる場合、プロセスはブロック５１２によって示されるように終了する。その特定のページがＤＭＡ書込みのターゲットであるという決定が行われる場合、プロセスはブロック５０６に進む。ブロック５０６は、この特定のページと関連するエントリをアドレス検証及び変換テーブルにおいて見つけることを表す。
【００７１】
次にブロック５０８は、このエントリに対する制御フィールドを「ｃ」に設定することによってその制御フィールドを更新することを示す。しかる後、ブロック５１０はこのエントリに対するフィールドのアドレス部分をクリアすることを示す。そこでプロセスは、ブロック５１２によって示されるように終了する。
【００７２】
図１２は、本発明の実施例に従って、復元されたページを形成するために、代替ページにおけるデータ・ロケーションからのデータをオリジナル・ターゲット・ページからのデータと再統合することを表す高レベルのフローチャートを示す。
【００７３】
プロセスはブロック６００によって示されるように開始し、しかる後、ブロック６０２に進む。ブロック６０２は、特定のページが復元される必要があることを示す。例えば、１つのページに書込んでいたＩ／Ｏオペレーションが終了するとき、そのページは復元される必要がある。その書込みを行っていたＩ／Ｏアダプタは、それが制御するオペレーティング・システムに割込みを送る。オリジナルＩ／Ｏを要求したエンド・ユーザは、最終的には、そのオペレーションが終了したことを通知される。エンド・ユーザがそのページにおけるデータをアクセスしようとするとき、仮想メモリ・ページは物理的にはメイン・メモリ内にないので、その試みられたアクセスはページ・デフォルトをもたらすであろう。そこで、これは、そのページを復元するという要求をトリガする。
【００７４】
次に、ブロック６０４が、復元ページとして使用するための代替ページを代替ページのリストから選択することを示す。しかる後、ブロック６０６が、補助記憶装置から、復元ページとして使用されている代替ページにページ・アウトされたデータを読み込むことを表す。従って、ＤＭＡ書込み時にオリジナル・ターゲット・ページに記憶されたデータが今や復元ページに記憶される。このデータは、そのデータがオリジナル・ターゲット・ページに記憶されたロケーションに対応するその復元ページ内のロケーションに記憶される。
【００７５】
補助記憶装置は、オリジナル・ターゲット・ページがページ・アウトされたとき、オリジナル・データが記憶された記憶装置である。オリジナル・データは、今や、復元ペーにおけるそれらのオリジナル・データ・ロケーションに記憶される。従って、この時点では、その復元ページは、ページ・アウトされる直前に存在したオリジナル・ページと同じである。
【００７６】
次に、プロセスはブロック６０８に進む。ブロック６０８は、オリジナル・ページがＤＭＡ書込みのターゲットであったか否かを決定することを示す。オリジナル・ページがＤＭＡ書込みのターゲットではなかったという決定が行われる場合、プロセスはブロック６２４によって示されるように終了する。ブロック６０８を再び参照すると、オリジナル・ページがＤＭＡ書込みのターゲットであったという決定が行われる場合、プロセスはブロック６１０に進む。ブロック６１０は、この代替ページのアドレスと関連するエントリをアドレス検証及び変換テーブルにおいて見つけることを示している。
【００７７】
次に、ブロック６１２が、このエントリに対する制御フィールドが「ｄ」に設定されているか否かを決定することを示す。これは、オリジナル・ページはページ・アウトされたがそのオリジナル・ページへのＤＭＡ書込みが処理されたか否かを決定することである。ＤＭＡ書込みが処理された場合、データは、意図されたオリジナルＤＭＡページの代わりに代替データ・ページに書込まれた。制御フィールドが「ｄ」に設定されてないという決定が行われる場合、即ち、オリジナル・ページはページ・アウトされたがそのオリジナル・ページへのＤＭＡ書込みが処理されなかったという決定が行われる場合、処理はブロック６２０に進む。制御フィールドが「ｄ」に設定されているという決定が行われる場合、即ち、オリジナル・ページはページ・アウトされたがそのオリジナル・ページへのＤＭＡ書込みが処理されたという決定が行われる場合、処理はブロック６１４に進む。ブロック６１４は、制御フィールドを「ｂ」に設定することによってこのエントリの制御フィールドを更新すること示す。しかる後、ブロック６１６が、有効なＤＭＡ書込みデータを識別するために、フラッグ・ロケーションに記憶されたフラッグを対応するデータ・ロケーションに記憶されているデータに比較することを表す。
【００７８】
次に、プロセスはブロック６１８に進む。ブロック６１８は、有効なＤＭＡ書込みデータが記憶されたデータ・ロケーションに対応する復元ページにおける各ロケーションにデータを記憶することを示す。この方法では、代替ページからのデータがオリジナル・データの上に重畳される。次に、プロセスはブロック６１９に進む。ブロック６１９は、代替データ・ページ及びフラッグ・ページを、それらがもう一度代替ページのリストに含まれるように解放することを表す。この方法では、これらの解放されたページは、再び代替ページのプールの一部となる。次に、ブロック６２０がこのエントリのアドレス部分に復元ページのアドレスを記憶することを表す。次に、ブロック６２２が、制御フィールドを「ａ」に設定することによってこのエントリの制御エントリ・フィールドを更新することを示す。そこで、プロセスは、ブロック６２４によって表されるように終了する。
【００７９】
本発明は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形を取ることが可能である。好適な実施例では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがそれに限定されないハードウェアおよびソフトウェアの結合体として具現化される。
【００８０】
更に、本発明は、コンピュータ又は任意の命令実行システムによって、またはそれに関連して、使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形を取ることが可能である。この説明のためには、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによってまたはそれと関連して使用するためのプログラムを内蔵、記憶、通信、伝播、または搬送することが可能な任意の実体的な装置であってもよい。
【００８１】
その媒体は、電子的、磁気的、光学的、電磁的、赤外線、または半導体システム（または装置またはデバイス）あるいは伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、固定磁気ディスク、および光ディスクを含む。光ディスクの現用の例は、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読取り／書込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【００８２】
プログラム・コードを記憶および／または実行するために適したデータ処理システムは、システム・バスを通してメモリ素子に直接的または間接的に結合された少なくとも１つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリ、大容量記憶装置、および、キャッシュ・メモリを含んでもよく、特に、キャッシュ・メモリは、コードが実行時に大容量記憶装置から検索されなければならない回数を少なくするために少なくとも幾つかのプログラム・コードの一時的な記憶装置を提供する。
【００８３】
入出力またはＩ／Ｏ装置（キーボード、ディスプレイ、ポインティング装置等を含むがそれに限定されない）は、Ｉ／Ｏコントローラを直接的にまたはそれを介在してシステムに結合することが可能である。
【００８４】
ネットワーク・アダプタは、データ処理システムが、私設または公衆のネットワークの介在によって他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合されることを可能にするようにシステムに結合されてもよい。モデム、ケーブル・モデム、およびイーサネット（登録商標）・カードは、現在使用可能なタイプのネットワーク・アダプタのほんの一部に過ぎない。
【００８５】
例示および説明を目的として本発明の説明を行ったが、それは、網羅的であること、または開示された形式に発明を限定することを意図するものではない。当業者には多くの修正および変更が明らかであろう。発明の原理および実用的な応用例を最もよく説明するために、および特定の意図された用途に適した種々の修正を伴う種々の実施例に関して当業者が発明を理解することを可能にするために、実施例を選択および説明した。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施例を含むコンピュータ・システムのブロック図である。
【図２】本発明の実施例に従って、各エントリに対する制御フィールドを含むアドレス検証及び変換テーブルの一部分を示す概略図である。
【図３】本発明の実施例に従って、ＤＭＡ書込みデータを記憶するために使用される代替データ・ページを示す概略図である。
【図４】本発明の実施例に従って、フラッグを記憶するために使用される代替フラッグ・ページを示す概略図である。
【図５】本発明の実施例に従って、オリジナル・ターゲット・ページに記憶されたオリジナル・データをＤＭＡ書込みデータと統合するために使用される復元ページを示す概略図である。
【図６】本発明の実施例に従って、データ・ロケーションおよびフラッグ・ロケーションの両方を含む代替ページを示す概略図である。
【図７】ＤＭＡ書込みを実行する方法を決定するために制御設定を利用すること、およびオリジナル・ターゲット・ページがページ・アウトされるときに代替ページを利用することを表す高レベルのフローチャートの一部である。
【図８】図７のフローチャートに結合される残りの部分である。
【図９】本発明の実施例に従って、使用可能な代替ページの数が所定の閾値よりも小さくなるとき、割り込みを発生することを示す高レベルのフローチャートである。
【図１０】本発明の実施例に従って、更なる代替ページを割振ることを示す高レベルのフローチャートである。
【図１１】本発明の実施例に従って、ページ・アウトされた物理ページに対するアドレス検証及び変換テーブルのエントリをプラットフォームが更新することを示す高レベルのフローチャートである。
【図１２】本発明の実施例に従って、復元されたページを形成するために、代替ケージにおけるデータ・ロケーションからのデータを、オリジナル・ターゲット・ページからのデータと再統合することを示す高レベルのフローチャートである。
【符号の説明】
【００８７】
１００  コンピュータ・システム
１１０  揮発性メモリ
１３５  Ｉ／Ｏ装置
１５０  ロジック
１５５  Ｉ／Ｏデータ・バッファ
１６０  オペレーティング・システム
１６５  ファームウェア
【図１】
2007272885.tif 000003
【図２】
2007272885.tif 000004
【図３】
2007272885.tif 000005
【図４】
2007272885.tif 000006
【図５】
2007272885.tif 000007
【図６】
2007272885.tif 000008
【図７】
2007272885.tif 000009
【図８】
2007272885.tif 000010
【図９】
2007272885.tif 000011
【図１０】
2007272885.tif 000012
【図１１】
2007272885.tif 000013
【図１２】
2007272885.tif 000014