(57)【特許請求の範囲】
【請求項１】
第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信して、入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出する時刻情報切り替え部と、
前記時刻情報切り替え部が送出した前記第１の時刻情報又は前記第２の時刻情報を読み出して同期処理を行うとともに、前記時刻情報切り替え部に前記制御信号を出力する制御部と、
を備え、
前記時刻情報切り替え部は、前記制御部に、前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報と、当該時刻情報の読み出しに必要なタイミング信号と、を送出し、前記制御信号に応じて前記制御部への前記タイミング信号の送出を停止する、
計算機システム。
【請求項２】
前記時刻情報切り替え部は、前記制御信号を受信してから所定の時間の経過後、前記制御部への前記タイミング信号の送出を再開する、
請求項１に記載の計算機システム。
【請求項３】
前記所定の時間は、前記時刻情報の間隔よりも長い時間であり、１つの前記時刻情報を送出する時間と前記時刻情報の間隔とを足した時間よりも短い時間である、
請求項２に記載の計算機システム。
【請求項４】
第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信して、入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出する時刻情報切り替え部と、
前記時刻情報切り替え部が送出した前記第１の時刻情報又は前記第２の時刻情報を読み出して同期処理を行うとともに、前記時刻情報切り替え部に前記制御信号を出力する制御部と、
を備え、
前記時刻情報切り替え部は、前記制御信号に応じて、時刻情報を前記制御部が読み出し失敗と判定する所定のデータに書き替えて前記制御部に送出する、
計算機システム。
【請求項５】
前記時刻情報切り替え部は、前記制御信号に応じて、切り替え直後の１つの前記時刻情報を前記所定のデータに書き替えて前記制御部に送出する、
請求項４に記載の計算機システム。
【請求項６】
前記所定のデータは、連続する１又は０のデータである、
請求項４又は５に記載の計算機システム。
【請求項７】
前記所定のデータは、時刻情報が切り替えられたことを示す識別情報を含むデータである、
請求項４又は５に記載の計算機システム。
【請求項８】
第１の時刻同期化装置が送信する第１の時刻情報及び第２の時刻同期化装置が送信する第２の時刻情報を受信して、制御装置から入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて出力する切り替え機能部と、
前記切り替え機能部が出力した時刻情報を前記制御装置に送出する送出部と、
を備え、
前記切り替え機能部は、前記送出部に、前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報と、当該時刻情報の読み出しに必要なタイミング信号と、を送出し、前記制御信号に応じて前記送出部への前記タイミング信号の送出を停止する、
時刻情報切り替え装置。
【請求項９】
第１の時刻同期化装置が送信する第１の時刻情報及び第２の時刻同期化装置が送信する第２の時刻情報を受信して、制御装置から入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて出力する切り替え機能部と、
前記切り替え機能部が出力した時刻情報を前記制御装置に送出する送出部と、
を備え、
前記切り替え機能部は、前記制御信号に応じて、時刻情報を前記制御装置が読み出し失敗と判定する所定のデータに書き替えて前記送出部に送出する、
時刻情報切り替え装置。
【請求項１０】
第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信するステップと、
入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出するステップと、
送出された前記時刻情報を読み出して、読み出した当該時刻情報に基づいて前記制御信号を出力するステップと、
を備え、
前記時刻情報を切り替えて送出するステップは、前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報と、当該時刻情報の読み出しに必要なタイミング信号と、を送出し、前記制御信号に応じて前記タイミング信号の送出を停止する、
計算機システムの制御方法。
【請求項１１】
第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信するステップと、
入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出するステップと、
送出された前記時刻情報を読み出して、読み出した当該時刻情報に基づいて前記制御信号を出力するステップと、
を備え、
前記時刻情報を切り替えて送出するステップは、前記制御信号に応じて、時刻情報を読み出し失敗と判定される所定のデータに書き替えて送出する、
計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、時刻情報切り替え装置及び計算機システムの制御方法に関する。
【背景技術】
【０００２】
時刻同期化装置（Timer Synchronized System:以降ＴＣＳとも記載する）を用いて、計算機システムの時刻を同期する方法が、近年開示されている。
【０００３】
例えば、特許文献１においては、複数の時刻情報供給手段のいずれかに障害が発生した場合でも、全ての演算処理装置に同一の時刻情報を供給し続けることができる時刻情報供給装置が開示されている。当該時刻情報供給装置では、１つのＴＣＳが供給した時刻情報は、複数の診断制御装置によって読み出され、各診断制御装置から演算処理装置に出力される。ここで、１つの診断制御装置に異常が発生した場合、その診断制御装置から時刻情報の供給を受けていた演算処理装置は、他の診断制御装置から時刻情報の提供を受けることができる。
【０００４】
また、特許文献２においては、ＴＣＳから供給される時刻情報に異常が認められた場合に、ＴＣＳに異常が発生したことをシステム管理者に通報する計算機システムが開示されている。なお、特許文献２において、時刻情報を供給するＴＣＳは１つである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−０４９５０３号公報
【特許文献２】特開２０００−０９００６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１にかかる時刻情報供給装置では、診断制御装置は多重化されているものの、時刻情報を提供するＴＣＳ自体は１つしかなかった。そのため、ＴＣＳに障害が発生した場合、演算処理装置は正しい時刻情報を取得することができない。
【０００７】
特許文献２にかかる計算機システムにおいても、ＴＣＳは１つしかない。そのため、ＴＣＳに障害が発生した場合、計算機システムは時刻情報を同期することができない。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、時刻情報の信頼性を向上することができる計算機システム、時刻情報切り替え装置及び計算機システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明にかかる計算機システムは、第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信して、入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出する時刻情報切り替え部と、前記時刻情報切り替え部が送出した前記第１の時刻情報又は前記第２の時刻情報を読み出して同期処理を行うとともに、前記時刻情報切り替え部に前記制御信号を出力する制御部と、を備える。
【００１０】
本発明にかかる時刻情報切り替え装置は、第１の時刻同期化装置が送信する第１の時刻情報及び第２の時刻同期化装置が送信する第２の時刻情報を受信して、制御装置から入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて出力する切り替え機能部と、前記切り替え機能部が出力した時刻情報を前記制御装置に送出する送出部と、を備える。
【００１１】
本発明にかかる計算機システムの制御方法は、第１の時刻同期化装置から送信される第１の時刻情報及び第２の時刻同期化装置から送信される第２の時刻情報を受信するステップと、入力される制御信号に応じて前記第１の時刻情報又は前記第２の時刻情報のいずれかの時刻情報を切り替えて送出するステップと、送出された前記時刻情報を読み出して、読み出した当該時刻情報に基づいて前記制御信号を出力するステップと、を備える。
【発明の効果】
【００１２】
本発明により、時刻情報の信頼性を向上することができる計算機システム、時刻情報切り替え装置及び計算機システムの制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかる時刻同期化システムの全体構成例の図である。
【図２】実施の形態１にかかる時刻情報切り替え装置の構成例の図である。
【図３】実施の形態２にかかる時刻同期化システムの全体構成例の図である。
【図４】実施の形態２にかかる時刻情報のフォーマットの例を示す図である。
【図５】実施の形態２にかかる時刻情報の転送例を示す図である。
【図６】実施の形態２にかかるプロセッサの処理の一例を示すフローチャートである。
【図７】実施の形態２にかかる時刻情報のデータ化けの一例を示す図である。
【図８】実施の形態２にかかる制御ユニットの処理の一例を示す図である。
【図９】実施の形態３にかかる制御ユニットの処理の一例を示す図である。
【発明を実施するための形態】
【００１４】
実施の形態１
本実施の形態にかかる計算機システムは、制御部、時刻情報切り替え部を備え、２つの時刻同期化装置から時刻情報（TOD：Time Of Day）の提供を受けている。制御部に送出する時刻情報に異常があった場合、制御部からの制御信号に応じて、時刻情報切り替え部は制御部に送出する時刻情報を切り替える。このように、時刻同期化装置を多重化して計算機システムに切り替え機能を設けることによって、計算機システムは、一方の時刻同期化装置が供給する時刻情報に異常が生じた場合、他方の正常な時刻同期化装置が供給する時刻情報を用いて処理を行う。このため、計算機システムにおける時刻情報の信頼性を向上することができる。
【００１５】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施形態にかかる時刻同期化システムの全体構成例を示す。時刻同期化システム１０は、時刻同期化装置１１、時刻同期化装置１２、計算機システム２０を備える。時刻同期化装置１１及び１２は、計算機システム２０と接続されている。
【００１６】
時刻同期化装置１１、時刻同期化装置１２は、計算機システム２０に時刻情報を供給する装置である。時刻同期化装置１１、時刻同期化装置１２は、それぞれが独立した状態で、計算機システム２０に時刻情報を供給している。
【００１７】
計算機システム２０は、時刻情報切り替え部２１、制御部２２を備える。計算機システム２０は、メインフレーム、サーバ、ワークステーション等のコンピュータである。時刻情報切り替え部２１は、集積回路等を含む１つのユニット（装置）である。制御部２２は、プロセッサ等のハードウェア、ＯＳ（Operating System：オペレーティングシステム）等のソフトウェアにより構成される。
【００１８】
以下、本実施の形態にかかる計算機システム２０の動作について説明する。
【００１９】
時刻情報切り替え部２１は、時刻同期化装置１１及び１２が送信した時刻情報を受信する。ここで、時刻同期化装置１１から受信する時刻情報を第１の時刻情報、時刻同期化装置１２から受信する時刻情報を第２の時刻情報とする。
【００２０】
時刻情報切り替え部２１は、第１の時刻情報、第２の時刻情報のうちいずれかを制御部２２に送出する。初期時刻においては、時刻情報切り替え部２１は第１の時刻情報を制御部２２に送出している。制御部２２は、時刻情報切り替え部２１から送出された第１の時刻情報を読み出す。制御部２２は、読み出した第１の時刻情報に基づき、同期処理を実行する。なお、同期処理とは、制御部の有する時刻情報を、読み出した時刻情報に一致させる処理のことをいう。
【００２１】
ここで、時刻同期化装置１１に故障が発生し、第１の時刻情報に異常が生じた場合を想定する。このとき、制御部２２は、第１の時刻情報を読み出した際に、第１の時刻情報の異常を判定する。例えば、時刻同期化装置１１は、自らの故障を検出した場合、その故障を、第１の時刻情報中のステータスを変更することによって示す。制御部２２は、そのステータスの変更の有無を判定することで、第１の時刻情報が異常になったことを判定する。
【００２２】
あるいは、時刻同期化装置１１は、時刻情報とは別に故障を示す信号を計算機システム２０に出力し、制御部２２はその信号を検知することにより、第１の時刻情報の異常を判定してもよい。
【００２３】
以上のようにして、第１の時刻情報の異常を判定した場合、制御部２２は、送出する時刻情報を切り替えさせる制御信号を生成し、時刻情報切り替え部２１に出力する。時刻情報切り替え部２１は、制御部２２から入力された制御信号を受信する。その制御信号に応じて、時刻情報切り替え部２１は、制御部２２に送出する時刻情報を第１の時刻情報から第２の時刻情報に切り替える。
【００２４】
このように、第１の時刻情報が異常であることを制御部２２が判定した場合に、時刻情報切り替え部２１は、制御部２２に送出する時刻情報を、第１の時刻情報から第２の時刻情報に切り替える。そのため、時刻情報切り替え部２１は、正確な時刻情報を制御部２２に供給することができるので、計算機システム２０の時刻情報の信頼性を向上することができる。換言すれば、計算機システム２０のＲＡＳ（Reliability Availability and Serviceability）を向上させることができる。
【００２５】
なお、初期時刻において制御部２２が第２の時刻情報を読み出しており、制御部２２が第２の時刻情報の異常を判定した場合も、制御部２２は同様の制御信号を時刻情報切り替え部２１に出力する。時刻情報切り替え部２１は、その制御信号に応じて、制御部２２に送出する時刻情報を、第２の時刻情報から第１の時刻情報に切り替える。
【００２６】
本実施の形態においては、計算機システム２０内部に時刻情報切り替え部２１及び制御部２２が含まれている。しかし、時刻情報切り替え部２１及び制御部２２は、同一のコンピュータ内になくともよく、１つの独立した装置（ユニット）として動作してもよい。図２は、そのような時刻情報切り替え装置の構成例を示したものである。図２において、時刻同期化装置１１は第１の時刻情報を時刻情報切り替え装置２３に送信し、時刻同期化装置１２は第２の時刻情報を時刻情報切り替え装置２３に送信する。時刻情報切り替え装置２３は、時刻同期化装置１１及び時刻同期化装置１２と、制御装置２４とを接続する。時刻情報切り替え装置２３は、時刻情報切り替え部２１に対応しており、制御装置２４は、制御部２２に対応している。
【００２７】
時刻情報切り替え装置２３は、切り替え機能部２５と、送出部２６とを備える。切り替え機能部２５は、第１の時刻情報及び第２の時刻情報を受信して、制御装置２４から入力される制御信号に応じて、第１の時刻情報又は第２の時刻情報のいずれかの時刻情報を切り替えて出力する。送出部２６は、切り替え機能部２５が出力した時刻情報を制御装置２４に送出する。
【００２８】
制御装置２４は、送出部２６から送出された第１の時刻情報又は第２の時刻情報に基づいて同期処理を行う。さらに制御装置２４は、第１の時刻情報又は第２の時刻情報に基づいて、制御信号を生成し、切り替え機能部２５に出力する。切り替え機能部２５は、その制御信号に応じて、出力する時刻情報を切り替える。このようにして、制御装置２４は、時刻情報切り替え装置２３の出力する時刻情報を制御する。
【００２９】
なお、制御装置２４は、送信された時刻情報ではなく、前述と同様、他の情報に基づいて、制御信号を生成してもよい。制御信号の具体的な説明についても、前述と同様である。
【００３０】
実施の形態２
本実施の形態にかかる計算機システムは、２つの時刻同期化装置（以下、ＴＣＳとも表記）から時刻情報の提供を受けている。計算機システム中の制御ユニットは、プロセッサが時刻情報の異常を判定した場合、プロセッサからの制御信号に基づいて、プロセッサに送出する時刻情報を切り替える。制御ユニットは、異常がない方の時刻情報をプロセッサに送出する。ここで、制御ユニットは、切り替え直後にＴＣＳから供給される１つの時刻情報を全て「１」の値にすることで、プロセッサに時刻情報を読み出し失敗と判定させる。これにより、プロセッサは、切り替え直後の時刻情報を取得することがない。このようにすることで、切り替え時にプロセッサが受信する時刻情報のデータ化けを防止することができる。
【００３１】
以下、図面を参照して実施の形態２について説明する。図３は、本実施形態にかかる時刻同期化システムの全体構成例を示す。時刻同期化システム３０は、ＴＣＳ３１、ＴＣＳ３２、計算機システム４０を備える。ＴＣＳ３１及び３２は、計算機システム４０と接続されている。
【００３２】
ＴＣＳ３１、ＴＣＳ３２は、一定間隔でＴＣＳ情報（時刻情報）を、計算機システム４０のＴＣＳ制御ユニット５０に送信する。さらに、ＴＣＳ情報を読み出すために必要なタイミング信号であるストローブ信号も、ＴＣＳ制御ユニット５０に送信する。これらの信号の詳細については後述する。ＴＣＳ３１が送信するＴＣＳ情報を第１のＴＣＳ情報、ＴＣＳ３２が送信するＴＣＳ情報を第２のＴＣＳ情報とする。その他の説明については、時刻同期化装置１１、時刻同期化装置１２と同様である。
【００３３】
計算機システム４０は、ＴＣＳ制御ユニット５０、プロセッサ６１、６２、６３、ＯＳ７０を備える。計算機システム４０及びＴＣＳ制御ユニット５０の具体例については、実施の形態１と同様である。
【００３４】
ＴＣＳ制御ユニット５０は、ＴＣＳインタフェース受信部５１、５２、ＴＣＳ情報切り替え機能部５３、ＴＣＳ情報送出部５４を備える。ＴＣＳインタフェース受信部５１は、ＴＣＳ３１とのインタフェースを制御して、ＴＣＳ３１から送信されるＴＣＳ情報及びストローブ信号を受信する。ＴＣＳインタフェース受信部５２は、ＴＣＳ３２とのインタフェースを制御して、ＴＣＳ３２から送信されるＴＣＳ情報及びストローブ信号を受信する。
【００３５】
なお、ＴＣＳインタフェース受信部５１、ＴＣＳインタフェース受信部５２は、ＴＣＳ３１、ＴＣＳ３２から受信したＴＣＳ情報を一時保持した後、ＴＣＳ情報切り替え機能部５３に送出するバッファとして機能する。換言すれば、ＴＣＳ制御ユニット５０は、ＴＣＳ３１、ＴＣＳ３２から受信したＴＣＳ情報を即時にはプロセッサに送出しない。
【００３６】
ＴＣＳ情報切り替え機能部５３は、ＴＣＳ３１が送出したＴＣＳ情報及びストローブ信号、ＴＣＳ３２が送出したＴＣＳ情報及びストローブ信号のいずれかをＴＣＳ情報送出部５４に送出する。さらに、ＴＣＳ情報切り替え機能部５３は、ＴＣＳ情報受信部６４からの制御信号に応じて、ＴＣＳインタフェース受信部５１とＴＣＳインタフェース受信部５２のインタフェースを切り替える。
【００３７】
つまり、ＴＣＳ情報切り替え機能部５３が接続するＴＣＳインタフェース受信部は、ＴＣＳインタフェース受信部５１又は５２のいずれかである。ＴＣＳ情報切り替え機能部５３は、ＴＣＳインタフェース受信部との接続を切り替えることによって、送出するＴＣＳ情報及びストローブ信号を切り替える。ＴＣＳ情報切り替え機能部５３は、このようにして、第１のＴＣＳ情報、第２のＴＣＳ情報のいずれかをＴＣＳ情報送出部５４に送出する。
【００３８】
ＴＣＳ情報送出部５４は、プロセッサ６１〜６３とのインタフェースを制御する。具体的には、ＴＣＳ情報切り替え機能部５３から送出されたＴＣＳ情報及びストローブ信号を、プロセッサ６１〜６３に送出する。以上のようにして、ＴＣＳ制御ユニット５０はＴＣＳ情報及びストローブ信号をプロセッサ６１〜６３といった接続されているすべてのプロセッサに送信する。
【００３９】
プロセッサ６１は、ＴＣＳ制御ユニットとのインタフェースを制御するＴＣＳ情報受信部６４、ＯＳとのインタフェースを制御するＯＳインタフェース受信部６５、ＯＳインタフェース送信部６６を備える。具体的には、ＴＣＳ情報受信部６４は、ＴＣＳ制御ユニット５０から送出されたＴＣＳ情報及びストローブ信号を受信する。ＯＳインタフェース受信部６５は、ＯＳ７０から、ＴＣＳ情報を読み出すための指示を受信し、それをＴＣＳ情報受信部６４に送出する。ＴＣＳ情報受信部６４では、その指示に応じて、読み出したＴＣＳ情報をＯＳインタフェース送信部６６に送出する。ＯＳインタフェース送信部６６は、そのＴＣＳ情報を、ＯＳ７０に送信する。
【００４０】
さらに、ＴＣＳ情報受信部６４は、受信したＴＣＳ情報の異常を判定した場合、ＴＣＳ情報切り替え機能部５３に対し、送出するＴＣＳ情報を切り替えさせる制御信号を出力する。
【００４１】
プロセッサ６２、６３もプロセッサ６１と同様の機能を備えている。このように、図３においてＯＳ７０は、プロセッサ６１、プロセッサ６２、プロセッサ６３といった複数のプロセッサとインタフェースを持ち、情報の送受信を行う。なお、それぞれのプロセッサは、プロセッサ中に組みこまれたファームウェアにより制御される。プロセッサ６１〜６３は、例えばＣＰＵ（Central Processing Unit)である。ＯＳ７０は、マルチプロセッサ用のＯＳである。
【００４２】
次に、図４及び図５を用いて、ＴＣＳ３１又は３２と、ＴＣＳ制御ユニット５０との間のＴＣＳ情報のインタフェースを説明する。図４は、ＴＣＳ３１又は３２と、ＴＣＳ制御ユニット５０との間で送受信されるＴＣＳ情報のフォーマットの一例を示す。ＴＣＳは、図４のフォーマットにより、ＴＣＳインタフェースでステータス、年、月、日、時、分、秒、ミリ秒、マイクロ秒といった情報を受け渡す。ステータスは、ＴＣＳが正常か異常かを示す信号であり、ＴＣＳが自分の故障を検出した場合には、ＴＣＳはその旨を示すデータをステータス中に入れて送出する。以上のフォーマットが、１つのＴＣＳ情報の単位を示している。
【００４３】
図５は、時刻情報の転送例を示す図である。以下、図５（ａ）で示すシリアル転送フォーマットにより、図４に示したＴＣＳ情報のフォーマットをシリアルインタフェースで受け渡す例を説明する。ＴＣＳ３１は、ＴＣＳインタフェース受信部５１に対し、最初にワード０のビット００から０７までを転送し、ワード０のパリティＰ０を転送する。次に、ワード０のビット０８から１５までを転送した後、ワード０のパリティＰ１を転送する。以降、ＴＣＳ３１は、ワード１〜ワード５までのデータを、同様に繰り返し転送する。一定の時間間隔をおいた時刻において、その時点の時刻で生成したＴＣＳ情報のシリアル転送フォーマットがＴＣＳから送信されることにより、ＴＣＳ情報は更新される。
【００４４】
図５（ｂ）の転送波形イメージは、ＴＣＳ情報及びストローブ信号の転送における波形のイメージの例を示したものである。本実施形態ではストローブ信号の立ち上がり及び立ち下がりによって、データ信号（ＴＣＳ情報）を取り込むケースを記載している。図４、図５（ｂ）の例では転送するビットが各ワード１８ビット（データ１６ビット＋パリティ２ビット）であり、ワード数が６ワードある。そのため、１つのフォーマットにおけるＴＣＳ情報のビット数の総計は１０８ビットである。なお、１つのフォーマットにかかるＴＣＳ情報は、分割不可能な一連の情報として処理されるため、以降、トランザクションとも記載する。なお、ＴＣＳ３１、ＴＣＳ３２は、１ビット分のデータ信号及びストローブ信号を出力するのに同じだけの時間がかかる。これは実施の形態３、４でも同様である。
【００４５】
次に、ＴＣＳ情報読み出し命令をＯＳ７０から受信した場合に、図３に記載したいずれかのプロセッサのファームウェアが行う制御を説明する。ここで、プロセッサは、データ更新中フラグ、読み出し失敗フラグを有する。このフラグは、プロセッサが備えるデータ更新の検出機能、読み出し失敗の検出機能に基づいて設定される。
【００４６】
データ更新中フラグは、プロセッサ自身がＴＣＳ情報を更新している場合にＯＮ（「１」の値）に設定され、ＴＣＳ情報を更新していない場合にはＯＦＦ（「０」の値）に設定される。
【００４７】
読み出し失敗フラグは、プロセッサとＴＣＳ制御ユニット５０間のインタフェースでエラーがあったとみなされる場合にＯＮ（「１」の値）に設定され、ない場合にはＯＦＦ（「０」の値）に設定される。例えば、図４に示したフォーマットにおいて、ＴＣＳ情報の内容が無効なデータ（いわゆる「壊れたデータ」）である場合、読み出し失敗フラグはＯＮに設定される。例えば、パリティが異常であるような場合、１つのフォーマット中のビット数が所定のビット数ではない（図４、図５でいえば１０８ビットではない）場合に、プロセッサはＴＣＳ情報の内容は無効なデータとみなし、読み出し失敗の判定をする。
【００４８】
さらに、プロセッサは、読み出し命令中の処理において、読み出し失敗フラグがＯＮになった回数をカウントしている。
【００４９】
以下、図６を用いて、プロセッサのファームウェアの制御を説明する。図６は、ファームウェアに基づいたＴＣＳ情報受信部６４の処理例を示すフローチャートである。
【００５０】
ＯＳインタフェース受信部６５がＯＳ７０からＴＣＳ情報読み出し命令を受信した場合、ＴＣＳ情報受信部６４はＴＣＳ情報読み出し命令に応じて、プロセッサの持つＴＣＳ情報を読み出す（ステップＳ１）。このとき、ＴＣＳ情報受信部６４は、データ更新中フラグがＯＮになっているか否かをチェックする（ステップＳ２）。
【００５１】
データ更新中フラグがＯＮになっている場合（ステップＳ２のＹｅｓ）、プロセッサは、ＴＣＳ情報のデータを更新中である。そのため、プロセッサが直前に読みだしたＴＣＳ情報をエラーと判定し、無効にする。これにより、プロセッサは、直前に読みだしたＴＣＳ情報をＯＳ７０に送信することはない。
【００５２】
ステップＳ２の後、ＴＣＳ情報受信部６４は、読み出し処理を再実行する（ステップＳ１）。なお、データ更新は、少ない実行数で処理される。そのため、ＴＣＳ情報読み出し命令を再実行すれば、次回のステップＳ２の判定時には、データ更新中フラグはＯＦＦとなる。
【００５３】
データ更新中フラグがＯＦＦになっている場合（ステップＳ２のＮｏ）、プロセッサはＴＣＳデータを更新していない。このとき、ＴＣＳ情報受信部６４は、読み出し失敗フラグがＯＮになっているか、ＯＦＦになっているかをチェックする（ステップＳ３）。
【００５４】
読み出し失敗フラグがＯＮになっている場合（ステップＳ３のＹｅｓ）、プロセッサはＴＣＳ情報の読み出しに失敗している。そのため、プロセッサが直前に読みだしたＴＣＳ情報をエラーと判定し、無効にする。これにより、プロセッサは、直前に読みだしたＴＣＳ情報をＯＳ７０に送信することはない。
【００５５】
さらに、ＴＣＳ情報受信部６４は、読み出し失敗フラグがＯＮになった回数を検出し、処理中で読み出し失敗フラグがＯＮになったのが３回目であるか否かをチェックする（ステップＳ４）。
【００５６】
処理中で読み出し失敗フラグがＯＮになったのが初めて又は２回目である場合（ステップＳ４のＮｏ）、ＴＣＳ情報受信部６４は、次回のＴＣＳ情報更新が行われるまで時間待ちをする（ステップＳ５）。つまり、次にＴＣＳ情報が更新されるまで、ＴＣＳ情報受信部６４は、ＴＣＳ情報読み出しを行わない。この時間待ちの間隔は、例えば、ＴＣＳ情報が更新される間隔よりも大きい値に設定される。その後、ＴＣＳ情報受信部６４は、ＴＣＳ情報読み出しを再実行する（ステップＳ１）。このようにして、ファームウェアは、ＴＣＳ情報の読み出しのリトライ処理を実行させる。
【００５７】
処理中で読み出し失敗フラグがＯＮになったのが３回目である場合（ステップＳ４のＹｅｓ）、ＴＣＳ情報受信部６４は有効なＴＣＳ情報が使用できないと判定する。このため、ＴＣＳ情報受信部６４は、ＴＣＳ情報読み出し命令を異常終了する。
【００５８】
なお、図６のフローでは、読み出し失敗フラグが３回目で異常終了と判定しているが、２回目等、他の閾値を用いて異常終了と判定してもよい。
【００５９】
ステップＳ３のチェックにおいて、読み出し失敗フラグがＯＦＦになっている場合（ステップＳ３のＮｏ）、ＴＣＳ情報受信部６４は有効なＴＣＳ情報を読み出すことができた。ここで、ＴＣＳ情報受信部６４は、受信したＴＣＳ情報のフォーマット内のステータスをチェックする（ステップＳ６）。前述の通り、ＴＣＳ３１が故障を検出した場合に、このステータスは異常を示すデータを表す。
【００６０】
ステータスが異常である場合（ステップＳ６のＹｅｓ）、ＴＣＳ３１は故障していると判定される。ここで、ＴＣＳ情報受信部６４は、ＴＣＳ情報切り替え機能部５３に対し、制御信号を出力する（ステップＳ７）。その後、ＴＣＳ情報受信部６４は、ＴＣＳ情報読み出し命令を異常終了する。なお、受信したステータスが異常なＴＣＳ情報はエラーと判定され、無効になる。これにより、プロセッサは、そのＴＣＳ情報をＯＳ７０には送信しない。
【００６１】
なお、図７のフローでは、制御信号の出力後にＴＣＳ情報読み出し命令を異常終了させているが、ＴＣＳ情報受信部６４は、ＴＣＳ情報読み出し命令を再実行する（ステップＳ１）処理を行ってもよい。
【００６２】
ステータスをチェックして異常でない場合（ステップＳ６のＮｏ）、ＴＣＳ情報受信部６４は、ＯＳインタフェース送信部６６にプロセッサが読み出したＴＣＳ情報をセットする（ステップＳ８）。これにより、ＯＳインタフェース送信部６６からＯＳにＴＣＳ情報が送信される。以上の処理を終えて、ＴＣＳ情報読み出し命令は正常に終了する。
【００６３】
以上の通り、ＴＣＳ情報受信部６４は、ＯＳからのＴＣＳ情報読み出し命令に応じて、取得したＴＣＳ情報が有効であるか否かをステップＳ２、Ｓ３、Ｓ６にて判定し、有効な場合のみ、ＯＳ７０にＴＣＳ情報を送信する。データ更新中フラグ、読み出し失敗フラグ、ステータスのいずれかでも異常がある場合、読み出したＴＣＳ情報はエラーと判定され、無効になる。
【００６４】
次に、ＴＣＳ情報の転送中にＴＣＳ情報切り替え機能部５３がＴＣＳ情報の切り替えを行った場合に、プロセッサ側で発生しうるデータ化けについて説明する。まず、図５（ｂ）の転送波形イメージで転送されるＴＣＳ３１からのＴＣＳ情報を、ＴＣＳ制御ユニット５０で受信する。ここで、ＴＣＳ情報を受信中に、ＴＣＳ情報受信部６４がＴＣＳ情報のフォーマットのステータスの異常を判定する。フォーマットのステータスについては、図４の説明に示した通りである。ＴＣＳ情報受信部６４は、ＴＣＳ情報切り替え機能部５３に、ＴＣＳ３１からのＴＣＳ情報が異常であることを示す制御信号を出力する。ＴＣＳ情報切り替え機能部５３は、制御信号に応じて、出力するＴＣＳ情報を、ＴＣＳ３１のＴＣＳ情報からＴＣＳ３２のＴＣＳ情報に切り替える。なお、プロセッサは、制御信号を出力した後も、ＴＣＳ情報読み出しの処理（図６のステップＳ１）を実行している。
【００６５】
このように、ＴＣＳ情報切り替え機能部５３は、ＴＣＳ３１の故障を検出してＴＣＳ３２に切り替える。その場合、ＴＣＳ３１からのＴＣＳ情報転送中に切り替えを行うと、ＴＣＳ３１からのインタフェースとＴＣＳ３２からのインタフェースの切り替えタイミングと、ＴＣＳ情報のトランザクションの送信タイミングが衝突する。ここで何の処置も実行しないと、プロセッサが受信したＴＣＳ情報にデータ化けが起きてしまう。これは、ＴＣＳ３１が故障しており、なおかつＴＣＳ３１からのＴＣＳ情報の出力を停止させることが出来ない場合に発生する。
【００６６】
図７を用いて、このようなデータ化けの例について説明する。図７は、ＴＣＳ３１からのストローブ信号及びデータ信号、ＴＣＳ３２からのストローブ信号及びデータ信号を示している。図７においては、左から右にいくほど、時間が経過したことを示しており、ＴＣＳ情報切り替えのタイミングは破線で示している。これは、図８、図９でも同様である。
【００６７】
図７では、ＴＣＳ３１がＴＣＳ情報のフォーマットのワード１をデータ転送中に、ＴＣＳ情報切り替え機能部５３がＴＣＳ情報の切り替えを実施する。ＴＣＳ３２は、ＴＣＳ３１と同じＴＣＳ情報をＴＣＳ制御ユニット５０に送信している。具体的に言えば、ＴＣＳ３１は、ワード１データのビット００からビット０７の年情報として、１６進数で「０Ｃ」、２進数で「００００１１００」を送信しており、ＴＣＳ３２も同じデータを送信している。なお、ＴＣＳ３１のデータ信号及びストローブ信号の出力タイミングは、ＴＣＳ３２のデータ信号及びストローブ信号の出力タイミングと１ビット分ずれている。
【００６８】
図７の破線のタイミングでＴＣＳ３１からＴＣＳ３２への切り替えが行われた場合、ＴＣＳ３１が「００００１１００」の「００００１」まで送信した時点で、ＴＣＳ３２に切り替わる。ＴＣＳインタフェース受信部５２は、以降のデータを「０００１」と受信する。そのため、ＴＣＳ制御ユニット５０が受信したワード１データは、１６進数で「０Ｃ」のはずが「０８」となる。ＴＣＳ情報受信部６４が、受信したＴＣＳ情報のパリティエラーを検知できないケースでは、プロセッサは不正な時刻情報を受信してしまう。
【００６９】
よって、ＴＣＳ３１からのＴＣＳ情報転送中に、ＴＣＳ情報切り替え機能部５３がＴＣＳ３１からＴＣＳ３２へのＴＣＳ情報の切り替えを行う場合、ＴＣＳ情報切り替え機能部５３は何らかの処置を行う必要がある。
【００７０】
図８は、本実施の形態において、ＴＣＳ情報切り替え機能部５３が行う処置の例である。図８（ａ）において、ＴＣＳ情報切り替え機能部５３は、いずれかのプロセッサのＴＣＳ情報受信部から、ＴＣＳ３１のＴＣＳ信号に異常があったことを示す制御信号を受信した場合、ＴＣＳ情報切り替え処理をする。
【００７１】
このとき、ＴＣＳ情報切り替え機能部５３は、切り替えた直後にＴＣＳインタフェース受信部５２から送出されるＴＣＳ情報（ＴＣＳ３２が出力したＴＣＳ情報）のデータ信号を全て「１」に書き替えた上で、ＴＣＳ情報送出部５４に送出する。換言すれば、ＴＣＳ情報切り替え機能部５３は、ＴＣＳ３２が出力したＴＣＳ情報のデータ信号を無効なデータにして（壊して）、ＴＣＳ情報送出部５４に送出する。
【００７２】
ここで、ＴＣＳ情報切り替え機能部５３は、切り替えた直後にプロセッサに送出する１つのＴＣＳ情報を書き替える。換言すれば、ＴＣＳ情報中の１つのトランザクション（フォーマット）に含まれるデータを書き替える。しかし、次のＴＣＳ情報の更新時（次のＴＣＳ情報のトランザクション更新時）では、ＴＣＳ情報切り替え機能部５３は、データ信号を書き替えずにプロセッサに送出する。
【００７３】
ＴＣＳ情報切り替え機能部５３は、ＴＣＳ３２からＴＣＳ３１にＴＣＳ情報を切り替える場合も、同様の処理を行う。図８（ｂ）は、その処理を示した図である。
【００７４】
ＴＣＳ情報送出部５４は、無効なデータにしたＴＣＳ情報を各プロセッサに送出する。ＴＣＳ３２からのＴＣＳ情報を読み出したプロセッサは、読み出し失敗フラグをＯＮにする。これにより、プロセッサは、図６のＴＣＳ情報読み出しフローチャートのステップＳ４において、読み出し失敗フラグがＯＮであると判定する。この処理フローにおいて、読み出し失敗フラグがＯＮになったのはこれが最初なので、プロセッサは、次のＴＣＳ情報更新まで時間待ちの動作に入る（ステップＳ５）。
【００７５】
ＴＣＳ情報切り替え機能部５３は、次にＴＣＳ３２が出力したＴＣＳ情報のトランザクション中のデータは、書き替えずにそのままＴＣＳ情報送出部５４に出力する。以降のＴＣＳ３２が出力したＴＣＳ情報についても、同様に書き替えずにＴＣＳ情報送出部５４に出力する。つまり、次にＴＣＳ３２が出力するＴＣＳ情報のトランザクションは正常である。
【００７６】
プロセッサは、図６のフローチャートの通り、再度ＴＣＳ情報の読み出しを行う。ここで、プロセッサが次に受信するＴＣＳ情報のトランザクションは正常であることから、プロセッサはステップＳ２、Ｓ３、Ｓ６の全ての判定において、ＴＣＳ情報は正常であると判定する。これにより、プロセッサは、ステップＳ８において、ＯＳインタフェースにＴＣＳ情報をセットする。
【００７７】
以上のようにして、ＴＣＳ制御ユニット５０は、切り替え直後にプロセッサに送出されるＴＣＳ情報を書き替え、プロセッサがＴＣＳ情報を読み出し失敗であると判定するようにする。そのため、計算機システム４０における時刻情報のデータ化けを防ぐことができる。
【００７８】
さらに、切り替え直後にプロセッサに送出される１つのＴＣＳ情報のみを書き替え、以降のＴＣＳ情報は書き替えていない。このため、プロセッサは、正確な時刻情報を速やかに取得することができる。例えば、図６のフローにおいて、異常終了とされる前のリトライ処理の段階で、プロセッサは正確な時刻情報を取得することができる。つまり、計算機システム４０は、自身の有する時刻情報を、正確な時刻情報に速やかに更新することができる。
【００７９】
実施の形態１に記載した通り、ＴＣＳを多重化することにより、計算機システムの時刻情報の信頼性を上げることができる。ここで、ＴＣＳ３１がＴＣＳ情報のトランザクションを発行中に、ＴＣＳ３１が故障した場合、ＴＣＳ情報切り替え機能部５３は、動的にＴＣＳ３１からＴＣＳ３２へのＴＣＳ情報の切り替えを実施する。このとき、故障したＴＣＳ３１は、ＴＣＳ情報の出力を停止できない。その場合、そのまま動的にＴＣＳ３２に切り替えると、転送中のＴＣＳ３１側トランザクションと切り替え後のＴＣＳ３２側トランザクションが衝突する。これにより、ＴＣＳ情報を受信したプロセッサ側でデータ化けが発生してしまう。そのため、このようなデータ切り替えの過渡期におけるデータ化けを回避するための調停制御が必要となる。
【００８０】
この調停制御として、具体的には、データ保証のための手順を入れることが考えられる。例えば、ＴＣＳ３１が運用中に壊れた場合、ＴＣＳ３１から出力されるＴＣＳ情報の出力を抑止する。時間待ち等の処理を行い、ＴＣＳ情報の出力が抑止されたことを確認してから、プロセッサがＴＣＳ３２からのＴＣＳ情報を取得する、といった手順が考えられる。この間、プロセッサはＴＣＳ情報の読み出しを行わないようにする必要がある。ただし、この調停制御では、ＴＣＳ情報の出力を抑止できない場合も想定される。
【００８１】
さらに、回避手順が複雑になってしまう可能性と、切り替えの時間が延びてしまうことによりＯＳがタイムアウトを検出してしまう可能性がある。つまり、計算機システムは、正確な時刻情報を取得できないか、又は取得が遅くなってしまう可能性が考えられる。計算機システム内のインタフェースにＲＡＳ機能を付与する対策も考えられるが、そのような場合においても、時刻情報のエラーを検出できないケースが発生し得る。この場合は、プロセッサは不正データをそのまま受信することとなり、計算機システムは時刻不正の状態に至る。
【００８２】
ＴＣＳ制御ユニット５０のハードウェアによって、時刻情報のデータ化けが発生しないことを保証するのは難しい。その他にデータ化けの発生を防止する方法は、以下のようなものがある。図４において、ＴＣＳ３１のみがＴＣＳ情報を計算機システム４０側に送信し、ＴＣＳ３２はＴＣＳ情報を送信しないように設定する。マスター側のＴＣＳ３１で故障が発生した後に、スレーブ側のＴＣＳ３２を起動して、受信するＴＣＳ情報を切り替える、という方法である。しかし、この方法では、ＴＣＳ３２の起動までの立ち上げ時間がかかる。そのため、正確な時刻情報への更新ができないか、遅くなってしまう可能性がある。例えば、図６における処理フローでは、ＴＣＳ障害が発生したときに、ＴＣＳ情報読み出し命令によるプロセッサの処理が異常終了してしまうことが考えられる。
【００８３】
本実施形態では、ＴＣＳ３１だけでなく、スレーブ側のＴＣＳ３２も起動させておいて、ＴＣＳ情報切り替え機能部５３によってＴＣＳ情報の切り替えを制御する。これにより、計算機システム４０のハードウェアの作りをシンプルにできる。このようなハードウェアを作りこんだ場合、ＴＣＳ情報切り替え機能部５３に、切り替え直後のＴＣＳ３２のＴＣＳ情報を壊すような機能を盛り込むだけで、データ化けを防止できる。さらに、プロセッサは、できるだけ早い段階で、正しい時刻情報を取得することができる。
【００８４】
なお、図８において、ＴＣＳ情報切り替え機能部５３は、切り替え直後のＴＣＳ情報を連続する「１」のデータに書き替えたが、連続する「０」のデータに書き替えてもよい。その他にも、制御部が読み出し失敗と判断するような所定のデータであれば、ＴＣＳ情報をそのデータに書き替えてもよい。
【００８５】
実施の形態３
本実施の形態にかかる計算機システムは、実施の形態２と同様、ＴＣＳ情報の切り替え時にプロセッサが受信する時刻情報のデータ化けを防止することができる。具体的にいえば、ＴＣＳ制御ユニットは、切り替え後、ＴＣＳ３２から供給されるストローブ信号を所定の期間、プロセッサに供給しない（ストローブ信号をマスクする）ことで、プロセッサにＴＣＳ情報を読み出し失敗と判定させる。
【００８６】
以下、実施の形態３について説明する。本実施形態にかかる時刻同期化システムの全体構成例は、図３に示した通りである。本実施形態にかかる計算機システム４０において、実施の形態２と異なる点は、次の通りである。ＴＣＳ制御ユニット５０がＴＣＳ３１、ＴＣＳ３２から受信したＴＣＳ情報のトランザクションは、ＴＣＳ制御ユニット５０により、そのままプロセッサに転送される。換言すれば、ＴＣＳインタフェース受信部５１、５２は、ＴＣＳ情報のトランザクションをバッファとして一時保存する必要はない。
【００８７】
さらに、実施の形態３において、図３に示したプロセッサ６１〜６３は、分配されたＴＣＳ３１又はＴＣＳ３２のストローブ信号のストローブの数（データ数）をカウントする機能を保持する。図４、図５のフォーマットの例では、ストローブ、データともに１０８回送信される。そのため、カウンタ値の初期値をゼロとした場合、１つのフォーマットを全てカウントすると、最終的なカウンタ値は１０７となる。
【００８８】
その他の計算機システムの構成、ＴＣＳの動作については、実施の形態２と同様であるため、説明を省略する。ＴＣＳ情報のフォーマット及びシリアル転送フォーマット、計算機システムがデータ化けを起こすプロセスについても、図４、図５及び図７に示した通りである。
【００８９】
次に、図９を用いて、本実施の形態の制御ユニット５０及びプロセッサ６１〜６３の処理について説明する。図９（ａ）は、実施の形態３における、ＴＣＳ情報の更新トランザクションの周期及びトランザクションの更新までの時間を示したものである。１回のＴＣＳ情報トランザクションの更新に要する時間、つまり、１つのフォーマットの時間（１つのＴＣＳ情報を送出する時間）はαとして示される。ＴＣＳ情報更新トランザクションの最後のデータから次のＴＣＳ情報更新トランザクションの最初のデータまでの時間、つまりＴＣＳ情報が更新されるまでの時間間隔はβとして示される。以上から、１つのＴＣＳ情報の送出が開始されてから、次のＴＣＳ情報の送出が開始されるまでの時間（ＴＣＳ情報の周期）はα＋βとして表される。なお、α、βはともに、一定の期間である。以上の時間α、βは、ＴＣＳ３１及びＴＣＳ３２において共通である。
【００９０】
以上から、プロセッサのストローブカウンタが１０７ではない状態でβだけ時間が経過した場合、１つのフォーマットのデータ全体を受信せずに、ＴＣＳ情報の間隔が経過した異常ケースと判定できる。プロセッサは、ストローブ信号を用いてデータ信号の読み出しを行っているため、ストローブ信号がない場合に出力されたデータ信号は読み出すことができないためである。実施の形態３において、プロセッサがこのような異常ケースを検出した場合、プロセッサは、ＴＣＳ情報の読み出しに失敗したと判定し、読み出し失敗フラグをＯＮにする。
【００９１】
図９（ｂ）は、ＴＣＳ３１からＴＣＳ３２への切り替え時に、制御ユニット５０及びプロセッサ６１〜６３が行う処理の例について示している。ＴＣＳ３１及びＴＣＳ３２は、同じタイミングでＴＣＳ情報を出力している。
【００９２】
図９（ｂ）では、破線のタイミングで、ＴＣＳ３１からＴＣＳ３２へのＴＣＳ情報の切り替えが発生している。ＴＣＳを切り替えたとき、ＴＣＳ情報切り替え機能部５３は、ＴＣＳ３２のストローブ信号を一定期間ゼロにクリアして、ＴＣＳ情報送出部５４に送出する。これにより、ＴＣＳ情報送出部５４は、ストローブ信号のプロセッサへの送出を一定期間停止する。つまり、ＴＣＳ制御ユニット５０は、プロセッサが出力する制御信号に応じて、プロセッサへのタイミング信号の送出を停止する。なお、プロセッサは、制御信号を出力した後も、ＴＣＳ情報読み出しの処理（図６のステップＳ１）を実行している。
【００９３】
このストローブ信号をゼロにする時間をτとする。ここでτをβよりも長く、α＋βよりも短い値とした場合、図９（ｂ）のマスク解除（ストローブ信号の送出再開）のタイミングで、ストローブ信号の送出が再開される。
【００９４】
図９（ｂ）に示した場合では、ＴＣＳ情報読み出し命令に応じた処理において、切り替え直前に読み出したＴＣＳ３１のＴＣＳ情報の読み出し失敗フラグはＯＮである。これは、前述の異常ケース（ストローブカウンタ不正）が生じるためである。次に、ＴＣＳ情報読み出しを再実行しても、切り替え直後に読み出したＴＣＳ３２のストローブ信号は一部マスクされている。そのため、前述の異常ケース（ストローブカウンタ不正）が生じ、やはり読み出し失敗フラグはＯＮとなる。この場合、図６のフローチャートにおいて、同じ処理中で読み出し失敗フラグが２回ＯＮになる。
【００９５】
しかし、その次のＴＣＳ情報の読み出しは正常に実行される。これは、ストローブ信号のマスクが解除されており、プロセッサは正常にＴＣＳ情報のフォーマットが読み出せるためである。このため、同じ処理中で読み出し失敗フラグが３回ＯＮになることはなく、ＴＣＳ情報読み出し命令は異常終了とならない。これにより、プロセッサは、ＴＣＳ情報の読み出しが正常に行われるため、ＴＣＳ情報読み出し命令を正常終了することができる。
【００９６】
以上のＴＣＳ制御ユニット５０の処理により、実施の形態２と同様、切り替わり時に発生し得る無効データの使用を回避することが可能となる。さらに、ストローブ信号をゼロにする時間τをβよりも長く、α＋βよりも短い値としたことで、プロセッサは、正確な時刻情報を速やかに取得することができる。例えば、図６のフローにおいて、異常終了とされる前のリトライ処理の段階で、プロセッサは正確な時刻情報を取得することができる。つまり、計算機システム４０は、自身の有する時刻情報を、正確な時刻情報に速やかに更新することができる。
【００９７】
さらに、本実施形態にかかる制御ユニットでは、ＴＣＳから受信したＴＣＳ情報をバッファとして一時保存する必要がない。そのため、ＴＣＳ制御ユニットの構成（計算機システムの構成）を、実施の形態２と比較して、より簡単にすることができる。
【００９８】
実施の形態４
実施の形態４において、ＴＣＳ制御ユニットは、複数のＴＣＳから受信したＴＣＳ情報の内容を認識した上で、プロセッサに送出している。ＴＣＳ情報切り替え機能部５３は、ＴＣＳ情報を切り替えるときに、切り替えた直後にプロセッサに送出するＴＣＳ情報中のフラグを書き替える。なお、このフラグは、ＴＣＳ情報が切り替えられたことを示す識別情報の一例である。
【００９９】
プロセッサは、そのフラグに基づき、受信したＴＣＳ情報を無効と判定する。これにより、プロセッサは、切り替え直後のＴＣＳ情報を取得することがない。このようにすることで、切り替え時にプロセッサが受信する時刻情報のデータ化けを防止することができる。
【０１００】
実施の形態４にかかる計算機システムの全体構成については、実施の形態２と殆ど同様である。実施の形態２と異なる点は、ＴＣＳ制御ユニット５０が、ＴＣＳ３１が送出するＴＣＳ情報及びＴＣＳ３２が送出するＴＣＳ情報の内容（図４に示したフォーマットの内容）を検知していることである。
【０１０１】
本実施の形態において、図４に示すＴＣＳ情報のフォーマットのステータス部分には、「データ更新中フラグ」がある。このデータ更新中フラグがＯＮ、つまり「１」の値をとっているとき、ＴＣＳ情報を受信したプロセッサは、ＴＣＳ情報読み出しを再実行する。また、受信したＴＣＳ情報は、ＯＳに送信せず、無効化される。これは、図６のＴＣＳ情報読み出し命令フローチャートにおいて説明した通りである。
【０１０２】
その他の計算機システムの構成及び動作については、実施の形態２と同様であるため、説明を省略する。
【０１０３】
ＴＣＳ情報切り替え機能部５３は、制御信号に基づいてＴＣＳ情報を切り替えるタイミングで、次にプロセッサに送出するＴＣＳ情報のフォーマットのステータスのデータ更新中フラグをＯＮにする。これにより、ステータス中のフラグを、データが有効ではないというフラグに差し替える。なお、プロセッサは、制御信号を出力した後も、ＴＣＳ情報読み出しの処理を実行している。プロセッサは、ＴＣＳ情報を読み出したときに、データ更新中フラグがＯＮであると判定し、ＴＣＳ情報読み出しを再実行する。
【０１０４】
ここで、図６において、ステップＳ２の判定からＴＣＳ情報読み出しを再実行するまでの間に、ステップＳ５にあるような時間待ち処理をいれることが望ましい。これにより、プロセッサは再読み込みの動作を何回も行わずにすむため、ＴＣＳ情報読み込み処理の異常終了を回避することができる。あるいは、ＯＳによるタイムアウトの判定により、ＴＣＳ情報読み込み処理が終了することを回避することができる。
【０１０５】
なお、本実施形態では、ＴＣＳインタフェース受信部５１、５２が、それぞれＴＣＳ３１、３２からのＴＣＳ情報のトランザクションをすべて受信する。そして、ＴＣＳ情報切り替え機能部５３は、プロセッサからの制御信号に応じて、ＴＣＳインタフェース受信部が受信した、異常があるＴＣＳのＴＣＳ情報ステータスのデータ更新中フラグを差し替える。そのため、トランザクションデータをすべて格納するバッファが、ＴＣＳインタフェース受信部５１、５２の２か所で必要となる。
【０１０６】
ＴＣＳ制御ユニット５０は、ステータスのデータ更新中フラグをＯＮにするのではなく、データ更新中フラグに相当する別のフラグを、ＴＣＳ情報に新規追加してもよい。プロセッサは、そのフラグを検知した後、同様に、ＴＣＳ情報読み出しを再実行する。ＴＣＳ制御ユニット５０は、制御信号に応じて、ＴＣＳ情報を、ＴＣＳ情報が切り替えられたことを示す識別情報を含む任意のデータに書き替えた上で、プロセッサに出力することができる。プロセッサは、その識別情報に基づいて、ＴＣＳ情報の読み出し失敗を判定する。
【０１０７】
以上、実施の形態２〜４にかかるＴＣＳが多重化された時刻供給システムについて説明した。この時刻供給システムにおいて、動作している一方のＴＣＳに障害が発生した場合、ＴＣＳ制御ユニットは、プロセッサに供給するＴＣＳ情報を、故障していない他方のＴＣＳのものに動的に切り替える。このタイミングにおいて、ＴＣＳ制御ユニットは、他方のＴＣＳが発行するＴＣＳ情報のデータを故意に書き替えるか、ストローブ信号のプロセッサへの供給を停止する。このようにして、プロセッサが受信するＴＣＳ情報が無効となるように化かすことで、切り替え時に発生し得る不正データをプロセッサに受け取らせないようにする。例えば、プロセッサにてリトライ処理を起こさせている。このようにして、ＴＣＳ情報切り替え時のデータ化けを防止することができる。
【０１０８】
実施の形態２〜４では、複数あるＴＣＳはいずれも動作中であるため、計算機システムに追加するハードウェアは少なくて済む。なお、ＴＣＳ情報切り替えのタイミングと、ＴＣＳトランザクションの発行タイミングが衝突する確率は、ＴＣＳトランザクションの処理時間及びＴＣＳトランザクションの発行間隔により上下する。ＴＣＳ情報切り替えのタイミングと、ＴＣＳトランザクションの発行タイミングが衝突すると、切り替える直前に受信したＴＣＳ情報のデータと、切り替える直後に受信したＴＣＳ情報のデータとが組み合されて、ＴＣＳ情報のデータ化けが発生する。このデータ化けにより、時刻情報が不正となった場合、計算機システムが不正な時刻情報を定期的に補正出来ない場合には、これはコンピュータシステムの致命的なデータ化けとなる。
【０１０９】
シミュレーション、実機評価においても、冗長構成したＴＣＳの切り替え時に、過渡的な条件を洗いだして検証することは難しい。システム運用中に時刻データ化けとなった場合も原因を特定するには難易度が高く、原因判明まで時間がかかる。このため、本実施の形態２〜４に記載した通り、過渡的なタイミングを漏れなく押さえて、データ化け防止の処理をすることは非常に重要である。
【０１１０】
ＴＣＳ等の装置を多重化されていない状態から多重化するように改善した場合、上述の説明と同様にデータ化けを回避するためには、ハードウェア、ファームウェア、ソフトウェアを組み合せて、複雑な処理を実行しても、データ化けの回避は実現可能である。しかし、実施の形態２〜４のように少ない処置で対策ができれば、ＴＣＳ以外の装置でも多重化の必要が生じたときにも、実施の形態２〜４の方法を利用して、対策を講じることができる。
【０１１１】
本実施形態２〜４にかかる時刻供給システムは、多重化しているコンピュータシステムの切り替え時の制御を簡易化できるため、デュアルシステム、デュプレックスシステム、フォールトトレラントコンピュータ分野で利用可能である。
【０１１２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、ＴＣＳの数、計算機システム中のプロセッサの数は、図１、図３に記載したものに限られない。ＴＣＳは、２個に限らず、３個以上といったように、複数備えられていればよい。プロセッサは、任意の数だけ備えられていてもよい。
【０１１３】
計算機システム中に複数のプロセッサがある場合、「ＴＣＳ制御ユニット−プロセッサＡ−プロセッサＢ−ＯＳ」という構造で接続されていてもよい。その場合、プロセッサＡはプロセッサＢに対するインタフェースを有している。さらに、図３においてＴＣＳ情報受信部３１、ＴＣＳ情報受信部３２がなくて、ＴＣＳ３１、ＴＣＳ３２が、ＴＣＳ制御ユニット５０のＴＣＳ情報切り替え機能部５３に直接接続されていてもよい。
【０１１４】
ＴＣＳ情報のフォーマットも、図４に示したものに限られない。例えば、ＴＣＳ情報の中身は、年月日だけといった、図４の例より少ない情報で構成されていてもよい。図４の例に記載されていない情報であっても、他の種類の時刻情報で構成されていてもよい。さらに、フォーマット中のパリティも、８ビットに対して１パリティが付与されなくてもよく、４ビットに対して１パリティ、又は１６ビットに対して１パリティといったように、ビットとパリティの比率の組み合わせが異なってもよい。
【０１１５】
図５（ａ）に示したシリアル転送フォーマットにおいて、記載されたデータ転送順以外で、データが送信されてもよい。データ転送は、シリアル転送ではなく、パラレル転送によって転送されてもよい。転送波形についても、図５（ｂ）のように、ストローブの立ち上がり及び立ち下がりでデータをセットするのではなく、ストローブの立ち上がりのみでデータをセットしてもよいし、ストローブの立ち下がりのみでデータをセットしてもよい。
【０１１６】
図６のフローチャートにおいて、ステップＳ２におけるデータ更新中フラグの判定、ステップＳ３における読み出し失敗フラグの判定、ステップＳ６におけるステータス異常の判定は、この順番に実施されなくてもよい。プロセッサは、このステップＳ２、ステップＳ３、ステップＳ６の判定を全て行わず、どれか１つ又は２つだけの判定を行ってもよい。
【０１１７】
図６のフローチャートにおいて、データ更新中フラグがＯＮである場合（ステップＳ２でＹｅｓ）、プロセッサは、ＴＣＳ情報読み出しを再実行する。再実行した後、読み出し失敗フラグがＯＮであり（ステップＳ３でＹｅｓ）、その処理中に読み出し失敗フラグがＯＮになったのは初めてである場合（ステップＳ４でＮｏ）、図６のフローチャートにおいてプロセッサファームウェアは、同じプロセッサにＴＣＳ情報を再度読み出させる。しかし、この場合、処理を行ったプロセッサが故障している可能性もありえる。そこで、同じプロセッサに命令を再実行させず、命令を異常終了させて、別のプロセッサに処理を引き継がせて、その別プロセッサでＴＣＳ情報読み出し命令を処理してもよい。要するに、プロセッサは、送出された時刻情報のデータが正常でない場合、そのデータに基づいて処理を行わないようにする、つまりそのデータをＯＳに送信しないようにするならば、他のフローで処理を行ってもよい。
【０１１８】
実施の形態２〜４において、１つのトランザクション中の情報量が所定の量ではない、あるいはデータが無効である（壊れている）といったＴＣＳ情報の異常があったときには、プロセッサは読み出し失敗フラグをＯＮに設定した。そして、図６の処理フロー中のステップＳ３にて、ＴＣＳ情報のエラーを判定した。しかし、読み出し失敗フラグという１つのフラグではなく、異常の種類毎に異なるフラグを設けてもよい。ＴＣＳ情報の異常があった場合、異常に対応したフラグをＯＮにして、プロセッサは図６と同様に、ＴＣＳ情報の再度の読み出しを行う。
【０１１９】
実施の形態２において、ＴＣＳ情報切り替え機能部は、切り替え直後にプロセッサに送出するトランザクションのデータのみを無効なデータになるように書き替えた。しかし、ＴＣＳ情報切り替え機能部は、切り替えた後、所定のフォーマット数（例えば数個程度）のＴＣＳ情報を、無効なデータになるように書き替えてもよい。実施の形態４においても同様である。
【０１２０】
実施の形態３において、ＴＣＳ情報切り替えからマスク解除までの時間τは、図９において示した通り、トランザクション同士の間隔βよりも長く、ＴＣＳ情報の周期α＋βよりも短い値である。しかし、ＴＣＳ情報切り替えからマスク解除までの時間は、この時間に限られない。たとえば、βよりも短く、１ビットの時刻情報を送出する時間よりも長い時間を、ＴＣＳ情報切り替えからマスク解除までの時間としてもよい。あるいは、α＋βよりも長い時間を、ＴＣＳ情報切り替えからマスク解除までの時間としてもよい。
【０１２１】
ただし、プロセッサが確実にデータを無効と検知するためには、マスク解除までの時間を時刻情報の間隔βよりも長くとるのが望ましい。
【０１２２】
さらに、計算機システムができるだけ早い段階でマスク解除を行い、正常な時刻情報を取得するためには、ＴＣＳ情報の周期α＋βよりも短い時間を、マスク解除までの時間とするのが望ましい。この理由は以下の通りである。図９（ａ）において、左端のデータ信号が出力されてから真ん中のデータ信号が出力されるまでの間にＴＣＳ情報切り替えが行われたとする。その場合、マスク解除までの時間がα＋βよりも短ければ、プロセッサは２番目に出力されるデータ信号（右端のデータ信号）を確実に取得することができる。なお、ＴＣＳ情報切り替え後、最初に出力されるデータ信号（真ん中のデータ信号）は、マスク解除までの時間がβよりも長いため、プロセッサが正常に取得することはできない。
【０１２３】
左端のデータ信号が出力されている最中にＴＣＳ情報切り替えが行われた場合でも、マスク解除までの時間がα＋βよりも短ければ、プロセッサは右端のデータ信号を確実に取得することができる。つまり、マスク解除までの時間をＴＣＳ情報の周期α＋βより短い値にすることによって、ＴＣＳ情報切り替え処理が行われた後、２番目に出力されたＴＣＳ情報を確実に取得することができる。以上より、計算機システムが確実にデータを無効と検知し、かつできるだけ早く正常な時刻情報を取得するためには、β＜τ＜α＋βであるのが望ましい。
【０１２４】
実施の形態３において、切り替え時にマスクされる信号は、ストローブではなくてデータでもよい。切り替え時に、全てのストローブ又はデータをマスクしなくてもよい。プロセッサがエラーを検出できるように、ＴＣＳ情報切り替え機能部がマスクを行うようにすれば、実施の形態に記載した以外のマスクの方法でもよい。
【０１２５】
実施の形態１〜４に示した本発明の計算機システムの動作は、制御方法の１つとして、計算機システムに実行させることができる。例えば、制御プログラムとして携帯機器に実行させることができる。また、当該制御プログラムは、計算機システムによって読み取り可能なようにプログラム記録媒体に記録されてもよい。
【０１２６】
さらに、実施の形態２〜４に示した時刻情報切り替え部の処理は、実施の形態１に示した時刻情報切り替え装置でも、同様に実行することができる。
【符号の説明】
【０１２７】
１０  時刻同期化システム
１１、１２  時刻同期化装置
２０  計算機システム
２１  時刻情報切り替え部
２２  制御部
２３  時刻情報切り替え装置
２４  制御装置
２５  切り替え機能部
２６  送出部
３０  時刻同期化システム
３１、３２  ＴＣＳ（時刻同期化装置）
４０  計算機システム
５０  ＴＣＳ制御ユニット
５１、５２  ＴＣＳインタフェース受信部
５３  ＴＣＳ情報切り替え機能部
５４  ＴＣＳ情報送出部
６１、６２、６３  プロセッサ
６４  ＴＣＳ情報受信部
６５  ＯＳインタフェース受信部
６６  ＯＳインタフェース送信部
７０  ＯＳ
【図１】
0005451700.tif 000002
【図２】
0005451700.tif 000003
【図３】
0005451700.tif 000004
【図４】
0005451700.tif 000005
【図５】
0005451700.tif 000006
【図６】
0005451700.tif 000007
【図７】
0005451700.tif 000008
【図８】
0005451700.tif 000009
【図９】
0005451700.tif 000010