JP4766781B2 - Semiconductor memory device - Google Patents
Semiconductor memory device Download PDFInfo
- Publication number
- JP4766781B2 JP4766781B2 JP2001186418A JP2001186418A JP4766781B2 JP 4766781 B2 JP4766781 B2 JP 4766781B2 JP 2001186418 A JP2001186418 A JP 2001186418A JP 2001186418 A JP2001186418 A JP 2001186418A JP 4766781 B2 JP4766781 B2 JP 4766781B2
- Authority
- JP
- Japan
- Prior art keywords
- sector
- error
- spare
- data
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ブロック単位でリード/ライト/イレースされるフラッシュメモリ等を用いた不揮発性半導体記憶装置に関する。
【0002】
【従来の技術】
セクタ単位でリード、ライト、イレース処理される不揮発性半導体メモリとして、例えば三菱電機製M5M29F25611VPや日立製作所製HN29W25611があげられる。これらは2kバイトのセクタ単位でリード、ライト、消去処理されるフラッシュメモリである。従来のフラッシュメモリを用いた記憶装置は、ホストコンピュータが書き込むセクタアドレス(論理アドレス)をフラッシュメモリの物理アドレスに変換し、さらにホストコンピュータが発行したコマンドによってフラッシュメモリに対するセクタデータの読み出しや書き込みを行う。
【0003】
フラッシュメモリには、規定値以内の初期不良セクタや使用開始後に使用できなくなる不良セクタが存在する。このような初期的および後発的に起こる不良セクタに対しては、ホストコンピュータの論理アドレスを代替セクタの物理アドレスに変換する処理が必要になる。一方、一度書き込み/消去エラーが起こったセクタであっても再度書き込み/消去を行うと正常に動作するセクタが存在することも知られている。そのようなセクタのエラーは偶発的なエラーであると考えられている。
【0004】
【発明が解決しようとする課題】
従来は、書き込み/消去エラーが起こると無条件に不良セクタとみなし、偶発エラーセクタに対しても代替セクタへの変換を行っていた。そのため、正常に動作可能な偶発エラーセクタが使用されず無駄が生じていた。使用開始時においても予備セクタを十分確保しなければならず、予め確保すべきユーザの使用可能な記憶容量が抑制されていた。
【0005】
本発明の目的は、偶発エラーセクタを再利用することで、無駄なく記憶容量を使用でき、信頼性の高い低コストな半導体記憶装置を提供することである。
【0006】
【課題を解決するための手段】
本発明の半導体記憶装置は、データを記録する複数のユーザセクタと、ユーザセクタ毎に、該ユーザセクタの位置を示すアドレス、および、該ユーザセクタへの記録エラーの回数を示すエラーカウント値を対応させて規定するユーザセクタテーブルとを有する不揮発性メモリセルを備え、さらに前記ユーザセクタのうち記録エラーが発生したエラーセクタに対し、前記ユーザセクタテーブルに規定された該エラーセクタのエラーカウント値に基づいて、後にデータを記録するか否かを判定するコントローラを備えており、これにより上記目的が達成される。
【0007】
前記不揮発性メモリセルは、記録エラーが発生した場合に前記エラーセクタに代えてデータを記録する予備セクタをさらに有しており、 前記コントローラは、後にデータを記録すると判定した前記エラーセクタを、後に使用される予備セクタに変更してもよい。
【0008】
前記不揮発性メモリセルは、予備セクタ毎に、該予備セクタの位置を示すアドレス、および、該予備セクタへの記録エラーの回数を示すエラーカウント値を対応させて規定する予備セクタテーブルをさらに有していてもよい。
【0009】
前記コントローラは、前記エラーセクタのエラーカウント値が予め設定された値よりも小さい場合には、該エラーセクタに後にデータを記録すると判定し、大きい場合には、該エラーセクタには後にデータを記録しないと判定してもよい。
【0010】
前記予備セクタテーブルには、使用される予備セクタの順序が付されており、前記コントローラは、該エラーセクタに後にデータを記録すると判定した場合には前記順序に基づいて最先の予備セクタにデータを記録し、前記エラーセクタから変更された予備セクタには、最先の順序を付してもよい。
【0011】
前記コントローラは、前記エラーセクタのエラーカウント値と記録エラーが発生するまでの前記エラーセクタへの記録回数との比が、予め設定された値よりも小さい場合には、該エラーセクタに後にデータを記録すると判定し、大きい場合には、該エラーセクタには後にデータを記録しないと判定してもよい。
【0012】
前記予備セクタテーブルには、予備セクタが使用される順序が付されており、前記コントローラは、該エラーセクタに後にデータを記録すると判定した場合には、前記順序に基づいて最先の予備セクタにデータを記録し、前記エラーセクタから変更された予備セクタには、最後の順序を付してもよい。
【0013】
前記コントローラは、前記最先の予備セクタに続く予備セクタの順序を前にずらしてもよい。
【0014】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態1および2を説明する。
【0015】
(実施の形態1)
図1は、不揮発性メモリセル15を有する本発明の半導体記憶装置1の構成を示すブロック図である。半導体記憶装置1は、例えばフラッシュメモリであり、カード型半導体記憶装置1(例えばATAカード)である。カード型半導体記憶装置1は、デジタル機器により文字情報、画像情報、音楽情報等のデジタル情報を記録する外部記憶メディアとして用いられる。
【0016】
図1を参照して、カード型半導体記憶装置1は、半導体記憶装置1の内部動作を制御する内部コントローラ10と、内部コントローラ10の動作プログラムを格納するROMおよびRAM11と、フラッシュメモリのアクセスに必要な制御信号を予め定められたタイミングで生成し、フラッシュメモリへのアクセスを制御する制御シーケンサ12と、カードを装着した端末機(図示せず)がフラッシュメモリにアクセスする際の制御命令等を介在するための複数のレジスタ13(パラメータレジスタ13−1、コマンドレジスタ13−2、ステータスレジスタ13−3)と、読み出し、または書き込みの対象となるデータを一時的に格納するデータバッファ14と、大容量データを記録するメモリセルアレイからなるフラッシュメモリ15とを備えている。
【0017】
端末機(図示せず)がカード型半導体記憶装置1のフラッシュメモリ15にデータを記録し、フラッシュメモリ15からデータを読み出すには、端末機が、カード制御信号と、カードアドレスバスを介してアドレスデコーダ16に送るレジスタ選択のための情報と、カードデータバスを介してレジスタ13およびデータバッファ14に送るデータとによって各レジスタにアクセスし、データの読み出し、書き込みを行う。具体的には、端末機がパラメータレジスタ13−1にパラメータをセットしてコマンドレジスタ13−2にコマンドを書き込むと、内部コントローラ10はパラメータレジスタ13−1およびコマンドレジスタ13−2を読み、コマンドに応じた所定の処理を行う。コマンドの処理が正常に終了できたか、または、エラー終了したかは、ステータスレジスタ13−3を読み出して判断する。フラッシュメモリ15内のデータはデータバッファ14を介してアクセスされる。
【0018】
フラッシュメモリ15には、後述のようにユーザセクタの他に、不良セクタや、種々の制御に必要なデータが格納されたセクタがある。端末機からはユーザセクタに対して論理アドレスで参照されるため、内部コントローラ10は論理−物理アドレスの変換を行う。
【0019】
図2の(a)は、フラッシュメモリ15のメモリマップを示す。フラッシュメモリ15は、大きく、ユーザデータ記録領域15−1、ユーザセクタアドレス変換テーブル15−2、および、予備セクタアドレス変換テーブル15−3とを含む。ユーザデータ記録領域15−1は、ユーザの所望のデータを記録する領域である。ただし、ユーザデータ記録領域15−1には、データを格納するユーザセクタの他に、当初からデータを記録できない、または使用開始後にデータが記録できなくなった不良セクタ、および、不良セクタが発生した場合の代替として用いられる、本発明の特徴である予備セクタ(後述)も存在する。これらのセクタは、ランダムな物理アドレスの位置に混在する。ユーザーセクタには論理アドレスが割り当てられており、図1の例では[]内の数字で示す。同様に予備セクタにも論理番号が割り当てられている。
【0020】
図2の(b)は、本発明によるユーザセクタアドレス変換テーブル15−2を示す図である。ユーザセクタアドレス変換テーブル15−2には、論理アドレスであるオフセットパラメータkに対応するユーザセクタ[k]の物理アドレスUSR_PA[k]を得られるよう論理アドレス順に物理アドレスが格納されている。さらにテーブル15−2には、物理アドレスに加えてそのユーザセクタ[k]のエラーカウント値USR_ER[k]が格納されている。エラーカウント値USR_ER[k]とは、過去にそのセクタに書き込み/消去エラー(記録エラー)が生じた回数を表す値である。従来は、記録エラーが生じたセクタはその後使用していなかったが、本発明はそのようなセクタであっても再度書き込み/消去を行うと正常に動作する場合には再利用するので、エラーカウント値USR_ER[k]としてエラーの回数を保持することとした。例えば、エラーカウントが0のセクタ(オフセットパラメータk=2のユーザセクタ)はこれまでエラーが生じておらず、また、エラーカウントが3のセクタ(オフセットパラメータk=1のユーザセクタ)はすでに3回エラーが生じていることを表す。なお、以下では、一度記録エラーが起こったセクタであっても再度書き込み/消去を行うと正常に動作するセクタを、偶発エラーセクタと称する。
【0021】
図2の(c)は、予備セクタアドレス変換テーブル15−3を表す。予備セクタアドレス変換テーブル15−3には、論理アドレスであるオフセットパラメータiに対応する予備セクタ[i]の物理アドレスRSV_PA[i]を得られるよう論理アドレス順に物理アドレスが格納されている。「予備セクタ」とは、ユーザセクタに記録エラーが発生した場合に、ユーザデータを代わりに記憶する代替のためのセクタである。どのようにして代替するかは、図3を参照して詳述する。さらに物理アドレスに加えてそのセクタのエラーカウント値RSV_ER[i]を格納する。予備セクタのエラーカウント値RSV_ER[i]は0以上の値をとる。なお、後述のように予備セクタはデータを記録されるとユーザセクタとして機能するため、将来的にはユーザセクタアドレス変換テーブル15−2に登録されることとなる。そのため予備セクタもエラーカウント値RSV_ER[i]を保持する必要がある。
【0022】
アドレス変換テーブル15−2、15−3はフラッシュメモリセルアレイ15に格納されているので、電源が切られた後でも情報を保持でき、その一方で保持した情報を電気的に消去できる。
【0023】
続いて、偶発エラーであるか否かを判定してエラーセクタを再利用する処理を説明する。以下説明する処理は、主として内部コントローラ10(図1)の制御に基づく処理である。図3は、実施の形態1における記録エラー発生時の再書き込み処理のフローチャートを示す。まずエラーが発生したユーザーセクタアドレスの論理アドレスkと予備セクタの先頭番号iとを取得する(ステップS301)。次に、予備セクタの先頭番号iが所定の上限値を超えているか否かを判断して、予備セクタの有無をチェックする(ステップS302)。予備セクタの先頭番号iが予め確保しておいた予備セクタの数を超えていれば予備セクタは使い切ってしまっていることになり、これ以上予備セクタを割り当てられない。よってエラー終了となる。一方、予備セクタの先頭番号iが所定の上限値を超えていない場合には、ユーザセクタアドレス変換テーブル15−2(図2の(b))を参照してユーザーセクタアドレスkからエラーカウント値USR_ER[k]を取得する(ステップS303)。そして、エラーカウント値USR_ER[k]に基づいてそのエラーが偶発エラーか否かを判定する(ステップS304)。
【0024】
偶発エラーか否かの判定を2つの具体例で説明する。第1の例としては、偶発エラーか否かを、エラーカウント値USR_ER[k]が規定回数に達しているか否か、すなわちUSR_ER[k]<規定回数であるか否かにより判定する。エラーが規定回数より多く発生しているセクタは不良セクタとみなし、その後の使用はしない。規定回数を何回とするかは適宜決定できるが、例えば10回である。
【0025】
第2の例としては、偶発エラーか否かを、エラーカウントUSR_ER[k]を書換え回数で割った値(記録エラー発生率:USR_ER[k]/(書換え回数)))が規定値に達しているか否かにより判定する。すなわち記録エラー発生率が規定値より大きければそのセクタは不良セクタとみなし、その後の使用はしない。規定値をどの程度にするかは適宜決定できるが、例えば0.20(5回の書き込みに対してエラーが1回生じる値)である。
【0026】
上述の第1の例においてエラーが規定回数以下である場合、または、上述の第2の例において記録エラー発生率が規定値以下である場合には、偶発エラーとみなして次の処理に進む。次の処理は、エラーセクタを予備セクタとして再利用し、データの記録を予備セクタへ代替するための処理である。まずエラーカウント値USR_ER[k]を1加算する(ステップS305)。そしてエラーセクタの物理アドレスUSR_PA[k]、エラーカウント値USR_ER[k]を一旦仮変数tempに退避させる(ステップS306)。これは後の予備セクタとしての登録のためである。その後、予備セクタ番号iの物理アドレスRSV_PA[i]、エラーカウントRSV_ER[i]の各値を、ユーザセクタアドレス変換テーブル15−2のUSR_PA[k]、USR_ER[k]が格納されていた位置(オフセットk)に書き込む(ステップS307)。この処理は、予備セクタを、書き込みの対象であるユーザセクタとして割り当てることを意味する。その結果、この時点で偶発エラーセクタから予備セクタへの代替が完了する。次いで、偶発エラーを起こしたセクタを再度利用できるよう予備セクタとして登録する。具体的には、予備セクタアドレス変換テーブル15−3において、代替に使用したRSV_PA[i]、RSV_ER[i]が格納されていた位置(オフセットi)に、退避させておいた偶発エラーセクタの物理アドレスUSR_PA[k]、エラーカウント値USR_ER[k]を書き込む(ステップS308)。この処理により、偶発エラーセクタが次に使用される予備セクタとして登録されたことになる。換言すれば、この処理は、偶発エラーであるとの判定があったときは偶発エラーセクタと次に使用する予備セクタとを入れ替えることを意味する。その後、処理はステップS311へ進む。
【0027】
一方ステップS304での処理の結果、偶発エラーセクタと判定されなかった場合(すなわち不良セクタと判定された場合)、当該セクタは2度と使用しないので、ユーザセクタアドレス変換テーブル15−2の書き換えを行う。具体的には予備セクタのアドレスRSV_PA[i]およびエラーカウント値RSV_ER[i]を、書き込みの対象であるユーザセクタの物理アドレスUSR_PA[k]、エラーカウント値USR_ER[k]として割り当てる(ステップS309)。この結果、書き換え直前のUSR_PA[k]が示す物理アドレスはもはやユーザセクタアドレス変換テーブル15−2に登録されないこととなり、当該アドレスのセクタは破棄されたことになる。ステップS309の処理の結果、番号iの予備セクタはユーザセクタとして使用されたので、未使用の予備セクタの先頭番号iを1加算し(ステップS310)、ステップS311へ進む。未使用予備セクタの先頭番号iはパラメータとして不揮発性メモリ上に保持する。
【0028】
次に予備セクタによって置き換えられたユーザーセクタ値USR_PA[k]に対しエラーによって正常に完了できなかった書き込み処理を再び行い(ステップS311)、書き込み処理が正常にできたかを判定する(ステップS312)。書き込みが正常に終了していれば処理を終了する。書き込みが正常に終了していなければ再度ステップS302に戻り、ステップS302からの処理を再び行う。
【0029】
本実施の形態によれば、記録エラーが発生しそれが偶発エラーと判定されたセクタは予備セクタに置き換えられるとともに、自身は次に使用されるべき予備セクタとして登録される。記録エラーが生じたセクタが偶発エラーセクタか否かは、累積エラー発生回数に基づいて判定する。不良セクタは何度書き込みを行っても必ずエラーとなるので、除外できる。偶発エラーセクタを再度利用することでエラーセクタの無駄な消耗を防いで記憶容量を確保できる。よって装置の寿命を延ばして低コスト化を実現できる。なお、偶発エラーセクタはエラーは生じたものの、再度の記録時には通常のユーザセクタと同じ性能を有するので、信頼性も高い。
【0030】
(実施の形態2)
実施の形態2では、実施の形態1と異なる手法により、エラーセクタの再利用、およびエラーセクタの破棄を行う発明を説明する。また実施の形態1では、偶発エラーセクタは次に使用されるべき予備セクタとして登録されたが、実施の形態2では、偶発エラーセクタは予備セクタの最後尾に登録される。
【0031】
実施の形態2においても、図1の半導体記憶装置1の構成、および、図2のフラッシュメモリセルアレイ15(図1)のデータ構造を利用する。ただし、図1および図2の説明は、実施の形態1で既にしたので、以下では省略する。
【0032】
図4は、実施の形態2における記録エラー発生時の再書き込み処理のフローチャートを示す。図4を参照して、偶発エラーであるか否かを判定してエラーセクタを再利用する処理を説明する。以下説明する処理は、主として内部コントローラ10(図1)の制御に基づく処理である。まず記録エラーが発生したユーザーセクタアドレスの論理アドレスkと、未使用の予備セクタの数Nとを取得する(ステップS401)。次に、未使用予備セクタ数Nが所定の1以上か否かを判断して、予備セクタの有無をチェックする(ステップS402)。未使用予備セクタ数Nが0であれば予備セクタは使い切ってしまっていることになり、これ以上予備セクタを割り当てられない。よってエラー終了となる。一方、未使用予備セクタ数Nが1以上の場合には、ユーザセクタアドレス変換テーブル15−2(図2の(b))を参照してユーザーセクタアドレスkからエラーカウント値USR_ER[k]を取得する(ステップS403)。そして、エラーカウント値USR_ER[k]に基づいてそのエラーが偶発エラーか否かを判定する(ステップS404)。
【0033】
偶発エラーか否かの判定は、実施の形態1で具体的に説明した2つの例のいずれに基づいても行うことができる。すなわちエラーカウント値USR_ER[k]が規定回数に達しているか否か、または記録エラー発生率が規定値に達しているか否かに基づいて行えばよい。これらの説明は実施の形態1でしたので省略する。
【0034】
偶発エラーと判定した場合、エラーセクタを予備セクタとして再利用し、データの記録を予備セクタへ代替するための処理に進む。まずエラーカウントUSR_ER[k]を1加算する(ステップS405)。そして物理アドレスUSR_PA[k]、エラーカウントUSR_ER[k]を一旦仮変数tempに退避させる(ステップS406)。そして予備セクタ番号0の物理アドレスRSV_PA[0]、エラーカウントRSV_ER[0]の値を、ユーザセクタアドレス変換テーブル15−2のUSR_PA[k]、USR_ER[k]が格納されていた位置(オフセットk)に書き込む(ステップS407)。この処理は、予備セクタを、書き込みの対象であるユーザセクタとして割り当てることを意味する。「予備セクタ番号0」としたのは、予備セクタは常に0番目を使用するからである。その結果、この時点で予備セクタへの代替が完了する。
【0035】
次いで、偶発エラーを起こしたセクタを再度利用できるよう予備セクタとして登録するために、予備セクタアドレス変換テーブルを更新する。予備セクタは常に0番目を使用するので、予備セクタを使用した後1つづつ前にシフトさせ、次の予備セクタが0番目になるようにする(ステップS408)。さらに偶発エラーを起こしたセクタを再度利用できるよう予備セクタの最後尾に登録する(ステップS409)。具体的には、予備セクタアドレス変換テーブルのオフセットパラメータ(N−1)にステップS406で退避させた物理アドレスUSR_PA[k]、エラーカウントUSR_ER[k]を書き込む。この処理により、偶発エラーセクタが予備セクタの最後尾に登録され、将来の使用に備えることができる。その後、処理はステップS413へ進む。
【0036】
一方ステップS404での処理の結果、偶発エラーセクタと判定されなかった場合(すなわち不良セクタと判定された場合)、当該セクタは2度と使用しないので、ユーザセクタアドレス変換テーブル15−2(図2)の書き換えを行う。具体的には予備セクタのアドレスRSV_PA[0]およびエラーカウント値RSV_ER[0]を、書き込みの対象であるユーザセクタの物理アドレスUSR_PA[k]、エラーカウント値USR_ER[k]として割り当てる(ステップS410)。この結果、書き換え直前のUSR_PA[k]が示す物理アドレスはもはやユーザセクタアドレス変換テーブル15−2(図2)に登録されないこととなり、当該アドレスのセクタは破棄されたことになる。ステップS410の処理の結果、番号0の予備セクタはユーザセクタとして使用されたので、予備セクタの番号を1つづつ前にシフトさせ、次の予備セクタが0番目になるようにする(ステップS411)。そして未使用予備セクタ数Nは1つ使用されて減少するので、N−1とする(ステップS412)。未使用予備セクタ数Nはパラメータとして不揮発性メモリ上に保持する。
【0037】
次に予備セクタによって置き換えられたユーザーセクタ値USR_PA[k]に対し記録エラーによって正常に完了できなかった書き込み処理を再び行い(ステップS413)、書き込み処理が正常にできたかを判定する(ステップS414)。書き込みが正常に終了していれば処理を終了する。書き込みが正常に終了していなければ再度ステップS402に戻り、ステップS402からの処理を再び行う。
【0038】
本実施の形態によれば、記録エラーが発生しそれが偶発エラーと判定されたセクタは予備セクタに置き換えられるとともに、自身は予備セクタの最後尾に登録され将来の使用に備える。記録エラーが生じたセクタが偶発エラーセクタか否かは、累積エラー発生回数に基づいて判定する。不良セクタは何度書き込みを行っても必ずエラーとなるので、除外できる。偶発エラーセクタを再度利用することでセクタの無駄な消耗を防いで記憶容量を確保できる。よって装置の寿命を延ばして低コスト化が実現される。なお、実施の形態1で説明したと同様、偶発エラーセクタの信頼性は高い。
【0039】
図3および4を参照して説明した半導体記憶装置1(図1)の処理フローは、このように動作させるプログラムとしても実現される。このようなプログラムは内部コントローラ10(図1)により実行される。
【0040】
【発明の効果】
ユーザセクタのうち記録エラーが発生したエラーセクタに対し、ユーザセクタテーブルに規定されたエラーセクタのエラーカウント値に基づいて、後にデータを記録するか否かを判定する。これにより、記録エラーが発生したセクタであってもデータを記録のために再利用されるため、セクタの無駄な消耗を防いで記憶容量を確保できる。また高い信頼性を有したまま装置の寿命を延ばして低コスト化を実現できる。
【0041】
記録エラーが生じたときにデータを記録する代替のセクタとして予備セクタを設け、後にデータを記録する場合には、エラーセクタを予備セクタに変更する。これにより後に記録エラーが発生した場合に、当該エラーセクタにデータを記録できることとなり、エラーセクタであっても有効に利用できる。
【0042】
予備セクタに対しても、予備セクタへの記録エラーの回数を示すエラーカウント値を規定した予備セクタテーブルを設ける。これにより、予備セクタに後にデータが記録されても、エラーカウント値をユーザセクタテーブルに登録することでユーザセクタとして機能させることができる。
【0043】
後にデータを記録するか否かを判定するために、累積したエラーカウント値を予め設定した値と比較する。これにより、予め設定した値よりも小さい場合にはエラーセクタを有効に再利用できる。
【0044】
エラーセクタから変更された予備セクタには最先の順序が付される。よってエラーセクタを有効に再利用できる。
【0045】
後にデータを記録するか否かを判定するために、エラーセクタのエラーカウント値と記録エラーが発生するまでのエラーセクタへの記録回数との比を、予め設定された値と比較する。これにより、予め設定した値よりも小さい場合にはエラーセクタを有効に再利用できる。
【0046】
エラーセクタから変更された予備セクタには、最後の順序が付される。よってエラーセクタを有効に再利用できる。
【0047】
最先の予備セクタに続く予備セクタの順序を前にずらす。これにより、予備セクタの使用順序が管理できる。
【図面の簡単な説明】
【図1】 不揮発性メモリセルを有する本発明の半導体記憶装置の構成を示すブロック図である。
【図2】 (a)は、フラッシュメモリのメモリマップを示す図である。(b)は、本発明によるユーザセクタアドレス変換テーブルを示す図である。(c)は、予備セクタアドレス変換テーブルを表す図である。
【図3】 実施の形態1における書き込みエラー発生時の再書き込み処理のフローチャートである。
【図4】 実施の形態2における書き込みエラー発生時の再書き込み処理のフローチャートである。
【符号の説明】
1 半導体記憶装置、 10 内部コントローラ、 15 フラッシュメモリセルアレイ、 15−1 ユーザデータ記録領域、 15−2 ユーザセクタアドレス変換テーブル、 15−3 予備セクタアドレス変換テーブル[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a nonvolatile semiconductor memory device using a flash memory or the like that is read / written / erased in units of blocks.
[0002]
[Prior art]
Non-volatile semiconductor memories that are read, written, and erased on a sector basis include, for example, M5M29F25611VP manufactured by Mitsubishi Electric and HN29W25611 manufactured by Hitachi, Ltd. These are flash memories that are read, written and erased in units of 2 kbyte sectors. A conventional storage device using flash memory converts a sector address (logical address) written by the host computer into a physical address of the flash memory, and further reads and writes sector data to and from the flash memory by a command issued by the host computer. .
[0003]
In the flash memory, there are an initial defective sector within a specified value and a defective sector that cannot be used after the start of use. For such bad sectors that occur initially and later, a process of converting the logical address of the host computer into the physical address of the alternative sector is required. On the other hand, it is also known that even if a write / erase error has occurred once, there is a sector that operates normally when the write / erase is performed again. Such sector errors are considered to be accidental errors.
[0004]
[Problems to be solved by the invention]
Conventionally, when a write / erase error occurs, it is unconditionally regarded as a bad sector, and an accidental error sector is also converted to an alternative sector. For this reason, the accidental error sector that can operate normally is not used and is wasted. A sufficient reserve sector must be secured even at the start of use, and the usable storage capacity of the user to be secured in advance is suppressed.
[0005]
An object of the present invention is to provide a highly reliable and low-cost semiconductor memory device that can use a storage capacity without waste by reusing an accidental error sector.
[0006]
[Means for Solving the Problems]
The semiconductor memory device of the present invention supports a plurality of user sectors for recording data, an address indicating the position of the user sector, and an error count value indicating the number of recording errors in the user sector for each user sector. A non-volatile memory cell having a user sector table defined, and for an error sector in which a recording error has occurred among the user sectors, based on an error count value of the error sector defined in the user sector table Thus, a controller for determining whether or not to record data later is provided, whereby the above object is achieved.
[0007]
The nonvolatile memory cell further includes a spare sector that records data in place of the error sector when a recording error occurs, and the controller later stores the error sector determined to record data later. It may be changed to a spare sector to be used.
[0008]
The non-volatile memory cell further includes a spare sector table that defines, for each spare sector, an address indicating the position of the spare sector and an error count value indicating the number of recording errors in the spare sector in association with each other. It may be.
[0009]
If the error count value of the error sector is smaller than a preset value, the controller determines that data will be recorded later in the error sector, and if larger, data is recorded later in the error sector. You may decide not to.
[0010]
In the spare sector table, the order of spare sectors to be used is added, and when the controller determines that data is to be recorded later in the error sector, data in the earliest spare sector is based on the order. And the spare sector changed from the error sector may be assigned the earliest order.
[0011]
If the ratio between the error count value of the error sector and the number of times of recording in the error sector until a recording error occurs is smaller than a preset value, the controller transfers data to the error sector later. If it is determined that data is to be recorded, and if it is large, it may be determined that data will not be recorded later in the error sector.
[0012]
In the spare sector table, the order in which spare sectors are used is added, and when the controller determines that data is to be recorded later in the error sector, the spare sector table is assigned the earliest spare sector based on the order. Data may be recorded, and the spare sector changed from the error sector may be given the last order.
[0013]
The controller may shift the order of spare sectors following the earliest spare sector forward.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
[0015]
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of a
[0016]
Referring to FIG. 1, card type
[0017]
In order for a terminal (not shown) to record data in the
[0018]
As will be described later, the
[0019]
FIG. 2A shows a memory map of the
[0020]
FIG. 2B shows a user sector address conversion table 15-2 according to the present invention. In the user sector address conversion table 15-2, physical addresses are stored in order of logical addresses so that the physical address USR_PA [k] of the user sector [k] corresponding to the offset parameter k which is a logical address can be obtained. Further, the table 15-2 stores the error count value USR_ER [k] of the user sector [k] in addition to the physical address. The error count value USR_ER [k] is a value representing the number of times that a write / erase error (recording error) has occurred in the sector in the past. Conventionally, a sector in which a recording error has occurred is not used afterwards. However, even if such a sector is used, if it is written / erased again, it will be reused if it operates normally. The number of errors is held as the value USR_ER [k]. For example, a sector with an error count of 0 (user sector with an offset parameter k = 2) has not caused an error so far, and a sector with an error count of 3 (user sector with an offset parameter k = 1) has already been 3 times. Indicates that an error has occurred. In the following description, a sector that normally operates when a write / erase is performed again even if a recording error has occurred once is referred to as an accidental error sector.
[0021]
FIG. 2C shows the spare sector address conversion table 15-3. In the spare sector address conversion table 15-3, physical addresses are stored in order of logical addresses so that the physical address RSV_PA [i] of the spare sector [i] corresponding to the offset parameter i which is a logical address can be obtained. The “reserved sector” is a sector for substitution in which user data is stored instead when a recording error occurs in the user sector. How to substitute will be described in detail with reference to FIG. Further, in addition to the physical address, the error count value RSV_ER [i] of the sector is stored. The spare sector error count value RSV_ER [i] takes a value of 0 or more. As will be described later, since the spare sector functions as a user sector when data is recorded, it will be registered in the user sector address conversion table 15-2 in the future. Therefore, the spare sector must also hold the error count value RSV_ER [i].
[0022]
Since the address conversion tables 15-2 and 15-3 are stored in the flash
[0023]
Next, processing for determining whether or not an error has occurred and reusing the error sector will be described. The process described below is mainly based on the control of the internal controller 10 (FIG. 1). FIG. 3 shows a flowchart of the rewrite process when a recording error occurs in the first embodiment. First, the logical address k of the user sector address where the error has occurred and the head sector number i of the spare sector are acquired (step S301). Next, it is determined whether or not the head number i of the spare sector exceeds a predetermined upper limit value, and the presence or absence of the spare sector is checked (step S302). If the start sector number i of the spare sector exceeds the reserved number of spare sectors, the spare sector is used up, and no further spare sector can be assigned. Therefore, it ends in error. On the other hand, if the head number i of the spare sector does not exceed the predetermined upper limit value, the error count value USR_ER is calculated from the user sector address k with reference to the user sector address conversion table 15-2 ((b) of FIG. 2). [k] is acquired (step S303). Then, based on the error count value USR_ER [k], it is determined whether or not the error is a random error (step S304).
[0024]
The determination of whether or not it is a random error will be described with two specific examples. As a first example, whether or not it is an accidental error is determined by whether or not the error count value USR_ER [k] has reached a specified number of times, that is, whether or not USR_ER [k] <the specified number of times. A sector in which errors have occurred more than the specified number of times is regarded as a bad sector and is not used thereafter. Although how many times the specified number of times is set can be determined as appropriate, it is, for example, 10 times.
[0025]
As a second example, the error count USR_ER [k] divided by the number of rewrites (recording error occurrence rate: USR_ER [k] / (number of rewrites))) reaches the specified value as to whether or not it is an accidental error. It is determined by whether or not it exists. That is, if the recording error occurrence rate is larger than the specified value, the sector is regarded as a bad sector and is not used thereafter. The degree to which the specified value is set can be determined as appropriate. For example, it is 0.20 (a value that causes one error for five writings).
[0026]
If the error is less than or equal to the specified number in the first example, or if the recording error occurrence rate is less than or equal to the specified value in the second example, it is regarded as an accidental error and the process proceeds to the next process. The next process is a process for reusing an error sector as a spare sector and replacing data recording with the spare sector. First, 1 is added to the error count value USR_ER [k] (step S305). Then, the physical address USR_PA [k] and error count value USR_ER [k] of the error sector are temporarily saved in the temporary variable temp (step S306). This is for later registration as a spare sector. Thereafter, the values of the physical address RSV_PA [i] and error count RSV_ER [i] of the spare sector number i are stored in the positions where USR_PA [k] and USR_ER [k] of the user sector address conversion table 15-2 are stored ( Write to offset k) (step S307). This process means that a spare sector is assigned as a user sector to be written. As a result, the replacement from the accidental error sector to the spare sector is completed at this point. Next, the sector in which the accidental error has occurred is registered as a spare sector so that it can be used again. Specifically, in the spare sector address conversion table 15-3, the physicality of the accidental error sector that was saved at the position (offset i) where RSV_PA [i] and RSV_ER [i] used for substitution were stored. The address USR_PA [k] and the error count value USR_ER [k] are written (step S308). By this process, the accidental error sector is registered as a spare sector to be used next. In other words, this process means that when it is determined that it is an accidental error, the random error sector and the spare sector to be used next are replaced. Thereafter, the process proceeds to step S311.
[0027]
On the other hand, as a result of the processing in step S304, if the sector is not determined to be an accidental error sector (that is, determined to be a bad sector), the sector is not used again, so the user sector address conversion table 15-2 is rewritten. Do. Specifically, the spare sector address RSV_PA [i] and the error count value RSV_ER [i] are assigned as the physical address USR_PA [k] and error count value USR_ER [k] of the user sector to be written (step S309). . As a result, the physical address indicated by USR_PA [k] immediately before rewriting is no longer registered in the user sector address conversion table 15-2, and the sector at the address is discarded. As a result of the processing in step S309, the spare sector of number i has been used as a user sector, so the head number i of an unused spare sector is incremented by 1 (step S310), and the process proceeds to step S311. The head number i of the unused spare sector is stored in the nonvolatile memory as a parameter.
[0028]
Next, the writing process that could not be normally completed due to an error is performed again on the user sector value USR_PA [k] replaced by the spare sector (step S311), and it is determined whether or not the writing process was successful (step S312). If the writing has been completed normally, the process ends. If the writing has not been completed normally, the process returns to step S302 again, and the processing from step S302 is performed again.
[0029]
According to the present embodiment, a sector in which a recording error has occurred and it is determined as an accidental error is replaced with a spare sector, and itself is registered as a spare sector to be used next. Whether the sector in which the recording error has occurred is an accidental error sector is determined based on the cumulative error occurrence count. A bad sector can be excluded because it always results in an error no matter how many times it is written. By reusing the accidental error sector, it is possible to prevent unnecessary consumption of the error sector and secure a storage capacity. Therefore, the lifetime of the apparatus can be extended and the cost can be reduced. Although an error occurs in the accidental error sector, since it has the same performance as a normal user sector at the time of re-recording, the reliability is high.
[0030]
(Embodiment 2)
In the second embodiment, an invention will be described in which error sectors are reused and error sectors are discarded by a method different from that of the first embodiment. In the first embodiment, the accidental error sector is registered as a spare sector to be used next. In the second embodiment, the random error sector is registered at the end of the spare sector.
[0031]
Also in the second embodiment, the configuration of the
[0032]
FIG. 4 shows a flowchart of the rewrite process when a recording error occurs in the second embodiment. With reference to FIG. 4, a process for determining whether or not an error has occurred and reusing an error sector will be described. The process described below is mainly based on the control of the internal controller 10 (FIG. 1). First, the logical address k of the user sector address where the recording error has occurred and the number N of unused spare sectors are acquired (step S401). Next, it is determined whether or not the number of unused spare sectors N is greater than or equal to a predetermined one, and the presence or absence of spare sectors is checked (step S402). If the number of unused spare sectors N is 0, the spare sectors are used up, and no more spare sectors can be allocated. Therefore, it ends in error. On the other hand, when the number of unused spare sectors N is 1 or more, the error count value USR_ER [k] is obtained from the user sector address k with reference to the user sector address conversion table 15-2 ((b) in FIG. 2). (Step S403). Then, based on the error count value USR_ER [k], it is determined whether or not the error is a random error (step S404).
[0033]
The determination of whether or not it is an accidental error can be made based on either of the two examples specifically described in the first embodiment. That is, it may be performed based on whether or not the error count value USR_ER [k] has reached a specified number of times, or whether or not the recording error occurrence rate has reached a specified value. These explanations are omitted because they are the first embodiment.
[0034]
When it is determined as an accidental error, the error sector is reused as a spare sector, and the process proceeds to a process for substituting data recording with the spare sector. First, 1 is added to the error count USR_ER [k] (step S405). Then, the physical address USR_PA [k] and the error count USR_ER [k] are temporarily saved in the temporary variable temp (step S406). Then, the physical address RSV_PA [0] and the error count RSV_ER [0] of the
[0035]
Next, the spare sector address conversion table is updated in order to register the sector causing the accidental error as a spare sector so that it can be used again. Since the spare sector always uses the 0th sector, after the spare sector is used, the spare sector is shifted one by one so that the next spare sector becomes the 0th sector (step S408). Further, the sector in which the accidental error has occurred is registered at the end of the spare sector so that it can be used again (step S409). Specifically, the physical address USR_PA [k] and the error count USR_ER [k] saved in step S406 are written in the offset parameter (N-1) of the spare sector address conversion table. By this processing, the accidental error sector is registered at the end of the spare sector, and can be prepared for future use. Thereafter, the process proceeds to step S413.
[0036]
On the other hand, if it is not determined as an accidental error sector (ie, it is determined as a bad sector) as a result of the processing in step S404, the sector is not used again, so the user sector address conversion table 15-2 (FIG. 2). ). Specifically, the spare sector address RSV_PA [0] and error count value RSV_ER [0] are assigned as the physical address USR_PA [k] and error count value USR_ER [k] of the user sector to be written (step S410). . As a result, the physical address indicated by USR_PA [k] immediately before rewriting is no longer registered in the user sector address conversion table 15-2 (FIG. 2), and the sector at the address is discarded. As a result of the processing in step S410, the
[0037]
Next, the writing process that could not be normally completed due to a recording error is performed again on the user sector value USR_PA [k] replaced by the spare sector (step S413), and it is determined whether the writing process was successful (step S414). . If the writing has been completed normally, the process ends. If the writing has not been completed normally, the process returns to step S402 again, and the processing from step S402 is performed again.
[0038]
According to the present embodiment, a sector in which a recording error has occurred and it is determined as an accidental error is replaced with a spare sector, and itself is registered at the end of the spare sector for future use. Whether the sector in which the recording error has occurred is an accidental error sector is determined based on the cumulative error occurrence count. A bad sector can be excluded because it always results in an error no matter how many times it is written. By reusing the accidental error sector, it is possible to prevent unnecessary consumption of the sector and to secure a storage capacity. Therefore, the lifetime of the apparatus is extended and cost reduction is realized. As described in the first embodiment, the reliability of the accidental error sector is high.
[0039]
The processing flow of the semiconductor memory device 1 (FIG. 1) described with reference to FIGS. 3 and 4 is also realized as a program that operates in this way. Such a program is executed by the internal controller 10 (FIG. 1).
[0040]
【The invention's effect】
Whether or not data is to be recorded later is determined based on the error count value of the error sector defined in the user sector table for an error sector in which a recording error has occurred among user sectors. As a result, even in a sector in which a recording error has occurred, data is reused for recording, so that it is possible to prevent unnecessary consumption of the sector and secure a storage capacity. Further, it is possible to extend the life of the apparatus with high reliability and to reduce the cost.
[0041]
A spare sector is provided as an alternative sector for recording data when a recording error occurs. When data is recorded later, the error sector is changed to a spare sector. As a result, when a recording error occurs later, data can be recorded in the error sector, and the error sector can be used effectively.
[0042]
A spare sector table defining an error count value indicating the number of recording errors in the spare sector is also provided for the spare sector. As a result, even if data is recorded in the spare sector later, it can function as a user sector by registering the error count value in the user sector table.
[0043]
In order to determine whether to record data later, the accumulated error count value is compared with a preset value. Thereby, when it is smaller than the preset value, the error sector can be effectively reused.
[0044]
The spare sector changed from the error sector is assigned the earliest order. Therefore, the error sector can be effectively reused.
[0045]
In order to determine whether to record data later, the ratio between the error count value of the error sector and the number of times of recording in the error sector until a recording error occurs is compared with a preset value. Thereby, when it is smaller than the preset value, the error sector can be effectively reused.
[0046]
The spare sector changed from the error sector is given the last order. Therefore, the error sector can be effectively reused.
[0047]
The order of spare sectors following the earliest spare sector is shifted forward. As a result, the use order of spare sectors can be managed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a semiconductor memory device of the present invention having a nonvolatile memory cell.
FIG. 2A is a diagram showing a memory map of a flash memory. (B) is a figure which shows the user sector address conversion table by this invention. (C) is a diagram showing a spare sector address conversion table.
FIG. 3 is a flowchart of a rewrite process when a write error occurs in the first embodiment.
FIG. 4 is a flowchart of a rewrite process when a write error occurs in the second embodiment.
[Explanation of symbols]
DESCRIPTION OF
Claims (7)
ユーザセクタ毎に、該ユーザセクタの位置を示すアドレス、および、該ユーザセクタへの記録エラーの回数を示すエラーカウント値を対応させて規定するユーザセクタテーブルと
を有する不揮発性メモリセルを備え、さらに
前記ユーザセクタのうち記録エラーが発生したエラーセクタに対し、前記ユーザセクタテーブルに規定された該エラーセクタのエラーカウント値に基づいて、後にデータを記録するか否かを判定するコントローラを備え、
前記不揮発性メモリセルは、記録エラーが発生した場合に前記エラーセクタに代えてデータを記録する予備セクタをさらに有しており、
前記コントローラは、後にデータを記録すると判定した前記エラーセクタを、後に使用される予備セクタに変更する、半導体記憶装置。A plurality of user sectors for recording data;
A non-volatile memory cell having, for each user sector, an address indicating the position of the user sector, and a user sector table that defines an error count value indicating the number of recording errors in the user sector. A controller for determining whether to record data later, based on an error count value of the error sector defined in the user sector table, for an error sector in which a recording error has occurred among the user sectors ,
The nonvolatile memory cell further includes a spare sector for recording data instead of the error sector when a recording error occurs,
The semiconductor memory device , wherein the controller changes the error sector, which is determined to record data later, to a spare sector to be used later .
前記コントローラは、該エラーセクタに後にデータを記録すると判定した場合には前記順序に基づいて最先の予備セクタにデータを記録し、前記エラーセクタから変更された予備セクタには、最先の順序を付す、請求項3に記載の半導体記憶装置。In the spare sector table, the order of spare sectors to be used is attached,
If it is determined that data is to be recorded later in the error sector, the controller records data in the earliest spare sector based on the order, and the spare sector changed from the error sector has the earliest order. The semiconductor memory device according to claim 3 , wherein
前記コントローラは、該エラーセクタに後にデータを記録すると判定した場合には、前記順序に基づいて最先の予備セクタにデータを記録し、前記エラーセクタから変更された予備セクタには、最後の順序を付す、請求項5に記載の半導体記憶装置。The spare sector table has an order in which spare sectors are used,
If the controller determines that data is to be recorded later in the error sector, the controller records data in the earliest spare sector based on the order, and the spare sector changed from the error sector has the last order. The semiconductor memory device according to claim 5 , wherein
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001186418A JP4766781B2 (en) | 2001-06-20 | 2001-06-20 | Semiconductor memory device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001186418A JP4766781B2 (en) | 2001-06-20 | 2001-06-20 | Semiconductor memory device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003006055A JP2003006055A (en) | 2003-01-10 |
| JP4766781B2 true JP4766781B2 (en) | 2011-09-07 |
Family
ID=19025865
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001186418A Expired - Fee Related JP4766781B2 (en) | 2001-06-20 | 2001-06-20 | Semiconductor memory device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4766781B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4570891B2 (en) * | 2004-03-30 | 2010-10-27 | ルネサスエレクトロニクス株式会社 | Storage device |
| JP5272443B2 (en) * | 2008-02-26 | 2013-08-28 | 日本電気株式会社 | Memory fault processing system, memory fault processing method, and memory fault processing program |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3122201B2 (en) * | 1991-11-30 | 2001-01-09 | 株式会社東芝 | Memory card device |
| DE69716233T2 (en) * | 1996-08-16 | 2003-02-20 | Tokyo Electron Device Ltd., Yokohama | SEMICONDUCTOR MEMORY ARRANGEMENT WITH ERROR DETECTION AND CORRECTION |
| JP3565687B2 (en) * | 1997-08-06 | 2004-09-15 | 沖電気工業株式会社 | Semiconductor memory device and control method thereof |
| JP3242890B2 (en) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | Storage device |
-
2001
- 2001-06-20 JP JP2001186418A patent/JP4766781B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003006055A (en) | 2003-01-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
| US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
| JP4688584B2 (en) | Storage device | |
| JP3944496B2 (en) | Increased memory performance in flash memory devices by simultaneous write operations to multiple devices | |
| EP1739683B1 (en) | Space management for managing high capacity nonvolatile memory | |
| JP4695801B2 (en) | Method and apparatus for reducing block write operation time performed on non-volatile memory | |
| JP5002201B2 (en) | Memory system | |
| US20070214309A1 (en) | Nonvolatile storage device and data writing method thereof | |
| US20080028132A1 (en) | Non-volatile storage device, data storage system, and data storage method | |
| US20080192546A1 (en) | Flash EEprom System With Simultaneous Multiple Data Sector Programming and Storage of Physical Block Characteristics in Other Designated Blocks | |
| KR19990063715A (en) | Memory system | |
| JPH08137634A (en) | Flash disk card | |
| US8296503B2 (en) | Data updating and recovering methods for a non-volatile memory array | |
| JP2008102900A (en) | Method and apparatus for rearranging addressable space in a memory device | |
| JP2010152913A (en) | Organization of blocks within nonvolatile memory unit to effectively decrease sector write operation time | |
| WO2000060605A1 (en) | Space management for managing high capacity nonvolatile memory | |
| JPWO2007000862A1 (en) | MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND DATA WRITE METHOD | |
| US20060062041A1 (en) | Memory device, momory managing method and program | |
| JPWO2005083573A1 (en) | Semiconductor memory device | |
| US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
| JP4766781B2 (en) | Semiconductor memory device | |
| JPH11282765A (en) | External storage device using flash memory | |
| JP4308780B2 (en) | Semiconductor memory device, memory controller, and data recording method | |
| JP4661369B2 (en) | Memory controller | |
| JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080131 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080414 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100514 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110516 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110607 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110614 |
|
| 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: 20140624 Year of fee payment: 3 |
|
| 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 |