(57)【要約】【課題】メモリセル単位で使用状況を平均化することにより長寿命化を図ることのできる半導体メモリ及びその書換制御方法を提供する。【解決手段】複数のメモリブロックを有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な不揮発性半導体メモリにおいて、前記複数のメモリブロックのそれぞれの使用状況を管理し、データを書き換える際には、データを書き換えるメモリブロックの使用状況に基づいて、当該メモリブロックにデータをそのまま又は反転させて書き込むようにした。【選択図】図１
2009054236.tif 000002
【特許請求の範囲】
【請求項１】
電気的に一括してデータを書換え可能な複数のメモリブロックと、
前記複数のメモリブロックのそれぞれの使用状況を管理する管理手段と、
データを書き換えるメモリブロックの前記使用状況に基づいて、当該メモリブロックにデータをそのまま又は反転させて書き込む制御手段と、を備えることを特徴とする不揮発性半導体メモリ。 
【請求項２】
前記管理手段は、前記複数のメモリブロックのそれぞれの書換回数を計数し、
前記制御手段は、データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする請求項１に記載の不揮発性半導体メモリ。  
【請求項３】
電気的に一括してデータを書き換え可能な複数のメモリブロックと、
前記複数のメモリブロックのそれぞれの書換回数を計数する管理手段と、
データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換える制御手段と、を備えることを特徴とする不揮発性半導体メモリ。 
【請求項４】
複数のメモリブロックを有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な不揮発性半導体メモリの書換制御方法であって、
前記複数のメモリブロックのそれぞれの使用状況を管理し、
データを書き換えるメモリブロックの前記使用状況に基づいて、当該メモリブロックにデータをそのまま又は反転させて書き込むことを特徴とする不揮発性半導体メモリの書換制御方法。 
【請求項５】
前記複数のメモリブロックのそれぞれの書換回数を計数し、
データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする請求項４に記載の不揮発性半導体メモリの書換制御方法。 
【請求項６】
複数のメモリブロックを有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な不揮発性半導体メモリの書換制御方法であって、
前記複数のメモリブロックのそれぞれの書換回数を計数し、
データを書き換えるメモリブロックの前記書換回数が所定回数に達しているか判定し、
前記判定結果に基づいて、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする不揮発性半導体メモリの書換制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書換え可能な不揮発性半導体メモリ及びその書換制御方法に関する。
【背景技術】
【０００２】
従来、電気的に書換え可能で、電源の供給がなくてもデータが消失しないフラッシュメモリ等の不揮発性半導体メモリが知られている。このフラッシュメモリでは、トランジスタ内部にフローティングゲートと呼ばれる領域を設け、このフローティングゲートに電荷を貯めることで不揮発性を実現している。
【０００３】
通常、フラッシュメモリでは、一旦不要になったデータをセクタ単位で消去（イレース）した後、新しいデータを書き込むことでデータの書換えが行われるが、この消去・書込み可能回数には制限がある（例えば、数十万回）。一説には、データの書込み時や消去時に、絶縁体となるトンネル酸化膜を電荷が通り抜けることに起因して、この酸化膜が劣化してしまうためといわれている。
【０００４】
そこで、フラッシュメモリにおいてデータを書換える際には、書き込むセクタをランダムに選択する等してセクタ単位のデータの書込みをメモリ全体で平均化する（セクタ単位の書換え回数を平均化する）工夫がなされている。
また、半導体メモリの延命対策に関する技術として、特許文献１〜３が提案されている。
【特許文献１】特開平０５−１２８８６１号公報
【特許文献２】特開平０５−７４１７３号公報
【特許文献３】特開平０２−４０１９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、フラッシュメモリにおいてはセクタ単位でデータの書換えが行われるため、上述したようにデータの書換え回数をセクタ単位で平均化しても、セクタ内のメモリセルごとの使用頻度が分散されるわけではない。
例えば、データの偏り等により、特定のメモリセルにおいてのみ電荷の蓄積／放出が行われることもあり、この場合、同一セクタ内においてもメモリセルの使用頻度は異なるものとなる。そして、セクタの書換可能回数、すなわちセクタの寿命は、使用頻度の高いメモリセルの寿命に他ならないため、セクタを構成するほとんどのメモリセルが正常であっても、特定のメモリセルが破壊されるとそのセクタは書換不能となってしまう。
【０００６】
本発明は、メモリセル単位で使用状況を平均化することにより長寿命化を図ることのできる半導体メモリ及びその書換制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、上記目的を達成するため、電気的に一括してデータを書換え可能な複数のメモリブロック（セクタ）と、前記複数のメモリブロックのそれぞれの使用状況を管理する管理手段と、データを書き換えるメモリブロックの前記使用状況に基づいて、当該メモリブロックにデータをそのまま（非反転）又は反転させて書き込む制御手段と、を備えることを特徴とする不揮発性半導体メモリである。
【０００８】
請求項２に記載の発明は、請求項１に記載の不揮発性半導体メモリにおいて、前記管理手段は、前記複数のメモリブロックのそれぞれの書換回数を計数し、前記制御手段は、データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする。
【０００９】
請求項３に記載の発明は、電気的に一括してデータを書き換え可能な複数のメモリブロックと、前記複数のメモリブロックのそれぞれの書換回数を計数する管理手段と、データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換える制御手段と、を備えることを特徴とする不揮発性半導体メモリである。
【００１０】
請求項４に記載の発明は、複数のメモリブロックを有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な不揮発性半導体メモリの書換制御方法であって、前記複数のメモリブロックのそれぞれの使用状況を管理し、データを書き換えるメモリブロックの前記使用状況に基づいて、当該メモリブロックにデータをそのまま又は反転させて書き込むことを特徴とする。
【００１１】
請求項５に記載の発明は、請求項４に記載の不揮発性半導体メモリの書換制御方法において、前記複数のメモリブロックのそれぞれの書換回数を計数し、データを書き換えるメモリブロックの前記書換回数が所定回数に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする。
【００１２】
請求項６に記載の発明は、複数のメモリブロックを有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な不揮発性半導体メモリの書換制御方法であって、前記複数のメモリブロックのそれぞれの書換回数を計数し、データを書き換えるメモリブロックの前記書換回数が所定回数に達しているか判定し、前記判定結果に基づいて、当該メモリブロックに書き込むデータの反転／非反転を切り換えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、メモリセル単位で使用状況（例えば、書換回数）を平均化することができるので、不揮発性半導体メモリの長寿命化を図ることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
図１は、本発明を適用し得る電荷機器の制御ブロックの概略構成を示す説明図である。
電荷機器１の制御ブロックは、ＣＰＵ（Central Processing Unit）２０、ＲＡＭ（Random Access Memory）３０、２つのＲＯＭ（Read Only Memory）１０、４０、を備えて構成される。
【００１６】
具体的には、ＣＰＵ２０は、第１のＲＯＭ１０に格納された処理プログラム等を読み出して、ＲＡＭ３０に展開して実行することにより、電荷機器１の全体制御を行う。また、第２のＲＯＭ４０に格納された書換制御処理プログラムを読み出して、ＲＡＭ３０に展開して実行することにより、第１のＲＯＭ１０の書換制御を行う。
【００１７】
ＲＡＭ３０は、ＣＰＵ２０により実行された処理プログラム等を、ＲＡＭ３０内のプログラム格納領域に展開するとともに、入力データや上記処理プログラムが実行される際に生じる処理結果等をデータ格納領域に格納する。
【００１８】
第１のＲＯＭ１０は、例えば、ドライバ部１０１、バッファ部１０２、複数のメモリ部（メモリブロック）１０３、・・を備えた、いわゆる不揮発性半導体メモリであり、処理プログラムやデータ等が予め記憶されている。
ドライバ部１０１は、ＣＰＵ２０からの書込制御信号に基づいて、データ信号で指定されたデータをアドレス信号で指定されたアドレスに基づいてメモリ部１０３の所定のメモリ領域（メモリセル）に書き込む。また、ＣＰＵ２０からの読出制御信号に基づいて、アドレス信号で指定されたアドレスに対応するメモリ領域からデータを読み出し、データ信号としてＣＰＵ１０に送出する。
バッファ部１０２は、メモリ部１０３にデータを書き込んだり、メモリ部１０３からデータを読み出したりする際に、データを一時的に格納する。
メモリ部１０３、・・は、それぞれ複数のメモリセルからなるメモリブロック（セクタ）であり、１つのメモリ部１０３は電気的に一括してデータを書換可能に構成される。例えば、１メモリブロックが８個のメモリセルで構成される場合は、８ビットの情報量を有することとなる。
【００１９】
第２のＲＯＭ４０は、第１のＲＯＭ１０と同様に不揮発性半導体メモリであり、その構成も第１のＲＯＭ１０とほぼ同様である。第２のＲＯＭには、第１のＲＯＭ１０へのデータの書換制御プログラムが格納されるとともに、第１のＲＯＭ１０の複数のメモリ部１０３、・・のそれぞれの使用状況が記憶されている。
本実施形態では、例えば、メモリ部１０３、・・の使用状況として書換回数を記憶するとともに、それぞれのメモリ部１０３、・・に現在書き込まれているデータの形態（反転／非反転情報）を記憶する。
【００２０】
図２は、第１のＲＯＭ１０への書換制御処理の一例について示すフローチャートである。この書換制御処理は、ＣＰＵ２０が第２のＲＯＭ４０に格納されている書換制御プログラムを実行することにより、実現される。
【００２１】
まず、ステップＳ１０１では、第１のＲＯＭ１０に書込制御信号を送信することによりメモリ部１０３、・・にデータを書込可能な書込モードにする。
ステップＳ１０２では、アドレス信号によりデータを書き込むメモリ領域を指定する。
ステップＳ１０３では、指定されたメモリ領域を含むメモリ部１０３のメモリセルの値をすべて”１”にして、メモリ部１０３に記憶されていたデータを消去する。
ステップＳ１０４では、書込データを第１のＲＯＭ１０に転送する。このデータは、バッファ１０２に一時的に格納される。
【００２２】
ステップＳ１０５では、書き換え対象となっているメモリ部１０３の書換回数を、第２のＲＯＭ４０から取得する。
ステップＳ１０６では、取得した書換回数に基づいて、当該メモリ部１０３にデータをそのまま書き込む（非反転データ）か、反転して書き込む（反転データ）か判定し、判定結果を制御信号として第１のＲＯＭ１０に送信する。具体的には、図３に示すテーブルを参照して、書き込むデータの反転／非反転情報を決定する。
【００２３】
図３は、メモリ部１０３、・・の書換回数と書き込むデータの反転／非反転情報の対応関係の一例を示すテーブルである。
図３に示すように、メモリ部１０３の書換回数が０〜９９のときは書き込むデータは非反転データとされ、書換回数が１００〜１９９のときは反転データとされ、書換回数が２００〜２９９のときは非反転データとされ、以降、書換回数が１００増加するごとに反転／非反転が切り換えられる。つまり、書き換え対象となっているメモリ部１０３の書換回数が所定回数（例えば、１００回）に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えるようにしている。
【００２４】
そして、ステップＳ１０６で書込データとして非反転データが選択された場合は、反転させずにそのままメモリ部１０３の所定領域にデータを書き込む（ステップＳ１０８）。一方、ステップＳ１０６で書込データとして反転データが選択された場合は、バッファ１０２に格納されているデータを反転させた後（ステップＳ１０７）、メモリ部１０３の所定領域にデータを書き込む（ステップＳ１０８）。
【００２５】
ステップＳ１０９では、書き換えを行ったメモリ部１０３について、第２のＲＯＭ４０に記憶されている書換回数を更新する。同時に、当該メモリ部１０３に現在書き込まれているデータが反転データであるか、非反転データであるかを記憶する。つまり、第２のＲＯＭ４０には、複数のメモリ部１０３，・・のそれぞれに対して、書換回数と、現在書き込まれているデータの反転／非反転情報が記憶される。
以上のようにして、第１のＲＯＭ１０への書換制御処理が終了する。
【００２６】
なお、第２のＲＯＭ４０に記憶された、メモリ部１０３，・・ごとの書込データの反転／非反転情報は、第１のＲＯＭ１０からデータを読み出すときに利用される。すなわち、ＣＰＵ２０により、あるメモリ部１０３からデータを読み出す際に、データが反転データで書き込まれていた場合には、第１のＲＯＭ１０からデータを読み出した後、例えば、ＲＡＭ３０を作業領域としてデータを反転して元のデータに戻す処理が行われることとなる。
【００２７】
図４は、書換制御処理に伴うメモリ部１０３におけるデータの書込状態の遷移の一例を示す説明図である。例えば、各メモリセルにおいて、フローティングゲートに電荷が蓄積された場合に“１”を示し、電荷が放出された場合に“０”を示す。
図４では、それぞれのメモリ部１０３、・・が８個のメモリセルで構成されており（８ビットの情報量を有する）、データＡ＝“１２８”からデータＢ＝“１２９”に書き換えられるときのデータの書込状態の遷移について示している。
【００２８】
まず、図４（ａ）は、データＡ＝“１２８”の書込状態を示している。すなわち、先頭のメモリセルＣ１にだけ“１”が格納され、残りのメモリセルＣ２〜Ｃ８には“０”が格納されている。
図４（ｂ）は、メモリ部１０３のデータが消去された状態（イレース状態）を示している。すなわち、すべてのメモリセルＣ１〜Ｃ８に電荷が蓄積され、“１”が格納されている。例えば、図２のステップＳ１０３ではこの状態となる。
【００２９】
図４（ｃ）は、データＢ＝“１２９”を非反転データとして書き込んだときの書込状態を示している。すなわち、先頭のメモリセルＣ１と最後のメモリセルＣ８に“１”が格納され、残りのメモリセルＣ２〜Ｃ７には“０”が格納されている。図３に示すテーブルによれば、例えば、書き換え対象となるメモリ部１０３の書換回数が０〜９９の場合には、図４（ｃ）に示す状態でデータＢが書き込まれることとなる。
【００３０】
図４（ｄ）は、データＢ＝“１２９”を反転データとして書き込んだときの書込状態を示している。すなわち、先頭のメモリセルＣ１と最後のメモリセルＣ８に“０”が格納され、残りのメモリセルＣ２〜Ｃ７には“１”が格納されている。図３に示すテーブルによれば、例えば、書き換えるメモリ部１０３の書換回数が１００〜１９９の場合には、図４（ｄ）に示す状態でデータＢが書き込まれることとなる。
【００３１】
図４（ｃ）に示すように、同じセクタに同じデータ又は似通ったデータが書き込まれる場合には、特定のメモリセル（例えば、Ｃ２〜Ｃ７）においてだけ電荷の蓄積／放出が行われる一方、電荷の蓄積／放出が全く行われないメモリセル（例えば、Ｃ１）も存在することとなる。
そこで、メモリ部１０３の書換回数に応じて、データを反転して記憶させる（図４（ｄ））ことで、メモリ部１０３を構成するメモリセルＣ１〜Ｃ８のセル単位の書換回数を平均化するようにしている。
【００３２】
このように、本実施形態では、複数のメモリ部（メモリブロック）１０３、・・を有し、このメモリブロック単位で電気的に一括してデータを書き換え可能な第１のＲＯＭ（不揮発性半導体メモリ）１０のデータを書き換える際に、複数のメモリ部１０３、・・のそれぞれの使用状況を管理し、データを書き換えるメモリ部１０３の使用状況に基づいて、当該メモリブロックにデータをそのまま又は反転させて書き込むようにしている。
【００３３】
具体的には、複数のメモリ部１０３、・・のそれぞれの書換回数を計数し、データを書き換えるメモリ部１０３の書換回数が所定回数（例えば１００回）に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えるようにしている（図３参照）。
【００３４】
上述したように、本実施形態の電荷機器１において、本発明に係る不揮発性半導体メモリの書換制御方法を適用することにより、第１のＲＯＭ１０のメモリ部１０３、・・の使用状況（書換回数）を、メモリセル単位で平均化することができるので、第１のＲＯＭ１０の長寿命化を図ることができる。
【００３５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。また、本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００３６】
上記実施形態では、電荷機器１のＣＰＵ２０によって第１のＲＯＭ１０の書き換え制御を行う場合について示したが、書換制御の形態はこれに制限されない。例えば、第１のＲＯＭ１０のドライバ部１０に、上記実施形態のＣＰＵ２０、ＲＡＭ３０、第２のＲＯＭ４０と同様の機能を持たせるようにしてもよい。
【００３７】
すなわち、不揮発性半導体メモリにおいて、電気的に一括してデータを書換え可能な複数のメモリブロックと、複数のメモリブロックのそれぞれの使用状況を管理する管理手段（上記実施形態のＣＰＵ２０、ＲＯＭ４０に相当）と、データを書き換えるメモリブロックの使用状況に基づいて、当該メモリブロックにデータをそのまま（非反転）又は反転させて書き込む制御手段（ＣＰＵ２０に相当）と、を備えるようにすればよい。
【００３８】
また、上記不揮発性半導体メモリにおいて、管理手段は、複数のメモリブロックのそれぞれの書換回数を計数し、制御手段は、データを書き換えるメモリブロックの書換回数が所定回数（例えば、１００回）に達するごとに、当該メモリブロックに書き込むデータの反転／非反転を切り換えるようにする。
このような不揮発性半導体メモリを、一般的な電荷機器のＲＯＭとして採用することで、容易に電荷機器自体の長寿命化を図ることができる。また、メモリカード等の可搬型記憶媒体としての不揮発性半導体メモリの長寿命化を図ることができる。
【００３９】
また、不揮発性半導体メモリの複数のメモリブロックの一部を、他のメモリブロックの書換回数や書き込まれているデータの反転／非反転情報、及びＣＰＵ２０で実行される書換制御処理プログラムを記憶するための領域として用いるようにしてもよい。これにより、上記実施形態における第２のＲＯＭ４０を省略することができる。
【００４０】
また、上記実施形態において、不揮発性半導体メモリ１０から、反転データを読み出す際には、不揮発性半導体メモリ１０においてデータを反転させて元のデータに戻した上でＣＰＵ２０に送出するようにしてもよいし、反転データとともに当該データが反転データであることを示す情報を送出し、ＣＰＵ２０及びＲＡＭ３０により反転処理を行わせるようにしてもよい。
【００４１】
また、上記実施形態では、メモリブロックの使用状況としてそれぞれのメモリブロックの書換回数を計数するようにしているが、その他の使用状況を利用することもできる。例えば、それぞれのメモリブロックにおいて、データが書き込まれている時間を積算して、この積算時間に基づいて書き込むデータの反転／非反転を制御するようにしてもよい。
【００４２】
さらに、メモリブロック（セクタ）間の書換回数を平均化することで、不揮発性半導体メモリのさらなる長寿命化を期待することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明を適用し得る電荷機器の制御ブロックの概略構成を示す説明図である。
【図２】第１のＲＯＭへの書換制御処理の一例について示すフローチャートである。
【図３】メモリ部１０３の書換回数と、書き込むデータの形態の対応関係の一例を示すテーブルである。
【図４】書換制御処理に伴うメモリ部１０３におけるデータの書込状態の遷移の一例を示す説明図である。
【符号の説明】
【００４４】
１  電荷機器
１０  第１のＲＯＭ（不揮発性半導体メモリ）
２０  ＣＰＵ
３０  ＲＡＭ
４０  第２のＲＯＭ
【図１】
2009054236.tif 000003
【図２】
2009054236.tif 000004
【図３】
2009054236.tif 000005
【図４】
2009054236.tif 000006