(57)【要約】【課題】 情報処理システムの起動プロセス中にブートブロックが何らかの原因で壊れていてもシステムを支障なく起動させる装置および方法を提供する。【手段】情報処理システムは、ブート可能でＢＩＯＳプログラムをそれぞれ含む複数のＲＯＭイメージを格納する書き換え可能なＲＯＭと、複数のＲＯＭイメージの各ＲＯＭイメージのデータ内容を比較する比較回路と、該比較回路での各ＲＯＭイメージのデータ内容の比較結果の出力により、正常なＲＯＭイメージに切り替えるアドレス切り替え器とを備え、正常なＲＯＭイメージを用いてシステムを起動させる。さらに、壊れているＲＯＭイメージを正常なＲＯＭイメージで書き換えて次の起動に備える。
2008075646.tif 000002
【特許請求の範囲】
【請求項１】
複数のＢＩＯＳ（基本入出力システム）プログラムを有する情報処理システムであって、
ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む記憶手段と、
前記記憶手段に結合され、前記記憶手段から出力される前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのイメージ内容を比較するための比較手段と、
前記比較手段に結合され、前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムによって前記システムを起動するように、最初に前記第１のＲＯＭイメージを選択し、前記比較手段の比較結果において前記イメージ内容が異なる場合には選択された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージに切り替える切り替え手段と、
を備える情報処理システム。
【請求項２】
前記切り替え手段に結合され、該切り替え手段がＲＯＭイメージを切り替えたことに応答して、前記システムをリセットするシステムリセット手段をさらに備える、請求項１記載の情報処理システム。
【請求項３】
前記記憶手段と前記切り替え手段に結合され、前記記憶手段から出力される前記第１および第２のＲＯＭイメージ内の誤りデータパターンを検出し、検出結果を前記切り替え手段に入力する、誤りデータパターン検出手段をさらに備える、請求項１記載の情報処理システム。
【請求項４】
前記誤りデータパターン検出手段によって、前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのうちの一方のＲＯＭイメージに誤りデータパターンが検出された場合に、前記切り替え手段が他方のＲＯＭイメージに切り替える、請求項３記載の情報処理システム。
【請求項５】
前記比較手段が排他的論理和回路であり、前記切り替え手段が各ＲＯＭイメージのアドレスを切り替えるアドレス切り替え器である、請求項１記載の情報処理システム。
【請求項６】
前記記憶手段がフラッシュＲＯＭであり、前記第１のＲＯＭイメージと前記第２のＲＯＭイメージが１つのフラッシュＲＯＭ内に格納される、あるいは別個のフラッシュＲＯＭにそれぞれ格納される、請求項１記載の情報処理システム。
【請求項７】
複数のＢＩＯＳ（基本入出力システム）プログラムを有する情報処理システムであって、
ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のＲＯＭイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納する第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のＲＯＭイメージ対とを含む記憶手段と、
前記記憶手段から出力される前記第１のＲＯＭイメージ対を受け取るように前記記憶手段に結合され、前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージを比較するための第１の比較手段と、
前記記憶手段から出力される前記第２のＲＯＭイメージ対を受け取るように前記記憶手段に結合され、前記第３のＲＯＭイメージおよび前記第４のＲＯＭイメージを比較するための第２の比較手段と、
前記第１の比較手段および前記第２の比較手段に結合され、前記第１の比較手段および前記第２の比較手段からの比較結果のそれぞれの入力に基づいて、各ＲＯＭイメージが同じイメージ内容を有するＲＯＭイメージ対を選択するための切り替え手段であって、前記第１のＲＯＭイメージ対に含まれる一方のＲＯＭイメージのＢＩＯＳプログラムによって前記システムを起動するように、最初に前記第１のＲＯＭイメージ対を選択し、前記第１の比較手段の比較結果において前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのイメージ内容が異なる場合には前記第２のＲＯＭイメージ対に切り替える切り替え手段と、
前記切り替え手段に結合され、切り替えが行われたことに応答して前記システムをリセットするシステムリセット手段と、
を備える情報処理システム。
【請求項８】
前記切り替え手段が選択されているＲＯＭイメージ対に対応する番号をカウントするためのカウンタを備える、請求項７記載の情報処理システム。
【請求項９】
前記第１の比較手段の比較結果において前記イメージ内容が同じ場合には前記第１のＲＯＭイメージ対のうち、前記第１のＲＯＭイメージに格納されたＢＩＯＳプログラムで前記システムの起動処理を行い、前記第２のイメージ対の前記第３のＲＯＭイメージおよび前記第４のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるように前記システムを制御するＣＰＵをさらに備える、請求項７記載の情報処理システム。
【請求項１０】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、
前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、
前記比較において、前記イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出するステップと、
前記第１のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージに切り替え、前記システムをリセットし、前記第２のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動するステップと、
前記誤りデータパターンが検出された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージで書き換えるステップと、
を含む方法。
【請求項１１】
前記比較するステップで、前記イメージ内容が同じである場合、前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記起動するステップを続ける、請求項１０記載の方法。
【請求項１２】
前記第２のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるステップをさらに含む、請求項１０記載の方法。
【請求項１３】
前記誤りデータパターンが前記第１および第２のＲＯＭイメージで検出されない場合はシステムエラーの表示を行うステップをさらに含む、請求項１０記載の方法。
【請求項１４】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対とを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、
前記第１のＲＯＭイメージ対の前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、
前記比較において、前記イメージ内容が異なる場合は、前記第２のＲＯＭイメージ対に切り替え、前記システムをリセットし、前記第２のＲＯＭイメージ対のうちの前記第３のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、該イメージ内容が同じ場合は、前記第１のＲＯＭイメージおよび第２のＲＯＭイメージを前記第３のＲＯＭイメージで書き換えるステップと、
を含む方法。
【請求項１５】
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する前記ステップにおいて、前記第１および第２のＲＯＭイメージの前記イメージ内容が同じで、かつ前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較する前記ステップにおいて、前記第３および第４のＲＯＭイメージの前記イメージ内容が異なる場合には、前記第３および第４のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるステップをさらに含む、請求項１４記載の方法。
【請求項１６】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、
前記第１のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動する手順と、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、
前記比較において、前記イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出する手順と、
前記第１のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージに切り替え、前記システムをリセットし、前記第２のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動する手順と、
前記誤りデータパターンが検出された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージで書き換える手順と、
を前記コンピュータに実行させるためのプログラム。
【請求項１７】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対を含む前記情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、
前記第１のＲＯＭイメージ対の前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動する手順と、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、
前記比較において、前記イメージ内容が異なる場合は、前記第２のＲＯＭイメージ対に切り替え、前記システムをリセットし、前記第２のＲＯＭイメージ対のうちの前記第３のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動する手順と、
前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、前記イメージ内容が同じ場合は、前記第１のＲＯＭイメージおよび第２のＲＯＭイメージを前記第３のＲＯＭイメージで書き換える手順と、
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ他の情報処理システムに関するものであり、特に起動時に初期化などを行う基本入出力システム（ＢＩＯＳ）プログラムを格納するＲＯＭ（リード・オンリー・メモリ）イメージを複数有する情報処理システムに関する。
【背景技術】
【０００２】
ＢＩＯＳ（Basic Input Output System:基本入出力システム）プログラムは、一般に各種デバイスの初期化やオペレーティングシステム（ＯＳ）のロードなどを行うＢＩＯＳ本体（コアブロック）と、コンピュータの電源オンやリセット時の直後に起動し、ＢＩＯＳ本体の巡回冗長検査、すなわちＣＲＣチェック（CyclicRedundancy Check）などを行って誤り検出を行い、問題がなければ制御をＢＩＯＳ本体に戻すブートブロック（Boot Block）とから構成される。ＢＩＯＳプログラムが正常に動作をしないとコンピュータの起動ができなくなるので、これに対処するためにいくつかの構成が採用されている。【０００３】
一般的に、ＣＰＵ（中央演算処理装置）はプログラム・カウンタ（ProgramCounter：ＰＣ) に設定されているアドレスより命令を読み込み実行する。電源投入時、プログラム・カウンタは初期値に設定されており、通常は、ＲＯＭ（リード・オンリー・メモリ）上の初期化コードの先頭を指している。なお、近年ではＲＯＭに書き込み可能なフラッシュＲＯＭを使うことが多く、この場合プログラムに問題が発生した際にもフラッシュＲＯＭを外すことなく書き換えることができるというメリットがある。【０００４】
フラッシュＲＯＭの初期化コードは、それ自体が破損したり消去されたりした場合、システムの起動ができなくなるため、フラッシュＲＯＭ上でもブートブロック（Boot Block） として特別に扱われ書き換えは極力制限される。そのため、一般的に ブートブロックに収められている初期化コードは、機能ブロック（FunctionBlock）とは独立して動くようにプログラムされており、初期化コードはシステムの初期化が終了した時点で機能ブロックに制御を移し通常の処理を行う。【０００５】
ブートブロックを有するフラッシュＲＯＭの一例を図１２に示す。一般的にブートブロックはメモリアドレスの０番地から配置され、機能ブロックはそれ以後に配置される。この配置は、情報処理（コンピュータ）システムに用いるＣＰＵの種類によって異なる場合がある。図１２の（ａ）、図１２（ｂ）の例ではブートブロックはそれぞれ１つしかない。しかし、機能ブロックは図１２（ａ）に示す例は１つ、図１２（ｂ）に示す例は２つある。機能ブロックが複数、例えば、図１２（ｂ）のように２つある場合は、機能ブロック１には新しい機能コード（function code）が、機能ブロック２にはその一つ前の時点の機能コードが入っている。次に書き換える時には、機能ブロック２の古い方のブロックを書き換える。これはもし機能ブロック２の方に入れた機能コードが何らかの問題で書き換えに失敗した場合でも、残っている機能ブロック１の機能コードを用いてＣＰＵを動作させることができるためである。しかし、ブートブロックについては、この機能ブロックのように複数持つことができない。これはＣＰＵがリセットされた後に起動される場合に、最初に０番地から動作しようとするため、この場所にブートブロックを配置する必要があるためである。すなわち、ブートブロックは基本的に１箇所しか配置できない。【０００６】
図１２に示すフラッシュＲＯＭを用いる情報処理システムでは次の問題がある。すなわち、ブートブロックにある初期化コードは、電源投入時に実行されるプログラムであるため、プログラム・カウンタが指すアドレス（基本的には０番地）から実行される必要がある。しかし、ＲＯＭにはブートブロックは１つしかないため、ＲＯＭの内容が何らかの原因で壊れた場合にはシステムが起動できなくなる。初期化コードが入っているブートブロックに障害が発生した場合、そのＲＯＭ自体を取り外し、正常なブートブロックを有するＲＯＭを再実装する必要がある。この作業は時間とコストがかかる。【０００７】
以上の問題を解決するために、複数のＢＩＯＳプログラムを格納するための複数のＲＯＭイメージを準備し、これらを切り替える方法として幾つかの方法が開示されている。たとえば特許文献１では、２つのＲＯＭ領域（ＢＩＯＳ  ＲＯＭＡ、ＢＩＯＳ  ＲＯＭＢ）とその２つのＲＯＭを選択的にアクセス可能とするアドレス切り替え回路を持つシステムにおいて、書き換え時のエラーまたは起動時におけるチェックサム（check sum）を利用してその２つのＲＯＭ領域のうちの１つのＲＯＭ領域が不完全であると検知した場合にのみ、ブートブロックによってアドレス切り替え器の状態を変更し問題の無いもう一方のＲＯＭ領域を起動させる方法が開示されている。しかしながら、この方法ではブートブロック自体に問題があった場合に、ＲＯＭ領域を切り替えることができないという問題がある。【０００８】
さらに特許文献２では、フラッシュＲＯＭに２つのＢＩＯＳプログラム（ＢＩＯＳ本体とブートブロックを含む）、言い換えれば複数のＲＯＭイメージを格納し、この複数のＲＯＭイメージを選択的にアクセス可能とするアドレス切り替え器およびＷＤＴ(ウオッチドックタイマ）を用いる。もし通常起動するＲＯＭイメージに問題があり、ブートブロック内の初期化コードが起動できなくても、ＷＤＴによって問題を検知し問題の無いＲＯＭイメージのＢＩＯＳプログラムを起動させる。この場合、ＷＤＴが周期的に動作するまでの間にＲＯＭに意図しない書き換えが発生した場合に、システムが起動しなくなる可能性がある。【０００９】
特許文献３では、フラッシュＲＯＭに格納された２つのＢＩＯＳデータ・ブロック（ブートブロックとコアブロックを含む）を有し、不揮発性メモリ（ＮＲＡＭ）に格納されている情報に基づいて、該フラッシュＲＯＭ内の２つのＢＩＯＳプログラムのアドレスを切り替えるアドレス変換部をさらに備える。ＮＲＡＭに格納されるどちらのＢＩＯＳデータで立ち上がっているかを示すＶａｌｉｄフラグおよび書き換えが正常に終了したことを示すＵｐｄａｔｅフラグを用いて、どちらのＢＩＯＳデータを書き換えるかを決める。すなわち読み込みを行うＢＩＯＳデータと書き換えを行うＢＩＯＳデータを区別することにより、次回の起動時にＢＩＯＳデータの書き換えに失敗してもシステムが正常に起動することを目的としている。この場合、ブートブロック内に有効なＢＩＯＳブロックを判別するプログラムを含むため、書き換えできないブートブロックに不具合があるとシステムが起動しなくなる可能性がある。【００１０】
メモリ装置の異常検出については、特許文献４では、複数のメモリブロックを有するＲＡＭ（ランダム・アクセス・メモリ）の各メモリブロックの同一箇所に同時にデータの読み出し書き込みの制御を行い、この制御によって複数のメモリブロック各々の同一箇所から読み出されたデータが同一か否かを排他的論理和回路からの演算結果から判定することによって異常検出を行うことで異常検出のための処理時間を短くできることが開示されている。同様に特許文献５では、複数のＲＡＭを割り当てた記憶装置において、多数決論理回路と排他的論理和回路を用いて、エラーが発生した箇所のＲＡＭのデータについて多数決をもって判断する方法を開示している。これらはＲＡＭへの適用しかできず、またＲＡＭの数が奇数である必要があり、さらに常に正しいデータを奇数（少なくとも３つ）のＲＡＭに入れる必要がある。
【特許文献１】特開２０００−１４８４６７号公報
【特許文献２】特開２００４−０３８５２９号公報
【特許文献３】特開２０００−１６３２６８号公報
【特許文献４】特開平５−２８０５６号公報
【特許文献５】特開昭６１−６１２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、情報処理システムの起動時においてＲＯＭに格納されるＢＩＯＳプログラムのブートブロックが何らかの原因で壊れるあるいは障害が発生した場合でも、システムを支障なく起動できるようにすることを目的とする。【００１２】
本発明の別の目的は、システム起動時に障害の発生したＲＯＭ内のＲＯＭイメージを正しいＲＯＭイメージに書き換え、壊れたＲＯＭイメージをリカバリ（回復）できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、複数の同じＲＯＭイメージを有し、複数のＲＯＭイメージのイメージ内容が同じかどうかチェックするための比較回路（たとえば排他的論理和（ＸＯＲ）回路）とＲＯＭイメージ（のアドレス）を切り替える切り替え器とを用いて、ブートブロック等が壊れたＲＯＭイメージから他の正常なＲＯＭイメージへ切り替えてシステムを起動させるための情報処理システムおよび起動方法を提供する。さらに、壊れたＲＯＭイメージを正常なＲＯＭイメージに書き換えてリカバリさせるための情報処理システムおよびその方法を提供する。【００１４】
本発明の情報処理システムは、複数の基本入出力システム（ＢＩＯＳ）プログラムを有し、ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む記憶手段と、記憶手段に結合され、記憶手段から出力される第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するための比較手段と、比較手段に結合され、第１のＲＯＭイメージのＢＩＯＳプログラムによってシステムを起動するように、最初に第１のＲＯＭイメージを選択し、比較手段の比較結果においてイメージ内容が異なる場合には選択された前記第１のＲＯＭイメージを第２のＲＯＭイメージに切り替える切り替え手段と、を備える。
好ましくは、比較手段は排他的論理和回路であり、切り替え手段は各ＲＯＭイメージのアドレスを切り替えるアドレス切り替え器である。さらに好ましくは、記憶手段は各ＲＯＭイメージのデータ内容を出力するためのプログラム・コードをさらに格納する。【００１５】
本発明の情報処理システムは、データ内容が異なる場合に、どちらのＲＯＭイメージが壊れているかを検出するために、第１および第２のＲＯＭイメージ内の誤りデータパターンを検出し、検出結果を前記切り替え手段に入力するための誤りデータパターン検出手段をさらに備える。この誤りデータパターン検出手段によって、第１のＲＯＭイメージおよび第２のＲＯＭイメージのうちの一方のＲＯＭイメージに誤りデータパターンが検出された場合に、切り替え手段が他方のＲＯＭイメージに切り替える。【００１６】
さらに好ましくは、記憶手段はフラッシュＲＯＭであり、第１のＲＯＭイメージと第２のＲＯＭイメージが１つのフラッシュＲＯＭ内に格納される、あるいは別個のフラッシュＲＯＭにそれぞれ格納される。【００１７】
別の実施形態による本発明の情報処理システムは、複数の基本入出力システム（ＢＩＯＳ）プログラムを有し、ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のＲＯＭイメージ対と、該ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納する第３のＲＯＭイメージと第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のＲＯＭイメージ対とを含む記憶手段と、記憶手段から出力される第１のＲＯＭイメージ対を受け取るように記憶手段に結合され、第１のＲＯＭイメージおよび第２のＲＯＭイメージを比較するための第１の比較手段と、記憶手段から出力される第２のＲＯＭイメージ対を受け取るように記憶手段に結合され、第３のＲＯＭイメージおよび第４のＲＯＭイメージを比較するための第２の比較手段と、第１の比較手段および第２の比較手段に結合され、第１の比較手段および第２の比較手段からの比較結果のそれぞれの入力に基づいて、各ＲＯＭイメージが同じイメージ内容を有するＲＯＭイメージ対を選択するための切り替え手段であって、第１のＲＯＭイメージ対に含まれる一方のＲＯＭイメージのＢＩＯＳプログラムによってシステムを起動するように、最初に第１のＲＯＭイメージ対を選択し、第１の比較手段の比較結果において第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容が異なる場合には第２のＲＯＭイメージ対に切り替える切り替え手段と、切り替え手段に結合され、切り替えが行われたことに応答してシステムをリセットするシステムリセット手段と、を備える。【００１８】
さらに、第１の比較手段の比較結果においてイメージ内容が同じ場合には第１のＲＯＭイメージ対のうち、第１のＲＯＭイメージに格納されたＢＩＯＳプログラムでシステムの起動処理を続行し、第２のイメージ対の第３のＲＯＭイメージおよび第４のＲＯＭイメージを第１のＲＯＭイメージで書き換えるようにシステムを制御するＣＰＵを備える。
好ましくは、記憶手段は、さらに第１のＲＯＭイメージ対と第２のＲＯＭイメージ対の各々のデータ内容を出力するためのプログラム・コードを格納する。さらに好ましくは、切り替え手段は選択されているＲＯＭイメージ対に対応する番号をカウントするためのカウンタを備える。【００１９】
本発明の一実施形態は、ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、第１のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動するステップと、第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、比較において、イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出するステップと、第１のＲＯＭイメージにおいて誤りデータパターンを検出した場合は、第２のＲＯＭイメージに切り替え、システムをリセットし、第２のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動するステップと、誤りデータパターンが検出された第１のＲＯＭイメージを第２のＲＯＭイメージで書き換えるステップと、を含む。【００２０】
好ましくは、本発明による方法は、第２のＲＯＭイメージにおいて誤りデータパターンを検出した場合は、第２のＲＯＭイメージを第１のＲＯＭイメージで書き換えるステップを含む。また、誤りデータパターンが第１および第２のＲＯＭイメージで検出されない場合はシステムエラーの表示を行うステップをさらに含む。【００２１】
本発明の別の実施形態は、ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、該ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対とを含む情報処理システムにおいて、情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、前記第１のＲＯＭイメージ対の前記第１のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動するステップと、第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、比較において、イメージ内容が異なる場合は、第２のＲＯＭイメージ対に切り替え、システムをリセットし、第２のＲＯＭイメージ対のうちの第３のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動するステップと、第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、そのイメージ内容が同じ場合は、第１のＲＯＭイメージおよび第２のＲＯＭイメージを第３のＲＯＭイメージで書き換えるステップと、を含む。【００２２】
さらに、本方法は、第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップにおいて、第１および第２のＲＯＭイメージのイメージ内容が同じで、かつ第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較するステップにおいて、第３および第４のＲＯＭイメージのイメージ内容が異なる場合には、第３および第４のＲＯＭイメージを第１のＲＯＭイメージで書き換えるステップをさらに含む。【００２３】
本発明は、ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、第１のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動する手順と、第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、比較において、イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出する手順と、第１のＲＯＭイメージにおいて誤りデータパターンを検出した場合は、第２のＲＯＭイメージに切り替え、システムをリセットし、第２のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動する手順と、誤りデータパターンが検出された第１のＲＯＭイメージを第２のＲＯＭイメージで書き換える手順と、をコンピュータに実行させるためのプログラムを含む。【００２４】
さらに本発明は、ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、該ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対とを含む情報処理システムにおいて、情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、第１のＲＯＭイメージ対の第１のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動する手順と、第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、比較において、イメージ内容が異なる場合は、第２のＲＯＭイメージ対に切り替え、システムをリセットし、第２のＲＯＭイメージ対のうちの第３のＲＯＭイメージのＢＩＯＳプログラムでシステムを起動する手順と、第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、該イメージ内容が同じ場合は、第１のＲＯＭイメージおよび第２のＲＯＭイメージを第３のＲＯＭイメージで書き換える手順と、をコンピュータに実行させるためのプログラムを含む。
【発明を実施するための最良の形態】
【００２５】
図１に本発明による、ＢＩＯＳプログラムを格納するＲＯＭイメージに障害があった場合にも正常に起動を行い、さらに壊れたＲＯＭイメージをリカバリ（回復）し得る、起動／リカバリ機能を有する情報処理システム１００を示す。該情報処理システム１００は、ＣＰＵ（中央処理装置）１０２、ＢＩＯＳプログラムをそれぞれ格納する複数のＲＯＭイメージを含むＲＯＭ（リード・オンリ・メモリ）２００、ＲＡＭ（ランダム・アクセス・メモリ）および不揮発性ＲＡＭ（ＮＶＲＡＭ）を含むメモリ１０６、本発明による起動／リカバリ機構３００を含み、これらは全てシステム・バス１１２に接続されている。起動／リカバリ機構３００の詳細については後述する。不揮発性ＲＡＭはシステム１００の電源を遮断した後でも格納した情報を保持することができる。その他、システム・バス１１２には入出力コントローラであるディスプレイ・コントローラ１２２を介して外部ディスプレイ１２４、あるいはハードディスク・ドライブ（ＨＤＤ）コントローラ１２６を介して補助記憶装置としてのハードディスク・ドライブ（ＨＤＤ）１２８も接続される。ＲＯＭ２００やＨＤＤ１２８などの記憶媒体には、オペレーティングシステム（ＯＳ）と協働してＣＰＵ１０２に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードや各種のデータが記録することができる。さらに、システム・バス１１２は通信アダプタ１３２を介して通信ネットワーク１３４に接続することも可能である。【００２６】
情報処理システム１００の電力投入時に、ＣＰＵ１０２はその動作パラメータ（その多くは、メモリ１０６に格納されている）をセットし、メモリ１０６を初期化し、システムの構成要素（コンポーネント）の検査及び初期化を行い、通常のユーザ動作を開始する前に、オペレーティング・システムをブートする。電力が情報処理システム１００に供給されると、システム・プロセッサであるＣＰＵ１０２はパワーオンリセット（ＰＯＲ：Power on Reset）と呼ばれる、ＢＩＯＳプログラムの一部を実行し始める。【００２７】
ＣＰＵ１０２はメモリ１０６に書き込まれるコンピュータ・プログラムのコードに従って、情報処理システム全体の制御を行う。またＣＰＵ１０２は、起動時にＲＯＭ２００内に記憶されているＢＩＯＳプログラムのデータに従って、メモリ１０６などにアクセス可能となる。好ましくは、ＲＯＭ２００はリプログラマブルであるフラッシュＲＯＭである。フラッシュＲＯＭは、読み書きが可能でかつ電源を落としても内容が保持されるメモリであり、情報処理システムの起動時に情報処理システム（以降の説明でコンピュータ・システムとも呼ぶ）の入出力装置の設定など処理を行うＢＩＯＳデータが記憶されている。【００２８】
ＲＯＭ２００としてフラッシュＲＯＭを用いて説明する。複数（図では２つ）のＢＩＯＳプログラムを含むフラッシュＲＯＭ２００の詳細を図２に示す。フラッシュＲＯＭ内に格納され、開始アドレスを有し、実行可能なプログラム・コードおよびデータを含むデータブロック全体を「ＲＯＭイメージ」と呼ぶ。一般にＲＯＭイメージはＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭなどのメモリに格納され、ファイル、実行可能なプログラム・コード、データを含み得る。ＲＯＭ２００は、書き換え可能でブート可能な複数のＲＯＭイメージを含む。図２のＲＯＭイメージ１  ２０２およびＲＯＭイメージ２  ２０４は同じ容量で正常時には同じイメージ内容が格納される。すなわちＲＯＭイメージ２はＲＯＭイメージ１が複製されたものである。ＲＯＭ内のアドレス空間において、ＲＯＭイメージ１は開始（上位側）アドレスＡから、ＲＯＭイメージ２は開始（下位側）アドレスＢから格納されるものとする。【００２９】
図２のように、たとえばＲＯＭイメージ１  ２０２には、（１）起動時にＣＰＵ１０２に最初に読み込まれる初期設定プログラムのコードを有し、書き換え可能な擬似ブートブロック２１４（通常のブートブロックと同じ機能を果たすが、書き換えが行われる点で通常のブートプログラムとは異なるため、擬似ブートブロックと呼ぶ）と、（２）メモリ１０６などの周辺装置の初期設定データを有する機能ブロック２１６と、（３）本発明による起動／リカバリ機能を実行するためのプログラム・コード（たとえばＲＯＭイメージを比較するためのプログラム・コード）を格納する起動／リカバリ用ブロック２１８と、を備えるＢＩＯＳプログラム１  ２１０が格納される。これに対し、通常のＢＩＯＳプログラムはブートブロックと機能ブロックを含む（図１２を参照）。また、ＲＯＭイメージ２  ２０４は、ＲＯＭイメージ１  ２０２を複製したものであり、正常時にはＢＯＩＳプログラム１  ２１０と同じ内容のＢＩＯＳプログラム２  ２２０が格納される。すなわち、ＢＩＯＳプログラム２  ２２０は、擬似ブートブロック２２４、機能ブロック２２６、および起動／リカバリ用ブロック２２８を備え、正常時には各ブロックはＢＩＯＳプログラム１  ２１０の各ブロックと同じものとなる。図２では、１つのＲＯＭ内に複数のＲＯＭイメージを格納しているが、複数の別個のＲＯＭデバイスのそれぞれにＲＯＭイメージを格納してもよい。これ以降の説明においては、１つのＲＯＭ内に複数のＲＯＭイメージを格納する場合を用いる。【００３０】
図３に示すように、本発明による起動／リカバリ機構３００の基本構成は、フラッシュＲＯＭ２００から出力される複数のＲＯＭイメージを比較するための比較回路３０２と、ＲＯＭイメージのアドレスを切り替えるアドレス切り替え器３０４と、システムリセット手段３０６とを含む。以降の説明では、比較回路３０２として排他的論理和（ＸＯＲ）回路を用いて説明するが、これに限定されるわけではない。図４に示すように、起動／リカバリ機構４００は、起動時にどのＲＯＭイメージが壊れているかを検出するために、誤りデータパターン検出回路３０８を備えることが好ましい。この起動／リカバリ機構はＩＣチップ、たとえばＦＰＧＡ（FieldProgrammable Gate Array）を用いて実装することができる。【００３１】
起動／リカバリ機構３００の機能は、情報処理システムの起動時に選択された１つのＲＯＭイメージが壊れている場合（このとき比較回路において正常時は同じイメージ内容であるべき２つのＲＯＭイメージが異なると検出される）においても他のＲＯＭイメージを選択し、システムリセット手段によってシステムリセット、具体的にはＣＰＵリセットをかけて、新たに選択されたＲＯＭイメージを用いてシステムを起動し直すようにすることである。また、起動／リカバリ機構３００の別の機能は、壊れていないＲＯＭイメージに格納された起動／リカバリ・プログラムをＣＰＵによって実行して、壊れているＲＯＭイメージのデータを正常なＲＯＭイメージに置き換える、すなわちイメージ内容を複製（以降の説明でコピーとも呼ぶ）することが可能である。【００３２】
本発明の第１の実施形態による情報処理システムの構成例を図３に示す。図３のように、正常時において同じデータ内容を含む複数のＲＯＭイメージ（ＲＯＭイメージ１  ２０２およびＲＯＭイメージ２  ２０４）を有する、書き換え可能なフラッシュＲＯＭ２００を用いる。さらに、本発明によるシステムは、該ＲＯＭ２００に結合され、記憶手段であるフラッシュＲＯＭから出力される各々のＲＯＭイメージを比較するための比較回路３０２と、該比較回路３０２からの比較結果に応答して、各々のＲＯＭイメージを切り替えるためのアドレス切り替え器３０４と、アドレス切り替えすなわちＲＯＭイメージの切り替えに応答してＣＰＵにリセット（システムリセット）をかけるためのシステムリセット手段３０６とを含む起動／リカバリ機構３００を含む。好ましくは、各ＲＯＭイメージを出力するためのプログラム・コードはＲＯＭ２００に格納される。またＣＰＵ１０２がバス１１２を介してフラッシュＲＯＭ２００内の複数のＲＯＭイメージ２０２、２０４に格納されたＢＩＯＳプログラムのいずれか一方を実行するように、システムが構成されている。【００３３】
図４に示すように、本発明の第２の実施形態である情報処理システムにおける起動／リカバリ機構４００は、図３の構成に加えて各ＲＯＭイメージ２０２、２０４のどちらが壊れているかを検出するための誤りデータパターン検出回路３０８を含む。この誤りデータパターン検出回路３０８は、フラッシュＲＯＭ２００から出力される各ＲＯＭイメージ内に誤りデータパターン（たとえばＦＦデータ）があるか検出する。上記説明においては、正常な場合に、１つのＲＯＭデバイス内、たとえばフラッシュＲＯＭ内に格納される、同じＲＯＭイメージの内容を有する複数のＲＯＭイメージとして説明したが、代わりに、同じ内容のＲＯＭイメージをそれぞれ有する複数のＲＯＭデバイスを用いることも可能である。【００３４】
比較回路３０２は、たとえばＲＯＭに接続される複数の信号線を含むデータバスからのそれぞれのデータ信号の差分をとるための差分回路と、それぞれのデータの差分信号の論理和（ＯＲ）を取るＯＲ回路とから構成される。２つのＲＯＭイメージが同じデータであれば、全ての差分信号が同じ値０となり、ＯＲ回路の出力は値０となるが、２つのＲＯＭイメージのデータが異なれば、差分信号のどれかが値１となり、ＯＲ回路の出力は値１となる。すなわちＯＲ回路の出力を確認することで２つのＲＯＭイメージを比較することができる。なお、比較回路３０２には回路構成が比較的簡便な排他的論理和（ＸＯＲ）回路を用いてもよい。このとき一般的な排他的論理和回路（ＸＯＲ回路）を用いることができる。【００３５】
アドレス切り替え器３０４の一例としては、値１または値０のアドレス線Ａを選択するチップセレクト（ＣＳ）信号を出力する回路で、アウトプットピンから出力する値を反転する機能を持つ回路がある。たとえば、アウトプットピンからアドレス線Ａ（ＲＯＭイメージ１の開始アドレスを指す）として値０を出力している状態で比較回路からの信号（値１）を受けとると、アウトプットピンから出力するアドレス線Ａの値を１に変更する。ＲＯＭイメージ１およびＲＯＭイメージ２の切り替えは，これらのＲＯＭイメージに対応するアドレス線を選択するためのチップセレクト（ＣＳ）信号で制御される。動作としては、最初にＲＯＭイメージ１が選択されていた場合、このアドレス線Ａは値０となっており、ＣＳ信号はＲＯＭイメージ１を指している。しかし、アドレス切り替え器３０４は、各ＲＯＭイメージのイメージ内容が異なるために、比較回路から値１が入力されると、ＲＯＭイメージ２に切り替えるために、このアドレス線を値１にする。それによってＣＳ信号の出力がＲＯＭイメージ２を指し、切り替えが可能になる。アドレス切り替え器３０４は、例えば、比較回路からの信号を入力する毎に出力値を反転するフリップフロップ回路で実現することができる。【００３６】
システムリセット手段３０６はアドレス切り替え器３０４からのＲＯＭイメージを切り替えたことを示す信号を受け取ると、システム１００のＣＰＵ１０２にリセットをかけるためのリセット信号を発生する。【００３７】
また、アドレス切り替え器３０４からの信号に応答して、ディスプレイ・コントローラ１２２を介して外部ディスプレイ１２４などにシステムエラーなどの状況を表示するようにすることも可能である。【００３８】
図３に示す第１の実施形態である情報処理システムにおける動作を示すフローチャートを図５に示す。この動作では、壊れているＲＯＭイメージ１を正常なＲＯＭイメージ２に切り替える。これ以降の説明および図において、ＲＯＭイメージ１、ＲＯＭイメージ２などのＲＯＭイメージをＲＯＭ１、ＲＯＭ２のように省略して表す。システムの起動が正常に行われる場合においては、ＲＯＭ２  ２０４にはＲＯＭ１  ２０２と同じＢＩＯＳプログラム、言い換えれば同じデータブロックが入っているものと想定する。【００３９】
電源投入時または最初のＣＰＵリセット時、すなわちパワーオンリセット（ＰＯＲ）を行う（Ｓ５０１）と、アドレス切り替え器によってアドレスがＲＯＭ１にセットされることで、ＲＯＭ１が選択され（Ｓ５０２）、ＲＯＭ１のデータがＣＰＵに対して出力されることになる。次にＲＯＭ１およびＲＯＭ２のデータ出力が比較回路である排他的論理和（ＸＯＲ）回路に入力され、各データ出力を比較するために排他的論理和（ＸＯＲ）演算が行われ演算結果によって、次の動作が判断される（Ｓ５０３）。ＲＯＭ１から正常にＣＰＵにデータが出力されている場合、ＲＯＭ２の同じアドレスからはＲＯＭ１と同じデータがＸＯＲ回路に出力され、ＸＯＲ回路３０２の演算結果による出力は‘０’（値０）となり、正常に起動動作が続けられる（Ｓ５０５）。ステップＳ５０３において、もしＲＯＭ１のデータが壊れている場合には、ＲＯＭ１のデータとＲＯＭ２のデータとは一致しない、すなわちデータ内容が異なるために、ＸＯＲ回路３０２の出力が‘１’（値１）となり、起動エラーとして検出する。エラーを検出した場合、アドレス切り替え器３０４はＲＯＭ２のデータをＣＰＵに出力するために、すなわちＲＯＭ２のＢＩＯＳプログラムに切り替えるために、ＲＯＭ２のアドレスに切り替える（Ｓ５０４）。次に、アドレス切り替えに応答して、システムリセット手段３０６を用いてＣＰＵ１０２をリセットし、ＲＯＭ２のＢＩＯＳプログラムを用いてＣＰＵ１０２を再起動する（Ｓ５０６）。この第一の実施形態においては、ＲＯＭ１に問題があるという予想の元にＲＯＭ１のイメージ・データをＲＯＭ２のイメージ・データで書き換えることができる。すなわち、どちらのＲＯＭイメージが壊れているかの検出は行われていない。なお、最初にＲＯＭ２のイメージ・データがＣＰＵに出力される場合には、上記のＲＯＭ１とＲＯＭ２を入れ替えた動作が行われる。【００４０】
図３の構成では、障害の発生あるいは問題となったＲＯＭイメージは最初にイメージ・データを出力していたＲＯＭイメージであるという想定を前提としており、どのＲＯＭイメージに問題があるか判断ができない。このため、起動／リカバリ機構において、各ＲＯＭイメージ２０２、２０４のどちらが壊れているかを検出するための構成要素をさらに加えた、第２の実施形態である情報処理システムを図４に示す。図４において、本発明による起動／リカバリ機構４００は、比較回路によりエラーを検出した際、どのＲＯＭイメージに問題があるかを検出するために、誤りデータパターン検出回路（簡単のためにＦＦ検出回路とも呼ぶ）３０８をさらに含む。すなわち、第２の実施形態による情報処理システムは、同じイメージ内容の複数のＲＯＭイメージ２０２、２０４（ＲＯＭ１およびＲＯＭ２）を有するフラッシュＲＯＭ２００と、各々のＲＯＭイメージのイメージ内容を比較するために、フラッシュＲＯＭに結合される比較回路３０２（排他的論理和（ＸＯＲ）回路で実現可能）と、比較回路３０２からの比較（演算）結果に応答して複数（ここでは２つ）のＲＯＭイメージを切り替えるアドレス切り替え器３０４と、どのＲＯＭイメージが壊れているかを検出するための誤りデータパターン検出回路３０８と、システムリセット手段３０６とから構成される。さらにＣＰＵ１０２を含み、このＣＰＵ１０２がシステムリセット手段３０６を介してアドレス切り替え器３０４に結合されている。【００４１】
この誤りデータパターン検出回路（ＦＦ検出回路）３０８の動作の前提となるフラッシュＲＯＭ中へのデータ（プログラム・コードを含む、以降の説明でも同様）の書き込み方法について説明する。図４の構成におけるＲＯＭへのデータの書き込み方法を図６に示す。基本的には以下に示すステップが実行される。
１）現在のＲＯＭイメージの領域を消去する（Ｓ６０１）。Ｅｒａｓｅコマンドに従ってフラッシュＲＯＭはブロック単位でデータを消去される。このとき消去されたブロックは全て '1' 、すなわちＦＦとなる。
２）新たなＲＯＭイメージの初期化コードの先頭部分６１０を除いた部分をＲＯＭに書き込む。（Ｓ６０２）
３）新たなＲＯＭイメージの初期化コードの先頭部分６１０に対する正常なデータをＲＯＭに書き込む（Ｓ６０３）。【００４２】
この書き込み方法の特徴は、ＲＯＭに対するデータの書き込みに成功している場合にはデータのすべてが問題なく書き込まれる（Ｓ６０５）。しかし、もし途中で何らかの障害などにより書き込みに問題があった場合には、ＲＯＭイメージの先頭６１０に対する正常なデータが書き込まれず、ＦＦのデータが残ることになる（Ｓ６０４）。もしＦＦのデータが残っているのがＲＯＭ１（ＲＯＭイメージ１）の領域であり、ＲＯＭ２（ＲＯＭイメージ２）の領域にＦＦのデータが残っていないとすると、ＲＯＭ２には正常なデータが書かれていることがわかる。図６では、初期化コードの先頭部分６１０を除いた部分を用いて最初に書き込む例で説明したが、２つのＲＯＭ１およびＲＯＭ２のそれぞれの開始アドレスからみて同じアドレスの任意の場所６１０’でもよい。すなわち、図４の構成においてＸＯＲ回路によってエラーを検出した後、どちらのＲＯＭに問題があるかを確認するために先頭６１０あるいは任意の場所６１０’にＦＦのデータがあるかどうかを確認することにより問題となったＲＯＭイメージを特定可能となる。【００４３】
誤りデータパターン検出回路３０８は、比較回路３０２と同様に、たとえばＲＯＭに接続される複数の信号線を含むデータバスからのそれぞれのデータ信号の差分をとるための差分回路と、それぞれのデータの差分信号の論理和（ＯＲ）を取るＯＲ回路とから構成される。正常なＲＯＭイメージのデータと誤りデータパターン（たとえば０ｘＦＦ）を含むＲＯＭイメージからのデータ信号のそれぞれの差分をとり、それらの差分信号を入力されたＯＲ回路の出力が値１であれば、各ＲＯＭイメージのデー内容が異なることを示し、誤りデータパターンの検出が可能となる。【００４４】
図４に示す第２の実施形態である情報処理システムを用いる動作を示すフローチャートを図７に示す。ここでは簡単にするために、最初にＲＯＭ１のデータ（プログラム・コードを含む）がＣＰＵに出力され、ＲＯＭ１のＢＩＯＳプログラムが起動される場合を考える。電源投入時または最初のＣＰＵリセット時、すなわちパワーオンリセット（ＰＯＲ）を行う（Ｓ７０１）と、ＲＯＭ１とＲＯＭ２において初期化コードの先頭（または任意場所の同じアドレス）およびイメージがそれぞれ読み込まれる（Ｓ７０２）。次にＲＯＭ１およびＲＯＭ２のイメージ出力がＸＯＲ回路３０２に入力され、演算結果によって動作が判断される（Ｓ７０３）。ＲＯＭ１とＲＯＭ２の同じアドレスからのイメージ出力が同一である場合、すなわちＸＯＲ回路の出力が‘０’（値０）の場合は、そのまま正常に起動が行われる（Ｓ７１２）。ＸＯＲ回路３０２の出力が‘１’（値１）の場合、ＦＦ検出回路３０８によって書き込みが失敗して残存しているＦＦデータ（０ｘＦＦ）がどのＲＯＭにあるか検出する（Ｓ７０４）。ＲＯＭ１で０ｘＦＦを検出した場合、言い換えればＲＯＭ１のデータが壊れている場合には、アドレス切り替え器３０４がＲＯＭ２に切り替え（Ｓ７０６）、その後システムリセット手段３０６によってＣＰＵをリセットし（Ｓ７０７）、ＲＯＭ２で通常の起動処理を行う（Ｓ７０８）。次に正常なＲＯＭ２をデータが壊れているＲＯＭ１にコピーする、すなわちＲＯＭ２のイメージでＲＯＭ１のイメージを書き換える（Ｓ７０９）。ＦＦ検出回路３０８によって、ＲＯＭ１で０ｘＦＦを検出せずにＲＯＭ２で０ｘＦＦを検出した場合は、そのまま通常の起動処理を続ける（Ｓ７１０）。次に正常なＲＯＭ１をデータなどイメージが壊れているＲＯＭ２にコピーする（Ｓ７１１）。また、ＲＯＭ１およびＲＯＭ２においてともに０ｘＦＦを検出しない場合は、システムエラーとして、ディスプレイ・コントローラ１２２を介して外部ディスプレイ１２４などに出力する（Ｓ７０５）。
なお、最初にＲＯＭ２のデータがＣＰＵに出力される場合には、上記のＲＯＭ１とＲＯＭ２を入れ替えた動作が行われる。【００４５】
以降の説明およびフローチャート図において、ＲＯＭイメージのＢＩＯＳプログラムを用いてシステムを起動することを「ＲＯＭｘ（ｘは整数）で起動（処理）する」と、さらにあるＲＯＭイメージを別のＲＯＭイメージに複製することを、たとえば「ＲＯＭ２をＲＯＭ１にコピーする」と表現する場合があることに留意されたい。
なお、情報処理システムが動作中にＲＯＭイメージの書き込み動作以外の問題でＲＯＭイメージが壊れた場合にも問題を検知しかつ、システムリセットを行わずに正常なＲＯＭイメージへ切り替えることも可能である。【００４６】
本発明の第３の実施形態による情報処理システムを図８に示す。この第３の実施形態は図３の基本構成を拡張しかつ誤りデータパターン検出回路（ＦＦ検出回路）３０８を用いずに、正常に情報処理システムを起動させ、壊れているＲＯＭイメージをリカバリすることができる、起動／リカバリ機構８００を含む。以降の説明および図において、ＲＯＭイメージｘ（ｘは整数）をＲＯＭｘと省略して表記する。また各ＲＯＭイメージは図２に示すようなＢＩＯＳプログラムを格納している。図８のフラッシュＲＯＭ２００は、複数個（偶数個）、ここでは４つのＲＯＭイメージを含み、２つのＲＯＭイメージで１つのイメージ対を構成する。以降の説明でイメージ対の番号ｘをイメージ対（ｘ）、ｘは整数のように表す。図８のように、フラッシュＲＯＭ２００は、（１）２つの同じ容量、同じデータ内容のＲＯＭイメージである、ＲＯＭ１とＲＯＭ２のペアを有する（換言すれば、ＲＯＭ２はＲＯＭ１が複製されたものである）ＲＯＭイメージ対（１）８１０と、（２）２つの同じ容量、同じデータ内容のＲＯＭイメージである、ＲＯＭ３とＲＯＭ４のペア（換言すれば、ＲＯＭ４はＲＯＭ３が複製されたものである）を有するＲＯＭイメージ対（２）８２０とを含む。【００４７】
図８の情報処理システムは、上記フラッシュＲＯＭ２００に加えて、これらＲＯＭイメージ対８１０、８２０のＲＯＭイメージ（ＲＯＭ１とＲＯＭ２、ＲＯＭ３とＲＯＭ４）のそれぞれのイメージ出力を比較するために、たとえば排他的論理和で結合する回路である、比較回路１（ＸＯＲ回路１）８１２および比較回路２（ＸＯＲ回路２）８２２と、２つのＲＯＭイメージ対を切り替えるアドレス切り替え器８０４と、アドレス切り替え器８０４に結合され、ＣＰＵ１０２をリセットするシステムリセット手段３０６とで構成される。なお、ＲＯＭ３はＲＯＭ１と同じＲＯＭイメージまたは異なる別のＲＯＭイメージであり得る。言い換えれば、ＲＯＭ３に格納されるＢＩＯＳプログラムはＲＯＭ１に格納されるＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムであり得る。【００４８】
ここでは排他的論理和（ＸＯＲ）回路を用いる例で示したが、他の比較回路を用いることも可能である。また、アドレス切り替え器８０４はＲＯＭイメージ対を選択し、各ＲＯＭイメージのＢＩＯＳプログラムの起動を行うことができるように、現在選択されているＲＯＭイメージ対に対応する番号ｎをカウントするためのカウンタ（ｎ）８０５を内蔵している。なお、ｎ番目のＲＯＭイメージ対は、２つのＲＯＭイメージであるＲＯＭ２ｎ−１とＲＯＭ２ｎから構成される。【００４９】
最初に起動されるＲＯＭイメージ対の２つのＲＯＭイメージ（正常時は同じイメージ内容）の片方が壊れている時には、排他的論理和（ＸＯＲ）回路が‘１’（値１）を出力し、これにより現在起動しているＲＯＭイメージ対が壊れていることが検知可能である。そして現在起動しているＲＯＭイメージ対が壊れていることが検知された場合には、アドレス切り替え器８０４に信号（値１）を送り、アドレス切り替え器により他のＲＯＭイメージ対のアドレスに切り替え、その切り替えられたＲＯＭイメージ対にある一方のＲＯＭイメージのＢＩＯＳプログラムで起動を試みるという一連の動作が可能となる。【００５０】
さらに起動エラーを極力なくして情報処理システムの信頼性をあげるために、図８の構成を拡張して、偶数個である２Ｎ個（Ｎは２以上の整数）のＲＯＭイメージを有する、図１０のような構成に拡張可能である。ｎ個のＲＯＭイメージ対１０１０、１０２０、・・・１０３０は、ＲＯＭ２ｎ−１とＲＯＭ２ｎ（ここではＲＯＭ１／ＲＯＭ２、ＲＯＭ３／ＲＯＭ４・・・）のそれぞれのイメージ対に含まれる各ＲＯＭイメージが同じＲＯＭイメージを持つ。すなわち、正常時には１つのＲＯＭイメージ対にある２つのＲＯＭイメージは一方のＲＯＭイメージを複製したものであり、ＢＩＯＳプログラムも同じものを有する。また、別のＲＯＭイメージ対にあるそれぞれのＲＯＭイメージは異なるイメージ、すなわち異なるＢＩＯＳプログラムであってもよい。各ＲＯＭイメージ対に対応して、それぞれに比較回路１０１２、１０２２、・・・１０３２（ＸＯＲ回路で実装、総数ｎ）を結合することができる。壊れているＲＯＭイメージを含むＲＯＭイメージ対（にあるＢＩＯＳプログラム）での起動をやめて、正常なＲＯＭイメージ対を選択して、そのＲＯＭイメージ対にあるＲＯＭイメージのＢＩＯＳプログラムを用いてシステムを起動する。また、次の起動に備えて、壊れているＲＯＭイメージ対の各ＲＯＭイメージは、正常なＲＯＭイメージで書き換えてリカバリしておくことができる。Ｎ＝１の場合は、基本構成である図３に相当すると考えることができるが、Ｎ＝１すなわち２つのＲＯＭイメージの場合は、前述のようにＲＯＭイメージのどこが壊れているかは判断できない。これに対し、Ｎが２以上の場合である図８あるいは図１０の構成によればどのイメージ対に問題があるか判断できる点で相違する。【００５１】
第３の実施形態の基本構成である、４個のＲＯＭイメージを有する情報処理システムの動作について、図８および図９のフローチャートを参照しながら説明する。図８のように、４個のＲＯＭイメージは２つのＲＯＭイメージ対を構成する。以降の説明でイメージ対の番号ｘをイメージ対（ｘ）、ｘは整数のように表す。すなわちＲＯＭ１／ＲＯＭ２からなるイメージ対（１）８１０およびＲＯＭ３／ＲＯＭ４からなるイメージ対（２）８２０を含むシステム構成を用いる場合について、図９のフローチャートに従って説明する。なお、図９の中で「ＲＯＭ１／２」とはＲＯＭイメージ１（ＲＯＭ１）とＲＯＭイメージ２（ＲＯＭ２）のイメージ対を表し、「ＲＯＭ１／２で起動処理」とは該イメージ対の一方のＲＯＭイメージのＢＩＯＳプログラムで起動処理を行うことを表す。「ＲＯＭ３／４」についても同様の表記をする。【００５２】
最初にパワーオンリセットを行う（Ｓ９０１）。起動するＲＯＭイメージのあるイメージ対の番号ｎをカウントするために、最初にカウンタ８０５をｎ＝１に設定する（Ｓ９０２）。このとき、ＲＯＭイメージ２ｎ−１とＲＯＭイメージ２ｎ、すなわちＲＯＭ１、ＲＯＭ２を含むイメージ対が選択される。次にアドレス切り替え器８０４をＲＯＭ１／ＲＯＭ２のイメージ対（１）８１０に設定し、ＣＰＵ１０２をリセットし（Ｓ９０３）、ＲＯＭ１／ＲＯＭ２のイメージ対（１）８１０のどちらかのＲＯＭイメージ、たとえばＲＯＭ１のＢＩＯＳプログラムを用いて起動処理を行う（Ｓ９０４）。またＲＯＭ１／ＲＯＭ２のイメージ出力をＸＯＲ回路１  ８１２で演算処理（Ｓ９０５）し、出力が‘０’の場合は、ＲＯＭ１とＲＯＭ２のイメージ内容が同じで正常であることがチェックできたので、ＲＯＭ３とＲＯＭ４のイメージ内容を比較し（Ｓ９２１）、イメージ内容が異なる場合は、ＲＯＭ３／ＲＯＭ４の各イメージにＲＯＭ１のイメージをコピーする（Ｓ９２２）。ＲＯＭ３とＲＯＭ４のイメージ内容が同じ場合は、問題がないのでそのまま、たとえばＲＯＭ１のＢＩＯＳプログラムで起動を続ける（Ｓ９５０）。なお、ステップ９２１でＲＯＭ３とＲＯＭ４のイメージ内容を比較するためには、ＸＯＲ回路２  ８２２を用いることが可能である。または、正常起動されたＲＯＭ１の起動／リカバリ用ブロックに格納される、ＲＯＭイメージを比較するためのプログラム・コードをＣＰＵに実行させることも可能である。【００５３】
またステップＳ９０５でＸＯＲ回路１  ８１２の出力が‘１’の場合は、カウンタ（ｎ）８０５においてカウントを１増やし、ｎ＝２に設定し（Ｓ９０６）、アドレス切り替え器８０４をＲＯＭイメージの番号が２ｎ−１と２ｎのＲＯＭイメージを含む、２番目のＲＯＭ３／ＲＯＭ４のイメージ対（２）８２０に設定し、ＣＰＵ１０２をリセットし（Ｓ９０７）、ＲＯＭ３／ＲＯＭ４のイメージ対（２）８２０のどちらかのＲＯＭイメージ、たとえばＲＯＭ３のＢＩＯＳプログラムを用いて起動処理を行う（Ｓ９０８）。またＲＯＭ３とＲＯＭ４のイメージ出力をＸＯＲ回路２  ８２２に入力し演算処理を行う（Ｓ９０９）。演算処理の結果が‘０’の場合は、ＲＯＭ３／ＲＯＭ４のイメージ対（２）８２０は正常であるのでＲＯＭイメージ３（ＲＯＭ３）のイメージを、壊れている可能性のあるＲＯＭイメージ対（１）８１０のＲＯＭイメージ１およびＲＯＭイメージ２（ＲＯＭ１／ＲＯＭ２）にコピーする（Ｓ９３１）。さらに、たとえばＲＯＭ３のＢＩＯＳプログラムを用いて起動処理を行う（Ｓ９５０）。ステップＳ９０９でＸＯＲ回路２の演算処理の結果が‘１’の場合は、２つのＲＯＭイメージ対に正しいデータが存在しないものとして、ディスプレイ・コントローラ１２２を介して外部ディスプレイ１２４にシステムエラーとして表示する（Ｓ９１０）。【００５４】
図８の構成および図９のフローチャートに示す動作を一般化すると、図１０の構成および図１１のフローチャートに示す動作になる。すなわち、図１０は図８の構成を拡張した情報処理システムの構成例である。さらに図１１はこの一般化された構成を用いて、システムの起動および壊れたＲＯＭイメージのリカバリを行う動作を示す。図１１に示すように、パワーオンリセット（Ｓ１１０１）後、最初にカウンタ１００５のカウントをｎ＝１に設定する（Ｓ１１０２）。次に、基本的に以下の動作を繰り返す。すなわち、システム構成で決まるＲＯＭイメージ対の数（Ｎ）と現在起動しようとしているＲＯＭイメージを含むＲＯＭイメージ対の番号（ｎ）について、カウンタ１００５を用いてｎとＮを比較して（Ｓ１１０３）、順番にｎ番目のＲＯＭイメージ対（対応するＲＯＭイメージはＲＯＭ２ｎ−１、ＲＯＭ２ｎ）に設定するためにアドレス切り替え器１００４で切り替え、ＣＰＵ１０２をリセットし（Ｓ１１０４）、そのＲＯＭイメージ対にあるＲＯＭ２ｎ−１、ＲＯＭ２ｎのどちらか（通常はＲＯＭ２ｎ−１）のＲＯＭイメージのＢＩＯＳプログラムを用いて起動処理を行い（Ｓ１１０５）、各イメージ対を構成するＲＯＭイメージであるＲＯＭ２ｎ−１、ＲＯＭ２ｎのそれぞれのデータを対応する比較回路ｎ（たとえばＸＯＲ回路）１０１２，１０２２、・・・１０３２で演算処理して、ＲＯＭイメージ対のデータが壊れているかどうか判定を行い（Ｓ１１０６）、壊れている場合（ＸＯＲ回路の出力が‘１’）には、次のＲＯＭイメージ対での起動処理に移行するためにカウンタを１だけ増分する（Ｓ１１０７）。このように、Ｓ１１０３乃至Ｓ１１０６のステップを繰り返す。ＲＯＭイメージ対のデータが壊れていない場合（ＸＯＲ回路の出力が‘０’）には、該ＲＯＭイメージ対の前後の正しく起動できなかったＲＯＭイメージ対にあるＲＯＭイメージを回復する処理に入る（図１１の（ａ）および（ｂ）のフロー）。【００５５】
いずれかのＲＯＭイメージ対で正しく起動できた場合、図１１の（ａ）に示すステップに従って、次の起動に備えるために、正しく起動できなかったＲＯＭイメージ対の番号ｐが正常に起動できたＲＯＭイメージ対の番号ｎと比較して小さい場合、正しく起動できなかったＲＯＭイメージ対ｐ（ＲＯＭ２ｐ−１、ＲＯＭ２ｐを含む）を正しく起動できたＲＯＭイメージ対ｎにあるＲＯＭ２ｎ−１に書き換える（コピーする）処理を行う（Ｓ１１２１乃至Ｓ１１２４）。たとえば図８のＲＯＭ１／ＲＯＭ２のイメージ対（１）８１０が壊れている場合、正しく起動できたＲＯＭ３／ＲＯＭ４のイメージ対（２）８２０のＲＯＭ３のイメージをＲＯＭ１およびＲＯＭ２にコピーする場合が、図１１の（ａ）に示すステップ１１２１乃至１１２４に該当する（ｎ＝２，ｐ＝１）。【００５６】
また、正しく起動できたが、起動を試みなかったＲＯＭイメージ対が後続にある場合は、図１１の（ｂ）に示すステップ（Ｓ１１３１乃至Ｓ１１３５）に従って処理される。起動を試みなかったＲＯＭイメージ対ｍの各ＲＯＭイメージ（ＲＯＭ２ｍ−１とＲＯＭ２ｍ）のイメージ内容が同じかどうか比較し（Ｓ１１３３）、イメージ内容が異なる場合は、正しく起動できたＲＯＭイメージ対ｎに含まれるＲＯＭ２ｎ−１をＲＯＭ２ｍ−１とＲＯＭ２ｍにコピーして、書き換える（Ｓ１１３４）。たとえば図８のＲＯＭ１／ＲＯＭ２のイメージ対（１）８１０が正しく起動できたが、後続のＲＯＭ３とＲＯＭ４のイメージ対（２）８２０についても各ＲＯＭイメージのイメージ内容をチェックし、イメージ内容が異なる場合は、正しく起動できたＲＯＭ１のデータ内容をＲＯＭ３とＲＯＭ４にコピーする場合が図１１の（ｂ）のステップ１１３１乃至１１３５に該当する（ｎ＝１，ｍ＝２）。
図１１の（ａ）、（ｂ）のステップは、ｐ、ｍのカウントおよびＲＯＭ２ｍ−１とＲＯＭ２ｍのデータ内容の比較などは、ＲＯＭイメージに格納される起動／リカバリ用ブロック（図２を参照）のプログラム・コードに組み込むことができる。【００５７】
以上の実施の形態では、本発明の情報処理システムは図１に示すようにパーソナルコンピュータのようなコンピュータ・システムを想定できるが、本発明はこれに限定されずＰＣサーバやワークステーション等の情報処理システム全般に適用可能である。また、オペーレーティング・システムとしては、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ，ＡＩＸ（登録商標），Ｌｉｎｕｘ（登録商標）などが好ましいが、本発明は特定のオペレーティング・システム環境に限定されるわけではない。【００５８】
以上の実施の形態では、アドレス切り替え器の現在の状態を電源断時においても保持し得るようにアドレス切り替え器の現在の切り替え状態をフラッシュＲＯＭに保存することも可能であるが不揮発性ＲＡＭ（ＮＶＲＡＭ）等のメモリに保存しておくようにしても良い。【００５９】
以上の実施の形態では、１つのＲＯＭ内の複数のＲＯＭイメージのうち、ＢＩＯＳプログラムをそれぞれ格納する２つのＲＯＭイメージを切り替えるようにしたが、３つ以上のＲＯＭイメージ（それぞれがＢＩＯＳプログラムを含む）をグループにして、アドレス切り替え器で順番にグループを切り替えるように構成しても良い。【００６０】
以上の実施の形態では、ＢＩＯＳプログラムを記憶するメモリとしてフラッシュＲＯＭを用いたが、ＥＥＰＲＯＭ（ElectronicallyErasable and Programmable Read Only Memory）等にＢＩＯＳプログラムを記憶させておくようにしても良い。【００６１】
以上、本発明の実施の形態について説明したが、本発明は上記の実施形態に限定されることはない。その他、本発明は、主旨を逸脱しない範囲で当業者の知識に基づき種々の改良、修正、変更を加えた態様で実施できるものである。
【図面の簡単な説明】
【００６２】
【図１】本発明による情報処理システムの全体構成の例を示す図である。
【図２】フラッシュＲＯＭ内のＲＯＭイメージを示す図である。
【図３】本発明による起動／リカバリ機構を含む、第１の実施形態による情報処理システムを示す図である。
【図４】本発明による誤りデータパターン検出回路を有する起動／リカバリ機構を含む、第２の実施形態による情報処理システムを示す図である。
【図５】図３の構成による第１の実施形態の動作を示すフローチャートである。
【図６】フラッシュＲＯＭにデータを書き込む方法と誤りデータパターン（ＦＦ）の関係を示す図である。
【図７】図４の構成による第２の実施形態の動作を示すフローチャートである。
【図８】本発明による２つのＲＯＭイメージ対を有する第３の実施形態による情報処理システムを示す図である。
【図９】図８の構成による第３実施形態の動作を示すフローチャートである。
【図１０】本発明によるＮ個のＲＯＭイメージ対を有する情報処理システムを示す図である。
【図１１】図１０の構成による実施形態の動作を示すフローチャートである。
【図１２】従来技術のＢＩＯＳプログラムを格納したＲＯＭイメージの例を示す。（ａ）単一機能ブロック、（ｂ）マルチ機能ブロックの例である。
【符号の説明】
【００６３】
１００：情報処理システム
１０２：ＣＰＵ
１０６：メモリ
１１２：バス
１２２：ディスプレイ・コントローラ
１２４：外部ディスプレイ
１２６：ハードディスク・ドライブ（ＨＤＤ）コントローラ
１２８：ハードディスク・ドライブ（ＨＤＤ）
１３２：通信アダプタ
１３４：通信ネットワーク
２００：（フラッシュ）ＲＯＭ
２０２：ＲＯＭイメージ１
２０４：ＲＯＭイメージ２
２１０：ＢＩＯＳプログラム１
２２０：ＢＩＯＳプログラム２
３００：起動／リカバリ機構
３０２：比較回路
３０４：アドレス切り替え器
３０６：システムリセット手段
３０８：誤りデータパターン検出回路
【図１】
2008075646.tif 000003
【図２】
2008075646.tif 000004
【図３】
2008075646.tif 000005
【図４】
2008075646.tif 000006
【図５】
2008075646.tif 000007
【図６】
2008075646.tif 000008
【図７】
2008075646.tif 000009
【図８】
2008075646.tif 000010
【図９】
2008075646.tif 000011
【図１０】
2008075646.tif 000012
【図１１】
2008075646.tif 000013
【図１２】
2008075646.tif 000014
【手続補正書】
【提出日】平成20年3月18日(2008.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のＢＩＯＳ（基本入出力システム）プログラムを有する情報処理システムであって、
ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む記憶手段と、
前記記憶手段に結合され、前記記憶手段から出力される前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのイメージ内容を比較するための比較手段と、
前記比較手段に結合され、前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムによって前記システムを起動するように、最初に前記第１のＲＯＭイメージを選択し、前記比較手段の比較結果において前記イメージ内容が異なる場合には選択された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージに切り替える切り替え手段と、
前記記憶手段と前記切り替え手段に結合され、前記記憶手段から出力される前記第１および第２のＲＯＭイメージ内の誤りデータパターンを検出し、検出結果を前記切り替え手段に入力する、誤りデータパターン検出手段と、
を備える情報処理システム。
【請求項２】
前記切り替え手段に結合され、該切り替え手段がＲＯＭイメージを切り替えたことに応答して、前記システムをリセットするシステムリセット手段をさらに備える、請求項１記載の情報処理システム。
【請求項３】
（削除）
【請求項４】
前記誤りデータパターン検出手段によって、前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのうちの一方のＲＯＭイメージに誤りデータパターンが検出された場合に、前記切り替え手段が他方のＲＯＭイメージに切り替える、請求項１記載の情報処理システム。
【請求項５】
前記比較手段が排他的論理和回路であり、前記切り替え手段が各ＲＯＭイメージのアドレスを切り替えるアドレス切り替え器である、請求項１記載の情報処理システム。
【請求項６】
前記記憶手段がフラッシュＲＯＭであり、前記第１のＲＯＭイメージと前記第２のＲＯＭイメージが１つのフラッシュＲＯＭ内に格納される、あるいは別個のフラッシュＲＯＭにそれぞれ格納される、請求項１記載の情報処理システム。
【請求項７】
複数のＢＩＯＳ（基本入出力システム）プログラムを有する情報処理システムであって、
ＢＩＯＳプログラムを格納する第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のＲＯＭイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納する第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のＲＯＭイメージ対とを含む記憶手段と、
前記記憶手段から出力される前記第１のＲＯＭイメージ対を受け取るように前記記憶手段に結合され、前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージを比較するための第１の比較手段と、
前記記憶手段から出力される前記第２のＲＯＭイメージ対を受け取るように前記記憶手段に結合され、前記第３のＲＯＭイメージおよび前記第４のＲＯＭイメージを比較するための第２の比較手段と、
前記第１の比較手段および前記第２の比較手段に結合され、前記第１の比較手段および前記第２の比較手段からの比較結果のそれぞれの入力に基づいて、各ＲＯＭイメージが同じイメージ内容を有するＲＯＭイメージ対を選択するための切り替え手段であって、前記第１のＲＯＭイメージ対に含まれる一方のＲＯＭイメージのＢＩＯＳプログラムによって前記システムを起動するように、最初に前記第１のＲＯＭイメージ対を選択し、前記第１の比較手段の比較結果において前記第１のＲＯＭイメージおよび前記第２のＲＯＭイメージのイメージ内容が異なる場合には前記第２のＲＯＭイメージ対に切り替える切り替え手段と、
前記切り替え手段に結合され、切り替えが行われたことに応答して前記システムをリセットするシステムリセット手段と、
を備える情報処理システム。
【請求項８】
前記切り替え手段が選択されているＲＯＭイメージ対に対応する番号をカウントするためのカウンタを備える、請求項７記載の情報処理システム。
【請求項９】
前記第１の比較手段の比較結果において前記イメージ内容が同じ場合には前記第１のＲＯＭイメージ対のうち、前記第１のＲＯＭイメージに格納されたＢＩＯＳプログラムで前記システムの起動処理を行い、前記第２のイメージ対の前記第３のＲＯＭイメージおよび前記第４のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるように前記システムを制御するＣＰＵをさらに備える、請求項７記載の情報処理システム。
【請求項１０】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、
前記比較において、前記イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出するステップと、
前記第１のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージに切り替え、前記システムをリセットし、前記第２のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動するステップと、
前記誤りデータパターンが検出された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージで書き換えるステップと、
を含む方法。
【請求項１１】
前記比較するステップで、前記イメージ内容が同じである場合、前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記起動するステップを続ける、請求項１０記載の方法。
【請求項１２】
前記第２のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるステップをさらに含む、請求項１０記載の方法。
【請求項１３】
前記誤りデータパターンが前記第１および第２のＲＯＭイメージで検出されない場合はシステムエラーの表示を行うステップをさらに含む、請求項１０記載の方法。
【請求項１４】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対とを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリを行う方法であって、
前記第１のＲＯＭイメージ対の前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較するステップと、
前記比較において、前記イメージ内容が異なる場合は、前記第２のＲＯＭイメージ対に切り替え、前記システムをリセットし、前記第２のＲＯＭイメージ対のうちの前記第３のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動するステップと、
前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、該イメージ内容が同じ場合は、前記第１のＲＯＭイメージおよび第２のＲＯＭイメージを前記第３のＲＯＭイメージで書き換えるステップと、
を含む方法。
【請求項１５】
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する前記ステップにおいて、前記第１および第２のＲＯＭイメージの前記イメージ内容が同じで、かつ前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較する前記ステップにおいて、前記第３および第４のＲＯＭイメージの前記イメージ内容が異なる場合には、前記第３および第４のＲＯＭイメージを前記第１のＲＯＭイメージで書き換えるステップをさらに含む、請求項１４記載の方法。
【請求項１６】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージおよび前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを含む情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、
前記第１のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動する手順と、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、
前記比較において、前記イメージ内容が異なる場合は、各ＲＯＭイメージ内に誤りデータパターンがあるか検出する手順と、
前記第１のＲＯＭイメージにおいて前記誤りデータパターンを検出した場合は、前記第２のＲＯＭイメージに切り替え、前記システムをリセットし、前記第２のＲＯＭイメージのＢＩＯＳプログラムで前記システムを起動する手順と、
前記誤りデータパターンが検出された前記第１のＲＯＭイメージを前記第２のＲＯＭイメージで書き換える手順と、
を前記コンピュータに実行させるためのプログラム。
【請求項１７】
ＢＩＯＳプログラムを格納した第１のＲＯＭイメージと前記第１のＲＯＭイメージが複製された第２のＲＯＭイメージを備える第１のイメージ対と、前記ＢＩＯＳプログラムと同じかまたは異なる別のＢＩＯＳプログラムを格納した第３のＲＯＭイメージと前記第３のＲＯＭイメージが複製された第４のＲＯＭイメージを備える第２のイメージ対を含む前記情報処理システムにおいて、前記情報処理システムの起動およびデータの壊れたＲＯＭイメージのリカバリをコンピュータにより行うために、
前記第１のＲＯＭイメージ対の前記第１のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動する手順と、
前記第１のＲＯＭイメージおよび第２のＲＯＭイメージのイメージ内容を比較する手順と、
前記比較において、前記イメージ内容が異なる場合は、前記第２のＲＯＭイメージ対に切り替え、前記システムをリセットし、前記第２のＲＯＭイメージ対のうちの前記第３のＲＯＭイメージの前記ＢＩＯＳプログラムで前記システムを起動する手順と、
前記第３のＲＯＭイメージおよび第４のＲＯＭイメージのイメージ内容を比較し、前記イメージ内容が同じ場合は、前記第１のＲＯＭイメージおよび第２のＲＯＭイメージを前記第３のＲＯＭイメージで書き換える手順と、
を前記コンピュータに実行させるためのプログラム。
【国際調査報告】
2008075646.tif 000015
2008075646.tif 000016