【手続補正書】
【提出日】平成17年11月9日(2005.11.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  システムのプロセッサパイプラインにおいて命令をサンプリングする装置であって、
複数の処理段を有するパイプラインの第１段へ命令をフェッチする手段を備え、命令は、それらがサンプリングのため選択されたことを指示している付加的なフイールドにより認識され、付加的なフイールドはパイプラインにおける命令毎にサンプルビットを含んでおり；
前記のフェッチした命令のいずれか１つを選択された命令として識別する手段を備え；
特定の選択された命令がパイプラインのいずれかの段にある間に前記のシステムの状態情報をサンプリングする手段を備え；
特定の選択された命令がパイプラインを出るときにソフトウェアを通知し、ソフトウェアがいずれかの状態情報を読み取れるようにする手段を備え、前記のサンプリングする手段と前記のソフトウエアを通知する手段とは前記の選択された命令におけるサンプルビットの表明により起動されることを特徴とする装置。
【請求項２】  前記のフェッチされた命令はランダムに選択される請求項１に記載の装置。
【請求項３】  前記の選択された命令は、パイプラインにより完全に処理される有効命令と、パイプラインを出る前にアボートされる有効命令と、パイプラインを出る前に部分的に処理される無効命令とを含む請求項１に記載の装置。
【請求項４】  前記の選択された命令は、割り込み不能な命令を含むことができる請求項１に記載の装置。
【請求項５】  前記の複数の段は、フェッチ、マップ、イッシュー、実行及びリタイア段を含む請求項１に記載の装置。
【請求項６】  付加的なフイールドが命令の番号を蓄積し、そして装置が付加的なフイールドを蓄積する比較レジスタを更に含んでいる請求項１に記載の装置。
【請求項７】  サンプリングコンピュータと；
このサンプリングコンピュータを特定の値に初期化する手段と；
前記のサンプリングカウンタが特定の事象に応答してオーバーフローするときに前記の選択手段をアクチベートするための手段と
を更に備えた請求項１に記載の装置。
【請求項８】  特定の事象は有効なフェッチされた命令である請求項７に記載の装置。
【請求項９】  フェッチレートはクロックにより決定され、そして前記の特定の事象は、単一の潜在的にフェッチされる命令に対応するクロックサイクルの小区分である請求項７に記載の装置。
【請求項１０】  前記の特定の事象はパイプラインのいずれかの段への命令の導入である請求項７に記載の装置。
【請求項１１】  前記の特定の値はサンプリングの平均頻度数を表すため間隔の数からランダムに選択される請求項７に記載の装置。
【請求項１２】  前記の間隔の数のサイズはサンプリングの平均頻度数を動的に変えるよう変えられる請求項１１に記載の装置。
【請求項１３】  前記のランダムな数はソフトウェアで決定される請求項１１に記載の装置。
【請求項１４】  前記のランダムな数はハードウェアで発生される請求項１１に記載の装置。
【請求項１５】  前記の状態情報は選択された命令を識別する情報を含む請求項１に記載の装置。
【請求項１６】  前記の識別情報は選択された命令のアドレスを含む請求項１５に記載の装置。
【請求項１７】  前記の識別情報は選択された情報を実行するプロセスの認識を含む請求項１５に記載の装置。
【請求項１８】  前記の識別情報はアドレススペース番号を含む請求項１に記載の装置。
【請求項１９】  前記の識別情報はハードウェアコンテクスト識別子を含む請求項１に記載の装置。
【請求項２０】  前記のソフトウェアを通知する手段は、特定の選択された命令がパイプラインを出るときに割り込みを発生する請求項１に記載の装置。
【請求項２１】  前記のソフトウエアを通知する手段はソフトウエアによりポーリングできるフラッグをセットして特定の選択された命令がパイプラインを出たことを決定する請求項１に記載の装置。
【請求項２２】  選択された命令のサブセットがサンプルされる請求項１に記載の装置。
【請求項２３】  状態情報がスレッド識別子を含む請求項１に記載の装置。    
【請求項２４】  状態情報が選択された命令のリタイア／アボート状態を含む請求項１に記載の装置。
【請求項２５】  状態情報は選択された命令を処理する間に検出される事象を含む請求項１に記載の装置。
【請求項２６】  状態情報が選択された命令が経験する待ち時間を含む請求項１に記載の装置。
【請求項２７】  システムのプロセッサパイプラインにおいて命令をサンプリングする装置であって、
複数の処理段を有するパイプラインの第１段へ命令をフェッチする手段を備え、命令は、それらがサンプリングのため選択されたことを指示している付加的なフイールドにより認識され、付加的なフイールドはパイプラインにおける命令毎にサンプルビットを含んでおり；
前記のフェッチした命令のいずれか１つを選択された命令として識別する手段を備え；
特定の選択された命令がパイプラインのいずれかの段にある間に前記のシステムの状態情報をサンプリングするサンプリングユニットを備え；
特定の選択された命令がパイプラインを出るときにソフトウェアを通知し、ソフトウェアがいずれかの状態情報を読み取れるようにする通知ユニットを備え、前記のサンプリングユニットと前記の通知ユニットとは前記の選択された命令におけるサンプルビットの表明により起動されることを特徴とする装置。
【請求項２８】  システムのプロセッサパイプラインにおいて命令をサンプリングする方法であって、
複数の処理段を有するパイプラインの第１段へ命令をフェッチする段階を備え、命令は、それらがサンプリングのため選択されたことを指示している付加的なフイールドにより認識され、付加的なフイールドはパイプラインにおける命令毎にサンプルビットを含んでおり；
前記のフェッチした命令のいずれか１つを選択された命令として識別する段階を備え；
特定の選択された命令がパイプラインのいずれかの段にある間に前記のシステムの状態情報をサンプリングする段階を備え；
特定の選択された命令がパイプラインを出るときにソフトウェアを通知し、ソフトウェアがいずれかの状態情報を読み取れるようにする段階を備え、前記のサンプリング段階と前記の通知段階とは前記の選択された命令におけるサンプルビットの表明により起動されることを特徴とする方法。
【請求項２９】  命令を記憶するメモリと、複数の処理段を有するパイプラインと、通知ユニットと、入出力ユニットとを備えたシステムにおいて、
前記のパイプラインは、
パイプラインの第１段へ命令をフェッチする手段を備え、命令は、それらがサンプリングのため選択されたことを指示している付加的なフイールドにより認識され、付加的なフイールドはパイプラインにおける命令毎にサンプルビットを含んでおり；
前記のフェッチした命令のいずれか１つを選択された命令として識別する識別ユニットを備え；
特定の選択された命令がパイプラインのいずれかの段にある間に前記のシステムの状態情報をサンプリングするサンプリングユニットを備え；そして
特定の選択された命令がパイプラインを出るときにソフトウェアを通知し、ソフトウェアがいずれかの状態情報を読み取れるようにする通知ユニットを備え、そして
前記の入出力ユニットは入力データと出力データとをシステムに入出力し、前記のサンプリングユニットと前記の通知ユニットとは前記の選択された命令におけるサンプルビットの表明により起動されることを特徴とするシステム。