(57)【要約】      （修正有）【課題】電源供給が不安定になりやすい環境下においても、電源断時に即時に再起動し、電源断前の作業内容に直ちに復帰するコンピュータシステム、その起動方法及びプログラムを提供する。【解決手段】コンピュータシステムの電源断が発生したとき、所定の情報を保存し、所定の情報の保存が完了したか否かを判定し、保存が完了したと判定した場合に、電源断後のコンピュータシステムの再起動時に、高速起動用ブートプログラムと所定の情報とを用いて再起動し、保存が完了していないと判定した場合に、電源断後のコンピュータシステムの再起動時に、通常起動用ブートプログラムを用いて再起動する。【選択図】図３
2016045534.tif 000002
【特許請求の範囲】
【請求項１】
通常起動用ブートプログラムと高速起動用ブートプログラムとを格納する記憶部と、
前記通常起動用ブートプログラムまたは前記高速起動用ブートプログラムを用いてコンピュータシステムの起動を行うとともに、前記コンピュータシステムの電源断が発生したとき、所定の情報を前記記憶部に保存する制御部と、
前記所定の情報の前記記憶部への保存が完了したか否かを判定する判定部と、
を備え、
前記判定部が前記保存が完了したと判定した場合に、前記制御部は、前記電源断後のコンピュータシステムの再起動時に、前記高速起動用ブートプログラムと前記所定の情報とを用いて再起動を行い、
前記判定部が前記保存が完了していないと判定した場合に、前記制御部は、前記電源断後のコンピュータシステムの再起動時に、前記通常起動用ブートプログラムを用いて再起動を行う
ことを特徴とするコンピュータシステム。
【請求項２】
前記コンピュータシステムへ電源を供給する第１の電源部と、
前記第１の電源部から供給される電源が所定の閾値を下回ったときに、前記電源断の発生を検出する電圧検出部と、
前記電源断が発生したときに、前記制御部へ電源を供給する第２の電源部と、
を更に備え、
前記判定部は、前記第２の電源部から前記所定の閾値よりも大きい電源が供給されている期間に基づいて、前記保存が完了したか否かを判定する
ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記所定の情報は、前記コンピュータシステムの再起動に使用される情報であることを特徴とする請求項１または２に記載のコンピュータシステム。
【請求項４】
前記記憶部は、不揮発性メモリと揮発性メモリとを含み、
前記不揮発性メモリは、前記通常起動用ブートプログラムと前記高速起動用ブートプログラムとを格納し、
前記揮発性メモリは、前記所定の情報を保存する
ことを特徴とする請求項１乃至３のいずれか１項に記載のコンピュータシステム。
【請求項５】
コンピュータシステムの電源断が発生したとき、所定の情報を保存し、
前記所定の情報の保存が完了したか否かを判定し、
前記保存が完了したと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、高速起動用ブートプログラムと前記所定の情報とを用いて再起動し、
前記保存が完了していないと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、通常起動用ブートプログラムを用いて再起動する
ことを特徴とするコンピュータシステムの起動方法。
【請求項６】
前記コンピュータシステムへ供給される電源が所定の閾値を下回ったときに、前記電源断の発生を検出し、
前記電源断が発生したときに、前記コンピュータシステムへ前記所定の閾値よりも大きい電源が供給されている期間に基づいて、前記保存が完了したか否かを判定する
ことを特徴とする請求項５に記載のコンピュータシステムの起動方法。
【請求項７】
前記所定の情報は、前記コンピュータシステムの再起動に使用される情報であることを特徴とする請求項５または６に記載のコンピュータシステムの起動方法。
【請求項８】
コンピュータシステムのコンピュータに、
コンピュータシステムの電源断が発生したとき、所定の情報を保存し、
前記所定の情報の保存が完了したか否かを判定し、
前記保存が完了したと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、高速起動用ブートプログラムと前記所定の情報とを用いて再起動し、
前記保存が完了していないと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、通常起動用ブートプログラムを用いて再起動する
ことを実行させることを特徴とするコンピュータシステムのプログラム。
【請求項９】
前記コンピュータシステムへ供給される電源が所定の閾値を下回ったときに、前記電源断の発生を検出し、
前記電源断が発生したときに、前記コンピュータシステムへ前記所定の閾値よりも大きい電源が供給されている期間に基づいて、前記保存が完了したか否かを判定する
ことを実行させることを特徴とする請求項８に記載のコンピュータシステムのプログラム。
【請求項１０】
前記所定の情報は、前記コンピュータシステムの再起動に使用される情報であることを特徴とする請求項８または９に記載のコンピュータシステムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、コンピュータシステムの起動方法及びコンピュータシステムのプログラムに関する。
【背景技術】
【０００２】
通常のコンピュータシステムのブート処理（ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が起動する前段階の、周辺ハードウェアのチェック及び立ち上げ処理）は、家庭やオフィス等で使用されるコンピュータシステムを例にとれば、不揮発性メモリに記憶されたブートプログラムによってとりおこなわれる。
【０００３】
図１に通常のコンピュータシステムの起動処理フローを示す。コンピュータシステムの電源投入時、または、コンピュータシステムのリセット時（Ｓ１０１）に、コンピュータシステムは、上記不揮発性メモリからブートプログラムを呼び出す（Ｓ１０２）。そして、コンピュータシステムは、コンピュータシステムを起動させるための周辺ハードウェアのチェックプロセス等を順次処理し、コンピュータシステムの立ち上げを行う（Ｓ１０３）。
【０００４】
このように、コンピュータシステムを起動する際には、周辺ハードウェアのチェックプロセス等を順次処理するため、コンピュータシステムのＯＳが起動するまでには、一般には数十秒かかる。
【０００５】
また、デスクトップ型のコンピュータシステムの多くは、コストの低減や重量の軽減を目的に、付随的な無停電電源（Ｕｎｉｎｔｅｒｒｕｐｔｉｂｌｅ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ、ＵＰＳ）やバッテリーを標準で装備することが難しい。このため、地震等の天災の発生時や使用地域の使用電力量の増大による一時的な停電、不慮の事故によるコンセントの抜去等により、ユーザが意図せずに、電源が供給されない状態が発生しやすい。このような状態を「電源断」と呼ぶ。電源断が発生した場合、ユーザが使用していたアプリケーションプログラムは強制終了し、ハードディスクやフラッシュメモリ等の不揮発性メモリに保存していないアプリケーションは破棄され、それまでの作業内容は消去されてしまう。さらに、コンピュータシステムを再起動する際には、上述した立ち上げ処理を始めから順次行う必要があるため、ユーザは、コンピュータシステムが起動するまでに、数十秒にわたるブート処理を待つ必要がある。
【０００６】
特許文献１に開示されている発明では、半導体集積回路は、消費電力削減のために部分的に電源を遮断したスタンバイ状態あるいは内部動作電圧を降下させた電圧降下状態へ移行する場合の処理として、ブートＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されるブートプログラムを内部ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に格納しておくとともに、動作再開に必要なレジスタ値を内部ＲＡＭに退避させる。特許文献１記載の発明では、このような仕組みとすることで、スタンバイ状態あるいは内部動作電圧を降下させた電圧降下状態から再立ち上げする際に、半導体集積回路は高速再起動することができる。
【０００７】
また、特許文献２記載の発明は、電源断後、電子計算機システムの揮発性メモリに格納されるオンラインプログラムが、正常なものとして格納されている場合には、揮発性メモリに格納されるオンラインプログラムを実行する。また、特許文献２記載の発明は、上記オンラインプログラムが正常なものと保存されていない場合には、補助記憶装置から揮発性メモリにオンラインプログラムを転送し、オンラインプログラムを実行する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−４３３９号公報
【特許文献２】特開平０２−２９７２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の発明は、半導体集積回路がスタンバイ状態あるいは内部動作電圧を降下させた電圧降下状態に移行する場合、システムデータ等を内部ＲＡＭに退避保存する。このため、特許文献１に記載される発明においては、停電やコンセントの抜去等意図しない電源断によって半導体集積回路が電源断となった場合には、再起動の際、周辺ハードウェアのチェックプロセスを順次処理する。このため、特許文献１記載の発明においては、ＯＳが起動するまでに数十秒程度かかり、高速起動することができない。また、特許文献１記載の発明では、電源断となった場合には、作業中のユーザプログラムのデータ等は消去されてしまう。
【００１０】
また、特許文献２に記載の発明は、電源断を考慮して電子計算機システムを起動するものであり、補助記憶装置からオンラインプログラムを転送し、オンラインプログラムを実行するか否かに基づいて、電子計算機システムを高速に再起動させる。このため、特許文献２記載の発明では、オンラインプログラムの転送時間分、起動時間を短縮するのみであり、オンラインプログラムそのものの実行時間を短縮することはできず、電子計算機システムを高速起動することはできない。
【００１１】
本発明の目的は、上述した課題を解決し、電源供給が不安定になりやすい環境下においても、即時にコンピュータシステムを再起動させ、電源断前の作業内容を直ちに復帰させることのできるコンピュータシステム、コンピュータシステムの起動方法及びコンピュータシステムのプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本願発明のコンピュータシステムは、通常起動用ブートプログラムと高速起動用ブートプログラムとを格納する記憶部と、前記通常起動用ブートプログラムまたは前記高速起動用ブートプログラムを用いてコンピュータシステムの起動を行うとともに、前記コンピュータシステムの電源断が発生したとき、所定の情報を前記記憶部に保存する制御部と、前記所定の情報の前記記憶部への保存が完了したか否かを判定する判定部と、を備え、前記判定部が前記保存が完了したと判定した場合に、前記制御部は、前記電源断後のコンピュータシステムの再起動時に、前記高速起動用ブートプログラムと前記所定の情報とを用いて再起動を行い、前記判定部が前記保存が完了していないと判定した場合に、前記制御部は、前記電源断後のコンピュータシステムの再起動時に、前記通常起動用ブートプログラムを用いて再起動を行うことを特徴とする。
【００１３】
また、本願発明のコンピュータシステムの起動方法は、コンピュータシステムの電源断が発生したとき、所定の情報を保存し、前記所定の情報の保存が完了したか否かを判定し、前記保存が完了したと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、高速起動用ブートプログラムと前記所定の情報とを用いて再起動し、前記保存が完了していないと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、通常起動用ブートプログラムを用いて再起動することを特徴とする。
【００１４】
また、本願発明のコンピュータシステムのプログラムは、コンピュータシステムのコンピュータに、コンピュータシステムの電源断が発生したとき、所定の情報を保存し、前記所定の情報の保存が完了したか否かを判定し、前記保存が完了したと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、高速起動用ブートプログラムと前記所定の情報とを用いて再起動し、前記保存が完了していないと判定した場合に、前記電源断後のコンピュータシステムの再起動時に、通常起動用ブートプログラムを用いて再起動することを実行させることを特徴とする。
【発明の効果】
【００１５】
本発明のコンピュータシステム、コンピュータシステムの起動方法及びコンピュータシステムのプログラムは、電源供給が不安定になりやすい環境下においても、即時にコンピュータシステムを再起動させ、電源断前の作業内容を直ちに復帰させることができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】通常のコンピュータシステムの起動フローを示す。
【図２】本発明の第１の実施形態のコンピュータシステム１のブロック構成図を示す。
【図３】本発明の第１の実施形態のコンピュータシステム１の動作例のフローチャートを示す。
【図４】本発明の第２の実施形態のコンピュータシステム１のブロック構成図を示す。
【図５】本発明の第２の実施形態の電解コンデンサ４の出力電圧、電圧検出部２０１−２が出力する電圧検出信号の一例を示す。
【図６】本発明の第２の実施形態のコンピュータシステム１の動作例のフローチャートを示す。
【発明を実施するための形態】
【００１７】
＜第１の実施形態＞
本発明の第１の実施形態について説明する。
【００１８】
図２は、本発明の第１の実施形態のコンピュータシステム１の構成図である。
【００１９】
第１の実施形態のコンピュータシステム１は、記憶部１０１と、制御部１０２と、判定部１０３とから構成され、それぞれ互いにバス等で接続され、情報のやり取りが可能となっている。なお、図２では、コンピュータシステム１のその他の構成（例えば、キーボード、ディスプレイ等の入出力装置等）については図示していない。また、コンピュータシステム１は、その動作のための電源を電源１０４から供給される。
【００２０】
記憶部１０１は、高速起動用ブートプログラムと、通常起動用ブートプログラムとを格納する。また、コンピュータシステム１の電源断が発生した場合に、後述する制御部１０２の制御に基づいて、記憶部１０１は、所定の情報を格納する。
【００２１】
制御部１０２は、上記高速起動用ブートプログラムまたは上記通常起動用ブートプログラムを用いて、コンピュータシステム１の起動を行う。また、制御部１０２は、コンピュータシステム１の電源断が発生した場合に、所定の情報を記憶部１０１に保存する。ここで、所定の情報は、電源断前の制御部１０２のステータス、コンピュータシステム１の各種周辺ハードウェアのステータス、ＯＳやユーザプログラム等のシステムデータである。
【００２２】
判定部１０３は、制御部１０２によって、上記所定の情報の記憶部１０１への保存が完了したか否かを判定する。
【００２３】
所定の情報は保存されたと判定部１０３が判定した場合には、電源断の復旧後、制御部１０２は、記憶部１０１に格納される高速起動用ブートプログラムと、保存した所定の情報とを用いて、コンピュータシステム１を高速起動させる。制御部１０２は、高速起動用ブートプログラムを用いて、例えば、コンピュータシステム１の動作チェックを行うハードウェアを、コンピュータシステム１が最低限起動できる範囲に限定して、チェック、起動動作を行う。また、その他高速起動の際に必要な情報は、記憶部１０１に保存した所定の情報を用いて、制御部１０２は、コンピュータシステム１を起動させる。
【００２４】
また、所定の情報は保存されていないと判定部１０３が判定した場合には、電源断の復旧後、制御部１０２は、記憶部１０１に格納される通常起動用ブートプログラムを用いて、コンピュータシステム１を通常起動させる。通常起動の方法としては、例えば、制御部１０２は、制御部１０２に接続される全ての周辺ハードウェアの動作チェックを行い、コンピュータシステム１を起動させる。
【００２５】
図３は、第１の実施形態のコンピュータシステム１の動作例を示すフローチャートである。
【００２６】
コンピュータシステム１は、パワーＯＮ後、通常動作状態にあるものとし、その状態において、コンピュータシステム１の電源断が発生したとする（Ｓ３０１）。
【００２７】
電源断が発生した場合、制御部１０２は、上述した所定の情報を記憶部１０１に保存する。（Ｓ３０２）。
【００２８】
判定部１０３は、制御部１０２によって所定の情報の保存が完了したか否かを判定する（Ｓ３０３）。
【００２９】
保存は完了したと判定部１０３が判定した場合には（Ｓ３０３、ＹＥＳ）、制御部１０２は、電源断の復旧後、記憶部１０１に格納される高速起動用ブートプログラムと、退避保存した所定の情報とを用いてコンピュータシステム１の高速起動を行う（Ｓ３０４）。
【００３０】
また、保存は完了していないと判定部１０３が判定した場合には（Ｓ３０３、ＮＯ）、制御部１０２は、電源断の復旧後、記憶部１０１に格納される通常起動用ブートプログラムを用いて、コンピュータシステム１の通常起動を行う（Ｓ３０５）。
【００３１】
第１の実施形態において、コンピュータシステム１は、電源断が発生した場合、所定の情報を保存する。そして、コンピュータシステム１は、所定の情報の保存が完了したか否かを判定し、完了した場合には、電源断の復旧後、高速起動用ブートプログラムと保存した所定の情報とを用いてコンピュータシステム１を高速起動させる。また、保存が完了していない場合には、電源断の復旧後、コンピュータシステム１は、通常起動用ブートプログラムを用いてコンピュータシステム１を通常起動させる。
【００３２】
従って、第１の実施形態のコンピュータシステム１は、電源供給が不安定になりやすい環境下においても、即時にコンピュータシステム１を再起動させ、電源断前の作業内容を直ちに復帰させることができる。
【００３３】
＜第２の実施形態＞
本願発明の第２の実施形態について説明する。
【００３４】
図４は、本発明の第２の実施形態のコンピュータシステム１の構成例を示す。
【００３５】
第２の実施形態のコンピュータシステム１は、制御部１０２と、電源断検出回路部２と、ショットキーダイオード３と電解コンデンサ４とから構成される。なお、図４においては、コンピュータシステム１を起動する際の主要な構成のみ図示し、その他のコンピュータシステム１の構成（例えば、キーボードやディスプレイ等の入出力装置等）については、図示していない。コンピュータシステム１に電源を供給する電源１０４は、直流電源である。
【００３６】
制御部１０２は、コンピュータシステム１の起動や制御等を行い、より詳細には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２１と、記憶部１０１と、スイッチ１０２２及び１０２３と、電源１０２４とから構成されている。
【００３７】
ＣＰＵ１０２１は、後述するコンピュータシステム１の各部の制御を行う。また、ＣＰＵ１０２１は、後述する電源断検出回路部２から電源断の通知を受信した場合に、コンピュータシステム１の図示しない補助記憶装置（例えば、ハードディスクやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等）に格納されている電源断時のＣＰＵステータス、コンピュータシステムの各種周辺ハードウェアのステータスや設定レジスタ値、オペレーティングシステムやユーザプログラム等の再スタートに必要なシステムデータ等（以下、システムデータ等という）を揮発性メモリ１０１２に退避保存する。このため、ＣＰＵ１０２１は、ユーザが電源断前に使用していたアプリケーションプログラム等の作業データを退避保存することができる。なお上記補助記憶装置は、不揮発性メモリ１０１１であってもよい。
【００３８】
また、後述する判定部１０３がシステムデータ等を退避保存できる一定状態が続いていると判定した場合にはスイッチ１０２２がＯＮとなり、ＣＰＵ１０２１は、ブートプログラム１０１３と退避保存したシステムデータ等とを用いて、コンピュータシステム１の高速起動を行う。また、上記判定部１０３がシステムデータ等を退避保存できていないか、またはできていない可能性が高いと判定した場合にはスイッチ１０２３がＯＮとなり、ＣＰＵ１０２１は、ブートプログラム１０１４を用いた通常起動動作を行う。詳細については、後述する。
【００３９】
なお、例えば、ＣＰＵ１０２１は、不揮発性メモリ１０１１から読み込んだプログラムに基づいて、各部の制御を行ってもよい。また、ＣＰＵ１０２１は、コンピュータで読み取り可能なプログラムを記憶した記憶媒体から、図示しない読み込み装置等を用いて、プログラムを読み込んで実行してもよい。
【００４０】
記憶部１０１は、不揮発性メモリ１０１１と、揮発性メモリ１０１２とを含む。
【００４１】
不揮発性メモリ１０１１は、コンピュータシステム１の起動に用いるブートプログラム１０１３及び１０１４を格納する。図４に示すように、不揮発性メモリ１０１１は、高速起動時に用いるブートプログラム１０１３及び通常の起動時に用いるブートプログラム１０１４を格納する。一般に、ブートプログラムは、不揮発性メモリに保存され、ＣＰＵにＯＳを起動させるまでの前段階として、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）と呼ばれる起動プログラムが、ブートプログラムに基づいて、コンピュータシステムの電源チェックやメモリ、キーボード、ディスプレイ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ポート等の周辺ハードウェアの種別の判断や各ハードウェアを適切に起動させるブート処理等を行う。
【００４２】
第２の実施形態のブートプログラム１０１３は、コンピュータシステム１を高速起動するために、コンピュータシステム１が最低限起動できる範囲に限定して、ハードウェアのチェック、起動動作を行う。ブートプログラム１０１３によるブート処理において、その他の必要な情報は揮発性メモリ１０１２に退避されているシステムデータ等を用いる。このため、ブートプログラム１０１３によるブート処理は、必要最低限のハードウェアしかチェック、起動をかけないため、コンピュータシステム１を高速起動することが可能となる。さらに、揮発性メモリ１０１２に退避されたシステムデータ等を用いて起動を行うため、起動後は、電源断前の元の作業状態にただちに復帰できる。
【００４３】
一方、第２の実施形態のブートプログラム１０１４は、上述した一般のブートプログラム同様、ＣＰＵ１０２１に接続される全ての周辺ハードウェアのチェック、起動を行う。ブートプログラム１０１４によるブート処理は、数秒から数十秒の時間を要するが、全ての周辺ハードウェアが所望の動作を行うことが可能である。
【００４４】
揮発性メモリ１０１２は、ＣＰＵ１０２１が後述する電源断検出回路部２から電源断の通知を受信した場合に、ＣＰＵ１０２１の制御に基づき、システムデータ等を格納する。また、揮発性メモリ１０１２は、所定の電源１０２４（例えば、ボタン電池等のメモリバックアップに使用される電池）によりバックアップされている。このため、揮発性メモリ１０１２は、電源断が発生した場合においても、格納したシステムデータ等を保持することができる。上述したように、揮発性メモリ１０１２に格納されたシステムデータ等は、ブートプログラム１０１３によるコンピュータシステム１の高速起動の際に使用される。
【００４５】
スイッチ１０２２及び１０２３は、後述する電源断検出回路部２の判定部１０３によってそのＯＮ、ＯＦＦが制御される。そして、ＣＰＵ１０２１は、いずれかのスイッチ１０２２、１０２３によって選択されたブートプログラム１０１３、１０１４を用いて、コンピュータシステム１の起動を行う。より詳細には、電源断の発生後、後述する判定部１０３は、所定の閾値以上の電圧が制御部１０２に供給され、かつその電圧が所定の判定時間以上持続したと判定した場合には、スイッチ１０２２をＯＮとする。そして、ＣＰＵ１０２１は、ブートプログラム１０１３と退避保存させたシステムデータ等とを用いたコンピュータシステム２の高速起動を行う。
【００４６】
一方、上記判定条件を満たさない場合には、判定部１０３は、スイッチ１０２３をＯＮとし、ＣＰＵ１０２１は通常の起動時に用いるブートプログラム１０１４を用いて、コンピュータシステム１の起動を行う。詳細については、後述する。
【００４７】
電源断検出回路部２は、コンピュータシステム１に供給される電源電圧をモニタし、電源断となったか否か（例えば、停電やコンセントの抜去等ユーザが意図せず、コンピュータシステム１の電源がＯＦＦとなったか否か）を検出する。また、電源断後、電源断検出回路部２は、制御部１０２に供給される電源電圧及びその持続時間に基づいて、ＣＰＵ１０２１が上記システムデータ等を揮発性メモリ１０１２に退避保存できたか否かを判定する。また、電源断検出回路部２は、所定の電源２０５（例えば、ボタン電池等のバックアップに使用される電池）によりバックアップされている。このため、電源断検出回路部２は、コンピュータシステム１が電源断となった場合においても、以下に説明する電源断検出回路部２内の各部の動作を一定時間持続することができる。また、コンピュータシステム１が通常動作している場合において、所定の電源２０５は、電源１０４によって充電作用が働いており、所定の電源２０５から漏れ出た電荷が補充される。
【００４８】
図４に示すように、電源断検出回路部２は、電圧検出部２０１−１、２０１−２と、検出レベル設定部２０２−１、２０２−２と、停止時間計算・検出部２０３と、判定部１０３と、判定レベル設定部２０４とから構成される。
【００４９】
電圧検出部２０１−１及び２０１−２は、例えば、ボルテージデテクタＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）で構成され、所定の閾値以上の電圧を検出した場合には、“ＯＮ（１）”を、閾値未満の電圧を検出した場合には“ＯＦＦ（０）”の信号を出力する。より具体的には、電圧検出部２０１−１及び２０１−２は、コンパレータと呼ばれる回路を内蔵する。コンパレータは、２つの入力端子と１つの出力端子を持つ。例えば、２つの入力端子をそれぞれＶｉｎ１、Ｖｉｎ２、１つの出力端子をＶｏｕｔとした場合を考える。この場合、コンパレータは、例えば、Ｖｉｎ１≧Ｖｉｎ２の場合、コンパレータの出力電圧ＶｏｕｔをＯＮレベル（例えば、５Ｖ（ボルト））とし、Ｖｉｎ２＞Ｖｉｎ１の場合、出力電圧ＶｏｕｔをＯＦＦレベル（例えば、０Ｖ）とするように動作する。例えば、Ｖｉｎ１に電源１０４からの電圧を入力し、Ｖｉｎ２に検出レベル設定部２０１により設定される電圧（電源断と判定するための閾値の電圧、例えば５．０Ｖ）を入力することで、電源１０４からの電圧が閾値の電圧より下回った場合に、電圧検出部２０１−１は、ＯＦＦレベルの電圧を出力し、電源断を判定することができる。
【００５０】
電圧検出部２０１−１と電圧検出部２０１−２は、配置される場所が異なるため、検出する電圧がそれぞれ異なっている。電圧検出部２０１−１及び２０１−２について、それぞれ説明する。
【００５１】
電圧検出部２０１−１は、経路５を通じて、電源１０４の電圧をモニタし、上記所定の閾値に基づいて、電源断の発生を検出する。また、電圧検出部２０１−１は、電源断の発生を検出した場合に、ＣＰＵ１０２１へその旨を通知する。例えば、電圧検出部２０１−１は、電源１０４の電圧及び所定の閾値に基づいて、出力電圧がＯＦＦレベルとなった場合に、電源断を検出し、その旨をＣＰＵ１０２１に通知する。
【００５２】
電圧検出部２０１−２は、制御部１０２に供給される電源電圧の状態をモニタする。図４のように、経路６には、ショットキーダイオード３及び電解コンデンサ４が配置されており、電圧検出部２０１−２は、これらの素子を通過した後段の電圧をモニタする。また、電圧検出部２０１−２は、電源断後、電解コンデンサ４の電荷によって生じ、緩やかに下降する電圧をモニタし、この電圧が所定の閾値より上か否かを判定し、判定した結果を電圧検出信号として、停止時間計算・検出部２０３に出力する。電圧検出部２０１−２が出力する電圧検出信号は、ＣＰＵ１０２１が揮発性メモリ１０１２にシステムデータ等を退避保存できたか否かの判定に用いられる。判定方法の詳細は後述する。
【００５３】
なお、上記所定の閾値は、それぞれの電圧検出部２０１−１、２０１−２に接続される検出レベル設定部２０２−１、２０２−２によって設定可能である。例えば、所定の閾値は、コンピュータシステム１の制御部１０２が仕様上動作できなくなる電圧に基づいて設定する。例えば、制御部１０２が５Ｖ以上で動作するブロックの場合、上記所定の閾値を５．０Ｖとすれば、その閾値を下回る電圧が検出された場合、制御部１０２は動作できなくなり、電圧検出部２０１−１はコンピュータシステム１の電源断を判定することができる。
【００５４】
また、同様に、制御部１０２が動作できなくなる電圧に基づいて所定の閾値を設定することによって、電圧検出部２０１−２は、上記所定の閾値に基づいて、電圧検出信号を出力する。この電圧検出信号は、後述する停止時間計算・検出部２０３が制御部１０２に印加される電圧レベルの持続時間を測定する際に使用される。
【００５５】
停止時間計算・検出部２０３は、適当なクロック信号を用いて、上記電圧検出信号の出力レベル（“ＯＮ（１）”及び“ＯＦＦ（０）”）が何クロック続いているかをカウントすることにより、制御部１０２に印加される電圧レベルの持続時間を測定し、それに応じた直流電圧値を出力する。すなわち、停止時間計算・検出部２０３は、上記電圧検出信号に基づき、電源断後の、制御部１０２が動作可能なＯＮレベル電圧の持続時間及び制御部１０２が動作不可能なＯＦＦレベル電圧の持続時間を測定する。
【００５６】
判定部１０３は、停止時間計算・検出部２０３から入力される直流電圧値に基づいて、ＣＰＵ１０２１によってシステムデータ等の揮発性メモリ１０１２への退避が完了したか否かを判定する。より詳細には、判定部１０３は、入力された直流電圧値に基づいて、電源断後、制御部１０２に印加される電圧が、ＣＰＵ１０２１がシステムデータ等の退避保存を行うことが可能なレベルであるか、または、退避保存が行えないレベルであるか、さらに、これらの電圧レベルが所定の判定時間以上続いているか否かを判定し、コンピュータシステム１の電源断前のシステムデータ等を退避できているか否かを判定する。
【００５７】
なお、上記判定時間は、判定部１０３に接続される判定レベル設定部２０４によって、設定可能である。例えば、判定時間は、電源断が発生した場合に、上記システムデータ等を揮発性メモリ１０１２に退避保存するための処理時間に基づいて設定する。また、判定時間は、コンピュータシステム１の設計パラメータ等によって、設定することができる。
【００５８】
図５は、電源断後、充電された電解コンデンサ４からの放電によって、制御部１０２に供給される電圧の一例及びその電圧に基づいて電圧検出部２０１−２が出力する電圧検出信号の一例を示している。
【００５９】
図５のように、時刻ｔ０において電源断が発生した場合を考える。また、時刻ｔ０において、電解コンデンサ４は十分に充電されており、電圧検出部２０１−２には、上記所定の閾値ｖｔｈが設定されているものとする。すなわち、電解コンデンサ４からｖｔｈ以上の電圧が供給されている場合には、電源断後においても制御部１０２は動作可能である。
【００６０】
図５のように、時刻ｔ１に達するまでは、閾値ｖｔｈ以上の電圧が制御部１０２に供給されるため、電圧検出部２０１−２は、制御部１０２が動作可能な電圧が制御部１０２に供給されていると判断し、制御部１０２が動作可能であることを示すＯＮレベルの電圧検出信号を停止時間計算・検出部２０３へ出力する。
【００６１】
また、図５のように、時刻ｔ１において、電解コンデンサ４から供給される電圧が閾値ｖｔｈを下回った場合、電圧検出部２０１−２は、制御部１０２が動作可能な電圧を下回ったと判断し、制御部１０２が動作不可能であることを示すＯＦＦレベルの電圧検出信号を停止時間計算・検出部２０３へ出力する。
【００６２】
停止時間計算・検出部２０３は、電圧検出部２０１−２から出力される電圧検出信号及び適当なクロック信号に基づいて、上記ＯＮレベルの電圧検出信号の持続時間を測定する。なお、クロック信号は、停止時間計算・検出部２０３が発生させてもよく、図示しないクロック発生部から受信し、それを用いてもよい。
【００６３】
そして、判定部１０３は、停止時間計算・検出部２０３によって測定された持続時間及び所定の判定時間に基づいて、ＣＰＵ１０２１によって上記システムデータ等が揮発性メモリ１０１２へ退避されたか否かを判定する。例えば、図５のように、所定の判定時間をｘ秒とし、電源断発生後、ｘ秒以上ＯＮレベル電圧が持続していた場合には、判定部１０３は、ＣＰＵ１０２１によって、上記システムデータ等の退避保存が完了したと判定する。また、ＯＮレベル電圧の持続時間がｘ秒未満であった場合には、ＣＰＵ１０２１によって、上記システムデータ等の退避保存が完了していないと判定する。
【００６４】
ショットキーダイオード３及び電解コンデンサ４は、図４のように、電源１０４と制御部１０２との間に配置される。上述したように、電源断が発生してもある程度の時間（例えば、数百ミリ秒程度）は、電解コンデンサ４の作用によって、制御部１０２は電源の供給を受け、制御部１０２は動作を行うことができる。なお、電源断後に制御部１０２に電源を供給するものとしては、上記電解コンデンサ４に限定されず、例えば、充放電可能な電池等であってもよい。この場合、電池等は、コンピュータシステム１の通常動作時において、電源１０４によって充電されてもよい。
【００６５】
次に、第２の実施形態のコンピュータシステム１の起動動作について詳細に説明する。図６は、第２の実施形態における、コンピュータシステム１の起動動作フローを示す。
【００６６】
まず、前提としてコンピュータシステム１は、パワーＯＮされ、通常動作状態にあるとする（Ｓ６０１）。
【００６７】
上記通常動作状態において、何かしらの理由でコンピュータシステム１に再起動が働く場合を考える。ここで再起動が働く例としては、ユーザの操作等によるコンピュータシステム１のパワーＯＦＦまたはリセットや停電、コンセントの抜去等による電源断である。
【００６８】
電圧検出部２０１−１は、コンピュータシステム１の電源断の発生を監視する（Ｓ６０２）。
【００６９】
電圧検出部２０１−１が、上記再起動が電源断によるものでなく、例えばユーザの操作等によるコンピュータシステム１の通常のパワーＯＦＦまたはリセットであると判定した場合（Ｓ６０２、ＮＯ）には、ＣＰＵ１０２１は、通常起動用ブートプログラム１０１４を用いて、コンピュータシステム１の上述した起動プロセスに基づいて、通常起動を行う（Ｓ６０６）。例えば、電源断の場合、コンピュータシステム１に対し、突如として電源の供給が無くなるのに対し、通常のパワーオフ（またはリセット）の場合は、コンピュータシステム１は、ユーザによって電源ＯＦＦの操作が実行されたことを受け付け、ＯＳは順序立ててパワーＯＦＦの動作を行う。従って、電圧検出部２０１−１は、これらの電圧変化の違い等に基づいて、電源断と通常のパワーＯＦＦとを区別し、電源断を検出してもよい。
【００７０】
一方、電圧検出部２０１−１が、電源断が発生し、コンピュータシステム１がパワーＯＦＦとなったと判定した場合（Ｓ６０２、ＹＥＳ）には、ＣＰＵ１０２１は、システムデータ等を揮発性メモリ１０１２に退避保存させる。ＣＰＵ１０２１による退避保存動作と同時に、停止時間計算・検出部２０３は、電圧検出部２０１−２が出力する電圧検出信号に基づいて、電源断後に、電解コンデンサ４から制御部１０２に供給される電圧の持続時間の計測を行う（Ｓ６０３）。
【００７１】
判定部１０３は、停止時間計算・検出部２０３が出力する測定結果に基づいて、電源断後、所定の閾値以上の電圧が制御部１０２に供給され、かつその電圧が所定の判定時間以上持続したと判定したか否かを判定する（Ｓ６０４）。すなわち、判定部１０３は、電源断後、システムデータ等を揮発性メモリ１０１２に退避可能な電圧（ＯＮレベル電圧）が、制御部１０２に所定の時間以上供給されたか否かを判定する。
【００７２】
ＯＮレベル電圧が所定の時間以上持続したと判定部１０３が判定した場合（Ｓ６０４、ＹＥＳ）、判定部１０３は、ＣＰＵ１０２１が上記システムデータ等を揮発性メモリ１０１２に退避保存できたと判定し、スイッチ１０２２をＯＮにする。そして、ＣＰＵ１０２１は、ブートプログラム１０１３を用いて、コンピュータシステム１を高速起動させる（Ｓ６０５）。より詳細には、ＣＰＵ１０２１は、高速起動で再起動をかけるために、ブートプログラム１０１３を呼び出し、揮発性メモリ１０１２に退避保存したシステムデータ等を用いて、ハードウェアチェック等を必要最低限にした高速起動動作を行う。
【００７３】
一方、ＯＮレベル電圧の持続時間が所定の時間未満であると判定部１０３が判定した場合（Ｓ６０４、ＮＯ）、判定部１０３は、ＣＰＵ１０２１が、上記システムデータ等を揮発性メモリ１０１２に退避できていないか、または、退避できていない可能性が高いと判断し、スイッチ１０２３をＯＮにする。そして、ＣＰＵ１０２１は、ブートプログラム１０１４を用いて、コンピュータシステム１を通常起動させる（Ｓ６０６）。より詳細には、ＣＰＵ１０２１は、通常起動で再起動をかけるために、ブートプログラム１０１４を呼び出し、コンピュータシステム１の電源チェック、各種周辺ハードウェアの種別判断、動作等のブート処理を行い、通常起動動作を行う。
【００７４】
第２の実施形態において、電圧検出部２０１−１が電源断を検出した場合、ＣＰＵ１０２１は、システムデータ等を揮発性メモリ１０１２に退避保存するとともに、停止時間計算・検出部２０３は、電源断後、制御部１０２に供給される電源電圧の持続時間を測定する。そして、判定部１０３は、上記持続時間に基づいて、ＣＰＵ１０２１がシステムデータ等を退避保存が完了したか否かを判定する。
【００７５】
システムデータ等の退避保存が完了したと判定した場合、ＣＰＵ１０２１は、不揮発性メモリ１０１１に格納される高速起動用のブートプログラム１０１３及び退避保存したシステムデータ等を用いて、コンピュータシステム１の高速起動を行う。
【００７６】
また、システムデータ等の退避保存が完了していないと判定した場合、ＣＰＵ１０２１は、不揮発性メモリ１０１１に格納される通常起動用のブートプログラム１０１４を用いて、コンピュータシステム１の通常起動を行う。
【００７７】
従って、第２の実施形態によれば、電源供給が不安定になりやすい環境下においても、即時にコンピュータシステムを再起動させ、電源断前の作業内容を直ちに復帰させることができる。
【００７８】
以上、本発明の各実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。すなわち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。なお、各図面に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【符号の説明】
【００７９】
１    コンピュータシステム
１０１    記憶部
１０１１    不揮発性メモリ
１０１２    揮発性メモリ
１０１３、１０１４    ブートプログラム
１０２    制御部
１０２１    ＣＰＵ
１０２２、１０２３    スイッチ
１０２４、１０４、２０５    電源
１０３    判定部
２    電源断検出回路部
２０１    電圧検出部
２０２    検出レベル設定部
２０３    停止時間計算・検出部
２０４    判定レベル設定部
３    ショットキーダイオード
４    電解コンデンサ
【図１】
2016045534.tif 000003
【図２】
2016045534.tif 000004
【図３】
2016045534.tif 000005
【図４】
2016045534.tif 000006
【図５】
2016045534.tif 000007
【図６】
2016045534.tif 000008