[go: up one dir, main page]

JP5815212B2 - データ書き込み方法およびシステム - Google Patents

データ書き込み方法およびシステム Download PDF

Info

Publication number
JP5815212B2
JP5815212B2 JP2010096089A JP2010096089A JP5815212B2 JP 5815212 B2 JP5815212 B2 JP 5815212B2 JP 2010096089 A JP2010096089 A JP 2010096089A JP 2010096089 A JP2010096089 A JP 2010096089A JP 5815212 B2 JP5815212 B2 JP 5815212B2
Authority
JP
Japan
Prior art keywords
data
storage area
flash memory
error correction
correction code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010096089A
Other languages
English (en)
Other versions
JP2011227659A (ja
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 スパンション エルエルシー
Priority to JP2010096089A priority Critical patent/JP5815212B2/ja
Priority to US13/070,186 priority patent/US8635397B2/en
Publication of JP2011227659A publication Critical patent/JP2011227659A/ja
Priority to US14/149,484 priority patent/US9142301B2/en
Priority to US14/860,035 priority patent/US9721665B2/en
Application granted granted Critical
Publication of JP5815212B2 publication Critical patent/JP5815212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、フラッシュメモリへのデータ書き込み方法およびフラッシュメモリを有するシステムに関する。
フラッシュメモリ等の不揮発性半導体メモリでは、データとともにエラー訂正符号を記憶することで、データの信頼性は向上する。データの信頼性は、エラーが訂正されたブロックのデータを他のブロックに書き換えることで、さらに向上する(例えば、特許文献1参照。)。
特開2002−108722号公報
エラー訂正符号は、書き込みデータに基づいてメモリ制御回路等により自動的に生成される。このため、フラッシュメモリにデータを書き込むデータ処理装置は、エラー訂正符号を直接読み出すことはできない。一般に、フラッシュメモリでは、書き込み状態を示す論理0から消去状態を示す論理1への書き換えは実施できない。このため、例えば、データ格納領域が消去されている状態で、エラー訂正符号格納領域に論理0のビットが存在するとき、書き込みデータに基づいて生成されるエラー訂正符号は、エラー訂正符号格納領域に正しく書き込めない 。このとき、フラッシュメモリの製品寿命による問題なのか、エラー訂正符号格納領域が消去されていないことによる問題なのか判断できない。この問題を防止するためには、消去単位であるブロック毎に最初にデータを書き込む前に、消去動作を毎回実施する必要がある。これにより、消去回数が増加し、製品寿命が短くなってしまう。
本発明の目的は、エラー訂正符号格納領域を有するフラッシュメモリにおいて、ブロック消去の回数を削減し、製品寿命を延ばすことである。
本発明のデータ書き込み方法の一形態では、データ格納領域とエラー訂正符号格納領域とを含むフラッシュメモリにデータを書き込むデータ書き込み方法において、初期値をデータ格納領域に書き込み、書き込みフラグに基づいて書き込みが正常に行われたか否かを判定し、書き込みが正常に行われたときはデータ格納領域にデータを書き込み、書き込みが正常に行われていないときはデータ格納領域を含むブロックを消去することを特徴とする。
データの書き込みを行う前に初期値をデータ格納領域に書き込むことで、エラー訂正符号格納領域が初期値か否かを確認できる。ブロックの消去動作を、エラー訂正符号格納領域が初期値でないときのみ実施することで、ブロックの消去の回数を削減でき、製品寿命を延ばすことができる。
一実施形態におけるシステムの例を示している。 別の実施形態におけるシステムの例を示している。 図2に示したフラッシュメモリのブロックのデータ構造の例を示している。 図2に示したフラッシュメモリへのデータの書き込み動作の例を示している。 図4に示した書き込み動作において、フラッシュメモリ制御回路により実施される処理の例を示している。
以下、実施形態を図面を用いて説明する。
図1は、一実施形態におけるシステムSYSの例を示している。システムSYS(ユーザシステム)は、例えば、携帯機器等のマイクロコンピュータシステムの少なくとも一部を構成する。
例えば、システムSYSは、CPU(Central Processing Unit)、フラッシュメモリ制御回路MCNTおよびフラッシュメモリFLASH等の不揮発性半導体メモリを有している。CPUは、例えば、CPUに内蔵されるROMに格納されるプログラムを実行することにより動作し、フラッシュメモリFLASHにデータを読み書きし、あるいはフラッシュメモリFLASHに保持されているデータを消去するために、フラッシュメモリ制御回路MCNTを制御する。フラッシュメモリ制御回路MCNTは、CPUからの指示に基づいて、フラッシュメモリFLASHの読み出し動作、書き込み動作および消去動作を実行するためにフラッシュメモリFLASHを制御する。
フラッシュメモリFLASHは、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAを含む少なくとも1つのブロックBLKと、書き込みフラグWFLGを有している。例えば、書き込みフラグWFLGは、ラッチ回路により形成される。データ格納領域DATAAは、CPUから供給されるデータDATAを保持する。エラー訂正符号格納領域ECCAは、データ格納領域DATAAに書き込まれるデータをエラー訂正するためのエラー訂正符号ECCを保持する。エラー訂正符号ECCは、CPUから供給されるデータDATAに基づいてフラッシュメモリ制御回路MCNTにより生成される。なお、複数組のデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAが、ブロックBLK内に形成されてもよい。また、複数のブロックBLKが形成されてもよい。例えば、ブロックBLKは、消去動作を実行する単位である。書き込みフラグWFLGは、書き込み動作において、データDATAおよびエラー訂正符号ECCがデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAに正常に書き込まれたか否かの情報を保持する。
例えば、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAは、それぞれ32ビットおよび7ビットである。なお、エラー訂正符号格納領域ECCAを1ビットの未使用領域を含む8ビットで形成し、データDATAおよびエラー訂正符号ECCを40ビット(5バイト)を使用して記憶してもよい。例えば、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAは、フローティングゲートを含むメモリトランジスタを有する複数のメモリセルにより形成される。このため、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAに書き込まれたデータDATAおよびエラー訂正符号ECCは、フラッシュメモリFLASHに電源が供給されていないときにも、失われることなく保持される。
例えば、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAは、消去状態で論理1を示し、書き込み動作により論理0に変更される。論理0に設定されたデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAをビット単位で論理1に変更することはできない。このとき、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAに保持されているデータは、一括してブロックBLK単位で論理1に消去する必要がある。
フラッシュメモリ制御回路MCNTは、CPUから書き込み動作の指示を受けたとき、書き込みデータDATAに対応するエラー訂正符号ECCを生成し、書き込みデータDATAおよびエラー訂正符号ECCをフラッシュメモリFLASHに書き込む。書き込み動作は、データ格納領域DATAAおよびエラー訂正符号格納領域ECCAの所定のビットを論理1から論理0に変更する動作である。 フラッシュメモリFLASHは、書き込みデータDATAおよびエラー訂正符号ECCをデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAに正常に書き込めたとき、正常を示す値に書き込みフラグWFLGを設定する。フラッシュメモリFLASHは、書き込みデータDATAおよびエラー訂正符号ECCをデータ格納領域DATAAまたはエラー訂正符号格納領域ECCAに書き込めなかったとき、異常を示す値に書き込みフラグWFLGを設定する。
書き込み動作が正常に実施できたか否かは、例えば、書き込み動作時にフラッシュメモリFLASH内で自動的に実施されるベリファイ動作により判定される。書き込み動作では、メモリセルを論理0にプログラムするプログラム動作と、メモリセルが論理0に設定されたことを確認するベリファイ動作が順に実施される。プログラム動作とベリファイ動作が所定回数(少なくとも1回)実施された後、最後のベリファイ動作で論理0が確認できないとき、書き込み異常が検出される。例えば、書き込み異常は、データ格納領域DATAAまたはエラー訂正符号格納領域ECCAにおいて、論理0に設定されているビットに論理1を書き込むときに発生する。このとき、書き込みフラグWFLGは異常を示す値に設定される。
フラッシュメモリ制御回路MCNTは、CPUから読み出し動作の指示を受けたとき、データ格納領域DATAAからデータDATAを読み出し、読み出したデータDATAをCPUに出力する。フラッシュメモリ制御回路MCNTは、読み出したデータDATAにエラーがあることを検出したとき、データDATAとともに読み出したエラー訂正符号ECCを用いてエラーを訂正し、訂正したデータDATAをCPUに出力する。なお、CPUは、エラー訂正符号格納領域ECCAにアクセスすることができず、エラー訂正符号ECCを読み出すことができない。
フラッシュメモリ制御回路MCNTは、CPUから消去動作の指示を受けたとき、フラッシュメモリFLASHに消去動作を実行させる。消去動作では、消去が指示されたブロックBLK内のデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAに保持されている全ての値が論理1に設定される。
フラッシュメモリ制御回路MCNTは、消去動作後にCPUから最初の書き込み動作の指示を受けたとき、データDATAを書き込む前に初期値をデータ格納領域DATAAに書き込む。例えば、初期値はデータ格納領域DATAAの全ビットが論理1を示す値(消去状態)である。このため、消去状態のデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAに保持されているデータは、論理1の書き込みにより変化することはない。
フラッシュメモリFLASHは、書き込み動作において初期値を受けたとき、データ格納領域DATAAに保持されているデータDATAおよびエラー訂正符号格納領域ECCAに保持されているエラー訂正符号ECCの全ビットが論理1であることを確認する。そして、フラッシュメモリFLASHは、正常を示す値に書き込みフラグWFLGを設定する。換言すれば、書き込みフラグWFLGが正常を示すとき、エラー訂正符号格納領域ECCAの消去状態が正常であることが確認される。フラッシュメモリ制御回路MCNTは、書き込みフラグWFLGの値を読むことで、初期値の書き込み結果が正常であることを認識し、CPUから受けたデータDATAをフラッシュメモリFLASHに書き込む。
一方、フラッシュメモリFLASHは、書き込み動作において初期値を受け、データDATAおよびエラー訂正符号ECCの少なくとも1ビットが論理0であることを確認したとき、異常を示す値に書き込みフラグWFLGを設定する。例えば、消去動作中にフラッシュメモリFLASHに供給される電源が遮断されたとき、エラー訂正符号格納領域ECCAの一部のビットが論理1に設定されない可能性がある。エラー訂正符号ECCが、論理0を含むエラー訂正符号格納領域ECCAに書き込まれると、正しいエラー訂正符号ECCが書き込まれないおそれがある。
例えば、2進数で”111 1110”が設定されているエラー訂正符号格納領域ECCAに”101 0101”が書き込まれると、論理0の7ビット目(右端のビット)に論理1が書き込まれようとする。 このとき、書き込みの異常により、書き込みフラグWFLGに異常を示す値が書き込まれる。しかし、フラッシュメモリ制御回路MCNTは、異常が、正しく消去されていないことによるものなのか、フラッシュメモリFLASHの寿命によるものなのかを判断できない。ここで、フラッシュメモリFLASHの寿命は、消去回数が上限値を超えたときに発生するハードウエア故障である。
フラッシュメモリ制御回路MCNTは、初期値の書き込み後に書き込みフラグWFLGを読むことで、初期値の書き込み結果が異常であることを認識できる。これにより、エラー訂正符号格納領域ECCAが消去状態でないことが確認できる。換言すれば、異常の原因が製品寿命でないことを識別できる。この後、フラッシュメモリ制御回路MCNTは、エラー訂正符号格納領域ECCAを消去状態に設定するために、初期値の書き込みが指示されたブロックBLKの消去動作を実行する。消去動作後に、フラッシュメモリ制御回路MCNTは、CPUから受けたデータDATAをブロックBLKに書き込む。
以上、この実施形態では、データDATAの書き込みを行う前に初期値をデータ格納領域DATAAに書き込むことで、エラー訂正符号格納領域ECCAが初期値か否かを確認できる。ブロックBLKの消去動作を、エラー訂正符号格納領域ECCAが初期値でないときのみ実施することで、ブロックBLKの消去の回数を削減でき、製品寿命を延ばすことができる。
なお、図1では、書き込みフラグWFLGをフラッシュメモリFLASH内に形成する例を示したが、書き込みフラグWFLGをフラッシュメモリ制御回路MCNT内に形成してもよい。このとき、書き込み動作において、フラッシュメモリ制御回路MCNTがエラー訂正符号格納領域ECCAに保持されているエラー訂正符号ECCを読み出す。そして、フラッシュメモリ制御回路MCNTは、書き込み動作が正常に完了したか否かを判定する。
また、フラッシュメモリ制御回路MCNTの機能をCPUに持たせてもよい。このとき、フラッシュメモリFLASHへの初期値の書き込み、書き込みフラグWFLGの確認および初期値の書き込み後の消去動作の指示は、CPUにより実施される。
図2は、別の実施形態におけるシステムSYSの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。システムSYS(ユーザシステム)は、例えば、携帯機器等のマイクロコンピュータシステムの少なくとも一部を構成する。システムSYSは、シリコン基板上に複数のマクロが集積されて形成されてもよく、パッケージ基板上に複数のチップを搭載して形成されてもよい。
例えば、システムSYSは、CPU、ROM、RAM、フラッシュメモリ制御回路MCNTおよびフラッシュメモリFLASHを有している。CPU、ROM、RAMおよびフラッシュメモリ制御回路MCNTは、システムバスSBUSにより互いに接続されている。フラッシュメモリ制御回路MCNTとフラッシュメモリFLASHは専用バスにより互いに接続されている。例えば、専用バスのデータのビット幅Nは、16ビットである。フラッシュメモリ制御回路MCNTは、フラッシュメモリFLASHから読み出されるデータのエラーを訂正するためのエラー訂正符号ECCを書き込みデータに基づいて計算するエラー訂正符号生成回路ECCGを有している。なお、フラッシュメモリ制御回路MCNTの機能をCPUに持たせて、フラッシュメモリ制御回路MCNTを介することなくCPUによりフラッシュメモリFLASH上のデータを直接アクセスしてもよい。
CPUは、ROM、RAMにアクセスするとともに、フラッシュメモリ制御回路MCNTを介してフラッシュメモリFLASHにアクセスし、システム全体の動作を制御する。フラッシュメモリFLASHは、CPUからの指示により動作するフラッシュメモリ制御回路MCNTからのアクセス要求に応じて、書き込み動作、読み出し動作および消去動作を実行する。特に限定されないが、フラッシュメモリFLASHは、複数のブロックBLK(BLK0、BLK1、...、BLKn)を有している。例えば、ROMは、CPUが実行するプログラムPGMおよびプログラムPGMで使用するデータが格納されている。例えば、RAMは、プログラムPGMで使用するデータなどが一時的に格納される。ブロックBLKの例は図3に示す。
図3は、図2に示したフラッシュメモリFLASHのブロックBLK0−BLKnのデータ構造の例を示している。各ブロックBLK0−BLKnのデータ構造は同じため、ブロックBLK0について説明する。
ブロックBLK0は、複数のデータ格納領域DATAAおよびデータ格納領域DATAAにそれぞれ対応する複数のエラー訂正符号格納領域ECCAを有している。各データ格納領域DATAAは、16ビット幅のデータ領域DATADおよび16ビット幅のDATAUを有している。すなわち、データ格納領域DATAAのビット幅は32ビットである。以下の説明では、データ領域DATAD、DATAUに格納されるデータDATAを、DATAD、DATAUとも称する。
この例では、CPUからフラッシュメモリFLASHに書き込まれるデータおよびフラッシュメモリFLASHからCPUに読み出されるデータは、例えば16ビットである 。すなわち、CPUは、1回の書き込み動作または1回の読み出し動作により、データDATADまたはデータDATAUを入出力する。なお、CPUは、メモリコントローラMCNTを介して、8ビット、16ビットまたは32ビットのデータをフラッシュメモリFLASHから読み出してもよい。データ格納領域DATAAのアドレスADは、1バイト(8ビット)毎に割り当てられている。一方、32ビット幅のデータ格納領域DATAAを単位とするアドレスDTADは、4バイト毎に割り当てられている。すなわち、32ビット幅のデータ格納領域DATAAに対して、1つのアドレスDTADが付与されている。データ領域DATAD、DATAUの後ろに付けている数字は、アドレスDTADを示す。
エラー訂正符号格納領域ECCAは、一対のデータ領域DATAD、DATAUに対応して形成されている。各エラー訂正符号格納領域ECCAは、対応するデータ領域DATAD、DATAUに書き込まれる32ビットのデータDATAD、DATAUのエラー訂正符号ECC(ECC0、ECC1、...ECCm)を保持する。図1と同様に、エラー訂正符号ECCは、CPUによってはアクセスできず、フラッシュメモリ制御回路MCNTによってのみアクセスされる。
例えば、各エラー訂正符号格納領域ECCAは、データ格納領域DATAAと異なるアドレスADに割り当てられている。なお、各エラー訂正符号格納領域ECCAは、データ格納領域DATAAと同じアドレスADに割り当てられてもよい。
図4は、図2に示したフラッシュメモリFLASHへのデータの書き込み動作の例を示している。図4は、フラッシュメモリFLASHのデータを書き込むブロックBLKのデータ格納領域DATAAおよびエラー訂正符号格納領域ECCAが全て論理1に消去されていることが分かっているときの動作である。CPUは、32ビットのデータDATAD0、DATAU0をフラッシュメモリFLASHに書き込むために、データDATAD0、DATAU0を順次フラッシュメモリ制御回路MCNTに出力する(図4(a、b))。
フラッシュメモリ制御回路MCNTは、CPUから供給される最初の16ビットのデータDATAD0をフラッシュメモリFLASHのデータ領域DATAD0に書き込む(図4(c))。次に、フラッシュメモリ制御回路MCNTは、データ領域DATAD0に対応するエラー訂正符号格納領域ECCAに16進数の”FF”を書き込む(図4(d))。次に、フラッシュメモリ制御回路MCNTは、CPUから供給される次の16ビットのデータDATAU0をフラッシュメモリFLASHのデータ領域DATAU0に書き込む(図4(e))。
この後、フラッシュメモリ制御回路MCNTは、CPUから供給された32ビットのデータDATAD0、DATAU0のエラー訂正符号ECCを計算する(図4(f))。次に、フラッシュメモリ制御回路MCNTは、計算したエラー訂正符号ECCをデータ領域DATAD0に対応するエラー訂正符号格納領域ECCAに書き込む(図4(g))。これにより、32ビットのデータDATAD0、DATAU0およびエラー訂正符号ECCのフラッシュメモリFLASHへの書き込みが完了する。
なお、フラッシュメモリ制御回路MCNTは、フラッシュメモリFLASHにデータDATAD(またはDATAU)を書き込むとき、データDATAD(またはDATAU)の書き込みに続いて、エラー訂正符号格納領域ECCAに対する書き込み動作も実施する。このため、エラー訂正符号ECCが計算できない最初のデータDATADの書き込みでは、ダミー(16進数”FF”)のエラー訂正符号ECCがエラー訂正符号格納領域ECCAに書き込まれる。このようにフラッシュメモリFLASHへの書き込み制御をパターン化することで、フラッシュメモリ制御回路MCNTの回路および動作を簡易にできる。
図5は、図4に示した書き込み動作において、フラッシュメモリ制御回路MCNTにより実施される処理の例を示している。図5の処理は、フラッシュメモリ制御回路MCNTに形成されたハードウエアにより実現されてよく、フラッシュメモリ制御回路MCNTが実行するプログラムにより実現されてもよい。
まず、ステップS100において、フラッシュメモリ制御回路MCNTは、CPUから書き込みデータDATADを受ける。次に、ステップS102において、フラッシュメモリ制御回路MCNTは、書き込みデータDATADが、対応するブロックBLKの消去動作後に初めて書き込まれるか否かを判断する。ブロックBLKの消去動作後にデータ領域DATADへ初めて書き込み動作を実施するとき、処理はステップS104に移行する。ブロックBLKの消去動作後に書き込み動作を既に実施しているとき、処理はステップS112に移行する。
例えば、書き込み動作の有無は、ブロックBLK毎に設けられた消去確認フラグの値を読み出すことで判断される。消去確認フラグは、対応するブロックBLKの消去動作後に論理1に設定され、そのブロックBLKの消去動作後に初めて書き込み動作を実施したときに論理0に設定される。消去確認フラグは、フラッシュメモリ制御回路MCNT内に形成してもよく、フラッシュメモリFLASH内に形成してもよい。消去確認フラグは、フラッシュメモリFLASH内に形成されるとき、各ブロックBLK内のメモリセルの1つを利用してもよい。
ステップS104において、フラッシュメモリ制御回路MCNTは、フラッシュメモリFLASHのデータ領域DATADに、初期値として”0xFFFF”を書き込む。ここで、”0x”は16進数を示している。すなわち、データ領域DATADには、16進数で”FFFF”(16ビット)が書き込まれる。フラッシュメモリFLASHは、フラッシュメモリ制御回路MCNTからの指示を受け、データ領域DATADに”FFFF”を書き込む書き込み動作を実施する。この際、フラッシュメモリFLASHは、ベリファイ動作により、データ領域DATADおよびエラー訂正符号格納領域ECCAに”FFFF”および”FF”がそれぞれ設定されていることを確認する。
データ領域DATADおよびエラー訂正符号格納領域ECCAの値がそれぞれ”FFFF”および”FF”のとき、フラッシュメモリFLASHは、正常を示す値に書き込みフラグWFLGを設定する。データ領域DATADの値が”FFFF”でないとき、またはエラー訂正符号格納領域ECCAの値が”FF”でないとき、フラッシュメモリFLASHは、異常を示す値に書き込みフラグWFLGを設定する。なお、データDATAD、DATAUが、図3に示した複数のデータ格納領域DATAAに格納されるとき、使用する全てのデータ領域DATADに初期値”0xFFFF”が書き込まれる。
次に、ステップS106において、フラッシュメモリ制御回路MCNTは、書き込みフラグWFLGの値を読み出す。ステップS108において、フラッシュメモリ制御回路MCNTは、書き込みフラグWFLGが正常な値を示すとき、初期値”FFFF”の書き込みが成功したと判断し、ステップS112の処理を行う。フラッシュメモリ制御回路MCNTは、書き込みフラグWFLGが異常な値を示すとき、初期値”FFFF”の書き込みが失敗したと判断し、ステップS110の処理を行った後に、ステップS112の処理を行う。
ステップS110において、フラッシュメモリ制御回路MCNTは、初期値”FFFF”を書き込んだデータ領域DATADを含むブロックBLKに消去動作を実施させる。消去動作により、ブロックBLK内の全てのデータ格納領域DATAAおよび全てのエラー訂正符号格納領域ECCAは、論理1に設定される。
ステップS112において、フラッシュメモリ制御回路MCNTは、図4に示した書き込み動作の処理を実施する。上述したように、消去動作中にフラッシュメモリFLASHに供給される電源が遮断されたとき、エラー訂正符号格納領域ECCAの一部のビットが論理1に設定されない可能性がある。ステップS104において初期値”0xFFFF”をデータ領域DATADに書き込むことで、エラー訂正符号格納領域ECCAの全てのビットが論理1に設定されていることを容易に確認できる。これにより、ブロックBLKの消去動作を、エラー訂正符号格納領域ECCAが正常でないときのみ実施できる。この結果、ブロックBLKの消去の回数を削減でき、製品寿命を延ばすことができる。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。なお、CPUがフラッシュメモリ制御回路MCNTの機能を含むとき、図5に示した処理は、CPUにより実施されてもよい。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
AD‥アドレス;BLK‥ブロック;DATA‥データ;DATAA‥データ格納領域;DATAD、DATAU‥データ領域;DTAD‥アドレス;ECC‥エラー訂正符号;ECCA‥エラー訂正符号格納領域;FLASH‥フラッシュメモリ;MCNT‥フラッシュメモリ制御回路;SYS‥システム;WFLG‥書き込みフラグ

Claims (10)

  1. データ格納領域とエラー訂正符号格納領域とを含むフラッシュメモリにデータを書き込むデータ書き込み方法において、
    データが前記データ格納領域に書き込まれる前に初期値を前記データ格納領域に書き込み、
    前記初期値の書き込みに基づいて書き込みフラグを設定し、
    前記書き込みフラグに基づいて前記書き込みが正常に行われたか否かを判定し、
    前記書き込みが正常に行われたときは前記データ格納領域にデータを書き込み、
    前記書き込みが正常に行われていないときは前記データ格納領域を含むブロックを消去すること
    を特徴とするデータ書き込み方法。
  2. 前記フラッシュメモリにはNビット幅(Nは正の整数)でデータが書き込まれ、
    2Nビット幅である前記データ格納領域に対して一のアドレスが付与されること
    を特徴とする請求項1に記載のデータ書き込み方法。
  3. 2Nビット幅である前記データ格納領域に格納されるデータに基づいて、前記データ格納領域に対応する前記エラー訂正符号領域に格納されるエラー訂正符号が計算されることを特徴とする請求項2に記載のデータ書き込み方法。
  4. 前記フラッシュメモリにはNビット幅(Nは正の整数)でデータが書き込まれ、
    前記初期値はNビットであること
    を特徴とする請求項1に記載のデータ書き込み方法。
  5. 前記Nは16であり、前記初期値は16進数のFFFFであること
    を特徴とする請求項4に記載のデータ書き込み方法。
  6. CPUと、
    データ格納領域とエラー訂正符号格納領域とを含むフラッシュメモリと、
    前記CPUからの指示に基づいて前記フラッシュメモリを制御するフラッシュメモリ制御回路と、
    を含み、
    前記フラッシュメモリ制御回路は、
    データが前記データ格納領域に書き込まれる前に初期値を前記データ格納領域に書き込み、
    前記初期値の書き込みに基づいて書き込みフラグを設定し、
    前記書き込みフラグに基づいて前記書き込みが正常に行われたか否かを判定し、
    前記書き込みが正常に行われたときは前記データ格納領域にデータを書き込み、
    前記書き込みが正常に行われていないときは前記データ格納領域を含むブロックを消去すること
    を特徴とするシステム。
  7. 前記フラッシュメモリと前記フラッシュメモリ制御回路との間に接続されるNビット幅であるデータバス(Nは正の整数)を含み、
    前記フラッシュメモリ制御回路は、前記データバスを介して一のアドレスに対応する前記データ格納領域に複数回データを書き込むこと
    を特徴とする請求項6に記載のシステム。
  8. 前記フラッシュメモリ制御回路は、2Nビット幅である前記データ格納領域に格納されるデータに基づいて、前記データ格納領域に対応する前記エラー訂正符号領域に格納されるエラー訂正符号を計算すること
    を特徴とする請求項7に記載のシステム。
  9. 前記フラッシュメモリと前記フラッシュメモリ制御回路との間に接続されるNビット幅であるデータバス(Nは正の整数)を含み、
    Nビットである前記初期値が前記データ格納領域に書き込まれること
    を特徴とする請求項6に記載のシステム。
  10. 前記Nは16であり、前記初期値は16進数のFFFFであること
    を特徴とする請求項9に記載のシステム。
JP2010096089A 2010-04-19 2010-04-19 データ書き込み方法およびシステム Active JP5815212B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010096089A JP5815212B2 (ja) 2010-04-19 2010-04-19 データ書き込み方法およびシステム
US13/070,186 US8635397B2 (en) 2010-04-19 2011-03-23 Data writing method and system
US14/149,484 US9142301B2 (en) 2010-04-19 2014-01-07 Data writing method and system
US14/860,035 US9721665B2 (en) 2010-04-19 2015-09-21 Data writing method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010096089A JP5815212B2 (ja) 2010-04-19 2010-04-19 データ書き込み方法およびシステム

Publications (2)

Publication Number Publication Date
JP2011227659A JP2011227659A (ja) 2011-11-10
JP5815212B2 true JP5815212B2 (ja) 2015-11-17

Family

ID=44789139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010096089A Active JP5815212B2 (ja) 2010-04-19 2010-04-19 データ書き込み方法およびシステム

Country Status (2)

Country Link
US (3) US8635397B2 (ja)
JP (1) JP5815212B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5343916B2 (ja) 2010-04-16 2013-11-13 富士通セミコンダクター株式会社 半導体メモリ
US9311969B2 (en) 2011-07-22 2016-04-12 Sandisk Technologies Inc. Systems and methods of storing data
CN113138947B (zh) * 2020-01-17 2023-06-13 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
CN112486856A (zh) * 2020-11-30 2021-03-12 珠海格力电器股份有限公司 显示扫描控制方法、装置、存储介质及控制设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3123444A1 (de) * 1981-06-12 1983-01-05 Siemens AG, 1000 Berlin und 8000 München Verfahren und anordnung zum nichtfluechtigen speichern des zaehlerstandes einer elektronischen zaehlschaltung
JP2923702B2 (ja) * 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
JPH065094A (ja) * 1992-06-17 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JP3595942B2 (ja) * 1994-11-07 2004-12-02 日本テキサス・インスツルメンツ株式会社 プログラマブルras/cas発生回路
JP3489708B2 (ja) * 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
JP3620478B2 (ja) 2001-07-30 2005-02-16 ソニー株式会社 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP2003280979A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 情報記憶装置
JP4419525B2 (ja) * 2003-11-05 2010-02-24 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7480760B2 (en) * 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
JP2006079528A (ja) * 2004-09-13 2006-03-23 Toshiba Corp データ書込み装置
JP2006309829A (ja) * 2005-04-27 2006-11-09 Nec Electronics Corp 不揮発性半導体記憶装置及びその制御方法
JP4994112B2 (ja) * 2007-05-22 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびメモリ制御方法
JP2010079686A (ja) * 2008-09-26 2010-04-08 Nec Electronics Corp データ処理装置、メモリ制御回路およびメモリ制御方法
JP4758518B2 (ja) * 2009-06-18 2011-08-31 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ

Also Published As

Publication number Publication date
US9721665B2 (en) 2017-08-01
US20110258517A1 (en) 2011-10-20
US8635397B2 (en) 2014-01-21
US20140122785A1 (en) 2014-05-01
US20160210063A1 (en) 2016-07-21
US9142301B2 (en) 2015-09-22
JP2011227659A (ja) 2011-11-10

Similar Documents

Publication Publication Date Title
US8694855B1 (en) Error correction code technique for improving read stress endurance
JP4059472B2 (ja) メモリカード及びメモリコントローラ
US7813187B2 (en) Multi-bit flash memory device and program method thereof
US7061799B2 (en) Nonvolatile semiconductor memory device
JP2990181B1 (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
JP2012137994A (ja) メモリシステムおよびその制御方法
JP2006107710A (ja) 停電によるプログラムエラーの有無を検出することができる集積回路メモリ装置及び方法
US10353852B2 (en) Memory system that stores data redundantly
US20080072119A1 (en) Allowable bit errors per sector in memory devices
KR20170090177A (ko) 메모리 시스템, 반도체 메모리 장치 및 그의 동작 방법
JP4775969B2 (ja) 不揮発性記憶装置
JP5815212B2 (ja) データ書き込み方法およびシステム
CN111124742B (zh) Flash数据校验方法及Flash控制器、存储介质、设备
JP4357305B2 (ja) 外部記憶装置
US20100083073A1 (en) Data processing apparatus, memory controlling circuit, and memory controlling method
JP2002244932A (ja) 制御装置
CN116185279A (zh) 半导体存储装置、数据写入方法和半导体存储装置的制造方法
US10732894B2 (en) Method of writing in a non-volatile memory device and corresponding non-volatile memory device
JP2011018371A (ja) メモリ記憶装置
TWI500036B (zh) 非揮發性儲存裝置及其控制方法
JP2006221334A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005056144A (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
KR20070024249A (ko) 배드 블럭 정보가 기록된 난드 타입의 플래시 메모리
JP4352584B2 (ja) 記憶回路装置
JP2024143815A (ja) 管理装置、管理方法、及び管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121226

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141009

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141017

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20141107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150924

R150 Certificate of patent or registration of utility model

Ref document number: 5815212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250