(57)【要約】【課題】プログラム方式の電子情報処理装置の低消費電力化を図るためのプログラム開発に用いてデバック作業を容易にするための電子計測器を実現する。【解決手段】プログラム方式のターゲットデバイスの動作ステップと連動して、回路の電流、電圧、温度、振動、または、被照射光量、などの物理データ計測を行う計測部と、ソースコードのコンパイル時にデバッグ行を挿入するプ第１コンピュータと、ターゲットデバイスの出力からソースコード番号データを収集し、その収集に同期して物理データを収集するデータ収集器と、収集データを第２コンピュータに伝送する通信路と、を備え、デバッグ行は位置情報やデバッグ行を通過した時刻をデータ収集器へ出力する。また、ターゲットデバイスは、書込手続きの必要な半導体メモリを備え、それのアドレス宛てに、その書込手続きを含まない書込コードを出力する。【選択図】図１
2011145930.tif 000002
【特許請求の範囲】
【請求項１】
プログラム方式の電子情報処理装置であるターゲットデバイスの動作ステップと連動して、該ターゲットデバイスの、（１）指定された回路の電流、（２）指定された部位の電圧、（３）指定された部位の温度、（４）指定された部位の振動、または、（５）指定された部位の被照射光量、などの物理データ計測を行う計測部と、
前記ターゲットデバイスのプログラムであるソースコードにデバッグ行を挿入しコンパイルしデバッグ情報を外部に出力するプログラムを作成するプログラム処理コンピュータと、
上記プログラムを実行する前記ターゲットデバイスの出力からソースコードに挿入されたデバッグ情報を収集し記憶するとともに、該ソースコードのデバッグ行のデバッグ情報の収集に同期して上記計測部からの物理データを収集し記憶するデータ収集器と、
上記データ収集器から収集データをデータ処理コンピュータに伝送する通信路と、を備え、
上記デバッグ行は、ソースコード上の位置情報を示す情報を、上記データ収集器へ出力するものであることを特徴とする電子計測器。
【請求項２】
上記デバッグ行は、上記デバッグ行を通過した時刻情報を更に含むデバッグ情報を、上記デバッグデータとして出力する内容のものであることを特徴とする請求項１に記載の電子計測器。
【請求項３】
上記データ収集器は、上記収集データを圧縮して記憶するものであることを特徴とする請求項１あるいは２のいずれか１つに記載の電子計測器。
【請求項４】
上記データ収集器は、物理データ計測を行う計測部のデータを定期的に監視し、予め指定した値と上記物理データが一致した場合に上記物理データを計測した時刻を収集することを特徴とする請求項１から３のいずれか１つに記載の電子計測器。
【請求項５】
上記の予め指定した値は、上記物理データの値が増加する場合と減少する場合とで異なる値であることを特徴する請求項４に記載の電子計測器。
【請求項６】
上記ターゲットデバイスは、予め決められた書込み手続きの必要な半導体メモリを備え、
上記半導体メモリに割り当てられたアドレス宛てに、上記の書き込み手続きを含まない書込みコードを出力するデバッグ行を用いることを特徴とする請求項１から５のいずれか１つに記載の電子計測器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラム方式の電子情報処理装置において低消費電力化を図るためのプログラム開発に用いてデバック作業を容易にするための電子計測器に関している。
【背景技術】
【０００２】
一般に、プログラム方式の電子情報処理装置でデジタルデータ処理を含めた論理演算処理を行う場合、異なるプログラムで同じデジタルデータ処理ができることが知られている。また、異なるプログラムを用いた場合、消費電力に差がでることも知られている。このため、プログラムを作成する場合、プログラムのデバッグを行い、それに加えて、消費電力を抑制するためのプログラムの最適化が求められる場合が多い。通常のソフトウェア開発においては、これらの作業に多くの時間が費やされている。
【０００３】
本発明は、プログラムのデバッグと消費電力の最適化に関わっている。先ず、デバッグに関しては、以下の技術が知られている。
一般に、デバッグ作業では、デバッガ等が用いられるが、デバッガでは、プログラムに複数のブレークポイントを設けて、それぞれのブレークポイントの時点でその実行を一時的に中断し、それぞれの時点で記憶情報のダンプを行い、それぞれの時点での記憶情報を追跡することでプログラムの動作を検証することが行われる。
【０００４】
また、上記の電子情報処理装置の動作を中断せずにその動作を観測してデバッグを行なうトレーサとして、例えば以下のような開示がある。
【０００５】
特許文献１（実開平５−１７７３８号公報）には、簡易トレーサが開示されている。これは、ＣＰＵからの信号をＣＰＵ信号取出し回路で取り出し、比較基準入力設定器に予め設定しておいたデータと、取り出したデータ（アドレス／データ）を比較回路に入力して比較し、条件が一致したときにラッチトリガ決定回路に信号を送信し、ラッチトリガ決定回路で条件が一致した場合にラッチ回路に信号を送信し、ラッチ回路からの信号を受けた表示回路はその時点のデータ（ＣＰＵ内部状態）を表示する構成とすることで、簡単な回路で、ＣＰＵの内部状態をリアルタイムに表示、又はトレースを残すことができるようにしたものである。
【０００６】
また、特許文献２（特開平６−３４８５４０号公報）には、Ｃ言語の様な高級言語で記述されたプログラムをデバッグする時にトレーサを使用して、デバッグの効率を向上させるトレース回路とトレース方法が開示されている。これは、局所変数のベースポインタをラッチする回路とプログラム実行アドレスをラッチする回路とを有し、データアクセス時に前記ベースポインタラッチの内容と前記プログラム実行アドレスラッチの内容をアクセスしたアドレスやデータやステータスと共にトレースメモリに書込み、トレースメモリに記録されたアドレスとベースポインタの値から局所変数の変数オフセットを計算し、この変数オフセットとトレースメモリ中のプログラム実行アドレスを使って、デバッグ対象プログラムのデバッグ情報テーブルを検索し、トレースメモリに記録されたデータアクセス内容を局所変数と対応づけるものである。
【０００７】
また、特許文献３（特開平８−３３５１７７号公報）には、命令キャッシュを動作させたままプログラムトレースを行うプロセッサ動作観察方法及び装置が開示されている。ここで用いるＣＰＵは、命令キャッシュに命令アドレスで指定した命令が存在するか否かにかかわらず、その命令アドレスを、メモリアドレスレジスタを介してＣＰＵの外部バスに出力するものである。この外部バスは、アドレスバス、データバス、制御バスから成るもので、プログラムのデバッグ時はこの外部バスにプロセッサ動作観察装置を接続し、命令キャッシュがヒットする場合でも、ＣＰＵがアクセスした命令のあった外部のメモリのアドレスやバスステータスをプロセッサ動作観察装置のトレースメモリに格納する。このトレースメモリを読み出して、アドレスとバスステータスの内容を解析することにより、ＣＰＵが実行した命令の実行過程を追跡するものである。
【０００８】
また、特許文献４（特開２００１−３３１３４４号公報）には、システムプログラムの履歴情報により障害発生の経緯を知らせ、障害原因の解析がスムーズに行える組み込みシステムの障害情報トレーサ装置が開示されている。この障害情報トレーサ装置は、実行形式のプログラム、履歴情報を編成する実行履歴収集部、履歴情報を記憶させるトレースメモリ、その記憶内容を被試験装置にダンプさせるデバッグモニタから構成されるものである。また、被試験装置は、履歴情報を導入するデバッガソフト、履歴情報がファイルされたトレースメモリダンプ結果ファイル、プログラムのソースファイル群、障害解析のための該当箇所を出力するトレース情報解析プログラムから構成されるものである。
【０００９】
また、特許文献５（米国特許第６１６１２１６号明細書）には、ソースコードのデバッガを用いてソースコードをデバッグする方法と装置が記載されている。この場合、スクリプトジェネレータがソースコードの命令を受け取るようにする。スクリプトジェネレータは、ソースコード命令を読み取り、実行ブロックまたは制御境界を規定する命令の型に基づいて、トレースポイントの仕様を満たすデバッグスクリプトを自動的に生成する。このデバッグスクリプトをソースコードデバッガに引き渡す。
【００１０】
また、消費電力の最適化に関する従来例として、特に、動作時の回路電圧や装置温度のモニタリングに関しては、特許文献６（米国特許第６、５５６、９００号明細書）に、電圧、温度あるいはプロセス用のセンサーを付けた集積回路装置と、それを用いたモニタリング方法が開示されている。
【００１１】
特許文献１から４に記載の発明は、積極的にデバッグ用の情報を出力させるようにプログラムを改変するものではない点において本発明とは異なっている。また、特許文献５に記載の発明では、デバッグスクリプトを生成するスクリプトジェネレータを用いている点において、本発明とは異なっている。また、特許文献６にはプログラムの進行との関わり方が開示されていないため、これは本発明とは異なるものであることが明らかである。このため、特許文献１から６の開示を単に組み合わせても、本発明に想到することは不可能である。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】実開平５−１７７３８号公報
【特許文献２】特開平６−３４８５４０号公報
【特許文献３】特開平８−３３５１７７号公報
【特許文献４】特開２００１−３３１３４４号公報
【特許文献５】米国特許第６，１６１，２１６号明細書
【特許文献６】米国特許第６，５５６，９００号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１３】
プログラム方式の電子情報処理装置において、プログラムのデバッグをより効率的に行なうことに加えて、低発熱化つまり低消費電力化を図るためのプログラム開発についてもデバッグし易いようにする。
【課題を解決するための手段】
【００１４】
本発明の電子計測器は、プログラム方式の電子情報処理装置であるターゲットデバイスの動作ステップと連動して、該ターゲットデバイスの、（１）指定された回路の電流、（２）指定された部位の電圧、（３）指定された部位の温度、（４）指定された部位の振動、または、（５）指定された部位の被照射光量、などの物理データ計測を行う計測部と、
前記ターゲットデバイスのプログラムであるソースコードをコンパイルし、そのコンパイル時にデバッグ行を挿入するプログラム処理コンピュータ（以下、第１コンピュータ）と、
前記ターゲットデバイスの出力からソースコード番号データを収集し記憶するとともに、該ソースコード番号データの収集に同期して上記計測部からの物理データを収集し記憶するデータ収集器と、
上記データ収集器から収集データをデータ処理コンピュータ（以下、第２コンピュータ）に伝送する通信路と、を備え、
上記デバッグ行は、ソースコード上の位置情報を示す情報を、上記データ収集器へ出力するものである。つまり、上記デバッグ行は、ソースコード上の位置情報を示す情報を、前記ターゲットデバイスのアドレスバス上の予め決められたアドレス向けのデータとして出力するものである。第１コンピュータと第２コンピュータは、同一のコンピュータを時分割で使用するようにしてもよい。
【００１５】
また、上記デバッグ行は、上記デバッグデータとして上記デバッグ行を通過した時刻情報を含むデバッグ情報を出力する内容のものである。
【００１６】
また、上記データ収集器は、上記収集データを圧縮して記憶するものである。
【００１７】
また、上記データ収集器は、物理データ計測を行う計測部のデータを定期的に監視して、予め指定した値と上記物理データが一致した場合に、上記物理データを計測した時刻を収集する。これによって、データ量を抑制することができる。
【００１８】
また、上記の予め指定した値は、上記物理データの値が増加する場合と減少する場合とで異なる値を用いることで、ロジック電圧レベルの高電圧と低電圧を設定することができる。
【００１９】
上記ターゲットデバイスは、予め決められた書込手続きの必要な半導体メモリを備え、上記半導体メモリに割り当てられたアドレス宛てに、上記の書込み手続きを含まない書込コードを出力するデバッグ行を用いることで、デバッグデータを出力するアドレス数を増大させることができる。
【００２０】
また、前記ターゲットデバイスのアドレスバスの信号が予め決められた少なくとも１つのアドレスに一致する場合に、上記ソースコード番号データと上記計測部からのデータを収集し記憶するようにしてもよい。
【発明の効果】
【００２１】
プログラム処理を中断することなく、デバッグ作業を進めることができ、同時に、低発熱化するためのきめ細かなプログラム開発ができるようになり、処理を中断する従来例に比べて、より実際の動作に即した状態でプログラム開発を行うことができるようになる。
【００２２】
また、デバッグ行やモニタリング行を残したままでも、実際のプログラム処理を何らの支障も伴う事無く行うことができるので、検証したプログラムを実際の処理に適用することができるようになる。
【００２３】
さらに、上記の様にプログラム処理速度を低下させることなくデバッグ作業を進めることができるため、従来に比べて多数のデバッグ行やモニタリング点をソースコードに挿入することができるようになり、プログラム開発作業をより容易にすることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の電子計測器の例を示す図である。
【図２】本発明の電子計測器を用いたテスト支援システム内での処理の流れを示す図である。
【図３】本発明の電子計測器を用いた解析の流れを示す図である。
【図４】本発明の電子計測器を用いてデバッグする場合のフローチャートを示す図である。
【発明を実施するための最良の形態】
【００２５】
以下に、この発明の実施の形態を図面に基づいて詳細に説明する。以下の説明においては、同じ機能あるいは類似の機能を備えた装置に、特別な理由がない場合には、同じ符号を用いるものとする。
【実施例１】
【００２６】
図１は、本発明の電子計測器１００を示す図で、データ収集器１でターゲットデバイス３からのトレースデータ４を収集するための構成を示すブロック図である。ターゲットデバイス３には、トレースデータを出力するためのデバッグ行を付けたプログラムを流す。このデバッグ行は、ソースコード上の位置情報を示す情報を、前記ターゲットデバイスのアドレスバス上の予め決められたアドレス向けのデータとして出力するものである。つまり、このトレースデータは、実行位置を示す指標、例えばソースコード番号やソースコード位置であり、ターゲットデバイスの、例えば出力ポート用のアドレスや特定のアドレスに出力される。この出力は、データ収集器１のＦＰＧＡ（フィールドプロラマブルゲートアレイ）で構成したデジタル信号処理器１Ａに入力される。デジタル信号処理器１Ａは、高速データ入力を実現するためのフロントエンドプロセッサであって、高速データ入力をする必要が無い場合は、デジタル信号処理器（ＤＳＰ）１Ｂに直接入力することも可能である。デジタル信号処理器１Ｂは、通常のマイクロプロセッサでよく、信号処理とデータの記憶や照合に使用する。
【００２７】
また、デジタル信号処理器１Ａ、あるいはデジタル信号処理器１Ｂで、例えば、入力データの選択処理や簡単な加工などを行う。つまり、例えば、入力データに履歴特性を設定したもので、閾値１（例えば、ロジック電圧レベルの高電圧側）を超えて増加した場合や、閾値２（例えば、ロジック電圧レベル低電圧側）以下に減少する場合にデータ取込みを行うものである。
【００２８】
データの記憶は、メモリ１Ｃで行い、デジタル信号処理器１Ｂからの要請に応じて、外部出力ポート１Ｄを通じて出力する。メモリ１Ｃが充分に大きな容量を持つ場合には、この出力を計測後に行うことができる。この際、必要に応じてメモリ内容をデータ圧縮を施して記憶することにより、効率的な記憶とすることができる。また、外部出力ポート１Ｄ用には、例えば、ＵＳＢ（ユニバーサルシリアルバス）やイーサネット（登録商標）やＩＥＥＥ１３９４などの高速回線を用いることができる。データ収集器１としては、大容量記憶装置を備えた通常のパーソナルコンピュータ（ＰＣ）を用いることもできる。この場合は、上記ＵＳＢ端子を用いる必要がない。
【００２９】
上記トレース行をソースプログラムへ挿入するに当たっては、ＰＣ（第１コンピュータ２０）を用いて自動的に挿入することは容易である。また、ソースプログラムのコンパイル時にトレース行を挿入する様にしてもよい。また、出力内容としては、実行位置を示す指標であればよく、ソースプログラムの行番号やサブルーチン名でもよい。また、トレース行を通過する時刻も出力するようにするが、出力文字数を少なくしたい場合は、デジタル信号処理器１Ｂで時刻情報を付加するようにしてもよい。
【００３０】
ターゲットデバイス３には、各種物理データ、例えば、電圧、電流、温度、振動、光量、気圧、磁界強度などのデータを入力する計測回路２を備える。この入力において、上記物理データがアナログデータであればデジタルデータに変換する。
【００３１】
ここで電圧や電流は、例えば、ターゲットデバイス３に設けられたテストポイントや特にそのターゲットデバイス３上の半導体チップに設けられたモニタ素子での電圧や電流である。
また、温度は、ターゲットデバイス３の基板や半導体チップ上に設けられた温度センサーやそのターゲットデバイス３上の半導体チップに設けられた温度モニタによる温度である。
また、振動については、ターゲットデバイス３の基板や半導体チップ上に設けられた加速度センサーやマイクロフォンである。
光量は、光センサーで計測するが、遠赤外線からガンマ線までどの光センサーを用いてもよく、使用目的によって決定すればよい。
気圧センサーの場合は、例えば、ターゲットデバイス３が例えば減圧雰囲気で使用される場合には、熱放散が起こりづらくなりデバイス温度が上昇しやすくなる場合に、モニタデータとして活用することができる。
また、ターゲットデバイス３が強磁界中で使用される場合は、ターゲットデバイス３に磁界センサーを設けておくことが望ましい。磁界強度が変化する際には、ターゲットデバイス３の回路中に誘導電流が流れることがあるためである。
【００３２】
計測回路２からデジタル信号処理器１Ａへは常時デジタルデータを供給し、デジタル信号処理器１Ａは、そのデータの入力タイミング時に、トレースデータと共に、実質的に同時に上記物理データを取り込むものである。上記のデータ入力タイミング時は、例えば、上記トレースデータの出力時である。
【実施例２】
【００３３】
次に、本発明の電子計測器１００を用いたデバッグ作業について、図２、図３を参照して説明する。
【００３４】
図２は、電子計測器１００を用いたテスト支援システム内での処理の流れを示すフローチャートである。図２（Ａ）では、ソースコードを解析し、例えば、関数の出入りや分岐処理の箇所に、自動挿入してコンパイルする。デバッグ行の数は、プログラムの実行に影響がない程度の数であることが望ましい。このデバッグ行は、図１に示すトレースデータ４を出力するためのものである。図２（Ｂ）では、デバッグ行の実行を検知してトレースデータを物理データと共に記録する。図２（Ｃ）で、記録したトレースデータ４を解析し、ソースコードやテストパターンと照合し、プログラム実行状況や検証結果、測定した物理データをグラフィカルに表示する。
【００３５】
トレースデータの解析で注目する点は、例えば、プログラムの進行に伴う変動において、電圧変動や電流変動が許容範囲にあるか、動作温度が許容範囲にあるか、また温度分布に偏りはあるか、などである。また、外部の擾乱、例えば、急激な振動が加わった場合、赤外が照射された場合、気圧の急激な変動があった場合、磁界強度の急激な低下があった場合にもそれぞれの物理センサーの出力をトレースデータ４と共に記録する。また、１つのテストポイントの電圧と電流の積を蓄積モニタすることで、モニタ部分の消費電力を知ることができる。ターゲットデバイスが単一電源のものであれば、その電源ラインにテストポイントを設け電圧と電流をモニタするようにしてその積の総和をとるようにすれば、ターゲットデバイスの消費電力を知ることができる。
【００３６】
また、図２（Ｄ）では、プログラムを目的に沿うように変更して再実行する。例えば、低消費電力化を図る場合は、上記の様に電源ラインにおけるモニタ結果が最低の消費電力を示すようにプログラムを修正する。このように処理することにより、評価結果をオンラインで保存し、バージョン毎に管理することが可能になる。また、検証結果を帳票出力することで、製品の検査証明のドキュメントとして利用できるようにもなる。
【００３７】
図３は、本発明の電子計測器１００を用いたデバッグのみを行うための解析の流れを示す図である。図３（Ａ）では、ターゲットデバイス上でプログラムを実行する。図３（Ｂ）では、予めプログラムに組み込んでおいたデバッグ行が実行されトレースデータが出力されたことをデジタル信号処理器１Ａが検知し、出力されたトレースデータを収集してデータ収集器１を通じて第２コンピュータ２１へ転送する。図３（Ｃ）では、潜在する問題を素早く検出し分析することができるようにするために、プログラムの実行状況を視覚的に捕らえるように表示する。図３（Ｄ）では、プログラムに問題が見つかれば、修正し再度実行する。図３（Ｅ）では、問題が無くなれば完了するが、その際、使用したデータはそのままプログラムの品質を保証するドキュメントとなる。
【００３８】
以下に、処理の流れを順に示す。
（１）デバッグ行の埋め込み
（図２（Ａ））各種ターゲットのソースコードに対して、デバッグ行を埋め込む。
デバッグ行の埋め込みに当たって、アドレスとデータの組み合わせにより、デバッグ行がソースコードのどの箇所に埋め込まれたかを認識できるように埋め込む。例えばＣ言語の場合、ポイントとなる情報は、一関数の先頭と最後、分岐命令の直後、変数の情報などである。
この埋め込み作業は、第１コンピュータ２０上で、専用アプリケーションを用いて実行する。他の独立したコンピュータ上で行ってもよいことは明らかである。
【００３９】
（２）  コンパイル・動作確認
デバッグ行を埋め込んだソースコードをコンパイルし、このコンパイルされたソースコードをターゲットデバイスで走らせ、そのシーケンスの確認を実際の動作に即して行う（図３（Ａ））。
【００４０】
（３）  出力されるコードの抽出とＰＣへの転送（図２（Ｂ）、図３（Ｂ））
データ収集器１は、デバッグ行でターゲットデバイス３から出力されるトレースデータ４を取り込み、第２コンピュータ２１への転送を行う。又、取り込み開始や取り込み停止などの操作は第２コンピュータ２１上から専用アプリケーションを用いて行う。また、ターゲットデバイス３から出力されるデータのすべては取り込む必要がない場合は、第２コンピュータ２１からデジタル信号処理器１Ａに、取り込むべきアドレスを設定して選択する。このデジタル信号処理器１Ａは、高速でデータ処理を行なう必要があることから、マルチコアの汎用マイクロプロセッサやＦＰＧＡを用いて構成した専用のデジタル信号処理器であることが望ましい。
また、デジタル信号処理器１Ａは、ＣＰＵの外部バスに出力される波形を取り込む際に、情報が出力されるアドレスのデータを、ターゲットデバイスの、あるいはデータ収集器１のタイムスタンプを付加してメモリ４に蓄える。―定量メモリにデータが蓄積された時に順次、解析装置（ＰＣ７）へとデータを転送する。あるいは、ＰＣ７からの要求に従って転送する。
収集する情報としては、例えば、（１）プログラムの、どの箇所が、いつ実行されたか、また、（２）プログラムの、どの部分で指定された変数に設定された値か、等が分かる情報である。
【００４１】
（４）出力データの解析（図２（Ｃ））
次に、データ収集器１が第２コンピュータ２１へ転送したデータ（以下、ログデータ）を、第２コンピュータ２１上で専用アプリケーシヨンで解析する。この解析は、他のコンピュータでも行なうことができることは明らかであるが、この実施例では、なるべく少ない装置で処理する構成としている。
この解析については、図３（Ｃ）に示す様に、プログラムの実行状況を視覚的に捕らえ、潜在する問題を素早く検出・分析できるように表示することが望ましい。
ここでの解析により、例えば次の事項について明らかにすることができる。
（イ）プログラムの実行順番を確認する事により、設計フロ―との相違を確認でき、異常個所の発見と正常に動作していることの証明が可能となる。
（ロ）プログラムの実行時のタイムスタンプ情報から、それぞれのデバッグ行間で処理に掛かった時間や、その処理が実行される間隔などのプログラムのリアルタイム性が、異常動作または正常動作の結果であるかどうかの判別が可能となる。
【００４２】
（図２（Ｄ））上記の解析結果からソースコードヘのフィードバックを繰り返し行なうことで、プログラム作成が完了する。つまり、ユーザーは、解析結果を自分の設計思想と照らし合わせて分析し、異常個所の修正などを行いソースコードを変更し、上記（１）〜（４）を実行して設計思想との整合性を高めていく。また、図３（Ｅ）に示す様に、問題が無くなれば、使用したデータをそのままプログラムの品質を保証するドキュメントとすることもできる。
【００４３】
上記において、ターゲットデバイス３からトレースデータ４を出力するに当たっては、ターゲットデバイス３の出力ポートを用いることができるが、ターゲットデバイス３のコントロールバスやアドレスバスあるいはデータバスからデジタル信号処理器１Ａに入力するようにすることによって、これらのバスを通じて出力することもできる。
この場合には、ターゲットデバイス３用のソースコードに対して、デバッグ作業以外では通常ターゲットデバイスが使用しない外部バスに出力するためのアドレスにデータを書込むコード（以下、トレースコード）を埋め込む。
上記トレースコードの埋め込みに当たっては、アドレスとデータの組み合わせにより、トレースコードがソースコードのどの箇所に埋め込まれたかを認識できるように埋め込む。例えばＣ言語の場合、ポイントとなる情報は、関数の先頭と最後、分岐命令の直後、変数の情報などである。
この埋め込み作業は、第１コンピュータ上で、専用アプリケーションを用いて実行する。他の独立したコンピュータ上で行ってもよいことは明らかである。
【００４４】
この方法の特長として、使用しない外部バスのアドレスに対しての書込みであることから、ＣＰＵへの負荷を少なくしてトレースコードを実行できる点を挙げることができる。又、トレースコードの出力では、アドレスとデータの組み合わせでデバッグ行の位置を判別できるようにすることで、デバッグ行を埋め込める場所が従来の場合に比べて格段に増加する。
【００４５】
また、上記ターゲットデバイスが、フラッシュメモリやＥＥＰＲＯＭなどの、書込みの際に予め決められた書込み手続きの必要な半導体メモリを備える場合には、その半導体メモリに実際には書込みを行なわないが書込みを行なうように振る舞う擬似書込みを行なうようにすることで、上記半導体メモリに割り当てたアドレスを、上記トレースコードを出力するためにも用いることができる。この擬似書込みを行なうには、上記予め決められた書込み手続きから外れた書込み手続きを次の様に行なう。
【００４６】
書込み手続きは、例えば、ＪＥＤＥＣ（半導体技術協会）標準型コマンド互換方式のフラッシュメモリの場合は、予め決められたアドレスに、コマンドを発行することで行われる。このコマンドは、データバス上の２進データである。例えば１６ビットのデータバスの場合、※を１６進表示で０からＦまでの任意の値として、
※※２９、※※３０、※※８０、※※９０、※※Ａ０、※※Ｂ０、※※Ｆ０を、
アドレス＝（※※※※※※Ａ４、※※※※※※５４）、のデータとして、書込むことで書込手続きが完了する。
【００４７】
このメモリのいかなるアドレス値に対しても、この書込みが行なわれないようにするためには、上記のデータが発生しないようにすればよい事は明らかである。例えば、１６ビットデータから上記の値を除いた集合を用いて、上記トレースコードの出力を行えばよい。必要に応じてデータ変換を行う。特に簡単な例としては、例えば、※※００、を用いてアスキーデータとして出力することで、実際には書込みを行なわない擬似書込みとすることができる。
【００４８】
上記の埋め込みは、従来のＵＡＲＴ（Universal Asynchronous Receiver Transmitter）等の通信バスヘ情報を出力する方法に比べて、ＣＰＵへの負荷を軽減でき、また、ＧＰＩＯ（汎用ポート）へ出力する方法に比べて、埋め込める情報を増やすことができる、また、内部メモリヘ保存する方法では、エミュレーター等の接続が必須で、使用場面が限られるが、本発明では、実機を用いてデバッグすることができる。
【実施例３】
【００４９】
プログラムを開発するに当たってのフローチャート例を図７に示す。
図１に示すターゲットデバイス３には、計測しようとする物理データを出力するセンサーを適切に設けてあるものとする。
特に、電源ラインの電圧と電流とが計測できる場合は、これらの積の総和をとることで消費電力を求め、適用するプログラムＰ１について、デバッグと低消費電力化を行うことができる。
また、特定の発熱部分に温度センサーを設けておくことで、その点の温度が、許容範囲を超えない様に、デバッグと低消費電力化を行うことができる。
また、例えばターゲットデバイス３に圧電効果を利用した素子を用いている場合に、ターゲットデバイス３に加速度センサーを設けてそのデータを用いることで、最低動作電圧の最適化するためのデバッグを行うことができる。
また、ターゲットデバイス３に赤外線が照射される環境では、赤外線光センサーを設けてそのデータを用いることで、赤外線照射化での最低動作電圧の最適化するためのデバッグを行うことができる。
また、ターゲットデバイス３の近傍に気圧センサーを設け、そのデータを用いる場合は、気圧変化によって生じる熱放散効率の変化によるデバイス温度の変化やキャパシタの容量変化に伴う電圧変動による動作規格の逸脱を避けるためのデバッグを行うことができる。
また、ターゲットデバイス３が変動強磁界中で使用される場合は、回路中に誘導電流が流れて、その動作限界付近では、プログラム動作が影響を受ける場合がある。このため、磁界センサーを設けてそのデータを用いることで、変動強磁界中で使用するターゲットデバイス３の限界電圧を拡大するためのデバッグを行うことができる。
【００５０】
デバッグしようとするプログラムＰ１を、Ｐ２で機能ごとに分解し、Ｐ３でそれぞれの機能の分類の中で各モジュールに分割する。Ｐ２０でこの機能ごとの分解に沿って機能テスト仕様書が作られる。例えばモジュールＡについては、Ｐ４で関数毎に分割する。例えば関数Ａでは、Ｐ５で関数を設計する。この関数の設計では、データ構造や制御構造の決定も行なう。Ｐ６でこの設計をもとにソースコードを作成する。次に、Ｐ７で本発明の特徴の一つであるトレースコードの埋め込みを行なう。この埋め込みに沿って、Ｐ２１でモジュールテスト仕様書が作られる。
【００５１】
トレースコードの埋め込まれたソースコードは、Ｐ８で統合される。動作検証においては、必ずしも全てのモジュールや全ての機能部分を揃える必要はなく、動作可能となったものから検証作業を行なうこともできる。Ｐ９で上記の統合されたソースコードが実行されると、各トレースコードが予定のアドレスに出力されるので、これらを本発明のデータ収集器１で収集する。この際、計測しようとする物理データも合わせて収集する。分類することで、上記の単体テスト、結合テスト、あるいは総合テストを同時に行なった場合と等価な結果を得ることができる。また、Ｐ２２で単体テスト結果レポート、Ｐ２３で結合テスト結果レポート、Ｐ２４で総合テスト結果レポートを得ることができる。また、プログラムを変更した場合は、その検証結果についてソフト変更検証レポートが発行される。
【００５２】
このように、本発明のデータ収集器１を用いることによって、検証作業を一括で行なうことができ、しかも実際に用いる状態で検証作業を行なうことができるので、最適化やデバッグ作業が効率的になり、より容易に検証を行なうことができるようになる。
【産業上の利用可能性】
【００５３】
中継器２０とＣＰＵの外部メモリバスとの接続には、専用のフレキシブルプリント基板（ＦＰＣ：Flexible Printed Circuits）で半田付けして接続することで、あるいは、テスト用のソケットを設けてそれを通じて接続することで、インピーダンスの低下を抑制して電気的に接続することができる。高速の外部メモリバスでない場合は、ＣＰＵと基板の接続にソケットを用い、そのソケットに配線引き出し用下駄履き状ソケットを用いることもできる。また、電気光学結晶を用いて光学的にデジタル信号を抽出することも可能である。
【００５４】
ソースコードに挿入するデバッグ行のコメント部分に、所定の書式で、別のデバッグ行からの所要時間などの設計目標値を追記しておき、この目標値と実際に収集したデータとを比較してレポートする機能を設けることで、デバッグ作業をより効率化できる。この機能を発展させて、ソースコードにおいて、実行コードにならないコメント部分に、設計段階で、各種の設計目標値を設計者が追記しておくことで、この目標値と実際のデータとを比較することができる。この機能を活用することで自動テスト判定システムが実現できる。
【符号の説明】
【００５５】
１  データ収集器
１Ａ  デジタル信号処理器
１Ｂ  デジタル信号処理器
１Ｃ  メモリ
１Ｄ  外部出力ポート
２  計測回路
３  ターゲットデバイス
４  トレースデータ
５  物理データ
６  計測データ
７  収集データ
８  記憶データ
９  読出しデータ
１０  出力データ
２０  第１コンピュータ
２１  第２コンピュータ
１００  データ収集器１
【図１】
2011145930.tif 000003
【図２】
2011145930.tif 000004
【図３】
2011145930.tif 000005
【図４】
2011145930.tif 000006