JP2010541107A - ソリッドステートドライブオプティマイザ - Google Patents

ソリッドステートドライブオプティマイザ Download PDF

Info

Publication number
JP2010541107A
JP2010541107A JP2010528181A JP2010528181A JP2010541107A JP 2010541107 A JP2010541107 A JP 2010541107A JP 2010528181 A JP2010528181 A JP 2010528181A JP 2010528181 A JP2010528181 A JP 2010528181A JP 2010541107 A JP2010541107 A JP 2010541107A
Authority
JP
Japan
Prior art keywords
ssd
fragment
free space
threshold
fragment size
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
JP2010528181A
Other languages
English (en)
Other versions
JP2010541107A5 (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.)
Diskeeper Corp
Original Assignee
Diskeeper Corp
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 Diskeeper Corp filed Critical Diskeeper Corp
Publication of JP2010541107A publication Critical patent/JP2010541107A/ja
Publication of JP2010541107A5 publication Critical patent/JP2010541107A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

ソリッドステートドライブを最適化する方法が説明される。この方法は、SSD上の空き領域断片がしきい値断片サイズよりも小さいかどうかを決定するステップを伴う。SSD上の空き領域断片がしきい値断片サイズよりも小さい場合、空き領域断片を除去する。SSD上の空き領域断片がしきい値断片サイズよりも小さくない場合、データを記憶するために空き領域断片を保持する。しきい値断片サイズよりも小さい空き領域断片の除去により、SSDへの書込時に用いられる空き領域断片の数が減少されて、SSD性能を向上させることが可能になる。

Description

(優先権の主張)
この出願は、2007年10月5日に出願された米国仮特許出願連続番号第60/978,086号および2008年10月3日に出願された米国通常出願特許出願連続番号第12/244,771号の優先権を主張する。
(引用による援用)
この出願は、2006年10月10日に出願された米国特許出願連続番号第11/546,072号、2006年10月10日に出願された米国特許出願連続番号第11/546,514号および2006年6月19日日に出願された米国特許出願連続番号第11/471,466号をこの明細書中に引用により援用する。
(発明の分野)
この発明は、概して、ソリッドステートドライブに関する。より具体的には、この発明は、ソリッドステートドライブを最適化することに関する。
(背景)
この節に説明されるアプローチは、遂行され得るアプローチであるが、以前に着想または遂行されたアプローチであるとは限らない。したがって、特に明記しない限り、この節に説明されるアプローチのいずれも、単にこの節に含まれるからといって先行技術と見なされるとみなされるべきでない。
ソリッドステートドライブ(SSD)は、ソリッドステートディスクと称されることもあり、揮発性または不揮発性ソリッドステートメモリを用いてデータを記憶する記憶装置である。ソリッドステートメモリは、半導体ベースの電子部品で構成される。ソリッドステートドライブは、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、パラメータランダムアクセスメモリ(PRAM)、フラッシュメモリ(たとえばNORフラッシュメモリやNANDフラッシュメモリ)、または相変化メモリ(PCM)が含まれるがこれに限定されない異なる種類のメモリ要素を含んでもよい。
SSDには可動部分がないため、SSDは、機械的不良の危険性が相当低減されている。機械的不良の減少は、システムの信頼性の向上をもたらす。さらに、可動部分がないことにより、SSDは、標準的な回転媒体ハードドライブと比較してより短い読出および書込シーク時間を提供する。したがって、SSDは、より高速な、シーケンシャルおよびランダムなデータ読出および書込レートを可能にする。
SSDに可動部分はないものの、それにもかかわらず、装置の限界およびおそらくは空き領域断片による性能問題が存在する。たとえば、性能に基づいた限界は、所与の時間内にSSDが行なうことのできる書込オペレーションの数の限界であることがある。SSDが多数の小さな空き領域断片に書込んでいるとき、ファイルは、SSDへの記憶のために多くの異なる部分に断片化されなくてはならない。各空き領域断片への書込は、消去オペレーションを必要とすることがあるとともに、書込オペレーションを必要とし、そして、SSDが行なうことのできる書込オペレーションの数には限界があり得るため、多数の小さな空き領域断片は、書込操作の数の限界によりSSDの最大シーケンシャル書込速度を利用できないことを引起こすことがある。
コンピュータの通常使用において、Windows(登録商標)(Windows(登録商標)は、ワシントン州シアトルのマイクロソフトコーポレイションの登録商標である)などの現在のオペレーションシステムは、多数の空き領域断片を作成する。たとえば、インターネットの閲覧は、多くの不要な空き領域断片を作成する可能性があり得る。ウェブブラウザは、使用されるときに、多くの一時ファイルを作成する。一時ファイルのほとんどは、小さく、寿命が短く、たとえばブラウザキャッシュクリーンアップ中などに頻繁に削除される。しかしながら、すべての一時ファイルが同時にまたはそれらの作成された順に削除されるわけではない。この現象は、空き領域断片の作成を加速させる。
さらに、新規作成されたファイルのディスクへの記憶中、ファイルシステムは、一般的に、新規作成されたファイルを(a)最も直近に空いた空き領域断片か(b)最初に識別された空き領域断片かのいずれかに、その空き領域断片のサイズを考慮することなく書込み始める。書込まれるべきファイルが大きく、識別された空き領域断片が小さい場合、ファイルは、識別された空き領域断片に応じて多くの断片に分割され、ファイルをディスクに記憶するのに多数の書込オペレーションが必要とされる。実際のファイルを記憶するのに必要な書込オペレーションに加えて、ファイルが多数の断片に記憶されるときファイルシステム構造を更新するために多数の書込オペレーションも必要とされることがある。
この発明は、添付の図面の図中に限定的ではなく例示的に示される。図中、同様の参照番号は、同様の要素を指す。
ある実施例に従ったソリッドステートドライブおよびソリッドステートドライブオプティマイザを説明するブロック図である。 ソリッドステートドライブを最適化するためのある実施例を説明するフロー図である。 この発明のある実施例を実装する際に用いられてもよいコンピュータシステムを説明するブロック図である。
(詳細な説明)
以下の説明では、説明のために、多数の特定的な詳細が記載されて、この発明の完全な理解を与える。しかしながら、この発明はこういった特定的な詳細なしに実施されてもよいことが明らかであるだろう。他の例において、この発明を不必要に不明瞭にすることを避けるために、周知の構造および装置は、ブロック図形式で示されている。
互いに独立してまたは他の特徴との任意の組合せで各々用いられ得るいくつかの特徴を以下に説明する。しかしながら、個別の特徴は、上述の問題のいずれにも対処しないかもしれず、または上述の問題のうち1つのみに対処するかもしれない。上述の問題の中には、この明細書中で説明される特徴のいずれによっても十分に対処されないものがあるかもしれない。また、見出しが設けられてはいるものの、ある特定の見出しに関連するがその見出しが付いた節中に見つからない情報が、明細書中の他の場所に見つかることもある。
(概要)
ソリッドステートドライブ(SSD)の最適化方法が提供される。SSDへのファイル書込みは、書込まれている空き領域断片がそのファイル全体には小さすぎる場合、多数の消去および書込オペレーションを必要とすることがある。たとえば、ファイルが書込まれているSSDにある各空き領域断片がそのファイルのサイズよりも大幅に小さい場合、このファイルは、多数の断片に分割されることがあり、ファイル全体がSSDに書込まれるまで、各空き領域断片に対して書込オペレーションが必要とされることがある。したがって、この発明は、小さな空き領域断片が書込性能に影響を与えないように、この空き領域断片をデータで埋めることにより、または、この空き領域断片を大型化することにより、小さな空き領域断片を除去することで、SSDを最適化する。これは、オペレーティングシステムにファイルを順次または少なくともより少ない空き領域断片に書込ませ、これにより最高書込性能が得られる。
ある実施例に従って、空き領域断片を除去するか、または空き領域断片をデータ記憶のためにSSDに保持するかを決定するための基準として、しきい値断片サイズが用いられる。空き領域断片のサイズは、しきい値断片サイズと比較される。空き領域断片がしきい値断片サイズよりも小さい場合、空き領域断片は、SSDが空き領域断片を用いてファイルの断片を書込まないように除去される。空き領域断片がしきい値断片サイズと少なくとも同じ大きさの場合、空き領域断片は、SSDによるデータ記憶のために保持される。しきい値断片サイズよりも小さい空き領域断片を除去すると、ファイルがより大きな空き領域断片に書込まれることになり、したがってファイルを書込むために必要な空き領域断片の数が減り、必要な書込オペレーションの数が減る。時間当たりの書込オペレーションの数を、SSDで実際に行なうことができる書込オペレーションの数以下まで減らすことによって、SSDの性能が向上する。SSDの向上した性能は、行なうことができる書込オペレーションの数によって制限されない。なぜなら、最適化されたSSDに必要な書込オペレーションの数は、行なうことができる書込オペレーションの数よりも少ないためである。ある実施例において、しきい値断片サイズは、少なくともSSDのシーケンシャル書込速度とSSD上で時間当たり可能な入出力(I/O)オペレーションの数とに基づいて決定される。たとえば、しきい値断片サイズは、少なくとも部分的に、SSDのシーケンシャル書込速度をSSDの1秒当りのI/Oで除算することによって決定されてもよい。
ある実施例において、いくつかの異なるしきい値断片サイズがファイル書込時にテストされてもよく、最適性能に対応するしきい値断片サイズが用いられてもよい。しきい値断片サイズの最適化は、周期的に、または、SSDによる低性能レベルもしくは予め定められた数の空き領域断片の発生のような予め定められた条件に基づいて、行なわれてもよい。
特定の構成要素がこの明細書中において方法ステップを行なうものとして記載されるが、他の実施例において、この特定された構成要素のために働くエージェントまたは機構が方法ステップを行なってもよい。さらに、この発明は、単一のシステム上の構成要素に関して論じられるが、この発明は、複数のシステムにわたって分配された構成要素で実現化されてもよい。加えて、この発明は、ソリッドステートドライブ(SSD)に関して論じられるが、この発明の実施例は、任意のメモリドライブ(たとえば回転ディスクドライブ)に適用することができる。
この発明の実施例は、この明細書中で説明される方法ステップを行なうための手段を含む任意のシステムも含む。この発明の実施例は、命令を備えたコンピュータ読取可能媒体も含み、この命令は、実行されると、この明細書中に説明される方法ステップを行なわせる。
(空き領域断片除去)
ファイルシステムレベルで参照される空き領域断片は、データを含んでいるものとは参照されないものであって、割当てに利用可能な、メモリブロックまたは記憶領域である。空き領域断片は、メモリに記憶されたオブジェクトがたとえばメモリ空間への参照を取除くことによって削除されるときに生成されることがある。オブジェクトは、オブジェクトが作成されたのと同じ順には削除されないことがあるので、削除されたオブジェクトに対応する空き領域断片がデータが記憶され参照されるメモリブロック間に作成される。各空き領域断片への書込は、消去オペレーションを必要とすることがあり、書込オペレーションを必要とする。したがって、空き領域断片がファイルを保持するには小さすぎる場合、ファイルは、断片化され、多くの異なる空き領域断片に書込まれなければならない。空き領域断片が小さいほど、ファイルを書込むのにいっそうの断片化が必要になる。ドライブが時間当たり行うことができる書込オペレーションの数には限界があるので、多数の小さな空き領域断片は、高レベルのファイル断片化を必要とし、ドライブの最大シーケンシャル書込速度の利用を妨げることがある。したがって、この発明のある実施例において、指定されたしきい値断片サイズよりも小さい空き領域断片は、除去される。空き領域断片の除去により、ファイルシステムによって書込まれる空き領域断片の数が減少する。
空き領域断片の除去は、空き領域断片を別のファイルの少なくとも一部で埋めることを伴ってもよい。たとえば、ディスクの終わり頃のファイル、ほとんど使用されないファイル、または仮のフィラーファイルが用いられて、空き領域断片を埋めてもよい。空き領域断片を別のファイルの少なくとも一部を記憶することによって埋めることにより、SSD性能に影響を与える可能性があり得る空き領域断片が除去される。空き領域断片の除去は、マージされた空き領域断片が少なくともしきい値断片サイズと同じ大きさであるよう、空き領域断片を1つ以上の隣接する空き領域断片とマージすることも伴ってもよい。ある実施例において、空き領域断片は、空き領域断片を除去するのに必要なリソースがアイドル基準に準拠した後に除去される。たとえば、リソースの利用が予め定められた割合を下回る場合、アイドル基準は満たされてもよい。別の例において、予め定められた低い使用頻度がアイドル基準を満たす場合に、アイドル基準は、リソース使用頻度を含んでもよい。アイドル基準およびリソースに基づいたスケジューリングのより詳細な説明は、この明細書中に引用により援用される2006年10月10日に出願された米国特許出願連続番号第11/546,514号に説明されている。
(システムアーキテクチャ)
特定のコンピュータアーキテクチャがこの明細書中に説明されるものの、この発明の他の実施例は、しきい値断片サイズに基づいてソリッドステートドライブ(SSD)を最適化するために用いることができる任意のアーキテクチャに適用可能である。
図1には、この発明の1つ以上の実施例に従ったSSD(100)およびSSDオプティマイザ(125)が示されている。図1に示されるように、SSD(100)は、インターフェイス(105)と、メモリコントローラ(110)と、ソリッドステートメモリ(115)とを含む。
(インターフェイス)
インターフェイス(105)は、一般的に、データをSSD(100)とやり取りする(たとえばデータを記憶するまたはデータを取得する)ために用いることができる任意の接続を表わす。たとえば、インターフェイス(105)は、SSD(100)とデータ転送のためのマザーボードとの間の接続であってもよい。インターフェイス(105)は、データワードを並列にまたはビットシリアル形式で搬送してもよい。インターフェイス(105)の例には、アドバンスドテクノロジーアタッチメント(ATA)(たとえばシリアルアドバンスドテクノロジーアタッチメント(SATA)およびパラレルアドバンスドテクノロジーアタッチメント(PATA))またはインテリジェントドライブエレクトロニクス(IDE)またはスモールコンピュータシステムインターフェイス(SCSI)が含まれるが、これに限定されない。インターフェイス(105)は、外部構成要素がソリッドステートメモリ(115)に直接アクセスするまたはメモリコントローラ(110)を用いるコマンドを介してソリッドステートメモリ(115)に間接的にアクセスすることを可能にしてもよい。
(メモリコントローラ)
1つ以上の実施例において、メモリコントローラ(110)は、一般的に、ソリッドステートメモリ(115)に出入りするデータの流れを管理するロジックを含む構成要素を表わす。メモリコントローラ(110)は、SSD(110)自体にあるものとして示されているものの、メモリコントローラ(110)は、ある実施例に従って別の構成要素上にあってもよい。メモリコントローラ(110)は、メモリコントローラ(110)をソリッドステートメモリ(115)に接続するために必要な配線の数または複雑性を減少させるために、一式のマルチプレクサおよびデマルチプレクサ、または、予め定義されたプロトコル(ATA)を介してソリッドステートメモリ(115)に接続されてもよい。
ある実施例において、メモリコントローラ(110)は、ソリッドステートメモリ(115)のどこにデータが記憶されるかを制御していてもよい。たとえば、メモリコントローラ(110)は、ソリッドステートメモリ(115)のどの部分がデータ記憶に利用可能であり、ソリッドステートメモリ(115)のどの部分がデータ記憶に利用可能でないかを決定するロジックを含んでもよい。
メモリコントローラ(110)は、データブロックを書込む、取得する、または削除するコマンドを、SSDに接続された装置上で実行されているファイルシステムを通して1つ以上のアプリケーションから受けてもよい。メモリコントローラ(110)は、コマンドを、ファイルシステムまたはオペレーティングシステムを通して、SSD(100)に接続されたものとして示されるソリッドステートドライブオプティマイザ(125)からも受けてもよい。
(ソリッドステートメモリ)
1つ以上の実施例において、ソリッドステートメモリ(115)は、一般的に、デジタルデータを保持するロジックを含むデータ記憶コンポーネントを表わす。ソリッドステートメモリ(115)は、ロジックとハードウェアとを含んでデジタルデータを保持する半導体装置を含む。たとえば、ソリッドステートメモリ(115)は、ビットを相変化RAM、シングルレベルセル(SLC)またはマルチレベルセル(MLC)に記憶してもよい。上述のしきい値断片サイズ(120)は、ビットがソリッドステートメモリ(115)内のSLCに記憶されたのかまたはMLCに記憶されたのかに基づいて、異なって演算されてもよい。さらに、しきい値断片サイズ(120)も、マルチレベルセル中のレベルの数に基づいて異なって演算されてもよい。ソリッドステートメモリ(115)は、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、パラメータランダムアクセスメモリ(PRAM)、フラッシュメモリ(たとえばNORフラッシュメモリおよびNANDフラッシュメモリ)、相変化メモリ(PCM)または別の種類の適切なメモリとして実装されてもよい。
(ソリッドステートドライブオプティマイザ)
1つ以上の実施例において、ソリッドステートドライブオプティマイザ(125)は、一般的に、SSD性能を向上させるためにSSD(100)を最適化するために用いられるソフトウェアおよび/またはハードウェアを表わす。たとえば、SSDオプティマイザ(125)は、SSD(100)に接続された装置上で実行されているソフトウェアアプリケーションに対応してもよい。コンピュータシステムにおいて、ソリッドステートオプティマイザ(125)は、データをSSD(100)に記憶する他のアプリケーションと同時に実行されるアプリケーションであってもよい。別の例において、SSDオプティマイザ(125)は、SSD(100)を最適化するために組み込まれたロジックを備えた装置に対応してもよい。図1においてSSD(100)に接続されたものとして示されているものの、SSDオプティマイザ(125)は、この発明のある実施例に従って、SSD(100)自体にあるソフトウェアおよび/またはコンポーネントにも対応してもよい。
SSDオプティマイザ(125)は、しきい値断片サイズ(120)よりも小さい空き領域断片を除去して、オペレーティングシステムにデータまたはファイルをシーケンシャルに書込ませることによって上述のようにSSD(100)を最適化するロジックを含む。SSDオプティマイザ(125)は、ユーザによって起動されてもよく、周期的に起動されてもよく、または予め定められた条件(たとえば、SSD(100)の予め定められた断片化レベルまたはSSD(100)の低性能レベル)に基づいて起動されてもよい。SSDオプティマイザ(125)は、低リソース使用によっても起動されてもよい。たとえば、SSD(100)を最適化する際SSDオプティマイザ(125)によって用いられるリソース(たとえばプロセッサ)の現在利用レベルが低い場合、SSDオプティマイザ(125)が起動されてもよい。ある実施例において、SSDオプティマイザ(125)の起動のために複数の条件が組合せて必要とされてもよい(たとえばSSD(100)の低性能レベルおよびリソースの低現在利用レベル)。
ある実施例において、SSDオプティマイザ(125)は、コンピュータマイクロジョブとして行なわれる任意のタスクをスケジュールするロジックを含んでもよい。コンピュータマイクロジョブは、この明細書中に引用により援用される2006年6月19日に出願された米国特許出願連続番号第11/471,466号および2006年10月10日に出願された米国特許出願連続番号第11/546,072号に説明されている。したがって、SSDオプティマイザ(125)によって行なわれてSSD(100)を最適化するタスクは、異なるコンピュータマイクロジョブとして時間の経過とともに行なわれてもよい。
(しきい値断片サイズ)
1つ以上の実施例において、SSDオプティマイザ(125)に記憶されたものとして示されるしきい値断片サイズ(120)は、上述のタスクを行なう際にSSDオプティマイザ(125)によって用いられる特定の空き領域断片サイズに対応する。具体的には、しきい値断片サイズ(120)よりも小さい空き領域断片は、SSDオプティマイザ(125)によって除去され、しきい値断片サイズ(120)以上の大きさの空き領域断片は、SSDオプティマイザ(125)によるデータ記憶のために保持される。しきい値断片サイズ(120)よりも小さい空き領域断片を除去する際のしきい値断片サイズ(120)の使用により、ファイルシステムは、ファイルを単一の空き領域断片または多数の空き領域断片にSSDの1秒当りのメモリ書込IO(IOPS)の限界内でシーケンシャルに書込まざるをえなくなってもよく、これは、SSDの1秒当りの書込IOに基づいたSSD性能に影響を与えない。
SSDオプティマイザ(125)に記憶されたものとして示されているものの、しきい値断片サイズ(120)は、任意のコンポーネント(たとえばSSDオプティマイザ(125)、SSD(100)、または別の適切な装置)によって維持されてもよい。しきい値断片サイズは、変数としてソフトウェアアプリケーション(たとえばSSDオプティマイザ)によって維持されてもよく、または装置に物理的に組込まれていてもよい。たとえば、しきい値断片サイズは、SSD(100)に、SSDオプティマイザが装置として実装されている場合はSSDオプティマイザ(125)に、SSDオプティマイザがシステム上で実行されるソフトウェアアプリケーションとして実装されている場合はSSDオプティマイザ(125)を実行するシステムに、または別の適切な装置に物理的に組込まれていてもよい。しきい値断片サイズ(120)も、ユーザが制御することができる設定エリアから取得されてもよい(120)。
ある実施例において、しきい値断片サイズ(120)は、SSDオプティマイザ(125)、メモリコントローラ(110)、ユーザ、または別の適切なエンティティによって演算される。ある実施例において、しきい値断片サイズ(120)は、シーケンシャル書込速度またはSSD(100)が時間当たり行なうことができる書込オペレーションの数に基づいて演算されてもよい。しきい値断片サイズを演算するステップのうち1つは、シーケンシャル書込速度を所与の時間内にSSDが行なうことのできる書込オペレーションの数で除算することを伴ってもよい。たとえば、シーケンシャル書込速度が40MB/秒であり、SSD(100)が行なうことのできる書込オペレーションの数が10/秒である場合、しきい値断片サイズは、40を10で除算することによって4MBに等しいと演算される。したがって、しきい値断片サイズは、4MBと設定されてもよい。さらに、しきい値断片サイズの演算は、追加の計算(たとえば定数3または4での乗算の結果12MBまたは16MBとなる)も伴って、実際の性能と理論上の性能または速度との間の違いを考慮してもよい。
SSDについてのしきい値断片サイズ(120)は、動的に決定されてもよく、またはSSDオプティマイザ(125)によって用いられる静的な値であってもよい。たとえば、物理的に組込まれたしきい値断片サイズ(120)は、SSD(100)を最適化するために永久的に用いられてもよい。これに代えて、SSD(100)が最適化されるたびにまたは周期的に、しきい値断片サイズ(120)は、再演算されるまたは取得されてもよい。
ある実施例において、異なるしきい値断片サイズが用いられて、最適性能を決定してもよい。たとえば、SSD(100)にある空き領域断片を除去することによってSSD(100)を最適化するために、しきい値断片サイズのさまざまな値が用いられてもよい。その後、性能は、SSD(100)の最適化後のある時間について測定されてもよい。最適化後の最高性能をもたらすしきい値断片サイズは、しきい値断片サイズ(120)として設定されてもよい。
1つの実施例において、一旦しきい値断片サイズ(120)が設定されると、しきい値断片サイズ(120)の再テストが、周期的に行なわれてもよい。再テスト中、しきい値断片サイズ(120)よりも高い値およびしきい値断片サイズよりも低い値が、SSD(100)の最適化のために一時的に用いられてもよい。より高いおよび/またはより低いしきい値断片サイズを用いた後、SSD(100)の後続の性能が評価されて、しきい値断片サイズ(120)が増大されるべきか、減少されるべきか、または修正なしに保持されるべきかを決定してもよい。
(ソリッドステートドライブの最適化)
図2には、1つ以上の実施例に従った、しきい値断片サイズを用いてソリッドステートドライブ(SSD)を最適化するためのフローチャートが示されている。以下に説明されるステップのうち1つ以上は、省略して、繰返して、および/または異なる順序で行なわれてもよい。したがって、図2に示されるステップの特定の配置は、この発明の範囲を限定するものであると解釈されるべきでない。
ある実施例において、リソース利用可能性チェックは、以下に説明される、ソリッドステートドライブを最適化するステップのうち1つ以上に先行してもよい。リソース利用可能性チェックを行って、ステップを行なうのに必要なリソースが、上述のようにアイドル基準を満たすために利用可能であることを確実にしてもよい。さらに、以下に説明されるステップのうち1つ以上を、コンピュータマイクロジョブとしてスケジュールしてもよい。
まず、SSDを最適化するかどうかについて決定する(ステップ202)。SSDを最適化する決定は、1つ以上の条件に基づいていてもよい。たとえばSSDを最適化する決定は、低SSD性能の発生、予め定められたレベルの断片化の発生(たとえば多数の空き領域断片、しきい値断片サイズよりも小さな空き領域断片の数など)、リソース利用可能性、時間ベースのスケジューラ(たとえば周期的最適化)、ファイル断片化レベル、または任意の他の適切な基準に基づいていてもよい。SSDオプティマイザは、ファイルが断片化されすぎた場合、ファイルをデフラグもしてもよく、これによりファイルアクセスがより効率的かつ信頼性のあるものになる。
次にSSDを検索して、空き領域断片を除去候補として識別する(ステップ204)。空き領域を検索するステップは、ファイルシステムまたはオペレーティングシステムAPIを検索するステップ、または、ファイルシステムによって参照されていないもしくは割当てに利用可能な記憶ブロック場所として索引付けられた記憶アドレスを検索するステップを伴ってもよい。ファイルシステムを、順番に、記憶割当て解除の順に、または任意の他の適切な順に検索してもよい。ある実施例において、最も小さな空き領域断片が最初に除去されるように、空き領域断片を最小のものから最大のものへの順に除去候補として識別してもよい。
次に、除去候補として識別された空き領域断片がしきい値断片サイズよりも小さいかどうかを決定する(ステップ206)。識別された空き領域断片がしきい値断片サイズよりも小さくない場合、識別された空き領域断片は、ファイルを書込むのに適しており、したがって、識別された空き領域断片は、書込のために保持される。しかしながら、空き領域断片がしきい値断片サイズよりも小さい場合、識別された空き領域断片は、データ記憶に不適切であり、したがって、上述のように除去される(ステップ208)。識別された空き領域断片を、マージされた空き領域断片を作成するために空き領域断片を1つ以上の隣接する空き領域断片とマージするステップによっても除去してもよく、マージされた空き領域断片は、少なくともしきい値断片サイズと同じ大きさである。
次に、SSDの最適化を続けるかどうかを決定する(ステップ210)。すべてのSSDがしきい値断片サイズよりも小さい空き領域断片について検索されるまで最適化を続けるように決定してもよい。別の例において、SSDを、リソースが高度に利用可能である限り(たとえば、オフピーク時の間)最適化してもよい。SSDを、一定の時間がSSDの最適化に充てられているタイマに基づいても最適化してもよい。
上記のステップは、しきい値断片サイズよりも小さい各空き領域断片を除去するための順番で説明されたが、この発明の実施例は、上述のタスクを行なう任意の適切な態様を含む。たとえば、すべての空き領域断片をまず除去候補として識別してもよい。その後、識別した空き領域断片の各々を、しきい値断片と比較し、しきい値断片サイズよりも小さい場合、除去してもよい。
(ハードウェア概要)
図3は、こコンピュータシステム300を説明するブロック図であり、このシステム上でこの発明のある実施例が実装されてもよい。コンピュータシステム300は、情報を通信するためのバス302または他の通信機構と、バス302と結合されて情報を処理するためのプロセッサ304とを含む。コンピュータシステム300は、バス302に結合され情報およびプロセッサ304によって実行されるべき命令を記憶するための、ランダムアクセスメモリ(RAM)または他の動的な記憶装置などのメインメモリ306も含む。メインメモリ306は、プロセッサ304によって実行されるべき命令の実行中に一時的変数または他の中間情報を記憶するためにも用いられてもよい。コンピュータシステム300は、さらに、バス302に結合され静的な情報およびプロセッサ304に対する命令を記憶するための読出専用メモリ(ROM)308または他の静的な記憶装置を含む。磁気ディスクまたは光ディスクなどの記憶装置310は、情報および命令を記憶するために設けられ、バス302と結合されている。
コンピュータシステム300は、情報をコンピュータユーザに表示するために、バス302を介してブラウン管(CRT)などの表示部312に結合されていてもよい。英数字および他のキーを含めて、入力装置314は、情報およびコマンド選択をプロセッサ304に通信するためにバス302に結合されている。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ304に通信するためおよび表示部312上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御部316である。この入力装置は、典型的に、第1の軸(たとえばx)と第2の軸(たとえばy)との2つの軸における2つの自由度を有し、これは、装置が平面で位置を指定することを可能にする。
この発明は、この明細書中に説明された手法を実装するためのコンピュータシステム300の使用に関する。この発明の1つの実施例に従って、そういった手法は、コンピュータシステム300によってメインメモリ306に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ304に応答して行なわれる。そのような命令は、記憶装置310などの別の機械読取可能な媒体からメインメモリ306に読込まれてもよい。メインメモリ306に含まれる命令のシーケンスの実行は、プロセッサ304にこの明細書中に説明された処理ステップを行なわせる。代替的な実施例において、物理的に組込まれている回路構成をソフトウェア命令に代えてまたはソフトウェア命令と組合せて用いて、この発明を実現化してもよい。よって、この発明の実施例は、ハードウェア回路構成およびソフトウェアのどのような特定の組合せにも限定されない。
この明細書中で用いられる用語「機械読取可能な媒体」は、機械を特定の様態で動作させるデータを提供することに関与する任意の媒体を指す。コンピュータシステム300を用いて実装されるある実施例において、さまざまな機械読取可能な媒体がたとえば、実行のためにプロセッサ304に命令を与えることに関与する。そのような媒体は、記憶媒体および伝送媒体を含めて多くの形態を取ることがあるが、これに限定されない。記憶媒体には、不揮発性媒体と揮発性媒体との両方が含まれる。不揮発性媒体には、たとえば、記憶装置310のような光ディスクまたは磁気ディスクが含まれる。揮発性媒体には、メインメモリ306のような動的メモリが含まれる。伝送媒体には、バス302を含むワイヤを含めて、同軸ケーブル、銅線および光ファイバが含まれる。伝送媒体は、電波および赤外線データ通信中に生じるものなど音波または光波の形態も取り得る。そのような媒体はすべて、この媒体によって担持される命令が命令を機械に読込む物理メカニズムによって検出されることを可能にするように、有形なものでなくてはならない。
機械読取可能な媒体の一般的な形態には、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを備えた任意の他の物理媒体、RAM、PROM、およびEPROM、フラッシュEPROM、任意の他のメモリチップもしくはカートリッジ、以下に説明されるような搬送波、またはそこからコンピュータが読込むことができる任意の他の媒体が含まれる。
さまざまな形態の機械読取可能な媒体が1つ以上の命令の1つ以上のシーケンスを実行のためにプロセッサ304に搬送することに関与してもよい。たとえば、命令は、初めリモートコンピュータの磁気ディスクで担持されてもよい。リモートコンピュータは、その動的メモリに命令をロードし、命令をモデムを用いて電話線で送信することができる。コンピュータシステム300にローカルなモデムは、電話線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で搬送されたデータを受信することができ、適切な回路構成は、データをバス302に乗せることができる。バス302は、データをメインメモリ306に搬送し、そこからプロセッサ304は、命令を取得して実行する。メインメモリ306によって受取られた命令は、任意選択的に、プロセッサ304による実行前か実行後かのいずれかに記憶装置310に記憶されてもよい。
コンピュータシステム300は、バス302に結合された通信インターフェイス318も含む。通信インターフェイス318は、ローカルネットワーク322に接続されたネットワークリンク320に双方向データ通信結合を提供する。たとえば、通信インターフェイス318は、統合サービスデジタル網(ISDN)カードまたはモデムであって、データ通信接続を対応する種類の電話線に提供してもよい。別の例として、通信インターフェイス318は、ローカルエリアネットワーク(LAN)カードであって、データ通信接続を互換性のあるLANに提供してもよい。無線リンクも実装されてもよい。そのような実装例のいずれにおいても、通信インターフェイス318は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気、電磁または光学信号を送受信する。
ネットワークリンク320は、典型的に、データ通信を1つ以上のネットワークを通して他のデータ装置に提供する。たとえば、ネットワークリンク320は、ローカルネットワーク322を通してホストコンピュータ324とのまたはインターネットサービスプロバイダ(ISP)326によって操作されるデータ機器との接続を提供してもよい。次にISP326は、現在一般的に「インターネット」328と称される広域パケットデータ通信網を通じてデータ通信サービスを提供する。ローカルネットワーク322とインターネット328とは両方ともデジタルデータストリームを搬送する電気、電磁または光学信号を用いる。コンピュータシステム300との間でデジタルデータを搬送し合う、さまざまなネットワークを通した信号ならびにネットワークリンク320上および通信インターフェイス318を通した信号は、情報を移送する搬送波の例示的な形態である。
コンピュータシステム300は、ネットワーク、ネットワークリンク320および通信インターフェイス318を通してメッセージを送信し、プログラムコードを含めてデータを受信することができる。インターネットの例において、サーバ330は、アプリケーションプログラムについての要求コードをインターネット328、ISP326、ローカルネットワーク322、および通信インターフェイス318を通して送信するかもしれない。
受信されたコードは、その受信時にプロセッサ304によって実行されてもよく、および/または後で実行するために記憶装置310または他の不揮発性記憶装置に記憶されてもよい。このようにして、コンピュータシステム300は、アプリケーションコードを搬送波の形態で取得してもよい。
(拡張および代替)
前述の明細書において、この発明の実施例は、実装例ごとに変化することがある多数の特定的な詳細を参照して説明された。よって、発明であるものおよび出願人によって発明であると意図されるものを唯一および独占的に示すものは、この出願から生じるある請求項のセットであり、如何なる後の訂正も含めて、そのような請求項が発行される特定の形態におけるものである。そのような請求項に含まれる用語についてこの明細書中において明示的に記載されるいずれの定義も、請求項において用いられるようにそのような用語の意味を決定するものとする。したがって、請求項において明示的に記載されていない限定、要素、性質、特徴、利点または属性は、そのような請求項の範囲を如何なるようにも限定するものではない。したがって、明細書および図面は、限定的ではなく例示的に認識されるべきである。

Claims (17)

  1. SSD上の空き領域断片がしきい値断片サイズよりも小さいかどうかを決定するステップと、
    前記SSD上の前記空き領域断片が前記しきい値断片サイズよりも小さい場合、前記空き領域断片を除去するステップと、
    前記SSD上の前記空き領域断片が前記しきい値断片サイズよりも小さくない場合、データを記憶するために前記空き領域断片を保持するステップとを備える、方法。
  2. 前記しきい値断片サイズは、
    前記SSDのシーケンシャル書込速度と、
    前記SSDの1秒当りの入出力(I/O)とのうち少なくとも1つ以上に基づいて演算される、請求項1に記載の方法。
  3. 前記しきい値断片サイズは、前記SSDの前記シーケンシャル書込速度を前記SSDの前記1秒当りのI/Oで除算するステップを含む1つ以上のステップを用いて演算される、請求項2に記載の方法。
  4. 前記空き領域断片を除去するステップは、
    前記空き領域断片を除去するのに必要な1つ以上のリソースの利用がアイドル基準にいつ準拠するかを決定するステップと、
    前記アイドル基準に準拠している前記1つ以上のリソースの前記利用に応答して、前記空き領域断片を除去するステップとを含む、請求項1に記載の方法。
  5. 前記空き領域断片を除去するステップは、前記空き領域断片をファイルの少なくとも一部で埋めるステップを含む、請求項1に記載の方法。
  6. 前記ファイルは、
    仮フィラーファイルと、
    ほとんど使用されないファイルとのうち1つ以上である、請求項5に記載の方法。
  7. 第2の空き領域断片を除去するステップは、前記空き領域断片を隣接する空き領域断片とマージして、マージされた空き領域断片を得るステップを含み、前記マージされた空き領域断片は、前記しきい値断片サイズよりも大きい、請求項1に記載の方法。
  8. 前記しきい値断片サイズは、
    ユーザから前記しきい値断片サイズを受取るステップ、
    前記しきい値断片サイズを演算するステップ、
    前記SSD内部に物理的に組込まれた要素から前記しきい値断片サイズを得るステップ、
    前記しきい値断片サイズに対してさまざまな値をテストし、最適な性能が得られる前記しきい値断片サイズを選択することによって、前記しきい値断片サイズを決定するステップによって得られる、請求項1に記載の方法。
  9. ソリッドステートドライブ(SSD)オプティマイザであって、
    前記SSD上の空き領域断片がしきい値断片サイズよりも小さいかどうかを決定するための手段と、
    前記SSD上の前記空き領域断片が前記しきい値断片サイズよりも小さい場合、前記空き領域断片を除去するための手段と、
    前記SSD上の前記空き領域断片が前記しきい値断片サイズより小さくない場合、データを記憶するために前記空き領域断片を保持するための手段とを備える、SSDオプティマイザー。
  10. 前記SSDのシーケンシャル書込速度と、
    前記SSDの1秒当りの入出力(I/O)とのうち少なくとも1つ以上に基づいて、前記しきい値断片サイズを演算するための手段をさらに備える、請求項9に記載のSSDオプティマイザー。
  11. 前記しきい値断片サイズを演算するための前記手段は、前記しきい値断片サイズを決定するために前記SSDの前記シーケンシャル書込速度を前記SSDのI/O速度で除算するための手段を含む、請求項10に記載のSSDオプティマイザー。
  12. 前記空き領域断片を除去するための手段は、
    前記空き領域断片を除去するのに必要な1つ以上のリソースの利用がいつアイドル基準に準拠するかを決定するための手段を含む、請求項9に記載のSSDオプティマイザー。
  13. 前記空き領域断片を除去するための前記手段は、
    前記空き領域断片をファイルの少なくとも一部で埋めるための手段を含む、請求項9に記載のSSDオプティマイザー。
  14. 前記ファイルは、
    仮フィラーファイルと、
    ほとんど使用されないファイルとのうち1つ以上である、請求項13に記載のSSDオプティマイザー。
  15. 第2の空き領域断片を除去するための前記手段は、マージされた空き領域断片を得るために前記空き領域断片を隣接する空き領域断片とマージするための手段を含み、前記マージされた空き領域断片は、前記しきい値断片サイズよりも大きい、請求項9に記載のSSDオプティマイザー。
  16. ユーザから前記しきい値断片サイズを受取るための手段、
    前記しきい値断片サイズを演算するための手段、
    前記しきい値断片サイズを前記SSD内部に物理的に組込まれた要素から得るための手段、または
    前記しきい値断片サイズに対してさまざまな値をテストし、最適な性能が得られる前記しきい値断片サイズを選択することによって、前記しきい値断片サイズを決定するための手段をさらに備える、請求項9に記載のSSDオプティマイザー。
  17. 1つ以上のプロセッサによって実行されると前記プロセッサに請求項1から8のいずれかに記載された方法を実行させる命令の1つ以上のシーケンスを備える、コンピュータ読取可能記憶媒体。
JP2010528181A 2007-10-05 2008-10-03 ソリッドステートドライブオプティマイザ Pending JP2010541107A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97808607P 2007-10-05 2007-10-05
PCT/US2008/078823 WO2009046353A1 (en) 2007-10-05 2008-10-03 Solid state drive optimizer

Publications (2)

Publication Number Publication Date
JP2010541107A true JP2010541107A (ja) 2010-12-24
JP2010541107A5 JP2010541107A5 (ja) 2011-11-10

Family

ID=40097481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010528181A Pending JP2010541107A (ja) 2007-10-05 2008-10-03 ソリッドステートドライブオプティマイザ

Country Status (10)

Country Link
US (1) US8086819B2 (ja)
EP (1) EP2195730A1 (ja)
JP (1) JP2010541107A (ja)
KR (1) KR20100071063A (ja)
CN (1) CN102203717A (ja)
AU (1) AU2008308549B9 (ja)
CA (1) CA2700872A1 (ja)
RU (1) RU2479013C2 (ja)
TW (1) TW200937276A (ja)
WO (1) WO2009046353A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030081A (ja) * 2011-07-29 2013-02-07 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
JP2015141681A (ja) * 2014-01-30 2015-08-03 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875033B2 (en) * 2009-05-12 2018-01-23 International Business Machines Corporation Apparatus and method for minimizing data storage media fragmentation
US8285955B2 (en) * 2009-10-16 2012-10-09 Lenovo (Singapore) Pte. Ltd. Method and apparatus for automatic solid state drive performance recovery
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8615640B2 (en) 2011-03-17 2013-12-24 Lsi Corporation System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller
US8639900B2 (en) * 2011-05-25 2014-01-28 International Business Machines Corporation Defragmentation of data storage pools
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9443591B2 (en) 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
US8918583B2 (en) * 2012-12-20 2014-12-23 Virtium Technology, Inc. Adapting behavior of solid-state drive using real usage model
US20140359196A1 (en) * 2013-05-31 2014-12-04 Daniel J. Ragland On-the-fly performance adjustment for solid state storage devices
CN103631940B (zh) * 2013-12-09 2017-02-08 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及***
US10621041B2 (en) * 2016-03-25 2020-04-14 Intel Corporation Methods and apparatus to assign indices and relocate object fragments in distributed storage systems
US9747106B1 (en) * 2016-09-30 2017-08-29 International Business Machines Corporation Allocating multiple operand data areas of a computer instruction within a program buffer
US11029856B2 (en) * 2018-03-02 2021-06-08 Qualcomm Incorporated Flash memory device with data fragment function
TWI687921B (zh) * 2019-02-01 2020-03-11 宏碁股份有限公司 主機、疊瓦式磁記錄硬碟及其運作方法
US11520663B2 (en) * 2019-09-04 2022-12-06 Waters Technologies Ireland Limited Techniques for analytical application installation optimization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999015954A1 (en) * 1997-09-24 1999-04-01 Sony Pictures Entertainment, Inc. Large block allocation for disk based file systems
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP2005050192A (ja) * 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd 情報記録システム
JP2006113938A (ja) * 2004-10-18 2006-04-27 Ricoh Co Ltd データの再配置方法と追加記録方法およびプログラム
WO2007034706A1 (ja) * 2005-09-22 2007-03-29 Matsushita Electric Industrial Co., Ltd. 情報記録媒体アクセス装置、及びデータ記録方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675790A (en) * 1993-04-23 1997-10-07 Walls; Keith G. Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool
US6330583B1 (en) * 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
JP4110593B2 (ja) * 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
US7268774B2 (en) * 1998-08-18 2007-09-11 Candledragon, Inc. Tracking motion of a writing instrument
US6591287B1 (en) * 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
US7096327B2 (en) * 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US7076781B2 (en) * 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
US7451704B1 (en) * 2003-03-20 2008-11-18 The United States Of America As Represented By The Secretary Of The Army Multifunctional explosive fragmentation airburst munition
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
US20070143759A1 (en) * 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999015954A1 (en) * 1997-09-24 1999-04-01 Sony Pictures Entertainment, Inc. Large block allocation for disk based file systems
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP2005050192A (ja) * 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd 情報記録システム
JP2006113938A (ja) * 2004-10-18 2006-04-27 Ricoh Co Ltd データの再配置方法と追加記録方法およびプログラム
WO2007034706A1 (ja) * 2005-09-22 2007-03-29 Matsushita Electric Industrial Co., Ltd. 情報記録媒体アクセス装置、及びデータ記録方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030081A (ja) * 2011-07-29 2013-02-07 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
JP2015141681A (ja) * 2014-01-30 2015-08-03 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Also Published As

Publication number Publication date
AU2008308549B2 (en) 2012-08-09
US20090094433A1 (en) 2009-04-09
CA2700872A1 (en) 2009-04-09
RU2010112956A (ru) 2011-10-10
EP2195730A1 (en) 2010-06-16
AU2008308549B9 (en) 2012-10-18
US8086819B2 (en) 2011-12-27
TW200937276A (en) 2009-09-01
RU2479013C2 (ru) 2013-04-10
AU2008308549A1 (en) 2009-04-09
WO2009046353A1 (en) 2009-04-09
KR20100071063A (ko) 2010-06-28
AU2008308549A2 (en) 2010-06-24
CN102203717A (zh) 2011-09-28

Similar Documents

Publication Publication Date Title
US8086819B2 (en) Solid state drive optimizer
CN114072774B (zh) 数据存储***中的块模式切换
US7853759B2 (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US12039184B2 (en) Apparatus and method for performing garbage collection in a memory system
TWI539277B (zh) 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品
US9965196B2 (en) Resource reservation for storage system metadata updates
CN109213696B (zh) 用于缓存管理的方法和设备
CA2511304C (en) Dual journaling store method and storage medium thereof
CN102349055A (zh) 对存储在存储器上的文件的访问时间最优化
CN103838676B (zh) 数据存储***、数据存储方法及pcm桥
US11436159B2 (en) Using multi-tiered cache to satisfy input/output requests
WO2019062202A1 (zh) 硬盘操作命令的执行方法、硬盘及存储介质
US8161251B2 (en) Heterogeneous storage array optimization through eviction
CN114096952A (zh) 调整存储***中的块池大小
CN107632781B (zh) 一种分布式存储多副本快速校验一致性的方法及存储结构
US20220269609A1 (en) Apparatus and method for improving input/output throughput of memory system
KR20240011609A (ko) 원격 서버로부터 읽은 낮은 레이턴시 데이터를 위한 데이터 프리패칭 시스템 및 방법
US8140804B1 (en) Systems and methods for determining whether to perform a computing operation that is optimized for a specific storage-device-technology type
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
US11853618B2 (en) Method, electronic device, and computer product for RAID reconstruction
CN103064762A (zh) 重删备份数据的恢复方法和装置
Zuolo et al. Memory driven design methodologies for optimal SSD performance
CN117420952A (zh) 基于软件lun管理的aipr命令实现数据结构及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130702