(57)【要約】【課題】  高精細なハードウェアを搭載せず、微細時間のタイムスタンプを取得する。【解決手段】  計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔを取得する第１の時刻更新処理部（１０８、１０８ａ）と、ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Ｃを算出する第２の時刻更新処理部（１０８、１０８ｂ）と、所定イベント発生の際、ウオッチドッグタイマのカウント値Ｃｍを取得して計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値（Ｃ＋Ｃｍ）を算出し、累積カウント値（Ｃ＋Ｃｍ）、１カウントに要する時間Δｔ、計時情報Ｔからタイムスタンプ値Ｔｓを算出するタイムスタンプ生成処理部（１０９）とを備えたタイムスタンプ取得装置（１０７）。【選択図】図１
2012165048.tif 000002
【特許請求の範囲】
【請求項１】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔ、前記計時情報の最小桁が桁上がりを生じたことを把握してからのウオッチドッグタイマの累積カウント値Ｃ、所定イベント発生の際のウオッチドッグタイマのカウント値Ｃｍ、ウオッチドッグタイマの１カウントに要する時間Δｔを用いて、下記式によりタイムスタンプ値Ｔｓを算出することを特徴とするタイムスタンプ取得装置。
Ｔｓ＝Ｔ＋（Ｃ＋Ｃｍ）×Δｔ
【請求項２】
ウオッチドッグタイマのカウント値をリセットする際、前記計時情報の最小桁が桁上がりを生じたか否かを把握することを特徴とする請求項１に記載のタイムスタンプ取得装置。
【請求項３】
前記計時回路からの信号によって前記計時情報の最小桁が桁上がりを生じたことを把握することを特徴とする請求項１に記載のタイムスタンプ取得装置。
【請求項４】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔを取得する第１の時刻更新処理部と、
ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Ｃを算出する第２の時刻更新処理部と、
所定イベント発生の際、ウオッチドッグタイマのカウント値Ｃｍを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値（Ｃ＋Ｃｍ）を算出し、累積カウント値（Ｃ＋Ｃｍ）、１カウントに要する時間Δｔ、前記計時情報Ｔからタイムスタンプ値Ｔｓを算出するタイムスタンプ生成処理部と
を備えたことを特徴とするタイムスタンプ取得装置。
【請求項５】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔ、前記計時情報の最小桁が桁上がりを生じたことを把握してからのウオッチドッグタイマの累積カウント値Ｃ、所定イベント発生の際のウオッチドッグタイマのカウント値Ｃｍ、ウオッチドッグタイマの１カウントに要する時間Δｔを用いて、下記式によりタイムスタンプ値Ｔｓを算出することを特徴とするタイムスタンプ取得方法。
Ｔｓ＝Ｔ＋（Ｃ＋Ｃｍ）×Δｔ
【請求項６】
計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔを取得し、
ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Ｃを算出し、
所定イベント発生の際、ウオッチドッグタイマのカウント値Ｃｍを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値（Ｃ＋Ｃｍ）を算出し、
累積カウント値（Ｃ＋Ｃｍ）、１カウントに要する時間Δｔ、前記計時情報Ｔからタイムスタンプ値Ｔｓを算出することを特徴とするタイムスタンプ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、ウオッチドッグタイマを利用したタイムスタンプ取得装置及びタイムスタンプ取得方法に関する。
【背景技術】
【０００２】
情報処理装置では、所定のイベントが発生した時刻情報（タイムスタンプ）を取得する機能が必要とされることが多い。そして、近年の情報処理の高速化に伴い、取得するべき時刻情報の最小単位が微細化している。例えば、マイクロ秒オーダの時刻情報の取得が求められる。そのような微細な時刻情報を取得する際には、情報処理装置内部に設けられた専用の内部時計を利用する方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−４９５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、微細な時刻情報を取得するためには、高精細な内部時計が必要となり、ハードウェアコストの上昇につながる。また、情報処理装置によっては、ハードウェアの構成上の制約から高精細な内部時計を搭載することが困難となる場合もある。
【０００５】
従って、特別なハードウェアを搭載することなく、微細時間のタイムスタンプを取得することのできる技術のニーズが存在する。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明の実施の形態によれば、計時回路の計時情報の最小桁が桁上がりを生じたことを把握した際の当該計時情報Ｔを取得する第１の時刻更新処理部と、ウオッチドッグタイマのカウント値をリセットする際、リセット前のカウント値を取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値Ｃを算出する第２の時刻更新処理部と、所定イベント発生の際、ウオッチドッグタイマのカウント値Ｃｍを取得して前記計時情報の最小桁が桁上がりを生じたことを把握してからの累積カウント値（Ｃ＋Ｃｍ）を算出し、累積カウント値（Ｃ＋Ｃｍ）、１カウントに要する時間Δｔ、前記計時情報Ｔからタイムスタンプ値Ｔｓを算出するタイムスタンプ生成処理部とを備えたタイムスタンプ取得装置が提供される。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係るタイムスタンプ取得装置を搭載する情報処理装置の構成例について説明するためのブロック図。
【図２】実施の形態のウオッチドッグタイマの動作について説明するための図。
【図３】本実施の形態の時刻更新処理部の動作手順を示す図。
【図４】本実施の形態のタイムスタンプ生成処理部の動作手順を示す図。
【図５】第２の実施の形態の時刻更新処理部の動作手順を示す図。
【図６】第２の実施の形態の時刻更新処理部の動作手順を示す図。
【発明を実施するための形態】
【０００８】
〔第１の実施の形態〕
以下、図面を参照しながら、本発明の実施形態に係るタイムスタンプ取得装置について詳細に説明する。
【０００９】
図１は、本実施形態に係るタイムスタンプ取得装置を搭載する情報処理装置の構成例について説明するためのブロック図である。  
図１に示すように情報処理装置１００は、ＣＰＵ１０１、ＲＴＣ（リアルタイムクロック）１０２、ＷＤＴ（ウオッチドッグタイマ）１０３、プログラムメモリ部１０４及びメモリ部１０５を備えている。
【００１０】
ＣＰＵ１０１は、クロック信号に同期して情報処理装置１００に組み込まれた命令を順次実行する。ＲＴＣ１０２は、実時間（年月日時分秒）を生成する計時回路である。ＷＤＴ１０３は、クロック信号をカウントし、カウント値が所定値よりも大きくなった場合、ＣＰＵ１０１に対して異常発生を表すＣＰＵ割り込みを出力する。なお、ＣＰＵ１０１、ＲＴＣ１０２、ＷＤＴ１０３は、同じＣＰＵボード上に構成される。
【００１１】
プログラムメモリ部１０４は情報処理装置１００を制御するプログラムを格納する。メモリ部１０５は、種々のデータを格納する。メモリ部１０５は、揮発性メモリで構成しても良く、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリで構成しても良い。
【００１２】
プログラムメモリ部１０４は、アプリケーション部１０６及びタイムスタンプ取得部１０７を有している。そして、タイムスタンプ取得部１０７には、時刻更新処理部１０８及びタイムスタンプ生成処理部１０９が設けられている。アプリケーション部１０６は、情報処理装置１００を制御するアプリケーションプログラムである。なお、タイムスタンプの取得に関しては、タイムスタンプ取得部１０７が実行する。時刻更新処理部１０８及びタイムスタンプ生成処理部１０９については後で詳細に説明する。
【００１３】
図２は、実施の形態のウオッチドッグタイマの動作について説明するための図である。図２の横軸は経過時間を表し、縦軸はＷＤＴ１０３によるカウント値を表している。そして、このカウント値には、エラーとなる閾値が設定されている。
【００１４】
情報処理装置１００が起動後、ＷＤＴ１０３は、サイクリックに起動してカウントを加算する。ＷＤＴ１０３が、カウントする周期は、例えばＣＰＵのクロック周波数に対応するμ秒オーダである。一方、アプリケーション部１０６は所定周期で起動して、ＷＤＴ１０３にカウント値のリセットを指示する。リセット指示を受け取ったＷＤＴ１０３は、カウント値をリセットして、新しく０からカウントを開始する。
【００１５】
図２に示すように、カウント値は時間間隔Ｃ１、Ｃ２、Ｃ３・・・でリセットされるため、カウント値が閾値に達することはない。このとき、時間間隔を、例えば、ｍ（ミリ）秒オーダに設定する。アプリケーション部１０６は、情報処理装置１００が正常に稼動しているときは、設定された時間間隔でリセット指示を出力することができる。しかし、情報処理装置１００が処理を続行できないような異常状態に陥った場合は、アプリケーション部１０６が、リセット指示を出力することができなくなる。その結果、カウント値が閾値をオーバし、ＷＤＴ１０３はＣＰＵ１０１に対して、例外（異常状態発生）の割り込みを出力する。
【００１６】
本実施の形態では、このＷＤＴ１０３を利用して微細なタイムスタンプを取得する。
【００１７】
図３は、本実施の形態の時刻更新処理部１０８の動作手順を示す図である。時刻更新処理部１０８は、アプリケーション部１０６がリセット指示を出力する際に起動する。
【００１８】
ステップＳ０１において、時刻更新処理部１０８はＲＴＣ１０２から実時間（ＲＴＣ値）を取得する。そして、取得したＲＴＣ値を内部変数のＴｎに代入する。ステップＳ０２において、取得したＲＴＣ値（Ｔｎ）と過去の所定時に取得したＲＴＣ値（Ｔ）とが等しいかどうかを調べる。ここでＲＴＣ値は、最小単位が百ミリ秒〜秒である。従って、ＷＤＴ１０３が取り扱うμ秒単位でのカウント値とはオーダが異なる。このため、ＲＴＣ値の最小単位が桁上がりを生ずるまでには、時刻更新処理部１０８が複数回起動する。
【００１９】
取得したＲＴＣ値（Ｔｎ）と過去の所定時に取得したＲＴＣ値（Ｔ）とが等しくない場合（Ｓ０２  Ｎｏ）、Ｔを今回取得したＲＴＣ値（Ｔｎ）で更新する。即ち、ＲＴＣ値の最小単位が桁上がりを生じた場合はその最新のＲＴＣ値を格納する。そして、累積カウント値（Ｃ）を０クリアする。
【００２０】
取得したＲＴＣ値（Ｔｎ）と過去の所定時に取得したＲＴＣ値（Ｔ）とが等しい場合（Ｓ０２  Ｙｅｓ）、ステップＳ０５において、ＷＤＴ１０３がカウントしたカウント値を取得し、その値を内部変数Ｃｎに代入する。このカウント値Ｃｎは図２の時間間隔Ｃ１、Ｃ２、Ｃ３、・・・に対応した値である。そして、ステップＳ０６において、累積カウント値（Ｃ）にカウント値Ｃｎを加算する。従って、累積カウント値（Ｃ）は、ＲＴＣ値の最小単位が桁上がりを生じたことを把握した以降のカウント値の累積値である。ＲＴＣ値（Ｔ）は、ＲＴＣ値の最小単位が桁上がりを生じたことを把握した際のＲＴＣ値である。
【００２１】
なお、累積カウント値（Ｃ）及びＲＴＣ値（Ｔ）は、メモリ部１０５に格納され、アプリケーション部１０６によって適宜参照されることができる。
【００２２】
図４は、本実施の形態のタイムスタンプ生成処理部１０９の動作手順を示す図である。タイムスタンプ生成処理部１０９は、タイムスタンプを生成する要求が出された際に起動する。例えば、所定のイベントが発生して、そのときのタイムスタンプを取得したい場合にタイムスタンプ生成処理部１０９を起動する。
【００２３】
ステップＳ１１において、ＷＤＴ１０３がカウントしたカウント値を取得し、その値を内部変数Ｃｍに代入する。ステップＳ１２において、微細時間補正値（ｔ）を式（１）に基いて算出する。  
ｔ＝（Ｃ  ＋Ｃｍ）／周波数            ・・・式（１）
ここで、周波数は、ＷＤＴ１０３の１カウント時間の逆数である。例えば、ＷＤＴ１０３は、ＣＰＵのクロック周波数でカウントするように構成しても良く、ＣＰＵのクロック周波数を分周（例えば、１／２、１／３、・・など）した周波数でカウントするように構成しても良い。また、１カウントに要する時間Δｔを用いて微細時間補正値（ｔ）を算出しても良い。  
式（１）で求めた微細時間補正値（ｔ）は、ＲＴＣ値の最小単位が桁上がりを生じたことを把握してからの経過時間を表している。
【００２４】
ステップＳ１３において、タイムスタンプ値Ｔｓを式（２）に基いて算出する。  
Ｔｓ＝Ｔ  ＋ｔ                式（２）  
この式（２）によれば、タイムスタンプ値は、ＷＤＴ１０３が取り扱うμ秒単位での値として表される。
【００２５】
〔第２の実施の形態〕
第２の実施の形態では、時刻更新処理部の動作手順が第１の実施の形態と異なっている。従って、第１の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
【００２６】
第１の実施の形態では、時刻更新処理部１０８はアプリケーション部１０６がリセット指示を出力する際に起動する。従って、ＲＴＣ値の最小単位が桁上がりを生じたタイミングとは正確には一致していない。しかし、第１の実施の形態で算出したタイムスタンプの精度は、従来のＲＴＣ値によるタイムスタンプの精度に比べるとオーダが異なるほど格段に改善されているため、適用対象によっては十分な精度を確保している。
【００２７】
第２の実施の形態では、更にタイムスタンプの精度を向上させる。第２の実施の形態では、時刻更新処理部１０８は、時刻更新処理部１０８ａ及び時刻更新処理部１０８ｂで構成される。
【００２８】
図５は、第２の実施の形態の時刻更新処理部１０８ａの動作手順を示す図である。時刻更新処理部１０８ａは、ＲＴＣ値の最小単位が桁上がりを生じた際に起動する。
【００２９】
ステップＳ２１において、時刻更新処理部１０８ａはＲＴＣ１０２から実時間（ＲＴＣ値）を取得する。そして、取得したＲＴＣ値を内部変数のＴｎに代入する。ステップＳ２２において、取得したＲＴＣ値（Ｔｎ）を前回ＲＴＣ値の最小単位が桁上がりを生じた時に取得したＲＴＣ値（Ｔ）に代入する。ステップＳ２３において、累積カウント値（Ｃ）を０クリアする。ステップＳ２４において、ＷＤＴ１０３のカウント値を取得して桁上がり時のカウント値（Ｃｋ）に代入する。
【００３０】
なお、累積カウント値（Ｃ）、ＲＴＣ値（Ｔ）、及び桁上がり時のカウント値（Ｃｋ）は、メモリ部１０５に格納され、アプリケーション部１０６によって適宜参照されることができる。
【００３１】
図６は、第２の実施の形態の時刻更新処理部１０８ｂの動作手順を示す図である。時刻更新処理部１０８ｂは、アプリケーション部１０６がサイクリックに起動してリセット指示を出力する際に起動する。
【００３２】
ステップＳ２５において、時刻更新処理部１０８ｂは、ＷＤＴ１０３がカウントしたカウント値を取得し、その値を内部変数Ｃｎに代入する。このカウント値Ｃｎは図２の時間間隔Ｃ１、Ｃ２、Ｃ３、・・・に対応した値である。そして、ステップＳ２６において、累積カウント値（Ｃ）にカウント値Ｃｎを加算し、さらに桁上がり時のカウント値（Ｃｋ）を減算する。従って、累積カウント値（Ｃ）は、ＲＴＣ値の最小単位が桁上がりを生じた以降のカウント値の累積値である。ステップＳ２７において、桁上がり時のカウント値（Ｃｋ）を０クリアする。
【００３３】
なお、累積カウント値（Ｃ）、ＲＴＣ値（Ｔ）、及び桁上がり時のカウント値（Ｃｋ）は、メモリ部１０５に格納され、アプリケーション部１０６によって適宜参照されることができる。
【００３４】
なお、第２の実施の形態のタイムスタンプ処理部の動作は、第１の実施の形態のタイムスタンプ処理部の動作と同じであるため、その詳細の説明は省略する。
【００３５】
第２の実施の形態によれば、ＲＴＣ１０２から最小桁の桁上がり信号を入力する必要があるが、ＲＴＣ１０２を高精度のものに更新する必要はないため、安価に高精度のタイムスタンプを取得することができる。
【００３６】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【００３７】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。  
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００３８】
１００…情報処理装置、１０１…ＣＰＵ、１０２…ＲＴＣ、１０３…ＷＤＴ、１０４…プログラムメモリ部、１０５…メモリ部、１０６…アプリケーション部、１０７…タイムスタンプ取得部、１０８、１０８ａ、１０８ｂ…時刻更新処理部、１０９…タイムスタンプ生成処理部。
【図１】
2012165048.tif 000003
【図２】
2012165048.tif 000004
【図３】
2012165048.tif 000005
【図４】
2012165048.tif 000006
【図５】
2012165048.tif 000007
【図６】
2012165048.tif 000008