(57)【要約】      （修正有）【課題】マルチスレッドシステムにおける性能を効率的に監視する。【解決手段】プロセッサ１０２は、複数のハードウェアイベントカウンターを含み、アドレス可能なメモリ１４０と連結して命令にアクセスし、当該命令に応答して、プロセッサが、第１のハードウェアイベントカウンター１１４で第１ハードウェアイベントの発生数、及び第２のハードウェアイベントカウンター１１５で第２ハードウェアイベントの発生数をカウントする。第１ハードウェアイベントの発生が所定回数カウントされた後、第２のハードウェアイベントカウンターがサンプリングされ、ハードウェアイベントカウンターはリセットされる。【選択図】図１
2010244552.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッシングシステムにおいて性能監視をする方法であって、
第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントする段階と、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントする段階と、
前記第１ハードウェアイベントの発生が所定回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングする段階と、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする段階と、を備える方法。
【請求項２】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項１に記載の方法。
【請求項３】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項２に記載の方法。
【請求項４】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項１に記載の方法。
【請求項５】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントであって、前記請求項１に記載の方法。
【請求項６】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項１に記載の方法。
【請求項７】
前記サンプリングした第の２ハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項１に記載の方法。
【請求項８】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項１に記載の方法。
【請求項９】
前記サンプリングした第２のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに備える請求項１に記載の方法。
【請求項１０】
マルチプロセッシングシステムにおいて性能監視をする方法であって、
第１のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントする段階と、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントする段階と、
前記セグメントレジスタの読み込みイベントの発生が所定回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングする段階と、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする段階と、を備える方法。
【請求項１１】
前記サンプリングした第の２ハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項１０に記載の方法。
【請求項１２】
前記サンプリングした第２のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する段階をさらに備える請求項１１に記載の方法。
【請求項１３】
マルチプロセッシングシステムにおいて性能監視をする製品であって、
コンテキストスイッチサンプリングを行うためのデータ及び命令を含み、機械アクセス可能な媒体を備え、
機械によってアクセスされた時に、当該機械に、
第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントさせ、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントさせ、
前記第１ハードウェアイベントの発生が所定回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングさせ、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットさせる製品。
【請求項１４】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項１３に記載の製品。
【請求項１５】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項１４に記載の製品。
【請求項１６】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項１３に記載の製品。
【請求項１７】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントである請求項１３に記載の製品。
【請求項１８】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項１３に記載の製品。
【請求項１９】
前記データ及び命令を備えた機械にアクセス可能な媒体は、前記機械によってアクセスされた時に、当該機械に、前記サンプリングした第２のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録させる請求項１３に記載の製品。
【請求項２０】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項１３に記載の製品。
【請求項２１】
前記データ及び命令を備えた機械アクセス可能な媒体は、前記機械によってアクセスされた時に、当該機械に、前記サンプリングした第２のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録させる請求項１３に記載の製品。
【請求項２２】
コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第１のハードウェアイベントカウンターと第２のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第１のハードウェアイベントカウンターにてセグメントレジスタの読み込みイベントの発生をカウントし、
前記第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントし、
第１ハードウェアイベントの発生が所定回数カウントされた後、前記第２のハードウェアイベントカウンターの値をサンプリングし、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする、コンピュータシステム。
【請求項２３】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした前記第２のハードウェアイベントカウンターをプロセス識別子の値と共に記録する請求項２２に記載のコンピュータシステム。
【請求項２４】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する請求項２３に記載のコンピュータシステム。
【請求項２５】
コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第１のハードウェアイベントカウンターと第２のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントし、
前記第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントし、
前記第１ハードウェアイベントの発生が所定回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングし、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする、コンピュータシステム。
【請求項２６】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する請求項２５に記載のコンピュータシステム。
【請求項２７】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンター値をスレッド識別子の値と共に記録する請求項２５に記載のコンピュータシステム。
【請求項２８】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項２５に記載のコンピュータシステム。
【請求項２９】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項２８に記載のコンピュータシステム。
【請求項３０】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項２５に記載のコンピュータシステム。
【請求項３１】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントである請求項２５に記載のコンピュータシステム。
【請求項３２】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項２５に記載のコンピュータシステム。
【請求項３３】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項２５に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してマイクロプロセッサの分野に関する。特に、プロセッサにおけるハードウェアイベントのトリガーに基づいたプロセス又はスレッドイベントのコンテキストスイッチサンプリングに関する。
【背景技術】
【０００２】
マルチタスク、マルチプロセッシング及び／又はマルチスレッドシステムでは、性能測定規準の監視が複雑になる。時間ベースのサンプリング又はイベントベースのサンプリングのような従来使用されてきた技術では、一貫した測定用レギュラーグリッドを用いて、アクティビティが時に規則的になるようなアプリケーションの振る舞いの概要及び特徴を把握していた。
【０００３】
また、従来、特定プロセスのコンテキスト内のアクティビティを監視するには、特別に装備されるバージョンのオペレーティング・システム（ＯＳ）を必要としていた。これらの技術は、特別に装備された機器を監視しなければならない上に、関係する特定プロセスのコンテキストにおいて望まれる測定基準も監視しなければならい。したがって、従来の技術で得られる結果は、他のプロセス、スレッド又はＯＳの測定から発生するアクティビティにより、悪影響を受けていた。
【０００４】
他のプロセス及び／又はスレッドから発生したイベントによる影響を回避し、マルチタスク、マルチプロセッシング及び／又はマルチスレッドシステムにおける性能を効率的に監視する方法は、今まで十分に研究されていない。
【図面の簡単な説明】
【０００５】
本発明が添付の図面を参照して例示されるが、本発明はこれら図に限定されるものではない。
【０００６】
【図１】コンテキストスイッチサンプリングを行うためのマルチプロセッシングシステムの一実施形態を示す。
【０００７】
【図２】コンテキストスイッチサンプリングを実行するプロセスの一実施形態を示すフローチャートである。
【０００８】
【図３】コンテキストスイッチサンプリングを実行するプロセスの他の実施形態を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、コンピュータシステムにおける性能監視の方法を説明する。本発明のある実施形態において、アドレス可能なメモリは、コンテキストスイッチサンプリングを行うためのデータ及び命令を記憶している。プロセッサは、監視を行うためのハードウェアイベントカウンターを含み、アドレス可能なメモリと連結して命令にアクセスし、当該命令に応じて、プロセッサが、第１のハードウェアイベントカウンターで第１ハードウェアイベントの発生、及び第２のハードウェアイベントカウンターで第２ハードウェアイベントの発生をカウントする。第１ハードウェアイベントの発生が所定回数カウントされた後、コンテキストスイッチが発生したことが判断可能となる。そして、第２のハードウェアイベントカウンターがサンプリングされ、ハードウェアイベントカウンターはリセットされる。また、ある実施形態において、プロセッサは、第１のハードウェアイベントカウンターでセグメントレジスタの読み込みイベントの発生をカウントし、サンプリングした第２のハードウェアイベントカウンターの値を、プロセス識別子の値及び／又はスレッド識別子の値と共に記録する。
【００１０】
以上述べたような技術は、他のプロセス及び／又はスレッドから発生したイベントによる影響を含むことなく特定のプロセス及び／又はスレッドのイベントをより正確に捉える及び測定するのに、利用することができる。
【００１１】
本発明の実施形態及び他の実施形態は、以下に教示するところにより実現可能であり、また、本発明の広範な精神及び範囲から逸脱することなく、多様な変更または改良を加えることが可能であることは明らかである。また、明細書及び図面は、本発明を制限するのではなく例示しているものであり、本発明は、特許請求の範囲及び均等物によってのみ定められるものである。
【００１２】
図１は、コンテキストスイッチサンプリングを行うためのマルチプロセッシングシステム１０１の一実施形態を示す。システム１０１の実施形態は、例えば、データを記憶する複数の記憶領域１４１〜１４９を有するアドレス可能なメモリ１４０、及び機械実行可能なコンテキストスイッチサンプリングを行うための命令を備える。複数のプロセス１１１〜１３１は、バス又は他の相互接続１１０によりアドレス可能なメモリ１４０に連結されており、当該複数のプロセス１１１〜１３１は、それぞれのスレッドを同時に実行する。複数のプロセス１１１〜１３１の実施形態は、異なるダイ又は同一のダイに、ソフトウェアプロセス若しくはハードウェアスレッド又は複数の個別プロセッサコアを備えるようにしてもよいことは明らかである。また、システム１０１のある実施形態では、複数のハードウェアスレッドプロセス１１１及び１２１を有するプロセッサ１０２のようなプロセッサを備えるようにしてもよい。
【００１３】
複数のプロセス１１１〜１３１は、それぞれ実行ユニット１１２〜１３２、レジスタ１１３〜１３３、及びハードウェアイベントカウンター１１４〜１３４及び１１５〜１３５を備える。ある実施形態において、複数のプロセス１１１〜１３１のうちのいくつかで、一つ又は複数の実行ユニット１１２〜１３２を物理的に共有するようにしてもよいことは明らかである。また、プロセス１１１〜１３１のある実施形態では、レジスタ１１３〜１３３、及び／又はハードウェアイベントカウンター１１４〜１３４及び１１５〜１３５が、プロセス１１１〜１３１のうちのいくつかに割り当てられるようにしてもよいし、これらを当該プロセスが共通で使用するよう構成してもよいことは明らかである。一つ又は複数のプロセス１１１〜１３１をアドレス可能なメモリ１４０に連結することにより、機械実行可能な命令１４９にアクセスするようにしてもよい。当該コンピュータで実行可能な命令１４９に応答して、一つ又は複数のプロセス１１１〜１３１は、第１ハードウェアイベントの発生をハードウェアイベントカウンター１１４〜１３４それぞれにおいてカウントするようにしてもよい。また、ある実施形態では、第１ハードウェアイベントは、セグメントレジスタ読み込みイベントであってもよく、例えば、カリフォルニア、サンタクララ所在のインテル社製の「ｘ８６プロセッサ」のコンテキストスイッチに使用してもよい。また、複数のハードウェアイベントカウンター１１４〜１３４がそれぞれ、セグメントレジスタ読み込みイベントのようなハードウェアイベントの発生をカウントすることにより、一つ又は複数のプロセス１１１〜１３１が、いつコンテキストスイッチが発生したかを判断できるようにしてもよいことは明白である。
【００１４】
例えば、特定のｘ８６プロセッサで動作する所与のＯＳの場合、「リング３」にて、アプリケーションプロセス間のコンテキストスイッチを実行するには、セグメントレジスタ読み込みを４回実行する必要がある。カウントが"４"を超えた後にサンプルアフターバリュー（ｓａｍｐｌｅ−ａｆｔｅｒ ｖａｌｕｅ：ＳＡＶ）を設定して、ハードウェアイベントカウンターをサンプリングすることにより、サンプリングされたハードウェアイベントカウンターの値は、他のプロセス及び／又はスレッドから発生したイベントによる影響を受けずに、より正確に特定のプロセス及び／又はスレッドのイベントを捉えて測定することができる。特に、ＳＡＶカウントが"８"（４が２回）に設定された場合、プロセス間のコンテキストスイッチが検出される。一方、ＳＡＶカウントが"５"（４プラス１）に設定された場合は、同じプロセスのスレッド間のコンテキストスイッチが検出されることになる。ＳＡＶカウントが臨界値（本例の場合、"４"）である又は臨界値を下回る場合、サンプリングによって所望のアプリケーションデータを収集することができない。これは、所望のアプリケーション中のイベントのデータ値が収集されるより前に、サンプリングが実行されるからである。コンテキストスイッチの検出に必要なセグメントレジスタ読み込みの回数は、ＯＳによって大きく異なり（例えば、セグメントレジスタ読み込み回数は、１回から１００回以上の間）、特定のＯＳや特定のプロセッサに依存することは明らかである。
【００１５】
また、ある実施形態において、セグメントレジスタの読み込み以外の技術や命令を、コンテキストスイッチサンプリングを行うのに使用するようにしてもよいことは明らかである。例えば、コンテキストスイッチを、記述子テーブル読み込みと関連付けてもよく、記述子テーブル（グローバルでもローカルでもよい）読み込みに続いて、イベントカウントデータのサンプリングをトリガーすることにより、コンテキストスイッチサンプリングを行うことができる。また、他の実施形態において、コンテキストスイッチサンプリングのトリガー専用に、アドレス可能なメモリ１４０の特定のアドレスを、当該アドレスがアクセスされる都度、選択するようにしてもよい。また、他の実施形態において、プロセス識別子及び／又はスレッド識別子が変更される都度ハードウェアイベントをトリガーすることを利用してコンテキストスイッチサンプリングをトリガーするようにしてもよいし、専用の命令をプロセッサのアーキテクチャーに追加してコンテキストスイッチサンプリングをトリガーするようにしてもよい。
【００１６】
所定回数の第１ハードウェアイベントの発生が、複数の第１のハードウェアイベントカウンター１１４〜１３４でそれぞれカウントされた後、複数の第２のハードウェアイベントカウンター１１５〜１３５がそれぞれサンプリングされ、複数の第１のハードウェアイベントカウンター１１４〜１３４及び複数の第２のハードウェアイベントカウンター１１５〜１３５がそれぞれリセットされる。上述したように、実施形態のプロセス１１１及び１２１は、複数のハードウェアイベントカウンター１１４〜１２４及び１１５〜１２５を割り当てて使用してもよいし、共通して使用してもよい。したがって、プロセッサ１０２は、例えば、一揃いのハードウェアイベントカウンターを備えればよい。
【００１７】
所定回数の第１ハードウェアイベントの発生がカウントされ、且つ複数の第２のハードウェアイベントカウンター１１５〜１３５がそれぞれサンプリングされた後、サンプリングされた複数の第２のハードウェアイベントカウンター１１５〜１３５の値は、アドレス可能なメモリ１４０の複数のプロセス識別子１４１〜１４５と共に、複数のストレージロケーション１４３〜１４７に記録及び／又は蓄積されるようにしてもよい。また、ある実施形態においては、サンプリングされた複数の第２のハードウェアイベントカウンター１１５〜１３５の値は、アドレス可能なメモリ１４０の複数のスレッド識別子１４４〜１４８と共に、複数のストレージロケーション１４３〜１４７に記録及び／又は蓄積されるようにしてもよい。
【００１８】
上述の技術を使用して、他のプロセス及び／又はスレッドから発生したハードウェアイベントによる影響を受けずに、より正確に特定のプロセス及び／又はスレッドのハードウェアイベントを捉える及び測定することができることは、明白である。
【００１９】
図２は、マルチプロセッシングシステムの性能監視のためのコンテキストスイッチサンプリングを実行するプロセス２０１の一態様を示すフローチャートである。プロセス２０１及びここに示される他のプロセスは、専用のハードウェア若しくはソフトウェア、又はファームウェアのオペレーションコードからなる複数の処理ブロックによって実行され、当該オペレーションコードは、汎用機、特殊用途機、及びこれらの組み合わせである機械において実行可能なものである。
【００２０】
処理ブロック２１１において、第１のハードウェアイベントカウンター（例えば、複数のイベントカウンター１１４〜１３４のうちの一つ）で、第１ハードウェアイベントの発生数Ｉがカウントされる。処理ブロック２１２において、第２のハードウェアカウンター（例えば、複数のイベントカウンター１１５〜１３５のうちの一つ）で、第２ハードウェアイベントの発生数Ｊがカウントされる。処理ブロック２１３では、Ｉが所定のＳＡＶ値"Ｎ"と等しいか否かが判断される。等しくない場合は、処理ブロック２１１において、カウントが続けられる。等しい場合は、処理が続けられ、処理ブロック２１４に進み、第２のハードウェアイベントカウンターで第２ハードウェアイベント発生数Ｊがサンプリングされる。そして、処理ブロック２１５において、第１及び第２のハードウェアイベントカウンターがリセットされ、処理ブロック２１６において、サンプリングされた発生数Ｊが、プロセス識別子（例えば１４１〜１４５）の値と共にアドレス可能なメモリ１４０（例えば、ロケーション1４３〜１４７）に記録される。
【００２１】
図３は、他の実施形態のコンテキススイッチサンプリングを実行するプロセス３０１を示したフローチャートである。
【００２２】
処理ブロック３１１において、第１のハードウェアイベントカウンター（例えば、複数のイベントカウンター１１４〜１３４のうちの一つ）で、セグメントレジスタの読み込みイベントの発生数Ｉがカウントされる。処理ブロック３１２において、第２のハードウェアイベントカウンター（例えば、複数のイベントカウンター１１５〜１３５のうちの一つ）で、第２ハードウェアイベントの発生数Ｊがカウントされる。処理ブロック３１３では、Ｉが所定のＳＡＶ値"Ｎ"と等しいか否かが判断される。等しくない場合は、処理ブロック３１１において、カウントが続けられる。等しい場合は、処理ブロック3１４に進み、第２のハードウェアイベントカウンターで第２ハードウェアイベント発生数Ｊがサンプリングされる。そして、処理ブロック３１５において、第１及び第２のハードウェアイベントカウンターの、セグメントレジスタ読み込みイベントの数及び第２のハードウェアイベントの数がリセットされて、処理ブロック３１６において、サンプリングされた発生数Ｊが、プロセス識別子（例えば１４１〜１４５）の値と共にアドレス可能なメモリ１４０（例えば、ロケーション1４３〜１４７）に記録される。
【００２３】
プロセス２０１及び３０１によれば、コンテキストスイッチが発生した時を判断することが可能となり、故に、他のプロセス及び／又はスレッドの実行中に発生するハードウェアイベントからの影響含むことなく、より正確に特定のプロセス及び／又はスレッドのハードウェアイベントを捉える及び測定するのにこれらプロセスを利用できるということは明白である。
【００２４】
上記の説明は、本発明の好ましい実施形態を述べたものである。上述された考察から、特に成長が早く、先の進歩を簡単に予測できない技術分野において、本発明の原則に反することなく特許請求の範囲及び均等物の範囲内において本発明における配置や細部構成に変更又は改良を加えることが可能であることは、当業者にとって明らかである。
【図１】
2010244552.tif 000003
【図２】
2010244552.tif 000004
【図３】
2010244552.tif 000005
【手続補正書】
【提出日】平成22年5月31日(2010.5.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチプロセッシングシステムにおいて性能監視をする方法であって、
第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントする段階と、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントする段階と、
前記第１ハードウェアイベントの発生が予め定められた回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングする段階と、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする段階と、を備える方法。
【請求項２】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項１に記載の方法。
【請求項３】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項２に記載の方法。
【請求項４】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項１に記載の方法。
【請求項５】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントであって、前記請求項１に記載の方法。
【請求項６】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項１に記載の方法。
【請求項７】
前記サンプリングした第の２ハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項１に記載の方法。
【請求項８】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項１に記載の方法。
【請求項９】
前記サンプリングした第２のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに備える請求項１に記載の方法。
【請求項１０】
マルチプロセッシングシステムにおいて性能監視をする方法であって、
第１のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントする段階と、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントする段階と、
前記セグメントレジスタの読み込みイベントの発生が予め定められた回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングする段階と、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする段階と、を備える方法。
【請求項１１】
前記サンプリングした第の２ハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項１０に記載の方法。
【請求項１２】
前記サンプリングした第２のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する段階をさらに備える請求項１１に記載の方法。
【請求項１３】
コンピュータに、
第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントさせ、
第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントさせ、
前記第１ハードウェアイベントの発生が予め定められた回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングさせ、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットさせるためのプログラム。
【請求項１４】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項１３に記載のプログラム。
【請求項１５】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項１４に記載のプログラム。
【請求項１６】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項１３に記載のプログラム。
【請求項１７】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントである請求項１３に記載のプログラム。
【請求項１８】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項１３に記載のプログラム。
【請求項１９】
前記コンピュータに、前記サンプリングした第２のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録させる請求項１３に記載のプログラム。
【請求項２０】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項１３に記載のプログラム。
【請求項２１】
前記コンピュータに、前記サンプリングした第２のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録させる請求項１３に記載のプログラム。
【請求項２２】
コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第１のハードウェアイベントカウンターと第２のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第１のハードウェアイベントカウンターにてセグメントレジスタの読み込みイベントの発生をカウントし、
前記第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントし、
第１ハードウェアイベントの発生が予め定められた回数カウントされた後、前記第２のハードウェアイベントカウンターの値をサンプリングし、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする、コンピュータシステム。
【請求項２３】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした前記第２のハードウェアイベントカウンターをプロセス識別子の値と共に記録する請求項２２に記載のコンピュータシステム。
【請求項２４】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する請求項２３に記載のコンピュータシステム。
【請求項２５】
コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第１のハードウェアイベントカウンターと第２のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第１のハードウェアイベントカウンターにて第１ハードウェアイベントの発生をカウントし、
前記第２のハードウェアイベントカウンターにて第２ハードウェアイベントの発生をカウントし、
前記第１ハードウェアイベントの発生が予め定められた回数カウントされた後、前記第２のハードウェアイベントカウンターをサンプリングし、
前記第１のハードウェアイベントカウンター及び前記第２のハードウェアイベントカウンターをリセットする、コンピュータシステム。
【請求項２６】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する請求項２５に記載のコンピュータシステム。
【請求項２７】
前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第２のハードウェアイベントカウンター値をスレッド識別子の値と共に記録する請求項２５に記載のコンピュータシステム。
【請求項２８】
前記第１ハードウェアイベントは、記述子テーブル読み込みイベントである請求項２５に記載のコンピュータシステム。
【請求項２９】
前記第１ハードウェアイベントは、ローカル記述子テーブル読み込みイベントである請求項２８に記載のコンピュータシステム。
【請求項３０】
前記第１ハードウェアイベントは、セグメントレジスタ読み込みイベントである請求項２５に記載のコンピュータシステム。
【請求項３１】
前記第１ハードウェアイベントは、前記第２のハードウェアイベントカウンターのサンプリングをトリガーするべく予め定められているアドレスからメモリを呼び出すイベントである請求項２５に記載のコンピュータシステム。
【請求項３２】
前記第１ハードウェアイベントは、プロセス識別子変更イベントである請求項２５に記載のコンピュータシステム。
【請求項３３】
前記第１ハードウェアイベントは、スレッド識別子変更イベントである請求項２５に記載のコンピュータシステム。
【外国語明細書】
2010244552.tif 000006
2010244552.tif 000007
2010244552.tif 000008
2010244552.tif 000009
2010244552.tif 000010
2010244552.tif 000011
2010244552.tif 000012
2010244552.tif 000013
2010244552.tif 000014
2010244552.tif 000015
2010244552.tif 000016
2010244552.tif 000017
2010244552.tif 000018
2010244552.tif 000019