(57)【要約】【課題】不揮発性メモリにおいて、書き込み回数を不所望に増大させることなく、閾値を変動前の状態に戻す。【解決手段】不揮発性メモリ（１４）と、乱数発生器（１２）と、上記不揮発性メモリにアクセス可能なコントローラ（１１）とを含むシステムで、上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を上記コントローラで決定する。そして、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させる。このようなリフレッシュ制御によって、書き込み回数を不所望に増大させることなく、閾値を変動前の状態に戻す。【選択図】図１
2010039983.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
乱数を生成可能な乱数発生器と、
上記乱数発生器に結合され、且つ、上記不揮発性メモリにアクセス可能なコントローラと、を有するシステムでの不揮発性メモリ制御方法であって、
上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させることを特徴とする不揮発性メモリ制御方法。
【請求項２】
不揮発性メモリと、
上記不揮発性メモリにアクセス可能なコントローラと、を有するシステムにおける不揮発性メモリ制御方法であって、
上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、リフレッシュ対象領域とを管理し、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させることを特徴とする不揮発性メモリ制御方法。
【請求項３】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理と、
上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理と、
上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理と、
上記第３処理の後に、必要に応じて上記閾値を更新する第４処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項４】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理と、
上記第６処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項５】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、上記不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理と、
上記第８処理で得られた差分のうち、所定の閾値より小さな差分に対応する第１アクセス対象領域を取得する第９処理と、
上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項６】
上記第２アクセス対象領域は、上記第８処理で得られた差分に基づいて決定される請求項５記載の不揮発性メモリ制御方法。
【請求項７】
不揮発性メモリを含む半導体装置であって、
乱数を生成可能な乱数発生器と、
上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラと、を含むことを特徴とする半導体装置。
【請求項８】
不揮発性メモリを含む半導体装置であって、
上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値とリフレッシュ対象領域とを管理可能な管理エリアと、
上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラと、を含むことを特徴とする半導体装置。
【請求項９】
上記管理エリアは、上記不揮発性メモリにおける記憶領域の一部を使って形成された請求項８記載の半導体装置。
【請求項１０】
上記管理エリアは、上記不揮発性メモリとは別に設けられた半導体メモリに形成された請求項８記載の半導体装置。
【請求項１１】
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理と、
上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理と、
上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理と、
上記第３処理の後に、必要に応じて上記閾値を更新する第４処理と、を含む請求項８記載の半導体装置。
【請求項１２】
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理と、
上記第６処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理と、を含む請求項８記載の半導体装置。
【請求項１３】
上記半導体装置は、外部から与えられた論理アドレスを上記不揮発性メモリにおける物理アドレスに変換するための論理／物理アドレス変換テーブルを更に含み、
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理と、
上記第８処理で得られた差分のうち、所定の閾値より小さな上記差分に対応する第１アクセス対象領域を取得する第９処理と、
上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理と、を含む請求項８記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリにおけるリフレッシュ制御技術に関し、例えば不揮発性メモリを備えたマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
大容量のメモリに対する要望が高まっており、不揮発性メモリが広く使用されるようになってきている。不揮発性メモリの大容量化を阻害する大きな要因としては、チップ面積の増大によるチップコストの増大がある。不揮発性メモリにおけるチップ面積の縮小化のために1ビット／1トランジスタで構成されたＳｉｎｇｌｅ・ＭＯＮＯＳ（Metal Oxide Nitride Oxide Semiconductor）メモリが提案されている（例えば特許文献１参照）。
【０００３】
【特許文献１】特開２００６−１８５５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
1ビット／1トランジスタで構成されたＳｉｎｇｌｅ・ＭＯＮＯＳメモリにおいては、特許文献１の図１Ａ−図１Ｄに示されるような所定電圧をメモリゲートＭＧ、ウェル、ソース（Ｓ）及びドレイン（Ｄ）に印加することにより、選択したビットに対して消去、書き込み及び読み出しを行うことができる。また、この場合、選択していないビット（非選択ビット）の誤動作を防ぐため、非選択ビットに阻止電圧を印加する必要がある。しかし、それについて本願発明者が検討したところ、上記阻止電圧の印加によって、消去、書き込み及び読み出し時に非選択ビットが弱い消去状態もしくは書き込み状態になり、それによってメモリセルの閾値(Ｖｔｈ)が変動する現象（これを「ディスターブ」という）が生じてしまう。ディスターブ対策として、書き込み毎に、あるいは読み出し毎に、若しくは消去毎に、再書き込みによるリフレッシュを行うことが考えられる。しかし、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞がある。
【０００５】
本発明の目的は、不揮発性メモリにおいて、書き込み回数を不所望に増大させることなく、閾値を変動前の状態に戻すための技術を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００８】
すなわち、不揮発性メモリと、乱数発生器と、上記不揮発性メモリにアクセス可能なコントローラとを含むシステムで、上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を上記コントローラで決定する。そして、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させる。このようなリフレッシュ制御によって、書き込み回数を不所望に増大させることなく、閾値を変動前の状態に戻すことができる。
【０００９】
また、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、リフレッシュ対象領域とを管理し、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させる。これにより、不揮発性メモリにおけるアクセス対象領域について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値を変動前の状態に戻すことができる。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１１】
すなわち、不揮発性メモリにおいて、書き込み回数を不所望に増大させることなく、閾値を変動前の状態に戻すことができる。
【発明を実施するための最良の形態】
【００１２】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１３】
〔１〕本発明の代表的な実施の形態に係る不揮発性メモリ制御方法は、不揮発性メモリ（１４）と、乱数を生成可能な乱数発生器（１２）と、上記乱数発生器に結合され、且つ、上記不揮発性メモリにアクセス可能なコントローラ（１５）とを含むシステムで実施する。すなわち、上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させる。
【００１４】
このような制御方法によれば、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域が決定され、当該領域に対して再書き込みが不揮発性メモリにおける各アクセス対象領域（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値を変動前の状態に戻すことができる。また、上記不揮発性メモリへのアクセスが行われる毎に乱数が発生され、その乱数に対応するアクセス対象領域について再書き込みが行われるので、リフレッシュに起因して書き込み回数が不所望に増大するのを回避することができる。
【００１５】
〔２〕上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、リフレッシュ対象領域とを管理し、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させる。これにより、不揮発性メモリにおけるアクセス対象領域（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値を変動前の状態に戻すことができる。
【００１６】
〔３〕上記〔２〕において、上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理（６０２，１００１）と、上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理（６０３，１００４）と、上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理（６０５，１００６）と、上記第３処理の後に、必要に応じて上記閾値を更新する第４処理（６０７，１００９）とを含めることができる。
【００１７】
〔４〕上記〔２〕において、上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理（１２０２，１４０４）と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理（１２０３，１４０５）と、
上記第６処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理（１２０４，１４０６）とを含めることができる。
【００１８】
〔５〕上記〔２〕において、上記コントローラでのリフレッシュ制御には、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、上記不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理（１８０４）と、上記第８処理で得られた差分のうち、所定の閾値より小さな差分に対応する第１アクセス対象領域を取得する第９処理（１８０６）とを含めることができる。そして、上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理（１８０７）と、上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理（１８０８）とを含めることができる。さらに、上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理（１８１０）とを含めることができる。
【００１９】
〔６〕上記〔５〕において、上記第２アクセス対象領域は、上記第８処理で得られた差分に基づいて決定することができる。
【００２０】
〔７〕本発明の代表的な実施の形態に係る半導体装置（１０）は、不揮発性メモリ（１４）を含む。そして、乱数を生成可能な乱数発生器（１２）と、上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラ（１５）とが設けられる。
【００２１】
〔８〕本発明の代表的な実施の形態に係る半導体装置（１０）は不揮発性メモリ（１４）を含む。そして、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値とリフレッシュ対象領域とを管理可能な管理エリア（５１）と、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラ（１５）とが設けられる。
【００２２】
〔９〕上記〔８〕において、上記管理エリアは、上記不揮発性メモリにおける記憶領域の一部を使って形成することができる。
【００２３】
〔１０〕上記〔８〕において、上記不揮発性メモリとは別に設けられた半導体メモリに形成することができる。
【００２４】
〔１１〕上記〔８〕において、上記コントローラに、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理（６０２，１００１）と、
上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理（６０３，１００４）と、
上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理（６０５，１００６）と、
上記第３処理の後に、必要に応じて上記閾値を更新する第４処理（６０７，１００９）とを実行させることができる。
【００２５】
〔１２〕上記〔８〕において、上記コントローラに、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理（１２０２，１４０４）と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理（１２０３，１４０５）と、
上記第６処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理（１２０４，１４０６）とを実行させることができる。
【００２６】
〔１３〕上記〔８〕において、上記半導体装置は、外部から与えられた論理アドレスを上記不揮発性メモリにおける物理アドレスに変換するための論理／物理アドレス変換テーブル（１７）を更に含む。そして、上記コントローラには、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理（１８０４）と、上記第８処理で得られた差分のうち、所定の閾値より小さな上記差分に対応する第１アクセス対象領域を取得する第９処理（１８０６）とを実行させることができる。さらに上記コントローラには、上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理（１８０７）と、上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理（１８０８）とを実行させることができる。そして、上記コントローラには、上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理（１８１０）とを実行させることができる。
【００２７】
〔１４〕上記アクセス対象領域は、上記不揮発性メモリがセクタ単位でアクセスされる場合には「セクタ」とされ、上記不揮発性メモリがページ単位でアクセスされる場合には「ページ」とされ、上記不揮発性メモリがブロック単位でアクセスされる場合には「ブロック」とされる。また、上記アクセスには、上記不揮発性メモリへの書き込みのためのアクセス、上記不揮発性メモリの消去のためのアクセス、上記不揮発性メモリからの読み出しのためのアクセスが含まれる。
【００２８】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２９】
＜実施の形態１＞
図１には、本発明にかかる半導体装置の一例とされるマイクロコンピュータの構成例が示される。図１に示されるマイクロコンピュータ１０は、特に制限されないが、プロセッサ１１、乱数発生器１２、プログラムメモリ１３、不揮発性メモリ１４、及びアクセスコントローラ１５を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。プロセッサ１１、乱数発生器１２、プログラムメモリ１３、及び不揮発性メモリ１４は、バス９を介して互いに各種信号のやり取りが可能に結合される。不揮発性メモリ１４は、例えば１ビット／１トランジスタで構成されたＳｉｎｇｌｅ ＭＯＮＯＳ（Ｍｅｔａｌ Ｏｘｉｄｅ Ｎｉｔｒｉｄｅ Ｏｘｉｄｅ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）メモリとされる。
【００３０】
上記不揮発性メモリ１４は、複数の不揮発性メモリセルがアレイ状に配列されて成り、上記プロセッサ１１には、処理に用いられる各種データが格納される。不揮発性メモリ１４は、複数のブロックによって構成され、各ブロックはさらに図２に示されるように、複数のページＰａｇｅ１〜ＰａｇｅＮによって構成される。書き込みや消去や読み出しは、このページ単位で行われる。消去や、書き込み、読み出しなどの各モードにおいて所定の動作バイアスが印加されるようになっている。例えば図２０Ａに示されるように、消去時には、メモリゲート（ＭＧ）に−８．５Ｖ、ウェル、ソース（Ｓ）及びドレイン（Ｄ）に電源電圧である１．５Ｖを印加し、トンネル効果でＮｉｔｒｉｄｅ膜中の電子をウェル側に抜くことにより、メモリセルの閾値（Ｖｔｈ）をマイナス側にしている。図２０Ｂに示されるように、書き込み時には、メモリゲートＭＧに１．５Ｖ、ウェル、ソース（Ｓ）及びドレイン（Ｄ）に−１０．５Ｖを印加し、トンネル効果でＮｉｔｒｉｄｅ膜中に電子を注入することにより、メモリセルの閾値（Ｖｔｈ）をプラス側にしている。図２０Ｃに示されるように、読み出し時には、選択するＭＧに０Ｖ、ソース（Ｓ）を０Ｖ、ドレイン（Ｄ）に１．０Ｖを設定することで、もしメモリセルが消去状態であれば、Ｖｔｈがマイナスのため、ドレイン（Ｄ）−ソース（Ｓ）間に電流が流れ、ドレイン電位が下がるのを検出し、メモリセルが書き込み状態であれば、Ｖｔｈがプラスのため、ドレイン（Ｄ）−ソース（Ｓ）間には電流が流れずドレイン電位は１Ｖのままキープされることを検出することになる。また、図２０Ｄに示されるように、スタンバイ時には、ＭＧ、ウェルをメモリセル消去Ｖｔｈ以下である−１．５Ｖを印加することにしている。
【００３１】
図２０Ａ−図２０Ｄに示されるような所定電圧をメモリゲートＭＧ、ウェル、ソース（Ｓ）及びドレイン（Ｄ）に印加することにより、選択したビットに対して消去、書き込み及び読み出しを行うことができる。また、この場合、選択していないビット（非選択ビット）の誤動作を防ぐため、非選択ビットに阻止電圧を印加する必要がある。しかし、上記阻止電圧の印加によって、消去、書き込み及び読み出し時に非選択ビットが弱い消去状態もしくは書き込み状態になり、それによってメモリセルの閾値(Ｖｔｈ)が変動、すなわちディスターブを生ずる。ディスターブ対策として、書き込み毎に、あるいは読み出し毎に、若しくは消去毎に、再書き込みによるリフレッシュを行うことが考えられるが、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞がある。そこで本例では以下のようにリフレッシュを行うようにしている。
【００３２】
上記乱数発生器１２は、真性乱数、すなわち、出現する数に偏りが無い乱数を発生する。上記プロセッサ１１は、所定のプログラムに従って所定の演算処理を実行する。また、上記プロセッサ１１は、マイクロコンピュータ１０全体の動作制御を司る。本例において上記不揮発性メモリ１４のリフレッシュ制御は、上記プロセッサ１１や上記アクセスコントローラ１５等によって行われるが、本説明では、アクセスコントローラ１５が行うものとする。上記アクセスコントローラ１５によるリフレッシュ制御では、上記不揮発性メモリ１４への書き込みが行われる毎に、上記乱数発生器１２で発生された乱数に基づいてリフレッシュ対象ページが決定され、当該ページに対して再書き込みが行われるようになっている。
【００３３】
ここで、上記乱数発生器１２で生成される乱数の最大値は、上記不揮発性メモリ１４における総ページ数Ｎよりも十分に大きな値とされる。このようにするのは、本例のリフレッシュ制御では、発生された乱数の値が１〜Ｎに含まれるか否かを判定し、乱数の値が１〜Ｎに含まれる場合にリフレッシュのための再書き込みが実行されるためである。仮に、上記乱数発生器１２で生成される乱数の最大値を上記不揮発性メモリ１４における総ページ数Ｎよりも小さな値とした場合には、乱数が発生される毎にリフレッシュのための再書き込みが実行されてしまい、その結果、必要以上にリフレッシュが行われることになる。
【００３４】
上記プログラムメモリ１３には、上記プロセッサ１１で実行されるプログラムが格納されている。
【００３５】
図３には、リフレッシュ制御の流れが示される。
【００３６】
プロセッサ１１がアクセスコントローラ１５に、何れかのページ、例えばＰａｇｅＭへのデータ書き込みを要求し、アクセスコントローラ１５がＰａｇｅＭにデータを書き込むと（３０１）、アクセスコントローラ１５は、さらに、乱数生成器１２に対して乱数Ｘを発生させ（３０２）、発生された乱数Ｘの値が１〜Ｎに含まれるか否かの判別を行う（３０３）。この判別において、発生された乱数の値が１〜Ｎに含まれる（ＹＥＳ）と判断した場合、アクセスコントローラ１５は、その乱数に対応するページ（ＰａｇｅＸ）についての再書き込みを行うことでリフレッシュを実行する。例えば発生された乱数の値が「３」の場合、Ｐａｇｅ３についてのリフレッシュが行われる。このように本例によれば、不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、乱数生成器１２により真性乱数が発生され、その真性乱数に対応するページについて再書き込みが行われる。ここで真性乱数は、出現する数に偏りがないので、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。このリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。尚、不揮発性メモリ１４が複数のブロックによって構成され、各ブロックがさらに複数のページ（Ｐａｇｅ１〜ＰａｇｅＮ）によって構成される場合には、当該他のブロックにおいても、上記と同様にプロセッサ１１によるリフレッシュ制御が行われる。
【００３７】
上記例によれば、以下の作用効果を得ることができる。
【００３８】
（１）不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、乱数生成器１２により真性乱数が発生され、その真性乱数に対応するページについて再書き込みが行われるので、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００３９】
（２）上記（１）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００４０】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、上記のように不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、乱数生成器１２により真性乱数が発生され、その真性乱数に対応するページについて再書き込みが行われるため、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００４１】
＜実施の形態２＞
図４には、本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例が示される。図４に示されるマイクロコンピュータ１０が図１に示されるのと大きく相違するのは、乱数発生器１２が省略され、それに代えて、不揮発性メモリ１４内に、リフレッシュについての管理エリアが確保されている点である。本例においてアクセスコントローラ１５は、上記管理エリアでの管理情報に基づいてリフレッシュ制御を行う。上記不揮発性メモリ１４は、例えば図５に示されるように、Ｐａｇｅ１〜ＰａｇｅＮとは別に、管理エリア５１が設けられる。この管理エリア５１には、不揮発性メモリ１４における全てのページについての書き込み回数の合計値（「全体書き込み回数」という）と、リフレッシュ対象とされるページ（リフレッシュＰａｇｅ）を特定するための情報が設定される。この管理エリア５１内の各情報は、アクセスコントローラ１５によって更新される。
【００４２】
図６には、図４に示されるマイクロコンピュータ１０におけるリフレッシュ制御の全体的な流れが示される。尚、このリフレッシュ制御はプロセッサ１１やアクセスコントローラ１５等によって行われるが、本説明では、アクセスコントローラ１５が行うものとする。また、図７には上記リフレッシュ制御における不揮発性メモリ１４の状態変化が示される。尚、図７において、ハッチングが付されているのは書き込みが行われるページであり、下線が付されているのはリフレッシュが行われるページである。
【００４３】
図７（Ａ）の状態を初期状態とする。この初期状態において、全体書き込み回数は「０」、リフレッシュＰａｇｅは「Ｐａｇｅ１」とされる。また、閾値Ｘは、「１００００」に設定される。この状態でアクセスコントローラ１５の制御により上記不揮発性メモリ１４へのデータ書き込みが行われる場合を考える。アクセスコントローラ１５の制御により、例えば上記不揮発性メモリ１４におけるＰａｇｅ２にデータの書き込みが行われるものとする（６０１）。この書き込みが終了すると、プロセッサ１１により、管理エリア５１が参照されることで、不揮発性メモリ１４の全体書き込み回数が取得される（６０２）。そして、プロセッサ１１において、全体書き込み回数が閾値Ｘより大きいか否かの判別が行われる（６０３）。閾値Ｘはプロセッサ１１内の適宜のレジスタ等に設定されている。ステップ６０３の判別において、全体書き込み回数が閾値Ｘより大きくない（ＮＯ）と判断された場合には、アクセスコントローラ１５の制御により、全体書き込み回数が更新される（６０９）。例えば、図７（Ａ）の初期状態で、全体書き込み回数は「０」であり、それは閾値Ｘより大きくないため、ステップ６０３の判別において「ＮＯ」と判断され、全体書き込み回数が更新される（６０９）。図７（Ｂ）に示される例では、全体書き込み回数が「０」から「１」に更新されている。同様に、図７（Ｃ）に示される状態では、Ｐａｇｅ３００へのデータ書き込みが行われる。このとき全体書き込み回数は「９９９９」となっている。図７（Ｄ）に示される状態では、Ｐａｇｅ１５０へのデータ書き込みが行われる。このとき全体書き込み回数は「１００００」となっている。図７（Ｅ）に示される状態では、Ｐａｇｅ５１１へのデータ書き込みが行われる。このとき全体書き込み回数は「１０００１」となり、そのときの閾値Ｘ＝１００００を越えている。この状態では、ステップ６０３での判別で「ＹＥＳ」と判断される。そして、上記ステップ６０３の判別において、「ＹＥＳ」と判断された場合には、管理エリア５１からリフレッシュＰａｇｅの情報が取得される（６０４）。そして、リフレッシュが必要か否かの判別が行われる（６０５）。例えば、上記ステップ６０４で取得されたリフレッシュＰａｇｅへの書き込みが上記ステップ６０１で行われた場合には、このリフレッシュＰａｇｅへのリフレッシュのための再書き込みは不要である。そこで、上記ステップ６０５では、上記ステップ６０４で取得されたリフレッシュＰａｇｅと、上記ステップ６０１で書き込みを行ったＰａｇｅとを比較し、同一Ｐａｇｅの場合には、当該ページに対するリフレッシュは不要（ＮＯ）と判断し、異なるＰａｇｅの場合には、当該ページに対するリフレッシュは必要（ＹＥＳ）と判断する。上記ステップ６０５の判別において、リフレッシュが必要（ＹＥＳ）と判断された場合には、対応するページ（ここでは、Ｐａｇｅ１）のリフレッシュ、すなわち再書き込みが実行される（６０６）。そして、全体書き込み回数との関係で閾値Ｘを更新する必要があるか否かの判別が行われる（６０７）。また、上記ステップ６０５の判別において、リフレッシュが不要（ＮＯ）と判断された場合には、上記ステップ６０６でのリフレッシュを行うことなく、上記ステップ６０７の判別が行われる。
【００４４】
全体書き込み回数が閾値Ｘを越えた場合には、ステップ６０７の判別で「ＹＥＳ」と判断され、それにより閾値Ｘが、それまでの値より大きな値に更新される（６０８）。ここでもし閾値Ｘの値をそれまでの値より大きな値に変更しなければ、いずれかのページへの書き込みが行われる毎に、ステップ６０３の判別で必ず「ＹＥＳ」と判断されてリフレッシュが実行されることから、不必要な再書き込みが頻繁に行われてしまう。これを避けるため、全体書き込み回数が閾値Ｘを越えた場合には、ステップ６０６の判別で「ＹＥＳ」と判断され、それにより閾値Ｘが、それまでの値より大きな値に更新されるようになっている（６０８）。そして閾値Ｘが更新された後に、リフレッシュＰａｇｅが更新され（６０９）、その後、全体書き込み回数が更新される（６１０）。全体書き込み回数との関係で閾値Ｘを更新する必要が無い場合には、上記ステップ６０７の判別で「ＮＯ」と判断され、閾値Ｘが更新されることなく、リフレッシュＰａｇｅが更新され（６０９）、その後、全体書き込み回数が更新される（６１０）。図７（Ｅ）に示される例では、全体書き込み回数が「１０００１」とされ、リフレッシュＰａｇｅが「Ｐａｇｅ２」に更新されているため、Ｐａｇｅ５１１へのデータ書き込みが行われた場合に、ステップ６０３の判別で「ＹＥＳ」と判断され、ステップ６０５でＰａｇｅ２のリフレッシュが行われることになる。
【００４５】
上記例によれば、以下の作用効果を得ることができる。
【００４６】
（１）不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、全体書き込み回数が閾値より大きいか否かの判別が行われ（６０３）、全体書き込み回数が閾値より大きい場合に、リフレッシュＰａｇｅとして取得されたページがリフレッシュされる。そして、全体書き込み回数との関係で閾値Ｘが更新される（６０９）。このようなリフレッシュ制御により、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００４７】
（２）上記（１）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００４８】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、上記のように不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、全体書き込み回数が閾値より大きいか否かの判別が行われ（６０３）、全体書き込み回数が閾値より大きい場合に、リフレッシュＰａｇｅとして取得されたページがリフレッシュされるため、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００４９】
＜実施の形態３＞
図８には、本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例が示される。図８に示されるマイクロコンピュータ１０が図４に示されるのと大きく相違するのは、不揮発性メモリ１４内の各Ｐａｇｅに、リフレッシュについての管理エリアが確保されている点と外部にリフレッシュ管理エリア１６が形成されている点である。上記リフレッシュ管理エリア１６は、バス９に結合されたＲＡＭ（ランダム・アクセス・メモリ）などに形成される。上記不揮発性メモリ１４は、例えば図９（Ａ）に示すように、Ｐａｇｅ毎に管理エリアが設けられる。この管理エリアは、図９（Ｂ）に示されるように、リフレッシュフラグと、全体書き込み回数との記憶エリアを含む。ここでリフレッシュフラグは、リフレッシュが行われたか否かを示すもので、例えばリフレッシュフラグが論理値「０」の場合には、未だリフレッシュが行われていないことを示し、リフレッシュフラグが論理値「１」の場合には、リフレッシュ済であることを示している。リフレッシュ管理エリア１６は、電源投入時に管理エリアを検索することによって入手する全体書き込み回数ならびにリフレッシュＰａｇｅを保存するエリアである。このリフレッシュ管理エリア１６により、全体書き込み回数ならびにリフレッシュＰａｇｅをメモリアクセス毎に検索する手間を省くことが可能となる。
【００５０】
図１０には、図８に示されるマイクロコンピュータ１０におけるリフレッシュ制御の全体的な流れが示される。尚、このリフレッシュ制御はプロセッサ１１やアクセスコントローラ１５等によって行われるが、本説明では、アクセスコントローラ１５が行うものとする。また、図１１には上記リフレッシュ制御における不揮発性メモリ１４の状態変化が示される。尚、図１１において、ハッチングが付されているのは書き込みが行われるページであり、下線が付されているのはリフレッシュが行われるページである。
【００５１】
図１１（Ａ）の状態を初期状態とする。この初期状態においては、全てのページ（例えばＰａｇｅ１〜Ｐａｇｅ５１１）において、リフレッシュフラグは論理値「０」、全体書き込み回数は「０」にそれぞれ設定されている。また、閾値Ｘは、「１００００」に設定されているものとする。
【００５２】
先ず、アクセスコントローラ１５により、リフレッシュ管理エリア１６が参照され、不揮発性メモリ１４における全体書き込み回数が取得される（１００１）。そして、アクセスコントローラ１５の制御により、不揮発性メモリ１４における何れかのページにデータの書き込みが行われると（１００２）、当該ページの管理エリアも更新される（１００３）。そして、全体書き込み回数が閾値Ｘに達したか否かの判別が行われる（１００４）。この判別において、全体書き込み回数が閾値Ｘに達していない（ＮＯ）と判断された場合には、処理が終了される。例えば、図１１（Ｂ）に示されるように、Ｐａｇｅ２にデータが書き込まれた場合には、このＰａｇｅ２の管理エリアも更新される。図１１（Ｂ）に示される例では、Ｐａｇｅ２以外の書き込みは行われていないので、不揮発性メモリ１４における全体書き込み回数は、それまでの「０」から「１」に更新されている。また、図１１（Ｃ）に示される例では、Ｐａｇｅ３００にデータ書き込みが行われているが、このとき、既に他のページへのデータ書き込みが行われており、不揮発性メモリ１４における全体書き込み回数は、「９９９９」に更新されている。さらに、図１１（Ｄ）に示される例では、Ｐａｇｅ１５０にデータ書き込みが行われ、このＰａｇｅ１５０へのデータ書き込みによって、不揮発性メモリ１４における全体書き込み回数は、「１００００」となり、そのときの閾値Ｘ＝１００００に達したことから、ステップ１００４の判別において、「ＹＥＳ」と判断され、リフレッシュＰａｇｅの取得される（１００５）。そして、リフレッシュが必要か否かの判別が行われる（１００６）。例えば、上記ステップ１００４で取得されたリフレッシュＰａｇｅへの書き込みが上記ステップ１００１で行われた場合には、このリフレッシュＰａｇｅへのリフレッシュのための再書き込みは不要である。そこで、上記ステップ１００６では、上記ステップ１００５で取得されたリフレッシュＰａｇｅと、上記ステップ１００１で書き込みを行ったＰａｇｅとを比較し、同一Ｐａｇｅの場合には、当該ページに対するリフレッシュは不要（ＮＯ）と判断し、異なるＰａｇｅの場合には、当該ページに対するリフレッシュは必要（ＹＥＳ）と判断する。上記ステップ１００６の判別において、リフレッシュが必要（ＹＥＳ）と判断された場合には、対応するページ（ここでは、Ｐａｇｅ１）のリフレッシュ、すなわち再書き込みが実行される（１００７）。尚、電源投入時に管理エリア内のリフレッシュフラグを参照し、このリフレッシュフラグが論理値「０」のページがリフレッシュＰａｇｅとしてリフレッシュ管理エリア１６に保存されている。リフレッシュＰａｇｅが複数ある場合、その中でページ番号が最も小さいものが選択される。そして、リフレッシュ管理エリア１６の更新やリフレッシュされたページの管理エリアが更新される（１００８）。例えば図１１（Ｄ）に示される例では、Ｐａｇｅ１のリフレッシュが行われ、それに対応するリフレッシュフラグが、それまでの論理値「０」から論理値「１」に更新されている。また、図１１（Ｅ）に示される例では、Ｐａｇｅ５１１へのデータ書き込みによって、不揮発性メモリ１４における全体書き込み回数は、「１０００１」となり、そのときの閾値Ｘ＝１００００に達していることから、ステップ１００４の判別において、「ＹＥＳ」と判断され、リフレッシュＰａｇｅの取得が行われる（１００５）。この例では、Ｐａｇｅ１についてのリフレッシュフラグは論理値「１」とされ、既にリフレッシュが完了しているから、Ｐａｇｅ２についてのリフレッシュが行われ（１００７）、このＰａｇｅ２に対応するリフレッシュフラグが、それまでの論理値「０」から論理値「１」に更新される（１００８）。このように、何れかのページへのデータ書き込みが行われる毎に、全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われる（１００７）。そして、閾値Ｘを更新する必要があるか否かの判別が行われる（１００８）。Ｐａｇｅ１〜Ｐａｇｅ５１１に対応する全てのリフレッシュフラグが論理値「１」になった場合には、閾値Ｘを更新する必要がある（ＹＥＳ）と判断され、閾値Ｘが、それまでの「１００００」から例えば「３００００」などに更新され（１０１０）、管理エリアが初期状態に戻される。そして、図１０に示されるリフレッシュ制御が再び開始される。
【００５３】
上記の例によれば、以下の作用効果を得ることができる。
【００５４】
（１）何れかのページへのデータ書き込みが行われる毎に、全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われる（１００７）。そして、閾値Ｘを更新する必要があるか否かの判別が行われる（１００９）。Ｐａｇｅ１〜Ｐａｇｅ５１１に対応する全てのリフレッシュフラグが論理値「１」になった場合には、閾値Ｘが更新される。このようなリフレッシュ制御により、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００５５】
（２）上記（１）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００５６】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、上記のように全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われるため（１００７）、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００５７】
＜実施の形態４＞
図１２には、図４及び図５に示される構成における別のリフレッシュ制御の全体的な流れが示される。
【００５８】
図５に示される管理エリア５１には、不揮発性メモリ１４における全体書き込み回数と、各ページの書き込みが行われた際の全体書き込み回数とが格納され、それに基づいてプロセッサ１１やアクセスコントローラ１５等によりリフレッシュ制御が行われる。尚、本説明では、アクセスコントローラ１５が行うものとする。また、図１３には上記リフレッシュ制御における不揮発性メモリ１４の状態変化が示される。尚、図１３において、ハッチングが付されているのは書き込みが行われるページであり、下線が付されているのはリフレッシュが行われるページである。
【００５９】
図１３（Ａ）の状態を初期状態とする。この初期状態において、全体書き込み回数は「０」、各ページの書き込み回数は「０」とされる。また、閾値Ｘは、「４０００」に設定される。この状態でアクセスコントローラ１５の制御により上記不揮発性メモリ１４へのデータ書き込みが行われる場合を考える。
【００６０】
先ず、何れかのページにデータの書き込みが行われると（１２０１）、アクセスコントローラ１５は、図５に示される管理エリア５１を参照して、各ページの書き込みを行った際の全体書き込み回数と全体的の書き込み回数との差分が求められる（１２０２）。例えば図１３（Ｂ）に示されるようにＰａｇｅ１５０にデータの書き込みが行われた場合（１２０１）、このＰａｇｅ１５０についてのデータ書き込み回数は「１」、他のページについてのデータ書き込み回数は「０」であるから、この時点で、不揮発性メモリ１４の全体書き込み回数は「１」とされる。
【００６１】
そして、各ページの書き込みを行った際の全体書き込み回数と全体的の書き込み回数との差分が閾値Ｘに達したか否かの判別が行われる（１２０３）。この判別において、差分が閾値Ｘに達していない（ＮＯ）と判断された場合、書き込みを行ったページの全体書き込み回数、全体書き込み回数が更新される（１２０６）。また、ステップ１２０３の判別において、差分が閾値Ｘに達した（ＹＥＳ）と判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされる（１２０４）。図１３（Ｃ）に示される例では、Ｐａｇｅ１の全体書き込み回数は「５０００」、Ｐａｇｅ２の全体書き込み回数は「１０００」、Ｐａｇｅ１５０の全体書き込み回数は「３３４０」、Ｐａｇｅ３００の全体書き込み回数は「２３００」、Ｐａｇｅ５１１の全体書き込み回数は「４３００」、不揮発性メモリ１４の全体書き込み回数は「５０００」とされる。Ｐａｇｅ２の全体書き込み回数は「１０００」で、これと不揮発性メモリ１４の全体書き込み回数は「５０００」との差分が「４０００」となり、この差分が閾値Ｘ＝４０００に達したことから、ステップ１００４の判別においてＹＥＳと判断され、差分の一番大きなページ（ここではＰａｇｅ２）がリフレッシュされる（１２０４）。このようにするのは、差分の一番大きなページは書き込み回数が最も少なく、他のページに優先してディスターブ対策する必要があるからである。そして、図１３（Ｄ）に示されるように、書き込みを行ったページ及びリフレッシュしたページの書き込み回数、全体の書き込み回数が更新される（１２０５）。
【００６２】
上記例によれば、以下の作用効果を得ることができる。
【００６３】
（１）不揮発性メモリ１４における何れかのページにデータが書き込まれる毎に、各ページの書き込み回数と全体的の書き込み回数との差分が求められ（１２０２）、各ページの書き込み回数と全体的の書き込み回数との差分が閾値Ｘに達したか否かの判別が行われ（１２０３）、ステップ１２０３の判別において、差分が閾値Ｘに達した（ＹＥＳ）と判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされることにより（１２０４）、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜Ｐａｇｅ５１１）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００６４】
（２）上記（１）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００６５】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、各ページの書き込み回数と全体的の書き込み回数との差分が求められ、この差分が閾値Ｘに達した（ＹＥＳ）と判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされることにより、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００６６】
＜実施の形態５＞
図１４には、図８及び図９に示される構成における別のリフレッシュ制御の全体的な流れが示される。各Ｐａｇｅの管理エリアには、各ページの書き込みが行われた際の全体書き込み回数が格納される。また、図８に示されるリフレッシュ管理エリア１６は、電源投入時に管理エリアを検索することによって入手する全体書き込み回数が格納され、それに基づいてプロセッサ１１やアクセスコントローラ１５によりリフレッシュ制御が行われる。尚、本説明では、アクセスコントローラ１５が行うものとする。また、図１５には、上記リフレッシュ制御における管理エリアの状態変化が示される。尚、図１５において、ハッチングが付されているのは書き込みが行われるページであり、下線が付されているのはリフレッシュが行われるページである。
【００６７】
図１５（Ａ）の状態を初期状態とする。この初期状態において、全体書き込み回数は「０」、各ページの書き込み回数は「０」とされる。また、閾値Ｘは「４０００」に設定される。この状態でプロセッサ１１の制御により上記不揮発性メモリ１４へのデータ書き込みが行われる場合を考える。
【００６８】
先ず、アクセスコントローラ１５によってリフレッシュ管理エリア１６が参照され、不揮発性メモリ１４の全体書き込み回数が取得される（１４０１）。そして、何れかのページにデータ書き込みが行われた場合（１４０２）、当該ページの管理エリアも更新される（１４０３）。つまり、各ページの管理エリアには、当該ページにデータ書き込みが行われた時点での全体書き込み回数が格納されるようになっている。また、リフレッシュ管理エリア１６に格納してある全体書き込み回数も更新する。
そして、アクセスコントローラ１５によって、各ページの管理エリアの保持値と、現時点での全体の書き込み回数との差分が求められる（１４０４）。その後、上記ステップ１４０４で求められた差分が閾値Ｘに達したか否かの判別が行われる（１４０５）。ステップ１４０５の判別において、上記ステップ１４０４で求められた差分が閾値Ｘに達していない（ＮＯ）と判断された場合には、処理が終了される。ステップ１４０５の判別において、上記ステップ１４０４で求められた差分が閾値Ｘに達している（ＹＥＳ）と判断された場合には、上記ステップ１４０４で求められた差分が最も大きなページがリフレッシュされ（１４０６）、リフレッシュしたページの管理エリアが更新される（１４０７）。また、リフレッシュ管理エリア１６に格納してある全体書き込み回数も更新する。例えば、図１５（Ｂ）では、Ｐａｇｅ１５０へのデータ書き込みが行われることで、管理エリアにおける全体書き込み回数が「１」に更新される。図１５（Ｃ）に示される例では、Ｐａｇｅ１に対応する管理エリアが「５０００」となっており、この値が最も大きいことから、不揮発性メモリ１４の現在の全体書き込み回数が「５０００」であることが示される。次に、Ｐａｇｅ３００にデータ書き込みが行われた場合、このＰａｇｅ３００に対応する管理エリアは、図１５（Ｄ）に示されるように、５０００＋１＝５００１に更新される（１４０３）。また、図１５（Ｃ）の状態で、各ページの管理エリアの保持値と、現時点での全体の書き込み回数との差分が求められ（１４０４）、Ｐａｇｅ２の管理エリアの保持値（１０００）と、現時点での全体の書き込み回数（５０００）との差分は「４０００」であり、それが、閾値Ｘ＝４０００に達したため、求められた差分が最も大きなページ（ここではＰａｇｅ２）がリフレッシュされ（１４０６）、そのページの管理エリアが「５００１」に更新される。
【００６９】
上記例によれば、以下の作用効果を得ることができる。
【００７０】
（１）何れかのページにデータ書き込みが行われた場合（１４０２）、その書き込みが行われたページの管理エリアにおいて全体書き込み回数が更新される（１４０３）。そして、アクセスコントローラ１５によって、各ページの管理エリアの保持値と、現時点での全体の書き込み回数との差分が求められ（１４０４）、その後、上記ステップ１４０４で求められた差分が閾値Ｘに達したか否かの判別が行われる（１４０５）。ステップ１４０５の判別において、ＹＥＳと判断された場合には、上記ステップ１４０４で求められた差分が最も大きなページがリフレッシュされ（１４０６）、リフレッシュしたページの管理エリアが更新される（１４０７）。これにより、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜Ｐａｇｅ５１１）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００７１】
（２）上記（１）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００７２】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、各ページの管理エリアの保持値と、現時点での全体の書き込み回数との差分が求められ（１４０４）、この差分が閾値Ｘに達した（ＹＥＳ）と判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされることにより、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００７３】
＜実施の形態６＞
図１６には、本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例が示される。図１６に示されるマイクロコンピュータ１０が、図８に示されるのと大きく相違するのは、プロセッサ１１から与えられた論理アドレスを、不揮発性メモリ１４における物理アドレスに変換するための論理／物理アドレス変換テーブル１７が設けられている点である。アクセスコントローラ１５によって不揮発性メモリ１４がアクセスされる際に、論理／物理アドレス変換テーブル１７によって論理アドレスが不揮発性メモリ１４の物理アドレスに変換され、その物理アドレスによって不揮発性メモリ１４の書き込みや読み出し等が行われる。上記不揮発性メモリ１４は、例えば図１７（Ａ）に示すように、Ｐａｇｅ毎に管理エリアが設けられる。この管理エリアは、図１７（Ｂ）に示されるように、変換フラグと、全体書き込み回数との記憶エリアを含む。ここで、変換フラグとは、論理アドレスに対応する物理アドレスの入れ替えが可能か否かを示すのもので、例えば変換フラグが論理値「０」の場合には、入れ替えが可能であることを示し、変換フラグが論理値「１」の場合には、入れ替えが不可能であることを示している。リフレッシュ管理エリア１６は、電源投入時に管理エリアを検索することによって入手する全体書き込み回数を格納するエリアである。このリフレッシュ管理エリア１６により、全体書き込み回数をメモリアクセス毎に検索する手間を省くことが可能となる。
【００７４】
図１８には、図１６に示されるマイクロコンピュータ１０におけるリフレッシュ制御の全体的な流れが示される。このリフレッシュ制御はプロセッサ１１やアクセスコントローラ１５によって行われるが、本説明では。アクセスコントローラ１５が行うものとする。また、図１９には上記リフレッシュ制御における管理エリアの状態変化が示される。尚、図１９において、ハッチングが付されているのは書き込みが行われるページであり、下線が付されているのはリフレッシュが行われるページである。
【００７５】
図１９（Ａ）の状態を初期状態とする。この初期状態においては、全てのページ（例えばＰａｇｅ１〜Ｐａｇｅ５１１）において、変換フラグは論理値「０」、全体書き込み回数は「０」にそれぞれ設定されている。また、閾値Ｘは、「４０００」に設定されているものとする。この状態でアクセスコントローラ１５により、全体書き込み回数が取得される（１８０１）。そして、何れかのページにデータの書き込みが行われると（１８０２）、当該ページの管理エリアが更新される（１８０３）。また、リフレッシュ管理エリア１６の全体書き込み回数も更新される。例えば図１９（Ｂ）に示されるように、アクセスコントローラ１５によってＰａｇｅ１５０にデータの書き込みが行われた場合には、アクセスコントローラ１５によってＰａｇｅ１５０の管理エリアにおける全体書き込み回数が、それまでの「０」から「１」に更新される。そして、各ページの管理エリアの値と全体の書き込み回数の差分を求め（１８０４）、差分が閾値Ｘに達したか否かの判別が行われる（１８０５）。例えば図１９（Ｃ）に示される例では、Ｐａｇｅ２の管理エリアの値が「１０００」とされ、それと、そのときの全体書き込み回数「５０００」との差分「４０００」が閾値Ｘ（ここでは４０００設定）に達している。これにより、ステップ１８０５の判別において、ＹＥＳと判断され、こんどは、上記ステップ１８０４で求められた差分が、閾値Ｙより小さいページが取得される（１８０６）。ここで閾値Ｙは、閾値Ｘよりも小さな値とされ、例えば「１００」などとされ、プロセッサ１１内の適宜のレジスタ等に設定されているものとする。そして、取得したページの変換フラグの状態がチェックされる（１８０７）。変換フラグの状態が論理値「０」の場合には、入れ替えが可能であることを示しているため、求めた差分が最も大きいページと、差分が閾値Ｙより小さいページとの間で、ページの入換えが行われ（１８０８）、各ページの管理エリアも更新される（１８０９）。例えば図１９（Ｄ）に示される例では、全体の書き込み回数（５００１）との差分が最も大きいページは、Ｐａｇｅ２であり、差分が閾値Ｙより小さいページは、Ｐａｇｅ１である。そしてそれらの変換フラグの状態が論理値「０」であるため、ここでは、Ｐａｇｅ１とＰａｇｅ２との入れ換えが行われる（１８０８）。このページの入れ替えは、Ｐａｇｅ１の物理アドレスと、Ｐａｇｅ２の物理アドレスとを入れ替えることで実現される。Ｐａｇｅ１とＰａｇｅ２との入れ換えが行われた後、各ページの管理エリアが更新される（１８０９）。また、上記ステップ１８０７の判別において、入れ替え不可能（ＮＯ）と判断された場合には、差分の最も大きなページがリフレッシュされ（１８１０）、リフレッシュしたページの管理エリアが更新される（１８１１）。例えば図１９（Ｅ）に示される例では、差分の最も大きなＰａｇｅ２のリフレッシュが行われ、その管理エリアの最大書き込み回数が「５００１」に更新されている。
【００７６】
上記の例によれば、以下の作用効果を得ることができる。
【００７７】
（１）アクセスコントローラ１５によってデータの書き込みが行われた場合には、各ページの管理エリアの値と全体の書き込み回数の差分が求められ（１８０４）、差分が閾値Ｘに達したか否かの判別が行われ（１８０５）、差分の最も大きなページがリフレッシュされ（１８１０）、リフレッシュしたページの管理エリアも更新される（１８１１）。これにより、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜Ｐａｇｅ５１１）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【００７８】
（２）求めた差分が最も大きいページと、差分が閾値Ｙより小さいページとの間で、ページの入換えが行われ（１８０８）、各ページの管理エリアも更新される（１８０９）。このページの入れ替えは、Ｐａｇｅ１の物理アドレスと、Ｐａｇｅ２の物理アドレスとを入れ替えることで実現される。これにより、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜Ｐａｇｅ５１１）における書き込み回数の偏りが更に低減される。
【００７９】
（３）上記（１），（２）の作用効果により、マイクロコンピュータ１０の信頼性の向上を図ることができる。
【００８０】
（４）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、各ページの管理エリアの保持値と、現時点での全体の書き込み回数との差分が求められ（１８０４）、この差分が閾値Ｘに達したと判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされることにより、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【００８１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８２】
例えば、上記の例ではアクセスコントローラ１５によってリフレッシュ制御を行うようにしたが、このリフレッシュ制御専用のコントローラを上記プロセッサ１１やアクセスコントローラ１５とは別に設けることができる。
【００８３】
上記の例では、上記不揮発性メモリへの書き込みが行われる毎に乱数発生器で発生された乱数に基づいてリフレッシュ対象ページを決定したり、書き込み回数の合計値（全体書き込み回数）を更新したりしたが、上記不揮発性メモリの消去又は読み出しが行われる毎に乱数発生器で発生された乱数に基づいてリフレッシュ対象ページを決定したり、消去回数又は読み出し回数の合計値を更新するようにしても良い。
【００８４】
上記の例では、不揮発性メモリの書き込み回数を用いてリフレッシュ制御するようにしたが、不揮発性メモリにおける全てのページについての書き込み回数に代えて、不揮発性メモリにおける全てのページについての消去回数又は読み出し回数を用いてリフレッシュ制御することができる。
【００８５】
上記の例では、アクセス対象領域をページ（Ｐａｇｅ）としたが、これに限定されない。例えばアクセス対象領域をセクタやブロックとすることができる。
【００８６】
また、マイクロコンピュータ１０内のＲＡＭ（ランダム・アクセス・メモリ）に、全体書き込み回数を記録するようにしても良い。バッテリなどによって上記ＲＡＭがバックアップされていない場合には、システムの電源遮断の直前に上記ＲＡＭ内の全体書き込み回数を適宜の不揮発性メモリに待避し、システムのパワーオンリセットにおいて、上記不揮発性メモリ内の全体書き込み回数を上記ＲＡＭにロードすれば良い。
【００８７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、半導体装置に広く適用することができる。
【図面の簡単な説明】
【００８８】
【図１】本発明にかかる半導体装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図２】図１に示されるマイクロコンピュータに含まれる不揮発性メモリの構成例説明図である。
【図３】図１に示されるマイクロコンピュータに含まれる不揮発性メモリのリフレッシュ制御のフローチャートである。
【図４】本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図５】図４に示されるマイクロコンピュータに含まれる不揮発性メモリの構成例説明図である。
【図６】図４に示されるマイクロコンピュータに含まれる不揮発性メモリのリフレッシュ制御のフローチャートである。
【図７】図４に示されるマイクロコンピュータに含まれる不揮発性メモリの上記リフレッシュ制御における状態変化の説明図である。
【図８】本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図９】図８に示されるマイクロコンピュータに含まれるリフレッシュ管理エリアの構成例説明図である。
【図１０】図８に示されるマイクロコンピュータに含まれる不揮発性メモリのリフレッシュ制御のフローチャートである。
【図１１】図８に示されるマイクロコンピュータに含まれる不揮発性メモリのリフレッシュ制御における状態変化の説明図である。
【図１２】図４及び図５に示される構成における別のリフレッシュ制御のフローチャートである。
【図１３】図４及び図５に示される構成における別のリフレッシュ制御における状態変化の説明図である。
【図１４】図８及び図９に示される構成における別のリフレッシュ制御のフローチャートである。
【図１５】図８及び図９に示される構成における別のリフレッシュ制御における状態変化の説明図である。
【図１６】本発明にかかる半導体装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図１７】図１６に示されるマイクロコンピュータに含まれるリフレッシュ管理エリアの構成例説明図である。
【図１８】図１６に示されるマイクロコンピュータに含まれる不揮発性メモリのリフレッシュ制御のフローチャートである。
【図１９】図１６に示されるマイクロコンピュータに含まれる不揮発性メモリの上記リフレッシュ制御における状態変化の説明図である。
【図２０Ａ】上記不揮発性メモリにおける主要部の構成と電圧印加の説明図である。
【図２０Ｂ】上記不揮発性メモリにおける主要部の構成と電圧印加の説明図である。
【図２０Ｃ】上記不揮発性メモリにおける主要部の構成と電圧印加の説明図である。
【図２０Ｄ】上記不揮発性メモリにおける主要部の構成と電圧印加の説明図である。
【符号の説明】
【００８９】
１０  マイクロコンピュータ
１１  プロセッサ
１２  乱数生成器
１３  プログラムメモリ
１４  不揮発性メモリ
１５  アクセスコントローラ
１６  リフレッシュ管理エリア
【図１】
2010039983.tif 000003
【図２】
2010039983.tif 000004
【図３】
2010039983.tif 000005
【図４】
2010039983.tif 000006
【図５】
2010039983.tif 000007
【図６】
2010039983.tif 000008
【図７】
2010039983.tif 000009
【図８】
2010039983.tif 000010
【図９】
2010039983.tif 000011
【図１０】
2010039983.tif 000012
【図１１】
2010039983.tif 000013
【図１２】
2010039983.tif 000014
【図１３】
2010039983.tif 000015
【図１４】
2010039983.tif 000016
【図１５】
2010039983.tif 000017
【図１６】
2010039983.tif 000018
【図１７】
2010039983.tif 000019
【図１８】
2010039983.tif 000020
【図１９】
2010039983.tif 000021
【図２０Ａ】
2010039983.tif 000022
【図２０Ｂ】
2010039983.tif 000023
【図２０Ｃ】
2010039983.tif 000024
【図２０Ｄ】
2010039983.tif 000025