以下、図面を用いて実施形態を説明する。
図1は、情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す。図1に示す情報処理システムSYS1は、管理ボードMMBおよび複数のシステムボードSB(SB0、SB1、SB2、SB3)を有する。情報処理システムSYS1に搭載されるシステムボードSBの数は、4つに限定されない。
管理ボードMMBは、情報処理システムSYS1の全体を管理し、情報処理システムSYS1に所定の機能を実現させる。また、管理ボードMMBは、システムボードSBを制御し、所定数のシステムボードSBによりパーティションPT(PT0、PT1)を構築する。各パーティションPTは、独立に動作する情報処理装置として機能し、情報処理の実行単位である。図1に示す例では、システムボードSB0、SB1によりパーティションPT0が構築され、システムボードSB2によりパーティションPT1が構築される。
管理ボードMMBは、CPU(Central Processing Unit)、電気的に書き替え可能な不揮発性メモリNVMM、および図示しないメインメモリおよびHDD(Hard Disk Drive)等を有し、システムボードSBを管理する管理サーバとして機能する。管理ボードMMBは、複数のパーティションPTおよびシステムボードSBを管理する管理装置の一例である。CPUは、演算処理を実行する演算処理装置の一例である。不揮発性メモリNVMMは、ファームウェアMMBFWと、ハードウェア構成テーブルHWTBLと、パーティション情報PTINF(PTINF0、PTINF1、PTINF2、PTINF3)とを格納する記憶領域を有する。ファームウェアMMBFWは、管理ボードMMBのCPUにより実行される。
以下の説明では、パーティション情報PTINFを格納する記憶領域は、PTINF領域とも称される。不揮発性メモリNVMMに割り当てられるPTINF領域の数は、情報処理システムSYS1に構築可能なパーティションPTの最大数に等しく、パーティションPTの最大数は、システムボードSBの数に等しい。
ファームウェアMMBFWは、各パーティションPTで実行されるBIOSおよびファームウェアBMCFWと連携し、情報処理システムSYS1の全体の動作を制御する。例えば、ファームウェアMMBFWは、各パーティションPTを監視し、各パーティションPTにおける電源の管理、ユーザ権限の管理、温度の管理、システムボードSBの故障時の切り替えの管理等を実行する。ファームウェアMMBFWは、各パーティションPTの動作を制御する管理ボードMMBが実行する制御プログラムの一例である。不揮発性メモリNVMMは、ファームウェアMMBFWを記録した記録媒体の一例である。
ハードウェア構成テーブルHWTBLは、各パーティションPTへのシステムボードSBの割り当てを示す構成情報を保持する。ハードウェア構成テーブルHWTBLは、構成情報保持部の一例である。各PTINF領域には、各パーティションPTに割り当てられるシステムボードSBのいずれかの不揮発性メモリNVMSに保持されるBIOS情報BIOSINFと同じ情報が、バックアップとして格納される。各PTINF領域は、パーティションPT内で使用されるBIOS情報BIOSINFの写しを保持する写し保持部の一例である。
各システムボードSBは、CPU、メインメモリMM、BMC、電子部品EP、EEPROM(Electrically Erasable Programmable Read Only Memory)および電気的に書き替え可能な不揮発性メモリNVMSを有する。例えば、不揮発性メモリNVMSは、データを独立に消去可能な複数のブロックを有するフラッシュメモリである。フラッシュメモリは、書き込み動作により記憶状態が論理1から論理0に書き替わる複数の記憶素子を有し、所定数の記憶素子を含むブロック単位での消去動作により、記憶状態が論理0(書き込み状態)から論理1(消去状態)に変更される。論理1は、第1論理値の一例であり、論理0は、第2論理値の一例である。
システムボードSB0−SB3は、互いに同じ構成のため、図1では、システムボードSB0のみの構成が示される。以下の説明では、システムボードSBに搭載されるCPUは、CPU(SB)とも称され、管理ボードMMBに搭載されるCPUは、CPU(MMB)とも称される。
メインメモリMMは、CPU(SB)が実行するOSを格納する記憶領域を有する。EEPROMは、CPU(SB)が実行するBIOSを格納する記憶領域を有する。不揮発性メモリNVMSは、BMCが実行するファームウェアBMCFWおよびBIOS情報BIOSINFを格納する記憶領域を有する。BIOSINF情報は、システムボードSBに搭載または接続されるCPU(SB)を含む複数の電子部品EPの動作仕様を切り替える設定情報を含む。以下の説明では、BIOS情報BIOSINFは、BIOSINF情報とも称され、BIOS情報BIOSINFが格納される領域は、BIOSINF領域とも称される。また、BIOSINF情報に含まれる設定情報は、BIOS設定情報とも称される。例えば、BIOS設定情報は、CPUの処理性能および消費電力を調整するための情報を含み、BIOSの起動時に表示装置に表示されるセットアップメニューにより設定される。
各パーティションPTにおいて、電源の投入時に動作するBIOSは、ユーザ等による変更情報の入力に基づいて、電子部品EPのBIOS設定情報を書き替える。BIOSは、新たなBIOS設定情報をBIOSINF領域に追記することで、BIOS設定情報を書き替える。すなわち、BIOSは、BIOS設定情報が書き込まれていない消去状態の領域に新たなBIOS設定情報を書き込み、変更前のBIOS設定情報を保持する領域を無効状態に設定することで、BIOS設定情報の書き替えを実行する。
CPU(SB)は、EEPROMに格納されたBIOSおよびメインメモリMMに格納されたOSを実行することで、システムボードSBおよびパーティションPTの全体の動作を制御する。また、CPU(SB)は、メインメモリMMに展開されるアプリケーションプログラムを実行することで、データ処理等を実行する所望の機能を実現する。なお、各システムボードSBには、図示しないHDD等の記憶装置が接続される。
BMCは、CPU(SB)に供給される電源電圧およびCPU(SB)に供給されるクロックの周波数を制御し、または電子部品EPの動作を制御し、不揮発性メモリNVMSのアクセスを制御する。BMCは、CPU(SB)を含む複数の電子部品EPの動作を制御する制御装置の一例である。BMCによる各種制御は、BMCがファームウェアBMCFWを実行することにより実行される。ファームウェアBMCFWは、パーティションPT内のシステムボードSBの動作を制御するBMCが実行する制御プログラムの一例である。なお、不揮発性メモリNVMSは、ファームウェアBMCFWを記録した記録媒体の一例である。BMCは、ファームウェアBMCFWを実行することにより、検出部DET、割り当て部ALC、格納部STRおよび削除部DELとして機能する。なお、検出部DET、割り当て部ALC、格納部STRおよび削除部DELは、BMCのハードウェアにより実現されてもよい。また、BMCと不揮発性メモリNVMSとは、1つの半導体チップ内に搭載されてもよい。
検出部DETは、CPU(SB)および電子部品EPの設定情報を保持するBIOSINF領域のサイズが、パーティションPTの機能の変更により新たに指定される設定情報用の領域のサイズと異なることを検出する。例えば、パーティションPTの機能の変更は、動作モードの変更、追加または削減等であり、ファームウェアMMBFW、BMCFWおよびBIOSをアップデートする統合ファームアップにより実施される。
割り当て部ALCは、検出部DETによるサイズの相違の検出に基づいて、既存のBIOSINF領域の代わりに、パーティションPTの機能の変更後に設定情報を保持するBIOSINF領域を新たに割り当てる。既存のBIOSINF領域は、不揮発性メモリNVMSに割り当てられる第1領域の一例であり、新たなBIOSINF領域は、不揮発性メモリNVMSに割り当てられる第2領域の一例である。
格納部STRは、既存のBIOSINF領域から抽出された有効な設定情報を新たに追加されたBIOSINF領域に格納する。なお、既存のBIOSINF領域からの有効な設定情報の抽出は、BIOSINF領域に格納する設定情報を管理するBIOSにより実行される。削除部DELは、有効な設定情報が新たなBIOSINF領域に格納された後、既存のBIOSINF領域を削除する。
BIOSは、UEFI(Unified Extensible Firmware Interface)に対応しており、システムボードSBに搭載または接続されるハードウェアの動作仕様を、外部からの設定情報の入力に基づいて切り替える機能を有する。BIOSは、パーティションPTに電源が投入されたことに基づいて起動され、システムボードSBに搭載または接続されるハードウェアを初期化し、システムボードSBの状態を、OSをブート可能な状態に設定する。また、上述したように、BIOSは、BIOSINF領域に格納する設定情報を管理し、既存のBIOSINF領域に保持された設定情報から有効な設定情報を抽出する機能を有する。
ファームウェアBMCFWは、統合ファームアップの実行後に、管理ボードMMBと各パーティションPTとの間で情報を共有する処理を実行する。統合ファームアップは、ファームウェアMMBFW、BIOSおよびファームウェアBMCFWを同時に更新する処理である。
図2は、図1に示す情報処理システムSYS1の動作の一例を示す。図2に示す動作のうち、BMCの動作は、BMCがファームウェアBMCFWを実行することにより実現される。すなわち、図2は、情報処理装置の制御方法および情報処理装置の制御プログラムの一例を示す。図2において、太枠で示す領域は、1つ前の状態に対して保持する情報が変更された領域を示す。
状態(1)は、統合ファームアップを実行する前の情報処理システムSYS1の状態を示す。状態(1)では、情報処理システムSYS1は、図1に示すように、システムボードSB0、SB1を割り当てたパーティションPT0と、システムボードSB2を割り当てたパーティションPT1とを有する(図2(a))。システムボードSB3は、パーティションPTに割り当てられていない(図2(b))。
パーティションPT0のBIOS設定情報Aは、パーティションPT0に割り当てられたシステムボードSB0、SB1のうち、システムボードSB0(ホームシステムボード)のBIOSINF領域に保持される。パーティションPT1のBIOS設定情報Bは、パーティションPT1に割り当てられたシステムボードSB2(ホームシステムボード)のBIOSINF領域に保持される。また、管理ボードMMBにおいて、パーティションPT0に対応するPTINF0領域は、パーティションPT0のBIOS設定情報Aの写しを保持する(図2(c))。パーティションPT1に対応するPTINF1領域は、パーティションPT1のBIOS設定情報Bの写しを保持する。
パーティションPT(システムボードSB)の機能を変更する統合ファームアップにより、各システムボードSB内のBIOSおよびファームウェアBMCFWがアップデートされる(図2(d))。これにより、新たなBIOSINF領域のサイズが既存のBIOSINF領域のサイズより大きくされるとする。新たなBIOSINF領域のサイズは、アップデートされたファームウェアBMCFW内に記述されることで指定される。
状態(2)において、各システムボードSB内のファームウェアBMCFWの検出部DETは、ファームウェアBMCFW内に記述された新たなBIOSINF領域のサイズと既存のBIOSINF領域のサイズとを比較する。そして、検出部DETは、新たなBIOSINF領域のサイズが既存のBIOSINF領域のサイズと相違することを検出する。ファームウェアBMCFWの割り当て部ALCは、検出部DETによるサイズの相違の検出に基づいて、不揮発性メモリNVMS内に新たなBIOSINF領域を割り当てる(図2(e))。不揮発性メモリNVMS内に新たに追加されるBIOSINF領域は、不揮発性メモリNVMS内に追加された新たなBIOSINF領域に対応する対応領域の一例である。
管理ボードMMBのファームウェアMMBFWは、不揮発性メモリNVMS内に新たなBIOSINF領域が追加されたことに基づいて、各システムボードSBのBMCから既存のBIOSINF領域と新たなBIOSINF領域のサイズを取得する。そして、管理ボードMMBのファームウェアMMBFWは、既存のBIOSINF領域に対応する領域を削除し、新たなBIOSINF領域のサイズに対応する領域を、各PTINF領域に割り当てる(図2(f))。
次に、状態(3)において、ファームウェアMMBFWは、BMCにパーティションPTの電源の投入を指示する。パーティションPT0、PT1のホームシステムボードSB内のBMC(ファームウェアBMCFW)は、パーティションPT0、PT1の電源を投入し、パーティションPT0、PT1のBIOSが起動される。パーティションPT0のBIOSは、既存のBIOSINF領域から有効なBIOS設定情報A’を抽出し、抽出した有効なBIOS設定情報A’で既存のBIOSINF領域を書き替える(図2(g))。パーティションPT1のBIOSは、既存のBIOSINF領域から有効なBIOS設定情報B’を抽出し、抽出した有効なBIOS設定情報B’で既存のBIOSINF領域を書き替える(図2(h))。
既存のBIOSINF領域から有効なBIOS設定情報を抽出し、抽出した有効なBIOS設定情報で既存のBIOSINF領域を書き替える処理は、既存のBIOSの機能を利用して実行することができる。この後、パーティションPT0、PT1のBIOSは、既存のBIOSINF領域内の有効なBIOS設定情報(A’またはB’)を新規のBIOSINF領域に複写する指示を、対応するBMCに発行する。
次に、状態(4)において、パーティションPT0のホームシステムボードSB内のBMCは、BIOSからの指示に基づいて、既存のBIOSINF領域内の有効なBIOS設定情報A’を新規のBIOSINF領域に格納する(図2(i))。新規のBIOSINF領域への設定情報A’の格納は、ファームウェアBMCFWの格納部STRにより実行される。また、パーティションPT0のホームシステムボードSB内のBMCは、新規のBIOSINF領域に格納したBIOS設定情報A’をPTINF0領域に格納する指示を管理ボードMMBに発行する。管理ボードMMBは、BMCからの指示に基づいて、BIOS設定情報A’をPTINF0領域に格納する(図2(j))。
同様に、パーティションPT1のホームシステムボードSB内のBMCは、BIOSからの指示に基づいて、既存のBIOSINF領域内の有効なBIOS設定情報B’を新規のBIOSINF領域に格納する(図2(k))。新規のBIOSINF領域へのBIOS設定情報B’の格納は、ファームウェアBMCFWの格納部STRにより実行される。また、パーティションPT1のホームシステムボードSB内のBMCは、新規のBIOSINF領域に格納したBIOS設定情報B’をPTINF1領域に格納する指示を管理ボードMMBに発行する。管理ボードMMBは、BMCからの指示に基づいて、BIOS設定情報B’をPTINF1領域に格納する(図2(l))。
次に、状態(5)において、各システムボードSB0−SB3のファームウェアBMCFWの削除部DELは、既存のBIOSINF領域を削除する。これ以降、パーティションPT0、PT1は、有効なBIOS設定情報A’、B’が複写された新たなBIOSINF領域を既存のBIOSINF領域として使用する。以上の動作により、統合ファームアップ前の既存のBIOSINF領域を新たなサイズのBIOSINF領域に切り替えることができる。また、BIOSINF領域のサイズの変更に合わせて、新たなBIOSINF領域のサイズに対応する領域を、管理ボードMMB内の各PTINF領域に割り当てることができる。
なお、図2では、新たなBIOSINF領域のサイズを既存のBIOSINF領域のサイズより大きくする例が説明された。しかしながら、図2は、新たなBIOSINF領域のサイズを既存のBIOSINF領域のサイズより小さくする場合にも適用することができる。但し、この場合、状態(3)において、BIOSは、まず、サイズを縮小後のBIOSINF領域に保持するBIOS設定情報を選択し、選択したBIOS設定情報から有効な設定情報を抽出する。
さらに、図2の状態(3)において、BIOSは、既存のBIOSINF領域から抽出した有効なBIOS設定情報を、既存のBIOSINF領域ではなく、新規のBIOSINF領域に直接格納してもよい。この場合、状態(4)における既存のBIOSINF領域から新規のBIOSINF領域への有効なBIOS設定情報の複写処理を省略することができる。但し、BIOSが、既存のBIOSINF領域から抽出した有効なBIOS設定情報を新規のBIOSINF領域に格納する機能を持たない場合、統合ファームアップ時にBIOSの格納処理の新たな機能が追加される。
以上、図1および図2に示す実施形態では、BIOSINF領域のサイズが変更される場合、新たなBIOSINF領域を割り当て、既存のBIOSINF領域から有効な設定情報を抽出して、新たなBIOSINF領域に格納する。これにより、情報処理システムSYS1を出荷前の状態(factory default)に戻すことなく、全てのシステムボードSBのBIOSINF領域のサイズを変更することができる。すなわち、パーティションPT(システムボードSB)に設定された情報を失うことなく、システムボードSB内の電子部品EPの設定情報を保持するBIOSINF領域のサイズを変更することができる。人手を介することなくBIOSINF領域のサイズを変更できるため、消失した情報を復元する手間がなくなり、人為的な設定ミスを抑止することができる。
管理ボードMMBは、各システムボードSBのBMCから既存のBIOSINF領域と新たなBIOSINF領域のサイズを取得し、既存のBIOSINF領域に対応する領域を削除し、新たなBIOSINF領域に対応する領域を、PTINF領域に割り当てる。そして、管理ボードMMBは、BIOSから転送される有効な設定情報を、PTINF領域内の新規に割り当てた領域に格納する。サイズが変更されたBIOSINF領域を、管理ボードMMBの不揮発性メモリNVMM内のPTINF領域に反映することで、その後にBIOSにより変更されるBIOS設定情報をPTINF領域にバックアップすることができる。
図3は、情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図1に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
図3に示す情報処理システムSYS2は、管理ボードMMB、複数のシステムボードSB(SB0、SB1、SB2、SB3)、入出力スイッチIOSW、および複数の入出力ユニットIOU(IOU0、IOU1、IOU2、IOU3)を有する。情報処理システムSYS2に搭載されるシステムボードSBの数および入出力ユニットIOUの数は、4つに限定されない。
管理ボードMMBは、システムボードSBと入出力スイッチIOSWとを制御し、入出力スイッチIOSWを介して所定数のシステムボードSBを所定数の入出力ユニットIOUに接続することで、パーティションPT(PT0、PT1)を構築する。各パーティションPTは、互いに独立に動作する情報処理装置として機能する。図3に示す例では、システムボードSB0、SB1と入出力ユニットIOU0、IOU1とによりパーティションPT0が構築され、システムボードSB2と入出力ユニットIOU3とによりパーティションPT1が構築される。入出力ユニットIOUの数がシステムボードSBの数以上である場合、情報処理システムSYS2に構築可能なパーティションPTの最大数は、システムボードSBの数に等しい。すなわち、図3に示す情報処理システムSYS2に構築可能なパーティションPTの最大数は、”4”である。
管理ボードMMBは、CPU(MMB)および不揮発性メモリNVMMと、図示しないメインメモリおよびHDD(Hard Disk Drive)等を有し、システムボードSBおよび入出力スイッチIOSWを管理する管理サーバとして機能する。不揮発性メモリNVMMは、ファームウェアMMBFWと、ハードウェア構成テーブルHWTBLと、パーティション情報PTINF(PTINF0、PTINF1、PTINF2、PTINF3)とを格納する記憶領域を有する。不揮発性メモリNVMMに割り当てられるPTINF領域の数は、情報処理システムSYS2に構築可能なパーティションPTの最大数に等しい。例えば、不揮発性メモリNVMMは、データを独立に消去可能な複数のブロックを有するフラッシュメモリである。
ハードウェア構成テーブルHWTBLの例は、図5に示される。各PTINF領域には、各パーティションPTに割り当てられるシステムボードSB(後述するホームシステムボードSB)の不揮発性メモリNVMSに保持されるBIOS情報BIOSINFおよびBMC情報BMCINFと同じ情報が格納される。パーティション情報PTINFの例は、図6に示される。
各システムボードSBは、CPU(SB)、電子部品EP、メインメモリMM、チップセットCSET、BMCおよびEEPROM、不揮発性メモリNVMSおよび温度センサTSNSを有する。例えば、電子部品EPは、SAS(Serial Attached SCSI(Small Computer System Interface))/SATA(Serial Advanced Technology Attachment)コントローラまたはNIC(Network Interface Card)等である。例えば、不揮発性メモリNVMSは、データを独立に消去可能な複数のブロックを有するフラッシュメモリである。システムボードSB0−SB3は、互いに同じ構成のため、図3では、システムボードSB0のみの構成が示される。
不揮発性メモリNVMSは、BMCが実行するファームウェアBMCFW、BIOS情報BIOSINF、BMC情報BMCINF、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLを格納する記憶領域を有する。以下の説明では、BMC情報BMCINFは、BMCINF情報とも称され、BMC情報BMCINFが格納される領域は、BMCINF領域とも称される。
CPU(SB)は、入出力ユニットIOUとの間でのデータの転送を制御する入出力インタフェースの機能を内蔵しており、入出力スイッチIOSWを介して入出力ユニットIOUに接続される。なお、パーティションPTが複数のシステムボードSBを含む場合、システムボードSBのいずれかは、ホームシステムボードSBとして動作し、パーティションPTの全体の動作を制御する。ホームシステムボードSB以外のシステムボードSBは、アプリケーションプログラムによるデータ処理等を専用に実行する。BIOSINF領域、BMCINF領域、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLは、全てのシステムボードSBの不揮発性メモリNVMSに割り当てられる。
チップセットCSETは、CPU(SB)、EEPROMおよびBMCに接続され、CPU(SB)、EEPROMおよびBMC間での情報の入出力を制御する。BMCは、CPU(SB)に供給される電源電圧およびCPU(SB)に供給されるクロックの周波数を制御し、温度センサTSNSが計測する温度に基づいて図示しないファンの回転数を制御する。BMCによる各種制御は、BMCがファームウェアBMCFWを実行することにより実行される。BMCは、ファームウェアBMCFWを実行することにより、検出部DET、割り当て部ALC、格納部STRおよび削除部DELとして機能する。なお、BMCと不揮発性メモリNVMSとは、1つの半導体チップ内に搭載されてもよい。
ファームウェアBMCFWは、統合ファームアップの実行後に、管理ボードMMBと各パーティションPTとの間で情報を共有する処理を実行する。ファームウェアMMBFWが実行する処理の例は、図8から図10、図23および図24に示される。
BIOSINF情報は、システムボードSBに搭載または接続されるCPU(SB)を含む複数の電子部品EPの動作仕様を切り替えるBIOS設定情報を含む。BMCINF情報は、OSが動作していることを監視するウォッチドッグ設定などの設定情報を含む。以下の説明では、BMCINF情報に含まれる設定情報は、BMC設定情報とも称される。
領域管理テーブルNVTBLには、BIOSINF領域、BMCINF領域のサイズに関する情報が格納される。アドレス管理テーブルADTBLには、BIOSINF領域、BMCINF領域にアクセスするためのアドレス情報が格納される。領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLの例は、図4に示される。
入出力スイッチIOSWは、管理ボードMMBによる制御に基づいて、パーティションPT内のシステムボードSBを所定数の入出力ユニットIOUに接続する。各入出力ユニットIOUは、複数のHDDを有する。なお、各入出力ユニットIOUは、複数のSSD(Solid State Drive)を有してもよい。また、情報処理システムSYS2は、HDDを含む入出力ユニットIOUと、SSDを含む入出力ユニットIOUとを有してもよい。
図4は、図3に示す不揮発性メモリNVMSに保持されるBIOSINF情報、BMCINF情報、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLの一例を示す。図4では、電子部品EPのBIOS設定情報を保持するBIOSINF領域は、2つのバンクBK0、BK1に割り当てられ、BMC用の設定情報を保持するBMCINF領域は、1つのバンクBK2に割り当てられる。
例えば、BIOS設定情報は、BIOSINF領域におけるバンクBK0に格納される。パーティションPTの起動時に動作するBIOSにより、BIOS設定情報が更新(変更)される場合、更新後のBIOS設定情報は、バンクBK0の新たな領域に格納(追記)される。これは、不揮発性メモリNVMS(フラッシュメモリ)の記憶素子は、書き込み動作により、消去状態(論理1)から書き込み状態(論理0)のみに変化し、消去動作により、ブロック単位で書き込み状態から消去状態に変化するためである。例えば、不揮発性メモリNVMSでは、2進数の”1110”を”1010”に書き替えることは可能であるが、2進数の”1010”を”1110”に書き替えることはできない。”1010”から”1110”への書き替えは、消去動作により”1111”に設定した後に実行される。
このようなフラッシュメモリの書き込み特性のために、BIOS設定情報を更新する毎に、更新されたBIOS設定情報は、バンクBK0内の消去状態の領域に書き込まれる。このため、BIOS設定情報が更新される毎に、無効なBIOS設定情報がバンクBK0内に貯まっていき、バンクBK0の空き領域は徐々に減少する。BIOSINF領域に格納されたBIOS設定情報が有効か無効かは、例えば、バリッドフラグにより判断される。
BIOSは、バンクBK0の空き領域が所定の容量以下になったことを検出した場合、バンクBK0から有効なBIOS設定情報(更新された最新のBIOS設定情報)を抽出し、抽出したBIOS設定情報をバンクBK1に格納する。そして、BIOSは、バンクBK0に対する消去動作を実行した後、バンクBK1に保持された有効なBIOS設定情報をバンクBK0に書き戻す。これにより、バンクBK0から無効なBIOS設定情報が消去される。バンクBK1は、有効なBIOS設定情報をバンクBK0に書き戻した後に、消去動作が実行され、データが0xFF(オール1)に消去される。
BIOSINF情報に含まれる有効なBIOS設定情報を残し、無効なBIOS設定情報を消去する処理は、”Variable Reclaim”と称される。Variable Reclaimは、BIOSの起動時にBIOSにより実行されるPOST(Power On Self Test)の期間に実行される。例えば、各バンクBK(BK0、BK1、BK2)のサイズは、データの消去単位であるブロックのサイズに等しく、データの消去は、バンクBK毎に実行可能である。なお、各バンクBKは、複数のブロックを有してもよい。
領域管理テーブルNVTBLは、状態BMC−ST、MMB−ST、BIOS−ST、バンク数BIOSBKN、バンクサイズBK0SZ、BK1SZ、バンク数BMCBKNおよびバンクサイズBK2SZを保持する領域を有する。状態BMC−STは、BMCの状態を示し、状態MMB−STは、管理ボードMMBの状態を示し、状態BIOS−STは、BIOSの状態を示す。状態BMC−ST、MMB−ST、BIOS−STは、統合ファームアップにより、BIOSINF情報を保持するバンクBKの数が変更される場合、変更処理を管理ボードMMB、BMC、BIOS間で連携して実行するために使用される。なお、状態BMC−ST、MMB−ST、BIOS−STは、BMC内に保持されてもよい。
状態BMC−STは、BIOSINF領域のサイズの変更による切り替え処理の実行中に”1”(切り替え状態)に設定される。状態BMC−STを保持する領域は、既存のバンクBKから新たなバンクBKに切り替え中であることを示す切り替え状態を保持する第1状態保持部の一例である。
状態MMB−STは、バンクBKのサイズの変更による切り替え処理の実行中に”1”に設定される。例えば、状態MMB−STは、図14で説明する基本構成に設定したハードウェア構成テーブルHWTBLに基づいて、全てのシステムボードSBがホームシステムボードSBとしてパーティションPTに割り当てられている期間に”1”に設定される。
状態BIOS−STは、BIOSにより有効なBIOS設定情報が抽出中である場合、”1”(抽出状態)に設定される。また、状態BIOS−STは、BIOSによりバンクBK0、BK1内の有効なBIOS設定情報をバンクBK3−BK6に複写中である場合、”2”(複写状態)に設定される。また、状態BIOS−STは、抽出状態および複写状態のいずれでもない場合に”0”(アイドル状態)を設定する。状態BIOS−STを保持する領域は、BIOSの動作状態を示す第2状態保持部の一例である。
バンク数BIOSBKNは、BIOSINF領域に割り当てられるバンクBKの数を示し、バンクサイズBK0SZは、バンクBK0のサイズを示し、バンクサイズBK1SZは、BK1のサイズを示す。バンク数BMCBKNは、BMCINF領域に割り当てられるバンクBKの数を示し、バンクサイズBK2SZは、バンクBK2のサイズを示す。例えば、各バンクBKのサイズは、64キロバイトである。バンクサイズBK0SZ、BK1SZは、BIOSINF領域に割り当てられるバンクBK0、BK1のそれぞれのサイズを示す第1サイズ情報の一例である。領域管理テーブルNVTBLは、バンクサイズBK0SZ、BK1SZおよび図13に示すバンクサイズBK3SZ−BK6SZを保持するサイズ情報保持部の一例である。なお、領域管理テーブルNVTBLの大きさは、BIOSINF領域に割り当てられるバンクBKの数およびBMCINF領域に割り当てられるバンクBKの数に応じて変化する。
アドレス管理テーブルADTBLは、各バンクBK0−BK2の開始アドレスのオフセット値offsetminと、終了アドレスのオフセット値offsetmaxとを、バンクBK0−BK2毎に保持する領域を有する。図4では、各オフセット値offsetmin、offsetmaxは、32ビットで表される。オフセット値offsetmin、offsetmaxの差により示される各バンクBK0−BK2のサイズは、領域管理テーブルNVTBLのバンクサイズBK0SZ、BK1SZ、BK2SZにより示されるサイズに等しい。例えば、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLは、バンクBK0−BK2が割り当てられるブロックとは別のブロックに割り当てられる。アドレス管理テーブルADTBLは、バンクBK0、BK1に割り当てられるアドレスを示すオフセット値offsetmin、offsetmaxを保持するアドレス情報保持部の一例である。バンクBK0、BK1のオフセット値offsetmin、offsetmaxは、第1アドレス情報の一例である。
図5は、図3に示す不揮発性メモリNVMMに保持されるハードウェア構成テーブルHWTBLの一例を示す。ハードウェア構成テーブルHWTBLは、システムボードSB毎に、パーティションPT0−PT3、リザーブRSVおよびフリーFREEのそれぞれに対応する領域を有する。また、ハードウェア構成テーブルHWTBLは、入出力ユニットIOU毎に、パーティションPT0−PT3、リザーブRSVおよびフリーFREEのそれぞれに対応する領域を有する。
図5において、システムボードSBとパーティションPTとにより示される領域に含まれる丸印は、システムボードSBがパーティションPTに割り当てられることを示す。”H”を含む丸印は、システムボードSBがホームシステムボードSBとしてパーティションPTに割り当てることを示す。
リザーブRSVの領域に含まれる丸印は、システムボードSBまたは入出力ユニットIOUが交換用に確保されていることを示す。フリーFREEの領域には、未使用のシステムボードSBまたは入出力ユニットIOUがある場合、丸印が付けられる。なお、実際のハードウェア構成テーブルHWTBLでは、例えば、丸印の代わりに”1”が格納され、”H”を含む丸印の代わりに”2”が格納され、空白の代わりに”0”が格納される。
図5では、パーティションPT0、PT1、PT3が構築された状態が示される。パーティションPT0には、システムボードSB0、SB1が割り当てられ、システムボードSB0がホームシステムボードSBである。パーティションPT1には、システムボードSB2がホームシステムボードSBとして割り当てられ、システムボードSB3が交換用として確保される。パーティションPT2には、システムボードSBが割り当てられていない。パーティションPT3には、システムボードSB3がホームシステムボードSBとして割り当てられる。
パーティションPT1において、システムボードSB2が故障した場合、パーティションPT1の電源は遮断され、リザーブされたシステムボードSB3がパーティションPT1のホームシステムボードSBとして割り当てられ、電源が再投入される。システムボードSB2の故障時にパーティションPT3に電源が投入されている場合、パーティションPT3の電源が遮断され、システムボードSB3は、パーティションPT3への割り当てが解除された後、パーティションPT1に割り当てられる。このように、リザーブRSVの領域をハードウェア構成テーブルHWTBLに含めることで、システムボードSB2の故障時に、システムボードSB3を自動的にパーティションPT1に割り当てることができる。これに対して、ハードウェア構成テーブルHWTBLがリザーブRSVの領域を持たない場合、交換するシステムボードSBは、情報処理システムSYS2の外部から指定され、ハードウェア構成テーブルHWTBLは外部からの指定に基づいて書き替えられる。
図5の下側のかぎ括弧内に示すハードウェア構成テーブルHWTBLは、情報処理システムSYS2の出荷時の状態を示す。ハードウェア構成テーブルHWTBLは、情報処理システムSYS2の出荷時に、全てのシステムボードSBと全ての入出力ユニットIOUとが未使用(FREE)の状態に設定される。
図6は、図3に示す不揮発性メモリNVMMに保持されるパーティション情報PTINFの一例を示す。図6は、図3に示すパーティションPT0、PT1が構築された情報処理システムSYS2のパーティション情報PTINFの状態を示す。
パーティションPT0に対応するPTINF0領域には、パーティションPT0のホームシステムボードSB0の不揮発性メモリNVMS(図4)と同様に、バンクBK0、BK1、BK2と同じサイズの領域が割り当てられる。ファームウェアMMBFWは、パーティションPT0の領域管理テーブルNVTBLを参照することでPTINF0領域にバンクBK0−BK2に対応する領域を割り当てる。そして、PTINF0領域には、パーティションPT0のホームシステムボードSBの不揮発性メモリNVMSに保持されたBIOSINF情報およびBMCINF情報と同じ情報がバックアップとして保持される。なお、図4で説明したように、バンクBK1は、”Variable Reclaim”時に抽出した有効なBIOS設定情報を一時的に保持するために使用され、”Variable Reclaim”時を除き、消去状態(0xFF)である。
同様に、パーティションPT1に対応するPTINF1領域には、パーティションPT1のホームシステムボードSB2の不揮発性メモリNVMSに保持されたBIOS設定情報およびBMC設定情報と同じ情報がバックアップとして保持される。パーティションPT2、PT3は、情報処理システムSYS2に構築されていない。このため、パーティションPT2、PT3に対応するPTINF2領域、PTINF3領域には、”0xFF”に初期化されたバンクBK0、BK1、BK2と同じ情報がバックアップとして保持される。
図7は、図3に示すファームウェアMMBFW、BMCFWおよびBIOSの機能の一例を示す。ファームウェアMMBFWは、ファームウェアBMCFWとの通信を制御する通信部を有し、ファームウェアBMCFWは、ファームウェアMMBFWおよびBIOSとの通信を制御する通信部を有する。BIOSは、ファームウェアBMCFWとの通信を制御する通信部を有する。各通信部は、IPMI(Intelligent Platform Management Interface)の規格にしたがって情報を通信する。
ファームウェアMMBFWは、不揮発性メモリNVMMのアクセスを制御するNVMMアクセス制御部と、不揮発性メモリNVMSのアクセスをシステムボードSBに指示するNVMSアクセス指示部とを有する。また、ファームウェアMMBFWは、後述するBIOSINF領域の切り替え処理を制御する切り替え制御部と統合ファームアップの処理を管理する統合ファームアップ管理部と、各パーティションPTの電源を制御する電源制御部とを有する。
ファームウェアBMCFWは、システムボードSB内の不揮発性メモリNVMSのアクセスを制御するNVMSアクセス制御部と、後述するBIOSINF領域の切り替え処理を制御する切り替え制御部とを有する。BIOSは、システムボードSBに、不揮発性メモリNVMSのアクセスをシステムボードSBに指示するNVMSアクセス指示部と、Variable Reclaimを実行するVariable Reclaim処理部とを有する。
図8から図10は、図3に示す情報処理システムSYS2において、統合ファームアップによりBIOSINF情報が保持されるバンクBKの数が増加される場合の変更処理の一例を示す。すなわち、図8、図9および図10は、BIOSINF領域の切り替え処理の一例を示す。図9は、図8に示す処理の続きを示し、図10は、図9に示す処理の続きを示す。図11から図22は、不揮発性メモリNVMM、NVMSに保持される情報の変化の一例を示す。図11から図22において、太枠で示す領域は、1つ前の状態に対して保持する情報が変更された領域を示す。図8から図10において、ファームウェアMMBFWの動作は、管理ボードMMBの動作を示し、ファームウェアBMCFWの動作は、BMCの動作を示し、ファームウェアBMCFWが実行する処理は、情報処理装置の制御方法の一例を示す。
統合ファームアップ前の情報処理システムSYS2の状態は、図3と同様であり、パーティションPT0にシステムボードSB0、SB1が割り当てられ、パーティションPT1にシステムボードSB2が割り当てられている。統合ファームアップ前の管理ボードMMBの不揮発性メモリNVMMの状態は、図11に示され、統合ファームアップ前の各システムボードSBの不揮発性メモリNVMSの状態は、図12に示される。図11および図12において、データDT00は、パーティションPT0のBIOS設定情報を示し、データDT01は、パーティションPT0のBMC設定情報を示す。データDT10は、パーティションPT1のBIOS設定情報を示し、データDT11は、パーティションPT1のBMC設定情報を示す。データDT30は、システムボードSB3が過去にパーティションPTのいずれかに割り当てられたときのBIOS設定情報を示し、データDT31は、システムボードSB3が過去にパーティションPTのいずれかに割り当てられたときのBMC設定情報を示す。データDT30、DT31は、無効な情報である。
図11において、使用されないパーティションPT2、PT3に対応するPTINF2領域、PTINF3領域は、オール1(0xFF)に初期化され、初期化状態を保持する。図12において、パーティションPT0に割り当てられるシステムボードSB1は、ホームシステムボードSBでないため、BIOSINF領域(BK0、BK1)およびBMCINF領域(BK2)は、オール1(0xFF)に初期化され、初期化状態を保持する。各システムボードSBの領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLには、情報処理システムSYS2に共通の情報が格納される。すなわち、BIOSINF情報を格納するバンクBKの数およびBMCINF情報を格納するバンクBKの数は、情報処理システムSYS2の機能に基づいて設定される。さらに、BIOSINF情報を格納するバンクBKの数は、統合ファームアップによる情報処理システムSYS2の機能の変更に基づいて変更される。
図8に戻って、統合ファームアップ後、ファームウェアMMBFWは、管理ボードMMBを再起動した後、各システムボードSBのBMCに再起動を指示し、各システムボードSBとの通信を開始する(図8(a)、(b))。各システムボードSBのファームウェアBMCFWは、BMCを再起動した後、領域管理テーブルNVTBLに保持されたバンク数BIOSBKNを参照する(図8(c))。バンク数BIOSBKNは、既存のBIOSINF情報を保持するために割り当てられたバンクBKの数である。そして、ファームウェアBMCFWの検出部DETは、BIOSINF情報を保持するためにファームウェアBMCFWが指定する新たなバンクBKの数が、バンク数BIOSBKNと異なることを検出する。すなわち、ファームウェアBMCFWの検出部DETは、新たにBIOS設定情報を保持するBIOSINF領域のサイズが、領域管理テーブルNVTBLに保持された既存のBIOSINF領域のサイズと異なることを検出する。新たなBIOSINF領域のサイズは、既存のBIOSINF領域のサイズより大きくてもよく、小さくてもよい。例えば、ファームウェアBMCFWが指定する新たなバンクBKの数は、ファームウェアBMCFW内に記述される。
各システムボードSBのファームウェアBMCFWは、新規に割り当てるBIOSINF領域を示す情報を、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに追加する(図8(d))。例えば、図13に示すように、ファームウェアBMCFWの割り当て部ALCは、新規に割り当てるバンクBK3−BK6の数である”4”を示すバンク数BIOSBKNを領域管理テーブルNVTBLに割り当てる。また、割り当て部ALCは、バンクBK3−BK6のそれぞれのサイズを示すバンクサイズBK3SZ−BK6SZを領域管理テーブルNVTBLに割り当てる。さらに、割り当て部ALCは、新規に割り当てるバンクBK3−BK6のオフセット値offsetmin、offsetmaxをアドレス管理テーブルADTBLに割り当てる。
ファームウェアBMCFWは、既存のBIOSINF領域を新規に割り当てたBIOSINF領域に切り替える処理をBMCが実行中であることを示すために、状態BMC−STを”0”から”1”に変更する(図8(e))。そして、ファームウェアBMCFWは、ファームウェアBMCFWが指定する新たなBIOSINF領域に対応するバンクBK(例えば、BK3−BK6)を不揮発性メモリNVMSに新規に割り当てる(図8(f))。すなわち、割り当て部ALCは、BIOSINF情報を保持するためのバンクBKの数を変更する場合、変更後のバンクBKを不揮発性メモリNVMSに追加する。ファームウェアBMCFWは、新規に割り当てたバンクBK内のデータを消去する。既存のBIOSINF領域(すなわち、BK0、BK1)は、削除されることなく維持される。
例えば、ファームウェアBMCFWが指定する新たにBIOSINF情報を保持するためのバンクBKの数が、バンク数BIOSBKNより少ないことが検出された場合にも、要求されたBIOSINF領域が不揮発性メモリNVMSに新規に割り当てられる。なお、ファームウェアBMCFWが指定するBIOSINF情報を保持するためのバンクBKの数が、既存のバンク数BIOSBKNと同じ場合、既存のBIOSINF領域から新規のBIOSINF領域への切り替え処理は実行されない。
各システムボードSBの不揮発性メモリNVMSにおいて、新規にバンクBK3−BK6が割り当てられ、バンクBK3−BK6の割り当てが領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLが反映された状態は、図13に示される。図13に示す状態では、図12に示す状態に対して、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに、バンクBK3−BK6の情報が追加され、状態BMC−STが”1”に設定されている。
バンクサイズBK3SZ、BK4SZは、BK5SZ、BK6SZは、BMCINF領域に割り当てられるバンクBK3、BK4、BK5、BK6のそれぞれのサイズを示す第2サイズ情報の一例である。図13において、アドレス管理テーブルADTBLは、バンクBK3−BK6に割り当てられるアドレスを示すオフセット値offsetmin、offsetmaxを保持するアドレス情報保持部の一例である。バンクBK3−BK6のオフセット値offsetmin、offsetmaxは、第2アドレス情報の一例である。
領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLにバンクBK3−BK6の情報を追加することで、BIOSは、既存のBIOSINF領域(旧)と、新規のBIOSINF領域(新)との両方にアクセスすることができる。すなわち、BIOSは、既存のBIOSINF情報を用いてVariable Reclaimを実行することで、有効なBIOS設定情報を抽出することができ、抽出したBIOS設定情報を新規に割り当てたBIOSINF領域に格納することができる。
図8に戻って、ファームウェアMMBFWは、領域管理テーブルNVTBLを取得し、状態BMC−STの”1”に基づいて、ファームウェアBMCFWがBIOSINF領域の切り替え処理を実行中であること検出する(図8(g))。このように、領域管理テーブルNVTBLに状態BMC−STを保持する領域を設けることで、ファームウェアMMBFWは、ファームウェアBMCFWによるBIOSINF領域の切り替え処理の実行を検出することができる。このため、ファームウェアMMBFWは、ファームウェアBMCFWと連携して、BIOSINF領域の切り替え処理を実行することができる。なお、ファームウェアMMBFWは、管理ボードMMBを再起動後、所定の周期で領域管理テーブルNVTBLを取得する。
ファームウェアMMBFWは、状態BMC−STの”1”の検出に基づいて、ハードウェア構成テーブルHWTBLを退避し、ハードウェア構成テーブルHWTBLを基本構成に設定する(図8(h)、(i))。ここで、基本構成は、各パーティションPTにシステムボードSBを1つずつ割り当て、全てのシステムボードSBがホームシステムボードSBに設定される構成である。ハードウェア構成テーブルHWTBLの変更により、全てのシステムボードSBが、ホームシステムボードSBとして各パーティションPTに割り当てられる。既存のハードウェア構成テーブルHWTBLを退避し、ハードウェア構成テーブルHWTBLを基本構成に設定した不揮発性メモリNVMMの状態は、図14に示される。
図8に戻って、ファームウェアMMBFWは、基本構成に設定したハードウェア構成テーブルHWTBLに基づいて、不揮発性メモリNVMMに保持しているBIOSINF情報およびBMCINF情報の格納をファームウェアBMCFWに指示する(図8(j))。BIOSINF情報およびBMCINF情報の格納を指示されるファームウェアBMCFWは、各パーティションPTに新たに割り当てられた(すなわち、構成変更のある)ホームシステムボードSBのファームウェアBMCFWである。
図14に示す例では、ホームシステムボードSB0は、パーティションPT0への割り当てが維持されるため、ホームシステムボードSB0のファームウェアBMCFWは、BIOSINF情報、BMCINF情報の格納の指示が省略されてもよい。他のホームシステムボードSB1−SB3のそれぞれは、パーティションPT1−PT3に新たに割り当てられるため、他のホームシステムボードSB1−SB3のファームウェアBMCFWは、BIOSINF情報およびBMCINF情報の格納を指示される。
指示を受けたファームウェアBMCFWは、不揮発性メモリNVMSに保持された既存のBIOSINF領域およびBMCINF領域内のデータを消去する。そして、ファームウェアBMCFWは、ファームウェアMMBFWから転送されるBIOSINF情報およびBMCINF情報を、データを消去した既存のBIOSINF領域およびBMCINF領域にそれぞれ格納する(図8(k))。なお、ファームウェアMMBFWから転送されるBIOSINF情報およびBMCINF情報は、元のシステムボードSBと異なるシステムボードSBに格納される場合がある。しかしながら、情報処理システムSYS2の全体では、統合ファームアップ前の既存のBIOSINF情報およびBMCINF情報は、システムボードSB0−SB3のいずれかに含まれるため、失われることを抑止することができる。
ファームウェアMMBFWは、ファームウェアBMCFWに状態MMB−STの”0”から”1”への変更を指示する(図8(l))。状態MMB−STの”1”は、ハードウェア構成テーブルHWTBLが基本構成に設定され、既存のBIOSINF領域を新規に割り当てたBIOSINF領域に切り替える処理をMMBが実行中であることを示す。ファームウェアBMCFWは、ファームウェアMMBFWからの指示に基づいて、領域管理テーブルNVTBLの状態MMB−STを”0”から”1”に変更する(図8(m))。
ファームウェアMMBFWからのBIOSINF情報およびBMCINF情報を不揮発性メモリNVMSに格納した状態は、図15に示される。図15に示す状態では、図13に示す状態に対して、システムボードSB1、SB2のBIOSINF情報およびBMCINF情報が互いに入れ替わり、システムボードSB3のBIOSINF情報およびBMCINF情報が消去されている。また、状態MMB−STが”1”に設定されている。
図14に示す基本構成のハードウェア構成テーブルHWTBLにより各パーティションPTに1つのシステムボードSBを割り当てることで、全てのシステムボードSB0−SB3に、BIOSINF情報およびBMCINF情報を設定することができる。これにより、システムボードSB3のBIOSINF領域およびBMCINF領域に過去に保持された無効なデータDT30、DT31(図13)を削除することができる。
図8に戻って、この後、ファームウェアMMBFWは、不揮発性メモリNVMMに保持された各パーティションPT0−PT3に対応するPTINF0領域−PTINF3領域に含まれる既存のBIOSINF情報(BK0、BK1)を削除する(図8(n))。ファームウェアMMBFWは、取得した領域管理テーブルNVTBLに基づいて、各システムボードSBに割り当てられたバンクBK3−BK6と同じサイズのバンクBK3−BK6を、各PTINF0領域−PTINF3領域内のBIOSINF領域に割り当てる。そして、ファームウェアMMBFWは、割り当てたバンクBK3−BK6のデータを”0xFF”に初期化する(図8(o))。不揮発性メモリNVMMにおいて、バンクBK0、BK1が削除され、バンクBK3−BK6が割り当てられた状態は、図16に示される。
次に、図9において、ファームウェアMMBFWは、管理ボードMMBを再起動し、全てのパーティションPT0−PT3のファームウェアBMCFWに電源の投入を指示する(図9(a))。各ファームウェアBMCFWは、電源の投入の指示に基づいて、各パーティションPTの電源を投入する(図9(b))。なお、各システムボードSBにおいて、電源は、BMCおよび不揮発性メモリNVMSに常に供給されている。パーティションPTの電源の投入により、CPUが動作を開始し、BIOSが起動され、BIOSは、POSTを開始する(図9(c))。BIOSは、BMCを介して領域管理テーブルNVTBLを取得し、状態MMB−ST、BMC−STが”1”であることに基づいて、管理ボードMMBとBMCとがBIOSINF領域の切り替え処理を実行中であることを検出する(図9(d))。領域管理テーブルNVTBLに状態MMB−ST、BMC−STを保持する領域を設けることで、BIOSは、ファームウェアMMBFW、BMCFWによるBIOSINF領域の切り替え処理の実行を検出することができる。このため、BIOSは、BIOSINF領域の切り替え処理に伴って実行するVariable Reclaimの開始タイミングを検出することができる。すなわち、BIOSは、状態MMB−ST、BMC−STに保持された”1”に基づいて、既存のバンクBK0、BK1から有効なBIOS設定情報を抽出する抽出処理(Variable Reclaim処理)を開始する。
管理ボードMMBとBMCとがBIOSINF領域の切り替え処理を実行中であることを検出したため、BIOSは、POSTを中断する(図9(e))。そして、BIOSは、Variable Reclaimを実行するために、ファームウェアBMCFWに状態BIOS−STの”0”から”1”への変更を指示する(図9(f))。ファームウェアBMCFWは、BIOSからの指示に基づいて、領域管理テーブルNVTBLの状態BIOS−STを”0”から”1”に変更する(図9(g))。領域管理テーブルNVTBLに状態BIOS−STを保持する領域を設けることで、ファームウェアBMCFWは、Variable Reclaimが実行であることを検出することができる。
BIOSは、Variable Reclaimを実行することで、不揮発性メモリNVMSのBIOSINF領域に保持された有効なBIOS設定情報を残し、無効なBIOS設定情報を削除する(図9(h))。すなわち、BIOSは、既存のBIOS設定情報が格納されているバンクBK0から有効なBIOS設定情報を抽出する動作と、抽出したBIOS設定情報をバンクBK1に格納する指示とを繰り返す。例えば、BIOSは、既存のVariable Reclaimの機能を利用して実行される。なお、BIOSは、既存のVariable Reclaimの機能とは異なる機能を用いて、バンクBK0から抽出した有効なBIOS設定情報を、バンクBK3に直接格納する処理を実行してもよい。この場合、後述する有効なBIOS設定情報を既存のバンクBK0から新規のバンクBK3に複写する処理は省略される。
例えば、BIOSは、不揮発性メモリNVMSからBIOS設定情報を読み出す場合、IPMIコマンドのパラメータとして、アクセスするバンクBK、アドレスのオフセット値および読み出しサイズを指定する。また、BIOSは、不揮発性メモリNVMSにBIOS設定情報を書き込む場合、IPMIコマンドのパラメータとして、アクセスするバンクBK、アドレスのオフセット値、書き込みサイズおよび書き込みデータ(BIOS設定情報)を指定する。
BIOSは、全ての有効なBIOS設定情報を抽出した後、ファームウェアBMCFWにバンクBK0内のデータを消去する指示を発行し、バンクBK0のデータが消去された後、バンクBK1に保持された有効なBIOS設定情報をバンクBK0に書き戻す。なお、不揮発性メモリNVMSのBIOSINF領域のアクセスは、BIOSからの指示に基づいてファームウェアBMCFWにより制御される。Variable Reclaimが完了した不揮発性メモリNVMSの状態は、図17に示される。
次に、BIOSは、ファームウェアBMCFWに状態BIOS−STの”1”から”2”への変更を指示する(図9(i))。ファームウェアBMCFWは、BIOSからの指示に基づいて、領域管理テーブルNVTBLの状態BIOS−STを”1”から”2”に変更する(図9(j))。状態BIOS−STの”2”は、Variable Reclaimの実行により抽出された有効なBIOS設定情報を、既存のBIOSINF領域(バンクBK0)から新規に割り当てたBIOSINF領域(バンクBK3)に複写中であることを示す。
BIOSは、有効なBIOS設定情報を既存のバンクBK0から新規に割り当てたバンクBK3に複写する指示をファームウェアBMCFWに繰り返し発行する(図9(k))。有効なBIOS設定情報を既存のバンクBK0から新規に割り当てたバンクBK3に複写する指示は、バンクBK0に対する読み出しコマンドと、バンクBK3に対する書き込みコマンドとの交互の発行である。ファームウェアBMCFWは、読み出しコマンドに基づいて複写対象のBIOS設定情報をバンクBK0から読み出し、書き込みコマンドに基づいて書き込みコマンドに含まれる有効なBIOS設定情報をバンクBK3に格納する。書き込みコマンドに基づく有効なBIOS設定情報のバンクBK3への格納は、ファームウェアBMCFWの格納部STRにより実行される。すなわち、BIOSからの指示に基づいて、複写対象のBIOS設定情報をバンクBK0からバンクBK3に複写する複写処理が実行される。バンクBK0からバンクBK3へのBIOS設定情報の格納が完了した不揮発性メモリNVMSの状態は、図18に示される。
また、ファームウェアBMCFWは、複写したBIOS設定情報を不揮発性メモリNVMMのPTINF領域に割り当てたバンクBK3に格納する指示をファームウェアMMBFWに発行する(図9(l))。領域管理テーブルNVTBLの状態BIOS−STに”2”を格納することで、ファームウェアBMCFWは、書き込みコマンドとともにBIOSから転送されたBIOS設定情報をファームウェアMMBFWに転送する判断をすることができる。ファームウェアMMBFWは、各ファームウェアMMBFWからBIOS設定情報が転送される毎に、対応するPTINF領域に割り当てたバンクBK3にBIOS設定情報を格納する(図9(m))。有効なBIOS設定情報がPTINF領域の新規のバンクBK3に格納された不揮発性メモリNVMMの状態は、図19に示される。
全てのBIOS設定情報の複写が完了した後、BIOSは、ファームウェアBMCFWに状態BIOS−STの”2”から”0”への変更を指示する(図9(n))。ファームウェアBMCFWは、BIOSからの指示に基づいて、領域管理テーブルNVTBLの状態BIOS−STを”2”から”0”に変更し、BIOSによるBIOS設定情報の複写の完了を検出する(図9(o))。
ファームウェアBMCFWは、状態BIOS−STが”0”に設定されたことに基づいて、Variable Reclaimに使用した既存のBIOSINF領域(バンクBK0、BK1)を削除する(図9(p))。すなわち、ファームウェアBMCFWの削除部DELは、有効なBIOS設定情報がバンクBK3に格納された後、バンクBK0を削除する。また、ファームウェアBMCFWの削除部DELは、バンクBK0、BK1の削除を、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに反映する(図9(q))。すなわち、ファームウェアBMCFWの削除部DELは、有効なBIOS設定情報をバンクBK3に格納した後、既存のバンクBK0、BK1のサイズを示すバンクサイズBK0SZ、BK1SZを領域管理テーブルNVTBLから削除する。また、ファームウェアBMCFWの削除部DELは、既存のバンクBK0、BK1のオフセット値offsetmin、offsetmaxをアドレス管理テーブルADTBLから削除する。これにより、BIOSINF領域を切り替える処理が完了したため、ファームウェアMMBFWは、状態BMC−STを”1”から”0”に変更する(図9(r))。BIOS設定情報のバンクBK3への格納後に、削除したバンクBK0、BK1に合わせて領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLが更新された不揮発性メモリNVMSの状態は、図20に示される。
次に、図10において、ファームウェアMMBFWは、BMCから領域管理テーブルNVTBLを取得し、状態BMC−STが”0”であることに基づいて、BIOSINF領域を切り替え処理の完了を検出する(図10(a)、(b))。そして、ファームウェアMMBFWは、全てのパーティションPT0−PT3(SB0−SB3)の電源の遮断をファームウェアBMCFWに指示する(図10(c))。ファームウェアBMCFWは、各パーティションPT(すなわち、各システムボードSB)への電源の供給を停止し、BIOSを終了させる(図10(d))。なお、各システムボードSBにおいて、BMCおよび不揮発性メモリNVMSへの電源の供給は継続される。
次に、ファームウェアMMBFWは、基本構成に設定したハードウェア構成テーブルHWTBLに基づくBIOSINF領域の切り替え処理が完了したため、ファームウェアBMCFWに状態MMB−STの”1”から”0”への変更を指示する(図10(e))。ファームウェアBMCFWは、ファームウェアMMBFWからの指示に基づいて、領域管理テーブルNVTBLの状態MMB−STを”1”から”0”に変更する(図10(f))。
次に、ファームウェアMMBFWは、退避したハードウェア構成テーブルHWTBLを元に戻す(図10(g))。ハードウェア構成テーブルHWTBLの変更により、情報処理システムSYS2のパーティションPTの構成は、統合ファームアップ前の元の構成に戻る。退避したハードウェア構成テーブルHWTBLが元に戻された不揮発性メモリNVMMの状態は、図21に示される。換言すれば、図21は、BIOSINF領域の拡張処理の完了後の管理ボードMMBの不揮発性メモリNVMMの状態を示す。
ファームウェアMMBFWは、各パーティションPTのホームシステムボードSBのファームウェアBMCFWに対して、不揮発性メモリNVMMに保持しているBIOSINF情報およびBMCINF情報の格納を指示する(図10(h))。指示を受けたホームシステムボードSBのファームウェアBMCFWは、ファームウェアMMBFWから転送されるBIOSINF情報およびBMCINF情報を、BIOSINF領域およびBMCINF領域のそれぞれに格納する(図10(i))。
そして、全てのシステムボードSBのBIOSINF領域の拡張処理が完了する。拡張処理の完了後の各システムボードSBの不揮発性メモリNVMSの状態は、図22に示される。図22では、拡張処理の開始前の図12に比べて、バンクBKの数が増加され、パーティションPT0、PT1に割り当てられたホームシステムボードSB0、SB2は、有効なBIOS設定情報DT00’、DT10’をそれぞれ保持する。これ以降、パーティションPT0、PT1は、有効なBIOS設定情報DT00’、DT10’を複写した新たなBIOSINF領域を既存のBIOSINF領域として使用する。
図23および図24は、図3に示す情報処理システムSYS2においてBMCが実行する処理の一例を示す。図24は、図23に示す処理の続きを示す。図23および図24に示す処理は、管理ボードMMBからのBMCの起動の指示に基づいて、BMCのファームウェアBMCFWがBMCを起動することで開始される。すなわち、図23および図24は、情報処理システムSYS2の制御方法および制御プログラムの一例を示す。図8から図10に示す処理と同様の処理については、詳細な説明は省略する。
まず、ステップS100において、BMCは、領域管理テーブルNVTBLに保持された既存のBIOSINF領域のバンク数BIOSBKNを取得する。次に、ステップS102において、BMCは、ファームウェアBMCFW内に記述された新規のBIOSINF領域のバンク数を取得する。次に、ステップS104において、BMCは、ステップS100、S102で取得したバンク数が互いに一致するか否かを判定する。バンク数が互いに一致する場合、既存のBIOSINF領域がそのまま使用されるため処理は終了し、バンク数が互いに異なる場合、既存のBIOSINF領域を、新規のBIOSINF領域に切り替えるために処理はステップS106に移行される。
ステップS106において、BMCは、状態BMC−STを”0”から”1”に変更する。次に、ステップS108において、BMCは、新規に割り当てるBIOSINF領域を示す情報を、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに追加する。次に、ステップS110において、BMCは、新たなBIOSINF領域に対応する数のバンクBKを不揮発性メモリNVMSに新規に割り当てる。
次に、ステップS112において、BMCは、管理ボードMMBとの間の通信を確立する。次に、ステップS114において、BMCは、管理ボードMMBからの指示に基づいて、領域管理テーブルNVTBLの状態MMB−STを”0”から”1”に変更する。次に、ステップS116において、BMCは、管理ボードMMBからBIOSINF情報およびBMCINF情報を受信した場合、受信したBIOSINF情報およびBMCINF情報を既存のBIOSINF領域およびBMCINF領域に格納する。すなわち、既存のBIOSINF領域およびBMCINF領域に保持されたBIOSINF情報およびBMCINF情報は、管理ボードMMBから受信したBIOSINF情報およびBMCINF情報に置き換えられる。
次に、ステップS118において、BMCは、管理ボードMMBからの指示に基づいて、パーティションPTの電源を投入する。パーティションPTの電源の投入により、BIOSが起動される。次に、ステップS120において、BMCは、BIOSからの指示に基づいて、領域管理テーブルNVTBLの状態BIOS−STを、Variable Reclaimの実行中を示す”1”に設定する。次に、ステップS122において、BMCは、BIOSによるVariable Reclaimの実行により抽出された有効なBIOS設定情報を、データを消去済みの既存のBIOSINF領域に格納する。次に、ステップS124において、BMCは、領域管理テーブルNVTBLの状態BIOS−STを”2”に設定する指示を受けたか否かを判定する。状態BIOS−STを”2”に設定する指示を受けた場合、Variable Reclaimの実行が終了したと判定され、処理はステップS126に移行される。状態BIOS−STを”2”に設定する指示を受けていない場合、Variable Reclaimが実行中であると判定され、処理はステップS122に戻される。ステップS126において、BMCは、領域管理テーブルNVTBLの状態BIOS−STを、有効なBIOS設定情報の新規のBIOSINF領域への複写中を示す”2”に設定する。
次に、図24に示すステップS128において、BMCは、BIOSからの指示に基づいて、有効なBIOS設定情報を既存のBIOSINF領域から新規のBIOSINF領域に複写する。次に、ステップS130において、BMCは、複写したBIOS設定情報を不揮発性メモリNVMMに格納する指示を管理ボードMMBに発行する。次に、ステップS132において、BMCは、領域管理テーブルNVTBLの状態BIOS−STを”0”に設定する指示を受けたか否かを判定する。状態BIOS−STを”0”に設定する指示を受けた場合、有効なBIOS設定情報の複写が終了したと判定され、処理はステップS134に移行される。状態BIOS−STを”0”に設定する指示を受けていない場合、有効なBIOS設定情報の複写が終了していないと判定され、処理はステップS128に戻される。
次に、ステップS134において、BMCは、領域管理テーブルNVTBLの状態BIOS−STを、”0”に設定する。次に、ステップS136において、BMCは、Variable Reclaimに使用した既存のBIOSINF領域を削除する。次に、ステップS138において、BMCは、既存のBIOSINF領域の削除を領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに反映させる。次に、ステップS140において、BMCは、状態BMC−STを”1”から”0”に変更する。
次に、ステップS142において、BMCは、管理ボードMMBからの電源の遮断の指示に基づいて、全てのパーティションPT0−PT3の電源を遮断する。次に、ステップS144において、BMCは、管理ボードMMBからの指示に基づいて、領域管理テーブルNVTBLの状態MMB−STを”1”から”0”に変更する。次に、ステップS146において、BMCは、管理ボードMMBから受信したBIOSINF情報を新規のBIOSINF領域に格納し、BIOSINF領域の切り替え処理を終了する。この後、BMCは、システムボードSBに搭載されるCPU等の動作を管理する処理を実行する。
図25および図26は、図3に示す情報処理システムSYS2において管理ボードMMBが実行する処理の一例を示す。図26は、図25に示す処理の続きを示す。図25に示す処理は、管理ボードMMBが起動されることにより開始される。図25および図26は、情報処理システムSYS2の制御方法および制御プログラムの一例を示す。図8から図10に示す処理と同様の処理については、詳細な説明は省略する。
まず、ステップS200において、管理ボードMMBは、各システムボードSBのBMCに再起動を指示する。次に、ステップS202において、管理ボードMMBは、各システムボードSBとの間の通信を確立する。次に、ステップS204において、管理ボードMMBは、各パーティションPTのBMCから領域管理テーブルNVTBLを取得する。
ステップS206において、管理ボードMMBは、各パーティションPTのBMCから取得した領域管理テーブルNVTBLの状態BMC−STが”1”か否かを判定する。状態BMC−STが”1”の場合、BIOSINF領域の切り替え処理を実行するために、処理はステップS208に移行され、状態BMC−STが”1”でない場合、BIOSINF領域の切り替え処理を実施しないため、処理は終了される。ステップS208において、管理ボードMMBは、全てのシステムボードSBの状態BMC−STが”1”になった場合、ハードウェア構成テーブルHWTBLを退避する。次に、ステップS210において、管理ボードMMBは、ハードウェア構成テーブルHWTBLを図14に太枠で示すように基本構成に設定する。
次に、ステップS212において、管理ボードMMBは、構成変更のあるホームシステムボードSBに対して、不揮発性メモリNVMMに保持しているBIOSINF情報、BMCINF情報に転送し、BIOSINF情報、BMCINF情報の置き換えを指示する。ステップS212以降の処理は、パーティションPT毎に実行される。次に、ステップS214において、管理ボードMMBは、BMCに領域管理テーブルNVTBLの状態MMB−STを”0”から”1”に変更する指示を発行する。次に、ステップS216において、管理ボードMMBは、不揮発性メモリNVMMに保持された各パーティションPT0−PT3に対応するPTINF0領域−PTINF3領域に含まれる既存のBIOSINF情報を削除する。
次に、ステップS218において、管理ボードMMBは、ステップS204で取得した領域管理テーブルNVTBLに基づいて、PTINF0領域−PTINF3領域の各々に新規のBIOSINF領域を作成する。そして、管理ボードMMBは、作成した新規のBIOSINF領域のデータを”0xFF”に初期化する。次に、ステップS220において、管理ボードMMBは、パーティションPTのBMCに電源の投入を指示する。
次に、図26に示すステップS222において、管理ボードMMBは、Variable Reclaimにより抽出された有効なBIOS設定情報をBMCから受信したか否かを判定する。有効なBIOS設定情報を受信した場合、処理はステップS224に移行され、有効なBIOS設定情報を受信しない場合、処理はステップS226に移行される。ステップS224において、管理ボードMMBは、BMCから受信した有効なBIOS設定情報を、BMCが属するパーティションPTに対応するPTINF領域の新規のBIOSINF領域に格納する。すなわち、各システムボードSBの不揮発性メモリNVMSに格納された有効なBIOS設定情報が、管理ボードMMBの不揮発性メモリNVMMにバックアップされる。
ステップS226において、管理ボードMMBは、BMCから領域管理テーブルNVTBLを取得する。次に、ステップS228において、管理ボードMMBは、BMCから取得した領域管理テーブルNVTBLの状態BMC−STが”0”か否かを判定する。状態BMC−STが”0”の場合、BMCによるBIOSINF領域の切り替え処理が完了したと判断され、処理はステップS230に移行される。状態BMC−STが”0”でない場合、BMCによるBIOSINF領域の切り替え処理が実行中であると判断され、処理はステップS222に戻される。
ステップS230において、管理ボードMMBは、パーティションPTの電源の遮断をBMCに指示する。次に、ステップS232において、管理ボードMMBは、状態MMB−STの”1”から”0”への変更をBMCに指示する。次に、ステップS234において、管理ボードMMBは、全てのパーティションPT(すなわち、全てのシステムボードSB)の電源が遮断されたか否かを判定する。全てのパーティションPTの電源が遮断された場合、処理はステップS236に移行され、電源が遮断されていないパーティションPTが存在する場合、ステップS234の判定を繰り返す。
ステップS236において、管理ボードMMBは、ハードウェア構成テーブルHWTBLを待避した構成に戻す。次に、ステップS238において、管理ボードMMBは、不揮発性メモリNVMMに保持しているBIOSINF情報を新規のBIOSINF領域に格納する指示を、パーティションPTのホームシステムボードSBのBMCに発行する。また管理ボードMMBは、パーティションPTのホームシステムボードSBのBMCに対して、不揮発性メモリNVMMに保持しているBMCINF情報を、BMCINF領域に格納する指示を発行する。そして、管理ボードMMBは、全てのパーティションPTに対してステップS238までの処理が完了した場合、BIOSINF領域の切り替え処理を終了する。この後、管理ボードMMBは、情報処理システムSYS2の全体を管理する処理を実行する。
図27は、図3に示す情報処理システムSYS2においてBIOSが実行する処理の一例を示す。図27に示す処理は、BMCのファームウェアBMCFWがパーティションPTの電源を投入したことに基づいて開始される。図8から図10に示す処理と同様の処理については、詳細な説明は省略する。
まず、ステップS300において、BIOSは、POSTを開始する。次に、ステップS302において、BIOSは、BMCから領域管理テーブルNVTBLを取得する。次に、ステップS304において、BIOSは、各パーティションPTのBMCから取得した領域管理テーブルNVTBLの状態MMB−ST、BMC−STがともに”1”か否かを判定する。状態MMB−ST、BMC−STがともに”1”の場合、処理はステップS306に移行され、状態MMB−ST、BMC−STがともに”0”の場合、処理はステップS316に移行される。
なお、正常な動作状態では、状態MMB−ST、BMC−STの論理値が互いに異なることはない。このため、BIOSは、状態MMB−ST、BMC−STの論理値が互いに異なることを検出した場合、エラー通知をBMCに発行する。エラー通知を受けたBMCは、その後のBIOSINF領域の切り替え処理を停止し、管理ボードMMBに切り替え処理の停止を通知する。例えば、切り替え処理の停止の通知を受けた管理ボードMMBは、パーティションPTの電源の遮断をBMCに指示した後、図9の最初に示す処理を再度開始する。なお、上述したように、正常な動作状態では、状態MMB−ST、BMC−STの論理値が互いに異なることはない。このため、BIOSは、状態BMC−STのみを検出し、状態BMC−STが”1”の場合に処理をステップS306に移行し、状態BMC−STが”0”の場合に処理をステップS316に移行してもよい。
ステップS306において、BIOSは、BIOSINF領域の切り替え処理に伴うVariable Reclaimを実行するため、POSTを中断し、領域管理テーブルNVTBLの状態BIOS−STを”0”から”1”に変更する指示をBMCに発行する。次に、ステップS308において、BIOSは、Variable Reclaimを実行する。Variable Reclaimの処理の例は、図28に示される。
次に、ステップS310において、BIOSは、既存のBIOSINF領域から新規のBIOSINF領域にBIOS設定情報を複写するため、領域管理テーブルNVTBLの状態BIOS−STを”1”から”2”に変更する指示をBMCに発行する。次に、ステップS312において、BIOSは、既存のBIOSINF領域から新規のBIOSINF領域にBIOS設定情報を複写する指示をBMCに発行する。次に、ステップS314において、BIOSは、BIOS設定情報の複写の完了後、領域管理テーブルNVTBLの状態BIOS−STを”2”から”0”に変更する指示をBMCに発行する。この後、BIOSは、図24のステップS142によるパーティションPTの電源の遮断に伴い停止される。
一方、BIOSINF領域の切り替え処理を実行しない場合、ステップS316において、BIOSは、BIOSINF領域の空き容量が所定量以下か否かを判定する。BIOSINF領域の空き容量が所定量以下の場合、処理はステップS318に移行され、BIOSINF領域の空き容量が所定量より大きい場合、処理は終了する。ステップS318において、BIOSは、Variable Reclaimを実行し、処理を終了する。この後、BIOSは、BIOS起動時の他の処理を実行する。
図28は、図27に示すVariable Reclaim処理の一例を示す。図28に示す処理は、BIOSにより実行される。
まず、ステップS400において、BIOSは、不揮発性メモリNVMS内のBIOSINF領域のBIOS設定情報の保存用のバンクBKから有効なBIOS設定情報を抽出する。例えば、保存用のバンクBKは、図4に示すBK0である。次に、ステップS402において、BIOSは、抽出した有効なBIOS設定情報を整理用のバンクBKに格納する。例えば、整理用のバンクBKは、図4に示すBK1である。次に、ステップS404において、BIOSは、有効なBIOS設定情報の抽出が完了したか否かを判定する。有効なBIOS設定情報の抽出が完了した場合、処理はステップS406に移行され、有効なBIOS設定情報の抽出が完了していない場合、処理はステップS400に戻される。
ステップS406において、BIOSは、保存用のバンクBKのデータを消去する。次に、ステップS408において、BIOSは、整理用のバンクBKに格納された有効なBIOS設定情報を保存用のバンクBKに格納する。次に、ステップS410において、BIOSは、有効なBIOS設定情報の保存用のバンクBKへの格納が完了したか否かを判定する。有効なBIOS設定情報の保存用のバンクBKへの格納が完了した場合、処理は終了し、有効なBIOS設定情報の保存用のバンクBKへの格納が完了していない場合、処理はステップS408に戻される。
図29は、図3に示す情報処理システムSYS2の初回の動作の一例を示す。初回の動作は、情報処理システムSYS2を製造するメーカの組立工程で実行され、あるいは、情報処理システムSYS2を出荷前の状態に戻すfactory default処理後に実行される。
まず、ファームウェアMMBFWは、情報処理システムSYS2への電源の投入に基づいて、各システムボードSBのBMCが実行するファームウェアBMCFWに再起動を指示する(図29(a))。ファームウェアBMCFWは、起動指示に基づいて、領域管理テーブルNVTBLを参照し、既存のバンク数BIOSBKNと、ファームウェアBMCFWが要求するBIOSINF情報を保持するための新たなバンクBKの数とを比較する。しかしながら、初回の動作では領域管理テーブルNVTBLが存在しないため、ファームウェアBMCFWは、ファームウェアBMCFWに記述されたバンクBKの仕様に基づいて、領域管理テーブルNVTBLとアドレス管理テーブルADTBLとを作成する(図29(b))。次に、ファームウェアBMCFWは、領域管理テーブルNVTBLに基づいて、BIOSINF領域とBMCINF領域とを作成し、BIOSINF領域とBMCINF領域とを”0xFF”で初期化する(図29(c))。
一方、管理ボードMMBの不揮発性メモリNVMMに保持されたハードウェア構成テーブルHWTBLは、図5に示す出荷時の状態である(図29(d))。ファームウェアMMBFWは、外部からのパーティションPTの生成要求に基づいて、ハードウェア構成テーブルHWTBLに情報を設定する(図29(e))。例えば、ファームウェアMMBFWは、パーティションPT0にシステムボードSB0を割り当てる。
ファームウェアMMBFWは、パーティションPT0のホームシステムボードSB0から領域管理テーブルNVTBLとアドレス管理テーブルADTBLとを取得する(図29(f))。ファームウェアMMBFWは、パーティションPT0から取得した情報に基づいて、不揮発性メモリNVMM内のPTINF0領域にBIOSINF領域とBMCINF領域とを作成し、”0xFF”で初期化する(図29(g))。この後、情報処理システムSYS2の電源が遮断され、情報処理システムSYS2の初回の動作が完了する。
図30は、図3に示す情報処理システムSYS2において、パーティションPTの電源が投入された場合の動作の一例を示す。まず、ファームウェアMMBFWは、所定のパーティションPTに電源の投入を指示する(図30(a))。電源の投入が指示されたパーティションPTのファームウェアBMCFWは、パーティションPTの電源を投入し、BIOSが起動される(図30(b))。
BIOSは、ファームウェアBMCFWを介して不揮発性メモリNVMSから領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLを取得する(図30(c))。そして、BIOSは、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに基づいて、不揮発性メモリNVMSのBIOSINF領域にアクセスし、BIOSINF情報を取得する(図30(d))。
図30に示す例では、BIOSの起動中に、外部からBIOS設定情報の変更が指示され、BIOSは、BIOS設定情報の変更をファームウェアBMCFWに指示する(図30(e)、(f))。ファームウェアBMCFWは、BIOSからの指示に基づいてBIOSINF領域を更新する(図30(g))。さらに、ファームウェアBMCFWは、管理ボードMMBの不揮発性メモリNVMM内のBIOSINF領域を更新する指示をファームウェアMMBFWに発行する(図30(h))。ファームウェアMMBFWは、ファームウェアBMCFWからの指示に基づいて、不揮発性メモリNVMM内のBIOSINF領域を更新する(図30(i))。これにより、システムボードSB内のBIOSINF情報と管理ボードMMB内のBIOSINF情報とが互いに一致する。
図31は、図3に示す情報処理システムSYS2において、システムボードSBが交換される場合の動作の一例を示す。以下では、図5のハードウェア構成テーブルHWTBLに示すパーティションPTの構成において、パーティションPT1のシステムボードSB2が故障した場合に、システムボードSB3に交換される例について説明する。
まず、ファームウェアMMBFWは、外部からのシステムボードSBの交換の指示に基づいて、ハードウェア構成テーブルHWTBLを更新し、ホームシステムボードSBをシステムボードSB2からシステムボードSB3に変更する(図31(a)、(b))。次に、ファームウェアMMBFWは、不揮発性メモリNVMMにおいて、パーティションPT1に対応するPTINF1領域に保持されたBIOSINF情報およびBMCINF情報をシステムボードSB3のファームウェアBMCFWに転送する(図31(c))。
システムボードSB3のファームウェアBMCFWは、転送されたBIOSINF情報で不揮発性メモリNVMS内のBIOSINF領域を書き替え、転送されたBMCINF情報で不揮発性メモリNVMS内のBMCINF領域を書き替える(図31(d))。
不揮発性メモリNVMSが書き替えられた後、ファームウェアMMBFWは、パーティションPT1のシステムボードSB3のファームウェアBMCFWに電源の投入を指示する(図31(e))。システムボードSB3のファームウェアBMCFWは、電源の投入の指示に基づいて、パーティションPT1の電源を投入し、BIOSが起動される(図31(f))。
BIOSは、ファームウェアBMCFWを介して不揮発性メモリNVMSから領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLを取得する(図31(g))。そして、BIOSは、領域管理テーブルNVTBLおよびアドレス管理テーブルADTBLに基づいてBIOSINF領域にアクセスし、BIOSINF情報を取得する(図31(h))。これにより、故障前にシステムボードSB2で使用されていたBIOSINF情報およびBMCINF情報が、システムボードSB3に引き継がれる。
以上、図3から図31に示す実施形態においても、図1および図2に示す実施形態と同様の効果を得ることができる。例えば、情報処理システムSYS2を出荷前の状態(factory default)に戻すことなく、全てのシステムボードSBのBIOSINF領域のサイズを変更することができる。すなわち、パーティションPTに設定された情報を失うことなく、システムボードSB内の電子部品EPのBIOS設定情報を保持するBIOSINF領域のサイズを変更することができる。人手を介することなくBIOSINF領域のサイズを変更できるため、消失した情報を復元する手間がなくなり、人為的な設定ミスを抑止することができる。サイズが変更されたBIOSINF領域を、管理ボードMMBの不揮発性メモリNVMM内のPTINF領域に反映することで、その後にBIOSにより変更されたBIOS設定情報をPTINF領域にバックアップすることができる。
さらに、図3から図31に示す実施形態では、以下の効果を得ることができる。すなわち、BIOSINF領域のサイズの切り替え時に、BIOSは、既存のBIOSINF領域と、新規のBIOSINF領域との両方にアクセスすることができる。したがって、BIOSは、既存のBIOSINF情報を用いてVariable Reclaimを実行し、有効なBIOS設定情報を抽出することができ、抽出したBIOS設定情報を新規に割り当てたBIOSINF領域に格納することができる。
領域管理テーブルNVTBLに状態BMC−STを保持する領域を設けることで、ファームウェアMMBFWは、ファームウェアBMCFWによるBIOSINF領域の切り替え処理の実行を検出することができる。このため、ファームウェアBMCFWと連携して、BIOSINF領域の切り替え処理を実行することができる。また、領域管理テーブルNVTBLに状態BMC−STを保持する領域を設けることで、BIOSは、ファームウェアBMCFWによるBIOSINF領域の切り替え処理の実行を検出することができる。このため、BIOSは、BIOSINF領域の切り替え処理に伴って実行するVariable Reclaimの開始タイミングを検出することができる。
Variable Reclaimの実行中に”1”を示す状態BIOS−STを領域管理テーブルNVTBLに保持することで、ファームウェアBMCFWは、BIOSによるVariable Reclaimの実行を検出することができる。また、BIOS設定情報の複写中に”2”を示す状態BIOS−STを領域管理テーブルNVTBLに保持することで、ファームウェアBMCFWは、複写用にBIOSから転送されたBIOS設定情報をファームウェアMMBFWに転送することができる。
基本構成のハードウェア構成テーブルHWTBLにより各パーティションPTにシステムボードSBを1つずつ割り当てることで、全てのシステムボードSBに、BIOSINF情報およびBMCINF情報を設定することができる。これにより、例えば、システムボードSB3のBIOSINF領域およびBMCINF領域に過去に保持された無効なデータDT30、DT31(図13)を削除することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。