JP4777263B2 - マスストレージアクセラレータ - Google Patents

マスストレージアクセラレータ Download PDF

Info

Publication number
JP4777263B2
JP4777263B2 JP2006552117A JP2006552117A JP4777263B2 JP 4777263 B2 JP4777263 B2 JP 4777263B2 JP 2006552117 A JP2006552117 A JP 2006552117A JP 2006552117 A JP2006552117 A JP 2006552117A JP 4777263 B2 JP4777263 B2 JP 4777263B2
Authority
JP
Japan
Prior art keywords
data
storage device
storage
volatile
address
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.)
Expired - Fee Related
Application number
JP2006552117A
Other languages
English (en)
Other versions
JP2007522560A5 (ja
JP2007522560A (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.)
SanDisk Corp
Original Assignee
SanDisk 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 SanDisk Corp filed Critical SanDisk Corp
Publication of JP2007522560A publication Critical patent/JP2007522560A/ja
Publication of JP2007522560A5 publication Critical patent/JP2007522560A5/ja
Application granted granted Critical
Publication of JP4777263B2 publication Critical patent/JP4777263B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データストレージデバイスに一般に関し、より具体的にはデュアルメディアストレージに関する。
汎用コンピュータは、マスストレージシステムを必要とする。データの直接操作のために用いられるメインメモリとは違い、マスストレージはデータを保持するために用いられる。一般に、プログラムはマスストレージに記憶され、プログラムが実行されるときに、プログラム全体またはプログラムの一部がメインメモリにコピーされる。システムがプログラムおよびそれに関連するデータの位置を特定し、マスストレージデバイスからメインメモリに転送するスピードは、システムの全体的なスピードに不可欠である。
通常のマスストレージデバイスには、フロッピーディスク、ハードディスク、光学ディスクおよびテープがある。それぞれのデバイスには、長所および短所の両方があり、これらは容量、価格、スピードおよび携帯性に関しえる。
加えて、フラッシュメモリのような他のデバイスは、不揮発性記憶を提供しえる。フラッシュメモリは、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)の一種である。フラッシュメモリは典型的には揮発性メインメモリほど速くはないが、ハードディスクよりは速い。
本発明者は、それぞれのデバイスの長所を最大にし、それぞれのデバイスの短所を最小にするために、別個のデバイスを単一のマスストレージシステムに統合するコンセプトを以前に吟味した。例えば、本発明者は、1997年12月31日に公開されたPCT出願「Memory Device」WO97/50035の発明者としても挙げられており、この出願は全ての目的のためにここで参照によって援用される。このPCT出願は、ハードディスクのような比較的、低速なアクセスのマスデータストレージデバイス、およびフラッシュメモリのような比較的、高速なアクセスのデータストレージデバイスの両方を含むメモリシステムを記載していた。同様のコンセプトは、2000年1月18日にDaniel AuclairおよびEliyahou Harariに発行された米国特許「Mass Computer Storage System Having Both Solid State and Rotating Disk Types of Memory」、米国特許第6,016,530号において吟味されており、この特許はその全体が全ての目的のためにここで参照によって援用される。
不揮発性フラッシュメモリデバイスを不揮発性ハードディスクと組み合わせることによって、結果として生じるマスストレージシステムは、その部分の和よりも大きくなりえる。しかし、そのようなメモリシステムは、それぞれのデータセクタのうちの1つのバージョンだけが維持されるシチュエーションに特に限定されていた。このデータセクタは、高速メモリまたは低速アクセスのマスデータストレージデバイスのうちのいずれかにおいて記憶され、論理アドレス空間を高速メモリおよび低速アクセスマスストレージデバイスの容量の和に等しくしていた。
1つ以上の集積回路チップ上に形成されたフラッシュセルのアレイを採用する、現在用いられている多くの商業的に成功した不揮発性メモリ製品が存在する。ふつう(必ずしもそうではないが)別個の集積回路チップ上にあるメモリコントローラはメモリアレイの動作を制御する。そのようなコントローラとしては典型的には、マイクロプロセッサ、ある種の不揮発性読み出し専用メモリ(ROM)、揮発性ランダムアクセスメモリ(RAM)およびプログラミングおよび読み出し操作のあいだにデータがコントローラを通るときにデータから誤り訂正符号(ECC)を計算するもののような、1つ以上の特別の回路がある。
典型的なフラッシュアレイのメモリセルは、共に消去されるセル群の別個のブロック群に分割される。すなわち、消去ブロックは、同時に消去可能な最小限の個数のセルの消去単位である。それぞれの消去ブロックは典型的には、データの1つ以上のページを記憶し、このページは、異なるサブアレイまたはプレーンでパラレルにプログラムされまたはリードされる。それぞれのプレーンは、典型的にはデータの1つ以上のセクタを記憶し、このセクタのサイズは、ホストシステムによって定義される。セクタの例は、磁気ディスクドライブについて設定された標準に従って、ユーザデータとして512バイトを含む。このようなメモリは典型的には、それぞれの消去ブロック内で16、32またはそれより多いページで構成され、それぞれのページは1つまたはいくつかのホストセクタデータを記憶する。
プログラミングおよびリード動作のあいだの並列性の度合いを増すために、アレイは、ふつうプレーンと呼ばれるサブアレイに典型的には分割される。それぞれのプレーンは、並列動作を可能にするためにそれ自身のデータレジスタおよび他の回路を含み、それによってデータのセクタは、同時に全てのプレーンにプログラムされ、またはそれらからリードされえる。単一の集積回路上のアレイは、物理的にプレーンに分割されえ、またはそれぞれのプレーンは、別個の1つ以上の集積回路チップから形成されえる。そのようなメモリ実現例の例は、1998年8月25日にLeeらに発行された「Plane decode/virtual sector architecture」米国特許第5,798,968号、および1999年3月30日にLeeらに発行された「Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM」米国特許第5,890,192号に記載され、これらはその全体が全ての目的のためにここで参照によって援用される。
さらに効率的にメモリを管理するために、消去ブロックは、共にリンクされて、仮想ブロックまたはメタブロックを形成しえる。すなわち、それぞれのメタブロックは、それぞれのプレーンから1つの消去ブロックを含むように定義づけられる。メタブロックの使用は、2002年7月25日の公開番号WO02/058074の国際特許出願「Partial Block Data Programming And Reading Operations In A Non-Volatile Memory」に記載され、その全体が全ての目的のためにここで参照によって援用される。このメタブロックは、データをプログラミングおよびリードするために、ホスト論理ブロックアドレスによって宛先(destination)として特定される。同様に、メタブロックの全ての消去ブロックは共に消去される。そのような大きなブロックおよび/またはメタブロックによって動作されるメモリシステム中のコントローラは、ホストから受け取られた論理ブロックアドレス(LBA)、およびメモリセルアレイ内の物理ブロックナンバ(PBN)の間の変換を含む多くの機能を実行する。ブロック内の個別のページは、典型的にはブロックアドレス内のオフセットによって特定される。
このタイプのフラッシュメモリシステムは、携帯アプリケーションにおけるマスストレージデバイスとしてふつう用いられる。フラッシュメモリデバイスは、論理インタフェースを介してATAのようなプロトコルを用いてホストシステムと通信し、しばしばリムーバブルカードの形態をとる。商業的に入手可能なカードのいくつかは、コンパクトフラッシュTM(CF)カード、マルチメディアカード(MMC)、セキュアディジタル(SD)カード、スマートメディアカード、パーソネルタグ(P−Tag)およびメモリスティックカードである。ホストは、パーソナルコンピュータ、ノートブックコンピュータ、携帯情報端末(PDA)、さまざまなデータ通信システム、および同様のタイプの装置を含む。メモリカード実現例の他に、このタイプのメモリは、代替として、さまざまなタイプのホストシステム内に組み込まれえる。
マスストレージデバイスを改良する継続された努力がなされている。
本発明は、一般に第1ストレージデバイス、第2ストレージデバイスおよびストレージコントローラを含むデータストレージシステムを提供する。第2ストレージデバイスは、第1ストレージデバイスよりもより低速な平均アクセスタイムおよびより大きい容量を有する。平均アクセスタイムは、そのデバイスがデータをリードまたはライトし始める前に必要な平均遅延である。
ある実施形態において、ストレージコントローラは、データの第1部分を第1ストレージデバイスに、データの第2部分を第2ストレージデバイスに導くよう動作可能である。他の実施形態において、ストレージコントローラは、データの第1部分を第1ストレージデバイスから、データの第2部分を第2ストレージデバイスから取り出す。
典型的には、データの第1部分は、連続的なデータストリーム中のデータの第1部分である。同様に、データの第2部分は、そのデータストリームの残りの部分である。データの第1部分の位置およびデータの第2部分の位置に関する情報を保持するためには、テーブルがふつう用いられる。
他の実施形態において、データは、まずデータアドレスにライトするためのライトコマンドをホストシステムバスから受け取ることによって記憶される。データの第1部分が第1ストレージデバイスにそれから記憶される。第1デバイスに前記データの第1部分が完全に記憶される前に、第2ストレージデバイスがデータをライトできるよう準備される。第2ストレージデバイスが準備できた後、第2ストレージデバイスにデータの残りの部分が記憶される。
さらに他の実施形態において、リードコマンドがまずホストシステムバスから受け取られる。データストレージシステムはそれから、データの第1部分が第1ストレージデバイス上に存在するかを決定する。もしデータが第1ストレージデバイス上に存在するなら、データの第1部分が第1ストレージデバイスからリードされる。データの第1部分をリードすることの完了の前に、第2ストレージデバイスがデータの残りの部分をリードできるよう準備される。そうでなければ、もしデータの第1部分が第1ストレージデバイス上に存在しないなら、データの第1部分およびデータの残りの部分の両方は第2ストレージデバイスからリードされる。
本発明の他の局面および優位性は、添付の図面と併せて以下の詳細な説明から明らかになろう。図面は例示的に本発明の原理を示す。
本発明は、添付の図面と併せて以下の詳細な説明によって容易に理解されよう。
図面において同様の参照番号は同様の構成要素を示すことが理解されよう。また図中の描写は必ずしも正しい縮尺ではないことが理解されよう。
以下の記載において、本発明の完全な理解を提供するために多くの具体的な詳細が述べられる。しかし、本発明はこれら特定の詳細の一部または全てがなくても実施されえることが当業者には明らかだろう。あるいは、よく知られたプロセスステップは、本発明を不必要にぼかさないために詳細には記載されていない。
本発明は、それぞれ長所および短所を有する2つの別個のマスストレージデバイスを組み合わせることによって、補助メモリともふつう呼ばれる、従来のマスストレージデバイスを一般に改良する。例えば、フラッシュは、ハードドライブより速いアクセスタイムを有するが、ふつうはハードドライブほどの記憶容量を有しない。当業者には理解されるように、一方が他方よりも速いアクセスタイムを有する限り、任意の2つの不揮発性記憶装置が本発明では用いられえる。記憶デバイスに適用されるように、アクセスタイムは、ストレージデバイスがデータリクエストを受け取る時と、そのストレージデバイスが実際にそのデータをリードおよび/またはライトし始める時との間の時間としてふつう定義される。例えば、ハードまたはフロッピーのいずれのディスク上のデータについても、アクセスタイムは、一般には、コマンドオーバヘッドタイム(command overhead time)、シークタイム(seek time)、セトルタイム(settle time)、およびレイテンシ(latency)の和に等しい。
シークタイムおよびレイテンシがディスクのアクセスタイム全体を支配する。ディスクのシークタイムは、リード/ライトヘッドがあるトラックから他へと移動するのにかかる時間である。ハードディスクについては、これは典型的には、隣接するトラックへのシークの場合、1ミリ秒であり、フルストロークのシークについては15ミリ秒(内側から外側トラックへのシーク、またはその逆)およびランダムシークの平均は10ミリ秒である。レイテンシは、いったんヘッドがアドレスされたトラック上に位置してから、プラッタ上のアドレスされたセクタがヘッドまで回転する時間であり、ディスクの回転速度の関数である。7200rpmの回転速度については、レイテンシは、平均4.14ミリ秒であり、最大8.3ミリ秒である。
対照的に、典型的なフラッシュディスクデバイス上では、データのセクタは、約30μSでデバイスに転送され、8セクタがフラッシュメモリ中ではパラレルに200μSでプログラムされえる。これは、約16MB/sのバーストライトスピードを提供し、ここで8セクタが250μS毎に書き込まれえる。しかし、デバイスは、ガーベジコレクション、データのブロックを完成させるためのデータセクタのリロケーション、およびブロック消去のような、管理上の動作もときどき実行しなければならない。したがって、8個のセクタをプログラムするための実効時間は、時としてこれよりもかなり長くなりえる。したがって、フラッシュの持続されたライトレートは、約15MB/秒でありえる。もちろん、他のセクタ転送およびパラレルプログラミングスキームもフラッシュディスクデバイスでは採用されえ、異なる動作スピードを与えうる。
図1Aは、本発明を利用しえる例示的汎用コンピュータシステム100を示す。要素は、コンピュータ105、マウス110およびキーボード115のようなさまざまな入力デバイス、およびモニタ120およびプリンタ125のようなさまざまな出力デバイスを含む。
図1Bは、その本質的な要素を示す図1Aのコンピュータシステム100の要約された表現を示す。単一の要素130は、マウスおよびキーボードのようなユーザがコンピュータシステム100と相互対話することを可能にする入力デバイスを示す。同様に、単一の要素135は、モニタおよびプリンタのようなコンピュータシステム100が達成したことを表示する出力デバイスを示す。コンピュータシステム100の中心は、中央処理ユニット(CPU)140であり、命令を実行する要素である。メインメモリ145は、典型的には揮発性であり、CPU140に実行されるべき命令およびその命令によって操作されるべきデータを提供する。これらの要素130、135、140、および145はこの技術分野ではよく知られている。
改良されたマスストレージデバイス150は、コンピュータ100が持続的に大量のデータを保持することを可能にする。要素130、135、140、145、および150は、互いにホストバス155を介して情報を交換できる。
図2Aは、本発明のある実施形態による改良されたマスストレージデバイス150Aを示す。2つのマスストレージデバイス、フラッシュメモリシステム205およびハードドライブ210は、並列に接続される。フラッシュメモリシステム205は、フラッシュメモリアレイ215およびフラッシュコントローラ220を含む。ハードドライブ210は、磁気ハードディスク225およびディスクコントローラ230を含む。それぞれのコントローラ220および230は、それぞれのメモリタイプについて特定の動作を管理する。例えば、フラッシュコントローラ220は、全てのデータセクタの論理・物理マッピングおよび全てのフラッシュメモリ管理を制御し、それによりフラッシュコントローラ220およびフラッシュメモリアレイ215の間のインタフェース250が物理的なインタフェースになるようにする。ディスクコントローラ230は、リードおよびライトのための磁気ハードディスク225の動作を管理する。コントローラ220および230の両方は、論理インタフェース260および265を介してルータ235に接続する。
ホストインタフェース240およびストレージコントローラ245は、両方ともルータ235の上流に配置され、ルータは、データおよび制御情報が、ホストインタフェース240と、ディスクコントローラ230またはフラッシュコントローラ220のいずれかとの間でいずれかの方向へ渡されることを可能にする。加えて、ルータ235は、ディスクコントローラ230およびフラッシュコントローラ220の間でいずれかの方向へデータの転送を制御しえる。このような転送は、スタンドアローン動作としてなされえる。代替として、このような転送は、ホストインタフェース240およびマスストレージコントローラ220または230のうちの1つの間でいずれかの方向へのデータ転送と共になされえる。ルータ235は、このようなデータ転送についての制御論理を組み込みえる。
ホストインタフェース240は、ホストバス155への直接インタフェースを提供し、ホストバス155上で用いられる特定のプロトコルについての全てのサポートを提供しえる。ホストインタフェース240、ディスクコントローラ230および磁気ハードディスク225によって形成されるサブシステムは、ホストインタフェース240、フラッシュコントローラ220およびフラッシュメモリアレイ215によって形成されるサブシステムと共に、それぞれ完全なマスデータストレージシステムを形成する。ルータ235は、ホストインタフェース240から変更を加えることなくデータおよび制御信号を通しえ、またはコントローラ220および230と通信するための代替のプロトコルを確立しえる。ルータ235およびマスストレージコントローラ220または230間のインタフェース260および265は、ATAのような標準的プロトコルでありえ、または改良されたマスストレージデバイス150のために定義された特別なインタフェースでありえる。インタフェース260および265は典型的には、フラッシュメモリシステム205およびハードドライブ210中のデータの個別のセクタにランダムリードおよびライトアクセスを提供する論理インタフェースであり、それぞれの記憶メディアの物理的特性に依存しない。
加えて、フラッシュコントローラ220は、フラッシュメモリアレイ215の予約された領域への直接アクセスを行うために、インタフェース260上で特別のコマンドまたは操作をサポートしえ、これはストレージコントローラ245Aによって用いられるテーブルおよび情報ログの記憶のために用いられえる。代替として、ストレージコントローラ245Aは、そのようなテーブルおよびログのためのそれ自身の不揮発性メモリを有してもよい。
ストレージコントローラ245Aは、ホストインタフェース240およびマスストレージコントローラ220および230の間の情報の転送を指令するインテリジェントコントロールユニットである。ストレージコントローラ245Aは、フラッシュメモリシステム205またはハードドライブ210へのデータの記憶またはそれからのデータのリードを調整する。ストレージコントローラ245Aは、フラッシュメモリアレイ215中に記憶された情報のためのアドレステーブルを保持しえる。
揮発性メモリは、ホストインタフェース240、ルータ235、フラッシュコントローラ220またはディスクコントローラ230を含む改良されたマスストレージデバイス150の要素の多くにおいてバッファまたはキャッシュメモリとして機能する。単一の揮発性メモリがさまざまな要素において動作するようスケジューリングされてもよく、または別個の揮発性メモリ群がそれぞれの要素の専用として機能してもよい。
他の実施形態において、コントローラ220および230の機能は、統合化されたコントローラデバイスにおいて、ルータ235と共にマージされる。このデバイスは、記憶コントローラ245およびホストインタフェース240も含みえる。しかし、このようなコンフィギュレーションは、新しいコントローラユニットの製造を必要とする。したがって、コントローラ220および230のうちのいずれかまたは両方は、単にメモリデバイス中には含まれない。このようなコンフィギュレーションは新しい制御回路が開発されることを必要とするが、要求される全要素の数も減らしえる。
図2Bは、本発明の他の実施形態による改良されたマスストレージデバイス150Bを示す。この改良されたマスストレージデバイス150Bは、図2Aの改良されたマスストレージデバイス150Aにおけるのと同じハードドライブ210の要素を維持するが、図2Aのストレージコントローラ245Aのメイン機能と共にルータ235およびホストインタフェース240の機能を含むストレージコントローラ245Bを用いる。論理インタフェース260はなくされ、フラッシュメモリアレイ215Bへ直接の物理インタフェース275によって置き換えられている。このような構成においては、ディスクアクセラレータ250は、好ましくは、ハードドライブ210へのATAインタフェース上のフロントエンドキャッシュであるか、またはハードドライブ210の既存の要素を利用するためにハードドライブ210のアセンブリに統合されえる。この実施形態において、フラッシュコントローラ220の機能は必要とされず、フラッシュメモリアレイ215Bは、論理データ記憶デバイスの一部を形成しないが、物理記憶として直接に用いられる。これはデータのストリームの一時記憶には特に適する。
用いられる具体的なアーキテクチャにかかわりなく、ディスクアクセラレーションは、第2ストレージデバイスがレイテンシを起こしているあいだに、一般に「ヘッド」データを第1ストレージデバイスにライトおよび/またはそれからリードすることによって達成されえる。図2Aおよび図2Bに示される実施形態において、フラッシュメモリアレイ215は、磁気ハードディスク225よりも相当少ないレイテンシしか起こさない。磁気ハードディスク225のリード/ライトヘッドが適切に位置するまで待つ代わりに、データストリーム(「ヘッドデータ」)の初期位置は、フラッシュメモリシステム205のフラッシュメモリアレイ215に書き込まれる。いったん磁気ハードディスク225がデータを受け入れる準備ができると、残りの部分(「ボディデータ」)がハードドライブ210の磁気ハードディスク225に書き込まれる。それと共に、ヘッドデータおよびボディデータは、単一のデータフラグメントをなす。データフラグメントは、第2ストレージデバイスが非トリビアルなアクセスタイムを生じるデータのバーストとして定義されえる。磁気ハードディスク225の場合、データフラグメントは、先行データと不連続なためにハードドライブ210にシークタイムおよび/またはレイテンシを起こすシーケンシャルなデータとして記述されえる。
改良されたマスストレージデバイス150がどのように利用されるかに依存して、ヘッドデータのサイズは、必要に応じて計算されてもよく、または単に標準的なサイズでありえる。標準的なサイズは、ハードドライブ210の平均シークタイム、フラッシュメモリアレイ215のサイズ、および/またはガーベジコレクション動作の結果大きく延びた実効的プログラミングタイムが発生する前にライトされえる論理的に連続なセクタを含む、多くのファクタに基づきえる。
図3Aは、ハードドライブアドレス空間315およびフラッシュアドレス空間320中のヘッドデータ305およびボディデータ310の要約された表現を示す。ヘッドマッピングテーブル325は、ストレージコントローラ245Aまたは245Bによって用いられ、ヘッドデータ305およびボディデータ310の記憶を調整する。もしフラッシュアドレス空間320が充分大きければ、ヘッドデータ305は、フラッシュメモリアレイ215中に永続的に常駐しえる。しかし、もしフラッシュ空間が限られるなら、新しいヘッドデータのためのスペースを作るために、ヘッドデータ305がフラッシュメモリアレイ215から除去されることを可能にするメカニズムが実現されなければならない。
あるそのようなメカニズムは、ヘッドデータ305のためにディスクアドレス空間内にスペース330を予約しておくことを含みえる。フラッシュメモリアレイ215内でスペースが必要になると、ヘッドデータ305が予約されたスペース330へコピーされ、磁気ハードディスク225上のデータフラグメント全体が連続になるようにされえる。好ましくは、ヘッドデータ305をコピーをすることは、改良されたマスストレージデバイス150Aまたは150Bが使用中ではないときに、バックグラウンド動作としてなされえる。このようなセクタリロケーションの頻度は、ディスクデバイスおよびフラッシュメモリデバイスの記憶容量の比、および改良されたマスストレージデバイス150に書き込まれる別個の連続したセクタシーケンス群の個数に好ましくは依存する。
同様に、図3Bは、改良されたマスストレージデバイス全体についてのアドレス空間350に対するディスクアドレス空間315およびフラッシュアドレス空間320の要約された表現を示す。空間がヘッドデータのためにディスクアドレス空間315内に予約されるので、改良されたマスストレージデバイスのアドレス空間350は、ディスクアドレス空間315に等しい。
改良されたマスストレージデバイスを用いることによるシステムパフォーマンスの向上は、図4Aおよび図4Bの間の差でわかる。図4Aは、ライトコマンド405がマスストレージシステムによって受け取られるときに起こる、従来のライト処理を示すタイミング図である。ここで、マスストレージシステムは、本発明によって提供されるディスクアクセラレーションを使用していない。典型的には、データは、ハードドライブ210のためのリード/ライトヘッドが所定位置に動き(415)始める時刻とほぼ同じ時にディスクキャッシュへ転送(410)され始める。いったんリード/ライトヘッドおよび磁気ハードディスク225が所定位置にくると、データは磁気ハードディスク225に書き込まれ(420)始める。典型的には、データをキャッシュから磁気ハードディスク225に書くのにかかる時間(420)は、入ってくるデータをキャッシュに転送するのにかかる時間(410)より長い。
図4Bは、ライトコマンド405が本発明の実施形態によるディスクアクセラレーションを用いるマスストレージシステムによって受け取られるときに起こる、ライト処理を示すタイミング図である。いくつかの異なる動作が、受け取られるライトコマンド405の結果として始まりえる。例えば、ヘッドデータ425および430のフラッシュメモリへの転送が開始されえる。揮発性バッファメモリは、フラッシュのような管理上の動作を必要としない。したがって、ヘッドデータをフラッシュメモリシステム205に記憶させること(430)は、ヘッドデータをバッファに転送すること(425)、およびそれからヘッドデータをバッファからフラッシュメモリシステム205に転送すること(425)によって、ヘッドデータをフラッシュメモリシステム205内に生じること(430)を典型的には含む。ヘッドデータ425および430が記憶されるとき、ハードドライブ210は、データを受け取る準備をする。もしヘッドデータのためのスペースが予約されているなら、新しいライトコマンド435がハードドライブ210に提示される。この新しいライトコマンド435は、リード/ライトヘッドをデータフラグメントのアドレスには導かないが、ボディデータのアドレスには導き、このアドレスは単に、ヘッドデータのためにアロケートされたスペースによってオフセットされたフラグメントアドレスである。新しいライトコマンド435がハードドライブ210によって受け取られた後、リード/ライトヘッドおよびハードディスクは適切に配置される(440)。
いったんヘッドデータ425が完全にフラッシュバッファ425に転送されると、ボディデータが改良されたマスストレージデバイスのディスクキャッシュ内へ記憶され始める(445)。したがって、ホストシステムがデータを改良されたマスストレージデバイス150へ転送しえるスピードは、ディスクアクセラレーションを用いないシステムと同じである。リード/ライトヘッドおよびハードディスクが所定位置にあるとき、ボディデータ450は、ボディデータが利用可能になるとすぐに磁気ハードディスクへ書き込まれ始めえる。図4Bにおいてデータフラグメントをライトするのにかかる総時間は、図4Aにおいて必要とされる総時間より大幅に少ない。
しかし、システムパフォーマンスの全体的な向上は、フラッシュメモリアレイ215の容量、およびどのくらい頻繁に改良されたマスストレージデバイス150がアクセスされるかに依存する。フラッシュメモリアレイ215の容量が増すにつれて、システムパフォーマンスの効果は図5Aに示されるように、より劇的になる。フラッシュメモリアレイ215が大きければ大きいほど、複数のデータフラグメントを有するアクティビティのバーストのあいだに記憶されえるデータは大きくなる。
同様に、図5Bは、改良されたマスストレージデバイス150がより多く利用されるほど、システムパフォーマンスが低下することを示す。もしマスストレージデバイス150が常にアクセスされるなら、ヘッドデータをフラッシュメモリアレイ215から磁気ハードディスク225に転送するのに充分な時間が存在しないことになる(転送が必要であると仮定して)。その結果、マスストレージデバイス150は、そのエラーハンドリングルーチンに依存して、新しいヘッドデータを受け取る前に古いヘッドデータを転送するか、またはフラッシュメモリアレイ215を使うのを止め、新しいデータフラグメントについてはハードドライブ210だけを使うかをしなければならない。もし後者のエラーハンドリングルーチンが使われるなら、システムパフォーマンスは図5Bに示されるようにハードドライブ210だけを使ったシステムと同じになるだろう。このようなエラーハンドリングルーチンは、フラッシュメモリアレイ215が一時的に利用可能ではない(例えば、フラッシュメモリアレイ215がガーベジコレクションプロセスを処理している)場合にも利用されえる。ガーベジコレクションとのコリジョンは、もしガーベジコレクション動作が、ホストデータがハードドライブ210に書き込まれているあいだに実行されたなら低減されえ、これは典型的にはフラッシュメモリアレイ215についてアクティビティがない時間である。
図6は、リングバッファ600の形態の、フラッシュメモリアレイ215B中のデータのストリームにおけるセクタの記憶を整理する一方法を示す。データのセクタを書き込む現在の位置は、ライトポインタ605によって定義され、これは無限サイクルとしてアドレス空間を通して図3の時計回りに移動する。アドレス空間は、メタブロック(例えば610および615)によって定義され、これらは、所定の順序で、またはライトポインタ605が完全なメタブロックから新しい消去されたメタブロックへ移動するときに動的に決定される順序で、リンクされる(例えば620)。消去ポインタ625は、無限サイクルとしてアドレス空間を通して同様に図6で時計回りに移動する。消去ポインタ625によって特定されたメタブロックは、新しいデータセクタの記憶のために、ライトポインタ605の前に少数の消去されたメタブロックのプールが維持されるような速度で消去されていく。消去されるブロックは、リングバッファ600中では最も古く書き込まれたデータを含む。
ヘッドデータは、サイクリックアドレス空間中に記憶され、すなわち、これは最高アドレスから最低アドレスへとインクリメントステップを提供することによってインクリメントアドレス遷移が連続的になされえるアドレス空間である。図2Aに示された改良されたマスストレージデバイス150Aの実施形態においては、サイクリックアドレス空間は、フラッシュメモリシステム205の論理アドレス空間の一部の中でサイクリックバッファによって提供される。図2Bに示される改良されたマスストレージデバイス150Bの実施形態において、サイクリックアドレス空間は、フラッシュメモリアレイ215Bの物理アドレス空間内にリングバッファ600によって提供される。
フラッシュメモリのコストをなるべく下げるために、フラッシュメモリアレイ215の容量は、改良されたマスストレージデバイス150のためのアドレス空間全体350に関する全てのヘッドデータを記憶するのに必要とされる容量よりも通常は小さい。したがって、ヘッドデータの連続した記憶のためにフラッシュメモリアレイ215内のスペースを空けるために、ヘッドデータをフラッシュメモリアレイ215から磁気ハードディスク225上の適切な予約された空間へコピーするための条件が存在する。これが実行される手段は、改良されたマスストレージデバイス150によって達成されるシステムパフォーマンスの全体的向上に対する重要な効果を有しえる。
図9は、ハードドライブ210へのヘッドデータのコピーを管理する方法に関する、リングバッファ600内のセクタ記憶位置のマップを示す。リングバッファ600は、サイクリックアドレス空間を有し、その最後の物理アドレスからその最初の物理アドレスへの逆戻りを持つ。リングバッファ600は、メタブロック960、965、970、975、980、985、990、および995を含む。セクタデータは、インクリメントライトポインタ605によって定義される位置においてバッファに書き込まれる。図9は、バッファ910のトップとしてアサインされるライトポインタ605を含むメタブロック960で、移動するリニアアドレス空間としてこのサイクリックアドレス空間を示す。サイクリックバッファ600においてライトポインタ605の直前のメタブロック995は、バッファ940のエンドとしてアサインされる。消去ポインタ625は、消去のための次のターゲットブロックを定義し、バッファ中のヘッドデータエントリの最後も定義する。消去ポインタ625およびバッファ940のエンドの間のメタブロックは、消去された状態にある。
有効なヘッドデータは、消去ポインタ625によって特定されたメタブロック990からコピーされ、メタブロック990の消去を可能にする。ヘッドデータ305は、もしそれがリングバッファ600に書き込まれてから読み出されたことがなければ、磁気ハードディスク225上の対応する予約された空間330にコピーされる。しかし、ヘッドデータ305は、もし書き込まれてから読み出されたなら、ライトポインタ605においてフラッシュメモリに再びコピーされえ、したがってリングバッファ600内に保持されえる。これにより、ホストシステムによって読み出される可能性が高いヘッドデータが、リングバッファ600内に利用可能なまま残ることを可能にする。有効なヘッドデータは、ヘッドマッピングテーブル325、およびデータセクタそのもののヘッダ中の論理アドレス情報を用いて特定されえる。もし有効なヘッドデータが、メタブロック990および他のメタブロックの間の境界と重なるなら、ヘッドデータ全体がそのままコピーされる。
しかしヘッドデータは、同じ論理アドレスについてのより最近のヘッドデータがリングバッファ600内の他のどこかに存在するために無効でありえる。この場合、ヘッドデータは、メタブロック990の消去の前にコピーされる必要はない。
消去ポインタ625によって特定されたもの以外のメタブロックには、コピーアヘッド操作が実行されえる。これは例えば、ホストによって要求されてハードディスク225へのコピー操作が一時的にディスクアクセスによって妨げられるあいだの、フラッシュメモリアレイ115へのコピー操作が継続することを可能にする。フラッシュコピーポインタ915およびディスクコピーポインタ905は、次に必要とされるコピー操作の位置を特定するために用いられる。消去ポインタ625およびコピーポインタ905および915の間に位置する有効なヘッドデータは、その必要とされるコピー操作が全て実行されていなければならない。リングバッファ600内にはできるだけ多くの有効なヘッドデータを記憶することが望ましいので、実行されるそのようなコピーアヘッド操作の程度には制限が設けられている。ディスクコピーリミット920およびフラッシュコピーリミット930は、ディスクコピーポインタ905およびフラッシュコピーポインタ915が消去ポインタ625より前に移動しえる最大限度を定義する。
メタブロック消去は、消去ポインタ625によって特定されるメタブロックに制限される必要はない。例えば、もし消去ポインタ625におけるメタブロック990がさらなるフラッシュコピー操作を必要とするなら、消去ポインタ625およびディスクコピーポインタ905の間のメタブロック980は、既に未コピー有効データを含まず、メタブロック980はただちに消去されえる。この場合、リングバッファを形成するようメタブロックがリンクされる順序を定義するブロックリンクテーブルが変更され、新しく消去されたメタブロック980を消去ポインタ625より下に移動しえる。
ヘッドデータのコピーは、可能である限りバックグラウンドタスクとして実行される。フラッシュメモリアレイ215へのコピーは、ホスト・ディスクまたはディスク・ホストデータ転送と同時に実行されえる。代替として、もし完全なメタブロックがコピーされなければならないなら、実際のデータは動かされる必要はない。ブロックリンクテーブルは、単にバッファ内でのデータをリロケートするよう変更されえる。高速ディスクコピーは、ホストインタフェースが非アクティブであるときに、リングバッファ600およびハードディスクキャッシュの間で実行されえる。ディスクコピーは、もしホストアクティビティが開始するなら安全にアボートされえ、後に再開または反復されえる。
フラッシュメモリアレイ215中に記憶される管理テーブルは、ヘッドマッピングテーブル325およびブロックリンキングテーブルを含みえる。ある実施形態において、ヘッドマッピングテーブル325は、フラッシュメモリアレイ215中に記憶されたそれぞれの有効なヘッドデータフラグメントについて、ただ一つのエントリしか有しない。エントリは、それから、定義された論理アドレスを持つエントリをサーチすることを可能にするために、専用のブロックにおけるヘッドマッピングテーブルセクタのセットの中に不連続な論理アドレス順で記憶される。それぞれのエントリは、改良されたマスストレージデバイス内での論理アドレス、リングバッファ内での物理アドレス、ヘッドデータのサイズ(もし固定されたヘッドサイズが用いられないなら)、書き込まれてからヘッドデータが読み出されたことを示すリードフラグ、およびヘッドデータがハードドライブ210にコピーされたことを示すコピーフラグのための別個のフィールド群を有しえる。ブロックリンキングテーブルは、リングバッファ600中のそれぞれのリンクされたメタブロックについて1つのエントリを有する。エントリは、専用のブロックにおいてリンクテーブルセクタのセット中にブロックリンキング順に記憶される。新しいリンクテーブルセクタが追加されえ、それらの順序が変更されえる。それぞれのセクタはフルである必要はなく、新しいエントリが追加されえる。最後に書き込まれたリンクテーブルセクタは、専用ブロック内にある全ての有効なリンクテーブルセクタの位置およびそれらの順序を定義する情報を含みえる。
図7は、本発明の例示的実施形態による例示的ライト技術のフロー図である。705において、データをあるアドレスXに書き込むために、コマンドがホストシステムバス155から受け取られる。710において、改良されたマスストレージデバイス150は、アドレスXが以前にアクセスされたアドレスと連続し、したがって既存のデータフラグメントの一部であるか、または以前のアドレスとは不連続であるかを決定し、新しいデータフラグメントの開始を定義する。もしアドレスが連続であるなら、データは、既存のデータフラグメントに連続して、715においてハードドライブ210に直接に書き込まれる。もしアドレスが不連続であるなら、データを、新しいデータフラグメントのためのヘッドデータとしてフラッシュメモリアレイ215に書き込むための試みがなされる。
もしヘッドデータが書き込まれるなら、システムは、フラッシュメモリアレイ215が準備ができているかを720において決定する。もしフラッシュメモリアレイ215がなんらかの理由で利用可能でないなら、システムは単にハードドライブ210に715において書き込みえ、このフラグメントについてはアクセラレーションを実施しない。もしフラッシュメモリアレイ215が利用可能であるなら、次の3つの動作がほぼ同時に起こりえる。
3つの動作の最初は、シークコマンドをハードドライブ210に725において送ることである。このシークコマンドは、もしデータが最終的にハードドライブ210にフラッシュメモリアレイ215から転送されることになっているなら、ヘッドデータのサイズに等しいオフセットを考慮しなければならない。したがってハードドライブ210は、リード/ライトヘッドをアドレスX+Hに位置付けるためのシークコマンドを受け取らなければならず、ここでHはヘッドデータオフセットのサイズである。730において、ヘッドデータは、フラッシュメモリアレイ215に書き込まれる。もしリングバッファが用いられるなら、ヘッドデータはライトポインタにおいて書き込まれる。735において、ブロックマッピングテーブルは、ヘッドデータがフラッシュメモリアレイ215だけに記憶されていることを示すようアップデートされる。適切にデータを調整するために、ストレージコントローラ245は、磁気ハードディスク225中の論理アドレスおよびフラッシュメモリアレイ215中の物理アドレスに関する情報を有さなければならない。加えて、他の情報もブロックマッピングテーブル中に記憶されてもよい。例えば、もしヘッドサイズが可変であるなら、ヘッドのサイズも記憶されなければならない。他のフラグは図8について以下に説明される。
ヘッドデータがフラッシュメモリアレイ215に書き込まれ、ブロックマッピングテーブルがアップデートされるあいだ、ハードドライブ210は、磁気ハードディスク225が適切に位置付けられるのを740において待つ。いったん所定の位置になると、改良されたマスストレージデバイス150がボディデータをホストシステムバス155から受け取ったと仮定して、ボディデータが745において磁気ハードディスク225に書き込まれ始めえる。
図8は、本発明の例示的実施形態による例示的リード技術のフロー図である。805において、データをあるアドレスXにおいて読み出すために、コマンドがホストシステムバス155から受け取られる。810において、ストレージコントローラ245は、アドレスXについてのエントリがブロックマッピングテーブル中に存在するかを決定する。もしアドレスがブロックマッピングテーブル中にないなら、システムはデータをハードドライブ210から815において読み出す。それから、820において、システムは、フラッシュメモリアレイ215が書き込みの準備ができているかを決定する。もしフラッシュメモリアレイ215がなんらかの理由(例えばガーベジコレクション)で利用可能でないなら、プロセスは単に終了し、ディスクアクセラレーションなしのシステムとして振る舞う。しかし、もしフラッシュメモリアレイ215が利用可能であるなら、データがハードドライブ210から読み出されているあいだ、ヘッドデータはフラッシュメモリアレイ215から825においてコピーされえる。それから、830において、ブロックマッピングテーブルは、ヘッドデータが今はフラッシュメモリアレイ215上に存在することを示すようアップデートされえる。
いったんエントリがブロックマッピングテーブル中に存在すると、ストレージコントローラ245は、リードコマンドが805において受け取られた後に異なるパスをたどる。もし810においてアドレスがブロックマッピングテーブルにあるなら、ストレージコントローラ245は、ハードドライブ210中のボディデータのアドレスのためのシークコマンドをハードドライブ210に送る。本実施形態においては、ボディデータのアドレスは、ヘッドデータのサイズだけオフセットされたアドレスXである。840において、ストレージコントローラ245は、典型的にはフラッシュメモリアレイ215が準備できるのを待つ。しかしある実施形態は、ヘッドのコピーがハードドライブ210にも存在するかを決定し、もし適切であるなら、もしハードドライブ210がフラッシュメモリアレイ215より前に利用可能になるなら単にハードドライブ210からデータを読み出す、追加のエラーハンドリングルーチンを有してもよい。リード技術だけを用いるある実施形態においては、ヘッドデータのコピーは常にハードドライブ中に存在する。いったんフラッシュメモリアレイ215が利用可能になると、ヘッドデータは、フラッシュから845において読み出される。850において、ブロックマッピングテーブル中のフラグは、テーブルエントリに対応するデータが読み出されたことを示すようセットされえる。もしリングバッファ構成が用いられるなら、そのようなフラグは、それを含むメタブロックが消去されなければならないときに、ハードドライブではなくバッファのトップへコピーすることによって、リングバッファ内にエントリが保持されることを可能にする。
ヘッドデータが完全にフラッシュメモリアレイ215から読み出されたあと、システムは、磁気ハードディスク225が正しく位置付けられるのを855において待たなければならない。いったん適切に位置付けられると、ボディデータは、磁気ハードディスク225から860において読み出される。
本発明は、現在、考えられるベストモードにおいて記載されてきたが、多くの改変、動作のモードおよび実施形態が可能であること明らかであり、これらは当業者の能力および技術の範囲内で、さらなる発明的活動なしに実施可能である。例えば、他のマスストレージデバイスは、フラッシュまたはハードドライブ以外の技術を用いえ、バッテリーバックアップされたRAM、光学ディスク、オボニックユニファイドメモリ(OUM)、磁気RAM(MRAM)、強誘電ポリマー、強誘電RAM(FeRAM)、シリコン・オン・インシュレータ(SoI)などを含みえる。したがって、特許証によって保護されるべきであると意図されるものは、特許請求の範囲に記載され、特許請求の範囲の精神および範囲内に入る全ての改変物および変更物を含む。
本発明を利用できる例示的汎用コンピュータシステムを示す図である。 図1Aの汎用コンピュータシステムの要約された表現を示す図である。 本発明の例示的実施形態による改良されたマスストレージデバイスを示す図である。 本発明の他の例示的実施形態による改良されたマスストレージデバイスを示す図である。 ハードドライブアドレス空間およびフラッシュアドレス空間内のヘッドデータおよびボディデータの要約された表現を示す図である。 改良されたマスストレージデバイスの全体に対するハードドライブアドレス空間およびフラッシュアドレス空間内の要約された表現を示す図である。 ディスクアクセラレーションを用いないシステムによってライトコマンドが受け取られるときに起こる従来のライト処理を示すタイミング図である。 本発明の例示的実施形態によるディスクアクセラレーションを用いるシステムによってライトコマンドが受け取られるときに起こるライト処理を示すタイミング図である。 フラッシュ容量が増すときのシステムパフォーマンスの効果を示す図である。 改良されたマスストレージデバイスの利用が減るときのシステムパフォーマンスの効果を示す図である。 リングバッファの定型化された表現を示す図である。 本発明の例示的実施形態による例示的ライト技術のフロー図である。 本発明の例示的実施形態による例示的リード技術のフロー図である。 図6のリングバッファ内のセクタ記憶位置のマップの図である。

Claims (32)

  1. データストレージシステムであって、
    第1不揮発性ストレージデバイス
    前記第1不揮発性ストレージデバイスよりもより低速な平均アクセスタイムおよびより大きい容量を有する第2不揮発性ストレージデバイスであって、前記より低速な平均アクセスタイムは、前記第2不揮発性ストレージデバイスがデータをライトし始める前に必要な平均遅延である、前記第2不揮発性ストレージデバイス
    データの第1部分を前記第1ストレージデバイスに、データの第2部分を前記第2ストレージデバイスに送信させるよう動作可能であるストレージコントローラであって、前記データの第1部分を収めるのに充分なスペースを予約するよう前記第2不揮発性ストレージデバイスに指示すべく動作可能である前記ストレージコントローラを備え、
    前記データの第1部分は、ヘッドデータであり、前記データの第2部分は、ボディデータであり、前記データの第1部分のための前記予約されたスペースと、該データの第1部分に対応するデータの第2部分とは、連続して配置され、
    前記ストレージコントローラは、前記第1不揮発性ストレージデバイスにおいてデータの前記第1部分をリード又はライトすることを完了する前に、前記データの第2部分をリード又はライトするために準備するよう前記第2不揮発性ストレージデバイスに指示し、且つ第1不揮発性ストレージデバイスの空き容量が所定の容量より少なく、前記第1または第2不揮発性ストレージデバイス中に含まれる前記データへのアクセスがリクエストされていない場合、前記データの前記第1部分を消去するよう前記第1揮発性ストレージデバイスに指示するとともに、前記予約されたスペースに前記データの前記第1部分をライトするよう第2揮発性ストレージデバイスに指示すべく動作可能である、データストレージシステム。
  2. 請求項1に記載のデータストレージシステムであって、前記第1不揮発性ストレージデバイスは、前記ストレージコントローラによって前記データの第2部分が前記第2ストレージデバイスに送信させるとき、前記データの記憶に直接関連しない操作を行う、データストレージシステム。
  3. 請求項に記載のデータストレージシステムであって、前記データの記憶に直接関連しない操作はガーベジコレクションを含む、データストレージシステム。
  4. 請求項1に記載のデータストレージシステムであって、前記第2ストレージデバイスは、前記データの第1部分の全体が前記第1ストレージデバイスに送信される前に、自身の遅延の影響を受け始める、データストレージシステム。
  5. 請求項1に記載のデータストレージシステムであって、前記第1ストレージデバイスは、データを物理アドレスのリングバッファ構成中に記憶する、データストレージシステム。
  6. 請求項1に記載のデータストレージシステムであって、前記第1ストレージデバイスは、データを論理アドレスのサイクリックバッファ構成中に記憶する、データストレージシステム。
  7. 請求項1に記載のデータストレージシステムであって、
    前記第1不揮発性ストレージデバイスは固体メモリであり、
    前記第2不揮発性ストレージデバイスは磁気ハードディスクである、
    データストレージシステム。
  8. 請求項に記載のデータストレージシステムであって、前記固体メモリはフラッシュメモリシステムである、データストレージシステム。
  9. データストレージシステムであって、
    第1不揮発性ストレージデバイス
    前記第1不揮発性ストレージデバイスよりもより低速な平均アクセスタイムおよびより大きい容量を有する第2不揮発性ストレージデバイスであって、前記より低速な平均アクセスタイムは、前記第2不揮発性ストレージデバイスがデータをリードし始める前に必要な平均遅延である第2不揮発性ストレージデバイス
    データの第1部分を前記第1ストレージデバイスから、データの第2部分を前記第2ストレージデバイスから取り出すよう動作可能であるストレージコントローラであって、前記データの第1部分を収めるのに充分なスペースを予約するよう前記第2デバイスに指示すべく動作可能であり、かつ前記第2ストレージデバイス中の前記予約されたスペースに、前記データの第1部分を送るよう前記第1ストレージデバイスに続いて指示すべく動作可能である前記ストレージコントローラとを備え
    前記データの第1部分は、ヘッドデータであり、前記データの第2部分は、ボディデータであり、前記データの第1部分のための前記予約されたスペースと、該データの第1部分に対応するデータの第2部分とは、連続して配置され、
    前記ストレージコントローラは、前記第1不揮発性ストレージデバイスにおいてデータの前記第1部分をリード又はライトすることを完了する前に、前記データの第2部分をリード又はライトするために準備するよう前記第2不揮発性ストレージデバイスに指示し、且つ第2不揮発性ストレージデバイスの空き容量が所定の容量より少なく、前記第1または第2不揮発性ストレージデバイス中に含まれる前記データへのアクセスがリクエストされていない場合、前記データの前記第1部分を消去するよう前記第1揮発性ストレージデバイスに指示するとともに、前記予約されたスペースに前記データの前記第1部分をライトするよう第2揮発性ストレージデバイスに指示すべく動作可能である、データストレージシステム。
  10. データストレージシステムであって、
    ヘッドデータを記憶するよう動作可能である第1ストレージデバイスであって、前記ヘッドデータは連続したデータストリーム中のデータの第1部分である、第1ストレージデバイス
    前記第1ストレージデバイスよりもより低速な平均アクセスタイムおよびより大きい容量を有する第2ストレージデバイスであって、前記第2ストレージデバイスは、ボディデータを記憶するよう動作可能であって、前記ボディデータは、連続したデータストリーム中のデータの残りの部分である、第2ストレージデバイス
    前記ヘッドデータの位置および前記ボディデータの位置に関する情報を含むよう動作可能であるヘッドテーブル
    前記ヘッドテーブルを用いることによってデータ記憶リクエストを満足するよう動作可能であるストレージコントローラであって、前記ヘッドデータを収めるのに充分なスペースを予約するよう前記第2デバイスに指示すべく動作可能であり、かつ前記ストレージコントローラは、前記第2ストレージデバイス中の前記予約されたスペースに、前記ヘッドデータを送るよう前記第1ストレージデバイスに続いて指示すべく動作可能である前記ストレージコントローラとを備え、
    前記データの第1部分のための前記スペースと、該データの第1部分に対応するデータの第2部分とは、連続して配置され、
    前記ストレージコントローラは、前記第1ストレージデバイスにおいてデータの前記第1部分をリード又はライトすることを完了する前に、前記データの第2部分をリード又はライトするために準備するよう前記第2ストレージデバイスに指示し、且つ第1ストレージデバイスの空き容量が所定の容量より少なく、前記第1または第2ストレージデバイス中に含まれる前記データへのアクセスがリクエストされていない場合、前記データの前記第1部分を消去するよう前記第1ストレージデバイスに指示するとともに、前記予約されたスペースに前記データの前記第1部分をライトするよう第2ストレージデバイスに指示すべく動作可能である、データストレージシステム。
  11. データを記憶する方法であって、
    データアドレスにライトするためのライトコマンドをホストシステムバスから受け取ること、
    前記ホストシステムバスからデータフラグメントを受け取ること、
    第1ストレージデバイスに前記データフラグメントの第1部分を記憶すること、
    前記第1ストレージデバイスに前記データフラグメントの前記第1部分を記憶することが完了する前に、第2ストレージデバイスがデータをライトできるよう準備させること、および
    前記第2ストレージデバイスが準備できた後、前記第2ストレージデバイスに前記データフラグメントの残りの部分を記憶すること
    を備え、
    前記第2ストレージデバイスがデータをライトできるよう準備させることは、前記データアドレスおよび前記データフラグメントの前記第1部分を記憶するのに充分大きいオフセットに等しい第2アドレスにシークコマンドを送ることを含
    前記データフラグメントの第1部分は、ヘッドデータであり、前記データフラグメントの残り部分は、ボディデータであり、
    前記データフラグメントの第1部分が前記第1ストレージデバイス上に存在する場合、前記第2ストレージデバイスに、前記データフラグメントの第1部分を収めるのに充分、且つ前記データフラグメントの第1部分に対応する残り部分と連続のスペースを予約すること、
    第1ストレージデバイスの空き容量が所定の容量より少なく、前記第1または第2ストレージデバイス中に含まれる前記データフラグメントへのアクセスがリクエストされていない場合、前記第1ストレージデバイスから前記データの前記第1部分を消去するとともに、第2ストレージデバイスの前記予約されたスペースに前記データフラグメントの前記第1部分をライトすることをさらに含む、方法。
  12. 請求項1に記載の方法であって、データの前記第1部分およびデータの前記残りの部分の位置に関する情報を含むヘッドテーブルをアップデートすることをさらに含む、方法。
  13. 請求項11に記載の方法であって、もし前記第1ストレージデバイスが利用可能でないなら、前記データフラグメントの全体は前記第2ストレージデバイスだけに記憶される、方法。
  14. データを取り出す方法であって、
    データアドレスでデータをリードするためのリードコマンドをホストシステムバスから受け取ること、
    前記データの第1部分が第1ストレージデバイス上に存在するかを決定すること、
    もしデータの前記第1部分が前記第1ストレージデバイス上に存在するなら、
    前記データの前記第1部分を前記第1ストレージデバイスからリードすること、
    前記第1ストレージデバイスにおいてデータの前記第1部分をリードすることを完了する前に、第2ストレージデバイスが前記データの残りの部分をリードできるよう準備させること、および
    前記データの前記残りの部分をリードするよう前記第2ストレージデバイスが準備できた後、前記第2ストレージデバイスから前記データの残りの部分をリードすること、および
    もしデータの前記第1部分が前記第1ストレージデバイス上に存在しないなら、前記データの前記第1部分および前記データの前記残りの部分の両者を前記第2ストレージデバイスからリードすること
    を備え、
    もし前記データの第1部分が前記第1デバイス上に存在しないと決定されたなら、データの前記第1部分を前記第2ストレージデバイスから前記第1ストレージデバイスへコピーすることをさらに含
    前記データの第1部分は、ヘッドデータであり、前記データの残り部分は、ボディデータであり、
    前記データの第1部分が前記第1ストレージデバイス上に存在する場合、前記第2ストレージデバイスには、前記データの第1部分を収めるのに充分、且つ対応する前記データの残り部分と連続のスペースが予約されること、
    第1ストレージデバイスの空き容量が所定の容量より少なく、前記第1または第2ストレージデバイス中に含まれる前記データへのアクセスがリクエストされていない場合、前記第1ストレージデバイスから前記データの前記第1部分を消去するとともに、第2ストレージデバイスの前記予約されたスペースに前記データの前記第1部分をライトすることをさらに含む、方法。
  15. 請求項1に記載のデータを取り出す方法であって、
    データアドレスでデータをリードするためのリードコマンドをホストシステムバスから受け取ること、
    前記データの第1部分が第1ストレージデバイス上に存在するかを決定すること、
    もしデータの前記第1部分が前記第1ストレージデバイス上に存在するなら、
    前記データの前記第1部分を前記第1ストレージデバイスからリードすること、
    前記第1ストレージデバイスにおいて前記データの前記第1部分をリードすることを完了する前に、第2ストレージデバイスが前記データの残りの部分をリードできるよう準備させること、および
    前記データの前記残りの部分をリードするよう前記第2ストレージデバイスが準備できた後、前記第2ストレージデバイスから前記データの残りの部分をリードすること、および
    もしデータの前記第1部分が前記第1ストレージデバイス上に存在しないなら、前記データの前記第1部分および前記データの前記残りの部分の両者を前記第2ストレージデバイスからリードすること
    を備える方法であって、ヘッドマップテーブル中に前記データがリクエストされたことを示すフラグをセットすることをさらに含む、方法。
  16. 請求項1に記載の方法であって、もし前記第1ストレージデバイスが利用可能でないなら、前記データの第1部分および前記データの残りの部分の両者は、前記第2ストレージデバイスからリードされる、方法。
  17. データを記憶するコンピュータプログラムコードを少なくとも含むコンピュータで読み取り可能な媒体であって、
    データアドレスにライトするためのライトコマンドをホストシステムバスから受け取るコンピュータプログラムコード
    前記ホストシステムバスからデータフラグメントを受け取るコンピュータプログラムコード
    第1ストレージデバイスに前記データフラグメントの第1部分を記憶するコンピュータプログラムコード
    前記第1ストレージデバイスに前記データフラグメントの前記第1部分を記憶することが完了する前に、第2ストレージデバイスがデータをライトできるよう準備させる、少なくとも前記データアドレスおよび前記データフラグメントの前記第1部分を記憶するのに充分大きいオフセットに等しい第2アドレスにシークコマンドを送るコンピュータプログラムコード
    前記第2ストレージデバイスが準備できた後、前記第2ストレージデバイスに前記データフラグメントの残りの部分を記憶するコンピュータプログラムコードを備え、
    前記データの第1部分は、ヘッドデータであり、前記データの残り部分は、ボディデータであり、
    第1ストレージデバイスの空き容量が所定の容量より少なく、前記第1および第2ストレージデバイス中に含まれる前記データフラグメントへのアクセスがリクエストされていない場合、前記第1ストレージデバイスから前記データフラグメントの前記第1部分を消去するとともに、第2ストレージデバイスの前記オフセットが設定されたスペースに前記データフラグメントの前記第1部分を記憶するコンピュータプログラムコードとをさらに含む、コンピュータで読み取り可能な媒体。
  18. 請求項1に記載のデータストレージシステムであって、データの第2部分を第2揮発性ストレージデバイスにライトする前に第2ストレージデバイスがディスクアクセス動作を実行する場合、前記ストレージコントローラは、データの第1部分を第1揮発性ストレージデバイスにライトするようにさらに動作可能である、データストレージシステム。
  19. 請求項に記載のデータストレージシステムであって、前記第1ストレージデバイスは、データを論理アドレスのリングバッファ構成中に記憶し、前記ストレージコントローラは、周期的なパターンで前記第1揮発性ストレージデバイスの前記選択された第1部分を消去するかどうかを判定するようにさらに動作可能である、データストレージシステム。
  20. 請求項19に記載のデータストレージシステムであって、前記論理アドレスのリングバッファ構成は、前記ストレージコントローラにより制御される優先的なシステムに従って調整可能である、データストレージシステム。
  21. 回転ディスクドライブからデータのリード動作を改良する方法であって、
    前記回転ディスクドライブ内の定義された最初のアドレスでバーストデータをリードするための第1のコマンドをホストシステムバスから受け取ること、
    前記第1のコマンドに対するバーストデータの前記アドレスが前回アクセスされたアドレスと不連続であるかを判定すること、
    前記アドレスが不連続と判定された場合、前記回転ディスクドライブから前記リクエストされたデータをリードし、前記データの始めの部分を不揮発性メモリデバイスにコピーすること、
    次に、前記回転ディスクドライブの同一の前記最初のアドレスでバーストデータをリードするための第2のコマンドを前記ホストシステムから受信すること、
    前記第2のコマンドに対するバーストデータの前記アドレスが前回アクセスされたアドレスと不連続であるかを判定すること、
    前記アドレスが不連続と判定された場合、前記不揮発性メモリデバイスから前記リクエストされたデータの始めの部分をリードし、前記回転ディスクドライブから前記リクエストされたデータの残りをリードすることで、前記回転ディスクドライブのシークタイムに起因する、データを前記ホストシステムに供給する際の遅延を除去することを含
    前記データの始め部分は、ヘッドデータであり、前記データの残り部分は、ボディデータであり、
    前記データの始め部分が前記不揮発性メモリデバイス上に存在する場合、前記回転ディスクドライブに、前記データの始め部分を収めるのに充分、且つ対応するデータの残り部分と連続のスペースを予約すること、
    前記不揮発性メモリデバイスの空き容量が所定の容量より少なく、前記不揮発性メモリデバイスまたは前記回転ディスクドライブ中に含まれる前記データへのアクセスがリクエストされていない場合、前記不揮発性メモリデバイスから前記データの前記始め部分を消去するとともに、前記回転ディスクドライブの前記予約されたスペースに前記データの前記始め部分をライトすることをさらに含む、方法。
  22. 請求項21に記載の方法であって、前記回転ディスクドライブおよび前記不揮発性メモリデバイスは、コンピュータシステムの一部である、方法。
  23. 請求項22に記載の方法であって、前記不揮発性メモリデバイスは、半導体メモリである、方法。
  24. 請求項23に記載の方法であって、前記半導体メモリは、フラッシュメモリであり、前記回転ディスクドライブは、磁気ハードディスクドライブである、方法。
  25. コンピュータシステムにおいて提供されるハードドライブからデータのリード動作を改良する方法であって、
    前記ハードドライブ内の定義された最初のアドレスでデータをリードするためのリクエストをホストシステムから受け取ること、
    前記リクエストされたデータのアドレスが前回アクセスされたアドレスと連続であるかを判定すること、
    前記リクエストされたデータの前記アドレスが前記前回アクセスされたデータと連続である場合、前記ハードドライブから前記リクエストされたデータをリードすること、
    前記リクエストされたデータの前記アドレスが前記前回アクセスされたデータと連続ではないと判定された場合、前記リクエストされたデータの第1部分が不揮発性マスストレージデバイス上に存在するか判定すること、
    前記リクエストされたデータの第1部分が不揮発性マスストレージデバイス上に存在する場合、前記不揮発性マスストレージデバイスから前記リクエストされたデータの第1部分にリードし、前記ハードドライブから前記リクエストされたデータの残りをリードすること、
    前記リクエストされたデータの第1部分が不揮発性マスストレージデバイス上に存在しない場合、前記ハードドライブから前記リクエストされたデータをリードし、前記リクエストされたデータの第1部分を前記不揮発性マスストレージデバイスにコピーすることを含み、
    前記データの第1部分は、ヘッドデータであり、前記データの残りは、ボディデータであり、
    前記データの第1部分が前記不揮発性マスストレージデバイス上に存在する場合、前記ハードドライブに、前記データの第1部分を収めるのに充分、且つ対応するデータの残りと連続のスペースが予約されること、
    前記不揮発性マスストレージデバイスの空き容量が所定の容量より少なく、前記不揮発性マスストレージデバイスまたは前記ハードドライブ中に含まれる前記データへのアクセスがリクエストされていない場合、前記不揮発性マスストレージデバイスから前記データの前記第1部分を消去するとともに、前記ハードドライブの前記予約されたスペースに前記データの前記第1部分を記憶することをさらに含む、方法。
  26. コンピュータシステムにおけるハードドライブの動作を改良する方法であって、
    前記ハードドライブを前記コンピュータシステムのシステムバスに、前記システムバスおよび前記ハードドライブ間の双方向でデータを受け渡し可能にするインターフェースを介して接続すること、
    前記ハードドライブよりもより高速な平均アクセスタイムおよびより小さな容量を有する不揮発性マスストレージデバイスを前記システムバスに、前記システムバスおよび前記不揮発性マスストレージデバイス間の双方向でデータを受け渡し可能にするインターフェースを介して接続することであって、前記より高速な平均アクセスタイムは、前記不揮発性マスストレージデバイスがデータをライトし始める前に必要な平均遅延である、前記接続すること、
    前記コンピュータシステムから前記不揮発性マスストレージデバイスに前記第1部分を送信させ、前記コンピュータシステムから前記ハードドライブに前記第2部分を送信させるようにストレージコントローラを用いることを含み、
    前記データの第1部分は、ヘッドデータであり、前記データの第2部分は、ボディデータであり、
    前記不揮発性マスストレージデバイスにおいてデータの前記第1部分をリード又はライトすることを完了する前に、前記ハードドライブが前記データの第2部分をリード又はライトするために準備させるように前記ストレージコントローラを用いること、
    前記データの第1部分が前記不揮発性マスストレージデバイス上に存在する場合、前記ハードドライブに、前記データの第1部分を収めるのに充分、且つ対応するデータの残りと連続のスペースを予約させるように前記ストレージコントローラを用いること、
    前記ハードドライブの空き容量が所定の容量より少なく、前記不揮発性マスストレージデバイスまたは前記ハードドライブ中に含まれる前記データへのアクセスがリクエストされていない場合、前記不揮発性マスストレージデバイスに、前記データの前記第1部分を消去させるとともに、前記ハードドライブに、前記データの前記第1部分を前記予約されたスペースにライトさせるように前記ストレージコントローラを用いることをさらに含む、方法。
  27. 請求項1に記載のデータストレージシステムであって、
    前記ストレージコントローラは、
    前記第1ストレージデバイス内の定義された最初のアドレスでデータフラグメントをリードするための第1コマンドをホストシステムから受け取り、
    前記第1コマンドに対する前記データフラグメントのアドレスが前回アクセスされたアドレスと不連続であるかを判定し、
    前記アドレスが不連続であると判定された場合、前記第2ストレージデバイスから前記リクエストされたデータをリードし、前記データの始めの部分を第1ストレージデバイスにコピーすべく動作可能である、データストレージシステム。
  28. 請求項27に記載のデータストレージシステムであって、
    前記ストレージコントローラは、
    次に、前記第2ストレージデバイスの同じ最初のアドレスでデータフラグメントをリードするための第2コマンドを前記ホストシステムから受け取り、
    前記第2コマンドに対する前記データフラグメントのアドレスが前回アクセスされたアドレスと不連続であるかを判定し、
    前記アドレスが不連続であると判定された場合、前記第1ストレージデバイスから前記リクエストされたデータの残りをリードし、前記第2ストレージデバイスから前記リクエストされたデータの残りをリードすべく動作可能である、データストレージシステム。
  29. 請求項28に記載のデータストレージシステムであって
    前記第1ストレージデバイスは半導体メモリであり、前記第2ストレージデバイスはハードドライブであり、
    前記アドレスが不連続であると判定された場合、前記第1ストレージデバイスから前記リクエストされたデータの始めの部分のリードは、データの前記ホストシステムへの供給において不連続の前記アドレスに遷移する際のハードドライブのシーク遅延に起因する遅延を低減する働きをする、データストレージシステム。
  30. コンピュータシステムのハードドライブの動作を改良する方法であって、
    前記ハードドライブを前記コンピュータシステムのシステムバスに、前記システムバスおよび前記ハードドライブ間の双方向でデータを受け渡し可能にするインターフェースを介して接続すること、
    前記ハードドライブよりもより高速な平均アクセスタイムおよびより小さな容量を有する不揮発性マスストレージデバイスを前記システムバスに、前記システムバスおよび前記不揮発性マスストレージデバイス間の双方向でデータを受け渡し可能にするインターフェースを介して接続することであって、前記より高速な平均アクセスタイムは、前記不揮発性マスストレージデバイスがデータをリードし始める前に必要な平均遅延である、前記接続すること、
    前記不揮発性マスストレージデバイスからデータの第1部分を前記コンピュータシステムにリターンし、前記ハードドライブからデータの第2部分をリターンするようにストレージコントローラを用いることを含み、
    前記データの第1部分は、ヘッドデータであり、前記データの第2部分は、ボディデータであり、
    前記不揮発性マスストレージデバイスにおいてデータの前記第1部分をリード又はライトすることを完了する前に、前記ハードドライブが前記データの第2部分をリード又はライトするために準備させるようにストレージコントローラを用いること、
    前記データの第1部分が前記不揮発性マスストレージデバイス上に存在する場合、前記ハードドライブに、前記データの第1部分を収めるのに充分、且つ対応するデータの残りと連続のスペースを予約させるように前記ストレージコントローラを用いること、
    前記不揮発性マスストレージデバイスの空き容量が所定の容量より少なく、前記不揮発性マスストレージデバイスまたは前記ハードドライブ中に含まれる前記データへのアクセスがリクエストされていない場合、前記不揮発性マスストレージデバイスに、前記データの前記第1部分を消去させるとともに、前記ハードドライブに、前記データの前記第1部分を前記予約されたスペースにライトさせるようにストレージコントローラを用いることをさらに含む、方法。
  31. 請求項1に記載のデータストレージシステムであって、
    前記データの第1部分はヘッドデータを備え、前記不揮発性ストレージデバイスは、連続したデータストリーム中のデータの第1部分である前記ヘッドデータを格納すべく動作可能であり、
    前記データの第2部分はボディデータを備え、第2ストレージデバイスはボディデータを記憶すべく動作可能であり、前記ボディデータは、連続したデータストリーム中のデータの残り部分であり、
    前記ヘッドデータの前記位置および前記ボディデータの前記位置に関する情報を含むよう使用可能であるヘッドテーブルを備え、
    ストレージコントローラは、前記ヘッドテーブルを用いることによりデータストレージリクエストに応じるようさらに動作可能である、データストレージシステム。
  32. 請求項14に記載のデータを取り出す方法であって、
    前記第1ストレージデバイスが利用可能ではない場合、データの前記第1部分とデータの残り部分は前記第2ストレージデバイスからリードされる、取り出す方法。
JP2006552117A 2004-02-04 2005-01-05 マスストレージアクセラレータ Expired - Fee Related JP4777263B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/772,789 2004-02-04
US10/772,789 US7127549B2 (en) 2004-02-04 2004-02-04 Disk acceleration using first and second storage devices
PCT/US2005/000275 WO2005081097A2 (en) 2004-02-04 2005-01-05 Mass storage accelerator

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011109493A Division JP2011192298A (ja) 2004-02-04 2011-05-16 マスストレージアクセラレータ

Publications (3)

Publication Number Publication Date
JP2007522560A JP2007522560A (ja) 2007-08-09
JP2007522560A5 JP2007522560A5 (ja) 2008-02-14
JP4777263B2 true JP4777263B2 (ja) 2011-09-21

Family

ID=34808627

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2006552117A Expired - Fee Related JP4777263B2 (ja) 2004-02-04 2005-01-05 マスストレージアクセラレータ
JP2011109493A Pending JP2011192298A (ja) 2004-02-04 2011-05-16 マスストレージアクセラレータ
JP2013159593A Pending JP2013218741A (ja) 2004-02-04 2013-07-31 マスストレージアクセラレータ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2011109493A Pending JP2011192298A (ja) 2004-02-04 2011-05-16 マスストレージアクセラレータ
JP2013159593A Pending JP2013218741A (ja) 2004-02-04 2013-07-31 マスストレージアクセラレータ

Country Status (7)

Country Link
US (2) US7127549B2 (ja)
EP (2) EP2241966A3 (ja)
JP (3) JP4777263B2 (ja)
KR (1) KR101200670B1 (ja)
CN (1) CN100570546C (ja)
TW (1) TWI360050B (ja)
WO (1) WO2005081097A2 (ja)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
DE112004001255T5 (de) * 2003-07-07 2006-06-08 Hitachi ULSI Systems Co., Ltd., Kodaira Speichervorrichtung und Speichersystem
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7472222B2 (en) * 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
SG126788A1 (en) * 2005-04-19 2006-11-29 Trek 2000 Int Ltd Interface for non-volatile memories
US7318118B2 (en) * 2005-07-14 2008-01-08 Hitachi Global Storage Technologies B.V. System and method for selective write to flash memory in HDD
KR101345033B1 (ko) 2005-08-26 2013-12-30 톰슨 라이센싱 개선된 트릭 재생을 위한 트랜스코딩된 이미지
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
JP2008033412A (ja) * 2006-07-26 2008-02-14 Hitachi Ltd 計算機システムの性能管理方法、管理計算機、及びストレージ装置
US20080072084A1 (en) * 2006-09-20 2008-03-20 Chao-Kuang Yang Method for Power Management
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US20080244105A1 (en) * 2007-03-27 2008-10-02 Rothman Michael A Enhancing performance of input-output (i/o) components
JP4925230B2 (ja) * 2007-06-08 2012-04-25 株式会社東芝 記憶装置、記憶制御装置及び制御方法
US8032699B2 (en) * 2007-06-15 2011-10-04 Seagate Technology Llc System and method of monitoring data storage activity
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US20090006720A1 (en) * 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
US20090002863A1 (en) * 2007-06-29 2009-01-01 Seagate Technology, Llc System and method of monitoring data operations at a data storage device
US8122322B2 (en) 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8416657B2 (en) * 2007-12-03 2013-04-09 Mediatek Inc. Method and system for managing data from host to optical disc
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US20090172048A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Memory storage of file fragments
US8327095B2 (en) * 2008-06-06 2012-12-04 International Business Machines Corporation Maintaining information of a relationship of target volumes comprising logical copies of a source volume
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR101521493B1 (ko) 2008-07-16 2015-05-19 시게이트 테크놀로지 엘엘씨 통신 속도를 조절할 수 있는 컨트롤러, 상기 컨트롤러를포함하는 데이터 저장 장치, 및 상기 데이터 저장 장치를포함하는 데이터 통신 시스템
KR101459520B1 (ko) * 2008-07-16 2014-11-07 시게이트 테크놀로지 엘엘씨 기입 속도를 향상시킬 수 있는 데이터 저장 장치, 및 이를포함하는 데이터 저장 시스템
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
WO2010041093A1 (en) 2008-10-09 2010-04-15 Federico Tiziani Virtualized ecc nand
US8112580B2 (en) * 2009-01-19 2012-02-07 Hitachi Global Storage Technologies Netherlands B.V. Disk drive having multiple disk surfaces accessible by a read/write head and nonvolatile memory for continuous data transfer
US20100199036A1 (en) * 2009-02-02 2010-08-05 Atrato, Inc. Systems and methods for block-level management of tiered storage
JP2010211858A (ja) 2009-03-09 2010-09-24 Sony Corp 記録再生装置及び記録再生方法
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US8447918B2 (en) 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US20100262979A1 (en) * 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US8516264B2 (en) * 2009-10-09 2013-08-20 Lsi Corporation Interlocking plain text passwords to data encryption keys
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8176367B2 (en) * 2009-05-28 2012-05-08 Agere Systems Inc. Systems and methods for managing end of life in a solid state drive
US8151137B2 (en) * 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
KR20140040870A (ko) * 2009-07-07 2014-04-04 엘에스아이 코포레이션 계층화된 비휘발성 스토리지를 위한 시스템 및 방법
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8458416B2 (en) * 2009-09-08 2013-06-04 Lsi Corporation Systems and methods for selecting bit per cell density of a memory cell based on data typing
US20110060865A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Flash Memory Utilization
US8243546B2 (en) * 2009-09-08 2012-08-14 Lsi Corporation Systems and methods for peak power and/or EMI reduction
US8174912B2 (en) * 2009-09-08 2012-05-08 Lsi Corporation Systems and methods for circular buffering control in a memory device
US8381077B2 (en) * 2009-09-08 2013-02-19 Lsi Corporation Systems and methods for implementing error correction in relation to a flash memory
US20110060862A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Switchable Memory Configuration
US8243536B2 (en) * 2009-09-08 2012-08-14 Lsi Corporation Systems and methods for increasing bit density in a memory cell
US8499220B2 (en) * 2009-09-08 2013-07-30 Lsi Corporation Systems and methods for re-designating memory regions as error code corrected memory regions
US8560765B2 (en) * 2009-09-08 2013-10-15 Lsi Corporation Systems and methods for variable level use of a multi-level flash memory
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8996785B2 (en) * 2009-09-21 2015-03-31 Aplus Flash Technology, Inc. NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface
US8775719B2 (en) * 2009-09-21 2014-07-08 Aplus Flash Technology, Inc. NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with parallel interface
CN102103545B (zh) * 2009-12-16 2013-03-27 中兴通讯股份有限公司 一种数据缓存的方法、装置及系统
US8463984B2 (en) * 2009-12-31 2013-06-11 Seagate Technology Llc Dynamic data flow management in a multiple cache architecture
US8289768B2 (en) * 2010-01-22 2012-10-16 Lsi Corporation Systems and methods for extended life multi-bit memory cells
US8756387B2 (en) * 2010-03-05 2014-06-17 International Business Machines Corporation Method and apparatus for optimizing the performance of a storage system
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8504766B2 (en) 2010-04-15 2013-08-06 Netapp, Inc. Methods and apparatus for cut-through cache management for a mirrored virtual volume of a virtualized storage system
US8489940B2 (en) 2010-04-16 2013-07-16 Netapp, Inc. Methods and apparatus for managing asynchronous dependent I/O for a virtual fibre channel target
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
JP4988008B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
USRE49818E1 (en) * 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
JP4988007B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
US9213628B2 (en) * 2010-07-14 2015-12-15 Nimble Storage, Inc. Methods and systems for reducing churn in flash-based cache
JP4886887B2 (ja) * 2010-07-23 2012-02-29 株式会社東芝 コマンド管理装置及び同コマンド管理装置を備えた記憶装置
US8261003B2 (en) 2010-08-11 2012-09-04 Lsi Corporation Apparatus and methods for managing expanded capacity of virtual volumes in a storage system
US8176218B2 (en) 2010-08-11 2012-05-08 Lsi Corporation Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller
US8255634B2 (en) * 2010-08-11 2012-08-28 Lsi Corporation Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8560759B1 (en) * 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US20120275046A1 (en) * 2011-04-27 2012-11-01 Toshiba America Information Systems, Inc. Splitting a data stream between two storage media in a hybrid disk drive
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
KR101342658B1 (ko) 2011-12-06 2013-12-16 주식회사 디에이아이오 비휘발성 메모리 시스템 및 그 구성 방법
KR20130064521A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US9128949B2 (en) * 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9009392B2 (en) 2012-04-25 2015-04-14 International Business Machines Corporation Leveraging a hybrid infrastructure for dynamic memory allocation and persistent file storage
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
CN107704198B (zh) * 2012-12-17 2020-01-31 联想(北京)有限公司 信息处理的方法及电子设备
US10073851B2 (en) 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9164828B2 (en) 2013-09-26 2015-10-20 Seagate Technology Llc Systems and methods for enhanced data recovery in a solid state memory system
US9424179B2 (en) 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9201729B2 (en) 2013-10-21 2015-12-01 Seagate Technology, Llc Systems and methods for soft data utilization in a solid state memory system
US9378840B2 (en) 2013-10-28 2016-06-28 Seagate Technology Llc Systems and methods for sub-zero threshold characterization in a memory cell
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9276609B2 (en) 2013-11-16 2016-03-01 Seagate Technology Llc Systems and methods for soft decision generation in a solid state memory system
US9576683B2 (en) 2014-02-06 2017-02-21 Seagate Technology Llc Systems and methods for hard error reduction in a solid state memory device
US9378810B2 (en) 2014-02-11 2016-06-28 Seagate Technology Llc Systems and methods for last written page handling in a memory device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9672107B1 (en) * 2015-02-11 2017-06-06 Western Digital Technologies, Inc. Data protection for a data storage device
US9942324B2 (en) * 2015-08-05 2018-04-10 Futurewei Technologies, Inc. Rebalancing and elastic storage scheme with elastic named distributed circular buffers
CN106469119B (zh) * 2015-08-10 2020-07-07 北京忆恒创源科技有限公司 一种基于nvdimm的数据写缓存方法及其装置
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
US9886209B2 (en) * 2016-02-16 2018-02-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling file placement on a disk drive to improve file access
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
DE102016211386A1 (de) * 2016-06-14 2017-12-14 Robert Bosch Gmbh Verfahren zum Betreiben einer Recheneinheit
US10459658B2 (en) * 2016-06-23 2019-10-29 Seagate Technology Llc Hybrid data storage device with embedded command queuing
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
KR102586768B1 (ko) 2018-03-27 2023-10-16 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그것의 동작방법
KR102655094B1 (ko) * 2018-11-16 2024-04-08 삼성전자주식회사 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US408357A (en) * 1889-08-06 William ruttan
JPH08195022A (ja) * 1994-11-14 1996-07-30 Sega Enterp Ltd ディスク再生装置、カラオケシステム及びディスク再生方法
US5708846A (en) * 1995-02-24 1998-01-13 Intel Corporation System for retrieving initial data sequence corresponding to next data sequence while locating next data sequence when branch point is reached during current data sequence
US5754888A (en) * 1996-01-18 1998-05-19 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
JP2000285590A (ja) * 1999-03-26 2000-10-13 Sony Corp ディスク装置
JP2001189912A (ja) * 1999-10-21 2001-07-10 Sanyo Electric Co Ltd デジタルtv放送記録再生装置
JP2002133835A (ja) * 2000-10-27 2002-05-10 Sharp Corp 記録装置
JP2003123381A (ja) * 2001-10-11 2003-04-25 Sony Computer Entertainment Inc ディスク再生装置及び方法、メモリ制御プログラム、メモリ制御プログラムを記録した記録媒体
JP2003125358A (ja) * 2001-10-18 2003-04-25 Sony Corp 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体
US6646948B1 (en) * 2002-08-29 2003-11-11 Motorola, Inc. Data storage system utilizing a non-volatile IC based memory for reduction of data retrieval time

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896262A (en) 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5778418A (en) 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
JPH0590669U (ja) * 1992-05-20 1993-12-10 ミツミ電機株式会社 再生装置
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5542066A (en) 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
JPH0883148A (ja) 1994-09-13 1996-03-26 Nec Corp 磁気ディスク装置
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
GB9613088D0 (en) 1996-06-21 1996-08-28 Memory Corp Plc Memory device
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6424486B2 (en) * 1997-12-17 2002-07-23 Texas Instruments Incorporated Method and apparatus for positioning a read/write head of a hard disk drive
US6286056B1 (en) * 1998-06-26 2001-09-04 Seagate Technology Llc Data storage device with small computer system interface providing persistent reservations
US6408357B1 (en) 1999-01-15 2002-06-18 Western Digital Technologies, Inc. Disk drive having a cache portion for storing write data segments of a predetermined length
US6370614B1 (en) 1999-01-26 2002-04-09 Motive Power, Inc. I/O cache with user configurable preload
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
JP4523150B2 (ja) 2000-12-27 2010-08-11 レノボ シンガポール プライヴェート リミテッド データサーバシステム、コンピュータ装置、記憶媒体
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6631456B2 (en) 2001-03-06 2003-10-07 Lance Leighnor Hypercache RAM based disk emulation and method
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US7024614B1 (en) * 2002-12-24 2006-04-04 Western Digital Technologies, Inc. Disk drive employing a configuration data structure comprising a plurality of configuration parameters to facilitate disk commands
US20050125603A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. Method for rapid availability of critical data through re-allocation
US20050125600A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. Method for storing HDD critical data in flash
US20050125602A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. HDD with storage of critical data in FLASH

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US408357A (en) * 1889-08-06 William ruttan
JPH08195022A (ja) * 1994-11-14 1996-07-30 Sega Enterp Ltd ディスク再生装置、カラオケシステム及びディスク再生方法
US5708846A (en) * 1995-02-24 1998-01-13 Intel Corporation System for retrieving initial data sequence corresponding to next data sequence while locating next data sequence when branch point is reached during current data sequence
US5754888A (en) * 1996-01-18 1998-05-19 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
JP2000285590A (ja) * 1999-03-26 2000-10-13 Sony Corp ディスク装置
JP2001189912A (ja) * 1999-10-21 2001-07-10 Sanyo Electric Co Ltd デジタルtv放送記録再生装置
JP2002133835A (ja) * 2000-10-27 2002-05-10 Sharp Corp 記録装置
JP2003123381A (ja) * 2001-10-11 2003-04-25 Sony Computer Entertainment Inc ディスク再生装置及び方法、メモリ制御プログラム、メモリ制御プログラムを記録した記録媒体
JP2003125358A (ja) * 2001-10-18 2003-04-25 Sony Corp 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体
US6646948B1 (en) * 2002-08-29 2003-11-11 Motorola, Inc. Data storage system utilizing a non-volatile IC based memory for reduction of data retrieval time

Also Published As

Publication number Publication date
CN1934529A (zh) 2007-03-21
US7310699B2 (en) 2007-12-18
TW200604796A (en) 2006-02-01
EP1716477A2 (en) 2006-11-02
KR20070001136A (ko) 2007-01-03
JP2011192298A (ja) 2011-09-29
US7127549B2 (en) 2006-10-24
KR101200670B1 (ko) 2012-11-12
CN101685382A (zh) 2010-03-31
EP2241966A3 (en) 2010-11-17
US20070028040A1 (en) 2007-02-01
JP2007522560A (ja) 2007-08-09
US20050172067A1 (en) 2005-08-04
EP2241966A2 (en) 2010-10-20
TWI360050B (en) 2012-03-11
JP2013218741A (ja) 2013-10-24
WO2005081097A2 (en) 2005-09-01
CN100570546C (zh) 2009-12-16
WO2005081097A3 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
JP4777263B2 (ja) マスストレージアクセラレータ
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US8208322B2 (en) Non-volatile memory control
JP5129484B2 (ja) デュアルメディアストレージデバイス
KR100610647B1 (ko) 직접실행제어 기능과 스토리지 기능이 복합된 대용량저장장치
US20130212320A1 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
US20240070067A1 (en) Storage device including nonvolatile memory device and operating method of storage device
CN101685382B (zh) 使用第一及第二存储装置的磁盘加速

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110520

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110610

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4777263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees