(57)【特許請求の範囲】
【請求項１】
メモリのウェアレベリング制御を行うメモリ制御装置であって、
前記メモリをアクセスする論理アドレスを、物理アドレスに変換するアドレス変換器と、
前記物理アドレスの複数のビットに対応した複数のカウンタを含み、それぞれの前記カウンタは、対応する前記ビットが第１の値ならばカウントダウンし、第２の値ならばカウントアップする、カウンタ群と、
前記カウンタ群の出力に基づいて、前記アドレス変換器における前記論理アドレスと前記物理アドレスの対応関係を変更するか否かを判定するアドレス変換変更判定部と、を有する、
ことを特徴とするメモリ制御装置。
【請求項２】
さらに、
前記アドレス変換変更判定部からの出力に基づいて、前記メモリの内容をスワップするスワッパを有する、
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記アドレス変換変更判定部は、
前記複数のカウンタによる複数のカウント値に基づいて、前記アドレス変換器における前記論理アドレスと前記物理アドレスの対応関係を変更するか否かを判定する、
ことを特徴とする請求項１または請求項２に記載のメモリ制御装置。
【請求項４】
前記複数のカウント値は、
それぞれ符号付きの整数とされ、
前記アドレス変換変更判定部は、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えたとき、前記アドレス変換器における前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする請求項３に記載のメモリ制御装置。
【請求項５】
前記アドレス変換器は、
前記論理アドレスとアドレス変換マスクの排他的論理和演算の結果を前記物理アドレスとし、
前記アドレス変換マスクを変更することにより、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする請求項３または請求項４に記載のメモリ制御装置。
【請求項６】
前記アドレス変換器は、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えて前記アドレス変換変更判定部がアドレス変換を変更すると判定したとき、前記閾値を超えた少なくとも１つのカウント値を出力するカウンタに対応した前記アドレス変換マスクのビットを反転して、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする請求項５に記載のメモリ制御装置。
【請求項７】
請求項１乃至請求項６のいずれか１項に記載のメモリ制御装置と、
前記メモリ制御装置により、ウェアレベリング制御が行われる前記メモリと、を有する、
ことを特徴とする半導体記憶装置。
【請求項８】
メモリのウェアレベリング制御を行うメモリ制御装置が、
前記メモリをアクセスする論理アドレスを物理アドレスに変換し、
前記物理アドレスの複数のビットに対応した複数のカウンタが、それぞれ、対応する前記ビットが第１の値ならばカウントダウンし、第２の値ならばカウントアップして、複数のカウント値を算出し、
算出された前記複数のカウント値に基づいて、アドレス変換における前記論理アドレスと前記物理アドレスの対応関係を変更するか否かを判定する、処理を行う、
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で言及する実施例は、メモリ制御装置、半導体記憶装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
従来、例えば、ＮＡＮＤフラッシュメモリなどでは、書き込みや消去によってメモリセル(セル)が磨耗して、残り寿命(書き換え可能回数)が減ってゆくことが知られている。また、一部のセルに書き込みや消去が集中すると、磨耗の少ないセルを残したままメモリ全体が寿命を迎えることになる。
【０００３】
このような事態を低減するために、例えば、ブロックごとに書き込みや消去をカウントし、回数の少ないブロックを優先的に使うように、アドレス変換を変更してセルの摩耗を平準化するウェアレベリングが行われている。
【０００４】
ところで、従来、ウェアレベリングを行ってメモリ全体の寿命を延ばすようにしたメモリ制御装置、半導体記憶装置およびメモリ制御方法としては、様々な提案がなされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７５３７７号公報
【特許文献２】特開２０１４−０１６７６６号公報
【特許文献３】特開２０１５−０３８６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、例えば、書き込みや消去によってセルが磨耗するＮＡＮＤフラッシュメモリなどでは、セルの摩耗を平準化するウェアレベリングが行われている。
【０００７】
また、近年、次世代不揮発性メモリとして、例えば、ＮＡＮＤフラッシュメモリよりもアクセス時間の短い相変化メモリ(ＰＣＭ：Phase-Change Memory)や抵抗変化型メモリ(ＲｅＲＡＭ：Resistive Random Access Memory)等が提案され、実用化されつつある。
【０００８】
これらＰＣＭおよびＲｅＲＡＭ等においても、例えば、書き込みによりセルが磨耗するため、ウェアレベリングを行うのが好ましい。しかしながら、ＮＡＮＤフラッシュメモリ用のウェアレベリング方式をＰＣＭやＲｅＲＡＭ等に適用すると、アクセス時間の短いＰＣＭやＲｅＲＡＭでは、ウェアレベリングに要する処理時間が無視し得ないものとなる。
【０００９】
なお、例えば、アドレスを区別せずに書き込み回数をカウントし、そのカウント値が一定数を超えたらアドレス変換を変更し、それに合わせてメモリの内容をコピーする方式も提案されている。
【００１０】
しかしながら、これでは、例えば、セルに対する書き込み回数に偏りがない場合でも、アドレス変換の変更に伴うデータのコピーが定期的発生するため、摩耗の平準化が不十分なだけでなく、データのコピーによる書き込み回数の増加を招くことになる。
【課題を解決するための手段】
【００１１】
一実施形態によれば、メモリのウェアレベリング制御を行うメモリ制御装置であって、前記メモリをアクセスする論理アドレスを、物理アドレスに変換するアドレス変換器と、カウンタ群と、アドレス変換変更判定部と、を有するメモリ制御装置が提供される。
【００１２】
前記カウンタ群は、前記物理アドレスの複数のビットに対応した複数のカウンタを含み、それぞれの前記カウンタは、対応する前記ビットが第１の値ならばカウントダウンし、第２の値ならばカウントアップする。前記アドレス変換変更判定部は、前記カウンタ群の出力に基づいて、前記アドレス変換器における前記論理アドレスと前記物理アドレスの対応関係を変更するか否かを判定する。
【発明の効果】
【００１３】
開示のメモリ制御装置、半導体記憶装置およびメモリ制御方法は、単純な構成により、メモリのウェアレベリングを高速に行うことができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例のメモリ制御装置の一例を示すブロック図である。
【図２】図２は、図１に示すメモリ制御装置におけるカウンタ群の一例を示すブロック図である。
【図３】図３は、図１に示すメモリ制御装置におけるアドレス変換変更判定部の一例を示すブロック図である。
【図４】図４は、図１に示すメモリ制御装置におけるアドレス変換器の一例を示すブロック図である。
【図５】図５は、図４に示すアドレス変換器の一実施例を示すブロック図である。
【図６】図６は、本実施例のメモリ制御装置におけるメモリへの書き込み処理の一例を説明するためのフローチャートである。
【図７】図７は、図６に示すフローチャートにおける反転マスクの更新処理の一例を説明するためのフローチャートである。
【図８】図８は、本実施例の半導体記憶装置の一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、メモリ制御装置、半導体記憶装置およびメモリ制御方法の実施例を、添付図面を参照して詳述する。
【００１６】
図１は、本実施例のメモリ制御装置の一例を示すブロック図である。なお、図１では、ＣＰＵ(Central Processing Unit)３がメモリ２にアクセスする場合を示すが、ＣＰＵ３は、ＤＭＡ(Direct Memory Access)等の他のデバイスであってもよい。
【００１７】
図１に示されるように、本実施例のメモリ制御装置１は、例えば、ＰＣＭやＲｅＲＡＭ等の不揮発性メモリのウェアレベリング制御を行うものであり、アドレス変換変更判定部１２，アドレス変換器１３，カウンタ群１１およびスワッパ１４を含む。ここで、本実施例のメモリ制御装置１は、メモリ(不揮発性メモリ)２とは独立して設けられていて、メモリ２のウェアレベリング制御を行う。
【００１８】
なお、本実施例の適用は、上述した高速アクセス可能なＰＣＭやＲｅＲＡＭ等の不揮発性メモリに限定されるものではなく、例えば、ＮＡＮＤフラッシュメモリを始めとして、書き込み等の処理によりセルが磨耗するメモリに対して幅広く適用することができる。
【００１９】
図１に示されるように、例えば、ＣＰＵ３がメモリ２をアクセス(例えば、書き込み)する場合、ＣＰＵ３は、メモリ２(メモリ制御装置１)に対して、論理アドレスＬＡＤおよび書き込みデータＷＤを出力する。
【００２０】
論理アドレスＬＡＤは、メモリ制御装置１のアドレス変換器(例えば、ＸＯＲ(エクスクルーシブオア)回路)１３に入力され、物理アドレスＰＡＤに変換されて、メモリ２に出力される。なお、ＣＰＵ３がメモリ２からデータを読み出す場合には、メモリ２からＣＰＵ３に読み出しデータＲＤが出力される。
【００２１】
すなわち、アドレス変換器１３は、ＣＰＵ３からの論理アドレスＬＡＤを受け取り、アドレス変換情報(アドレス変換マスク)との排他的論理和(ＸＯＲ)を演算して、物理アドレスＰＡＤを生成し、メモリ２に供給する。
【００２２】
アドレス変換器１３には、アドレス変換変更判定部１２からのアドレス変換変更信号ＭＳが入力され、例えば、アドレス変換変更判定部１２がアドレス変換の変更を決定(判定)した場合には、アドレス変換マスクの変更を行うようになっている。
【００２３】
なお、書き込みの場合には、物理アドレスＰＡＤのメモリ２への供給に同期して、ＣＰＵ３から書き込みデータＷＤがメモリ２に出力される。また、読み出しの場合には、物理アドレスＰＡＤのメモリ２への供給に同期して、メモリ２から読み出しデータＲＤがＣＰＵ３に出力される。
【００２４】
ここで、ＣＰＵ３は、例えば、データ書き込みの場合には、書き込み信号(ライトイネーブル)ＷＥを、また、データ読み出しの場合には、読み出し信号(リードイネーブル(ＲＥ))を、他の所定の制御信号と共に出力する。
【００２５】
カウンタ群１１は、アドレス変換器１３からの物理アドレスＰＡＤの複数のビット(アドレスビット)ADB1〜ADBNを受け取ってアップダウンカウントする。アドレス変換変更判定部１２は、カウンタ群１１の出力に基づいて、アドレス変換を変更するか否かを判定して、アドレス変換器１３を制御する。なお、カウンタ群１１，アドレス変換変更判定部１２およびアドレス変換器１３等の構成および動作は、図面を参照して、以下に詳述する。
【００２６】
図２は、図１に示すメモリ制御装置におけるカウンタ群の一例を示すブロック図である。図２に示されるように、カウンタ群１１は、例えば、アドレス変換器１３により変換された物理アドレスＰＡＤのビット数Ｎに対応して設けられたＮ個のカウンタ(アップダウンカウンタ)111〜11Nを含む。
【００２７】
すなわち、カウンタ111は、物理アドレスＰＡＤにおける最上位ビットADB1を受け取り、例えば、そのADB1が『０』ならばカウントアップ(インクリメント)し、『１』ならばカウントダウン(デクリメント)してカウント値Ｃo1を算出する。
【００２８】
また、カウンタ112は、物理アドレスＰＡＤにおける最上位から２ビット目ADB2を受け取り、例えば、そのADB2が『０』ならばカウントアップし、『１』ならばカウントダウンしてカウント値Ｃo2を算出する。
【００２９】
そして、カウンタ11Nは、物理アドレスＰＡＤにおける最下位ビットADBNを受け取り、例えば、そのADBNが『０』ならばカウントアップし、『１』ならばカウントダウンしてカウント値ＣoNを算出する。
【００３０】
各カウンタ111，112，…，11Nの出力(カウント値)Ｃo1，Ｃo2，…，ＣoNは、アドレス変換変更判定部１２に入力され、アドレス変換変更判定部１２によるアドレス変換の変更を行うか否かの判定に利用される。
【００３１】
具体的に、例えば、論理アドレス(物理アドレス)が３２ビットの場合、カウンタ群１１に設けるカウンタの数は３２個となる。なお、各カウンタ111〜11Nのカウント値Ｃo1〜ＣoNの絶対値が、所定の閾値(Ｃth)を超えた場合には、後述するように、アドレス変換変更判定部１２がアドレス変換変更判定信号ＭＳ(MS1〜MSN)を出力するが、このとき、その対応するカウンタもリセットされる。
【００３２】
ここで、各カウンタ111〜11Nにおいて行われるカウントアップおよびカウントダウンの処理は、例えば、ビットデータが『０』ならばカウントダウンし、『１』ならばカウントアップするように、逆にしてもよい。
【００３３】
図３は、図１に示すメモリ制御装置におけるアドレス変換変更判定部の一例を示すブロック図である。図３に示されるように、アドレス変換変更判定部１２は、カウンタ群１１のＮ個のカウンタ111，112，…，11Nのカウント値Ｃo1，Ｃo2，…，ＣoNを受け取って、論理アドレスＬＡＤと物理アドレスＰＡＤの対応関係を変更するか否かを判定する。
【００３４】
ここで、カウント値Ｃo1，Ｃo2，…，ＣoNは、それぞれ符号付きの整数とされていて、例えば、１つ以上(少なくとも１つ)のカウント値の絶対値が閾値を超えたときに、論理アドレスＬＡＤと物理アドレスＰＡＤの対応関係を変更すると判定する。
【００３５】
すなわち、アドレス変換変更判定部１２は、カウント値Ｃo1，Ｃo2，…，ＣoNのうち、例えば、カウント値Ｃo1の絶対値｜Ｃo1｜が、所定の閾値Ｃthを超えたら(｜Ｃo1｜＞Ｃth)、アドレス変換変更信号ＭＳ(MS1)をアドレス変換器１３に出力する。なお、前述したように、カウント値の絶対値｜Ｃo1｜が、所定の閾値Ｃthを超えたカウンタ111はリセットされ、再び同様の処理が開始される。
【００３６】
具体的に、各カウンタ111〜11Nは、例えば、最小値が−１００で、最大値が＋１００のカウンタ(アップダウンカウンタ)とされ、アドレス変換変更判定部１２は、カウント値Ｃo1〜ＣoNが−５０または＋５０に達したらアドレス変換変更信号ＭＳを出力する。なお、これらの設定は、単なる例であり、様々な変更が可能なのはいうまでもない。
【００３７】
図４は、図１に示すメモリ制御装置におけるアドレス変換器の一例を示すブロック図である。図４に示されるように、アドレス変換器１３は、例えば、Ｎビットの論理アドレスＬＡＤを入力アドレスビットＢi1〜ＢiNとして受け取ってアドレス変換を行い、物理アドレスＰＡＤとして出力アドレスビットＢo1〜ＢoN(ADB1〜ADBN)を出力する。
【００３８】
ここで、アドレス変換器１３による入力アドレスビットＢi1〜ＢiNと出力アドレスビットＢo1〜ＢoNの変換は、例えば、アドレス変換マスクに基づいて行われる。
【００３９】
そして、アドレス変換器１３は、アドレス変換変更判定部１２からのアドレス変換変更信号ＭＳを受け取ると、それまでのアドレス変換マスクを更新(変更)し、入力アドレスビットＢi1〜ＢiNと出力アドレスビットＢo1〜ＢoNの対応関係を変更する。すなわち、アドレス変換器１３は、アドレス変換変更信号ＭＳにより、論理アドレスＬＡＤと物理アドレスＰＡＤの対応関係を変更する。
【００４０】
図５は、図４に示すアドレス変換器の一実施例を示すブロック図であり、アドレス変換器１３は、アドレス変換マスク(アドレス変換情報)130、および、Ｎ個のＸＯＲゲート(排他的論理和演算器)131〜13Nを含む。
【００４１】
図５に示されるように、アドレス変換マスク130には、アドレス変換変更判定部１２から、物理アドレスＰＡＤの各ビットADB1〜ADBN(カウンタ群１１の各カウンタ111〜11N)に対応したアドレス変換変更信号MS1〜MSNが入力されている。そして、アドレス変換マスク130は、アドレス変換変更信号MS1〜MSNが入力されたビットに対応するビットを反転し、ＸＯＲゲート131〜13Nによる変換を行う。
【００４２】
具体的に、アドレス変換器１３が、例えば、３２ビットの論理アドレスＬＡＤの入力アドレスビットＢi1〜Ｂi32を、３２ビットの物理アドレスＰＡＤの出力アドレスビットＢo1〜Ｂo32に変換する場合を考える。
【００４３】
ここで、例えば、最上位ビットADB1をカウントするカウンタ111のカウント値Ｃo1の絶対値｜Ｃo1｜が閾値Ｃthを超えると、アドレス変換変更判定部１２からは、ADB1に対応したアドレス変換変更信号MS1が、アドレス変換マスク130に対して出力される。
【００４４】
このとき、アドレス変換マスク130では、例えば、アドレス変換変更判定部１２から送られてきたMS1に対応するビット(最上位ビットのデータ)を反転し、論理アドレスＬＡＤの最上位ビットＢi1が入力されたＸＯＲゲート131に対して出力する。
【００４５】
なお、アドレス変換マスク130のビットを反転するとき、アドレス変換変更判定部１２からの信号(スワップ命令)ＳＩがスワッパ１４に出力され、反転前の物理アドレスと反転後の物理アドレスのデータのスワップが行われる。
【００４６】
これにより、カウンタ111のカウント値Ｃo1の絶対値｜Ｃo1｜が閾値Ｃthを超えたビット(最上位ビット)に対する、論理アドレスＬＡＤと物理アドレスＰＡＤの対応関係が変更され、書き込み等で使用されるセルが集中するのを避けることができる。
【００４７】
このように、本実施例によれば、論理アドレスＬＡＤと物理アドレスＰＡＤの対応関係の変更は、ＰＡＤのアドレスビットADB1〜ADBNをカウンタ111〜11Nでカウントして行われるため、単純な構成により、メモリのウェアレベリングを高速に行うことが可能となる。
【００４８】
図６は、本実施例のメモリ制御装置におけるメモリへの書き込み処理の一例を説明するためのフローチャートであり、図７は、図６に示すフローチャートにおける反転マスクの更新処理の一例を説明するためのフローチャートである。
【００４９】
図６に示されるように、メモリへの書き込み処理が開始すると、ステップＳＴ１において、例えば、ＣＰＵ３から論理アドレスＬＡＤを受け取り、ステップＳＴ２に進んで、物理アドレスＰＡＤへの変換を行う。
【００５０】
次に、ステップＳＴ３において、カウンタ値の更新、すなわち、図２を参照して説明した各カウンタ111〜11Nによる物理アドレスＰＡＤのアドレスビットADB1〜ADBNのアップダウンカウントを行い、ステップＳＴ４に進む。
【００５１】
ステップＳＴ４では、偏りの判定、すなわち、図３を参照して説明したアドレス変換変更判定部１２によるアドレス変換の変更の判定を行う。ステップＳＴ４において、偏りあり、すなわち、少なくとも１つのカウント値(Ｃo1)の絶対値が閾値(Ｃth)を超えたと判定すると、ステップＳＴ５に進んで、反転マスクの更新処理を行う。
【００５２】
また、ステップＳＴ４において、偏りなし、すなわち、全てのカウンタ111〜11Nのカウント値Ｃo1〜ＣoNの絶対値が閾値(Ｃth)を超えていないと判定すると、ステップＳＴ５を経由せずに、そのままステップＳＴ６に進む。
【００５３】
図７に示されるように、反転マスクの更新処理(ＳＴ５)が開始すると、ステップＳＴ５１において、新しい反転マスク(Ｗ)の生成を行い、ステップＳＴ５２に進む。ここで、ステップＳＴ５１における新しい反転マスクの生成処理は、例えば、図５を参照して説明したアドレス変換マスク130の変更に相当する。
【００５４】
ステップＳＴ５２において、スワップ処理(スワッパ１４によるスワップ処理)を行った後、ステップＳＴ５３に進んで、反転マスクレジスタの更新処理を行う。すなわち、それまで使用していた反転マスク(Ｖ)を新しい反転マスク(Ｗ)に置き換えて処理を終了する(ステップＳＴ６に進む)。
【００５５】
そして、ステップＳＴ６において、物理アドレスＰＡＤ(ADB1〜ADBN，Ｂo1〜ＢoN)をメモリ２に出力し、さらに、ステップＳＴ７に進んで、書き込みデータＷＤをメモリ２に出力する。さらに、ステップＳＴ８に進んで、書き込み信号(ライトイネーブル)ＷＥをメモリ２に出力し、メモリ２に対するデータ書き込みを実行して、メモリへの書き込み処理を終了する。
【００５６】
なお、上述した図６および図７のフローチャートは、単なるメモリへの書き込み処理および反転マスクの更新処理の一例を示すだけのものであり、様々な変形および変更が可能なのはいうまでもない。
【００５７】
図８は、本実施例の半導体記憶装置の一例を示すブロック図である。図８と、前述した図１の比較から明らかなように、本実施例の半導体記憶装置１０は、図１に示すメモリ制御装置１とメモリ２を一体化して半導体記憶装置としたものである。
【００５８】
なお、カウンタ群１１，アドレス変換変更判定部１２，アドレス変換器１３およびスワッパ１４等は、図１〜図７を参照して説明したのと同様のものであり、その説明は省略する。
【００５９】
すなわち、図１に示す本実施例のメモリ制御装置１は、そのまま集積回路(ＬＳＩ)として提供してもよいが、例えば、ＰＣＭ(相変化メモリ)やＲｅＲＡＭ(抵抗変化型メモリ)、或いは、フラッシュメモリ等と一体化し、半導体記憶装置として提供することもできる。
【００６０】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【００６１】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
メモリのウェアレベリング制御を行うメモリ制御装置であって、
前記メモリをアクセスする論理アドレスを、物理アドレスに変換するアドレス変換器と、
前記物理アドレスの複数のビットをそれぞれアップダウンカウントするカウンタ群と、
前記カウンタ群の出力に基づいて、アドレス変換を変更するか否かを判定するアドレス変換変更判定部と、を有する、
ことを特徴とするメモリ制御装置。
【００６２】
（付記２）
さらに、
前記アドレス変換変更判定部からの出力に基づいて、前記メモリの内容をスワップするスワッパを有する、
ことを特徴とする付記１に記載のメモリ制御装置。
【００６３】
（付記３）
前記カウンタ群は、
前記物理アドレスの複数のビットに対応した複数のカウンタを含み、
それぞれの前記カウンタは、対応する前記ビットが第１の値ならばカウントダウンし、第２の値ならばカウントアップする、
ことを特徴とする付記１または付記２に記載のメモリ制御装置。
【００６４】
（付記４）
前記アドレス変換変更判定部は、
前記複数のカウンタによる複数のカウント値に基づいて、前記論理アドレスと前記物理アドレスの対応関係を変更するか否かを判定する、
ことを特徴とする付記３に記載のメモリ制御装置。
【００６５】
（付記５）
前記複数のカウント値は、
それぞれ符号付きの整数とされ、
前記アドレス変換変更判定部は、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えたとき、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする付記４に記載のメモリ制御装置。
【００６６】
（付記６）
前記アドレス変換器は、
前記論理アドレスとアドレス変換マスクの排他的論理和演算の結果を前記物理アドレスとし、
前記アドレス変換マスクを変更することにより、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする付記１乃至付記５のいずれか１項に記載のメモリ制御装置。
【００６７】
（付記７）
前記アドレス変換器は、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えて前記アドレス変換変更判定部がアドレス変換を変更すると判定したとき、前記閾値を超えた少なくとも１つのカウント値を出力するカウンタに対応した前記アドレス変換マスクのビットを反転して、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする付記６に記載のメモリ制御装置。
【００６８】
（付記８）
前記アドレス変換マスクのビットを反転するとき、反転前の物理アドレスと反転後の物理アドレスのデータをスワップする、
ことを特徴とする付記７に記載のメモリ制御装置。
【００６９】
（付記９）
付記１乃至付記８のいずれか１項に記載のメモリ制御装置と、
前記メモリ制御装置により、ウェアレベリング制御が行われる前記メモリと、を有する、
ことを特徴とする半導体記憶装置。
【００７０】
（付記１０）
メモリをアクセスする論理アドレスを物理アドレスに変換し、
前記物理アドレスの複数のビットをそれぞれアップダウンカウントして複数のカウント値を算出し、
算出された前記複数のカウント値に基づいて、アドレス変換を変更するか否かを判定する、
ことを特徴とするメモリ制御方法。
【００７１】
（付記１１）
アドレス変換を変更すると判定したとき、前記メモリの内容をスワップする、
ことを特徴とする付記１０に記載のメモリ制御方法。
【００７２】
（付記１２）
前記複数のカウント値を算出するのは、
前記物理アドレスの複数のビットに対して、それぞれの前記ビットが第１の値ならばカウントダウンし、第２の値ならばカウントアップして算出する、
ことを特徴とする付記１０または付記１１に記載のメモリ制御方法。
【００７３】
（付記１３）
前記複数のカウント値は、
それぞれ符号付きの整数とされ、
前記アドレス変換を変更するか否かを判定するのは、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えたとき、前記論理アドレスと前記物理アドレスの対応関係を変更する、
ことを特徴とする付記１２に記載のメモリ制御方法。
【００７４】
（付記１４）
前記論理アドレスを前記物理アドレスに変換するのは、
前記論理アドレスとアドレス変換マスクの排他的論理和演算の結果を前記物理アドレスとし、
前記論理アドレスと前記物理アドレスの対応関係を変更するのは、
前記アドレス変換マスクを変更することにより行う、
ことを特徴とする付記１０乃至付記１３のいずれか１項に記載のメモリ制御方法。
【００７５】
（付記１５）
前記論理アドレスと前記物理アドレスの対応関係を変更するのは、
前記複数のカウント値のうち少なくとも１つのカウント値の絶対値が閾値を超えてアドレス変換を変更すると判定したとき、前記閾値を超えた少なくとも１つのカウント値を出力するカウンタに対応した前記アドレス変換マスクのビットを反転して行う、
ことを特徴とする付記１４に記載のメモリ制御方法。
【符号の説明】
【００７６】
１    メモリ制御装置
２    メモリ(不揮発性メモリ)
３    ＣＰＵ
１０    半導体記憶装置
１１    カウンタ群
１２    アドレス変換変更判定部
１３    アドレス変換器
１４    スワッパ
111〜11N    カウンタ
130    アドレス変換マスク
131〜13N    ＸＯＲゲート
【図１】
0006519292.tif 000002
【図２】
0006519292.tif 000003
【図３】
0006519292.tif 000004
【図４】
0006519292.tif 000005
【図５】
0006519292.tif 000006
【図６】
0006519292.tif 000007
【図７】
0006519292.tif 000008
【図８】
0006519292.tif 000009