JP2007528079A - フラッシュコントローラのキャッシュ構造 - Google Patents

フラッシュコントローラのキャッシュ構造 Download PDF

Info

Publication number
JP2007528079A
JP2007528079A JP2007502892A JP2007502892A JP2007528079A JP 2007528079 A JP2007528079 A JP 2007528079A JP 2007502892 A JP2007502892 A JP 2007502892A JP 2007502892 A JP2007502892 A JP 2007502892A JP 2007528079 A JP2007528079 A JP 2007528079A
Authority
JP
Japan
Prior art keywords
data
cache
host
policy
memory card
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
JP2007502892A
Other languages
English (en)
Other versions
JP5192228B2 (ja
Inventor
エム. コンレー,ケビン
エルハミアス,リューベン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2007528079A publication Critical patent/JP2007528079A/ja
Application granted granted Critical
Publication of JP5192228B2 publication Critical patent/JP5192228B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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
    • 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • G06F2212/2146Solid state disk being detachable, e.g.. USB memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

不揮発性メモリとホストとの間に置かれるバッファキャッシュは、異なる処理について動作するセグメントに区分されてもよい。キャッシュポリシーは、ライトスルー、書き込み、および先読みを含む。ライトスルーとライトバックポリシーは、速度を改善する。先読みキャッシュは、バッファキャッシュと不揮発性メモリとの間におけるバスのより効率的な使用を可能とする。動作(セッション)コマンドは、電力損失に対して保証することにより揮発性メモリにおけるデータ保持を可能とする。

Description

本発明は、半導体からなる電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、特にEEPROMまたは他の類似のメモリを使用する取り外し可能なメモリカードのためのコントローラキャッシュシステムに関する。
フラッシュEEPROMシステムは、多数の応用に、特にホストシステムに取り外し可能に接続された封入されたカードに梱包されて使用される。商業的に利用することができるカードとして、コンパクトフラッシュカード(登録商標)(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)カード、スマートメディアカード、個人タグ(P−Tag)、メモリスティックカードがある。本願の譲受人であるサンディスク コーポレイションは、これらのカードを供給する会社のうちの一社である。このようなカードが使用されるホストシステムには、パーソナルコンピュータ、ノートブック形コンピュータ、携帯計算装置、カメラ、オーディオ再生装置などがある。フラッシュEEPROMシステムは、ホストシステムに装備される大容量記憶装置としても使用される。
このような不揮発性メモリシステムは、フローティングゲートメモリセルのアレイとシステムコントローラとを含む。このコントローラは、ホストシステムとの通信とメモリセルアレイの動作とを管理して、ユーザデータを記憶および検索する。メモリセルは、複数のセルブロックの一群であり、セルブロックは、同時に消去可能なセルの最小単位である。データを1つ以上のセルブロックに書き込むのに先立って、セルブロックは消去される。ユーザデータは、セクタにおいて、ホストとメモリアレイの間で一般的に転送される。ユーザデータのセクタは、取り扱うのに便利な量であり、好ましくはメモリブロックの容量より小さく、多くは標準的なディスクドライブセクタの大きさ512バイトと等しい。1つの商業的構造において、メモリシステムブロックは、ユーザデータの1セクタとオーバーヘッドデータを加えたものを記憶する大きさである。ここで、オーバーヘッドデータは、ブロックに記憶されるユーザデータに関する誤り訂正符号(ECC)、ブロックの使用履歴、およびメモリセルブロックの障害とその他の物理情報のような情報を含む。この種類の不揮発性メモリシステムの多様な実施例は、サンディスク コーポレイションに譲渡された米国特許第5,172,338号(特許文献1)、第5,602,987号(特許文献2)、第5,315,541号(特許文献3)、第5,200,959号(特許文献4)、第5,270,979号(特許文献5)、第5,428,621号(特許文献6)、第5,663,901号(特許文献7)、第5,532,962号(特許文献8)、第5,430,859号(特許文献9)、第5,712,180号(特許文献10)、第6,222,762号(特許文献11)、および第6,151,248号(特許文献12)に記載されている。これら特許は、その全体が本願明細書において参照により援用されている。他の種類の不揮発性メモリシステムは、ユーザデータの複合的なセクタを記憶する大きなメモリセルブロックサイズを利用する。
2つの一般的なメモリセルアレイ構造は、NORとNANDという商業的な応用を見出している。典型的なNORアレイにおいて、メモリセルは、隣接したビットラインのソースと複数のドレイン拡散の間に接続され、接続されるドレイン拡散はセルの行に沿って延びるワードラインに接続されるコントロールゲートとともに列方向に延びている。メモリセルは、ソースとドレインの間のセルチャネル領域の少なくとも一部分の上に位置する少なくとも1つの記憶素子を有する。記憶素子上の電荷のプログラムされたレベルは、このようにセルの動作特性を制御し、このことは適当な電圧をアドレスされたメモリセルに印加することにより読み出すことが可能である。
NANDアレイは、個々のビットラインと参照電位の間の1つまたは1つ以上の選択トランジスタに接続されてセルの列を形成する、16または32というような直列の2つ以上のメモリセルを利用する。ワードラインは、多数のこれらの列内で複数のセルを横切って延びる。列内の個々のセルは、残りの接続されたセルを強くオンに転換することによりプログラミング中に読み出されるとともにベリファイされるので、ストリング間を流れる電流はアドレスされたセルに記憶された電荷のレベルに依存することになる。
ユーザデータをメモリアレイにプログラミング中に並列動作の程度を強めるとともにメモリアレイからユーザデータを読み出すために、アレイは典型的には一般にプレーンと称されるサブアレイに分割され、このことはプレーン自身のデータレジスタと他の回路が並列動作をすることを可能とすることを包含し、セクタのデータが同時に数個または全てのプレーンの各々にプログラムされるかまたは数個または全てのプレーンの各々から読み出されてもよい。単一集積回路上のアレイは、複数のプレーンに物理的に分割されてもよく、またはそれぞれのプレーンが別個の1つまたは1つ以上の集積回路チップから形成されてもよい。
メモリセルアレイの1つの構造は、サブアレイまたはセルの他のユニット内にあるとともに共通する消去ゲートを共有するメモリセルの1行または2行からブロックを都合よく形成する。2つのプログラムされたしきい値レベルのみを定義することにより各々のフローティングゲートセルにおいて1ビットのデータを記憶することが現在のところ普通であるが、2つ以上のフローティングゲートトランジスタのしきい値範囲を確定することにより各々のセルにおいて1ビット以上のデータを記憶することが技術動向となっている。フローティングゲート(4つのしきい値レベル範囲または状態)毎に2ビットのデータを記憶するメモリシステムを現在のところ利用することができる。もちろん、各々のセルに記憶されるビットの数を増加するにつれて、セクタのデータを記憶するために必要とされるメモリセルの数は減少する。この動向は、セル構造と一般的な半導体プロセスにおける改良から結果として生じるアレイのスケーリングと結びついて、セルの行の分割された部分においてメモリセルブロックを形成することを実用化する。ブロック構造を形成して、2つの状態(セル毎に1データビット)または4つの状態のような複合的な状態(セル毎に2データビット)におけるメモリセルの各々の動作の選択を可能とすることができる。
フローティングゲートメモリセルにデータをプログラムするのに長時間を要するので、行における多数のメモリセルは通常同時にプログラムされる。しかし、この並列動作の増加は、消費電力の増加、隣接するセルの電荷の電位不安定、またはこれらの間の相互作用を起こす。その全体が本願明細書において参照により援用されているサンディスク コーポレイションの米国特許第5,890,192号(特許文献13)は、複合的な1群のデータを異なるオペレーショナルメモリセルユニット(サブアレイ)に配置されたセルの異なるブロックに同時にプログラムすることによりこれらの効果を最小にするシステムを開示している。
メモリをさらに効率的に管理するために、ブロックをリンクして仮想ブロックまたはメタブロックを形成してもよい。すなわち、各々のメタブロックは、各々のプレーンから1ブロックを含むように定義される。メタブロックの使用は、その全体が本願明細書において参照により援用されている国際公開特許出願第02/058074号(特許文献14)に開示されている。メタブロックは、ホスト論理ブロックアドレスによってデータのプログラムと読み出しのためのあて先として認識される。同様に、メタブロックの全てのブロックは一緒に消去される。このような大きなブロックおよび/またはメタブロックとともに動作するメモリシステムにおけるコントローラは、ホストから受け取る論理ブロックアドレス(LBA)とメモリセルアレイ内の物理ブロック番号(PBN)との間の翻訳を含む多数の機能を行う。ブロック内の個々のページは、ブロックアドレス内のオフセットによって通常認識される。メタページは、メタブロック内のデータをプログラムする単位である。メタページは、メタブロックの複数のブロックの各々からの1ページによって構成される。
セクタ(512バイト)と消去ブロックまたはメタブロック(時には128セクタ以上)の間の大きさの相違のために、消去ブロックまたはメタブロックから他にコピーすることが時々必要となる。このような操作は、ガーベッジコレクションと称される。ガーベッジコレクション操作は、メモリシステムの書き込み性能を低下する。例えば、メタブロックのあるセクタが更新されるがメタブロックの他のセクタが更新されない場合、更新されたセクタは、新たなメタブロックに書き込まれてもよい。更新されないセクタは、直ちにまたはガーベッジコレクションの一部として後で新たなメタブロックにコピーされてもよい。
あるメモリシステムにおいて、物理メモリセルも2つ以上のゾーン(区域)に分類される。ゾーンは、論理ブロックアドレスの特定の範囲がマップされる物理メモリまたはメモリシステムの区分されたサブセット(対象)であってもよい。例えば、64メガバイトのデータを記憶することができるメモリシステムは、ゾーン当たり16メガバイトを記憶する4つのゾーンに区分されてもよい。その時、論理ブロックアドレスの範囲は、4つのグループに分割され、1つのグループは、4つのゾーンの各々の物理ブロックに割り当てられる。通常の実施例において、論理ブロックアドレスは規制され、各々のデータは、論理ブロックアドレスがマップされる単一の物理ゾーンの外側には決して書き込まれない。各々がそれ自身でアドレス指定、プログラミングおよび回路の読み出しを行う複数のプレーン(複数のサブアレイ)に分割されるメモリセルアレイにおいて、各々のゾーンは好ましくは複合プレーンからのブロック、すなわち通常各々のプレーンからの同じ数のブロックを含む。ゾーンは、第1に論理から物理への翻訳のようなアドレス管理を簡単にするために使用され、結果として翻訳テーブルが小さくなり、これらのテーブルを保持するために必要とされるRAMメモリが少なくなり、かつメモリの現在アクティブな領域をアドレスするためのアクセス時間が速くなるけれども、それらの制限的な性質のために最適使用レベルを小さくすることができる。
メモリアレイは、メモリアレイからデータを読み出すとともにメモリアレイにデータを書き込むアレイに一般に回路的に接続される。この回路の一部分として、データキャッシュをメモリアレイに接続してもよい。メモリアレイに対してかつメモリアレイからデータを転送する複数のレジスタの行と簡単にしてもよい。データキャッシュは、メモリアレイの行と同じ量のデータを保持してもよい。通常、データキャッシュは、メモリアレイと同じチップに形成される。
コントローラは、中央処理装置(CPU)、バッファキャッシュ(バッファRAM)およびCPU RAMを含む数個の部品を有してもよい。バッファRAMおよびCPU RAMの両方が、SRAMメモリであってもよい。これらの部品は、同一チップ上に装備してもよく、複数の別個のチップ上に装備してもよい。CPUは、メモリアレイに出入りしてデータを転送することを含む操作を実行するためにソフトウェア(ファームウェア)を動作させるマイクロプロセッサである。メモリアレイへの書き込みに先立ってまたはホストへのデータの送出に先立って、バッファキャッシュはデータを保持するために使用されてもよい。このように、バッファキャッシュはフラッシュ動作とホスト動作を同時に行うことができるデュアルアクセスメモリである。CPURAMは、バッファキャッシュまたはメモリアレイにおいてデータの指示またはアドレスのようにCPUによって必要とされるデータを記憶するために使用されてもよい。その全体が本願明細書において参照により援用されている米国特許第5,297,148号(特許文献15)に示されている例において、バッファキャッシュが、不揮発性メモリとして使用されるフラッシュEEPROM上での使用を低減するために書き込みキャッシュとして使用されてもよい。
米国特許第5,172,338号 米国特許第5,602,987号 米国特許第5,315,541号 米国特許第5,200,959号 米国特許第5,270,979号 米国特許第5,428,621号 米国特許第5,663,901号 米国特許第5,532,962号 米国特許第5,430,859号 米国特許第5,712,180号 米国特許第6,222,762号 米国特許第6,151,248号 米国特許第5,890,192号 国際公開特許出願第02/058074号 米国特許第5,297,148号
図1は、取り外し可能なメモリカードにおいてホストと不揮発性メモリ(NVM)の間に置かれるバッファキャッシュを示す。バッファキャッシュは、ホストバスによってホストに接続される。バッファキャッシュは、NVMバスによってNVMに接続される。ホストバスの帯域幅は、NVMバスの帯域幅より大きいので、NVMバスがホストとNVMの間のデータ転送の障害となっている。また、特にホストが単一セクタのデータを書き込むとき、NVM内のプログラミングが障害となるかもしれない。単一セクタを書き込んだ後に、コントローラはNVMを待って、ホストからもう1つのセクタを受け取る前に書き込み動作を完了させる。並列動作が大量のセクタの処理を可能とする場合に、少量のセクタに関連する書き込みまたは読み出し動作が非能率となるかもしれない。ホストが複合的な筋道動作を実行する場合、複合的なデータストリームが発生し、メモリカードコントローラによってシーケンシャルに処理されてもよい。
このように、メモリカードコントローラは、NVMにおける少量のデータに関連する書き込み動作と読み出し動作の効率を向上することが必要とされている。
メモリコントローラは、セグメント(部分)に区分され、マルチセグメントキャッシュを形成するバッファキャッシュを有する。異なるセグメントは、バッファキャッシュを使用し同時に実行される別個の動作を許可する異なるポリシーを有してもよい。セグメントの大きさは、セグメントを使用する動作により変化してもよい。
多様なポリシーが、単一セグメントキャッシュまたはマルチセグメントキャッシュに適用される。ポリシーは、読み出し動作が行われるときに付加的データを記憶する先読み(または先取り)キャッシュ (read-look-ahead (or prefetch) cache)を含む。付加的なデータは、ホストが次のコマンドにおいて要求するであろうデータと認識される。付加的なデータは、簡単にメモリアレイにおける次のシーケンシャルなデータであってもよい。ライトスルーキャッシュ (write-through cache)ポリシーは、データを変更することなく、バッファキャッシュにデータを記憶し、次いでメモリアレイにデータを書き込む。ライトバックキャッシュ (write-back cache) ポリシーは、バッファキャッシュにデータを記憶し、データをメモリアレイに書き込むことなくバッファキャッシュのデータを変更してもよい。その上、データがCPUによって必要とされる場合、CPUはデータをバッファキャッシュに記憶してもよい。このことは、通常CPU RAMに記憶されるデータを含めてよい。
バッファキャッシュは、一般に揮発性メモリなので、メモリシステムに電力欠陥があれば、バッファキャッシュに記憶されているだけのデータは失われる。電力欠陥は、取り外し可能なメモリカードについての特有の関心事である。キャッシュ動作、ガーベッジコレクションおよびアドレス翻訳情報更新を含む特定の動作は、揮発性メモリにのみデータを記憶しているかもしれない。ホストによる電力保証は、このような動作が背景動作として実行されることを許可する。動作(セッション)コマンドは、時間周期の電力保証としてホストからメモリカードに送られるようにしてもよい。
図2は、バッファキャッシュ212を有するメモリカード210を示す。データは、バッファキャッシュ212を通してホスト214とNVMの間で転送される。NVM220は、データ記憶のために使用されるフラッシュEEPROMまたは他の類似のメモリであってよい。メモリカード210は、メモリカード210をカメラ、パーソナルコンピュータまたは電話のようなホストシステムに取り外し可能に接続するホストインターフェイス222を有する。メモリカード210は、バッファキャッシュ212とNVM220の間にNVMインターフェイス224を有する。NVMインターフェイス224は、バッファキャッシュ212とNVM220との間のデータ交換を容易にする回路を有する。中央処理装置(CPU)230は、メモリカード210内のデータ操作を制御する。CPU230におけるソフトウエアは、ホスト214によって送出されるコマンドに応答して操作を実行する。例えば、ホスト214が特定の論理アドレス範囲を有するデータを要求するならば、CPU230は、NVM220におけるデータの位置を決定し、必要な処理を実行して、データを検索し、そのデータをホスト214に送出する。スタティックランダムアクセスメモリ(SRAM)のようなCPU RAM232は、CPU230によって使用されるデータを記憶するために使用される。CPU RAM232におけるデータは、CPU230によって迅速にアクセスされてもよい。通常、CPU RAM232に記憶されるデータは、CPU230によって頻繁に使用される。
区分キャッシュ
図3は、メモリカード210と類似であるが区分されたバッファキャッシュ312を有するメモリカード310を示す。図3における区分されたバッファキャッシュのような区分されたメモリは、異なるポリシーにより別個に操作されてもよいセグメントを有する。区分されたバッファキャッシュ312は、CPUにおけるソフトウエアを通してあるいはハードウエア自動処理を通して区分されてもよい。図3に示されているバッファキャッシュ312は、セグメント1〜4に区分される。各々のセグメントは、別個に使用され、異なるポリシーを有する。結果として、並列の4つの別個のバッファキャッシュメモリを有する場合に類似する。
CPU RAM332のテーブルは、バッファキャッシュ312の特性のテーブル333を保持する。別個のテーブルが、バッファキャッシュ312の各々のセグメントについて加入保持される。加入されるのは、バッファキャッシュにおけるセグメントの物理的位置、セグメントに記憶されるデータの論理アドレスおよびセグメントで使用されるキャッシュポリシーに関する分野の情報である。セグメントの大きさは、要求によって変更してもよい。大きさの変化は、特定のセグメントに割り当てられる物理アドレス範囲を変更する。区分は、ハードウエアによっても達成される。しかし、このような区分は、容易に変更されず、ソフトウエアによる区分より実行するのが難しい。
区分されたバッファキャッシュ312のような区分されたバッファキャッシュは、従来の(区分されない)バッファキャッシュよりサイズが大きい。従来のバッファキャッシュの大きさは、ある実行しきい値を達成するために記憶されるデータの最大量によって一般に決められる。非キャッシュ構造において、バッファキャッシュの大きさは、通常8〜16kBである。区分されたキャッシュにおいて、書き込みキャッシュとして動作する単一セグメントを有することが望まれているので、バッファキャッシュの全体のサイズを大きくする必要がある。32kBあるいはそれ以上のバッファサイズが使用されてもよい。
バッファキャッシュまたはバッファキャッシュのセグメントにおいて実行されるキャッシュポリシーは、読み出しキャッシュポリシーと書き込みキャッシュポリシーの両方を含む。先読みは読み出しキャッシュポリシーの一例である。ライトスルーとライトバックは、書き込みキャッシュポリシーの例である。バッファキャッシュのセグメントは、CPUによって使用されるデータを保持するためにCPUによって使用されてもよい。このデータは、通常CPU RAMにおいて記憶されるデータを含んでもよい。バッファキャッシュに記憶されるCPUデータは、プログラム変数、アドレス翻訳情報およびコピーバッファを含んでもよい。バッファキャッシュに記憶されるCPUデータは、ある従来技術の例において、CPU RAMに記憶されるデータであってもよい。CPUデータのためにバッファキャッシュのセグメントを備えることは、CPU RAMに追加して使用されるこのデータを記憶するための択一的な位置を与えることになる。
先読みキャッシュ (Read-look-ahead cache)
バッファキャッシュは、NVMからホストに転送されるデータを保持する読み出しキャッシュとして使用されてもよい。読み出しキャッシュは、区分されるならば、全体のバッファキャッシュまたはバッファキャッシュのセグメントでもよい。先読み(RLA)キャッシュは、要求がデータについてホストによって実際に行われる前に、ホストによって要求されるデータをキャッシュに記憶することができる。例えば、ホストが特定の論理アドレス範囲を有するデータを要求する場合、要求されるデータに対してシーケンシャルな論理アドレス範囲を有する追加的なデータがRLAキャッシュに記憶されてもよい。ホストは、最後に要求されるデータに対して論理的にシーケンシャルなデータを頻繁に要求するので、記憶されているデータが要求される確率が高い。RLAデータは、ホストデータ使用パターンに基いた他の方法で選択されてもよい。キャッシュデータが次に要求されるならば、キャッシュデータはNVMにアクセスすることなくRLAキャッシュからホストに直接転送されてもよい。この転送はNVMからの転送より速く、NVMバスを使用しない。このように、データがホストに転送される間、NVMバスは他の操作に使用されてもよい。
RLAキャッシュの操作の一例を示す。図4Aは、ホストバス425を通してホスト414と通信するRLAキャッシュ412を示す。RLAキャッシュ412は、NVMバス421を通してNVM420とも通信する。ホスト414は、セクタ0〜2からなるデータ部分を要求する。この例において、データは、論理アドレスによってアドレス可能なセクタに記憶される。他の例において、データは他のアドレス可能なデータユニットに記憶されてもよい。RLAキャッシュ412は空なので、セクタ0〜2はNVM420から転送されなければならない。図4Bは、セクタ0〜2とともにNVM420からRLAキャッシュ412に転送されるセクタ3〜7を示す。図4Cは、RLAキャッシュ412からホスト414に転送されるセクタ0〜2を示す。RLAキャッシュ412からホスト414へのセクタ0〜2の転送は、RLAキャッシュ412のスペースを自由に使用可能とするので、そこに3つのセクタが記憶されてもよい。それゆえ、セクタ8〜10がNVM420から転送されて、RLAキャッシュ412を充足する。図4Dは、ホスト414から受け取る2番目の要求を示す。この要求は、セクタ3〜8に関するものである。このように、2番目の要求により要求される全てのセクタがRLAキャッシュ412に存在する。セクタ3〜8がRLAキャッシュ412に存在するので、NVM420へのアクセスは要求されず、セクタ3〜8はRLAキャッシュ412からホスト414に直接転送されてもよい。2番目の要求がRLAキャッシュ412に存在しなかったセクタに関するものであったならば、要求されるセクタはNVM420から検索されなければならない。
フラッシュメモリに関するRLAキャッシュの1つの実施例において、RLAキャッシュを管理するために2つのプロセスが使用される。1つは、図5のホストコマンド処理プロセスがホストコマンドを処理する。他は、図6のフラッシュアクセス管理プロセスがRLA操作を処理する。
図5、図6Aおよび図6Bは、RLA操作を実行するために使用される3つの関連するプロセスを示す。図5は、RLAキャッシュ(読み出しキャッシュ)からホストへのデータのセクタの転送を実行するホストコマンド処理プロセスを示す。新たなコマンドを受けた場合、それが読み出しコマンドか否かが最初に決定される(ステップ510)。それが読み出しコマンドでない場合、コマンドはRLA操作なしに実行される(ステップ512)。読み出しコマンドに関して、要求されたセクタが読み出しキャッシュに存在しないと決定されるならば(ステップ514)、プロセスは要求されるセクタがフラッシュから読み出しキャッシュに転送されるのを待つ(ステップ516)。要求されるセクタが読み出しキャッシュに存在するならば、要求されるセクタはホストに転送される(ステップ518)。より多くのセクタが読み出されるなら(ステップ519)、プロセスは次のセクタについてこのシーケンスを繰り返す。このように、全ての要求されるセクタが転送されるまで、このプロセスは読み出しキャッシュからホストへ要求されるセクタを転送し続ける。
図6Aおよび図6Bは、フラッシュから読み出しキャッシュへのセクタの転送を実行するプロセスを示す。図6Aは、ホスト遮断プロセスを示す。ホストコマンドは、一般に図5のホストコマンド処理プロセスと図6Aのホスト遮断プロセスの両方を実行する。図6Aのホスト遮断プロセスの主要な目的は、図6Bのフラッシュアクセス管理プロセスのコマンド列にホスト遮断コマンドを並べることである。ホストコマンドが読み出しコマンドでないことがわかれば(ステップ620)、コマンドはフラッシュアクセス管理プロセスのコマンド列に置かれる(ステップ622)。コマンド列は1つまたは複数のコマンドを保持してもよい。ホストコマンドが読み出しコマンドならば、読み出しコマンド調節過程が行われる(ステップ624)。読み出しコマンド調節過程(ステップ624)は、要求されるセクタのあるものまたは全てが読み出しキャッシュに存在するか否かによりフラッシュメモリにアクセスするために使用される読み出しコマンドを変更する。要求されるセクタが読み出しキャッシュに存在しないならば、全てのセクタがフラッシュから読み出されなければならないので、読み出しコマンドは変更されない。それゆえ、変更されないコマンドがコマンド列に置かれる。いくつかの要求されるセクタが読み出しキャッシュに存在する場合、読み出しコマンドが変更され、読み出しキャッシュに存在しないセクタのみがフラッシュから要求される。このように、読み出しコマンド調節過程(ステップ624)は、読み出しコマンドがコマンド列に置かれる前に、読み出しコマンドからすでに読み出しキャッシュに存在するセクタを取り除く。完全なキャッシュヒットが起きる場合(全ての要求されるセクタが読み出しキャッシュに存在する場合)(ステップ626)、全てのセクタが読み出しキャッシュから直接読み出されてもよいので、フラッシュメモリへのアクセスは必要とされない。この場合、RLA操作のための開始LBAが更新されて、読み出しキャッシュに記憶されるRLAセクタの新たなセットを認識する(ステップ628)。
図6Bは、フラッシュから読み出しキャッシュへセクタのデータを転送するフラッシュアクセス管理プロセスを示す。ホスト遮断プロセスから新たなコマンドを受け取った場合、そのコマンドが書き込みコマンドならば、読み出しキャッシュは無効とされ(ステップ630)、コマンドが実行される(ステップ632)。コマンドが読み出しコマンドならば、読み出しコマンド調節過程(ステップ624)に関して前述したように、読み出しコマンド調節が過程の一部として行われる(ステップ634)。読み出しコマンド調節過程(ステップ624)がホスト遮断プロセスの一部として行われた時に存在しなかった読み出しキャッシュにセクタがこの時点で存在するかもしれないので、読み出しコマンド調節プロセスがフラッシュアクセス管理プロセスにおいて繰り返して行われる。例えば、フラッシュから読み出しキャッシュへのセクタの転送がステップ624とステップ634の間の時間周期で完了するかもしれない。読み出しキャッシュに存在しないいずれの要求されるセクタもフラッシュから読み出され、開始LBAがセットされ、ステップ634の部分としてプロセスの流れの先読み部分において、LBAで開始する要求されないデータが読み出しキャッシュにロードされるかもしれない。データキャッシュにRLAセクタが存在するならば(ステップ636)、そして“利用することができるホストバッファ”のためのバッファキャッシュに利用することができるスペースが存在するならば(ステップ638)、セクタはデータキャッシュから読み出しキャッシュに転送される(ステップ640)。データキャッシュに追加的なセクタが存在するとともにバッファキャッシュにおけるセクタの数が先取り長さN(バッファキャッシュにロードすべきセクタの所定の数)より小さいならば(ステップ642)、循環過程は繰り返される(ステップ642)。新たなコマンドを受け取れば(ステップ644)、循環過程は停止されるので、新たなコマンドが実行されるかもしれない。もはやデータキャッシュにセクタが存在しておらず(ステップ642)、かつ読み出しキャッシュにおいてNセクタより少ないセクタが存在するならば(ステップ644)、読み出しが行われてデータをフラッシュメモリアレイからデータキャッシュに転送し(ステップ646)、そのとき循環過程が再度開始される。読み出しキャッシュにおけるセクタの数が先取り数Nに達したならば(ステップ644)、プロセスは読み出しキャッシュにおけるセクタの数がNより小さくなるのを待つ(ステップ648)。読み出しキャッシュにおけるセクタがホストに転送されるならば、これが起きる。この時点で新たなコマンドを受け取れば(ステップ630)、新たなコマンドが実行される。読み出しキャッシュにおけるセクタの数がNより小さくなると(ステップ648)、そこに存在するならば、新たなRLAセクタがデータキャッシュから読み出しキャッシュに転送され(ステップ652)、そうでなければ、フラッシュメモリアレイからデータキャッシュに(ステップ646)、そして読み出しキャッシュに転送される(ステップ640)。
RLA操作が所定の制限に達した場合または他の操作が実行された場合、進行中のRLA操作は停止されてもよい。メモリアレイが新たなアドレス翻訳テーブルを創る必要があるゾーンを有する場合は、RLA操作はこのような新たなテーブルを創る必要があるメタブロック境界で停止されてもよい。長い待ち時間を伴う操作が必要とされるとき、RLA操作は停止されてもよい。例えば、ソフトウエアの介在を必要とするECCエラーが起きたとき、RLA操作は停止されてもよい。エラーを含むデータは、キャッシュから取り除かれるべきである。どのようなものでも新たなコマンドを受けたとき、RLA操作は停止されてもよく、新たなコマンドが直ちに実行されてもよい。所望の数のセクタがキャッシュに存在するとき、RLA操作は停止されてもよい。
先読みの例
以下の例は、データ要求を受け取った場合にどのようにRLAキャッシュが使用されるかを示す。これらの例は、8セクタのデータを含むメタページを使用するフラッシュメモリに基いている。フラッシュ703は、フラッシュ703の1メタページにおけるデータ量に等しい8セクタを保持するデータキャッシュを有する。コントローラ705は、16セクタのバッファキャッシュ707と先取り長さ16を有する。図7に示されているように、バッファキャッシュ707は、各々8セクタを保持可能なキャッシュユニット0とキャッシュユニット1とを有する。このように、バッファキャッシュユニットはNVMの1メタページとして同一量のデータを保持する。1つのキャッシュユニットがいつでも最新のキャッシュユニットとして指定される。以下の技術用語が開示されている例では使用される。
N Mの読み出し: LBA Nで開始するMシーケンシャルセクタの読み出し
ホスト対バッファxfer: ホストからホストバッファへのセクタ転送
ホストバッファ充足: バッファスペース全体が充足され、ホストバッファがこれ以上のデータを取得することができないことを示す。
カードビジー: デバイス(バッファまたはバッファのセグメント)がビジーで、ホストからコマンドまたはデータを受け取ることができないことをホストに対して示す。
バッファ対フラッシュxfer: ホストバッファからフラッシュへのセクタ転送
読み出し/ビジー(R/B): フラッシュ レディ/ビジー
真レディ/ビジー: フラッシュ 真レディ/ビジー
図8Aは、RLAキャッシュ操作の一例を示す。キャッシュはこの操作の開始時に空である。要求“読み出し01”をホストから受け取り、ホストが論理アドレス0とともに1セクタを要求していることを示すとき、キャッシュにはデータがない。このことはキャッシュミスと考えられる。セクタ0が、フラッシュからキャッシュ(バッファ)に転送される。そして、セクタ0がホストへ転送される。セクタ1〜7も、第1のキャッシュユニットに対する最初の読み出し操作の部分としてフラッシュからバッファキャッシュに転送される。次に、セクタ8〜15が2番目の読み出し操作として第2のキャッシュユニットに転送される。そのとき、セクタ16がキャッシュから転送される。セクタ0がホストへ転送されているので、スペースがセクタ16を記憶するために利用することができる。セクタがバッファキャッシュに転送されるとき、メタページ全部がフラッシュメモリアレイからデータキャッシュに一般に読み出される。メタページはセクタ16〜23を含んでもよい。セクタ16がバッファキャッシュに転送された後に、セクタ17〜23をデータキャッシュに残してもよい。このように、ホストによる単一セクタに対する要求は、バッファキャッシュに16のセクタを記憶し、データキャッシュにさらに7つのセクタを残すRLA操作を生ずる。
ホストから第2の要求“読み出し1 16”を受け取り、ホストが開始論理アドレス1(セクタ1〜16)とともに16のセクタを要求していることを示すときに、これらのセクタは既にキャッシュに存在し直接ホストに転送されてもよい。セクタ1〜16がホストへ転送される間に、追加セクタが第2のRLA操作の一部分としてフラッシュからキャッシュに転送される。
図8Bは、16のセクタに関する第2の要求の代わりに各々が単一セクタからなる連続する要求を受け取ること以外については図8Aの例と類似の例を示す。これらのセクタの1つがホストへ転送されるとき、1つのセクタがデータキャッシュからキャッシュに転送され、キャッシュが充足された状態で残る。第2の要求“読み出し11”以前に、セクタ16〜23がデータキャッシュに記憶される。このように、セクタ1〜7がキャッシュからホストへ転送されるので、セクタ17〜23はデータキャッシュからキャッシュに転送されてもよい。セクタ17〜23がデータキャッシュに存在するので、この操作の間にフラッシュメモリアレイにアクセスする必要はない。
図8Cは、第2の要求においてホストによって要求された1セクタのデータのみがキャッシュに存在する場合の部分ヒットを示す。第1の要求は、図8Aおよび図8Bにおけるものと同一である。しかし、第2の要求“読み出し16 3”は開始アドレス16とともに3つのセクタに関するものである。3つのセクタのうちの1つのみ、セクタ16がキャッシュに存在する。セクタ16は、キャッシュからホストへ直接転送される。他の2つのセクタ、セクタ17とセクタ18はデータキャッシュから読み出される。キャッシュに記憶されるセクタのうちでセクタ1〜15は廃棄され、セクタ19〜34はフラッシュから新しいRLAセクタに転送される。
ライトスルーキャッシュ
ライトスルーキャッシュは、図2に示されているバッファキャッシュまたは図3に示されている区分されたバッファキャッシュのようなバッファキャッシュにおいて実施されてもよい。ライトスルーキャッシュは、ホストからデータを受け取り、データを変更することなくデータをNVMに送出する。NVMがデータを受け取る準備ができているならば、受け取り後直ちにデータはNVMに送出されてもよい。例えば、ホストがデータの複合セクタを含むデータストリームを送出する場合、セクタは直ちにNVMに書き込まれてもよい。NVMにおいて、データはデータキャッシュに保持され、要求されたときにプログラムされてもよい。信号をデータがNVMに書き込まれたことを示すホストに戻すことにより、データが実際にNVMではなくライトスルーキャッシュに書き込まれているときに、データを記憶するための時間が明白に短縮される。このことは、ホストが次のデータをより迅速に送出することを可能とする。NVMにプログラムされるべき以前のデータを待つことなく、より多くのデータがホストによって送出されてもよい。メモリカードはデータの第1の部分をライトスルーキャッシュからNVMに転送し、その間同時にデータの第2の部分をホストからライトスルーキャッシュに転送する。ライトスルーキャッシュはNVMのより効率的なプログラミングを可能とする。メタページ全部がNVMアレイの最大並列操作を使用してプログラムされることが可能となるような十分なデータがホストによって転送されるまで、セクタのデータがライトスルーキャッシュに記憶されてもよい。このことは増強された並列操作によりプログラミングをより迅速に行うことを可能とし、プログラミングの後に要求されるガーベッジコレクションを回避または低減することにより性能をさらに改良する。
ライトスルーキャッシュからNVMへのデータのプログラミングは多様な事象によって引き起こされてもよい。NVMの最大並列操作を使用して十分なデータがライトスルーキャッシュに存在するときに、データがプログラムされてもよい。メタブロックにデータを記憶するNVMについて、十分なデータとは1メタページに等価な量のデータでありうる。プログラミングは、キャッシュに既に記憶されているセクタに対してシーケンシャルでないセクタを受け取ることにより引き起こされてもよい。ギャップが特定の所定の量より小さければ、たとえセクタと記憶されたセクタの間にギャップが存在しても、セクタがシーケンシャルとみなされてもよい。特定のホストコマンドがライトスルーキャッシュにおいてデータのプログラミングを引き起こしてもよい。コンパクトフラッシュ(登録商標)(CF)標準を使用するメモリカードにおいて、ライトスルーキャッシュにおけるデータのプログラミングを引き起こすコマンドは、(障害書き込みキャッシュに使用された場合には)読み出しセクタ、フラッシュキャッシュおよびセットフィーチャを含む。所定時間後にプログラムが引き起こされてもよい。キャッシュの内容が所定の時間の間にNVMに送出されなければ、プログラミングが自動的に行われる。通常、所定の時間は1ミリ秒から500ミリ秒である。
図9は、単一セクタ書き込みが起こり、NVM909が8セクタメタページを有する場合の例を示す。8つのセクタすなわちセクタ0〜7は、NVM909に書き込まれる前にライトスルーキャッシュに記憶されてもよい。この記憶は、NVMにおける8つのセクタに個々に記憶するより迅速に行われる。セクタ0がNVMにプログラムされるのを待つ代わりに、信号が送出され、セクタ0がプログラムされるとともにホストがセクタ1をメモリカードに送出することを示す。8つのセクタの全てが並列にプログラムされる時間にセクタ0〜7が記憶されるまで、このことは繰り返される。セクタ0〜7は、書き込みキャッシュユニット0からデータキャッシュに転送され、それからメモリアレイにおけるメタページXに並列にプログラムされる。セクタはデータキャッシュに個々に転送され、それからメモリアレイに並列にプログラムされる。
図9に示されているフラッシュ(NVM)に対するセクタの並列プログラミングと対照的に、ある従来技術のシステムは単一セクタが個々に受け取られるマルチセクタページに単一セクタがプログラムされるのを許可するのみである。NVMに対する単一セクタのプログラミングとともに、各々のセクタはアレイにおけるメタページのスペースを最初に占有してもよい。このように、各々の単一セクタ書き込みは、7つのセクタのデータを記憶するのに十分なメモリアレイにおける使用されないスペースをそのままにする。このようなセクタはガーベッジコレクションの一部として単一メタページに後で統合されてもよく、使用されないスペースは使用されるようにしてもよい。しかし、ガーベッジコレクション操作は時間とシステム資源を要求し、このような操作の必要を最小とすることが望ましい。
図10は、ホストから受け取る読み出しコマンドが後に続く一連の単一セクタ書き込みを示す。個々のセクタはライトスルーキャッシュに最初に送出される。セクタ7を受け取ったとき、セクタ7は直ちにNVMにプログラムされる。セクタ7がプログラムされる間に、セクタ8〜16がホストから受け取られる。セクタ7がプログラムされた後に、セクタ8〜15がメモリアレイにプログラムされる。セクタ8〜15はメモリアレイのメタページを形成する。セクタ16はライトスルーキャッシュに保持される。次に、読み出しコマンド“読み出し7 1”が受け取られる。セクタ16がメモリアレイに書き込まれた後に読み出しコマンドが実行される。
図11は、ホストとバッファキャッシュおよびバッファキャッシュとNVM間のデータ転送のパイプライン操作を示す。NVMがデータを受け取る準備ができている限り、新たなセクタがライトスルーキャッシュに記憶されている間に、ホストから以前に受け取られたセクタはNVMにプログラムされてもよい。セクタのデータの流れは、流れ“A”によって示されているように、ホストによってバッファに送出される。流れ“B”によって示されているように、セクタは個々にNVMに転送される。NVMにおいて、それらのセクタはメタページの単位で並列にデータキャッシュからメモリアレイにプログラムされる。他のセクタをメモリアレイにプログラムするのと並列に、セクタはホストからバッファキャッシュに転送される。しかし、メモリアレイへのプログラミングはホストからの転送より時間を要する。図11は、メモリアレイへのデータのプログラミングにより引き起こされる時間の遅れTgapを示す。Tgapは、8つのセクタをホストからバッファキャッシュに転送するのに要する時間と8つのセクタをバッファキャッシュからメモリアレイに転送するのに要する時間の間の時間差である。この例において、プログラミングに300マイクロ秒を要するが、Tgapは100マイクロ秒より小さい。このように、プログラミング時間により引き起こされる時間の遅れは、パイプライン操作のために300マイクロ秒から100マイクロ秒より小さい値に減じられる。
ライトバックキャッシュ (Write-back cache)
ライトバックポリシーは、バッファキャッシュまたはバッファキャッシュのセグメントで実施されてもよい。ライトバックポリシーは、キャッシュにおいてNVMに書き込まれることなくホストからのデータが変更されることを許可する。このことは、NVMとNVMバスの使用を削減する。データをキャッシュの外に出すことを強制するある条件が満たされるまでデータはNVMに書き込まれない。データがキャッシュに存在する間に、データは、NVMに対するプログラム操作をすることなく1回または複数回更新される。このことは時間を節約し、必要とされるガーベッジコレクションの量も削減する。
図12は、各々がメモリアレイのメタページに保持されるデータと等価なデータを保持する2つのユニットを有する書き込みキャッシュを使用する書き込みキャッシュ操作のフローチャートである。1つの書き込みキャッシュユニットがいつでも最新の書き込みキャッシュユニットとして指定される。ホストからデータを受け取るとき、最新の書き込みキャッシュユニットは最新の書き込みキャッシュユニットが有効(“キャッシュ有効”)か否かを調べるために先ず検査される(ステップ1210)。最新の書き込みキャッシュユニットは、最新の書き込みキャッシュユニットがNVMに書き込まれていないデータを含むならば、有効である。最新の書き込みキャッシュユニットが有効でないならば、それから受け取ったデータが最新の書き込みキャッシュユニットに書き込まれるとともにNVMにおけるデータキャッシュにコピーされるが、メモリアレイにプログラムされない(ステップ1212)。最新の書き込みキャッシュユニットが有効ならば、それから受け取られたデータがキャッシュにおけるデータと比較されて“キャッシュヒット”があるかないかを調べる(ステップ1214)。受け取られたデータがキャッシュに記憶されるかまたはキャッシュに記憶されたデータとシーケンシャルなデータを取り替える場合、キャッシュヒットが起きる。キャッシュヒットが起きるとき、受け取られたデータが最新の書き込みキャッシュユニットに加えられる(ステップ1216)。“キャッシュミス”が起きたとき(受け取られたデータを取り替えず、かつキャッシュにおけるデータとシーケンシャルでないとき)、最新の書き込みキャッシュユニットがメモリアレイに割り当てられ(すでに割り当てられていない場合)(ステップ1218)、新しいデータが最新の書き込みキャッシュユニットとして指定される書き込みキャッシュユニットに記憶される(ステップ1212)。
セクタが最新の書き込みキャッシュユニットに記憶されるとき、セクタが書き込みキャッシュユニットを充足するならば(ステップ1220)、そのとき最新の書き込みキャッシュユニットはフラッシュにプログラムされる(ステップ1222)。そのときバッファキャッシュはホストから新しいセクタのデータを自由に受け取る。
動作(セッション)コマンド
前述した例のいくつかは、メモリカードのどこにも記憶されないバッファキャッシュにおけるデータを保持する。バッファキャッシュは一般に揮発性メモリなので、電力を取り除くとき、バッファキャッシュに記憶されたデータは消失される。ホストから電力を取得する取り外し可能なメモリカードにおいて、電力が失われるかもしれないのでメモリカードは揮発性メモリにデータを保持することができない。一群の処理がホスト動作の一部であり、電力が動作のために保持されている場合でさえも、メモリカードは処理がリンクされていることを認識しないかもしれない。処理は、ホストコマンドによって開始されたホストとメモリカードの間の交換、例えばあるセクタを転送するメモリカードによって続行されるあるセクタを読み出すコマンドからなる。カードは処理がリンクされないことを認識しないので、処理の間の時間を使用することができず、かつ電力が消失されるかもしれないのでカードはある操作を実行することができないかもしれない。このような操作は、キャッシング操作、ガーベッジコレクションおよびアドレス翻訳情報更新のようなバックグラウンド処理を含むかもしれない。NVMに記憶されるプロセスにおけるデータ、バッファキャッシュまたはCPU RAMにおけるデータを含むNVMに記憶されないデータは電力消失のために失われないことは重要である。ホストは、メモリカードへの電力を保証するかもしれないし、別のやり方ではセーブされないデータについてバッファキャッシュまたは他の揮発性メモリを使用可能とするかもしれない。時間の意味のある部分が操作をスケジュールするにあたってより大きな柔軟性を許す操作を行うために利用することができるので、このような電力の保証は操作をより効率的にスケジュールすることも許すかもしれない。例えば、ガーベッジコレクション操作がホストデータ書き込み操作における衝撃を低減するときに、ガーベッジコレクション操作が時間についてスケジュールされるかもしれない。操作がバックグラウンド処理として実行されるとともにこのように他の操作に対してほとんどまたは全く混乱を起こさないように、操作がスケジュールされてもよい。
一実施形態において、ホストは、複合カード処理が同一動作の部分であるとともに電力が少なくとも動作の最後まで維持されることを示す動作コマンド(すなわち“動作_開始”)を発行し、処理の間中と処理と処理の間の時間にデータキャッシングまたは他のバックグラウンド処理を許す。動作コマンドは、動作継続中にホストにより電力が保証されることを示す。このことは、カードが動作継続中に揮発性メモリを使用してある操作を実行することを許す。動作は、動作終了コマンド(すなわち“動作_終了”)によって終わらせてもよい。電力供給がもはや保証されないので、“動作終了”コマンドはデータキャッシングを不可能とするかもしれない。動作コマンドは、動作において処理が始まる論理アドレス、処理におけるブロックの数、データ転送レート、その他のホストに有益な情報を認識するかもしれない。メモリカードは、動作処理の間に起きるように揮発性メモリを使用するバックグラウンド処理をスケジュールしてもよい。
もう1つの実施形態において、ストリーミングコマンドはメモリカードからおよびメモリカードへのデータストリームの転送を最適化するために使用される。ホストからの“ストリーム最適化”コマンドはメモリカードにおけるストリーミングデータのキャッシングを可能とするかもしれない。“ストリーム最適化”コマンドはデータストリームの特性を定義し、特定のストリームに関してキャッシングが最適化されるかもしれない。“ストリーム最適化”コマンドはデータストリームに関してコマンド完了時間を特定するかもしれない。追加的なストリーミングコマンドはキャッシュをNVMにフラッシュすることを要求するコマンドを含むかもしれない。別個のコマンドは、(非ストリーミングデータを含む)全てのデータについてキャッシングを可能とするかもしれない。キャッシングが全てのデータに関して可能とされない場合でさえも、ストリーミングコマンドはキャッシングがストリーミングデータに使用されるのを許可するかもしれない。
前述した説明は、本発明の特有の実施形態を詳細に記載するとともに特定の例を用いて本発明の実施形態を記載したものである。しかし、本発明は、開示された実施形態または記載された実施例に限定されるものではない。本発明は、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
従来技術のメモリカードを示す。 本発明の態様が実施されるバッファキャッシュを有するメモリカードを示す。 区分されたバッファキャッシュを有するメモリカードを示す。 先読みキャッシュの実施例を示す。 先読みキャッシュの実施例を示す。 先読みキャッシュの実施例を示す。 先読みキャッシュの実施例を示す。 先読み実施例についてホストコマンド処理プロセスを示す。 先読み実施例についてフラッシュアクセス管理プロセスを示す。 先読み実施例についてフラッシュアクセス管理プロセスを示す。 2つのキャッシュユニットとこのキャッシュユニットと同じサイズのメタページを有するフラッシュメモリを有するバッファキャッシュの例を示す。 データがキャッシュヒットの結果としてバッファキャッシュからホストへ転送される場合の先読みキャッシュ操作の例を示す。 データがキャッシュヒットの結果としてバッファキャッシュからホストへ転送される場合の先読みキャッシュ操作のもう1つの例を示す。 データが部分キャッシュヒットの結果としてバッファキャッシュからホストへ転送される場合の先読みキャッシュ操作の例を示す。 バッファキャッシュを書き込みキャッシュとして使用する例を示す。 ライトスルーキャッシュ操作の例を示す。 ホストからバッファキャッシュへおよびバッファキャッシュからNVMへのデータのパイプライン操作の例を示す。 ライトバックキャッシュ操作についてのフローチャートである。

Claims (31)

  1. 不揮発性の非回転記憶媒体にデータを記憶する取り外し可能なメモリカードにおいて、
    ホストインターフェイスと、
    不揮発性メモリアレイと、
    前記ホストインターフェイスと前記不揮発性メモリアレイと通信するバッファキャッシュであって、前記バッファキャッシュがデータを記憶する少なくとも第1の部分と第2の部分を有し、前記第1の部分が第1のポリシーを有し、前記第2の部分が第2のポリシーを有し、前記第1のポリシーおよび前記第2のポリシーが別個に選択されるバッファキャッシュと、
    を備える取り外し可能なメモリカード。
  2. 前記第1のポリシーは、ライトスルーキャッシュポリシーである請求項1記載の取り外し可能なメモリカード。
  3. 前記第1のポリシーは、ライトバックキャッシュポリシーである請求項1記載の取り外し可能なメモリカード。
  4. 前記不揮発性メモリアレイに記憶される第1のグループのデータが要求されるとき、前記第1のグループのデータと要求されない第2のグループのデータが前記不揮発性メモリアレイから読み出され、前記第2のグループのデータが前記第1の部分に記憶されるように、前記第1の部分が読み出しキャッシュとして機能する請求項1記載の取り外し可能なメモリカード。
  5. 前記第1の部分は、データストリームの部分ではない中央処理装置によって使用されるデータを記憶するために使用される請求項1記載の取り外し可能なメモリカード。
  6. 前記第1の部分と前記第2の部分は、セグメントキャッシュのセグメントである請求項1記載の取り外し可能なメモリカード。
  7. 第3のポリシーを有する第3の部分と第4のポリシーを有する第4の部分をさらに有する請求項1記載の取り外し可能なメモリカード。
  8. 中央処理装置をさらに備え、前記第1のポリシーがライトスルーポリシーであり、前記第2のポリシーがライトバックポリシーであり、前記第3のポリシーが読み出しキャッシュポリシーであり、前記第4のポリシーが中央処理装置データ記憶ポリシーである請求項7記載の取り外し可能なメモリカード。
  9. 前記第1の部分のサイズは、変更可能である請求項1記載の取り外し可能なメモリカード。
  10. ホストコマンドシーケンスに応答して、前記第1の部分のサイズが前記カードの操作中に変更可能である請求項1記載の取り外し可能なメモリカード。
  11. 前記バッファキャッシュの操作を制御する中央処理装置をさらに備える請求項1記載の取り外し可能なメモリカード。
  12. ホストインターフェイスとフラッシュメモリアレイとの間の通信においてバッファキャッシュを使用する取り外し可能なメモリカード内で、前記ホストインターフェイスと前記フラッシュメモリアレイとの間のデータストリームを処理する方法において、
    バッファキャッシュを少なくとも第1のセグメントと第2のセグメントに区分するステップと、
    前記第1のセグメントについて第1のキャッシングポリシーを決定するステップと、
    前記第2のセグメントについて第2のキャッシングポリシーを決定するステップと、
    を含む方法。
  13. 前記第1のキャッシングポリシーは第1のデータストリームの特性によって決定され、前記第2のキャッシングポリシーは第2のデータストリームの特性によって決定される請求項12記載の方法。
  14. 前記第1のキャッシングポリシーは、ライトスルーポリシーである請求項12記載の方法。
  15. 前記第1のキャッシングポリシーは、ライトバックポリシーである請求項12記載の方法。
  16. 前記第1のキャッシングポリシーは、先読みキャッシュポリシーである請求項12記載の方法。
  17. 前記第1のセグメントのサイズを変更するステップをさらに含む請求項12記載の方法。
  18. 不揮発性の非回転メモリアレイとメモリカードをホストに接続するホストインターフェイスとの間に置かれるバッファキャッシュを使用するメモリカードにおける前記不揮発性の非回転メモリアレイから前記ホストインターフェイスへデータを転送する方法において、
    前記不揮発性メモリアレイから転送されるデータの第1の部分を特定する前記ホストから第1のアドレス範囲を受け取るステップと、
    前記不揮発性メモリアレイから前記バッファキャッシュへ前記データの第1の部分をコピーするステップと、
    前記不揮発性メモリアレイから前記バッファキャッシュへデータの第2の部分をコピーするステップであって、前記データの第2の部分は、前記不揮発性メモリアレイからの転送についてホストによって特定されない、ステップと、
    前記バッファキャッシュに前記データの第2の部分を保持する間に、前記バッファキャッシュから前記ホストへ前記データの第1の部分を送出するステップと、
    を含む方法。
  19. 前記データの第2の部分は第2のアドレス範囲を有し、前記第1のアドレス範囲と前記第2のアドレス範囲はシーケンシャルである請求項18記載の方法。
  20. 前記データの第2の部分は、前記不揮発性メモリアレイからの前記データの第1の部分とともに前記データの第2の部分を並列に読み出すことができる最大サイズに選択される請求項18記載の方法。
  21. 前記データの第2の部分は、前記バッファキャッシュまたは前記バッファキャッシュのセグメントに記憶されることが可能な最大サイズに選択される請求項18記載の方法。
  22. 前記バッファキャッシュから前記ホストへ前記データの第1の部分を送出するステップに続いて、前記ホストへ転送されるデータを特定し、かつ前記データの第2の部分にある少なくともデータの第3の部分を特定する第3のアドレス範囲を受け取るステップをさらに含み、前記方法は、前記不揮発性メモリからではなく、前記バッファキャッシュから直接前記ホストへ前記データの第3の部分を転送するステップをさらに含む請求項18記載の方法。
  23. 不揮発性の非回転記憶媒体にデータを記憶する取り外し可能なメモリカードにおいて、
    ホストを接続するホストインターフェイスと、
    不揮発性の非回転メモリアレイと、
    前記ホストインターフェイスと前記不揮発性の非回転メモリアレイとの間に置かれる先読みキャッシュであって、前記先読みキャッシュが、前記ホストによって要求される要求部分のデータとシーケンシャルな非要求部分のデータを記憶する先読みキャッシュと、
    を備える取り外し可能なメモリカード。
  24. 前記先読みキャッシュは、セグメントバッファキャッシュのセグメントである請求項23記載の取り外し可能なメモリカード。
  25. 前記非要求部分のデータは、前記先読みキャッシュに記憶されることが可能なデータの最大量である請求項23記載の取り外し可能なメモリカード。
  26. 前記先読みキャッシュと中央処理装置に接続されるスタティックランダムアクセスメモリを制御する前記中央処理装置をさらに備える請求項23記載の取り外し可能なメモリカード。
  27. 不揮発性の非回転メモリアレイおよび揮発性メモリを含み、ホストに接続される取り外し可能なメモリシステムを操作する方法において、
    前記ホストから第1のコマンドを受け取るステップと、
    前記第1のコマンドに応答して、前記取り外し可能なメモリシステムにおいて少なくとも1つのバックグラウンド処理を可能にするステップであって、前記メモリシステムが、前記第1のコマンドに続く2つまたはそれ以上の数の処理の継続期間の間、少なくとも1つのバックグラウンド処理を可能なままとする、ステップと、
    を含む方法。
  28. 前記第1のコマンドは、或る時間周期の間に前記揮発性メモリにおけるデータ記憶を可能とすることができることを示す動作コマンドである請求項27記載の方法。
  29. 可能とされた前記バックグラウンド処理は、前記不揮発性の非回転メモリアレイに記憶されない前記揮発性メモリにおけるデータ記憶を含む請求項27記載の方法。
  30. 前記少なくとも1つのバックグラウンド処理は、前記不揮発性メモリにデータをより効率的に記憶するようにガーベッジコレクション操作を含む請求項27記載の方法。
  31. 第2のコマンドを受け取るステップと、前記取り外し可能なメモリシステムにおいて前記少なくとも1つのバックグラウンド処理を不可能とするステップとをさらに含む請求項27記載の方法。
JP2007502892A 2004-03-08 2005-03-07 フラッシュコントローラのキャッシュ構造 Active JP5192228B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/796,575 2004-03-08
US10/796,575 US7173863B2 (en) 2004-03-08 2004-03-08 Flash controller cache architecture
PCT/US2005/007313 WO2005088456A2 (en) 2004-03-08 2005-03-07 Flash controller cache architecture

Publications (2)

Publication Number Publication Date
JP2007528079A true JP2007528079A (ja) 2007-10-04
JP5192228B2 JP5192228B2 (ja) 2013-05-08

Family

ID=34912587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502892A Active JP5192228B2 (ja) 2004-03-08 2005-03-07 フラッシュコントローラのキャッシュ構造

Country Status (7)

Country Link
US (3) US7173863B2 (ja)
EP (2) EP1725937A2 (ja)
JP (1) JP5192228B2 (ja)
KR (1) KR101204680B1 (ja)
CN (2) CN100483366C (ja)
TW (1) TWI267862B (ja)
WO (1) WO2005088456A2 (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
JP2009020833A (ja) * 2007-07-13 2009-01-29 Internatl Business Mach Corp <Ibm> データをキャッシュする技術
JP2011008570A (ja) * 2009-06-26 2011-01-13 Buffalo Inc ストレージ装置、情報処理システム、およびコンピュータプログラム
US7904640B2 (en) 2008-03-01 2011-03-08 Kabushiki Kaisha Toshiba Memory system with write coalescing
JP2011238175A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
JP2011238176A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
US8225047B2 (en) 2008-03-01 2012-07-17 Kabushiki Kaisha Toshiba Memory system with pre-fetch operation
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
JP2013513186A (ja) * 2009-12-07 2013-04-18 マイクロソフト コーポレーション ハイブリッドストレージを使用したssdの寿命の延長
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US8819350B2 (en) 2009-09-25 2014-08-26 Kabushiki Kaisha Toshiba Memory system
US8868842B2 (en) 2008-12-27 2014-10-21 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
US8938586B2 (en) 2008-03-01 2015-01-20 Kabushiki Kaisha Toshiba Memory system with flush processing from volatile memory to nonvolatile memory utilizing management tables and different management units
JP2015503816A (ja) * 2012-01-16 2015-02-02 クアルコム,インコーポレイテッド ハイブリッドなライトスルー/ライトバックキャッシュポリシーマネージャ、ならびに関連するシステムおよび方法
JP2017527877A (ja) * 2014-06-25 2017-09-21 華為技術有限公司Huawei Technologies Co.,Ltd. フラッシュメモリから/フラッシュメモリへデータを読み取る/書き込むための方法および装置、ならびにユーザ機器
US10628048B2 (en) 2016-12-28 2020-04-21 Fujitsu Limited Storage control device for controlling write access from host device to memory device
JP2022528896A (ja) * 2019-05-17 2022-06-16 長江存儲科技有限責任公司 スタティックランダムアクセスメモリを有する3次元メモリデバイスのキャッシュプログラム動作
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system

Families Citing this family (259)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US20080320209A1 (en) * 2000-01-06 2008-12-25 Super Talent Electronics, Inc. High Performance and Endurance Non-volatile Memory Based Storage Systems
KR100614639B1 (ko) * 2003-07-24 2006-08-22 삼성전자주식회사 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
TWI289304B (en) * 2004-02-17 2007-11-01 Hon Hai Prec Ind Co Ltd Data structure design system and method for prolonging useful life of FRAM
KR100541642B1 (ko) * 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
US20060236033A1 (en) * 2005-04-18 2006-10-19 Dell Products L.P. System and method for the implementation of an adaptive cache policy in a storage controller
US8516211B2 (en) * 2005-06-17 2013-08-20 Flexera Software Llc Secure storage management system and method
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US7386656B2 (en) * 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US7590796B2 (en) * 2006-07-31 2009-09-15 Metaram, Inc. System and method for power management in memory systems
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US7392338B2 (en) * 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
GB2441726B (en) * 2005-06-24 2010-08-11 Metaram Inc An integrated memory core and memory interface circuit
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US7580312B2 (en) * 2006-07-31 2009-08-25 Metaram, Inc. Power saving system and method for use with a plurality of memory circuits
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8089795B2 (en) * 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8244971B2 (en) * 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
JP4856400B2 (ja) * 2005-07-06 2012-01-18 ルネサスエレクトロニクス株式会社 記憶装置及び情報処理端末
US7751242B2 (en) * 2005-08-30 2010-07-06 Micron Technology, Inc. NAND memory device and programming methods
JP5242397B2 (ja) * 2005-09-02 2013-07-24 メタラム インコーポレイテッド Dramをスタックする方法及び装置
KR100714873B1 (ko) * 2005-09-06 2007-05-07 삼성전자주식회사 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
JP4910360B2 (ja) * 2005-10-20 2012-04-04 ソニー株式会社 記憶装置、コンピュータシステム、およびデータ書き込み方法
CN100426230C (zh) * 2005-11-23 2008-10-15 鸿富锦精密工业(深圳)有限公司 一种嵌入式系统处理数据的方法
US20070119931A1 (en) * 2005-11-25 2007-05-31 C-Media Electronics Inc. Apparatus for reading/writing storage devices
JP4356686B2 (ja) * 2005-12-01 2009-11-04 ソニー株式会社 メモリ装置及びメモリ制御方法
US8275949B2 (en) * 2005-12-13 2012-09-25 International Business Machines Corporation System support storage and computer system
US7245556B1 (en) * 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
WO2007095579A2 (en) * 2006-02-14 2007-08-23 Atmel Corporation Writing to and configuring flash memory
KR100703807B1 (ko) * 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
EP1850347A1 (en) * 2006-04-28 2007-10-31 Deutsche Thomson-Brandt Gmbh Method and device for writing to a flash memory
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7894269B2 (en) 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7606966B2 (en) 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
TWI530791B (zh) 2007-01-10 2016-04-21 木比爾半導體股份有限公司 用於改善外部計算裝置效能的調適性記憶體系統
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US20090006720A1 (en) * 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
KR101431205B1 (ko) * 2007-07-13 2014-08-18 삼성전자주식회사 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
KR20090024971A (ko) * 2007-09-05 2009-03-10 삼성전자주식회사 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US7924628B2 (en) * 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
US7945825B2 (en) * 2007-11-25 2011-05-17 Spansion Isreal, Ltd Recovery while programming non-volatile memory (NVM)
US9032154B2 (en) * 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
US8443260B2 (en) 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
US8352671B2 (en) * 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8209463B2 (en) * 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
JP4691123B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
JP4729062B2 (ja) 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
TWI475378B (zh) * 2008-10-09 2015-03-01 Micron Technology Inc 耦合至一主機之儲存系統、與儲存系統中之nand記憶體介接之控制器及管理nand記憶體裝置堆疊之方法
WO2010041093A1 (en) 2008-10-09 2010-04-15 Federico Tiziani Virtualized ecc nand
US8645617B2 (en) * 2008-12-09 2014-02-04 Rambus Inc. Memory device for concurrent and pipelined memory operations
JP2010157130A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
US8868809B2 (en) * 2009-11-30 2014-10-21 Lsi Corporation Interrupt queuing in a media controller architecture
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US8516264B2 (en) * 2009-10-09 2013-08-20 Lsi Corporation Interlocking plain text passwords to data encryption keys
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
US8271737B2 (en) * 2009-05-27 2012-09-18 Spansion Llc Cache auto-flush in a solid state memory device
TWI435215B (zh) * 2009-08-26 2014-04-21 Phison Electronics Corp 下達讀取指令與資料讀取方法、控制器與儲存系統
US8082313B2 (en) * 2009-10-26 2011-12-20 International Business Machines Corporation Efficient utilization of read-ahead buffer by partitioning read-ahead buffer in correspondence with selectors
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US9514055B2 (en) * 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
US9785561B2 (en) * 2010-02-17 2017-10-10 International Business Machines Corporation Integrating a flash cache into large storage systems
US9959209B1 (en) 2010-03-23 2018-05-01 Western Digital Technologies, Inc. Data storage device adjusting command rate profile based on operating mode
JP2012022475A (ja) * 2010-07-13 2012-02-02 Panasonic Corp データ処理装置、半導体装置および制御方法
JP5520747B2 (ja) * 2010-08-25 2014-06-11 株式会社日立製作所 キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8271692B1 (en) 2010-10-01 2012-09-18 Western Digital Technologies, Inc. Throttled command completion time
CN102169464B (zh) * 2010-11-30 2013-01-30 北京握奇数据系统有限公司 一种用于非易失性存储器的缓存方法、装置及智能卡
US8966201B2 (en) 2010-12-10 2015-02-24 Sandisk Technologies Inc. Method and system for hijacking writes to a non-volatile memory
US8918595B2 (en) 2011-04-28 2014-12-23 Seagate Technology Llc Enforcing system intentions during memory scheduling
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US10031850B2 (en) * 2011-06-07 2018-07-24 Sandisk Technologies Llc System and method to buffer data
US8904128B2 (en) * 2011-06-08 2014-12-02 Hewlett-Packard Development Company, L.P. Processing a request to restore deduplicated data
TWI459389B (zh) * 2011-06-09 2014-11-01 Winbond Electronics Corp 半導體記憶體裝置、記憶體裝置讀取程式以及方法
US9189405B2 (en) * 2011-08-03 2015-11-17 International Business Machines Corporation Placement of data in shards on a storage device
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
CN103324441A (zh) * 2012-03-19 2013-09-25 联想(北京)有限公司 一种信息处理方法及电子设备
US9135192B2 (en) 2012-03-30 2015-09-15 Sandisk Technologies Inc. Memory system with command queue reordering
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9098491B2 (en) * 2012-11-23 2015-08-04 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for performing data transfer with a flash storage medium
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US20140201442A1 (en) * 2013-01-15 2014-07-17 Lsi Corporation Cache based storage controller
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10089224B2 (en) * 2013-03-15 2018-10-02 The Boeing Company Write caching using volatile shadow memory
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
CN104937565B (zh) 2013-03-28 2017-11-17 慧与发展有限责任合伙企业 从第一节点到第二节点的地址范围传送
EP2979187B1 (en) * 2013-03-28 2019-07-31 Hewlett-Packard Enterprise Development LP Data flush of group table
KR20140142759A (ko) * 2013-05-31 2014-12-15 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템
WO2014205638A1 (zh) * 2013-06-25 2014-12-31 华为技术有限公司 一种数据包传输方法及设备
US8929146B1 (en) * 2013-07-26 2015-01-06 Avalanche Technology, Inc. Controller management of memory array of storage device using magnetic random access memory (MRAM)
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9563565B2 (en) 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
TWI514394B (zh) * 2013-08-27 2015-12-21 Toshiba Kk Semiconductor memory device and its control method
US10223026B2 (en) * 2013-09-30 2019-03-05 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored
US10140212B2 (en) 2013-09-30 2018-11-27 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments by remote mirroring memory addresses of nonvolatile memory to which cached lines of the nonvolatile memory have been flushed
US9558124B2 (en) 2013-11-08 2017-01-31 Seagate Technology Llc Data storage system with passive partitioning in a secondary memory
KR102147993B1 (ko) 2013-11-14 2020-08-25 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20150061393A (ko) 2013-11-27 2015-06-04 삼성전자주식회사 메모리 장치로부터 읽은 데이터를 고속으로 전송하는 메모리 컨트롤러 및 그것의 데이터 전송 방법.
KR20150068747A (ko) 2013-12-12 2015-06-22 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
KR102181210B1 (ko) 2014-01-10 2020-11-23 삼성전자주식회사 저장 장치의 데이터 처리 방법 및 저장 장치
US10031869B1 (en) 2014-03-28 2018-07-24 Adesto Technologies Corporation Cached memory structure and operation
KR102198855B1 (ko) 2014-04-24 2021-01-05 삼성전자 주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR102106261B1 (ko) 2014-06-17 2020-05-04 삼성전자주식회사 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
US9740426B2 (en) * 2014-09-19 2017-08-22 Lenovo (Singapore) Pte. Ltd. Drive array policy control
WO2016086342A1 (zh) * 2014-12-01 2016-06-09 华为技术有限公司 数据写入的方法、装置、设备和存储系统
WO2016122657A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Ordering updates for nonvolatile memory accesses
US9658959B2 (en) * 2015-02-20 2017-05-23 PernixData, Inc. Cache resource manager
CN105988735B (zh) * 2015-03-06 2019-03-19 华为技术有限公司 数据写入控制装置及方法
US9875051B2 (en) * 2015-04-24 2018-01-23 Toshiba Memory Corporation Memory system that controls power state of buffer memory
US9823852B2 (en) * 2015-05-01 2017-11-21 Toshiba Memory Corporation Memory system with nonvolatile memory
US10025532B2 (en) 2015-09-11 2018-07-17 Sandisk Technologies Llc Preserving read look ahead data in auxiliary latches
US10642513B2 (en) 2015-09-11 2020-05-05 Sandisk Technologies Llc Partially de-centralized latch management architectures for storage devices
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
KR102470606B1 (ko) 2015-11-26 2022-11-28 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
CN105405465B (zh) * 2015-12-29 2019-07-23 中北大学 数据存储及处理电路
US10120808B2 (en) * 2016-04-22 2018-11-06 Arm Limited Apparatus having cache memory disposed in a memory transaction path between interconnect circuitry and a non-volatile memory, and corresponding method
US10298646B2 (en) 2016-04-27 2019-05-21 Google Llc Similar introduction advertising caching mechanism
KR102664674B1 (ko) 2016-06-10 2024-05-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20180031412A (ko) * 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
US9823880B1 (en) * 2016-09-30 2017-11-21 Intel Corporation Method and apparatus for initiating pre-read operation before completion of data load operation
US10452598B2 (en) * 2016-10-18 2019-10-22 Micron Technology, Inc. Apparatuses and methods for an operating system cache in a solid state device
US11182306B2 (en) * 2016-11-23 2021-11-23 Advanced Micro Devices, Inc. Dynamic application of software data caching hints based on cache test regions
US10318423B2 (en) 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
US10725835B2 (en) 2017-05-03 2020-07-28 Western Digital Technologies, Inc. System and method for speculative execution of commands using a controller memory buffer
US10452278B2 (en) 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
DE112018000247T5 (de) * 2017-03-24 2019-09-12 Western Digital Technologies, Inc. System und verfahren zur lokalitätserkennung zum identifizieren von lese- oderschreibströmen in einer speichervorrichtung
US10466903B2 (en) 2017-03-24 2019-11-05 Western Digital Technologies, Inc. System and method for dynamic and adaptive interrupt coalescing
US10564853B2 (en) 2017-04-26 2020-02-18 Western Digital Technologies, Inc. System and method for locality detection to identify read or write streams in a memory device
US10509569B2 (en) 2017-03-24 2019-12-17 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
WO2018176388A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Techniques to maintain memory confidentiality through power state changes
US10296249B2 (en) 2017-05-03 2019-05-21 Western Digital Technologies, Inc. System and method for processing non-contiguous submission and completion queues
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10564856B2 (en) 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
US10613985B2 (en) * 2017-07-06 2020-04-07 Seagate Technology Llc Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) * 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
KR20200065762A (ko) 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 메모리 시스템
KR20200059493A (ko) 2018-11-21 2020-05-29 에스케이하이닉스 주식회사 데이터 처리 시스템
KR20200065761A (ko) * 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 메모리 시스템
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10877896B2 (en) * 2019-03-07 2020-12-29 Micron Technology, Inc. Adaptive readahead cache manager based on detected active streams of read commands
JP2020155052A (ja) * 2019-03-22 2020-09-24 キオクシア株式会社 メモリシステムおよび制御方法
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US10789094B1 (en) 2019-08-22 2020-09-29 Micron Technology, Inc. Hierarchical memory apparatus
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
KR20210066631A (ko) 2019-11-28 2021-06-07 삼성전자주식회사 메모리에 데이터를 기입하기 위한 장치 및 방법
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11462249B2 (en) 2020-06-30 2022-10-04 Micron Technology, Inc. System and method for reading and writing memory management data using a non-volatile cell based register
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11513723B2 (en) 2020-09-17 2022-11-29 Western Digital Technologies, Inc. Read handling in zoned namespace devices
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11650758B2 (en) 2021-05-06 2023-05-16 Western Digital Technologies, Inc. Data storage device and method for host-initiated cached read to recover corrupted data within timeout constraints
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
CN113905097B (zh) * 2021-09-26 2022-07-05 合肥申威睿思信息科技有限公司 一种数据传输方法和装置
US20230281122A1 (en) * 2022-03-04 2023-09-07 Western Digital Technologies, Inc. Data Storage Device and Method for Host-Determined Proactive Block Clearance
US11894060B2 (en) 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability
CN116049025B (zh) * 2023-01-29 2023-08-11 荣耀终端有限公司 动态调整内存回收gc参数的方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0418649A (ja) * 1990-05-11 1992-01-22 Fujitsu Ltd バッファメモリ制御方式
JPH06349286A (ja) * 1993-06-04 1994-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ用書き込み制御方法および制御装置
JPH07334426A (ja) * 1994-06-10 1995-12-22 Matsushita Electric Ind Co Ltd 情報記録再生装置およびデータキャッシュ方法
JPH086858A (ja) * 1994-06-21 1996-01-12 Toshiba Corp キャッシュ制御装置
JPH08263229A (ja) * 1995-03-23 1996-10-11 Hitachi Ltd 半導体記憶装置

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725945A (en) 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
JPH02219144A (ja) 1989-02-21 1990-08-31 Toshiba Corp ライト・バックアクセス時間を短縮したキャッシュメモリ
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
EP0392895B1 (en) * 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5359569A (en) 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5712180A (en) 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JPH05233464A (ja) 1992-02-25 1993-09-10 Fuji Photo Film Co Ltd Eepromのデータ書換方法およびeepromカード
JPH05299616A (ja) 1992-04-16 1993-11-12 Hitachi Ltd 半導体記憶装置
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5428621A (en) 1992-09-21 1995-06-27 Sundisk Corporation Latent defect handling in EEPROM devices
JPH07146820A (ja) 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US6026027A (en) 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
US5726937A (en) 1994-01-31 1998-03-10 Norand Corporation Flash memory system having memory cache
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US5579259A (en) 1995-05-31 1996-11-26 Sandisk Corporation Low voltage erase of a flash EEPROM system having a common erase electrode for two individually erasable sectors
US5712179A (en) 1995-10-31 1998-01-27 Sandisk Corporation Method of making triple polysilicon flash EEPROM arrays having a separate erase gate for each row of floating gates
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US6023027A (en) * 1996-05-03 2000-02-08 Neff; Scott E. Cable guard having a hinge rod and for protecting cables extending along a tubing string
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5966734A (en) 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5937423A (en) 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
US6263398B1 (en) 1998-02-10 2001-07-17 Ramtron International Corporation Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache
US6295577B1 (en) * 1998-02-24 2001-09-25 Seagate Technology Llc Disc storage system having a non-volatile cache to store write data in the event of a power failure
US6249841B1 (en) 1998-12-03 2001-06-19 Ramtron International Corporation Integrated circuit memory device and method incorporating flash and ferroelectric random access memory arrays
US6349363B2 (en) 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6741414B1 (en) * 1999-06-15 2004-05-25 Tokyo Electron Limited Joint spindle speed and head position control in rotating media storage systems
US6151248A (en) 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
US6708257B2 (en) 1999-07-12 2004-03-16 Koninklijke Philips Electronics N.V. Buffering system bus for external-memory access
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US6343649B1 (en) * 1999-09-07 2002-02-05 Halliburton Energy Services, Inc. Methods and associated apparatus for downhole data retrieval, monitoring and tool actuation
JP3578265B2 (ja) 1999-11-19 2004-10-20 日本電気株式会社 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体
US6647499B1 (en) 2000-01-26 2003-11-11 International Business Machines Corporation System for powering down a disk storage device to an idle state upon trnsfer to an intermediate storage location accessible by system processor
US6329687B1 (en) * 2000-01-27 2001-12-11 Advanced Micro Devices, Inc. Two bit flash cell with two floating gate regions
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6615307B1 (en) * 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
JP2001344986A (ja) 2000-06-05 2001-12-14 Mitsubishi Electric Corp 不揮発性半導体記憶装置
TW576966B (en) * 2000-06-23 2004-02-21 Intel Corp Non-volatile cache integrated with mass storage device
WO2002001375A1 (en) 2000-06-27 2002-01-03 Koninklijke Philips Electronics N.V. Integrated circuit with flash
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
US6694453B1 (en) * 2000-11-14 2004-02-17 Hewlett-Packard Development Company, L.P. Apparatus and method to handle power supply failures for a peripheral device
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US20020087225A1 (en) * 2001-01-03 2002-07-04 Howard Gary M. Portable computing device having a low power media player
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6691205B2 (en) * 2001-03-05 2004-02-10 M-Systems Flash Disk Pioneers Ltd. Method for using RAM buffers with simultaneous accesses in flash based storage systems
US6941414B2 (en) 2001-05-15 2005-09-06 International Business Machines Corporation High speed embedded DRAM with SRAM-like interface
JP4049297B2 (ja) 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US7418344B2 (en) * 2001-08-02 2008-08-26 Sandisk Corporation Removable computer with mass storage
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
US6871257B2 (en) * 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6798353B2 (en) 2002-04-24 2004-09-28 Itron Electricity Metering, Inc. Method of using flash memory for storing metering data
US6941412B2 (en) * 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US7003620B2 (en) * 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7500127B2 (en) * 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
US7426647B2 (en) * 2003-09-18 2008-09-16 Vulcan Portals Inc. Low power media player for an electronic device
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8429313B2 (en) * 2004-05-27 2013-04-23 Sandisk Technologies Inc. Configurable ready/busy control
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
JP4805696B2 (ja) * 2006-03-09 2011-11-02 株式会社東芝 半導体集積回路装置およびそのデータ記録方式
ITRM20060139A1 (it) * 2006-03-13 2007-09-14 Micron Technology Inc Sistema ad unita di controllo distribuito di dispositivo di memoria

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0418649A (ja) * 1990-05-11 1992-01-22 Fujitsu Ltd バッファメモリ制御方式
JPH06349286A (ja) * 1993-06-04 1994-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ用書き込み制御方法および制御装置
JPH07334426A (ja) * 1994-06-10 1995-12-22 Matsushita Electric Ind Co Ltd 情報記録再生装置およびデータキャッシュ方法
JPH086858A (ja) * 1994-06-21 1996-01-12 Toshiba Corp キャッシュ制御装置
JPH08263229A (ja) * 1995-03-23 1996-10-11 Hitachi Ltd 半導体記憶装置

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
JP2009020833A (ja) * 2007-07-13 2009-01-29 Internatl Business Mach Corp <Ibm> データをキャッシュする技術
US8176237B2 (en) 2008-03-01 2012-05-08 Kabushiki Kaisha Toshiba Solid state drive with input buffer
US7904640B2 (en) 2008-03-01 2011-03-08 Kabushiki Kaisha Toshiba Memory system with write coalescing
US10901625B2 (en) 2008-03-01 2021-01-26 Toshiba Memory Corporation Memory system
US11409442B2 (en) 2008-03-01 2022-08-09 Kioxia Corporation Memory system
US8225047B2 (en) 2008-03-01 2012-07-17 Kabushiki Kaisha Toshiba Memory system with pre-fetch operation
US9201717B2 (en) 2008-03-01 2015-12-01 Kabushiki Kaisha Toshiba Memory system
US8938586B2 (en) 2008-03-01 2015-01-20 Kabushiki Kaisha Toshiba Memory system with flush processing from volatile memory to nonvolatile memory utilizing management tables and different management units
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US8868842B2 (en) 2008-12-27 2014-10-21 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
JP2011008570A (ja) * 2009-06-26 2011-01-13 Buffalo Inc ストレージ装置、情報処理システム、およびコンピュータプログラム
US8819350B2 (en) 2009-09-25 2014-08-26 Kabushiki Kaisha Toshiba Memory system
JP2013513186A (ja) * 2009-12-07 2013-04-18 マイクロソフト コーポレーション ハイブリッドストレージを使用したssdの寿命の延長
JP2011238176A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
US8639881B2 (en) 2010-05-13 2014-01-28 Kabushiki Kaisha Toshiba Information processing apparatus and driver
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
US8407418B2 (en) 2010-05-13 2013-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and driver
USRE48127E1 (en) 2010-05-13 2020-07-28 Toshiba Memory Corporation Information processing apparatus and driver
JP2011238175A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
JP2015503816A (ja) * 2012-01-16 2015-02-02 クアルコム,インコーポレイテッド ハイブリッドなライトスルー/ライトバックキャッシュポリシーマネージャ、ならびに関連するシステムおよび方法
US10152274B2 (en) 2014-06-25 2018-12-11 Huawei Technologies Co., Ltd. Method and apparatus for reading/writing data from/into flash memory, and user equipment
JP2017527877A (ja) * 2014-06-25 2017-09-21 華為技術有限公司Huawei Technologies Co.,Ltd. フラッシュメモリから/フラッシュメモリへデータを読み取る/書き込むための方法および装置、ならびにユーザ機器
US10628048B2 (en) 2016-12-28 2020-04-21 Fujitsu Limited Storage control device for controlling write access from host device to memory device
JP2022528896A (ja) * 2019-05-17 2022-06-16 長江存儲科技有限責任公司 スタティックランダムアクセスメモリを有する3次元メモリデバイスのキャッシュプログラム動作
JP7407203B2 (ja) 2019-05-17 2023-12-28 長江存儲科技有限責任公司 スタティックランダムアクセスメモリを有する3次元メモリデバイスのキャッシュプログラム動作

Also Published As

Publication number Publication date
KR101204680B1 (ko) 2012-11-26
US20080250202A1 (en) 2008-10-09
WO2005088456A3 (en) 2006-04-20
KR20070022659A (ko) 2007-02-27
US20070143545A1 (en) 2007-06-21
WO2005088456A2 (en) 2005-09-22
JP5192228B2 (ja) 2013-05-08
US9678877B2 (en) 2017-06-13
EP2264605B1 (en) 2015-12-16
EP2264605A1 (en) 2010-12-22
US7173863B2 (en) 2007-02-06
CN100483366C (zh) 2009-04-29
CN101504629B (zh) 2012-04-11
EP1725937A2 (en) 2006-11-29
US20050195635A1 (en) 2005-09-08
TWI267862B (en) 2006-12-01
CN1950804A (zh) 2007-04-18
CN101504629A (zh) 2009-08-12
TW200614249A (en) 2006-05-01
US7408834B2 (en) 2008-08-05

Similar Documents

Publication Publication Date Title
JP5192228B2 (ja) フラッシュコントローラのキャッシュ構造
US8904083B2 (en) Method and apparatus for storing data in solid state memory
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
US7610438B2 (en) Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US9183132B2 (en) Storage device, computer system, and storage system
JP4834676B2 (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP4518951B2 (ja) 不揮発性記憶システムにおける自動損耗均等化
US10949355B2 (en) Methods and apparatus for workload based dynamic cache control in SSD
CN113508368A (zh) 用于存储器子系统中的单独的只读高速缓存和写入-读取高速缓存的未完成命令队列的使用
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
US20130042057A1 (en) Hybrid Non-Volatile Memory System
US20090235014A1 (en) Storage device and computing system
KR102663304B1 (ko) 구역 네임스페이스 디바이스들에서의 판독 처리
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
JP2006065533A (ja) 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
EP4170506A1 (en) Systems, methods, and devices for ordered access of data in block modified memory
WO2021242317A1 (en) Zns parity swapping to dram
US11126558B2 (en) Data storage device and control method for non-volatile memory
US11704249B2 (en) Frozen time cache for multi-host read operations
TW202318205A (zh) 記憶體系統及資料輸入輸出系統
CN114981786A (zh) 高速缓存媒体管理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110420

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111124

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120113

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Ref document number: 5192228

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250