(57)【要約】【課題】処理環境のキューを処理するコンピュータ・プログラム、システムおよびコンピュータ実装方法を提供する。【解決手段】無応答係属中状態から応答係属中状態へのキュー遷移に応答して、割込みが開始される（ステップ２０６、２０８）。この割込み信号はリクエストへの応答がそのキュー上で待機していることをプロセッサに知らせる。そのキューがその割込み能力の効果を発揮するためには、それが割込みのために有効にされる（ステップ２００）。【選択図】図３
2010102688.tif 000002
【特許請求の範囲】
【請求項１】
処理環境のキューを処理し易くするためのコンピュータ・プログラムであって、
前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定するステップであって、前記キューがユーザー・プログラムには間接的にアクセス可能である前記ステップと、
前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定する前記ステップに応答して、前記キューのための割込みを開始するステップと
をコンピュータで実行可能なコンピュータ・プログラム。
【請求項２】
割込みのために前記キューを有効にするステップを更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記有効にするステップが割込みのために前記キューを有効にするようにプロセス付加プロセッサ・キュー（ＰＱＡＰ）命令を用いるステップを含む、請求項２に記載のコンピュータ・プログラム。
【請求項４】
前記ＰＱＡＰ命令が入力のために汎用レジスタ０、１および２を用い、出力のために汎用レジスタ１を用いる、請求項３に記載のコンピュータ ・プログラム。
【請求項５】
入力のために、汎用レジスタ０が割込み制御を示す機能コードと、処理しようとする前記キューを指定するキュー番号とを含み、汎用レジスタ１が前記キューの有効化もしくは無効化を特定する割込みリクエスト・インジケータを含み、汎用レジスタ２が通知インジケータのアドレスを含む、請求項４に記載のコンピュータ・プログラム。
【請求項６】
入力のために、汎用レジスタ１が更に割込みサブクラスの表示を含む、請求項５に記載のコンピュータ・プログラム。
【請求項７】
出力のために、汎用レジスタ１が前記ＰＱＡＰ命令の実行に関する状態を提供する状態インジケータを含む、請求項４に記載のコンピュータ・プログラム。
【請求項８】
前記キューが無応答係属中状態にあるときに前記キュー上のリクエストへの応答を置き、前記無応答係属中状態から前記応答係属中状態に前記キューを遷移するステップを含む、請求項１に記載のコンピュータ・プログラム。
【請求項９】
前記キューが付加プロセッサ・キューであり、前記開始するステップが前記付加プロセッサにより行われる、請求項１に記載のコンピュータ・プログラム。
【請求項１０】
前記付加プロセッサ・キューが、前記処理環境の中央プロセッサおよび前記付加プロセッサに結合されたシステム・メモリに位置づけられる、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
処理環境のキューを処理し易くするためのシステムであって、
ユーザー・プログラムに間接的にアクセスし得るキューを含むシステム・メモリと、
前記システム・メモリに結合された付加プロセッサであって、
前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定し、前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定するのに応答して、前記キューのための割込みを開始する前記付加プロセッサと
を含むシステム。
【請求項１２】
前記システム・メモリに結合された中央プロセッサであって、割込みのために前記キューを有効にする前記中央プロセッサを更に含む、請求項１１に記載のシステム。
【請求項１３】
前記中央プロセッサが、割込みのために前記キューを有効にするようにプロセス付加プロセッサ・キュー（ＰＱＡＰ）命令を用いる、請求項１２に記載のシステム。
【請求項１４】
前記ＰＱＡＰ命令が入力のために汎用レジスタ０、１および２を用い、出力のために汎用レジスタ１を用いる、請求項１３に記載のシステム。
【請求項１５】
入力のために、汎用レジスタ０が割込み制御を示す機能コードと、処理しようとする前記キューを指定するキュー番号とを含み、汎用レジスタ１が前記キューの有効化もしくは無効化を特定する割込みリクエスト・インジケータを含み、汎用レジスタ２が通知インジケータのアドレスを含む、請求項１４に記載のシステム。
【請求項１６】
前記キューがエンプティ状態にあるとき前記キュー上のリクエストへの応答を置く少なくとも１個のプロセッサを更に含み、前記エンプティ状態から非エンプティ状態に前記キューを遷移する、請求項１１に記載のシステム。
【請求項１７】
前記キューが付加プロセッサ・キューである、請求項１１に記載のシステム。
【請求項１８】
処理環境のキューを処理し易くするためのコンピュータに実装された方法であって、
前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定するステップであって、前記キューがユーザー・プログラムには間接的にアクセス可能である前記ステップと、
前記処理環境のキューが無応答係属中状態から応答係属中状態に遷移したことを判定する前記ステップに応答して、前記キューのための割込みを開始するステップと
をコンピュータに実行させるコンピュータ実装方法。
【請求項１９】
割込みのために前記キューを有効にするステップを更に含み、前記有効にするステップが割込みのために前記キューを有効にするようにプロセス付加プロセッサ・キュー（ＰＱＡＰ）命令を用いる、請求項１８に記載のコンピュータ実装方法。
【請求項２０】
前記ＰＱＡＰ命令が入力のために汎用レジスタ０、１および２を用い、出力のために汎用レジスタ１を用い、かつ入力のために汎用レジスタ０が割込み制御を示す機能コードと、処理しようとする前記キューを指定するキュー番号とを含み、汎用レジスタ１が前記キューの有効化もしくは無効化を特定する割込みリクエスト・インジケータを含み、汎用レジスタ２が通知インジケータのアドレスを含む、請求項１９に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概略、処理環境内での処理をし易くすること、特に処理環境の付加プロセッサのキューの処理を、そのキューのための割込みを有効にすることによって、し易くすることに関する。
【背景技術】
【０００２】
付加プロセッサは処理環境の中央プロセッサに従属するもしくは代替するプロセッサである。付加プロセッサへのインターフェースは非同期であり、中央プロセッサと通信するために付加プロセッサによりキューが使用される。１個もしくはそれ以上の中央プロセッサ上で実行する１個もしくはそれ以上のプログラムによりキューの中にリクエストが置かれ、タップが新しいワークを示すために発行され、付加プロセッサがそのリクエストを出し、そのキューの中に応答を置き、そしてそのキューがその応答のために緊密にモニタされる。
【０００３】
今日、いつリクエストが完遂され、いつ応答が与えられるかを決定するには困難がある。現在では、応答の可用性を決定するのに使用されるメカニズムは、中央プロセッサ上で実行するプログラムによりデキュー命令をむやみに発行することである。この命令は応答が特定のキューから取り出されるべく実際に利用可能か否かを知らずに発行される。これはポーリングとして知られており、インターバル・タイマー・メカニズムから典型的には開始される。しかし、ポーリングはスループットに悪影響を与える可能性が有り、幾つかのポーリングは非生産的になりかねない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述のことに基づき、キューの１個もしくはそれ以上前のリクエストの完遂を知らせるための改良されたメカニズムの必要性がある。特に知らせるべきリクエストの完遂を可能にする割込み能力の必要性がある。
【課題を解決するための手段】
【０００５】
このような従来の欠点は克服され、処理環境のキューの処理をし易くするためにコンピュータ・プログラムを提供することを通じて追加的な効果が提供される。このコンピュータ・プログラムは処理回路により読み出し可能で、かつ方法を行うため処理回路により実行するための命令をストアするストレージ媒体上にあるものも含む。前記方法は、例えばキューが無応答係属中状態から応答係属中状態に遷移したことを判定するステップであって、前記キューがユーザー・プログラムに間接的にアクセス可能であるステップと、前記のキューが無応答係属中状態から応答係属中状態に遷移したと判定するのに応答して前記キューの割込みを開始するステップとを含む。
【０００６】
本発明の１つもしくはそれ以上の側面に関する方法およびシステムもまた説明され、特許請求の範囲に示されている。
【０００７】
本発明の技法を通じて追加の特徴および利点が実現される。本発明の他の実施例および側面がここに詳細に記述され、特許請求の範囲に記された発明の一部と考えられる。
【発明を実施するための形態】
【０００８】
本発明のある側面によれば、無応答係属中状態から１個もしくはそれ以上の応答が係属中である状態にキューが遷移するのに応答して割込みが開始されるという割込み機能が提供される。一実施例では、前記キューは付加プロセッサ・キューであり、前記遷移は、ある完遂されたリクエスト（即ち応答）が、無応答を有するキュー上に置かれるときに生じる。
【０００９】
本発明の１つもしくはそれ以上の側面を導入して使用するための処理環境の一実施例を図１に関連して説明する。一例では、処理環境１００が少なくとも１個の中央処理ユニット１０２と、少なくとも１個の付加プロセッサ１０４とを含む。前記の中央処理ユニットはその環境の中央プロセッサであり、一方で前記の付加プロセッサは１個もしくはそれ以上の中央処理ユニットのためのワーク（作業）を行う従属もしくは代替のプロセッサである。各中央処理ユニットは主メモリおよび１個もしくはそれ以上のＩ／Ｏ装置（図示せず）に結合されてもよい。
【００１０】
前記の少なくとも１個の中央処理ユニットおよび前記の少なくとも１個の付加プロセッサはシステム・メモリ１０６に結合される。一例として、このメモリは例えば、間接的にアクセス可能でありかつ中央処理ユニット上で実行するプログラムには見えないハードウエア・システム領域である。（ここで間接的にアクセス可能というのは、そのハードウエア・システム領域もしくはキューが特定の限定された命令によりアクセス可能なだけであり、それ以外ではアクセスできないということを意味する。（例えば、それにはロードすることができない、プログラムはアドレスに気付かない等））システム・メモリ中に置かれるのは１個もしくはそれ以上のキュー１０８である。これらのキューはユーザー・プログラムからは直接見えないが、その代わりにマシン（即ち、そのマシンは１個もしくは複数個の中央処理ユニット、システム・メモリおよび付加プロセッサを含む）の一部と考えられる。１個もしくは複数個の中央処理ユニットはシステム・メモリ中で、例えば、キュー上にリクエストを置くようにおよび／もしくはキューから応答を除去するように命令を発行することによって、そのキューにアクセスする。しかし、付加プロセッサはキューを直接アクセスし、キューからリクエストを取外し、そのリクエストを処理し、そしてキュー上のリクエストに応答を置くといった機能がある。
【００１１】
一実施例では、マシンがインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるｚ/Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）に基づく。例えば、そのマシンはインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるｚ１０（Ｒ）エンタープライズ・クラス・メインフレームである。このｚ/Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）の一実施例が非特許文献１に記されている。ｚ/Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）およびｚ１０（Ｒ）はニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの米国の登録商標である。ここで使用される他の名称もインターナショナル・ビジネス・マシーンズ・コーポレーションもしくは他の会社の登録商標、商標もしくは製品名である。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】「ｚ/Ａｒｃｈｉｔｅｃｔｕｒｅ―Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ（ｚ/Ａｒｃｈｉｔｅｃｔｕｒｅ―動作原理）」ＳＡ２２−７８３２−０６、第７版、２００８年２月刊
【００１３】
本発明の１つもしくはそれ以上の側面を導入し使用する処理環境の他の実施例を図２に関連して説明する。この実施例では、マシンが仮想サポートを含み、複数個のゲスト中央処理ユニット１５２を含む少なくとも１個のホスト中央処理ユニット１５０がある。ホスト中央処理ユニット１５０はシステム・メモリ１５４に結合される。更に、少なくとも１個の付加プロセッサ１５６があり、これもまたシステム・メモリ１５４に結合される。システム・メモリ１５４は１個もしくはそれ以上のキュー１５８を含む。この例でもまた、システム・メモリ１５４、従ってキュー１５８はユーザー・プログラムには見えない。
【００１４】
種々の実施例において、ホストはキュー１５８全体を１個のゲスト専用にすることができ、あるいはキュー１５８を複数のゲスト相互間で多重化することができる。もしキュー１５８が専用にされるべきものであれば、そのホストＣＰＵ（例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるｚ／ＶＭ（Ｒ））は、ホスト・プログラムが介入することのないように解釈上（interpretatively）リクエスト（例えば命令）を直接発行するようにゲストＣＰＵを設定することができる。（ｚ／ＶＭ（Ｒ）はインターナショナル・ビジネス・マシーンズ・コーポレーションの米国の登録商標）しかし、もしキュー１５８が共有されるべきものであれば、多重化もしくは非多重化の状況が有り、これらのリクエストはホスト・プログラムにより途中で捕捉される（intercept）。ホスト・プログラムはこれらのリクエストをゲストになり代わって再発行する。リクエストのペイロードの一部がタグ付けされ、もしくは識別子を一緒に包含させられ、その結果、リクエストの完遂が返されるとき、どのゲストがそのリクエストに関連しているかを知る手段となる。ホスト・プログラムはゲストへのその応答のバックアップを、そのキュー１５８が共有であってもゲストにそれが専用のキュー１５８を有すると信じさせるような態様でエミュレートすることができる。
【００１５】
処理環境の様々な実施例がここで説明されるが、多くの他の環境が本発明の一つもしくはそれ以上の側面を導入し使用してもよい。例えば、他の環境が論理的にパーティションされた１個もしくはそれ以上のマシンを含んでいて各論理パーティションがシステム・メモリに結合されるようなものでもよい。他の環境は本発明の１つもしくはそれ以上の側面から利益を享受できる。
【００１６】
本発明のある側面によれば、キュー１０８およびキュー１５８の一方もしくは両方といった、システム・メモリ中のキューは、そのキュー上でのリクエストの完遂を知らせる割込み能力を提供することによって処理し易くなる。この割込み能力に関連する処理の一実施例を図２を参照しながら説明する。
【００１７】
まず図２には、あるキューのために一つの割込みが発生され得る前にそのキューのために割込みが有効にされる（ステップ２００）。他の例では、中央プロセッサにより発行される命令（以下で説明する）を用いて割込みが有効にされる。
【００１８】
その後、１個もしくはそれ以上の動作、例えば暗号動作が行われる（ステップ２０２）。例えば、１個もしくはそれ以上の暗号化リクエストが１個もしくはそれ以上の中央プロセッサ上で実行する１個もしくはそれ以上のプログラムによってキュー上に置かれる。付加プロセッサがリクエストを取出し、リクエストを処理し、そして応答をキューに置く。もしキューが無応答係属中状態にあるときに一つの応答がキュー中に置かれるなら、応答待ちインジケータがセットされ、無応答係属中状態から応答係属中状態にキューを遷移させる（ステップ２０４）そこでもしそのキューが他の応答を受取るなら、その応答待ちインジケータはセットされたままであり、遷移は起こらない。
【００１９】
そのキューの状態が無応答係属中状態から応答係属中状態に遷移してしまったか判定される（質問２０６）。もしそのキューの状態が遷移してしまっていなければ、１個もしくはそれ以上の動作が何かあればそれを実行する処理が続く。しかし、もしキューの状態が無応答係属中状態から応答係属中状態に遷移してしまっているなら、割込みが付加プロセッサにより中央プロセッサに発生される（ステップ２０８）。これはデキュー（キューから命令を取出せ）命令がそのキューから情報を引出すように発行されることができることを中央プロセッサに知らせる。各デキュー命令はキューから一つの応答を引出す。もしデキュー動作の後、応答待ちインジケータがまだオンであるなら、もう一つのデキュー命令が発行される。これは、インジケータがオフにされて、例示のように、あらかじめ定義された数のデキュー命令の間、更なる応答が無いことを示すまで続く。
【００２０】
一例では、割込みを有効にするための命令が、システム・メモリに結合された中央処理ユニットによって発行される。この命令を発行することによって、キューが割込みのために有効にされ、付加プロセッサがそのキューのためにＣＰＵに割込みを発生するのを許容する。割込みを有効にさせるのに使用される命令の一実施例を図４ないし図７に関連して説明する。一実施例では、その命令がプロセス付加プロセッサ・キュー（ＰＱＡＰ）命令と称される。
【００２１】
ＰＱＡＰの一実施例を図４に関連して説明する。一実施例では、プロセス付加プロセッサ・キュー（ＰＱＡＰ）命令３００はＰＱＡＰ命令を指定するｏｐコード３０２を含む。このＰＱＡＰ命令は、一例では入出力のための種々の汎用レジスタ、例えば図５ないし図７に関連して以下で説明するような汎用レジスタ０、１、および２を含むものを用いる。この命令は実行されるとき、キュー有効化インジケータをセットもしくはリセットし、その特定のキューが割込みのために有効にもしくは無効にされるように付加プロセッサに（内部のマシンのシグナリングを介して）知らせる。
【００２２】
図５に関連して、汎用レジスタ０（ＧＲ０）３０４がその命令の入力として使用され、例えばキューがどのように処理されるべきかを判定する機能コード３０６、および処理すべき付加プロセッサのキューの数を示す付加プロセッサ・キュー数フィールド３０８を例えば含む。この例では、この機能コードが、そのキューのための割込みの有効化もしくは無効化を特定するＡＰキュー割込み制御（ＡＱＩＣ）を指定する。
【００２３】
図６の汎用レジスタ（ＧＲ１）３１０も入力として使用され、例えば、割込みリクエスト・インジケータ（ＩＲ）３１２と割込みサブクラス（ＩＳＣ）３１５とを含む。前者はリクエストがキューを有効にするのか無効にするのかを示し、後者は一例では割込みサブクラスを特定する。汎用レジスタ１も出力用に使用され、出力用で使用されるときは、例えば、ＡＰキュー状態ワード（ＡＰＱＳＷ）３１４を含む。ＡＰ命令の実行によりＡＰキュー状態ワードが戻される。ＡＰキュー状態ワードの一つのフォーマットが図８に関連して説明される。
【００２４】
一例では、ＡＰキュー状態ワード（ＡＰＱＳＷ）のＥ３１６、Ｒ３１８およびＦ３２０（例えばビット位置０−２）に置かれる情報がその命令の完遂時にＡＰキューのコンテントの状態を表す。ＡＰＱＳＷは、例えば以下を含む。
【００２５】
クエリ・エンプティ（Ｅ）３１６：１のとき、全ての未履行リクエストについてキューがエンプティ状態（空）であることを示す。Ｅが１（キューがエンプティ状態）の時は、ＲおよびＦは０である。
【００２６】
応答待ち（Ｒ）３１８：１のとき、応答係属中状態である１個もしくはそれ以上の応答をキューが含むことを示し、従ってそのキューからデキューされるのを待機していることを示す。Ｒが１の時は、Ｅが０である。
【００２７】
キュー・フル（Ｆ）３２０：１のとき、キューがフル（一杯）であることを示す。Ｆが１の時は、Ｅが０である。
【００２８】
割込み有効化（Ｉ）３２２：割込みおよび通知の有効状態をＩ制御（例えばビット７）が示すとき。その後、割込み状態はまた通知状態を暗示する。Ｉが１であるとき、キューが有効にされる。Ｉが０のとき、キューが無効化される。割込みは、一実施例ではキューが有効にされるときのみ係属中にされることができる。Ｉビットのリセット状態は０である。Ｉビットはリセットされもしくは０にされるキューに対しては０である。
【００２９】
ＡＰキューが割込みのために有効にされるとき、割込みが係属中にされる。そのとき応答係属中における無応答状態から応答係属中における１個もしくはそれ以上の応答状態に応答待ちキュー状態が変化する。換言すると、Ｒビットが０から１に変化する時点で割込み状態が係属中にされる。一旦、割込みが係属中にされると、それもまた提供されるか否かに関わらず、応答係属中状態で応答がなくなるまではその後の割込みが係属中にはされない。換言すると、Ｒビットが次に０から１に変化するときまでその後の割込みが係属中にはされない。
【００３０】
キュー割込みが係属中であるとき、割込みのためそのキューを無効化することが、その割込み係属中状態をクリアするかもしれないし、クリアしないかもしれない。
【００３１】
割込みのためにキューが有効にされるとき、応答通知バイトがゼロでない値にストアされる。そのとき、例えば（１）キューが０でないアドレスに位置決めされた通知インジケータ・バイトを割り当て、（２）キューが応答係属中状態においてエントリを有さず（Ｒが０）、そして（３）キュー上の応答が応答係属中状態に置かれる（Ｒが０になる）。通知インジケータ・バイトはＩＲビットが１のとき、キュー割込み制御機能の実行中、０にされる。
【００３２】
応答コード３２４：このフィールドは命令の応答コードを含む。
【００３３】
汎用レジスタ２は、図７の参照番号３２６にその一つの例が図示されているが、命令への入力としても使用される。それは、一例では、通知インジケータ・フィールド３２８（例えば、６４ビット・アドレス）の、ゼロでない絶対アドレス（例えば、主ストレージ再配置ゾーンの最初に対して）を含む。このアドレスは特定のキューと関連する。この特定のキューに対し或る割込みが係属中にされると、このキューが割込み係属中であることを知らせるためにこのアドレスにインジケータ（例えば、何らかのゼロでない値）が置かれる。従って、或る中央処理装置のために割込みが生成されると、その中央処理装置はその割込みがこのキューのために発行されたのかを判定するためにこのフィールドをチェックする。もしそうであれば、このキューのためにデキュー命令が発行される。そうでなければ、このキューのためにデキュー命令が発行されない。この同じチェックがこの中央処理装置により管理される他のキューのために為される。
【００３４】
汎用レジスタ２が、例えばテストＡＰＱ機能の成功裡の完遂とともに使用される。それはそのＡＰタイプとその構成における各ＡＰＱ上のキュー・エントリの数を含む。
【００３５】
ＡＰキュー割込み機能制御（ＡＱＩＣ）に関する更なる詳細を以下に説明する。 一実施例では、ＩＲ（３１２、図６）が１のとき、
【００３６】
割込みのためキューの有効化がリクエストされる。
【００３７】
割込みサブクラスが汎用レジスタ１のＩＳＣフィールド３１５において特定される。このフィールドはこのキューのための割込み有効化の追加の制御を特定する。（他の実施例では、このフィールドを使用する必要がない。）
【００３８】
汎用レジスタ２は通知インジケータ・バイトの、ゼロでない絶対アドレスを含む。そのバイトは一実施例ではキー制御保護もしくは低アドレス保護を前提としない。もし汎用レジスタ２のコンテントがゼロもしくはそうでなければ無効であるとするなら、ＰＱＡＰの実行が特定の条件のコード（例えば、条件コード０３）およびＡＰキュー状態ワードにおける特定の応答コード（例えば、０６）とともに完遂する。
【００３９】
ＡＰキュー状態ワードのＩビットが１であるとき、特定の割込みサブクラス上に割込みを提供するようにそのキューが有効化される。
【００４０】
もしキューが割込みのために既に有効化されているか、または非同期の有効化もしくは無効化のプロセスが未だ完遂されていないなら、ＰＱＡＰの実行がＡＰキュー状態ワードにおける定義された条件コード（例えば、０３）と特定の応答コード（例えば、０７）とともに完遂する。
【００４１】
ＩＲが０のとき、
【００４２】
割込みのためキューの無効化がリクエストされる。
【００４３】
汎用レジスタ１のＩＳＣフィールドが無視される。
【００４４】
汎用レジスタ２のコンテントが無視される。
【００４５】
もしキューが割込みのために既に無効化されているかまたは非同期の無効化もしくは有効化のプロセスが未だ完遂されていなければ、ＰＱＡＰの実行がＡＰキュー状態ワードにおける特定の状態コード（例えば、０３）および特定の応答コード（例えば０７）とともに完遂する。
【００４６】
ここで説明したとおり、前述の命令は割込みのために特定のキューを有効化するのに使用され、一旦有効化されると、割込みがそのキューのために係属中にされ得る。これがポーリングの必要性をなくす。
【００４７】
これまで詳述したのは複数のキュー、特にこれらのキューがユーザー・プログラムに間接的にアクセス可能なシステム・メモリ中にストアされる、付加プロセッサのキューのための割込みを提供する能力を有する一つの実施例である。そのようなキューは、例えば暗号化されたデータまたは他のデータを含む異なるデータ・ペイロードのために使用されることができる。本発明の一つの側面に従えば、完遂されたリクエストがキューをデキューされるべき無応答状態から、デキューされるのに利用可能な１個もしくはそれ以上の応答状態に変化を生じさせるとき割込みが係属中にされる。そのような割込み機能を利用することによってポーリングに関連する過剰さが除かれる。
【００４８】
本発明の一つもしくはそれ以上の側面は、ｚ１０（Ｒ）マシン、およびｅＣｌｉpｓ  ｚ６マシンに限定されないがそれらを含む多くのタイプのマシン上で、ｚ／ＯＳ（Ｒ）、ｚ／Ｌｉｎｕｘ、ｚ／ＶＭ（Ｒ）オペレーティング・システムに限定されないがそれらを含む種々のオペレーティング・システムとともに使用され得る。ｚ／ＯＳ（Ｒ）はインターナショナル・ビジネス・マシーンズ・コーポレーションの米国登録商標である。前述のものは例として挙げられたが、多くの他のタイプのマシンやオペレーティング・システムが本発明の精神を逸脱せずに使用されることができる。更に多くのタイプの処理環境が本発明の１つもしくはそれ以上の側面を使用することができる。例として、或る環境は複数個のＣＰＵおよび前記複数個のＣＰＵにサービスをする１個の付加プロセッサ（ＡＰ）を含むことができ、そこにはＣＰＵとＡＰとの１対１対応があり得、また複数個のＣＰＵおよび複数個のＡＰがあり得、あるいはその任意の組み合わせがあり得る。
【００４９】
一例としてｚ／ＶＭを用いるアーキテクチャにおいては、ホスト・プログラムは割込みを得るものであるが、ゲスト・プログラムもまたその能力を利用している。しかし、ゲストへの割込みは行われない。むしろ、ホスト・プログラムは生産的なデキュー命令（例えばＤＱＡＰ）を介しての割込みを使用し、そしてその情報を用いて次のディスパッチのときにゲストへの割込みを注入する。これはゲストにそれが割込まれたという印象を与えるが、実際にはホストにおける割込みを受けたものであり、ゲストへのディスパッチ優先度を高めるイニシアチブでもある。
【００５０】
本発明の一つもしくはそれ以上の側面は、例えばコンピュータ使用可能媒体を有する「もの(article of manufacture)」（例えば、１個もしくはそれ以上のコンピュータ・プログラム製品）に含まれることができる。この媒体はその中に、例えばコンピュータ読取り可能プログラム・コード手段または論理（例えば、命令、コード、コマンド等）を有して、本発明の機能を提供し、その能力を発揮し易くする。「もの」はコンピュータ・システムの部品としてまたは別個に市販されるものとして含まれることができる。
【００５１】
本発明の１つもしくはそれ以上の側面を実装する「もの(an article ofmanufacture)」またはコンピュータ・プログラム製品の一例を図９に関連して説明する。コンピュータ・プログラム製品４００は、本発明の一つもしくはそれ以上の側面を提供し、実現し易くするためにコンピュータ読取り可能なプログラム・コード手段または論理４０４をその上にストアする例えば１個もしくはそれ以上のコンピュータ使用可能媒体４０２を含む。前記の媒体は電子的、磁気的、光学的、電磁気的な、もしくは赤外線または半導体のシステム（装置またはデバイス）、あるいは伝播媒体であり得る。コンピュータ読取り可能な媒体の例は、半導体メモリもしくは固体メモリ、磁気テープ、取外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハード・ディスクおよび光ディスクを含む。光ディスクの例は、ＣＤ−ＲＯＭ（コンパクト・ディスクの読み出し専用メモリ）、ＣＤ−Ｒ／Ｗ（コンパクト・ディスクの読み書きメモリ）およびＤＶＤを含む。
【００５２】
１個もしくはそれ以上のコンピュータ・プログラム・コード手段もしくは論理により定義される１個もしくはそれ以上の相互に関わりあうモジュールの一連のプログラム命令もしくは論理アセンブリが、本発明の１つもしくはそれ以上の側面の性能を指向する。
【００５３】
好適には、応答がキュー上に存在するか決定するための無駄なポーリングをなくす割込み機能が提供される。これはスループットを増やすことにより処理をし易くする。
【００５４】
種々のタイプの実施例を前述したが、これらは例示に過ぎない。本発明の１つもしくはそれ以上の側面から他のタイプのコンピューティング環境が有用であり得る。一例として、環境が、特定のアーキテクチャ（例えば、命令実行、アドレス変換などの立案された機能、立案されたレジスタなどの立案された設備を含む）またはそのサブセットが（例えば、プロセッサおよびメモリを有するネーティブのコンピュータ・システム上で）エミュレートされるエミュレータ（ソフトウエアまたは他のエミュレーション機構）を含んでいてもよい。そのような環境においては、そのエミュレータの１つもしくはそれ以上のエミュレーション機能が、そのエミュレータを実行するコンピュータがエミュレートされる能力とは異なるアーキテクチャを有しているとしても、本発明の一つもしくはそれ以上の側面を実装することができる。一例として、エミュレーション・モードでは、エミュレートされている特定の命令または動作が解読され、適切なエミュレーション機能が個々の命令または動作を実装するために打ち立てられる。
【００５５】
エミュレーション環境では、ホスト・コンピュータが例えば、命令およびデータをストアするメモリ、前記メモリから命令をフェッチし、そしてそのフェッチされた命令のためにローカルなバッファを選択的に提供する命令フェッチ・ユニット、前記命令フェッチ・ユニットを受け、フェッチされてきた命令のタイプを決定する命令解読ユニット、および命令を実行する命令実行ユニットを含む。実行はメモリのためのレジスタにデータをロードするステップ、レジスタからメモリにデータを戻すようにストアするステップ、あるいは解読ユニットにより決定されるような、幾つかのタイプの演算動作または論理動作を実行するステップを含むことができる。一実施例では、各ユニットがソフトウエアで実装される。例えば、これらのユニットによって行われる動作はエミュレータ・ソフトウエア内部の１つもしくはそれ以上のサブルーチンとして実装される。
【００５６】
更に、プログラム・コードをストアし、または実行し、またはその両方を行うのに適当なデータ処理システムが使用可能であるが、それはメモリ・エレメントに直接的に、またはシステム・バスを介して間接的に結合された少なくとも１個のプロセッサを含む。前記メモリ・エレメントは、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、ならびに実行中の大容量ストレージからコードを取出すべき回数を減らすために少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含む。
【００５７】
入出力装置またはＩ／Ｏ装置（キイボード、ディスプレイ、ポインティング・デバイス、ＤＡＳD、テープ、ＣＤ、ＤＶＤ、サムドライブ、および他のメモリ媒体など、これらに限定されないがこれらを含む）がシステムに直接に、あるいは介在するＩ／Ｏコントローラを介して結合されることができる。ネットワーク・アダプタもまたシステムに結合されてもよく、そうするとデータ処理システムを、介在する私的または公的なネットワークを介し他のデータ処理システム、遠隔のプリンタまたはストレージ装置と結合されるようにすることができる。モデム、ケーブル・モデムおよびイーサーネット（Ethernet）カードが利用可能なタイプのネットワーク・アダプタの幾つかの例に過ぎない。
【００５８】
本発明の１つもしくはそれ以上の側面の機能がソフトウエア、ハードウエア、あるいはそれらの何らかの組合せで実装されることができる。本発明の機能を行うためにマシンにより実行可能な１個もしくはそれ以上の命令よりなる少なくとも１個のプログラムを含む前記マシンにより読み取り可能な少なくとも一つのプログラム・ストレージ装置を提供することができる。
【００５９】
ここに図示するフローチャートは単なる例示である。本発明の精神から逸脱せずに、これらの図またはここで説明したステップ（ないし動作）の多くの変形例があり得る。例えば、これらのステップを異なる順序で実行してもよいし、ステップを加除修正してもよい。これらの変形例の全てが特許請求の範囲に記した発明の一部と考えられる。
【００６０】
実施例を図示し、ここに詳細に説明してきたが、種々の変形、追加、置換等が本発明の精神から逸れることなく為し得ること、従ってこれらが特許請求の範囲で規定するようにこの発明の範囲内であると考えられることが当業者には明らかである。
【００６１】
本発明の１つもしくはそれ以上の側面が特許請求の範囲に特定され明記されている。前述および他の目的、特徴および効果は添付図面とともに以上の詳細な説明から明らかである。
【図面の簡単な説明】
【００６２】
【図１】本発明の１つもしくはそれ以上の側面を導入しそして使用するための一例を示す。
【図２】本発明の１つもしくはそれ以上の側面を導入しそして使用するための処理環境の他の例を示す。
【図３】本発明のある側面に従ってキュー上のリクエストの完遂を知らせるため割込みを用いるのに関連する論理回路の一実施例を示す。
【図４】本発明のある側面に従ってキューの割込みを有効にするために使用される命令のコンポーネントを示す。
【図５】本発明のある側面に従ってキューの割込みを有効にするために使用される命令のコンポーネントを示す。
【図６】本発明のある側面に従ってキューの割込みを有効にするために使用される命令のコンポーネントを示す。
【図７】本発明のある側面に従ってキューの割込みを有効にするために使用される命令のコンポーネントを示す。
【図８】本発明のある側面に従ってキューの割込みを有効にするために使用される命令のコンポーネントを示す。
【図９】本発明の１つもしくはそれ以上の側面を導入したコンピュータ・プログラムを示す。
【符号の説明】
【００６３】
１００  処理環境
１０２  中央処理ユニット
１０４  付加プロセッサ
１０６  システム・メモリ
１０８  キュー
１５０  ホストＣＰＵ
１５２  ゲストＣＰＵ
１５４  システム・メモリ
１５６  付加プロセッサ
１５８  キュー
【図１】
2010102688.tif 000003
【図２】
2010102688.tif 000004
【図３】
2010102688.tif 000005
【図４】
2010102688.tif 000006
【図５】
2010102688.tif 000007
【図６】
2010102688.tif 000008
【図７】
2010102688.tif 000009
【図８】
2010102688.tif 000010
【図９】
2010102688.tif 000011