JP5378308B2 - メイン・メモリのバックアップ方法およびデータ保護システム - Google Patents

メイン・メモリのバックアップ方法およびデータ保護システム Download PDF

Info

Publication number
JP5378308B2
JP5378308B2 JP2010142183A JP2010142183A JP5378308B2 JP 5378308 B2 JP5378308 B2 JP 5378308B2 JP 2010142183 A JP2010142183 A JP 2010142183A JP 2010142183 A JP2010142183 A JP 2010142183A JP 5378308 B2 JP5378308 B2 JP 5378308B2
Authority
JP
Japan
Prior art keywords
area
computer
monitoring
main memory
operating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010142183A
Other languages
English (en)
Other versions
JP2012008672A (ja
Inventor
直幸 荒木
宏幸 内田
健 佐々木
真弘 徳野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2010142183A priority Critical patent/JP5378308B2/ja
Publication of JP2012008672A publication Critical patent/JP2012008672A/ja
Application granted granted Critical
Publication of JP5378308B2 publication Critical patent/JP5378308B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンピュータのメイン・メモリに記憶されたデータを保護する技術に関し、さらに詳細にはコンピュータにシャットダウンを伴うようなハングアップが生じたときにメイン・メモリに記憶されたデータを保護する技術に関する。
コンピュータには、中央演算装置(CPU)が直接アクセスするメイン・メモリ(一次記憶装置または主記憶装置ともいう。)として、一般に揮発性のRAMが使用される。またコンピュータには通常、オペレーティング・システム(OS)、デバイス・ドライバ、アプリケーション・プログラム(以下、アプリケーションという。)およびアプリケーションが作成したファイルなどを格納する不揮発性の補助記憶装置(二次記憶装置ともいう。)が搭載される。補助記憶装置としてはハードディスク・ドライブ(HDD)、ソリッド・ステート・ドライブ(SDD)、ハイブリッドHDD、または光学ディスク・ドライブ(ODD)などが採用されている。
メイン・メモリにはアプリケーションが作成したデータが一時的に記憶されている。メイン・メモリに記憶されたデータは、コンピュータの電源が遮断されると消えてしまうのでユーザはコンピュータを停止する前に作成中のデータをHDDに保存する。プロセッサは動作中にハードウエアやソフトウエアの不具合に起因して、ハングアップ(フリーズまたはクラッシュともいわれる。)する。
プロセッサがハングアップするとコンピュータは動作を停止して、キーボードやマウスによる外部からの操作ができなくなり、ディスプレイにいわゆるブルースクリーンが表示される。ブルースクリーンが表示されるとOSがコンピュータを自動的にシャットダウンまたは再起動する。本明細書においては、シャットダウンと再起動はメイン・メモリのデータが消失する点で同義として扱う。自動的にシャットダウンしない場合であっても、ユーザが電源ボタンを押下して強制的にシャットダウンする以外にコンピュータの動作を回復することができなくなる。
このようにハングアップに伴ってシャットダウンが発生すると、メイン・メモリに記憶されている未保存のデータは消失してしまい回復することができない。ユーザは、メイン・メモリに記憶した作業中のデータを意図しないシャットダウンから保護するために、定期的にHDDに保存するようにアプリケーションを設定したり、自らが随時アプリケーションに対して保存操作をしたりしている。
近年メイン・メモリの価格が低下したこととも相まって、コンピュータに搭載されるメイン・メモリの容量は増加する傾向にある。メイン・メモリの容量はビット・サイズに関するコンピュータのアーキテクチャや利用するアプリケーションの種類などにより定まる一定値に達すると、あまりパフォーマンスの増大を期待することができなくなり、一定値以上の領域は余剰の記憶領域になりがちである。メイン・メモリの余剰な記憶領域をソフトウエアで仮想化して二次記憶装置として活用する方法がある。
仮想化されたメイン・メモリの特定の記憶領域をRAMディスク領域または単にRAMディスクという。RAMディスクは高速なアクセスができるため、メイン・メモリの容量を有効に活用する方策の1つである。キャッシュ・メモリとSSDを組み合わせることでもファイル・アクセスの高速化が可能であるが、ビット単価が高額なSSDが必要になったりSSDへの負荷が集中して全体のパフォーマンスの低下を招いたりするという問題が残る。
特許文献1は、OSが管理するメイン・メモリの管理領域が所定領域に制限されているコンピュータ・システムにおいて、制限された所定領域以外の領域である管理外領域をRAMディスクとして利用するプログラムを開示する。同文献のプログラムはPAE(Physical Address Extension)モードを有効にして、ディスク・イメージ上の読み書きしたい箇所にあたるメモリ領域をRAMディスク・ドライバが仮想アドレス空間にマッピングし、OSがRAMディスク・ドライバを介して、4GBを超えるOS管理外領域に対するアクセスを可能にする。また、同文献には、管理外領域に記憶されたデータシステムがシャットダウン、再起動、または休止状態に移行するタイミングで外部記憶装置にバックアップすることが記載されている。
特許文献2は、故障や不意の電源断が生じても、主記憶手段上のRAMティスクの内容が消去されない情報処理装置を開示する。情報処理装置に再起動を必要とするような故障が発生するとOSの故障検出手段が故障を検出する。故障検出手段は、故障内容の把握を行い、情報処理装置を再起動しなければならないと判断した場合、OSで構成した保存手段を起動し、保存手段に主記憶手段上のRAMティスク領域の内容を二次記憶装置内のRAMディスク保存ファイルに保存するよう指示をする。保存手段が主記憶手段上のRAMティスク領域の内容を二次記憶装置内のRAMディスク保存ファイルに保存した後に情報処理装置の電源が遮断される。
特開2010−44503号公報 特開2003−122647号公報
メイン・メモリに記憶されたデータをハングアップから保護するために、メイン・メモリのデータをアプリケーションが自動的にバックアップする場合には、HDDへのアクセスが頻発してアプリケーションを利用する上での作業性が低下する。また、HDDへのアクセスが競合してコンピュータ全体のパフォーマンスが低下する場合がある。さらには、自動バックアップの機能を備えていないアプリケーションには適用できない。また、ユーザが必要に応じて保存操作をする場合には、ユーザにとって煩雑さが増すとともに、前回の保存のタイミングからハングアップが発生するまでのデータは保護されないことになるため、保存されていないデータの増分が多くなると損失が増大する。これは自動バックアップでも同じことである。
コンピュータがハングアップしたときに、メイン・メモリのデータを確実に保護できれば、作業データの安全性を高めることができるとともにRAMディスクとしてのメイン・メモリの利便性が向上する。しかし、コンピュータには、特定のアプリケーションのプロセスを停止するだけで他のアプリケーションは動作を継続できるような軽微な異常から、シャットダウンする以外に対応できない重大なハングアップまでさまざまな状態が存在する。また、アプリケーションには当該アプリケーションだけが停止したような場合は、当該アプリケーションを再起動するとデータを回復できるような機能を備えているものもあるが、コンピュータがシャットダウンしたような場合には回復することができない。
コンピュータを安全方向で動作させるために軽微な異常でもバックアップするとなると、バックアップ動作が頻発してコンピュータのパフォーマンスが低下する。したがって、異常状態を特定してシャットダウンに至るような異常のときだけバックアップ処理を行うことが望ましいが、コンピュータが異常動作をしたときシステムを構成するプログラムがその異常を検出することは容易ではない。
図10は、ハードウエアまたはソフトウエアに異常が発生してからシャットダウンするまでのコンピュータの状態遷移を説明する図である。ステップ1では、アプリケーション、OS、デバイス・ドライバ、およびハードウエアがすべて正常に動作している。ステップ2で、コンピュータのハードウエアまたはソフトウエアに何らかの異常が発生しステップ3でそれが進行する。また、ステップ3からステップ1に戻る場合もある。ステップ4でついにCPUがハングアップしてコンピュータが制御権を失い、マウスおよびキーボードを通じて行う操作もできなくなる。
通常はユーザがコンピュータの異常を認識するのはステップ4である。しかし、現在のコンピュータ・システムでは、ステップ4まで到達するとコンピュータが自動的に電源を遮断してシャットダウンをするか、またはユーザが電源ボタンを操作して強制的にシャットダウンをするしか制御権を回復する方法はなく、データを保護することはできない。したがって、メイン・メモリが記憶しているデータをシャットダウンする前にバックアップするためには、ステップ2からステップ4までの間にステップ3からステップ1に戻るような場合を含む軽微な異常を除いて、シャットダウンを伴う異常を正確に検出する必要がある。
さらに、異常を検出したあとにはステップ5に到達する前にバックアップ作業を終了する必要がある。特許文献2の発明は、OSが情報処理装置の故障を検出してOSがバックアップ処理をしているが、シャットダウンを必要とする異常にはOS自体の異常も含まれる。したがって、特許文献2の発明で対象とする情報処理装置の異常は、ハードウエアやアプリケーションなどのようなOS以外の要素の異常に限られ、OSやHDDのデバイス・ドライバなどに起因して発生するハングアップの対策としては十分ではない。また、異常を検出してからバックアップ処理をするまでの間にシャットダウンする可能性も残る。本発明は、このような背景および課題を解決するものである。
そこで本発明の目的は、メイン・メモリに記憶されたデータをハングアップから保護することができるメイン・メモリのデータ保護システムを提供することにある。さらに本発明の目的は、信頼性の高いRAMディスクを実現するデータ保護システムを提供することにある。さらに本発明の目的は、そのようなデータ保護システムを搭載するコンピュータ、データのバックアップ方法およびコンピュータ・プログラムを提供することにある。
本発明は、メイン・メモリに記憶されたデータをコンピュータがハングアップしたときにシャットダウンする前に不揮発性の記憶装置に保存することができるメイン・メモリのデータ保護システムを提供する。プロセッサは、少なくともOS実行モードまたはSMMで動作する。OS実行モードは、OSが動作するときのプロセッサの動作モードでプロテクト・モードということもできる。不揮発性の記憶装置は、メイン・メモリが実装されるコンピュータと同一の筐体に実装されていても異なる筐体に実装されていてもよい。
メイン・メモリには、データを保護する保護領域が確保される。バックアップの対象とするデータの範囲を容易に特定するために、保護領域はOSが自由にアクセスできない専用の記憶領域として定義することができる。監視プログラムはOS実行モードで動作しているコンピュータがハングアップしていない限り所定の動作をする。SMMに移行した後に監視プログラムが所定の動作をしているか否かを所定のプログラムが判断する。監視プログラムが所定の動作をしていないと判断したときに所定のプログラムがSMMで動作している間にメイン・メモリに記憶されたデータを不揮発性の記憶装置に保存する。
このような構成により、コンピュータがOS実行モードにおいてシャットダウンを伴うようなハングアップをしたときであっても、それをSMMで実行される所定のプログラムが検出することができる。また、SMMに移行するとプロセッサはOS実行モードでの動作を停止するため、OSによるシャットダウン処理が停止するため、不揮発性の記憶装置に保存する前にシャットダウンする確率を低くすることができる。よって、SMMに移行してから保存処理を行うことで、シャットダウン前に確実にメイン・メモリに記憶されたデータをバックアップすることができる。
BIOSは、OSから独立して動作し、かつ、不揮発性の記憶装置のデバイス・ドライバがハングアップしている場合でもそこにアクセスすることができるため、監視プログラムの動作の判断およびデータの保存はBIOSが行うことが望ましい。また、BIOSはシングル・タスクで動作するために、ハングアップする可能性が低いので、ハングアップの検出と保存処理の信頼性が高い。
プロセッサを周期的にSMMとOS実行モードの間を遷移させることで、OS実行モードでの動作を維持しながらSMMで周期的にハングアップしているか否かを監視して、ハングアップを検出したときにバックアップ処理をすることができる。このとき、システム・マネジメント割り込み(SMI)をハードウエアであるチップ・セットが行うようにすれば、ソフトウエアへの依存度の低い方法でSMIを発行できるためハングアップしたあとであっても、高い確率でSMMに移行できる。
監視プログラムが正常に動作しているか否かを所定のプログラムが判断するために、OS実行モードにおいて監視プログラムに監視フラグを設定する動作をさせることができる。所定のプログラムはSMMに移行してから、監視フラグが設定されているか否かを判断し、監視フラグが設定されていると判断したときには、ハングアップしていないと判断して監視フラグを解除した後にOS実行モードに遷移させることができる。その後、ハングアップしなければ監視プログラムは再度監視フラグを設定することができる。
保護領域をRAMディスク領域として利用する場合は、コンピュータの起動時にバックアップ領域から保護領域にイメージ・ファイルをリストアし、かつ、コンピュータをシャットダウンする操作に応答して保護領域に記憶されたイメージ・ファイルをバックアップ領域に保存するように構成することができる。RAMディスク領域は、メイン・メモリの電源が突然停止した場合には、不揮発性の記憶装置にバックアップされているデータ以外は消失する。電池パックを標準として搭載する携帯式コンピュータに本発明のデータ保護システムを搭載すると、メイン・メモリの電源が突然停止することはほとんどなくこのような問題は生じないので都合がよい。
保護領域はまたOS実行モードで動作するアプリケーションの作業領域として利用することもできる。この場合のファイルは、不揮発性の記憶装置に保存される。このような利用形態では、重要な作業をしているときに突然ハングアップしても、不揮発性の記憶装置に保存する前のデータを回復することができる。保護領域をOSがビット数に基づいて直接アドレス指定できる論理アドレス空間を超えている領域に確保するようにすれば、通常では使用できないアドレス範囲にあるメイン・メモリの記憶領域を有効に活用することができる。
監視プログラムは、OSのサービスを受けて動作するアプリケーションとすることができる。この場合、監視プログラムは、その下層で動作するOSやデバイス・ドライバのハングアップに伴って動作を停止するので、その動作を監視することで多くのハングアップまたはそれに準ずる異常状態を検出することができる。また、アプリケーションは、システム・プログラムに比べて動作状態を容易に監視することができるので監視プログラムとして都合がよい。
ハングアップしたときに、プロセッサがSMMに移行しない場合も予想される。この場合、本発明では、ソフトウエアへの依存が少ないコントローラを使用して、外部からの信号で強制的にSMMに移行させるように構成することもできる。また、ハングアップしたときに自動的にシャットダウンするOSの機能を停止するようにプログラムが設定すれば、シャットダウン前のバックアップをより確実に行うことができる。
本発明により、メイン・メモリに記憶されたデータをハングアップから保護することができるメイン・メモリのデータ保護システムを提供することができた。さらに本発明により、信頼性の高いRAMディスクを実現するデータ保護システムを提供することができた。さらに本発明により、そのようなデータ保護システムを搭載するコンピュータ、データのバックアップ方法およびコンピュータ・プログラムを提供することができた。
本実施の形態にかかるコンピュータの主要な構成を示す機能ブロック図である。 メイン・メモリ上に形成された保護領域を説明する図である。 データ保護システムの構成を示す機能ブロック図である。 ブートが完了したときのメイン・メモリにロードされたファイルのデータ構造を示す図である。 メイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。 メイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。 他のデータ保護システムの構成を示す機能ブロック図である。 メイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。 メイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。 異常が発生してからシャットダウンするまでのコンピュータの状態の遷移を説明する図である。
[コンピュータの構成]
図1は、本実施の形態にかかるコンピュータ10の主要な構成を示す機能ブロック図である。本明細書の全体に渡って、同一の要素には同一の参照番号を付与する。コンピュータ10は、電池パック(図示せず。)および充電器(図示せず。)を搭載する携帯式コンピュータとすることができる。CPU11は、インテル(登録商標)のX86シリーズのアーキテクチャを採用し、保護仮想アドレス・モード(Protected Virtual Address Mode)とSMMで動作することができる。保護仮想アドレス・モードは単にプロテクト・モードということもある。
メモリ・コントローラ・ハブ(MCH)13は、メイン・メモリ15へのアクセス動作を制御するためのメモリ・コントローラ機能、およびCPU11と他のデバイスとの間のデータ転送速度の差を吸収するためのデータ・バッファ機能を含むチップ・セットである。MCH13にはCPU11、メイン・メモリ15、グラフィック・プロセッシング・ユニット(GPU)17、およびアイオー・コントローラ・ハブ(ICH)21が接続されている。
メイン・メモリ15は、CPU11が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用する揮発性のRAMである。メイン・メモリ15には、一般領域に加えてCPU11がSMMで動作するときに実行するコードをロードするための領域であるSMRAM領域が定義されている。メイン・メモリ15には本発明により、ハングアップから保護するデータを記憶する領域として保護領域も定義される。GPU17にはLCD19が接続されている。GPU17は、CPU11から受け取った描画命令に基づいてVRAMにイメージを書き込み、所定のタイミングでLCD19に画像イメージのデータを送るための専用プロセッサで、グラフィックス・アクセラレータともいう。
ICH21は周辺入出力デバイスに関するデータ転送を処理するチップ・セットである。ICH21は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI (Serial Peripheral Interface)バス、 PCI(Peripheral Component Interconnect)バス、PCI−Expressバス、およびLPC(Low Pin Count)などのポートを備え、HDD23、USBコネクタ25、およびLPCバス27などが接続されている。ICH21はSMIの発生要因を設定するSMIレジスタを含む。
CPU11がプログラムを実行したり、マザーボードに実装されたハードウエアが温度や電源に関するイベントを生成したりしてSMIレジスタを設定することでICH21はSMI信号をCPU11のSMIピンに送りCPU11をSMMで動作させる。CPU11はSMIACTピンを通じてICH21にSMMでの動作を開始したことを通知する。
MCH13はCPU11がSMMに移行したことの通知をICH21から受け取ることで、メイン・メモリ15に対するアクセスをハードウエアにより制御してSMM環境を構築する。ICH21は、CPU11がSMMで動作している間は、SMRAM領域にロードされたコードがOSやアプリケーション・プログラムにより書き換えられないように保護する。
HDD23はブートディスクで、コンピュータ10が起動するときのブート・イメージを格納している。LPCバス27には、エンベデッド・コントローラ(EC)29およびBIOS_ROM33などの高速なデータ転送を要求しないデバイスが接続される。EC29は、CPU11から独立して動作するマイクロ・コンピューターでコンピュータ10の電源および温度を制御する。EC29には、CPU11とは別系統で電源が供給されて、サスペンド状態でCPU11が動作を停止している間やCPU11がハングアップしたときも動作することができる。EC29はキーボード・コントローラを備えており、キーボード31が接続されている。
BIOS_ROM33は不揮発性で記憶内容の電気的な書き替えが可能なメモリであり、入出力デバイスを制御するためのデバイス・ドライバ、ACPI(Advanced Configuration and Power Interface)の規格に適合し電源およびシステム筐体内の温度などを管理したりハードウエアにアクセスしたりするシステムBIOS、ベクタ・テーブル、コンピュータ10の起動時にハードウエアの試験や初期化を行うPOST(Power-On Self Test)コード、およびパスワード認証を行うための認証コードなどを格納する。
[保護領域]
図2は、メイン・メモリ上に定義された保護領域を説明する図である。保護領域に記憶されたデータは、コンピュータ10がハングアップしたときに本発明の方法によりHDD23にバックアップされる。保護領域は、RAMディスク領域57および特定領域59またはそのいずれか一方として構成することができる。
RAMディスク領域57は、専用のデバイス・ドライバによりOSがHDD23を利用するのと同様のファイル・システムで利用できるように構成されている。本発明にかかるプログラムは、RAMディスク領域57に記憶されたデータを、メイン・メモリ15の電源を停止する際にHDD23にバックアップし、コンピュータを起動してメイン・メモリ15に電源を供給する際にRAMディスク領域57にリストアする。
特定領域59は、ハングアップから保護する必要なファイルを処理するために、一時的にアプリケーションが使用できるようにした作業領域で、RAMディスク領域57とはメイン・メモリ15の電源の停止および供給に伴ってバックアップやリストアが行われない点で異なる。特定領域59に記憶されたデータはメイン・メモリの電源が停止すると消失するので、ファイルは永続的な保存場所としてのHDD23に保存される。
図2(A)〜(C)は、32ビット・アーキテクチャに基づいて保護領域を形成する例を示す。32ビット・アーキテクチャでは、OSが直接アドレス指定できるメイン・メモリ15の論理アドレス空間51は4GBに制限される。しかし、メイン・メモリ15の物理アドレス空間が4GBを越える場合には、物理アドレス空間にOSが直接認識できない論理アドレス空間53が生じる。図2(A)は論理アドレス空間53にRAMディスク領域57を設けた例を示す。
なお、図2(A)のように、論理アドレス領域53に保護領域を形成する際には、OSの物理アドレス拡張機能であるPAEをイネーブルに設定する。PAEは、32ビット・アーキテクチャのアドレス・ラインを36ビット以上のアドレス・ラインに拡張する周知の拡張機能である。図2(B)は、OSが直接認識できる論理アドレス空間51にRAMディスク領域57を設けた例を示す。図2(C)は、論理アドレス空間51に特定領域を設けた例を示す。
図2(D)、(E)は、64ビット・アーキテクチャに基づいて保護領域を形成する例を示す。64ビット・アーキテクチャでは、OSが直接アドレス指定できるメイン・メモリ15の論理アドレス空間は膨大になり、現実にはOSが8GB〜128GB程度のメイン・メモリ15の物理アドレス空間を認識することができるようになっている。図2(D)、(E)では、物理アドレス空間に対してOSが認識できる論理アドレス空間55には制限がないと想定している。
図2(D)、(E)はそれぞれ論理アドレス空間55にRAMディスク領域57または特定領域59を設ける例を示している。なお、本発明においては、RAMディスク領域57と特定領域59を同時に設けることもできる。特定領域59は、アプリケーションがOSを通じてアクセスできる必要があるので、32ビット・アーキテクチャの論理アドレス空間51または64ビット・アーキテクチャの論理アドレス空間55に形成する。
[メモリ・データ保護システム]
図3は、本実施の形態にかかるメイン・メモリのデータ保護システム100の構成を示す機能ブロック図である。データ保護システム100は、コンピュータ10に実装されたソフトウエアとハードウエアで構成されている。新規なソフトウエアは、メモリ管理アプリケーション101、システムBIOS107、および専用ドライバ113の一部である。メモリ管理アプリケーション101は、データ保護システム100の中心的な処理をするためのOS105上で動作するプログラムである。
メモリ管理アプリケーション101は、メイン・メモリ15にRAMディスク領域57および特定領域59またはいずれか一方を設けたり、HDD23にバックアップ領域を設けたりするための処理をする。メモリ管理アプリケーション101は、コンピュータ10がハングアップしたことをシステムBIOS107が監視するための所定の動作をする。本実施の形態では所定の動作として監視フラグを設定する動作を採用することができるが、コンピュータ10がハングアップしているか否かの状態をシステムBIOS107に対して表明できるような他の動作または処理を採用してもよい。
文書作成アプリケーション103は、RAMディスク領域57または特定領域59を利用して文書を作成するプログラムである。OS105は、Windows(登録商標)、または、MAC_OS(登録商標)などを採用することができる。図2(A)のように論理アドレス領域53に保護領域を形成する際には、OS105はPAEを備えているものとする。システムBIOS107は、メイン・メモリ15に本発明の保護領域を確保したり、コンピュータ10がハングアップしたときに保護領域のデータをHDD23にバックアップしたりする新規なコードを含む。システムBIOS107はメモリ管理アプリケーション101により監視フラグが設定されているときはコンピュータ10がハングアップしていないと判断し、監視フラグが設定されていないときはハングアップしたと判断する。
システムBIOS107は、INT13hの割り込みまたはその他のHDD23に対するアクセスをするためのサービス・ルーチンを利用して、RAMディスク領域57に格納されたデータをHDD23にバックアップしり、HDD23からデータを読み取ってRAMディスク領域57にリストアしたりする。
デバイス・ドライバ111は、HDD23の動作を制御したりOS105とHDD23との間のデータ転送を制御したりするプログラムである。専用ドライバ113は、RAMディスク領域57を仮想的にHDD23と同等のディスク・ドライブとして動作させるためのプログラムである。専用ドライバ113は、RAMディスク領域57が論理アドレス空間53に形成される場合は、RAMディスク領域57のアドレスをOSが認識する論理アドレス空間にマッピングする。専用ドライバ113は、OS105がHDD23を管理するファイル・システムと同等のファイル・システムを備えており、OS105およびシステムBIOS107に対してサービスを提供する新規なインターフェースを備えている。
ICH21はSMIレジスタ22を備え、CPU11にSMIピンおよびSMIACTピンで接続されている。ICH21は、CPU11が実行するプログラムの動作から独立して、数ミリ秒といった一定の周期でSMIピンをアサートしてSMIを発行する。ICH21は、SMIを発行する際に、SMIレジスタ22にSMIを発行する要因を設定する。CPU11は、SMIピンがアサートされるとSMMで動作し、SMIACTピンをアサートしてICH21に通知する。
CPU11は、SMMに移行すると最初に必ずSMIハンドラを実行する。SMIハンドラは、SMIが発行されたときにICH21のSMIレジスタ22を参照してSMIの発生要因を調べ、システムBIOS107による監視フラグの確認作業およびバックアップ処理が要求されていることを認識すると制御をシステムBIOS107に移す。CPU11がSMMで動作している間、MCH13はSMRAM領域のアドレスに対するアクセスは許容するが、SMMで動作していないときはSMRAM領域のアドレスに対するアクセスは、メイン・メモリ15の他のアドレスへのアクセスとして処理する。
EC29はLPCバス27から独立したラインでICH21のSMIリクエスト・ピン(SMIREQ)に接続されており、SMIリクエスト・ピンをアサートすることでICH21にSMIの発行を要求することができる。CPU11にハードウエア的な障害が発生した場合はSMIを発行してもSMMに遷移させることはできないが、EC29はキーボード31の入力をCPU11から独立した動作で処理するため、ソフトウエアやICH21の誤作動でSMIを発行できない場合には、キーボード31に割り当てられた専用のキーからの入力に基づいてSMIリクエスト・ピンをアサートできる。
[メイン・メモリのデータ構造]
図4は、コンピュータに電源が投入されブートが完了したときのメイン・メモリ15にロードされたファイルのデータ構造を示す図である。メイン・メモリ15には、一般領域131とSMRAM領域135とACPI_NVS領域137がPOSTコード109により形成されている。一般領域131はOS105がアクセスできる論理アドレス空間で、内部に図2(B)、(D)に示したようにRAMディスク領域57が形成されている。
RAMディスク領域57はOS105がアクセスできずシステムBIOS107だけがアクセスできるようにPOSTコードにより設定された論理アドレス空間である。ACPI_NVS領域137はOS105およびシステムBIOS107のいずれもアクセスできる論理アドレス空間である。ACPI_NVS領域137には、コンピュータ10がハングアップしたか否かをシステムBIOS107が監視するためにメモリ管理アプリケーション101により監視フラグ129が設定される。
一般領域131には、BIOS_ROM33に格納されたプログラムおよびHDD23に格納された専用ドライバ113、POSTコード109、システムBIOS107、メモリ管理アプリケーション101、文書作成アプリケーション103およびOS105などがロードされる。SMRAM領域135には、SMIハンドラ113がロードされ、さらにSSM(State Save Map)127という領域が確保される。SMM127は、CPU11がSMMに移行する直前のレジスタやポインタなどのコンテキストを格納する記憶領域である。
[メモリ・データを保護する手順]
図5、図6は、データ保護システム100がメイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。ここでは、RAMディスク領域57を図2(B)、(D)に示した論理アドレス空間51に形成する場合を例にして説明するが、図5(A)に示した論理アドレス空間53に形成する場合は、OS105のPAEを有効にすることで同様に実現することができる。ブロック201でコンピュータ10の電源が投入されると、ブロック203でCPU11は、最初にBIOS_ROM33の所定のアドレスにアクセスしてPOSTコード109を実行しブートを開始する。
POSTコード109はCPU11のレジスタ、MCH13、メイン・メモリ15などの検査と初期化を行い、メイン・メモリ15が利用可能な状態になると、BIOS_ROM33に格納されたプログラムおよびベクタ・テーブル121を図4に示したようにメイン・メモリ15にロードする。このとき、POSTコード109は、メイン・メモリ15上にOS105がアクセスできる一般領域131、システムBIOS107がアクセスできるRAMディスク領域57およびSMRAM領域137、およびOS105とシステムBIOS107がアクセスすることができるACPI_NVS領域137を形成する。
ブロック205でOS105は、AXレジスタにE820hを設定してINT15h命令を発行し、自らがアクセスできる一般領域131およびACPI_NVS領域137とアクセスできないRAMディスク領域57およびSMRAM領域135を認識する。このとき、OS105は、RAMディスク領域57の開始アドレスとサイズを認識して、メモリ管理アプリケーション101に知らせる。ブロック207では、メモリ管理アプリケーション101が専用ドライバ113にパラメータを設定して初期化する。
ブロック205では、システムBIOS107によりRAMディスク領域57として利用可能な範囲が設定されたが、ブロック207では、メモリ管理アプリケーション101はその範囲内で実際にRAMディスク領域57として使用する範囲の開始アドレスとサイズを設定する。そして、メモリ管理アプリケーション101は、RAMディスク領域57に対して固有のドライブ番号を付与する。文書作成アプリケーション103は、ドライブ番号が付与されたRAMディスク領域57を、HDD23の記憶領域の一部と同じように認識してデータの書き込みまたは読み出しを行うことができる。
ブロック209では、メモリ管理アプリケーション101が、HDD23のマスター・ブート・レコードに定義して形成したHDD23の専用の記憶領域にバックアップ領域を確保してOS105に通知する。通知を受けたOS105は、バックアップ領域にはアクセスしないため、バックアップ領域はRAMディスク領域57に対する専用の記憶領域になる。メモリ管理アプリケーション101は、バックアップ領域をOS105が認識できない別のパティションに形成することもできる。なお、バックアップ領域は、HDD23のマスター・ブート・レコードに一度設定しておけば、メモリ管理アプリケーション101がコンピュータ10の起動ごとに作成する必要はない。
ブロック211では、メモリ管理アプリケーション101がシステムBIOS107に、メイン・メモリ15のRAMディスク領域57およびHDD23のバックアップ領域のサイズ、開始アドレス、ドライブ番号などのアクセス情報を通知する。ブロック213では、システムBIOS213が、バックアップ領域に保存されていたイメージ・ファイルをRAMディスク領域57にリストアする。このように、バックアップ領域とRAMディスク領域57との間では、記憶されている完全なディスク・イメージが転送される。
ブロック215では、メモリ管理アプリケーション101が、ブルースクリーンが表示されたあとのOS105による自動再起動機能を停止するように設定する。この設定により、コンピュータ10の異常がブルースクリーンを伴うものである場合に、バックアップ処理が完了する前にシャットダウンすることをより確実に防ぐことができる。ブロック217では、メモリ管理アプリケーション101がACPI_NVS領域137に監視フラグ129が設定されていればそれを解除する。ブートしてからここまでの手順では、監視フラグ129が設定されることはないので、これは念のための手順であり省くこともできる。
ブロック219では、ブート・ファイルがすべてロードされてブートが完了する。このときCPU11は、プロテクト・モードで動作している。プロテクト・モードでは、OS105が動作してメモリ管理アプリケーション101および文書作成アプリケーション103にさまざまなサービスを提供する。なお、ブロック207からブロック217までの処理は、ブート完了後に文書作成アプリケーション103がRAMディスク領域57を使用する際にメモリ管理アプリケーション101を起動して行うようにしてもよい。
ブロック221では、ユーザが文書作成アプリケーション103を実行して文書作成作業を行う。文書作成アプリケーション103が、作業に利用するメイン・メモリ15上の領域は、RAMディスク領域113とは異なる一般領域113の一部である。その領域は、OS105により割り当てられるが、コンピュータ10がハングアップしたときに保護はされない。文書作成アプリケーション103はRAMディスク領域57をHDD23と同じような1つの独立したディスク・ドライブとして認識し、OS105および専用ドライバ113を通じてRAMディスク領域57からファイルを一般領域131に読み出したり、ファイルをRAMディスク領域57に保存したりすることができる。
ユーザが自動または手動で一般領域113のファイルをRAMディスク領域57に保存しながら文書作成アプリケーション103による作業をしている間に、図6のブロック251に移行する。ブロック251はコンピュータ10が実行する処理手順の一部ではなく、本実施の形態にかかるデータ保護の特徴を説明するために挿入したコンピュータ10の動作状態を示している。ブロック251は、メモリ管理アプリケーション101が正常に動作しているか否かの2つの状態を示している。
この時点でのメモリ管理アプリケーション101の作業は、ブロック253で監視フラグ129を設定することであり、メモリ管理アプリケーション101が正常に動作するということは監視フラグ129を設定したことを意味している。メモリ管理アプリケーション101が監視フラグ129を設定するには、自らが正常に動作するだけでなく、メモリ管理アプリケーション101の正常な動作に影響を与えるOS105、デバイス・ドライバ、およびハードウエアなども正常に動作していることが前提になる。
カーネル・モードで動作するOS105やデバイス・ドライバがハングアップして未処理例外を引き起こしたり、ハードウエア・エラーが発生したりして、LCD19にブルースクリーンを表示するような状態に至ると、コンピュータ10はその状態で動作を停止し、シャットダウンしない限り正常な動作状態に戻すことができない。シャットダウンすると、HDD23にバックアップされていないRAMディスク領域57のデータは消失することになる。
ブルースクリーンを表示する状態になるとメモリ管理アプリケーション101は、監視フラグ129の設定をすることができない。ブルースクリーンの表示は、OS105が行う。したがって、デバイス・ドライバがハングアップしてOS105が制御権を取得できなくなったような場合は、ブルースクリーンが表示されないでコンピュータ10またはCPU11が動作を停止することもある。この場合もメモリ管理アプリケーション101は監視フラグ129を設定できない。
メモリ管理アプリケーション101が正常に動作する場合はブロック253で監視フラグ129を設定してブロック255に移行する。コンピュータ10のハードウエアまたはソフトウエアにメモリ管理アプリケーション101が監視フラグ129を設定できないような異常が生じている場合は、メモリ管理アプリケーション101が監視フラグ129を設定しないで直接ブロック255に移行する。
ブロック255では、ICH21が数ミリ秒の周期で周期的にCPU11に対してSMIを発行している。このときICH21は、SMIレジスタ22に、システムBIOS107にブロック261から269までの処理をさせることを示す発生要因を設定する。ICH21がすでにSMMで動作している場合は、当該SMIの発行は無視される。ブロック255ではCPU11がプロテクト・モードで動作しているときに発行されたSMIだけが実行される。
SMIは、ICH21が専用のSMIピンを利用して発行しているので、CPU11がハングアップしても高い確率でCPU11をSMMに遷移させることができる。しかし、ICH21の動作不良がハングアップの原因になっているような特殊な事情のときには、SMIを発行できない状態でコンピュータ10がハングアップすることもあり得る。
ブロック257もコンピュータ10の処理手順の一部ではなく、コンピュータ10の動作状態を示している。ブロック257は、コンピュータ10がSMIを発行できない状態でハングアップしたか、それ以外の状態かの2つの状態のいずれかを示している。それ以外の状態は、ハングアップしていない状態と、ハングアップしたがICH21がSMIを発行できる状態を含んでいる。
コンピュータ10がハングアップするときは、ブルースクリーンを表示する場合と表示しない場合がある。ユーザがブルースクリーンの表示またはコンピュータ10の動作状態に基づいてコンピュータ10がハングアップしたと判断したときは、ブロック259に移行してキーボード31の特定のキーを押下して強制的にSMIを発行させブロック261に移行する。ただし、ハングアップしてもブロック261、263、265の手順でバックアップ処理が行われて再起動するような場合は、SMIが発行されたことになるので、ユーザはハングアップ後の様子をしばらく観察してから特定のキーを押下することになる。
特定のキーの押下はCPU11から独立して動作するEC29で検出され、EC29はICH21のSMIリクエスト・ピンをアサートしてSMIの発行を要求する。ICH21は、EC29に接続されたSMIリクエスト・ピンがアサートされると、当該ピンによりあらかじめ定められた発生要因をSMIレジスタ22に設定して、CPU11のSMIピンをアサートする。SMIの発生要因は、ブロック255と同じである。
ブロック257でコンピュータ10がハングアップしていない状態またはハングアップしたがICH21がSMIを発行できる状態の場合は、ブロック261に移行する。ブロック255またはブロック259でSMIピンがアサートされるとCPU11は、その時点でのレジスタやポインタの内容であるコンテキストをメイン・メモリ15のSSM127に格納して、ICH21に対してSMIACTピンを通じてSMMで動作したことを通知する。CPU11がSMMに移行すると、ブロック261でシステムBIOS107は、ACPI_NVS領域137に監視フラグ129が設定されているか否かを判断する。
監視フラグ129が設定されていないと判断した場合は、ブロック263に移行して、システムBIOS107はCPU11のレジスタにパラメータを設定してINT13hを発行し、RAMディスク領域57に格納されたイメージ・ファイルをHDD23のバックアップ領域に保存する。ブロック265では、システムBIOS107が、EC29にコンピュータ10の再起動を要求しブロック203に戻る。ユーザは、ブロック215でブルースクリーン後の自動再起動を停止したにもかかわらず、ブルースクリーンが発生した後またはコンピュータ10が動作を停止した後にコンピュータ10が自動再起動したことで、RAMディスク領域57のイメージ・ファイルがHDD23のバックアップ領域に保存されたことを認識する。
ブロック261で監視フラグ129が設定されていることを確認したシステムBIOS107は、コンピュータ10が正常に動作していると判断して、ブロック267に移行して監視フラグ129を解除する。ブロック269では、システムBIOS107がRSM(Return from System Management instruction)命令を実行して、ICH21がSMIピンをネゲートするようにSMIレジスタ22に設定する。つづいてシステムBIOS107はSSM127に格納しておいたコンテキストをCPU11に戻してCPU11をSMMからプロテクト・モードに移行させる。プロテクト・モードに移行したCPU11はSMMで動作する直前の状態から動作を再開する。
ブロック271では、OS105が提供するLCD19の画面を通じてユーザがコンピュータの電源を停止してシャットダウンをする指示をした場合は、ブロック273に移行する。なお、メイン・メモリ15の電源が停止するハイバネーションのときはメイン・メモリ15のファイル・イメージがHDD23に保存され、サスペンドのときはメイン・メモリ15の電源は維持されるので、いずれの場合もブロック273に移行する必要はない。
シャットダウンの指示を受けたOS105は、システムBIOS107を通じてEC29にSMIの発行を要求する。ブロック273でEC29がICH21のSMIレジスタ22にSMIの発生要因を設定すると、ICH21はブロック255で発行したSMIから独立したタイミングでSMIを発行し、CPU11はSMMに移行する。SMMで動作する間にCPU11で実行されるシステムBIOS107は、RAMディスク領域57に格納されたデータをイメージ・ファイルとしてHDD23のバックアップ領域に保存する。
その後、システムBIOS107がバックアップの終了をEC29に通知すると、EC29はブロック275でコンピュータ10の電源を停止してシャットダウンする。ブロック271でユーザがコンピュータ10を停止しない場合は、ブロック221に戻って文書作成アプリケーション103による作業を継続する。上記の手順によれば、メモリ管理アプリケーション101が監視フラグ129を設定できない場合は、その原因がいかなるものであってもバックアップ処理が行われる。よって、メモリ管理アプリケーション101自体が動作不良の場合もバックアップは行われるが、不必要なバックアップ処理はコンピュータのパフォーマンスを若干低下させるだけでデータ保護システム100は安全な方向で動作する。
コンピュータ10が正常に動作しているときは、ブロック253でプロテクト・モードの間にメモリ管理アプリケーション101によって設定された監視フラグ129は、ブロック267でSMMの間にシステムBIOS107によって解除され、再びブロック253で設定される。コンピュータ10が起動したときは、メモリ管理アプリケーション101が実行されたタイミングで監視フラグ129を設定することができる。ブロック271からブロック221への移行を通じて、文書作成アプリケーション101が再び監視フラグ129を設定する場合は、システムBIOS107がCPU11をプロテクト・モードに遷移させたタイミングで監視フラグ129を設定することができる。あるいは、メモリ管理アプリケーション101は、ブロック255のSMMの周期からは独立して、定期的にNVS領域137に監視フラグを上書き方式で書き込むようにしてもよい。
[データ保護の信頼性]
図5、図6の手順において実施したデータ保護システム100によるRAMディスク領域57に記憶されたデータ保護の信頼性について説明する。本実施の形態においてデータ保護システム100がシャットダウン前のバックアップ処理を失敗するのは、以下に説明するような条件が成立した場合であると考えられ、確率は低いと想定することができる。
まず、メモリ管理アプリケーション101が誤って監視フラグ129を設定するような誤動作をし、これにコンピュータ10のシャットダウンを伴うようなハングアップが発生する条件が重なった場合には、ブロック263のバックアップ処理ができない。しかし、ハングアップしたときにメモリ管理アプリケーション101が監視フラグ129を設定する誤りは、ハングアップしていないときに監視フラグ129を設定しない誤りよりは少ないと考えられ、このような条件が重なることは非常にまれであると想定できる。ハングアップしていないときにメモリ管理アプリケーション101が誤って監視フラグ129を設定しない場合は、余分な動作としてのバックアップ処理が行われるので本実施の形態にかかるデータ保護システム100は安全方向で動作する。
つぎに、メモリ管理アプリケーション101が正常に動作しないために監視フラグ129が設定されない状態になったときに、CPU11がSMMに移行できない場合を想定することができる。しかし、SMMに移行する前にハングアップした場合は、ブロック259でユーザが強制的にSMMを実行することでバックアップ処理をすることができる。このとき、キーボード31およびEC29は、CPU11から独立して動作しているため、EC29とICH21が正常に動作してSMIREQラインとSMIラインが確保されていれば、多くの場合CPU11をSMMに移行させることができる。
また、ブロック255では、SMIの発行をほとんどソフトウエアに依存しないでハードウエアが行うことにより、ソフトウエアに起因したSMI発行のトラブルを低減することができる。したがって、SMMに移行できない現実的な原因は、ICH21またはEC29などのハードウエアの故障のような限られたものになる。
さらに、バックアップ処理が完了する前に、コンピュータ10がシャットダウンするとRAMディスク領域57のデータは保護されないことになる。まず、ブルースクリーンの表示を伴うような異常の場合は、ブロック215で再起動しないように設定しているのでシャットダウンする確率は低くなっている。また、CPU11がSMMで動作している間は、プロテクト・モードでの動作は停止していると考えてよいので、ハングアップの発生からシャットダウンまでの状態の進行は停止する。
したがって、コンピュータ10がハングアップしても、バックアップ処理が完了する前にシャットダウンする可能性は低い。以上のとおり、データ保護システム100は、RAMディスク領域57に記憶されたデータを頻繁にHDD23にバックアップしなくてもコンピュータ10のハングアップから有効に保護することができる。その結果、メイン・メモリ15の容量を有効に活用することができ、かつ、安全で高速な仮想ディスク・ドライブを実現することができる。
[一時的な作業領域としてのデータ保護]
図3のデータ保護システム100では、文書作成アプリケーション103がRAMディスク領域57に保存したデータは保護されるが、メイン・メモリ15の一般領域131に記憶された作業中のデータは保護されない。図7は、作業中のデータを保護するデータ保護システム300の構成を示す機能ブロック図である。データ保護システム300は、図2(C)、(E)に示すようにメイン・メモリ15の論理アドレス空間51、55に作業領域として利用する特定領域59を設ける。
メイン・メモリ15に特定領域59を設ける方法およびHDD23にバックアップ領域を設ける方法は、データ保護システム100において採用したRAMディスク領域57を設ける方法およびバックアップ領域を設ける方法に準ずる。特定領域59は、作業中にコンピュータ10がハングアップした場合に、シャットダウンする前に作業中のデータをHDD23のバックアップ領域に保存できる保護領域である。
図7が図3と異なるのは、メモリ管理アプリケーション301とシステムBIOS305の機能が一部異なり、さらに、デバイス・ドライバ111とOS105との間に中間ドライバ303が挿入されている点である。また、HDD23のバックアップ領域は、バックアップされたファイルを文書作成アプリケーション103が容易に取得するためにOS105が認識できる領域が望ましい。
つぎに、図8、図9を参照して保護システム300の動作を説明する。ブロック401からブロック419までは、基本的に図5のブロック201からブロック219のRAMディスク領域57を特定領域59に対応させて同じ手順で実行することができる。以下、図5、図6の手順と異なる点を中心に説明する。メモリ管理アプリケーション101は起動中に、自らの識別子をデバイス・ドライバ111に渡して、デバイス・ドライバ111がメモリ管理アプリケーション101にメッセージを送ることができるようにしておく。
ブロック403では、POSTコード109が特定領域59をOS105が認識できる一般領域131に形成する。そして、ブロック405でOS105は、AXレジスタにE820hを設定してINT15h命令を発行し、特定領域59の開始アドレスとサイズを認識する。その結果、OS105は、特定領域59に文書作成アプリケーション103の作業領域を割り当てることができるようになる。ブロック409では、バックアップしたデータを文書作成アプリケーション103が容易に取り出せるように、OS105がアクセスできる領域にHDD23のバックアップ領域を設けることが望ましい。
また図9には、ブロック213に対応する手順は存在しない。特定領域59は、RAMディスク領域57のように仮想ディスク・ドライブとしてデータを永続的に保存するものではなく、永続的な保存先はHDD23である点ではメイン・メモリ15の一般領域と同等である。したがって、HDD23に格納されたファイルはバックアップではなく主たるファイルとなる。ブロック421でユーザは文書作成アプリケーション103を実行してHDD23に新規にファイルを作成するか、または、編集のためにすでにHDD23に保存しておいたファイルをメイン・メモリ15に読み出すためのAPI関数を呼び出す。
ブロック423で中間ドライバ303は、文書作成アプリケーション103がHDD23にファイルを作成または編集するためにアクセスするAPI関数をフックして、一時的にキューに保管し、メモリ管理アプリケーション301に通知する。メモリ管理アプリケーション301は、LCD19にポップアップ・ウインドウを表示して、ユーザから特定領域59を使用するか否かの指示を受ける。ユーザが特定領域59を使用しない指示をした場合は、ブロック425に移行して中間ドライバ111はキューに保管したAPI関数をデバイス・ドライバ111に渡す。そして、文書作成アプリケーション103は、特定領域以外の一般領域131を作業領域としてファイルの作成または編集をする。
ブロック423でユーザが特定領域59を使用する指示をした場合にはブロック427に移行する。特定領域59を使用する指示を受けた場合には、メモリ管理アプリケーション301はOS105に通知する。通知を受けたOS105は、以後、メモリ管理アプリケーション301の作業領域を特定領域59に設定する。なお、ユーザはあらかじめメモリ管理アプリケーションに特定領域59の使用をするか否かの設定をしておき、ブロック423のユーザによる指示を省くことができる。ブロック427では、ユーザは特定領域59を作業領域として利用してファイルの作成または編集をする。
ブロック451からブロック469までは、ブロック251からブロック269までの手順と同じである。ブロック471では、ユーザが作成または編集したファイルを保存するために文書作成アプリケーション103に対して保存操作をすると、文書作成アプリケーション103がAPI関数を呼び出す。ブロック473で中間ドライバ303は、当該API関数をデバイス・ドライバ111に渡し、ファイルはHDD23のバックアップ領域とは異なる一般の領域に保存される。
ユーザが保存操作をしない場合は、ブロック421に戻ってファイルの編集が継続される。作業中にハングアップしたときは、特定領域59に記憶されていたデータはブロック463でHDD23のバックアップ領域に保存される。バックアップ領域に保存されたデータは、再起動した後に文書作成アプリケーション103がHDD23にアクセスして取得することができる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
10…コンピュータ
100、300…データ保護システム

Claims (20)

  1. オペレーティング・システム実行モードまたはシステム・マネジメント・モードでの動作が可能なプロセッサを搭載するコンピュータに、
    メイン・メモリに保護領域を確保するステップと、
    オペレーティング・システムが有するブルースクリーン表示後の自動再起動機能を停止するステップと
    前記オペレーティング・システム実行モードにおいて監視プログラムが所定の動作をするステップと、
    プロセッサが周期的に前記オペレーティング・システム実行モードから前記システム・マネジメント・モードに移行したときに前記監視プログラムが所定の動作をしているか否かを判断するステップと、
    ハングアップの発生を認識したユーザの操作により前記オペレーティング・システム実行モードから前記システム・マネジメント・モードに強制的に移行したときに前記監視プログラムが所定の動作をしているか否かを判断するステップと、
    前記監視プログラムが所定の動作をしていないと判断したときに前記システム・マネジメント・モードで動作している間に前記保護領域に記憶されたデータを不揮発性の記憶装置に保存するステップと、
    データの保存後に前記コンピュータを再起動するステップと
    を含む処理を実行させるコンピュータ・プログラム。
  2. 前記システム・マネジメント・モードに周期的に移行したときに判断するステップ、前記システム・マネジメント・モードに強制的に移行したときに判断するステップ、前記保存するステップ、および前記再起動するステップをBIOSが実行する請求項1に記載のコンピュータ・プログラム。
  3. 前記所定の動作をするステップが、前記監視プログラムが監視フラグを設定するステップを含み、
    前記判断するステップが、
    前記監視フラグが設定されているか否かを判断するステップと、
    前記監視フラグが設定されていると判断したときに前記監視フラグを解除するステップと、
    前記監視フラグを解除したあとに前記オペレーティング・システム実行モードに遷移するステップと
    含む請求項1または請求項2に記載のコンピュータ・プログラム。
  4. 前記保護領域がRAMディスク領域である請求項1から請求項3のいずれかに記載のコンピュータ・プログラム。
  5. 前記コンピュータの起動時に前記不揮発性の記憶装置から前記RAMディスク領域にイメージ・ファイルをリストアするステップと、
    前記コンピュータをシャットダウンする操作に応答して前記RAMディスク領域に記憶されたイメージ・ファイルを前記不揮発性の記憶装置に保存するステップと
    を含む請求項4に記載のコンピュータ・プログラム。
  6. 前記保護領域が前記オペレーティング・システム実行モードで動作するアプリケーション・プログラムの作業領域である請求項1から請求項5のいずれかに記載のコンピュータ・プログラム。
  7. 前記確保するステップが、前記保護領域を前記オペレーティング・システムが直接アドレス指定できる論理アドレス空間を超えている領域に確保するステップを含む請求項1から請求項6のいずれかに記載のコンピュータ・プログラム。
  8. 前記監視プログラムがオペレーティング・システムのサービスを受けて動作するアプリケーション・プログラムである請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。
  9. 請求項1から請求項8のいずれかに記載するコンピュータ・プログラムを格納する記憶装置を搭載するコンピュータ。
  10. コンピュータに搭載が可能なメイン・メモリのデータ保護システムであって、
    オペレーティング・システム実行モードまたはシステム・マネジメント・モードで動作することが可能なプロセッサと、
    保護領域が確保されたメイン・メモリと、
    不揮発性の記憶装置と、
    システムがハングアップしたときにブルースクリーンの画面を表示することが可能な表示装置と
    前記ブルースクリーンが表示されたときに前記コンピュータが自動再起動する機能を停止する停止手段と、
    前記オペレーティング・システム実行モードで所定の動作をする監視プログラムを前記システム・マネジメント・モードに移行して監視する監視手段と、
    周期的に前記プロセッサを前記システム・マネジメント・モードで動作させる第1のSMM制御手段と、
    ハングアップの発生を認識したユーザの操作により前記プロセッサを強制的に前記システム・マネジメント・モードで動作させる第2のSMM制御手段と、
    前記監視プログラムが所定の動作をしていないと判断したときに、前記システム・マネジメント・モードで前記保護領域に記憶されているデータを前記不揮発性の記憶装置に保存して前記コンピュータを再起動するバックアップ手段と
    を有するデータ保護システム。
  11. 前記監視手段、前記第1のSMM制御手段、前記第2のSMM制御手段、および前記バックアップ手段が、BIOSを実行する前記プロセッサにより構成されている請求項10に記載のデータ保護システム。
  12. 前記第1のSMM制御手段が、前記プロセッサを前記オペレーティング・システム実行モードと前記システム・マネジメント・モードとの間を遷移させるために前記プロセッサに対して周期的にシステム・マネジメント割り込みを実行するチップ・セットである請求項10または請求項11に記載のデータ保護システム。
  13. 前記監視プログラムの所定の動作が監視フラグを設定する動作であり、前記監視手段は、前記監視プログラムが監視フラグを設定したか否かを判断し、前記監視フラグが設定さていると判断した場合に前記監視フラグを解除してから前記プロセッサを前記オペレーティング・システム実行モードに遷移させる請求項10から請求項12のいずれかに記載のデータ保護システム。
  14. 前記第2のSMM制御手段が、ハングアップしたときにキーボードからの信号を前記プロセッサから独立した動作で処理して前記プロセッサを前記システム・マネジメント・モードに遷移させるコントローラである請求項10から請求項13のいずれかに記載のデータ保護システム。
  15. 前記保護領域が前記コンピュータの起動時に前記不揮発性の記憶装置からイメージ・ファイルがリストアされるRAMディスク領域である請求項10から請求項14のいずれかに記載のデータ保護システム。
  16. 前記バックアップ手段は、オペレーティング・システムが認識できない前記不揮発性の記憶装置の記憶領域に前記データを保存する請求項10から請求項15のいずれかに記載のデータ保護システム。
  17. 請求項10から請求項16のいずれかに記載されたデータ保護システムを有するコンピュータ。
  18. オペレーティング・システム実行モードまたはシステム・マネジメント・モードでの動作が可能なプロセッサを搭載するコンピュータが、メイン・メモリに記憶されたデータを不揮発性の記憶装置にバックアップする方法であって、
    オペレーティング・システムが有するブルースクリーン表示後の自動再起動機能を停止するステップと
    前記オペレーティング・システム実行モードで監視プログラムが所定の動作をするステップと、
    システムが前記プロセッサを周期的に前記システム・マネジメント・モードに移行させるステップと
    前記システムが前記プロセッサを前記システム・マネジメント動作に移行できないときにユーザの入力を受け取って前記プロセッサを強制的に前記システム・マネジメント・モードに移行させるステップと、
    前記システム・マネジメント・モードに移行したときに前記監視プログラムが所定の動作をしているか否かを判断するステップと、
    前記監視プログラムが所定の動作をしていないと判断したときに前記システム・マネジメント・モードで動作している間に前記メイン・メモリに記憶されたデータを前記不揮発性の記憶装置に保存してから前記コンピュータを再起動するステップと
    を有する方法。
  19. 前記所定の動作をするステップが監視フラグを設定するステップを含み、
    前記システム・マネジメント・モードにおいて前記監視フラグが設定されていると判断した場合に前記監視フラグを解除して前記オペレーティング・システム実行モードに遷移するステップを有する請求項18に記載の方法。
  20. 前記オペレーティング・システム実行モードに遷移したことに応答して前記監視フラグを設定するステップを有する請求項19に記載の方法。

JP2010142183A 2010-06-23 2010-06-23 メイン・メモリのバックアップ方法およびデータ保護システム Active JP5378308B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010142183A JP5378308B2 (ja) 2010-06-23 2010-06-23 メイン・メモリのバックアップ方法およびデータ保護システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010142183A JP5378308B2 (ja) 2010-06-23 2010-06-23 メイン・メモリのバックアップ方法およびデータ保護システム

Publications (2)

Publication Number Publication Date
JP2012008672A JP2012008672A (ja) 2012-01-12
JP5378308B2 true JP5378308B2 (ja) 2013-12-25

Family

ID=45539169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010142183A Active JP5378308B2 (ja) 2010-06-23 2010-06-23 メイン・メモリのバックアップ方法およびデータ保護システム

Country Status (1)

Country Link
JP (1) JP5378308B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195542B2 (en) * 2013-04-29 2015-11-24 Amazon Technologies, Inc. Selectively persisting application program data from system memory to non-volatile data storage
JP2015130023A (ja) * 2014-01-07 2015-07-16 Necプラットフォームズ株式会社 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム
JP2017122997A (ja) * 2016-01-06 2017-07-13 富士通株式会社 情報処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム
JP6746788B2 (ja) * 2017-06-28 2020-08-26 株式会社Fuji 部品装着機用ヘッド
JP2021135641A (ja) * 2020-02-26 2021-09-13 三菱重工機械システム株式会社 料金機械、及び制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6371721A (ja) * 1986-09-13 1988-04-01 Fujitsu Ltd Ramデイスクの運用方式
JPH09101910A (ja) * 1995-10-04 1997-04-15 Hitachi Ltd 情報処理システム
JP4055386B2 (ja) * 2001-10-11 2008-03-05 三菱電機株式会社 情報処理装置
US20040078681A1 (en) * 2002-01-24 2004-04-22 Nick Ramirez Architecture for high availability using system management mode driven monitoring and communications
US7315961B2 (en) * 2002-06-27 2008-01-01 Intel Corporation Black box recorder using machine check architecture in system management mode
US7395420B2 (en) * 2003-02-12 2008-07-01 Intel Corporation Using protected/hidden region of a magnetic media under firmware control
JP4462238B2 (ja) * 2006-06-21 2010-05-12 株式会社デンソーウェーブ 携帯端末
JP2010044503A (ja) * 2008-08-11 2010-02-25 Buffalo Inc コンピュータプログラム、および、記録媒体

Also Published As

Publication number Publication date
JP2012008672A (ja) 2012-01-12

Similar Documents

Publication Publication Date Title
JP6530774B2 (ja) ハードウェア障害回復システム
EP2380081B1 (en) Method and system for hibernation or suspend using a non-volatile-memory device
US9081734B2 (en) Restoring from a legacy OS environment to a UEFI pre-boot environment
US6173417B1 (en) Initializing and restarting operating systems
US20030014619A1 (en) Method and system for master boot record recovery
US11182172B2 (en) Technologies for operating system transitions in multiple-operating-system environments
JP3777136B2 (ja) コンピュータ装置、データのデッドコピー方法、プログラム、コンピュータ装置の稼動方法
JP4783392B2 (ja) 情報処理装置および障害回復方法
US6681336B1 (en) System and method for implementing a user specified processing speed in a computer system and for overriding the user specified processing speed during a startup and shutdown process
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
JP5378308B2 (ja) メイン・メモリのバックアップ方法およびデータ保護システム
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
KR20200002603A (ko) 지속적 메모리가 인에이블된 플랫폼들에 대한 전원 버튼 오버라이드
US7308547B2 (en) Apparatus and method for control of write filter
US8069309B1 (en) Servicing memory in response to system failure
US20170262341A1 (en) Flash memory-hosted local and remote out-of-service platform manageability
JP3943764B2 (ja) コンピュータシステムおよびそのcpu性能制御方法
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US10776214B1 (en) System protecting data stored on NVDIMM devices after BIOS update
CN115576734B (zh) 一种多核异构日志存储方法和系统
CN110457899B (zh) 一种操作系统保护系统及方法
WO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法
JP3961669B2 (ja) コンピュータシステムおよびデータ転送制御方法
JP6967639B1 (ja) 情報処理装置、及び制御方法
JP7518954B1 (ja) 情報処理装置、及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130925

R150 Certificate of patent or registration of utility model

Ref document number: 5378308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250