JP2011508358A - 摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法 - Google Patents

摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法 Download PDF

Info

Publication number
JP2011508358A
JP2011508358A JP2010540550A JP2010540550A JP2011508358A JP 2011508358 A JP2011508358 A JP 2011508358A JP 2010540550 A JP2010540550 A JP 2010540550A JP 2010540550 A JP2010540550 A JP 2010540550A JP 2011508358 A JP2011508358 A JP 2011508358A
Authority
JP
Japan
Prior art keywords
page
data
programming
read
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010540550A
Other languages
English (en)
Inventor
ブンソー キム,
ヒュンモ チャン,
ハンモク パク,
Original Assignee
インディリンクス カンパニー., リミテッド.
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 インディリンクス カンパニー., リミテッド. filed Critical インディリンクス カンパニー., リミテッド.
Publication of JP2011508358A publication Critical patent/JP2011508358A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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/26Sensing or reading circuits; Data output 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
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • 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
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • 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
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】 フラッシュメモリの摩耗度を平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法を提供する。
【解決手段】 メモリセルアレイと、データページ内の「1」および「0」の個数に基づいて前記データページを反転または反転しないことによって、プログラミングページを生成する反転決定部と、前記生成されたプログラミングページを前記メモリセルアレイに格納するプログラミング部と、前記メモリセルアレイに格納されたプログラミングページを読み出し、前記読み出したプログラミングページのエラー有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部を含むことを特徴とし、これによってメモリセルの摩耗度の平準化が可能になる。
【選択図】 図4

Description

本発明はフラッシュメモリ装置に関し、特に、フラッシュメモリの摩耗度を平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法に関する。
フラッシュメモリは、集積度が高くて衝撃に強く、低電力で動作可能な不揮発性メモリ素子であり、携帯端末や組み込みシステム(embedded system)などのみならずPCやサーバで使われるハードディスクに替わるストレージ媒体として近年注目を浴びている。
フラッシュメモリは、ハードディスクのような一般的なブロック装置とは異なり、一度記憶されたデータを新しい値で更新するためには、まずは該当の位置を消去する動作が必要となる。
すなわち、フラッシュメモリの書き込み動作は、すべてのメモリセルが「1」の値に初期化された状態で、必要なメモリセルを「0」の値に変更することからなる。このように、記憶されたデータを新しい値に更新するためには、該当位置のすべてのセルを「1」の値に初期化した後に、再び、書き込み動作が行われる。
このとき、読み出し動作および書き込み動作は、ページ単位で行われる。フラッシュメモリのページとは、物理的に連続したアドレスを有するバイト(byte)のことを指す。消去動作は、読み出し動作および書き込み動作とは異なり、ブロック単位で行われる。フラッシュメモリのブロックとは、物理的に連続した複数個のページのことを指す。現在の実施形態では、ページの大きさは512B〜4KBであり、ブロックの大きさは16KB〜512KBである。
現在の実施形態では、例えば、フラッシュメモリのページは主領域と補助領域に分けられており、主領域にはデータが記憶され、補助領域には、主領域に記憶されたデータと関連する情報と、ページに関連する情報が記憶される。補助領域に記憶される情報をメタ情報という。メタ情報としては、例えば、巡回冗長検査(CRC:Cyclic Redundancy Check)情報、またはエラー訂正コード(ECC:Error Correction Codes)情報などがある。CRCまたはECCは、書き込み動作や読み出し動作の過程におけるエラー有無を検出したり、ページの物理的な損傷の有無を判定したりするために用いることができる。
フラッシュメモリの読み出し、書き込み、消去動作は、すべてデータを記憶するメモリセルに電気的なストレスを加えて微細な摩耗を引き起こす。このため、長時間使用することにより、メモリセルが正常に「0」および「1」を区別することができない状態に至ることになる。
書き込み動作および消去動作が引き起こす摩耗の大きさは、読み出し動作が引き起こす摩耗の大きさよりも極めて大きいため、フラッシュメモリの寿命を延ばすためには、可能な限り1つのメモリセルで発生する書き込みおよび消去動作の回数を減らす摩耗度の平準化を必要とする。
摩耗度を平準化するための従来の発明としては、消去動作の単位であるブロックレベルにおける摩耗度の平準化方法である。すなわち、消去動作の単位であるブロックごとに消去動作の回数を記録して、消去動作の回数が一定の数以下に維持されるようにフラッシュ
メモリを管理する方法が提案されている。このような従来のフラッシュメモリの摩耗度の平準化方法は、1つのブロックに属するすべてのメモリセルが同一のレベルの摩耗度を有すると仮定して、メモリセルのレベルにおいてそれぞれの摩耗度の差を考慮することができなかった。
本発明は、新しいプログラミング技法を用いることによって、メモリセルの寿命を延ばすことができる装置および方法を提供することを目的とする。
また、本発明は、新しいデータ検出技法を用いることによって、メモリセルのレベルで摩耗度を平準化することができる装置および方法を提供することを目的とする。
上述するような本発明の目的を達成するために、発明されたものであって、本発明のメモリ装置は、メモリセルアレイと、
データページ内の「1」および「0」の個数に基づいて、前記データページを反転するか否かによって、プログラミングページを生成する反転決定部と、
前記生成されたプログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、
前記メモリセルアレイに記憶されたプログラミングページを読み出し、前記読み出したプログラミングページのエラーの有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部と、
を含むことを特徴とする。
また、本発明のメモリ装置は、メモリセルアレイと、
データページを複数のデータサブページに分割するページ分割部と、
前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページを反転するか否かによって、前記各データサブページに対応する各プログラミングページを生成する反転決定部と、
前記生成された各プログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、
を含むことを特徴とする。
また、本発明のメモリプログラミング方法は、データページ内の「1」および「0」の個数に基づいて、前記データページの反転の有無を決定するステップと、
前記決定されたデータページの反転の有無に応じて、前記データページからプログラミングページを生成するステップと、
前記生成されたプログラミングページを、メモリセルアレイに記憶するステップと、
前記メモリセルアレイに記憶されたプログラミングページを読み出すステップと、
前記読み出したプログラミングページのエラーの有無に応じて、前記読み出したプログラミングページの反転の有無を決定するステップと、
前記決定された読み出したプログラミングページの反転の有無に応じて、前記読み出したプログラミングページからデータページを復元するステップと、
を含むことを特徴とする。
また、本発明のメモリプログラミング方法は、データページを複数のデータサブページに分割するステップと、
前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページの反転の有無を決定するステップと、
前記決定された各データサブページの反転の有無に応じて、前記各データサブページか
ら各データサブページに対応する各プログラミングページを生成するステップと、
前記生成された各プログラミングページを、メモリセルアレイに記憶するステップと、を含むことを特徴とする。
図1は、本発明の一実施形態におけるフラッシュメモリ装置を示す。 図2は、本発明の別の実施形態におけるフラッシュメモリ装置を示す。 図3は、本発明の別の実施形態におけるメモリセルアレイを示す。 図4は、本発明の別の実施形態におけるフラッシュメモリ装置で実行されるメモリプログラミング方法を示す。 図5は、図4のフラッシュメモリ装置で実行されるメモリプログラミング方法を示す動作フローチャートである。 図6は、本発明のさらなる別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。 図7は、本発明の別の実施形態におけるフラッシュメモリ装置で実行されるメモリプログラミング方法を示す。 図8は、本発明の別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。
以下、本発明にかかる好適な実施形態について図面を参照して詳細に説明するが、本発明が実施形態によって制限されたり限定されたりすることはない。各図面に記された同一の参照符号は同一の部材を示す。
消去動作の対象となるブロック内のすべてのフラッシュメモリセルに同一程度の摩耗が生じることはない。消去動作は、該当ブロック内のすべてのメモリセルを「1」の値に初期化する動作である。消去動作が実行されるブロック内には「0」から「1」に値が変更されるメモリセルと、値の変更なく「1」の状態で残っているメモリセルが存在する。この場合、書き込み動作によってまず「1」から「0」に変更され、消去動作によって再び「0」から「1」に変更されたメモリセルは、「1」の状態で残っていたメモリセルに比べて生じる摩耗の程度は極めて大きい。
したがって、書き込み動作および消去動作が繰り返される状況では、「1」の状態で残っているメモリセルの個数が多いほど該当のブロックの摩耗度は低くなり、その結果、フラッシュメモリ装置全体として寿命が延びることになる。
本発明のフラッシュメモリ装置は、各メモリセルに対して摩耗度を最小化する方法を提供し、フラッシュメモリ全体として寿命を延ばすことができる。
本発明のフラッシュメモリ装置は、書き込み動作の対象となるページ内に「0」の値を有するビットの個数が、「1」の値を有するビットの個数よりも多い場合、「0」および「1」の値を反転して記憶することによって、「0」の値に変更されるメモリセルの個数を最小化することができる。
図1は、本発明の一実施形態におけるフラッシュメモリ装置100を示す。
図1に示すように、フラッシュメモリ装置100は、メモリセルアレイ110、プログラミング部120、反転決定部130、およびデータ判定部140を含んでいる。
メモリセルアレイ110は、ページ111を含んでもよい。
プログラミング部120、反転決定部130、およびデータ判定部140のそれぞれは、フラッシュメモリ装置100の周辺回路に含まれていてもよく、また、フラッシュメモリ装置100の所定のコンピュータシステムのコントローラに含まれていてもよい。
反転決定部130は、データページ内の「1」および「0」の個数に基づいて、データページを反転するか否かによって、プログラミングページを生成する。
本明細書において、フラッシュメモリ装置100のコントローラ(図示せず)で、ハンドリングするデータとして同時にプログラムされる単位をデータページという。また、メモリアレイ110のページ111に物理的にプログラムされるデータとして同時にプログラムされる単位をプログラミングページという。
本明細書で用いられる「データページ」および「プログラミングページ」は、前述するような機能と用途に特定されるべきであり、名称によって権利範囲が制限されることはない。
反転決定部130は、データページ内の「0」が「1」よりも多ければ、データページを反転してプログラミングページを生成してもよい。一方で、反転決定部130は、データページ内の「0」が「1」よりも少なければ、データページを反転せずにプログラミングページを生成してもよい。
本明細書において詳細に記載されないが、メモリセルアレイ110に物理的にプログラムされる過程が「0」から「1」に変化する過程であってもよい。このような場合、反転決定部130は、データページ内の「1」が「0」よりも多ければ、データページを反転してプログラミングページを生成してもよい。
本発明のフラッシュメモリ装置100は、メモリセルの摩耗度を減らすために発明されたものであって、物理的なプログラム過程に対応して反転決定部130の動作を変更して適用することは、当業者であれば自明である。
プログラミング部120は、生成されたプログラミングページをメモリセルアレイ110内のページ111に記憶する。
このとき、プログラミング部120のデータ記憶過程は、ページ111内の各メモリセルに高電圧を一定時間印加する過程であってもよい。このような高電圧の印加過程は、各メモリセルにストレスを加えることになり、各メモリセルに物理的な損傷が生じることになる。
プログラミング部120のデータ記憶過程は、ページ111内の各メモリセルの閾値電圧を変化させる過程であってもよい。このようなデータの記憶過程は、各メモリセルの摩耗度を増加させる恐れがあるため、閾値電圧が変化するメモリセルの数が減少する方向にデータの格納過程を調整することが好ましい。
本実施形態の反転決定部130は、プログラミング部120のデータの記憶過程において、ページ111内のメモリセルの中で閾値電圧が変化するメモリセルの数が、閾値電圧が変化しないメモリセルの数よりも少なくなるようにデータページの反転の有無を決定し
てもよい。
フラッシュメモリ装置100は、このような構成によってページ111内のメモリセルのストレスを減らすことで、メモリセルの摩耗度およびメモリセルに対する物理的な損傷を減らすことができる。
フラッシュメモリ装置100は、反転決定部130がデータページを反転したか否かに関する情報をメモリセルアレイ110に記憶しなくてもよい。
データ判定部140は、メモリセルアレイ110内のページ111に記憶されたプログラミングページを読み出す。データ判定部140は、読み出したプログラミングページのエラー有無に応じて、プログラミングページからデータページを復元して出力する。
データ判定部140は、読み出したプログラミングページにエラーがあれば、読み出したプログラミングページを反転してデータページを復元してもよい。メモリセルアレイ110に、データページとプログラミングページとの関係に関する情報が記憶されていなかった場合、データ判定部140は、データページが反転されないままプログラミングページとして生成されたと仮定し、読み出したプログラミングページに対するエラー検査を行ってもよい。データ判定部140は、読み出したプログラミングページにエラーがあれば、読み出したプログラミングページに対する仮定が間違っていると判断することができる。データ判定部140は、読み出したプログラミングページにエラーがあれば、データページが反転してプログラミングページとして生成されたと仮定し、読み出したプログラミングページを反転してデータページを復元して出力してもよい。
アプリケーションによっては、メモリセルアレイ110に「0」が記憶される頻度が、「1」が記憶される頻度よりも多くなってもよい。この場合、データ判定部140は、データページが反転してプログラミングページとして生成されたと仮定し、読み出したプログラミングページを反転してエラー検査を実行してもよい。
データ判定部140が読み出したプログラミングページに対するエラー検査を実行する方法は、読み出したプログラミングページに含まれたエラー訂正コード(ECC)からエラーを検査したり、読み出したプログラミングページをECC復号化したり、読み出したプログラミングページに含まれたパリティを検査する方法であってもよい。
フラッシュメモリ装置100は、データページの反転の有無に対する別の情報をメモリセルアレイ110に記憶せず、データページの復元過程において、既にデータページに含まれているECCやパリティを用いるため、データの記憶空間に対するオーバーヘッドを減らすことができる。
図2は、本発明の別の実施形態におけるフラッシュメモリ装置200を示す。
図2に示すように、フラッシュメモリ装置200は、メモリセルアレイ210、プログラミング部220、反転決定部230、およびページ分割部240を含む。
メモリセルアレイ210は、ページ211を含んでいてもよい。
プログラミング部220、反転決定部230、およびページ分割部240のそれぞれは、フラッシュメモリ装置200の周辺回路に含まれていてもよく、また、フラッシュメモリ装置200のコントローラに含まれていてもよい。
ページ分割部240は、データページを複数のデータサブページに分割する。
反転決定部230は、各データサブページに対して反転の有無を決定する。反転決定部230は、各データサブページ内の「1」および「0」の個数に基づいて、各データサブ
ページを反転するか否かによって、各データサブページに対応する各プログラミングページを生成する。
図2には、ページ分割部240が1つのデータページを4個のデータサブページに分割する実施形態が示されている。
反転決定部230は、4個の各データサブページに対して反転の有無を決定する。
プログラミング部220は、データサブページが反転してプログラミングページが生成されたか否かに関する反転フラグをメモリセルアレイ210に記憶してもよい。反転フラグは、各データサブページに対して生成されてもよい。プログラミング部220は、ページ211内の補助領域に反転フラグを記憶してもよい。
反転決定部230は、各データサブページに対して反転有無を決定してもよい。反転決定部230は、第1データサブページ内の「0」が「1」よりも多ければ、第1データサブページを反転して第1プログラミングページを生成し、第2データサブページ内の「0」が「1」よりも多くなければ、第2データサブページを反転せずに第2プログラミングページを生成してもよい。
プログラミング部220のデータの記憶過程は、ページ211内の各メモリセルの閾値電圧を変化させる過程であってもよい。このとき、反転決定部230は、プログラミング部220のデータの記憶過程において、ページ211内のメモリセルの中で閾値電圧の変化するメモリセルの数が、閾値電圧の変化しないメモリセルの数よりも少なくなるようにデータページの反転の有無を決定してもよい。
フラッシュメモリ装置200は、データ判定部(図示せず)をさらに含んでもよい。データ判定部は、メモリセルアレイ210内のページ211に記憶された各プログラミングページを反転するか否かによって、各データサブページを復元してもよい。データ判定部は、復元されたデータサブページを結合してデータページを復元してもよい。
フラッシュメモリ装置200は、更なる別の実施形態としてデータ判定部(図示せず)を含んでもよい。データ判定部は、メモリセルアレイ210内のページ211に記憶された各プログラミングページを読み出してもよい。データ判定部は、読み出した各プログラミングページのエラーの有無に応じて、各プログラミングページから各データサブページを復元してもよい。データ判定部は、復元されたデータサブページを結合してデータページを復元してもよい。このとき、フラッシュメモリ装置200は、各データサブページの反転の有無と関連する情報をメモリセルアレイ210に記憶していなくてもよい。データ判定部は、読み出した各プログラミングページに対して反転の有無を決定してもよい。すなわち、第1の読み出したプログラミングページにエラーがあれば、第1の読み出したプログラミングページを反転して第1のデータサブページを生成し、第2の読み出したプログラミングデータにエラーがなければ、第2の読み出したプログラミングページを反転せずに第2のデータサブページを生成してもよい。データ判定部は、読み出した各プログラミングページをECC復号化したり、読み出した各プログラミングページのパリティをチェックしたりしてエラーの有無を判定してもよい。
本発明の更なる別のフラッシュメモリ装置(図示せず)は、ページの補助領域にメタ情報の1つとしてECCまたはパリティを記憶した場合に、領域ごとに反転情報を記憶しなくとも読み出し動作において、ページの反転の有無を判断して正常なデータに復元することができる。
図3は、本発明の別の実施形態におけるメモリセルアレイを示す。
図3に示すように、メモリセルアレイは(N+1)個のブロックを含む。
メモリセルアレイは、ブロック(0)310、ブロック(1)320、ないし、ブロック(N)340のブロックを含む。各ブロックは、消去動作が実行される単位である。
各ブロックはM個のページを含む。
図3には、ページ(0)331、ページ(1)332、ページ(2)333、ページ(3)334などが示されている。
各ページは、プログラム動作が実行される単位である。
1つのページに記憶されるデータが更新される場合には、ページが含まれたブロック全体が消去されて初期化された後、ページに更新されたデータが記憶される。
図4は、本発明のフラッシュメモリ装置100で実行されるメモリプログラミング方法を示す。
図4に示すように、初期化されたブロック(K)410は、4個のページを含む。説明を簡単にするために、図4に示すメモリプログラミング方法では、ブロックが既に初期化された状態であると仮定する。
コントローラによって、フラッシュメモリ装置100に伝送されたデータページは、第1のデータページ431および第2のデータページ441である。第1のデータページおよび第2のデータページは、それぞれ初期化されたブロック(K)410の第2のページおよび第3のページに対応する。
フラッシュメモリ装置100は、第1のデータページ431内の「0」と「1」の個数を比較する。説明を簡単にするために、第1のデータページ431は8ビットであると仮定する。第1のデータページ431内には「0」が6個あり、「1」が2個あるため、フラッシュメモリ装置は、第1のデータページ431を反転して第1のプログラミングページ432を生成する。
フラッシュメモリ装置100は、第2のデータページ441内の「0」と「1」の個数を比較する。第2のデータページ441内には「0」が2個あり、「1」が6個あるため、フラッシュメモリ装置は、第2のデータページ441を反転せずに第2のプログラミングページ442を生成する。
フラッシュメモリ装置100は、生成された第1のプログラミングページ432をブロック(K)420内の第2のページ422に記憶し、第2のプログラミングページ442を第3のページ423に記憶する。
ブロック(K)420内の第1のページ421および第4のページ424は、初期化された状態のまま維持される。
図5は、図4のフラッシュメモリ装置で実行されるメモリプログラミング方法を示す動作フローチャートである。
図5に示すように、メモリプログラミング方法は、データページ内の「1」および「0」の個数を計数する(S510)。
メモリプログラミング方法は、決定された反転の有無に応じてデータページからプログラミングページを生成してもよい。
データページ内の「0」が「1」よりも多ければ、メモリプログラミング方法は「0」と「1」を反転する(S520)。このとき、メモリプログラミング方法は「0」と「1
」が反転したデータをプログラミングページで生成する。
データページ内の「0」が「1」よりも多くなければ、メモリプログラミング方法はデータページをプログラミングページとして生成してもよい。
メモリプログラミング方法は、生成されたプログラミングページをメモリセルアレイに記憶する(S530)。
図6は、本発明のさらなる別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。
図6に示すように、メモリ読み出し方法はメモリセルアレイに記憶されたプログラミングページを読み出す(S610)。
メモリ読み出し方法は、読み出したプログラミングページにエラーが検出されたか否かを判定する(S620)。
メモリ読み出し方法は、読み出したプログラミングページのエラー有無に応じて、読み出したプログラミングページの反転の有無を決定してもよい。
メモリ読み出し方法は、決定された反転の有無に応じて、読み出したプログラミングページからデータページを復元してもよい。
読み出したプログラミングページにエラーが検出されれば、メモリ読み出し方法は、読み出したプログラミングページの「0」と「1」を反転する(S630)。
メモリ読み出し方法は、反転したプログラミングページにエラーが検出されたか否かを判定する(S640)。
反転したプログラミングページにエラーが検出されれば、メモリ読み出し方法は、読み出したプログラミングページをエラーとして決定する。このとき、メモリ読み出し方法は、プログラミングページを再び読み出してもよい。
反転したプログラミングページにエラーが検出されなければ、メモリ読み出し方法は、反転したプログラミングページをデータページに復元する。
図7は、本発明のフラッシュメモリ装置200で実行されるメモリプログラミング方法を示す。
図7に示すように、初期化されたブロック(K)710は、4個のページを含む。説明を簡単にするために、図7に示すメモリプログラミング方法では、ブロックが既に初期化された状態であると仮定する。
コントローラによってフラッシュメモリ装置200に伝送されたデータページは、初期化されたブロック(K)710の第2のページに対応する。
フラッシュメモリ装置200は、データページを2つのサブページに分割する。
分割された第1のデータサブページ731は、1つの「0」と3つの「1」を含む。フラッシュメモリ装置200は、第1のデータサブページ731を反転させずに、第1のプログラミングサブページ733を生成する。
分割された第2のデータサブページ732は、3つの「0」と1つの「1」を含む。フラッシュメモリ装置200は、第2のデータサブページ732を反転し、第2のプログラミングサブページ734を生成する。
フラッシュメモリ装置200は、生成された第1のプログラミングサブページ733および第2のプログラミングサブページ734をブロック(K)720内の第2のページ722に記憶する。
ブロック(K)720内の第1のページ721、第3のページ723、および第4のページ724は、初期化された状態のまま維持される。
図8は、フラッシュメモリ装置200で実行されるメモリ読み出し方法を示す動作フローチャートである。
図8に示すように、メモリ読み出し方法は、メモリセルアレイ210からプログラミングページを読み出す(S810)。
メモリ読み出し方法は、プログラミングページの分割領域の個数を計数する(S820)。このとき、プログラミングページの分割に関する情報は、メタ情報としてプログラミングページの補助領域に含まれていてもよい。
メモリ読み出し方法は、読み出したプログラミングページにエラーが検出されるか否かを判定する(S830)。
メモリ読み出し方法は、エラーが検出されなければ、読み出したプログラミングページをデータページに復元して、コントローラに出力してもよい。
メモリ読み出し方法は、エラーが検出されれば、読み出したプログラミングページに対して検査しなかった分割領域の反転の組み合わせが存在するか否かを探索する(S840)。
メモリ読み出し方法は、探索された反転の組み合わせに応じて、分割領域の「0」と「1」を反転する(S850)。
メモリ読み出し方法は、反転したプログラミングページにエラーが検出されるか否かを再び判定する(S830)。
メモリ読み出し方法は、ステップS840の探索の結果、反転の組み合わせが存在しなければ、読み出したプログラミングページにエラーが含まれていると最終的に決定してもよい。
メモリ読み出し方法は、分割領域の個数がN=2個であるとき、kの値を補助領域のメタ情報として記憶したり、予め決定した値を用いたりしてもよい。メモリ読み出し方法は、ECCやパリティでページ検査を行ってもよく、検査の結果、エラーがなければ反転した領域がないものと決定してもよい。
N個の領域に分割された場合、ECCやパリティを用いたエラー検査は、最大2回繰り返してもよく、ハードウェア回路を用いる並列処理が可能である。
再度、図2によれば、ページ分割部240は、物理的に記憶される「0」の個数を最小化するために、任意の個数や任意の大きさにデータページを分割してもよい。このとき、分割および反転の情報は、ページ211内の補助領域に記憶してもよい。記憶された分割および反転の情報は、読み出し動作でデータページを復元するために用いてもよい。
ページ分割部240は、データページを4個のデータサブページに分割する場合に、第1のデータサブページをaビット、第2のデータサブページをbビット、第3のデータサブページをcビット、第4のデータサブページをdビットとなるように分割してもよい。
このとき、プログラミング部220は、ページ211に4個のデータサブページに対す
る4個の分割情報を記憶してもよい。各分割情報は、分割されたデータサブページの大きさ(aビット、bビット、cビット、dビット)を含んでもよい。プログラミング部220は、4個の分割情報とともに、各データサブページの反転の有無をページ211に記憶してもよい。
記憶される分割および反転の情報をメタ情報とすれば、メタ情報は、各データサブページの大きさ(ビット数)および反転の有無を示すため、xビットでサブページの大きさを表すことができれば、メタ情報は(x+1)ビットが必要となる。
分割されるデータサブページの数が多くなるほど、メタ情報の大きさが大きくなり、データページの復元のための過程が複雑になる。ページ分割部240は、メタ情報の大きさおよび復元過程の複雑さに基づいて、最適化された分割の数を決定してもよい。
本発明におけるメモリプログラミング方法およびメモリ読み出し方法は、多様なコンピュータ手段により行われるプログラム命令によって実現され、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。記録媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体としては、例えば、ハードディスク、フレキシブルディスク、磁気テープなどの磁気媒体、CD−ROM、DVDなどの光記録媒体、フロプティカルディスクなどの磁気−光媒体、およびROM(read-only memory)、RAM(random access memory)、フラッシュメモリなどのようなプログラム命令を保存して実行するように構成されたハードウェア装置が含まれる。プログラム命令としては、例えば、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードも含まれる。上述したハードウェア装置は、本実施例における動作を行うため1つ以上のソフトウェアモジュールとして作動するように構成され、その逆も同様である。
本実施例におけるフラッシュメモリ装置および/またはメモリコントローラは、多様な形態のパッケージを用いて実現することができる。例えば、本実施例におけるフラッシュメモリ装置および/またはメモリコントローラは、PoP(Package on Packages)、BGA(Ball Grid Arrays)、CSP(Chip Scale Packages)、PLCC(Plastic Leaded Chip Carrier)、PDIP(Plastic Dual In-Line Package)、ダイインワッフルパック(Die in Waffle Pack)、ダイインウェハフォーム(Die in Wafer Form)、COB(Chip On Board)、CERDIP(Ceramic Dual In-Line Package)、MQFP(Plastic Metric Quad Flat Pack)、QFP(Quad Flatpack)、SOIC(Small Outline Integrated Circuit)、SSOP(Shrink Small Outline Package)、TSOP(Thin Small Outline)、TQFP(Thin Quad Flatpack)、SIP(System In Package)、MCP(Multi Chip Package)、WFP(Wafer-level Fabricated Package)、WSP(Wafer-Level Processed Stack Package)などのようなパッケージを用いて実現してもよい。
フラッシュメモリ装置および/またはメモリコントローラは、メモリーカードを構成してもよい。このような場合、メモリコントローラは、USB、MMC(Multi Media Card)、PCI Express、SATA(シリアルATA)、PATA(パラレルATA)、SCSI、ESDI(Enhanced Small Device Interface)、IDEなどのような多様なインターフェースプロトコルの中のいずれかを用いて外部装置(例えば、ホスト)と通信するように構成してもよい。
フラッシュメモリ装置は、電力が遮断されても記憶されたデータを維持できる不揮発性
メモリ装置である。携帯電話、PDA(personal digital assistant)、デジタルカメラ、ポータブルゲーム機、MP3プレーヤーなどのモバイル装置の使用増加に応じてフラッシュメモリ装置は、データストレージとしてだけでなくコードストレージとしてより広く用いられることになる。フラッシュメモリ装置は、さらに、高精細度テレビジョン放送(HDTV:high definition television)、DVD、ルーター、グローバル・ポジショニング・システム(GPS:Global Positioning System)などのホームアプリケーションに用いられてもよい。
本実施例におけるコンピュータシステムは、バスに電気的に接続されたマイクロプロセッサ、ユーザーインターフェース、ベースバンドチップセットなどのモデム、メモリコントローラ、フラッシュメモリ装置を含む。フラッシュメモリ装置には、マイクロプロセッサによって処理された、もしくは、処理されるNビットデータ(Nは1またはそれよりも大きい整数)がメモリコントローラに記憶される。本実施例におけるコンピュータシステムがモバイル装置の場合、コンピュータシステムの動作電圧を供給するためのバッテリーが追加されてもよい。
本実施例におけるコンピュータシステムには、応用チップセット、カメライメージプロセッサ(CIP:Camera Image Processor)、モバイルDRAM(mobile Dynamic Random Access Memory)などがさらに含まれることは、当業者にとって自明である。メモリコントローラとフラッシュメモリ装置は、例えば、データを記憶するための不揮発性メモリを用いるSSD(Solid State Drive/Disk)を構成してもよい。
上述したように、本発明の限定された実施形態と図面によって説明したが、本発明は上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、多様な修正および変形が可能である。したがって、本発明の範囲は記載された実施形態に限定されて決めてはならず、特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどによって定めなければならない。

Claims (21)

  1. メモリセルアレイと、
    データページ内の「1」および「0」の個数に基づいて、前記データページを反転するか否かによって、プログラミングページを生成する反転決定部と、
    前記生成されたプログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、
    前記メモリセルアレイに記憶されたプログラミングページを読み出し、前記読み出したプログラミングページのエラーの有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部と、
    を含むことを特徴とするメモリ装置。
  2. 前記反転決定部は、前記データページ内の「0」が「1」よりも多ければ、前記データページを反転してプログラミングページを生成することを特徴とする請求項1に記載のメモリ装置。
  3. 前記反転決定部は、前記プログラミング部がプログラミングページを記憶する間に、前記メモリセルアレイ内で閾値電圧が変化するメモリセルが、閾値電圧が変化しないメモリセルよりも少なくなるように、前記データページの反転の有無を決定することを特徴とする請求項1に記載のメモリ装置。
  4. 前記データ判定部は、前記読み出したプログラミングページにエラーがあれば、前記読み出したプログラミングページを反転して、前記データページを復元することを特徴とする請求項1に記載のメモリ装置。
  5. 前記データ判定部は、前記読み出したプログラミングページを、エラー訂正コード(ECC)復号化、もしくは、パリティチェックすることで、前記エラーの有無を判定することを特徴とする請求項1に記載のメモリ装置。
  6. 前記メモリセルアレイに、前記データページが反転され、前記プログラミングページが生成されたか否かの情報が記憶されていないことを特徴とする請求項1に記載のメモリ装置。
  7. メモリセルアレイと、
    データページを複数のデータサブページに分割するページ分割部と、
    前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページを反転するか否かによって、前記各データサブページに対応する各プログラミングページを生成する反転決定部と、
    前記生成された各プログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、
    を含むことを特徴とするメモリ装置。
  8. 前記プログラミング部は、前記各データサブページの反転の有無に関する反転フラグを前記メモリセルアレイに記憶することを特徴とする請求項7に記載のメモリ装置。
  9. 前記メモリセルアレイに記憶された各プログラミングページおよび反転フラグを読み出し、前記読み出した反転フラグに応じて、前記データページを復元して出力するデータ判定部をさらに含むことを特徴とする請求項8に記載のメモリ装置。
  10. 前記メモリセルアレイに記憶された各プログラミングページを読み出し、前記読み出し
    た各プログラミングページのエラー有無に応じて、前記各プログラミングページから各データサブページを復元し、前記復元された各データサブページを結合してデータページを復元して出力するデータ判定部を含むことを特徴とする請求項7に記載のメモリ装置。
  11. 前記データ判定部は、前記読み出した各プログラミングページにエラーがあれば、前記読み出した各プログラミングページを反転して、前記各データサブページを復元することを特徴とする請求項10に記載のメモリ装置。
  12. 前記データ判定部は、前記読み出した各プログラミングページを、エラー訂正コード(ECC)復号化、もしくは、パリティチェックすることで、前記エラーの有無を判定することを特徴とする請求項10に記載のメモリ装置。
  13. 前記反転決定部は、前記各データサブページ内の「0」が「1」よりも多ければ、前記各データサブページを反転してプログラミングページを生成することを特徴とする請求項7に記載のメモリ装置。
  14. 前記反転決定部は、前記プログラミング部が各プログラミングページを記憶する間に、前記メモリセルアレイ内で閾値電圧が変化するメモリセルが、閾値電圧が変化しないメモリセルよりも少なくなるように、前記各データサブページの反転の有無を決定することを特徴とする請求項7に記載のメモリ装置。
  15. データページ内の「1」および「0」の個数に基づいて、前記データページの反転の有無を決定するステップと、
    前記決定されたデータページの反転の有無に応じて、前記データページからプログラミングページを生成するステップと、
    前記生成されたプログラミングページを、メモリセルアレイに記憶するステップと、
    前記メモリセルアレイに記憶されたプログラミングページを読み出すステップと、
    前記読み出したプログラミングページのエラーの有無に応じて、前記読み出したプログラミングページの反転の有無を決定するステップと、
    前記決定された読み出したプログラミングページの反転の有無に応じて、前記読み出したプログラミングページからデータページを復元するステップと、
    を含むことを特徴とするメモリプログラミング方法。
  16. 前記データページからプログラミングページを生成するステップにおいて、前記データページ内の「0」が「1」よりも多ければ、前記データページを反転するように決定することを特徴とする請求項15に記載のメモリプログラミング方法。
  17. 前記読み出したプログラミングページの反転の有無を決定するステップにおいて、前記読み出したプログラミングページにエラーがあれば、前記読み出したプログラミングページを反転するように決定することを特徴とする請求項15に記載のメモリプログラミング方法。
  18. データページを複数のデータサブページに分割するステップと、
    前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページの反転の有無を決定するステップと、
    前記決定された各データサブページの反転の有無に応じて、前記各データサブページから各データサブページに対応する各プログラミングページを生成するステップと、
    前記生成された各プログラミングページを、メモリセルアレイに記憶するステップと、を含むことを特徴とするメモリプログラミング方法。
  19. 前記各データサブページの反転の有無に関する反転フラグを、前記メモリセルアレイに記憶するステップと、
    前記メモリセルアレイに記憶された各プログラミングページおよび反転フラグを読み出すステップと、
    前記読み出した反転フラグに応じて、前記読み出した各プログラミングページを反転するか否かによって、前記データサブページを復元するステップと、
    前記復元されたデータサブページを結合してデータページを復元するステップと、
    をさらに含むことを特徴とする請求項18に記載のメモリプログラミング方法。
  20. 前記メモリセルアレイに記憶された各プログラミングページを読み出すステップと、
    前記読み出した各プログラミングページのエラーの有無に応じて、前記読み出した各プログラミングページの反転の有無を決定するステップと、
    前記決定された読み出した各プログラミングページの反転の有無に応じて、前記読み出した各プログラミングページから各データサブページを復元するステップと、
    前記復元されたデータサブページを結合してデータページを復元するステップと、
    を含むことを特徴とする請求項18に記載のメモリプログラミング方法。
  21. 請求項15から20のいずれかに記載の方法を実行するためのプログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2010540550A 2007-12-27 2008-08-25 摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法 Pending JP2011508358A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070139108A KR100857252B1 (ko) 2007-12-27 2007-12-27 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
PCT/KR2008/004965 WO2009084797A1 (en) 2007-12-27 2008-08-25 Flash memory device and flash memory programming method equalizing wear-level

Publications (1)

Publication Number Publication Date
JP2011508358A true JP2011508358A (ja) 2011-03-10

Family

ID=40022653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010540550A Pending JP2011508358A (ja) 2007-12-27 2008-08-25 摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法

Country Status (6)

Country Link
US (1) US8756464B2 (ja)
EP (1) EP2232501A4 (ja)
JP (1) JP2011508358A (ja)
KR (1) KR100857252B1 (ja)
CN (1) CN101999148A (ja)
WO (1) WO2009084797A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169034A (ja) * 2007-09-07 2012-09-06 Sandisk Corp ページ内・ページ間オンチップデータ擬似ランダム化のための不揮発性メモリおよび方法
WO2017018008A1 (ja) * 2015-07-24 2017-02-02 ソニー株式会社 符号化装置、メモリコントローラ、通信システムおよび符号化方法
US10529417B2 (en) 2016-09-09 2020-01-07 Toshiba Memory Corporation Storage device that inverts bits of data written into a nonvolatile memory thereof
US10719395B2 (en) 2018-03-22 2020-07-21 Toshiba Memory Corporation Memory system

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327062B2 (en) * 2008-12-09 2012-12-04 Infineon Technologies Ag Memory circuit and method for programming in parallel a number of bits within data blocks
CN102201261B (zh) * 2010-03-22 2015-03-04 旺宏电子股份有限公司 一种多阶单元半导体存储器编程装置及编程方法
CN101783165A (zh) * 2010-03-26 2010-07-21 上海宏力半导体制造有限公司 一种半导体存储器、半导体存储器系统及其对应编程方法
US9170933B2 (en) * 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
US8749565B2 (en) * 2010-11-19 2014-06-10 Apple Inc. Error check-only mode
US9164892B2 (en) 2012-07-30 2015-10-20 Empire Technology Development Llc Writing data to solid state drives
US9292428B2 (en) * 2012-09-05 2016-03-22 Kabushiki Kaisha Toshiba Memory system
CN102903387A (zh) * 2012-09-27 2013-01-30 上海宏力半导体制造有限公司 存储阵列装置及其减小读电流的方法
DE102012022728A1 (de) 2012-11-21 2014-05-22 Unify Gmbh & Co. Kg Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
DE102013211077B4 (de) * 2013-06-13 2015-09-24 Infineon Technologies Ag Verfahren zum Testen eines Speichers und Speichersystem
CN104598330B (zh) * 2013-10-30 2017-10-20 中国航空工业集团公司第六三一研究所 基于双备份的数据保存和校验方法
KR102211220B1 (ko) * 2013-11-12 2021-02-03 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102157875B1 (ko) 2013-12-19 2020-09-22 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
US9171624B2 (en) 2013-12-20 2015-10-27 Apple Inc. Management of data storage in analog memory cells using a non-integer number of bits per cell
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
KR102327076B1 (ko) * 2014-12-18 2021-11-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20160276042A1 (en) * 2015-03-20 2016-09-22 Microchip Technology Incorporated One Time Programmable Memory
US10007573B2 (en) 2015-04-27 2018-06-26 Invensas Corporation Preferred state encoding in non-volatile memories
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
KR20180087496A (ko) * 2017-01-23 2018-08-02 에스케이하이닉스 주식회사 메모리 시스템
CN107102820B (zh) * 2017-04-17 2018-07-06 北京得瑞领新科技有限公司 一种nand闪存设备的数据处理方法及装置
US10691354B1 (en) 2018-01-31 2020-06-23 EMC IP Holding Company LLC Method and system of disk access pattern selection for content based storage RAID system
JP2020047352A (ja) * 2018-09-20 2020-03-26 キオクシア株式会社 半導体記憶装置
EP3834066A4 (en) * 2018-10-26 2022-03-09 Yangtze Memory Technologies Co., Ltd. DATA PROCESSING METHOD FOR MEMORY AND ASSOCIATED DATA PROCESSOR
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法
KR20200127516A (ko) * 2019-05-02 2020-11-11 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
FR3100369B1 (fr) * 2019-08-29 2022-03-04 Commissariat Energie Atomique Procédé d’inversion sélective de mots à écrire dans une mémoire et dispositif pour sa mise en œuvre
WO2021050870A1 (en) * 2019-09-13 2021-03-18 Upwing Energy, LLC Flow through magnetic drive system for artificial lift
KR102663497B1 (ko) 2020-06-23 2024-05-03 삼성전자주식회사 저항성 메모리 셀을 포함하는 메모리 장치 및 상기 메모리 장치를 포함하는 전자 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62239500A (ja) * 1986-04-10 1987-10-20 Mitsubishi Electric Corp 半導体不揮発性メモリデ−タ書込み装置
JPS62241199A (ja) * 1986-04-11 1987-10-21 Mitsubishi Electric Corp 半導体記憶装置
JPS63291292A (ja) * 1987-05-21 1988-11-29 Matsushita Electronics Corp 読み出し専用メモリ回路
JPH0745085A (ja) * 1993-07-30 1995-02-14 Tec Corp データ書込装置及びデータ読取装置
JPH08279295A (ja) * 1995-04-05 1996-10-22 Toshiba Corp 不揮発性半導体記憶部を含む記憶システム
JPH08335396A (ja) * 1995-06-08 1996-12-17 Sony Corp 半導体不揮発性記憶装置
JP2005157781A (ja) * 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270979A (en) * 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
JP3941149B2 (ja) 1996-12-03 2007-07-04 ソニー株式会社 半導体不揮発性記憶装置
US6292868B1 (en) * 1996-10-15 2001-09-18 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
JPH10302485A (ja) 1997-04-28 1998-11-13 Hitachi Inf Technol:Kk フラッシュ・メモリを有する情報処理装置
US6889304B2 (en) * 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
JP3905091B2 (ja) * 2004-02-10 2007-04-18 シャープ株式会社 不揮発性半導体記憶装置及びブロック冗長救済方法
US7702875B1 (en) * 2004-11-18 2010-04-20 Sun Microsystems, Inc. System and method for memory compression
KR100643498B1 (ko) * 2005-11-21 2006-11-10 삼성전자주식회사 반도체 메모리에서의 데이터 버스 반전 회로 및 데이터버스 반전 방법
US7636831B1 (en) * 2006-03-31 2009-12-22 Vmware, Inc. Optimization of reverse mappings for immutable guest physical pages of virtual memories in a virtualized computer system
JP4928830B2 (ja) * 2006-05-18 2012-05-09 株式会社東芝 Nand型フラッシュメモリ装置及びメモリデバイス
JP2008077810A (ja) * 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
US7525864B2 (en) * 2007-04-05 2009-04-28 Lsi Corporation Memory data inversion architecture for minimizing power consumption
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7855913B2 (en) * 2008-06-10 2010-12-21 Micron Technology, Inc. Dynamically configurable MLC state assignment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62239500A (ja) * 1986-04-10 1987-10-20 Mitsubishi Electric Corp 半導体不揮発性メモリデ−タ書込み装置
JPS62241199A (ja) * 1986-04-11 1987-10-21 Mitsubishi Electric Corp 半導体記憶装置
JPS63291292A (ja) * 1987-05-21 1988-11-29 Matsushita Electronics Corp 読み出し専用メモリ回路
JPH0745085A (ja) * 1993-07-30 1995-02-14 Tec Corp データ書込装置及びデータ読取装置
JPH08279295A (ja) * 1995-04-05 1996-10-22 Toshiba Corp 不揮発性半導体記憶部を含む記憶システム
JPH08335396A (ja) * 1995-06-08 1996-12-17 Sony Corp 半導体不揮発性記憶装置
JP2005157781A (ja) * 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169034A (ja) * 2007-09-07 2012-09-06 Sandisk Corp ページ内・ページ間オンチップデータ擬似ランダム化のための不揮発性メモリおよび方法
WO2017018008A1 (ja) * 2015-07-24 2017-02-02 ソニー株式会社 符号化装置、メモリコントローラ、通信システムおよび符号化方法
JP2017027440A (ja) * 2015-07-24 2017-02-02 ソニー株式会社 符号化装置、メモリシステム、通信システムおよび符号化方法
US10481971B2 (en) 2015-07-24 2019-11-19 Sony Corporation Encoding device, memory controller, communication system, and encoding method
US10529417B2 (en) 2016-09-09 2020-01-07 Toshiba Memory Corporation Storage device that inverts bits of data written into a nonvolatile memory thereof
US10719395B2 (en) 2018-03-22 2020-07-21 Toshiba Memory Corporation Memory system

Also Published As

Publication number Publication date
KR100857252B1 (ko) 2008-09-05
WO2009084797A1 (en) 2009-07-09
CN101999148A (zh) 2011-03-30
EP2232501A1 (en) 2010-09-29
US8756464B2 (en) 2014-06-17
EP2232501A4 (en) 2011-05-11
US20100287427A1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
JP2011508358A (ja) 摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法
US8732553B2 (en) Memory system and control method thereof
US9195541B2 (en) Controlling nonvolatile memory device and nonvolatile memory system
JP5658128B2 (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US8321757B2 (en) Method and apparatus for error correction
US8671330B2 (en) Storage device, electronic device, and data error correction method
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
KR101343262B1 (ko) 동시 판독 및 기록 메모리 동작을 수행하는 방법 및 장치
EP2277112B1 (en) Using programming-time information to support error correction
KR101631162B1 (ko) 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
US20100125694A1 (en) Memory device and management method of memory device
TWI592869B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR101510120B1 (ko) 메모리 장치 및 메모리 장치의 관리 방법
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
US9003264B1 (en) Systems, methods, and devices for multi-dimensional flash RAID data protection
US11907059B2 (en) Abnormal power loss recovery method, memory control circuit unit, and memory storage device
TW200828330A (en) Allowable bit errors per sector in memory devices
CN112799874B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN111326186B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN109710450B (zh) 数据编码方法、存储器控制电路单元与存储器存储装置
CN108428464B (zh) 解码方法、存储器储存装置及存储器控制电路单元
CN112347010B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI777087B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
KR20090071338A (ko) 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
CN117785545A (zh) 解码方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20111027

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409