説明

調節可能な時間アキュムレータ

【課題】高クロック周波数で動作する能力を有する低速の時間アキュムレータを提供すること。
【解決手段】時間アキュムレータ(10)は、現在時刻(70)を保存する第1のレジス(60)タと、クロック信号(90)のクロックパルス(200)と関連するオリジナルの時間増分(30)によって乗算された乗数に対応した時間増分値(35)を保存する第2のレジスタ(20)とを含んでいる。クロック信号(90)は、演算インターバル(215)に分割され、この場合に、それぞれの演算インターバル(215)は、乗数の値に等しい所定数のクロックパルスを含んでいる。時間アキュムレータ(10)は、それぞれの演算インターバルごとに現在時刻(70)を時間増分値(35)に加算して更新済みの現在時刻(55)を生成する加算ノード(50)を更に含んでいる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、時間アキュムレータに関する。
【背景技術】
【0002】
時間(又は、位相)アキュムレータは、一般に、デジタル回路内において現在時刻を追跡するべく使用されている。時間アキュムレータは、クロック周波数と呼ばれる速度で現在時刻に時間増分を加算することにより、動作する。時間増分は、固定であるか、可変であるか、又は時変であってよい。時変実装の一例が、時間アキュムレータを外部時間基準と同期状態に維持するべく時間増分の変更のために使用されるサーボループである。クロック周波数が高いほど、時間アキュムレータの分解能も向上し、イベント時間の記録に使用可能な時間アキュムレータの精度も向上する。例えば、時間アキュムレータを使用することにより、タイマー値を設定したり、外部イベントの時間を記録したり(即ち、タイムスタンプ)、或いは、所与の時点において外部イベントのトリガ信号を生成可能である。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、クロック周波数が高くなると、必然的に時間増分の加算演算及び時間増分値に対して実行を要するその他の操作(例えば、サーボループ計算)に利用可能な時間が減少する。時間アキュムレータが次のクロックまでにそのすべての計算を完了させるのに十分な時間が付与されない高クロック周波数で動作する装置内に、時間アキュムレータを実装した場合には、時間アキュムレータによって記録される現在時刻は不正確なものとなろう。この問題に対する解決策は、時間アキュムレータ内において高速ハードウェアを使用したり、装置の精度要件を緩和したり、更には、低速のクロック周波数を使用することにより、クロックパルス間において計算実行のためのより多くの時間を時間アキュムレータに付与することを含んでいる。しかしながら、高速のハードウェアは、通常、高価であり、且つ、多くのアプリケーションにおいて、装置精度の低減は、望ましいことではない。従って、高クロック周波数で動作する能力を有する低速の時間アキュムレータに対するニーズが存在している。
【課題を解決するための手段】
【0004】
本発明の実施例は、クロック周波数とは無関係に十分な計算時間を提供する能力を有する調節可能な時間アキュムレータを提供する。この時間アキュムレータは、現在時刻を保存する第1のレジスタと、クロック信号のクロックパルスと関連するオリジナルの時間増分によって乗算された乗数に対応した時間増分値を保存する第2のレジスタと、を含んでいる。クロック信号は、演算インターバルに分割され、この場合に、それぞれの演算インターバルは、乗数の値に等しい所定数のクロックパルスを含んでいる。時間アキュムレータは、それぞれの演算インターバルごとに現在時刻を時間値に加算して更新済みの現在時刻を生成する加算ノードを更に含んでいる。
【0005】
一実施例においては、調節可能な時間アキュムレータは、クロック信号内のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定するカウンタを更に含んでいる。カウンタは、カウントされたクロックパルスの現在の数がクロックパルスの所定数に等しい場合に、クロックイネーブル信号を第1のレジスタに対して生成する。このクロックイネーブル信号を受信した際に、第1のレジスタをクロッキングして現在時刻を加算ノードに出力する。
【0006】
本発明の一態様においては、時間アキュムレータは、第1及び第2のマルチプレクサを更に含んでいる。第1のマルチプレクサは、時間オプションを選択し、この場合に、時間オプションのそれぞれは、乗数を下回るオリジナルの時間増分の個々の倍数に加算されたオリジナルの時間に対応する時間値である。トリガ信号を受信した際に、カウンタは、クロック状態と関連する時間オプションの中の1つを選択するべく、クロック状態を表す第1のセレクト信号を第1のマルチプレクサに対して生成する。又、カウンタは、トリガ信号が存在していない場合の第1の状態において、並びに、トリガ信号を受信した場合の第2の状態において、第2のセレクト信号を生成する。第2のマルチプレクサは、第2のセレクト信号が第1の状態にある場合に、更新済みの現在時刻を現在時刻として第1のレジスタ内に保存し、第2のセレクト信号が第2の状態にある場合には、選択された時間オプションを現在時刻として第1のレジスタ内に保存する。
【0007】
本発明の別の態様においては、時間アキュムレータは、トリガ信号を受信するべく接続されたタイムスタンプレジスタを更に含んでいる。トリガ信号に応答し、タイムスタンプレジスタは、第1のレジスタからの現在時刻とカウンタからのクロック状態をタイムスタンプとして保存する。
【0008】
本発明の更なる態様においては、時間アキュムレータは、個々の比較器によって生成された状態信号に基づいてトリガ信号を生成するコントローラを更に含んでいる。状態信号のそれぞれは、個々のトリガ時間に対する現在時刻の状態を表している。トリガ時間のそれぞれは、乗数を下回るオリジナルの時間増分の個々の倍数におけるオリジナルのトリガ時間を表している。比較器は、現在時刻が個々のトリガ時間を超過した場合の第1の状態において、或いは、現在時刻が個々のトリガ時間より先行している場合の第2の状態において、その個々の状態信号を生成する。模範的な実施例においては、コントローラは、第1の状態における状態信号の数から現在の演算インターバルにおけるクロック信号のクロック状態を判定し、後続の演算インターバルにおいて、クロック状態に対応したクロックパルスにおいてトリガ信号を生成する。
【発明を実施するための最良の形態】
【0009】
以下、添付の図面を参照し、開示対象の本発明について説明するが、添付の図面は、本発明の模範的な実施例を示しており、これらは、本引用により、本明細書に包含される。
【0010】
図1は、本発明の実施例による模範的で簡単な調節可能な時間アキュムレータ10を示す概略ブロックダイアグラムである。調節可能な時間アキュムレータ10は、時間増分レジスタ20、加算ノード50、時間レジスタ60、及びカウンタ80を含んでいる。時間増分レジスタ20は、更新済みの現在時刻55を生成するべく、加算ノード50により現在時刻70に加算される時間増分値35を保持している。更新済みの現在時刻55は、現在時刻70として時間レジスタ60内に保存される。時間レジスタ60は、現在時刻70を加算ノード50に出力することにより、クロック信号90と同期した状態で現在時刻70を更新する。
【0011】
時間増分値35は、オリジナルの時間増分30の倍数であり、この場合に、オリジナルの時間増分30に乗数40を乗算することによって時間増分値35を生成する。オリジナルの時間インターバル30は、それぞれのクロックパルスごとに現在時刻に対して加算される時間の量であり、本明細書においては、これをクロック周期(クロック信号90の1つの立ち上がりエッジからクロック信号90の次の立ち上がりエッジまで)と定義する。オリジナルの時間増分30は、クロック信号90内の連続したクロックパルス間の時間インターバルに対応している。例えば、クロック信号90がクロックパルスを10ナノ秒(ns)ごとに生成する場合には、オリジナルの時間増分30は10nsである。従って、時間アキュムレータ10が、クロック信号90のクロック周波数において動作する能力を有している場合には、乗数40の値は、それぞれのクロックパルスごとに10nsを現在時刻70に対して加算するべく、「1」である。
【0012】
しかしながら、時間アキュムレータ10がクロック周波数よりも低い速度で稼働する場合には、乗数40の値(N)は、クロック周期と時間アキュムレータ10の動作時間の間の比率によって左右される。例えば、時間アキュムレータ10が、現在時刻70を算出して保存するのに20ナノ秒(ns)を必要とし、クロック周期が10nsである場合には、乗数40の値は、2である(N=2)。従って、オリジナルの時間インターバル30に2を乗算することにより、20ns(2*10ns=20ns)という時間増分値35が生成され、これが現在時刻70に加算されることになる。この結果、時間アキュムレータ10は、クロック周波数によって提供されるタイミング分解能と精度を依然として維持しつつ、(1/N)*クロック周波数において動作することが可能となる。いくつかの実施例においては、乗数40の値は、クロック周期と時間アキュムレータ10の動作時間の比率に応じた現在時刻更新間において変化可能である。
【0013】
クロック信号90のクロック周波数は、時間アキュムレータ10を内蔵する装置の望ましいクロック周波数によって決定され、従って、アプリケーションによって左右されることを理解されたい。いくつかの実施例においては、乗数40の値を変化させることにより、時間アキュムレータ10を時変クロック周波数と同期させることができる。前述のように、乗数40の値は、その計算を実行するために時間アキュムレータ10が必要とするクロック信号90のクロックパルスの数に等しい。本明細書においては、このクロックパルスの数を演算インターバルと呼ぶこととする。従って、時間アキュムレータ10は、それぞれの演算インターバルごとに、一度ずつ、現在時刻70を更新する。
【0014】
カウンタ80は、クロック信号90のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定する。カウントされたクロックパルスの数が乗数40の値と等しく、従って、演算インターバルが経過した場合には、カウンタ80は、クロック信号90によって時間レジスタ60をクロッキングするクロックイネーブル信号95を時間レジスタ60に対して生成する。時間レジスタ60は、現在時刻70を加算ノード50に出力し、加算ノードが現在時刻70を時間増分値35に加算して更新済みの現在時刻55を生成し、これが、新しい現在時刻70として時間レジスタ60内に保存される。従って、時間アキュムレータ10は、N番目のクロックパルスごとに更新される。又、カウンタ80は、クロックイネーブル信号95の生成を完了すると、次の演算インターバルにおけるクロックパルスのカウントを開始するべく、リセットされる。
【0015】
図2に示されているタイミング図を参照することにより、図1の調節可能な時間アキュムレータ10の動作について更に理解することができよう。図2からわかるように、クロック信号90は、既知の時間インターバルだけ離隔したクロックパルス200を含んでおり、この結果、それぞれのクロックパルス200の立ち上がりエッジは、望ましい分解能に対応した速度で受信される。カウンタ値210は、演算インターバル215において、カウンタ80がクロックパルス200の立ち上がりエッジを検出するごとに増分される。従って、カウンタ値210は、クロック信号90のクロック状態を表しており、この場合に、クロック状態は、クロック信号90内のカウントされたクロックパルス200の現在の数に対応している。図2においては、演算インターバル215は、3つのクロックパルス200を含んでおり、従って、カウンタ値210は、第3のカウントされたクロックパルス200に続く次のクロックパルス200の立ち上がりエッジにおいてリセットされる。
【0016】
それぞれのカウンタ値210(カウントされたクロックパルス)は、演算インターバル215の異なる位相を表している。演算インターバル215の位相に留意することにより、図4〜図9との関連で後程詳述するように、時間アキュムレータ10が(1/N)*クロック周波数でしか更新されていない場合にも、クロック信号90のクロック周波数において様々なタイミング操作を実行可能である。
【0017】
クロックイネーブル信号95は、「N」個のクロックパルス200をカウントした際に生成される。例えば、図2に示されているように、クロックイネーブル信号95は、第3のカウントされたクロックパルス200の立ち上がりエッジにおいて生成される(これは、参照符号220によって概略的に示されている)。クロックイネーブル信号95が生成された際に現在時刻70が更新される。演算インターバル215が3つのクロックパルス200を含んでいるため、クロックイネーブル信号95は、3つのクロックパルス200ごとに生成され、現在時刻70の値230は、3つのクロックパルス200ごとに更新される。例えば、図2に示されているように、初期の時間においては、現在時刻70の値230はTからTに更新されており、この結果、第1の演算インターバル215の終了時点において、現在時刻70の値はTとなっている。3つのクロックパルス200の後に、現在時刻70の値230は、再度、TからTに更新され、この結果、現在時刻70の値230は、第2の演算インターバル215の終了時点において、Tとなる。
【0018】
図3は、本発明の実施例による時間を蓄積する模範的なプロセス300を示している。プロセス300は、ブロック310において始まっており、ここでは、オリジナルの時間インターバルと乗数の乗算から時間増分値を判定している。オリジナルの時間インターバルは、それぞれのクロックパルスごとに現在時刻に対して加算することを要する時間量(クロック周期)であり、乗数は、蓄積を実行するのに必要な時間から判定される。例えば、クロックパルスが10nsごとに発生し、蓄積時間が30nsである場合には、乗数の値は3である。従って、オリジナル時間インターバル(10ns)に3を乗算することにより、30nsの時間増分値が生成される。
【0019】
プロセスは、ブロック320において継続し、ここでは、クロック周波数においてクロック信号を受信する。前述の例を使用すれば、10nsごとにクロックパルスを生成するクロック信号のクロック周波数は100MHzである。ブロック330において、クロック信号のクロックパルスをカウントする。例えば、クロック信号の受信に先立って、カウンタを1に初期化する。クロック信号がカウンタに入力されると、クロック信号内のそれぞれのクロックパルスの立ち上がりエッジにおいて、カウントが1だけ増分される。先程と同一の例を使用すれば、連続したクロックパルスの立ち上がりエッジ間の時間が10nsであれば、カウンタは、10nsごとに1だけ増分される。
【0020】
プロセスは、ブロック340において継続し、ここでは、カウンタの現在の値をクロックパルスの所定数(これは、乗数の値に等しい)と比較する。カウンタの現在の値が乗数の値と等しくない場合には、カウンタは、クロックパルスのカウントを継続する。先程と同一の例を使用すれば、カウンタがクロック信号内の第1のクロックパルスの立ち上がりエッジを検出した際に、カウントが1から2へと増分される。乗数の値は3であるため、カウンタは、カウンタが3つのクロックパルスをカウントするまで、クロックパルスのカウントを継続する。
【0021】
カウンタの現在の値が乗数の値に等しくなると、ブロック350において、ブロック310において判定された時間増分値を現在時刻に加算して現在時刻を更新する。例えば、現在時刻が30nsであり、時間値の増分が30nsである場合には、ブロック350において、現在時刻が60nsに増分される。ブロック360において、カウンタをリセットし、プロセスをブロック320において反復する。先程と同一の例を使用すれば、ブロック350からの更新済みの現在時刻は、60nsであり、乗数の値が依然として3であるとすれば、カウンタは、ブロック330においてクロック信号内の3つの更なるクロックパルスをカウントし、3つの更なるクロックパルスの後に、現在時刻が60nsから90nsに増分されることになる。
【0022】
図4は、本発明の実施例による調節可能な時間アキュムレータ10の模範的な実装の概略ブロックダイアグラムである。図4においては、調節可能な時間アキュムレータ10をトリガ回路(具体的に図示されてはいない)と関連させて使用することにより、時間レジスタ60内に読み込む新しい時間のみならず、更新を実行するべき位相をも識別している。図1と同様に、時間アキュムレータ10は、時間増分値35を保存する時間増分レジスタ20、現在時刻70を保存する時間レジスタ60、時間増分値35を現在時刻70に加算して更新済みの現在時刻55を生成する加算ノード50、及びクロック信号90のクロックパルスをカウントするカウンタ80を含んでいる。
【0023】
時間アキュムレータ10は、第1のマルチプレクサ410と第2のマルチプレクサ430を更に含んでいる。第1のマルチプレクサ410は、レジスタ400a、400b、400c...400N内に保存されている時間オプション405a、405b、405c...405Nを選択する。レジスタ400a内に保存されている時間オプション405aは、特定の時点において時間アキュムレータ10の現在時刻70を更新するべく時間アキュムレータ内に読み込まれる新しい時間値に対応している。後続のレジスタ400b、400c...400N内に保存されている時間オプション405b、405c...405Nは、それぞれ、1時間インターバルだけ離隔しており、この場合に、時間インターバルは、クロック信号90内の連続したクロックパルス間の時間量を意味している。従って、レジスタ400b内に保存されている時間オプション405bは、「新しい時間値+時間インターバル」に等しく、レジスタ400c内に保存された時間オプション405cは、「新しい時間値+時間インターバルの2倍」に等しく、レジスタ400N内に保存されている時間オプション405Nは、「新しい時間値+時間インターバルの(N−1)倍」に等しい。
【0024】
前述のように、カウンタ80は、クロック信号90のクロックパルスをカウントし、カウントされたクロックパルスの現在の数を示すクロック状態を判定する。異なるクロック状態の数は、演算インターバル内のクロックパルスの数に等しい。従って、それぞれのクロック状態(カウントされたクロックパルス)は、演算インターバルの異なる位相を表している。この位相情報を使用することにより、新しい現在時刻70として時間レジスタ60内に読み込むべく、レジスタ400a...400N内に保存されている時間オプション405a...405Nの中の1つを選択する。
【0025】
具体的には、カウンタ80は、時間レジスタ60内への時間オプション405a...405Nの中の1つの読み込みを開始するトリガ信号420を受信するべく接続されている。カウンタ80は、トリガ信号420を受信すると、現在のクロック状態を示す第1のセレクト信号440を第1のマルチプレクサ410に対して生成し、第1のマルチプレクサ410が選択するべき特定の時間オプション405a...405Nを識別する。それぞれのクロック状態は、特定の時間オプション405a...405Nに対応している。例えば、時間オプション405aは、初期クロック状態に対応しており、時間オプション405bは、第1のクロック状態に対応しており、時間オプション405cは、第2のクロック状態に対応しており、時間オプション405Nは、第Nのクロック状態に対応している。一例として、第1のセレクト信号400が、現在のクロック状態が第2のクロック状態にあると通知した場合には、第1のマルチプレクサ410は、レジスタ400c内に保存されている時間オプション405cを選択する。
【0026】
クロックイネーブル信号95及び第1のセレクト信号440に加え、カウンタ80は、第2のマルチプレクサ430に対して第2のセレクト信号450をも生成する。第2のセレクト信号450は、カウンタ80がトリガ信号420を受信していない場合に、第1の状態を具備し、カウンタ80がトリガ信号420を受信している場合には、第2の状態を具備する。第2のマルチプレクサ430は、第1のマルチプレクサ410から供給される選択された時間オプション405と加算ノード50から供給される更新済みの現在時刻55のいずれかを選択し、新しい現在時刻70として時間レジスタ60内に保存する。第2のマルチプレクサ430は、第2のセレクト信号450が第1の状態にある場合には、加算ノード50からの更新済みの現在時刻55を新しい現在時刻70として時間レジスタ60内に選択及び保存する。同様に、第2のマルチプレクサ430は、第2のセレクト信号450が第2の状態にある場合には、第1のマルチプレクサ410からの選択された時間オプション405を新しい現在時刻70として時間レジスタ60内に選択及び保存する。
【0027】
図5は、本発明の実施例による調節可能な時間アキュムレータを使用して時間を設定する模範的なプロセス500を示している。プロセス500は、ブロック510において始まっており、ここでは、新しい時間値を設定し、調節可能な時間アキュムレータ内に読み込んでいる。ブロック520において、読み込んだ新しい時間値から、それぞれの位相ごとの時間オプションを判定する。それぞれの時間オプションは、新しい時間値によって始まり、クロック信号の連続したクロックパルス間の時間インターバルの倍数(N)がこれに加算されている(ここで、N≧0)。例えば、演算インターバル内に3つの位相が存在している場合には、3つの時間オプションは、「新しい時間値」、「新しい時間値+時間インターバル」、及び「新しい時間値+時間インターバルの2倍」を含むことができる。
【0028】
プロセスは、ブロック530において継続し、ここでは、時間アキュムレータにおいてトリガ信号を受信し、時間アキュムレータ内への新しい時間値の読み込みを開始している。ブロック540において、トリガ信号が受信された時点におけるクロック状態(演算インターバルの位相)を判定し、ブロック550において、現在のクロック状態に対応した時間オプションを時間アキュムレータ内に読み込むべき新しい時間値として選択している。前述の例を使用すれば、トリガ信号が受信された時点における現在のクロック状態が、クロック信号が演算インターバルの第2の位相内にあると通知している場合には、「新しい時間値+時間インターバル」に対応した第2の時間オプションが、時間アキュムレータ用の新しい現在時刻として選択される。
【0029】
図6は、本発明の実施例による調節可能な時間アキュムレータ10の別の模範的な実装の概略ブロックダイアグラムである。図6においては、調節可能な時間アキュムレータ10をトリガ回路(図示されてはいない)との関連で使用し、タイムスタンプを作成することによって外部イベントの時間を記録している。図1と同様に、時間アキュムレータ10は、時間増分値35を保存する時間増分レジスタ20、現在時刻70を保存する時間レジスタ60、時間増分値35を現在時刻70に加算して更新済みの現在時刻55を生成する加算ノード50、及びクロック信号90のクロックパルスをカウントするカウンタ80を含んでいる。
【0030】
時間アキュムレータ10は、タイムスタンプを生成及び保存するタイムスタンプレジスタ600を更に含んでいる。タイムスタンプレジスタ600は、時間レジスタ60から現在時刻70を、そして、カウンタ80から現在のクロック状態610を受信するべく、接続されている。それぞれのクロックパルスにおいて、カウンタ80は、現在のクロック状態610(例えば、カウントされたクロックパルスの数)を出力することにより、演算インターバルの現在の位相について通知する。この位相情報を使用することにより、ハードウェア又はソフトウェアにおいて現在時刻70に対して適切な時間増分を加算し、正しいタイムスタンプを生成可能である。
【0031】
タイムスタンプを生成するべく、タイムスタンプイネーブル信号620をタイムスタンプレジスタ600に送信することにより、外部イベントによって時間レジスタ60の複写がラッチされる。タイムスタンプレジスタ600は、タイムスタンプイネーブル信号620を受信すると、クロック信号90によってクロッキングされ、時間レジスタ60からの現在時刻70とカウンタ80からの現在のクロック状態610の両方を保存する。現在時刻70と現在のクロック状態610の組み合わせにより、タイムスタンプを形成している。
【0032】
図7は、本発明の実施例による調節可能な時間アキュムレータを使用して時間を記録する模範的なプロセス700を示している。プロセス700は、ブロック710において始まっており、ここでは、調節可能な時間アキュムレータによってタイムスタンプトリガ信号(例えば、上記タイムスタンプイネーブル信号に相当する信号)を受信している。タイムスタンプトリガ信号は、外部イベントの時間を記録するべく、その外部イベントによって生成される。プロセスは、ブロック720及び730において継続し、ここでは、タイムスタンプトリガ信号の受信時点における調節可能な時間アキュムレータの現在時刻と現在のクロック状態の両方を判定している。ブロック740において、現在時刻及び現在のクロック状態を、その外部イベントに要求されたタイムスタンプとして保持している。現在のクロック状態の知識により、(例えば、現在のクロック状態に対応した連続クロックパルス間の時間インターバルの倍数を現在時刻に加算することによって)実際の(正しい)タイムスタンプを判定可能である。
【0033】
図8A及び図8Bは、本発明の実施例による調節可能な時間アキュムレータのその他の模範的な実装の概略ブロックダイアグラムである。図8A及び図8Bにおいては、調節可能な時間アキュムレータ10は、外部イベントを開始するためのトリガ信号の生成に使用される。図8A及び図8Bには具体的に示されていないが、図1と同様に、時間アキュムレータ10は、時間増分値を保存する時間増分レジスタ、現在時刻70を保存する時間レジスタ60、現在時刻70に時間増分値を加算して更新済みの現在時刻を生成する加算ノード、及びクロック信号のクロックパルスをカウントするカウンタを含んでいる。
【0034】
図8Aにおいては、時間アキュムレータ10は、トリガ時間815を保存するトリガレジスタ810、現在時刻70とトリガ時間815の間の差分を表す差分値805を判定する差分ノード800、個々の時間インターバル値825a、825b、825c...825Nを保存するレジスタ820a、820b、820c...820N、個々の時間インターバル値825a、825b、825c...825Nを差分値805と比較する比較器830a、830b、830c...830N、及びコントローラ850を更に含んでいる。それぞれの比較器830a、830b、830c...830Nは、個々の状態信号840a、840b、840c...840Nをコントローラ850に対して生成する。状態信号840a、840b、840c...840Nのそれぞれは、個々の固有のトリガ時間に対する現在時刻70の状態を表しており、この場合に、それぞれの固有のトリガ時間は、連続したクロックパルス間の時間インターバルの個々の倍数において保存されたトリガ時間815を表しており、この場合に、倍数は、ゼロと演算インターバル内のクロックパルスの数(即ち、乗数値)の間に位置している。
【0035】
例えば、それぞれの状態信号840a、840b、840c...840Nは、現在時刻70が個々の固有のトリガ時間を超過した際に、第1の状態であり、現在時刻70が個々の固有のトリガ時間を超過していない場合には、第2の状態をとることができる。第1の状態における状態信号840a、840b、840c...840Nの数に基づいて、コントローラ850は、現在の演算インターバル内におけるクロック信号の現在のクロック状態を判定する。コントローラ850は、後続の演算インターバル内において、この判定したクロック状態に対応するクロックパルスにおいてトリガ信号860を生成する。
【0036】
一実施例においては、それぞれの比較器830a、830b、830c...830Nは、それぞれの時間インターバル値825a、825b、825c...825Nを差分値805と比較し、差分値805が、個々の時間インターバル値825a、825b、825c...825Nを下回っているか又はこれらに等しいかどうかを判定する。差分値805が、時間インターバル値825a、825b、825c...825Nの中の少なくとも1つのものを下回っているか又はこれと等しい場合には、コントローラ850は、差分値805が個々の時間インターバル値825a、825b、825c...825Nを下回っていることを通知する状態信号840a、840b、840c...840Nの数から判定されたクロックパルスにおいて、次の演算インターバル内において、トリガ信号860を生成する。
【0037】
一例として、演算インターバル内に4つのクロックパルスが存在しており、それぞれのクロックパルスが10nsである場合には、第1の時間インターバル値825aは、0であり、第2の時間インターバル値825bは、10であり、第3時間インターバル値825cは、20であり、第4時間インターバル値825Nは、30である。トリガ時間815が62nsに設定されており、現在時刻が80nsである場合には、差分値805は18nsであり、第1の比較器830aは、差分値805が0を上回っていることを通知する状態信号840aを出力し、第2の比較器830bは、差分値が10を上回っていることを通知する状態信号840aを出力し、第3比較器830cは、差分値が20を下回っていることを通知する状態信号840cを出力し、第4比較器830Nは、差分値が30を下回っていることを通知する状態信号840Nを出力することになろう。
【0038】
比較器の中の2つ(比較器830c及び830N)が、差分値805が個々の時間インターバル値825c及び825Nを下回っているか又はこれらと等しいことを通知する状態信号840c及び840Nを生成した場合には、コントローラ850は、トリガ信号860が演算インターバルの第2の位相内にあるはずであると判定する。この場合には、コントローラ850は、次の演算インターバルの第2の位相内においてトリガ信号860を生成する。別の例として、すべての4つの比較器830a、830b、830c...830Nが、差分値が個々の時間インターバル値825a、825b、825c...825Nを下回っているか又はこれらと等しいと通知する状態信号840a、840b、840c...840Nを生成した場合には、コントローラ850は、トリガ信号860が演算インターバルの第1の位相にあるはずであると判定することになろう。更なる例として、1つの比較器830Nのみが、差分値が個々の時間インターバル値825Nを下回っているか又はこれらと等しいと通知する状態信号840Nを生成した場合には、コントローラ850は、トリガ信号860が演算インターバルの第4の位相にあるはずであると判定することになろう。
【0039】
図8Bにおいては、時間アキュムレータ10は、オリジナルのトリガ時間815を保存するレジスタ810、個々のトリガ時間インターバル値875a、875b...875Nを保存するレジスタ870a、870b...870N(このそれぞれは、連続したクロックパルス間の時間インターバルの倍数に加算されたオリジナルのトリガ時間815を表しており、この場合に、倍数は、0と乗数値(N−1)の間に位置している)、個々のトリガ時間インターバル値815、875a、875b...875Nを現在時刻70と比較する比較器830a、830b、830c...830N、及びコントローラ850を更に含んでいる。図8Aと同様に、比較器830a、830b、830c...830Nのそれぞれは、トリガ時間インターバル値815、875a、875b...875Nに対する現在時刻70の状態を示す個々の状態信号840a、840b、840c...840Nをコントローラ850に対して生成する。
【0040】
例えば、一実施例においては、それぞれの比較器830a、830b、830c...830Nは、個々のトリガ時間インターバル値815、875a、875b...875Nを現在時刻70と比較し、現在時刻70が個々のトリガ時間インターバル値815、875a、875b...875Nを上回っているか又はこれらと等しいかどうか(到達しているか又は超過しているか)を判定する。現在時刻70が、トリガ時間インターバル値875a、875b...875Nの中の少なくとも1つのものを上回っているか又は等しい場合には、コントローラ850は、現在時刻70が個々のトリガ時間インターバル値815、875a、875b...875Nを下回っていると通知する状態信号840a、840b、840c...840Nの数から判定されたクロックパルスにおいて、次の演算インターバル内においてトリガ信号860を生成する。
【0041】
図9は、本発明の実施例による調節可能な時間アキュムレータを使用してトリガを生成する模範的なプロセス900を示している。プロセス900は、ブロック910において始まっており、ここでは、演算インターバルのクロック状態の数に対応する数(N)の時間インターバル値を供給する。それぞれの時間インターバル値は、連続したクロックパルス間の時間インターバルの倍数であり、この場合に、倍数は、ゼロと演算インターバル内のクロックパルスの数(即ち、乗数値)の間に位置している。プロセスは、ブロック920及び930において継続し、ここでは、トリガ時間を供給し、それぞれの時間インターバル値に対応するトリガ時間を判定する。例えば、一実施例においては、それぞれの時間インターバル値に対応するトリガ時間は、時間インターバル値自体によって表されている。別の実施例においては、それぞれの時間インターバル値に対応するトリガ時間は、個々の時間インターバル値に加算されたトリガ時間である。
【0042】
プロセスは、段階940において継続し、現在の演算インターバルにおいて、現在時刻を受信する。ブロック950において、現在時刻をそれぞれの時間インターバル値に対応するトリガ時間と比較する。例えば、一実施例においては、トリガ時間と現在時刻の間の差を判定し、この差を時間インターバル値自体と比較する。別の実施例においては、現在時刻を、それぞれの時間インターバル値に加算されたトリガ時間と比較している。
【0043】
ブロック960において、現在時刻が、時間インターバル値の1つ又は複数のものに対応したトリガ時間を上回っているかどうかの判定を行う。上回っていない場合には、プロセスをブロック940において反復し、新しい現在時刻を受信する。上回っている場合には、プロセスは、ブロック970において継続し、ここで、現在時刻を上回っている時間インターバル値に対応したトリガ時間の数に基づいて、現在の演算インターバル内のクロック信号の現在のクロック状態を判定する。次いで、プロセスは、ブロック980において継続し、ここで、判定されたクロック状態に対応したクロックパルスにおいて、次の演算インターバル内においてトリガ信号を生成する。
【0044】
当業者であれば、本出願に記述されている革新的な概念は、様々なアプリケーションにおいて変更及び変形可能であることを認識するであろう。従って、本発明の範囲は、前述の特定の模範的な開示内容のいずれかに限定されるものではなく、添付の請求項に定義されているとおりである。
【図面の簡単な説明】
【0045】
【図1】本発明の実施例による調節可能な時間アキュムレータを示す概略ブロックダイアグラムである。
【図2】本発明の実施例による図1の調節可能な時間アキュムレータの動作のタイミング図を示している。
【図3】本発明の実施例による時間を蓄積する模範的なプロセスを示している。
【図4】本発明の実施例による時間を設定するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアグラムである。
【図5】本発明の実施例による調節可能な時間アキュムレータを使用して時間を設定する模範的なプロセスを示している。
【図6】本発明の実施例による時間を記録するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアログである。
【図7】本発明の実施例による調節可能な時間アキュムレータを使用して時間を記録する模範的なプロセスを示している。
【図8】本発明の実施例によるトリガを生成するための調節可能な時間アキュムレータの模範的な実装の概略ブロックダイアグラムである。
【図9】本発明の実施例による調節可能な時間アキュムレータを使用してトリガを生成する模範的なプロセスを示している。
【符号の説明】
【0046】
10 時間アキュムレータ
20 第2のレジスタ
30 オリジナルの時間増分
35 時間増分値
40 乗数
50 加算ノード
55 更新済みの現在時刻
60 第1のレジスタ
70 現在時刻
80 カウンタ
90 クロック信号
95 クロックイネーブル信号
200 クロックパルス
215 演算インターバル
405 時間オプション
410 第1のマルチプレクサ
420 トリガ信号
430 第2のマルチプレクサ
440 第1のセレクト信号
450 第2のセレクト信号
600 タイムスタンプレジスタ
610 クロック状態
620 トリガ信号
815 トリガ時間
830 比較器
840 状態信号
850 コントローラ
860 トリガ信号

【特許請求の範囲】
【請求項1】
現在時刻(70)を保存する第1のレジスタ(60)と、
クロック信号(90)のクロックパルス(200)と関連するオリジナルの時間増分(30)によって乗算された乗数(40)に対応する時間増分値(35)を保存する第2のレジスタ(20)と、
前記現在時刻(70)、前記時間増分値(35)、及び前記クロック信号(90)を受信するべく接続されており、それぞれの演算インターバル(215)ごとに前記現在時刻(70)を前記時間増分値(35)に加算して更新済みの現在時刻(55)を生成し、前記更新済みの現在時刻(55)を前記現在時刻(70)として前記第1のレジスタ(60)内に保存するべく動作可能な加算ノード(50)と、
を具備し、
それぞれの前記演算インターバル(215)は、前記乗数(40)に等しい所定数の前記クロック信号(90)のクロックパルス(200)を含む時間アキュムレータ(10)。
【請求項2】
前記クロック信号(90)を受信するべく接続されており、前記クロック信号(90)内のクロックパルス(200)をカウントし、カウントされたクロックパルス(200)の現在の数を示すクロック状態を判定するよう動作可能なカウンタ(80)を更に有する請求項1記載の時間アキュムレータ(10)。
【請求項3】
前記カウンタ(80)は、前記カウントされたクロックパルス(200)の現在の数が前記クロックパルス(200)の前記所定数に等しい場合に、クロックイネーブル信号(95)を前記第1のレジスタ(60)に対して生成するべく更に動作可能であり、前記クロックイネーブル信号(95)は、前記クロック信号(90)によって前記第1のレジスタ(60)をクロッキングし、前記第1のレジスタ(60)は、前記クロック信号(90)を受信した際に、前記現在時刻(70)を前記加算ノード(50)に出力するべく動作可能である請求項2記載の時間アキュムレータ(10)。
【請求項4】
時間オプション(405)を受信し、前記時間オプション(405)を選択するべく接続された第1のマルチプレクサ(410)を更に具備し、前記時間オプション(405)のそれぞれは、前記オリジナルの時間増分(30)の個々の倍数に加算されたオリジナルの時間に対応した個々の時間値を含んでおり、それぞれの前記個々の倍数は、前記乗数(40)と等しいか又はこれを下回っており、前記カウンタ(80)は、トリガ信号(420)を受信するべく接続されており、且つ、前記トリガ信号(420)に応答し、前記クロック状態と関連する前記時間オプション(405)の中の1つを選択するために、前記クロック状態を表す第1のセレクト信号(440)を前記第1のマルチプレクサ(410)に対して生成するべく更に動作可能である請求項2記載の時間アキュムレータ(10)。
【請求項5】
前記カウンタ(80)は、前記トリガ信号(420)が存在しない場合の第1の状態において、並びに、前記トリガ信号(420)を受信した場合の第2の状態において、第2のセレクト信号(450)を生成するべく更に動作可能であり、
前記第1のマルチプレクサ(410)からの前記選択された時間オプション(405)、前記加算ノード(50)からの前記更新済みの現在時刻(55)、及び前記カウンタ(80)からの前記第2のセレクト信号(450)を受信するべく接続された第2のマルチプレクサ(430)であって、前記第2のセレクト信号(450)が前記第1の状態にある場合に前記更新済みの現在時刻(55)を前記現在時刻(70)として前記第1のレジスタ(60)内に保存し、前記第2のセレクト信号(450)が前記第2の状態にある場合に前記選択された時間オプション(405)を前記現在時刻(70)として前記第1のレジスタ(60)内に保存するべく動作可能である第2のマルチプレクサ(430)を更に具備する請求項4記載の時間アキュムレータ。
【請求項6】
前記第1のレジスタ(60)からの前記現在時刻(70)、前記カウンタ(80)からの前記クロック状態(610)、及びトリガ信号(620)を受信するべく接続されたタイムスタンプレジスタ(600)を更に具備し、前記タイムスタンプレジスタ(600)は、前記トリガ信号(620)を受信した際に、前記現在時刻(70)及び前記クロック状態(610)をタイムスタンプとして保存する請求項2記載の時間アキュムレータ(10)。
【請求項7】
状態信号(840)を受信するべく接続されたコントローラ(850)を更に具備し、前記状態信号のそれぞれは、個々のトリガ時間に対する前記現在時刻(70)の状態を表しており、前記個々のトリガ時間のそれぞれは、前記乗数(40)に等しいか又はこれを下回る前記オリジナルの時間増分(30)の個々の倍数におけるオリジナルのトリガ時間(815)を表しており、前記コントローラ(850)は、前記状態信号に基づいてトリガ信号(860)を生成するべく動作可能である請求項6記載の時間アキュムレータ(10)。
【請求項8】
前記個々のトリガ時間のそれぞれ用の個々の比較器(830)を更に具備し、前記個々の比較器のそれぞれは、前記現在時刻(70)が前記個々のトリガ時間を超過している場合の第1の状態において、または、前記現在時刻(70)が前記個々のトリガ時間よりも先行している場合の第2の状態において、前記個々の状態信号(840)を生成する請求項7記載の時間アキュムレータ(10)。
【請求項9】
前記コントローラ(850)は、前記第1の状態において前記状態信号(840)の数から前記クロック信号(90)のクロック状態を判定し、後続の演算インターバル(215)内において、前記クロック状態に対応した前記クロックパルス(200)において前記トリガ信号(860)を生成するべく更に動作可能である請求項8記載の時間アキュムレータ(10)。
【請求項10】
クロック信号(90)のクロックパルス(200)と関連するオリジナルの時間増分(30)によって乗算された乗数(40)に対応する時間増分値(35)を供給する段階(310)と、
前記クロック信号(90)を受信する段階(320)と、
前記クロック信号(90)のクロックパルス(200)をカウントする段階(330)と、
前記クロック信号(90)のカウントされたクロックパルス(200)の現在の数が、前記乗数(40)に等しい前記クロック信号(90)のクロックパルス(200)の所定の数に等しい場合に、更新済みの現在時刻(55)を前記現在時刻(70)として生成するべく前記時間増分値(35)を現在時刻(70)に加算する段階(350)と、
を具備する時間を蓄積する方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−47160(P2007−47160A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2006−213543(P2006−213543)
【出願日】平成18年8月4日(2006.8.4)
【出願人】(399117121)アジレント・テクノロジーズ・インク (710)
【氏名又は名称原語表記】AGILENT TECHNOLOGIES, INC.
【住所又は居所原語表記】395 Page Mill Road Palo Alto,California U.S.A.
【Fターム(参考)】