JP4960882B2 - クラスタ自動位置合わせ - Google Patents

クラスタ自動位置合わせ Download PDF

Info

Publication number
JP4960882B2
JP4960882B2 JP2007546717A JP2007546717A JP4960882B2 JP 4960882 B2 JP4960882 B2 JP 4960882B2 JP 2007546717 A JP2007546717 A JP 2007546717A JP 2007546717 A JP2007546717 A JP 2007546717A JP 4960882 B2 JP4960882 B2 JP 4960882B2
Authority
JP
Japan
Prior art keywords
cluster
block
data
page
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007546717A
Other languages
English (en)
Other versions
JP2008524703A (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 JP2008524703A publication Critical patent/JP2008524703A/ja
Application granted granted Critical
Publication of JP4960882B2 publication Critical patent/JP4960882B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/7202Allocation control and policies

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)で説明されている。
個々のフラッシュEEROMセルは、1ビット以上のデータを表す電荷量を電荷記憶素子またはユニット内に記憶する。記憶素子の電荷レベルは、セルの記憶状態を読み出す基準として用いられるメモリセルの(一般にVT と称される)しきい値電圧を制御する。一般に、しきい値電圧のウィンドウ(窓)は、メモリセルの2つ以上の記憶状態の各々にそれぞれ1つ対応する多数の範囲に分割されている。これら範囲は、個々のセルの記憶状態を決定させる公称感知レベルを含む保護帯域によって分離されている。これら記憶レベルは、隣接または他の関連するメモリセル、ページまたはブロックに実行される電荷による妨害プログラム動作、妨害読み出し動作または妨害消去動作の結果として変化する。従って、誤り訂正符号(ECC)は一般的にコントローラによって計算され、プログラムされるホストデータと一緒に記憶され、読み出し中、データをベリファイし、必要に応じて、あるレベルのデータ訂正を実行するのに用いられる。また、許容範囲の中心になるように調整された電荷レベルでデータが再度書き込まれる新たな位置にデータを複写することによって、変化した電荷レベルを時々、それらの状態範囲の中心に戻し復元することができる。妨害動作が電荷レベルを所定範囲から大きく変化させ、従って、誤りデータを読み出させる前にこの復元を行うことができる。この処理は、データリフレッシュまたは消し込みと称され、米国特許第5,532,962号(特許文献13)および第5,909,449号(特許文献14)で説明されている。
大部分の集積回路用途でのように、ある集積回路機能を実装するのに必要とされるシリコン基板領域を縮小させるという圧力は、フラッシュEEPROMメモリセルアレイの場合にも存在する。所定の大きさのメモリカードおよび他の種類のパッケージの記憶容量を増大させるため、シリコン基板の所定の領域に記憶することができるデジタルデータの量を増大させること、または、容量を増大させ、かつ大きさを減少させることが絶えず望まれている。データの記憶密度を増大させる1つの方法は、1メモリセル当たりおよび/または1記憶ユニットまたは素子当たり2ビット以上のデータを記憶することである。このことは、記憶素子の電荷レベル電圧範囲のウィンドウ(窓)を3つ以上の状態に分割することによって達成される。例えば、このような状態を4つ使用することによって、各セルが2ビットのデータを記憶することが可能となり、8つの状態が1記憶素子当たり3ビットのデータを記憶するなどである。フローティングゲートを用いる多状態のフラッシュEEPROM構造およびその動作は、米国特許第5,043,940号(特許文献15)および第5,172,338号(特許文献16)で説明され、誘電性のフローティングゲートを用いる構造については、前述した米国公開特許出願第2003/0109093号(特許文献12)で説明されている。また、米国特許第5,930,167号(特許文献17)および第6,456,528号(特許文献18)で説明されているように、多状態メモリセルアレイの選択された部分を、様々な理由で2つの状態(2値)で動作することもできる。
一般的なフラッシュEEPROMアレイのメモリセルは、同時に消去されるセルの離散的なブロックに分割されている。すなわち、消去ブロックは消去単位であり、最小数のセルは同時に消去できる。一般的に、各消去ブロックはデータの2つ以上のページを記憶し、ページは、プログラミングおよび読み出しの最小単位である。しかし、1つ以上のページを、異なるサブアレイまたはプレーンに並行してプログラムまたは読み出すことができる。一般的に、各ページはデータの1つ以上のセクタを記憶し、セクタの大きさはホストシステムによって定義される。例示的なセクタは、磁気ディスクドライブによって確立された規格に従う512バイトのユーザデータと、ユーザデータおよび/またはそれらが記憶される消去ブロックに関する幾らかのバイト数のオーバーヘッド情報とを含む。一般的に、このようなメモリは、各消去ブロック内に16,32またはそれ以上のページを有し、各ページが1つまたはごくわずかのホストセクタのデータを記憶するように構成されている。
ユーザデータをメモリアレイ内にプログラムし、そこからユーザデータを読み出す間、並列性の度合いを増大させるため、一般的に、アレイは、プレーンと一般に称されるサブアレイに分割され、プレーンは、データのセクタを幾つかまたはすべてのプレーンの各々に同時にプログラムするかまたはそこから読み出しできるように並列動作を可能にするデータレジスタおよび他の回路を含む。単一集積回路上のアレイをプレーンに物理的に分割することができ、または分離した1つ以上の集積回路チップから各プレーンを形成することができる。このようなメモリの実施例が、米国特許第5,798,968号(特許文献19)および第5,890,192号(特許文献20)で説明されている。
幾つかのメモリシステムでは、物理メモリセルは2つ以上の区域に分類されている。区域を、物理メモリまたはメモリシステムの任意の区画されたサブセットとすることができ、これらサブセットには、指定された範囲の論理ブロックアドレスがマッピングされる。例えば、64メガバイトのデータを記憶できるメモリシステムを4つの区域に区画することができ、1区域当たり16メガバイトのデータを記憶する。次に、論理ブロックアドレスの範囲も4つの群に分割され、1つの群は、4つの各々の区域の消去ブロックに割り当てられる。一般的な実施例において、論理ブロックアドレスは制約されているので、論理ブロックアドレスがマッピングされた単一物理区域の外には各々のデータは決して書き込まれない。アドレス指定、プログラミングおよび読み出し回路を各々有するプレーン(サブアレイ)に分割されたメモリセルアレイでは、各区域は、複数のプレーンから消去ブロックを含むのが好ましく、一般的には、各プレーンから同数の消去ブロックを含む。主として、区域は、論理−物理変換のようなアドレス管理を単純にして、その結果、変換テーブルを小さくし、これらテーブルを保持するのに必要とされるRAMメモリを小さくし、メモリの現在のアクティブな領域をアドレス指定するためのアクセス時間を速めるために用いられているが、制限された性質のため、結果として、最適な消耗平均化に満たないことがある。
メモリを更に効率良く管理するため、消去ブロックを結合して仮想ブロックまたはメタブロックを形成することができる。すなわち、各メタブロックは、各プレーンから1つの消去ブロックを含むように定義されている。メタブロックの使用は、米国特許第6,763,424号(特許文献21)で説明されている。本願明細書で参照した他のすべての特許および特許出願と同様に、この特許もその全体が本願明細書において参照により援用されている。メタブロックは、データをプログラムし読み出す出力先としてホスト論理ブロックアドレスによって識別される。同様に、メタブロックの消去ブロックのすべては同時に消去される。このような大規模なブロックおよび/またはメタブロックで動作されるメモリシステム内のコントローラは、ホストから送信された論理ブロックアドレス(LBA)と、メモリセルアレイ内の物理ブロック番号(PBN)との間の変換を含む多くの機能を実行する。一般的に、ブロック内の個々のページは、ブロックアドレス内のオフセットによって識別される。アドレス変換は、論理ブロック番号(LBN)および論理ページの中間の使用を含むことが多い。
メモリがホストに接続されている場合、異なるデータ構造がメモリシステムおよびホストによって用いられる結果として、ある非効率が生じることがある。一般的に、ホストシステムはクラスタとしてデータを管理し、クラスタは一定数のセクタを含む。一般的に、クラスタは、4セクタと64セクタとの間のデータを含む。しかし、他の数のセクタも可能である。一般的に、ホストは、特定のファイルに対するデータの割り当てをクラスタごとに記録するファイルアロケーションテーブル(FAT)を維持する。取り外し可能なメモリカードのメモリシステムのようなメモリシステムは一般的にデータの単位としてクラスタを用いない。一例では、データのクラスタはホストによってメモリカードに送信され、データのクラスタが不揮発性メモリに記憶された場合にメモリカードは信号を戻す。次に、ホストはデータの次のクラスタを送信する。一般的に、クラスタと、クラスタを記憶するのに用いられるページとの間に位置合わせは存在しない。これが意味することは、クラスタを単一ページに書き込むことができるとしても、クラスタがメモリの2つのページに延在するので単一クラスタのデータのプログラミングが2つの書き込み動作を必要とすることがあるということである。このことは、データをメモリにプログラムするのに必要とされる時間を増大させる。
この問題に関する1つの可能な解決策は、クラスタが最初のページから次のページに延在する場合、次のページに記憶すべきクラスタの部分をランダムアクセスメモリ(RAM)のような揮発性メモリに記憶し、クラスタが書き込まれたことを示す信号をホストに戻すということである。次のクラスタが受信されると、RAM内のデータを複写し、新たなクラスタの一部が全ページ書き込みの一部として次のページに書き込むことができる。次のクラスタの残りは前のようにRAMに記憶される。しかし、幾つかの規格によれば、RAMへのこのようなデータの記憶は、メモリへの電源が失われた場合、このようなデータを損失する危険性があるために認められていない。
別の解決策は、クラスタ境界をページ境界と位置合わせする一定値によってセクタの物理−論理マッピングが変更されるようにオフセットを実施するということである。しかし、ホストシステムがクラスタ境界の位置を、例えば試験目的で変更する場合、データの位置合わせがずれ、メモリに記憶されたデータのすべてを移動する位置合わせが必要となる。通常、フォーマット設定処理は、FATの複写数およびクラスタの大きさのように前のフォーマットパラメータを考慮に入れずに行われる。フォーマット設定中、クラスタとメモリページとの間の最終オフセットの直接制御が存在しない。その結果として、オフセットはフォーマット設定後に異なることがある。従って、この技術は幾つかの欠点を有する。
従って、データのホスト単位の境界がページ境界と位置合わせされるように、データの(クラスタのような)ホスト単位をメモリアレイのページに位置合わせする方法が必要である。また、電源が取り外された場合にホストデータが損失しないように保護するようにこの位置合わせを行う方法が必要である。また、この位置合わせを柔軟に行い、かつホストによって送信されたデータ内のクラスタ境界位置を変更可能にするように行う方法が必要である。
米国特許第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,532,962号 米国特許第5,909,449号 米国特許第5,043,940号 米国特許第5,172,338号 米国特許第5,930,167号 米国特許第6,456,528号 米国特許第5,798,968号 米国特許第5,890,192号 米国特許第6,763,424号 米国特許出願第10/750,155号 米国特許出願第11/016,285号 米国特許出願第10/841,118号
ホストデータのクラスタをメモリアレイのページに位置合わせする方法は、オフセットを用いてメモリアレイのブロックにデータを記憶する。オフセットを用いて、セクタは、それらがオフセットを用いなければ記憶されたであろう位置から移動されたメモリアレイ内の位置に記憶される。オフセットをブロックごとに実施することができる。従って、メモリアレイの特定のブロックにマッピングされた論理アドレス(論理ブロック)の範囲に変更がなく、オフセットは、データがブロック内に配置される方法のみに影響を及ぼす。従って、データの一部から他の部分までのオフセットに変更がある場合(例えば、試験目的でホストがクラスタ境界位置を変更する場合)、異なる部分を異なるオフセットで書き込むことができる。
通常、クラスタ境界は論理ブロック境界に位置合わせされていないので、通常、論理ブロックはクラスタ断片で開始および終了し、その中間に多数の完全なクラスタを含む。
一例として、論理ブロックの開始からのクラスタ断片は最初のページの最後に書き込まれる。次に、完全なクラスタが位置合わせされて次のページに書き込まれる。次に、論理群の最後からのクラスタ断片は最初のページに書き込まれ、従って、最初のページを充填する。代替例として、論理ブロックの開始からのクラスタ断片をブロックの最後のページに書き込むことができ、完全なクラスタを残りのページに書き込むことができ、次に、論理ブロックの最後からのクラスタ断片は最終ページに書き込まれる。しかし、前に書き込まれたデータを後の書き込み動作中に破損させる危険性があるため、幾つかのメモリ設計は、2回以上ページに書き込ませない。また、幾つかの設計は、非逐次にページを充填させない。
別の例では、論理ブロックの開始からのクラスタ断片は、スクラッチパッドブロック、またはクラスタ断片が記憶されることになっているブロックの外の他の位置に記憶される。次に、後に続く完全なクラスタは位置合わせされてブロックのページに記憶される。最終のクラスタ断片は、スクラッチパッドブロックから複写された論理ブロックの開始からのクラスタ断片と一緒にブロックの最終ページに書き込まれる。この方式によってページに逐次書き込ませることができ、各ページは1回だけ書き込まれる。
1つの消去ブロックであるブロック、またはメタブロックを形成するように結合された複数の消去ブロックを含むブロックに対して本発明の技術を用いることができる。これら技術を様々な大きさのクラスタおよびページに適用することができ、クラスタの大きさがページの大きさと同じである場合に限定されない。
メモリ構造およびその動作
最初に図1Aを参照する。フラッシュメモリは、メモリセルアレイおよびコントローラを含む。図示されている例では、2つの集積回路装置(チップ)11,13は、メモリセルのアレイ15および様々な論理回路17を含む。論理回路17は、データ、命令および状態回路を介して別個のチップ上のコントローラ19とインターフェイスをとり、しかも、アドレス指定、データ転送および感知を行い、アレイ13への他の支援を行う。設けられている記憶容量に応じてメモリアレイチップの数を1から多数とすることができる。メモリセルアレイを単一チップ上に位置付けすることができ、または複数のチップ上にメモリセルをもって構成することができる。代替例として、コントローラと、一部または全部のアレイとを単一集積回路チップ上に結合することができる。しかし、この代替例は現在のところ経済的ではない。
一般的なコントローラ19は、マイクロプロセッサ21と、主としてファームウェアを記憶する読み出し専用メモリ(ROM)23と、主としてメモリチップ11,13へ書き込むか、そこから読み出されるユーザデータを一時的に記憶するバッファメモリ(RAM)25とを含む。バッファメモリ25を、揮発性メモリまたは不揮発性メモリとすることができる。回路27は(1つ以上の)メモリアレイチップとインターフェイスをとり、回路29は接続部31を介してホストとインターフェイスをとる。
図1Aのメモリの接続部31は、一例として図1Bに示されているホストシステムの接続部31’と結合する。ホストと図1Aのメモリとの間のデータ転送は、インターフェイス回路35を介する。また、一般的なホストは、マイクロプロセッサ37と、ファームウェアコードを記憶するROM39と、RAM41とを含む。他の回路およびサブシステム43は、特定のホストシステムに応じて大容量磁気データ記憶ディスクドライブ、キーボード用のインターフェイス回路、モニタなどを含むことが多い。このようなホストの幾つかの例として、ディスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、個人用携帯情報端末(PDA)、MP3および他のオーディオプレーヤ、デジタルカメラ、ビデオカメラ、電子ゲーム機、無線および有線電話装置、留守番電話機、音声録音装置、ネットワークルータなどが挙げられる。
図1Aのメモリは、図1Bのホストと取り外し可能に接続できる形態をとるコントローラおよびすべてのメモリアレイ回路装置を含む小形の封入カードとして実装することができる。すなわち、結合している接続部31,31’によって、カードを外し別のホストに移動し、または別のカードをホストに接続することによりカードを取り替えることができる。代替例として、コントローラおよび接続部31を含むカードと電気的かつ機械的に接続可能である別個のカード内にメモリアレイ装置を封入することができる。更なる代替例として、図1Aのメモリを図1Bのホスト内に埋め込むことができ、接続部31,31’は取り外せないように形成される。この場合、通常、メモリは、他の構成要素と一緒にホストの筐体内に含まれる。更なる代替例として、メモリチップ11のようなメモリチップはホストシステムの接続部31’へそれらの間にメモリコントローラを持たないで直接接続することができる。この場合、メモリコントローラの機能は、ホストシステムのマイクロプロセッサ37によって実行される。
図2には、メモリアレイの一部を示し、メモリセルは消去ブロックに分類され、各消去ブロック内のセルは、通常同時に生じる単一消去動作の一部として同時に消去可能である。消去ブロックは消去の最小単位である。
図2の個々のメモリセルの消去ブロックの大きさは異なることができる。しかし、1つの商業的に実施されている形態は、個々の消去ブロック内に単一セクタのデータを含む。このようなデータセクタの内容は図3に示されている。ユーザデータ51は一般的に512バイトである。ユーザデータから計算されたECC53と、セクタデータに関連し、および/またはセクタがプログラムされた消去ブロックに関連するパラメータ55と、パラメータ55から計算されたECC57とを含むオーバーヘッドデータと、含めることができる任意の他のオーバーヘッドデータとがユーザデータ51に追加されている。代替例として、ユーザデータ51およびパラメータ55の双方から単一ECCを計算することができる。
パラメータ55は、消去ブロックによって体験されるプログラム/消去周期の数に関連する量を含むことができ、この量は、各周期または幾つかの周期の後に更新される。この体験からの量が消耗平均化アルゴリズムに用いられる場合、すべての消去ブロックの使用量(消耗)を一様にするため、論理ブロックアドレスは、異なる物理ブロックアドレスに定期的に再マッピングされる。この体験からの量は、異なる消去ブロックによって体験される周期の数の関数としてプログラミング、読み出しおよび/または消去のための電圧および他のパラメータを変更するのにも用いられる。
パラメータ55は、「ローテーション」と称する、メモリセルの記憶状態の各々に割り当てられたビット値の指標をも含むことができる。このことは、消耗平均化にも有益な効果がある。状況または状態を示す1つ以上のフラグもパラメータ55に含めることができる。消去ブロックをプログラムおよび/または消去するのに用いるべき電圧レベルの指標をもパラメータ55内に記憶することができ、これら電圧は、消去ブロックによって体験された周期の数および他の要素が変化すると更新される。パラメータ55の別の例として、消去ブロック内の任意の欠陥セルの識別子と、この物理ブロックにマッピングされたデータの論理アドレスと、主な消去ブロックに欠陥がある場合には任意の代替消去ブロックのアドレスとが挙げられる。任意のメモリシステムに用いられるパラメータ55の特定の組み合わせは、設計に従って異なる。また、ユーザデータを含む消去ブロックまたはオーバーヘッドデータが関連する消去ブロック内というよりも、このような機能専用の消去ブロックにオーバーヘッドデータの一部または全部を記憶することができる。
図4の複数セクタの消去ブロックは、図2の単一データセクタの消去ブロックと異なる。一例の消去ブロック59は依然として消去の最小単位であり、4つのページ0〜3を含み、各ページ0〜3はプログラミングの最小単位である。1つ以上のホストセクタのデータは一般的に、セクタのデータから計算された少なくともECCを含むオーバーヘッドデータと一緒に各ページに記憶され、図3のデータセクタの形態をとることができる。
全消去ブロックのデータの再書き込みは、通常、消去ブロックプールの利用可能な消去ブロック内に新たなデータをプログラムすることを含み、この場合、元の消去ブロックは消去され消去プール内に配置される。消去ブロックの全ページには満たないページのデータが更新される場合、更新されたデータは一般的に、消去ブロックプールから消去ブロックのページ内に記憶され、残りの変更されなかったページのデータは、元の消去ブロックから新たな消去ブロックへ複写される。次に、元の消去ブロックは消去される。この大規模なブロック管理技術の変形例には、元の消去ブロックからデータを移動しない、またはそれを消去しないで、更新されたデータを別の消去ブロックのページに書き込むことが含まれる。この結果、同じ論理アドレスを有する複数のページを生じさせる。最新のページのデータは、セクタ内のフィールドまたはページオーバーヘッドデータとして記録されたプログラミングの時間のような何らかの都合の良い技術によって識別される。
図5には、更なる複数セクタの消去ブロック配置を示す。この場合、全メモリセルアレイは2つ以上のプレーンに物理的に分割され、図には4つのプレーン0〜3が示されている。各プレーンは、それ自体のデータレジスタ、センス増幅器およびアドレス復号器などを有するので、他のプレーンに大規模に独立して動作できるメモリセルのサブアレイである。単一集積回路装置または複数の装置上にすべてのプレーンを設けることができる。複数の装置の一例では、1つ以上の異なる集積回路装置から各プレーンを形成する。図5の例示的なシステム内の各消去ブロックは16のページP0〜P15を含み、各ページは、1つ、2つまたはそれ以上のホストデータセクタおよび幾つかのオーバーヘッドデータの容量を有する。
図6には、別のメモリセル配置を示す。各プレーンは多数の消去ブロックを含む。動作の並列性の度合いを増大させるため、チップの、または異なるチップからの異なるプレーン内の消去ブロックは、メタブロックを形成するように論理的に結合されている。1つのこのようなメタブロックを図6に示す。各メタブロックは論理的にアドレス可能であり、メモリコントローラは、個々のメタブロックを形成する消去ブロックのトラックを割り当て保持する。ホストシステムは、一連のセクタの形態でデータを提供する。この一連のセクタは論理ブロックに分割されている。この場合、論理ブロックは、メモリアレイのメタブロックに含まれるようなデータの同数のセクタを含むデータの論理単位である。メモリコントローラは、各論理ブロックが記憶されている位置のレコードを維持する。例えば、図6のこのような論理ブロック61は、メタブロックを形成するブロックの物理ブロック番号(PBN)へコントローラによってマッピングされた論理ブロックアドレス(LBA)によって識別される。メタブロックの全ブロックは同時に消去され、一般的に、各ブロックからのページは同時にプログラムされ読み出される。並行してプログラムされたメタブロックの異なる消去ブロックからの一群のページをメタページと見なすことができる。メタページを、メタブロック構造を用いるメモリシステムのプログラミングの単位と見なすことができる。メタブロックの複数の消去ブロックにまたがって延在する大規模なメタページを用いるデータのプログラミングは高度な並列性を提供し、従って、高いデータ記憶率を可能にする。
メタブロック構造を用いるシステムでは、メタブロックを形成する一群の消去ブロックを単一消去ブロックとして処理することができ、単にブロックと称することもできる。同様に、メタブロックの消去ブロックにまたがって延在する一群のページを単一ページ(またはメタページ)として処理することができる。消去ブロックを結合してメタブロックを形成する構造と、消去ブロックを結合しないでメタブロックを形成する構造との双方で、本願明細書で説明する特定の技術を行うことができる。従って、本願明細書で用いられる「ブロック」なる用語は、単一消去ブロックまたはメタブロックを形成するように結合された一群の消去ブロックのどちらかを意味することができる。同様に、本願明細書で用いられる「ページ」なる用語は、個々の消去ブロックのページまたはメタブロックの消去ブロックにまたがって延在するメタページのどちらかを意味することができる。
図7には、1メタページ当たり4つのセクタを有するメタブロック72に記憶されたクラスタの位置合わせのずれの一例を示す。データは、一連のクラスタとしてホストから受信され、各クラスタは4つのセクタを備える。クラスタKは2つの論理ブロックにまたがって延在する。従って、クラスタKの一部(セクタX−3〜X−1)は第1の論理ブロック74内にあり、クラスタKの一部(セクタX)は第2の論理ブロック76内にある。セクタXは第2の論理ブロックの最初のセクタであるので、メタブロック72の最初のページ(ページ0)に記憶される。セクタXが書き込まれると、クラスタKの書き込みが完了したことを示す信号をホストに送信することができる。次に、ホストはクラスタK+1を送信することができる。クラスタK+1の最初の一部(セクタX+1,X+2,X+3)は、セクタXと一緒にページ0に記憶される。しかし、ページは、4セクタのみのデータを記憶するので、セクタX+4を次のページ(ページ1)に記憶する必要がある。ページ1に書き込まれる前にセクタX+4をバッファに記憶することができる。従って、次のページの書き込み動作は、クラスタK+1を記憶するのに必要とされる。同様に、クラスタとページとの間の位置合わせのずれにより各クラスタが2つのページに延在するので、後に続くクラスタK+2〜K+N/4は各々2つの書き込み動作を必要とする。論理ブロック76の最終クラスタ(クラスタK+N/4)は部分的に第3の論理ブロック78の最初のページに書き込まれる。従って、位置合わせのずれは、後に続くメタブロックを通して継続する。この例では、各クラスタが2つの書き込み動作を必要とするので、データを記憶する時間は、各クラスタが単一書き込み動作で書き込まれる場合よりもかなり長くなることがある。この問題は、クラスタがページと同じデータ量を含まない場合にも存在することがある。例えば、クラスタがページよりも小さい場合、幾つかのクラスタを単一ページに書き込むことができるが、その他のクラスタは2つのページに延在する。クラスタがページよりも大きい場合、幾つかのページは1つのクラスタのみからのデータを含むことができるが、幾つかのページは2つのクラスタからのデータを含む。従って、ページの2倍の大きさであるクラスタは、3つの書き込み動作を必要とすることがある。
図8Aには、本発明の一実施形態に従ってメタブロック72のホストクラスタをページと位置合わせする一例を示す。前述したように、ホストは一連のクラスタK〜K+N/4のデータを順次送信してメモリに記憶する。メモリは複数のメタブロックを含み、メタブロックは、同時にプログラムし消去することができる複数の消去ブロックから形成されている。メタブロックに対応するデータの単位は論理ブロックである。データのクラスタK〜K+N/4は3つの論理ブロック74,76,78にまたがって延在する。クラスタKのセクタXが受信されると、メタブロック72の最初のページ(ページ0)に記憶される。セクタXに対して示された位置は、それがページ0の最後の位置にあることを示す。続いて、クラスタK+1のセクタX+1〜X+4が受信されると、それらはページ1に記憶される。クラスタK+1はページ1に位置合わせされているので、クラスタKとクラスタK+1との間の境界(セクタXとセクタX+1との間の境界)は、ページ0とページ1との間のページ境界に位置付けられている。従って、クラスタK+1の開始はページ1の開始で始まり、クラスタK+1は、ページ1に位置合わせされたと見なされる。この例では、クラスタの大きさはページの大きさと同じであるので、クラスタK+1はページ1に合わせ、クラスタK+1の最後もページ1の最後に一致する。クラスタK+2は同様にページ2に位置合わせされている。同様に、後に続くクラスタK+3〜K+N/4−1は、それぞれのページ3〜N/4−1に位置合わせされている。クラスタK+N/4−1をページN/4−1に書き込んだ後で、クラスタK+N/4がホストから受信される。セクタX+N−3,X+N−2,X+N−1は、セクタXと一緒にメタブロック72の最初のページ(ページ0)に記憶される。従って、メタブロック72は、論理ブロック76の先頭からの部分的なクラスタと、論理ブロック76の尾部からの部分的なクラスタとを含む最初のページ(ページ0)を有する。メタブロックの他のページは各々1つのクラスタを含むので、これらページごとに1つのみの書き込み動作が必要とされる。この1つのみの書き込み動作によって、メモリアレイへのデータの書き込みを、特定の従来技術のシステムに比べて高速にすることができる。
この例のオフセットを、現在の命令の最初の論理アドレスと論理ブロックの最初のセクタの論理アドレスとの間の差から計算することができる。このオフセットを計算する式は、
オフセット={(現在の命令の最初の論理アドレス)mod
(1ページ当たりのセクタ数)}−(1ページ当たりのセクタ数)
である。従って、図8Aの例に対して、この計算は、
オフセット={(X−3)mod(4)}−4=1−4=−3
図8Bには、X=0である場合の、論理ブロック76のセクタの論理−物理マッピングにおけるオフセットとして図8Aの再位置合わせ方式を示す。論理ブロック76の最初の論理セクタ(セクタX)をメタブロック72の第1の物理アドレスに書き込む代わりに、最初の論理セクタは第4の物理アドレスに書き込まれる。このことを、このセクタのマッピングにおいて−3のオフセットと見なすことができる。零オフセットは、最初の論理セクタを最初の物理位置にマッピングすることである。また、前述したことを、N−3のオフセットと見なすことができる。その理由は、最初の物理位置に記憶されたセクタがセクタN−3であるためである。メタブロック72の最後に達するまで、後に続くセクタも、−3のオフセットで書き込まれる。次に、論理ブロック76の最後の3つのセクタX+N−3,X+N−2,X+N−1はメタブロック72の開始に書き込まれる。これらセクタも、−3のオフセットで書き込まれたと見なすことができる。メタブロックの論理アドレスは循環する(論理ブロックの最初のアドレスは論理ブロックの最後のアドレスに続くと見なされる)。従って、論理ブロック76のオフセットを用いてメタブロック72に記憶されたデータのセクタを見出すことができ、データのセクタごとの索引は必要とされない。この種のオフセット(またはページタグ)を用いるメタブロックへのデータの記憶については、2003年12月30日に出願された「不揮発性メモリおよびブロック管理システムを伴う方法」という米国特許出願第10/750,155号(特許文献22)に更に説明されている。この特許出願は、その全体が本願明細書において参照により援用されている。図8Aおよび図8Bの例は、メタブロック72の開始で記憶されるように論理ブロック76の最後から循環される3つのセクタ(X+N−3,X+N−2,X+N−1)を示すが、このように循環されるセクタの数を1から3までとすることができる。所定の論理ブロックに対するオフセットの大きさを1からページ内のセクタ数未満までとすることができる。
特定のメモリ設計は、ブロックの同じページへの複数の書き込み動作をさせないようにする。この種のメモリでは、データがページに書き込まれた後、このページは、追加のデータを書き込ませることができない。その理由は、後に続くプログラミング動作が、記憶されたデータを破損させるおそれがあるためである。この種のメモリでは、セクタXをプログラムした後、続いてセクタX+N−3,X+N−2,X+N−1をページ0にプログラムさせることができないので、図8Aで示された記憶方式を可能とすることができない。また、幾つかの設計では、逐次的な順序のみでページを書き込むことができる。例えば、最初にページ0が書き込まれ、次に、ページ1、ページ2などへ書き込みが続く。ページ1が書き込まれた後、ページ0を書き込むことができないのは、このことが逐次的でないためである。このような設計では、ページ1からページN/4−1まで書き込んだ後、ページ0に任意のデータを書き込むことはできない。
図9Aには、クラスタとページとを位置合わせする位置合わせ方式を実施するのにスクラッチパッドブロック91を用いる本発明の別の実施形態を示す。スクラッチパッドブロックの使用は、本願と同日に出願された代理人整理番号SNDK.406US0を有する「スクラッチパッドブロック」という米国特許出願第11/016,285号(特許文献23)で説明されている。この特許出願は、その全体が本願明細書において参照により援用されている。前の例でのように、ホストデータの一連のクラスタ(クラスタK〜K+N/4)は、メモリアレイに記憶するためにホストから受信される。クラスタKは第1の論理ブロック74からのセクタX−3〜X−1と、第2の論理ブロック76からのセクタXとを含む。セクタX−3〜X−1は、第1の論理ブロック74と関連するメタブロック(図示せず)に記憶されている。セクタXが受信されると、セクタXは直接にメタブロック72に記憶されない。その代わりに、セクタXは別の位置に記憶される。この例では、この位置はスクラッチパッドブロック91内である。スクラッチパッドブロック91は、様々なデータを不揮発性メモリに短期間記憶するのに用いられるメモリアレイのブロックである。セクタXは不揮発性メモリに記憶されているので、電源がメモリシステムから取り外された場合でも損失しない。代替例として、セクタXを他の幾つかの不揮発性メモリ、または可能であれば、揮発性メモリに記憶することができる。セクタXがスクラッチパッドブロック91に記憶された後、クラスタK+1は受信される。クラスタK+1はページ0に記憶され、ページ0に位置合わせされる。従って、クラスタKとクラスタK+1との間の境界はページ0の開始境界と一致する。この例では、クラスタの大きさとページの大きさとは同じであるので、クラスタK+1はページ0にぴったり合い、クラスタK+1の最後はページ0の最後と一致する。同様に、後に続くクラスタK+2〜K+N/4−1はページに書き込まれる。クラスタK+N/4が受信されると、論理ブロック76からであるクラスタK+N/4からの3つのセクタ(セクタX+N−3,X+N−2,X+N−1)は、スクラッチパッドブロック91から複写されているセクタXと一緒にページN/4−1に書き込まれる。従って、この例では、メタブロック72の最後のページは、論理ブロック76の先頭からのクラスタ断片と、論理ブロック76の尾部からのクラスタ断片とを含む。ページの逐次的な書き込みを必要とせず、同じページへの複数の書き込みを可能にするメモリでは、セクタXが別の位置に記憶されることなしに受信される場合、セクタXをページN/4−1に書き込むことができる。
この例に対するオフセットを、クラスタ境界とページ境界との間の差から計算することができる。これを、現在の命令の最初の論理アドレスと論理ブロックの開始の論理アドレスとの間の差から見出すことができる。一例では、オフセットを以下の式から計算することができる。
オフセット=(現在の命令の最初の論理アドレス)mod
(1ページ当たりのセクタ数)
従って、図9Aでは、現在の命令の最初の論理アドレスはX−3である。従って、オフセットは、以下の通りである。
オフセット=(X−3)mod(4)=(X−4+1)mod(4)=1
この例では、位置合わせのオフセットを1から3までのセクタとすることができる。通常、オフセットを(クラスタが、論理ブロック境界と一致する境界位置で受信された場合)0から、1ページ当たりのセクタ数未満の最大値までとすることができる。
図9Bには、X=0である場合の、論理ブロック76のセクタの論理−物理マッピングにおけるオフセットとして図9Aの再位置合わせ方式を示す。論理ブロック76の最初の論理セクタ(セクタX)をメタブロック72の最初(第1)の物理アドレスに書き込む代わりに、最初の論理セクタは最後の物理アドレスに書き込まれる。このことを、このセクタのマッピングにおいて1のオフセットと見なすことができ、メタブロックのアドレスは循環する(論理ブロック76の最初のアドレスは論理ブロック76の最後のアドレスに続くと見なされる)。他のすべてのセクタも1のオフセットで書き込まれる。従って、受信された次のセクタすなわちセクタX+1は最初の物理アドレスに書き込まれるなどである。論理ブロック76のオフセットを用いてメタブロック72に記憶されたデータを見出すことができ、データのセクタごとの索引は必要とされない。この種のオフセット(またはページタグ)を用いるメタブロックへのデータの記憶については、米国特許出願第10/750,155号(特許文献22)で更に説明されている。
図8および図9の例は、4つのセクタを各々有するクラスタおよびページを示している。しかし、説明した原理を、様々な大きさのクラスタおよびページに適用することができる。クラスタは複数のページにまたがって延在し、これらページに依然として位置合わせされている。例えば、図10に示されているように、8つのセクタのクラスタを、4つのセクタを有するページに位置合わせすることができる。図10のクラスタは、メタブロック72の2つのページを完全に占有する。これらクラスタが位置合わせされなかった場合、クラスタは3つのページにまたがって延在することがある。従って、位置合わせは、1クラスタ当たりの書き込みの数を3から2へ減少させることによって効率を改善させることができる。この例では、すべてのページ境界がクラスタ境界に一致するというわけではないが、すべてのクラスタ境界はページ境界に一致する。
クラスタをページよりも小さくし、このページに依然として位置合わせすることができる。例えば、クラスタは16のセクタを含むことができ、ページは64のセクタを含むことができる。位置合わせなしでは、幾つかのクラスタは2つのページにまたがって延在し、2つの書き込み動作を必要とすることがある。位置合わせを用いると、これらクラスタは単一ページに書き込まれ、従って効率が改善される。この例では、すべてのクラスタ境界がページ境界に一致するというわけではないが、すべてのページ境界がクラスタ境界に一致する。
論理ブロックに対するオフセットを、書き込まれるデータの開始アドレスと論理ブロックの開始アドレスとの間の差から導き出すことができる。論理ブロックの開始はページの開始とされ、ホストはクラスタの開始でデータの書き込みを開始する。従って、これら2つのアドレス間の差は、クラスタ境界と論理ブロック境界との間の差を示す。この差が1ページ当たりのセクタ数で除される場合、オフセットを剰余から計算することができる。剰余が0である場合(この差はページの整数である)、境界を位置合わせしたと見なすことができる。論理ブロックのオフセットを記憶する1つの方法は、論理ブロックの最初の物理アドレスに記憶されたセクタの論理アドレスを記録することである。
メモリに記憶されたホストデータの最初のセクタの論理アドレスからオフセットを導き出すことができる。一般的に、DOSシステムでは、論理アドレス空間の最初の部分は、ブートセクタ、1つ以上のファイルアロケーションテーブル(FAT)、ルートディレクトリおよびサブディレクトリのようなシステム情報に専用である。システム情報の最後に続いて最初のクラスタが始まるようにホストデータはシステム情報の直ぐ後に記憶される。従って、システム情報の論理アドレス範囲が既知である場合、最初のクラスタの開始位置を獲得することができる。(1つ以上の)FATおよびディレクトリの位置を記録するブートセクタからシステム情報の論理アドレス範囲を見出すことができる。また、ブートセクタは1クラスタ当たりのセクタ数を指示し、これによって、すべてのクラスタ境界位置をブートセクタから獲得することができる。
幾つかのシステムでは、幾つかの側面で別個に動作できる2つ以上の区画にメモリアレイを区画することができる。アレイの個々の区画は、この区画に対して、システム情報に関する論理アドレス空間の専用部分を有することができる。このようなシステムでは、異なる区画に対して異なるオフセットを、区画に記憶されたホストデータの最初のセクタの位置に従って導き出すことができる。従って、各区画が、ページに位置合わせされたクラスタでデータを記憶するように、同じメモリアレイ内の異なる区画は、異なるオフセットで動作することができる。
本発明の一実施形態によれば、論理ブロックアドレスフォーマットは論理ブロックのオフセット(ページタグ)を含むことができる。従って、メタブロック内のセクタの物理位置を、前のブロックを読み出すことなしに決定することができる。
論理ブロックごとに別個のオフセットは維持されるので、異なる論理ブロックは異なるオフセットを有することができる。ホストがクラスタ境界位置を変更すると、新たなデータに対する位置合わせが変更する。他のメタブロック内に前に書き込まれたデータを新たな位置合わせで再度書き込む必要がないので、このデータを、妨害されない状態に保つことができる。オフセットが、対応する論理ブロックの論理アドレス範囲内のセクタのみに影響を及ぼすので、1つの論理ブロックでのオフセットの変更は、隣接する論理ブロックのオフセットに影響を及ぼす必要がない。同じ論理アドレス範囲は、この範囲内のみに位置合わせを行うオフセットで特定の論理ブロックにマッピングされたままである。
別の実施形態では、前述した原理を、論理ブロックの単位に適用する代わりに論理群の単位に適用することができる。このような実施形態では、オフセットは、論理ブロックに対してではなく論理群に対して計算される。論理群は、メモリアレイの1つの消去ブロック内のデータに等しくデータを保持するデータの単位である。従って、論理ブロックは整数の論理群を含む。論理群の詳細な説明が、2004年5月7日に出願された「データ境界管理」という米国特許出願第10/841,118号(特許文献24)に提供されている。この特許出願は、その全体が本願明細書において参照により援用されている。幾つかのメモリシステムでは、メモリ内のデータの物理位置を論理群の単位で追跡することができる。このようなメモリシステムでは、オフセットを論理群ごとに導き出すことができる。このようなシステムでは、論理群アドレスフォーマットはこの論理群に対するオフセットを含むことができ、異なる論理群は異なるオフセットを有することができる。他の実施形態では、ブロック内のデータよりも少ないデータを有する単位に対してオフセットを維持することができる。例えば、ブロック内のデータの1/2、1/4または他の何らかの分数を含む単位を用いることができ、異なるオフセットは単位ごとに導き出される。従って、異なる大きさの単位でデータを位置合わせすることができる。
幾つかのメモリシステムでは、様々な理由でオフセットは提供される。例えば、米国特許出願第10/750,155号(特許文献22)では、オフセットによって、最初にデータのセクタを複写することなしに、受信されたデータを迅速に書き込むことができる。このようなオフセットを、本発明に従って計算されたオフセットと結合して、データの記憶に用いられる最終オフセット値を獲得することができる。例えば、論理ブロックの論理アドレス範囲の中間に論理アドレスを有するデータが受信された場合、最初のオフセットに従ってデータをメタブロックの開始に書き込むことができる。しかし、最終オフセットが2つの成分から成るように、追加のオフセットはデータをページ境界に位置合わせすることができる。
前述したように本発明を特定の実施形態に関して充分説明してきたが、様々な変形、代替構造および等価物を用いることができる。従って、前述した説明および図を、本発明の範囲を限定するものと解釈すべきでなく、本発明は特許請求の範囲によって限定される。
メモリコントローラおよびメモリアレイ集積回路を含むメモリシステムを示す。 図1Aのメモリシステムと動作するホストシステムを示す。 図1Aのメモリアレイの第1の編成例を示す。 図1Aのメモリアレイに記憶されたようなオーバーヘッドデータを有する例示的なホストデータセクタを示す。 図1Aのメモリアレイの第2の編成例を示す。 図1Aのメモリアレイの第3の編成例を示す。 図1Aのメモリアレイの第3の編成例の拡張を示す。 図1Aのメモリアレイのようなメモリアレイに記憶されたデータに対する論理単位と物理位置との間の対応を示す。 本発明の一実施形態に従ってメモリアレイに記憶されたデータに対する論理単位と物理位置との間の対応を示す。 図8Aの例の論理−物理マッピングにおけるオフセットの動作を示す。 本発明の別の実施形態に従ってメモリアレイに記憶されたデータに対する論理単位と物理位置との間の対応を示す。 図9Aの例の論理−物理マッピングにおけるオフセットの動作を示す。

Claims (20)

  1. ホストに接続された不揮発性メモリアレイ内にアドレス可能なデータパケットを記憶する方法であって、前記メモリアレイはブロックの消去単位を有し、前記メモリアレイの1つのブロックはデータの1つの論理ブロックを保持し、アドレス可能なデータパケットから形成された論理ブロックは最初のアドレス可能なデータパケットから最後のアドレス可能なデータパケットに逐次続き、データはクラスタの単位で前記ホストによって割り当てられ、クラスタは複数のアドレス可能なデータパケットを含む、方法において、
    ブロック内に記憶するためにホストから受信されたデータに対して論理ブロック境界とクラスタ境界との間のオフセットを決定するステップと、
    個々のクラスタ境界がページ境界に位置合わせされるように前記オフセットに従って、前記受信されたデータの複数のクラスタを書き込むように前記ブロック内の物理位置を選択するステップと、
    前記最初のアドレス可能なデータパケットを含む最初の部分的クラスタと、前記最後のアドレス可能なデータパケットを含む最後の部分的クラスタとを前記ブロックのページに書き込むステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    前記最初の部分的クラスタおよび前記最後の部分的クラスタは、前記ブロックの最後のページに書き込まれる方法。
  3. 請求項2記載の方法において、
    前記ブロックの前記最後のページに書き込む前に、前記最初の部分的クラスタは、ブロック外に記憶される方法。
  4. 請求項1記載の方法において、
    前記最初の部分的クラスタおよび前記最後の部分的クラスタは、前記ブロックの最初のページに書き込まれる方法。
  5. 請求項4記載の方法において、
    前記最初の部分的クラスタが前記ブロックの前記最初のページに直接記憶され、続いて、前記最後の部分的クラスタも前記ブロックの前記最初のページに記憶される方法。
  6. 請求項1記載の方法において、
    前記ブロックが複数のページから成り、前記ブロックの全ページが、前記最初の部分的クラスタおよび前記最後の部分的クラスタを含む前記ページを除いて、ページ境界にあるクラスタ境界で記憶されたクラスタを含む方法。
  7. ホストから受信されたデータのクラスタを記憶する方法であって、クラスタは、ホストによって同時に割り当てられた複数のアドレス可能なデータ単位を含み、ページのプログラミング単位とブロックの消去単位とを有する不揮発性メモリアレイにおいてブロックは複数のページを含む、方法において、
    データの複数のクラスタをホストから受信するステップと、
    クラスタ境界の位置にかかわらず、前記複数のクラスタの論理アドレスを前記メモリアレイのブロックにマッピングするステップと、
    クラスタ境界とマッピングされたブロック境界との間のオフセットを導き出すステップと
    ロック内のページのクラスタおよびクラスタの一部を、前記導き出されたオフセットに従って記憶し、これによって、クラスタ間の境界が前記ブロックのページ境界に生じるようにするとともに、前記導き出されたオフセットが、前記ブロックにマッピングされた前記記憶されたクラスタおよび前記記憶されたクラスタの一部の論理アドレスの範囲に影響を及ぼすことなく、前記記憶されたクラスタおよび前記記憶されたクラスタの一部のデータがブロック内にどのように配置されるかのみに影響を及ぼすようにするステップと、
    を含む方法。
  8. 請求項7記載の方法において、
    前記ブロックにマッピングされた前記クラスタの一部が第1のクラスタの第1部分と第2のクラスタの第2部分とであり、前記第1部分および前記第2部分が前記ブロックのページ内に同時に記憶される方法。
  9. 請求項8記載の方法において、
    前記ブロックにマッピングされた前記クラスタおよび前記クラスタの一部が、最初の論理アドレスから最後の論理アドレスまで伸びる逐次データであり、前記第1部分が前記最初の論理アドレスを含み、前記第2部分が前記最後の論理アドレスを含む方法。
  10. 請求項7記載の方法において、
    前記ブロックに対する前記オフセットを指示する値が記録される方法。
  11. 事前に定義されたクラスタ境界を含むデータを不揮発性メモリアレイのメタブロック内に記憶する方法であって、各メタブロックは、並行してプログラムされ消去される2つ以上の消去ブロックを含み、消去ブロックは、前記不揮発性メモリアレイの消去の最小単位であり、論理ブロックは、1つのメタブロック内のデータに等しいデータから成り、論理群は、1つの消去ブロック内のデータに等しいデータから成る、方法において、
    不揮発性メモリに記憶するために、複数の逐次アドレス可能なデータパケットから成るデータを受信するステップと、
    最初のクラスタから第1の1つ以上のアドレス可能なデータパケットを第1の位置に記憶するステップであって、前記最初のクラスタが、第1の論理群から前記第1の1つ以上のアドレス可能なデータパケットを含み、しかも、第2の論理群から第2の1つ以上のアドレス可能なデータパケットを含む、ステップと、
    ページ境界がクラスタ境界で生じるように、後に続く逐次アドレス可能なデータパケットを第1のメタブロックのページに記憶するステップと、
    最後のクラスタから第3の1つ以上のアドレス可能なデータパケットを前記第1の1つ以上のアドレス可能なデータパケットと一緒に前記第1のメタブロックのページに記憶するステップであって、前記最後のクラスタが、前記第1の論理群から前記第3の1つ以上のアドレス可能なデータパケットを含み、しかも、第3の論理群から第4の1つ以上のアドレス可能なデータパケットを含む、ステップと、
    を含む方法。
  12. 請求項11記載の方法において、
    前記第1の位置は、第2のメタブロック内にある方法。
  13. 請求項11記載の方法において、
    前記第1の位置が前記第1のメタブロックのページであり、前記第1の1つ以上のアドレス可能なデータパケットを前記第1のメタブロックのページに書き込んだ後、前記第3の1つ以上のアドレス可能なデータパケットが前記第1のメタブロックのページに書き込まれる方法。
  14. 請求項11記載の方法において、
    前記第1の論理群内のデータが前記第2の論理群内のデータに連続し、前記第3の論理群内のデータが前記第1の論理群内のデータに連続する方法。
  15. 請求項11記載の方法において、
    前記第1、第2および第3の論理群は、前記第1のメタブロックに記憶された論理ブロック内にある方法。
  16. ホストから受信されたデータのクラスタを記憶するメモリシステムであって、クラスタがホストによって同時に割り当てられた複数のアドレス可能なデータ単位を含む、メモリシステムにおいて、
    ページのプログラミング単位と、複数のページを含むブロックの消去単位とを有する不揮発性メモリアレイと、
    コントローラであって、
    データの複数のクラスタをホストから受信し、
    クラスタ境界の位置にかかわらず、前記複数のクラスタの論理アドレスを前記メモリアレイのブロックにマッピングし、
    クラスタ境界とマッピングされたブロック境界との間のオフセットを導き出し、かつ
    ブロック内のページのクラスタおよびクラスタの一部を、前記導き出されたオフセットに従って記憶し、これによって、クラスタ間の境界が前記ブロックのページ境界に生じるようにするとともに、前記導き出されたオフセットが、前記ブロックにマッピングされた前記記憶されたクラスタおよび前記記憶されたクラスタの一部の論理アドレスの範囲に影響を及ぼすことなく、前記記憶されたクラスタおよび前記記憶されたクラスタの一部のデータをブロック内にどのように配置するのかのみに影響を及ぼすようにするように動作可能であるコントローラと、
    を備えるメモリシステム。
  17. 請求項16記載のメモリシステムにおいて、
    前記メモリシステムは、ホストに取り外し可能に接続されたメモリカード内にカプセル化されているメモリシステム。
  18. 請求項16記載のメモリシステムにおいて、
    前記ブロックにマッピングされた前記クラスタの一部が第1のクラスタの第1部分と第2のクラスタの第2部分とであり、前記第1部分および前記第2部分が前記ブロックのページ内に同時に記憶されるメモリシステム。
  19. 請求項18記載のメモリシステムにおいて、
    前記ブロックにマッピングされた前記クラスタおよび前記クラスタの一部が、最初の論理アドレスから最後の論理アドレスまで伸びる逐次データであり、前記第1部分が前記最初の論理アドレスを含み、前記第2部分が前記最後の論理アドレスを含むメモリシステム。
  20. 請求項18記載のメモリシステムにおいて、
    前記コントローラは、前記ブロックに対する前記オフセットを指示する値を記憶するようにさらに動作可能であるメモリシステム。
JP2007546717A 2004-12-16 2005-11-30 クラスタ自動位置合わせ Expired - Fee Related JP4960882B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/015,211 2004-12-16
US11/015,211 US7395404B2 (en) 2004-12-16 2004-12-16 Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
PCT/US2005/043285 WO2006065536A1 (en) 2004-12-16 2005-11-30 Cluster auto-alignment

Publications (2)

Publication Number Publication Date
JP2008524703A JP2008524703A (ja) 2008-07-10
JP4960882B2 true JP4960882B2 (ja) 2012-06-27

Family

ID=36123113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007546717A Expired - Fee Related JP4960882B2 (ja) 2004-12-16 2005-11-30 クラスタ自動位置合わせ

Country Status (7)

Country Link
US (1) US7395404B2 (ja)
EP (1) EP1828881B1 (ja)
JP (1) JP4960882B2 (ja)
KR (1) KR20070102485A (ja)
CN (1) CN101099125B (ja)
TW (1) TWI386801B (ja)
WO (1) WO2006065536A1 (ja)

Families Citing this family (125)

* 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
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US20080235480A1 (en) * 2007-03-21 2008-09-25 Shai Traister Systems for storing memory operations in a queue
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
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
US7818493B2 (en) * 2007-09-07 2010-10-19 Sandisk Corporation Adaptive block list management
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
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8751755B2 (en) * 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
KR101465789B1 (ko) * 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI390548B (zh) * 2008-07-03 2013-03-21 Silicon Motion Inc 資料儲存方法及其儲存裝置
US20100037102A1 (en) * 2008-08-08 2010-02-11 Seagate Technology Llc Fault-tolerant non-volatile buddy memory structure
US8650355B2 (en) * 2008-10-15 2014-02-11 Seagate Technology Llc Non-volatile resistive sense memory on-chip cache
JP5338260B2 (ja) * 2008-10-31 2013-11-13 アイシン・エィ・ダブリュ株式会社 データリスト読み書き装置及びその方法
US7830700B2 (en) * 2008-11-12 2010-11-09 Seagate Technology Llc Resistive sense memory array with partial block update capability
US8392687B2 (en) 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US8782325B1 (en) * 2009-02-09 2014-07-15 Marvell International Ltd. Data type based alignment of data written to non-volatile memory
US8489801B2 (en) * 2009-03-04 2013-07-16 Henry F. Huang Non-volatile memory with hybrid index tag array
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
KR101615659B1 (ko) 2009-07-16 2016-05-12 삼성전자주식회사 스크래치 패드 메모리 관리 장치 및 방법
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
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
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
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
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
CN102243611B (zh) * 2010-05-11 2015-06-17 深圳市朗科科技股份有限公司 数据存储方法和系统
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
US9280477B2 (en) 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
US9323670B2 (en) * 2010-12-13 2016-04-26 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
JP2012173778A (ja) * 2011-02-17 2012-09-10 Sony Corp 管理装置、および管理方法
US8909894B1 (en) * 2011-03-16 2014-12-09 Tintri Inc. Automatically aligning virtual blocks to physical blocks
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
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
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
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
US8924631B2 (en) * 2011-09-15 2014-12-30 Sandisk Technologies Inc. Method and system for random write unalignment handling
KR20130084846A (ko) 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
US9063838B1 (en) * 2012-01-23 2015-06-23 Western Digital Technologies, Inc. Data storage device shifting data chunks of alignment zone relative to sector boundaries
US8996839B1 (en) 2012-01-23 2015-03-31 Western Digital Technologies, Inc. Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands
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
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
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
TWI479315B (zh) * 2012-07-03 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN103544118B (zh) * 2012-07-17 2016-09-14 群联电子股份有限公司 存储器储存装置、其存储器控制器与数据写入方法
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
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
CN102929790A (zh) * 2012-10-15 2013-02-13 株洲南车时代电气股份有限公司 一种数据存储系统和方法
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
TWI514141B (zh) * 2013-08-08 2015-12-21 Phison Electronics Corp 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置
CN104375945B (zh) * 2013-08-15 2018-03-13 群联电子股份有限公司 存储器地址管理方法、存储器控制器与存储器储存装置
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
KR102105362B1 (ko) 2013-09-17 2020-04-28 삼성전자주식회사 집적 회로 및 이를 포함하는 이미지 센서
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
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
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
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
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
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
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
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
US10565101B2 (en) 2016-01-29 2020-02-18 Hewlett Packard Enterprise Development Lp Storing data in a storage device
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
CN108334276B (zh) * 2017-01-20 2021-01-29 宇瞻科技股份有限公司 快闪记忆体的动态对齐数据方法
TWI612421B (zh) * 2017-01-20 2018-01-21 宇瞻科技股份有限公司 快閃記憶體的動態對齊資料方法
KR20190061942A (ko) * 2017-11-28 2019-06-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10289561B2 (en) * 2017-08-08 2019-05-14 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
CN107704208B (zh) * 2017-10-13 2021-08-10 郑州云海信息技术有限公司 一种元数据的修复方法、装置及介质
US10372603B2 (en) 2017-11-27 2019-08-06 Western Digital Technologies, Inc. Handling of unaligned writes
US10977182B2 (en) * 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
CN109388677B (zh) * 2018-08-23 2022-10-11 顺丰科技有限公司 集群之间数据同步方法、装置、设备及其存储介质
US10909030B2 (en) * 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
US10713163B2 (en) 2018-09-11 2020-07-14 Toshiba Memory Corporation Set aware system data and mapping tables

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5831735B2 (ja) * 1975-10-15 1983-07-08 日本電気株式会社 コウガクテキハンドウタイソウチ
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
JPS6134793A (ja) 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
US4612630A (en) 1984-07-27 1986-09-16 Harris Corporation EEPROM margin testing design
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
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
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
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 ローム株式会社 自己訂正機能を有する半導体記憶装置
EP0477369B1 (en) 1989-06-12 1997-08-13 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
US5132935A (en) 1990-04-16 1992-07-21 Ashmore Jr Benjamin H Erasure of eeprom memory arrays to prevent over-erased cells
US5122985A (en) 1990-04-16 1992-06-16 Giovani Santin Circuit and method for erasing 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
US5504760A (en) 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
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
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
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
JPH065823A (ja) 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
US5550394A (en) 1993-06-18 1996-08-27 Texas Instruments Incorporated Semiconductor memory device and defective memory cell correction circuit
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
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
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 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
JP4173642B2 (ja) * 1999-02-22 2008-10-29 株式会社ルネサステクノロジ メモリカードのデータ書き込み方法
JP2000251483A (ja) 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
WO2000060605A1 (en) 1999-04-01 2000-10-12 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
JP3390408B2 (ja) * 2000-05-29 2003-03-24 エヌイーシーマイクロシステム株式会社 半導体集積回路
JP3942807B2 (ja) 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
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
US20040008335A1 (en) 2001-05-23 2004-01-15 Mark Hayes Novel method and apparatus for flow monitoring in mirco-fluidic devices
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
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6560152B1 (en) 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
TWI248609B (en) * 2002-10-18 2006-02-01 Samsung Electronics Co Ltd Method and apparatus for managing disc defects using updateable dam, and disc thereof
KR101122511B1 (ko) * 2002-10-28 2012-03-15 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
US6928511B2 (en) * 2003-03-03 2005-08-09 High Tech Computer, Corp. Method and system for managing virtual memory

Also Published As

Publication number Publication date
JP2008524703A (ja) 2008-07-10
CN101099125A (zh) 2008-01-02
KR20070102485A (ko) 2007-10-18
US7395404B2 (en) 2008-07-01
TWI386801B (zh) 2013-02-21
EP1828881B1 (en) 2012-12-26
US20060136655A1 (en) 2006-06-22
WO2006065536A1 (en) 2006-06-22
TW200632650A (en) 2006-09-16
EP1828881A1 (en) 2007-09-05
CN101099125B (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
JP4960882B2 (ja) クラスタ自動位置合わせ
JP4787266B2 (ja) スクラッチパッドブロック
JP4834676B2 (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
US7433993B2 (en) Adaptive metablocks
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
JP5001011B2 (ja) ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
US6426893B1 (en) Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US7451264B2 (en) Cycle count storage methods
US7467253B2 (en) Cycle count storage systems
KR100896698B1 (ko) 메모리의 페이지 및/또는 블럭의 사이즈와 상이한사이즈를 구비하는 데이터 섹터를 갖는 비-휘발성 메모리시스템을 작동시키는 방법
US7441067B2 (en) Cyclic flash memory wear leveling
US20050144363A1 (en) Data boundary management
JP2006515086A (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: 20110414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

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

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

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

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees