(57)【要約】【課題】オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、制限された所定領域以外の領域である管理外領域を利用できるようにするとともに、その際のユーザの利便性を向上させる。【解決手段】ＣＰＵは、ＲＡＭディスクドライバをコンピュータシステムにインストールするときに、ＰＡＥモードを有効にする設定を自動的に行う。その後、ＣＰＵは、メインメモリ１００のＯＳ管理外領域１３０を、ＲＡＭディスクドライバの仮想アドレス空間２００にマッピングする。【選択図】図１
2010044503.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、前記メインメモリの前記所定領域以外の領域である管理外領域を利用可能にするためのコンピュータプログラムであって、
前記オペレーティングシステムが管理するメモリ領域を前記管理外領域にまで拡張する物理アドレス拡張モードを有効にする設定を行う設定機能と、
前記物理アドレス拡張モードを有効にする設定がなされているときに、前記メインメモリの前記管理外領域を、仮想アドレス空間にマッピングするマッピング機能と、
をコンピュータに実現させるためのコンピュータプログラム。
【請求項２】
請求項１記載のコンピュータプログラムであって、さらに、
前記管理外領域に記憶されているデータを、所定のタイミングで、外部記憶装置にバックアップする機能を前記コンピュータに実現させるためのコンピュータプログラム。
【請求項３】
請求項２記載のコンピュータプログラムであって、
前記所定のタイミングは、前記メインメモリへの通電状態が非通電状態に移行するタイミングである、
コンピュータプログラム。
【請求項４】
請求項２記載のコンピュータプログラムであって、
前記所定のタイミングは、前記管理外領域へのデータの書き込みがあったタイミングである、
コンピュータプログラム。
【請求項５】
請求項２ないし４のいずれかに記載のコンピュータプログラムであって、さらに、
前記外部記憶装置にバックアップされたデータを、前記管理外領域にリストアする機能を前記コンピュータに実現させるためのコンピュータプログラム。
【請求項６】
請求項１ないし５のいずれかに記載のコンピュータプログラムであって、
前記設定機能は、前記コンピュータシステムで起動しているオペレーティングシステムの種類に応じて、前記設定時の処理内容を切り換える機能を含む、
コンピュータプログラム。
【請求項７】
請求項１ないし６のいずれかに記載のコンピュータプログラムであって、
前記コンピュータは、３２ビットマイクロプロセッサを備えており、
前記オペレーティングシステムは、前記３２ビットマイクロプロセッサに対応したオペレーティングシステムであり、
前記所定領域の容量は、４ギガバイトである、
コンピュータプログラム。
【請求項８】
請求項１ないし７のいずれかに記載のコンピュータプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラム、および、記録媒体に関するものである。
【背景技術】
【０００２】
例えば、Ｉｎｔｅｌ ｘ８６ ３２Ｂｉｔ ＣＰＵ（または、その互換ＣＰＵ）を搭載したコンピュータシステム（ｘ８６コンピュータシステム）は、メインメモリの物理アドレス空間を利用する際に、通常の物理アドレス指定モードにおいては、３２Ｂｉｔのアドレス指定で表現できる４ＧＢまでの物理アドレス空間しか利用できない。しかし、ＣＰＵの拡張機能である物理アドレス拡張（ＰＡＥ：Physical Address Extension）モードを利用することで、４ＧＢを超える、より広範囲の物理アドレス空間が利用可能となる。これをプロセスごとの仮想アドレス空間にマッピングすることで、１プロセスあたりの仮想アドレス空間の上限は４ＧＢのままであるが、システム全体としては４ＧＢを超えるメモリ容量を活用することができる。Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓオペレーティングシステム（以下、「ＯＳ」とも言う）には、ＰＡＥモードの設定が実装されており、特にサーバ向けエディションのＷｉｎｄｏｗｓＯＳでは、ＰＡＥモードを有効に設定することで、前述のような形で４ＧＢを超えるメモリ容量を活用できるようになっている。
【０００３】
【特許文献１】特表２００２−５３９５５５号公報
【特許文献２】米国特許第５８０２６０５号明細書
【特許文献３】米国特許第６０３２２４０号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、汎用のパーソナルコンピュータ向けエディションや、ワークステーション向けエディションのＷｉｎｄｏｗｓＯＳでは、ＰＡＥモードの設定は実装されているものの、ＷｉｎｄｏｗｓＯＳ自身が管理する物理アドレス範囲が４ＧＢまでに制限されている。
【０００５】
また、近年、コンピュータのチップセットの性能向上や、ＤＲＡＭ（Dynamic Random Access Memory）の大容量化・低価格化により、４ＧＢ以上のメインメモリを搭載したコンピュータを安価に入手可能となったにも関わらず、現在の主流であるパーソナルコンピュータ向けエディションやワークステーション向けエディションのＷｉｎｄｏｗｓＯＳにおいては、４ＧＢを超える範囲のメモリ領域を利用することができないという問題があった。
【０００６】
また、多くのｘ８６コンピュータシステムにおいては、メインメモリの物理アドレス空間の上位数百ＭＢ程度の領域に、予約領域、すなわち、コンピュータに搭載された各種ハードウェアコンポーネントの入出力を行うためのメモリ領域や、ＢＩＯＳ（Basic Input/ Output System）のプログラムやデータの領域がマッピングされている。したがって、これらの予約領域と重なる物理アドレス範囲のメモリ領域が利用できなくなってしまう。これを回避するために、多くのｘ８６コンピュータシステムでＢＩＯＳに物理アドレス再マッピング機能が用意されており、重なる範囲のメモリ領域を、４ＧＢ以降の物理アドレス空間に再配置することができる。この機能を利用することで、例えば、４ＧＢのメインメモリを搭載したｘ８６コンピュータシステムにおいては、予約領域と重なる分の数百ＭＢ程度の容量のメモリが、４ＧＢ以降の物理アドレス空間に再配置される。ところが、パーソナルコンピュータ向けエディションやワークステーション向けエディションのＷｉｎｄｏｗｓＯＳおいては、前述の通り、４ＧＢを越える範囲のメモリ領域を利用することができないため、この数百ＭＢ程度の再配置範囲には結局アクセスできず、４ＧＢのメインメモリを搭載したシステムであるにも関わらず、４ＧＢよりも数百ＭＢ少ない容量のメモリしか利用することができないという問題があった。
【０００７】
本発明は、上述の課題を解決するためになされたものであり、オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、制限された所定領域以外の領域である管理外領域を利用できるようにするとともに、その際のユーザの利便性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題の少なくとも一部を解決するために以下の形態又は適用例として実現することが可能である。
【０００９】
［適用例１］オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、前記メインメモリの前記所定領域以外の領域である管理外領域を利用可能にするためのコンピュータプログラムであって、前記オペレーティングシステムが管理するメモリ領域を前記管理外領域にまで拡張する物理アドレス拡張モードを有効にする設定を行う設定機能と、前記物理アドレス拡張モードを有効にする設定がなされているときに、前記メインメモリの前記管理外領域を、仮想アドレス空間にマッピングするマッピング機能と、をコンピュータに実現させるためのコンピュータプログラム。
【００１０】
適用例１のコンピュータプログラムをコンピュータが実行することによって、コンピュータシステムに精通していないユーザにとって困難な設定作業をユーザが行うことなく、物理アドレス拡張モードを有効にする設定を行い、メインメモリの管理外領域を利用できるようにすることができる。つまり、適用例１のコンピュータプログラムによって、オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、制限された所定領域以外の領域である管理外領域を利用できるようにするとともに、その際のユーザの利便性を向上させることができる。
【００１１】
［適用例２］適用例１記載のコンピュータプログラムであって、さらに、前記管理外領域に記憶されているデータを、所定のタイミングで、外部記憶装置にバックアップする機能を前記コンピュータに実現させるためのコンピュータプログラム。
【００１２】
適用例２のコンピュータプログラムをコンピュータが実行することによって、メインメモリの上記管理外領域に記憶されているデータが消失するのを回避することができる。なお、上記管理外領域に記憶されているデータを、外部記憶装置にバックアップする所定のタイミングは、ユーザによるバックアップ指示がコンピュータに入力されたタイミングであってもよいし、ユーザによるバックアップ指示とは無関係なタイミングであってもよい。
【００１３】
［適用例３］適用例２記載のコンピュータプログラムであって、前記所定のタイミングは、前記メインメモリへの通電状態が非通電状態に移行するタイミングである、コンピュータプログラム。
【００１４】
［適用例４］適用例２記載のコンピュータプログラムであって、前記所定のタイミングは、前記管理外領域へのデータの書き込みがあったタイミングである、コンピュータプログラム。
【００１５】
適用例３，４のコンピュータプログラムをコンピュータが実行することによって、上記管理外領域に記憶された最新のデータを、ユーザによるバックアップ指示とは無関係なタイミングで、外部記憶装置に自動的にバックアップすることができる。なお、メインメモリへの通電状態が非通電状態に移行するタイミングとしては、例えば、コンピュータシステムのシャットダウン時や、再起動時や、休止状態に移行するときが挙げられる。
【００１６】
［適用例５］適用例２ないし４のいずれかに記載のコンピュータプログラムであって、さらに、前記外部記憶装置にバックアップされたデータを、前記管理外領域にリストアする機能を前記コンピュータに実現させるためのコンピュータプログラム。
【００１７】
適用例５のコンピュータプログラムをコンピュータが実行することによって、外部記憶装置にバックアップされたデータを、上記管理外領域にリストアすることができる。なお、リストアのタイミングとしては、例えば、コンピュータシステムの起動時や、休止状態からの復帰時が挙げられる。
【００１８】
［適用例６］適用例１ないし５のいずれかに記載のコンピュータプログラムであって、前記設定機能は、前記コンピュータシステムで起動しているオペレーティングシステムの種類に応じて、前記設定時の処理内容を切り換える機能を含む、コンピュータプログラム。
【００１９】
適用例６のコンピュータプログラムをコンピュータが実行することによって、例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ ＸＰやＷｉｎｄｏｗｓ Ｖｉｓｔａ等のオペレーティングシステムの種類に応じて、適切な設定処理を行うことができる。なお、さらに、メインメモリやＣＰＵの種類等、コンピュータシステムの環境に応じて、上記設定時の処理内容を切り換えるようにしてもよい。
【００２０】
［適用例７］適用例１ないし６のいずれかに記載のコンピュータプログラムであって、前記コンピュータは、３２ビットマイクロプロセッサを備えており、前記オペレーティングシステムは、前記３２ビットマイクロプロセッサに対応したオペレーティングシステムであり、前記所定領域の容量は、４ギガバイトである、コンピュータプログラム。
【００２１】
本発明は、上述のコンピュータプログラムとしての構成の他、このコンピュータプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。なお、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について、実施例に基づき以下の順序で説明する。
Ａ．コンピュータシステム（本発明の概要）：
Ｂ．各種処理：
Ｂ１．ＲＡＭディスクドライバのインストール処理：
Ｂ２．ＰＡＥモード設定処理：
Ｂ３．初期化処理：
Ｂ４．搭載メモリ容量の自動認識、リストア、フォーマット処理：
Ｂ４．１．リストア処理：
Ｂ４．２．フォーマット処理：
Ｂ４．３．バックアップ処理：
Ｂ５．リード・ライト処理：
Ｂ６．非通電状態移行処理：
Ｂ７．通電状態復帰処理：
Ｂ８．デバイス停止処理：
Ｂ９．ＲＡＭディスクドライバのアンインストール処理：
Ｂ１０．ＰＡＥモード解除処理：
Ｃ．変形例：
【００２３】
Ａ．コンピュータシステム（本発明の概要）：
本実施例のコンピュータシステムは、汎用のパーソナルコンピュータであり、ＣＰＵや、ＲＡＭ（メインメモリ）や、ＲＯＭや、ハードディスクや、キーボードや、マウスや、ディスプレイ等を備えている。そして、本実施例では、ＣＰＵは、Ｉｎｔｅｌ ｘ８６ ３２Ｂｉｔ ＣＰＵ（または、その互換ＣＰＵ）であり、ＲＡＭは、８ＧＢのメモリ容量を有しているものとする。また、本実施例のコンピュータシステムは、Ｍｉｃｒｏｓｏｆｔ社の汎用のパーソナルコンピュータ向けエディションのＷｉｎｄｏｗｓＯＳ（３２ビット版）（以下、単に「ＯＳ」と呼ぶ）を備えているものとする。
【００２４】
図１は、本発明の概要を模式的に示す説明図である。本実施例のコンピュータシステムにおいて、メインメモリ１００の物理アドレス空間は、ＯＳが管理するＯＳ管理領域１１０と、ＢＩＯＳ等が利用する予約領域１２０と、通常の物理アドレス指定モードではＯＳが管理しない（アクセスできない）ＯＳ管理外領域１３０とからなる。なお、ＯＳ管理領域１１０は、約３〜３．５ＧＢに制限されている。また、予約領域１２０は、約０．５〜１ＧＢである。また、メインメモリ１００における、ＯＳ管理領域１１０、および、予約領域１２０以外の４ＧＢを超える領域が、ＯＳ管理外領域１３０である。
【００２５】
そして、本実施例のコンピュータシステムでは、本発明のコンピュータプログラムとしてのＲＡＭディスクドライバをＣＰＵが実行することによって、メインメモリ１００のＯＳ管理外領域１３０をディスクイメージ用メモリ領域として利用可能とする。具体的には、図中に一点鎖線で囲まれた矩形で示したように、ディスクイメージ上の、読み書きしたい箇所にあたるメモリ領域を、必要に応じてＲＡＭディスクドライバが仮想アドレス空間２００にマッピングし、ＯＳがＲＡＭディスクドライバを介して、ＯＳ管理外領域１３０にアクセス可能とする。
【００２６】
さらに、本実施例のコンピュータシステムでは、ＲＡＭディスクドライバの仮想アドレス空間２００（対応するＯＳ管理外領域１３０）に記憶されたデータを、ユーザのバックアップ指示によらずに、所定のタイミングで、ハードディスク３００上に作成された自動バックアップファイルにバックアップすることができる。また、ＲＡＭディスクドライバの仮想アドレス空間２００（対応するＯＳ管理外領域１３０）に記憶されたデータを、ユーザによるバックアップ指示に応じて、ハードディスク３００上に作成された手動バックアップファイルにバックアップすることもできる。
【００２７】
また、本実施例のコンピュータシステムでは、ハードディスク３００上の自動バックアップファイルにバックアップされたデータを、ユーザのリストア指示によらずに、所定のタイミングで、ＲＡＭディスクドライバの仮想アドレス空間２００（対応するＯＳ管理外領域１３０）に自動的にリストアすることができる。また、手動バックアップファイルにバックアップされたデータを、ユーザのリストア指示に応じて、ＲＡＭディスクドライバの仮想アドレス空間２００（対応するＯＳ管理外領域１３０）にリストアすることもできる。
【００２８】
以下、本実施例のコンピュータシステムにおいて、ＲＡＭディスクドライバを用いてＣＰＵが実行する各種処理について説明する。
【００２９】
Ｂ．各種処理：
Ｂ１．ＲＡＭディスクドライバのインストール処理：
図２は、ＲＡＭディスクドライバのインストール処理の流れを示すフローチャートである。この処理は、ＲＡＭディスクドライバ、および、ＲＡＭディスクドライバの設定ユーティリティが記録された記録媒体が、コンピュータシステムが備えるドライブに挿入されたときに、ＣＰＵが自動的に実行する処理である。
【００３０】
まず、ＣＰＵは、ＲＡＭディスクドライバの設定ユーティリティのインストール先フォルダ選択などの設定画面（図示省略）をディスプレイに表示する（ステップＳ１００）。そして、この設定画面でユーザによって必要な設定情報が入力されると、ＣＰＵは、後述するＰＡＥモード設定処理を行う（ステップＳ１１０）。このＰＡＥモード設定処理によって、ＰＡＥモードが有効にされ、ＯＳの再起動後に、メインメモリ１００のＯＳ管理外領域１３０がディスクイメージ用メモリ領域として利用可能となる。
【００３１】
次に、ＣＰＵは、ＲＡＭディスクドライバをシステムにインストールする（ステップＳ１２０）。次に、ＣＰＵは、ＲＡＭディスクドライバの設定ユーティリティをシステムにインストールする（ステップＳ１３０）。そして、ＣＰＵは、ＯＳの再起動を行う（ステップＳ１４０）。以上の処理によって、ＲＡＭディスクのインストール処理は終了する。
【００３２】
Ｂ２．ＰＡＥモード設定処理：
図３は、図２のステップＳ１１０におけるＰＡＥモード設定処理の流れを示すフローチャートである。
【００３３】
まず、ＣＰＵは、コンピュータシステムで起動しているＯＳの種別を判断し（ステップＳ２００）、ＯＳの種別に応じて、以降の処理内容を切り換える。本実施例では、ＯＳがＷｉｎｄｏｗｓ Ｖｉｓｔａであるか、Ｗｉｎｄｏｗｓ ＸＰであるかを判断するものとした。ＯＳがＷｉｎｄｏｗｓ Ｖｉｓｔａである場合には、ＣＰＵは、”bcdedit /set pae ForceEnable”コマンドを実行して、ＰＡＥモードを有効にする設定を行い、ＰＡＥモード設定処理を終了する。
【００３４】
ステップＳ２００において、ＯＳがＷｉｎｄｏｗｓ ＸＰである場合には、ＣＰＵは、ＯＳのboot.iniファイルの［operating systems］セクションの内容を読み込み（ステップＳ２２０）、[operating systems]セクションに２行以上のブートエントリが存在するか否かを判断する（ステップＳ２３０）。例えば、コンピュータシステムに、複数種類のＯＳがインストールされており、［operating systems］セクションに２行以上のブートエントリが存在する場合には（ステップＳ２３０：ＹＥＳ）、ＣＰＵは、ＰＡＥモード設定を追加するブートエントリをユーザが選択するための選択画面（図示省略）をディスプレイに表示する（ステップＳ２４０）。そして、この選択画面でユーザによってＰＡＥモード設定を追加するブートエントリが選択されると、ＣＰＵは、ユーザによって選択されたブートエントリに「／ＰＡＥ」オプションを付加し（ステップＳ２５０）、編集したブートエントリをboot.iniファイルに上書きする（ステップＳ２６０）。
【００３５】
ステップＳ２３０において、[operating systems]セクションにブートエントリが１行しか存在しない場合には（ステップＳ２３０：ＮＯ）、ＣＰＵは、そのブートエントリに「／ＰＡＥ」オプションを付加し（ステップＳ２５０）、編集したブートエントリをboot.iniファイルに上書きする（ステップＳ２６０）。以上の処理によって、ＰＡＥモード設定処理を終了する。
【００３６】
図４は、ＰＡＥモード設定処理におけるboot.iniファイルの編集の様子を示す説明図である。図４（ａ）に、編集前のboot.iniファイルの内容の一例を示した。また、図４（ｂ）に、編集後のboot.iniファイルの内容の一例を示した。ここでは、[operating systems]セクションに１行のブートエントリが存在する場合について示した。図４（ａ），（ｂ）に、破線、および、一点鎖線で囲んで示したように、ＰＡＥモード設定処理によって、[operating systems]セクションのブートエントリには、「／ＰＡＥ」オプションが付加される。
【００３７】
上述したインストール処理後、ＲＡＭディスクの設定ユーティリティが起動されると、ＣＰＵは、図５に示したグラフィカル・ユーザ・インタフェースとしての表示画面ＷＤ１をディスプレイに表示する。
【００３８】
図５は、ＲＡＭディスクの設定ユーティティが起動されたときに、ＣＰＵがディスプレイに表示する表示画面ＷＤ１の一例を示す説明図である。図示するように、この表示画面ＷＤ１には、「手動バックアップ」ボタンと、「手動リストア」ボタンと、「自動バックアップファイルの削除」ボタンと、「動作設定」ボタンと、「アンインストール」ボタンとが配置される。
【００３９】
表示画面ＷＤ１において、ユーザによって「手動バックアップ」ボタンが押下されると、ＣＰＵは、ユーザによって指定された手動バックアップファイルをハードディスク３００上に作成し、現在のディスクイメージ用メモリ領域の内容を、指定された手動バックアップファイルにバックアップする。これは、後述する「バックアップ処理」を、ファイル名を指定して呼び出すものである。
【００４０】
また、表示画面ＷＤ１において、ユーザによって「手動リストア」ボタンが押下されると、ＣＰＵは、ハードディスク３００上に存在する、ユーザによって指定された手動バックアップファイルの内容を、ディスクイメージ用メモリ領域へリストアする。これは、後述する「リストア処理」を、ファイル名を指定して呼び出すものである。
【００４１】
また、表示画面ＷＤ１において、ユーザによって「自動バックアップファイルの削除」ボタンが押下されると、ＣＰＵは、ハードディスク３００上に存在する自動バックアップファイルを削除し、後述する「フォーマット処理」直後のドライブ状態に戻す。ＲＡＭディスクの内容が破損した場合に、破損した自動バックアップファイルをリストアしてしまうのを防止するためである。これは、後述する「搭載メモリ容量の自動認識、リストア、フォーマット処理」を呼び出すものである。
【００４２】
また、表示画面ＷＤ１において、ユーザによって「動作設定」ボタンが押下されると、ＣＰＵは、後述する動作設定画面ＷＤ２をディスプレイに表示し、ユーザに対して、ＲＡＭディスクドライバの動作設定を促す。
【００４３】
また、表示画面ＷＤ１において、ユーザによって「アンインストール」ボタンが押下されると、ＣＰＵは、後述する「アンインストール処理」を実行する。「アンインストール処理」は、ＲＡＭディスクドライバ、および、ＲＡＭディスクドライバの設定ユーティリティを、システムからアンインストールする処理である。
【００４４】
図６は、動作設定画面ＷＤ２の一例を示す説明図である。図示するように、動作設定画面ＷＤ２には、ＲＡＭディスクドライバのドライブレターを指定するためのプルダウンメニューと、「バックアップ機能設定」のＯＮ／ＯＦＦを設定するためのチェックボックスとが配置される。本実施例では、「バックアップ機能設定」を設定するためのチェックボックスとして、ＲＡＭディスクドライバの「自動バックアップ機能」を有効（ＯＮ）にするためのチェックボックスと、さらに、「常時バックアップ機能」を有効（ＯＮ）にするためのチェックボックスとが配置されるものとした。なお、本実施例では、「自動バックアップ機能」が有効（ＯＮ）の場合にしか「常時バックアップ機能」を有効（ＯＮ）にすることができないものとした。「自動バックアップ機能」が有効（ＯＮ）に設定されると、後述するように、メインメモリ１００への通電状態が非通電状態に移行するときに、後述する「バックアップ処理」が行われる。さらに、「常時バックアップ機能」が有効（ＯＮ）に設定されると、後述すように、ＲＡＭディスクへの書き込みが行われるごとに、後述する「バックアップ処理」が行われる。
【００４５】
Ｂ３．初期化処理：
図７は、初期化処理の流れを示す説明図である。この処理は、ＰＡＥモードが有効であって、ＯＳからＲＡＭディスクドライバのＡｄｄＤｅｖｉｃｅ関数が呼び出されたときに、ＣＰＵが実行する処理である。
【００４６】
まず、ＣＰＵは、搭載メモリ容量の自動認識、リストア、フォーマット処理を行う（ステップＳ３００）。これらの処理については、後述する。
【００４７】
次に、ＣＰＵは、ＲＡＭディスクドライバの初期化設定を行う（ステップＳ４００）。このＲＡＭディスクドライバの初期化処理は、デバイスの追加や、ドライブレターの追加など、ＲＡＭディスクドライバの一般的な初期化処理であるので、詳細な説明は省略する。
【００４８】
Ｂ４．搭載メモリ容量の自動認識、リストア、フォーマット処理：
図８は、図７のステップＳ３００における搭載メモリ容量の自動認識、リストア、フォーマット処理の流れを示すフローチャートである。
【００４９】
まず、ＣＰＵは、システムに搭載されているメインメモリ１００のＯＳ管理外領域１３０を自動認識する（ステップＳ３１０）。この手法としては、例えば、ＢＩＯＳのコマンドを利用して空きメモリ領域の情報を取得する、実際に書き込み・読み込みを試行しデータが破壊されない範囲を探索する、などの手法が挙げられる。そして、ＯＳ管理外領域１３０を認識できなかった場合には（ステップＳ３２０：ＮＯ）、エラー扱いで、搭載メモリ容量の自動認識、リストア、フォーマット処理を終了する。一方、ＯＳ管理外領域１３０を認識できた場合には（ステップＳ３２０：ＹＥＳ）、ＣＰＵは、ハードディスク３００上に自動バックアップファイルが存在しているか否かを判断する（ステップＳ３３０）。
【００５０】
ハードディスク３００上に自動バックアップファイルが存在している場合には（ステップＳ３３０：ＹＥＳ）、ＣＰＵは、後述するリストア処理を行う（ステップＳ３４０）。そして、ＣＰＵは、リストア処理が成功したか否かを判断する（ステップＳ３５０）。ＯＳ管理外領域１３０の容量と自動バックアップファイルの容量とが不整合であるために、すなわち、自動バックアップファイルの容量がＯＳ管理外領域１３０の容量よりも大きいために、リストア処理が失敗した場合には、不整合エラー扱いで、搭載メモリ容量の自動認識、リストア、フォーマット処理を終了する。また、リストア処理が成功した場合には、搭載メモリ容量の自動認識、リストア、フォーマット処理を終了する。また、ＯＳ管理外領域１３０の容量と自動バックアップファイルの容量との不整合以外の理由で、リストア処理が失敗した場合には、後述するフォーマット処理を行う（ステップＳ３６０）。
【００５１】
次に、ＣＰＵは、ＲＡＭディスクドライバの常時バックアップ機能がＯＮであるか否か（図６参照）を判断する（ステップＳ３７０）。ＲＡＭディスクドライバの常時バックアップ機能がＯＮである場合には（ステップＳ３７０：ＹＥＳ）、ＣＰＵは、ハードディスク３００上に自動バックアップファイルを作成し（ステップＳ３８０）、後述するバックアップ処理を行う（ステップＳ３９０）。そして、搭載メモリ容量の自動認識、リストア、フォーマット処理を終了する。一方、ＲＡＭディスクドライバの常時バックアップ機能がＯＦＦｆある場合には（ステップＳ３７０：ＮＯ）、そのまま搭載メモリ容量の自動認識、リストア、フォーマット処理を終了する。
【００５２】
なお、ステップＳ３３０において、ハードディスク３００上に自動バックアップファイルが存在しない場合には（ステップＳ３３０：ＮＯ）、ステップＳ３６０に進み、ＣＰＵは、後述するフォーマット処理を行い、その後、ステップＳ３７０〜Ｓ３９０の処理を行う。
【００５３】
Ｂ４．１．リストア処理：
図９は、図８のステップＳ３４０におけるリストア処理の流れを示すフローチャートである。
【００５４】
まず、ＣＰＵは、ＯＳ管理外領域１３０の容量と自動バックアップファイルの容量とが整合しているか否か、すなわち、ＯＳ管理外領域１３０の容量が自動バックアップファイルの容量以上か否かを判断する（ステップＳ５００）。そして、ＯＳ管理外領域１３０の容量が自動バックアップファイルの容量未満である場合には（ステップＳ５００：ＮＯ）、不整合エラーであるものとして（ステップＳ５１０）、リストア処理を終了する。ＯＳ管理外領域１３０の容量が自動バックアップファイルの容量以上である場合には（ステップＳ５００：ＹＥＳ）、ＣＰＵは、ＯＳのＭｍＭａｐＩｏＳｐａｃｅ関数を使用して、処理対象のディスクイメージ用メモリ領域を、ＲＡＭディスクドライバの仮想アドレス空間２００にマッピングする（ステップＳ５２０）。
【００５５】
そして、ＣＰＵは、マッピングした領域のオフセットアドレス／サイズの範囲に対応するハードディスク３００上の自動バックアップファイル領域のデータを、マッピングした領域に読み込む（ステップＳ５３０）。そして、ＣＰＵは、マッピングした領域を、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、アンマッピングする（ステップＳ５４０）。
【００５６】
そして、ＣＰＵは、未処理のメモリ領域があるか否かを判断する（ステップＳ５５０）。未処理の領域がある場合には（ステップＳ５５０：ＹＥＳ）、ステップＳ５２０に戻る。一方、未処理の領域がない場合には（ステップＳ５５０：ＮＯ）、リストア処理を終了する。
【００５７】
Ｂ４．２．フォーマット処理：
図１０は、図８のステップＳ３６０におけるフォーマット処理の流れを示すフローチャートである。
【００５８】
まず、ＣＰＵは、ＯＳのＭｍＭａｐＩｏＳｐａｃｅ関数を使用して、処理対象のディスクイメージ用メモリ領域を、ＲＡＭディスクドライバの仮想アドレス空間２００にマッピングする（ステップＳ６００）。そして、ＣＰＵは、マッピングした領域をゼロで埋める（ステップＳ６１０）。そして、ＣＰＵは、マッピングした領域を、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、アンマッピングする（ステップＳ６２０）。
【００５９】
そして、ＣＰＵは、未処理のメモリ領域があるか否かを判断する（ステップＳ６３０）。未処理の領域がある場合には（ステップＳ６３０：ＹＥＳ）、ステップＳ６００に戻る。一方、未処理の領域がない場合には（ステップＳ６３０：ＮＯ）、ＣＰＵは、ＦＡＴ３２フォーマットでファイルシステムを構築し（ステップＳ６４０）、フォーマット処理を終了する。
【００６０】
Ｂ４．３．バックアップ処理：
図１１は、図８のステップＳ３９０におけるバックアップ処理の流れを示すフローチャートである。
【００６１】
まず、ＣＰＵは、ＯＳのＭｍＭａｐＩｏＳｐａｃｅ関数を使用して、処理対象のディスクイメージ用メモリ領域を、ＲＡＭディスクドライバの仮想アドレス空間２００にマッピングする（ステップＳ７００）。そして、ＣＰＵは、マッピングした領域にあるデータを、そのオフセットアドレス／サイズの範囲に対応するハードディスク３００上の自動バックアップファイル領域に書き込む（ステップＳ７１０）。そして、ＣＰＵは、マッピングした領域を、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、アンマッピングする（ステップＳ７２０）。
【００６２】
そして、ＣＰＵは、未処理のメモリ領域があるか否かを判断する（ステップＳ７３０）。未処理の領域がある場合には（ステップＳ７３０：ＹＥＳ）、ステップＳ７００に戻る。一方、未処理の領域がない場合には（ステップＳ７３０：ＮＯ）、バックアップ処理を終了する。
【００６３】
Ｂ５．リード・ライト処理：
図１２は、リード・ライト処理の流れを示すフローチャートである。この処理は、ＰＡＥモードが有効であって、ＯＳからＲＡＭディスクドライバのディスクリード・ライト処理（ＩＲＰ_ＭＪ_ＲＥＡＤ，ＩＲＰ_ＭＪ_ＷＲＩＴＥ）が呼び出されたときに、ＣＰＵが実行する処理である。
【００６４】
まず、ＣＰＵは、ＯＳのＭｍＭａｐＩｏＳｐａｃｅ関数を使用して、ＯＳから指示されたオフセットアドレス／サイズの範囲に対応するディスクイメージ用メモリ領域を、ＲＡＭディスクドライバの仮想アドレス空間２００にマッピングする（ステップＳ８００）。
【００６５】
次に、ＣＰＵは、ＯＳから呼び出された処理がリードかライトかを判断する（ステップＳ８１０）。ＯＳから呼び出された処理がリードである場合には、ＣＰＵは、マッピングした領域にあるデータを、ＯＳから渡されたバッファへコピーし（ステップＳ８２０）、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、マッピングした領域をアンマッピングして（ステップＳ８６０）、リード・ライト処理を終了する。
【００６６】
一方、ステップＳ８１０において、ＯＳから呼び出された処理がライトである場合には、ＣＰＵは、ＯＳから渡されたデータを、マッピングした領域へコピーする（ステップＳ８３０）。そして、ＣＰＵは、ＲＡＭディスクドライバの常時バックアップ機能がＯＮであるか否かを判断する（ステップＳ８４０）。
【００６７】
ＲＡＭディスクドライバの常時バックアップ機能がＯＦＦである場合には（ステップＳ８４０：ＮＯ）、そのままマッピングした領域を、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、アンマッピングして（ステップＳ８６０）、リード・ライト処理を終了する。一方、ＲＡＭディスクドライバの常時バックアップ機能がＯＮである場合には（ステップＳ８４０：ＹＥＳ）、ＣＰＵは、ＯＳから指示されたオフセットアドレス／サイズの範囲に対応するハードディスク３００上の自動バックアップファイル領域に、ＯＳから渡されたデータを書き込む（ステップＳ８５０）。そして、ＣＰＵは、マッピングした領域を、ＯＳのＭｍＵｎｍａｐＩｏＳｐａｃｅ関数を使用して、アンマッピングして（ステップＳ８６０）、リード・ライト処理を終了する。
【００６８】
Ｂ６．非通電状態移行処理：
図１３は、非通電状態移行処理の流れを示すフローチャートである。この処理は、ＰＡＥモードが有効であって、ＯＳからＲＡＭディスクドライバに、メインメモリ１００への通電状態が非通電状態（シャットダウン、再起動、休止状態）に移行する旨、通知されたときに、ＣＰＵが実行する処理である。
【００６９】
まず、ＣＰＵは、ＲＡＭディスクドライバの自動バックアップ機能がＯＮであるか否か（図６参照）を判断する（ステップＳ９００）。ＲＡＭディスクドライバの自動バックアップ機能がＯＮである場合には（ステップＳ９００：ＹＥＳ）、ＣＰＵは、さらに、ＲＡＭディスクドライバの常時バックアップ機能がＯＮであるか否かを判断する（ステップＳ９１０）。ＲＡＭディスクドライバの常時バックアップ機能がＯＦＦである場合には（ステップＳ９１０：ＮＯ）、ＣＰＵは、図１１に示したバックアップ処理を行い（ステップＳ９２０）、その後、ＯＳに移行成功を通知して（ステップＳ９３０）、非通電状態移行処理を終了する。一方、ＲＡＭディスクドライバの常時バックアップ機能がＯＮである場合には（ステップＳ９１０：ＹＥＳ）、ＣＰＵは、バックアップ処理を行わずに、ＯＳに移行成功を通知して（ステップＳ９３０）、非通電状態移行処理を終了する。
【００７０】
なお、ステップＳ９００において、ＲＡＭディスクドライバの自動バックアップ機能がＯＦＦである場合には（ステップＳ９００：ＮＯ）、ＣＰＵは、ＯＳに移行不可を通知して（ステップＳ９４０）、非通電状態移行処理を終了する。
【００７１】
Ｂ７．通電状態復帰処理：
図１４は、通電状態復帰処理の流れを示すフローチャートである。この処理は、ＰＡＥモードが有効であって、ＯＳからＲＡＭディスクドライバに、非通電状態から通電状態への復帰が通知されたときに、ＣＰＵが実行する処理である。この処理では、ＣＰＵは、図８に示した搭載メモリ容量の自動認識、リストア、フォーマット処理を行い（ステップＳ１０００）、通電状態復帰処理を終了する。
【００７２】
Ｂ８．デバイス停止処理：
図１５は、デバイス停止処理の流れを示すフローチャートである。この処理は、ＰＡＥモードが有効であって、ＯＳからＲＡＭディスクドライバに、メインメモリ１００の停止／取り外し（ＩＲＰ_ＭＮ_ＱＵＥＲＹ_ＳＴＯＰ_ＤＥＶＩＣＥ／ＩＲＰ_ＭＮ_ＱＵＥＲＹ_ＲＥＭＯＶＥ_ＤＥＶＩＣＥ）が通知されたとき、または、ＯＳからＲＡＭディスクドライバのＤｒｉｖｅｒＵｎｌｏａｄ関数が呼び出されたときに、ＣＰＵが実行する処理である。
【００７３】
まず、ＣＰＵは、ＲＡＭディスクドライバの自動バックアップ機能がＯＮであるか否かを判断する（ステップＳ１１００）。ＲＡＭディスクドライバの自動バックアップ機能がＯＮである場合には（ステップＳ１１００：ＹＥＳ）、ＣＰＵは、さらに、ＲＡＭディスクドライバの常時バックアップ機能がＯＮであるか否かを判断する（ステップＳ１１１０）。ＲＡＭディスクドライバの常時バックアップ機能がＯＦＦである場合には（ステップＳ１１１０：ＮＯ）、ＣＰＵは、図１１に示したバックアップ処理を行い（ステップＳ１１２０）、デバイス停止処理を終了する。
【００７４】
なお、ステップＳ１１００において、ＲＡＭディスクドライバの自動バックアップ機能がＯＦＦである場合（ステップＳ１１００：ＮＯ）、および、ステップＳ１１１０において、ＲＡＭディスクドライバの常時バックアップ機能がＯＮである場合には（ステップＳ１１００：ＹＥＳ）、バックアップ処理を行わずに、デバイス停止処理を終了する。
【００７５】
Ｂ９．ＲＡＭディスクドライバのアンインストール処理：
図１６は、ＲＡＭディスクドライバのアンインストール処理の流れを示すフローチャートである。この処理は、図５に示した表示画面ＷＤ１において、ユーザによって、「アンインストール」ボタンが押下されたときに、ＣＰＵが実行する処理である。
【００７６】
まず、ＣＰＵは、ＲＡＭディスクドライバをシステムから削除する（ステップＳ１２００）。次に、ＣＰＵは、ＲＡＭディスクドライバの設定ユーティリティをシステムから削除する（ステップＳ１２１０）。次に、ＣＰＵは、後述するＰＡＥモード解除処理を行う（ステップＳ１２２０）。そして、ＣＰＵは、ＯＳの再起動を行う（ステップＳ１２３０）。以上の処理によって、ＲＡＭディスクのアンインストール処理は終了する。
【００７７】
Ｂ１０．ＰＡＥモード解除処理：
図１７は、図１６のステップＳ１２２０におけるＰＡＥモード解除処理の流れを示すフローチャートである。
【００７８】
まず、ＣＰＵは、コンピュータシステムで起動しているＯＳの種別を判断する（ステップＳ１３００）。本実施例では、ＯＳがＷｉｎｄｏｗｓ Ｖｉｓｔａであるか、Ｗｉｎｄｏｗｓ ＸＰであるかを判断するものとした。ＯＳがＷｉｎｄｏｗｓ Ｖｉｓｔａである場合には、ＣＰＵは、”bcdedit /set pae ForceDisable”コマンドを実行して、物理アドレス指定モードのＰＡＥモードを解除し、ＰＡＥモード解除処理を終了する。
【００７９】
ステップＳ１３００において、ＯＳがＷｉｎｄｏｗｓ ＸＰである場合には、ＣＰＵは、ＯＳのboot.iniファイルの［operating systems］セクションの内容を読み込み（ステップＳ１３２０）、[operating systems]セクションに２行以上のブートエントリが存在するか否かを判断する（ステップＳ１３３０）。［operating systems］セクションに２行以上のブートエントリが存在する場合には（ステップＳ１３３０：ＹＥＳ）、ＣＰＵは、ＰＡＥモード設定を解除するブートエントリをユーザが選択するための選択画面（図示省略）をディスプレイに表示する（ステップＳ１３４０）。そして、ＣＰＵは、この選択画面でユーザによって選択されたブートエントリの「／ＰＡＥ」オプションを削除し（ステップＳ１３５０）、編集したブートエントリをboot.iniファイルに上書きする（ステップＳ１３６０）。
【００８０】
ステップＳ１３３０において、[operating systems]セクションにブートエントリが１行しか存在しない場合には（ステップＳ１３３０：ＮＯ）、ＣＰＵは、そのブートエントリの「／ＰＡＥ」オプションを削除し（ステップＳ１３５０）、編集したブートエントリをboot.iniファイルに上書きする（ステップＳ１３６０）。以上の処理によって、ＰＡＥモード解除処理を終了する。
【００８１】
以上説明したＲＡＭディスクドライバをＣＰＵが実行することによって、コンピュータシステムに精通していないユーザにとって困難な設定作業をユーザが行うことなく、物理アドレス拡張モード（ＰＡＥモード）を有効にする設定を行い、メインメモリ１００のＯＳ管理外領域１３０を利用できるようにすることができる。つまり、本実施例のＲＡＭディスクドライバによって、オペレーティングシステムが管理するメインメモリの管理領域が所定領域に制限されているコンピュータシステムにおいて、制限された所定領域以外の領域である管理外領域を利用できるようにするとともに、その際のユーザの利便性を向上させることができる。
【００８２】
また、本実施例のＲＡＭディスクドライバによれば、ＯＳ管理外領域１３０に記憶されているデータを、メインメモリ１００への通電状態が非通電状態に移行するときや、ＯＳ管理外領域１３０へのデータの書き込みがあったときに、ハードディスク３００に自動的にバックアップすることができるので、ＯＳ管理外領域１３０に記憶されているデータが消失するのを回避することができる。
【００８３】
Ｃ．変形例：
以上、本発明の実施の形態について説明したが、本発明はこのような実施の形態になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々なる態様での実施が可能である。例えば、以下のような変形が可能である。
【００８４】
Ｃ１．変形例１：
上記実施例では、図３に示したＰＡＥモード設定処理において、コンピュータシステムで起動しているＯＳの種別に応じて、処理内容を切り換えるものとしたが、本発明は、これに限られない。さらに、メインメモリ１００やＣＰＵの種類等、コンピュータシステムの環境に応じて、上記設定時の処理内容を切り換えるようにしてもよい。この場合、上記実施例では、boot.iniファイルの内容を変更するものとしたが、さらに、例えば、ＢＩＯＳの設定を変更するようにしてもよい。
【００８５】
Ｃ２．変形例２：
上記実施例では、ＣＰＵは、ＲＡＭディスクドライバを実行することによって、ＰＡＥモードの設定機能の他に、自動バックアップ機能、および、自動リストア機能等の種々の機能を実現するものとしたが、本発明は、これに限られず、自動バックアップ機能、および、自動リストア機能を省略してもよい。
【００８６】
Ｃ３．変形例３：
上記実施例では、自動バックアップ処理時に、ハードディスク３００上の自動バックアップファイルにデータをバックアップするものとしたが、本発明は、これに限られない。他の外部記憶装置上に自動バックアップファイルを作成し、この自動バックアップファイルにデータをバックアップするようにしてもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の概要を模式的に示す説明図である。
【図２】ＲＡＭディスクドライバのインストール処理の流れを示すフローチャートである。
【図３】ＰＡＥモード設定処理の流れを示すフローチャートである。
【図４】ＰＡＥモード設定処理におけるboot.iniファイルの編集の様子を示す説明図である。
【図５】ＲＡＭディスクの設定ユーティティが起動されたときにＣＰＵがディスプレイに表示する表示画面ＷＤ１の一例を示す説明図である。
【図６】動作設定画面ＷＤ２の一例を示す説明図である。
【図７】初期化処理の流れを示す説明図である。
【図８】搭載メモリ容量の自動認識、リストア、フォーマット処理の流れを示すフローチャートである。
【図９】リストア処理の流れを示すフローチャートである。
【図１０】フォーマット処理の流れを示すフローチャートである。
【図１１】バックアップ処理の流れを示すフローチャートである。
【図１２】リード・ライト処理の流れを示すフローチャートである。
【図１３】非通電状態移行処理の流れを示すフローチャートである。
【図１４】通電状態復帰処理の流れを示すフローチャートである。
【図１５】デバイス停止処理の流れを示すフローチャートである。
【図１６】ＲＡＭディスクドライバのアンインストール処理の流れを示すフローチャートである。
【図１７】ＰＡＥモード解除処理の流れを示すフローチャートである。
【符号の説明】
【００８８】
１００…メインメモリ
１１０…ＯＳ管理領域
１２０…予約領域
１３０…ＯＳ管理外領域
２００…仮想アドレス空間
３００…ハードディスク
【図１】
2010044503.tif 000003
【図２】
2010044503.tif 000004
【図３】
2010044503.tif 000005
【図４】
2010044503.tif 000006
【図５】
2010044503.tif 000007
【図６】
2010044503.tif 000008
【図７】
2010044503.tif 000009
【図８】
2010044503.tif 000010
【図９】
2010044503.tif 000011
【図１０】
2010044503.tif 000012
【図１１】
2010044503.tif 000013
【図１２】
2010044503.tif 000014
【図１３】
2010044503.tif 000015
【図１４】
2010044503.tif 000016
【図１５】
2010044503.tif 000017
【図１６】
2010044503.tif 000018
【図１７】
2010044503.tif 000019