(57)【要約】  情報処理装置に、パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出する検出手段と、計時手段の切替えを検出しない場合、第１の計時手段から時刻を取得した時刻を、パーティションで使用する時刻を計時する第３の計時手段に設定し、計時手段の切替えを検出した場合、第３の計時手段から時刻を取得した時刻を第２の計時手段に設定する第１の設定手段と、オペレーティングシステムによる第１の計時手段への時刻設定を検出すると、オペレーティングシステムが第１の計時手段に設定した時刻を、第３の計時手段に設定する第２の設定手段と、を備える。
2012131964.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上のパーティションを含む情報処理装置において、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出する検出手段と、
前記計時手段の切替えを検出しない場合、前記第１の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第３の計時手段から時刻を取得した時刻を前記第２の計時手段に設定する第１の設定手段と、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する第２の設定手段と、
を備える情報処理装置。
【請求項２】
前記パーティションの構成を制御する制御手段をさらに備え、
前記制御手段は、前記パーティションに含まれるハードウェアを変更すると、該変更前のハードウェアに含まれる計時手段が、前記オペレーティングシステムが使用する時刻を計時する前記第１の計時手段であった場合、前記計時手段の切替えがあったと判別する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記計時手段の切替えの有無を示す情報を、所定の記憶手段を介して、前記検出手段に通知する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記計時手段の切り替えの有無を示す情報を、双方向通信インタフェースを用いた前記検出手段との通信によって通知する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
１または２以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合には、前記第１の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定する一方、前記計時手段の切替えを検出した場合には、前記第３の計時手段から時刻を取得した時刻を前記第２の計時手段に設定し、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する、
処理を実行させる制御方法。
【請求項６】
１または２以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合、前記第１の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第３の計時手段から時刻を取得した時刻を前記第２の計時手段に設定し、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する、
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、複数のシステム・ボードを備える情報処理装置が知られている。システム・ボードには、例えば、メモリコントローラを含むＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、Ｉ／Ｏ  ＨＵＢ、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ（ＩＣＨ）、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）などが含まれる。システム・ボードは、Ｉ／Ｏ  ＨＵＢ配下に接続されるＩＯ装置と組み合わせて一つの論理システム、すなわちパーティションとして動作する。【０００３】
情報処理装置が複数のシステム・ボードを含む場合、情報処理装置は、任意のシステム・ボードをまとめて１つのパーティションとして構成することで、１または２以上のパーティションを含むこともできる。【０００４】
ＲＴＣは、パーティションで使用する時計である。ＲＴＣは、１つのパーティション内では１つだけが有効となる。ＲＴＣは、パーティションの電源とは異なる電源、例えば、電池等で動作するので、パーティションの電源が切断されていても時刻を刻み続ける。【０００５】
また、情報処理装置は、システム制御装置（ＳＣＵ：Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を備える。システム制御装置は、パーティション構成やパーティションの電源のＯＮ／ＯＦＦなどの制御を行なう。システム制御装置には、システム制御装置自身の時刻を刻む時計であるＳＣＵ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）クロックが含まれる。ＳＣＵクロックは、ＲＴＣと同程度の精度を持つ。また、システム制御装置には、パーティション情報を保持する記憶媒体が含まれる。【０００６】
情報処理装置は例えば、システム・ボード＃０の故障を検出すると、システム・ボード＃０を含むパーティションを再起動する。このとき、情報処理装置は、システム・ボード＃０をパーティションから切り離し、予備の待機系システム・ボード＃１をパーティションに組み込んで、パーティションを復旧させる。【０００７】
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が起動するときに、ＯＳは、ＲＴＣから、ＲＴＣが計時する時刻（以下、「ＲＴＣ時刻」という）を取得する。取得したＲＴＣ時刻は、ＯＳが稼働中、ＣＰＵのカウンタによって計時される。ＯＳは、ＣＰＵのカウンタに計時される時刻を使用する。以下、ＯＳが使用する時刻を「ＯＳ時刻」という。ＯＳが停止するときに、ＯＳは、ＣＰＵのカウンタから取得したＯＳ時刻をＲＴＣに設定する。これにより、ＯＳが起動していない間、ＲＴＣでＯＳ時刻が計時される。【０００８】
また、システム・ボード＃０に備わるＲＴＣが有効な場合に、システム・ボード＃０を予備のシステム・ボード＃１に交換すると、パーディション内で有効のＲＴＣとして、例えば交換後のシステム・ボード＃１のＲＴＣを有効にする必要がある。この場合、ＯＳは、システム・ボード＃１のＲＴＣからＲＴＣ時刻をＯＳ時刻として取得する。【０００９】
通常、交換前のシステム・ボード＃０のＲＴＣが計時するＲＴＣ時刻と、交換後のシステム・ボード＃１のＲＴＣが計時するＲＴＣ時刻とは異なっている。そのため、システム・ボードの交換前と交換後でＯＳ時刻が変化してしまう場合がある。そこで、ＯＳ時刻の引継ぎ処理が行なわれる。【００１０】
図１は、ＯＳ時刻の引継ぎ処理を説明するための情報処理装置１００の概念図である。
図１に示す情報処理装置１００は、情報処理装置１００を論理的に分割したパーティション１１０と、システム制御装置１２０と、を備える。【００１１】
パーティション１１０には、ハードウェア１１１、ＣＰＵ１１１ｃによって実行されるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１１２およびＯＳ１１３などが含まれる。ハードウェア１１１には、ＲＴＣ１１１ａ、Ｌｅｇａｃｙ  Ｉ／Ｏ
Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ１１１ｂおよびＣＰＵ１１１ｃなどが含まれる。ＣＰＵ１１１ｃは、時刻を計時するカウンタ１１１ｄを備える。【００１２】
システム制御装置１２０には、ハードウェア１２１、ＣＰＵ１２１ｃによって実行されるＳＣＵファームウェア１２２などが含まれる。ハードウェア１２１には、ＳＣＵクロック１２１ａ、メモリ１２１ｂおよびＣＰＵ１２１ｃなどが含まれる。
情報処理装置１００は、図２に示す処理によって、ＯＳ時刻の引継ぎを行なう。【００１３】
ＢＩＯＳ１１２は、ＯＳ１１３起動前に、ＲＴＣ１１１ａからＲＴＣ時刻を取得する（ステップＳ２０１）。ＲＴＣ時刻が初期設定時刻以外の場合（ステップＳ２０２  ＹＥＳ）、ＢＩＯＳ１１２は、ＳＣＵファームウェア１２２にＲＴＣ時刻を通知する（ステップＳ２０３）。この場合、ＳＣＵファームウェア１２２は、ＢＩＯＳ１１２から通知されたＲＴＣ時刻と、ＳＣＵクロック１２１ａの時刻との差分値Δｔをメモリ１２１ｂに記憶する。以下、ＳＣＵクロックの時刻を「ＳＣＵ時刻」という。このように、ＳＣＵファームウェア１１２は、ＳＣＵクロック１２１ａのＳＣＵ時刻との差分値Δｔの形で、パーティションで使用する基準時刻（以下、「パーティション時刻」という）を保持する。【００１４】
また、ＲＴＣ時刻が初期設定時刻の場合（ステップＳ２０２  ＮＯ）、ＢＩＯＳ１１２は、システム・ボードが交換されたと判断する。この場合、ＢＩＯＳ１１２は、ＳＣＵファームウェア１２２からパーティション時刻を取得する（ステップＳ２０４）。具体的には、次のような処理が行なわれる。まず、ＢＩＯＳ１１２が、ＳＣＵファームウェア１２２に対してパーティション時刻を要求する。すると、要求を受けたＳＣＵファームウェア１２２は、ＳＣＵクロック１２１ａのＳＣＵ時刻に、メモリ１２１ｂに記憶された差分値Δｔを加算してパーティション時刻を生成する。そして、ＳＣＵファームウェア１２２は、生成したパーティション時刻をＢＩＯＳ１１２に通知する。【００１５】
ＳＣＵファームウェア１２２からパーティション時刻を取得すると、ＢＩＯＳ１１２は、ＲＴＣ１１１ａのＲＴＣ時刻を、ＳＣＵファームウェア１２２から取得したパーティション時刻に書き換える（ステップＳ２０５）。【００１６】
その後、ＯＳ１１３が起動すると、ＯＳ１１３は、ＲＴＣ１１１ａからＲＴＣ時刻を取得する。取得したＲＴＣ時刻は、ＣＰＵ１１１ｃ内のカウンタ１１１ｄで計時される。ＯＳ１１３は、カウンタ１１１ｄで計時される時刻をＯＳ時刻として使用する。【００１７】
以上のようにして、情報処理装置１００は、パーティションで使用されていたＲＴＣが搭載されたシステム・ボードが交換された場合でも、ＯＳ時刻を引継ぐことができる。【００１８】
上記技術に関連して、各プロセッサからのアクセスをバス獲得制御部で一旦受け、このバス獲得制御部がいずれか一つのプロセッサを、共通バスを介してリアルタイムクロックに接続させるように構成したリアルタイムクロックのアクセス方式が知られている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開平０５−００６２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
しかし、図２で説明したＯＳ時刻の引継ぎ処理は、交換後のシステム・ボードのＲＴＣ時刻に初期設定時刻が設定されている必要がある。したがって、例えば、交換後のシステム・ボードが、交換前に既にパーティションの資源として使用されてＲＴＣ時刻が設定され、その使用後ＲＴＣ時刻に初期設定時刻が設定されていなかった場合など、ＲＴＣ時刻に初期設定時刻以外の値が設定されている場合、正常に時刻の引継ぎができない。【００２１】
図３は、時刻の引継ぎ処理が正常に行なわれない場合の一例を説明する図である。【００２２】
なお、図３では、システム・ボード＃０を「ＳＢ＃０」、システム・ボード＃１を「ＳＢ＃１」と略記する。また、ＳＢ＃０上のＲＴＣをＲＴＣ＃０、ＳＢ＃０で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃０、ＢＩＯＳ＃０とする。そして、ＲＴＣ＃０のＲＴＣ時刻をＡ（ｔ）とする。同様に、ＳＢ＃１上のＲＴＣをＲＴＣ＃１、ＳＢ＃１で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃１、ＢＩＯＳ＃１とする。そして、ＲＴＣ＃１のＲＴＣ時刻をＢ（ｔ）とする。また、ＲＴＣ時刻Ａ（ｔ）およびＢ（ｔ）は、初期設定時刻以外の値であるとする。【００２３】
ステップＳ３０１において、ＳＣＵファームウェア１２２は、パーティション１１０のパワーオン処理を実行する。このとき、ＳＣＵファームウェア１２２は、例えば、パーティション１１０に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア１２２が、ＳＢ＃０のＣＰＵのリセットを解除すると、ＳＢ＃０のＣＰＵはメモリから所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃０が起動する（ステップＳ３０２）。【００２４】
ステップＳ３０３において、ＢＩＯＳ＃０は、ＲＴＣ＃０からＲＴＣ時刻Ａ（ｔ）を読み出す。図３の例では、ＲＴＣ時刻Ａ（ｔ）は、初期設定時刻以外の値なので、ＢＩＯＳ＃０は、読み出したＲＴＣ時刻Ａ（ｔ）をＳＣＵファームウェア１２２に通知する。【００２５】
ステップＳ３０４において、ＳＣＵファームウェア１２２は、ＢＩＯＳ＃０から通知されたＲＴＣ時刻Ａ（ｔ）と、ＳＣＵクロック１２１ａのＳＣＵ時刻と、の差分値Δｔを算出する。そして、ＳＣＵファームウェア１２２は、算出した差分値Δｔをメモリ１２１ｂに記憶する。ＢＩＯＳ＃０は、ＯＳ＃０を起動させると処理を終了する。【００２６】
ステップＳ３０５において、ＯＳ＃０が起動すると、ＯＳ＃０は、ＲＴＣ＃０からＲＴＣ時刻Ａ（ｔ）を取得する。ＯＳ＃０は、読み出したＲＴＣ時刻Ａ（ｔ）を、ＯＳ時刻として使用する。【００２７】
ここで、ＳＢ＃０に故障が発生して、ＯＳ＃０がダウンした場合を考える。この場合、ＳＣＵファームウェア１２２は、ＳＢ＃０の故障を検出する（ステップＳ３０６）。すると、ＳＣＵファームウェア１２２は、使用するシステム・ボードをＳＢ＃０からＳＢ＃１に切替える、すなわち、ＳＢ＃０をパーティション１１０の構成から切り離し、ＳＢ＃１をパーティション１１０の構成に組み込む（ステップＳ３０７）。【００２８】
ステップＳ３０８において、ＳＣＵファームウェア１２２は、パーティション１１０のパワーオン処理を実行する。このとき、ＳＣＵファームウェア１２２は、例えば、パーティション１１０に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア１２２が、ＳＢ＃１のＣＰＵのリセットを解除すると、ＳＢ＃１のＣＰＵはメモリから所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃１が起動する（ステップＳ３０９）。【００２９】
ステップＳ３１０において、ＢＩＯＳ＃１は、ＲＴＣ＃１からＲＴＣ時刻Ｂ（ｔ）を読み出す。図３の例では、ＲＴＣ時刻Ｂ（ｔ）は、初期設定時刻以外の値なので、ＢＩＯＳ＃１は、読み出したＲＴＣ時刻Ｂ（ｔ）をＳＣＵファームウェア１２２に通知する。【００３０】
ステップＳ３１１において、ＳＣＵファームウェア１２２は、ＢＩＯＳ＃１から通知されたＲＴＣ時刻Ｂ（ｔ）と、ＳＣＵクロック１２１ａのＳＣＵ時刻と、の差分値Δｔ’を算出する。そして、ＳＣＵファームウェア１２２は、算出した差分値Δｔ’をメモリ１２１ｂに記憶する。ＢＩＯＳ＃１は、ＯＳ＃１を起動させると処理を終了する。【００３１】
ステップＳ３１２において、ＯＳ＃１が起動すると、ＯＳ＃１は、ＲＴＣ＃１からＲＴＣ時刻Ｂ（ｔ）を読み出す。ＯＳ＃１は、読み出したＲＴＣ時刻Ｂ（ｔ）を、ＯＳ時刻として使用する。【００３２】
このように、交換後のＳＢ＃１のＲＴＣ＃１に初期設定時刻以外の値が設定されているため、交換前のＳＢ＃０で動作するＯＳ＃０が使用していた時刻Ａ（ｔ）は、交換後のＳＢ＃１で動作するＯＳ＃１に引継がれない。【００３３】
また、図３で説明したＯＳ時刻の引継ぎ処理では、ＳＣＵファームウェア１２２は、パーティション起動時にだけ、ＲＴＣ時刻とＳＣＵ時刻との差分値の形で、ＲＴＣ時刻をパーティション時刻としてメモリ１２１ｂに記憶する。したがって、例えば、ＯＳ＃０運用中にＯＳ＃０からＲＴＣ時刻を変更しても、その変更した結果をＲＴＣ＃０に反映することなくシステム・ボードの交換などが発生した場合、交換後のシステム・ボードで動作するＯＳ＃１に、ＯＳ＃０で変更したＲＴＣ時刻を引継ぐことができない。具体例を図４に示す。【００３４】
図４は、ＯＳ時刻の引継ぎ処理が正常に行なわれない場合のその他の例を示す図である。
なお、図４では、システム・ボード＃０を「ＳＢ＃０」、システム・ボード＃１を「ＳＢ＃１」と略記する。また、ＳＢ＃０上のＲＴＣをＲＴＣ＃０、ＳＢ＃０で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃０、ＢＩＯＳ＃０とする。そして、ＲＴＣ＃０のＲＴＣ時刻をＡ（ｔ）とする。同様に、ＳＢ＃１上のＲＴＣをＲＴＣ＃１、ＳＢ＃１で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃１、ＢＩＯＳ＃１とする。そして、ＲＴＣ＃１のＲＴＣ時刻をＢ（ｔ）とする。また、ＲＴＣ時刻Ａ（ｔ）は初期設定時刻以外の値、Ｂ（ｔ）は初期設定時刻であるとする。【００３５】
ステップＳ４０１〜Ｓ４０５は、図３に示したステップＳ３０１〜Ｓ３０５と同じ処理が行なわれる。【００３６】
ステップＳ４０６において、ＯＳ＃０は、利用者から時刻変更の指示を受けると、以後、ＯＳ＃０は、指示のあった時刻Ｃ（ｔ）を使用する。また、ＯＳ＃０は、時刻Ｃ（ｔ）をＲＴＣ＃０に設定する。【００３７】
ここで、ＳＢ＃０に故障が発生して、ＯＳ＃０がダウンした場合を考える。この場合、ＳＣＵファームウェア１２２は、ステップＳ４０７〜Ｓ４１０において、ステップＳ３０６〜Ｓ３０９と同様の処理を行なう。【００３８】
ステップＳ４１１において、ＢＩＯＳ＃１は、ＲＴＣ＃１からＲＴＣ時刻Ｂ（ｔ）を読み出す。図４の例では、ＲＴＣ時刻Ｂ（ｔ）は、初期設定時刻なので、ＢＩＯＳ＃１は、ＳＣＵファームウェア１２２からパーティション時刻Ａ（ｔ）を取得する。このとき、具体的には、次のような処理が行なわれる。まず、ＢＩＯＳ＃１が、ＳＣＵファームウェア１２２に対して、パーティション時刻を要求する。すると、要求を受けたＳＣＵファームウェア１２２は、ＳＣＵクロック１２１ａのＳＣＵ時刻に、メモリ１２１ｂに記憶された差分値Δｔを加算することにより、パーティション時刻Ａ（ｔ）を生成する。そして、ＳＣＵファームウェア１２２は、生成したパーティション時刻Ａ（ｔ）をＢＩＯＳ１１２に通知する（ステップＳ４１２）。【００３９】
ＳＣＵファームウェア１２２からパーティション時刻Ａ（ｔ）を取得すると、ＢＩＯＳ＃１は、ＲＴＣ＃１にパーティション時刻Ａ（ｔ）を設定する。ＢＩＯＳ＃１は、ＯＳ＃１を起動させると処理を終了する。【００４０】
ステップＳ４１４において、ＯＳ＃１が起動すると、ＯＳ＃１は、ＲＴＣ＃１からＲＴＣ時刻Ａ（ｔ）を取得する。ＯＳ＃１は、読み出したＲＴＣ時刻Ａ（ｔ）を、ＯＳ時刻として使用する。【００４１】
このように、交換後のＳＢ＃１のＲＴＣ＃１に初期設定時刻が設定されていても、交換前のＳＢ＃０で動作していたＯＳ＃０が変更した時刻Ｃ（ｔ）は、ＳＢ交換前にパーティション１１０の再起動をしなければ、交換後のＳＢ＃１で動作するＯＳ＃１に引継がれない。【００４２】
本情報処理装置は、１つの側面では、オペレーティングシステムが使用する時刻を確実に引継ぐことができることを目的とする。
【課題を解決するための手段】
【００４３】
本情報処理装置の１つの観点によれば、本情報処理装置は、１または２以上のパーティションを含む情報処理装置である。そして、本情報処理装置は、以下の構成要素を備える。【００４４】
検出手段は、前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出する。【００４５】
第１の設定手段は、前記計時手段の切替えを検出しない場合、前記第１の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定する。また、第１の設定手段は、前記計時手段の切替えを検出した場合、前記第３の計時手段から時刻を取得した時刻を前記第２の計時手段に設定する。【００４６】
第２の設定手段は、前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する。
【発明の効果】
【００４７】
本情報処理装置は、１つの態様では、オペレーティングシステムが使用する時刻を確実に引継ぐことができる。
【図面の簡単な説明】
【００４８】
【図１】時刻の引継ぎ処理を説明するための情報処理装置１００の概念図である。
【図２】ＯＳ時刻の引継ぎ処理を説明するフローチャートである。
【図３】ＯＳ時刻の引継ぎ処理が正常に行なわれない場合の一例を説明する図である。
【図４】ＯＳ時刻の引継ぎ処理が正常に行なわれない場合のその他の例を説明する図である。
【図５】情報処理装置５００の概要を説明する図である。
【図６】情報処理装置６００の構成例を示す図である。
【図７】ＢＩＯＳ、ＯＳ、ＳＭＩハンドラおよびＳＣＵファームウェアの概念を説明する図である。
【図８】パーティション７００の起動処理の概要を説明する図である。
【図９】ＲＴＣ切替え処理の具体例を示すフローチャートである。
【図１０】図９のステップＳ９０３およびＳ９１８に例示した、ＲＴＣ切替え発生の検出の具体的例を示すフローチャートである。
【図１１】図９のステップＳ９０４、Ｓ９１９およびＳ９２１に例示した、ＢＩＯＳ７１０によるＲＴＣ制御の具体例を示す図である。
【図１２】図９のステップＳ９１１に例示した、ＳＭＩハンドラ７３０によるＲＴＣ時刻設定の具体例を示す図である。
【図１３】図９のステップＳ９１５で例示した、ＳＣＵファームウェア７４０がＢＩＯＳ７２０にＲＴＣ切替え通知を通知する処理の具体例を示すフローチャートである。
【図１４】ＳＣＵファームウェア７４０からＢＩＯＳ＃０への「ＲＴＣ切替え発生」の通知の変形例を示す図である。
【図１５】ＢＩＯＳ−ＳＣＵファームウェア間で双方向通信を行なう場合のＲＴＣ切替え処理の具体例を示すフローチャートである。
【発明を実施するための形態】
【００４９】
以下、本発明の実施形態の一例について、図５〜図１５に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、各実施例を組み合わせるなど種々変形して実施することができる。また、図８〜図１３および図１５にフローチャートの形式で示した処理手順は、処理の順番を限定する趣旨ではない。したがって、可能な場合には、処理の順番を入れ替えても良いのは当然である。
【００５０】
≪実施例≫
図５は、一実施例に係る情報処理装置５００の概要を説明する図である。
情報処理装置５００は、パーティション５１０と、計時手段５２０と、検出手段５３０と、第１の設定手段５４０と、第２の設定手段５５０とを備える。
【００５１】
パーティション５１０は、情報処理装置５００の一部または全部の資源、例えば、ＣＰＵやメモリ、計時手段５１２などを含むシステム・ボード、ＩＯ装置などを含む。そして、パーティション５１０に含まれるＣＰＵが所定のプログラムを実行することによって、オペレーティングシステム５１１が動作する。また、パーティション５１０は、オペレーティングシステム５１１が使用する計時手段５１２を含む。計時手段５１２は、オペレーティングシステム５１１が使用する時刻を計時するクロックである。
【００５２】
計時手段５２０は、パーティション５１０で使用する時刻を計時するクロックである。
検出手段５３０は、パーティション５１０で動作するオペレーティングシステム５１１が使用する時刻を計時する計時手段５１２の切替えを検出する。
【００５３】
例えば、パーティション５１０に含まれるシステム・ボード＃０をシステム・ボード＃１に交換する場合、システム・ボード＃０に含まれる計時手段５１２である第１の計時手段は、システム・ボード＃１に含まれる計時手段５１２である第２の計時手段に切替る。このように、システム・ボードの交換などによって、オペレーティングシステム５１１が使用する時刻を計時する計時手段５１２が、第１の計時手段から第２の計時手段に切替ることを、検出手段５３０は、検出する。  第１の設定手段５４０は、オペレーティングシステム５１１起動前に、計時手段５１２から時刻を取得し、取得した時刻をパーティション５１０で使用する時刻を計時する計時手段５２０に設定する。ただし、第１の設定手段５４０は、計時手段５１２の切替えを検出した場合、オペレーティングシステム５１１起動前に、計時手段５２０から時刻を取得して取得した時刻を計時手段５１２に設定する。
【００５４】
第２の設定手段５５０は、オペレーティングシステム５１１起動後に、オペレーティングシステム５１１による計時手段５１２への時刻設定を検出すると、オペレーティングシステム５１１が計時手段５１２に設定した時刻を計時手段５２０に設定する。
【００５５】
以上のように、情報処理装置５００は、計時手段５１２の切替えを検出すると、パーティション５１０で使用する時刻を計時する計時手段５２０から時刻を取得し、取得した時刻を計時手段５１２に設定する。また、計時手段５２０には、切替え前の計時手段５１２の時刻が既に設定されているので、切替え後の計時手段５１２には、切替え前の計時手段５１２の時刻が引継がれる。このように、切替え後の計時手段５１２の時刻に関係なく、計時手段５１２の切替え前後で、オペレーティングシステムが使用する時刻が引継がれる。
【００５６】
また、情報処理装置５００は、オペレーティングシステム５１１による計時手段５１２への時刻設定を検出すると、オペレーティングシステム５１１が計時手段５１２に設定した時刻を、計時手段５２０に設定する。その後、計時手段５１２の切替えを検出すると、情報処理装置５００は、計時手段５２０から時刻を取得し、取得した時刻を計時手段５１２に設定する。その結果、切替え後の計時手段５１２には、切替え前の計時手段５１２にオペレーティングシステム５１１が設定した時刻が引継がれる。このように、オペレーティングシステム５１１が計時手段５１２の時刻を変更したあと、何らかの理由によって計時手段５１２が切替えられても、オペレーティングシステムが使用する時刻が引継がれる。
【００５７】
以上に説明したように、実施例に係る情報処理装置５００によると、オペレーティングシステム５１１が使用する時刻の引継ぎを確実に行なうことができる。
【００５８】
なお、図５では、説明を簡単にするために、パーティション５１０と、計時手段５２０、検出手段５３０、第１の設定手段５４０および第２の設定手段５５０と、を分けて記載している。しかし、計時手段５２０、検出手段５３０、第１の設定手段５４０および第２の設定手段５５０が、パーティション５１０とは独立する構成要素であることに限定する趣旨ではない。計時手段５２０、検出手段５３０、第１の設定手段５４０および第２の設定手段５５０は、パーティション５１０に含まれる資源、例えば、演算装置などの一部または全部を共有してもよい。
【００５９】
≪その他の実施例≫
図６は、その他の実施例に係る情報処理装置６００の構成例を示す図である。
情報処理装置６００は、システム・ボード６１０および６２０と、システム制御装置６３０と、ＩＯ装置６４０とを備える。そして、情報処理装置６００は、システム・ボード６１０とＩＯ装置６４０を含むパーティション７００を実現する。
【００６０】
システム・ボード６１０は、ＣＰＵ６１１と、メモリ６１２と、Ｉ／Ｏ  ＨＵＢ６１３と、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４と、ＲＴＣ６１５と、ＦＲＵ６１６とを備える。
【００６１】
ＣＰＵ６１１は、メモリ６１２上に展開されたプログラム、ＢＩＯＳやＯＳなどを読み出し、読み出したプログラムの命令にしたがって演算を行なう演算装置である。
【００６２】
メモリ６１２は、ＣＰＵ６１１が実行するプログラムやデータなどを記憶する記憶装置である。メモリ６１２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性メモリを使用することができる。
【００６３】
Ｉ／Ｏ  ＨＵＢ６１３は、メモリ６１２とＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４やＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）スイッチ６４１とを接続するためのインタフェースである。
【００６４】
Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４は、ＬＰＣ（Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ）インタフェースやＰＣＩバス、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などと接続するためのインタフェースである。
【００６５】
Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して行なわれる特定の装置へのアクセスを検出してＳＭＩ割り込みを発生させることができる。
【００６６】
ＲＴＣ６１５は、パーティション７００で使用する時計である。ＲＴＣ６１５は、パーティション７００が使用する電源と異なる電源、例えば、電池などを使用する。したがって、パーティション７００の電源が切断されていても時刻の計時を継続する。  例えば、ＲＴＣ６１５はＩ／Ｏ空間の所定のアドレスにマッピングされる。したがって、ＣＰＵ６１１は、Ｉ／Ｏアクセス命令を使って、ＲＴＣ６１５にアクセスすることができる。Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４は、指定したＩ／Ｏ空間アドレスへのＩ／Ｏアクセスをフックすることができる。例えば、インテル社のＩＣＨ（Ｉ／Ｏ
Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ）１０では、ＲＴＣ６１５のＩ／Ｏ空間アドレスと、アクセスの種類、例えばライトとを指定する値を、ＩＣＨ内の所定のレジスタに設定することで、ＲＴＣ６１５へ時刻書込みのフックを設定できる。
【００６７】
ＦＲＵ（Ｆｉｅｌｄ  Ｒｅｐｌａｃｅａｂｌｅ  Ｕｎｉｔ）６１６は、システム制御装置６３０と、例えば、シリアルインタフェースで通信可能に接続している。ＦＲＵ６１６は、システム・ボード６１０に含まれる装置、例えば、ＣＰＵ６１１、メモリ６１２、Ｉ／Ｏ  ＨＵＢ６１３、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４およびＲＴＣ６１５の識別情報を含むＳＢ（Ｓｙｓｔｅｍ  Ｂｏａｒｄ）情報を保持する。ＦＲＵ６１６は、システム制御装置６３０からの要求に応じて、ＳＢ情報をシステム制御装置６３０に通知する。
【００６８】
システム・ボード６２０は、システム・ボード６１０故障時に使用する予備のシステム・ボードである。そして、システム・ボード６２０は、ＣＰＵ６２１と、メモリ６２２と、Ｉ／Ｏ  ＨＵＢ６２３と、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６２４と、ＲＴＣ６２５と、ＦＲＵ６２６とを備える。
【００６９】
なお、ＣＰＵ６２１、メモリ６２２は、それぞれＣＰＵ６１１、メモリ６１２と同様の構成である。また、Ｉ／Ｏ  ＨＵＢ６２３、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６２４、ＲＴＣ６２５、ＦＲＵ６２６は、それぞれＩ／Ｏ  ＨＵＢ６１３、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４、ＲＴＣ６１５、ＦＲＵ６１６と同様の構成である。
【００７０】
システム制御装置６３０は、システム制御装置６３０に備わるＣＰＵ６３３が所定のプログラムを実行することで、ＳＣＵファームウェアを実現する。そして、ＳＣＵファームウェアが、パーティション７００の構成やパーティション７００のパワーオン・オフの制御などを行なう。
【００７１】
システム制御装置６３０は、ＳＣＵクロック６３１と、メモリ６３２と、ＣＰＵ６３３とを備える。
【００７２】
ＳＣＵクロック６３１は、システム制御装置６３０自身の時刻を計時するクロックである。メモリ６３２は、パーティション７００の構成や差分時刻Δｔなどを含むパーティション情報を記憶する記憶装置である。メモリ６３２には、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの不揮発性メモリを使用することができる。ＣＰＵ６３３は、所定のプログラムを実行する演算装置である。
【００７３】
システム制御装置６３０は、システム・ボード６１０上のＣＰＵ６１１と接続し、Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌｌｅｒ  Ｓｉｄｅｂａｎｄインタフェースなどを利用することができる。これにより、システム制御装置６３０で動作するＳＣＵファームウェアは、ＣＰＵ６１１内のスクラッチ・パッドに、後述するＲＴＣ切替え発生フラグを設定することができる。
【００７４】
また、システム制御装置６３０は、システム・ボード６１０上のＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４と接続し、ＫＣＳ（Ｋｅｙｂｏａｒｄ  Ｃｏｎｔｒｏｌｌｅｒ  Ｓｔｙｌｅ）インタフェースなどを利用することができる。これにより、例えば、ＣＰＵ６１１で動作するＢＩＯＳと、システム制御装置６３０で動作するＳＣＵファームウェアとが、Ｉ／Ｏ  ＨＵＢ６１３およびＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を介して、双方向通信を行なうことができる。
【００７５】
ＩＯ装置６４０は、ＰＣＩｅスイッチ６４１と、ＧｂＥ（Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標））コントローラ６４２および６４３と、ＰＣＩｅスロット６４４および６４５と、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））コントローラ６４６および６４７とを備える。
【００７６】
ＰＣＩｅスイッチ６４１は、システム・ボード６１０と、ＰＣＩｅスイッチ６４１に接続するＧｂＥコントローラ６４２、６４３、ＰＣＩｅスロット６４４、６４５、ＳＡＳコントローラ６４６および６４７とを通信可能に接続するスイッチング機能を有するスイッチである。
【００７７】
ＧｂＥコントローラ６４２および６４３は、ＧｂＥネットワーク機器と接続するインタフェース装置である。また、ＰＣＩｅスロット６４４および６４５は、ＰＣＩｅ装置と接続するインタフェース装置である。また、ＳＡＳコントローラ６４６および６４７は、ＳＡＳ装置と接続するインタフェース装置である。
【００７８】
以上の説明において、パーティション７００には、システム・ボード６１０を１つだけ含む場合を示したが、パーティション７００に含まれるシステム・ボード６１０の数を限定する趣旨ではない。
【００７９】
図７は、本実施例で使用するＢＩＯＳ、ＯＳ、ＳＭＩハンドラおよびＳＣＵファームウェアの概念を説明する図である。
【００８０】
パーティション７００では、ＢＩＯＳ７１０、ＯＳ７２０およびＳＭＩハンドラ７３０が動作する。ＢＩＯＳ７１０、ＯＳ７２０およびＳＭＩハンドラ７３０は、いずれもパーティション７００に含まれ、システム・ボード６１０のＣＰＵ６１１が実行する。また、パーティション７００に含まれるシステム・ボードが、システム・ボード６１０からシステム・ボード６２０に切替えられた場合、ＢＩＯＳ７１０、ＯＳ７２０およびＳＭＩハンドラ７３０は、システム・ボード６２０のＣＰＵ６２１が実行する。
【００８１】
ＢＩＯＳ７１０は、パーティション７００に含まれる装置や周辺機器などの初期化などの他に、例えば、以下のような処理を行なう。
【００８２】
ＢＩＯＳ７１０は、パーティション７００内で有効のＲＴＣに対して、ＲＴＣ時刻の読み出しや時刻の設定などの制御を行なう（７１１）。例えば、ＢＩＯＳ７１０は、パーティション７００内で有効のＲＴＣからＲＴＣ時刻を読み出し、読み出したＲＴＣ時刻をＳＣＵファームウェア７４０に通知する。また、ＢＩＯＳ７１０は、ＳＣＵファームウェア７４０からパーティション時刻を取得し、取得したパーティション時刻を、パーティション７００内で有効のＲＴＣに設定する。
【００８３】
なお、図６に示すパーティション７００の場合、パーティション７００内のシステム・ボードは、システム・ボード６１０の１つだけなので、ＲＴＣ６１５が有効となる。また、パーティション７００のシステム・ボードを、システム・ボード６１０からシステム・ボード６２０に切替えた場合、パーティション７００内のシステム・ボードは、システム・ボード６２０の１つだけなので、ＲＴＣ６２５が有効となる。以下、図７および図８の説明では、パーティション７００内で有効のＲＴＣを、単に「ＲＴＣ」という。
【００８４】
また、ＢＩＯＳ７１０は、パーティション７００内のＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢのレジスタに所定の値を設定することにより、ＲＴＣ時刻書込みフック設定を行なう（７１２）。ＲＴＣ時刻書込みフック設定とは、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢが、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢを経由して行なわれるＲＴＣへの時刻設定を検出してＳＭＩ割り込みを生成する設定である。
【００８５】
また、ＢＩＯＳ７１０は、ＲＴＣ切替え発生を検出する（７１３）。具体的には、ＢＩＯＳ７１０は、ＢＩＯＳ７１０が動作するＣＰＵのスクラッチ・パッドに設定されたＲＴＣ切替え発生フラグに基づいて、ＲＴＣが切替えられたことを検出する。この場合、ＢＩＯＳ７１０は、ＳＣＵファームウェア７４０からパーティション時刻を取得し、取得したパーティション時刻をＲＴＣに設定する。
【００８６】
ＯＳ７２０は、ユーザが指定する時刻をＲＴＣに設定する処理を行なうことができる。この場合、ＯＳ７２０を実行するＣＰＵが、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢを経由してＲＴＣに時刻設定を行なうことになる。すると、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢは、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ
ＨＵＢを経由して行なわれるＲＴＣへの時刻設定を検出し、ＳＭＩ割り込みを生成する。このＳＭＩ割り込みを受けると、ＯＳ７２０を実行しているＣＰＵは、ＳＭＩハンドラ７３０を実行する。
【００８７】
ＳＭＩハンドラ７３０は、ＲＴＣからＲＴＣ時刻を読み出し、読み出したＲＴＣ時刻をＳＣＵファームウェア７４０に通知するＲＴＣ時刻書込みフック処理を行なう（７１４）。
【００８８】
システム制御装置６３０では、ＳＣＵファームウェア７４０が動作する。このＳＣＵファームウェア７４０は、システム制御装置６３０内に備わるＣＰＵ６３３が実行する。
【００８９】
ＳＣＵファームウェア７４０は、パーティション７００の構成やパーティション７００のパワーオン・オフの制御を行なう他、例えば、以下のような処理を行なう。
【００９０】
ＳＣＵファームウェア７４０は、ＢＩＯＳ７１０やＳＭＩハンドラ７３０からＲＴＣ時刻を通知されると、通知されたＲＴＣ時刻をパーティション時刻として保持する（７４１）。具体的には、ＳＣＵファームウェア７４０は、次のようにしてパーティション時刻を保持する。まず、ＢＩＯＳ７１０からＲＴＣ時刻を通知されると、ＳＣＵファームウェア７４０は、通知されたＲＴＣ時刻とＳＣＵクロック６３１から読み出したＳＣＵ時刻との差分値Δｔを算出する。そして、ＳＣＵファームウェア７４０は、算出した差分値Δｔをメモリ６３２に記憶する。
【００９１】
また、ＳＣＵファームウェア７４０は、ＢＩＯＳ７１０からの要求に応じて、パーティション時刻をＢＩＯＳ７１０に通知する（７４２）。具体的には、ＳＣＵファームウェア７４０は、ＢＩＯＳ７１０からの要求に応じて、ＳＣＵクロック６３１から読み出したＳＣＵ時刻にメモリ６３２に記憶された差分値Δｔを加えた時刻を、パーティション時刻としてＢＩＯＳ７１０に通知する。
【００９２】
また、ＳＣＵファームウェア７４０は、ＲＴＣが切替えられたことを検出すると、ＢＩＯＳ７１０にＲＴＣ切替え発生通知を行なう（７４３）。具体的には、ＳＣＵファームウェア７４０は、ＲＴＣ切替え発生フラグを、パーティション７００内のＣＰＵに備わるスクラッチ・パッドに書き込む。ＢＩＯＳ７１０は、ＢＩＯＳ７１０起動後に、ＣＰＵに備わるスクラッチ・パッドを参照することで、ＲＴＣ切替え発生フラグを知ることができる。
【００９３】
図８は、パーティション７００の起動処理の概要を説明する図である。
ステップＳ８０１において、ＳＣＵファームウェア７４０は、パーティション７００のパワーオン処理を開始する。すると、ＳＣＵファームウェア７４０は、例えば、パーティション７００に含まれる各デバイスのリセット信号を操作して、各デバイスの初期化処理などを行なう。
【００９４】
ステップＳ８０２において、ＳＣＵファームウェア７４０は、ＲＴＣ切替え発生の有無を確認する。このＲＴＣ切替え発生の有無の確認は、例えば、図１３のステップＳ１３０１〜Ｓ１３０２の処理によって行なうことができる。そして、ＳＣＵファームウェア７４０は、ＲＴＣ切替え発生の有無をＢＩＯＳ７１０に通知する。本実施例では、起動前のＢＩＯＳ７１０にＲＴＣ切替え発生の有無を通知するために、ＢＩＯＳ７１０を実行するＣＰＵのスクラッチ・パッドにＲＴＣ切替え発生フラグを設定する。ＢＩＯＳ７１０は、ＢＩＯＳ７１０を実行するＣＰＵのスクラッチ・パッドに設定されたＲＴＣ切替え発生フラグを参照することにより、ＲＴＣ切替え発生の有無を知ることができる。
【００９５】
ＳＣＵファームウェア７４０が、パーティション７００内のＣＰＵのリセットを解除すると、パーティション７００内のＣＰＵは所定のプログラムを実行する。これにより、ＢＩＯＳ７１０が起動する。ＳＣＵファームウェア７４０は、パーティション７００のパワーオン処理を終了する（ステップＳ８０３）。
ＢＩＯＳ７１０が起動すると（ステップＳ８０４）、ＢＩＯＳ７１０は、以下の処理を行なう。
【００９６】
ステップＳ８０５において、ＢＩＯＳ７１０は、ＲＴＣ切替え発生の有無を確認する。具体的には、ＢＩＯＳ７１０は、ＢＩＯＳ７１０を実行しているＣＰＵのスクラッチ・パッドに設定されたＲＴＣ切替え発生フラグを取得し、取得したＲＴＣ切替え発生フラグに基づいて、ＲＴＣ切替え発生の有無を判別する。この具体的な処理については、図１０で後述する。
【００９７】
ＲＴＣ切替えが発生していない場合（ステップＳ８０６  ＮＯ）、ＢＩＯＳ７１０は、ＲＴＣからＲＴＣ時刻を取得する（ステップＳ８０７）。そして、ステップＳ８０７で取得したＲＴＣ時刻が初期設定時刻以外の値である場合（ステップＳ８０８  ＮＯ）、ＢＩＯＳ７１０は、ＳＣＵファームウェア７４０に、ステップＳ８０７で取得したＲＴＣ時刻を通知する（ステップＳ８０９）。ＲＴＣ時刻の通知を受けると、ＳＣＵファームウェア７４０は、通知されたＲＴＣ時刻をパーティション時刻として記憶する。
【００９８】
なお、初期設定時刻とは、あらかじめ決められた一定期間の任意の時刻である。本実施例で使用する初期設定時刻は、１９７０年０１月０１日〜１９９０年０１月０１日までの任意の時刻である。これは次の理由からである。新規に製造したＲＴＣには、計時開始の時刻として、あらかじめ決められた時刻、例えば、１９７０年０１月０１日が設定される。この場合、ＲＴＣは、１９７０年０１月０１日から計時を開始する。そのため、初期設定時刻として、計時開始の時刻を使用することは難しい。そこで、本実施例では、初期設定時刻として、計時開始の時刻である１９７０年０１月０１日から一定期間の任意の時刻、すなわち、１９７０年０１月０１日〜１９９０年０１月０１日までの任意の時刻を使用する。ただし、初期設定時刻を、１９７０年０１月０１日〜１９９０年０１月０１日までの任意の時刻に限定する趣旨ではない。必要に応じて、初期設定時刻を決めることができる。
【００９９】
一方、ＲＴＣ切替えが発生した場合（ステップＳ８０６  ＹＥＳ）、または、ステップＳ８０７で取得したＲＴＣ時刻が初期設定時刻の場合（ステップＳ８０７  ＹＥＳ）、ＢＩＯＳ７１０は、処理をステップＳ８１０に移行する。この場合、ＢＩＯＳ７１０は、ＳＣＵファームウェア７４０からパーティション時刻を取得する（ステップＳ８１０）。そして、ＢＩＯＳ７１０は、取得したパーティション時刻をＲＴＣに設定する（ステップＳ８１１）。
以上に述べたステップＳ８０６〜Ｓ８１１の具体的な処理については、図１１で後述する。
【０１００】
ステップＳ８１２において、ＢＩＯＳ７１０は、例えば、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ内のレジスタに、ＲＴＣがマッピングされたＩ／Ｏ空間アドレスへのＩ／Ｏアクセスをフックするための所定の値を設定することにより、ＲＴＣ時刻書込みフック設定を行なう。なお、既にＲＴＣ時刻書込みフック設定がされている場合、ＢＩＯＳ７１０は、ステップＳ８１２の処理を省略することができる。ステップＳ８１２の具体的な処理については、図１２で後述する。ステップＳ８１２による設定により、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢは、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢを経由して行なわれるＲＴＣへの時刻設定を検出すると、ＳＭＩ割り込みを生成する。このＳＭＩ割り込みを受けると、ＣＰＵ６１１は、ＳＭＩハンドラを起動する。ＳＭＩハンドラは、ＲＴＣからＲＴＣ時刻を読み出し、読み出したＲＴＣ時刻をＳＣＵファームウェア７４０に通知する。
【０１０１】
ＢＩＯＳ７１０は、ＯＳ７２０を起動させると、処理を終了する（ステップＳ８１３）。
ＯＳ７２０が起動すると（ステップＳ８１４）、ＯＳ７２０は、ＲＴＣからＲＴＣ時刻を取得する（ステップＳ８１５）。ＯＳ７２０は、取得したＲＴＣ時刻をＯＳ時刻として使用する。
【０１０２】
図９は、本実施例に係るＲＴＣ切替え処理の具体例を示すフローチャートである。図９は、パーティション７００に含まれるシステム・ボード６１０を、システム・ボード６２０に切替えた場合に生じるＲＴＣ切替え処理を示している。
【０１０３】
なお、以降の説明では、システム・ボード６１０を「ＳＢ＃０」、システム・ボード＃１を「ＳＢ＃１」と略記する。また、任意のシステム・ボードを「ＳＢ」と略記する。また、ＳＢ＃０上のＲＴＣ６１５をＲＴＣ＃０、ＳＢ＃０で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃０、ＢＩＯＳ＃０とする。そして、ＲＴＣ＃０のＲＴＣ時刻をＡ（ｔ）とする。同様に、ＳＢ＃１上のＲＴＣ６２５をＲＴＣ＃１、ＳＢ＃１で動作するＯＳ、ＢＩＯＳをそれぞれＯＳ＃１、ＢＩＯＳ＃１とする。そして、ＲＴＣ＃１のＲＴＣ時刻をＢ（ｔ）とする。ＲＴＣ時刻Ａ（ｔ）およびＢ（ｔ）には、あらかじめ決められた初期設定時刻以外の値が設定されているものとする。
【０１０４】
ステップＳ９０１において、ＳＣＵファームウェア７４０は、ＳＢ＃０を含むパーティション７００のパワーオン処理を実行する。このとき、ＳＣＵファームウェア７４０は、例えば、パーティション７００に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア７４０が、ＳＢ＃０のＣＰＵ６１１のリセットを解除すると、ＣＰＵ６１１はメモリ６１２から所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃０が起動する（ステップＳ９０２）。
【０１０５】
ステップＳ９０３において、起動したＢＩＯＳ＃０は、ＣＰＵ６１１内に備わるスクラッチ・パッド６１１ａに設定されたＲＴＣ切替え発生フラグを参照する。ＲＴＣ切替え発生フラグが「ＯＮ」の場合、ＢＩＯＳ＃０は、ＲＴＣ切替えが発生したと判断する。以下、ステップＳ９０３でＲＴＣ切替えが発生していないと判断されたものとして、処理を説明する。なお、Ｓ９０３でＲＴＣ切替えが発生したと判断された場合の処理は、ステップＳ９１９〜Ｓ９２１と同様の処理が行なわれる。したがって、ＲＴＣ切替えが発生した場合の処理については、ステップＳ９１９〜Ｓ９２１で説明する。
【０１０６】
ステップＳ９０４において、ＢＩＯＳ＃０は、ＲＴＣ＃０からＲＴＣ時刻Ａ（ｔ）を取得する。図９の例では、ＲＴＣ時刻Ａ（ｔ）は、初期設定時刻以外の値のなので、ＢＩＯＳ＃０は、読み出したＲＴＣ時刻Ａ（ｔ）をＳＣＵファームウェア７４０に通知する。
【０１０７】
ステップＳ９０５において、ＳＣＵファームウェア７４０は、ＳＣＵクロック６３１から取得したＳＣＵ時刻とＢＩＯＳ＃０から通知されたＲＴＣ時刻Ａ（ｔ）との差分値Δｔを算出する。そして、ＳＣＵファームウェア７４０は、算出した差分値Δｔをメモリ６３２に記憶する。
【０１０８】
ステップＳ９０６において、ＢＩＯＳ＃０は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４に対して、ＲＴＣ時刻書込みフック設定を行なう。具体的には、ＢＩＯＳ＃０は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４の所定のレジスタに、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して、ＲＴＣへの時刻設定が行なわれるとＳＭＩ割り込みを生成する設定を指定する値を書き込む。
【０１０９】
以上の処理を行なうと、ＢＩＯＳ＃０は、ＯＳ＃０を起動させて処理を終了する（ステップＳ９０７）。
【０１１０】
ステップＳ９０８において、ＯＳ＃０が起動すると、ＯＳ＃０は、ＲＴＣ＃０からＲＴＣ時刻Ａ（ｔ）を取得する。ＯＳ＃０は、ＲＴＣ＃０から読み出したＲＴＣ時刻Ａ（ｔ）を、ＯＳ時刻として使用する。
【０１１１】
ステップＳ９０９において、ＯＳ＃０は、利用者から時刻変更の指示を受けると、ＣＰＵ６１１内にあるカウンタに、指示された時刻Ｃ（ｔ）をＯＳ時刻として設定する。また、ＯＳ＃０は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して、指示のあった時刻Ｃ（ｔ）をＲＴＣ＃０に設定する。これにより、ＲＴＣ＃０には、時刻Ｃ（ｔ）が設定される（ステップＳ９１０）。
【０１１２】
Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して、ＲＴＣ＃０への時刻設定が行なわれたことを検出する。すると、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４は、ＣＰＵ６１１に対してＳＭＩ割り込みを行なう。ＳＭＩ割り込みを受けると、ＣＰＵ６１１はＳＭＩハンドラ７３０を実行する。
【０１１３】
ステップＳ９１１において、ＳＭＩハンドラ７３０は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４からＲＴＣ時刻Ｃ（ｔ）を取得し、取得したＲＴＣ時刻Ｃ（ｔ）をＳＣＵファームウェア７４０に通知する。
【０１１４】
ステップＳ９１２において、ＳＭＩハンドラ７３０からＲＴＣ時刻Ｃ（ｔ）の通知を受けると、ＳＣＵファームウェア７４０は、ＳＣＵクロック６３１から取得したＳＣＵ時刻とＳＭＩハンドラ７３０から通知されたＲＴＣ時刻Ｃ（ｔ）との差分値Δｔ’’を算出する。そして、ＳＣＵファームウェア７４０は、算出した差分値Δｔ’’をメモリ６３２に記憶する。
【０１１５】
ここで、ＳＢ＃０に故障が発生して、ＯＳ＃０がダウンした場合を考える。この場合、ＳＣＵファームウェア７４０は、ＳＢ＃０の故障を検出する（ステップＳ９１３）。すると、ＳＣＵファームウェア７４０は、パーティション７００で使用するＳＢをＳＢ＃０からＳＢ＃１に切替える、すなわち、ＳＢ＃０をパーティション７００の構成から切り離し、ＳＢ＃１をパーティション７００の構成に組み込む（ステップＳ９１４）。このとき、パーティション７００内で有効のＲＴＣも、ＳＢ＃０に備わるＲＴＣ＃０からＳＢ＃１に備わるＲＴＣ＃１に切替えられる。
【０１１６】
ステップＳ９１５において、ＳＣＵファームウェア７４０は、パーティション７００内で有効のＲＴＣが切替えられた旨のＲＴＣ切替え発生通知をＢＩＯＳ＃１に通知する。ＳＣＵファームウェア７４０は、起動後にＢＩＯＳ＃１が参照するＣＰＵ６２１内のスクラッチ・パッド６２１ａに、ＲＴＣ切替え発生フラグ「ＯＮ」を設定する。
【０１１７】
ステップＳ９１６において、ＳＣＵファームウェア７４０は、ＳＢ＃１を含むパーティション７００のパワーオン処理を実行する。このとき、ＳＣＵファームウェア７４０は、例えば、パーティション７００に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア７４０がＳＢ＃１のＣＰＵ６２１のリセットを解除すると、ＳＢ＃１のＣＰＵ６２１はメモリから所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃１が起動する（ステップＳ９１７）。
【０１１８】
ステップＳ９１８において、ＢＩＯＳ＃１は、ＣＰＵ６２１内のスクラッチ・パッド６２１ａを参照する。ＢＩＯＳ＃１は、ＣＰＵ６２１内のスクラッチ・パッド６２１ａに設定されたＲＴＣ切替え発生フラグが「ＯＮ」の場合、ＲＴＣの切替えが発生したと判断する。なお、ＢＩＯＳ＃１は、ＣＰＵ６２１内のスクラッチ・パッド６２１ａに設定されたＲＴＣ切替え発生フラグが「ＯＦＦ」の場合、ＲＴＣの切替えは発生していないと判断する。
【０１１９】
ステップＳ９１９において、ＢＩＯＳ＃１は、ＳＣＵファームウェア７４０からパーティション時刻Ｃ（ｔ）を取得する。このとき、具体的には、次のような処理が行なわれる。まず、ＢＩＯＳ＃１が、ＳＣＵファームウェア７４０に対して、パーティション時刻を要求する。すると、要求を受けたＳＣＵファームウェア７４０は、ＳＣＵクロック６３１のＳＣＵ時刻に、メモリ６３２に記憶された差分値Δｔ’’を加算することにより、パーティション時刻Ｃ（ｔ）を生成する。そして、ＳＣＵファームウェア７４０は、生成したパーティション時刻Ｃ（ｔ）をＢＩＯＳ＃１に通知する（ステップＳ９２０）。
【０１２０】
ステップＳ９２１において、ＳＣＵファームウェア７４０からパーティション時刻Ｃ（ｔ）を取得すると、ＢＩＯＳ＃１は、取得したパーティション時刻Ｃ（ｔ）をＲＴＣ＃１に設定する。そして、ＢＩＯＳ＃１は、ＯＳ＃１を起動させると処理を終了する（ステップＳ９２２）。
【０１２１】
ステップＳ９２３において、ＯＳ＃１が起動すると、ＯＳ＃１は、ＲＴＣ＃１からＲＴＣ時刻Ｃ（ｔ）を取得する。ＯＳ＃１は、取得したＲＴＣ時刻Ｃ（ｔ）を、ＯＳ時刻として使用する。
【０１２２】
図１０は、図９のステップＳ９０３およびＳ９１８に例示した、ＲＴＣ切替え発生の検出の具体的例を示すフローチャートである。なお、以下では、ＢＩＯＳ＃０での動作について説明するが、ＢＩＯＳ＃１でもＢＩＯＳ＃０と同様の動作となる。
【０１２３】
ステップＳ１００１において、ＢＩＯＳ＃０は、ＢＩＯＳ＃０を実行しているＣＰＵ６１１内のスクラッチ・パッド６１１ａに設定されているＲＴＣ切替え発生フラグを参照する。そして、ＲＴＣ切替え発生フラグが「ＯＮ」の場合（ステップＳ１００２  ＹＥＳ）、ＢＩＯＳ＃０は、ＲＴＣ切替えがあったと判断する（ステップＳ１００３）。また、ＲＴＣ切替え発生フラグが「ＯＦＦ」の場合（ステップＳ１００２  ＮＯ）、ＢＩＯＳ＃０は、ＲＴＣ切替えがなかったと判断する（ステップＳ１００４）。
【０１２４】
以上の処理が終了すると、ＢＩＯＳ＃０は、ＲＴＣ切替え発生の検出処理を終了する（ステップＳ１００５）。
【０１２５】
図１１は、図９のステップＳ９０４、Ｓ９１９およびＳ９２１に例示した、ＢＩＯＳ７１０によるＲＴＣ制御の具体例を示す図である。なお、以下では、ＢＩＯＳ＃０での動作について説明するが、ＢＩＯＳ＃１でもＢＩＯＳ＃０と同様の動作となる。
【０１２６】
ステップＳ１１０１において、ＢＩＯＳ＃０は、ＲＴＣ切替え発生の有無を判別する。このステップＳ１１０１では、図１０に示したＲＴＣ切替え発生の検出が行なわれる。具体的な説明は、図１０で行なったので省略する。
【０１２７】
ＲＴＣ切替えが発生していないと判別すると（ステップＳ１１０２  ＮＯ）、ＢＩＯＳ＃０は、ＲＴＣ＃０からＲＴＣ時刻を取得する（ステップＳ１１０３）。そして、ステップＳ１１０４において、ＲＴＣ時刻が初期設定時刻か否かのチェックを行なう。
【０１２８】
ステップＳ１１０３で取得したＲＴＣ時刻が初期設定時刻以外の場合（ステップＳ１１０４  ＮＯ）、ＢＩＯＳ＃０は、ステップＳ１１０３で取得したＲＴＣ時刻を、ＳＣＵファームウェア７４０に通知する（ステップＳ１１０５）。
【０１２９】
また、ＲＴＣ切替えが発生したと判別した場合（ステップＳ１１０２  ＹＥＳ）、または、ステップＳ１１０３で取得したＲＴＣ時刻が初期設定時刻の場合（ステップＳ１１０４  ＹＥＳ）、ＢＩＯＳ＃０は、処理をステップＳ１１０６に移行する。この場合、ＢＩＯＳ＃０は、ＳＣＵファームウェア７４０からパーティション時刻を取得する（ステップＳ１１０６）。そして、ＢＩＯＳ＃０は、ＳＣＵファームウェア７４０から取得したパーティション時刻を、ＲＴＣ＃０に設定する（ステップＳ１１０７）。
【０１３０】
以上の処理を終了すると、ＢＩＯＳ＃０は、ＲＴＣに対する制御処理を終了する（ステップＳ１１０８）。
【０１３１】
図１２は、図９のステップＳ９１１に例示した、ＳＭＩハンドラ７３０によるＲＴＣ時刻設定の具体例を示す図である。なお、以下では、ＳＢ＃０での動作について説明するが、ＳＢ＃１でもＳＢ＃０と同様の動作となる。
【０１３２】
ＣＰＵ６１１は、パーティション７００に含まれるＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４など装置や、周辺装置などから割り込み信号を受信すると、以下の処理を開始する（ステップＳ１２００）。
【０１３３】
ステップＳ１２０１において、ＣＰＵ６１１は、受信した割り込み信号から、割り込み要因を特定する。そして、割り込み要因が、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して行なわれたＲＴＣ＃０への時刻設定である場合（ステップＳ１２０２  ＹＥＳ）、ＣＰＵ６１１は、ＳＭＩハンドラ７３０を実行する。ＳＭＩハンドラ７３０は、処理をステップＳ１２０３に移行する。
【０１３４】
ステップＳ１２０３において、ＳＭＩハンドラ７３０は、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４内の所定のレジスタから、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由してＲＴＣ＃０に設定したＲＴＣ時刻を取得する。
【０１３５】
ステップＳ１２０４において、ＳＭＩハンドラ７３０は、ステップＳ１２０３で取得したＲＴＣ時刻を、ＳＣＵファームウェア７４０に通知する。ＳＭＩハンドラ７３０からＲＴＣ時刻を受信すると、ＳＣＵファームウェア７４０は、ＳＣＵクロック６３１から取得したＳＣＵ時刻と、ＳＭＩハンドラ７３０から通知されたＲＴＣ時刻と、の差分値をメモリ６３２に記憶する。
【０１３６】
一方、ステップＳ１２０２において、割り込み要因が、Ｌｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢ６１４を経由して行なわれたＲＴＣ＃０への時刻設定でない場合（ステップＳ１２０２  ＮＯ）、ＣＰＵ６１１は、割り込み要因に応じた処理を実施する（ステップＳ１２０５）。
【０１３７】
以上の処理が終了すると、ＳＭＩハンドラ７３０は、ＳＭＩハンドラ７３０によるＲＴＣ時刻設定の処理を終了する。
【０１３８】
図１３は、図９のステップＳ９１５で例示した、ＳＣＵファームウェア７４０がＢＩＯＳ７２０にＲＴＣ切替え通知を通知する処理の具体例を示すフローチャートである。
【０１３９】
ＳＢの切替えを行なうと、ＳＣＵファームウェア７４０は、以下の処理を行なう（ステップＳ１３００）。
【０１４０】
ステップＳ１３０１において、ＳＣＵファームウェア７４０は、切替え前のＳＢから、ＳＢ情報を取得する。
【０１４１】
ステップＳ１３０２において、ＳＣＵファームウェア７４０は、切替え前のＳＢのＲＴＣが、パーティション７００内で有効のＲＴＣであったか否かを判別する。具体的には、ＳＣＵファームウェア７４０は、ステップＳ１３０１で取得したＳＢ情報に含まれるＲＴＣの識別情報と、ＳＣＵファームウェア７４０のメモリ６３２にあらかじめ記憶された、システム・ボード切替え前まで使用していたＲＴＣの識別情報と、を比較する。比較の結果が一致すれば、ＳＣＵファームウェア７４０は、切替え前のＳＢのＲＴＣが、パーティション７００内で有効のＲＴＣであったと判別できる。
【０１４２】
切替え前のＳＢのＲＴＣが、パーティション７００内で有効のＲＴＣであった場合（ステップＳ１３０２  ＹＥＳ）、ＳＣＵファームウェア７４０は、処理をステップＳ１３０３に移行する。この場合、ＳＣＵファームウェア７４０は、パーティション７００のＣＰＵ、例えば、切替え後のＳＢのＣＰＵ内のスクラッチ・パッドに、ＲＴＣ切替え発生フラグ「ＯＮ」を設定する。
【０１４３】
また、システム・ボードを切替えるまで使用していたＲＴＣが、切替え前のＳＢのＲＴＣでない場合（ステップＳ１３０２  ＮＯ）、処理をステップＳ１３０４に移行する。この場合、ＳＣＵファームウェア７４０は、パーティション７００のＣＰＵ内のスクラッチ・パッドに、ＲＴＣ切替え発生フラグ「ＯＦＦ」を設定する。
【０１４４】
以上の処理が終了すると、ＳＣＵファームウェア７４０は、ＢＩＯＳにＲＴＣ切替え通知を通知する処理を終了する（ステップＳ１３０５）。ＢＩＯＳは、図１０で説明した処理を行なうことにより、ＲＴＣ切替えの有無を知ることができる。
【０１４５】
以上の実施例では、図１４の（ａ）のように、ＢＩＯＳ＃０は、ＳＣＵファームウェア７４０が、スクラッチ・パッド６１１ａに設定したＲＴＣ切替え発生フラグを参照することで、ＳＣＵファームウェア７４０から「ＲＴＣ切替え発生」の通知を受けた（矢印ａ）。すなわち、ＢＩＯＳ７１０は、ＳＣＵファームウェア７４０が、ＢＩＯＳ７１０が動作するＣＰＵのスクラッチ・パッドに設定したＲＴＣ切替え発生フラグを参照することで、ＳＣＵファームウェア７４０から「ＲＴＣ切替え発生」の通知を受けた。
【０１４６】
しかし、例えば、図１４の（ｂ）のように、ＢＩＯＳ＃０が、ＫＣＳインタフェースなどを用いて、ＳＣＵファームウェア７４０と双方向通信を行なうことにより、ＳＣＵファームウェア７４０から「ＲＴＣ切替え発生」の通知を受けるようにしてもよい（矢印ｂ）。すなわち、ＢＩＯＳ７１０が、ＫＣＳインタフェースなどを用いて、ＳＣＵファームウェア７４０と双方向通信を行なうことにより、ＳＣＵファームウェア７４０から「ＲＴＣ切替え発生」の通知を受けるようにしてもよい。
【０１４７】
なお、図１４の（ａ）および（ｂ）は、図６に示した情報処理装置６００の一部を記載したものであって、情報処理装置６００を図１４の（ａ）または（ｂ）に示す構成に限定する趣旨ではない。
【０１４８】
図１５は、ＢＩＯＳ−ＳＣＵファームウェア間で双方向通信を行なう場合のＲＴＣ切替え処理の具体例を示すフローチャートである。図１５は、パーティション７００に含まれるＳＢ＃０を、ＳＢ＃１に切替えた場合に生じるＲＴＣ切替え処理である。
【０１４９】
ステップＳ１５０１において、ＳＣＵファームウェア７４０は、ＳＢ＃０を含むパーティション７００のパワーオン処理を実行する。このとき、ＳＣＵファームウェア７４０は、例えば、パーティション７００に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア７４０が、ＳＢ＃０のＣＰＵ６１１のリセットを解除すると、ＣＰＵ６１１はメモリ６１２から所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃０が起動する（ステップＳ１５０２）。
【０１５０】
ステップＳ１５０３において、ＢＩＯＳ＃０は、ＫＣＳインタフェースを使用した通信により、ＳＣＵファームウェア７４０にＲＴＣ切替え発生の有無を問い合わせる。ＢＩＯＳ＃０から問い合わせを受けると、ＳＣＵファームウェア７４０は、ＫＣＳインタフェースを使用した通信により、ＢＩＯＳ＃０にＲＴＣ切替え発生の有無を通知する。
【０１５１】
なお、ＳＣＵファームウェア７４０は、例えば、メモリ６３２に記憶された、ＲＴＣ切替え発生情報を参照することにより、ＲＴＣ切替え発生の有無を知ることができる。ＲＴＣ切替え発生情報は、図１０に示したステップＳ１００３またはＳ１００４の判断結果を含むことができる。この場合、ＳＣＵファームウェア７４０は、ステップＳ１００３またはＳ１００４で、ＲＴＣ切替え発生情報を生成してメモリ６３２に記憶すればよい。
【０１５２】
ステップＳ１５０３では、ＲＴＣ切替えが発生していないものとする。なお、ＲＴＣ切替えが発生した場合の処理では、ステップＳ１５１８〜Ｓ１５２０と同様の処理が行なわれる。
【０１５３】
ステップＳ１５０４〜Ｓ１５１４までの処理は、図９に示したステップＳ９０４〜Ｓ９１４までの処理と同様の処理が行なわれるので、説明を省略する。
【０１５４】
ステップＳ１５１５において、ＳＣＵファームウェア７４０は、ＳＢ＃１を含むパーティション７００のパワーオン処理を実行する。このとき、ＳＣＵファームウェア７４０は、例えば、パーティション７００に含まれる各デバイスのリセット信号を操作する。そして、ＳＣＵファームウェア７４０が、ＳＢ＃１のＣＰＵ６２１のリセットを解除すると、ＳＢ＃１のＣＰＵ６２１はメモリから所定のプログラムを読み出して実行する。これにより、ＢＩＯＳ＃１が起動する（ステップＳ１５１６）。
【０１５５】
ステップＳ１５１７において、ＢＩＯＳ＃１は、ＫＣＳインタフェースを使用した通信により、ＳＣＵファームウェア７４０にＲＴＣ切替え発生の有無を問い合わせる。ＢＩＯＳ＃１から問い合わせを受けると、ＳＣＵファームウェア７４０は、ＫＣＳインタフェースを使用した通信により、ＢＩＯＳ＃１にＲＴＣ切替え発生の有無を通知する。
【０１５６】
ステップＳ１５１７では、ＲＴＣ切替えが発生したものとする。この場合、ステップＳ１５１８〜Ｓ１５２２までの処理は、図９に示したステップＳ９１９〜Ｓ９２３までの処理と同様の処理が行なわれるので、説明を省略する。
以上に説明したように、ＳＣＵファームウェア７４０は、ＲＴＣ切替え発生を検出する。そして、ＳＣＵファームウェア７４０は、ＲＴＣ切替え発生を、パーティション７００内のＢＩＯＳ７１０に通知する（例えば、ステップＳ９１５）。一方、ＲＴＣ切替え発生の通知を検出すると、ＢＩＯＳ７１０は、起動時に、ＳＣＵファームウェア７４０からパーティション時刻を取得して、切替え後のＲＴＣにパーティション時刻を設定する（例えば、ステップＳ９１８〜Ｓ９２１）。
【０１５７】
このように、ＲＴＣ切替えが発生した場合、ＢＩＯＳ７１０は、起動時に、毎回、ＳＣＵファームウェア７４０からパーティション時刻を読み出して切替え後のＲＴＣに設定する。これにより、切替え後のＲＴＣに、初期設定時刻が設定されていない場合であっても、切替え前のＲＴＣのＲＴＣ時刻を切替え後のＲＴＣに引継ぐことができる。その結果、切替え後のＲＴＣに設定されている時刻に関係なく、例えば、初期設定時刻が設定されていない場合であっても、ＲＴＣ切替え前後でＯＳ時刻が引継がれる。
【０１５８】
また、ＢＩＯＳ７１０は、パーティション７００内のＬｅｇａｃｙ  Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  ＨＵＢに対して、ＲＴＣ時刻書込みフック設定を行なう（例えば、ステップＳ９０６）。これにより、ＯＳ７２０がＯＳ時刻を変更して、ＲＴＣのＲＴＣ時刻に反映すると、ＳＭＩハンドラ７３０が実行される。このとき、ＳＭＩハンドラ７３０は、ＯＳ７２０がＲＴＣに設定したＲＴＣ時刻をＳＣＵファームウェア７４０に通知する（例えば、ステップＳ９１１）。すると、ＯＳ７２０が変更したＯＳ時刻が、パーティション時刻に反映される（例えば、ステップＳ９１２）。
【０１５９】
このように、ＯＳ７２０がＯＳ時刻を変更してＲＴＣ時刻に反映すると、そのＲＴＣ時刻はパーティション時刻にも反映される。この場合、ＯＳ７２０がＯＳ時刻を変更後、パーティション７００の再起動をする前に、ＲＴＣ切替えが行なわれても、切替え後のＲＴＣには、パーティション時刻が引継がれる。そのため、ＯＳ７２０がＯＳ時刻を変更後、パーティション７００の再起動をする前に、ＲＴＣ切替えが行なわれても、切替え前のＲＴＣのＲＴＣ時刻を切替え後のＲＴＣに引継ぐことができる、すなわち、ＲＴＣ切替え前でのＯＳ時刻の引継ぎが行なわれる。
【０１６０】
以上に説明したように、実施例に係る情報処理装置６００によると、ＯＳ時刻の引継ぎを確実に行なうことができる。
【０１６１】
また、ＯＳ時刻の引継ぎを確実に行なうことができるので、システム・ボード交換時にＯＳ時刻を手動で復旧する必要がなくなる。また、以上に説明した実施例に係る情報処理装置６００は、特別な装置、例えば、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を使用してＯＳ時刻と同期するために使用する外部時計装置などを用いることなく、ＯＳ時刻の引継ぎを行なうことができる。そのため、外部時計装置などの余計なコストが不要となる。
【図１】
2012131964.tif 000003
【図２】
2012131964.tif 000004
【図３】
2012131964.tif 000005
【図４】
2012131964.tif 000006
【図５】
2012131964.tif 000007
【図６】
2012131964.tif 000008
【図７】
2012131964.tif 000009
【図８】
2012131964.tif 000010
【図９】
2012131964.tif 000011
【図１０】
2012131964.tif 000012
【図１１】
2012131964.tif 000013
【図１２】
2012131964.tif 000014
【図１３】
2012131964.tif 000015
【図１４】
2012131964.tif 000016
【図１５】
2012131964.tif 000017
【手続補正書】
【提出日】平成25年10月3日(2013.10.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１または２以上のパーティションを含む情報処理装置において、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出する検出手段と、
前記計時手段の切替えを検出しない場合、前記第１の計時手段から取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第３の計時手段から取得した時刻を前記第２の計時手段に設定する第１の設定手段と、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する第２の設定手段と、
を備える情報処理装置。
【請求項２】
前記パーティションの構成を制御する制御手段をさらに備え、
前記制御手段は、前記パーティションに含まれるハードウェアを変更すると、該変更前のハードウェアに含まれる計時手段が、前記オペレーティングシステムが使用する時刻を計時する前記第１の計時手段であった場合、前記計時手段の切替えがあったと判別する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記計時手段の切替えの有無を示す情報を、所定の記憶手段を介して、前記検出手段に通知する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記計時手段の切り替えの有無を示す情報を、双方向通信インタフェースを用いた前記検出手段との通信によって通知する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
１または２以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合には、前記第１の計時手段から取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定する一方、前記計時手段の切替えを検出した場合には、前記第３の計時手段から取得した時刻を前記第２の計時手段に設定し、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する、
処理を実行させる制御方法。
【請求項６】
１または２以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第１の計時手段から、第２の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合、前記第１の計時手段から取得した時刻を、前記パーティションで使用する時刻を計時する第３の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第３の計時手段から取得した時刻を前記第２の計時手段に設定し、
前記オペレーティングシステムによる前記第１の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第１の計時手段に設定した時刻を、前記第３の計時手段に設定する、
処理を実行させるためのプログラム。
【国際調査報告】
2012131964.tif 000018
2012131964.tif 000019
2012131964.tif 000020
2012131964.tif 000021