(57)【要約】【課題】データリテンションによるデータの消失を低減させることができるＭＲＡＭを記憶媒体とするメモリシステムを提供する。【解決手段】実施形態によれば、メモリシステムは、ＭＲＡＭと、メモリコントローラと、温度センサと、磁気センサと、を備える。ＭＲＡＭには、書き込み／消去回数情報と、パトロールリード実施時刻情報と、温度と磁場の強さと書き込み／消去回数との組み合わせに対してパトロールリード実施時間間隔を規定したパトロールリード情報と、が記憶される。メモリコントローラは、温度センサから温度を取得し、磁気センサから磁場の強さを取得し、温度、磁場の強さおよび書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔を、パトロールリード情報から取得し、前回のパトロールリード実施時刻からの経過時間と取得したパトロールリード実施時間間隔とを比較して、パトロールリードの実施の可否を決定する。【選択図】図１
2020042890.tif 000002
【特許請求の範囲】
【請求項１】
ＭＲＡＭと、
前記ＭＲＡＭへのデータのアクセスを制御するメモリコントローラと、
当該メモリシステムの温度を計測する温度センサと、
当該メモリシステムの磁場の強さを計測する磁気センサと、
を備え、
前記ＭＲＡＭには、前記ＭＲＡＭの書き込み／消去回数を示す書き込み／消去回数情報と、前回のパトロールリード実施時刻を含むパトロールリード実施時刻情報と、温度と磁場の強さと書き込み／消去回数との組み合わせに対してパトロールリード実施時間間隔を規定したパトロールリード情報と、が記憶され、
前記メモリコントローラは、
前記温度センサから温度を取得し、
前記磁気センサから磁場の強さを取得し、
前記温度、前記磁場の強さおよび前記書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔を、前記パトロールリード情報から取得し、
前記前回のパトロールリード実施時刻からの経過時間と取得した前記パトロールリード実施時間間隔とを比較して、パトロールリードの実施の可否を決定するメモリシステム。
【請求項２】
前記メモリコントローラは、前記経過時間が前記パトロールリード実施時間間隔よりも大きい場合に、前記パトロールリードを実施する請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラは、前記経過時間が前記パトロールリード実施時間間隔よりも小さい場合に、前記パトロールリードを実施しない請求項１に記載のメモリシステム。
【請求項４】
前記メモリコントローラは、前記パトロールリードの実施の結果、前記ＭＲＡＭのデータにエラーがある場合に、前記エラーのあるデータを訂正して前記ＭＲＡＭ内の別の位置に書き込むリフレッシュ処理を実行する請求項２に記載のメモリシステム。
【請求項５】
前記パトロールリード情報は、前記温度が高いほど、前記磁場が強いほど、あるいは前記書き込み／消去回数が多いほど、前記パトロールリード実施時間間隔が小さくなる請求項１から４のいずれか１つに記載のメモリシステム。
【請求項６】
前記メモリコントローラは、当該メモリシステムの電源がオンにされた場合あるいは当該メモリシステムに接続されるホストからのアイドル要求を受信した場合に、前記パトロールリードの実施の可否を決定する請求項１から５のいずれか１つに記載のメモリシステム。
【請求項７】
ＭＲＡＭには、前記ＭＲＡＭの書き込み／消去回数を示す書き込み／消去回数情報と、前回のパトロールリード実施時刻を含むパトロールリード実施時刻情報と、温度と磁場の強さと書き込み／消去回数との組み合わせに対してパトロールリード実施時間間隔を規定したパトロールリード情報と、が記憶され、
当該メモリシステムに設けられる温度センサから温度を取得し、
当該メモリシステムに設けられる磁気センサから磁場の強さを取得し、
前記ＭＲＡＭから前記書き込み／消去回数を取得し、
前記ＭＲＡＭから前記パトロールリード実施時刻情報を取得し、
前記温度、前記磁場の強さおよび前記書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔を、前記パトロールリード情報から取得し、
前記前回のパトロールリード実施時刻からの経過時間と取得した前記パトロールリード実施時間間隔とを比較して、パトロールリードの実施の可否を決定するメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムおよびメモリシステムの制御方法に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリという）を記憶媒体としたメモリシステムでは、データの信頼性を確認するパトロールリードが実施され、その結果、データリテンションによるエラーの発生を検出した場合に、リフレッシュ処理が行われる。
【０００３】
磁気抵抗メモリ（Magnetoresistive  Random  Access  Memory：以下、ＭＲＡＭという）を記憶媒体としたメモリシステムは提案されていない。また、このようなメモリシステムでは、外的環境温度および外的環境磁場からの影響を受け、データリテンションによるエラーが発生してしまう虞がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１７／０２６２１９８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一つの実施形態は、データリテンションによるデータの消失を低減させることができるＭＲＡＭを記憶媒体とするメモリシステムおよびメモリシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの実施形態によれば、メモリシステムは、ＭＲＡＭと、ＭＲＡＭへのデータのアクセスを制御するメモリコントローラと、当該メモリシステムの温度を計測する温度センサと、当該メモリシステムの磁場の強さを計測する磁気センサと、を備える。ＭＲＡＭには、ＭＲＡＭの書き込み／消去回数を示す書き込み／消去回数情報と、前回のパトロールリード実施時刻を含むパトロールリード実施時刻情報と、温度と磁場の強さと書き込み／消去回数との組み合わせに対してパトロールリード実施時間間隔を規定したパトロールリード情報と、が記憶される。メモリコントローラは、温度センサから温度を取得し、磁気センサから磁場の強さを取得し、温度、磁場の強さおよび書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔を、パトロールリード情報から取得し、前回のパトロールリード実施時刻からの経過時間と取得したパトロールリード実施時間間隔とを比較して、パトロールリードの実施の可否を決定する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態によるメモリシステムの構成の一例を模式的に示すブロック図である。
【図２】図２は、ＭＲＡＭの記憶領域の構成の一例を示す図である。
【図３】図３は、実施形態による温度、磁場の強さおよび書き込み／消去回数によるパトロールリード実施時間間隔の概要を示す図である。
【図４】図４は、実施形態によるパトロールリード情報の一例を示す図である。
【図５】図５は、実施形態によるメモリシステムの制御方法の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかるメモリシステムおよびメモリシステムの制御方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００９】
図１は、実施形態によるメモリシステムの構成の一例を模式的に示すブロック図である。メモリシステム１０は、不揮発性メモリとしてのＭＲＡＭ２０と、温度センサ３０と、磁気センサ４０と、メモリコントローラ５０と、を備える。メモリシステム１０は、図示しないホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【００１０】
ＭＲＡＭ２０は、電源が供給されない状態でも、書き込まれたデータを保持することができるメモリである。ＭＲＡＭ２０は、メモリセルアレイを有する１以上のＭＲＡＭチップによって構成される。メモリセルアレイは、複数のメモリセルがマトリクス状に配列されて構成される。個々のメモリセルアレイは、消去の単位である物理ブロックを複数配列して構成される。
【００１１】
図２は、ＭＲＡＭの記憶領域の構成の一例を示す図である。ＭＲＡＭ２０には、ホストから送信されるユーザデータを記憶するユーザエリア２１と、メモリシステム１０の管理に使用される管理情報を記憶する管理エリア２２と、が設けられる。本実施形態で使用される管理情報として、書き込み／消去回数情報、パトロールリード実施時刻情報およびパトロールリード情報が、管理エリア２２に記憶される。
【００１２】
書き込み／消去回数情報は、例えばメモリセルへの書込回数またはブロックの消去回数である書き込み／消去回数をブロックごとに記録した情報である。パトロールリード実施時刻情報は、パトロールリードを最後に実施した時刻を含む情報である。パトロールリードは、主にデータリテンションによるエラーの蓄積をエラー訂正不可能になる前に検出するために、周期的にＭＲＡＭ２０からデータを読み出し、読み出したデータにエラーがあるかを判定する処理である。
【００１３】
パトロールリード情報は、温度、磁場の強さおよび書き込み／消去回数の組み合わせと、パトロールリードの実施時間間隔と、を規定した情報である。パトロールリードの実施時間間隔を短くした場合には、ホストからの指示によるメモリシステム１０の処理に遅延が発生してしまう。そのため、メモリシステム１０の性能に影響を及ぼさない程度にパトロールリードの実施時間間隔が設定される。この実施時間間隔は、温度、磁場の強さおよび書き込み／消去回数の組み合わせによって変化する。
【００１４】
例えばメモリシステム１０が室温よりも高い高温環境下または地磁気よりも高い高磁場環境下にある場合には、ＭＲＡＭ２０のメモリセルは環境温度または環境磁場の影響を受け、情報保持エネルギを超えたエネルギをメモリセルが受ける可能性が高まる。つまり、データリテンションによるエラーが引き起こされる確率が高くなる。そのため、このような場合には、パトロールリードを頻繁に実施することが望まれる。一方、メモリシステム１０が室温程度または室温以下の環境下または地磁気と同程度の磁場環境下にある場合には、ＭＲＡＭ２０のメモリセルは環境温度または環境磁場の影響を受け難い。つまり、データリテンションによるエラーが引き起こされる確率が相対的に低くなる。そのため、このような場合には、パトロールリードの実施時間間隔が短くされてもよい。また、書き込み／消去回数が多くなると、データリテンションによるエラーが引き起こされる確率が高くなるので、書き込み／消去回数が少ない場合に比してパトロールリード実施時間間隔を短くする方が望ましい。
【００１５】
図３は、実施形態による温度、磁場の強さおよび書き込み／消去回数によるパトロールリード実施時間間隔の概要を示す図である。この図で、横軸は、書き込み／消去回数を示し、縦軸は、パトロールリード実施時間間隔を示している。図３では、一例として、低温で低磁場の場合、常温で中磁場の場合、および高温で高磁場の場合を示している。常温は室温（約２５℃）近辺の温度範囲であり、低温は常温よりも低い温度範囲であり、例えば０℃から２５℃の温度範囲である。高温は常温よりも高い温度範囲であり、例えば６０℃を超える温度範囲である。また、地磁気と同程度の磁場の強さと、情報保持エネルギと同じエネルギをメモリセルに与えることができる磁場の強さと、の間を例えば３つの範囲に分割したときに、磁場の強さが強い方から順に、３分割したそれぞれの範囲が高磁場、中磁場および低磁場とされる。
【００１６】
書き込み／消去回数が少ないほど、パトロールリード実施時間間隔は長く、書き込み／消去回数が多いほど、パトロールリード実施時間間隔は短くされる。また、温度が高くなるほど、または磁場が強くなるほど、パトロールリード実施時間間隔は短くされる。
【００１７】
図４は、実施形態によるパトロールリード情報の一例を示す図である。パトロールリード情報は、温度、磁場の強さおよび書き込み／消去回数の組み合わせに応じて、パトロールリード実施時間間隔が規定されている。パトロールリード実施時間間隔は、図３に示した傾向にしたがって設定される。例えば、温度、磁場の強さおよび書き込み／消去回数の組み合わせごとにデータリテンションによるエラーが引き起こされる時間が実験によって求められ、求められた時間より短い時間がパトロールリード実施時間間隔として設定される。
【００１８】
温度センサ３０は、メモリシステム１０の温度を計測し、メモリコントローラ５０からの要求に応じて、計測した温度をメモリコントローラ５０に出力する。温度センサ３０として、測温抵抗体、サーミスタまたは熱電対などが用いられる。
【００１９】
磁気センサ４０は、メモリシステム１０が配置されている位置での磁場を計測し、メモリコントローラ５０からの要求に応じて、計測した磁場の強さをメモリコントローラ５０に出力する。磁気センサ４０として、ホール素子、磁気抵抗素子などが用いられる。
【００２０】
メモリコントローラ５０は、ホストからの書き込みコマンド（書き込みの要求）に基づいてＭＲＡＭ２０を制御してデータを書き込ませる。また、ホストからの読み出しコマンド（読み出しの要求）に基づいてＭＲＡＭ２０を制御してデータを読み出させる。メモリコントローラ５０は、ホストＩ／Ｆ（ホストインタフェース）５１、制御部５２、ＲＡＭ（Random  Access  Memory）５３、入力Ｉ／Ｆ（入力インタフェース）５４，５５およびメモリＩ／Ｆ（メモリインタフェース）５６を備える。ホストＩ／Ｆ５１、制御部５２、ＲＡＭ、入力Ｉ／Ｆ５４，５５およびメモリＩ／Ｆ５６は、内部バス５７で接続されている。
【００２１】
ホストＩ／Ｆ５１は、ホストとの間のインタフェース規格に沿った処理を実施し、ホストから受信した命令、ユーザデータなどを内部バス５７に出力する。また、ホストＩ／Ｆ５１は、ＭＲＡＭ２０から読み出されたユーザデータ、制御部５２からの応答などをホストへ送信する。
【００２２】
制御部５２は、メモリコントローラ５０の各構成要素を統括的に制御する機能部である。制御部５２は、ホストからホストＩ／Ｆ５１経由で命令（コマンド、要求）を受けた場合に、その命令に基づいて、メモリコントローラ５０の各構成要素の制御を行う。
【００２３】
例えば、制御部５２は、ホストからの命令（書き込みコマンド）に基づいてメモリＩ／Ｆ５６を制御し、データの書き込みをＭＲＡＭ２０へ指示する。また、制御部５２は、ホストからの命令（読み出しコマンド）に基づいてメモリＩ／Ｆ５６を制御し、データの読み出しをＭＲＡＭ２０へ指示する。
【００２４】
制御部５２は、ホストから書き込みの要求を受信した場合、ＲＡＭに蓄積されたユーザデータに対して、ＭＲＡＭ２０上の格納領域（メモリ領域）を決定する。すなわち、制御部５２は、ユーザデータの書き込み先を管理する。ホストから受信したユーザデータの論理アドレスと該ユーザデータが格納されるＭＲＡＭ２０上の格納領域を示す物理アドレスとの対応関係の一覧は管理情報の一例であるアドレス変換テーブルとして格納される。
【００２５】
また、制御部５２は、メモリシステム１０の起動時またはホストからアイドル状態への遷移の要求（アイドル要求）を受信した場合に、ＭＲＡＭ２０の書き込み／消去回数、温度および磁場の強さにしたがって、パトロールリードの実施の可否の判定を行う。制御部５２は、温度センサ３０および磁気センサ４０から入力Ｉ／Ｆ５４，５５を介して温度および磁場の強さを取得し、ＭＲＡＭ２０の管理エリア２２から書き込み／消去回数情報およびパトロールリード実施時刻情報を取得する。また、制御部５２は、温度、磁場の強さおよび書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔をパトロールリード情報から取得する。そして、制御部５２は、前回パトロールリードを実施した時刻からの経過時間が取得したパトロールリード実施時間間隔よりも大きい場合に、ＭＲＡＭ２０に対してパトロールリードを実施する。パトロールリードを実施した結果、ＭＲＡＭ２０のデータにエラーがある場合には、制御部５２は、誤り訂正処理を行った上で、別の位置に書き直すリフレッシュ処理を実行する。なお、経過時間がパトロールリード実施時間間隔よりも小さい場合、あるいはＭＲＡＭ２０のデータにエラーがない場合には、制御部５２は、別のバックグラウンド処理を実行する。
【００２６】
別のバックグラウンド処理として、ガベージコレクションまたはウェアレベリングなどが例示される。ガベージコレクションは、例えば、有効データおよび無効データが含まれている複数のアクティブブロックから有効データを集めて、別のブロックに書き直し、フリーブロックを確保して、使用可能なブロックを増加させる処理である。アクティブブロックは、有効データが記憶されているブロックである。フリーブロックは、有効データが記憶されていないブロックであり、消去した後、消去済みブロックとして再利用可能なブロックである。ウェアレベリングは、例えば、書き込み／消去回数が多いブロックに記憶されているデータと、書き込み／消去回数の少ないブロックに記憶されているデータとを入れ替えることで、ＭＲＡＭ２０のブロックの書き換え回数を平準化する処理である。
【００２７】
ＲＡＭ５３は、メモリコントローラ５０がホストから受信したユーザデータを、それがＭＲＡＭ２０へ記憶されるまで一時的に格納する。また、ＲＡＭ５３は、ＭＲＡＭ２０から読み出されたユーザデータを、それがホストＩ／Ｆ５１を介してホストへ送信されるまで一時的に格納する。さらに、ＲＡＭ５３は、制御部５２がパトロールリードの実施の可否の判定を行う際に、温度センサ３０および磁気センサ４０から出力された温度および磁場の強さを一時的に記憶する。ＲＡＭ５３は、例えば、ＳＲＡＭ（Static  RAM）またはＤＲＡＭ（Dynamic  RAM）などの汎用メモリである。
【００２８】
入力Ｉ／Ｆ５４，５５は、メモリコントローラ５０に接続される温度センサ３０および磁気センサ４０から入力されるアナログ信号をデジタル信号に変換し、内部バス５７に出力する。
【００２９】
メモリＩ／Ｆ５６は、制御部５２による制御の下、ＭＲＡＭ２０にデータ書き込みを指示する。また、メモリＩ／Ｆ５６は、制御部５２による制御の下、ＭＲＡＭ２０にデータの読み出しを指示する。
【００３０】
つぎに、このような構成のメモリシステム１０でのパトロールリードの実施についての制御方法について説明する。図５は、実施形態によるメモリシステムの制御方法の一例を示すフローチャートである。まず、メモリコントローラ５０は、メモリシステム１０の電源がオンにされたか、またはホストからアイドル要求を受信したかを判定する（ステップＳ１１）。電源がオンされた状態ではないかあるいはホストからアイドル要求を受信していない場合（ステップＳ１１でＮｏの場合）には、パトロールリードの実施に関する処理は行われず、処理が終了する。
【００３１】
一方、電源がオンされた場合、またはホストからアイドル要求を受信した場合（ステップＳ１１でＹｅｓの場合）には、メモリコントローラ５０は、温度センサ３０から温度を取得し、磁気センサ４０から磁場の強さを取得する（ステップＳ１２）。
【００３２】
また、メモリコントローラ５０は、ＭＲＡＭ２０の書き込み／消去回数情報から書き込み／消去回数を取得する（ステップＳ１３）。書き込み／消去回数情報は、例えばＭＲＡＭ２０のブロックごとの書き込み／消去回数を示す情報であるので、メモリコントローラ５０は、例えば書き込み／消去回数情報の平均値を算出し、この平均値をＭＲＡＭ２０の書き込み／消去回数とする。あるいは、書き込み／消去回数情報中の最頻値、中央値、最大値および最小値のいずれかをＭＲＡＭ２０の書き込み／消去回数としてもよい。なお、ブロックごとの書き込み／消去回数を平準化するウェアレベリングが実施される場合には、各ブロックの書き込み／消去回数は平均値に近い値となる。
【００３３】
また、メモリコントローラ５０は、ＭＲＡＭ２０のパトロールリード実施時刻情報から前回のパトロールリード実施時刻を取得する（ステップＳ１４）。ついで、メモリコントローラ５０は、取得した温度、磁場の強さおよび書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔を、パトロールリード情報から取得する（ステップＳ１５）。なお、ここで取得されるパトロールリード実施時間間隔は、図３および図４で示したように、温度、磁場の強さおよび書き込み／消去回数の組み合わせに応じて変わるものであり、毎回同じパトロールリード実施時間間隔となる訳ではない。
【００３４】
その後、メモリコントローラ５０は、前回のパトロールリードの実施からの経過時間は取得したパトロールリード実施時間間隔より大きいかを判定する（ステップＳ１６）。経過時間がパトロールリード実施時間間隔より小さい場合（ステップＳ１６でＮｏの場合）には、まだパトロールリードの実施をしなくてもよいので、メモリコントローラ５０は、別のバックグラウンド処理を実施する（ステップＳ１７）。別のバックグラウンド処理として、ガベージコレクションまたはウェアレベリングなどが挙げられる。そして、処理が終了する。
【００３５】
また、経過時間がパトロールリード実施時間間隔より大きい場合（ステップＳ１６でＹｅｓの場合）には、メモリコントローラ５０は、パトロールリードを実施する（ステップＳ１８）。パトロールリードは、ＭＲＡＭ２０に保存されたデータが正確に読み出せるかを判定する処理である。
【００３６】
パトロールリードの実施の結果、メモリコントローラ５０は、ＭＲＡＭ２０のデータにエラーがあるかを判定する（ステップＳ１９）。ＭＲＡＭ２０のデータにエラーがある場合（ステップＳ１９でＹｅｓの場合）には、メモリコントローラ５０は、リフレッシュ処理を実施する（ステップＳ２０）。リフレッシュ処理では、メモリコントローラ５０は、エラーのあるデータを誤り訂正処理によって訂正し、別の位置に書き直す。
【００３７】
ＭＲＡＭ２０のデータにエラーがない場合（ステップＳ１９でＮｏの場合）には、メモリコントローラ５０は、リフレッシュ処理を実施しない。その後、またはステップＳ２０の後、メモリコントローラ５０は、別のバックグラウンド処理を実施し（ステップＳ２１）、処理が終了する。
【００３８】
実施形態では、ＭＲＡＭ２０を記憶媒体としたメモリシステム１０に、温度センサ３０および磁気センサ４０が設けられる。また、メモリシステム１０の電源オン時またはアイドル要求受信時に、メモリコントローラ５０が、温度センサ３０および磁気センサ４０から温度および磁場の強さを取得し、また、ＭＲＡＭ２０の書き込み／消去回数と、前回のパトロールリード実施時刻と、を取得する。メモリコントローラ５０は、温度、磁場の強さおよび書き込み／消去回数の組み合わせに対応するパトロールリード実施時間間隔をパトロールリード情報から取得し、前回のパトロールリードの実施からの経過時間がパトロールリード実施時間間隔より大きいかを判定する。そして、メモリコントローラ５０は、経過時間がパトロールリード実施時間間隔より大きい場合にはパトロールリードを実施し、小さい場合に別のバックグラウンド処理を実施する。これによって、データリテンションによるエラーが発生しそうな温度環境または磁場環境、あるいは書き込み／消去回数である場合には、そうでない場合に比してパトロールリードの実施頻度が高められる。その結果、データリテンションによるエラーの発生によるデータの消失を低減することができるという効果を有する。また、パトロールリードの実施頻度を、メモリシステム１０の性能を低下させない程度に設定することで、データリテンションによるエラーの発生によるデータの消失を低減しながら、ホストからの要求による処理の遅延などを低減させることができる。
【００３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４０】
１０  メモリシステム、２０  ＭＲＡＭ、３０  温度センサ、４０  磁気センサ、５０  メモリコントローラ、５１  ホストＩ／Ｆ、５２  制御部、５３  ＲＡＭ、５４，５５  入力Ｉ／Ｆ、５６  メモリＩ／Ｆ、５７  内部バス。
【図１】
2020042890.tif 000003
【図２】
2020042890.tif 000004
【図３】
2020042890.tif 000005
【図４】
2020042890.tif 000006
【図５】
2020042890.tif 000007