(57)【要約】  いくつかの実施形態において、コンピューティングシステムに対し電力障害によるメモリのデータの損失を防止するための構成が提供される。電力障害が発生すると、あらゆる保留中のメモリ書込み動作を完了してもよく、汚染されたキャッシュラインをメモリに戻すようにフラッシュしてもよい。その後、コンピューティングシステムを損失防止状態にしてもよく、その状態では、メモリを除くコンピューティングシステムのすべてのコンポーネントに対し電源をオフにしてもよい。メモリは、バッテリを含むバッテリパックによって電力を供給され、セルフリフレッシュ状態にある。電源が復帰すると、コンピューティングシステムで実行されているアプリケーション及びオペレーティングシステムは、メモリに保持されているデータに少なくとも部分的に基づき、電力障害が発生した時に残されているものを再開してもよい。他の実施形態が説明され且つ特許請求される。【選択図】
2008522322.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムにおいて電力障害によるデータ損失を防止する方法であって、
前記コンピューティングシステムにおいて電力障害を検出すること、
前記電力障害が検出された後、保留中のメモリ書込み動作を完了すると共に、汚染されたキャッシュラインをメモリにフラッシュすること、及び
前記保留中の書込み動作が完了し前記汚染されたキャッシュラインが前記メモリにフラッシュされた後、前記コンピューティングシステムを損失防止状態にすること
を含む、コンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項２】
前記メモリは揮発性メモリを含み、該揮発性メモリは、プロセッサ及びディスクドライブのうちの少なくとも１つにライトバックキャッシュを含む、請求項１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項３】
前記電力障害は、交流（ＡＣ）電源の障害を含む、請求項１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項４】
前記電力障害が検出された後、前記保留中のメモリ書込み動作を完了し前記汚染されたキャッシュラインを前記メモリにフラッシュするように、状態機械及びシステム管理割込み（ＳＭＩ）のうちの少なくとも一方をトリガすることをさらに含む、請求項１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項５】
前記コンピューティングシステムが前記損失防止状態になると、前記メモリを除く該コンピューティングシステムのすべてのコンポーネントに対する電源をオフにすることをさらに含む、請求項１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項６】
電源が復帰した時に前記メモリに保存されているデータに基づき、前記電力障害の発生する直前の前記コンピューティングシステムの状態を復元することをさらに含み、前記保存されているデータは、前記電力障害が発生する直前のハードウェア状態を含む、請求項５に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項７】
前記ハードウェア状態は、仮想マシンモニタ（ＶＭＭ）によって前記メモリに保持され、該ＶＭＭは、オペレーティングシステムに対し、前記コンピューティングシステムのハードウェアに関する情報を提供する、請求項６に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項８】
前記ＶＭＭは、前記ハードウェア状態を、前記電力障害が発生する直前の状態に復元し、前記電源が復帰する時、該復元されたハードウェア状態を前記オペレーティングシステムに提供する、請求項７に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項９】
前記損失防止状態は、前記メモリのデータがバッテリを使用してリフレッシュされる状態を含み、該バッテリは少なくとも２つのＡＡサイズのバッテリを含む、請求項１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項１０】
前記バッテリを交換する必要のある時を検出すること、及び
前記バッテリを交換する必要のある時に該バッテリを交換するように前記コンピューティングシステムのユーザに警報を送出すること
をさらに含む、請求項９に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する方法。
【請求項１１】
コンピューティングシステムにおいて電力障害によるデータ損失を防止する装置であって、
前記コンピューティングシステムのコンポーネントによってアクセス可能なデータを格納するメモリと、
電力障害を検出する電源制御ロジックと、
前記電源制御ロジックによって前記電力障害が通知されると、保留中のメモリ書込み動作を完了し、汚染されたキャッシュラインを前記メモリにフラッシュする、電力障害処理機構と、
前記保留中のメモリ書込み動作が完了し、前記汚染されたキャッシュラインが前記メモリにフラッシュされた後、該メモリにおけるデータ損失を防止するために、該メモリの前記データをリフレッシュするように該メモリに電力を供給するバッテリパックと
を具備する、コンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１２】
前記メモリは揮発性メモリを含み、該揮発性メモリは、プロセッサ及びディスクドライブのうちの少なくとも一方にライトバックキャッシュを含む、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１３】
前記バッテリパックは、少なくとも２つのＡＡサイズのバッテリを含む、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１４】
前記電力障害は、交流（ＡＣ）電源の障害を含む、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１５】
前記バッテリパックは、前記保留中のメモリ書込み動作が完了し、前記汚染されたキャッシュラインが前記メモリにフラッシュされた後、該メモリの前記データをリフレッシュするために該メモリにのみ電力を供給する、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１６】
前記メモリに結合され、該メモリとの間のデータトラフィックを処理するメモリコントローラと、
前記電力障害が発生した後に前記メモリに電力を供給するために前記バッテリパックが使用される場合に、該バッテリパックからの電流が電源内に流れ込まないようにする第１の分離回路であって、該電源は交流（ＡＣ）電源を含む、第１の分離回路と、
前記メモリに電力を供給するために前記電源が使用される場合に、該電源からの電流が前記バッテリパック内に流れ込まないようにし、且つ該電源が存在する場合に、前記バッテリパックが前記メモリに電力を供給しないようにする第２の分離回路と、
前記メモリに電力を供給するために前記バッテリパックが使用される場合、該バッテリパックが前記メモリコントローラに電力を供給しないようにする第３の分離回路と
をさらに具備する、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１７】
前記バッテリパックによって提供される出力電圧を調整する電圧調整器をさらに具備する、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１８】
前記メモリに前記バッテリパックによって電力が供給される時間をカウントするカウンタを含むリアルタイムクロックウェルと、
前記リアルタイムクロックウェルに結合され、前記カウントされる時間が所定限界を超過する時に前記バッテリパックのバッテリを交換する警報を送出する警報送出機構であって、前記所定限界は前記バッテリパックで使用される前記バッテリの仕様に基づいて設定される、警報送出機構と
をさらに具備する、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項１９】
前記電力障害処理機構は、前記保留中の書込み動作を完了し、状態機械及び少なくとも１つのシステム管理割込み（ＳＭＩ）ハンドラのうちの少なくとも１つを使用して前記汚染されたキャッシュラインを前記メモリにフラッシュする、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項２０】
前記電力障害処理機構は、前記保留中の書込み動作を完了し、前記汚染されたキャッシュラインを前記メモリにフラッシュした後、前記コンピューティングシステムを損失防止状態にする、請求項１１に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項２１】
前記損失防止状態は、前記メモリのデータが前記バッテリパックによって提供される電力を使用してリフレッシュされる状態を含む、請求項２０に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項２２】
前記電力障害処理機構は、前記コンピューティングシステムが前記損失防止状態になる時に、前記メモリを除く該コンピューティングシステムのすべてのコンポーネントに対する電源をオフにする、請求項２０に記載のコンピューティングシステムにおいて電力障害によるデータ損失を防止する装置。
【請求項２３】
コンピューティングシステムであって、
少なくとも１つのプロセッサと、
該コンピューティングシステムのコンポーネントに電力を供給する電源と、
前記少なくとも１つのプロセッサによってアクセス可能なデータを格納するメモリと、
電力障害が発生した後に前記メモリの前記データをリフレッシュするように該メモリに電力を供給するバッテリパックと
を具備する、コンピューティングシステム。
【請求項２４】
前記メモリは揮発性メモリを含み、該揮発性メモリは、プロセッサ及びディスクドライブのうちの少なくとも一方にライトバックキャッシュを含む、請求項２３に記載のコンピューティングシステム。
【請求項２５】
前記バッテリパックは、少なくとも２つのＡＡサイズのバッテリを含む、請求項２３に記載のコンピューティングシステム。
【請求項２６】
前記電源は、交流（ＡＣ）電源を含む、請求項２３に記載のコンピューティングシステム。
【請求項２７】
前記電力障害を検出する電源制御ロジックと、
前記電源制御ロジックによって前記電力障害が通知されると、保留中のメモリ書込み動作を完了し、状態機械及び少なくとも１つのシステム管理割込み（ＳＭＩ）ハンドラのうちの少なくとも１つを使用して汚染されたキャッシュラインを前記メモリにフラッシュする、電力障害処理機構と
をさらに具備する、請求項２３に記載のコンピューティングシステム。
【請求項２８】
前記電力障害処理機構は、前記保留中の書込み動作を完了し、前記汚染されたキャッシュラインを前記メモリにフラッシュした後、前記コンピューティングシステムを損失防止状態にし、該損失防止状態は、前記メモリのデータが前記バッテリパックによって提供される電力を使用してリフレッシュされる状態を含む、請求項２７に記載のコンピューティングシステム。
【請求項２９】
前記電力障害処理機構は、前記コンピューティングシステムが前記損失防止状態になる時、前記メモリを除く該コンピューティングシステムのすべてのコンポーネントに対する電源をオフにする、請求項２７に記載のコンピューティングシステム。
【請求項３０】
前記メモリに結合され、該メモリとの間のデータトラフィックを処理するメモリコントローラと、
前記バッテリパックによって提供される出力電圧を調整する電圧調整器と、
前記電力障害が発生した後に前記メモリに電力を供給するために前記バッテリパックが使用される場合、該バッテリパックからの電流が前記電源に流れ込まないようにする第１の分離回路と、
前記電源が使用される場合に前記メモリに電力を供給するために、該電源からの電流が前記バッテリパックに流れ込まないようにし、且つ該電源が存在する場合に、該バッテリパックが前記メモリに電力を提供しないようにする第２の分離回路と、
前記メモリに電力を供給するために前記バッテリパックが使用される場合に、該バッテリパックが前記メモリコントローラに電力を供給しないようにする第３の分離回路と
をさらに具備する、請求項２３に記載のコンピューティングシステム。
【請求項３１】
前記メモリに前記バッテリパックによって電力が供給される時間をカウントするカウンタを含むリアルタイムクロックウェルと、
前記リアルタイムクロックウェルに結合され、前記カウントされる時間が所定限界を超過する時に前記バッテリパックのバッテリを交換する警報を送出する警報送出機構であって、前記所定限界は前記バッテリパックで使用される前記バッテリの仕様に基づく、警報送出機構と
をさらに具備する、請求項２３に記載のコンピューティングシステム。
【請求項３２】
少なくとも１つのオペレーティングシステムに対し、前記コンピューティングシステムのハードウェアに関する情報を提供し、且つ前記メモリにハードウェア状態を保持する、仮想マシンモニタ（ＶＭＭ）をさらに具備する、請求項２３に記載のコンピューティングシステム。
【請求項３３】
前記ＶＭＭは、前記電源が復帰すると、前記ハードウェア状態を前記電力障害が発生する直前の状態に復元し、該復元したハードウェア状態を前記オペレーティングシステムに提供する、請求項３２に記載のコンピューティングシステム。
【請求項３４】
前記電力障害中に前記メモリに保存されたデータに少なくとも部分的に基づき、該電力障害が発生した時に残された処理を再開し、前記保存されたデータは、前記電力障害が発生する直前の前記ハードウェア状態を含む、請求項３２に記載のコンピューティングシステム。
【請求項３５】
プロセッサによってアクセスされると、
前記コンピューティングシステムにおいて電力障害を検出すること、
前記電力障害が検出された後、保留中のメモリ書込み動作を完了すると共に、汚染されたキャッシュラインをメモリにフラッシュすること、及び
前記保留中の書込み動作が完了し前記汚染されたキャッシュラインが前記メモリにフラッシュされた後、前記コンピューティングシステムを損失防止状態にすることであって、該損失防止状態は、前記メモリのデータがバッテリを使用してリフレッシュされる状態を含み、前記メモリは揮発性メモリを含み、該揮発性メモリは、プロセッサ及びディスクドライブのうちの少なくとも一方にライトバックキャッシュを含む、損失防止状態にすること
をもたらす命令が格納される記憶媒体を具備する物品。
【請求項３６】
前記電力障害は、交流（ＡＣ）電源の障害を含む、請求項３５に記載の物品。
【請求項３７】
前記命令はまた、前記プロセッサによってアクセスされると、
前記電力障害が検出された後、前記保留中のメモリ書込み動作を完了し前記汚染されたキャッシュラインを前記メモリにフラッシュするように、状態機械及びシステム管理割込み（ＳＭＩ）のうちの少なくとも一方をトリガすること、及び
前記コンピューティングシステムが前記損失防止状態になると、前記メモリを除く該コンピューティングシステムのすべてのコンポーネントに対する電源をオフにすること
をもたらす、請求項３５に記載の物品。
【請求項３８】
前記命令は、前記プロセッサによってアクセスされると、電源が復帰した時に前記メモリに保存されているデータに基づき、前記電力障害の発生する直前の前記コンピューティングシステムの状態を復元することをさらにもたらし、前記保存されているデータは、前記電力障害が発生する直前のハードウェア状態を含む、請求項３７に記載の物品。
【請求項３９】
前記ハードウェア状態は、仮想マシンモニタ（ＶＭＭ）によって前記メモリに保持され、該ＶＭＭは、前記電源が復帰すると、前記ハードウェア状態を前記電力障害が発生する直前の状態に復元し、且つ該復元されたハードウェア状態をオペレーティングシステムに提供する、請求項３８に記載の物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的にはコンピューティングシステムにおけるデータ保護に関し、詳細には、電力障害によるデータ損失の防止に関する。
【背景技術】
【０００２】
大部分のデスクトップコンピュータ及びサーバは、交流（ＡＣ）入力源および直流（ＤＣ）出力を備える電源を使用する。ＡＣ電源に障害が発生し、そのためＤＣ電源に障害が発生すると、ほとんどの種類のダイナミックメモリ及びスタティックメモリにあるデータが、不揮発性メモリにデータを迅速に格納するステップをとらない限り、失われることになる。ＡＣ電力障害に対処するために種々の方式が開発されている。１つの方式は、コンピュータに対しそのＡＣ電源に障害が発生した場合にＤＣ電力を供給し続ける無停電電源（ＵＰＳ）を使用するというものである。しかしながら、ＵＰＳには、相当な大容量、大重量、及びバッテリが消耗しつつある時を報告するための余分のＵＳＢ又はシリアルポートケーブルが必要である。また、ＵＰＳは、コストがかかるために、多くの個々のパーソナルコンピュータ（ＰＣ）ユーザに魅力のないものとなる可能性がある。
【０００３】
別の方式では、ボックス内部により小さく且つ安価な「ＵＰＳ」を構築しようと試みる。こうしたボックス内「ＵＰＳ」は、従来のＵＰＳのＡＣ−ＤＣ段を省くことができるため、従来のＵＰＳに比較してより小型且つ安価であり、余分のケーブル、ボックス又は電圧調整器が不要である。しかしながら、この方式では、ＡＣ電源に障害が発生した後、コンピュータが揮発性メモリデバイス（ディスク等）のすべてのデータを不揮発性メモリデバイスにコピーすることができ得るように、ボックス内「ＵＰＳ」の容量は十分大きい必要がある。ボックス内部「ＵＰＳ」はまた、非常に高い電流ドレインをサポートする必要もある。安価なバッテリは、高ドレイン及び高容量の両方に対して最適化されない。
【０００４】
さらに別の方式は、メインメモリに対して不揮発性メモリを使用することであり得るが、この方式を、性能又はコストにおいて、メインメモリに対して揮発性メモリ（たとえばダイナミックランダムアクセスメモリ（ＤＲＡＭ））を使用することに近づけることができる既存の技術はない。さらに別の方式は、ＡＣ電源に障害が発生した場合に、揮発性メインメモリの内容を不揮発性メインメモリに即座にコピーすることであり得る。しかしながら、この方式は、揮発性メインメモリ及び不揮発性メインメモリの両方が必要であるため、メモリコストをほとんど二倍にする。これらの方式のすべてが、コスト、性能及び重量の問題のために個々のＰＣユーザを満足させない。
【０００５】
本開示の特徴及び利点は、本開示の以下の詳細な説明から明らかとなろう。
【発明を実施するための最良の形態】
【０００６】
コンピューティングシステム（たとえばデスクトップコンピュータ及び／又はサーバ）にＡＣ電力障害が発生すると、こうした障害が検出されてから且つＤＣ電源が無効になるまでの短期間に、ＡＣ電源のインダクタンス及びキャパシタンスが、通常、コンピューティングシステムに対してＤＣ出力電力を維持することができる。この短期間の間、いかなる保留中のメモリ書込み動作も完了することができ、「汚染された（dirty）」キャッシュライン、すなわちメインメモリの対応する値に一致しないキャッシュラインを、コンピューティングシステムのメインメモリにフラッシュすることができる。その後、コンピューティングシステムを損失防止状態にすることができ、その電源下では、コンピューティングシステムのメインメモリを除くすべてのコンポーネントをオフにすることができる。通常、メインメモリは、ＤＲＡＭ等の揮発性メモリを含み、その中のデータは、データ損失を防止するために定期的にリフレッシュされる必要がある。損失防止状態では、ＤＲＡＭは、必要な電力が低レベルでよく、データの損失を回避するためにセルフリフレッシュ動作を実行することができる。
【０００７】
コンピューティングシステムが損失防止状態にある時に電力を提供するためにバッテリパックを使用してもよい。バッテリパックは、２つ又は３つのＡＡサイズバッテリか又は他のサイズ／タイプのバッテリを含む。バッテリパックは、充電可能なバッテリを含んでもよく、充電不可能なバッテリを含んでもよい。コンピューティングシステムが、プロセッサ又はディスクドライブにライトバックキャッシュを有する場合、ライトバックキャッシュのデータもまた、損失防止状態下でバッテリパックによって供給される電力を使用してリフレッシュしてもよい。ＡＣ電源が復帰し、そのためＤＣ電源が復帰すると、コンピューティングシステムは、メインメモリに格納されたデータに基づいて作業を再開することができる。バッテリパックが充電不可能なバッテリを使用して作成されている場合、バッテリがほぼ消耗すると警告を発してもよい。そして、コンピューティングシステムのユーザは、バッテリを交換してもよい。また、ＡＣ電力障害の場合の損失に対しデータが適切に保護されないため、ユーザに対し、バッテリが交換されるまでいかなる新たなデータもコンピュータに入力しないように忠告する。
【０００８】
明細書において開示する技法の「一実施形態」と言及する際、それは、その実施形態に関連して説明する特定の特徴、構造又は特性が、開示する技法の少なくとも１つの実施形態に含まれることを意味する。このため、明細書を通じてさまざまな場所に現われる「一実施形態では」という句が現われる場合、それは必ずしも全てが同じ実施形態を言及しているとは限らない。
【０００９】
図１は、電力障害によるデータ損失を防止するためにバッテリパックを使用してもよい汎用コンピューティングシステム１００を示す。なお、図に示す詳細は必ずしも必要ではなく、異なる詳細を有するシステムを使用してもよいということに留意されたい。図示しないが、コンピューティングシステム１００は、交流（ＡＣ）源から（たとえば電気コンセントを接続することにより）電力を受け取るように想定されている。コンピューティングシステムは、バス１１５に結合される１つ又は複数のプロセッサ１１０を備える。プロセッサ１１０は、種々の異なるタイプ（たとえば、Ｐｅｎｔｉｕｍ（登録商標）ファミリプロセッサ）を含んでもよい。
【００１０】
コンピューティングシステム１００はまた、バス１１５に結合されるチップセット１２０を含んでもよい。チップセット１２０は、１つ又は複数の集積回路パッケージ又はチップを含んでもよい。チップセット１２０は、たとえばＢＩＯＳファームウェア、キーボード、マウス、記憶デバイス、ネットワークインタフェース等、コンピューティングシステム１００の他のコンポーネント１６０への且つ／又はそこからのデータ転送をサポートする１つ又は複数のデバイスインタフェース１３５を含んでもよい。チップセット１２０を、周辺機器相互接続（ＰＣＩ）バス１７０に結合してもよい。チップセットセット１２０は、ＰＣＩバス１７０へのインタフェースを提供するＰＣＩブリッジ１４５を含んでもよい。ＰＣＩブリッジ１４５は、ＣＰＵ１１０及び他のコンポーネント１６０と、たとえば音声デバイス１８０及びディスクドライブ１９０等の周辺デバイスとの間のデータ経路を提供することができる。図示しないが、他のデバイスもまたＰＣＩバス１７０に結合してもよい。
【００１１】
さらに、チップセット１２０は、メインメモリ１５０に結合されるメモリコントローラ１２５を含んでもよい。メインメモリ１５０は、プロセッサ１１０又はシステムに含まれる他の任意のデバイスによって実行されるデータ及び命令のシーケンスを格納してもよい。メモリコントローラ１２５は、プロセッサ１１０及びコンピューティングシステム１００の他のデバイスに関連するメモリトランザクションに応答して、メインメモリ１５０にアクセスしてもよい。一実施形態では、メモリコントローラ１５０をプロセッサ１１０又は他の何らかの回路に配置してもよい。メインメモリ１５０は、メモリコントローラ１２５がデータを読み出し且つ／又はデータを書き込むことができるアドレス指定可能な記憶位置を提供するさまざまなメモリデバイスを含んでもよい。メインメモリ１５０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）デバイス、ダブルデータレート（ＤＤＲ）ＳＤＲＡＭデバイス又は他のメモリデバイス等の１つ又は複数の異なるタイプのメモリデバイスを含んでもよい。
【００１２】
メインメモリ１５０は、ＤＲＡＭベースのデバイス等の揮発性メモリデバイスを含んでもよい。揮発性メモリデバイスは、そこに格納されたデータの損失を防止するように定期的にリフレッシュされる必要がある。そのため、コンピューティングシステム１００がＡＣ電源を喪失すると、揮発性メモリデバイスに格納されているデータの損失を防止するための処置がとられる必要がある。電源（図示せず）は、ＡＣ電源に障害が発生している時の指示を提供する。こうした指示は、電力障害処理機構１３０に送出される。ＡＣ電力障害が発生した後の短期間、ＡＣ電源のインダクタンス及びキャパシタンスがＤＣ電源供給を維持することができるため、電力障害処理機構がいかなるデータ損失も防止するために対応する処置を即座にとることができるように、電源は、障害が発生するとすぐにＡＣ電力障害を報告する必要がある。
【００１３】
電力障害処理機構１３０は、電源によってＡＣ電力障害が通知されると、電力がＡＣ電源のインダクタンス及びキャパシタンスによって維持されている短期間の間に、あらゆる保留中のメモリ書込み動作を完了し、汚染されたキャッシュラインをメインメモリ１５０に戻すようにフラッシュすることができる。その後、電力障害処理機構は、コンピューティングシステムを損失防止状態にすることができ、その状態では、メインメモリを除くすべてのデバイスに対する電源をオフにしてもよい。メインメモリに対し、バッテリパックによって電力を供給してもよい。一実施形態では、チップセット１２０が、ＡＣ電力障害を検出し、ＡＣ電力障害を電源処理機構に通知することができるロジックを有してもよい。
【００１４】
電力障害処理機構１３０は、チップセット１２０の内部にあるように示されているが、コンピューティングシステム１００の他のデバイス（たとえばプロセッサ１１０）のコンポーネント及び／又は機能を含んでもよい。たとえば、電力障害処理機構１３０は、プロセッサ１１０の状態機械を通じてあらゆる保留中のメモリ書込み動作を完了してもよい。電力障害処理機構は、システム管理割込み（ＳＭＩ）ハンドラを通じて汚染されたキャッシュラインをメインメモリに戻すようにフラッシュしてもよい。汚染されたキャッシュラインがメインメモリに戻るようにフラッシュされた後、ＳＭＩハンドラは、コンピューティングシステムを損失防止状態にしてもよい。損失防止状態下では、メインメモリへの電力を、バッテリパックによって供給してもよく、メモリはデータを維持するためにセルフリフレッシュを実行してもよい。ＡＣ電源が復帰すると、プロセッサ１１０は、メインメモリに格納されたデータに基づいて、ＡＣ電力障害によって中断された作業を再開してもよい。
【００１５】
図１に示すようなコンピューティングシステム１００を、オペレーティングシステム（ＯＳ）に対してハードウェア仮想化環境を提供するように構成してもよい。図２は、ハードウェア仮想化環境２００の１つの例示的な構造を示す。なお、図に示す詳細は必ずしも必要ではなく、異なる詳細を有するシステムを使用してもよいということに留意されたい。プラットフォームハードウェア２４０は、チップセット、メモリ、ディスクドライブ及びＩ／Ｏデバイス等のデバイスを含むコンピューティングシステムのハードウェアを備える。プラットフォームハードウェア２４０は、ＯＳ又はＶＭＭ２２０等の仮想マシンモニタ（ＶＭＭ）を実行することができる。ＶＭＭ２２０は、プラットフォームハードウェアで実行されて複数の仮想マシン（ＶＭ）２１０（たとえば、２１０Ａ、…、２１０Ｎ）の動作を可能にするソフトウェア層を提供する。各ＶＭは、それ自体のＯＳ、たとえばゲストＯＳ２０４（たとえば２１４Ａ及び２１４Ｎ）を実行することができる完全な物理マシンのように振る舞う。各ゲストＯＳ上で１つ又は複数のアプリケーション（たとえば２１２Ａ及び２１２Ｎ）を実行してもよい。通常、各ＶＭには、それが唯一の物理マシンであるという錯覚が与えられる。
【００１６】
ＶＭＭは、ＶＭが、他のＶＭ又はハードウェアの動作（たとえばシステムコール）に影響を与える可能性がある動作を実行しようと試みる時にいつでも、システムを制御する。ＶＭＭは、コンピュータシステム全体が破壊されないことを確実にするようにＶＭに対する動作に影響を与える。ＶＭＭはまた、プラットフォームハードウェアのコンポーネントの状態の知識を有し、ハードウェアコンポーネントの状態をメインメモリ（たとえば図１に示すようなメインメモリ１５０）に格納する。異なるオペレーティングシステム、又は同じオペレーティングシステムの別個のインスタンスが、各ＶＭで実行されてもよい。ＶＭは通常互いから隔離されているため、１つのＶＭにおけるＯＳのクラッシュは、通常他のＶＭに影響を与えない。図２は１つのＶＭＭのみを示すが、２つ以上のＶＭＭを採用する他の代替の実施態様があってもよく、たとえばＶＭＭを別のＶＭＭ内で、又は別のＶＭＭ上で実行してもよい。
【００１７】
ＶＭＭ２２０は、コンピューティングシステムにおいて基本入出力システム（ＢＩＯＳ）２３０の態様を利用してもよい。ＢＩＯＳ２３０は、実行されると、コンピューティングシステムのさまざまな機能（たとえばキーボード、ディスクドライブ及び表示画面機能）を基本レベルで制御するファームウェアを含む。コンピューティングシステムの立上げに応じて、コンピューティングシステムのプロセッサは、ＢＩＯＳを実行して、コンピューティングシステムのデバイスの位置を特定し、それを初期化し、検査するパワーオンセルフテストを実施する。ＢＩＯＳには、オペレーティングシステムをロードする責任がある。コンピューティングシステムの動作中、いくつかのＢＩＯＳ機能も使用される。ＢＩＯＳイメージ（すなわち、ＢＩＯＳを定義するプログラムコード及びパラメータ空間）は、コンピューティングシステムに対する電源が取り除かれた場合にその格納された内容を喪失しないメモリに格納される。たとえば、ＢＩＯＳイメージを、フラッシュメモリ、迅速に更新することができる消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）に格納してもよい。さらに、ＢＩＯＳの機能を、拡張可能ファームウェアインタフェース（ＥＦＩ）として知られる拡張可能ファームウェアフレームワークに拡張してもよい。ＥＦＩは、プラットフォームファームウェアとシュリンクラップオペレーティングシステム又は他のカスタムアプリケーション環境との間の抽象プログラムインタフェースを記述する公的な業界仕様である。ＥＦＩフレームワーク標準規格は、ＢＩＯＳ機能を、プラットフォームのＢＩＯＳデバイス（たとえばフラッシュメモリ）に格納されているＢＩＯＳコードによって提供されるものを越えて拡張する規定を含む。より詳細には、ＥＦＩは、一次フラッシュデバイスおよび二次フラッシュデバイス、オプションのＲＯＭ（リードオンリメモリ）、さまざまな永久記憶デバイス（たとえば磁気ディスク、光ディスク等）を含む種々の異なる資源から、且つコンピューティングシステムネットワークにより１つ又は複数のコンピューティングシステムからロードされる、ファームウェアモジュール及びファームウェアドライバの形態でのファームウェアを可能にする。
【００１８】
コンピューティングシステム（たとえば図１に示すようなコンピューティングシステム１００）がそのＡＣ電源を喪失すると、あらゆる保留中のメモリ書込み動作を完了することができ、汚染されたキャッシュラインをメインメモリに戻すようにフラッシュすることができる。メインメモリに対する電源を、バッテリパックによって供給される電力を使用して維持してもよく、メインメモリを低電力セルフリフレッシュ状態にしてもよい。ＡＣ電源が復帰すると、ＶＭＭ２２０がコンピューティングシステムのハードウェアコンポーネントの状態をメインメモリに保持するため、ＡＣ電力障害が発生する前のハードウェア状態をメインメモリから取り出すことができる。ＡＣ電源が復帰する時にコンピューティングシステムを再ブートするのを助けるＢＩＯＳは、ＶＭＭがＡＣ電力障害について知らないため、ＡＣ電力障害が発生したことをＶＭＭに通知し、ＶＭＭに対して、メインメモリからハードウェア情報を取り出すように命令してもよい。ＶＭＭはさらに、取り出されたハードウェア状態をＶＭに提供してもよい。取り出されたハードウェア状態に少なくとも部分的に基づいて、ゲストＯＳ（たとえば２１４Ａ）は、ゲストＯＳ上で実行しているアプリケーション（たとえば２１２Ａ）とともに、ＡＣ電力障害が発生した時に残された処理を再開してもよい。ＶＭＭが任意のハードウェアコンポーネント（たとえばそれらのアドインカード）の状態について知らない場合、それらのコンポーネントに対して物理的なリセットが必要な場合があり、ＶＭＭはこうしたリセットを処理することができなければならない。
【００１９】
図３は、電力障害によるデータ損失を防止するために協働してもよいコンピューティングシステム３００の主な機能コンポーネントを示す。なお、図に示す詳細は必ずしも必要ではなく、異なる詳細を有するシステムを使用してもよいことに留意されたい。図１に示すようなコンピューティングシステム１００に比較して、コンピューティングシステム３００は、バス１１５に結合される１つ又は複数のプロセッサ１１０及び同様にバス１１５に結合されるチップセット１２０等の同様のコンポーネントを備える。同様に、チップセット１２０は、メモリコントローラ１２５及び電力障害処理機構１３０を備える。図１に比較してこれらの同様のコンポーネントに加えて、図３は、電力障害によるデータ損失防止に関連するより詳細なコンポーネントを示す。たとえば、図３は、コンピューティングシステム３００が、コンピューティングシステムに電力を供給する電源３３０を含むことを示す。電源３３０は、電源コンセントに接続する電力ケーブルを通じてＡＣ電力を受け取る。電源３３０は、受け取ったＡＣ電力を直流（ＤＣ）電力に変換し、ＤＣ電圧を調整し、ＤＣ電力をプロセッサ、チップセット、メインメモリ及びコンピューティングシステム３００の他のコンポーネントに供給する。さらに、ＡＣ−ＤＣ変換及びＤＣ電圧調整を実行する回路に関連するインダクタンス及びキャパシタンスが、ＡＣ電源が喪失した後でさえも短期間にわたり電源３３０の出力ＤＣ電圧を維持するのに役立つことができる。この短期間がどれくらいの長さであるかは、電源から引き出される電流並びに電源３３０のインダクタンス及びキャパシタンスによって決まる可能性がある。
【００２０】
電源は、ＡＣ電源損失を即座に検出し、この損失を電力障害処理機構１３０に通知する、電力制御ロジック３３５を備えてもよい。その後、電源処理機構は、プロセッサ１１０の状態機械を使用してあらゆる保留中のメモリ書込み動作を完了してもよい。その間、電源処理機構は、ＳＭＩをトリガし、ＳＭＩハンドラ又は状態機械を通じて、汚染されたキャッシュラインをメインメモリに戻すようにフラッシュしてもよい。通常、保留中のメモリ書込み動作を完了し汚染されたキャッシュラインをメインメモリにフラッシュすることは、出力ＤＣ電圧が電源３３０のインダクタンス及びキャパシタンスによって維持される短期間の間に完了することができる。保留中のメモリ書込み動作が完了し、汚染されたキャッシュラインがメインメモリに戻るようにフラッシュされた後、電力障害処理機構１３０は別のＳＭＩをトリガしてコンピューティングシステムを損失防止状態にしてもよい。
【００２１】
損失防止状態下で、バッテリパック３７０によって電力が供給されるメインメモリ１５０を除くコンピューティングシステム３００のすべてのコンポーネントの電源をオフにしてもよい。バッテリパックは、データが喪失しないようにメインメモリのデータをリフレッシュされた状態で維持するために十分な電力を供給するだけでよい。バッテリパック３７０は、２つ又は３つのＡＡサイズのバッテリを含んでもよい。バッテリパックはまた、他のタイプ又はサイズのバッテリを含んでもよく、充電可能なバッテリ又は充電不可能なバッテリのいずれを使用してもよい。バッテリパックの出力電圧を、電圧調整器３６０によってさらに調整してもよい。ディスクドライブ（図示せず）又はコンピューティングシステム３００のプロセッサがライトバックキャッシュを含む場合、バッテリパックはまた、ライトバックキャッシュに対し、そこに格納されたデータをＡＣ電源が存在しない間保持することができるように限られた電力を提供してもよい。バッテリパック３７０を、コンピューティングシステムのケースの内部に配置してもよい。コンピューティングシステムのユーザが消耗したバッテリを取り除き、バッテリパック内に新しいバッテリを設置することができるように、ケースに小さいパネルドアを設けてもよい。バッテリパックが充電可能なバッテリを使用する場合、必要であれば、ＡＣ電源が存在する時はいつでもバッテリパック内部のバッテリを充電してもよい。
【００２２】
さらに、コンピューティングシステム３００は、第１の分離回路３４０、第２の分離回路３５０及び第３の分離回路（図示せず）を備えてもよい。コンピューティングシステムが損失防止状態にある時、第１の分離回路３４０は、バッテリパック３７０からの電流が電源３３０内に流れ込まないようにしてもよく、第２の分離回路３５０は、バッテリパック３７０がメインメモリ１５０に電力を提供するようにしてもよい。コンピューティングシステムが損失防止状態にない場合（たとえば電源３３０がＡＣ電源を有する場合）、第１の分離回路３４０は、電源３３０に対してメインメモリに電力を提供させてもよく、第２の分離回路３５０は、電源３３０からの電流が電圧調整器３６０及びバッテリパック３７０内に流れ込まないようにしてもよい。また、コンピューティングシステムが損失防止状態にない場合、第２の分離回路３５０は、電源制御ロジック３３５によって通知されると、バッテリパック３７０がいかなる電力もメインメモリ１５０に提供しないようにしてもよい。第１の分離回路３４０は、電源３３０の一部であっても又はそれとは別個であってもよく、第２の分離回路３５０は、電圧調整器３６０の一部であっても又はそれとは別個であってもよい。システムが損失防止状態にある時にバッテリパックが電力をメインメモリに供給しないように、メモリコントローラ１２５とメインメモリ１５０との間に第３の分離回路（図示せず）を配置してもよい。第３の分離回路は、メモリコントローラ１２５の一部であっても又はそれとは別個であってもよい。
【００２３】
チップセット１２０は、コンピューティングシステムがＡＣ電源を喪失するか又はオフにされる時でさえも、時間を追跡し続けるようにリアルタイムクロック（ＲＴＣ）ウェル３１０を備える。ＲＴＣウェルは、電源３３０及びバッテリパック３７０から独立したＲＴＣバッテリ３２０によって電力を供給される。ＲＴＣウェルは、メインメモリ１５０がバッテリパック３７０によって電力が供給された時間（hour）等の時間の量をカウントするカウンタ（図示せず）を備えてもよい。カウントされる時間の量が所定閾値に達すると、ＲＴＣウェルは、ＲＴＣウェルに結合される警報送出機構３１５に対し、コンピューティングシステムのユーザがバッテリパックのバッテリを交換することができるように警告信号を送出させてもよい。所定時間閾値は、使用されるバッテリの仕様によって決まる。３ＡＡアルカリバッテリのパックは、１Ｇバイトメモリに対しておよそ７５時間のバックアップを提供することができると推定される（通常、ＡＡアルカリバッテリは約２．５アンペア・時間のエネルギを提供し、５１２Ｍバイトのデュアルインラインメモリモジュール（ＤＩＭＭ）は、その低電力セルフリフレッシュ状態において約５０ｍアンペアを引き出す）。一実施形態では、警報送出機構３１５をＲＴＣウェルと統合してもよい。別の実施形態では、警報送出機構３１５を、ＲＴＣウェルから分離した回路によって実装してもよい。
【００２４】
一実施形態では、コンピューティングシステムが損失防止状態にある間にバッテリバックのバッテリを交換する時にメインメモリにおけるいかなるデータ損失も回避するために、バッテリバックは、消耗したバッテリが取り除かれる前に新たなバッテリをバッテリパックに配置することができるように、バックアップバッテリのための空間を備えてもよい。同じ実施形態において、又は別の実施形態において、コンピュータシステムは、ＡＣ電源が存在する時に、画面上で又は点灯信号のいずれかによって、バッテリパックのバッテリの容量レベルの指示を提供してもよい。その指示が、バッテリの容量が低い（ただし、警報信号をトリガするほど低くはない）ことを示す場合、コンピューティングシステムのユーザは、バッテリが充電不可能である場合にバッテリを交換するように判断してもよい。
【００２５】
図４は、コンピューティングシステムに対する電力障害によるデータ損失を防止する１つの例示的なプロセスのフローチャートを示す。説明の便宜上、例示的なプロセスを、図３に示すようなコンピューティングシステム３００を使用して説明するが、この例示的なプロセスは他の任意のコンピューティングシステムに適用される。プロセスは、ブロック４０５で開始し、ＡＣ電力障害が発生する。コンピューティングシステムにおいてハードウェア仮想化環境が実行されるものとし、ＡＣ電力障害が発生する直前のコンピューティングシステム３００のハードウェアコンポーネントの状態を、メインメモリ１５０に格納してもよい。ブロック４１０において、電源制御ロジック３３５によってＡＣ電力障害を検出してもよい。ブロック４１５において、プロセッサ１１０の状態機械を起動してもよく、ＳＭＩをトリガしてもよい。ブロック４２０において、あらゆる保留中のメモリ書込み動作を完了してもよく、状態機械及び／又はＳＭＩハンドラによって、汚染されたキャッシュラインをメインメモリ１５０に戻すようにフラッシュしてもよい。その後、ブロック４２５において、コンピューティングシステムを損失防止状態にしてもよい。ブロック４３０において、セルフリフレッシュモードにあり且つバッテリパック３７０によって電力を供給される、プロセッサ又はディスクドライブのメインメモリ及び（存在する場合は）ライトバックキャッシュを除き、（コンピューティングシステムのすべてのコンポーネントに対する）すべての電源プレーンをオフにしてもよい。
【００２６】
ブロック４３５において、ＡＣ電源をモニタしてそれが復帰するかを検査してもよい。バッテリパックが消耗する前にＡＣ電源が復帰すると、コンピューティングシステムで実行されているアプリケーション及びゲストＯＳは、ブロック４４０において、ＶＭＭによって保持されているハードウェアコンポーネントの状態及びメインメモリに格納されている他のデータに少なくとも部分的に基づいて、ＡＣ電力障害が発生した時に残されたものを再開してもよい。ハードウェアコンポーネントの状態がＶＭＭに既知でない場合、ＡＣ電源が復帰する時にこのハードウェアコンポーネントをリセットしてもよい。ＡＣ電源が復帰しない場合、ブロック４４５において、バッテリパック３７０のバッテリを交換する必要のある時を検出してもよい。ブロック４４５においてバッテリパックのバッテリを交換する必要があると判断されると、ブロック４５０において、メインメモリ及び／又はライトバックキャッシュのいかなるデータ損失も回避するために、コンピューティングシステムのユーザに対しバッテリを交換するよう警報信号を送出してもよく、そのように判断されない場合、プロセスはブロック４３５に戻る。バッテリを交換している間のメインメモリ及び／又はライトバックキャッシュのいかなるデータ損失も回避するために、消耗したバッテリが取り除かれる前にバッテリパックに新たなバッテリを配置してもよい。
【００２７】
ＡＣ電力障害によるメモリデータ損失を防止する技法を、ハードウェア仮想化環境の文脈で説明したが、当業者は、開示した技法が、ハードウェア仮想化環境を実行しないコンピューティングシステムにも適応されることを容易に理解することができる。
【００２８】
開示した技法の１つの例示的な実施形態を図１〜図４の図に関して説明したが、当業者は、本発明を実装する他の多くの構造及び方法を代替的に使用してもよいということを容易に理解するであろう。たとえば、機能ブロック又はプロセス手続きの実行の順序を変更してもよく、且つ／又は説明した構造、機能ブロック又はプロセス手続きのいくつかを変更、削除、又は結合してもよい。
【００２９】
上述の説明では、開示した技法のさまざまな態様について説明した。説明の目的で、本開示が完全に理解されるために、特定の数、システム及び構成を示した。しかしながら、本開示の利益を得る当業者には、本開示を特定の詳細なしに実施してもよいということが明らかである。他の場合では、本開示を不明瞭にしないために、既知の特徴、コンポーネント又はモジュールを省略、簡略化、結合、又は分割した。
【００３０】
本明細書で説明した本技法の実施形態を、ハードワイヤード回路、デジタル回路、アナログ回路、プログラマブル回路等を含む回路で実装してもよい。また、それらを、コンピュータプログラムで実装してもよい。こうしたコンピュータプログラムを、高水準手続き型言語又はオブジェクト指向プログラミング言語でコード化してもよい。しかしながら、プログラム（複数可）を、望ましい場合はアセンブリ言語又は機械語で実装することができる。言語は、コンパイラ型であってもインタプリタ型であってもよい。さらに、これらの技法を、多種多様のネットワーキング環境で使用してもよい。こうしたコンピュータプログラムを、記憶媒体又はデバイス（たとえば、ハードディスクドライブ、フロッピーディスクドライブ、リードオンリメモリ（ＲＯＭ）、ＣＤ−ＲＯＭデバイス、フラッシュメモリデバイス、デジタル多用途ディスク（ＤＶＤ）又は他の記憶デバイス）に格納してもよく、それらは、本明細書で説明した手続きを実行するように処理システムによって読み出される時、処理システムを構成し動作させるために、汎用又は専用のプログラマブル処理システムによって読み出されることができる。また本開示の実施形態を、処理システムで使用されるように構成される機械可読記憶媒体として実装されるものとみなしてもよく、その場合、そのように構成される記憶媒体により、処理システムは、本明細書で説明した機能を実行するために特定の且つ事前定義された方法で動作する。
【００３１】
開示した技法を、例示的な実施形態に関連して説明したが、この説明は、限定する意味で解釈されるように意図されていない。本開示が関連する技術分野における当業者に明らかである例示的な実施形態及び本開示の他の実施形態のさまざまな変更は、本開示の精神及び範囲内にあるものと考えられる。
【図面の簡単な説明】
【００３２】
【図１】電力障害によるデータ損失を防止するためにバッテリパックを使用してもよい汎用コンピューティングシステムを示す図である。
【図２】ハードウェア仮想化環境の１つの例示的な構造を示す図である。
【図３】電力障害によるデータ損失を防止するために協働してもよいコンピューティングシステムにおける主な機能コンポーネントを示す図である。
【図４】コンピューティングシステムに対する電力障害によるデータ損失を防止する１つの例示的なプロセスのフローチャートを示す図である。
【図１】
2008522322.tif 000003
【図２】
2008522322.tif 000004
【図３】
2008522322.tif 000005
【図４】
2008522322.tif 000006
【国際調査報告】
2008522322.tif 000007
2008522322.tif 000008
2008522322.tif 000009