JP4886866B2 - 主記憶装置へのアクセスを高速化する方法および記憶装置システム - Google Patents

主記憶装置へのアクセスを高速化する方法および記憶装置システム Download PDF

Info

Publication number
JP4886866B2
JP4886866B2 JP2010027558A JP2010027558A JP4886866B2 JP 4886866 B2 JP4886866 B2 JP 4886866B2 JP 2010027558 A JP2010027558 A JP 2010027558A JP 2010027558 A JP2010027558 A JP 2010027558A JP 4886866 B2 JP4886866 B2 JP 4886866B2
Authority
JP
Japan
Prior art keywords
area
ram
ram disk
storage area
capacity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010027558A
Other languages
English (en)
Other versions
JP2011164968A (ja
JP2011164968A5 (ja
Inventor
真吾 福井
俊 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Buffalo Inc
Original Assignee
Buffalo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Buffalo Inc filed Critical Buffalo Inc
Priority to JP2010027558A priority Critical patent/JP4886866B2/ja
Priority to CN2011100348393A priority patent/CN102147769A/zh
Priority to US13/023,281 priority patent/US8516186B2/en
Publication of JP2011164968A publication Critical patent/JP2011164968A/ja
Publication of JP2011164968A5 publication Critical patent/JP2011164968A5/ja
Application granted granted Critical
Publication of JP4886866B2 publication Critical patent/JP4886866B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM

Description

この発明は、コンピューターの主記憶装置へのアクセスに関する。
コンピューターは、通常、オペレーティングシステム(Operating System;OS)によって、その主記憶装置における記憶領域が管理される。OSは、コンピューターで実行される各プログラムからの要求があったときに、主記憶装置の記憶領域における空き領域から、その要求に応じた容量の領域を割り当てる。そして、OSは、記憶領域の割り当てを受けたプログラムがその領域の使用を終了したときに、当該領域を開放する。この記憶領域の割り当てと開放の繰り返しにより、主記憶装置の記憶領域は、通常、各プログラムの割り当て領域ごとに細かく分断された状態となる。
ここで、主記憶装置の記憶領域の一部を仮想的な外部記憶装置として使用する「RAMディスク」と呼ばれる技術が知られている(下記特許文献1等)。主記憶装置において、このRAMディスクを設定する場合に、上記のように、主記憶装置の記憶領域が細かく分断されていると、RAMディスクとして割り当てられる記憶領域も細かく分断されてしまう。すると、ユーザーがRAMディスクにアクセスする際のアクセス速度が低下してしまうという問題があった。これまで、こうした問題に対して十分な工夫がなされてこなかったのが実情であった。
特開平11−85607号公報
本発明は、コンピューターに用いられる主記憶装置へのアクセスを高速化する技術を提供することを目的とする。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]
コンピューターの主記憶装置の記憶領域の中の前記コンピューターのオペレーティングシステムが管理していない管理外記憶領域を用いて、前記主記憶装置へのアクセスを高速化する方法であって、
(a)前記主記憶装置の一部の領域をRAMディスクとして利用する第1のソフトウェアが、前記RAMディスクの容量を指定するためのユーザーによる設定操作を受け付ける工程と、
(b)前記第1のソフトウェアが、前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するRAMディスクの記憶領域として設定する工程と、
を備え、
前記工程(b)は、前記第1のソフトウェアが、前記工程(a)においてユーザーによって指定された前記RAMディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記RAMディスクのための記憶領域を確保する工程を含む、方法。
この方法によれば、ユーザーが指定した容量を有するRAMディスクの記憶領域を、主記憶装置の管理外記憶領域における連続した領域に設定することができる。そのため、主記憶装置上のRAMディスクへのアクセス速度を向上させることができる。
[適用例2]
適用例1記載の方法であって、さらに、
(c)前記第1のソフトウェアが、前記管理外記憶領域の中で、前記RAMディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込む工程と、
(d)第2のソフトウェアが、前記工程(c)において前記レジストリに書き込まれた情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記コンピューターの外部記憶装置のためのキャッシュ領域を確保する工程と、
を備える、方法。
この方法によれば、管理外記憶領域における連続した領域をRAMディスクやソリッドステートドライブなどの外部記憶装置のためのキャッシュ領域として利用することができる。従って、RAMディスクへのアクセスを高速化することができるとともに、ユーザーが体感する外部記憶装置へのアクセス速度を向上させることができる。また、この方法では、レジストリを、第1のソフトウェアから第2のソフトウェアに管理外記憶領域の空き領域を通知するための手段として利用する。従って、オペレーティングシステムによって管理されていない管理外記憶領域を異なるプログラム同士が重複して使用してしまうことによるエラーの発生を回避することができる。
[適用例3]
コンピューターに用いられる記憶装置システムであって、
記憶領域の一部が前記コンピューターのオペレーティングシステムによって管理される主記憶装置と、
前記主記憶装置の記憶領域の中の前記オペレーティングシステムが管理していない管理外記憶領域の一部をRAMディスクとして利用する第1のソフトウェアと、
を備え、
前記第1のソフトウェアは
記RAMディスクの容量を指定するためのユーザーによる設定操作を受け付けるインターフェイスモジュールと、
前記コンピューターの起動時に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するRAMディスクの記憶領域として設定する記憶領域設定モジュールと、
を備え、
前記記憶領域設定モジュールは、前記インターフェイスモジュールが受け付けた、ユーザーの指定した前記RAMディスクの容量に応じて、前記オペレーティングシステムの管理する前記主記憶装置の記憶領域の範囲を変更して、前記RAMディスクのための記憶領域を確保する、記憶装置システム。
[適用例4]
適用例3記載の記憶装置システムであって、さらに、
前記主記憶装置の一部の記憶領域を前記コンピューターの外部記憶装置のためのキャッシュ領域として使用する第2のソフトウェアを備え、
前記第1のソフトウェアは、前記管理外記憶領域の中で、前記RAMディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込み、
前記第2のソフトウェアは、前記第1のソフトウェアが前記レジストリに書き込んだ情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記外部記憶装置のためのキャッシュ領域を確保する、記憶装置システム。
なお、本発明は、種々の形態で実現することが可能であり、例えば、主記憶装置へのアクセスを高速化する方法およびその方法を実行する記憶装置システム、それらの方法またはシステムの機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体等の形態で実現することができる。
第1実施例におけるコンピューターの構成を示す概略図。 RAMの記憶領域と、本実施例のコンピューターにおけるアドレス空間の割り当てを説明するための模式図。 RAMディスクドライバーがRAMディスクを設定するために実行する処理の処理手順を示すフローチャート。 RAMディスクの容量を設定するための操作用画像を示す模式図。 コンピューターの再起動後におけるアドレス空間を示す模式図。 第1と第2の比較例を説明するためのアドレス空間を示す模式図。 第2実施例におけるコンピューターの構成を示す概略図。 RAMディスクドライバーがRAMディスクを設定するために実行する処理の処理手順を示すフローチャート。 レジストリ設定の一例を示す説明図。 SSDドライバーがRAM上にSSD用キャッシュ領域を設定するために実行する処理の処理手順を示すフローチャート。 RAM上にRAMディスクとSSD用キャッシュ領域とが設定された後のアドレス空間を示す模式図。
A.第1実施例:
図1は本発明の一実施例としてのコンピューターの構成を示す概略図である。コンピューター100は、中央処理装置(Central Processing Unit;CPU)110と、主記憶装置としてのRAM(Random Access Memory)120と、外部記憶装置130と、表示部140と、操作部150とを備える。これらの各構成部110〜150は、内部バス101を介して互いに接続されている。
CPU110は、外部記憶装置130に格納されたOSやプログラム(図示せず)を読み出し、RAM120上に展開して実行する。図1は、CPU110がデバイスドライバーの一種であるRAMディスクドライバー112を実行している状態を示している。RAMディスクドライバー112の機能については後述する。なお、本実施例のコンピューター100では、OSとしてWindows XP(「WINDOWS XP」はマイクロソフト コーポレーションの登録商標)などの32ビットOSが導入されているものとする。
RAM120は、揮発性の記憶素子であり、その記憶領域の割り当てや開放はOSによって管理されている。なお、図1は、RAM120の記憶領域の一部にRAMディスク122が設定されている状態を示している。RAMディスク122については後述する。外部記憶装置130は、ハードディスクドライブ(Hard disk drive;HDD)によって構成された不揮発性の記憶装置であり、OSやプログラムの他、各プログラムで利用される設定データなどが格納されている。表示部140は、液晶ディスプレイなどのディスプレイ装置によって構成される。操作部150は、キーボードやマウスなどの入力デバイスによって構成され、ユーザーの操作を受け付ける。
図2は、RAM120における記憶領域(物理メモリ)と、コンピューター100におけるアドレス空間の割り当てを説明するための模式図である。本実施例では、RAM120は、5.0ギガバイト(GB)の記憶容量を有しているものとする。一般に、32ビットOSは、4.0Gまでのアドレス空間を設定することができる。ここで、4.0GBのアドレス空間中の末尾の領域には、I/Oデバイスやシステムの制御のために用いられる固定的な領域が確保される。本明細書では、この領域を「制御用領域」と呼ぶ。制御用領域としては、例えば、0.5GB分の領域が確保される。
そして、アドレス空間のうち、先頭アドレスから制御用領域までのアドレス空間が、物理メモリを管理するために割り当てられる。即ち、32ビットOSでは、RAM120が5.0GBの容量を有していても、制御用領域として0.5GB分のアドレス空間が確保される場合には、RAM120の全記憶領域のうち、先頭から最大3.5GB分の記憶領域しか管理することができない。本明細書では、OSによって管理される領域を「OS管理領域」と呼び、OSによる管理が及ばない領域を「OS管理外領域」と呼ぶ。RAM120上のOS管理領域には、OSやデバイスドライバーを含む各種のプログラム、それらのプログラムにおいて用いられる各種のデータが格納される。また、RAM120上のOS管理領域に格納された各種のデータには、OSやプログラムが直接的にアクセスすることが可能である。
ここで、本実施例のコンピューター100では、RAMディスクドライバー112が、制御用領域に後続するアドレス空間を設定し、RAM120のOS管理外領域に割り当てる。図2には、制御用領域に続けて4.0〜5.5GBの範囲のアドレス空間(破線で図示)が設定され、RAM120の1.5GB分のOS管理外領域に割り当てられている状態が示されている。これによって、RAMディスクドライバー112は、OS管理外領域へのアクセスを可能とし、その上で、OS管理外領域に仮想的な外部記憶装置であるRAMディスク122の記憶領域を設定する。
図3は、RAMディスクドライバー112が、RAMディスク122を設定するために実行する処理の処理手順を示すフローチャートである。ステップS10では、RAMディスクドライバー112は、コンピューター100の物理メモリの容量(RAM120の容量)と、RAM120におけるOS管理領域の範囲とを取得する。具体的には、RAMディスクドライバー112は、これらの情報を、BIOS(Basic Input Output System)などのデバイス制御のためのプログラムから取得するものとしても良い。ステップS20では、RAMディスクドライバー112は、ユーザーによるRAMディスク122の容量を指定するための設定操作を受け付ける。
図4は、RAMディスクドライバー112がコンピューター100の表示部140に表示させる操作用画像を示す模式図である。コンピューター100のユーザーはこの操作用画像10に対する画像上の操作によって、RAMディスク122の容量を指定することができる。操作用画像10は、第1と第2のレベルバー11,12と、第1と第2のチェックボックス11c,12cと、スライダー13と、決定ボタン14と、終了ボタン15とを有する。
ここで、図4(A)は、第1のレベルバー11に対する操作が実行されている状態を示しており、図4(B)は、第2のレベルバー12に対する操作が実行されている状態を示している。第1と第2のレベルバー11,12はそれぞれ、RAMディスク122の容量を示す帯グラフ状の画像オブジェクトである。本実施例では、RAMディスク122の容量としてユーザーは0GBから3.0GBまでの容量を指定できる。具体的には、ユーザーは、RAM120のOS管理外領域の容量に相当する範囲(図では0〜1.5GBの範囲)で、RAMディスク122の容量を指定するときは、第1のレベルバー11に対して操作を実行することができる。一方、OS管理外領域の容量を超えて、RAMディスク122の容量を指定するときは、第2のレベルバー12に対して操作を実行することができる。
なお、第1のレベルバー11に対してRAMディスク122の容量を指定する操作が実行されたときには、RAMディスクドライバー112は、後述する処理において、OS管理領域の範囲を変更することなく、RAMディスク122を設定することとなる。また、第2のレベルバー12に対してRAMディスク122の容量を指定する操作が実行されたときには、RAMディスクドライバー112は、指定された容量に応じて、RAM120におけるOS管理領域の範囲を縮小させる処理を実行することとなる。
操作用画像10における具体的な設定操作は以下の通りである。ユーザーは、第1と第2のレベルバー11,12のそれぞれに対応して設けられた第1と第2のチェックボックス11c,12cのいずれかにチェックマーク(図では黒丸で表示)を入れることによって操作対象を選択する。そして、ユーザーは、第1と第2のレベルバー11,12のそれぞれに対応して設けられたスライダー13のうち操作対象となる方(図では黒く塗りつぶされている方)を、レベルバー11,12上の所望の容量を示す位置まで移動させ、決定ボタン14を押下する。これによって、RAMディスク122の容量が指定される。
なお、この設定操作をキャンセルする場合には、ユーザーは、決定ボタン14を押下することなく、終了ボタン15を押下すれば良い。また、決定ボタン14を押下した後に、ユーザーに設定の確認を促す旨のメッセージが表示されるものとしても良く、このときに、ユーザーは、設定操作を承認するか、無効とするかを選択できるものとしても良い。
ステップS30では、RAMディスクドライバー112は、コンピューター100にRAMディスク122が設定されるための処理を実行する。具体的には、RAMディスクドライバー112は、コンピューター100の再起動後に、RAM120のOS管理外領域に対してアドレス空間が割り当てられ、RAMディスクドライバー112がCPU110にロードされるように、起動ファイルを編集する。
ここで、ステップS20において、ユーザーがRAMディスク122の容量として、OS管理領域の範囲を越える容量を指定したときには、RAMディスクドライバー112は、OS管理領域の範囲を縮小させるために、以下の処理を実行する。即ち、RAMディスクドライバー112は、RAM120の容量とユーザーが指定したRAMディスク122の容量との差を取り、縮小後のOS管理領域の範囲を算出する。そして、起動ファイルに含まれるOS用のBoot.iniファイルに、OSが使用できるメモリの最大容量を設定するための/MAXMEM=nnスイッチを配置し、縮小後のOS管理領域の範囲を指定する。ここで、/MAXMEM=nnスイッチは、OS管理領域として設定する物理メモリの容量をメガバイト(MB)単位で指定することができる。具体的には、例えば、OS管理領域の範囲を0〜2.0GBの範囲とする場合には、Boot.iniファイルに、「/MAXMEM=2048」と記述する。
ステップS40では、RAMディスクドライバー112は、表示部140に、コンピューター100の再起動を促す旨のメッセージを表示させ、ユーザーにコンピューター100の再起動を実行させる。コンピューター100の再起動により、ステップS30において編集された起動ファイルがCPU110によって読み込まれる。これによって、RAM120のOS管理外領域にアドレス空間が割り当てられる。また、RAMディスクドライバー112が起動され、RAM120のOS管理外領域にRAMディスク122の記憶領域が設定される。
図5(A)〜(C)はそれぞれ、ステップS40におけるコンピューター100の再起動後のアドレス空間を示す模式図である。なお、図5(A)〜(C)では、便宜上、制御用領域が破線で図示されている。
図5(A)は、ステップS20においてユーザーがRAMディスク122の容量としてOS管理外領域の容量より小さい容量を指定したときのアドレス空間を示している。RAMディスクドライバー112は、RAM120においてOS管理領域として割り当てられるメモリ範囲(図では0〜3.5GBの範囲)を変更することなく、ユーザーが指定した容量で、アドレス空間の末尾からの連続領域にRAMディスク122の記憶領域を確保する。この場合には、RAM120のOS管理外領域において未使用の記憶領域が生じる。
図5(B)は、ステップS20においてユーザーがRAMディスク122の容量として、OS管理外領域の容量と同じ容量を指定したときのアドレス空間を示している。この場合には、RAM120のOS管理外領域に割り当てられるメモリ範囲の全範囲がRAMディスク122の記憶領域として確保される。図5(C)は、ステップS20においてユーザーがRAMディスク122の容量として、RAM120におけるOS管理外領域の容量より大きい容量を指定した場合のアドレス空間を示している。この場合には、RAMディスクドライバー112は、RAM120におけるOS管理領域の範囲を縮小させ、制御用領域の両側の2つの連続領域をRAM120のOS管理外領域に割り当てる。そして、RAM120のOS管理外領域に、ユーザーが指定した容量の分だけRAMディスク122のための記憶領域を確保する。なお、図5(C)では、RAM120におけるOS管理領域の範囲が0〜2.0GBの範囲まで縮小され、拡張されたRAM120のOS管理外領域の全範囲にRAMディスク122が設定された状態が図示されている。
図6(A),(B)はそれぞれ、第1と第2の比較例を説明するためのアドレス空間を示す模式図である。図6(A)は、第1の比較例として、RAMディスク122がRAM120のOS管理領域内のみに設定される場合のアドレス空間を示している。ここで、RAM120上のOS管理領域内における記憶領域の割り当ては、OSが動的に実行する。即ち、OSは、各プログラムからの要求に応じて、必要な記憶領域の確保と開放とを繰り返す。そのため、この場合には、RAMディスク122の記憶領域は分断された状態で設定されてしまう。このように、RAMディスク122の記憶領域が分断されていると、RAMディスク122に対するアクセス速度は低下してしまう。また、第1の比較例の場合には、RAM120におけるOS管理外領域が未使用の記憶領域となってしまう。
図6(B)は、第2の比較例として、RAMディスク122の記憶領域がRAM120のOS管理外領域とOS管理領域とに割り当てられる場合のアドレス空間を示している。第2の比較例では、ユーザーがRAM120におけるOS管理外領域の容量以上の容量をRAMディスク122の容量として指定した場合であっても、RAM120におけるOS管理領域の範囲が変更されない。この場合には、RAMディスク122のための記憶領域は、RAM120上においてOS管理外領域とOS管理領域の2つの領域に渡って割り当てられる。ただし、OS管理外領域におけるRAMディスク122の記憶領域は、連続した記憶領域として確保されるが、OS管理領域に含まれるRAMディスク122の記憶領域は分断された不連続な記憶領域として割り当てられてしまう。従って、この第2の比較例の場合にも、RAMディスク122に対するアクセス速度が低下する。
このように、本実施例のコンピューター100であれば、RAMディスクドライバー112が、ユーザーが指定したRAMディスク122の容量に応じて、RAM120におけるOS管理領域の範囲を変更する。そして、RAMディスク122の記憶領域として、OS管理外領域における連続した記憶領域を確保する。従って、RAMディスク122へのアクセス速度を向上させることができる。また、RAM120のOS管理外領域を有効利用することが可能である。
B.第2実施例:
図7は、本発明の第2実施例としてのコンピューターの構成を示す概略図である。図7は、CPU110においてSSDドライバー114が実行されている点と、RAM120にSSD用キャッシュ領域124が追加されている点と、外部記憶装置130Aがソリッドステートドライブ(Solid State Drive;SSD)によって構成されている点以外は、図1とほぼ同じである。
SSDドライバー114は外部記憶装置130A(以後、「SSD130A」とも呼ぶ)を制御するためのデバイスドライバーである。ここで、SSD130Aは、複数のフラッシュメモリが並列に接続された記憶装置である。フラッシュメモリの記憶領域はブロック単位で構成されており、フラッシュメモリへのデータの書き込み・消去もブロック単位で実行される。また、フラッシュメモリでは、データの更新は、既に書き込まれている旧データを一旦消去した上で、更新データを新たに書き込むことにより実行される。即ち、SSDでは、微小なサイズのデータの更新処理の場合であっても、ブロック単位でのデータの消去・書き込みが実行されるため、データの更新処理においては、データ量に対する更新処理時間の割合が大きくなる傾向にある。従って、ユーザーは、SSD130Aへのアクセス速度が低下していると感得してしまう場合がある。
そこで、第2実施例のコンピューター100Aでは、SSDドライバー114が、RAM120のOS管理外領域にSSD用キャッシュ領域124を設けることにより、SSD130Aに対するアクセスを効率的に実行する。これによって、ユーザーはあたかも、SSD130Aに対するアクセス速度が向上しているように感じることができる。具体的な、SSDドライバー114によるSSD130Aに対するアクセス処理については後述する。
ところで、コンピューター100Aでは、第1実施例のコンピューター100と同様に、RAMディスクドライバー112が、RAM120のOS管理外領域にRAMディスク122を設定する。即ち、コンピューター100Aでは、RAM120のOS管理外領域に、2つの異なるプログラムによって、2つの記憶領域が設定されることとなる。しかし、OS管理外領域にはOSの管理が及ばないため、2つのプログラムが別個に、互いに重複した記憶領域を使用してしまう可能性がある。そこで、第2実施例のコンピューター100Aでは、以下の処理手順により、RAM120のOS管理外領域においてRAMディスクドライバー112とSSDドライバー114とが別個に記憶領域を重複することなく確保できるようにする。
図8は、RAMディスクドライバー112が、RAM120にRAMディスク122を設定するために実行する処理の処理手順を示すフローチャートである。図8は、ステップS35が追加されている点以外は、図3とほぼ同じである。ステップS10〜ステップS30では、第1実施例で説明したのと同様な処理が実行される。即ち、RAMディスクドライバー112は、ユーザーからのRAMディスク122の容量を指定する設定操作を受け付け、コンピューター100Aの再起動後に、指定された容量のRAMディスク122が、RAM120のOS管理外領域に設定されるようにする。
ステップS35では、RAMディスクドライバー112は、RAMディスク122として使用しないRAM120上のOS管理外領域の空き領域に関する情報をレジストリに書き込む。ここで、「レジストリ」とは、Windows系OSにおいて、システムやアプリケーションソフトの設定データを登録するためのデータベースを意味する。コンピューター100Aでは、レジストリはSSD130Aに格納されている。また、「RAM120上のOS管理外領域の空き領域に関する情報」としては、RAMディスク122の記憶領域として割り当てられていないOS管理外領域の範囲を示すアドレス情報や、当該範囲の容量などがある。
図9は、RAMディスクドライバー112がレジストリに格納する設定内容の一例を示す説明図である。RAMディスクドライバー112は、レジストリに名称を「EnableOver4G」として「1」または「0」の数値を書き込む。ここで、「REG_DWORD」は数値型のデータであることを意味する。RAMディスクドライバー112は、RAM120のOS管理外領域に空きがなく、OS管理外領域が使用できない状態であるときには、「EnableOver4G」に「0」を書き込む。また、RAMディスクドライバー112は、RAM120のOS管理外領域に空きがあり、OS管理外領域が使用できる状態である場合には、「EnableOver4G」に「1」を書き込む。
RAMディスクドライバー112は、名称を「StartAddr」として、OS管理外領域における空き領域の先頭アドレスをレジストリに格納する。即ち、「StartAddr」には、SSD用キャッシュ領域124として使用可能な領域の先頭物理アドレスが格納される。さらに、RAMディスクドライバー112は、名称を「CacheSize」として、RAM120上のOS管理外領域における空き領域の容量をレジストリに格納する。即ち、「CacheSize」には、RAM120のOS管理外領域においてSSD用キャッシュ領域124として使用可能な容量が格納される。
ステップS40では、RAMディスクドライバー112が、コンピューター100Aの再起動を促すメッセージを表示部140に表示させ、ユーザーにコンピューター100Aを再起動させる。なお、再起動後のコンピューター100Aでは、RAMディスクドライバー112がロードされ、起動ファイルにおける設定に従って、RAM120のOS管理外領域にRAMディスク122が設定される。
図10は、SSDドライバー114がRAM120上にSSD用キャッシュ領域124を設定するために実行する処理の処理手順を示すフローチャートである。この処理は、図8のステップS40において再起動されたコンピューター100Aにおいて実行される処理である。なお、SSDドライバー114は、この再起動の際に、CPU110によって自動的にロードされるように予め起動ファイルに設定されている。この起動ファイルの設定は、再起動前のコンピューター100Aにおいて、SSDドライバー114自身によってなされるものとしても良い。
ステップS110では、SSDドライバー114は、RAMディスクドライバー112が図8のステップS35においてレジストリに書き込んだ情報を読み出す。ステップS120では、SSDドライバー114は、レジストリから読み込んだ情報と、設定すべきSSD用キャッシュ領域124の容量とに基づいて、RAM120上に、SSD用キャッシュ領域124のための記憶領域を確保する。なお、「SSD用キャッシュ領域124の容量」は、再起動前のコンピューター100Aにおいて、予めユーザーが指定した容量であるものとしても良いし、予めSSDドライバー114が規定値として有している容量であるものとしても良い。
ここで、ステップS20において、SSDドライバー114が図9で説明したレジストリの設定内容を読み込んだ場合のステップS30における処理を説明する。レジストリに格納された「EnableOver4G」の値が「0」のときには、RAM120のOS管理外領域にSSD用キャッシュ領域124を設定できない。そのため、SSDドライバー114は、OSに依頼してRAM120のOS管理領域内にSSD用キャッシュ領域124のための記憶領域を確保する。
一方、「EnableOver4G」の値が「1」のときには、SSDドライバー114は、RAM120のOS管理外領域から優先的にSSD用キャッシュ領域124の記憶領域を確保する。即ち、SSDドライバー114は、レジストリから「StartAddr」に格納されたアドレスを読み出し、当該アドレスを先頭アドレスとして、SSD用キャッシュ領域124の容量に応じた連続する記憶領域を確保する。そして、設定すべきSSD用キャッシュ領域124の容量がレジストリの「CacheSize」に格納されている容量の値より大きいときには、SSDドライバー114は、RAM120のOS管理外領域における空き領域をSSD用キャッシュ領域124の記憶領域として割り当てた上で、不足する容量を、OSに依頼して、RAM120のOS管理領域から割り当てる。
図11(A)〜(C)はそれぞれ、RAM120上にRAMディスク122とSSD用キャッシュ領域124とが設定された後のアドレス空間を示す模式図である。図11(A)は、RAM120のOS管理外領域に、RAMディスク122の記憶領域とSSD用キャッシュ領域124とが割り当てられた状態を示している。RAMディスク122の記憶領域は、第1実施例でも説明したように、RAM120のOS管理外領域の末尾からユーザーが指定した容量の範囲の連続領域が割り当てられる。そして、SSD用キャッシュ領域124は、レジストリに書き込まれた情報に基づき、OS管理外領域において、RAMディスク122が使用していない記憶領域に設定される。
なお、図11(A)では、SSD用キャッシュ領域124は、RAM120のOS管理外領域においてRAMディスク122が使用していない領域を全範囲として設定されている。しかし、RAMディスク122の容量とSSD用キャッシュ領域124の容量との和がRAM120におけるOS管理外領域の容量より小さい場合には、RAM120のOS管理外領域には、未使用の記憶領域が形成される。
図11(B)は、SSD用キャッシュ領域124の容量がRAM120のOS管理外領域だけでは賄えなかった場合のアドレス空間を示している。この場合には、前記したとおり、SSDドライバー114は、RAM120のOS管理外領域では賄えない容量を、OSに依頼して、RAM120のOS管理領域において確保する。なお、RAM120のOS管理領域からは、SSD130Aにおけるデータ管理の単位であるブロックの容量(例えば64kB)又はその1/2のサイズに相当する固定長の容量を一単位として、SSD用キャッシュ領域124の記憶領域に割り当てられることが好ましい。
図11(C)は、RAM120においてOS管理領域に割り当てられる範囲が0〜2.0GBの範囲まで縮小されるとともに、OS管理外領域にRAMディスク122とSSD用キャッシュ領域124とが設定された状態のアドレス空間を示している。RAMディスクドライバー112は、SSD用キャッシュ領域124の容量が既知である場合には、RAMディスク122の容量とSSD用キャッシュ領域124の容量との和に応じて、RAM120におけるOS管理領域のメモリ範囲を縮小させるものとしても良い。あるいは、RAMディスクドライバー112は、SSD用キャッシュ領域124の少なくとも一部がRAM120のOS管理外領域に設定できるように、RAM120におけるOS管理領域のメモリ範囲を余分に縮小するものとしても良い。
このように、ステップS120(図10)において、SSD用キャッシュ領域124がRAM120上に設定されると、SSDドライバー114は、SSD130Aへのデータの書込要求の有無の監視を開始する(ステップS130)。SSDドライバー114は、データの書込要求を検出すると、SSD用キャッシュ領域124に当該データを格納する(ステップS140)。ここで、SSD130Aに直接データを書き込む速度より、RAM120のSSD用キャッシュ領域124にデータを書き込む速度の方が速いため、ユーザーはSSD130Aへのデータの書き込み速度が向上しているように感じる。
ステップS150では、SSDドライバー114は、規定のデータ量がSSD用キャッシュ領域124に格納されているか否かを判定する。SSD用キャッシュ領域124に規定量のデータが格納されている場合には、SSDドライバー114は、SSD用キャッシュ領域124に格納されているデータをSSD130Aに転送する(ステップS160)。SSD用キャッシュ領域124に規定量のデータが格納されていなかった場合には、SSDドライバー114は、SSD130Aへのデータの書込要求の有無の監視を再開する(ステップS130)。また、ステップS160において、データの転送が完了した場合にも、SSDドライバー114は、SSD130Aへのデータの書込要求の有無の監視を再開する。
ステップS130〜S160の処理によって、SSD用キャッシュ領域124は、SSD130Aのディスクキャッシュとして機能する。即ち、SSD用キャッシュ領域124によって、ユーザーが体感するSSD130Aへのデータ転送速度が向上する。また、SSD130Aへのアクセス回数が低減され、SSD130Aに対するアクセス効率が向上する。
このように、第2実施例のコンピューター100Aであれば、RAM120のOS管理外領域に、RAMディスク122とSSD用キャッシュ領域124とを、互いの領域が重複しない連続領域として設けることが可能である。従って、RAMディスク122とSSD用キャッシュ領域124とに対するアクセス速度が向上する。
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
C1.変形例1:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。また、RAMディスクドライバー112の機能の一部を他のプログラムやハードウェアが実行するようにすることもできる。
C2.変形例2:
上記実施例において、コンピューター100,100Aには、32ビットOSが導入されていた。しかし、OSとしては、64ビットOSが導入されるものとしても良い。ここで、64ビットOSでは、一般に、RAMの物理メモリのうち、8GB〜128GBまでの範囲がOS管理領域として設定されるが、この場合には、物理メモリのうち、その設定範囲の外側の領域がOS管理外領域となる。
C3.変形例3:
上記実施例では、RAMディスクドライバー112は、ユーザーが指定したRAMディスク122の容量が、RAM120におけるOS管理外領域の容量より大きいときに、RAM120におけるOS管理領域のメモリ範囲を縮小させていた。しかし、RAMディスクドライバー112は、例えば、ユーザーが指定したRAMディスク122の容量が、RAM120におけるOS管理外領域の容量より小さいときに、RAM120上のOS管理外領域における未使用領域が低減されるように、OS管理領域の範囲を増大させるものとしても良い。
C4.変形例4:
上記実施例では、RAMディスクドライバー112は、OS管理外領域の末尾からの連続領域をRAMディスク122の記憶領域として設定していた。しかし、RAMディスクドライバー112は、OS管理外領域の中の任意の位置の連続領域を、RAMディスク122の記憶領域として設定するものとしても良い。
C5.変形例5:
上記実施例では、RAMディスクドライバー112は、boot.iniファイルに/MAXMEM=nnスイッチを設けることにより、RAM120におけるOS管理領域の範囲を変更していた。しかし、RAMディスクドライバー112は、他の手段によって、OS管理領域の範囲を変更するものとしても良い。例えば、OSがWindows XPである場合には、boot.iniファイルに/BURNMEMORY=nnスイッチを設けて、OSが使用できないメモリ容量を指定するものとしても良い。また、OSがWindows VistaやWindows 7である場合には、RAMディスクドライバー112は、ブート構成データを編集して、RAM120におけるOS管理領域の範囲を変更するものとしても良い。なお、「WINDOWS VISTA」はマイクロソフト コーポレーションの登録商標である。
C6.変形例6:
上記実施例では、RAMディスクドライバー112は、操作用画像10を介して、ユーザーからのRAMディスク122の容量の指定を受け付けていた。しかし、RAMディスクドライバー112は、操作用画像10を介して、ユーザーからRAM120におけるOS管理領域の範囲の指定を受け付けることができるものとしても良い。
C7.変形例7:
上記第2実施例では、RAMディスクドライバー112が、RAMディスク122として使用しないOS管理外領域の空き領域に関する情報をレジストリに格納し、SSDドライバー114が、レジストリから当該情報を取得していた。しかし、RAMディスクドライバー112は、当該情報を他の手段によって、SSDドライバー114に取得させるものとしても良い。例えば、RAMディスクドライバー112とSSDドライバー114との間で予め規定されたSSD130Aにおけるレジストリ以外の格納場所に、当該情報を格納するものとしても良い。
C8.変形例8:
上記第2実施例では、RAMディスクドライバー112がRAM120のOS管理外領域に対して優先的にRAMディスク122を設定していた。しかし、SSDドライバー114が、第2実施例で説明したRAMディスクドライバー112の処理を実行することにより、RAM120のOS管理外領域にRAMディスク112より優先させてSSD用キャッシュ領域124が設定されるものとしても良い。
C9.変形例9:
上記第2実施例では、コンピューター100Aは、外部記憶装置としてSSD130Aを備え、そのデバイスドライバーとして、SSDドライバー114を有していた。しかし、コンピューター100Aは、外部記憶装置としてSSD以外の他の種類の記憶装置を備え、当該記憶装置のためのデバイスドライバーを備えるものとしても良い。この場合には、当該デバイスドライバーが、RAM120のOS管理外領域に当該記憶装置のためのキャッシュ領域を設定するものとしても良い。
C10.変形例10:
上記第2実施例では、SSDドライバー114が、RAMディスクドライバー112によってレジストリに書き込まれた情報を読み込み、その情報に基づいて、RAM120のOS管理外領域を使用していた。しかし、SSDドライバー114に換えて、他のソフトウェアが、RAMディスクドライバー112が書き込んだレジストリの情報を読み込み、その情報に基づいて、RAM120のOS管理外領域を使用するものとしても良い。
10…操作用画像
11,12…第1と第2のレベルバー
11c,12c…第1と第2のチェックボックス
13…スライダー
14…決定ボタン
15…終了ボタン
100,100A…コンピューター
101…内部バス
110…CPU
112…RAMディスクドライバー
114…SSDドライバー
120…RAM
122…RAMディスク
124…SSD用キャッシュ領域
130…外部記憶装置(HDD)
130A…外部記憶装置(SSD)
140…表示部
150…操作部

Claims (4)

  1. コンピューターの主記憶装置の記憶領域の中の前記コンピューターのオペレーティングシステムが管理していない管理外記憶領域を用いて、前記主記憶装置へのアクセスを高速化する方法であって、
    (a)前記管理外記憶領域をRAMディスクとして利用する第1のソフトウェアが、前記RAMディスクの容量を指定するためのユーザーによる設定操作を受け付ける工程と、
    (b)前記コンピューターが再起動されたときに、前記工程(a)においてユーザーによって指定された前記RAMディスクの容量に応じて、前記主記憶装置における前記管理外記憶領域の範囲が変更されるように、前記第1のソフトウェアが設定する工程と、
    )前記第1のソフトウェアが、前記コンピューターの起動に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するRAMディスクの記憶領域として設定する工程と、
    を備える、方法。
  2. 請求項1記載の方法であって、さらに、
    )前記第1のソフトウェアが、前記管理外記憶領域の中で、前記RAMディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込む工程と、
    )第2のソフトウェアが、前記工程(c)において前記レジストリに書き込まれた情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記コンピューターの外部記憶装置のためのキャッシュ領域を確保する工程と、
    を備える、方法。
  3. コンピューターに用いられる記憶装置システムであって、
    記憶領域の一部が前記コンピューターのオペレーティングシステムによって管理される主記憶装置と、
    前記主記憶装置の記憶領域の中の前記オペレーティングシステムが管理していない管理外記憶領域の一部をRAMディスクとして利用する第1のソフトウェアと、
    を備え、
    前記第1のソフトウェアは、
    前記RAMディスクの容量を指定するためのユーザーによる設定操作を受け付けるインターフェイスモジュールと、
    前記コンピューターが再起動されたときに、前記インターフェイスモジュールが受け付けた前記RAMディスクの容量に応じて、前記主記憶装置における前記管理外記憶領域の範囲が変更されるように設定し、前記コンピューターの起動に、前記管理外記憶領域における連続した領域を、前記設定操作によって指定された容量を有するRAMディスクの記憶領域として設定する記憶領域設定モジュールと、
    を備える、記憶装置システム。
  4. 請求項3記載の記憶装置システムであって、さらに、
    前記主記憶装置の一部の記憶領域を前記コンピューターの外部記憶装置のためのキャッシュ領域として使用する第2のソフトウェアを備え、
    前記第1のソフトウェアは、前記管理外記憶領域の中で、前記RAMディスクの記憶領域として使用していない未使用の記憶領域の範囲をレジストリに書き込み、
    前記第2のソフトウェアは、前記第1のソフトウェアが前記レジストリに書き込んだ情報に基づいて、前記未使用の記憶領域の範囲から優先的に前記外部記憶装置のためのキャッシュ領域を確保する、記憶装置システム。
JP2010027558A 2010-02-10 2010-02-10 主記憶装置へのアクセスを高速化する方法および記憶装置システム Active JP4886866B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010027558A JP4886866B2 (ja) 2010-02-10 2010-02-10 主記憶装置へのアクセスを高速化する方法および記憶装置システム
CN2011100348393A CN102147769A (zh) 2010-02-10 2011-01-31 提高对主存储装置的访问速度的方法以及存储装置系统
US13/023,281 US8516186B2 (en) 2010-02-10 2011-02-08 Method of accelerating access to primary storage and storage system adopting the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010027558A JP4886866B2 (ja) 2010-02-10 2010-02-10 主記憶装置へのアクセスを高速化する方法および記憶装置システム

Publications (3)

Publication Number Publication Date
JP2011164968A JP2011164968A (ja) 2011-08-25
JP2011164968A5 JP2011164968A5 (ja) 2011-10-06
JP4886866B2 true JP4886866B2 (ja) 2012-02-29

Family

ID=44354572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010027558A Active JP4886866B2 (ja) 2010-02-10 2010-02-10 主記憶装置へのアクセスを高速化する方法および記憶装置システム

Country Status (3)

Country Link
US (1) US8516186B2 (ja)
JP (1) JP4886866B2 (ja)
CN (1) CN102147769A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442858B2 (en) * 2012-07-13 2016-09-13 Ianywhere Solutions, Inc. Solid state drives as a persistent cache for database systems
JP2014206884A (ja) * 2013-04-15 2014-10-30 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
JP5890824B2 (ja) * 2013-11-28 2016-03-22 京セラドキュメントソリューションズ株式会社 電子機器
US20160283385A1 (en) * 2015-03-27 2016-09-29 James A. Boyd Fail-safe write back caching mode device driver for non volatile storage device
WO2017056310A1 (ja) * 2015-10-02 2017-04-06 株式会社日立製作所 計算機および計算機の制御方法
US20170161203A1 (en) * 2015-12-03 2017-06-08 Intel Corporation Increased memory capacity
US10579465B1 (en) 2018-03-29 2020-03-03 Keep Security LLC Systems and methods for self correcting secure computer systems
US11175981B1 (en) 2018-03-29 2021-11-16 Keep Security LLC Systems and methods for dynamic self correcting secure computer systems
US11669389B1 (en) 2018-03-29 2023-06-06 Keep Security, Llc Systems and methods for secure deletion of information on self correcting secure computer systems
US11231988B1 (en) 2018-03-29 2022-01-25 Keep Security, Llc Systems and methods for secure deletion of information on self correcting secure computer systems
US11263074B1 (en) 2018-03-29 2022-03-01 Keep Security, Llc Systems and methods for self correcting secure computer systems
CN112783418B (zh) * 2019-11-01 2023-03-31 华为技术有限公司 一种存储应用程序数据的方法及移动终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185607A (ja) 1997-09-08 1999-03-30 Nec Corp Ramディスク使用方法および該方法を記録した記録媒体
US6032240A (en) * 1997-11-12 2000-02-29 Intergraph Corporation Bypassing a nonpaged pool controller when accessing a remainder portion of a random access memory
CN100451999C (zh) * 2005-12-16 2009-01-14 祥群科技股份有限公司 一种储存装置及其储存数据的保护方法
US8433847B2 (en) * 2008-04-11 2013-04-30 Lg Electronics Inc. Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive

Also Published As

Publication number Publication date
US8516186B2 (en) 2013-08-20
CN102147769A (zh) 2011-08-10
US20110197019A1 (en) 2011-08-11
JP2011164968A (ja) 2011-08-25

Similar Documents

Publication Publication Date Title
JP4886866B2 (ja) 主記憶装置へのアクセスを高速化する方法および記憶装置システム
JP5021190B2 (ja) 高速再起動を伴うメモリダンプ生成
US8751765B2 (en) Computer system, storage system and method for saving storage area by integrating same data
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
JP2008015768A (ja) 記憶システム並びにこれを用いたデータの管理方法
JP2008016030A (ja) システム作動制御装置及び方法
JP2011175632A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2006313531A (ja) ファイル管理システム
JP6219560B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4714291B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP4597032B2 (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
JP4572205B2 (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
JP6221702B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5350077B2 (ja) 情報処理装置及びこれを備えた画像形成装置
JP5161989B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
WO2021015175A1 (ja) ストレージ管理装置、ストレージ管理方法およびプログラム
JP2013109404A (ja) 情報処理装置
JP2010257250A (ja) 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム
JP5685070B2 (ja) 情報処理装置、およびプログラム
JP2008276330A (ja) メモリ制御装置及び方法
JP2005222531A (ja) データ記録装置及びデータ記録方法
JP2006126987A (ja) 画像処理装置
JP2005227983A (ja) 情報記憶装置
JP4888713B2 (ja) コンピュータシステムの起動方法、情報処理装置及びプログラム
JP2010079736A (ja) 情報処理装置、画像形成装置、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110720

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110720

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111004

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: 20111115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4886866

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250