説明

NAND型フラッシュメモリ保守装置及びNAND型フラッシュメモリ保守プログラム及びNAND型フラッシュメモリ保守方法

【課題】NAND型フラッシュメモリを備えた機器において、専用ハードウェアを追加することなく、エラーの起こりにくいNAND型フラッシュメモリを提供する。
【解決手段】読込回数管理部23はNAND型フラッシュメモリ装置130のブロックに含まれるいずれかのページが読み出されるたびに読出回数を各ブロック毎にカウントし、所定のブロックに書き込む。書込回数管理部24は、いずれかのブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をカウントし、書き込み回数を所定のブロックに書き込む。診断部28は、読込回数管理部23によりカウントされた読出回数に基づいて、保守対象ブロックを選択する。保守部29は書込回数管理部24によりカウントされた書込回数に基づいて保守対象ブロックのすべてのデータを書き込む書込先ブロックを選択し、書込先ブロックに保守対象ブロックのデータを書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カーナビゲーション端末、ポータブルナビゲーション端末、携帯電話、ライフログ端末、デジタルカメラ、ビデオレコーダなどの組み込み型の小型のコストを抑えた情報処理機器や、ウエアラブル端末でSSD(Solid State Drive)に代表されるNAND型メモリを備えた機器のNAND型メモリ部の故障を防ぐための診断保守に関する。
【背景技術】
【0002】
カーナビゲーションシステムや携帯端末では従来はHDD(ハードディスクドライブ)装置やNOR型のメモリ装置を利用してデータを保持していた。HDDでは駆動部があるため故障の可能性があり、その診断や保守が中心に行われていた。NOR型メモリでも一定の回数以上の書込みができないため、書込みエリアを分散するなど工夫を行い、故障が置きにくいような工夫がなされていた。また、万が一故障がおきて、1ビットが化けるようなケースにおいてもECC(Error Correcting Code)技術により訂正し、正しいデータを復元する技術が開発されてきた。
【0003】
一方、NAND型メモリでは一定の領域の一部の読み込み(「読み出し」と言う場合もある)を繰り返すと、読み込んだことのない部分も含めて読み込み破壊(「読み出し破壊」という場合もある)を起こすことが知られている。NANDフラッシュメモリの特性として、ページ単位で読む際には、ページより大きな単位であるブロック全体に電荷をかけて読む。これを繰り返すことにより、読んでいないページの0、1が反転する場合がある。これを読み込み破壊という。これがおきると、再度書込み処理をしなければ修正されない。多くの場合はH/W(HardWare)的にECCを組み込むことで、ある程度まではリカバリが可能になる。一方、書込み回数にも制限があるためアイドル時間に書き直す処理を繰り返すのも問題となる。
【0004】
とくに、SSD(NANDフラッシュメモリ)ベースのカーナビゲーションシステムなどでは、地図の特定の一部は何度も読むが、他はめったに読まないということがある。例えば、カーナビゲーションシステムの地図データのように自宅周辺はよく使うが、あまり行かない部分は読んだこともないので、破壊されていることにも気づかないというケースが考えられる。車は10年程度使うことがあり、購入してから10年目に初めて新しい場所に行ったり、倍率を変更して出そうとすると地図データが破壊されていて使用できない場合がある。また、地図データは更新しない限り書込みも行わないので、気づいたときには復元できないようなケースも想定される。車への組込み型のシステムでは10年程度の保守期間が要請されるとすると、大きな課題となる。
【0005】
例えば特開2008−181380号公報(特許文献1)に開示する技術では、NAND型フラッシュメモリの読み出し回数を不揮発性の別のメモリに管理することにより課題の解決を実現している。この手法では、H/W的に不揮発の別のNOR型メモリなどを用意する必要があり、コスト的な課題がある。
【0006】
また、特開2008−192267号公報(特許文献2)に開示する技術では、読み出し回数が規定値を超えているかどうかを判定し、超えていたら書き直しをする。判定は起動時などの特定のときに行う手法である。ここに開示された手法では「経年劣化」が考慮されていない。また、読み出し回数をどのように保存するのかも開示されておらず、不揮発性の別のメモリに保存することになれば、コスト的な課題がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−181380号公報
【特許文献2】特開2008−192267号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
この発明は、専用のハードウェアを追加することなくエラーの起こりにくいNAND型フラッシュメモリを提供することを目的とする。
【課題を解決するための手段】
【0009】
この発明のNAND型フラッシュメモリ保守装置は、
NAND型フラッシュメモリからなるNAND型フラッシュメモリ装置と、
前記NAND型フラッシュメモリ装置におけるデータの消去単位であるブロックに含まれるいずれかのページが読み出されるたびに読み出し回数を各ブロック毎にカウントし、ブロックごとの読み出し回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む読出回数管理部と、
前記NAND型フラッシュメモリ装置のブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をブロックごとにカウントし、ブロックごとの書き込み回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む書込回数管理部と、
前記読出回数管理部によりカウントされたブロックごとの前記読み出し回数に基づいて、保守するべき保守対象ブロックを選択する保守対象ブロック選択部と、
前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数に基づいて前記保守対象ブロックのすべてのデータを書き込む書込先ブロックを選択し、選択された書込先ブロックに保守対象ブロックのデータを書き込む保守部と
を備えたことを特徴とするNAND型フラッシュメモリ保守装置。
【発明の効果】
【0010】
この発明により、専用のハードウェアを追加することなくエラーの起こりにくいNAND型フラッシュメモリを提供できる。
【図面の簡単な説明】
【0011】
【図1】実施の形態1におけるNAND型フラッシュメモリ保守装置100のハードウェア構成。
【図2】実施の形態1におけるNAND型フラッシュメモリ保守装置100の構成図。
【図3】実施の形態1におけるNAND型フラッシュメモリからの読込み動作のフローチャート。
【図4】実施の形態1におけるNAND型フラッシュメモリへの書込み動作のフローチャート。
【図5】実施の形態1における診断部28の動作のフローチャート。
【図6】実施の形態1における保守部29の動作のフローチャート。
【図7】実施の形態1におけるデータ格納方式を示す図。
【図8】実施の形態1における書込み日時のデータ格納方式を示す図。
【発明を実施するための形態】
【0012】
実施の形態1.
図1〜図8参照して実施の形態を説明する。図1は、NAND型フラッシュメモリ保守装置100のハードウェア構成図である。NAND型フラッシュメモリ保守装置100は、CPU(Central Processing Unit)110、RAM(Random Access Memory)120、NAND型フラッシュメモリ装置130を備える。
【0013】
(NAND型フラッシュメモリ装置130)
NAND型フラッシュメモリ装置130は、NANDフラッシュメモリで構成され、ファイルシステムなどを配置可能であるが、データの読込み、消去及び書込みについて以下の特性がある。
(1)読込み:
ソフトウェア的にはRAM120にページ単位で読み込むことができるが、ハードウェアの面からはそのページを含むブロック全体に電荷をかけて該当ページを読む。
(2)消去:
複数のページからなり、消去の単位である「ブロック」単位で消去を行う。以下ではブロックが消去単位であることを明確にするために、ブロックを「消去ブロック」と呼ぶ場合がある。
なお、消去とはデータを消去することであるが、ブロック単位でそのブロックのデータを消去することを、「ブロックを消去する」という場合もある。
(3)書込み:
書き込みはページ単位で可能であるが、ブロックを消去すると、そのブロックはすべてのビットが立った状態、即ち1となる。あるページに書込みを行うと、該当するビットのみが落ちた状態「0」となる。フラッシュメモリでは1の状態から0の状態への一方向のみ可能である。「0」→「1」の状態に戻すためにはブロック消去を行う。
【0014】
(NAND型フラッシュメモリ装置130に格納されるプログラム)
NAND型フラッシュメモリ装置130に保存されてRAM120にロードされCPU110で実行されるプログラムには、NANDフラッシュ上のファイルシステムなども含まれ、NAND型フラッシュメモリ診断保守プログラム(このプログラムは、コンピュータをNAND型フラッシュメモリ保守装置100として機能させる)も含まれる。
【0015】
図2は、NAND型フラッシュメモリ保守装置100の構成を示す。コンピュータを、読込破壊率管理部20〜保守部29からなるNAND型フラッシュメモリ保守装置100として機能させるプログラムはNAND型フラッシュメモリ装置130に保存されており、実行時にCPU110によってRAM120にロードされる。
【0016】
図2に示すように、NAND型フラッシュメモリ保守装置100は、読込破壊率管理部20、書込破壊率管理部21、経年劣化管理部22、読込回数管理部23(読出回数管理部)、書込回数管理部24、書込日時管理部25、エラー管理部26、診断情報管理部27、診断部28(保守対象ブロック選択部)、保守部29、及びNAND型フラッシュメモリ装置130を備えている。
【0017】
(読込破壊率管理部20〜経年劣化管理部22)
(1)読込破壊率管理部20は、読込破壊率を記憶しており、この読込破壊率を管理する。
(2)書込破壊率管理部21は、書込破壊率を記憶しており、この書込破壊率を管理する。
(3)経年劣化管理部22は、書込経年劣化率を記憶しており、この書込経年劣化率を管理する。
【0018】
(1)「読込破壊率」とは、何回ブロック内のページを読み込むとそのブロック内のページの一部に破壊が起こるかを示す数値である。
(2)「書込破壊率」とは、何回ブロックを消去すると、そのブロックに破壊が起こるかを示す数値である。
(3)「経年劣化率」とは、ブロックを消去してからどの程度の時間がたつと、そのブロックに破壊が起こるかを示す数値である。
(4)これらの数値は通常半導体メーカなどによって示されるか、あるいは、その数値から計算可能な値であり、NANDフラッシュメモリの集積度や構成方法などメーカ、機種によって変わる数値である。
【0019】
読込破壊率管理部20、書込破壊率管理部21、経年劣化管理部22は、それぞれ上記の数値をNAND型フラッシュメモリ装置130上で管理する。不揮発性のメモリがNAND型フラッシュメモリとは別にあるのであればそこに上記の数値を格納して管理することもできるし、NAND型フラッシュメモリ保守装置100においてNAND型フラッシュメモリ装置130を付け替えることがないのであれば、消すことのできないROM(Read Only Memory)上で管理することもできる。
【0020】
(読込回数管理部23〜書込日時管理部25)
(1)読込回数管理部23は、NAND型フラッシュメモリ装置130における「データ消去の単位」あるいは「データ読込時における電荷をかける単位」であるブロックについて、読み込み回数をカウントして記録し、管理する。
(2)書込回数管理部24は、消去単位であるブロックの消去回数をカウントして記録し、管理する。
(3)書込日時管理部25は、ブロックの消去日時を記録し管理する。NAND型フラッシュメモリ保守装置100は、日時を計測するカレンダ機能を有する。
【0021】
(NAND型フラッシュメモリ装置130に書き込みされる管理情報)
読込回数管理部23、書込回数管理部24、書込日時情報管理部25、エラー管理部26、診断情報管理部27は、各ブロックに対応する領域をNAND型フラッシュメモリ上に用意し、各自の管理情報を管理する。後述のように、読込回数管理部23、書込回数管理部24、エラー管理部26は図7の方式で管理し、書込日時情報管理部25及び診断情報管理部27は、図8のような方式で日時を管理する。たとえば読込回数管理部23、書込回数管理部24につては以下の(1)、(2)の様である。
(1)読込回数管理部23は、NAND型フラッシュメモリ装置130のブロックに含まれるいずれかのページが読み出されるたびに読み出し回数を各ブロック毎にカウントし、ブロックごとの読み出し回数をNAND型フラッシュメモリ装置130の所定のブロックに書き込む。
(2)書込回数管理部24は、NAND型フラッシュメモリ装置130のブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をブロックごとにカウントし、ブロックごとの書き込み回数をNAND型フラッシュメモリ装置130の所定のブロックに書き込む。
(3)例えば、典型的なNAND型フラッシュメモリであれば4KB単位のページでNANDフラッシュメモリに対して、読み込みと書込みを行うことができる。128KB単位のブロック単位で消去を行うことができる。これらの単位はメーカや種類によって異なるものである。
【0022】
また書込みはページ単位であるが、通常消去するとすべてのビットが立った状態即ち「1」となり、書込みを行うと該当するビットのみが落ちた状態「0」となる。NAND型フラッシュメモリではこの1の状態から0の状態への一方向のみが変化する。逆に1の状態に戻すためには消去を行う。このような特性を利用し、読込回数管理部23や書込回数管理部24やエラー管理部26は、後述する図7のように、対象とする消去ブロック単位に、一定以上を超えたら保守をしなければならないというビット数ぶんの領域を保持し、1回アクセスするごとに(あるブロックのいずれかのページを対象としたデータの読み込み、あるいは書込みがあるたびに)、1ビットずつ変化させていくことにより、NAND型フラッシュメモリ装置130で各ブロックの読み込み回数や書込み回数を管理する。図7に示すように、読込回数管理部23は、読み出し回数を所定のブロックに書き込むときには、カウントするごとに隣接するビットを変化させる。図7は、読込回数管理部23が読み込みをカウントするたびに左から順次「1」を立てていく状態を示している。書込回数管理部24も同様に、書き込み回数を所定のブロックに書き込むときには、カウントするごとに隣接するビットを変化させる。図7は、書込回数管理部24が書込みをカウントするたびに左から順次「1」を立てていく状態をも示している。例えば128MバイトのNAND型フラッシュROMでは、128Kバイトのブロックは高々1K個ほどであり、128回を閾としても1消去ブロック分のデータの保持でこのような方式を実現することができる。
【0023】
(書込日時管理部25による書込み日時の記録)
1ビットでは表せない書込み日時(ブロック消去日時)に関しても同様であり、書込日時管理部25は、ブロック消去を実施した日時情報を数ビットであらわしておく。後述する図8は、書込日時管理部25によって記録される書込日時を概念的に示した図である。書込日時管理部25は、いずれかのブロックの消去があるたびに、図8のようにブロック消去の日時を示す日付情報の付加を行う手法で管理し、この日付情報を保持する領域の消去は行わない。オーバーフローすればその時点で全体を消去するという方法でかまわない。例えば、図8の「消去ブロックA」は、2009年12月5日、2009年12月10日、2009年12月16日にブロックAが消去処理されたことを示している。なお毎回書込みを行わずに一定分はRAM上で管理し、まとめて書き込むことで日時情報を書き込むための領域の消去回数を減らすことができる。また、突然の電源断などでその情報を書き込めない場合も想定した安全を見た閾値を設定にすることにより、頻繁な消去を行わずにすませることができる。
【0024】
(エラー管理部26)
エラー管理部26は、実際に読込時に生じたビットエラーの履歴(例えばエラーの発生回数)を管理する。エラー管理部26は、ページ読み込み時にエラーが生じた場合にブロックごとのエラー回数をブロックごとにカウントし、ブロックごとのエラー回数をNAND型フラッシュメモリ装置130の所定のブロックに書き込む。エラーはECCというH/Wあるいはソフトウェア的なリカバリ手段で訂正することができるが、エラーが起こったということは既に破壊が始まっていることを意味しているために,直ちに後述する診断,保守の適用対象となる。エラー管理部26は、このようなECCを適用したという履歴を各消去ブロック単位に読込み回数や書込み回数と同様に、図7のようにビットデータとして管理する。
【0025】
(読込み動作)
図3は、NAND型フラッシュメモリからデータを読み込む際のフローチャートである。次に、図3を用いてNAND型フラッシュメモリ装置130から、データやプログラムを読み込む動作を説明する。読み込み動作は、NAND型フラッシュメモリ装置130に格納された読込みプログラムが実行する。
【0026】
ステップ30から読み出しのフローが開始し、ステップ31で読み出し要求待ちとなる。一連の処理を終了後もステップ30に戻り、常にステップ31で読み出し要求待ちとなる。
【0027】
ステップ31の読込要求待ち状態でアクセス要求がくれば、要求のあったアドレスとデータの量を解析し(ステップ32)、該当する消去ブロック、その消去ブロック中の該当ページを特定する。ページが複数ある場合は、最初のページを読む処理のみ行い、残りのページは次の要求として処理を行い、このフローを繰り返す中で残りのページを読むことを繰り返す。
【0028】
ステップ32のアドレス解析によって特定したページを、読み出し要求されたRAM120に転送する(ステップ33)。
【0029】
(エラー管理部26によるエラー処理)
ステップ34では読出処理(ステップ33)の中で、エラー管理部26は、所謂ECC(エラー訂正処理)によりエラー検出を行い訂正処理をしたかどうかを確認する。H/W的なものであればその情報を示す部分のログを確認するし、S/W的なものであればその処理が動作した履歴を確認することによりわかる。エラー処理が動作していた場合は、当該消去ブロックにエラーがあった情報を管理する。
【0030】
(読込回数管理部23による処理)
ステップ35では、読込回数管理部23が、当該消去ブロック(ステップ32において特定されたブロック)に読み出しがあったことをカウントし図7に示した方式で記録する。この後、ステップ30へ戻り、ステップ31で残りのページの読み込み要求があればその動作を行い、要求がなければ動作を行わない。
【0031】
(書き込みの動作)
図4は、NAND型フラッシュメモリ装置130への書込み動作を示すフローチャートである。次に図4を用いて、フラッシュメモリへの書込み要求があった場合の処理を説明する。書き込み動作は、NAND型フラッシュメモリ装置130に格納されている書込み処理のプログラムが行う。
【0032】
読み込み時と同様に、書込み処理のプログラムはステップ40で開始し、ステップ41で書込み要求待ちとなる。
【0033】
書込み要求が来ると、ステップ42でアドレス解析及びデータの大きさなどを確認し、該当する消去ブロック、ページを特定する。特定された一つ以上ページに対して一つ以上の消去ブロックが対応する。特定されたページごとに使用済みかどうかをステップ43で確認する。
【0034】
使用済みのページの場合(ステップ43:YES)は、そのページを消去しなければ正しく利用できないため、消去プロセスであるステップ44以下に移る。ただし、管理情報を書込むなどの上書きで良いことがわかっている場合には、ステップ43を経由せず、ステップ42から直接ステップ48へ移動する。これらは更新書込みか、上書きかといった呼び出し方の違いによって区別することができる。
【0035】
使用済みページであった場合(ステップ43:YES)は、ブロック内の他のページの使用状況をステップ44で確認する。もし、他のページが全く使用されていない状態であれば(ステップ44a:NO)、直接ステップ46に移動してブロックを消去する。使用されているページがある場合(ステップ44a:YES)は、そのページをステップ45でRAM120に読み込んでからステップ46でブロックを消去する。
【0036】
ステップ47では、ステップ45で退避のためRAM120に読み込んだページがあればそのまま書き戻す。ステップ48で当初の目的であったページに書込み、書込回数管理部24は、当該消去ブロックの書込み回数情報をステップ49で図7に示した方式で更新し、処理は終了する。
【0037】
次に、図5、図6を参照して診断部28、保守部29の動作を説明する。図5で説明する診断部28、図6で説明する保守部29は、特定のタイミングで呼び出される。例えば起動時や例えば終了時である。一定時間に終えるようなパラメター設定をしておいてもかまわない。この場合は、一定時間を保守、診断で越えた時点で作業を停止するでかまわない。
【0038】
(診断の動作)
図5は診断部28(保守対象ブロック選択部)の動作を示すフローチャートである。図5を参照して診断部28の動作を説明する。診断部28は、読込回数管理部23によりカウントされたブロックごとの読み込み回数に基づいて、保守するべき保守対象ブロックを選択する。ここで「保守」とは、後述するが、保守対象ブロックのデータを未使用状態、かつ、書き込み回数の少ない別のブロックに書き込む処理である。
【0039】
ステップ51において、診断部28は、「第1の診断状況」を読みこむ。「診断状況1」とは診断対象として選定し、NAND型フラッシュメモリ装置130を保守した日時情報である。この保守は、後述する保守部29の実施する保守であり、「保守した日時情報」とは、保守部29による保守の実施日時を示す情報である。
【0040】
診断部28は、エラー管理部26の管理するエラー管理情報を読み込み(ステップ52)、読込回数管理部23の管理する読み込み回数情報(図7)を読み込み(ステップ53)、ブロック消去した日時を示す時間情報(図8)を「第2の診断状況」として読み込む(ステップ54)。
【0041】
ステップ55において、診断部28は、以下のような「優先度」(以下、保守優先度という)によって辞書的にブロックをソーティングし、診断対象(保守対象となる保守対象ブロック)を特定する。
【0042】
(保守優先度によるソーティング)
ソーティングの第1の要素は、エラーが起こったか起こっていないか(ステップ52で取得)である。
すなわち、
第1に、エラーの起こったページを含む消去ブロックの保守優先度を高くする。
第2に、読み込み回数(ステップ53で取得)において、一定の閾値を超えたもので回数の多い消去ブロック順に保守優先度を高くする。
第3に、「第2の診断状況」(経時劣化)の情報(ステップ54で取得)から、前回のブロック全体の消去からの経過時間の閾値を越えたものを保守優先度を高くする。診断部28により、最終的に一定以上の保守優先度のブロックが保守対象ブロックとして選択される。保守優先度が高くならなかった消去ブロックに関しては診断保守の対象外とする。
【0043】
以上が診断部28のフローである。ステップ56で保守フローへ移行する。
【0044】
(保守の動作)
図6は、保守部29の動作を示すフローチャートである。保守部29は、診断部28によって候補として選ばれた保守対象ブロックに対して、保守優先度順に保守を行う。
【0045】
ステップ61において、保守部29は、書込回数管理部24によって管理されている各消去ブロックの書込み回数を読み込み、使われていない消去ブロックに関して例えば書込み回数の少ない順に優先度(保守優先度とは異なる)を決めておく。後述するステップ64のように、使われていない消去ブロックに保護対象ブロックのデータが書き込まれるが、この優先度(書込先優先度ともいう)は、その書き込み対象の未使用ブロックを選択するための優先度である。各ブロックが使用されているか未使用かの管理は、使用管理部として機能する使用管理プログラムが実行する。使用/未使用の情報は、やはりNAND型フラッシュメモリ装置130に格納される。
【0046】
ステップ62において、保守部29は、保守対象ブロックの中から保守優先度の順に1ブロックを選択する。
【0047】
ステップ63において、保守部29は、未使用のブロックから書込先優先度に従って1ブロックを選択する。
【0048】
ステップ64において、保守部29は、選択した保守対象ブロックの内容をRAM120に一旦読み込むなどして、内容をコピー先のブロックにコピー(書き込む)する。この際、保守部29は、未使用ブロックである書き込み候補と、保守対象ブロックとの書込み回数とを比較する。保守部29は、保守対象のブロックの書込み回数が小さいか、大きくても一定の閾値以内であれば、コピーするのではなく、自分自身のブロック(すなわち選択された保護対象ブロック)に再書込み(その保護対象ブロックをデータ削除して再度書き込む処理)を行う。
【0049】
ステップ65において、コピー先を有効にする。そのためには、そのデータを参照しているデータのアドレス情報を修正するか、論理と物理のアドレスの変換テーブルを変更することにより実現できる。論理と物理のアドレス変換テーブルもまた、NANDフラッシュ上にあることを想定すると、このテーブルも逐次上書きできる形式にするのが好ましい。
【0050】
このアドレス変換のテーブルの頻繁なる書き換え防ぐことは、一定の書き換え回数の偏りは許すことで対応できる。ステップ66でコピー元のブロックを未使用にする。このときコピー元のブロックを消去してもよい。
【0051】
(読み込み回数、書き込み回数、エラー発生回数等の保持方式)
図7は、読込回数管理部23による読込回数の記録、書込回数管理部224による書込回数の記録、あるいはエラー管理部26によるエラー発生回数の記録方式をNAND型フラッシュメモリ装置130での保持方法を示す図である。
【0052】
読み込み動作を例にとれば、図7は、読み込みがあるたびに、NAND型フラッシュメモリ装置130に予め確保された所定の領域において、読み込み回数を示す位置のビットを立てた例を示している。消去ブロックAでは1回の読み込みがあったことを示しており、消去ブロックBでは5回の読み込みがあったことを示す。
【0053】
一般にNANDフラッシュROM(NAND型フラッシュメモリ装置)では、ブロックを消去した場合にはビットがすべてたち(消去するとすべてのビットが「1」になる)、書き込みではビットごとにビットを落とす(1を0にする)ことができる。そのため、図7の表現に対して実際には0と1が反対となるケースが多いがどちらでも回数がわかることには変わりがない。この情報のブロックが消去され、コピーする際には、このテーブルは初期化する。
【0054】
図8は、経年変化の情報のための書込日時情報の管理方式を示す図である。書込日時管理部25によって記録され管理される日時情報は、そのブロックが消去された日時を示す情報である。診断情報管理部27によって管理される日時情報も同様である。この日時情報は1ビットで表現することはできない。このため、日時情報は、一定のビット数で表す。この例では日時を示しており、消去ブロックAは年12月16日にブロック消去されたことを示し、消去ブロックBでは09年10月5にブロック消去されたことを示している。
【0055】
このテーブルも保守される場合には初期化され、領域をあけることができる。また日時情報は一定の整数で表す方式で問題がない。
【0056】
以上のように構成されているため、専用のハードウェアを必要とすることなくエラーの起こりにくいNAND型フラッシュメモリを構成でき、長期間の使用に耐えうるという効果がある。
【0057】
なお、以上では、NAND型フラッシュメモリ保守装置100を説明したが、NAND型フラッシュメモリ保守装置100の各構成要素の処理をプログラムに実行させることでNAND型フラッシュメモリ保守装置100をNAND型フラッシュメモリ保守プログラムとして把握できる。また、NAND型フラッシュメモリ保守装置100の動作を、NAND型フラッシュメモリ保守装置100が行うNAND型フラッシュメモリ保守方法としても把握できる。
【符号の説明】
【0058】
20 読込破壊率管理部、21 書込破壊率管理部、22 経年劣化管理部、23 読込回数管理部、24 書込回数管理部、25 書込日時管理部、26 エラー管理部、27 診断情報管理部、28 診断部、29 保守部、100 NAND型フラッシュメモリ保守装置、110 CPU、120 RAM、130 NAND型フラッシュメモリ装置。

【特許請求の範囲】
【請求項1】
NAND型フラッシュメモリからなるNAND型フラッシュメモリ装置と、
前記NAND型フラッシュメモリ装置におけるデータの消去単位であるブロックに含まれるいずれかのページが読み出されるたびに読み出し回数を各ブロック毎にカウントし、ブロックごとの読み出し回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む読出回数管理部と、
前記NAND型フラッシュメモリ装置のブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をブロックごとにカウントし、ブロックごとの書き込み回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む書込回数管理部と、
前記読出回数管理部によりカウントされたブロックごとの前記読み出し回数に基づいて、保守するべき保守対象ブロックを選択する保守対象ブロック選択部と、
前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数に基づいて前記保守対象ブロックのすべてのデータを書き込む書込先ブロックを選択し、選択された書込先ブロックに保守対象ブロックのデータを書き込む保守部と
を備えたことを特徴とするNAND型フラッシュメモリ保守装置。
【請求項2】
前記NAND型フラッシュメモリ保守装置は、さらに、
前記NAND型フラッシュメモリ装置のブロックを対象として、ブロックが消去されたに日時を示すブロック消去日時を各ブロックごとに管理し、前記ブロック消去日時を前記NAND型フラッシュメモリ保守装置に書き込む書込日時管理部
を備え、
前記保守対象ブロック選択部は、
前記書込日時管理部によって書き込まれたブロックごとの最新のブロック消去日時と、前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数とに基づいて、前記保守対象ブロックを選択することを特徴とする請求項1記載のNAND型フラッシュメモリ保守装置。
【請求項3】
前記NAND型フラッシュメモリ保守装置は、さらに、
ページ読み込み時にエラーが生じた場合にブロックごとのエラー回数をブロックごとにカウントし、ブロックごとのエラー回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込むエラー管理部を備え、
前記保守対象ブロック選択部は、
前記書込日時管理部によって書き込まれたブロックごとの最新のブロック消去日時と、前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数と、前記エラー管理部によってカウントされたエラー回数とに基づいて、前記保守対象ブロックを選択することを特徴とする請求項2記載のNAND型フラッシュメモリ保守装置。
【請求項4】
前記保守対象ブロック選択部は、
前記書込日時管理部によって書き込まれた最新のブロック消去日時と、前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数と、前記エラー管理部によってカウントされたエラー回数とのそれぞれからブロックごとに優先度を生成し、生成した優先度に基づいて、前記保守対象ブロックを選択することを特徴とする請求項3記載のNAND型フラッシュメモリ保守装置。
【請求項5】
前記読出回数管理部は、
読み出し回数を前記所定のブロックに書き込むときには、カウントするごとに隣接するビットを変化させ、
前記書込回数管理部は、
書き込み回数を前記所定のブロックに書き込むときには、カウントするごとに隣接するビットを変化させることを特徴とする請求項1〜4のいずれかに記載のNAND型フラッシュメモリ保守装置。
【請求項6】
前記書込日時管理部は、
ブロック消去日時を前記NAND型フラッシュメモリ装置に書き込むときには、所定のブロックに順次追加して書き込むことを特徴とする請求項2〜5のいずれかに記載のNAND型フラッシュメモリ保守装置。
【請求項7】
前記NAND型フラッシュメモリ保守装置は、さらに、
RAM(Random Access Memory)を備え、
前記書込日時管理部は、
ブロック消去日時を前記NAND型フラッシュメモリ装置に書き込むときには、前記NAND型フラッシュメモリ装置に書き込む前に所定の時間だけ前記RAMに格納しておき、前記所定の時間が経過後に前記NAND型フラッシュメモリ装置にまとめて書き込むことを特徴とする請求項6記載のNAND型フラッシュメモリ保守装置。
【請求項8】
前記保守対象ブロック選択部は、
前記NAND型フラッシュメモリ装置のすべてのブロックを対象して、前記保守対象ブロックを選択することを特徴とする請求項1〜7のいずれかに記載のNAND型フラッシュメモリ保守装置。
【請求項9】
NAND型フラッシュメモリからなるNAND型フラッシュメモリ装置を備えたコンピュータを、
前記NAND型フラッシュメモリ装置におけるデータの消去単位であるブロックに含まれるいずれかのページが読み出されるたびに読み出し回数を各ブロック毎にカウントし、ブロックごとの読み出し回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む読出回数管理部、
前記NAND型フラッシュメモリ装置のブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をブロックごとにカウントし、ブロックごとの書き込み回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込む書込回数管理部、
前記読出回数管理部によりカウントされたブロックごとの前記読み出し回数に基づいて、保守するべき保守対象ブロックを選択する保守対象ブロック選択部、
前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数に基づいて前記保守対象ブロックのすべてのデータを書き込む書込先ブロックを選択し、選択された書込先ブロックに保守対象ブロックのデータを書き込む保守部、
として機能させることを特徴とするNAND型フラッシュメモリ保守プログラム。
【請求項10】
NAND型フラッシュメモリからなるNAND型フラッシュメモリ装置を備えたコンピュータが行うNAND型フラッシュメモリ保守方法において、
(1)読出回数管理部が、
前記NAND型フラッシュメモリ装置におけるデータの消去単位であるブロックに含まれるいずれかのページが読み出されるたびに読み出し回数を各ブロック毎にカウントし、ブロックごとの読み出し回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込み、
(2)書込回数管理部が、
前記NAND型フラッシュメモリ装置のブロックのいずれかのページにデータが書き込まれるたびに書き込み回数をブロックごとにカウントし、ブロックごとの書き込み回数を前記NAND型フラッシュメモリ装置の所定のブロックに書き込み、
(3)保守対象ブロック選択部が、
前記読出回数管理部によりカウントされたブロックごとの前記読み出し回数に基づいて、保守するべき保守対象ブロックを選択し、
(4)保守部が、
前記書込回数管理部によりカウントされたブロックごとの前記書き込み回数に基づいて前記保守対象ブロックのすべてのデータを書き込む書込先ブロックを選択し、選択された書込先ブロックに保守対象ブロックのデータを書き込む
ことを特徴とするNAND型フラッシュメモリ保守方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−256944(P2010−256944A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−102566(P2009−102566)
【出願日】平成21年4月21日(2009.4.21)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】