JP3457416B2 - コンピュータシステムのタイマ補正装置 - Google Patents

コンピュータシステムのタイマ補正装置

Info

Publication number
JP3457416B2
JP3457416B2 JP08100195A JP8100195A JP3457416B2 JP 3457416 B2 JP3457416 B2 JP 3457416B2 JP 08100195 A JP08100195 A JP 08100195A JP 8100195 A JP8100195 A JP 8100195A JP 3457416 B2 JP3457416 B2 JP 3457416B2
Authority
JP
Japan
Prior art keywords
error
correction
timer
time
cycle
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.)
Expired - Fee Related
Application number
JP08100195A
Other languages
English (en)
Other versions
JPH08278828A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP08100195A priority Critical patent/JP3457416B2/ja
Publication of JPH08278828A publication Critical patent/JPH08278828A/ja
Application granted granted Critical
Publication of JP3457416B2 publication Critical patent/JP3457416B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electric Clocks (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、時計装置に関し、特
に、TODタイマ(time-of-day timer)やリアルタイ
ムクロック等の、コンピュータシステムで使用される時
計装置に関するものである。
【0002】
【従来の技術】大規模なコンピュータシステムにおいて
は、各回路及び周辺装置との同期を図るため、時計装置
に対し非常に高度の精度が要求される。
【0003】従来のこの種の時計装置(以下タイマ)を
コンピュータシステムに採用した例を、図13に示す。
コンピュータシステムに対し時刻データを送出するタイ
マ部100において、時刻データは、タイマ102によ
って水晶発振器101(OSC)からのクロックパルス
を基に生成されるが、水晶発振器固有の精度や温度等の
環境変化により時刻の誤差が生じる。
【0004】そこで、従来例では、誤差補正の手段を設
けている。比較回路104は一定周期毎に、標準電波や
電話回線による時報サービスなど、外部の時刻源103
からの時刻データとタイマ102の発する秒パルスを比
較し、その誤差ΔTを算出する。
【0005】補正回路106は、比較回路104から送
られてくる誤差ΔTが、進みの誤差であればΔTの間タ
イマ102のカウントを停止させ、一方、遅れの誤差で
あればΔTの間タイマ102をカウントを倍速にする。
【0006】この一連の動作を繰り返すことにより従来
例ではタイマの補正を行っていた。尚、タイマ同期精度
は、以下の式で求められる(タイマの同期精度をAt、
水晶発振器の精度をAc、補正サイクルをCjとする。
1ppmは、1秒あたりの最大誤差±1μsを意味)。
【0007】
【数1】At= Ac・Cj 上記式にそれぞれ一般的な数値を当てはめると、 At= 50ppm ・ 2048秒 = 102400ppm (= ±102.4ms) ・・・ (式1) また、従来より公知のタイマの誤差の補正は、発振器の
パルスを削るあるいは追加する、という手段により行わ
れている。実際には、基本クロックと動作クロックの間
にクロック制御回路を介在させて補正を行っている。こ
れを以下に図を基に説明する。
【0008】図14は、タイマ102が進んでいる場合
の従来例による補正を、タイムチャートを用いて説明し
たものである。動作クロックは補正前の時点で実際の時
刻よりも3単位進んでいる。そこで基本クロックを補正
回路106からの補正シグナルでゲートしこれを動作ク
ロックに出力すれば、結果的に動作クロックは補正シグ
ナル分(図では3単位)減算されたことになり、タイマ
はその後実際の時刻に同期するようになる。
【0009】一方、図15は、タイマ102が遅れてい
る場合の従来例による補正を、同様にタイムチャートを
用いて説明したものである。動作クロックは補正前の時
点で、実際の時刻よりも3単位遅れている。そこで基本
クロックと動作クロック間に介在する倍周期クロック
を、補正回路106からの補正シグナルがオンの間中動
作クロックに出力させれば、動作クロックは補正シグナ
ル分(図では3単位)加算されたことになり、タイマ
は、その後実際の時刻に同期するようになる。
【0010】
【発明が解決しようとする課題】タイマの誤差の補正
は、できるだけ短い間隔で行うことが、精度の向上につ
ながり、特にこのような外部の時刻源を元とする補正
は、高い頻度で行われることが好ましい。
【0011】しかしながら、通常の構成では、コンピュ
ータの中央処理装置(Central Processing Unit,以下C
PU)が、本来の機能の合間にそのような補正を実行す
るため、数百秒から数千秒に1度という比較的長い間隔
を置いて行われているのが実情である。
【0012】また、近年のようにコンピュータを複数回
線で結んだ高度なネットワーク環境下でこのような誤差
が発生すると、新たな問題も引き起こす。すなわち、各
クラスタ内の各装置が誤差を伴う時刻データに同期して
いる分には問題は小さいが、別々のクラスタ同志で異な
る基準時刻が混在するようになるとシステムの運用に重
大な支障を来たすという問題である。このためにも一層
正確なシステムの基準時刻データの供給が要請されてい
る。
【0013】また、従来のタイマ内の処理方式では、ク
ロック制御回路及び倍周期クロックを付加しなければな
らず、タイマ自体の構造の複雑化等の問題も存在してい
た。本発明はこのような従来の技術の問題点に鑑みてな
されたものであり、CPUに新たな負担を掛けずに、従
来よりも短い間隔でタイマの誤差の補正を行う、高精度
なタイマ補正装置を提供することを目的とする。
【0014】また、タイマ内部に関しては、基本クロッ
クに手を加えたり倍周期クロックを付加したりせずに、
タイマ自身に誤差補正実行の論理回路をタイマ自身に内
蔵させることをも目的としている。
【0015】
【課題を解決するための手段】本発明は前記課題を解決
するために、以下の手段を採用した。 <本発明の必須構成要件>図1に示すように、一定周波
数のクロックパルスを基に時刻データを生成するタイマ
2の精度を、外部の基準時刻を参照することにより補完
するコンピュータシステムのタイマ補正装置において、
一定のサイクル毎に前記タイマ2の時刻と前記基準時刻
とを比較して時刻の誤差を算出する比較手段4と、前記
比較手段4が算出した誤差を、前記サイクルで分割して
分割周期あたりの誤差を算出する誤差分割手段5と、前
記比較手段4が算出したサイクル誤差を前記サイクルに
つき1回補正し、前記誤差分割手段5が算出した前記分
割周期の誤差を前記サイクルの期間中前記分割周期毎に
補正する補正手段6と、を有するコンピュータシステム
のタイマ補正装置とした(請求項1に対応)。
【0016】なお、このタイマ補正装置に用いられる構
成の意義は以下の通りである。 〔タイマ〕タイマ2は、水晶発振器等の発振器が発する
一定周波数のクロックパルスを基に時刻データを生成す
るカウンタであり、コンピュータシステムにおいては各
回路及び周辺装置との同期を図る目的で用いられる。ま
た、発振器及びタイマは共に精度に限界があり、外部の
より正確な基準時刻の定期的な参照が必須である。基準
時刻は、前記タイマ2に正確な時刻とパルスを供給する
ようにハードウェア的に接続されている。
【0017】〔比較手段〕比較手段4は、一定のサイク
ル毎に前記タイマ2の時刻と前記基準時刻とを比較して
時刻の誤差を算出する比較回路であり、デジタル比較器
及びアナログ比較器のどちらも利用可能である。
【0018】〔誤差分割手段〕誤差分割手段5は、前記
比較手段4が算出した誤差を、前記サイクルで分割して
分割周期あたりの誤差を算出するもので、本発明では、
シフトレジスタによる2進数除算回路51を用いる。
【0019】〔補正手段〕補正手段6は、前記比較手段
4が算出したサイクル誤差を前記サイクルにつき1回補
正し、前記誤差分割手段5が算出した前記分割周期の誤
差を前記サイクルの期間中前記分割周期毎に補正し、誤
差をカウントし補正シグナルに変換する補正カウンタ6
1、分割周期あたりの誤差を保持する補正バッファ等か
らなり、タイマ2に補正シグナルを送出する。 <付加的構成要素>また、このタイマ補正装置の付加的
構成要素を、以下に挙げる。
【0020】〔端数誤差補正〕第1の付加的構成要素と
して、まず、前記タイマ補正装置は、前記誤差分割手段
5は2進数除算回路51であり、前記分割周期あたりの
誤差算出の際に前記2進数除算回路51により切り捨て
られる小数以下成分である端数誤差を保持するための端
数誤差補正バッファ63を有する。
【0021】そして、前記タイマ補正装置は、nが1以
上の自然数であるとき前記端数誤差の最上位桁から最下
位桁へ向かってn番目の桁の成分を、前記分割周期の2
n倍を周期として累算して、前記分割周期あたりの誤差
に加算する誤差加算手段65を有するような構成であっ
てもよい(請求項2に対応)。
【0022】〔タイマの補正実行方式〕第2の付加的構
成要素として、前記タイマ2は、自身が前記基準時刻よ
り進んでいるときには進んでいる時刻分カウントを停止
し、自身が前記基準時刻より遅れているときには遅れて
いる時刻分倍速でカウントする論理回路を備えることを
特徴とする前記タイマ補正装置である(請求項3に対
応)。
【0023】
【作用】
〔必須構成要素〕上記構成を備えた上で、補正サイクル
が経過済みであるかどうかの判定と、タイマ2の時刻の
サンプリング、サイクル誤差の算出、及び進みの誤差か
遅れの誤差かの判定とを比較手段4に対して指示するこ
と、サイクル誤差の分割を誤差分割手段5に対して指示
すること、さらに、分割周期あたりの誤差算出の履歴の
判定及びその結果に従って分割周期あたりの誤差の量の
調整をした上で、前記サイクル誤差と分割周期あたりの
誤差を補正手段6内にセットする処理を行うこと、の各
処理が整えば本発明のタイマ補正が完了する。
【0024】〔第1の付加的構成要素の作用〕誤差分割
手段が2進数除算回路51であるときに、前記2進数除
算回路51が分轄周期あたりの誤差を算出する際生じる
端数誤差を端数誤差補正バッファにセットする行程が、
上記必須構成要素に加わることで前記端数誤差がタイマ
補正に反映される。
【0025】〔第2の付加的構成要素の作用〕 タイマ2が進んでいる場合 タイマカウンタのインクリメント動作を全段に亘って"
0"とし、結果的にクロック停止補正となる。 タイマ2が遅れている場合 タイマカウンタの最下位の1つ上の桁において"1"を加
算し、すなわち、全段では10進法の"2"に相当する加
算をして、倍速の補正となる。
【0026】
【実施例1】以下にネットワークの一部を構成するコン
ピュータシステムの動作の基準となる時刻データを生成
するタイマにおいて、本発明を実施した例を、図2から
図5に基いて説明する。
【0027】図2は、基準時刻の生成、及びその補正を
行っているタイマ部の構成を示すブロック図である。水
晶発振器1は非常に短い周期(数MHz〜数十MHz、
精度50ppm)でクロックパルスを発しており、前記
水晶発振器1に接続のタイマ2は、水晶発振器1からの
クロックパルスを基に時刻データ生成し、コンピュータ
システム内にあって各回路及び周辺装置との同期を図る
ための基準時刻を送出している。
【0028】時刻源3は、電話回線による時報サービス
であり、タイマ部において利用可能にハードウェア的に
接続されている。前記時刻源3からは時刻データと秒パ
ルスがタイマ2、比較回路4、補正回路6aへ送出され
る。ここでいう時刻データは年月日時分秒のそれぞれが
BCD形式(Binary Coded Decimal:2進化10進数)
のものである。
【0029】前記タイマ2の出力は、各周辺装置、及び
比較回路4に接続され、比較回路4の出力は誤差分割回
路5及び前記補正回路6aに接続され、前記誤差分割回
路5の出力は前記補正回路6aに接続され、さらに補正
回路6aの出力は前記タイマ2に接続されている。
【0030】〔タイマ〕本実施例におけるタイマは、リ
アルタイムクロックと呼ばれる一種のカウンタである。
水晶発振器等の発振器が発する一定周波数のクロックパ
ルスを計数して、予め設定入力された時刻から現在の時
刻を換算し、時刻情報の出力を継続的に行うものであ
る。コンピュータシステムにおいては、各回路及び周辺
装置との同期を図る目的で用いられる。本発明実施の対
象となるタイマとしては、TODタイマ等の他のもので
あってもよい。
【0031】〔比較回路〕比較回路4は、比較的長めの
一定サイクル(補正サイクル)毎に、前記タイマ2の発
する時刻データと前記時刻源3からの時刻データを比較
して誤差ΔTを算出しかつそれが進みであるか遅れであ
るか判断するものである。本実施例における補正サイク
ルは2048秒に1回の周期である。
【0032】〔誤差分割回路〕誤差分割回路5は、前記
比較回路4が算出した前記補正サイクル分の誤差を補正
サイクルの値2048で除算し、1秒あたりの誤差Δt
に分割するためもので、シフトレジスタによる2進数除
算回路51を利用している。
【0033】〔補正回路〕補正回路6aは、比較回路4
が算出した補正サイクルあたりの誤差ΔTを基に、タイ
マ2に補正シグナルを送出する。タイマ2では前記比較
回路4からの進み又は遅れであるかの情報により補正シ
グナル分の補正が行われる。
【0034】補正回路内の作用を図3を用いて説明す
る。まず、システム起動時又はタイマリセット時から起
算した最初の2048秒間の誤差ΔTが補正カウンタ6
1にセットされる。補正カウンタ61がΔTを「値が0
になるまで」デクリメントした際の時間を前記2048
秒間の誤差分の補正シグナルとし、進みか遅れかの情報
と共にタイマ2に送られる。
【0035】一方、前記誤差分割回路5で算出された1
秒あたりの誤差Δtは、補正回路内の毎秒補正バッファ
62で保持される。そして、前記時刻源3からの秒パル
スの入力がある毎に前記Δtは前記補正カウンタ61に
セットされ、補正カウンタ61がΔtを「値が0になる
まで」デクリメントした際の時間を1秒あたりの誤差の
補正シグナルとし、タイマ2に毎秒送られる。これによ
り本実施例は、毎秒補正とも呼べるものである。
【0036】本実施例では、補正の精度を高めるため以
上の2つの処理が併せ行われる(請求項1、3に対
応)。 〔毎秒補正のCPUの処理内容〕ここで、上記毎秒補正
の実行時のCPU(図示せず)の処理内容を図4のフロ
ーチャートに基づいて説明する。
【0037】このルーチンは、システム起動時又はタイ
マのリセット(初期化)により開始する。まずCPU
は、この補正サイクルが経過済みであるかどうかの判定
を行う(ステップ(S101)。補正サイクルの途中で
あると判断するとステップS101の前に戻る。
【0038】一方、補正サイクル経過済みと判断すれ
ば、前記比較回路4により、タイマ2の時刻をサンプリ
ングを行い(ステップS102)、前記時刻源3からの
時刻データとを比較して誤差ΔTの算出を行う(ステッ
プS103)。同時に、それが進みの誤差+ΔTである
か遅れの誤差−ΔTであるかを判定させ(S104)、
比較回路4は、+ΔTならフラグを1に(ステップS1
05)、−ΔTならばフラグを0に(ステップS10
6)する。
【0039】次に、ステップS103で算出された誤差
ΔTを前記補正回路6a内の補正カウンタ61にセット
する(ステップS107)。その間に、前記誤差分割回
路5により1秒あたりの誤差Δtが算出を行う(ステッ
プS108)。
【0040】さらにステップS109で過去において1
秒あたりの誤差Δtの算出がされているか否かを判定
し、もし無ければそのままの誤差Δtを前記毎秒補正バ
ッファ62にセットし(ステップS111)、また毎秒
補正バッファ62内に過去の誤差Δtが既に保持されて
いれば、その過去の誤差Δtに新たな誤差Δtを加算
し、改めて毎秒補正バッファ62セットする(ステップ
S110)。
【0041】以上で、本ルーチンを終了する。 <タイマ補正の実行方式>ここで、上述の手順により補
正回路6a内で生成された補正シグナルがタイマ2に送
られて、実際に誤差が補正される方式を説明しておく。
【0042】〔本実施例のタイマ補正実行方式〕図5
は、本実施例が採用するタイマ2の論理回路を示してお
り、最下位桁(the Least Significant Bit;LSB)
から最上位桁(the Most Significant Bit;MSB)へ
の各段は、EXCLUSIVE OR回路(XOR)と
AND回路からなる半加算器とフリップフロップ(F
F)とで構成されている。
【0043】LSBとLSB+1にかけての破線部は、
通常の加算回路に対する本実施例での追加部分である。
補正回路からの補正シグナルの送出がない通常状態では
インバータ21の入力は"0"なのでLSBへの入力は"
1"である。
【0044】以下に、タイマ2が進んでいる場合と、タ
イマ2が遅れている場合とに分けて、補正の実行方式を
説明する。尚、この際、クロック単位の長さは1する。 タイマ2が進んでいる場合 前記補正回路6aから減速の補正の指示、すなわち、減
速の(=進み誤差の)フラグと倍速の補正シグナルとが
送出されたこととすると、インバータ21とAND回路
22の一方の端子22aとには"1"が入力され、同時に
AND回路22の他方の端子22bには減速のフラグ"
0"が入力される。
【0045】したがって、AND回路22からは"0"が
出力され、OR回路23の出力はLSBからの繰り上が
りのみが反映されLSB+1への影響はない。一方、L
SBへはインバータ22からの"0"が入力される。よっ
て、本来"1"であるタイマのインクリメント動作が"0"
となり、クロック単位1の間タイマを停止させる。 タイマ2が遅れている場合 前記補正回路6aから加速の補正の指示、すなわち、加
速の(=遅れ誤差の)フラグと倍速の補正シグナルとが
送出されたこととすると、インバータ21とAND回路
22の一方の端子22aとには"1"が入力され、同時に
AND回路22の他方の端子22bには加速のフラグ"
1"が入力される。
【0046】したがって、インバータ21から"0"が出
力され、の減速の補正時と同様にLSBへの入力は"
0"である。一方、LSB+1ではAND回路22から"
1"が出力され、OR回路23でLSBからの繰り上が
り分加算されることになる。LSB+1における加算1
は全段では10進法の加算2に相当し、本来"1"である
タイマのインクリメント動作が"2"となり、クロック単
位1の間タイマを倍速で動作させ、倍速の補正が実行さ
れることとなる。
【0047】以上の実施例1で得られるタイマ同期精度
は、以下の式の通りである(タイマの同期精度をAt
1、水晶発振器の精度をAc、補正サイクルをCjとす
る。)。
【0048】
【数2】At1 = Ac+ΔT−Cj・Δt 予想されるΔTは式1より、Ac・Cjなので、 At1 ≒ 50ppm+2048(50ppm−Δt) ・・・(式2) 上式中、Ac−Δtは本来"0"となるはずだが、除算回
路の制約上誤差が生じるので上式のようになる。
【0049】この関係を示すのが図6のグラフである。
2回目以降のサイクルの1秒から2秒の1秒間の最大誤
差は、50ppm+2(50ppm−Δt)であり、以
後増加を続け、結局本実施例で得られる同期精度は、5
0ppm+2048(50ppm−Δt)となる(式
2、図6)。従来例での誤差は、このグラフでいえば初
めのサイクルのΔTに相当し、本実施例で精度が、各段
に向上しているのが分かる。
【0050】
【実施例2】次に、本発明の第2の実施例を図7から図
12に基づいて説明する。本実施例は、実施例1に対
し、誤差分割回路及び補正回路の一部に変更を加えたも
のなので変更部分を中心に説明する。
【0051】尚、変更点として、実施例1の構成に、誤
差分割回路と補正回路と端数誤差補正バッファ63、秒
パルスカウンタ64、誤差加算回路65の追加が施され
ている(図7、図10)。また、設定された補正サイク
ルも2048秒に1回の周期である。
【0052】〔実施例1の誤差分割回路の課題〕実施例
1の誤差分割回路5は、シフトレジスタによる2進数除
算回路51を用いて誤差ΔTを2048で除算して1秒
あたりの誤差Δtを求めるものであると述べた。
【0053】ある数値を「2のn乗」で除した商は、2
進法に変換したその数値を小数点に対してn桁分右にず
らすことで求められる。これを応用したのが、2進数除
算回路であり、nビット右にシフトすることにより除算
が達成される。その際小数点より右にシフトした成分は
レジスタの回路では消失してしまい、通常は利用できな
いという問題がある。
【0054】これを図8を基に説明すると、誤差ΔT
は、右側に11ビット(2の11乗=2048)ずらさ
れることで、総桁数(図では長方形ΔTの長さに相当)
は変化しないものの小数点(破線)を境にΔt1とΔt
2の2つに分かれてしまっている。右側にはみ出た11
ビット分(図の長方形Δt2の長さ)が消失分である。
【0055】この関係を、タイマの誤差に当てはめる
と、ΔTは2048秒間の誤差であり、Δt1は誤差分
割回路が算出(ΔT/2048)した1秒あたりの誤差
であり、Δt2は2進数除算回路が除算することで生じ
てしまった小数以下の端数成分(以下、端数誤差)であ
る。
【0056】本実施例はこの端数誤差Δt2(数2中の
ΔT−Δt1に相当)をできる限り補正に反映させるこ
とで、タイマの精度をさらに高めるものである。 <端数誤差の補正>図7は、本実施例のタイマ部の構成
を示すブロック図である。
【0057】〔端数誤差補正バッファ〕誤差分割回路5
b内で、2進数除算回路51がΔTを2048で除算し
てΔt1を算出した際に発生する端数誤差Δt2は、補
正回路6b内の端数誤差補正バッファ63に送られ1サ
イクル中保持される。尚、端数誤差補正バッファ63
は、本実施例では補正回路6b内に配置したが、補正回
路6b外でも構わない。
【0058】〔誤差加算回路〕上述の端数誤差Δt2を
1秒あたりの誤差Δt1に加算する回路である。前記Δ
t2は小数以下の端数のため1秒間ではΔt1に加算で
きないが、もし、ある期間経過してΔt2の累算がΔt
1で処理可能な"1"になれば、その期間分のΔt1と合
算させて、それはその期間の真の誤差であると類推され
る。
【0059】これは、以下のように言い表すことができ
る。すなわち、端数誤差Δt2の最上位桁(小数以下第
1位)から最下位桁(小数以下第11位:11ビットシ
フト時)へ向かってn番目の桁の成分を(nが1以上の
自然数)、2n秒分累算して初めて前記Δt1で処理可
能な値である"1"にすることができ、それをこの2n
を周期として前記1秒あたりの誤差Δt1に加算すれ
ば、より正確な誤差データが得られるということであ
る。
【0060】また、もしΔt2のある桁に値がなけれ
ば、2nを乗じても"0"のままでΔt1には影響を与え
ないので、この手段は、Δt2の内容に拘わらず用いる
ことが可能なことが理解されよう。
【0061】以上の関係を表にすると、以下の表1にな
る。
【0062】
【表1】 ここで、この関係を数値を仮定して試算した例を図9を
伴って説明する。
【0063】仮に、補正サイクルが2048秒で、サイ
クル誤差ΔTが+100000μsとすると、1秒あた
りの誤差の理論値は図中式の左辺(ΔT/補正サイク
ル)である。これを2進数除算回路で11ビット右シフ
トすると、図中式の右辺となる。図中表のA段と、B段
とで上記表1に相当し補正サイクルが一定な限り既定値
である。図中表のC段「1秒あたりn桁成分」は、図中
式の右辺の少数以下11ビット分"110101000
00"の各桁がそれぞれ対応しており(図中矢印)、さ
らに、図中表のD段は、理解の助けにC段「1秒あたり
n桁成分」を10進数に換算したものである。
【0064】そして、図中表のn桁のD段に図中表n桁
のB段周期を乗じた結果が、それぞれE段の「各桁2n
秒間の累算」である。例えば、nが2の場合を考えると
(図中表のA段が2;少数以下第2位)、端数を累算す
べき周期は4秒(B段)であり、したがって、端数の累
算値はE段の値"1(D段*B段=0.25*4)"をみ
ればよい。
【0065】尚、図中表より分かるとおり、E段とC段
に表示される値は完全に一致しており、端数誤差Δt2
のn番目の桁の成分("0"または"1")をそのまま2n
秒毎にΔt1の最下位桁に加算しても端数誤差Δt2が
反映される。
【0066】〔実施例2の補正回路〕補正回路6b内の
作用を、実施例1との相違部分を中心に図10を用いて
説明する。
【0067】実施例1と同様にして得られた補正シグナ
ルと進みか遅れかの情報とが共にタイマ2に送られる。
やはり、1秒あたりの誤差Δt1も前記誤差分割回路5
bで算出された後、補正回路内の毎秒補正バッファ62
で保持される。
【0068】秒パルスカウンタ64は予め各桁用の前記
n秒の周期を記録しており、前記時刻源3からの秒パ
ルスをカウントし前記2n秒の周期が来たら信号を誤差
加算回路65に送る。誤差加算回路65はこの周期信号
を基に、前記端数誤差補正バッファ63に保持されてい
る端数誤差Δt2のn番目の桁の値を2n倍して、前記
毎秒補正バッファ62内のΔt1に加算する。
【0069】そして、前記時刻源3からの秒パルスの入
力がある毎にこのΔt1+Δt2が前記補正カウンタ6
1にセットされ、実施例1のΔtと同様に、補正カウン
タ61がΔt1+Δt2を「値が0になるまで」デクリ
メントした際の時間を1秒あたりの補正シグナルとし、
タイマ2に毎秒送出する(端数誤差補正、請求項2、3
に対応)。
【0070】〔実施例2のCPUの処理内容〕本実施例
による補正の実行時のCPU(図示せず)の処理内容を
図11のフローチャートに基づいて、やはり、実施例と
の相違部分を中心に説明する。
【0071】本ルーチンの開始から、誤差ΔTを前記補
正回路6b内の補正カウンタ61にセットするまでは実
施例と同様であるので省略し、ステップS108から説
明する。
【0072】ステップS108において、前記誤差分割
回路5bはΔTと補正サイクル2048秒から1秒あた
りの誤差Δt1を算出する。このとき、同時に端数誤差
Δt2も算出されていることになる。
【0073】さらに、やはり、ステップS109で過去
における1秒あたりの誤差Δt1についての判定し、そ
れぞれの結果により前記毎秒補正バッファ62にセット
する(ステップS110、S111)。
【0074】ついで、ステップS112に進んで、ステ
ップS108で算出された端数誤差Δt2が端数誤差補
正バッファ63にセットされ、これにより本ルーチンを
終了する。
【0075】ここで、本実施例の原理で得られる理論的
なタイマ同期精度の試算を行う。図12は、2回目以降
の任意の補正サイクル開始から16秒後までのタイマの
誤差の推移を示すグラフである。補正サイクルは204
8秒、サイクル誤差ΔTは+104320μs、とす
る。ΔTを補正サイクル2048で除して毎秒補正の量
Δt1=50が得られ、その際端数として0.9375
(0.11110000000)が発生する。また、理
論上、Δt1と端数の和50.9375μsは、水晶発
振器の精度Acに一致している。
【0076】表1及び図9より、ある期間内に積算され
る少数以下n桁に由来する端数誤差補正分として、少数
以下n桁に対応する端数誤差累算周期が、当該期間に到
来する毎に"1"が積算されることが分かるが、図12の
グラフに示された16秒間では、例えば、補正サイクル
開始後、少数以下1桁(n=1)に由来する補正分とし
て、その周期が到来する2,4,6,8,10,12,
14,16の各秒で"1"がΔt2に加算されてゆく。ま
た、逆にある時点でΔt2に加算される端数誤差補正量
は、その時に累算周期が到来し、かつ、少数以下の各桁
に表示されている値の和に相当する。例えば、本例のよ
うに端数が0.11110000000ならば、32秒
時点で周期が到来するのは、表1より少数以下1、2、
3、4、5の各桁であるが、少数以下5桁以降は"0"な
ので端数誤差補正量は"4"である。各秒の端数誤差補正
量はグラフの下部に示してある。
【0077】タイマは1秒毎に水晶発振器1の精度の最
大値Ac分進もうとし(グラフで上向きの矢印)、その
都度Δt1の分だけ遅らせるための毎秒補正が行われる
が(下向きの破線矢印)、さらに、表1に示されたよう
に、端数誤差Δt2の少数以下n桁の成分が、前記端数
誤差累算周期に基づき、端数誤差Δt2として積算され
タイマの進み誤差から減算される(下向きの実線矢
印)。
【0078】補正サイクル中に行われる端数誤差補正量
の合計はΔt1算出の際の端数に補正サイクルを乗じた
値、0.9375*2048=1920である。同様
に、前記16秒間に行われる端数誤差補正量の合計は、
0.9375*16=15である。これらの関係を式に
表すと以下のようになる。
【0079】
【数3】 16秒時補正後の誤差=16秒間の進み−16秒間のΔt1合計 −16秒間の端数誤差補正量の合計 =16*50.9375−16*50−15 =815−800−15 = 0 ・・・(式3) このように、本実施例では、端数0.11110000
000の少数以下5桁目以降はすべて"0"なので、上位
の少数以下4桁目の端数累算周期"16秒(表1より求
められる)"が到来する度に誤差は"0"になることが分
かる(グラフの16秒時点)。この関係は、「2r秒毎
に誤差は"0"になる(rは前記端数で、値に"1"を持つ
桁のうち、最も右側の桁までの数:以下「端数の有効桁
数」とする)。」と表現できる。
【0080】また、最大の端数誤差補正量は16秒時点
での"−4"であり、その補正が行われる直前に、16秒
間中での最大の誤差0+4+50=54が発生してい
る。16秒時点で誤差は一旦"0"になっており、以下同
様のことが補正サイクル中繰り返されるので、補正サイ
クル全体での最大誤差も"54"である。
【0081】したがって、実施例2で得られるタイマ同
期精度At2は、式3を基に以下のように表すことが可
能である(Nは、端数Δt2の少数以下の各桁に表示さ
れている値の和であって、2r秒時の端数誤差補正量に
等しい)。
【0082】
【数4】 At2 = 2r秒時補正後の誤差 + Δt1 + N At2 = 0 + Δt1 + N At2 = Δt1 + N ・・・(式4) 尚、上式中のNは、前記ΔTの値に依存するが、端数が
生じない場合にΔt1は、水晶発振器1の精度Acに理
論的に一致し、毎秒補正後に誤差は"0"になる(Ac=
Δt1=At2:一致しない原因としては、前記比較回
路4及び前記補正回路6bの精度や、前記ΔT自体に少
数部分があること、などが考えられる)。
【0083】また、仮に端数が生じたとしても、上述の
ように「2r秒毎に誤差は"0"になる(rは前記端数の
有効桁数)。」ので、rが10以下ならば補正サイクル
の半分以下の期間(2r秒)でタイマを初期状態と同等
に戻すことができる。この点は、誤差の純粋な最大値で
測られるタイマの精度とは別に、本実施例のタイマ補正
装置を採用することの利点として特に挙げられる。
【0084】本実施例では、Δt2の各桁成分を前記2
n秒毎に累算してΔt1に加算する手段を採用したが、
他にもΔt2の上位の1部のビットのみをある周期でま
とめて加算する手法も本実施例の応用として考えられ
る。このような手法の例として、16MHz(Ac=4
0ppm)の発振器を使用し、Δt2の上位4ビットを
16秒毎にまとめて加算する(下位7ビットは切り捨
て)ことで、48μsの同期精度を得ている例を挙げて
おく。
【0085】
【発明の効果】以上説明したように本発明によれば、高
度の精度の計時が要求されるコンピュータシステムのタ
イマ補正装置において、ハードウェア的に処理すること
でCPUに新たな負担を掛けずにより短い間隔のタイマ
の誤差の補正が可能になり、よって精度の向上が実現さ
れる。
【0086】また、タイマ内の処理方式に関しては、基
本クロックに手を加えたり倍周期クロックを付加したり
せずにタイマ自身に誤差補正実行のロジックをタイマ自
身に内蔵させる本発明の方式を採用することで、クロッ
ク制御回路及び倍周期クロック等の付加が必要なくな
る。
【図面の簡単な説明】
【図1】 本発明のタイマ補正装置の原理図
【図2】 実施例1における、タイマ部の構成を示すブ
ロック図
【図3】 実施例1の補正回路内の作用を示す図
【図4】 実施例1の補正の実行時のCPUの処理内容
を示すフローチャート
【図5】 実施例1が採用するタイマの論理回路を示す
【図6】 実施例1で得られるタイマ同期精度を説明す
るグラフ
【図7】 実施例2における、タイマ部の構成を示すブ
ロック図
【図8】 2進数除算回路の原理図
【図9】 実施例2で採用する端数誤差の試算結果を説
明する図
【図10】実施例2の補正回路内の作用を示す図
【図11】実施例2の補正の実行時のCPUの処理内容
を示すフローチャート
【図12】実施例2で得られるタイマ同期精度を説明す
るグラフ
【図13】従来例のタイマをコンピュータシステムに採
用例を示す図
【図14】従来例のタイマの進みの補正のタイムチャー
【図15】従来例のタイマの遅れの補正のタイムチャー
【符号の説明】
1 水晶発振器 2 タイマ 3 時刻源 4 比較手段、比較回路 5 誤差分割手段、誤差分割回路 51 2進数除算回路 6 補正手段、補正回路 61 補正カウンタ 62 毎秒補正バッファ 63 端数誤差補正バッファ 64 秒パルスカウンタ 65 誤差加算回路
フロントページの続き (72)発明者 海津 哲哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 片桐 裕司 神奈川県横浜市港北区新横浜2丁目4番 19号 株式会社 富士通プログラム技研 内 (72)発明者 石山 智弘 神奈川県横浜市港北区新横浜2丁目4番 19号 株式会社 富士通プログラム技研 内 (56)参考文献 特開 平5−134059(JP,A) 特開 昭56−680(JP,A) 特開 昭58−50031(JP,A) 特開 昭56−103392(JP,A) 特開 昭58−19587(JP,A) 実開 平3−119217(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 1/14 G04G 5/00

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 一定周波数のクロックパルスを基に時刻
    データを生成するタイマの精度を、外部の基準時刻を参
    照することにより補完するコンピュータシステムのタイ
    マ補正装置において、一定のサイクル毎に前記タイマの
    時刻と前記基準時刻とを比較して時刻の誤差を算出する
    比較手段と、前記比較手段が算出した誤差を、前記サイ
    クルで分割した分割周期あたりの誤差を算出する誤差分
    割手段と、前記比較手段が算出したサイクル誤差を前記
    サイクルにつき1回補正し、かつ、前記誤差分割手段が
    算出した前記分割周期あたりの誤差を前記サイクルの期
    間中前記分割周期毎に補正する補正手段と、を有するこ
    とを特徴とするコンピュータシステムのタイマ補正装置
    であって、 前記誤差分割手段は2進数除算回路であり、前記分割周
    期あたりの誤差算出の際に前記2進数除算回路により切
    り捨てられる小数以下成分である端数誤差を保持するた
    めの端数誤差補正バッファを有し、nが1以上の自然数
    であるとき、前記端数誤差の最上位桁から最下位桁へ向
    かってn番目の桁の成分を、前記分割周期の2n倍を周
    期として累算して、前記分割周期あたりの誤差に加算す
    る誤差加算手段を有する、ことを特徴とするコンピュー
    タシステムのタイマ補正装置
  2. 【請求項2】 前記タイマは、自身が前記基準時刻より
    進んでいるときには進んでいる時刻分カウントを停止
    し、自身が前記基準時刻より遅れているときには遅れて
    いる時刻分倍速でカウントする論理回路を備えることを
    特徴とする請求項1記載のタイマ補正装置。
JP08100195A 1995-04-06 1995-04-06 コンピュータシステムのタイマ補正装置 Expired - Fee Related JP3457416B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08100195A JP3457416B2 (ja) 1995-04-06 1995-04-06 コンピュータシステムのタイマ補正装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08100195A JP3457416B2 (ja) 1995-04-06 1995-04-06 コンピュータシステムのタイマ補正装置

Publications (2)

Publication Number Publication Date
JPH08278828A JPH08278828A (ja) 1996-10-22
JP3457416B2 true JP3457416B2 (ja) 2003-10-20

Family

ID=13734281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08100195A Expired - Fee Related JP3457416B2 (ja) 1995-04-06 1995-04-06 コンピュータシステムのタイマ補正装置

Country Status (1)

Country Link
JP (1) JP3457416B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4051840B2 (ja) * 1999-05-28 2008-02-27 富士電機システムズ株式会社 分散されているシステム機器の同期装置
GB2400962B (en) * 2001-05-02 2004-12-29 Virtual Access Ltd Secure payment method and system
JP5965223B2 (ja) * 2012-06-29 2016-08-03 ルネサスエレクトロニクス株式会社 クロック補正回路及びクロック補正方法
JP7328064B2 (ja) * 2019-08-07 2023-08-16 ファナック株式会社 同期方法、及び制御装置

Also Published As

Publication number Publication date
JPH08278828A (ja) 1996-10-22

Similar Documents

Publication Publication Date Title
US5826066A (en) Method for keeping accurate time in a computer system
US4564918A (en) Method and apparatus for measuring the time difference between two sampling times
CN1909375A (zh) 实时时钟装置及其当前时刻补偿方法
JP2009181576A (ja) 計算機又はプログラム可能機械において時間値を処理するための方法
US9979991B2 (en) Method and apparatus for deterministic date and time alignment of media signals and generation of time-related labels
US20070038690A1 (en) Adjustable time accumulator
JP3457416B2 (ja) コンピュータシステムのタイマ補正装置
EP1041469A2 (en) Method and apparatus for extending a resolution of a clock
KR100414864B1 (ko) 디지탈카운터및디지탈pll회로
US20070262822A1 (en) Digitally controlled oscillator with jitter shaping capability
EP1357460B1 (en) A numerically controlled oscillator (NCO) for generating rational frequencies
EP1612942A1 (en) A fractional divider system and method
JP7397686B2 (ja) 時刻生成装置
CN110061735B (zh) 小数分频电路及采用该电路的接口时钟分频电路
US7489754B2 (en) Frequency-lock detector
EP0459039A1 (en) Apparatus and method for generating time data for computer networks
EP0922332B1 (en) Frequency dividing circuit
US6882697B1 (en) Digital counter
Plotnikov et al. Peculiarities of NTP protocol realization for microprocessor systems with limited computing resources
JPH07301685A (ja) クロック回路
US11886534B2 (en) Filtering method and system of parallel computing results
JP3123998B2 (ja) A/d変換機能を内蔵したシングルチップマイクロコンピュータ
JP2003194974A (ja) 時刻補正方法及び時刻補正装置
KR100282478B1 (ko) 디지털 프로세서 위상 고정루프 위상검출 제어방법 및 그 장치
JP2651300B2 (ja) タイマ回路

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100801

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130801

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees