(57)【要約】  【課題】  データをソース物理ページから宛先物理ページに移行するコンピュータ実装方法、装置、及びコンピュータ・プログラムを提供する。  【解決手段】  データをソース物理ページから宛先物理ページに移行するマイグレーション・プロセスが開始されると、ホスト・ブリッジが第１の状態に入る。次に、ホスト・ブリッジは、それ自体が第１の状態にあるときは直接メモリ・アクセス動作の処理を中断する。データは、ホスト・ブリッジが第１の状態にある間にソース物理ページから宛先物理ページに移行される。  【選択図】  図１
2009537922.tif 000002
【特許請求の範囲】
【請求項１】
データをソース物理ページから宛先物理ページに移行するコンピュータ実装方法であって、
データを前記ソース物理ページから前記宛先物理ページに移行するマイグレーション・プロセスを開始するステップと、
ホスト・ブリッジを第１の状態に入らせるステップと、
前記ホスト・ブリッジが前記第１の状態にあるときは、前記ホスト・ブリッジによって、前記ホスト・ブリッジの直接メモリ・アクセス（ＤＭＡ）要求の処理を中断させるステップと、
前記ホスト・ブリッジが前記第１の状態にある間に、メモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード要求が前記ホスト・ブリッジによって受信された場合は、前記ホスト・ブリッジを第２の状態に入らせるために前記第１の状態に割り込みを発生させるステップと、
を含む方法。
【請求項２】
前記ホスト・ブリッジによって前記ＭＭＩＯロード要求が受信されたことに応じて、前記ホスト・ブリッジを第２の状態に入らせるステップと、
前記ホスト・ブリッジが前記第２の状態にある間に直接メモリ・アクセス要求の処理を再開するステップと、
を更に含む請求項１に記載の方法。
【請求項３】
前記ホスト・ブリッジが前記第２の状態に入ったことに応じて前記マイグレーション・プロセスを再開することを要求するステップ
を更に含む請求項２に記載の方法。
【請求項４】
前記マイグレーション・プロセスが開始されたことに応じて、前記ソース物理ページから前記宛先物理ページへのデータのコピー処理を開始するステップと、
前記ソース物理ページから前記宛先物理ページへの前記データの前記コピー処理が完了したことに応じて、前記ホスト・ブリッジが依然として前記第１の状態にあるかどうかを判定するステップと、
前記コピー処理が完了した時点で前記ホスト・ブリッジが依然として前記第１の状態にあると判定されたことに応じて、前記ホスト・ブリッジを第３の状態に入らせるステップと、
を更に含む請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記ホスト・ブリッジが前記第３の状態に入ったことに応じて、前記ホスト・ブリッジが前記ホスト・ブリッジによるすべてのＩ／Ｏ動作の処理を停止させるステップ
を更に含む請求項４に記載の方法。
【請求項６】
前記マイグレーション・プロセスを完了させるステップ
を更に含む請求項５に記載の方法。
【請求項７】
前記データのアドレスが前記宛先ページを指すように変更するステップと、
前記ホスト・ブリッジが前記第３の状態を抜けるように仕向けるステップと、
を更に含む請求項６に記載の方法。
【請求項８】
特定の物理ページに関連する、変換制御テーブル内の各エントリにマイグレーション・ビットを含めるステップと、
ＤＭＡ書き込み要求が前記ソース物理ページに対する書き込みを試みるものであり、且つ前記ソース物理ページに関連するエントリ内でマイグレーション・ビットが設定されている場合にだけ、前記ホスト・ブリッジを前記第１の状態に入らせるステップと、
を更に含む請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記ホスト・ブリッジがＤＭＡ要求を受信するステップと、
前記ソース物理ページに関連するマイグレーション・ビットを使用して、前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものであるかどうかを判定するステップと、
前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものであると判定されたことに応じて、前記ホスト・ブリッジを前記第１の状態に入らせるステップと、
前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものではないと判定されたことに応じて、前記ホスト・ブリッジが前記ＤＭＡ要求を実行するステップと、
を更に含む請求項８に記載の方法。
【請求項１０】
コンピュータ・プログラムであって、
データをソース物理ページから宛先物理ページに移行するコンピュータ使用可能なプログラム・コードを含むコンピュータ使用可能な媒体を備え、
データを前記ソース物理ページから前記宛先物理ページに移行するマイグレーション・プロセスを開始するコンピュータ使用可能なプログラム・コードと、
ホスト・ブリッジを第１の状態に入らせるコンピュータ使用可能なプログラム・コードと、
前記ホスト・ブリッジが前記第１の状態にあるときは、前記ホスト・ブリッジによって、前記ホスト・ブリッジの直接メモリ・アクセス（ＤＭＡ）要求の処理を中断させるコンピュータ使用可能なプログラム・コードと、
前記ホスト・ブリッジが前記第１の状態にある間に、メモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード要求が前記ホスト・ブリッジによって受信された場合は、前記ホスト・ブリッジを第２の状態に入らせるために前記第１の状態に割り込みを発生させるコンピュータ使用可能なプログラム・コードと、
を含むコンピュータ・プログラム。
【請求項１１】
データをソース物理ページから宛先物理ページに移行する装置であって、
データを前記ソース物理ページから前記宛先物理ページに移行するマイグレーション・プロセスを開始する手段と、
ホスト・ブリッジを第１の状態に入らせるページ・マイグレーション・メカニズムと、
前記ホスト・ブリッジが前記第１の状態にあるときに、前記ホスト・ブリッジの直接メモリ・アクセス（ＤＭＡ）要求の処理を中断させる前記ホスト・ブリッジと、
前記ホスト・ブリッジが前記第１の状態にある間に、メモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード要求が前記ホスト・ブリッジによって受信された場合は、前記ホスト・ブリッジを第２の状態に入らせるために前記第１の状態に割り込みを発生させる前記ページ・マイグレーション・メカニズムと、
を備える装置。
【請求項１２】
前記ＭＭＩＯロード要求が前記ホスト・ブリッジによって受信されたことに応じて、前記ホスト・ブリッジを第２の状態に入らせる前記ページ・マイグレーション・メカニズムと、
前記ホスト・ブリッジが前記第２の状態にある間に直接メモリ・アクセス要求の処理を再開する前記ホスト・ブリッジと、
を更に備える請求項１１に記載の装置。
【請求項１３】
前記ホスト・ブリッジが前記第２の状態に入ったことに応じて前記マイグレーション・プロセスを再開することを要求する前記ページ・マイグレーション・メカニズム
を更に備える請求項１２に記載の装置。
【請求項１４】
前記マイグレーション・プロセスが開始されたことに応じて、前記ソース物理ページから前記宛先物理ページへのデータのコピー処理を開始する前記マイグレーション・プロセスと、
前記ソース物理ページから前記宛先物理ページへの前記データの前記コピー処理が完了したことに応じて、前記ホスト・ブリッジが依然として前記第１の状態にあるかどうかを判定する前記ページ・マイグレーション・メカニズムと、
前記コピー処理が完了した時点で前記ホスト・ブリッジが依然として前記第１の状態にあると判定されたことに応じて、前記ホスト・ブリッジを第３の状態に入らせる前記ページ・マイグレーション・メカニズムと、
を更に備える請求項１１乃至１３のいずれか一項に記載の装置。
【請求項１５】
前記ホスト・ブリッジが前記第３の状態に入ったことに応じて、すべてのＩ／Ｏ動作の処理を停止させる前記ホスト・ブリッジ
を更に備える請求項１４に記載の装置。
【請求項１６】
前記マイグレーション・プロセスを完了させる、
請求項１５に記載の装置。
【請求項１７】
前記データのアドレスが前記宛先ページを指すように変更する前記マイグレーション・プロセス
を更に備える請求項１６に記載の装置。
【請求項１８】
特定の物理ページに関連する、変換制御テーブル内の各エントリに含められるマイグレーション・ビットと、
ＤＭＡ書き込み要求が前記ソース物理ページに対する書き込みを試みるものであり、且つ前記ソース物理ページに関連するエントリ内でマイグレーション・ビットが設定されている場合にだけ、前記ホスト・ブリッジを前記第１の状態に入らせる前記ページ・マイグレーション・メカニズムと、
を更に備える請求項１１乃至１７のいずれか一項に記載の装置。
【請求項１９】
ＤＭＡ要求を受信する前記ホスト・ブリッジと、
前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものであるかどうかを判定するのに使用される、前記ソース物理ページに関連するマイグレーション・ビットと、
前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものであると判定されたことに応じて、前記ホスト・ブリッジを前記第１の状態に入らせる前記ページ・マイグレーション・メカニズムと、
前記ＤＭＡ要求が前記ソース物理ページに対する書き込みを試みるものではないと判定されたことに応じて、前記ＤＭＡ要求を実行する前記ホスト・ブリッジと、
を更に備える請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ処理システムに関するものであり、より詳細には、メモリ・マイグレーション中のＤＭＡ動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラムに関するものである。
【背景技術】
【０００２】
近年のコンピュータ・システム動向では、データ処理を中断することなくシステムを実行中に再構成することが可能となっている。例えば、複数のオペレーティング・システムがコンピュータ上で実行されているときに、第１のオペレーティング・システムが特定のメモリ・ブロックを使用している間に、当該メモリ・ブロックを第２のオペレーティング・システムが使用できるように再割り当てする必要が生じる可能性がある。そのような場合では、まず第１のオペレーティング・システムによる当該物理メモリ・ブロックの使用を停止した後、メモリの再割り当てを行うことができる。再割り当てを行わない場合には、例えば物理メモリ・ブロックで問題が検出される恐れがあり、そのような問題が検出された場合には、物理メモリ・ブロックの置き換えを行うことができるように、該当するメモリ部分を操作対象から除外することが望ましいこともある。後者の場合でもやはり、該当するメモリ・ブロックを使用していたオペレーティング・システムはその使用を停止しなければならない。
【０００３】
ある観点から言えば、従来のオペレーティング・システムには上記のメモリのオペレーティング・システム・アクセスに関する諸問題に対処する仮想メモリ管理に関するメカニズムが既に存在するので、１つの物理メモリ・ブロックの使用を停止して別の物理メモリ・ブロックの使用を開始することは比較的容易であるが、これらのメカニズムは、オペレーティング・システムのアクセス対象であるがＩ／Ｏデバイスのアクセス対象となっていないプログラム・データについてのみ使用されるメモリ・ブロックに依存する。メモリ・ブロックがＩ／Ｏデバイスのアクセス対象となっている場合には、この問題はより困難なものとなる。このようなＩ／Ｏデバイスによるアクセスは、必ずしもそうではないが、一般には直接メモリ・アクセス（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ：ＤＭＡ）である。
【０００４】
直接メモリ・アクセス（ＤＭＡ）とは、ソフトウェアから直接支援を受けずに、Ｉ／Ｏデバイスから別のエンティティ（例えばメモリや別のＩ／Ｏデバイス）にデータを転送する動作を指す。ＤＭＡでは、ＤＭＡ動作を実行するための起点となるＩ／Ｏデバイスを使用するために、Ｉ／Ｏバスの制御権（ｃｏｎｔｒｏｌ）を得ることが必要となる。従来のＰＣＩやＰＣＩ‐Ｘのような共用バスの場合、Ｉ／Ｏバスの制御権はＩ／Ｏバスのアービトレーションを行うことによって得られる。アービトレーションを実行するエージェント、即ちＩ／Ｏバスのアービトレーションを可能にするアービターをオフに切り換えることにより、当該Ｉ／Ｏバスを使用するすべてのエンティティに関するＤＭＡがオフに切り換えられる、即ちＤＭＡが防止される。各バス（リンクとも呼ばれる）毎に１つのデバイスだけが存在するＰＣＩ  ＥｘｐｒｅｓｓのようなＩ／Ｏバスの場合では、バスへのアクセス権はバッファ・クレジットを有することによって得られ、ＤＭＡの停止は、バスの他端のデバイスにバッファ・クレジットを送り返さないことで達成される。
【０００５】
分割トランザクションを利用しないメモリ・マップドＩ／Ｏ（Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  Ｉ／Ｏ：ＭＭＩＯ）ロードでは、Ｉ／Ｏデバイスからプロセッサにデータを転送する場合に、動作のターゲット、即ちデータを供給する側のＩ／Ｏデバイスが、要求されたデータを返すためのそれ自体のトランザクションをＩ／Ｏバス上で生成する必要がない。これらのＭＭＩＯ動作では、ポーリング動作のうちの１つに関するターゲットが使用可能なデータを獲得し、当該データがリクエスタのアービトレーション・サイクル中にリクエスタに返されるまで、リクエスタ（例えばＩ／Ｏブリッジ）は、プロセッサに代わってターゲットにデータを継続的に要求する必要がある（この動作は「ターゲット・ポーリング」と呼ばれることもある）。この動作中、ターゲットはＩ／Ｏバスに単独でアクセスするわけではなく、したがってバスの制御権を得る必要はない。ターゲットは、ＭＭＩＯロード応答動作（ＭＭＩＯ  ｌｏａｄ  ｒｅｐｌｙ  ｏｐｅｒａｔｉｏｎ）を実行することによってデータを返す。要求されたデータは、ＭＭＩＯロード応答に含められる。
【０００６】
分割トランザクションを利用したメモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロードでは、Ｉ／Ｏデバイスからプロセッサにデータを転送する場合に、動作のターゲット、即ちデータを供給する側のＩ／Ｏデバイスが、リクエスタへのデータの返送を遅らせることができる。ターゲットは、要求されたデータを返すためのそれ自体のトランザクションをＩ／Ｏバス上で生成しなければならない。ターゲットは返却すべきデータを獲得すると、ＭＭＩＯロード応答動作をＩ／Ｏバス上で生成してリクエスタにデータを転送する。
【０００７】
Ｉ／Ｏデバイスのアクセス対象となっているデータをある物理ページから別の物理ページに移行する必要が生じることもある。Ｉ／Ｏデバイスのアクセス対象となっているデータを移行する必要がある場合には、その移行処理の間当該データに対するＤＭＡアクセスを中断する必要がある。従来技術では、特に分割トランザクションを使用してメモリ・マップドＩ／Ｏ（ＭＭＩＯ）を実行するシステムについて、データを効率的に移行する解決策が提案されていない。
【０００８】
メモリ・マップドＩ／Ｏ（ＭＭＩＯ）動作のための分割トランザクションを実行するシステムでは、リクエスタがバスの制御権を得ると、リクエスタはそれ自体のＭＭＩＯロード要求を発行する。その後、リクエスタは、Ｉ／Ｏデバイスが要求されたデータでＭＭＩＯロード要求に応答するまで動作の制御を維持する。このように、ターゲットはバスの制御権を得る必要がない。
【０００９】
分割トランザクションを実行するシステムでは、リクエスタはバスの制御権を得たときにそれ自体のＭＭＩＯロード要求を発行する。ＭＭＩＯロード要求を発行すると、リクエスタはバスの制御権を解放する。ターゲットＩ／Ｏデバイスが要求されたデータを獲得したときは、その要求に応答し、それ自体のデータをリクエスタに送信するためにバスの制御権を得なければならない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
Ｉ／Ｏデバイスによるバスへのアクセスをオフに切り換えることによってＤＭＡが停止された場合、分割トランザクションを使用するシステムでは、Ｉ／Ｏシステムの停止された部分を使用しているシステム部分が停止することになる。これは、ＭＭＩＯロード応答を実行するためにバスの制御権を得る必要があるＩ／Ｏデバイスがバスの制御権を得ることができなくなるためである。Ｉ／Ｏデバイスがバスの制御権を得ることができず、それによってそれ自体のＭＭＩＯロード応答を実行することができない場合には、ＭＭＩＯロード動作を完了させることができなくなり、それによってＭＭＩＯロード動作を発行するプロセッサが停止することになる。
【００１１】
更に、ＤＭＡがＩ／Ｏデバイスの直近ではなくプロセッサ付近で停止され、その結果Ｉ／Ｏデバイスが依然としてバスにアクセスすることが可能な場合には、ＤＭＡ書き込み要求が停止されることによってＭＭＩＯロード分割応答がプロセッサに返されなくなる可能性がある。その理由としては、ＰＣＩ動作の順序付けルールの要求から、同一のＩ／Ｏデバイスに由来するそれ以前のすべてのＤＭＡ書き込み動作が完了するまでは、ロード動作を行っているプロセッサにＭＭＩＯロード応答を返すことができないことが挙げられる。それ故、ＭＭＩＯロード応答は、処理待ち状態にあるがメモリ・マイグレーション動作が原因で処理できずにいるそれ以前のＤＭＡ書き込み要求よりも後の位置で、キューに追加される可能性がある。
【課題を解決するための手段】
【００１２】
データをソース物理ページから宛先物理ページに移行するコンピュータ実装方法、装置、及びコンピュータ・プログラムが開示される。この方法、装置、及びコンピュータ・プログラムは、分割トランザクションを利用してＭＭＩＯロード動作（ＭＭＩＯロード要求とも呼ばれる）が実施されるシステムにおいて、データを１つの物理ページから別の物理ページに移行している間に、ＭＭＩＯロード動作を止めることなくホスト・ブリッジ内の直接メモリ・アクセス（ＤＭＡ）動作を停止させることを実現する。
【００１３】
データをソース物理ページから宛先物理ページに移行するマイグレーション・プロセスが開始されると、ホスト・ブリッジが第１の状態に入る。ホスト・ブリッジは、それ自体が第１の状態にあるときは直接メモリ・アクセス（ＤＭＡ）動作の処理を中断する。その後、データをソース物理ページから宛先物理ページにコピーするデータ・マイグレーション・プロセスが開始される。
【００１４】
ホスト・ブリッジが第１の状態にある間にＭＭＩＯロード動作の処理が必要となった場合には、ホスト・ブリッジは第２の状態に遷移してそれ自体のＤＭＡ動作及びＭＭＩＯ動作の処理を再開する。第２の状態に入るプロセスにより、データ・マイグレーション・プロセスを再開する必要があることがデータ・マイグレーション・プロセスにシグナリングされる。
【００１５】
一方、ソース物理ページから宛先物理ページへのデータのコピー処理が完了した時点でホスト・ブリッジが依然として第１の状態にある場合には、ホスト・ブリッジは第３の状態に遷移する。ホスト・ブリッジは、それ自体が第３の状態にあるときはＤＭＡ動作及びＭＭＩＯ動作を含めたすべてのＩ／Ｏ動作の処理を停止させ、これにより、ソース・ページを指していたアドレスが宛先ページを指すように変更することを含めたデータ・マイグレーション・プロセスの最終状態を完了させることが可能となる。
【００１６】
添付の特許請求範囲には、本発明の特徴と考えられる新規な特徴が示されている。以下では単なる例示として、本発明の好ましい使用形態ならびに他の目的及び利点を含めた諸実施形態を、添付図面を参照してより詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
例示的な実施形態は、ＭＭＩＯロード動作を実行するシステムにおいて、分割トランザクションを使用してデータをソース物理ページから宛先物理ページに移行するときに、ＭＭＩＯロード動作を停止させずにホスト・ブリッジにおけるＤＭＡ動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラムである。例示的な実施形態によれば、データ・マイグレーション・プロセスは、ＤＭＡ動作が停止されているときにＭＭＩＯロード動作を処理する必要が生じたときに再開される。
【００１８】
例示的な実施形態は、ＰＣＩホスト・ブリッジ（ＰＨＢ）のようなホスト・ブリッジ内に実装されるソフト停止状態（ｓｏｆｔ  ｓｔｏｐ  ｓｔａｔｅ）及びハード停止状態（ｈａｒｄ  ｓｔｏｐ  ｓｔａｔｅ）を提供する。
【００１９】
本発明の第１の実施形態では、ＤＭＡ書き込み動作が発生したときに、そのＤＭＡ書き込み動作がソース・ページにアクセスを試みるものであるか否かを問わず、ソース・ページから宛先ページへのデータ・マイグレーションが行われている間はホスト・ブリッジを介するすべてのＤＭＡ動作が中断される。データをソース物理ページから宛先物理ページに移行する必要があるときは、ソフトウェアによってホスト・ブリッジ内でソフト停止ビットが設定される。ソフト停止ビットが設定されたときは、ホスト・ブリッジはソフト停止状態に入り、ホスト・ブリッジにおけるＤＭＡ書き込み動作が行われる。ソフト停止状態の間、ホスト・ブリッジは、当該ホスト・ブリッジに接続されているＩ／Ｏデバイスからメモリへの直接メモリ・アクセス（ＤＭＡ）トラフィックを中断させる。ソフト停止状態がアクティブである期間中、ホスト・ブリッジはＭＭＩＯストア・トラフィック（ＭＭＩＯ  ｓｔｏｒｅ  ｔｒａｆｆｉｃ）を継続的に処理する。ホスト・ブリッジがソフト停止状態にある間にＭＭＩＯロード動作を受け取った場合は、そのＭＭＩＯロード動作の処理を可能にするために、ソフト停止状態が中断される。ＭＭＩＯロード動作の処理を可能にするためにソフト停止状態が中断された場合は、マイグレーション・プロセスを再開する必要がある。
【００２０】
ソフト停止状態を中断させずにマイグレーションを完了させることができる場合は、ソフトウェアがアドレス変更を含めたマイグレーション・プロセスの最終工程を完了させることができるように、ホスト・ブリッジはハード停止状態に入る。ホスト・ブリッジがハード停止状態に入ったときは、当該ホスト・ブリッジを介するＭＭＩＯロード動作ならびにＭＭＩＯロード応答動作を含めたすべてのＤＭＡ及びＭＭＩＯトラフィックが中断される。ホスト・ブリッジがハード停止状態にある間に、ソフトウェアはマイグレーション・プロセスの最終工程を完了させることができる。
【００２１】
本発明の第１の例示的な実施形態では、ホスト・ブリッジに含まれるソフト停止ビット（ｓｏｆｔ  ｓｔｏｐ  ｂｉｔ）、ハード停止ビット（ｈａｒｄ  ｓｔｏｐ  ｂｉｔ）、及びソフト停止障害ビット（ｓｏｆｔ  ｓｔｏｐ  ｆａｕｌｔ  ｂｉｔ）について説明する。ホスト・ブリッジは、それ自体のソフト停止ビットが１にセットされたときにソフト停止状態に入り、処理すべきＤＭＡ書き込み動作を受け取ることになる。ソフト停止障害ビットは、ホスト・ブリッジがソフト停止状態にある間にＭＭＩＯロード動作を受け取ったかどうかを示すものである。ホスト・ブリッジは、それ自体のソフト停止ビットが０にセットされているときはソフト停止状態にならない。ホスト・ブリッジは、それ自体のハード停止ビットが０にセットされているときはハード停止状態にならない。
【００２２】
本明細書では複数のエントリを含むテーブルについて説明する。このテーブルを「変換制御テーブル（ｔｒａｎｓｌａｔｉｏｎ  ａｎｄ  ｃｏｎｔｒｏｌ  ｔａｂｌｅ）」と呼ぶ。テーブル内の各エントリは、特定のソース物理ページと特定のＩ／Ｏアダプタとを関連付ける。これらのエントリを「変換制御エントリ（ｔｒａｎｓｌａｔｉｏｎ  ａｎｄ  ｃｏｎｔｒｏｌ  ｅｎｔｒｙ：ＴＣＥ）」と呼ぶ。このテーブルは、ＤＭＡ動作に関するＩ／Ｏバス・アドレスで索引付けされる。
【００２３】
より具体的に言うと、データをソース物理ページから宛先物理ページに移行する必要がある場合、ソフトウェアは、当該ソース・ページにアクセスする可能性があるすべてのホスト・ブリッジのソフト停止ビットを１にセットする。次に、ソフトウェアは、当該ソース・ページを指すテーブル・エントリを使用している可能性があるすべてのホスト・ブリッジに対してＭＭＩＯロード動作を発行することによって、それらのホスト・ブリッジに由来する残りのＤＭＡ書き込みをフラッシュする。次に、ソフトウェアは、ソース・ページのデータを宛先ページにコピーする。
【００２４】
ソフトウェアは、ソース・ページにアクセスする可能性がある各ホスト・ブリッジにおいて、データ・マイグレーション中にソフト停止障害ビットが１にセットされていたかどうかを確認する。 ソフト停止障害ビットが１にセットされていた場合には、当該ホスト・ブリッジは、データ移行中にＭＭＩＯロード動作を受け取っていることになる。ソフト停止障害ビットが１にセットされていた場合には、ソフトウェアはマイグレーション・プロセスを再開しなければならない。
【００２５】
ソフト停止障害ビットが０にセットされている場合には、ソフト停止ビットがソフトウェアによって読み出されたときに、ハードウェアはハード停止ビットを１にセットする。ハード停止ビットが１にセットされると、ホスト・ブリッジはハード停止状態に入る。ホスト・ブリッジがハード停止状態にある間に、それまでソース・ページを指していた各テーブル・エントリの値が宛先ページを指すように変更される。テーブル・エントリが変更されると、ソフトウェアは変更の影響を受けるホスト・ブリッジのソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットを０にリセットする。
【００２６】
本発明の第２の実施形態では、ＤＭＡ動作が移行中のデータを有する特定のソース物理ページに対する書き込みを試みるものである場合にだけ、ソース物理ページから宛先物理ページへのデータ・マイグレーション中にホスト・ブリッジを介するＤＭＡ動作が中断される。マイグレーション・プロセス中にソース・ページに対する書き込みを試みるＤＭＡ動作が存在しない場合には、データ・マイグレーションが行われている間、ホスト・ブリッジによるＤＭＡ動作が引き続き処理される。
【００２７】
第２の実施形態では、各変換制御エントリ（ＴＣＥ）は、本明細書で「マイグレーション処理中（ｍｉｇｒａｔｉｏｎ−ｉｎ−ｐｒｏｇｒｅｓｓ：ＭＩＰ）ビット」と呼ばれる新しい制御ビットを含む。ＴＣＥ内の変換情報は特定の物理ページを指す。物理ページ内のデータを移行すべきときは、当該物理ページを指すＴＣＥのＭＩＰビットが１にセットされる。ＴＣＥのＭＩＰビットが０にセットされているときは、ＴＣＥが指すページ内のデータは現時点で移行処理が行われていないことになる。
【００２８】
各ホスト・ブリッジには、アドレス変換制御ロジック（ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ  ａｎｄ  ｃｏｎｔｒｏｌ  ｌｏｇｉｃ）とＤＭＡ制御ロジック（ＤＭＡ  ｃｏｎｔｒｏｌ  ｌｏｇｉｃ）の両方が含まれる。ホスト・ブリッジ内のアドレス変換制御ロジックにより、それ自体のＭＩＰビットが１にセットされたＴＣＥがフェッチされたときは、ＤＭＡ動作ロジックは、当該ホスト・ブリッジがソフト停止状態に入るようにソフト停止ビットを１にセットする。ホスト・ブリッジがソフト停止状態に入ると、それ自体のＩ／Ｏデバイスのいずれかを対象とするＭＭＩＯロード動作が当該ホスト・ブリッジによって受け取らない限り、当該ホスト・ブリッジを介するＭＭＩＯストア・トラフィックが引き続き処理される。
【００２９】
ソフト停止状態の間、ホスト・ブリッジは、当該ホスト・ブリッジに接続されているＩ／Ｏデバイスからシステム・メモリへのＤＭＡ動作を中断させる。ソフト停止状態がアクティブである期間中、ホスト・ブリッジはＭＭＩＯストア動作を継続的に処理する。ホスト・ブリッジがソフト停止状態にある間にＩ／Ｏデバイスを対象とするＭＭＩＯロード動作を受け取った場合は、そのＭＭＩＯロード動作の処理を可能にするために、ソフト停止状態が中断される。その場合には、マイグレーション・プロセスを再開する必要があることをソフトウェアにシグナリングするために、ソフト停止障害ビットが１にセットされる。
【００３０】
ソフト停止状態を中断させずにマイグレーションを完了させることができる場合は、ソフトウェアがソフト停止障害ビットを読み出し、その値は０をとることになるが、この場合、ホスト・ブリッジのハードウェアによるハード停止ビットの設定が行われ、ホスト・ブリッジはハード停止状態に入る。ホスト・ブリッジがハード停止状態に入ったときは、当該ホスト・ブリッジを介するすべてのＤＭＡ及びＭＭＩＯトラフィックが中断される。ホスト・ブリッジがハード停止状態にある間に、ソフトウェアはマイグレーション・プロセスの最終工程を完了させることができる。
【００３１】
より具体的に言うと、データをソース・ページから宛先ページに移行する必要がある場合、ソフトウェアは、すべてのホスト・ブリッジにおいて当該ソース・ページを指すすべてのＴＣＥのＭＩＰビットを１にセットする。次に、ソフトウェアは、当該ソース・ページを指すＴＣＥを使用している可能性があるすべてのホスト・ブリッジに対してＭＭＩＯロード動作を発行することによって、それらのホスト・ブリッジに由来する残りのＤＭＡ書き込みをフラッシュする。次に、ソフトウェアは、当該ソース・ページのデータを宛先ページにコピーする。次に、ソフトウェアは各ホスト・ブリッジをチェックして、データ・マイグレーション中にホスト・ブリッジのソフト停止障害ビットが１にセットされていたかどうかを確認する。ソフト停止障害ビットが１にセットされていた場合には、当該ホスト・ブリッジは、マイグレーション中にソース・ページをターゲットとするＤＭＡ書き込み動作と共にＭＭＩＯロード動作も受け取っていることになる。ソフト停止障害ビットが１にセットされている場合には、ソフトウェアはマイグレーション・プロセスを再開しなければならない。ソフト停止障害ビットが０にセットされている場合には、ソフト停止障害ビットがソフトウェアによって読み出されたときに、ハードウェアによってハード停止ビットが１にセットされ、その結果ホスト・ブリッジはハード停止状態に入る。ホスト・ブリッジがハード停止状態にある間に、ＴＣＥは宛先ページを指すように変更される。ＴＣＥが宛先ページを指すように変更された後は、それらのＴＣＥのＭＩＰビットが０にセットされる。ＴＣＥテーブル・エントリが変更されると、ソフトウェアはソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットを０にリセットする。
【００３２】
ここで添付図面を参照すると、図１には、例示的な実施形態を含むデータ処理システムのブロック図が示されている。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、及び１０４を含む対称型マイクロプロセッサ（ＳＭＰ）システムであってもよい。例えば、データ処理システム１００は、ネットワーク内のサーバとして実装されるインターナショナル・ビジネス・マシーンズ・コーポレーション（ニューヨーク州アーモンク）の製品であるＩＢＭ  ｅＳｅｒｖｅｒであってもよい。別法として、シングル・プロセッサ・システムが採用されてもよい。システム・バス１０６には、複数のローカル・メモリ１６０〜１６３との間のインターフェースを提供するメモリ・コントローラ／キャッシュ１０８も接続されている。変換制御エントリ（ＴＣＥ）テーブル１１０ａを含むＩ／Ｏブリッジ１１０はシステム・バス１０６に接続されており、Ｉ／Ｏバス１１２との間のインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８とＩ／Ｏブリッジ１１０は、図示のように統合されてもよい。
【００３３】
Ｉ／Ｏブリッジ１１０は、テーブル１１０ａを含む。変換制御エントリ（ＴＣＥ）は、ＴＣＥテーブル１１０ａに格納される。テーブル１１０ａは、Ｉ／Ｏページを基準としてＩ／Ｏデバイスによる物理ページに対するＩ／Ｏ動作を制御する能力を提供するＩ／Ｏアドレス変換保護メカニズムである。
【００３４】
ＴＣＥエントリは、物理メモリ１６０〜１６３の物理ページと、Ｉ／Ｏバス１１２からＩ／Ｏアダプタ１２０〜１２４及びＩ／Ｏアダプタ１４８〜１５０上で使用可能なＩ／Ｏバス・アドレス・ページとを関連付ける。各エントリは、特定の物理ページと特定のＩ／Ｏアドレス・ページとを関連付ける。ＴＣＥテーブル１１０ａは、ＤＭＡ動作に関するＩ／Ｏバス・アドレスで索引付けされる。このテーブルは、プロセッサ内の仮想アドレス・メカニズムによって提供されるソフトウェアから物理メモリへの間接アドレッシング・メカニズムとほぼ同一の間接アドレッシング・メカニズムとして使用される。このようなプロセッサの仮想アドレス変換メカニズムは当業界で周知である。
【００３５】
データ処理システム１００は論理パーティション（ＬＰＡＲ）データ処理システムであるが、本発明はＬＰＡＲシステムに限定されるものではなく、他のデータ処理システムで実施することもできることを理解していただきたい。ＬＰＡＲデータ処理システム１００は、同時に実行される複数の異種オペレーティング・システム（又は単一のオペレーティング・システムの複数のコピー）を有する。これらの複数のオペレーティング・システムは、それぞれの内部で実行される任意の数のソフトウェア・プログラムを有することができる。データ処理システム１００は、異なるＰＣＩ入出力アダプタ（ＩＯＡ）１２０、１２１、１２２、１２３、１２４、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９、又はそれらの一部を異なる論理パーティションに割り当てることができるように論理パーティション化されている。この例では、グラフィックス・アダプタ１４８は表示装置（図示せず）用の接続を提供し、ハード・ディスク・アダプタ１４９は制御ハード・ディスク１５０との間の接続を提供する。
【００３６】
ここでは、例えばデータ処理システム１００が３つの論理パーティションＰ１、Ｐ２、及びＰ３に分割されているものとする。各ＰＣＩ  ＩＯＡ  １２０〜１２４、グラフィックス・アダプタ１４８、ハード・ディスク・アダプタ１４９、各ホスト・プロセッサ１０１〜１０４、及びローカル・メモリ１６０〜１６３から成るメモリは、それぞれ３つのパーティションのうちの１つに割り当てられる。この例において、メモリ１６０〜１６３はデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形をとることができる。ＤＩＭＭは通常、ＤＩＭＭ単位でパーティションに割り当てられるわけではない。そうではなく、１つのパーティションは、プラットフォームから見た全体のメモリの一部分を占めることになる。例えば、プロセッサ１０１、ローカル・メモリ１６０〜１６３から成るメモリの一部分、ならびにＰＣＩ  ＩＯＡ  １２１、１２３、及び１２４を論理パーティションＰ１に割り当て、プロセッサ１０２〜１０３、ローカル・メモリ１６０〜１６３から成るメモリの一部分、ならびにＰＣＩ  ＩＯＡ  １２０及び１２２を論理パーティションＰ２に割り当て、プロセッサ１０４、ローカル・メモリ１６０〜１６３から成るメモリの一部分、グラフィックス・アダプタ１４８、ならびにハード・ディスク・アダプタ１４９を論理パーティションＰ３に割り当てることができる。
【００３７】
論理パーティション・データ処理システム１００内で実行される各オペレーティング・システムは、異なる論理パーティションに割り当てられる。それ故、データ処理システム１００内で実行される各オペレーティング・システムは、それぞれの論理パーティション内のＩＯＡにしかアクセスすることができない。例えば、拡張対話式エグゼクティブ（Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ：ＡＩＸ）オペレーティング・システムの第１のインスタンスをパーティションＰ１内で実行し、ＡＩＸオペレーティング・システムの第２のインスタンス（コピー）をパーティションＰ２内で実行することができ、また、Ｌｉｎｕｘオペレーティング・システム又はＯＳ／４００オペレーティング・システムを論理パーティションＰ３内で動作させることができる。
【００３８】
周辺機器相互接続（ＰＣＩ）ホスト・ブリッジ（ＰＨＢ）１３０、１３１、１３２、及び１３３はＩ／Ｏバス１１２に接続されており、それぞれＰＣＩバス１４０、１４１、１４２、及び１４３との間のインターフェースを提供する。ＰＣＩバス１４０、１４１、１４２、及び１４３は、ＰＣＩ規格に準拠することが好ましい。以下に記載する諸実施形態では、ＰＣＩバス１４０、１４１、１４２、及び１４３は、ＭＭＩＯ動作で分割トランザクションを利用するＰＣＩ規格に準拠している。
【００３９】
ＰＣＩ  ＩＯＡ  １２０〜１２１は、スイッチ及びブリッジを備えるＩ／Ｏファブリック１８０を介してＰＣＩバス１４０に接続されている。同様に、ＰＣＩ  ＩＯＡ  １２２はＩ／Ｏファブリック１８１を介してＰＣＩバス１４１に接続され、ＰＣＩ  ＩＯＡ  １２３及び１２４はＩ／Ｏファブリック１８２を介してＰＣＩバス１４２に接続され、グラフィックス・アダプタ１４８及びハード・ディスク・アダプタ１４９はＩ／Ｏファブリック１８３を介してＰＣＩバス１４３に接続されている。Ｉ／Ｏファブリック１８０〜１８３は、ＰＣＩバス１４０〜１４３との間のインターフェースを提供する。典型的なＰＣＩホスト・ブリッジは、４対８のＩＯＡ（例えばアドイン・コネクタ用の拡張スロット）間でサポートされる。各ＰＣＩ  ＩＯＡ  １２０〜１２４は、データ処理システム１００と、例えばデータ処理システム１００にとってのクライアントとなる他のネットワーク・コンピュータのような入出力デバイスとの間のインターフェースを提供する。
【００４０】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１４０とＩ／Ｏバス１１２を接続するためのインターフェースを提供する。また、ＰＣＩバス１４０は、ＰＣＩホスト・ブリッジ１３０と、サービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４ならびにＩ／Ｏファブリック１８０とを接続する。サービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３宛てのＰＣＩアクセスを転送する。ＮＶＲＡＭストレージ１９２は、ＩＳＡバス１９６に接続されている。サービス・プロセッサ１３５は、それ自体のローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４と結合されている。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続されている。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／ｓｃａｎバス（ＩＥＥＥ  １１４９．１参照）とＰｈｉｌｌｉｐｓ  Ｉ２Ｃバスの組合せである。しかしながら、別法としてＪＴＡＧ／Ｉ２Ｃバス１３４をＰｈｉｌｌｉｐｓ  Ｉ２Ｃバスだけに置き換えることも、ＪＴＡＧ／ｓｃａｎバスだけに置き換えることもできる。ホスト・プロセッサ１０１、１０２、１０３、及び１０４のすべてのＳＰ−ＡＴＴＮ信号が、サービス・プロセッサの割込み入力信号にまとめて接続される。サービス・プロセッサ１３５は、それ自体のローカル・メモリ１９１を有し、ハードウェアＯＰパネル１９０にアクセスすることができる。
【００４１】
データ処理システム１００が最初に電源投入されたときに、サービス・プロセッサ１３５は、ＪＴＡＧ／Ｉ２Ｃバス１３４を使用して、システム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に応答指令を送る（ｉｎｔｅｒｒｏｇａｔｅ）。このステップの完了時に、サービス・プロセッサ１３５は、データ処理システム１００のインベントリ及びトポロジを理解する。サービス・プロセッサ１３５は、ホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に応答指令を送ることによって発見されたすべての要素に対して、組込み自己テスト（ＢＩＳＴ）、基本検証テスト（ＢＡＴ）、及びメモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、及びメモリ・テスト中に検出された障害に関するすべてのエラー情報がサービス・プロセッサ１３５によって収集され報告される。
【００４２】
ＢＩＳＴ、ＢＡＴ、及びメモリ・テスト中に故障が判明した要素を除外した後でもなおシステム・リソースの有意義な／有効な構成が可能である場合には、データ処理システム１００はローカル（ホスト）・メモリ１６０〜１６３への実行可能コードのロード処理を進めることが許可される。その後、サービス・プロセッサ１３５は、ローカル・メモリ１６０〜１６３にロードされたコードの実行のためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４がデータ処理システム１００内の各オペレーティング・システムに由来するコードを実行している間に、サービス・プロセッサ１３５はエラー監視／報告モードに入る。サービス・プロセッサ１３５によって監視される項目タイプとしては、例えば、冷却ファンの速度及び動作、温度センサ、電源レギュレータ、ならびにプロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、及びＩ／Ｏブリッジ１１０から報告される修復可能なエラー及び修復不可能なエラーが挙げられる。
【００４３】
サービス・プロセッサ１３５は、データ処理システム１００内で監視されるすべての項目に関するエラー情報を保存し報告する責任を負う。サービス・プロセッサ１３５は、エラーのタイプ及び定義済みの閾値に基づく措置も講じる。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリ上で修復可能なエラーが集中的に発生していることに注目して、ハード障害の兆候があると決定することができる。この判定に基づいて、サービス・プロセッサ１３５は、現在実行されているセッション中及び将来の初期プログラム・ロード（ＩＰＬ）中の構成解除に関して当該リソースをマーク付けすることができる。ＩＰＬは、「ブート」、又は「ブートストラップ」と呼ばれることもある。データ処理システム１００は、市販される様々なコンピュータ・システムを使用して実装することができる。例えば、データ処理システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓ  Ｍｏｄｅｌ  ８４０システムを使用して実装することができる。そのようなシステムは、やはりインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なＯＳ／４００オペレーティング・システムを使用した論理パーティショニングをサポートすることができる。
【００４４】
当業者は、図１に示したハードウェアを変更することができることを理解するだろう。例えば、図示のハードウェアに加えて又はその代わりに、光ディスク・ドライブ等の他の周辺デバイスも使用することが可能である。図示の例は、本発明に関するアーキテクチャ上の制限を暗示するものではない。
【００４５】
図２は、例示的な実施形態を含む論理パーティション・プラットフォームのブロック図を示している。論理パーティション・プラットフォーム２００内のハードウェアは、例えば図１のデータ処理システム１００として実装することができる。論理パーティション・プラットフォーム２００は、パーティション化されたハードウェア２３０、オペレーティング・システム２０２、２０４、２０６、２０８、及びパーティション管理ファームウェア２１０を含む。オペレーティング・システム２０２、２０４、２０６、及び２０８は、論理パーティション・プラットフォーム２００上で同時に実行される単一のオペレーティング・システムの複数のコピーであっても、複数の異種オペレーティング・システムであってもよい。これらのオペレーティング・システムは、ハイパーバイザとも呼ばれるパーティション管理ファームウェア２１０とのインターフェースをとるように設計されたＯＳ／４００を使用して実装することができる。例示的な諸実施形態において、ＯＳ／４００は単なる一例として使用されるものにすぎない。特定の実装形態に応じてＡＩＸやＬｉｎｕｘのような他のタイプのオペレーティング・システムを使用することもできる。
【００４６】
オペレーティング・システム２０２、２０４、２０６、及び２０８は、それぞれパーティション２０３、２０５、２０７、及び２０９内に位置する。ハイパーバイザ・ソフトウェアは、パーティション管理ファームウェア２１０を実装するのに使用され得る、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なソフトウェアの一例である。ファームウェアとは、例えば読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去再書込可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去再書込可能ＲＯＭ（ＥＥＰＲＯＭ）、及び不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）等、電力なしでそれ自体の内容を保持するメモリ・チップに格納される「ソフトウェア」を指す。
【００４７】
更に、上記のパーティションにはパーティション・ファームウェア２１１、２１３、２１５、及び２１７も含まれる。パーティション・ファームウェア２１１、２１３、２１５、及び２１７は、初期ブート・ストラップ・コード、ＩＥＥＥ‐１２７５規格のオープン・ファームウェア、及びインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なランタイム・アブストラクション・ソフトウェア（ＲＴＡＳ）を使用して実装することができる。
【００４８】
パーティション２０３、２０５、２０７、及び２０９がインスタンス化されるときは、パーティション管理ファームウェア２１０によってブート・ストラップ・コードのコピーがパーティション２０３、２０５、２０７、及び２０９にロードされる。その後、制御がブート・ストラップ・コードに移されると、ブート・ストラップ・コードはオープン・ファームウェア及びＲＴＡＳをロードする。その後、各パーティションに関連付けられた又は割り当てられたプロセッサがパーティションのメモリにディスパッチされ、パーティション・ファームウェアが実行される。
【００４９】
パーティション化されたハードウェア２３０は、複数のプロセッサ２３２〜２３８、複数のシステム・メモリ・ユニット２４０〜２４６、複数のＩＯＡ  ２４８〜２６２、記憶ユニット２７０、及びＴＣＥテーブル２７２を含む。各プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭストレージ２９８、及びＩＯＡ  ２４８〜２６２、又はそれらの一部を、それぞれオペレーティング・システム２０２、２０４、２０６、及び２０８のうちの１つに対応する、論理パーティション・プラットフォーム２００内の複数のパーティションのうちの１つに割り当てることができる。
【００５０】
パーティション管理ファームウェア２１０は、パーティション２０３、２０５、２０７、及び２０９に関する複数の機能及びサービスを実行して論理パーティション・プラットフォーム２００のパーティショニングを作成し、これを施行（ｅｎｆｏｒｃｅ）する。パーティション管理ファームウェア２１０は、基礎となるハードウェアと同一のファームウェア実装型仮想マシンである。そのため、パーティション管理ファームウェア２１０は、論理パーティション・プラットフォーム２００のすべてのハードウェア・リソースを仮想化することにより、独立したＯＳイメージ２０２、２０４、２０６、及び２０８の同時実行を可能にする。
【００５１】
サービス・プロセッサ２９０は、パーティション内のプラットフォーム・エラーの処理のような様々なサービスを提供するのに使用され得る。これらのサービスは、インターナショナル・ビジネス・マシーンズ・コーポレーションのようなベンダーにエラーを報告するサービス・エージェントの働きをすることもできる。様々なパーティションの動作は、ハードウェア管理コンソール２８０のようなハードウェア管理コンソールを介して制御され得る。ハードウェア管理コンソール２８０は、システム管理者がそれを利用することで様々なパーティションへのリソースの再配分を含めた各種機能を実行することが可能となる、別個のデータ処理システムである。ＬＰＡＲ環境では、１つのパーティション内のリソース又はプログラムが別のパーティションの動作に影響を与えることは許されない。更に、有用性を高めるために、リソース割り当ての粒度は細かくする必要がある。例えば、特定のＰＣＩホスト・ブリッジ（ＰＨＢ）に取り付けられたすべてのＩＯＡを同一のパーティションに割り当てることは、パーティション間でリソースを動的に移動する能力を含めたシステムの構成可能能力を制限することになるので、許容されないことが多い。
【００５２】
したがって、ＰＣＩホスト・ブリッジでは、個々のＩＯＡやＩＯＡの一部等のリソースを別のパーティションに割り当てると同時に、割り当てられたリソースが、他のパーティションのリソースへのアクセス権を取得すること等による他のパーティションからの影響を受けないようにすることが可能となるように、ＩＯＡとＩ／Ｏバスとを接続する何らかの機能が必要とされる。
【００５３】
図３は、例示的な実施形態に係る変換制御エントリ（ＴＣＥ）テーブル及び物理メモリのブロック図を示している。ページ・マイグレーションとは、ある物理ページのデータをコピーして異なる物理ページに格納する処理を指す。
【００５４】
物理メモリ３０２は、物理ページ３０４及び物理ページ３０６を含む。図示の例では、物理ページ３０４の内容を物理ページ３０６に移行する様子が示されている。このような移行を可能にする基礎となるメカニズムは、Ｉ／ＯアダプタのＩ／Ｏバス・アドレスをＴＣＥテーブルを介してリダイレクトすることである。
【００５５】
ＴＣＥテーブル３００は、Ｉ／Ｏバス上に配置されるページ・アドレスに基づいてフェッチされるエントリを含む。ＴＣＥテーブルに含まれる各エントリは、Ｉ／Ｏバスのページ・アドレスを新しいシステムのメモリ・ページ・アドレスに変換する。例えば、データをソース・ページ３０４から宛先ページ３０６に移行する前は、ＴＣＥ  ３０８及びＴＣＥ  ３１０はいずれも物理ページ３０４を指している。データがソース・ページ３０４から宛先ページ３０６に移行された後は、ＴＣＥ  ３０８及びＴＣＥ  ３１０がいずれも物理ページ３０６を指すようにＴＣＥテーブル３００内のアドレスが変更される。
【００５６】
図４は、例示的な実施形態を含むＰＣＩホスト・ブリッジ（ＰＨＢ）のようなホスト・ブリッジを示している。ホスト・ブリッジ４００は、１次バス４０２を介してホストと通信する。１次バスは、Ｉ／Ｏブリッジと結合されるＩ／Ｏバス１１２（図１参照）のようなＩ／Ｏバスとすることができる。メモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード及びストア要求ならびにＤＭＡ読み出し応答は、１次バス４０２を介してホスト・ブリッジ４００によって受信される。ＭＭＩＯロード及びストア要求は、ＭＭＩＯキュー制御部（ＭＭＩＯ  ｑｕｅｕｅｓ  ａｎｄ  ｃｏｎｔｒｏｌ）４０４によってキュー操作され制御される。ＤＭＡキュー制御部（ＤＭＡ  ｑｕｅｕｅｓ  ａｎｄ  ｃｏｎｔｒｏｌ）４０６でキュー操作されるＤＭＡ書き込み及び読み出し要求、ならびにＭＭＩＯロード応答キュー制御部（ＭＭＩＯ  ｌｏａｄ  ｒｅｐｌｙ  ｑｕｅｕｅｓ  ａｎｄ  ｃｏｎｔｒｏｌ）４０８でキュー操作されるＭＭＩＯロード応答は、１次バス４０２を介してホスト・ブリッジ４００の外部に流れる。
【００５７】
ホスト・ブリッジ４００は、２次バス４１０を介して１つ又は複数のＩ／Ｏアダプタと通信する。ＤＭＡ書き込み及び読み出し要求ならびにＭＭＩＯロード応答は、２次バス４１０を介してホスト・ブリッジ４００内に流れ込む。２次バス４１０は、ＭＭＩＯ動作に分割トランザクションを利用するＰＣＩ  ＥｘｐｒｅｓｓのようなＰＣＩ規格を実施するＰＣＩバスであることが好ましい。
【００５８】
ホスト・ブリッジ４００は、使用すべきＴＣＥをフェッチしてＤＭＡ動作の変換及び制御を行うアドレス変換制御部（ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ  ａｎｄ  ｃｏｎｔｒｏｌ）４１２を含む。アドレス変換制御部４１２は、ページ・マイグレーション制御部（ｐａｇｅ  ｍｉｇｒａｔｉｏｎ  ａｎｄ  ｃｏｎｔｒｏｌ）４１４と結合されている。
【００５９】
図５は、例示的な実施形態に係るページ・マイグレーション制御部及びアドレス変換制御部を示している。ページ・マイグレーション制御部４１４は、アドレス変換制御部４１２（図４参照）と結合されている。ページ・マイグレーション制御部４１４は、マイグレーション制御状態マシン５００と、ソフト停止ビット・レジスタ５０２と、ハード停止ビット・レジスタ５０４と、ソフト停止障害ビット・レジスタ５０６とを含む。ソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットの現在値は、それぞれレジスタ５０２、５０４、又は５０６に格納し、各レジスタから読み出すことができる。
【００６０】
ソース物理ページがソース・ページから宛先物理ページに移行される間、ソフト停止ビットは１にセットされる。ソフト停止ビットが１にセットされている間に、ＤＭＡ書き込み動作がＤＭＡキュー４０６に収容された場合は、ソフト停止ビットは、リンク５０８を介してマイグレーション制御状態マシン５００にＤＭＡパイプラインを停止させるようシグナリングする。パイプラインが停止されている間、ホスト・ブリッジ４００は、ＭＭＩＯキュー制御部４０４（図４参照）からのＭＭＩＯロード要求が処理されていない限り、２次リンク４１０を介して受け取られる後続のＤＭＡ書き込みトラフィックの処理を行うことはない。ＭＭＩＯキュー制御部４０４からのＭＭＩＯロード要求が処理されている場合には、ＭＭＩＯロード応答メッセージを受信することができるようにＤＭＡ停止を解除する必要がある。そうしない場合には、ＭＭＩＯキューが一杯になり、ソフトウェアがホスト・ブリッジの制御ロジックにアクセスできなくなる可能性があり、その結果ＭＭＩＯロード要求のデッドロックが発生し、最終的にはＭＭＩＯロード要求がタイム・アウトとなる恐れもある。これによってエラー・シナリオが発生する。
【００６１】
マイグレーション制御状態マシン５００は、リンク５１０を介して、ホスト・ブリッジ４００がソフト停止状態にある間にＭＭＩＯロードを受け取ったことを感知することができる。その場合には、マイグレーション制御状態マシン５００はソフト停止障害ビットを１にセットし、それによってマイグレーションを再開する必要があることをソフトウェアに指示する。
【００６２】
ソフトウェアがレジスタ５０６を読み出したときに、ソフト停止ビットが１と等しく、ソフト停止障害ビットが０と等しい場合には、ページ・マイグレーション制御部４１４はハード停止ビットを設定し、それによってＭＭＩＯロード応答信号が存在する場合にもＤＭＡ要求を処理しないようマイグレーション制御状態マシン５００にシグナリングする。
【００６３】
図６は、例示的な実施形態に従ってホスト・ブリッジをソフト停止状態に入らせるソフト停止ビットを設定する流れを示す高次のフローチャートである。このプロセスはブロック６００から開始し、その後ブロック６０２に進むと、ソース・ページ内のデータを宛先ページに移行することが可能となるソフト停止ビットを設定するソフトウェア要求が受信される。次にブロック６０４で、ソフト停止ビットが１にセットされる。その後、このプロセスはブロック６０６で終了する。図７は、例示的な実施形態に従ってソフト停止障害ビットを設定する流れを示す高次のフローチャートである。このプロセスはブロック７００から開始し、その後ブロック７０２に進むと、メモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード・コマンドが受信される。次にブロック７０４で、ソフト停止ビットが１と等しいか否かが判定される。ソフト停止ビットが１と等しくないと判定された場合には、ブロック７１４に進む。ソフト停止ビットが１と等しいと判定された場合には、ブロック７０６に進む。
【００６４】
ブロック７０６では、パイプライン内で停止されたＤＭＡ書き込みコマンドが存在するかどうかが判定される。停止されたＤＭＡ書き込みコマンドが存在しないと判定された場合には、ブロック７１４に進む。停止されたＤＭＡ書き込みコマンドが存在すると判定された場合には、ブロック７０８に進んで、ハード停止ビットが１と等しいか否かが判定される。ハード停止ビットが１と等しいと判定された場合には、ハード停止ビットが０と等しくなるまで、ブロック７０８に戻る。
【００６５】
ブロック７０８を再び参照して、ハード停止ビットが１と等しくない、即ち０と等しいと判定された場合には、ブロック７１０に進んで、ソフト停止障害ビットが１にセットされる。次にブロック７１２で、ＤＭＡ書き込みが処理される。その後ブロック７１４に進む。このブロック７１４では、ＭＭＩＯロード・コマンドが処理される。その後、このプロセスはブロック７１６で終了する。
【００６６】
図８は、例示的な実施形態に従ってハード停止ビットを設定する流れを示す高次のフローチャートである。図８のプロセスは、データをソース・ページから宛先ページに移行した後、ＴＣＥ値が宛先ページを指すように、ＴＣＥ値を更新する必要があるときに実行されるプロセスである。このプロセスはブロック８００から開始し、その後ブロック８０２に進むと、ハード停止ビット、ソフト停止ビット、及びソフト停止障害ビットの現在の設定を読み出すソフトウェア要求が受信される。
【００６７】
次にブロック８０４で、ソフト停止ビットが１と等しく、且つソフト停止障害ビットが０と等しいか否かが判定される。ソフト停止ビットが１と等しく、且つソフト停止障害ビットが０と等しいと判定された場合には、ブロック８０６に進んで、ハード停止ビットが１にセットされる。その後ブロック８０８に進む。
【００６８】
ブロック８０４を再び参照して、ソフト停止ビットが１と等しく、且つソフト停止障害ビットが０と等しいと判定されなかった場合には、ブロック８０８に進んで、ハード停止ビット、ソフト停止ビット、及びソフト停止障害ビットの現在の設定が返される。その後、このプロセスはブロック８１０で終了する。
【００６９】
図９は、例示的な実施形態に係るホスト・ブリッジに含まれるソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットの現在の設定に基づいて、ホスト・ブリッジが新しいＤＭＡ及び割り込み要求を処理する流れを示す高次のフローチャートである。このプロセスはブロック９００から開始し、その後ブロック９０２に進むと、要求が受信される。次にブロック９０４で、ハード停止ビットが１にセットされているか否かが判定される。ハード停止ビットが１にセットされていることが判定された場合には、ハード停止ビットが１以外の値をとる、即ち０と等しくなるまで、ブロック９０４に戻る。
【００７０】
ブロック９０４を再び参照して、ハード停止ビットが１と等しくない、即ち０と等しいと判定された場合には、ブロック９０６に進んで、ソフト停止ビットが１と等しいか否かが判定される。ソフト停止ビットが１と等しくないと判定された場合には、ブロック９１２に進む。
【００７１】
ブロック９０６を再び参照して、ソフト停止ビットが１と等しいと判定された場合には、ブロック９０８に進んで、ソフト停止障害ビットが１と等しいか否かが判定される。ソフト停止障害ビットが１と等しくないと判定された場合には、ブロック９０６に戻る。ソフト停止障害ビットが１と等しいと判定された場合には、ブロック９１０に進む。
【００７２】
ブロック９１０では、受信された要求がＤＭＡ要求であるのかそれとも割り込みであるのかが判定される。受信された要求が割り込みであると判定された場合には、ブロック９０４に進む。受信された要求がＤＭＡ要求であると判定された場合には、ブロック９１２に進んで、ＤＭＡが通常どおり処理される。その後、このプロセスはブロック９１４で終了する。
【００７３】
図１０は、ホスト・ブリッジのメモリ・マップドＩ／Ｏ（ＭＭＩＯ）キューが一杯になった場合に、ハード停止状態にあるホスト・ブリッジが例示的な実施形態に従ってハード停止状態を抜ける流れを示す高次のフローチャートである。このプロセスはブロック１０００から開始し、その後ブロック１００２に進むと、ハード停止ビットが１と等しいか否かが判定される。ハード停止ビットが１と等しくない、即ち０と等しいと判定された場合には、このプロセスはブロック１００４で終了する。
【００７４】
ブロック１００２を再び参照して、ハード停止ビットが１と等しいと判定された場合には、ブロック１００６に進んで、ＭＭＩＯキューが一杯になったためにＭＭＩＯパイプラインが停止しているか否かが判定される。ＭＭＩＯパイプラインは、ＭＭＩＯキューが一杯で新しいＭＭＩＯ要求を受信することができない場合に停止される。ＭＭＩＯパイプラインが停止していないと判定された場合には、ブロック１００２に戻る。ＭＭＩＯパイプラインが停止していると判定された場合には、ブロック１００８に進んで、パイプラインを停止させているＭＭＩＯロードが破棄され、該当するエラー状態が設定され、ハード停止ビットが０にセットされる。破棄されたＭＭＩＯロードからのリカバリはプラットフォームに依存するが、典型的には、リカバリにはエラー検出、Ｉ／Ｏサブシステムの再設定、及び未完了のＩ／Ｏ動作の再開が含まれる。Ｉ／Ｏサブシステムの再設定には、ハード停止ビットを０にリセットすることが含まれる。その後、このプロセスはブロック１００２に戻る。
【００７５】
図１１は、データをソース・ページから宛先ページに移行するときに、ソース・ページへのアクセスが行われているかどうかに関わらず、例示的な実施形態に従ってＤＭＡ動作を一時停止させる流れを示す高次のフローチャートである。このプロセスはブロック１１００から開始し、その後ブロック１１０２に進むと、ソース・ページのマッピングを行った各ホスト・ブリッジに対してＭＭＩＯロード要求が発行される。このＭＭＩＯロードによって未処理のＤＭＡ書き込み動作がフラッシュされる。
【００７６】
次にブロック１１０４で、移行対象のページを指すＴＣＥを有するすべてのホスト・ブリッジにおいてソフト停止ビットが１に、ハード停止ビットが０に、ソフト停止障害ビットが０にセットされる。
【００７７】
次にブロック１１０６に進んで、データがソース・ページから宛先ページにコピーされる。その後ブロック１１０８で、ソース・ページのマッピングを行ったすべてのホスト・ブリッジのページ・マイグレーション制御レジスタが読み出される。ソフト停止ビットが１と等しく、且つソフト停止障害ビットが０と等しい場合には、各レジスタの読み出しプロセスによってハード停止ビットが１にセットされる。
【００７８】
次にブロック１１１０で、すべてのソフト停止障害ビットが０のままであるか否かが判定される。すべてのソフト停止障害ビットが０のままではないと判定された場合には、ブロック１１０４に戻る。ブロック１１１０を再び参照して、すべてのソフト停止障害ビットが０のままであると判定された場合には、ブロック１１１２に進んで、影響を受けるすべてのＴＣＥが宛先ページを指すように設定される。次にブロック１１１４で、すべてのホスト・ブリッジのすべてのソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットが０にセットされる。その後、このプロセスはブロック１１１６で終了する。
【００７９】
本発明の第２の例示的な実施形態によれば、ＴＣＥテーブル内の各変換制御エントリに新しい制御ビットが追加される。本明細書ではこの新しい制御ビットをマイグレーション処理中（ＭＩＰ）ビットと呼ぶ。ＴＣＥのＭＩＰビットの値は、ＴＣＥの指す物理ページ内のデータが現在移行中であるか否かを示す。ＭＩＰビットが１にセットされているときは、そのデータは現在移行中ということになる。ＭＩＰビットが０にセットされているときは、そのデータは現在移行中でないことになる。
【００８０】
図１２は、例示的な実施形態に係るマイグレーション処理中（ＭＩＰ）ビットを含む変換制御エントリ（ＴＣＥ）１２００を示す図である。各変換制御エントリ（ＴＣＥ）は、要求とも呼ばれるコマンド内のアドレスを特定の物理ページに変換する変換情報１２０２と、マイグレーション処理中（ＭＩＰ）ビット１２０４と、読み出し／書き込み制御情報１２０６とを含む。
【００８１】
図１３は、ホスト・ブリッジが例示的な実施形態に係る変換制御エントリのマイグレーション処理中（ＭＩＰ）ビットを利用して、それ自体がソフト停止状態に入るべきかどうかを判定する流れを示す高次のフローチャートである。このプロセスはブロック１３００から開始し、その後ブロック１３０２に進むと、処理すべきＤＭＡ動作が受け取られる。次にブロック１３０４で、当該ＤＭＡ動作に関するＴＣＥが読み出される。
【００８２】
次にブロック１３０６で、当該ＤＭＡ動作がＤＭＡ書き込みであるか否か、及びマイグレーション処理中（ＭＩＰ）ビットが１と等しいか否かが判定される。当該ＤＭＡ動作がＤＭＡ書き込みではなく、且つマイグレーション処理中（ＭＩＰ）ビットが１と等しいと判定された場合には、このプロセスはブロック１３１０で終了する。ブロック１３０６を再び参照して、当該ＤＭＡ動作がＤＭＡ書き込みであり、且つマイグレーション処理中（ＭＩＰ）ビットが１と等しいと判定された場合には、ブロック１３０８に進んで、ソフト停止ビットが１にセットされる。その後、このプロセスはブロック１３１０で終了する。
【００８３】
図１４は、例示的な実施形態に従ってデータをソース物理ページから宛先物理ページに移行するときに、ソース・ページにアクセスしているＩ／Ｏデバイスが当該ソース・ページへの書き込みを行っているＩ／Ｏデバイスである場合にだけ、ＤＭＡ動作を一時停止させる流れを示す高次のフローチャートである。このプロセスはブロック１４００から開始し、その後ブロック１４０２に進むと、ソース・ページを指すすべてのＴＣＥのマイグレーション処理中（ＭＩＰ）ビットが１にセットされる。このようにＭＩＰビットを変更するプロセスによって、該当するＴＣＥのキャッシュ・コピーが無効化される。
【００８４】
次にブロック１４０４で、ソース・ページのマッピングを行った各ホスト・ブリッジに対してメモリ・マップドＩ／Ｏ（ＭＭＩＯ）ロード要求が発行される。このＭＭＩＯロードにより、ＭＭＩＯロード応答がプロセッサに返される前にＴＣＥのハードウェア無効化がホスト・ブリッジに伝達され、ＴＣＥに対するすべての書き込みがＴＣＥの無効化前にメモリに確実にフラッシュされることになる。
【００８５】
次にブロック１４０６に進んで、データがソース・ページから宛先ページにコピーされる。次にブロック１４０８で、ソース・ページを指すＴＣＥを有する可能性があるすべてのホスト・ブリッジにおいて、ソフト停止ビットが１にセットされる。その後ブロック１４１０で、ソース・ページのマッピングを行ったすべてのホスト・ブリッジ内のページ・マイグレーション制御レジスタが読み出される。ソフト停止ビット及びソフト停止障害ビットが０と等しい場合には、各レジスタの読み出しプロセスによってハード停止ビットが１にセットされる。
【００８６】
次にブロック１４１２で、すべてのソフト停止障害ビットが０のままであるか否かが判定される。必ずしもすべてのソフト停止障害ビットが０のままではないと判定された場合には、ブロック１４１４に進んで、すべてのホスト・ブリッジにおいてソフト停止ビットが０に、ハード停止ビットが０に、ソフト停止障害ビットが０にセットされる。その後、このプロセスはブロック１４０４に戻る。
【００８７】
ブロック１４１２を再び参照して、すべてのソフト停止障害ビットが０のままであると判定された場合には、ブロック１４１６に進んで、影響を受けるすべてのＴＣＥが宛先ページを指すように設定される。次に、それらのＴＣＥのすべてのマイグレーション処理中（ＭＩＰ）ビットが０にセットされる。次にブロック１４１８で、すべてのホスト・ブリッジにおいてソフト停止ビットが０に、ハード停止ビットが０に、ソフト停止障害ビットが０にセットされる。その後、このプロセスはブロック１４２０で終了する。
【００８８】
本発明は全体としてハードウェアの実施形態の形をとることも、ハードウェア要素とソフトウェア要素の両方を含む実施形態の形をとることもできる。好ましい一実施形態において、本発明はハードウェアの形で実施され、また、必ずしもそれだけに限定されるわけではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアの形で実施される。
【００８９】
更に、本発明は、コンピュータ又は任意の命令実行システムによって使用され又はそれらと共に使用されるプログラム・コードを備えるコンピュータ使用可能な又はコンピュータに読み込み可能な媒体からアクセス可能なコンピュータ・プログラムの形をとることもできる。本明細書では、コンピュータ使用可能な又はコンピュータに読み込み可能な媒体は、上記命令実行システム、装置、又はデバイスによって使用され又はそれらと共に使用される上記プログラムを収容し、記憶し、通信し、伝搬し、又は移送することが可能な任意の装置であってもよい。
【００９０】
上記媒体は、電子系、磁気系、光学系、電磁気系、赤外線系、又は半導体系（すなわち装置又はデバイス）であっても、伝搬媒体であってもよい。コンピュータに読み込み可能な媒体の例としては、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスク、及び光ディスクが挙げられる。光ディスクの現行例としては、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読出し／書き込み（ＣＤ−Ｒ／Ｗ）、及びＤＶＤが挙げられる。
【００９１】
プログラム・コードを記憶し又は実行しあるいはその両方を行うのに適したデータ処理システムは、システム・バスを介してメモリ要素に直接又は間接的に連結される少なくとも１つのプロセッサを含む。上記メモリ要素は、上記プログラム・コードの実際の実行中に利用されるローカル・メモリ、バルク記憶装置、及び実行中にバルク記憶装置からコードを検索しなければならない回数を少なくするために、少なくともいくつかのプログラム・コードを一時的に記憶するキャッシュ・メモリを含むことができる。
【００９２】
入力／出力すなわちＩ／Ｏデバイス（必ずしもそれだけに限定されるわけではないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む）は、上記システムに直接又はＩ／Ｏコントローラを介して、連結することもできる。
【００９３】
介在する私設ネットワーク又は公共ネットワークを介して他のデータ処理システムあるいは遠隔プリンタ又は記憶装置に、上記データ処理システムが連結できるようにするために、上記システムにネットワーク・アダプタを連結することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現時点で使用可能なタイプのネットワーク・アダプタのほんのいくつかにすぎない。
【００９４】
本発明の諸実施形態に関する上記の記載は、例示及び説明のために提示されるものであり、本発明を余すところのないものとし、又は開示の形態に限定することは、本出願人の意図するところではない。当業者には多くの修正形態及び変更形態が明らかとなるであろう。上記実施形態は、本発明の諸原理及び実際の適用形態が最良の形で説明されるように、また、想定される特定の使用に適するように様々な修正が施された様々な実施形態について当業者が本発明を理解することが可能となるように選択され説明されている。
【図面の簡単な説明】
【００９５】
【図１】例示的な実施形態を含むデータ処理システムのブロック図である。
【図２】例示的な実施形態を含む論理パーティション・プラットフォームのブロック図である。
【図３】例示的な実施形態に係る変換制御エントリ（ＴＣＥ）テーブル及び物理メモリのブロック図である。
【図４】例示的な実施形態を含むホスト・ブリッジを示す図である。
【図５】例示的な実施形態に係るページ・マイグレーション制御部及びアドレス変換制御部を示す図である。
【図６】例示的な実施形態に従ってホスト・ブリッジがソフト停止状態に入ることを可能にするソフト停止ビットを設定する流れを示す高次のフローチャートである。
【図７】例示的な実施形態に従ってソフト停止障害ビットを設定する流れを示す高次のフローチャートである。
【図８】例示的な実施形態に従ってホスト・ブリッジをハード停止状態に入らせるハード停止ビットを設定する流れを示す高次のフローチャートである。
【図９】例示的な実施形態に係るホスト・ブリッジに含まれるソフト停止ビット、ハード停止ビット、及びソフト停止障害ビットの現在の設定に基づいて、ホスト・ブリッジが新しいＤＭＡ及び割り込み要求を処理する流れを示す高次のフローチャートである。
【図１０】ホスト・ブリッジのメモリ・マップドＩ／Ｏ（ＭＭＩＯ）キューが一杯になった場合に、ハード停止状態にあるホスト・ブリッジが例示的な実施形態に従ってハード停止状態を抜ける流れを示す高次のフローチャートである。
【図１１】データをソース・ページから宛先ページに移行するときに、ソース・ページへのアクセスが行われているかどうかに関わらず、例示的な実施形態に従ってＤＭＡ動作を一時停止させる流れを示す高次のフローチャートである。
【図１２】例示的な実施形態に係るマイグレーション処理中（ＭＩＰ）ビットを含む変換制御エントリ（ＴＣＥ）を示す図である。
【図１３】ホスト・ブリッジが例示的な実施形態に係る変換制御エントリのマイグレーション処理中（ＭＩＰ）ビットを利用して、それ自体がソフト停止状態に入るべきかどうかを判定する流れを示す高次のフローチャートである。
【図１４】例示的な実施形態に従ってデータをソース・ページから宛先ページに移行するときに、ソース・ページにアクセスしているＩ／Ｏデバイスが当該ソース・ページへの書き込みを行っているＩ／Ｏデバイスである場合にだけ、ＤＭＡ動作を一時停止させる流れを示す高次のフローチャートである。
【図１】
2009537922.tif 000003
【図２】
2009537922.tif 000004
【図３】
2009537922.tif 000005
【図４】
2009537922.tif 000006
【図５】
2009537922.tif 000007
【図６】
2009537922.tif 000008
【図７】
2009537922.tif 000009
【図８】
2009537922.tif 000010
【図９】
2009537922.tif 000011
【図１０】
2009537922.tif 000012
【図１１】
2009537922.tif 000013
【図１２】
2009537922.tif 000014
【図１３】
2009537922.tif 000015
【図１４】
2009537922.tif 000016
【国際調査報告】
2009537922.tif 000017
2009537922.tif 000018