(57)【要約】【課題】  量子化誤差の蓄積を回避しつつ、ローカルクロックの過剰なドリフトを回避するローカルクロックの正確な補正方法等を提供する。【解決手段】上述した課題は、複数のレート係数の中からレート係数のシーケンスを選択する段階と、徐々に長くなっている置換周期内において前記レート係数のシーケンスをそれぞれ蓄積する段階とを有するローカル時間を補正する方法等により解決することができる。【選択図】図１
2007208969.tif 000002
【特許請求の範囲】
【請求項１】
一連の徐々に長くなっている置換周期を使用して複数のレート係数の中から選択されたレート係数のシーケンスを蓄積することによって、ローカル時間を補正する回路。
【請求項２】
前記置換周期及び前記レート係数は、前記ローカル時間内における量子化誤差の蓄積を回避するべく選択される請求項１に記載の回路。
【請求項３】
前記置換周期及び前記レート係数は、前記ローカル時間内における大きな誤差を回避するべく選択される請求項１に記載の回路。
【請求項４】
前記置換周期は、互いの倍数になっている請求項１から３のいずれかに記載の回路。
【請求項５】
前記置換周期は、２の整数乗の比率で増大する請求項４に記載の回路。
【請求項６】
複数のレート係数の中からレート係数のシーケンスを選択する段階と、
徐々に長くなっている置換周期内において前記レート係数のシーケンスをそれぞれ蓄積する段階と、
を有するローカル時間を補正する方法。
【請求項７】
前記置換周期及び前記レート係数は、前記ローカル時間内における量子化誤差の蓄積を回避するべく選択されている請求項６に記載の方法。
【請求項８】
レート係数のシーケンスを選択する段階は、前記ローカル時間内における大きな誤差を回避するべく、レート係数のシーケンス及び前記置換周期を選択する段階を有する請求項６に記載の方法。
【請求項９】
前記レート係数のシーケンスを蓄積する段階は、互いの倍数になっている置換周期の組内において前記レート係数のシーケンスを蓄積する段階を有する請求項６から８のいずれかに記載の方法。
【請求項１０】
互いの倍数になっている置換周期の組内において前記レート係数のシーケンスを蓄積する段階は、２の整数乗の比率で増大する置換周期の組内において前記レート係数のシーケンスを蓄積する段階を有する請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子システムに利用するローカルクロックの補正方法に関する。
【背景技術】
【０００２】
様々な電子システムに、ローカルクロックが包含可能である。ローカルクロックを包含する装置の例は多数存在しており、これらには、コンピュータシステム、サーバー、ストレージ装置、試験装置、産業用制御装置、環境制御装置、及び電気製品が含まれている。
【０００３】
ローカルクロックは、カウンタと、カウンタにそのカウントを増分させる発振器信号を生成する発振器とを包含することができる。例えば、１メガヘルツの周波数を具備した発振器信号は、カウンタにそのカウントをマイクロ秒ごとに増分させる（即ち、マイクロ秒をカウントさせる）ことができる。使用する発振器の周波数が高いほど、提供可能な時間分解能が高くなる。
【０００４】
１以外の値によってカウンタを増分することにより、ローカル時間をカウンタと関連付けることができる。例えば、２５０ｋＨｚの周波数を具備した発振器を使用し、時間カウントをマイクロ秒を単位として維持するには、１クロックごとにカウンタを４つ増分すればよい。カウンタを増分する際に使用する値は、カウント対象である時間増分との比較におけるその発振器のレートによって左右される。
【０００５】
ローカルクロック内の発振器の周波数は、時間と共に変化し得る。例えば、発振器の周波数は、温度やその他の環境要因の変化に応答して変化可能である。発振器の周波数に対する変化により、ローカルクロックは、ある場合には、相対的に高速で、その他の場合には、相対的に低速で稼動することになり、この結果、その精度が低下する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ローカルクロックの精度を改善するための従来技法の１つが、定期的に補正を適用する方法である。例えば、補正をローカルクロックに対して加算又は減算することにより、ローカルクロックを基準時間に整合させることができる。残念ながら、ローカルクロックに対して補正を１回適用しても、その後、放置された場合には、ローカルクロックは、基準時間との整合状態から逸脱することになる。ローカルクロックに対して補正を頻繁に適用することは可能であるが、これには、過剰な量子化誤差が蓄積されるというリスクが伴っている。例えば、ｎビット値を保持しているローカルクロックは、補正のそれぞれの加算又は減算の際に１／ｎの量子化誤差が発生する可能性を有している。
【課題を解決するための手段】
【０００７】
量子化誤差の蓄積を回避しつつ、ローカルクロックの過剰なドリフトを回避するローカルクロックの正確な補正方法について開示している。本技法によるローカルクロックは、一連の徐々に長くなっている置換周期を使用して複数のレート係数の中から選択されたレート係数のシーケンスを蓄積することによって、ローカル時間を生成している。
【０００８】
本発明のその他の特徴及び利点については、以下の詳細な説明を参照することによって明らかとなろう。
【発明を実施するための最良の形態】
【０００９】
以下、本発明は、その特定の模範的な実施例に関して説明され、添付の図面が参照される。
【００１０】
図１は、本開示内容によるローカルクロック１０を示している。ローカルクロック１０は、発振器１４からの発振器信号１６に応答して時間カウント１８を生成するカウンタ１２を含んでいる。発振器信号１６により、カウンタ１２は、例えば、発振器信号１６の立ち上がりエッジにおいて増分する。ローカルクロック１０は、時間カウント１８に応答してレート係数１００の組を蓄積することによってローカル時間１１０を生成するレート補正回路２０及びアキュムレータ２２を含んでいる。レート補正回路２０は、一連の徐々に長くなっている置換周期を使用してレート係数１００のシーケンスを選択している。
【００１１】
レート係数１００はＡ０、Ａ１、．．．、ＡＭと呼称可能である。レート補正回路２０は、時間カウント１８内におけるそれぞれのステップごとのアキュムレータ２２による蓄積用の係数４０を、レート係数Ａ０、Ａ１、．．．、ＡＭの中から選択する。
【００１２】
表１は、一実施例において時間カウント１８内の各ステップごとにレート補正回路２０によって選択されるレート係数Ａｉのインデックスｉを示している。この実施例においては、レート係数Ａ０の４回目の使用ごとに、レート係数Ａ１によって置換されている。そして、レート係数Ａ１の４回目の使用ごとに、レート係数Ａ２によって置換されている（以下、同様）。
【００１３】
【表１】
2007208969.tif 000003
【００１４】
この時間カウント１８内におけるステップに対するレート係数Ａ０、Ａ１、．．．、ＡＭの割り当てにより、置換周期の組を提供している。これらの置換周期は、Ｎ０、Ｎ１、．．．、ＮＭと呼称可能である。一実施例における置換周期Ｎ０、Ｎ１、．．．、ＮＭは、すべてのｊについてＮｊ＝ｋ＊Ｎｊ＋１となるように、互いの倍数になっており、この場合、倍増率ｋは２の累乗である。ｋ＝４の場合には、ローカル時間１１０は、Ａ０、２＊Ａ０、３＊Ａ０、（Ａ１＋３＊Ａ０）、（Ａ１＋４＊Ａ０）、（Ａ１＋５＊Ａ０）、（Ａ１＋６＊Ａ０）、（２＊Ａ１＋６＊Ａ０）、．．．、（３＊Ａ１＋１２＊Ａ０）、（Ａ２＋３＊Ａ１＋１２＊Ａ０）、（Ａ２＋３＊Ａ１＋１３＊Ａ０）として蓄積する（以下、同様）。それぞれのレート係数Ａ０、Ａ１、．．．、ＡＭは、０〜（２＾ｋ−１）の範囲を具備している。レート係数Ａ０、Ａ１、．．．、ＡＭと置換周期Ｎ０、Ｎ１、．．．、ＮＭは、ｋ／２倍したレート係数ＬＳＢを上回らない瞬間的な量子化誤差をローカル時間１１０内にもたらしている。ローカルクロック１１０の量子化誤差が、ｋ／２とレート係数ＬＳＢを乗算したものに近づくごとに、別の更に長い周期レート係数が呼び出される。
【００１５】
一実施例において、カウンタ１２は、長さがｌｏｇ２（ｋ＊Ｍ）ビットのバイナリカウンタである。
【００１６】
図２は、レート補正回路２０の一実施例を示している。レート補正回路２０は、マルチプレクサを実装しているＡＮＤゲートの組６０〜６２及びＯＲゲートの組６３〜６５と、このマルチプレクサ用のなんらかのイネーブルロジック５０を含んでいる。イネーブルロジック５０は、イネーブル信号７０〜７２の組（Ｅｎａｂｌｅ０〜ＥｎａｂｌｅＭ）を介してレート係数Ａ０、Ａ１、．．．、ＡＭをイネーブルするべく、ＡＮＤゲート６０〜６２の使用を可能にしている。イネーブルロジック５０は、時間カウント１８のそれぞれのステップにおいて、レート係数Ａ０、Ａ１、．．．、ＡＭの中の１つのもののみをイネーブルしている。ＯＲゲート６３〜６５が、イネーブルされたレート係数４０をアキュムレータ２２に対して提供している。
【００１７】
イネーブル信号７０〜７２は、時間カウント１８のビットを組み合わせることによって決定される。０番目のレート係数用のイネーブル信号７０（Ｅｎａｂｌｅ０）は、〜（〜ｘ０＆〜ｘ１＆〜ｘ２＆．．．＆〜ｘｋ−２＆ｘｋ−１）である。ｉ番目の正のレート係数用のイネーブル信号Ｅｎａｂｌｅｉは、（〜ｘ０＆〜ｘ１＆〜ｘ２＆．．．＆〜ｘｐ−２＆ｘｐ−１）＆〜（〜ｘｐ＆〜ｘｐ＋１＆〜ｘｐ＋２＆．．．＆〜ｘｐ＋ｋ−２＆ｘｐ＋ｋ−１）であり、この場合に、ｐ＝ｉ＊ｋである。この式において、ｘは、カウンタ１２のすべての段のビット値である。ｋ＝４であり、且つ、Ｍ＝３である実施例において、カウンタ１２は、４つのレート係数Ａ０、Ａ１、Ａ２、及びＡ３用のイネーブル信号７０〜７２を導出する１２段のバイナリカウンタである。この実施例におけるイネーブル信号７０〜７２は、次のとおりである。
【００１８】
Ｅｎａｂｌｅ０＝〜（〜ｘ０＆〜ｘ１＆〜ｘ２＆ｘ３）
Ｅｎａｂｌｅ１＝（〜ｘ０＆〜ｘ１＆〜ｘ２＆ｘ３）＆〜（〜ｘ４＆〜ｘ５＆〜ｘ６＆ｘ７）
Ｅｎａｂｌｅ２＝（〜ｘ０＆〜ｘ１＆〜ｘ２＆〜ｘ３＆〜ｘ４＆〜ｘ５＆〜ｘ６＆〜ｘ７）＆〜（〜ｘ８＆〜ｘ９＆〜ｘ１０＆ｘ１１）
Ｅｎａｂｌｅ３＝（〜ｘ０＆〜ｘ１＆〜ｘ２＆〜ｘ３＆〜ｘ４＆〜ｘ５＆〜ｘ６＆〜ｘ７＆〜ｘ８＆〜ｘ９＆〜ｘ１０＆ｘ１１）
【００１９】
レート補正回路は、相対的に大きなインデックのスレート係数を、徐々に減少する頻度によって選択する。前述の実施例において、レート係数Ａ０は、カウンタ１２の１６個のステップごとに、１５回にわたって使用される。レート係数Ａ１は、カウンタ１２の２５６（１６＊１６）個のステップごとに、１５回にわたって使用される。レート係数Ａ２は、カウンタ１２の４０９６（１６＊１６＊１６）個のステップごとに、１５回にわたって使用される。レート係数Ａ３は、カウンタ１２の４０９６個のステップごとに、１回だけ使用される。整数個のカウンタ段と、それぞれのレート係数とＭ＋１個のレート係数の合計の間にｋ個の段とを有する実施例において、それぞれのレート係数が適用される回数は、ｉ＜Ｍ及びｎｍ＝１において、ｎｉ＝（ｋ−１）＊２＾（ｋ＊Ｍ）／２＾（ｋ＊（ｉ＋１））である。
【００２０】
前述の例において、それぞれのレート係数が選択される回数は、次のとおりである。
【００２１】
ｎ０＝３８４０
ｎ１＝２４０
ｎ２＝１５
ｎ３＝１
【００２２】
ローカルクロック１０は、補正インターバルごとに１回の補正からなる従来技術による技法と比べて、ｋ：Ｍ乗の比率で量子化精度を改善している。レート係数Ａ０、Ａ１、．．．、ＡＭが相対的に頻繁に適用されているため、ローカルクロック１０の瞬間的な精度も相対的に高くなっている。
【００２３】
更なるレート係数を使用することにより、ｋの値（従って、最大量子化誤差）を低減することも可能であるが、これには、ハードウェアの増加が伴う。置換周期Ｎ０、Ｎ１、．．．、ＮＭが互いに均一な倍数になっていない場合には、量子化誤差は、なんらかのレート係数により、相対的に高頻度で、且つ、その他のレート係数により、相対的に低頻度で補正されることになる。
【００２４】
レート係数Ａ０、Ａ１、．．．、ＡＭは、最終カウントＦをもたらすように選択されている。最終カウントＦは、例えば、ＩＥＥＥ１５８８の時間同期化においてローカル時間１１０を補正するための時間オフセットから導出可能である。最も頻繁に使用されるレート係数を最初に選択し、次いで、その他のものを順番に選択する。レート係数Ａ０、Ａ１、．．．、ＡＭは、次のように決定される。
【００２５】
Ａ０＝ｆｌｏｏｒ（Ｆ／ｎ０）
Ａ１＝ｆｌｏｏｒ（（Ｆ−Ａ０＊ｎ０）／ｎ１）
Ａ２＝ｆｌｏｏｒ（（Ｆ−Ａ０＊ｎ０−Ａ１＊ｎ１）／ｎ２）
Ａｉ＝ｆｌｏｏｒ（（Ｆ−Ａ０＊ｎ１．．．−Ａｉ−１＊ｎｉ−１）／ｎｉ）
【００２６】
前述の例において、最終カウントＦが１６，７９３に等しい場合には、レート係数Ａ０、Ａ１、．．．、ＡＭは、次のとおりである。
【００２７】
Ａ０＝４
Ａ１＝５
Ａ２＝１５
Ａ３＝８
【００２８】
ローカルクロック１０内において別のカウント方式を使用することも可能であるが、これには、相対的に複雑なレート係数の選択ロジックの犠牲が伴っている。レート係数の使用頻度がレート係数の数に伴って幾何学的に減少しないカウント方式の場合には、相対的に多くの誤差を許容することにより、レート係数を次善の方式で利用することになる。
【００２９】
本発明の以上の詳細な説明は、例示を目的として提供したものであり、本発明のすべてを網羅することや、開示した実施例そのままに本発明を限定することを意図したものではない。従って、本発明の範囲は、添付の請求項に定義されているとおりである。
【００３０】
最後に本発明の代表的な実施態様を述べる。
（実施態様１）
一連の徐々に長くなっている置換周期を使用して複数のレート係数（１００）の中から選択されたレート係数のシーケンスを蓄積することによって、ローカル時間（１１０）を補正する回路。
【００３１】
（実施態様２）
前記置換周期及び前記レート係数は、前記ローカル時間（１１０）内における量子化誤差の蓄積を回避するべく選択される実施態様１記載の回路。
【００３２】
（実施態様３）
前記置換周期及び前記レート係数は、前記ローカル時間（１１０）内における大きな誤差を回避するべく選択される実施態様１記載の回路。
【００３３】
（実施態様４）
前記置換周期は、互いの倍数になっている実施態様１から３のいずれかに記載の回路。
【００３４】
（実施態様５）
前記置換周期は、２の整数乗の比率で増大する実施態様４記載の回路。
【００３５】
（実施態様６）
複数のレート係数（１１０）の中からレート係数のシーケンスを選択する段階と、
徐々に長くなっている置換周期内において前記レート係数のシーケンスをそれぞれ蓄積する段階と、
を有するローカル時間（１１０）を補正する方法。
【００３６】
（実施態様７）
前記置換周期及び前記レート係数は、前記ローカル時間（１１０）内における量子化誤差の蓄積を回避するべく選択されている実施態様６記載の方法。
【００３７】
（実施態様８）
レート係数のシーケンスを選択する段階は、前記ローカル時間（１１０）内における大きな誤差を回避するべく、レート係数のシーケンス及び前記置換周期を選択する段階を有する実施態様６記載の方法。
【００３８】
（実施態様９）
前記レート係数のシーケンスを蓄積する段階は、互いの倍数になっている置換周期の組内において前記レート係数のシーケンスを蓄積する段階を有する実施態様６から８のいずれかに記載の方法。
【００３９】
（実施態様１０）
互いの倍数になっている置換周期の組内において前記レート係数のシーケンスを蓄積する段階は、２の整数乗の比率で増大する置換周期の組内において前記レート係数のシーケンスを蓄積する段階を有する実施態様９記載の方法。
【図面の簡単な説明】
【００４０】
【図１】本開示内容によるローカルクロックを示す図である。
【図２】本開示内容によるレート補正回路の一実施例を示す図である。
【符号の説明】
【００４１】
１００  レート係数
１１０  ローカル時間
【図１】
2007208969.tif 000004
【図２】
2007208969.tif 000005