(57)【要約】【課題】コンピュータの記憶装置へのアクセスを高速化する。【解決手段】（ａ）コンピュータ１０の起動時に、前記コンピュータが有する物理メモリ１１０の一部を、前記外部記憶装置用のキャッシュメモリ１１２として、前記コンピュータのオペレーティングシステムが管理する領域１１１外に、連続した領域として設定する工程と、（ｂ）前記ドライバが前記外部記憶装置１２０へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込む工程と、（ｃ）前記ドライバが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、を備える。【選択図】図９
2011028537.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置の管理用ソフトウエアを用いて前記外部記憶装置へのアクセスを高速化する方法であって、
（ａ）コンピュータの起動時に、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定する工程と、
（ｂ）前記管理用ソフトウエアが前記外部記憶装置へのデータの書込要求を検知した場合に、該データを前記キャッシュメモリに書込む工程と、
（ｃ）前記管理用ソフトウエアが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、
を備える、外部記憶装置へのアクセスの高速化方法。
【請求項２】
請求項１に記載の外部記憶装置へのアクセスの高速化方法において、
前記工程（ａ）は、
前記物理メモリの容量が、前記オペレーティングシステムが管理可能な最大容量よりも大きい場合には、前記管理可能な最大容量を超える物理メモリ領域に優先的に前記キャッシュメモリを設定する工程を含む、外部記憶装置へのアクセスの高速化方法。
【請求項３】
請求項２に記載の外部記憶装置へのアクセスの高速化方法において、
前記工程（ａ）は、
前記物理メモリの容量から前記オペレーティングシステムが管理可能な最大容量を引いた差分が、前記キャッシュメモリの容量よりも小さい場合には、前記オペレーティングシステムが管理する物理メモリの容量を前記差分だけ減ずる工程を含む、外部記憶装置へのアクセスの高速化方法。
【請求項４】
外部記憶装置システムであって、
外部記憶装置と、
前記外部記憶装置の管理用ソフトウエアと、
を備え、
前記管理用ソフトウエアは、
前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定し、
前記外部記憶装置へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込み、
前記キャッシュメモリのデータを前記外部記憶装置に送って格納する、
外部記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの外部記憶装置へのアクセスに関するものである。
【背景技術】
【０００２】
コンピュータの外部記憶装置として、従来ハードディスク装置が用いられているが、近年、エス・エス・ディー（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、以下「ＳＳＤ」と呼ぶ。）が用いられ始めている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】日経パソコン  ２００９年７月１３日号Ｐ３８−５８
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＳＤでは、多数の小ファイルを書き換えようとすると、処理時間がかかるというプチフリーズ問題が発生する場合がある。これは、ＳＳＤが、記憶素子としてフラッシュメモリを用いていることに起因している。すなわち、フラッシュメモリでは、ブロックの一部のみを書き換えることができない。ＳＳＤが、データを書き換える場合、書き換えられるページを含むブロックの全てのページのデータを消去し、その後、そのブロックに対し全ページ分の書込を行なうので、このときに、プチフリーズが発生し得る。このため、従来から、コンピュータのメインメモリにＳＳＤ用のキャッシュメモリを設ける技術が採用されている。しかし、従来の技術では、メインメモリ用のキャッシュメモリの領域がコンピュータのＯＳによって管理されているため、このＯＳの管理に伴ってＳＳＤへのアクセス速度が低下する可能性がある。このため、従来からＯＳによるキャッシュメモリの管理に伴うアクセス速度の低下を防止して、ＳＳＤへのアクセスの体感速度を高速化したいという要望があった。また、ＳＳＤ以外の他の記憶装置でも同様に、アクセスの体感速度を高速化したいという要望があった。例えば、ハードディスク装置では、１つのファイルを分断して書き込む場合には、ヘッドの移動などにより書込時間がかかるという問題がった。
【０００５】
本発明は、上記課題の少なくとも一部を解決し、コンピュータの記憶装置へのアクセスの体感速度を高速化することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］
外部記憶装置の管理用ソフトウエアを用いて前記外部記憶装置へのアクセスを高速化する方法であって、（ａ）コンピュータの起動時に、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定する工程と、（ｂ）前記管理用ソフトウエアが前記外部記憶装置へのデータの書込要求を検知した場合に、該データを前記キャッシュメモリに書込む工程と、（ｃ）前記管理用ソフトウエアが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、を備える、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、外部記憶装置用のキャッシュメモリが、コンピュータのオペレーティングシステムの管理外の連続した物理メモリ領域として設定されるので、オペレーティングシステムの管理に伴うアクセス速度の低下を防止して、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
【０００８】
［適用例２］
適用例１に記載の外部記憶装置へのアクセスの高速化方法において、前記工程（ａ）は、前記物理メモリの容量が、前記オペレーティングシステムが管理可能な最大容量よりも大きい場合には、前記管理可能な最大容量を超える物理メモリ領域に優先的に前記キャッシュメモリを設定する工程を含む、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、オペレーティングシステムが管理する物理メモリ領域の低下を最小限に抑えることができ、オペレーティングシステムの速度低下を防止できるので、この結果として、外部記憶装置へのアクセスの体感速度を高めることが可能である。
【０００９】
［適用例３］
適用例２に記載の外部記憶装置へのアクセスの高速化方法において、前記工程（ａ）は、前記物理メモリの容量から前記オペレーティングシステムが管理可能な最大容量を引いた差分が、前記キャッシュメモリの容量よりも小さい場合には、前記オペレーティングシステムが管理する物理メモリの容量を前記差分だけ減ずる工程を含む、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、キャッシュメモリを優先的に取得するので、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
【００１０】
［適用例４］
外部記憶装置システムであって、外部記憶装置と、前記外部記憶装置の管理用ソフトウエアと、を備え、前記管理用ソフトウエアは、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定し、前記外部記憶装置へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込み、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する、外部記憶装置システム。
この適用例によれば、外部記憶装置用のキャッシュメモリが、コンピュータのオペレーティングシステムの管理外の連続した物理メモリ領域として設定されるので、オペレーティングシステムの管理に伴うアクセス速度の低下を防止して、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
【００１１】
本発明は、種々の形態で実現することが可能であり、例えば、外部記憶装置へのアクセスを高速化する方法の他、外部記憶システム、外部記憶装置へのアクセスを高速化するためのプログラム等、様々な形態で実現することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施例にかかるコンピュータの構成を示す説明図である。
【図２】ＲＡＭのメモリマップを示す説明図である。
【図３】ＳＳＤ１２０の構成を示す説明図である。
【図４】ＳＳＤへの書込を模式的に示す説明図である。
【図５】比較例としてＯＳが管理するメモリ領域内にＳＳＤ用キャッシュ１１２を設定する場合におけるメモリのマッピングの例を示す説明図である。
【図６】他の比較例としてＯＳに対してＳＳＤ用キャッシュ１１２を連続した物理メモリ領域として設定することを要求するときの説明図である。
【図７】本実施例においてＯＳの管理外にＳＳＤ用キャッシュを設定する場合のメモリマップを示す説明図である。
【図８】ＳＳＤドライバ１１５のインストールまたはその設定変更の手順を示すフローチャートである。
【図９】再起動後のコンピュータの動作を示す説明図である。
【図１０】第２の実施例におけるメモリマップを示す説明図である。
【図１１】第２の実施例の変形例におけるメモリマップを示す説明図である。
【図１２】第２の実施例およびその変形例におけるＳＳＤドライバのインストールまたは設定変更の手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、第１の実施例にかかるコンピュータの構成を示す説明図である。コンピュータ１０は、ＣＰＵ１００と、ＲＡＭ１１０と、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｅｖｉｃｅ）１２０と、ネットワークインターフェース１３０と、出力インターフェース１４０と、入力インターフェース１５０と、を備える。出力インターフェース１４０には、モニタディスプレイ２００が接続されており、入力インターフェースには、キーボード３００と、マウス３１０とが接続されている。
【００１４】
ＳＳＤ１２０は、外部記憶装置の一種であり、ＯＳや、デバイスドライバ、アプリケーションプログラム、データを格納している。ＣＰＵ１００は、ＯＳや、デバイスドライバ、アプリケーションプログラムを、ＳＳＤ１２０から読み出し、ＲＡＭ１１０に展開して実行する。図１に示す例では、ＳＳＤ用のデバイスドライバとしてのＳＳＤドライバ１１５がＲＡＭ１１０上に展開されている。
【００１５】
図２は、ＲＡＭのメモリマップを示す説明図である。本実施例では、ＲＡＭ１１０の容量は３ＧＢであり、そのうち２．５ＧＢがＯＳ管理下に在る。この領域をＯＳ管理領域１１１と呼ぶ。ＯＳ管理領域１１１には、ＯＳやアプリケーションプログラム、デバイスドライバ、データが格納されており、データは、ＯＳやアプリケーションプログラムから直接アクセスすることが可能である。残りの０．５ＧＢは、ＳＳＤ用キャッシュ１１２となっている。ＳＳＤ用キャッシュ１１２は、ＯＳの管理領域外に在り、ＯＳやアプリケーションプログラムからは直接アクセスすることができないが、ＳＳＤ用デバイスドライバ１１５がアクセス可能である。なお、ＯＳ管理領域１１１とＳＳＤ用キャッシュ１１２の大きさは、設定により変更することが可能である。この設定については後述する。
【００１６】
図３は、ＳＳＤ１２０の構成を示す説明図である。図３（Ａ）に示すように、ＳＳＤ１２０は、コントローラ１２１と、フラッシュメモリ１２２とを備える。コントローラ１２１は、バッファメモリ１２５を備える。本実施例では、フラッシュメモリ１２２は８個あり、並列に接続されている。なお、フラッシュメモリ１２２の個数は、フラッシュメモリ１２２の容量と、ＳＳＤ１２０の容量により決まる。また。ＳＳＤ１２０は、これらのフラッシュメモリ１２２に加えて、パリティ用のフラッシュメモリ（図示せず）を備えてよい。
【００１７】
図３（Ｂ）は、フラッシュメモリの構成を示す説明図である。フラッシュメモリ１２２は、複数のブロック１２３を備える。本実施例では、ブロック１２３の大きさとして、２５６ｋビットのものを用いている。なお、ブロックの大きさは、他の大きさ、例えば５１２ｋビットや１０２４ｋビットであってもよい。一般にブロックの大きさは、２nビット（ｎは自然数）であることが好ましい。本実施例では、フラッシュメモリ１２２は、８個が並列に接続されており、各フラッシュメモリ１２２の同一アドレスに対し同時にアクセスされるため、ＳＳＤ１２０では、２５６ｋＢが１ブロックとなる。ブロック１２３は、ＳＳＤのデータ消去単位となる。ここで、フラッシュメモリ１２２のフローティングゲート（図示せず）から電子を引く抜くことを、データの消去と呼ぶ（データ０→１）。
【００１８】
図３（Ｃ）はブロックの構成を示す説明図である。ブロック１２３は複数のページ１２４を備える。本実施例では、ページ１２４の大きさは、４ｋビットのものを用いている。なお、ページの大きさは他の大きさ、例えば８ｋビットであってもよい。一般にページの大きさは、２mビット（ｍは自然数）であることが好ましい。本実施例では、１ブロックに６４ページを備えている。なお、ブロック１２３とページ１２４の大きさにより、１ブロックのページ数は変わる。ページ１２４は、データの書込単位となる。ここで、フラッシュメモリ１２２のフローティングゲート（図示せず）に電子を注入することを、データの書込と呼ぶ（データ１→０）。
【００１９】
ＳＳＤ１２０では、例えばあるブロック１２３のあるページ１２４のデータ、例えばデータ“１０１０１０１０”をデータ“０１０１０１０１”に直接書き換えることはできない。すなわち、一旦データを消去してデータ“１１１１１１１１”とし、その後、データ“０１０１０１０１”を書き込む。上述したように、データの消去はブロック単位であるため、ＳＳＤ１２０は、同一ブロック１２３内の、書き換えるページ１２４以外のページ１２４のデータについては、一旦データをコントローラ１２１のバッファメモリ１２５に退避し、当該ブロック１２３のデータを消去した後、ブロック１２３に書き戻す。例えば、本実施例では、わずか１ビットを書き換えるだけでも、６４ページ分の読み出し、消去、６４ページ分の書き込みが行われることになる。
【００２０】
図４（Ａ）は、メインメモリ（ＲＡＭ１１０）にＳＳＤキャッシュを設けない場合におけるＳＳＤへの書込動作を模式的に示す説明図である。図４（Ａ）に示すように、ファイルの書込動作は、ＯＳやアプリケーションが行う場合には、ファイル単位で行われる。すなわち、ＳＳＤ１２０は、Ｆｉｌｅ１の書込について、ブロックの消去、書込を行い、Ｆｉｌｅ２の書込についても、ブロックの消去、書込を行う。したがって、ファイルが多数ある場合には、ブロックの消去や書込回数が増えるため、ファイルの書き換えに時間がかかる。
【００２１】
図４（Ｂ）は、メインメモリ上にＳＳＤ用キャッシュ１１２を設ける場合の書込動作を示している。ここでは、まず、ＳＳＤ用キャッシュ１１２へのＦｉｌｅ１、２の書込が行われる。
【００２２】
図４（Ｃ）は、ＳＳＤ用キャッシュ１１２からＳＳＤ１２０への書込を示す説明図である。ここで、Ｆｉｌｅ１、Ｆｉｌｅ２は、同一のブロック１２３に書き込まれるものとする。ＳＳＤ１２０のコントローラ１２１（図３）は、Ｆｉｌｅ１、Ｆｉｌｅ２を書き込むブロック１２３のデータをＳＳＤ１２０内のバッファメモリ１２５に退避する。次に、コントローラ１２１は、このバッファメモリ１２５に、ＳＳＤ用キャッシュ１１２のＦｉｌｅ１、Ｆｉｌｅ２を書き込む。このとき、コントローラ１２１は、先にバッファメモリ１２５にＦｉｌｅ１、２を書き込み、その後、Ｆｉｌｅ１，２により書き換えられないページ１２４のデータをバッファメモリ１２５に書き込んでもよい。そして、コントローラ１２１は、ブロック１２３のデータを消去した後、バッファメモリ１２５の内容をブロック１２３に書き込む。
【００２３】
図５は、比較例として、ＯＳが管理するメモリ領域内にＳＳＤ用キャッシュ１１２を設定する場合におけるメモリのマッピングの例を示す説明図である。図５（Ａ）に示す例では、ＳＳＤ用キャッシュ１１２が連続して取得されている。図５（Ｂ）、（Ｃ）に示す例では、ＳＳＤ用キャッシュ１１２が連続して取得されていない。ここで、ＯＳは、ＳＳＤ用キャッシュ１１２を取得する場合、図５（Ａ）〜（Ｃ）に示すいずれかに固定するのではなく、アプリケーションの使用状態により図５（Ａ）〜（Ｃ）に示す状態を動的に変化させる。すなわち、ＯＳは、図５（Ａ）〜（Ｃ）の状態を相互に移動させ、物理メモリを効率的に利用できるように、メモリ１１０の使用を管理する。しかし、ＯＳによるメモリ管理は、ＳＳＤ１２０への書込にとって最適な状態、すなわちＳＳＤ用キャッシュ１１２が連続する状態になるとは限らない。例えば、図５（Ｂ）、（Ｃ）に示すようにＳＳＤ用キャッシュ１１２が断片化していると、ＳＳＤ１２０への書込において、効率的なキャッシュコントロールができない。
【００２４】
図６は、他の比較例として、ＯＳに対してＳＳＤ用キャッシュ１１２を連続した物理メモリ領域として設定することを要求するときの説明図である。図６の示す状態は、ＯＳが、ＳＳＤ１２０用のキャッシュ１１３を連続した物理メモリ領域として取得しようとしても、メモリ１１０に連続した空きメモリが存在しないため、連続したＳＳＤ用キャッシュ１１２を取得することができない。従って、この場合は、ＳＳＤ内のコントローラ用キャッシュメモリが全く設定されない結果となる。
【００２５】
図７は、本実施例においてＯＳの管理外にＳＳＤ用キャッシュを設定する場合のメモリマップを示す説明図である。この例では、ＲＡＭ１１０の容量３ＧＢに対し、ＯＳが管理する領域として２．５ＧＢの容量を割り当て、ＳＳＤ用キャッシュ１１２として０．５ＧＢの容量を割り当てている。そして、ＳＳＤ用キャッシュ１１２は、ＯＳの管理外に設けられており、連続した物理メモリ領域として割り当てられている。
【００２６】
図８は、ＳＳＤドライバ１１５のインストールまたはその設定変更の手順を示すフローチャートである。ステップＳ８００では、ＳＳＤドライバ１１５のインストールプログラム（以下単に「インストールプログラム」と呼ぶ。）は、例えばＯＳから、コンピュータ１０の搭載されている物理メモリ（ＲＡＭ１１０）の容量を取得する。具体的には、例えばＢＩＯＳ（図示せず）から物理メモリの容量を取得することが可能である。
【００２７】
ステップＳ８１０では、インストールプログラムは、ＳＳＤ１２０用のキャッシュ１１２の容量を取得する。この値は、例えば、モニタディスプレイ２００に表示されたインターフェース画面上で、利用者から入力される。
【００２８】
ステップＳ８２０では、インストールプログラムが、ＯＳが使用するメモリの容量を設定する。具体的には、ステップＳ８００で取得された物理メモリの容量から、ステップＳ８１０で取得されたＳＳＤ用キャッシュ１１２の容量を引くことにより、ＯＳが使用するメモリの容量が取得される。
【００２９】
ステップＳ８３０において、インストールプログラムは、ＯＳのメモリ使用量と、ＳＳＤ用キャッシュの使用量を、設定する。例えば、ＯＳがＷｉｎｄｏｗｓ（ＷｉｎｄｏｗｓはＭｉｃｒｏｓｏｆｔの登録商標）である場合には、インストールプログラムは、ＯＳ用のＢｏｏｔ．ｉｎｉファイルに、例えば、／ＭＡＸＭＥＭ＝２５６０という行（／ＭＡＸＭＥＭ＝ｎｎスイッチ）を記載することにより、ＯＳの使用領域を２．５ＧＢに制限することが可能となる。なお、この設定は、ステップＳ８４０の再起動後に有効となる。／ＭＡＸＭＥＭ＝ｎｎスイッチは、起動時にＯＳで使用が可能なメモリの容量を設定するためのスイッチである。ここでｎｎは、容量の大きさをメガバイト（ＭＢ）単位で示す数値である。なお、／ＭＡＸＭＥＭ＝ｎｎスイッチは、当初、ソフトウエアによっては、大きな容量のメモリを搭載している場合に不具合が発生した例があったため、その不具合を防止するためにＯＳが使用できるメモリの容量を制限するために設けられたスイッチである。本実施例では、／ＭＡＸＭＥＭ＝ｎｎスイッチを用いているが、／ＢＵＲＮＭＥＭＯＲＹ＝ｎｎスイッチを用いてもよい。このスイッチは、Ｗｉｎｄｏｗｓで使用できないようにするメモリ容量をＭＢ単位で指定することができる。そして、インストールプログラムは、ＯＳのメモリ使用量、ＳＳＤ用キャッシュ１１２の容量に基づいて、ＳＳＤ用キャッシュメモリ１１２の物理アドレスの設定をする。
【００３０】
ステップＳ８４０では、インストールプログラムは、モニタディスプレイ２００に、再起動を促すメッセージを表示し、利用者に再起動を実行させる。
【００３１】
図９は、再起動後のコンピュータの動作を示す説明図である。ステップＳ９００では、起動ファイルを読み込む。起動ファイルには、ｂｏｏｔ．ｉｎｉファイルが含まれている。ＣＰＵ１００は、ｂｏｏｔ．ｉｎｉファイルの／ＭＡＸＭＥＭ＝ｎｎスイッチの値を読み込む。ステップＳ９１０では、ＣＰＵは、ｂｏｏｔ．ｉｎｉファイルの／ＭＡＸＭＥＭ＝ｎｎスイッチに記載された値を用いて、ＯＳが管理するメモリ領域を設定する。ステップＳ９１０では、ＯＳは、ＳＳＤ１２０からＳＳＤドライバ１１５をＲＡＭ１１０にロードする。なお、ＳＳＤドライバ１１５は、ＯＳ管理領域１１１にロードされる。ＳＳＤドライバ１１５は、ＲＡＭ１１０のＯＳ管理領域１１１外のＳＳＤ用キャッシュ１１２にアクセスすることが可能である。
【００３２】
ステップＳ９３０において、ＳＳＤドライバ１１５は、ＳＳＤ１２０へデータ書込要求を検知すると、ステップＳ９４０において、ＳＳＤ用キャッシュ１１２にデータを格納する。なお、利用者からみたＳＳＤ１２０のアクセスの体感速度は、ＳＳＤ用キャッシュ１１２へのデータ格納により決定される。したがって、利用者に対し、ＳＳＤ１２０に高速にデータが格納されたと感じさせることが可能となる。
【００３３】
ステップＳ９５０において、キャッシュ１１２に格納されたデータがある一定値以上の大きさとなったときに、ＳＳＤドライバ１１５は、キャッシュ１１２からＳＳＤ１２０にデータを転送し、ＳＳＤ１２０にデータを書き込む（ステップＳ９６０）。なお、この一定値は、ＳＳＤ１２０のブロック１２３の大きさと同じであってもよい。こうすれば、同一ブロックにある２つ以上のファイルを書き換える場合であっても、ブロックの消去は１回でよく、ファイル毎にＳＳＤのデータを書き換える場合に比べて書き換えに時間がかからない。その結果、プチフリーズの発生を抑制することが可能となる。なお、ＳＳＤ用キャッシュ１１５からＳＳＤ１２０へのデータ転送のタイミングは、任意に設定することが可能である。
【００３４】
以上、本実施例によれば、ＯＳの管理外の連続した物理メモリ領域にＳＳＤ用キャッシュ１１５を設け、ＳＳＤ１２０にデータを書き込む場合には、ＳＳＤ用キャッシュ１１５に一旦データを格納し、その後ＳＳＤ１２０にデータを一括して転送する。その結果、ＳＳＤ１２０への書き込みの体感速度高速化し、プチフリーズの発生を抑制することが可能となる。
【００３５】
図１０は、第２の実施例におけるメモリマップを示す説明図である。前述した第１の実施例では、物理メモリの搭載量が３ＧＢの場合を示したが、第２の実施例では、物理メモリ（ＲＡＭ１１０）の搭載量が４ＧＢである場合を示している。この物理メモリの量４ＧＢは、ＯＳメモリ上限である３ＧＢよりも大きい。ここで、「ＯＳメモリ上限」とは、ＯＳが、ＯＳやアプリケーション、デバイスドライバ、データを格納する領域として用いることができる領域（ＯＳ管理領域１１１）の最大の値であり、ＯＳが管理可能な最大容量である。この値は、コンピュータ１０搭載するＲＡＭ１１０を容量に依存せず、例えば、３２ビット版のＷｉｎｄｏｗｓでは、３ＧＢがメモリ上限となっている。なお、ＯＳやエディションが異なれば、このメモリ上限の値は異なる。例えば、６４ビット版のＷｉｎｄｏｗｓでは、エディションにより異なるが、メモリ上限は、８ＧＢ〜１２８ＧＢのいずれかが採用されている。第２の実施例では、物理メモリ４ＧＢからＯＳのメモリ上限３ＧＢを引いた１ＧＢがＳＳＤ用キャッシュ１１２として用いられている。なお、ＳＳＤ用キャッシュ１１２は、ＯＳの管理外に存在している。
【００３６】
図１１は、第２の実施例の変形例におけるメモリマップを示す説明図である。図１１（Ａ）に示す例では、ＲＡＭ１１０の全容量である４ＧＢからＯＳのメモリ上限３ＧＢを引いた１ＧＢのうち一部が、ＳＳＤ用キャッシュ１１２として用いられている例を示している。このように、ＯＳのメモリ上限を超えてＲＡＭ１１０がある場合には、その超えた分の全部ではなく、一部のみがＳＳＤ用キャッシュ１１２である構成であってもよい。なお、ＲＡＭ１１０のうちＯＳ管理領域１１１、ＳＳＤ用キャッシュ１１２のいずれにも用いられない領域は、特に用いられることはなくてもよい。また、図１１（Ｂ）に示す例では、ＯＳ管理領域１１１の大きさがＯＳのメモリ上限３ＧＢよりも小さく、ＳＳＤ用キャッシュ１１２の大きさが、ＲＡＭ１１０、４ＧＢからＯＳのメモリ上限３ＧＢを引いた１ＧＢよりも大きい場合を示している。このように、ＯＳ管理領域１１１がＯＳのメモリ上限より小さく、その分ＳＳＤ用キャッシュ１１２が大きい構成であってもよい。
【００３７】
図１２は、第２の実施例およびその変形例におけるＳＳＤドライバのインストールまたは設定変更の手順を示すフローチャートであり、第１の実施例の図８に相当する図である。なお、第２の実施例は、装置の全体構成（図１）や図９の処理は、第１の実施例と同じである。ステップＳ１１００では、インストールプログラムは、例えばＯＳから、コンピュータ１０の搭載されている物理メモリ（ＲＡＭ１１０）の容量を取得する。ステップＳ１１０では、ＯＳのメモリ上限Ｗを取得する。この値は、ＯＳから取得することが可能である。ステップＳ１１２０では、インストールプログラムは、ＳＳＤ１２０用のキャッシュ１１２の容量を取得する。この値は、例えば、モニタディスプレイ２００に表示されたインターフェース画面上で、利用者から入力される。
【００３８】
ステップＳ１１３０において、インストールプログラムは、物理メモリの容量ＶからＳＳＤ用キャッシュの容量Ｙを引いた大きさが、ＯＳのメモリ上限Ｗの大きさよりも大きいか、小さいかを判断する。大きい場合には、ステップＳ１１４０において、ＯＳ管理領域の大きさＺをＯＳのメモリ上限Ｗとする。一方、小さい場合には、ステップＳ１１５０において、ＯＳ管理領域の大きさＺを物理メモリの容量ＶからＳＳＤ用キャッシュの容量Ｙを引いた大きさとする。なお、物理メモリの容量ＶからＳＳＤ用キャッシュの容量Ｙを引いた大きさが、ＯＳのメモリ上限Ｗと等しい場合には、ＯＳ管理領域の大きさＺ＝物理メモリの容量Ｖ−ＳＳＤ用キャッシュの容量Ｙ＝ＯＳのメモリ上限Ｗであるので、ステップＳ１１４０、Ｓ１１５０、いずれのルートであっても同じである。
【００３９】
ステップＳ１１６０において、インストールプログラムは、ＯＳのメモリ使用量と、ＳＳＤ用キャッシュの使用量を、起動ファイルに設定する。なお、この動作は、ステップＳ８３０における動作と同じである。ステップＳ１１７０では、インストールプログラムは、モニタディスプレイ２００に、再起動を促すメッセージを表示し、利用者に再起動を実行させる。
【００４０】
このように、第２の実施例によれば、物理メモリの容量と、利用者から取得するキャッシュの容量と、ＯＳのメモリ上限とに応じ、ＲＡＭ１１０の使用状態を切り換えることが可能である。特にＯＳのメモリ上限Ｗを超える物理メモリが搭載されている時は、その超えた分を優先的にＳＳＤ用キャッシュ１１２に割り当てる。これにより、ＯＳ管理領域１１１の大きさを小さくせずに、ＳＳＤ用キャッシュ１１２を取得することが可能となる。
【００４１】
以上の説明では、ＳＳＤ１２０を外部記憶装置として用いる場合を例に取り説明したが、外部記憶装置は、他のもの、例えば、ハードディスク装置、ＣＤ、ＤＶＤであってもよい。これら他の外部記憶装置の場合でも、ＯＳの管理外にキャッシュを設けることによって、ＯＳの影響を受けずにデータを転送でき、処理の体感速度の高速化を図ることが可能となる。
【００４２】
ＳＳＤ１２０のキャッシュメモリを利用するための管理用ソフトウエアとして、本実施例では、デバイスドライバを用いたが、その代わりに、ユーティリティソフトウエアを用いることも可能である。
【００４３】
以上、いくつかの実施例に基づいて本発明の実施の形態について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物が含まれることはもちろんである。
【符号の説明】
【００４４】
１０…コンピュータ
１００…ＣＰＵ
１１０…メモリ
１１１…ＯＳ管理領域
１１２…キャッシュ
１２０…ＳＳＤ
１２１…コントローラ
１２２…フラッシュメモリ
１２３…ブロック
１２４…ページ
１２５…バッファメモリ
１３０…ネットワークインターフェース
１４０…出力インターフェース
１５０…入力インターフェース
２００…モニタディスプレイ
３００…キーボード
３１０…マウス
【図１】
2011028537.tif 000003
【図２】
2011028537.tif 000004
【図３】
2011028537.tif 000005
【図４】
2011028537.tif 000006
【図５】
2011028537.tif 000007
【図６】
2011028537.tif 000008
【図７】
2011028537.tif 000009
【図８】
2011028537.tif 000010
【図９】
2011028537.tif 000011
【図１０】
2011028537.tif 000012
【図１１】
2011028537.tif 000013
【図１２】
2011028537.tif 000014