(57)【要約】【課題】  集積回路の効率的な試験装置をセットアップする方法等を提供する。【解決手段】上述した課題は、マイクロプロセッサ上において計測を実行するべく試験装置をセットアップする方法において、複数の命令によって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第１の段階と、データによって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第２の段階と、前記命令と前記データの一方、または、これらの両方によって占有されている前記メモリ空間を完全に表現するアドレス信号を選択する第３の段階と、前記命令及び前記データによって占有されているアドレス空間を前記試験装置に入力する第４の段階とを有することを特徴とする方法等により解決することができる。【選択図】図１
2007172599.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサ上において計測を実行するべく試験装置をセットアップする方法において、
複数の命令によって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第１の段階と、
データによって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第２の段階と、
前記命令と前記データの一方、または、これらの両方によって占有されている前記メモリ空間を完全に表現するアドレス信号を選択する第３の段階と、
前記命令及び前記データによって占有されているアドレス空間を前記試験装置に入力する第４の段階と、
を有することを特徴とする方法。
【請求項２】
前記マイクロプロセッサは、ＦＰＧＡ内に実装されていることを特徴とする請求項１に記載の方法。
【請求項３】
前記ＦＰＧＡ上の専用のピンに特定のアドレス信号をルーティングする第５の段階を更に有することを特徴とする請求項２に記載の方法。
【請求項４】
マイクロプロセッサトレース信号を選択し、且つ、前記マイクロプロセッサトレース信号を前記ＦＰＧＡ上のピンにルーティングするべく適合されたマイクロプロセッサトレースコアを提供する第６の段階を更に有することを特徴とする請求項２に記載の方法。
【請求項５】
前記マイクロプロセッサトレース信号は、命令−アドレスバス、データ−アドレスバス、データ−データバス、及びバス制御信号の中の１つ又は複数のものを有することを特徴とする請求項４に記載の方法。
【請求項６】
前記マイクロプロセッサトレース信号を選択する前記第６の段階は、前記メモリ空間を完全に表現するのに必要な前記アドレス信号のみを選択する第７の段階を更に有することを特徴とする請求項４または５に記載の方法。
【請求項７】
マイクロプロセッサトレース信号を選択する前記第６の段階を実行するべく前記マイクロプロセッサトレースコアを構成する第８の段階を更に有することを特徴とする請求項４から６のいずれかに記載の方法。
【請求項８】
前記第４の段階は、開始メモリアドレスを選択する第９の段階を更に有することを特徴とする請求項１から７のいずれかに記載の方法。
【請求項９】
マイクロプロセッサ上において計測を実行するべく試験装置をセットアップする方法において、
信号のサブセットを選択する段階であって、前記信号のサブセットは、前記マイクロプロセッサと関連する信号のみを含んでいる第１０の段階と、
割り当てられているいくつかのピンに基づいて、前記信号のサブセットからマイクロプロセッサトレース信号を選択する第１１の段階と、
を有することを特徴とする方法。
【請求項１０】
ＰＬＤ上にマイクロプロセッサトレースコアを提供する第１２の段階を更に有することを特徴とする請求項９に記載の方法。
【請求項１１】
前記ＰＬＤは、ＦＰＧＡであることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記マイクロプロセッサトレース信号を選択するべく前記マイクロプロセッサトレースコアを構成する第１３の段階を更に有することを特徴とする請求項９から１１のいずれかに記載の方法。
【請求項１３】
前記マイクロプロセッサトレース信号を選択する第１１の段階の後に、前記マイクロプロセッサトレース信号を選択されたピンにルーティングする第１４の段階を更に有することを特徴とする請求項９から１２のいずれかに記載の方法。
【請求項１４】
前記マイクロプロセッサトレース信号を選択し、且つ、前記マイクロプロセッサトレース信号を前記ＦＰＧＡ上のピンにルーティングするべく適合されたマイクロプロセッサコアを埋め込む第１５の段階を更に有することを特徴とする請求項９記載の方法。
【請求項１５】
前記マイクロプロセッサトレース信号は、命令−アドレスバス、データ−アドレスバス、データ−データバス、及びバス制御信号の中の１つ又は複数のものを有することを特徴とする請求項１４記載の方法。
【請求項１６】
前記マイクロプロセッサトレース信号を選択する前記第１１の段階は、メモリ空間を完全に表現するのに必要な前記アドレス信号のみを選択する第１６の段階を更に有することを特徴とする請求項９から１５のいずれかに記載の方法。
【請求項１７】
試験装置と、
マイクロプロセッサを具備するＦＰＧＡと、
前記試験装置を前記ＦＰＧＡに接続するべく適合されたトレースピンと、
前記マイクロプロセッサと関連する信号のみを含む信号のサブセットからマイクロプロセッサトレース信号を選択するべく構成されたマイクロプロセッサトレースコアと、
を有する動的プローブシステム。
【請求項１８】
前記試験装置は、ロジックアナライザであることを特徴とする請求項１７に記載の動的プローブシステム。
【請求項１９】
前記マイクロプロセッサトレース信号は、メモリ空間を完全に表現するのに必要なアドレス信号のみであることを特徴とする請求項１７または１８に記載の動的プローブシステム。
【請求項２０】
前記マイクロプロセッサトレース信号は、命令−アドレスバス、データ−アドレスバス、データ−データバス、及びバス制御信号の中の１つ又は複数のものを有することを特徴とする請求項１７から１９のいずれかに記載の動的プローブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム実行を追跡する方法及びシステムに関する。
【背景技術】
【０００２】
ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの集積回路は、しばしば、インサーキット試験（ｉｎ−ｃｉｒｃｕｉｔ  ｔｅｓｔ）を円滑に実行するべく設計された機能を格納している。ＦＰＧＡなどの大きな回路上においてインサーキット試験を行う際には、しばしば、動作レンジにわたる実際の動作信号を表す回路信号を供給する。次いで、この結果生成される信号を回路内の様々な地点において監視する。このタイプの試験は、一般に、リアルタイムソフトウェアプログラムトレースキャプチャと呼ばれている。
【０００３】
多くのＦＰＧＡは、埋め込まれたマイクロプロセッサを含んでいる。これらのマイクロプロセッサは、しばしば、統合可能な構造により、例えば、専用のシリコンを使用してハードウェアとして実装されている。ＦＰＧＡ、ＡＳＩＣ、又はＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）のその他のコンポーネントと同様に、マイクロプロセッサ内の信号を実行中に追跡することは有用である。これにより、マイクロプロセッサのデバッグを実行可能とすることができる。
【０００４】
インサーキット試験を実行する際には、オシロスコープ及びロジックアナライザなどの試験装置が有用である。多くのデジタル設計者は、ロジックアナライザを使用したデバッグの補助具としてのプロトタイプボードの開発に習熟している。設計者は、ロジックアナライザを使用して集積上の問題点と設計上の誤りを検出している。システムの動作を観察するべく、設計者は、様々なバス及びチップ上の様々な信号を精査し、問題の根本原因を特定するべく試みている。多くの場合に、これらの信号は、出力を精査するべく、回路に供給される。このような信号をトレース信号と呼んでいる。このように様々なコンポーネントを精査及び再精査することにより、問題をもたらしている要因を適切に評価するべく十分な情報が収集可能である。この情報により、技術チームは、誤りについて理解し、解決策を施すことができる。
【０００５】
ＦＰＧＡ内に埋め込まれているマイクロプロセッサのプログラム実行を追跡する現在の方法には、いくつかの欠点が存在している。又、ＦＰＧＡ又はその他のＰＬＤにマイクロプロセッサを埋め込むことにより、試験に更なる問題が付加されている。例えば、既知の試験方法においては、ロジックアナライザによるキャプチャ及びポスト処理分析のために、すべてのアドレス信号、読み取り／書き込みデータ信号、制御信号、及び実行状態信号を取り出す必要がある。しかしながら、プリント回路基板上のスペースが益々少なくなり、デバッグのみを目的とした専用のＦＰＧＡピンが限られていることから、プロセッサのリアルタイム計測は、非現実的なものになっている。例えば、既知の計測方法を使用した場合に、３２ビットのハーバードアーキテクチャのプロセッサは、プロセッサの実行を追跡するために約１３５本以上の専用のピンを必要とすることになろう。利用可能なＦＰＧＡのピンは限られているため、これらの既知の方法は実際的ではない。更には、マイクロプロセッサの動作を計測するために、ＦＰＧＡからの全信号を分析しなければならないわけでもない。従って、既知の試験方法は、非現実的、且つ、非効率的でもある。
【０００６】
又、ＦＰＧＡ内に埋め込まれたマイクロプロセッサの既知の方法による試験においては、数千個（場合によっては、数万個）の信号の中から、マイクロプロセッサに関連すると識別されたものを判定する段階を必要としている。有効な計測は、この判定が下された後にのみ実行可能である。このフィルタリングプロセスが労働集約的なものであることは、明らかである。
【０００７】
又、バス上の多くのピンは静的である。例えば、３２ビットのアドレスバスの場合には、データが入力されているメモリにアクセスせず、従って、静的である多数のピンを具備可能である。しかしながら、既知の試験方法においては、多くのものが静的な状態にあるにも拘わらず、すべてのビットのルーティングとキャプチャを必要としている。このような試験方法が（特に試験に専用のピンの数が少ない場合に）非効率的であることは理解できよう。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、少なくとも前述の既知の方法の欠点を克服する埋め込み型のマイクロプロセッサを試験する装置及び方法に対するニーズが存在している。
【課題を解決するための手段】
【０００９】
上記課題は、マイクロプロセッサ上において計測を実行するべく試験装置をセットアップする方法において、複数の命令によって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第１の段階と、データによって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第２の段階と、
前記命令と前記データの一方、または、これらの両方によって占有されている前記メモリ空間を完全に表現するアドレス信号を選択する第３の段階と、前記命令及び前記データによって占有されているアドレス空間を前記試験装置に入力する第４の段階と、を有することを特徴とする方法等により解決される。
【発明を実施するための最良の形態】
【００１０】
本開示内容については、添付図面との関連において、以下の詳細な説明を参照することにより、十分に理解することができよう。添付図面は、必ずしも正確な縮尺によって描画されてはいない。これらの図面においては、類似の参照符号により、類似の特徴を示している。
【００１１】
以下の詳細な説明においては、限定ではなく、説明を目的とし、本開示内容を十分に理解できるように、特定の詳細事項について開示する実施例について記述している。又、実施例に関する説明をわかりにくくすることを防止するべく、周知の装置、ハードウェア、ソフトウェア、ファームウェア、方法、及びシステムに関する説明を省略している場合がある。但し、そのような当業者には周知のハードウェア、ソフトウェア、ファームウェア、装置、方法、及びシステムは、これらの実施例に従って使用可能である。最後に、添付の図面においては、類似の参照符号により、類似の特徴を示している。
【００１２】
以下の詳細な説明は、コンピュータ可読媒体、関連するプロセッサ、ロジックアナライザ、マイクロプロセッサエミュレータ、デジタルストレージオシロスコープ、データ取得カードによって構成された汎用パーソナルコンピュータ、及びこれらに類似したものの内部におけるデータビットの動作のルーチン及びシンボリック表現によって実現可能な方法を提示している。方法とは、この場合には（且つ、一般的には）、所望の結果に結びつく一連の段階又は動作であると考えられ、従って、「ルーチン」、「プログラム」、「オブジェクト」、「関数」、「サブルーチン」、及び「手順」などの専門用語を包含している。
【００１３】
実施例の装置及び方法は、ロジックアナライザ上における実装に関連して記述されているが、本明細書に引用されている方法は、コンピュータ内に保存されているルーチンと必要な信号処理能力を有するインターフェイスによって選択的に起動又は再構成された汎用コンピュータ又はその他のネットワーク装置上において動作可能である。更に端的に表現すれば、本明細書に提示されている方法は、必ずしも特定の装置に関係するものではなく、様々な装置を本明細書の開示内容によるルーチンと共に使用することが可能である。本開示内容の機能を実行可能な機械には、ＡＧＩＬＥＮＴ  ＴＥＣＨＮＯＬＯＧＩＥＳ，  ＩＮＣ．、ＨＥＷＬＥＴＴ  ＰＡＣＫＡＲＤ、及びＴＥＸＴＲＯＮＩＸ，  ＩＮＣ．などの企業、並びに試験及び計測装置のその他の製造者によって製造されるものが含まれている。
【００１４】
本明細書に記述されている実施例に有用なソフトウェアと関連し、当業者であれば、本明細書に概説されている手順を実行するソフトウェアを生成するための様々なプラットフォーム及び言語が存在していることを認識するであろう。特定の例示用の実施例は、いくつかのＣプログラミング言語の変形の中のいずれかを使用して実装可能である。しかしながら、当業者であれば、プラットフォーム及び言語の厳密な選択肢は、多くの場合に、構築される実際のシステムの詳細内容によって決定されるものであり、この結果、あるタイプのシステムにおいて機能し得るものが、その他のシステム上においては効率的ではないことをも認識するであろう。又、特定の実施例においては、特定の有益な態様を実現するため、コア及びその他のコンポーネントと共に使用するべく適合された市販のソフトウェアを実装することができる。例示を目的とし、いくつかの市販のソフトウェアについても注記している。
【００１５】
図１は、一実施例による動的プローブシステム１００のブロックダイアグラムである。動的プローブシステム１００よれば、例えば、少なくとも１つのマイクロプロセッサを含むＦＰＧＡ及びＳＯＣ（Ｓｙｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）上におけるデバッグが簡略化される。動的プローブシステム１００は、可観測性を改善し、インサーキットデバッグを円滑に実行する。動的プローブシステム１００は、ＳＯＣフロー用に設計されているが（ＳＯＣ用のすべての既存のツール、設計手順、及びＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を保全可能であるが）、本開示内容は、ＳＯＣに限定されるものではなく、ＦＰＧＡの内外における様々な環境において使用可能である。実際に、例示用の実施例は、ＦＰＧＡ１００上におけるシステムの実装についても示している。
【００１６】
動的プローブシステム１００は、一般に、ＦＰＧＡ１０３又はその他の適切なＰＬＤ内に実装された１つ又は複数のコア１０２（例えば、トレースコア、プロセッサ、ソフトマクロ）に接続されたロジックアナライザ１０１を有している。専用のマイクロプロセッサトレースコア（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｔｒａｃｅ  Ｃｏｒｅ：ＭＴＣ）１０４は、ＦＰＧＡ１０３内に実装されたマイクロプロセッサ１０５をデバッグするべく計測値を抽出する際に有用である。トレースコア１０４は、ＦＰＧＡ１０３からの内部マイクロプロセッサ信号のロジックアナライザ１０１へのルーティングを円滑に実行する専用のデバッグコアを有している。コア１０４は、ＦＰＧＡ内に埋め込まれている単一のマイクロプロセッサからの内部信号を、ロジックアナライザ１０１によって精査される出力ピンに接続するべく適合可能である。尚、この説明においては、単一のＭＴＣの使用を示しているが、実施例においては、説明する方法と実質的に類似した方法により、ＦＰＧＡ１０３内において複数のＭＴＣ１０４が使用可能である。ＦＰＧＡ１０３のコアをデバッグするための特定タイプのデータ収集の詳細内容については、本発明の譲受人に譲渡されている引用された特許出願明細書に更に詳細に記述されている。
【００１７】
本明細書に更に詳細に記述されているように、ＭＴＣ１０４は、必要なピン数を低減する方式により、マイクロプロセッサ１０５から計測値を収集するべく適合されており、試験対象のマイクロプロセッサ１０５によって処理される信号の判定に伴う複雑性を軽減する。
【００１８】
ＭＴＣ１０４からのデータ信号は、ＦＰＧＡ１０３上の専用のピン１０８から、データ信号バス１０９によって取得されている。データ信号バス１０９は、通常、ロジックアナライザ１０１と関連付けられた通常のプロービング接続を有している（但し、これは、必須ではない）。実施例との関連で説明するように、専用のピン１０８は、ＦＰＧＡ１０３のいくつかのピンの中から選択されている。
【００１９】
ロジックアナライザ１０１は、ロジック分析部分とプローブ制御部分を含んでいる。ロジックアナライザ１０１は、例えば、カリフォルニア州パロアルトに所在するＡｇｉｌｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社が販売するＡＧＩＬＥＮＴ  １６９０３Ａに基づいたものであってよい。ロジック分析部分は、一般に、既知のロジックアナライザを有しており、プローブ制御部分は、一般に、ロジック分析部分に付随したオペレーティングシステムの下で動作する追加ソフトウェアを有している。ロジックアナライザ１０１内に含まれている１つのタイプのソフトウェアが逆アセンブラである。逆アセンブラは、プロセッサバスサイクルをユーザーが理解可能なニーモニック及びデータトランザクションに変換するのに有用なポスト処理ソフトウェアを有している。本明細書において更に詳細に説明するように、ユーザーから逆アセンブラに提供される情報を使用することにより、アクティブなピンによってアドレッシングされているメモリを判定する。この情報から、マイクロプロセッサ１０５の実行の計測を実行するためのピン要件を判定している。
【００２０】
又、動的プローブシステム１００は、ＪＴＡＧとも呼ばれているＩＥＥＥ１１４９．１などのいくつかのシリアル通信規格の中のいずれかに従って動作するリンク１０７を介したシリアル通信バス１１０をも包含可能である。ＪＴＡＧの利点には、低帯域幅、入手の容易性、及びＦＰＧＡ内部のＪＴＡＧコントローラを介したＦＰＧＡファブリックとの容易な統合が含まれる。ＪＴＡＧコントローラの目的は、試験のためにユーザーによって既に選択されているバス及び信号を判定することにある。
【００２１】
動的プローブシステム１００は、ユーザーインターフェイス（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＵＩ）１１１をも含んでいる。一実施例においては、ＵＩ１１１は、パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）又はネットワーク内の端末であってよい。当然のことながら、その他のタイプのユーザーインターフェイスも考えられよう。これらは、有線又は無線リンクを介してＦＰＧＡ１０３に接続可能な携帯型コンピュータ及び類似した適切な装置を含んでいる（但し、これらに限定されない）。ＵＩ１１１は、ＪＴＡＧリンク１１２を介してＦＰＧＡ１０３に接続されており、且つ、本明細書に更に詳しく記述されているように、コア構成を実行するべく適合されている。一実施例においては、ＭＴＣ１０４は、ＵＩ１１１を介してＦＰＧＡ１０３に付加されている。特定の実施例においては、ＵＩ１１１内に存在している市販のＸｉｌｉｎｘ（登録商標）  Ｐｌａｔｆｏｒｍ  Ｓｔｕｄｉｏソフトウェアの変更されたバージョンを使用することにより、ＭＴＣ１０４を付加している。具体的には、Ｘｉｌｉｎｘ  Ｓｔｕｄｉｏ  Ｐｌａｔｆｏｒｍ内には、ＦＰＧＡ１０３へのＭＴＣ１０４の付加を実現するＥＤＫ（Ｅｍｂｅｄｄｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）が含まれている。
【００２２】
図２は、マイクロプロセッサ及びトレース信号を有するＦＰＧＡ１０３の概略回路図である。図２においては、ロジックアナライザ１０１とＦＰＧＡ１０３間のやり取りは分離されている。前述の多くの特徴は、この説明対象の実施例の特徴にも共通している。従って、共通している特徴については説明を省略している。
【００２３】
ＦＰＧＡ１０３は、前述のように、マイクロプロセッサ１０５とＭＴＣ１０４を含んでいる。ロジックアナライザ１０１（これは、図２には示されていない）は、バス１０９により、トレースピン１０８に接続されている。トレースピン１０８は、対応する数のトレース２０１により、ＭＴＣ１０４に接続されている。一実施例においては、マイクロプロセッサ１０５は、ハーバードアーキテクチャに基づいたものになっており、命令（プログラム）「サイド」とデータ「サイド」を含んでいる。命令サイドは、命令メモリ２０２に接続されており、データサイドは、データメモリ２０３に接続されている。動作の際には、マイクロプロセッサ１０５は、メモリ２０２、２０３に信号を伝送する。マイクロプロセッサ１０５は、命令アドレスバス２０４、命令データバス２０５、及びバス制御信号２０６上において、個々の信号を介して命令メモリ２０２にアクセスしている。マイクロプロセッサ１０５は、データアドレスバス２０７、（データ）データバス２０８、及びデータバス制御信号２０９上において、個々の信号を介してデータメモリ２０３にアクセスしている。一例として、図２に示されているように、アドレス及びデータバスは３２ビットバスであり、制御信号は５ビット信号である。
【００２４】
ＭＴＣ１０４は、図示の接続を介して様々なバスにアクセスしている。マイクロプロセッサ１０５からの計測をロジックアナライザ１０１において実行するべく、バスから選択された数のマイクロトレース信号が収集される。命令−アドレスバス、データ−アドレスバース、データ−データバス、及びバス制御信号からマイクロプロセッサトレース信号が収集される。ＭＴＣ１０４は、バス２０４、２０５、２０７、及び２０８から所望のマイクロプロセッサトレース信号を選択し、且つ、これらの選択されたトレース信号をＦＰＧＡ１０３上のピン１０８にルーティングするべく、ＵＩ１１１を介して構成される。具体的には、選択された命令−アドレス信号２１０、２１１、選択されたデータ−アドレス信号２１２、２１３、及び制御バス信号２１４及び２１５が、ＭＴＣ１０４に、そして、ピン１０８にルーティングされる。制御バス信号２０６、２０９が個々のアドレス及びデータ信号と共にルーティングされることに留意されたい。
【００２５】
例えば、計測のためにアドレスバス２０４、２０７のすべてのアドレス信号のルーティングを要する多くの既知の計測データ収集法とは対照的に、これらの実施例においては、選択された信号のみがトレースピン１０８にルーティングされている。この結果、ロジックアナライザ１０１は、トレース計測のために割り当てられている相対的に少ない数のピン１０８により、マイクロプロセッサ１０５をデバッグするのに必要な計測を実行することができる。
【００２６】
前述のように、ロジックアナライザ又はその他の試験装置によってコンポーネントを試験するための専用のピンの数は少ない。従って、必要なピンの数を極小化することは、試験装置の設計者にとって継続的なニーズである。試験のためのピンを最小限度にするというニーズは、マイクロプロセッサをデバッグするために十分なデータと特定の信号タイプからのデータを収集するというニーズと競合している。従って、試験のために必要な信号を、試験のためにＦＰＧＡ１０３によって割り当てられているピンの数にスケーリングすることが有用である。このスケーリングは、本開示内容により、様々な方法で実行される。トレース計測において限られたトレースピンの効率的な使用を実現するべく、２つの例示用の方法が実装されている。尚、例示用の方法の実施例は、多くの場合に、アドレス信号のルーティングについて記述しているが、類似した方法により、データ信号（命令サイド及びデータサイドの両方）をルーティングすることも可能であると考えられる。
【００２７】
次に、マイクロプロセッサ１０４から適切な信号を収集するべく試験装置を構成する方法について説明する。本実施例の方法は、（１０５個のレベルである）多数の信号から、マイクロプロセッサ１０５に関係するＦＰＧＡ１０３に関連した信号を判定する段階を含んでいる。これらの信号は、マイクロプロセッサベンダ又はマイクロプロセッサ１０５に関するデータシートから取得可能である。これらの信号は、事前に決定され、ＵＩ１１１に提供される。次いで、ユーザーは、この（１０１〜１０２個のレベルである）信号のグループから、マイクロプロセッサ１０５の機能の有用な分析を実行するのに最も必要なものを選択する。ＭＴＣ１０４は、ＵＩ１１１の構成ソフトウェア（例えば、ＥＤＫソフトウェア）を使用することにより、個々のバス２０４、２０７からこれらの信号を取得し、これらのトレースをトレースピン１０８に供給するべく、構成されている。好都合なことに、信号の選択内容が、割り当てられたトレースピンにルーティングされることになる。例えば、利用可能な８本のトレースピンが存在している場合には、分析のために８つの信号のみをルーティングすることができる。ＭＴＣ１０４の構成の際に、特定の計測のために最も有用な信号をルーティングするべく選択可能である。
【００２８】
図３Ａは、一実施例によるＦＰＧＡのマイクロプロセッサ上において計測を実行するべく試験装置をセットアップするための方法のフローチャートである。この方法については、図１及び図２、並びにこれらの説明との関連において検討することにより、十分に理解することができよう。
【００２９】
本方法は、段階３０１において、マイクロプロセッサと関連する信号のサブセットを選択する段階を含んでいる。例えば、ＦＰＧＡ１０３内には、ＦＰＧＡ１０３の様々なコンポーネントに提供可能な１０５個以上の信号が存在可能である。これらの信号の中で、マイクロプロセッサ１０５と関連しているのは、一部のみである。すべての信号をトレースピン１０８にルーティングすることは非現実的であるため、マイクロプロセッサと関連したこれらの信号のサブセットを判定し、ＵＩ１１１のデータベース内において提供する。但し、ロジックアナライザ１０１によって計測用に割り当てられているトレースピンの数が付与された際には、このサブセットを更に低減することが必要となる可能性がある。
【００３０】
段階３０２において、利用可能なピン１０８の数に応じて、信号のサブセットを更に削減することができる。特定の実施例においては、ユーザーは、その分析に有用な（例えば、命令−アドレスバス２０４及び命令−データバス２０７などの）特定のマイクロプロセッサバスを判定する。ユーザーは、信号のサブセットから望ましいバスを選択し、これらをＵＩ１１１上のＧＵＩを介して入力する。バスが選択された後に、ＥＤＫソフトウェアが、バスをトレースピン１０８にルーティングするべくＭＴＣ１０４を構成する。段階３０３において、接続された信号から、信号が、ＭＴＣ１０４に、そして、トレースピン１０８にルーティングされる。
【００３１】
本実施例によれば、ユーザーは、メモリ２０２、２０３に接続しているバス２０４〜２０９からの信号にアクセスするべく、ＭＴＣ１０４を構成することができる。次いで、これらの信号が、ピン１０８に、そして、ロジックアナライザ１０１に転送される。ピン１０８にルーティングされる信号の基準は変化可能であることが理解されよう。但し、本実施例の方法によれば、ユーザーは、ルーティングされる信号を利用可能なピンに対してマッチング可能である。ＭＴＣ１０４の構成の後に、ロジックアナライザが、ピン１０８をトグルし、信号とピンのペアリングを判定する。
【００３２】
図３Ｂは、一実施例によるマイクロプロセッサ１０５上において計測を実行するべく試験装置をセットアップするのに有用なＧＵＩの一表現である。このＧＵＩは、例えば、ＵＩ１１１内においてソフトウェアとして実装される。
【００３３】
ＧＵＩは、ＭＴＣ１０４を選択するフィールド３０５を含んでいる。例えば、ＭＴＣは、Ａｇｉｌｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社が提供しているＭｉｃｒｏＢｌａｚｅ  Ｔｒａｃｅ  Ｃｏｒｅであってよい。ＭＴＣを選択した後に、選択されたＭＴＣに固有の複数のマイクロプロセッサバス信号及びパラメータをフィールド３０６に入力する。フィールド３０６により、ユーザーにとって関心のあるマイクロプロセッサ信号が選択可能である。選択された信号が参照符号３０７によって表示されている。選択された信号は、フィールド３０８に追加される。フィールド３０９により、ユーザーは、トレースピン１０８にルーティングされる信号の数を入力することができる。この結果、利用可能なピン容量に対して信号の数を調節することができる。
【００３４】
本開示内容による別の方法は、マイクロプロセッサの試験のために必要なピンの数を低減するのに有用である。この例示用の方法は、ポストプロセッサ法であり、この場合には、ロジックアナライザ１０１の逆アセンブラアプリケーションソフトウェアに対して、評価対象の特定のマイクロプロセッサに関係した特定のパラメータが提供されている。
【００３５】
前述のように、３２ビットのハーバードアーキテクチャのマイクロプロセッサの完全な逆アセンブラは、すべての信号をルーティングするために、１３５本程度のピンを必要とすることになろう。しかしながら、マイクロプロセッサ１０５は、通常、マイクロプロセッサ１０５に書き込まれたコードをはるかに上回るアドレス空間を含んでいる。従って、アクセスされないメモリ空間の部分が存在しており、従って、静的なアドレス信号が存在している。マイクロプロセッサ１０５の分析は、アクティブな信号のみの収集を必要としている。このため、ロジックアナライザ１０１の逆アセンブラに提供されるパラメータは、マイクロプロセッサ１０５内においてアクティブなアドレスビットを示している。この結果、ロジックアナライザ１０１は、分析のためにアクティブな信号のみをキャプチャし、すべての静的なビットを事前に定義された値に設定可能である。この結果、アクティブであり、従って、ロジックアナライザによる分析のために必要であるビットのみがトレースピン１０８を通じてルーティング可能である。
【００３６】
一例として、ＦＰＧＡ上のマイクロプロセッサプログラムは、一般に、完全な４ギガバイト（３２ビット）のプログラム空間と完全な３４ギガバイトのデータ空間を必要とはしていない。プログラムによって使用されるアドレス空間のサブセットは、しばしば、３２個を下回るビットによって表現可能である。ＦＰＧＡのピンにルーティングする必要があるのは、このより小さなビットの組のみである。本開示内容の方法によれば、静的なビットはＦＰＧＡのピンにルーティングされない。
【００３７】
図４Ａは、一実施例によるマイクロプロセッサ上において計測を実行するべく試験装置をセットアップする方法のフローチャートである。本方法については、図１及び図２、並びにこれらの説明との関連において検討することにより、十分に理解することができよう。前述のように、これらの実施例の方法は、マイクロプロセッサからのアドレス信号の収集に合焦しているが、類似した方法により、データ信号を収集することも可能であることを強調しておく。
【００３８】
段階４０１において、試験対象のマイクロプロセッサのソフトウェアプログラムによって占有されているメモリ空間を完全に表現するのに必要なアドレス信号の数を判定している。通常、アドレス信号の数は、ユーザー設計において実装されているメモリの量に基づいて、ユーザーによって判定される。前述のように、マイクロプロセッサに書き込まれているコードのサイズに応じて、アドレス空間の一部のみがアクティブである。従って、データが入力されているメモリにアクセスするのは、アドレス信号の一部のみである。図２を参照すれば、これは、「アクティブ」な信号を伝送しているメモリ２０２とマイクロプロセッサ１０５の間の命令アドレス信号のいくつかとメモリ２０３とマイクロプロセッサ１０５の間のデータアドレス信号のいくつかのみに相当している。これらのアクティブな信号は分析用の計測を実行するのに有用であるため、これらのアクティブな信号のみが、ＭＴＣ１０４に、そして、ロジックアナライザ１０１にルーティングされる。
【００３９】
段階４０２において、ユーザー設計内において実装されているメモリ量に基づいて、試験対象のマイクロプロセッサのデータによって占有されているメモリ空間を完全に表現するのに必要なアドレス信号の数がユーザーによって判定される。前述のように、マイクロプロセッサに書き込まれているコードのサイズに応じて、アドレス空間の一部のみがアクティブである。従って、データが入力されているメモリにアクセスするのに必要なのは、アドレス信号の一部のみである。
【００４０】
段階４０３において、マイクロプロセッサ１０５の命令サイドとデータサイドの両方のメモリ空間を表現するためのアドレス信号が選択される。図２との関連で説明した実施例においては、アドレスバス２０４及び２０７からの選択されたアドレス信号２１０及び選択されたアドレス信号２１１が、それぞれ、計測及び分析のために、ＭＴＣ１０４に、そして、ロジックアナライザ１０１にルーティングされる。アドレス信号の選択は、前述のように、構成ソフトウェア（例えば、前述のＥＤＫソフトウェア）とＵＩ１１１を使用してＭＴＣ１０４の構成の際に実行される。
【００４１】
特定の実施例においては、ロジックアナライザにルーティングするためのアドレス信号の選択は、ＵＩ１１１内の構成ソフトウェアを介してＭＴＣ１０４の構成の際に実行される。必要なアドレス信号の数が段階４０１、４０２において判定された後に、ユーザーは、開始アドレスを選択する。使用するアドレス信号がすべて選択されているため、「終了」アドレス信号は、判明している。又、アドレス信号の選択が完了した後に、ユーザーは、段階４０３において選択されたそれぞれのビットごとに、ピンを選択する。例えば、望ましくはトレースピンにルーティングされる１０個のアドレスビットが存在している場合には、構成ソフトウェアは、１０個のアドレスビットを選択された１０本のトレースピン（例えば、ピン１０８の中の１０本）にルーティングするべく、ＭＴＣ１０４を構成する。
【００４２】
段階４０３におけるアドレス信号の選択の後に、段階４０４において、命令及びデータサイドによって占有されているアドレス空間が試験装置に入力される（この試験装置は、この実施例においては、ロジックアナライザ１０１である）。アクティブなビットが入力され、静的なビットと組み合わせられることに留意されたい。
【００４３】
特定の実施例においては、メモリ空間を完全に表現するのに必要なすべての信号は、図４Ａの方法を介してルーティング可能である。しかしながら、すべての信号をルーティングするのに十分なトレースピンが存在していない場合がある。特定の実施例においては、ユーザーは、すべてのバスの信号を提供しないことを選択可能である。この結果、制限されたピン容量内において作業するべく、ユーザーは、プロセッサの命令サイドのみをトレースするか又はマイクロプロセッサのデータサイドのみをトレースするべく選択可能である。更には、選択されたサイド（命令又はデータ）において、ユーザーは、アドレスバスのみをトレースするか又はデータバスのみをトレースするべく選択することも可能である。計測用のトレース信号の選択を調節するべく、本実施例の方法は、分析のために「サイド」又は１つ又は複数の「バス」を選択するべく変更されている。この場合にも、この選択は、ＭＴＣ１０４の構成の際に実行される。次いで、逆アセンブラが、その機能を自動的に調節し、供給される信号をマッチングする。これは、既にピンアウトされている信号を判定するべくＪＴＡＧリンク１１２を介してＭＴＣ１０４に問い合わせるロジックアナライザ／逆アセンブラによって実現される。
【００４４】
この引用した調節を実現するべく、図４Ａの実施例の方法においては、計測用の選択されたサイドに応じて段階４０１又は４０２の１つを除去する段階と、段階４０３及び４０４を変更することにより、選択されたサイド又はバスに対して本方法を調節する段階を想定している。一例として、ユーザーが、マイクロプロセッサの命令サイドにおいて計測を実行することを所望している（又は、これを実行するのに十分なトレースピンしか具備していない）場合には、段階４０２が除去されることになろう。更には、段階４０３が、データではなく命令によって占有されているメモリ空間を表現するアドレス信号を選択するべく変更され、段階４０４が、データではなく命令によって占有されているアドレス空間を入力するように変更されることになろう。
【００４５】
図４Ｂは、段階４０４に記述されているアドレス空間を入力するべく適合されたロジックアナライザ１１０のＧＵＩの一表現である。アクティブなビットの開始アドレスに関する知識を入手することにより、ユーザーは、マイクロプロセッサのそれぞれのサイドの開始アドレス信号を設定する。ユーザーは、フィールド４０５において、データサイドメモリと命令サイドメモリの開始アドレスを入力する。ロジックアナライザ１０１の逆アセンブラは、この値をＦＰＧＡ１０３上のピンにルーティングされるアドレスビットの開始アドレスに加算することにより、完全な３２ビットのアドレスを演算する。マイクロプロセッサ１０５の命令サイド及びデータサイドの両方について、データ信号用の類似のＧＵＩを提供可能であることに留意されたい。
【００４６】
以上の開示内容に鑑み、本明細書に記述されている様々な方法及び装置は、ハードウェア及びソフトウェアとして実装可能であることに留意されたい。又、様々な方法及びパラメータは、一例として含まれているに過ぎず、制限を意図するものではない。当業者であれば、本開示内容に鑑み、独自の技法とそれらの技法を実装するのに必要な装置を判定することにより、添付の請求項の範囲を逸脱することなしに、本開示内容を実施することができる。
【００４７】
最後に本発明の代表的な実施態様を以下に示す。
（実施態様１）
マイクロプロセッサ（１０５）上において計測を実行するべく試験装置をセットアップする方法において、
複数の命令によって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第１の段階（４０１）と、
データによって占有されているメモリ空間を完全に表現するのに必要な複数のアドレス信号を判定する第２の段階（４０２）と、
前記命令と前記データの一方、または、これらの両方によって占有されている前記メモリ空間を完全に表現するアドレス信号を選択する第３の段階（４０３）と、
前記命令及び前記データによって占有されているアドレス空間を前記試験装置に入力する第４の段階（４０４）と、
を有することを特徴とする方法。
【００４８】
（実施態様２）
前記マイクロプロセッサ（１０５）は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）（１０３）内に実装されていることを特徴とする実施態様１に記載の方法。
【００４９】
（実施態様３）
前記ＦＰＧＡ（１０３）上の専用のピン（１０８）に特定のアドレス信号をルーティングする第５の段階を更に有することを特徴とする実施態様２に記載の方法。
【００５０】
（実施態様４）
マイクロプロセッサトレース信号（２１０〜２１５）を選択し、且つ、前記マイクロプロセッサトレース信号を前記ＦＰＧＡ上のピンにルーティングするべく適合されたマイクロプロセッサトレースコア（１０４）を提供する第６の段階を更に有することを特徴とする実施態様２に記載の方法。
【００５１】
（実施態様５）
前記マイクロプロセッサトレース信号は、命令−アドレスバス（２０４）、データ−アドレスバス（２０７）、データ−データバス（２０８）、及びバス制御信号（２０６、２０９）の中の１つ又は複数のものを有することを特徴とする実施態様４に記載の方法。
【００５２】
（実施態様６）
前記マイクロプロセッサトレース信号を選択する前記第６の段階は、前記メモリ空間を完全に表現するのに必要な前記アドレス信号のみを選択する第７の段階を更に有することを特徴とする実施態様４または５に記載の方法。
【００５３】
（実施態様７）
マイクロプロセッサトレース信号を選択する前記第６の段階を実行するべく前記マイクロプロセッサトレースコア（１０４）を構成する第８の段階を更に有することを特徴とする実施態様４から６のいずれかに記載の方法。
【００５４】
（実施態様８）
前記第４の段階は、開始メモリアドレスを選択する第９の段階（４０５）を更に有することを特徴とする実施態様１から７のいずれかに記載の方法。
【００５５】
（実施態様９）
マイクロプロセッサ（１０５）上において計測を実行するべく試験装置をセットアップする方法において、
信号のサブセットを選択する段階（３０１）であって、前記信号のサブセットは、前記マイクロプロセッサ（１０５）と関連する信号のみを含んでいる第１０の段階と、
割り当てられているいくつかのピンに基づいて、前記信号のサブセットからマイクロプロセッサトレース信号を選択する第１１の段階（３０２）と、
を有することを特徴とする方法。
【００５６】
（実施態様１０）
ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）上にマイクロプロセッサトレースコア（１０４）を提供する第１２の段階を更に有することを特徴とする実施態様９に記載の方法。
【００５７】
（実施態様１１）
前記ＰＬＤは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）（１０３）であることを特徴とする実施態様１０に記載の方法。
【００５８】
（実施態様１２）
前記マイクロプロセッサトレース信号を選択するべく前記マイクロプロセッサトレースコアを構成する第１３の段階を更に有することを特徴とする実施態様９から１１のいずれかに記載の方法。
【００５９】
（実施態様１３）
前記マイクロプロセッサトレース信号を選択する第１１の段階の後に、前記マイクロプロセッサトレース信号を選択されたピン（１０８）にルーティングする第１４の段階（３０３）を更に有することを特徴とする実施態様９から１２のいずれかに記載の方法。
【００６０】
（実施態様１４）
前記マイクロプロセッサトレース信号（２１０〜２１５）を選択し、且つ、前記マイクロプロセッサトレース信号を前記ＦＰＧＡ（１０３）上のピン（１０８）にルーティングするべく適合されたマイクロプロセッサコア（１０４）を埋め込む第１５の段階を更に有することを特徴とする実施態様９記載の方法。
【００６１】
（実施態様１５）
前記マイクロプロセッサトレース信号は、命令−アドレスバス（２０４）、データ−アドレスバス（２０７）、データ−データバス（２０８）、及びバス制御信号（２０６、２０９）の中の１つ又は複数のものを有することを特徴とする実施態様１４記載の方法。
【００６２】
（実施態様１６）
前記マイクロプロセッサトレース信号を選択する前記第１１の段階は、メモリ空間を完全に表現するのに必要な前記アドレス信号のみを選択する第１６の段階（４０３）を更に有することを特徴とする実施態様９から１５のいずれかに記載の方法。
【００６３】
（実施態様１７）
試験装置（１０１）と、
マイクロプロセッサ（１０５）を具備するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）（１０３）と、
前記試験装置（１０１）を前記ＦＰＧＡ（１０３）に接続するべく適合されたトレースピン（１０８）と、
前記マイクロプロセッサと関連する信号のみを含む信号のサブセットからマイクロプロセッサトレース信号（２１０〜２１５）を選択するべく構成されたマイクロプロセッサトレースコア（１０４）と、
を有する動的プローブシステム。
【００６４】
（実施態様１８）
前記試験装置（１０１）は、ロジックアナライザであることを特徴とする実施態様１７に記載の動的プローブシステム。
【００６５】
（実施態様１９）
前記マイクロプロセッサトレース信号（２１０、２１１）は、メモリ空間（２０２、２０３）を完全に表現するのに必要なアドレス信号のみであることを特徴とする実施態様１７または１８に記載の動的プローブシステム。
【００６６】
（実施態様２０）
前記マイクロプロセッサトレース信号は、命令−アドレスバス（２０４）、データ−アドレスバス（２０７）、データ−データバス（２０８）、及びバス制御信号（２０６、２０９）の中の１つ又は複数のものを有することを特徴とする実施態様１７から１９のいずれかに記載の動的プローブシステム。
【図面の簡単な説明】
【００６７】
【図１】一実施例による動的プローブシステムの概略ブロックダイアグラムである。
【図２】一実施例によるマイクロプロセッサとマイクロプロセッサトレースコア（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｔｒａｃｅ  Ｃｏｒｅ：ＭＴＣ）を含むＦＰＧＡの概略回路図である。
【図３Ａ】一実施例によるＦＰＧＡ内においてマイクロプロセッサ試験信号をセットアップする方法のフローチャートである。
【図３Ｂ】一実施例によるマイクロプロセッサ上において計測を実行するべく試験装置をセットアップするのに使用されるグラフィックユーザーインターフェイスの表示の一表現である。
【図４Ａ】一実施例によるＦＰＧＡ内のマイクロプロセッサ試験信号をセットアップし、且つ、マイクロプロセッサ上において計測を実行するのに使用される試験装置をセットアップする方法のフローチャートである。
【図４Ｂ】一実施例によるＦＰＧＡ内の信号を試験するべくマイクロプロセッサをセットアップするためのグラフィックユーザーインターフェイスの表示の一表現である。
【符号の説明】
【００６８】
１０３  ＦＰＧＡ
１０４  マイクロプロセッサトレースコア
１０５  マイクロプロセッサ
１０８  ピン
２０２、２０３  メモリ空間
２０４  命令−アドレスバス
２０６、２０９  バス制御信号
２０７  データ−アドレスバス
２０８  データ−データバス
２１０〜２１５  マイクロプロセッサトレース信号
【図１】
2007172599.tif 000003
【図２】
2007172599.tif 000004
【図３Ａ】
2007172599.tif 000005
【図３Ｂ】
2007172599.tif 000006
【図４Ａ】
2007172599.tif 000007
【図４Ｂ】
2007172599.tif 000008