(57)【要約】【課題】ＢＩＯＳプログラムのブートブロックが何らかの原因で壊れた場合でも、システムの起動を可能にする。【解決手段】フラッシュＲＯＭ５に記憶されたＢＩＯＳプログラム５１を使用する設定になっている状態において、システム電源がオンになると、ウォッチドッグタイマ６２が起動されると共にＢＩＯＳプログラム５１が起動され、それに含まれるブートブロック５１２、ＢＩＯＳ本体５１１の順に実行される。ブートブロック５１２が壊れていると、ＢＩＯＳ本体５１１へ制御が移行しないため、ＢＩＯＳ本体５１１に付加されたタイマ再起動処理が走らず、タイマ６２がタイムアウトする。切り替え器６３はＢＩＯＳプログラム５２を使用するように変更し、システムリセット手段６４はシステムリセットを行う。今度はＢＩＯＳプログラム５２が起動され、それに含まれるブートブロック５２２、ＢＩＯＳ本体５２１の順に実行される。【選択図】　図１
2004038529.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータのシステムの電源オンおよびシステムリセットによって起動されるタイマと、ブートブロックとＢＩＯＳ本体とを含み且つ前記ＢＩＯＳ本体に前記タイマを再起動する処理を付加してある複数のＢＩＯＳプログラムを記憶する記憶手段と、前記タイマがタイムアウトしたときに前記複数のＢＩＯＳプログラムのうちシステムで現に使用するＢＩＯＳプログラムを残りのＢＩＯＳプログラムに切り替える切り替え手段と、前記タイマがタイムアウトしたときにシステムリセット信号を発生するシステムリセット手段とを備えたことを特徴とする情報処理装置。
【請求項２】
前記タイマがウォッチドッグタイマである請求項１記載の情報処理装置。
【請求項３】
前記記憶手段がフラッシュＲＯＭである請求項１記載の情報処理装置。
【請求項４】
前記タイマ、前記切り替え手段および前記システムリセット手段をチップセット内に備える請求項１、２または３記載の情報処理装置。
【請求項５】
前記タイマ、前記切り替え手段および前記システムリセット手段をＢＭＣ内に備える請求項１、２または３記載の情報処理装置。
【請求項６】
前記切り替え手段の現在の切り替え状態をコンピュータの電源断時にも保持するためのバッテリを備える請求項１、２または３記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパーソナルコンピュータ等の情報処理装置に関し、特にＢＩＯＳプログラムを二組持つ情報処理装置に関する。
【０００２】
【従来の技術】
ＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ　Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）プログラムは、一般に、各種デバイスの初期化やオペレーティングシステム（ＯＳ）のロードなどを司るＢＩＯＳ本体（コアブロックとも言う）と、コンピュータの電源オン時やリセット時の直後に起動し、ＢＩＯＳ本体のＣＲＣチェック等を行って問題が無ければ制御をＢＩＯＳ本体に移すブートブロックとで構成される。ＢＩＯＳは文字どおり基本入出力プログラムであるため、正常に動作しないと、コンピュータのシステム起動が不可能になる。このため、従来より不測の事態に備え、ＢＩＯＳプログラムを複数準備しておく冗長化構成が採用されている。
【０００３】
例えば、特開平１１−３１６６８７号公報では、２つのＢＩＯＳ本体と１つのブートブロックとをＲＯＭに記憶しておき、現に使用する一方のＢＩＯＳ本体の完全性をテストし、不完全であれば他方のＢＩＯＳ本体を選択することにより、何れか一方のＢＩＯＳ本体に障害があってもコンピュータのシステムを起動できるようにしている（第１の従来技術）。
【０００４】
また、特開２０００−１４８４６７号公報では、ブートブロック及びＢＩＯＳ本体から構成されるＢＩＯＳプログラムをＲＯＭに２つ準備し、この２つのＢＩＯＳプログラムを選択的にアクセスするためのアドレス切り替え回路を設ける。そして、一方のＢＩＯＳプログラムのブートブロックでＢＩＯＳプログラムの不完全が検知された場合、当該ブートブロックにより前記アドレス切り替え回路の切り替え状態を変更した後にシステムをリセットして再起動することにより、他方のＢＩＯＳプログラムによるシステムの起動処理を可能にする（第２の従来技術）。この第２の従来技術と類似する技術は特開２０００−１６３２６８号公報にも記載されている。
【０００５】
【発明が解決しようとする課題】
第１の従来技術では、ＢＩＯＳ本体は複数存在するが、ブートブロックは唯１つしかないため、ブートブロック自体が何らかの原因で壊れた場合、コンピュータのシステムの起動が不可能になる。
【０００６】
他方、第２の従来技術では、ブートブロックが複数準備されているため、一見するとブートブロック自体が壊れた場合でも他の正常なブートブロックを使ってコンピュータのシステムを起動できそうである。しかし、前述したように、２つのＢＩＯＳプログラムを切り替えるアドレス切り替え回路の選択状態を切り替えているのはブートブロックであるため、ブートブロックが壊れているとその切り替えが行えず、結局、コンピュータのシステムの起動が不可能になる。
【０００７】
本発明の目的は、ＢＩＯＳプログラムのブートブロックが何らかの原因で壊れた場合でも、コンピュータのシステムを支障なく起動することができるようにすることにある。
【０００８】
【課題を解決するための手段】
本発明の情報処理装置は、コンピュータのシステムの電源オンおよびシステムリセットによって起動されるタイマと、ブートブロックとＢＩＯＳ本体とを含み且つ前記ＢＩＯＳ本体に前記タイマを再起動する処理を付加してある複数のＢＩＯＳプログラムを記憶する記憶手段と、前記タイマがタイムアウトしたときに前記複数のＢＩＯＳプログラムのうちシステムで現に使用するＢＩＯＳプログラムを残りのＢＩＯＳプログラムに切り替える切り替え手段と、前記タイマがタイムアウトしたときにシステムリセット信号を発生するシステムリセット手段とを備えている。
【０００９】
【作用】
本発明にあっては、切り替え手段によってシステムで現に使用するＢＩＯＳプログラムが或るＢＩＯＳプログラム（ＢＩＯＳプログラムＡとする）に切り替えられている状態において、コンピュータのシステムの電源がオンになると、タイマが起動されると共にＢＩＯＳプログラムＡが起動され、それに含まれるブートブロック、ＢＩＯＳ本体の順に実行される。最初に動作するブートブロックが壊れていると、ＢＩＯＳ本体へ制御が移行しないため、ＢＩＯＳ本体に付加されたタイマ再起動処理が走らず、タイマがタイムアウトする。また、ブートブロックが正常でもＢＩＯＳ本体が何らかの原因で壊れていると、やはりタイマ再起動処理が走らず、タイマがタイムアウトする。このような状態になると、切り替え手段が現に使用するＢＩＯＳプログラムＡを他のＢＩＯＳプログラム（ＢＩＯＳプログラムＢとする）に切り替え、またシステムリセット手段がシステムリセット信号を発生する。これにより、今度はＢＩＯＳプログラムＢが起動され、それに含まれるブートブロック、ＢＩＯＳ本体の順に実行される。
【００１０】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１１】
図１は本発明を適用したＰＣサーバのブロック図である。この例のＰＣサーバは、ＣＰＵ１、ＲＡＭやＲＯＭで構成されたメモリ２、表示コントローラ３、Ｉ／Ｏコントローラ４、フラッシュＲＯＭ５、チップセット６、これらを相互に接続するバス７、バックアップ用のバッテリ８を含んで構成されている。
【００１２】
フラッシュＲＯＭ５は、読み書き可能で且つ電源を落としても内容が保持されるメモリであり、サイズの等しい２つのＢＩＯＳプログラム５１、５２を格納している。ＢＩＯＳプログラム５１は、ＢＩＯＳ本体５１１とブートブロック５１２とで構成され、ＢＩＯＳプログラム５２は、ＢＩＯＳ本体５２１とブートブロック５２２とで構成される。ＢＩＯＳ本体５１１、５２１は、全く同一の内容か或いは異なるバージョンのＢＩＯＳ本体であり、メモリ２等の各種デバイスの初期化やオペレーティングシステム（ＯＳ）のロードなどを司る機能を有する。また、ＢＩＯＳ本体５１１、５２１には、後述するウォッチドッグタイマ６２を周期的に再起動する処理が付加されている。再起動する周期はウォッチドッグタイマ６２がタイムアウトする時間より短い。ブートブロック５１２、５１３は、全く同一の内容か或いは異なるバージョンのブートブロックであり、ＰＣサーバの電源オン時やリセット時の直後に起動され、ＢＩＯＳ本体５１１、５２１のＣＲＣチェック等を行って問題が無ければ制御をＢＩＯＳ本体に移す機能を有する。
【００１３】
本実施の形態の場合、ＢＩＯＳプログラム５１、５２の各サイズは５１２ＫＢである。フラッシュＲＯＭ５はその倍の１ＭＢの記憶容量を有し、システムのアドレス空間に割り当てられている。そして、そのアドレス空間の内の上位５１２ＫＢのアドレス空間にＢＩＯＳプログラム５１が、下位５１２ＫＢのアドレス空間にＢＩＯＳプログラム５２がそれぞれ割り振られている。具体的には、フラッシュＲＯＭ５をアクセスするためのアドレスＡ０〜Ａ１９の内、最上位のアドレスＡ１９が１となる場合にＢＩＯＳプログラム５１がアクセスされ、アドレスＡ１９が０となる場合にＢＩＯＳプログラム５２がアクセスされるようになっている。本実施の形態では、アドレスＡ０〜Ａ１８はバス７を通じてシステム本体側から与えられ、アドレスＡ１９は、チップセット６のアウトプットピン６１から与えられる。
【００１４】
チップセット６は、ＣＰＵ１の周辺ＬＳＩの一種で、１〜数チップで構成され、ＣＰＵ１およびメモリ２と図示しないＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）などのバスを接続して、アクセス制御などを行ったり、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）などの入出力インタフェースを司るものとして知られているが、本実施の形態では、このようなチップセット６に、本発明に関連するウォッチドッグタイマ６２、切り替え器６３およびシステムリセット手段６４を設けている。なお、チップセット６が最初からウォッチドッグタイマ機能を有する場合、それをウォッチドッグタイマ６２として利用することができる。
【００１５】
ウォッチドッグタイマ６２は、ＰＣサーバの電源オンおよびシステムリセットによって起動される再起動可能なハードウェアタイマであり、予め定められた時間Ｔ以内に再起動されないとタイムアウト信号を切り替え器６３およびシステムリセット手段６４に出力する。ここで、時間Ｔは、ＰＣサーバのシステムが正常に起動した場合の、電源オン又はシステムリセット時から、ＢＩＯＳ本体５１１および５２１における最初のタイマ再起動処理までの時間より若干長く設定される。
【００１６】
切り替え器６３は、アウトプットピン６１から値１または値０のアドレスＡ１９を出力する回路で、ウォッチドッグタイマ６２からタイムアウト信号を入力すると、アウトプットピン６１から出力する値を反転する機能を持つ。つまり、アウトプットピン６１からアドレスＡ１９として値１を出力している状態でタイムアウト信号を受けると、アウトプットピン６１から出力するアドレスＡ１９の値を０に変更し、アウトプットピン６１からアドレスＡ１９として値０を出力している状態でタイムアウト信号を受けると、アウトプットピン６１から出力するアドレスＡ１９の値を１に変更する。切り替え器６３は、例えば、タイムアウト信号を入力する毎に出力値を反転するフリップフロップ回路で実現することができる。
【００１７】
システムリセット手段６４は、ウォッチドッグタイマ６２からタイムアウト信号を受けた時に、ＰＣサーバにシステムリセットをかけるためのシステムリセット信号を発生する手段である。
【００１８】
チップセット６に電力を供給するバッテリ８は、ＰＣサーバの図示しないＡＣケーブルが抜けたり、停電になった場合に、切り替え器６３が保持する現在の切り替え状態、つまりアドレスＡ１９の現在の値が消えてしまわないように、バックアップするための電源である。
【００１９】
図２は本実施の形態のＰＣサーバのシステム起動時の処理例を示すフローチャートである。以下、図１および図２を参照して本実施の形態におけるシステム起動時の動作を説明する。
【００２０】
今、切り替え器６３はアウトプットピン６１からアドレスＡ１９の値として１をフラッシュＲＯＭ５に出力する状態に切り替わっているものとする。つまり、ＢＩＯＳプログラム５１が現に使用するＢＩＯＳプログラムとして設定されているものとする。この状態で、ＰＣサーバのシステムの電源がオンになると（Ｓ１）、ウォッチドッグタイマ６２が自動的に起動されて計時を開始する（Ｓ２）。
【００２１】
他方、ＣＰＵ１はバス７を通じてフラッシュＲＯＭ５のブートブロックをアクセスし、ブートブロックで規定される処理の実行を開始するが、フラッシュＲＯＭ５のアドレスＡ０〜Ａ１９のうち、アドレスＡ１９はアウトプットピン６１から値１が固定的に出力されているため、ＣＰＵ１がアクセスするブートブロックはブートブロック５１２になる。従って、ブートブロック５１２で規定される処理を実行し、次いでＢＩＯＳ本体５１１の実行へと進む。
【００２２】
ブートブロック５１２の処理が正常に行われ、ＢＩＯＳ本体５１１の処理も正常に行われた場合には、ＢＩＯＳ本体５１１に付加されたタイマ再起動処理によってウォッチドッグタイマ６２が周期的に再起動されるため、ウォッチドッグタイマ６２がタイムアウトすることはなく（Ｓ３でＮｏ）、通常のシステム立ち上げ処理が行われる（Ｓ４）。
【００２３】
他方、ブートブロック５１２が壊れていると、ＢＩＯＳ本体５１１へ制御が移行しないため、ＢＩＯＳ本体５１１のタイマ再起動処理が走らず、ウォッチドッグタイマ６２がタイムアウトする（Ｓ３でＹｅｓ）。また、ブートブロック５１２が正常でもＢＩＯＳ本体５１１が壊れていると、やはりタイマ再起動処理が走らず、ウォッチドッグタイマ６２がタイムアウトする（Ｓ３でＹｅｓ）。ウォッチドッグタイマ６２がタイムアウトし、タイムアウト信号が出力されると、切り替え器６３は、アウトプットピン６１から出力しているアドレスＡ１９の値を１から０に変更する（Ｓ５）。また、システムリセット手段６４は、システムリセット信号を発生し、ＰＣサーバのシステムをリセットする（Ｓ６）。
【００２４】
ＰＣサーバのシステムがリセットされたときの処理は電源オン時と同じであり、ウォッチドッグタイマ６２が自動的に起動されて計時を開始する（Ｓ２）。他方、ＣＰＵ１はバス７を通じてフラッシュＲＯＭ５のブートブロックをアクセスし、ブートブロックで規定される処理の実行を開始するが、フラッシュＲＯＭ５のアドレスＡ０〜Ａ１９のうち、アドレスＡ１９はアウトプットピン６１から値０が固定的に出力されているため、ＣＰＵ１がアクセスするブートブロックは今度はブートブロック５２２になる。従って、ブートブロック５２２で規定される処理を実行し、次いでＢＩＯＳ本体５１１の実行へと進む。そして、ブートブロック５２２の処理が正常に行われ、ＢＩＯＳ本体５２１の処理も正常に行われた場合、ＢＩＯＳ本体５２１に付加されたタイマ再起動処理によってウォッチドッグタイマ６２が周期的に再起動されるため、ウォッチドッグタイマ６２がタイムアウトすることはなく（Ｓ３でＮｏ）、通常のシステム立ち上げ処理が行われる（Ｓ４）。
【００２５】
なお、本実施の形態では、ＢＩＯＳプログラム５１および５２はフラッシュＲＯＭ５に格納されているため、内容が壊れていたブートブロックやＢＩＯＳ本体はＲＯＭの差し替え無しに復旧することができる。
【００２６】
【発明の他の実施の形態】
以上の実施の形態では、ＰＣサーバに備わるチップセット６に、ウォッチドッグタイマ６２、切り替え器６３およびシステムリセット手段６４を設け、チップセット６のアウトプットピン６１から、システムに２組準備されているＢＩＯＳプログラム５１、５２を切り替えるためのアドレスＡ１９を供給したが、ＢＭＣ（Ｂａｓｅｂｏａｒｄ　Ｍａｎａｇｅｍｅｎｔ　Ｃｏｎｔｒｏｌｌｅｒ）を備えるＰＣサーバにあっては、ＢＭＣにウォッチドッグタイマ６２、切り替え器６３およびシステムリセット手段６４を設け、ＢＭＣの特定の出力ピンから、ＢＩＯＳプログラム５１、５２を切り替えるためのアドレスＡ１９を供給するようにしても良い。また、チップセット６やＢＭＣ以外の箇所に、ウォッチドッグタイマ６２、切り替え器６３およびシステムリセット手段６４を設けるようにしても良い。
【００２７】
以上の実施の形態では、本発明をパーソナルコンピュータをベースとしたＰＣサーバに適用したが、本発明はＰＣサーバにのみ限定されず、通常のパーソナルコンピュータやワークステーション等の情報処理装置全般に適用可能である。
【００２８】
以上の実施の形態では、切り替え器６３の現在の切り替え状態を電源断時においても保持し得るようにバッテリ８でバックアップする構成としたが、切り替え器６３の現在の切り替え状態をバッテリが不要な不揮発性ＲＡＭやＥＥＰＲＯＭ等に保存しておくようにしても良い。
【００２９】
以上の実施の形態では、２つのＢＩＯＳプログラムを相互に切り替えるようにしたが、３つ以上のＢＩＯＳプログラムをウォッチドッグタイマがタイムアウトする毎に順番に切り替えるように構成しても良い。
【００３０】
以上の実施の形態では、ＢＩＯＳプログラムを記憶するメモリとしてフラッシュＲＯＭを用いたが、一般的なＲＯＭやＥＥＰＲＯＭ等にＢＩＯＳプログラムを記憶させておくようにしても良い。
【００３１】
【発明の効果】
以上説明したように本発明によれば、ＢＩＯＳプログラムのブートブロックおよびＢＩＯＳ本体が何らかの原因で壊れた場合でも、コンピュータのシステムを支障なく起動することができる。その理由は、ＢＩＯＳプログラムのブートブロックおよびＢＩＯＳ本体が正常に動作しているか否かをウォッチドッグタイマ等のタイマで監視し、若し正常に動作していなければ、タイマのタイムアウトを契機に切り替え手段およびシステムリセット手段によって、現に使用するＢＩＯＳプログラムを別のＢＩＯＳプログラムに切り替えてシステムをリセットし、前記切り替えた別のＢＩＯＳプログラムのブートブロックおよびＢＩＯＳ本体によってシステムの起動を行うためである。
【図面の簡単な説明】
【図１】本発明を適用したＰＣサーバのブロック図である。
【図２】本発明を適用したＰＣサーバのシステム起動時の処理例を示すフローチャートである。
【符号の説明】
１…ＣＰＵ
２…メモリ
３…表示コントローラ
４…Ｉ／Ｏコントローラ
５…フラッシュＲＯＭ
６…チップセット
７…バス
８…バッテリ
５１、５２…ＢＩＯＳプログラム
５１１、５２１…ＢＩＯＳ本体
５１２、５２２…ブートブロック
Ａ０〜Ａ１９…アドレス
【図１】
2004038529.tif 000003
【図２】
2004038529.tif 000004