"CPUと、メモリと、周辺デバイスと、基本入出力プログラムを各々格納する一対のプログラムメモリと、サービスプロセッサとをバスで接続したコンピュータシステムの基本入出力プログラムの冗長管理方法であって、前記コンピュータシステムの起動時に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された一方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行し、前記CPUが、OSを実行できる環境に、前記CPUと前記メモリと前記周辺デバイスと前記サービスプロセッサと前記バスとを設定するステップと、前記コンピュータシステムの稼働中に、前記CPUが、外部機器から前記基本入出力プログラムの更新の指示を受けた場合に、前記サービスプロセッサのメモリの前記現在稼働中に設定されていない他方のプログラムメモリへ、前記外部機器から転送された前記基本入出力プログラムを書込み、書き込み成功した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定するステップと、前記コンピュータシステムの再起動時に、前記サービスプロセッサが、前記サービスプロセッサのメモリのブートモードを読み出し、ブートモードが復電起動モードであるか通常起動モードであるかを判定するステップと、前記サービスプロセッサが、前記ブートモードが復電起動モードであると判定した場合に、前記CPUが、前記サービスプロセッサのメモリに前記稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行する第1のステップと、前記サービスプロセッサが、前記ブートモードが通常起動モードであると判定した場合に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された他方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された他方のプログラムメモリの前記基本入出力プログラムのブート処理を実行する第2のステップとを有することを特徴とする基本入出力プログラムの冗長管理方法。前記第1のステップは、前記CPUが、前記メモリの初期化を省略して、前記基本入出力プログラムのブート処理を実行するステップを有することを特徴とする請求項1の基本入出力プログラムの冗長管理方法。前記サービスプロセッサが、前記他方のプログラムメモリへ、前記転送された前記基本入出力プログラムを書込が成功しなかったと判定した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定しないで、エラーを通知するステップを更に有することを特徴とする請求項1の基本入出力プログラムの冗長管理方法。前記CPUは、前記稼働中のプログラムメモリの基本入出力プログラムによるブート処理の完了後、前記次回起動時のプログラムメモリの識別子と現在稼働中のプログラムメモリの識別子とを比較し、前記両識別子が一致している場合には、前記更新された他方のプログラムメモリの前記更新された基本入出力プログラムを、前記一方のプログラムメモリに書込み、冗長化し、前記両識別子が一致していない場合には、前記冗長化を実行しないステップを更に有することを特徴とする請求項1の基本入出力プログラムの冗長管理方法。CPUと、メモリと、周辺デバイスと、バスとを含むハードウェアと、前記バスを介し前記CPUに接続され、CPUが、OSを実行できる環境に、前記ハードウェアを設定する基本入出力プログラムを、各々格納する一対のプログラムメモリと、前記バスを介し前記CPUに接続され、前記ハードウェアの起動時に、前記サービスプロセッサのメモリの次回起動時に設定された一方のプログラムメモリの識別子を現在稼働中に設定し、前記現在稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理の実行を前記CPUに指示するサービスプロセッサとを有し、前記ハードウェアの稼働中に、前記CPUが、外部機器から前記基本入出力プログラムの更新の指示を受けた場合に、前記サービスプロセッサのメモリの前記現在稼働中に設定されていない他方のプログラムメモリへ、前記外部機器から転送された前記基本入出力プログラムを書込み、書き込み成功した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定し、前記コンピュータシステムの再起動時に、前記サービスプロセッサが、前記サービスプロセッサのメモリのブートモードを読み出し、ブートモードが復電起動モードであるか通常起動モードであるかを判定し、前記サービスプロセッサが、前記ブートモードが復電起動モードであると判定した場合に、前記CPUが、前記サービスプロセッサのメモリに前記稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行するとともに、前記サービスプロセッサが、前記ブートモードが通常起動モードであると判定した場合に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された他方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された他方のプログラムメモリの前記基本入出力プログラムのブート処理を実行することを特徴とするデータ処理装置。前記CPUは、前記メモリの初期化を省略して、前記稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行することを特徴とする請求項5のデータ処理装置。前記サービスプロセッサは、前記他方のプログラムメモリへ、前記転送された前記基本入出力プログラムを書込が成功しなかったと判定した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定しないで、エラーを通知することを特徴とする請求項5のデータ処理装置。前記ハードウェアと、前記サービスプロセッサとを有するストレージ制御装置と、前記ストレージ制御装置に接続された複数のストレージ装置とを有することを特徴とするデータ処理装置。一方、ある型番のCPUでも、バグ等の発生により改良したCPUも同一の型番を付す、いわゆる、CPUステッピング変更により、頻繁にBIOS版数をアップデータする必要があるため、BIOSをファームウェアでバインドせず、CPUバインドとする必要がある。即ち、CPUステッピング変更が起こった場合には、実装されているCPUに対応したBIOSより新しいものである必要がある。従来技術では、BIOSのアップデートのための書込み中に、停電等により、BIOSを格納するメモリに破壊が生じた場合に、システム動作が不能となるといおそれがある。即ち、BIOSを格納するメモリからBIOSが、主記憶にロードされても、そのメモリのBIOSは、現在稼動中のため、停電等が生じると、書込み途中では、書込み前のBIOSが失われ、システム動作が不能となる。又、書込みが成功しても、復電時に、前のBIOSと異なるBIOSで復電処理することになり、これを考慮して、BIOSを変更する必要があるという制約が付けられ、BIOSのアップデートの範囲が限られる。従って、本発明の目的は、システムの稼動中に、基本入出力プログラムの書き換えを行っても、システム起動が不能となることを防止するための基本入出力プログラムの冗長管理方法及びデータ処理装置を提供することにある。又、本発明の他の目的は、基本入出力プログラムの書換えに失敗しても、システム起動が不能となることを防止するための基本入出力プログラムの冗長管理方法及びデータ処理装置を提供することにある。更に、本発明の他の目的は、基本入出力プログラムの書換え中に停電が生じても、システムの復電処理を可能とする基本入出力プログラムの冗長管理方法及びデータ処理装置を提供することにある。この目的の達成のため、本発明の基本入出力プログラムの冗長管理方法は、CPUと、メモリと、周辺デバイスと、基本入出力プログラムを各々格納する一対のプログラムメモリと、サービスプロセッサとをバスで接続したコンピュータシステムの基本入出力プログラムの冗長管理方法であって、前記コンピュータシステムの起動時に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された一方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行し、前記CPUが、OSを実行できる環境に、前記CPUと前記メモリと前記周辺デバイスと前記サービスプロセッサと前記バスとを設定するステップと、前記コンピュータシステムの稼働中に、前記CPUが、外部機器から前記基本入出力プログラムの更新の指示を受けた場合に、前記サービスプロセッサのメモリの前記現在稼働中に設定されていない他方のプログラムメモリへ、前記外部機器から転送された前記基本入出力プログラムを書込み、書き込み成功した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定するステップと、前記コンピュータシステムの再起動時に、前記サービスプロセッサが、前記サービスプロセッサのメモリのブートモードを読み出し、ブートモードが復電起動モードであるか通常起動モードであるかを判定するステップと、前記サービスプロセッサが、前記ブートモードが復電起動モードであると判定した場合に、前記CPUが、前記サービスプロセッサのメモリに前記稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行する第1のステップと、前記サービスプロセッサが、前記ブートモードが通常起動モードであると判定した場合に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された他方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された他方のプログラムメモリの前記基本入出力プログラムのブート処理を実行する第2のステップとを有する。又、本発明のデータ処理装置は、CPUと、メモリと、周辺デバイスと、バスとを含むハードウェアと、前記バスを介し前記CPUに接続され、CPUが、OSを実行できる環境に、前記ハードウェアを設定する基本入出力プログラムを、各々格納する一対のプログラムメモリと、前記バスを介し前記CPUに接続され、前記ハードウェアの起動時に、前記サービスプロセッサのメモリの次回起動時に設定された一方のプログラムメモリの識別子を現在稼働中に設定し、前記現在稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理の実行を前記CPUに指示するサービスプロセッサとを有し、前記ハードウェアの稼働中に、前記CPUが、外部機器から前記基本入出力プログラムの更新の指示を受けた場合に、前記サービスプロセッサのメモリの前記現在稼働中に設定されていない他方のプログラムメモリへ、前記外部機器から転送された前記基本入出力プログラムを書込み、書き込み成功した場合、前記サービスプロセッサが前記他方のプログラムメモリの識別子を前記次回起動時に設定し、前記コンピュータシステムの再起動時に、前記サービスプロセッサが、前記サービスプロセッサのメモリのブートモードを読み出し、ブートモードが復電起動モードであるか通常起動モードであるかを判定し、前記サービスプロセッサが、前記ブートモードが復電起動モードであると判定した場合に、前記CPUが、前記サービスプロセッサのメモリに前記稼働中に設定された一方のプログラムメモリの前記基本入出力プログラムのブート処理を実行するとともに、前記サービスプロセッサが、前記ブートモードが通常起動モードであると判定した場合に、前記サービスプロセッサが前記サービスプロセッサのメモリの次回起動時に設定された他方のプログラムメモリの識別子を現在稼働中に設定し、前記CPUが前記現在稼働中に設定された他方のプログラムメモリの前記基本入出力プログラムのブート処理を実行する。本発明では、基本入出力プログラムを一対のメモリで冗長管理し、CPUステッピング変更等に応じた基本入出力プログラムアップデート時に、同時に2つのBIOSメモリに,ライトせず、待機側のみにライトし、現在稼動中のBIOSを書き換えない。このため、アップデートに失敗した時に、現在稼動中のBIOSで起動でき、システム起動不能になるのを防ぐことができる。又、待機側のメモリのみをアップデートし、且つメモリにブートモードを設け、ブートモードが復電起動モードであるか通常起動モードであるかを判定し、ブートモードが復電起動モードであると判定した場合に、一方のプログラムメモリの基本入出力プログラムのブート処理を実行し、ブートモードが通常起動モードであると判定した場合に、次回起動時に設定された他方のプログラムメモリの基本入出力プログラムのブート処理を実行するため、アップデートのライト中に停電が発生した場合や稼働中に停電が発生した場合に、停電前と異なるBIOSで復電処理を行うことを防止できる。更に、本発明では、好ましくは、前記切り換え後、前記稼動中に切り換えられたメモリのBIOSを、前記待機中に切り換えられたメモリに、書込み、冗長化するステップを更に有する。これにより、アップデートされてない他のメモリのBIOSもアップデートできる。更に、本発明では、好ましくは、前記ハードウェアの起動時に、前記許可された待機中のメモリを稼動中に、前記稼動中のメモリを前記待機中に切り換えるステップを更に有する。これにより、アップデートしたBIOSに自動切換えできる。更に、本発明では、好ましくは、前記切り換え後、前記稼動中に切り換えられたメモリのBIOSを、前記待機中に切り換えられたメモリに、書込み、冗長化するステップを更に有する。これにより、アップデートされてない他のメモリのBIOSもアップデートできる。更に、本発明では、好ましくは、前記待機中のメモリへの前記BIOSのアップデートが失敗した時に、前記待機中のメモリを前記稼動中に切り換えることを防止するステップを更に有する。これにより、アップデートが失敗したBIOSへの自動切換えを防止でき、不要な切り換えを防止できる。更に、本発明では、好ましくは、前記待機中に切り換えられたメモリへの前記BIOSの書込みが失敗した時に、前記待機中に切り替えられたメモリを前記稼動中に切り換えることを防止するステップを更に有する。これにより、冗長化に失敗したBIOSへの自動切換えを防止でき、不要な切り換えを防止できる。更に、本発明では、好ましくは、前記ハードウェアの前記待機中のメモリのBIOSアップデートに応じて、前記ハードウェアと接続された他のハードウェアの待機中のメモリのBIOSアップデートを実行するステップを更に有する。これにより、一対のハードウェアのBIOSアップデートを同時にできる。更に、本発明では、好ましくは、前記ハードウェアと接続された他のハードウェアとのBIOSの同期化処理を行うステップを更に有する。これにより、ハードウェア間のBIOS版数を一致することができる。このように、本発明では、基本入出力プログラムを一対のメモリで冗長管理し、基本入出力プログラムのアップデート時に、同時に2つのBIOSメモリに,ライトせず、待機側のみにライトし、現在稼動中のBIOSを書き換えないため、アップデートに失敗した時に、現在稼動中のBIOSで起動でき、システム起動不能になるのを防ぐことができる。又、待機側のメモリのみアップデートし、且つメモリにブートモードを設け、ブートモードが復電起動モードであるか通常起動モードであるかを判定し、ブートモードが復電起動モードであると判定した場合に、一方のプログラムメモリの基本入出力プログラムのブート処理を実行し、ブートモードが通常起動モードであると判定した場合に、次回起動時に設定された他方のプログラムメモリの基本入出力プログラムのブート処理を実行するため、アップデートのライト中に停電が発生した場合や稼働中に停電が発生した場合に、停電前と異なるBIOSで復電処理を行うことを防止できる。以下、本発明の実施の形態を、ストレージシステム、BIOSの冗長管理処理、CM間のBIOS同期化処理、他の実施の形態の順で説明する。[ストレージシステム]図1は、本発明の一実施の形態のストレージシステムの構成図であり、磁気デイスクを使用したRAIDRedundantArraysofInexpensiveDiskシステムを示す。図1に示すように、ストレージシステムは、一対の磁気デイスクコントローラ以下、コントローラという1、2と、この一対のコントローラ1、2にラインl1,l2で接続された多数の磁気デイスク装置50-1~50-m、52-1~52-nとからなる。コントローラ1、2は、直接又はネットワーク機器を介し、ホストやサーバーに接続され、ホストやサーバーの大量のデータを、RAIDデイスクドライブ磁気デイスク装置へ高速かつ、ランダムに読み書きが出来るシステムである。一対のコントローラ1、2は、同一の構成を有し、CAChannelAdapter11、12、21、22と、CMCentralizedModule10、15~19、20、25~29と、DADeviceAdapter13、14、23、24のファンクションモジュールによって構成されている。CAChannelAdapter11、12、21、22は、ホストを結ぶホストインタフェースの制御をつかさどる回路であり、例えば、ファイバーチャネル回路FCとDMADirectMemoryAccess回路等で構成される。DADeviceAdapter13、14、23、24は、デイスクデバイス50-1~50-m、52-1~52-mを制御するため、デイスクデバイスとコマンド、データのやり取りを行う回路であり、例えば、ファイバーチャネル回路FCとDMA回路等で構成される。CMCentralizedModuleは、CPU10,20と、ブリッジ回路17、27と、メモリRAM15、25と、コンパクトフラッシュ登録商標メモリ16,26と、IOブリッジ回路18,28と、一対のBIOSフラッシュメモリ32,33,42,43とを有する。更に、CMは、RSPRemoteServiceProcessor34,44と、外部接続用LANポート36,46とを有する。メモリ15,25は、バッテリーでバックアップされ、主記憶として使用される。CPU10,20は、ブリッジ回路17,27を介し、メモリ15,25、コンパクトフラッシュ登録商標メモリ16,26、IOブリッジ回路18,28に接続される。このメモリ15,25は、CPU10,20のワーク領域に使用され、コンパクトフラッシュ登録商標メモリ16,26は、CPU10,20が実行するプログラムを格納する。このプログラムとして、カーネル,ファイルアクセスプログラムリード/ライトプログラム、RAID管理プログラム等を格納する。BIOSフラッシュメモリ32,33,42,43は、冗長構成のため、一対設けられ、一方が稼動、他方が待機に使用され、BIOS図4で後述を格納する。CPU10,20は、このプログラムを実行し、リード/ライト処理、RAID管理処理等を実行する。PCIバス35、45は、ブリッジ回路17,27を介し、CPU10,20と、コンパクトフラッシュ登録商標メモリ15,25、一対のBIOSフラッシュメモリ32,33,42,43、RSP34,44,LANポート36,46とを接続する。RSP34,44は、各種のリモートサービスを行うプロセッサで構成され、本実施例では、BIOSフラッシュメモリ32,33,42,43の冗長管理を行う。LANポート36,46は、外部のLANLocalAreaNetworkと接続するためのものである。PCIPersonalComputerInterfaceバス31、41は、CA11,12,21,22と、DA13,14,23,24とを接続するとともに、IOブリッジ回路18,28を介し、CPU10,20、メモリ15,25を接続する。更に、PCIバス31、41には、PCI-ノードリンクブリッジPNB回路30,40が接続される。コントローラ1のPCI-ノードリンクブリッジ回路30は、コントローラ2のPCI-ノードリンクブリッジ回路40と接続され、コントローラ1,2間のコマンド、データの交信を行う。コントローラ1は、例えば、デイスク装置50-1~50-mを担当し、コントローラ2は、例えば、デイスク装置52-1~52-nを担当する。図1では、デイスク装置50-1~50-mと、52-1~52-nとが、RAID5の構成を有する。図2は、図1のコンパクトフラッシュ登録商標メモリ16,26に格納されたプログラムの一例であり、カーネル102、システム制御104、パワー制御106、構成管理108、保守タスク110、フラッシュドライバ112、RSPドライバ114等で構成される。カーネル102は、OSであり、カーネル102以外は、ファームウェアである。図3は、図1のRSP34,44のNVRAM不揮発性ランダムアクセスメモリに格納されたBIOS冗長管理情報の説明図であり、bootmode120は、BIOSのブートモードFAST/SLOWを格納する。Currentmode122は、現在稼動中のBIOS番号を格納する。BIOSSW124は、次回起動時に起動するBIOS番号を格納する。待機BIOS版数126は、待機側のBIOS版数を格納する。図4は、図1のBIOSフラッシュメモリに格納されるBIOSの処理フロー図である。BIOSは、前述のように、OSカーネルが使用するハードウェアをチエックし、OSカーネルが、ハードウェアを使用できる環境に設定する。従って、OSのロード前に行われる。S10RSP34,44が起動するBIOSを設定し、先ず、CPU10,20のリセットが解除されると、CPU10,20が、BIOSフラッシュメモリ32又は33、42又は43のBIOSの先頭ブロックを読出し、RSP34,44の初期化、即ち、BIOSがRSP34,44の機能を使用できるような設定を、BIOSBootblockの先頭で行う。次に、CPU10,20の初期化を行う。即ち、CPU10,20を使用できるように、レジスタの設定、マシンチエックの初期化等を行う。S12各チップセット各ブリッジ回路17,18,27,28等の初期化Disableレジスタ設定等を行う。又、メモリ15,25の初期化使用可能な状態にし、診断及びECCチエック等を行う。S14このメモリ15、25、チップセットの初期化の後、BIOSフラッシュメモリからメモリ15、25に、BIOSをロードする。次に、PCIバス31、35,41,45に接続されたPCIデバイスCA11,12,21,22,DA13,14,23,24,LANポート36,46の初期化を行う。S16更に、必要に応じて、他のデバイスの初期化を行う。S18次に、各種のテーブルを作成し、ブートを終了する。これにより、コンパクトフラッシュ登録商標メモリ16、26からカーネル等がメモリ15、25にロードされ、プログラムが起動される。図1のストレージシステムにおいて、コントローラ1,2では、メモリ15,25に配置されたキャッシュメモリは、各々、担当するデイスク装置のデータの一部を格納し、ホストからのライトデータを格納する。CPU10,20は、CA11,12,21,22を介しホストからのリード要求を受けて、キャッシュメモリを参照し、物理デイスクへのアクセスが必要かを判定し、必要であれば、デイスクアクセス要求をDA13,14,23,24に要求する。又、CPU10,20は、ホストからのライト要求を受けて、ライトデータをキャッシュメモリに書込み、且つ内部でスケジュールされるライトバック等をDA13,14,23,24に要求する。[BIOSの冗長管理処理]前述のように、各コントローラ1,2に、BIOSフラッシュメモリFlashROMを物理的に2つ実装している。この2つのフラッシュメモリへ同じ版数のBIOSを格納し、片方のBIOSフラッシュメモリFlashROM32,42がBoot不能になっても、もう一方33,43から同じ版数のBIOSを起動することができるように、冗長管理図8で後述を行う。このBIOSの冗長化は、BIOS処理が終了後に,バイオス冗長処理ファームウェア図9で後述で行う。又、起動するBIOSは、RSP34,44のProcessorにより,切り替えを行う。先ず、BIOSのアップデートを、図5、図6、図7、図10乃至図12で説明する。図5に示すように、BIOSフラッシュメモリFlashROM33へのフラッシュライトは、ユーザインタフェイスを使用して、ファームウェアから行う。即ち、コントローラ1のLANポート36に、ハブ7を介しパーソナルコンピュータ以下、PCという6を接続し、図6及び図7の処理により、実行する。図6は、BIOSアップデート指示処理フロー図である。S20PC6のCGI画面より、BIOSアップデート指示を行う。即ち、BIOSアップデート画面を表示し、アップデートを指示する。S21コントローラ1のCPU10が実行する保守タスク110は、構成からBIOS版数を獲得し、PC6のCGIに通知する。S22PC6のCGIでは、通知された現在稼動中のBIOS版数をCGI画面に表示する。そして、ユーザが確認後、PC6のCGIは、BIOSROMImageを、CPU10が実行する保守タスク110に転送する。S23保守タスク110は、CGIから受け取ったBIOSROMImageのチエックサムをチエックし、異常だったら、CGIに異常を通知する。異常でなければ、転送されたBIOSの版数を,CGIに通知する。S24CGIでは、CGI画面に,チエックサムエラーが発生した場合は、その旨を表示する。S25CGIでは、正常だった場合は、保守タスクから受け取ったBIOS版数を,画面に表示し、このBIOSにアップデートしていいか最終確認を行う。S26続行なら、CGIは、フラッシュライト指示を保守タスク110へ送る。保守タスク110は、フラッシュライト指示を受け、図7のBIOSフラッシュライト処理を実行する。図7は、保守タスクが実行するフラッシュライト処理フロー図である。S30保守タスク110は、BIOSフラッシュライト指示を受けると、RSP34,44内のNVRAM図3参照のCurrentSW122から現在稼動中のBIOSのフラッシュメモリ番号図1の32か33を獲得する。S32次に、保守タスク110は、RSP34,44内のNVRAM図3参照の待機BIOS版数126の版数を無効化する。これにより、BIOSフラッシュROMの自動切換えを防止する。S34ステップS30の現在稼動中のBIOSのフラッシュメモリ番号から待機中のBIOSフラッシュメモリを求め、カーネル102が用意する関数を使用し、現在稼動中ではない方待機側のBIOSフラッシュROMに、転送されたBIOSをフラッシュライトする。このとき、BIOSBootBlock部もフラッシュライトする。S36保守タスク110は、正常にフラッシュライト終了したかを判定する。S38保守タスク110は、正常にフラッシュライト終了したと判定すると、RSP34,44内のNVRAM図3参照のBIOSSW124の次回起動時に起動するBIOS番号に、フラッシュライトしたBIOSフラッシュROM番号を設定する。又、保守タスク110は、RSP34,44内のNVRAM図3参照の待機BIOS版数126に、このフラッシュライトされたBIOS版数を設定し、この書き換えられたフラッシュROMを有効化する。従って、次回の起動時には、書き換えられたBIOSが選択される。更に、WebにBIOSのアップデートが正常終了したことを通知し、PC6のCGIで確認させる。そして、終了する。S40一方、ステップS36で、BIOSアップデート時に、フラッシュライトエラーが発生したことを検出した場合には、待機側BIOSフラッシュメモリが異常であることを、システム制御104に通知し、エラーが発生したコントローラの状態を予防保守が必要な状態にする例えば、状態ランプはOrangeとする。そして、PC6のCGI画面に,BIOSアップデートが失敗したことが通知される。この場合に、BIOSSW124、待機BIOS版数126は、更新されないため、エラーが発生したBIOSフラッシュROMへの自動切り換えを防止できる。このように、BIOSアップデート時に、同時に2つのBIOSフラッシュROMに,フラッシュライトせず、待機側のみにフラッシュライトする。この理由は、現在稼動中のBIOSを書き換えるのは危険であるからである。即ち、フラッシュライトに失敗したときに、現在稼動中のBIOSを書き換えないため、現在稼動中のBIOSで起動できるため、システム起動不能になるのを防ぐことができる。又、フラッシュライト中に停電が発生した場合、停電前と異なるBIOSで復電処理を行うことになり、版数の異なるBIOS間でFastBootを保障しなければならないため、待機側のみフラッシュライトする。尚、FastBootとは、停電発生時に、コントローラ内のメモリ15、25のキャッシュ域のデータは、バッテリバックアップにより保持されるため、復電時に、キャッシュ上のデータを保証するため、メモリ初期化を省略して、コントローラを立ち上げるモードである。ここで、停電/復電を挟んで、BIOS版数が異なると、ハード初期化手順が相違し、メモリデータが保証できなくなる。更に、図1の2つのコントローラ1、2が接続されたモデルでは、図1のコントローラ1の保守タスク110と同様に、コントローラ1がPC6から受けたコマンド、情報が、PNB30,40経由で、コントローラ2に伝達され、コントローラ2の保守タスク110が同一動作を行う。従って、コントローラ2の待機側BIOSフラッシュROMも同時にアップデートされる。この場合に、BIOSアップデート時に、片方のコントローラだけBIOSアップデートが失敗した場合には、PC6のCGI画面に,BIOSアップデートが失敗したことが通知される。アップデートに失敗したコントローラの次回起動時に立ち上げるBIOSは切換えできず、現在のBIOSで起動する。この状態では、2つのコントローラのBIOSの冗長化は行なわれていないが、次回のパワーオン時に、図13で後述するように、冗長化される。次に、コントローラ起動時のBIOSの切り換え処理を説明する。図8は、コントローラ起動時のRSPのBIOS起動処理フロー図である。S50適当なタイミングでコントローラが再起動されると、RSP34、44は、RSP34,44内のNVRAM図3参照のbootmode120からBootmodeFast/Slowを獲得する。Fastbootmodeは、停電後の復電などで前回起動したBIOSで起動するモードである。一方、Slowbootmodeは、通常のパワーオンなどで書き換えられたBIOSで起動するモードである。S52RSP34、44は、bootmodeを判定し、FASTなら、ステップS56に進む。即ち、ステップS54をジャンプし、停電前のBIOSを使用し、復電時の整合性を取る。S54一方、Slowと判定すると、RSP34,44内のNVRAM図3参照のBIOSSW124の次回起動時に起動するBIOS番号を獲得し、RSP34,44内のNVRAM図3参照のCurrentSW122に、獲得したBIOS番号を設定する。従って、起動BIOSは、書き換えられたBIOSに切り替えられる。S56RSP34、44は、NVRAM図3参照のCurrentSW122に設定されたBIOSを起動する。このようにして、起動時に、復電時以外は、更新されたBIOSに切り替わる。復電時は、前のBIOSを起動する。図9は、パワー制御が実行するBIOS冗長化処理フロー図である。S60BIOS処理図4が終了すると、パワー制御106内のBIOS冗長化処理は、RSP34,44内のNVRAM図3参照のBIOSSW124の次回起動時に起動するBIOS番号と、CurrentSW122の現在稼動中のBIOS番号を獲得する。S62BIOSSW124の次回起動時に起動するBIOS番号と、CurrentSW122の現在稼動中のBIOS番号とが一致しているかを判定する。一致していない場合には、停電後の復電時等、次回に指定したBIOSで起動していないため、冗長化処理を行わず、終了する。S64BIOS番号が一致している場合には、RSP34,44の待機BIOS版数126が無効かをチエックする。待機BIOS版数が無効である場合には、待機BIOSが異常なため、ステップS68の冗長化に進む。S66待機BIOSが無効でない場合には、稼動中と待機中の両BIOSの版数を比較し、一致するかを判定する。一致する場合には、両BIOSの版数が同じであるから、冗長化は必要なく、終了する。S68一致しない場合には、冗長化が必要であり、稼動中BIOSImageを、待機側のBIOSフラッシュメモリにフラッシュライトする。このときに、ライトするBIOSROMImageは、現在稼動中のBIOSフラッシュROMのデータを使用する。そして、RSP34,44のNVRAMの待機BIOS版数を設定し、待機側を有効化し、冗長化処理を終了する。図10乃至図12は、その動作説明図である。図10に示すように、図6の処理により、メモリ15、25に、転送BIOSが書き込まれる。図6でフラッシュライトが許可されると、図11に示すように、図7の処理で、メモリ15、25の転送BIOSが、待機側のBIOSフラッシュROM32,42に書き込まれる。そして、図12に示すように、コントローラの起動時には、図8の処理により、待機側が起動され、稼動中のBIOSフラッシュROM33,43は、待機側となる。又、図9の処理により、稼動中に変更されたBIOSフラッシュROM32,42のBIOSが、待機中に変更されたBIOSフラッシュROM33,43に書き込まれる。又、ステップS68のBIOS冗長化時に、フラッシュライトエラーが発生した場合には、コントローラの動作自体には問題がないため、レデイで起動するが、エラーが発生したコントローラの状態を予防保守が必要な状態にする状態ランプはOrange。更に、エラーが発生したBIOSフラッシュROMへの自動切り換えを行なわないように、待機側を有効化しない。更に、BIOSアップデート後の再起動で、BIOSが正常に起動しない場合新BIOSが正常に起動しなかった場合には、自動でBIOSフラッシュROMを切り換えることはせず、フロントパネルを使用して古い版数のBIOSに切り替えを行う。起動しないことで、ユーザは、新しいBIOSが正常に起動しなかったことがわかる。更に、通常の運用においては、2つのBIOSフラッシュROMの片方のフラッシュROMが異常になった場合でも,もう一方のフラッシュROMでBIOSが起動できる。この切り替え方法として、ユーザインタフェイスからの指示により、BIOSフラッシュROMを切り換える。又、自動切換えの方法としては、RSP34,44が、BIOSのBootblock処理中にHeartBeatErrorBIOSからの応答なしを検出し、BIOSフラッシュROMを切り替える。ただし,BIOSフラッシュROMを切替えるのは,待機側のBIOSが使用可能有効である場合のみで、使用不可能な場合は、切替えを行わず、デグレードさせる。切り替え発生後、BIOS処理が終了し,ファームウェアまで起動することができれば、図9で説明したBIOS冗長化処理が実行される。[CM間のBIOS同期化処理]次に、図1のように、2つのコントローラを搭載した場合に、図1に示したCMCentralizedModule間のBIOS同期化処理を説明する。例えば、図14に示すように、コントローラ2のCM2が、障害を起こし、CM2’に交換した場合に、コントローラ1のCM1とコントローラ2のCM2’とで、BIOSの同期化を行い、CM交換時のBIOS版数の食い違いをなくす。SlaveCM例えば、コントローラ2のCMのBIOSをアップデートした場合は、自動で再起動し、新しいBIOSで起動する。MasterCM例えば、コントローラ1のCMのBIOSをアップデートした場合は、自動Rebootを行わず,ユーザにこのことを通知する。図13は、このCM間のBIOS同期処理フロー図である。S70マスタCMが、BIOS同期化処理を開始する。先ず、スレーブCMのBIOS版数を獲得する。S72マスタCMは、マスタCMのBIOS版数とスレーブCMのBIOS版数とを比較する。一致する場合には、BIOS同期化が不要のため、終了する。S74比較により、マスタCMのBIOS版数がスレーブCMのBIOS版数より小さい、即ち、マスタCMのBIOSが古い場合には、マスタCMのBIOSアップデートが必要である。先ず、マスタCMは、スレーブCMに、BIOSデータの転送を要求する。S76スレーブCMでは、スレーブCMの稼動中のBIOSフラッシュROMからBIOSをリードし、マスタCMへ転送する。S78マスタCMでは、転送されたBIOSを待機側のBIOSフラッシュROMにライトする。これにより、古い版数のBIOSがアップデートされる。S80マスタCMは、BIOSのライトが成功したかを判定し、成功した場合には、ユーザに、BIOSがアップデートされ、再起動が必要なことを通知する。従って、再起動により、BIOSアップデートが完了する。逆に、BIOSライトが失敗した場合には、マスタCMの待機側BIOSフラッシュROMが、異常なため、マスタCMを予防保守対象にし、異常をユーザに通知する。S82逆に、ステップS72の比較により、マスタCMのBIOS版数がスレーブCMのBIOS版数より大きい、即ち、マスタCMのBIOSが新しい場合には、スレーブCMのBIOSアップデートが必要である。先ず、マスタCMは、マスタCMの稼動中のBIOSフラッシュROMからBIOSをリードし、スレーブCMへ転送する。S84スレーブCMでは、転送されたBIOSを待機側のBIOSフラッシュROMにライトする。これにより、古い版数のBIOSがアップデートされる。更に、ライト結果をマスタCMに通知する。S86マスタCMは、通知結果からBIOSのライトが成功したかを判定し、成功した場合には、スレーブCMが再起動され、BIOSアップデートが完了する。逆に、BIOSライトが失敗した場合には、スレーブマスタCMの待機側BIOSフラッシュROMが、異常なため、スレーブCMを予防保守対象にし、異常をユーザに通知する。このようにして、CM間で新しいBIOSに同期化される。[他の実施の形態]前述の実施の形態では、図1のような冗長構成のRAIDで説明したが、これ以外の冗長構成のストレージシステムに適用できる。又、物理デイスクは、磁気デイスク、光デイスク、光磁気デイスク、各種のストレージデバイスを適用できる。又、ストレージシステムの適用を説明したが、ストレージに限らず、他のコントローラやデータ処理装置に適用できる。更に、2つのCMの例で説明したが、1つのCMでも適用でき、BIOSの格納に、フラッシュメモリを使用したが、他の不揮発性な書き換え可能なメモリを使用できる。以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。付記1OSがハードウェアを使用できる環境に、前記ハードウェアを設定するBIOSを、各々格納する一対のメモリの一方を稼動中、他方を待機に使用するステップと、前記一方のメモリのBIOSがブート不能である時に、前記待機中のメモリのBIOSに切り換えるステップと、前記BIOSのアップデートを前記待機中のメモリへの書込みにより実行するステップとを有することを特徴とするBIOSの冗長管理方法。付記2前記待機中のメモリへの前記BIOSのアップデートが成功した時に、前記待機中のメモリを前記稼動中に切り換えることを許可するステップを更に有することを特徴とする付記1のBIOSの冗長管理方法。付記3前記ハードウェアの起動時に、前記許可された待機中のメモリを稼動中に、前記稼動中のメモリを前記待機中に切り換えるステップを更に有することを特徴とする付記2のBIOSの冗長管理方法。付記4前記切り換え後、前記稼動中に切り換えられたメモリのBIOSを、前記待機中に切り換えられたメモリに、書込み、冗長化するステップを更に有することを特徴とする付記3のBIOSの冗長管理方法。付記5前記待機中のメモリへの前記BIOSのアップデートが失敗した時に、前記待機中のメモリを前記稼動中に切り換えることを防止するステップを更に有することを特徴とする付記1のBIOSの冗長管理方法。付記6前記待機中に切り換えられたメモリへの前記BIOSの書込みが失敗した時に、前記待機中に切り替えられたメモリを前記稼動中に切り換えることを防止するステップを更に有することを特徴とする付記4のBIOSの冗長管理方法。付記7前記ハードウェアの起動が復電である場合には、前記切り換えの実行を防止することを特徴とする付記3のBIOSの冗長管理方法。付記8前記ハードウェアの起動が復電である場合には、前記冗長化の実行を防止することを特徴とする付記4のBIOSの冗長管理方法。付記9前記ハードウェアの前記待機中のメモリのBIOSアップデートに応じて、前記ハードウェアと接続された他のハードウェアの待機中のメモリのBIOSアップデートを実行するステップを更に有することを特徴とする付記1のBIOSの冗長管理方法。付記10前記ハードウェアと接続された他のハードウェアとのBIOSの同期化処理を行うステップを更に有することを特徴とする付記1のBIOSの冗長管理方法。付記11CPUを含むハードウェアと、OSが前記ハードウェアを使用できる環境に、前記ハードウェアを設定するBIOSを、各々格納する一対のメモリと、前記ハードウェアの起動時に、前記一対のメモリの一方を稼動中、他方を待機に使用し、前記一方のメモリのBIOSがブート不能である時に、前記待機中のメモリのBIOSに切り換えるサービスプロセッサとを有し、前記CPUは、前記BIOSのアップデートを前記待機中のメモリへの書込みにより実行することを特徴とするデータ処理装置。付記12前記サービスプロセッサは、前記待機中のメモリへの前記BIOSのアップデートが成功した時に、前記待機中のメモリを前記稼動中に切り換えることを許可することを特徴とする付記11のデータ処理装置。付記13前記サービスプロセッサは、前記ハードウェアの起動時に、前記許可された待機中のメモリを稼動中に、前記稼動中のメモリを前記待機中に切り換えることを特徴とする付記12のデータ処理装置。付記14前記CPUは、前記切り換え後、前記稼動中に切り換えられたメモリのBIOSを、前記待機中に切り換えられたメモリに、書込み、冗長化することを特徴とする付記13のデータ処理装置。付記15前記CPUは、前記待機中のメモリへの前記BIOSのアップデートが失敗した時に、前記待機中のメモリを前記稼動中に切り換えることを防止することを特徴とする付記11のデータ処理装置。付記16前記CPUは、前記待機中に切り換えられたメモリへの前記BIOSの書込みが失敗した時に、前記待機中に切り換えられたメモリを前記稼動中に切り換えることを防止することを特徴とする付記14のデータ処理装置。付記17前記ハードウェアと接続された他のハードウェアを更に有し、前記ハードウェアの前記待機中のメモリのBIOSアップデートに応じて、前記ハードウェアと接続された他のハードウェアの待機中のメモリのBIOSアップデートを実行することを特徴とする付記11のデータ処理装置。付記18前記ハードウェアは、前記ハードウェアと接続された他のハードウェアとのBIOSの同期化処理を行うことを特徴とする付記11のデータ処理装置。付記19CPUを含むハードウェアと、OSが前記ハードウェアを使用できる環境に、前記ハードウェアを設定するBIOSを、各々格納する一対のメモリと、前記ハードウェアの起動時に、前記一対のメモリの一方を稼動中、他方を待機に使用し、前記一方のメモリのBIOSがブート不能である時に、前記待機中のメモリのBIOSに切り換えるサービスプロセッサとを有するストレージ制御装置と、前記ストレージ制御装置に接続された複数のストレージ装置とを有し、前記ストレージ制御装置の前記CPUは、前記BIOSのアップデートを前記待機中のメモリへの書込みにより実行することを特徴とするストレージシステム。付記20前記ストレージ制御装置の前記サービスプロセッサは、前記待機中のメモリへの前記BIOSのアップデートが成功した時に、前記待機中のメモリを前記稼動中に切り換えることを許可することを特徴とする付記19のストレージシステム。付記21前記ストレージ制御装置の前記サービスプロセッサは、前記ハードウェアの起動時に、前記許可された待機中のメモリを稼動中に、前記稼動中のメモリを前記待機中に切り換えることを特徴とする付記20のストレージシステム。付記22前記ストレージ制御装置の前記CPUは、前記切り換え後、前記稼動中に切り換えられたメモリのBIOSを、前記待機中に切り換えられたメモリに、書込み、冗長化することを特徴とする付記21のストレージシステム。付記23前記ストレージ制御装置の前記CPUは、前記待機中のメモリへの前記BIOSのアップデートが失敗した時に、前記待機中のメモリを前記稼動中に切り換えることを防止することを特徴とする付記19のストレージシステム。付記24前記ストレージ制御装置の前記CPUは、前記待機中に切り換えられたメモリへの前記BIOSの書込みが失敗した時に、前記待機中に切り替えられたメモリを前記稼動中に切り換えることを防止することを特徴とする付記22のストレージシステム。付記25前記ストレージ装置及び前記ストレージ制御装置に接続され、前記ストレージ装置を制御する他のストレージ制御装置を更に有し、前記ストレージ制御装置の前記待機中のメモリのBIOSアップデートに応じて、前記他のストレージ制御装置の待機中のメモリのBIOSアップデートを実行することを特徴とする付記19のストレージシステム。付記26前記ストレージ装置及び前記ストレージ制御装置に接続され、前記ストレージ装置を制御する他のストレージ制御装置を更に有し、前記ストレージ制御装置は、前記他のストレージ制御装置とのBIOSの同期化処理を行うことを特徴とする付記19のストレージシステム。"