(57)【要約】【課題】  タイムスタンプ情報が格納されるメモリのビット幅で制約されるという基本的な問題及びトレースメモリ容量からの制約の問題を解決する開発支援装置の提供。【解決手段】  被評価回路にアドレスを供給するＣＰＵと、前記ＣＰＵのソフトウェア実行時において、前記ＣＰＵから出力される前記アドレスと予め指定されたアドレスとを比較し、両アドレスが一致した時、一致信号を出力する比較器と、前記比較器から一致信号が出力された時、トレース情報を格納する第１の記憶部と、クロック信号を計数してタイムスタンプ情報を生成する第１のカウンタと、前記比較器から一致信号が出力された時に前記第１のカウンタで生成された前記タイムスタンプ情報を格納する第２の記憶部と、前記第１のカウンタからキャリー信号が出力された時、カウントアップされる第２のカウンタと、を備える開発支援装置が提供される。【選択図】  図１
2005322035.tif 000002
【特許請求の範囲】
【請求項１】
被評価回路にアドレスを供給するＣＰＵと、
前記ＣＰＵのソフトウェア実行時において、前記ＣＰＵから出力される前記アドレスと予め指定されたアドレスとを比較し、両アドレスが一致した時、一致信号を出力する比較器と、
前記比較器から一致信号が出力された時、トレース情報を格納する第１の記憶部と、
クロック信号を計数してタイムスタンプ情報を生成する第１のカウンタと、
前記比較器から一致信号が出力された時、前記第１のカウンタで生成された前記タイムスタンプ情報を格納する第２の記憶部と、
前記第１のカウンタからキャリー信号が出力された時、カウントアップされる第２のカウンタと、
を備えることを特徴とする開発支援装置。
【請求項２】
前記第１のカウンタは前記キャリー信号出力時及び前記比較器からの一致信号により、クリアされる事を特徴とする請求項１に記載の開発支援装置。
【請求項３】
被評価回路に供給されるアドレスと予め指定されたアドレスとを比較し、両アドレスが一致した時、トレース情報を第１の記憶部に格納し、
前記比較の結果、両アドレスが一致した時、クロック信号を計数する第１のカウンタのカウント値をタイムスタンプ情報として第２の記憶部に格納し、
前記第１のカウンタからキャリー信号が出力された時、第２のカウンタをカウントアップし、
前記第１のカウンタと前記第２のカウンタのカウント値からタイムスタンプ情報を生成することを特徴とする開発支援方法。
【請求項４】
前記第１のカウンタは前記キャリー信号出力時及び前記比較器からの一致信号により、クリアされる事を特徴とする請求項３に記載の開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコン上などのＣＰＵを搭載した装置上で動作するソフトウェア開発を支援する方法に関し、特に記憶容量などに制約のある装置でのソフトウェア開発に関する。
【背景技術】
【０００２】
従来のマイコンなどのＣＰＵを搭載した装置でのソフトウェアの開発支援装置としては、ＩＣＥ（Ｉｎ  Ｃｉｒｃｕｉｔ  Ｅｍｕｌａｔｏｒ）と呼ぶ各種の開発支援装置が使用されてきた。これらのＩＣＥには、その本体内部に評価対象となるＣＰＵ又は評価用のチップを備えている。そして、パソコンなどと接続インターフェースを介してターゲット装置上で動作させるソフトウェアをターゲット装置にダウンロードさせて、１ステップ毎の動作、ブレークポイントを設定しての連続的な動作及びその動作状況をトレース情報として収集して、ターゲット装置上で動作するソフトウェアをデバッグする方法がとられてきた。
【０００３】
上記ＩＣＥを使用して、トレース情報を長時間に渡って収集する場合での問題点を解決する手段として、タイムスタンプ情報を付加したトレース情報の適時収集及びタイムスタンプ情報を付加した長時間にわたるトレース情報を記憶する為の記憶部を備えた開発支援装置が開発されている（例えば、特許文献１参照）。
【０００４】
又、従来の開発支援装置では、特定のアドレスへのアクセス履歴（サンプリングトレース）とその経過時間（タイムスタンプ情報）を格納する機能（トレースメモリ）を具備しており、トレースメモリには、アクセスデータ、タイムスタンプ情報などが同時に格納され、特定アドレス毎にデータが順次格納（以降、格納アドレスをフレームと呼ぶ）される。格納されるタイムスタンプ情報の絶対値は、特定アドレスへのアクセスの時間間隔に応じて増減し、その時間は実行するプログラムの内容に左右される為、タイムスタンプ情報の最大値を定義することはできない。
【０００５】
最大値を定義することは、経過時間の格納絶対値を定義する事となる為に事実上の制限事項となる。それは、実際にタイムスタンプ値として記録できるデータ幅が格納するメモリのビット幅に依存している為である。
【０００６】
このように、従来のこれら技術におけるトレース情報内のタイムスタンプ情報は、実際にはタイムスタンプ値として記録できるデータ幅が格納するメモリのビット幅に依存しており、格納するメモリのビット幅を上回る経過時間を格納する事は実際上不可能であった。
【０００７】
また、タイムスタンプ値を計数するカウンタは、長時間に渡るタイムスタンプ値の計数の途中でキャリーオーバーが発生する為に正確なタイムスタンプ値を得る事が困難であった。
【特許文献１】特開２０００−１９４５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、タイムスタンプ用のカウンタのビット幅に関わりなく、ほぼ無制限に近い時間に渡るトレ−ス情報を累積することが可能な開発支援装置を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明の開発支援装置の一態様は、被評価回路にアドレスを供給するＣＰＵと、前記ＣＰＵのソフトウェア実行時において、前記ＣＰＵから出力される前記アドレスと予め指定されたアドレスとを比較し、両アドレスが一致した時、一致信号を出力する比較器と、前記比較器から一致信号が出力された時、トレース情報を格納する第１の記憶部と、クロック信号を計数してタイムスタンプ情報を生成する第１のカウンタと、前記比較器から一致信号が出力された時に前記第１のカウンタで生成された前記タイムスタンプ情報を格納する第２の記憶部と前記第１のカウンタからキャリー信号が出力された時、カウントアップされる第２のカウンタとを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、タイムスタンプ用のカウンタのビット幅に関わりなく正確な時間を記憶すると共にほぼ無制限に近い時間に渡るトレ−ス情報を累積することが可能な開発支援装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下に本発明の実施形態について、図面を参照して説明する。
【００１２】
図１から図５を使用して本発明の実施に形態について詳細に説明する。
【００１３】
図１は、本実施の形態におけるシステムの全体構成を示したシステム構成図の例である。
【００１４】
図１に示した開発支援装置では、記憶部３１０、例えば、カウンタ３０Ｍ（第２のカウンタ）を含む制御システム３２０、ＩＯ/メモリ３０Ａ、評価用ＣＰＵ３０Ｂ、比較装置３０Ｃ、トレース対象アドレス３０Ｄ、カウンタ３０Ｅ、アクセス値格納メモリ３０Ｆ（第１の記憶部）、タイムスタンプ格納メモリ３０Ｇ（第２の記憶部）、カウンタ３０Ｈ（第１のカウンタ）、タイムスタンプクロック生成部３０Ｉ及びデータラッチ３０Ｊから構成されている。
【００１５】
尚、ここで、トレース情報であるアクセスアドレス、アクセスデータ及びタイムスタンプ情報は、トレース対象アドレスにアクセス時に記憶部に順次格納される（以後、格納アドレスをフレームと呼ぶ）。
【００１６】
記憶部３１０は、アクセス値格納メモリ３０Ｆ（第1の記憶部）、タイムスタンプ格納メモリ３０Ｇ（第２の記憶部）から構成される。
【００１７】
ＩＯ/メモリ３０Ａは、評価用ＣＰＵがアクセスし、制御を行うメモリ又は外部ＩＯである。この例では、メモリの場合を示している。
【００１８】
評価用ＣＰＵ３０Ｂは、開発支援装置におけるプログラムのデバッグ対象マイコン、又は、デバッグ対象マイコン用エミュレーションＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）である。この評価用ＣＰＵ３０Ｂは、被評価回路としてのＩＯ/メモリ３０Ａを評価する為のプログラムを具備している。
【００１９】
比較装置３０Ｃは、設定されたトレース対象アドレス３０Ｄと評価用ＣＰＵ３０Ｂのアクセスアドレスを比較し、リード又はライトのタイミングで一致情報を出力する。
【００２０】
トレース対象アドレス３０Ｄは、開発支援装置の使用者から指定されたトレース対象メモリアドレスである。
【００２１】
カウンタ３０Ｅは、比較装置３０Ｃでの一致結果を評価用ＣＰＵ３０Ｂのリード又はライト信号でカウント値を累算して、フレーム（格納アドレス値）値とする。
【００２２】
アクセス値格納メモリ３０Ｆ（第１の記憶部）は、アクセス値関連情報格納用の記憶部であり、比較装置３０Ｃで生成された信号をライト信号とし、カウンタ３０Ｅからのフレーム値（格納アドレス値）をアドレスとして、前記評価用ＣＰＵ３０Ｂからのアドレスを格納する。また、アクセス値格納メモリ３０Ｆは、開発支援装置の制御システムから図示せぬ別系統でアクセス可能とされている。
【００２３】
タイムスタンプクロック生成部３０Ｉは、タイムスタンプのサンプリングレート算出の基本クロックを生成して、カウンタ３０Ｈにタイムスタンプ生成の為に供給する。本クロックからタイムスタンプの分解能が決められる。
【００２４】
カウンタ３０Ｈは、タイムスタンプ格納メモリ３０Ｇのメモリーサイズに合わせた１６ビットカウンタで、タイムスタンプ値のカウンタである。カウント値がタイムスタンプ格納メモリ３０Ｇに書き込まれた後に、比較装置３０Ｃで生成された信号の遅延信号でカウンタ３０Ｈはクリアされる。
【００２５】
タイムスタンプ格納メモリ３０Ｇ（第２の記憶部）は、タイムスタンプ値格納用記憶部である。比較装置３０Ｃで生成された信号をライト信号として、タイムスタンプ値としてカウンタ３０Ｈのカウント値及びカウンタＡ３０Ｅからのフレーム値を（格納アドレス値）をタイムスタンプ格納メモリ３０Ｇ（第２の記憶部）に格納する。また、このタイムスタンプ格納メモリ３０Ｇは、開発支援装置の制御システムから別系統でアクセス可能とされている。
【００２６】
データラッチ３０Ｊは、カウンタ３０Ｈのキャリー信号の出力タイミングで、カウンタ３０Ｅからのフレーム値（格納アドレス値）をラッチし、カウンタ３０Ｈのキャリー信号を制御システム３２０の取り込み信号として、ラッチした値がデータラッチ３０Ｊから制御システム３２０に供給される。また、このタイミングでカウンタ３０Ｈのカウント値は、クリアされる。
【００２７】
次に図２、３、４及び５を使用して、本発明におけるキャリー処理の概要及び制御システム３２０でのトレース情報の記憶形式について説明する。
【００２８】
始めに図２を用いて、制御システムでのキャリーの処理例について、その処理フローチャート図で説明する。
【００２９】
尚、図２における制御システム３２０の例では、タイムスタンプのキャリーの為のカウンタとして、例えば16ビット幅のカウンタ３０Ｍを備えるものとする。制御システムでのタイムスタンプ１マイクロ秒は、例えば１μsecとし、その６５５３６倍の値、すなわち、６５ｍsec単位の値で管理する。
【００３０】
評価用ＣＰＵ３０Ｂからアクセスされた被評価ＩＯ／メモリ３０Ａのアドレス値が予め指定されたアドレス値と長時間一致しない場合、データラッチ３０Ｊは、カウンタ３０Ｈのキャリー信号の出力タイミングで、カウンタ３０Ｅからのフレーム値（格納アドレス値）をラッチし、カウンタ３０Ｈのキャリー信号を制御システム３２０の取り込み信号として、ラッチした値がデータラッチ３０Ｊから制御システム３２０に供給されると共にカウンタ３０Ｈのカウント値は、クリアされる。
【００３１】
データラッチ３０Ｊから制御システム３２０に送られたキャリー発生情報により、制御システム３２０では、キャリー発生フレーム値（格納アドレス値）保存（ＳＴ０１）を行い、上位タイムスタンプのカウントアップ（ＳＴ０２）が行われる。
【００３２】
次に上位タイムスタンプでキャリー（ＳＴ０３）発生か否かを判定し、上位タイムスタンプでキャリー発生時は、上位タイムスタンプ値は無視する。
【００３３】
また、上位タイムスタンプでキャリー未発生時には、上位タイムスタンプ値を保存する（ＳＴ０４）。
【００３４】
尚、カウンタ３０Ｍは比較器３０Ｃからの一致信号が出力された場合、カウント値が確定され、その後カウンタ３０Ｍはクリアされる。このカウンタ３０Ｍは、ソフトウェア又はハードウェアのいずれでも構成できる。
【００３５】
図３は、上記動作結果の一例を示している。図３から明らかなように、カウンタ３０Ｈがオーバーフローする毎にカウンタ３０Ｍがカウントアップされる。このようにして、長時間のタイムスタンプ値の計測が可能となる。
【００３６】
次に図４に示すようにキャリー発生回数値を上位１６ビット値（３２ビット幅での）として、タイムスタンプ値（３２ビット幅での下位１６ビット値）と加算する事（３２ビット幅）により、３２ビット値のタイムスタンプ値として、取り扱うことができる。
【００３７】
尚、ここでの３２ビット幅のタイムスタンプ値は、前回キャリー発生時点からの値である。図４は、図３に示すキャリー回数とタイムスタンプ値から最終タイムスタンプ値及び時間間隔の各値を算出した例を示している。
【００３８】
最終タイムスタンプ値は、制御システムでタイムスタンプ値とキャリー発生回数を各々３２ビット幅での下位１６ビット及び上位１６ビットとして加算したものであり、時間間隔は原振を１μsecとした場合での前回のキャリー発生時点又は、比較器３０Ｃから一致信号が出力された時点からの値を示している。
【００３９】
また、図５で表示した最終タイムスタンプ値は、図４で示した各フレームでの最終タイムスタンプ値を累計して、電源オン時からの経過最終タイムスタンプ値を算出して表示したものである。
【００４０】
上記実施の形態によれば、以下の効果がある。
【００４１】
比較装置３０Ｃにおいて、一致信号が発生しない場合において、カウンタ３０Ｈがオーバーフローすると、キャリー発生回数のみを別のカウンタ３０Ｍでカウントする為、このカウンタ３０Ｍとカウンタ３０Ｈの値から長時間に渡る正確なタイムスタンプ値を得ることが可能となる。
【００４２】
また、上記タイムスタンプ値は、サンプリングレートの変更及び格納ビット長を変更できる為、制御システムなどへのインターフェースを活用する事により、更に長時間及び大量のフレームでのトレースデータの格納が可能である。
【００４３】
更に、進歩の激しい技術分野にあっても、進歩に合わせて、各種パラメータ（例えば、サンプリングレート、カウンタビット幅など）を変更することにより、柔軟に対応可能である。
【００４４】
尚、本発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【００４５】
【図１】本発明のシステム全体構成を示したシステム構成図である。
【図２】本発明のキャリー処理の流れを示したキャリー処理フローチャート図である。
【図３】本発明でのトレースデータを所定の間隔時間で格納したトレースデータ格納例を示す図である。
【図４】本発明でのトレースデータを所定の間隔時間で格納したトレースデータの他の格納例を示す図である。
【図５】本発明でのトレースデータを所定の間隔時間で格納したトレースデータの他の格納例を示す図である。
【符号の説明】
【００４６】
３１０・・・記憶部、３２０・・・制御システム、３０Ｆ・・・アクセス値格納メモリ（第１の記憶部）、３０Ｇ・・・タイムスタンプ格納メモリ（第２の記憶部）、３０Ｈ・・・カウンタ（第１のカウンタ）、３０Ｍ・・・カウンタ（第２のカウンタ）。
【図１】
2005322035.tif 000003
【図２】
2005322035.tif 000004
【図３】
2005322035.tif 000005
【図４】
2005322035.tif 000006
【図５】
2005322035.tif 000007