JP4787266B2 - スクラッチパッドブロック - Google Patents

スクラッチパッドブロック Download PDF

Info

Publication number
JP4787266B2
JP4787266B2 JP2007546731A JP2007546731A JP4787266B2 JP 4787266 B2 JP4787266 B2 JP 4787266B2 JP 2007546731 A JP2007546731 A JP 2007546731A JP 2007546731 A JP2007546731 A JP 2007546731A JP 4787266 B2 JP4787266 B2 JP 4787266B2
Authority
JP
Japan
Prior art keywords
data
sector
block
page
sectors
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.)
Active
Application number
JP2007546731A
Other languages
English (en)
Other versions
JP2008524705A (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 JP2008524705A publication Critical patent/JP2008524705A/ja
Application granted granted Critical
Publication of JP4787266B2 publication Critical patent/JP4787266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/10Programming or data input circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明は、一般的には、不揮発性フラッシュメモリシステムの動作に関し、より詳細には、不揮発性フラッシュメモリ内のデータをプログラムする、より効率的な方法に関する。
今日、商業的に成功している数多くの不揮発性メモリ製品は、特に、1つ以上の集積回路チップ上に形成されたフラッシュEEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)セルのアレイを用いる小形形状のファクタカードの形態で用いられている。通常、別個の集積回路チップ上に形成されているが必ずしもそうとは限らないメモリコントローラは、カードが取り外し可能に接続されているホストとインターフェイスをとり、カード内のメモリアレイの動作を制御する。一般的に、このようなコントローラは、マイクロプロセッサ、何らかの不揮発性読み出し専用メモリ(ROM)、揮発性ランダムアクセスメモリ(RAM)、およびデータのプログラミングおよび読み出し中にデータがコントローラを通過するとデータから誤り訂正符号(ECC)を計算する回路のような1つ以上の特殊回路を含む。市販のカードの一部は、コンパクトフラッシュ(登録商標)(CF)カード、マルチメディアカード(MMC)、セキュアデジタル(SD)カード、パーソナルタグ(P‐Tag)およびメモリスティックカードである。ホストは、パーソナルコンピュータ、ノートブック形コンピュータ、個人用携帯情報端末(PDA)、様々なデータ通信装置、デジタルカメラ、携帯電話、携帯オーディオプレーヤ、自動車サウンドシステムおよび類似の機器を含む。幾つかのシステムでは、取り外し可能なカードはコントローラを含まず、ホストが、カード内のメモリアレイの動作を制御する。この種のメモリシステムの例として、スマートメディアカードおよびxDカードが挙げられる。従って、カード内のコントローラのソフトウェアまたはホスト内の制御ソフトウェアによってメモリアレイの制御を達成することができる。メモリカードの実施例以外に、この種のメモリを様々な種類のホストシステム内に埋め込むこともできる。取り外し可能な用途および埋め込み用途の双方では、メモリ制御ソフトウェアによって実装された記憶方式に従ってホストデータをメモリアレイ内に記憶することができる。
商業用途で見られる2つの汎用メモリセルアレイ構造は、NORおよびNANDである。一般的なNORアレイでは、メモリセルは、列方向に延在する隣接のビット線のソース拡散領域とドレイン拡散領域との間に接続され、セルの行に沿って延在するワード線にはコントロールゲートが接続されている。メモリセルは、ソースとドレインとの間のセルチャネル領域の少なくとも一部分にわたって位置付けられた少なくとも1つの記憶素子を含む。従って、記憶素子上の電荷のプログラムレベルはセルの動作特性を制御し、アドレス指定されたメモリセルに適切な電圧を印加することによってセルを読み出すことができる。このようなセル、メモリシステムでの使用および製造方法の例が、米国特許第5,070,032号(特許文献1)、第5,095,344号(特許文献2)、第5,313,421号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)、第5,661,053号(特許文献6)および第6,222,762号(特許文献7)に示されている。
NANDアレイは、セルの列を形成するため、個々のビット線と基準電位との間の1つ以上の選択トランジスタと一緒に接続された16または32のような3つ以上のメモリセルの直列ストリングを用いる。ワード線は、多数のこれら列内のセルにまたがって延在する。ストリングに流れる電流が、アドレス指定されたセルに記憶された電荷のレベルに依存するようにストリング内の残りのセルを確実にオンに転換させることにより列内の個々のセルはプログラミング中、読み出され、ベリファイされる。NAND構造アレイおよびメモリシステムの一部としての動作の例が、米国特許第5,570,315号(特許文献8)、第5,774,397号(特許文献9)、第6,046,935号(特許文献10)および第6,522,580号(特許文献11)で見られる。
前述した援用されている特許のような現在のフラッシュEEPROMアレイの電荷記憶素子は、最も一般的には導電性フローティングゲートであり、導電的にドープされたポリシリコン材料から一般的に形成されている。フラッシュEEPROMシステムで有用であるメモリセルの代替の種類は、導電性フローティングゲートの代わりに非導電性の誘電体材料を用いて、不揮発的に電荷を記憶する。酸化シリコン、窒化シリコンおよび酸化シリコン(ONO)から形成された3層誘電体は、メモリセルチャネル上の半導体基板の表面と導電性コントロールゲートとの間に挟まれている。セルは、セルチャネルから窒化物へ電子を注入し、窒化物で電子が捕捉され、限定領域内に記憶されることによってプログラムされ、ホットホールを窒化物へ注入することによって消去される。誘電性の記憶素子を用いる幾つかの特定のセル構造およびアレイは、ハラリらの米国公開特許出願第2003/0109093号(特許文献12)で説明されている。
大部分の集積回路用途でのように、ある集積回路機能を実装するのに必要とされるシリコン基板領域を縮小させるという圧力は、フラッシュEEPROMメモリセルアレイの場合にも存在する。所定の大きさのメモリカードおよび他の種類のパッケージの記憶容量を増大させるため、シリコン基板の所定の領域に記憶することができるデジタルデータの量を増大させること、または、容量を増大させ、かつ大きさを減少させることが絶えず望まれている。データの記憶密度を増大させる1つの方法は、1メモリセル当たりおよび/または1記憶ユニットまたは素子当たり2ビット以上のデータを記憶することである。このことは、記憶素子の電荷レベル電圧範囲のウィンドウ(窓)を3つ以上の状態に分割することによって達成される。例えば、このような状態を4つ使用することによって、各セルが2ビットのデータを記憶することが可能となり、8つの状態が1記憶素子当たり3ビットのデータを記憶するなどである。フローティングゲートを用いる多状態のフラッシュEEPROM構造およびその動作は、米国特許第5,043,940号(特許文献13)および第5,172,338号(特許文献14)で説明され、誘電性のフローティングゲートを用いる構造については、前述した米国公開特許出願第2003/0109093号(特許文献12)で説明されている。また、米国特許第5,930,167号(特許文献15)および第6,456,528号(特許文献16)で説明されているように、多状態メモリセルアレイの選択された部分を、様々な理由で2つの状態(2値)で動作することができる。本願明細書で説明した他のすべての特許および特許出願と同様に、これら特許もその全体が本願明細書において参照により援用されている。
一般的なフラッシュEEPROMアレイのメモリセルは、同時に消去されるセルの離散的なブロック(消去ブロック)に分割されている。すなわち、消去ブロックは消去単位であり、最小数のセルは同時に消去できる。一般的に、各消去ブロックはデータの2つ以上のページを記憶し、ページは、プログラミングおよび読み出しの最小単位である。しかし、1つ以上のページを、異なるサブアレイまたはプレーンに並行してプログラムまたは読み出すことができる。一般的に、各ページはデータの1つ以上のセクタを記憶し、セクタの大きさはホストシステムによって定義される。例示的なセクタは、磁気ディスクドライブよって確立された規格に従う512バイトのユーザデータと、ユーザデータおよび/またはそれらが記憶される消去ブロックに関する幾らかのバイト数のオーバーヘッド情報とを含む。一般的に、このようなメモリは、各消去ブロック内に16,32またはそれ以上のページを有し、各ページが1つまたはごくわずかのホストセクタのデータを記憶するように構成されている。
ユーザデータをメモリアレイ内にプログラムし、そこからユーザデータを読み出す間、並列性の度合いを増大させるため、一般的に、アレイは、プレーンと一般に称されるサブアレイに分割され、プレーンは、データのセクタを幾つかまたはすべてのプレーンの各々に同時にプログラムするかまたはそこから読み出しできるように並列動作を可能にするデータレジスタおよび他の回路を含む。単一集積回路上のアレイをプレーンに物理的に分割することができ、または分離した1つ以上の集積回路チップから各プレーンを形成することができる。このようなメモリの実施例は、米国特許第5,798,968号(特許文献17)および第5,890,192号(特許文献18)で説明されている。
メモリを更に効率良く管理するため、消去ブロックを結合して仮想ブロックまたはメタブロックを形成することができる。すなわち、各メタブロックは、各プレーンから1つの消去ブロックを含むように定義されている。メタブロックの使用は、米国特許第6,763,424号(特許文献19)で説明されている。メタブロックは、データをプログラムし読み出す出力先としてホスト論理ブロックアドレスによって識別される。同様に、メタブロックの消去ブロックのすべては同時に消去される。メタブロックは、メタブロック内の各消去ブロックからの1つのページを含むメタページ単位でプログラムされてもよい。このような大規模なブロックおよび/またはメタブロックで動作されるメモリシステム内のコントローラは、ホストから送信された論理ブロックアドレス(LBA)と、メモリセルアレイ内の物理ブロック番号(PBN)との間の変換を含む多くの機能を実行する。一般的に、消去ブロック内の個々のページは、ブロックアドレス内のオフセットによって識別される。アドレス変換は、論理ブロック番号(LBN)および論理ページの中間の使用を含むことが多い。メタブロックを使用するメモリシステムにおいて、メタブロックは、メモリアレイの消去の有効最小単位であってもよい。よって、消去の最小単位(ブロック)は、メモリ構造により、消去ブロックであっても、メタブロックであってもよい。「ブロック」という用語は、構造により、消去ブロックまたはメタブロックのいずれを指してもよい。同様に、「ページ」という用語は、メモリシステムのプログラミングの最小単位を指してもよい。これは、メモリシステム構造により、単一の消去ブロック内のページであってもよいし、いくつかの消去ブロックにわたって広がるメタページであってもよい。
メタブロックに記憶されたデータは、更新されることが多く、更新の可能性は、メタブロックのデータ容量が多いほど高まる。あるメタブロックの更新されたセクタは、通常、他のメタブロックへ書き込まれる。変更されなかったセクタも、通常、同一のプログラミング動作の一部として、元のメタブロックから新しいメタブロックへ複写されて、データを統合する。代替例として、変更されなかったデータは、更新されたデータが単一のメタブロックに後に再び統合されるまで元のメタブロックに残っていてもよい。現在のデータを新しいブロックに統合して、古いデータのみを含むブロックを消去する動作は、一般的には「ガーベッジコレクション」動作と称される。
消去されたブロックのプール内に保持されたいくつかの余分なブロックと共に大きなブロックまたはメタブロックシステムを動作させることは一般的である。あるブロックの容量未満のデータの1つ以上のページが更新されようとする場合、一般的には、更新されたページをプールからの消去されたブロックへ書き込み、その後、元のブロックから変更されなかったページのデータを複写して、プールブロックを消去する。この手法の変形例については、米国特許第6,763,424号(特許文献19)に記載されている。時間が経つにつれて、ホストデータファイルが再書き込みされ、かつ更新される結果、数多くのブロックが、有効データを含む比較的少ない数のページと、もはや新しくないデータを含む残りのページとになりうる。アレイのデータ記憶容量を効率的に使用できるようにするために、有効データのうちの論理的に関連したデータページを複数のブロック内の断片からときどき収集して、より少ない数のブロックに統合する。この処理は、通常、「ガーベッジコレクション」と称される。
幾つかのメモリシステムでは、物理メモリセルは2つ以上の区域に分類されている。区域を、物理メモリまたはメモリシステムの任意の区画されたサブセットとすることができ、これらサブセットには、指定された範囲の論理ブロックアドレスがマッピングされる。例えば、64メガバイトのデータを記憶できるメモリシステムを4つの区域に区画することができ、1区域当たり16メガバイトのデータを記憶する。次に、論理ブロックアドレスの範囲も4つの群に分割され、1つの群は、4つの各々の区域の物理ブロックに割り当てられる。一般的な実施例において、論理ブロックアドレスは制約されているので、論理ブロックアドレスがマッピングされた単一物理区域の外には各々のデータは決して書き込まれない。アドレス指定、プログラミングおよび読み出し回路を各々有するプレーン(サブアレイ)に分割されたメモリセルアレイでは、各区域は、複数のプレーンからブロックを含むのが好ましく、一般的には、各プレーンから同数のブロックを含む。主として、区域は、論理−物理変換のようなアドレス管理を単純にして、その結果、変換テーブルを小さくし、これらテーブルを保持するのに必要とされるRAMメモリを小さくし、メモリの現在アクティブな領域をアドレス指定するためのアクセス時間を速めるために用いられているが、制限された性質のため、結果として、最適な消耗平均化に満たないことがある。
個々のフラッシュEEROMセルは、1ビット以上のデータを表す電荷量を電荷記憶素子またはユニット内に記憶する。記憶素子の電荷レベルは、セルの記憶状態を読み出す基準として用いられるメモリセルの(一般にVT と称される)しきい値電圧を制御する。一般に、しきい値電圧のウィンドウ(窓)は、メモリセルの2つ以上の記憶状態の各々にそれぞれ1つ対応する多数の範囲に分割されている。これら範囲は、個々のセルの記憶状態を決定させる公称感知レベルを含む保護帯域によって分離されている。これら記憶レベルは、隣接または他の関連するメモリセル、ページまたはブロックに実行される電荷による妨害プログラミング動作、妨害読み出し動作または妨害消去動作の結果として変化する。従って、誤り訂正符号(ECC)は一般的にコントローラによって計算され、プログラムされるホストデータと一緒に記憶され、読み出し中、データをベリファイし、必要に応じて、あるレベルのデータ訂正を実行するのに用いられる。また、妨害動作が電荷レベルを所定範囲から大きく変化させ、誤りデータを読み出させる前に、変化し電荷レベルを時々、それらの状態範囲の中心に戻し復元することができる。この処理は、データリフレッシュまたは消し込みと称され、米国特許第5,532,962号(特許文献20)および第5,909,449号(特許文献21)で説明されている。
あるメモリアレイにおいて、ページは、データの複数のセクタを保持可能な消去ブロックの部分からなってもよい。ページが一旦書き込まれると、既に書き込まれているデータを破損させることなくさらなる書き込みが可能であってもよい。そのようなシステムを使用するメモリアレイについて、ページは、同一のワード線に結合されたメモリセルのセットによって規定されてもよい。そのようなメモリアレイは、ページのサイズよりも少ない量のデータが受信されるように、非効率的にプログラムされてもよい。例えば、データが一度に1セクタずつ受信される場合、1セクタだけがページに対してプログラムされてもよい。既にそこにセーブされているデータのセクタを破損するという危険を冒すことなく、追加のデータがページに対してプログラムされることはなくてもよい。ときには、一連の単一セクタがいくらかの遅延を伴って受信される場合がある。この場合に、各セクタは、メモリアレイの別々のページへ書き込まれる。よって、セクタは、メモリアレイ内のスペースをどのように使うかについて非効率的なやり方で記憶される。マルチレベル論理が使用される場合には、メモリセルは、近傍のセルの後のプログラミングの効果による影響を特に受けやすい。加えて、マルチレベルセルのプログラミングは、一般的には、データの第1のページでセル群をプログラムし、その後、データの第2のページでセルをプログラムすることによって行われる。データの第2のページのプログラミングは、場合によっては、データの第1のページを破損させることがある。よって、ページより少ない量のデータをメモリアレイが受信する場合に、マルチセクタページを有するメモリアレイ内にデータを記憶させるためのより効率的な方法の必要性がある。また、マルチレベルセル群をプログラムする場合に、後続のページのプログラミング中に第1のページのデータを破損させない手法の必要性もある。
米国特許第5,070,032号 米国特許第5,095,344号 米国特許第5,313,421号 米国特許第5,315,541号 米国特許第5,343,063号 米国特許第5,661,053号 米国特許第6,222,762号 米国特許第5,570,315号 米国特許第5,774,397号 米国特許第6,046,935号 米国特許第6,522,580号 米国公開特許出願第2003/0109093号 米国特許第5,043,940号 米国特許第5,172,338号 米国特許第5,930,167号 米国特許第6,456,528号 米国特許第5,798,968号 米国特許第5,890,192号 米国特許第6,763,424号 米国特許第5,532,962号 米国特許第5,909,449号
消去単位としてのブロックを有するメモリアレイにおいて、1つ以上のブロックが、スクラッチパッドブロックとして指定されて、メモリシステムの性能を改善するために使用されてもよい。スクラッチパッドブロックは、低い並列性でデータがスクラッチパッドブロックへ書き込まれて、その後、高い並列性でメモリアレイ内の他の位置に複写されるように、バッファとして動作してもよい。データは、より効率的に他の位置へ書き込まれるようになるまで、スクラッチパッドブロックに蓄積されてもよい。マルチセクタページを有するメモリにおいて、セクタは、システムの最大並列性を使用して完全なページが書き込まれてもよくなるまで、蓄積されてもよい。マルチレベルセルメモリにおいて、下位ページは、上位および下位ページが共に記憶されるように上位ページが利用可能になるまで、スクラッチパッドブロック内に記憶されてもよい。
特定のプログラミング動作の並列性は、共にプログラムされるデータのビット数に比例する。よって、大量のデータを共にプログラムすることは、高い並列性を有する書き込みとみなされ、少量のデータを共にプログラムすることは、低い並列性であるとみなされる。1つのページより少ない並列性を使用する場合には、メモリアレイ内のスペースが無駄になる場合があり、この無駄なスペースがあるということは、ガーベッジコレクションをより頻繁に行わなければならないことを意味し、それによって、メモリシステムの効率性に悪影響を与える。ときには、少量のデータをメモリシステムに記憶しなければならない。これら小さい書き込みをスクラッチパッドブロックという1つの位置へ書き込んだ後に、それらを高い並列性で他の位置に書き込むによって、メモリシステムの効率性が高くなることもある。
データの複数のセクタからなるページのプログラミングの最小単位を有するメモリシステムにおいて、1ページ未満の量で受信されるデータを記憶する方法が開示される。完全なページがフラッシュメモリアレイへ書き込まれるようになるまで、受信されたセクタを記憶するために、スクラッチパッドブロックとして指定されたブロックを使用する。第1のセクタは、スクラッチパッドブロックの第1のページに記憶される。その後に受信されたセクタは、スクラッチパッドブロックの追加のページに記憶されてもよい。個別に受信されたセクタまたはセクタ群は、それらが受信された際に、スクラッチパッドブロックの新しいページにセーブされる。スクラッチパッドブロック内の他のページからの以前に記憶されたセクタは、新しいデータと共に、最新のページへ複写されてもよい。よって、データのセクタは、スクラッチパッドブロックのページ内の新しいデータの完全なページ未満である限り、スクラッチパッドブロック内に蓄積される。セクタは、ブロックの最大有効並列性よりも低い並列性でスクラッチパッドブロックへ書き込まれる。セクタがスクラッチパッドブロックに記憶されている間、更新されてもよい。データの新しいセクタが受信されて、データの完全なページがプログラミング用に利用可能になった場合には、新しいセクタおよびスクラッチパッドブロックに以前に記憶されたセクタは、メモリアレイの他のブロック内の同一ページに共にプログラムされてもよい。このページは、データで完全に埋まり、最大有効並列性で書き込まれる。その後、スクラッチパッドブロックに記憶されたデータは、古いもの (obsolete) であるとマーク付けされて、都合のよいときに消去されてもよい。よって、フラッシュメモリ内のスペースは、より効率的に使用され、ガーベッジコレクション動作の頻度は減少する。
マルチレベルセルを有するメモリにおいて、スクラッチパッドブロックは、アクティブブロックにも書き込まれるデータのページを記憶してもよい。記憶されたページは、データの他のページが受信されるまで、スクラッチパッドブロック内に保持されてもよく、これは、データの2つのページがアクティブブロック内のそれらの宛先へ共に書き込まれるようにするためである。これらのページは、高い並列性を使用して、上位ページおよび下位ページとして共に書き込まれてもよく、別個に書き込まれた場合よりも破損の危険性が低い状態となる。電力の損失がある場合に下位ページ内のデータがスクラッチパッドブロックから回復されるようにするために、関連する上位ページのプログラミング中に、以前にプログラムされた下位ページの複写を保持するために使用されてもよい。
スクラッチパッドブロックは、他の位置へ書き込まれるべきデータの一時記憶を許容してもよい。データは、あるブロックのデータのセクタの更新中にスクラッチパッドブロック内に記憶されてもよい。あるブロック内のあるページは、互いに異なるファイルからのデータのセクタを含む場合に、ページは、いずれかのブロックが更新されると更新される。従来の方法を使用して2つのファイルからの更新データを記憶するために、1つ以上のブロックが必要となる場合がある。なぜならば、マルチファイルページの2つの複写が必要な場合があるからである。スクラッチパッドブロックを使用すれば、あるファイルからのページの一部を、(他のファイルからの)残りのページが利用可能になるまで記憶することができる。その後、完全な更新ページが、最大並列性を使用してその宛先にプログラムされる。
スクラッチパッドブロックは、関連性のないデータのセクタを含んでもよい。ホストデータセクタおよび制御データセクタの両方が、スクラッチパッドブロック内に記憶されてもよい。ホストデータセクタおよび制御データセクタの両方が、スクラッチパッドブロック内の同一のページ内に記憶されてもよい。2つの互いに異なるファイルからのセクタ、または同一のファイルの論理的にリモートな部分からのセクタが、スクラッチパッドブロックの同一のページに記憶されてもよい。これにより、データを受信しながら高速を維持するように、最大並列性でスクラッチパッドブロックのプログラミングが可能になってもよい。データを低速で受信する場合には、ページ内の追加のスペースは、制御データを含むセクタによって占有される。これにより、制御データ構造が低い頻度で更新されるようになってもよいことから、ガーベッジコレクションの頻度が減少する。
スクラッチパッドは、コントローラが容易に識別できるように、マーク付けセクタによって識別されてもよい。スクラッチパッドブロック内に記憶されたデータのインデックスが、これもまたスクラッチパッドブロック内に記憶されたインデックスセクタ内で維持されてもよい。新しいセクタがスクラッチパッドブロック内に記憶されるにつれて、古いインデックスセクタが新しいインデックスセクタに置き換わることによって、インデックスセクタが更新される。同様に、スクラッチパッドブロック内のセクタが他の位置に複写されるにつれて、インデックスセクタは更新されて、スクラッチパッドブロック内のこれらのセクタが古いものであることを示してもよい。
メモリ構造および動作
最初に図1Aを参照する。フラッシュメモリは、メモリセルアレイおよびコントローラを含む。図に示されている例では、2つの集積回路装置(チップ)11,13は、メモリセルのアレイ15および様々な論理回路17を含む。論理回路17は、データ、命令および状態回路を介して別個のチップ上のコントローラ19とインターフェイスをとり、しかも、アドレス指定、データ転送および感知を行い、アレイ13への他の支援を行う。設けられている記憶容量に応じてメモリアレイチップの数を1から多数とすることができる。コントローラと、一部または全部のアレイとを単一集積回路チップ上に結合することができる。しかし、これは現在のところ経済的ではない。
一般的なコントローラ19は、マイクロプロセッサ21と、主としてファームウェアを記憶する読み出し専用メモリ(ROM)23と、主として、メモリチップ11,13へ書き込むか、そこから読み出されるユーザデータを一時的に記憶するバッファメモリ(RAM)25とを含む。回路27は(1つ以上の)メモリアレイチップとインターフェイスをとり、回路29は接続部31を介してホストとインターフェイスをとる。この例において、データの完全性は、コードの計算専用の回路33でECCを計算することによって判断される。ユーザデータが記憶のためにホストからフラッシュメモリアレイへ転送されるにつれて、回路は当該データからECCを計算し、コードはメモリに記憶される。ユーザデータがメモリから後で読み出される場合には、ユーザデータは、再び回路33を通じてわたされる。回路33は、同一のアルゴリズムによってECCを計算して、当該コードを、計算されてデータと共に記憶されたコードと比較する。これらが同等であれば、データの完全性が確認される。これらが異なっていれば、使用される具体的なECCアルゴリズムによっては、アルゴリズムによってサポートされた数までのエラーのビットを識別および訂正できる。
図1Aのメモリの接続部31は、一例として図1Bに示されているホストシステムの接続部31’と結合する。ホストと図1Aのメモリとの間のデータ転送は、インターフェイス回路35を介する。また、一般的なホストは、マイクロプロセッサ37と、ファームウェアコードを記憶するROM39と、RAM41とを含む。他の回路およびサブシステム43は、特定のホストシステムに応じて大容量磁気データ記憶ディスクドライブ、キーボード用のインターフェイス回路、モニタなどを含むことが多い。このようなホストの幾つかの例として、ディスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、個人用携帯情報端末(PDA)、MP3および他のオーディオプレーヤ、デジタルカメラ、ビデオカメラ、電子ゲーム機、無線および有線電話装置、留守番電話機、音声録音装置、ネットワークルータなどが挙げられる。
図1Aのメモリは、図1Bのホストと取り外し可能に接続できる形態をとるコントローラおよびすべてのメモリアレイ回路装置を含む小形の封入カードとして実装することができる。すなわち、結合している接続部31,31’によって、カードを外し別のホストに移動し、または別のカードをホストに接続することによりカードを取り替えることができる。代替例として、コントローラおよび接続部31を含むカードと電気的かつ機械的に接続可能である別個のカード内にメモリアレイ装置を封入することができる。更なる代替例として、図1Aのメモリを図1Bのホスト内に埋め込むことができ、接続部31,31’は取り外せないように形成される。この場合、通常、メモリは、他の構成要素と一緒にホストの筐体内に含まれる。
図2には、メモリアレイの一部を示し、メモリセルは消去ブロックに分類され、各消去ブロック内のセルは、通常同時に生じる単一消去動作の一部として同時に消去可能である。消去ブロックは、この種のメモリの消去の最小単位である。
図2の個々のメモリセルの消去ブロックの大きさは異なることができる。しかし、1つの商業的に実施されている形態は、個々の消去ブロック内に単一セクタのデータを含む。このようなデータセクタの内容は図3に示されている。ユーザデータ51は一般的に512バイトである。ユーザデータから計算されたECC53と、セクタデータに関連し、および/または、セクタがプログラムされた消去ブロックに関連するパラメータ55と、パラメータ55から計算されたECC57とを含むオーバーヘッドデータと、を含めることができる任意の他のオーバーヘッドデータとがユーザデータ51に追加されている。
また、1つ以上のフラグがステータスまたはステートを示すパラメータ55に含まれてもよい。また、消去ブロックをプログラムおよび/または消去するために使用される電圧レベルの表示をパラメータ55内に記憶することもでき、これらの電圧は、消去ブロックによって経験された周期の数および他の要因が変化するに従って更新される。パラメータ55の他の例には、消去ブロック内の任意の不良セルの識別、この物理消去ブロックにマッピングされた消去ブロックの論理アドレス、および一次消去ブロックが不良である場合の任意の代替消去ブロックのアドレスが含まれる。任意のメモリシステムにおいて使用されるパラメータ55の特定の組み合わせは、設計に従って様々となりうる。また、オーバーヘッドデータのいくつかまたはすべてを、ユーザデータを含むかまたはオーバーヘッドデータが関連する消去ブロック内ではなく、そのような機能専用の消去ブロック内に記憶することもできる。
図2の単一のデータセクタ消去ブロックと異なるのは、図4のマルチセクタ消去ブロックである。消去ブロック59も、消去の最小単位であるが、4つのページ0〜3を含み、それぞれがプログラミングの最小単位である。データの1つ以上のホストセクタが、通常、セクタのデータから計算されたECCを少なくとも含むオーバーヘッドデータと共に各ページ内に記憶され、図3のデータセクタの形式であってもよい。
ブロック全体のデータの書き換えは、通常、新しいデータを消去ブロックプールのブロック内にプログラムして、その後、元のブロックは消去されて消去プールに配置されることを伴う。ブロックのすべてのページより少ないデータが更新される場合には、更新データは、一般的には、消去済みブロックプールからのブロックのページに記憶され、残りの変更されなかったページ内のデータは、元のブロックから新しいブロックへ複写される。その後、元のブロックは消去される。この大規模なブロック管理手法の変形例には、元のブロックからのデータを動かすことも消去することもせずに、他のブロックのページ内に更新されたデータを書き込むことが含まれる。この結果、複数のページが同一の論理アドレスを有することになる。データの直近のページは、セクタまたはページオーバーヘッドデータ内のフィールドとして記録されたプログラミング時間などの何らかの都合のよい手法によって識別される。
さらなるマルチセクタブロック配列を図5に示す。ここで、総メモリセルアレイは、物理的に2つ以上のプレーンに分割され、4つのプレーン0〜3が示されている。各プレーンは、他のプレーンからほとんど独立して動作できるように、自身のデータレジスタ、センス増幅器、アドレス指定デコーダなどを有するメモリセルのサブアレイである。すべてのプレーンは、単一の集積回路装置上または複数の装置上に設けられてもよく、一例では、1つ以上の別個の集積回路装置から各プレーンが形成される。図5のシステム例における各ブロックは、16のページP0〜P15を含み、各ページは、1、2、またはそれ以上のホストデータセクタおよび何らかのオーバーヘッドデータの容量を有する。
さらに他のメモリセル配列を図6に示す。各プレーンは、セルの数多くの消去ブロックを含む。動作の並列性を高めるために、互いに異なるプレーン内の消去ブロックを論理的にリンクさせて、メタブロックを形成する。そのようなあるメタブロックを、プレーン0の消去ブロック3と、プレーン1の消去ブロック1と、プレーン2の消去ブロック1と、プレーン3の消去ブロック2とから形成されるものとして、図6に示す。各メタブロックは、論理的にアドレス指定可能であり、メモリコントローラは、個々のメタブロックを形成する消去ブロックを割り当てて常時監視する。ホストシステムは、好ましくは、個々のメタブロックの容量に等しいデータ単位でメモリシステムとインターフェイスをとる。図6のそのような論理データブロック61は、例えば、メタブロックを構成するブロックの物理ブロック番号(PBN)にコントローラによってマッピングされた論理ブロックアドレス(LBA)によって識別される。メタブロックのすべての消去ブロックは共に消去され、各消去ブロックからのページは、好ましくは同時にプログラムおよび読み出される。メタブロックは、このように消去ブロックがリンクされたシステム内の消去単位とみなされてもよい。メタブロック構造を有するあるメモリアレイにおいて、ページは、メタブロックの他のページと並列にプログラムされるだけであってもよい。これらのメモリアレイにおいて、メタページは、メタブロックの各プレーンからのページからなるメタブロックのプログラミングの最小単位である。
図2〜図6に関して前述したメモリを実施するために使用されてもよいような、数多くの互いに異なるメモリアレイ構造、構成、および特定のセル構成がある。NAND形のメモリアレイの消去ブロックの1つを図7に示す。直列接続されたメモリセルの数多くの縦向きの列が、電圧VSSの共通のソース65とビット線BL0〜BLNのうちの1つとの間に接続され、さらには、ビット線は、アドレスデコーダ、ドライバ、読み出しセンス増幅器などを含む回路67に接続されている。具体的には、そのようなある列は、列の向かい合わせの端部にある選択トランジスタ77と79との間に直列接続された電荷蓄積トランジスタ70,71,…72,および74を含む。この例において、各列は16個の記憶トランジスタを含むが、他の個数も可能である。ワード線WL0〜WL15が、各列の1つの記憶トランジスタにわたって延び、ワード線のアドレスデコーダと電圧ソースドライバとを含む回路81に接続されている。線83および84上の電圧は、電圧ソース65および/またはビット線BL0〜BLNのいずれかに対する、消去ブロック内のすべての列の、選択レジスタを通じた接続を合わせて制御する。データおよびアドレスは、メモリコントローラから生じる。
消去ブロックの電気記憶レジスタ(メモリセル)の各行は、共にプログラムされ、かつ読み出されるページを形成してもよい。適切な電圧がそのようなページのワード線(WL)に印加されて、そのデータをプログラムまたは読み出す一方で、残りのワード線に印加される電圧が、各記憶トランジスタを導電状態にするために選択される。記憶トランジスタの1つの列(ページ)をプログラムまたは読み出す過程において、未選択行上の以前に記憶された電荷レベルが、すべての列にわたって印加された電圧とそのワード線に印加された電圧とによって乱される。これにより、特定の行のセルのプログラミングが当該行内の他のセルがプログラムされた後に妨げられる場合がある。複数ステートフラッシュメモリは、特に外乱の影響を受ける。論理状態の数が多くなる結果、個々のステートについてのしきい値電圧の範囲が狭くなり、電荷レベルの小さな変化が、論理状態の変化を生じさせる場合がある。データ記憶密度がセル内の数の増えた論理状態を使用して増加されると、外乱に対する感度が増す。よって、列内のセルにデータをプログラムすることは、当該列内の他のセルがプログラムされた後では、当該プログラムされたセル内のデータを破損せずにはできない場合がある。よって、隣接のセルの後続のプログラミングからの外乱によってページサイズが規定されてもよい。ある行内のセルが同一の行内の他のセルのプログラミング後にプログラムできないような場合には、当該行によってプログラミングの最小単位が規定される。よって、セルの行は、データの1つのページを含んでもよい。そのようなメモリアレイにおいて、ある行のセル群をプログラムする場合に、当該行内のいくつかのセルがデータを含まない場合であっても、当該行はプログラムされたものとみなされる。後でメモリアレイ内にプログラムすることができない空のセルを有することは効率的でない。
プログラムされたページ内の空のセルは、一度にメモリシステムによって受信される少数のセクタから生じてもよい。例えば、単一のセクタは、ホストによってメモリシステムに送られてもよい。セクタは、フラッシュメモリアレイのページ内に記憶される。セクタは、当該ページに対する後続の書き込みを阻止する。これは、ページが複数のセクタを保持するメモリシステムにおいて、効率的でない場合がある。例えば、ページがデータの4つのセクタを含む場合に、単一のセクタがページへ書き込まれる場合には、データの3つのセクタを保持可能なメモリアレイの部分が空になっている。ページサイズが大きくなるにつれて、部分的に一杯なページからの無駄なスペースが増加する。メタページは、数多くのセクタを含んでもよいので、メタブロックを使用するメモリアレイにおいて、特に非効率な記憶となる場合がある。同様の問題は、2つ以上のセクタが受信されるが受信セクタの数がページ内のセクタの数より少ない場合にも生じる。そのような部分的なページは、データの完全なページが受信されるまで、スクラッチパッドブロック内に記憶されてもよい。
データが部分的に一杯のページへ書き込みを行った後で、記憶されたデータの統合を行って、部分的に一杯のページからのデータを一杯のページに結合してもよい。これは、周期的に行われるガーベッジコレクションの一部として行われてもよい。そのようなデータの統合により、部分的に一杯のページから、異なる消去ブロック内にある完全なページへデータが複写される。部分的に一杯のページを保持する消去ブロックは、その後、消去および再利用可能なように、古いものとしてマーク付けがなされる。そのような動作は、他の機能のためにも使用可能なシステムリソースを利用してもよい。
メモリへの単一セクタ書き込みの例
図8は、消去ブロックである、ページがデータの4つのセクタからなるメモリシステム内のメモリアレイの指定アクティブブロック800を示す。ページ0〜5が示され、それぞれは水平方向に延びている。各ページは、セクタ0,セクタ1,セクタ2,およびセクタ3として指定されたデータの4つのセクタを含んでもよい。ホストは、データの単一セクタをメモリシステムに送り、これらのセクタは、アクティブブロック800に記憶される。セクタXが受信されて、ページ0のセクタ0として記憶される。これにより、ページ0の後続のプログラミングが阻害される。よって、ページ0のセクタ1,2,および3はプログラムされず、空のままである(消去される)。ページ0がプログラムされた後に、セクタX+1が受信される。セクタX+1は、ページ1のセクタ0として記憶される。ページ1のセクタ1,2,および3は空のままである。セクタX+1がプログラムされた後に、セクタX+2が受信される。セクタX+2は、ページ2のセクタ0として記憶される。ページ2のセクタ1,2,および3は空のままである。セクタX+2がプログラムされた後に、セクタX+3が受信される。セクタX+3は、ページ3のセクタ0として記憶される。ページ3のセクタ1,2,および3は空のままである。
図9は、指定されたアクティブロック900である消去ブロック内にセクタを記憶するための一代替手法を示す。ここで、ページ毎に1つだけのセクタを記憶する代わりに、以前に記憶されたセクタが同一の消去ブロック内の新しいページへ複写され、これらのセクタは、より最近受信されたセクタと共に記憶される。前述したのと同様に、セクタXが、ページ0のセクタ0として記憶される。その後、セクタX+1が受信され、セクタXがページ0からページ1のセクタ0へ複写された状態で、セクタX+1は、ページ1のセクタ0として記憶される。よって、セクタXおよびセクタX+1は、共にページ1内に記憶される。その後、セクタX+2が受信され、ページ2のセクタ2として記憶される。セクタXは、ページ2のセクタ0として記憶され、セクタX+1は、ページ2のセクタ1として記憶される。よって、セクタX,X+1,およびX+2は、共にページ2に記憶される。その後、セクタX+3が受信され、ページ3のセクタ3として記憶される。セクタXは、ページ3のセクタ0として記憶され、セクタX+1はセクタ1として記憶され、セクタX+2は、セクタ2として記憶される。よって、ページ3が完全にデータで埋まるように、データの4つのセクタが、ページ3内に記憶される。
図8または図9に示されているセクタの記憶に続いて、データは統合されてもよい。図8または図9のいずれかのセクタX,X+1,X+2,およびX+3は、新しい消去ブロックの単一のページへ複写されてもよい。これは、都合がよいときにはガーベッジコレクションの一部として行われてもよい。図10Aは、指定アクティブブロック1000のページ0に記憶されたセクタX,X+1,X+2,およびX+3を示す。消去ブロック1000のページ0は、データで埋まっている。アクティブブロック1100のページ0がセクタX,X+1,X+2,およびX+3でプログラムされる場合には、セクタX,X+1,X+2,およびX+3は、複写元である消去ブロックから消去されてもよい。アクティブブロック800および900は、その内容がガーベッジコレクション中に統合される場合には消去されて、新しいデータを記憶するために利用可能となってもよい。
ページ0のプログラミングの後に、セクタX+4が受信され、アクティブブロック1000のページ1のセクタ0として記憶される。その後、セクタX+5,X+6,およびX+7がそれぞれ受信され、ページ2,3,および4内にそれぞれ記憶される。セクタX+4,X+5,X+6,およびX+7を単一のページに統合するために、セクタの統合が再び必要であってもよい。そのようなセクタの統合には時間がかかり、その間ホストデータは書き込まれなくてもよい。データの他の消去ブロックへの第2の統合の後、複写元の消去ブロック1000は、古いものとしてマーク付けされて、その後に消去されてもよい。
図10Bは、第2のガーベッジコレクション動作が以前のアクティブロック1000からのデータを再配置した後のアクティブブロック1010を示す。セクタX+4からX+7が、アクティブブロック1010の単一のページ(ページ1)に統合される。その後、より多くのセクタが受信され、アクティブブロック1010内に記憶されてもよい。それらのセクタが単一セクタの形態で受信される場合には、単一セクタは、前述したようにあるページ内に記憶されてもよい。
図10Cは、ページ2〜5内に記憶された追加のセクタX+8からX+11を伴うアクティブブロック1010を示す。この時点でセクタX+8からX+11を統合するために、他のガーベッジコレクション動作が必要であってもよい。よって、単一セクタとしてホストから受信されるセクタを効率的に記憶するために、この方法は、データをある消去ブロックから他の消去ブロックに転送して最初の消去ブロックを消去することを要する複数のガーベッジコレクション動作を使用する。より大きな消去ブロックにおいては、ガーベッジコレクション動作の数はより多くなる。メタブロックを使用するメモリシステムにおいては、消去ブロックが共に消去されかつ共にプログラムされるように、消去ブロック群がリンクされてもよい。データは、数多くのセクタを含むメタページ内にプログラムされてもよい。したがって、単一セクタを記憶することは、必要なガーベッジコレクションの量によって、非常に非効率的になる。
図11Aは、データを記憶する代替方法を示す。図11Aは、メモリアレイの2つの消去ブロックを示す。アクティブブロック1110は、データが長期記憶のためにプログラムされるような消去ブロックである。スクラッチパッドブロック1120は、データが短期記憶のためにプログラムされるような消去ブロックである。少ない数のセクタが受信される場合、これらはスクラッチパッドブロック1120内にまず記憶される。セクタは、データのページを一杯にするのに充分なセクタが受信されるまで、スクラッチパッドブロック1120内に継続して記憶される。その後、これらのセクタは、アクティブブロック1110のページへ複写される。
セクタXが受信され、前述したように、スクラッチパッドブロック1120内のページ0のセクタ0としてプログラムされる。その後、セクタX+1が受信され、セクタXがページ1のセクタ0へ複写された状態で、スクラッチパッドブロック1120のページ1のセクタ1として記憶される。その後、セクタX+2が受信され、セクタXおよびX+1がページ2のセクタ0とセクタ1とにそれぞれ記憶された状態で、スクラッチパッドブロック1120のページ2のセクタ2として記憶される。セクタX+2をスクラッチパッドブロック1120内に記憶した後に、セクタX+3が受信される。この時点で、セクタX,X+1,X+2,およびX+3は、アクティブブロック1110のページ0に書き込まれている。これら4つのセクタは、データの完全なページを形成する。よって、セクタX,X+1,X+2,およびX+3は、アクティブブロック1110のページ0内に効率的に記憶される。その後、セクタX+4,X+5,X+6,およびX+7がそれぞれ受信される。セクタX+4,X+5,およびX+6は、スクラッチパッドブロック1120のページ3,4,および5内に記憶され、セクタX+7が受信されると、アクティブブロック1110のページ1のセクタ0,1,および2へ複写される。セクタX+7は、アクティブブロック1110のページ1のセクタ3へ直接プログラムされる。この時点で、スクラッチパッドブロック1120には、データを記憶するための利用可能なページを有しておらず、消去準備ができている(古いもの)として指定されてもよい。新しい消去ブロックを、受信される次のセクタまたはセクタ群用にスクラッチパッドブロックとして指定してもよい。この例は単一セクタが受信される様子を示すが、この方法は、セクタ群が、ページ内のセクタ数より少ない数のセクタを有するようなセクタ群用に使用されてもよい。また、前述した例は、データをスクラッチパッドブロックからアクティブブロックへ最大並列性で書き込むことを示すが、そのような書き込みは、最大未満の並列性で行われてもよく、それでも効率性の利点が提供される。よって、データがより高密度に詰め込まれ、かつガーベッジコレクションの頻度が少なくてすむように、セクタは、ある並列性でスクラッチパッドブロックへ書き込まれ、その後に、より高い並列性で他のブロックへ書き込まれる。
スクラッチパッドブロックは、メタブロックを使用するメモリアレイ内で使用されてもよい。例えば、図11Bは、2つのメタブロックであるアクティブブロック1130およびスクラッチパッドブロック1140を示す。アクティブブロック1130およびスクラッチパッドブロック1140は共に、プレーン0〜3として示される4つのプレーンを有する。各プレーンは、幅が1セクタなので、4つのセクタがブロック1130または1140のメタページ内に記憶される。ブロックは共に、メタページ0〜5として示される6つのメタページを有する。データを効率的に記憶するための手法は、消去ブロックに関する前述したものと同一である。データの完全なメタページが利用可能になるまで、セクタは、スクラッチパッドブロック1140内に蓄積され、その時点で、完全なメタページが、アクティブブロック1130にプログラムされる。例えば、セクタX+3が受信されると、完全なメタページ(セクタX,X+1,X+2,およびX+3)が、アクティブブロック1130のメタページにプログラムされる。メタブロックは数多くのプレーンを有する場合があり、かつプレーンはその幅が数ページである場合があるので、メタページは、数多くのセクタを有する場合がある。そのような大きなメタページにとって、前述した手法は特に価値がある。なぜならば、そうでなければ無駄になってしまうメモリアレイ内のスペース量が大量だからである。図11Aおよび図11Bに関して示されているように、消去ブロック構造を使用する例に関して説明したこの発明の態様を、メタブロック構造に適用してもよいし、その逆であってもよい。「ブロック」という用語は、メモリアレイの構成により、消去ブロックまたはメタブロックのいずれを示してもよい。いずれの場合においても、ブロックは、当該構成において使用される消去単位である。同様に、「ページ」という用語は、単一の消去ブロック内のページまたはメタブロックのメタページのいずれを指してもよい。いずれの場合においても、ページは、当該構成のためのプログラミング単位である。
ページ内のセクタ数より多くを有するセクタ群が受信される場合、セクタは、スクラッチパッドブロック内にまず記憶されることなく、メモリアレイのアクティブブロックへ直接プログラムされてもよい。よって、データの完全なページが、高い並列性でアクティブブロックへ直接プログラムされてもよい一方で、データの部分ページは、完全なページのプログラミングの一部としてアクティブブロックへ書き込まれるようになるまで、低い並列性でスクラッチパッドブロックへプログラムされる。コントローラが、特定のセクタまたはセクタ群の宛先を判断してもよい。セクタ群をアクティブブロックへ書き込むことは、部分ページ書き込みおよび完全ページ書き込みの両方を含むことになり、完全ページは、アクティブブロックへ書き込まれ、部分ページはスクラッチパッドブロックへ書き込まれてもよい。
図12Aは、ホストからのセクタがスクラッチパッドブロック内に記憶されている間に更新される、さらなる例を示す。第1のセクタX0 が受信され、スクラッチパッドブロック1250のページ0に記憶される。この例におけるページは、データの4つのセクタを記憶する。その後、X1 として示されているX0 の代わりが受信される。この例におけるセクタは、その論理アドレスに従って番号付けされ、下付き文字は、セクタが更新バージョンであるかどうか、そしてもしそうであればどのバージョンかを示す。よって、セクタX1 は、論理アドレスがXのセクタであって、このセクタの第1の更新バージョンである。これは、X0 と同じ論理アドレスを有するデータのセクタであるが、何らかの更新された情報を反映している異なるデータを含む場合がある。セクタX1 は、スクラッチパッドブロック1250のページ1へ書き込まれる。コントローラは、どのセクタが現在のものでどれが古いものかを常時監視している。スクラッチパッドブロック1250において、特定の論理アドレスを有するセクタの直近に書き込まれた複写が、現在のバージョンである。他のバージョンはどれも古いものである。よって、X1 がプログラムされると、X0 は古いものとなる。セクタX1 を受信後、セクタ(X+1)0 が受信される。これは、セクタX1 と論理的に連続するセクタである。セクタX1 および(X+1)0 は共に、ページ2へ書き込まれる。その後、セクタ(X+1)0 は(X+1)1 に置き換わる。これは、セクタ(X+1)0 を置き換える(X+1)0 の更新バージョンである。セクタ(X+1)1 は、セクタX1 と共にページ3へ書き込まれる。その後、セクタ(X+2)0 が受信され、ページ4へ書き込まれる。(X+2)0 は、その後セクタ(X+2)1 に置き換わり、セクタX1 および(X+1)1 と共にページ5へ書き込まれる。その後、セクタ(X+3)0 が受信される。よって、データのページ(セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)0 )が利用可能である。セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)0 は、アクティブブロック1252として指定されたブロックへ書き込まれる。セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)0 は、完全ページ書き込みの並列性で、アクティブブロック1252へ書き込まれる。これは、この場合の予想最大並列性である。よって、セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)0 が低い並列性でスクラッチパッドブロック1250へ書き込まれた場合であっても、後で高い並列性でアクティブブロック1252へ書き込まれる。これは、セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)0 がアクティブブロック内により効率的に記憶されることを意味する。より効率的な記憶により、必要なガーベッジコレクションの頻度が減り、これによって性能が向上する。
一代替例が図12Bに与えられている。この例は、図12Aに示すものと類似しているが、ここでは、セクタ(X+3)0 が、アクティブブロック1252へ複写される前に、スクラッチパッドブロック1250内に記憶されている。これにより、セクタ(X+3)0 をアクティブブロック1252へ書き込む前に更新することができる。図に示されているセクタ(X+3)0 は、セクタ(X+3)1 で置き換えることによって更新されている。データの完全ページ(セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)1 )は、スクラッチパッドブロック1250に保持されてもよく、何らかのトリガイベントがあるまでは更新準備完了となっている。この場合、セクタ(X+4)0 が受信されて、トリガイベントが提供される。セクタX1 ,(X+1)1 ,(X+2)1 ,および(X+3)1 は、この時点で、最大並列性でアクティブブロック1252へ書き込まれる。セクタ(X+4)0 は、スクラッチパッドブロック1250内の次に利用可能なページ(ページ8)へ書き込まれる。
図12Cは、スクラッチパッドブロック1250を使用してデータを更新する他の例を示す。データX0 から(X+15)0 のセクタが、元ブロック1254に記憶されている。ホストが、論理アドレスがセクタ(X+6)0 と同一の更新されたセクタであるセクタ(X+6)1 を送る。よって、セクタ(X+6)1 は、(X+6)0 を置き換えるものである。セクタ(X+6)0 を置き換えるためには、元ブロック1254のページ1(セクタ(X+4)0 から(X+7)0 を含む)がセクタ(X+6)1 と結合され、この結合が、スクラッチパッドブロック1250のページ0へ書き込まれる。これらのセクタを結合することは、コントローラRAM25などのランダムアクセスメモリにおいて生じてもよく、メモリアレイに接続されているメモリレジスタ内で行われてもよい。更新されたページデータは、しばらくの間、アクティブブロックへ書き込むことなく、スクラッチパッドブロック1250内に保持されてもよい。後続の更新されたセクタ(X+5)1 がホストから受信されると、セクタ(X+5)1 が複写されたセクタ(X+4)0 ,(X+6)1 ,および(X+7)0 と共にスクラッチパッドブロック1250の他のページ(この場合、ページ1)へ書き込まれることによって、データは、スクラッチパッドブロック1250において更新されてもよい。スクラッチパッドブロック1250内のデータのページの複数の更新がこのように行われてもよい。更新は、更新されたデータのセクタまたは複数のデータのセクタを置き換えて、スクラッチパッドブロック1250の新しいページにデータの変更されなかったセクタを複写することによって行われる。複写されたセクタは、効率的に複写を行うことができるように、同一プレーン内で複写される。その後、データの更新されたページは、メモリアレイ内のアクティブブロック1252へ複写されてもよい。無秩序な更新ブロックを要せずに、不連続の更新がこのように行われてもよい。例えば、前述した例において、更新されたセクタ(X+6)1 および(X+5)1 が不連続で受信されているが、アクティブブロック1252は連続的である。データの複数のページがこのようにスクラッチパッドブロック内で同時に保持および更新されてもよい。ページがもはや更新されることが予想されない場合には、ページは、アクティブブロックへ複写されてもよい。
マルチレベルセルのプログラミング例
ある種のメモリは、フローティングゲートメモリセルのしきい値電圧範囲を2つのレベルより多くに分割することによって、メモリアレイの各セル内に1ビットより多くのデータを記憶してもよい。図13は、そのようなマルチレベルセル(MLC)メモリを、互いに異なる論理状態を示す複数のしきい値電圧を提供するようにプログラムするやり方の例を示す。4つの互いに異なるしきい値電圧が、A,B,C,およびDで示されている。複数のセルは、各電圧へプログラムされる。図13は、縦軸上に表されたセル数と共に、セル状態の分布を表している。各しきい値電圧A,B,C,およびDは、異なる論理状態を表す。4つの状態は、2ビットのデータを表し、図に示されているように、1ビットは下位ページのデータを、1ビットは上位ページのデータを表す。ある例においては、下位ページが最初にプログラムされてもよい。下位ページのプログラミングの後で、セルは状態AまたはBとなる。その後、セルが状態AまたはB(上位ビット=1なので)のいずれかのままであるように、または状態CまたはD(上位ビット=0なので)に修正されるように、上位ページがプログラムされてもよい。これらの4つの状態は、それぞれ比較的狭い電圧ウィンドウを有するので、MLCメモリは、しきい値電圧の比較的小さな変化によるデータの破損を特に受けやすい。ある場合には、下位および上位ページの両方を同時にプログラムするのが有利なこともある。これにより、上位ページデータのプログラミング中に生じるであろう破損といった、隣接のセルのプログラミングによって生じたセル内のデータの破損を減少させる助けとなりうる。
図14は、スクラッチパッドブロック1460がMLCメモリ内のデータの破損を減少させるためにどのように使用されうるかの一例を示す。図14は、アクティブブロック1462およびスクラッチパッドブロック1460の両方をMLCメモリのブロックとして示す。両方のブロックは、番号付けがなされ、どのしきい値電圧状態がページのデータのビットを記憶するために使用されるかによって、「上位」または「下位」のいずれかとして示されている。この例において、メモリは、セクタXからX+3をまず受信して、スクラッチパッドブロック1460の下位ページ0内にこれらのセクタを記憶する。その後、メモリはセクタX+4からX+7を受信する。このとき、下位ページ(セクタXからX+3)および上位ページ(セクタX+4からX+7)は、同時にアクティブブロック1462へ書き込まれる。これにより、アクティブブロック1462の上位ページ0のプログラミング中にアクティブブロック1462の下位ページ0が破損することを防止することができうる。一般的には、このシステムが時間的な不利益がないように、上位および下位ページを共にプログラムするのに必要な時間は、上位ページだけをプログラムするのに必要な時間と同一である。セクタXからX+7でのアクティブブロック1462の下位ページ0および上位ページ0のプログラミングの後、セクタX+8からX+11が受信され、スクラッチパッドブロック1460の上位ページ0へプログラムされる。セクタX+12からX+15が受信されると、セクタX+8からX+11およびセクタX+12からX+15は、アクティブブロックの上位ページ1および下位ページ1へ並列的にプログラムされる。このシステムは、図に示されているように、データの後続セクタに対して継続する。よって、データのページは、スクラッチパッドブロック1460へ書き込まれて、その後、このページは、メモリセルの同一群の上位および下位ページとして、追加のページと共にアクティブブロック1462へ書き込まれる。スクラッチパッドブロック1460へのプログラミングは、ページの並列性で生じる一方で、アクティブブロック1462へのプログラミングは、ページの並列性の2倍で生じる。
一つの代替の実施形態において、上位および下位ページがアクティブブロックへ互いに異なるときに書き込まれてもよいが、アクティブブロック内の下位ページが上位ページのプログラミング中に破損した場合には、下位ページの複写は、スクラッチパッドブロックに保持される。図14において、セクタXからX+3が受信されて、アクティブブロック1462の下位ページ0と、スクラッチパッドブロック1460の下位ページ0との両方へ同時にプログラムされてもよい。その後、セクタX+4からX+7が受信されて、アクティブブロック1462の上位ページ0へプログラムされる。セクタX+4からX+7は、スクラッチパッドブロック1460内にセーブされない。セクタX+4からX+7のアクティブブロック1462の上位ページ0へのプログラミング中に何らかの問題(電力消失など)がある場合には、アクティブブロック1462の下位ページ0内のデータも破損している可能性がある。すなわち、プログラミング中のセルのしきい値電圧が、もはや下位ページのデータを表す状態でないはないが、上位ページのデータを表す状態になるまでは完全にプログラムされていないといったように修正されている可能性がある。例えば、図13における状態Aから状態Dへプログラムされているセルは、プログラミングが停止したときには状態BまたはCである可能性がある。データがこのように破損されると、書き込み中のデータの上位ページは、複写元の位置から回復されてもよい。しかし、多くの場合、下位ページの他の複写は存在しない。ここで、下位ページの複写は、上位ページのプログラミングが完了するまで、スクラッチパッドブロック1460内に保持されている。よって、下位ページの未破損の複写が存在し、下位ページのデータを回復するために使用されてもよい。
複数ファイルの例
1つ以上のホストデータファイルからのデータが、単一ブロックに記憶されてもよい。ページの一部があるファイルからのデータを含み、ページの一部が他のファイルからのデータを含むように、ページ内でファイル間の区切りが生じる場合がある。図15は、元ブロック1570のページ0からページi−1が第1のファイル(ファイル1)からのデータを含み、ページi+1からページn−1が第2のファイル(ファイル2)からのデータを含む例を示す。ページiは、ファイル1からのセクタ(i*4)および(i*4)+1と、ファイル2からのセクタ(i*4)+2および(i*4)+3とを含む。2つのファイルからのセクタがあることを示すために、ファイル2のセクタは、網掛け表示されている。
図15は、ファイル2が新しいブロック1572に更新される様子を示す。新しいブロック1572の第1のページ(ページ0)は、元ブロック1570のページiの内容で書き込まれる。よって、新しいブロック1572のページ0は、ファイル2およびファイル1の両方からのセクタを含む。ファイル1からのセクタ(i*4)および(i*4)+1は、この時点では更新されないが、データの完全ページをプログラムするために複写されてもよい。更新されたファイル2の残りは、新しいブロック1572のページ1からi−1へプログラムされる。その後、ファイル1が更新される。セクタ0からセクタ(i*4)−1は、ページiからページn−1内に記憶される。しかし、セクタ(i*4)および(i*4)+1は、ファイル1の一部でもあり、更新されなければならない。新しいブロック1572はこの時点で一杯なので、更新されたセクタ(i*4)および(i*4)+1は、他のブロックへプログラムされる。その後、セクタ(i*4)および(i*4)+1ならびに新しいブロック1572内のセクタは、ガーベッジコレクション動作の一部として、単一ブロックに統合されてもよい。しかし、これには時間とシステム資源がかかり、一般的には望ましくない。
図16は、2つの互いに異なるファイルからのセクタを含む図15の元ブロック1570のセクタを更新するための一代替手法を示す。この手法は、スクラッチパッドブロック1674を使用して、更新されたセクタを、完全に更新されたページの一部としてシステムの最大並列性で書き込まれてもよいようなときまで記憶する。ファイル2が更新されると、更新されたセクタ(i*4)+2および(i*4)+3は、スクラッチパッドブロック1674へ書き込まれる。ここで、これらのセクタは、スクラッチパッドブロック1674のページ0へ書き込まれ、低い並列性が使用される残りのページへはデータは書き込まれない。ファイル2の残りのセクタ(セクタ(i*4)+4からN−1)は、新しいブロック1676のページ0からn−iへ複写される。これらのセクタは、最大並列性を使用する完全ページ書き込みですべて書き込まれる。その後、ファイル1が更新される。セクタ0から(i*4)−1は、ページn−i+1からn−2へ最大並列性でプログラムされる。その後、ファイル1のセクタ(i*4)および(i*4)+1は、セクタ(i*4)+2および(i*4)+3を新しいブロック1676のページn−1へ複写するのと並列に書き込まれる。よって、元ブロック1570内に以前保持されていたすべてのセクタの更新された複写は、現在、新しいブロック1676内に保持され、新しいブロック1676には古いデータは保持されていない。一般的に、新しいブロック1676などのブロックに対してガーベッジコレクションを行う必要はない。新しいブロック1676の各ページは、最大並列性でプログラムされて、ブロック内のデータの最大密度を達成する。スクラッチパッドブロック1674内のセクタ(i*4)+2および(i*4)+3は、この時点で古いものとしてマーク付けされてもよい。しかし、スクラッチパッドブロック1674は、ガーベッジコレクション処理を必要とせずにさらなる処理のために使用されてもよい。なぜならば、スクラッチパッドブロックは、定期的に現在および古いデータを両方含むからである。
データの不連続セクタの記憶の例
以前の例の中には、完全ページを書き込むよりも低い並列性でデータのセクタをスクラッチパッドブロックへ書き込むものがあった。そのような例において、書き込み中のスクラッチパッドブロックのページ内の残りのスペースは、空のままである場合がある。なぜならば、既に記憶されたデータを妨害せずに後にプログラムすることができないからである。ある場合には、このようなともすれば空のスペースと、ともすれば未使用のプログラミング帯域幅を使用して、同一ページ内に関連性のないデータを記憶することができる。例えば、メモリシステムが単一セクタまたはページより小さいセクタ群内のホストデータを受信する場合、ホストデータのこれらのセクタを、関連性のないホストデータなどの関連性のないデータまたは制御データのセクタも保持するページ内のスクラッチパッドブロック内に記憶してもよい。同様に、完全ページの一部として後に記憶されるスクラッチパッドブロック内に記憶中のファイルの最初からのセクタが、論理的に関連性のない、同一のスクラッチパッドブロックのページに記憶された追加のセクタを有していてもよい。
図17は、以前の例のように、セクタX,X+1,およびX+2がスクラッチパッドブロック1780内に記憶される場合の一例を示す。しかし、ここで、セクタX,X+1,およびX+2を保持するスクラッチパッドブロックのページ内の残りのスペースを、他のデータを記憶するために使用する。セクタY,Y+1,およびY+2が、ページ0内にセクタXと共に記憶される。セクタY,Y+1,およびY+2は、セクタX,X+1,およびX+2と論理的に関連性がなくてもよい。これらのセクタは、他のホストデータファイルからのものであってもよく、または同一ファイル内のセクタの他のクラスタからのものであってもよい。セクタY,Y+1,およびY+2は、セクタX,X+1,およびX+2と連続していなくてもよく、論理アドレススペース内で分離されていてもよい。同様に、セクタZおよびZ+1が、セクタXおよびX+1と共にページ1内に記憶される。セクタZおよびZ+1は、セクタX,X+1,およびX+2ならびにセクタY,Y+1,およびY+2の両方に論理的に関連性がなくてもよい。その後、X+3が受信されると、セクタX,X+1,X+2,およびX+3は、他のブロックのページへ書き込まれる。その後、Y+3が受信されると、セクタY,Y+1,Y+2,およびY+3は、他のブロックのページへ書き込まれる。よって、利用可能なリソースをより効率的に使用するために、関連性のないデータは、スクラッチパッドブロックの同一ページ内に記憶されてもよい。
図18は、スクラッチパッドブロック1890内に記憶された関連性のないデータの他の例を示す。ここで、セクタX,X+1,およびX+2は、前述したように記憶され更新される。しかし、ここで、セクタYも並列的に記憶され更新される。更新されたセクタは、どのバージョンが記憶されているかを示す下付き文字によって表される。例えば、セクタX0 は、セクタXの元のバージョンである一方で、X1 は、セクタXの第1の更新バージョンである。セクタYは、頻繁に更新されるホストデータのセクタあるいは制御データのセクタであってもよい。あるシステムにおいて、FAT情報などの制御データは、ホストデータが記憶される際に更新される。少量のホストデータが受信される場合、スクラッチパッドブロック1890内の制御データを更新するのは利点である。これにより、制御データの単一セクタのみが更新される制御構造を更新することを避けるようにしてもよい。後の時点で、スクラッチパッドブロックからの制御データを使用して、制御データ構造を更新してもよい。
スクラッチパッドブロック管理
スクラッチパッドブロックは、メモリアレイ内の指定されたブロックであってもよい。固定物理位置が、スクラッチパッドブロックとして選ばれてもよい。しかし、これは、メモリアレイを不均一に消耗させる結果となる場合がある。代替例として、スクラッチパッドブロックが古いデータで一杯になると他の消去ブロックがスクラッチパッドブロックとして選ばれるように、指定されたブロックは時々変更されてもよい。この場合において、メモリコントローラによって使用されるデータ構造により、スクラッチパッドブロックの位置が識別されてもよく、またはコントローラがメモリアレイの消去ブロックを走査した場合にどの消去ブロックがスクラッチパッドブロックであるかを判断するように、指定されたスクラッチパッドブロックがマーク付けされてもよい。スクラッチパッドブロックは、セクタを使用してマーク付けされて、それがスクラッチパッドブロックであると識別されるようにしてもよい。例えば、図19は、スクラッチパッドブロック2100の第1のセクタとしてのマーク付けセクタ2110を示す。カードに電源が投入されると、メモリアレイの消去ブロック(またはメモリアレイの一部分)が走査されて、1つのスクラッチパッドブロックまたは複数のスクラッチパッドブロックの位置を判断してもよい。図19の例において、各消去ブロックの第1のセクタが読み出されて、スクラッチパッドブロックを示すマーク付けセクタかどうかが判断される。
データは、データ群としてスクラッチパッドブロックへ書き込まれてもよい。データ群は、ホストから受信されたセクタの論理的に連続した群である。データ群がスクラッチパッドブロック内に記憶される場合、記憶されたデータ群についての情報を提供するインデックスセクタも書き込まれる。データ群のセクタの位置が、インデックスセクタ内に記憶されてもよい。複数のデータ群を記憶するために、図19のスクラッチパッドブロック2100などのスクラッチパッドブロックを使用してもよい。図20は、1つのデータ群を記憶するスクラッチパッドブロック2100を示す。データ群1は、2つのセクタ2220および2221からなる。これらのセクタと、マーク付けセクタ2110と、インデックスセクタ2230とが、スクラッチパッド2100に記憶される。インデックスセクタ2230は、群1についての情報を記憶する。
図21は、2つのセクタ2340および2341からなるデータ群2がプログラムされた後の、図20のスクラッチパッドブロック2100を示す。インデックスセクタ2350は、群1および群2についての情報を記憶する新しいインデックスセクタである。よって、インデックスセクタ2230は、古いものである。なぜならば、インデックスセクタ2350は、群1を含むスクラッチパッドブロック2100のデータ群の完全な記録を含むからである。
図22は、3つのセクタ2460,2461,および2462からなるデータ群3のプログラミング後の、図21のスクラッチパッドブロック2100を示す。インデックスセクタ2470は、群1,2,および3についての情報を記憶する新しいインデックスセクタである。よって、インデックスセクタ2470は、スクラッチパッドブロック2100のデータの完全な記録を含むので、インデックスセクタ2350は古いものとなる。
図23は、データ群1およびデータ群2がスクラッチパッドブロック2100から読み出されて、メモリアレイの他のブロック内の単一のページとして書き込まれた後の、図22のスクラッチパッドブロック2100を示す。インデックスセクタ2560は、データ群3についての情報を記憶する。スクラッチパッド2100内のデータ群1およびデータ群2は、古いものであり、別のところに記憶されているので、インデックス付けは必要ない。よって、インデックスセクタ2560は、スクラッチパッドブロック2100内にすべての現在のデータの完全な記録を含む。
ホストがメモリアレイに対してデータのあるセクタまたは複数のセクタを要求する場合、コントローラは、要求されたセクタがスクラッチパッドブロック内にあるかどうかをまずチェックしてもよい。セクタがスクラッチパッドブロック内にない場合には、セクタは、通常のやり方で探索されてもよい。よって、スクラッチパッドは、メモリアレイ内のデータのセクタの位置を常時監視するために使用される通常のメディア管理に変更することを要求しない。
本発明を様々な実施形態に関連して説明してきたが、本発明は、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
ホストシステムと共に動作する不揮発性メモリのブロック図である。 不揮発性メモリと共に動作するホストシステムのブロック図である。 図1Aのメモリアレイの第1の編成例を示す。 図1Aのメモリアレイに記憶されるようなオーバーヘッドデータを有するホストデータセクタの例を示す。 図1Aのメモリアレイの第2の編成例を示す。 図1Aのメモリアレイの第3の編成例を示す。 図1Aのメモリアレイの第3の編成例を拡張したものを示す。 ある特定の構成において、図1Aのアレイのメモリセル群の回路図である。 図1Aのメモリアレイなどのメモリアレイのブロック内に、データのセクタを記憶する様子を示す。 図1Aのメモリアレイなどメモリアレイのブロック内に、データのセクタを記憶する他の様子を示す。 ガーベッジコレクション動作中に、他のブロックへ複写した後の、図8または図9のデータのセクタを示す。 第2のガーベッジコレクション動作中に、他のブロックへ複写した後の、図10Aのデータのセクタを示す。 さらにデータのセクタを受信した後の図10Bのブロックを示す。 2つの消去ブロックであるアクティブブロックとスクラッチパッドブロックとを使用して図10Aおよび図10Bのデータのセクタを記憶する、他の記憶構成を示す。 2つのメタブロックであるアクティブブロックとスクラッチパッドブロックとを使用して図10Aおよび図10Bのデータのセクタを記憶する、他の記憶構成を示す。 ガーベッジコレクション動作をトリガせずにデータのセクタを記憶中に更新してもよいように、データのセクタを記憶するために使用される2つのブロックであるアクティブブロックとスクラッチパッドブロックとを示す。 ガーベッジコレクションをトリガせずにページのすべてのセクタを記憶中に更新することができる、図12Aの他の記憶システムを示す。 マルチレベルセル内に2ビットのデータを記憶するために使用される4つのしきい値電圧の範囲を示す。 スクラッチパッドブロックが、アクティブブロックの下位ページの複写を保持する、マルチレベルセルの2つのブロックと、アクティブブロックと、スクラッチパッドブロックとを示す。 あるブロックに記憶された2つのファイルからのデータのセクタと、その後に、当該2つのファイルがメモリアレイ内に1ブロック以上のスペースを必要として更新される場合の、当該データのセクタを記憶する様子とを示す。 アクティブブロックへ複写される前のいくつかのセクタをスクラッチパッドブロックが記憶する場合の、図15のデータのセクタの更新の他のシステムを示す。 同一ページ内に関連性のないデータのセクタを記憶するスクラッチパッドブロックと、その後に、このデータを互いに異なる場所へ複写する様子とを示す。 複数の更新を受けている関連性のないデータのセクタを記憶するスクラッチパッドブロックを示す。 マーク付けセクタによって識別されるスクラッチパッドブロックを示す。 セクタ群と、インデックスセクタとを記憶する図19のスクラッチパッドブロックを示す。 第2のセクタ群と、第1のインデックスセクタに取って代わる第2のインデックスセクタとを記憶する、図20のスクラッチパッドブロックを示す。 第3のセクタ群と、第2のインデックスセクタに取って代わる第3のインデックスセクタとを記憶する、図21のスクラッチパッドブロックを示す。 群が他のブロックに複写される場合の第3のインデックスセクタに取って代わる第4のインデックスセクタを有する図22のスクラッチパッドブロックを示す。

Claims (21)

  1. 去最小単位であるブロックとプログラミング最小単位であるページとを有する不揮発性メモリアレイ内に、アドレス指定可能なセクタを記憶する方法であって、ページは、1つ以上のアドレス指定可能なセクタを含むとともにブロックよりも小さいデータを含む方法において、
    第1のブロックにページよりも小さいデータを並列的にプログラムし、第1の複数のアドレス可能なセクタを第1のブロックの同一ページに格納するように、第1の並列性で第1の複数のアドレス可能なセクタを第一のブロック内に書き込むステップと、
    その後、第2のブロックの完全なページを並列的にプログラムするように、第1の並列性よりも高い第2の並列性を有する書き込み動作で書き込まれる第1の複数のアドレス指定可能なセクタ第2のブロックへ複写するステップと
    その後、追加のアドレス指定可能なセクタを、第1の複数のアドレス指定可能なセクタを含む第1のブロックへ書き込むステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    第1の複数のアドレス指定可能なセクタは、第1のファイルの部分を形成し、第1の複数のアドレス指定可能なセクタを複写する動作は、第1のファイルの部分と第2のファイルの部分とが第2のブロックのデータの完全なページにプログラムされるように、第2のファイルの部分を形成する第2の複数のアドレス指定可能なセクタのプログラミングと並列的に行われる方法。
  3. 請求項1記載の方法において、
    第2のブロックは、複数のマルチレベルセルを含み、第1の複数のアドレス指定可能なセクタは、第1のブロック内に第1のページを形成し、かつ第1のページと第2のページとが複数のマルチレベルセルのプログラミングの上位ページおよび下位ページを形成するように、データの第2のページを第2のブロックへ書き込むのと並列して第1のブロックから第2のブロックへ複写される方法。
  4. 請求項1記載の方法において、
    第1の複数のアドレス指定可能なセクタおよび第2の複数のアドレス指定可能なセクタは、第1のブロックから第2のブロックへ並列的に書き込まれて、第2の並列性を実現する方法。
  5. 去単位であるブロックを有する不揮発性メモリアレイ内にあって、複数ビットのデータに対応する2つ以上のプログラムされた状態候補を有するマルチレベルセルへ、複数のアドレス指定可能なセクタを書き込む方法であって
    第1のアドレス指定可能なセクタと第2のアドレス指定可能なセクタとをホストから受信するステップと、
    第1のアドレス指定可能なセクタを、第1のブロックと、第2のブロックの複数のマルチレベルセルとの両方にプログラムするステップと
    2のアドレス指定可能なセクタ第1のブロックにプログラムすることなく、第1のアドレス指定可能なセクタが第1のブロック内に保持されている間に、第2のブロックの複数のマルチレベルセルを第2のセクタのビットに従ってプログラムするステップと、
    その後、第2のブロックの複数のマルチレベルセルが第2のセクタのビットを反映する状態へ完全にプログラムされたことをベリファイした後にのみ、第1のブロック内の第1のアドレス指定可能なセクタを古いものとしてマーク付けするステップと、
    を含む方法。
  6. 請求項記載の方法において、
    第2のブロックの複数のマルチレベルセルを第2のセクタのビットに従ってプログラムするステップを、セルが第2のセクタのビットを反映する状態には達していないが、セルが第1のセクタのビットを反映する状態から修正されたという中間段階において終了し、その後、第1のブロックから第1のセクタのビットを回復する方法。
  7. 請求項記載の方法において、
    第1のアドレス指定可能なセクタは、最初に第1のブロックへプログラムされ、その後、第1および第2のアドレス指定可能なセクタは、第2のアドレス指定可能なセクタが受信された2回目に、第2のブロックへプログラムされる方法。
  8. 請求項記載の方法において、
    第1のブロック内のすべてのデータが古いものであるとマーク付けされる場合に、第1のブロックを消去するステップをさらに含む方法。
  9. 去最小単位であるブロックとプログラミング最小単位であるページとを有する不揮発性メモリアレイ内に、論理的に不連続なアドレス指定可能なセクタを記憶する方法であって
    第1の少なくとも1つのアドレス指定可能なセクタを第1のブロックの第1のページ内に記憶するステップと、
    第1の少なくとも1つのアドレス指定可能なセクタと論理的に連続していない第2の少なくとも1つのアドレス指定可能なセクタを、第1の少なくとも1つのアドレス指定可能なセクタと並列して、第1のブロックの第1のページ内に記憶するステップと、
    その後、第1の少なくとも1つのアドレス指定可能なセクタを第2のブロックへ複写し、第2の少なくとも1つのアドレス指定可能なセクタを第3のブロックへ複写するステップと、
    その後、第1のブロックが、第1の少なくとも1つのアドレス指定可能なセクタと第2の少なくとも1つのアドレス指定可能なセクタとを保持しながら、第3の少なくとも1つのアドレス指定可能なセクタを第1のブロック内に記憶するステップと、
    を含む方法。
  10. 請求項記載の方法において、
    第1の少なくとも1つのアドレス指定可能なセクタは、ホストデータを含み、第2の少なくとも1つのアドレス指定可能なセクタは、制御データを含む方法。
  11. 請求項記載の方法において、
    第1の少なくとも1つのアドレス指定可能なセクタは、第1のファイルのホストデータの複数の論理的に連続するアドレス指定可能なセクタを含み、第2の少なくとも1つのアドレス指定可能なセクタは、第2のファイルのホストデータの複数の論理的に連続するアドレス指定可能なセクタを含む方法。
  12. 請求項記載の方法において、
    第3の少なくとも1つのアドレス指定可能なセクタは、第1のブロックの第2のページ内に記憶され、かつ第1および第2の少なくとも1つのアドレス指定可能なセクタとは論理的に連続していない方法。
  13. 請求項12記載の方法において、
    第1の少なくとも1つのアドレス指定可能なセクタは、第1のファイルからのデータを含み、第2の少なくとも1つのアドレス指定可能なセクタは、第2のファイルからのデータを含み、第3の少なくとも1つのアドレス指定可能なセクタは、第3のファイルからのデータを含む方法。
  14. 去最小単位である消去ブロック内に配列されたメモリセルを有する不揮発性メモリアレイ内にデータを記憶する方法であって、消去ブロック群がリンクされてメタブロックを形成し、メタページは、メタブロックのプログラミング単位である方法において、
    第1のデータのセクタを第1のメタブロックの第1のメタページ内に記憶するステップと、
    少なくとも1つの第2のセクタを第1のメタブロックの少なくとも1つの第2のメタページ内に記憶するステップと、
    第1のデータのセクタと、少なくとも1つの第2のデータのセクタと、第3のデータのセクタとを、第3のデータのセクタが受信されたときに、共に第2のメタブロックのメタページへ書き込むステップと、
    その後、第1のデータのセクタと少なくとも1つの第2のデータのセクタとを第1のメタブロックから消去せずに、第4のデータのセクタを第1のメタブロック内に記憶するステップと、
    を含む方法。
  15. 請求項14記載の方法において、
    第1のデータのセクタと、少なくとも1つの第2のデータのセクタと、第3のデータのセクタとが結合されて、データの完全メタページを形成する方法。
  16. 請求項14記載の方法において、
    第1のデータのセクタを書き込んだ後に、少なくとも1つの第2のデータのセクタと第3のデータのセクタとは、共に第2のメタブロックのメタページへ書き込まれ、第1のメタブロックは、直ちには古いものとしてマーク付けされない方法。
  17. 請求項14記載の方法において、
    第1のデータのセクタは、第1のメタページから少なくとも1つの第2のメタページへ複写される方法。
  18. 請求項14記載の方法において、
    少なくとも1つの第2のデータのセクタは、第2のデータのセクタと、追加のデータのセクタとからなり、第1および第2のデータのセクタは、第1のメタブロックの第2のメタページ内に記憶され、第1および第2のデータのセクタならびに追加のデータのセクタが、第1のメタブロックの第3のメタページ内に記憶される方法。
  19. 請求項14記載の方法において、
    第1のデータのセクタと、少なくとも1つの第2のデータのセクタと、第3のデータのセクタとは、第2のメタブロックのメタページを形成する方法。
  20. 去最小単位である消去ブロック内に配列されたメモリセルを有する不揮発性メモリアレイ内にデータを記憶する方法であって、ページは、消去ブロックのプログラミングの最小単位である方法において、
    第1のデータのセクタを第1の消去ブロックの第1のページ内に記憶するステップと、
    少なくとも1つの追加のデータのセクタと第1のデータのセクタとを第1の消去ブロックの少なくとも1つの追加のページ内に記憶するステップと、
    第1のデータのセクタと、少なくとも1つの追加のデータのセクタと、最終のデータのセクタとを、最終のデータのセクタ受信したときに、第2の消去ブロックのページへ書き込むステップと、
    その後、第1のデータのセクタと少なくとも1つの追加のデータのセクタとを第1の消去ブロックから消去せずに、第2のデータのセクタを第1の消去ブロック内に記憶するステップと、
    を含む方法。
  21. 請求項20記載の方法において、
    第1のデータのセクタと、少なくとも1つの追加のデータのセクタと、最終のデータのセクタとは、第2の消去ブロックのページを共に完全に埋める方法。
JP2007546731A 2004-12-16 2005-12-01 スクラッチパッドブロック Active JP4787266B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/016,285 2004-12-16
US11/016,285 US7315916B2 (en) 2004-12-16 2004-12-16 Scratch pad block
PCT/US2005/043811 WO2006065566A1 (en) 2004-12-16 2005-12-01 Scratch pad block

Publications (2)

Publication Number Publication Date
JP2008524705A JP2008524705A (ja) 2008-07-10
JP4787266B2 true JP4787266B2 (ja) 2011-10-05

Family

ID=36190514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007546731A Active JP4787266B2 (ja) 2004-12-16 2005-12-01 スクラッチパッドブロック

Country Status (7)

Country Link
US (1) US7315916B2 (ja)
EP (1) EP1828906B1 (ja)
JP (1) JP4787266B2 (ja)
KR (1) KR100914263B1 (ja)
CN (4) CN101095121B (ja)
TW (1) TWI393140B (ja)
WO (1) WO2006065566A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189389B2 (en) 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP4418439B2 (ja) * 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7366017B2 (en) * 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US8316206B2 (en) * 2007-02-12 2012-11-20 Marvell World Trade Ltd. Pilot placement for non-volatile memory
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
KR20090024971A (ko) * 2007-09-05 2009-03-10 삼성전자주식회사 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
CN101364444B (zh) 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
US8724381B2 (en) 2008-03-11 2014-05-13 Agere Systems Llc Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8085588B2 (en) * 2009-04-30 2011-12-27 Spansion Llc Semiconductor device and control method thereof
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8656110B2 (en) * 2009-08-21 2014-02-18 Panasonic Corporation Non-volatile storage device, access device, and non-volatile storage system for releasing a cache object in accordance with a data matching flag
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
JP4956593B2 (ja) 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
JP5480913B2 (ja) 2009-12-03 2014-04-23 株式会社日立製作所 記憶装置、およびメモリコントローラ
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
JP5330549B2 (ja) * 2010-02-02 2013-10-30 株式会社東芝 ストレージ機能を持つ通信装置
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8345482B2 (en) * 2010-12-15 2013-01-01 Micron Technology, Inc. Methods for segmented programming and memory devices
TWI479505B (zh) * 2010-12-16 2015-04-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
CN103092771A (zh) * 2011-10-31 2013-05-08 建兴电子科技股份有限公司 固态储存装置及其高速缓存的控制方法
TWI470575B (zh) * 2011-11-24 2015-01-21 Mediatek Inc 用於緩衝裝置之讀取指標暫存的方法、緩衝控制器以及緩衝裝置
CN103138875B (zh) * 2011-11-28 2015-06-10 澜起科技(上海)有限公司 高速广播信道的校准方法
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
DE102012201978A1 (de) * 2012-02-10 2013-08-14 Robert Bosch Gmbh Verfahren zum Auslesen einer Lichtsensorsteuereinrichtung sowie Vorrichtung zum Auslesen einer Lichtsensorsteuereinrichtung
CN103258570B (zh) * 2012-02-15 2016-05-11 旺宏电子股份有限公司 一种记忆装置及产生程序化偏压脉冲的方法和集成电路
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
JP2013229086A (ja) * 2012-04-27 2013-11-07 Sony Corp メモリ装置、メモリ制御装置、メモリ制御方法
KR101620772B1 (ko) 2012-04-27 2016-05-12 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 멀티-레벨 셀을 사용하는 로컬 체크포인팅
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9053003B2 (en) * 2012-06-21 2015-06-09 Microsoft Technology Licensing, Llc Memory compaction mechanism for main memory databases
CN102831072B (zh) * 2012-08-10 2016-03-02 深圳市江波龙电子有限公司 闪存设备及其管理方法、数据读写方法及读写装置
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9384839B2 (en) 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US20150006784A1 (en) 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
CN104423888B (zh) * 2013-08-23 2017-10-03 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
CN104731710B (zh) * 2013-12-18 2018-06-29 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器储存装置
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US8947817B1 (en) 2014-04-28 2015-02-03 Seagate Technology Llc Storage system with media scratch pad
US9443553B2 (en) 2014-04-28 2016-09-13 Seagate Technology Llc Storage system with multiple media scratch pads
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
US9665296B2 (en) 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
JP6412820B2 (ja) * 2015-03-31 2018-10-24 株式会社メガチップス 記憶システム、制御装置、メモリ制御装置、記憶装置、上位装置、制御プログラム及びデータ読み出し方法
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
CN105159601B (zh) * 2015-08-07 2018-12-07 杭州海兴电力科技股份有限公司 一种提高Flash擦写寿命的方法
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
KR102441284B1 (ko) * 2016-01-12 2022-09-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
EP3504728A4 (en) * 2016-08-26 2020-09-09 Sunrise Memory Corporation CAPACITIVE-COUPLING NON-VOLATILE THIN-LAYER TRANSISTOR CHAIN IN THREE-DIMENSIONAL NETWORKS
CN106528441B (zh) * 2016-10-26 2020-08-04 珠海格力电器股份有限公司 仿真eeprom的数据处理方法、装置及电子设备
JP2018160189A (ja) 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステム
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
CN111897498A (zh) * 2018-07-27 2020-11-06 创新先进技术有限公司 区块链数据的多级存储方法和装置
CN109215171A (zh) * 2018-08-20 2019-01-15 深圳市长龙铁路电子工程有限公司 一种机车信号设备数据记录的存储方法
CN110888593B (zh) 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888820B (zh) 2018-09-07 2022-01-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) * 2018-09-07 2023-05-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI690928B (zh) 2019-01-10 2020-04-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
TWI718889B (zh) * 2019-01-10 2021-02-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
CN111400302B (zh) * 2019-11-28 2023-09-19 杭州海康威视系统技术有限公司 连续存储数据的修改方法、装置和系统
TWI727842B (zh) 2020-02-20 2021-05-11 大陸商長江存儲科技有限責任公司 存儲器件及其編程方法
WO2021212399A1 (en) * 2020-04-23 2021-10-28 Yangtze Memory Technologies Co., Ltd. Memory device and programming method thereof
CN114911426B (zh) * 2022-07-15 2022-10-18 北谷电子有限公司 一种数据存储方法、存储器件和高空车

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161675A (ja) * 1992-11-26 1994-06-10 Dainippon Printing Co Ltd Icカード
JP2001154909A (ja) * 1999-11-25 2001-06-08 Casio Comput Co Ltd フラッシュメモリ管理装置及び記録媒体
JP2003085034A (ja) * 2001-09-12 2003-03-20 Hitachi Ltd 不揮発性記憶装置およびデータ格納方法
JP2004264912A (ja) * 2003-02-20 2004-09-24 Sony Corp 記録媒体の記録制御方法および記録媒体の記録制御装置
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4139911A (en) * 1978-03-13 1979-02-13 Westinghouse Electric Corp. High speed sense circuit for semiconductor memories
US4218764A (en) * 1978-10-03 1980-08-19 Matsushita Electric Industrial Co., Ltd. Non-volatile memory refresh control circuit
US4253059A (en) * 1979-05-14 1981-02-24 Fairchild Camera & Instrument Corp. EPROM Reliability test circuit
JPS58139399A (ja) * 1982-02-15 1983-08-18 Hitachi Ltd 半導体記憶装置
US4460982A (en) * 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4612630A (en) * 1984-07-27 1986-09-16 Harris Corporation EEPROM margin testing design
JPS6134793A (ja) * 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
JPS6148197A (ja) * 1984-08-13 1986-03-08 Fujitsu Ltd チヤ−ジアツプ回路
JPS61172300A (ja) * 1985-01-26 1986-08-02 Toshiba Corp 半導体記憶装置
EP0198935A1 (de) * 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
US4962322A (en) * 1988-12-05 1990-10-09 Texas Instruments Incorporated Nonvolatible capacitor random access memory
JPS62114200A (ja) * 1985-11-13 1987-05-25 Mitsubishi Electric Corp 半導体メモリ装置
US5157629A (en) * 1985-11-22 1992-10-20 Hitachi, Ltd. Selective application of voltages for testing storage cells in semiconductor memory arrangements
US4763305A (en) * 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
JPH0715799B2 (ja) * 1987-06-30 1995-02-22 日本電気株式会社 半導体記憶装置
FR2618579B1 (fr) * 1987-07-21 1989-11-10 Thomson Semiconducteurs Circuit integre a memoire comportant un dispositif anti-fraude
US4809231A (en) * 1987-11-12 1989-02-28 Motorola, Inc. Method and apparatus for post-packaging testing of one-time programmable memories
FR2630573B1 (fr) * 1988-04-26 1990-07-13 Sgs Thomson Microelectronics Memoire programmable electriquement avec plusieurs bits d'information par cellule
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
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
JPH07105146B2 (ja) 1988-07-29 1995-11-13 三菱電機株式会社 不揮発性記憶装置
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
JPH02260298A (ja) * 1989-03-31 1990-10-23 Oki Electric Ind Co Ltd 不揮発性多値メモリ装置
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH0664918B2 (ja) * 1989-05-25 1994-08-22 ローム株式会社 自己訂正機能を有する半導体記憶装置
US5258958A (en) 1989-06-12 1993-11-02 Kabushiki Kaisha Toshiba Semiconductor memory device
FR2650109B1 (fr) * 1989-07-20 1993-04-02 Gemplus Card Int Circuit integre mos a tension de seuil ajustable
US5065364A (en) 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5270551A (en) 1990-02-14 1993-12-14 Hitachi, Ltd. Method of and apparatus for protecting electronic circuit against radiation
US5122985A (en) * 1990-04-16 1992-06-16 Giovani Santin Circuit and method for erasing eeprom memory arrays to prevent over-erased cells
US5132935A (en) * 1990-04-16 1992-07-21 Ashmore Jr Benjamin H Erasure of eeprom memory arrays to prevent over-erased cells
US5200922A (en) * 1990-10-24 1993-04-06 Rao Kameswara K Redundancy circuit for high speed EPROM and flash memory devices
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5239505A (en) * 1990-12-28 1993-08-24 Intel Corporation Floating gate non-volatile memory with blocks and memory refresh
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5504760A (en) * 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5263032A (en) 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5313427A (en) * 1991-09-20 1994-05-17 Texas Instruments Incorporated EEPROM array with narrow margin of voltage thresholds after erase
JPH05109292A (ja) * 1991-10-14 1993-04-30 Toshiba Corp 不揮発性半導体記憶装置
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
FR2689253B1 (fr) * 1992-03-24 1997-01-24 Souriau & Cie Dispositif de moulage comportant une contre-piece de guidage de broches pour le moulage de viroles de connecteurs de fibres optiques, et virole moulee au moyen d'un tel dispositif.
GB9208493D0 (en) * 1992-04-16 1992-06-03 Thomson Consumer Electronics Dual port video memory
US5327383A (en) * 1992-04-21 1994-07-05 Intel Corporation Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy
US5347489A (en) * 1992-04-21 1994-09-13 Intel Corporation Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
US5315421A (en) 1992-04-28 1994-05-24 Matsushita Electric Industrial Co., Ltd. Rubbing apparatus including double refraction phase difference measuring means and manufacturing method for liquid crystal display device
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5550394A (en) 1993-06-18 1996-08-27 Texas Instruments Incorporated Semiconductor memory device and defective memory cell correction circuit
JPH065823A (ja) 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
JP2708333B2 (ja) * 1992-09-02 1998-02-04 株式会社東芝 レベルシフタ回路
US5365486A (en) 1992-12-16 1994-11-15 Texas Instruments Incorporated Method and circuitry for refreshing a flash electrically erasable, programmable read only memory
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5335198A (en) * 1993-05-06 1994-08-02 Advanced Micro Devices, Inc. Flash EEPROM array with high endurance
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5623620A (en) 1993-06-30 1997-04-22 Intel Corporation Special test modes for a page buffer shared resource in a memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
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
US5523972A (en) * 1994-06-02 1996-06-04 Intel Corporation Method and apparatus for verifying the programming of multi-level flash EEPROM memory
JP3563452B2 (ja) * 1994-08-10 2004-09-08 株式会社東芝 セル閾値分布検知回路およびセル閾値分布検知方法
FR2728380A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3274306B2 (ja) * 1995-01-20 2002-04-15 株式会社東芝 半導体集積回路装置
US5513144A (en) * 1995-02-13 1996-04-30 Micron Technology, Inc. On-chip memory redundancy circuitry for programmable non-volatile memories, and methods for programming same
US5699297A (en) 1995-05-30 1997-12-16 Kabushiki Kaisha Toshiba Method of rewriting data in a microprocessor additionally provided with a flash memory
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5696929A (en) 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5687114A (en) * 1995-10-06 1997-11-11 Agate Semiconductor, Inc. Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
US5703506A (en) 1995-12-26 1997-12-30 Motorola Signal processing method
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
US5715193A (en) * 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5675537A (en) * 1996-08-22 1997-10-07 Advanced Micro Devices, Inc. Erase method for page mode multiple bits-per-cell flash EEPROM
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US5717632A (en) * 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
JP3866818B2 (ja) * 1997-02-14 2007-01-10 三菱電機株式会社 半導体記憶装置
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
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP3177207B2 (ja) * 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
KR100716576B1 (ko) * 1999-02-22 2007-05-11 가부시키가이샤 히타치세이사쿠쇼 메모리 카드, 논리 어드레스의 할당방법 및 데이터 기록방법
JP2000251483A (ja) * 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
EP1729304B1 (en) * 1999-04-01 2012-10-17 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP4141581B2 (ja) * 1999-04-05 2008-08-27 株式会社ルネサステクノロジ フラッシュメモリを搭載する記憶装置
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
KR100818035B1 (ko) * 2000-05-04 2008-03-31 엔엑스피 비 브이 저장 매체 상의 데이터 관리 및 데이터 관리 시스템과 컴퓨터 판독가능한 저장 매체
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) * 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
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
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6560152B1 (en) * 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
ATE402999T1 (de) * 2002-01-17 2008-08-15 Univ British Columbia Bispezifische antisense oligonukleotide die igfbp-2 und igfbp-5 inhibieren und deren verwendung
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
KR101174308B1 (ko) * 2002-10-28 2012-08-16 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US6928511B2 (en) * 2003-03-03 2005-08-09 High Tech Computer, Corp. Method and system for managing virtual memory
EP1489490A3 (en) * 2003-06-19 2005-09-14 Texas Instruments Incorporated Method for converting a cache to a scratch-pad memory
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
JP2005222201A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd メモリアクセス装置、及び半導体メモリカード
JP2006139556A (ja) * 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161675A (ja) * 1992-11-26 1994-06-10 Dainippon Printing Co Ltd Icカード
JP2001154909A (ja) * 1999-11-25 2001-06-08 Casio Comput Co Ltd フラッシュメモリ管理装置及び記録媒体
JP2003085034A (ja) * 2001-09-12 2003-03-20 Hitachi Ltd 不揮発性記憶装置およびデータ格納方法
JP2004264912A (ja) * 2003-02-20 2004-09-24 Sony Corp 記録媒体の記録制御方法および記録媒体の記録制御装置
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189389B2 (en) 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Also Published As

Publication number Publication date
KR20070087571A (ko) 2007-08-28
CN101124555B (zh) 2012-05-09
KR100914263B1 (ko) 2009-08-27
US20060161722A1 (en) 2006-07-20
CN101095121B (zh) 2010-05-05
CN101124555A (zh) 2008-02-13
JP2008524705A (ja) 2008-07-10
US7315916B2 (en) 2008-01-01
WO2006065566A9 (en) 2006-09-08
TWI393140B (zh) 2013-04-11
TW200632916A (en) 2006-09-16
CN100547565C (zh) 2009-10-07
CN101124556A (zh) 2008-02-13
WO2006065566A1 (en) 2006-06-22
CN101095121A (zh) 2007-12-26
EP1828906A1 (en) 2007-09-05
EP1828906B1 (en) 2014-09-10
CN101124554A (zh) 2008-02-13

Similar Documents

Publication Publication Date Title
JP4787266B2 (ja) スクラッチパッドブロック
JP4399008B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
EP1829047B1 (en) System and method for use of on-chip non-volatile memory write cache
JP4431175B2 (ja) 不揮発性メモリおよびマルチストリーム更新を伴う方法
JP4960882B2 (ja) クラスタ自動位置合わせ
US7451264B2 (en) Cycle count storage methods
US7433993B2 (en) Adaptive metablocks
JP5001011B2 (ja) ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
US7386655B2 (en) Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7467253B2 (en) Cycle count storage systems
US20060106972A1 (en) Cyclic flash memory wear leveling
JP2009282989A (ja) フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110114

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

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Ref document number: 4787266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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