(57)【特許請求の範囲】
【請求項１】
複数のカウンタのためのサービス命令を実施する方法であって、
プロセッサにより、前記サービス命令に基づいてカウンタ・セットを決定することと、
前記プロセッサにより、前記カウンタ・セットへのアクセスが許可されるかどうかを判定することと、
前記プロセッサにより、前記サービス命令に基づき、かつ、前記アクセスが許可されるとの判定に応答して、メモリ内のストレージのブロックを求めることと、
前記アクセスが許可されるとの判定に応答して、前記カウンタ・セット内の前記複数のカウンタを抽出することと、
前記プロセッサにより、前記複数のカウンタを前記ストレージのブロック内に格納することと、
を含む、方法。
【請求項２】
前記サービス命令は、要求されるカウンタの数を識別する第１のオペランドと、前記ストレージのブロックのアドレスを識別する第２のオペランドとを含む、請求項１に記載の方法。
【請求項３】
前記カウンタ・セットは、前記サービス命令のビット・フィールドにより決定される、請求項１に記載の方法。
【請求項４】
前記メモリ上の前記ストレージのブロックを求めることは、
第１のビット・フィールドを第２のビット・フィールドと連結してある数を生成することと、
前記数を第３のビット・フィールドにより指定されるレジスタのコンテンツに加えて、前記メモリ内の前記ストレージのブロックのアドレスを生成することと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記サービス命令により識別される要求されるカウンタの数と、前記カウンタ・セットに対応するカウンタの数とを比較することと、
前記比較に基づいて条件コードを出力することと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記サービス命令に関するエラー条件を識別することと、
割り込みを出力して前記方法を終了させることと、
をさらに含む、請求項１に記載の方法。
【請求項７】
複数のカウンタのためのサービス命令を実施するためのシステムであって、
プロセッサ及びメモリを含み、前記プロセッサは、
前記サービス命令に基づいてカウンタ・セットを決定し、
前記カウンタ・セットへのアクセスが許可されるかどうかを判定し、
前記サービス命令に基づき、かつ、前記アクセスが許可されるとの判定に応答して、メモリ内のストレージのブロックを求め、
前記アクセスが許可されるとの判定に応答して、前記カウンタ・セット内の前記複数のカウンタを抽出し、
前記複数のカウンタを前記ストレージのブロック内に格納する、
ように構成される、システム。
【請求項８】
前記サービス命令は、要求されるカウンタの数を識別する第１のオペランドと、前記ストレージのブロックのアドレスを識別する第２のオペランドとを含む、請求項７に記載のシステム。
【請求項９】
前記カウンタ・セットは、前記サービス命令のビット・フィールドにより決定される、請求項７に記載のシステム。
【請求項１０】
前記メモリ上の前記ストレージのブロックを求めることについて、前記プロセッサは、
第１のビット・フィールドを第２のビット・フィールドと連結してある数を生成し、
前記数を第３のビット・フィールドにより指定されるレジスタのコンテンツに加えて、前記メモリ内の前記ストレージのブロックのアドレスを生成する、
ようにさらに構成される、請求項７に記載のシステム。
【請求項１１】
前記プロセッサは、
前記サービス命令により識別される要求されるカウンタの数と、前記カウンタ・セットに対応するカウンタの数とを比較し、
前記比較に基づいて条件コードを出力する、
ようにさらに構成される、請求項７に記載のシステム。
【請求項１２】
前記プロセッサは、
前記サービス命令に関するエラー条件を識別し、
割り込みを出力して前記サービス命令の実施を終了させる、
ようにさらに構成される、請求項７に記載のシステム。
【請求項１３】
コンピュータ・プログラムであって、前記コンピュータ・プログラムは、複数のカウンタのためのサービス命令を実施するプログラム命令を含み、前記プログラム命令は、プロセッサにより実行可能であり、前記プロセッサに、
前記サービス命令に基づいてカウンタ・セットを決定させ
前記カウンタ・セットへのアクセスが許可されるかどうかを判定させ、
前記サービス命令に基づき、かつ、前記アクセスが許可されるとの判定に応答して、メモリ内のストレージのブロックを求めさせ、
前記アクセスが許可されるとの判定に応答して、前記カウンタ・セット内の前記複数のカウンタを抽出させ、
前記複数のカウンタを前記ストレージのブロック内に格納させる、
コンピュータ・プログラム。
【請求項１４】
前記サービス命令は、要求されるカウンタの数を識別する第１のオペランドと、前記ストレージのブロックのアドレスを識別する第２のオペランドとを含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記カウンタ・セットは、前記サービス命令のビット・フィールドにより決定される、請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
前記メモリ上の前記ストレージのブロックを求めることについて、前記プログラム命令は、前記プロセッサによりさらに実行可能であり、前記プロセッサに、
第１のビット・フィールドを第２のビット・フィールドと連結してある数を生成させ、
前記数を第３のビット・フィールドにより指定されるレジスタのコンテンツに加えて、前記メモリ内の前記ストレージのブロックのアドレスを生成させる、
請求項１３に記載のコンピュータ・プログラム。
【請求項１７】
前記プログラム命令は、前記プロセッサによりさらに実行可能であり、前記プロセッサに、
前記サービス命令により識別される要求されるカウンタの数と、前記カウンタ・セットに対応するカウンタの数とを比較させ、
前記比較に基づいて条件コードを出力させる、
請求項１３に記載のコンピュータ・プログラム。
【請求項１８】
前記プログラム命令は、前記プロセッサによりさらに実行可能であり、前記プロセッサに、
前記サービス命令に関するエラー条件を識別させ、
割り込みを出力して前記サービス命令の実施を終了させる、
請求項１３に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、単一回のアクセス・チェックに基づいた複数のカウンタのサービスに関し、より具体的には、カウンタの効率的なサービスを可能にするために、そのカウンタ・セットに対する１回のアクセス制御チェックにより、カウンタ・セット内の全てのカウンタを保存するための命令に関する。
【背景技術】
【０００２】
コンピュータ・システムの複雑さが増すにつれて、ハードウェア・インストルメンテーションのカウンタの数が、ハードウェア性能の洞察力を得るために増大してきた。ハードウェアを用いてクライアント・アプリケーションにサービスするオペレーティング・システムは、これらのインストルメンテーション・カウンタを集めて、ワークロードがどのように実施されるかについての洞察力を得る。これらのインストルメンテーション・カウンタは、多くの場合、共通のサブシステムに関する情報を集めるカウンタのセットにグループ化される。カウンタの各セットは、関連した作動及び許可制御（activationand authorization control）を含む。現在、インストルメンテーション・カウンタがサービスされるとき、一度に１つのカウンタしか抽出されない。従って、カウント・セット内の各カウンタについて、そのカウンタに関するアクセス・チェックを行う必要があり、そのことは付加的なオーバーヘッド処理をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
複数のカウンタのためのサービス命令（servicing instruction）を実施するための方法、システム、及びコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００４】
本発明の一実施形態によると、複数のカウンタのためのサービス命令を実施する方法であって、サービス命令に基づいてカウンタ・セットを決定することと、前記カウンタ・セットへのアクセスが許可されるかどうかを判定することと、サービス命令に基づき、かつ、アクセスが許可されるとの判定に応答して、メモリ内のストレージのブロックを求めることと、アクセスが許可されるとの判定に応答して、カウンタ・セット内の複数のカウンタを抽出することと、前記複数のカウンタをストレージのブロック内に格納することと、を含む方法である。
【０００５】
本発明の技術を通して、付加的な特徴及び利点が実現される。本発明の他の実施形態及び態様が、本明細書に詳細に説明され、特許請求される本発明の一部とみなされる。これらの利点及び特徴と共に本発明をより良く理解するために、説明及び図面を参照されたい。
【０００６】
本発明とみなされる主題は、本明細書の最後にある特許請求の範囲において具体的に示され、明確に特許請求されている。本発明の上記及び他の特徴及び利点は、添付図面と併用される以下の詳細な説明から明らかである。
【図面の簡単な説明】
【０００７】
【図１】サービス・システム（servicing system）のコンピューティング・デバイスの概略図を示す。
【図２】サービス・システムのコンピューティング・デバイスの概略図のコンポーネントをさらに示す。
【図３】サービス・システムのコンピューティング・デバイスの概略図のコンポーネントをさらに示す。
【図４】サービス・システムによるプロセス・フローを示す。
【図５】サービス命令の図を示す。
【図６】サービス・システムによる別のプロセス・フローを示す。
【発明を実施するための形態】
【０００８】
上述のように、カウンタの現在の追跡及び抽出方法は、オペレーティング・システムに対して付加的なオーバーヘッドをもたらす。従って、必要とされるのは、カウンタの効率的なサービスを可能にするために、そのカウンタ・セットに対する１回のアクセス制御チェックだけで、カウンタ・セット内の全てのカウンタを保存するための命令である。
【０００９】
一般に、本明細書で開示される本発明の実施形態は、ストレージのためのグループ抽出による、複数のカウンタのサービスのための命令を実行する、サービス・システム、方法、及び／又はコンピュータ・プログラム製品（「サービス・システム」）を含むことができる。例えば、複数のカウンタの各々は、複数の許可（authorization）制御又はアクセス制御と関連付けられる。さらに、幾つかのカウンタは、重複する許可制御のセットと関連付けることができる（従って、カウンタ・セットにグループ化される）。次に、命令に基づいて、サービス・システムは、カウンタ・セットを選択し、カウンタ・セットに関する許可制御を検証又はチェックする。ひとたびサービス・システムが許可制御を確認すると、サービス・システムは、複数のカウンタからそのカウンタ・セットと関連した指定された数のカウンタをグループとして抽出し、カウンタ・グループをストレージのブロック内に格納する。このように、サービス・システムでは、各カウンタの許可制御が個別に処理されるのではなく、従って、処理リソースを個別に消費しないという点で複数のカウンタのサービスの効率を向上させる。
【００１０】
ここで図１を参照すると、コンピューティング・デバイス１１２を含むサービス・システム１００の一例が示される。サービス・システム１００は、好適なコンピューティング・ノードの単なる一例に過ぎず、本明細書で説明される本発明の実施形態の使用範囲及び操作性に関するいずれかの限定を示唆することを意図するものではない（実際に、付加的又は代替的なコンポーネント及び／又は実装を用いてもよい）。つまり、サービス・システム１００及びその中の要素は、多くの異なる形態をとることができ、複数の及び／又は代替的なコンポーネント及びファシリティを含むことができる。さらに、本明細書で説明されるように、サービス・システム１００は、いずれの数及び組み合わせのコンピューティング・デバイス、並びに種々の通信技術を利用するネットワークを含むこと、及び／又は利用することができる。これに関係なく、サービス・システム１００は、本明細書で述べられる操作性のいずれも実装及び／又は実施することが可能である。
【００１１】
サービス・システム１００において、多数の他の汎用又は専用コンピューティング・システム環境又は構成で動作できるコンピューティング・デバイス１１２が存在する。サービス・システム１００及び／又はコンピューティング・デバイス１１２のようなシステム及び／又はコンピューティング・デバイスは、決してこれらに限定されるものではないが、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより流通されるＡＩＸ  ＵＮＩＸ及びｚ／ＯＳ（登録商標）オペレーティング・システムのバージョン及び／又は種類、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システム、Ｕｎｉｘオペレーティング・システム（例えば、カリフォルニア州Ｒｅｄｗｏｏｄ  Ｓｈｏｒｅｓ所在のＯｒａｃｌｅ  Ｃｏｒｐｏｒａｔｉｏｎにより流通されるＳｏｌａｒｉｓオペレーティング・システム）、Ｌｉｎｕｘ（登録商標）オペレーティング・システム、カリフォルニア州Ｃｕｐｅｒｔｉｎｏ所在のＡｐｐｌｅ  Ｉｎｃ．により流通されるＭａｃ  ＯＳ  Ｘ及びｉＯＳオペレーティング・システム、カナダ国Ｗａｔｅｒｌｏｏ所在のＲｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎにより流通されるＢｌａｃｋＢｅｒｒｙ  ＯＳ、及びＯｐｅｎ  Ｈａｎｄｓｅｔ  Ａｌｌｉａｎｃｅにより開発されたＡｎｄｒｏｉｄオペレーティング・システムを含む、多数のコンピュータ・オペレーティング・システムのいずれかを利用することができる。コンピューティング・デバイス１１２と共に用いるのに好適であり得るコンピューティング・システム、環境、及び／又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、コンピュータ・ワークステーション、サーバ、デスクトップ、ノートブック、ネットワーク・デバイス、メインフレーム・コンピュータ・システム、及び上述のシステム若しくはデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【００１２】
コンピューティング・デバイス１１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造等を含むことができる。コンピューティング・デバイス１１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【００１３】
図１に示されるように、サービス・システム１００のコンピューティング・デバイス１１２は、サービス・システム１００の動作及び機能、その方法、及び／又はその要素に基づいて改善される、汎用コンピューティング・デバイスの形で示される。コンピューティング・デバイス１１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット（例えば、複数のスレッド１１５をサポートする少なくともコア１１４ａを含むプロセッサ１１４；例えば、２つ又はそれより多いスレッド１１５を含むプロセッサ１１４のコア１１４ａを含むサービス・システム１００；例えばカウンタ・セット１１６ａ及び許可制御１１６ｂに分割されるカウンタを含むプロセッサ１１４）、メモリ１１７、及びプロセッサ１１４及びメモリ１１７を含む種々のシステム・コンポーネントを結合するバス１１８を含むことができる。コンピューティング・デバイス１１２はまた、一般的に、種々のコンピュータ・システム可読媒体も含む。こうした媒体は、コンピューティング・デバイス１１２によりアクセス可能な任意の利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能及び取り外し不能媒体の両方とを含む。
【００１４】
プロセッサ１１４は、メモリ１１７からコンピュータ可読プログラム命令を受け取り、これらの命令を実行し、それにより、サービス・システム１００により定められる１つ又は複数のプロセスを実施することができる。プロセッサ１１４は、算術演算、論理演算、及び／又は入力／出力操作を実施することによりコンピュータ可読プログラム命令を実行する、コンピューティング・デバイス１１４により利用されるいずれかの処理ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせを含むことができる。プロセッサ１１４及びコア１１４ａのハードウェア・サブユニットの例として、これらの限定されるものではないが、算術演算及び論理演算を実施する算術論理ユニット、メモリから命令を抽出し、デコードし、実行する制御ユニットが挙げられる。
【００１５】
図２は、コントローラ２１５に結合されたプロセッサ１１４を含むコンピューティング環境の１つの実施形態を示す。一例において、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（登録商標）に基づいたコンピューティング環境は、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるＳｙｓｔｅｍ  ｚ（登録商標）サーバを含む。コンピューティング・デバイス１１２は、例えば、１つ又は複数のパーティション（例えば、論理パーティションＬＰ１〜ＬＰｎ）を管理するレベル０のハイパーバイザ２１４（例えば、論理パーティション・マネージャ）を実行している１つ又は複数の物理コア（例えば、コア１〜コアｍ）を含むことができる。コントローラ２１５は、異なるコア要求の間のアービトレーション（arbitration）を担当する集中論理を含むことができる。例えば、コントローラ２１５は、メモリ・アクセス要求を受け取ると、そのメモリ位置へのアクセスが許容されるかどうかを判定し、許容される場合には、その複合体内のプロセッサ間のメモリの一貫性を維持しながら、そのメモリ位置のコンテンツをプロセッサ１１４に提供する。別のコントローラ２１５は、図１に示されるＩ／Ｏインターフェース１３０及びネットワーク・アダプタ１３２への及びこれらからの要求を管理することができる。
【００１６】
物理コアは、論理パーティションに割り当てられる。論理パーティションは、１つ又は複数の論理プロセッサを含むことができ、その各々は、パーティションに割り当てられた物理プロセッサ・リソースの全て又は割り当て分（share）を表す。物理コアは、特定のパーティションの論理コア専用としてもよく、基礎となるコアの物理プロセッサ・リソースはそのパーティションのために予約されるか、又は、別のパーティションの論理コアと共有してもよく、基礎となるコア・リソースの物理プロセッサ・リソースは、潜在的に別のパーティションが利用できる。各論理パーティションは、別個のシステムとして機能することができる。つまり、各論理パーティションは、独立してリセットし、所望であれば、最初にオペレーティング・システム（例えば、オペレーティング・システムＯＳ１〜ＯＳｎ）をロードし、異なるプログラムで動作することができる。論理パーティションにおいて実行されるオペレーティング・システム又はアプリケーション・プログラムは、十分かつ完全なシステムにアクセスできるように見えるが、実際は、システム全体の一部しか利用できない。ハードウェア及びライセンス内部コード（Licensed Internal Code）（ファームウェア、マイクロコード、又はミリコードとも呼ばれる）の組み合わせは、１つの論理パーティション内のプログラムが、異なる論理パーティション内のプログラムにアクセスしない又はこれを妨げないようにする。これにより、幾つかの異なる論理パーティションが、タイム・スライス方式で単一又は複数の物理コア上で動作することが可能になる。１つの実施形態において、各物理コアは、１つ又は複数の中央プロセッサ（本明細書では「物理スレッド」とも呼ばれる）を含む。図２に示される例において、各論理パーティションは、１つ又は複数の論理パーティションによって異なり得る常駐オペレーティング・システムを有する。各論理パーティションは、オペレーティング・システムが動作可能な仮想マシン又はゲスト構成の一例である。
【００１７】
図２に示される実施形態において、論理パーティションＬＰ１〜ＬＰｎは、物理コア  コア１〜コアｍ上で実行されるファームウェアが実装するレベル０のハイパーバイザ２１４によって管理される。論理パーティションＬＰ１〜ＬＰｎ及びハイパーバイザ２１４はそれぞれ、物理コア  コア１〜コアｍと関連した中央ストレージのそれぞれの部分（メモリ）に常駐する１つ又は複数のプロセッサを含む。ハイパーバイザ２１４の一例は、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるＰｒｏｃｅｓｓｏｒ  Ｒｅｓｏｕｒｃｅ／Ｓｙｓｔｅｍｓ  Ｍａｎａｇｅｒ（ＰＲ／ＳＭ（登録商標））である。
【００１８】
図３は、複数のカウンタ・セット１１６ａ及び対応する複数の許可制御１１６ｂの１つの実施形態を示し、ここで、各カウンタ（例えば、ＣＮＴＲ１．１、ＣＮＴＲ１．２、ＣＮＴＲ１．３、ＣＮＴＲ２．１、ＣＮＴＲ２．２、ＣＮＴＲ２．３、ＣＮＴＲ２．４、ＣＮＴＲ３．１、ＣＮＴＲ３．２、及びＣＮＴＲ  Ｚ．Ｙ）が、１の許可制御（例えば、ＡＣ１、ＡＣ２、ＡＣ３、及びＡＣ  Ｚ）と関連付けられる。次に、命令に基づいて、サービス・システム１００は、カウンタ・セット１１６ａ．１、１１６ａ．２、１１６ａ．３等を選択し、対応する許可制御ＡＣ１、ＡＣ２、ＡＣ３等を検証又はチェックする。カウンタは、プロセッサ１１４のハードウェア内の多くのレジスタの１つとすることができるバイナリ・プログラム・カウンタとすることができる。さらに、カウンタは、各々が１ビットの値のカウンタを表すバイナリ・ラッチのバンクとすることができ、ここで、ビット数（カウンタの幅）は、プロセッサ・アーキテクチャに関連する。カウンタがバイナリ・カウンタである場合、パルスがそのカウント・アップ入力に適用されると、カウンタはインクリメントすることができる。
【００１９】
図１に戻ると、メモリ１１７は、コンピューティング・デバイス１１２のプロセッサ１１４により使用される、サービス・システム１００により提供されるようなコンピュータ可読プログラム命令を保持及び格納する有形デバイスを含むことができる。メモリ１１７は、ランダム・アクセス・メモリ（ＲＡＭ）１２０、キャッシュ・メモリ１２２、及び／又はストレージ・システム１２４のような、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。バス１１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート（accelerated graphics port）、及び種々のバス・アーキテクチャのいずれかを用いたプロセッサ若しくはローカル・バスを含む、バス構造の幾つかのタイプのいずれかの１つ又は複数を表す。限定ではなく例証として、そのようなアークテクチャとして、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスが挙げられる。
【００２０】
単なる例証として、ストレージ・システム１２４は、取り外し不能の不揮発性磁気媒体（図示されておらず、一般的には「ハード・ドライブ」と呼ばれる）との間で読み出し及び書き込みを行うために提供することができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フレキシブル・ディスク」）との間で読み出し及び書き込みを行うための磁気ディスク・ドライブ、及び、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光学媒体などの、取り外し可能な不揮発性光ディスクとの間で読み出し及び書き込みを行うための光ディスク・ドライブを提供することができる。そのような場合、各々を１つ又は複数のデータ媒体インターフェースによって、バス１１８に接続することができる。以下にさらに示され、説明されるように、メモリ１１７は、本発明の実施形態の動作を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。ストレージ・システム１２４（及び／又は、メモリ１１７）は、データベース、データ・リポジトリ、又は他のデータ・ストアを含むことができ、かつ、階層データベース、ファイル・システム内のファイルのセット、プロプライエタリ・フォーマット（proprietary format）のアプリケーション・データベース、リレーショナル・データベース管理システム（ＲＤＢＭＳ）等を含む、様々な種類のデータを格納し、それにアクセスし、それを取り出すための様々な種類の機構を含むことができる。ストレージ・システム１２４は、一般に、上述したものの１つのようなコンピュータ・オペレーティング・システムを利用し、種々の方式のいずれか１つ又は複数でネットワークを介してアクセスされる、示されるようなコンピューティング・デバイス１１２内に含ませることができる。
【００２１】
プログラム・モジュール１２８のセット（例えば、少なくとも１つ）を有するプログラム／ユーティリティ１２６は、限定ではなく例証としてメモリ１１７、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール及びプログラム・データ内に格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール及びプログラム・データの各々、又はそれらの何らかの組み合わせは、ネットワーキング環境の実装を含むことができる。
【００２２】
コンピューティング・デバイス１１２はまた、入力／出力（Ｉ／Ｏ）インターフェース１３０及び／又はネットワーク・アダプタ１３２を介して通信することもできる。Ｉ／Ｏインターフェース１３０及び／又はネットワーク・アダプタ１３２は、コンピューティング・デバイス１１２の内部及び／又は外部の要素間で通信するために、コンピューティング・デバイス１１２により利用される物理及び／又は仮想機構を含むことができる。例えば、Ｉ／Ｏインターフェース１３０は、キーボード、ポインティング・デバイス、ディスプレイ１４０等のような１つ又は複数の外部デバイス１４０；ユーザがコンピューティング・デバイス１１２と相互作用するのを可能にする１つ又は複数のデバイス；及び／又はコンピューティング・デバイス１１２が１つ又は複数の他のコンピューティング・デバイスと通信するのを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することができる。さらに、コンピューティング・デバイス１１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。従って、Ｉ／Ｏインターフェース１３０及び／又はネットワーク・アダプタ１３２は、コンピューティング・デバイス１１２内の又はこれのための信号又はデータを受信又は送信するように構成することができる。示されるように、Ｉ／Ｏインターフェース１３０及びネットワーク・アダプタ１３２は、バス１１８を介して、コンピューティング・デバイス１１２の他のコンポーネントと通信する。図示されていないが、他のハードウェア・コンポーネント及び／又はソフトウェア・コンポーネントをコンピューティング・デバイス１１２と併せて使用することもできる。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が挙げられることを理解されたい。
【００２３】
図１によりサービス・システム１００（及び他の項目）に関して単一の項目が示されるが、これらの表示は、限定することを意図するものではなく、いずれの項目も複数の項目を表し得る。例えば、プロセッサ１１４は、その各々が本明細書で説明されるサービス命令に基づいてサービスされる複数のカウンタを含むことができる。
【００２４】
従って、上記を考慮して、サービス・システム１００による命令の１つの実施形態が、そのカウンタ・セットに対応するアクセス制御の１回だけの検証又はチェックにより、カウンタ・セット内のカウンタの全てをブロック・ストレージに保存するためのプロセス・フロー３００を示す図４を参照して説明される。命令（「サービス命令」」）のパラメータは、格納すべきそのカウンタ・セットからのカウンタの数（例えば、第１のオペランド）、メモリ・アドレス（例えば、第２のオペランド）及びカウンタ・セット（例えば、第３のオペランド）を含むことに留意されたい。一般に、第１及び第３のオペランドにより指定されるある範囲のカウンタのコンテンツは、第２のオペランドにより指定されるアドレスに格納されることに留意されたい。プロセス・フロー３００の説明を助けるために、サービス命令の実施形態は、ダイアグラム４００を示す図５を参照して説明される。ダイアグラム４００は、メモリ（例えば、ビット０乃至４７）内のサービス命令のレイアウトの一例であり、ここで、「ＥＢ」フィールドは、命令を指定又は識別する操作コードであり、Ｒ＿１フィールドは第１のオペランドであり、Ｍ＿３フィールドは第３のオペランドであり、Ｂ＿２、ＤＨ＿２及びＤＬ＿２フィールドは結合して第２のオペランドを形成し、「１７」フィールドは、操作コードと共に命令を指定又は識別する操作コード拡張を指定する。
【００２５】
図４に戻ると、サービス・システム１００がサービス命令（例えば、「ＥＢ」及び「１７」フィールドにより識別されるような）を受け取ると、プロセス・フロー３００は開始ブロック３０５から開始し、サービス・システム１００が、サービス命令から、複数のカウンタから抽出すべきカウンタ・セットを読み出す。図５に示されるように、Ｍ＿３フィールドは、どのカウンタ・セットを複数のカウンタから抽出するかを指定するエンコードされたフィールドである。つまり、Ｍ＿３フィールドは、格納されるカウンタ・セットを示すために使用されるコードを指定し、Ｍ＿３フィールが予約された値を指定する場合、指定例外が認識され得る。例えば、Ｍ＿３フィールドは、カウンタ・セットを次のように指定することができる：すなわち、「０」は拡張されたカウンタ・セットであり、「１」は基本カウンタ・セットであり、「２」は問題状態のカウンタ・セットである等。各カウンタ・セットは、それぞれの許可を有する。従って、Ｍ＿３フィールドがどのカウンタ・セットを指定するかに基づいて、特定の許可についてチェックされる。
【００２６】
次に、決定ブロック３１０において、サービス・システム１００は、ブロック３０５において指定されたカウンタ・セットに関する単一回のアクセス・チェックを実行する。例えば、指定されたカウンタ・セット１１６ａ．１、１１６ａ．２、１１６ａ．３等に基づいて、サービス・システム１００は、対応する許可制御ＡＣ１、ＡＣ２、ＡＣ３等を検証又はチェックする。アクセス・チェックが成功（ｐａｓｓ）した場合、プロセス・フロー３００は、ブロック３１５に進み（例えば、矢印「成功」で示されるように）、そこで、サービス・システム１００は、サービス命令のメモリ・アドレスに基づいて抽出を行うために、ストレージのブロックの開始アドレスを定める。図５に示されるように、第２のオペランドは、サービス・システム１００がカウンタを格納することになるメモリのブロックのアドレスである。第２のオペランドは、ビット２０乃至３９（例えば、ＤＬ＿２及びＤＨ＿２フィールドから２０ビットの値）のコンテンツ及びビット１６乃至１９（例えば、Ｂ＿２フィールド）により指定されるレジスタのコンテンツに基づく。例えば、ＤＨ＿２フィールドのビット値を、ＤＬ＿２フィールドのビット値と連結して２０ビットの符号付き数を生成し、これをＢ＿２フィールドにより指定されるレジスタ内のビットに加えて、アドレスを計算する。
【００２７】
次に、ブロック３２０において、サービス・システム１００により、カウンタ・セットのカウンタの数を識別する。この場合、カウンタ・セット内のカウンタの数を確かめる必要があり、サービス・システム１００は、カウンタ・セットが許可される場合、ブロック・ストレージ内に保持できるカウンタの数と、カウンタ・セットのカウンタの数とを比較することができる。
【００２８】
さらに、プロセス・フロー３００は、決定ブロック３２５に進み、カウンタ・セットのカウンタの数に関して、サービス命令により定められるカウンタ・セットのカウンタの数をチェックする。示されるように、第１のオペランドは、格納すべきカウンタの数（例えば、図５のＲ＿１フィールドのビット８乃至１１により指定されるレジスタの値）を指定する汎用レジスタである。従って、第１のオペランドは、要求されるカウンタの数であり、これを、カウンタ・セットのカウンタの数としてサービス・システム１００が認識しているもと比較する。
【００２９】
要求されるカウンタの数がカウンタ・セットのカウンタの数と等しい場合、条件コードは、０のような第１の値に設定され、サービス・システム１００により、カウンタ・セットの全てのカウンタが格納される（例えば、「０」の矢印、ブロック３３０、及びブロック３４２で示されるように）。例えば、図３に示されるように、カウンタ・セット１１６ａ．１が指定され、要求されるカウンタの数が３である場合、カウンタ・セット１１６ａ．１は、要求されるカウンタの数と等しい３つのカウンタＣＮＴＲ１．１、ＣＮＴＲ１．２、ＣＮＴＲ１．３を含むので、条件コードは０に設定される。条件コードは、例えばハードウェアの実施形態において、サービス・システム１００により出力された値とすることができるが、以下にさらに説明されるように、エミュレータの実施形態のリターン・コードと交換可能に用いることができる。
【００３０】
要求されるカウンタの数がカウンタ・セットのカウンタの数を下回る場合、条件コードは、１のような第２の値に設定され、サービス・システム１００により、カウンタ・セットのカウンタのサブセットが格納される（例えば、「１」の矢印、ブロック３３５、及びブロック３４２で示されるように）。例えば、図３に示されるように、カウンタ・セット１１６ａ．２が指定され、要求されるカウンタの数が３である場合、カウンタ・セット１１６ａ．２は、要求されるカウンタの数を上回る４つのカウンタＣＮＴＲ２．１、ＣＮＴＲ２．２、ＣＮＴＲ２．３、ＣＮＴＲ２．４を含むので、条件コードは１に設定される。
【００３１】
要求されるカウンタの数がカウンタ・セットのカウンタの数を上回る場合、条件コードは、２のような第３の値に設定され、サービス・システム１００により、カウンタ・セットの全てのカウンタが格納される（例えば、「２」の矢印、ブロック３４０、及びブロック３４２で示されるように）。例えば、図３に示されるように、カウンタ・セット１１６ａ．３が指定され、要求されるカウンタの数が３である場合、カウンタ・セット１１６ａ．３は、要求されるカウンタの数を下回る２つのカウンタＣＮＴＲ３．１、ＣＮＴＲ３．２を含むので、条件コードは２に設定される。
【００３２】
ブロック３１０に戻ると、アクセス・チェックが成功しなかった場合、条件コードは、３のような第４の値に設定され、サービス・システム１００によって、カウンタ・セットはブロックに格納されない（例えば、「失敗（ｆａｉｌ）」の矢印、ブロック３４５、及びブロック３５０で示されるように）。条件コードが第４の値であるとき、サービス・システム１００は、カウンタ・セットに対する許可を有さないか、又はサービス命令により定められるカウンタ・セットのカウントの数が０であることに留意されたい。
【００３３】
サービス・システム１００によるサービス命令の別の実施形態が、プロセス・フロー５００を示す図６を参照して説明される。プロセス・フロー５００は、開始ブロック５０５から開始し、サービス・システム１００が、命令をサービス命令として識別する（例えば、図５の「ＥＢ」及び「１７」フィールドにより識別されるような）。次に、ブロック５１０において、サービス・システム１００は、サービス命令から、カウンタ・セットを識別する（例えば、図５のＭ＿３フィールドにより識別されるような）。次に、ブロック５１５において、サービス・システム１００は、ブロック５０５において指定されたカウンタ・セットに関して単一回のアクセス・チェックを実行する。
【００３４】
アクセス・チェックが成功した場合、プロセス・フロー５００は、ブロック５２０に進み（例えば、矢印「成功」で示されるように）、そこで、サービス・システム１００は、サービス命令により定められるようにメモリ・アドレスを計算する（例えば、ＤＨ＿２フィールドのビット値を、ＤＬ＿２フィールドのビット値と連結して、２０ビットの符号付き数を生成し、これをＢ＿２フィールドにより指定されるレジスタのビット値に加えてアドレスを計算する）。次に、ブロック５２５において、サービス・システム１００は、サービス命令により要求されるカウンタの数と、カウンタ・セットのカウンタの数（例えば、図５のＲ＿１フィールドのビット８乃至１１により指定されるレジスタの値）とを比較する。次いで、ブロック５３０において、カウンタは、計算されたメモリ・アドレス（例えば、サービス・システム１００によりサービスされる）に格納される。さらに、ブロック５３５において、サービス・システム１００は、比較に基づいて、リターン・コードを設定する。リターン・コードは、例えばエミュレータの実施形態において、サービス・システム１００により出力される値とすることができるが、以下に上述されるように、ハードウェアの実施形態の条件コードと交換可能に用いることができる。
【００３５】
アクセス・チェックが成功しなかった場合、プロセス・フロー５００は、（例えば、「失敗」矢印により示されるように）ブロック５５０に進み、そこで、命令の実行は、アクセス・チェックが成功しない（例えば、リターン・コードを設定する、又は例外を知らせる）という表示で完了する。
【００３６】
本明細書で説明されるプロセス・フローの例（例えば、３００、５００）を考慮すると、サービス・システム１００は、カウンタ・セット、メモリ・ブロック、及び／又はカウンタの数についての特定のエラー・リターンに基づいて、プログラム割り込みコードを実行することができる。プログラム割り込みコードにより、サービス・プロセスは、エラー条件に基づいて終了する。例えば、第２のオペランドによる、命令が指定するアドレスが有効なオペランドでない場合、サービス・システム１００は、アクセス例外を処理することができる（例えば、アドレスがメモリの許容範囲外にあるか又はサービス・システム１００によりページアウトされる場合、アクセス・プログラム割り込みが発行される）。サービス・システム１００が、命令によりサポートされるものより古いハードウェア部品を用いている場合、サービス・システム１００は、操作例外を処理することができる（例えば、ｓｔｏｒｅ−ＣＰＵ−ｃｏｕｎｔｅｒ−ｍｕｌｔｉｐｌｅファシリティがインストールされていない場合、操作プログラム割り込みが発行される）。スーパーバイザ状態にないときに命令が実行される場合、サービス・システム１００は、特権操作例外を処理することができる（例えば、アプリケーションがカウンタにアクセスしようと試み、許容されない場合、特権プログラム割り込みが発行される）。命令により無効なパラメータが定められた場合、無効なカウンタ・セットが指定された場合、カウンタ要求が大きすぎる場合、又は第２のオペランドのアドレスがダブルワード境界上にない場合、サービス・システム１００は、指定例外を処理することができる（例えば、カウンタ・セットが予約される場合、指定プログラム割り込みが発行される）。命令が、プロセッサにおけるハードウェア・トランザクションの内部で実行するように試みられた場合、サービス・システム１００は、トランザクション制約例外を処理することができる（例えば、トランザクション制約プログラム割り込みが発行される）。
【００３７】
一般に、コンピューティング・デバイスは、プロセッサ（例えば、図１のプロセッサ１１４）及びコンピュータ可読ストレージ媒体（例えば、図１のメモリ１１７）を含むことができ、ここで、プロセッサは、例えばコンピュータ可読ストレージ媒体からコンピュータ可読プログラム命令を受け取り、これらの命令を実行し、それにより、本明細書で説明されるプロセスの１つ又は複数を含む、１つ又は複数のプロセスを実施する。
【００３８】
コンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかを用いて生成されたコンピュータ・プログラムからコンパイルすること又は解釈することができる。コンピュータ可読プログラム命令は、完全にコンピューティング・デバイス上で実行される場合もあり、独立型ソフトウェア・パッケージとして部分的にコンピューティング・デバイス上で実行される場合もあり、一部がローカル・コンピューティング・デバイス上で実行され、一部が遠隔コンピュータ・デバイス上で実行される場合もあり、又は完全に遠隔コンピュータ・デバイス上で実行される場合もある。後者のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてローカル・コンピュータに接続される場合もあり、又は、外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）。幾つかの実施形態においては、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードしてもよく、又は、ネットワーク（例えば、コンピューティング・デバイス及び通信をサポートする接続の任意の組み合わせ）を介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードしてもよい。例えば、ネットワークは、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークとすることができ、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができ、無線技術、セルラー技術等のような複数の通信技術を利用することができる。
【００３９】
コンピュータ可読ストレージ媒体は、命令実行デバイス（例えば、上述のようなコンピューティング・デバイス）により使用される命令を保持及び格納する有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令がその上に記録された溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波若しくは他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通して伝搬する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、又は配線を通して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
【００４０】
従って、サービス・システム、及び方法及び／又はその要素は、それと関連したコンピュータ可読ストレージ媒体上に格納されたコンピュータ可読プログラム命令として、１つ又は複数のコンピューティング・デバイス上に実装することができる。コンピュータ・プログラム製品は、サービス・システム及び方法を保持するため及び／又はプロセッサにサービス・システム及び方法の動作を実行させるための、コンピュータ可読ストレージ媒体上に格納されたこうしたコンピュータ可読プログラム命令を含むことができる。実装され、及び／又は特許請求されるようなサービス・システム及び方法、及び／又はその要素は、単一回の命令及びアクセス・チェックにより複数のカウンタを格納する能力のために、コンピュータ及び／又はプロセッサ自体の機能を改善し、それにより、処理リソースの効率及び速度が改善される。
【００４１】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００４２】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された操作／動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で動作させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、命令をその内部に格納したコンピュータ可読ストレージ媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された操作／動作を実装する命令を含む製品を含むようにすることもできる。
【００４３】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された操作／動作を実施するようにすることもできる。
【００４４】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、操作性及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理操作を実行するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された操作は、図面内に記された順序とは異なる順序で行われることもある。例えば、連続して示された２つのブロックは、関与する操作性に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された操作又は動作を行う専用ハードウェアベースのシステムにより実装すること、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されたい。
【００４５】
本発明の種々の実施形態の説明は、例証目的で提示されたものであり、網羅的であること又は開示される実施形態に限定することを意図したものではない。当業者には、本発明の範囲から逸脱しない多くの修正及び変形が明らかになるであろう。本明細書で用いられる用語は、実施形態の原理、実際の用途、又は市場で見出される技術に優る技術的改善点を最もよく説明するために、又は、当業者が本明細書に開示される実施形態を理解することができるように、選択された。
【００４６】
本明細書で用いられる用語は、特定の実施形態を説明する目的のためのものに過ぎず、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「１つの（a）」、「１つの（an）」及び「その（the）」は、文脈が特に明示しない限り、複数形も同様に含むことを意図したものである。「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、操作、要素、及び／又はコンポーネントの存在を指示するが、１つ又は複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
【００４７】
本明細書で示されるフロー図は、一例に過ぎない、本発明の範囲から逸脱することなく、内部で説明されるこの図又はステップ（若しくは操作）に対する多くの変形があり得る。例えば、ステップは、異なる順序で実施されてもよく、又はステップを付加し、削除し、又は修正してもよい。これらの変形の全ては、特許請求される本発明の一部とみなされる。
【００４８】
本発明に対する好ましい実施形態が説明されたが、当業者であれば、現在及び将来の両方において、以下の特許請求の範囲内に入る種々の改善及び機能強化をなし得ることを理解するであろう。これらの特許請求の範囲は、最初に述べられる本発明に対する適切な保護を維持するように解釈すべきである。
【符号の説明】
【００４９】
１００：サービス・システム
１１２：コンピューティング・デバイス
１１４：プロセッサ
１１４ａ：コア
１１５：スレッド
１１６ａ、１１６ａ．１、１１６ａ．２、１１６ａ．３：カウンタ・セット
１１６ｂ：許可制御
１１７：メモリ
１１８：バス
１２０：ランダム・アクセス・メモリ（ＲＡＭ）
１２２：キャッシュ・メモリ
１２４：ストレージ・システム
１２６：プログラム／ユーティリティ
１２８：プログラム・モジュール
１３０：Ｉ／Ｏインターフェース
１３２：ネットワーク・アダプタ
１４０：外部デバイス
２１４：ハイパーバイザ
２１５：コントローラ
３００、５００：プロセス・フロー
ＬＰ１〜ＬＰｎ：論理パーティション
【図１】
0006537598.tif 000002
【図２】
0006537598.tif 000003
【図３】
0006537598.tif 000004
【図４】
0006537598.tif 000005
【図５】
0006537598.tif 000006
【図６】
0006537598.tif 000007