(57)【要約】【課題】不揮発性メモリにおいて消耗の度合いを適切に平準化する。【解決手段】それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、複数の測定領域の各々で測定された温度を取得する。優先度決定部が、実行された書込処理により生じた単位領域の消耗の度合いである消耗度と前記単位領域を含む測定領域の温度とに応じて前記単位領域ごとの優先度を決定する。書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する。【選択図】図５
2014098978.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリ制御装置。
【請求項２】
前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど低い値を前記優先度として決定する
請求項１記載のメモリ制御装置。
【請求項３】
前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど高い値を前記優先度として決定する
請求項１記載のメモリ制御装置。
【請求項４】
前記優先度決定部は、所定の閾値温度を超える温度の前記測定領域に含まれる前記単位領域において前記優先度を所定の値に決定する
請求項３記載のメモリ制御装置。
【請求項５】
前記優先度決定部は、前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には前記優先度を決定する
請求項１記載のメモリ制御装置。
【請求項６】
前記優先度決定部は、電源が投入されたときに前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を前記優先度として決定する
請求項１記載のメモリ制御装置。
【請求項７】
前記書込処理部により前記書込処理が実行されたときの前記単位領域の温度に応じた値を前記消耗度として前記優先度決定部に供給する消耗度供給部をさらに具備する
請求項１記載のメモリ制御装置。
【請求項８】
前記複数の単位領域のうち前記消耗度の高い単位領域のデータと前記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより前記複数の単位領域の各々における前記消耗度を平準化するデータ交換処理部をさらに具備する
請求項７記載のメモリ制御装置。
【請求項９】
前記データ交換処理部は、前記消耗度取得部により前記消耗度が取得されるたびに前記複数の単位領域の各々の前記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して前記差分が前記所定の閾値より大きい場合に前記データ交換処理を実行する
請求項８記載のメモリ制御装置。
【請求項１０】
前記データ交換処理部は、所定の温度を超えていない前記測定領域において前記データ交換処理を実行する
請求項８記載のメモリ制御装置。
【請求項１１】
前記優先度決定部は、所定の周期が経過するたびに前記優先度を決定する
請求項１記載のメモリ制御装置。
【請求項１２】
前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリに対する書込回数である通算書込回数が所定回数より多い場合には前記優先度を決定する
請求項１１記載のメモリ制御装置。
【請求項１３】
前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリの消耗の度合いである通算消耗度が所定値より高い場合には前記優先度を決定する
請求項１１記載のメモリ制御装置。
【請求項１４】
前記複数の単位領域の各々には物理アドレスが割り振られており、
前記書込処理部は、前記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると前記優先度の高い単位領域の物理アドレスを優先して前記論理アドレスに割り当てて当該割り当てた物理アドレスを前記書込み先とする
請求項１記載のメモリ制御装置。
【請求項１５】
それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリシステム。
【請求項１６】
データの書込処理を指示するホストコンピュータと、
それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として前記指示された書込処理を実行する書込処理部と
を具備する情報処理システム。
【請求項１７】
それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、前記複数の測定領域の各々で測定された温度を取得する温度取得手順と、
優先度決定部が、実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定手順と、
書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理手順と
を具備するメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法に関する。詳しくは、書込回数に上限があるメモリを制御するためのメモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法に関する。
【背景技術】
【０００２】
近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ（ＮＶＭ：Non-Volatile memory）が用いられることがある。一般に、不揮発性メモリを構成するメモリセルは、経年劣化のほか、データの書込みにより消耗し、一定の書込回数に達するとエラーの発生率が許容値を超えて寿命が尽きることが知られている。
【０００３】
このように寿命のある不揮発性メモリにおいて特定のアドレスに書込みが集中すると、そのアドレスに対応するメモリセルが消耗して寿命が先に尽きてしまい、使用不能なメモリセル数が増加するおそれがある。そこで、不揮発性メモリにおいては、それぞれのメモリセルの消耗の度合いを平準化する処理が行われることが多い。この処理はウェアレベリング処理と呼ばれる。
【０００４】
ウェアレベリング処理において、フラッシュメモリ内のアドレスごとにデータを書き込んだ回数を記録しておき、書込みの際に、書込回数の少ないアドレスを優先して書込み対象とするメモリコントローラが提案されている（例えば、特許文献１参照。）。１回の書込みによるメモリセルの消耗の度合いを一定とすると、書込回数の少ないアドレスのメモリセルほど書込みによる消耗の度合いが低く、残りの寿命が長い。このため、書込回数の少ないアドレスにデータを優先して書き込むことにより、それぞれのメモリセルの消耗の度合いが平準化される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８６３７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の従来技術では、メモリセルの消耗の度合いを平準化することができないおそれがある。不揮発性メモリにおいては、温度が高いほど書込みに要する電圧が低くなり、また、温度が高いほどデータ保持特性（いわゆる、リテンション）が低下することが知られている。このため、温度によらず一定の電圧を用いて書込みを行うと、温度が高いメモリセルには必要以上の書込電圧が印加され、そのメモリセルの消耗の度合いが高くなる（すなわち、残りの書込回数が減少する）可能性がある。
【０００７】
ところが、上述のメモリコントローラでは、温度に関らず、書込みによる消耗の度合いを一定としてウェアレベリング処理を行っている。このため、メモリセルのそれぞれの温度に差があると、その差に応じてメモリセルのそれぞれの消耗の度合いにも差が生じ、その結果、消耗の度合いが平準化されなくなるという問題がある。
【０００８】
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリにおいて消耗の度合いを適切に平準化することを目的とする。
【課題を解決するための手段】
【０００９】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部とを具備するメモリ制御装置、および、メモリ制御方法である。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
【００１０】
また、この第１の側面において、上記優先度決定部は、上記消耗度が高いほど低く、上記温度が高いほど低い値を上記優先度として決定してもよい。これにより、消耗度が高いほど低く、温度が高いほど低い値が優先度として決定されるという作用をもたらす。
【００１１】
また、この第１の側面において、上記優先度決定部は、上記消耗度が高いほど低く、上記温度が高いほど高い値を上記優先度として決定してもよい。これにより、消耗度が高いほど低く、温度が高いほど高い値が優先度として決定されるという作用をもたらす。
【００１２】
また、この第１の側面において、上記優先度決定部は、所定の閾値温度を超える温度の上記測定領域に含まれる上記単位領域において上記優先度を所定の値に決定してもよい。これにより、所定の閾値温度を超える温度の測定領域に含まれる単位領域において優先度が所定の値に決定されるという作用をもたらす。
【００１３】
また、この第１の側面において、上記優先度決定部は、上記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には上記優先度を決定してもよい。これにより、特徴量が所定量を超えた場合には優先度が決定されるという作用をもたらす。
【００１４】
また、この第１の側面において、上記優先度決定部は、電源が投入されたときに上記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を上記優先度として決定してもよい。これにより、電源が投入されたときに特徴量が所定量を超えていない場合には所定の値が優先度として決定されるという作用をもたらす。
【００１５】
また、この第１の側面において、上記書込処理部により上記書込処理が実行されたときの上記単位領域の温度に応じた値を上記消耗度として上記優先度決定部に供給する消耗度供給部をさらに具備してもよい。これにより、書込処理が実行されたときの単位領域の温度に応じた値が消耗度として優先度決定部に供給されるという作用をもたらす。
【００１６】
また、この第１の側面において、上記複数の単位領域のうち上記消耗度の高い単位領域のデータと上記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより上記複数の単位領域の各々における上記消耗度を平準化するデータ交換処理部をさらに具備してもよい。これにより、データ交換処理の実行により複数の単位領域の各々における消耗度が平準化されるという作用をもたらす。
【００１７】
また、この第１の側面において、上記データ交換処理部は、上記消耗度取得部により上記消耗度が取得されるたびに上記複数の単位領域の各々の上記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して上記差分が上記所定の閾値より大きい場合に上記データ交換処理を実行してもよい。これにより、消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きい場合にデータ交換処理が実行されるという作用をもたらす。
【００１８】
また、この第１の側面において、上記データ交換処理部は、所定の温度を超えていない上記測定領域において上記データ交換処理を実行してもよい。これにより、所定の温度を超えてない測定領域においてデータ交換処理が実行されるという作用をもたらす。
【００１９】
また、この第１の側面において、上記優先度決定部は、所定の周期が経過するたびに上記優先度を決定してもよい。これにより、所定の周期が経過するたびに優先度が決定されるという作用をもたらす。
【００２０】
また、この第１の側面において、前回優先度が決定されたときから上記一定周期が経過したときまでの上記メモリに対する書込回数である通算書込回数が所定回数より多い場合には上記優先度を決定してもよい。これにより、通算書込回数が所定回数より多い場合には優先度が決定されるという作用をもたらす。
【００２１】
また、この第１の側面において、上記優先度決定部は、前回優先度が決定されたときから上記一定周期が経過したときまでの上記メモリの消耗の度合いである通算消耗度が所定値より高い場合には上記優先度を決定してもよい。これにより、通算消耗度が所定値より高い場合には優先度が決定されるという作用をもたらす。
【００２２】
また、この第１の側面において、上記複数の単位領域の各々には物理アドレスが割り振られており、上記書込処理部は、上記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると上記優先度の高い単位領域の物理アドレスを優先して上記論理アドレスに割り当てて当該割り当てた物理アドレスを上記書込み先としてもよい。これにより、優先度の高い単位領域の物理アドレスが優先して論理アドレスに割り当ててられるという作用をもたらす。
【００２３】
また、本技術の第２の側面は、データの書込処理を指示するホストコンピュータと、それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として上記指示された書込処理を実行する書込処理部とを具備する情報処理システムである。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
【００２４】
また、本技術の第３の側面は、それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部とを具備するメモリシステムである。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
【発明の効果】
【００２５】
本技術によれば、不揮発性メモリにおいて消耗の度合いを適切に平準化することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００２６】
【図１】第１の実施の形態における情報処理システムの一構成例を示すブロック図である。
【図２】第１の実施の形態における不揮発性メモリチップの一構成例を示すブロック図である。
【図３】第１の実施の形態におけるセルアレイの一構成例を示す図である。
【図４】第１の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。
【図５】第１の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。
【図６】第１の実施の形態における温度情報保持部に保持されるデータの一例を示す図である。
【図７】第１の実施の形態における書込回数保持部に保持されるデータの一例を示す図である。
【図８】第１の実施の形態における書込優先度保持部に保持されるデータの一例を示す図である。
【図９】第１の実施の形態における制御処理部の一構成例を示すブロック図である。
【図１０】第１の実施の形態におけるアドレス変換テーブルの一例を示す図である。
【図１１】第１の実施の形態におけるメモリコントローラの動作の一例を示すフローチャートである。
【図１２】第１の実施の形態における書込優先度決定処理を示すフローチャートである。
【図１３】第１の実施の形態におけるライト処理の一例を示すフローチャートである。
【図１４】第１の実施の形態におけるデータ交換処理の一例を示すフローチャートである。
【図１５】第１の実施の形態の第１の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。
【図１６】第１の実施の形態の第２の変形例における制御処理部の動作の一例を示すフローチャートである。
【図１７】第１の実施の形態の第２の変形例における書込優先度決定部の動作の一例を示すフローチャートである。
【図１８】第１の実施の形態の第４の変形例におけるデータ交換処理の一例を示すフローチャートである。
【図１９】第１の実施の形態の第５の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。
【図２０】第１の実施の形態の第６の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。
【図２１】第２の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。
【図２２】第２の実施の形態における消耗度テーブルの一例を示す図である。
【図２３】第２の実施の形態における累計消耗度保持部に保持されるデータの一例を示す図である。
【図２４】第２の実施の形態における制御処理部の一構成例を示すブロック図である。
【図２５】第２の実施の形態における書込優先度決定処理の一例を示すフローチャートである。
【図２６】第２の実施の形態におけるライト処理の一例を示すフローチャートである。
【図２７】第２の実施の形態におけるデータ交換処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（書込回数と温度とに応じて書込優先度を決定する例）
２．第２の実施の形態（累計消耗度と温度とに応じて書込優先度を決定する例）
【００２８】
＜１．第１の実施の形態＞
［情報処理システムの構成例］
図１は、第１の実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、ホストコンピュータ１００およびメモリシステム２００を備える。このメモリシステム２００は、メモリコントローラ３００と複数の不揮発性メモリチップ４００とを備える。
【００２９】
ホストコンピュータ１００は、メモリシステム２００を制御するものである。具体的には、ホストコンピュータ１００は、アクセス先の論理アドレスを指定するコマンドを発行して、そのコマンドやデータを信号線１０９を介してメモリシステム２００に供給する。また、ホストコンピュータ１００は、メモリシステム２００から読み出されたデータを受け取る。ここで、コマンドは、メモリシステム２００を制御するためのものであり、例えば、データのライト処理を指示するライトコマンドや、データのリード処理を指示するリードコマンドを含む。また、論理アドレスは、ホストコンピュータ１００が定義するアドレス空間において、ホストコンピュータ１００がメモリシステム２００にアクセスする際のアクセス単位の領域ごとに割り振られたアドレスである。このアクセス単位の領域を以下、「セクタ」と称する。各々のセクタのサイズは、例えば、４ＫＢ（kilobyte）である。
【００３０】
メモリコントローラ３００は、不揮発性メモリチップ４００を制御するものである。このメモリコントローラ３００は、論理アドレスを指定するライトコマンドを受け取る。また、メモリコントローラ３００は、不揮発性メモリチップ４００の各々から温度情報を受け取る。この温度情報は、不揮発性メモリチップにおいて測定された温度を示す情報である。メモリコントローラ３００は、ライトコマンドに従って、温度情報を使用してライト処理を実行する。温度情報の使用方法の詳細については後述する。このライト処理においては、論理アドレスが物理アドレスに変換され、その物理アドレスにデータが書き込まれる。
【００３１】
ここで、物理アドレスは、メモリコントローラ３００が不揮発性メモリチップ４００にアクセスする際のアクセス単位ごとに不揮発性メモリチップ４００において割り振られたアドレスである。メモリコントローラ３００が不揮発性メモリチップ４００にアクセスする単位は、例えば、セクタと同一であるものとする。この場合、不揮発性メモリチップ４００において、セクタごとに物理アドレスが割り当てられる。
【００３２】
例えば、メモリシステム２００が不揮発性メモリチップ４００を４つ備え、それぞれの容量が２ＧＢ（Gigabyte）である場合、合計の容量は１６ＧＢであり、メモリシステム２００全体のセクタ数は２22個となる。この場合、メモリシステム２００は、２２ビットの論理アドレスおよび物理アドレスにより管理される。
【００３３】
また、メモリコントローラ３００は、論理アドレスを指定するリードコマンドを受け取ると、その論理アドレスを物理アドレスに変換し、その物理アドレスからデータを読み出す。そして、メモリコントローラ３００は、読み出したデータをリードデータとしてホストコンピュータ１００に出力する。
【００３４】
なお、メモリコントローラ３００によるアクセス単位のサイズをホストコンピュータ１００によるアクセス単位と同一としているが、異なるサイズとしてもよい。
【００３５】
［不揮発性メモリチップの構成例］
不揮発性メモリチップ４００は、メモリコントローラ３００の制御に従ってデータを保持するものである。
【００３６】
図２は、不揮発性メモリチップ４００の一構成例を示すブロック図である。この不揮発性メモリチップ４００は、制御インターフェース４１０と、不揮発性メモリ制御部４２０と、複数のセルアレイ４３０と、各々のセルアレイ４３０に設けられた温度センサ４４０とを備える。
【００３７】
制御インターフェース４１０は、メモリコントローラ３００との間でコマンド、ライトデータ、リードデータ、および、温度情報などをやりとりするインターフェースである。
【００３８】
不揮発性メモリ制御部４２０は、不揮発性メモリチップ４００の各々を制御するものである。この不揮発性メモリ制御部４２０は、ライトコマンドに従って、セルアレイ４３０にデータを書込み、リードコマンドに従ってセルアレイ４３０からデータを読み出す。また、不揮発性メモリ制御部４２０は、それぞれの温度センサ４４０の測定値を取得し、各々の測定値から温度情報を生成し、制御インターフェース４１０を介してメモリコントローラ３００に出力する。
【００３９】
セルアレイ４３０は、アレイ状に配列された複数のメモリセルを含むものである。各々のメモリセルとして、例えば、可変抵抗素子を用いるＲｅＲＡＭ（Resistance RAM）が用いられる。なお、不揮発性の記憶素子であれば、ＲｅＲＡＭ以外のメモリセルを使用してもよい。例えば、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）を使用してもよい。
【００４０】
温度センサ４４０は、セルアレイ４３０の温度を測定するものである。温度の測定は、例えば、一定の周期で行われる。それぞれの温度センサ４４０は、温度の測定値を不揮発性メモリ制御部４２０に供給する。
【００４１】
なお、セルアレイ４３０ごとに温度センサ４４０が設けられる構成としているが、メモリシステム２００全体で複数の測定領域の温度を測定することができるのであれば、この構成に限定されない。例えば、複数のセルアレイ４３０に対して１つの温度センサ４４０を設けてもよいし、１つのセルアレイ４３０を複数の測定領域に分割して、それぞれの領域に温度センサ４４０を設けてもよい。また、不揮発性メモリチップ４００全体を１つの測定領域として、不揮発性メモリチップ４００ごとに１つの温度センサ４４０を設けてもよい。
【００４２】
［セルアレイの構成例］
図３は、セルアレイ４３０の一構成例を示す図である。セルアレイ４３０は、ｎ（ｎは２以上の整数）個のセクタを有し、それぞれのセクタは、セクタのサイズに応じた個数の複数のメモリセルを有する。そして、セクタごとに物理アドレスが割り振られる。
【００４３】
［メモリコントローラの構成例］
図４は、第１の実施の形態におけるメモリコントローラ３００の一構成例を示すブロック図である。このメモリコントローラ３００は、ＲＡＭ（Random Access Memory）３０１、ＣＰＵ（Central Processing Unit）３０２、ＥＣＣ処理部３０３およびＲＯＭ（Read Only Memory）３０４を備える。また、メモリコントローラ３００は、ホストインターフェース３０５、バス３０６および不揮発性メモリインターフェース３０７を備える。
【００４４】
ＲＡＭ３０１は、ＣＰＵ３０２が実行する処理において必要となるデータを一時的に保持するものである。ＣＰＵ３０２は、メモリコントローラ３００全体を制御するものである。
【００４５】
ＥＣＣ処理部３０３は、ライトデータを符号化し、また、リードデータを復号するものである。このＥＣＣ処理部３０３は、例えば、ライトデータの誤りを検出および訂正するための冗長データを生成し、ライトデータおよび冗長データからなる符号にライトデータを変換（すなわち、符号化）する。また、ＥＣＣ処理部３０３は、その冗長データを使用して、リードデータにおける誤りを検出および訂正する。
【００４６】
ＲＯＭ３０４は、ＣＰＵ３０２が実行するプログラム等を記憶するものである。ホストインターフェース３０５は、ホストコンピュータ１００との間でデータやコマンドを相互に交換するものである。バス３０６は、ＲＡＭ３０１、ＣＰＵ３０２、ＥＣＣ処理部３０３、ＲＯＭ３０４、ホストインターフェース３０５および不揮発性メモリインターフェース３０７が相互にデータを交換するための共通の経路である。不揮発性メモリインターフェース３０７は、不揮発性メモリチップ４００との間でライトデータ、リードデータ、コマンド、および、温度情報を相互に交換するものである。
【００４７】
図５は、第１の実施の形態におけるメモリコントローラ３００の機能構成例を示すブロック図である。このメモリコントローラ３００は、温度情報取得部３１１、温度情報保持部３１２、書込回数供給部３１３、書込回数保持部３１４、書込優先度決定部３１５、書込優先度保持部３１６、および、制御処理部３２０を備える。図５における機能の各々は、図４における構成の各々により実現される。
【００４８】
温度情報取得部３１１は、不揮発性メモリチップ４００により生成されたセルアレイごとの温度情報を取得するものである。温度情報取得部３１１は、取得した温度情報を温度情報保持部３１２に保持させる。温度情報保持部３１２は、セルアレイごとの温度情報を保持するものである。なお、温度情報取得部３１１は、特許請求の範囲に記載の温度取得部の一例である。
【００４９】
書込回数供給部３１３は、セクタごとの書込回数を供給するものである。書込回数供給部３１３は、制御処理部３２０から、データが書き込まれたアドレスである書込アドレスを受け取るたびに、書込アドレスに対応するセクタの書込回数をカウントアップする。書込回数供給部３１３は、その計数値を書込回数保持部３１４に保持させる。また、書込回数供給部３１３は、書込アドレスを受け取るたびに、最後に書込優先度を計算した時点から現在までのメモリシステム２００への書込回数である通算書込回数をカウントアップして書込回数保持部３１４に保持させる。書込回数保持部３１４は、通算書込回数とセクタごとの書込回数とを保持するものである。
【００５０】
書込優先度決定部３１５は、セクタの消耗度とセクタの温度とに応じてセクタごとに書込優先度を決定するものである。ここで、書込優先度は、データを書き込む際のそれぞれのセクタの優先順位を示すものであり、書込優先度が高いセクタに対して優先してデータが書き込まれる。
【００５１】
メモリセルの温度が一定であれば、ライト処理１回当たりの消耗の度合いは一定であるから、消耗度は、書込回数の増加に比例して高くなる。このため、例えば、書込回数が消耗度として用いられる。書込優先度決定部３１５は、書込回数と温度とに応じて、例えば、次の式１を使用してセクタ毎に書込優先度を決定する。
【数１】
2014098978.tif 000003
式１において、Ｐ１は優先度を求める対象である対象セクタの書込優先度であり、αは、メモリセルの特性によって定められる所定の係数である。また、Ｔは、対象セクタを含むセルアレイの温度であり、Ｎは、対象セクタの書込回数である。Ｔの単位は、例えば、度（℃）である。
【００５２】
式１の使用により、消耗度（例えば、書込回数）が高いほど低く、温度が高いほど低い値の書込優先度が求められる。この書込優先度の高いメモリセルに優先してデータを書き込むことにより、メモリセルの消耗が適切に平準化される。
【００５３】
なお、書込回数が多いほど低く、温度が高いほど低い値の書込優先度が得られるのであれば、書込優先度決定部３１５は、式１以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部３１５は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式１などを使用して書込回数および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部３１５に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
【００５４】
ここで、式１などにより適切な書込優先度が得られる根拠について説明する。不揮発性メモリでは、データの書込みに必要な書込電圧が、温度が高いほど低くなることが知られている。例えば、１５０℃において必要な書込電圧は、２５℃において必要な書込電圧の０．６倍程度となる。このため、想定温度（２５℃など）より高い温度（１５０℃など）になったときにおいて、想定温度のときの書込電圧でメモリセルを書き込むと、書込電圧が過剰であるためにメモリセルの消耗の度合いが高くなるおそれがある。また、温度が高いほどデータ保持特性が低下することが知られている。これらから、温度が高いほど、実行されるライト処理によるメモリセルの消耗度が高くなることが予測される。したがって、温度が高いセクタほど、書込優先度を低くすることが望ましい。
【００５５】
一方、書込回数が多いほど、今までの消耗の度合いが高いことが推測されるため、書込回数が多いセクタほど書込優先度を低くすることが望ましい。以上より、温度が高いほど、また、書込回数が多いほど、書込優先度を低くすることにより、適切に消耗が平準化される。
【００５６】
例えば、２５℃の環境下において、１０万回の書込寿命が保証されたメモリセルＡおよびＢを考える。このメモリセルＡおよびＢのそれぞれに１万回データを書き込むと、温度条件が同じであれば、いずれのメモリセルにおいても、残りの寿命は９万回と推測される。
【００５７】
しかし、メモリセルＡおよびＢのそれぞれの温度が異なる場合、今後のライト処理による消耗が同一とならず、残りの寿命が同一とならないおそれがある。例えば、メモリセルＡの温度はメモリセルＢよりも高いものとする。この状態において、書込回数はメモリセルＡ、Ｂとも１万回であるものの、前述したように温度の上昇に伴ってライト処理による消耗度が高くなる傾向があるため、メモリセルＡにおいて、今後の消耗が大きくなり、残りの寿命は９万回より短くなるおそれがある。このため、書込回数のみに基づいて、メモリセルＡおよびＢの書込優先度を同じ値にして書込みを行うと、メモリセルＡの方が先に寿命が尽きてしまうおそれがある。そこで、メモリコントローラ３００が式１などを使用して、これからの消耗が少なくなる方の低温のメモリセルＢにおいて優先的に書込みを行うことにより、メモリセルの消耗度を適切に平準化することができる。
【００５８】
書込優先度決定部３１５は、セクタごとに決定した書込優先度を書込優先度保持部３１６に保持させる。また、書込優先度決定部３１５は、書込優先度を算出した場合に書込回数保持部３１４における通算書込回数を初期値（例えば、０）に更新する。書込優先度保持部３１６は、セクタごとの書込優先度を保持するものである。
【００５９】
制御処理部３２０は、書込優先度の高いセクタを優先してデータの書込先として書込処理を行うものである。具体的には、制御処理部３２０は、ライトコマンドが発行されると、そのコマンドにより指定された論理アドレスに、空きのセクタのうち書込優先度の高いセクタの物理アドレスを優先して割り当てる。そして、制御処理部３２０は、その割り当てた物理アドレスにデータを書き込み、そのアドレスを書込アドレスとして書込回数供給部３１３に出力する。
【００６０】
ここで、使用中のセクタは、論理アドレスに割り当てる対象とはならないため、使用中のセクタにおいて特定のセクタに書込みが集中すると、そのセクタの消耗のみが進んで、各々のセクタの消耗度が平準化されなくなるおそれがある。そこで、制御処理部３２０は、書込回数の異なるセクタの各々に書き込まれたデータを互いに入れ替えるデータ交換処理をさらに実行することが望ましい。これにより、書込み頻度の高いデータは、消耗度（例えば、書込回数）の高いセクタに移動し、書込み頻度の低いデータは、消耗度（例えば、書込回数）の低いセクタに移動する。データ交換後は、消耗度の低いセクタに煩雑に書込みが行われて消耗が進むようになり、消耗度の高いセクタでは書込みが少なく消耗があまり進行しなくなる。この結果、消耗度が平準化される。
【００６１】
データ交換処理において、制御処理部３２０は、書込回数の多いセクタと少ないセクタとの間で、データを交換する。例えば、使用中のセクタのうち、書込回数が最大のセクタと最小のセクタとの間でデータが交換される。制御処理部３２０は、データを交換したセクタのそれぞれのアドレスを書込アドレスとして書込回数供給部３１３に出力する。
【００６２】
図６は、第１の実施の形態における温度情報保持部３１２に保持される温度情報の一例を示す図である。この温度情報保持部３１２には、不揮発性メモリチップ４００内のセルアレイ４３０ごとに取得された温度情報が保持される。例えば、メモリシステム２００内の不揮発性メモリチップ４００の個数が４個であり、不揮発性メモリチップ４００内のセルアレイ４３０の個数がｍ個である場合、温度情報保持部３１２内に、４ｍ個の温度情報が保持される。
【００６３】
図７は、第１の実施の形態における書込回数保持部３１４に保持されるデータの一例を示す図である。この書込回数保持部３１４には、不揮発性メモリチップ４００内のセクタごとに書込回数が保持される。例えば、メモリシステム２００内のセルアレイ４３０の個数が４ｍ個であり、セルアレイ４３０ごとのセクタ数がｎ個である場合、セクタ数は４ｍ×ｎ個となり、４ｍ×ｎ個の書込回数が保持される。また、書込回数保持部３１４には、通算書込回数が保持される。
【００６４】
図８は、第１の実施の形態における書込優先度保持部３１６に保持されるデータの一例を示す図である。この書込優先度保持部３１６には、不揮発性メモリチップ４００内のセクタごとに書込回数が保持される。例えば、メモリシステム２００内のセクタ数が４ｍ×ｎ個である場合、４ｍ×ｎ個の書込優先度が保持される。
【００６５】
［制御処理部の構成例］
図９は、第１の実施の形態における制御処理部３２０の一構成例を示すブロック図である。この制御処理部３２０は、書込処理部３２１、アドレス変換テーブル３２２、および、データ交換処理部３２３を備える。
【００６６】
書込処理部３２１は、書込優先度の高いセクタを優先して書込み先として書込処理を行うものである。この書込処理部３２１は、ホストコンピュータ１００からライトコマンドを受け取ると、アドレス変換テーブル３２２を参照して、そのライトコマンドにより指定された論理アドレスに物理アドレスが割り当てられているか否かを判断する。割当てがあれば、書込処理部３２１は、対応する物理アドレスにライトデータを書き込む。一方、割当てがなければ、書込処理部３２１は、空いている物理アドレスのうち、書込優先度が高いセクタを優先して論理アドレスに割り当て、その物理アドレスにライトデータを書き込む。また、書込処理部３２１は、物理アドレスの割当てに基づいて、アドレス変換テーブル３２２を更新する。アドレス変換テーブル３２２は、論理アドレスと物理アドレスとを対応付けて保持するものである。
【００６７】
データ交換処理部３２３は、データ交換処理を実行するものである。データ交換処理部３２３は、データの書込みが行われるたびに、データ交換処理を実行するか否かを判断する。例えば、データ交換処理部３２３は、セクタのそれぞれの書込回数の最大値と最小値との差分を算出し、その差分が所定の閾値Ｗ１を超えるか否かにより、データ交換処理を実行するか否かを判断する。
【００６８】
データ交換処理を実行する場合、データ交換処理部３２３は、例えば、書込回数が最大のセクタと最小のセクタとの間でデータを交換する。具体的には、データ交換処理部３２３は書込回数が最大のセクタの物理アドレスＰＡmaxと最小のセクタの物理アドレスＰＡmimとからデータを読み出して保持する。そして、データ交換処理部３２３は、物理アドレスＰＡmaxから読み出したデータを物理アドレスＰＡmimに書き込み、物理アドレスＰＡmimから読み出したデータを物理アドレスＰＡmaxに書き込む。また、データ交換処理部３２３は、交換前において物理アドレスＰＡmaxに対応していた論理アドレスに、物理アドレスＰＡmimを割り当て、交換前において物理アドレスＰＡminに対応していた論理アドレスに、物理アドレスＰＡmaxを割り当てる。
【００６９】
なお、データ交換処理は、消耗度（例えば、書込回数）の異なる複数のセクタでデータを交換する処理であれば、書込回数が最大のセクタと最小のセクタとの間でデータを交換する処理に限定されない。データ交換処理部３２３は、例えば、書込回数の平均値を求め、その平均値のＭ（Ｍは１より大きな実数）倍以上の書込回数のセクタと、平均値のＮ（Ｎは１未満の実数）倍以下の書込回数のセクタとの間でデータ交換を行ってもよい。
【００７０】
［アドレス変換テーブルの構成例］
図１０は、第１の実施の形態におけるアドレス変換テーブル３２２の一例を示す図である。アドレス変換テーブル３２２には、例えば、論理アドレスごとに、物理アドレスと、割当ての有無を示す情報とが保持される。割当ての有無は、論理アドレスに物理アドレスが割り当てられているか否かを示すものである。初期状態は、割当て無しの状態である。データの書込みが行われるときに論理アドレスに物理アドレスが割り当てられていない場合には、論理アドレスに物理アドレスが割り当てられる。
【００７１】
また、アドレス変換テーブル３２２には、物理アドレスごとに、その物理アドレスのステータスを示す情報が保持される。このステータスは、物理アドレスの使用状況などを示すものであり、例えば、「使用中」、「空き」および「不良」のいずれかを示す。「使用中」は、そのステータスの物理アドレスに論理アドレスが割り当てられてデータが書き込まれていることを示す。「空き」は、そのステータスの物理アドレスにデータが書き込まれていないことを示す。「不良」は、そのステータスの物理アドレスに対応するセクタが、寿命の尽きた不良セクタであることを示す。
【００７２】
書込処理部３２１は、ライトコマンドにより指定された論理アドレスについて、物理アドレスの割当てがあるか否かを判断する。割当てがなければ、書込処理部３２１は、空きのステータスの物理アドレスのうち最も書込優先度の高いものを物理アドレスに割り当て、論理アドレスに対応付けて保持させる。
【００７３】
例えば、論理アドレスＬＡ２に物理アドレスが割り当てられておらず、物理アドレスＰＡ１を含む複数の物理アドレスが空きのステータスであり、そのうち物理アドレスＰＡ１の書込優先度が最も高い場合を考える。論理アドレスＬＡ２を指定するライトコマンドが発行されると、メモリコントローラ３００は、空きの物理アドレスの中から、書込優先度が最も高い物理アドレスＰＡ１を論理アドレスＬＡ２に割り当てる。アドレス変換テーブル３２２には、論理アドレスＬＡ２に対応付けて、物理アドレスＰＡ１と、割当て有りを示す情報とが保持される。また、物理アドレスＰＡ１のステータスは「使用中」に更新される。
【００７４】
［メモリコントローラの動作例］
図１１は、第１の実施の形態におけるメモリコントローラ３００の動作の一例を示すフローチャートである。この動作は、例えば、メモリコントローラ３００に電源が投入されたときに開始する。メモリコントローラ３００は、電源投入時である場合と、前回の書込優先度決定処理の実行時から一定の周期が経過した場合とのいずれかに該当するか否かを判断する（ステップＳ９０１）。
【００７５】
ここで、一般に、ライトコマンドやリードコマンドは、ホストからの命令に対し、即応性が高いことが要求される。このため、図１１のフローチャートにおいて、ライトコマンドやリードコマンドに対して求められる応答時間は、例えば、ナノ秒やマイクロ秒の単位の時間である。一方、書込優先度については、短く見積もってもミリ秒単位の時間でしか、書込優先度が顕著に変化しないように式１を定義しておけば十分に消耗度が平準化される。このため、書込優先度の更新は、Ｓ９０１のように一定周期ごとに行うことが適切と考えられる。
【００７６】
電源投入時である場合、または、一定の周期が経過した場合（ステップＳ９０１：Ｙｅｓ）、メモリコントローラ３００は、セクタごとの書込優先度を決定するための書込優先度決定処理を実行する（ステップＳ９１０）。
【００７７】
電源投入時でなく、かつ、一定の周期が経過してもいない場合（ステップＳ９０１：Ｎｏ）、または、ステップＳ９１０の後、メモリコントローラ３００は、ホストコンピュータ１００からライトコマンドを受信したか否かを判断する（ステップＳ９０２）。
【００７８】
ライトコマンドを受信したのであれば（ステップＳ９０２：Ｙｅｓ）、メモリコントローラ３００は、不揮発性メモリチップ４００にデータを書き込む処理であるライト処理を実行する（ステップＳ９２０）。そして、メモリコントローラ３００は、書込優先度が異なる物理アドレスの各々に書き込まれたデータを互いに入れ替える処理であるデータ交換処理を実行する（ステップＳ９３０）。
【００７９】
ライトコマンドを受信していない場合（ステップＳ９０２：Ｎｏ）、または、ステップＳ９３０の後、メモリコントローラ３００は、ホストコンピュータ１００からリードコマンドを受信したか否かを判断する（ステップＳ９０３）。リードコマンドを受信したのであれば（ステップＳ９０３：Ｙｅｓ）、メモリコントローラ３００は、リードコマンドで指定された論理アドレスに対応する物理アドレスからデータを読み出すリード処理を実行する。メモリコントローラ３００は、読み出したデータをリードデータとしてホストコンピュータ１００に出力する（ステップＳ９０４）。
【００８０】
リードコマンドを受信していない場合（ステップＳ９０３：Ｎｏ）、または、ステップＳ９０４の後、メモリコントローラ３００は、ステップＳ９０１に戻る。
【００８１】
図１２は、第１の実施の形態における書込優先度決定処理の一例を示すフローチャートである。メモリコントローラ３００における書込優先度決定部３１５は、各々のセクタの温度情報を温度情報保持部３１２から読み出すことにより取得する（ステップＳ９１１）。そして、書込優先度決定部３１５は、セルアレイの温度の最大値と最小値との差分を求め、その差分が閾値Ｔ１を越えている否かを判断する（ステップＳ９１２）。差分が閾値Ｔ１を越えていれば（ステップＳ９１２：Ｙｅｓ）、書込優先度決定部３１５は、最後に書込優先度を計算した時点から現在までのメモリシステム２００への通算書込回数を書込回数保持部３１４から読み出すことにより取得する（ステップＳ９１３）。そして、書込優先度決定部３１５は、通算書込回数が閾値Ｗ１'を越えているか否かを判断する（ステップＳ９１４）。通算書込回数が閾値Ｗ１'を越えていれば（ステップＳ９１４：Ｙｅｓ）、書込優先度決定部３１５は、各々のセクタの書込回数を書込回数保持部３１４から読み出すことにより取得する（ステップＳ９１５）。書込優先度決定部３１５は、式１などを使用して、温度と書込回数とに応じてセクタごとの書込優先度を決定して書込優先度保持部３１６に保持させる。また、書込優先度決定部３１５は、通算書込回数を初期値（例えば、０）にする（ステップＳ９１６）。ステップＳ９１２およびＳ９１４を実行することにより、書込優先度を算出する頻度を低減することができる。差分が閾値Ｔ１未満である場合（ステップＳ９１２：Ｎｏ）、通算書込回数が閾値Ｗ１'以下である場合（ステップＳ９１４：Ｎｏ）、または、ステップＳ９１５の後、書込優先度決定部３１５は、書込優先度決定処理を終了する。
【００８２】
なお、ステップＳ９１２において、温度の最大値と最小値との差分が閾値Ｔ１より大きいか否かを判断しているが、温度分布から算出された特徴量であれば、差分以外の特徴量が閾値Ｔ１を超えているか否かを判断してもよい。特徴量としては、最大値と最小値との差分のほか、温度の最大値や最小値が用いられる。また、書込優先度決定部３１５は、特徴量（例えば、差分）が閾値Ｔ１を越えており、かつ、通算書込回数が閾値Ｗ１'を越えている場合に、書込優先度を算出している。しかし、書込優先度決定部３１５は、特徴量が閾値Ｔ１を越えている場合、または、通算書込回数が閾値Ｗ１'を越えている場合に、書込優先度を算出する構成としてもよい。さらに、書込優先度決定部３１５は、ステップＳ９１２とステップＳ９１４を必ずしも実行する必要はなく、ステップＳ９１２およびステップＳ９１４のいずれか一方のみを実行する構成や、いずれも実行しない構成としてもよい。ここで、通算書込回数を閾値と比較するステップＳ９１４を実行しない場合には、その通算書込回数を取得するためのステップＳ９１３も実行する必要はなくなる。
【００８３】
図１３は、第１の実施の形態におけるライト処理の一例を示すフローチャートである。メモリコントローラ３００における制御処理部３２０は、アドレス変換テーブル３２２を参照して、ライトコマンドにより指定された論理アドレスに対応する物理アドレスがあるか否かを判断する（ステップＳ９２１）。
【００８４】
対応する物理アドレスがない場合（ステップＳ９２１：Ｎｏ）、制御処理部３２０は、書込優先度の高い空きのセクタの物理アドレスを優先して、指定された論理アドレスに割り当てる（ステップＳ９２２）。
【００８５】
対応する物理アドレスがある場合（ステップＳ９２１：Ｙｅｓ）、または、ステップＳ９２２の後、制御処理部３２０は、指定された論理アドレスに対応する物理アドレスへのデータの書込みを行う（ステップＳ９２３）。そして、制御処理部３２０は、書込みを行った物理アドレスを書込回数供給部３１３に通知する。書込回数供給部３１３は、書込回数保持部３１４に保持された、その物理アドレスの書込回数を更新する。また、書込回数供給部３１３は、書込回数保持部３１４に保持された通算書込回数を更新する（ステップＳ９２４）。ステップＳ９２４の後、制御処理部３２０は、ライト処理を終了する。
【００８６】
図１４は、第１の実施の形態におけるデータ交換処理の一例を示すフローチャートである。制御処理部３２０は、データが書き込まれたセクタの各々の書込回数のうち最大値と最小値とを求めて、それらの差分を算出する（ステップＳ９３１）。制御処理部３２０は、算出した差分が所定の閾値Ｗ１を超えているか否かを判断する（ステップＳ９３２）。
【００８７】
差分が閾値Ｗ１を超えていれば（ステップＳ９３２：Ｙｅｓ）、制御処理部３２０は、書込回数の多いセクタと少ないセクタとの間でデータを交換する（ステップＳ９３３）。制御処理部３２０は、データを交換したセクタのそれぞれの書込回数を更新する（ステップＳ９３４）。
【００８８】
差分が閾値Ｗ１未満の場合（ステップＳ９３２：Ｎｏ）、または、ステップＳ９３４の後、制御処理部３２０は、データ交換処理を終了する。
【００８９】
このように、本技術の第１の実施の形態によれば、メモリコントローラ３００は、消耗度と温度とに応じて決定した書込優先度の高いセクタを書込み先として、データを書き込むことができる。実行されるライト処理による消耗度が温度に応じて変わるため、温度とこれまでの消耗度とに応じてデータを書き込むことにより、それぞれのセクタの消耗度を適切に平準化することができる。
【００９０】
［第１の変形例］
第１の実施の形態では、メモリコントローラ３００は、ライト処理のたびにデータ交換処理を実行する構成としていたが、ライト処理の実行頻度の増大に応じてデータ交換処理の実行頻度も増大し、メモリセルの消耗が進むおそれがある。このため、メモリコントローラ３００は、データ交換処理を一定の周期で行ってもよい。第１の変形例のメモリコントローラ３００は、一定の周期でデータ交換処理を実行する点において第１の実施の形態と異なる。
【００９１】
図１５は、第１の変形例のメモリコントローラ３００の動作の一例を示すフローチャートである。変形例のメモリコントローラ３００の動作は、データ交換処理（ステップＳ９３０）を、ライト処理（ステップＳ９２０）の後ではなく、一定の周期で実行する点において第１の実施の形態と異なる。具体的には、一定の周期が経過すると（ステップＳ９０１：Ｙｅｓ）、メモリコントローラ３００は、書込優先度決定処理（ステップＳ９１０）を実行し、ライト処理（ステップＳ９３０）を実行する。
【００９２】
［第２の変形例］
第１の実施の形態では、メモリコントローラ３００は、書込優先度決定処理とライト処理やリード処理などのアクセス制御処理とを順に実行していたが、書込優先度決定処理とアクセス制御処理とを並列に実行してもよい。第２の変形例のメモリコントローラ３００は、書込優先度決定処理とアクセス制御処理とを並列に実行する点において第１の実施の形態と異なる。
【００９３】
具体的には、制御処理部３２０が図１６に例示するようにアクセス制御処理およびデータ交換処理を実行し、その一方で書込優先度決定部３１５が図１７に例示するように書込優先度決定を一定周期で実行する。
【００９４】
図１６は、第２の変形例の制御処理部３２０の動作の一例を示すフローチャートである。この動作は、ステップＳ９０１およびＳ９１０を実行しない点以外は、図１１に例示したメモリコントローラ３００の動作と同様である。
【００９５】
図１７は、第２の変形例の書込優先度決定部３１５の動作の一例を示すフローチャートである。この動作は、ステップＳ９０２、Ｓ９０３、Ｓ９０４、Ｓ９２０およびＳ９３０を実行しない点以外は図１１に例示したメモリコントローラ３００の動作と同様である。
【００９６】
なお、第１の変形例においても、第２の変形例と同様に、制御処理部３２０は、アクセス制御処理およびデータ交換処理と優先度決定処理とを並列に実行してもよい。
【００９７】
［第３の変形例］
第１の実施の形態では、メモリコントローラ３００は、温度が高いほど書込優先度を低くしていたが、逆に温度が高いほど書込優先度を高くしてもよい。第３の変形例のメモリコントローラ３００は、温度が高いほど書込優先度を高くする点において第１の実施の形態と異なる。
【００９８】
具体的には、書込優先度決定部３１５は、式１の代わりに次の式２を使用して書込優先度を算出する。
【数２】
2014098978.tif 000004
式２において、Ｐ１'は優先度を求める対象である対象セクタの書込優先度であり、αは、メモリセルの特性によって定められる所定の係数である。また、Ｔは、対象セクタを含むセルアレイの温度であり、Ｎは、対象セクタの書込回数である。Ｔの単位は、例えば、度（℃）である。
【００９９】
式２の使用により、消耗度（例えば、書込回数）が高いほど低く、温度が高いほど高い値の書込優先度が求められる。ここで、メモリセルの温度が高いほど、一度の書込みに要する時間（いわゆるレイテンシ）が短くなることが知られている。このため、式２などを使用して、温度が高いほど書込優先度を高くすることにより、消耗度を平準化しつつ、書込みにおけるレイテンシを短くする（言い換えれば、アクセス速度を早くする）ことができる。
【０１００】
なお、書込回数が多いほど低く、温度が高いほど高い値の書込優先度が得られるのであれば、書込優先度決定部３１５は、式２以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部３１５は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式２などを使用して書込回数および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部３１５に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
【０１０１】
また、メモリセルが規定の特性を満たし、安全に動作することが保証される温度閾値Ｔmaxを越えると、そのメモリセルにおいて書込み時に許容値を越える数のエラーが発生してデータが正常に書き込まれないおそれがある。そこで、書込優先度決定部３１５は、セルアレイの温度がＴmaxを越えている場合には、そのセルアレイのセクタの優先度を最小にしてもよい。具体的には、書込優先度決定部３１５は式２の代わりに次の式３を使用して書込優先度を算出する。これにより、過熱によりデータが正常に書き込まれなくなることが防止される。
【数３】
2014098978.tif 000005
【０１０２】
［第４の変形例］
第１の実施の形態では、メモリコントローラ３００は、セルアレイの温度に関りなくデータ交換処理を実行していたが、所定の温度以下のセルアレイにおいてデータ交換処理を実行することもできる。第４の変形例のメモリコントローラ３００は、所定の温度以下のセルアレイにおいてデータ交換処理を実行する点において第１の実施の形態と異なる。
【０１０３】
図１８は、第４の変形例におけるデータ交換処理の一例を示すフローチャートである。第４の変形例のデータ交換処理は、ステップＳ９３１およびＳ９３３の代わりにステップＳ９６１、Ｓ９６２およびＳ９６３を実行する点において図１４に例示した第１の実施の形態と異なる。
【０１０４】
制御処理部３２０は、各々のセルアレイの温度情報を温度情報保持部３１２から取得して、温度が所定温度以下のセルアレイの識別番号を保持しておく（ステップＳ９６１）。制御処理部３２０は、保持した識別番号を参照し、その識別番号のセルアレイ内のセクタにおける書込回数のうち最大値と最小値とを求めて、それらの差分を算出する（ステップＳ９６２）。そして、制御処理部３２０は、算出した差分が所定の閾値Ｗ１を超えているか否かを判断する（ステップＳ９３２）。差分が閾値Ｗ１を超えていれば（ステップＳ９３２：Ｙｅｓ）、制御処理部３２０は、保持した識別番号を参照し、その識別番号のセルアレイ内のセクタのうち、書込回数の多いセクタと少ないセクタとの間でデータを交換する（ステップＳ９６３）。そして、制御処理部３２０は、ステップＳ９３４を実行する。
【０１０５】
前述したように、温度が高いほどメモリセルの消耗度が高くなるため、温度が所定温度より高いメモリセルを避けてデータ交換処理を実行することにより、消耗度がより適切に平準化される。
【０１０６】
［第５の変形例］
第１の実施の形態では、メモリコントローラ３００は、電源投入時に書込優先度を初期化していなかったが、電源投入時に規定値（例えば、０）に書込優先度を初期化してもよい。第５の変形例のメモリコントローラ３００は、電源投入時に書込優先度を初期化する点において第１の実施の形態と異なる。
【０１０７】
図１９は、第５の変形例のメモリコントローラ３００の動作の一例を示すフローチャートである。第５の変形例のメモリコントローラ３００の動作は、ステップＳ９０１の代わりにステップＳ９０５およびＳ９０６を実行する点において図１１に例示した第１の実施の形態と異なる。
【０１０８】
電源が投入されると、メモリコントローラ３００は、規定値により各セクタの書込優先度を初期化する（ステップＳ９０５）。そして、メモリコントローラ３００は、前回の書込優先度決定処理の実行時または初期化時から一定周期が経過したか否かを判断する（ステップＳ９０６）。一定周期が経過したのであれば（ステップＳ９０６：Ｙｅｓ）、メモリコントローラ３００は、ステップＳ９１０を実行し、一定周期が経過していなければ（ステップＳ９０６：Ｎｏ）、メモリコントローラ３００は、ステップＳ９０２を実行する。
【０１０９】
なお、ステップＳ９０５においてメモリコントローラ３００は、規定値を初期値としているが、電源遮断前に最後に決定された書込優先度を初期値としてもよい。この場合、例えば、メモリコントローラ３００は、不揮発性のメモリからなる書込優先度記憶部をさらに具備し、電源が遮断されると、書込優先度保持部３１６に保持された書込優先度の各々を読み出して書込優先度記憶部に記憶しておく。そして、メモリコントローラ３００は、電源投入時に、書込優先度記憶部から書込優先度を読み出して、初期値として書込優先度保持部３１６に保持させる。
［第６の変形例］
【０１１０】
第１の実施の形態では、メモリコントローラ３００は、電源投入時に書込優先度を初期化していなかったが、電源投入時に所定の温度条件が満たされたときに書込優先度を初期化してもよい。第６の変形例のメモリコントローラ３００は、電源投入時に所定の温度条件が満たされたときに書込優先度を初期化する点において第１の実施の形態と異なる。
【０１１１】
図２０は、第６の変形例のメモリコントローラ３００の動作の一例を示すフローチャートである。第５の変形例のメモリコントローラ３００の動作は、ステップＳ９０１の代わりにステップＳ９０５、Ｓ９０６、Ｓ９０７およびＳ９０８を実行する点において図１１に例示した第１の実施の形態と異なる。
【０１１２】
電源が投入されると、メモリコントローラ３００は、各々のセルアレイの温度情報を温度情報保持部３１２から取得する（ステップＳ９０７）。書込優先度決定部３１５は、セルアレイの温度の特徴量（最大値と最小値との差分など）を求め、その差分が閾値Ｔ１を越えている否かを判断する（ステップＳ９０８）。差分が閾値Ｔ１を越えていなければ（ステップＳ９０８：Ｎｏ）、メモリコントローラ３００は、規定値により各セクタの書込優先度を初期化する（ステップＳ９０５）。そして、メモリコントローラ３００は、前回の書込優先度決定処理の実行時または初期化時から一定周期が経過したか否かを判断する（ステップＳ９０６）。
【０１１３】
差分が閾値Ｔ１を越えていた場合（ステップＳ９０８：Ｙｅｓ）、または、一定周期が経過した場合（ステップＳ９０５：Ｙｅｓ）、メモリコントローラ３００は、ステップＳ９１０を実行する。一定周期が経過していなければ（ステップＳ９０５：Ｎｏ）、メモリコントローラ３００は、ステップＳ９０２を実行する。
【０１１４】
＜２．第２の実施の形態＞
［メモリコントローラの構成例］
第１の実施の形態では、ライト処理の各々において温度が一定であると想定して、書込回数自体を消耗度として用いていたが、実際にはライト処理の各々の時点の温度が異なることがある。ライト処理の各々において温度が異なる場合には、ライト処理ごとの消耗度も異なる値となる。したがって、ライト処理ごとに、そのときの温度に応じた消耗度を求めることが望ましい。第２の実施の形態のメモリコントローラ３００は、ライト処理ごとに、そのときの温度に応じた消耗度を求める点において第１の実施の形態と異なる。
【０１１５】
図２１は、第２の実施の形態におけるメモリコントローラ３００の機能構成例を示すブロック図である。第２の実施の形態のメモリコントローラ３００は、書込回数供給部３１３および書込回数保持部３１４の代わりに消耗度テーブル３１７、累計消耗度供給部３１８、および、累計消耗度保持部３１９を備える点において第１の実施の形態と異なる。
【０１１６】
消耗度テーブル３１７は、温度ごとに１回のライト処理による消耗度を保持するテーブルである。前述したように、メモリセルにおいて、温度が高いほど寿命は短くなり、１回のライト処理による消耗度は高くなる傾向がある。この傾向に基づいて、例えば、温度ごとの寿命を予め求めておき、その寿命が低いほど高い値が１回のライト処理における消耗度として消耗度テーブルに保持される。例えば、ある温度における寿命の逆数に比例した値が、その温度の消耗度として保持される。
【０１１７】
累計消耗度供給部３１８は、セクタごとに、ライト処理の各々における消耗度を累計した値を累計消耗度として供給するものである。累計消耗度供給部３１８は、制御処理部３２０から書込アドレスを受け取ると、その書込アドレスに対応するセクタの温度を温度情報保持部３１２から読み出す。そして、累計消耗度供給部３１８は、読み出した温度に対応する消耗度を消耗度テーブル３１７から取得する。そして、累計消耗度供給部３１８は、その書込アドレスに対応するセクタの累計消耗度に、取得した消耗度を加えた値を新たな累計消耗度として算出し、累計消耗度保持部３１９に保持させる。また、累計消耗度供給部３１８は、書込アドレスを受け取るたびに、最後に書込優先度を計算した時点から現在までのメモリシステム２００における消耗度の累計である通算消耗度を更新して累計消耗度保持部３１９に保持させる。累計消耗度保持部３１９は、通算消耗度とセクタごとの累計消耗度とを保持するものである。
【０１１８】
なお、累計消耗度供給部３１８は、特許請求の範囲に記載の消耗度供給部の一例である。また、累計消耗度供給部３１８は、温度に応じた消耗度を消耗度テーブル３１７から取得する構成としているが、この構成に限定されない。例えば、累計消耗度供給部３１８は、温度をＸとし、消耗度をＹとして所定の関数Ｙ（Ｘ）を定義し、そのＹ（Ｘ）を使用して、温度から消耗度を算出してもよい。Ｙ（Ｘ）の各係数の値は、例えば、測定された複数の（Ｘ，Ｙ）との誤差が最も少なくなる値を求める関数近似法により求められる。
【０１１９】
第２の実施の形態の書込優先度決定部３１５は、累計消耗度と温度とに応じた値を書込優先度としてセクタごとに求める。書込優先度決定部３１５は、例えば、次の式４を使用してセクタ毎に書込優先度を決定する。また、書込優先度決定部３１５は、書込優先度を算出した場合に累計消耗度保持部３１９における通算消耗度を初期値（例えば、０）に更新する。
【数４】
2014098978.tif 000006
式４において、Ｐ２は優先度を求める対象である対象セクタの書込優先度であり、αはメモリセルの特性によって定められる所定の係数である。また、Ｔは、対象セクタを含むセルアレイの温度であり、Ｗは、対象セクタの累計消耗度である。
【０１２０】
前述したように１回のライト処理によるメモリセルの消耗度は一定でなく、温度が高いほど高くなる傾向にある。このため、メモリコントローラ３００は、ライト処理の実行のたびに温度に応じた消耗度を取得することにより、これまでのライト処理による消耗度を正確に求めることができる。
【０１２１】
なお、累計消耗度が多いほど低く、温度が高いほど低い値の書込優先度が得られるのであれば、書込優先度決定部３１５は、式４以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部３１５は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式４などを使用して累計消耗度および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部３１５に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
【０１２２】
図２２は、第２の実施の形態における消耗度テーブル３１７の一例を示す図である。消耗度テーブル３１７には、温度ごとに、その温度の書込寿命の逆数を、必要に応じて正規化した値が一回のライト処理における消耗度として保持される。正規化は、例えば、ある温度の書込寿命を基準として行われる。
【０１２３】
温度が２０℃のメモリセルにおいて寿命が１００万回であり、温度が３０℃のメモリセルにおいて寿命が８０万回である場合を考える。この場合、例えば、２０℃のときの寿命を基準として、それぞれの寿命の逆数に、２０℃のときの寿命を乗じることにより正規化が行われる。この結果、１００万回の逆数を正規化した１．００が２０℃のときの消耗度として保持され、８０万回の逆数を正規化した１．２５が３０℃のときの消耗度として保持される。
【０１２４】
図２３は、第２の実施の形態における累計消耗度保持部３１９に保持されるデータの一例を示す図である。この累計消耗度保持部３１９には、不揮発性メモリチップ４００内のセクタごとに累計消耗度が保持される。例えば、メモリシステム２００内のセクタ数が４ｍ×ｎ個である場合、４ｍ×ｎ個の累計消耗度が保持される。また、累計消耗度保持部３１９には、通算消耗度が保持される。
【０１２５】
図２４は、第２の実施の形態における制御処理部３２０の一構成例を示すブロック図である。第２の実施の形態の制御処理部３２０の構成は、データ交換処理部３２３の代わりにデータ交換処理部３２４を備える点において第１の実施の形態と異なる。
【０１２６】
データ交換処理部３２４の構成は、書込回数の代わりに累計消耗度をセクタごとに取得し、それらの最大値と最小値との差分が所定の閾値Ｗ２を超えるか否かにより、データ交換処理を実行するか否かを判断する点において第１の実施の形態と異なる。
【０１２７】
図２５は、第２の実施の形態における書込優先度決定処理の一例を示すフローチャートである。第２の実施の形態の書込優先度決定処理は、ステップＳ９１３、Ｓ９１４およびＳ９１５の代わりにステップＳ９１７、Ｓ９１８およびＳ９１９を実行する点において第１の実施の形態と異なる。
【０１２８】
書込優先度決定部３１５は、温度情報の取得（ステップＳ９１１）の後、セルアレイの温度の特徴量（最大値と最小値との差分など）が閾値Ｔ２を越えている否かを判断する（ステップＳ９１２）。差分が閾値Ｔ２を越えていれば（ステップＳ９１２：Ｙｅｓ）、書込優先度決定部３１５は、最後に書込優先度を計算した時点から現在までのメモリシステム２００における通算消耗度を累計消耗度保持部３１９から取得する（ステップＳ９１７）。そして、書込優先度決定部３１５は、通算消耗度が閾値Ｗ２'を越えている否かを判断する（ステップＳ９１８）。通算消耗度が閾値Ｗ２'を越えるのであれば（ステップＳ９１８：Ｙｅｓ）、書込優先度決定部３１５は、各々のセクタの累計消耗度を累計消耗度保持部３１９から取得する（ステップＳ９１９）。書込優先度決定部３１５は、式４などを使用して、温度と累計消耗度とに応じてセクタごとの書込優先度を決定して書込優先度保持部３１６に保持させる。また、書込優先度決定部３１５は、通算消耗度を初期値（例えば、０）にする（ステップＳ９１６）。ステップＳ９１２およびＳ９１８を実行することにより、書込優先度を算出する頻度を低減することができる。差分が閾値Ｔ２未満である場合（ステップＳ９１２：Ｎｏ）、通算消耗度数が閾値Ｗ２'未満である場合（ステップＳ９１８：Ｎｏ）、または、ステップＳ９１９の後、書込優先度決定部３１５は、書込優先度決定処理を終了する。
【０１２９】
なお、書込優先度決定部３１５は、特徴量（例えば、差分）が閾値Ｔ２を越えており、かつ、通算消耗度が閾値Ｗ２'を越えている場合に、書込優先度を算出している。しかし、書込優先度決定部３１５は、特徴量が閾値Ｔ２を越えている場合、または、通算消耗度が閾値Ｗ２'を越えている場合に、書込優先度を算出する構成としてもよい。さらに、書込優先度決定部３１５は、ステップＳ９１２およびステップＳ９１８を必ずしも実行する必要はなく、ステップＳ９１２およびステップＳ９１８のいずれか一方のみを実行する構成や、いずれも実行しない構成としてもよい。ここで、通算消耗度を閾値と比較するステップＳ９１８を実行しない場合には、その通算消耗度を取得するためのステップＳ９１７も実行する必要はなくなる。
【０１３０】
図２６は、第２の実施の形態におけるライト処理の一例を示すフローチャートである。第２の実施の形態のライト処理は、ステップＳ９２４の代わりにステップＳ９２５乃至Ｓ９２７を実行する点において第１の実施の形態と異なる。制御処理部３２０は、データの書込み（ステップＳ９２３）の後、データの書込み先のセクタの温度を温度情報保持部３１２から取得する（ステップＳ９２５）。制御処理部３２０は、取得した温度に対応する消耗度を消耗度テーブル３１７から取得する（ステップＳ９２６）。そして、制御処理部３２０は、書込みを行った物理アドレスを累計消耗度供給部３１８に通知する。累計消耗度供給部３１８は、累計消耗度保持部３１９に保持された、その物理アドレスの累計消耗度を更新する。また、累計消耗度供給部３１８は、累計消耗度保持部３１９に保持された通算消耗度を更新する（ステップＳ９２７）。ステップＳ９２７の後、制御処理部３２０は、ライト処理を終了する。
【０１３１】
図２７は、第２の実施の形態におけるデータ交換処理の一例を示すフローチャートである。制御処理部３２０は、セクタの各々の累計消耗度のうち最大値と最小値とを求めて、それらの差分を算出する（ステップＳ９３５）。制御処理部３２０は、算出した差分が所定の閾値Ｗ２を超えているか否かを判断する（ステップＳ９３６）。
【０１３２】
差分が閾値Ｗ２を超えていれば（ステップＳ９３６：Ｙｅｓ）、制御処理部３２０は、累計消耗度の多いセクタと少ないセクタとの間でデータを交換する（ステップＳ９３７）。制御処理部３２０は、データを交換したセクタのそれぞれの温度を温度情報保持部３１２から取得する（ステップＳ９３８）。制御処理部３２０は、取得した温度のそれぞれに対応する消耗度を消耗度テーブル３１７から取得する（ステップＳ９３９）。制御処理部３２０は、取得した消耗度に基づいて、データを交換したセクタのそれぞれの累計消耗度を更新する（ステップＳ９４０）。
【０１３３】
差分が閾値Ｗ２未満の場合（ステップＳ９３６：Ｎｏ）、または、ステップＳ９４０の後、制御処理部３２０は、データ交換処理を終了する。
【０１３４】
なお、第２の実施の形態においても、第１の実施の形態と同様に、第１乃至第６の変形例を適用することができる。図１８に例示した第４の変形例を図２７に例示した第２の実施形態のデータ交換処理に適用する場合、Ｓ９６１で温度情報を取得済みであるため、ステップＳ９３８は省略することができる。
【０１３５】
このように、本技術の第２の実施の形態によれば、メモリコントローラ３００は、ライト処理が実行されたときの温度に応じた値を消耗度として求めるため、ライト処理ごとに温度が異なる場合であっても、これまでの消耗度を正確に求めることができる。これにより、メモリセルの各々の消耗度が適切に平準化される。
【０１３６】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１３７】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【０１３８】
なお、本技術は以下のような構成もとることができる。
（１）それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリ制御装置。
（２）前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど低い値を前記優先度として決定する
前記（１）記載のメモリ制御装置。
（３）前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど高い値を前記優先度として決定する
前記（１）記載のメモリ制御装置。
（４）前記優先度決定部は、所定の閾値温度を超える温度の前記測定領域に含まれる前記単位領域において前記優先度を所定の値に決定する
前記（３）記載のメモリ制御装置。
（５）前記優先度決定部は、前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には前記優先度を決定する
前記（１）乃至（４）のいずれかに記載のメモリ制御装置。
（６）前記優先度決定部は、電源が投入されたときに前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を前記優先度として決定する
前記（１）乃至（５）のいずれかに記載のメモリ制御装置。
（７）前記書込処理部により前記書込処理が実行されたときの前記単位領域の温度に応じた値を前記消耗度として前記優先度決定部に供給する消耗度供給部をさらに具備する
前記（１）乃至（６）のいずれかに記載のメモリ制御装置。
（８）前記複数の単位領域のうち前記消耗度の高い単位領域のデータと前記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより前記複数の単位領域の各々における前記消耗度を平準化するデータ交換処理部をさらに具備する
前記（７）記載のメモリ制御装置。
（９）前記データ交換処理部は、前記消耗度取得部により前記消耗度が取得されるたびに前記複数の単位領域の各々の前記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して前記差分が前記所定の閾値より大きい場合に前記データ交換処理を実行する
前記（８）記載のメモリ制御装置。
（１０）前記データ交換処理部は、所定の温度を超えていない前記測定領域において前記データ交換処理を実行する
前記（８）記載のメモリ制御装置。
（１１）前記優先度決定部は、所定の周期が経過するたびに前記優先度を決定する
前記（１）乃至（９）のいずれかに記載のメモリ制御装置。
（１２）前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリに対する書込回数である通算書込回数が所定回数より多い場合には前記優先度を決定する
前記（１１）記載のメモリ制御装置。
（１３）前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリの消耗の度合いである通算消耗度が所定値より高い場合には前記優先度を決定する
前記（１１）記載のメモリ制御装置。
（１４）前記複数の単位領域の各々には物理アドレスが割り振られており、
前記書込処理部は、前記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると前記優先度の高い単位領域の物理アドレスを優先して前記論理アドレスに割り当てて当該割り当てた物理アドレスを前記書込み先とする
前記（１）乃至（１３）のいずれかに記載のメモリ制御装置。
（１５）それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリシステム。
（１６）データの書込処理を指示するホストコンピュータと、
それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として前記指示された書込処理を実行する書込処理部と
を具備する情報処理システム。
（１７）それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、前記複数の測定領域の各々で測定された温度を取得する温度取得手順と、
優先度決定部が、実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定手順と、
書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理手順と
を具備するメモリ制御方法。
【符号の説明】
【０１３９】
１００  ホストコンピュータ
２００  メモリシステム
３００  メモリコントローラ
３０１  ＲＡＭ
３０２  ＣＰＵ
３０３  ＥＣＣ処理部
３０４  ＲＯＭ
３０５  ホストインターフェース
３０６  バス
３０７  不揮発性メモリインターフェース
３１１  温度情報取得部
３１２  温度情報保持部
３１３  書込回数供給部
３１４  書込回数保持部
３１５  書込優先度決定部
３１６  書込優先度保持部
３１７  消耗度テーブル
３１８  累計消耗度供給部
３１９  累計消耗度保持部
３２０  制御処理部
３２１  書込制御部
３２２  アドレス変換テーブル
３２３、３２４  データ交換処理部
４００  不揮発性メモリチップ
４１０  制御インターフェース
４２０  不揮発性メモリ制御部
４３０  セルアレイ
４４０  温度センサ
【図１】
2014098978.tif 000007
【図２】
2014098978.tif 000008
【図３】
2014098978.tif 000009
【図４】
2014098978.tif 000010
【図５】
2014098978.tif 000011
【図６】
2014098978.tif 000012
【図７】
2014098978.tif 000013
【図８】
2014098978.tif 000014
【図９】
2014098978.tif 000015
【図１０】
2014098978.tif 000016
【図１１】
2014098978.tif 000017
【図１２】
2014098978.tif 000018
【図１３】
2014098978.tif 000019
【図１４】
2014098978.tif 000020
【図１５】
2014098978.tif 000021
【図１６】
2014098978.tif 000022
【図１７】
2014098978.tif 000023
【図１８】
2014098978.tif 000024
【図１９】
2014098978.tif 000025
【図２０】
2014098978.tif 000026
【図２１】
2014098978.tif 000027
【図２２】
2014098978.tif 000028
【図２３】
2014098978.tif 000029
【図２４】
2014098978.tif 000030
【図２５】
2014098978.tif 000031
【図２６】
2014098978.tif 000032
【図２７】
2014098978.tif 000033