(57)【要約】【課題】  物理Ｉ／Ｏアダプタによるアクセスを受ける物理ページ間でのデータのマイグレーションを可能にするために物理Ｉ／Ｏアダプタにおける選択されたＤＭＡオペレーションを一時的に停止させるための機構を提供する。【解決手段】  システム・メモリにおける物理ページへのＤＭＡを求める要求をＩ／Ｏアダプタから受け取るとき、その物理ページを指す変換制御エントリ（ＴＣＥ）におけるマイグレーション進行状況表示（ＭＩＰ）ビットが検査される。ＭＩＰビットは、ＴＣＥにおいて参照される物理ページに関する、システム・メモリ内の他のロケーションへのマイグレーションが現在進行中であるかどうかを表す。物理ページのマイグレーションが進行中であるということをＭＩＰビットが表す場合、Ｉ／ＯアダプタからのＤＭＡは一時的に停止されるが、他のＩ／Ｏアダプタからシステム・メモリ内の他の物理ページへの他のＤＭＡオペレーションは継続することを許される。【選択図】  図８
2007287140.tif 000002
【特許請求の範囲】
【請求項１】
ダイレクト・メモリ・アクセス・オペレーションを選択的に停止させるための方法であって、
物理ページへのダイレクト・メモリ・アクセスに関する要求を入出力アダプタから受け取ることに応答して、前記物理ページを指す変換制御エントリにおいて、システム・メモリ内の他のロケーションへの前記物理ページのマイグレーションが進行中であるかどうかを表すマイグレーション進行状況表示ビットを検査するステップと、
前記物理ページのマイグレーションが進行中であることを前記マイグレーション進行状況表示ビットが表す場合、前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるが、他の入出力アダプタからシステム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセス・オペレーションを継続させるステップと、
を含む方法。
【請求項２】
前記物理ページのマイグレーションが進行中でないことを前記マイグレーション進行状況表示ビットが表す場合、前記物理ページへのダイレクト・メモリ・アクセスが継続することを可能にするステップを更に含む、請求項１に記載の方法。
【請求項３】
前記停止させるステップが、前記マイグレーションが完了するまで前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるステップを含む、請求項１に記載の方法。
【請求項４】
前記検査するステップが、
システム・メモリにある変換制御エントリ・テーブルから前記変換制御エントリをフェッチするステップと、
前記変換制御エントリ内の前記マイグレーション進行状況表示ビットを検査するために前記変換制御エントリを前記入出力アダプタ内の保持レジスタに入れるステップと、
を更に含む、請求項１に記載の方法。
【請求項５】
前記停止させるステップが、前記入出力アダプタからのダイレクト・メモリ・アクセス書込み要求およびダイレクト・メモリ・アクセス読取り要求ならびに前記入出力アダプタからのメモリ・マップ入出力ロード応答を使用不可にするステップを更に含む、請求項１に記載の方法。
【請求項６】
マイグレーションされる物理ページへのダイレクト・メモリ・アクセス書込み要求を受け取るまで、前記停止させるステップを遅らせる、請求項１に記載の方法。
【請求項７】
前記ダイレクト・メモリ・アクセスを停止させることに応答して、前記保持レジスタから前記変換制御エントリを廃棄するステップと、
前記ダイレクト・メモリ・アクセスにおける前記物理ページのマイグレーションが進行中でないという決定が行われるまで、前記変換制御エントリを変換制御エントリ・テーブルから再フェッチするステップと、
を更に含む、請求項４に記載の方法。
【請求項８】
前記保持レジスタから前記変換制御エントリを廃棄することに応答して、再フェッチ・タイマを開始させるステップと、
前記ダイレクト・メモリ・アクセスにおける前記物理ページのマイグレーションが進行中でないという決定が行われるまで、前記変換制御エントリが廃棄され、且つ前記再フェッチ・タイマが満了するたびに前記変換制御エントリ・テーブルから前記変換制御エントリを再フェッチするステップと、
を更に含む、請求項７に記載の方法。
【請求項９】
前記要求を受け取ることに応答して、前記ダイレクト・メモリ・アクセスを行うために必要な変換制御エントリがキャッシュされているかどうかを決定するステップと、
前記変換制御エントリがキャッシュされてない場合、前記変換制御エントリがフェッチされるまで前記ダイレクト・メモリ・アクセスを停止させるステップと、
を更に含む、請求項１に記載の方法。
【請求項１０】
前記変換制御エントリがキャッシュされている場合、キャッシュされている変換制御エントリが有効であるかどうかを決定するステップと、
前記キャッシュされている変換制御エントリが有効である場合、前記キャッシュされている変換制御エントリを使用して前記ダイレクト・メモリ・アクセスが継続することを可能にするステップと、
を更に含む、請求項９に記載の方法。
【請求項１１】
前記物理ページのマイグレーションが、
前記物理ページのマイグレーションが進行中であることを表すように、前記物理ページを指すすべての変換制御エントリ内のマイグレーション進行状況表示ビットをセットするステップと、
前記マイグレーション進行状況表示ビットをセットすることに応答して、前記変換制御エントリのキャッシュされたコピーを無効にするステップと、
各ＰＣＩホスト・ブリッジにメモリ・マップ入出力ロードを発行するステップと、
すべてのメモリ・マップ入出力ロードが完了したという決定に応答して、前記物理ページの内容を新しい物理ページにコピーするステップと、
前記新しい物理ページを指すように前記変換制御エントリを修正するステップと、
物理ページのマイグレーションが進行中でないことを表すように、前記変換制御エントリ内の各マイグレーション進行状況表示ビットをセットするステップと、
すべての実行中のダイレクト・メモリ・アクセス読取りオペレーションが完了したという決定に応答して、前記マイグレーションが完了したとして宣言するステップと、
を含む、請求項１に記載の方法。
【請求項１２】
前記メモリ・マップ入出力ロードは、メモリ・マップ入出力ロード応答がプロセッサに戻る前に前記変換制御エントリの無効化を前記ＰＣＩホスト・ブリッジに到達させ、前記変換制御エントリの無効化前におけるメモリへのすべてのダイレクト・メモリ・アクセス書込みがメモリに送出されることを保証させる、請求項１１に記載の方法。
【請求項１３】
前記コピーするステップが、前記物理ページへのソフトウェア・ロードおよび前記新しいページへのソフトウェア・ストアを行うステップを含む、請求項１１に記載の方法。
【請求項１４】
ダイレクト・メモリ・アクセス・オペレーションを停止させるための装置であって、
システム・メモリの物理ページへのダイレクト・メモリ・アクセスを求める要求を入出力アダプタから受け取るための入出力ブリッジと、
前記入出力ブリッジに接続され、マイグレーション制御状態マシンを含む変換制御エントリ・マイグレーション制御手段と、
を含み、
前記マイグレーション制御状態マシンは、前記入出力ブリッジが前記要求を受け取ることに応答して、前記物理ページを指す変換制御エントリにおいて、システム・メモリ内の他のロケーションへの前記物理ページのマイグレーションが進行中であるかどうかを表すマイグレーション進行状況表示ビットを検査し、
前記マイグレーション制御状態マシンは、前記物理ページのマイグレーションが進行中であることを前記マイグレーション進行状況表示ビットが表す場合、前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるが、他の入出力アダプタからシステム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセスを継続させる、
装置。
【請求項１５】
ダイレクト・メモリ・アクセス・オペレーションを選択的に停止させるためのデータ処理システムであって、
物理ページへのダイレクト・メモリ・アクセスを求める要求を入出力アダプタから受け取ることに応答して、前記物理ページを指す変換制御エントリにおいて、システム・メモリ内の他のロケーションへの前記物理ページのマイグレーションが進行中であるかどうかを表すマイグレーション進行状況表示ビットを検査するための検査手段と、
前記物理ページに関するマイグレーションが進行中であることを前記マイグレーション進行状況表示ビットが表す場合、前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるが、他の入出力アダプタからシステム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセス・オペレーションを継続させる停止手段と、
を含む、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、特に、入出力（Ｉ／Ｏ）装置によるアクセスを受ける物理ページ間でのデータのマイグレーションに関するものである。更に詳しく云えば、本発明は、物理Ｉ／Ｏアダプタによるアクセスを受ける物理ページ間でのデータのマイグレーションを可能にするために、物理Ｉ／Ｏアダプタにおける選択されたダイレクト・メモリ・アクセス（ＤＭＡ）オペレーションを一時的に停止させること（stalling）に関するものである。
【背景技術】
【０００２】
コンピュータ・システムは、そのシステムにおけるデータ処理を混乱させることなく実行中に再構成することが可能である。例えば、複数のオペレーティング・システムがコンピュータ上で稼動している場合、それらのオペレーティング・システムの１つが或るメモリ・ブロックを使用しており、第２のオペレーティング・システムによる使用のためにそのメモリ・ブロックを再割振りする必要があることがある。従って、第１のオペレーティング・システムは、第２のオペレーティング・システムのアクセスを可能にするためには、その物理メモリ・ブロックの使用を中止しなければならない。もう１つの例では、物理メモリ・ブロックにおいて問題が検出されることがあり、その場合、そのメモリを置換することができるよう、オペレーションからそのメモリを除外することが望ましい。従って、特定の物理ページ内のデータを移動させる必要があることがあり、あるいは、その物理ページの使用を所定の期間の間阻止する必要があることがある。このメモリ・ブロックがＩ／Ｏ装置によるアクセスを受ける場合、その物理ページのマイグレーションまたはそのページの使用の阻止という問題は困難なことになる。
【０００３】
Ｉ／Ｏ装置によるアクセスを受けるデータをマイグレーションするための１つの方法は、特定の物理ページをアクセスするためにそのＩ／Ｏ装置が結合されるＩ／Ｏアダプタによって行われるすべてのアービトレーションを一時的に、しかし完全に使用不可にすることである。アービトレーションのプロセスはＤＭＡプロセス中に取られる第１ステップである。アービトレーションが使用不可にされるとき、物理Ｉ／ＯアダプタのすべてのＤＭＡオペレーションが使用不可にされる。従って、アービトレーションが使用不可にされるとき、短い期間の間、マイグレーションされるべきデータをアクセスする必要がある物理Ｉ／Ｏアダプタに対するすべてのＤＭＡオペレーションが全体的に使用不可にされる。そこで、その短い期間の間に、物理ページ・データがマイグレーションまたは更新される。一旦物理ページのマイグレーションまたは更新が完了すると、ＤＭＡオペレーションはそのＩ／Ｏアダプタにおいて再び使用可能にされる。
【０００４】
しかし、業界標準のペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnect : ＰＣＩ）エクスプレス・バスのような既存のアダプタはデータ・マイグレーションを遂行するためにＤＭＡオペレーションを使用不可にするまたは停止させることを可能にするが、これらのアダプタは、すべてのＤＭＡオペレーションが一時的に中断されることを必要とする。この現在の方法に対する欠点は、バスにおけるすべてのＤＭＡオペレーションを使用不可にすると、Ｉ／ＯアダプタへのまたはＩ／Ｏアダプタからの他の実行中のＤＭＡ転送に悪影響を与えることがあり、物理Ｉ／Ｏアダプタをエラー状態に入らせることがあるということである。
【０００５】
従って、或る物理Ｉ／Ｏアダプタによるアクセスを受ける物理ページのマイグレーションを可能にするためにその物理Ｉ／Ｏアダプタにおける選択されたＤＭＡオペレーションだけを停止させるが、その物理Ｉ／Ｏアダプタからシステム・メモリ内の他のページへの他のＤＭＡオペレーションが継続することを可能にするための機構を持つことは有利なことであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、物理Ｉ／Ｏアダプタによるアクセスを受ける物理ページ間でのデータのマイグレーションを可能にするために、その物理Ｉ／Ｏアダプタにおける選択されたダイレクト・メモリ・アクセス（ＤＭＡ）オペレーションを一時的に停止させるための方法、装置およびデータ処理システムを提供することである。なお、この停止させるということは、Ｉ／ＯアダプタへのまたはＩ／ＯアダプタからのＤＭＡオペレーションを中断または使用不可にするプロセスである。
【課題を解決するための手段】
【０００７】
本発明の機構によれば、データが物理ページ間でマイグレーションされる間、Ｉ／ＯアダプタへのまたはＩ／ＯアダプタからのＤＭＡオペレーションは一時的に停止させられるが、システム・メモリ内の他のページに対する他の物理Ｉ／Ｏアダプタへのまたは他の物理Ｉ／Ｏアダプタからの他のＤＭＡオペレーションは継続することを可能にされる。システム・メモリにおける物理ページへのダイレクト・メモリ・アクセスを求める要求をＩ／Ｏアダプタから受け取るとき、その物理ページを指す変換制御エントリ内のマイグレーション進行状況表示ビットが検査される。マイグレーション進行状況表示ビットは、システム・メモリ内の他のロケーションへの当該物理ページのマイグレーションが現在進行中であるかどうかを表す。物理ページのマイグレーションが進行中であるということをマイグレーション進行状況表示ビットが表す場合、Ｉ／Ｏアダプタからのダイレクト・メモリ・アクセスは一時的に停止させられるが、他のＩ／Ｏアダプタからシステム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセス・オペレーションは継続することを可能にされる。
【発明を実施するための最良の形態】
【０００８】
次に図面を参照すると、図１は、本発明の実施例を具現化し得るデータ処理システムのブロック図を示す。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、および１０４を含む対称マルチプロセッサ（ＳＭＰ）システムであってもよい。例えば、データ処理システム１００は、ネットワ−ク内でサーバとして具現化される IBM（商標）eServer（商標）（米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの製品）であってもよい。それとは別に、シングル・プロセッサ・システムを使用することも可能である。更に、システム・バス１０６にはメモリ・コントローラ／キャッシュ１０８も接続される。このメモリ・コントローラ／キャッシュは、複数のローカル・メモリ１６０〜１６３に対するインターフェースを提供する。システム・バス１０６にはＩ／Ｏバス・ブリッジ１１０も接続され、Ｉ／Ｏバス１１２に対するインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８およびＩ／Ｏバス・ブリッジ１１０は、図示のように統合されてもよい。
【０００９】
データ処理システム１００は論理分割(ＬＰＡＲ)データ処理システムである。しかし、本発明がＬＰＡＲシステムに限定されず、他のデータ処理システムにおいて具現化することも可能であることは当然である。ＬＰＡＲデータ処理システム１００は、同時に稼動する複数の異種のオペレーティング・システム(あるいは単一のオペレーティング・システムの複数コピー)を有する。これらの複数のオペレーティング・システムの各々が、内部で実行される任意の数のソフトウェア・プログラムを有してもよい。データ処理システム１００は、種々のＰＣＩ入出力アダプタ（ＩＯＡ）１２０、１２１、１２２、１２３、および１２４、グラフィックス・アダプタ１４８、ならびにハードディスク・アダプタ１４９、あるいはそれの一部が種々の論理パーティションに割り当てられるように論理分割される。この場合、グラフィックス・アダプタ１４８はディスプレイ装置（図示されてない）のための接続を提供し、一方ハードディスク・アダプタ１４９は、ハードディスク１５０を制御するための接続を提供する。
【００１０】
そこで、例えば、データ処理システム１００が３つの論理パーティション、Ｐ１、Ｐ２、およびＰ３に分割されるものと仮定する。ＰＣＩ ＩＯＡ１２０〜１２４の各々、グラフィックス・アダプタ１４８、ハードディスク・アダプタ１４９、ホスト・プロセッサ１０１〜１０４の各々、およびローカル・メモリ１６０〜１６３からのメモリが３つのパーティションの各々に割り当てられる。この例では、ローカル・メモリ１６０〜１６３は、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形式をとることが可能である。ＤＩＭＭは、ＤＩＭＭごとにパーティションに常に割り当てられるわけではない。代わりに、パーティションは、プラットフォームによって見られるメモリ全体のうちの一部分を割り当てられるであろう。例えば、プロセッサ１０１、ローカル・メモリ１６０〜１６３のうちの一部分のメモリ、ＰＣＩＩＯＡ１２１、１２３、および１２４を論理パーティションＰ１に割り当て、プロセッサ１０２、１０３、ローカル・メモリ１６０〜１６３のうちの一部分のメモリ、およびＰＣＩＩＯＡ１２０および１２２をパーティションＰ２に割り当て、プロセッサ１０４、ローカル・メモリ１６０〜１６３のうちの一部分のメモリ、グラフィックス・アダプタ１４８、およびハードディスク・アダプタ１４９を論理パーティションＰ３に割り当てることが可能である。
【００１１】
論理分割データ処理システム１００において実行される各オペレーティング・システムは異なる論理パーティションに割り当てられる。したがって、データ処理システム１００において実行される各オペレーティング・システムは、その論理パーティション内にあるＩＯＡだけをアクセスすることが可能である。例えば、アドバンスド・インタラクティブ・イグゼクティブ（ＡＩＸ）オペレーティング・システムの１つのインスタンスがパーティションＰ１内で実行され、ＡＩＸオペレーティング・システムの第２のインスタンス（コピー）がパーティションＰ２の内で実行され、LinuxR（商標）またはOS/400（商標）オペレーティング・システムが論理パーティションＰ３の内で実行されてもよい。
【００１２】
ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ホスト・ブリッジ（ＰＨＢ）１３０、１３１、１３２、および１３３がＩ／Ｏバス１１２に接続され、それぞれ、ＰＣＩローカル・バス１４０、１４１、１４２、および１４３に対するインターフェースを提供する。ＰＣＩローカル・バス１４０には、スイッチおよびブリッジを含むＩ／Ｏファブリック１８０を介してＰＣＩＩＯＡ１２０、１２１が接続される。同様に、ＰＣＩローカル・バス１４１には、Ｉ／Ｏファブリック１８１を介してＰＣＩ ＩＯＡ１２２、１２３が接続され、ＰＣＩローカル・バス１４２には、Ｉ／Ｏファブリック１８２を介してＰＣＩＩＯＡ１２４が接続され、ＰＣＩローカル・バス１４３には、Ｉ／Ｏファブリック１８３を介してグラフィックス・アダプタ１４８およびハードディスク・アダプタ１４９が接続される。Ｉ／Ｏファブリック１８０〜１８３はＰＣＩバス１４０〜１４３に対するインターフェースを提供する。典型的なＰＣＩホスト・ブリッジは４〜８個のＩＯＡ（例えば、アドイン・コネクター用の拡張スロット）をサポートするであろう。各ＰＣＩ ＩＯＡ１２０〜１２４は、データ処理システム１００と、例えば、データ処理システム１００に対するクライアントである他のネットワーク・コンピューターのような入出力装置との間のインターフェースを提供する。
【００１３】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１４０をＩ／Ｏバス１１２に接続するためのインターフェースを提供する。ＰＣＩバス１４０は、更に、ＰＣＩホスト・ブリッジ１３０を、サービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー・ロジック１９４およびＩ／Ｏファブリック１８０に接続する。サービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー・ロジック１９４はＰＣＩ／ＩＳＡブリッジ１９３を宛先とするＰＣＩアクセスを送る。ＮＶＲＡＭストレージ１９２がＩＳＡバス１９６に接続される。サービス・プロセッサ１３５がローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー・ロジック１９４に接続される。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４に接続される。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ １１４９.１参照）およびフィリップスＩ２Ｃバスの結合体である。しかし、それとは別に、ＪＴＡＧ／Ｉ２Ｃバス１３４は、フィリップスＩ２Ｃバスのみと、またはＪＴＡＧ／スキャン・バスのみと置換することも可能である。ホスト・プロセッサ１０１、１０２、１０３、および１０４のすべてのＳＰ−ＡＴＴＮ信号がサービス・プロセッサ１３５の割込み入力信号に接続される。サービス・プロセッサ１３５はそれ自身のローカル・メモリ１９１を有し、ハードウェアＯＰパネル１９０に対するアクセスも行う。 
【００１４】
データ処理システム１００が最初に電力供給されるとき、サービス・プロセッサ１３５は、ＪＴＡＧ／Ｉ２Ｃバス１３４を使用してシステム(ホスト)プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０に問い合わせる。このステップの完了時に、サービス・プロセッサ１３５は、データ処理システム１００に関するインベントリおよびトポロジを理解する。サービス・プロセッサ１３５は、さらに、ホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０に問い合わせをすることによってわかったすべての要素に関する組込み自己診断テスト（ＢＩＳＴ）、基本検証テスト（ＢＡＴ）、およびメモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト時に検出された障害に関する如何なるエラー情報も、サービス・プロセッサ１３５によって収集および報告される。
【００１５】
ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト時に障害があると分かった要素を取り除いた後でも依然としてシステム資源の有意／有効構成が可能である場合、データ処理システム１００は実行可能なコードをローカル(ホスト)・メモリ１６０〜１６３にロードすることを可能にされる。その後、サービス・プロセッサ１３５は、ローカル・メモリ１６０〜１６３にロードされたコードの実行のためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４がデータ処理システム１００内のそれぞれのオペレーティング・システムからのコードを実行している間、サービス・プロセッサ１３５は、エラーをモニタして報告するモードに入る。サービス・プロセッサ１３５によってモニタされる項目のタイプは、例えば、冷却ファンの速度およびオペレーション、熱センサー、電源調整装置、ならびにプロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、およびＩ／Ｏブリッジ１１０によって報告された復元可能エラーおよび復元不可能エラーを含む。
【００１６】
サービス・プロセッサ１３５は、データ処理システム１００におけるすべてのモニタされた項目に関係するエラー情報を保存し且つ報告する義務を負う。サービス・プロセッサ１３５は、さらにエラーのタイプおよび定義された閾値に基づいてアクションを取る。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリにおける過度の復元可能エラーに注意し、これがハード障害の予兆であるということを決定することも可能である。この決定に基づいて、サービス・プロセッサ１３５は、現在の稼動セッションおよび将来の初期プログラム・ロード（ＩＰＬ）時の構成解除に備えてその資源をマークすることが可能である。なお、ＩＰＬは、「ブート」あるいは「ブートストラップ」と呼ばれることもある。 
【００１７】
データ処理システム１００は、種々の商業的に入手可能なコンピューター・システムを使用して具現化することが可能である。例えば、データ処理システム１００は、IBM eServer Model 840 システムを使用して具現化することも可能である。そのようなシステムは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な OS/400（商標）オペレーティング・システムを使用して論理分割を支援し得るものである。
【００１８】
図１に示されたハードウェアが変更可能であることは当業者には明らかであろう。例えば、図示のハードウェアに加えて、あるいはそのハードウェアの代わりに光ディスク装置等のような他の周辺装置を使用することも可能である。図示の例は、本発明に関しての体系上の限定を暗示することを意味するものではない。
【００１９】
Ｉ／Ｏブリッジ１１０は、テーブル１１０ａをそのテーブルのための制御装置と共に含む。変換および制御エントリ（ＴＣＥ）がテーブル１１０ａ（即ち、ＴＣＥテーブル）に格納される。テーブル１１０ａは、Ｉ／Ｏページに基づいて、Ｉ／Ｏ装置から物理ページへのＩ／Ｏオペレーションを制御する機能を提供するＩ／Ｏアドレス変換および保護機構である。
【００２０】
ＴＣＥエントリは、物理メモリの物理ページの実アドレスを、Ｉ／ＯアダプタによってＩ／Ｏバス上に与えられるアドレスと関連付ける。各エントリは、特定の物理ページを特定のＩ／Ｏバス・ページと関連付ける。ＴＣＥテーブル１１０ａは、ＤＭＡオペレーションのＩ／Ｏバス・アドレスによってインデックスされる。このテーブルは、Ｉ／Ｏアダプターが、それが割り当てられた記憶ロケーションのみにアクセスすることを保証するために使用される。さらに、ＴＣＥ機構は、本発明の実施例を具現化することを可能にする間接アドレス機構を提供する。 
【００２１】
図２は、本発明の実施例を含む例示的な論理分割プラットフォームのブロック図を示す。論理分割プラットフォーム２００におけるハードウェアは、例えば、図１におけるデータ処理システム１００として具現化することが可能である。論理分割プラットフォーム２００は、分割ハードウェア２３０、オペレーティング・システム（ＯＳ）２０２、２０４、２０６、２０８、およびプラットフォーム・ファームウェア２１０を含む。オペレーティング・システム２０２、２０４、２０６、および２０８は、論理分割プラットフォーム２００上で同時に稼動する単一のオペレーティング・システムの複数コピー、または多数の異種のオペレーティング・システムであってもよい。これらのオペレーティング・システムは、ハイパーバイザのようなパーティション管理ファームウェアとインターフェースするように設計されているOS/400 を使用して具現化することも可能である。OS/400 は、単に、これらの実施例における１つの例として使用されるに過ぎない。AIX（商標）およびLinux（商標）のような他のタイプのオペレーティング・システムも、特定の具現化態様次第では使用することが可能である。 
【００２２】
オペレーティング・システム２０２、２０４、２０６、および２０８がパーティション２０３、２０５、２０７、および２０９に設けられる。ハイパーバイザ・ソフトウェアは、プラットフォーム・ファームウェア２１０を具現化するために使用することができ、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能であるソフトウェアの一例である。ファームウェアは、例えば、リード・オンリ・メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）のような電力なしでその内容を保持するメモリ・チップに格納された「ソフトウェア」である。
【００２３】
さらに、これらのパーティションはパーティション・ファームウェア２１１、２１３、２１５、および２１７も含む。パーティション・ファームウェア２１１、２１３、２１５、および２１７は、初期ブートストラップ・コード、IEEE-1275標準オープン・ファームウェア、および、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なランタイム・アブストラクション・ソフトウェア（ＲＴＡＳ）を使用して具現化することも可能である。
【００２４】
パーティション２０３、２０５、２０７、および２０９がインスタンス化されるとき、ブートストラップ・コードのコピーが、プラットフォーム・ファームウェア２１０によってパーティション２０３、２０５、２０７、および２０９にロードされる。しかる後、制御がブートストラップ・コードに移され、その後、そのブートストラップ・コードがオープン・ファームウェアおよびＲＴＡＳをロードする。しかる後、それらのパーティションと関連したプロセッサまたはそれらに割り当てられたプロセッサが、そのパーティション・ファームウェアを実行するためにパーティションのメモリにディスパッチされる。
【００２５】
分割ハードウェア２３０は複数のプロセッサ２３２〜２３８、複数のシステム・メモリ・ユニット２４０〜２４６、複数の入出力アダプタ（ＩＯＡ）２４８〜２６２、ストレージ・ユニット２７０、およびＴＣＥテーブル２７２を含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４８、ＮＶＲＡＭ２９８、およびＩ／Ｏアダプタ２４８〜２６２、あるいはそれの一部分の各々は、論理分割プラットフォーム２００内の多数のパーティションの１つに割り当てることが可能である。各パーティションはオペレーティング・システム２０２、２０４、２０６、および２０８の１つに対応する。
【００２６】
プラットフォーム・ファームウェア２１０は、論理分割プラットフォーム２００の区分化を生成および促進するためにパーティション２０３、２０５、２０７、および２０９のための多くの機能およびサービスを行う。プラットフォーム・ファームウェア２１０は、基礎ハードウェアと同じファームウェア具現化仮想マシンである。したがって、プラットフォーム・ファームウェア２１０は、論理分割プラットフォーム２００のハードウェア資源を仮想化することによって独立のＯＳイメージ２０２、２０４、２０６、および２０８の同時の実行を可能にする。
【００２７】
サービス・プロセッサ２９０は、パーティションにおけるプラットフォーム・エラーの処理のような様々なサービスを提供するために使用することが可能である。これらのサービスは、インターナショナル・ビジネス・マシーンズ・コーポレーションのようなベンダにエラーを報告するためのサービス・エージェントとしての役割を果たすことも可能である。種々のパーティションのオペレーションが、ハードウェア管理コンソール２８０のようなハードウェア管理コンソールを通して制御されることも可能である。ハードウェア管理コンソール２８０は、システム管理者が種々のパーティションへの資源の再配分を含む様々な機能を行うことを可能にする別個のデータ処理システムである。
【００２８】
ＬＰＡＲ環境では、１つのパーティションにおける資源またはプログラムが別のパーティションにおけるオペレーションに影響を与えることは許容し得ないことである。更に、有用であるためには、資源の割り振りがきめの細かいものであることが必要である。例えば、特定のＰＣＩホスト・ブリッジ（ＰＨＢ）に接続されているすべてのＩ／Ｏアダプタを同じパーティションに割り当てることは、パーティション間で資源を動的に移動させる機能を含むシステムの構成可能性を制限するので、多くの場合受け入れ難いことである。
【００２９】
従って、個々のＩ／ＯアダプタあるいはＩ／Ｏアダプタの一部分のような資源を別々のパーティションに割り当てることができるようにＩ／ＯアダプタをＩ／Ｏバスに接続し、同時に、割り当てられた資源が、例えば他のパーティションの資源へのアクセスを得ることによって当該他のパーティションに影響を与えることを阻止する、何らかの機能がＰＣＩホスト・ブリッジでは必要である。
【００３０】
図３は、本発明の実施例に従うページ・マイグレーション変換プロセスのブロック図を示す。ページ・マイグレーションは、１つの物理メモリ・ページから異なるメモリ・ページにデータを移動させるプロセスである。このアクションはデータのユーザにとって透明でなければならない。例えば、この実施例では、ページ・マイグレーションは、物理メモリ３０４におけるページ３０２をその物理メモリにおける異なるロケーション即ちページ３０６に移動させることを含む。変換制御エントリ（ＴＣＥ）機構を介してＩ／ＯアダプタのＩ／Ｏバス・ページ・アドレスをリダイレクトすることによって、ユーザにとって透明なページ・マイグレーションを行うことが可能である。ＴＣＥ機構は、データの物理メモリ・アドレスを識別するためにＴＣＥテーブル３０８を使用する。ＴＣＥテーブル３０８は、図１におけるＴＣＥテーブル１１０ａのようなアドレス変換ルックアップ・テーブルの一例である。ＴＣＥテーブルは、適切なターゲット・メモリへのＩ／ＯアダプタのＤＭＡアクセスを指示するために使用され、データ・マイグレーション後に、新しいデータ・ロケーションにおける新しいメモリ・アドレスを指すように変更することが可能である。
【００３１】
ＴＣＥテーブル３０８は、一次バスに接続された任意のＩ／Ｏブリッジの二次バスにおけるすべてのＩ／Ｏアダプタを支援するように各Ｉ／Ｏホスト・ブリッジに対して設けられる。ＴＣＥテーブル３０８は、ＴＣＥ３１０および３１２のような複数のページ・エントリを含む。これらのページ・エントリは、Ｉ／Ｏバス上のページ・アドレスに基づいてアドレス変換および制御機構によってフェッチされる。１つまたは複数のＴＣＥが特定のページを指すことも可能である。図示のように、ＴＣＥ３１０および３１２の両方がページ３０２を指す。ページ３０２がページ３０６にマイグレーションされるとき、それらのＴＣＥの内容は新たなページ、即ち、ページ３０６を指すように変更されなければならない。ページがマイグレーションされるときの各ＴＣＥの内容に対するこの変更は、Ｉ／ＯアダプタあるいはＩ／Ｏアダプタのデバイス・ドライバに関連することなく行われる。このようにして、当初はページ３０２を指していたＴＣＥ３１０および３１２が、メモリ・マイグレーションの宛先、即ち、ページ３０６を指すように変更される。
【００３２】
図４は、ＰＣＩホスト・ブリッジ（ＰＨＢ）のような既知のＩ／Ｏホスト・ブリッジにおけるコンポーネントのブロック図である。この実施例では、ＰＣＩホスト・ブリッジ４００は、メモリ・マップＩ／Ｏ（ＭＭＩＯ）キューおよび制御ロジック４０２、ＭＭＩＯロード応答キューおよび制御ロジック４０４、ＤＭＡキューおよび制御ロジック４０６、ならびにアドレス変換および制御ロジック４０８を含む。ＰＣＩホスト・ブリッジ４００は、一次バス４１０からＭＭＩＯロードおよびストア要求を受け取ると、ＭＭＩＯキューおよび制御ロジック４０２においてＭＭＩＯロードおよびストア要求をキューに入れ且つ制御する。ＭＭＩＯオペレーションは、アドレスされたＭＭＩＯスペースから、あるいはそのスペースにデータを転送する単一のロードまたはストア命令の実行を含むことも可能である。ＭＭＩＯキューおよび制御ロジック４０２から、ＭＭＩＯロードおよびストア要求は二次バス４１２に送出される。 
【００３３】
ＰＣＩホスト・ブリッジ４００はＤＭＡ読取りおよび書込み要求を二次バス４１２から受け取り、それらの要求はＤＭＡキューおよび制御ロジック４０６に送り込まれる。ＰＣＩホスト・ブリッジ４００は、ＤＭＡ書込みおよび読取り要求を二次バス４１２から受け取ると、ＤＭＡキューおよび制御ロジック４０６においてＤＭＡ書込みおよび読取り要求をキューに入れ且つ制御する。ＤＭＡキューおよび制御ロジック４０６は、図１におけるＴＣＥテーブル１１０ａから変換制御エントリをフェッチするようにアドレス変換および制御ロジック４０８に指示することが可能である。アドレス変換および制御ロジック４０８は、物理メモリのロケーションを決定するために、供給されたＤＭＡアドレスに対応するＴＣＥテーブルにおけるエントリをフェッチする。このようにして、フェッチされたエントリは、ＤＭＡ書込みまたは読取り要求を変換および制御するために使用される。
【００３４】
ＰＣＩホスト・ブリッジ４００は、二次バス４１２からＭＭＩＯロード応答も受取る。その応答は、ＭＭＩＯロード応答キューおよび制御ロジック４０４においてキューに入れられ、制御される。ＤＭＡキューおよび制御ロジック４０６では、ＤＭＡ書込みおよび読取り要求が一次バス４１０に送出される。ＭＭＩＯロード応答は、ＭＭＩＯロード応答キューおよび制御ロジック４０４から一次バスに送出される。
【００３５】
図５は、本発明の実施例に従う、ＰＣＩホスト・ブリッジにおいて変換制御エントリ・マイグレーション制御を含むコンポーネントのブロック図である。本発明の諸態様は、通常のＰＣＩ、ＰＣＩ−ＸおよびＰＣＩエクスプレス含むすべての形式のペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）、並びに他のＩ／Ｏバスに適用することが可能である。図４におけるＰＣＩホスト・ブリッジ（ＰＨＢ）４００のように、ＰＣＩホスト・ブリッジ５００は、メモリ・マップＩ／Ｏ（ＭＭＩＯ）キューおよび制御ロジック５０２、ＭＭＩＯロード応答キューおよび制御ロジック５０４、ＤＭＡキューおよび制御ロジック５０６、ならびにアドレス変換および制御ロジック５０８を含み、それらは図４における既知のＰＣＩホスト・ブリッジ４００におけるコンポーネントと同様のオペレーションを遂行する。しかし、ＰＣＩホスト・ブリッジ５００はＴＣＥマイグレーション制御ロジック５１０も含む。この制御ロジック５１０は、他の実行中のＤＭＡオペレーションに悪影響を及ぼすことなく物理ページのマイグレーションを可能にするために、選択されたＤＭＡオペレーションを停止させるためのロジックを含む。アドレス変換および制御ロジック５０８が図１におけるＴＣＥテーブル１１０ａのようなＴＣＥテーブルからエントリをフェッチするとき、ＴＣＥマイグレーション制御ロジック５１０は、そのエントリに関連したメモリの物理ページのマイグレーションが進行中かどうか決めるためにそのエントリを受取って検査する。ＴＣＥマイグレーション制御ロジック５１０に関しては、図７において更に詳細に説明することにする。
【００３６】
図６は、本発明の実施例に従う例示的なＴＣＥエントリを示す。ＴＣＥエントリ６００は、変換情報６０２、読取りおよび書込み制御情報６０４、ならびにマイグレーション進行状況表示（ＭＩＰ）ビット６０６を含む。変換情報６０２は、データの物理ページ番号(即ち、メモリにおけるページの開始アドレス)を含む。読取りおよび書込みの制御情報６０４は、ページが、ＤＭＡ読取りのみによって、ＤＭＡ書込みのみによって、もしくはＤＭＡ読取りおよびＤＭＡ書込みの両方によってアクセスし得るか、または全くアクセスし得ないことを表す制御情報を含む。
【００３７】
マイグレーション進行状況表示（ＭＩＰ）ビット６０６は、ＴＣＥエントリと関連したメモリの特定の物理ページが現在マイグレーションされつつあるどうか表す。ＭＩＰビット６０６がセットされている（即ち、ＭＩＰビット＝１）場合、ページ・マイグレーションが完了するまで、特定のページに対するいずれのオペレーションおよび同じＩ／Ｏアダプタからのいずれの先行のＤＭＡオペレーションも停止させられるであろう。ＭＩＰビット６０６がオフである（即ち、ＭＩＰビット＝０）場合、そのページへのＤＭＡオペレーションは継続することを可能にされる。
【００３８】
図７は、本発明の実施例に従うＴＣＥマイグレーション制御のロジックを示すブロック図である。ＴＣＥマイグレーション制御ロジック７００は、図５に示されたＴＣＥマイグレーション制御ロジック５１０の詳細な例である。ＴＣＥマイグレーション制御ロジック７００は、図５におけるアドレス変換および制御ロジック５０８のようなアドレス変換および制御ロジックがシステム・メモリにあるＴＣＥテーブルからＴＣＥ７０２をフェッチするときに使用される。フェッチされたＴＣＥ７０４はＴＣＥ保持レジスタ７０６に入れられ、マイグレーション制御状態マシン７０８によって検査される。詳しく言えば、マイグレーション制御状態マシン７０８は、ＴＣＥ７０４内のページ・アドレスが現在システム・メモリの異なるロケーションにマイグレーションされている物理ページと関連付けられているかどうかを決定するためにＴＣＥ７０４内のＭＩＰビット７１０を検査する。例えば、ＭＩＰビット７１０が１にセットされている場合、マイグレーション制御状態マシン７０８は図５におけるアドレス変換および制御ロジック５０８に信号７１２を送ってＤＭＡを停止させる。ＴＣＥマイグレーション制御ロジック７００がＤＭＡ停止信号を取り除くまで、図５におけるアドレス変換および制御ロジック５０８は、ＤＭＡを遂行しているＩ／Ｏアダプタからの如何なるＤＭＡ書込みまたは読取り要求も、あるいはＩ／Ｏアダプタからの如何なるＭＭＩＯロード応答も、進行することを許さないであろう。
【００３９】
ＤＭＡ書込み要求または読取り要求は許されないが、ＤＭＡ読取り応答は、パスに沿ってキューに入れられている停止させられたＭＭＩＯロードまたはストア要求を迂回することを許されるということに留意されたい。ＤＭＡ読取り応答が停止させられたＭＭＩＯロードまたはストア要求を迂回することを許すと、たとえＭＭＩＯキューが未完了の要求を持っていても、図５におけるアドレス変換および制御ロジック５０８によるＴＣＥの再読取りが可能になる。
【００４０】
ＤＭＡ停止信号７１２が送出されるとき、図５におけるアドレス変換および制御ロジック５０８によってフェッチされたＴＣＥはＴＣＥ保持レジスタ７０６から廃棄され、ＴＣＥ再フェッチ・タイマ７１４が信号７１６によって開始される。ＴＣＥ再フェッチ・タイマ７１４は、システムにページ・マイグレーション・オペレーションを完了するための時間がなかったとき、ＴＣＥを再フェッチする要求がシステムにあふれないようにするために具現化される。従って、ＴＣＥ再フェッチ・タイマ７１４は、図５におけるアドレス変換および制御ロジック５０８がＴＣＥを再フェッチする期間を延ばし、それによって、システム・ソフトまたはファームウェアがページ・マイグレーション・オペレーションを完了してＴＣＥのＭＩＰビットを０にリセットすることを可能にする。そこで、マイグレーション制御状態マシン７０８は、ＴＣＥ再フェッチ・タイマ７１４が満了するのを待つ。
【００４１】
マイグレーション制御状態マシン７０８は、ＴＣＥ再フェッチ・タイマ７１４が満了したことを信号７１８から決定すると、ＴＣＥを再フェッチするための信号７２０を図５におけるアドレス変換および制御ロジック５０８に送る。ＴＣＥが再フェッチされると、その再フェッチされたエントリが保持レジスタ７０６に入れられる。プロセスは、停止したオペレーションに対するＴＣＥ内のＭＩＰビット７１０が０であるということをマイグレーション制御状態マシン７０８が決定するまで、このループを継続し、しかる後、図５におけるアドレス変換および制御ロジック５０８がＤＭＡ停止信号７１２の滅勢によって継続を知らされ、ＴＣＥによって参照された物理ページへのＤＭＡオペレーションは再開することが可能となる。
【００４２】
別の実施例では、ＴＣＥ再フェッチ・タイマ７１４が除去され、それによって、保持レジスタ７０６内のＴＣＥ７０４のＭＩＰビット７１０が１にセットされていることをアドレス変換および制御ロジック５０８が決定すると直ちにＴＣＥの廃棄および再フェッチを遂行させることが可能となる。
【００４３】
ほとんどの場合、ＰＣＩホスト・ブリッジは、種々のＩ／Ｏアダプタへのオペレーションおよび種々のＩ／Ｏアダプタからのオペレーションを区別せず、それによってすべてのＤＭＡおよびＭＭＩＯオペレーションを一時的に停止させるであろう。しかし、ＰＣＩ−ＸおよびＰＣＩエクスプレス・アダプタは、データ・ストリームの区別を可能にするいくつかの機構をパフォーマンスの向上として提供する。例えば、ＰＣＩ−ＸおよびＰＣＩエクスプレスでは、ＤＭＡを関連付けるために要求元ＩＤ（バス番号、装置番号、および機能番号）を使用することも可能である。ＭＭＩＯを要求元ＩＤに関連付けるためのＭＭＩＯのデコーディングは、停止したＤＭＡパスにＭＭＩＯパスを結び付けるために使用することも可能である。ＰＣＩエクスプレスに関しては、これが仮想チャネル機構によって達成されてもよい。更なるパフォーマンス向上として、ＭＩＰビット７１０がセットされたページへの第１のＤＭＡ書込みオペレーションまでＤＭＡオペレーションを停止する必要がなく、従って、停止ができるだけ遅れるかまたは完全に回避されるという実施例も可能である。即ち、マイグレーションされているページが変更されてない場合、オペレーションの継続を許容し得る。一旦、マイグレーションされるページに対するＤＭＡ書込みが検出されると、そのページへの更なるＤＭＡオペレーション、そのページからの更なるＤＭＡオペレーション、そのページへのＤＭＡ書込みを要求するＩ／Ｏ装置への更なるＤＭＡオペレーション、およびそのＩ／Ｏ装置からの更なるＤＭＡオペレーションは停止されなければならない。
【００４４】
図８は、本発明の実施例に従って、特定のＤＭＡオペレーションを一時的におよび選択的に停止させるためにハードウェアのアドレス変換および制御、並びにマイグレーション制御状態マシンによって遂行されるプロセスを示すフローチャートである。このプロセスは、バスからＤＭＡ要求を受け取ることに応答して、アドレス変換および制御ロジックがアドレス変換を開始することによって始まる（ステップ８０２）。アドレス変換は、第１バスからのメモリ要求と関連した正しい物理ページをアクセスするために、ＴＣＥテーブルにアクセスして、第２バスに供給しなければならない物理ページ・アドレスを含むＴＣＥを得ることによって行うことが可能である。しかる後、ハードウェアは、その必要とされるＴＣＥが、例えば、図１のＩ／Ｏブリッジ１１０におけるＩ／Ｏデータ・バッファー内に既にキャッシュされているかどうか、およびキャッシュ・データが有効であるかどうかの決定を行う（ステップ８０４）。ＴＣＥがキャッシュされ且つ有効である場合、ハードウェアは、ダイレクト・メモリ・アクセスがそのキャッシュされたＴＣＥを使用し続けることを可能にする（ステップ８０６）。ＴＣＥがキャッシュされてない場合、ハードウェアは、ＴＣＥテーブルからＴＣＥがフェッチされるまで、特定の要求のダイレクト・メモリ・アクセスを停止させる（ステップ８０８）。
【００４５】
ＴＣＥがフェッチされると（ステップ８１０）、エントリ内のＭＩＰビットが１にセットされているかどうかに関する決定が行われる（ステップ８１２）。ＭＩＰビットがセットされてない（ＭＩＰビット＝０）場合、ハードウェアはダイレクト・メモリ・アクセスの停止を解除する（ステップ８１４）。しかる後、プロセスはステップ８０６に戻り、ダイレクト・メモリ・アクセスが、フェッチされたＴＣＥを使用し続けることを可能にする。ステップ８１２に説明を戻すと、ＭＩＰビットが１にセットされている場合、フェッチされたＴＣＥが廃棄され（ステップ８１６）、ＴＣＥ再フェッチ・タイマが開始する（ステップ８１８）。しかる後、マイグレーション制御状態マシンは、ＴＣＥ再フェッチ・タイマが満了するのを待つ（ステップ８２０）。タイマが満了すると、プロセスはステップ８１０に戻り、ＴＣＥが再びＴＣＥテーブルからフェッチされて、同様の処理が繰り返される。
【００４６】
図９は、本発明の実施例に従う、ページ・マイグレーションを制御するためのソフトウェア／ファームウェアによって行なわれるプロセスを示すフローチャートである。このプロセスは、ソフトウェア／ハードウェアがページ・マイグレーションを開始することによって始まる（ステップ９０２）。ソフトウェア／ファームウェアは、マイグレーションされるべきメモリ・ページを指す各ＴＣＥエントリ内のＭＩＰビットをセット（ＭＩＰビット＝１）する（ステップ９０４）。ＭＩＰビットを１にセットすることは、ページ・マイグレーションが進行中であることを示す。ＭＩＰビットの変更に応答して、ＴＣＥのキャッシュされたコピーの各々が無効にされる（ステップ９０６）。ＴＣＥエントリの無効化はこの分野では知られており、使用されるプラットフォームにしたがって様々な方法で行なうことが可能である。
【００４７】
しかる後、ソフトウェア／ファームウェアは、１にセットされたＭＩＰビットを持つＴＣＥを使用し得る各ＰＣＩホスト・ブリッジにＭＭＩＯロードを発行する（ステップ９０８）。これらのＭＭＩＯロードは、ＭＭＩＯロード応答がプロセッサに戻される前に、ＴＣＥのハードウェア無効化をＰＣＩホスト・ブリッジに到達させ、その無効化前のＴＣＥへのすべての書込みがメモリに送出されてしまうことを保証するであろう（このプロセスは、通常のＰＣＩ順序付けルールによって保証される）。
【００４８】
ソフトウェア／ファームウェアは、同期したＭＭＩＯロードがすべて完了するのを待つ（ステップ９１０）。それらのロードが完了すると、ソフトウェア／ファームウェアは、メモリ・ソース・ページへのソフトウェア・ロードおよび宛先ページへのソフトウェア・ストアを行うことによって古い物理ページの内容を新しいページにコピーする（ステップ９１２）。このコピーの完了時に、ソフトウェア／ファームウェアは新しいページを指すようにＴＣＥをセットし、それらのＴＣＥ内のＭＩＰビットを０にセットする（ステップ９１４）。ソフトウェア／ファームウェアは、古いＴＣＥ値を使用する実行中のすべてのダイレクト・メモリ・アクセス読取り要求および応答が完了するのに十分な長い時間待機する（ステップ９１６）。ダイレクト・メモリ・アクセス読取りオペレーションがすべて完了したことを決定すると、ソフトウェア／ファームウェアはページ・マイグレーションを完了として宣言することが可能である（ステップ９１８）。
【００４９】
本発明は、ハードウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形式をとることが可能である。プログラム・コードの記憶や実行に適したデータ処理システムは、システム・バスを介してメモリ要素に直接的あるいは間接的に結合された少なくとも１つのプロセッサを含むであろう。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、プログラム・コードが実行中に大容量ストレージから検索されなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時記憶を提供するキャッシュ・メモリとを含むことが可能である。
【００５０】
入出力装置、即ち、Ｉ／Ｏ装置（キーボード、ディスプレイ、ポインティング・デバイス等を含むが、これらに限定されない）は、 直接にあるいはＩ／Ｏコントローラの介在を通してシステムに結合することができる。
【００５１】
データ処理システムが、介在する私設ネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたは遠隔のプリンタもしくはストレージに結合されることを可能にするように、ネットワーク・アダプタをシステムに結合することも可能である。モデム、ケーブル・モデム、および Ethernet(登録商標） カードは、現在利用可能なタイプのネットワーク・アダプタである。
【００５２】
本発明に関する記述は、例示と説明を目的として示されており、網羅的であることまたは開示された形式の発明に限定されることを意図するものではない。多くの修正および変更が当業者には明らかであろう。実施例は、本発明の原理、実用的な応用を最もよく説明するために、および当業者が、予想される特定の用途に適するように種々の修正を伴う種々の実施例に関して本発明を理解することを可能にするために、選定および記述された。
【図面の簡単な説明】
【００５３】
【図１】本発明の諸態様を具現化し得るコンピュータ・システムの高レベルのブロック図である。
【図２】本発明を具現化し得る例示的な論理分割プラットフォームのブロック図である。
【図３】本発明の実施例に従うページ・マイグレーション変換プロセスを示すブロック図である。
【図４】既知のＰＣＩホスト・ブリッジ（ＰＨＢ）におけるコンポーネントのブロック図である。
【図５】本発明の実施例に従う、ＰＣＩホスト・ブリッジ内の変換制御エントリ（ＴＣＥ）マイグレーション制御を含むコンポーネントのブロック図である。
【図６】本発明の実施例に従う例示的な変換および制御エントリを示す概略図である。
【図７】本発明の実施例に従う、図５におけるＴＣＥマイグレーション制御のロジックを示すブロック図である。
【図８】本発明の実施例に従う、システム・ハードウェアのアドレス変換および制御状態マシン並びにマイグレーション制御状態マシンによって遂行されるプロセスを示すフローチャートである。
【図９】本発明の実施例に従うページ・マイグレーションのソフトウェア／ハードウェア制御を示すフローチャートである。
【図１】
2007287140.tif 000003
【図２】
2007287140.tif 000004
【図３】
2007287140.tif 000005
【図４】
2007287140.tif 000006
【図５】
2007287140.tif 000007
【図６】
2007287140.tif 000008
【図７】
2007287140.tif 000009
【図８】
2007287140.tif 000010
【図９】
2007287140.tif 000011