(57)【要約】【課題】システム起動時及び終了時に生じる時刻ずれを抑制する情報処理装置の制御方法を提供する。【解決手段】情報処理装置の制御方法は、ＲＴＣと、高精度なクロックを生成するクロック生成部と、を備える情報処理装置の制御方法であって、ＲＴＣがカウントするＲＴＣ時刻を取得する工程と、アクセス時間を高精度なクロックを用いて計測する工程と、ＲＴＣ時刻とアクセス時間を加算することで、ＲＴＣ時刻を補正する工程と、補正されたＲＴＣ時刻及び高精度なクロックに基づいて、高精度な第２の最小カウント単位でカウントされるＢＩＯＳ時刻を生成する工程と、ＢＩＯＳ時刻と、ＲＴＣに時刻を保存する際に要する指定誤差時間と、をＯＳに通知する工程と、ＯＳ時刻を指定誤差時間により補正する工程と、補正後のＯＳ時刻を、ＢＩＯＳに通知する工程と、通知されたＯＳ時刻をＲＴＣに保存する工程と、を含む。【選択図】図１
2013168096.tif 000002
【特許請求の範囲】
【請求項１】
時刻をカウントする日時計時部と、前記日時計時部よりも高精度に時刻のカウントが可能なクロックを生成するクロック生成部と、を備える情報処理装置の制御方法であって、
前記日時計時部がカウントするＲＴＣ時刻を取得する第１の工程と、
前記ＲＴＣ時刻を取得するのに要するアクセス時間を、前記クロック生成部が生成するクロックを用いて計測する第２の工程と、
前記日時計時部の第１の最小カウント単位が更新されるまで、前記ＲＴＣ時刻の取得を繰り返した後、前記ＲＴＣ時刻と前記アクセス時間を加算することで、前記ＲＴＣ時刻を補正する第３の工程と、
前記補正されたＲＴＣ時刻及び前記クロック生成部が生成するクロックに基づいて、前記第１の最小カウント単位よりも精度のよい第２の最小カウント単位でカウントされるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）時刻を生成する第４の工程と、
前記ＢＩＯＳ時刻と、前記日時計時部に時刻を保存する際に要する指定誤差時間と、をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に通知する第５の工程と、
ＯＳが管理する時刻であって、前記第１の最小カウント単位よりも精度のよい第３の最小カウント単位でカウントされるＯＳ時刻を、前記指定誤差時間に基づいて補正する第６の工程と、
前記補正されたＯＳ時刻を、ＢＩＯＳに通知する第７の工程と、
前記通知されたＯＳ時刻を前記日時計時部に保存する第８の工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項２】
前記第５の工程は、
前記第１及び第２の最小カウント単位が更新されるまで、前記ＢＩＯＳ時刻の生成を繰り返す工程と、
前記第１及び第２の最小カウント単位が更新された後に、前記ＢＩＯＳ時刻をＯＳに通知する工程と、
を含む請求項１の情報処理装置の制御方法。
【請求項３】
前記第６の工程は、前記日時計時部に対する時刻の更新を禁止する工程を含み、
前記第７の工程は、前記日時計時部に対する時刻の更新を許可する工程を含む請求項１又は２の情報処理装置の制御方法。
【請求項４】
時刻をカウントする日時計時部と、前記日時計時部よりも高精度に時刻のカウントが可能なクロックを生成するクロック生成部と、を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、
前記日時計時部がカウントするＲＴＣ時刻を取得する処理と、
前記ＲＴＣ時刻を取得するのに要するアクセス時間を、前記クロック生成部が生成するクロックを用いて計測する処理と、
前記日時計時部の第１の最小カウント単位が更新されるまで、前記ＲＴＣ時刻の取得を繰り返した後、前記ＲＴＣ時刻と前記アクセス時間を加算することで、前記ＲＴＣ時刻を補正する処理と、
前記補正されたＲＴＣ時刻及び前記クロック生成部が生成するクロックに基づいて、前記第１の最小カウント単位よりも精度のよい第２の最小カウント単位でカウントされるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）時刻を生成する処理と、
前記ＢＩＯＳ時刻と、前記日時計時部に時刻を保存する際に要する指定誤差時間と、をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に通知する処理と、
ＯＳから通知される時刻を前記日時計時部に保存する処理と、
を実行するプログラム。
【請求項５】
さらに、前記第１及び第２の最小カウント単位が更新されるまで、前記ＢＩＯＳ時刻の生成を繰り返す処理と、
前記第１及び第２の最小カウント単位が更新された後に、前記ＢＩＯＳ時刻をＯＳに通知する処理と、
を実行する請求項４のプログラム。
【請求項６】
時刻をカウントする日時計時部を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、
ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が前記日時計時部に時刻を保存する際に要する時間である指定誤差時間をＢＩＯＳから受け取る処理と、
前記情報処理装置の内部で使用する時刻を、前記指定誤差時間に基づいて補正する処理と、
前記補正された時刻を、ＢＩＯＳに通知する処理と、
を実行するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の制御方法及びプログラムに関する。特に、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）を備える情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
サーバ等の情報処理装置は、マザーボード上に日時（時刻）のカウントを目的とした集積回路であるＲＴＣを実装している。ＲＴＣは、情報処理装置のメイン電源がオンされ、外部から電源が供給されている場合は、当該電源により動作する。一方、情報処理装置のメイン電源がオフされ、外部から電源の供給がない場合は、内部の電池から電源供給を受け、動作する。そのため、情報処理装置のメイン電源がオフの場合であっても、時刻のカウントが可能である。
【０００３】
また、情報処理装置のマザーボードには、システム起動時に実行されるシステム管理プログラムを格納するＢＩＯＳ−ＲＯＭ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）が実装されている。情報処理装置は、システム管理プログラムの実行の後、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラムによる制御に移行する。
【０００４】
ここで、ＯＳはシステム起動時に、システム管理プログラムを経由して、ＲＴＣから時刻を取得する。その後、ＯＳはマザーボード上に実装されている高精度なクロックを用いて、独自に時刻を管理する。さらに、システム終了時には、ＯＳが管理する時刻を、システム管理プログラムを経由して、ＲＴＣに保存する（ＲＴＣが管理する時刻に反映する）。なお、ＲＴＣにおける時刻のカウントは、秒単位で行われおり、ＲＴＣからＯＳに通知する時刻も秒単位である。
【０００５】
ここで、特許文献１において、ＲＴＣが計時する時刻の狂いを高精度で検出し、情報処理装置の動作に対する信頼性を向上する技術が開示されている。さらに、特許文献２において、標準周波数時報電波を利用してＲＴＣの時刻を補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０２７５９７号公報
【特許文献２】特開２０１１−０１３０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【０００８】
上述のように、ＲＴＣが時刻をカウントする際の最小カウント単位は秒単位である。従って、ＯＳが高精度なクロックを用いて、ミリ秒単位で時刻を計時しても、このようなミリ秒単位の時刻情報は切り捨てられる。その結果、ＯＳの管理する時刻にずれが生じる。
【０００９】
図２は、ＲＴＣの時刻カウントと、ＯＳに通知する際の時刻との関係の一例を示す図である。図２より、時刻Ｂ１から時刻Ｂ２の間に、ＲＴＣから得られる時刻は全てａ秒である。この時刻Ｂ１から時刻Ｂ２までの期間は、ミリ秒単位に換算すれば、最大で９９９ミリ秒となる。従って、システム管理プログラムがＲＴＣから時刻を得るタイミングに依存し、約１秒の誤差が生じる可能性がある。また、システム終了時には、システム管理プログラムはＲＴＣに時刻を保存するが、この場合にも、その保存のタイミングに依存して、約１秒の誤差が生じる可能性がある。以上のことから、システムを起動し、終了するたびに、約２秒の誤差が生じる可能性がある。
【００１０】
ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）サーバが含まれるネットワークに接続された情報処理装置であれば、ＮＴＰサーバから得られる情報を用いて時刻の補正ができる。しかし、ＮＴＰサーバにアクセスできず、かつ、日常的に起動・終了を行うシステムも存在する。このようなシステムでは、ＲＴＣの精度に起因した時刻の遅れが問題となる。即ち、システムの時刻が正確でなければ、ログ情報等を収集する意義も希薄となるためである。そのため、システム起動及び終了時に生じる時刻ずれを抑制する情報処理装置の制御方法及びプログラムが、望まれる。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、時刻をカウントする日時計時部と、前記日時計時部よりも高精度に時刻のカウントが可能なクロックを生成するクロック生成部と、を備える情報処理装置の制御方法であって、前記日時計時部がカウントするＲＴＣ時刻を取得する第１の工程と、前記ＲＴＣ時刻を取得するのに要するアクセス時間を、前記クロック生成部が生成するクロックを用いて計測する第２の工程と、前記日時計時部の第１の最小カウント単位が更新されるまで、前記ＲＴＣ時刻の取得を繰り返した後、前記ＲＴＣ時刻と前記アクセス時間を加算することで、前記ＲＴＣ時刻を補正する第３の工程と、前記補正されたＲＴＣ時刻及び前記クロック生成部が生成するクロックに基づいて、前記第１の最小カウント単位よりも精度のよい第２の最小カウント単位でカウントされるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）時刻を生成する第４の工程と、前記ＢＩＯＳ時刻と、前記日時計時部に時刻を保存する際に要する指定誤差時間と、をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に通知する第５の工程と、ＯＳが管理する時刻であって、前記第１の最小カウント単位よりも精度のよい第３の最小カウント単位でカウントされるＯＳ時刻を、前記指定誤差時間に基づいて補正する第６の工程と、前記補正されたＯＳ時刻を、ＢＩＯＳに通知する第７の工程と、前記通知されたＯＳ時刻を前記日時計時部に保存する第８の工程と、を含む情報処理装置の制御方法が提供される。
【００１２】
本発明の第２の視点によれば、時刻をカウントする日時計時部と、前記日時計時部よりも高精度に時刻のカウントが可能なクロックを生成するクロック生成部と、を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、前記日時計時部がカウントするＲＴＣ時刻を取得する処理と、前記ＲＴＣ時刻を取得するのに要するアクセス時間を、前記クロック生成部が生成するクロックを用いて計測する処理と、前記日時計時部の第１の最小カウント単位が更新されるまで、前記ＲＴＣ時刻の取得を繰り返した後、前記ＲＴＣ時刻と前記アクセス時間を加算することで、前記ＲＴＣ時刻を補正する処理と、前記補正されたＲＴＣ時刻及び前記クロック生成部が生成するクロックに基づいて、前記第１の最小カウント単位よりも精度のよい第２の最小カウント単位でカウントされるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）時刻を生成する処理と、前記ＢＩＯＳ時刻と、前記日時計時部に時刻を保存する際に要する指定誤差時間と、をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に通知する処理と、ＯＳから通知される時刻を前記日時計時部に保存する処理と、を実行するプログラムが提供される。
【００１３】
本発明の第３の視点によれば、時刻をカウントする日時計時部を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が前記日時計時部に時刻を保存する際に要する時間である指定誤差時間をＢＩＯＳから受け取る処理と、前記情報処理装置の内部で使用する時刻を、前記指定誤差時間に基づいて補正する処理と、前記補正された時刻を、ＢＩＯＳに通知する処理と、を実行するプログラムが提供される。なお、第２及び第３の視点におけるプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明の各視点によれば、システム起動及び終了時に生じる時刻ずれを抑制する情報処理装置の制御方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１５】
【図１】一実施形態の概要を説明するためのフローチャートである。
【図２】ＲＴＣの時刻カウントと、ＯＳに通知する際の時刻との関係の一例を示す図である。
【図３】第１の実施形態に係る情報処理装置１の内部構成の一例を示す図である。
【図４】システム起動時における情報処理装置１の動作の一例を示すフローチャートである。
【図５】システム終了時における情報処理装置１の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
上述のように、ＲＴＣから取得できる時刻は、秒単位であるため、システム管理プログラム（ＢＩＯＳ）がＲＴＣから時刻を得るタイミングによっては、ＯＳに通知する時刻に大きな誤差が生じる可能性がある。同様に、ＯＳが管理する時刻をＲＴＣに保存する際にも、そのタイミングによっては、大きな誤差が生じる可能性がある。そのため、システム起動時及び終了時に生じる時刻ずれを抑制する情報処理装置の制御方法が、望まれる。
【００１８】
そこで、一例として図１に示す情報処理装置の制御方法を提供する。図１に示す情報処理装置の制御方法は、時刻をカウントする日時計時部と、日時計時部よりも高精度に時刻のカウントが可能なクロックを生成するクロック生成部と、を備える情報処理装置の制御方法であって、日時計時部がカウントするＲＴＣ時刻を取得する第１の工程と、ＲＴＣ時刻を取得するのに要するアクセス時間を、クロック生成部が生成するクロックを用いて計測する第２の工程と、日時計時部の第１の最小カウント単位が更新されるまで、ＲＴＣ時刻の取得を繰り返した後、ＲＴＣ時刻とアクセス時間を加算することで、ＲＴＣ時刻を補正する第３の工程と、補正されたＲＴＣ時刻及びクロック生成部が生成するクロックに基づいて、第１の最小カウント単位よりも精度のよい第２の最小カウント単位でカウントされるＢＩＯＳ時刻を生成する第４の工程と、ＢＩＯＳ時刻と、日時計時部に時刻を保存する際に要する指定誤差時間と、をＯＳに通知する第５の工程と、ＯＳが管理する時刻であって、第１の最小カウント単位よりも精度のよい第３の最小カウント単位でカウントされるＯＳ時刻を、指定誤差時間に基づいて補正する第６の工程と、補正されたＯＳ時刻を、ＢＩＯＳに通知する第７の工程と、通知されたＯＳ時刻を日時計時部に保存する第８の工程と、を含む。
【００１９】
ここで、情報処理装置が使用する各種の時刻をまとめると、日時計時部（例えば、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ））がカウントする時刻がＲＴＣ時刻、日時計時部にアクセスすることで得られる時刻がＢＩＯＳ時刻、ＯＳにより独自に管理される時刻がＯＳ時刻、となる。なお、日時計時部がカウントする時刻の最小カウント単位を第１の最小カウント単位（例えば、秒単位）とする。また、ＢＩＯＳ時刻の最小カウント単位を第２の最小カウント単位（例えば、マイクロ秒単位）とする。さらに、ＯＳ時刻の最小カウント単位を第３の最小カウント単位（例えば、ミリ秒単位）とする。
【００２０】
図１に示す情報処理装置の制御方法は、第２の工程（ステップＳ１０２）において、日時計時部から時刻を取得する際に要するアクセス時間を計測しておく。第１の工程（ステップＳ１０１）で得られたＲＴＣ時刻にアクセス時間を加算することで、ＲＴＣ時刻を補正する（第３の工程；ステップＳ１０３）。ＲＴＣ時刻にアクセス時間を加算することで、ＢＩＯＳが日時計時部にアクセスするタイミングによって生じる誤差を小さくする。
【００２１】
次に、第４の工程（ステップＳ１０４）において、ＲＴＣ時刻と高精度なクロックを用いて、精度の高いＢＩＯＳ時刻を生成し、第５の工程（ステップＳ１０５）でＯＳに通知する。より具体的には、日時計時部の第１の最小カウント単位が秒単位であれば、本ステップでＢＩＯＳ時刻をマイクロ秒単位に補正する。また、その際、ＢＩＯＳが日時計時部に時刻を保存する際に要する時間を指定誤差時間として計測し、ＯＳに通知する。
【００２２】
ＯＳは、システム終了時に、ＯＳが管理するＯＳ時刻に指定誤差時間を加算することよって、ＯＳ時刻を補正（第６の工程；ステップＳ１０６）し、ＢＩＯＳに通知する（第７の工程；ステップＳ１０７）。通知を受けたＢＩＯＳは、日時計時部にＯＳ時刻を保存する（第８の工程；ステップＳ１０８）。ＢＩＯＳに通知されるＯＳ時刻は、ＢＩＯＳが日時計時部に時刻を保存する際に要する時間分進められているため、ＢＩＯＳが日時計時部にアクセスするタイミングによって生じる誤差を小さくすることができる。その結果、システム起動時及び終了時における時刻のずれを抑制することができる。
【００２３】
さらに、下記の形態が可能である。
【００２４】
［形態１］上記第１の視点に係る情報処理装置の制御方法のとおりである。
【００２５】
［形態２］前記第５の工程は、前記第１及び第２の最小カウント単位が更新されるまで、前記ＢＩＯＳ時刻の生成を繰り返す工程と、前記第１及び第２の最小カウント単位が更新された後に、前記ＢＩＯＳ時刻をＯＳに通知する工程と、を含むことが好ましい。
【００２６】
［形態３］前記第６の工程は、前記日時計時部に対する時刻の更新を禁止する工程を含み、前記第７の工程は、前記日時計時部に対する時刻の更新を許可する工程を含むことが好ましい。
【００２７】
［形態４］上記第２の視点に係るプログラムのとおりである。
【００２８】
［形態５］前記プログラムは、さらに、さらに、前記第１及び第２の最小カウント単位が更新されるまで、前記ＢＩＯＳ時刻の生成を繰り返す処理と、前記第１及び第２の最小カウント単位が更新された後に、前記ＢＩＯＳ時刻をＯＳに通知する処理と、を実行することが好ましい。
【００２９】
［形態６］上記第３の視点に係るプログラムのとおりである。
【００３０】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００３１】
［第１の実施形態］
本発明の第１の実施形態について、図面を用いてより詳細に説明する。
【００３２】
図３は、本実施形態に係る情報処理装置１の内部構成の一例を示す図である。なお、図３には、簡単のため、本実施形態に係る情報処理装置１に関係するモジュールのみを記載する。
【００３３】
情報処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、ＢＩＯＳ−ＲＯＭ２０と、ＲＴＣ３０と、クロック生成部４０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）６０と、を備えている。
【００３４】
ＣＰＵ１０とＢＩＯＳ−ＲＯＭ２０等の各デバイスは、バスを介して接続されている。ＣＰＵ１０は、ＢＩＯＳ−ＲＯＭ２０からシステム管理プログラムを読み出し、その実行を行う。さらに、システム管理プログラムの実行の後は、ＨＤＤ６０からＯＳやアプリケーションプログラムを読み出し、その実行を行う。
【００３５】
ＢＩＯＳ−ＲＯＭ２０は、書き換え可能な不揮発性素子により構成される半導体メモリ（例えば、フラッシュメモリ）である。
【００３６】
ＲＴＣ３０は、秒単位で時刻のカウントを行う。ＲＴＣ３０が、上述の日時計時部に相当する。クロック生成部４０は、システム管理プログラムが利用可能なクロックであって、ＲＴＣ３０よりも高精度に時刻のカウントが可能クロックを生成する。より具体的には、クロック生成部４０は、マイクロ秒単位で時刻のカウントが可能なクロックを生成する。
【００３７】
ＣＰＵ１０は、ＲＡＭ５０及びＨＤＤ６０を、プログラムを実行する際の記憶手段として用いる。なお、以降の説明において、ＣＰＵ１０により実行されるシステム管理プログラムをＢＩＯＳと表記する。
【００３８】
次に、システム起動時及び終了時における情報処理装置１の動作について説明する。初めに、システム起動時における情報処理装置１の動作について説明する。
【００３９】
図４は、システム起動時における情報処理装置１の動作の一例を示すフローチャートである。
【００４０】
ステップＳ０１において、ＢＩＯＳは、ＲＴＣ３０からＲＴＣ時刻を取得する。ＢＩＯＳは、取得したＲＴＣ時刻を、ＢＩＯＳ時刻として管理する。
【００４１】
ステップＳ０２において、ＢＩＯＳは、前ステップでＲＴＣ３０にアクセスを開始してから実際に時刻が得られるまでの時間（アクセス時間）を計測する。その際、ＢＩＯＳは、クロック生成部４０が生成するクロックを使用することで、マイクロ秒単位でアクセス時間を計測する。ここで、ＲＴＣ時刻、ＢＩＯＳ時刻及びアクセス時間の間には、以下の式（１）の関係が成り立つ。
ＲＴＣ時刻＝ＢＩＯＳ時刻＋アクセス時間  ・・・（１）
即ち、ＢＩＯＳがＲＴＣ３０にアクセスを開始してから実際に時刻を得るまでの間にも、ＲＴＣ３０は時刻のカウントを行っている。この間の時間がアクセス時間である。
【００４２】
ステップＳ０３において、ＢＩＯＳは、ＲＴＣ３０からＲＴＣ時刻を再取得する。
【００４３】
ステップＳ０４において、ＢＩＯＳは、ステップＳ０１における時刻の取得から１秒経過したか否かを判断する。つまり、本ステップでは、ＢＩＯＳ時刻が更新されたか否かを確認する。ＢＩＯＳ時刻が更新されていれば（ステップＳ０４、Ｙｅｓ分岐）、ステップＳ０５に遷移し、更新されてなければ（ステップＳ０４、Ｎｏ分岐）、ステップＳ０３に戻り処理を継続する。
【００４４】
ステップＳ０５において、ＢＩＯＳは、本ステップの直前に得たＢＩＯＳ時刻と、ステップＳ０２で取得したアクセス時間を加算する。ＢＩＯＳ時刻にアクセス時間を加算することで、ＢＩＯＳ時刻を補正する。より具体的には、ＢＩＯＳ時刻をＲＴＣ時刻に近づける方向に補正する。その際、アクセス時間はクロック生成部４０が生成するクロックを用いて計測されているため、ＢＩＯＳ時刻はマイクロ秒単位の精度で補正される。
【００４５】
ステップＳ０６において、ＢＩＯＳは、ＢＩＯＳ時刻のカウントを行う。この場合にも、ＢＩＯＳはクロック生成部４０が生成するクロックを使用する。
【００４６】
ステップＳ０７において、ＢＩＯＳは、前ステップで生成したＢＩＯＳ時刻が１秒経過したか否かを確認する（秒の桁が繰り上がったか否かを確認する）。その際、マイクロ秒単位で、ＢＩＯＳ時刻の更新を確認する（ミリ秒、マイクロ秒の桁を含めて、０となることを確認する）。ＢＩＯＳ時刻が１秒経過すれば、ステップＳ０８に遷移し（ステップＳ０７、Ｙｅｓ分岐）、１秒経過してなければ（ステップＳ０７、Ｎｏ分岐）、ステップＳ０６に戻り処理を継続する。本ステップで、ＢＩＯＳ時刻の更新を確認する理由は、ＢＩＯＳ−ＯＳ間のインターフェイスは、秒単位で時刻を通知することに起因する。即ち、既存のＢＩＯＳ−ＯＳ間のインターフェイスを利用する前提であれば、ＯＳに通知するＢＩＯＳ時刻の最小カウント単位は、「秒」の必要がある。しかし、既存のインターフェイスを利用しなければ、必ずしも本ステップの処理は必要ない。
【００４７】
ステップＳ０８において、ＢＩＯＳは、ＢＩＯＳ時刻をＯＳに通知する。また、本ステップにおいて、ＢＩＯＳは、ＲＴＣ３０に時刻を保存する際に必要な処理時間を計測する。その際、ＢＩＯＳは、クロック生成部４０が生成するクロックを計測に使用する。ＢＩＯＳは、ＢＩＯＳ時刻と共に、上記の処理時間を指定誤差時間として、ＯＳに通知する。
【００４８】
次に、システム終了時における情報処理装置１の動作について説明する。
【００４９】
図５は、システム終了時における情報処理装置１の動作の一例を示すフローチャートである。
【００５０】
ステップＳ１１において、ＯＳからＢＩＯＳに対して時刻保存の通知がなされたとしても、通知された時刻の保存を禁止する指示を通知する。ＢＩＯＳは、ＯＳから時刻保存禁止通知を受けた後は、時刻保存解除通知を受けるまで時刻を保存しない。
【００５１】
ステップＳ１２において、ＯＳは、クロック生成部４０が生成するクロック、又は、クロック４０が生成するクロックとは異なる高精度なクロックから生成されたＯＳ時刻を取得する。
【００５２】
ステップＳ１３において、ＯＳは、ＯＳ時刻と、ＢＩＯＳから通知された指定誤差時間を加算する。ＯＳは、ＯＳ時刻に指定誤差時間を加算することで、ＯＳ時刻の補正を行う。即ち、ＢＩＯＳがＲＴＣ３０に時刻を保存する際に要する時間を考慮し、実際のＯＳ時刻を予め進める補正を行う。
【００５３】
ステップＳ１４において、ＯＳは、補正後のＯＳ時刻のミリ秒の桁が０であるか否かを確認する。ミリ秒の桁が０であれば、ステップＳ１５に遷移し（ステップＳ１４、Ｙｅｓ分岐）、０でなければ、ステップＳ１２に戻り処理を継続する（ステップＳ１４、Ｎｏ分岐）。
【００５４】
ステップＳ１５において、ＯＳは、時刻保存解除通知をＢＩＯＳに通知すると共に、補正後のＯＳ時刻をＢＩＯＳに通知する。時刻保存解除通知を受けたＢＩＯＳは、ＲＴＣ３０に対して時刻の保存が可能になる。
【００５５】
ステップＳ１６において、ＢＩＯＳは、前ステップで受け付けたＯＳ時刻をＲＴＣ３０に保存する。
【００５６】
以上のように、本実施形態に係る情報処理装置１は、ＢＩＯＳがＲＴＣ３０から取得し、ＯＳに通知するＢＩＯＳ時刻を、アクセス時間に基づき補正する。そのため、実際にＲＴＣがカウントする時刻とＯＳに通知されたＢＩＯＳ時刻との誤差を小さくすることができる。また、ＯＳからＢＩＯＳに通知するＯＳ時刻を、指定誤差時間に基づき補正する。この指定誤差時間に基づき補正されたＯＳ時刻は、ＲＴＣ３０に時刻を保存するために要する時間が考慮された時刻であるため、システム終了時までにＯＳが管理していた時刻とＲＴＣ３０保存される時刻との誤差を小さくすることができる。このように、補正された時刻（ＢＩＯＳ時刻及びＯＳ時刻）を用いることで、システム起動及び終了時に生じる時刻ずれを抑制できる。
【００５７】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５８】
１  情報処理装置
１０  ＣＰＵ
２０  ＢＩＯＳ−ＲＯＭ
３０  ＲＴＣ
４０  クロック生成部
５０  ＲＡＭ
６０  ＨＤＤ
【図１】
2013168096.tif 000003
【図２】
2013168096.tif 000004
【図３】
2013168096.tif 000005
【図４】
2013168096.tif 000006
【図５】
2013168096.tif 000007