JP2004118937A - Nonvolatile memory and data storage device having the same - Google Patents

Nonvolatile memory and data storage device having the same Download PDF

Info

Publication number
JP2004118937A
JP2004118937A JP2002280956A JP2002280956A JP2004118937A JP 2004118937 A JP2004118937 A JP 2004118937A JP 2002280956 A JP2002280956 A JP 2002280956A JP 2002280956 A JP2002280956 A JP 2002280956A JP 2004118937 A JP2004118937 A JP 2004118937A
Authority
JP
Japan
Prior art keywords
flag
block
blocks
state
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002280956A
Other languages
Japanese (ja)
Other versions
JP2004118937A5 (en
JP4031693B2 (en
Inventor
Junji Kato
加藤 潤二
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002280956A priority Critical patent/JP4031693B2/en
Publication of JP2004118937A publication Critical patent/JP2004118937A/en
Publication of JP2004118937A5 publication Critical patent/JP2004118937A5/ja
Application granted granted Critical
Publication of JP4031693B2 publication Critical patent/JP4031693B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To make the contents of a flag correctly expressible even when power is cut off during block erasure, and to suppress the cost of a memory when the flag is set. <P>SOLUTION: The nonvolatile memory 13 is provided with a plurality of blocks #0 to #4 each of which becomes an erasure unit. Especially, data erasure and writing are carried out for the blocks #0 and #1. Flags F0S, and F0C indicating information regarding the erasure of the flag #0 are disposed in the block #1, and flags F1S and F1C indicating information regarding the erasure of the block #1 are disposed in the block #0. The erased state of the blocks is understood by referring to the flags F0S, F0C, F1S and F1C. Even when power is cut off during the erasure of the block #0, no sudden changes occur in the contents of the corresponding flags F0S and F0C. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
この発明は、消去などの自身の制御のために参照されるフラグを記憶する不揮発性メモリおよびこれを有したデータ記憶装置に関する。
【0002】
【従来の技術】
フラッシュメモリ等の不揮発性メモリは、記憶されたデータを更新することができるものとして知られている。しかしフラッシュメモリの記憶データを更新する際には、元のデータに上書きするのではなく、元のデータを一旦消去した後に新たなデータを書き込むことになる。
フラッシュメモリの記憶領域は複数のブロックで構成され、各ブロックには複数個のメモリセルが含まれている。データの消去はブロック単位に行なわれる。データを書き込む単位に比べて大きなブロック単位で記憶内容を消去される。例えば、書き込む領域を指定する一つのアドレスによりデータが書き込める容量は数バイトであるに対し、消去するブロックを指定する一つのアドレスによりデータが消去される容量は数Kバイトになる。
【0003】
ここで一つ問題となるのは、ブロックの消去動作の途中に電源が遮断された場合である。再び電源を投入したときにブロック内の消去が完全に行なわれていない状態となる。正常に消去されていないブロックに書き込みを行なうと正常なデータの記憶ができず不揮発性メモリの動作にエラーが生じる。
この問題を防ぐため、ある従来技術によると、複数のブロックにそれぞれ対応した消去情報ビットを不揮発性メモリに設けている。この消去情報ビットは対応のブロックの消去状態を示す。電源が投入されたときに消去情報ビットを参照することにより対応のブロックが完全に消去されたかどうかが判断できる。もし完全に消去されていないならば、対応のブロックに再度消去を施せばよい。このような技術は、例えば次の特許文献1に開示されている。
【0004】
【特許文献1】
特開2001−250388号公報
【0005】
【発明が解決しようとする課題】
この特許文献1の図1を参照すると、データの記憶領域であるブロック(メモリセル領域)とは別の領域(消去情報記憶領域)を設け、この領域に各ブロックに対応する消去情報ビットが記憶されている。この領域は、ブロックとは独立に消去可能な不揮発性の記憶素子で構成される。しかしながら、消去情報ビットの記憶専用にこの独立に消去可能な領域を別途設けることとなり、不揮発性メモリのコスト上昇を招く。
【0006】
そこで特許文献1の図3において、専用の記憶領域を設けるのでなくデータを記憶するブロック内に消去情報ビットを設ける例が開示されている。しかし、各ブロック内にそのブロック自身の消去情報ビットを設けている。したがってこの例でもブロックの消去動作中に不意に電源が遮断されたときやはり問題がある。ブロックの消去動作中に電源が遮断されたときブロックの一部の領域は消去され他の部分は消去されない不完全消去の状態がありえる。よってそのブロックに関する消去情報がこの消去情報が誤った情報をもつ可能性がある。例えば特許文献1の図4によると、ステップS15の途中で電源が遮断されると、消去情報の部分が「10」と誤った値となりうる。この状態で再度電源が投入される場合、誤って消去か完了したと判断され、ブロックが不完全のままデータの書き込みが行われることになる。
【0007】
また不揮発性メモリには書き込みにより記憶した状態が途中で変化してしまう揮発エラーが存在する。特許文献1でも一つの消去情報として“00”、“10”、“11”の3値でそれぞれ異なる状態を示している。例えば“11”が揮発エラーにより“10”に変化してしまうと、消去情報を誤って判断することになる。特に特許文献1の図3のようにブロック内に消去情報ビットをもたせるような場合に、不揮発性メモリによっては、揮発エラーを修正するためにはブロックを一旦消去しなければならないものもある。そのとき、ブロック内などのデータを別のメモリに待避させた後ブロックを消去するなどの処置を要する。
【0008】
よってこの発明の目的は、自身の制御のために参照されるフラグを記憶する不揮発性メモリに関し、ブロックの消去途中に電源が遮断されてもそのフラグの内容を正しく表現できるとともに、フラグを設けるにあたってはコストを抑えた不揮発性メモリを提供することにある。
この発明の別の目的は、電源が遮断されてもブロックの消去状態を正しく把握することのできる不揮発性メモリおよびこれを有したデータ記憶装置を提供することにある。
この発明のさらに別の目的は、不揮発性エラーが発生しても参照されるべき情報を正しく認識することのできる不揮発性メモリおよびこれを有したデータ記憶装置を提供することにある。
【0009】
【課題を解決するための手段】
この発明に係る不揮発性メモリは、その一つ一つが消去の単位となる第1及び第2のブロックにそれぞれ対応して設けられ第1及び第2のブロックそれぞれに関する情報を表すフラグを有する。第1及び第2のブロックの一方に対応したフラグを第1及び第2のブロックの他方に持たせている。第1及び第2のブロックの一方の消去動作中に電源が遮断されても、フラグの内容は不意に変化することはないので、フラグは正しい内容を保持している。しかもその一方のブロックに対応するフラグを設けるために特別な記憶領域を設ける必要もないので、コストも抑えられる。
またその他方のブロックに対応するフラグもその一方のブロックに持たせることにより、その他方のブロックの消去途中に電源が遮断されても、対応するフラグの内容が不意に変化することもない。よってフラグは正しい内容を保持している。しかもその他方のブロックに対応するフラグを設けるために特別な記憶領域を設ける必要もないので、さらにコストが抑えられる。
【0010】
またこの発明に係る不揮発性メモリは、その一つ一つが消去の単位となる複数のブロックにそれぞれ対応して設けられブロックそれぞれに関する情報を表すそれぞれフラグを有するときに、各フラグをその複数のブロックの他のブロック内に持たせている。複数のブロックのいずれかの消去動作中に電源が遮断されたとしてもフラグの内容が不意に変化することはない。しかも複数のブロックそれぞれ対応するフラグを設けるために特別な記憶領域を持たせる必要もない。
【0011】
フラグは特にブロックの消去に関する状態を示すものとし、例えば、ブロックが消去可能な状態であることを示す第1のフラグと、ブロックの消去が完了したことを示す第2のフラグとを含む。これにより電源が途中で遮断されてもこれらのフラグを参照すればブロックの消去状態を正しく知ることができる。
第1のフラグがセットされたが第2のフラグがセットされていない場合には、対応のブロックが消去できる状態にあると判断でき、第1及び第2のフラグが共にセットされている場合には、ブロックは消去が終了しておりデータの書きこみが行なえる状態にあるかすでに書きこみに使用している状態にあると判断できる。このように電源再投入後にブロックの消去状態がわかるので、ブロックを消去不充分のままデータが書きこまれるのを防げる。
【0012】
また各フラグは各々が複数のビットからなる複数のフラグ領域を有する。この複数のフラグ領域のうち少なくとも一つがある特定の値を有するとき各フラグがある特定の状態を示すこととする。複数のフラグ領域のいずれかに揮発エラーが生じても別の領域で一つでも揮発エラーを起こしていなければ、フラグは正常な状態を示すことになる。
【0013】
従ってこの発明に係るデータ記憶装置に従えば、不揮発性メモリに設けられたフラグを参照して不揮発性メモリを制御するコントローラは、フラグにおける複数のフラグ領域の少なくとも一つがある特定の値を有するときにフラグがある特定の状態であると判断するようにし、その状態に応じて適切な処理を行なうことができる。
【0014】
【発明の実施の形態】
本発明の実施の形態を、図面を用いて説明する。なお図面において同一の符号は、同一のもの又は相当するものを表す。
実施の形態1.
図1は実施の形態1によるセキュリティ機能付きコンピュータシステム10の構成図を示す。このシステム10は単一の半導体チップ上に形成された集積回路で構成され、バス11に共通に接続されたマイクロコントローラ(MCU)12、不揮発性メモリ13、ランダムアクセスメモリ(RAM)14、リードオンリーメモリ(ROM)15及び暗号/復号回路16を備える。データ及びプログラムはバス11を介してMCU12と不揮発性メモリ13、RAM14、ROM15及び暗号/復号回路16との間で転送される。MCU12はROM15又は不揮発性メモリ13に記憶されたプログラムを実行してシステム全体を制御する。またシステム10とその外部との間でデータの通信が行なわれる際、暗号/復号回路16は送信データを暗号化し、その暗号化データが外部に送信される。また暗号/復号回路16は外部から受信した暗号化データを復号し、その復号データはシステム10内で処理される。
【0015】
不揮発性メモリ13は、従来技術と同様、その一つ一つがデータの消去単位(一回のアドレス指定で消去されるメモリセルの単位)となる複数のブロックを有する再書き込み可能なメモリで、よく知られているフラッシュメモリが好ましい。複数のブロックはそれぞれ同じ容量を有し、一ブロック当たり例えば2Kないし64Kバイト程度である。一方データの書き込み単位(一回のアドレス指定で書き込めるデータのビット数)は、消去単位(一つのブロックの容量)よりも少ない。例えば書き込み単位は2バイト(=16ビット)である。
【0016】
図2は、不揮発性メモリ13の構造およびその記憶内容を示す。不揮発性メモリ13は、例えば5つのブロック#0〜#4を有する。3つのブロック#2〜#4には、書換えないことを前提とした内容が記憶される。MCU12が実行するプログラム、管理番号、暗号/復号回路16がデータの暗号化及び復号化の際に使用する秘密鍵及び公開鍵、等が不揮発性メモリ13に記憶される。
一方、2つのブロック#0、#1各々は、システム10の動作中に頻繁にデータが書き込まれるデータ記憶領域21と、それぞれフラグを格納する2つのフラグ領域22、23が記憶される。
【0017】
ブロック#0、#1にそれぞれ対応するフラグが設けられる。フラグは対応のブロックの消去に関する情報を示す。各ブロックに対応するフラグは、ブロック#0、#1のうち対応のブロックとは異なる別のブロックのフラグ領域22、23に記憶される。消去に関する情報を意味するフラグを参照しながらMCU12は不揮発性メモリ13の消去及びデータ書きこみを制御する。したがって不揮発性メモリ13およびそれを制御するMCU12により一つのデータ記憶装置が構成される。
【0018】
消去に関する情報を示すフラグは、具体的には消去開始フラグと消去完了フラグとを含む。消去開始フラグは対応のブロックが消去可能な状態かどうかを示し、消去完了フラグは対応のブロックの消去が完了したかどうかを示す。ブロックが消去可能な状態にあるとき、対応の消去開始フラグはオンし、ブロックの消去が完了した状態にあるとき、対応の消去開始フラグはオンする。ブロック#0の消去開始フラグF0S、F0Cはブロック#1に記憶され、ブロック#1の消去開始フラグF1S、F1Cはブロック#0に記憶される。
【0019】
データが消去されるとブロック内の全メモリセルはゼロクリアされるものとする。よってブロック#0が消去されればブロック#1に対応する2つのフラグF1S、F1Cもゼロにクリアされる。このクリアされた状態をフラグF1S、F1Cのオフとする。同じくブロック#1が消去されればブロック#0に対応する2つのフラグF0S、F0Cもクリアされる。このクリアされた状態をフラグF0S、F0Cのオフとする。またフラグF0S、F0C、F1S、F1Cの各々に特定の値が書き込まれた状態をフラグF0S、F0Cのオンとする。
【0020】
図3はフラグF0S、F0C、F1S、F1C各々のフラグの具体的構成例を示す。
フラグは複数のビットで構成され、特に不揮発性メモリ13の書き込み単位と同じビット数(16ビット)とする。フラグが図3(a)のように全ビットがすべて0である“0000H”の値(第1の値)を有するとき、フラグのオフとする(Hはその前の4桁“0000”が16進数で表現されていることを示す。以下同じ)。フラグが第2の値、ここでは図3(b)のようにフラグの全ビットが1である“1111H”の値(第2の値)を有するとき、フラグのオンとする。またフラグの16ビットが他の値を有するときはフラグエラーとされる。例えばフラグのオフ状態時にフラグ内の1ビットに揮発エラーが生じた場合(例えば“0001H”と変化するような場合)、それはエラーとして判断され、言い換えればオン状態とは判断されない。
【0021】
MCU12は、4つのフラグF0S、F0C、F1S、F1Cの内容を参照し、ブロック#0、#1がいかなる状態にあるかを判定する。
図4は4つのフラグに対するブロック#0、#1の状態を示したものである。4つのフラグがすべてオフである状態▲1▼では、ブロック#0、#1がともに使用されていない初期状態(セットアップ前)にある。消去開始フラグF1Sがオンで他の3つのフラグがオフである状態▲2▼では、ブロック#0は書き込み及び読み出しで使用されている状態(使用中)にあり、ブロック#1はこれ以上データの書き込みができず消去を待っている状態(消去待ち)にある。消去開始フラグF1S、消去完了フラグF1Cがともにオンし、消去開始フラグF0S、消去完了フラグF0Cがともにオフしている状態▲3▼では、ブロック#0は使用中の状態にあり、ブロック#1は消去が完了し使用されることを待っている状態(消去完了)にある。消去開始フラグF0Sがオンし他の3つのフラグがともにオフしている状態▲4▼では、ブロック#0が消去待ちの状態にあり、ブロック#1は使用中の状態にある。
【0022】
消去完了フラグF0Cがオフし他の3つのフラグがオンしている状態▲5▼では、ブロック#0は消去待ちの状態にありブロック#1は使用中の状態にある。消去開始フラグF0S、消去完了フラグF0Cがともにオフし、消去開始フラグF1S、消去完了フラグF1Cがともにオフしている状態▲6▼では、ブロック#0が消去完了の状態にあり、ブロック#1は使用中の状態にある。消去完了フラグF1Cがオフし他の3つのフラグがオンしている状態▲5▼では、ブロック#0は使用中の状態にありブロック#1は消去待ちの状態にある。状態▲1▼〜▲7▼以外の状態▲8▼はフラグエラーである。
【0023】
次に不揮発性メモリ13の消去及び書き込み動作について説明する。図5は電源投入時における不揮発性メモリ13の動作を示すフローチャート図である。
本実施の形態では、不揮発性メモリ13のブロック内の消去は電源の投入時に行われるようになっている。電源が投入されると、MCU12は先ず不揮発性メモリ13に記憶されているフラグF0S、F0C、F1S、F1CをRAM14にコピーする(S21)。次いでMCU12は、RAM14に保持されたフラグF0S、F0C、F1S、F1Cの内容をチェックする(S23)。
【0024】
フラグのチェックの結果、状態▲1▼にある場合はセットアップ前と判断され、ブロック#0、#1のどちらにも書き込みが可能である。ここではブロック#0に最初にデータが書き込まれる側のブロックとし、MCU12はブロック#1に対応する消去開始フラグF1S、F1Cをともにオンする(S25)。その結果、全フラグは状態▲3▼となる。そして電源投入後にデータが最初に書き込まれるブロック#0の記憶場所を特定するために、MCU12はブロック#0内の先頭アドレスをRAM14に記憶する(S27)。
【0025】
ステップS23で全フラグが状態▲7▼であると判断されると、MCU12は消去待ちであるブロック#1を選択しその記憶内容を消去する(S29)。ブロック#1の消去により消去開始フラグF0S、消去完了フラグF0Cはともにオフとなる。このとき全フラグは状態▲2▼を示す。その後、MCU12はブロック#0上の消去完了フラグF1Cをオンする(S31)。このとき全フラグは状態▲3▼となる。そして電源投入後にデータが最初に書き込まれるブロック#0の記憶場所、すなわち、ブロック#0に最後にデータ書き込みのあった場所に後続する場所を決定する(S33)。MCU12はブロック#0の記憶内容を先頭アドレスから順に読み出し、最後に書き込まれたデータのアドレスをサーチする。例えば書き込みデータには必ず「1」が含まれるようにすれば、その最後に記憶された「1」がどのデータに存在するかを探せば、最後に書き込まれたデータのアドレスは容易にわかる。そして、その次アドレスをデータが最初に書き込まれる記憶場所としてRAM14に記憶される(S35)。
【0026】
なお、ステップS29において消去途中で電源がオフされると、フラグは状態▲2▼に変化したにも拘わらずブロック#1が完全に消去されていない場合もある。このときは電源を再度投入し再度ブロック#1を消去すればよい。よってステップS23で全フラグが状態▲2▼であると判断されたときMCU12はステップS29の消去を行う。
【0027】
ステップS23で全フラグが状態▲5▼であると判断されると、MCU12は消去待ちであるブロック#0を選択しその記憶内容を消去する(S37)。ブロック#0の消去により消去開始フラグF1S、消去完了フラグF1Cはともにオフとなり、フラグ全体は状態▲4▼を示す。その後、MCU12は不揮発性メモリ13上の消去完了フラグF0Cをオンにセットする(S39)。このときフラグは状態▲6▼となる(S39)。そして電源投入後にデータが最初に書き込まれるブロック#1の記憶場所を決定する(S41)。ステップS33と同様にして、MCU12はブロック#1の記憶内容を先頭アドレスから順に読み出し、最後に書き込まれたデータのアドレスをサーチする。その次アドレスをデータが最初に書き込まれる記憶場所としてRAM14に記憶される(S43)。
【0028】
なお、ステップS37で消去途中に電源がオフされると、フラグは状態▲4▼に変化したにも拘わらずブロック#0が完全に消去されていない場合もある。このときは電源を再度投入して再度ブロック#0を消去すればよい。よってステップS23で全フラグが状態▲4▼であると判断されたときにもステップS37の処理を行う。
【0029】
ステップS23で全フラグが状態▲3▼であると判断されると、ブロックの消去動作を行なうことなくMCU12はステップS33、S35の処理を行う。さらにステップS23で全フラグが状態▲6▼であると判断されると、ブロックの消去動作を行なうことなくMCU12はステップS41、S43の処理を行う。ステップS23で全フラグが状態▲8▼と判断されると、MCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0030】
なおMCU12は、ステップS25、S31、S39で書き換えられた不揮発性メモリ13のフラグの状態を、RAM14にコピーされたフラグにも反映するようRAM14のデータも書き換える。
【0031】
電源投入後に実際にデータが書き込まれる場合の不揮発性メモリ13の動作を図6のフローチャートを用いて説明する。
図6を参照し、書き込み処理が開始されると、まず不揮発性メモリ13と同じ内容がコピーされているRAM14のフラグF0S、F0C、F1S、F1Cの内容をチェックする(S51)。ステップS51で全フラグが状態▲3▼であると判断されたときブロック#0が現在使用中であることがわかるので、MCU12はブロック#0にデータを書き込む(S53)。ステップS27、S35等で、データが書き込まれるべきブロック#0のアドレスがRAM14に保持されているので、そのアドレスを参照してデータが書き込まれる。
【0032】
次いでMCU12は、ブロック#0のデータを記憶する領域に次のデータが書き込むことができるどうか判断する(S55)。これは、ブロック#0のデータ記憶領域の全体に書きこみが行なわれたかどうかで判断され、例えばステップS53で参照したアドレスがブロック#0におけるデータの記憶領域の最終アドレスであるかどうかで容易に判断される。ステップS55でYesの場合、MCU12は、ステップS53でデータを書き込んだ場所のアドレスに所定の値を加算して次にデータが書き込まれるべきブロック#0内のアドレスを生成する。そしてRAM14に記憶されたアドレスをその生成された新たなアドレスに書き換える(S57)。一方ステップS55で、フラグが状態▲3▼のときNoの場合には、MCU12はブロック#1内の消去開始フラグF0Sをオンにセットする(S59)。またMCU12はRAM14にコピーされた消去開始フラグF0Sにもオン状態を反映させる。このとき全フラグは状態▲5▼となる。次にデータが書き込まれるのは消去済みのブロック#1であり、RAM14に記憶されたアドレスをブロック#1の先頭アドレスに書き換える(S61)。
【0033】
ステップS51で全フラグが状態▲6▼であると判断されたときブロック#1が現在使用中であることがわかるので、MCU12はブロック#1にデータを書き込む(S63)。ステップS43等でRAM14にはデータが書き込まれるべきブロック#1のアドレスが保持されるので、そのアドレスを参照してデータが書き込まれる。
【0034】
次いでMCU12は、ブロック#1のデータの記憶領域に次のデータが書きこむことができるかどうか判断する(S65)。これは、ブロック#1のデータ記憶領域の全体に書きこみが行なわれたかどうかで判断され、例えば、ステップS63で参照したアドレスがブロック#1におけるデータ記憶領域の最終アドレスであるかどうかで容易に判断される。ステップS65でYesの場合、MCU12は、ステップS63でデータを書き込んだ場所のアドレスに所定の値を加算して次のデータが書き込まれるブロック#1内のアドレスを生成する。RAM14に記憶されたアドレスをその生成された新たなアドレスに書き換える(S67)。ステップS65でNoの場合には、MCU12はブロック#0内の消去開始フラグF1Sをオンにセットする(S69)。またMCU12はRAM14にコピーされた消去開始フラグF1Sにもオン状態を反映させる。このとき全フラグは状態▲7▼となる。次にデータが書き込まれるのは消去済みのブロック#0であり、RAM14に記憶されたアドレスをブロック#0の先頭アドレスに書き換える(S71)。
【0035】
ステップS51で全フラグが状態▲7▼であると判断されたときは、状態▲3▼の場合と同様にMCU12はステップS53の処理を行なう。次いでステップS55でYesの場合、状態▲3▼の場合と同様にステップ57の処理を行なう。状態▲7▼は、ブロック#0が使用中で且つブロック#1はまだ消去されていない消去待ちの状態にある。よってステップS55でNoの場合には、ブロック#0、#1のいずれかが消去されない限り書きこみができない。よってMCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0036】
ステップS51で全フラグが状態▲5▼であると判断されたときは、状態▲6▼の場合と同様にMCU12はステップS63の処理を行なう。次いでステップS65でYesの場合、状態▲6▼の場合と同様にステップ67の処理を行なう。状態▲6▼は、ブロック#1が使用中で且つブロック#0はまだ消去されていない消去待ちの状態にある。よってステップS65でNoの場合には、ブロック#0、#1のいずれかが消去されない限り書きこみができない。よってMCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0037】
ステップS51で全フラグが状態▲8▼にあると判断されたときには、MCU112はエラーと判定し、必要に応じてエラー処理を行なう。
【0038】
ステップS61の終了時で全フラグが状態▲5▼である場合、電源が遮断されることなく次データの書きこみがあるならば、MCU12はステップS51のフラグチェックによりステップS63に移行しブロック#1へ次データを書きこむ。また次データの書きこみがなく電源が遮断されるならば、電源再投入によりMCU12は、図5のステップS23のフラグチェックによりステップS37に移行しブロック#0の消去を行なう。
【0039】
ステップS71の終了時で全フラグが状態▲7▼である場合、電源が遮断されることなく次データの書きこみがあるならば、MCU12はステップS51のフラグチェックによりステップS53に移行しブロック#0へ次データを書きこむ。逆に次データの書きこみが発生せずに電源が遮断されるならば、電源再投入によりMCU12は、図5のステップS23のフラグチェックによりステップS29に移行しブロック#1の消去を行なう。
【0040】
ステップS57の終了後、次データの書きこみがなく電源が遮断された場合、そのときのフラグ状態が状態▲7▼であれば図5を参照して、ステップS23のチェックによりステップS29に移行しMCU12はブロック#1を消去する。また全フラグが状態▲3▼であればブロック#1の消去はすでに完了しているから図5のステップ23のフラグチェックにより処理はステップS33に移行する。ステップS57の後に電源が遮断されることなく次のデータの書きこみがある場合には、そのときのフラグが状態▲7▼であろうと状態▲3▼であろうとステップS51のチェックによりMCU12は再度ステップS53の処理を行ないブロック#0へ次データを書きこむことになる。
【0041】
ステップS67の終了後、次データの書きこみがなく電源が遮断された場合、そのときのフラグ状態が状態▲5▼であれば図5を参照して、ステップS23のチェックによりステップS37に移行しMCU12はブロック#0を消去する。また全フラグが状態▲6▼であればブロック#0の消去はすでに完了しているから図5のステップ23のフラグチェックにより処理はステップS41に移行する。ステップS67の後に電源が遮断されることなく次のデータの書きこみがある場合には、そのときのフラグが状態▲5▼であろうと状態▲6▼であろうと、ステップS51のチェックによりMCU12は再度ステップS63の処理を行ないブロック#1へ次データを書きこむことになる。
【0042】
この実施の形態によれば、複数のブロック(ブロック#0、#1)の各々の消去に関する情報を示すフラグをその複数のブロック内の他のブロック(ブロック#1、#0)に設けることで、ブロック自身が消去されても、その消去されたブロックに対応するフラグは変化しない。従ってブロックの消去途中で電源が遮断されてもブロックに対応するフラグの状態が不用意に変化することはなくフラグは正常な状態を示すことができる。またブロックとは独立に消去可能な記憶領域をこのフラグの保持専用に不揮発性メモリ13内に設ける必要もないので、メモリのコストも抑えられる。
【0043】
このとき、ブロックの消去に関する情報を示すフラグとして、消去開始フィラグ及び消去完了フラグの2種類が用意されたことにより、ブロックの消去途中に電源が遮断されても、またはブロックの消去完了の後に電源が遮断されても、フラグからブロックの正しい状態を知ることができる。
例えば図5を参照して、ステップS29でブロック#1の消去途中で電源が遮断されても、ブロック#0に存在する対応の消去開始フラグF1S、消去完了フラグF1Cはそれぞれオンおよびオフを維持する。電源が再度投入されたときブロック#1は消去待ち状態と判断できるので、ブロック#1を再び消去する処理を行うことで、消去された状態のブロック#1に正常にデータ書き込みができる。またステップS29でブロック#1の消去完了後に電源が遮断されても、ブロック#0に存在する対応の消去開始フラグF1S、消去完了フラグF1Cはともにオンを示す。電源が再度投入されたときブロック#1は消去完了であると判断できるので、ブロック#1の消去処理は不要となる。
【0044】
この実施の形態では、システム10が動作中にデータが逐次書き込まれる不揮発性メモリ13内のブロック数は2つで説明したが、3以上の任意のN個であってもよい。このとき各ブロックの消去に関する情報(消去開始フラグおよび消去完了フラグ)は、データが書き込まれる他の(N−1)個のブロックの各々に設ければよい。例えば3個のブロックであれば、図7を参照して、ブロック#0に対応する消去開始フラグF0S−1、F0S−2及び消去完了フラグF0C−1、F0C−2は、他の2つのブロックの各々に設け、ブロック#1に対応する消去開始フラグF1S−2、F1S−0及び消去完了フラグF1C−2、F2C−0は、他の2つのブロックの各々に設け、ブロック#2に対応する消去開始フラグF2S−0、F2S−1及び消去完了フラグF2C−0、F2C−1は、他の2つのブロックの各々に設ける。
【0045】
また、MCU12は、システム10の他のユニットを制御するため、不揮発性メモリ13の制御以外にも種々の機能を実現している。しかし、MCU12に不揮発性メモリ13の書きこみおよび消去の制御をさせるのではなく、別途専用のメモリコントローラを設け、この専用コントローラにメモリ13の書き込み、消去の制御をさせてもよい。このコントローラは、プログラムを実行して機能するマイクロコンピュータでもよいし、ハードワイヤードロジック回路で構成してもよい。
【0046】
実施の形態2.
図7は、フラグF0S、F0C、F1S、F1Cの各々の別の構成例を示す。各フラグは、図7(a)のように、各々が複数のビットからなる複数のフラグ領域80a〜80hを有する。各フラグ領域は、例えば一回のアドレス指定で書き込まれるデータのビット数(2バイト=16ビット)で表現される。フラグ領域80の数は例えば8個とする。
【0047】
フラグをオフにするためにブロックが消去されると、その消去されるブロックに設けられたフラグの全ビットは図7(b)のようにゼロとなり、フラグ領域すべてが“0000H”の第1の値をもつ。またフラグをオンにセットするときには、図7(c)のようにフラグの全ビットを“1”とする、つまり、フラグ領域すべてが“FFFFH”の第2の値をもつ。
【0048】
ここで、図7(b)のようにブロック消去により全ビットがゼロとなったとしても、不揮発性メモリの揮発エラーによりビットの状態が変化する可能性がある。例えば図7(d)では揮発エラーが生じた一例を示す。フラグ領域80aが“0010H”、フラグ領域80cが“0030H”、フラグ領域80dが“00d0”と状態が変化している。この不揮発性メモリ13では、ある1ビットでも状態が0から1に変化すると、その変化したビットを含む書き込み単位の2バイトは追加書き込みすることができないものを想定している。よって揮発エラーを修正するためにはブロックを一旦消去するしかない。
【0049】
そこで複数のフラグ領域80a〜80hのうち任意の少なくとも一つのフラグ領域に第1の値である“0000H”の値を有するときにフラグがオフ状態であるとMCU12が判定するようにする。したがって、図7(b)の状態から一部に揮発エラーが生じても、揮発エラーを修正するためにブロックを消去することなく、フラグをオフと正しく判定できる。
【0050】
さらに図7(d)のように揮発エラーが発生しているがオフ状態を示すフラグをオンにセットするとき、MCU12は、フラグ内の複数のフラグ領域を読み出し揮発エラーが生じているかどうか判断する。そしてMCU12は、図7(e)のように、全ビットがゼロであるフラグ領域すべて(80b、80e〜80hの5つ)に対し“FFFFH”を書き込み、揮発エラーが生じているフラグ領域(80a、80c、80dの3つ)はそのままの状態にしておく。そして複数のフラグ領域80a〜80hのうち任意の少なくとも一つのフラグ領域に第2の値である“FFFFH”の値を有するときフラグがオン状態にあるとMCU12が判断するようにする。したがって、揮発エラーが一部のフラグ領域に発生しても、フラグをオンと正しく判定できる。また図7(e)で“FFFFH”を保持する複数のフラグ領域のうちさらに揮発エラーを起こし別の状態に変化してしまう可能性もある。この場合でもサブ領域のいずれか一つでも“FFFFH”の値があればフラグはオン状態と判断できる。よって揮発エラーが生じても、そのエラーを適宜修正することなくフラグのオン状態及びオフ状態を正しく判定できる。
【0051】
なお、フラグ内の複数のフラグ領域80a〜80hに、“0000H”の値を有するものと“FFFFH”の値を有するものとが混在する場合、または複数のフラグ領域80a〜80hに“0000H”、“FFFFH”のいずれの値とも存在しない場合には、フラグエラーとして扱う。
【0052】
この実施の形態ではフラグ領域の数および各フラグ領域を構成するビットの数は、上記のそれぞれ8個及び16個ビットに限定されるものではなく、他の複数個の値でもよい。
【図面の簡単な説明】
【図1】この発明の実施の形態1によるコンピュータシステムを示すブロック図である。
【図2】図1のシステムで使用される不揮発性メモリ13の記憶領域の構成を示す構成図である。
【図3】消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cの具体的な構成を示す構成図である。
【図4】消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cにより示されるブロック#0、#1の状態を説明するための説明図である。
【図5】不揮発性メモリ13の電源投入時の動作を示すフローチャート図である。
【図6】不揮発性メモリ13の書き込み動作を示すフローチャート図である。
【図7】不揮発性メモリ13の記憶領域の別の構成を示す構成図である。
【図8】この発明の実施の形態2による消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cの具体的な構成図である。
【符号の説明】10…コンピュータシステム、12…マイクロコントローラ(MCU)、13…不揮発性メモリ、14…ランダムアクセスメモリ(らM)、F0S、F1S…消去開始フラグ、F0C、F1C…消去完了フラグ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a nonvolatile memory for storing a flag referred to for its own control such as erasing, and a data storage device having the same.
[0002]
[Prior art]
Non-volatile memories such as flash memories are known as those that can update stored data. However, when updating the storage data of the flash memory, new data is written after erasing the original data once instead of overwriting the original data.
The storage area of the flash memory is composed of a plurality of blocks, and each block includes a plurality of memory cells. Data is erased in block units. The stored contents are erased in block units larger than the data write unit. For example, the capacity of writing data by one address designating a writing area is several bytes, whereas the capacity of data erasing by one address designating a block to be erased is several kilobytes.
[0003]
One problem here is that the power is shut off during the block erasing operation. When the power is turned on again, the erasure in the block is not completely performed. If data is written to a block that has not been erased normally, normal data cannot be stored and an error occurs in the operation of the nonvolatile memory.
In order to prevent this problem, according to a conventional technique, erase information bits respectively corresponding to a plurality of blocks are provided in a nonvolatile memory. This erase information bit indicates the erase state of the corresponding block. By referring to the erase information bit when the power is turned on, it can be determined whether the corresponding block has been completely erased. If the data has not been completely erased, the corresponding block may be erased again. Such a technique is disclosed, for example, in Patent Document 1 below.
[0004]
[Patent Document 1]
JP 2001-250388 A
[0005]
[Problems to be solved by the invention]
Referring to FIG. 1 of Patent Document 1, an area (erase information storage area) different from a block (memory cell area) that is a data storage area is provided, and erase information bits corresponding to each block are stored in this area. Have been. This area is composed of a nonvolatile storage element that can be erased independently of the block. However, this independently erasable area is separately provided exclusively for storing the erasure information bits, and this increases the cost of the nonvolatile memory.
[0006]
Therefore, FIG. 3 of Patent Document 1 discloses an example in which an erasure information bit is provided in a block for storing data instead of providing a dedicated storage area. However, each block has its own erase information bit. Therefore, even in this example, there is still a problem when the power supply is suddenly cut off during the erase operation of the block. When power is cut off during the erase operation of a block, there may be an incomplete erase state in which some areas of the block are erased and other areas are not erased. Therefore, there is a possibility that the erasure information on the block has incorrect information. For example, according to FIG. 4 of Patent Document 1, if the power is cut off in the middle of step S15, the erasure information part may have an incorrect value of “10”. When the power is turned on again in this state, it is erroneously determined that the erasing or the erasing is completed, and the data is written while the block is incomplete.
[0007]
In addition, there is a volatile error in the nonvolatile memory in which the state stored by writing changes in the middle. Patent Document 1 also shows different states of three values of “00”, “10”, and “11” as one piece of erase information. For example, if "11" changes to "10" due to a volatilization error, erasure information will be erroneously determined. In particular, when an erasure information bit is provided in a block as shown in FIG. 3 of Patent Document 1, some nonvolatile memories require that the block be once erased in order to correct a volatile error. At that time, it is necessary to take measures such as erasing the block after saving the data in the block or the like to another memory.
[0008]
Therefore, an object of the present invention is to provide a nonvolatile memory for storing a flag referred to for its own control, which can express the contents of the flag correctly even if the power is cut off during erasing of the block, and provide the flag. Another object of the present invention is to provide a nonvolatile memory with reduced cost.
Another object of the present invention is to provide a nonvolatile memory capable of correctly grasping the erase state of a block even when power is cut off, and a data storage device having the same.
Still another object of the present invention is to provide a nonvolatile memory capable of correctly recognizing information to be referred even when a nonvolatile error occurs, and a data storage device having the same.
[0009]
[Means for Solving the Problems]
The non-volatile memory according to the present invention has flags each of which is provided corresponding to each of the first and second blocks, which are units of erasing, and represents information on each of the first and second blocks. A flag corresponding to one of the first and second blocks is provided in the other of the first and second blocks. Even if the power is cut off during the erasing operation of one of the first and second blocks, the contents of the flag do not change unexpectedly, so that the flag holds the correct content. Moreover, since it is not necessary to provide a special storage area for providing a flag corresponding to one of the blocks, the cost can be reduced.
By providing a flag corresponding to the other block in one of the blocks, even if the power is cut off while the other block is being erased, the contents of the corresponding flag do not change suddenly. Therefore, the flag holds the correct content. Moreover, since it is not necessary to provide a special storage area for providing a flag corresponding to the other block, the cost can be further reduced.
[0010]
Further, the nonvolatile memory according to the present invention, when each of the plurality of blocks is provided corresponding to each of a plurality of blocks serving as an erasing unit and has a flag indicating information on each block, each flag is stored in the plurality of blocks. In other blocks. Even if the power is cut off during the erase operation of any of the plurality of blocks, the contents of the flag do not change suddenly. Moreover, it is not necessary to provide a special storage area for providing a flag corresponding to each of the plurality of blocks.
[0011]
The flag particularly indicates a state related to erasure of the block, and includes, for example, a first flag indicating that the block is in an erasable state and a second flag indicating that the erasure of the block is completed. As a result, even if the power is cut off in the middle, the erase state of the block can be correctly known by referring to these flags.
If the first flag is set but the second flag is not set, it can be determined that the corresponding block is in an erasable state, and if both the first and second flags are set, Can be determined that the block has been erased and data can be written or has already been used for writing. Since the erase state of the block can be known after the power is turned on again, it is possible to prevent data from being written while the block is not sufficiently erased.
[0012]
Each flag has a plurality of flag areas each consisting of a plurality of bits. When at least one of the plurality of flag areas has a certain value, each flag indicates a certain state. Even if a volatilization error occurs in any of the plurality of flag areas, if at least one volatilization error does not occur in another area, the flag indicates a normal state.
[0013]
Therefore, according to the data storage device of the present invention, when the controller that controls the nonvolatile memory with reference to the flag provided in the nonvolatile memory has at least one of a plurality of flag areas in the flag having a certain value, Is determined to be in a specific state, and appropriate processing can be performed according to the state.
[0014]
BEST MODE FOR CARRYING OUT THE INVENTION
An embodiment of the present invention will be described with reference to the drawings. The same reference numerals in the drawings denote the same or corresponding components.
Embodiment 1 FIG.
FIG. 1 shows a configuration diagram of a computer system 10 with a security function according to the first embodiment. The system 10 is composed of an integrated circuit formed on a single semiconductor chip, and is commonly connected to a bus 11 by a microcontroller (MCU) 12, a nonvolatile memory 13, a random access memory (RAM) 14, a read only memory. A memory (ROM) 15 and an encryption / decryption circuit 16 are provided. Data and programs are transferred between the MCU 12 and the nonvolatile memory 13, the RAM 14, the ROM 15, and the encryption / decryption circuit 16 via the bus 11. The MCU 12 executes a program stored in the ROM 15 or the nonvolatile memory 13 to control the entire system. When data communication is performed between the system 10 and the outside, the encryption / decryption circuit 16 encrypts transmission data, and the encrypted data is transmitted to the outside. The encryption / decryption circuit 16 decrypts encrypted data received from the outside, and the decrypted data is processed in the system 10.
[0015]
The non-volatile memory 13 is a rewritable memory having a plurality of blocks, each of which serves as a data erasing unit (a unit of a memory cell erased by one address designation), as in the prior art. Known flash memories are preferred. The plurality of blocks have the same capacity, and each block has, for example, about 2K to 64K bytes. On the other hand, the unit of data writing (the number of bits of data that can be written by one address specification) is smaller than the unit of erasing (the capacity of one block). For example, the writing unit is 2 bytes (= 16 bits).
[0016]
FIG. 2 shows the structure of the nonvolatile memory 13 and its stored contents. The non-volatile memory 13 has, for example, five blocks # 0 to # 4. The three blocks # 2 to # 4 store the contents on the assumption that they are not rewritten. The nonvolatile memory 13 stores a program executed by the MCU 12, a management number, a secret key and a public key used by the encryption / decryption circuit 16 when encrypting and decrypting data, and the like.
On the other hand, each of the two blocks # 0 and # 1 stores a data storage area 21 to which data is frequently written during the operation of the system 10, and two flag areas 22 and 23 for storing flags, respectively.
[0017]
Flags respectively corresponding to blocks # 0 and # 1 are provided. The flag indicates information on erasure of the corresponding block. The flag corresponding to each block is stored in the flag areas 22 and 23 of another block different from the corresponding block among the blocks # 0 and # 1. The MCU 12 controls the erasure of the nonvolatile memory 13 and the writing of data with reference to a flag indicating information relating to erasure. Therefore, one data storage device is configured by the nonvolatile memory 13 and the MCU 12 that controls the nonvolatile memory 13.
[0018]
The flag indicating the information about the erasure specifically includes an erasure start flag and an erasure completion flag. The erase start flag indicates whether the corresponding block is in an erasable state, and the erase completion flag indicates whether the corresponding block has been erased. When the block is in the erasable state, the corresponding erase start flag is turned on, and when the block is completely erased, the corresponding erase start flag is turned on. The erase start flags F0S and F0C of the block # 0 are stored in the block # 1, and the erase start flags F1S and F1C of the block # 1 are stored in the block # 0.
[0019]
When data is erased, all memory cells in the block are cleared to zero. Therefore, if the block # 0 is erased, the two flags F1S and F1C corresponding to the block # 1 are also cleared to zero. This cleared state is set to the off state of the flags F1S and F1C. Similarly, if block # 1 is erased, two flags F0S and F0C corresponding to block # 0 are also cleared. This cleared state is set to the off state of the flags F0S and F0C. The state where a specific value is written in each of the flags F0S, F0C, F1S, and F1C is determined to be the flag F0S and F0C.
[0020]
FIG. 3 shows a specific configuration example of each of the flags F0S, F0C, F1S, and F1C.
The flag is composed of a plurality of bits, and particularly has the same bit number (16 bits) as the write unit of the nonvolatile memory 13. When the flag has a value (first value) of “0000H” in which all bits are all 0 as shown in FIG. 3A, the flag is turned off (H is the value of the previous four digits “0000” of 16). It indicates that it is expressed in radix. The same applies hereinafter.) When the flag has a second value, here, as shown in FIG. 3B, when all bits of the flag have a value of “1111H” (second value), which is 1, the flag is turned on. If the 16 bits of the flag have another value, a flag error is generated. For example, if a volatile error occurs in one bit in the flag when the flag is off (for example, when it changes to "0001H"), it is determined as an error, in other words, it is not determined to be on.
[0021]
The MCU 12 refers to the contents of the four flags F0S, F0C, F1S, and F1C and determines what state the blocks # 0 and # 1 are in.
FIG. 4 shows the states of blocks # 0 and # 1 for the four flags. In the state (1) in which all four flags are off, the blocks # 0 and # 1 are both in an initial state (before setup) in which they are not used. In a state (2) in which the erase start flag F1S is on and the other three flags are off, the block # 0 is used for writing and reading (in use), and the block # 1 is no longer used for data. It is in a state of being unable to write and waiting for erasure (waiting for erasure). In a state (3) in which both the erase start flag F1S and the erase completion flag F1C are on and the erase start flag F0S and the erase completion flag F0C are both off, block # 0 is in use and block # 1 is in use. It is in a state where the erasure has been completed and it is waiting to be used (erase completed). In a state (4) in which the erase start flag F0S is turned on and the other three flags are both turned off, the block # 0 is in a wait state for erasure, and the block # 1 is in use.
[0022]
In a state (5) in which the erase completion flag F0C is off and the other three flags are on, block # 0 is in a wait state for erase and block # 1 is in use. In a state (6) in which both the erase start flag F0S and the erase completion flag F0C are off and both the erase start flag F1S and the erase completion flag F1C are off, the block # 0 is in an erase completed state, and the block # 1 is in an erase completed state. It is in use. In a state (5) in which the erasure completion flag F1C is off and the other three flags are on, block # 0 is in use and block # 1 is in an erasure waiting state. States (8) other than the states (1) to (7) are flag errors.
[0023]
Next, the erasing and writing operations of the nonvolatile memory 13 will be described. FIG. 5 is a flowchart showing the operation of the nonvolatile memory 13 when the power is turned on.
In the present embodiment, the erasure in the block of the nonvolatile memory 13 is performed when the power is turned on. When the power is turned on, the MCU 12 first copies the flags F0S, F0C, F1S, and F1C stored in the nonvolatile memory 13 to the RAM 14 (S21). Next, the MCU 12 checks the contents of the flags F0S, F0C, F1S, and F1C held in the RAM 14 (S23).
[0024]
As a result of the flag check, if the flag is in the state (1), it is determined that the setup has not been performed, and writing can be performed in both the blocks # 0 and # 1. Here, the block on which data is first written is written in block # 0, and the MCU 12 turns on both the erase start flags F1S and F1C corresponding to block # 1 (S25). As a result, all the flags are in the state (3). Then, in order to specify the storage location of the block # 0 in which data is written first after the power is turned on, the MCU 12 stores the head address in the block # 0 in the RAM 14 (S27).
[0025]
When it is determined in step S23 that all the flags are in the state (7), the MCU 12 selects the block # 1 waiting to be erased and erases the stored contents (S29). The erase start flag F0S and the erase completion flag F0C are both turned off by erasing the block # 1. At this time, all flags indicate the state (2). Thereafter, the MCU 12 turns on the erase completion flag F1C on the block # 0 (S31). At this time, all the flags are in the state (3). Then, the storage location of the block # 0 where data is written first after the power is turned on, that is, the location following the location where the data was last written in the block # 0 is determined (S33). The MCU 12 reads the stored contents of the block # 0 in order from the head address, and searches for the address of the data written last. For example, if "1" is always included in the write data, the address of the last written data can be easily known by searching which data has "1" stored last. Then, the next address is stored in the RAM 14 as a storage location where data is first written (S35).
[0026]
If the power is turned off during the erasure in step S29, the block # 1 may not be completely erased even though the flag has changed to the state (2). In this case, the power may be turned on again to erase the block # 1 again. Therefore, when it is determined in step S23 that all flags are in the state (2), the MCU 12 deletes the information in step S29.
[0027]
If it is determined in step S23 that all the flags are in the state (5), the MCU 12 selects the block # 0 waiting to be erased and erases its stored contents (S37). By erasing the block # 0, the erasure start flag F1S and the erasure completion flag F1C are both turned off, and the entire flag indicates the state (4). Thereafter, the MCU 12 sets the erasure completion flag F0C on the nonvolatile memory 13 to ON (S39). At this time, the flag changes to state (6) (S39). Then, the storage location of the block # 1 to which data is first written after the power is turned on is determined (S41). In the same manner as in step S33, the MCU 12 reads the storage contents of the block # 1 sequentially from the top address, and searches for the address of the data written last. The next address is stored in the RAM 14 as a storage location where data is first written (S43).
[0028]
If the power is turned off during the erasing in step S37, the block # 0 may not be completely erased even though the flag has changed to the state (4). In this case, the power may be turned on again to erase block # 0 again. Therefore, the process of step S37 is also performed when it is determined in step S23 that all flags are in state (4).
[0029]
If it is determined in step S23 that all the flags are in state (3), the MCU 12 performs the processing in steps S33 and S35 without performing the block erasing operation. Further, if it is determined in step S23 that all the flags are in the state (6), the MCU 12 performs the processing in steps S41 and S43 without performing the block erasing operation. When all the flags are determined to be in the state (8) in step S23, the MCU 12 determines that an error has occurred, and performs error processing as necessary.
[0030]
The MCU 12 also rewrites the data in the RAM 14 so that the state of the flag in the nonvolatile memory 13 rewritten in steps S25, S31, and S39 is reflected in the flag copied to the RAM 14.
[0031]
The operation of the nonvolatile memory 13 when data is actually written after the power is turned on will be described with reference to the flowchart of FIG.
Referring to FIG. 6, when the writing process is started, first, the contents of flags F0S, F0C, F1S, and F1C of RAM 14 to which the same contents as in nonvolatile memory 13 are copied are checked (S51). When it is determined in step S51 that all the flags are in the state (3), it is known that the block # 0 is currently in use, so the MCU 12 writes data to the block # 0 (S53). In steps S27, S35, etc., since the address of the block # 0 to which data is to be written is held in the RAM 14, the data is written with reference to the address.
[0032]
Next, the MCU 12 determines whether the next data can be written to the area for storing the data of the block # 0 (S55). This is determined by whether or not the entire data storage area of block # 0 has been written. For example, it is easily determined whether or not the address referred to in step S53 is the last address of the data storage area in block # 0. Is determined. In the case of Yes in step S55, the MCU 12 adds a predetermined value to the address of the location where the data was written in step S53, and generates an address in the block # 0 to which data is to be written next. Then, the address stored in the RAM 14 is rewritten with the generated new address (S57). On the other hand, if the flag is No in the state (3) in step S55, the MCU 12 sets the erase start flag FOS in the block # 1 to ON (S59). The MCU 12 also reflects the ON state on the erase start flag F0S copied to the RAM 14. At this time, all flags are set to state (5). Next, data is written to the erased block # 1, and the address stored in the RAM 14 is rewritten to the head address of the block # 1 (S61).
[0033]
When it is determined in step S51 that all the flags are in the state (6), it is known that the block # 1 is currently in use, so the MCU 12 writes data in the block # 1 (S63). Since the address of the block # 1 to which data is to be written is held in the RAM 14 in step S43 and the like, the data is written with reference to the address.
[0034]
Next, the MCU 12 determines whether the next data can be written in the data storage area of the block # 1 (S65). This is determined by whether or not the entire data storage area of block # 1 has been written. For example, it is easily determined whether or not the address referred to in step S63 is the last address of the data storage area in block # 1. Is determined. If Yes in step S65, the MCU 12 adds a predetermined value to the address of the location where the data was written in step S63, and generates an address in the block # 1 where the next data is written. The address stored in the RAM 14 is rewritten with the generated new address (S67). If No in step S65, the MCU 12 sets the erase start flag F1S in the block # 0 to ON (S69). The MCU 12 also reflects the ON state on the erase start flag F1S copied to the RAM 14. At this time, all the flags are in the state (7). Next, data is written to the erased block # 0, and the address stored in the RAM 14 is rewritten to the head address of the block # 0 (S71).
[0035]
If it is determined in step S51 that all the flags are in the state (7), the MCU 12 performs the process in the step S53 as in the case of the state (3). Next, in the case of Yes in step S55, the process of step 57 is performed as in the case of state (3). State {circle around (7)} is a state where block # 0 is in use and block # 1 has not been erased yet and is waiting for erasure. Therefore, in the case of No in step S55, writing cannot be performed unless one of blocks # 0 and # 1 is erased. Therefore, the MCU 12 determines that an error has occurred, and performs error processing as necessary.
[0036]
When it is determined in step S51 that all the flags are in state (5), the MCU 12 performs the process in step S63 as in state (6). Next, in the case of Yes in step S65, the process of step 67 is performed as in the case of state (6). In the state (6), the block # 1 is in use and the block # 0 is in a state of waiting for erasure that has not yet been erased. Therefore, in the case of No in step S65, writing cannot be performed unless one of blocks # 0 and # 1 is erased. Therefore, the MCU 12 determines that an error has occurred, and performs error processing as necessary.
[0037]
When it is determined in step S51 that all flags are in the state (8), the MCU 112 determines that an error has occurred, and performs error processing as necessary.
[0038]
If all the flags are in state (5) at the end of step S61, and if the next data is to be written without turning off the power, the MCU 12 proceeds to step S63 by checking the flag in step S51 and proceeds to block # 1. Next data is written to If the next data is not written and the power is turned off, the MCU 12 moves to step S37 by cycling the power and checking the flag in step S23 in FIG. 5 to erase block # 0.
[0039]
If all the flags are in state (7) at the end of step S71, and if the next data is to be written without turning off the power, the MCU 12 proceeds to step S53 by checking the flag in step S51, and proceeds to block # 0. Next data is written to Conversely, if the power is turned off without writing the next data, the MCU 12 moves to step S29 by cycling the power and checks the flag in step S23 in FIG. 5 to erase block # 1.
[0040]
After the end of step S57, if the power is turned off without writing the next data, and if the flag state at that time is state {7}, the process proceeds to step S29 by referring to FIG. The MCU 12 erases the block # 1. If all the flags are in the state (3), the erasure of the block # 1 has already been completed, and the process moves to the step S33 by the flag check in the step 23 in FIG. If the next data is written without power cutoff after step S57, the MCU 12 re-checks by step S51 whether the flag at that time is state (7) or state (3). The processing of step S53 is performed, and the next data is written to block # 0.
[0041]
After the end of step S67, if the power is turned off without writing the next data, and if the flag state at that time is state (5), the process proceeds to step S37 by checking step S23 with reference to FIG. The MCU 12 erases the block # 0. If all the flags are in the state (6), the erasure of the block # 0 has already been completed, and the process proceeds to the step S41 by the flag check in the step 23 in FIG. If the next data is written without power interruption after step S67, the MCU 12 is checked by step S51, regardless of whether the flag at that time is state (5) or state (6). The processing of step S63 is performed again, and the next data is written to block # 1.
[0042]
According to this embodiment, a flag indicating information relating to erasure of each of a plurality of blocks (blocks # 0 and # 1) is provided in another block (blocks # 1 and # 0) of the plurality of blocks. Even if the block itself is erased, the flag corresponding to the erased block does not change. Therefore, even if the power is cut off during the erasure of the block, the state of the flag corresponding to the block does not change carelessly, and the flag can indicate a normal state. Further, since it is not necessary to provide a storage area in the nonvolatile memory 13 that can be erased independently of the block exclusively for holding the flag, the cost of the memory can be reduced.
[0043]
At this time, since two types of flags indicating information relating to block erasure, ie, an erase start flag and an erase completion flag, are prepared, even if the power is cut off during the erasure of the block, or Even if is blocked, the correct state of the block can be known from the flag.
For example, with reference to FIG. 5, even if the power is cut off during the erasure of block # 1 in step S29, the corresponding erase start flag F1S and erase completion flag F1C in block # 0 maintain ON and OFF, respectively. . When the power is turned on again, the block # 1 can be determined to be in the erase waiting state. Therefore, by performing the process of erasing the block # 1 again, data can be normally written to the erased block # 1. Even if the power is turned off after the erasure of block # 1 is completed in step S29, the corresponding erasure start flag F1S and erasure completion flag F1C in block # 0 both indicate ON. When the power is turned on again, it can be determined that the erasure of the block # 1 has been completed, so that the erasing process of the block # 1 becomes unnecessary.
[0044]
In this embodiment, the number of blocks in the nonvolatile memory 13 to which data is sequentially written while the system 10 is operating has been described as two, but may be an arbitrary number of three or more. At this time, information on erasure of each block (erasure start flag and erasure completion flag) may be provided in each of the other (N-1) blocks to which data is written. For example, if the number of blocks is three, referring to FIG. 7, the erase start flags F0S-1 and F0S-2 and the erase completion flags F0C-1 and F0C-2 corresponding to block # 0 are the other two blocks. And the erase start flags F1S-2 and F1S-0 and the erase completion flags F1C-2 and F2C-0 corresponding to the block # 1 are provided in each of the other two blocks and correspond to the block # 2. The erase start flags F2S-0 and F2S-1 and the erase completion flags F2C-0 and F2C-1 are provided in each of the other two blocks.
[0045]
Further, the MCU 12 realizes various functions other than the control of the nonvolatile memory 13 to control other units of the system 10. However, instead of causing the MCU 12 to control writing and erasing of the nonvolatile memory 13, a dedicated memory controller may be separately provided and the dedicated controller may control writing and erasing of the memory 13. This controller may be a microcomputer that functions by executing a program, or may be configured by a hard-wired logic circuit.
[0046]
Embodiment 2 FIG.
FIG. 7 shows another configuration example of each of the flags F0S, F0C, F1S, and F1C. As shown in FIG. 7A, each flag has a plurality of flag areas 80a to 80h each including a plurality of bits. Each flag area is represented by, for example, the number of bits (2 bytes = 16 bits) of data written by one address specification. The number of flag areas 80 is, for example, eight.
[0047]
When a block is erased to turn off the flag, all bits of the flag provided in the erased block become zero as shown in FIG. 7B, and the entire flag area is set to the first of "0000H". Has a value. When the flag is set to ON, all bits of the flag are set to "1" as shown in FIG. 7C, that is, the entire flag area has the second value of "FFFFH".
[0048]
Here, even if all bits become zero by block erasure as shown in FIG. 7B, there is a possibility that the state of the bits changes due to a volatile error of the nonvolatile memory. For example, FIG. 7D shows an example in which a volatile error has occurred. The state has changed to “0010H” in the flag area 80a, “0030H” in the flag area 80c, and “00d0” in the flag area 80d. In this non-volatile memory 13, it is assumed that if the state of any one bit changes from 0 to 1, 2 bytes of a writing unit including the changed bit cannot be additionally written. Therefore, the only way to correct the volatile error is to erase the block once.
[0049]
Therefore, the MCU 12 determines that the flag is off when at least one of the plurality of flag areas 80a to 80h has the first value “0000H”. Therefore, even if a volatilization error occurs partially in the state of FIG. 7B, the flag can be correctly determined to be off without erasing the block to correct the volatilization error.
[0050]
Further, when the flag indicating the off state is set to on as shown in FIG. 7D, the MCU 12 reads a plurality of flag areas in the flag and determines whether or not a volatilization error has occurred. . Then, as shown in FIG. 7E, the MCU 12 writes “FFFFH” in all the flag areas (5 of 80b and 80e to 80h) in which all the bits are zero, and writes the flag area (80a , 80c, and 80d) are left as they are. When at least one of the plurality of flag areas 80a to 80h has the second value “FFFFH” in the at least one flag area, the MCU 12 determines that the flag is on. Therefore, even if a volatilization error occurs in some flag areas, the flag can be correctly determined to be on. In addition, in FIG. 7E, a volatilization error may occur in a plurality of flag areas holding “FFFFH”, and the state may be changed to another state. Even in this case, if any one of the sub-areas has a value of “FFFFH”, the flag can be determined to be in the ON state. Therefore, even if a volatilization error occurs, the ON state and the OFF state of the flag can be correctly determined without appropriately correcting the error.
[0051]
In addition, when the plurality of flag areas 80a to 80h include both the one having the value of "0000H" and the one having the value of "FFFFH", or the plurality of flag areas 80a to 80h have "0000H", If none of the values of “FFFFH” exists, it is treated as a flag error.
[0052]
In this embodiment, the number of flag areas and the number of bits constituting each flag area are not limited to the above-mentioned 8 and 16 bits, respectively, but may be other plural values.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a computer system according to Embodiment 1 of the present invention.
FIG. 2 is a configuration diagram showing a configuration of a storage area of a nonvolatile memory 13 used in the system of FIG.
FIG. 3 is a configuration diagram showing a specific configuration of erase start flags F0S and F1S and erase completion flags F0C and F1C.
FIG. 4 is an explanatory diagram for explaining states of blocks # 0 and # 1 indicated by erasure start flags F0S and F1S and erasure completion flags F0C and F1C.
FIG. 5 is a flowchart showing an operation of the nonvolatile memory 13 when power is turned on.
FIG. 6 is a flowchart showing a write operation of the nonvolatile memory 13;
FIG. 7 is a configuration diagram showing another configuration of a storage area of the nonvolatile memory 13;
FIG. 8 is a specific configuration diagram of erase start flags F0S and F1S and erase completion flags F0C and F1C according to the second embodiment of the present invention.
[Description of Signs] 10 ... Computer system, 12 ... Microcontroller (MCU), 13 ... Non-volatile memory, 14 ... Random access memory (etc.), F0S, F1S ... Erase start flag, F0C, F1C ... Erase complete flag

Claims (8)

その一つ一つが消去の単位となる第1及び第2のブロックを含んだ不揮発性メモリであって、前記第1及び第2のブロックにそれぞれ対応して設けられ前記第1及び第2のブロックそれぞれに関する情報を表すフラグを有し、前記第1及び第2のブロックの一方に対応する前記フラグを前記第1及び第2のブロックの他方に持たせた、不揮発性メモリ。Each of the non-volatile memories includes first and second blocks serving as an erasing unit, and is provided corresponding to the first and second blocks, respectively. A non-volatile memory having a flag indicating information about each of them, wherein the flag corresponding to one of the first and second blocks is provided in the other of the first and second blocks. 前記第1及び第2のブロックの他方に対応した前記フラグを前記第1及び第2のブロックの一方に持たせた、請求項1記載の不揮発性メモリ。The nonvolatile memory according to claim 1, wherein the flag corresponding to the other of the first and second blocks is provided in one of the first and second blocks. その一つ一つが消去の単位となる複数のブロックを含んだ不揮発性メモリであって、前記複数のブロックにそれぞれ対応して設けられ前記複数のブロックそれぞれに関する情報を表すフラグを有し、前記複数のブロックの各々に対応する前記フラグは、前記複数のブロックのうちの他のブロックに設けた、不揮発性メモリ。Each of the nonvolatile memories includes a plurality of blocks each serving as an erasing unit, and includes a flag provided corresponding to each of the plurality of blocks and representing information about each of the plurality of blocks. The non-volatile memory, wherein the flag corresponding to each of the blocks is provided in another of the plurality of blocks. 前記フラグ各々は、対応のブロックが消去可能な状態であることを示す第1のフラグと、対応のブロックの消去が完了したことを示す第2のフラグとを含む、請求項1ないし請求項3のいずれか一項に記載の不揮発性メモリ。4. The flag according to claim 1, wherein each of the flags includes a first flag indicating that the corresponding block is in an erasable state, and a second flag indicating that the erasing of the corresponding block is completed. The nonvolatile memory according to any one of claims 1 to 4. 前記フラグ各々は、各々が複数のビットからなる複数のフラグ領域を有し、前記複数のフラグ領域の任意の少なくとも一つがある特定の値を有するとき各フラグがある特定の状態を示すようにした請求項1ないし請求項3のいずれか一項に記載の不揮発性メモリ。Each of the flags has a plurality of flag areas each consisting of a plurality of bits, and each flag indicates a certain state when at least one of the plurality of flag areas has a certain value. The nonvolatile memory according to claim 1. その一つ一つが消去の単位となる第1及び第2のブロックを含んだ不揮発性メモリ、および、
前記不揮発性メモリの書き込み及び消去を制御するコントローラを備え、
前記第1及び第2のブロックの各々は、それぞれフラグを記憶する第1および第2のフラグ領域と、データを記憶するデータ記憶領域とを有し、
前記コントローラは、
前記第1のブロックのデータ記憶領域にこれ以上データを書き込まないとき前記第2のブロックにおける第1のフラグ領域のフラグをある値にセットし、
前記第1のブロックの消去が完了したとき前記第2のブロックにおける第2のフラグ領域のフラグをある値にセットし、
前記第2のブロックのデータ記憶領域にこれ以上データを書き込まないとき前記第1のブロックにおける第1のフラグ領域のフラグをある値にセットし、
前記第2のブロックの消去が完了したとき前記第1のブロックにおける第2のフラグ領域のフラグをある値にセットするように、前記不揮発性メモリを制御するデータ記憶装置。
A non-volatile memory including first and second blocks each of which is a unit of erasing, and
A controller for controlling writing and erasing of the nonvolatile memory,
Each of the first and second blocks has first and second flag areas for storing flags and a data storage area for storing data, respectively.
The controller is
When no more data is to be written to the data storage area of the first block, a flag of a first flag area in the second block is set to a certain value;
When the erasure of the first block is completed, a flag of a second flag area in the second block is set to a certain value;
When no more data is to be written to the data storage area of the second block, a flag in a first flag area of the first block is set to a certain value;
A data storage device that controls the nonvolatile memory such that a flag in a second flag area in the first block is set to a certain value when erasing of the second block is completed.
前記第1ないし第4のフラグ領域の各フラグは、各々が複数のビットからなる複数のフラグ領域を有し、前記コントローラは前記複数のフラグ領域の任意の少なくとも一つがある特定の値を有するとき各フラグがセットされたと判断する請求項6記載のデータ記憶装置。Each flag of the first to fourth flag areas has a plurality of flag areas each consisting of a plurality of bits, and the controller is configured such that at least one of the plurality of flag areas has a specific value. 7. The data storage device according to claim 6, wherein it is determined that each flag is set. その一つ一つが消去の単位となる複数のブロックを含んだ不揮発性メモリと、
前記不揮発性メモリに設けられたフラグを参照して前記不揮発性メモリを制御するコントローラを備え、
前記フラグは、各々が複数のビットからなるフラグ複数の領域を有し、
前記コントローラは、前記複数のフラグ領域の任意の少なくとも一つがある特定の値を有するとき前記フラグがある特定の状態であると判断するデータ記憶装置。
A nonvolatile memory including a plurality of blocks each of which is a unit of erasing,
A controller that controls the nonvolatile memory with reference to a flag provided in the nonvolatile memory,
The flag has a plurality of areas each consisting of a plurality of bits,
The data storage device, wherein the controller determines that the flag is in a certain state when any one of the plurality of flag areas has a certain value.
JP2002280956A 2002-09-26 2002-09-26 Nonvolatile memory and data storage device having the same Expired - Fee Related JP4031693B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002280956A JP4031693B2 (en) 2002-09-26 2002-09-26 Nonvolatile memory and data storage device having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002280956A JP4031693B2 (en) 2002-09-26 2002-09-26 Nonvolatile memory and data storage device having the same

Publications (3)

Publication Number Publication Date
JP2004118937A true JP2004118937A (en) 2004-04-15
JP2004118937A5 JP2004118937A5 (en) 2005-09-22
JP4031693B2 JP4031693B2 (en) 2008-01-09

Family

ID=32275529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002280956A Expired - Fee Related JP4031693B2 (en) 2002-09-26 2002-09-26 Nonvolatile memory and data storage device having the same

Country Status (1)

Country Link
JP (1) JP4031693B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003655A (en) * 2011-06-13 2013-01-07 Denso Corp Control device for writing data in flash memory
WO2015194100A1 (en) * 2014-06-19 2015-12-23 株式会社デンソー Storage device, flash memory control device, and program
US9257192B2 (en) 2013-02-12 2016-02-09 Samsung Electronics Co., Ltd. Memory system performing multi-step erase operation based on stored metadata
WO2019159716A1 (en) * 2018-02-14 2019-08-22 日立オートモティブシステムズ株式会社 Electronic control device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003655A (en) * 2011-06-13 2013-01-07 Denso Corp Control device for writing data in flash memory
US9257192B2 (en) 2013-02-12 2016-02-09 Samsung Electronics Co., Ltd. Memory system performing multi-step erase operation based on stored metadata
WO2015194100A1 (en) * 2014-06-19 2015-12-23 株式会社デンソー Storage device, flash memory control device, and program
JP2016004558A (en) * 2014-06-19 2016-01-12 株式会社デンソー Storage device, flash memory control device, and program
WO2019159716A1 (en) * 2018-02-14 2019-08-22 日立オートモティブシステムズ株式会社 Electronic control device
JPWO2019159716A1 (en) * 2018-02-14 2020-12-17 日立オートモティブシステムズ株式会社 Electronic control device
US11231871B2 (en) 2018-02-14 2022-01-25 Hitachi Automotive Systems, Ltd. Electronic control device with non-volatile memory

Also Published As

Publication number Publication date
JP4031693B2 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
JP4188744B2 (en) Memory card
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
JP4160625B1 (en) Error detection control system
JP4713867B2 (en) Memory controller, memory device, and memory controller control method
US20090100290A1 (en) Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method
US20040139310A1 (en) Information processing apparatus, memory management apparatus, memory management method, and information processing method
JP2006164273A (en) Protection booting device and method
JP2006048893A (en) Flash memory device with defective block managing function and defective block managing method of the same
US20160321083A1 (en) Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
WO2007000862A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP2011514568A (en) Write once memory device and storage subsystem of a computer comprising a write many memory device and associated method
JP2004258946A (en) Memory card
US11720249B2 (en) Data storage device and method for rewriting parameters thereof
JP4843222B2 (en) Semiconductor memory device control method, memory card, and host device
JP3830867B2 (en) Single-chip microcomputer and its boot area switching method
JP2008225672A (en) Semiconductor memory device
JP4031693B2 (en) Nonvolatile memory and data storage device having the same
JP2006338083A (en) Memory controller
JP3730432B2 (en) Storage system, storage device, and storage data protection method
JP2000250817A (en) Storage system, storage device and stored data protecting method
JP2011175361A (en) Data storage device and method
JP2006504202A (en) Method for driving a memory structure
JP4580724B2 (en) Nonvolatile memory control method
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
WO2023084645A1 (en) Memory controller and flash memory system

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050415

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070903

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101026

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121026

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121026

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131026

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees