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

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

Info

Publication number
JP2011192298A
JP2011192298A JP2011109493A JP2011109493A JP2011192298A JP 2011192298 A JP2011192298 A JP 2011192298A JP 2011109493 A JP2011109493 A JP 2011109493A JP 2011109493 A JP2011109493 A JP 2011109493A JP 2011192298 A JP2011192298 A JP 2011192298A
Authority
JP
Japan
Prior art keywords
data
storage device
address
read
reading
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
JP2011109493A
Other languages
English (en)
Inventor
Alan Welsh Sinclair
ウェルシュ シンクレア、アラン
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 JP2011192298A publication Critical patent/JP2011192298A/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
    • 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

Abstract

【課題】 データストレージデバイスを提供する。
【解決手段】 ディスクデバイスは、不揮発性メモリデバイスと結合されて、ディスクデバイス単体で達成されるよりもより短いライトアクセスタイムおよびより高いデータライトスピードを提供する。2つのストレージデバイス間でセクタライトのバーストをインターリーブすることは、実効的にはディスクデバイスのシークタイムの効果をなくしえる。ホストシステムからの不連続な論理アドレス遷移に続いて、ストレージコントローラは、現在のデータを不揮発性メモリデバイスにライトしながら、ルックアヘッド動作をディスクデバイス上で実行できる。このようなシステムは、不揮発性メモリデバイスの本質的により速いライトアクセスを利用して、ディスクシークタイムによってふつう生じるデッドタイムをなくしえる。
【選択図】 図2A

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ストレージデバイスからリードされる。
本発明の他の局面および優位性は、添付の図面と併せて以下の詳細な説明から明らかになろう。図面は例示的に本発明の原理を示す。
本発明を利用できる例示的汎用コンピュータシステムを示す図である。 図1Aの汎用コンピュータシステムの要約された表現を示す図である。 本発明の例示的実施形態による改良されたマスストレージデバイスを示す図である。 本発明の他の例示的実施形態による改良されたマスストレージデバイスを示す図である。 ハードドライブアドレス空間およびフラッシュアドレス空間内のヘッドデータおよびボディデータの要約された表現を示す図である。 改良されたマスストレージデバイスの全体に対するハードドライブアドレス空間およびフラッシュアドレス空間内の要約された表現を示す図である。 ディスクアクセラレーションを用いないシステムによってライトコマンドが受け取られるときに起こる従来のライト処理を示すタイミング図である。 本発明の例示的実施形態によるディスクアクセラレーションを用いるシステムによってライトコマンドが受け取られるときに起こるライト処理を示すタイミング図である。 フラッシュ容量が増すときのシステムパフォーマンスの効果を示す図である。 改良されたマスストレージデバイスの利用が減るときのシステムパフォーマンスの効果を示す図である。 リングバッファの定型化された表現を示す図である。 本発明の例示的実施形態による例示的ライト技術のフロー図である。 本発明の例示的実施形態による例示的リード技術のフロー図である。 図6のリングバッファ内のセクタ記憶位置のマップの図である。
本発明は、添付の図面と併せて以下の詳細な説明によって容易に理解されよう。
図面において同様の参照番号は同様の構成要素を示すことが理解されよう。また図中の描写は必ずしも正しい縮尺ではないことが理解されよう。
以下の記載において、本発明の完全な理解を提供するために多くの具体的な詳細が述べられる。しかし、本発明はこれら特定の詳細の一部または全てがなくても実施されえることが当業者には明らかだろう。あるいは、よく知られたプロセスステップは、本発明を不必要にぼかさないために詳細には記載されていない。
本発明は、それぞれ長所および短所を有する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)などを含みえる。したがって、特許証によって保護されるべきであると意図されるものは、特許請求の範囲に記載され、特許請求の範囲の精神および範囲内に入る全ての改変物および変更物を含む。

Claims (9)

  1. 回転ディスクドライブを有するデータストレージシステムであって、
    前記回転ディスクドライブの設定されたスタートアドレスを有するバーストデータをリードするための第1コマンドをホストシステムから受信する手段と、
    前記第1コマンドの前記バーストデータの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを判定する手段と、
    前記アドレスが不連続であると判定される場合、前記要求されたデータを前記回転ディスクドライブからリードし、前記データの初期位置を不揮発性メモリデバイスにコピーする手段と、
    前記回転ディスクドライブの同一の前記スタートアドレスを有するバーストデータをリードするための第2コマンドをホストシステムから受信する手段と、
    前記バーストデータの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第2コマンドから判定する手段と、
    前記アドレスが不連続であると判定される場合、前記要求されたデータの初期位置を前記不揮発性メモリからリードし、前記要求されたデータの残り部分を前記回転ディスクドライブからリードすることにより、前記回転ディスクドライブにおけるシークタイムに起因する前記ホストシステムへのデータ供給の遅延を除去する手段と、
    を備える、データストレージシステム。
  2. 前記回転ディスクドライブおよび前記不揮発性メモリは、コンピュータシステムの一部であり、前記不揮発性メモリは、前記コンピュータシステムから取り外し可能であり、且つフラッシュメモリを含む半導体メモリであり、前記回転ディスクドライブは、磁気ハードディスクドライブである、請求項1に記載のデータストレージシステム。
  3. コンピュータシステムに提供されるハードドライブからのデータのリード処理を向上させる方法であって、
    前記ハードドライブの設定されたスタートアドレスを有するバーストデータをリードするためのリクエストをホストシステムから受信すること、
    前記要求されたリクエストの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを判定すること、
    前記要求されたリクエストの前記アドレスが、前にアクセスされたアドレスと連続する場合、前記ハードドライブから前記要求されたデータをリードすること、
    前記要求されたリクエストのアドレスが、前にアクセスされたアドレスと連続ではない場合、前記要求されたデータの第1部分が不揮発性マスストレージデバイスに存在するかどうかを判定すること、
    前記要求されたデータの前記第1部分が前記不揮発性マスストレージデバイスに存在する場合、前記要求されたデータの前記第1部分を前記不揮発性マスストレージデバイスからリードし、前記要求されたデータの残りの部分を前記ハードドライブからリードすること、
    前記要求されたデータの前記第1部分が前記不揮発性マスストレージデバイスに存在しない場合、前記要求されたデータの前記第1部分を前記ハードドライブからリードし、前記要求されたデータの前記第1部分を前記不揮発性マスストレージデバイスにコピーすること、を備える方法。
  4. 前記ハードドライブおよび前記不揮発性マスストレージデバイスは、コンピュータシステムの一部であり、前記不揮発性マスストレージデバイスは、前記コンピュータシステムから取り外し可能であり、且つフラッシュメモリを含む半導体メモリであり、前記ハードドライブは、磁気ハードディスクドライブである、請求項3に記載の方法。
  5. データストレージシステムであって、
    第1不揮発性ストレージデバイスと、
    前記第1不揮発性ストレージデバイスよりもより遅い平均アクセスタイムおよびより大きい容量を有する第2不揮発性ストレージデバイスであって、前記より遅い平均アクセスタイムは、前記第2不揮発性ストレージデバイスがデータをリードし始める前に必要な平均遅延である、前記第2不揮発性ストレージデバイスと、
    ストレージコントローラであって、
    前記第1ストレージデバイスからデータの第1部分をリードさせ、前記第2ストレージデバイスからデータの第2部分をリードさせ、
    前記第2ストレージデバイスの設定されたスタートアドレスを有するデータフラグメントをリードするための第1コマンドをホストシステムから受信し、
    前記データフラグメントの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第1コマンドから判定し、
    前記アドレスが不連続であると判定された場合、前記第2ストレージデバイスから前記要求されたデータをリードさせ、前記データの初期位置を前記第1ストレージデバイスにコピーさせるように動作可能である前記ストレージコントローラと、を備える、データストレージシステム。
  6. 前記ストレージコントローラは、
    前記第2ストレージデバイスの同一の前記スタートアドレスを有するデータフラグメントをリードするための第2コマンドをホストシステムから受信し、
    前記データフラグメントの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第2コマンドから判定し、
    前記アドレスが不連続であると判定された場合、前記要求されたデータの初期位置を前記第1ストレージデバイスからリードさせ、前記要求されたデータの残り部分を前記第2ストレージデバイスからリードさせるようにさらに動作可能である、請求項5に記載のデータストレージシステム。
  7. 前記第1ストレージデバイスは半導体メモリであり、前記第2ストレージデバイスはハードドライブであり、
    前記アドレスが不連続であると判定された場合、前記要求されたデータの初期位置を前記第1ストレージデバイスからリードすることにより、前記不連続なアドレスへの遷移における前記ハードドライブのシーク遅延に起因する前記ホストシステムへのデータ供給の遅延を低減させる、請求項6に記載のデータストレージシステム。
  8. データをリードする方法であって、
    データアドレスのデータをリードするためのリードコマンドをホストシステムから受信すること、
    前記データの第1部分が第1ストレージデバイスに存在するかどうかを判定すること、
    前記データの第1部分が前記第1ストレージデバイスに存在する場合、前記第1ストレージデバイスから前記データの前記第1部分をリードすること、
    前記第1ストレージデバイスにおける前記データの前記第1部分のリードが完了する前に、前記データの残り部分をリードするための準備を第2ストレージデバイスにさせること、
    前記第2ストレージデバイスが前記データの前記残り部分をリードする準備が完了した後に、前記データの残り部分を前記第2ストレージデバイスからリードすること、
    前記データの第1部分が前記第1ストレージデバイスに存在しない場合、前記データの第1部分および前記データの残り部分の両方を前記第2ストレージデバイスからリードすること、を備える、方法。
  9. 前記データの第1部分および前記データの残り部分の両方は、前記第1ストレージデバイスが利用可能ではない場合に前記第2ストレージデバイスからリードされる、請求項8に記載の方法。
JP2011109493A 2004-02-04 2011-05-16 マスストレージアクセラレータ Pending JP2011192298A (ja)

Applications Claiming Priority (2)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006552117A Division JP4777263B2 (ja) 2004-02-04 2005-01-05 マスストレージアクセラレータ

Related Child Applications (1)

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

Publications (1)

Publication Number Publication Date
JP2011192298A true JP2011192298A (ja) 2011-09-29

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 Before (1)

Application Number Title Priority Date Filing Date
JP2006552117A Expired - Fee Related JP4777263B2 (ja) 2004-02-04 2005-01-05 マスストレージアクセラレータ

Family Applications After (1)

Application Number Title Priority Date Filing Date
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
WO2005003952A1 (ja) * 2003-07-07 2005-01-13 Hitachi Ulsi Systems Co., Ltd. 記憶装置および記憶システム
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
US8712169B2 (en) * 2005-08-26 2014-04-29 Thomson Licensing Transcoded images for improved trick play
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
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
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
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
US20090006720A1 (en) * 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
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
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
CN102272730B (zh) 2008-10-09 2017-05-24 美光科技公司 经虚拟化错误校正码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 記録再生装置及び記録再生方法
US8595572B2 (en) 2009-04-08 2013-11-26 Google Inc. Data storage device with metadata command
US20100262979A1 (en) * 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8516264B2 (en) * 2009-10-09 2013-08-20 Lsi Corporation Interlocking plain text passwords to data encryption keys
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8352689B2 (en) * 2009-11-30 2013-01-08 Lsi Corporation Command tag checking in a multi-initiator media controller architecture
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
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
US20120102261A1 (en) * 2009-07-07 2012-04-26 Harley Burger Systems and Methods for Tiered Non-Volatile Storage
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
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
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
US8381077B2 (en) * 2009-09-08 2013-02-19 Lsi Corporation Systems and methods for implementing error correction in relation to a flash memory
US20110060865A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Flash Memory Utilization
US8174912B2 (en) * 2009-09-08 2012-05-08 Lsi Corporation Systems and methods for circular buffering control in a memory device
US8243546B2 (en) * 2009-09-08 2012-08-14 Lsi Corporation Systems and methods for peak power and/or EMI reduction
US8560765B2 (en) * 2009-09-08 2013-10-15 Lsi Corporation Systems and methods for variable level use of a multi-level flash memory
US20110060862A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Switchable Memory Configuration
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
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
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
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
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 株式会社東芝 情報処理装置およびドライバ
JP4988008B2 (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
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
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
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
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
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting 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
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture 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
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
CN103870208B (zh) * 2012-12-17 2017-08-25 联想(北京)有限公司 信息处理的方法及电子设备
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
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
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
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
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
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
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
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
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
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
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash 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 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그것의 동작방법
DE102019117794A1 (de) * 2018-11-16 2020-06-10 Samsung Electronics Co., Ltd. Speichervorrichtungen, die heterogene Prozessoren umfassen, welche sich Speicher teilen, und Verfahren zu deren Betrieb

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US408357A (en) * 1889-08-06 William ruttan
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 磁気ディスク装置
JPH08195022A (ja) * 1994-11-14 1996-07-30 Sega Enterp Ltd ディスク再生装置、カラオケシステム及びディスク再生方法
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
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
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
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
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
JP2000285590A (ja) * 1999-03-26 2000-10-13 Sony Corp ディスク装置
JP2001189912A (ja) * 1999-10-21 2001-07-10 Sanyo Electric Co Ltd デジタルtv放送記録再生装置
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
JP2002133835A (ja) * 2000-10-27 2002-05-10 Sharp Corp 記録装置
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
JP3770138B2 (ja) * 2001-10-18 2006-04-26 ソニー株式会社 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体
JP2003123381A (ja) * 2001-10-11 2003-04-25 Sony Computer Entertainment Inc ディスク再生装置及び方法、メモリ制御プログラム、メモリ制御プログラムを記録した記録媒体
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
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
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
US20050125603A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. Method for rapid availability of critical data through re-allocation

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4777263B2 (ja) マスストレージアクセラレータ
US7302534B2 (en) Dual media storage device
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
KR101245011B1 (ko) 복수의 전달을 큐잉하는 방법, 복수의 불연속 어드레스 범위 전달 요청 방법, 제품 및 시스템
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
WO2011075477A1 (en) Efficient use of flash memory in flash drives
KR101515621B1 (ko) 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
US20240070067A1 (en) Storage device including nonvolatile memory device and operating method of storage device
CN101685382B (zh) 使用第一及第二存储装置的磁盘加速

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130716

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140328

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140402

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141007