(57)【要約】【課題】情報処理装置において、内部の周波数カウンタから実時間を生成する場合、内部の周波数の精度が低いと実時間に狂いが生じてくるという欠点がある。【解決手段】割り込み信号を発生する割り込み信号回路１０と、割り込み信号を受信する制御回路１と、プロセッサクロック９と、プロセッサクロックにより歩進する周波数カウンタ２と、の割り込み間隔に応じた周波数カウント値を保持する定数レジスタ３と、前回の割り込み時の周波数カウンタの値を格納する保持レジスタ４と、定数レジスタと周波数カウンタと保持レジスタから補正値を生成する補正値生成回路５と、補正値を格納する補正値レジスタ６と、周波数カウンタと補正値レジスタから実時間を生成する実時間変換回路７と、実時間の変換結果を格納する時刻格納レジスタ８と、実時間を読み出す実時間読み出し回路１１から構成されている。【選択図】      図１
2005070932.tif 000002
【特許請求の範囲】
【請求項１】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御回路。
【請求項２】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【請求項３】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるための時刻補正制御用プログラム。
【請求項４】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御回路。
【請求項５】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【請求項６】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるための時刻補正制御用プログラム。
【請求項７】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御回路。
【請求項８】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【請求項９】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるための時刻補正制御用プログラム。
【請求項１０】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御回路。
【請求項１１】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【請求項１２】
割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるための時刻補正制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムに関し、特に、プロセッサの動作周波数で歩進するカウンタを備えた情報処理装置において、プロセッサの外部からの定期的な割り込みにより、補正値を生成して実時間の誤差を少なくする時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムに関する。
【背景技術】
【０００２】
一般に、情報処理装置において、内部の周波数カウンタから実時間を生成する場合、内部の周波数の精度が低いと実時間に狂いが生じてくるという欠点がある。
【０００３】
従来技術として、特開平７−２４４５４０号公報がある（特許文献１参照。）。
【０００４】
これは、温度変化等の影響を受け易い市販の時計用ＩＣをそのまま使用し、簡単に高精度の時計用ＩＣとして機能させるもので、計時用ＩＣである時計回路手段の他に高精度発振手段を設け、高精度発振手段からのクロック信号をもとに高精度時計制御手段で一定時間、例えば１分を計測する。
【０００５】
この一定時間の計測毎に高精度制御手段から時計用ＩＣである時計回路手段に補正信号を送出し、時刻情報の補正動作を行わせる。これによって高精度発振手段の精度で時計回路手段を動作させる。
【０００６】
また、従来技術として、特開平１１−６８８８号公報がある（特許文献２参照。）。
【０００７】
これは、表示時間測定時に、タイマ割り込み要求信号のカウント回数を任意に可変とすることで、表示時間誤差を補正し、性能を向上させることにある。予め定められた所定周期を有する第１のシステムクロックでプログラムを動作させ、周期に誤差を有する第２のシステムクロックでタイマを動作させ、タイマ割り込み要求が発生するまでの時間をプログラムにより測定し、その結果から第２のシステムクロックの発信周波数を算出する。
【０００８】
第２のシステムクロックの発信周波数を基にタイマ割り込み要求信号カウント回数とソフトウェアウェイト回数を設定し、タイマ割り込み要求信号をタイマ割り込み要求信号カウント回数分カウントすると共に、ソフトウェアウェイトをソフトウェアウェイト回数分実行し、微調整するように構成した。
【０００９】
また、従来技術として、特開２００２−７３２０４号公報がある（特許文献３参照。）。
【００１０】
これは、外部時計の刻みに依存することなく、また補正からの経過時間によらずに、インターバルタイマからの割込みと時刻更新時間との関係を崩すことなく、システム時刻を外部時刻に対して所定の誤差内に保つもので、誤差検出機構により外部時刻とシステム時刻との誤差範囲を検出し、インターバルタイマ周期変換機構により検出した誤差範囲の最大値と最小値を２つの新たなインターバルタイマ周期へ変換し、切替機構により２つの新たなインターバルタイマ周期を切替周期で必要に応じて切り替える。
【００１１】
これにより、外部時刻に対して常に一定の誤差以内にシステム時刻を保つことが可能となる。
【００１２】
また、従来技術として、特開平５−１６５５４５号公報がある（特許文献４参照。）。
【００１３】
これは、オペレーションシステムを構築した計算機におけるシステム内タイマの管理装置において、アプリケーション開発等の段階においても時刻管理機能のメンテナンスや時刻管理精度の設定等を容易化し、しかもシステム簡素化を可能とするもので、計算機におけるシステム内タイマの管理機能をアプリケーションソフトウエアを用いて構築する。
【００１４】
この管理機能では、インタフェース部を介して時計装置から外部時刻データおよび時刻設定完了通知を入力し、これらの情報に基づいて所定の処理を選択する。つまり、外部時刻とシステム時刻の誤差に拘わらずに外部時刻をシステム時刻に取り込む時刻設定処理や、外部時刻を基準としてシステム内タイマの時刻を補正する補正処理、異常警報等の異常処理のいずれかを選択する。
【００１５】
【特許文献１】特開平７−２４４５４０号公報（［要約］）
【００１６】
【特許文献２】特開平１１−６８８８号公報（［要約］）
【特許文献３】特開２００２−７３２０４号公報（［要約］）
【特許文献４】特開平５−１６５５４５号公報（［要約］）
【発明の開示】
【発明が解決しようとする課題】
【００１７】
情報処理装置において、内部の周波数カウンタから実時間を生成する場合、内部の周波数の精度が低いと実時間に狂いが生じてくるという欠点がある。
（発明の目的）
本発明の目的は、プロセッサ内部の周波数カウンタを利用して、実時間を生成する場合に、外部からの割り込みをトリガとして補正値を生成することで実時間の誤差を少なくする時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムを提供することにある。
【課題を解決するための手段】
【００１８】
第１の発明の時刻補正制御回路は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする。
【００１９】
第２の発明の時刻補正制御方法は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【００２０】
第３の発明の時刻補正制御用プログラムは、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタの値と前記保持レジスタの値との差分値を前記定数レジスタの値により除算することで周波数カウンタの補正を行い補正値を算出し、前記補正値を前記補正値レジスタに格納し、前記実時間変換回路が前記周波数カウンタの周波数カウンタの値を読み出し、前記補正値レジスタに格納した前記補正値により前記読み出した周波数カウンタの値を補正し、前記補正された前記周波数カウンタの値を実時間に変換し、前記変換された実時間を前記時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるためのプログラム。
【００２１】
第４の発明の時刻補正制御回路は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする。
【００２２】
第５の発明の時刻補正制御方法は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【００２３】
第６の発明の時刻補正制御用プログラムは、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるためのプログラム。
【００２４】
第７の発明の時刻補正制御回路は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする。
【００２５】
第８の発明の時刻補正制御方法は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【００２６】
第９の発明の時刻補正制御用プログラムは、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を取り、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されている前記読み込んだレジスタの値と、前記先に差分を取った現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値との差分のさらなる差分をとり、前記さらなる差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるためのプログラム。
【００２７】
第１０の発明の時刻補正制御回路は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備え、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする。
【００２８】
第１１の発明の時刻補正制御方法は、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御方法であって、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出すことを特徴とする時刻補正制御方法。
【００２９】
第１２の発明の時刻補正制御用プログラムは、割り込み信号を発生する割り込み信号回路と、前記割り込み信号回路からの割り込み信号を受信して補正値の生成を制御する制御回路と、プロセッサを歩進するためのクロックを発生するプロセッサクロックと、前記プロセッサクロックの動作周波数により歩進する周波数カウンタと、前記割り込み信号回路からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタと、前回の割り込み時の前記周波数カウンタの値を格納する保持レジスタと、前記定数レジスタと前記周波数カウンタと前記保持レジスタから補正値を生成する補正値生成回路と、前記補正値生成回路で生成した補正値を格納する補正値レジスタと、前記周波数カウンタと前記補正値レジスタから実時間を生成する実時間変換回路と、前記実時間変換回路により生成された実時間の変換結果を格納する時刻格納レジスタと、ソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す実時間読み出し回路とを備えた時刻補正制御回路における時刻補正制御処理において、前記制御回路は前記割り込み信号回路から送られてくる一定間隔での割り込み信号を受信し、割り込み信号毎に、前記補正値生成回路を起動し、前記補正値生成回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値を読み込み、前記補正値生成回路は読み込んだ前記周波数カウンタにカウントアップされている現在の周波数カウンタ値と前記保持レジスタに保持されているレジスタの値の差分を第１の演算レジスタに値Ｘ１として格納し、前記制御回路は前記周波数カウンタにカウントアップされている現在の周波数カウンタ値を保持レジスタに格納し、前記保持レジスタに格納した周波数カウンタ値を次の割り込み発生時の、前回の割り込み時の周波数カウンタ値とし、前記補正値生成回路は前記定数レジスタに保持されている割り込み間隔に相当する予め時刻補正制御回路として設定されたレジスタの値を読み込み、前記補正値生成回路は前記定数レジスタに設定されているレジスタの値と第１の演算レジスタの値Ｘ１の差分をとり、前記差分を定数レジスタのレジスタの値で割り１カウンタ当たりの補正値を算出し、前記算出した補正値を補正値として前記補正値レジスタに格納し、前記実時間変換回路は、現在の周波数カウンタから誤差のある周波数カウンタの値Ｘ２を読み出し、第２の演算レジスタに値Ｘ２として格納し、実時間変換回路は、誤差のない補正された周波数カウンタ値Ｙを得るために、補正値を補正値レジスタから読み出し、Ｙ＝Ｘ２／（１＋補正値）により誤差のある周波数カウンタの値Ｘ２を補正することにより誤差のない補正された周波数カウンタ値Ｙに変換し、前記実時間変換回路は、前記周波数カウンタ値Ｙを実時間への変換係数で割り実時間を算出し、前記算出した実時間を時刻格納レジスタに格納し、前記実時間読み出し回路を経てソフトウェアが実時間を必要とするとき前記時刻格納レジスタから実時間を読み出す処理をコンピュータに実行させるためのプログラム。
【発明の効果】
【００３０】
本発明は、プロセッサ内部の周波数カウンタを利用して、実時間を生成する場合に、外部からの割り込みをトリガとして補正値を生成することで精度を向上できるという効果がある。
【発明を実施するための最良の形態】
【００３１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００３２】
図１は本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態を示すブロック図である。
【００３３】
図１を参照すると、本発明の時刻補正制御回路は、外部で割り込み信号を発生する割り込み信号回路１０と、割り込み信号回路１０からの割り込み信号を受信する制御回路１と、プロセッサ（図示されてない）を歩進するためのクロックを発生するプロセッサクロック９と、プロセッサクロック９の動作周波数により歩進する周波数カウンタ２と、割り込み信号回路１０からの割り込み間隔に応じた周波数カウント値を保持する定数レジスタ３と、前回の割り込み時の周波数カウンタ２の値を格納する保持レジスタ４と、定数レジスタ３と周波数カウンタ２と保持レジスタ４から補正値を生成する補正値生成回路５と、補正値生成回路５で生成した補正値を格納する補正値レジスタ６と、周波数カウンタ２と補正値レジスタ６から実時間を生成する実時間変換回路７と、実時間変換回路７により生成された実時間の変換結果を格納する時刻格納レジスタ８と、ソフトウェアが実時間を必要とするとき時刻格納レジスタ８から実時間を読み出す実時間読み出し回路１１から構成されている。
【００３４】
尚、割り込みをトリガとした補正方法は、図１では金物として説明しているが、周波数カウンタ以外の論理は、ファームウェアでもよく特に限定はしない。
【００３５】
割り込みにより時刻補正ファームウェアを起動して補正値を生成することも包含している。
【００３６】
次に、本発明を実施するための最良の形態の動作について、図１、図２、および図３を参照して説明する。
【００３７】
図２は本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻補正の動作を示す流れ図である。
【００３８】
図３は本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻変換の動作を示す流れ図である。
【００３９】
制御回路１は、プロセッサの外部からの割り込み信号回路１０からの割り込み信号である信号線１０１を受信して補正値の生成を制御する回路である。
【００４０】
割り込み信号線１０１は、外部の高精度なタイマで創出される割り込み信号回路１０から送られてくる一定間隔での割り込み指示である。
【００４１】
周波数カウンタ２は、プロセッサを歩進させるプロセッサクロック９からのクロックによりカウントアップするフリーランニングのレジスタである。
【００４２】
定数レジスタ３は割り込み信号線１０１の割り込み間隔に応じた周波数カウンタの値を格納するレジスタである。
【００４３】
この定数レジスタ３に格納される周波数カウンタの値はプロセッサクロック９からのクロックにより作成されるカウンタや実時間の補正を行うための基準となるもので、極めて高精度な値で、正確な割り込み間隔を表す周波数カウント値である。
【００４４】
この定数レジスタ３の周波数カウント値は予め正確な割り込み間隔として決定された値（狂いのない絶対時間に相当もの）が固定的な基準値として定数レジスタ３に設定されている。
【００４５】
保持レジスタ４は、割り込み信号線１０１による割り込みイベント毎に周波数カウンタ２の周波数カウンタ値を格納するレジスタで、割り込み信号線１０１による割り込み発生する度に前回の割り込み時の周波数カウンタ２の周波数カウンタ値を格納しているものである。
【００４６】
制御回路１は、割り込み信号線１０１により、外部からの割り込み指示を受信すると制御回路１は、信号線１０２により補正値生成回路５を動作させる。
【００４７】
外部からの割り込み処理は一定間隔毎に通知され、通知される毎に図２に示す本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻補正の動作を示す流れ図の処理を行う。
【００４８】
最初に外部の割り込み回路１０から割り込み信号線１０１による割り込みが制御回路１に通知されると、制御回路１は信号線１０２により補正値生成回路５を起動する。
【００４９】
補正値生成回路５は信号線２０１により周波数カウンタ２にカウントアップされている現在の周波数カウンタ値（今回の割り込み時の周波数カウンタ値）と信号線４０１により保持レジスタ４に保持されているレジスタの値（前回の割り込み時の周波数カウンタ２の周波数カウンタ値）を読み込む。
【００５０】
補正値生成回路５は読み込んだ周波数カウンタ２にカウントアップされている現在の周波数カウンタ値と保持レジスタ４に保持されているレジスタの値の差分を演算のために補正値生成回路５の中にある一時的に保存する演算レジスタ（図示されてない）に値Ｘ１として格納します（ステップＳ２１）。
【００５１】
つぎに、制御回路１は信号線１０３により周波数カウンタ２にカウントアップされている現在の周波数カウンタ値（今回の割り込み時の周波数カウンタ値）を保持レジスタ４に格納します（ステップＳ２２）。
【００５２】
この保持レジスタ４に格納された周波数カウンタ値が次の割り込み信号線１０１による割り込みが発生した時の、前回の割り込み時の周波数カウンタ値となるのである。
【００５３】
次に、補正値生成回路５は信号線３０１により定数レジスタ３に保持されているレジスタの値を読み込む。
【００５４】
定数レジスタ３には、割り込み間隔に相当する予めシステムとしての時刻補正制御回路での設定されたカウンタ値が格納されている。
次に、補正値生成回路５はこの定数レジスタ３に設定されているカウンタ値と演算レジスタの値Ｘ１の差分をとり、この差分を定数レジスタ３のカウンタ値で割り１カウンタ当たりの補正値を算出し、この値を信号線５０１により補正値として補正値レジスタ６に格納する（ステップＳ２３）。
【００５５】
定数レジスタ３には、割り込み間隔に相当する予めシステムとして設定されたカウンタ値が格納されていて、この定数レジスタ３に設定されているカウンタ値と演算レジスタの値Ｘ１の差分が、内部のカウンタと外部の割り込み間隔の差、つまり誤差となります。
【００５６】
この誤差を定数レジスタ３の値で割ると１カウンタ当たりの補正値が算出できます。
【００５７】
これらのステップＳ２１、ステップＳ２２、およびステップＳ２３の動作をさらに詳しく説明すると、補正値生成回路５は周波数カウンタ２の周波数カウンタ値と前回の割り込み時の周波数カウント値を格納している保持レジスタ４の周波数カウント値を信号線２０１と信号線４０１により受け取り、差分値Ｘ１（誤差分）を生成する。
【００５８】
生成した差分値Ｘ１（誤差分）と定数レジスタ３の値（基準値）の差分値を取り、この差分値を定数レジスタ３の値（基準値）で除算することで１カウンタ当たりの補正値を算出し、その結果を信号線５０１により補正値レジスタ６に出力する。
【００５９】
制御回路１から信号線１０４の指示により、補正値は補正値レジスタ６に格納される。
【００６０】
また信号線１０３の指示によりこの時の周波数カウンタ２の周波数カウンタ値が保持レジスタ４に格納される。
【００６１】
つぎに、実時間を得るための時刻への変換は、図３の本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻変換の動作を示す流れ図を参照して説明する。
【００６２】
実時間変換回路７は、まず、信号線２０２により現在の周波数カウンタ２から周波数カウンタ値Ｘ２を読み出し、実時間変換回路７の中にある一時的に保存する演算レジスタ（図示されてない）に値Ｘ２として格納します（ステップＳ３１）。
【００６３】
次に、その演算レジスタの値Ｘ２を補正し、誤差のない補正された周波数カウンタ値Ｙを得るために、実時間変換回路７は、信号線６０１により補正値を補正値レジスタ６から読み出し、Ｙ＝Ｘ２／（１＋補正値）により補正することにより変換された誤差のない補正された周波数カウンタ値Ｙを得ることができる（ステップＳ３２）。
【００６４】
次に、実時間変換回路７は、この周波数カウンタ値Ｙを実時間への変換係数Ｔで割り実時間を算出し、信号線７０１で時刻格納レジスタ８に格納する（ステップＳ３３）。
【００６５】
以上のようにして時刻格納レジスタ８に補正され実時間として格納され値を信号線８０１により実時間の必要時ソフトウェアが実時間読み出し回路１１がら読み出すことができる。
【００６６】
以上、実時間を得るための時刻への変換を実際の数値を上げて説明すると、
例えば
周波数カウンタ        ：５２０サイクル
保持レジスタ          ：３００サイクル
定数レジスタ          ：２００サイクル
とすると、
割り込み間隔は定数レジスタの値：２００サイクルから２００サイクルに１回となります。
この時に周波数カウンタ２の現在の周波数カウンタ値：５２０サイクルと保持レジスタ４に保持されているレジスタの値：３００サイクルの差分値Ｘは５２０−３００＝２２０サイクルとなり、外部の割り込み２００サイクルに対して内部のプロセッサクロック９からのクロックによりカウントアップする周波数カウンタ２の周波数カウンタ値は２２０サイクルであり２０サイクルのズレが発生していることになります。
【００６７】
このときの補正値は２０／２００＝０．１となります。
【００６８】
次に、現在の周波数カウンタ値がＸ＝８８０サイクルとすると、実時間への変換では、周波数カウンタ値：Ｘ＝８８０サイクルを読み出して補正し、Ｙ＝８８０／（１＋０．１）＝８００サイクルによる補正後の正確な周波数カウンタ値：Ｙ＝８００サイクルが得られることになる。
【００６９】
補正がない場合はＸ＝８８０サイクルで補正後はＹ＝８００サイクルとなり８０サイクルの誤差が発生していることになります。
【００７０】
ここで、実時間への変換係数ＴをＴ＝１０００サイクル/秒（１サイクルは０．００１秒）とすると補正後の正確な周波数カウンタ値：Ｙ＝８００サイクルであることから実時間がＹ／Ｔ＝８００／１０００＝０．８秒として変換され正確な実時間が得られることになる。
【００７１】
次に、本発明を第２の実施の形態について図面を参照して詳細に説明する。
【００７２】
図１は本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態を示すブロック図であり、本発明の第２の実施の形態についても最良の形態と同じ構成であり図１を参照して詳細に説明する。
【００７３】
次に、本発明を実施するための第２の形態の動作について、図１、図２、および図３を参照して説明する。
【００７４】
制御回路１は、プロセッサの外部からの割り込み信号回路１０からの割り込み信号である信号線１０１を受信して補正値の生成を制御する回路である。
【００７５】
割り込み信号線１０１は、外部の高精度なタイマで創出される割り込み信号回路１０から送られてくる一定間隔での割り込み指示である。
【００７６】
周波数カウンタ２は、プロセッサを歩進させるプロセッサクロック９からのクロックによりカウントアップするフリーランニングのレジスタである。
【００７７】
定数レジスタ３は割り込み信号線１０１の割り込み間隔に応じた周波数カウンタの値を格納するレジスタである。
【００７８】
この定数レジスタ３に格納される周波数カウンタの値はプロセッサクロック９からのクロックにより作成されるカウンタや実時間の補正を行うための基準となるもので、極めて高精度な値で、正確な割り込み間隔を表す周波数カウント値である。
【００７９】
この定数レジスタ３の周波数カウント値は予め正確な割り込み間隔として決定された値（狂いのない絶対時間に相当もの）が固定的な基準値として定数レジスタ３に設定されている。
【００８０】
保持レジスタ４は、割り込み信号線１０１による割り込みイベント毎に周波数カウンタ２の周波数カウンタ値を格納するレジスタで、割り込み信号線１０１による割り込み発生する度に前回の割り込み時の周波数カウンタ２の周波数カウンタ値を格納しているものである。
【００８１】
制御回路１は、割り込み信号線１０１により、外部からの割り込み指示を受信すると制御回路１は、信号線１０２により補正値生成回路５を動作させる。
【００８２】
外部からの割り込み処理は一定間隔毎に通知され、通知される毎に図２に示す本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻補正の動作を示す流れ図の処理を行う。
【００８３】
最初に外部の割り込み回路１０から割り込み信号線１０１による割り込みが制御回路１に通知されると、制御回路１は信号線１０２により補正値生成回路５を起動する。
【００８４】
補正値生成回路５は信号線２０１により周波数カウンタ２にカウントアップされている現在の周波数カウンタ値（今回の割り込み時の周波数カウンタ値）と信号線４０１により保持レジスタ４に保持されているレジスタの値（前回の割り込み時の周波数カウンタ２の周波数カウンタ値）を読み込む。
【００８５】
補正値生成回路５は読み込んだ周波数カウンタ２にカウントアップされている現在の周波数カウンタ値と保持レジスタ４に保持されているレジスタの値の差分を取り一時的に値Ｘ１として補正値生成回路５に保留します（ステップＳ２１）。
【００８６】
つぎに、制御回路１は信号線１０３により周波数カウンタ２にカウントアップされている現在の周波数カウンタ値（今回の割り込み時の周波数カウンタ値）を保持レジスタ４に格納します（ステップＳ２２）。
【００８７】
この保持レジスタ４に格納された周波数カウンタ値が次の割り込み信号線１０１による割り込みが発生した時の、前回の割り込み時の周波数カウンタ値となるのである。
【００８８】
次に、補正値生成回路５は信号線３０１により定数レジスタ３に保持されているレジスタの値を読み込む。
【００８９】
定数レジスタ３には、割り込み間隔に相当する予めシステムとしての時刻補正制御回路での設定されたカウンタ値が格納されている。
次に、補正値生成回路５はこの定数レジスタ３に設定されているカウンタ値とステップＳ２１で一時的に値Ｘ１として補正値生成回路５に保留した値Ｘ１とのさらなる差分をとり、このさらなる差分を定数レジスタ３のカウンタ値で割り１カウンタ当たりの補正値を算出し、この値を信号線５０１により補正値として補正値レジスタ６に格納する（ステップＳ２３）。
【００９０】
定数レジスタ３には、割り込み間隔に相当する予めシステムとして設定されたカウンタ値が格納されていて、この定数レジスタ３に設定されているカウンタ値と演算レジスタの値Ｘ１の差分が、内部のカウンタと外部の割り込み間隔の差、つまり誤差となります。
【００９１】
この誤差を定数レジスタ３の値で割ると１カウンタ当たりの補正値が算出できます。
【００９２】
これらのステップＳ２１、ステップＳ２２、およびステップＳ２３の動作をさらに詳しく説明すると、補正値生成回路５は周波数カウンタ２の周波数カウンタ値と前回の割り込み時の周波数カウント値を格納している保持レジスタ４の周波数カウント値を信号線２０１と信号線４０１により受け取り、差分値Ｘ１（誤差分）を生成する。
【００９３】
生成した差分値Ｘ１（誤差分）と定数レジスタ３の値（基準値）のさらなる差分値を取り、このさらなる差分値を定数レジスタ３の値（基準値）で除算することで１カウンタ当たりの補正値を算出し、その結果を信号線５０１により補正値レジスタ６に出力する。
【００９４】
制御回路１から信号線１０４の指示により、補正値は補正値レジスタ６に格納される。
【００９５】
また信号線１０３の指示によりこの時の周波数カウンタ２の周波数カウンタ値が保持レジスタ４に格納される。
【００９６】
つぎに、実時間を得るための時刻への変換は、図３の本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻変換の動作を示す流れ図を参照して説明する。
【００９７】
実時間変換回路７は、まず、信号線２０２により現在の周波数カウンタ２から周波数カウンタ値Ｘ２を読み出します（ステップＳ３１）。
【００９８】
次に、その演算レジスタの値Ｘ２を補正し、誤差のない補正された周波数カウンタ値Ｙを得るために、実時間変換回路７は、信号線６０１により補正値を補正値レジスタ６から読み出し、Ｙ＝Ｘ２／（１＋補正値）により補正することにより変換された誤差のない補正された周波数カウンタ値Ｙを得ることができる（ステップＳ３２）。
【００９９】
次に、実時間変換回路７は、この周波数カウンタ値Ｙを実時間への変換係数Ｔで割り実時間を算出し、信号線７０１で時刻格納レジスタ８に格納する（ステップＳ３３）。
【０１００】
以上のようにして時刻格納レジスタ８に補正され実時間として格納され値を信号線８０１により実時間の必要時ソフトウェアが実時間読み出し回路１１がら読み出すことができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態を示すブロック図である。
【図２】本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻補正の動作を示す流れ図である。
【図３】本発明の時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラムの一実施の形態の時刻変換の動作を示す流れ図である。
【符号の説明】
【０１０２】
１    制御回路
２    周波数カウンタ
３    定数レジスタ
４    保持レジスタ
５    補正値生成回路
６    補正値レジスタ
７    実時間変換回路
８    時刻格納レジスタ
９    プロセッサクロック
１０    割り込み信号回路
１１    実時間読み出し回路
【図１】
2005070932.tif 000003
【図２】
2005070932.tif 000004
【図３】
2005070932.tif 000005