JP2010086520A - 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム(中央演算処理装置測定機能の仮想化) - Google Patents

仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム(中央演算処理装置測定機能の仮想化) Download PDF

Info

Publication number
JP2010086520A
JP2010086520A JP2009174680A JP2009174680A JP2010086520A JP 2010086520 A JP2010086520 A JP 2010086520A JP 2009174680 A JP2009174680 A JP 2009174680A JP 2009174680 A JP2009174680 A JP 2009174680A JP 2010086520 A JP2010086520 A JP 2010086520A
Authority
JP
Japan
Prior art keywords
guest
measurement
sampling
computer
processing environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009174680A
Other languages
English (en)
Other versions
JP5547436B2 (ja
Inventor
Phil Yeh
フィル・イェ
Lisa C Heller
リサ・シー・ヘラー
Patrick M West
パトリック・エム・ウェスト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010086520A publication Critical patent/JP2010086520A/ja
Application granted granted Critical
Publication of JP5547436B2 publication Critical patent/JP5547436B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システムを提供する。
【解決手段】 仮想環境内で実行している複数ゲストによるその機能の同時使用をサポートするために、中央演算処理装置測定機能が仮想化される。その環境の各ゲストは、そのゲストについてその機能の使用不可化/使用可能化を独立して制御する。
【選択図】 図1

Description

本発明は、一般に、測定機能(measurement facility)に関し、特に、仮想化処理環境のための仮想化測定機能を提供することに関する。
システム・パフォーマンスの改善と、エラーの低減は、仮想化をサポートする環境を含む多くの処理環境において、優先度の高い目標である。このような目標を達成しようとして、診断ツールおよびチューニング・ツールが使用される。このようなツールの1つは、処理環境内で行われる処理に関連するデータを収集する測定機能である。
具体的には、ハードウェア内で発生する特定のイベントのアクティビティ・カウント(サイクル・カウント、命令カウントなど)を累積するためまたはその環境内で実行している中央演算処理装置のスナップショットを定期的に撮るためあるいはその両方のために、測定機能が使用される。この機能は、中央演算処理装置に関連する状態情報を記録する。この情報は、デバッグのためまたはシステム・パフォーマンスを改善するためあるいはその両方のために使用される。
現在、各測定時間ごとに、データが収集され、レジスタに保管され、制御プログラムに割り込みが提供される。割り込みが行われると、制御プログラムは測定データを読み出し、レジスタをリセットし、操作を再開する。各測定間隔におけるこの割り込みにより、重大なシステム・オーバヘッドが発生し、一部のリアルタイム環境では、測定されたデータをゆがめる可能性すらある。このオーバヘッド問題により、ユーザは、収集すべき測定データの量を制限し、その結果、測定機能の実用を制限している。
その上、中央演算処理装置では1つの測定機能しか実現されないので仮想環境で問題が発生するが、この機能は複数のゲストによって共用される可能性がある。このような共用により、収集したデータが壊れる可能性がある。
本出願とともに出願され、Bartik他による「CentralProcessing Unit Measurement Facility」という名称の米国特許出願第 号
2008年2月発行のIBM(R)資料No.SA22−7832−06「z/Architecture Principles of Operation」第7版
上記に基づき、現行の測定機能より破壊的ではなく、現行の測定機能より効果的な、強化された測定機能が必要である。特に、各サンプリング間隔で制御プログラムに対して割り込みを行わない測定機能が必要である。さらに、複数ゲストの同時実行を含む、仮想環境の様々な構成をサポートするためにフレキシブルに仮想化される測定機能が必要である。その上、特に測定機能が特定のCPUについてアクティブではないときに、もたらすシステム・オーバヘッドが多すぎないようにその機能を効率よく仮想化することが必要である。
処理環境内のデータの収集を管理するためのコンピュータ・プログラム(computerprogram product)の提供により、従来技術の短所は克服され、追加の利点が提供される。このコンピュータ・プログラムは、処理回路によって読み取り可能であり、ある方法を実行するためにコンピュータが実行するための命令を保管する記憶媒体を含む。この方法は、たとえば、仮想処理環境のあるゲストにより、そのゲストのアクティビティに関連する測定の使用可能化を制御するステップと、仮想処理環境の他のゲストにより、その他のゲストのアクティビティに関連する測定の使用可能化を制御するステップとを含み、あるゲストにより制御するステップが他のゲストにより制御するステップとは無関係であり、あるゲストと他のゲストについて同時に測定が使用可能になるか、あるいは、あるゲストと他のゲストのうちの一方については測定が使用可能になるが、あるゲストと他のゲストのうちのもう一方については測定が使用可能にならない。
本発明の1つまたは複数の態様に関連する方法およびシステムも本明細書に記載され、請求されている。さらに、本発明の1つまたは複数の態様に関連するサービスも記載され、本明細書で請求することができる。
追加の特徴および利点は本発明の技法により実現される。本発明のその他の諸実施形態および諸態様は、本明細書に詳細に記載され、請求された発明の一部と見なされる。
本発明の1つまたは複数の態様は、本明細書の終わりの特許請求の範囲において、詳細に指摘され、例として明瞭に請求される。本発明の上記その他の目的、特徴、および利点は、添付図面に併せて取られた以下の詳細な説明から明らかである。
本発明の1つまたは複数の態様を取り入れて使用するための処理環境の一実施形態を示す図である。 本発明の一態様により使用される様々なサンプリング制御レジスタの一例を示す図である。 本発明の一態様による図2のテーブル項目アドレス・レジスタの内容の一例を示す図である。 本発明の一態様による図2のデータ項目アドレス・レジスタの内容の一例を示す図である。 本発明の一態様による測定許可記述ブロックのフォーマットの一実施形態を示す図である。 本発明の一態様による測定使用可能記述ブロックのフォーマットの一実施形態を示す図である。 本発明の一態様による測定活動化記述ブロックのフォーマットの一実施形態を示す図である。 本発明の一態様による測定ブロックのフォーマットの一実施形態を示す図である。 本発明の一態様により図8に描写されている測定ブロックのサンプリング制御ブロックのフィールドの一実施形態を示す図である。 本発明の一態様により使用されるサンプリング・バッファの構造の一例を示す図である。 本発明の一態様による基本サンプリング・データ項目のフィールドの一実施形態を示す図である。 本発明の一態様による診断サンプリング・データ項目のフィールドの一実施形態を示す図である。 本発明の一態様によるトレーラ項目のフィールドの一実施形態を示す図である。 本発明の一態様によるサンプリング・バッファの更新に関連するロジックの一実施形態を示す図である。 本発明の一態様によるサンプリング・バッファの更新に関連するロジックの一実施形態を示す図である。 本発明の一態様により収集したデータをバッファから読み取るための割り込みの提供に関連するロジックの一実施形態を示す図である。 本発明の一態様によるサンプリング機能の実行に関連するロジックの概要の一実施形態を示す図である。 本発明の一態様によるサンプリング機能の実行に関連するロジックの概要の一実施形態を示す図である。 本発明の一態様によりゲストが再ディスパッチされるときに測定が許可されるかどうかを判断するために使用されるロジックの一実施形態を示す図である。 本発明の一態様により収集したデータとともに識別子の保管を可能にするためにサンプリング機能の実行とは非同期に実行される処理に関連するロジックの一実施形態を示す図である。 本発明の一態様により使用されるプログラム・パラメータ設定命令のフォーマットの一例を示す図である。 本発明の一態様により使用されるサンプリング情報照会命令のフォーマットの一実施形態を示す図である。 本発明の一態様によるサンプリング情報照会命令に関連する情報ブロックに関連するフィールドの一実施形態を示す図である。 本発明の一態様により使用されるカウンタ情報照会命令のフォーマットの一実施形態を示す図である。 本発明の一態様によるカウンタ情報照会命令に関連する情報ブロックに関連するフィールドの一実施形態を示す図である。 本発明の一態様により使用されるサンプリング制御設定命令のフォーマットの一実施形態を示す図である。 本発明の一態様によるサンプリング制御設定命令に関連する要求ブロックの一実施形態を示す図である。 本発明の一態様により使用されるCPUカウンタ・セット制御設定命令のフォーマットの一実施形態を示す図である。 本発明の一態様により1つまたは複数の処理装置上に測定ロジックを配備するためのロジックの一実施形態を示す図である。 本発明の一態様により1つまたは複数の処理装置上に測定ロジックを配備するためのロジックの一実施形態を示す図である。 本発明の1つまたは複数の態様を取り入れるコンピュータ・プログラムの一実施形態を示す図である。
本発明の一態様により、それが実行されている中央演算処理装置または共用周辺プロセッサのアクティビティを測定するCPU測定機能(カウンタ機能)、または中央演算処理装置上で実行されているタスク(たとえば、アプリケーション、モジュール、機能、命令など)に関するデータを収集するために指定のサンプリング間隔で中央演算処理装置のスナップショットを撮るCPU測定機能(サンプリング機能)が提供される。このデータは、パフォーマンス特性の統計的推定のために収集される。収集したサンプリング・データは選択した時間にバッファに保管され、バッファからデータを除去してその再使用を可能にするために割り込みが提供される。割り込みは、各サンプルの後に行われるわけではないが、データを除去し、データ損失を最小限にするために十分な時間をかけて行われる。
本発明の他の一態様では、仮想環境内で実行している複数ゲストによるその機能の同時使用をサポートするために、CPU測定機能が仮想化される。一例として、あるゲストが測定の使用可能化/使用不可化を独立して制御することができ、複数のゲストが(たとえば、カウンタを介して)同時にアクティビティのサンプリングまたは測定あるいはその両方を行うことができるように、測定機能が仮想化される。特定の一例では、あるゲストに割り当てられた各論理プロセッサは、測定機能を実行することができる。
本発明の1つまたは複数の態様を取り入れて使用する処理環境の一実施形態について、図1に関連して説明する。一例では、処理環境100は、たとえば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるz/Architecture(R)に基づくものである。z/Architecture(R)については、2008年2月発行のIBM(R)資料No.SA22−7832−06「z/Architecture Principles of Operation」第7版に記載されている。(z/Architecture(R)およびIBM(R)は米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。本明細書で使用するその他の名前は、インターナショナル・ビジネス・マシーンズ社またはその他の企業の登録商標、商標、または製品名である場合もある。)一例では、z/Architecture(R)に基づく処理環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるeServer zSeriesを含む。
この例では、処理環境100は中央演算処理装置複合システム(CPC:central processor complex)102を含む。中央演算処理装置複合システム102は、たとえば、1つまたは複数の区画またはゾーン104(たとえば、論理区画LP1〜LPn)と、1つまたは複数の中央処理装置(central processor)106(たとえば、CP1〜CPm)と、ハイパーバイザ108(たとえば、論理区画マネージャ)とを含み、そのそれぞれについて以下に説明する。
各論理区画104は、個別システムとして機能することができる。すなわち、各論理区画は、独立してリセットすることができ、望ましい場合、最初にオペレーティング・システムをロードすることができ、種々のプログラムで動作することができる。論理区画で実行されるオペレーティング・システムまたはアプリケーション・プログラムは、完全なシステム全体にアクセスできるように思われるが、その一部分のみが使用可能である。ハードウェアとライセンス内部コード(マイクロコードまたはミリコードともいう)との組み合わせにより、ある論理区画内のプログラムが異なる論理区画内のプログラムを妨害しないようにする。これにより、いくつかの異なる論理区画がタイム・スライス方式で単一または複数の物理プロセッサを操作することができる。この特定の例では、各論理区画は常駐オペレーティング・システム110を有し、そのオペレーティング・システムは1つまたは複数の論理区画ごとに異なる可能性がある。一実施形態では、オペレーティング・システム110は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供される、z/OS(R)またはz/Linuxオペレーティング・システムである。z/OS(R)はインターナショナル・ビジネス・マシーンズ社の登録商標である。
中央処理装置106は、論理区画に割り振られた物理プロセッサ・リソースである。たとえば、論理区画104は1つまたは複数の論理プロセッサ112を含み、そのそれぞれはその区画に割り振られた物理プロセッサ・リソース106のすべてまたは一部分(share)を表す。下にあるプロセッサ・リソースは、その区画に専用のものである場合もあれば、他の区画と共用される場合もある。
論理区画104は、プロセッサ106上で実行されるファームウェアによって実現されるハイパーバイザ108によって管理される。論理区画104およびハイパーバイザ108はそれぞれ、中央処理装置に関連する中央記憶域のそれぞれの部分に常駐する1つまたは複数のプログラムを含む。ハイパーバイザ108の一例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるプロセッサ・リソース/システム管理機構(PR/SM:Processor Resource/Systems Manager)である。
処理環境内の処理を容易にするための情報を提供するために、規則正しくデータが収集される。このデータは、たとえば、デバッグ目的またはシステム・パフォーマンスを改善するためあるいはその両方のために使用される。仮想処理環境では、測定機能(たとえば、カウンタまたはサンプリングあるいはその両方)114は、1つまたは複数の論理プロセッサ112上で実行される。この機能は、それが実行されている各論理プロセッサごとに、ハードウェア内で発生する特定のイベントのアクティビティ・カウント(サイクル・カウント、命令カウントなど)を累積するか(カウンタ)、プロセッサによって認識される処理時間間隔である指定のサンプリング間隔ごとに論理プロセッサのスナップショットを提供するか(サンプリング)、あるいはその両方を行う。各スナップショットは1組のサンプル・データを生成し、このサンプル・データは、たとえば、実行中の命令の命令アドレスと、論理プロセッサに関する何らかの状態情報とを含む。このサンプル・データは、たとえば、バッファの1つまたは複数のサンプル・データ・ブロックに保管される。
同様に、仮想化をサポートしていない処理環境(本明細書では非仮想環境という)では、測定機能は1つまたは複数の物理CPU上で実行され、この機能は、それが実行されている各CPUごとに、ハードウェア内で発生する特定のイベントのアクティビティ・カウント(サイクル・カウント、命令カウントなど)を累積するか、指定のサンプリング間隔ごとにCPUのスナップショットを提供するか、あるいはその両方を行う。非仮想環境用の測定機能の一実施形態は、本明細書に記載されているとともに、本出願とともに出願され、Bartik他による「Central Processing Unit Measurement Facility」という名称の米国特許出願第 号(POU920080207US1)にも記載されている。
測定機能について説明する際に、CPUに言及する。非仮想環境の場合、CPUは物理CPUである。しかし、仮想環境の場合、CPUは、ゲストに割り当てられた論理CPU(論理プロセッサともいう)である。物理CPUは仮想環境において複数のゲスト間で共用することができるので、測定に関連する状態情報および制御は各論理プロセッサごとに維持される。したがって、以下の考察では、制御について説明し、次に、仮想環境に関する任意の追加または変更を示す。さらに、測定機能のカウンタ機能とサンプリング機能の両方について説明する。
CPU測定カウンタ機能は、たとえば、4つのカウンタ・セットを含み、それぞれが、複数のカウンタと、1つのローカル・カウンタ状態制御レジスタと、いくつかの外部割り込みイベントと、たとえば、以下に説明するカウンタ情報照会命令およびCPUカウンタ・セット制御設定命令を含む様々な命令とを有する。
一例では、CPUカウンタ・セットは、基本カウンタ・セットと、問題プログラム状態カウンタ・セットと、暗号アクティビティ・カウンタ・セットと、拡張カウンタ・セットとを含み、そのそれぞれは、CPUが動作状態にあり、カウンタ・セットがアクティブであるときに、CPUの特定のアクティビティについて増分される複数のカウンタを含む。
それぞれのCPU上で、CPU測定カウンタ機能はローカル・カウンタ状態制御レジスタを提供し、このレジスタは、たとえば、各CPUカウンタ・セットに関する1ビットの許可制御(authorization control)と、1ビットの使用可能制御(enablecontrol)と、1ビットの活動化制御(activation control)とを含む。また、これは、コプロセッサ・グループ・カウンタ・セットに関する1ビットの許可制御も含む。許可制御を除き、ローカル・カウンタ状態制御レジスタの内容は、初期CPUリセット、クリア・リセット、またはパワーオン・リセットによって0(ゼロ)でクリアされる。許可制御は、外部手段によって設定またはリセットされる。
外部割り込みイベントとしては、カウンタ許可変更アラートおよびカウンタ・データ喪失アラートを含む。
一例では、CPU測定サンプリング機能は、2つのサンプリング機能と、いくつかのサンプリング制御レジスタと、いくつかの外部割り込みイベントと、様々な命令とを含み、そのそれぞれについて以下に説明する。
2つのサンプリング機能は、たとえば、基本サンプリングと診断サンプリングとを含む。基本サンプリング機能は1組の構築サンプル・データ(architected sample data)を提供する。サンプル・データは、例として、命令アドレスと、1次アドレス・スペース番号(PASN:primary address space number)と、CPUに関する何らかの状態情報とを含む。これにより、ツール・プログラムは命令アドレスをモジュールまたはタスクにマッピングすることができ、ホット・スポットの判断が容易になる。診断サンプリング機能は1組の非構築サンプル・データ(non-architected sample data)を提供し、ハードウェア設計アナリスト、オペレーティング・システム、高性能コンパイラ、および内部サブシステムによって使用されるためのものである。診断サンプリング機能によって提供されるサンプル・データは詳細な内部ハードウェア設計を明らかにする可能性があるので、この機能の使用を許可するために、制御付きパスワードを備えたコンソールを使用することができる。
基本サンプリング機能と診断サンプリング機能はいずれも、同じサンプリング制御レジスタと、同じサンプリング・バッファ構造と、同じ外部割り込みイベントと、同じ命令を使用する。この2つの機能の主な違いはサンプル・データである。
各サンプリング機能用のサンプル・データのサイズとフォーマットは、モデルに依存し、たとえば、各サンプル・データに保管される16ビットのデータ項目フォーマット・コードによって決定される。基本サンプリング機能によって提供されるサンプル・データは、診断サンプリング機能によって提供されるサンプル・データに含まれない。意味のある診断サンプリング・データを獲得するためには、どちらのサンプリング機能も活動化しなければならない。各サンプリング機能の状態は、以下に説明するサンプリング制御設定命令を実行することにより、個別に設定することができる。どちらのサンプリング機能も、初期CPUリセット、クリア・リセット、またはパワーオン・リセットによって使用不可になる。
一例では、外部割り込みイベントとしては、無効項目アドレス・アラート、不正確サンプル・データ・ブロック・テーブル項目アラート、プログラム要求アラート、サンプリング許可変更アラート、およびサンプル・データ喪失アラートを含む。これらのイベントは、測定アラート・サブクラスという外部割り込みサブクラスの一部である。サブクラス・マスク・ビット、たとえば、制御レジスタ0のビット58が提供される。このビットは1に初期設定され、これにより割り込みが可能になる。
CPU測定サンプリング機能はいくつかのサンプリング制御レジスタを提供する。許可制御を除き、これらの制御レジスタの内容は、初期CPUリセット、クリア・リセット、またはパワーオン・リセットによって0にクリアされるが、すべてのサンプリング機能を使用不可にするサンプリング制御設定命令を実行することにより0にクリアすることもできる。許可制御は、外部手段によって設定またはリセットされる。
サンプリング制御レジスタの例について、図2に関連して説明する。一例では、これらのレジスタはCPU内のハードウェア・レジスタである。図示の通り、サンプリング制御レジスタ200は、たとえば、テーブル項目アドレス・レジスタ(TEAR:table entry address register)202と、データ項目アドレス・レジスタ(DEAR:data entry address register)204と、最大バッファ・サイズ・インジケータ206と、サンプリング機能状態制御レジスタ208と、サンプリング間隔レジスタ210と、ホスト・インジケータ212とを含み、そのそれぞれについて以下に説明する。
図3に示されている通り、テーブル項目アドレス・レジスタ202は、たとえば、64ビットであり、現行サンプル・データ・ブロック・テーブル項目のアドレス220を含む。このアドレスが実アドレスであるか絶対アドレスであるかは予測不能である。
図4を参照すると、データ項目アドレス・レジスタ204は、たとえば、64ビットであり、次のサンプル・データ・ブロック・データ項目のアドレス230を含む。この場合も、このアドレスが実アドレスであるか絶対アドレスであるかは予測不能である。
一例では、最大バッファ・サイズ・インジケータ206は1ビットである。このインジケータが0である場合、サンプル・データ・ブロック・テーブルの最大サイズと、サンプル・データ・ブロックのサイズは4Kバイトである。このインジケータが1である場合、サンプル・データ・ブロック・テーブルの最大サイズと、サンプル・データ・ブロックのサイズは1Mバイトである。
サンプリング機能状態制御レジスタ208は、たとえば、6ビットであり、基本サンプリング機能に3ビットが割り当てられ、診断サンプリング機能に残りの3ビットが割り当てられる。各サンプリング機能ごとに、たとえば、許可制御(A)、使用可能制御(E)、および活動化制御(C)を含む、3つの状態制御インジケータがある。
サンプリング間隔レジスタ210は、たとえば、64ビットであり、このレジスタの内容は各サンプリング間隔内のCPUサイクルの数を指定する。
ホスト・インジケータ212は、たとえば、1ビットであり、論理区画レベルでCPUにとって使用可能なものである。CPUが論理区画レベルで実行しているときに、サンプリング機能がアクティブである場合、ホスト・インジケータが0であると、プログラム・パラメータ・レジスタの内容がサンプル・データ・ブロック更新プロセスによってサンプル・データ・ブロックのゲスト・プログラム・パラメータ・フィールドに保管されることを指定し、ホスト・インジケータが1であると、プログラム・パラメータ・レジスタの内容がホスト・プログラム・パラメータ・フィールドに保管されることを指定する。
CPUが動作状態にある場合、各カウンタ・セットまたはサンプリング機能は、例として、無許可(unauthorized)、使用不可(disabled)、非アクティブ(inactive)、およびアクティブ(active)という4つの状態のいずれかになることができる。
無許可: カウンタ・セットが無許可状態にある場合、カウンタは使用することができず、増分しない。サンプリング機能が無許可状態にある場合、この機能は使用することができず、サンプル・データはまったく保管されない。これらの機能の使用を許可するかまたは無許可にするために外部手段が提供される。
使用不可: カウンタ・セットまたはサンプリング機能が使用不可状態にある場合、カウンタ・セットまたはサンプリング機能は使用が許可されているが、プログラムはカウンタ・セットまたはサンプリング機能を使用可能にしていない。カウンタ・セットがこの状態にある場合、カウンタ・セット内のカウンタは増分せず、カウンタの内容を抽出または設定することができない。サンプリング機能がこの状態にある場合、この機能は使用が許可されているが、制御プログラムはこの機能をまだ使用可能にしていない。この状態では、新しいサンプル・データはまったく保管されず、サンプル・データ・ブロックの内容は変化せず、許可制御を除き、サンプリング制御はまったく保存されない。
非アクティブ: カウンタ・セットまたはサンプリング機能が非アクティブ状態にある場合、カウンタ・セットまたはサンプリング機能は許可され、使用可能になり、非活動化される。カウンタ・セットがこの状態にある場合、カウンタ・セット内のカウンタは増分せず、カウンタの内容は変化せず、抽出または設定することができる。サンプリング機能がこの状態にある場合、新しいサンプル・データはまったく保管されず、サンプル・データ・ブロックの内容は変化せず、サンプリング制御は保存され、抽出することができる。
アクティブ: カウンタ・セットまたはサンプリング機能がアクティブ状態にある場合、カウンタ・セットまたはサンプリング機能は許可され、使用可能になり、活動化される。カウンタ・セットがこの状態にある場合、セット内の各カウンタは定義済みアクティビティについて増分し、カウンタの内容は抽出または設定することができる。サンプリング機能がこの状態にある場合、この機能は許可され、使用可能になり、活動化される。この状態では、新しいサンプル・データは各サンプリング間隔中に保管され、サンプリング制御は抽出することができる。
CPUが動作状態から停止状態に入ると、アクティブ・カウンタ・セットおよびサンプリング機能は停止する。CPUが停止状態から動作状態に入ると、カウンタ・セットおよびサンプリング機能は、最後に停止したときの状態を再開する。
以下の表は、カウンタ・セットの状態遷移を引き起こすアクションを要約したものである。
Figure 2010086520
以下の表は、サンプリング機能の状態遷移を引き起こすアクションを要約したものである。
Figure 2010086520
仮想環境では、許可インジケータ、使用可能インジケータ、および活動化インジケータが状態記述(たとえば、各ゲストまたは論理プロセッサに関連する制御ブロック)に維持される。たとえば、この情報を維持するために使用される1組の制御ブロックは各論理プロセッサ用の状態記述内に保管される。これらの制御ブロックの例については、図5〜図9に関連して説明する。
図5を参照すると、ゲストがそれぞれの指定の測定機能を使用できるかどうかを制御するために、測定許可記述(MAD:measurement authorization description)制御ブロック240が使用される。これらの機能は、測定機能のカウンタ機能およびサンプリング機能の機能を含む。一例では、測定許可記述240は以下の制御を含む。
g242: コプロセッサ・グループ・カウンタ・セット許可制御 − Agが1である場合、ゲストはコプロセッサ・グループ・カウンタ・セットの使用を許可され、Agが0である場合、ゲストはそのカウンタ・セットの使用を許可されない。
コプロセッサ・グループ・カウンタ・セットが許可されると、カウンタは、そのカウンタ・セットがアクティブであるときに特定のアクティビティについて増分される。
s244: 基本サンプリング許可制御 − Asが1である場合、ゲストは基本サンプリング機能の使用を許可され、Asが0である場合、ゲストはサンプリング機能の使用を許可されない。
d245: 診断サンプリング許可制御 − Adが1である場合、ゲストは診断サンプリング機能の使用を許可され、Adが0である場合、ゲストは診断サンプリング機能の使用を許可されない。
c246: 暗号アクティビティ・カウンタ・セット許可制御 − Acが1である場合、ゲストは暗号アクティビティ・カウンタ・セットの使用を許可され、Acが0である場合、ゲストはそのカウンタ・セットの使用を許可されない。
p247: 問題プログラム状態カウンタ・セット許可制御 − Apが1である場合、ゲストは問題プログラム状態カウンタ・セットの使用を許可され、Apが0である場合、ゲストはそのカウンタ・セットの使用を許可されない。
b248: 基本カウンタ・セット許可制御 − Abが1である場合、ゲストは基本カウンタ・セットの使用を許可され、Abが0である場合、ゲストはそのカウンタ・セットの使用を許可されない。
e249: 拡張カウンタ・セット許可制御 − Aeが1である場合、ゲストは拡張カウンタ・セットの使用を許可され、Aeが0である場合、ゲストはそのカウンタ・セットの使用を許可されない。
使用されるもう1つの制御ブロックは、測定使用可能記述(MED:measurement enable description)ブロック250(図6)であり、これはゲストが各カウンタ・セットおよび各サンプリング機能を使用可能にしたかどうかを指定する。一例では、以下のように状況を定義する。
s252: 基本サンプリング使用可能制御 − Esが1である場合、基本サンプリング機能は使用可能になり、Esが0である場合、基本サンプリング機能は使用可能ではない。
d254: 診断サンプリング使用可能制御 − Edが1である場合、診断サンプリング機能は使用可能になり、Edが0である場合、診断サンプリング機能は使用可能ではない。
c256: 暗号アクティビティ・カウンタ・セット使用可能制御 − Ecが1である場合、暗号アクティビティ・カウンタ・セットは使用可能になり、Ecが0である場合、そのカウンタ・セットは使用可能ではない。
p257: 問題プログラム状態カウンタ・セット使用可能制御 − Epが1である場合、問題プログラム状態カウンタ・セットは使用可能になり、Epが0である場合、そのカウンタ・セットは使用可能ではない。
b258: 基本カウンタ・セット使用可能制御 − Ebが1である場合、基本カウンタ・セットは使用可能になり、Ebが0である場合、そのカウンタ・セットは使用可能ではない。
e259: 拡張カウンタ・セット使用可能制御 − Eeが1である場合、拡張カウンタ・セットは使用可能になり、Eeが0である場合、そのカウンタ・セットは使用可能ではない。
使用されるもう1つの制御ブロックは、測定活動化記述(MCD:measurement activation description)制御ブロック260(図7)であり、これはゲストが各カウンタ・セットおよび各サンプリング機能を活動化したかどうかを指定する。一例では、以下のように制御を定義する。
s261: 基本サンプリング活動化制御 − Csが1である場合、基本サンプリング機能はアクティブであり、Csが0である場合、基本サンプリング機能はアクティブではない。
d262: 診断サンプリング活動化制御 − Cdが1である場合、診断サンプリング機能はアクティブであり、Cdが0である場合、診断サンプリング機能はアクティブではない。
c263: 暗号アクティビティ・カウンタ・セット活動化制御 − Ccが1である場合、暗号アクティビティ・カウンタ・セットはアクティブであり、Ccが0である場合、そのカウンタ・セットはアクティブではない。
暗号アクティビティ・カウンタ・セットがアクティブであると、カウンタは、この論理CPUによって寄与されるコプロセッサ・グループの指定のアクティビティをカウントする。
p265: 問題プログラム状態カウンタ・セット活動化制御 − Cpが1である場合、問題プログラム状態カウンタ・セットはアクティブであり、Cpが0である場合、そのカウンタ・セットはアクティブではない。
問題プログラム状態カウンタ・セットがアクティブであると、カウンタは、CPUが問題プログラム状態にあるときに指定のアクティビティをカウントする。
b267: 基本カウンタ・セット活動化制御 − Cbが1である場合、基本カウンタ・セットはアクティブであり、Cbが0である場合、そのカウンタ・セットはアクティブではない。
基本カウンタ・セットがアクティブであると、CPUが問題プログラム状態にあるかスーパバイザ状態にあるかにかかわらず、カウンタは指定のアクティビティをカウントする。
e269: 拡張カウンタ・セット活動化制御 − Ceが1である場合、拡張カウンタ・セットはアクティブであり、Ceが0である場合、そのカウンタ・セットはアクティブではない。
拡張カウンタ・セットがアクティブであると、カウンタの数および意味はモデルに依存する。
さらに、状態記述の保留割り込みパラメータ(PIP:pending interruption parameter)は、保留測定アラート外部割り込み用のソースを含み、ゲスト接頭部域内の外部割り込みパラメータのフォーマットになっている。
その上、状態記憶の指定バイトの測定ブロック指定(MBD:measurement block designation)は、ホスト実記憶域内の測定ブロックの起点を指定するアドレスを含む。
測定ブロックのフォーマットの一例は、図8に描写し、以下に説明する。各カウンタ・セット内のカウンタは、そのカウンタ・セットに割り当てられたフィールドの起点から始まり、カウンタ番号の昇順に保管される。
測定ブロックへのアクセス中に発生したアクセス制御は、妥当性インターセプトにより報告される。
一例として、測定ブロック280は、たとえば、以下のものを含む。
基本カウンタ・セット282
問題プログラム状態カウンタ・セット284
暗号アクティビティ・カウンタ・セット286
拡張カウンタ・セット288
サンプリング制御ブロック290: サンプリング制御ブロックは128バイトであり、ゲスト・サンプリング制御レジスタの一部と追加の制御情報とを含む。サンプリング制御ブロックのフォーマットの一例について、図9に関連して説明する。
一例では、サンプリング制御ブロック290は、たとえば、以下のものを含む。
最大バッファ・サイズ・インジケータ(S)292: このインジケータは最大バッファ・サイズ・インジケータを含む。
ホスト・インジケータ(H)294: このインジケータはホスト・インジケータを含む。
サンプリング間隔296: このフィールドは、サンプリング間隔レジスタの内容を含む。
現行テーブル項目アドレス297: このフィールドは、テーブル項目アドレス・レジスタの内容を含む。
次のデータ項目アドレス298: このフィールドは、データ項目アドレス・レジスタの内容を含む。
サンプル・データは、たとえば、メイン・メモリ内のバッファに保管される。たとえば、各サンプリング間隔中にマシンがサンプル・データを保管するために、制御プログラム(たとえば、ゲストとして実行されるオペレーティング・システム)によっていくつかのサンプル・データ・ブロック(バッファを含む)が割り振られる。各サンプル・データ・ブロックは、サンプル・データ・ブロック・テーブル内のブロック・リンク項目によって指定される。サンプル・データ・ブロック・テーブルの現行項目はテーブル項目アドレス・レジスタの内容によって指定され、サンプル・データ・ブロックの次のデータ項目はデータ項目アドレス・レジスタの内容によって指定される。本発明の一態様によるサンプリング・バッファの構造の一例は、図10に描写する。
図10を参照すると、サンプリング・バッファ300は、1つまたは複数のサンプル・データ・ブロック・テーブル(SDBT)302と、1つまたは複数のサンプル・データ・ブロック(SDB)304とを含む。この特定の例では、3つのサンプル・データ・ブロック・テーブルが示され、それらのテーブルは循環リンク・リストとして結合されている。さらに、この例には、複数のサンプル・データ・ブロックがある。この特定の例に示されるように、サンプリング・バッファの他の例が、より多数、より少数、または同数のSDBT、あるいはより多数、より少数、または同数のSDB、もしくはその両方を有することができることは言うまでもない。
テーブル項目アドレス・レジスタ(TEAR)306の内容は、サンプル・データ・ブロック・テーブル302の現行項目を指し示す。各サンプル・データ・ブロック・テーブルには、たとえば、ブロック・リンク項目308とテーブル・リンク項目310を含む、2種類の項目が存在する。各ブロック・リンク項目308はサンプル・データ・ブロック(SDB)起点を含み、各テーブル・リンク項目はサンプル・データ・ブロック・テーブル(SDBT)起点を含む。この特定の実施形態では、各サンプル・データ・ブロック・テーブルは16バイトの規定境界から始まり、各項目は8バイトである。各サンプル・データ・ブロック・テーブル302は、いくつかのブロック・リンク項目308と1つのテーブル・リンク項目310とを含む。各項目内の指定のビット(たとえば、ビット63)はブロック・リンク項目とテーブル・リンク項目とを区別する。ビット63が0である場合、その項目はブロック・リンク項目であり、ビット63が1である場合、その項目はテーブル・リンク項目である。テーブル・リンク項目はサンプル・データ・ブロック・テーブル内の最後の項目である。サンプル・データ・ブロック・テーブルの実際のサイズは、テーブル・リンク項目の位置によって決定され、最大バッファ・サイズ・インジケータに指定されたサイズを超えない。サンプル・データ・ブロック・テーブルの起点およびテーブル・リンク項目は、この実施形態では、最大バッファ・サイズの規定境界によって分離することができない。
最大バッファ・サイズ・インジケータ320が0である場合、ブロック・リンク項目の指定の一部分(たとえば、ビット0〜51)は、実記憶域または絶対記憶域内のサンプル・データ・ブロックの起点を含む。サンプル・データ・ブロック起点をデータ項目アドレス・レジスタ内に置く予定である場合、64ビットのアドレスを形成するために右に複数の0(たとえば、12個の0)が付加され、その後、そのアドレスがレジスタ内に置かれる。
最大バッファ・サイズ・インジケータ320が1である場合、ブロック・リンク項目の指定のビット(ビット0〜43)は、実記憶域または絶対記憶域内のサンプル・データ・ブロックの起点を含む。サンプル・データ・ブロック起点をデータ項目アドレス・レジスタ内に置く予定である場合、64ビットのアドレスを形成するために右にいくつかの0(たとえば、20個)が付加され、その後、そのアドレスがレジスタ内に置かれる。
一例では、テーブル・リンク項目310のビット0〜59は、実記憶域または絶対記憶域内のサンプル・データ・ブロック・テーブルの起点を含む。サンプル・データ・ブロック・テーブル起点をテーブル項目アドレス・レジスタ内に置く予定である場合、64ビットのアドレスを形成するために右にいくつかの0(たとえば、4個)が付加され、その後、そのアドレスがレジスタ内に置かれる。
引き続き図10を参照すると、データ項目アドレス・レジスタ330の内容は、サンプル・データ・ブロック304の次のデータ項目332を指定する。各サンプル・データ・ブロックは、最大バッファ・サイズの規定境界から始まる。サンプル・データ・ブロックのサイズは、最大バッファ・サイズ・インジケータ内に指定されたサイズに等しい。
一例では、各サンプル・データ・ブロックには、たとえば、データ項目332とトレーラ項目336を含む、2種類の項目が存在する。サンプル・データ・ブロックの最後のバイト数(たとえば、64)はトレーラ項目を形成し、ブロック内の他のすべてのスペースを使用してデータ項目を形成する。
少なくとも1つのサンプリング機能がアクティブである場合、データ項目は各サンプリング間隔中に保管される。基本サンプリング機能のみがアクティブである場合、保管されるデータ項目は基本サンプリング・データ項目であり、診断サンプリング機能のみがアクティブである場合、保管されるデータ項目は診断サンプリング・データ項目である。どちらのサンプリング機能もアクティブである場合、保管されるデータ項目は複合データ項目である。これらのデータ項目のそれぞれについて、以下にさらに詳細に説明する。
基本サンプリング・データ項目の一例について、図11に関連して説明する。一例では、基本サンプリング・データ項目400は、たとえば、以下のフィールドを含む。
データ項目フォーマット・コード402: データ項目のビット0〜15はデータ項目のフォーマット・コードを含む。
固有命令の数(U)404: データ項目のビット20〜23は、固有サイクル・インジケータがオンであるときに、サンプリング・サイクル中に同時に実行された固有の完了した命令の数を指定する。
パイプライン化CPUは、オーバラップ方式で同時に複数の命令を実行することができ、すなわち、同時に実行されているこれらの命令のそれぞれは異なるパイプライン・ステージにある。さらに、一部のモデルでは、パイプライン化CPUの各ステージは複数の命令を同時に実行することができる。
命令実行中に、固有サイクル・インジケータは、サンプル・データが取られるCPU内の場所であるサンプル・ポイントで1サイクルの間、オンになる。サンプリング・ポイントはモデルに依存するが、同じモデル上で実行されるすべての命令について同じである。パイプライン化CPUの場合、サンプリング・ポイントは通常、特定のパイプライン・ステージである。モデルに応じて、固有サイクル・インジケータが命令実行中にオンになる時期は予測不能である。このフィールドは、固有サイクル・インジケータがオンであるときに、サンプリング・ポイントで同時に実行される命令の数を含む。
サンプリング時間が発生したときに、CPUが待ち状態であるためまたは他の何らかのパイプライン・ステージで遅延が発生しているためにサンプリング・ポイントが使用中ではない場合、このフィールドの内容は0に設定される。
このフィールドの内容は、十分に小さいサンプリング間隔と十分に多数のサンプルを使用するときの1命令あたりのサイクル数を推定するために使用することができる。
特定の測定に関する1命令あたりのサイクル数は、待ち状態ビット(以下に説明する)が0に設定されているサンプルである使用中サンプルの数を、すべての使用中サンプル内の固有命令の総数で割ることによって推定することができる。
DATモード(T)406: データ項目のビット26は、CPUのプログラム状況ワード(PSW:Program Status Word)内のデータ・アドレス変換(DAT)モード・ビットを含む。
待ち状態(W)408: データ項目のビット27は、CPUのPSW内の待ち状態ビットを含む。
問題プログラム状態(P)410: データ項目のビット28は、CPUのPSW内の問題プログラム状態ビットを含む。
アドレス・スペース制御(AS)412: データ項目のビット29〜30は、CPUのPSW内のアドレス・スペース制御を含む。
無効表示(I)414: データ項目のビット31は、その項目が有効であるか無効であるかを示す。このビットが0である場合、その項目は有効であり、このビットが1である場合、その項目は無効である。項目内のサンプル・データが一貫していない場合、その項目は無効に設定される。
1次ASN416: データ項目のバイト・オフセット6〜7は、CPUの制御レジスタ4のビット48〜63内の1次アドレス・スペース番号(PASN)を含む。
命令アドレス418: データ項目のバイト・オフセット8〜15は、サンプリング・サイクル中にCPUが実行している命令の命令アドレスを含む。
命令アドレスは、実モードでは実アドレスとして、1次アドレス・モード、2次スペース・モード、またはアクセス・レジスタ・モードでは1次仮想アドレスとして、ホーム・スペース・モードではホーム仮想アドレスとして処理される。
サンプリング・ポイントがサンプリング・サイクル中に同時に複数の命令を実行している場合、これらの同時に実行されている命令のうちの1つの命令のアドレスのみが報告される。どの命令アドレスを報告すべきかという選択はモデルに依存する。
一部のモデルでは、実行のターゲット命令のアドレスは同じデータで報告されない。待ち状態ビットが1である場合、このフィールドの内容は予測不能である。サンプリング時間が発生したときに、他の何らかのパイプライン・ステージで遅延が発生しているためにサンプリング・ポイントがいずれの命令も実行していない場合、CPU内で同時に実行されている命令のどのアドレスが報告されるかは予測不能である。
ゲスト・プログラム・パラメータ420: データ項目のバイト・オフセット16〜23は、CPUが論理区画レベルで実行していない場合またはCPUが論理区画レベルで実行していて、ホスト・インジケータが0である場合に現行プログラム・パラメータ・レジスタを含む。CPUが論理区画レベルで実行していて、ホスト・インジケータが1である場合、このフィールドに0が保管される。
ホスト・プログラム・パラメータ422: データ項目のバイト・オフセット24〜31は、CPUが論理区画レベルで実行していて、ホスト・インジケータが1である場合に現行プログラム・パラメータ・レジスタを含む。そうではない場合、このフィールドの内容は予測不能である。
診断サンプリング・データ項目440の一例について、図12に関連して説明する。一例では、診断サンプリング・データ項目440は、以下のものを含む。
データ項目フォーマット・コード442: データ項目のビット0〜15はデータ項目のフォーマット・コードを含む。
最大バッファ・サイズ444: ビット19は、最大バッファ・サイズを示すためのものである。0は4Kバイトを示し、1は1メガバイトを示す。
無効表示(I)446: データ項目のビット31は、その項目が有効であるか無効であるかを示す。このビットが0である場合、その項目は有効であり、このビットが1である場合、その項目は無効である。項目内のサンプル・データが一貫していない場合、その項目は無効に設定される。
この項目の残りの部分は非構築サンプル・データを含む。
基本サンプリング機能と診断サンプリング機能がどちらもアクティブである場合、各サンプリング間隔中に保管されたサンプル・データは複合データ項目であり、これは基本サンプリング・データ項目と、それに続く診断サンプリング・データ項目とを含む。
複合データ項目を保管する予定の場合、この項目は、十分なスペースがある場合、現行サンプル・データ・ブロックに完全に保管される。現行サンプル・データ・ブロックに十分なスペースがないときに、次のサンプル・データ・ブロックに十分なスペースがある場合、複合サンプル・データ全体が次のサンプル・データ・ブロックに保管される。複合データ項目の基本サンプリング・データ項目と診断サンプリング・データ項目は、この例では、異なるサンプル・データ・ブロックに保管されるわけではない。使用可能なスペースがないために複合サンプル・データが廃棄される場合、現行サンプル・データ・ブロックのサンプル・オーバフロー・カウントは1だけ増分される。
トレーラ項目に関連するフィールドの一実施形態について、図13に関連して説明する。各トレーラ項目は、たとえば、64バイトであり、サンプル・データ・ブロックの最後の64バイトに常駐する。一例では、トレーラ項目450は、たとえば、以下のものを含む。
ブロック・フル・インジケータ(F)452: トレーラ項目のバイト・オフセット0のビット0はブロック・フル・インジケータである。このインジケータが1である場合、サンプル・データ・ブロックは一杯である。
アラート要求制御(A)454: トレーラ項目のバイト・オフセット0のビット1はアラート要求インジケータである。このインジケータが1であって、サンプル・データ・ブロックが一杯になっている場合、サンプル・データ・ブロック更新プロセスの完了時にプログラム要求アラート外部割り込みイベントが認識される。本明細書では、それが完全に一杯であるかどうかにかかわらず、そのブロック・フル・インジケータが設定されると、サンプル・データ・ブロックは一杯であると見なされる。ブロックに追加のスペースがあるが、次のサンプルを保管するのに十分ではない場合、このインジケータが設定され、ブロックは一杯であると見なされる。
アラート要求制御の設定は選択可能である。たとえば、これは、x個(たとえば、10個)のデータ・ブロックごとに設定することができる。したがって、バッファのうちの1つのデータ・ブロックが一杯であっても、10番目の一杯のデータ・ブロックの後など、そのインジケータが設定されたデータ・ブロックに達するまで割り込みを行う必要はない。10という選択は一例に過ぎず、他の任意の所望の数を使用することができる。したがって、サンプル間隔後または1つのデータ・ブロックが一杯になった後でも割り込みは行われない。
サンプル・オーバフロー・カウント456: トレーラ項目のバイト・オフセット8〜15は、サンプル・データ・ブロックが一杯であるために失われたサンプル・データ項目の数を含む。
タイムスタンプ458: トレーラ項目のバイト・オフセット16〜31は、サンプル・データ・ブロックが一杯になったときの時刻(TOD)機構値を含む。
プログラム要求アラートが発生した場合、一杯であるサンプル・データ・ブロックからプログラム(たとえば、ゲストとして実行されるオペレーティング・システムなどの制御プログラム)がサンプル・データを読み出すことが予想される。これらのブロックを解放するために、プログラムは、ブロック・フル・インジケータ(F)とサンプル・オーバフロー・カウントをリセットし、アラート要求制御(A)を再確立することになる。一例では、インターロックされた更新として、ダブル比較およびスワップ命令を使用して、サンプル・データ・ブロック内のこれらのフィールドの更新が実行される。これらの読み取りおよび更新はいずれも、サンプリング機能がアクティブである間に実行される。
CPUが動作状態にあり、少なくとも1つのサンプリング機能がアクティブであるときに、サンプル・データ・ブロック更新プロセスは各サンプリング時間に実行される。このプロセスは、新しいデータ項目用のスペースを突き止め、その項目を形成し、レジスタの内容が次のデータ項目の位置を指定するようにデータ項目アドレス・レジスタの内容を更新する。
サンプル・データ・ブロック更新プロセス中に、他のアドレスにある値を追加することによって任意のアドレスが形成される場合、そのアドレスのビット位置0からの桁上げがある場合に、その桁上げは無視される。同様に、サンプル・オーバフロー・カウント・フィールドの内容が増分される場合、そのカウントのビット位置0からの桁上げがある場合に、その桁上げは無視される。
サンプル・データ・ブロックへのアクセスはキー制御保護を条件とせず、低アドレス保護も条件としない。
サンプル・データ・ブロック項目またはサンプル・データ・ブロック・テーブル項目への記憶アクセスが行われるときに、アドレスが無効である場合、測定アラート外部割り込みイベント(無効項目アドレス)が認識され、そのCPU用のアクティブ・サンプリング機能が非アクティブ状態になる。たとえば、アドレスが0〜8191の範囲内にある場合、指定のサンプル・データ・ブロック項目がトレーラ項目内部にある場合、または指定の記憶位置がこの構成で使用可能ではない場合、項目アドレスは無効である。
サンプル・データ・ブロック・テーブル項目への記憶アクセスが行われるときに、任意の不正確なSDBテーブル項目が検出された場合、測定アラート外部割り込みイベント(不正確サンプル・データ・ブロック・テーブル項目)が認識され、そのCPU用のアクティブ・サンプリング機能が非アクティブ状態になる。その項目がテーブル・リンク項目であって、それが他のテーブル・リンク項目を指定する場合、または最後のテーブル項目がテーブル・リンク項目ではない場合、サンプル・データ・ブロック・テーブル項目は不正確である。
データ項目アドレス・レジスタの内容は、現行サンプル・データ・ブロック内の次のデータ項目を突き止めるために使用される。次のデータ項目がサンプル・データ・ブロックのトレーラ項目(たとえば、最後の64バイト)内部に常駐する場合、測定アラート外部割り込みイベント(無効項目アドレス・アラート)が認識され、サンプリング機能は非アクティブ状態になる。
本発明の一態様によるサンプリング・バッファの更新に関連するロジックの一実施形態について、図14〜図15に関連して説明する。図14を参照すると、最初に、サンプリング機能中にサンプル・データが入手されており、ステップ500で、それをバッファに保管する予定である。照会502で、現行サンプル・データ・ブロックのトレーラ項目内のブロック・フル・インジケータが設定されている(たとえば、1に等しい)かどうかについて判断が行われる。ブロック・フル・インジケータが設定されている場合、この時点で、データを保管するためのバッファ内のスペースが不十分であることを示す。ステップ504で、トレーラ項目のサンプル・オーバフロー・カウント・フィールドの内容が1だけ増分され、ステップ506で、保管すべきサンプル・データが廃棄される。ステップ508で、これで更新プロセスが完了する。
しかし、照会502に戻り、現行サンプル・データ・ブロックのトレーラ項目内のブロック・フル・インジケータが0である場合、照会510で、サンプル・データを保管するためのスペースが十分であるかどうかについて判断が行われる。ブロック・フル・インジケータが0であって、十分なスペースが存在する場合、ステップ512で、サンプル・データは次のデータ項目に保管され、ステップ514で、データ項目アドレス・レジスタの内容はデータ項目サイズ分だけ増分される。ステップ508で、更新プロセスが完了する。
これに対して、照会510に戻り、ブロック・フル・インジケータが設定されておらず、次のデータ項目にサンプル・データを保管するためのスペースが十分ではない場合、ステップ520(図15)で、現行サンプル・データ・ブロックのトレーラ項目内のブロック・フル・インジケータが1に設定され、ステップ522で、時刻機構値がトレーラ項目のタイムスタンプ・フィールドに置かれる。
その後、照会524で、トレーラ項目内のアラート要求インジケータが1であるかどうかについて判断が行われる。トレーラ項目内のアラート要求インジケータが1である場合、ステップ526で、更新プロセスの終わりに測定アラート外部割り込みイベント(プログラム要求アラート)が認識される。その後、またはアラート要求インジケータが設定されていない場合、ステップ528で、SDBテーブル内の次の項目が現行SDBテーブル項目になるように、テーブル項目アドレス・レジスタの内容がSDBテーブル項目サイズ分だけ増分される。ステップ530で、現行SDBテーブル項目が取り出され、その項目のビット63が検査される。SDBテーブル項目のビット63が0である場合、その項目はブロック・リンク項目であって、サンプル・データ・ブロック(SDB)起点を含み、ビット63が1である場合、その項目はテーブル・リンク項目であって、サンプル・データ・ブロック・テーブル(SDBT)起点を含む。
照会532で、取り出された項目がSDBテーブル内の最後の項目である(すなわち、その項目が最大バッファ・サイズに達する前の最後の項目である)場合、しかも照会534で、その項目がテーブル・リンク項目ではない(すなわち、その項目のビット63が0である)場合、ステップ536で、測定アラート外部割り込みイベント(不正確SDBテーブル項目アラート)が認識される。ステップ538で、アクティブ・サンプリング機能が非アクティブ状態になり、更新プロセスが完了する。
照会534に戻り、それが最後の項目であり、ビット63が1である場合、ステップ540で、指定のテーブルが現行SDBテーブルになるように、その項目に指定されたSDBテーブルの起点のアドレスがテーブル項目アドレス・レジスタに置かれる。ステップ542で、現行SDBテーブル項目が取り出され、その項目のビット63が検査される。照会544で、ビット63が1である場合、テーブル・リンク項目によって指し示されたSDBテーブル項目自体がテーブル・リンク項目であることを示し、ステップ536で、測定アラート外部割り込みイベント(不正確SDBテーブル項目アラート)が認識される。ステップ538で、アクティブ・サンプリング機能が非アクティブ状態になり、更新プロセスが完了する。
しかし、照会544で、ビット63が0である場合、ステップ546で、そのブロックが現行サンプル・データ・ブロックになるように、その項目に指定されたサンプル・データ・ブロックの起点のアドレスがデータ項目・アドレス・レジスタに置かれる。次に処理は、上述の照会502(図14)に続く。
照会532(図15)に戻り、取り出された項目がSDBテーブル内の最後の項目ではない(すなわち、境界に達する前の最後の項目ではない)場合、しかも照会550で、取り出されたテーブル項目のビット63が0である場合、処理は、上述のステップ546に続く。しかし、取り出された項目のビット63が1である場合、テーブルにそれ以上のスペースがあっても、テーブル内にそれ以上の項目がないことを示し、次に処理は、上述のステップ540に続く。
ステップ526に関連して示した通り、一杯として示されているサンプル・データ・ブロックのトレーラ項目にアラート要求が設定されていると判断したことに応答して、更新プロセスの終わりに測定アラート外部割り込みイベントが認識される。この処理の一実施形態について、図16に関連して説明する。
図16を参照すると、ステップ580で、更新プロセスの終わりに割り込みが認識される。それに応答して、ステップ582で、制御プログラム(たとえば、ゲストとして実行されるオペレーティング・システム)は、1つまたは複数のサンプル・データ・ブロック(たとえば、一杯になっているブロック、あるいはデータまたはそのサブセットを有するすべてのブロック)に保管されたデータを読み取り、DASDまたは他の記憶媒体にそのデータを書き込む。さらに、インターロックされた更新操作において、制御プログラムは、ステップ584で、一杯になっていたいずれかのブロックのトレーラ項目内のブロック・フル・インジケータをリセットし、ステップ586で、アラート要求制御を再確立する。一例では、この再確立は、割り込みを開始したものと同じアラート・インジケータを設定すること(または設定を放置すること)を含む。しかし、他の例では、1つまたは複数の他のアラート・インジケータを設定することができる。そのデータをどの程度頻繁にダンプするかに応じて、1つまたは複数のトレーラ項目にアラート・インジケータを設定することができる。
アラート・インジケータは、たとえば、サンプル・データの喪失を最小限にし、バッファが一杯になる前にデータをダンプするために十分な時間を提供するように選択された少なくとも1つのデータ・ブロックに設定される。しかし、少量のデータが失われた場合、収集したデータは依然として有用であり続ける。これに対して、実現例に依存して、大量のデータが失われた場合、収集したサンプル・データは無視される。
図14〜図16に関連して説明したバッファ更新プロセスは、サンプル・データを取り込むために行われる全体的なサンプリング・プロセスの一部である。このサンプリング・プロセスはオペレータ要求によって始まり、その要求に応答してサンプリング機能が開始される。1つまたは複数のサンプリング機能が1人または複数のオペレータによって同時に開始される可能性がある。バッファ更新プロセスを含むサンプリング・プロセスは、非仮想環境と仮想環境のいずれでも実行することができる。仮想環境に関するサンプリング・プロセスの概要の一実施形態について、図17〜図19に関連して説明する。その後、仮想環境におけるカウンタに関する処理の概要を示す。
図17を参照すると、最初に、ステップ600で、オペレータがサンプリング機能を呼び出し、たとえば、サンプリング周波数F(たとえば、1分あたりに収集されるサンプルの数)、分単位のサンプリング実行の持続期間D、およびサンプリングのタイプ(たとえば、基本、診断、または複合)を含む、様々なパラメータを指定する。
さらに、ステップ602で、ホスト(たとえば、LPAR)は、実行すべきサンプリングの対象となる特定のゲストに関する許可インジケータを設定することにより、サンプリングを許可する。
ステップ604で、ゲスト(たとえば、オペレーティング・システムなどの制御プログラム)がディスパッチされる。その後、ステップ606で、ゲストは、サンプリング機能に関する情報を提供する命令であって、以下に説明するサンプリング情報照会(QSI)命令を発行する。一例では、この情報は、バイト単位の基本サンプリング・データ項目サイズ(BSDES)、バイト単位の診断サンプリング・データ項目サイズ(DSDES)、およびCPU速度=Cサイクル数/マイクロ秒を含む。得られた情報により、ステップ608で、制御プログラムは、測定内の各プロセッサに関するサンプリング間隔=iサイクル数/秒を計算する。たとえば、以下の通りである。
F=サンプル数/分単位の総合サンプリング周波数
p=測定に係わるプロセッサの数
f=(F/60)/p=サンプル数/秒単位の各プロセッサに関する個別サンプリング周波数
C=サイクル数/(10**−6)秒単位のCPU速度
i=(1/f)C=サイクル数/サンプル単位の各プロセッサに関する個別サンプリング間隔
さらに、ステップ610で、個別サンプリング周波数(上記で定義)f、サンプル・データ項目サイズL、およびサンプリング実行の指定の持続期間Dを使用して、各プロセッサごとにどのくらいの大きさのデータ・バッファが必要であるかを計算する。サンプル・データ項目サイズLは、指定のサンプリング・タイプと、QSI命令によって返される各項目タイプ(BSDESおよびDSDES)のサイズを使用して計算される。たとえば、以下の通りである。
L=バイト単位のサンプリング・データ項目サイズ
基本サンプリングのみを使用する場合、L=BSDES
診断サンプリングのみを使用する場合、L=DSDES
基本サンプリングと診断サンプリングの両方を使用する場合、L=BSDES+DSDES
f=サンプル数/秒単位の各プロセッサに関する個別サンプリング周波数
D=分単位のサンプリング実行の意図された持続期間
B=f60=サンプリング実行全体について個別プロセッサ上のすべてのサンプルに必要なバイト単位のバッファ・サイズ
ステップ612で、上記の情報に基づいて、ゲストはバッファ用の記憶域を割り振る。本発明の一態様により、全バッファ・サイズを割り振る必要はない。その代わりに、バッファの一部分のみが割り振られ、特定の時間に、バッファからデータを除去するための割り込みが開始され、同じバッファを再使用することができる。所望のバッファ・サイズについて記憶域が割り振られ、その記憶域は、図10に関連して説明したサンプリング・データ・バッファの形に構築される。
割り振られたバッファが一杯になる前にゲストが割り込みを処理できるように、ゲストによって割り振られるバッファ・サイズは十分な大きさになる予定である。この最小値より大きいバッファを割り振るには、ゲストに対する割り込みの頻度をより低くする必要があるであろう。ゲスト割り込み間に必要な時間は、次の割り込みが提示される前にそれぞれの割り込みの処理を保証するためのものである。ゲストは、割り振るために必要なバッファ・サイズの一部分を決定するときに、これらの要因を考慮する。
測定に係わる各プロセッサごとに割り振るべきバッファの最小サイズbは、個別サンプリング周波数f、サンプル・サイズL、および制御プログラム・サービス間隔Tを使用して計算される。たとえば、以下の通りである。
T=バッファを処理するために必要な制御プログラム割り込み間の秒単位の時間
b=fT=バイト単位の最小割り振りバッファ・サイズ
最小値と最大値が計算されると、ゲストは、安全マージンを含む、実用的なバッファ・サイズを決定する。たとえば、書き込み操作に対して同時に収集されるサンプルを失わずにバッファの非同期書き込みを行えるようにするために、最小バッファ・サイズbに4という値を掛けるが、書き込み操作が完了するには相当な時間を要することは言うまでもない。
その後、ステップ614で、ゲストは、サンプリング機能を活動化するために、以下に説明するサンプリング制御設定命令を発行する。この命令は、サンプリング制御において適切な使用可能化ビットおよび活動化ビットを設定する。この命令を発行したことに応答して、ステップ616で、サンプリングが実行され、サンプリングされたデータは図14〜図16に関連して説明したように処理される。
ステップ620で、ある時点でゲストが中断され、制御がホストに返される。これは、ゲストのタイム・スライスが期限切れになったことを含む、いくつかの理由で発生する可能性がある。ステップ628(図18)で、中断の一部として、残余サンプリング間隔インジケータが更新される。このインジケータは各ゲストごとに提供される。ゲストのタイム・スライスが終了すると、このインジケータは、次のサンプルが取られる前の残りの時間を記録するために使用される。たとえば、サンプリング間隔が10msであり、中断される前に6msでゲストの最後のサンプルが取られた場合、残余サンプリング間隔に4msが保存される。これは、このゲストが再ディスパッチされるときにこのサンプリング間隔で残っている時間として使用される。一例では、このインジケータは、以下に説明するように、ゲストに関連する測定ブロックに保管される。
さらに、ステップ630で、サンプリング制御などの制御が保存される。これは仮想環境であるので、上述の通り、各ゲストごとに制御を保存するために制御ブロックが提供される。たとえば、適切な使用可能化インジケータおよび活動化インジケータは、状態記述のMADおよびMCDに保管される。その上、保留割り込みパラメータは状態記述に保存される。
さらに、ステップ632で、1つまたは複数のハードウェア・インジケータを設定することにより、サンプリング機能が使用不可状態になり、ステップ634で、制御がホストに戻る。
上記のようにサンプル・データが取り込まれ、バッファに書き込まれることに加え、ゲストのアクティビティを反映するためにカウンタを更新することもできる。この処理は、図17〜図18に関連して説明したサンプリング・プロセスと同様である。たとえば、オペレータはカウンタを許可し、1つまたは複数のパラメータを指定する。さらに、ホストは、実行すべきカウンタの対象となる特定のゲストに関する許可インジケータを設定することにより、カウンタ機能を許可する。ゲストはディスパッチされ、その後、ゲストは、カウンタ機能に関する情報を提供する命令であって、以下に説明するカウンタ情報照会(QCTRI)命令を発行する。さらに、ゲストは、カウンタ機能を活動化するために、以下に説明するCPUカウンタ・セット制御設定命令を発行する。この命令は、カウンタ制御において適切な使用可能化ビットおよび活動化ビットを設定する。この命令を発行したことに応答して、カウンタ機能が実行される。
ゲストが中断されると、カウンタ制御が保存される。たとえば、適切な使用可能化インジケータおよび活動化インジケータはMADおよびMCDに保管され、保留割り込みパラメータは状態記述に保存される。制御はホストに戻る。
一例では、ゲストが再ディスパッチされると、照会650(図19)で、測定が依然として許可されるかどうかについてチェックが行われる。これは、一例では、許可インジケータをチェックするディスパッチ・ルーチン(たとえば、ミリコード)によって達成される。測定が許可されない場合、ステップ652で、たとえば、ゲスト割り込みを介してゲストに通知される。そうではない場合、ステップ654で、上述の通り、測定が進行する。
上記とは非同期に、本発明の一態様により、制御プログラムのディスパッチャがタスクをディスパッチするたびに、ステップ700(図20)で、ディスパッチャはプログラム・パラメータ設定命令を発行する。プログラム・パラメータ設定命令は、特定にタスクを識別する識別子でタスクにタグを付ける。この識別子は、そのデータがどのタスクに属すかが把握されるように、サンプル・データとともに提供される(たとえば、識別子はレジスタから取り出され、データとともに含まれる)。ディスパッチャはパフォーマンス・クリティカルであるので、測定機能が活動化されるかどうかを判断するためのテストはまったくない。その代わりに、この命令は、ディスパッチャがタスクをディスパッチするたびに発行される。一例では、構成がサンプリング用に構成されない場合、命令はノーオペレーションとして実行される。
プログラム・パラメータ設定命令の一実施形態について、図21に関連して説明する。一例として、プログラム・パラメータ設定命令750は以下のフィールドを含む。
命令コード752: このフィールドは、プログラム・パラメータ設定命令を指定する命令コードを含む。
2754およびD2756: B2フィールドによって指定された汎用レジスタの内容はD2フィールドの内容に追加され、第2オペランド・アドレスを形成する。
実行の際に、第2オペランド・アドレスによって指定された記憶位置の8バイトのプログラム・パラメータは、プログラム・パラメータ・レジスタ内に置かれる。一例では、このレジスタは64ビットのレジスタであり、このレジスタの内容は、初期CPUリセット、クリア・リセット、またはパワーオン・リセットによって0にクリアされる。特定の一例として、プログラム・パラメータ・レジスタは、実記憶域に維持される状態記述内に含まれる。
上記で参照したサンプリング情報照会命令は、その命令の第2オペランド・アドレスによって指定された情報ブロック内にCPU測定サンプリング機能に関する情報を入れるために使用される。一例では、サンプリング情報照会命令800(図22)は、たとえば、以下のものを含む。
命令コード802: このフィールドは、サンプリング情報照会命令を指定する命令コードを含む。
2804およびD2806: B2フィールドによって指定された汎用レジスタの内容はD2フィールドの内容に追加され、第2オペランド・アドレスを形成する。
一例では、情報ブロック820(図23)は64バイトであり、以下のものを含む。
サンプリング状態制御822: 状態ブロックのバイト・オフセット0〜3は、基本サンプリング機能および診断サンプリング機能に関する状態制御を含み、一例では、以下のフォーマットを有する。
Figure 2010086520
基本サンプリング・データ項目サイズ(BSDES)824: 情報ブロックのバイト・オフセット4〜5は符号なし2進整数を含み、基本サンプリング・データ項目のサイズをバイト単位で指定する。この情報は、一例では、マシン内でハードコーディングされる。
診断サンプリング・データ項目サイズ(DSDES)826: バイト・オフセット6〜7は符号なし2進整数を含み、診断サンプリング・データ項目のサイズをバイト単位で指定する。この情報は,一例では、マシン内でハードコーディングされる。
最小サンプリング間隔828: 情報ブロックのバイト・オフセット8〜15は、CPUサイクル数単位の最小サンプリング間隔を含む。この情報は,一例では、マシン内でハードコーディングされる。
最大サンプリング間隔830: バイト・オフセット16〜23は、CPUサイクル数単位の最大サンプリング間隔を含む。この情報は,一例では、マシン内でハードコーディングされる。
TEAR内容832: 基本サンプリング機能または診断サンプリング機能あるいはその両方が使用可能である場合、情報ブロックのバイト・オフセット24〜31はテーブル項目アドレス・レジスタの内容を含む。基本サンプリング機能または診断サンプリング機能のいずれも使用可能ではない場合、情報ブロックのバイト・オフセット24〜31に0が保管される。
DEAR内容834: 基本サンプリング機能または診断サンプリング機能あるいはその両方が使用可能である場合、情報ブロックのバイト・オフセット32〜39はデータ項目アドレス・レジスタの内容を含む。基本サンプリング機能または診断サンプリング機能のいずれも使用可能ではない場合、情報ブロックのバイト・オフセット32〜39に0が保管される。
CPU速度836: バイト・オフセット44〜47は符号なし2進整数を含み、マイクロ秒あたりのCPUサイクル数単位でCPU速度を指定する。この情報は、一例では、モデルに基づいてマシンによって提供される。
上記で参照したカウンタ情報照会命令は、その命令の第2オペランド・アドレスによって指定された情報ブロック内にCPU測定カウンタ機能に関する情報を入れるために使用される。一例では、カウンタ情報照会命令850(図24)は、たとえば、以下のものを含む。
命令コード852: このフィールドは、カウンタ情報照会命令を指定する命令コードを含む。
2854およびD2856: B2フィールドによって指定された汎用レジスタの内容はD2フィールドの内容に追加され、第2オペランド・アドレスを形成する。
一例では、情報ブロック870(図25)は64バイトであり、以下のものを含む。
カウンタ第1バージョン番号(CFVN)872: 情報ブロックのバイト・オフセット0〜1はカウンタ第1バージョン番号を含む。
許可制御874: 情報ブロックのバイト・オフセット2〜3は許可制御を含み、一例では、以下のフォーマットを有する。
Figure 2010086520
使用可能制御876: 情報ブロックのバイト・オフセット4〜5は使用可能制御を含み、一例では、以下のフォーマットを有する。
Figure 2010086520
活動化制御878: 情報ブロックのバイト・オフセット6〜7は活動化制御を含み、一例では、以下のフォーマットを有する。
Figure 2010086520
最大CPUアドレス880: 情報ブロックのバイト・オフセット8〜9は基本マシン・レベルの最大CPUアドレスを含む。
カウンタ第2バージョン番号(CSVN)882: バイト・オフセット10〜11はカウンタ第2バージョン番号を含む。
その一例について図26に関連して説明するサンプリング制御設定命令は、サンプリング制御を更新するために使用される。一実施形態のサンプリング制御設定命令900は、一例では、以下のフォーマットを有する。
命令コード902: このフィールドは、サンプリング制御設定命令を指定する命令コードを含む。
2904およびD2906: B2フィールドによって指定された汎用レジスタの内容はD2フィールドの内容に追加され、第2オペランド・アドレスを形成する。
命令実行中に、第2オペランド・アドレスによって指定された記憶位置の要求ブロック内のサンプリング制御は、対応するサンプリング制御レジスタ内に置かれる。要求ブロック内の制御の値は、以下に示す通り、オペレータまたは制御プログラム(たとえば、ゲストとして実行されるオペレーティング・システム)あるいはその両方によって提供される。
一例では、要求ブロックは64バイトであり、図27に関連して説明する通り、以下のフィールドを含む。
S922: 要求ブロックのビット0(S)は、オペレータによって指定された最大バッファ・サイズ・インジケータを指定する。
H924: CPUが論理区画レベルで実行している場合、要求ブロックのビット1(H)はホスト・インジケータである。CPUが論理区画レベルで実行していない場合、ビット1は無視され、0として処理される。これは制御プログラムによって指定される。
s926: 要求ブロックのビット54(Es)は、オペレータからの入力パラメータに基づいて設定される基本サンプリング使用可能制御を指定する。
d928: 要求ブロックのビット55(Ed)は、オペレータからの入力パラメータに基づいて設定される診断サンプリング使用可能制御を指定する。
s930: 要求ブロックのビット62(Cs)は、オペレータからの入力パラメータに基づいて設定される基本サンプリング活動化制御を指定する。
d932: 要求ブロックのビット63(Cd)は、オペレータからの入力パラメータに基づいて設定される診断サンプリング活動化制御を指定する。要求ブロックのビット2〜53(925)およびビット56〜61(929)は0である。
サンプリング機能の指定の使用可能制御および活動化制御は、両方のサンプリング機能が有効な状態遷移を行える場合にのみ設定される。サンプリング機能が有効な状態遷移を行えない場合、どのサンプリング機能についても指定の状態制御が設定されない。
サンプリング機能が使用不可状態、非アクティブ状態、またはアクティブ状態からアクティブ状態に設定される場合、最大バッファ・サイズ・インジケータ、ホスト・インジケータ、サンプリング間隔934、テーブル項目アドレス・レジスタの内容936、およびデータ項目アドレス・レジスタの内容938を含む追加の制御はサンプリング制御レジスタ内に置かれる。操作によりいかなるサンプリング機能もアクティブ状態にならない場合、追加の制御は無視され、サンプリング制御レジスタ内に置かれない。
サンプリング機能が使用不可状態、非アクティブ状態、またはアクティブ状態からアクティブ状態に設定される予定であるときに、要求されたサンプリング間隔がサポートされる範囲の外側である場合、サンプリング制御レジスタ内の任意の状態制御を含むサンプリング制御はいずれも変更されず、指定例外が認識される。サポートされるサンプリング間隔の範囲は、サンプリング情報照会命令を実行することによって提供される最大サンプリング間隔と最小サンプリング間隔との間(両端の値を含む)である。
一例では、両方のサンプリング機能に関する使用可能制御および活動化制御が設定される場合、条件コード0が設定される。使用可能制御および活動化制御が設定されない場合、条件コード3が設定される。
その一例について図28に関連して説明するCPUカウンタ・セット制御設定命令は、カウンタ状態制御を更新するために使用される。一実施形態のCPUカウンタ・セット制御設定命令950は、一例では、以下のフォーマットを含む。
命令コード952: このフィールドは、CPUカウンタ・セット制御設定命令を指定する命令コードを含む。
2954およびD2956: B2フィールドによって指定された汎用レジスタの内容はD2フィールドの内容に追加され、第2オペランド・アドレスを形成する。
命令実行中に、第2オペランド・アドレスによって指定された記憶位置のCPUカウンタ・セット状態制御は、ローカル・カウンタ状態制御レジスタ内に置かれる。
一例では、第2オペランドは64ビットであり、第2オペランドのビット44〜47およびビット60〜63がCPUカウンタ・セットに関する状態制御を指定する。これらのビットは、たとえば、以下のものを含む。
第2オペランドのビット44(Ec)は、暗号アクティビティ・カウンタ・セットに関する使用可能制御を含む。
第2オペランドのビット45(Ep)は、問題カウンタ・セットに関する使用可能制御を含む。
第2オペランドのビット46(Eb)は、基本カウンタ・セットに関する使用可能制御を含む。
第2オペランドのビット47(Ee)は、拡張カウンタ・セットに関する使用可能制御を含む。
第2オペランドのビット60(Cc)は、暗号アクティビティ・カウンタ・セットに関する活動化制御を含む。
第2オペランドのビット61(Cp)は、問題カウンタ・セットに関する活動化制御を含む。
第2オペランドのビット62(Cb)は、基本カウンタ・セットに関する活動化制御を含む。
第2オペランドのビット63(Ce)は、拡張カウンタ・セットに関する活動化制御を含む。
すべてのCPUカウンタ・セットが有効な状態遷移を行える場合、CPUカウンタ・セットの指定の状態制御が設定される。カウンタ・セットが有効な状態遷移を行えない場合、一実施形態では、どのカウンタ・セットについても指定の状態制御が設定されない。
ハードウェア内で発生する特定のイベントのアクティビティ・カウント(サイクル・カウント、命令カウントなど)を累積するか、それが実行されている中央演算処理装置のスナップショットを定期的に撮るか、あるいはその両方を行い、実行中の命令を含むCPU状態情報(たとえば、命令コード、命令に関する問題が存在するかどうかなど)を記録するCPU機能について、上記で詳細に説明した。各サンプリング時間に、サンプル・データがバッファ内に置かれる。バッファが定義済み量のデータを有する場合、バッファからデータを除去するために、割り込みが提示される。
本発明の他の一態様により、仮想環境の構成をサポートするために、測定機能が仮想化される。仮想環境では、この機能は、独立してしかも同時に1つまたは複数のゲストによって使用することができる。
本発明のさらに他の一態様では、1つまたは複数の処理装置上に測定ロジックの1つまたは複数の態様を配備するための技法が提供される。配備ロジックの一実施形態について、図29〜図30に関連して説明する。
図29を参照すると、最初に、照会1000で、測定ロジックが実行されたときに1つまたは複数のサーバ上に常駐する問題が存在するかどうかについて判断が行われる。存在する場合、ステップ1002で、実行可能プログラムを含むための1つまたは複数のサーバが識別され、ステップ1004で、1つまたは複数のサーバ用の測定ロジックが、たとえば、ファイル転送プロトコル(FTP)または何らかの他のプロトコルを介して、あるいは共用ファイル・システムの使用によるコピーにより、サーバの記憶域に直接転送される。次に、ステップ1006で、ロジックがサーバにインストールされる。
その後、または実行可能プログラムがまったくない場合、照会1008で、ユーザに1つまたは複数のサーバ上のロジックにアクセスさせることにより測定ロジックが配備されるかどうかについて追加の判断が行われる。ユーザがサーバ上の測定ロジックにアクセスする場合、ステップ1010で、ロジックを保管する予定であるサーバ・アドレスが識別される。一例では、照会1012(図30)で、測定ロジックを保管するためにプロキシ・サーバが構築される予定であるかどうかについて判断が行われる。プロキシ・サーバは、Webブラウザなどのクライアント・アプリケーションと実サーバとの間に位置するサーバである。プロキシ・サーバは、その要求自体を満たすことができるかどうかを確認するために、実サーバへの要求をインターセプトする。満たすことができない場合、プロキシ・サーバは、その要求を実サーバに転送する。プロキシ・サーバの2つの主要な利点は、パフォーマンスを改善することと、要求をフィルタリングすることである。プロキシ・サーバが構築される場合、ステップ1014で、そのプロキシ・サーバがインストールされる。
その後、またはプロキシ・サーバが構築されない場合、ステップ1016で、測定ロジックは、ファイル転送プロトコル(FTP)などのプロトコルを介してサーバに送信されるか、あるいはファイル共用を介してソース・ファイルからサーバ・ファイルに直接コピーされる。他の例として、測定ロジックを含む1つまたは複数のサーバにトランザクションが送信され、そのサーバがトランザクションを処理し、ロジックを受信して、そのロジックをサーバのファイル・システムにコピーする。
測定ロジックがサーバで保管された後、ステップ1018で、ユーザは自分のクライアント・コンピュータを介してサーバ上のロジックにアクセスし、ロジックの少なくとも一部分を自分のクライアント・コンピュータのファイル・システムにコピーすることができる。次に、ユーザは、ステップ1020で、クライアント・コンピュータ上にロジックをインストールするプログラムを実行する。他の一例では、サーバは、サンプリング・ロジックの1つまたは複数の態様を各クライアントに自動的にコピーし、その後、各クライアント・コンピュータでそのロジック用のインストール・プルグラムを実行する。これにより、ステップ1022で、配備処理の一例が終了する。
照会1008(図29)に戻り、ユーザに1つまたは複数のサーバ上のロジックにアクセスさせることによりロジックが配備されない場合、処理は、照会1030で、電子メールを介してロジックをユーザに送信することによりロジックが配備されるかどうかという判断を続行する。そのように配備される場合、ステップ1032で、ロジックが配備される1組のユーザはユーザのクライアント・コンピュータのアドレスとともに識別される。測定ロジックは、ステップ1034(図30)で、ユーザのクライアント・コンピュータのそれぞれに電子メールを介して送信される。ユーザは、ステップ1036で、電子メールを受信し、ステップ1038で、電子メールから自分のクライアント・コンピュータ上のディレクトリに測定ロジックを切り離す。ユーザは、ステップ1020で、クライアント・コンピュータにロジックをインストールするプログラムを実行し、ステップ1022で、プロセスを終了する。
照会1030(図29)に戻り、電子メールを介して測定ロジックが配備されない場合、ステップ1040で、ロジックがユーザのクライアント・コンピュータ上のユーザ・ディレクトリに直接送信されるかどうかについてさらに判断が行われる。直接送信される場合、ステップ1042で、ユーザ・ディレクトリが識別される。測定ロジックは、ステップ1044(図30)で、ユーザのクライアント・コンピュータのディレクトリに直接転送される。これは、ファイル・システム・ディレクトリを共用し、その後、送信側のファイル・システムから受信側ユーザのファイル・システムにコピーすること、あるいは、ファイル転送プロトコル(FTP)などの転送プロトコルを使用することなどを含むが、これらに限定されないいくつかの方法で実行することができる。ユーザは、ステップ1046で、測定ロジックのインストールに備えて、自分のクライアント・ファイル・システム上のディレクトリにアクセスする。ユーザは、ステップ1020で、クライアント・コンピュータにロジックをインストールするプログラムを実行し、ステップ1022で、配備プロセスを終了する。
照会1040(図29)に戻り、ロジックがユーザのディレクトリに直接送信されない場合、ステップ1050で処理が終了する。
ロジックを配備する一実施形態が提供されるが、本発明の精神を逸脱せずに多くの変形例が可能である。
顧客環境の管理を提供するサービス・プロバイダにより、本発明の1つまたは複数の態様の提供、提案、配備、管理、処理などを行うことができる。たとえば、サービス・プロバイダは、1人または複数の顧客のために本発明の1つまたは複数の態様を実行するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方の作成、維持、サポートなどを行うことができる。それと引き替えに、サービス・プロバイダは、例として、加入契約または料金契約あるいはその両方に基づいて顧客から支払を受けることができる。さらにまたは代わって、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告内容の販売により支払を受けることができる。
本発明の一態様では、上述の通り、本発明の1つまたは複数の態様を実行するためのアプリケーションを配備することができる。一例として、アプリケーションを配備することは、本発明の1つまたは複数の態様を実行するために動作可能なコンピュータ・インフラストラクチャを提供することを含む。
本発明の他の一態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含む、コンピューティング・インフラストラクチャを配備することができ、そのコードはコンピューティング・システムと組み合わせて本発明の1つまたは複数の態様を実行することができる。
本発明のさらに他の一態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、コンピューティング・インフラストラクチャを統合するためのプロセスを提供することができる。このコンピュータ・システムはコンピュータ使用可能媒体を含み、そのコンピュータ使用可能媒体は本発明の1つまたは複数の態様を含む。そのコードはコンピュータ・システムと組み合わせて本発明の1つまたは複数の態様を実行することができる。
本発明の1つまたは複数の態様は、たとえば、コンピュータ使用可能媒体を有する装置(article of manufacture)(たとえば、1つまたは複数のコンピュータ・プログラム)に含めることができる。この媒体は、たとえば、本発明の諸機能を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック(たとえば、命令、コード、コマンドなど)をそこに有する。この装置は、コンピュータ・システムの一部として含めるか、または別個に販売することができる。
図31に関連して、本発明の1つまたは複数の態様を取り入れた装置またはコンピュータ・プログラムの一例について説明する。コンピュータ・プログラム1100は、たとえば、本発明の1つまたは複数の態様を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック1104をそこに保管するための1つまたは複数のコンピュータ使用可能媒体1102を含む。この媒体は、電子、磁気、光学、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
1つまたは複数のコンピュータ可読プログラム・コード手段またはロジックによって定義された1つまたは複数の相関モジュールの論理アセンブリあるいは一連のプログラム命令は、本発明の1つまたは複数の態様の実行を指示するものである。
有利なことに、本発明の1つまたは複数の態様の測定機能は、仮想環境の複数のゲストによって同時に使用可能である。それぞれのゲストは、その機能がそのゲストについて使用可能であるかどうかを制御する。測定機能は、仮想環境内の論理プロセッサのサブセットまたはすべての論理プロセッサ上で使用可能にすることができる。ゲストのデータの整合性を保護するために、制御は個別に維持される。
有利なことに、本発明の1つまたは複数の態様の測定機能は、測定が実行されるたびに割り込みを必要とするわけではない。その代わりに、マークされたサンプル・データ・ブロックがほぼ一杯である(たとえば、次のデータ項目を保管するための十分なスペースがない)と判断されたときまたは所望の時間にのみ、割り込みが実行される。割り込みの回数を低減することにより、システム・パフォーマンスが強化される。さらに、バッファを解放することにより、同じバッファが繰り返し使用され、したがって、必要なバッファ・スペースの量が減少する。
様々な実施形態が上述されているが、これらは例に過ぎない。たとえば、様々な命令が本明細書に記載されているが、本発明の1つまたは複数の態様は、コマンド、関数など、命令以外のものを使用することができる。さらに、命令のフォーマットは、種々のフィールド、種々のサイズ・フィールド、種々の位置決めなど、それぞれ異なる可能性がある。さらに、本明細書に記載されているエンティティ(たとえば、要求ブロック、項目のフィールド、情報ブロック)の情報は、種々の情報を有することができ、フィールドのサイズならびに位置決めもそれぞれ異なる可能性がある。予約フィールドまたはゼロを含むフィールドは、エンティティから除去されている可能性がある。その上、エンティティ内の情報の一部は、本発明の1つまたは複数の態様のために使用されないかまたは必要ではない場合もある。多くの他の変形例が可能である。
処理環境の一例が本明細書に示されているが、これは一例に過ぎない。処理環境の多くの他の例は、本発明の1つまたは複数の態様を取り入れて使用することができる。たとえば、処理環境は1つまたは複数のゲストをサポートする1つのCPUのみを有する場合がある。他の一例では、処理環境は本明細書に記載したものとは異なる制御プログラムを実行している場合もある。さらに、処理環境は、インターナショナル・ビジネス・マシーンズ社によって提供されるz/VM(R)などの仮想計算機を実行している場合もある(z/VM(R)はインターナショナル・ビジネス・マシーンズ社の登録商標である)。一例では、VMが論理区画内で実行されているときに、VMがゲストに関するサンプル・データを収集している場合、VMはホスト・インジケータを1に設定することになる。これにより、論理区画レベルで設定されたプログラム・パラメータ・レジスタの内容がVMサンプル・データ・ブロック内のデータ項目のホスト・プログラム・パラメータ・フィールドに保管され、仮想計算機レベルで設定されたプログラム・パラメータ・レジスタの内容がVMサンプル・データ・ブロック内のデータ項目のゲスト・プログラム・パラメータ・フィールドに保管されるであろう。この場合、仮想計算機レベルで設定されたプログラム・パラメータ・レジスタの内容はゲストによって設定され、タスクIDを指定することができ、論理区画レベルで設定されたプログラム・パラメータ・レジスタの内容はVMによって設定され、ゲストIDを指定することができる。これらの2つの組み合わせにより、サンプル・データに寄与したゲスト・タスクを明確に識別する。多くの他の変形例も可能である。
さらに、他のタイプのコンピューティング環境は本発明の1つまたは複数の態様から恩恵を受けることができる。一例として、ある環境はエミュレータ(たとえば、ソフトウェアまたはその他のエミュレーション・メカニズム)を含むことができ、そこで特定のアーキテクチャ(たとえば、命令実行、アドレス変換などの構築された機能、構築されたレジスタを含む)またはそのサブセットが(たとえば、プロセッサおよびメモリを有するネイティブ・コンピュータ・システム上で)エミュレートされる。このような環境では、エミュレータを実行しているコンピュータがエミュレート中の機能とは異なるアーキテクチャを有する可能性があっても、エミュレータの1つまたは複数のエミュレーション機能は本発明の1つまたは複数の態様を実現することができる。一例として、エミュレーション・モードでは、エミュレート中の特定の命令または操作がデコードされ、個々の命令または操作を実現するために適切なエミュレーション機能が構築される。
エミュレーション環境では、ホスト・コンピュータは、たとえば、命令およびデータを保管するためのメモリと、メモリから命令を取り出し、任意選択で取り出した命令についてローカル・バッファリングを行うための命令取り出しユニットと、命令取り出しユニットを受け入れ、取り出された命令のタイプを決定するための命令デコード・ユニットと、命令を実行するための命令実行ユニットとを含む。実行は、メモリ用のレジスタにデータをロードすること、レジスタからメモリにデータを戻すこと、あるいはデコード・ユニットによって決定されたように何らかのタイプの算術演算または論理演算を実行することを含むことができる。一例では、それぞれのユニットはソフトウェアで実現される。たとえば、各ユニットによって実行される操作は、エミュレータ・ソフトウェア内の1つまたは複数のサブルーチンとして実現される。
さらに、プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムであって、直接またはシステム・バスを介して間接的にメモリ・エレメントに結合された少なくとも1つのプロセッサを含むものが使用可能である。メモリ・エレメントは、たとえば、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、ならびに、実行中にコードを大容量記憶装置から取り出さなければならない回数を削減するために少なくとも何らかのプログラム・コードの一時記憶を行うキャッシュ・メモリを含む。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、およびその他の記憶媒体などを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを介してシステムに結合することができる。データ処理システムが介在する私設網または公衆網を介して他のデータ処理システムまたはリモート・プリンタあるいは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
本発明の1つまたは複数の態様の諸機能は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの何らかの組み合わせで実現することができる。本発明の諸機能を実行するためにマシンによって実行可能な複数命令からなる少なくとも1つのプログラムを実施するマシンによって読み取り可能な少なくとも1つのプログラム記憶装置を提供することができる。
本明細書に描写されている流れ図は例に過ぎない。本発明の精神を逸脱せずに、これらの流れ図またはそこに記載されているステップ(または操作)に対する多くの変形例が可能である。たとえば、これらのステップを異なる順序で実行するか、ステップを追加、削除、または変更することができる。これらの変形例はいずれも、請求された本発明の一部と見なされる。
本明細書で使用する「入手する(obtaining)」という用語は、受信すること、提供されること、取り出すこと、決定すること、アクセスすることなどを含むが、これらに限定されない。
諸実施形態が本明細書に詳細に描写され記載されているが、本発明の精神を逸脱せずに、様々な変更、追加、置き換えなどが可能であることは当業者には明らかになることであり、したがって、これらは特許請求の範囲に定義された本発明の範囲内のものであると見なされる。
100 処理環境
102 中央演算処理装置複合システム(CPC)
104 論理区画(LP)
106 中央処理装置
108 ハイパーバイザ
110 オペレーティング・システム(OS)
112 論理プロセッサ
114 測定機能

Claims (20)

  1. 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラムであって、前記コンピュータ・プログラムが、コンピュータに、
    前記仮想処理環境のあるゲストにより、前記あるゲストのアクティビティに関連する測定の使用可能化を制御するステップと、
    前記仮想処理環境の他のゲストにより、前記他のゲストのアクティビティに関連する測定の使用可能化を制御するステップとを含み、
    前記あるゲストにより制御する前記ステップが前記他のゲストにより制御する前記ステップとは無関係であり、前記あるゲストと前記他のゲストについて同時に測定が使用可能になるか、あるいは、前記あるゲストと前記他のゲストのうちの一方については測定が使用可能になるが、前記あるゲストと前記他のゲストのうちのもう一方については測定が使用可能にならないステップ
    を実行させる、コンピュータ・プログラム。
  2. 前記あるゲストにより制御する前記ステップが測定を使用可能にするステップを含み、使用可能にする前記ステップが前記あるゲストの論理プロセッサ上で測定を使用可能にするステップを含む、請求項1記載のコンピュータ・プログラム。
  3. 前記使用可能化が、前記あるゲストについてサンプリングおよびカウンタのうちの少なくとも1つを使用可能にするステップを含む、請求項2記載のコンピュータ・プログラム。
  4. 前記あるゲストの論理プロセッサが、前記論理プロセッサに関するサンプリング・データを維持するために前記論理プロセッサに割り当てられ、それに関連する測定ブロックを有する、請求項2記載のコンピュータ・プログラム。
  5. 前記論理プロセッサが、前記論理プロセッサに関する測定の状態を維持するために、それに関連する1つまたは複数の制御ブロックを有する、請求項4記載のコンピュータ・プログラム。
  6. 前記あるゲストが前記仮想処理環境のある論理区画で実行し、前記他のゲストが前記仮想処理環境の他の論理区画で実行する、請求項1記載のコンピュータ・プログラム。
  7. 前記あるゲストが中断され、前記方法が、残余間隔において、前記あるゲストについて次のサンプルが取られる前に残っている時間量を記録するステップをさらに含む、請求項1記載のコンピュータ・プログラム。
  8. 前記あるゲストの再ディスパッチに応答して再開が行われ、前記再ディスパッチに応答して、
    前記あるゲストが依然として測定の実行を許可されているかどうかを判断するために許可チェックが実行され、
    前記あるゲストが許可されていないことを前記許可チェックが示す場合に前記あるゲストに通知が行われる、請求項7記載のコンピュータ・プログラム。
  9. 前記サンプリングに応答して、サンプル・データがバッファに書き込まれる、請求項3記載のコンピュータ・プログラム。
  10. 前記あるゲストにより制御する前記ステップが前記あるゲストに関する測定を使用不可にするステップを含み、前記他のゲストにより制御する前記ステップが前記他のゲストに関する測定を使用可能にするステップを含む、請求項1記載のコンピュータ・プログラム。
  11. 仮想処理環境内のデータの収集を容易にするためのコンピュータによって実行される方法であって、前記方法が、
    前記仮想処理環境のあるゲストにより、前記あるゲストのアクティビティに関連する測定の使用可能化を制御するステップと、
    前記仮想処理環境の他のゲストにより、前記他のゲストのアクティビティに関連する測定の使用可能化を制御するステップとを含み、
    前記あるゲストにより制御する前記ステップが前記他のゲストにより制御する前記ステップとは無関係であり、前記あるゲストと前記他のゲストについて同時に測定が使用可能になるか、あるいは、前記あるゲストと前記他のゲストのうちの一方については測定が使用可能になるが、前記あるゲストと前記他のゲストのうちのもう一方については測定が使用可能にならない、コンピュータによって実行される方法。
  12. 前記あるゲストにより制御する前記ステップが測定を使用可能にするステップを含み、使用可能にする前記ステップが前記あるゲストの論理プロセッサ上で測定を使用可能にするステップを含む、請求項11記載のコンピュータによって実行される方法。
  13. 前記あるゲストが中断され、前記方法が、残余間隔において、前記あるゲストについて次のサンプルが取られる前に残っている時間量を記録するステップをさらに含む、請求項11記載のコンピュータによって実行される方法。
  14. 仮想処理環境内のデータの収集を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
    メモリと、
    前記メモリと通信するプロセッサとを含み、
    前記コンピュータ・システムがある方法を実行することができ、前記方法が、
    前記仮想処理環境のあるゲストにより、前記あるゲストのアクティビティに関連する測定の使用可能化を制御するステップと、
    前記仮想処理環境の他のゲストにより、前記他のゲストのアクティビティに関連する測定の使用可能化を制御するステップとを含み、
    前記あるゲストにより制御する前記ステップが前記他のゲストにより制御する前記ステップとは無関係であり、前記あるゲストと前記他のゲストについて同時に測定が使用可能になるか、あるいは、前記あるゲストと前記他のゲストのうちの一方については測定が使用可能になるが、前記あるゲストと前記他のゲストのうちのもう一方については測定が使用可能にならない、コンピュータ・システム。
  15. 前記あるゲストにより制御する前記ステップが測定を使用可能にするステップを含み、使用可能にする前記ステップが前記あるゲストの論理プロセッサ上で測定を使用可能にするステップを含む、請求項14記載のコンピュータ・システム。
  16. 前記あるゲストの論理プロセッサが、前記論理プロセッサに関するサンプリング・データを維持するために前記論理プロセッサに割り当てられ、それに関連する測定ブロックを有する、請求項15記載のコンピュータ・システム。
  17. 前記論理プロセッサが、前記論理プロセッサに関する測定の状態を維持するために、それに関連する1つまたは複数の制御ブロックを有する、請求項16記載のコンピュータ・システム。
  18. 前記あるゲストが前記仮想処理環境のある論理区画で実行し、前記他のゲストが前記仮想処理環境の他の論理区画で実行する、請求項14記載のコンピュータ・システム。
  19. 前記あるゲストが中断され、前記方法が、残余間隔において、前記あるゲストについて次のサンプルが取られる前に残っている時間量を記録するステップをさらに含む、請求項14記載のコンピュータ・システム。
  20. 前記あるゲストの再ディスパッチに応答して再開が行われ、前記再ディスパッチに応答して、
    前記あるゲストが依然として測定の実行を許可されているかどうかを判断するために許可チェックが実行され、
    前記あるゲストが許可されていないことを前記許可チェックが示す場合に前記あるゲストに通知が行われる、請求項19記載のコンピュータ・システム。
JP2009174680A 2008-10-02 2009-07-27 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム(中央演算処理装置測定機能の仮想化) Active JP5547436B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/244,496 US9449314B2 (en) 2008-10-02 2008-10-02 Virtualization of a central processing unit measurement facility
US12/244496 2008-10-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013248278A Division JP5657090B2 (ja) 2008-10-02 2013-11-29 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム

Publications (2)

Publication Number Publication Date
JP2010086520A true JP2010086520A (ja) 2010-04-15
JP5547436B2 JP5547436B2 (ja) 2014-07-16

Family

ID=42076882

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009174680A Active JP5547436B2 (ja) 2008-10-02 2009-07-27 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム(中央演算処理装置測定機能の仮想化)
JP2013248278A Active JP5657090B2 (ja) 2008-10-02 2013-11-29 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013248278A Active JP5657090B2 (ja) 2008-10-02 2013-11-29 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム

Country Status (4)

Country Link
US (3) US9449314B2 (ja)
JP (2) JP5547436B2 (ja)
KR (1) KR101107363B1 (ja)
TW (1) TWI453582B (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013136703A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
WO2013136706A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Determining the status of run-time-instrumentation controls
WO2013136700A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Run-time instrumentation reporting
JP2015507809A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9367313B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation directed sampling
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9372693B2 (en) 2012-03-16 2016-06-21 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9395989B2 (en) 2012-03-16 2016-07-19 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9400736B2 (en) 2012-03-16 2016-07-26 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9483269B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
JP2020505668A (ja) * 2017-01-19 2020-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 保留外部割り込みテスト命令

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449314B2 (en) 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US8701120B2 (en) 2009-02-27 2014-04-15 International Business Machines Corporation Virtualization of storage buffers used by asynchronous processes
US8850450B2 (en) * 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
US9110878B2 (en) 2012-01-18 2015-08-18 International Business Machines Corporation Use of a warning track interruption facility by a program
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
GB2551747B (en) * 2016-06-29 2019-04-10 Advanced Risc Mach Ltd Diagnostic data capture
US11422851B2 (en) * 2019-04-22 2022-08-23 EMC IP Holding Company LLC Cloning running computer systems having logical partitions in a physical computing system enclosure

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235700A1 (en) * 2007-03-19 2008-09-25 Kabushiki Kaisha Toshiba Hardware Monitor Managing Apparatus and Method of Executing Hardware Monitor Function

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023A (en) * 1851-04-08 Fastening down table-leaves
JPS631834A (ja) 1986-06-19 1988-01-06 Showa Electric Wire & Cable Co Ltd 制振定盤
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JPH041834A (ja) * 1990-04-19 1992-01-07 Nec Corp 入出力装置のエラー情報収集方法およびその装置
US6286025B1 (en) * 1994-12-09 2001-09-04 International Business Machines Corporation Method and system of process identification by user defined process variables
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
US6023759A (en) * 1997-09-30 2000-02-08 Intel Corporation System for observing internal processor events utilizing a pipeline data path to pipeline internally generated signals representative of the event
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
US5809450A (en) * 1997-11-26 1998-09-15 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
JP2000020349A (ja) 1998-07-06 2000-01-21 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体
US6195730B1 (en) * 1998-07-24 2001-02-27 Storage Technology Corporation Computer system with storage device mapping input/output processor
US6954923B1 (en) * 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US6976083B1 (en) * 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US6345324B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Apparatus for transferring data using an interface element and a queued direct input-output device
US6347341B1 (en) * 1999-02-22 2002-02-12 International Business Machines Corporation Computer program product used for exchange and transfer of data having a siga vector and utilizing a queued direct input-output device
US6574727B1 (en) * 1999-11-04 2003-06-03 International Business Machines Corporation Method and apparatus for instruction sampling for performance monitoring and debug
US6539502B1 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Method and apparatus for identifying instructions for performance monitoring in a microprocessor
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US6983303B2 (en) * 2002-01-31 2006-01-03 Hewlett-Packard Development Company, Lp. Storage aggregator for enhancing virtualization in data storage networks
US6996748B2 (en) 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7502917B2 (en) * 2002-12-05 2009-03-10 International Business Machines Corporation High speed memory cloning facility via a lockless multiprocessor mechanism
JP4001834B2 (ja) 2003-04-01 2007-10-31 Hoya株式会社 グレートーンマスクの欠陥検査方法及びグレートーンマスクの製造方法
US7610473B2 (en) * 2003-08-28 2009-10-27 Mips Technologies, Inc. Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
US20050223180A1 (en) * 2004-03-31 2005-10-06 Philip Derbeko Accelerating the execution of I/O operations in a storage system
US7447140B2 (en) * 2004-07-30 2008-11-04 Seagate Technology Llc Ferroelectric probe storage apparatus
JP2006113767A (ja) * 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US7716638B2 (en) * 2005-03-04 2010-05-11 Microsoft Corporation Methods for describing processor features
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US7478219B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Retrieving event data for logical partitions
US7353369B1 (en) * 2005-07-13 2008-04-01 Nvidia Corporation System and method for managing divergent threads in a SIMD architecture
US7380049B2 (en) * 2005-09-06 2008-05-27 Intel Corporation Memory protection within a virtual partition
US7359759B2 (en) * 2005-10-31 2008-04-15 Taiwan Semiconductor Manufacturing Company Method and system for virtual metrology in semiconductor manufacturing
US7620938B2 (en) * 2005-10-31 2009-11-17 Microsoft Corporation Compressed program recording
JP4814617B2 (ja) * 2005-11-01 2011-11-16 株式会社日立製作所 ストレージシステム
US7478180B1 (en) * 2005-12-14 2009-01-13 Vmware, Inc. Virtualizing a communications channel in which blocks of data are divided into multiple sub-blocks for conveyance
JP4839841B2 (ja) * 2006-01-04 2011-12-21 株式会社日立製作所 スナップショット再起動方法
US7461299B2 (en) * 2006-03-08 2008-12-02 Intel Corporation Monitoring writes to cache as part of system error handling
US7945908B1 (en) * 2006-03-31 2011-05-17 Vmware, Inc. Method and system for improving the accuracy of timing and process accounting within virtual machines
TWI315054B (en) * 2006-05-10 2009-09-21 Nat Cheng Kung Universit Method for evaluating reliance level of a virtual metrology system in product manufacturing
TWI297506B (en) * 2006-06-09 2008-06-01 Powerchip Semiconductor Corp Method and system for virtual metrology prediction for quality control in semiconductor manufacture
US7925862B2 (en) * 2006-06-27 2011-04-12 Freescale Semiconductor, Inc. Coprocessor forwarding load and store instructions with displacement to main processor for cache coherent execution when program counter value falls within predetermined ranges
US8607009B2 (en) * 2006-07-13 2013-12-10 Microsoft Corporation Concurrent virtual machine snapshots and restore
JP2008027306A (ja) 2006-07-24 2008-02-07 Aplix Corp ユーザ空間仮想化システム
US8607228B2 (en) * 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
US7624240B1 (en) * 2006-10-17 2009-11-24 Vmware, Inc. Separate swap files corresponding to different virtual machines in a host computer system
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
US7657663B2 (en) * 2006-12-19 2010-02-02 International Business Machines Corporation Migrating stateless virtual functions from one virtual plane to another
JP4249779B2 (ja) * 2006-12-25 2009-04-08 株式会社東芝 デバイス制御装置
JP4358224B2 (ja) * 2006-12-27 2009-11-04 株式会社東芝 ゲストosスケジューリング方法及び仮想計算機モニタ
JP2008210057A (ja) * 2007-02-23 2008-09-11 Hitachi Ltd 記憶システム及びその管理方法
JP4871174B2 (ja) 2007-03-09 2012-02-08 株式会社日立製作所 仮想計算機システム
JP4980792B2 (ja) * 2007-05-22 2012-07-18 株式会社日立製作所 仮想計算機の性能監視方法及びその方法を用いた装置
US8141053B2 (en) * 2008-01-04 2012-03-20 International Business Machines Corporation Call stack sampling using a virtual machine
US8473946B2 (en) * 2008-07-03 2013-06-25 Vmware, Inc. Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US9449314B2 (en) 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235700A1 (en) * 2007-03-19 2008-09-25 Kabushiki Kaisha Toshiba Hardware Monitor Managing Apparatus and Method of Executing Hardware Monitor Function

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507809A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する
US9372693B2 (en) 2012-03-16 2016-06-21 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
CN104380264A (zh) * 2012-03-16 2015-02-25 国际商业机器公司 运行时间检测报告
US9395989B2 (en) 2012-03-16 2016-07-19 International Business Machines Corporation Run-time-instrumentation controls emit instruction
JP2015513373A (ja) * 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ランタイム・インストルメンテーション報告
JP2015514240A (ja) * 2012-03-16 2015-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 低特権状態からのランタイム・インストルメンテーション制御の変更
JP2015516602A (ja) * 2012-03-16 2015-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ランタイム計装制御の状況の決定のためのコンピュータ・プログラム、方法、およびシステム
US9400736B2 (en) 2012-03-16 2016-07-26 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9250903B2 (en) 2012-03-16 2016-02-02 International Business Machinecs Corporation Determining the status of run-time-instrumentation controls
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9280346B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Run-time instrumentation reporting
US9280448B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Controlling operation of a run-time instrumentation facility from a lesser-privileged state
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
WO2013136703A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
WO2013136706A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Determining the status of run-time-instrumentation controls
WO2013136700A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Run-time instrumentation reporting
US9367313B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation directed sampling
US9405543B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9442728B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9459873B2 (en) 2012-03-16 2016-10-04 International Business Machines Corporation Run-time instrumentation monitoring of processor characteristics
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9483269B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9483268B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9489285B2 (en) 2012-03-16 2016-11-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
JP2020505668A (ja) * 2017-01-19 2020-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 保留外部割り込みテスト命令
JP7059273B2 (ja) 2017-01-19 2022-04-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 保留外部割り込みテスト命令

Also Published As

Publication number Publication date
JP5547436B2 (ja) 2014-07-16
US20210263829A1 (en) 2021-08-26
TW201015307A (en) 2010-04-16
US9449314B2 (en) 2016-09-20
KR101107363B1 (ko) 2012-01-19
US20100088771A1 (en) 2010-04-08
US11036611B2 (en) 2021-06-15
KR20100038036A (ko) 2010-04-12
JP2014059909A (ja) 2014-04-03
US20160342442A1 (en) 2016-11-24
JP5657090B2 (ja) 2015-01-21
TWI453582B (zh) 2014-09-21

Similar Documents

Publication Publication Date Title
JP5547436B2 (ja) 仮想処理環境内のデータの収集を容易にするためのコンピュータ・プログラム、コンピュータによって実行される方法、およびコンピュータ・システム(中央演算処理装置測定機能の仮想化)
US10620877B2 (en) Managing a collection of data
JP6728409B2 (ja) 仮想化マネージャのセキュアなブート処理
JP6214558B2 (ja) 警告追跡割り込みファシリティ
US10613895B2 (en) Virtualization of storage buffers used by asynchronous processes
JP6249961B2 (ja) プログラムによる警告追跡割り込みファシリティの使用
JP6214559B2 (ja) 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130903

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131004

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131101

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140515

R150 Certificate of patent or registration of utility model

Ref document number: 5547436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150