JP2012008672A - Backup method of main memory and data protection system - Google Patents
Backup method of main memory and data protection system Download PDFInfo
- Publication number
- JP2012008672A JP2012008672A JP2010142183A JP2010142183A JP2012008672A JP 2012008672 A JP2012008672 A JP 2012008672A JP 2010142183 A JP2010142183 A JP 2010142183A JP 2010142183 A JP2010142183 A JP 2010142183A JP 2012008672 A JP2012008672 A JP 2012008672A
- Authority
- JP
- Japan
- Prior art keywords
- area
- monitoring
- computer
- main memory
- data
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、コンピュータのメイン・メモリに記憶されたデータを保護する技術に関し、さらに詳細にはコンピュータにシャットダウンを伴うようなハングアップが生じたときにメイン・メモリに記憶されたデータを保護する技術に関する。 The present invention relates to a technique for protecting data stored in a main memory of a computer, and more particularly, a technique for protecting data stored in a main memory when a hang-up that causes a shutdown occurs in the computer. About.
コンピュータには、中央演算装置(CPU)が直接アクセスするメイン・メモリ(一次記憶装置または主記憶装置ともいう。)として、一般に揮発性のRAMが使用される。またコンピュータには通常、オペレーティング・システム(OS)、デバイス・ドライバ、アプリケーション・プログラム(以下、アプリケーションという。)およびアプリケーションが作成したファイルなどを格納する不揮発性の補助記憶装置(二次記憶装置ともいう。)が搭載される。補助記憶装置としてはハードディスク・ドライブ(HDD)、ソリッド・ステート・ドライブ(SDD)、ハイブリッドHDD、または光学ディスク・ドライブ(ODD)などが採用されている。 In a computer, a volatile RAM is generally used as a main memory (also referred to as a primary storage device or a main storage device) that is directly accessed by a central processing unit (CPU). In addition, the computer usually has an operating system (OS), a device driver, an application program (hereinafter referred to as an application), and a nonvolatile auxiliary storage device (also referred to as a secondary storage device) that stores files created by the application. .) Is installed. As the auxiliary storage device, a hard disk drive (HDD), a solid state drive (SDD), a hybrid HDD, an optical disk drive (ODD), or the like is adopted.
メイン・メモリにはアプリケーションが作成したデータが一時的に記憶されている。メイン・メモリに記憶されたデータは、コンピュータの電源が遮断されると消えてしまうのでユーザはコンピュータを停止する前に作成中のデータをHDDに保存する。プロセッサは動作中にハードウエアやソフトウエアの不具合に起因して、ハングアップ(フリーズまたはクラッシュともいわれる。)する。 Data created by the application is temporarily stored in the main memory. Since the data stored in the main memory disappears when the computer is turned off, the user saves the data being created in the HDD before stopping the computer. During operation, the processor hangs up (also called freeze or crash) due to hardware or software malfunctions.
プロセッサがハングアップするとコンピュータは動作を停止して、キーボードやマウスによる外部からの操作ができなくなり、ディスプレイにいわゆるブルースクリーンが表示される。ブルースクリーンが表示されるとOSがコンピュータを自動的にシャットダウンまたは再起動する。本明細書においては、シャットダウンと再起動はメイン・メモリのデータが消失する点で同義として扱う。自動的にシャットダウンしない場合であっても、ユーザが電源ボタンを押下して強制的にシャットダウンする以外にコンピュータの動作を回復することができなくなる。 When the processor hangs up, the computer stops operating, and the keyboard and mouse cannot be operated from the outside, and a so-called blue screen is displayed on the display. When the blue screen is displayed, the OS automatically shuts down or restarts the computer. In this specification, shutdown and restart are treated as synonymous in that data in the main memory is lost. Even if the computer does not shut down automatically, the user cannot recover the computer operation except forcibly shutting down by pressing the power button.
このようにハングアップに伴ってシャットダウンが発生すると、メイン・メモリに記憶されている未保存のデータは消失してしまい回復することができない。ユーザは、メイン・メモリに記憶した作業中のデータを意図しないシャットダウンから保護するために、定期的にHDDに保存するようにアプリケーションを設定したり、自らが随時アプリケーションに対して保存操作をしたりしている。 When a shutdown occurs due to such a hang-up, unsaved data stored in the main memory is lost and cannot be recovered. The user can set the application to periodically save it to the HDD to protect the working data stored in the main memory from unintentional shutdown, or he can save the application at any time. is doing.
近年メイン・メモリの価格が低下したこととも相まって、コンピュータに搭載されるメイン・メモリの容量は増加する傾向にある。メイン・メモリの容量はビット・サイズに関するコンピュータのアーキテクチャや利用するアプリケーションの種類などにより定まる一定値に達すると、あまりパフォーマンスの増大を期待することができなくなり、一定値以上の領域は余剰の記憶領域になりがちである。メイン・メモリの余剰な記憶領域をソフトウエアで仮想化して二次記憶装置として活用する方法がある。 Coupled with the recent decline in the price of main memory, the capacity of main memory installed in computers tends to increase. When the capacity of the main memory reaches a certain value determined by the computer architecture related to the bit size and the type of application to be used, it is impossible to expect a significant increase in performance, and an area exceeding the certain value is an excess storage area. It tends to be. There is a method in which an excess storage area of the main memory is virtualized by software and used as a secondary storage device.
仮想化されたメイン・メモリの特定の記憶領域をRAMディスク領域または単にRAMディスクという。RAMディスクは高速なアクセスができるため、メイン・メモリの容量を有効に活用する方策の1つである。キャッシュ・メモリとSSDを組み合わせることでもファイル・アクセスの高速化が可能であるが、ビット単価が高額なSSDが必要になったりSSDへの負荷が集中して全体のパフォーマンスの低下を招いたりするという問題が残る。 A specific storage area of the virtualized main memory is called a RAM disk area or simply a RAM disk. Since the RAM disk can be accessed at high speed, it is one of the measures for effectively utilizing the capacity of the main memory. The combination of cache memory and SSD can speed up file access, but it requires SSDs with a high bit unit price, or the load on SSDs is concentrated, leading to a decrease in overall performance. The problem remains.
特許文献1は、OSが管理するメイン・メモリの管理領域が所定領域に制限されているコンピュータ・システムにおいて、制限された所定領域以外の領域である管理外領域をRAMディスクとして利用するプログラムを開示する。同文献のプログラムはPAE(Physical Address Extension)モードを有効にして、ディスク・イメージ上の読み書きしたい箇所にあたるメモリ領域をRAMディスク・ドライバが仮想アドレス空間にマッピングし、OSがRAMディスク・ドライバを介して、4GBを超えるOS管理外領域に対するアクセスを可能にする。また、同文献には、管理外領域に記憶されたデータシステムがシャットダウン、再起動、または休止状態に移行するタイミングで外部記憶装置にバックアップすることが記載されている。 Patent Document 1 discloses a program that uses, as a RAM disk, an unmanaged area that is an area other than the limited predetermined area in a computer system in which the management area of the main memory managed by the OS is limited to a predetermined area. To do. The program in this document enables the PAE (Physical Address Extension) mode, the RAM disk driver maps the memory area corresponding to the location to be read / written on the disk image into the virtual address space, and the OS passes through the RAM disk driver. Allows access to an OS unmanaged area exceeding 4 GB. Further, this document describes that a data system stored in an unmanaged area is backed up to an external storage device at the timing when the system is shut down, restarted, or hibernated.
特許文献2は、故障や不意の電源断が生じても、主記憶手段上のRAMティスクの内容が消去されない情報処理装置を開示する。情報処理装置に再起動を必要とするような故障が発生するとOSの故障検出手段が故障を検出する。故障検出手段は、故障内容の把握を行い、情報処理装置を再起動しなければならないと判断した場合、OSで構成した保存手段を起動し、保存手段に主記憶手段上のRAMティスク領域の内容を二次記憶装置内のRAMディスク保存ファイルに保存するよう指示をする。保存手段が主記憶手段上のRAMティスク領域の内容を二次記憶装置内のRAMディスク保存ファイルに保存した後に情報処理装置の電源が遮断される。
メイン・メモリに記憶されたデータをハングアップから保護するために、メイン・メモリのデータをアプリケーションが自動的にバックアップする場合には、HDDへのアクセスが頻発してアプリケーションを利用する上での作業性が低下する。また、HDDへのアクセスが競合してコンピュータ全体のパフォーマンスが低下する場合がある。さらには、自動バックアップの機能を備えていないアプリケーションには適用できない。また、ユーザが必要に応じて保存操作をする場合には、ユーザにとって煩雑さが増すとともに、前回の保存のタイミングからハングアップが発生するまでのデータは保護されないことになるため、保存されていないデータの増分が多くなると損失が増大する。これは自動バックアップでも同じことである。 In order to protect the data stored in the main memory from hang-up, when the application automatically backs up the data in the main memory, the access to the HDD occurs frequently and the work in using the application Sex is reduced. Further, there may be a case where the access to the HDD competes and the performance of the entire computer is lowered. Furthermore, it cannot be applied to an application that does not have an automatic backup function. In addition, when the user performs a save operation as necessary, the user is not saved because the complexity is increased for the user and the data from the previous save timing until the hang-up is not protected. Loss increases as data increments increase. The same is true for automatic backups.
コンピュータがハングアップしたときに、メイン・メモリのデータを確実に保護できれば、作業データの安全性を高めることができるとともにRAMディスクとしてのメイン・メモリの利便性が向上する。しかし、コンピュータには、特定のアプリケーションのプロセスを停止するだけで他のアプリケーションは動作を継続できるような軽微な異常から、シャットダウンする以外に対応できない重大なハングアップまでさまざまな状態が存在する。また、アプリケーションには当該アプリケーションだけが停止したような場合は、当該アプリケーションを再起動するとデータを回復できるような機能を備えているものもあるが、コンピュータがシャットダウンしたような場合には回復することができない。 If the data in the main memory can be surely protected when the computer hangs up, the safety of the work data can be improved and the convenience of the main memory as a RAM disk is improved. However, the computer has various states ranging from a minor abnormality that allows other applications to continue operation only by stopping a process of a specific application to a serious hangup that cannot be dealt with other than by shutting down. In addition, some applications have a function that allows data to be recovered by restarting the application when only that application is stopped, but recovery is possible when the computer is shut down. I can't.
コンピュータを安全方向で動作させるために軽微な異常でもバックアップするとなると、バックアップ動作が頻発してコンピュータのパフォーマンスが低下する。したがって、異常状態を特定してシャットダウンに至るような異常のときだけバックアップ処理を行うことが望ましいが、コンピュータが異常動作をしたときシステムを構成するプログラムがその異常を検出することは容易ではない。 If even a minor abnormality is backed up in order to operate the computer in a safe direction, the backup operation occurs frequently and the performance of the computer decreases. Therefore, it is desirable to perform the backup process only in the case of an abnormality that identifies an abnormal state and results in a shutdown, but it is not easy for a program constituting the system to detect the abnormality when the computer performs an abnormal operation.
図10は、ハードウエアまたはソフトウエアに異常が発生してからシャットダウンするまでのコンピュータの状態遷移を説明する図である。ステップ1では、アプリケーション、OS、デバイス・ドライバ、およびハードウエアがすべて正常に動作している。ステップ2で、コンピュータのハードウエアまたはソフトウエアに何らかの異常が発生しステップ3でそれが進行する。また、ステップ3からステップ1に戻る場合もある。ステップ4でついにCPUがハングアップしてコンピュータが制御権を失い、マウスおよびキーボードを通じて行う操作もできなくなる。
FIG. 10 is a diagram for explaining the state transition of the computer from when an abnormality occurs in hardware or software to when the computer is shut down. In step 1, the application, OS, device driver, and hardware are all operating normally. In
通常はユーザがコンピュータの異常を認識するのはステップ4である。しかし、現在のコンピュータ・システムでは、ステップ4まで到達するとコンピュータが自動的に電源を遮断してシャットダウンをするか、またはユーザが電源ボタンを操作して強制的にシャットダウンをするしか制御権を回復する方法はなく、データを保護することはできない。したがって、メイン・メモリが記憶しているデータをシャットダウンする前にバックアップするためには、ステップ2からステップ4までの間にステップ3からステップ1に戻るような場合を含む軽微な異常を除いて、シャットダウンを伴う異常を正確に検出する必要がある。
It is usually
さらに、異常を検出したあとにはステップ5に到達する前にバックアップ作業を終了する必要がある。特許文献2の発明は、OSが情報処理装置の故障を検出してOSがバックアップ処理をしているが、シャットダウンを必要とする異常にはOS自体の異常も含まれる。したがって、特許文献2の発明で対象とする情報処理装置の異常は、ハードウエアやアプリケーションなどのようなOS以外の要素の異常に限られ、OSやHDDのデバイス・ドライバなどに起因して発生するハングアップの対策としては十分ではない。また、異常を検出してからバックアップ処理をするまでの間にシャットダウンする可能性も残る。本発明は、このような背景および課題を解決するものである。
Furthermore, after detecting an abnormality, it is necessary to finish the backup work before reaching
そこで本発明の目的は、メイン・メモリに記憶されたデータをハングアップから保護することができるメイン・メモリのデータ保護システムを提供することにある。さらに本発明の目的は、信頼性の高いRAMディスクを実現するデータ保護システムを提供することにある。さらに本発明の目的は、そのようなデータ保護システムを搭載するコンピュータ、データのバックアップ方法およびコンピュータ・プログラムを提供することにある。 Accordingly, an object of the present invention is to provide a data protection system for a main memory that can protect data stored in the main memory from hang-up. A further object of the present invention is to provide a data protection system for realizing a highly reliable RAM disk. A further object of the present invention is to provide a computer equipped with such a data protection system, a data backup method, and a computer program.
本発明は、メイン・メモリに記憶されたデータをコンピュータがハングアップしたときにシャットダウンする前に不揮発性の記憶装置に保存することができるメイン・メモリのデータ保護システムを提供する。プロセッサは、少なくともOS実行モードまたはSMMで動作する。OS実行モードは、OSが動作するときのプロセッサの動作モードでプロテクト・モードということもできる。不揮発性の記憶装置は、メイン・メモリが実装されるコンピュータと同一の筐体に実装されていても異なる筐体に実装されていてもよい。 The present invention provides a main memory data protection system that allows data stored in main memory to be stored in a non-volatile storage device before shutting down when the computer hangs up. The processor operates in at least the OS execution mode or SMM. The OS execution mode is an operation mode of the processor when the OS operates, and can also be referred to as a protect mode. The nonvolatile storage device may be mounted in the same casing as the computer in which the main memory is mounted or in a different casing.
メイン・メモリには、データを保護する保護領域が確保される。バックアップの対象とするデータの範囲を容易に特定するために、保護領域はOSが自由にアクセスできない専用の記憶領域として定義することができる。監視プログラムはOS実行モードで動作しているコンピュータがハングアップしていない限り所定の動作をする。SMMに移行した後に監視プログラムが所定の動作をしているか否かを所定のプログラムが判断する。監視プログラムが所定の動作をしていないと判断したときに所定のプログラムがSMMで動作している間にメイン・メモリに記憶されたデータを不揮発性の記憶装置に保存する。 A protection area for protecting data is secured in the main memory. In order to easily specify the range of data to be backed up, the protection area can be defined as a dedicated storage area that the OS cannot freely access. The monitoring program performs a predetermined operation unless the computer operating in the OS execution mode is hung up. The predetermined program determines whether or not the monitoring program is performing a predetermined operation after shifting to the SMM. When it is determined that the monitoring program is not performing a predetermined operation, the data stored in the main memory is stored in the nonvolatile storage device while the predetermined program is operating in the SMM.
このような構成により、コンピュータがOS実行モードにおいてシャットダウンを伴うようなハングアップをしたときであっても、それをSMMで実行される所定のプログラムが検出することができる。また、SMMに移行するとプロセッサはOS実行モードでの動作を停止するため、OSによるシャットダウン処理が停止するため、不揮発性の記憶装置に保存する前にシャットダウンする確率を低くすることができる。よって、SMMに移行してから保存処理を行うことで、シャットダウン前に確実にメイン・メモリに記憶されたデータをバックアップすることができる。 With such a configuration, even when the computer hangs up with shutdown in the OS execution mode, a predetermined program executed by the SMM can detect it. In addition, since the processor stops the operation in the OS execution mode when the operation is shifted to the SMM, the shutdown process by the OS is stopped, so that the probability of shutting down before saving in the nonvolatile storage device can be reduced. Therefore, the data stored in the main memory can be surely backed up before the shutdown by performing the saving process after shifting to the SMM.
BIOSは、OSから独立して動作し、かつ、不揮発性の記憶装置のデバイス・ドライバがハングアップしている場合でもそこにアクセスすることができるため、監視プログラムの動作の判断およびデータの保存はBIOSが行うことが望ましい。また、BIOSはシングル・タスクで動作するために、ハングアップする可能性が低いので、ハングアップの検出と保存処理の信頼性が高い。 Since the BIOS operates independently of the OS and can access the device driver of the non-volatile storage device even if it is hung up, the determination of the operation of the monitoring program and the storage of data are not performed. It is desirable for the BIOS to do this. Further, since the BIOS operates with a single task, the possibility of hang-up is low, so that the reliability of hang-up detection and storage processing is high.
プロセッサを周期的にSMMとOS実行モードの間を遷移させることで、OS実行モードでの動作を維持しながらSMMで周期的にハングアップしているか否かを監視して、ハングアップを検出したときにバックアップ処理をすることができる。このとき、システム・マネジメント割り込み(SMI)をハードウエアであるチップ・セットが行うようにすれば、ソフトウエアへの依存度の低い方法でSMIを発行できるためハングアップしたあとであっても、高い確率でSMMに移行できる。 By periodically transitioning the processor between SMM and OS execution mode, the processor monitors whether or not the SMM periodically hangs up while maintaining the operation in the OS execution mode, and detects a hang-up. Sometimes backup processing can be done. At this time, if the chip set that is hardware performs the system management interrupt (SMI), the SMI can be issued by a method with a low dependency on software, so even if it hangs up, it is high. Probable transition to SMM.
監視プログラムが正常に動作しているか否かを所定のプログラムが判断するために、OS実行モードにおいて監視プログラムに監視フラグを設定する動作をさせることができる。所定のプログラムはSMMに移行してから、監視フラグが設定されているか否かを判断し、監視フラグが設定されていると判断したときには、ハングアップしていないと判断して監視フラグを解除した後にOS実行モードに遷移させることができる。その後、ハングアップしなければ監視プログラムは再度監視フラグを設定することができる。 In order for the predetermined program to determine whether or not the monitoring program is operating normally, it is possible to cause the monitoring program to set a monitoring flag in the OS execution mode. After the predetermined program moves to SMM, it is determined whether or not the monitoring flag is set. When it is determined that the monitoring flag is set, it is determined that the program is not hung up and the monitoring flag is released. The OS execution mode can be changed later. Thereafter, if no hang-up occurs, the monitoring program can set the monitoring flag again.
保護領域をRAMディスク領域として利用する場合は、コンピュータの起動時にバックアップ領域から保護領域にイメージ・ファイルをリストアし、かつ、コンピュータをシャットダウンする操作に応答して保護領域に記憶されたイメージ・ファイルをバックアップ領域に保存するように構成することができる。RAMディスク領域は、メイン・メモリの電源が突然停止した場合には、不揮発性の記憶装置にバックアップされているデータ以外は消失する。電池パックを標準として搭載する携帯式コンピュータに本発明のデータ保護システムを搭載すると、メイン・メモリの電源が突然停止することはほとんどなくこのような問題は生じないので都合がよい。 When using the protected area as a RAM disk area, restore the image file from the backup area to the protected area when the computer starts up, and save the image file stored in the protected area in response to an operation to shut down the computer. It can be configured to save in a backup area. When the main memory power supply suddenly stops, the RAM disk area is lost except for data backed up in the nonvolatile storage device. When the data protection system of the present invention is mounted on a portable computer having a battery pack as a standard, the power supply of the main memory is hardly suddenly stopped, and this problem does not occur.
保護領域はまたOS実行モードで動作するアプリケーションの作業領域として利用することもできる。この場合のファイルは、不揮発性の記憶装置に保存される。このような利用形態では、重要な作業をしているときに突然ハングアップしても、不揮発性の記憶装置に保存する前のデータを回復することができる。保護領域をOSがビット数に基づいて直接アドレス指定できる論理アドレス空間を超えている領域に確保するようにすれば、通常では使用できないアドレス範囲にあるメイン・メモリの記憶領域を有効に活用することができる。 The protected area can also be used as a work area for applications operating in the OS execution mode. The file in this case is stored in a nonvolatile storage device. In such a usage mode, even if a sudden hang-up occurs during important work, data before being stored in the nonvolatile storage device can be recovered. If the protected area is secured in an area that exceeds the logical address space that can be directly addressed by the OS based on the number of bits, the main memory storage area in the address range that cannot be used normally can be used effectively. Can do.
監視プログラムは、OSのサービスを受けて動作するアプリケーションとすることができる。この場合、監視プログラムは、その下層で動作するOSやデバイス・ドライバのハングアップに伴って動作を停止するので、その動作を監視することで多くのハングアップまたはそれに準ずる異常状態を検出することができる。また、アプリケーションは、システム・プログラムに比べて動作状態を容易に監視することができるので監視プログラムとして都合がよい。 The monitoring program can be an application that operates in response to an OS service. In this case, since the monitoring program stops the operation with the hang-up of the OS or device driver that operates in the lower layer, many hang-ups or abnormal states corresponding thereto can be detected by monitoring the operation. it can. In addition, since the application can easily monitor the operation state as compared with the system program, it is convenient as a monitoring program.
ハングアップしたときに、プロセッサがSMMに移行しない場合も予想される。この場合、本発明では、ソフトウエアへの依存が少ないコントローラを使用して、外部からの信号で強制的にSMMに移行させるように構成することもできる。また、ハングアップしたときに自動的にシャットダウンするOSの機能を停止するようにプログラムが設定すれば、シャットダウン前のバックアップをより確実に行うことができる。 It is expected that the processor will not transition to SMM when it hangs up. In this case, the present invention can be configured to forcibly shift to the SMM with an external signal using a controller that is less dependent on software. In addition, if the program is set to stop the function of the OS that automatically shuts down when it hangs up, backup before shutdown can be performed more reliably.
本発明により、メイン・メモリに記憶されたデータをハングアップから保護することができるメイン・メモリのデータ保護システムを提供することができた。さらに本発明により、信頼性の高いRAMディスクを実現するデータ保護システムを提供することができた。さらに本発明により、そのようなデータ保護システムを搭載するコンピュータ、データのバックアップ方法およびコンピュータ・プログラムを提供することができた。 According to the present invention, it is possible to provide a data protection system for a main memory that can protect data stored in the main memory from hang-up. Further, according to the present invention, a data protection system that realizes a highly reliable RAM disk can be provided. Furthermore, according to the present invention, a computer equipped with such a data protection system, a data backup method, and a computer program can be provided.
[コンピュータの構成]
図1は、本実施の形態にかかるコンピュータ10の主要な構成を示す機能ブロック図である。本明細書の全体に渡って、同一の要素には同一の参照番号を付与する。コンピュータ10は、電池パック(図示せず。)および充電器(図示せず。)を搭載する携帯式コンピュータとすることができる。CPU11は、インテル(登録商標)のX86シリーズのアーキテクチャを採用し、保護仮想アドレス・モード(Protected Virtual Address Mode)とSMMで動作することができる。保護仮想アドレス・モードは単にプロテクト・モードということもある。
[Computer configuration]
FIG. 1 is a functional block diagram showing a main configuration of a
メモリ・コントローラ・ハブ(MCH)13は、メイン・メモリ15へのアクセス動作を制御するためのメモリ・コントローラ機能、およびCPU11と他のデバイスとの間のデータ転送速度の差を吸収するためのデータ・バッファ機能を含むチップ・セットである。MCH13にはCPU11、メイン・メモリ15、グラフィック・プロセッシング・ユニット(GPU)17、およびアイオー・コントローラ・ハブ(ICH)21が接続されている。
The memory controller hub (MCH) 13 is a memory controller function for controlling an access operation to the
メイン・メモリ15は、CPU11が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用する揮発性のRAMである。メイン・メモリ15には、一般領域に加えてCPU11がSMMで動作するときに実行するコードをロードするための領域であるSMRAM領域が定義されている。メイン・メモリ15には本発明により、ハングアップから保護するデータを記憶する領域として保護領域も定義される。GPU17にはLCD19が接続されている。GPU17は、CPU11から受け取った描画命令に基づいてVRAMにイメージを書き込み、所定のタイミングでLCD19に画像イメージのデータを送るための専用プロセッサで、グラフィックス・アクセラレータともいう。
The
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レジスタを含む。
The
CPU11がプログラムを実行したり、マザーボードに実装されたハードウエアが温度や電源に関するイベントを生成したりしてSMIレジスタを設定することでICH21はSMI信号をCPU11のSMIピンに送りCPU11をSMMで動作させる。CPU11はSMIACTピンを通じてICH21にSMMでの動作を開始したことを通知する。
When the
MCH13はCPU11がSMMに移行したことの通知をICH21から受け取ることで、メイン・メモリ15に対するアクセスをハードウエアにより制御してSMM環境を構築する。ICH21は、CPU11がSMMで動作している間は、SMRAM領域にロードされたコードがOSやアプリケーション・プログラムにより書き換えられないように保護する。
The
HDD23はブートディスクで、コンピュータ10が起動するときのブート・イメージを格納している。LPCバス27には、エンベデッド・コントローラ(EC)29およびBIOS_ROM33などの高速なデータ転送を要求しないデバイスが接続される。EC29は、CPU11から独立して動作するマイクロ・コンピューターでコンピュータ10の電源および温度を制御する。EC29には、CPU11とは別系統で電源が供給されて、サスペンド状態でCPU11が動作を停止している間やCPU11がハングアップしたときも動作することができる。EC29はキーボード・コントローラを備えており、キーボード31が接続されている。
The
BIOS_ROM33は不揮発性で記憶内容の電気的な書き替えが可能なメモリであり、入出力デバイスを制御するためのデバイス・ドライバ、ACPI(Advanced Configuration and Power Interface)の規格に適合し電源およびシステム筐体内の温度などを管理したりハードウエアにアクセスしたりするシステムBIOS、ベクタ・テーブル、コンピュータ10の起動時にハードウエアの試験や初期化を行うPOST(Power-On Self Test)コード、およびパスワード認証を行うための認証コードなどを格納する。
The
[保護領域]
図2は、メイン・メモリ上に定義された保護領域を説明する図である。保護領域に記憶されたデータは、コンピュータ10がハングアップしたときに本発明の方法によりHDD23にバックアップされる。保護領域は、RAMディスク領域57および特定領域59またはそのいずれか一方として構成することができる。
[Protected Area]
FIG. 2 is a diagram for explaining a protection area defined on the main memory. The data stored in the protection area is backed up to the
RAMディスク領域57は、専用のデバイス・ドライバによりOSがHDD23を利用するのと同様のファイル・システムで利用できるように構成されている。本発明にかかるプログラムは、RAMディスク領域57に記憶されたデータを、メイン・メモリ15の電源を停止する際にHDD23にバックアップし、コンピュータを起動してメイン・メモリ15に電源を供給する際にRAMディスク領域57にリストアする。
The
特定領域59は、ハングアップから保護する必要なファイルを処理するために、一時的にアプリケーションが使用できるようにした作業領域で、RAMディスク領域57とはメイン・メモリ15の電源の停止および供給に伴ってバックアップやリストアが行われない点で異なる。特定領域59に記憶されたデータはメイン・メモリの電源が停止すると消失するので、ファイルは永続的な保存場所としてのHDD23に保存される。
The
図2(A)〜(C)は、32ビット・アーキテクチャに基づいて保護領域を形成する例を示す。32ビット・アーキテクチャでは、OSが直接アドレス指定できるメイン・メモリ15の論理アドレス空間51は4GBに制限される。しかし、メイン・メモリ15の物理アドレス空間が4GBを越える場合には、物理アドレス空間にOSが直接認識できない論理アドレス空間53が生じる。図2(A)は論理アドレス空間53にRAMディスク領域57を設けた例を示す。
2A to 2C show an example of forming a protection area based on a 32-bit architecture. In the 32-bit architecture, the
なお、図2(A)のように、論理アドレス領域53に保護領域を形成する際には、OSの物理アドレス拡張機能であるPAEをイネーブルに設定する。PAEは、32ビット・アーキテクチャのアドレス・ラインを36ビット以上のアドレス・ラインに拡張する周知の拡張機能である。図2(B)は、OSが直接認識できる論理アドレス空間51にRAMディスク領域57を設けた例を示す。図2(C)は、論理アドレス空間51に特定領域を設けた例を示す。
As shown in FIG. 2A, when a protection area is formed in the
図2(D)、(E)は、64ビット・アーキテクチャに基づいて保護領域を形成する例を示す。64ビット・アーキテクチャでは、OSが直接アドレス指定できるメイン・メモリ15の論理アドレス空間は膨大になり、現実にはOSが8GB〜128GB程度のメイン・メモリ15の物理アドレス空間を認識することができるようになっている。図2(D)、(E)では、物理アドレス空間に対してOSが認識できる論理アドレス空間55には制限がないと想定している。
2D and 2E show an example in which a protection area is formed based on a 64-bit architecture. In the 64-bit architecture, the logical address space of the
図2(D)、(E)はそれぞれ論理アドレス空間55にRAMディスク領域57または特定領域59を設ける例を示している。なお、本発明においては、RAMディスク領域57と特定領域59を同時に設けることもできる。特定領域59は、アプリケーションがOSを通じてアクセスできる必要があるので、32ビット・アーキテクチャの論理アドレス空間51または64ビット・アーキテクチャの論理アドレス空間55に形成する。
2D and 2E show examples in which a
[メモリ・データ保護システム]
図3は、本実施の形態にかかるメイン・メモリのデータ保護システム100の構成を示す機能ブロック図である。データ保護システム100は、コンピュータ10に実装されたソフトウエアとハードウエアで構成されている。新規なソフトウエアは、メモリ管理アプリケーション101、システムBIOS107、および専用ドライバ113の一部である。メモリ管理アプリケーション101は、データ保護システム100の中心的な処理をするためのOS105上で動作するプログラムである。
[Memory data protection system]
FIG. 3 is a functional block diagram showing a configuration of the main memory
メモリ管理アプリケーション101は、メイン・メモリ15にRAMディスク領域57および特定領域59またはいずれか一方を設けたり、HDD23にバックアップ領域を設けたりするための処理をする。メモリ管理アプリケーション101は、コンピュータ10がハングアップしたことをシステムBIOS107が監視するための所定の動作をする。本実施の形態では所定の動作として監視フラグを設定する動作を採用することができるが、コンピュータ10がハングアップしているか否かの状態をシステムBIOS107に対して表明できるような他の動作または処理を採用してもよい。
The memory management application 101 performs processing for providing the
文書作成アプリケーション103は、RAMディスク領域57または特定領域59を利用して文書を作成するプログラムである。OS105は、Windows(登録商標)、または、MAC_OS(登録商標)などを採用することができる。図2(A)のように論理アドレス領域53に保護領域を形成する際には、OS105はPAEを備えているものとする。システムBIOS107は、メイン・メモリ15に本発明の保護領域を確保したり、コンピュータ10がハングアップしたときに保護領域のデータをHDD23にバックアップしたりする新規なコードを含む。システムBIOS107はメモリ管理アプリケーション101により監視フラグが設定されているときはコンピュータ10がハングアップしていないと判断し、監視フラグが設定されていないときはハングアップしたと判断する。
The document creation application 103 is a program that creates a document using the
システムBIOS107は、INT13hの割り込みまたはその他のHDD23に対するアクセスをするためのサービス・ルーチンを利用して、RAMディスク領域57に格納されたデータをHDD23にバックアップしり、HDD23からデータを読み取ってRAMディスク領域57にリストアしたりする。
The
デバイス・ドライバ111は、HDD23の動作を制御したりOS105とHDD23との間のデータ転送を制御したりするプログラムである。専用ドライバ113は、RAMディスク領域57を仮想的にHDD23と同等のディスク・ドライブとして動作させるためのプログラムである。専用ドライバ113は、RAMディスク領域57が論理アドレス空間53に形成される場合は、RAMディスク領域57のアドレスをOSが認識する論理アドレス空間にマッピングする。専用ドライバ113は、OS105がHDD23を管理するファイル・システムと同等のファイル・システムを備えており、OS105およびシステムBIOS107に対してサービスを提供する新規なインターフェースを備えている。
The
ICH21はSMIレジスタ22を備え、CPU11にSMIピンおよびSMIACTピンで接続されている。ICH21は、CPU11が実行するプログラムの動作から独立して、数ミリ秒といった一定の周期でSMIピンをアサートしてSMIを発行する。ICH21は、SMIを発行する際に、SMIレジスタ22にSMIを発行する要因を設定する。CPU11は、SMIピンがアサートされるとSMMで動作し、SMIACTピンをアサートしてICH21に通知する。
The
CPU11は、SMMに移行すると最初に必ずSMIハンドラを実行する。SMIハンドラは、SMIが発行されたときにICH21のSMIレジスタ22を参照してSMIの発生要因を調べ、システムBIOS107による監視フラグの確認作業およびバックアップ処理が要求されていることを認識すると制御をシステムBIOS107に移す。CPU11がSMMで動作している間、MCH13はSMRAM領域のアドレスに対するアクセスは許容するが、SMMで動作していないときはSMRAM領域のアドレスに対するアクセスは、メイン・メモリ15の他のアドレスへのアクセスとして処理する。
The
EC29はLPCバス27から独立したラインでICH21のSMIリクエスト・ピン(SMIREQ)に接続されており、SMIリクエスト・ピンをアサートすることでICH21にSMIの発行を要求することができる。CPU11にハードウエア的な障害が発生した場合はSMIを発行してもSMMに遷移させることはできないが、EC29はキーボード31の入力をCPU11から独立した動作で処理するため、ソフトウエアやICH21の誤作動でSMIを発行できない場合には、キーボード31に割り当てられた専用のキーからの入力に基づいてSMIリクエスト・ピンをアサートできる。
The
[メイン・メモリのデータ構造]
図4は、コンピュータに電源が投入されブートが完了したときのメイン・メモリ15にロードされたファイルのデータ構造を示す図である。メイン・メモリ15には、一般領域131とSMRAM領域135とACPI_NVS領域137がPOSTコード109により形成されている。一般領域131はOS105がアクセスできる論理アドレス空間で、内部に図2(B)、(D)に示したようにRAMディスク領域57が形成されている。
[Data structure of main memory]
FIG. 4 is a diagram showing a data structure of a file loaded in the
RAMディスク領域57はOS105がアクセスできずシステムBIOS107だけがアクセスできるようにPOSTコードにより設定された論理アドレス空間である。ACPI_NVS領域137はOS105およびシステムBIOS107のいずれもアクセスできる論理アドレス空間である。ACPI_NVS領域137には、コンピュータ10がハングアップしたか否かをシステムBIOS107が監視するためにメモリ管理アプリケーション101により監視フラグ129が設定される。
The
一般領域131には、BIOS_ROM33に格納されたプログラムおよびHDD23に格納された専用ドライバ113、POSTコード109、システムBIOS107、メモリ管理アプリケーション101、文書作成アプリケーション103およびOS105などがロードされる。SMRAM領域135には、SMIハンドラ113がロードされ、さらにSSM(State Save Map)127という領域が確保される。SMM127は、CPU11がSMMに移行する直前のレジスタやポインタなどのコンテキストを格納する記憶領域である。
The general area 131 is loaded with a program stored in the
[メモリ・データを保護する手順]
図5、図6は、データ保護システム100がメイン・メモリに記憶されたデータをハングアップから保護する手順を説明するフローチャートである。ここでは、RAMディスク領域57を図2(B)、(D)に示した論理アドレス空間51に形成する場合を例にして説明するが、図5(A)に示した論理アドレス空間53に形成する場合は、OS105のPAEを有効にすることで同様に実現することができる。ブロック201でコンピュータ10の電源が投入されると、ブロック203でCPU11は、最初にBIOS_ROM33の所定のアドレスにアクセスしてPOSTコード109を実行しブートを開始する。
[Procedure for protecting memory data]
FIG. 5 and FIG. 6 are flowcharts for explaining a procedure in which the
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を形成する。
The
ブロック205でOS105は、AXレジスタにE820hを設定してINT15h命令を発行し、自らがアクセスできる一般領域131およびACPI_NVS領域137とアクセスできないRAMディスク領域57およびSMRAM領域135を認識する。このとき、OS105は、RAMディスク領域57の開始アドレスとサイズを認識して、メモリ管理アプリケーション101に知らせる。ブロック207では、メモリ管理アプリケーション101が専用ドライバ113にパラメータを設定して初期化する。
In
ブロック205では、システムBIOS107によりRAMディスク領域57として利用可能な範囲が設定されたが、ブロック207では、メモリ管理アプリケーション101はその範囲内で実際にRAMディスク領域57として使用する範囲の開始アドレスとサイズを設定する。そして、メモリ管理アプリケーション101は、RAMディスク領域57に対して固有のドライブ番号を付与する。文書作成アプリケーション103は、ドライブ番号が付与されたRAMディスク領域57を、HDD23の記憶領域の一部と同じように認識してデータの書き込みまたは読み出しを行うことができる。
In
ブロック209では、メモリ管理アプリケーション101が、HDD23のマスター・ブート・レコードに定義して形成したHDD23の専用の記憶領域にバックアップ領域を確保してOS105に通知する。通知を受けたOS105は、バックアップ領域にはアクセスしないため、バックアップ領域はRAMディスク領域57に対する専用の記憶領域になる。メモリ管理アプリケーション101は、バックアップ領域をOS105が認識できない別のパティションに形成することもできる。なお、バックアップ領域は、HDD23のマスター・ブート・レコードに一度設定しておけば、メモリ管理アプリケーション101がコンピュータ10の起動ごとに作成する必要はない。
In
ブロック211では、メモリ管理アプリケーション101がシステムBIOS107に、メイン・メモリ15のRAMディスク領域57およびHDD23のバックアップ領域のサイズ、開始アドレス、ドライブ番号などのアクセス情報を通知する。ブロック213では、システムBIOS213が、バックアップ領域に保存されていたイメージ・ファイルをRAMディスク領域57にリストアする。このように、バックアップ領域とRAMディスク領域57との間では、記憶されている完全なディスク・イメージが転送される。
In
ブロック215では、メモリ管理アプリケーション101が、ブルースクリーンが表示されたあとのOS105による自動再起動機能を停止するように設定する。この設定により、コンピュータ10の異常がブルースクリーンを伴うものである場合に、バックアップ処理が完了する前にシャットダウンすることをより確実に防ぐことができる。ブロック217では、メモリ管理アプリケーション101がACPI_NVS領域137に監視フラグ129が設定されていればそれを解除する。ブートしてからここまでの手順では、監視フラグ129が設定されることはないので、これは念のための手順であり省くこともできる。
In
ブロック219では、ブート・ファイルがすべてロードされてブートが完了する。このときCPU11は、プロテクト・モードで動作している。プロテクト・モードでは、OS105が動作してメモリ管理アプリケーション101および文書作成アプリケーション103にさまざまなサービスを提供する。なお、ブロック207からブロック217までの処理は、ブート完了後に文書作成アプリケーション103がRAMディスク領域57を使用する際にメモリ管理アプリケーション101を起動して行うようにしてもよい。
At
ブロック221では、ユーザが文書作成アプリケーション103を実行して文書作成作業を行う。文書作成アプリケーション103が、作業に利用するメイン・メモリ15上の領域は、RAMディスク領域113とは異なる一般領域113の一部である。その領域は、OS105により割り当てられるが、コンピュータ10がハングアップしたときに保護はされない。文書作成アプリケーション103はRAMディスク領域57をHDD23と同じような1つの独立したディスク・ドライブとして認識し、OS105および専用ドライバ113を通じてRAMディスク領域57からファイルを一般領域131に読み出したり、ファイルをRAMディスク領域57に保存したりすることができる。
In
ユーザが自動または手動で一般領域113のファイルをRAMディスク領域57に保存しながら文書作成アプリケーション103による作業をしている間に、図6のブロック251に移行する。ブロック251はコンピュータ10が実行する処理手順の一部ではなく、本実施の形態にかかるデータ保護の特徴を説明するために挿入したコンピュータ10の動作状態を示している。ブロック251は、メモリ管理アプリケーション101が正常に動作しているか否かの2つの状態を示している。
While the user is working with the document creation application 103 while automatically or manually saving the file in the
この時点でのメモリ管理アプリケーション101の作業は、ブロック253で監視フラグ129を設定することであり、メモリ管理アプリケーション101が正常に動作するということは監視フラグ129を設定したことを意味している。メモリ管理アプリケーション101が監視フラグ129を設定するには、自らが正常に動作するだけでなく、メモリ管理アプリケーション101の正常な動作に影響を与えるOS105、デバイス・ドライバ、およびハードウエアなども正常に動作していることが前提になる。
The work of the memory management application 101 at this time is to set the monitoring flag 129 in
カーネル・モードで動作するOS105やデバイス・ドライバがハングアップして未処理例外を引き起こしたり、ハードウエア・エラーが発生したりして、LCD19にブルースクリーンを表示するような状態に至ると、コンピュータ10はその状態で動作を停止し、シャットダウンしない限り正常な動作状態に戻すことができない。シャットダウンすると、HDD23にバックアップされていないRAMディスク領域57のデータは消失することになる。
When the
ブルースクリーンを表示する状態になるとメモリ管理アプリケーション101は、監視フラグ129の設定をすることができない。ブルースクリーンの表示は、OS105が行う。したがって、デバイス・ドライバがハングアップしてOS105が制御権を取得できなくなったような場合は、ブルースクリーンが表示されないでコンピュータ10またはCPU11が動作を停止することもある。この場合もメモリ管理アプリケーション101は監視フラグ129を設定できない。
When the blue screen is displayed, the memory management application 101 cannot set the monitoring flag 129. The
メモリ管理アプリケーション101が正常に動作する場合はブロック253で監視フラグ129を設定してブロック255に移行する。コンピュータ10のハードウエアまたはソフトウエアにメモリ管理アプリケーション101が監視フラグ129を設定できないような異常が生じている場合は、メモリ管理アプリケーション101が監視フラグ129を設定しないで直接ブロック255に移行する。
If the memory management application 101 operates normally, the monitor flag 129 is set in
ブロック255では、ICH21が数ミリ秒の周期で周期的にCPU11に対してSMIを発行している。このときICH21は、SMIレジスタ22に、システムBIOS107にブロック261から269までの処理をさせることを示す発生要因を設定する。ICH21がすでにSMMで動作している場合は、当該SMIの発行は無視される。ブロック255ではCPU11がプロテクト・モードで動作しているときに発行されたSMIだけが実行される。
In
SMIは、ICH21が専用のSMIピンを利用して発行しているので、CPU11がハングアップしても高い確率でCPU11をSMMに遷移させることができる。しかし、ICH21の動作不良がハングアップの原因になっているような特殊な事情のときには、SMIを発行できない状態でコンピュータ10がハングアップすることもあり得る。
The SMI is issued by the
ブロック257もコンピュータ10の処理手順の一部ではなく、コンピュータ10の動作状態を示している。ブロック257は、コンピュータ10がSMIを発行できない状態でハングアップしたか、それ以外の状態かの2つの状態のいずれかを示している。それ以外の状態は、ハングアップしていない状態と、ハングアップしたがICH21がSMIを発行できる状態を含んでいる。
コンピュータ10がハングアップするときは、ブルースクリーンを表示する場合と表示しない場合がある。ユーザがブルースクリーンの表示またはコンピュータ10の動作状態に基づいてコンピュータ10がハングアップしたと判断したときは、ブロック259に移行してキーボード31の特定のキーを押下して強制的にSMIを発行させブロック261に移行する。ただし、ハングアップしてもブロック261、263、265の手順でバックアップ処理が行われて再起動するような場合は、SMIが発行されたことになるので、ユーザはハングアップ後の様子をしばらく観察してから特定のキーを押下することになる。
When the
特定のキーの押下はCPU11から独立して動作するEC29で検出され、EC29はICH21のSMIリクエスト・ピンをアサートしてSMIの発行を要求する。ICH21は、EC29に接続されたSMIリクエスト・ピンがアサートされると、当該ピンによりあらかじめ定められた発生要因をSMIレジスタ22に設定して、CPU11のSMIピンをアサートする。SMIの発生要因は、ブロック255と同じである。
The pressing of a specific key is detected by the
ブロック257でコンピュータ10がハングアップしていない状態またはハングアップしたがICH21がSMIを発行できる状態の場合は、ブロック261に移行する。ブロック255またはブロック259でSMIピンがアサートされるとCPU11は、その時点でのレジスタやポインタの内容であるコンテキストをメイン・メモリ15のSSM127に格納して、ICH21に対してSMIACTピンを通じてSMMで動作したことを通知する。CPU11がSMMに移行すると、ブロック261でシステムBIOS107は、ACPI_NVS領域137に監視フラグ129が設定されているか否かを判断する。
If the
監視フラグ129が設定されていないと判断した場合は、ブロック263に移行して、システムBIOS107はCPU11のレジスタにパラメータを設定してINT13hを発行し、RAMディスク領域57に格納されたイメージ・ファイルをHDD23のバックアップ領域に保存する。ブロック265では、システムBIOS107が、EC29にコンピュータ10の再起動を要求しブロック203に戻る。ユーザは、ブロック215でブルースクリーン後の自動再起動を停止したにもかかわらず、ブルースクリーンが発生した後またはコンピュータ10が動作を停止した後にコンピュータ10が自動再起動したことで、RAMディスク領域57のイメージ・ファイルがHDD23のバックアップ領域に保存されたことを認識する。
If it is determined that the monitoring flag 129 has not been set, the process proceeds to block 263 where the
ブロック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で動作する直前の状態から動作を再開する。
The
ブロック271では、OS105が提供するLCD19の画面を通じてユーザがコンピュータの電源を停止してシャットダウンをする指示をした場合は、ブロック273に移行する。なお、メイン・メモリ15の電源が停止するハイバネーションのときはメイン・メモリ15のファイル・イメージがHDD23に保存され、サスペンドのときはメイン・メモリ15の電源は維持されるので、いずれの場合もブロック273に移行する必要はない。
In
シャットダウンの指示を受けたOS105は、システムBIOS107を通じてEC29にSMIの発行を要求する。ブロック273でEC29がICH21のSMIレジスタ22にSMIの発生要因を設定すると、ICH21はブロック255で発行したSMIから独立したタイミングでSMIを発行し、CPU11はSMMに移行する。SMMで動作する間にCPU11で実行されるシステムBIOS107は、RAMディスク領域57に格納されたデータをイメージ・ファイルとしてHDD23のバックアップ領域に保存する。
Receiving the shutdown instruction, the
その後、システムBIOS107がバックアップの終了をEC29に通知すると、EC29はブロック275でコンピュータ10の電源を停止してシャットダウンする。ブロック271でユーザがコンピュータ10を停止しない場合は、ブロック221に戻って文書作成アプリケーション103による作業を継続する。上記の手順によれば、メモリ管理アプリケーション101が監視フラグ129を設定できない場合は、その原因がいかなるものであってもバックアップ処理が行われる。よって、メモリ管理アプリケーション101自体が動作不良の場合もバックアップは行われるが、不必要なバックアップ処理はコンピュータのパフォーマンスを若干低下させるだけでデータ保護システム100は安全な方向で動作する。
Thereafter, when the
コンピュータ10が正常に動作しているときは、ブロック253でプロテクト・モードの間にメモリ管理アプリケーション101によって設定された監視フラグ129は、ブロック267でSMMの間にシステムBIOS107によって解除され、再びブロック253で設定される。コンピュータ10が起動したときは、メモリ管理アプリケーション101が実行されたタイミングで監視フラグ129を設定することができる。ブロック271からブロック221への移行を通じて、文書作成アプリケーション101が再び監視フラグ129を設定する場合は、システムBIOS107がCPU11をプロテクト・モードに遷移させたタイミングで監視フラグ129を設定することができる。あるいは、メモリ管理アプリケーション101は、ブロック255のSMMの周期からは独立して、定期的にNVS領域137に監視フラグを上書き方式で書き込むようにしてもよい。
When the
[データ保護の信頼性]
図5、図6の手順において実施したデータ保護システム100によるRAMディスク領域57に記憶されたデータ保護の信頼性について説明する。本実施の形態においてデータ保護システム100がシャットダウン前のバックアップ処理を失敗するのは、以下に説明するような条件が成立した場合であると考えられ、確率は低いと想定することができる。
[Reliability of data protection]
The reliability of data protection stored in the
まず、メモリ管理アプリケーション101が誤って監視フラグ129を設定するような誤動作をし、これにコンピュータ10のシャットダウンを伴うようなハングアップが発生する条件が重なった場合には、ブロック263のバックアップ処理ができない。しかし、ハングアップしたときにメモリ管理アプリケーション101が監視フラグ129を設定する誤りは、ハングアップしていないときに監視フラグ129を設定しない誤りよりは少ないと考えられ、このような条件が重なることは非常にまれであると想定できる。ハングアップしていないときにメモリ管理アプリケーション101が誤って監視フラグ129を設定しない場合は、余分な動作としてのバックアップ処理が行われるので本実施の形態にかかるデータ保護システム100は安全方向で動作する。
First, if the memory management application 101 malfunctions such that the monitoring flag 129 is erroneously set, and a condition that causes a hang-up that causes a shutdown of the
つぎに、メモリ管理アプリケーション101が正常に動作しないために監視フラグ129が設定されない状態になったときに、CPU11がSMMに移行できない場合を想定することができる。しかし、SMMに移行する前にハングアップした場合は、ブロック259でユーザが強制的にSMMを実行することでバックアップ処理をすることができる。このとき、キーボード31およびEC29は、CPU11から独立して動作しているため、EC29とICH21が正常に動作してSMIREQラインとSMIラインが確保されていれば、多くの場合CPU11をSMMに移行させることができる。
Next, it can be assumed that the
また、ブロック255では、SMIの発行をほとんどソフトウエアに依存しないでハードウエアが行うことにより、ソフトウエアに起因したSMI発行のトラブルを低減することができる。したがって、SMMに移行できない現実的な原因は、ICH21またはEC29などのハードウエアの故障のような限られたものになる。
Further, in
さらに、バックアップ処理が完了する前に、コンピュータ10がシャットダウンするとRAMディスク領域57のデータは保護されないことになる。まず、ブルースクリーンの表示を伴うような異常の場合は、ブロック215で再起動しないように設定しているのでシャットダウンする確率は低くなっている。また、CPU11がSMMで動作している間は、プロテクト・モードでの動作は停止していると考えてよいので、ハングアップの発生からシャットダウンまでの状態の進行は停止する。
Further, if the
したがって、コンピュータ10がハングアップしても、バックアップ処理が完了する前にシャットダウンする可能性は低い。以上のとおり、データ保護システム100は、RAMディスク領域57に記憶されたデータを頻繁にHDD23にバックアップしなくてもコンピュータ10のハングアップから有効に保護することができる。その結果、メイン・メモリ15の容量を有効に活用することができ、かつ、安全で高速な仮想ディスク・ドライブを実現することができる。
Therefore, even if the
[一時的な作業領域としてのデータ保護]
図3のデータ保護システム100では、文書作成アプリケーション103がRAMディスク領域57に保存したデータは保護されるが、メイン・メモリ15の一般領域131に記憶された作業中のデータは保護されない。図7は、作業中のデータを保護するデータ保護システム300の構成を示す機能ブロック図である。データ保護システム300は、図2(C)、(E)に示すようにメイン・メモリ15の論理アドレス空間51、55に作業領域として利用する特定領域59を設ける。
Data protection as a temporary work area
In the
メイン・メモリ15に特定領域59を設ける方法およびHDD23にバックアップ領域を設ける方法は、データ保護システム100において採用したRAMディスク領域57を設ける方法およびバックアップ領域を設ける方法に準ずる。特定領域59は、作業中にコンピュータ10がハングアップした場合に、シャットダウンする前に作業中のデータをHDD23のバックアップ領域に保存できる保護領域である。
The method of providing the
図7が図3と異なるのは、メモリ管理アプリケーション301とシステムBIOS305の機能が一部異なり、さらに、デバイス・ドライバ111とOS105との間に中間ドライバ303が挿入されている点である。また、HDD23のバックアップ領域は、バックアップされたファイルを文書作成アプリケーション103が容易に取得するためにOS105が認識できる領域が望ましい。
7 differs from FIG. 3 in that the functions of the
つぎに、図8、図9を参照して保護システム300の動作を説明する。ブロック401からブロック419までは、基本的に図5のブロック201からブロック219のRAMディスク領域57を特定領域59に対応させて同じ手順で実行することができる。以下、図5、図6の手順と異なる点を中心に説明する。メモリ管理アプリケーション101は起動中に、自らの識別子をデバイス・ドライバ111に渡して、デバイス・ドライバ111がメモリ管理アプリケーション101にメッセージを送ることができるようにしておく。
Next, the operation of the
ブロック403では、POSTコード109が特定領域59をOS105が認識できる一般領域131に形成する。そして、ブロック405でOS105は、AXレジスタにE820hを設定してINT15h命令を発行し、特定領域59の開始アドレスとサイズを認識する。その結果、OS105は、特定領域59に文書作成アプリケーション103の作業領域を割り当てることができるようになる。ブロック409では、バックアップしたデータを文書作成アプリケーション103が容易に取り出せるように、OS105がアクセスできる領域にHDD23のバックアップ領域を設けることが望ましい。
In
また図9には、ブロック213に対応する手順は存在しない。特定領域59は、RAMディスク領域57のように仮想ディスク・ドライブとしてデータを永続的に保存するものではなく、永続的な保存先はHDD23である点ではメイン・メモリ15の一般領域と同等である。したがって、HDD23に格納されたファイルはバックアップではなく主たるファイルとなる。ブロック421でユーザは文書作成アプリケーション103を実行してHDD23に新規にファイルを作成するか、または、編集のためにすでにHDD23に保存しておいたファイルをメイン・メモリ15に読み出すためのAPI関数を呼び出す。
In FIG. 9, there is no procedure corresponding to block 213. The
ブロック423で中間ドライバ303は、文書作成アプリケーション103がHDD23にファイルを作成または編集するためにアクセスするAPI関数をフックして、一時的にキューに保管し、メモリ管理アプリケーション301に通知する。メモリ管理アプリケーション301は、LCD19にポップアップ・ウインドウを表示して、ユーザから特定領域59を使用するか否かの指示を受ける。ユーザが特定領域59を使用しない指示をした場合は、ブロック425に移行して中間ドライバ111はキューに保管したAPI関数をデバイス・ドライバ111に渡す。そして、文書作成アプリケーション103は、特定領域以外の一般領域131を作業領域としてファイルの作成または編集をする。
In
ブロック423でユーザが特定領域59を使用する指示をした場合にはブロック427に移行する。特定領域59を使用する指示を受けた場合には、メモリ管理アプリケーション301はOS105に通知する。通知を受けたOS105は、以後、メモリ管理アプリケーション301の作業領域を特定領域59に設定する。なお、ユーザはあらかじめメモリ管理アプリケーションに特定領域59の使用をするか否かの設定をしておき、ブロック423のユーザによる指示を省くことができる。ブロック427では、ユーザは特定領域59を作業領域として利用してファイルの作成または編集をする。
When the user gives an instruction to use the
ブロック451からブロック469までは、ブロック251からブロック269までの手順と同じである。ブロック471では、ユーザが作成または編集したファイルを保存するために文書作成アプリケーション103に対して保存操作をすると、文書作成アプリケーション103がAPI関数を呼び出す。ブロック473で中間ドライバ303は、当該API関数をデバイス・ドライバ111に渡し、ファイルはHDD23のバックアップ領域とは異なる一般の領域に保存される。
The procedure from
ユーザが保存操作をしない場合は、ブロック421に戻ってファイルの編集が継続される。作業中にハングアップしたときは、特定領域59に記憶されていたデータはブロック463でHDD23のバックアップ領域に保存される。バックアップ領域に保存されたデータは、再起動した後に文書作成アプリケーション103がHDD23にアクセスして取得することができる。
If the user does not perform a save operation, the process returns to block 421 to continue editing the file. When the user hangs up during the work, the data stored in the
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。 Although the present invention has been described with the specific embodiments shown in the drawings, the present invention is not limited to the embodiments shown in the drawings, and is known so far as long as the effects of the present invention are achieved. It goes without saying that any configuration can be adopted.
10…コンピュータ
100、300…データ保護システム
10.
Claims (20)
メイン・メモリに保護領域を確保するステップと、
前記オペレーティング・システム実行モードにおいて監視プログラムが所定の動作をするステップと、
前記システム・マネジメント・モードに移行して前記監視プログラムが所定の動作をしているか否かを判断するステップと、
前記監視プログラムが所定の動作をしていないと判断したときに前記システム・マネジメント・モードで動作している間に前記保護領域に記憶されたデータを不揮発性の記憶装置に保存するステップと
を含む処理を実行させるコンピュータ・プログラム。 A computer with a processor capable of operating in operating system execution mode or system management mode,
Securing a protection area in the main memory; and
The monitoring program performing a predetermined operation in the operating system execution mode;
Transitioning to the system management mode and determining whether the monitoring program is performing a predetermined operation; and
Storing the data stored in the protected area in a nonvolatile storage device while operating in the system management mode when it is determined that the monitoring program is not performing a predetermined operation. A computer program that executes processing.
前記判断するステップが、
前記監視フラグが設定されているか否かを判断するステップと、
前記監視フラグが設定されていると判断したときに前記監視フラグを解除するステップと、
前記監視フラグを解除したあとに前記オペレーティング・システム実行モードに遷移するステップと
含む請求項1から請求項3のいずれかに記載のコンピュータ・プログラム。 The step of performing the predetermined operation includes the step of the monitoring program setting a monitoring flag,
The step of determining comprises:
Determining whether the monitoring flag is set;
Releasing the monitoring flag when it is determined that the monitoring flag is set;
The computer program according to any one of claims 1 to 3, further comprising a step of transitioning to the operating system execution mode after releasing the monitoring flag.
前記コンピュータをシャットダウンする操作に応答して前記保護領域に記憶されたイメージ・ファイルを前記不揮発性の記憶装置に保存するステップと
を含む請求項5に記載のコンピュータ・プログラム。 Restoring the image file from the non-volatile storage device to the protected area upon startup of the computer;
The computer program according to claim 5, further comprising: saving an image file stored in the protected area in the nonvolatile storage device in response to an operation of shutting down the computer.
オペレーティング・システム実行モードまたはシステム・マネジメント・モードで動作することが可能なプロセッサと、
保護領域が確保されたメイン・メモリと、
不揮発性の記憶装置と、
前記オペレーティング・システム実行モードで所定の動作をする監視プログラムを前記システム・マネジメント・モードに移行して監視する監視手段と、
前記監視プログラムが所定の動作をしていないと判断したときに、前記システム・マネジメント・モードで前記保護領域に記憶されているデータを前記不揮発性の記憶装置に保存するバックアップ手段と
を有するデータ保護システム。 A main memory data protection system that can be installed in a computer.
A processor capable of operating in operating system execution mode or system management mode; and
A main memory with a protected area, and
A non-volatile storage device;
A monitoring means for monitoring a monitoring program that performs a predetermined operation in the operating system execution mode by shifting to the system management mode;
Data protection comprising backup means for saving data stored in the protection area in the system management mode to the nonvolatile storage device when it is determined that the monitoring program is not performing a predetermined operation system.
前記オペレーティング・システム実行モードで監視プログラムが所定の動作をするステップと、
前記システム・マネジメント・モードに移行して前記監視プログラムが所定の動作をしているか否かを判断するステップと、
前記監視プログラムが所定の動作をしていないと判断したときに前記システム・マネジメント・モードで動作している間に前記メイン・メモリに記憶されたデータを前記不揮発性の記憶装置に保存するステップと
を有する方法。 A method in which a computer equipped with a processor capable of operating in an operating system execution mode or a system management mode backs up data stored in a main memory to a nonvolatile storage device,
A monitoring program performing a predetermined operation in the operating system execution mode;
Transitioning to the system management mode and determining whether the monitoring program is performing a predetermined operation; and
Storing data stored in the main memory in the nonvolatile storage device while operating in the system management mode when it is determined that the monitoring program is not performing a predetermined operation; Having a method.
前記システム・マネジメント・モードにおいて前記監視フラグが設定されていると判断した場合に前記監視フラグを解除して前記オペレーティング・システム実行モードに遷移するステップを有する請求項18に記載の方法。 The step of performing the predetermined operation includes the step of setting a monitoring flag;
19. The method according to claim 18, further comprising the step of releasing the monitoring flag and transitioning to the operating system execution mode when it is determined that the monitoring flag is set in the system management mode.
20. The method of claim 19, comprising setting the monitoring flag in response to transitioning to the operating system execution mode.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010142183A JP5378308B2 (en) | 2010-06-23 | 2010-06-23 | Main memory backup method and data protection system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010142183A JP5378308B2 (en) | 2010-06-23 | 2010-06-23 | Main memory backup method and data protection system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012008672A true JP2012008672A (en) | 2012-01-12 |
JP5378308B2 JP5378308B2 (en) | 2013-12-25 |
Family
ID=45539169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010142183A Active JP5378308B2 (en) | 2010-06-23 | 2010-06-23 | Main memory backup method and data protection system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5378308B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130023A (en) * | 2014-01-07 | 2015-07-16 | Necプラットフォームズ株式会社 | Information recording device, information processor, information recording method and information recording program |
JP2017122997A (en) * | 2016-01-06 | 2017-07-13 | 富士通株式会社 | Information processing unit, control method for arithmetic processing unit, and control program for arithmetic processing unit |
JP2018055727A (en) * | 2013-04-29 | 2018-04-05 | アマゾン・テクノロジーズ・インコーポレーテッド | Selectively persisting application program data transferred from system memory to non-volatile data storage |
WO2019003336A1 (en) * | 2017-06-28 | 2019-01-03 | 株式会社Fuji | Component mounting machine head |
JP2021135641A (en) * | 2020-02-26 | 2021-09-13 | 三菱重工機械システム株式会社 | Fare machine and control method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6371721A (en) * | 1986-09-13 | 1988-04-01 | Fujitsu Ltd | Ram disk operating system |
JPH09101910A (en) * | 1995-10-04 | 1997-04-15 | Hitachi Ltd | Information processing system |
JP2003122647A (en) * | 2001-10-11 | 2003-04-25 | Mitsubishi Electric Corp | Information processor |
US20040003313A1 (en) * | 2002-06-27 | 2004-01-01 | Intel Corporation | Black box recorder using machine check architecture in system management mode |
US20040078681A1 (en) * | 2002-01-24 | 2004-04-22 | Nick Ramirez | Architecture for high availability using system management mode driven monitoring and communications |
US20040158698A1 (en) * | 2003-02-12 | 2004-08-12 | Rothman Michael A. | Using protected/hidden region of a magnetic media under firmware control |
JP2008003770A (en) * | 2006-06-21 | 2008-01-10 | Denso Wave Inc | Mobile terminal |
JP2010044503A (en) * | 2008-08-11 | 2010-02-25 | Buffalo Inc | Computer program, and recording medium |
-
2010
- 2010-06-23 JP JP2010142183A patent/JP5378308B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6371721A (en) * | 1986-09-13 | 1988-04-01 | Fujitsu Ltd | Ram disk operating system |
JPH09101910A (en) * | 1995-10-04 | 1997-04-15 | Hitachi Ltd | Information processing system |
JP2003122647A (en) * | 2001-10-11 | 2003-04-25 | Mitsubishi Electric Corp | Information processor |
US20040078681A1 (en) * | 2002-01-24 | 2004-04-22 | Nick Ramirez | Architecture for high availability using system management mode driven monitoring and communications |
US20040003313A1 (en) * | 2002-06-27 | 2004-01-01 | Intel Corporation | Black box recorder using machine check architecture in system management mode |
US20040158698A1 (en) * | 2003-02-12 | 2004-08-12 | Rothman Michael A. | Using protected/hidden region of a magnetic media under firmware control |
JP2008003770A (en) * | 2006-06-21 | 2008-01-10 | Denso Wave Inc | Mobile terminal |
JP2010044503A (en) * | 2008-08-11 | 2010-02-25 | Buffalo Inc | Computer program, and recording medium |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018055727A (en) * | 2013-04-29 | 2018-04-05 | アマゾン・テクノロジーズ・インコーポレーテッド | Selectively persisting application program data transferred from system memory to non-volatile data storage |
JP2015130023A (en) * | 2014-01-07 | 2015-07-16 | Necプラットフォームズ株式会社 | Information recording device, information processor, information recording method and information recording program |
JP2017122997A (en) * | 2016-01-06 | 2017-07-13 | 富士通株式会社 | Information processing unit, control method for arithmetic processing unit, and control program for arithmetic processing unit |
WO2019003336A1 (en) * | 2017-06-28 | 2019-01-03 | 株式会社Fuji | Component mounting machine head |
JPWO2019003336A1 (en) * | 2017-06-28 | 2020-02-27 | 株式会社Fuji | Head for component mounting machine |
JP2021135641A (en) * | 2020-02-26 | 2021-09-13 | 三菱重工機械システム株式会社 | Fare machine and control method |
Also Published As
Publication number | Publication date |
---|---|
JP5378308B2 (en) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9372754B2 (en) | Restoring from a legacy OS environment to a UEFI pre-boot environment | |
EP2380081B1 (en) | Method and system for hibernation or suspend using a non-volatile-memory device | |
US20150149815A1 (en) | Bios failover update with service processor having direct serial peripheral interface (spi) access | |
US20220100530A1 (en) | Technologies for operating system transitions in multiple-operating-system environments | |
JP3777136B2 (en) | Computer device, data dead copy method, program, and computer device operating method | |
JP4783392B2 (en) | Information processing apparatus and failure recovery method | |
JP2008287505A (en) | Information processor and legacy emulation processing stop control method | |
EP1137987A2 (en) | Initializing and restarting operating systems | |
JP5378308B2 (en) | Main memory backup method and data protection system | |
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 | |
KR20200002603A (en) | Power button override for persistent memory enabled platforms | |
US20190004818A1 (en) | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof | |
US7308547B2 (en) | Apparatus and method for control of write filter | |
US7107398B2 (en) | Changing a mode of a storage subsystem in a system | |
US8069309B1 (en) | Servicing memory in response to system failure | |
US20170262341A1 (en) | Flash memory-hosted local and remote out-of-service platform manageability | |
JP3943764B2 (en) | Computer system and CPU performance control method thereof | |
US9910677B2 (en) | Operating environment switching between a primary and a secondary operating system | |
CN115576734B (en) | Multi-core heterogeneous log storage method and system | |
WO2013136457A1 (en) | Virtual computer system, information storage processing program and information storage processing method | |
CN110457899B (en) | Operating system protection system and method | |
US10776214B1 (en) | System protecting data stored on NVDIMM devices after BIOS update | |
JP3961669B2 (en) | Computer system and data transfer control method | |
JP6967639B1 (en) | Information processing device and control method | |
JP2001117663A (en) | Computer system and method for controlling processing speed of the same |
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 |