説明

タイムスタンプ取得装置及びタイムスタンプ取得方法

【課題】 高精細なハードウェアを搭載せず、微細時間のタイムスタンプを取得する。
【解決手段】 計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Tを取得する第1の時刻更新処理部(108、108a)と、ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Cを算出する第2の時刻更新処理部(108、108b)と、所定イベント発生の際、ウオッチドッグタイマのカウント値Cmを取得して計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値(C+Cm)を算出し、累積カウント値(C+Cm)、1カウントに要する時間Δt、計時情報Tからタイムスタンプ値Tsを算出するタイムスタンプ生成処理部(109)とを備えたタイムスタンプ取得装置(107)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、ウオッチドッグタイマを利用したタイムスタンプ取得装置及びタイムスタンプ取得方法に関する。
【背景技術】
【0002】
情報処理装置では、所定のイベントが発生した時刻情報(タイムスタンプ)を取得する機能が必要とされることが多い。そして、近年の情報処理の高速化に伴い、取得するべき時刻情報の最小単位が微細化している。例えば、マイクロ秒オーダの時刻情報の取得が求められる。そのような微細な時刻情報を取得する際には、情報処理装置内部に設けられた専用の内部時計を利用する方法が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−49554号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、微細な時刻情報を取得するためには、高精細な内部時計が必要となり、ハードウェアコストの上昇につながる。また、情報処理装置によっては、ハードウェアの構成上の制約から高精細な内部時計を搭載することが困難となる場合もある。
【0005】
従って、特別なハードウェアを搭載することなく、微細時間のタイムスタンプを取得することのできる技術のニーズが存在する。
【課題を解決するための手段】
【0006】
上記課題を解決するための本発明の実施の形態によれば、計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Tを取得する第1の時刻更新処理部と、ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Cを算出する第2の時刻更新処理部と、所定イベント発生の際、ウオッチドッグタイマのカウント値Cmを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値(C+Cm)を算出し、累積カウント値(C+Cm)、1カウントに要する時間Δt、前記計時情報Tからタイムスタンプ値Tsを算出するタイムスタンプ生成処理部とを備えたタイムスタンプ取得装置が提供される。
【図面の簡単な説明】
【0007】
【図1】本実施形態に係るタイムスタンプ取得装置を搭載する情報処理装置の構成例について説明するためのブロック図。
【図2】実施の形態のウオッチドッグタイマの動作について説明するための図。
【図3】本実施の形態の時刻更新処理部の動作手順を示す図。
【図4】本実施の形態のタイムスタンプ生成処理部の動作手順を示す図。
【図5】第2の実施の形態の時刻更新処理部の動作手順を示す図。
【図6】第2の実施の形態の時刻更新処理部の動作手順を示す図。
【発明を実施するための形態】
【0008】
〔第1の実施の形態〕
以下、図面を参照しながら、本発明の実施形態に係るタイムスタンプ取得装置について詳細に説明する。
【0009】
図1は、本実施形態に係るタイムスタンプ取得装置を搭載する情報処理装置の構成例について説明するためのブロック図である。
図1に示すように情報処理装置100は、CPU101、RTC(リアルタイムクロック)102、WDT(ウオッチドッグタイマ)103、プログラムメモリ部104及びメモリ部105を備えている。
【0010】
CPU101は、クロック信号に同期して情報処理装置100に組み込まれた命令を順次実行する。RTC102は、実時間(年月日時分秒)を生成する計時回路である。WDT103は、クロック信号をカウントし、カウント値が所定値よりも大きくなった場合、CPU101に対して異常発生を表すCPU割り込みを出力する。なお、CPU101、RTC102、WDT103は、同じCPUボード上に構成される。
【0011】
プログラムメモリ部104は情報処理装置100を制御するプログラムを格納する。メモリ部105は、種々のデータを格納する。メモリ部105は、揮発性メモリで構成しても良く、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリで構成しても良い。
【0012】
プログラムメモリ部104は、アプリケーション部106及びタイムスタンプ取得部107を有している。そして、タイムスタンプ取得部107には、時刻更新処理部108及びタイムスタンプ生成処理部109が設けられている。アプリケーション部106は、情報処理装置100を制御するアプリケーションプログラムである。なお、タイムスタンプの取得に関しては、タイムスタンプ取得部107が実行する。時刻更新処理部108及びタイムスタンプ生成処理部109については後で詳細に説明する。
【0013】
図2は、実施の形態のウオッチドッグタイマの動作について説明するための図である。図2の横軸は経過時間を表し、縦軸はWDT103によるカウント値を表している。そして、このカウント値には、エラーとなる閾値が設定されている。
【0014】
情報処理装置100が起動後、WDT103は、サイクリックに起動してカウントを加算する。WDT103が、カウントする周期は、例えばCPUのクロック周波数に対応するμ秒オーダである。一方、アプリケーション部106は所定周期で起動して、WDT103にカウント値のリセットを指示する。リセット指示を受け取ったWDT103は、カウント値をリセットして、新しく0からカウントを開始する。
【0015】
図2に示すように、カウント値は時間間隔C1、C2、C3・・・でリセットされるため、カウント値が閾値に達することはない。このとき、時間間隔を、例えば、m(ミリ)秒オーダに設定する。アプリケーション部106は、情報処理装置100が正常に稼動しているときは、設定された時間間隔でリセット指示を出力することができる。しかし、情報処理装置100が処理を続行できないような異常状態に陥った場合は、アプリケーション部106が、リセット指示を出力することができなくなる。その結果、カウント値が閾値をオーバし、WDT103はCPU101に対して、例外(異常状態発生)の割り込みを出力する。
【0016】
本実施の形態では、このWDT103を利用して微細なタイムスタンプを取得する。
【0017】
図3は、本実施の形態の時刻更新処理部108の動作手順を示す図である。時刻更新処理部108は、アプリケーション部106がリセット指示を出力する際に起動する。
【0018】
ステップS01において、時刻更新処理部108はRTC102から実時間(RTC値)を取得する。そして、取得したRTC値を内部変数のTnに代入する。ステップS02において、取得したRTC値(Tn)と過去の所定時に取得したRTC値(T)とが等しいかどうかを調べる。ここでRTC値は、最小単位が百ミリ秒〜秒である。従って、WDT103が取り扱うμ秒単位でのカウント値とはオーダが異なる。このため、RTC値の最小単位が桁上がりを生ずるまでには、時刻更新処理部108が複数回起動する。
【0019】
取得したRTC値(Tn)と過去の所定時に取得したRTC値(T)とが等しくない場合(S02 No)、Tを今回取得したRTC値(Tn)で更新する。即ち、RTC値の最小単位が桁上がりを生じた場合はその最新のRTC値を格納する。そして、累積カウント値(C)を0クリアする。
【0020】
取得したRTC値(Tn)と過去の所定時に取得したRTC値(T)とが等しい場合(S02 Yes)、ステップS05において、WDT103がカウントしたカウント値を取得し、その値を内部変数Cnに代入する。このカウント値Cnは図2の時間間隔C1、C2、C3、・・・に対応した値である。そして、ステップS06において、累積カウント値(C)にカウント値Cnを加算する。従って、累積カウント値(C)は、RTC値の最小単位が桁上がりを生じたことを把握した以降のカウント値の累積値である。RTC値(T)は、RTC値の最小単位が桁上がりを生じたことを把握した際のRTC値である。
【0021】
なお、累積カウント値(C)及びRTC値(T)は、メモリ部105に格納され、アプリケーション部106によって適宜参照されることができる。
【0022】
図4は、本実施の形態のタイムスタンプ生成処理部109の動作手順を示す図である。タイムスタンプ生成処理部109は、タイムスタンプを生成する要求が出された際に起動する。例えば、所定のイベントが発生して、そのときのタイムスタンプを取得したい場合にタイムスタンプ生成処理部109を起動する。
【0023】
ステップS11において、WDT103がカウントしたカウント値を取得し、その値を内部変数Cmに代入する。ステップS12において、微細時間補正値(t)を式(1)に基いて算出する。
t=(C +Cm)/周波数 ・・・式(1)
ここで、周波数は、WDT103の1カウント時間の逆数である。例えば、WDT103は、CPUのクロック周波数でカウントするように構成しても良く、CPUのクロック周波数を分周(例えば、1/2、1/3、・・など)した周波数でカウントするように構成しても良い。また、1カウントに要する時間Δtを用いて微細時間補正値(t)を算出しても良い。
式(1)で求めた微細時間補正値(t)は、RTC値の最小単位が桁上がりを生じたことを把握してからの経過時間を表している。
【0024】
ステップS13において、タイムスタンプ値Tsを式(2)に基いて算出する。
Ts=T +t 式(2)
この式(2)によれば、タイムスタンプ値は、WDT103が取り扱うμ秒単位での値として表される。
【0025】
〔第2の実施の形態〕
第2の実施の形態では、時刻更新処理部の動作手順が第1の実施の形態と異なっている。従って、第1の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
【0026】
第1の実施の形態では、時刻更新処理部108はアプリケーション部106がリセット指示を出力する際に起動する。従って、RTC値の最小単位が桁上がりを生じたタイミングとは正確には一致していない。しかし、第1の実施の形態で算出したタイムスタンプの精度は、従来のRTC値によるタイムスタンプの精度に比べるとオーダが異なるほど格段に改善されているため、適用対象によっては十分な精度を確保している。
【0027】
第2の実施の形態では、更にタイムスタンプの精度を向上させる。第2の実施の形態では、時刻更新処理部108は、時刻更新処理部108a及び時刻更新処理部108bで構成される。
【0028】
図5は、第2の実施の形態の時刻更新処理部108aの動作手順を示す図である。時刻更新処理部108aは、RTC値の最小単位が桁上がりを生じた際に起動する。
【0029】
ステップS21において、時刻更新処理部108aはRTC102から実時間(RTC値)を取得する。そして、取得したRTC値を内部変数のTnに代入する。ステップS22において、取得したRTC値(Tn)を前回RTC値の最小単位が桁上がりを生じた時に取得したRTC値(T)に代入する。ステップS23において、累積カウント値(C)を0クリアする。ステップS24において、WDT103のカウント値を取得して桁上がり時のカウント値(Ck)に代入する。
【0030】
なお、累積カウント値(C)、RTC値(T)、及び桁上がり時のカウント値(Ck)は、メモリ部105に格納され、アプリケーション部106によって適宜参照されることができる。
【0031】
図6は、第2の実施の形態の時刻更新処理部108bの動作手順を示す図である。時刻更新処理部108bは、アプリケーション部106がサイクリックに起動してリセット指示を出力する際に起動する。
【0032】
ステップS25において、時刻更新処理部108bは、WDT103がカウントしたカウント値を取得し、その値を内部変数Cnに代入する。このカウント値Cnは図2の時間間隔C1、C2、C3、・・・に対応した値である。そして、ステップS26において、累積カウント値(C)にカウント値Cnを加算し、さらに桁上がり時のカウント値(Ck)を減算する。従って、累積カウント値(C)は、RTC値の最小単位が桁上がりを生じた以降のカウント値の累積値である。ステップS27において、桁上がり時のカウント値(Ck)を0クリアする。
【0033】
なお、累積カウント値(C)、RTC値(T)、及び桁上がり時のカウント値(Ck)は、メモリ部105に格納され、アプリケーション部106によって適宜参照されることができる。
【0034】
なお、第2の実施の形態のタイムスタンプ処理部の動作は、第1の実施の形態のタイムスタンプ処理部の動作と同じであるため、その詳細の説明は省略する。
【0035】
第2の実施の形態によれば、RTC102から最小桁の桁上がり信号を入力する必要があるが、RTC102を高精度のものに更新する必要はないため、安価に高精度のタイムスタンプを取得することができる。
【0036】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0037】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0038】
100…情報処理装置、101…CPU、102…RTC、103…WDT、104…プログラムメモリ部、105…メモリ部、106…アプリケーション部、107…タイムスタンプ取得部、108、108a、108b…時刻更新処理部、109…タイムスタンプ生成処理部。

【特許請求の範囲】
【請求項1】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報T、前記計時情報の最小桁が桁上がりを生じたことを把握してからのウオッチドッグタイマの累積カウント値C、所定イベント発生の際のウオッチドッグタイマのカウント値Cm、ウオッチドッグタイマの1カウントに要する時間Δtを用いて、下記式によりタイムスタンプ値Tsを算出することを特徴とするタイムスタンプ取得装置。
Ts=T+(C+Cm)×Δt
【請求項2】
ウオッチドッグタイマのカウント値をリセットする際、前記計時情報の最小桁が桁上がりを生じたか否かを把握することを特徴とする請求項1に記載のタイムスタンプ取得装置。
【請求項3】
前記計時回路からの信号によって前記計時情報の最小桁が桁上がりを生じたことを把握することを特徴とする請求項1に記載のタイムスタンプ取得装置。
【請求項4】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Tを取得する第1の時刻更新処理部と、
ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Cを算出する第2の時刻更新処理部と、
所定イベント発生の際、ウオッチドッグタイマのカウント値Cmを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値(C+Cm)を算出し、累積カウント値(C+Cm)、1カウントに要する時間Δt、前記計時情報Tからタイムスタンプ値Tsを算出するタイムスタンプ生成処理部と
を備えたことを特徴とするタイムスタンプ取得装置。
【請求項5】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報T、前記計時情報の最小桁が桁上がりを生じたことを把握してからのウオッチドッグタイマの累積カウント値C、所定イベント発生の際のウオッチドッグタイマのカウント値Cm、ウオッチドッグタイマの1カウントに要する時間Δtを用いて、下記式によりタイムスタンプ値Tsを算出することを特徴とするタイムスタンプ取得方法。
Ts=T+(C+Cm)×Δt
【請求項6】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Tを取得し、
ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Cを算出し、
所定イベント発生の際、ウオッチドッグタイマのカウント値Cmを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値(C+Cm)を算出し、
累積カウント値(C+Cm)、1カウントに要する時間Δt、前記計時情報Tからタイムスタンプ値Tsを算出することを特徴とするタイムスタンプ取得方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate