JP2003531436A - 非侵入式アプリケーション・コード・プロファイリングの方法および装置 - Google Patents
非侵入式アプリケーション・コード・プロファイリングの方法および装置Info
- Publication number
- JP2003531436A JP2003531436A JP2001577148A JP2001577148A JP2003531436A JP 2003531436 A JP2003531436 A JP 2003531436A JP 2001577148 A JP2001577148 A JP 2001577148A JP 2001577148 A JP2001577148 A JP 2001577148A JP 2003531436 A JP2003531436 A JP 2003531436A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- register
- clock
- host computer
- contents
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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 for performance assessment
- G06F11/3419—Recording 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 for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
析の分野に関する。詳細には、本発明は、プログラムの、詳細には、アプリケー
ション・プログラムの様々な命令および部分を実行するプロセッサによって占有
される時間の非侵入式の監視およびプロファイリングに関する。
て情報処理アプリケーションを行うのに使用されている。特に、今日、プロセッ
サが普及して中心的機能を果たしている1つの分野が、デジタル信号プロセッサ
(DSP)システムの分野である。そのようなシステムでは、音声信号またはビ
デオ信号、または医療遠隔測定入力または計測入力などの物理信号を表すデータ
がデジタル化され、様々なアルゴリズムにかけられて情報が抽出され、あるいは
新しい情報または新しい信号が生成され、あるいは情報が伝送される。そのよう
なDSPベースのシステムの動作を改良し、システムをより高速でより安価にす
ること等の市場圧力が常に存在する。より高い速度を達することにより、ハード
ウェアの改良に焦点が当てられることになるだけでなく、プロセッサ・ハードウ
ェアのより効率的な利用を達することも焦点が当てられることになる。したがっ
て、デジタル信号プロセッサ上で、または、実際、一般にプロセッサ上で実行さ
れるアプリケーション・ソフトウェア(コンピュータ・プログラム)を開発する
プロセスにおける1つのステップは、システムがソフトウェアによって動作させ
られる効率を評価して、プログラムのどの部分が最も多くの処理時間を消費し、
したがって、その部分の改良がシステムのパフォーマンスを相当に向上させる可
能性が最も高いかを判定しようと試みることである。
するのに一般に使用される方法は、試験中のシステムに対して影響を与える。例
えば、方法は、プログラム・コードの中に様々なポイントで区切り点命令を挿入
して、プログラムの進行を区切り点ごとに測定できるようにすることを必要とす
る可能性がある。別の言い方をすれば、従来の手法は、プログラム・コンパイラ
およびプログラム・アセンブラが(ユーザによって導入された指示を介して)、
サブルーチンのすべてのエントリ・ポイントおよびエグジット・ポイントで計装
コード(区切り点命令)を追加することを必要とする。この追加の計装コードを
使用して、サブルーチンの、より一般的には、プロセスの)エントリに関するプ
ロセッサのプログラム・カウンタの現行のカウントを捕捉することができる。エ
グジット時に、計装コードは、サブルーチンの(プロセスの)動作に関する様々
な情報(例えば、サブルーチン(プロセス)が開始された回数、サブルーチンの
中で経過した合計時間、サブルーチン通過の単一の最大時間、サブルーチン通過
の単一の最小時間等)でレコードを更新する。この情報を使用して、ユーザは、
どのルーチン(プロセス)がプロセス上で最も多くの時間を消費しているかに関
して何らかの結論に達し、これにより、改良することでプログラム・パフォーマ
ンスの相当な全体的向上がもたらされる可能性が最も高いサブルーチンを特定す
ることができる。もちろん、1つの欠点は、「目標」プログラム・コードを変更
しなければならないことであり、これは、計装コードを実行しているシステム・
パフォーマンスが、計装していないコードを実行するシステム・パフォーマンス
とは異なることである。ただし、試験を受けるプログラムのコードおよび自然な
フローを変更することにより、本来的に、不正確なデータの生成がもたらされる
。というのは、分析されるプログラムが、通常の使用時に存在する実際のプログ
ラムではないからである。システムの製造バージョンのダイナミックスのいくら
かが失われる可能性がある。この結果、特に最良のパフォーマンスに合せて入念
に調整されている(すなわち、通常、「高度に調整されている」と言われる)シ
ステム上で、結果の不正確さにより、さらなる調整を必要とするシステムの部分
に関する不正確な報告がもたらされる可能性がある。
とする。そのような状況では、パフォーマンス・データを収集するためにプログ
ラム・コードに追加の命令を挿入することにより、実際、システムが動作しなく
なる可能性がある。
る)ことなしに、プロセスがプログラム・コードを実行する際、プロセッサの非
侵入式監視を提供する方法および装置の必要性が存在する。
侵入式にサンプリングする統計的プロファイリング方法の使用によって対応がな
され、利点が得られる。収集されたデータにより、システム開発者は、プロセッ
サ時間の各ルーチンの利用を分析(さらには視覚化)を行うことができ、したが
って、開発者は、どのルーチンがプロセッサのパフォーマンスの大部分を消費し
ているかを特定し、それらのルーチンを最適化することができる。ランダム・サ
ンプリングは、JTAGポートとして知られる業界標準のポートを有する、プロ
セッサ上に、詳細には、DSP上に一般に備えられているシフト・レジスタを利
用して得られる。JTAGポートは、従来、いわゆる境界スキャニング動作で使
用するために提供される。
なわち、プロセッサ・コア・クロックとは独立のタイミング)でサンプリングが
行われない場合、収集された情報は、あるプログラム・カウントまたはルーチン
が実際よりも多い頻度で、または少ない頻度で実行されていると不正確に示す可
能性がある。これは、サンプリングが、プログラム実行とどうにか同期している
ときに生じる可能性がある。これを回避するため、本発明によるシステムは、通
常、少なくとも、プロセッサ・コア・クロックとは独立したクロックを使用して
プログラム・カウンタ内容のサンプリングを行う。
・サンプリングを行う。第1に、サンプリング・ポートでレジスタのために使用
するクロックが、前段で説明したとおり、プロセッサを動作させるクロックとは
独立に動作する。第2に、外部ホスト・コンピュータ(例えば、パーソナル・コ
ンピュータまたはワークステーション)を使用して、いつプログラム・カウンタ
をサンプリングするかに関してサンプリング・ポートに知らせる。ホストからの
信号は、サンプリング・ポートにおけるクロックとは非同期に確立される。この
プロセスは、サンプリングするコマンドとサンプリングの開始の間にランダムな
遅延を加える。サンプリングを行うコマンドは、規定の間隔を特定し、または規
定の間隔中、継続して、次に別の間隔中、停止して、複数の逐次サンプルを可能
にし、所望される場合、サンプリング・プロセスに「バースト性」の品質を与え
る。または、1回につき1つだけのサンプルをとることができる。
するソフトウェア・コードを実行する際、プロセッサを監視するためのシステム
に関わる。システムは、プロセッサによって実行された命令に関する情報を収集
する、プロセッサに動作可能に接続されたレジスタと、プロセッサの動作とは非
同期にレジスタの内容をサンプリングする、レジスタに動作可能に接続されたサ
ンプラ(即ち、サンプル回路)とを含む。システムは、前記サンプルを受け取り
、プロセッサによって実行された命令の統計レコードを提供するホスト・コンピ
ュータを含むことが可能である。
するソフトウェア・コードを実行する際、プロセッサを監視するためにシステム
に関わり、プロセッサによって実行された命令に関する情報を収集するプロセッ
サに動作可能に接続されたレジスタと、プロセッサの動作とは非同期にレジスタ
の内容をサンプリングするレジスタに動作可能に接続されたサンプラと、レジス
タの内容をサンプリングするサンプラの動作を開始するコマンドを発行するホス
ト・コンピュータとを含む。ホスト・コンピュータは、前記サンプルを受け取り
、プロセッサによって実行された命令の統計レコードを提供することができる。
するソフトウェア・コードを実行する際、プロセッサを監視するためのシステム
に関わり、プロセッサが、第1のクロックによってクロックされ、前記第1のク
ロックによってやはりクロックされるプログラム・カウンタを含み、プログラム
・カウンタに動作可能に接続され、第1のクロックによってクロックされ、不能
(disable)にされているとき以外、第1のクロックと同期にプログラム
・カウンタの内容を受け取るレジスタと、レジスタに動作可能に接続されて、第
1のクロックとは独立の第2のクロックに応答してレジスタ内容をサンプリング
するラッチとを含む。また、レジスタがラッチによってサンプリングされている
間、レジスタを不能にするように適合された論理を提供することも可能である。
ラッチの内容を受け取り、その内容をユーザ装置に通信するように動作可能に接
続されたシフト・レジスタが含まれることが可能である。また、第1のクロック
および第2のクロックとは独立の第3のクロックによってクロックされるホスト
・コンピュータ、およびホスト・コンピュータとラッチの間に結合され、ホスト
・コンピュータからのサンプリング・コマンドをラッチに通信してラッチによる
サンプリングを開始するインターフェース・ユニットも含まれることが可能であ
る。インターフェース・ユニットは、第2のクロックと同期にサンプリングを行
うコマンドをラッチに発行することができる。ラッチは、プログラム・カウンタ
からの一続きのプロセッサ命令内容をレジスタからシーケンスで受け取るように
時々、制御することが可能である。また、好ましくは、ただし、オプションとし
て、プログラム・カウンタ内の命令を実行するための条件が満たされていないと
き、レジスタを不能にする論理も含まれることが可能である。
に関するソフトウェア・コードを実行する際、プロセッサを監視するための方法
に関わり、プロセッサは、第1のクロックによってクロックされ、前記第1のク
ロックによってやはりクロックされるプログラム・カウンタを含み、実行されな
い命令に関する命令内容を捕捉しないことを除き、非侵入式に第1のクロックと
同期してレジスタの中のプログラム・カウンタの命令内容を捕捉することと、第
1のクロックとは独立の第2のクロックに応答してレジスタ内容をサンプリング
することとを含む。そのような方法は、レジスタがサンプリングされている間、
レジスタを不能にすることをさらに含むことが可能である。サンプリングは、ラ
ッチの内容を受け取り、その内容をユーザ装置に通信するように動作可能に接続
されたシフト・レジスタにプログラム・カウンタ内容を渡すことを含むことが可
能である。好ましくは、シフト・レジスタは、JTAGポートにある。ユーザ装
置は、ホスト・コンピュータであることが可能であり、ホスト・コンピュータを
動作させて、捕捉されたプログラム・カウンタ命令内容の統計分析を生成するこ
とができる。オプションとして、方法は、第1のクロックおよび第2のクロック
とは独立の第3のクロックによってホスト・コンピュータをクロックすること、
およびホスト・コンピュータとラッチの間に結合されたインターフェース・ユニ
ットを使用して、ホスト・コンピュータからのサンプリング・コマンドをラッチ
に通信して、ラッチによるサンプリングを開始することをさらに含むことが可能
である。
ンプリングを行うコマンドをラッチに発行し、ラッチが、第2のクロックと第3
のクロックの差、および処理遅延に関連する遅延の後、応答することを含むこと
も可能である。方法は、プログラム・カウンタからの一続きのプロセッサ命令内
容をレジスタからシーケンスで受け取るように少なくとも時々、ラッチを制御す
ることを含むことが可能である。また、方法は、プログラム・カウンタ内の命令
を実行するための条件が満たされていないとき、レジスタを不能にすることを含
むことも可能である。
に関するソフトウェア・コードを実行する際、プログラム・カウンタを有するプ
ロセッサを監視するための方法に関わり、プログラム・カウンタから、プロセッ
サによって実行された命令に関する情報を非侵入式に収集することと、プロセッ
サの動作とは非同期式に、収集された情報をサンプリングすることとを含む。こ
の方法は、JTAGポートにおけるシフト・レジスタを介してホスト・コンピュ
ータにサンプルを提供することをさらに含むことが可能であり、次に、プロセッ
サによって実行された命令の統計レコードを提供するようにホスト・コンピュー
タを動作させることが可能である。
れる。図面では、同様の参照番号が、同様の要素を指すものとする。アイテムは
、一定の縮尺で描いたものではない。
目標プログラム・コードの中に設定または実装される様々なルーチンおよびプロ
セスを実行する際にプロセッサによって占有される時間の統計プロファイルを作
成することにより、コード最適化を可能にすることができる。この統計プロファ
イルを作成する1つのやり方は、プロセッサをランダムにサンプリングして、サ
ンプリング時間にプロセッサがどの命令を実行しているかを判定することである
。次に、その命令をプログラム・コードの中のその命令の場所に関連付け、タイ
ミング・プロファイルを作成することができる。好都合なことに、ほとんどのプ
ロセッサには、プログラム・カウンタ(PC)が含まれる。プログラム・カウン
タは、実行中の命令のアドレス(メモリ内の)を含むレジスタである。このレジ
スタの内容は、プログラムの各命令がメモリから取り出される直前に自動的に増
分されて、記憶された命令の逐次の実行を可能にする。プログラム制御下で、P
Cの内容をポインタ・レジスタの内容で変更または交換して、サブルーチン呼出
しおよびプログラム分岐を行うことも可能である。他の目的で一般に使用される
機構を適合させて、相当なオーバーヘッドを生じさせることなく、プログラム・
カウンタの統計サンプリングを可能にすることができる。この機構は、プロセッ
サ・チップに通常、組み込まれるいわゆるJTAGレジスタである。JTAGは
、ボードレベル試験のある問題に対する解決策を業界標準として確立し、普及さ
せるために1985年に会合を開いたエレクトロニクス業界および半導体業界に
おける200を超える会員の団体であるJoint Test Action
Groupの略語である。1990年の解決策は、IEEE Std.1149
〜1990、IEEE Standard Test Access Port
And Boundary−Scan Architectureになった。
すべてのJTAG(すなわち、IEEE Std.1149.1)対応の装置は
、試験命令および試験データを装置に逐次にロードすることができるようにし、
その後の試験結果を装置から逐次に読み取ることができるようにするレジスタを
含む。標準に適合するのに、構成要素は、ある基本的試験機能を有していなけれ
ばならないが、標準により、設計者は、自身の独自の要件を満たす試験機能を追
加できるようになる。
るDSP10などのプロセッサをブロック図で示す図1を参照する。レジスタ1
6が、マイクロプロセッサのコア・クロックの各「刻み」ごとにPC内容を収集
し、またレジスタ16に接続されたサンプラ(サンプル回路)18が、プロセッ
サのコア・クロックの動作とは非同期にレジスタ16の内容をサンプリングする
。
容をパラレル式に受け取る。クロック生成器19からのマイクロプロセッサ・コ
ア・クロック(CCLK)の各刻みごとに、ライン22上でDISABLE信号
がアサート(assert)されない限り、PC内容がレジスタ16の中にロー
ドされる。レジスタ16が読み取られる際(以下を参照)、内容が読み取られる
までレジスタの内容が変更されるのを防止するため、中止され、プロセッサによ
って実行されない命令に関して不能信号はアサートされる。中止される命令には
、プログラム・コードの中に存在するが、実行が条件付きであり、実行を可能に
するその条件が生じなかったときの命令が含まれる。
タの出力をバス26上でパラレル式に受け取るラッチ24を含む。サンプリング
・ラッチ24は、マイクロプロセッサ・コア・クロックCCLKとは別の独立し
て動作する試験クロック(TCLK)によってクッロクされる。ラッチ24は、
シフト・レジスタ28によってパラレル式に読み取られ、レジスタの内容が、ラ
イン32上にシリアル式にシフトアウトされることが可能である。シフト・レジ
スタ28は、JTAG EMUPCシフト・レジスタであることが可能である。
スタ16の内容を捕捉するだけでなく、ライン36上に現れるSAMPLE信号
で表されるとおり、PCがサンプリングされるとき、ライン22上でDISAB
LE信号を生成して(論理34を介して)レジスタ16を不能にすることも行う
。つまり、SAMPLE信号が提供されるとき、DISABLE信号が生成され
て、レジスタ16がCCLKクロックに応答するのを止めさせ、レジスタ16の
中で捕捉されるPC内容が、読み取ることができる前に変更されないことを確実
にするようにする。必要な場合、単にタイミング問題を解決し、プロファイル・
レジスタ16がラッチ24によってサンプリングされる前に不能にされることを
確実にするだけのために、必要のない可能性があり、当分野の技術の範囲内の設
計上の詳細と見なされるべき論理34が提供される。論理34は、入力としてT
CLK信号およびSAMPLE信号を受け取るものとして示しているが、TCL
K信号およびSAMPLE信号を必要な入力と見なしてはならない。
理解することができる。例として、任意の所与のクロック・サイクル中、第1の
命令が取り出され、直前の取り出された命令が復号化され、次の先行する命令が
、評価され、条件付きで実行されるパイプライン式プロセッサを考慮されたい。
一続きの6つの命令、A〜Fを想定する。命令A〜Cは、NOP(動作なし)命
令であり、命令Dは、Aにジャンプする命令であり、また命令EおよびFは、条
件が満たされず、したがって、遭遇したとき、実行されるべきではないものと想
定する条件付き命令COND1およびCOND2である。図2は、一続きのプロ
セッサ・クロック・サイクルのそれぞれに関して、取り出された命令のシーケン
スを行42に示し、復号化された命令のシーケンスを行44に示し、見かけでは
実行された命令のシーケンス46、ならびに命令EおよびFが中止されるために
もたらされるレジスタの内容のシーケンス48を示している。したがって、この
仮想の例では、時間の50%で、プロセッサが、命令Dを実行しているものと予
期されることが分かる。プロファイリング・レジスタ16の統計的に有効なサン
プリングが行われる場合、実際、命令Dが半分の時間、実行されていることが分
かる。これは、命令Dを効率的に実行すること、またはプログラム・コードを変
更して、別の命令、より高速に実行されるコードで元のコードを置き換えること
ができることに注意を向けるべきであるという結論に設計者を導くことになる。
れるすべての命令のシーケンスではない。そうではなく、出力のサンプリングで
あり、各プロセッサ・クロック・サイクルごとに複数のクロック・サイクルを必
要とする命令のシリアル・ビット・ストリームを提供する。
ルの数である。ランダムに収集されたサンプルの数が増大するにつれ、サンプル
から抽出される情報の正確さも高まる。このことは、デバッガが、サンプリング
をランダムに保ちながらも、可能な限り高速にサンプルを収集することを確実に
するのが望ましいことを示す。好ましくは、これは、プロセッサからサンプルの
妥当なサイズの「バースト」(例えば、32〜64サンプル)を収集することに
よって達せられる。
ングを可能にする、または別の仕方で、サンプリング動作のランダム性のより高
い信頼性を確実にすることができる。パーソナル・コンピュータまたはワークス
テーションなどのホスト・コンピュータ42が、通信リンクまたはバス44(例
えば、PCIまたはISAバス)を介してインサーキット・エミュレータ(IC
E)46にコマンドを発行し、このコマンドは、インサーキット・エミュレータ
46が、SAMPLE信号をライン36上で発行するようにさせるものである。
インサーキット・エミュレータは、ホスト・コンピュータとJTAGポートの間
でコマンド変換およびプロトコル変換を提供する従来の装置または回路である。
また、インサーキット・エミュレータは、本明細書でTCLKクロックとラベル
付けした、JTAGシフト・レジスタおよび他のポート構成要素によって使用さ
れるクロックを生成して、JTAGポートに供給する。ホストは、ICEおよび
サンプラ18によって使用されるTCLKクロックとは非同期して独自の内部ク
ロックで動作する。また、サンプラのTCLKクロックも、プロセッサ・クロッ
クCCLKに関して非同期であり、独立である。したがって、ホスト・システム
によるサンプリング・コマンドのアサートとSAMPLE信号のアサートの間で
本来的でランダムな遅延(クロック・サイクル間隔内)が存在する。
ある間隔中、再びサンプリングを行い、これらの間隔のそれぞれは、1つまたは
複数の(必ずしも量が一様でない)プロセッサ・クロック・サイクルの継続時間
を有する。
ードバックすることができ、ホストが、任意の従来の統計分析ソフトウェアまた
はカスタムの統計分析ソフトウェアを実行して、サンプリングされたプログラム
・カウントの分布を計算し、かつ/または表示することが可能である。所望され
る場合、示していないが、各サンプルにタイムスタンプを押して、経過時間統計
を作成できるようにすることも可能である。
く、システムの速度を低下させることなく、またソース・レベルまたはマシン・
コード・レベルのどちらでもプログラム・コードに対する変更を全く必要とする
ことなく、デジタル信号プロセッサなどのプロセッサ上におけるプログラム命令
の実行を監視し、分析するための装置および方法を提供することが分かる。した
がって、プログラム・コードのパフォーマンスを分析するため、プログラム・コ
ードのコンパイルをやり直す、またはアセンブルをやり直す必要が全くない。ま
た、プログラムのどこに、区切り点を挿入することが有益である可能性があるか
を先験的に知っている必要もない。プログラム全体の動作が、統計的に監視され
、したがって、先験的仮定は、全く必要ない。命令利用が非侵入式に追跡される
。
説明のために例としてだけ提示しており、限定するものではない。当分野の技術
者には、開示した実施形態の変形形態、ならびに全く新しい実施形態が容易に考
えられよう。そのような改変形態、変更形態、拡張形態、および追加形態は、本
発明の趣旨および範囲の中にあるものとされ、本明細書で示唆されるものである
。例えば、ホスト・コンピュータは、汎用コンピュータである必要はなく、例え
ば、専用試験システム、または限られた機能性の他の装置、またはハンドヘルド
・プログラマブル計算機であることが可能である。ラッチとして説明した要素は
、他の適切なタイプのレジスタであることが可能である。命令を1回に1つづつ
サンプリングすること、または一続きの複数の命令の連続でサンプリングするこ
とが可能である。サンプリングは、JTAGレジスタ以外の専用レジスタまたは
その他のレジスタを介して実行することも可能である。これらは、当分野の技術
者には考えられ、カバーされるものである本発明の主題の変形形態のいくつかに
過ぎない。したがって、本発明は、頭記の特許請求の範囲および等価内容によっ
てだけ限定されるものとする。
い本発明によるシステムを示すブロック図である。
プログラム・カウンタ捕捉レジスタを動作させ、実際に実行された命令だけを捕
捉するようにする仕方を示す図である。
Claims (28)
- 【請求項1】 プロセッサがコンピュータ・プログラムに関するソフトウェ
ア・コードを実行する際、前記プロセッサを監視するためのシステムであって、 前記プロセッサに動作可能に結合され、前記プロセッサによって実行される命
令に関する情報を収集するレジスタと、 前記レジスタに動作可能に接続され、前記プロセッサの動作と非同期に前記レ
ジスタの内容をサンプリングするサンプラとを含むシステム。 - 【請求項2】 前記サンプルを受け取り、前記プロセッサによって実行され
た前記命令の統計レコードを提供するホスト・コンピュータをさらに含む請求項
1に記載のシステム。 - 【請求項3】 プロセッサがコンピュータ・プログラムに関するソフトウェ
ア・コードを実行する際、前記プロセッサを監視するためのシステムであって、 前記プロセッサに動作可能に結合され、前記プロセッサによって実行される命
令に関する情報を収集するレジスタと、 前記レジスタに動作可能に接続され、前記プロセッサの動作と非同期に前記レ
ジスタの内容をサンプリングするサンプラと、 前記レジスタの前記内容をサンプリングする前記サンプラの動作を開始するコ
マンドを発行するホスト・コンピュータとを含むシステム。 - 【請求項4】 前記サンプルを受け取り、前記プロセッサによって実行され
た前記命令の統計レコードを提供する前記ホスト・コンピュータをさらに含む請
求項3に記載のシステム。 - 【請求項5】 プロセッサがコンピュータ・プログラムに関するソフトウェ
ア・コードを実行する際、前記プロセッサを監視するためのシステムであって、 前記プロセッサが、第1のクロックによってクロックされ、前記第1のクロッ
クによってやはりクロックされるプログラム・カウンタを含み、 前記プログラム・カウンタに動作可能に接続され、前記第1のクロックによっ
てクロックされ、不能にされているとき以外、前記第1のクロックと同期に前記
プログラム・カウンタの前記内容を受け取るレジスタと、 前記レジスタに動作可能に接続されて、前記第1のクロックとは独立の第2の
クロックに応答して前記レジスタ内容をサンプリングするラッチとを含むシステ
ム。 - 【請求項6】 前記レジスタが前記ラッチによってサンプリングされている
間、前記レジスタを不能にするように適合された論理をさらに含む請求項5に記
載のシステム。 - 【請求項7】 前記ラッチの前記内容を受け取り、前記内容をユーザ装置に
通信するように動作可能に接続されたシフト・レジスタをさらに含む請求項5ま
たは請求項6に記載のシステム。 - 【請求項8】 第1のクロックおよび第2のクロックとは独立の第3のクロ
ックによってクロックされるホスト・コンピュータと、 前記ホスト・コンピュータと前記ラッチの間に結合され、前記ホスト・コンピ
ュータからのサンプリング・コマンドを前記ラッチに通信して、前記ラッチによ
るサンプリングを開始するように構成されたインターフェース・ユニットとをさ
らに含む請求項7に記載のシステム。 - 【請求項9】 前記インターフェース・ユニットが、前記第2のクロックと
非同期にサンプリングするコマンドを前記ラッチに発行する請求項8に記載のシ
ステム。 - 【請求項10】 前記ラッチが、時々、前記プログラム・カウンタからの一
続きのプロセッサ命令内容を前記レジスタからシーケンスで受け取るように制御
される請求項7に記載のシステム。 - 【請求項11】 前記シフト・レジスタが、JTAGポートである請求項7
に記載のシステム。 - 【請求項12】 プログラム・カウンタ内の命令を実行するための条件が満
たされていないとき、前記レジスタを不能にする論理をさらに含む請求項5に記
載のシステム。 - 【請求項13】 プロセッサがコンピュータ・プログラムに関するソフトウ
ェア・コードを実行する際、前記プロセッサを監視するための方法であって、 前記プロセッサに動作可能に接続されたレジスタの中に、前記プロセッサによ
って実行される命令に関する情報を収集することと、 前記プロセッサの動作と非同期に、前記レジスタの内容をサンプリングするこ
ととを含む方法。 - 【請求項14】 前記サンプルを受け取り、前記プロセッサによって実行さ
れた前記命令の統計レコードを提供するようにホスト・コンピュータを動作させ
ることをさらに含む請求項13に記載の方法。 - 【請求項15】 プロセッサがコンピュータ・プログラムに関するソフトウ
ェア・コードを実行する際、前記プロセッサを監視するための方法であって、 前記プロセッサに動作可能に接続されたレジスタの中で、前記プロセッサによ
って実行される命令に関する情報を収集することと、 前記プロセッサの動作と非同期に、前記レジスタの前記内容をサンプリングす
ることと、 前記レジスタの前記内容をサンプリングする前記サンプラの動作を開始するコ
マンドを発行するようにホスト・コンピュータを動作させることとを含む方法。 - 【請求項16】 前記サンプルを受け取り、前記プロセッサによって実行さ
れた前記命令の統計レコードを提供するように前記ホスト・コンピュータを動作
させることをさらに含む請求項15に記載の方法。 - 【請求項17】 プロセッサがコンピュータ・プログラムに関するソフトウ
ェア・コードを実行する際、前記プロセッサを監視するための方法であって、 前記プロセッサが、第1のクロックによってクロックされ、前記第1のクロッ
クによってやはりクロックされるプログラム・カウンタを含み、 実行されない命令に関する命令内容を捕捉しないことを除き、非侵入式に第1
のクロックと同期してレジスタの中で前記プログラム・カウンタの前記命令内容
を捕捉することと、 前記第1のクロックとは独立の第2のクロックに応答して前記レジスタ内容を
サンプリングすることとを含む方法。 - 【請求項18】 前記レジスタがサンプリングされている間、前記レジスタ
を不能にすることをさらに含む請求項17に記載の方法。 - 【請求項19】 サンプリングすることが、前記ラッチの前記内容を受け取
り、前記内容をユーザ装置に通信するように動作可能に接続されたシフト・レジ
スタに前記プログラム・カウンタ内容を渡すことを含む請求項17または請求項
18に記載の方法。 - 【請求項20】 前記シフト・レジスタが、JTAGポートである請求項1
9に記載の方法。 - 【請求項21】 前記ユーザ装置が、ホスト・コンピュータであり、前記ホ
スト・コンピュータが、捕捉されたプログラム・カウンタ命令内容の統計分析を
生成するように動作させられる請求項19に記載の方法。 - 【請求項22】 前記第1のクロックおよび前記第2のクロックとは独立の
第3のクロックによって前記ホスト・コンピュータをクロックすることと、 前記ホスト・コンピュータと前記ラッチの間で結合されたインターフェース・
ユニットを使用し、前記ホスト・コンピュータから前記ラッチにサンプリング・
コマンドを通信して、前記ラッチによるサンプリングを開始することとをさらに
含む請求項19に記載の方法。 - 【請求項23】 前記インターフェース・ユニットが、前記第2のクロック
と同期にサンプリングするコマンドを前記ラッチに発行する請求項22に記載の
方法。 - 【請求項24】 前記ラッチが、少なくとも時々、前記プログラム・カウン
タからの一続きのプロセッサ命令内容を前記レジスタからシーケンスで受け取る
ように制御されることをさらに含む請求項17に記載の方法。 - 【請求項25】 プログラム・カウンタ内の命令を実行するための条件が満
たされていないとき、前記レジスタを不能にすることをさらに含む請求項17に
記載の方法。 - 【請求項26】 プロセッサがコンピュータ・プログラムに関するソフトウ
ェア・コードを実行する際、プログラム・カウンタを有するプロセッサを監視す
るための方法であって、 前記プログラム・カウンタから、前記プロセッサによって実行された命令に関
する情報を非侵入式に収集することと、 前記プロセッサの動作と非同期に、前記収集された情報をサンプリングするこ
ととを含む方法。 - 【請求項27】 JTAGポートにおけるシフト・レジスタを介して前記サ
ンプルをホスト・コンピュータに提供することをさらに含む請求項26に記載の
方法。 - 【請求項28】 前記ホスト・コンピュータが、前記プロセッサによって実
行された命令の統計レコードを提供することをさらに含む請求項27に記載の方
法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19619200P | 2000-04-11 | 2000-04-11 | |
US60/196,192 | 2000-04-11 | ||
PCT/US2001/011881 WO2001080012A2 (en) | 2000-04-11 | 2001-04-11 | Non-intrusive application code profiling method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003531436A true JP2003531436A (ja) | 2003-10-21 |
JP5356635B2 JP5356635B2 (ja) | 2013-12-04 |
Family
ID=22724399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001577148A Expired - Lifetime JP5356635B2 (ja) | 2000-04-11 | 2001-04-11 | 非侵入式アプリケーション・コード・プロファイリングの方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6718286B2 (ja) |
EP (1) | EP1272934B1 (ja) |
JP (1) | JP5356635B2 (ja) |
DE (1) | DE60100901T2 (ja) |
WO (1) | WO2001080012A2 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030083849A1 (en) * | 2001-10-31 | 2003-05-01 | Cabot Mason B. | Statistical sampling process |
US7394877B2 (en) * | 2001-12-20 | 2008-07-01 | Texas Instruments Incorporated | Low-power packet detection using decimated correlation |
DE10234469A1 (de) * | 2002-07-29 | 2004-02-12 | Siemens Ag | Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät |
WO2004046930A1 (fr) * | 2002-11-15 | 2004-06-03 | Stmicroelectronics S.A. | Dispositif a liaison serie de surveillance d'un microprocesseur |
FI5706U1 (fi) * | 2002-11-21 | 2003-02-26 | Patria New Technologies Oy | JTAG-testilaitteisto ja -testausjärjestelmä |
US7185215B2 (en) | 2003-02-24 | 2007-02-27 | International Business Machines Corporation | Machine code builder derived power consumption reduction |
US7610348B2 (en) | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US6965978B2 (en) * | 2003-05-15 | 2005-11-15 | Microsoft Corporation | Memory tracking tool |
US7506241B2 (en) * | 2003-10-16 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for a self healing agent |
US7318226B2 (en) * | 2003-10-16 | 2008-01-08 | International Business Machines Corporation | Distributed autonomic solutions repository |
US7404160B2 (en) * | 2005-02-18 | 2008-07-22 | Quickturn Design Systems Inc. | Method and system for hardware based reporting of assertion information for emulation and hardware acceleration |
US20080127102A1 (en) * | 2006-09-14 | 2008-05-29 | Glen J Anderson | Technique to visually present memory location and usage during code execution |
US7881906B2 (en) * | 2008-02-15 | 2011-02-01 | International Business Machines Corporation | Method, system and computer program product for event-based sampling to monitor computer system performance |
US7870438B2 (en) * | 2008-02-15 | 2011-01-11 | International Business Machines Corporation | Method, system and computer program product for sampling computer system performance data |
US7908532B2 (en) * | 2008-02-16 | 2011-03-15 | International Business Machines Corporation | Automated system and processing for expedient diagnosis of broken shift registers latch chains |
US8502822B2 (en) | 2008-09-30 | 2013-08-06 | Nintendo Co., Ltd. | Method and apparatus for visualizing and interactively manipulating profile data |
US9495279B2 (en) * | 2008-09-30 | 2016-11-15 | Nintendo Co., Ltd. | Method and apparatus for efficient statistical profiling of video game and simulation software |
JP5217870B2 (ja) * | 2008-10-07 | 2013-06-19 | 富士通株式会社 | プログラム性能測定装置、方法、プログラム、プログラム記録媒体 |
EP2712446A1 (en) * | 2011-05-18 | 2014-04-02 | Telefonaktiebolaget LM Ericsson (PUBL) | Method and arrangement for enabling analysis of a computer program execution |
US9274920B2 (en) | 2012-09-28 | 2016-03-01 | Dialog Semiconductor B.V. | Code profiling in embedded ULE applications |
US9122800B1 (en) * | 2014-05-30 | 2015-09-01 | Honeywell International Inc. | System and method of non-intrusive measurement of memory access profiles of threads in a multi-core processor |
US10289540B2 (en) * | 2016-10-06 | 2019-05-14 | International Business Machines Corporation | Performing entropy-based dataflow analysis |
US11106567B2 (en) | 2019-01-24 | 2021-08-31 | International Business Machines Corporation | Combinatoric set completion through unique test case generation |
US11099975B2 (en) | 2019-01-24 | 2021-08-24 | International Business Machines Corporation | Test space analysis across multiple combinatoric models |
US11263116B2 (en) | 2019-01-24 | 2022-03-01 | International Business Machines Corporation | Champion test case generation |
US11422924B2 (en) | 2019-06-13 | 2022-08-23 | International Business Machines Corporation | Customizable test set selection using code flow trees |
US11232020B2 (en) | 2019-06-13 | 2022-01-25 | International Business Machines Corporation | Fault detection using breakpoint value-based fingerprints of failing regression test cases |
US10990510B2 (en) * | 2019-06-13 | 2021-04-27 | International Business Machines Corporation | Associating attribute seeds of regression test cases with breakpoint value-based fingerprints |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0240737A (ja) * | 1988-07-29 | 1990-02-09 | Nec Corp | 使用率表示回路 |
JPH02202644A (ja) * | 1989-02-01 | 1990-08-10 | Hitachi Ltd | トレーサ回路 |
JPH04233637A (ja) * | 1990-07-13 | 1992-08-21 | Internatl Business Mach Corp <Ibm> | 命令サンプリング計測のための装置および方法 |
JPH0784827A (ja) * | 1993-09-13 | 1995-03-31 | Nec Corp | トレース装置 |
JPH10240571A (ja) * | 1997-02-21 | 1998-09-11 | Nec Corp | アドレストレース回路 |
JPH10254739A (ja) * | 1997-03-10 | 1998-09-25 | Digital Equip Corp <Dec> | コンピュータ性能データを分析する方法 |
WO1998045784A1 (en) * | 1997-04-08 | 1998-10-15 | Advanced Micro Devices, Inc. | Microprocessor-based device incorporating a cache for capturing software performance profiling data |
JPH11212834A (ja) * | 1998-01-28 | 1999-08-06 | Nec Corp | 性能測定ツールの測定値表示方式 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2777496B2 (ja) | 1991-02-28 | 1998-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法 |
US6314530B1 (en) | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
US6009270A (en) | 1997-04-08 | 1999-12-28 | Advanced Micro Devices, Inc. | Trace synchronization in a processor |
US6185732B1 (en) | 1997-04-08 | 2001-02-06 | Advanced Micro Devices, Inc. | Software debug port for a microprocessor |
US6094729A (en) | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
US6041406A (en) | 1997-04-08 | 2000-03-21 | Advanced Micro Devices, Inc. | Parallel and serial debug port on a processor |
US6167536A (en) | 1997-04-08 | 2000-12-26 | Advanced Micro Devices, Inc. | Trace cache for a microprocessor-based device |
US6142683A (en) | 1997-04-08 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including data steering between a processor, an input/output port, and a trace logic |
US6154856A (en) | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Debug interface including state machines for timing synchronization and communication |
US6148381A (en) | 1997-04-08 | 2000-11-14 | Advanced Micro Devices, Inc. | Single-port trace buffer architecture with overflow reduction |
US5978902A (en) | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
US6189140B1 (en) | 1997-04-08 | 2001-02-13 | Advanced Micro Devices, Inc. | Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic |
-
2001
- 2001-04-11 WO PCT/US2001/011881 patent/WO2001080012A2/en active IP Right Grant
- 2001-04-11 DE DE60100901T patent/DE60100901T2/de not_active Expired - Lifetime
- 2001-04-11 JP JP2001577148A patent/JP5356635B2/ja not_active Expired - Lifetime
- 2001-04-11 EP EP01924945A patent/EP1272934B1/en not_active Expired - Lifetime
- 2001-04-11 US US09/832,529 patent/US6718286B2/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0240737A (ja) * | 1988-07-29 | 1990-02-09 | Nec Corp | 使用率表示回路 |
JPH02202644A (ja) * | 1989-02-01 | 1990-08-10 | Hitachi Ltd | トレーサ回路 |
JPH04233637A (ja) * | 1990-07-13 | 1992-08-21 | Internatl Business Mach Corp <Ibm> | 命令サンプリング計測のための装置および方法 |
JPH0784827A (ja) * | 1993-09-13 | 1995-03-31 | Nec Corp | トレース装置 |
JPH10240571A (ja) * | 1997-02-21 | 1998-09-11 | Nec Corp | アドレストレース回路 |
JPH10254739A (ja) * | 1997-03-10 | 1998-09-25 | Digital Equip Corp <Dec> | コンピュータ性能データを分析する方法 |
WO1998045784A1 (en) * | 1997-04-08 | 1998-10-15 | Advanced Micro Devices, Inc. | Microprocessor-based device incorporating a cache for capturing software performance profiling data |
JPH11212834A (ja) * | 1998-01-28 | 1999-08-06 | Nec Corp | 性能測定ツールの測定値表示方式 |
Also Published As
Publication number | Publication date |
---|---|
EP1272934A2 (en) | 2003-01-08 |
EP1272934B1 (en) | 2003-10-01 |
JP5356635B2 (ja) | 2013-12-04 |
DE60100901D1 (de) | 2003-11-06 |
WO2001080012A2 (en) | 2001-10-25 |
US20020002442A1 (en) | 2002-01-03 |
WO2001080012A3 (en) | 2002-05-30 |
DE60100901T2 (de) | 2004-08-19 |
US6718286B2 (en) | 2004-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5356635B2 (ja) | 非侵入式アプリケーション・コード・プロファイリングの方法および装置 | |
US6385742B1 (en) | Microprocessor debugging mechanism employing scan interface | |
Krstic et al. | Embedded software-based self-test for programmable core-based designs | |
US7870437B2 (en) | Trace data timestamping | |
US6961872B2 (en) | Microcomputer and debugging system | |
Thane et al. | Using deterministic replay for debugging of distributed real-time systems | |
EP0189848A2 (en) | Method and apparatus for software debugging | |
KR20020032936A (ko) | 반도체 칩의 논리 기능 검증용 에뮬레이터 장치 및 방법 | |
US20070011492A1 (en) | Generation of trace data | |
Backasch et al. | Runtime verification for multicore SoC with high-quality trace data | |
JP2007250010A (ja) | 構成可能なプロセッサを設計するための自動プロセッサ生成システム及び生成方法 | |
US20070079288A1 (en) | System and method for capturing filtered execution history of executable program code | |
US8819496B2 (en) | Apparatus for collecting trace information and processing trace information, and method for collecting and processing trace information | |
KR20150008428A (ko) | 명령어 트레이스 기능을 갖춘 프로세서 디바이스 | |
Atanassov et al. | Using real hardware to create an accurate timing model for execution-time analysis | |
US6493841B1 (en) | Method and apparatus for determining expected values during circuit design verification | |
CN108628637B (zh) | 用于处理数据的装置和方法 | |
Wolf et al. | Execution cost interval refinement in static software analysis | |
US20060048011A1 (en) | Performance profiling of microprocessor systems using debug hardware and performance monitor | |
Bose | Performance test case generation for microprocessors | |
Du et al. | FPGA-controlled PCBA power-on self-test using processor's debug features | |
JP4152659B2 (ja) | データ処理システムおよび設計システム | |
Wahab et al. | A novel lightweight hardware-assisted static instrumentation approach for ARM SoC using debug components | |
Park et al. | On‐Chip Debug Architecture for Multicore Processor | |
US20050166103A1 (en) | System, method, and apparatus for firmware code-coverage in complex system on chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110606 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110906 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111117 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120619 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120626 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120718 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130328 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130404 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130501 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130702 |
|
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: 20130731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130829 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5356635 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |