(57)【要約】【課題】主記憶装置へのアクセスを高速化する技術を提供する。【解決手段】ＲＡＭディスクドライバー１１２は、操作用画像１０を介してユーザーからＲＡＭディスク１２２の容量の指定を受け付ける（ステップＳ２０）。ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０におけるＯＳ管理外領域の連続した領域にＲＡＭディスク１２２を設定する（ステップＳ３０）。また、ＲＡＭディスクドライバー１１２は、ユーザーが指定した容量が、ＲＡＭ１２０のＯＳ管理外領域より大きい容量である場合には、ＲＡＭ１２０におけるＯＳ管理領域の範囲を縮小させた上で、ＯＳ管理外領域内にＲＡＭディスク１２２を設定する。【選択図】図３
2011164968.tif 000002
【特許請求の範囲】
【請求項１】
コンピューターの主記憶装置の記憶領域の中の前記コンピューターのオペレーティングシステムが管理していない管理外記憶領域を用いて、前記主記憶装置へのアクセスを高速化する方法であって、
（ａ）前記主記憶装置の一部の領域をＲＡＭディスクとして利用する第１のソフトウェアが、前記ＲＡＭディスクの容量を指定するためのユーザーによる設定操作を受け付ける工程と、
（ｂ）前記第１のソフトウェアが、前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するＲＡＭディスクの記憶領域として設定する工程と、
を備え、
前記工程（ｂ）は、前記第１のソフトウェアが、前記工程（ａ）においてユーザーによって指定された前記ＲＡＭディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記ＲＡＭディスクのための記憶領域を確保する工程を含む、方法。
【請求項２】
請求項１記載の方法であって、さらに、
（ｃ）前記第１のソフトウェアが、前記管理外記憶領域の中で、前記ＲＡＭディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込む工程と、
（ｄ）第２のソフトウェアが、前記工程（ｃ）において前記レジストリに書き込まれた情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記コンピューターの外部記憶装置のためのキャッシュ領域を確保する工程と、
を備える、方法。
【請求項３】
コンピューターに用いられる記憶装置システムであって、
主記憶装置と、
前記主記憶装置の一部の記憶領域をＲＡＭディスクとして利用する第１のソフトウェアと、
を備え、
前記第１のソフトウェアは、
前記主記憶装置の一部の領域をＲＡＭディスクとして利用する第１のソフトウェアが、前記ＲＡＭディスクの容量を指定するためのユーザーによる設定操作を受け付けるインターフェイスモジュールと、
前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するＲＡＭディスクの記憶領域として設定する記憶領域設定モジュールと、
を備え、
前記記憶領域設定モジュールは、前記インターフェイスモジュールが受け付けた、ユーザーの指定した前記ＲＡＭディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記ＲＡＭディスクのための記憶領域を確保する、記憶装置システム。
【請求項４】
請求項３記載の記憶装置システムであって、さらに、
前記主記憶装置の一部の記憶領域を前記コンピューターの外部記憶装置のためのキャッシュ領域として使用する第２のソフトウェアを備え、
前記第１のソフトウェアは、前記管理外記憶領域の中で、前記ＲＡＭディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込み、
前記第２のソフトウェアは、前記第１のソフトウェアが前記レジストリに書き込んだ情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記外部記憶装置のためのキャッシュ領域を確保する、記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピューターの主記憶装置へのアクセスに関する。
【背景技術】
【０００２】
コンピューターは、通常、オペレーティングシステム（Operating System；ＯＳ）によって、その主記憶装置における記憶領域が管理される。ＯＳは、コンピューターで実行される各プログラムからの要求があったときに、主記憶装置の記憶領域における空き領域から、その要求に応じた容量の領域を割り当てる。そして、ＯＳは、記憶領域の割り当てを受けたプログラムがその領域の使用を終了したときに、当該領域を開放する。この記憶領域の割り当てと開放の繰り返しにより、主記憶装置の記憶領域は、通常、各プログラムの割り当て領域ごとに細かく分断された状態となる。
【０００３】
ここで、主記憶装置の記憶領域の一部を仮想的な外部記憶装置として使用する「ＲＡＭディスク」と呼ばれる技術が知られている（下記特許文献１等）。主記憶装置において、このＲＡＭディスクを設定する場合に、上記のように、主記憶装置の記憶領域が細かく分断されていると、ＲＡＭディスクとして割り当てられる記憶領域も細かく分断されてしまう。すると、ユーザーがＲＡＭディスクにアクセスする際のアクセス速度が低下してしまうという問題があった。これまで、こうした問題に対して十分な工夫がなされてこなかったのが実情であった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−８５６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、コンピューターに用いられる主記憶装置へのアクセスを高速化する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］
コンピューターの主記憶装置の記憶領域の中の前記コンピューターのオペレーティングシステムが管理していない管理外記憶領域を用いて、前記主記憶装置へのアクセスを高速化する方法であって、
（ａ）前記主記憶装置の一部の領域をＲＡＭディスクとして利用する第１のソフトウェアが、前記ＲＡＭディスクの容量を指定するためのユーザーによる設定操作を受け付ける工程と、
（ｂ）前記第１のソフトウェアが、前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するＲＡＭディスクの記憶領域として設定する工程と、
を備え、
前記工程（ｂ）は、前記第１のソフトウェアが、前記工程（ａ）においてユーザーによって指定された前記ＲＡＭディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記ＲＡＭディスクのための記憶領域を確保する工程を含む、方法。
この方法によれば、ユーザーが指定した容量を有するＲＡＭディスクの記憶領域を、主記憶装置の管理外記憶領域における連続した領域に設定することができる。そのため、主記憶装置上のＲＡＭディスクへのアクセス速度を向上させることができる。
【０００８】
［適用例２］
適用例１記載の方法であって、さらに、
（ｃ）前記第１のソフトウェアが、前記管理外記憶領域の中で、前記ＲＡＭディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込む工程と、
（ｄ）第２のソフトウェアが、前記工程（ｃ）において前記レジストリに書き込まれた情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記コンピューターの外部記憶装置のためのキャッシュ領域を確保する工程と、
を備える、方法。
この方法によれば、管理外記憶領域における連続した領域をＲＡＭディスクやソリッドステートドライブなどの外部記憶装置のためのキャッシュ領域として利用することができる。従って、ＲＡＭディスクへのアクセスを高速化することができるとともに、ユーザーが体感する外部記憶装置へのアクセス速度を向上させることができる。また、この方法では、レジストリを、第１のソフトウェアから第２のソフトウェアに管理外記憶領域の空き領域を通知するための手段として利用する。従って、オペレーティングシステムによって管理されていない管理外記憶領域を異なるプログラム同士が重複して使用してしまうことによるエラーの発生を回避することができる。
【０００９】
［適用例３］
コンピューターに用いられる記憶装置システムであって、
主記憶装置と、
前記主記憶装置の一部の記憶領域をＲＡＭディスクとして利用する第１のソフトウェアと、
を備え、
前記第１のソフトウェアは、
前記主記憶装置の一部の領域をＲＡＭディスクとして利用する第１のソフトウェアが、前記ＲＡＭディスクの容量を指定するためのユーザーによる設定操作を受け付けるインターフェイスモジュールと、
前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するＲＡＭディスクの記憶領域として設定する記憶領域設定モジュールと、
を備え、
前記記憶領域設定モジュールは、前記インターフェイスモジュールが受け付けた、ユーザーの指定した前記ＲＡＭディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記ＲＡＭディスクのための記憶領域を確保する、記憶装置システム。
【００１０】
［適用例４］
適用例３記載の記憶装置システムであって、さらに、
前記主記憶装置の一部の記憶領域を前記コンピューターの外部記憶装置のためのキャッシュ領域として使用する第２のソフトウェアを備え、
前記第１のソフトウェアは、前記管理外記憶領域の中で、前記ＲＡＭディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込み、
前記第２のソフトウェアは、前記第１のソフトウェアが前記レジストリに書き込んだ情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記外部記憶装置のためのキャッシュ領域を確保する、記憶装置システム。
【００１１】
なお、本発明は、種々の形態で実現することが可能であり、例えば、主記憶装置へのアクセスを高速化する方法およびその方法を実行する記憶装置システム、それらの方法またはシステムの機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施例におけるコンピューターの構成を示す概略図。
【図２】ＲＡＭの記憶領域と、本実施例のコンピューターにおけるアドレス空間の割り当てを説明するための模式図。
【図３】ＲＡＭディスクドライバーがＲＡＭディスクを設定するために実行する処理の処理手順を示すフローチャート。
【図４】ＲＡＭディスクの容量を設定するための操作用画像を示す模式図。
【図５】コンピューターの再起動後におけるアドレス空間を示す模式図。
【図６】第１と第２の比較例を説明するためのアドレス空間を示す模式図。
【図７】第２実施例におけるコンピューターの構成を示す概略図。
【図８】ＲＡＭディスクドライバーがＲＡＭディスクを設定するために実行する処理の処理手順を示すフローチャート。
【図９】レジストリ設定の一例を示す説明図。
【図１０】ＳＳＤドライバーがＲＡＭ上にＳＳＤ用キャッシュ領域を設定するために実行する処理の処理手順を示すフローチャート。
【図１１】ＲＡＭ上にＲＡＭディスクとＳＳＤ用キャッシュ領域とが設定された後のアドレス空間を示す模式図。
【発明を実施するための形態】
【００１３】
A．第１実施例：
図１は本発明の一実施例としてのコンピューターの構成を示す概略図である。コンピューター１００は、中央処理装置（Central Processing Unit；ＣＰＵ）１１０と、主記憶装置としてのＲＡＭ（Random Access Memory）１２０と、外部記憶装置１３０と、表示部１４０と、操作部１５０とを備える。これらの各構成部１１０〜１５０は、内部バス１０１を介して互いに接続されている。
【００１４】
ＣＰＵ１１０は、外部記憶装置１３０に格納されたＯＳやプログラム（図示せず）を読み出し、ＲＡＭ１２０上に展開して実行する。図１は、ＣＰＵ１１０がデバイスドライバーの一種であるＲＡＭディスクドライバー１１２を実行している状態を示している。ＲＡＭディスクドライバー１１２の機能については後述する。なお、本実施例のコンピューター１００では、ＯＳとしてＷｉｎｄｏｗｓ  ＸＰ（「ＷＩＮＤＯＷＳ  ＸＰ」はマイクロソフト  コーポレーションの登録商標）などの３２ビットＯＳが導入されているものとする。
【００１５】
ＲＡＭ１２０は、揮発性の記憶素子であり、その記憶領域の割り当てや開放はＯＳによって管理されている。なお、図１は、ＲＡＭ１２０の記憶領域の一部にＲＡＭディスク１２２が設定されている状態を示している。ＲＡＭディスク１２２については後述する。外部記憶装置１３０は、ハードディスクドライブ（Hard disk drive；ＨＤＤ）によって構成された不揮発性の記憶装置であり、ＯＳやプログラムの他、各プログラムで利用される設定データなどが格納されている。表示部１４０は、液晶ディスプレイなどのディスプレイ装置によって構成される。操作部１５０は、キーボードやマウスなどの入力デバイスによって構成され、ユーザーの操作を受け付ける。
【００１６】
図２は、ＲＡＭ１２０における記憶領域（物理メモリ）と、コンピューター１００におけるアドレス空間の割り当てを説明するための模式図である。本実施例では、ＲＡＭ１２０は、５．０ギガバイト（ＧＢ）の記憶容量を有しているものとする。一般に、３２ビットＯＳは、４．０Ｇまでのアドレス空間を設定することができる。ここで、４．０ＧＢのアドレス空間中の末尾の領域には、Ｉ／Ｏデバイスやシステムの制御のために用いられる固定的な領域が確保される。本明細書では、この領域を「制御用領域」と呼ぶ。制御用領域としては、例えば、０．５ＧＢ分の領域が確保される。
【００１７】
そして、アドレス空間のうち、先頭アドレスから制御用領域までのアドレス空間が、物理メモリを管理するために割り当てられる。即ち、３２ビットＯＳでは、ＲＡＭ１２０が５．０ＧＢの容量を有していても、制御用領域として０．５ＧＢ分のアドレス空間が確保される場合には、ＲＡＭ１２０の全記憶領域のうち、先頭から最大３．５ＧＢ分の記憶領域しか管理することができない。本明細書では、ＯＳによって管理される領域を「ＯＳ管理領域」と呼び、ＯＳによる管理が及ばない領域を「ＯＳ管理外領域」と呼ぶ。ＲＡＭ１２０上のＯＳ管理領域には、ＯＳやデバイスドライバーを含む各種のプログラム、それらのプログラムにおいて用いられる各種のデータが格納される。また、ＲＡＭ１２０上のＯＳ管理領域に格納された各種のデータには、ＯＳやプログラムが直接的にアクセスすることが可能である。
【００１８】
ここで、本実施例のコンピューター１００では、ＲＡＭディスクドライバー１１２が、制御用領域に後続するアドレス空間を設定し、ＲＡＭ１２０のＯＳ管理外領域に割り当てる。図２には、制御用領域に続けて４．０〜５．５ＧＢの範囲のアドレス空間（破線で図示）が設定され、ＲＡＭ１２０の１．５ＧＢ分のＯＳ管理外領域に割り当てられている状態が示されている。これによって、ＲＡＭディスクドライバー１１２は、ＯＳ管理外領域へのアクセスを可能とし、その上で、ＯＳ管理外領域に仮想的な外部記憶装置であるＲＡＭディスク１２２の記憶領域を設定する。
【００１９】
図３は、ＲＡＭディスクドライバー１１２が、ＲＡＭディスク１２２を設定するために実行する処理の処理手順を示すフローチャートである。ステップＳ１０では、ＲＡＭディスクドライバー１１２は、コンピューター１００の物理メモリの容量（ＲＡＭ１２０の容量）と、ＲＡＭ１２０におけるＯＳ管理領域の範囲とを取得する。具体的には、ＲＡＭディスクドライバー１１２は、これらの情報を、ＢＩＯＳ（Basic Input Output System）などのデバイス制御のためのプログラムから取得するものとしても良い。ステップＳ２０では、ＲＡＭディスクドライバー１１２は、ユーザーによるＲＡＭディスク１２２の容量を指定するための設定操作を受け付ける。
【００２０】
図４は、ＲＡＭディスクドライバー１１２がコンピューター１００の表示部１４０に表示させる操作用画像を示す模式図である。コンピューター１００のユーザーはこの操作用画像１０に対する画像上の操作によって、ＲＡＭディスク１２２の容量を指定することができる。操作用画像１０は、第１と第２のレベルバー１１，１２と、第１と第２のチェックボックス１１ｃ，１２ｃと、スライダー１３と、決定ボタン１４と、終了ボタン１５とを有する。
【００２１】
ここで、図４（Ａ）は、第１のレベルバー１１に対する操作が実行されている状態を示しており、図４（Ｂ）は、第２のレベルバー１２に対する操作が実行されている状態を示している。第１と第２のレベルバー１１，１２はそれぞれ、ＲＡＭディスク１２２の容量を示す帯グラフ状の画像オブジェクトである。本実施例では、ＲＡＭディスク１２２の容量としてユーザーは０ＧＢから３．０ＧＢまでの容量を指定できる。具体的には、ユーザーは、ＲＡＭ１２０のＯＳ管理外領域の容量に相当する範囲（図では０〜１．５ＧＢの範囲）で、ＲＡＭディスク１２２の容量を指定するときは、第１のレベルバー１１に対して操作を実行することができる。一方、ＯＳ管理外領域の容量を超えて、ＲＡＭディスク１２２の容量を指定するときは、第２のレベルバー１２に対して操作を実行することができる。
【００２２】
なお、第１のレベルバー１１に対してＲＡＭディスク１２２の容量を指定する操作が実行されたときには、ＲＡＭディスクドライバー１１２は、後述する処理において、ＯＳ管理領域の範囲を変更することなく、ＲＡＭディスク１２２を設定することとなる。また、第２のレベルバー１２に対してＲＡＭディスク１２２の容量を指定する操作が実行されたときには、ＲＡＭディスクドライバー１１２は、指定された容量に応じて、ＲＡＭ１２０におけるＯＳ管理領域の範囲を縮小させる処理を実行することとなる。
【００２３】
操作用画像１０における具体的な設定操作は以下の通りである。ユーザーは、第１と第２のレベルバー１１，１２のそれぞれに対応して設けられた第１と第２のチェックボックス１１ｃ，１２ｃのいずれかにチェックマーク（図では黒丸で表示）を入れることによって操作対象を選択する。そして、ユーザーは、第１と第２のレベルバー１１，１２のそれぞれに対応して設けられたスライダー１３のうち操作対象となる方（図では黒く塗りつぶされている方）を、レベルバー１１，１２上の所望の容量を示す位置まで移動させ、決定ボタン１４を押下する。これによって、ＲＡＭディスク１２２の容量が指定される。
【００２４】
なお、この設定操作をキャンセルする場合には、ユーザーは、決定ボタン１４を押下することなく、終了ボタン１５を押下すれば良い。また、決定ボタン１４を押下した後に、ユーザーに設定の確認を促す旨のメッセージが表示されるものとしても良く、このときに、ユーザーは、設定操作を承認するか、無効とするかを選択できるものとしても良い。
【００２５】
ステップＳ３０では、ＲＡＭディスクドライバー１１２は、コンピューター１００にＲＡＭディスク１２２が設定されるための処理を実行する。具体的には、ＲＡＭディスクドライバー１１２は、コンピューター１００の再起動後に、ＲＡＭ１２０のＯＳ管理外領域に対してアドレス空間が割り当てられ、ＲＡＭディスクドライバー１１２がＣＰＵ１１０にロードされるように、起動ファイルを編集する。
【００２６】
ここで、ステップＳ２０において、ユーザーがＲＡＭディスク１２２の容量として、ＯＳ管理領域の範囲を越える容量を指定したときには、ＲＡＭディスクドライバー１１２は、ＯＳ管理領域の範囲を縮小させるために、以下の処理を実行する。即ち、ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０の容量とユーザーが指定したＲＡＭディスク１２２の容量との差を取り、縮小後のＯＳ管理領域の範囲を算出する。そして、起動ファイルに含まれるＯＳ用のＢｏｏｔ．ｉｎｉファイルに、ＯＳが使用できるメモリの最大容量を設定するための／ＭＡＸＭＥＭ＝ｎｎスイッチを配置し、縮小後のＯＳ管理領域の範囲を指定する。ここで、／ＭＡＸＭＥＭ＝ｎｎスイッチは、ＯＳ管理領域として設定する物理メモリの容量をメガバイト（ＭＢ）単位で指定することができる。具体的には、例えば、ＯＳ管理領域の範囲を０〜２．０ＧＢの範囲とする場合には、Ｂｏｏｔ．ｉｎｉファイルに、「／ＭＡＸＭＥＭ＝２０４８」と記述する。
【００２７】
ステップＳ４０では、ＲＡＭディスクドライバー１１２は、表示部１４０に、コンピューター１００の再起動を促す旨のメッセージを表示させ、ユーザーにコンピューター１００の再起動を実行させる。コンピューター１００の再起動により、ステップＳ３０において編集された起動ファイルがＣＰＵ１１０によって読み込まれる。これによって、ＲＡＭ１２０のＯＳ管理外領域にアドレス空間が割り当てられる。また、ＲＡＭディスクドライバー１１２が起動され、ＲＡＭ１２０のＯＳ管理外領域にＲＡＭディスク１２２の記憶領域が設定される。
【００２８】
図５（Ａ）〜（Ｃ）はそれぞれ、ステップＳ４０におけるコンピューター１００の再起動後のアドレス空間を示す模式図である。なお、図５（Ａ）〜（Ｃ）では、便宜上、制御用領域が破線で図示されている。
【００２９】
図５（Ａ）は、ステップＳ２０においてユーザーがＲＡＭディスク１２２の容量としてＯＳ管理外領域の容量より小さい容量を指定したときのアドレス空間を示している。ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０においてＯＳ管理領域として割り当てられるメモリ範囲（図では０〜３．５ＧＢの範囲）を変更することなく、ユーザーが指定した容量で、アドレス空間の末尾からの連続領域にＲＡＭディスク１２２の記憶領域を確保する。この場合には、ＲＡＭ１２０のＯＳ管理外領域において未使用の記憶領域が生じる。
【００３０】
図５（Ｂ）は、ステップＳ２０においてユーザーがＲＡＭディスク１２２の容量として、ＯＳ管理外領域の容量と同じ容量を指定したときのアドレス空間を示している。この場合には、ＲＡＭ１２０のＯＳ管理外領域に割り当てられるメモリ範囲の全範囲がＲＡＭディスク１２２の記憶領域として確保される。図５（Ｃ）は、ステップＳ２０においてユーザーがＲＡＭディスク１２２の容量として、ＲＡＭ１２０におけるＯＳ管理外領域の容量より大きい容量を指定した場合のアドレス空間を示している。この場合には、ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０におけるＯＳ管理領域の範囲を縮小させ、制御用領域の両側の２つの連続領域をＲＡＭ１２０のＯＳ管理外領域に割り当てる。そして、ＲＡＭ１２０のＯＳ管理外領域に、ユーザーが指定した容量の分だけＲＡＭディスク１２２のための記憶領域を確保する。なお、図５（Ｃ）では、ＲＡＭ１２０におけるＯＳ管理領域の範囲が０〜２．０ＧＢの範囲まで縮小され、拡張されたＲＡＭ１２０のＯＳ管理外領域の全範囲にＲＡＭディスク１２２が設定された状態が図示されている。
【００３１】
図６（Ａ），（Ｂ）はそれぞれ、第１と第２の比較例を説明するためのアドレス空間を示す模式図である。図６（Ａ）は、第１の比較例として、ＲＡＭディスク１２２がＲＡＭ１２０のＯＳ管理領域内のみに設定される場合のアドレス空間を示している。ここで、ＲＡＭ１２０上のＯＳ管理領域内における記憶領域の割り当ては、ＯＳが動的に実行する。即ち、ＯＳは、各プログラムからの要求に応じて、必要な記憶領域の確保と開放とを繰り返す。そのため、この場合には、ＲＡＭディスク１２２の記憶領域は分断された状態で設定されてしまう。このように、ＲＡＭディスク１２２の記憶領域が分断されていると、ＲＡＭディスク１２２に対するアクセス速度は低下してしまう。また、第１の比較例の場合には、ＲＡＭ１２０におけるＯＳ管理外領域が未使用の記憶領域となってしまう。
【００３２】
図６（Ｂ）は、第２の比較例として、ＲＡＭディスク１２２の記憶領域がＲＡＭ１２０のＯＳ管理外領域とＯＳ管理領域とに割り当てられる場合のアドレス空間を示している。第２の比較例では、ユーザーがＲＡＭ１２０におけるＯＳ管理外領域の容量以上の容量をＲＡＭディスク１２２の容量として指定した場合であっても、ＲＡＭ１２０におけるＯＳ管理領域の範囲が変更されない。この場合には、ＲＡＭディスク１２２のための記憶領域は、ＲＡＭ１２０上においてＯＳ管理外領域とＯＳ管理領域の２つの領域に渡って割り当てられる。ただし、ＯＳ管理外領域におけるＲＡＭディスク１２２の記憶領域は、連続した記憶領域として確保されるが、ＯＳ管理領域に含まれるＲＡＭディスク１２２の記憶領域は分断された不連続な記憶領域として割り当てられてしまう。従って、この第２の比較例の場合にも、ＲＡＭディスク１２２に対するアクセス速度が低下する。
【００３３】
このように、本実施例のコンピューター１００であれば、ＲＡＭディスクドライバー１１２が、ユーザーが指定したＲＡＭディスク１２２の容量に応じて、ＲＡＭ１２０におけるＯＳ管理領域の範囲を変更する。そして、ＲＡＭディスク１２２の記憶領域として、ＯＳ管理外領域における連続した記憶領域を確保する。従って、ＲＡＭディスク１２２へのアクセス速度を向上させることができる。また、ＲＡＭ１２０のＯＳ管理外領域を有効利用することが可能である。
【００３４】
B．第２実施例：
図７は、本発明の第２実施例としてのコンピューターの構成を示す概略図である。図７は、ＣＰＵ１１０においてＳＳＤドライバー１１４が実行されている点と、ＲＡＭ１２０にＳＳＤ用キャッシュ領域１２４が追加されている点と、外部記憶装置１３０Ａがソリッドステートドライブ（Solid State Drive；ＳＳＤ）によって構成されている点以外は、図１とほぼ同じである。
【００３５】
ＳＳＤドライバー１１４は外部記憶装置１３０Ａ（以後、「ＳＳＤ１３０Ａ」とも呼ぶ）を制御するためのデバイスドライバーである。ここで、ＳＳＤ１３０Ａは、複数のフラッシュメモリが並列に接続された記憶装置である。フラッシュメモリの記憶領域はブロック単位で構成されており、フラッシュメモリへのデータの書き込み・消去もブロック単位で実行される。また、フラッシュメモリでは、データの更新は、既に書き込まれている旧データを一旦消去した上で、更新データを新たに書き込むことにより実行される。即ち、ＳＳＤでは、微小なサイズのデータの更新処理の場合であっても、ブロック単位でのデータの消去・書き込みが実行されるため、データの更新処理においては、データ量に対する更新処理時間の割合が大きくなる傾向にある。従って、ユーザーは、ＳＳＤ１３０Ａへのアクセス速度が低下していると感得してしまう場合がある。
【００３６】
そこで、第２実施例のコンピューター１００Ａでは、ＳＳＤドライバー１１４が、ＲＡＭ１２０のＯＳ管理外領域にＳＳＤ用キャッシュ領域１２４を設けることにより、ＳＳＤ１３０Ａに対するアクセスを効率的に実行する。これによって、ユーザーはあたかも、ＳＳＤ１３０Ａに対するアクセス速度が向上しているように感じることができる。具体的な、ＳＳＤドライバー１１４によるＳＳＤ１３０Ａに対するアクセス処理については後述する。
【００３７】
ところで、コンピューター１００Ａでは、第１実施例のコンピューター１００と同様に、ＲＡＭディスクドライバー１１２が、ＲＡＭ１２０のＯＳ管理外領域にＲＡＭディスク１２２を設定する。即ち、コンピューター１００Ａでは、ＲＡＭ１２０のＯＳ管理外領域に、２つの異なるプログラムによって、２つの記憶領域が設定されることとなる。しかし、ＯＳ管理外領域にはＯＳの管理が及ばないため、２つのプログラムが別個に、互いに重複した記憶領域を使用してしまう可能性がある。そこで、第２実施例のコンピューター１００Ａでは、以下の処理手順により、ＲＡＭ１２０のＯＳ管理外領域においてＲＡＭディスクドライバー１１２とＳＳＤドライバー１１４とが別個に記憶領域を重複することなく確保できるようにする。
【００３８】
図８は、ＲＡＭディスクドライバー１１２が、ＲＡＭ１２０にＲＡＭディスク１２２を設定するために実行する処理の処理手順を示すフローチャートである。図８は、ステップＳ３５が追加されている点以外は、図３とほぼ同じである。ステップＳ１０〜ステップＳ３０では、第１実施例で説明したのと同様な処理が実行される。即ち、ＲＡＭディスクドライバー１１２は、ユーザーからのＲＡＭディスク１２２の容量を指定する設定操作を受け付け、コンピューター１００Ａの再起動後に、指定された容量のＲＡＭディスク１２２が、ＲＡＭ１２０のＯＳ管理外領域に設定されるようにする。
【００３９】
ステップＳ３５では、ＲＡＭディスクドライバー１１２は、ＲＡＭディスク１２２として使用しないＲＡＭ１２０上のＯＳ管理外領域の空き領域に関する情報をレジストリに書き込む。ここで、「レジストリ」とは、Ｗｉｎｄｏｗｓ系ＯＳにおいて、システムやアプリケーションソフトの設定データを登録するためのデータベースを意味する。コンピューター１００Ａでは、レジストリはＳＳＤ１３０Ａに格納されている。また、「ＲＡＭ１２０上のＯＳ管理外領域の空き領域に関する情報」としては、ＲＡＭディスク１２２の記憶領域として割り当てられていないＯＳ管理外領域の範囲を示すアドレス情報や、当該範囲の容量などがある。
【００４０】
図９は、ＲＡＭディスクドライバー１１２がレジストリに格納する設定内容の一例を示す説明図である。ＲＡＭディスクドライバー１１２は、レジストリに名称を「ＥｎａｂｌｅＯｖｅｒ４Ｇ」として「１」または「０」の数値を書き込む。ここで、「ＲＥＧ＿ＤＷＯＲＤ」は数値型のデータであることを意味する。ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０のＯＳ管理外領域に空きがなく、ＯＳ管理外領域が使用できない状態であるときには、「ＥｎａｂｌｅＯｖｅｒ４Ｇ」に「０」を書き込む。また、ＲＡＭディスクドライバー１１２は、ＲＡＭ１２０のＯＳ管理外領域に空きがあり、ＯＳ管理外領域が使用できる状態である場合には、「ＥｎａｂｌｅＯｖｅｒ４Ｇ」に「１」を書き込む。
【００４１】
ＲＡＭディスクドライバー１１２は、名称を「ＳｔａｒｔＡｄｄｒ」として、ＯＳ管理外領域における空き領域の先頭アドレスをレジストリに格納する。即ち、「ＳｔａｒｔＡｄｄｒ」には、ＳＳＤ用キャッシュ領域１２４として使用可能な領域の先頭物理アドレスが格納される。さらに、ＲＡＭディスクドライバー１１２は、名称を「ＣａｃｈｅＳｉｚｅ」として、ＲＡＭ１２０上のＯＳ管理外領域における空き領域の容量をレジストリに格納する。即ち、「ＣａｃｈｅＳｉｚｅ」には、ＲＡＭ１２０のＯＳ管理外領域においてＳＳＤ用キャッシュ領域１２４として使用可能な容量が格納される。
【００４２】
ステップＳ４０では、ＲＡＭディスクドライバー１１２が、コンピューター１００Ａの再起動を促すメッセージを表示部１４０に表示させ、ユーザーにコンピューター１００Ａを再起動させる。なお、再起動後のコンピューター１００Ａでは、ＲＡＭディスクドライバー１１２がロードされ、起動ファイルにおける設定に従って、ＲＡＭ１２０のＯＳ管理外領域にＲＡＭディスク１２２が設定される。
【００４３】
図１０は、ＳＳＤドライバー１１４がＲＡＭ１２０上にＳＳＤ用キャッシュ領域１２４を設定するために実行する処理の処理手順を示すフローチャートである。この処理は、図８のステップＳ４０において再起動されたコンピューター１００Ａにおいて実行される処理である。なお、ＳＳＤドライバー１１４は、この再起動の際に、ＣＰＵ１１０によって自動的にロードされるように予め起動ファイルに設定されている。この起動ファイルの設定は、再起動前のコンピューター１００Ａにおいて、ＳＳＤドライバー１１４自身によってなされるものとしても良い。
【００４４】
ステップＳ１１０では、ＳＳＤドライバー１１４は、ＲＡＭディスクドライバー１１２が図８のステップＳ３５においてレジストリに書き込んだ情報を読み出す。ステップＳ１２０では、ＳＳＤドライバー１１４は、レジストリから読み込んだ情報と、設定すべきＳＳＤ用キャッシュ領域１２４の容量とに基づいて、ＲＡＭ１２０上に、ＳＳＤ用キャッシュ領域１２４のための記憶領域を確保する。なお、「ＳＳＤ用キャッシュ領域１２４の容量」は、再起動前のコンピューター１００Ａにおいて、予めユーザーが指定した容量であるものとしても良いし、予めＳＳＤドライバー１１４が規定値として有している容量であるものとしても良い。
【００４５】
ここで、ステップＳ２０において、ＳＳＤドライバー１１４が図９で説明したレジストリの設定内容を読み込んだ場合のステップＳ３０における処理を説明する。レジストリに格納された「ＥｎａｂｌｅＯｖｅｒ４Ｇ」の値が「０」のときには、ＲＡＭ１２０のＯＳ管理外領域にＳＳＤ用キャッシュ領域１２４を設定できない。そのため、ＳＳＤドライバー１１４は、ＯＳに依頼してＲＡＭ１２０のＯＳ管理領域内にＳＳＤ用キャッシュ領域１２４のための記憶領域を確保する。
【００４６】
一方、「ＥｎａｂｌｅＯｖｅｒ４Ｇ」の値が「１」のときには、ＳＳＤドライバー１１４は、ＲＡＭ１２０のＯＳ管理外領域から優先的にＳＳＤ用キャッシュ領域１２４の記憶領域を確保する。即ち、ＳＳＤドライバー１１４は、レジストリから「ＳｔａｒｔＡｄｄｒ」に格納されたアドレスを読み出し、当該アドレスを先頭アドレスとして、ＳＳＤ用キャッシュ領域１２４の容量に応じた連続する記憶領域を確保する。そして、設定すべきＳＳＤ用キャッシュ領域１２４の容量がレジストリの「ＣａｃｈｅＳｉｚｅ」に格納されている容量の値より大きいときには、ＳＳＤドライバー１１４は、ＲＡＭ１２０のＯＳ管理外領域における空き領域をＳＳＤ用キャッシュ領域１２４の記憶領域として割り当てた上で、不足する容量を、ＯＳに依頼して、ＲＡＭ１２０のＯＳ管理領域から割り当てる。
【００４７】
図１１（Ａ）〜（Ｃ）はそれぞれ、ＲＡＭ１２０上にＲＡＭディスク１２２とＳＳＤ用キャッシュ領域１２４とが設定された後のアドレス空間を示す模式図である。図１１（Ａ）は、ＲＡＭ１２０のＯＳ管理外領域に、ＲＡＭディスク１２２の記憶領域とＳＳＤ用キャッシュ領域１２４とが割り当てられた状態を示している。ＲＡＭディスク１２２の記憶領域は、第１実施例でも説明したように、ＲＡＭ１２０のＯＳ管理外領域の末尾からユーザーが指定した容量の範囲の連続領域が割り当てられる。そして、ＳＳＤ用キャッシュ領域１２４は、レジストリに書き込まれた情報に基づき、ＯＳ管理外領域において、ＲＡＭディスク１２２が使用していない記憶領域に設定される。
【００４８】
なお、図１１（Ａ）では、ＳＳＤ用キャッシュ領域１２４は、ＲＡＭ１２０のＯＳ管理外領域においてＲＡＭディスク１２２が使用していない領域を全範囲として設定されている。しかし、ＲＡＭディスク１２２の容量とＳＳＤ用キャッシュ領域１２４の容量との和がＲＡＭ１２０におけるＯＳ管理外領域の容量より小さい場合には、ＲＡＭ１２０のＯＳ管理外領域には、未使用の記憶領域が形成される。
【００４９】
図１１（Ｂ）は、ＳＳＤ用キャッシュ領域１２４の容量がＲＡＭ１２０のＯＳ管理外領域だけでは賄えなかった場合のアドレス空間を示している。この場合には、前記したとおり、ＳＳＤドライバー１１４は、ＲＡＭ１２０のＯＳ管理外領域では賄えない容量を、ＯＳに依頼して、ＲＡＭ１２０のＯＳ管理領域において確保する。なお、ＲＡＭ１２０のＯＳ管理領域からは、ＳＳＤ１３０Ａにおけるデータ管理の単位であるブロックの容量（例えば６４ｋＢ）又はその１／２のサイズに相当する固定長の容量を一単位として、ＳＳＤ用キャッシュ領域１２４の記憶領域に割り当てられることが好ましい。
【００５０】
図１１（Ｃ）は、ＲＡＭ１２０においてＯＳ管理領域に割り当てられる範囲が０〜２．０ＧＢの範囲まで縮小されるとともに、ＯＳ管理外領域にＲＡＭディスク１２２とＳＳＤ用キャッシュ領域１２４とが設定された状態のアドレス空間を示している。ＲＡＭディスクドライバー１１２は、ＳＳＤ用キャッシュ領域１２４の容量が既知である場合には、ＲＡＭディスク１２２の容量とＳＳＤ用キャッシュ領域１２４の容量との和に応じて、ＲＡＭ１２０におけるＯＳ管理領域のメモリ範囲を縮小させるものとしても良い。あるいは、ＲＡＭディスクドライバー１１２は、ＳＳＤ用キャッシュ領域１２４の少なくとも一部がＲＡＭ１２０のＯＳ管理外領域に設定できるように、ＲＡＭ１２０におけるＯＳ管理領域のメモリ範囲を余分に縮小するものとしても良い。
【００５１】
このように、ステップＳ１２０（図１０）において、ＳＳＤ用キャッシュ領域１２４がＲＡＭ１２０上に設定されると、ＳＳＤドライバー１１４は、ＳＳＤ１３０Ａへのデータの書込要求の有無の監視を開始する（ステップＳ１３０）。ＳＳＤドライバー１１４は、データの書込要求を検出すると、ＳＳＤ用キャッシュ領域１２４に当該データを格納する（ステップＳ１４０）。ここで、ＳＳＤ１３０Ａに直接データを書き込む速度より、ＲＡＭ１２０のＳＳＤ用キャッシュ領域１２４にデータを書き込む速度の方が速いため、ユーザーはＳＳＤ１３０Ａへのデータの書き込み速度が向上しているように感じる。
【００５２】
ステップＳ１５０では、ＳＳＤドライバー１１４は、規定のデータ量がＳＳＤ用キャッシュ領域１２４に格納されているか否かを判定する。ＳＳＤ用キャッシュ領域１２４に規定量のデータが格納されている場合には、ＳＳＤドライバー１１４は、ＳＳＤ用キャッシュ領域１２４に格納されているデータをＳＳＤ１３０Ａに転送する（ステップＳ１６０）。ＳＳＤ用キャッシュ領域１２４に規定量のデータが格納されていなかった場合には、ＳＳＤドライバー１１４は、ＳＳＤ１３０Ａへのデータの書込要求の有無の監視を再開する（ステップＳ１３０）。また、ステップＳ１６０において、データの転送が完了した場合にも、ＳＳＤドライバー１１４は、ＳＳＤ１３０Ａへのデータの書込要求の有無の監視を再開する。
【００５３】
ステップＳ１３０〜Ｓ１６０の処理によって、ＳＳＤ用キャッシュ領域１２４は、ＳＳＤ１３０Ａのディスクキャッシュとして機能する。即ち、ＳＳＤ用キャッシュ領域１２４によって、ユーザーが体感するＳＳＤ１３０Ａへのデータ転送速度が向上する。また、ＳＳＤ１３０Ａへのアクセス回数が低減され、ＳＳＤ１３０Ａに対するアクセス効率が向上する。
【００５４】
このように、第２実施例のコンピューター１００Ａであれば、ＲＡＭ１２０のＯＳ管理外領域に、ＲＡＭディスク１２２とＳＳＤ用キャッシュ領域１２４とを、互いの領域が重複しない連続領域として設けることが可能である。従って、ＲＡＭディスク１２２とＳＳＤ用キャッシュ領域１２４とに対するアクセス速度が向上する。
【００５５】
C．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００５６】
C1．変形例１：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。また、ＲＡＭディスクドライバー１１２の機能の一部を他のプログラムやハードウェアが実行するようにすることもできる。
【００５７】
C2．変形例２：
上記実施例において、コンピューター１００，１００Ａには、３２ビットＯＳが導入されていた。しかし、ＯＳとしては、６４ビットＯＳが導入されるものとしても良い。ここで、６４ビットＯＳでは、一般に、ＲＡＭの物理メモリのうち、８ＧＢ〜１２８ＧＢまでの範囲がＯＳ管理領域として設定されるが、この場合には、物理メモリのうち、その設定範囲の外側の領域がＯＳ管理外領域となる。
【００５８】
C3．変形例３：
上記実施例では、ＲＡＭディスクドライバー１１２は、ユーザーが指定したＲＡＭディスク１２２の容量が、ＲＡＭ１２０におけるＯＳ管理外領域の容量より大きいときに、ＲＡＭ１２０におけるＯＳ管理領域のメモリ範囲を縮小させていた。しかし、ＲＡＭディスクドライバー１１２は、例えば、ユーザーが指定したＲＡＭディスク１２２の容量が、ＲＡＭ１２０におけるＯＳ管理外領域の容量より小さいときに、ＲＡＭ１２０上のＯＳ管理外領域における未使用領域が低減されるように、ＯＳ管理領域の範囲を増大させるものとしても良い。
【００５９】
C4．変形例４：
上記実施例では、ＲＡＭディスクドライバー１１２は、ＯＳ管理外領域の末尾からの連続領域をＲＡＭディスク１２２の記憶領域として設定していた。しかし、ＲＡＭディスクドライバー１１２は、ＯＳ管理外領域の中の任意の位置の連続領域を、ＲＡＭディスク１２２の記憶領域として設定するものとしても良い。
【００６０】
C5．変形例５：
上記実施例では、ＲＡＭディスクドライバー１１２は、ｂｏｏｔ．ｉｎｉファイルに／ＭＡＸＭＥＭ＝ｎｎスイッチを設けることにより、ＲＡＭ１２０におけるＯＳ管理領域の範囲を変更していた。しかし、ＲＡＭディスクドライバー１１２は、他の手段によって、ＯＳ管理領域の範囲を変更するものとしても良い。例えば、ＯＳがＷｉｎｄｏｗｓ  ＸＰである場合には、ｂｏｏｔ．ｉｎｉファイルに／ＢＵＲＮＭＥＭＯＲＹ＝ｎｎスイッチを設けて、ＯＳが使用できないメモリ容量を指定するものとしても良い。また、ＯＳがＷｉｎｄｏｗｓ  ＶｉｓｔａやＷｉｎｄｏｗｓ  ７である場合には、ＲＡＭディスクドライバー１１２は、ブート構成データを編集して、ＲＡＭ１２０におけるＯＳ管理領域の範囲を変更するものとしても良い。なお、「ＷＩＮＤＯＷＳ  ＶＩＳＴＡ」はマイクロソフト  コーポレーションの登録商標である。
【００６１】
C6．変形例６：
上記実施例では、ＲＡＭディスクドライバー１１２は、操作用画像１０を介して、ユーザーからのＲＡＭディスク１２２の容量の指定を受け付けていた。しかし、ＲＡＭディスクドライバー１１２は、操作用画像１０を介して、ユーザーからＲＡＭ１２０におけるＯＳ管理領域の範囲の指定を受け付けることができるものとしても良い。
【００６２】
C7．変形例７：
上記第２実施例では、ＲＡＭディスクドライバー１１２が、ＲＡＭディスク１２２として使用しないＯＳ管理外領域の空き領域に関する情報をレジストリに格納し、ＳＳＤドライバー１１４が、レジストリから当該情報を取得していた。しかし、ＲＡＭディスクドライバー１１２は、当該情報を他の手段によって、ＳＳＤドライバー１１４に取得させるものとしても良い。例えば、ＲＡＭディスクドライバー１１２とＳＳＤドライバー１１４との間で予め規定されたＳＳＤ１３０Ａにおけるレジストリ以外の格納場所に、当該情報を格納するものとしても良い。
【００６３】
C8．変形例８：
上記第２実施例では、ＲＡＭディスクドライバー１１２がＲＡＭ１２０のＯＳ管理外領域に対して優先的にＲＡＭディスク１２２を設定していた。しかし、ＳＳＤドライバー１１４が、第２実施例で説明したＲＡＭディスクドライバー１１２の処理を実行することにより、ＲＡＭ１２０のＯＳ管理外領域にＲＡＭディスク１１２より優先させてＳＳＤ用キャッシュ領域１２４が設定されるものとしても良い。
【００６４】
C9．変形例９：
上記第２実施例では、コンピューター１００Ａは、外部記憶装置としてＳＳＤ１３０Ａを備え、そのデバイスドライバーとして、ＳＳＤドライバー１１４を有していた。しかし、コンピューター１００Ａは、外部記憶装置としてＳＳＤ以外の他の種類の記憶装置を備え、当該記憶装置のためのデバイスドライバーを備えるものとしても良い。この場合には、当該デバイスドライバーが、ＲＡＭ１２０のＯＳ管理外領域に当該記憶装置のためのキャッシュ領域を設定するものとしても良い。
【００６５】
C10．変形例１０：
上記第２実施例では、ＳＳＤドライバー１１４が、ＲＡＭディスクドライバー１１２によってレジストリに書き込まれた情報を読み込み、その情報に基づいて、ＲＡＭ１２０のＯＳ管理外領域を使用していた。しかし、ＳＳＤドライバー１１４に換えて、他のソフトウェアが、ＲＡＭディスクドライバー１１２が書き込んだレジストリの情報を読み込み、その情報に基づいて、ＲＡＭ１２０のＯＳ管理外領域を使用するものとしても良い。
【符号の説明】
【００６６】
１０…操作用画像
１１，１２…第１と第２のレベルバー
１１ｃ，１２ｃ…第１と第２のチェックボックス
１３…スライダー
１４…決定ボタン
１５…終了ボタン
１００，１００Ａ…コンピューター
１０１…内部バス
１１０…ＣＰＵ
１１２…ＲＡＭディスクドライバー
１１４…ＳＳＤドライバー
１２０…ＲＡＭ
１２２…ＲＡＭディスク
１２４…ＳＳＤ用キャッシュ領域
１３０…外部記憶装置（ＨＤＤ）
１３０Ａ…外部記憶装置（ＳＳＤ）
１４０…表示部
１５０…操作部
【図１】
2011164968.tif 000003
【図２】
2011164968.tif 000004
【図３】
2011164968.tif 000005
【図４】
2011164968.tif 000006
【図５】
2011164968.tif 000007
【図６】
2011164968.tif 000008
【図７】
2011164968.tif 000009
【図８】
2011164968.tif 000010
【図９】
2011164968.tif 000011
【図１０】
2011164968.tif 000012
【図１１】
2011164968.tif 000013