JP2015035158A - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP2015035158A
JP2015035158A JP2013166536A JP2013166536A JP2015035158A JP 2015035158 A JP2015035158 A JP 2015035158A JP 2013166536 A JP2013166536 A JP 2013166536A JP 2013166536 A JP2013166536 A JP 2013166536A JP 2015035158 A JP2015035158 A JP 2015035158A
Authority
JP
Japan
Prior art keywords
time
timer
log
command
control module
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.)
Pending
Application number
JP2013166536A
Other languages
English (en)
Inventor
尚志 畑
Hisashi Hata
尚志 畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2013166536A priority Critical patent/JP2015035158A/ja
Priority to US14/452,344 priority patent/US9804944B2/en
Priority to CN201410389864.7A priority patent/CN104346253A/zh
Publication of JP2015035158A publication Critical patent/JP2015035158A/ja
Priority to US15/786,708 priority patent/US20180039557A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】距離的に離れた場所に複数の制御モジュールが分散して実装されるシステムでもシステム全体でソフトウェアの分析を可能にする。
【解決手段】複数の制御モジュールで構成されるデータ処理システムにおいて、データ処理システム全体で共通の時間をカウントするタイマを夫々の制御モジュールに導入し、上位の制御モジュールのタイマによる時刻情報によって下位の制御モジュールのタイマによる時刻情報を同期させる時間同期処理を採用する。例えば、アプリケーション処理に際して、ログを取得すると同時にタイマの時刻を用いたタイムスタンプを付加するログ取得機能を実装する。
【選択図】図1

Description

本発明は、通信経路で接続されている複数の制御モジュールによる共同的なデータ処理について統合的な評価を可能にするデータ処理システムに関し、例えば車載ネットワークに複数のECU(エレクトロニック・コントロール・ユニット)が接続された車載電子制御システムに適用して有効な技術に関する。
自動車など様々な機器の電子化によって制御モジュールの総数が増加し、組込みシステムの開発工数が上昇している。この為、ソフトウェアの開発プロセスの見直しが行われている。組込みシステムの開発工程を見たときにシステムの実機検証の工程がシミュレーション主体になっており、この点を改善しようとするものとして、特許文献1乃至特許文献3がある。
特許文献1及び特許文献2は、データバス、アドレスバスを持つプロセッサのソフトウェアを分析するためのシステムについて提案している。当該文献はソフトウェアの任意の場所にアドレス空間の定められた番地にタグ情報を出力するタグステートメントを挿入する。次にプロセッサの外部出力バスにデバッグ装置を接続しプロセッサのバスアクセスを監視する、というものである。ソフトウェアの実行によりタグ情報の出力が行われるとデバッグ装置はバスの監視情報からタグ情報を判別し、取得したタグ情報と時間を記録する。記録したタグ情報と時間を計算手段に移動し解析を行うことでソフトウェアの分析を行う。
特許文献3は、複数のプロセッサで動作するソフトウェアを分析するためのシステムについて提案する。ここで提案されるシステムは、観測対象とする画像処理装置とログ解析を行う外部装置からなる。画像処理装置は1つのメインCPUと1つ以上のサブCPUで構成される。メインCPUはサブCPUに命令を発行し発行時間を記録する。サブCPUは命令の実行時間を記録する。外部装置はメインCPUとサブCPUのログを回収し、命令発行時間と実行時間からメインCPUとサブCPUの動作状況を分析する。
特開2010−204934号公報 特開平09−218800号公報 特開2012−190197号公報
本発明者は、ハードウェアの側面から開発プロセスについて新たな提案を行おうとするものである。実機でソフトウェア評価を行うという点に関し、従来技術は一度に分析できるCPUの数に制限があり、また、ネットワーク構成に制限がある、ことが明らかにされた。
例えば特許文献1及び特許文献2は複数のモジュールを接続することを想定していない。複数接続する場合でもデバッグ装置のポート数などの物理的利用により接続数が制限される。ポート数に問題が無かったとしてもモジュール間の距離が離れるとデバッグ装置との配線長が増えるため接続することが難しくなる。
特許文献3ではメインCPUの命令発行時間を起点に時間を取得するため、メインCPUにサブCPUが繋がる構成(スター型)しか対応できない、サブCPUの下にサブサブCPUを接続するような構成(デイジーチェーン)には適用不可能である。メインCPUとサブCPUのクロック発振器が異なると周波数誤差によりタイマの値がずれるためメインCPUとサブCPUを物理的に遠くに配置することができない。しかも、そのようなずれの修正について検討されていない。
上記並びにその他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、複数の制御モジュールで構成されるデータ処理システムにおいて、データ処理システム全体で共通の時間をカウントするタイマを夫々の制御モジュールに導入し、上位の制御モジュールのタイマによる時刻情報によって下位の制御モジュールのタイマによる時刻情報を同期させる時間同期処理を採用する。例えばアプリケーション処理に際して、ログを取得すると同時にタイマの時刻を用いたタイムスタンプを付加するログ取得機能を実装する。各モジュールが出力したログを集めてマージすることでシステム全体で動作するソフトウェアの分析が可能になる。
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、距離的に離れた場所に複数の制御モジュールが分散して実装されるシステムでもシステム全体でソフトウェアの分析が可能になる。
図1はデータ処理システムの基本的な構成を例示するブロック図である。 図2はソフトウェア分析の評価手順を例示する説明図である。 図3はモジュールの構成を例示するブロック図である。 図4はSOCの構成を例示するブロック図である。 図5は実施の形態1の実機システムの構成を例示するブロック図である。 図6は第1のモジュールのソフトウェアのステートチャートである。 図7は第2のモジュールのソフトウェアのステートチャートである。 図8は第3のモジュールのソフトウェアのステートチャートである。 図9は実機評価の手順を例示するフローチャートである。 図10は時間同期処理の通信遅延計測の動作タイミング図である。 図11は時間時処理のクロック誤差補正動作タイミング図である。 図12はモジュール間の時間同期処理の関係を例示する説明図である。 図13はタグテーブルの構成を例示する説明図である。 図14は単体ログセットのマージ処理を例示する説明図である。 図15はシステムログを例示する説明図である。 図16は実施の形態1のシステムログのシーケンス図である。 図17は実施の形態2のシステム評価環境を例示するシステム構成図である。 図18は実施の形態2のシステムログの生成動作を例示するシーケンス図である。 図19は実施の形態3の全体構成を例示するブロック図である。 図20は第2のモジュール500−2におけるアプリケーション処理S401とクロック誤差補正S405の関係を例示する大差タイミング図である。 図21は自動車のような多数のモジュールがネットワーク構成されるシステムへの適用例を示すシステム構成図である。
1.実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<複数の制御モジュール間におけるタイマを用いた時間同期処理>
データ処理システム(201)は、相互に通信可能の複数個の制御モジュール(500−1,500−2,500−3)を有する。このデータ処理システムは、前記制御モジュールは、通信インタフェース(405,407)及びタイマ(404)を含み、自らが実行するプログラム記述にしたがって、所要のアプリケーション処理、単体ログ生成処理、及び前記タイマによる時刻を同期させる時間同期処理を行う。前記単体ログ生成処理は、自らが実行するプログラム中で指定されたテストポイントでログ情報と前記タイマの時刻情報に基づくタイムスタンプを生成し、それらを当該テストポイントの属性情報と共に蓄積して単体ログを生成する処理である。前記時間同期処理は、上位の制御モジュールのタイマで得られる時刻情報を用いて、下位の制御モジュールのタイマで得られる時刻情報を同期させる処理である。
これによれば、距離的に離れた場所に複数の制御モジュールが分散していても、夫々の制御モジュールで生成される単体ログのタイムスタンプの時刻を同一時間軸上で同期した時刻とすることができる。したがって、制御モジュール単位の単体ログを夫々のタイムススタンプを指標にマージすることによってデータ処理システム全体についてのシステムログを容易に得ることが可能になる。
〔2〕<上位及び下位の制御モジュールのタイマの時刻差に基づく補正>
項1において、前記時間同期処理は、下位の制御モジュールが上位の制御モジュールからそのタイマの時刻の情報(T1,T5)を受け取り、受け取った時刻の情報、及び当該時刻の情報を受け取ったときの自らのタイマの時刻の情報(T2,T6)等(T3,T4、T7,T8)に基づいて、自らのタイマの時刻を補正する処理である。
これによれば、相互に下位の制御モジュールのタイマの時刻を上位の制御モジュールのタイマの時刻に同期させることが可能であるから、時刻を動作させることができる制御モジュールの数やネットワーク形態に理論上の制約を受けない。
〔3〕<タイマそれ自体に時刻書き換えを行ってタイマの時刻補正を行う>
項2において、前記タイマの時刻を補正する処理は、自らのタイマそれ自体に時刻書き換えを行う処理である。
これにより、タイマの誤差を補正すればタイマから得られた時刻をそのままタイムスタンプに用いることが可能になる。
〔4〕<タイマから得られる時刻情報を補正してタイマの時刻補正を行う>
項2において、前記タイマの時刻を補正する処理は、タイムスタンプの生成に当たって自らのタイマから得られる時刻情報を補正する処理である。
これにより、タイマそれ自他に対して時刻の書き換え若しくはプリセットを要しない。但し、タイマから得られた時刻をその都度補正してタイムスタンプに用いることが必要である。
〔5〕<通信遅延を取得してタイマの時刻誤差を演算>
項2において、上位の制御モジュールから下位の制御モジュールまでの通信に要する通信遅延(Tdelay)を取得し、実際の送信時刻から受信時刻の差から通信遅延を減算してタイマの時刻誤差(Tdiff,Tcd)を演算し、この時間差を用いてタイマの時刻を補正する。
これによれば、通信遅延差を考慮して、容易にタイマの時刻補正を行うことができる。
〔6〕<外部インタフェース>
項1において、外部インタフェース回路(405,407)は、第1コマンド(Sync)受信時に自らのタイマから時刻情報を取得する制御を行い、前記第1コマンド出力時のタイマの時刻情報を伴って第2コマンド(Followup)を出力し、第3コマンド(DelayReq)を出力するとき自らのタイマの時刻情報を取得する制御を行い、前記第3コマンドを受信したときの自らのタイマの時刻情報を伴って第4コマンド(DelayResp)を出力する。
これによれば、タイマの時刻補正の用いるタイマが刻む時刻を、所定のコマンドの送受信に伴って外部インタフェース回路による制御に基づいて対応するタイマから取得することができる。
〔7〕<通信遅延を取得してタイマの時刻誤差を演算>
項6において、下位の制御モジュールは、上位の制御モジュールからの第1コマンド受信時に自らのタイマから第1の時刻情報(T2)を取得すると共に、当該上位の制御モジュールが第2コマンドに伴って出力する前記第1コマンド出力時の上位タイマの第2の時刻情報(T1)を取得し、更に、第3コマンドを前記上位の制御モジュールに出力するとき自らのタイマの第3の時刻情報(T3)を取得し、前記第3のコマンドを受信した上位の制御モジュールが前記第4コマンドに伴って出力する前記第3コマンドを受信したときの当該上位のタイマの第4の時刻情報(T4)を取得し、第4の時刻情報と第1の時刻情報との差分と、第3の時刻情報と第2の時刻情報との差分との和の半分の時間を演算し、演算された情報を、上位の制御モジュールから下位の制御モジュールまでの通信に要する通信遅延として取得し、実際の送信時刻から受信時刻の差から通信遅延を減算してタイマの時刻誤差を演算し、この時間差を用いてタイマの時刻を補正する。
これによれば、下位の制御モジュールは自らのタイマによる時刻を、上位の制御モジュールのタイマの時刻に容易に同期させることができる。
〔8〕<コマンド送受信と時刻情報を取得する外部インタフェースの同期エンジン>
項7において、前記外部インタフェース回路は、前記第1コマンドを受信したとき自らのタイマから第1の時刻情報を取得し、前記第2コマンドに伴って供給される第2の時刻情報を取得し、第3コマンドを出力するとき自らのタイマの第3の時刻情報を取得し、前記第4コマンドに伴って供給される第4の時刻情報を取得する、同期制御回路を有する。
これによれば、中央処理装置に全ての負担をかけずに第1乃至第4の時刻情報を取得することができる。尚、第1乃至第4の時刻情報の取得に割り込みなどの中央処理装置の制御を一部若しくは全部介在させる方式を採用することは妨げられない。
〔9〕<中央処理装置による前記通信遅延及び前記時刻誤差の演算>
項8において、前記中央処理装置は、前記外部インタフェース回路が取得した第1乃至第4の時刻情報を利用して前記通信遅延及び前記時刻誤差の演算を行う。
これによれば、前記通信遅延及び前記時刻誤の演算に特別な演算回路を用意することを要しない。
〔10〕<アプリケーション処理の開始前に通信遅延測定>
項9において、前記中央処理装置は、アプリケーション処理(S401)の開始前に通信遅延を測定し、測定した通信遅延を用いてタイマの時刻補正を初期的行う処理(S400)を制御する。
これによれば、夫々の制御モジュールで異なるクロック発振器をタイマのクロックに用いるこがネットワーク構成の自由度を確保する上で望ましいという事情を考慮すると、当初非同期のタイマ時刻をアプリケーション処理に先立って同期化することが、その後の個別ログの生成の効率化に資することができる。
〔11〕<タイマ割り込みによる、通信遅延を用いたクロック誤差補正>
項10において、前記中央処理装置は、前記初期的なタイマ時刻補正の後、所定インターバルで発生するタイマ割り込み(S602−2)に基づいて、既に測定された前記通信遅延を用いてタイマの時刻補正を行う処理を制御する。
これによれば、夫々の制御モジュールで異なるクロック発振器をタイマのクロックに用いるとき、タイマの計数に用いるクロックの全てが同じ周波数で発振することが望ましいが、実際は発振周波数に誤差が含まれるため、タイマの時刻同期が徐々にずれた状態を逐次補正して、無視しえない誤差の発生を未然に防止することができる。
〔12〕<属性情報>
項1において、前記テストポイントの属性情報は、制御モジュールに割り当てられた第1の識別情報、制御モジュールで実行されるプログラム上のテストポイントの位置を示す第2の識別情報、及びテストポイントにおいける処理を示す第3の識別情報である。
これにより、制御モジュール毎に取得した単位ログの情報をテストポイント毎に容易に識別することが可能になる。
〔13〕<ログ解析回路;単体ログを回収してテストポイントを指標にマージする>
請求項1において、データ処理システムはログ解析回路を更に有する。前記ログ解析回路(301)は、前記制御モジュール毎に生成された単体ログを回収し、回収した夫々の単体ログに含まれるタイムスタンプを指標にテストポイントの属性情報、ログ情報、及びタイムスタンプをマージすることによって単体ログの統合を行い、システムログを生成する。
これによれば、単体ログからシステムログを容易に生成することでき、データ処理システム全体のソフトウェア分析を効率化することができる。
〔14〕<制御モジュールは車載ECU>
項1において、前記制御モジュールは車載ネットワークに接続された車載ECUを構成する。
これによれば、車載ECUの車載ネットワーク(802,803,804)全体におけるソフトウェアの開発段階での評価はもとより、特定の実機における故障の評価を容易に行うことが可能になり、車載ECUシステムの信頼性向上に資することができる。
〔15〕<制御モジュールは実機システムとエミュレータ>
前記複数の制御モジュールは、エミュレーション対象とされる実機(605)と、前記実機をエミュレーションするエミュレータ(604,606)である。
これによれば、実機に対するエミュレータを用いた評価と共に、システムログを用いたタイミング評価を行うことができる。即ち、得エミュレータによるエミュレーション情報を期待値と比較する評価を行うことができる。更に、実機とエミュレータによるエミュレーション動作のシナリオを記述したシステムモデルをシステムログと比較することによってタイミング評価なども可能になる。
〔16〕<複数の制御モジュール間におけるタイマを用いた時間同期処理>
データ処理システム(201)は、複数の制御モジュール(500−1,500−2,500−3)が通信を行いながら動作するシステムであって、データ処理システム全体で共通の時間をカウントするタイマ(404)を夫々の制御モジュールに設け、上位の制御モジュールのタイマによる時刻情報によって下位の制御モジュールのタイマによる時刻情報を同期させる時間同期処理(S400,S405)を制御モジュール間で行う。
これによれば、制御モジュール間で時間同期処理を行うことにより、距離的に離れた場所に複数の制御モジュールが分散していても、夫々の制御モジュールで生成される単体ログのタイムスタンプの時刻を同一時間軸上で同期した時刻とすることができる。
〔17〕<ログ取得処理>
項16において、前記制御モジュールは、アプリケーション処理に際して、ログを取得すると同時にタイマの時刻を用いたタイムスタンプを付加するログ取得処理(S401)を行う。
これによれば、夫々の制御モジュール単位で取得されるログに、システム全体で同一時間軸上に同期する時刻をタイムススタンプとして付与することができる。
〔18〕<システムログの生成処理>
項17において、夫々の前記制御モジュールの前記ログ取得機能で取得されたログを集め、集めたログの情報をタイムスタンプに基づいてマージすることで、システム全体で動作するソフトウェアのシステムログを生成する処理を行うログ解析回路(301)を更に有する。
これによれば、データ処理システム全体についてのソフトウェア評価を、システムログを用いて容易に行うことが可能になる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図1にはデータ処理システムの基本的な構成が例示される。データ処理システムは後述する実機201を一例とする。データ処理システムは複数のデータ処理ユニット若しくは制御ユニットのような制御モジュール(以下単にモジュールとも記す)を有し、特に相互に接続される直列的な信号パスを有する複数のモジュールに着目し、ここでは直列パス502,503を有する3個のモジュール500−1,500−2,500−3に着目する。直列パス502,503を有するとは、図示の如くモジュール500−1,500−2,500−3がその他の接続パスを有することを妨げるものではない。
各モジュール500−1,500−2,500−3はプログラム処理回路である中央処理装置(CPU)401−1,401−2,401−3、同期タイマ404−1,404−2,404−3、及び通信インタフェース405−1,407−1,405−2,407−2,405−3,407−3を有する。夫々のモジュール500−1,500−2,500−3は自らが実行するプログラム記述にしたがって所要のアプリケーション処理と共に単体ログ生成処理を行い、更に、タイマの時刻即ち計数値を同期させる時間同期処理を行う。
単体ログ生成処理は、夫々のモジュール500−1,500−2,500−3のCPU401−1,401−2,401−3が、自らが実行するプログラム中で指定されたテストポイントでログ情報と同期タイマ404−1,404−2,404−3の時刻に基づくタイムスタンプを生成し、それらを当該テストポイントの属性情報と共に蓄積していく、モジュール単位で単体ログの生成を行う処理である。
時間同期処理は、夫々の同期タイマ404−1,404−2,404−3で生成されるタイムスタンプの時刻情報を同期させる処理、即ち、夫々の同期タイマ404−1,404−2,404−3で得られる時刻情報が同一時間軸上で刻まれる時刻になることを保証するための処理である。例えば、モジュール500−2は時間管理の点で上位となるモジュール500−1からその同期タイマ404−1の時刻の情報を受け取り、受け取った時刻の情報、及び当該時刻の情報を受け取ったときの自らの同期タイマ404−2の時刻の情報等に基づいて、自らの同期タイマ404−2の時刻を補正する処理である。同期タイマ404−1,404−2,404−3の時刻補正は、自らの同期タイマ404−1,404−2,404−3から得られた時刻情報の補正であってもよいし、或いは、自らの同期タイマ404−1,404−2,404−3に対する計数値のプリセットなどによるそれ自体の計数動作の補正であってもよい。同期タイマ404−1,404−2,404−3の時刻を補正する処理は、例えばCPUがパワーオンリセット処理の一貫として、或いは所定の処理ルーチンの先頭などで行えばよい。各モジュール500−1,500−2,500−3における同期タイマ404−1,404−2,404−3のクロック信号周波数が完全同一でないような場合に、一旦補正の処理を行っても経時的に時刻情報の同期に無視し得ない誤差を生ずる場合には、適宜のインターバルで再度補正を行えばよい。
実機としての上記データ処理システムを動作させてモジュール500−1,500−2,500−3の夫々が単体ログを生成し、それによって取得された複数モジュール500−1,500−2,500−3の単体ログのログ情報をタイムスタンプを指標にマージすることによって、実機における複数のモジュールを跨ぐデータ処理の評価を容易に行うことが可能になる。
以下、そのデータ処理システム及びそのデータ処理システムを評価する処理手順について詳述する。
図2にはデータ処理システムの評価手順を全体的に例示する。
ここでは図3に示すモジュール500が3台で構成されるデータ処理システムとしての実機システム201の動作分析を行う場合について説明する。実機システム201は図1のデータ処理システムに相当される。図3に例示されるように、モジュール500はマイクロコンピュータ等のSOC(システム・オン・チップ。単一の半導体チップで構成されたもの)400、二次記憶媒体501、及びその他デバイス510で構成される。
SOC400は図4に示すように外部モジュールと時間同期をとるための同期タイマ404、時間同期処理を補助する同期エンジン(同期エンジンA406、同期エンジンB408)を内蔵する通信インタフェース(IF_A405、IF_B407)、二次記憶と通信するためのインタフェースIF_C409、及びCPU401で構成される。同期エンジンA406,同期エンジンB407は、特に制限されないが、後で説明する所定のコマンドを送信するとき及び受信するとき、自らのモジュール内の同期タイマの時刻情報を取得して保持する機能を備える。保持した時刻情報は前記時間同期処理に用いる。その利用形態の詳細は後述する。
実機システム201における各モジュールの接続関係を図5に示す。図1で説明したように3個のモジュール500−1,500−2,500−3が接続される。第1のモジュール500−1は通信経路502で第2のモジュール500−2に繋がり、第2のモジュール500−2は通信経路503で第3のモジュール500−3に繋がる。3台のモジュール500−1,500−2,500−3がデイジーチェーンで繋がるシステムを構築する。
評価の処理手順はソフトウェア実装100、実機動作200、及びログ解析300に分けられる。ソフトウェア実装100ではソフトウェアの仕様策定や実装を行い、実機動作200で実機システム201を実際に動作させてソフトウェアの単体ログセット202を取得する。ログ解析300では単体ログセット202の解析を行いシステムログ303や検証結果304を生成する。単体ログセット202は前述の単体ログのセットである。
ソフトウェア実装100ではシステム仕様101から各モジュール500に実装されるソースコードの集まりである単体ソースセット104とタグテーブル105を作成する。システム仕様101は実機システム201で実現する機能(アプリケーション)を規定したアプリ仕様(アプリケーション仕様)102とテスト項目を規定したテスト仕様103で構成される。システム仕様101から生成される単体ソースセット104にはアプリケーションの機能とソフトウェア分析のためのソースコードが含まれる。
各モジュールにおけるアプリ仕様102のステートチャートを図6、図7、及び図8に示す。第1のモジュール500−1に図6、第2のモジュール500−2に図7、第3のモジュール500−3に図8のステートチャートが実装される。ここで説明するアプリ仕様102は、特に制限されないが、第1のモジュール500−1が第2のモジュール500−2にコマンド送信すると、第2のモジュール500−2を中継して第3のモジュール 500−3に伝わり、第3のモジュール500−3はコマンド受信後に発生するイベントによって第1のモジュール500−1に応答を返すかを選択する動作を定義している。例えば図6において第1のモジュール500−1のCPU401−1のアイドル状態S100においてIF_B送信要求があると(S103)、インタフェースIF_B407−1にIF_Bのインタフェースコマンドを与えて、インタフェースIF_B407−1によるIF_Bの送信を完了する(S104)。これに応答して、図7の第2のモジュール500−2はIF_B受信要求(S209)があると、インタフェースIF_B407−2でIF_Bのインタフェースコマンドを受信し(S203)、IF_Bによるコマンド受信を完了する(S210)。更に、第2のモジュール500−2においてIF_A中継送信要求があると(S207)、インタフェースIF_A405−2によるコマンド送信処理(S202)によって当該コマンドがモジュール500-3に向けて送信完了される(S208)。次いで、図8の第3のモジュール500−3はIF_A受信要求(S310)があると、インタフェースIF_A405−2でIF_Aのコマンド受信処理(S301)にて当該中継されたコマンドの受信を完了する(S305)。これによって第3のモジュール500−3はコマンド待ち状態に遷移する(S302)。この後、例えばイベントAが発生すると(S307)、イベント処理が行われて(S303)、当該イベント処理の終了を通知する送信要求が発生される(S308)。これに応答してインタフェースIF_A405−3にIF_Aのインタフェースコマンドを与えて、インタフェースIF_A403−1による前記イベント終了通知の送信を完了する(S309)。以下、第2のモジュール500−2ではS211,S204,S212の処理を通じてインタフェースIF_A405−2でイベント処理の終了通知を受信し、この通知を、S205,S201,S206の処理を通じてインタフェースIF_B407−2から送信する。最後に第1のモジュール500−1が図6のS105,S102,S106の処理を通じて前記イベント処理の終了通知を受信する。
単体ソース106は時間同期ソース107、タグ挿入アプリソース108、タグ管理ソース109で構成される。時間同期ソース107は実機システム201を構成するモジュール(500−1、500−2、500−3)の同期タイマ(404−1、404−2、404−3)が全て同じ値になるように調整を行うためのソースである。タグ挿入アプリソース108はアプリケーション処理のソースコードにタグステートメントを挿入したものである。タグステートメントはテスト仕様101が定義するテストポイントに挿入され、プログラムがタグステートメントに到達するとタグ管理処理を起動しタグ情報を通知する。
タグ情報はネットID、タグ番号、タグ値で構成される。ネットIDはモジュール毎に割り当てられる固有の識別番号で、この実施の形態では第1のモジュール500−1に1、第2のモジュール500−2に2、第3のモジュール500−3に3を静的に割り当てる。ここでは静的に割り当てたが、条件によって動的に割り当てても問題はない。タグ番号、タグ値はテストポイントを識別するための情報である。したがって、ネットID、タグ番号、及びタグ値で構成されるタグ情報は前記テストポイントの属性情報の一例として位置付けられる。この実施の形態では、図6のS103、S106、図7のS205、S207、S210、S212、図8のS305、S306、S307、S308に対応する部分のソースにタグステートメントを挿入する。
タグ管理ソース109はタグ管理処理を実装したソースコードで、タグ情報に同期タイマ404の時刻を付加した単体ログを生成し、一次記憶であるRAM402へのバッファリング、二次記憶であるROM403及び/又は二次記憶媒体501に単体ログを退避するなどのタグ情報管理処理を行う。二次記憶媒体501はダイナミックランダムアクセスメモリ、スタティックランダムアクセスメモリもしくはメモリカードを含む不揮発性メモリである。
タグテーブル105はタグ情報の管理を行うテーブルである。図13のようにタグ番号、タグ値と変換値の関係を表し、実機評価203から得られるタグ情報をタグテーブル105の参照によって任意の形式に変換する。変換値はソフトウェアの分析手法によって差し替えができ、この実施の形態では変換値をテキスト形式にしている。
単体ソースセット104をコンパイル111して実行可能コードセット110を得る。実行可能コードセット110は各モジュール500のCPU401で実行可能な形式のバイナリコードの集まりである。実行可能コードセット110がROM403に書き込まれて実機システム201が構築される。
実機動作200では実機システム201の実機評価203を行い単体ログセット202を取得する。
この時、各モジュールは同期エンジンを有するインタフェース(IF_A405、IF_B407)で繋がっており、実機システム201はパワーオンリセットの処理や実機評価203の開始後に時間同期処理を行うことで同期タイマ404−1、404−2、404−3が刻む時刻を同期させることができることを特徴とする。各モジュールのIF_C(409−1、409−2、409−3)には二次記憶媒体(501−1、501−2、501−3)が接続されており、実機評価で取得した単体ログはRAM402にバッファリングされたのち、各モジュールの二次記憶媒体(501−1、501−2、502−3)に保存される。二次記憶媒体(501−1、501−2、502−3)への退避は単体ログの容量がRAM402よりも大きい場合に行う。単体ログがRAM402に収まる場合は二次記憶媒体(501−1、501−2、502−3)への退避を行わなくてもよい。
実機評価の評価手順を図9に示す。実機評価はアプリケーション処理S401と時間同期処理(S400、S405)で構成される。時間同期処理は各モジュールの同期タイマの時刻を合わせる処理(すなわち、タイマが刻む時刻を同期させる処理)で、その処理の既存の規格としてイーサーネット(登録商標)におけるIEEE1588などがあるが、イーサーネット以外のインタフェースについては規格が存在しないため、ここでは例えばIEEE1588のアルゴリズムをベースに同期処理を行う。
時間同期処理について解説を行う。時間同期処理はインタフェースを介して時間情報を送信し受信側の同期タイマ404の値を送信側の同期タイマ404の値に同期させる処理である。主に通信遅延測定とクロック誤差補正処理で構成される。
時間同期処理の例として第1のモジュール500−1と第2のモジュール500−2間の時間同期処理を示す。例では第1のモジュール500−1が送信側、第2のモジュール500−2が受信側となり、同期タイマ404−2が同期タイマ404−1の値と同じになるように処理を行うものとする。第1のモジュール500−1と第2のモジュール500−2を接続するインタフェースIF_A405には同期エンジンA406が実装されており、これは、時間同期コマンドの送受信を行ったときの同期タイマ404の値を取得することができる。図5の構成では第1のモジュール500−1は同期コマンドの送受信時刻として同期タイマ404−1の時刻を取得し、第2のモジュール500−2は送受信時刻として同期タイマ404−2の時刻を取得できる。
通信遅延測定(S400)について説明する。
時間同期処理として、例えば第1のモジュール500−1の同期タイマ404−1の時刻を送信して第2のモジュール500−2の同期タイマ404−2書き換える場合を考える。単純にタイマを書き換えるだけならば同期タイマ404−2の時刻は同期タイマ404−1の時刻に対して通信遅延時間 Tdelayだけ遅れてしまう。そこで、時間同期処理ではTdelayの測定を行い、受信側の時間同期の補正値として利用する。
図10は通信経路502における通信遅延測定の手順である。初期状態として同期タイマ404−1と同期タイマ404−2には異なる値が記録されているとする。第1のモジュール500−1は最初に同期コマンド(Sync)を送信する。これにより第1のモジュール500−1は送信時刻T1、第2のモジュール500−2は受信時刻T2を得る。次に第1のモジュール500−1はフォローアップコマンド(Followup)を送信し、第2のモジュール500−2に前記送信時刻T1を通知する。第2のモジュール500−2はフォローアップコマンド(Followup)受け取るとディレイリクエストコマンド(DelayReq)を発行し、第2のモジュール500−2は送信時刻T3、第1のモジュール 500−1は受信時刻T4を記録する。
最後に第1のモジュール500−1がディレイレスポンスコマンド(DelayResp)を発行し第2のモジュール500−2にT4を通知する。これにより第2のモジュール500−2はT1、T2、T3、T4を得る。
通信経路502の通信遅延Tdelay、すなわち、通信に要した時間は、下記の式1
Tdelay=((T4−T1)−(T3−T2))/2…式1
で求めることが出来る。ここで通信遅延は送信、受信で同じであるとする。
また、同期タイマ404−1と同期タイマ404−2の差分(時刻の差)Tdiffは、下記の式2
Tdiff=T2−(T1+Tdelay)…式2
で求められる。同期タイマ404−2の時刻にTdiffの値を減算すれば同期タイマ404−1と同値にすることができる。通信遅延測定による同期処理における補正としては、例えば、計数値からTdiffの値分だけ減算するように同期タイマ404−2の計数値をプリセットすればよい。
クロック誤差補正について説明する。
図11にクロック誤差補正処理の通信を示す。クロック誤差補正処理は同期タイマ404毎に異なるクロック発振器を使用することによるクロック周波数誤差の補正を目的としている。実機システムではネットワーク構成の自由度を確保するため、各同期タイマ(404−1、404−2、404−3)が異なるクロック発振器で動作することが望ましい。この時、同期タイマ404を駆動するクロック発振器は全て同じ周波数で発振することが望ましいが、実際は発振周波数に誤差が含まれるため同期タイマ404のカウント値はカウントを続けていく内にずれてしまう。すなわち、通信遅延測定による同期処理における補正結果がその後誤差を生ずる可能性があるということである。そのためクロック誤差補正処理では周期的に同期コマンド(Sync)、フォローアップコマンド(Foloowup)を送信して同期タイマ404の補正を行う。図11では第1のモジュール500−1による同期コマンド(Sync)の送信時刻をT5、第2のモジュール500−2による受信時刻をT6とすると、カウント誤差Tcdは下記の式3
Tcd=T6−(T5+Tdelay)…式3
となる。第2のモジュール500−2の同期タイマ404−2にTcdを減算すれば、同期タイマ404−1と同値になり、誤差を補正することができる。
誤差補正処理を行う頻度である同期インターバル(Sync Interval)は実装条件によって異なる。クロック発振器の精度が高いならば頻度は少なくて済むが、低いならば頻繁に補正する必要がある。本実施の形態では同期インターバル(Sync Interval)を1秒として実施している。
図12に本実施の形態における時間同期処理の関係が示される。本実施の形態では第1のモジュール500−1の同期タイマ404−1が基準となり第2のモジュール500−2、第3のモジュール500−3の同期タイマ404を同期させる。
第1のモジュール500−1と第2のモジュール500−2は電源が投入されるとインタフェースIF_B(407−1、407−2)の間で前記ステップS400の通信遅延測定を行う。第2のモジュール500−2は図10の通信と同期エンジンB408から送受信時刻T1、T2、T3、T4を入手する。CPU401−2は送受信時刻からTdelay、Tdiffを計算する。通信遅延測定が終了すると第2のモジュール500−2のCPU401−2はTdiffの値を使用して同期タイマ404−2の時刻を同期タイマ404−1の時刻に合わせる。
また、第1のモジュール500−1の同期タイマ404−1は周期割り込みによってCPU401−1にクロック誤差補正処理の要求を行う。CPU401−1は要求を受けると第2のモジュール500−2に対して図11の通信によってクロック誤差補正を行う。第2のモジュール500−2は図11の通信と同期エンジンB 408から送受信時刻T5、T6を得る。CPU401−2はT5、T6からTcdを計算し同期タイマ404−2の誤差を補正する。
第3のモジュール500−3は第2のモジュール500−2との間で時間同期処理を行い同期タイマ404−2と同期タイマ404−3を同期させる。第2のモジュール500−2は第1のモジュール500−1と同期しているため第3のモジュール500−3も第1のモジュール500−1に同期することになる。
図9の評価手順では測定がはじまると通信遅延測定処理S400によって通信遅延測定を行って、同期タイマ(404−1、404−2、404−3)の同期を行う。同期が完了するとアプリケーション処理S401を行い、クロック誤差補正処理のためのクロック誤差補正割り込み(S402)がある毎にクロック誤差補正処理S405を行い、ステップS403で評価終了が判別されるまで、ステップS401,S402,S403,S405の処理が繰り返される。
第2のモジュール500−2におけるアプリケーション処理S401とクロック誤差補正S405の関係を図20に示す。図20において網掛け表示のタスク(S600−3など)がアプリケーション処理S401、白抜き表示のタスク(S600−2など)がクロック誤差補正S405を表す。
第2のモジュール500−2は第1のモジュール500−1から誤差補正処理受信(Sync/Followup受信)し同期タイマ404−2を第1のモジュール500−1に同期する。また、第2のモジュール500−2はが第3のモジュール 500−3に対して誤差補正処理送信(Sync/Followup送信)して、第3のモジュール500−3の同期タイマ404−3を第2のモジュール500−2に同期させる。
第2のモジュール500−2のCPU401−2は主にアプリ処理を行い、テストポイントに従って同期タイマ404−2の参照(S601−5、S602−3)とログの出力を行う。第1のモジュール500−1から誤差補正処理受信(Sync/Followup受信)601−2するとアプリケーション処理を中断しクロック誤差補正処理を起動して同期タイマ404−2の補正処理を行う。
同期タイマ404−2は同期インターバル(Sync Interval)が経過するごとにCPU401−2に割り込みをかける(S602−2)。CPU401−2は割り込みを受け付けると第3のモジュール500−3に対して誤差補正処理送信(Sync/Followup送信)S601−4,S603−2し、第3のモジュール500−3の同期タイマ404−3を補正する。
各モジュール間で同期処理を行うことで全てのモジュールで、時間軸共通のタイムスタンプを単体ログに付加することができる。
図9に戻って、実機評価終了(S403)すると、各モジュールの二次記憶に蓄積された単体ログを回収する(S404)。本実施の形態ではログ解析器301を第1のモジュール500−1のIF_A405−1に接続し、通信によって単体ログを取得する。第3のモジュール500−3の単体ログは通信経路503で第2のモジュール500−2に送信し、第2のモジュール500−2の単体ログは通信経路502経由で第1のモジュール500−1に送信する。第1のモジュール 500−1の単体ログは通信経路504経由でログ解析器に送信する。
ログ解析器301は実機システム201から取得した単体ログセット202を並べ替えてマージログ302に変換する。マージ作業を図14に示す。各モジュールの単体ログ(202−1、202−2、202−3)にはタイムスタンプが記録されている。ログ解析器3001はタイムスタンプを元に時間的に整列するようにテストポイント毎のデータを並べ替える。
次にログ解析器301はマージログ302のタグテーブル105を参照してタグ情報(ネットID、タグ番号、タグ値)を任意の形式に変換する。テーブル参照の結果を図15に示す。
最後にシステム仕様103とシステムログ303を比較してソフトウェアの検証307を行う。システムログからソフトウェアの動作を可視化した例を図16に示す。第1のモジュール500−1から第3のモジュール500−3にコマンドが到達し、第3のモジュール500−3から第1のモジュール500−1に応答が帰る様子を見ることができる。図16からわかるように複数のモジュール500で動作するソフトウェアの動作を時間的な整合性を持って検証することができる。
実施の形態1ではシステムログ303を利用してソフトウェア動作の可視化を行ったが、システムログ303の利用は可視化に限定されない。図6、7、8のようなシステム仕様103のモデルとシステムログ303の自動一致検証やシミュレーション結果とシステムログ303の比較などにも適用可能である。
実施の形態1では3台のモジュールについて例示したが、実際にはそれより多くのモジュールがデイジーチェーンによる接続がなされており、互いに接続されりモジュール間において本実施の形態に従う時間同期処理が行われる。またシステムを構成する全モジュールがいかなるネットワーク(後述するスター型接続、メッシュ型接続など)が構築されてもよいが、デイジーチェーンによる接続される少なくとも3台のモジュールが含まれていればよい。
実施の形態1によれば以下の作用効果を得る。
(1)同期タイマ404を導入して全てのモジュールが共通の時刻にアクセスできるようにした。特許文献3の手法ではメインCPUがサブCPUをキックした時間を元にログのマージを行っているためサブCPUが起点となって発生するイベントのログ取得ができなかった。本実施の形態では時刻共通の時計、すなわち同期タイマを使用するため、システムやネットワークの構成に影響を受けずにログの取得ができるようになった。特許文献3の手法ではメインCPU、サブCPUの関係が必須のためスター型のネットワークしか使用できなかったが、本発明ではツリー型やメッシュ型のネットワークが使用できる。
(2)タグ情報の取得と同時にタイムスタンプを付加するようにした。特許文献1、2ではタイムスタンプの付加をモジュール外部に接続したデバッグ装置で行っているためモジュール内部にログを蓄積したり、遅延の大きいインタフェースをログ出力に使用すると、イベントの発生時間がずれる問題があった。本発明ではタグ情報の取得と同時にモジュール内の同期タイマによる時刻のタイムスタンプを付加するため、モジュール内部にログを蓄積しても時間がずれることがなくなった。これにより以下の応用が可能になった。
(ア)遅延の大きいインタフェースをログ取得に使用できる。
(イ)各モジュールが分散してもログの出力、蓄積ができる。
(ウ)アプリケーション動作中はログを内部に蓄積し、動作終了後にログを外部転送することができるため、ログ取得がアプリケーション動作に与える影響を小さくできる。
(エ)ログをモジュール内部に蓄積できるのでモジュール間インタフェースで時間同期処理ができればソフトウェアの分析ができる。モジュール間通信の速度など、システムのネットワークに対する要求を緩和することができる。
(3)時間同期処理で同期タイマの補正を行うようにした。特許文献3の手法では時間同期処理を行わない。そのため、メインCPUが起点となるイベントであってもサブCPUが長期間にわたって動作する場合や、メインCPUとサブCPUが高速で相互に通信するような場合には、ログの時間がずれる問題がある。また、特許文献3の手法では時間同期処理なしではステート状態の遷移などソフトウェアの高速な動作の分析を行うことはできないと考えられる。
本実施の形態では時間同期処理により高精度に時間を同期するためソフトウェアの高速動作や各モジュールが長時間動作にも適用が可能である。また、時間同期処理により異なるクロック発振器を使用するモジュールでも同期ができるので物理的に距離の離れた所に設置されたモジュールの分析もできるようになる。
(4)各モジュールが分散して出力したログをログ解析器301でマージしてシステムログを作成するようにした。ログの分析はログ解析器で行うため実機システムはログの解析やマージ処理をする必要が無いので、実機システムのアプリケーション処理に影響を与えずに分析ができる。
《実施の形態2》
実施の形態2はソフトウェア分析にエミュレータン等の検証機材を更に含めることで高精度の検証を可能にするものである。実施の形態2ではシステムの検証環境(システムの開発環境))に実施の形態1で説明した手法を適用した場合について述べる。その検証手順を図17に示す。検証手順では実機検証システム201−2の実機評価203−2を行い、期待値一致検証611と動作一致検証612を行う。
実機検証システム201−2はシステム仕様101−2で規定されるターゲットシステム605の動作検証を行う実機評価環境である。ターゲットシステム605と、ターゲットシステム605に接続する機器をエミュレートするエミュレータA604及びエミュレータB606と、で構成される。後でその詳細は説明するが、ここでは、ターゲットシステム605、エミュレータA604及びエミュレータB606を実施の形態1における複数のモジュールに見立てている。ターゲットシステム605とエミュレータA604、エミュレータB606は実施の形態1に示したソフトウェア分析が行われることによって、動作ログとしてシステムログ303−2を出力するものとする。
期待値一致検証611はターゲットシステム605の出力を期待値と比較(ブラックボックステスト)する検証である。期待値一致検証611ではシステム仕様101−2から検証手順を記載したテストシナリオ603を作成し、テストシナリオ603からテスト用の入力パターン608とテストが正常に終了した場合の期待値を記載した出力期待値607を生成する。入力パターン608を用いて実機検証システム201−2の実機評価203−2を行い、実機出力609を得る。実機出力609と出力期待値607の期待値一致検証611を行うことでターゲットシステム605が正常に動作しているかを検証する。
動作一致検証はターゲットシステム605のシステムモデル600とシステムログ303−2を比較することでソフトウェア内部の動作検証(ホワイトボックステスト)を行う。
システムモデル600はソフトウェアの動作を表現したデータで、ターゲットモデル602とエミュレータモデル601で構成される。ターゲットモデル602はターゲットシステム605の動作を表し、エミュレータモデル601は外部に接続する機器の動作を表す。
システムログ303−2には図17に示すように、ターゲットシステム605とエミュレータA604、エミュレータB606の動作状況が記録されている。この情報とシステムモデル600を比較することでターゲットシステム605とシステム仕様101−2が一致しているかを検証する。
図18はエミュレータA606とエミュレータB606がターゲットシステム605に対してコマンドAを発行するシーケンスを表している。この時、第1のシナリオS500−1と第2のシナリオS500−2の入出力が同じであり、違いはコマンドの発行タイミングが異なる点のみとする。第1のシナリオS500−1ではエミュレータA604が先にコマンドA(S501−1)を発行し、第2のシナリオS500−2ではエミュレータB606が先にコマンドA(S502−2)を発行する。
従来のような期待値一致検証611は入出力のみを比較するため入出力が同じで動作が異なる第1のシナリオS500−1、第2のシナリオS500−2の違いは検証することができなかった。システムログ303−2を取得しターゲットシステム605、エミュレータA604、エミュレータB606の動作関係を取得すれば、タイミングの異なるテストシナリオの評価ができるようになる。
実施の形態2によれば以下の作用効果を得る。
従来手法では期待値一致検証611しかできなかったが、ターゲットシステム605、エミュレータA604、エミュレータB606のシステムログ303−2を取得することで動作一致検証612が可能になる。図18で説明したように、動作一致検証612によりタイミング依存のイベント評価を行うことができるようになる。
《実施の形態3》
実施形態3ではSDカードのような携帯型記憶媒体を利用して単体ログセット202−3を取得する方法について説明する。図19には実施例3の構成が例示される。
図19はロボットアーム700の評価に発明を適用した場合である。ロボットアーム700の可動部701−1、701−2、701−3にはモータ制御用の第1制御モジュール702−1、第2制御モジュール702−2、及び第3制御モジュール702−3が組み込まれている。各制御モジュール702−1,702−2,702−3は実施の形態1に示したソフトウェア分析が行われ、単体ログをそれぞれ対応する第1SDカード703−1、第2SDカード703−2、第3SDカード703−3に保存する。開発者はロボットアーム700の評価終了後にSDカード703−1、703−2、703−3を取り外し、パソコン等でデータを読み出すことで単体ログセット202−3を取得する。
特許文献1、2ではモジュールの外部にテストデバイスを接続する必要がある。このようなデバイスは評価中に移動しない対象に対しては適用が容易であるが、ロボットや車のように評価中に移動するものに適用する場合は、設置スペースやテストデバイスが運動に与える影響等の理由により適用することは難しい。
いままで説明したようにログ情報を取得すると同時にタイムスタンプを付加するため、各モジュールが分散して出力したログのマージや蓄積が可能である。これを利用すれば、SDカードのような小型、携帯可能な記憶媒体にログを一時保存することができる。小型な記憶媒体を使用すれば設置スペースやアームの運動に与える影響が小さいため、そのような制限の下でも適用が容易である。
また、後から記憶媒体を回収して単体ログを解析に供することができるため、モジュール間の通信速度に影響を受けない。そのため、モジュール間の通信速度が遅く、通信によるログ回収に時間がかかりすぎる場合にも有効である。
《実施の形態4》
図21には自動車のような多数のモジュールがネットワークに接続されて構成されているシステムに適用した場合を示す。実施の形態1では1対1のデイジーチェーン接続の場合を例示した。実施例4ではネットワークを構成する場合について示す。図21の例は自動車800を制御する多数のECU(エレクトロニックコントロールユニット)がネットワークで繋がっている。時間同期処理としては中央制御ECU801を基準として全てのモジュールが同期する。この時、ネットワークの接続の形態は1対1の接続やデイジーチェーンに限定されず、バス接続802、ツリー型ネットワーク803、メッシュ型ネットワーク804など、ネットワーク形式に依存せずに適用することができる。
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、図2で説明した単体ソースはシステム検証のための時間同期、タグ管理及びタグ挿入機能をアプリケーション機能と一体に形成されたものとし、図20の如く動作されるものとした。そのような単体ソースセットを用いたシステム評価を実機システムにおける開発段階の評価だけでなく、故障検出にも用いることも可能である。その場合、実動作では時間同期、タグ管理及びタグ挿入機能の実施を非選択にすることも可能である。例えば、システムに評価モードを設定したときだけ、時間同期、タグ管理及びタグ挿入機能の実施が付加されるようにすればよい。
また、時間同期の処理では実際に同期タイマの時間設定を補正する場合について説明したが、これに限定されない。例えば、通信遅延測定で測定した同期タイマの差分(時刻の差)Tdiffやカウント誤差Tcdをデータとして保持していき、タグポイントで取得した同期タイマの時間を差分(時刻の差)Tdiffやカウント誤差Tcd用いて補正し、補正したン時刻情報を用いてタイムスタンプを形成するようにしてもよい。
また、ログ解析を一つのモジュールのCPUを用いて行うことも可能である。
また、SOCなどのマイクロコンピュータやデータ処理装置は図4の機能構成に限定されず適宜変更可能である。
100 ソフトウェア実装
101 システム仕様
102 アプリ仕様(アプリケーション仕様)
103 テスト仕様
104 単体ソースセット
105 タグテーブル
106 単体ソース
107 時間同期ソース
108 タグ挿入アプリソース
109 タグ管理ソース
111 コンパイル
110 実行可能コードセット
200 実機動作
201 実機システム
202単体ログセット
203 実機評価
300 ログ解析
303 システムログ
304 検証結果
400 SOC
401(401−1,401−2,401−3) 中央処理装置(CPU)
404(404−1,404−2,404−3) 同期タイマ
405(405−1,405−2,405−3) 通信インタフェース
406 同期エンジンA
407(407−1,407−2,407−3) 通信インタフェース
408 同期エンジンB
409 インタフェース(IF_C)I
500(500−1,500−2,500−3) モジュール
501 二次記憶媒体
502,503 直列パス
600 システムモデル
601 エミュレータモデル
602 ターゲットモデル
603 テストシナリオ
604 エミュレータA
605 ターゲットシステム
606 エミュレータB
607 出力期待値
609 実機出力
611 期待値一致検証
612 動作一致検証
700 ロボットアーム
701−1、701−2、701−3 ロボットアームの可動部
702−1 第1制御モジュール
702−2 第2制御モジュール
702−3 第3制御モジュール
703−1、703−2、703−3 SDカード
800 自動車
802 バス接続
803 ツリー型ネットワーク
804 メッシュ型ネットワーク

Claims (18)

  1. 相互に通信可能の複数個の制御モジュールを有するデータ処理システムであって、
    前記制御モジュールは、通信インタフェース及びタイマを含み、自らが実行するプログラム記述にしたがって、所要のアプリケーション処理、単体ログ生成処理、及び前記タイマによる時刻を同期させる時間同期処理を行い、
    前記単体ログ生成処理は、自らが実行するプログラム中で指定されたテストポイントでログ情報と前記タイマの時刻情報に基づくタイムスタンプを生成し、それらを当該テストポイントの属性情報と共に蓄積して単体ログを生成する処理であり、
    前記時間同期処理は、上位の制御モジュールのタイマで得られる時刻情報を用いて、下位の制御モジュールのタイマで得られる時刻情報を同期させる処理である、データ処理システム。
  2. 前記時間同期処理は、下位の制御モジュールが上位の制御モジュールからそのタイマの時刻の情報を受け取り、受け取った時刻の情報、及び当該時刻の情報を受け取ったときの自らのタイマの時刻の情報等に基づいて、自らのタイマの時刻を補正する処理である、請求項1記載のデータ処理システム。
  3. 前記タイマの時刻を補正する処理は、自らのタイマそれ自体に時刻書き換えを行う処理である、請求項2に記載のデータ処理システム。
  4. 前記タイマの時刻を補正する処理は、タイムスタンプの生成に当たって自らのタイマから得られる時刻情報を補正する処理である、請求項2に記載のデータ処理システム。
  5. 上位の制御モジュールから下位の制御モジュールまでの通信に要する通信遅延を取得し、実際の送信時刻から受信時刻の差から通信遅延を減算してタイマの時刻誤差を演算し、この時間差を用いてタイマの時刻を補正する、請求項2記載のデータ処理システム。
  6. 外部インタフェース回路は、第1コマンド受信時に自らのタイマから時刻情報を取得する制御を行い、前記第1コマンド出力時のタイマの時刻情報を伴って第2コマンドを出力し、第3コマンドを出力するとき自らのタイマの時刻情報を取得する制御を行い、前記第3コマンドを受信したときの自らのタイマの時刻情報を伴って第4コマンドを出力する、請求項1記載のデータ処理システム。
  7. 上位の制御モジュールからの第1コマンド受信時に自らのタイマから第1の時刻情報を取得すると共に、当該上位の制御モジュールが第2コマンドに伴って出力する前記第1コマンド出力時の上位タイマの第2の時刻情報を取得し、更に、第3コマンドを前記上位の制御モジュールに出力するとき自らのタイマの第3の時刻情報を取得し、前記第3のコマンドを受信した上位の制御モジュールが前記第4コマンドに伴って出力する前記第3コマンドを受信したときの当該上位のタイマの第4の時刻情報を取得し、第4の時刻情報と第1の時刻情報との差分と、第3の時刻情報と第2の時刻情報との差分との和の半分の時間を演算し、演算された情報を、上位の制御モジュールから下位の制御モジュールまでの通信に要する通信遅延として取得し、実際の送信時刻から受信時刻の差から通信遅延を減算してタイマの時刻誤差を演算し、この時間差を用いてタイマの時刻を補正する、請求項6記載のデータ処理システム。
  8. 前記外部インタフェース回路は、前記第1コマンドコマンドを受信したとき自らのタイマから第1の時刻情報を取得し、前記第2コマンドに伴って供給される第2の時刻情報を取得し、第3コマンドを出力するとき自らのタイマの第3の時刻情報を取得し、前記第4コマンドに伴って供給される第4の時刻情報を取得する、同期制御回路を有する、請求項7記載のデータ処理システム。
  9. 前記中央処理装置は、前記外部インタフェース回路が取得した第1乃至第4の時刻情報を利用して前記通信遅延及び前記時刻誤差の演算を行う、請求項8記載のデータ処理システム。
  10. 前記中央処理装置は、アプリケーション処理の開始前に通信遅延を測定し、測定した通信遅延を用いてタイマの時刻補正を初期的行う処理を制御する、請求項9記載のデータ処理システム。
  11. 前記中央処理装置は、前記初期的なタイマ時刻補正の後、所定インターバルで発生するタイマ割り込みに基づいて、既に測定された前記通信遅延を用いてタイマの時刻補正を行う処理を制御する、請求項10記載のデータ処理システム。
  12. 前記テストポイントの属性情報は、制御モジュールに割り当てられた第1の識別情報、制御モジュールで実行されるプログラム上のテストポイントの位置を示す第2の識別情報、及びテストポイントにおいける処理を示す第3の識別情報である、請求項1記載のデータ処理システム。
  13. ログ解析回路を更に有し、
    前記ログ解析回路は、前記制御モジュール毎に生成された単体ログを回収し、回収した夫々の単体ログに含まれるタイムスタンプを指標にテストポイントの属性情報、ログ情報、及びタイムスタンプをマージすることによって単体ログの統合を行い、システムログを生成する、請求項1記載のデータ処理システム。
  14. 前記制御モジュールは車載ネットワークに接続された車載ECUを構成する、請求項1記載のデータシステム。
  15. 前記複数の制御モジュールは、エミュレーション対象とされる実機と、前記実機をエミュレーションするエミュレータである、請求項1記載のデータ処理システム。
  16. 複数の制御モジュールが通信を行いながら動作するデータ処理システムであって、データ処理システム全体で共通の時間をカウントするタイマを夫々の制御モジュールに設け、上位の制御モジュールのタイマによる時刻情報によって下位の制御モジュールのタイマによる時刻情報を同期させる時間同期処理を制御モジュール間で行う、データ処理システム。
  17. 前記制御モジュールは、アプリケーション処理に際して、ログを取得すると同時にタイマの時刻を用いたタイムスタンプを付加するログ取得処理を行う、請求項16記載のデータ処理システム。
  18. 夫々の前記制御モジュールの前記ログ取得機能で取得されたログを集め、集めたログの情報をタイムスタンプに基づいてマージすることによって、システム全体で動作するソフトウェアのシステムログを生成する処理を行うログ解析回路を更に有する、請求項17記載のデータ処理システム。
JP2013166536A 2013-08-09 2013-08-09 データ処理システム Pending JP2015035158A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013166536A JP2015035158A (ja) 2013-08-09 2013-08-09 データ処理システム
US14/452,344 US9804944B2 (en) 2013-08-09 2014-08-05 Data processing system
CN201410389864.7A CN104346253A (zh) 2013-08-09 2014-08-08 数据处理***
US15/786,708 US20180039557A1 (en) 2013-08-09 2017-10-18 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013166536A JP2015035158A (ja) 2013-08-09 2013-08-09 データ処理システム

Publications (1)

Publication Number Publication Date
JP2015035158A true JP2015035158A (ja) 2015-02-19

Family

ID=52449676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013166536A Pending JP2015035158A (ja) 2013-08-09 2013-08-09 データ処理システム

Country Status (3)

Country Link
US (2) US9804944B2 (ja)
JP (1) JP2015035158A (ja)
CN (1) CN104346253A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157298A1 (ja) * 2015-03-27 2016-10-06 ルネサスエレクトロニクス株式会社 解析装置及び解析方法
WO2016181504A1 (ja) * 2015-05-12 2016-11-17 三菱電機株式会社 数値制御装置
JP2017033229A (ja) * 2015-07-31 2017-02-09 アズビル株式会社 制御システム、支援装置、制御装置、および制御方法
JP2017151936A (ja) * 2016-02-26 2017-08-31 オムロン株式会社 マスタ装置、スレーブ装置、情報処理装置、イベントログ収集システム、マスタ装置の制御方法、スレーブ装置の制御方法、および制御プログラム
WO2018020632A1 (ja) * 2016-07-28 2018-02-01 富士機械製造株式会社 作業装置および作業装置の時刻計測方法
JP2018098556A (ja) * 2016-12-09 2018-06-21 日本電信電話株式会社 光リングネットワークシステム及びそのパス制御方法
JP2019003480A (ja) * 2017-06-16 2019-01-10 株式会社Nttドコモ コード動画連携装置及びコード動画連携プログラム
KR20190023465A (ko) * 2017-08-29 2019-03-08 한국항공우주연구원 시험 시스템 및 그의 시각 동기화 방법
JP2019159600A (ja) * 2018-03-09 2019-09-19 株式会社デンソー 車両用マスタ電子制御装置、車両用スレーブ電子制御装置、車両用ログ収集システム及び車両用ログ収集プログラム
JP2019205016A (ja) * 2018-05-22 2019-11-28 日立オートモティブシステムズ株式会社 タイムスタンプ付きログ記録を行う制御装置およびログ取得装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015206051A1 (de) * 2015-04-02 2016-10-06 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenübertragung in einem Rechnernetz
KR101847366B1 (ko) * 2015-06-08 2018-04-09 미쓰비시덴키 가부시키가이샤 시각 동기 장치 및 시각 동기 시스템
CN105183628B (zh) * 2015-10-22 2017-03-29 湖南国科微电子股份有限公司 一种嵌入式***日志收集装置、记录***及方法
CN105487525B (zh) * 2015-12-29 2019-05-14 大连楼兰科技股份有限公司 车载远程控制装置同步测试的***及方法
US10331115B2 (en) * 2016-11-28 2019-06-25 Asm Ip Holding B.V. Substrate processing system, storage medium and data processing method
US11205102B1 (en) * 2017-04-25 2021-12-21 EMC IP Holding Company LLC Tamper proof logging for automated processes
EP3418829B1 (en) * 2017-06-21 2022-08-24 Tetra Laval Holdings & Finance S.A. Method of logging process data in a plc controlled equipment
CN107426076B (zh) * 2017-07-18 2020-06-30 成都天锐星通科技有限公司 一种电子设备、信息处理方法及信息传输方法
CN110609777B (zh) 2018-06-15 2023-11-03 伊姆西Ip控股有限责任公司 用于管理日志的方法、设备和计算机程序产品
GB201810478D0 (en) * 2018-06-26 2018-08-08 Nordic Semiconductor Asa Precision timing between systems
JP6973427B2 (ja) * 2019-02-15 2021-11-24 株式会社安川電機 通信システム、通信方法、及びプログラム
CN109981206B (zh) * 2019-02-26 2021-01-26 深圳猛犸电动科技有限公司 对时方法、装置、***及终端设备、存储介质
CN111654658B (zh) * 2020-06-17 2022-04-15 平安科技(深圳)有限公司 音视频通话的处理方法、***、编解码器及存储装置
CN113352329A (zh) * 2021-06-28 2021-09-07 珠海市一微半导体有限公司 机器人多***调试信息的实时序列化方法及机器人

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235054A (ja) * 2004-02-23 2005-09-02 Nec Corp イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
JP2007026048A (ja) * 2005-07-15 2007-02-01 Mitsubishi Electric Corp 動作ログ管理システム及び動作ログ管理方法
JP2009289131A (ja) * 2008-05-30 2009-12-10 Mitsubishi Electric Corp マルチコントローラシステム
JP2011186806A (ja) * 2010-03-09 2011-09-22 Renesas Electronics Corp デバッグ装置およびデバッグ方法
JP2012216040A (ja) * 2011-03-31 2012-11-08 Nec Corp ログ管理システム、ログ解析装置、ログ解析方法、およびログ解析プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748878A (en) 1995-09-11 1998-05-05 Applied Microsystems, Inc. Method and apparatus for analyzing software executed in embedded systems
US7613212B1 (en) * 2003-06-10 2009-11-03 Atrica Israel Ltd. Centralized clock synchronization for time division multiplexed traffic transported over Ethernet networks
US7990909B2 (en) * 2007-11-02 2011-08-02 Ciena Corporation Synchronization of network nodes
CN101960770B (zh) * 2008-03-27 2014-12-31 日本电气株式会社 时钟同步***、节点和时钟同步方法
RU2483471C2 (ru) * 2008-11-13 2013-05-27 Майкро Моушн, Инк. Передатчик с таймером относительного времени
JP5316780B2 (ja) 2009-03-03 2013-10-16 ハートランド・データ株式会社 ソースコードトレーサ
JP5458719B2 (ja) * 2009-07-24 2014-04-02 日本電気株式会社 クロック同期システムと通信装置と方法とプログラム
WO2012026024A1 (ja) * 2010-08-26 2012-03-01 ルネサスエレクトロニクス株式会社 データ処理装置およびデータ処理システム
JP2012190197A (ja) 2011-03-10 2012-10-04 Canon Inc ログ処理システム
CN102404105A (zh) * 2011-12-14 2012-04-04 盛科网络(苏州)有限公司 以太网交换机上实现时间同步的装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235054A (ja) * 2004-02-23 2005-09-02 Nec Corp イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
JP2007026048A (ja) * 2005-07-15 2007-02-01 Mitsubishi Electric Corp 動作ログ管理システム及び動作ログ管理方法
JP2009289131A (ja) * 2008-05-30 2009-12-10 Mitsubishi Electric Corp マルチコントローラシステム
JP2011186806A (ja) * 2010-03-09 2011-09-22 Renesas Electronics Corp デバッグ装置およびデバッグ方法
JP2012216040A (ja) * 2011-03-31 2012-11-08 Nec Corp ログ管理システム、ログ解析装置、ログ解析方法、およびログ解析プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
日山雅之,外2名: "無線LANにおける高精度時刻同期方式の開発と評価", 電子情報通信学会技術研究報告 IA2009−82−IA2009−95 インターネットアーキテクチャ, vol. 第109巻,第421号, JPN6016047449, 12 February 2010 (2010-02-12), JP, pages 23 - 28, ISSN: 0003456731 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016157298A1 (ja) * 2015-03-27 2017-04-27 ルネサスエレクトロニクス株式会社 解析装置及び解析方法
WO2016157298A1 (ja) * 2015-03-27 2016-10-06 ルネサスエレクトロニクス株式会社 解析装置及び解析方法
WO2016181504A1 (ja) * 2015-05-12 2016-11-17 三菱電機株式会社 数値制御装置
JPWO2016181504A1 (ja) * 2015-05-12 2017-09-07 三菱電機株式会社 数値制御装置
US10732602B2 (en) 2015-05-12 2020-08-04 Mitsubishi Electric Corporation Numerical control apparatus
JP2017033229A (ja) * 2015-07-31 2017-02-09 アズビル株式会社 制御システム、支援装置、制御装置、および制御方法
US10523761B2 (en) 2016-02-26 2019-12-31 Omron Corporation Master device, slave device, information processing device, event log collecting system, control method of master device, control method of slave device and control program
JP2017151936A (ja) * 2016-02-26 2017-08-31 オムロン株式会社 マスタ装置、スレーブ装置、情報処理装置、イベントログ収集システム、マスタ装置の制御方法、スレーブ装置の制御方法、および制御プログラム
US20170251059A1 (en) 2016-02-26 2017-08-31 Omron Corporation Master device, slave device, information processing device, event log collecting system, control method of master device, control method of slave device and control program
WO2018020632A1 (ja) * 2016-07-28 2018-02-01 富士機械製造株式会社 作業装置および作業装置の時刻計測方法
JP2018098556A (ja) * 2016-12-09 2018-06-21 日本電信電話株式会社 光リングネットワークシステム及びそのパス制御方法
JP2019003480A (ja) * 2017-06-16 2019-01-10 株式会社Nttドコモ コード動画連携装置及びコード動画連携プログラム
KR101970718B1 (ko) * 2017-08-29 2019-04-22 한국항공우주연구원 시험 시스템 및 그의 시각 동기화 방법
KR20190023465A (ko) * 2017-08-29 2019-03-08 한국항공우주연구원 시험 시스템 및 그의 시각 동기화 방법
JP2019159600A (ja) * 2018-03-09 2019-09-19 株式会社デンソー 車両用マスタ電子制御装置、車両用スレーブ電子制御装置、車両用ログ収集システム及び車両用ログ収集プログラム
JP7119437B2 (ja) 2018-03-09 2022-08-17 株式会社デンソー 車両用マスタ電子制御装置、車両用スレーブ電子制御装置、車両用ログ収集システム及び車両用ログ収集プログラム
JP2019205016A (ja) * 2018-05-22 2019-11-28 日立オートモティブシステムズ株式会社 タイムスタンプ付きログ記録を行う制御装置およびログ取得装置
JP7036664B2 (ja) 2018-05-22 2022-03-15 日立Astemo株式会社 タイムスタンプ付きログ記録を行う制御装置およびログ取得装置

Also Published As

Publication number Publication date
US9804944B2 (en) 2017-10-31
CN104346253A (zh) 2015-02-11
US20150046742A1 (en) 2015-02-12
US20180039557A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
JP2015035158A (ja) データ処理システム
US7500152B2 (en) Apparatus and method for time ordering events in a system having multiple time domains
US6789182B1 (en) System and method for logging computer event data and physical components of a complex distributed system
JP6036843B2 (ja) 判定方法、およびシステム
CN109933418B (zh) 一种时间戳同步方法、电子设备及异构设备
JP6295850B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2017005379A (ja) 通信装置、通信システム、推定方法及びプログラム
JP2017005382A (ja) 通信装置、通信システム、推定方法及びプログラム
JP5223809B2 (ja) 同期通信システム
JP6191480B2 (ja) データ収集システム
Thiele et al. Performance analysis of multiprocessor DSPs: A stream-oriented component model
CN101303662B (zh) 一种实现风机转速采集的方法及装置
Lall et al. Logical Synchrony and the bittide Mechanism
JP2005332162A (ja) ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
Armengaud et al. Automotive software architecture: Migration challenges from an event-triggered to a time-triggered communication scheme
Kim et al. System-level development and verification of the FlexRay communication controller model based on SystemC
Owda et al. A predictable transactional memory architecture with selective conflict resolution for mixed-criticality support in mpsocs
JPWO2019021898A1 (ja) 開発支援装置
CN115983172B (zh) 用于后仿真的方法和仿真平台
Richter et al. Learning early-stage platform dimensioning from late-stage timing verification
Armengaud et al. Automotive Embedded Systems: The Migration Challenges to a Time Triggered Paradigm
JP6481726B2 (ja) データ収集システム
JP3474486B2 (ja) データ転送性能算出方式
Lang et al. Parallel multi-level simulation of wireless sensor networks
JP2011209828A (ja) トレースデータ制御回路及びデバッグ装置並びにタイムスタンプ生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170718

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171128