JP2019008687A - 演算装置、ログ記録装置、ログ記録システム - Google Patents

演算装置、ログ記録装置、ログ記録システム Download PDF

Info

Publication number
JP2019008687A
JP2019008687A JP2017125882A JP2017125882A JP2019008687A JP 2019008687 A JP2019008687 A JP 2019008687A JP 2017125882 A JP2017125882 A JP 2017125882A JP 2017125882 A JP2017125882 A JP 2017125882A JP 2019008687 A JP2019008687 A JP 2019008687A
Authority
JP
Japan
Prior art keywords
event
time
unit
buffer
timer
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.)
Granted
Application number
JP2017125882A
Other languages
English (en)
Other versions
JP6869823B2 (ja
Inventor
拓 下沢
Taku Shimosawa
拓 下沢
ハイロ ロペス
Lopez Jairo
ハイロ ロペス
朋仁 蛯名
Tomohito Ebina
朋仁 蛯名
一 芹沢
Hajime Serizawa
一 芹沢
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017125882A priority Critical patent/JP6869823B2/ja
Priority to PCT/JP2018/022091 priority patent/WO2019003863A1/ja
Priority to DE112018002505.5T priority patent/DE112018002505T5/de
Publication of JP2019008687A publication Critical patent/JP2019008687A/ja
Application granted granted Critical
Publication of JP6869823B2 publication Critical patent/JP6869823B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0221Preprocessing measurements, e.g. data collection rate adjustment; Standardization of measurements; Time series or signal analysis, e.g. frequency analysis or wavelets; Trustworthiness of measurements; Indexes therefor; Measurements using easily measured parameters to estimate parameters difficult to measure; Virtual sensor creation; De-noising; Sensor fusion; Unconventional preprocessing inherently present in specific fault detection methods like PCA-based methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0224Process history based detection method, e.g. whereby history implies the availability of large amounts of data
    • G05B23/0227Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions
    • G05B23/0235Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions based on a comparison with predetermined threshold or range, e.g. "classical methods", carried out during normal operation; threshold adaptation or choice; when or how to compare with the threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

【課題】イベントログ記録におけるオーバーヘッドを短縮できる演算装置を提供する。【解決手段】制御装置であるECU(電子制御装置、Electronic Control Unit)100は、CPU(演算装置)110、メモリ(主記憶領域)120、および時刻情報を管理するタイマ130を備える。ECUに記録対象のイベントが発生すると、CPUは、タイマに対して現在の時刻値131を時刻バッファ132に格納させるために、時刻取得トリガ133をアサートする。CPUは、発生したイベントの種類および、そのイベントに関する情報をイベントバッファ126に格納する。CPUは、イベントバッファの各レコードからイベント種類とイベント情報を取り出し、さらにそれに対応する時刻バッファのレコードから時刻を取り出し、これを一つのレコードとして統合ログ128の末尾に挿入する。【選択図】図1

Description

本発明は、演算装置、ログ記録装置、およびログ記録システムに関する。
近年の制御装置においては、マルチコア化をはじめとするハードウェアの高度化に伴い、ソフトウェアの複雑度も急速に高まっている。開発時あるいは運用時において制御装置の挙動を把握するためには、ソフトウェアのログの取得が欠かせない。またこのログを解析する際には、ソフトウェア内において発生したイベントとその情報とともに、イベントが発生した時刻、すなわちタイムスタンプが記録されていることが望ましい。時刻情報を伴うログの記録を行うシステムとして、たとえば特許文献1には、複数のプロセッサと、前記複数のプロセッサに共通して設けられたタイマと、前記複数のプロセッサに対応して設けられ、複数のイベントをそれぞれ格納する複数の記憶領域と、を具備し、前記タイマは、時間情報を計測する第1のカウンタと、前記複数のプロセッサが前記タイマにアクセスするごとにカウントアップする第2のカウンタとを含み、前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔および順序を参照できるマルチプロセッサシステムが開示されている。
特開2013−196195号公報
特許文献1に記載されている発明では、タイムスタンプの取得をイベントの発生のたびに行うため、タイマデバイス等の時刻情報を管理するデバイスへのアクセス時間だけCPUにおいて待ちが発生し、イベントログ記録におけるオーバーヘッドが大きい。
本発明の第1の態様による演算装置は、記録指令に基づきイベントの発生時刻を第1の記憶領域に記録するタイマと、前記イベントが発生すると前記イベントの内容を第2の記憶領域に記録するとともに前記タイマに前記記録指令を出力する演算部と、前記イベントの内容と前記イベントの発生時刻との対応付けを行う対応付け部とを備える。
本発明の第2の態様によるログ記録装置は、複数のイベントの内容が発生順に記録された第1情報、および複数のイベントの発生時刻が記録された第2情報を受信する通信部と、前記通信部が受信した前記第1情報と前記第2情報との対応付けてログを生成する対応付け部と、前記対応付け部が生成した前記ログを記録する記憶部とを備える。
本発明の第3の態様によるログ記録システムは、制御装置、時刻記録装置、および上述するログ記録装置を備え、前記制御装置は、イベントが発生すると前記イベントの内容を発生順に記録するイベント記録部と、イベントが発生すると前記時刻記録装置に記録指令を出力する記録指令部と、前記イベント記録部が記録した前記イベントの内容を前記第1情報として前記ログ記録装置に送信する制御装置通信部とを備え、前記時刻記録装置は、前記記録指令を受信すると時刻情報を記録するタイマと、前記タイマが記録した前記時刻情報を前記第2情報として前記ログ記録装置に送信する時刻記録装置通信部とを備える。
本発明によれば、イベントログ記録におけるオーバーヘッドを短縮できる。
第1の実施の形態におけるECU100の構成を表すブロック図 イベントバッファ126の一例を示す図 時刻バッファ132の一例を示す図 統合ログ128の一例を示す図 第1の実施の形態におけるイベントが発生した際のCPU110の動作を示すフローチャート 第1の実施の形態におけるタイマ130の動作を示すフローチャート 第1の実施の形態における転写の終了を通知されたCPU110の動作を示すフローチャート 第2の実施の形態におけるタイマ130の動作を示すフローチャート 第2の実施の形態における転写の終了を通知されたCPU110の動作を示すフローチャート 第3の実施の形態におけるECU100の構成を表すブロック図 直接統合ログ723の一例を示す図 第3の実施の形態におけるイベントが発生した際のCPU110の動作を示すフローチャート 第3の実施の形態におけるタイマ130の動作を示すフローチャート 第4の実施の形態におけるECU100の構成を表すブロック図 第4の実施の形態におけるイベントが発生した際のCPU110の動作を示すフローチャート 第5の実施の形態におけるログ記録システム1の構成を表すブロック図 システムイベントバッファ1211の一例を示す図 システム時刻バッファ1241の一例を示す図 システム統合ログ1273の一例を示す図
―第1の実施の形態―
以下、図1〜図7を参照して、本発明にかかる演算装置であるECUの第1の実施の形態を説明する。
(構成)
図1は、制御装置であるECU(電子制御装置、Electronic Control Unit)の構成を表すブロック図である。ECU100は、演算装置であるCPU110、主記憶領域であるメモリ120、および時刻情報を管理するタイマ130を備える。
CPU110は、汎用的な計算が可能な演算装置であり、シングルコアであってもマルチコアCPUであってもよい。すなわちCPU110は、1つ以上の並列に動作可能なCPUコアを有する。CPU110は、半導体チップとして単体のものであっても、以下で述べるメモリ120やタイマ130を一つの半導体チップ上に搭載した、いわゆるSoC(System−on−Chip)と呼ばれるものであってもよい。CPU110は、不図示のROMに格納されたプログラムをメモリ120に展開して実行することにより後述する機能を実現する。ただしプログラムの展開に使用する主記憶装置はメモリ120の代わりに不図示のRAMを用いてもよい。
メモリ120は、揮発性のメモリから構成される主記憶装置、たとえばDRAM(Dynamic Random Access Memory)である。メモリ120は、ECU100でのソフトウェアで発生したイベントを記録するためのログ記録部121を備える。ログ記録部121は、イベントバッファ126、時刻転写バッファ127、および統合ログ128を備える。イベントバッファ126は、ECU100が実行するソフトウェアで発生した1つ以上のイベントを、それらの時系列がわかるように格納したものである。ただしイベントバッファ126には時刻情報は格納されない。イベントバッファ126のメモリ上の構造は、単純な配列であってもよいし、リングバッファのような構造を用いて最新の一定数のイベントを残すような構造であってもよい。時刻転写バッファ127は、後述する時刻バッファ132をメモリ120上に転写したものである。統合ログ128は、イベントバッファ126に記録されたイベントの情報と時刻転写バッファ127に記録されたタイムスタンプの情報を対応付けたものであり、最終的なイベントログとなる。
タイマ130は、CPU110から内部バスなどを介してアクセス可能な、時刻を管理するデバイスである。タイマ130が管理する時刻は、RTC(Real−time Clock)と呼ばれる絶対時刻であっても、デバイスが起動した時刻などのある一定のタイミングからの経過時間である相対時刻であってもよい。タイマ130は、時刻値131、時刻バッファ132、時刻取得トリガ133、およびDMAエンジン134を備える。またタイマ130にはあらかじめハードウエア回路が組み込まれており、このハードウエア回路により後述する処理が実現される。ただしタイマ130はハードウエア回路のかわりに不図示のマイクロコンピュータを用いて同様の機能を実現してもよい。
時刻値131は、タイマ130が管理している時刻の値である。時刻バッファ132は、時刻取得トリガ133がアサートされた際の時刻値131を、その順序がわかるように1つ以上格納したものである。時刻バッファ132の構造は、単純な配列であってもよいし、リングバッファのような構造であってもよい。時刻バッファ132は、タイマ130に内蔵される小容量の記憶領域であり、メモリ120とは異なるハードウエアである。すなわちタイマ130による時刻値131の時刻バッファ132への書き込みは高速に実行される。
タイマ130に備えられる時刻取得トリガ133は、たとえば、タイマ130のレジスタである。時刻取得トリガ133は、CPU110からメモリ120と同様にアクセスできるものである。CPU110が時刻取得トリガ133に対して何らかの書き込みアクセスを行うと、タイマ130が時刻値131を時刻バッファ132の末尾に格納する。ただし時刻取得トリガ133は、CPU110からの読み込みアクセスによってアサートされてもよいし、CPU110からの特殊な命令によってアサートされてもよい。時刻取得トリガ133がアサートされるとは、たとえばタイマ130のレジスタに書き込みアクセスが行われることである。
タイマ130に備えられるDMAエンジン134は、CPU110を介在せずにメモリなどのある領域からある領域への転写(DirectMemoryAccess,DMA転送)を行う。本実施の形態ではDMAエンジン134は、時刻バッファ132からメモリ120への転写処理が可能である。なお、本実施の形態では簡単のためにDMAエンジン134をタイマ130に内蔵されるとして説明するが、次の条件を満たせばCPU110やタイマ130とは独立したデバイスであってもよい。すなわちDMAエンジン134は、CPU110もしくはタイマ130から制御可能であり、時刻バッファ132およびメモリ120に対する転写可能なものであれば、CPU110やタイマ130とは独立したデバイスであってもよい。
図2は、イベントバッファ126の一例を示す図である。図2ではイベントバッファ126は、上の行から下の行へ時系列順にレコードが並ぶテーブルの形式を有する。イベントバッファ126には、発生したイベントのそれぞれが独立したレコードとして格納される。イベントバッファ126の各レコードは、イベントの種類を示す「イベント」のフィールド、およびその他のイベントに関する情報が格納される「イベント情報」のフィールドを有する。イベントの種類とは、たとえば、タスクの実行や終了、割り込みの発生および割り込みハンドラの終了、通信の送信や受信などである。イベントに関する情報とは、イベント発生時のある変数の値など、そのイベント発生に付随した情報である。ただし、記録する全てのイベントで付随する情報が不要である場合は、「イベント」フィールドのみを備えればよく、「イベント情報」のフィールドは省略してもよい。
以下では、図示するレコードを上から順に第1レコード、第2レコード、・・・と呼ぶ。たとえば図2に示す例では、第1レコードには、EventAというイベントが発生し、そのイベントのより詳細な情報としてそのときのParamXの値が100であったことが示されている。そして第2レコードには、EventBの発生では、ParamYが「HelloWorld」という文字列、ParamZが3であり、EventCでは、特に詳細な情報がないことを示している。なお図2では、EventA,EventB,EventCの順番にイベントが発生したことを示しているが、それぞれが発生した時刻については格納されていない。
図3は、時刻バッファ132の一例を示す図である。図3では時刻バッファ132は、図2と同様に上の行から下の行へ時系列順にレコードが並ぶテーブルの形式を有する。時刻バッファ132の各レコードには、タイマ130によって記録された時刻値131が各行に格納されており、それぞれ、時刻取得トリガ133がアサートされた時点での時刻値131が記録されている。すなわち、図3に示す例でいえば、最初に時刻取得トリガ133がアサートされた時刻が100、二回目が200、三回目が250であったことが示されている。後述するように、時刻取得トリガ133はイベントが発生するたびにアサートされるため、時刻バッファ132の各行は、イベントの発生したタイミングに対応している。またログ記録部121は、イベント発生のたびにイベントバッファ126に一行ずつその情報を格納するため、時刻バッファ132の各レコードはイベントバッファ126の各レコードにも対応する。
図4は、統合ログ128の一例を示す図である。図4では、図2および図3と同様に上の行から下の行へ時系列順にレコードが並ぶテーブルの形式を有する。統合ログ128の各レコードは1つのログであり、「イベント」、「イベント情報」、および「時刻」のフィールドを有する。統合ログ128は、イベントバッファ126と時刻バッファ132の各レコードとを組み合わせて作成される。たとえば図4に示す1行目の記載から、EventAが発生し、その時のParamXが100であり、さらに、対応する時刻バッファ132の行から、その時刻が100であったことを示している。
(動作)
イベントが発生した際のECU100の動作を図5〜図7を参照して説明する。記録対象のイベントが発生すると、CPU110は、タイマ130に対して現在の時刻値131を時刻バッファ132に格納させるために、時刻取得トリガ133をアサートする(図5のS501)。アサートの方法は、たとえば前述したように、特定のアドレスへのメモリアクセスである。次にCPU110は、発生したイベントの種類および、そのイベントに関する情報をイベントバッファ126に格納する(S502)。なお、イベントバッファ126がリングバッファのような構造であり、イベントバッファ126の全てに書き込み済みである場合など、必要に応じてイベントバッファ126内の最古の情報を削除してもよい。
図5のS501によって時刻取得トリガ133がアサートされると、タイマ130は図6に示すフローチャートにより動作が表されるプログラムを開始する。すなわちタイマ130は、まず現在の時刻値131を時刻バッファ132の末尾に格納する(図6のS511)。次にタイマ130は、時刻バッファ132にこれ以上の時刻値を格納可能であるか否かを判断する(S512)。タイマ130はまだ格納可能な領域が時刻バッファ132に存在すると判断する場合は(S512:NO)、図6に示す処理を終了する。タイマ130は、時刻バッファ132が一杯であり、これ以上の時刻値を格納することができないと判断する場合は(S512:YES)次の処理を行う。すなわちタイマ130は、DMAエンジン134を用いて時刻バッファ132に格納された情報をメモリ120上の時刻転写バッファ127に転写する(S513)。
そしてタイマ130は、S513の転写が完了するとCPU110に対して通知を行う(S514)。この通知は、たとえば、CPU110に対して割り込みを発生させるものであってもよいし、特定のメモリ領域あるいは特定のCPU命令によって、CPU110が知ることのできるものであってもよい。後者の場合は、CPU110は、たとえばアイドル時にその領域へのアクセスあるいは命令を発行することによって、完了の通知があるかどうかを調べ、完了通知がある場合に次に述べる処理を実行する。なおS514の通知は、タイマ130が主体となりDMAエンジン134の転写完了をトリガーとしてCPU110に通知してもよいし、DMAエンジン134がCPU110に対して完了を通知してもよい。最後にタイマ130は、時刻バッファ132が以降で発生したイベントの時刻を記録可能になるように、時刻バッファ132の内容をクリアし(S515)、図6に示す処理を終了する。
図7を参照して、S514の処理により転写の終了を通知されたCPU110の処理を説明する。CPU110は、まず時刻転写バッファ127と時刻バッファ132の各レコードを比較し、一方の各レコードが他方のどのレコードに対応するかを判断する(S521)。上述したように、イベント発生時にはイベントバッファ126と時刻バッファ132にレコードごとに同じ順番で格納されていくので、これらの対応関係は明らかである。すなわち統合ログ128の説明で述べたように、それぞれの最古のレコード同士が対応し、それ以後も各レコードが順番に他方と対応する。CPU110は、この対応付けに従って統合ログ128を完成させる(S522)。すなわちCPU110は、イベントバッファ126の各レコードからイベント種類とイベント情報を取り出し、さらにそれに対応する時刻バッファ132のレコードから時刻を取り出し、これを一つのレコードとして統合ログ128の末尾に挿入する。CPU110は統合ログ128がリングバッファのような構造であれば、統合ログ128に対してもイベントバッファ126に対する処理と同様に、古いものを削除してもよい。最後にCPU110は、イベントバッファ126および時刻転写バッファ127をクリアすることで、新しいイベントの記録を行えるようにする(S523)。CPU110は、以上で図7に示す処理を終了する。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)ECU100は、記録指令、すなわち時刻取得トリガ133へのアサートに基づきイベントの発生時刻を時刻転写バッファ127に記録するタイマと、イベントが発生するとイベントの内容をイベントバッファ126に記録するとともにタイマ130の時刻取得トリガ133をアサートするCPU110(図5のS501、S502)と、イベントの内容とイベントの発生時刻との対応付けを行うCPU110(図7のS521)とを備える。
このような構成を有するので、ECU100はイベントの発生時刻であるタイムスタンプの記録のために、イベントの発生のたびにCPUがタイマからタイムスタンプを読み出すという処理を行う必要がない。これは、イベント発生時のCPU110の処理としては、S501によるトリガ処理と、イベント情報に関するメモリ120へのアクセスのみであり、タイムスタンプはタイマ130自身が記録するためである。このことにより、イベント発生時の記録処理によって発生するCPU110のオーバーヘッドを削減することができる。なぜならば、CPU110のタイマからのタイムスタンプの読出しは、読出し(ロード)命令であり、一般に、ロード命令は、実際に読み出した内容がCPU110に到達するまでCPU110を待ち状態とする必要があるが、他方、トリガ処理に用いられる処理が、前述したように書き込み(ストア)命令であれば、ストア命令は一般に、書き込みの完了をCPU110が待つ必要はないため、ロード命令を発行する場合に対してストア命令を発行したほうがCPU110が待ち状態となる時間を削減することができるためである。
さらに、時間削減の効果は、CPU110の機能として、メモリやI/OのアクセスをCPU110の実行モードに応じて制限する機能が有効である場合にも大きくなる。CPU110がタイマ130の時刻値131への直接のアクセスが許されないモードで動作している場合に、記録対象のイベントが発生したときには、タイムスタンプの取得、すなわち時刻値131の読出しのために、アクセスが許されるモードへ遷移する必要がある。この処理は、一般にシステムコールなどと呼ばれる仕組みを用いて行われるが、そのアクセスの正当性の検査などを精査する処理が必要となり、少なからずオーバーヘッドがかかる。しかしながら、ECU100は上述した構成を有するので、時刻取得トリガ133へのアクセスを許すことによって、ロード命令がストア命令に置き換えられることによる効果に加えて、モード遷移によるオーバーヘッドも含めて削減することができる。
なおECU100はイベント情報と時刻情報との記録を分離するので、図7においてS521〜S522として示した対応付け処理が必要になる。しかし、これらの処理は図5や図6に示したログの記録とは独立して実行可能であり、たとえばCPU110がアイドル状態である際にまとめて行うことができる利点がある。すなわち、イベント発生時にログ記録によって発生するオーバーヘッドとしては観測されず、アイドル状態でCPU110が使用されていない状態を有効に活用することができる。
さらにECU100におけるイベント発生時のログ記録によるオーバーヘッドを削減する効果は、非常に強い実時間性を要求される制御装置で特に有益である。たとえば、自動車のECUがその一例である。記録対象のイベントとして、割り込みの発生を例として挙げると、割り込みの発生時には、その割り込みハンドラの実行を行う前に発生したことをログとして記録する必要がある。このため、ログ記録によるオーバーヘッドが大きいと、割り込みハンドラの実行がそれだけ遅延されることになる。他方、実時間性の一つの要素として、割り込みへの応答時間がある。応答時間とは、割り込みが発生してから、実際に割り込みハンドラによってその対応する処理が実行されるまでの時間である。つまり、本実施例で説明したように、ログ記録におけるオーバーヘッドを短縮することができ、応答性を向上させることが可能になる。
(2)タイマ130は、時刻情報を時刻転写バッファ127に発生した順番に格納する。CPU110は、イベントの内容をイベントバッファ126に発生した順番に格納する。CPU110は、格納された順番に基づき時刻転写バッファ127に記録された時刻情報とイベントバッファ126に記録されたイベントの内容を対応付ける。そのためECU100は、時刻情報とイベント情報とを容易に対応付けることができる。
(3)タイマ130は、時刻取得トリガ133がアサートされた時刻がイベントの発生時刻として記録される時刻バッファ132と、時刻バッファ132に記録されたイベントの発生時刻を時刻転写バッファ127に転記するDMAエンジン134とを備える。DMAエンジン134は、時刻バッファ132の空き容量が所定の容量以下になると転記を行い、時刻バッファ132からイベントの発生時刻を消去する(図6のS512〜S515)。そのため適切なタイミングで時刻バッファ132の内容をメモリ120にDMA転送し、時刻バッファ132をクリアすることで動作の継続を可能とする。
(4)CPU110は、DMAエンジン134による転記が行われると対応付けを行い(図7のS521)、時刻転写バッファ127に記録されたイベントの発生時刻およびイベントバッファ126に記録されたイベントの内容を消去する(図7のS523)。そのため迅速に対応付けを行い、ログを生成することができる。
(変形例1)
CPU110は、図5に示すS502の処理を遅延させて、複数回分のイベントの情報をまとめて記録してもよい。割り込みの発生と割り込みハンドラ処理の完了を例にあげれば、割り込みハンドラ処理の完了時において、その前に割り込みが発生したことは明らである。すなわち割り込みの発生時には、CPU110は図5に示すS501の処理のみを実行し、割り込みハンドラ処理の完了時に、発生したイベントと完了時のイベントの二つのログをイベントバッファ126に追記する。この変形例1によれば、前述した割り込み発生時の応答性をさらに向上させることができる。
(変形例2)
図6に示すS512において、時刻バッファ132がいっぱいであるか否かを判断する代わりに、時刻バッファ132の空きが予め定めた量、またはあらかじめ定めた割合以下であることを条件としてもよい。この変形例2によれば、イベントの発生が短期間で連続した場合に、時刻バッファ132の転送が完了する前に、新たな時刻値131の格納が必要となった場合でも、時刻バッファ132の空き領域に格納することができ、時刻値131の記録を取りこぼすことを防ぐことができる。
(変形例3)
図6に示すS515において、転写完了時に時刻バッファ132をクリアすることで空き領域を確保するとした。しかし、時刻バッファ132が複数面のバッファを有する場合は、S515においてこれを切り替えることでクリアの代替処理としてもよい。この変形例3によれば、空き容量を即座に確保することができ、変形例2と同様の効果を得ることができる。
(変形例4)
CPU110は、図7に示した処理をCPU110の処理負荷が低い場合に実行してもよい。換言するとCPU110は、DMAエンジン134による時刻転写バッファ127へのイベント発生時刻の転写が完了しても、即座に図7に示す処理を実行しなくてもよい。本変形例によれば、CPU110の処理負荷を平準化することができる。
―第2の実施の形態―
図8〜図9を参照して、本発明にかかる演算装置であるECUの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、タイマ130がDMAエンジンを備えない点で、第1の実施の形態と異なる。すなわち本実施の形態では、ECU100はCPU110によるデータ転送を行う。
(構成)
第2の実施の形態におけるECU100の構成は、第1の実施の形態からDMAエンジン134が省略された構成である。それ以外の構成は第1の実施の形態と同様である。ただしECU100の不図示のROMに格納されるプログラムの動作およびタイマ130に実装されたハードウエア回路の動作が第1の実施の形態と異なる。
(動作)
第1の実施の形態との動作フローの相違点を図8〜図9を参照して説明する。なお時刻バッファ132は、CPU110からロード命令もしくは特定の命令によってアクセス可能である。図8〜図9は、イベント発生時のCPU110およびタイマ130の動作フローの一例を示したものであり、第1の実施の形態における図6〜図7に対応する。すなわち図7に示したイベントが発生した際のCPU110の動作は第1の実施の形態と同様であり、ここでは説明を省略する。
CPU110から時刻取得トリガ133がアサートされると、タイマ130は第1の実施の形態と同様にS511およびS512を実行する。タイマ130はS512を肯定判断すると、CPU110にバッファ空き容量の不足を通知し(S613)、図8に示す処理を終了する。CPU110は、図8のS613における通知をタイマ130から受信すると、図9に示す処理を開始する。すなわちCPU110は、時刻バッファ132から時刻転写バッファ127に転写を行う(S621)。次にCPU110は、S521およびS522の処理を行う。最後にCPU110は、時刻バッファ132、イベントバッファ126および時刻転写バッファ127をクリアし(S624)、図9に示す処理を終了する。
上述した第2の実施の形態によれば、DMAエンジンを保持しない制御装置においても、第1の実施の形態と同様の効果を得ることができる。
(第2の実施の形態の変形例)
本実施の形態では、S621およびS522において、時刻バッファ132から時刻転写バッファ127への転写および時刻転写バッファ127から統合ログ128への転写をCPU110が行うと説明した。しかし、S521における対応付けが明らかな形であるならば、すなわち、たとえば時刻バッファ132の各行とイベントバッファ126の各行が先頭から順に対応するのであれば、時刻バッファ132から統合ログ128の「時刻」列への転写を、時刻転写バッファ127を介さずに直接行ってもよい。本変形例によれば、転写回数を減らし、対応付けに必要なCPU110の処理および必要なメモリ120の量をさらに削減する効果が得られる。
―第3の実施の形態―
図10〜図13を参照して、本発明にかかる演算装置であるECUの第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、イベントバッファおよび時刻転写バッファが後述する直接統合ログの領域内に設定される点で、第1の実施の形態と異なる。
(構成)
図10は、第3の実施の形態におけるECU100の構成を示すブロック図である。メモリ120に備えられるログ記録部121は、直接統合ログ723を備える。またDMAエンジン134は、CPU110もしくはタイマ130から設定可能な転送先アドレス735の情報を有する。転送先アドレス735は、DMAエンジン134が転写するメモリ領域の宛先のメモリアドレスを指定するものである。DMAエンジン134は、タイマ130からの動作指示により、時刻バッファ132の内容を転送先アドレス735に対して転写する。
(直接統合ログ723)
図11は、直接統合ログ723の一例を示す図である。直接統合ログ723の各レコードが有するフィールド、および各フィールドに格納される情報は、統合ログ128と同様である。ただし統合ログ128および直接統合ログ723は、情報が書き込まれるタイミングおよび情報を書き込む主体が異なる。すなわち直接統合ログ723はイベントのログ記録時にもCPU110により書き込みが行われる。また直接統合ログ723は、第1の実施の形態におけるイベントバッファ126および時刻転写バッファ127を包含するものである。すなわち、直接統合ログ723のイベントおよびイベント情報のフィールドが第1の実施の形態におけるイベントバッファ126に相当する。また直接統合ログ723の時刻のフィールドが第1の実施の形態における時刻転写バッファ127に相当する。前述のとおり、転送先アドレス735はDMAエンジン134が転写するメモリ領域の宛先のメモリアドレスを指定するので、転送先アドレス735はDMAエンジン134が時刻情報を転記する時刻転写バッファ127の詳細な位置を示すものとも言える。
また図11において空欄で表現されているように、「時刻」のフィールドが埋められていないレコードも存在しうる。以降の説明のために、第1〜第3のレコードにおける「時刻」フィールドをそれぞれ、時刻723a、時刻723b、時刻723cと呼ぶ。たとえば図11に示す例において、第1のレコードに記載されたイベントの種類がEventAであり、その情報はParamXが100であり、その発生時刻は100である。第3のレコードに記載されたイベントの種類はEventCであり、その情報はなく、またその発生時刻は未だ格納されていないことを表している。
図12〜図13は、イベント発生時のログ記録の動作フローの一例を示したものであり、第1の実施の形態における図5〜図7に相当する。CPU110は、転送先アドレス735を直接統合ログ723の次に記録すべきレコードの「時刻」フィールドのアドレスに設定する(S901)。次にCPU110は、S501と同様に時刻取得トリガ133をアサートし、タイマに対して時刻取得を指示する(S902)。そしてCPU110は、発生したイベントの種類およびそのイベントに関する情報を、直接統合ログ723の次に記録すべきレコードの「イベント」および「イベント情報」のフィールドにそれぞれ格納する(S903)。CPU110は、以上で図12に示す処理を終了する。
図12のS902によって時刻取得トリガ133がアサートされると、タイマ130は図13に示すフローチャートにより動作が表されるプログラムを開始する。すなわちタイマ130は、まずS511と同様に時刻値131を時刻バッファ132に転写する(S911)。次にタイマ130は、DMAエンジン134を用いて時刻バッファ132の内容を転送先アドレス735、すなわち、直接統合ログ723の次のレコードの「時刻」のフィールドを示すアドレスへ転写を行う(S912)。これにより、イベント発生時のタイムスタンプを直接統合ログ723の最終レコードの「時刻」のフィールドにコピーすることができる。以上でタイマ130は図13に示す処理を終了する。
(動作例)
ECU100の動作を図11を参照して説明する。CPU110は、最初のイベントが発生すると、転送先アドレス735を時刻723aに設定する(S901)。そしてCPU110は、タイマ130の時刻取得トリガ133をアサートする(S902)。次にCPU110は、第1レコードの「イベント」フィールドにEventA、「イベント情報」フィールドにParamX:100を格納する(S903)。タイマ130は、時刻取得トリガ133がアサートされたときの時刻値131の値100を時刻バッファ132に格納する(S911)。さらにタイマ130は、DMAエンジン134を用いて、時刻バッファ132の値100を直接統合ログ723の第1レコードの「時刻」フィールドに転写する。これによって、第1レコードが完成する。次のイベント(EventB)が発生すると、CPU110は転送先アドレス735を時刻723bに設定し、同様の処理を行う。図11に示す状態では、第3のイベント(EventC)が発生し、CPU110はイベントおよびイベント情報の格納(S903)までを終えており、タイマ130はS911まで完了しS912を実行する前の状態を表している。
上述した第3の実施の形態によれば、第1の実施の形態の作用効果に加えて、次の作用効果が得られる。
(1)時刻転写バッファ127とイベントバッファ126は同一の物理メモリ内に確保される。タイマ130は、時刻取得トリガ133がアサートされた時刻がイベントの発生時刻として記録される時刻バッファ132と、時刻バッファ132に記録されたイベントの発生時刻を時刻転写バッファ127に転記するDMAエンジン134とを備える。CPU110は、DMAエンジン134が時刻情報を書き込む時刻転写バッファ127の詳細な位置を転送先アドレス735としてDMAエンジン134に指定することで対応付けを行う。
本実施の形態によれば、図12のS901によってDMAエンジン134の転写先のアドレスをあらかじめ指定しているので、DMAエンジン134による転写が完了した時点で対応付けが完了する。これによって、図7で示した二回目のCPU110による対応付け処理を省略することができる。すなわち、CPU110による処理の削減、および、イベントバッファ126、時刻転写バッファ127といったメモリ使用量の削減という効果を得ることができる。
(第3の実施の形態の変形例1)
DMAエンジン134の転写元として時刻値131を指定することができる場合は、図13に示した処理を以下のように変更してもよい。すなわち、図13のS911を省略し、図13のS912を時刻値131から転送先アドレスに転写するように変更する。この変形例によれば、時刻バッファ132に対する転写を省略することができ、さらなる時間短縮の効果が得られる。
(第3の実施の形態の変形例2)
CPU110はさらに直接統合ログ723のレコードごとに完成したことを判断してもよい。すなわちCPU110は、直接統合ログ723のそれぞれのレコードについて、全てのフィールドに書き込みがされるとそのレコードが完成したと判断する。なお、CPU110の動作とタイマ130およびDMAエンジン134の動作は並行しているため、「時刻」フィールドのみが埋まり、「イベント」と「イベント情報」のフィールドが空欄である場合もありうる。
(第3の実施の形態の変形例3)
短期間に多数のイベントが発生すると、S912の処理が完了する前に、新たなイベントが発生してしまう場合が考えられる。このような場合は、次の2つのいずれかの対策を行ってもよい。第1の対策は、DMAエンジン134の転写完了までCPU110が待機し、転送が完了するとCPU110が次のS901の処理を開始するものである。第2の対策は、DMAチェーンを利用するものである。すなわち転送先アドレス735に直接統合ログ723のさらに次のレコードの「時刻」フィールドのアドレスもあわせて格納し、DMAエンジン134に複数の転送を次々に実行させる。第1の対策では、短期間の多数のイベント発生に対応可能ではあるが、DMAエンジン134の転写が完了するまでCPU110が待ち状態となり、応答性を悪化させる恐れがある。第2の対策では、CPU110はDMAエンジン134の転写を待つことなく次の処理へ進むことができるため、イベントが短期間で多く発生するような場合でも、応答性を損なわない効果が得られる。
(第3の実施の形態の変形例4)
直接統合ログ723が格納されるメモリのアドレスが規則性を有する場合は、転送先アドレス735の設定をDMAエンジン134自身が行ってもよい。この場合はCPU110は、初期化処理などにおいて直接統合ログ723の第1レコードの「時刻」フィールドのアドレス、および上述した規則性に基づきレコードごとのオフセット値を設定する。そしてDMAエンジン134は、転写を実行するたびに転送先アドレス735を設定されたオフセット値だけ増価させる。本変形例によれば、イベント発生のたびにCPU110が転送先アドレス735を設定する必要がない。すなわち、CPU110のイベント発生時のログ記録の処理を短縮し、応答性を向上させる効果が得られる。
―第4の実施の形態―
図14〜図15を参照して、本発明にかかる演算装置であるECUの第4の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、タイマ130に時刻情報を記録するタイミングを通知する方法が第1の実施の形態と異なる。
(構成)
図14は、第4の実施の形態におけるECU100の構成を示す図である。ECU100は、第1の実施の形態における構成に加えて、出力信号ポート1040を備える。出力信号ポート1040は、CPU110から制御が可能であり、ECU100の外部へ信号を出力するポートである。出力信号ポート1040から信号を出力するための制御は、時刻取得トリガ133と同様に、たとえば特定のメモリアドレスへのストア命令や、特定のCPU110の命令である。また後述するように、不図示のROMに格納されるプログラムの動作が第1の実施の形態と異なる。
タイマ130は、第1の実施の形態における構成に加えて、トリガ信号ポート1034を備える。トリガ信号ポート1034は図1における時刻取得トリガ133と同様の機能を有する。すなわちトリガ信号ポート1034には、ECU100の外部から時刻値131を時刻バッファ132へ転写させるためのトリガーとなる信号が入力される。さらに、この出力信号ポート1040とトリガ信号ポート1034を配線Kにより結線している。配線Kは物理的な配線であってもよいし、ECU100内部の論理的な配線であってもよい。物理的な配線である場合は、これらの信号ポートの電圧や電流、極性などの特性に応じて、これらを調節する電子回路を経由していてもよい。以降の説明では、出力信号ポート1040の出力信号の電圧レベルをLowからHighに切り替えた立ち上がりのタイミングで、トリガ信号ポート1034を経由して時刻値131から時刻バッファ132への転写が発生するものとする。
(動作)
図15は、イベント発生時のCPU110の動作を示すフローチャートである。図15は、第1の実施の形態における図5に相当する。CPU110は、イベントが発生すると出力信号ポート1040からHigh信号を出力し(S1101)、次に第1の実施の形態と同様にS502を実行する。そしてCPU110は、出力信号ポート1040からLow信号を出力して図15に示す処理を終了する。なお、第1の実施の形態における図6および図7に相当する動作に変更はない。
上述した第4の実施の形態によれば、次の作用効果が得られる。
(1)タイマ130は記録指令を受け付けるトリガ信号ポート1034を備える。ECU100は、トリガ信号ポート1034へ記録指令を出力する出力信号ポート1040を備える。CPU110は、出力信号ポート1040を介してタイマ130に記録指令を出力する。そのため、タイマ130の時刻値131から時刻バッファ132への転写のトリガが外部ポートとしてのみ存在し、CPU110から直接アサートすることができないECU100であっても、第1の実施の形態と同様の効果を得ることができる。
(第4の実施の形態の変形例)
上述した第4の実施の形態では、トリガ信号ポート1034に対する信号が確実に伝わるように、S502を挟んでS1101の処理とS1103の処理とを実行した。これは、信号レベルをHighからLowに戻すのに一定の時間を要すること一般に必要だからである。しかし、実際の物理特性に応じ、HighとLow信号出力の間隔が短くてよい場合には、S1103をS502の前に実行してもよいし、S502の実行よりも長い間隔が必要であれば、S1103の前に適切な時間の待ちを挿入してもよい。
―第5の実施の形態―
以下、図16〜図19を参照して、本発明にかかるログ記録装置およびログ記録システム1の第5の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ネットワークを介して接続された装置を構成に含む点で、第1の実施の形態と異なる。
(構成)
図16は、ログ記録システム1の構成を表すブロック図である。ログ記録システム1は、ECU1200と、時刻記録装置1230と、ログ記録装置1260とを備える。ECU1200、時刻記録装置1230、ログ記録装置1260は、通信ネットワークバス1280によって接続されており相互に通信可能である。ただし図16にはECUは1台しか記載されていないが、2台以上のECUが通信ネットワークバス1280に接続されてもよい。
ECU1200は、CPU1205、メモリ1210、および第1インタフェース(以下、第1IF)1220を備える。CPU1205は、第1の実施の形態で説明したCPU110と同様のものである。メモリ1210は、システムイベントバッファ1211を持ち、それぞれ第1の実施の形態で説明したメモリ120およびイベントバッファ126と同様のものである。第1IF1220は、Ethernet(登録商標)やCAN(CarAreaNetwork、登録商標)やFlexRay(登録商標)などの通信用のネットワークバスを介して、データの送受信を行うためのインタフェースであり、CPU1205から任意のデータの送受信が可能である。
時刻記録装置1230は、時刻記録を目的とした装置であり、CPU1235、メモリ1240、タイマ1250、および第2IF1255を備える。CPU1235は、CPU1205と同様のものである。メモリ1240は、システム時刻バッファ1241を有し、それぞれ第1の実施の形態で説明したメモリ120および時刻バッファ132と同様のものである。タイマ1250は、時刻値1251を有し、第1の実施の形態で説明したタイマ130および時刻値131と同様のものである。ただし本実施の形態では装置間を跨いだ通信も行われるため、第1の実施の形態におけるタイマ130の機能は、本実施の形態ではタイマ1250、CPU1235、および第2IF1255により実現される。第2IF1255は、第1IF1220と同様のインタフェースであり、CPU1235から任意のデータの送受信が可能である。
ログ記録装置1260は、ログ記録を目的とした装置であり、CPU1265、メモリ1270、第3IF1275を備える。CPU1265は、CPU1205と同様のものである。メモリ1270は、イベント転写バッファ1271、時刻転写バッファ1272、およびシステム統合ログ1273を有する。イベント転写バッファ1271は、ネットワーク転送されたシステムイベントバッファ1211の内容を保持する。時刻転写バッファ1272は、ネットワーク転送されたシステム時刻バッファ1241の内容を保持する。システム統合ログ1273は、これらイベント転写バッファ1271および時刻転写バッファ1272の内容を対応付け、1つの完成したログとして統合したものである。第3IF1275は、第1IF1220と同様のインタフェースであり、CPU1265から任意のデータの送受信が可能である。
図17は、システムイベントバッファ1211の一例を示す図である。システムイベントバッファ1211には複数のレコードが格納され、その各レコードは識別子、イベント、およびイベント情報のフィールドを有する。識別子のフィールドには、イベントを特定する情報が格納される。識別子のフィールドの値は、時刻値131の対応関係を明らかにするために用いられる。イベントおよびイベント情報のフィールドは、第1の実施の形態において図2を参照して説明したイベントバッファ126のイベントおよびイベント情報のフィールドと同様である。
図18は、システム時刻バッファ1241の一例を示す図である。システム時刻バッファ1241には複数のレコードが格納され、その各レコードは識別子、および時刻のフィールドを有する。識別子のフィールドには、システムイベントバッファ1211と同様にイベントが発生したECUを特定する情報が格納される。時刻のフィールドは、第1の実施の形態において図3を参照して説明した時刻バッファ132と同様である。
図19は、システム統合ログ1273の一例を示す図である。システム統合ログ1273には複数のレコードが格納され、その各レコードは識別子、イベント、イベント情報、および時刻のフィールドを有する。識別子のフィールドには、システムイベントバッファ1211と同様にイベントが発生したECUを特定する情報が格納される。その他のフィールドは、第1の実施の形態において図4を参照して説明した統合ログ128と同様である。
(動作)
ログ記録対象のイベントがECU1200において発生した場合のログ記録システム1の動作を説明する。まず、ECU1200のCPU1205は、イベントが発生した際に、CPU1205およびそのイベントを識別するための識別子を生成する。この識別子は、たとえば予め決めてあった一意となるECU1200の識別子とそのECU1200内でのイベントに対する通番を組み合わせたものである。次にCPU1205は、第1IF1220を介して、時刻記録装置1230に対して時刻記録の指示を表すデータを、生成した識別子とともに送信する。そして、発生したイベントの種類、イベントの情報および識別子をシステムイベントバッファ1211の末尾に格納する。すなわちシステムイベントバッファ1211には、イベントの内容がその発生順に記録される。
ECU1200から時刻記録指示を受信した時刻記録装置1230は、CPU1235が時刻値1251を読出し、受け取った時刻記録指示に含まれる識別子とともに、システム時刻バッファ1241に格納する。
ECU1200は、システムイベントバッファ1211が一杯になると、その内容をログ記録装置1260に送信する。これを受信したログ記録装置1260のCPU1265は、これをイベント転写バッファ1271に格納する。時刻記録装置1230は、システム時刻バッファ1241がいっぱいになると、その内容をログ記録装置1260に送信する。これを受信したログ記録装置1260のCPU1265は、これを時刻転写バッファ1272に格納する。ログ記録装置1260のCPU1265は、イベント転写バッファ1271および時刻転写バッファ1272から同一の識別子を持つデータを抽出し、対応付けを行い、システム統合ログ1273に格納する。これにより、時刻情報とイベント情報が両方含まれる最終的なログが完成する。
上述した第5の実施の形態によれば、次の作用効果が得られる。
(1)ログ記録装置1260は、複数のイベントの内容が発生順に記録されたシステムイベントバッファ1211の記録情報、および複数のイベントの発生時刻が記録されたシステム時刻バッファ1241の記録情報を受信する第3IF1275と、第3IF1275が受信したシステムイベントバッファ1211の記録情報とシステム時刻バッファ1241の記録情報とを対応付けてログを生成するCPU1265と、CPU1265が生成したシステム統合ログ1273を記録するメモリ1270とを備える。そのためログ記録装置1260は、受信したイベント情報と時刻情報を統合して記録することができる。
(2)ログ記録装置1260は、システムイベントバッファ1211の記録情報およびシステム時刻バッファ1241の記録情報には、イベントが発生した装置を示す識別子が含まれる。CPU1265は、識別子に基づいて装置ごとに対応付けを行う。そのためログ記録装置1260は、複数のECUで発生したイベントのログを時刻情報と対応付けて記録することができる。
(3)ログ記録システム1は、ログ記録装置1260、ECU1200、および時刻記録装置1230を備える。ECU1200は、イベントが発生するとシステムイベントバッファ1211にイベントの内容を発生順に記録するCPU1205と、イベントが発生すると時刻記録装置1230に記録指令を出力するCPU1205と、CPU1205が記録したイベントの内容をログ記録装置1260に送信する第1IF1220とを備える。時刻記録装置1230は、記録指令を受信すると時刻情報をシステム時刻バッファ1241に記録するCPU1235と、CPU1235が記録した時刻情報をログ記録装置1260に送信する第2IF1255とを備える。そのため、タイムスタンプを取得可能なタイマのようなデバイスを持たないECU1200を含むシステムにおいても、タイムスタンプを含むECU1200で発生したイベントログを生成することができる。すなわち、タイマデバイスを備える装置を時刻記録装置1230の一つに集約することができる。また、時刻情報の取得等は、ECU1200ではなく時刻記録装置1230で行うため、応答性の要求されるECU1200の応答性を損なうことなく、ログにタイムスタンプを付加する効果が得られる。
(第5の実施の形態の変形例1)
通信ネットワークバス1280にECUが1台しか接続されない場合、または1台のECUのログしか記録しない場合は、ECU1200は識別子を生成しなくてもよい。この場合は、図17〜図19に示したシステムイベントバッファ1211、システム時刻バッファ1241、およびシステム統合ログ1273から識別子のフィールドを削除する。本変形例によれば、それぞれのメモリの消費量およびネットワークを介した通信量を削減することができる。
(第5の実施の形態の変形例2)
上述した実施の形態では、ECU1200からログ記録装置1260へのシステムイベントバッファ1211の転送、および時刻記録装置1230からログ記録装置1260へのシステム時刻バッファ1241の転送の契機をそれぞれのバッファがいっぱいになったタイミングとした。しかし、それぞれのCPUがアイドル状態である時、また、ネットワークの通信が少ない時などに上述した転送を行ってもよい。本変形例によれば、転送処理が演算リソースやネットワークリソースを占有することによる他の処理への悪影響、具体的にはリソースを奪い合い実行の遅延を生じさせる弊害を防止できる。
(第5の実施の形態の変形例3)
ECU1200から時刻記録装置1230への時刻記録の指示と、システムイベントバッファ1211およびシステム時刻バッファ1241の転送とを異なるネットワークにより実現してもよい。たとえば、時刻記録装置1230からログ記録装置1260に対する通信において、RDMAと呼ばれる機能を備えたネットワークインタフェースを用いることで、ログ記録装置1260の時刻転写バッファ1272あるいはシステム統合ログ1273に対して直接転送を行う。そしてECU1200から時刻記録装置1230への時刻記録の指示には異なるネットワークインタフェースを用いる。これにより、ネットワークの特性を生かした構成とすることができる。
(第5の実施の形態の変形例4)
ECU1200、時刻記録装置1230、ログ記録装置1260を独立した装置として記述したが、これらのうち2つが実際には同一の装置であってもよい。これにより、特にログの量が比較的少ない場合に、システムのコストを削減できる効果が得られる。
(第5の実施の形態の変形例5)
識別子はイベントが発生したECUのみを特定するものでもよい。換言すると、同一のECUにおいて発生したイベントは識別子により識別できなくてもよい。イベントは発生した順番に記録され、ECUごとに発生したイベントの順番でシステム時刻バッファ1241とシステムイベントバッファ1211とを対応付けることができるからである。本変形例によれば、それぞれのECUにおいて識別子が固定値となるので識別子を随時生成する必要がなくなり、処理を高速化することができる。
プログラムは不図示のROMに格納されるとしたが、プログラムはメモリ120に格納されていてもよい。また、ECU100が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとECU100が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1…ログ記録システム
121…ログ記録部
126…イベントバッファ
127…時刻転写バッファ
128…統合ログ
130、1250…タイマ
132…時刻バッファ
133…時刻取得トリガ
134…DMAエンジン
723…直接統合ログ
735…転送先アドレス
1034…トリガ信号ポート
1040…出力信号ポート
1211…システムイベントバッファ
1230…時刻記録装置
1241…システム時刻バッファ
1260…ログ記録装置
1271…イベント転写バッファ
1272…時刻転写バッファ
1273…システム統合ログ
1280…通信ネットワークバス

Claims (9)

  1. 記録指令に基づきイベントの発生時刻を第1の記憶領域に記録するタイマと、
    前記イベントが発生すると前記イベントの内容を第2の記憶領域に記録するとともに前記タイマに前記記録指令を出力する演算部と、
    前記イベントの内容と前記イベントの発生時刻との対応付けを行う対応付け部とを備える演算装置。
  2. 請求項1に記載の演算装置において、
    前記タイマは、前記イベントの発生時刻を前記第1の記憶領域に発生した順番に記録し、
    前記演算部は、前記イベントの内容を前記第2の記憶領域に発生した順番に記録し、
    前記対応付け部は、記録された順番に基づき前記イベントの発生時刻と前記イベントの内容とを対応付ける演算装置。
  3. 請求項1に記載の演算装置において、
    前記タイマは、
    前記記録指令を受けた時間が前記イベントの発生時刻として記録されるローカル記憶部と、
    前記ローカル記憶部に記録された前記イベントの発生時刻を前記第1の記憶領域に転記する転記部とを備え、
    前記転記部は、前記ローカル記憶部の空き容量が所定の容量以下になると前記転記を行い、前記ローカル記憶部から前記イベントの発生時刻を消去する演算装置。
  4. 請求項3に記載の演算装置において、
    前記対応付け部は、前記転記部による前記転記が行われると前記対応付けを行い、前記第1の記憶領域に記録された前記イベントの発生時刻および前記第2の記憶領域に記録された前記イベントの内容を消去する演算装置。
  5. 請求項1に記載の演算装置において、
    前記第1の記憶領域と前記第2の記憶領域は同一の物理メモリ内に確保され、
    前記タイマは、
    前記記録指令を受けた時間が前記イベントの発生時刻として記録されるローカル記憶部と、
    前記ローカル記憶部に記録された前記イベントの発生時刻を前記第1の記憶領域に転記する転記部とを備え、
    前記対応付け部は、前記転記部が前記イベントの発生時刻を書き込む前記第1の記憶領域内の詳細な位置を前記転記部に指定することで前記対応付けを行う演算装置。
  6. 請求項1に記載の演算装置において、
    前記タイマは前記記録指令を受け付けるトリガ入力部を備え、
    前記演算装置は、前記トリガ入力部へ前記記録指令を出力する指令出力部をさらに備え、
    前記演算部は、前記指令出力部を介して前記タイマに前記記録指令を出力する演算装置。
  7. 複数のイベントの内容が発生順に記録された第1情報、および複数のイベントの発生時刻が記録された第2情報を受信する通信部と、
    前記通信部が受信した前記第1情報と前記第2情報とを対応付けてログを生成する対応付け部と、
    前記対応付け部が生成した前記ログを記録する記憶部とを備えるログ記録装置。
  8. 請求項7に記載のログ記録装置において、
    前記第1情報および前記第2情報には、イベントが発生した装置を示す識別子が含まれ、
    前記対応付け部は、前記識別子に基づいて装置ごとに前記対応付けを行うログ記録装置。
  9. 制御装置、時刻記録装置、および請求項7に記載のログ記録装置を備えるログ記録システムであって、
    前記制御装置は、
    イベントが発生すると前記イベントの内容を発生順に記録するイベント記録部と、
    イベントが発生すると前記時刻記録装置に記録指令を出力する記録指令部と、
    前記イベント記録部が記録した前記イベントの内容を前記第1情報として前記ログ記録装置に送信する制御装置通信部とを備え、
    前記時刻記録装置は、
    前記記録指令を受信すると時刻情報を記録するタイマと、
    前記タイマが記録した前記時刻情報を前記第2情報として前記ログ記録装置に送信する時刻記録装置通信部とを備えるログ記録システム。
JP2017125882A 2017-06-28 2017-06-28 演算装置 Active JP6869823B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017125882A JP6869823B2 (ja) 2017-06-28 2017-06-28 演算装置
PCT/JP2018/022091 WO2019003863A1 (ja) 2017-06-28 2018-06-08 演算装置、ログ記録装置、ログ記録システム
DE112018002505.5T DE112018002505T5 (de) 2017-06-28 2018-06-08 Recheneinheit, Logaufzeichnungsvorrichtung, Logaufzeichnungssystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017125882A JP6869823B2 (ja) 2017-06-28 2017-06-28 演算装置

Publications (2)

Publication Number Publication Date
JP2019008687A true JP2019008687A (ja) 2019-01-17
JP6869823B2 JP6869823B2 (ja) 2021-05-12

Family

ID=64741441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017125882A Active JP6869823B2 (ja) 2017-06-28 2017-06-28 演算装置

Country Status (3)

Country Link
JP (1) JP6869823B2 (ja)
DE (1) DE112018002505T5 (ja)
WO (1) WO2019003863A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182948A (ja) * 2000-12-08 2002-06-28 Hitachi Ltd トレース取得方法および装置
JP2005222446A (ja) * 2004-02-09 2005-08-18 Matsushita Electric Ind Co Ltd オンボードデバッグ装置および半導体回路装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4860327B2 (ja) * 2006-03-31 2012-01-25 株式会社エヌ・ティ・ティ・データ 時刻証明装置及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182948A (ja) * 2000-12-08 2002-06-28 Hitachi Ltd トレース取得方法および装置
JP2005222446A (ja) * 2004-02-09 2005-08-18 Matsushita Electric Ind Co Ltd オンボードデバッグ装置および半導体回路装置

Also Published As

Publication number Publication date
DE112018002505T5 (de) 2020-03-19
JP6869823B2 (ja) 2021-05-12
WO2019003863A1 (ja) 2019-01-03

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
US8447897B2 (en) Bandwidth control for a direct memory access unit within a data processing system
JP4834362B2 (ja) メモリ制御装置。
US20200081864A1 (en) Instructions for Performing Multi-Line Memory Accesses
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN114902198B (zh) 用于异构存储器系统的信令
CN114580344A (zh) 测试激励生成方法、验证方法、验证系统及相关设备
EP3036648B1 (en) Enhanced data transfer in multi-cpu systems
CN116089343A (zh) 一种基于axi的数据存储方法、装置、存储介质及设备
JP5637145B2 (ja) バスモニタ回路及びバスモニタ方法
JP2008287319A (ja) 半導体デバイス、電子装置及びアクセスログ取得方法
US10216634B2 (en) Cache directory processing method for multi-core processor system, and directory controller
CN115509959A (zh) 处理系统、控制方法、芯片及计算机可读存储介质
CN107250995B (zh) 存储器管理设备
JP2010211322A (ja) ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
US20070050553A1 (en) Processing modules with multilevel cache architecture
JP6869823B2 (ja) 演算装置
US9092486B2 (en) Extensible I/O activity logs
KR102576707B1 (ko) 전자 시스템 및 그 동작 방법
US20070150653A1 (en) Processing of cacheable streaming data
JPWO2012108024A1 (ja) 中継装置、中継履歴記録方法、及びデータ処理装置
US20130173862A1 (en) Method for cleaning cache of processor and associated processor
CN108234147B (zh) Gpdsp中基于主机计数的dma广播数据传输方法
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210414

R150 Certificate of patent or registration of utility model

Ref document number: 6869823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250