JPWO2012131964A1 - 情報処理装置、制御方法およびプログラム - Google Patents
情報処理装置、制御方法およびプログラム Download PDFInfo
- Publication number
- JPWO2012131964A1 JPWO2012131964A1 JP2013506963A JP2013506963A JPWO2012131964A1 JP WO2012131964 A1 JPWO2012131964 A1 JP WO2012131964A1 JP 2013506963 A JP2013506963 A JP 2013506963A JP 2013506963 A JP2013506963 A JP 2013506963A JP WO2012131964 A1 JPWO2012131964 A1 JP WO2012131964A1
- Authority
- JP
- Japan
- Prior art keywords
- time
- rtc
- partition
- measuring means
- scu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
情報処理装置に、パーティションで動作するオペレーティングシステムが使用する時刻を計時する第1の計時手段から、第2の計時手段への計時手段の切替えを検出する検出手段と、計時手段の切替えを検出しない場合、第1の計時手段から時刻を取得した時刻を、パーティションで使用する時刻を計時する第3の計時手段に設定し、計時手段の切替えを検出した場合、第3の計時手段から時刻を取得した時刻を第2の計時手段に設定する第1の設定手段と、オペレーティングシステムによる第1の計時手段への時刻設定を検出すると、オペレーティングシステムが第1の計時手段に設定した時刻を、第3の計時手段に設定する第2の設定手段と、を備える。
Description
本発明は、情報処理装置、制御方法およびプログラムに関する。
従来、複数のシステム・ボードを備える情報処理装置が知られている。システム・ボードには、例えば、メモリコントローラを含むCPU(Central Processing Unit)、メモリ、I/O HUB、Legacy I/O Controller HUB(ICH)、RTC(Real Time Clock)などが含まれる。システム・ボードは、I/O HUB配下に接続されるIO装置と組み合わせて一つの論理システム、すなわちパーティションとして動作する。
情報処理装置が複数のシステム・ボードを含む場合、情報処理装置は、任意のシステム・ボードをまとめて1つのパーティションとして構成することで、1または2以上のパーティションを含むこともできる。
RTCは、パーティションで使用する時計である。RTCは、1つのパーティション内では1つだけが有効となる。RTCは、パーティションの電源とは異なる電源、例えば、電池等で動作するので、パーティションの電源が切断されていても時刻を刻み続ける。
また、情報処理装置は、システム制御装置(SCU:System Control Unit)を備える。システム制御装置は、パーティション構成やパーティションの電源のON/OFFなどの制御を行なう。システム制御装置には、システム制御装置自身の時刻を刻む時計であるSCU(System Control Unit)クロックが含まれる。SCUクロックは、RTCと同程度の精度を持つ。また、システム制御装置には、パーティション情報を保持する記憶媒体が含まれる。
情報処理装置は例えば、システム・ボード#0の故障を検出すると、システム・ボード#0を含むパーティションを再起動する。このとき、情報処理装置は、システム・ボード#0をパーティションから切り離し、予備の待機系システム・ボード#1をパーティションに組み込んで、パーティションを復旧させる。
OS(Operating System)が起動するときに、OSは、RTCから、RTCが計時する時刻(以下、「RTC時刻」という)を取得する。取得したRTC時刻は、OSが稼働中、CPUのカウンタによって計時される。OSは、CPUのカウンタに計時される時刻を使用する。以下、OSが使用する時刻を「OS時刻」という。OSが停止するときに、OSは、CPUのカウンタから取得したOS時刻をRTCに設定する。これにより、OSが起動していない間、RTCでOS時刻が計時される。
また、システム・ボード#0に備わるRTCが有効な場合に、システム・ボード#0を予備のシステム・ボード#1に交換すると、パーディション内で有効のRTCとして、例えば交換後のシステム・ボード#1のRTCを有効にする必要がある。この場合、OSは、システム・ボード#1のRTCからRTC時刻をOS時刻として取得する。
通常、交換前のシステム・ボード#0のRTCが計時するRTC時刻と、交換後のシステム・ボード#1のRTCが計時するRTC時刻とは異なっている。そのため、システム・ボードの交換前と交換後でOS時刻が変化してしまう場合がある。そこで、OS時刻の引継ぎ処理が行なわれる。
図1は、OS時刻の引継ぎ処理を説明するための情報処理装置100の概念図である。
図1に示す情報処理装置100は、情報処理装置100を論理的に分割したパーティション110と、システム制御装置120と、を備える。
図1に示す情報処理装置100は、情報処理装置100を論理的に分割したパーティション110と、システム制御装置120と、を備える。
パーティション110には、ハードウェア111、CPU111cによって実行されるBIOS(Basic Input Output System)112およびOS113などが含まれる。ハードウェア111には、RTC111a、Legacy I/O
Controller HUB111bおよびCPU111cなどが含まれる。CPU111cは、時刻を計時するカウンタ111dを備える。
Controller HUB111bおよびCPU111cなどが含まれる。CPU111cは、時刻を計時するカウンタ111dを備える。
システム制御装置120には、ハードウェア121、CPU121cによって実行されるSCUファームウェア122などが含まれる。ハードウェア121には、SCUクロック121a、メモリ121bおよびCPU121cなどが含まれる。
情報処理装置100は、図2に示す処理によって、OS時刻の引継ぎを行なう。
情報処理装置100は、図2に示す処理によって、OS時刻の引継ぎを行なう。
BIOS112は、OS113起動前に、RTC111aからRTC時刻を取得する(ステップS201)。RTC時刻が初期設定時刻以外の場合(ステップS202 YES)、BIOS112は、SCUファームウェア122にRTC時刻を通知する(ステップS203)。この場合、SCUファームウェア122は、BIOS112から通知されたRTC時刻と、SCUクロック121aの時刻との差分値Δtをメモリ121bに記憶する。以下、SCUクロックの時刻を「SCU時刻」という。このように、SCUファームウェア112は、SCUクロック121aのSCU時刻との差分値Δtの形で、パーティションで使用する基準時刻(以下、「パーティション時刻」という)を保持する。
また、RTC時刻が初期設定時刻の場合(ステップS202 NO)、BIOS112は、システム・ボードが交換されたと判断する。この場合、BIOS112は、SCUファームウェア122からパーティション時刻を取得する(ステップS204)。具体的には、次のような処理が行なわれる。まず、BIOS112が、SCUファームウェア122に対してパーティション時刻を要求する。すると、要求を受けたSCUファームウェア122は、SCUクロック121aのSCU時刻に、メモリ121bに記憶された差分値Δtを加算してパーティション時刻を生成する。そして、SCUファームウェア122は、生成したパーティション時刻をBIOS112に通知する。
SCUファームウェア122からパーティション時刻を取得すると、BIOS112は、RTC111aのRTC時刻を、SCUファームウェア122から取得したパーティション時刻に書き換える(ステップS205)。
その後、OS113が起動すると、OS113は、RTC111aからRTC時刻を取得する。取得したRTC時刻は、CPU111c内のカウンタ111dで計時される。OS113は、カウンタ111dで計時される時刻をOS時刻として使用する。
以上のようにして、情報処理装置100は、パーティションで使用されていたRTCが搭載されたシステム・ボードが交換された場合でも、OS時刻を引継ぐことができる。
上記技術に関連して、各プロセッサからのアクセスをバス獲得制御部で一旦受け、このバス獲得制御部がいずれか一つのプロセッサを、共通バスを介してリアルタイムクロックに接続させるように構成したリアルタイムクロックのアクセス方式が知られている。
しかし、図2で説明したOS時刻の引継ぎ処理は、交換後のシステム・ボードのRTC時刻に初期設定時刻が設定されている必要がある。したがって、例えば、交換後のシステム・ボードが、交換前に既にパーティションの資源として使用されてRTC時刻が設定され、その使用後RTC時刻に初期設定時刻が設定されていなかった場合など、RTC時刻に初期設定時刻以外の値が設定されている場合、正常に時刻の引継ぎができない。
図3は、時刻の引継ぎ処理が正常に行なわれない場合の一例を説明する図である。
なお、図3では、システム・ボード#0を「SB#0」、システム・ボード#1を「SB#1」と略記する。また、SB#0上のRTCをRTC#0、SB#0で動作するOS、BIOSをそれぞれOS#0、BIOS#0とする。そして、RTC#0のRTC時刻をA(t)とする。同様に、SB#1上のRTCをRTC#1、SB#1で動作するOS、BIOSをそれぞれOS#1、BIOS#1とする。そして、RTC#1のRTC時刻をB(t)とする。また、RTC時刻A(t)およびB(t)は、初期設定時刻以外の値であるとする。
ステップS301において、SCUファームウェア122は、パーティション110のパワーオン処理を実行する。このとき、SCUファームウェア122は、例えば、パーティション110に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア122が、SB#0のCPUのリセットを解除すると、SB#0のCPUはメモリから所定のプログラムを読み出して実行する。これにより、BIOS#0が起動する(ステップS302)。
ステップS303において、BIOS#0は、RTC#0からRTC時刻A(t)を読み出す。図3の例では、RTC時刻A(t)は、初期設定時刻以外の値なので、BIOS#0は、読み出したRTC時刻A(t)をSCUファームウェア122に通知する。
ステップS304において、SCUファームウェア122は、BIOS#0から通知されたRTC時刻A(t)と、SCUクロック121aのSCU時刻と、の差分値Δtを算出する。そして、SCUファームウェア122は、算出した差分値Δtをメモリ121bに記憶する。BIOS#0は、OS#0を起動させると処理を終了する。
ステップS305において、OS#0が起動すると、OS#0は、RTC#0からRTC時刻A(t)を取得する。OS#0は、読み出したRTC時刻A(t)を、OS時刻として使用する。
ここで、SB#0に故障が発生して、OS#0がダウンした場合を考える。この場合、SCUファームウェア122は、SB#0の故障を検出する(ステップS306)。すると、SCUファームウェア122は、使用するシステム・ボードをSB#0からSB#1に切替える、すなわち、SB#0をパーティション110の構成から切り離し、SB#1をパーティション110の構成に組み込む(ステップS307)。
ステップS308において、SCUファームウェア122は、パーティション110のパワーオン処理を実行する。このとき、SCUファームウェア122は、例えば、パーティション110に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア122が、SB#1のCPUのリセットを解除すると、SB#1のCPUはメモリから所定のプログラムを読み出して実行する。これにより、BIOS#1が起動する(ステップS309)。
ステップS310において、BIOS#1は、RTC#1からRTC時刻B(t)を読み出す。図3の例では、RTC時刻B(t)は、初期設定時刻以外の値なので、BIOS#1は、読み出したRTC時刻B(t)をSCUファームウェア122に通知する。
ステップS311において、SCUファームウェア122は、BIOS#1から通知されたRTC時刻B(t)と、SCUクロック121aのSCU時刻と、の差分値Δt’を算出する。そして、SCUファームウェア122は、算出した差分値Δt’をメモリ121bに記憶する。BIOS#1は、OS#1を起動させると処理を終了する。
ステップS312において、OS#1が起動すると、OS#1は、RTC#1からRTC時刻B(t)を読み出す。OS#1は、読み出したRTC時刻B(t)を、OS時刻として使用する。
このように、交換後のSB#1のRTC#1に初期設定時刻以外の値が設定されているため、交換前のSB#0で動作するOS#0が使用していた時刻A(t)は、交換後のSB#1で動作するOS#1に引継がれない。
また、図3で説明したOS時刻の引継ぎ処理では、SCUファームウェア122は、パーティション起動時にだけ、RTC時刻とSCU時刻との差分値の形で、RTC時刻をパーティション時刻としてメモリ121bに記憶する。したがって、例えば、OS#0運用中にOS#0からRTC時刻を変更しても、その変更した結果をRTC#0に反映することなくシステム・ボードの交換などが発生した場合、交換後のシステム・ボードで動作するOS#1に、OS#0で変更したRTC時刻を引継ぐことができない。具体例を図4に示す。
図4は、OS時刻の引継ぎ処理が正常に行なわれない場合のその他の例を示す図である。
なお、図4では、システム・ボード#0を「SB#0」、システム・ボード#1を「SB#1」と略記する。また、SB#0上のRTCをRTC#0、SB#0で動作するOS、BIOSをそれぞれOS#0、BIOS#0とする。そして、RTC#0のRTC時刻をA(t)とする。同様に、SB#1上のRTCをRTC#1、SB#1で動作するOS、BIOSをそれぞれOS#1、BIOS#1とする。そして、RTC#1のRTC時刻をB(t)とする。また、RTC時刻A(t)は初期設定時刻以外の値、B(t)は初期設定時刻であるとする。
なお、図4では、システム・ボード#0を「SB#0」、システム・ボード#1を「SB#1」と略記する。また、SB#0上のRTCをRTC#0、SB#0で動作するOS、BIOSをそれぞれOS#0、BIOS#0とする。そして、RTC#0のRTC時刻をA(t)とする。同様に、SB#1上のRTCをRTC#1、SB#1で動作するOS、BIOSをそれぞれOS#1、BIOS#1とする。そして、RTC#1のRTC時刻をB(t)とする。また、RTC時刻A(t)は初期設定時刻以外の値、B(t)は初期設定時刻であるとする。
ステップS401〜S405は、図3に示したステップS301〜S305と同じ処理が行なわれる。
ステップS406において、OS#0は、利用者から時刻変更の指示を受けると、以後、OS#0は、指示のあった時刻C(t)を使用する。また、OS#0は、時刻C(t)をRTC#0に設定する。
ここで、SB#0に故障が発生して、OS#0がダウンした場合を考える。この場合、SCUファームウェア122は、ステップS407〜S410において、ステップS306〜S309と同様の処理を行なう。
ステップS411において、BIOS#1は、RTC#1からRTC時刻B(t)を読み出す。図4の例では、RTC時刻B(t)は、初期設定時刻なので、BIOS#1は、SCUファームウェア122からパーティション時刻A(t)を取得する。このとき、具体的には、次のような処理が行なわれる。まず、BIOS#1が、SCUファームウェア122に対して、パーティション時刻を要求する。すると、要求を受けたSCUファームウェア122は、SCUクロック121aのSCU時刻に、メモリ121bに記憶された差分値Δtを加算することにより、パーティション時刻A(t)を生成する。そして、SCUファームウェア122は、生成したパーティション時刻A(t)をBIOS112に通知する(ステップS412)。
SCUファームウェア122からパーティション時刻A(t)を取得すると、BIOS#1は、RTC#1にパーティション時刻A(t)を設定する。BIOS#1は、OS#1を起動させると処理を終了する。
ステップS414において、OS#1が起動すると、OS#1は、RTC#1からRTC時刻A(t)を取得する。OS#1は、読み出したRTC時刻A(t)を、OS時刻として使用する。
このように、交換後のSB#1のRTC#1に初期設定時刻が設定されていても、交換前のSB#0で動作していたOS#0が変更した時刻C(t)は、SB交換前にパーティション110の再起動をしなければ、交換後のSB#1で動作するOS#1に引継がれない。
本情報処理装置は、1つの側面では、オペレーティングシステムが使用する時刻を確実に引継ぐことができることを目的とする。
本情報処理装置の1つの観点によれば、本情報処理装置は、1または2以上のパーティションを含む情報処理装置である。そして、本情報処理装置は、以下の構成要素を備える。
検出手段は、前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第1の計時手段から、第2の計時手段への計時手段の切替えを検出する。
第1の設定手段は、前記計時手段の切替えを検出しない場合、前記第1の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第3の計時手段に設定する。また、第1の設定手段は、前記計時手段の切替えを検出した場合、前記第3の計時手段から時刻を取得した時刻を前記第2の計時手段に設定する。
第2の設定手段は、前記オペレーティングシステムによる前記第1の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第1の計時手段に設定した時刻を、前記第3の計時手段に設定する。
本情報処理装置は、1つの態様では、オペレーティングシステムが使用する時刻を確実に引継ぐことができる。
以下、本発明の実施形態の一例について、図5〜図15に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、各実施例を組み合わせるなど種々変形して実施することができる。また、図8〜図13および図15にフローチャートの形式で示した処理手順は、処理の順番を限定する趣旨ではない。したがって、可能な場合には、処理の順番を入れ替えても良いのは当然である。
≪実施例≫
図5は、一実施例に係る情報処理装置500の概要を説明する図である。
情報処理装置500は、パーティション510と、計時手段520と、検出手段530と、第1の設定手段540と、第2の設定手段550とを備える。
図5は、一実施例に係る情報処理装置500の概要を説明する図である。
情報処理装置500は、パーティション510と、計時手段520と、検出手段530と、第1の設定手段540と、第2の設定手段550とを備える。
パーティション510は、情報処理装置500の一部または全部の資源、例えば、CPUやメモリ、計時手段512などを含むシステム・ボード、IO装置などを含む。そして、パーティション510に含まれるCPUが所定のプログラムを実行することによって、オペレーティングシステム511が動作する。また、パーティション510は、オペレーティングシステム511が使用する計時手段512を含む。計時手段512は、オペレーティングシステム511が使用する時刻を計時するクロックである。
計時手段520は、パーティション510で使用する時刻を計時するクロックである。
検出手段530は、パーティション510で動作するオペレーティングシステム511が使用する時刻を計時する計時手段512の切替えを検出する。
検出手段530は、パーティション510で動作するオペレーティングシステム511が使用する時刻を計時する計時手段512の切替えを検出する。
例えば、パーティション510に含まれるシステム・ボード#0をシステム・ボード#1に交換する場合、システム・ボード#0に含まれる計時手段512である第1の計時手段は、システム・ボード#1に含まれる計時手段512である第2の計時手段に切替る。このように、システム・ボードの交換などによって、オペレーティングシステム511が使用する時刻を計時する計時手段512が、第1の計時手段から第2の計時手段に切替ることを、検出手段530は、検出する。 第1の設定手段540は、オペレーティングシステム511起動前に、計時手段512から時刻を取得し、取得した時刻をパーティション510で使用する時刻を計時する計時手段520に設定する。ただし、第1の設定手段540は、計時手段512の切替えを検出した場合、オペレーティングシステム511起動前に、計時手段520から時刻を取得して取得した時刻を計時手段512に設定する。
第2の設定手段550は、オペレーティングシステム511起動後に、オペレーティングシステム511による計時手段512への時刻設定を検出すると、オペレーティングシステム511が計時手段512に設定した時刻を計時手段520に設定する。
以上のように、情報処理装置500は、計時手段512の切替えを検出すると、パーティション510で使用する時刻を計時する計時手段520から時刻を取得し、取得した時刻を計時手段512に設定する。また、計時手段520には、切替え前の計時手段512の時刻が既に設定されているので、切替え後の計時手段512には、切替え前の計時手段512の時刻が引継がれる。このように、切替え後の計時手段512の時刻に関係なく、計時手段512の切替え前後で、オペレーティングシステムが使用する時刻が引継がれる。
また、情報処理装置500は、オペレーティングシステム511による計時手段512への時刻設定を検出すると、オペレーティングシステム511が計時手段512に設定した時刻を、計時手段520に設定する。その後、計時手段512の切替えを検出すると、情報処理装置500は、計時手段520から時刻を取得し、取得した時刻を計時手段512に設定する。その結果、切替え後の計時手段512には、切替え前の計時手段512にオペレーティングシステム511が設定した時刻が引継がれる。このように、オペレーティングシステム511が計時手段512の時刻を変更したあと、何らかの理由によって計時手段512が切替えられても、オペレーティングシステムが使用する時刻が引継がれる。
以上に説明したように、実施例に係る情報処理装置500によると、オペレーティングシステム511が使用する時刻の引継ぎを確実に行なうことができる。
なお、図5では、説明を簡単にするために、パーティション510と、計時手段520、検出手段530、第1の設定手段540および第2の設定手段550と、を分けて記載している。しかし、計時手段520、検出手段530、第1の設定手段540および第2の設定手段550が、パーティション510とは独立する構成要素であることに限定する趣旨ではない。計時手段520、検出手段530、第1の設定手段540および第2の設定手段550は、パーティション510に含まれる資源、例えば、演算装置などの一部または全部を共有してもよい。
≪その他の実施例≫
図6は、その他の実施例に係る情報処理装置600の構成例を示す図である。
情報処理装置600は、システム・ボード610および620と、システム制御装置630と、IO装置640とを備える。そして、情報処理装置600は、システム・ボード610とIO装置640を含むパーティション700を実現する。
図6は、その他の実施例に係る情報処理装置600の構成例を示す図である。
情報処理装置600は、システム・ボード610および620と、システム制御装置630と、IO装置640とを備える。そして、情報処理装置600は、システム・ボード610とIO装置640を含むパーティション700を実現する。
システム・ボード610は、CPU611と、メモリ612と、I/O HUB613と、Legacy I/O Controller HUB614と、RTC615と、FRU616とを備える。
CPU611は、メモリ612上に展開されたプログラム、BIOSやOSなどを読み出し、読み出したプログラムの命令にしたがって演算を行なう演算装置である。
メモリ612は、CPU611が実行するプログラムやデータなどを記憶する記憶装置である。メモリ612には、例えば、RAM(Random Access Memory)などの揮発性メモリを使用することができる。
I/O HUB613は、メモリ612とLegacy I/O Controller HUB614やPCIe(Peripheral Component Interconnect Express)スイッチ641とを接続するためのインタフェースである。
Legacy I/O Controller HUB614は、LPC(Low Pin Count)インタフェースやPCIバス、USB(Universal Serial Bus)などと接続するためのインタフェースである。
Legacy I/O Controller HUB614は、Legacy I/O Controller HUB614を経由して行なわれる特定の装置へのアクセスを検出してSMI割り込みを発生させることができる。
RTC615は、パーティション700で使用する時計である。RTC615は、パーティション700が使用する電源と異なる電源、例えば、電池などを使用する。したがって、パーティション700の電源が切断されていても時刻の計時を継続する。 例えば、RTC615はI/O空間の所定のアドレスにマッピングされる。したがって、CPU611は、I/Oアクセス命令を使って、RTC615にアクセスすることができる。Legacy I/O Controller HUB614は、指定したI/O空間アドレスへのI/Oアクセスをフックすることができる。例えば、インテル社のICH(I/O
Controller Hub)10では、RTC615のI/O空間アドレスと、アクセスの種類、例えばライトとを指定する値を、ICH内の所定のレジスタに設定することで、RTC615へ時刻書込みのフックを設定できる。
Controller Hub)10では、RTC615のI/O空間アドレスと、アクセスの種類、例えばライトとを指定する値を、ICH内の所定のレジスタに設定することで、RTC615へ時刻書込みのフックを設定できる。
FRU(Field Replaceable Unit)616は、システム制御装置630と、例えば、シリアルインタフェースで通信可能に接続している。FRU616は、システム・ボード610に含まれる装置、例えば、CPU611、メモリ612、I/O HUB613、Legacy I/O Controller HUB614およびRTC615の識別情報を含むSB(System Board)情報を保持する。FRU616は、システム制御装置630からの要求に応じて、SB情報をシステム制御装置630に通知する。
システム・ボード620は、システム・ボード610故障時に使用する予備のシステム・ボードである。そして、システム・ボード620は、CPU621と、メモリ622と、I/O HUB623と、Legacy I/O Controller HUB624と、RTC625と、FRU626とを備える。
なお、CPU621、メモリ622は、それぞれCPU611、メモリ612と同様の構成である。また、I/O HUB623、Legacy I/O Controller HUB624、RTC625、FRU626は、それぞれI/O HUB613、Legacy I/O Controller HUB614、RTC615、FRU616と同様の構成である。
システム制御装置630は、システム制御装置630に備わるCPU633が所定のプログラムを実行することで、SCUファームウェアを実現する。そして、SCUファームウェアが、パーティション700の構成やパーティション700のパワーオン・オフの制御などを行なう。
システム制御装置630は、SCUクロック631と、メモリ632と、CPU633とを備える。
SCUクロック631は、システム制御装置630自身の時刻を計時するクロックである。メモリ632は、パーティション700の構成や差分時刻Δtなどを含むパーティション情報を記憶する記憶装置である。メモリ632には、EEPROM(Electrically Erasable Programmable Read Only Memory)などの不揮発性メモリを使用することができる。CPU633は、所定のプログラムを実行する演算装置である。
システム制御装置630は、システム・ボード610上のCPU611と接続し、Network Controller Sidebandインタフェースなどを利用することができる。これにより、システム制御装置630で動作するSCUファームウェアは、CPU611内のスクラッチ・パッドに、後述するRTC切替え発生フラグを設定することができる。
また、システム制御装置630は、システム・ボード610上のLegacy I/O Controller HUB614と接続し、KCS(Keyboard Controller Style)インタフェースなどを利用することができる。これにより、例えば、CPU611で動作するBIOSと、システム制御装置630で動作するSCUファームウェアとが、I/O HUB613およびLegacy I/O Controller HUB614を介して、双方向通信を行なうことができる。
IO装置640は、PCIeスイッチ641と、GbE(Gigabit Ethernet(登録商標))コントローラ642および643と、PCIeスロット644および645と、SAS(Serial Attached SCSI(Small Computer System Interface))コントローラ646および647とを備える。
PCIeスイッチ641は、システム・ボード610と、PCIeスイッチ641に接続するGbEコントローラ642、643、PCIeスロット644、645、SASコントローラ646および647とを通信可能に接続するスイッチング機能を有するスイッチである。
GbEコントローラ642および643は、GbEネットワーク機器と接続するインタフェース装置である。また、PCIeスロット644および645は、PCIe装置と接続するインタフェース装置である。また、SASコントローラ646および647は、SAS装置と接続するインタフェース装置である。
以上の説明において、パーティション700には、システム・ボード610を1つだけ含む場合を示したが、パーティション700に含まれるシステム・ボード610の数を限定する趣旨ではない。
図7は、本実施例で使用するBIOS、OS、SMIハンドラおよびSCUファームウェアの概念を説明する図である。
パーティション700では、BIOS710、OS720およびSMIハンドラ730が動作する。BIOS710、OS720およびSMIハンドラ730は、いずれもパーティション700に含まれ、システム・ボード610のCPU611が実行する。また、パーティション700に含まれるシステム・ボードが、システム・ボード610からシステム・ボード620に切替えられた場合、BIOS710、OS720およびSMIハンドラ730は、システム・ボード620のCPU621が実行する。
BIOS710は、パーティション700に含まれる装置や周辺機器などの初期化などの他に、例えば、以下のような処理を行なう。
BIOS710は、パーティション700内で有効のRTCに対して、RTC時刻の読み出しや時刻の設定などの制御を行なう(711)。例えば、BIOS710は、パーティション700内で有効のRTCからRTC時刻を読み出し、読み出したRTC時刻をSCUファームウェア740に通知する。また、BIOS710は、SCUファームウェア740からパーティション時刻を取得し、取得したパーティション時刻を、パーティション700内で有効のRTCに設定する。
なお、図6に示すパーティション700の場合、パーティション700内のシステム・ボードは、システム・ボード610の1つだけなので、RTC615が有効となる。また、パーティション700のシステム・ボードを、システム・ボード610からシステム・ボード620に切替えた場合、パーティション700内のシステム・ボードは、システム・ボード620の1つだけなので、RTC625が有効となる。以下、図7および図8の説明では、パーティション700内で有効のRTCを、単に「RTC」という。
また、BIOS710は、パーティション700内のLegacy I/O Controller HUBのレジスタに所定の値を設定することにより、RTC時刻書込みフック設定を行なう(712)。RTC時刻書込みフック設定とは、Legacy I/O Controller HUBが、Legacy I/O Controller HUBを経由して行なわれるRTCへの時刻設定を検出してSMI割り込みを生成する設定である。
また、BIOS710は、RTC切替え発生を検出する(713)。具体的には、BIOS710は、BIOS710が動作するCPUのスクラッチ・パッドに設定されたRTC切替え発生フラグに基づいて、RTCが切替えられたことを検出する。この場合、BIOS710は、SCUファームウェア740からパーティション時刻を取得し、取得したパーティション時刻をRTCに設定する。
OS720は、ユーザが指定する時刻をRTCに設定する処理を行なうことができる。この場合、OS720を実行するCPUが、Legacy I/O Controller HUBを経由してRTCに時刻設定を行なうことになる。すると、Legacy I/O Controller HUBは、Legacy I/O Controller
HUBを経由して行なわれるRTCへの時刻設定を検出し、SMI割り込みを生成する。このSMI割り込みを受けると、OS720を実行しているCPUは、SMIハンドラ730を実行する。
HUBを経由して行なわれるRTCへの時刻設定を検出し、SMI割り込みを生成する。このSMI割り込みを受けると、OS720を実行しているCPUは、SMIハンドラ730を実行する。
SMIハンドラ730は、RTCからRTC時刻を読み出し、読み出したRTC時刻をSCUファームウェア740に通知するRTC時刻書込みフック処理を行なう(714)。
システム制御装置630では、SCUファームウェア740が動作する。このSCUファームウェア740は、システム制御装置630内に備わるCPU633が実行する。
SCUファームウェア740は、パーティション700の構成やパーティション700のパワーオン・オフの制御を行なう他、例えば、以下のような処理を行なう。
SCUファームウェア740は、BIOS710やSMIハンドラ730からRTC時刻を通知されると、通知されたRTC時刻をパーティション時刻として保持する(741)。具体的には、SCUファームウェア740は、次のようにしてパーティション時刻を保持する。まず、BIOS710からRTC時刻を通知されると、SCUファームウェア740は、通知されたRTC時刻とSCUクロック631から読み出したSCU時刻との差分値Δtを算出する。そして、SCUファームウェア740は、算出した差分値Δtをメモリ632に記憶する。
また、SCUファームウェア740は、BIOS710からの要求に応じて、パーティション時刻をBIOS710に通知する(742)。具体的には、SCUファームウェア740は、BIOS710からの要求に応じて、SCUクロック631から読み出したSCU時刻にメモリ632に記憶された差分値Δtを加えた時刻を、パーティション時刻としてBIOS710に通知する。
また、SCUファームウェア740は、RTCが切替えられたことを検出すると、BIOS710にRTC切替え発生通知を行なう(743)。具体的には、SCUファームウェア740は、RTC切替え発生フラグを、パーティション700内のCPUに備わるスクラッチ・パッドに書き込む。BIOS710は、BIOS710起動後に、CPUに備わるスクラッチ・パッドを参照することで、RTC切替え発生フラグを知ることができる。
図8は、パーティション700の起動処理の概要を説明する図である。
ステップS801において、SCUファームウェア740は、パーティション700のパワーオン処理を開始する。すると、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作して、各デバイスの初期化処理などを行なう。
ステップS801において、SCUファームウェア740は、パーティション700のパワーオン処理を開始する。すると、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作して、各デバイスの初期化処理などを行なう。
ステップS802において、SCUファームウェア740は、RTC切替え発生の有無を確認する。このRTC切替え発生の有無の確認は、例えば、図13のステップS1301〜S1302の処理によって行なうことができる。そして、SCUファームウェア740は、RTC切替え発生の有無をBIOS710に通知する。本実施例では、起動前のBIOS710にRTC切替え発生の有無を通知するために、BIOS710を実行するCPUのスクラッチ・パッドにRTC切替え発生フラグを設定する。BIOS710は、BIOS710を実行するCPUのスクラッチ・パッドに設定されたRTC切替え発生フラグを参照することにより、RTC切替え発生の有無を知ることができる。
SCUファームウェア740が、パーティション700内のCPUのリセットを解除すると、パーティション700内のCPUは所定のプログラムを実行する。これにより、BIOS710が起動する。SCUファームウェア740は、パーティション700のパワーオン処理を終了する(ステップS803)。
BIOS710が起動すると(ステップS804)、BIOS710は、以下の処理を行なう。
BIOS710が起動すると(ステップS804)、BIOS710は、以下の処理を行なう。
ステップS805において、BIOS710は、RTC切替え発生の有無を確認する。具体的には、BIOS710は、BIOS710を実行しているCPUのスクラッチ・パッドに設定されたRTC切替え発生フラグを取得し、取得したRTC切替え発生フラグに基づいて、RTC切替え発生の有無を判別する。この具体的な処理については、図10で後述する。
RTC切替えが発生していない場合(ステップS806 NO)、BIOS710は、RTCからRTC時刻を取得する(ステップS807)。そして、ステップS807で取得したRTC時刻が初期設定時刻以外の値である場合(ステップS808 NO)、BIOS710は、SCUファームウェア740に、ステップS807で取得したRTC時刻を通知する(ステップS809)。RTC時刻の通知を受けると、SCUファームウェア740は、通知されたRTC時刻をパーティション時刻として記憶する。
なお、初期設定時刻とは、あらかじめ決められた一定期間の任意の時刻である。本実施例で使用する初期設定時刻は、1970年01月01日〜1990年01月01日までの任意の時刻である。これは次の理由からである。新規に製造したRTCには、計時開始の時刻として、あらかじめ決められた時刻、例えば、1970年01月01日が設定される。この場合、RTCは、1970年01月01日から計時を開始する。そのため、初期設定時刻として、計時開始の時刻を使用することは難しい。そこで、本実施例では、初期設定時刻として、計時開始の時刻である1970年01月01日から一定期間の任意の時刻、すなわち、1970年01月01日〜1990年01月01日までの任意の時刻を使用する。ただし、初期設定時刻を、1970年01月01日〜1990年01月01日までの任意の時刻に限定する趣旨ではない。必要に応じて、初期設定時刻を決めることができる。
一方、RTC切替えが発生した場合(ステップS806 YES)、または、ステップS807で取得したRTC時刻が初期設定時刻の場合(ステップS807 YES)、BIOS710は、処理をステップS810に移行する。この場合、BIOS710は、SCUファームウェア740からパーティション時刻を取得する(ステップS810)。そして、BIOS710は、取得したパーティション時刻をRTCに設定する(ステップS811)。
以上に述べたステップS806〜S811の具体的な処理については、図11で後述する。
以上に述べたステップS806〜S811の具体的な処理については、図11で後述する。
ステップS812において、BIOS710は、例えば、Legacy I/O Controller HUB内のレジスタに、RTCがマッピングされたI/O空間アドレスへのI/Oアクセスをフックするための所定の値を設定することにより、RTC時刻書込みフック設定を行なう。なお、既にRTC時刻書込みフック設定がされている場合、BIOS710は、ステップS812の処理を省略することができる。ステップS812の具体的な処理については、図12で後述する。ステップS812による設定により、Legacy I/O Controller HUBは、Legacy I/O Controller HUBを経由して行なわれるRTCへの時刻設定を検出すると、SMI割り込みを生成する。このSMI割り込みを受けると、CPU611は、SMIハンドラを起動する。SMIハンドラは、RTCからRTC時刻を読み出し、読み出したRTC時刻をSCUファームウェア740に通知する。
BIOS710は、OS720を起動させると、処理を終了する(ステップS813)。
OS720が起動すると(ステップS814)、OS720は、RTCからRTC時刻を取得する(ステップS815)。OS720は、取得したRTC時刻をOS時刻として使用する。
OS720が起動すると(ステップS814)、OS720は、RTCからRTC時刻を取得する(ステップS815)。OS720は、取得したRTC時刻をOS時刻として使用する。
図9は、本実施例に係るRTC切替え処理の具体例を示すフローチャートである。図9は、パーティション700に含まれるシステム・ボード610を、システム・ボード620に切替えた場合に生じるRTC切替え処理を示している。
なお、以降の説明では、システム・ボード610を「SB#0」、システム・ボード#1を「SB#1」と略記する。また、任意のシステム・ボードを「SB」と略記する。また、SB#0上のRTC615をRTC#0、SB#0で動作するOS、BIOSをそれぞれOS#0、BIOS#0とする。そして、RTC#0のRTC時刻をA(t)とする。同様に、SB#1上のRTC625をRTC#1、SB#1で動作するOS、BIOSをそれぞれOS#1、BIOS#1とする。そして、RTC#1のRTC時刻をB(t)とする。RTC時刻A(t)およびB(t)には、あらかじめ決められた初期設定時刻以外の値が設定されているものとする。
ステップS901において、SCUファームウェア740は、SB#0を含むパーティション700のパワーオン処理を実行する。このとき、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア740が、SB#0のCPU611のリセットを解除すると、CPU611はメモリ612から所定のプログラムを読み出して実行する。これにより、BIOS#0が起動する(ステップS902)。
ステップS903において、起動したBIOS#0は、CPU611内に備わるスクラッチ・パッド611aに設定されたRTC切替え発生フラグを参照する。RTC切替え発生フラグが「ON」の場合、BIOS#0は、RTC切替えが発生したと判断する。以下、ステップS903でRTC切替えが発生していないと判断されたものとして、処理を説明する。なお、S903でRTC切替えが発生したと判断された場合の処理は、ステップS919〜S921と同様の処理が行なわれる。したがって、RTC切替えが発生した場合の処理については、ステップS919〜S921で説明する。
ステップS904において、BIOS#0は、RTC#0からRTC時刻A(t)を取得する。図9の例では、RTC時刻A(t)は、初期設定時刻以外の値のなので、BIOS#0は、読み出したRTC時刻A(t)をSCUファームウェア740に通知する。
ステップS905において、SCUファームウェア740は、SCUクロック631から取得したSCU時刻とBIOS#0から通知されたRTC時刻A(t)との差分値Δtを算出する。そして、SCUファームウェア740は、算出した差分値Δtをメモリ632に記憶する。
ステップS906において、BIOS#0は、Legacy I/O Controller HUB614に対して、RTC時刻書込みフック設定を行なう。具体的には、BIOS#0は、Legacy I/O Controller HUB614の所定のレジスタに、Legacy I/O Controller HUB614を経由して、RTCへの時刻設定が行なわれるとSMI割り込みを生成する設定を指定する値を書き込む。
以上の処理を行なうと、BIOS#0は、OS#0を起動させて処理を終了する(ステップS907)。
ステップS908において、OS#0が起動すると、OS#0は、RTC#0からRTC時刻A(t)を取得する。OS#0は、RTC#0から読み出したRTC時刻A(t)を、OS時刻として使用する。
ステップS909において、OS#0は、利用者から時刻変更の指示を受けると、CPU611内にあるカウンタに、指示された時刻C(t)をOS時刻として設定する。また、OS#0は、Legacy I/O Controller HUB614を経由して、指示のあった時刻C(t)をRTC#0に設定する。これにより、RTC#0には、時刻C(t)が設定される(ステップS910)。
Legacy I/O Controller HUB614は、Legacy I/O Controller HUB614を経由して、RTC#0への時刻設定が行なわれたことを検出する。すると、Legacy I/O Controller HUB614は、CPU611に対してSMI割り込みを行なう。SMI割り込みを受けると、CPU611はSMIハンドラ730を実行する。
ステップS911において、SMIハンドラ730は、Legacy I/O Controller HUB614からRTC時刻C(t)を取得し、取得したRTC時刻C(t)をSCUファームウェア740に通知する。
ステップS912において、SMIハンドラ730からRTC時刻C(t)の通知を受けると、SCUファームウェア740は、SCUクロック631から取得したSCU時刻とSMIハンドラ730から通知されたRTC時刻C(t)との差分値Δt’’を算出する。そして、SCUファームウェア740は、算出した差分値Δt’’をメモリ632に記憶する。
ここで、SB#0に故障が発生して、OS#0がダウンした場合を考える。この場合、SCUファームウェア740は、SB#0の故障を検出する(ステップS913)。すると、SCUファームウェア740は、パーティション700で使用するSBをSB#0からSB#1に切替える、すなわち、SB#0をパーティション700の構成から切り離し、SB#1をパーティション700の構成に組み込む(ステップS914)。このとき、パーティション700内で有効のRTCも、SB#0に備わるRTC#0からSB#1に備わるRTC#1に切替えられる。
ステップS915において、SCUファームウェア740は、パーティション700内で有効のRTCが切替えられた旨のRTC切替え発生通知をBIOS#1に通知する。SCUファームウェア740は、起動後にBIOS#1が参照するCPU621内のスクラッチ・パッド621aに、RTC切替え発生フラグ「ON」を設定する。
ステップS916において、SCUファームウェア740は、SB#1を含むパーティション700のパワーオン処理を実行する。このとき、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア740がSB#1のCPU621のリセットを解除すると、SB#1のCPU621はメモリから所定のプログラムを読み出して実行する。これにより、BIOS#1が起動する(ステップS917)。
ステップS918において、BIOS#1は、CPU621内のスクラッチ・パッド621aを参照する。BIOS#1は、CPU621内のスクラッチ・パッド621aに設定されたRTC切替え発生フラグが「ON」の場合、RTCの切替えが発生したと判断する。なお、BIOS#1は、CPU621内のスクラッチ・パッド621aに設定されたRTC切替え発生フラグが「OFF」の場合、RTCの切替えは発生していないと判断する。
ステップS919において、BIOS#1は、SCUファームウェア740からパーティション時刻C(t)を取得する。このとき、具体的には、次のような処理が行なわれる。まず、BIOS#1が、SCUファームウェア740に対して、パーティション時刻を要求する。すると、要求を受けたSCUファームウェア740は、SCUクロック631のSCU時刻に、メモリ632に記憶された差分値Δt’’を加算することにより、パーティション時刻C(t)を生成する。そして、SCUファームウェア740は、生成したパーティション時刻C(t)をBIOS#1に通知する(ステップS920)。
ステップS921において、SCUファームウェア740からパーティション時刻C(t)を取得すると、BIOS#1は、取得したパーティション時刻C(t)をRTC#1に設定する。そして、BIOS#1は、OS#1を起動させると処理を終了する(ステップS922)。
ステップS923において、OS#1が起動すると、OS#1は、RTC#1からRTC時刻C(t)を取得する。OS#1は、取得したRTC時刻C(t)を、OS時刻として使用する。
図10は、図9のステップS903およびS918に例示した、RTC切替え発生の検出の具体的例を示すフローチャートである。なお、以下では、BIOS#0での動作について説明するが、BIOS#1でもBIOS#0と同様の動作となる。
ステップS1001において、BIOS#0は、BIOS#0を実行しているCPU611内のスクラッチ・パッド611aに設定されているRTC切替え発生フラグを参照する。そして、RTC切替え発生フラグが「ON」の場合(ステップS1002 YES)、BIOS#0は、RTC切替えがあったと判断する(ステップS1003)。また、RTC切替え発生フラグが「OFF」の場合(ステップS1002 NO)、BIOS#0は、RTC切替えがなかったと判断する(ステップS1004)。
以上の処理が終了すると、BIOS#0は、RTC切替え発生の検出処理を終了する(ステップS1005)。
図11は、図9のステップS904、S919およびS921に例示した、BIOS710によるRTC制御の具体例を示す図である。なお、以下では、BIOS#0での動作について説明するが、BIOS#1でもBIOS#0と同様の動作となる。
ステップS1101において、BIOS#0は、RTC切替え発生の有無を判別する。このステップS1101では、図10に示したRTC切替え発生の検出が行なわれる。具体的な説明は、図10で行なったので省略する。
RTC切替えが発生していないと判別すると(ステップS1102 NO)、BIOS#0は、RTC#0からRTC時刻を取得する(ステップS1103)。そして、ステップS1104において、RTC時刻が初期設定時刻か否かのチェックを行なう。
ステップS1103で取得したRTC時刻が初期設定時刻以外の場合(ステップS1104 NO)、BIOS#0は、ステップS1103で取得したRTC時刻を、SCUファームウェア740に通知する(ステップS1105)。
また、RTC切替えが発生したと判別した場合(ステップS1102 YES)、または、ステップS1103で取得したRTC時刻が初期設定時刻の場合(ステップS1104 YES)、BIOS#0は、処理をステップS1106に移行する。この場合、BIOS#0は、SCUファームウェア740からパーティション時刻を取得する(ステップS1106)。そして、BIOS#0は、SCUファームウェア740から取得したパーティション時刻を、RTC#0に設定する(ステップS1107)。
以上の処理を終了すると、BIOS#0は、RTCに対する制御処理を終了する(ステップS1108)。
図12は、図9のステップS911に例示した、SMIハンドラ730によるRTC時刻設定の具体例を示す図である。なお、以下では、SB#0での動作について説明するが、SB#1でもSB#0と同様の動作となる。
CPU611は、パーティション700に含まれるLegacy I/O Controller HUB614など装置や、周辺装置などから割り込み信号を受信すると、以下の処理を開始する(ステップS1200)。
ステップS1201において、CPU611は、受信した割り込み信号から、割り込み要因を特定する。そして、割り込み要因が、Legacy I/O Controller HUB614を経由して行なわれたRTC#0への時刻設定である場合(ステップS1202 YES)、CPU611は、SMIハンドラ730を実行する。SMIハンドラ730は、処理をステップS1203に移行する。
ステップS1203において、SMIハンドラ730は、Legacy I/O Controller HUB614内の所定のレジスタから、Legacy I/O Controller HUB614を経由してRTC#0に設定したRTC時刻を取得する。
ステップS1204において、SMIハンドラ730は、ステップS1203で取得したRTC時刻を、SCUファームウェア740に通知する。SMIハンドラ730からRTC時刻を受信すると、SCUファームウェア740は、SCUクロック631から取得したSCU時刻と、SMIハンドラ730から通知されたRTC時刻と、の差分値をメモリ632に記憶する。
一方、ステップS1202において、割り込み要因が、Legacy I/O Controller HUB614を経由して行なわれたRTC#0への時刻設定でない場合(ステップS1202 NO)、CPU611は、割り込み要因に応じた処理を実施する(ステップS1205)。
以上の処理が終了すると、SMIハンドラ730は、SMIハンドラ730によるRTC時刻設定の処理を終了する。
図13は、図9のステップS915で例示した、SCUファームウェア740がBIOS720にRTC切替え通知を通知する処理の具体例を示すフローチャートである。
SBの切替えを行なうと、SCUファームウェア740は、以下の処理を行なう(ステップS1300)。
ステップS1301において、SCUファームウェア740は、切替え前のSBから、SB情報を取得する。
ステップS1302において、SCUファームウェア740は、切替え前のSBのRTCが、パーティション700内で有効のRTCであったか否かを判別する。具体的には、SCUファームウェア740は、ステップS1301で取得したSB情報に含まれるRTCの識別情報と、SCUファームウェア740のメモリ632にあらかじめ記憶された、システム・ボード切替え前まで使用していたRTCの識別情報と、を比較する。比較の結果が一致すれば、SCUファームウェア740は、切替え前のSBのRTCが、パーティション700内で有効のRTCであったと判別できる。
切替え前のSBのRTCが、パーティション700内で有効のRTCであった場合(ステップS1302 YES)、SCUファームウェア740は、処理をステップS1303に移行する。この場合、SCUファームウェア740は、パーティション700のCPU、例えば、切替え後のSBのCPU内のスクラッチ・パッドに、RTC切替え発生フラグ「ON」を設定する。
また、システム・ボードを切替えるまで使用していたRTCが、切替え前のSBのRTCでない場合(ステップS1302 NO)、処理をステップS1304に移行する。この場合、SCUファームウェア740は、パーティション700のCPU内のスクラッチ・パッドに、RTC切替え発生フラグ「OFF」を設定する。
以上の処理が終了すると、SCUファームウェア740は、BIOSにRTC切替え通知を通知する処理を終了する(ステップS1305)。BIOSは、図10で説明した処理を行なうことにより、RTC切替えの有無を知ることができる。
以上の実施例では、図14の(a)のように、BIOS#0は、SCUファームウェア740が、スクラッチ・パッド611aに設定したRTC切替え発生フラグを参照することで、SCUファームウェア740から「RTC切替え発生」の通知を受けた(矢印a)。すなわち、BIOS710は、SCUファームウェア740が、BIOS710が動作するCPUのスクラッチ・パッドに設定したRTC切替え発生フラグを参照することで、SCUファームウェア740から「RTC切替え発生」の通知を受けた。
しかし、例えば、図14の(b)のように、BIOS#0が、KCSインタフェースなどを用いて、SCUファームウェア740と双方向通信を行なうことにより、SCUファームウェア740から「RTC切替え発生」の通知を受けるようにしてもよい(矢印b)。すなわち、BIOS710が、KCSインタフェースなどを用いて、SCUファームウェア740と双方向通信を行なうことにより、SCUファームウェア740から「RTC切替え発生」の通知を受けるようにしてもよい。
なお、図14の(a)および(b)は、図6に示した情報処理装置600の一部を記載したものであって、情報処理装置600を図14の(a)または(b)に示す構成に限定する趣旨ではない。
図15は、BIOS−SCUファームウェア間で双方向通信を行なう場合のRTC切替え処理の具体例を示すフローチャートである。図15は、パーティション700に含まれるSB#0を、SB#1に切替えた場合に生じるRTC切替え処理である。
ステップS1501において、SCUファームウェア740は、SB#0を含むパーティション700のパワーオン処理を実行する。このとき、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア740が、SB#0のCPU611のリセットを解除すると、CPU611はメモリ612から所定のプログラムを読み出して実行する。これにより、BIOS#0が起動する(ステップS1502)。
ステップS1503において、BIOS#0は、KCSインタフェースを使用した通信により、SCUファームウェア740にRTC切替え発生の有無を問い合わせる。BIOS#0から問い合わせを受けると、SCUファームウェア740は、KCSインタフェースを使用した通信により、BIOS#0にRTC切替え発生の有無を通知する。
なお、SCUファームウェア740は、例えば、メモリ632に記憶された、RTC切替え発生情報を参照することにより、RTC切替え発生の有無を知ることができる。RTC切替え発生情報は、図10に示したステップS1003またはS1004の判断結果を含むことができる。この場合、SCUファームウェア740は、ステップS1003またはS1004で、RTC切替え発生情報を生成してメモリ632に記憶すればよい。
ステップS1503では、RTC切替えが発生していないものとする。なお、RTC切替えが発生した場合の処理では、ステップS1518〜S1520と同様の処理が行なわれる。
ステップS1504〜S1514までの処理は、図9に示したステップS904〜S914までの処理と同様の処理が行なわれるので、説明を省略する。
ステップS1515において、SCUファームウェア740は、SB#1を含むパーティション700のパワーオン処理を実行する。このとき、SCUファームウェア740は、例えば、パーティション700に含まれる各デバイスのリセット信号を操作する。そして、SCUファームウェア740が、SB#1のCPU621のリセットを解除すると、SB#1のCPU621はメモリから所定のプログラムを読み出して実行する。これにより、BIOS#1が起動する(ステップS1516)。
ステップS1517において、BIOS#1は、KCSインタフェースを使用した通信により、SCUファームウェア740にRTC切替え発生の有無を問い合わせる。BIOS#1から問い合わせを受けると、SCUファームウェア740は、KCSインタフェースを使用した通信により、BIOS#1にRTC切替え発生の有無を通知する。
ステップS1517では、RTC切替えが発生したものとする。この場合、ステップS1518〜S1522までの処理は、図9に示したステップS919〜S923までの処理と同様の処理が行なわれるので、説明を省略する。
以上に説明したように、SCUファームウェア740は、RTC切替え発生を検出する。そして、SCUファームウェア740は、RTC切替え発生を、パーティション700内のBIOS710に通知する(例えば、ステップS915)。一方、RTC切替え発生の通知を検出すると、BIOS710は、起動時に、SCUファームウェア740からパーティション時刻を取得して、切替え後のRTCにパーティション時刻を設定する(例えば、ステップS918〜S921)。
以上に説明したように、SCUファームウェア740は、RTC切替え発生を検出する。そして、SCUファームウェア740は、RTC切替え発生を、パーティション700内のBIOS710に通知する(例えば、ステップS915)。一方、RTC切替え発生の通知を検出すると、BIOS710は、起動時に、SCUファームウェア740からパーティション時刻を取得して、切替え後のRTCにパーティション時刻を設定する(例えば、ステップS918〜S921)。
このように、RTC切替えが発生した場合、BIOS710は、起動時に、毎回、SCUファームウェア740からパーティション時刻を読み出して切替え後のRTCに設定する。これにより、切替え後のRTCに、初期設定時刻が設定されていない場合であっても、切替え前のRTCのRTC時刻を切替え後のRTCに引継ぐことができる。その結果、切替え後のRTCに設定されている時刻に関係なく、例えば、初期設定時刻が設定されていない場合であっても、RTC切替え前後でOS時刻が引継がれる。
また、BIOS710は、パーティション700内のLegacy I/O Controller HUBに対して、RTC時刻書込みフック設定を行なう(例えば、ステップS906)。これにより、OS720がOS時刻を変更して、RTCのRTC時刻に反映すると、SMIハンドラ730が実行される。このとき、SMIハンドラ730は、OS720がRTCに設定したRTC時刻をSCUファームウェア740に通知する(例えば、ステップS911)。すると、OS720が変更したOS時刻が、パーティション時刻に反映される(例えば、ステップS912)。
このように、OS720がOS時刻を変更してRTC時刻に反映すると、そのRTC時刻はパーティション時刻にも反映される。この場合、OS720がOS時刻を変更後、パーティション700の再起動をする前に、RTC切替えが行なわれても、切替え後のRTCには、パーティション時刻が引継がれる。そのため、OS720がOS時刻を変更後、パーティション700の再起動をする前に、RTC切替えが行なわれても、切替え前のRTCのRTC時刻を切替え後のRTCに引継ぐことができる、すなわち、RTC切替え前でのOS時刻の引継ぎが行なわれる。
以上に説明したように、実施例に係る情報処理装置600によると、OS時刻の引継ぎを確実に行なうことができる。
また、OS時刻の引継ぎを確実に行なうことができるので、システム・ボード交換時にOS時刻を手動で復旧する必要がなくなる。また、以上に説明した実施例に係る情報処理装置600は、特別な装置、例えば、NTP(Network Time Protocol)を使用してOS時刻と同期するために使用する外部時計装置などを用いることなく、OS時刻の引継ぎを行なうことができる。そのため、外部時計装置などの余計なコストが不要となる。
Claims (6)
- 1または2以上のパーティションを含む情報処理装置において、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第1の計時手段から、第2の計時手段への計時手段の切替えを検出する検出手段と、
前記計時手段の切替えを検出しない場合、前記第1の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第3の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第3の計時手段から時刻を取得した時刻を前記第2の計時手段に設定する第1の設定手段と、
前記オペレーティングシステムによる前記第1の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第1の計時手段に設定した時刻を、前記第3の計時手段に設定する第2の設定手段と、
を備える情報処理装置。 - 前記パーティションの構成を制御する制御手段をさらに備え、
前記制御手段は、前記パーティションに含まれるハードウェアを変更すると、該変更前のハードウェアに含まれる計時手段が、前記オペレーティングシステムが使用する時刻を計時する前記第1の計時手段であった場合、前記計時手段の切替えがあったと判別する、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記制御手段は、前記計時手段の切替えの有無を示す情報を、所定の記憶手段を介して、前記検出手段に通知する、
ことを特徴とする請求項2に記載の情報処理装置。 - 前記制御手段は、前記計時手段の切り替えの有無を示す情報を、双方向通信インタフェースを用いた前記検出手段との通信によって通知する、
ことを特徴とする請求項2に記載の情報処理装置。 - 1または2以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第1の計時手段から、第2の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合には、前記第1の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第3の計時手段に設定する一方、前記計時手段の切替えを検出した場合には、前記第3の計時手段から時刻を取得した時刻を前記第2の計時手段に設定し、
前記オペレーティングシステムによる前記第1の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第1の計時手段に設定した時刻を、前記第3の計時手段に設定する、
処理を実行させる制御方法。 - 1または2以上のパーティションを含む情報処理装置に、
前記パーティションで動作するオペレーティングシステムが使用する時刻を計時する第1の計時手段から、第2の計時手段への計時手段の切替えを検出し、
前記計時手段の切替えを検出しない場合、前記第1の計時手段から時刻を取得した時刻を、前記パーティションで使用する時刻を計時する第3の計時手段に設定し、前記計時手段の切替えを検出した場合、前記第3の計時手段から時刻を取得した時刻を前記第2の計時手段に設定し、
前記オペレーティングシステムによる前記第1の計時手段への時刻設定を検出すると、前記オペレーティングシステムが前記第1の計時手段に設定した時刻を、前記第3の計時手段に設定する、
処理を実行させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/058150 WO2012131964A1 (ja) | 2011-03-30 | 2011-03-30 | 情報処理装置、制御方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012131964A1 true JPWO2012131964A1 (ja) | 2014-07-24 |
JP5672372B2 JP5672372B2 (ja) | 2015-02-18 |
Family
ID=46929786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013506963A Expired - Fee Related JP5672372B2 (ja) | 2011-03-30 | 2011-03-30 | 情報処理装置、制御方法およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140025982A1 (ja) |
EP (1) | EP2693291A1 (ja) |
JP (1) | JP5672372B2 (ja) |
WO (1) | WO2012131964A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6090335B2 (ja) * | 2013-01-15 | 2017-03-08 | 富士通株式会社 | 情報処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH056235A (ja) | 1991-06-27 | 1993-01-14 | Fujitsu Ltd | リアルタイムクロツクのアクセス方式 |
GB2315887B (en) * | 1996-07-27 | 2000-07-05 | Motorola Gmbh | Method and apparatus for re-programming memory device |
JP4299634B2 (ja) * | 2003-10-29 | 2009-07-22 | 株式会社日立製作所 | 情報処理装置及び情報処理装置の時計異常検出プログラム |
JP2006252086A (ja) * | 2005-03-10 | 2006-09-21 | Hitachi Ltd | 多重化タイマ装置 |
US7770050B2 (en) * | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
JP4472646B2 (ja) * | 2006-02-10 | 2010-06-02 | エヌイーシーコンピュータテクノ株式会社 | システム制御装置、システム制御方法及びシステム制御プログラム |
JP4162148B2 (ja) * | 2006-04-12 | 2008-10-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置 |
JP2010054412A (ja) * | 2008-08-29 | 2010-03-11 | Epson Toyocom Corp | リアルタイムクロック |
-
2011
- 2011-03-30 WO PCT/JP2011/058150 patent/WO2012131964A1/ja active Application Filing
- 2011-03-30 EP EP11862194.5A patent/EP2693291A1/en not_active Withdrawn
- 2011-03-30 JP JP2013506963A patent/JP5672372B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-23 US US14/034,160 patent/US20140025982A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP5672372B2 (ja) | 2015-02-18 |
EP2693291A1 (en) | 2014-02-05 |
WO2012131964A1 (ja) | 2012-10-04 |
US20140025982A1 (en) | 2014-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489274B2 (en) | System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI) | |
CN106681751B (zh) | 统一固件管理系统和管理方法以及计算机可读取介质 | |
JP6034990B2 (ja) | サーバ制御方法及びサーバ制御装置 | |
EP2966571B1 (en) | Method for migrating memory data and computer therefor | |
US9912535B2 (en) | System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI) | |
EP2913754B1 (en) | Memory data migration computer and method | |
WO2014153479A1 (en) | Decentralized operating system | |
CN103412769A (zh) | 外接卡参数配置方法、设备以及系统 | |
JP2015508929A (ja) | 電子装置、mbr復元方法及びコンピュータ読み取り可能な記録媒体 | |
JPWO2013103023A1 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
JP2017509085A (ja) | ユーザー選択可能なオペレーティング・システム | |
TWI511047B (zh) | 作業系統切換方法以及使用此方法的雙作業系統電子裝置 | |
US11593003B2 (en) | Method and systems for recommending storage management actions based on capacities of storage systems | |
US9524189B2 (en) | Information processing device, information processing method, and computer program product | |
JP5672372B2 (ja) | 情報処理装置、制御方法およびプログラム | |
JP2016045677A (ja) | 情報処理装置、情報処理装置の設定方法及び設定プログラム | |
KR102550886B1 (ko) | 시스템 온 칩 및 그 동작 방법 | |
US9753933B2 (en) | Electronic device and method for mounting file system using virtual block device | |
WO2018171145A1 (zh) | 数据处理方法、系统和pos终端 | |
CN115454570A (zh) | 灾备方法、灾备恢复方法、虚拟机系统、设备及存储介质 | |
US10592329B2 (en) | Method and electronic device for continuing executing procedure being aborted from physical address where error occurs | |
JP5998806B2 (ja) | ストレージ制御装置、ストレージ制御プログラム及びコピー方法 | |
CN111857944A (zh) | 虚拟机热迁移的方法、装置、系统和计算机可读存储介质 | |
US10613850B1 (en) | Performant and secure storage and retrieval of firmware variables | |
JP2017102887A (ja) | 情報処理装置、起動方法および起動プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5672372 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |