【手続補正書】
【提出日】平成23年8月3日(2011.8.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
乱数を生成可能な乱数発生器と、
上記乱数発生器に結合され、且つ、上記不揮発性メモリにアクセス可能なコントローラと、を有するシステムでの不揮発性メモリ制御方法であって、
上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させることを特徴とする不揮発性メモリ制御方法。
【請求項２】
不揮発性メモリと、
上記不揮発性メモリにアクセス可能なコントローラと、を有するシステムにおける不揮発性メモリ制御方法であって、
上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、リフレッシュ対象領域とを管理し、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を上記コントローラに実行させることを特徴とする不揮発性メモリ制御方法。
【請求項３】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理と、
上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理と、
上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理と、
上記第３処理の後に、必要に応じて上記閾値を更新する第４処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項４】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理と、
上記第５処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項５】
上記コントローラでのリフレッシュ制御は、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、上記不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理と、
上記第８処理で得られた差分のうち、所定の閾値より小さな差分に対応する第１アクセス対象領域を取得する第９処理と、
上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理と、を含む請求項２記載の不揮発性メモリ制御方法。
【請求項６】
上記第２アクセス対象領域は、上記第８処理で得られた差分に基づいて決定される請求項５記載の不揮発性メモリ制御方法。
【請求項７】
不揮発性メモリを含む半導体装置であって、
乱数を生成可能な乱数発生器と、
上記不揮発性メモリへのアクセスが行われる毎に、上記乱数発生器で発生された乱数に基づいて、リフレッシュ対象領域を決定し、当該領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラと、を含むことを特徴とする半導体装置。
【請求項８】
不揮発性メモリを含む半導体装置であって、
上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値とリフレッシュ対象領域とを管理可能な管理エリアと、
上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリに対するアクセス回数の合計値を更新し、その更新結果に基づいて、上記リフレッシュ対象領域に対して再書き込みを行うリフレッシュ制御を実行するコントローラと、を含むことを特徴とする半導体装置。
【請求項９】
上記管理エリアは、上記不揮発性メモリにおける記憶領域の一部を使って形成された請求項８記載の半導体装置。
【請求項１０】
上記管理エリアは、上記不揮発性メモリとは別に設けられた半導体メモリに形成された請求項８記載の半導体装置。
【請求項１１】
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値を取得する第１処理と、
上記第１処理で取得された合計値と、所定の閾値とを比較する第２処理と、
上記第２処理での比較結果に応じて、上記リフレッシュ対象領域に対する再書き込みを実行する第３処理と、
上記第３処理の後に、必要に応じて上記閾値を更新する第４処理と、を含む請求項８記載の半導体装置。
【請求項１２】
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、アクセス対象領域毎のアクセス回数との差分を得る第５処理と、
上記第５処理で得られた差分と所定の閾値とを比較する第６処理と、
上記第５処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第７処理と、を含む請求項８記載の半導体装置。
【請求項１３】
上記半導体装置は、外部から与えられた論理アドレスを上記不揮発性メモリにおける物理アドレスに変換するための論理／物理アドレス変換テーブルを更に含み、
上記コントローラは、上記不揮発性メモリに対するアクセスが発生される毎に、上記不揮発性メモリにおける全てのアクセス対象領域についてのアクセス回数の合計値と、不揮発性メモリにおけるアクセス対象領域毎のアクセス回数との差分を得る第８処理と、
上記第８処理で得られた差分のうち、所定の閾値より小さな上記差分に対応する第１アクセス対象領域を取得する第９処理と、
上記第９処理で取得された第１アクセス対象領域がそれとは異なる第２アクセス対象領域との間で、論理アドレスに対する物理アドレスの入れ替えが可能か否かの判別を行う第１０処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが可能であると判断された場合には、上記第１アクセス対象領域と上記第２アクセス対象領域との間で論理アドレスに対する物理アドレスの入れ替えを行う第１１処理と、
上記第１０処理での判別において、論理アドレスに対する物理アドレスの入れ替えが不可能であると判断された場合には、上記第８処理で求められた差分に応じてリフレッシュ対象領域を決定し、そのリフレッシュ対象領域に対してリフレッシュのための再書き込みを実行する第１２処理と、を含む請求項８記載の半導体装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
図７（Ａ）の状態を初期状態とする。この初期状態において、全体書き込み回数は「０」、リフレッシュＰａｇｅは「Ｐａｇｅ１」とされる。また、閾値Ｘは、「１００００」に設定される。この状態でアクセスコントローラ１５の制御により上記不揮発性メモリ１４へのデータ書き込みが行われる場合を考える。アクセスコントローラ１５の制御により、例えば上記不揮発性メモリ１４におけるＰａｇｅ２にデータの書き込みが行われるものとする（６０１）。この書き込みが終了すると、プロセッサ１１により、管理エリア５１が参照されることで、不揮発性メモリ１４の全体書き込み回数が取得される（６０２）。そして、プロセッサ１１において、全体書き込み回数が閾値Ｘより大きいか否かの判別が行われる（６０３）。閾値Ｘはプロセッサ１１内の適宜のレジスタ等に設定されている。ステップ６０３の判別において、全体書き込み回数が閾値Ｘより大きくない（ＮＯ）と判断された場合には、アクセスコントローラ１５の制御により、全体書き込み回数が更新される（６０９）。例えば、図７（Ａ）の初期状態で、全体書き込み回数は「０」であり、それは閾値Ｘより大きくないため、ステップ６０３の判別において「ＮＯ」と判断され、全体書き込み回数が更新される（６０９）。図７（Ｂ）に示される例では、全体書き込み回数が「０」から「１」に更新されている。同様に、図７（Ｃ）に示される状態では、Ｐａｇｅ３００へのデータ書き込みが行われる。このとき全体書き込み回数は「９９９９」となっている。図７（Ｄ）に示される状態では、Ｐａｇｅ１５０へのデータ書き込みが行われる。このとき全体書き込み回数は「１００００」となっている。図７（Ｅ）に示される状態では、Ｐａｇｅ５１１へのデータ書き込みが行われる。このとき全体書き込み回数は「１０００１」となり、そのときの閾値Ｘ＝１００００を越えている。この状態では、ステップ６０３での判別で「ＹＥＳ」と判断される。そして、上記ステップ６０３の判別において、「ＹＥＳ」と判断された場合には、管理エリア５１からリフレッシュＰａｇｅの情報が取得される。リフレッシュが必要か否かの判別が行われる（６０４）。例えば、上記ステップ６０４で取得されたリフレッシュＰａｇｅへの書き込みが上記ステップ６０１で行われた場合には、このリフレッシュＰａｇｅへのリフレッシュのための再書き込みは不要である。そこで、上記ステップ６０４で取得されたリフレッシュＰａｇｅと、上記ステップ６０１で書き込みを行ったＰａｇｅとを比較し、同一Ｐａｇｅの場合には、当該ページに対するリフレッシュは不要と判断し、異なるＰａｇｅの場合には、当該ページに対するリフレッシュは必要と判断する。上記ステップ６０４の判別において、リフレッシュが必要と判断された場合には、対応するページ（ここでは、Ｐａｇｅ１）のリフレッシュ、すなわち再書き込みが実行される（６０５）。そして、全体書き込み回数との関係で閾値Ｘを更新する必要があるか否かの判別が行われる（６０６）。また、上記ステップ６０４の判別において、リフレッシュが不要と判断された場合には、上記ステップ６０５でのリフレッシュを行うことなく、上記ステップ６０７の判別が行われる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
全体書き込み回数が閾値Ｘを越えた場合には、ステップ６０６の判別で「ＹＥＳ」と判断され、それにより閾値Ｘが、それまでの値より大きな値に更新される（６０７）。ここでもし閾値Ｘの値をそれまでの値より大きな値に変更しなければ、いずれかのページへの書き込みが行われる毎に、ステップ６０４の判別で必ず「リフレッシュが必要」と判断されてリフレッシュが実行されることから、不必要な再書き込みが頻繁に行われてしまう。これを避けるため、全体書き込み回数が閾値Ｘを越えた場合には、ステップ６０６の判別で「ＹＥＳ」と判断され、それにより閾値Ｘが、それまでの値より大きな値に更新されるようになっている（６０７）。そして閾値Ｘが更新された後に、リフレッシュＰａｇｅが更新され（６０８）、その後、全体書き込み回数が更新される（６０９）。全体書き込み回数との関係で閾値Ｘを更新する必要が無い場合には、上記ステップ６０６の判別で「ＮＯ」と判断され、閾値Ｘが更新されることなく、リフレッシュＰａｇｅが更新され（６０８）、その後、全体書き込み回数が更新される（６０９）。図７（Ｅ）に示される例では、全体書き込み回数が「１０００１」とされ、リフレッシュＰａｇｅが「Ｐａｇｅ２」に更新されているため、Ｐａｇｅ５１１へのデータ書き込みが行われた場合に、ステップ６０３の判別で「ＹＥＳ」と判断され、ステップ６０５でＰａｇｅ２のリフレッシュが行われることになる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
先ず、アクセスコントローラ１５により、リフレッシュ管理エリア１６が参照され、不揮発性メモリ１４における全体書き込み回数が取得される（１００１）。そして、アクセスコントローラ１５の制御により、不揮発性メモリ１４における何れかのページにデータの書き込みが行われると（１００２）、当該ページの管理エリアも更新される（１００３）。そして、全体書き込み回数が閾値Ｘに達したか否かの判別が行われる（１００４）。この判別において、全体書き込み回数が閾値Ｘに達していない（ＮＯ）と判断された場合には、処理が終了される。例えば、図１１（Ｂ）に示されるように、Ｐａｇｅ２にデータが書き込まれた場合には、このＰａｇｅ２の管理エリアも更新される。図１１（Ｂ）に示される例では、Ｐａｇｅ２以外の書き込みは行われていないので、不揮発性メモリ１４における全体書き込み回数は、それまでの「０」から「１」に更新されている。また、図１１（Ｃ）に示される例では、Ｐａｇｅ３００にデータ書き込みが行われているが、このとき、既に他のページへのデータ書き込みが行われており、不揮発性メモリ１４における全体書き込み回数は、「９９９９」に更新されている。さらに、図１１（Ｄ）に示される例では、Ｐａｇｅ１５０にデータ書き込みが行われ、このＰａｇｅ１５０へのデータ書き込みによって、不揮発性メモリ１４における全体書き込み回数は、「１００００」となり、そのときの閾値Ｘ＝１００００に達したことから、ステップ１００４の判別において、「ＹＥＳ」と判断され、リフレッシュＰａｇｅが取得される。リフレッシュが必要か否かの判別が行われる（１００５）。例えば、上記ステップ１００５で取得されたリフレッシュＰａｇｅへの書き込みが上記ステップ１００２で行われた場合には、このリフレッシュＰａｇｅへのリフレッシュのための再書き込みは不要である。そこで、上記ステップ１００５で取得されたリフレッシュＰａｇｅと、上記ステップ１００２で書き込みを行ったＰａｇｅとを比較し、同一Ｐａｇｅの場合には、当該ページに対するリフレッシュは不要と判断し、異なるＰａｇｅの場合には、当該ページに対するリフレッシュは必要と判断する。この判別において、リフレッシュが必要と判断された場合には、対応するページ（ここでは、Ｐａｇｅ１）のリフレッシュ、すなわち再書き込みが実行される（１００６）。尚、電源投入時に管理エリア内のリフレッシュフラグを参照し、このリフレッシュフラグが論理値「０」のページがリフレッシュＰａｇｅとしてリフレッシュ管理エリア１６に保存されている。リフレッシュＰａｇｅが複数ある場合、その中でページ番号が最も小さいものが選択される。そして、リフレッシュ管理エリア１６の更新やリフレッシュされたページの管理エリアが更新される（１００７）。例えば図１１（Ｄ）に示される例では、Ｐａｇｅ１のリフレッシュが行われ、それに対応するリフレッシュフラグが、それまでの論理値「０」から論理値「１」に更新されている。また、図１１（Ｅ）に示される例では、Ｐａｇｅ５１１へのデータ書き込みによって、不揮発性メモリ１４における全体書き込み回数は、「１０００１」となり、そのときの閾値Ｘ＝１００００に達していることから、ステップ１００４の判別において、「ＹＥＳ」と判断され、リフレッシュＰａｇｅの取得が行われる（１００５）。この例では、Ｐａｇｅ１についてのリフレッシュフラグは論理値「１」とされ、既にリフレッシュが完了しているから、Ｐａｇｅ２についてのリフレッシュが行われ（１００６）、このＰａｇｅ２に対応するリフレッシュフラグが、それまでの論理値「０」から論理値「１」に更新される（１００７）。このように、何れかのページへのデータ書き込みが行われる毎に、全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われる（１００６）。そして、閾値Ｘを更新する必要があるか否かの判別が行われる（１００８）。Ｐａｇｅ１〜Ｐａｇｅ５１１に対応する全てのリフレッシュフラグが論理値「１」になった場合には、閾値Ｘを更新する必要がある（ＹＥＳ）と判断され、閾値Ｘが、それまでの「１００００」から例えば「３００００」などに更新され（１００９）、管理エリアが初期状態に戻される。そして、図１０に示されるリフレッシュ制御が再び開始される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
（１）何れかのページへのデータ書き込みが行われる毎に、全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われる（１００６）。そして、閾値Ｘを更新する必要があるか否かの判別が行われる（１００８）。Ｐａｇｅ１〜Ｐａｇｅ５１１に対応する全てのリフレッシュフラグが論理値「１」になった場合には、閾値Ｘが更新される。このようなリフレッシュ制御により、不揮発性メモリ１４における各ページ（Ｐａｇｅ１〜ＰａｇｅＮ）について偏りなくリフレッシュすることができる。そしてこのリフレッシュによって、メモリセルの閾値が変動前の状態に戻される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
（３）不揮発性メモリ１４において、書き込み毎に、あるいは読み出し毎に、若しくは消去毎にリフレッシュを行うようにすると、このリフレッシュ動作によって各ページの書き込み回数が不所望に増大する虞があるが、上記のように全体書き込み回数が閾値Ｘに達したか否かの判別が行われ（１００４）、その判別結果に基づいてリフレッシュが行われるため（１００６）、リフレッシュに起因して書き込み回数が不所望に増大されることが回避される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
そして、各ページの書き込みを行った際の全体書き込み回数と全体的の書き込み回数との差分が閾値Ｘに達したか否かの判別が行われる（１２０３）。この判別において、差分が閾値Ｘに達していない（ＮＯ）と判断された場合、書き込みを行ったページの全体書き込み回数、全体書き込み回数が更新される（１２０６）。また、ステップ１２０３の判別において、差分が閾値Ｘに達した（ＹＥＳ）と判断された場合、求められた差分の中で、差分値が最も大きなページがリフレッシュされる（１２０４）。図１３（Ｃ）に示される例では、Ｐａｇｅ１の全体書き込み回数は「５０００」、Ｐａｇｅ２の全体書き込み回数は「１０００」、Ｐａｇｅ１５０の全体書き込み回数は「３３４０」、Ｐａｇｅ３００の全体書き込み回数は「２３００」、Ｐａｇｅ５１１の全体書き込み回数は「４３００」、不揮発性メモリ１４の全体書き込み回数は「５０００」とされる。Ｐａｇｅ２の全体書き込み回数は「１０００」で、これと不揮発性メモリ１４の全体書き込み回数は「５０００」との差分が「４０００」となり、この差分が閾値Ｘ＝４０００に達したことから、ステップ１２０３の判別においてＹＥＳと判断され、差分の一番大きなページ（ここではＰａｇｅ２）がリフレッシュされる（１２０４）。このようにするのは、差分の一番大きなページは書き込み回数が最も少なく、他のページに優先してディスターブ対策する必要があるからである。そして、図１３（Ｄ）に示されるように、書き込みを行ったページ及びリフレッシュしたページの書き込み回数、全体の書き込み回数が更新される（１２０５）。