(57)【要約】【課題】  ２つのメッセージの間に経過した時間を測定することができる規格ＩＥＥＥ−ＩＳＴＯ−５００１に準じた監視回路及び監視方法を提供する。【解決手段】  一連の命令を実行するマイクロプロセッサ（１２）のチップに組み込まれた監視回路（１８´、１８″）に関し、命令をそれぞれ実行する際に、対応するデジタルメッセージを作り出すメッセージ演算手段（３６）、作り出されたそれぞれのメッセージを保存するバッファメモリ（３４）、及び外部解析ツール（２４）に接続される複数の出力端子（ＦＡ、ＦＢ、ＦＣ）を含み、各出力端子（ＦＡ、ＦＢ、ＦＣ）は命令型の１つに関連し、メッセージ演算手段（３６）は、命令型に対応するメッセージがバッファメモリに保存される時点で、前記命令型の１つと関連する出力端子（ＦＡ、ＦＢ、ＦＣ）の状態を変更する。
2006504204.tif 000002
【特許請求の範囲】
【請求項１】
所定の型の複数の命令の中からの命令をそれぞれ実行する際に、前記実行された命令に対応するデジタルメッセージを生成するメッセージ演算手段（３６）と
それぞれの生成されたメッセージを保存するバッファメモリ（３４）と、
外部解析ツール（２４）に接続される複数の出力端子（ＦＡ、ＦＢ、ＦＣ）とを有し、
前記出力端子（ＦＡ、ＦＢ、ＦＣ）は前記命令型の１つに関連し、及び前記メッセージ演算手段（３６）は、命令型に対応するメッセージが前記バッファメモリに保存される時点で、前記命令型に関連する前記出力端子（ＦＡ、ＦＢ、ＦＣ）の状態を変更することを特徴とする、
一連の命令を実行するマイクロプロセッサ（１２）のチップに組み込まれた監視装置（１８´、１８″）。
【請求項２】
前記バッファメモリがいくつかの領域（Ａ、Ｂ、Ｃ）に分けられ、そのそれぞれが異なる命令型に関連し、及び前記命令型に関連するメッセージだけを保存することを特徴とする、請求項１に記載の監視装置（１８´、１８″）。
【請求項３】
前記各出力端子（ＦＡ、ＦＢ、ＦＣ）が検査端子（２８、３０、３２）に接続されることを特徴とする、請求項１に記載の監視装置。
【請求項４】
前記各出力端子（ＦＡ、ＦＢ、ＦＣ）が所定の数（ｎ）の出力端子（Ｏ１、Ｏ２、Ｏ３）を含むコーディングブロック（３８、４０、４２）の入力端子（Ｆ）に接続され、前記出力端子のそれぞれが検査端子（２８１、２８２、２８３；３０１、３０２；３２１、３２２、３２３）に接続され；前記各コーディングブロックが、ｎ個の出力端子（Ｏ１、Ｏ２、Ｏ３）のそれぞれにその入力端子（Ｆ）のｎ個の状態の切り替えごとに１回切り替えさせるために提供され、及びそれにより前記のｎ個の出力端子（Ｏ１、Ｏ２、Ｏ３）の単一の１つが状態を切り替えることを特徴とする、請求項１に記載の監視装置。
【請求項５】
ある命令型だけが、前記メッセージ演算手段（３６）の出力端子と関連することを特徴とする、請求項１に記載の監視装置。
【請求項６】
可能な命令型のそれぞれが、前記メッセージ演算手段（３６）の出力端子（ＦＡ、ＦＢ、ＦＣ）に関連することを特徴とする、請求項１に記載の監視装置。
【請求項７】
請求項１に記載のマイクロプロセッサ（１２）及び監視装置を含むことを特徴とする集積回路（１０）。
【請求項８】
命令を実行する際に、実行される命令に対応するデジタルメッセージを生成し、
前記それぞれ生成されたメッセージをバッファメモリ（３４）に保存し、
外部解析ツール（２４）に接続される出力端子（ＦＡ、ＦＢ、ＦＣ）に関連する命令型のメッセージが前記バッファメモリに保存されるときに、該出力端子のひとつの状態を変更することを特徴とする、
マイクロプロセッサチップに集積される装置を用いて、一連の命令を実行するマイクロプロセッサ（１２）を監視する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサの検査に関する。具体的には、マイクロプロセッサチップに組み込まれた監視回路からマイクロプロセッサ動作を追跡できる日付の付いたデジタルメッセージを送信する装置及び方法に関する。
【背景技術】
【０００２】
図１は、マイクロプロセッサ（μＰ）１２、内部メモリ（ＭＥＭ）１４、及び入力／出力端子（Ｉ／Ｏ）１６を含む集積回路１０を概略的に示している。マイクロプロセッサ１２は、メモリ１４に保存されたプログラム又はソフトウエアを実行することが意図されている。プログラムの制御下で、マイクロプロセッサ１２は入力／出力端子１６により提供された又はメモリ１４に保存されたデータを処理し、及び入力／出力端子１６を通じてデータを読み取る又は書き込む。
【０００３】
マイクロプロセッサの正しい動作をチェックするために、監視回路１８（ＴＥＳＴ）が、通常集積回路１０に組み込まれる。監視回路１８は、プログラムの実行に際し、マイクロプロセッサ１２により提供される特定のデータを読み取ることができ、及び読み取ったデータを場合により処理することができる。検査端子２２は、監視回路１８と解析ツール２４を接続する。解析ツール２４は、受信信号を、例えば、ユーザーにより提供されたコマンドに従って処理し、及びマイクロプロセッサ１２の動作の詳細な解析を確実にする。特に、解析ツール２４は、マイクロプロセッサ１２により実際に実行されるプログラム命令の順序を決定する。
【０００４】
検査端子２２の数は、入力／出力端子１６の数と同じ桁で、例えば２００から４００端子である。検査端子２２及び監視回路１８の接続は、かなりのシリコン表面面積を占め、それが回路コストの好ましからざる増大を引き起こす。この目的のために、監視回路１８及び検査端子２２を含む集積回路１０の第１のバージョンは、マイクロプロセッサ１２のプログラム又は「ユーザープログラム」をデバッグするために少量だけ作られる。このデバッグ後に、監視回路１８及び検査端子２２を取り除いた集積回路のバージョンが販売される。これは集積回路の２つのバージョンを形成することを意味し、それはかなりの量の作業を必要とし、及び比較的高価である。さらに、最終チップは検査されたチップと必ずしも同一ではない。
【０００５】
上述の不利益を克服するためには、削減された表面面積を占め、及び削減された数の検査端子２２を必要とする監視回路１８を形成することが望ましく、それが監視回路の自己費用を減少させる。その後監視回路１８は、最終的に販売される集積回路１０上に残ることができる。
【０００６】
従って、監視回路１８により提供される信号の数を減らすことが望ましい。この目的のために、ある一定の論理演算が、重要な情報内容を有するメッセージを送信するためだけに、マイクロプロセッサ１２のレベルで測定されたデータ上で、監視回路１８のレベルで直接行われる。
【０００７】
従って、処理の規格ＩＥＥＥ−ＩＳＴＯ−５００１は、例えばウェブサイトwww.ieee-isto.org/Nexus5001に接続可能な１９９９年版で、削減された数の検査端子２２以外を必要とする監視回路１８に、監視回路及び解析ツール間の特定のメッセージ交換プロトコルを提供する。
【０００８】
監視回路はマイクロプロセッサの動作を監視するために、及びある所定の命令の実行のみに対応する所定のメッセージを伴う検査端子を提供するために提供される。異なる型の命令の実行に対応するいくつかの型のメッセージが提供される。異なる型のメッセージ及びそれらの構造は、規格ＩＥＥＥ−ＩＳＴＯ−５００１のセクション６に記載されている。
【０００９】
多数のメッセージが削減された時間間隔内で生成される。その規格は、検査端子が利用できないとき（それらが別のメッセージを送信するために使用されているとき）、それぞれの新しいメッセージはバッファに保存されると規定し、その後検査端子が利用できるときに解析ツールに送信されると規定している。メッセージが検査端子に存在するよりも多くのビットを含むとき、その規格はメッセージが適正な寸法の区分に分けられると規定し、その区分は順次検査端子により送信される。従って、メッセージが大きければ大きいほど、そのメッセージを解析ツールに送信するのにより多くの時間が必要となる。解析ツールは、マイクロプロセッサ動作、つまり、受信メッセージ及びプログラムコードを基盤とするマイクロプロセッサのプログラム実行を再構成するために提供される。解析ツールは２つのメッセージを受信する間に経過した時間を容易に決定するが、解析ツールはこれら２つのメッセージを保存する間に経過した時間を決定する手段を有しないという事実による課題が生じる。実際、解析ツールは、各メッセージが回路１８により保存された時間とは何の関係もない受信時間に各メッセージを受信する。メッセージが保存される時間とこのメッセージが解析ツールにより受信される時間の間に、メッセージは、バッファメモリに以前保存されたメッセージのサイズ及び数といった多くの要因に左右される可変する時間の間バッファメモリ内にとどまる。端子により提供される所定の型のメッセージは、マイクロプロセッサにより実行される命令の数を示す、というのは、同一の型の以前のメッセージは、マイクロプロセッサが命令を実行する速さを除き、命令ごとに異なり、及び２つのメッセージ間で実行される命令の数により、これら２つのメッセージの間に経過した時間を求めることができる。しかし、２つのメッセージを保存する間に経過した時間を正確に測定すること、具体的には、マイクロプロセッサプログラムのある一定の重要部分の実行時間を測定することが望ましい。
【００１０】
２つのメッセージを保存する間に経過した時間を測定するためには、解決策が監視装置１８内に、時間に沿って変化する計数を伴う、所定の周波数で評価されるカウンターを含むことから成る。各メッセージに、各メッセージがこの時間の日付記入をするために保存されるときの計数を含むデータフィールドを加えることで十分である。しかし、こうした十分に正確である日付記入に対して、カウンターは高周波数で評価されねばならない。従って、計数が非常に速く増加し、及びカウンターは飽和しない大きなサイズを有さなければならない。こうしたカウンターはかなりの表面面積を占めるが、それは望ましくはない。さらに、メッセージ内への計数の導入は、実質的にメッセージサイズを増大させる。計数を含むメッセージは多くの区分に分けられねばならず、その送信により長時間検査端子が独占されるが、それは望ましいことではない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、２つのメッセージの間に経過した時間を測定することができる規格ＩＥＥＥ−ＩＳＴＯ−５００１に準じた監視回路を提供することである。
【課題を解決するための手段】
【００１２】
本発明の別の目的は、２つのメッセージの間に経過した時間を測定することができる規格ＩＥＥＥ−ＩＳＴＯ−５００１に準じた監視方法を提供することである。
【００１３】
これら及びその他の目的を達成するために、本発明は一連の命令を実行するマイクロプロセッサのチップに組み込まれた監視装置を提供し、それは、所定の型の複数の命令の中からの命令をそれぞれ実行する際に、実行された命令に対応するデジタルメッセージを生成するメッセージ演算手段と、それぞれの生成されたメッセージを保存するバッファメモリと、及び外部解析ツールに接続される複数の出力端子とを含み、各出力端子は命令型の１つと関連し、及びメッセージ演算手段は、命令型に対応するメッセージがバッファに保存される時点で、前記命令型と関連する出力端子の状態を変更する。
【００１４】
本発明の実施形態によると、バッファメモリはいくつかの領域に分けられ、そのそれぞれが異なる命令型に関連し、前記命令型に関連するメッセージだけを保存する。
【００１５】
本発明の実施形態によると、各出力端子は検査端子に接続される。
【００１６】
本発明の実施形態によると、各出力端子は、そのそれぞれが検査端子に接続される所定の数ｎ個の出力端子を含むコーディングブロックの入力端子に接続され、各コーディングブロックは、そのｎ個の出力端子のそれぞれにその入力端子のｎ個の状態の切り替えごとに１回切り替えさせるように提供され、及びそれによりｎ個の出力端子の単一の１つが状態を切り替える。
【００１７】
本発明の実施形態によると、ある命令型のみが、メッセージ演算手段の出力端子に関連する。
【００１８】
本発明の実施形態によると、可能な命令型のそれぞれが、メッセージ演算手段の出力端子と関連する。
【００１９】
本発明はまた、マイクロプロセッサ及びこうした監視装置を含む集積回路を目的とする。
【００２０】
本発明はまた、マイクロプロセッサチップに組み込まれた装置を用いて一連の命令を実行するマイクロプロセッサを監視する方法を目的とし、それは
命令をそれぞれ実行する際に、実行された命令に対応するデジタルメッセージを生成する；及び
それぞれの生成されたメッセージをバッファメモリに保存する；及び
外部解析ツールに接続された複数の出力端子の１つの状態を変更する工程を含み、該変更は、前記出力端子が関連する命令型に対応するメッセージがバッファメモリに保存されるときに行われる。
【００２１】
本発明の前述した及びその他の目的、特徴、及び利点は、添付の図面に関連し、以下の具体的な実施形態の非限定的な記述により詳細に論じられる。
【発明を実施するための最良の形態】
【００２２】
本発明は、いくつかの追加の検査端子を使用して、解析ツールに対して、いくつかの所定の型のメッセージが、装置に含まれるバッファメモリに保存される時間を直接示すための状態の切り替えを提供する。この目的のために、本発明はバッファメモリをいくつかの所定領域に分割することを提供し、そのそれぞれはいくつかの所定の型の中から特定の型のメッセージを受信するように提供され、各領域は解析ツールに接続される追加の検査端子と関連する。新しいメッセージがその領域の１つに保存されるときに、この領域に関連する追加の検査端子の状態が変更される。
【００２３】
図２は、図１のように、内部メモリ１４及び入力／出力端子１６に接続されるマイクロプロセッサ１２を含む集積回路１０を概略的に示している。回路１０は、本発明による監視回路１８´を含み、それはマイクロプロセッサ１２に接続される。回路１８´は、並列アクセス２６を形成する検査端子を介して解析ツール２４に接続されるバッファメモリ３４を含む。マイクロプロセッサにより実行される命令についての情報を受信する演算手段３６は、関連する命令型を識別し、及び端子により提供されるメッセージを演算する。演算手段３６は、バッファメモリ３４に接続され、及び追加の検査端子２８、３０及び３２により解析ツール２４に接続される。
【００２４】
規格ＩＥＥＥ−ＩＳＴＯ−５００１が提供するメッセージが生成されねばならない所定の命令には、いくつかの型がある。それぞれの命令型にメッセージの型が対応する。具体的には、規格ＩＥＥＥ−ＩＳＴＯ−５００１はプログラムジャンプ、メモリへの書き込み、及びメモリからの読み取りを行う命令を作り上げ、それらはそれぞれジャンプメッセージ、書き込みメッセージ及び読み取りメッセージに対応する。本発明によると、メモリ３４は手段３６が専らジャンプメッセージを保存する領域Ａ、手段３６が専ら書き込みメッセージを保存する領域Ｂ、及び手段３６が専ら読み取りメッセージを保存する領域Ｃを含む。こうした、これらの３つの型のメッセージのためにバッファメモリを３つの領域に分割することは、例示としてのみ与えられ、当業者は本発明をバッファメモリの別の分割に容易に適応できる。
【００２５】
本発明によると、演算手段３６は検査端子２８に接続される出力端子ＦＡを含む。手段３６は、手段３６がバッファメモリ３４の領域Ａにメッセージを保存する時ごとに、出力端子ＦＡ（及び検査端子２８）の値（１又は０）を変更する。解析ツール２４は、検査端子２８の状態切り替え時間を、つまり、ジャンプメッセージ保存時間を記憶するために提供される。従って解析ツールにより、検査端子２８の第１の状態切り替えの時にバッファメモリ３４から受信された第１のジャンプメッセージが生成され及び保存されたことなどがわかる。
【００２６】
同様に、手段３６はそれぞれ検査端子３０及び３２に接続される出力端子ＦＢ及びＦＣを含み、その値は手段３６がメッセージをそれぞれバッファメモリ３４の領域Ｂ又は領域Ｃに保存する時ごとに変更される。
【００２７】
従って本発明により、解析ツールが、解析回路１８´の演算手段３６により生成されたそれぞれの型のメッセージの生成及び保存の正確な日付を入れることが可能となる。本発明により提供される３つの追加の検査端子２８、３０及び３２及びそれらを作動させる手段は、既知の日付記入カウンターに比べて削減された表面面積を占め、それは本発明の第１の利点である。本発明により、さらに、メッセージサイズを増大させずにメッセージの保存時間を正確に日付記入することが可能であり、これが本発明の第２の利点である。
【００２８】
あるマイクロプロセッサは、並列にいくつかのプログラム命令を実行するように提供される。例えば、マイクロプロセッサプログラムが読み取りにより得られるアドレスにプログラムジャンプする場合、マイクロプロセッサは、「読み取り」命令及び「ジャンプ」命令を同時に実行する。こうした場合、手段３６は「ジャンプ」メッセージを生成し、それを領域Ａに保存し、及び出力端子ＦＡの状態を変更する。そして同時に手段３６は「読み取り」メッセージを生成し、それを領域Ｃに保存し、及び出力端子ＦＣの状態を変更する。従って解析ツールにより、同時の保存がいつ領域Ａ及び領域Ｃに発生したかがわかる。当業者が注目すべきは、この目的のために、領域Ａ及び領域Ｃの保存に対して、２つの別個の出力端子の状態切り替えにより表されるということである。従って本発明は、マイクロプロセッサが並列にいくつかのプログラム命令又はプログラム動作を実行できるという事実に特に十分に適合し、それが本発明の更なる利点である。
【００２９】
マイクロプロセッサが、順に複数の同一の型の命令を素早く実行するときに課題が生じる。例えばマイクロプロセッサが、それぞれが１クロック周期であるいくつかの書き込み命令を順に実行する場合、書き込みメッセージがマイクロプロセッサのクロック周期ごとにバッファメモリの領域Ｂに順に保存される。そのとき出力端子ＦＢは、マイクロプロセッサのクロック周期ごとに各メッセージの保存に伴い状態を切り替え、それはマイクロプロセッサの動作周波数の半分の出力端子ＦＢの振動に対応する。この周波数は非常に高く、及び出力端子ＦＢに接続される追加の検査端子３０がこうした周波数で動作するように設計されていない可能性がある。例えば、マイクロプロセッサは４００ＭＨｚで命令を実行し、及び２００ＭＨｚで出力端子の振幅を引き起こす。一方で検査端子３０は、その構造のために、１００ＭＨｚを超えると動作しない。
【００３０】
図３は、本発明の変形により上記課題を解決するために提供され、図２の回路１８´のように並列アクセス２６及び演算手段３６に接続されるバッファメモリ３４を含む監視回路１８″を概略的に示している。手段３６の３つの出力端子ＦＡ、ＦＢ及びＦＣは、それぞれ３つの同一のコーディングブロック、それぞれ３８、４０及び４２の入力Ｆに接続される。各コーディングブロックは、３つの出力端子Ｏ１、Ｏ２、Ｏ３を含む。ブロック３８の出力端子Ｏ１、Ｏ２及びＯ３は、追加の検査端子２８１、２８２及び２８３により解析ツール（図示されず）に接続される。コーディングブロック４０及び４２の出力端子Ｏ１、Ｏ２、Ｏ３は、それぞれ追加の検査端子３０１、３０２、３０３及び３２１、３２２、３２３により解析ツールに接続される。
【００３１】
図４は、入力端子Ｆの状態切り替えに応じたコーディングブロック３８、４０、４２のいずれかの出力端子Ｏ１、Ｏ２及びＯ３の状態切り替えを示している。入力端子Ｆの状態がどの速度で切り替えられても、出力端子Ｏ１、Ｏ２、Ｏ３のそれぞれは、入力端子Ｆの３つの状態切り替えごとに１回切り替えをし、及び３つの出力端子Ｏ１、Ｏ２、Ｏ３の中の１つだけが状態を切り替える。
【００３２】
前述の端子ＦＢが２００ＭＨｚの周波数で状態を切り替えるという場合、コーディングブロック４０の出力端子Ｏ１、Ｏ２及びＯ３はそれぞれ、検査端子３０１、３０２及び３０３が動作できる最大周波数１００ＭＨｚよりも小さい６７ＭＨｚの周波数で状態を切り替える。
【００３３】
もちろん、本発明は当業者が容易に思いつく様々な改変、変更、及び改良を有する。特に、本発明は、バッファメモリに書き込まれたそれぞれのメッセージの日付を記入するために追加の出力端子とバッファメモリの各領域を関連付ける監視回路との関連で記載されてきたが、当業者は、バッファメモリのある一定の領域に書き込まれるメッセージの日付のみを記入するために、本発明を追加の出力端子と前記領域だけを関連付ける監視回路に容易に適合できる。
【００３４】
本発明はバッファメモリの領域とメッセージの型を関連付ける監視回路に関して記載されてきたが、当業者は、本発明を、バッファメモリのいくつかの領域と特定のメッセージの型又はそれぞれのメッセージの型を関連付ける監視回路に容易に適合させる。
【００３５】
本発明による監視回路により使用されるバッファメモリの構造は記載されていないが、当業者は、本発明を任意の適切なバッファメモリ構造、例えば先入れ先出し型（ＦＩＦＯ）のバッファメモリに適合させる。こうした場合、バッファメモリの各領域は別個の先入れ／先出しメモリで形成される。
【００３６】
本発明は、入力端子の状態切り替え周波数を３で分割するために、３つの出力端子を有するコーディングブロックに関して記載されてきたが、当業者は、本発明を例えば２分割のために２端子、４分割のために４端子といった異なる比率に応じた周波数分割に適合される多数の出力端子を含む任意のコーディングブロックに容易に適合させる。
【００３７】
本発明は、特定の動作を有するコーディングブロックに関して記載されてきたが、当業者は、本発明を同等のコーディング機能を有する任意のコーディングブロックに容易に適合させる。例えば、コーディングブロックはその出力端子を通じて、その入力のそれぞれの状態切り替えに対するグレイコードの新しい値を提供する。
【図面の簡単な説明】
【００３８】
【図１】監視装置が提供された集積回路を概略的に示している。
【図２】本発明による監視装置が提供された集積回路を概略的に示している。
【図３】本発明の変形による監視装置を概略的に示している。
【図４】図３のコーディングブロックの動作を示している。
【符号の説明】
【００３９】
１０  集積回路
１２  マイクロプロセッサ
１４  内部メモリ
１６  入力／出力端子
１８、１８´、１８″  監視回路
２２  検査端子
２４  解析ツール
２６  並列アクセス
２８、３０、３２  検査端子
３４  バッファメモリ
３６  メッセージ演算手段
３８、４０、４２  コーディングブロック
２８１、２８２、２８３；３０１、３０２；３２１、３２２、３２３  検査端子
ＦＡ、ＦＢ、ＦＣ  出力端子
Ｏ１、Ｏ２、Ｏ３  出力端子
【図１】
2006504204.tif 000003
【図２】
2006504204.tif 000004
【図３】
2006504204.tif 000005
【図４】
2006504204.tif 000006
【国際調査報告】
2006504204.tif 000007
2006504204.tif 000008
2006504204.tif 000009
2006504204.tif 000010
2006504204.tif 000011
2006504204.tif 000012