JP5588006B2 - 改良型モニタ機能実装 - Google Patents

改良型モニタ機能実装 Download PDF

Info

Publication number
JP5588006B2
JP5588006B2 JP2012530249A JP2012530249A JP5588006B2 JP 5588006 B2 JP5588006 B2 JP 5588006B2 JP 2012530249 A JP2012530249 A JP 2012530249A JP 2012530249 A JP2012530249 A JP 2012530249A JP 5588006 B2 JP5588006 B2 JP 5588006B2
Authority
JP
Japan
Prior art keywords
monitor
instruction
counter
code
bits
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.)
Active
Application number
JP2012530249A
Other languages
English (en)
Other versions
JP2013506177A (ja
Inventor
グレイナー、ダン
ロジャーズ、ロバート
ジョン、ロバート セイント
マルダー、ジム
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 JP2013506177A publication Critical patent/JP2013506177A/ja
Application granted granted Critical
Publication of JP5588006B2 publication Critical patent/JP5588006B2/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
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は一般にコンピューティング環境内での処理に関し、具体的には処理の間に発生するイベントをモニタすることに関する。
年を追って、処理イベントをモニタするのにいろいろなモニタリング・ツールが使われてきた。かかるツールの一つが、インターナショナル・ビジネス・マシン・コーポレーションが提供しているz/Architecture(IBM社の登録商標)システム内の処理をモニタリングするため使われるモニタ・コール(MC:Monitor Call)命令である。モニタ・コール命令は、モニタ・クラスおよびモニタ・マスクで表現される主要な対象領域をモニタする能力を有するプログラムを備えている。モニタ・マスクは、制御プログラム(例、オペレーティング・システム)が可能な16のモニタ・クラスの一つ以上を有効化できるようにする。有効化されたモニタ・クラスを指定する(すなわち、特定のクラスに対するマスク・ビットがセットされた)モニタ・コール命令が実行されると、モニタ・イベント・プログラムの割り込みが発生し、制御プログラムは、この命令中に指定されているモニタ・コードに基づいて情報を記録することができる。モニタ・コール命令が実行されたが、特定されたモニタ・クラスが有効化されたモニタ・マスク・ビットに対応していない場合、命令は、無演算(NOP:no−operation)処理をする。
モニタ・コール命令は、例えば、計測対象コード・パスの実行をカウントするために用いられる。このカウンティングは、カウント・プログラムを使って行われる。カウント・プログラムは、例えば、監視プログラム呼び出し(SVC:supervisor call)、ロッキング、割り込み、記憶域割り当ておよび解放、スケジューリング、待ち行列化および解除、等々を含む、さまざまなオペレーティング・システムの主要イベントの頻度を算定するため多年にわたって使われてきた。
既存在来型のモニタ・コール・メカニズムを用いるカウンティング・オペレーションは、プログラムへの割り込み、復帰環境の設定、カウンティング・オペレーションの遂行、その上で割り込まれたプログラムに戻る前に処理を逆行することを含め、相当な量のオーバーヘッドを必要とする。
本発明のある態様によって、プロセッサ・ファームウェア(例、ミリコード)が、割り込みを必要とせずに、モニタ・コール命令に指定されたカウンタを効率的に更新できるようにする改良型モニタリング機能実装が提供される。この改良型モニタリング機能実装は、既存在来型の機能と互換性のある改良された機能を備えている。
コンピューティング環境内のモニタリングを容易化するためのコンピュータ・プログラム製品の提供を介して、従来技術の短所を克服しさらなる利点が提供される。このコンピュータ・プログラム製品は、処理回路による読み取りが可能で処理回路が方法を遂行するため実行する命令を格納する、記憶媒体を含む。上記方法は、例えば、コンピューティング環境のイベントをモニタするためのマシン命令を実行するステップを含み、該実行するステップは、マシン命令によってモニタ対象のイベントを指定するステップと、割り込みを行うことなく、モニタされるイベントに関連付けられたカウンタをインクリメントするステップとを含む。
また、本発明の一つ以上の態様に関連して方法およびシステムが本明細書で説明され、これらは特許請求されている。さらに、本発明の一つ以上の態様に関するサービスも本明細書で説明され、これらには特許請求されるものがある。
本発明の技法を介して、さらなる特質および利点が実現される。本発明の他の実施形態および態様が本明細書で詳細に説明され、これらは請求される本発明の一部と見なされる。
本発明の一つ以上の態様は、本明細書に添付の請求項中の例のように、具体的に指摘され明確に請求される。本発明の前述および他の目的、特質、および利点は、添付の図面と併せ、以下の詳細な説明によって明らかにされる。
本発明の一つ以上の態様を組み込み使用するためのコンピューティング環境の一例を示す。 本発明のある態様に従って使用されるモニタ・コール命令のフォーマットの一例を示す。 本発明のある態様に従って使用される制御レジスタの一例を示す。 本発明のある態様による、カウンタ・アレイおよびそれに関連する構造の一例を示す。 本発明のある態様による、モニタリング・ロジックの一例を示す。 本発明のある態様による、モニタリング・ロジックの一例を示す。 本発明の一つ以上の態様を組み込むコンピュータ・プログラム製品の一つの実施形態を示す。
本発明のある態様に従って、割り込みを行うことなくモニタリングを実施可能にする改良型モニタリング機能実装が提供される。特定のフィールドの設定に応じて、割り込みが生じる既存在来型のモニタリング機能実装が選択される(オペレーションの第一モード)か、もしくは割り込みの起こらない本発明の改良型機能実装が選択される(オペレーションの第二モード)という点で、この改良型機能実装は、既存在来型のモニタリング機能実装と互換性がある。改良型機能実装では割り込みは行われないが、例えばイベントのカウントを提供するモニタリングが遂行される。
図1を参照しながら、本発明の一つ以上の態様を組み込み使用するためのコンピューティング環境の一つの実施形態を説明する。コンピューティング環境100は、例えば、少なくとも一つのプロセッサ102(例、中央処理装置(CPU、central processing unit))、メモリ104(例、主メモリ)、もしくは例えば一つ以上のバス108または接続路を介してお互いに連結された一つ以上の入力/出力デバイス106を含む。
一つの例として、コンピューティング環境100は、インターナショナル・ビジネス・マシン・コーポレーションが提供しているz/Architecture(IBM社の登録商標)に基づいていて、その例が、「z/Architecture(IBM社の登録商標)−Principles of Operation,」、SA22−7832−07号、2009年2月発行、に記載されており、これは当段落で参照することによりその全体が本明細書に組み込まれる。この例において、プロセッサ102は、インターナショナル・ビジネス・マシン・コーポレーションにより提供されるeServer z/Series(IBM社の登録商標)サーバであり、これは、同様にインターナショナル・ビジネス・マシン・コーポレーションにより提供されているz/OS(IBM社の登録商標)オペレーティング・システムなどのオペレーティング・システムを実行する。z/Architecture(IBM社の登録商標)、z/Series(IBM社の登録商標)、z/OS(IBM社の登録商標)、およびIBM(IBM社の登録商標)は、米国ニューヨーク州アーモントのインターナショナル・ビジネス・マシン・コーポレーションの登録商標である。本明細書で使われている他の名称が、インターナショナル・ビジネス・マシン・コーポレーションまたは他の企業の登録商標、商標または商品名のことがあり得る。
コンピューティング環境100内の処理は、本発明のある態様に従って、モニタリング機能実装を介してモニタされる。このモニタリング機能実装は、例えば、モニタリングされているプログラム中の選択された点に到達したとき、所定のアクションを作動させるモニタ・コール命令を含む。すなわち、モニタ・コール命令は、モニタ対象プログラムの所望の点に埋め込まれており、これらの点に到達したときアクションが取られる。例として、このアクションには、割り込みを介してモニタリング・プログラムに制御を渡すこと、あるいは、本発明のある態様によって、割り込み処置を取らずに一つ以上のカウントを更新することが含まれる。このモニタリングは、各種の測定機能を遂行するのに有用である。例えば、どのプログラムが実行されたかを示す追跡情報が生成でき、特定のプログラムがどのくらいの頻度で使われたかを示すカウンティング情報を生成することができ、特定のプログラムが実行に要した時間量を示す計時情報を生成することができる。
図2を参照しながらモニタ・コール命令の一例を説明する。この特定の事例では、モニタ・コール命令は、z/Architecture(IBM社の登録商標)の一部であり、本発明の以前に存在した該命令の態様が、「z/Architecture(IBM社の登録商標)−Principles of Operation,」、SA22−7832−07号、2009年2月発行、に記載されており、これは当段落で参照することによりその全体が本明細書に組み込まれる。この特定の例を提示するが、モニタ・コール命令のフォーマットには多くの変形が可能であり、それらは請求される発明の一部と見なされる。
図2を参照すると、一つの例において、モニタ・コール命令200は、モニタ・コール命令を特定する8ビットの命令コード202(例、‘AF’)と、例えば、16のモニタリング・クラスの一つを指定する4ビットの符号なしバイナリ数を含むインデックス・フィールド(I)204と、以下で説明するように使用されるモニタ・コードを形成する、B206およびD208によって指定される、第一オペランド・アドレスと、を含む。この例では、Bは4ビット長であり、Dは12ビット長である。Bが0に等しくなければBはレジスタ位置であり、そのコンテンツはDフィールドに加えられてオペランド・アドレスを生成し、このオペランド・アドレスはオペランドをアドレス指定するため使われるのでなく、モニタ・コードを設けるために使われる。
プログラム中でモニタ・コール命令に到達したとき、この命令が実行される。実行の過程において、モニタ・マスクの少なくとも一つのセットがチェックされ、あるモニタ・イベントを遂行することになっているかどうかが判定される。マスクの少なくとも一つのセットが、制御レジスタ(CR)8などの制御レジスタに含まれる。具体的には、この例では、CPUは、各々が64のビット位置を持つ16の制御レジスタを有する。レジスタ中のビット位置は、システム中の特定の機能に割り当てられ、あるオペレーションが実行可能であることを特定する際に、もしくはこの機能実装が必要とする特定の情報を提供する際に使われる。
制御レジスタは、0〜15の番号で識別され、命令Load Control(ロード制御)およびStore Control(記憶制御)中の4ビットのRフィールドによって指定される。これらの命令によって、複数の制御レジスタをアドレス指定することができる。Load Control(LCTLG)命令は、該命令で指定されたレジスタ群内の全制御レジスタ・ビット位置に、記憶装置からロードさせる。制御レジスタ8の一例が図3に示されている。
図3を参照すると、制御レジスタ300は、モニタ・マスクの第一セット302およびモニタ・マスクの第二セット304を含む。この特定の実施形態において、モニタ・マスクの第一セットは、制御レジスタのビット48〜63にあり、既存在来型モニタリング機能実装にも、改良型機能実装にも使用され、一方、モニタ・マスクの第二セットは、ビット16〜31にあって改良型モニタリング機能実装に使用される。マスクの各セットは、例えば、16のモニタ・クラスに対応する16のマスク・インジケータ(例、ビット群)を含む。モニタ対象の各クラスに対し、それに対応するマスク・ビットが、モニタ・マスクの第一セット中にセットされる。例えば、クラス3および7をモニタする場合、モニタ・マスクの第一セット中にマスク・ビット3および7がセットされる。さらに、モニタ・マスクの第二セット中の各マスク・ビットは、モニタ・マスクの第一セット中のそのマスク・ビットに対応しており、改良型機能実装が使われる場合には、第二セットのマスク・ビットがセットされる。例えば、クラス3および7がモニタされることになり、改良型機能実装が使われる場合には、モニタ・マスクの第一セットおよび第二セットのビット3および7がセット(例えば、1に等しくセット)される。この例において、制御プログラム(例、オペレーティング・システム)は、ユーザのインプットに基づいてビットをセットする。さらに、これらのクラスはユーザ定義であり、モニタされる任意のイベントを表すことができる。それをオペレーティング・システムが設定する。例えば、あるクラスを、監視プログラム呼び出しに設定することができ、オペレーティング・システムがある特定のクラス番号を監視プログラム呼び出しに割り当てることになる。次いで、モニタ・コール命令が、モニタされるプログラムの監視プログラム呼び出しの近辺に挿入され、そのクラスをモニタするように該命令のIフィールドがセットされる。他の任意の所望イベンにトにも、同じようにクラスを割り当て、同様にモニタすることができる。
既存在来型のモニタリング機能実装では、モニタ・コール命令が実行されるとき、モニタ・マスクの第一セット中の、Iフィールドのビット4〜7に指定された、当該モニタ・クラスに対応するモニタ・マスク・ビットがチェックされる。ビットが1の場合、モニタ・イベント・プログラムの割り込みが発生する。第一オペランド・アドレスによって形成されたモニタ・コードが実メモリ位置176の倍長ワードの中に置かれ、実メモリ位置148にゼロを格納して、Iフィールドのコンテンツが実メモリ位置149に格納され、プログラム割り込みコードのビット9は1にセットされる。
本発明のある態様によれば、Iフィールドによって指定されたクラスに対応するモニタ・マスクのビットが1の場合、必ずしも割り込みは行われない。代わりに、ミリコードが、割り込みを行わないでモニタリングを実行する。このモニタリングの実行には連続配置のカウンタ・アレイが使われる。このアレイの一つの例が図4に示されている。
図示のように、カウンタ・アレイ400は、複数のハーフワード・エントリ402および複数のフルワード・エントリ404を含む。一つの特定の事例において、このアレイは64バイトであり、ホーム・アドレス・スペースに格納されており、オペレーティング・システムによって初期化される。ハーフワード・エントリは連続的に配置されており、改良型モニタ・カウンタ・アレイ・リミット(単に、リミットともいう)×2に等しいスペース量を占める。フルワード・エントリは、ハーフワード・エントリのすぐ後に連続的に配置され、これらはリミット×4に等しいスペース量を占める。
さらに、一例において、このアレイの起点アドレスは、改良型モニタ・カウンタ・アレイ起点アドレス410によって示され、これはオペレーティング・システムによってセットされ、例えば、実メモリ位置256(16進数100)に格納される。さらに、改良型モニタリング機能実装のプロセシングのために、実メモリ位置264(16進数108)に格納された改良型モニタ・カウンタ・アレイ・リミット412、および位置268(16進数100)に格納された改良型モニタ例外カウント414を含め、オペレーティング・システムによって初期化されたさらなる構造が用いられる。
改良型モニタ機能実装に関連するプロセシングの一つの実施形態を、図5〜図6を参照しながら説明する。一つの例において、このロジックを遂行するのはファームウエア(例えば、プロセッサ上で実行されるミリコード)である。
図5を参照すると、最初にステップ500において、モニタ・クラスが、例えば、モニタ・コール命令から、具体的にはこの命令のIフィールドのビット4〜7から取得される。具体的には、Iフィールドは、4ビットの符号なしバイナリ数を含み、これはモニタされるクラスを表し、制御レジスタ8のビット48〜63中の16のモニタ・マスクへの指標を形成する。
フィールドによってポイントされた、(例えば、制御レジスタ8のビット48〜63中の)モニタ・マスクの第一セット中のマスク・ビットがチェックされる。例えば、Iフィールドがクラス3を表す3の値を包含していれば、マスクの第一セット中のマスク・ビット3がチェックされる。検査ステップ502において、その値が1でない場合、このとき該命令は無演算処理をし、ステップ504で終了する。また一方、(モニタ・マスクの第一セット中の)指定されたマスク・ビットが1にセットされている場合、プロセシングは、改良型モニタ機能実装がインストールされているかどうかを判定する検査ステップ506に続く。この判定は、インジケータをチェックすることによって行うことができ、または暗黙に定義することができる。改良型モニタ機能実装がインストールされていない場合、ステップ508において割り込みが行われる。しかして、この例において、第一オペランド・アドレス(例、D(B))によって形成されたモニタ・コードは、実メモリ位置176の倍長ワード中に置かれ、実メモリ位置148にゼロが格納されて、Iフィールドのコンテンツが実メモリ位置149に格納され、プログラム割り込みコードのビット9は1にセットされる。
また一方、検査ステップ506において改良型モニタ機能実装がインストールされている場合、検査ステップ510において、モニタ・マスクの第二セット(例、CR8のビット16〜31)中の対応するマスク・ビットが1に等しいかどうかがさらに判定される。例えば、モニタ・マスクの第一セット中のマスク・ビット3がチェックされた場合、このときはモニタ・マスクの第二セット中のマスク・ビット3がチェックされる。モニタ・マスクの第二セット中の所与のマスク・ビットがセットされていない場合(例、セロに等しい)、割り込み処置が取られ、プロセシングは、ステップ508で上述したように進む。セットされている場合は、モニタ・イベント・カウンティング・オペレーションが以下のように実施される。
最初に、ステップ512において、モニタ・コードがD(B)の第一オペランド・アドレスにセットされ、検査ステップ514(図6)において、そのモニタ・コードが、改良型モニタ・カウンタ・アレイ・リミット以上の大きさであるかどうかが判定される。具体的には、一つの例において、実メモリ位置264のワード中に包含されている、左側を32個のバイナリ・ゼロで拡張された改良型モニタ・カウンタ・アレイ・サイズ(リミット)が、第一オペランド・アドレスによって形成されるモニタ・コードと論理的に比較される。検査ステップ514において、モニタ・コードが、改良型モニタ・カウンタ・アレイ・リミット以上の大きさであれば、ステップ516において、実メモリ位置268のワード中に包含されている改良型モニタ例外カウントに、1が論理的に加算され、この命令はステップ518で完了する。この加算の結果からの桁上げは一切無視される。
検査ステップ514に戻って、モニタ・コードが、改良型モニタ・カウンタ・アレイ・リミット(左側を32個のゼロで拡張されている)よりも小さい場合、このモニタ・コードに対応する改良型モニタ・カウンタに1が加えられる。改良型モニタ・カウンタは、2つの非隣接の記憶位置、すなわち、最初にインクリメントされる符号なしのハーフワードと、ハーフワード加算のビット位置0の桁上げ出力が生じた場合はいつでもインクリメントされる、符号なしのワード(別名、フルワード)とを含む。以下に、これをさらに詳細に説明する。
実メモリ位置256の倍長ワードのビット0〜60中の、右側に3個のバイナリ・ゼロを付された改良型モニタ・カウンタ・アレイ起点アドレスは、ホーム・アドレス・スペース中の改良型モニタ・カウンタ・アレイの64ビットの仮想アドレスを形成する。実メモリ位置264の改良型モニタ・カウンタ・アレイ・サイズのフィールドは、アレイ中のハーフワードおよびワード・エントリの数を規定し、アレイ中ではハーフワード・エントリが最初に配置され、そのすぐ後にワード・エントリが続く。
ステップ520において、2を乗算されたモニタ・コードが、改良型モニタ・カウンタ・アレイ起点アドレスに加算されてハーフワードの仮想アドレスを形成し、これは所望のハーフワード・エントリへのポインタとして使われる。次いで、ステップ522で、ハーフワード・ポインタによって指定されたハーフワード・エントリのコンテンツに1が論理的に加算される。検査ステップ524において、この加算がハーフワードのビット位置0の桁上げ出力をもたらした場合、対応するワードに1が論理的に加算される。この場合、ステップ526において、改良型モニタ・カウンタ・アレイ・サイズの値に2が乗算され、4を乗算されたモニタ・コードに加算され、この値が改良型モニタ・カウンタ・アレイ起点アドレスに加えられ、ワードのアドレスが形成され、これが、ハーフワード・エントリに対応するワード・エントリへのポインタとして使われる。次いで、ステップ528で、ワードのポインタによって指定されたワード・エントリのコンテンツに1が論理的に加算される。これにより処理は完了する。
上記で、既存在来型のモニタリング機能実装と互換性のある改良型モニタリング機能実装を詳細に説明した。モニタ・コール命令の実行に応じて、割り込みが行われるか(既存の機能実装)、もしくは、オペレーティング・システムまたはアプリケーション・プログラムによる割り込みまたは介入なくして、CPUファームウエアによってカウンタが更新される(改良型機能実装)。改良型機能実装はカウンタ・アレイがホーム・アドレス・スペースに維持されることを可能にし、これにより、より広いカウンタの範囲と、カウンタ幅の増加と、キャッシュの利用性を向上する2ビットおよび4ビットの別個のカウンタとが提供される。本改良型機能実装は、ミリコードによるカウンタの更新の遂行を可能にし、これは、オペレーティング・システムのプログラム割り込みハンドラを介するパスよりも効率的であり、例外カウンタを備え、これは、(例えば、アレイのアドレスおよびリミットが適切に設定され、限度外れおよびアドレス指定例外がミリコードによって処理されることを前提として)プログラム設定の例外処理の必要性を解消する。本改良型機能実装は、固定シーケンスのカウンタとは対照的に、ユーザ定義のカウンタ位置に基づくカウンティング技法の作動を可能にする。
本モニタ・コール命令は、コンピュータ・プログラムの命令であり、この命令の実行では、イベントを識別するため、マシン命令定義のクラスが用いられる。この命令は2つのモード、すなわち、割り込みモードの第一モードと、非割り込みモードの第二モードとで動作可能である。第二モード(非割り込みモード)にあるコンピューティング環境と、命令によって識別されたイベントとの遭遇とに応じて、(メモリ位置の)カウンタがインクリメントされ、プロセシングは、コンピュータ・プログラムの次の命令の実行に進む。第一モードにあるコンピューティング環境と、命令によって識別されたイベントに遭遇したのとに応じて、カウンタをインクリメントせずに、コンピュータ・プログラムから割り込みハンドラ・ルーチンへの割り込みが行われる。
当業者ならよく理解するであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態(ファームウエア、常駐ソフトウエア、マイクロコードなどを含む)、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれる、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、内部に具体化されたコンピュータ可読プログラム・コードを有する一つ以上のコンピュータ可読媒体(群)中に具現されたコンピュータ・プログラム製品の形を取ることもできる。
一つ以上のコンピュータ可読媒体(群)の任意の組み合わせを用いることができる。このコンピュータ可読媒体はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例(非包括的リスト)には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM(erasable programmable read−only memory)またはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれる。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。
次に図6を参照すると、一つの事例において、コンピュータ・プログラム製品600は、例えば、媒体中にコンピュータ可読プログラム・コード手段または論理604を格納し、本発明の一つ以上の態様を提供し促進するための一つ以上のコンピュータ可読媒体602を包含する。
コンピュータ可読媒体中に具現されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、またはこれらの任意の適した組み合わせを含め、適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合せで記述することができる。このプログラム・コードは、全体をユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロン・ソフトウエア・パッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことができる。
本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート説明図もしくはブロック図またはその両方を参照しながら、本明細書で本発明の態様を説明している。フローチャート説明図もしくはブロック図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実行可能であることが理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するための手段を生成するようにすることができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令できるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施する命令群を包含する製品を形成するようにすることができる。
同様に、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、これらコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーション・ステップを実行させてコンピュータ実装のプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するためのプロセスを提供するようにすることもできる。
図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、所定の論理機能(群)を実行するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることに留意すべきである。例えば、連続して示された2つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時には、これらブロックが逆の順序で実行されることもあり得る。また、ブロック図もしくはフローチャート説明図またはその両方の各ブロック、およびブロック図もしくはフローチャート説明図またはその両方中のブロックの組み合わせは、特定の機能または処置を実施する、特殊用途のハードウエア・ベースのシステム、または特殊用途のハードウエアとコンピュータ命令との組み合わせによって実装可能なことにも留意することとなる。
上記に加え、顧客環境の管理を提案するサービス・プロバイダによって、本発明の一つ以上の態様を提供し、提案し、展開し、管理し、保守などすることができる。例えば、サービス・プロバイダは、一人以上の顧客に対し、本発明の一つ以上の態様を遂行するコンピュータ・コードもしくはコンピュータ・インフラストラクチャまたはその両方を生成し、維持し、サポートなどすることができる。サービス・プロバイダは、見返りとして、予約申し込みもしくは自由契約またはその両方の下で顧客から支払いを受けることができる。これに加えてまたは換えて、サービス・プロバイダは、一人以上の第三者に広告コンテンツの販売に対する支払いを受けることもできる。
本発明の一つの態様において、本発明の一つ以上の態様を実施するためのアプリケーションを展開することができる。一つの事例として、アプリケーションの展開には、本発明の一つ以上の態様を遂行するため動作可能なコンピュータ・インフラストラクチャを提供することが含まれる。
本発明のさらなる態様として、コンピューティング・システム中にコンピュータ可読コードを組み込むことを含めて、コンピューティング・インフラストラクチャを展開することができ、上記コードは、上記コンピューティング・システムと相まって、本発明の一つ以上の態様を遂行する能力を有する。
本発明のまださらなる態様として、コンピュータ可読コードをコンピュータ・システム中に取り込むことを含め、コンピューティング・インフラストラクチャを統合するためのプロセスを提供することができる。上記コンピュータ・システムは、コンピュータ可読媒体を含み、このコンピュータ可読媒体は、本発明の一つ以上の態様を含む。上記コードは、上記コンピュータ・システムと相まって、本発明の一つ以上の態様を遂行する能力を有する。
さまざまな実施形態を上記で説明したが、これらは単なる例示である。例えば、他のアーキテクチャのコンピューティング環境でも、本発明の一つ以上の態様を組み込んで用いることができる。さらに、他のプロセッサもしくはオペレーティング・システムまたはその両方を使用することができる。さらに、本明細書では具体的なビット、バイト、命令コードもしくは位置または上記の組み合わせを記載しているが、これらは単なる例である。本発明の精神から逸脱しない多くの変形が存在する。さらに、カウンタ・アレイには、異なる構造もしくはサイズまたはその両方を持たせることができる。さらにまた、もっと多いまたは少ないマスクとすることができ、ビット以外のインジケータを使うことができる。また、もっと多いまたは少ないクラスとすることもでき、本明細書で提示した事例は、単なる例である。以下に限らないが、命令、メモリ割当て、および他の種類のイベントを含め、他のもしくは異なるイベントまたはその両方をクラスに指定しモニタすることができる。モニタリングでは、カウンティング以外のタスクを遂行することができる。さらに、割り込み過程またはモニタリングにおいて、本明細書で説明した以外の特定の処置を取ることができる。
さらに、他の種類のコンピューティング環境も、本発明の一つ以上の態様によって益を受けることができる。一例として、ある環境は、エミュレータ(例、ソフトウエアまたは他のエミュレーション・メカニズム)を包含することができ、(例えば、命令実行、アドレス変換などのアーキテクト機能、およびアーキテクト・レジスタを含む)特定のアーキテクチャまたはそのサブセットを(例えば、プロセッサおよびメモリを有するネイティブ・コンピュータ・システム上で)エミュレートすることができる。かかる環境において、エミュレータの一つ以上のエミュレーション機能は、たとえ、エミュレータを実行するコンピュータが、エミュレートされている能力と異なるアーキテクチャを有するような場合であっても、本発明の一つ以上の態様を実施することができる。一つの例として、エミュレーション・モードで、エミュレートされている特定の命令または演算が復号され、適切なエミュレーション機能が構築されて個別の命令または演算が実行される。
エミュレーション環境において、ホスト・コンピュータは、例えば、命令およびデータを格納するメモリと、メモリから命令を取り出し、随意的に取り出された命令に対するローカル・バッファ機能を備える命令フェッチ・ユニットと、取り出された命令を受信し、取り出された命令の種類を判断する命令復号ユニットと、これら命令を実行する命令実行ユニットと、を包含する。実行には、データをメモリからレジスタ中にロードすること、および逆にデータをレジスタからメモリに格納すること、あるいは、復号ユニットの判断により、いくつかの種類の算術または論理演算を行うことを包含することができる。一例では、各ユニットはソフトウエアに実装される。例えば、これらユニットによって遂行されるオペレーションは、エミュレータ・ソフトウエア内の一つ以上のサブルーチンとして実装される。
さらに、プログラム・コードを格納もしくは実行またはその両方を行うのに適したデータ処理システムとして、システム・バスを介してメモリ・エレメントに直接的または間接的に連結された少なくとも一つのプロセッサを包含するシステムが使用可能である。メモリ・エレメントは、例えば、プログラム・コードの実際の実行の過程で用いられるローカル・メモリと、大容量記憶装置と、実行の過程で大容量記憶装置からコードを読み出さなければならない回数を低減するために、少なくとも一部のプログラム・コードの一時的格納を提供するキャッシュ・メモリとを包含する。
入力/出力またはI/Oデバイス(以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他の記憶媒体などを含む)は、直接にまたは介在I/Oコントローラを介してシステムに連結することができる。また、ネットワーク・アダプタをシステムに連結し、データ処理システムが、介在する私的ネットワークまたは公衆ネットワークを介して、他のデータ処理システムあるいは遠隔のプリンタまたは記憶デバイスに連結することを可能にすることができる。モデム、ケーブル・モデム、およびイーサネット(R)カードは、利用可能な種類のネットワーク・アダプタのごくわずかの例である。
本明細書で使用する用語は、特定の実施形態を説明する目的のためだけのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある(a、an)」、および「該(the)」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことを意図されている。さらに、本明細書で用いられる「含む(comprise)」もしくは「含んでいる(comprising)」またはその両方は、述べられた機能、整数、ステップ、オペレーション、エレメント、もしくはコンポーネント、または上記の組み合わせの存在を特定するが、一つ以上の他の機能、整数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在を排除するものでないことが理解されよう。
添付の請求項中の全ての手段またはステップに加え機能エレメントの、対応する構造、材料、処置および同等物は、もしあれば、具体的に請求された他の請求エレメントと組み合わせて機能を遂行するための一切の構造、材料または処置を包含することが意図されている。本発明の記述は、例示および説明目的で提示されたもので、網羅的であること、または本発明を開示した形態に限定することは意図されていない。当業者には、本発明の範囲および精神から逸脱しない多くの部分変更および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな部分変更を加えたさまざまな実施形態のため、本発明を理解できるようにするため、選択され説明されたものである。

Claims (11)

  1. コンピューティング環境のイベントをモニタするためのマシン命令を実行することによって、前記コンピューティング環境におけるモニタリングを容易化する方法であって、前記方法は、
    前記コンピューティング環境に改良型モニタリング機能実装がインストールされているかどうかを判定するステップ
    前記コンピューティング環境に前記改良型モニタリング機能実装がインストールされていないと判定された場合は、割り込みを介してモニタリング・プログラムに制御を渡すステップ
    前記コンピューティング環境に前記改良型モニタリング機能実装がインストールされていると判定された場合は、モニタ・イベント・カウンティング・オペレーションを実施するステップと、
    を含み、前記実施するステップは、
    制御レジスタ中のマスク・ビットが1の値を有するかどうかを判定するステップあって、マスク・ビット位置はモニタ・クラスを表す、前記判定するステップと、
    前記マスク・ビットが前記1の値を有するのに応じて、モニタ・イベント・カウンティング・オペレーションを実施するステップと、
    を含む、前記方法。
  2. 前記モニタ・イベント・カウンティング・オペレーションを実施するステップは、
    モニタ・コード値とカウンタ・アレイのリミットとを比較するステップであって、前記カウンタ・アレイはカウンタを含む、前記比較するステップと、
    前記比較するステップが第一結果を提示するのに応じ、前記カウンタ・アレイの前記カウンタをインクリメントするステップと、
    前記比較するステップが第二結果を提示するのに応じ、例外カウントをインクリメントするステップと、
    を含む、請求項1に記載の方法。
  3. 前記第一結果は前記リミットより小さい前記コード値を含み、前記第二結果は前記リミット以上の大きさの前記コード値を含む、請求項2に記載の方法。
  4. 前記カウンタ・アレイは複数のハーフワード・エントリおよびそれに続くフルワード・エントリを含む、請求項2に記載の方法。
  5. 前記カウンタは、前記カウンタ・アレイの、ハーフワード・ポインタによって識別されるハーフワード・エントリに置かれ、前記ハーフワード・エントリのオーバーフロー状態に応じて、前記カウンタは、前記カウンタ・アレイの、フルワード・ポインタによって指定されるフルワード・エントリにさらに置かれる、請求項4に記載の方法。
  6. 前記ハーフワード・ポインタは、(前記モニタ・コード×2)+前記カウンタ・アレイの起点アドレス、にセットされ、前記フルワード・ポインタは、(前記モニタ・コード×4)+(前記リミット×2)+前記起点アドレス、にセットされる、請求項5に記載の方法。
  7. 前記マシン命令は、モニタ・コール命令を含み、前記モニタ・コール命令は、前記モニタ・コール命令を指定する命令コードと、モニタ対象のクラスを指定する指標フィールドと、および前記マシン命令のプロセシングの過程で使用できるモニタ・コードを規定する第一オペランド・フィールドとを含む、請求項1に記載の方法。
  8. 前記命令コードは、前記モニタ・コール命令の命令フォーマットのビット0〜7中に在り、前記指標フィールドはビット8〜15中に在り、前記第一オペランド・フィールドはビット16〜31中に在って、前記第一オペランド・フィールドは、ビット16〜19中に基底部分を、ビット20〜31中に変位部分を含む、請求項7に記載の方法。
  9. 前記制御レジスタ中の前記マスク・ビット位置は前記マシン命令の指標フィールドによって識別される、請求項1に記載の方法。
  10. 請求項1ないし請求項9の何れか1項に記載の方法の各ステップを実行するようになされた手段を含むシステム。
  11. 請求項1ないし請求項9の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2012530249A 2009-09-29 2010-09-22 改良型モニタ機能実装 Active JP5588006B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/568,748 US8572357B2 (en) 2009-09-29 2009-09-29 Monitoring events and incrementing counters associated therewith absent taking an interrupt
US12/568,748 2009-09-29
PCT/EP2010/063952 WO2011039085A1 (en) 2009-09-29 2010-09-22 Enhanced monitor facility

Publications (2)

Publication Number Publication Date
JP2013506177A JP2013506177A (ja) 2013-02-21
JP5588006B2 true JP5588006B2 (ja) 2014-09-10

Family

ID=43446369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012530249A Active JP5588006B2 (ja) 2009-09-29 2010-09-22 改良型モニタ機能実装

Country Status (6)

Country Link
US (2) US8572357B2 (ja)
EP (1) EP2430546B1 (ja)
JP (1) JP5588006B2 (ja)
CN (1) CN102576327B (ja)
RU (1) RU2560812C2 (ja)
WO (1) WO2011039085A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572357B2 (en) * 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt
US8954803B2 (en) * 2010-02-23 2015-02-10 Mosys, Inc. Programmable test engine (PCDTE) for emerging memory technologies
WO2012155968A1 (en) * 2011-05-18 2012-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for enabling analysis of a computer program execution
US9208134B2 (en) * 2012-01-10 2015-12-08 King Abdulaziz City For Science And Technology Methods and systems for tokenizing multilingual textual documents
US8988956B2 (en) 2012-09-18 2015-03-24 Mosys, Inc. Programmable memory built in self repair circuit
US10282327B2 (en) * 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6442747A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Hardware monitoring device
JPH042747A (ja) * 1990-04-19 1992-01-07 Furukawa Alum Co Ltd アルミニウム合金制振材料の製造方法
RU2030784C1 (ru) * 1992-01-31 1995-03-10 Арендное предприятие "20-й Подшипниковый завод" Устройство для поиска перемежающихся неисправностей в микропроцессорных системах
US5454086A (en) * 1992-08-11 1995-09-26 International Business Machines Corporation Dynamic program analyzer facility
US5485574A (en) 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
AU2364095A (en) * 1994-05-12 1995-12-05 Ast Research, Inc. Cpu activity monitoring through cache watching
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
JP3739797B2 (ja) * 1995-10-06 2006-01-25 パトリオット サイエンティフィック コーポレイション 縮小命令セット・コンピューター・マイクロプロセッサーの構造
RU2099777C1 (ru) * 1996-03-28 1997-12-20 Курский государственный технический университет Устройство для поиска перемежающихся отказов в микропроцессорных системах
US7086035B1 (en) * 1999-05-13 2006-08-01 International Business Machines Corporation Method and system for counting non-speculative events in a speculative processor
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US7225110B2 (en) 2001-08-16 2007-05-29 International Business Machines Corporation Extending width of performance monitor counters
US6654934B1 (en) * 2002-03-28 2003-11-25 Cyrpess Semiconductor Corporation Programmable event engine
US7272754B2 (en) 2003-09-27 2007-09-18 International Business Machines Corporation Implementation-efficient multiple-counter value hardware performance counter
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
JP2006221606A (ja) * 2005-01-17 2006-08-24 Renesas Technology Corp データプロセッサ
JP2007241918A (ja) 2006-03-13 2007-09-20 Fujitsu Ltd プロセッサ装置
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US8572357B2 (en) 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt

Also Published As

Publication number Publication date
EP2430546A1 (en) 2012-03-21
WO2011039085A1 (en) 2011-04-07
US20120198216A1 (en) 2012-08-02
EP2430546B1 (en) 2015-10-21
RU2560812C2 (ru) 2015-08-20
CN102576327A (zh) 2012-07-11
US20110078421A1 (en) 2011-03-31
CN102576327B (zh) 2014-12-17
US8572357B2 (en) 2013-10-29
RU2012147516A (ru) 2014-05-20
JP2013506177A (ja) 2013-02-21
US8489867B2 (en) 2013-07-16

Similar Documents

Publication Publication Date Title
US10831476B2 (en) Compare and delay instructions
JP6058012B2 (ja) ランタイム・インスツルメンテーションを使用してプロセッサのプロセッサ特性情報をモニターするためのコンピュータ・プログラム・プロダクト、方法、およびシステム(プロセッサ特性のランタイム・インスツルメンテーション・モニタリング)
JP5588006B2 (ja) 改良型モニタ機能実装
JP6153533B2 (ja) ランタイム・インストルメンテーション指向サンプリング
JP6995124B2 (ja) トランザクション実行中の保護ストレージ・イベント処理
EP2718830B1 (en) Managing operator message buffers in a coupling facility
US8751775B2 (en) Non-quiescing key setting facility
JP2005202964A (ja) 割り込みをタイプ別に計数する方法、システムおよびプログラム
JP7059273B2 (ja) 保留外部割り込みテスト命令
JP7042277B2 (ja) 保護ストレージ機能の動作を調整する制御の読み込みおよび格納
CN111095201A (zh) 响应于到子例程的分支而预测内容表指针值
JP6005149B2 (ja) 結合ファシリティを試験するためのオペレータ・メッセージ・コマンド
CN111066006A (zh) 设置内容表(toc)寄存器指令
US8799522B2 (en) Executing a start operator message command
US8689240B2 (en) Transmitting operator message commands to a coupling facility
JP6909297B2 (ja) クロック比較器符号制御
US11106466B2 (en) Decoupling of conditional branches
US8447949B2 (en) Detection of zero address events in address formation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140528

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: 20140708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140724

R150 Certificate of patent or registration of utility model

Ref document number: 5588006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250