(57)【特許請求の範囲】
【請求項１】
プロセッサをリセットする方法であって、
ａ） 前記プロセッサに対するリセット要求を生成するステップと、
ｂ） メモリ・アクセス割込みの要因を生成するステップであって、前記要因は前記プロセッサが前記要因に対するアクセスを行う場合に前記メモリ・アクセス割込みが生成されるものである、ステップと、
ｃ） 前記プロセッサが前記要因をアクセスし、前記メモリ・アクセス割込みが生成されるステップと、
ｄ） 前記メモリ・アクセス割込みが生成されたときに、前記リセット要求が生成されているか否かを前記プロセッサが判定するステップと、
ｅ） 前記判定の結果、前記リセット要求が生成されていると判定された場合に、前記プロセッサが自らをリセットするステップと、
を備えたことを特徴とする、プロセッサをリセットする方法。
【請求項２】
前記プロセッサに関連付けられるアドレス変換テーブル、を通じてアクセス可能な仮想メモリ・システムを用いて、前記プロセッサによりデータをアクセスするステップを更に有し、また、前記メモリ・アクセス割込みの要因を生成するステップが、前記アドレス変換テーブル内の少なくとも１つのエントリを無効化するステップを含む、請求項１記載の方法。
【請求項３】
前記アドレス変換テーブル内の少なくとも１つのエントリを無効化するステップが、前記アドレス変換テーブル内のあらゆるエントリを無効化するステップを含む、請求項２記載の方法。
【請求項４】
前記メモリ・アクセス割込みの要因を生成するステップが、前記プロセッサに関連付けられる変換テーブル・キャッシュ内の対応するエントリを無効化するステップを更に含む、請求項３記載の方法。
【請求項５】
前記メモリ・アクセス割込みの要因を生成するステップが、前記アドレス変換テーブル内の無効化されたエントリにより参照されるキャッシュ・ラインに関連付けられ、前記プロセッサに関連付けられるキャッシュ内に配置された、キャッシュ・エントリを無効化するステップを更に含む、請求項４記載の方法。
【請求項６】
アドレス変換テーブルが複数のエントリを含み、各エントリが、前記プロセッサにより使用される仮想メモリ・アドレスと、前記仮想メモリ・アドレスにマップされる実メモリ・アドレスとを識別する、請求項１記載の方法。
【請求項７】
前記リセット要求を生成するステップが、リセット・フラグをセットするステップを含む、請求項１記載の方法。
【請求項８】
前記リセット・フラグが前記プロセッサのローカル記憶領域に記憶される、請求項７記載の方法。
【請求項９】
前記リセット・フラグをアクセスすることによって前記プロセッサ内で前記リセット要求を検出するステップ、を更に有する請求項７記載の方法。
【請求項１０】
前記メモリ・アクセス割込みがデータ記憶割込み及び命令記憶割込みの少なくとも１つを含む、請求項１記載の方法。
【請求項１１】
前記メモリ・アクセス割込みが生成されたときに、前記リセット要求が生成されているか否かを前記プロセッサが判定するステップと、前記判定の結果、前記リセット要求が生成されていると判定された場合に、前記プロセッサが自らをリセットするステップとが、前記メモリ・アクセス割込みに応答して前記プロセッサにより実行されるメモリ・アクセス割込みルーチンにより実行される、請求項１記載の方法。
【請求項１２】
前記リセット要求を生成するステップと、前記メモリ・アクセス割込みの要因を生成するステップとが、前記プロセッサに接続されるもう１つのプロセッサによって実行される、請求項１１記載の方法。
【請求項１３】
前記プロセッサ及び前記もう１つのプロセッサがマルチプロセッサ・コンピュータ・システム内の複数のプロセッサに含まれる、請求項１２記載の方法。
【請求項１４】
前記マルチプロセッサ・コンピュータ・システムが複数の区画を定義し、各区画が複数のプロセッサの少なくとも１つの上で実行されるオペレーティング・システムを含み、前記マルチプロセッサ・コンピュータ・システムが、前記複数のプロセッサの少なくとも１つの上で実行されるパーティション・マネージャを更に含み、前記リセット要求を生成するステップ及び前記メモリ・アクセス割込みの要因を生成するステップが、前記パーティション・マネージャにより実行される、請求項１３記載の方法。
【請求項１５】
前記プロセッサが外部割込みを禁止されてロックアップされているか否かを検出するステップを更に有し、前記リセット要求を生成するステップ及び前記メモリ・アクセス割込みの要因を生成するステップが、前記プロセッサが外部割込みを禁止されてロックアップされているとの検出に応答して実行される、請求項１記載の方法。
【請求項１６】
前記リセット要求を生成するステップ及び前記メモリ・アクセス割込みの要因を生成するステップが、前記プロセッサがロックアップされているとの判断の後に、プロセッサ間割込みにより前記プロセッサをリセットする試行が不成功であったとの判断に応答して実行される、請求項１記載の方法。
【請求項１７】
マルチプロセッサ・コンピュータ・システム内の複数のプロセッサ間の第１のプロセッサをリセットする方法であって、
ａ）前記第１のプロセッサ上の外部割込みが禁止されている間に、前記第１のプロセッサ以外のプロセッサにより、前記第１のプロセッサの起こり得るロックアップ状態を検出するステップと、
ｂ）前記第１のプロセッサ以外の前記プロセッサにより、前記第１のプロセッサに対するリセット要求を生成するステップと、
ｃ） 前記第１のプロセッサ以外の前記プロセッサにより、メモリ・アクセス割込みの要因を生成するステップであって、前記要因は前記第１のプロセッサが前記要因に対するアクセスを行う場合に、前記メモリ・アクセス割込みが生成されるものである、ステップと、
ｄ） 前記第１のプロセッサが前記要因をアクセスし、前記メモリ・アクセス割込みが生成されるステップと、
ｅ） 前記メモリ・アクセス割込みが生成されたときに、前記リセット要求が生成されているか否かを前記第１のプロセッサが判定するステップと、
ｆ） 前記判定の結果、前記リセット要求が生成されていると判定された場合に、前記第１のプロセッサが自らをリセットすることで前記メモリ・アクセス割込みを処理するステップと、
を備えたことを特徴とする、第１のプロセッサをリセットする方法。
【請求項１８】
第１及び第２のプロセッサを含む装置であって、
ａ）前記第２のプロセッサが、前記第１のプロセッサに対するリセット要求を生成し、また、前記第１のプロセッサに対するメモリ・アクセス割込みの要因を生成することによって前記第１のプロセッサのリセットが開始されることになるように構成され、
ｂ）前記第１のプロセッサが、前記要因をアクセスし前記メモリ・アクセス割込みが生成されたときに前記リセット要求が生成されているか否かを判定し、前記リセット要求が生成されていると判定された場合には自らのリセットを実行するように構成された、
装置。
【請求項１９】
前記第１のプロセッサが、前記第１のプロセッサに関連付けられるアドレス変換テーブルを用いてメモリからデータをアクセスするように構成され、また、前記第２のプロセッサが、前記アドレス変換テーブル内の少なくとも１つのエントリを無効化することで、前記第１のプロセッサに対してメモリ・アクセス割込みの要因が生成されるように構成される、請求項１８記載の装置。
【請求項２０】
前記第２のプロセッサが、前記アドレス変換テーブル内のあらゆるエントリを無効化することで、前記第１のプロセッサに対してメモリ・アクセス割込みの要因が生成されるように構成される、請求項１９記載の装置。
【請求項２１】
前記第１のプロセッサに関連付けられる変換テーブル・キャッシュを更に有し、前記第２のプロセッサが、前記変換テーブル・キャッシュ内の対応するエントリを無効化するように構成される、請求項２０記載の装置。
【請求項２２】
前記第１のプロセッサに関連付けられるキャッシュを更に有し、前記第２のプロセッサが、前記アドレス変換テーブル内の無効化されたエントリ、により参照されるキャッシュ・ラインに関連付けられた前記キャッシュ内のキャッシュ・エントリを無効化するように構成される、請求項２１記載の装置。
【請求項２３】
前記キャッシュがレベル１命令キャッシュである、請求項２２記載の装置。
【請求項２４】
前記第２のプロセッサが、リセット・フラグをセットすることによって前記リセット要求を生成するように構成され、また、前記第１のプロセッサが、前記リセット・フラグがセットされているか否かを判断することによって前記リセット要求を検出するように構成される、請求項１８記載の装置。
【請求項２５】
前記メモリ・アクセス割込みがデータ記憶割込み及び命令記憶割込みの少なくとも１つを含む、請求項１８記載の装置。
【請求項２６】
前記第１のプロセッサが、前記メモリ・アクセス割込みに応答してメモリ・アクセス割込みルーチンを実行するように、また、前記メモリ・アクセス割込みルーチンの実行の間に前記リセット要求を検出するように構成される、請求項１８記載の装置。
【請求項２７】
前記第１及び第２のプロセッサがマルチプロセッサ・コンピュータ・システム内の複数のプロセッサに含まれ、前記マルチプロセッサ・コンピュータ・システムが複数の区画を定義し、各区画が前記複数のプロセッサの少なくとも１つ上で実行されるオペレーティング・システムを含み、前記マルチプロセッサ・コンピュータ・システムが、少なくとも前記第２のプロセッサ上で実行されるパーティション・マネージャを更に含む、請求項１８記載の装置。
【請求項２８】
前記第２のプロセッサが、前記第１のプロセッサが外部割込みを禁止されてロックアップされているか否かを検出するように、また、前記第１のプロセッサが外部割込みを禁止されてロックアップされているとの検出に応答して、前記リセット要求を生成するように、及び前記メモリ・アクセス割込みの要因を生成するように構成される、請求項１８記載の装置。
【請求項２９】
前記第２のプロセッサが、プロセッサ間割込みを使用して前記第１のプロセッサをリセットする試行が不成功であったとの判断に応答して、前記リセット要求を生成するように、及び前記メモリ・アクセス割込みの要因を生成するように構成される、請求項１８記載の装置。
【請求項３０】
ａ）複数の実メモリ・アドレスにより実アドレス空間を定義するメモリと、
ｂ）複数の仮想メモリ・アドレスを含む仮想アドレス空間を用いて前記メモリをアクセスするように構成される、第１のプロセッサと、
ｃ）前記第１のプロセッサによりアクセス可能であり、かつ複数のエントリを含むアドレス変換テーブルであって、各エントリが、前記仮想アドレス空間内の仮想メモリ・アドレスを前記実アドレス空間内の実メモリ・アドレスにマップするように構成される、アドレス変換テーブルと、
ｄ）前記第１のプロセッサによって前記アドレス変換テーブル内のマップされていない仮想メモリ・アドレスをアクセスする試行に応答して、前記第１のプロセッサにより実行されるように構成され、また、保留のリセット要求に応答して前記第１のプロセッサ自らをリセットするように更に構成される、メモリ・アクセス割込みハンドラと、
ｅ）前記第１のプロセッサに接続され、また、前記リセット要求を生成することと、前記アドレス変換テーブル内の少なくとも１つのエントリを無効化することとにより、前記第１のプロセッサのリセットを開始するように構成される、第２のプロセッサと、
を有する装置。
【請求項３１】
前記複数のプロセッサが、複数の論理区画を含む区画化された環境を実現するように構成される、請求項３０記載の装置。
【請求項３２】
第１のプログラムと第２のプログラムを記録した記録可能媒体であって、
前記第２のプログラムは、第２のプロセッサに、第１のプロセッサに対してリセット要求を生成し、かつ、メモリ・アクセス割込みの要因を生成することにより、前記第１のプロセッサのリセットを開始する処理を実行させるものであり、
前記第１のプログラムは、前記第１のプロセッサに、前記要因をアクセスして生じた前記メモリ・アクセス割込みを処理し、前記メモリ・アクセス割込みの処理の中で、前記リセット要求が発生されているかどうかをチェックし、前記リセット要求が検出された場合には、前記検出に応答して前記第１のプロセッサ自らのリセットを実行する処理を実行させるものである、
記録可能媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にコンピュータ及びコンピュータ・ソフトウェアに関する。特に、本発明は一般に、ソフトウェア・ベースの機構を介して、コンピュータ・プロセッサのリセットを開始することに関する。
【０００２】
【従来の技術】
コンピュータ技術は急速なペースで進歩し続けており、ソフトウェア及びこうしたソフトウェアが実行される基礎となるハードウェアの両面において、有意義な開発が行われている。コンピュータ技術における１つの有意義な進歩は、マルチプロセッサ・コンピュータの開発であり、そこでは複数のコンピュータ・プロセッサが互いにインタフェースされて、複数のオペレーションが同時に実行されることを可能にし、こうしたコンピュータの全体性能を改善する。また、多数のマルチプロセッサ・コンピュータ設計は、論理区画化にもとづきコンピュータ資源を割当て、複数の同時タスクの性能を更に向上させる。
【０００３】
論理区画化により、１つの物理コンピュータが本質的に、複数の独立の"仮想"コンピュータ（論理区画と呼ばれる）のように動作することが可能になり、物理コンピュータ内の様々な資源（例えばプロセッサ、メモリ、入出力装置など）が様々な論理区画間で割当てられる。各論理区画は別々のオペレーティング・システムを実行し、ユーザ及び論理区画上で実行されるソフトウェアから見ると、完全に独立なコンピュータとして動作する。
【０００４】
しばしば"ハイパバイザ"またはパーティション・マネージャと呼ばれる共用資源が、論理区画を管理し、異なる論理区画への資源の割当てを容易にする。この機能のコンポーネントとして、パーティション・マネージャは様々な論理区画に対して別々の仮想メモリ・アドレス空間を保持し、それにより各論理区画により使用されるメモリは、他の論理区画から完全に独立する。一般に、１つ以上のアドレス変換テーブルがパーティション・マネージャにより使用され、各仮想アドレス空間からのアドレスを、コンピュータの物理または実アドレス空間内の異なるアドレスにマップする。論理区画が特定の仮想アドレスをアクセスしようとする度に、パーティション・マネージャは仮想アドレスを実アドレスに変換し、共用メモリが論理区画により直接アクセスされる。
【０００５】
マルチプロセッサ・コンピュータ、及び特に区画化環境を実装するそれらの主な利点は、部分システム故障に応答して、少なくとも部分的な動作能力を維持する能力である。例えば、ほとんどのコンピュータ、及び特にほとんどのマルチプロセッサ・コンピュータは、比較的信頼性が高いが、こうしたコンピュータ内のプロセッサは、例えばこうしたプロセッサを永久ループ内で連続的に動作させるソフトウェア設計の欠陥すなわち"バグ"により、時々"ハング"し、応答的且つ予測可能に動作しなくなる。特に区画化環境では、特定の論理区画に割当てられたプロセッサがハングすると、その区画が少なくとも部分的に動作不能且つ非応答的となる。しかしながら、ハング・プロセッサに頼らない他の論理区画は、一般に故障により影響を受けない。
【０００６】
一部の状況では、コンピュータを単にパワーオフ及びパワーオンして、ハング・プロセッサを回復することが許容されるが、多くの状況では、コンピュータ全体をシャットダウンする必要無しに、ハング・プロセッサをリセットするか、既知の状態に回復する能力を提供することが望ましい。また、マルチプロセッサ・コンピュータ、及び特に区画化環境を実装するそれらでは、こうしたリセット動作が、コンピュータ内で動作する他のプロセッサまたは他の論理区画に影響を及ぼさず、ハング・プロセッサがリセットされる間にも、他のプロセッサまたは論理区画が依然有用な動作を実行し続けることが望ましい。
【０００７】
多くのマルチプロセッサ・コンピュータ、及び特に区画化環境を実装するそれらでは、あるプロセッサが別のプロセッサのリセットを開始することを可能にするために、ソフトウェア・ベースのリセット機構が一般にサポートされる。一般に、ソフトウェア・ベースのリセット機構は、しばしばプロセッサ間割込み（ＩＰＩ）と呼ばれる割込みの使用に頼って、ハング・プロセッサをリセットし、それを既知の状態に回復させる。ＩＰＩは全ての割込みのように、プロセッサに全ての現オペレーションを停止させ、"割込みハンドラ"と呼ばれる割込みを処理する専用のプログラム・コードに即時ジャンプさせる。
【０００８】
ＩＰＩは一般に、ＩＰＩが割込みを受信するプロセッサから外部的に開始される限り、"外部"割込みとして処理される。しかしながら、ほとんどのプロセッサは、外部割込みを選択的に許可または禁止する能力をサポートし、こうした割込みは、一般にプロセッサが完了前に終了されるべきでない比較的重要なプログラム・コードを実行しているときには、無視される。しかしながら、外部割込みを禁止する能力は、外部割込みが禁止される間、従ってＩＰＩを通じてリセット不能な間に、プロセッサがハングする可能性をもたらす。これが発生すると、プロセッサをリセットする唯一の方法はハードウェア・リセットとなり、これは一般にコンピュータの完全な再起動を必要とし、コンピュータの一時的なアクセス不能を生じる。
【０００９】
【発明が解決しようとする課題】
従って、プロセッサが広範な状況においてリセットされることを可能にする、プロセッサのための代替ソフトウェア・ベースのリセット機構、並びに、特に、プロセッサ上の割込みの禁止の結果打ち負かされない、プロセッサのためのソフトウェア・ベースのリセット機構が待望される。
【００１０】
【課題を解決するための手段】
本発明は、メモリ・アクセス割込みを利用して、マルチプロセッサ環境内のプロセッサのリセットを有効にする装置、プログラム記憶媒体、及び方法を提供することにより、従来技術に関連するこれらの及び他の問題を解決する。具体的には、あるプロセッサ（ここではソース・プロセッサと呼ぶ）が、別のプロセッサ（ここではターゲット・プロセッサと呼ぶ）に対してリセット要求及びメモリ・アクセス割込みの両方を生成することにより、ターゲット・プロセッサのリセットを開始することを許可される。ターゲット・プロセッサは特に、メモリ・アクセス割込みの処理の間に、保留のリセット要求の存在を検出するように構成され、それによりターゲット・プロセッサはこうした要求の検出に応答して、リセット動作を実行する。
【００１１】
一般にリセット要求の検出は、メモリ・アクセス割込みに応答して、ターゲット・プロセッサにより実行される割込みハンドラ内で行われる。その結果、ターゲット・プロセッサのリセットを開始する以外の理由により、メモリ・アクセス割込みが生成される状況では、ターゲット・プロセッサは割込みを適切に処理し、リセット動作が割込みの結果実行されるべきか否かの判断に関連する追加のオーバヘッドはほとんど無い。
【００１２】
メモリ・アクセス割込みは、ターゲット・プロセッサによるメモリ・アクセス試行に応答して生成される任意のタイプの割込みを含むものと見なされ得る。特に、プロセッサが常にメモリをアクセス可能であるという一般的な必要性を考慮すると、メモリ・アクセス割込みはしばしば、ターゲット・プロセッサの動作中は禁止不能として、更に特徴付けられる。その結果、ある場合に禁止可能なＩＰＩなどの外部割込みと異なり、リセット動作は他の割込みがターゲット・プロセッサ上で禁止されているか否かに関わらず、メモリ・アクセス割込みを介して、ターゲット・プロセッサ上で開始され得る。
【００１３】
本発明に従い、他の代替メモリ・アクセス割込みも使用され得るが、１つの特に有用な実施例は、次のようなターゲット・プロセッサによる試行、すなわちアドレス変換テーブル内のいかなるエントリによってもマップされない仮想メモリ・アドレス空間内の仮想メモリ・アドレス、をアクセスしようとする試行に応答して生成されるメモリ・アクセス割込みのタイプにもとづく。メモリ・アクセス割込みの生成には、一般に、仮想メモリ・アドレス空間へのターゲット・プロセッサによる引き続いてのアクセスが、マップされない仮想メモリ・アドレスをアクセスしようとすることを保証するために、アドレス変換テーブル内の１つ以上のエントリが無効化されることが必要とされる。
【００１４】
従って、本発明の１態様によれば、プロセッサに対するリセット要求、及びメモリ・アクセス割込みを生成し、リセット要求の検出に応答して、プロセッサによるメモリ・アクセス割込みの処理において自らををリセットすることにより、プロセッサがリセットされる。
【００１５】
本発明を特徴付けるこれらの及び他の利点及び特徴が、本発明の一部を成す付属の特許請求の範囲で述べられる。しかしながら、本発明及びその利用を通じて得られる利点及び目的をより理解するために、本発明の典型的な実施例を示す図面及び付随の説明を参照されたい。
【００１６】
【発明の実施の形態】
図面を参照すると、同一の番号は図面を通じて同一の部品を表す。図１は、本発明に従うデータ処理装置またはコンピュータ１０を示す。装置１０は一般に例えば、ネットワーク・サーバ、中規模コンピュータ、メインフレーム・コンピュータなどの多数のマルチユーザ・コンピュータ・システムのいずれかを表す。しかしながら、本発明は他のデータ処理装置、例えばワークステーション、デスクトップ・コンピュータ、ポータブル・コンピュータなどのスタンドアロンまたはシングルユーザ・コンピュータ・システム、或いは埋め込み制御装置などの他のコンピュータ装置でも実現され得る。装置１０の１つの好適な実施例は、ＩＢＭから提供されるＡＳ／４００シリーズ・コンピュータなどの、中規模コンピュータである。
【００１７】
装置１０は一般に、主記憶装置１４を含むメモリ・サブシステムに接続される複数のシステム・プロセッサ１２を含む。ここで主記憶装置１４は、例えばダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）のアレイである。システム・プロセッサ１２は例えば、他の可能なマルチプロセッサ環境の中でも、とりわけ対称多重処理（ＳＭＰ）環境を実現するように構成される。プロセッサ１２と主記憶装置１４との間には、更にキャッシュ・サブシステム１６が配置されて示され、これは一般に１つ以上のレベルのデータ・キャッシュ、命令キャッシュ、または組み合わせキャッシュを含み、周知のように、特定のキャッシュが個々のプロセッサまたは複数のプロセッサに作用する。更に、主記憶装置１４はシステム・バス１８及び複数のインタフェース装置を介して、多くのタイプの外部（Ｉ／Ｏ）装置に接続される。こうしたインタフェース装置には、入出力（Ｉ／Ｏ）バス接続インタフェース２０、ワークステーション制御装置２２、及び記憶制御装置２４などが含まれ、これらはそれぞれ１つ以上の外部ネットワーク２６、１つ以上のワークステーション２８、及び直接アクセス記憶装置（ＤＡＳＤ）などの１つ以上の記憶装置３０への外部アクセスを提供する。
【００１８】
図示の実施例では、コンピュータ１０は論理的に区画化されたコンピュータとして実現される。この点に関して、図２は、コンピュータ１０上で論理的に区画化されたコンピュータ環境を実現するために使用される、主なソフトウェア・コンポーネント及び資源を詳細に示し、ここではパーティション・マネージャ４６により管理される複数の論理区画４０、４２、４４が含まれる。周知のように、任意の数の論理区画がサポートされ得る。更に、本発明は他の区画化された環境、並びに複数のプロセッサを使用する他のコンピュータ（例えば区画化されないコンピュータ）においても使用され得る。
【００１９】
図示の実施例では、論理区画４０が１次区画として動作し、論理区画４２及び４４が２次区画として動作する。この状況において１次区画は、コンピュータのための一部の区画管理機能を共用し、それらにはコンピュータ１０上の２次論理区画のパワーオンまたはパワーオフの処理や、２次論理区画のメモリ・ダンプの開始などが含まれる。パーティション・マネージャ４６の一部は、１次区画４０内に存在するオペレーティング・システム５２内に配置される、１次区画制御ブロック５０により示される。他の区画管理サービスは、全ての論理区画によりアクセス可能であり、共用サービス・ブロック４８により表される。１次論理区画内の区画管理機能の実装は、例えばArmstrongらによる１９９９年５月１９日付けの米国特許出願： "Logical Partition Manager and Method"（出願人整理番号：RO9-99-025）で述べられている。しかしながら、本発明の他の実施例では、区画管理機能は任意の特定の論理区画内に実装される必要はない。
【００２０】
各論理区画はオペレーティング・システムを使用し（例えば論理区画４０、４２、４４のそれぞれに対して、オペレーティング・システム５２、５４、５６が対応）、これらのオペレーティング・システムが非区画化コンピュータのオペレーティング・システム同様、論理区画の基本動作を制御する。例えば、各オペレーティング・システム５２乃至５６は、カーネル、例えばＡＳ／４００システム認可内部コード（ＳＬＩＣ：system licensed internal code）上に存在する、ＩＢＭから提供されるＯＳ／４００オペレーティング・システムを用いて実現される。ブロック４８内の共用サービスは、ここでは区画認可内部コード（ＰＬＩＣ：partition licensed internal code）とも呼ばれる。また図２には、各論理区画４０乃至４４上で実行される幾つかのユーザ・アプリケーション５８が示され、これらはそれぞれの区画のオペレーティング・システムにより提供される基礎的なサービスにもとづく。
【００２１】
各論理区画４０乃至４４は、仮想メモリ６０により表される別々のメモリ空間内で実行される。更に、各論理区画４０乃至４４は、静的にまたは動的に、コンピュータ１０内の使用可能な資源の一部を割当てられる。例えば、各論理区画は１つ以上のプロセッサ１２の他に、仮想メモリ６０内の使用可能なメモリ空間の一部を割当てられる。論理区画はプロセッサなどの特定のハードウェア資源を共用でき、例えば所与のプロセッサが２つ以上の論理区画により使用される。代替実施例では、ハードウェア資源が同時に１つの論理区画にだけ割当てられる。
【００２２】
大容量記憶装置、バックアップ記憶装置、ユーザ入力、ネットワーク接続などの追加の資源が、一般に、周知のように１つ以上の論理区画に割当てられる。資源は、例えばバス・ベースまたは資源ベースなどにより、多様に割当てられ、複数の論理区画が同一のバス上の資源を共用する。一部の資源は複数の論理区画に同時に割当てられ得る。例えば、図２は３つの論理バス６２、６４及び６６を示し、バス６２上の直接アクセス記憶装置（ＤＡＳＤ）６８、制御パネル７０、テープ・ドライブ７２、及び光ディスク・ドライブ７４を含む複数の資源が、１次論理区画４０に割当てられる。一方、バス６４は資源ベースで割当てられる資源を有し、例えばローカル・エリア・ネットワーク（ＬＡＮ）・アダプタ７６、光ディスク・ドライブ７８、及びＤＡＳＤ８０は２次論理区画４２に割当てられ、ＬＡＮアダプタ８２及び８４は２次論理区画４４に割当てられる。バス６６は、例えば論理区画４４に特定的に割当てられるバスを表し、このバス上の全ての資源、例えばＤＡＳＤ８６及び８８は、同一の論理区画に割当てられる。
【００２３】
図２の特定の資源の図解は、単に模範例に過ぎず、別の実施例では、資源の任意の組み合わせ及び編成が、任意の論理区画に割当てられ得る。更に、一部の実施例では、他の論理区画のニーズをサービスするために、資源が動的に再割当てされる。更に、資源は、コンピュータを特定のハードウェア装置とインタフェースするために使用される入出力プロセッサ（ＩＯＰ）に関して、表されてもよい。
【００２４】
図２に示され、本発明の実施例を実現する様々なソフトウェア・コンポーネント及び資源は、様々なコンピュータ・ソフトウェア・アプリケーション、ルーチン、コンポーネント、プログラム、オブジェクト、モジュール、データ構造などを用いて、多様に実装され、以下ではこれらを"コンピュータ・プログラム"または単に"プログラム"と称することにする。コンピュータ・プログラムは一般に、１つ以上の命令を含み、これらはコンピュータ内の様々なメモリ及び記憶装置内に様々な時刻に存在し、コンピュータ内の１つ以上のプロセッサにより読出され、実行されるとき、本発明の様々な態様を実現するステップまたは要素を実行するのに必要なステップを、コンピュータに実行させる。更に、本発明はこれまで完全機能型のコンピュータの状況において述べられ、また以下でも同様であるが、当業者であれば、本発明の様々な実施例が様々な形態のプログラム製品として分配され、本発明が、実際に分配を実行するために使用される特定のタイプの信号担持媒体に関係なく、同様に当てはまることが理解できよう。こうした信号担持媒体の例には、揮発性及び不揮発性メモリ素子、フロッピー及び他の取り外し可能ディスク、ハードディスク・ドライブ、磁気テープ、光ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤなど）などの記録可能媒体、及びデジタル及びアナログ通信リンクなどの伝送タイプの媒体が含まれる。
【００２５】
更に、後述の様々なプログラムは、それらが本発明の特定の実施例として実現されるアプリケーションにもとづき識別される。しかしながら、後述の特定のプログラム用語は便宜上使用されるだけで、本発明はこうした用語により識別または意味される特定のアプリケーションだけに、その使用が限られるものではない。
【００２６】
当業者であれば、図１及び図２に示される典型的な環境が、本発明を制限するものでないことが理解できよう。実際、当業者であれば、他の代替ハードウェアまたはソフトウェア環境が、本発明の範囲から逸れることなく使用され得ることが理解できよう。
【００２７】
メモリ・アクセス割込みを介するプロセッサ・リセット：
後述の実施例は、一般に、プロセッサの既存のメモリ・アクセス割込み処理機能を用いて、プロセッサのリセットを開始するように動作する。メモリ・アクセス割込みは一般に、プロセッサによるメモリ・アクセス試行に応答して生成される任意のタイプの割込みを含むものと見なされる。例えば、後述の実施例では、メモリ・アクセス割込みが、データ記憶割込みまたは命令記憶割込みのいずれか一方または両方として実現され、これはプロセッサが、そのプロセッサにより使用されるアドレス変換テーブルにより実メモリ・アドレスにマップされない仮想メモリ・アドレス空間、内の仮想メモリ・アドレスをアクセスしようとする度に生成される。しかしながら、メモリ・アクセス割込みは、例えば変換索引バッファのミスに応答して生成されるなど、本発明に従い他の態様でも生成され得る。
【００２８】
ここで開示されるようにプロセッサ・リセットを開始するとき、コンピュータ１０内の多くの既存のハードウェア及びソフトウェア・コンポーネントが、特に使用される。例えば、図２に示されるように、１つ以上のアドレス変換テーブル、例えばアドレス変換テーブル９０、９２及び９４（ハードウェア・ページ・テーブル（ＨＰＴ）とも呼ばれる）が、パーティション・マネージャ４６内に提供され、それぞれ論理区画４０、４２及び４４のために、仮想−実アドレス変換操作を処理する。更に、図１に示されるように、各プロセッサ１２は任意的に、変換索引バッファ（ＴＬＢ）３２または他のキャッシュ構造を含み、これが周知のように、１つ以上のアドレス変換テーブルの少なくとも一部をキャッシュし、仮想−実メモリ・アドレスの変換を加速する。
【００２９】
各プロセッサ１２は一般に、例えばレベル１命令キャッシュ（ICache）３４など、１つ以上のレベルの命令キャッシュを含み、この中に１つ以上のキャッシュ・ラインが記憶される。他の関連キャッシュ構造もキャッシュ・サブシステム１６内に見いだされ得る。更に、３６として示されるように、主記憶の少なくとも一部が、１つ以上のプロセッサのためのローカル記憶として割当てられる。ローカル記憶はメモリ・アドレスの固定領域に静的に割当てられ、常にローカル記憶への持続的アクセスを可能にする。
【００３０】
ここで述べるようにプロセッサ・リセットを回避するために、別のプロセッサ（ここでは"ターゲット・プロセッサ"と呼ぶ）のプロセッサ・リセットを開始したい第１のプロセッサ（ここでは"ソース・プロセッサ"と呼ぶ）が、一般に、ターゲット・プロセッサに対するリセット要求及びメモリ・アクセス割込みを生成しなければならない。図２では、１次論理区画４０に割当てられる模範的なソース・プロセッサが"Ａ"で示され、２次論理区画４２に割当てられる模範的なターゲット・プロセッサが"Ｂ"で示される。しかしながら、一部の実施例では、ソース及びターゲット・プロセッサが同一の論理区画に割当てられてもよい。
【００３１】
図示の実施例では、リセット要求の生成が、ターゲット・プロセッサのためのローカル記憶内の静的メモリ位置に配置されるフラグのセットを介して実現される。或いは、リセット・フラグが、ソース及びターゲット・プロセッサの両者にとって（少なくとも間接的に）アクセス可能な、任意の他のメモリ記憶素子内に実装される。更に、リセット要求を生成するか、ターゲット・プロセッサにリセットが要求されることを示す他の態様が、当業者により理解されよう。
【００３２】
また図示の実施例では、メモリ・アクセス割込みの生成が、ソース・プロセッサにより、ターゲット・プロセッサに関連付けられるアドレス変換テーブル内のあらゆるエントリを無効にすることにより実現される。そうすることにより、ターゲット・プロセッサが次回、任意のメモリ・アドレスをアクセスしようとするとき（次の命令を検索するか、メモリに記憶されるデータをアクセスする）、メモリ・アクセス割込みが生成される。更に、コヒーレンスを維持するために、あらゆるキャッシング機構（ＴＬＢなど）を更新して、無効にされたアドレス変換テーブルからのキャッシュ済みのあらゆるエントリを無効にするか、こうした無効エントリに関連付けられるデータ及び命令をキャッシュする、あらゆる他のキャッシング機構を更新することが望ましい。
【００３３】
他の実施例では、アドレス変換テーブルのあらゆるエントリを無効にすることが必要でないかもしれない。例えば、一部の実施例では、ソース・プロセッサによりメモリ・アクセス割込みが検出されるまで、エントリを１つずつ無効にすることが可能である。また一部の実施例では、次にアクセスされるエントリを予測し、そのエントリだけを無効にすることが可能である。更に、他の実施例では、コヒーレンスを維持するために、異なるキャッシング機構が更新される必要があったり、なかったりする。
【００３４】
更に、メモリ・アクセス割込みを生成する他の機構が、本発明に従い使用され得る。例えば、前述のように、メモリ・アクセス割込みが、変換索引バッファまたは他のアドレス変換データ・キャッシング構造上でミスを生成することにより、開始され得る。
【００３５】
他の代替実施例も、当業者には明らかであろう。
【００３６】
図３は、論理区画４２に割当てられ、ターゲット・プロセッサＢ（図２）により使用されるアドレス変換テーブル９２の好適な実施例の詳細を示す。周知のように、アドレス変換テーブルは複数のエントリ（例えばエントリ１０２）を含む。図示の例では、エントリ１０２が複数のフィールド１０４、１０６、１０８及び１１０を含む。図示の実施例のアドレス変換は、ページ・ベースで発生し、例えば１ページ・サイズが４０９６バイトである。従って、各エントリ１０２は、仮想メモリ・アドレスのページを、メモリ・システム内の実メモリ・アドレスの対応するページに合致させなければならない。メモリ・アドレスの"ページ"は一般に、ページ・サイズに対応する下位ビット以外のメモリ・アドレスからのビットにより識別される。従って、４０９６のページ・サイズでは、６４ビット・メモリ・アドレス空間同様、ページが上位４２ビット（ビット０乃至４１、ここでビット０がＭＳＢ）により識別され、下位１２ビット（ビット４２乃至６３）は識別ページ内の特定のメモリ・アドレスを指定するために使用される。図示の実施例では、エントリ１０２のフィールド１０４は、４２ビットの仮想ページ番号を含み、エントリ１０６は、仮想ページがマップされる４２ビットの実ページ番号を含む。仮想及び実メモリ・アドレス空間のいずれか一方または両方が、本発明に従い、異なるサイズを有し得る。
【００３７】
各エントリ１０２は更に、そのエントリが仮想ページから実ページへの有効なマッピングを表すか否かを示す有効フィールド１０８を含む。アドレス変換テーブル９２を使用するターゲット・プロセッサ上で、メモリ・アクセス割込みを生成したいときに、ソース・プロセッサによりクリアされるビットは、正にこのビットである。
【００３８】
フィールド１１０により示される追加の情報も、アドレス変換テーブル９２内のエントリ１０２内に記憶され得る。一般に、こうした追加の情報は、様々な保護ビットの他に、参照、変更、アドレス比較、及び他の既知の情報を含む。他のデータ構造も本発明に従い、アドレス変換機構内で使用され得ることが理解されよう。
【００３９】
次に図４は、ターゲット・プロセッサを初期状態にリセットしたいときに、ソース・プロセッサにより実行されるプロセッサ・リセット・ルーチン１２０を示す。ルーチン１２０は例えば、プロセッサまたはそのプロセッサに関連付けられる論理区画が、非応答になったとき（ここではＩＰＩの不成功の後）に、呼び出される。プロセッサをリセットすることが望まれる他の状況には、パワーオフ、主記憶ダンプ、及び２次区画の連続通電主記憶（ＣＰＭ）初期プログラム・ロード（ＩＰＬ）などが含まれる。
【００４０】
最初に、ブロック１２２で示されるように、ソース・プロセッサが既知のように、プロセッサ間割込み（ＩＰＩ）をターゲット・プロセッサに送信しようとする。次にブロック１２４で、ソース・プロセッサはタイマをセットし、周期的にターゲット・プロセッサの応答をチェックすることにより、ターゲット・プロセッサが既知の初期状態に復帰するのを待機する。こうした実施例では、ターゲット・プロセッサからの応答無しに、タイマが満了すると、リセット操作の不成功を示す。
【００４１】
次にブロック１２６で、ターゲット・プロセッサがその既知の初期状態に復帰したか否かを判断する。復帰した場合、ルーチン１２０は完了する。しかしながら、復帰しなかった場合、制御はブロック１２８に移行し、本発明に従いメモリ・アクセス・ベースのプロセッサ・リセットを実行する。
【００４２】
特にブロック１２８で、ソース・プロセッサは、リセットされるターゲット・プロセッサのローカル記憶内で、リセット・フラグをセットする。次にブロック１３０で、ソース・プロセッサは、ターゲット・プロセッサに割当てられたアドレス変換テーブル内の第１の有効エントリを検索しようとする。こうしたエントリが見い出されると仮定すると、ブロック１３２が制御をブロック１３４に渡し、一般にその有効ビットをクリアすることにより、現エントリを無効にする。次にブロック１３６で、ＴＬＢ無効エントリ・メッセージを同報することにより、ターゲット・プロセッサの変換索引バッファ（ＴＬＢ）内のエントリのコピーが無効にされる。このメッセージの使用及び構成は、周知である。
【００４３】
次にブロック１３８で、無効にされているページ内の全てのキャッシュ・ラインが、ターゲット・プロセッサの命令キャッシュ内で無効にされる。これはページ内で参照される各キャッシュ・ラインに対して、命令キャッシュ・ブロック無効（ＩＣＢＩ）命令を同報することにより達成される。ＩＣＢＩ命令の使用及び作用は、周知である。
【００４４】
ブロック１３６及び１３８は、本質的に、アドレス変換テーブルと、それにより参照されるエントリのキャッシュ済みコピーとの間の、同様に無効ページ内に組み込まれるキャッシュ・ラインのキャッシュ済みコピーとの間のコヒーレンスを維持する。しかしながら、他の実施例では、コヒーレンス問題が存在せず、ブロック１３６または１３８のいずれか一方または両方が省略され得る。
【００４５】
ＩＣＢＩ命令の同報の後、制御はブロック１４０に移行し、ターゲット・プロセッサに関連付けられるアドレス変換テーブル内の次の有効エントリを獲得しようとする。制御は次にブロック１３２に戻り、別のこうしたエントリが見いだされたか否かを判断する。処理は、アドレス変換テーブル内の各有効エントリが無効にされるまで、継続する。一旦全てのこうしたエントリが処理されると、ブロック１３２は制御をブロック１４２に渡し、ターゲット・プロセッサがその既知の初期状態に復帰するのを待機する。これが発生後、ルーチン１２０は完了する。
【００４６】
ルーチン１２０の機能は、一般に、パーティション・マネージャ４６（図２）に割当てられるプログラム・コード内に実装され、主として共用サービス・ブロック４８内に実装される。特に、パーティション・マネージャの１次論理区画部分内のブロック５０は、プロセッサがリセットされる必要のある時を判断し、共用サービス・ブロック４８内のルーチン１２０を開始して、こうしたリセットを実行する。しかしながら、他の実施例では、ブロック４８及び５０の間での機能の他の割当ても使用され得る。
【００４７】
本発明に従い、ルーチン１２０に追加の変更が成され得る。例えば、有効なエントリだけを探索するのではなく、アドレス変換テーブルの全てのエントリがここで開示されるように処理され得る。更に、一部の実施例では、メモリ・アクセス・ベースの割込み以前に、ＩＰＩを試行することが必要でなかったり、望ましくなかったりする。更に、ブロック１２４及び１４２で開示されたように、ターゲット・プロセッサがその既知の状態に復帰するための待機が、ウォッチドッグ・タイマをセットするなどの、別の方法で実行され得る。当業者であれば、他の変更も明らかであろう。
【００４８】
次に図５は、ソース・プロセッサによるメモリ・アクセス割込みの生成（図４に関連して前述）に応答する、ターゲット・プロセッサによるプロセッサ・リセットの開始を示す。１５０に示されるように、ターゲット・プロセッサはその割込みを禁止されて、オペレーティング・システム・コード内をループしているように示される。データ記憶割込みまたは命令記憶割込みに応答して、制御はターゲット・プロセッサにより実行されるパーティション・マネージャＤＳＩ／ＩＳＩ割込みハンドラ１５２に移る。ルーチン１５２は、プロセッサをリセットする要求に応答してメモリ・アクセス割込みが生成されたものであるか否かに関わらず、そのメモリ・アクセス割込みがターゲット・プロセッサに対して生成される任意の時点に開始される。それ自体、ルーチン１５２はブロック１５４で開始し、ローカル記憶内でターゲット・プロセッサに割当てられたリセット・フラグがセットされているか否かを判断する。セットされている場合、制御はブロック１５６に移り、プロセッサ・リセットを実行し、周知のように、パーティション・マネージャ・コード内の既知の状態に遷移する。こうした既知の状態に復帰することにより、コンピュータ１０の特定の構成に特に適応化されて、リセットが達成される。
【００４９】
ブロック１５４に戻り、リセット・フラグがセットされていない場合、メモリ・アクセス割込みは従来通り処理され、例えば、制御がブロック１５８に移り、周知のように、オペレーティング・システム・コード内の割込みハンドラを呼び出す。一般に、こうした割込みの処理は、要求される仮想アドレスが有効か否かの判断を含み、有効な場合、オペレーティング・システムのソフトウェア・ページ・テーブルから実アドレスを検索する。次に、検索された実アドレスが、パーティション・マネージャ内のアドレス変換テーブルに記憶され、通常の処理が再開される。仮想アドレスが論理区画にとって有効なアドレスでない場合、例外が生成され、これが周知のように、オペレーティング・システム内で処理される。
【００５０】
様々な追加の変更が本発明に従い可能である。例えば、アドレス変換テーブルとコンピュータ内の他のコンポーネント間のコヒーレンスを保証する他の態様が、別の実施例では使用され得る。
【００５１】
本発明の趣旨及び範囲から逸れることなく、図示の実施例に対する他の変更も可能である。
【００５２】
【関連出願】
本願は以下の特許出願に関連する。Armstrongらによる１９９９年５月１９日付けの米国特許出願： "Apparatus and Method for Specifying Maxmum Interactive Performance in a Logical Partition of a Computer System Independently from the Maximum Interactive Performance in Other Partitions"（出願人整理番号：RO9-99-021）、Armstrongらによる１９９９年５月１９日付けの米国特許出願： "Management of a Concurrent Use License in a Logically-Partitioned Computer"（出願人整理番号：RO9-99-023）、Armstrongらによる１９９９年５月１９日付けの米国特許出願： "Event-Driven Communications Interface for Logically-Partitioned Computer"（出願人整理番号：RO9-99-024）、及びArmstrongらによる１９９９年５月１９日付けの米国特許出願： "Logical Partition Manager and Method"（出願人整理番号：RO9-99-025）。
【図面の簡単な説明】
【図１】本発明に従うコンピュータのブロック図である。
【図２】図１のコンピュータ内の主なソフトウェア・コンポーネント及び資源のブロック図である。
【図３】図２のアドレス変換テーブルのブロック図である。
【図４】図１及び図２のコンピュータ内のソース・プロセッサにより実行されるプロセッサ・リセット・ルーチンのプログラム・フローを示すフロー図である。
【図５】メモリ・アクセス割込みに応答する、図１及び図２のコンピュータ内のターゲット・プロセッサにより実行されるパーティション・マネージャ割込みハンドラのプログラム・フローを示すフロー図である。
【符号の説明】
１０  データ処理装置
１２  システム・プロセッサ
１４  主記憶装置
１６  キャッシュ・サブシステム
１８  システム・バス
２０  入出力（Ｉ／Ｏ）バス接続インタフェース
２２  ワークステーション制御装置
２４  記憶制御装置
２６  外部ネットワーク
２８  ワークステーション
３０、６８、８０、８６、８８  直接アクセス記憶装置（ＤＡＳＤ）
４６  パーティション・マネージャ
５２、５４、５６  オペレーティング・システム
５８  ユーザ・アプリケーション
６０  仮想メモリ
７０  制御パネル
７２  テープ・ドライブ
７４  光ディスク・ドライブ
７６、８２、８４  ＬＡＮアダプタ
７８  光ディスク・ドライブ
９０、９２、９４  アドレス変換テーブル
【図１】
0003629406.tif 000002
【図２】
0003629406.tif 000003
【図３】
0003629406.tif 000004
【図４】
0003629406.tif 000005
【図５】
0003629406.tif 000006