(57)【要約】【課題】処理ユニット実行の間、タイム・スライス計装情報を収集するための機構を提供する。【解決手段】本機構は、処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数する。タイム・スライスの第１の実行間隔および第２の実行間隔の間に発生した計数されたイベントは保持される。第１の実行間隔はタイム・スライスにおいて第２の実行間隔より早く、そして計数されたイベントは処理ユニットの性能を調節することを容易にする。一実施形態において、タイム・スライスは処理ユニット実行の連続した期間であり、そして指定された処理ユニット・イベントはキャッシュ・イベントを含む。処理ユニットは、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブしてもよく、そして単一のタイム・スライスの間、複数の異なるワーク単位の単一のワーク単位が処理ユニットによって処理される。【選択図】図２
2020504375.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品であって、
処理回路によって読み取り可能であり、かつ方法を行うために前記処理回路によって実行するための命令を記憶したコンピュータ可読記憶媒体を備え、前記方法が、
実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含み、前記収集することが、
前記処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと、
前記タイム・スライス内の第１の実行間隔および前記タイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含み、前記第１の実行間隔が、前記タイム・スライスにおいて前記第２の実行間隔より早く、前記計数された処理ユニット・イベントが、前記処理ユニットの性能を調節することを容易にする、コンピュータ・プログラム製品。
【請求項２】
前記タイム・スライスが処理ユニット実行の連続した期間であり、前記指定された処理ユニット・イベントがキャッシュ・イベントを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記処理ユニットが、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブし、単一のタイム・スライスの間、前記複数の異なるワーク単位の単一のワーク単位が前記処理ユニットによって処理される、請求項２に記載のコンピュータ・プログラム製品。
【請求項４】
前記第１の実行間隔が前記タイム・スライス内の最初の実行間隔を含み、前記第２の実行間隔が前記タイム・スライス内の最も最近完了された実行間隔を含み、かつ前記第１の実行間隔および前記第２の実行間隔が等しい継続時間である、請求項２に記載のコンピュータ・プログラム製品。
【請求項５】
前記第２の実行間隔が前記タイム・スライス内の最後の実行間隔を含む、請求項４に記載のコンピュータ・プログラム製品。
【請求項６】
前記計数することが、前記処理ユニット実行の前記タイム・スライスの間、前記指定された処理ユニット・イベントの前記発生の前記計数を行う際に、前記処理ユニットにローカルなタイム・スライス計装カウンタを使用することを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項７】
前記指定された処理ユニット・イベントが、キャッシュ・ミスおよびキャッシュ・ヒットから成る群から選択されるデータ・キャッシュ・イベントを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項８】
前記収集することが、タイム・スライス計装オン命令を実行することによって起動される、請求項１に記載のコンピュータ・プログラム製品。
【請求項９】
前記保持することが、ストア・タイム・スライス計装カウンタ命令を実行することによって起動される、請求項１に記載のコンピュータ・プログラム製品。
【請求項１０】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、
メモリと、
前記メモリと通信可能に結合されるプロセッサとを備え、前記コンピュータ・システムが、方法を行うように構成され、前記方法が、
実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含み、前記収集することが、
前記処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと、
前記タイム・スライス内の第１の実行間隔および前記タイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含み、前記第１の実行間隔が、前記タイム・スライスにおいて前記第２の実行間隔より早く、前記計数された処理ユニット・イベントが、前記処理ユニットの性能を調節することを容易にする、コンピュータ・システム。
【請求項１１】
前記タイム・スライスが処理ユニット実行の連続した期間であり、前記指定された処理ユニット・イベントがキャッシュ・イベントを含み、かつ前記処理ユニットが、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブし、単一のタイム・スライスの間、前記複数の異なるワーク単位の単一のワーク単位が前記処理ユニットによって処理される、請求項１０に記載のコンピュータ・システム。
【請求項１２】
前記第１の実行間隔が前記タイム・スライス内の最初の実行間隔を含み、前記第２の実行間隔が前記タイム・スライス内の最も最近完了された実行間隔を含み、かつ前記第１の実行間隔および前記第２の実行間隔が等しい継続時間である、請求項１１に記載のコンピュータ・システム。
【請求項１３】
前記第２の実行間隔が前記タイム・スライス内の最後の実行間隔を含む、請求項１２に記載のコンピュータ・システム。
【請求項１４】
前記計数することが、前記処理ユニット実行の前記タイム・スライスの間、前記指定された処理ユニット・イベントの前記発生の前記計数を行う際に、前記処理ユニットにローカルなタイム・スライス計装カウンタを使用することを含む、請求項１０に記載のコンピュータ・システム。
【請求項１５】
前記収集することが、タイム・スライス計装オン命令を実行することによって起動され、前記保持することが、ストア・タイム・スライス計装カウンタ命令を実行することによって起動される、請求項１０に記載のコンピュータ・システム。
【請求項１６】
コンピューティング環境内の処理を容易にするコンピュータ実装方法であって、
実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含み、前記収集することが、
前記処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を計数することと、
前記タイム・スライスの第１の実行時間間隔および第２の実行時間間隔の間に発生した計数された処理ユニット・イベントを保持することとを含み、前記第１の実行時間間隔が、前記タイム・スライスにおいて前記第２の実行時間間隔より早く、前記計数された処理ユニット・イベントが、前記処理ユニットの性能を調節することを容易にする、コンピュータ実装方法。
【請求項１７】
前記タイム・スライスが処理ユニット実行の連続した期間であり、前記指定された処理ユニット・イベントがキャッシュ・イベントを含み、かつ前記処理ユニットが、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブし、単一のタイム・スライスの間、前記複数の異なるワーク単位の単一のワーク単位が前記処理ユニットによって処理される、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記第１の実行間隔が前記タイム・スライス内の最初の実行間隔を含み、前記第２の実行間隔が前記タイム・スライス内の最も最近完了された実行間隔を含み、かつ前記第１の実行間隔および前記第２の実行間隔が等しい継続時間である、請求項１７に記載のコンピュータ実装方法。
【請求項１９】
前記第２の実行時間間隔が前記タイム・スライス内の最後の実行間隔を含む、請求項１８に記載のコンピュータ実装方法。
【請求項２０】
前記収集することが、タイム・スライス計装オン命令を実行することによって起動され、前記保持することが、ストア・タイム・スライス計装カウンタ命令を実行することによって起動される、請求項１６に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
１つまたは複数の態様が、タイム・スライス計装機構によりコンピューティング環境内の処理を容易にするためのコンピュータ・プログラム、コンピュータ・システムおよびコンピュータ実装方法に関する。
【背景技術】
【０００２】
コンピュータ・システムにおいて、スケジューラは、行われることになる様々なワーク単位間で優先順位を割り当てることによってコンピュータ・リソースにワーク単位を割り振ることを管理することができる。スケジューラは、いつワーク単位を発送するべきか、しかもどのコンピュータ・リソースに、およびリソースを占有するために割り振られる継続時間を決定する。ワークロード・スケジューラは、スケジューラの制御下でマシン上で動く追跡エージェントを含んでもよい。コントローラのデータベースが、実行するワークの詳細、スケジューリング命令、ならびにリソースおよび制限についての情報を保有する。データベースは、ワークが将来のいつ実行されることになるかを決定する情報を提供してもよい。追加的に、情報から詳細な生産スケジュールが導出されて、プロセスが完了してリソースが利用可能であるときにジョブを提出することを可能にする。
【０００３】
ジョブ・スケジューリング・ソフトウェアは、割り振られた処理ユニットの全体キャッシュ構造と同程度であるが、それを超えない累積キャッシュ・フットプリントで一組のジョブまたはワーク単位をグループ分けすることによって、ワークロード性能を改善することができる。典型的に、ワークロードは、時間の断片での処理のために周期的にスケジュールされる。各時間の断片はタイム・スライスとみなされる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"z/Architecture Principles ofOperation," IBM Publication No. SA22-7832-10, March 2015
【非特許文献２】"Power ISATMVersion 2.07B," International Business Machines Corporation, April 9, 2015
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、タイム・スライス計装機構によりコンピューティング環境内の処理を容易にするためのコンピュータ・プログラム、コンピュータ・システムおよびコンピュータ実装方法を提供する。
【課題を解決するための手段】
【０００６】
本コンピュータ・プログラムは、処理回路によって読み取り可能であり、かつ方法を行うために処理回路によって実行するための命令を記憶した記憶媒体を含む。同方法は、例えば、実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含む。収集することは：処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと；タイム・スライス内の第１の実行間隔およびタイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含む。第１の実行間隔は、タイム・スライスにおいて第２の実行間隔より早く、そして計数された処理ユニット・イベントは、処理ユニットの性能を調節することを容易にする。
【０００７】
有利には、ワーク単位を処理する間に２つの異なった期間の間、すなわち、処理ユニットのタイム・スライスの２つの異なった実行間隔内に処理ユニット内で発生するイベントの測定値を（ワーク・スケジューリング・ソフトウェアが）取得する機構である、本明細書でタイム・スライス計装と称されるプロセッサまたは処理ユニット計装を提供することによって、コンピューティング環境処理が強化される。測定（または計数）される指定された処理ユニット・イベントは、ローカル・キャッシュ・メトリックを含んでもよい。測定値が記録される時間間隔は、プロセッサがワーク単位を処理する連続した時間、すなわち、タイム・スライス内の前期および後期の間隔に対応する。計数された処理ユニット・イベントは保持され、そして、例えば、後続のワーク・ディスパッチ決定の間の考慮のためにワークロード・スケジューラによって解析されてもよい。有利には、同機構は、処理ユニット・キャッシュ・ミスを削減するメカニズムを（１つまたは複数の態様で）提供し、したがって、個々のワーク単位に対する他に、ワークロード全体に対する性能を改善する。
【０００８】
１つまたは複数の実装において、本明細書に提示される同機構は、新たな計装カウンタ、新たなカウンタ・ログ、カウンタ・データ収集を起動する新たな命令、およびカウンタ・ログを読み込んで記憶する新たな命令を導入する。本明細書に開示されるカウンタおよびログへのアクセスは、スーパバイザ状態のプログラムに制限されてもよい。
【０００９】
より詳細には、１つまたは複数の実装において、タイム・スライスは、処理ユニット実行の連続した期間であってもよく、そして指定された処理ユニット・イベントは、キャッシュ・イベントであっても、またはそれを含んでもよい。処理ユニットは、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブしてもよく、そして単一のタイム・スライスの間、複数の異なるワーク単位の単一のワーク間隔が処理ユニットによって処理される。
【００１０】
１つまたは複数の実施形態において、第１の実行間隔は、タイム・スライス内の最初の実行間隔を含み、そして第２の実行間隔は、タイム・スライス内の最も最近完了された実行間隔を含む。第１の実行間隔および第２の実行間隔は、等しい継続時間であってもよい。更に、１つまたは複数の実施形態において、第２の実行間隔は、タイム・スライス内の最後の実行間隔を含んでもよい。
【００１１】
１つまたは複数の実装において、計数することは、処理ユニットにローカルなタイム・スライス計装カウンタを使用し、そして処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生の計数を行うことを含んでもよい。１つの実施形態において、指定された処理ユニット・イベントは、キャッシュ・ミスおよびキャッシュ・ヒットから成る群から選択されるキャッシュ・イベントを含んでもよい。
【００１２】
例として、１つまたは複数の実施形態において、収集することは、タイム・スライス計装オン命令を実行することによって起動されてもよく、そして計数された処理ユニット・イベントの保持は、ストア・タイム・スライス計装カウンタ命令を実行することによって起動されてもよい。
【００１３】
別の態様において、コンピュータ・システムは、メモリと、メモリと通信可能に結合されるプロセッサとを含んでおり、ここでコンピュータ・システムは、方法を行うように構成される。同方法は、実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含む。収集することは：処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと；タイム・スライス内の第１の実行間隔およびタイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含む。第１の実行間隔は、タイム・スライスにおいて第２の実行間隔より早く、そして計数された処理ユニット・イベントは、処理ユニットの性能を調節することを容易にする。
【００１４】
更なる態様において、本コンピュータ実装方法は、例えば、実行の間、処理ユニットに対するタイム・スライス計装情報を収集することを含む。収集することは：処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと；タイム・スライス内の第１の実行間隔およびタイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含む。第１の実行間隔は、タイム・スライスにおいて第２の実行間隔より早く、そして計数された処理ユニット・イベントは、処理ユニットの性能を調節することを容易にする。
【００１５】
本明細書に記載される技術を通じて、追加の特徴および利点が実現される。他の実施形態および態様は、本明細書に詳細に記載され、かつ特許請求される態様の一部と考えられる。
【００１６】
１つまたは複数の態様が特に指摘され、そして本明細書の結びの請求項に例として明確に主張される。上記ならびに１つまたは複数の態様の目的、特徴および利点は、添付図面と併せて以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００１７】
【図１】本発明の１つまたは複数の態様を組み込んで使用するコンピューティング環境の１つの例を描く。
【図２】本発明の一態様に従って、図１の処理ユニットの更なる詳細を描く。
【図３】本発明の１つまたは複数の態様を組み込んで使用するコンピューティング環境の別の例を描く。
【図４】図３のメモリの更なる詳細を描く。
【図５】本発明の１つまたは複数の態様に従って、タイム・スライス計装機構を活用して行われる処理の１つの実施形態を描く。
【図６】本発明の１つまたは複数の態様に従って、タイム・スライス計装オン（ＴＳＩＯＮ）命令の１つの例を描く。
【図７】本発明の１つまたは複数の態様に従って、ストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令の１つの例を描く。
【図８】本発明の１つまたは複数の態様に従って、ストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令によって抽出される測定値を記憶するデータ構造の１つの実施形態を描く。
【図９】本発明の１つまたは複数の態様に従って、処理ユニットによって実行されることになり、そしてタイム・スライス計装監視を受けることになるワークロードの１つの例を描く。
【図１０】本発明の１つまたは複数の態様に従って、図９のデータ構造で識別される各ワーク単位に対するそれぞれのタイム・スライス内の最初および最後の実行間隔の間のキャッシュ・メトリックの測定値例を描く。
【図１１】本発明の１つまたは複数の態様に従って、タイム・スライス計装測定値が評価された後であり、図９のワークロードの１つまたは複数のワーク単位に対する改善されたキャッシュ・メトリックを図示する、変更された実行スケジュールの一例を描く。
【図１２】本発明の１つまたは複数の態様に従って、タイム・スライス計装処理の１つの例を描く。
【図１３】本発明の１つまたは複数の態様に従って、タイム・スライス計装処理の１つの例を描く。
【図１４】クラウド・コンピューティング環境の１つの実施形態を描く。
【図１５】抽象化モデル層の１つの例を描く。
【発明を実施するための形態】
【００１８】
中央処理装置（ＣＰＵ）などの処理ユニット（ＰＵ）がそれぞれのワーク単位を処理している間に、タイム・スライス内の２つの異なった実行間隔の間、処理ユニット内で発生するイベントの測定値をワーク・スケジューリング（例えば、ワーク・スケジューリング・ソフトウェア）が取得する機構を提供する、本明細書でタイム・スライス計装（ＴＳＩ）と称されるコンピュータ処理ユニット計装によって、改善されたコンピューティング環境性能が提供される。測定される処理ユニット・イベントは、ローカル・キャッシュ・メトリックを含んでもよい。測定値が記録される期間は、１つまたは複数の実施形態において、ＰＵ処理のタイム・スライス（すなわち、連続した時間単位）内の前期および後期の間隔に対応する。得られた測定値は、オペレーティング・システム部品として設けられるワークロード・スケジューラによって解析され、そして後続のワーク・ディスパッチ決定の間に考慮されてもよい。結果的な利益は、削減された処理ユニット・キャッシュ・ミス、したがって、個々のワーク単位に対する他に、ワークロード全体に対する、改善された性能であることができる。
【００１９】
本明細書に開示されるタイム・スライス計装機構は、例えば、プロセッサ実行のタイム・スライス内の別々の実行間隔の間、キャッシュ構造イベントを測定する能力をオペレーティング・システムに提供する。監視されるキャッシュ・イベントはマシン依存であってもよく、そしてキャッシュ・ミス、キャッシュ・ヒット、ＭＲＵ等といった共通のキャッシュ関連の性能メトリックを含んでもよい。新たな計装を収集する実行時間の２つの期間は、例えば、等しい継続時間であり、そして１つの実施形態において、ソフトウェアによってハードウェアに識別される。１つまたは複数の実装において、第１の実行間隔は、ワーク単位がディスパッチされるタイム・スライスの初めを包含してもよく、このときキャッシュは「コールド」であり、そして第２の実行期間は、ワーク単位がディスパッチされるタイム・スライスの終わりを包含してもよく、このときキャッシュは「ウォーム」である。計数された処理ユニット・イベントの保持された結果は、タイム・スライスに対して比較され、そして適宜後続のワークロード・ディスパッチ・グループ分けを変更するために使用されてもよい。本明細書に開示されるタイム・スライス計装機構は、処理ユニットと関連した独立機構として実装されてもよい。更に下記されるように、新たなカウンタ・データ収集を起動し、そして新たなカウンタ・ログを読み込んで記憶するために、新たな計装カウンタ、新たなカウンタ・ログおよび新たな命令が利用されてもよい。新たなカウンタおよびログへのアクセスは、スーパバイザ状態のプログラムに制限されてもよい。
【００２０】
より詳細には、本明細書に開示されるタイム・スライス計装機構は、インストールされると、例えば、共通のタイム・スライス内の２つのプログラム実行間隔の間、或る処理ユニット・イベントを測定するための能力を、ワークロード・スケジューラなどの制御プログラムに提供する。タイム・スライス計装（ＴＳＩ）機構は、各処理ユニットにローカルな繰り返し間隔パルス、各処理ユニットにローカルないくつかのＴＳＩカウンタ、各処理ユニットにローカルな全てのＴＳＩカウンタに対するＴＳＩカウンタ・ログの対、ならびにタイム・スライス計装オン（ＴＳＩＯＮ）およびストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）を含め、データ測定を起動および抽出する命令を含む。タイム・スライス計装が処理ユニットで稼動中であるとき、処理ユニットは、以下で更に説明されるように、キャッシュ・ミスまたはキャッシュ・ヒットなどのいくつかの処理ユニット・イベントを計数することを周期的に再開する。
【００２１】
処理ユニットは、タイム・スライス内の、例えば、最初のおよび最も最近完了された実行間隔の間に発生した計数されたイベントの履歴を維持する。記録および保存されたＴＳＩカウンタ値は、ＴＳＩカウンタ・ログと称されてもよい。言及したように、タイム・スライス計装は、タイム・スライス計装オン命令を使用することによって稼動されてもよく、そして測定データは、本明細書に記載される、ストア・タイム・スライス計装カウンタ命令を使用することによって取得されてもよい。
【００２２】
本発明の１つまたは複数の態様を組み込んで使用するコンピューティング環境の１つの実施形態が図１を参照しつつ記載される。１つの例において、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供される、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）に基づく。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの１つの実施形態が"z/Architecture Principles of Operation," IBM Publication No. SA22-7832-10, March 2015に記載されており、ここにその全体が参照により本明細書に組み込まれる。Ｚ／ＡＲＣＨＩＴＥＣＴＵＲＥは、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。
【００２３】
別の例において、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供される、Ｐｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）に基づく。Ｐｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅの１つの実施形態が"Power ISATM Version 2.07B," International Business Machines Corporation, April 9, 2015に記載されており、ここにその全体が参照により本明細書に組み込まれる。ＰＯＷＥＲ  ＡＲＣＨＩＴＥＣＴＵＲＥは、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。
【００２４】
コンピューティング環境は、また、インテル（Ｒ）ｘ８６アーキテクチャを含むがこれに限定されない、他のアーキテクチャに基づいてもよい。他の例も存在する。
【００２５】
図１に図示されるように、コンピューティング環境１００は、例えば、多数の他の汎用または専用コンピューティング・システム環境または構成と動作する、例えば、コンピュータ・システム／サーバ１２を有するノード１０を含む。コンピュータ・システム／サーバ１２との使用に適するであろう周知のコンピューティング・システム、環境または構成あるいはその組合せの例としては、パーソナル・コンピュータ（ＰＣ）システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【００２６】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で記載されてもよい。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータ・システム／サーバ１２は、通信ネットワークを通じて連結されるリモート処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境を含むがこれに限定されない、多くのコンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境において、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体にプログラム・モジュールが設けられてもよい。
【００２７】
図１に図示されるように、コンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で図示される。コンピュータ・システム／サーバ１２の部品は、１つまたは複数のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム部品をプロセッサ１６に結合するバス１８を含んでもよいが、これらに限定されない。
【００２８】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィクス・ポート、および各種のバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、数種類のバス構造のいずれかの１つまたは複数を表す。限定でなく、例として、そのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バスおよびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含む。
【００２９】
コンピュータ・システム／サーバ１２は、典型的に各種のコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能であるいかなる入手可能な媒体であってもよく、そしてそれは、揮発性と不揮発性の両方の媒体、取外し可能と取外し不可能の両方の媒体を含む。
【００３０】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取外し可能／取外し不可能な揮発性／不揮発性コンピュータ・システム記憶媒体を更に含んでもよい。単に例として、取外し不可能な不揮発性磁気媒体（図示されず、典型的に「ハード・ドライブ」と呼ばれる）から読み取り、それに書き込むために、記憶システム３４が設けられることができる。図示されないが、取外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）から読み取り、それに書き込むための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体などの取外し可能な不揮発性光ディスクから読み取り、またはそれに書き込むための光ディスク・ドライブが設けられることができる。そのような例において、各々は、１つまたは複数のデータ媒体インタフェースによってバス１８に接続されることができる。更に描かれかつ下記されることになるように、メモリ２８は、本発明の実施形態の機能を実施するように構成されるプログラム・モジュールの集合（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含んでもよい。
【００３１】
プログラム・モジュール４２の集合（少なくとも１つ）を有するプログラム／ユーティリティ４０が、限定でなく、例として、オペレーティング・システム１７、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データと同様に、メモリ２８に記憶されてもよい。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データの各々またはその何らかの組合せがネットワーキング環境の実装を含んでもよい。プログラム・モジュール４２は、一般に、本明細書に記載されるように、本発明の実施形態の機能または方法論あるいはその両方を実施する。
【００３２】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４等などの１つもしくは複数の外部デバイス１４；ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つもしくは複数のデバイス；またはコンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデム等）；あるいはその組合せとも通信してもよい。そのような通信は、入出力（Ｉ／Ｏ）インタフェース２２を介して発生することができる。更にまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般のワイド・エリア・ネットワーク（ＷＡＮ）または公衆ネットワーク（例えば、インターネット）あるいはその組合せなどの１つまたは複数のネットワークと通信することができる。描かれるように、ネットワーク・アダプタ２０はバス１８を介してコンピュータ・システム／サーバ１２のその他の部品と通信する。図示されないが、コンピュータ・システム／サーバ１２と併せて、他のハードウェアまたはソフトウェア部品あるいはその両方が使用され得ることが理解されるべきである。例としては：マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブおよびデータ保存用記憶システム等を含むが、これらに限定されない。
【００３３】
一例として、処理ユニット１６は、命令を実行するために使用される複数の機能部品を含む。図２に描かれるように、これらの機能部品は、例えば、実行されることになる命令をフェッチする命令フェッチ部品１２０；フェッチされた命令をデコードする命令デコード・ユニット１２２；デコードされた命令を実行する命令実行部品１２４；必要に応じて、命令実行のためにメモリにアクセスするメモリ・アクセス部品１２６；および実行された命令の結果を提供するライト・バック部品１３０を含む。これらの部品の１つまたは複数が、本発明の態様に従って、タイム・スライス計装機構１３６を実装するために使用されてもよく、それは、以下に更に記載されるように、１つまたは複数の実施形態において、繰り返し実行間隔１３７、ＴＳＩカウンタ１３８およびＴＳＩカウンタ・ログ１３９を含む。
【００３４】
処理ユニット１６は、１つの実施形態において、機能部品の１つまたは複数によって使用されることになる１つまたは複数のレジスタ１４０も含む。
【００３５】
１つまたは複数の態様を組み込んで使用するコンピューティング環境の別の実施形態が図３を参照しつつ記載される。この例において、例えば、コンピューティング環境２００は、例えば１つまたは複数のバス２０８または他の接続あるいはその両方を介して互いに結合される、ネイティブ中央処理装置（ＣＰＵ）２０２、メモリ２０４および１つまたは複数の入出力デバイスまたはインタフェース２０６あるいはその両方を含む。例として、コンピューティング環境２００は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるＰｏｗｅｒＰＣ（Ｒ）プロセッサもしくはｐＳｅｒｉｅｓサーバ；カリフォルニア州パロアルトのヒューレット・パッカード社によって提供されるインテルＩｔａｎｉｕｍ（Ｒ）ＩＩプロセッサ搭載ＨＰ  Ｓｕｐｅｒｄｏｍｅ；またはインターナショナル・ビジネス・マシーンズ社、ヒューレット・パッカード社、インテル社、オラクル社その他によって提供されるアーキテクチャに基づく他のマシン；あるいはその組合せを含んでもよい。
【００３６】
ネイティブ中央処理装置２０２は、環境内の処理の間に使用される１つもしくは複数の汎用レジスタまたは１つもしくは複数の専用レジスタあるいはその両方などの１つまたは複数のネイティブ・レジスタ２１０を含む。これらのレジスタは、任意の特定の時点での環境の状態を表す情報を含む。
【００３７】
その上、ネイティブ中央処理装置２０２は、メモリ２０４に記憶される命令およびコードを実行する。１つの特定の例において、中央処理装置は、メモリ２０４に記憶されるエミュレータ・コード２１２を実行する。このコードは、１つのアーキテクチャで構成されたコンピューティング環境が別のアーキテクチャをエミュレートすることを可能にする。例えば、エミュレータ・コード２１２は、ＰｏｗｅｒＰＣプロセッサ、ｐＳｅｒｉｅｓサーバ、ＨＰ  Ｓｕｐｅｒｄｏｍｅサーバその他などの、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ以外のアーキテクチャに基づくマシンが、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅをエミュレートし、かつｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づいて開発されたソフトウェアおよび命令を実行するようにする。
【００３８】
エミュレータ・コード２１２に関する更なる詳細が図４を参照しつつ記載される。メモリ２０４に記憶されるゲスト命令２５０が、ネイティブＣＰＵ２０２のそれ以外のアーキテクチャで実行されるように開発されたソフトウェア命令（例えば、マシン命令に相関する）を含む。例えば、ゲスト命令２５０は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプロセッサで実行するように設計されたかもしれないが、その代わりに、ネイティブＣＰＵ２０２でエミュレートされており、それは、例えば、インテルＩｔａｎｉｕｍ  ＩＩプロセッサであってもよい。１つの例において、エミュレータ・コード２１２は、メモリ２０４から１つまたは複数のゲスト命令２５０を取得し、そして任意選択で取得された命令のためのローカル・バッファリングを提供する命令フェッチ・ルーチン２５２を含む。それは、取得されたゲスト命令の型を判定し、そしてゲスト命令を１つまたは複数の対応ネイティブ命令２５６へ変換する命令変換ルーチン２５４も含む。この変換は、例えば、ゲスト命令によって行われることになる機能を識別すること、およびネイティブ命令を選んでその機能を行うことを含む。
【００３９】
更に、エミュレータ・コード２１２は、ネイティブ命令が実行されるようにするエミュレーション制御ルーチン２６０を含む。エミュレーション制御ルーチン２６０は、ネイティブＣＰＵ２０２が、１つまたは複数の以前に取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行し、そのような実行の結びに、命令フェッチ・ルーチンに制御を返して、次のゲスト命令または一群のゲスト命令の取得をエミュレートするようにしてもよい。ネイティブ命令２５６の実行は、メモリ２０４からレジスタへデータをロードすること；レジスタからメモリに逆にデータを格納すること；または変換ルーチンによって決定される、何らかの型の算術もしくは論理演算を行うことを含んでもよい。
【００４０】
各ルーチンは、例えば、ソフトウェアで実装され、それは、メモリに記憶されてネイティブ中央処理装置２０２によって実行される。他の例において、ルーチンまたは演算の１つまたは複数がファームウェア、ハードウェア、ソフトウェアまたはその何らかの組合せで実装される。エミュレートされるプロセッサのレジスタは、ネイティブＣＰＵのレジスタ２１０を使用してまたはメモリ２０４における場所を使用することによってエミュレートされてもよい。実施形態において、ゲスト命令２５０、ネイティブ命令２５６およびエミュレータ・コード２１２は、同じメモリに存在してもよく、または異なるメモリ・デバイス間で分配されてもよい。
【００４１】
本明細書で使用される場合、ファームウェアは、例えば、プロセッサのマイクロコード、ミリコードまたはマクロコードあるいはその組合せを含む。同用語は、例えば、高レベル・マシン・コードの実装で使用されるハードウェア・レベル命令またはデータ構造あるいはその両方を含む。１つの実施形態において、ファームウェアは、例えば、下部ハードウェアに特有の信頼できるソフトウェアまたはマイクロコードを含み、かつシステム・ハードウェアへのオペレーティング・システム・アクセスを制御するマイクロコードとして典型的に配布される専有コードを含んでもよい。
【００４２】
取得、変換および実行されるゲスト命令２５０は、例えば、本明細書に記載される、タイム・スライス計装オン（ＴＳＩＯＮ）またはストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令である。１つのアーキテクチャ（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）のである命令は、メモリからフェッチされ、変換され、そして別のアーキテクチャ（例えば、ＰｏｗｅｒＰＣ、ｐＳｅｒｉｅｓ、インテル等）の一連のネイティブ命令２５６として表現される。これらのネイティブ命令は、次いで実行されてもよい。
【００４３】
タイム・スライス計装オン（ＴＳＩＯＮ）命令およびストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令の１つまたは複数の実施形態に関する詳細が、命令のフィールドおよびプロセッサ（ネイティブかエミュレートされたかいずれかのシステムにおける）による実行を含め、本明細書に記載される。
【００４４】
本発明の１つまたは複数の態様に従って、ワーク単位の実行中に中央処理装置に対するなど、実行の間、処理ユニットに対するタイム・スライス計装情報を収集するために、タイム・スライス計装機構が提示される。収集することは、本明細書に開示されるタイム・スライス計装オン（ＴＳＩＯＮ）命令によって起動されてもよく、処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと、タイム・スライス内の第１の実行間隔およびタイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含んでもよい。第１の実行間隔は、タイム・スライスにおいて第２の実行間隔より早く、そして保持された、計数された処理ユニット・イベントは、処理ユニットの性能を調節することを容易にする。保持することは、本明細書に開示されるストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令を実行することによって起動されてもよい。
【００４５】
１つまたは複数の実装において、タイム・スライスは、処理ユニット実行の連続した期間であってもよく、そして指定された処理ユニット・イベントは、キャッシュ・イベントであっても、またはそれを含んでもよい。例として、処理ユニットは、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブするようにスケジュールされてもよく、そして単一のタイム・スライスの間、複数の異なるワーク単位の単一のワーク単位が処理ユニットによって処理されてもよい。１つまたは複数の実装において、第１の実行間隔は、それぞれのタイム・スライス内の最初の実行間隔を含み、そして第２の実行間隔は、タイム・スライス内の最も最近の実行間隔を含む。実装において、第１の実行間隔および第２の実行間隔は、等しい継続時間であってもよい。例として、第２の実行間隔は、タイム・スライス内の最後の実行間隔であってもよい。
【００４６】
１つまたは複数の実施形態において、計数することは、処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生の計数を行う際に、処理ユニットにローカルなタイム・スライス計装カウンタを使用することを含んでもよい。具体例として、指定された処理ユニット・イベントは、キャッシュ・ミスまたはキャッシュ・ヒットなどのデータ・キャッシュ・イベントを含んでもよい。言及したように、収集することは、タイム・スライス計装オン命令を実行することによって起動されてもよく、そして計数することおよび保持することの少なくとも一方は、ストア・タイム・スライス計装カウンタ命令を実行することによって起動されてもよい。
【００４７】
タイム・スライス計装機構は、インストールされると、タイム・スライス内の２つのプログラム実行間隔の間に発生する或る処理ユニット・イベント（ＣＰＵイベントなど）を測定するための能力を、オペレーティング・システムなどの制御プログラムに提供する。タイム・スライス計装（ＴＳＩ）機構は、各処理ユニットにローカルな繰り返し間隔パルス、各処理ユニットにローカルないくつかのＴＳＩカウンタ、および各処理ユニットにローカルなＴＳＩカウンタに対するＴＳＩカウンタ・ログの対を含む。タイム・スライス計装が処理ユニットで稼動中であるとき、処理ユニットは、いくつかのイベントを計数することを周期的に再開する。処理ユニットは、タイム・スライス内の最初のおよび最も最近完了された実行間隔の間に発生した計数されたイベントの履歴を維持してもよい。記録および保存されたタイム・スライス・カウンタ値は、本明細書でＴＳＩカウンタ・ログと称される。言及したように、タイム・スライス計装は、タイム・スライス計装オン命令を使用することによって稼動されてもよく、そして測定データは、ストア・タイム・スライス計装カウンタ命令を使用することによって取得されてもよい。
【００４８】
１つまたは複数の実装において、タイム・スライス計装機構によって提供される測定データは、ワーク単位のＰＵ実行のタイム・スライス内の２つの分離された実行間隔の間に取得された性能関連の特性の統計比較のために使用されてもよい。
【００４９】
図５は、本発明の１つまたは複数の態様に従って、処理の１つの実施形態を描く。例示されるように、処理は、実行の間、処理ユニットに対するタイム・スライス計装情報（本明細書に記載されるような）を取得すること３００を含んでもよい。タイム・スライス計装情報は次いで、例えば、オペレーティング・システムまたはワークロード・スケジューラによって、例えば、処理ユニットへのワーク単位の割当てを再スケジュールすることによって処理ユニットの性能を調節するために使用されてもよい３１０。
【００５０】
図６は、タイム・スライス計装オン命令４００の１つの例を描く。図示されるように、命令は、タイム・スライス計装オン動作を示すオペコード・フィールド４０１を含む。
【００５１】
スーパバイザ状態でのタイム・スライス計装オン命令の実行が処理ユニットにおいてタイム・スライス計装データ収集を起動し、これは、例えば、以下を含んでもよい：
−  ゼロを含むようにＴＳＩカウンタをリセットすること
−  FFFFFFFF hexを含むようにＴＳＩカウンタ・ログをリセットすること
−  タイム・スライス計装周期間隔を開始すること
−  対応ＴＳＩカウンタにおいて指定された処理ユニット・イベントの各発生を計数開始すること。
【００５２】
１つまたは複数の実施形態において、条件コードは不変のままである。
【００５３】
最初の間隔が完了した後に、各ＴＳＩカウンタ値が対応ＴＳＩカウンタ最初間隔ログにローカルに記録および保存され、その実施形態が図８に例示されるが、ここでデータ構造の左側にＴＳＩカウンタ最初間隔ログ４２０がある。その後、ＴＳＩカウンタは、ゼロを含むようにリセットされてもよく、そしてＴＳＩカウンタは対応処理ユニット・イベントを計数再開する。いずれかの後続の間隔が完了した後に、各ＴＳＩカウンタ値が、図８に図示される対応ＴＳＩカウンタ最後間隔ログ４２１にローカルに記録および保存されてもよい。その後、ＴＳＩカウンタは、ゼロを含むように再びリセットされ、そしてＴＳＩカウンタは対応ＣＰＵイベントを計数再開する。
【００５４】
ＴＣＩ間隔継続時間は、マシン依存の処理ユニット・サイクル数であってもよく、それは、例えば、図８のデータ構造に記録されるタイム・スライス計装バージョン番号（ＴＳＩＶＮ）４２２によって決定されてもよい。当業者によって理解されるように、異なるコンピューティング・マシンが異なるサイクル数で動作してもよく、または異なる処理ユニット・イベントがＴＳＩバージョン番号に依存して測定されてもよく、あるいはその両方がなされてもよい。
【００５５】
処理ユニット・イベントを監視するＴＳＩカウンタの数は、１つまたは複数の実装において、例えば、１から７まで異なってもよい。ＴＳＩカウンタの数はマシン依存であってもよい。各ＴＳＩカウンタによって監視される処理ユニット・イベントもマシン依存であってもよい。ここでも、タイム・スライス計装のモデル依存の特性がタイム・スライス計装バージョン番号４２２（図８）によって決定されてもよい。
【００５６】
１つまたは複数の実施形態において、ＴＳＩカウンタは３２ビットであってもよい（単に１つの例として）。各ＴＳＩカウンタは、３２ビット最初間隔ログ４２０（図８）および３２ビット最後間隔ログ４２１に測定値を記録してもよく、いずれのＴＳＩカウンタにおけるビット位置０からの桁上げも切り捨てられる。１つまたは複数の実施形態において、ＴＳＩカウンタは、スーパバイザ状態および問題状態の処理ユニット・イベントを計数してもよい。処理ユニット再試行および処理ユニット・リセットの間、１つの実施形態において、ＴＳＩカウンタは０にリセットされてもよく、ＴＳＩカウンタ・ログは、例えば、FFFFFFFF hexにリセットされてもよく、そして後続のタイム・スライス計装オン命令が完了成功するまで、タイム・スライス・カウンタはインクリメントすることはない。処理ユニットによって認識される種々の条件がＴＳＩ測定を一時的に禁止または中断してもよく、そしてこれらの条件は結果として、ＴＳＩカウンタ・ログをFFFFFFFF hexにリセットすることになってもよい。
【００５７】
ストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令４１０の１つの実施形態が図７に描かれる。図示されるように、命令は、複数のフィールドを有してもよく、そしてフィールドは、それと関連付けられる下付き番号を有してもよい。命令のフィールドと関連付けられる下付き番号は、フィールドが適用されるオペランドを示す。例えば、Ｂ２と関連付けられる下付き番号２は、Ｂ２で指定されるレジスタの内容が第２オペランドと関連付けられることを示す。
【００５８】
例として、命令４１０は、ストア・タイム・スライス計装動作を示すオペコード・フィールド４１１、基本フィールド（Ｂ２）４１２および変位フィールド（Ｄ２）４１３を含む。Ｂ２  ４１２はレジスタを示してもよく、その内容がＤ２  ４１３で指定される値に追加されて、タイム・スライス計装情報が記憶されることになるアドレスを識別する第２オペランド位置を与えることになる。１つまたは複数の実装において、フィールドは互いから別々かつ独立していてもよく；しかしながら、他の実施形態において、２つ以上のフィールドが結合されてもよい。更に、様々なフィールドおよびレジスタが記載されるが、本発明の１つまたは複数の態様が、他の、追加の、もしくは、より少ないフィールドもしくはレジスタ、または他のサイズのフィールドもしくはレジスタ等を使用してもよい。多くの変更が可能である。例えば、命令の明示的に特定されたレジスタまたはフィールドの代わりに、暗示されたレジスタが使用されてもよい。
【００５９】
動作において、ＴＳＩ情報は、第２オペランド位置に配置される。１つの実装において、第２オペランドは、長さが８つのダブル・ワードであってもよい。例として、条件コードは不変のままでもよい。命令に関する更なる情報が下記される。
【００６０】
例えば、スーパバイザ状態でストア・タイム・スライス計装カウンタ（ＳＴＳＩＣ）命令を実行することは、ＳＴＳＩＣ命令の第２オペランド位置にＴＳＩ情報を記憶域におけるブロックとして記憶する（ＳＴＳＩＣ記憶ブロックまたはデータ構造（図８に例示される）と称される）。ＴＳＩ情報およびＳＴＳＩＣ記憶ブロックは、ＴＳＩバージョン番号４２２の他に、所望の数のＴＳＩカウンタ最初および最後間隔ログ４２０、４２１を含んでもよく、単に例として、７つのカウンタ（Ｃ１…Ｃ７）最初および最後間隔ログが描かれている。
【００６１】
特定のマシンでサポートされるＴＳＩカウンタの数が、ＴＳＩＶＮ４２２によって示されるように、７未満である場合、サポートされていないＴＳＩカウンタと関連付けられたＳＴＳＩＣ記憶ブロックまたはデータ構造のＴＳＩカウンタ最初および最後間隔ログは、一例として、値FFFFFFFF hexを使用して記憶されてもよい。アクセス例外は、６４バイトのＳＴＳＩＣ記憶ブロックに対して認識されてもよい。
【００６２】
第１のＴＳＩ間隔が完了する前にＳＴＳＩＣ命令が実行されたことに基づいて、ＴＳＩカウンタ最初および最後間隔ログは、一例として、値FFFFFFFF hexを含んでもよい。
【００６３】
第２のＴＳＩ間隔が完了する前にＳＴＳＩＣ命令が実行されたことに基づいて、ＴＳＩカウンタ最後間隔ログは、一例として、値FFFFFFFF hexを含んでもよい。
【００６４】
言及したように、タイム・スライス計装のモデル依存の特性は、タイム・スライス計装バージョン番号（ＴＳＩＶＮ）４２２によって決定されてもよいが、これは言及したように、ＴＳＩ間隔（ＣＰＵサイクル数）の他に、監視されることになるＣＰＵイベントを示すことができる。
【００６５】
１つまたは複数の実装において、処理ユニットのタイム・スライス内の異なる実行間隔の間に計数される処理ユニット・イベントは、データ・キャッシュ・イベントなどのキャッシュ・イベントを含んでもよい。例えば、データ・キャッシュ・ミスまたはデータ・キャッシュ・ヒットが計数されてもよい。１つまたは複数の実装において、計数される処理ユニット・イベントは、第１四分位数におけるＬ１データ・キャッシュ・ミス、Ｌ２データ・キャッシュ・ミス、Ｌ２データ・キャッシュ・ヒット、第２四分位数におけるＬ２データ・キャッシュ・ヒット、第３四分位数におけるＬ２データ・キャッシュ・ヒット、第４四分位数におけるＬ２データ・キャッシュ・ヒット、データに対するＬ３共用キャッシュ・ヒット、またはデータに対するＬ３共用キャッシュ・ミスを含んでもよい。
【００６６】
１つまたは複数の実装において、制御プログラムが、潜在的に誤った解釈結果に至り得る、ＴＳＩデータ収集を起動することとＴＳＩ測定値を抽出することとの間で発生することがある様々な割り込みに気づいていてもよいことに留意されたい。ＳＴＳＩＣ命令を実行するプログラムは、サポートされているＴＳＩカウンタ最後間隔ログを、例えばFFFFFFFF hexの値を求めて調べることによって、不完全なまたは割り込まれたＴＳＩ測定、したがって使用不可能な結果を認識し得る。
【００６７】
様々な性能尺度レベルで異なる周波数で動くいくつかのモデルにわたってより一貫して見えるように、ＴＳＩ間隔継続時間が時間量でよりむしろ処理ユニット・サイクル数で測定されてもよいことにも留意されたい。１つまたは複数の実施形態において、ＴＳＩ間隔継続時間は、ＴＳＩカウンタがいかなる測定値を表すためにも３２ビットを超えて必要としないようにマシンごとに定められてもよい。潜在的なＴＳＩカウンタ・オーバフローは、マシン実装を単純化するために示されなくてもよい。
【００６８】
図９〜１１は、本発明の１つまたは複数の態様に従って、タイム・スライス計装機構がどのように利用されることができるかの１つの例を例示する。例として、図９は、処理ユニットＩＤ  Ａでの処理のためにスケジュールされているワークＩＤ１、２、３、４を有する４つのワーク単位を含むディスパッチ・キューを描く。この例では、ワークＩＤ２が大きなデータ・キャッシュ（Ｄｃａｃｈｅ）フットプリントを消費することが留意される。
【００６９】
図１０は、ディスパッチ・キューが処理ユニットＡ上の連続タイム・スライス５１０にワークＩＤ１、２、３、４をインタリーブした当初のディスパッチ・スケジュールの１つの例を描く。例として、「コールド」データ・キャッシュ・ミス率および「ウォーム」データ・キャッシュ・ミス率がタイム・スライス計装機構によって計数される。計数（または測定）されるタイム・スライス計装情報は、ワーク単位（ワークＩＤ１、２、３、４）などの各ワーク単位に対するタイム・スライスまたはディスパッチ時間内の最初および最後の期間の間にいかなる処理ユニット・キャッシュ・メトリックを含んでもよい。図１０に描かれる例において、拡張タイム・スライス５１０の最初の実行間隔５１１で、「コールド」データ・キャッシュ・ミス率は２０のうち１である一方、タイム・スライス５１０のための最後の実行間隔５１２は５０ごとに１であり、キャッシュ活用が最初の実行間隔より最後の実行間隔で効率的であることを意味する。特に、タイム・スライスの開始時に、処理ユニットＡ上の現在のワーク単位（例えば、ワークＩＤ１）に対してデータ・キャッシュが「コールド」であるとき、２０の命令ごとに１つがデータ・キャッシュ・ミスという結果になる一方で、最後の実行間隔５１２などのタイム・スライス後半で、データ・キャッシュ・ミス率は５０の命令ごとに１である。
【００７０】
各ワーク単位に対してそれらのそれぞれのタイム・スライスで、特に、最初および最後の実行間隔５１１、５１２内で、指定された処理ユニット・イベント（例えば、データ・キャッシュ・ミス率）を計数および追跡することによって、結果的なタイム・スライス計装情報は、例えば、図１１に描かれるように、ディスパッチ・スケジュールを変更するために使用されてもよい。この例において、例えば、ワークロード・マネージャまたはスケジューラによって、ワーク単位ＩＤ１およびＩＤ２が一組にグループ分けされ、そしてワーク単位ＩＤ３およびＩＤ４が一組にグループ分けされる。図１１に図示されるように、タイム・スライス５１０の最初および最後の実行間隔５１１、５１２におけるデータ・キャッシュ・ミス率を計数することによって、「コールド」データ・ミス率が今では３５の命令ごとに１であり、そして「ウォーム」データ・キャッシュ率は５０ごとに１のままであるため、処理ユニットＡ上で動くワークロードＩＤ１に対して、測定されたキャッシュ・メトリックは改善した。この例において、時間＝０と時間＝Ｔとの間の時間が、各ワーク単位が実行される累積時間量を表し、かつ図１０の当初のディスパッチ・スケジュールと図１１の変更したものとの間で比較すると同じであることに留意されたい。
【００７１】
図１２を参照すると、本明細書に開示されるタイム・スライス計装機構は、実行の間、処理ユニットに対するタイム・スライス計装情報を収集すること（６００）を含む処理を提供する。収集することは：処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生を、少なくとも部分的に計数することと；タイム・スライス内の第１の実行間隔およびタイム・スライス内の第２の実行間隔の間に発生した計数された処理ユニット・イベントを保持することとを含んでもよい。第１の実行間隔は、タイム・スライスにおいて第２の実行間隔より早く、そして計数された処理ユニット・イベントは、処理ユニットの性能を調節することを容易にする。
【００７２】
タイム・スライスは、処理ユニット実行の連続した期間であってもよく、そして指定された処理ユニット・イベントは、キャッシュ・イベントであっても、またはそれを含んでもよい（６０５）。処理ユニットは、複数の連続したタイム・スライスにわたって複数の異なるワーク単位の処理をインタリーブし、そして単一のタイム・スライスの間、複数の異なるワーク単位の単一のワーク単位が処理ユニットによって処理される（６１０）。
【００７３】
一例として、図１３に図示されるように、第１の実行間隔は、タイム・スライス内の最初の実行間隔を含んでもよく、そして第２の実行間隔は、タイム・スライス内の最も最近完了された実行間隔を含んでもよい（６１５）。１つまたは複数の実装において、第１および第２の実行間隔は、等しい継続時間であり、そして第２の実行間隔は、タイム・スライス内の最後の実行時間間隔を含んでもよい（６２０）。例示されるように、計数することは、処理ユニット実行のタイム・スライスの間、指定された処理ユニット・イベントの発生の計数を行う際に、処理ユニットにローカルなタイム・スライス計装カウンタを使用することを含んでもよい（６２５）。指定された処理イベントは、キャッシュ・ミスおよびキャッシュ・ヒットから成る群から選択されるデータ・キャッシュ・イベントを含んでもよい（６３０）。１つまたは複数の実施形態において、収集することは、タイム・スライス計装オン命令を実行することによって起動されてもよく（６３５）、そして保持することは、ストア・タイム・スライス計装カウンタ命令を実行することによって起動されてもよい（６４０）。
【００７４】
様々な例が提供されるが、特許請求される態様の思想から逸脱することなく変形が可能である。例えば、命令によって使用されるレジスタまたはフィールドあるいはその両方に含まれる値が、他の実施形態において、記憶場所等などの他の場所にあってもよい。多くの他の変形が可能である。
【００７５】
１つまたは複数の態様がクラウド・コンピューティングに関してもよい。
【００７６】
本開示がクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に詳述される教示の実装がクラウド・コンピューティング環境に限定されないことが事前に理解される。むしろ、本発明の実施形態は、現在知られている、または後に開発されるいずれの他の種類のコンピューティング環境と併せても実装されることが可能である。
【００７７】
クラウド・コンピューティングは、最小の管理労力またはサービスの提供者との相互作用で迅速にプロビジョニングおよび解放されることができる構成可能なコンピューティング・リソース（例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス）の共用プールへの簡便でオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデルおよび少なくとも４つの展開モデルを含んでもよい。
【００７８】
特性は以下の通りである：
オンデマンド・セルフサービス：クラウド消費者が、サービスの提供者との人間相互作用を必要とすることなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス：能力がネットワークを通じて利用可能であり、かつ異種シンまたはシック・クライアント・プラットフォーム（例えば、移動電話、ラップトップおよびＰＤＡ）による使用を促す標準メカニズムを通じてアクセスされる。
リソース・プーリング：提供者のコンピューティング・リソースがプールされて、マルチ・テナント・モデルを使用して複数の消費者に応対し、異なる物理および仮想リソースが需要に従って動的に割当ておよび再割り当てされる。消費者が、提供されたリソースの正確な位置に関する制御または知識を全体的に有しないが、より高抽象化レベル（例えば、国、州またはデータ・センタ）で位置を特定することができ得るという点で、位置独立の感覚がある。
迅速弾性：能力が迅速かつ弾性的に、場合によっては自動的に、プロビジョニングされて急速に拡大し、そして迅速に解放されて急速に縮小することができる。消費者にとって、プロビジョニングに利用可能な能力はしばしば無限であるように見えて、いつでもいかなる量でも購入されることができる。
度数制：クラウド・システムは、サービスの種類（例えば、ストレージ、処理、帯域幅およびアクティブ・ユーザ・アカウント）に適切な中抽象化レベルで測定能力を活かすことによってリソース使用を自動的に制御および最適化する。リソース使用が監視、制御および報告されて、活用されるサービスの提供者にも消費者にも透明性を提供することができる。
【００７９】
サービス・モデルは以下の通りである：
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供される能力は、クラウド・インフラストラクチャで動く提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ（例えば、ウェブベースの電子メール）などのシン・クライアント・インタフェースを通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション能力さえも含む下部クラウド・インフラストラクチャを管理または制御しないが、限られたユーザ特有のアプリケーション構成設定の可能性は除く。
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して作成された消費者作成または獲得アプリケーションをクラウド・インフラストラクチャ上へ展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む下部クラウド・インフラストラクチャを管理または制御しないが、しかし展開されたアプリケーションおよび場合により環境構成をホストしているアプリケーションに対する制御権を有する。
サービスとしてのインフラストラクチャ（ＩａａＳ）：消費者に提供される能力は、処理、ストレージ、ネットワーク、および消費者が、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを展開して動かすことができる、他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、下部クラウド・インフラストラクチャを管理または制御しないが、しかしオペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御権を有し、場合により選択ネットワーク部品（例えば、ホスト・ファイアウォール）の限られた制御権を有する。
【００８０】
展開モデルは以下の通りである：
プライベート・クラウド：クラウド・インフラストラクチャは組織のためだけに運営される。それは、組織または第三者によって管理されてもよく、そして構内にまたは構外に存在してもよい。
コミュニティ・クラウド：クラウド・インフラストラクチャはいくつかの組織によって共用され、そして懸念（例えば、任務、セキュリティ要件、規定およびコンプライアンス問題）を共用した特定のコミュニティをサポートする。それは、組織または第三者によって管理されてもよく、そして構内にまたは構外に存在してもよい。
パブリック・クラウド：クラウド・インフラストラクチャは一般大衆または大企業集団に利用可能であり、そしてクラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、一意のエンティティのままであるが、しかしデータおよびアプリケーション・ポータビリティ（例えば、クラウド間の負荷平衡のためのクラウド・バースティング）を可能にする標準化または専有技術によって結合される２つ以上のクラウド（プライベート、コミュニティまたはパブリック）の合成である。
【００８１】
クラウド・コンピューティング環境は、無国籍、低結合、モジュラー性および意味論的相互運用性に焦点が合わされたサービスである。クラウド・コンピューティングの中心は、相互接続したノードのネットワークを備えるインフラストラクチャである。
１つのそのようなノードが、図１に描かれるノード１０である。
【００８２】
コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの単に１つの例であり、本明細書に記載される本発明の実施形態の使用または機能性の範囲に関していかなる限定も示唆するとは意図されない。とにかく、クラウド・コンピューティング・ノード１０は、上記された機能性のいずれも実装されるまたは行うあるいはその両方をすることが可能である。
【００８３】
ここで図１４を参照すると、例示的なクラウド・コンピューティング環境５０が描かれる。図示されるように、クラウド・コンピューティング環境５０は、例えば、携帯情報端末（ＰＤＡ）もしくはセルラ電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃまたは自動車コンピュータ・システム５４Ｎあるいはその組合せなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信してもよい、１つまたは複数のコンピューティング・ノード１０を備える。ノード１０は、互いと通信してもよい。それらは、上記されたプライベート、コミュニティ、パブリックまたはハイブリッド・クラウド、あるいはその組合せなどの、１つまたは複数のネットワークで、物理的にまたは仮想的にグループ化されでもよい（図示せず）。これは、クラウド・コンピューティング環境５０が、クラウド消費者がローカル・コンピューティング・デバイス上のリソースを維持する必要がないサービスとしてインフラストラクチャ、プラットフォームまたはソフトウェアあるいはその組合せを提供するようにする。図１４に図示されるコンピューティング・デバイス５４Ａ−Ｎの種類が単に例示的であると意図され、そしてコンピューティング・ノード１０およびクラウド・コンピューティング環境５０が、任意の種類のネットワークまたはネットワーク・アドレス可能接続（例えば、ウェブ・ブラウザを使用する）あるいはその両方を通じて任意の種類のコンピュータ化デバイスと通信することができることが理解される。
【００８４】
ここで図１５を参照すると、クラウド・コンピューティング環境５０（図１４）によって提供される機能抽象化層の集合が図示される。図１５に図示される部品、層および機能が単に例示的であると意図され、そして本発明の実施形態がそれに限定されないことが事前に理解されるべきである。描かれるように、以下の層および対応機能が提供される：
ハードウェアおよびソフトウェア層６０は、ハードウェアおよびソフトウェア部品を含む。ハードウェア部品の例としては、メインフレーム６１；ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ６２；サーバ６３；ブレード・サーバ６４；ストレージ・デバイス６５；ならびにネットワークおよびネットワーキング部品６６を含む。いくつかの実施形態において、ソフトウェア部品は、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
仮想化層７０は、抽象化層を提供し、これから仮想エンティティの以下の例が提供されてもよい：仮想サーバ７１；仮想記憶域７２；仮想プライベート・ネットワークを含む、仮想ネットワーク７３；仮想アプリケーションおよびオペレーティング・システム７４；ならびに仮想クライアント７５。
【００８５】
１つの例において、管理層８０は、下記される機能を提供してもよい。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内のタスクを行うために活用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定８２は、クラウド・コンピューティング環境内でリソースが活用されるにつれてコスト追跡を、およびこれらのリソースの消費に対する課金または代金請求を提供する。１つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド消費者およびタスクに対する識別情報検証の他に、データおよび他のリソースに対する保護を提供する。ユーザ・ポータル８３は、消費者およびシステム管理者に対してクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割当ておよび管理を提供する。サービス・レベル合意（ＳＬＡ）計画および遂行８５は、ＳＬＡに従って将来の要件が予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
【００８６】
ワークロード層９０は、クラウド・コンピューティング環境が活用されることができる機能性の例を提供する。この層から提供されることができるワークロードおよび機能の例としては：マッピングおよびナビゲーション９１；ソフトウェア開発およびライフサイクル管理９２；仮想教室教育配信９３；データ解析処理９４；トランザクション処理９５；および命令処理９６を含む。
【００８７】
本発明は、任意の可能な技術詳細レベルの集積化のシステム、方法またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含んでもよい。
【００８８】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイスまたは上記の任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体例の非網羅的な列挙としては、以下を含む：ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチ・カードまたはそこに命令が記録される溝に隆起された構造などの機械的に符合化されたデバイス、および上記の任意の適切な組合せ。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通って伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通って伝送される電気信号など、それ自体一時的信号であるとは解釈されないものである。
【００８９】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワークまたはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えてもよい。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そしてコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【００９０】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などといったオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組合せで書かれるソース・コードかオブジェクト・コードかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でかつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続されてもよく、または外部コンピュータに接続がなされてもよい（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）。いくつかの実施形態において、例えば、プログラマブル論理回路網、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路網は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を活用して電子回路網を個人化することによってコンピュータ可読プログラム命令を実行してもよい。
【００９１】
本発明の態様は、本発明の実施形態に係る方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート例またはブロック図あるいはその両方を参照しつつ本明細書に記載される。フローチャート例またはブロック図あるいはその両方の各ブロック、およびフローチャート例またはブロック図あるいはその両方におけるブロックの組合せがコンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【００９２】
これらのコンピュータ可読プログラム命令は、命令が、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行し、フローチャートまたはブロック図の、あるいはその両方のブロックに特定される機能／行為を実装するための手段を生じさせるように、汎用コンピュータ、専用コンピュータまたは他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを生成してもよい。これらのコンピュータ可読プログラム命令はまた、そこに命令が記憶されるコンピュータ可読記憶媒体が、フローチャートまたはブロック図の、あるいはその両方のブロックに特定される機能／行為の態様を実装する命令を含む製品を構成するように、コンピュータ、プログラマブル・データ処理装置または他のデバイスあるいはその組合せに特定の方式で機能するように指図することができるコンピュータ可読記憶媒体に記憶されてもよい。
【００９３】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置または他のデバイス上で実行する命令が、フローチャートまたはブロック図の、あるいはその両方のブロックに特定される機能／行為を実装するように、コンピュータ、他のプログラマブル・データ処理装置または他のデバイスへロードされて、一連の動作ステップがコンピュータ、他のプログラマブル装置または他のデバイス上で行われてコンピュータ実装工程を生成させてもよい。
【００９４】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは命令のモジュール、セグメントまたは部分を表してもよく、それは特定された論理機能を実装するための１つまたは複数の実行可能命令を備える。いくつかの代替実装では、ブロックに示される機能は、図に示される順序と異なって生じてもよい。例えば、連続して図示される２つのブロックは、実際、実質的に並行して実行されてもよく、またはブロックは時には逆順に実行されてもよく、関与する機能性次第である。ブロック図またはフローチャート例の、あるいはその両方の各ブロック、およびブロック図またはフローチャート例における、あるいはその両方におけるブロックの組合せが、特定された機能または行為を行うか、または専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実装されることができることも留意されるであろう。
【００９５】
上記に加えて、１つまたは複数の態様が、顧客環境の管理を提案するサービス提供者によって提供、提案、展開、管理、実施等される。例えば、サービス提供者は、１人または複数の顧客のために１つまたは複数の態様を行うコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を作成、維持、サポート等することができる。代わりに、サービス提供者は、例として、会費または手数料あるいはその両方の合意の下で顧客から支払いを受けてもよい。追加的または代替的に、サービス提供者は、１人または複数の第三者への広告コンテンツの販売から支払いを受けてもよい。
【００９６】
一つの態様では、アプリケーションは、１つまたは複数の実施形態を行うために展開されてもよい。一つの例として、アプリケーションの展開は、１つまたは複数の実施形態を行うように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【００９７】
更なる態様として、コンピューティング・インフラストラクチャは、コンピューティング・システムへコンピュータ可読コードを組み込むことを含んで展開されてもよく、コードは、コンピューティング・システムと併せて１つまたは複数の実施形態を行うことが可能である。
【００９８】
更なる態様として、コンピュータ・システムへコンピュータ可読コードを組み込むことを含むコンピューティング・インフラストラクチャを組み込むためのプロセスが提供されてもよい。コンピュータ・システムは、コンピュータ可読媒体を備え、コンピュータ媒体は、１つまたは複数の実施形態を含む。コードは、コンピュータ・システムと併せて１つまたは複数の実施形態を行うことが可能である。
【００９９】
様々な実施形態が上記されたが、これらは単に例である。例えば、１つまたは複数の実施形態を組み込んで使用するために、他のアーキテクチャのコンピューティング環境が使用されることができる。更に、異なる命令、命令形式、命令フィールドまたは命令値あるいはその組合せが使用されてもよい。多くの変化が可能である。
【０１００】
更に、他の種類のコンピューティング環境が利益を得ることができて使用されることができる。一例として、プログラム・コードを記憶または実行するあるいはその両方をするのに適するデータ処理システムが、システムバスを通じてメモリ素子に直接または間接的に結合される少なくとも２つのプロセッサを含んで、使用可能である。メモリ素子は、例えば、プログラム・コードの実際の実行中に利用されるローカル・メモリ、バルク・ストレージ、および実行中にバルク・ストレージからコードが検索されなければならない回数を低減させるために少なくとも一部のプログラム・コードの一時記憶を提供するキャッシュ・メモリを含む。
【０１０１】
入出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス、ＤＡＳＤ、テープ、ＣＤ、ＤＶＤ、サム・ドライブおよび他のメモリ媒体等を含むがこれらに限定されない）がシステムに直接か介在Ｉ／Ｏコントローラを通じてかで結合されることができる。システムにネットワーク・アダプタも結合されて、データ処理システムが介在プライベートまたはパブリック・ネットワークを通じて他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合されることを可能にしてもよい。モデム、ケーブル・モデムおよびイーサネット・カードは、利用可能な種類のネットワーク・アダプタのごく一部である。
【０１０２】
本明細書で使用される専門用語は単に特定の実施形態を記載する目的のためであり、限定的であるとは意図されない。本明細書で使用される場合、単数形「ａ（ある１つの）」、「ａｎ（ある１つの）」および「ｔｈｅ（その）」は、文脈が別途明示しない限り、複数形も含むと意図される。用語「ｃｏｍｐｒｉｓｅｓ（備える）」または「ｃｏｍｐｒｉｓｉｎｇ（備えている）」あるいはその両方は、本明細書で使用されるとき、明記された特徴、完全体、ステップ、動作、要素または部品あるいはその組合せの存在を特定するが、しかし１つまたは複数の他の特徴、完全体、ステップ、動作、要素、部品またはその群あるいはその組合せの存在または追加を排除しないことが更に理解されるであろう。
【０１０３】
以下の請求項における、もしあれば、全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為および等価物は、詳細に特許請求される他の特許請求される要素と併せて機能を行うために任意の構造、材料または行為を含むと意図される。１つまたは複数の実施形態の記載が、例示および説明の目的で提示されたが、網羅的または開示された形態に限定されるとは意図されない。多くの変更および変形が当業者に明らかであろう。実施形態は、様々な態様および実際的応用を最良に説明するためにかつ当業者が企図された特定の使用に適した様々な変更を伴う様々な実施形態を理解することを可能にするために選ばれて記載される。
【図１】
2020504375.tif 000003
【図２】
2020504375.tif 000004
【図３】
2020504375.tif 000005
【図４】
2020504375.tif 000006
【図５】
2020504375.tif 000007
【図６】
2020504375.tif 000008
【図７】
2020504375.tif 000009
【図８】
2020504375.tif 000010
【図９】
2020504375.tif 000011
【図１０】
2020504375.tif 000012
【図１１】
2020504375.tif 000013
【図１２】
2020504375.tif 000014
【図１３】
2020504375.tif 000015
【図１４】
2020504375.tif 000016
【図１５】
2020504375.tif 000017
【国際調査報告】
2020504375.tif 000018
2020504375.tif 000019