JP2010015477A - フラッシュメモリ制御装置及びフラッシュメモリ制御方法 - Google Patents

フラッシュメモリ制御装置及びフラッシュメモリ制御方法 Download PDF

Info

Publication number
JP2010015477A
JP2010015477A JP2008176479A JP2008176479A JP2010015477A JP 2010015477 A JP2010015477 A JP 2010015477A JP 2008176479 A JP2008176479 A JP 2008176479A JP 2008176479 A JP2008176479 A JP 2008176479A JP 2010015477 A JP2010015477 A JP 2010015477A
Authority
JP
Japan
Prior art keywords
refresh
flash memory
nand flash
blocks
block
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
Application number
JP2008176479A
Other languages
English (en)
Inventor
Yasutsugu Mihara
康嗣 三原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2008176479A priority Critical patent/JP2010015477A/ja
Publication of JP2010015477A publication Critical patent/JP2010015477A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】フラッシュメモリのエラー箇所の累積を回避するフラッシュメモリ制御装置を提供する。
【解決手段】フラッシュメモリ制御装置は、複数のブロックから構成される書き換え可能なNANDフラッシュメモリ210と、所定のタイミングで、NANDフラッシュメモリ210の複数のブロックのうち全ブロック数より少ない任意の数のブロックをリフレッシュし、所定のタイミングの度に、前回とは異なるブロックをリフレッシュするNANDフラッシュコントローラ110と、を備える。
【選択図】図1

Description

フラッシュメモリを制御する装置及び装置に関し、特に、NAND(Not AND)フラッシュメモリを制御する装置及び方法に関する。
フラッシュメモリは、読み出しを繰り返す回数が多くなると、フローティングゲートに蓄積された電荷が徐々に放出される。このため、フラッシュメモリのデータエラー(リードディスターブ)が発生することが知られている。例えば、組み込みシステムのプログラムやイメージデータ等が格納されているNANDフラッシュメモリを有するフラッシュメモリ制御装置がある。このようなフラッシュメモリ制御装置において、フラッシュメモリに格納されているデータの読み出しを頻繁に行うシステムの場合、時間経過と共に、データエラーの発生確率が増加する。
フラッシュメモリ制御装置は、発生したエラーをECC(Error Check and Correct)により訂正して使用する機能を有する。発生したエラーがECCによる訂正で修復可能なものであれば、装置内の動作として支障は無い。しかし、NANDフラッシュメモリ内のデータを訂正した後書き換えしているわけではない。このため、そのままではエラーが累積して訂正可能な範囲を超えてしまい、エラーが訂正できなくなってしまうという問題があった。
図9は従来のNANDフラッシュメモリ制御装置の構成例を示すブロック図である。図9に示すNANDフラッシュメモリ制御装置は、NANDフラッシュコントローラ190とNANDフラッシュメモリ290とを備える。NANDフラッシュコントローラ190は、ホストシステムインタフェース191を介してホストシステム390と接続し、NANDフラッシュメモリインタフェースを介してNANDフラッシュメモリ290へアクセスする。また、NANDフラッシュコントローラ190は、NANDフラッシュコントローラ190の全体を制御する全体制御部(CPU)193、全体制御部193が動作するためのプログラムを格納しておくROM(Read Only Memory)194、NANDフラッシュメモリ290のデータのエラー検出と訂正を実行するECC回路195、全体制御部193が処理する際に使用するメモリ(RAM:Random Access Memory)126、及び、NANDフラッシュへの書き込みデータおよび読み出しデータを格納しておくデータバッファ197を備える。
NANDフラッシュメモリ290は、ブロック群291を備える。図9では、ブロック群291は、Block#0からBlock#nで構成されている例を示している。
ホストシステム390は、NANDフラッシュメモリ290に書き込まれたデータを使って、各種処理を実行するシステムである。なお、図9において、通常用いられている論理アドレスと物理アドレスの対応を管理しているブロック対応管理表等のアドレス管理に関係する部分に関しては省略している。
次に動作を説明する。図10は、読み出し処理を示すフローチャートである。図11は、オートリカバリ時の読み出し処理を示すフローチャートである。図10に示すように、NANDフラッシュコントローラ190は、ホストシステム390からNANDフラッシュメモリ290へのアクセスコマンドを受け付け、NANDフラッシュメモリ290からデータを読み出す(S91)。ECC195は、読み出したデータをチェックし、エラーの有無を検出する(S92)。エラーが無ければ(S92でNo)、読み出したデータは、ホストシステム390へ送られる(S94)。エラーがある場合(S92でYes)、ECC195は、エラーを訂正する(S93)、訂正されたデータがホストシステムに転送される(S94)。
NANDフラッシュメモリ290への読み出しを多数繰り返した場合、NANDフラッシュメモリ内のフローティングゲートの電荷のリークによりビットエラーが生じる。ECC195は、このようにして生じたエラーを検出し、ホストシステム390へ渡す前に、エラーデータを訂正して正しいデータに戻す。
また、図11を用いて、別のデータの流れを説明する。図10と同じステップ番号の動作は同様である。図11では、ECC195がエラーを検出した場合(S92でYes)の処理が異なる。具体的には、ECC195は、エラーデータを訂正して正しいデータに戻して(S93)、NANDフラッシュメモリ290の該当Blockをリカバリ(別のBlockへコピー)する(S95)。
図10、図11に示すように、NANDフラッシュメモリ290から読み出したデータにエラーを検出した場合、エラーを訂正して読み出したデータをホストシステム390に転送していた、あるいは、エラーを訂正し、エラーブロックを他のブロックにコピーしてホストシステム390に読み出したデータを転送していた。
NANDフラッシュメモリのコントローラについて、例えば、特許文献1には、シーケンシャルROMインタフェース対応NAND型フラッシュメモリーデバイスおよびそのコントローラが開示されている。また、非特許文献1には、商品化されたNAND型フラッシュメモリコントローラLSIが紹介されている。
さらに、関連する技術として、特許文献2には、消去ブロック毎にブロックを再構築した日付(年月)を格納する領域を有し、直近の再構築日付から一定の期間が経過したブロックを、再構築の対象とする技術が開示されている。この技術ではリフレッシュを日付で管理する必要があった。特許文献3には、NAND型フラッシュメモリにおいて、ページ単位でデータ書き換え回数を管理し、1つのブロック内の各ページのデータ書き換え回数が所定の条件を満たした時に、その1つのブロックについてリフレッシュ動作を行うという技術が開示されている。この技術では、読み出しが多く書き込みが少ないシステムでは、読み出しにおいてエラーが発生しても所定の条件を満たさない場合、リフレッシュを行うことができなかった。
また、特許文献4には、マイクロコンピュータが起動する際、通常の制御動作を行っている際、固定周期の割り込みプログラムによって行われる際、の少なくとも一つの場合に、フラッシュROM(フラッシュメモリ)データのサムチェックを行ってフラッシュROMデータの異常箇所を割り出し、異常箇所を正常データに書き換える技術が開示されている。この技術は、マイクロコンピュータ内蔵のフラッシュROMに関する技術であり、図9の示すNANDフラッシュメモリとは、想定されるエラーの発生状況が異なり、リフレッシュの必要性が異なるものであった。特許文献5には、メモリトランジスタの閾値変化による保持データ状態遷移によってエラーが生じる前に再書込み(リフレッシュ)し、あるいはエラー訂正可能なエラーの発生範囲内で、保持データを正しいデータに復元した後再書込みを行う技術が開示されている。この技術では、不揮発性半導体メモリのデータ読み出し回数が基準値を超えた場合に保持データのエラー訂正及び再書込みを行うものであり、読み出し回数を計数する必要があった。
特開2007−048090号公報 特開2002−318729号公報 特開2004−240572号公報 特開2006−079229号公報 特開平8−279295号公報 NAND型フラッシュメモリコントローラLSIを商品化、[online]、[平成20年6月13日検索]、インターネット<URL:http://www.tdk.co.jp/tjaah01/aah68200.htm>
図9から図11に示したフラッシュメモリ制御装置は、NANDフラッシュメモリ内のデータを読み出したとき、訂正可能なエラーを検出すると、ホストシステムへデータを渡す際に、該データに対するエラー訂正処理を行っていた(図10)。このようなエラー訂正処理ではNANDフラッシュメモリ内のデータ自体にはエラー訂正が行われず、その状態は変わらない。従って、該データの読み出しが数回重なると、フローティングゲートに対するストレス(電荷のリーク)が累積して行き、エラー箇所が増加することとなる。ひいてはエラー箇所の増加により、ECCのエラー訂正能力を超えてしまい、エラー訂正処理を正しく行えなくなってしまうという問題があった。
このような問題を回避すべく、フローティングゲートへのストレスの累積を解除することが望まれている。
本発明に係るフラッシュメモリ制御装置の一態様は、複数のブロックから構成される書き換え可能なフラッシュメモリと、所定のタイミングで、前記複数のブロックのうち全ブロック数より少ない任意の数のブロックをリフレッシュし、前記所定のタイミングの度に、前回とは異なるブロックをリフレッシュするコントローラと、を備える。コントローラが所定のタイミングでリフレッシュを繰り返すことにより、フラッシュメモリのブロックが順番にリフレッシュされる。これにより、フラッシュメモリのエラー箇所の累積を防止し、エラーの発生を抑制する。
また、本発明に係るフラッシュメモリ制御方法の一態様は、複数のブロックから構成される書き換え可能なフラッシュメモリを制御するフラッシュメモリ制御方法であって、所定のタイミングで、前記複数のブロックのうち全ブロック数より少ない任意の数のブロックについてリフレッシュし、前記所定のタイミングの度に、前回とは異なるブロックをリフレッシュする。
本発明によれば、フラッシュメモリの読み取りによるストレスの累積を解除することで、フラッシュメモリの保持内容をECCのエラー訂正範囲内に正しく保つことが出来る。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
本発明の実施形態の一態様は、所定のタイミングで、フラッシュメモリのブロックの一部分のブロックをリフレッシュすることを実現する。フラッシュメモリを制御するコントローラは、所定のタイミングで、フラッシュメモリを構成する複数のブロックのうち、任意の数のブロックについてリフレッシュ(再書き込み)する。任意のブロック数は、全ブロック数より小さい値である。コントローラは、所定のタイミングの度に前回とは異なるブロックをリフレッシュする。コントローラが所定のタイミングでリフレッシュを繰り返すことにより、フラッシュメモリのブロックが順番にリフレッシュされる。リフレッシュするために必要な情報(リフレッシュするブロックの数、リフレッシュを開始するブロックの情報など)は、コントローラあるいはフラッシュメモリのいずれかに保存されている。以下の説明において、リフレッシュとは、一つのブロックのデータを読み出し、エラーの有無を調べ、エラーがある場合は訂正し、訂正後のデータを別のブロックに書き込む処理をいう。また、フラッシュメモリの一例としてNANDフラッシュメモリを用いて説明する。
(実施形態1)
図1は本発明の実施形態1に係るフラッシュメモリ制御装置の構成例を示すブロック図である。フラッシュメモリ制御装置は、NANDフラッシュコントローラ(コントローラ)110とNANDフラッシュメモリ210とを備える。NANDフラッシュコントローラ110は、ホストシステム310と接続している。
NANDフラッシュコントローラ110は、ホストシステムインタフェース111、NANDフラッシュメモリインタフェース112、全体制御部(CPU)113、ROM114、ECC回路115、メモリ(以降、RAMという)116、データバッファ117、及び、リフレッシュ管理情報領域118を備える。NANDフラッシュメモリ210は、ブロック群211とリフレッシュ管理情報領域(リフレッシュ情報領域)212とを備える。
ホストシステムインタフェース111は、ホストシステム310からのコマンドを受け付け、コマンドに基づいてNANDフラッシュコントローラ110が処理した結果をホストシステム310へ転送する。NANDフラッシュメモリインタフェース112を介して、NANDフラッシュメモリ210への読み出し及び書き込み処理を制御する。全体制御部113は、NANDフラッシュコントローラ110の処理全体を制御する。具体的には、ROM114に書き込まれたプログラムをRAM116にロードし、RAM116にロードされた命令を実行する。もしくは、ROM114から直接実行することも可能である。ROM114は、全体制御部113に実行させる命令を記述したプログラムを格納する。ECC回路115は、NANDフラッシュメモリ210に格納されたデータの誤りの検出と訂正を実行する。メモリRAM116は、全体制御部113が命令を処理する際に使用するメモリである。データバッファ117は、NANDフラッシュメモリ210への書き込みデータ及び読み出しデータを格納するバッファである。
リフレッシュ管理情報格納領域118は、リフレッシュ管理情報を格納する。リフレッシュ管理情報格納領域118は、本実施形態では、揮発性メモリ、不揮発性メモリのいずれであってもよい。リフレッシュ管理情報は、NANDフラッシュメモリの書き換えを実行するのに必要な情報である。具体的には、一度のリフレッシュにおいて実施するリフレッシュ実行ブロック数とリフレッシュを開始するブロック番号(以下、適宜、「開始ブロック番号」という)が格納されている。リフレッシュ管理情報は、電源投入時にNANDフラッシュメモリから読み出される。この手順については、後述する。
ブロック群211は、NANDフラッシュメモリ内のブロック(Block)を示している。図1では、Block#0からBlock#nの(n+1)個で構成されている場合を示している。
リフレッシュ管理情報領域212は、1個もしくは複数の実行情報を格納する。実行情報は、NANDフラッシュメモリの書き換えを実行するのに必要な情報である。具体的には、上述したリフレッシュ管理情報と同様である。図1では、実行情報#1、実行情報#2、実行情報#3の3つの実行情報を格納する例を示している。3つの実行情報はリフレッシュ管理情報領域212に書き込む際には同一の情報が書き込まれる。3つの実行情報は、NANDフラッシュコントローラ110のリフレッシュ管理情報格納領域118へ書き込まれるリフレッシュ管理情報のもとになる情報である。
ホストシステム310は、NANDフラッシュメモリ210に書き込まれたデータを使って、各種処理を実行するシステムである。なお、図1において、通常用いられている論理アドレスと物理アドレスの対応を管理しているブロック対応管理表等のアドレス管理に関係する部分に関しては省略している。
ここで、図2を用いて、NANDフラッシュコントローラ110のリフレッシュに関連する構成について説明する。図2では、リフレッシュを実現するプログラム(以下、「リフレッシュ管理部」という)をROM114に格納する場合を示している。電源投入時、ROM114に格納されているリフレッシュ管理部119は、RAM116にロードされる。全体制御部113は、RAM116にロードされた命令(リフレッシュを実現する命令群)を実行する。また、電源投入時、命令(リフレッシュを実現する命令群)をRAM116にロードしないで、ROM114から直接実行することも可能である。
次に動作を説明する。図3は、実施形態1のリフレッシュの動作例を示すフローチャートである。ここでは、電源投入時にリフレッシュを実行する例を説明する。図3では、全体の流れを示す。まず、NANDフラッシュコントローラ110は、リフレッシュ管理部119が実現する機能によって、電源投入後の起動時に、NANDフラッシュメモリ210のリフレッシュ管理情報領域212に格納された少なくとも一つの実行情報(図1では、3つ)を読み出し、読み出した実行情報に基づいて、リフレッシュするブロックの数とリフレッシュを開始するブロック番号とを取得し、リフレッシュ管理情報としてリフレッシュ管理情報格納領域118に保持する(S10)。次に、NANDフラッシュコントローラ110は、リフレッシュ管理情報に基づいてリフレッシュを実行する(S20)。リフレッシュ実行後、NANDフラッシュコントローラ110は、リフレッシュ管理情報領域212へリフレッシュするブロック数と次回リフレッシュを開始するブロック番号とを書き込む(S30)。
続いて、各処理の動作を図4〜図6を用いて詳細に説明する。図4は、実施形態1のリフレッシュ管理情報取得処理の動作例を示すフローチャートである。NANDフラッシュコントローラ110は、電源投入後の起動時に全体制御部113の制御プログラムが格納されているROM114の内容にしたがって、NANDフラッシュメモリ210内のリフレッシュ管理情報領域212より実行情報#1、実行情報#2、実行情報#3を読み出し(S11)、読み出した実行情報をチェックする(S12)。全体制御部113は、複数の実行情報の値が完全に一致するときに正常であるとし、一致しないときに(実行情報の値が不特定の場合を含む)異常であると判断する。
全体制御部113は、実行情報#1、実行情報#2、実行情報#3の各情報が一致する場合、リフレッシュ実行ブロック数とリフレッシュを開始するブロック番号とをリフレッシュ管理情報としてリフレッシュ管理情報格納領域118へ格納し、リフレッシュの準備を行う(S14)。一致しない場合、全体制御部113は、多数の値を用いるなど、所定の規則に基づいてリフレッシュ管理情報を決定する。また、全体制御部113は、リフレッシュ管理情報領域212に実行情報が正しく登録されていない場合、予め用意されている初期値を用いることを決定する。全体制御部113は、決定したリフレッシュ実行ブロック数とリフレッシュを開始するブロック番号とをリフレッシュ管理情報としてリフレッシュ管理情報格納領域118へ格納し、リフレッシュの準備を行う(S14)。実行情報が正しく登録されていない場合には、複数の実行情報の値が異なり所定の規則に基づいてリフレッシュ管理情報を決定できない場合、リフレッシュ管理情報領域212に実行情報が格納されていない場合、リフレッシュ実行ブロック数または開始ブロック番号が存在しない値を示している場合などが含まれる。NANDフラッシュメモリ210に複数の実行情報を保存することにより、リフレッシュ管理情報領域212にエラーが発生した場合の不具合を抑制することができる。また、実行情報の信頼性がない場合、初期値を用いることにより、リフレッシュを実行することが可能になる。
次に、リフレッシュ処理について説明する。図5は、実施形態1のリフレッシュの動作例を示すフローチャートである。全体制御部113はリフレッシュ管理情報格納領域118に格納されているリフレッシュ管理情報に従って、NANDフラッシュメモリインタフェース112を介してNANDフラッシュメモリ210へ開始ブロック番号を設定し(S21)、設定したブロック番号のデータを読み出し、データバッファ117へ保存する(S22)。ECCは、読み出したデータにエラーがあるかチェックし(S23)。エラーを検出した場合、エラーを訂正する(S24)。全体制御部113は、データバッファ117に保存したデータを読み出したブロックとは別のブロックへコピーする(S25)。全体制御部113は、開始ブロック番号からリフレッシュ実行ブロック数分のブロックについてリフレッシュが終了したかをチェックする(S26)。リフレッシュ終了していない場合(S26でNo)、次にリフレッシュするブロック番号をNANDフラッシュメモリインタフェース112を介してNANDフラッシュメモリ210に設定し(S27)、リフレッシュが終了するまで(S26でYes)、ステップS22から処理を繰り返す。このようにして、読み出したデータについて、エラーの有無を調査し、エラーを検出した場合、訂正したエラーの無い正しいデータをNANDフラッシュメモリ210の新たなブロック(データを読み出したブロックとは異なるブロック)に書き込む。これにより、NANDフラッシュメモリ210のデータは蓄積されていたデータエラーの発生に対するポテンシャルをリセットすることができる。
次にリフレッシュ管理情報書き込み処理の動作例を説明する。図6は、実施形態1のリフレッシュ管理情報書き込み処理の動作例を示すフローチャートである。所定のリフレッシュを終えた後、全体制御部113は、リフレッシュ管理情報格納領域118に格納したリフレッシュ管理情報の開始ブロック番号を、次回リフレッシュを開始するブロック番号に更新して(S31)、NANDフラッシュメモリ210内のリフレッシュ管理情報領域212の実行情報#1、実行情報#2、実行情報#3へ書き込む(S32)。本実施形態では、3つの実行情報に同じ値をコピーする。NANDフラッシュメモリ210のリフレッシュ管理情報領域212の実行情報を更新することにより、次のリフレッシュでは異なるブロックのリフレッシュを実行することができる。一連のリフレッシュ実行後、NANDフラッシュコントローラ110は、通常のNANDフラッシュメモリ210の制御を実行する。
上述したように、フラッシュメモリ制御装置の起動時にNANDフラッシュメモリを複数のブロックで構成される任意のグループに分割してリフレッシュすることにより、エラー箇所が累積することを防止する。これにより、NANDフラッシュメモリの読出しにおいて、読出しエラーの発生を押さえ、訂正不可能な状況を回避することが可能となる。具体的には、電源投入時の起動時にNANDフラッシュメモリ210のデータを任意数のブロック単位で書き換える。この書き換えにより、リードディスターブの要因となっているNANDフラッシュメモリ210のフローティングゲートの状態をリークが生じていない状態に戻すことができる。また、NANDフラッシュメモリを複数のブロックで構成される任意のグループに分割してリフレッシュするため、リフレッシュに費やす時間を所定の範囲内にすることが可能となる。
(実施形態2)
実施形態1では、NANDフラッシュメモリ210にリフレッシュ管理情報領域212を設け、リフレッシュ管理情報(実行情報)を格納していた。実施形態2では、NANDフラッシュコントローラ内にリフレッシュ管理情報を格納する構成例を説明する。図7は、実施形態2のフラッシュメモリ制御装置の構成例を示すブロック図である。図7に示すNANDフラッシュメモリ制御装置は、NANDフラッシュコントローラ120とNANDフラッシュメモリ220とを備える。NANDフラッシュコントローラ120は、不揮発性メモリで構成されたリフレッシュ管理情報格納領域(不揮発性のリフレッシュ情報領域)128を備える。
リフレッシュ管理情報格納領域128は、リフレッシュ管理情報を格納する。リフレッシュ管理情報の内容は、実施形態1と同様である。また、ROM124は、実施形態1と同様に、リフレッシュを実行するプログラム(リフレッシュ管理部)をROM114に格納する。ただし、リフレッシュ管理部が実現する機能、すなわち、リフレッシュ管理部が全体制御部113に実行させる命令群が異なる。具体的には動作の説明で述べる。
NANDフラッシュメモリは、リフレッシュ管理情報領域がない点で実施形態1と異なる。図1と同じ符号をつけた構成要素は同様であるため説明を省略する。
次に本実施形態の動作について、実施形態1と異なる点を中心に説明する。図3に示したリフレッシュ全体の動作は同様である。NANDフラッシュコントローラ120において、電源投入時、ROM124に格納されているリフレッシュ管理部は、RAM116にロードされる。全体制御部113は、RAM126にロードされた命令(実施形態2のリフレッシュ管理部の機能を実現する命令群)を実行する。また、電源投入時、命令(リフレッシュを実現する命令群)をRAM126にロードしないで、ROM116から直接実行することも可能である。
図8を用いて、本実施形態のリフレッシュ管理情報取得処理(図3のS10)を説明する。図8は、実施形態2のリフレッシュ管理情報取得処理の動作例を示すフローチャートである。全体制御部113は、リフレッシュ管理情報をNANDフラッシュコントローラ120内のリフレッシュ管理情報格納領域128から読み出す(S15)。全体制御部113は、読み出したリフレッシュ管理情報をチェックし(S16)、リフレッシュ管理情報が正しく登録されていない場合、予め用意されている初期値を用いることを決定し、リフレッシュ管理情報格納領域128へ書き込む(S17)。全体制御部113は、リフレッシュの準備を行う(S18)。
リフレッシュ処理(図3のS20)については、実施形態1と同様である。リフレッシュ管理情報書き込み処理(図3のS30)については、ステップS31は同様である。ステップS32において、開始ブロック番号の書き込み先がNANDフラッシュコントローラ120内のリフレッシュ管理情報格納領域128である点が異なる。
このように、本実施形態では、NANDコントローラ120内に不揮発メモリを備えている場合は、NANDフラッシュメモリ220内にリフレッシュ管理情報領域を確保する必要がなくなるので、処理が軽減される。
また実施形態1と同様に、フラッシュメモリ制御装置の起動時にNANDフラッシュメモリを複数のブロックで構成される任意のグループに分割してリフレッシュすることにより、エラー箇所が累積することを防止し、読出しによってエラーが発生することを回避することが可能となる。従って、通常のNANDフラッシュメモリの読出しにおいて、読出しエラーの発生を押さえ、訂正不可能な状況を回避することが可能となる。
(その他の実施形態)
上記各実施形態では、リフレッシュ管理情報(あるいは実行情報)として、リフレッシュ実行ブロック数と開始ブロック番号とを格納する場合を説明したが、リフレッシュ回数をカウントし、保持するようにしてもよい。例えば、全体制御部113は、リフレッシュ管理情報取得時にリフレッシュ回数も読み出す(図3のS11、図8のS15)。また、全体制御部は、開始ブロック番号を更新するときに(図6のS31)、リフレッシュ回数も更新し、NANDフラッシュメモリ210のリフレッシュ管理情報領域212の実行情報またはNANDフラッシュコントローラ120のリフレッシュ管理情報格納領域128へ書き込む(図6のS32)。
リフレッシュ回数を保持することにより、NANDフラッシュメモリの品質管理をすることが可能になる。例えば、リフレッシュ回数とリフレッシュ実行ブロック数とによって、NANDフラッシュメモリ全体のリフレッシュ回数を算出し、書き込み/消去の保証回数と比較する。これにより、部品の消耗時期を把握し、部品の信頼性の範囲であるかを確認することができる。あるいは、NANDフラッシュメモリ全体を新しいバージョンに書き換えて使用可能か否かを判断することができる。また、リフレッシュ回数をホストシステム310が読み出すことによって、部品の寿命をホストシステム310側で把握することが可能になり、ホストシステム310がこの情報を外部に出力することにより、利用者に通知することも可能になる。
また、上記各実施形態では、リフレッシュを行うタイミングとして電源投入時にリフレッシュを行う場合を説明した。このため、リフレッシュを実行するタイミングを管理することなく、フラッシュメモリのリフレッシュを実行することができる。
さらに、上記各実施形態では、NANDフラッシュメモリを用いて説明したが、上記各実施形態は、その他のフラッシュメモリを搭載するシステムに適用することも可能である。特に読み出し回数が多いシステムに適用すると、読出しの累積にともなって発生するエラーを回避することができる。
以上説明したように、上記各実施形態では、フラッシュメモリ制御装置は、所定のタイミングでNANDフラッシュメモリを複数のブロックで構成される任意のグループに分割してリフレッシュする。これにより、フラッシュメモリにエラー箇所が累積することを防止する。具体的には、フラッシュメモリ内のデータの再書き込みを実施することにより、読み出しの累積により、フローティングゲートのリークを生じている状態をリークが生じていない状態に戻す。このため、フラッシュメモリの読出しにおいて、読出しエラーの発生を押さえ、訂正不可能な状況を回避することができる。また、このリフレッシュにより、読み出しエラーの発生を未然に防ぐことができる。さらに、リフレッシュ管理情報を使用して、NANDフラッシュメモリを複数のブロックで構成される任意のグループに分割してリフレッシュするため、リフレッシュに費やす時間を所定の範囲内にすることができる。
関連する技術として、NANDフラッシュメモリの読み出し時に訂正可能なエラーが発生した場合、NANDフラッシュメモリ内の該エラーが発生したブロックを訂正するリードリカバリ処理を備えるNANDフラッシュコントローラが開示されている(図11)。しかしながら、リカバリ処理実行時に待ち時間が発生し、その間NANDフラッシュメモリへのアクセスが出来なくなるため、リアルタイムを要求されるシステムにおいては、適用できないという問題がある。特に、プログラムの読み出しやイメージの表示や動画の再生等に於いては、非同期に発生するメモリアクセスを妨げ、ひいては正常動作を阻害する要因となる可能性があり、その結果、機器を使用しているユーザには違和感を与えることとなる。
この問題に対しても、上記各実施形態のいずれかを適用することにより、NANDフラッシュメモリのフローティングゲートのストレスの累積をある間隔でリセットすることで、解決することができる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
本発明の実施形態1に係るフラッシュメモリ制御装置の構成例を示すブロック図である。 実施形態1のNANDフラッシュコントローラのリフレッシュに関連する構成例を示すブロック図である。 実施形態1のリフレッシュの動作例を示すフローチャートである。 実施形態1のリフレッシュ管理情報取得処理の動作例を示すフローチャートである。 実施形態1のリフレッシュ処理の動作例を示すフローチャートである。 実施形態1のリフレッシュ管理情報書き込み処理の動作例を示すフローチャートである。 本発明の実施形態2に係るフラッシュメモリ制御装置の構成例を示すブロック図である。 実施形態2のリフレッシュ管理情報取得処理の動作例を示すフローチャートである。 従来のNANDフラッシュメモリ制御装置の構成例を示すブロック図である。 従来のNANDフラッシュメモリ制御装置の読み出し処理を示すフローチャートである。 従来のNANDフラッシュメモリ制御装置のオートリカバリ時の読み出し処理を示すフローチャートである。
符号の説明
110、120 NANDフラッシュコントローラ
111 ホストシステムインタフェース
112 NANDフラッシュメモリインタフェース
113 全体制御部(CPU)
114、124 ROM
115 ECC回路
116 メモリ(RAM)
117 データバッファ
118 リフレッシュ管理情報格納領域(メモリ領域)
128 リフレッシュ管理情報格納領域(不揮発メモリ)
210、220 NANDフラッシュメモリ210
211 ブロック群
212 リフレッシュ管理情報領域
310 ホストシステム

Claims (8)

  1. 複数のブロックから構成される書き換え可能なフラッシュメモリと、
    所定のタイミングで、前記複数のブロックのうち全ブロック数より少ない任意の数のブロックをリフレッシュし、前記所定のタイミングの度に、前回とは異なるブロックをリフレッシュするコントローラと、を備えるフラッシュメモリ制御装置。
  2. 前記フラッシュメモリは、前記任意の数と、リフレッシュを開始するブロック番号とを保持するリフレッシュ情報領域を有し、
    前記コントローラは、所定のタイミングに、前記リフレッシュ情報領域から前記任意の数と前記リフレッシュを開始するブロック番号とを読み出し、リフレッシュ実行後、前記リフレッシュ情報領域へ前記任意の数と次回リフレッシュを開始するブロック番号とを書き込むリフレッシュ管理部を有することを特徴とする請求項1記載のフラッシュメモリ制御装置。
  3. 前記コントローラは、
    前記任意の数と、リフレッシュを開始するブロック番号とを保持する不揮発性のリフレッシュ情報領域と、
    所定のタイミングに、前記リフレッシュ情報領域から前記任意の数と前記リフレッシュを開始するブロック番号とを読み出し、リフレッシュ実行後、前記リフレッシュ情報領域へ前記任意の数と次回リフレッシュを開始するブロック番号とを書き込むリフレッシュ管理部と、を有することを特徴とする請求項1記載のフラッシュメモリ制御装置。
  4. 前記リフレッシュ情報領域は、前記任意の数と前記リフレッシュを開始するブロック番号との複数の組み合わせを保持し、
    前記リフレッシュ管理部は、前記任意の数と前記先頭アドレスとの複数の組み合わせを読み出し、前記複数の組み合わせそれぞれの値が一致しない場合、多数となる値を用いてリフレッシュを実行させ、前記任意の数と前記次回リフレッシュを開始するブロック番号との複数の組み合わせを、前記リフレッシュ情報領域へ書き込むことを特徴とする請求項2または3記載のフラッシュメモリ制御装置。
  5. 前記リフレッシュ情報領域は、さらに、リフレッシュした回数を保持し、
    前記リフレッシュ管理部は、前記リフレッシュ実行後、前記回数を更新することを特徴とする請求項2乃至4のいずれか一項に記載のフラッシュメモリ制御装置。
  6. 前記フラッシュメモリは、NANDフラッシュメモリであることを特徴とする請求項1乃至5のいずれか一項に記載のフラッシュメモリ制御装置。
  7. 前記所定のタイミングは、電源投入時、外部からの命令を受け付けた場合、及び、所定の周期の場合のうちの少なくとも一つであることを特徴とする請求項1乃至6のいずれか一項に記載のフラッシュメモリ制御装置。
  8. 複数のブロックから構成される書き換え可能なフラッシュメモリを制御するフラッシュメモリ制御方法であって、
    所定のタイミングで、前記複数のブロックのうち全ブロック数より少ない任意の数のブロックについてリフレッシュし、
    前記所定のタイミングの度に、前回とは異なるブロックをリフレッシュすることフラッシュメモリ制御方法。
JP2008176479A 2008-07-07 2008-07-07 フラッシュメモリ制御装置及びフラッシュメモリ制御方法 Pending JP2010015477A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008176479A JP2010015477A (ja) 2008-07-07 2008-07-07 フラッシュメモリ制御装置及びフラッシュメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008176479A JP2010015477A (ja) 2008-07-07 2008-07-07 フラッシュメモリ制御装置及びフラッシュメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2010015477A true JP2010015477A (ja) 2010-01-21

Family

ID=41701528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008176479A Pending JP2010015477A (ja) 2008-07-07 2008-07-07 フラッシュメモリ制御装置及びフラッシュメモリ制御方法

Country Status (1)

Country Link
JP (1) JP2010015477A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196673A (ja) * 2012-03-23 2013-09-30 Toshiba Corp メモリシステム
US9286992B2 (en) 2013-12-17 2016-03-15 Kyocera Document Solutions Inc. Refresh apparatus and electronic device that ensure simplified refresh process of flash memory
JP2016224866A (ja) * 2015-06-03 2016-12-28 株式会社デンソー 電子制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196673A (ja) * 2012-03-23 2013-09-30 Toshiba Corp メモリシステム
US9286992B2 (en) 2013-12-17 2016-03-15 Kyocera Document Solutions Inc. Refresh apparatus and electronic device that ensure simplified refresh process of flash memory
JP2016224866A (ja) * 2015-06-03 2016-12-28 株式会社デンソー 電子制御装置

Similar Documents

Publication Publication Date Title
US10061512B2 (en) Data storage device and data writing method thereof
US8255614B2 (en) Information processing device that accesses memory, processor and memory management method
US8914702B2 (en) Bit error repair method and information processing apparatus
US8812910B2 (en) Pilot process method for system boot and associated apparatus
JP5608139B2 (ja) 不揮発性メモリからの装置ブートアップ中のエラーの取り扱い
JP5831271B2 (ja) 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム
US20140372688A1 (en) Memory system
US9449684B2 (en) Storage control device, storage device, information processing system, and storage control method
JP2008192267A (ja) ビットエラーの予防方法、情報処理装置
US9804921B2 (en) Nonvolatile memory apparatus and control method of nonvolatile memory apparatus
JP2009224013A (ja) 記憶装置、システム、該システムを搭載した遊技機
JP2010009102A (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US20120221773A1 (en) Nonvolatile semiconductor memory device
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4956230B2 (ja) メモリコントローラ
US20160011937A1 (en) Semiconductor memory device, memory controller, and control method of memory controller
JP2005157528A (ja) メモリ装置
JP5883284B2 (ja) 半導体メモリ制御装置及び制御方法
JP2008191701A (ja) エラー回復処理方法および情報処理装置
JP2010015477A (ja) フラッシュメモリ制御装置及びフラッシュメモリ制御方法
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
JP5306745B2 (ja) フラッシュメモリの管理方法及びフラッシュメモリデバイス
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
JP2010097432A (ja) Ram診断装置、そのプログラム
JP4213140B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法