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

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

Info

Publication number
JP2011028537A
JP2011028537A JP2009174023A JP2009174023A JP2011028537A JP 2011028537 A JP2011028537 A JP 2011028537A JP 2009174023 A JP2009174023 A JP 2009174023A JP 2009174023 A JP2009174023 A JP 2009174023A JP 2011028537 A JP2011028537 A JP 2011028537A
Authority
JP
Japan
Prior art keywords
external storage
storage device
ssd
memory
cache
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.)
Pending
Application number
JP2009174023A
Other languages
English (en)
Inventor
Satosuke Sugawara
識介 菅原
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 JP2009174023A priority Critical patent/JP2011028537A/ja
Priority to US12/843,749 priority patent/US8312213B2/en
Priority to CN2010102412277A priority patent/CN101968721B/zh
Publication of JP2011028537A publication Critical patent/JP2011028537A/ja
Pending legal-status Critical Current

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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

【課題】コンピュータの記憶装置へのアクセスを高速化する。
【解決手段】(a)コンピュータ10の起動時に、前記コンピュータが有する物理メモリ110の一部を、前記外部記憶装置用のキャッシュメモリ112として、前記コンピュータのオペレーティングシステムが管理する領域111外に、連続した領域として設定する工程と、(b)前記ドライバが前記外部記憶装置120へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込む工程と、(c)前記ドライバが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、を備える。
【選択図】図9

Description

本発明は、コンピュータの外部記憶装置へのアクセスに関するものである。
コンピュータの外部記憶装置として、従来ハードディスク装置が用いられているが、近年、エス・エス・ディー(SSD:Solid State Drive、以下「SSD」と呼ぶ。)が用いられ始めている(例えば、非特許文献1)。
日経パソコン 2009年7月13日号P38−58
SSDでは、多数の小ファイルを書き換えようとすると、処理時間がかかるというプチフリーズ問題が発生する場合がある。これは、SSDが、記憶素子としてフラッシュメモリを用いていることに起因している。すなわち、フラッシュメモリでは、ブロックの一部のみを書き換えることができない。SSDが、データを書き換える場合、書き換えられるページを含むブロックの全てのページのデータを消去し、その後、そのブロックに対し全ページ分の書込を行なうので、このときに、プチフリーズが発生し得る。このため、従来から、コンピュータのメインメモリにSSD用のキャッシュメモリを設ける技術が採用されている。しかし、従来の技術では、メインメモリ用のキャッシュメモリの領域がコンピュータのOSによって管理されているため、このOSの管理に伴ってSSDへのアクセス速度が低下する可能性がある。このため、従来からOSによるキャッシュメモリの管理に伴うアクセス速度の低下を防止して、SSDへのアクセスの体感速度を高速化したいという要望があった。また、SSD以外の他の記憶装置でも同様に、アクセスの体感速度を高速化したいという要望があった。例えば、ハードディスク装置では、1つのファイルを分断して書き込む場合には、ヘッドの移動などにより書込時間がかかるという問題がった。
本発明は、上記課題の少なくとも一部を解決し、コンピュータの記憶装置へのアクセスの体感速度を高速化することを目的とする。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]
外部記憶装置の管理用ソフトウエアを用いて前記外部記憶装置へのアクセスを高速化する方法であって、(a)コンピュータの起動時に、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定する工程と、(b)前記管理用ソフトウエアが前記外部記憶装置へのデータの書込要求を検知した場合に、該データを前記キャッシュメモリに書込む工程と、(c)前記管理用ソフトウエアが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、を備える、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、外部記憶装置用のキャッシュメモリが、コンピュータのオペレーティングシステムの管理外の連続した物理メモリ領域として設定されるので、オペレーティングシステムの管理に伴うアクセス速度の低下を防止して、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
[適用例2]
適用例1に記載の外部記憶装置へのアクセスの高速化方法において、前記工程(a)は、前記物理メモリの容量が、前記オペレーティングシステムが管理可能な最大容量よりも大きい場合には、前記管理可能な最大容量を超える物理メモリ領域に優先的に前記キャッシュメモリを設定する工程を含む、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、オペレーティングシステムが管理する物理メモリ領域の低下を最小限に抑えることができ、オペレーティングシステムの速度低下を防止できるので、この結果として、外部記憶装置へのアクセスの体感速度を高めることが可能である。
[適用例3]
適用例2に記載の外部記憶装置へのアクセスの高速化方法において、前記工程(a)は、前記物理メモリの容量から前記オペレーティングシステムが管理可能な最大容量を引いた差分が、前記キャッシュメモリの容量よりも小さい場合には、前記オペレーティングシステムが管理する物理メモリの容量を前記差分だけ減ずる工程を含む、外部記憶装置へのアクセスの高速化方法。
この適用例によれば、キャッシュメモリを優先的に取得するので、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
[適用例4]
外部記憶装置システムであって、外部記憶装置と、前記外部記憶装置の管理用ソフトウエアと、を備え、前記管理用ソフトウエアは、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定し、前記外部記憶装置へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込み、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する、外部記憶装置システム。
この適用例によれば、外部記憶装置用のキャッシュメモリが、コンピュータのオペレーティングシステムの管理外の連続した物理メモリ領域として設定されるので、オペレーティングシステムの管理に伴うアクセス速度の低下を防止して、コンピュータの記憶装置へのアクセスの体感速度を高速化することが可能となる。
本発明は、種々の形態で実現することが可能であり、例えば、外部記憶装置へのアクセスを高速化する方法の他、外部記憶システム、外部記憶装置へのアクセスを高速化するためのプログラム等、様々な形態で実現することができる。
第1の実施例にかかるコンピュータの構成を示す説明図である。 RAMのメモリマップを示す説明図である。 SSD120の構成を示す説明図である。 SSDへの書込を模式的に示す説明図である。 比較例としてOSが管理するメモリ領域内にSSD用キャッシュ112を設定する場合におけるメモリのマッピングの例を示す説明図である。 他の比較例としてOSに対してSSD用キャッシュ112を連続した物理メモリ領域として設定することを要求するときの説明図である。 本実施例においてOSの管理外にSSD用キャッシュを設定する場合のメモリマップを示す説明図である。 SSDドライバ115のインストールまたはその設定変更の手順を示すフローチャートである。 再起動後のコンピュータの動作を示す説明図である。 第2の実施例におけるメモリマップを示す説明図である。 第2の実施例の変形例におけるメモリマップを示す説明図である。 第2の実施例およびその変形例におけるSSDドライバのインストールまたは設定変更の手順を示すフローチャートである。
図1は、第1の実施例にかかるコンピュータの構成を示す説明図である。コンピュータ10は、CPU100と、RAM110と、SSD(Solid State Device)120と、ネットワークインターフェース130と、出力インターフェース140と、入力インターフェース150と、を備える。出力インターフェース140には、モニタディスプレイ200が接続されており、入力インターフェースには、キーボード300と、マウス310とが接続されている。
SSD120は、外部記憶装置の一種であり、OSや、デバイスドライバ、アプリケーションプログラム、データを格納している。CPU100は、OSや、デバイスドライバ、アプリケーションプログラムを、SSD120から読み出し、RAM110に展開して実行する。図1に示す例では、SSD用のデバイスドライバとしてのSSDドライバ115がRAM110上に展開されている。
図2は、RAMのメモリマップを示す説明図である。本実施例では、RAM110の容量は3GBであり、そのうち2.5GBがOS管理下に在る。この領域をOS管理領域111と呼ぶ。OS管理領域111には、OSやアプリケーションプログラム、デバイスドライバ、データが格納されており、データは、OSやアプリケーションプログラムから直接アクセスすることが可能である。残りの0.5GBは、SSD用キャッシュ112となっている。SSD用キャッシュ112は、OSの管理領域外に在り、OSやアプリケーションプログラムからは直接アクセスすることができないが、SSD用デバイスドライバ115がアクセス可能である。なお、OS管理領域111とSSD用キャッシュ112の大きさは、設定により変更することが可能である。この設定については後述する。
図3は、SSD120の構成を示す説明図である。図3(A)に示すように、SSD120は、コントローラ121と、フラッシュメモリ122とを備える。コントローラ121は、バッファメモリ125を備える。本実施例では、フラッシュメモリ122は8個あり、並列に接続されている。なお、フラッシュメモリ122の個数は、フラッシュメモリ122の容量と、SSD120の容量により決まる。また。SSD120は、これらのフラッシュメモリ122に加えて、パリティ用のフラッシュメモリ(図示せず)を備えてよい。
図3(B)は、フラッシュメモリの構成を示す説明図である。フラッシュメモリ122は、複数のブロック123を備える。本実施例では、ブロック123の大きさとして、256kビットのものを用いている。なお、ブロックの大きさは、他の大きさ、例えば512kビットや1024kビットであってもよい。一般にブロックの大きさは、2nビット(nは自然数)であることが好ましい。本実施例では、フラッシュメモリ122は、8個が並列に接続されており、各フラッシュメモリ122の同一アドレスに対し同時にアクセスされるため、SSD120では、256kBが1ブロックとなる。ブロック123は、SSDのデータ消去単位となる。ここで、フラッシュメモリ122のフローティングゲート(図示せず)から電子を引く抜くことを、データの消去と呼ぶ(データ0→1)。
図3(C)はブロックの構成を示す説明図である。ブロック123は複数のページ124を備える。本実施例では、ページ124の大きさは、4kビットのものを用いている。なお、ページの大きさは他の大きさ、例えば8kビットであってもよい。一般にページの大きさは、2mビット(mは自然数)であることが好ましい。本実施例では、1ブロックに64ページを備えている。なお、ブロック123とページ124の大きさにより、1ブロックのページ数は変わる。ページ124は、データの書込単位となる。ここで、フラッシュメモリ122のフローティングゲート(図示せず)に電子を注入することを、データの書込と呼ぶ(データ1→0)。
SSD120では、例えばあるブロック123のあるページ124のデータ、例えばデータ“10101010”をデータ“01010101”に直接書き換えることはできない。すなわち、一旦データを消去してデータ“11111111”とし、その後、データ“01010101”を書き込む。上述したように、データの消去はブロック単位であるため、SSD120は、同一ブロック123内の、書き換えるページ124以外のページ124のデータについては、一旦データをコントローラ121のバッファメモリ125に退避し、当該ブロック123のデータを消去した後、ブロック123に書き戻す。例えば、本実施例では、わずか1ビットを書き換えるだけでも、64ページ分の読み出し、消去、64ページ分の書き込みが行われることになる。
図4(A)は、メインメモリ(RAM110)にSSDキャッシュを設けない場合におけるSSDへの書込動作を模式的に示す説明図である。図4(A)に示すように、ファイルの書込動作は、OSやアプリケーションが行う場合には、ファイル単位で行われる。すなわち、SSD120は、File1の書込について、ブロックの消去、書込を行い、File2の書込についても、ブロックの消去、書込を行う。したがって、ファイルが多数ある場合には、ブロックの消去や書込回数が増えるため、ファイルの書き換えに時間がかかる。
図4(B)は、メインメモリ上にSSD用キャッシュ112を設ける場合の書込動作を示している。ここでは、まず、SSD用キャッシュ112へのFile1、2の書込が行われる。
図4(C)は、SSD用キャッシュ112からSSD120への書込を示す説明図である。ここで、File1、File2は、同一のブロック123に書き込まれるものとする。SSD120のコントローラ121(図3)は、File1、File2を書き込むブロック123のデータをSSD120内のバッファメモリ125に退避する。次に、コントローラ121は、このバッファメモリ125に、SSD用キャッシュ112のFile1、File2を書き込む。このとき、コントローラ121は、先にバッファメモリ125にFile1、2を書き込み、その後、File1,2により書き換えられないページ124のデータをバッファメモリ125に書き込んでもよい。そして、コントローラ121は、ブロック123のデータを消去した後、バッファメモリ125の内容をブロック123に書き込む。
図5は、比較例として、OSが管理するメモリ領域内にSSD用キャッシュ112を設定する場合におけるメモリのマッピングの例を示す説明図である。図5(A)に示す例では、SSD用キャッシュ112が連続して取得されている。図5(B)、(C)に示す例では、SSD用キャッシュ112が連続して取得されていない。ここで、OSは、SSD用キャッシュ112を取得する場合、図5(A)〜(C)に示すいずれかに固定するのではなく、アプリケーションの使用状態により図5(A)〜(C)に示す状態を動的に変化させる。すなわち、OSは、図5(A)〜(C)の状態を相互に移動させ、物理メモリを効率的に利用できるように、メモリ110の使用を管理する。しかし、OSによるメモリ管理は、SSD120への書込にとって最適な状態、すなわちSSD用キャッシュ112が連続する状態になるとは限らない。例えば、図5(B)、(C)に示すようにSSD用キャッシュ112が断片化していると、SSD120への書込において、効率的なキャッシュコントロールができない。
図6は、他の比較例として、OSに対してSSD用キャッシュ112を連続した物理メモリ領域として設定することを要求するときの説明図である。図6の示す状態は、OSが、SSD120用のキャッシュ113を連続した物理メモリ領域として取得しようとしても、メモリ110に連続した空きメモリが存在しないため、連続したSSD用キャッシュ112を取得することができない。従って、この場合は、SSD内のコントローラ用キャッシュメモリが全く設定されない結果となる。
図7は、本実施例においてOSの管理外にSSD用キャッシュを設定する場合のメモリマップを示す説明図である。この例では、RAM110の容量3GBに対し、OSが管理する領域として2.5GBの容量を割り当て、SSD用キャッシュ112として0.5GBの容量を割り当てている。そして、SSD用キャッシュ112は、OSの管理外に設けられており、連続した物理メモリ領域として割り当てられている。
図8は、SSDドライバ115のインストールまたはその設定変更の手順を示すフローチャートである。ステップS800では、SSDドライバ115のインストールプログラム(以下単に「インストールプログラム」と呼ぶ。)は、例えばOSから、コンピュータ10の搭載されている物理メモリ(RAM110)の容量を取得する。具体的には、例えばBIOS(図示せず)から物理メモリの容量を取得することが可能である。
ステップS810では、インストールプログラムは、SSD120用のキャッシュ112の容量を取得する。この値は、例えば、モニタディスプレイ200に表示されたインターフェース画面上で、利用者から入力される。
ステップS820では、インストールプログラムが、OSが使用するメモリの容量を設定する。具体的には、ステップS800で取得された物理メモリの容量から、ステップS810で取得されたSSD用キャッシュ112の容量を引くことにより、OSが使用するメモリの容量が取得される。
ステップS830において、インストールプログラムは、OSのメモリ使用量と、SSD用キャッシュの使用量を、設定する。例えば、OSがWindows(WindowsはMicrosoftの登録商標)である場合には、インストールプログラムは、OS用のBoot.iniファイルに、例えば、/MAXMEM=2560という行(/MAXMEM=nnスイッチ)を記載することにより、OSの使用領域を2.5GBに制限することが可能となる。なお、この設定は、ステップS840の再起動後に有効となる。/MAXMEM=nnスイッチは、起動時にOSで使用が可能なメモリの容量を設定するためのスイッチである。ここでnnは、容量の大きさをメガバイト(MB)単位で示す数値である。なお、/MAXMEM=nnスイッチは、当初、ソフトウエアによっては、大きな容量のメモリを搭載している場合に不具合が発生した例があったため、その不具合を防止するためにOSが使用できるメモリの容量を制限するために設けられたスイッチである。本実施例では、/MAXMEM=nnスイッチを用いているが、/BURNMEMORY=nnスイッチを用いてもよい。このスイッチは、Windowsで使用できないようにするメモリ容量をMB単位で指定することができる。そして、インストールプログラムは、OSのメモリ使用量、SSD用キャッシュ112の容量に基づいて、SSD用キャッシュメモリ112の物理アドレスの設定をする。
ステップS840では、インストールプログラムは、モニタディスプレイ200に、再起動を促すメッセージを表示し、利用者に再起動を実行させる。
図9は、再起動後のコンピュータの動作を示す説明図である。ステップS900では、起動ファイルを読み込む。起動ファイルには、boot.iniファイルが含まれている。CPU100は、boot.iniファイルの/MAXMEM=nnスイッチの値を読み込む。ステップS910では、CPUは、boot.iniファイルの/MAXMEM=nnスイッチに記載された値を用いて、OSが管理するメモリ領域を設定する。ステップS910では、OSは、SSD120からSSDドライバ115をRAM110にロードする。なお、SSDドライバ115は、OS管理領域111にロードされる。SSDドライバ115は、RAM110のOS管理領域111外のSSD用キャッシュ112にアクセスすることが可能である。
ステップS930において、SSDドライバ115は、SSD120へデータ書込要求を検知すると、ステップS940において、SSD用キャッシュ112にデータを格納する。なお、利用者からみたSSD120のアクセスの体感速度は、SSD用キャッシュ112へのデータ格納により決定される。したがって、利用者に対し、SSD120に高速にデータが格納されたと感じさせることが可能となる。
ステップS950において、キャッシュ112に格納されたデータがある一定値以上の大きさとなったときに、SSDドライバ115は、キャッシュ112からSSD120にデータを転送し、SSD120にデータを書き込む(ステップS960)。なお、この一定値は、SSD120のブロック123の大きさと同じであってもよい。こうすれば、同一ブロックにある2つ以上のファイルを書き換える場合であっても、ブロックの消去は1回でよく、ファイル毎にSSDのデータを書き換える場合に比べて書き換えに時間がかからない。その結果、プチフリーズの発生を抑制することが可能となる。なお、SSD用キャッシュ115からSSD120へのデータ転送のタイミングは、任意に設定することが可能である。
以上、本実施例によれば、OSの管理外の連続した物理メモリ領域にSSD用キャッシュ115を設け、SSD120にデータを書き込む場合には、SSD用キャッシュ115に一旦データを格納し、その後SSD120にデータを一括して転送する。その結果、SSD120への書き込みの体感速度高速化し、プチフリーズの発生を抑制することが可能となる。
図10は、第2の実施例におけるメモリマップを示す説明図である。前述した第1の実施例では、物理メモリの搭載量が3GBの場合を示したが、第2の実施例では、物理メモリ(RAM110)の搭載量が4GBである場合を示している。この物理メモリの量4GBは、OSメモリ上限である3GBよりも大きい。ここで、「OSメモリ上限」とは、OSが、OSやアプリケーション、デバイスドライバ、データを格納する領域として用いることができる領域(OS管理領域111)の最大の値であり、OSが管理可能な最大容量である。この値は、コンピュータ10搭載するRAM110を容量に依存せず、例えば、32ビット版のWindowsでは、3GBがメモリ上限となっている。なお、OSやエディションが異なれば、このメモリ上限の値は異なる。例えば、64ビット版のWindowsでは、エディションにより異なるが、メモリ上限は、8GB〜128GBのいずれかが採用されている。第2の実施例では、物理メモリ4GBからOSのメモリ上限3GBを引いた1GBがSSD用キャッシュ112として用いられている。なお、SSD用キャッシュ112は、OSの管理外に存在している。
図11は、第2の実施例の変形例におけるメモリマップを示す説明図である。図11(A)に示す例では、RAM110の全容量である4GBからOSのメモリ上限3GBを引いた1GBのうち一部が、SSD用キャッシュ112として用いられている例を示している。このように、OSのメモリ上限を超えてRAM110がある場合には、その超えた分の全部ではなく、一部のみがSSD用キャッシュ112である構成であってもよい。なお、RAM110のうちOS管理領域111、SSD用キャッシュ112のいずれにも用いられない領域は、特に用いられることはなくてもよい。また、図11(B)に示す例では、OS管理領域111の大きさがOSのメモリ上限3GBよりも小さく、SSD用キャッシュ112の大きさが、RAM110、4GBからOSのメモリ上限3GBを引いた1GBよりも大きい場合を示している。このように、OS管理領域111がOSのメモリ上限より小さく、その分SSD用キャッシュ112が大きい構成であってもよい。
図12は、第2の実施例およびその変形例におけるSSDドライバのインストールまたは設定変更の手順を示すフローチャートであり、第1の実施例の図8に相当する図である。なお、第2の実施例は、装置の全体構成(図1)や図9の処理は、第1の実施例と同じである。ステップS1100では、インストールプログラムは、例えばOSから、コンピュータ10の搭載されている物理メモリ(RAM110)の容量を取得する。ステップS110では、OSのメモリ上限Wを取得する。この値は、OSから取得することが可能である。ステップS1120では、インストールプログラムは、SSD120用のキャッシュ112の容量を取得する。この値は、例えば、モニタディスプレイ200に表示されたインターフェース画面上で、利用者から入力される。
ステップS1130において、インストールプログラムは、物理メモリの容量VからSSD用キャッシュの容量Yを引いた大きさが、OSのメモリ上限Wの大きさよりも大きいか、小さいかを判断する。大きい場合には、ステップS1140において、OS管理領域の大きさZをOSのメモリ上限Wとする。一方、小さい場合には、ステップS1150において、OS管理領域の大きさZを物理メモリの容量VからSSD用キャッシュの容量Yを引いた大きさとする。なお、物理メモリの容量VからSSD用キャッシュの容量Yを引いた大きさが、OSのメモリ上限Wと等しい場合には、OS管理領域の大きさZ=物理メモリの容量V−SSD用キャッシュの容量Y=OSのメモリ上限Wであるので、ステップS1140、S1150、いずれのルートであっても同じである。
ステップS1160において、インストールプログラムは、OSのメモリ使用量と、SSD用キャッシュの使用量を、起動ファイルに設定する。なお、この動作は、ステップS830における動作と同じである。ステップS1170では、インストールプログラムは、モニタディスプレイ200に、再起動を促すメッセージを表示し、利用者に再起動を実行させる。
このように、第2の実施例によれば、物理メモリの容量と、利用者から取得するキャッシュの容量と、OSのメモリ上限とに応じ、RAM110の使用状態を切り換えることが可能である。特にOSのメモリ上限Wを超える物理メモリが搭載されている時は、その超えた分を優先的にSSD用キャッシュ112に割り当てる。これにより、OS管理領域111の大きさを小さくせずに、SSD用キャッシュ112を取得することが可能となる。
以上の説明では、SSD120を外部記憶装置として用いる場合を例に取り説明したが、外部記憶装置は、他のもの、例えば、ハードディスク装置、CD、DVDであってもよい。これら他の外部記憶装置の場合でも、OSの管理外にキャッシュを設けることによって、OSの影響を受けずにデータを転送でき、処理の体感速度の高速化を図ることが可能となる。
SSD120のキャッシュメモリを利用するための管理用ソフトウエアとして、本実施例では、デバイスドライバを用いたが、その代わりに、ユーティリティソフトウエアを用いることも可能である。
以上、いくつかの実施例に基づいて本発明の実施の形態について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物が含まれることはもちろんである。
10…コンピュータ
100…CPU
110…メモリ
111…OS管理領域
112…キャッシュ
120…SSD
121…コントローラ
122…フラッシュメモリ
123…ブロック
124…ページ
125…バッファメモリ
130…ネットワークインターフェース
140…出力インターフェース
150…入力インターフェース
200…モニタディスプレイ
300…キーボード
310…マウス

Claims (4)

  1. 外部記憶装置の管理用ソフトウエアを用いて前記外部記憶装置へのアクセスを高速化する方法であって、
    (a)コンピュータの起動時に、前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定する工程と、
    (b)前記管理用ソフトウエアが前記外部記憶装置へのデータの書込要求を検知した場合に、該データを前記キャッシュメモリに書込む工程と、
    (c)前記管理用ソフトウエアが、前記キャッシュメモリのデータを前記外部記憶装置に送って格納する工程と、
    を備える、外部記憶装置へのアクセスの高速化方法。
  2. 請求項1に記載の外部記憶装置へのアクセスの高速化方法において、
    前記工程(a)は、
    前記物理メモリの容量が、前記オペレーティングシステムが管理可能な最大容量よりも大きい場合には、前記管理可能な最大容量を超える物理メモリ領域に優先的に前記キャッシュメモリを設定する工程を含む、外部記憶装置へのアクセスの高速化方法。
  3. 請求項2に記載の外部記憶装置へのアクセスの高速化方法において、
    前記工程(a)は、
    前記物理メモリの容量から前記オペレーティングシステムが管理可能な最大容量を引いた差分が、前記キャッシュメモリの容量よりも小さい場合には、前記オペレーティングシステムが管理する物理メモリの容量を前記差分だけ減ずる工程を含む、外部記憶装置へのアクセスの高速化方法。
  4. 外部記憶装置システムであって、
    外部記憶装置と、
    前記外部記憶装置の管理用ソフトウエアと、
    を備え、
    前記管理用ソフトウエアは、
    前記コンピュータが有する物理メモリの一部を、前記外部記憶装置用のキャッシュメモリとして、前記コンピュータのオペレーティングシステムが管理する物理メモリ領域外に、連続した物理メモリ領域として設定し、
    前記外部記憶装置へのデータの書込を検知した場合に、該データを前記キャッシュメモリに書込み、
    前記キャッシュメモリのデータを前記外部記憶装置に送って格納する、
    外部記憶装置システム。
JP2009174023A 2009-07-27 2009-07-27 外部記憶装置へのアクセスを高速化する方法および外部記憶システム Pending JP2011028537A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009174023A JP2011028537A (ja) 2009-07-27 2009-07-27 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
US12/843,749 US8312213B2 (en) 2009-07-27 2010-07-26 Method to speed up access to an external storage device and an external storage system
CN2010102412277A CN101968721B (zh) 2009-07-27 2010-07-27 提高对外部存储装置的访问速度的方法以及外部存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009174023A JP2011028537A (ja) 2009-07-27 2009-07-27 外部記憶装置へのアクセスを高速化する方法および外部記憶システム

Publications (1)

Publication Number Publication Date
JP2011028537A true JP2011028537A (ja) 2011-02-10

Family

ID=43498274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009174023A Pending JP2011028537A (ja) 2009-07-27 2009-07-27 外部記憶装置へのアクセスを高速化する方法および外部記憶システム

Country Status (3)

Country Link
US (1) US8312213B2 (ja)
JP (1) JP2011028537A (ja)
CN (1) CN101968721B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014522023A (ja) * 2011-07-01 2014-08-28 アップル インコーポレイテッド メモリタイプ間でデータを移動させるための技術
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
WO2017056310A1 (ja) * 2015-10-02 2017-04-06 株式会社日立製作所 計算機および計算機の制御方法
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646024B (zh) * 2011-02-17 2015-02-18 纬创资通股份有限公司 多硬盘的读写管理方法与系统、电子装置
US9354989B1 (en) * 2011-10-03 2016-05-31 Netapp, Inc Region based admission/eviction control in hybrid aggregates
US20130111104A1 (en) * 2011-10-31 2013-05-02 Moon J. Kim Asynchronous data shift and backup between asymmetric data sources
CN103176754A (zh) * 2013-04-02 2013-06-26 浪潮电子信息产业股份有限公司 一种海量小文件读取存储方法
CN105630406B (zh) * 2015-05-29 2019-02-01 上海磁宇信息科技有限公司 利用mram作为编辑缓存区的存储系统及编辑缓存方法
EP3156461B1 (en) * 2015-10-13 2020-04-01 Agfa Nv Uv curable inkjet inks
US11061585B1 (en) * 2017-10-19 2021-07-13 EMC IP Holding Company, LLC Integration of NVMe device with DRAM cache system and method
US10521137B1 (en) 2017-10-31 2019-12-31 EMC IP Holding Company LLC Storage device array integration of dual-port NVMe device with DRAM cache and hostside portion of software stack system and method

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0836527A (ja) * 1994-07-26 1996-02-06 Sony Corp 画像記録/再生装置
JPH08328944A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリ管理方式
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2000259499A (ja) * 1999-03-03 2000-09-22 Isei Denshi Kofun Yugenkoshi 分散式キャッシュメモリーのマッピング方法
JP2003010163A (ja) * 2001-01-31 2003-01-14 General Electric Co <Ge> 検出器フレーミングノードを含む撮像システム
JP2003223334A (ja) * 2003-01-14 2003-08-08 Elmic Systems Inc 割込処理方法、os支援システム、情報処理装置、記録媒体
JP2003330794A (ja) * 2002-05-14 2003-11-21 Hitachi Ltd ネットワークデータのキャッシュ方法およびシステム
JP2004126844A (ja) * 2002-10-01 2004-04-22 Turf Media System:Kk キャッシュメモリー制御機能付きサーバコンピュータ装置
JP2005038591A (ja) * 2003-07-02 2005-02-10 Ricoh Co Ltd 情報記録装置と情報記録方法とプログラム
JP2005293837A (ja) * 2005-05-11 2005-10-20 Ricoh Co Ltd ドライブ装置、ドライブ装置用プログラム、記憶媒体及びドライブ方法
JP2008282428A (ja) * 2008-08-11 2008-11-20 Murata Mach Ltd コンテンツデータ提供装置およびネットワークシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289581A (en) * 1990-06-29 1994-02-22 Leo Berenguel Disk driver with lookahead cache
JP3612271B2 (ja) * 2000-09-12 2005-01-19 株式会社東芝 ファイルシステム
KR101413736B1 (ko) 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0836527A (ja) * 1994-07-26 1996-02-06 Sony Corp 画像記録/再生装置
JPH08328944A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリ管理方式
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2000259499A (ja) * 1999-03-03 2000-09-22 Isei Denshi Kofun Yugenkoshi 分散式キャッシュメモリーのマッピング方法
JP2003010163A (ja) * 2001-01-31 2003-01-14 General Electric Co <Ge> 検出器フレーミングノードを含む撮像システム
JP2003330794A (ja) * 2002-05-14 2003-11-21 Hitachi Ltd ネットワークデータのキャッシュ方法およびシステム
JP2004126844A (ja) * 2002-10-01 2004-04-22 Turf Media System:Kk キャッシュメモリー制御機能付きサーバコンピュータ装置
JP2003223334A (ja) * 2003-01-14 2003-08-08 Elmic Systems Inc 割込処理方法、os支援システム、情報処理装置、記録媒体
JP2005038591A (ja) * 2003-07-02 2005-02-10 Ricoh Co Ltd 情報記録装置と情報記録方法とプログラム
JP2005293837A (ja) * 2005-05-11 2005-10-20 Ricoh Co Ltd ドライブ装置、ドライブ装置用プログラム、記憶媒体及びドライブ方法
JP2008282428A (ja) * 2008-08-11 2008-11-20 Murata Mach Ltd コンテンツデータ提供装置およびネットワークシステム

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US11907538B2 (en) 2008-02-28 2024-02-20 Memory Technologies Llc Extended utilization area for a memory device
US11829601B2 (en) 2008-02-28 2023-11-28 Memory Technologies Llc Extended utilization area for a memory device
US11550476B2 (en) 2008-02-28 2023-01-10 Memory Technologies Llc Extended utilization area for a memory device
US11494080B2 (en) 2008-02-28 2022-11-08 Memory Technologies Llc Extended utilization area for a memory device
US11182079B2 (en) 2008-02-28 2021-11-23 Memory Technologies Llc Extended utilization area for a memory device
US11775173B2 (en) 2009-06-04 2023-10-03 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11733869B2 (en) 2009-06-04 2023-08-22 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
JP2014522023A (ja) * 2011-07-01 2014-08-28 アップル インコーポレイテッド メモリタイプ間でデータを移動させるための技術
US9195581B2 (en) 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
US11797180B2 (en) 2012-01-26 2023-10-24 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11782647B2 (en) 2012-04-20 2023-10-10 Memory Technologies Llc Managing operational state data in memory module
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
US10496444B2 (en) 2015-10-02 2019-12-03 Hitachi, Ltd. Computer and control method for computer
WO2017056310A1 (ja) * 2015-10-02 2017-04-06 株式会社日立製作所 計算機および計算機の制御方法

Also Published As

Publication number Publication date
US8312213B2 (en) 2012-11-13
US20110022799A1 (en) 2011-01-27
CN101968721A (zh) 2011-02-09
CN101968721B (zh) 2013-11-27

Similar Documents

Publication Publication Date Title
JP2011028537A (ja) 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
US9928167B2 (en) Information processing system and nonvolatile storage unit
KR102291803B1 (ko) 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
US8521949B2 (en) Data deleting method and apparatus
KR102094393B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
US9304911B2 (en) Semiconductor storage device and buffer operation method thereof
KR20200076946A (ko) 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치
JP4886866B2 (ja) 主記憶装置へのアクセスを高速化する方法および記憶装置システム
US9684625B2 (en) Asynchronously prefetching sharable memory pages
US20160132270A1 (en) Information processing device, information procesing method, and program
US8850148B2 (en) Data copy management for faster reads
US9983826B2 (en) Data storage device deferred secure delete
JP2015079511A (ja) システムとモバイルコンピューティング装置
US9734057B2 (en) Semiconductor storage device and buffer operation method thereof
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US10073851B2 (en) Fast new file creation cache
TWI756854B (zh) 管理資料儲存的方法及裝置以及電腦程式產品
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
JP2011186558A (ja) メモリ管理装置及び方法
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法
JP2010003150A (ja) メモリコントローラおよびフラッシュメモリのデータ管理方法
JP6417695B2 (ja) 情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
KR101618999B1 (ko) 네트워크 부트 시스템
US20230076365A1 (en) Fast lba/pba table rebuild

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101130

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20101210

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110419