JP2016206981A - メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム - Google Patents
メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム Download PDFInfo
- Publication number
- JP2016206981A JP2016206981A JP2015088510A JP2015088510A JP2016206981A JP 2016206981 A JP2016206981 A JP 2016206981A JP 2015088510 A JP2015088510 A JP 2015088510A JP 2015088510 A JP2015088510 A JP 2015088510A JP 2016206981 A JP2016206981 A JP 2016206981A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory device
- memory
- refresh
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
【課題】メモリコントローラ搭載型の不揮発性メモリデバイスにおいて、セルの書換回数の進行度合いに応じた適切なタイミングでデータのリフレッシュ処理を実行する。
【解決手段】データのリフレッシュ処理が必要な不揮発性のメモリデバイスの制御装置であって、前記メモリデバイスは、データの書き換えができる不揮発性のメモリ部と、前記メモリ部に対するデータの読み出し及び書き込みを制御するメモリコントローラと、前記メモリ部のセルの寿命状態を示す寿命情報を管理する寿命管理部と、を備え、前記制御装置は、前記メモリデバイスから前記寿命情報を取得し、取得した寿命情報に応じた前記リフレッシュ処理の実施時期を設定し、設定した実施時期が到来すると、前記リフレッシュ処理の実施を前記メモリデバイスに指示する、ことを特徴とする制御装置。
【選択図】図3
【解決手段】データのリフレッシュ処理が必要な不揮発性のメモリデバイスの制御装置であって、前記メモリデバイスは、データの書き換えができる不揮発性のメモリ部と、前記メモリ部に対するデータの読み出し及び書き込みを制御するメモリコントローラと、前記メモリ部のセルの寿命状態を示す寿命情報を管理する寿命管理部と、を備え、前記制御装置は、前記メモリデバイスから前記寿命情報を取得し、取得した寿命情報に応じた前記リフレッシュ処理の実施時期を設定し、設定した実施時期が到来すると、前記リフレッシュ処理の実施を前記メモリデバイスに指示する、ことを特徴とする制御装置。
【選択図】図3
Description
メモリコントローラを搭載した不揮発性メモリデバイス(eMMC(登録商標)、SSD、UFSなど)におけるデータリフレッシュの制御に関する。
デジタル電化製品は年々進化を続け、機能が増加している。そして、それに伴い、製品を動かすためのプログラムのデータ量も増大してきている。これまでこういったプログラムは、高い信頼性を特徴とするNOR型フラッシュメモリに格納されることが多かった。しかし、プログラムのデータ量が増大してきた昨今、NOR型フラッシュメモリで必要な容量を確保しようとすると、製品コストが増大してしまう。そこで、比較的安価なNAND型フラッシュメモリへの置き換えが進んでいるものの、信頼性の観点から問題があった。これは、NAND型フラッシュメモリのデータ保持特性、具体的には、書換回数の進行に伴って半導体セル(以下、単に「セル」と呼ぶ。)が劣化するという性質に起因している。
上記のような状況の中で、NAND型フラッシュメモリの集積化がより進み、更に安価に大容量を実現してきた。集積化が進むことで、上述した信頼性は悪化する傾向にあったが、それに関してはメモリコントローラからの様々な制御によって問題の顕在化が回避されている。具体的な制御内容としては、不良ブロックの管理、エラー訂正(ECC)、論理−物理アドレス変換を含んだ書換回数の平均化(ウェアレベリング)等が知られている。しかし、上記のようなメモリコントローラによる制御によっても、データの書換回数が進行することによるセルの劣化は避けられない。そのため、プログラムを長期間使用する際のデータ損失を回避するべく、セルに電荷を補充してデータ保持期間を延ばす処理(リフレッシュ処理)の定期的な実行が必須となるが、不必要なリフレッシュ処理は書換回数を増やすことになる。また、劣化度は使用頻度に拠るので、セルの劣化は一律ではなく動的に変化するものである。そこで、例えば、読み書き可能なデータ用ROMに対する書き込み回数をCPUでカウントし、カウント数に基づいてデータの再書き込み(上述のリフレッシュ処理に相当)の間隔を変更する技術が提案されている(特許文献1参照)。
上述のように、メモリコントローラからの制御によって不揮発性メモリのデータ保持特性の悪化を回避するための工夫がなされているが、その際には、ユーザーが制御を作り込む必要があった。こうした背景の中、このような制御を実行するメモリコントローラをIC内部に組み込むことでユーザーの負担を減らした、メモリコントローラ搭載型の不揮発性メモリデバイス(以下、「コントローラ搭載メモリ」と呼ぶ。)が登場してきている。そして、このようなコントローラ搭載メモリは、携帯電話やタブレットPCなどのモバイル機器をはじめ、家電、車載、エンターテインメント機器など様々なデジタル電化製品で使用されるようになっている。
上述したコントローラ搭載メモリにおいても、書き換えを繰り返し、長期の使用が想定される機器では、上述したセルの劣化に伴うデータ保持特性の悪化という問題が従来同様に発生する。また、メモリコントローラがIC内部に搭載されたことによって、データの書き換えは、書換対象のデータを特定するアドレス(IC外部からのアドレス信号) が内部で論理−物理アドレス変換されて行われる。そして、ウェアレベリングによってセルの書換回数は平均化されるため、セルの物理的な劣化と、IC外部からのコントローラ搭載メモリへのアクセス回数とが直接には結びつかないことになる。そのため、例えば特許文献1に記載の技術では、想定されたデータ保持期間に対して必要以上に短い間隔でリフレッシュ処理が実施され得ることになる。
本発明に係る制御装置は、不揮発性メモリデバイスの制御装置であって、前記メモリデバイスは、データの書き換えができる不揮発性のメモリ部と、前記メモリ部に対するデータの読み出し及び書き込みを制御するメモリコントローラと、前記メモリ部のセルの寿命状態を示す寿命情報を管理する寿命管理部と、を備え、前記制御装置は、前記メモリデバイスから前記寿命情報を取得し、前記セルに格納されたデータのリフレッシュ処理の実施時期を、取得した前記寿命情報に応じて設定し、設定した実施時期が到来すると、前記リフレッシュ処理の実施を前記メモリデバイスに指示する、ことを特徴とする制御装置。
本発明によれば、メモリコントローラ搭載型の不揮発性メモリデバイスにおいて、セルの書換回数の進行度合いに応じた適切なタイミングでデータのリフレッシュ処理を実行することができる。これにより、不要な書き換えを抑制でき、セルの劣化の進行を抑えることができる。
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
[実施例1]
図1は、本実施例に係る、メモリコントローラ搭載型の不揮発性メモリデバイスを制御するメモリ制御システムのハードウェア構成の一例を示す図である。メモリ制御システムは、不揮発性メモリデバイスを制御する制御装置としてのデータ処理装置100と、メモリコントローラを搭載した不揮発性メモリデバイスであるeMMC(embedded MultiMediaCard)110とで構成される。そして、データ処理装置100とeMMC110とは、バス120を介して相互に接続されている。なお、以下では、メモリコントローラを搭載した不揮発性メモリデバイスとして、専らeMMCを例に説明を行なうものとするが、当然のことながらeMMCは一例であってこれに限定されるものではない。例えば、SSDやUFSといった他の不揮発性メモリデバイスについても幅広く適用可能である。
図1は、本実施例に係る、メモリコントローラ搭載型の不揮発性メモリデバイスを制御するメモリ制御システムのハードウェア構成の一例を示す図である。メモリ制御システムは、不揮発性メモリデバイスを制御する制御装置としてのデータ処理装置100と、メモリコントローラを搭載した不揮発性メモリデバイスであるeMMC(embedded MultiMediaCard)110とで構成される。そして、データ処理装置100とeMMC110とは、バス120を介して相互に接続されている。なお、以下では、メモリコントローラを搭載した不揮発性メモリデバイスとして、専らeMMCを例に説明を行なうものとするが、当然のことながらeMMCは一例であってこれに限定されるものではない。例えば、SSDやUFSといった他の不揮発性メモリデバイスについても幅広く適用可能である。
データ処理装置100は、eMMC110にアクセスしてデータの読み出しや書き込みを行なう。データ処理装置100は、CPU101、RAM102、メモリホストI/F103、表示部I/F104、表示部105、操作部I/F106、操作部107、外部I/F108、RTC109で構成される。
CPU101は、データ処理装置100全体を制御する中央演算装置である。RAM102は、CPU101が動作するためのシステムワークメモリである。CPU101は、eMMC110からプログラムを取得してRAM102上に展開し、演算や各種制御などを行う。メモリホストI/F103は、CPU101の制御により、eMMC110とのデータの入出力を行うインタフェースである。表示部I/F104は、CPU101の制御により、表示部105へ表示信号を送付するインタフェースである。表示部105は、液晶パネルやLEDなどから成り、表示や点灯/点滅/消灯することで、ユーザーに情報を伝達する。操作部I/F106は、操作部107と接続しており、操作部107からの電気信号をCPU101に送付するインタフェースである。操作部107はタッチパネルやキーなどから成り、ユーザーの操作による情報をCPU101に伝達する。外部I/F108はUSB等のインタフェースにより、外部とのデータ入出力を行うことができるように構成されている。RTC109は、時間を管理するために搭載された現在時刻を刻み続けるための機能部である。システム本体の電源がOFFの状態でも動作するように電池でも駆動可能な構成をとる。これらのモジュールは、内部バスを介してCPU101と接続しており、CPU101の制御により、互いに連携して動作する。
eMMC110は、メモリI/F111、寿命管理部112、メモリコントローラ113、第1メモリ部114、第2メモリ部(冗長領域)115とで構成される。
メモリI/F111は、データ処理装置100との間でデータの入出力を行うインタフェースである。寿命管理部112は、eMMC110の寿命(データ保持可能期間を管理するモジュールであり、メモリコントローラ113が寿命確認コマンドを受け取ると、そのときのeMMC110のセルの寿命状態を表す指標のデータ(寿命情報)をレスポンスとして返す。メモリコントローラ113は、第1メモリ部114、冗長領域115、寿命管理部112と接続しており、受信した各種コマンドを解釈し、そのコマンドに応じた動作を行う。基本的なコマンドとしては、データの読み出しを指示する読出コマンド、データの書き込みを指示する書込コマンド、データの消去を指示する消去コマンドがあり、これらコマンドによって所定のアドレスのデータの読み書きや消去が実行される。第1メモリ部114は、データを記録する不揮発性のメモリ領域であり、複数のセルから構成されている。メモリコントローラ113からの制御により、第1メモリ部114内のセルに電荷を保持するか否かでデータを記録するようになっている。本実施例では、システムが動作するためのメインのプログラムは、この第1メモリ部1114に格納されている。第1メモリ部114内のセルは、データの読み書きや消去を繰り返すうちに劣化が進むため、寿命に到達したセルは不良セルとして未使用にし、冗長領域115のセルを代替して使用していく。このようなセルの劣化具合を示す情報として、書換回数や余剰ブロック数に関するデータが、寿命管理部112により寿命情報として管理される。寿命管理部112は、寿命確認コマンドを受け取ると、寿命情報として、セル毎の書換回数からみた寿命を評価する値や、冗長領域115の余剰ブロック数に応じた寿命を評価する値をレスポンスとして返す。まず、ウェアレベリングによってセル毎の書換回数は平均化されるため、セルの書き換え回数からみた寿命の評価値は、平均値で扱われる。本実施例では、寿命に到達したものとして想定している書換回数(寿命書換回数)に対しどの程度書き換えが行なわれたのかを示す値(書換回数の進行度合いを示す値)を、10%刻みで、セル毎の書換回数に応じた寿命の評価値として返すこととしている。以下、この10%刻みの値を「書換回数進行度」と呼ぶこととする。もちろん10%刻みは一例であり、5%刻みや20%刻みであってもよい。また、セルの書換回数からみたセルの寿命を評価可能な情報であればよいので、例えばセル毎の書換回数の値を平均した値そのものでもよいし、書換回数の進行度合いを例えば「レベル1〜5」といったように複数段階のレベルで表した値であってもよい。さらに、寿命管理部112は、書換回数が寿命書換回数に達した場合に、現在の書換回数がメモリデバイスの寿命を上回っていることを示すステータスを返す。寿命を上回ったことを示すステータスが返された以降は、保証外の実力(性能)で動作することになる。次に、冗長領域115の余剰ブロック数に応じた寿命を評価する値としては、例えば「0」又は「1」の2値で表されるフラグが考えられる。本実施例では、余剰ブロックの80%が代替として使用されるとWarningフラグを立て、余剰ブロックの100%が代替として使用されるとUrgentフラグを立てることとしている。Urgentフラグが立つと、eMMC110はそれ以降、データの書き込みや消去が出来ない状態となり、読み出しだけ可能となる。ホスト側であるデータ処理装置100は、上述した書換回数進行度の数値やフラグの有無によって、eMMC110の寿命が残りどれくらいなのかを知ることができる。
図2は、eMMC110内部のメモリ部(第1メモリ部114+冗長領域115)の寿命に関わる特性を示すグラフの一例である。このグラフでは、使用環境X℃の下におけるデータ保持可能期間と書換回数の関係が示されている。メモリ部のこのような特性は、その構造や使用する半導体プロセスなどの違いによりメーカー毎に異なる。図2のグラフでは、A社のeMMC製品の特性を破線で、B社のeMMC製品の特性を2点鎖線でそれぞれ示している。このグラフからは、A社製品の方がより長寿命であることが理解できる。ただし、使用する温度環境によってこの特性は変動し得る。そのため、後述するリフレッシュ処理の実施時期(=リフレッシュ処理の間隔)の設定においては、様々な評価指標の結果から、どのような特性を設定基準に使用するのかを選定する必要がある。
次に、本実施例に係る、eMMC110に対するリフレッシュ処理の制御について説明する。図3は、データ処理装置100におけるリフレッシュ処理の制御の流れを示すフローチャートである。この一連の処理は、CPU101が、eMMC110に格納されているプログラムをRAM102にロードし、実行することで実現される。
ステップ301では、メモリ制御システムの電源が入った現在時刻のデータがRTC109から取得される。取得された現在時刻データは、システムへの電源ONの日時を示すパラメータ「電源ON日時」として、RAM102上に保持される。図4は、本制御処理で使用される各種パラメータとそのデータ内容をまとめたテーブルの一例である。図4のテーブルにおいて、列410と列420は、起動後初めてのリフレッシュ処理を挟んだ前後のデータ内容をそれぞれ示している。いま、現在時刻データとして取得されたデータ“2014/10/23/9:13:30”が、パラメータ「電源ON日時」として設定・保持されている。
ステップ302では、システムに電源が入って始めての起動(当該電源ON後にリフレッシュ処理が1度も実行されていない状態での起動)であるかどうかが判定される。起動が初回のものかどうかは、リフレッシュ処理を実施した直近の日時を示すパラメータ「前回リフレッシュ実施日時」にデータが設定・保持されているかどうかで判別される。「前回リフレッシュ実施日時」にデータが設定されていない場合は、初回の起動と判定されて、ステップ303へ進むことになる。一方、「前回リフレッシュ実施日時」にデータが設定されている場合は、初回の起動ではないと判定されて、ステップ304へ進む。
ステップ303では、ステップ301で取得し「電源ON日時」として設定・保持された現在時刻のデータが、パラメータ「前回リフレッシュ実施日時」の内容として設定され、RAM102上に保持される。図4に示すテーブルの列410には、本ステップの結果として、「電源ON日時」に設定されたデータ内容と同じ“2014/10/23/9:13:30”が、「前回リフレッシュ実施日時」のデータとして設定されている。
ステップ304では、リフレッシュ処理が実施された直近の日時を表すことになる、後述のパラメータ「リフレッシュ実施日時」のデータが、「前回リフレッシュ実施日時」の内容として設定され、RAM102上に保持される。本ステップの具体例については後述する。
ステップ305では、セルの書換回数に応じた寿命の評価値である上述のパラメータ「書換回数進行度」に設定されたデータが更新される。具体的には、まず、CPU101によって寿命確認コマンドがメモリホストI/F103を介してeMMC110に送信される。寿命確認コマンドを受け取ったeMMC110では、メモリコントローラ113が寿命管理部112に管理されている「書換回数進行度」のデータ(数値)をレスポンスする。レスポンスを受け取ったCPU101は、その数値で現在の「書換回数進行度」の数値を更新する。列410に示すリフレッシュ処理実行前の段階では、寿命の評価値として“10〜20%”が、パラメータ「書換回数進行度」に設定・保持されている。
ステップ306では、「書換回数進行度」のデータを定期的に更新するために必要となる、次に寿命確認コマンドを送信するタイミングが、パラメータ「書換回数進行度の次回確認日時」として設定される。セルの書換回数は、eMMC110に定期的にアクセスするような使用態様であれば、時間の経過と共に増加していくものである。本実施例は、そのような使用態様を想定した時の、セルの劣化が進むのに合わせて変化するデータ保持可能期間に追従してデータ損失を救うことを念頭に置いている。そのため、寿命管理部112で管理されるセルの劣化具合を示す情報の更新が必要となる。そこで、プログラム上で、予め次回の更新日時を「書換回数進行度の次回確認日時」として設定することとしている。具体的には、予め定めた任意の更新期間(例えば30日)に基づいて、「前回リフレッシュ実施日時」の内容に30日を加算した内容が「書換回数進行度の次回確認日時」として設定・保持される。例えば、列410に示すリフレッシュ処理実行前の段階では、「前回リフレッシュ実施日時」の設定内容である“2014/10/23/9:13:30”に30日を加算した“2014/11/22/9:13:30”が、「書換回数進行度の次回確認日時」の内容として設定・保持されている。
ステップ307では、ステップ305で更新された「書換回数進行度」の内容に応じた日時が、次にリフレッシュ処理を実施する時期を示すパラメータ「リフレッシュ実施日時」として設定される。具体的には、書換回数進行度とメモリデバイス毎(ここではメーカー毎)のデータリフレッシュ期間とを対応付けたLUTを参照して、次回のリフレッシュ処理の実施タイミングが決定され、設定・保持される。ここで、データリフレッシュ期間は、セルの電位がeMMC110のメモリ部に格納されるデータを正常に判別するための閾値となる電位を割らないようにするために要求される、リフレッシュ処理の頻度を示す期間である。このデータリフレッシュ期間は、書換回数の進行度合いに応じて変化する。図5は、書換回数進行度とメモリデバイス毎(メーカー毎)のデータリフレッシュ期間とを対応付けたLUTの一例を示している。図5に示すLUTの例では、10%刻みの書換回数進行度に対応するデータリフレッシュ期間が、A社製eMMCとB社製eMMCのそれぞれについて規定されている。このようなLUTを予め作成しておくことになるが、その際、データリフレッシュ期間の値は、書換回数に対応するデータ保持可能期間を上回らない値にすることが必要である。例えば、データ保持可能期間に80%を乗じた期間にするなどマージン持たせることが望ましい。このLUTは、eMMC110に格納・保持され、本ステップにおいて参照される。どのメモリデバイスのデータリフレッシュ期間を参照するかは、eMMC110がユニークに持つデバイスIDによって特定される。このデバイスIDは、パラメータ「搭載デバイスID」としてRAM102上に保持される(図4のテーブルを参照)。なお、デバイスIDは、システムに電源が入ってプログラムが展開される時にRAM102に保持されるようにしてもよいし、本ステップに処理が進んだ時点でCPU101がホストI/F103を介してeMMC110にアクセスして取得するようにしてもよい。そして、図5に示したようなLUTを参照し、「搭載デバイスID」に設定されたデバイスIDに対応したデータリフレッシュ期間が、書換回数進行度の数値に応じて決定される。例えば、「書換回数進行度」の数値が“10〜20%”で、「搭載デバイスID」の内容がB社のメモリデバイスを識別するものであったとする。この場合の書換回数進行度に応じたデータリフレッシュ期間は、図5のLUTより“5ヶ月”となる。その結果、「前回リフレッシュ実施日時」の内容“2014/10/23/9:13:30”に“5ヶ月”を加算した“2015/3/23/9:13:30”が「リフレッシュ実施日時」の内容として設定・保持されることになる(図4のテーブルの列410を参照)。
ステップ308では、ステップ307で設定されたリフレッシュ処理の実施時期が到来しているかどうかが判定される。具体的には、例えばRTC109への定期的なポーリングで現在の時刻データを取得し、取得した時刻データで特定される日時が、「リフレッシュ実施日時」に設定されている日時に到達しているかによって判定される。また、RTC109にタイマー機能がある構成であれば、「リフレッシュ実施日時」に設定された日時をRTC109に設定し、当該設定日時になった際のCPU101へのプッシュ通知を受けることで到達を判別するようにしてもよい。「リフレッシュ実施日時」に到達したかどうかを判別できればよく、その手法は限定されない。現在日時が「リフレッシュ実施日時」の設定日時(列410に示すリフレッシュ処理実行前の段階では“2015/3/23/9:13:30”)に到達していると判定された場合は、ステップ309に進む。一方、現在日時が「リフレッシュ実施日時」の設定日時に到達していないと判定された場合は、ステップ310に進む。
ステップ309では、所定のリフレッシュ処理の実行がeMMC110に指示される。具体的なリフレッシュ処理の内容については後述する。リフレッシュ処理の終了後はステップ304へ戻り、現時点での「リフレッシュ実施日時」のデータ(ここでは“2015/3/23/9:13:30”)が、「前回リフレッシュ実施日時」の内容として設定・保持されることになる(リフレッシュ処理実行後のデータ内容を示す列420を参照)。そして、続くステップ305では「書換回数進行度」のデータが更新される(ここでは“70〜80%”に更新されている。列420を参照。)。さらに、続くステップ306では新たな「書換回数進行度の次回確認日時」が設定されることになるが、図4の例(列420)ではデータ内容がブランクになっている。これは、以下のような理由による。
まず、現時点の「前回リフレッシュ実施日時」の内容“2015/3/23/9:13:30”に30日を加算すると“2015/4/22/9:13:30”となり、問題がなければこれが新たな「書換回数進行度の次回確認日時」として設定されることになる。一方で、現時点の「書換回数進行度」である“70〜80%”に対応するデータリフレッシュ期間は“20日”である(図5のLUTを参照)。したがって、現時点の「前回リフレッシュ実施日時」の内容“2015/3/23/9:13:30”に20日を加算した“2015/4/12/9:13:30”が、次の「リフレッシュ実施日時」として設定される(ステップ307)。つまり、このケースでは新たな「書換回数進行度の次回確認日時」よりも先に、次回の「リフレッシュ実施日時」が到来することになって、書換回数進行度の確認が無意味となる。したがって、次の「書換回数進行度の次回確認日時」よりも先に、次の「リフレッシュ実施日時」が到来することになる場合には、新たな「書換回数進行度の次回確認日時」の設定は行なわない。或いは設定自体は行なってもよいが無視される。
ステップ310では、現在の日時が、ステップ307で設定された「書換回数進行度の次回確認日時」に到達しているかどうかが判定される。判定の手法は、ステップ308と同様なので説明を割愛する。現在日時が「書換回数進行度の次回確認日時」の設定日時に到達していると判定された場合はステップ305へ戻り、「書換回数進行度」及び「書換回数進行度の次回確認日時」の内容を更新し、必要に応じて新たな「リフレッシュ実施日時」を設定する。一方、現在日時が「書換回数進行度の次回確認日時」の設定日時に到達していないと判定された場合は、ステップ311に進む。
ステップ311では、所定のイベントがあったかどうかが判定される。ここで、所定のイベントとは、eMMC110へのアクセスで、書換回数が所定回数を超えて大量に進行するようなイベントを指す。例えば、ファームウェアのアップデートといった大容量データの更新や、一度にデータの書き換えが100回以上行われた場合などがこれに該当し得る。このような特定のイベントを予め設定しておき、本ステップで所定のイベントの実行の有無が判定される。所定のイベントが実行されていた場合は、ステップ305へ戻り、それ以降の処理が繰り返される。一方、所定のイベントが実行されていない場合は、ステップ308へ戻って、リフレッシュ処理の実施時期の到来のチェックが繰り返される。
以上が、データ処理装置100で実行されるリフレッシュ処理の制御の内容である。このような制御を行うことでコントローラ搭載型の不揮発性メモリデバイスにおいて、適切なタイミングでデータリフレッシュを実行することが可能となる。
次に、上述のステップ309におけるデータリフレッシュ処理の詳細について説明する。前述のとおり、リフレッシュ処理はデータ保持可能期間を延長させる処理であり、その中身は“0”又は“1”のデータを正常に判別することができるよう、セルにチャージされた電荷をチャージし直すことである。本実施例に係るeMMCのような不揮発性メモリデバイスでは、わずかではあるが自然放電により電荷が抜ける。そして、メモリの使用頻度が多いほど(書き換えを繰り返すほど)、この自然放電による電荷の抜けは悪化、すなわち、より短期間で電荷が抜けてしまう。そして、自然放電によって電荷のチャージレベルが、上述のデータ判別のための閾値を割ってしまうとデータ損失となってしまう。このような事態を回避するためのセルに電荷を補充する処理が本明細書で言うリフレッシュ処理である。一般的なリフレッシュ処理では、セルに同じデータを書き込むことがなされる。本実施例が前提とするメモリコントローラ搭載型の不揮発性メモリデバイスの場合は、メモリコントローラ113の処理、或いはCPU101のメモリホストI/F103を介したアクセスによってその内容が変わってくる。以下では、リフレッシュ処理のパターンを分けて説明する。
<パターン1>
まず、データ処理装置100のCPU101が、eMMC110に対しデータの読み出し指示を行うことで、メモリコントローラ113がアクセスしたセルへの電荷をチャージし直す方法が考えられる。これは、データの読み出し指示を受けたメモリコントローラ113が必要に応じて行なう、アクセス先となるセルの移し変えに伴う実質的なリライト処理によって電荷の補充を実現するものである。この際、例えば重要度を決めて読み出す領域を限定したり、分割して全部の領域を読み出すといった方法が考えられる。
まず、データ処理装置100のCPU101が、eMMC110に対しデータの読み出し指示を行うことで、メモリコントローラ113がアクセスしたセルへの電荷をチャージし直す方法が考えられる。これは、データの読み出し指示を受けたメモリコントローラ113が必要に応じて行なう、アクセス先となるセルの移し変えに伴う実質的なリライト処理によって電荷の補充を実現するものである。この際、例えば重要度を決めて読み出す領域を限定したり、分割して全部の領域を読み出すといった方法が考えられる。
<パターン2>
次に、データ処理装置100のCPU101が、eMMC110に対し再度同じデータの書き込み指示を行うことで、メモリコントローラ113がアクセスしたセルへの電荷をチャージし直す方法が考えられる。通常、再度同じデータを書き込む場合は、RAM102上に展開されたデータを用いて書き直すことがなされる。この場合、同じデータの書き込みが行えるかどうかは、データ処理装置100のRAM102の容量にもよる。また、プログラムとして参照されないデータの場合は、eMMC110に格納されたままでRAM102に展開されていない場合もある。この場合は未展開のデータを一度RAM102に読み出して展開し、再度書き戻すことで実現される。
次に、データ処理装置100のCPU101が、eMMC110に対し再度同じデータの書き込み指示を行うことで、メモリコントローラ113がアクセスしたセルへの電荷をチャージし直す方法が考えられる。通常、再度同じデータを書き込む場合は、RAM102上に展開されたデータを用いて書き直すことがなされる。この場合、同じデータの書き込みが行えるかどうかは、データ処理装置100のRAM102の容量にもよる。また、プログラムとして参照されないデータの場合は、eMMC110に格納されたままでRAM102に展開されていない場合もある。この場合は未展開のデータを一度RAM102に読み出して展開し、再度書き戻すことで実現される。
<パターン3>
次に、eMMC110に対しデータの読み出しを行った上で、読み出したデータが何らかの原因で本来あるべきデータと違ってしまっている可能性が高い場合に、RAM102上に展開されている正しいデータを書き戻す方法が考えられる。図6は、このパターン3におけるリフッレシュ処理の詳細を示すフローチャートである。
次に、eMMC110に対しデータの読み出しを行った上で、読み出したデータが何らかの原因で本来あるべきデータと違ってしまっている可能性が高い場合に、RAM102上に展開されている正しいデータを書き戻す方法が考えられる。図6は、このパターン3におけるリフッレシュ処理の詳細を示すフローチャートである。
ステップ601では、CPU101がeMMC110に対し読み出し指示を行い、リフレッシュ処理の対象となるデータが読み出される。この際の読み出し対象は、パターン1と同様、重要度を決めて読み出す領域を限定してもよいし、分割して全部の領域を読み出してもよい。
ステップ602では、読み出したデータとRAM102上に展開されたプログラムデータとの比較がなされる。具体的には、チェックサムなどの誤り検出符号を用い、読み出しデータとRAM102上の展開データとの間に不一致があるかどうかが判別される。両データの比較のための十分な領域があれば、データの全領域についてチェックを行なってもよい。どのような方法によって読み出しデータとRAM102上の展開データとの比較を行なうかは任意であり、システムを構成する記憶装置の容量や性能に応じて最適な比較方法を選択すればよい。
ステップ603では、ステップ602の比較によって両データの間に不一致があったかどうかが判定される。不一致がなかった場合は、本処理を抜ける。一方、不一致があった場合は、ステップ604へ進む。
ステップ604では、データの不一致があった領域におけるデータの書き戻しが実行される。この書き戻しの方法も任意であり、システムを構成する記憶装置の容量や性能に応じて最適な書き戻し方法を選択すればよい。
以上のとおり本実施例によれば、メモリコントローラ搭載型の不揮発性メモリデバイスにおいて、セルの書換回数の進行度合いに応じた適切なタイミングでリフレッシュ処理を実行することができる。これにより不要な書き換えが抑制され、セルの劣化の進行が抑えられる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (10)
- 不揮発性メモリデバイスの制御装置であって、
前記メモリデバイスは、
データの書き換えができる不揮発性のメモリ部と、
前記メモリ部に対するデータの読み出し及び書き込みを制御するメモリコントローラと、
前記メモリ部のセルの寿命状態を示す寿命情報を管理する寿命管理部と、
を備え、
前記制御装置は、
前記メモリデバイスから前記寿命情報を取得し、前記セルに格納されたデータのリフレッシュ処理の実施時期を、取得した前記寿命情報に応じて設定し、設定した実施時期が到来すると、前記リフレッシュ処理の実施を前記メモリデバイスに指示する、
ことを特徴とする制御装置。 - 前記制御装置は、直近の前記リフレッシュ処理を実施した時期に所定の期間を加算することにより、前記寿命情報を取得するタイミングを決定することを特徴とする請求項1に記載の制御装置。
- 前記制御装置は、前記書き換えの回数が所定回数を超えるようなイベントが実行された場合、前記決定されたタイミングに関わらず前記寿命情報を取得し、取得した寿命情報に応じた前記リフレッシュ処理の実施時期を設定することを特徴とする請求項2に記載の制御装置。
- 前記寿命情報は、前記書き換えの回数の進行度合いを示す値であり、
前記制御装置は、前記メモリ部に格納されるデータを正常に判別するための閾値となる電位を割らないようにするために要求されるデータリフレッシュ期間と前記書き換えの回数の進行度合いとを対応付けたLUTを参照し、取得した前記進行度合いを示す値に応じた前記データリフレッシュ期間を、直近の前記リフレッシュ処理を実施した時期に加算することにより、前記リフレッシュ処理の実施時期を設定することを特徴とする請求項1乃至3のいずれか1項に記載の制御装置。 - 前記LUTは、特性の異なるメモリデバイス毎に作成され、
前記制御装置は、前記メモリデバイスを識別するデバイスIDを用いて、当該デバイスIDによって特定されるメモリデバイスについての前記リフッレシュ処理の時期を設定する請求項4に記載の制御装置。 - 前記LUTに規定される前記書き換え回数の進行度合いと対応付けられる前記データリフレッシュ期間は、前記メモリデバイスが有する前記メモリ部の書き換え回数に対応するデータ保持可能期間を上回らないことを特徴とする請求項4又は5に記載の制御装置。
- 前記書き換えの回数の進行度合いを示す値は、前記メモリ部の各セルにおける書き換え回数の平均値であることを特徴とする請求項4乃至6のいずれか1項に記載の制御装置。
- 請求項1乃至7のいずれか1項に記載の制御装置と、前記メモリデバイスとで構成される、不揮発性のメモリデバイスの制御システム。
- 不揮発性のメモリデバイスにおけるデータのリフレッシュ処理の制御方法であって、
前記メモリデバイスは、
データの書き換えができる不揮発性のメモリ部と、
前記メモリ部に対するデータの読み出し及び書き込みを制御するメモリコントローラと、
前記メモリ部のセルの寿命状態を示す寿命情報を管理する寿命管理部と、
を備え、
前記メモリデバイスから前記寿命情報を取得するステップと、
取得した寿命情報に応じた前記リフレッシュ処理の実施時期を設定するステップと、
設定した実施時期が到来すると、前記リフレッシュ処理の実施を前記メモリデバイスに指示するステップと、
を含むことを特徴とする制御方法。 - コンピュータを、請求項1乃至7のいずれか1項に記載の制御装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015088510A JP2016206981A (ja) | 2015-04-23 | 2015-04-23 | メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015088510A JP2016206981A (ja) | 2015-04-23 | 2015-04-23 | メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016206981A true JP2016206981A (ja) | 2016-12-08 |
Family
ID=57487246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015088510A Pending JP2016206981A (ja) | 2015-04-23 | 2015-04-23 | メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016206981A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11216336B2 (en) | 2017-05-30 | 2022-01-04 | Hitachi, Ltd. | Storage apparatus and memory device control method |
-
2015
- 2015-04-23 JP JP2015088510A patent/JP2016206981A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11216336B2 (en) | 2017-05-30 | 2022-01-04 | Hitachi, Ltd. | Storage apparatus and memory device control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795027B (zh) | 固态存储设备及包括该固态存储设备的电子系统 | |
US8775874B2 (en) | Data protection method, and memory controller and memory storage device using the same | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US8452913B2 (en) | Semiconductor memory device and method of processing data for erase operation of semiconductor memory device | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US10503606B2 (en) | Data backup method, data recovery method and storage controller | |
TWI428739B (zh) | 記憶卡之壽命終點恢復及尺寸重整 | |
US8402204B2 (en) | Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same | |
KR20090131285A (ko) | 반도체 기억 장치 | |
KR20100133710A (ko) | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 | |
EP3262508B1 (en) | Patrol scrub periods based on power status | |
US20180074751A1 (en) | Data transmission method, memory storage device and memory control circuit unit | |
US20200089410A1 (en) | Apparatus and method for retaining firmware in memory system | |
KR102179829B1 (ko) | 런 타임 배드 셀을 관리하는 스토리지 시스템 | |
CN113886133B (zh) | 接收终端、通信系统和计算机可读介质 | |
CN103164342A (zh) | 数据可用性的挂载时协调 | |
US10254979B1 (en) | Relocating or aborting a block of data by a host, based on media policies managed by a storage device | |
US11733883B2 (en) | Storage device initiating maintenance operation actively without instruction of host and electronic system including the same | |
JP5981906B2 (ja) | 画像形成装置 | |
JP2020144974A (ja) | メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ | |
JP2014167809A (ja) | 情報処理装置 | |
US10650879B2 (en) | Device and method for controlling refresh cycles of non-volatile memories | |
JP2016206981A (ja) | メモリコントローラ搭載型不揮発性メモリデバイスの制御装置、制御方法及びプログラム | |
US10019162B2 (en) | Storage device managing nonvolatile memory differently depending on tendency of interruption of power supply | |
JP2008225922A (ja) | 不揮発性記憶装置 |