(57)【要約】【課題】高クロック周波数で動作する能力を有する低速の時間アキュムレータを提供すること。【解決手段】時間アキュムレータ（１０）は、現在時刻（７０）を保存する第１のレジス（６０）タと、クロック信号（９０）のクロックパルス（２００）と関連するオリジナルの時間増分（３０）によって乗算された乗数に対応した時間増分値（３５）を保存する第２のレジスタ（２０）とを含んでいる。クロック信号（９０）は、演算インターバル（２１５）に分割され、この場合に、それぞれの演算インターバル（２１５）は、乗数の値に等しい所定数のクロックパルスを含んでいる。時間アキュムレータ（１０）は、それぞれの演算インターバルごとに現在時刻（７０）を時間増分値（３５）に加算して更新済みの現在時刻（５５）を生成する加算ノード（５０）を更に含んでいる。【選択図】図１
2007047160.tif 000002
【特許請求の範囲】
【請求項１】
現在時刻（７０）を保存する第１のレジスタ（６０）と、
クロック信号（９０）のクロックパルス（２００）と関連するオリジナルの時間増分（３０）によって乗算された乗数（４０）に対応する時間増分値（３５）を保存する第２のレジスタ（２０）と、
前記現在時刻（７０）、前記時間増分値（３５）、及び前記クロック信号（９０）を受信するべく接続されており、それぞれの演算インターバル（２１５）ごとに前記現在時刻（７０）を前記時間増分値（３５）に加算して更新済みの現在時刻（５５）を生成し、前記更新済みの現在時刻（５５）を前記現在時刻（７０）として前記第１のレジスタ（６０）内に保存するべく動作可能な加算ノード（５０）と、
を具備し、
それぞれの前記演算インターバル（２１５）は、前記乗数（４０）に等しい所定数の前記クロック信号（９０）のクロックパルス（２００）を含む時間アキュムレータ（１０）。
【請求項２】
前記クロック信号（９０）を受信するべく接続されており、前記クロック信号（９０）内のクロックパルス（２００）をカウントし、カウントされたクロックパルス（２００）の現在の数を示すクロック状態を判定するよう動作可能なカウンタ（８０）を更に有する請求項１記載の時間アキュムレータ（１０）。
【請求項３】
前記カウンタ（８０）は、前記カウントされたクロックパルス（２００）の現在の数が前記クロックパルス（２００）の前記所定数に等しい場合に、クロックイネーブル信号（９５）を前記第１のレジスタ（６０）に対して生成するべく更に動作可能であり、前記クロックイネーブル信号（９５）は、前記クロック信号（９０）によって前記第１のレジスタ（６０）をクロッキングし、前記第１のレジスタ（６０）は、前記クロック信号（９０）を受信した際に、前記現在時刻（７０）を前記加算ノード（５０）に出力するべく動作可能である請求項２記載の時間アキュムレータ（１０）。
【請求項４】
時間オプション（４０５）を受信し、前記時間オプション（４０５）を選択するべく接続された第１のマルチプレクサ（４１０）を更に具備し、前記時間オプション（４０５）のそれぞれは、前記オリジナルの時間増分（３０）の個々の倍数に加算されたオリジナルの時間に対応した個々の時間値を含んでおり、それぞれの前記個々の倍数は、前記乗数（４０）と等しいか又はこれを下回っており、前記カウンタ（８０）は、トリガ信号（４２０）を受信するべく接続されており、且つ、前記トリガ信号（４２０）に応答し、前記クロック状態と関連する前記時間オプション（４０５）の中の１つを選択するために、前記クロック状態を表す第１のセレクト信号（４４０）を前記第１のマルチプレクサ（４１０）に対して生成するべく更に動作可能である請求項２記載の時間アキュムレータ（１０）。
【請求項５】
前記カウンタ（８０）は、前記トリガ信号（４２０）が存在しない場合の第１の状態において、並びに、前記トリガ信号（４２０）を受信した場合の第２の状態において、第２のセレクト信号（４５０）を生成するべく更に動作可能であり、
前記第１のマルチプレクサ（４１０）からの前記選択された時間オプション（４０５）、前記加算ノード（５０）からの前記更新済みの現在時刻（５５）、及び前記カウンタ（８０）からの前記第２のセレクト信号（４５０）を受信するべく接続された第２のマルチプレクサ（４３０）であって、前記第２のセレクト信号（４５０）が前記第１の状態にある場合に前記更新済みの現在時刻（５５）を前記現在時刻（７０）として前記第１のレジスタ（６０）内に保存し、前記第２のセレクト信号（４５０）が前記第２の状態にある場合に前記選択された時間オプション（４０５）を前記現在時刻（７０）として前記第１のレジスタ（６０）内に保存するべく動作可能である第２のマルチプレクサ（４３０）を更に具備する請求項４記載の時間アキュムレータ。
【請求項６】
前記第１のレジスタ（６０）からの前記現在時刻（７０）、前記カウンタ（８０）からの前記クロック状態（６１０）、及びトリガ信号（６２０）を受信するべく接続されたタイムスタンプレジスタ（６００）を更に具備し、前記タイムスタンプレジスタ（６００）は、前記トリガ信号（６２０）を受信した際に、前記現在時刻（７０）及び前記クロック状態（６１０）をタイムスタンプとして保存する請求項２記載の時間アキュムレータ（１０）。
【請求項７】
状態信号（８４０）を受信するべく接続されたコントローラ（８５０）を更に具備し、前記状態信号のそれぞれは、個々のトリガ時間に対する前記現在時刻（７０）の状態を表しており、前記個々のトリガ時間のそれぞれは、前記乗数（４０）に等しいか又はこれを下回る前記オリジナルの時間増分（３０）の個々の倍数におけるオリジナルのトリガ時間（８１５）を表しており、前記コントローラ（８５０）は、前記状態信号に基づいてトリガ信号（８６０）を生成するべく動作可能である請求項６記載の時間アキュムレータ（１０）。
【請求項８】
前記個々のトリガ時間のそれぞれ用の個々の比較器（８３０）を更に具備し、前記個々の比較器のそれぞれは、前記現在時刻（７０）が前記個々のトリガ時間を超過している場合の第１の状態において、または、前記現在時刻（７０）が前記個々のトリガ時間よりも先行している場合の第２の状態において、前記個々の状態信号（８４０）を生成する請求項７記載の時間アキュムレータ（１０）。
【請求項９】
前記コントローラ（８５０）は、前記第１の状態において前記状態信号（８４０）の数から前記クロック信号（９０）のクロック状態を判定し、後続の演算インターバル（２１５）内において、前記クロック状態に対応した前記クロックパルス（２００）において前記トリガ信号（８６０）を生成するべく更に動作可能である請求項８記載の時間アキュムレータ（１０）。
【請求項１０】
クロック信号（９０）のクロックパルス（２００）と関連するオリジナルの時間増分（３０）によって乗算された乗数（４０）に対応する時間増分値（３５）を供給する段階（３１０）と、
前記クロック信号（９０）を受信する段階（３２０）と、
前記クロック信号（９０）のクロックパルス（２００）をカウントする段階（３３０）と、
前記クロック信号（９０）のカウントされたクロックパルス（２００）の現在の数が、前記乗数（４０）に等しい前記クロック信号（９０）のクロックパルス（２００）の所定の数に等しい場合に、更新済みの現在時刻（５５）を前記現在時刻（７０）として生成するべく前記時間増分値（３５）を現在時刻（７０）に加算する段階（３５０）と、
を具備する時間を蓄積する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時間アキュムレータに関する。
【背景技術】
【０００２】
時間（又は、位相）アキュムレータは、一般に、デジタル回路内において現在時刻を追跡するべく使用されている。時間アキュムレータは、クロック周波数と呼ばれる速度で現在時刻に時間増分を加算することにより、動作する。時間増分は、固定であるか、可変であるか、又は時変であってよい。時変実装の一例が、時間アキュムレータを外部時間基準と同期状態に維持するべく時間増分の変更のために使用されるサーボループである。クロック周波数が高いほど、時間アキュムレータの分解能も向上し、イベント時間の記録に使用可能な時間アキュムレータの精度も向上する。例えば、時間アキュムレータを使用することにより、タイマー値を設定したり、外部イベントの時間を記録したり（即ち、タイムスタンプ）、或いは、所与の時点において外部イベントのトリガ信号を生成可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、クロック周波数が高くなると、必然的に時間増分の加算演算及び時間増分値に対して実行を要するその他の操作（例えば、サーボループ計算）に利用可能な時間が減少する。時間アキュムレータが次のクロックまでにそのすべての計算を完了させるのに十分な時間が付与されない高クロック周波数で動作する装置内に、時間アキュムレータを実装した場合には、時間アキュムレータによって記録される現在時刻は不正確なものとなろう。この問題に対する解決策は、時間アキュムレータ内において高速ハードウェアを使用したり、装置の精度要件を緩和したり、更には、低速のクロック周波数を使用することにより、クロックパルス間において計算実行のためのより多くの時間を時間アキュムレータに付与することを含んでいる。しかしながら、高速のハードウェアは、通常、高価であり、且つ、多くのアプリケーションにおいて、装置精度の低減は、望ましいことではない。従って、高クロック周波数で動作する能力を有する低速の時間アキュムレータに対するニーズが存在している。
【課題を解決するための手段】
【０００４】
本発明の実施例は、クロック周波数とは無関係に十分な計算時間を提供する能力を有する調節可能な時間アキュムレータを提供する。この時間アキュムレータは、現在時刻を保存する第１のレジスタと、クロック信号のクロックパルスと関連するオリジナルの時間増分によって乗算された乗数に対応した時間増分値を保存する第２のレジスタと、を含んでいる。クロック信号は、演算インターバルに分割され、この場合に、それぞれの演算インターバルは、乗数の値に等しい所定数のクロックパルスを含んでいる。時間アキュムレータは、それぞれの演算インターバルごとに現在時刻を時間値に加算して更新済みの現在時刻を生成する加算ノードを更に含んでいる。
【０００５】
一実施例においては、調節可能な時間アキュムレータは、クロック信号内のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定するカウンタを更に含んでいる。カウンタは、カウントされたクロックパルスの現在の数がクロックパルスの所定数に等しい場合に、クロックイネーブル信号を第１のレジスタに対して生成する。このクロックイネーブル信号を受信した際に、第１のレジスタをクロッキングして現在時刻を加算ノードに出力する。
【０００６】
本発明の一態様においては、時間アキュムレータは、第１及び第２のマルチプレクサを更に含んでいる。第１のマルチプレクサは、時間オプションを選択し、この場合に、時間オプションのそれぞれは、乗数を下回るオリジナルの時間増分の個々の倍数に加算されたオリジナルの時間に対応する時間値である。トリガ信号を受信した際に、カウンタは、クロック状態と関連する時間オプションの中の１つを選択するべく、クロック状態を表す第１のセレクト信号を第１のマルチプレクサに対して生成する。又、カウンタは、トリガ信号が存在していない場合の第１の状態において、並びに、トリガ信号を受信した場合の第２の状態において、第２のセレクト信号を生成する。第２のマルチプレクサは、第２のセレクト信号が第１の状態にある場合に、更新済みの現在時刻を現在時刻として第１のレジスタ内に保存し、第２のセレクト信号が第２の状態にある場合には、選択された時間オプションを現在時刻として第１のレジスタ内に保存する。
【０００７】
本発明の別の態様においては、時間アキュムレータは、トリガ信号を受信するべく接続されたタイムスタンプレジスタを更に含んでいる。トリガ信号に応答し、タイムスタンプレジスタは、第１のレジスタからの現在時刻とカウンタからのクロック状態をタイムスタンプとして保存する。
【０００８】
本発明の更なる態様においては、時間アキュムレータは、個々の比較器によって生成された状態信号に基づいてトリガ信号を生成するコントローラを更に含んでいる。状態信号のそれぞれは、個々のトリガ時間に対する現在時刻の状態を表している。トリガ時間のそれぞれは、乗数を下回るオリジナルの時間増分の個々の倍数におけるオリジナルのトリガ時間を表している。比較器は、現在時刻が個々のトリガ時間を超過した場合の第１の状態において、或いは、現在時刻が個々のトリガ時間より先行している場合の第２の状態において、その個々の状態信号を生成する。模範的な実施例においては、コントローラは、第１の状態における状態信号の数から現在の演算インターバルにおけるクロック信号のクロック状態を判定し、後続の演算インターバルにおいて、クロック状態に対応したクロックパルスにおいてトリガ信号を生成する。
【発明を実施するための最良の形態】
【０００９】
以下、添付の図面を参照し、開示対象の本発明について説明するが、添付の図面は、本発明の模範的な実施例を示しており、これらは、本引用により、本明細書に包含される。
【００１０】
図１は、本発明の実施例による模範的で簡単な調節可能な時間アキュムレータ１０を示す概略ブロックダイアグラムである。調節可能な時間アキュムレータ１０は、時間増分レジスタ２０、加算ノード５０、時間レジスタ６０、及びカウンタ８０を含んでいる。時間増分レジスタ２０は、更新済みの現在時刻５５を生成するべく、加算ノード５０により現在時刻７０に加算される時間増分値３５を保持している。更新済みの現在時刻５５は、現在時刻７０として時間レジスタ６０内に保存される。時間レジスタ６０は、現在時刻７０を加算ノード５０に出力することにより、クロック信号９０と同期した状態で現在時刻７０を更新する。
【００１１】
時間増分値３５は、オリジナルの時間増分３０の倍数であり、この場合に、オリジナルの時間増分３０に乗数４０を乗算することによって時間増分値３５を生成する。オリジナルの時間インターバル３０は、それぞれのクロックパルスごとに現在時刻に対して加算される時間の量であり、本明細書においては、これをクロック周期（クロック信号９０の１つの立ち上がりエッジからクロック信号９０の次の立ち上がりエッジまで）と定義する。オリジナルの時間増分３０は、クロック信号９０内の連続したクロックパルス間の時間インターバルに対応している。例えば、クロック信号９０がクロックパルスを１０ナノ秒（ｎｓ）ごとに生成する場合には、オリジナルの時間増分３０は１０ｎｓである。従って、時間アキュムレータ１０が、クロック信号９０のクロック周波数において動作する能力を有している場合には、乗数４０の値は、それぞれのクロックパルスごとに１０ｎｓを現在時刻７０に対して加算するべく、「１」である。
【００１２】
しかしながら、時間アキュムレータ１０がクロック周波数よりも低い速度で稼働する場合には、乗数４０の値（Ｎ）は、クロック周期と時間アキュムレータ１０の動作時間の間の比率によって左右される。例えば、時間アキュムレータ１０が、現在時刻７０を算出して保存するのに２０ナノ秒（ｎｓ）を必要とし、クロック周期が１０ｎｓである場合には、乗数４０の値は、２である（Ｎ＝２）。従って、オリジナルの時間インターバル３０に２を乗算することにより、２０ｎｓ（２＊１０ｎｓ＝２０ｎｓ）という時間増分値３５が生成され、これが現在時刻７０に加算されることになる。この結果、時間アキュムレータ１０は、クロック周波数によって提供されるタイミング分解能と精度を依然として維持しつつ、（１／Ｎ）＊クロック周波数において動作することが可能となる。いくつかの実施例においては、乗数４０の値は、クロック周期と時間アキュムレータ１０の動作時間の比率に応じた現在時刻更新間において変化可能である。
【００１３】
クロック信号９０のクロック周波数は、時間アキュムレータ１０を内蔵する装置の望ましいクロック周波数によって決定され、従って、アプリケーションによって左右されることを理解されたい。いくつかの実施例においては、乗数４０の値を変化させることにより、時間アキュムレータ１０を時変クロック周波数と同期させることができる。前述のように、乗数４０の値は、その計算を実行するために時間アキュムレータ１０が必要とするクロック信号９０のクロックパルスの数に等しい。本明細書においては、このクロックパルスの数を演算インターバルと呼ぶこととする。従って、時間アキュムレータ１０は、それぞれの演算インターバルごとに、一度ずつ、現在時刻７０を更新する。
【００１４】
カウンタ８０は、クロック信号９０のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定する。カウントされたクロックパルスの数が乗数４０の値と等しく、従って、演算インターバルが経過した場合には、カウンタ８０は、クロック信号９０によって時間レジスタ６０をクロッキングするクロックイネーブル信号９５を時間レジスタ６０に対して生成する。時間レジスタ６０は、現在時刻７０を加算ノード５０に出力し、加算ノードが現在時刻７０を時間増分値３５に加算して更新済みの現在時刻５５を生成し、これが、新しい現在時刻７０として時間レジスタ６０内に保存される。従って、時間アキュムレータ１０は、Ｎ番目のクロックパルスごとに更新される。又、カウンタ８０は、クロックイネーブル信号９５の生成を完了すると、次の演算インターバルにおけるクロックパルスのカウントを開始するべく、リセットされる。
【００１５】
図２に示されているタイミング図を参照することにより、図１の調節可能な時間アキュムレータ１０の動作について更に理解することができよう。図２からわかるように、クロック信号９０は、既知の時間インターバルだけ離隔したクロックパルス２００を含んでおり、この結果、それぞれのクロックパルス２００の立ち上がりエッジは、望ましい分解能に対応した速度で受信される。カウンタ値２１０は、演算インターバル２１５において、カウンタ８０がクロックパルス２００の立ち上がりエッジを検出するごとに増分される。従って、カウンタ値２１０は、クロック信号９０のクロック状態を表しており、この場合に、クロック状態は、クロック信号９０内のカウントされたクロックパルス２００の現在の数に対応している。図２においては、演算インターバル２１５は、３つのクロックパルス２００を含んでおり、従って、カウンタ値２１０は、第３のカウントされたクロックパルス２００に続く次のクロックパルス２００の立ち上がりエッジにおいてリセットされる。
【００１６】
それぞれのカウンタ値２１０（カウントされたクロックパルス）は、演算インターバル２１５の異なる位相を表している。演算インターバル２１５の位相に留意することにより、図４〜図９との関連で後程詳述するように、時間アキュムレータ１０が（１／Ｎ）＊クロック周波数でしか更新されていない場合にも、クロック信号９０のクロック周波数において様々なタイミング操作を実行可能である。
【００１７】
クロックイネーブル信号９５は、「Ｎ」個のクロックパルス２００をカウントした際に生成される。例えば、図２に示されているように、クロックイネーブル信号９５は、第３のカウントされたクロックパルス２００の立ち上がりエッジにおいて生成される（これは、参照符号２２０によって概略的に示されている）。クロックイネーブル信号９５が生成された際に現在時刻７０が更新される。演算インターバル２１５が３つのクロックパルス２００を含んでいるため、クロックイネーブル信号９５は、３つのクロックパルス２００ごとに生成され、現在時刻７０の値２３０は、３つのクロックパルス２００ごとに更新される。例えば、図２に示されているように、初期の時間においては、現在時刻７０の値２３０はＴ０からＴ３に更新されており、この結果、第１の演算インターバル２１５の終了時点において、現在時刻７０の値はＴ３となっている。３つのクロックパルス２００の後に、現在時刻７０の値２３０は、再度、Ｔ３からＴ６に更新され、この結果、現在時刻７０の値２３０は、第２の演算インターバル２１５の終了時点において、Ｔ６となる。
【００１８】
図３は、本発明の実施例による時間を蓄積する模範的なプロセス３００を示している。プロセス３００は、ブロック３１０において始まっており、ここでは、オリジナルの時間インターバルと乗数の乗算から時間増分値を判定している。オリジナルの時間インターバルは、それぞれのクロックパルスごとに現在時刻に対して加算することを要する時間量（クロック周期）であり、乗数は、蓄積を実行するのに必要な時間から判定される。例えば、クロックパルスが１０ｎｓごとに発生し、蓄積時間が３０ｎｓである場合には、乗数の値は３である。従って、オリジナル時間インターバル（１０ｎｓ）に３を乗算することにより、３０ｎｓの時間増分値が生成される。
【００１９】
プロセスは、ブロック３２０において継続し、ここでは、クロック周波数においてクロック信号を受信する。前述の例を使用すれば、１０ｎｓごとにクロックパルスを生成するクロック信号のクロック周波数は１００ＭＨｚである。ブロック３３０において、クロック信号のクロックパルスをカウントする。例えば、クロック信号の受信に先立って、カウンタを１に初期化する。クロック信号がカウンタに入力されると、クロック信号内のそれぞれのクロックパルスの立ち上がりエッジにおいて、カウントが１だけ増分される。先程と同一の例を使用すれば、連続したクロックパルスの立ち上がりエッジ間の時間が１０ｎｓであれば、カウンタは、１０ｎｓごとに１だけ増分される。
【００２０】
プロセスは、ブロック３４０において継続し、ここでは、カウンタの現在の値をクロックパルスの所定数（これは、乗数の値に等しい）と比較する。カウンタの現在の値が乗数の値と等しくない場合には、カウンタは、クロックパルスのカウントを継続する。先程と同一の例を使用すれば、カウンタがクロック信号内の第１のクロックパルスの立ち上がりエッジを検出した際に、カウントが１から２へと増分される。乗数の値は３であるため、カウンタは、カウンタが３つのクロックパルスをカウントするまで、クロックパルスのカウントを継続する。
【００２１】
カウンタの現在の値が乗数の値に等しくなると、ブロック３５０において、ブロック３１０において判定された時間増分値を現在時刻に加算して現在時刻を更新する。例えば、現在時刻が３０ｎｓであり、時間値の増分が３０ｎｓである場合には、ブロック３５０において、現在時刻が６０ｎｓに増分される。ブロック３６０において、カウンタをリセットし、プロセスをブロック３２０において反復する。先程と同一の例を使用すれば、ブロック３５０からの更新済みの現在時刻は、６０ｎｓであり、乗数の値が依然として３であるとすれば、カウンタは、ブロック３３０においてクロック信号内の３つの更なるクロックパルスをカウントし、３つの更なるクロックパルスの後に、現在時刻が６０ｎｓから９０ｎｓに増分されることになる。
【００２２】
図４は、本発明の実施例による調節可能な時間アキュムレータ１０の模範的な実装の概略ブロックダイアグラムである。図４においては、調節可能な時間アキュムレータ１０をトリガ回路（具体的に図示されてはいない）と関連させて使用することにより、時間レジスタ６０内に読み込む新しい時間のみならず、更新を実行するべき位相をも識別している。図１と同様に、時間アキュムレータ１０は、時間増分値３５を保存する時間増分レジスタ２０、現在時刻７０を保存する時間レジスタ６０、時間増分値３５を現在時刻７０に加算して更新済みの現在時刻５５を生成する加算ノード５０、及びクロック信号９０のクロックパルスをカウントするカウンタ８０を含んでいる。
【００２３】
時間アキュムレータ１０は、第１のマルチプレクサ４１０と第２のマルチプレクサ４３０を更に含んでいる。第１のマルチプレクサ４１０は、レジスタ４００ａ、４００ｂ、４００ｃ...４００Ｎ内に保存されている時間オプション４０５ａ、４０５ｂ、４０５ｃ...４０５Ｎを選択する。レジスタ４００ａ内に保存されている時間オプション４０５ａは、特定の時点において時間アキュムレータ１０の現在時刻７０を更新するべく時間アキュムレータ内に読み込まれる新しい時間値に対応している。後続のレジスタ４００ｂ、４００ｃ...４００Ｎ内に保存されている時間オプション４０５ｂ、４０５ｃ...４０５Ｎは、それぞれ、１時間インターバルだけ離隔しており、この場合に、時間インターバルは、クロック信号９０内の連続したクロックパルス間の時間量を意味している。従って、レジスタ４００ｂ内に保存されている時間オプション４０５ｂは、「新しい時間値＋時間インターバル」に等しく、レジスタ４００ｃ内に保存された時間オプション４０５ｃは、「新しい時間値＋時間インターバルの２倍」に等しく、レジスタ４００Ｎ内に保存されている時間オプション４０５Ｎは、「新しい時間値＋時間インターバルの（Ｎ−１）倍」に等しい。
【００２４】
前述のように、カウンタ８０は、クロック信号９０のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定する。異なるクロック状態の数は、演算インターバル内のクロックパルスの数に等しい。従って、それぞれのクロック状態（カウントされたクロックパルス）は、演算インターバルの異なる位相を表している。この位相情報を使用することにより、新しい現在時刻７０として時間レジスタ６０内に読み込むべく、レジスタ４００ａ...４００Ｎ内に保存されている時間オプション４０５ａ...４０５Ｎの中の１つを選択する。
【００２５】
具体的には、カウンタ８０は、時間レジスタ６０内への時間オプション４０５ａ...４０５Ｎの中の１つの読み込みを開始するトリガ信号４２０を受信するべく接続されている。カウンタ８０は、トリガ信号４２０を受信すると、現在のクロック状態を示す第１のセレクト信号４４０を第１のマルチプレクサ４１０に対して生成し、第１のマルチプレクサ４１０が選択するべき特定の時間オプション４０５ａ...４０５Ｎを識別する。それぞれのクロック状態は、特定の時間オプション４０５ａ...４０５Ｎに対応している。例えば、時間オプション４０５ａは、初期クロック状態に対応しており、時間オプション４０５ｂは、第１のクロック状態に対応しており、時間オプション４０５ｃは、第２のクロック状態に対応しており、時間オプション４０５Ｎは、第Ｎのクロック状態に対応している。一例として、第１のセレクト信号４００が、現在のクロック状態が第２のクロック状態にあると通知した場合には、第１のマルチプレクサ４１０は、レジスタ４００ｃ内に保存されている時間オプション４０５ｃを選択する。
【００２６】
クロックイネーブル信号９５及び第１のセレクト信号４４０に加え、カウンタ８０は、第２のマルチプレクサ４３０に対して第２のセレクト信号４５０をも生成する。第２のセレクト信号４５０は、カウンタ８０がトリガ信号４２０を受信していない場合に、第１の状態を具備し、カウンタ８０がトリガ信号４２０を受信している場合には、第２の状態を具備する。第２のマルチプレクサ４３０は、第１のマルチプレクサ４１０から供給される選択された時間オプション４０５と加算ノード５０から供給される更新済みの現在時刻５５のいずれかを選択し、新しい現在時刻７０として時間レジスタ６０内に保存する。第２のマルチプレクサ４３０は、第２のセレクト信号４５０が第１の状態にある場合には、加算ノード５０からの更新済みの現在時刻５５を新しい現在時刻７０として時間レジスタ６０内に選択及び保存する。同様に、第２のマルチプレクサ４３０は、第２のセレクト信号４５０が第２の状態にある場合には、第１のマルチプレクサ４１０からの選択された時間オプション４０５を新しい現在時刻７０として時間レジスタ６０内に選択及び保存する。
【００２７】
図５は、本発明の実施例による調節可能な時間アキュムレータを使用して時間を設定する模範的なプロセス５００を示している。プロセス５００は、ブロック５１０において始まっており、ここでは、新しい時間値を設定し、調節可能な時間アキュムレータ内に読み込んでいる。ブロック５２０において、読み込んだ新しい時間値から、それぞれの位相ごとの時間オプションを判定する。それぞれの時間オプションは、新しい時間値によって始まり、クロック信号の連続したクロックパルス間の時間インターバルの倍数（Ｎ）がこれに加算されている（ここで、Ｎ≧０）。例えば、演算インターバル内に３つの位相が存在している場合には、３つの時間オプションは、「新しい時間値」、「新しい時間値＋時間インターバル」、及び「新しい時間値＋時間インターバルの２倍」を含むことができる。
【００２８】
プロセスは、ブロック５３０において継続し、ここでは、時間アキュムレータにおいてトリガ信号を受信し、時間アキュムレータ内への新しい時間値の読み込みを開始している。ブロック５４０において、トリガ信号が受信された時点におけるクロック状態（演算インターバルの位相）を判定し、ブロック５５０において、現在のクロック状態に対応した時間オプションを時間アキュムレータ内に読み込むべき新しい時間値として選択している。前述の例を使用すれば、トリガ信号が受信された時点における現在のクロック状態が、クロック信号が演算インターバルの第２の位相内にあると通知している場合には、「新しい時間値＋時間インターバル」に対応した第２の時間オプションが、時間アキュムレータ用の新しい現在時刻として選択される。
【００２９】
図６は、本発明の実施例による調節可能な時間アキュムレータ１０の別の模範的な実装の概略ブロックダイアグラムである。図６においては、調節可能な時間アキュムレータ１０をトリガ回路（図示されてはいない）との関連で使用し、タイムスタンプを作成することによって外部イベントの時間を記録している。図１と同様に、時間アキュムレータ１０は、時間増分値３５を保存する時間増分レジスタ２０、現在時刻７０を保存する時間レジスタ６０、時間増分値３５を現在時刻７０に加算して更新済みの現在時刻５５を生成する加算ノード５０、及びクロック信号９０のクロックパルスをカウントするカウンタ８０を含んでいる。
【００３０】
時間アキュムレータ１０は、タイムスタンプを生成及び保存するタイムスタンプレジスタ６００を更に含んでいる。タイムスタンプレジスタ６００は、時間レジスタ６０から現在時刻７０を、そして、カウンタ８０から現在のクロック状態６１０を受信するべく、接続されている。それぞれのクロックパルスにおいて、カウンタ８０は、現在のクロック状態６１０（例えば、カウントされたクロックパルスの数）を出力することにより、演算インターバルの現在の位相について通知する。この位相情報を使用することにより、ハードウェア又はソフトウェアにおいて現在時刻７０に対して適切な時間増分を加算し、正しいタイムスタンプを生成可能である。
【００３１】
タイムスタンプを生成するべく、タイムスタンプイネーブル信号６２０をタイムスタンプレジスタ６００に送信することにより、外部イベントによって時間レジスタ６０の複写がラッチされる。タイムスタンプレジスタ６００は、タイムスタンプイネーブル信号６２０を受信すると、クロック信号９０によってクロッキングされ、時間レジスタ６０からの現在時刻７０とカウンタ８０からの現在のクロック状態６１０の両方を保存する。現在時刻７０と現在のクロック状態６１０の組み合わせにより、タイムスタンプを形成している。
【００３２】
図７は、本発明の実施例による調節可能な時間アキュムレータを使用して時間を記録する模範的なプロセス７００を示している。プロセス７００は、ブロック７１０において始まっており、ここでは、調節可能な時間アキュムレータによってタイムスタンプトリガ信号（例えば、上記タイムスタンプイネーブル信号に相当する信号）を受信している。タイムスタンプトリガ信号は、外部イベントの時間を記録するべく、その外部イベントによって生成される。プロセスは、ブロック７２０及び７３０において継続し、ここでは、タイムスタンプトリガ信号の受信時点における調節可能な時間アキュムレータの現在時刻と現在のクロック状態の両方を判定している。ブロック７４０において、現在時刻及び現在のクロック状態を、その外部イベントに要求されたタイムスタンプとして保持している。現在のクロック状態の知識により、（例えば、現在のクロック状態に対応した連続クロックパルス間の時間インターバルの倍数を現在時刻に加算することによって）実際の（正しい）タイムスタンプを判定可能である。
【００３３】
図８Ａ及び図８Ｂは、本発明の実施例による調節可能な時間アキュムレータのその他の模範的な実装の概略ブロックダイアグラムである。図８Ａ及び図８Ｂにおいては、調節可能な時間アキュムレータ１０は、外部イベントを開始するためのトリガ信号の生成に使用される。図８Ａ及び図８Ｂには具体的に示されていないが、図１と同様に、時間アキュムレータ１０は、時間増分値を保存する時間増分レジスタ、現在時刻７０を保存する時間レジスタ６０、現在時刻７０に時間増分値を加算して更新済みの現在時刻を生成する加算ノード、及びクロック信号のクロックパルスをカウントするカウンタを含んでいる。
【００３４】
図８Ａにおいては、時間アキュムレータ１０は、トリガ時間８１５を保存するトリガレジスタ８１０、現在時刻７０とトリガ時間８１５の間の差分を表す差分値８０５を判定する差分ノード８００、個々の時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを保存するレジスタ８２０ａ、８２０ｂ、８２０ｃ...８２０Ｎ、個々の時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを差分値８０５と比較する比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎ、及びコントローラ８５０を更に含んでいる。それぞれの比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎは、個々の状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎをコントローラ８５０に対して生成する。状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎのそれぞれは、個々の固有のトリガ時間に対する現在時刻７０の状態を表しており、この場合に、それぞれの固有のトリガ時間は、連続したクロックパルス間の時間インターバルの個々の倍数において保存されたトリガ時間８１５を表しており、この場合に、倍数は、ゼロと演算インターバル内のクロックパルスの数（即ち、乗数値）の間に位置している。
【００３５】
例えば、それぞれの状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎは、現在時刻７０が個々の固有のトリガ時間を超過した際に、第１の状態であり、現在時刻７０が個々の固有のトリガ時間を超過していない場合には、第２の状態をとることができる。第１の状態における状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎの数に基づいて、コントローラ８５０は、現在の演算インターバル内におけるクロック信号の現在のクロック状態を判定する。コントローラ８５０は、後続の演算インターバル内において、この判定したクロック状態に対応するクロックパルスにおいてトリガ信号８６０を生成する。
【００３６】
一実施例においては、それぞれの比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎは、それぞれの時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを差分値８０５と比較し、差分値８０５が、個々の時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを下回っているか又はこれらに等しいかどうかを判定する。差分値８０５が、時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎの中の少なくとも１つのものを下回っているか又はこれと等しい場合には、コントローラ８５０は、差分値８０５が個々の時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを下回っていることを通知する状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎの数から判定されたクロックパルスにおいて、次の演算インターバル内において、トリガ信号８６０を生成する。
【００３７】
一例として、演算インターバル内に４つのクロックパルスが存在しており、それぞれのクロックパルスが１０ｎｓである場合には、第１の時間インターバル値８２５ａは、０であり、第２の時間インターバル値８２５ｂは、１０であり、第３時間インターバル値８２５ｃは、２０であり、第４時間インターバル値８２５Ｎは、３０である。トリガ時間８１５が６２ｎｓに設定されており、現在時刻が８０ｎｓである場合には、差分値８０５は１８ｎｓであり、第１の比較器８３０ａは、差分値８０５が０を上回っていることを通知する状態信号８４０ａを出力し、第２の比較器８３０ｂは、差分値が１０を上回っていることを通知する状態信号８４０ａを出力し、第３比較器８３０ｃは、差分値が２０を下回っていることを通知する状態信号８４０ｃを出力し、第４比較器８３０Ｎは、差分値が３０を下回っていることを通知する状態信号８４０Ｎを出力することになろう。
【００３８】
比較器の中の２つ（比較器８３０ｃ及び８３０Ｎ）が、差分値８０５が個々の時間インターバル値８２５ｃ及び８２５Ｎを下回っているか又はこれらと等しいことを通知する状態信号８４０ｃ及び８４０Ｎを生成した場合には、コントローラ８５０は、トリガ信号８６０が演算インターバルの第２の位相内にあるはずであると判定する。この場合には、コントローラ８５０は、次の演算インターバルの第２の位相内においてトリガ信号８６０を生成する。別の例として、すべての４つの比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎが、差分値が個々の時間インターバル値８２５ａ、８２５ｂ、８２５ｃ...８２５Ｎを下回っているか又はこれらと等しいと通知する状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎを生成した場合には、コントローラ８５０は、トリガ信号８６０が演算インターバルの第１の位相にあるはずであると判定することになろう。更なる例として、１つの比較器８３０Ｎのみが、差分値が個々の時間インターバル値８２５Ｎを下回っているか又はこれらと等しいと通知する状態信号８４０Ｎを生成した場合には、コントローラ８５０は、トリガ信号８６０が演算インターバルの第４の位相にあるはずであると判定することになろう。
【００３９】
図８Ｂにおいては、時間アキュムレータ１０は、オリジナルのトリガ時間８１５を保存するレジスタ８１０、個々のトリガ時間インターバル値８７５ａ、８７５ｂ...８７５Ｎを保存するレジスタ８７０ａ、８７０ｂ...８７０Ｎ（このそれぞれは、連続したクロックパルス間の時間インターバルの倍数に加算されたオリジナルのトリガ時間８１５を表しており、この場合に、倍数は、０と乗数値（Ｎ−１）の間に位置している）、個々のトリガ時間インターバル値８１５、８７５ａ、８７５ｂ...８７５Ｎを現在時刻７０と比較する比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎ、及びコントローラ８５０を更に含んでいる。図８Ａと同様に、比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎのそれぞれは、トリガ時間インターバル値８１５、８７５ａ、８７５ｂ...８７５Ｎに対する現在時刻７０の状態を示す個々の状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎをコントローラ８５０に対して生成する。
【００４０】
例えば、一実施例においては、それぞれの比較器８３０ａ、８３０ｂ、８３０ｃ...８３０Ｎは、個々のトリガ時間インターバル値８１５、８７５ａ、８７５ｂ...８７５Ｎを現在時刻７０と比較し、現在時刻７０が個々のトリガ時間インターバル値８１５、８７５ａ、８７５ｂ...８７５Ｎを上回っているか又はこれらと等しいかどうか（到達しているか又は超過しているか）を判定する。現在時刻７０が、トリガ時間インターバル値８７５ａ、８７５ｂ...８７５Ｎの中の少なくとも１つのものを上回っているか又は等しい場合には、コントローラ８５０は、現在時刻７０が個々のトリガ時間インターバル値８１５、８７５ａ、８７５ｂ...８７５Ｎを下回っていると通知する状態信号８４０ａ、８４０ｂ、８４０ｃ...８４０Ｎの数から判定されたクロックパルスにおいて、次の演算インターバル内においてトリガ信号８６０を生成する。
【００４１】
図９は、本発明の実施例による調節可能な時間アキュムレータを使用してトリガを生成する模範的なプロセス９００を示している。プロセス９００は、ブロック９１０において始まっており、ここでは、演算インターバルのクロック状態の数に対応する数（Ｎ）の時間インターバル値を供給する。それぞれの時間インターバル値は、連続したクロックパルス間の時間インターバルの倍数であり、この場合に、倍数は、ゼロと演算インターバル内のクロックパルスの数（即ち、乗数値）の間に位置している。プロセスは、ブロック９２０及び９３０において継続し、ここでは、トリガ時間を供給し、それぞれの時間インターバル値に対応するトリガ時間を判定する。例えば、一実施例においては、それぞれの時間インターバル値に対応するトリガ時間は、時間インターバル値自体によって表されている。別の実施例においては、それぞれの時間インターバル値に対応するトリガ時間は、個々の時間インターバル値に加算されたトリガ時間である。
【００４２】
プロセスは、段階９４０において継続し、現在の演算インターバルにおいて、現在時刻を受信する。ブロック９５０において、現在時刻をそれぞれの時間インターバル値に対応するトリガ時間と比較する。例えば、一実施例においては、トリガ時間と現在時刻の間の差を判定し、この差を時間インターバル値自体と比較する。別の実施例においては、現在時刻を、それぞれの時間インターバル値に加算されたトリガ時間と比較している。
【００４３】
ブロック９６０において、現在時刻が、時間インターバル値の１つ又は複数のものに対応したトリガ時間を上回っているかどうかの判定を行う。上回っていない場合には、プロセスをブロック９４０において反復し、新しい現在時刻を受信する。上回っている場合には、プロセスは、ブロック９７０において継続し、ここで、現在時刻を上回っている時間インターバル値に対応したトリガ時間の数に基づいて、現在の演算インターバル内のクロック信号の現在のクロック状態を判定する。次いで、プロセスは、ブロック９８０において継続し、ここで、判定されたクロック状態に対応したクロックパルスにおいて、次の演算インターバル内においてトリガ信号を生成する。
【００４４】
当業者であれば、本出願に記述されている革新的な概念は、様々なアプリケーションにおいて変更及び変形可能であることを認識するであろう。従って、本発明の範囲は、前述の特定の模範的な開示内容のいずれかに限定されるものではなく、添付の請求項に定義されているとおりである。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施例による調節可能な時間アキュムレータを示す概略ブロックダイアグラムである。
【図２】本発明の実施例による図１の調節可能な時間アキュムレータの動作のタイミング図を示している。
【図３】本発明の実施例による時間を蓄積する模範的なプロセスを示している。
【図４】本発明の実施例による時間を設定するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアグラムである。
【図５】本発明の実施例による調節可能な時間アキュムレータを使用して時間を設定する模範的なプロセスを示している。
【図６】本発明の実施例による時間を記録するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアログである。
【図７】本発明の実施例による調節可能な時間アキュムレータを使用して時間を記録する模範的なプロセスを示している。
【図８】本発明の実施例によるトリガを生成するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアグラムである。
【図９】本発明の実施例による調節可能な時間アキュムレータを使用してトリガを生成する模範的なプロセスを示している。
【符号の説明】
【００４６】
１０  時間アキュムレータ
２０  第２のレジスタ
３０  オリジナルの時間増分
３５  時間増分値
４０  乗数
５０  加算ノード
５５  更新済みの現在時刻
６０  第１のレジスタ
７０  現在時刻
８０  カウンタ
９０  クロック信号
９５  クロックイネーブル信号
２００  クロックパルス
２１５  演算インターバル
４０５  時間オプション
４１０  第１のマルチプレクサ
４２０  トリガ信号
４３０  第２のマルチプレクサ
４４０  第１のセレクト信号
４５０  第２のセレクト信号
６００  タイムスタンプレジスタ
６１０  クロック状態
６２０  トリガ信号
８１５  トリガ時間
８３０  比較器
８４０  状態信号
８５０  コントローラ
８６０  トリガ信号
【図１】
2007047160.tif 000003
【図２】
2007047160.tif 000004
【図３】
2007047160.tif 000005
【図４】
2007047160.tif 000006
【図５】
2007047160.tif 000007
【図６】
2007047160.tif 000008
【図７】
2007047160.tif 000009
【図８】
2007047160.tif 000010
【図９】
2007047160.tif 000011