JP2000517075A - コンピュータシステムにおいて正確な時間を保持する方法 - Google Patents

コンピュータシステムにおいて正確な時間を保持する方法

Info

Publication number
JP2000517075A
JP2000517075A JP10508230A JP50823098A JP2000517075A JP 2000517075 A JP2000517075 A JP 2000517075A JP 10508230 A JP10508230 A JP 10508230A JP 50823098 A JP50823098 A JP 50823098A JP 2000517075 A JP2000517075 A JP 2000517075A
Authority
JP
Japan
Prior art keywords
value
time
external clock
processor
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP10508230A
Other languages
English (en)
Other versions
JP2000517075A5 (ja
Inventor
ロバート エル ジャーディーン
ホッセイン モイーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JP2000517075A publication Critical patent/JP2000517075A/ja
Publication of JP2000517075A5 publication Critical patent/JP2000517075A5/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G04HOROLOGY
    • G04RRADIO-CONTROLLED TIME-PIECES
    • G04R40/00Correcting the clock frequency
    • G04R40/06Correcting the clock frequency by computing the time value implied by the radio signal

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Electric Clocks (AREA)

Abstract

(57)【要約】 計算機システムは、時間の増分を測定及び累算すべくフリーランニングカウンタを用いることによって時間/日付値をデベロップする。時間の増分は、によって、フリーランニングカウンタの分解能から、変換値によって除算することにより時間及び日付値に用いられるものに変換されかつ時間/日付値を更新するために用いられる。時間/日付の正確度は、フリーランニングカウンタの速度をより正確な外部クロックの速度と周期的に比較することによって監視される。これら二つの速度の比は、変換変数を調整するために用いられる。変換変数は、(1)時間/日付値をデベロップするために用いられる時間の増分の変化率と(2)外部クロックとの間のあらゆる差を反映する。従って、ここでのその使用は、それが外部クロックをより緊密に追尾するように時間/日付値の変化率を減らす(減速する)かまたは増す(加速する)べく動作する。

Description

【発明の詳細な説明】 コンピュータシステムにおいて正確な時間を保持する方法発明の分野 本発明は、一般に、データ処理システムにおける計時に関し、特に、いず れかの内部クロック値を破壊的に変更するか或いはリセットすることなく外部ク ロックに処理システムによって保守されるクロック値を同期すべく外部クロック システムを採用する計時の方法に関する。発明の背景 全てではないにしても、ほとんどのコンピュータシステムは、正確な時間 及び(暦の)日付値を生成するためにある形の計時ファンクションを採用する。 そのような時間/日付値は、例えば、事象の発生を時刻表示(タイムスタンプ) し、事象間の間隔持続時間を測定し、作成又は訂正の日付及び時間をファイルに “押す”ため等に一般に用いられる。あるミッションクリティカルな、リアルタ イムコンピュータシステムは、計時ファンクションのために用いる必要なクロッ ク値を生成すべく、専用の、高精度な(多くの場合、高価な)水晶発振器を利用 するが、汎用計算機及びデータ処理システムは、より多くの場合、計時実施に対 してシステムのマスタ水晶発振器に依存する。 ある計算機システムは、特別に設計された、システムのマスタ発振器によ って生成またはシステムのマスタ発振器から導き出される周期信号を用いて、そ れから日付/時間値を生成する、専用計時回路を有しうる。しかしながら、その ような専用計時回路は、製造経費並びに回路コスト(例えば、他の回路素子によ って用いることができる空間を占有すること)を増大する傾向がある。 現在の計算機及びデータ処理システム設計の多くは、オフザシェルフ高性 能マイクロプロセッサを採用している。幸いにも、多くのそのような高性能マイ クロプロセッサは、タスク切替えを起動するか、または他の周期ファンクション をトリガすべく、周期割込み供給するための内部の、フリーランニング・カウ ンタを含む。(Silicon GraphicsのMIPS Computer DivisionからのマイクロプロセッサのR4000/4400シリーズ は、そのようなマイクロプロセッサの一例である。)このフリーランニング・カ ウンタは、ソフトウェアの2〜3のライン(例えば、オペレーティングシステム ・コード)だけで実施される計時ファンクションの基礎を形成するためにも用い られうる(そして多くの場合用いられる)。システムのマスタクロック信号、ま たはマスタクロック信号の微分によって一般に駆動される、カウンタのコンテン ツは、二つの異なる瞬間に読み取られ、時間の経過を表わす時間差を生成する。 これらの時間差は、変数として、例えばメモリに、累算されかつ時間及び日付値 を生成するための用いることができる。例えば、カウンタの早期の読み取り値が COUNTLastであり、現在の読み取りが値COUNTを生成するならば、代入文: CLKBASE:= CLKBASE+(COUNT−COUNTLast)/K (1) によって、CLKBASEと呼ばれる差の累算が生成されかつ周期的に更新され うる。ここで、Kは、カウンタの分解能(リゾルーション)をCLOCKに対し て望ましいものに変換する変換定数である(一般に、1マイクロ秒)。多くの場 合カウンタが必要又は所望なものよりも小さい分解能(増分の周期)を有する利 用可能な高周波信号で増分されるので、変換を必要とする。そこで、例えば、カ ウンタが75Mhzクロック信号で増分されるが、(0.0133マイクロ秒周 期又は分解能で)計時は、1マイクロ秒分解能を必要とするならば、上記代入文 1で用いられる変換定数Kは、75である。タイムスタンプ値は、例えば、地方 時間(現地時間)及び暦の日付を生成すべくオフセットをCLKBASEの現在 の値に追加することによって生成されうる。オフセットは、計算機システムを最 初に稼動しかつ回線に繋いだ時間及び日付でありうるか、またはそれは、ある他 の値でありうる。 CLKBASE値は、(例えば、処理システム上で実行されているクライ アント処理によって)タイムスタンプ値が要求される度に更新されうる。最小で は、CLKBASE値は、カウンタがその状態の最大数を過ぎる前に少なくとも 一度だけ更新される必要がある。そこで、32ビットカウンタに対して(多く の場合そのようなカウンタの大きさ)、そのカウンタの値は、カウンタのオーバ ーフローによる時間の損失を回避するためにカウンタによって達成された223状 態毎に少なくとも一度読み取らなければならない。 時間/日付計時ファンクションを保守するこの技術は、よく作動するが、 水晶発振器を用いた場合でも、正確度の欠如からある程度の被害を蒙る。例えば 、(高性能システムにおいて一般的な)150Mhzで動作しているマスタ水晶 発振器は、24時間周期に対して6.48秒の最悪ドリフト速度に翻訳(トランス テート)する(+/−)75ppmの特定された正確度を有しうる。そのような 高ドリフト速度は、外部の世界との同期(シンクロナイゼーション)を必要とし うるか、または広域ネットワーク(WAN)で動作しうるアプリケーションに対 して許容されない。 計時の正確度を保守するための技術は、上記した計時記述におけるCLK BASEのような計時値を周期的にリセットまたは変更すべく外部クロック機構 を用いることを含む。しかしながら、これは、負の時間をもたらす、即ち、二つ の継続するタイムスタンプが時間が戻って行くようことを表わすような矛盾を生 成する。 分散多重処理システムは、システムのプロセッサのあるもののマスタ発振 器が他のものよりも速く実行すると同時に、それらの累算平均周波数は、名目に 対して許容できる程度に近いという位置を取ることによって多くの場合計時の正 確度にアプローチする。従って、計時値は、一つの(“基準”)プロセッサによ ってシステムのプロセッサから集められる。基準プロセッサは、平均を決定し、 かつ新たに決定された平均を、計時値をリセット又は変更するために平均を用い る他のプロセッサに分配する。含まれるオーバヘッドの他に、分配された値を用 いてローカル計時値をリセット又は変更することは、計時における不連続性をも たらしうるか、更に悪い場合には、負の時間をもたらしうる。発明の目的及び概要 従って、ドリフトを最小化し、かつ外界値に同期される正確なプロセッサ クロック値を供給する技術が必要とされている。 本発明は、処理システムと、計時ファンクションを実施すべくフリーラ ンニング又は類似するカウンタを採用するそれらの処理システムで用いる正確な 計時値を保持する、簡単かつ、有効な、方法とを提供する。本発明は、時間自体 を変更するよりも時間が保持される速度に対して周期的調整を行うことを目的と する。速度調整は、外部クロックの計時速度に対するプロセッサの計時速度の周 期的な比較によって決定される。 おおまかに言えば、本発明は、上記の代入文1の変換定数Kを変数Mで置 き換えることによってプロセッサの計時の調整を実行する。始めに、Mは、関係 式f*RESによってデベロップされる。ここで、fは、計時に用いるフリーラ ンニングカウンタを増分する信号の周波数であり、RESは、望ましい計時分解 能である。プロセッサの計時によって認識可能であるよりもよい正確度を有して いる、外部クロックが供給される。外部クロックは、フリーランニングカウンタ を用いて、プロセッサの計時動作によって測定された時間の経過と同じ時間の経 過に比較される時間の経過を生成すべく周期的にサンプルされる。プロセッサの 計時が外部クロックの計時よりも速い場合には、変数Mは、比例して増分される 。次いで、変数Mが(上記代入分1の変換定数Kに対する置換として)用いられ る場合には、計時速度は、それに応じて遅くされる。逆に、比較が、プロセッサ の計時よりも外部クロック速度が速いことを結果として見出したならば、変換変 数Mは、次の比較まで−プロセッサの計時速度における増大を導入すべく比例的 に減少される。 本発明の好ましい実施例では、値CLKBASEは、メモリに記憶され、 かつある所定の初期化値からの時間を累算するために用いられるか、またはそれ を外部クロックの値に予め設定することによる。同時に、プロセッサのフリーラ ンニングカウンタは、サンプルされかつ変数COUNTlastを保管する。その後 、変数CLKBASEが周期的更新の対象である場合、以下の関係式によりCL KBASEの新しい値が生成される: CLKBASE:= CLKBASE+(COUNT−COUNTLast)/M (2) 代入記号(:=)の右のCLKBASEの値は、関係式(2)に使用するために メモリから検索される;それは、その関係式により最新に更新されたときのCL KBASEの値である。Mは、フリーランニングカウンタの分解能からCLKB ASEに対して所望のものに変換するために用いる変数である。更に、外部クロ ックの更なるサンプルの一つがなされたならば、変換変数Mは、外部クロックの それをより緊密に追尾すべくCLKBASEの変化率を調整するために動作する 、CLKBASEと外部クロックの速度変化間のあらゆる際立った差を反映する 。 変換変数Mは、時間における二つの瞬間に、外部クロックの値とCLKB ASE値を比較することによってデベロップされる。即ち、時間における最初の 瞬間に、外部クロックの値とCLKBASEの値がデベロップされかつ保管され る。少し後で、時間における後続の瞬間に二つの値が再びサンプルされる。外部 クロックとCLKBASEの前の値は、後の値から減算され、かつそれらが変化 率を行うことを反映している、二つの差は、プロセッサの計時が外部クロックよ りも速いか遅いことを決定すべく比較される。次いで、変換変数Mは、二つの差 の比によってMの先の値を積算することによって変更され、それを外部クロック 値でラインに加えるためにCLKBASEの比例調整を示している。 外部クロック値を読み取ることにおける固有の遅延によりCLKBASE の初期値が外部クロックから小さい初期オフセットを有しうるということを認識 して、本発明の更なる実施例は、第2の方法でMの値を故意に変更することによ ってこのオフセットを除去すべく動作する。この変更は、外部クロック値に関す るCLKBASE値のドリフトを表わす値によりMの二つの計算間の時間におけ る差を変更することによって有効である。 更に、外部クロック値を読み取ることにおける固有の遅延により、更新は 、瞬時ではなく、かつ水晶発振器の周波数における不安定性を考慮しなければな らない。従って、変換変数、Mに対する計算は、ドリフト値を変更する因子(フ ァクタ)を含む。因子は、時間に関して経験的にデベロップしうるけれども、1 よりも大きいあらゆる正の、非負性の整数を用いることができる。本発明によれ ば、用いた因子は、整数の2である。 多数の効果が本発明によって達成される。最初は、本発明によって保持さ れる計時が処理システムのマスタ発振器の正確度にもはや依存せず、より正確で ありうる外部機構に依存するということである。 第2の効果は、正確度が時間値を変更することによって保持されるのでは なく、時間値が生成される速度を変更することによって保持されるということで ある。これは、時間値において不連続性が現れることを防ぐ。 本発明のこれら及び他の効果及び特徴は、添付した図面を参照して、以下 の詳細な説明を読むことにより当業者に対して明らかになるであろう。図面の簡単な説明 図1は、本発明の計時方法を実施している処理システムの概略図である; 図2は、本発明の計時方法で用いられる初期値を確立すべく外部クロック 値を採用している初期化手順を示している、フロー図である; 図3は、CLKBASE変数を更新するために用いられる周期的手順のフ ロー図である; 図4は、タイム−スタンプ値を生成するために用いられる方法を示してい るフロー図である; 図5は、変換変数、Mを更新するために用いられる、本発明による、方法 を示しているフロー図である。実施例 ここで、図1を参照すると、簡略化された形で示されるのは、参照番号10 で一般に示され、本発明を実施しかつ使用すべく構成された、処理システムであ る。図1が示すように、処理システム10は、それぞれアドレス及びデータバス 回線16、18によってメモリシステム14に接続されたマイクロプロセッサ1 2の形の処理構成要素を含む。水晶発振器20は、同期動作のためにマイクロプ ロセッサ12に供給される周期的クロック信号Fを生成する。クロック信号F、 またはその微分は、32-ビット、フリーランニングカウンタ22に供給され、 カウンタ22を増分する。 カウンタ22は、計時ファンクションのためにマイクロプロセッサ12によ って周期的にサンプルされかつ用いられる、カウンタ値、COUNTを生成する 。 計時は、(メモリ位置15aの)メモリ14に記憶される値(CLKBAS E)を周期的に更新するか、またはクライアント処理によって要求された場合に 現地時間(ローカルタイム)及び日付を表わす(CLKBASEを含む)“タイ ム−スタンプ”(TS)値を生成すべくカウンタ22から得られたCOUNT値 を用いることを含む。通常、ローカルタイム/日付値だけが望ましいが、TS値 は、どのような時間及び日付が望ましいかを調整すべくオフセット(LCTOF FSET)を用いてデベロップされるので、変更するかまたは別のオフセットを 用いることは、(グリニッジ平均時(GMT)のような)他の時間/日付TS値 を生成する。 メモリ14に保持されるCLKBASEの値は、フリーランニングカウンタ 22の2Nカウント毎に少なくとも一度更新されるべきである。ここで、Nは、 カウンタの大きさである(ここでは、32ビット)。例えば、フリーランニング カウンタ22が75Mhz速度で増分(カウント)され、かつ(ここでそうであ るように)32ビットワイドのカウンダであるならば、CLKBASEの値は、 おおよそ57.27秒毎(232/(7.5×106))に少なくとも一度更新さ れなければならない。 図1を更に続けると、他のアクセス手段を用いることができるということは 、当業者者にとって明らかであろうが、マイクロプロセッサ12は、アドレス及 びデータ回線16、18を介して外部クロック30へのアクセスを備えている。 外部クロックは、周期的にサンプルされ、かつ本発明により、変換変数Mの値を 調整すべくマイクロプロセッサ12によって用いられる、クロック値(CLOC Kext)を生成する。値CLOCKextは、ローカルタイムまたはあらゆる他のタ イムゾーン−―例えば、GMTでありうる。理解できるように、CLOCKext の値の特定の形は、本発明に無関係である。それがどのような形を取ろうとも、 TS値が生成される場合には適当なオフセット値によって説明することができる 。 図1は、説明されるその計時動作においてマイクロプロセツサ12によって 用いられる種々の値を記憶するためのメモリ位置15を含んでいるようなメモリ 14を示す。そこで、メモリ位置15aに記憶されるのは、CLKBASEの最 新値である;メモリ位置15bは、外部クロック30からの最新にサンプルされ た値CLOCKext、LASText、を保持する;メモリ位置15dは、ローカル タイムにおけるTS時間/日付値を供給するために用いるオフセット、LCTO FFSETを維持する;メモリ15eに記憶された値COUNTlastは、CLK BASEが最新に更新さ れたときに得たカウンタ22の値である。メモリ位置15fは、変換変数、Mを 保持する。そして、メモリ位置15gは、最新のタイムスタンプ値(TSlast) を保持する。 計時値のあるもの、特にCLKBASE、LCTOFFSET、及びMを初 期化するための手順は、図2に示されている。参照番号40で一般的に示されて いる手順は、システム10が、最初に接続されるか、または修理のために以前に 外されてオンラインに戻されるときにだけ用いられる。手順40は、ステップ4 2において、ゼロに設定されているCLKBASE値で開始する。次に、ステッ プ43では、外部クロック30の値、CLOCKextが読み取られ、かつ変数L ASTextに割当てられる。理解できるように、LASTextは、Mの最新の更新 以来、外部クロック30によって保持される時間により、どのくらいの時間が経 過したかを決定すべく変換変数Mの更新において用いられる。 ステップ44では、ローカルタイム(または望ましい他の日付/時間)に変 換するために用いられる、オフセット値、LCTOFFSETは、1975年1 月1日の真夜中(12:00am)として画定される、任意の時間基準(TB) 値をCLOCKext値から減算することによって生成される。ステップ45にお いて、ステップ44によっていま初期化された、値LCTOFFSETは、以下 に説明するように呼出されたときの将来のタイムスタンプ値のデベロプメントに 対する基礎を形成するタイムスタンプ値TSlastに割当てられる。 ステップ47は、フリーランニングカウンタ22のそのときの現在値(CO UNT)を読み取りかつその現在値をCOUNTlastに割当てることによってメ モリ14のCOUNTlastを初期化する。 そして、ステップ48において、変換変数Mの初期値を計算する。カウンタ 22を増分するために用いる周波数F、及び望ましい計時の分解能(RES)( 即ち、マイクロプロセッサ12によって生成されるタイムスタンプの所望の分解 能-例えば、1マイクロ秒)が分かっていることにより、変換変数Mの初期値は 、これら二つの値の積算によって確立される。そこで、例えば、周波数Fが15 0Mhzであり、所望の分解能が1マイクロ秒であれば、Mは、150に最初に 設定される。 これらの初期化された値、CLKBASE、LASText、LCTOFFS ET、COUNTlast、M、及びTSlastは、それらの対応するメモリ位置、1 5a、15b、15d、15e、15f、及び15gに記憶される。 CLKBASEは、図3に示した手順54−まずこれらの初期値を用い、そ の後、値の更新されたバージョンを用いることによって更新される。更新手順5 4は、カウンタ22の現在値(COUNT)が得られかつTEMPに割当てられ るようなステップ55で開始する。そして、ステップ56において、CLKBA SEは、最新の更新以後にカウンタ22によって測定されたような、時間の経過 を表わす量をそれに加算することによって、またはCLKBASEの初期化によ って更新される。そこで、ステップ56では、マイクロプロセッサ12は、メモ リ14から検索されるCOUNTlast値をフリーランニングカウンタ22の現在 値(いまTEMPによって保持されている)から減算する。結果として得られた 差は、CLKBASEが最新に更新された以後の経過した時間を表わすが、フリ ーランニングカウンタ22の分解能においてである。変換変数Mで除算すること は、結果として得られた差を、CLKBASE値に加算される所望の分解能の時 間(例えば、マイクロ秒)に変換する。その合計、CLKBASEの現在値は、 メモリ14に戻される。そこで、いま理解できるように、CLKBASE値は、 初期化以後の、マイクロ秒による、時間の累算である。 手順54は、CLKBASEの次の更新の使用のためにCOUNTlastへの TEMPの割当てによりステップ58において終結する。そこで、ステップ58 では、ステップ56で得たフリーランニングカウンタ22の値(即ち、COUN T)は、COUNTlastとしてメモリ位置15eに記憶される。 CLKBASEの更新は、カウンタ22にって達成できる最大値を越えるこ とから二つの連続するCOUNT値間の差を保持すべく十分な周波数で生じなけ ればならない。カウンタ22が32-ビットカウンタなので、0から(そしてそ れを含む)232−1までの232の異なる状態を達成することができる。COUN Tのあらゆる二つの連続する値間の差が232を越える前にCLKBASEが更新 される限り、そして符号なし演算を用いることにより、オーバーフローの問題は 、存在しないであろう。 タイムスタンプ値(TS)が要求される場合、マイクロプロセッサ12は、 参照番号50によって識別されかつ図4に示されるタイムスタンプ発生手順を実 行する。ステップ52は、まずメモリ14から値CLKBASE、LCTOFF SET、COUNTlast、及びMを検索し、そしてCOUNT値に対してカウン タ22をアクセスすることによって要求されたTS値を生成するマイクロプロセ ッサ12が分かる。COUNTlastとして保管された(そしていま検索された) カウンタ22の先のアクセスは、カウンタ22の分解能における時間値を供給す べくCOUNTから減算される。そこで、その時間値は、変換変数Mによって除 算される。結果は、ローカルタイム及び日付を表わす値、TSを生成すべく値C LKBASE及びLCTOFFSETで加算される。 ここで図5を参照すると、手順60は、外部クロック30にマイクロプロセ ッサ12によって生成された生成タイムスタンプ値を同期するために変換変数M を調整するためにとられるステップを示す。手順60は、CLKBASEによっ て累算された時間量を同じ周期にわたり外部クロック30によって累算されたも のと比較することに基づく。従って、その比較は、外部クロック30の変化率に 対するCLKBASE値の変化率を表わす比と変換変数Mの調整をもたらす。例 えば、CLKBASEの変化率が外部クロック30のものを越えることが見出さ れたならば、手順60は、先に用いたものよりも大きいMの値を生成する。手順 54及び50(図3及び図4)によってデベロップされたCLKBASE及びT Sの後続の値は、外部クロックのものに向かう下方の変化率を示す。 以下に更に説明するように、CLKBASE値(そして、従ってTS)は、 外部クロック30の実際の値に対するオフセットをデベロップすることができる 。手順60によってデベロップされた比が実際の時間値を比較せず時間間隔だけ を比較することであるならば、CLKBASEのオフセットは、影響を受けない ままにされる。そこで、Mは、CLKBASEからあらゆるオフセットを実質的 に取り除くべくCLKBASE及び外部クロックの実際の値を比較する“ドリフ ト”因子(D)によって調整される。 ここで図5を参照すると、手順60は、ステップ62において、外部クロッ ク30の現在値を得て、かつその値をTEMP1に割当てるマイクロプロセッサ 12により開始する。 ステップ64では、TEMP1の値は、LASTextとしてメモリ15bに 記憶された、外部クロック30の前にサンプルされ値と比較される。外部クロッ ク30の現在値が前にサンプルされた値よりも大きくないならば、エラーが生じ (例えば、外部クロック30が誤動作する)、従って、ルーチン60が66で出 される。 しかしながら、外部クロック30の現在値がその最新にサンプルした値より も大きいならば、ルーチン60は、ステップ68に進み現在のタイムスタンプ( TS)が(図4の手順50を用いて)生成されかつTEMP2に割り当てられる 。 次に、ステップ70では、値TSlast(Mの最新の更新のときに生成された タイムスタンプ(TS))は、TEMP2から減算され、マイクロプロセッサ1 2の計時ファンクションにより時間枠Tを表わす値を生成する。そして、結果は 、Nに割当てられる。同様に、ステップ72では、値Nextは、TEMP1によ って表わされる、外部クロック30の現在値と、Mが最新に更新されたときに得 られた外部クロック30の前の値、LASTextとの間の差に割当てられる。ス テップ70のNのように、ステップ72のNextは、外部クロック30の値によ る時間枠Tの計量(測定)である。(外部クロック30の分解能は、CLKBA SEのものと同じでありうるかまたは同じではない。同じでないならば、使用さ れる前に、外部クロックの値は、CLKBASEの分解能に変換される必要があ る。) ステップ74によってデベロップされた値は、(1)プロセッサ12の内部 クリック値(即ち、TS)と外部クロックのものとの間の初期オフセット、及び (2)外部クロック値を得ることにおいて生じうる不規則性の結果としてオーバ タイムを生じうる累算されたエラーの二つの修正を行うべく動作する。前者は、 ステップ74でデベロップされた修正因子を除き、外部クロックに対するプロセ ッサの(TSで表わされる)内部クロックの周期的比較は、これらのクロックの 実際の値の比較ではなく、時間枠の比較であるという事実からもたらされる。そ こで、初期的に、他方に対して一方においてオフセットがデベロップされるなら ば、そのオフセットは、それがプロセッサ内部及び外部クロックの実際の値の比 較ではなく、時間枠を比較することによって調整される内部クロックの速度なの でそのまま残る。二番目の修正は、外部クロック値を得ることにおける不規則性 が存在しうるという事実によって必要とされる。例えば、そのような遅延は、そ うであるべき値よりも多少大きい外部クロック値をもたらしたと想定する。これ は、下方への変換変数Mにおける調整を結果としてもたらし、(手順60による )Mの次の更新までCLKBASE値を上方にドリフトさせる。次の更新は、( 内部クロックが外部クロックよりも速く実行されるときに現れる)エラーに注目 し、かつCLKBASE値が変化する速度を下げるべくMを大きくすることによ って補正する。しかしながら、上述したように、実際の値ではなく、内部クロッ クと外部クロックの変化率だけが比較されるので、決して修正されないCLKB ASEに対する損害がある。 しかしながら、更新のとき(そして最新の更新以後)における外部クロック 30のものに対する内部クロック(即ち、CLKBASE値)の間の“ドリフト ”を表わすステップ74において値をデベロップすることによってこれらのオフ セット及びエラー累算を取り除くことは、可能である。そこで、このドリフト値 Dは、手順60においてそれまでになされた割当てにより、 D=(TEMP1−TEMP2)/Q によって定義される。従って、ステップ74は、一時的な値、Dを生成し、かつ その値にQで除算した(外部クロック30の現在値を表わしている)TEMP1 と(タイムベースの現在値、TSを表わしている)TEMP2との間の差を割当 てる。ここでQは、2である。(Qに対する2の値の選択は、ある意味で任意で ある。より高い値は、エラーをさらにゆっくり修正するが、発振を最小化する; より低い値は、エラーをさらにゆっくり修正するが、更なる発振を伴う。)上述 したように、ドリフト値Dは、種々の固有の遅延を考慮するために用いられると いうことを思い出す;Dにおけるあらゆる潜在的発振は、値Qによりそれを除算 することによって減衰される。Qの値は、経験的にデベロップすることができる と同時に、1よりも大きいあらゆる値を用いることができる。そこで、整数2が 選択される。クロックの実際の値は、差を形成するための用いられるということ も注目する:TEMP1(ステップ62における外部クロック30の値に割当て られる)及びTEMP2(ステップ68におけるTSにより内部クロックにおけ る現在値に割当てられる)。差は、二つのクロックの間のあらゆるオフセット又 は累算されたエラーである。 ステップ76は、ステップ70からの値Nによって、(この手順60を用い ている、最新の更新の結果、または初期化された値)変換変数の前の値を乗算し 、ドリフト値Dによって調整しかつNextによって除算することにより、変換変 数、M、の値を調整する。この更新された変換変数M値は、次いでメモリ14に 戻されかつメモリ位置15fに記憶される。更新された変換変数は、手順50( 図4)毎のタイムスタンプ値(TS)の全ての後の計算に対して、かつ手順54 (図3)毎の、CLKBASEの更新に対して用いられる。 更新ルーチン60は、あるハウスキーピングステップで終結する:ステップ 80は、外部クロック30の現在サンプルされた値、TEMP1(即ち、CLO CKext)をLASTextに割当て、かつそれをメモリ14のメモリ位置15bに 記憶する。Mの次の更新は、ステップ64及び72におけるLASTlastのこの 値を用いる。ステップ82は、一次的な値TEMP2によって表わされ、TSla st に割当てられかつ変換変数Mを調整すべく次の手順60に用いるようにメモリ 14に記憶された、TSの現在値を見る。 変換変数更新ルーチン60は、T秒毎に実行されるのが好ましい。ここで、 Tは、外部クロック30の分解能が、マイクロプロセッサ12によって生成され るTSの値またはCLKBASEの値の不正確度にあまり寄与しないように十分 に大きい。そこで、例えば、外部クロック30が1秒の分解能を有するならば、 Tは、55時間ぐらいであるのが好ましい。 纏めると、時間及び日付タイムスタンプ値の正確度を保持する方法、及びそ の方法を実施する計算機システムを開示する。しかしながら、本発明は、他の実 施に適合すべく変更することができるということは、当業者に明らかであろう。 例えば、夏時間変更又は他の変更を考慮に入れるべく時間及び日付を変更するよ うなタイムスタンプ値のオペレータ調整に対する必要性が存在しうる。このイン スタンスでは、メモリ14は、オフセット値LCTOFFSETと同じ方法で時 間/日付値を生成するために用いられる代入文52に含まれうる、別の変数、A DJUSTMENT.TIMEを記憶することができる。オペレータによって導 入されるあらゆる調整(即ち、時間の加算又は減算)は、場合によっては、メモ リ14に記憶される変数ADJUSTMENTS.TIMEに加算またはそれか ら減算されうる。タイムスタンプ(TS)が要求される場合、ADJUSTME NTS.TIMEは、結果がオペラータによって供給される時間及び日付に対す るいずれか及び全ての調整を反映するように手順50(図4)のステップ52に おいてCLKBASEに加算されうる。 更に、正確度基準として何が用いられても何の必要性もないということがい ま明らかであろう、即ち、ここでは外部クロック30は、それが、その正確度が 本発明によって改良されるクロックよりも正確であるべき(または正確であるこ とを期待する)こと以外には何の必要性もない。例えば、精度は、比較的重要で はなく、かつ改良されたクロックのものに匹敵する必要もない。本発明の精度に よってなされる唯一の役割は、基準をサンプルすることができる速度に関する。 当業者は、より少ない精度の基準よりも大きい周波数でより正確な基準をサンプ ルすることができ、変換因子、Mをより頻繁に調整させるということを認識する 。(ここで用いられる“精度”とは、時間において二つの連続する事象がどのよ うに明確にクロックまたは基準によってマークすることができるかということを 言う。これは、また、“分解能(リゾルーション)”とも言われる。 更に、基準として用いる特定の装置は、改良された計時のものよりも優れた 正確度を供給することを期待するだけが必要である。例えば、“外部クロック” 又は基準は、コンピュータのネットワークにおいて、ネットワークにおける多数 又は全てのコンピュータの平均値から導出された値の形をとりうる。別の例は、 あるものがたのものよりも正確な“クロック”を有するような、多数の異なる型 のコンピュータでネットワークが構成されるということである。この場合には、 正確度が小さいクロックを有するそれらのコンピュータは、基準又は外部クロッ クとしてネットワークにおける他のコンピュータのより正確なクロックを用いる ことができる。

Claims (1)

  1. 【特許請求の範囲】 1.外部クロック値によりプロセッサクロック値の正確度を維持する方法であっ て: 時間枠にわたる外部クロック値の変化に対する時間にわたるプロセッサクロ ック値の変化の比に比例する速度変数を生成し; 現在のプロセッサクロック値及び最新のプロセッサクロック値の間の第1の 差と現在の外部クロック値及び速度変数によって乗算された最新の外部クロッ ク値の間の第2の差との比から更新された速度変数をデベロップし; 最新の外部クロック値として現在の外部クロック値を保管し; 最新のプロセッサクロック値として現在のプロセッサクロック値を保管し; 速度変数として更新された速度変数を保管し;そして 前記速度変数によって変更されたプロセッサクロック値を最新に増分した以 後の時間の経過に比例する時間値で前記プロセッサクロック値を周期的に増分 する段階を具備することを特徴とする方法。 2.前記プロセッサクロック値は、前記速度変数が更新されるよりも大きい周波 数で増分されることを特徴とする請求の範囲第1項に記載の方法。 3.前記生成する段階は、所定の速度を所望のプロセッサクロック分解能で乗算 することによって最初に生成された前記速度変数を含むことを特徴とする請求 の範囲第1項に記載の方法。 4.日付/時間値をそれから生成するためにプロセッサにおける時間値の正確度 を維持する方法であって: 基準クロック値を供給し; 時間枠にわたり時間値の変化及び前記基準クロック値の変化から比を形成す べく前記基準クロック値を周期的に使用し; 前記比によって乗算された時間の経過を表わす計数を前記時間値に加算する ことによって更新された時間値を生成すべく前記時間値を増分し;かつ 前記時間値として前記更新された時間値を保管する段階を具備することを特 徴とする方法。 5.前記プロセッサは、計数値を維持するためのカウンタを含み、前記プロセッ サは、時間の周期的瞬間において前記カウンタから前記計数値を取得すべく動 作することを特徴とする請求の範囲第4項に記載の方法。
JP10508230A 1996-08-08 1997-08-07 コンピュータシステムにおいて正確な時間を保持する方法 Ceased JP2000517075A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/694,073 1996-08-08
US08/694,073 US5826066A (en) 1996-08-08 1996-08-08 Method for keeping accurate time in a computer system
PCT/US1997/013909 WO1998006021A1 (en) 1996-08-08 1997-08-07 Method for keeping accurate time in a computer system

Publications (2)

Publication Number Publication Date
JP2000517075A true JP2000517075A (ja) 2000-12-19
JP2000517075A5 JP2000517075A5 (ja) 2005-04-07

Family

ID=24787297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10508230A Ceased JP2000517075A (ja) 1996-08-08 1997-08-07 コンピュータシステムにおいて正確な時間を保持する方法

Country Status (5)

Country Link
US (1) US5826066A (ja)
EP (1) EP0976018A1 (ja)
JP (1) JP2000517075A (ja)
CA (1) CA2263402A1 (ja)
WO (1) WO1998006021A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175645A (ja) * 2010-02-24 2011-09-08 Fujitsu Semiconductor Ltd 較正方法及び較正装置
US20210153156A1 (en) * 2014-03-24 2021-05-20 Imagination Technologies Limited High definition timing synchronisation function

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958060A (en) * 1998-01-02 1999-09-28 General Electric Company Method and apparatus for clock control and synchronization
US6125162A (en) * 1998-08-20 2000-09-26 Pitney Bowes Inc. Postage meter having non-Gregorian calendar capability
US20020026321A1 (en) * 1999-02-26 2002-02-28 Sadeg M. Faris Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution
US6728880B1 (en) * 1999-09-17 2004-04-27 Adobe Systems Incorporated Secure time on computers with insecure clocks
AU2001261711A1 (en) * 2000-05-20 2001-12-03 Equipe Communications Corporation Time synchronization within a distributed processing system
US6760764B1 (en) * 2000-08-09 2004-07-06 Alcatel Canada Inc. Real time stamp distribution
DE50110332D1 (de) * 2001-03-15 2006-08-10 Siemens Ag RDS-TMC-Rundfunkempfänger und Verfahren zum Kalibrieren eines internen Zeitgebers in einem Rundfunkempfänger
US20060069429A1 (en) * 2001-04-24 2006-03-30 Spence Paul A Tissue fastening systems and methods utilizing magnetic guidance
US7555364B2 (en) * 2001-08-22 2009-06-30 MMI Controls, L.P. Adaptive hierarchy usage monitoring HVAC control system
JP3563721B2 (ja) * 2001-09-21 2004-09-08 株式会社東芝 情報処理装置および同装置で使用される時計表示制御方法
US20030126447A1 (en) * 2001-12-27 2003-07-03 Jacques Debiez Trusted high stability time source
US6639957B2 (en) * 2002-02-14 2003-10-28 Itron, Inc. Method and system for calibrating an oscillator circuit using a network based time reference
DE50308597D1 (de) 2003-05-14 2007-12-27 Tektronix Int Sales Gmbh Digitaler Zähler
US7564809B1 (en) * 2004-05-06 2009-07-21 Cornell Research Foundation, Inc. Event-synchronization protocol for parallel simulation of large-scale wireless networks
US7266714B2 (en) * 2004-06-15 2007-09-04 Dolby Laboratories Licensing Corporation Method an apparatus for adjusting the time of a clock if it is determined that the degree of adjustment is within a limit based on the clocks initial time
US7228243B2 (en) * 2005-09-22 2007-06-05 International Business Machines Corporation Implementing a high resolution monotonic system clock
US20090257321A1 (en) * 2008-04-14 2009-10-15 Gary Lee Scott Dithering control of oscillator frequency to reduce cumulative timing error in a clock
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8645746B2 (en) 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8578200B2 (en) * 2011-04-14 2013-11-05 International Business Machines Corporation Conversion of timestamps between multiple entities within a computing system
US9292712B2 (en) 2012-09-28 2016-03-22 St-Ericsson Sa Method and apparatus for maintaining secure time
US11487871B2 (en) * 2015-01-31 2022-11-01 San Diego Gas & Electric Company Methods and systems for detecting and defending against invalid time signals
CN104821820B (zh) * 2015-03-27 2017-11-17 深圳市振邦智能科技有限公司 一种定时时间的补偿方法
US9861756B1 (en) 2016-03-08 2018-01-09 Verily Life Sciences Llc Apparatus and methods for tracking administering of medication by syringe
US10869967B2 (en) 2017-01-06 2020-12-22 Verily Life Sciences Llc Rigid sensor stopper for use in drug delivery devices
US10732270B2 (en) 2017-03-08 2020-08-04 Verily Life Sciences Llc Drug cartridge with acoustic reflector
US10592662B1 (en) * 2017-09-13 2020-03-17 Ca, Inc. Systems and methods for altering time data
US10993696B2 (en) 2017-12-08 2021-05-04 Verily Life Sciences Llc Multiple transducer injection measurement
US12468292B2 (en) * 2018-01-03 2025-11-11 Tata Consultancy Services Limited Method and system for synchronizing plurality of events in an assembly line
US11197962B2 (en) 2018-02-26 2021-12-14 Verily Life Sciences Llc Waveform reconstruction for ultrasound time of flight measurements
US11714737B2 (en) * 2021-01-21 2023-08-01 Hewlett Packard Enterprise Development Lp Time clock quality determination

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4575848A (en) * 1984-02-01 1986-03-11 Westinghouse Electric Corp. Methods and apparatus for correcting a software clock from an accurate clock
EP0223031A3 (en) * 1985-11-18 1990-04-04 International Business Machines Corporation Clock synchronisation in a distributed processing system
US4746920A (en) * 1986-03-28 1988-05-24 Tandem Computers Incorporated Method and apparatus for clock management
US5530846A (en) * 1993-12-29 1996-06-25 International Business Machines Corporation System for decoupling clock amortization from clock synchronization
JPH07253826A (ja) * 1994-03-16 1995-10-03 Toshiba Corp 時刻合わせ装置
US5526515A (en) * 1994-06-30 1996-06-11 Taligent, Inc. Hardware-driven clock with object-oriented interface

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175645A (ja) * 2010-02-24 2011-09-08 Fujitsu Semiconductor Ltd 較正方法及び較正装置
US20210153156A1 (en) * 2014-03-24 2021-05-20 Imagination Technologies Limited High definition timing synchronisation function

Also Published As

Publication number Publication date
US5826066A (en) 1998-10-20
EP0976018A1 (en) 2000-02-02
WO1998006021A1 (en) 1998-02-12
CA2263402A1 (en) 1998-02-12

Similar Documents

Publication Publication Date Title
JP2000517075A (ja) コンピュータシステムにおいて正確な時間を保持する方法
Mills Precision synchronization of computer network clocks
US7058838B2 (en) System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
US5918041A (en) Method and apparatus for automatically adjusting a clock
Correll et al. Design considerations for software only implementations of the IEEE 1588 precision time protocol
JP4856503B2 (ja) Todクロックをステアリングするためのシステムおよび方法
JPH10503282A (ja) 一次基準クロックに用いるための統制時間スケール生成装置
KR100603118B1 (ko) 가상 실시간 클록의 유지 방법, 컴퓨터 판독 가능 기록매체 및 로직 분할형 컴퓨터 시스템
EP2297627B1 (en) Electronic timer system including look-up table based synchronization
HK46893A (en) Temperature-compensated quarz timebase, and watch comprising the timebase
WO2008135305A1 (en) Method and apparatus for scalable and programmable delay compensation for real-time synchronization signals in a multiprocessor system with individual frequency control
Najafi et al. Graham: Synchronizing clocks by leveraging local clock properties
US4708491A (en) Time of day clock
JPH07311289A (ja) 電子時計及び時刻補正方法
Broomhead et al. Virtualize everything but time
US11853116B2 (en) Clock error-bound tracker
CN115987477A (zh) 一种多参考源时间同步方法及系统及模块及介质
US7194648B2 (en) Process for time synchronization of at least two clocks in a microprocessor system
GB2132042A (en) Frequency and timing sources
Jun et al. A time synchronization method for NTP
Louis Time on unix
Neville-Neil Time is an illusion lunchtime doubly so
JP7397686B2 (ja) 時刻生成装置
JP3457416B2 (ja) コンピュータシステムのタイマ補正装置
JPH096464A (ja) 時刻設定装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040709

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20070627

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070807