JP2012513060A - 均一な読み出し待ち時間のための冗長なデータ記憶 - Google Patents

均一な読み出し待ち時間のための冗長なデータ記憶 Download PDF

Info

Publication number
JP2012513060A
JP2012513060A JP2011542097A JP2011542097A JP2012513060A JP 2012513060 A JP2012513060 A JP 2012513060A JP 2011542097 A JP2011542097 A JP 2011542097A JP 2011542097 A JP2011542097 A JP 2011542097A JP 2012513060 A JP2012513060 A JP 2012513060A
Authority
JP
Japan
Prior art keywords
data
memory
write
read
banks
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.)
Granted
Application number
JP2011542097A
Other languages
English (en)
Other versions
JP5654480B2 (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2012513060A publication Critical patent/JP2012513060A/ja
Application granted granted Critical
Publication of JP5654480B2 publication Critical patent/JP5654480B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

メモリ装置(100、200、300、500、600、700)は複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)を有し、メモリバンク(d0〜d7、m0〜m3、p、p0、p1)に対する書き込み又は消去操作が、バンク(d0〜d7、m0〜m3、p、p0、p1)に対する読み出し操作よりもかなり遅い。メモリ装置(100、200、300、500、600、700)は、主記憶場所が書き込み操作および消去操作の少なくとも1つを受けている際にデータの問い合わせに応じてデータのメモリバンク(d0〜d7、m0〜m3、p、p0、p1)における前記主記憶場所の代わりにデータの冗長な記憶領域を読み出すか、又は要求されたデータを再構成するように構成される。
【選択図】図9A

Description

背景
半導体メモリは、データ記憶のために多くのコンピュータ及び電子デバイスにより使用されるデジタル記憶装置の一種である。ソリッドステート(半導体)回路のパッケージングは概して、磁気ディスクドライブよりも大きい耐久性かつ低い消費電力を半導体メモリに与える。半導体メモリデバイスの記憶容量の増加および半導体メモリの比較的安価なコストの増進になされてきた継続的な歩みと結びつけられたこれら特徴は、広範囲の用途に半導体メモリを使用することに寄与した。例えば、幾つかの用途において、不揮発性半導体メモリは、磁気ハードディスクに取って代わるために、又はプロセッサが電力供給されていない際に、それらの内容を保持するプロセッサのメモリ空間の領域に使用され得る。
フラッシュメモリを含む不揮発性半導体メモリの大抵のタイプにおいて、書き込み操作は、読み出し操作に比べて、完了するのにかなり長い量の時間を必要とする。更に、フラッシュメモリにおける書き込み操作の一方向特質の故に、データは一般に、大きなブロックで周期的にフラッシュメモリから消去されるだけである。このタイプの消去操作は、書き込み操作に比べて、完了するために更に多くの時間を必要とする。
添付図面は、本明細書で説明される原理の様々な実施形態を示し、本明細書の一部である。図示された実施形態は例に過ぎず、特許請求の範囲を制限しない。
本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、図1Aの例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、図3の例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。 本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なデータ記憶システムのブロック図である。 本明細書で説明される原理の例示的な一実施形態に従って、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法の流れ図である。 本明細書で説明される原理の例示的な一実施形態に従って、メモリシステムからデータを読み出す例示的な方法の流れ図である。
図面の全体にわたって、同一の参照番号は、類似しているが必ずしも全く同一とは限らない要素を示す。
詳細な説明
上述したように、以下に限定されないが、フラッシュメモリ及び他の不揮発性半導体メモリを含むデジタル記憶装置の幾つかのタイプにおいて、データをメモリに書き込むために必要な時間量は、データをメモリから読み出すために必要な時間量よりも大幅に長い可能性がある。更に、消去操作は、書き込み操作または読み出し操作に比べて、完了するためのより長い時間量を必要とするかもしれない。
これらタイプのメモリの大部分に関して、読み出し操作は、同じメモリデバイスでの書き込み操作または消去操作と同時に行われることができず、それにより当該デバイスで現在実行されている任意の書き込み操作または消去操作が完了するまで、読み出し操作が遅延する必要がある。従って、係るメモリデバイスにおける最悪の場合の読み出し待ち時間は、当該デバイスでの消去操作により必要とされる時間によって左右されるかもしれない。
しかしながら、場合によっては、メモリデバイスが書き込み操作または消去操作を受けているか否かに関わらず、メモリデバイスに格納されたデータの読み出し待ち時間において均一性を維持することが望ましいかもしれない。更に、係るメモリデバイスにおいて読み出し待ち時間を最小限にすることも望ましいかもしれない。
上記および他の目標に鑑みて、本明細書は、実質的に均一な読み出し待ち時間を有するデジタル記憶の装置、システム及び方法を開示する。特に、本明細書は、主記憶場所における書き込み操作または消去操作中にそうでなければアクセスできないデータを重複して(冗長的に)格納するように構成された複数のメモリバンクを利用する装置、システム及び方法を開示する。主記憶場所が書き込み操作または消去操作を受けている際のデータの問い合わせに応じて、データが冗長な記憶領域から読み出される。
本明細書および添付の特許請求の範囲で使用される場合、用語「バンク」はアドレス指定可能な物理的なメモリモジュールを意味する。一例として、複数のバンクが単一のメモリシステム又はデバイスに組み込まれ、同時(並列)にアクセスされ得る。
本明細書および添付の特許請求の範囲で使用される場合、用語「読み出し待ち時間」は、メモリバンクのアドレスが問い合わされた時と、そのアドレスに格納されたデータが当該問い合わせプロセスに提供された時との間の経過時間量を意味する。
本明細書および添付の特許請求の範囲で使用される場合、用語「メモリシステム」は、データ記憶およびアクセスの任意のシステムを広く意味し、この場合、データは1つ又は複数の外部プロセスにより、システムに対して読み書きされ得る。メモリシステムは、以下に限定されないが、プロセッサメモリ、半導体ディスク等を含む。
以下の説明において、説明の目的で、多数の特定の細部が、本システム及び方法の完全な理解を提供するために記載される。しかしながら、当業者には明らかなように、本システム及び方法は、これら特定の細部なしに実施され得る。明細書における「実施形態」、「例」又は類似した用語への参照は、当該実施形態または例に関連して説明された特定の特徴、構造または特性が少なくともその1つの実施形態に含まれるが、必ずしも他の実施形態に含まれないことを意味する。明細書の様々な場所における語句「一実施形態において」又は類似した語句の様々なたとえは、必ずしも同じ実施形態を全て参照するわけではない。
さて、本明細書で開示された原理が、例示的なシステム及び例示的な方法に関して説明される。
例示的なシステム
さて、図1Aを参照すると、例示的なメモリ装置(100)が示される。説明のために、本明細書のシステム及び方法は、フラッシュメモリに関して主として説明される。しかしながら、理解されるように、本明細書のシステム及び方法は、任意のタイプのデジタル記憶装置で利用されることができ且つ利用されることが意図されており、この場合、少なくとも1つの書き込み操作または消去操作は、読み出し操作に比べて完了するためにかなり長い時間量を必要とする。本システム及び方法が適用され得るデジタル記憶装置の他のタイプの例は、以下に限定されないが、相変化メモリ(即ち、PRAM)、紫外線消去型メモリ、電気的消去可能ROM(EEPROM)、及び他のプログラム可能不揮発性半導体メモリタイプを含む。
本例は、本願明細書の原理の簡素な応用形態を示す。メモリデバイスのフラッシュメモリバンク(d0、m0)は、データの主記憶場所としての機能を果たす主フラッシュバンク(d0)、及び主フラッシュバンク(d0)に格納されたデータのコピーを重複して(redundantly:冗長的に)格納するミラーバンク(m0)を含むことができる。従って、書き込み操作または消去操作は、主およびミラーバンク(d0、m0)のそれぞれが当該バンク(d0、m0)間のデータの一貫したミラーリングを維持するように更新されることを必要とする。フラッシュメモリバンクは一般に、書き込み又は消去操作が実行されている間に、外部の読み出し問い合わせ(クエリー)に対してアクセスできない。しかしながら、2つのフラッシュメモリバンク(d0、m0)が並行して書き込み操作または消去操作を絶対に受けないように書き込み操作又は消去操作を互い違いにすることにより、主データバンク(d0)又はミラーデータバンク(m0)の少なくとも1つが、バンク(d0、m0)に格納されたデータに対する外部の読み出し問い合わせに利用できる。本例において、ミラーフラッシュバンク(m0)が読み出し問い合わせにサービスを提供しながら、主フラッシュバンク(d0)に新しいデータが書き込まれていることが示される。逆に、ミラーフラッシュバンク(m0)が書き込み操作又は消去操作を受けている間に、主フラッシュバンク(d0)が外部の読み出し問い合わせにサービスを提供することができる。
特定の実施形態において、主フラッシュバンク(d0)及びミラーフラッシュバンク(m0)の双方が読み出し問い合わせにサービスを提供するために利用可能である場合、双方のフラッシュバンク(d0、m0)が当該問い合わせにサービスを提供することができる。代替の実施形態において、主フラッシュバンク(d0)だけが、読み出し待ち時間の均一性を維持するために係る状況下で読み出し問い合わせにサービスを提供することができる。それにも関わらず、可能なすべての実施形態において、主およびミラーフラッシュバンク(d0、m0)に格納されたデータの最大の読み出し待ち時間は概して、2つのフラッシュバンク(d0、m0)のうちの(もしあれば)より遅い待ち時間に等しくなることができる。
さて、図1Bを参照すると、フラッシュバンク(d0、m0)における読み出し操作及び書き込み操作の例示的なタイミング(150)が示される。データのミラーリングを維持するために、主フラッシュバンク(d0)に書き込まれるデータがミラーフラッシュバンク(m0)にも書き込まれる必要があるので、完全な書き込みサイクル(155)は、最初に主フラッシュバンク(d0)へ次いでミラーフラッシュバンク(m0)へと重複データの互い違いの書き込みを含むことができる。かくして、図1Aのメモリ装置(100)に対する完全な書き込みサイクル(155)は、単一のフラッシュバンク(d0、m0)に対する書き込みサイクルが必要とする、完了するための時間量の2倍を必要とするであろう。
しかしながら、図1Bに示されるように、バンク(d0、m0)に格納されたデータは、書き込みサイクル(155)の全体にわたって常に読み出され得る。どのフラッシュバンク(d0、m0)が問い合わせ中の読み出しプロセスにデータを提供するかは、フラッシュバンク(d0、m0)のどれが書き込み操作を現在受けているかに依存するであろう。データの供給源が、問い合わせ中の読み出しプロセス(単数または複数)に無関係にすることができるとはいえ、フラッシュバンク(d0、m0)間の読み出し問い合わせのサービスを均衡させる限り、問い合わせ中のプロセス(単数または複数)に対して有効に不可視にすることができる。以下でより詳細に説明されるように、フラッシュバンク(d0、m0)が消去または書き込みサイクル(155)を受けているか否か、及び読み出し問い合わせが受け取られた消去または書き込みサイクル(155)のステージに依存して、データの適切な供給源へデータ読み出し問い合わせを送るために、この特徴の冗長なフラッシュメモリを組み込むメモリデバイスに、読み出しマルチプレクサが使用され得る。
さて、図2を参照すると、メモリ装置(200)の別の例示的な実施形態が示される。上述した装置(100、図1A)と非常に類似して、本メモリ装置(200)は、メモリバンク(d0〜d3、m0〜m3)を利用するフラッシュメモリデバイスに均一な読み出し待ち時間を可能にするように、データ記憶に冗長性を提供するためにデータミラーリングを利用する。
本例において、図1A〜図1Bに記載されたミラーリングの原理は、一組の冗長なフラッシュバンクから多数の冗長なフラッシュバンク(d0〜d3、m0〜m3)に拡張される。複数の主フラッシュバンク(d0〜d3)が本例において存在し、主フラッシュバンク(d0〜d3)のそれぞれが、対応する主フラッシュバンク(d0〜d3)と同じデータを格納するように構成されたミラーフラッシュバンク(m0〜m3、それぞれ)と二つ一組にされる。前述したメモリ装置(100、図1A)に類似して、任意の主フラッシュバンク(d2)に対する書き込み操作は、主フラッシュバンク(d0〜d3)及び対応するミラーフラッシュバンク(m0〜m3)の各組における少なくとも1つのフラッシュバンク(d0〜d3、m0〜m3)が任意の所与の時間において読み出しプロセスに利用可能であるように、その対応するミラーフラッシュバンク(m2)に対する書き込み操作と互い違いにされる。従って、フラッシュバンク(d0〜d3、m0〜m3)に格納されたデータのすべては、1つ又は複数の書き込みプロセスがフラッシュバンク(d0〜d3、m0〜m3)で実行されているにも関わらず、任意の時間に外部の読み出し問い合わせに利用可能とすることができる。
特定の実施形態、特に複数のフラッシュバンク(d0〜d3、m0〜m3)が単一のデータワードを提供するために同時に読み出されるように構成された実施形態において、書き込みバッファがフラッシュバンク(d0〜d3、m0〜m3)と組み合わされ得る。書き込みバッファは、フラッシュバンク(d0〜d3、m0〜m3)に現在書き込まれている又は依然として書き込まれるべき書き込み操作に対するデータを格納することができる。このように、大部分の現在のデータは、外部読み出しプロセスに提供され得る。書き込みバッファは、本明細書で説明された任意の例示的な実施形態と共に使用されることができ、係る書き込みバッファの動作は、以下でより詳細に説明される。
本例は、4つの主フラッシュバンク(d0〜d3)及び4つの対応するミラーフラッシュバンク(m0〜m3)の組を示す。しかしながら、理解されるべきは、特定の応用形態に最も良く適合することができるように、本明細書で説明された原理に従って冗長なデータ記憶を生じさせるために、任意の適切な数のフラッシュバンク(d0〜d3、m0〜m3)が使用され得る。
さて、図3を参照すると、別の例示的なメモリ装置(300)が示される。本例において、4つの主フラッシュバンク(d0〜d3)がデータの主記憶としての役割を果たす。先の例と同様に、本例におけるデータは、主フラッシュバンク(d0〜d3)の1つが書き込まれている又は消去されている場合でさえも、データの均一な読み出し待ち時間を提供するために重複して格納され得る。
しかしながら、先の例とは異なり、本メモリ装置(300)は、各主フラッシュバンク(d0〜d3)に格納されたデータを対応するミラーフラッシュバンクに複製することによりデータの冗長性を提供しない。むしろ、本例は、主フラッシュバンク(d0〜d3)に格納されたデータのパリティデータを格納することができるパリティフラッシュバンク(p)を組み込む。パリティフラッシュバンク(p)に格納されたパリティデータは、主フラッシュバンク(d0〜d3)の任意の3つからの所与のアドレスにおいて読み出されたデータと連係して使用されて、残りの主フラッシュバンク(d0〜d3)で読み出し操作を実際に実行することなく、主フラッシュバンク(d0〜d3)の残りに格納されたデータを求めることができる。
例えば、図3に示されるように、要求されたデータを検索するために主フラッシュバンク(d0〜d3)のそれぞれの対応するアドレスに対して、読み出し操作が同時に且つ並行して実行されるように、主フラッシュバンク(d0〜d3)にわたって断片化データを分散させるために、データストライピングが使用され得る。要求されたデータの断片は、主フラッシュバンク(d0〜d3)のそれぞれから並行して受け取られ、完全な要求されたデータを問い合わせプロセスに提供するために組み立てられる。しかしながら、主フラッシュバンク(d0〜d3)の1つ(d2)が書き込み操作を受けている場合、その主フラッシュバンク(d2)は、書き込み操作中に読み出し操作を実行するために利用可能ではないであろう。しかしながら、主フラッシュバンク(d0〜d3)に格納された断片化データの読み出し待ち時間の均一性を維持するために、主フラッシュバンク(d2)に主として格納された、要求されたデータの断片は、残りの主フラッシュバンク(d0、d2、d3)からの検索されたデータの断片、及びパリティフラッシュバンク(p)における対応アドレスからのパリティデータを用いて再構成され得る。
例えば、この再構成は、占領された主フラッシュバンク(d2)に格納されたデータの断片を生成するために、アクセス可能なフラッシュバンク(d0、d2、d3)から検索されたデータ部分に排他的論理和(EXOR)のビット演算を実行するように構成された論理ゲートを有する再構成モジュール(305)により実行され得る。次いで、再構成モジュール(305)の出力は、占領された主フラッシュバンク(d2)の出力の代わりに使用されることができ、その結果、要求された完全なデータが外部読み出しプロセスに提供される。この代用は、以下でより詳細に説明されるように、読み出しマルチプレクサ(図示せず)により実行され得る。
本例において、完全なデータが外部読み出しプロセスに提供されるべきである時に、主フラッシュバンク(d0〜d3)の1つのみが、書き込み又は消去操作を受けることができる。代案として、複数のパリティフラッシュバンク(p)が、主フラッシュバンク(d0〜d3)の全体にわたる並行した書き込み又は消去プロセスを可能にすることができる。
さて、図4を参照すると、図3の主フラッシュバンク(d0〜d3)及びパリティバンク(p)における読み出し操作および書き込み操作の例示的なタイミング(400)が示される。本例において、データが一度にフラッシュバンク(d0〜d3)の1つに対してのみ書き込まれる又は消去されることができるので、主およびパリティフラッシュバンク(d0〜d3、p)のそれぞれに対する書き込み操作が互い違いにされる。かくして、主フラッシュバンク(d0〜d3)に格納されたデータの何れかは、フラッシュバンクの1つが書き込み又は消去操作を受けているにも関わらず、いつでも外部読み出しプロセスに利用可能とすることができる。これは、外部読み出しプロセスにより問い合わせされた任意のストライピングされたデータが、図示された5つのフラッシュバンク(d0〜d3、p)の任意の4つから復元され得るからである。図4に示されるように、一時的にアクセスできない主フラッシュバンク(d1)に格納された断片化データは、残りのアクセス可能な主フラッシュバンク(d0、d2、d3)及びアクセス可能なパリティフラッシュバンク(p)に格納された対応するデータから再構成され得る。
さて、図5を参照すると、別の例示的なメモリ装置(500)が示される。図3〜図4の例と同様に、本例は、複数の主フラッシュバンク(d0〜d3)にわたる断片化データのストライピング分散を利用する。主フラッシュバンク(d0〜d3)と連係して単一のパリティフラッシュバンク(p)を使用する先の例とは異なり、本例は、データの冗長性を実現するために、主フラッシュバンク(d0〜d3)と連係して2つのパリティフラッシュバンク(p0、p1)を利用する。
第1のパリティフラッシュバンク(p0)は、第1の2つの主フラッシュバンク(d0、d1)の断片化データに対応するパリティデータを格納し、第2のパリティフラッシュバンク(p1)は、残りの2つの主フラッシュバンク(d2、d3)のストライピングされたデータに対応するパリティデータを格納する。第1及び第2の再構成モジュール(505、510)はそれぞれ、第1のパリティフラッシュバンク(p0)及び第2のパリティフラッシュバンク(p1)から主フラッシュバンクデータを再構成するように構成される。複数のパリティフラッシュバンク(p0、p1)を利用することにより、フラッシュメモリバンク(d0〜d3、p0、p1)の書き込み処理能力は、第1のグループのフラッシュバンク(d0、d1、p0)と第2のグループのフラッシュバンク(d2、d3、p1)との間で書き込み操作または消去操作がそれぞれ互い違いにされることだけを必要とするという事実に起因して、増大されることができる。この特性により、グループのそれぞれが、そのフラッシュバンク(d0〜d3、p0、p1)の1つにおいて同時に起こる書き込み又は消去プロセスに対処することを可能にすると同時に、依然として主フラッシュバンク(d0〜d3)に格納されたデータの全てが外部読み出しプロセスに利用可能にされる。
本例において、第1のグループの主フラッシュバンク(d1)が、書き込み操作を受けており、並行して第2のグループの主フラッシュバンク(d2)も書き込み操作を受けていることが示される。外部読み出しプロセスに応答して、再構成モジュール(505、510)は、パリティフラッシュバンク(p0、p1、それぞれ)に格納されたパリティデータを、アクセス可能な主フラッシュバンク(d0、d3、それぞれ)からのデータと共に使用して、アクセスできないフラッシュバンク(d1、d2)に格納されたデータを復元し、そのデータを、アクセス可能なフラッシュバンク(d1、d2)からのデータと共に外部読み出しプロセスに提供する。
さて、図6を参照すると、別の例示的なメモリ装置(600)が示される。図5の例と同様に、本例は、2つのパリティフラッシュバンク(p0、p1)と共に、主フラッシュバンク(d0〜d3)にわたるデータストライピング分散を通じて、主フラッシュバンク(d0〜d3)に格納されたデータの冗長性を実現する。
主フラッシュバンク(d0〜d3)の2つの独立したグループと連係して2つのパリティフラッシュバンク(p0、p1)を使用する先の例示的なメモリ装置(500、図5)とは異なり、本例のパリティフラッシュバンク(p0、p1)は、全ての主フラッシュバンク(d0〜d3)の重複したパリティデータを格納する。言い換えれば、パリティフラッシュバンク(p0、p1)はミラーリングを使用し、そのためパリティフラッシュバンク(p0、p1)の1つが再構成モジュール(505)にパリティデータを提供するために常に利用可能であるようにされる。
さて、図7を参照すると、別の例示的なメモリ装置(700)が示される。本例において、ダイナミックランダムアクセスメモリ(DRAM)モジュール(705)として具現化された書き込みバッファが、主フラッシュメモリバンク(d0〜d7)に格納されたデータの冗長性を実現するために提供される。DRAMモジュール(705)は、書き込み又は消去操作に起因してアクセスできない任意のフラッシュメモリバンク(d0〜d7)により格納されたデータがDRAMモジュール(705)により提供され得るように、主フラッシュメモリバンク(d0〜d7)の何れか又は全てに格納されたデータをミラーリングするように構成され得る。他の実施形態において、主フラッシュメモリバンク(d0〜d7)は、先の実施形態に関して上述されたように、フラッシュメモリバンク(d0〜d7)のパリティデータを格納するように構成されているDRAMモジュール(705)を用いて、ストライピングされたデータを格納するように構成され得る。更に又は代案として、1つ又は複数の書き込みバッファ(例えば、DRAMモジュール(705))が、主フラッシュメモリバンク(d0〜d7)に対する互い違いの書き込み操作で書き込まれるべきデータを格納する働きをすることができる。
さて、図8を参照すると、均一な読み出し待ち時間を有する例示的なメモリシステム(800)のブロック図が示される。例示的なメモリシステム(800)は、本明細書で説明された原理の特定の応用形態に適合することができるように、例えば、デュアルインラインメモリモジュール(DIMM)で、又は任意の他のプロトコル及びパッケージングに従って実現され得る。
例示的なデータ記憶システム(800)は、図3において前述されたものと類似した断片化データストライピング/パリティ冗長性構成で構成された複数のNORフラッシュメモリバンク(d0〜d7、p)を含む。代案として、本明細書で説明されたような均一な読み出し待ち時間のためのデータ冗長性の原理と一致する、任意の他の適切なフラッシュメモリバンク(d0〜d7、p)の構成が使用されてもよい。
フラッシュメモリバンクのそれぞれは、管理モジュール(805)に通信可能に結合されることができ、その管理モジュール(805)は、読み出しマルチプレクサ(810)、書き込みバッファ(815)、パリティ生成モジュール(820)、再構成モジュール(825)、及び制御回路(830)を含む。
システム(800)は、アドレスポート(835)、制御ポート(840)、及びデータポート(845)として機能する入力/出力(I/O)ピンを介して外部プロセスと相互作用することができる。特定の実施形態において、マルチビットアドレス及びデータポート(835、845)は、並列データポートとすることができる。代案として、アドレス及びデータポート(835、845)は、データをシリアルに伝送することができる。制御回路(830)は、システム(800)の他の構成要素の機能およびアクティビティを連係して働かせるマイクロコントローラ又は他のタイプのプロセッサ又は処理要素を含むことができる。
外部プロセスは、アドレスポート(835)におけるアドレスを提供し、制御ポート(840)における制御ビットを1に設定し、データポート(845)における書き込まれるべきデータを提供することにより、メモリシステム(800)の特定のアドレスにデータを書き込むことができる。次のクロックサイクルにおいて、管理モジュール(805)の制御回路は、制御ポート(840)における制御ビットが1に設定されているかを判定し、アドレスポートにおけるアドレスを制御回路(830)のレジスタに格納し、一時的な書き込みバッファ(815)にデータを書き込むことができる。
一時的な書き込みバッファ(815)は、フラッシュバンク(d0〜d7、p)が均一な読み出し待ち時間を維持するために互い違いの書き込みを必要とするかもしれないので、同期動作で役に立つことができる。書き込みバッファ(815)は、DRAM、又はデータが外部プロセスから同期して受け取られ且つDIMMプロトコルに従うことを可能にする別のタイプの同期メモリを含むことができる。
次いで、制御回路(830)は、書き込みバッファ(815)のデータを断片にパースし、データのアドレス及び特定の応用形態の断片化仕様に従って各断片をフラッシュバンク(d0〜d7)の1つに割り当てることにより、互い違いの書き込み要件に従って、一時的な書き込みバッファ(815)に格納されたデータをフラッシュバンク(d0〜d7、p)に書き込むことができる。パリティ生成モジュール(820)が、主フラッシュバンク(d0〜d7)に新たに書き込まれたデータに対応する新たなパリティデータでパリティフラッシュバンク(p)を更新することができる。
同様に、外部プロセスは、制御ポート(840)における制御ビットを0に設定して、問い合わせされているデータの、アドレスポート(835)におけるアドレスを管理モジュール(805)に提供することによりデータを読み出すことができる。管理モジュール(805)の制御回路(830)は、アドレスを受け取り、読み出しが外部プロセスから要求されていることを制御ビットから判定することができる。次いで、制御回路(830)は、外部プロセスにより要求されたアドレスにあるデータの断片を格納するフラッシュメモリバンク(d0〜d7)の部分に問い合わせを行うことができる。制御回路(830)が、外部プロセスにより要求されたアドレスが現在書き込まれているか又は書き込まれるように予定されていることを判定する場合、制御回路(830)は書き込みバッファ(815)に問い合わせを行い、要求されたデータを書き込みバッファ(815)から直接的に外部プロセスに提供することができる。しかしながら、データが書き込みバッファ(815)に存在しない場合、互い違いの書き込み又は消去プロセスがデータをフラッシュメモリバンク(d0〜d7、p)に書き込むために発生しており、それにも関わらず、制御回路(830)が再構成モジュール(825)を使用して、アクセス可能な主フラッシュバンク(d0〜d7)及びパリティフラッシュバンク(p)からのデータを用いて要求されたデータを再構成することができる。また、制御回路(830)は、アクセスできないフラッシュバンク(d0〜d7)の出力の代わりに再構成モジュール(825)の出力を、読み出しマルチプレクサ(810)が用いるように、読み出しマルチプレクサ(810)に制御信号を提供することもできる。読み出しマルチプレクサ(810)は、当該技術で知られた多重化原理と調和し、このタスクを実行するために複数の論理ゲートを利用することができる。
例示的な方法
さて、図9Aを参照すると、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法(900)の流れ図が示される。例えば、方法(900)は、図8に関連して上述されたようなメモリシステム(800、図8)において、管理モジュール(805)の制御下で行われることができ、この場合、データの少なくとも1つの主記憶場所は、書き込み操作又は消去操作を実行するために、読み出し操作よりも多くの時間を必要とする。
方法は、データの問い合わせを受け取ること(ステップ910)を含む。データの問い合わせは、外部プロセスから受け取られ得る。次いで、要求されたデータの少なくとも1つの主記憶場所が現在書き込み操作または消去操作を受けているか否かの評価が行われ得る(判断915)。そうである場合、要求されたデータの少なくとも一部が主記憶場所の代わりに冗長な記憶領域から読み出される(ステップ930)。問い合わせにおけるデータの主記憶場所が現在書き込み操作または消去操作を受けていない場合には、データが主記憶場所から読み出される(ステップ925)。最後に、データが問い合わせプロセスに提供される(ステップ935)。
さて、図9Bを参照すると、メモリシステムからデータを読み出す例示的な方法(950)の流れ図が示される。また、この方法(950)は、例えば図8に関連して上述されたようなメモリシステム(800、図8)において、管理モジュール(805)の制御下で、メモリシステム(800、図8)の実質的に均一な読み出し待ち時間を維持するために行われることができる。
方法(950)は、メモリシステムのアドレスポートにおける、問い合わせされているデータのアドレスを提供すること(955)を含むことができる。次いで、供給されたアドレスに対応する要求されたデータが書き込みバッファに現在格納されているか否か(例えば、要求されたデータが、読み出しの時間においてメモリシステムのその対応するメモリバンクに書き込まれているプロセスにある)が判定され得る(判断960)。そうである場合、要求されたデータが書き込みバッファからただ単に読み出され(ステップ965)、要求しているプロセスに提供される(ステップ990)。
外部プロセスにより提供されるアドレスに対応するデータが書き込みバッファにあると判定されない場合(判断960)、書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのメモリバンクで実行されているか否かの判定が行われ得る(判断970)。書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのメモリバンクで実行されていない場合、メモリの主記憶場所から直接的に読み出され(ステップ985)、要求するプロセスに提供される(ステップ990)べきデータについて、要求されたデータを格納するメモリバンクの全ては利用可能である。
書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのバンクで実行されている場合、データの断片が、あらゆる利用可能なメモリバンクから読み出され(975)、残りのデータの断片(単数または複数)が他の所に格納されたパリティデータを用いて再構成され得る(ステップ980)。次いで、再構成後、データは、要求されたデータを主メモリバンクから直接的に読み出した後に要求されたデータを提供する読み出し待ち時間と実質的に類似した読み出し待ち時間に従って、要求しているプロセスに提供され得る(ステップ990)。
前述の説明は、開示された原理の実施形態および例を例示および説明するためだけに提供されている。この説明は、網羅的に又はこれらの原理を開示された任意の全く同一の形態に制限することは意図されていない。上記の教示に鑑みて、多くの変更および変形が可能である。

Claims (15)

  1. メモリ装置(100、200、300、500、600、700)であって、
    複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)を含み、前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)に対する書き込み操作または消去操作が、前記バンク(d0〜d7、m0〜m3、p、p0、p1)に対する読み出し操作よりもかなり遅く、
    前記メモリ装置(100、200、300、500、600、700)は、前記バンク(d0〜d7、m0〜m3、p、p0、p1)における主記憶場所が書き込み操作および消去操作の少なくとも1つを受けている際にデータの問い合わせに応じて前記データの前記主記憶場所の代わりに前記データの冗長な記憶領域を読み出すように構成され、前記メモリ装置(100、200、300、500、600、700)が、前記複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)に格納されたデータに対して実質的に均一な読み出し待ち時間を含む、メモリ装置(100、200、300、500、600、700)。
  2. 前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)がフラッシュメモリからなる、請求項1に記載のメモリ装置(100、200、300、500、600、700)。
  3. 前記実質的に均一な読み出し待ち時間が、前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)の前記主記憶場所の書き込み待ち時間および消去待ち時間の少なくとも1つよりかなり小さい、請求項1に記載のメモリ装置(100、200、300、500、600、700)。
  4. 前記主記憶場所が前記書き込み操作または前記消去操作を受けている場合に、前記主記憶場所からの前記データの代わりに前記データの冗長な記憶領域からの前記データを用いるように構成された読み出しマルチプレクサ(810)を更に含む、請求項1に記載のメモリ装置(100、200、300、500、600、700)。
  5. 前記データの冗長な記憶領域が、前記主記憶場所から分離したメモリバンク(m0〜m3)からなり、その冗長なメモリバンク(p、p0、p1)が前記主記憶場所に格納されたデータをミラーリングするように構成されている、請求項1に記載のメモリ装置(100、200、300、500、600、700)。
  6. 前記要求されたデータが、前記複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)の全体にわたって分散されている、請求項1に記載のメモリ装置(100、200、300、500、600、700)。
  7. 前記データの冗長な記憶領域は、前記要求されたデータが前記複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)の全体にわたって分散された前記データの部分を用いて導出されるパリティデータを含む、請求項6に記載のメモリ装置(100、200、300、500、600、700)。
  8. 複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)からなるアレイにおいて実質的に均一な読み出し待ち時間を維持する方法(900)であって、
    データの問い合わせに応じて、前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)の前記データの主記憶場所が書き込み操作および消去操作の少なくとも1つを現在受けているか否かを判定し(915)、
    前記データの前記主記憶場所が書き込み操作および消去操作の少なくとも1つを現在受けている場合に、前記主記憶場所の代わりに冗長な記憶領域から前記データを読み出すことを含む、方法(900)。
  9. 前記データが前記複数のメモリバンクにおける個々のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)の全体にわたって分散されており、前記冗長な記憶領域から前記データを読み出すことが、前記データ及びパリティデータの分散された部分から前記データを再構成することを含む、請求項8に記載の方法(900)。
  10. 読み出しマルチプレクサ(810)が前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)の少なくとも1つから読み出されるデータの代わりに前記冗長な記憶領域からのデータを用いるように、前記読み出しマルチプレクサ(810)に制御信号を提供することを更に含む、請求項9に記載の方法(900)。
  11. 前記データが一時的な書き込みバッファに格納されているという判定に応じて、前記データを前記一時的な書き込みバッファから直接的に読み出すことを更に含む、請求項8に記載の方法(900)。
  12. 前記問い合わせが、アドレスポートで提供されるアドレスを含む、請求項8に記載の方法(900)。
  13. 複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)であって、前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)に対する書き込み操作または消去操作が、前記メモリバンクに対する読み出し操作よりもかなり遅い、複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)と、
    要求されたデータの前記メモリバンク(d0〜d7、m0〜m3、p、p0、p1)における主記憶場所が書き込み操作および消去操作の少なくとも1つを受けているという判定に応じて、冗長な記憶領域から前記要求されたデータを読み出すように構成された読み出しマルチプレクサ(810)とを含む、データ記憶システム(800)。
  14. 前記複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)の全体にわたって分散された断片化データ、及び格納されたパリティデータから前記主記憶場所に格納された前記データを再構成するように構成された再構成モジュール(305、505、510、825)を更に含む、請求項13に記載のデータ記憶システム(800)。
  15. 外部プロセスから同期して書き込みデータを受け取り、前記書き込みデータを格納すると同時に、互い違いの書き込みプロセスが前記書き込みデータを前記複数のメモリバンク(d0〜d7、m0〜m3、p、p0、p1)に書き込むように構成された書き込みバッファ(815)を更に含む、請求項13に記載のデータ記憶システム(800)。
JP2011542097A 2008-12-19 2008-12-19 均一な読み出し待ち時間のための冗長なデータ記憶 Expired - Fee Related JP5654480B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/087632 WO2010071655A1 (en) 2008-12-19 2008-12-19 Redundant data storage for uniform read latency

Publications (2)

Publication Number Publication Date
JP2012513060A true JP2012513060A (ja) 2012-06-07
JP5654480B2 JP5654480B2 (ja) 2015-01-14

Family

ID=42269092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011542097A Expired - Fee Related JP5654480B2 (ja) 2008-12-19 2008-12-19 均一な読み出し待ち時間のための冗長なデータ記憶

Country Status (6)

Country Link
US (1) US20110258362A1 (ja)
EP (1) EP2359248A4 (ja)
JP (1) JP5654480B2 (ja)
KR (1) KR101638764B1 (ja)
CN (1) CN102257482B (ja)
WO (1) WO2010071655A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542494A (ja) * 2010-09-15 2013-11-21 ピュア・ストレージ・インコーポレイテッド ソリッドステートドライブ(ssd)環境におけるi/oのスケジューリング
JP2016189209A (ja) * 2010-09-15 2016-11-04 ピュア・ストレージ・インコーポレイテッド ストレージ環境における再構成i/o読み込み動作のスケジューリング
JP2018525737A (ja) * 2015-07-28 2018-09-06 華為技術有限公司Huawei Technologies Co.,Ltd. 増大された効率のためのインテリジェントメモリアーキテクチャ
JP2018530034A (ja) * 2015-07-28 2018-10-11 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリのためのインテリジェントコード装置、方法およびコンピュータプログラム
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
JP2020524839A (ja) * 2017-06-23 2020-08-20 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
JP5056944B2 (ja) * 2008-03-31 2012-10-24 日本電気株式会社 秘匿処理装置、秘匿処理方法、および秘匿処理プログラム
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US8214608B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Behavioral monitoring of storage access patterns
US8775741B1 (en) 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8285961B2 (en) 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
US8417871B1 (en) 2009-04-17 2013-04-09 Violin Memory Inc. System for increasing storage media performance
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8402246B1 (en) 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
CN102667738B (zh) * 2009-10-09 2018-07-17 提琴存储器公司 具有多个raid组分条的内存系统及其方法
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US20120054427A1 (en) * 2010-08-27 2012-03-01 Wei-Jen Huang Increasing data access performance
US8468318B2 (en) * 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
WO2012071454A1 (en) * 2010-11-22 2012-05-31 Marvell World Trade Ltd. Sharing access to a memory among clients
US8793419B1 (en) * 2010-11-22 2014-07-29 Sk Hynix Memory Solutions Inc. Interface between multiple controllers
JP5609683B2 (ja) * 2011-01-31 2014-10-22 ソニー株式会社 メモリ装置およびメモリシステム
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN106021147B (zh) * 2011-09-30 2020-04-28 英特尔公司 在逻辑驱动器模型下呈现直接存取的存储设备
EP2761481A4 (en) * 2011-09-30 2015-06-17 Intel Corp PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL
CN102582269A (zh) * 2012-02-09 2012-07-18 珠海天威技术开发有限公司 存储芯片及其数据通讯方法、耗材容器、成像设备
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US9195622B1 (en) 2012-07-11 2015-11-24 Marvell World Trade Ltd. Multi-port memory that supports multiple simultaneous write operations
US8909860B2 (en) 2012-08-23 2014-12-09 Cisco Technology, Inc. Executing parallel operations to increase data access performance
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US20140189202A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US8554997B1 (en) * 2013-01-18 2013-10-08 DSSD, Inc. Method and system for mirrored multi-dimensional raid
US9146882B2 (en) * 2013-02-04 2015-09-29 International Business Machines Corporation Securing the contents of a memory device
KR20160018471A (ko) * 2013-04-02 2016-02-17 바이올린 메모리 인코포레이티드 스토리지 미디어 성능을 높이는 시스템
US20140304452A1 (en) * 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
US9697063B2 (en) * 2013-05-15 2017-07-04 Amazon Technologies, Inc. Allocating data based on hardware faults
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
US8924776B1 (en) 2013-12-04 2014-12-30 DSSD, Inc. Method and system for calculating parity values for multi-dimensional raid
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9798622B2 (en) * 2014-12-01 2017-10-24 Intel Corporation Apparatus and method for increasing resilience to raw bit error rate
WO2016092364A1 (en) 2014-12-09 2016-06-16 Marvell Israel (M.I.S.L.) Ltd. System and method for performing simultaneous read and write operations in memory
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US9753655B2 (en) * 2014-12-30 2017-09-05 Samsung Electronics Co., Ltd. Computing system with write buffer including speculative storage write and method of operation thereof
US9569357B1 (en) 2015-01-08 2017-02-14 Pure Storage, Inc. Managing compressed data in a storage system
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US11099746B2 (en) 2015-04-29 2021-08-24 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with one read port and one or more write ports per cycle
CN107787485B (zh) 2015-04-30 2021-04-09 马维尔以色列(M.I.S.L.)有限公司 多读取和写入端口存储器
US11403173B2 (en) * 2015-04-30 2022-08-02 Marvell Israel (M.I.S.L) Ltd. Multiple read and write port memory
US10089018B2 (en) 2015-05-07 2018-10-02 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with multiple read ports and multiple write ports per cycle
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10019174B2 (en) 2015-10-27 2018-07-10 Sandisk Technologies Llc Read operation delay
US10193576B2 (en) * 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
US10649681B2 (en) 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US20180275922A1 (en) * 2017-03-27 2018-09-27 Siamack Nemazie Solid State Disk with Consistent Latency
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
KR102369402B1 (ko) 2017-09-20 2022-03-02 삼성전자주식회사 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
KR102446121B1 (ko) * 2018-06-29 2022-09-22 주식회사 멤레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
KR102687054B1 (ko) * 2018-10-12 2024-07-22 수퍼멤, 인크. 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US12050683B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335186A (ja) * 1995-06-08 1996-12-17 Kokusai Electric Co Ltd 共有メモリの読み出し方法
JPH11237959A (ja) * 1998-02-24 1999-08-31 Fujitsu Ltd 多重書き込み記憶装置
JPH11265316A (ja) * 1997-10-28 1999-09-28 Mmc Networks Inc メモリシステムおよびメモリシステムにアクセスするための方法
EP1400899A2 (en) * 2002-09-20 2004-03-24 Quantum Corporation Accelerated RAID capable of returning to a previous state
JP2006505864A (ja) * 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
EP1036362B1 (en) * 1997-12-05 2006-11-15 Intel Corporation Memory system including a memory module having a memory module controller
US6314106B1 (en) * 1998-04-20 2001-11-06 Alcatel Internetworking, Inc. Receive processing for dedicated bandwidth data communication switch backplane
US6216205B1 (en) * 1998-05-21 2001-04-10 Integrated Device Technology, Inc. Methods of controlling memory buffers having tri-port cache arrays therein
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
JP2002008390A (ja) * 2000-06-16 2002-01-11 Fujitsu Ltd 冗長セルを有するメモリデバイス
US6772273B1 (en) * 2000-06-29 2004-08-03 Intel Corporation Block-level read while write method and apparatus
US6728798B1 (en) * 2000-07-28 2004-04-27 Micron Technology, Inc. Synchronous flash memory with status burst output
US6614685B2 (en) * 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US7062619B2 (en) * 2002-01-31 2006-06-13 Saifun Semiconductor Ltd. Mass storage device architecture and operation
US7093062B2 (en) * 2003-04-10 2006-08-15 Micron Technology, Inc. Flash memory data bus for synchronous burst read page
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
CN100407166C (zh) * 2004-07-29 2008-07-30 普安科技股份有限公司 改善数据读取效率的方法及其储存系统
US20060026375A1 (en) * 2004-07-30 2006-02-02 Christenson Bruce A Memory controller transaction scheduling algorithm using variable and uniform latency
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
DE102006035612B4 (de) * 2006-07-31 2011-05-05 Qimonda Ag Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
US7818528B2 (en) * 2006-09-19 2010-10-19 Lsi Corporation System and method for asynchronous clock regeneration
KR20080040425A (ko) * 2006-11-03 2008-05-08 삼성전자주식회사 멀티 섹터 소거 동작 도중에 데이터를 독출할 수 있는불휘발성 메모리 장치 및 데이터 독출 방법
US7928770B1 (en) * 2006-11-06 2011-04-19 Altera Corporation I/O block for high performance memory interfaces
US9727452B2 (en) * 2007-12-14 2017-08-08 Virident Systems, Llc Distributing metadata across multiple different disruption regions within an asymmetric memory system
US7945752B1 (en) * 2008-03-27 2011-05-17 Netapp, Inc. Method and apparatus for achieving consistent read latency from an array of solid-state storage devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335186A (ja) * 1995-06-08 1996-12-17 Kokusai Electric Co Ltd 共有メモリの読み出し方法
JPH11265316A (ja) * 1997-10-28 1999-09-28 Mmc Networks Inc メモリシステムおよびメモリシステムにアクセスするための方法
JPH11237959A (ja) * 1998-02-24 1999-08-31 Fujitsu Ltd 多重書き込み記憶装置
EP1400899A2 (en) * 2002-09-20 2004-03-24 Quantum Corporation Accelerated RAID capable of returning to a previous state
JP2006505864A (ja) * 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542494A (ja) * 2010-09-15 2013-11-21 ピュア・ストレージ・インコーポレイテッド ソリッドステートドライブ(ssd)環境におけるi/oのスケジューリング
JP2016189209A (ja) * 2010-09-15 2016-11-04 ピュア・ストレージ・インコーポレイテッド ストレージ環境における再構成i/o読み込み動作のスケジューリング
JP2018525737A (ja) * 2015-07-28 2018-09-06 華為技術有限公司Huawei Technologies Co.,Ltd. 増大された効率のためのインテリジェントメモリアーキテクチャ
JP2018530034A (ja) * 2015-07-28 2018-10-11 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリのためのインテリジェントコード装置、方法およびコンピュータプログラム
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
JP2020524839A (ja) * 2017-06-23 2020-08-20 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス
JP7234144B2 (ja) 2017-06-23 2023-03-07 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス

Also Published As

Publication number Publication date
US20110258362A1 (en) 2011-10-20
KR101638764B1 (ko) 2016-07-22
EP2359248A1 (en) 2011-08-24
EP2359248A4 (en) 2012-06-13
JP5654480B2 (ja) 2015-01-14
KR20110106307A (ko) 2011-09-28
CN102257482A (zh) 2011-11-23
WO2010071655A1 (en) 2010-06-24
CN102257482B (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
JP5654480B2 (ja) 均一な読み出し待ち時間のための冗長なデータ記憶
CN111133420B (zh) 来自外部阵列副本的raid阵列重建辅助
TWI376601B (en) Block addressing for parallel memory arrays
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US8316175B2 (en) High throughput flash memory system
CN109643275A (zh) 存储级存储器的磨损均衡设备和方法
US20140281174A1 (en) Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system
TW201203270A (en) Error correction in a stacked memory
CN111274063B (zh) 混合内存模块以及操作混合内存模块的系统和方法
JP5847940B2 (ja) 半導体装置
KR20030014356A (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US9734921B2 (en) Memory repair using external tags
US20100037102A1 (en) Fault-tolerant non-volatile buddy memory structure
US10140215B1 (en) Low overhead mapping for highly sequential data
US11663121B2 (en) Memory module having volatile and non-volatile memory subsystems and method of operation
Ou et al. A scalable multi-channel parallel NAND flash memory controller architecture
JP2017504920A (ja) 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム
US11901032B2 (en) Memory device and memory system capable of using redundancy memory cells
CN115437558A (zh) 存储器系统中的对角页映射
CN114730287A (zh) 具有由主机选择的控制水平的基于分区的设备
US20230205427A1 (en) Storage device including memory controller and operating method of the same
US20230066863A1 (en) Redundancy metadata media management at a memory sub-system
US11119676B2 (en) Using spare bits in memory systems
KR101363965B1 (ko) 결함 위치들에 대한 데이터 래치들에 용장 데이터가 버퍼되는 비휘발성 메모리 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141120

R150 Certificate of patent or registration of utility model

Ref document number: 5654480

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees