(57)【特許請求の範囲】
【請求項１】
基準となる第１のクロックを出力する第１のクロック発振手段と、
前記第１のクロック発振手段とは異なる基準となる第２のクロックを出力する第２のクロック発振手段と、
自装置の動作中に、前記第１のクロックと前記第２のクロックのいずれかのクロックに切替えて、切替えた前記クロックをタイマ発生部に出力する入力クロック選択部と、
前記クロックでカウントするパルス数を測定する入力クロック測定部と、
前記クロックの切替え前および前記クロックが切替えられた際のそれぞれで、前記入力クロック測定部が、割り込み信号を受け付けた時点から次の割り込み信号を受け付けるまでの期間にカウントする前記クロックの前記パルス数を比較して、前記パルス数の過不足の累積を行うクロック過不足累積部と、
前記入力クロック測定部が測定した各前記期間中の前記パルス数の比と前記過不足を示す差とを算出するパルス数比率算出部と、
前記比と前記差とから前記割り込み信号を出力する条件の閾値を与えるタイマ閾値補正部と、
前記入力クロック選択部からのクロックでカウントするカウンタを有し、前記閾値による前記期間ごとに前記割り込み信号を出力するタイマ発生部と、
を備え、
前記入力クロック測定部は、前記クロックを受け取り、前記タイマ発生部が出力した第１の割り込み信号と次の周期である第２の割り込み信号との前記期間に受け取った前記クロックのパルス数を計側して第１の測定値とし、前記第１の測定値を測定した後の次の期間の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とを前記パルス数比率算出部に出力し、
前記クロック過不足累積部は、前記第１の測定値と前記第２の測定値との差に、前の期間で得られた第１の累積値を加算して第２の累積値を求め、次の前記期間の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値をクロック過不足数として前記タイマ閾値補正部に出力し、
前記パルス数比率算出部は、さらに前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との前記比と、を前記タイマ閾値補正部に出力する判断部
を含み、
前記タイマ閾値補正部は、前記判断部から、前記判断情報と前記比の情報を受け取り、前記カウンタの前記閾値を算出して当該閾値を記憶し、当該閾値を前記タイマ発生部に出力し、
前記タイマ発生部は、前記カウンタのカウント値を前記タイマ閾値補正部が出力した前記閾値に設定して前記カウンタを、前記クロックでカウントダウンさせて、前記カウント値が０になった時に、前記タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号を前記入力クロック測定部に出力する、
タイマ補正装置。
【請求項２】
ソフトウエアにより、前記比を求める複数の計算式の中から、何れか一つの計算式を選択して計算する請求項１に記載のタイマ補正装置。
【請求項３】
前記第２のクロック発振手段は、プログラムにより、周波数を任意に変更することを特徴とした請求項１または請求項２に記載のタイマ補正装置。
【請求項４】
基準となる第１のクロックを発振させ、
前記第１のクロックとは異なる基準となる第２のクロックを発振させ、
自装置の動作中に、前記第１のクロックと前記第２のクロックのいずれかのクロックに切替えて、切替えた前記クロックをカウントするカウンタを有するタイマ発生部に出力し、
前記クロックを受け取り、第１の割り込み信号と次の周期である第２の割り込み信号との期間に受け取った前記クロックのパルス数を測定して第１の測定値とし、前記第１の測定値を測定した後の次の期間の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とを出力し、
前記第１の測定値と前記第２の測定値との差に、前の期間で得られた第１の累積値を加算して第２の累積値を求め、次の前記期間の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値を出力し、
前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との比を出力し、
前記判断情報と前記比の情報を受け取り、前記カウンタの閾値を算出して当該閾値を記憶し、当該閾値を出力し、
前記カウンタのカウント値を前記出力した前記閾値に設定して前記カウンタを、前記クロックでカウントダウンさせて、カウント値が０になった時に、前記タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号を出力する、タイマ補正方法。
【請求項５】
前記比を求める複数の計算式の中から、何れか一つの前記計算式を選択する請求項４に記載のタイマ補正方法。
【請求項６】
前記第２のクロックの周波数を任意に変更することを特徴とした請求項４または請求項５に記載のタイマ補正方法。
【請求項７】
基準となる第１のクロックを発振させ、
前記第１のクロックとは異なる基準となる第２のクロックを発振させ、
自装置の動作中に、前記第１のクロックと前記第２のクロックのいずれかのクロックに切替えて、切替えた前記クロックをカウントするカウンタを有するタイマ発生部に出力し、
前記クロックを受け取り、第１の割り込み信号と次の周期である第２の割り込み信号との間に受け取った前記クロックのパルス数を測定して第１の測定値とし、前記第１の測定値を測定した後の次の期間の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とを出力し、
前記第１の測定値と前記第２の測定値との差に、前の期間で得られた第１の累積値を加算して第２の累積値を求め、次の前記期間の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値を出力し、
前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との比を出力し、
前記判断情報と前記比の情報を受け取り、前記カウンタの閾値を算出して当該閾値を記憶し、当該閾値を出力し、
前記カウンタのカウント値を前記出力した前記閾値に設定して前記カウンタを、前記クロックでカウントダウンさせて、カウント値が０になった時に、タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号を出力する処理をコンピュータに実行させるタイマ補正プログラム。
【請求項８】
前記比を求める複数の計算式の中から、何れか一つの前記計算式を選択する処理を行う請求項７に記載のタイマ補正プログラム。
【請求項９】
前記第２のクロックの周波数を任意に変更する処理を行う請求項７または請求項８に記載のタイマ補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマ補正装置、タイマ補正方法及びタイマ補正プログラムに関する。
【背景技術】
【０００２】
情報機器内の時計の機能は情報処理を行う基本の動作、オペレーティングシステム内のさまざまな定期処理に使用されている。また、ファイルの日時管理、マルチタスクやタイムシェアリングシステムのプロセスを切り換える起点としてこの時計が用いられている。さらに、周辺機器等のデバイスのドライバなどが当該機器の故障により処理要求がタイムアウトしたと判断するために、この時計が用いられている。したがって、時計の時刻を正確に保つことが求められる。
【０００３】
例えば、特許文献１には、システムのクロックの周波数を変更できる情報処理装置において、システムのクロックの周波数を切り替える前のパルスの計数値と周波数を切り替えた後のパルスの計数値との比を求め、これに或る定数を乗算してクロック周波数を変更した後の計数値を補正することで時計を補正する技術が記載されている。
【０００４】
特許文献２には、第１のクロックのカウントし、クロックパルス数を測定し、入力クロックが第１のクロックから第２のクロックに変更された際、第１のクロックのパルス数と第２のクロックのパルス数との比を基にしてタイマカウンタの閾値を補正する。そして、次回のタイマ割込みからは、補正された新タイマカウンタの閾値を用いることで、タイマ割込みが発生する頻度を入力クロック変更前と等しくし、タイマ割込み発生頻度を入力クロックの切替え前と同一になるよう調整する技術が記載されている。
【０００５】
特許文献３には、システムにクロックを供給する第１のクロックの周期を、第１のクロックに比較してより精度の高い第２のクロックを用いて予め測定し、得られた測定値を用いて第１のクロックで動作させた時計の時間を調整する技術が記載されている。
【０００６】
特許文献４には、実クロックを受け取って稼働するタイマを、所定のクロック変換係数に比例させた仮想タイマに変換し、変換された仮想タイマのクロックによりアプリケーションを実行させることで、供給するクロックの変更による時間が乱れる影響をソフト的に吸収する技術が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０８−２９２８２２号公報
【特許文献２】特開２０１３−１１７７８５号公報
【特許文献３】特開平１０−０４９２５１号公報
【特許文献４】特開２００７−０３４６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の技術は、 クロック周波数の変更に伴ってその都度適切なソフトウェアタイマ値に設定することができるがクロック周波数を変更する過程でパルス数を増減することで生じるカウントアップ過不足、すなわち時刻がずれることを考慮していない。その為、特許文献１の技術は、タイマ値を調整することでインテリジェントタイマの発生間隔はクロック周波数変更前と等しくできるが、カウント過不足数の累積値を保存する手段が無く、インテリジェントタイマの発生タイミング、すなわち時刻をクロック周波数切り替え前と等しくする手段が無い。その為、特許文献１の技術はタイマ発生タイミングをクロック周波数変更前と等しくすることが出来ないという問題がある。
【０００９】
特許文献２に記載の技術は、タイマ割込み発生頻度を入力クロック切り替え前と同一になるよう調整できる。この時、入力クロックが高速になった場合はタイマ閾値が増加し、逆に入力クロックが低速になった場合にタイマ閾値が減少する。しかし特許文献２の技術においては、タイマ閾値補正によってタイマ割込み発生頻度はクロック切り替え前と同一頻度に調整されるが、タイマ割込み発生タイミングがクロックを切り替える前のタイマ割込み発生タイミングと一致しないという問題がある。
【００１０】
特許文献３及び特許文献４に記載の技術には、クロック周期の精度を高める技術が記載されているが、クロックを切り替える前と後のタイマ割込み発生タイミングを一致させることが出来ないという問題がある。
【００１１】
本発明の目的は、上述した問題点を解決するタイマ補正装置、タイマ補正方法及びタイマ補正プログラムを提供することにある。
【００１２】
具体的に、本発明は、システムクロックの周波数変更の影響で乱れてしまう時計が出力するパルスの周期及びそのタイミングを、予め定めた基準タイミングに一致させることを主たる目的とする。
【課題を解決するための手段】
【００１３】
本発明による一形態のタイマ補正装置は、基準となる周波数のクロックを出力する第１のクロック発振手段と、前記第１のクロック発振手段とは異なる周波数を出力する第２のクロック発振手段と、第１のクロックと第２のクロックのいずれか一つを選択して、選択したクロックをタイマ発生部に出力する入力クロック選択部と、基準クロックでカウントするパルス数を測定する入力クロック測定部と、前記クロック測定部がカウントする各周期のパルス数を比較して、前記パルス数の過不足の累積を行うクロック過不足累積部と、前記入力クロック測定部が測定したパルス数の比と差を算出するパルス数比率算出部と、前記パルス数の比と前記差とからカウンタが割り込み信号を出力する条件の閾値を与えるタイマ閾値補正部と、前記入力クロック選択部からのクロックでカウントし、前記閾値による前記割り込み信号を出力するタイマ発生部と、を備える。
【００１４】
入力クロック測定部は、第１のクロックを受け取り、前記タイマ発生部が出力した第１の割り込み信号と次の周期である第２の記割り込み信号との間に受け取った前記第１のクロックのパルス数を計側して第１の測定値とし、前記第１の測定値を測定した後の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とをパルス数比率算出部に出力し、前記クロック過不足累積部は、前記第１の測定値と前記第２の測定値との差に前の周期で得られた第１の累積値とを加算して第２の累積値を求め、次の周期の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値をクロック過不足数として前記タイマ閾値補正部に出力し、前記パルス数比率算出部は、前記第１の測定値を記憶する第１の記憶部と、前記第２の測定値を記憶する第２の記憶部と、前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との比と、をタイマ閾値補正部に出力する判断部と、を含み、前記タイマ閾値補正部は、前記パルス数比率算出部の前記判断部から、前記判断情報と前記比の情報を受け取り、タイマ発生部のカウンタの前記閾値を算出して当該閾値を記憶し、当該閾値をタイマ発生部に出力し、前記タイマ発生部は、前記入力クロック選択部が出力するクロックでカウントを行い、カウント値を前記タイマ閾値補正部が出力した閾値に設定して当該カウンタをカウントダウンさせて、カウンタが０になった時に、前記タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号と、を前記クロック測定部及び外部装置に出力する。
【００１５】
本発明による一形態のタイマ補正方法は、基準となる周波数である第１のクロックを発振し、前記第１のクロックとは異なる周波数の第２のクロックを発振させ、第１のクロックを受け取り、第１の割り込み信号と次の周期である第２の記割り込み信号との間に受け取った前記第１のクロックのパルス数を測定して第１の測定値とし、前記第１の測定値を測定した後の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とをパルス数比率算出部に出力し、前記第１の測定値と前記第２の測定値との差に前の周期で得られた第１の累積値とを加算して第２の累積値を求め、次の周期の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値を出力し、前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との比を出力し、前記判断情報と前記比の情報を受け取り、カウンタの前記閾値を算出して当該閾値を記憶し、当該閾値を出力し、前記入力クロック選択部が出力するクロックでカウントを行い、カウント値を閾値に設定して当該カウンタをカウントダウンさせて、カウンタが０になった時に、前記タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号と、を前記クロック測定部及び外部装置に出力する。
【００１６】
本発明による一形態のタイマ補正プログラムは、基準となる周波数である第１のクロックを発振させ、前記第１のクロックとは異なる周波数の第２のクロックを発振させ、第１のクロックを受け取り、第１の割り込み信号と次の周期である第２の記割り込み信号との間に受け取った前記第１のクロックのパルス数を測定して第１の測定値とし、前記第１の測定値を測定した後の測定値を第２の測定値として、前記第１の測定値と前記第２の測定値とをパルス数比率算出部に出力し、前記第１の測定値と前記第２の測定値との差に前の周期で得られた第１の累積値とを加算して第２の累積値を求め、次の周期の加算で、前記第１の累積値に前記第２の累積値を代入して再帰的に算出した前記第２の累積値を出力し、前記第１の測定値と前記第２の測定値が一致するか否かの判断情報と、前記第１の測定値と前記第２の測定値との比を出力し、前記判断情報と前記比の情報を受け取り、カウンタの前記閾値を算出して当該閾値を記憶し、当該閾値を出力し、前記入力クロック選択部が出力するクロックでカウントを行い、カウント値を閾値に設定して当該カウンタをカウントダウンさせて、カウンタが０になった時に、前記タイマ発生部から、前記第１の割り込み信号及び前記第２の割り込み信号と、を前記クロック測定部及び外部装置に出力する処理をコンピュータに実行させる。
【発明の効果】
【００１７】
本発明は、周波数の異なる複数のクロック発振装置を搭載し、その何れか１つを選択してタイマに供給する場合に、クロックの周波数が任意に切替わっても、タイマが出力する信号を、基準となるクロックにより生成したタイマの周期及び信号が変化するタイミングを一致させることが出来る。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施の形態におけるタイマ補正装置１のブロック図である。
【図２】本発明のタイマ補正装置１の動作を示すフロー図である。
【図３Ａ】本発明のタイマ補正装置１の動作のタイミングチャート図である。
【図３Ｂ】本発明のタイマ補正装置１の動作のタイミングチャート図である。
【図４Ａ】本発明のタイマ補正装置１の状態を規定する数値の計算式を示す図である。
【図４Ｂ】本発明のタイマ補正装置１の状態を規定する数値の計算式を示す図である。
【発明を実施するための形態】
【００１９】
［第１の実施の形態］
本発明の第１の実施の形態について図面を参照して説明する。
図１は、本発明の第１の実施の形態のタイマ補正装置１を示す図である。
【００２０】
タイマ補正装置１は、第１のクロック発振部１０と、第２のクロック発振部１１と、クロック測定部１３と、入力クロック選択部１２と、パルス数比率算出部１４と、クロック過不足累積部１５と、タイマ閾値補正部１６と、タイマ発生部１７と、を備えている。
【００２１】
パルス数比率算出部１４は、第１の記憶部３と第２の記憶部４と判断部５を含む。
【００２２】
第１のクロック発振部１０は、クロック測定部１３と入力クロック選択部１２に接続される。第２のクロック発振部１１は、入力クロック選択部１２に接続される。第１のクロック発振器１０及び第２のクロック発振器１１は、２以上の任意の個数を搭載することが可能である。また、第１のクロック発振器１０及び第２のクロック発振器１１の周波数が可変できることでもよい。
【００２３】
入力クロック選択部１２は、第１のクロック発振部１０あるいは第２のクロック発振部１１のいずれかのパルスを選択して、タイマ発生部１７に供給する。タイマ補正装置１の初期状態では第１のクロック発振部１０が選択されているとする。
【００２４】
パルス数比率算出部１４およびクロック過不足累積部１５は、タイマ閾値補正部１６に接続される。パルス数比率算出部１４はクロック過不足累積部１５に接続される。クロック測定部１３はパルス数比率算出部１４に接続される。
【００２５】
タイマ閾値補正部１６はタイマ発生部１７に接続される。タイマ閾値補正部１６が補正タイマ閾値１１０をタイマ発生部１７に出力する。タイマ発生部１７は、入力クロック選択部１２から受け取ったクロックをカウントして、予め定めた閾値に等しくなると割り込み信号１００を出力する。タイマ発生部１７から出力された割り込み信号１００は、クロック測定部１３及び外部装置に供給される。外部装置は、コンピュータ等の情報処理装置である。本発明は、図１の構成に限定されるものではない。
【００２６】
タイマ補正装置１の動作を図２に示すフローチャートを用いて説明する。
【００２７】
第１のクロック発振部１０及び第２のクロック発振部１１が電源の投入やオペレータ等の操作により起動されて各々の周波数で発振を開始する（Ｓ１０）。
【００２８】
第１のクロック発振部１０及び第２のクロック発振部１１の信号は、入力クロック選択部１２に出力される。入力クロック選択部１２は、いずれか１つの信号を選択し、タイマ発生部１７に供給する（Ｓ２０）。
【００２９】
クロック測定部１３が第１のクロック発振部１０からのクロックの測定を開始する（Ｓ３０）。
【００３０】
一方タイマ発生部１７は、入力クロック選択部１２が選択したクロックを基にカウントを行う。タイマ発生部１７は、タイマ発生部１７のカウント数が、予め設定したタイマ閾値に達した時、タイマ割込み信号１００を出力する（Ｓ４０）。
【００３１】
ここで、本発明の第１の実施の形態のタイマ補正装置１において電源投入後に行われる初期化段階を経て定常作状態になった時点のクロック測定部１３によるパルス数の測定値をＸ０とする。Ｘ０はパルス数比率算出部１４に備えられた第１の記憶部３に記憶される。また、Ｘ０の観測が終了し、第１の記憶部３にＸ０が記憶された後に、同じくクロック測定部１３により測定したパルス数の測定値をＸｎとする。第２の記憶部４がＸｎを記憶する。また、Ｘｎは、判断部５およびクロック過不足部１５に伝達されて、さらにクロック過不足部１５からタイマ閾値補正部１６に伝達される。なお引数ｎは割り込み信号１００と次に発生する割り込み信号１００との間の状態を一意に区別する為に付与した整数である。例えば、タイマ補正装置が動作中のある時点を状態０と定めた場合、この状態において、クロック測定部１３のパルス数の測定値はＸ０である。同様に、状態０から状態１に当該タイマ補正装置の動作が遷移した場合のクロック測定部１３のパルス数の測定値はＸ１である。したがって、状態が順次遷移して状態ｎにおける測定値はＸｎになる。
【００３２】
タイマ発生部１７のカウント数が予め設定した閾値に達した時点で、タイマ発生部１７が割り込み信号１００を出力し、クロック測定部１３に伝達する（Ｓ５０）。
【００３３】
クロック測定部１３が割り込み信号１００を受け付けるまでにカウントした数値Ｘｎを読出してパルス数比率算出部１４に出力する（Ｓ６０）。パルス数比率算出部１６が受け取ったＸｎを第２の記憶部４に記憶する。
【００３４】
判断部５は、第１の記憶部３からＸ０と、第２の記憶部４からＸｎと、を読み出す。判断部５は、Ｘ０＝Ｘｎであるか否かの判断結果をタイマ閾値補正部１６に出力する。判断部５が、Ｘ０とＸｎとの比を算出して、タイマ閾値補正部１６に出力する（Ｓ７０）。
【００３５】
Ｘ０＝Ｘｎである場合（Ｓ７０＝Ｙｅｓ）、タイマ閾値補正部１６は、閾値を算出する為の（２）式（後述）に従って、補正タイマ閾値１１０を算出する（Ｓ８０）。
【００３６】
Ｘ０≠Ｘｎである場合（Ｓ７０＝Ｎｏ）、タイマ閾値補正部１６は、閾値を算出する為の（１）式（後述）に従って、補正タイマ閾値１１０を算出する（Ｓ９０）。
【００３７】
補正タイマ閾値１１０は、タイマ発生部１７によって、割り込み信号１００を発行する判断に用いられ、前述のタイマ閾値に上書きされる（Ｓ１００）。
【００３８】
クロック過不足累積部１５はＸ０とＸｎとの数値の差異を算出してクロック過不足累積値（Ａｎと呼ぶ）を一時記憶する。Ａｎの記憶は２世代であり、Ａｎと次の状態であるＡｎ＋１を記憶する（Ｓ１１０）。
【００３９】
その後、フローはＳ３０に戻り、クロック測定部１３の動作から、フローが繰り返される。
【００４０】
ここで、タイマ閾値補正部１６が行う計算について説明する。
【００４１】
まず、タイマ補正装置１が動作し、継続的にタイマ発生部１７から割り込み信号１１０が出力されている場合とする。割り込み信号１１０が出力された時点から次の割り込み信号１１０が出力されるまでの期間を状態と表現する。この状態にそれぞれ識別子としてｎ（整数）を付与し、ｎ番目の状態を状態ｎと呼ぶ。さらに状態ｎの期間が終了して、次に動作している状態を状態ｎ＋１と呼ぶ。本例の説明における状態の番号は、状態ｎと次の状態ｎ＋１、さらにその次の状態ｎ＋２、の様に、状態が連続していることを示す。
【００４２】
次に、算出に必要なパラメータとその内容を説明する。まず、状態０、すなわち０番目の状態におけるパルス数測定値の基準値となるＸ０と、状態ｎ、すなわち状態がｎ番目のパルス数測定値であるＸｎがある。ここで、状態０から状態Ｘｎに至るまでの、Ｘ０と各々のＸｎ（ｎ＝１からｎまでの全て）との差をそれぞれ加算してその累積値を得る。この累積値がクロック過不足数Ａｎとする。また、閾値を算出する式は２種類あり、Ｘ０とＸｎとが一致するか否かの違いによりいずれか一つの式を選択する。式の詳細は後述する。なお、本説明における、Ｘｎ、Ａｎ、後述するＹｎの引数ｎは、状態ｎにおけるそれぞれの値であることを示す。
【００４３】
まず、Ｘ０の値とＸｎとの値が不一致の場合の算出について説明する。この条件は、状態０の割り込み信号１００が発生する周期と状態ｎで割り込み信号１００が発生する周期とが異なることを意味する。そこで、まず周期を一致させる為に補正タイマ閾値１１０の計算を行う。状態ｎにおける補正タイマ閾値１１０の値をＹｎとして、次の状態ｎ＋１における補正タイマ閾値１１０の値をＹｎ＋１とすると、Ｙｎ＋１は下記の（１）式で算出する。
Ｙｎ＋１＝Ｙｎ＊Ｘ０／Ｘｎ・・・・（１）
この新たな閾値により、以後のタイマ発生部１７のカウント数が補正される。この（１）式は、基準となるカウント数であるＸ０と状態ｎにおけるカウント数であるＸｎとの比を求めて、状態ｎの時の補正タイマ閾値１１０の値に前述の比を割かけることで、クロックの周波数が変化したことによるカウント数の増減を基準値となるＸ０に割かけることで、カウント数が一致することになる。従って、最終的にはＸ０＝Ｘｎに調整される。
【００４４】
また、クロック過不足数の累積値Ａｎ＋１は、下記（３）式で算出する。
Ａｎ＋１＝Ａｎ＋Ｘ０−Ｘｎ・・・・（３）
次に、Ｘ０とＸｎとが一致している場合の算出について説明する。
【００４５】
この条件は、状態０の割り込み信号１００が発生する周期と状態ｎで割り込み信号１００が発生する周期とが一致していることを意味している。しかし、周期を一致させる為タイマの閾値を変更した結果、割り込み信号１００が出力されるタイミングが、状態０と状態ｎでは異なっている状態が存在する。それはクロック過不足数Ａｎが０ではない状態である。そこで、状態０の場合に割り込み信号１００が出力したタイミングと状態ｎの割り込み信号１００とのタイミングを一致させる為に補正タイマ閾値１１０の計算を行う。
【００４６】
状態ｎにおける補正タイマ閾値１１０の値をＹｎとして、次の状態ｎ＋１におけるタイマの時計動作に対する補正タイマ閾値１１０の値をＹｎ＋１とすると、はＹｎ＋１は下記（２）式で算出する。
Ｙｎ＋１＝Ｙｎ＊（Ｘ０＋Ａｎ）／Ｘｎ・・・・（２）
この（２）式は、Ｘ０＝Ｘｎに至った後、Ｘ０の切り替えタイミングとＸｎの切り替えタイミングとの差を補正する為にクロック過不足数ＡｎがＸ０に加算されることでパルス数の補正が行われて、Ｘｎに切替わった後にずれたタイミングの補正を考慮したタイミング補正値を算出する式である。
【００４７】
また、クロック過不足数の累積値Ａｎ＋１は、下記の（４）式で算出する。
Ａｎ＋１＝Ａｎ＋Ｘ０−Ｘｎ・・・・（４）
ここでさらに、図１に示したタイマ補正装置１の動作例を、図３Ａ及び図３Ｂのタイミングチャート図及び図４Ａ及び図４Ｂのタイマ補正装置１の状態を規定する数値の計算式を示す表を用いてより具体的に説明する。
【００４８】
図３Ａ及び図３Ｂは、第１のクロック発振部１０のクロック波形、第２のクロック発振部１１のクロック発振波形、補正タイマ閾値１１０、クロックパルスの過不足数、割り込み信号１００が発生するタイミング、本来期待される割り込み信号１００のタイミングの小各々の関係を図に表したものである。
【００４９】
図４Ａ及び図４Ｂは、クロック測定部１３が測定するクロックパルス数（Ｘ０，Ｘｎ）とクロック過不足数（Ａｎ、Ａｎ＋１）を算出する式とその値と、補正タイマ閾値１１０（Ｙｎ、Ｙｎ＋１）を算出する式とその値と、を図にしたものである。図３Ａ、図３Ｂ、に記載した状態０から状態６は図４Ａ及び図４Ｂの記載した状態０から状態６にそれぞれ対応する。
【００５０】
次に、図３Ａ、図３Ｂ、図４Ａ及び図４Ｂを用いて、割り込み信号１００の周期の補正及びタイミングを基準のタイミングと一致させる動作について、説明１から説明６の段階にわけて説明する。
【００５１】
ここで、本例の定常状態の定義について説明する。定常状態とは、タイマ補正装置１の電源が投入され、タイマ発生部１７及びクロック測定部１３に対して初期値を設定して、動作が開始されて、その後、クロック測定部１３が測定したパルス数の過渡的な変動が収束して、特定の値を連続して出力する状態に至った状態を言う。
【００５２】
（説明１）
定常状態において、タイマ発生部１７の入力クロックには、低速の第１のクロック発振部１０のクロックが選択されているとする（図３Ａ＿状態０、図４Ａ＿状態０）。この時、タイマ発生部１７が出力する割込み信号１００と次に割り込み信号１００との間に測定される第１のクロック発振部１０からのパルス数をクロック測定部１３が測定し、その値をＸ０とする。この低速の第１のクロック発振部１０のクロックによりタイマ発生部１７のカウントが実行されて割り込み信号１００を出力し、タイマ閾値補正部１６が、次回の補正タイマ閾値Ｙｎを計算する（図３Ａ＿状態１、図４Ａ＿状態１）。定常状態（本例では状態０及び状態０以前の状態が相当する）においては、第１のクロック発振部１０のパルスとタイマ発生部１７に入力するクロックは同一であり、クロック測定部１３が測定する割込み信号１００と次に割り込み信号１００との間のクロックパルス数は、変化しない。また、定常状態ではクロック過不足は存在せず、クロック過不足数Ａ０は０である。次の状態１における補正タイマ閾値Ｙ１は、Ｘ０＝Ｘｎの条件を成立することから前述の（２）式を適用する。したがって、前の状態０における補正タイマ閾値Ｙ０に対し、Ｙ１＝Ｙ０＊（Ｘ０＋Ａ０）／Ｘ０＝Ｙ０＝５となり、前回の補正タイマ閾値と等しい。つまり、定常状態においては、タイマ割込みは第１のクロックパルス数Ｘ０の間隔で発生する。なお、クロック過不足累積部１５が、クロック過不足数Ａ１を計算して、Ａ１＝Ａ０＋Ｘ０−Ｘ０＝０を得る。クロック過不足累積部１５がＡ１を記憶する。
【００５３】
（説明２）
状態１の動作を説明する。前述の状態０で計算したタイマ閾値であるＹ１＝５がタイマ発生部１７の閾値に設定され、カウントが実行される。
【００５４】
タイマ割込み信号１００が発生までの間に、低速の第１のクロック発振部１０のクロックから高速の第２のクロック発振部１１のクロックに切替わったとする（図３Ａ＿状態１、図４Ａ＿状態１）。
【００５５】
高速の第２のクロック発振部１１にクロックに切替わったことでタイマ発生部１７のカウント速度が上がるが、補正タイマ閾値１１０が定常状態と等しいＹ０が適用されたままである為、定常時よりも短い時間で補正タイマ割込み信号１００が発生する（図３Ａ＿状態１の後端部分、図４Ａ＿状態１）。
【００５６】
状態１の期間にクロック測定部１３が測定した第１のクロック発振部１０のクロックパルス数をＸ１とする。タイマ発生部１７に供給される第２のクロック１１のクロックの周波数が第１のクロック１０のクロック周波数より高い為、定常時よりも早くタイマ割込みが発生する。Ｘ１＜Ｘ０である。したがって、タイマ発生部１７の入力クロックが高速のクロックに切替わった後も、タイマ発生部１７の割込み信号１００の発生頻度を定常状態と同一に維持する為には、次の状態２におけるタイマ発生部１７に対する補正タイマ閾値１１０は、現在の状態１に適用した補正タイマ閾値であるＹ１に対して増加させる必要がある。
【００５７】
ここで、Ｘ０≠Ｘ１の条件（図３Ａの状態１を参照するとＸ０＝５、Ｘ１＝４である。）が成立することから前述の（１）式を適用して次の状態２の補正タイマ閾値Ｙ２を算出する。タイマ閾値補正部１６が、Ｙ２＝Ｙ１＊Ｘ０／Ｘ１≒６を得る。
【００５８】
また、タイマ割込み信号１００が発生する間に本来測定すべき第１のクロック発振部１０のクロックパルス数はＸ０だが、実際に測定されたクロックパルス数はＸ１である為、タイマ割込みが発生したタイミングは、定常時と比べてＸ０−Ｘ１分のずれが生じている。さらに、Ｘ０≠Ｘ１の条件となることから、クロック過不足累積部１５が前述の（３）式を適用してクロック過不足数Ａ２を計算して、Ａ２＝Ａ１＋Ｘ０−Ｘ１＝１を得る。クロック過不足累積部１５がＡ２を記憶する。
【００５９】
（説明３）
次に、状態２を説明する。入力クロックは高速の第２のクロックが供給されたままであったとする（図３Ａ＿状態２〜状態３、図４Ａ＿状態２〜状態３）。補正タイマ閾値Ｙ２を基に、割り込み信号１００が発生するが、前回はタイマ発生部１７の入力クロックが途中から第２のクロック発振部１１のクロックに切替わったのに対し、今回は初めから第２のクロック発振部１１のクロックで動作している為、前回よりも短い間隔でタイマ割込みが発生する（図３Ａ＿状態２の後端の部分、図４Ａ＿状態２）。この時に、状態２の期間でクロック測定部１３が測定したクロックパルス数をＸ２とする。前回よりも早く割り込み信号１００が発生した為、Ｘ２＜Ｘ１＜Ｘ０である。Ｘ０≠Ｘ２の条件である。よって、タイマ閾値補正部１６が、前述の（１）式を適用して、次の状態３の補正タイマ閾値Ｙ３を計算して，Ｙ３＝Ｙ２＊Ｘ０／Ｘ２＝１０を得る。これにより、タイマ発生部１７に入力するクロックが、第２のクロック１１が出力するクロックのままであれば、次の状態３の期間で測定される第１のクロック発振部１０からのクロックパルス数は、定常時と同じ値になる。なお、Ｘ０≠Ｘ２の条件が成立することから、クロック過不足部累積部１５が前述の（３）式を適用して、クロック過不足数Ａ３を計算して、Ａ３＝Ａ２＋Ｘ０−Ｘ２＝３を得る。クロック過不足累積部１５がＡ３を記憶する。
【００６０】
（説明４）
次の状態３も、入力クロックは高速の第２のクロック１１からの供給のままであったとする（図３Ａ＿状態３、図４Ａ＿状態３）。状態３で算出した補正タイマ閾値Ｙ３はＹ２より大きく、かつ入力クロックに変化がないため、前回よりも長い間隔でタイマ割込みが発生し、定常時と間隔は等しくなる（図３Ｂ＿状態３の後端の部分、図４Ｂ＿状態３）。この時にクロック測定部１３が測定した、第１のクロック発振部１０のクロックパルス数をＸ３とする。定常時と割り込み信号１００が発生する間隔が等しい為、Ｘ３＝Ｘ０である。Ｘ３＝Ｘ０の条件が成立することから、補正タイマ閾値Ｙ４の計算には前述の（２）式を適用する。タイマ閾値補正部１６が、次の状態４の補正タイマ閾値Ｙ４を計算して、Ｙ４＝Ｙ３＊（Ｘ０＋Ａ３）／Ｘ３＝１６を得る。なお、Ｘ３＝Ｘ０であるため、Ｙ４＝Ｙ３＊（Ｘ０＋Ａ３）／Ｘ０とも言える。また、Ｘ３＝Ｘ０の条件が成立することから、クロック過不足数Ａ４の計算には前述の（４）式を適用する。クロック過不足累積部１５が、クロック過不足数Ａ４を計算して、Ａ４＝Ａ３＋Ｘ０−Ｘ３＝３を得る。クロック過不足累積部１５がＡ４を記憶する（この場合の過不足数は変化しない）。
【００６１】
（説明５）
次の状態４も、タイマ発生部１７に入力するクロックが、高速の第２のクロック１１が出力するクロックのままであったとする（図３Ｂ＿状態４、図４Ｂ＿状態４）。補正タイマ閾値Ｙ４はＹ３より大きく、かつ入力クロックに変化がないため、前回よりも長い間隔でタイマ割込みが発生する（図３Ｂ＿状態４の後端の部分、図４Ｂ＿状態４）。この時にクロック測定部１３が測定した、第１のクロック発振部１０のクロックパルス数をＸ４とする。入力クロックの周波数は前回から変化がなく、また、前回補正された補正タイマ閾値は、クロック過不足数の分のみ増えている為、Ｘ４＝Ｘ３＋Ａ３である。Ｘ４≠Ｘ０の条件が成立することから補正タイマ閾値Ｙ５の計算には前述の（１）式を適用する。タイマ閾値補正部１６が、次の状態５の補正タイマ閾値Ｙ５を計算して、Ｙ５＝Ｙ４＊Ｘ０／Ｘ４＝１０を得る。なお、（説明４）で述べたようにＹ４＝Ｙ３＊（Ｘ０＋Ａ３）／Ｘ３、Ｘ３＝Ｘ０である為、次回の補正タイマ閾値Ｙ５は前々回の補正タイマ閾値Ｙ３と等しくなる。前々回の補正タイマ閾値Ｙ３は、入力クロックが第２のクロック発振部１１のクロックの時、定常時のタイマ割込み発生間隔と等しくなる値である。また、Ｘ４≠Ｘ０の条件が成立することから、クロック過不足数Ａ５の計算には前述の（３）式を適用する。クロック過不足累積部１５が、クロック過不足数Ａ５を計算して、Ａ５＝Ａ４＋Ｘ０−Ｘ４＝０を得る。クロック過不足累積部１５がＡ５を記憶する。
【００６２】
（説明６）
次の状態５の期間も、入力クロックは高速の第２のクロックのままであったとする（図３Ｂ＿状態５、図４Ｂ＿状態５）。前回補正された補正タイマ閾値Ｙ５はＹ４より小さく、かつ入力クロックに変化がないため、前回よりも短い間隔でタイマ割込みが発生する（図３Ｂ＿状態５の最後の部分、図４Ｂ＿状態５）。この時に測定された、クロック測定部１３が測定した、第１のクロック発振部１０のクロックパルス数をＸ５とする。入力クロック周波数に変化がなく、また、補正タイマ閾値Ｙ５は前々回の補正タイマ閾値Ｙ３と等しい値であった為、Ｘ５＝Ｘ３＝Ｘ０となる。Ｘ５＝Ｘ０の条件が成立することから補正タイマ閾値Ｙ６の計算には前述の（２）式を適用する。タイマ閾値補正部１６が、次の状態６の補正タイマ閾値Ｙ６を、Ｙ６＝Ｙ５＊（Ｘ０＋Ａ５）／Ｘ５の式で計算するが、Ｘ５＝Ｘ０、Ｙ５＝Ｙ３、Ａ５＝０であるため、補正タイマ閾値Ｙ６は補正タイマ閾値Ｙ３と等しく１０になる。よって、入力クロック周波数が変更されない限り、タイマ割込み発生間隔は、定常状態のタイマ割込み発生間隔と等しくなる。また、Ｘ５＝Ｘ０の条件が成立することから、クロック過不足数Ａ６の計算には前述の（４）式を適用する。クロック過不足累積部１５が、クロック過不足数Ａ６を計算して、Ａ６＝Ａ５＋Ｘ０−Ｘ５＝０を得る。クロック過不足累積部１がＡ６を記憶する。
【００６３】
以上により、入力クロックを切り替えた後の割り込み信号１００が発生する間隔が入力クロック切り替え前と等しく、かつ入力クロック切り替えた後のタイマ割込み発生タイミングも、入力クロック切り替え前と一致する。なお、入力クロックを高速クロックから低速クロックに変更する場合も同様である。
【００６４】
以上の様に、本発明の第１の実施の形態におけるタイマ補正装置１は、周波数の異なるクロックに切り替えても、切り替える前の割り込み信号の周期と位相とを一致させることが出来る。その理由は、周期を合わせる補正に加えて位相を合わせる補正を行うことが出来るからである。
【符号の説明】
【００６５】
１    タイマ補正装置
３    第１の記憶部
４    第２の記憶部
５    判断部
１０    第１のクロック発振部
１１    第２のクロック発振部
１２    入力クロック選択部
１３    クロック測定部
１４    パルス数比率算出部
１５    クロック過不足累積部
１６    タイマ閾値補正部
１７    タイマ発生部
１００    割り込み信号
１１０    補正タイマ閾値
【図１】
0006500550.tif 000002
【図２】
0006500550.tif 000003
【図３Ａ】
0006500550.tif 000004
【図３Ｂ】
0006500550.tif 000005
【図４Ａ】
0006500550.tif 000006
【図４Ｂ】
0006500550.tif 000007