(57)【要約】【課題】不揮発性メモリにおいて各ブロックのおける消去回数等の一の情報のみを各ブロックの信頼性（劣化度）として利用している場合、保持している一の情報自体もなんらかのアクシデントにより消失してしまう可能性もある。また、メモリの生産時に既に存在している各ブロックの特性のばらつきを考慮した信頼性は、消去回数のような使用実績を示す情報からは測ることができない。【解決手段】本発明における不揮発性メモリシステムは、ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムであって、不揮発性メモリ装置の複数種の作動情報をブロック単位で取得し、取得した作動情報を保持することを特徴とする。すなわち、各ブロックについて、消去回数のみというような単一の情報ではなく、複数種の作動情報を取得することを特徴とする。【選択図】図１
2007316779.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムであって、
不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する作動情報取得部と、
取得した作動情報を保持する作動情報保持部と、
を有する不揮発性メモリシステム。
【請求項２】
複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する信頼性情報生成部を有する請求項１に記載の不揮発性メモリシステム。
【請求項３】
ブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する管理部を有する請求項２に記載の不揮発性メモリシステム。
【請求項４】
管理部は、ブロックごとのデータの格納に際して読出エラー訂正のためにエラー訂正符号を含む格納を行なうとともに、読出に際して読出エラーの訂正を行なう訂正手段を有し、
作動情報取得部は、作動情報として読出エラーの訂正の成功・不成功を示すエラー訂正情報をブロックごとに取得するエラー訂正情報取得手段を有する請求項３に記載の不揮発性メモリシステム。
【請求項５】
作動情報取得部は、管理部からブロックごとにデータの格納に要した時間を示す格納時間情報を作動情報として取得する格納時間情報取得手段を有する請求項３又は４に記載の不揮発性メモリシステム。
【請求項６】
作動情報取得部は、管理部からブロックごとにデータの消去に要した時間を示す消去時間情報を作動情報として取得する消去時間情報取得手段を有する請求項３から５のいずれか一に記載の不揮発性メモリシステム。
【請求項７】
作動情報取得部は、管理部からブロックごとにデータの消去回数を示す消去回数情報を作動情報として取得する消去回数情報取得手段を有する請求項３から６のいずれか一に記載の不揮発性メモリシステム。
【請求項８】
作動情報取得部は、管理部からブロックごとにデータの読出回数を示す読出回数情報を作動情報として取得する読出回数情報取得手段を有する請求項３から７のいずれか一に記載の不揮発性メモリシステム。
【請求項９】
作動情報取得部は、管理部からブロックごとにデータの格納回数を示す格納回数情報を作動情報として取得する格納回数情報取得手段を有する請求項３から８のいずれか一に記載の不揮発性メモリシステム。
【請求項１０】
作動情報保持部は、不揮発性メモリ装置内に配置されている請求項１から９のいずれか一に記載の不揮発性メモリシステム。
【請求項１１】
作動情報保持部は、作動情報を不揮発性メモリ装置内の複数のブロックに対してエラー訂正符号を含ませて分散して記録する冗長分散記録手段を有する請求項１０に記載の不揮発性メモリシステム。
【請求項１２】
ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムの動作方法であって、
不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する作動情報取得ステップと、
取得した作動情報を保持する作動情報保持ステップと、
を有する不揮発性メモリシステムの動作方法。
【請求項１３】
複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する信頼性情報生成ステップを有する請求項１２に記載の不揮発性メモリシステムの動作方法。
【請求項１４】
ブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する管理ステップを有する請求項１３に記載の不揮発性メモリシステムの動作方法。
【請求項１５】
作動情報取得ステップは、管理ステップにおいてブロックごとにデータの格納に要した時間を示す格納時間情報を作動情報として取得する格納時間情報取得サブステップを有する請求項１４に記載の不揮発性メモリシステムの動作方法。
【請求項１６】
作動情報取得ステップは、管理ステップにおいてブロックごとにデータの消去に要した時間を示す消去時間情報を作動情報として取得する消去時間情報取得サブステップを有する請求項１２から１４のいずれか一に記載の不揮発性メモリシステムの動作方法。
【請求項１７】
作動情報保持ステップにおいて、作動情報を不揮発性メモリ装置内に保持することを特徴とする不揮発性メモリシステムの動作方法であって、
作動情報保持ステップは、作動情報を不揮発性メモリ装置内の複数のブロックに対してエラー訂正符号を含ませて分散して記録する冗長分散記録サブステップを有する請求項１２から１６のいずれか一に記載の不揮発性メモリシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムに関する。
【背景技術】
【０００２】
不揮発性メモリの一つとして、フラッシュメモリがあるが、フラッシュメモリはデータを書込む際に、ブロック単位でデータの消去を行なってから書込みを行なう。また、フラッシュメモリはデータの書込み回数に限界があり、一般的には１０万回程度である。このため、例えば特定のブロックのみに書込みを繰り返すと、他のブロックの書込み回数が少ない場合であっても、メモリ全体としては寿命が尽きてしまうという問題があった。このような問題に鑑み、各ブロックにおける書込み回数等を管理し、メモリ全体に渡って各ブロックへの書込みが平均的に行なわれるように制御等することにより、メモリ全体の寿命を延ばすための技術が開示されている（例えば、特許文献１、特許文献２、特許文献３、特許文献４）。
【特許文献１】特開平８−４５２８７号公報
【特許文献２】特開平９−３０６１８６号公報
【特許文献３】特開平５−２８２８８０号公報
【特許文献４】特開平５−４６３５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１、特許文献２、特許文献３、特許文献４においては、各ブロックにおける消去回数等の一の情報のみを各ブロックの信頼性（劣化度）として利用している。このような場合、保持している一の情報自体もなんらかのアクシデントにより消失してしまう可能性もある。また、メモリの生産時に既に存在している各ブロックの特性のばらつきを考慮した信頼性は、消去回数のような使用実績を示す情報からは測ることができない。
【課題を解決するための手段】
【０００４】
そこで、本発明においては、ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムであって、不揮発性メモリ装置の複数種の作動情報をブロック単位で取得し、取得した作動情報を保持することを特徴とする不揮発性メモリシステムを提案する。すなわち、各ブロックについて、消去回数のみというような単一の情報ではなく、複数種の作動情報を取得することにより、一の作動情報が消失したとしても他の作動情報を利用して各ブロックの信頼性を測ることが可能となる。また、作動情報として、データ読出し時の読出しエラーの訂正の成功、不成功を示すエラー訂正情報や、データの格納時間（書込み時間）、データの消去時間、データの消去回数、データの読出回数、データの格納回数（書込み回数）、等を取得するようになっていてもよい。ＮＡＮＤ型フラッシュメモリは、データの読出しだけでも劣化するという特性があるため、読出回数は信頼性を測るための情報として有用である。また、フラッシュメモリの特性として、劣化してくるとデータの消去時間や書込み時間が長くなるという特性がある。また、データの消去時間や書込み時間等の情報は何らかのアクシデントにより消失してしまったとしてもその都度、計測し直すことが可能であるので、信頼性を測るための情報として利用することは有効である。また、メモリ生産時に既に存在している各ブロックの特性のばらつきをも考慮することも可能である（前述のように、消去回数等では考慮できない）。また、複数種の作動情報を不揮発性メモリ装置内に保持する場合には、複数のブロックに対してエラー訂正符号を含ませて分散して記録するようになっていてもよい。これにより、例えば一のブロックから作動情報が読み出せなくなったとしても、他のブロックに記録されている作動情報から各ブロックの信頼性を測ることが可能である。
【発明の効果】
【０００５】
本発明の不揮発性メモリシステムによれば、複数種の作動情報をブロック単位で取得することにより、作動情報自体の消失にも対応し、かつ多面的に信頼性を測ることが可能である。また、データの消去時間や書込み時間を作動情報として取得することにより、作動情報自体が消失しても計測し直すことが可能であり、かつメモリ生産時における各ブロックの特性のばらつきをも考慮することが可能である。
【発明を実施するための最良の形態】
【０００６】
本発明を実施するための最良の形態について図面を用いて詳細に説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。実施形態１は、主に請求項１、１０、１２などについて説明する。実施形態２は、主に請求項２、１３などについて説明する。実施形態３は、主に請求項３、１４などについて説明する。実施形態４は、主に請求項４などについて説明する。実施形態５は、主に請求項５、１５などについて説明する。実施形態６は、主に請求項６、１６などについて説明する。実施形態７は、主に請求項７などについて説明する。実施形態８は、主に請求項８などについて説明する。実施形態９は、主に請求項９などについて説明する。実施形態１０は、主に請求項１０、１１、１７などについて説明する。
（実施形態１）
【０００７】
（実施形態１：概要）本実施形態は、ブロック単位でのみデータ消去可能な不揮発性メモリ装置を含む不揮発性メモリシステムであって、不揮発性メモリ装置の複数種の作動情報をブロック単位で取得し、取得した作動情報を保持することを特徴とする不揮発性メモリシステムについて説明する。
【０００８】
（実施形態１：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図１に例示する。不揮発性メモリシステムは、「作動情報取得部」（０１０１）と、「作動情報保持部」（０１０２）と、を有する。なお、不揮発性メモリシステムはブロック単位でのみデータ消去可能な不揮発性メモリ装置（図示しない）を含む。「不揮発性メモリ装置を含む」とは、不揮発性メモリシステムの一部として不揮発性メモリ装置が含まれていてもよいし、不揮発性メモリシステムが不揮発性メモリ装置そのものであってもよいという意味である。また、不揮発性メモリ装置は、例えばＮＡＮＤ型フラッシュメモリやＮＯＡ型フラッシュメモリ等が該当する。
【０００９】
なお、以下に詳述する本発明の構成要素である各部は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアの両方のいずれかによって構成される。例えば、これらを実現する一例として、コンピュータを利用する場合には、ＣＰＵ、バス、メモリ、インタフェース、周辺装置などで構成されるハードウェアと、それらハードウェア上で実行可能なソフトウェアがある。ソフトウェアとしては、メモリ上に展開されたプログラムを順次実行することで、メモリ上のデータや、インタフェースを介して入力されるデータの加工、保存、出力などにより各部の機能が実現される。さらに具体的には、図３４は一般的なコンピュータの構成を例示する図でありコンピュータが主にＣＰＵ（３４１０）、入出力インタフェース（Ｉ／Ｏ）（３４２０）、ＨＤＤ（３４３０）、一時記憶メモリ（ＲＡＭ）（３４４０）、ＲＯＭ（３４５０）等から構成されることを示しているが、本件発明に係る不揮発性メモリシステムは図３４と同様の構成により実現可能である。（明細書の全体を通じて同様である。）
【００１０】
「作動情報取得部」（０１０１）は、不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する機能を有する。「複数種」とは、二以上であることを意味する。「作動情報」とは、ブロックにおける消去、書込み、読出し等に関する情報を指す。具体的には、例えば、消去回数、書込み回数、読出し回数、消去時間、書込み時間、読出し時間、等が該当する。さらに、例えばデータ読出し時にエラー訂正を行なう場合には、エラー訂正の有無やエラー訂正の成否等であってもよい。
【００１１】
図２は、作動情報の具体例を示す。図２に例示した作動情報は、ブロック番号１０のブロックは、消去回数が１５７００回、読出回数が２２３００回であることを表している。より具体的には、作動情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１０、ｅｒａｓｅ＿ｃｏｕｎｔ＝１５７００、ｒｅａｄ＿ｃｏｕｎｔ＝２２３００」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」、「ｅｒａｓｅ＿ｃｏｕｎｔ」、「ｒｅａｄ＿ｃｏｕｎｔ」は、それぞれブロック番号、消去回数、読出回数を表すプログラム上の変数である。また、図２においてはブロック番号１０のブロックのみについての作動情報を示しているが、他の各ブロックについても同様に作動情報が取得されることとなる。作動情報の取得元としては、後述の管理部などが想定され、例えばメモリコントローラ等から取得する場合が想定される。
【００１２】
「作動情報保持部」（０１０２）は、取得した作動情報を保持する機能を有する。「取得した作動情報」とは、前記作動情報取得部（０１０１）にて取得した作動情報を指す。また、作動情報保持部は、不揮発性メモリ装置内に配置されていてもよい。すなわち、作動情報自体が本発明に係る不揮発性メモリ装置のブロックに記録されるようになっていてもよい。また、その場合には、一のブロックに複数の作動情報が記録されるようになっていてもよいし、複数のブロックに複数の作動情報が別々に記録されるようになっていてもよい。なお、複数のブロックに複数の作動情報が別々に記録されるようになっていると、あるブロックから作動情報が読み出せなくなったとしても他のブロックに記録されている作動情報を利用して各ブロックの信頼性を測る等が可能となるため、より安全である。
【００１３】
図３は、作動情報保持部にて保持されている作動情報の具体例を示す。「ブロック番号」は、作動情報が保持されているブロックであり、前述の変数ｂｌｏｃｋ＿ｎｕｍで示されるブロック番号である。また、「消去回数」は、前述の変数ｅｒａｓｅ＿ｃｏｕｎｔで示される消去回数であり、「読出回数」は、前述の変数ｒｅａｄ＿ｃｏｕｎｔで示される読出回数である。作動情報保持部は、例えばこのような情報がデータベース等としてＲＡＭやＨＤＤ等の所定の記憶領域に格納されている。
【００１４】
（実施形態１：処理の流れ）図４は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００１５】
最初に、ステップＳ０４０１において不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する。この処理は、主に作動情報取得部によって実行される。次に、ステップＳ０４０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。
【００１６】
なお、図４のフロー図は、計算機に実行させるプログラムの処理フロー図とみなすことも可能である。さらに、このようなプログラムをフレキシブルディスク等の媒体に記録することも可能である。（明細書の全体を通じて同様である。）
【００１７】
（実施形態１：詳細な具体例）図３６は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（３６０１）と作動情報保持部（３６０２）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば作動情報取得部（３６０１）は制御回路（３６０３）から作動情報を取得するようになっていてもよい。また、メモリセルアレイ（３６０４）を作動情報保持部として利用するようになっていてもよい。
【００１８】
（実施形態１：効果）本実施形態に係る不揮発性メモリシステムは、不揮発性メモリ装置の複数種の作動情報を取得し、保持することができるので、例えば一の作動情報が何らかのアクシデントにより消失等してしまったとしても、他の作動情報を利用して、例えば各ブロックの信頼性を測ることが可能である。また、複数種の作動情報を利用することによって、より多面的に信頼性を測ることができる。
（実施形態２）
【００１９】
（実施形態２：概要）本実施形態は、複数の作動情報を利用してブロック単位の信頼性情報を生成することが可能な不揮発性メモリシステムについて説明する。
【００２０】
（実施形態２：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図５に例示する。不揮発性メモリシステムは、「作動情報取得部」（０５０１）と、「作動情報保持部」（０５０２）と、「信頼性情報生成部」（０５０３）と、を有する。
【００２１】
「信頼性情報生成部」（０５０３）は、複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する機能を有する。「複数の作動情報」とは、前記作動情報保持部（０５０２）にて保持されている作動情報が該当する。「ブロック単位の信頼性情報を生成する」とは、ブロックごとに信頼性情報を生成することを意味する。また、「信頼性情報」とは、各ブロックの信頼性（劣化度）を表す情報であり、具体的には、例えば信頼度のような数値で表されるものであってもよいし、信頼度ランクのようにレベルで表されるものであってもよい。「複数の作動情報をパラメータとした計算」とは、例えば、複数の作動情報をパラメータとした計算式によって信頼度を算出する場合や、各作動情報に対して値に応じたランクを付与し、付与された各作動情報のランクを加味して該当ブロックの信頼度ランクを決定する場合等が該当する。
【００２２】
図６は、信頼性情報生成部において信頼性情報として信頼度を算出する場合を例示する。まず、作動情報保持部（０６０１）においては、図３に例示した作動情報と同じ作動情報（０６０３）が保持されているとする。また、信頼性情報生成部（０６０２）において、信頼度を算出するための計算式として、消去回数と読出回数をパラメータとして、「信頼度＝消去回数×０．８＋読出回数×０．２」という計算式が予め決められていたとする。すると、例えばブロック番号１０では、消去回数が１５７００、読出回数が２２３００、であるので、１５７００×０．８＋２２３００×０．２＝１７０２０、と計算され、ブロック番号１０のブロックの信頼度は１７０２０であると算出される。他のブロックについても同様である（０６０４）。
【００２３】
図７は、信頼性情報生成部において信頼性情報として信頼度ランクを決定する場合を例示する。図６と同様に、作動情報保持部（図示しない）においては、図３に例示した作動情報と同じ作動情報が保持されているとする。また、信頼性情報生成部において消去回数と読出回数に対して与えるランクとして、０回以上１万回未満の場合はランク１、１万回以上３万回未満の場合はランク２、３万回以上５万回未満の場合はランク３、５万回以上７万回未満の場合はランク４、７万回以上の場合はランク５、と予め決められているとする（０７０１）。すなわち、ランク１が一番信頼度が高く、ランク５が一番信頼度が低いということである。また、消去回数と読出回数のランクのうち信頼度の低いほうのランクを該当ブロックの信頼度ランクとして決定することとする。この場合、例えばブロック番号１１では、消去回数が５３１００であるため消去回数のランクはランク４、読出回数は７５０００であるためランク５、と決定される。また、消去回数のランク４と読出回数のランク５というレベルにより、ブロック番号１１のブロックの信頼度ランクはランク５と決定される（０７０２）。
【００２４】
また、信頼性情報生成部の具体的な処理としては、例えば作動情報保持部においてデータベース等としてＲＡＭやＨＤＤ等の所定の記憶領域に格納されている作動情報を読出し、さらに、例えば図６に例示したような計算式をＲＡＭやＨＤＤ等の所定の記憶領域から読出す。読出した計算式に応じて、読出した作動情報により信頼度を算出し、算出した信頼度をＲＡＭやＨＤＤ等の所定の記憶領域に格納する。また、信頼性情報生成部はこのような処理をＣＰＵに実行させるためのプログラムを含んでいてもよい。
【００２５】
（実施形態２：処理の流れ）図８は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００２６】
最初に、ステップＳ０８０１において不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する。この処理は、主に作動情報取得部によって実行される。次に、ステップＳ０８０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ０８０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。
【００２７】
（実施形態２：詳細な具体例）図３７は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（３７０１）と作動情報保持部（３７０２）と信頼性情報生成部（３７０５）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば作動情報取得部（３７０１）は制御回路（３７０３）から作動情報を取得するようになっていてもよい。また、メモリセルアレイ（３７０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（３７０５）はメモリセルアレイ（３７０４）に保持された作動情報から信頼性情報を生成するようになっていてもよい。
【００２８】
（実施形態２：効果）本実施形態に係る不揮発性メモリシステムは、複数の作動情報を利用してブロック単位の信頼性情報を生成できるので、多面的に各ブロックの信頼性を測ることができる。
（実施形態３）
【００２９】
（実施形態３：概要）本実施形態は、各ブロックの信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理することが可能な不揮発性メモリシステムについて説明する。
【００３０】
（実施形態３：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
９に例示する。不揮発性メモリシステムは、「作動情報取得部」（０９０１）と、「作動情報保持部」（０９０２）と、「信頼性情報生成部」（０９０３）と、「管理部」（０９０４）と、を有する。すなわち、本実施形態に係る不揮発性メモリシステムは、実施形態２に係る不揮発性メモリシステムの構成に、「管理部」（０９０４）を加えた構成となっている。
【００３１】
「管理部」（０９０４）は、ブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する機能を有する。「ブロック単位の信頼性情報」とは、前記信頼性情報生成部（０９０３）にて生成されるブロック単位の信頼性情報を指す。「ブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する」とは、例えばデータの格納（書込み）や再配置の命令が不揮発性メモリシステムに対して出力された場合に、より信頼性の高いブロックにデータを格納したり再配置をしたりする場合等が該当する。例えば、図６にて算出したブロック番号８から１２の信頼度を例とすると、一番信頼度が高い（値が低い）のはブロック番号８であるので、不揮発性メモリシステムにてデータの書込みを行なう場合にはブロック番号８のブロックに書込む等の処理を行なう。また、複数のブロックを使用してデータの書込みを行なう場合には、信頼度が高い順に、ブロック番号８、９、１０、１２、１１、のブロックを使用していく等となっているとよい。管理部は、具体的には、例えばメモリコントローラなどが該当する。図３２に例示するように、メモリコントローラはメモリとＣＰＵとのデータの仲介を行なう機能を有し、例えば、アプリケーション（３２０１）からメモリ（３２０３）に対してデータの書込み命令が実行された場合には、まずメモリコントローラ（３２０２）を介してメモリ（３２０３）にデータの書込みが行なわれることとなる。
【００３２】
管理部の具体的な処理としては、例えば信頼性情報生成部においてＲＡＭやＨＤＤ等の所定の記憶領域に格納されている各ブロックの信頼性情報を読出し、読出した各ブロックの信頼性情報にて表される信頼度のうち最も小さい値を示すブロックのブロック番号をＲＡＭ等の所定の記憶領域に格納する。さらに、ＲＡＭ等の所定の記憶領域から信頼度の最も小さいブロックのブロック番号を読出し、読出したブロック番号のブロックに対してデータの格納（書込み）を行なう。また、管理部はこのような処理をＣＰＵに実行させるためのプログラムを含んでいてもよい。
【００３３】
（実施形態３：処理の流れ）図１０は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００３４】
最初に、ステップＳ１００１において不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する。この処理は、主に作動情報取得部によって実行される。次に、ステップＳ１００２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ１００３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ１００４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ１００５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ１００１に戻る。
【００３５】
（実施形態３：詳細な具体例）図３８は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（３８０１）と作動情報保持部（３８０２）と信頼性情報生成部（３８０５）と管理部（３８０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（３８０３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（３８０１）は制御回路（３８０３）から作動情報を取得するようになっていてもよい。また、メモリセルアレイ（３８０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（３８０５）はメモリセルアレイ（３８０４）に保持された作動情報から信頼性情報を生成するようになっていてもよい。
【００３６】
（実施形態３：効果）本実施形態に係る不揮発性メモリシステムは、各ブロックの信頼性情報に基づいてデータの格納や再配置を行なうことができるので、例えば劣化の少ない、より信頼性の高いブロックにデータを格納等することができる。
（実施形態４）
【００３７】
（実施形態４：概要）本実施形態は、ブロックごとにデータを格納する際にエラー訂正符号を付加して格納を行ない、読出しに際しては読出しエラーの訂正を行なうことで、作動情報として読出しエラーの訂正の成否を示すエラー訂正情報を取得することを特徴とする不揮発性メモリシステムについて説明する。
【００３８】
（実施形態４：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
１１に例示する。不揮発性メモリシステムは、「作動情報取得部」（１１０１）と、「作動情報保持部」（１１０２）と、「信頼性情報生成部」（１１０３）と、「管理部」（１１０４）と、を有する。また、管理部（１１０４）は、「訂正手段」（１１０５）を有する。また、作動情報取得部（１１０１）は、「エラー訂正情報取得手段」（１１０６）を有する。すなわち、本実施形態に係る不揮発性メモリシステムは、実施形態３に係る不揮発性メモリシステムの構成に、「訂正手段」（１１０５）と「エラー訂正情報取得手段」（１１０６）を加えた構成となっている。
【００３９】
「訂正手段」（１１０５）は、ブロックごとのデータの格納に際して読出エラー訂正のためにエラー訂正符号を含む格納を行なうとともに、読出に際して読出エラーの訂正を行なう機能を有する。「エラー訂正符号」とは、具体的には、例えばＥＣＣ（Ｅｒｒｏｒ−Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）、ハミング符号、等が該当する。例えばＥＣＣの場合、図３３に例示するように、データ６４ビット（３３０１）につき８ビットのエラー訂正用チェックビット（３３０２）を持たせると２ビットまでの誤りを検出し１ビットまでの誤りは訂正することができる。また、「エラー訂正符号を含む格納」とは、すなわち、図３３の例で言えばデータの６４ビットに８ビットのエラー訂正用チェックビットを加えて全７２ビットを格納することを意味する。
【００４０】
「エラー訂正情報取得手段」（１１０６）は、作動情報として読出エラーの訂正の成功・不成功を示すエラー訂正情報をブロックごとに取得する機能を有する。「読出エラーの訂正の成功・不成功」とは、読出エラーのチェックを行ないエラーがあると判断してエラー訂正を行なったか否かを意味してもよいし、エラー訂正を行なった結果として訂正することができたか否かを意味してもよい。
【００４１】
図１２は、エラー訂正情報の具体例を示す。図１２に例示したエラー訂正情報は、ブロック番号１２のブロックは、読出エラー訂正が成功したことを表している。より具体的には、エラー訂正情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｅｒｒｏｒ＿ｃｏｒｒｅｃｔ＝‘ｓｕｃｃｅｓｓ’」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数である。また、「ｅｒｒｏｒ＿ｃｏｒｒｅｃｔ」は、読出エラーの訂正の成功・不成功を表すプログラム上の変数であり、値が‘ｓｕｃｃｅｓｓ’であれば読出エラーの訂正が成功したことを表し、値が‘ｕｎｓｕｃｃｅｓｓ’であれば読出エラーの訂正が不成功であったことを表す。また、図１２においてはブロック番号１２のブロックのみについてのエラー訂正情報を示しているが、他の各ブロックについても同様にエラー訂正情報が取得されることとなる。エラー訂正情報は作動情報として取得されるものであるので、エラー訂正情報の取得元としては、前記訂正手段（１１０５）等が想定される。
【００４２】
（実施形態４：処理の流れ）図１３は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００４３】
最初に、ステップＳ１３０１において作動情報として読出エラーの訂正の成功・不成功を示すエラー訂正情報を作動情報として取得する。この処理は、主にエラー訂正情報取得手段によって実行される。次に、ステップＳ１３０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ１３０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ１３０４においてブロックごとのデータの格納に際して読出エラー訂正のためにエラー訂正符号を含む格納を行なうとともに、読出に際して読出エラーの訂正を行なう。この処理は、主に訂正手段によって実行される。次に、ステップＳ１３０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ１３０１に戻る。
【００４４】
（実施形態４：詳細な具体例）図３９は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（エラー訂正情報取得手段）（３９０１）と作動情報保持部（３９０２）と信頼性情報生成部（３９０５）と管理部（訂正手段）（３９０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（３９０３）がすなわち管理部（訂正手段）の役目を果たしていてもよい。また、例えば作動情報取得部（エラー訂正情報取得手段）（３９０１）は制御回路（３９０３）から作動情報（エラー訂正情報）を取得するようになっていてもよい。また、メモリセルアレイ（３９０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（３９０５）はメモリセルアレイ（３９０４）に保持された作動情報（エラー訂正情報）から信頼性情報を生成するようになっていてもよい。
【００４５】
また、さらに訂正手段における、前記「ブロックごとのデータの格納に際して読出エラー訂正のためにエラー訂正符号を含む格納」はメモリの外部にて実行され、前記「読出に際して読出エラーの訂正」はメモリ内部（制御回路３９０３）にて実行されるようになっていてもよい。
【００４６】
（実施形態４：効果）本実施形態に係る不揮発性メモリシステムは、作動情報としてエラー訂正情報をブロックごとに取得することができるので、例えばエラー訂正を行なうことができないブロックを避けて、データの格納等を行なうことができる。
（実施形態５）
【００４７】
（実施形態５：概要）本実施形態は、ブロックごとにデータの格納に要した時間を示す格納時間情報を作動情報として取得することを特徴とする不揮発性メモリシステムについて説明する。
【００４８】
（実施形態５：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
１４に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態３又は４に係る不揮発性メモリシステムの構成に、「格納時間情報取得手段」（１４０７）を加えた構成となっている。図１４においては、実施形態３に係る不揮発性メモリシステムの構成に、「格納時間情報取得手段」（１４０７）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（１４０１）と、「作動情報保持部」（１４０２）と、「信頼性情報生成部」（１４０３）と、「管理部」（１４０４）と、を有する。また、作動情報取得部（１４０１）は、「格納時間情報取得手段」（１４０７）を有する。
【００４９】
「格納時間情報取得手段」（１４０７）は、管理部（１４０４）からブロックごとにデータの格納に要した時間を示す格納時間情報を作動情報として取得する機能を有する。「格納に要した時間」とは、図３５に例示した構成において、メモリコントローラ（３５０１）から制御回路（３５０２）までの処理時間であってもよいし、制御回路（３５０２）からメモリセル（３５０３）までの処理時間であってもよいし、双方の処理時間を足し合わせた処理時間であってもよい。さらに詳しくは、図４０は一般的なフラッシュメモリの構成に加えて、作動情報取得部（格納時間情報取得手段）（４００１）と作動情報保持部（４００２）と信頼性情報生成部（４００５）と管理部（制御回路４００３）とがメモリ内部に構成されている場合を例示する図であるが、通常、格納データは、ＤＱ０〜ＤＱ１５に与えられる。また、アドレスは／ＣＥと／ＷＥの両方がＬレベルとなった時、データは／ＷＥと／ＣＥの両方がＬレベルになった後いずれか一方が立ち上がってＨレベルへ変化したタイミングにてメモリセルアレイ（４００４）に取り込まれることとなる。また、ＮＯＲ型フラッシュメモリにおいては、例えば特定のアドレスに特定のデータを３回書込んだ後に格納データを１回書込むというコマンドシーケンスを踏むことで格納データの書込み（格納）を行なうことができるが、格納時間とは、これら一連の格納処理が行なわれる時間等が該当する。
【００５０】
図１５は、格納時間情報の具体例を示す。図１５に例示した格納時間情報は、ブロック番号１２のブロックは、データを格納するのに２００μｓ（マイクロ秒）要したことを表している。より具体的には、格納時間情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｗｒｉｔｅ＿ｔｉｍｅ＝２００」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数である。また、「ｗｒｉｔｅ＿ｔｉｍｅ」は、データの格納に要した時間を表すプログラム上の変数であり、図１５においては単位はマイクロ秒で表されている。また、図１５においてはブロック番号１２のブロックのみについての格納時間情報を示しているが、他の各ブロックについても同様に格納時間情報が取得されることとなる。格納時間情報は作動情報として取得されるものであるので、格納時間情報の取得元としては、前記管理部（１４０４）等が想定される。
【００５１】
（実施形態５：処理の流れ）図１６は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００５２】
最初に、ステップＳ１６０１においてブロックごとにデータの格納に要した時間を示す格納時間情報を作動情報として取得する。この処理は、主に格納時間情報取得手段によって実行される。次に、ステップＳ１６０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ１６０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ１６０４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ１６０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ１６０１に戻る。
【００５３】
（実施形態５：詳細な具体例）図４０は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（格納時間情報取得手段）（４００１）と作動情報保持部（４００２）と信頼性情報生成部（４００５）と管理部（４００３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（４００３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（格納時間情報取得手段）（４００１）は制御回路（４００３）から作動情報（格納時間情報）を取得するようになっていてもよい。また、メモリセルアレイ（４００４）を作動情報保持部として利用するようになっており、信頼性情報生成部（４００５）はメモリセルアレイ（４００４）に保持された作動情報（格納時間情報）から信頼性情報を生成するようになっていてもよい。
【００５４】
（実施形態５：効果）本実施形態に係る不揮発性メモリシステムは、格納時間情報を作動情報として取得することができるので、劣化してくるとデータの格納時間が長くなるというフラッシュメモリの特性を利用して、信頼性の低い（劣化している）ブロックを避けて、データの格納等を行なうことができる。また、格納時間情報自体が消失しても計測し直すことが可能であり、かつメモリ生産時における各ブロックの特性のばらつきをも考慮することが可能である。
（実施形態６）
【００５５】
（実施形態６：概要）本実施形態は、ブロックごとにデータの消去に要した時間を示す消去時間情報を作動情報として取得することを特徴とする不揮発性メモリシステムについて説明する。
【００５６】
（実施形態６：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
１７に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態３から５のいずれか一に係る不揮発性メモリシステムの構成に、「消去時間情報取得手段」（１７０８）を加えた構成となっている。図１７においては、実施形態３に係る不揮発性メモリシステムの構成に、「消去時間情報取得手段」（１７０８）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（１７０１）と、「作動情報保持部」（１７０２）と、「信頼性情報生成部」（１７０３）と、「管理部」（１７０４）と、を有する。また、作動情報取得部（１７０１）は、「消去時間情報取得手段」（１７０８）を有する。
【００５７】
「消去時間情報取得手段」（１７０８）は、管理部（１７０４）からブロックごとにデータの消去に要した時間を示す消去時間情報を作動情報として取得する機能を有する。「消去に要した時間」とは、図３５に例示した構成において、メモリコントローラ（３５０１）から制御回路（３５０２）までの処理時間であってもよいし、制御回路（３５０２）からメモリセル（３５０３）までの処理時間であってもよいし、双方の処理時間を足し合わせた処理時間であってもよい。さらに詳しくは、図４１は一般的なフラッシュメモリの構成に加えて、作動情報取得部（消去時間情報取得手段）（４１０１）と作動情報保持部（４１０２）と信頼性情報生成部（４１０５）と管理部（制御回路４１０３）とがメモリ内部に構成されている場合を例示する図であるが、データの格納と同様に、アドレスは／ＣＥと／ＷＥの両方がＬレベルとなった時、データは／ＷＥと／ＣＥの両方がＬレベルになった後いずれか一方が立ち上がってＨレベルへ変化したタイミングにてメモリセルアレイ（４１０４）に取り込まれることとなる。ＮＯＲ型フラッシュメモリにおいては、例えば特定のアドレスに特定のデータを６回書込むというコマンドシーケンスを踏むことでデータの消去が行なうことができるが、消去時間とは、これら一連の消去処理が行なわれる時間等が該当する。
【００５８】
図１８は、消去時間情報の具体例を示す。図１８に例示した消去時間情報は、ブロック番号１２のブロックは、データを消去するのに２ｍｓ（ミリ秒）要したことを表している。より具体的には、消去時間情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｅｒａｓｅ＿ｔｉｍｅ＝２」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数である。また、「ｅｒａｓｅ＿ｔｉｍｅ」は、データの消去に要した時間を表すプログラム上の変数であり、図１８においては単位はミリ秒で表されている。また、図１８においてはブロック番号１２のブロックのみについての消去時間情報を示しているが、他の各ブロックについても同様に消去時間情報が取得されることとなる。消去時間情報は作動情報として取得されるものであるので、消去時間情報の取得元としては、前記管理部（１７０４）等が想定される。
【００５９】
（実施形態６：処理の流れ）図１９は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００６０】
最初に、ステップＳ１９０１においてブロックごとにデータの消去に要した時間を示す消去時間情報を作動情報として取得する。この処理は、主に消去時間情報取得手段によって実行される。次に、ステップＳ１９０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ１９０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ１９０４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ１９０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ１９０１に戻る。
【００６１】
（実施形態６：詳細な具体例）図４１は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（消去時間情報取得手段）（４１０１）と作動情報保持部（４１０２）と信頼性情報生成部（４１０５）と管理部（４１０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（４１０３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（消去時間情報取得手段）（４１０１）は制御回路（４１０３）から作動情報（消去時間情報）を取得するようになっていてもよい。また、メモリセルアレイ（４１０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（４１０５）はメモリセルアレイ（４１０４）に保持された作動情報（消去時間情報）から信頼性情報を生成するようになっていてもよい。
【００６２】
（実施形態６：効果）本実施形態に係る不揮発性メモリシステムは、消去時間情報を作動情報として取得することができるので、劣化してくるとデータの消去時間が長くなるというフラッシュメモリの特性を利用して、信頼性の低い（劣化している）ブロックを避けて、データの格納等を行なうことができる。また、消去時間情報自体が消失しても計測し直すことが可能であり、かつメモリ生産時における各ブロックの特性のばらつきをも考慮することが可能である。
（実施形態７）
【００６３】
（実施形態７：概要）本実施形態は、ブロックごとにデータの消去回数を示す消去回数情報を作動情報として取得することを特徴とする不揮発性メモリシステムについて説明する。
【００６４】
（実施形態７：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
２０に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態３から６のいずれか一に係る不揮発性メモリシステムの構成に、「消去回数情報取得手段」（２００９）を加えた構成となっている。図２０においては、実施形態３に係る不揮発性メモリシステムの構成に、「消去回数情報取得手段」（２００９）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（２００１）と、「作動情報保持部」（２００２）と、「信頼性情報生成部」（２００３）と、「管理部」（２００４）と、を有する。また、作動情報取得部（２００１）は、「消去回数情報取得手段」（２００９）を有する。
【００６５】
「消去回数情報取得手段」（２００９）は、管理部（２００４）からブロックごとにデータの消去回数を示す消去回数情報を作動情報として取得する機能を有する。図４２は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（消去回数情報取得手段）（４２０１）と作動情報保持部（４２０２）と信頼性情報生成部（４２０５）と管理部（制御回路４２０３）とがメモリ内部に構成されている場合を例示する図であるが、消去回数は、例えば制御回路（４２０３）で実行を許可した消去コマンドのカウンターをインクリメントすることにより取得することができる。
【００６６】
図２１は、消去回数情報の具体例を示す。図２１に例示した消去回数情報は、ブロック番号１２のブロックは、データの消去回数が３２０００回であることを表している。より具体的には、消去回数情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｅｒａｓｅ＿ｃｏｕｎｔ＝３２０００」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数であり、「ｅｒａｓｅ＿ｃｏｕｎｔ」は、データの消去回数を表すプログラム上の変数である。また、図２１においてはブロック番号１２のブロックのみについての消去回数情報を示しているが、他の各ブロックについても同様に消去回数情報が取得されることとなる。消去回数情報は作動情報として取得されるものであるので、消去回数情報の取得元としては、前記管理部（２００４）等が想定される。
【００６７】
（実施形態７：処理の流れ）図２２は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００６８】
最初に、ステップＳ２２０１においてブロックごとにデータの消去回数を示す消去回数情報を作動情報として取得する。この処理は、主に消去回数情報取得手段によって実行される。次に、ステップＳ２２０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ２２０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ２２０４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ２２０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ２２０１に戻る。
【００６９】
（実施形態７：詳細な具体例）図４２は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（消去回数情報取得手段）（４２０１）と作動情報保持部（４２０２）と信頼性情報生成部（４２０５）と管理部（４２０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（４２０３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（消去回数情報取得手段）（４２０１）は制御回路（４２０３）から作動情報（消去回数情報）を取得するようになっていてもよい。また、メモリセルアレイ（４２０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（４２０５）はメモリセルアレイ（４２０４）に保持された作動情報（消去回数情報）から信頼性情報を生成するようになっていてもよい。
【００７０】
（実施形態７：効果）本実施形態に係る不揮発性メモリシステムは、消去回数情報を作動情報として取得することができるので、消去回数の少ないブロックを優先的に使用して、データの格納等を行なうことができる。
（実施形態８）
【００７１】
（実施形態８：概要）本実施形態は、ブロックごとにデータの読出回数を示す読出回数情報を作動情報として取得することを特徴とする不揮発性メモリシステムについて説明する。
【００７２】
（実施形態８：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
２３に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態３から７のいずれか一に係る不揮発性メモリシステムの構成に、「読出回数情報取得手段」（２３１０）を加えた構成となっている。図２３においては、実施形態３に係る不揮発性メモリシステムの構成に、「読出回数情報取得手段」（２３１０）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（２３０１）と、「作動情報保持部」（２３０２）と、「信頼性情報生成部」（２３０３）と、「管理部」（２３０４）と、を有する。また、作動情報取得部（２３０１）は、「読出回数情報取得手段」（２３１０）を有する。
【００７３】
「読出回数情報取得手段」（２３１０）は、管理部（２３０４）からブロックごとにデータの読出回数を示す読出回数情報を作動情報として取得する機能を有する。図４３は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（読出回数情報取得手段）（４３０１）と作動情報保持部（４３０２）と信頼性情報生成部（４３０５）と管理部（制御回路４３０３）とがメモリ内部に構成されている場合を例示する図であるが、読出回数は、例えば制御回路（４３０３）で実行を許可した読出コマンドのカウンターをインクリメントすることにより取得することができる。
【００７４】
図２４は、読出回数情報の具体例を示す。図２４に例示した読出回数情報は、ブロック番号１２のブロックは、データの読出回数が５３０００回であることを表している。より具体的には、読出回数情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｒｅａｄ＿ｃｏｕｎｔ＝３２０００」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数であり、「ｒｅａｄ＿ｃｏｕｎｔ」は、データの読出回数を表すプログラム上の変数である。また、図２４においてはブロック番号１２のブロックのみについての読出回数情報を示しているが、他の各ブロックについても同様に読出回数情報が取得されることとなる。読出回数情報は作動情報として取得されるものであるので、読出回数情報の取得元としては、前記管理部（２００４）等が想定される。
【００７５】
（実施形態８：処理の流れ）図２５は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００７６】
最初に、ステップＳ２５０１においてブロックごとにデータの読出回数を示す読出回数情報を作動情報として取得する。この処理は、主に読出回数情報取得手段によって実行される。次に、ステップＳ２５０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ２５０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ２５０４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ２５０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ２５０１に戻る。
【００７７】
（実施形態８：詳細な具体例）図４３は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（読出回数情報取得手段）（４３０１）と作動情報保持部（４３０２）と信頼性情報生成部（４３０５）と管理部（４３０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（４３０３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（読出回数情報取得手段）（４３０１）は制御回路（４３０３）から作動情報（読出回数情報）を取得するようになっていてもよい。また、メモリセルアレイ（４３０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（４３０５）はメモリセルアレイ（４３０４）に保持された作動情報（読出回数情報）から信頼性情報を生成するようになっていてもよい。
【００７８】
（実施形態８：効果）本実施形態に係る不揮発性メモリシステムは、読出回数情報を作動情報として取得することができるので、読出回数の少ないブロックを優先的に使用してデータの格納等を行なうことが可能であり、特にデータの読出しだけでも劣化するという特性を有するＮＡＮＤ型フラッシュメモリ等において有用である。
（実施形態９）
【００７９】
（実施形態９：概要）本実施形態は、ブロックごとにデータの格納回数を示す格納回数情報を作動情報として取得することを特徴とする不揮発性メモリシステムについて説明する。
【００８０】
（実施形態９：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図
２６に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態３から８のいずれか一に係る不揮発性メモリシステムの構成に、「格納回数情報取得手段」（２６１１）を加えた構成となっている。図２６においては、実施形態３に係る不揮発性メモリシステムの構成に、「格納回数情報取得手段」（２６１１）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（２６０１）と、「作動情報保持部」（２６０２）と、「信頼性情報生成部」（２６０３）と、「管理部」（２６０４）と、を有する。また、作動情報取得部（２６０１）は、「格納回数情報取得手段」（２６１１）を有する。
【００８１】
「格納回数情報取得手段」（２６１１）は、管理部（２６０４）からブロックごとにデータの格納回数を示す格納回数情報を作動情報として取得する機能を有する。図４４は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（格納回数情報取得手段）（４４０１）と作動情報保持部（４４０２）と信頼性情報生成部（４４０５）と管理部（制御回路４４０３）とがメモリ内部に構成されている場合を例示する図であるが、格納回数は、例えば制御回路（４４０３）で実行を許可した格納コマンドのカウンターをインクリメントすることにより取得することができる。
【００８２】
図２７は、格納回数情報の具体例を示す。図２７に例示した格納回数情報は、ブロック番号１２のブロックは、データの格納回数が３０５００回であることを表している。より具体的には、格納回数情報は、例えば「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｗｒｉｔｅ＿ｃｏｕｎｔ＝３２０００」というようなデータにより表される。ここで、「ｂｌｏｃｋ＿ｎｕｍ」は、前述のようにブロック番号を表すプログラム上の変数であり、「ｗｒｉｔｅ＿ｃｏｕｎｔ」は、データの格納回数を表すプログラム上の変数である。また、図２７においてはブロック番号１２のブロックのみについての格納回数情報を示しているが、他の各ブロックについても同様に格納回数情報が取得されることとなる。格納回数情報は作動情報として取得されるものであるので、格納回数情報の取得元としては、前記管理部（２００４）等が想定される。
【００８３】
（実施形態９：処理の流れ）図２８は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００８４】
最初に、ステップＳ２８０１においてブロックごとにデータの格納回数を示す格納回数情報を作動情報として取得する。この処理は、主に格納回数情報取得手段によって実行される。次に、ステップＳ２８０２において取得した作動情報を保持する。この処理は、主に作動情報保持部によって実行される。次に、ステップＳ２８０３において複数の作動情報をパラメータとした計算によってブロック単位の信頼性情報を生成する。この処理は、主に信頼性情報生成部によって実行される。次に、ステップＳ２８０４においてブロック単位の信頼性情報を利用して各ブロックに対するデータの格納・再配置を管理する。この処理は、主に管理部によって実行される。次に、ステップＳ２８０５において処理を終了するか判断する。ここでの判断が終了するとの判断であった場合には、処理を終了する。ここでの判断が終了しないとの判断であった場合には、ステップＳ２８０１に戻る。
【００８５】
（実施形態９：詳細な具体例）図４４は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（格納回数情報取得手段）（４４０１）と作動情報保持部（４４０２）と信頼性情報生成部（４４０５）と管理部（４４０３）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば制御回路（４４０３）がすなわち管理部の役目を果たしていてもよい。また、例えば作動情報取得部（格納回数情報取得手段）（４４０１）は制御回路（４４０３）から作動情報（格納回数情報）を取得するようになっていてもよい。また、メモリセルアレイ（４４０４）を作動情報保持部として利用するようになっており、信頼性情報生成部（４４０５）はメモリセルアレイ（４４０４）に保持された作動情報（格納回数情報）から信頼性情報を生成するようになっていてもよい。
【００８６】
（実施形態９：効果）本実施形態に係る不揮発性メモリシステムは、格納回数情報を作動情報として取得することができるので、格納回数の少ないブロックを優先的に使用して、データの格納等を行なうことができる。
（実施形態１０）
【００８７】
（実施形態１０：概要）本実施形態は、作動情報保持部が不揮発性メモリシステム内に配置されている不揮発性メモリシステムであって、作動情報保持部は、作動情報を不揮発性メモリ装置内の複数のブロックに対してエラー訂正符号を含ませて分散して記録することを特徴とする不揮発性メモリシステムについて説明する。
【００８８】
（実施形態１０：構成）本実施形態に係る不揮発性メモリシステムの機能ブロック図を図２９に例示する。本実施形態に係る不揮発性メモリシステムは、実施形態１から９のいずれか一に係る不揮発性メモリシステムの構成に、「冗長分散記録手段」（２９１２）を加えた構成となっている。図２９においては、実施形態１に係る不揮発性メモリシステムの構成に、「冗長分散記録手段」（２９１２）を加えた構成を例示している。不揮発性メモリシステムは、「作動情報取得部」（２９０１）と、「作動情報保持部」（２９０２）と、を有する。また、作動情報保持部（２９０２）は、「冗長分散記録手段」（２９１２）を有する。なお、作動情報保持部（２９０２）は、不揮発性メモリ装置内に配置されていることを特徴とする。すなわち、本実施形態に係る不揮発性メモリシステムにおいては、作動情報は不揮発性メモリ装置内に保持されることとなる。
【００８９】
「冗長分散記録手段」（２９１２）は、作動情報を不揮発性メモリ装置内の複数のブロックに対してエラー訂正符号を含ませて分散して記録する機能を有する。「エラー訂正符号」とは、前述のように、例えばＥＣＣ、ハミング符号、等が該当する。「エラー訂正符号を含ませて分散して記録する」とは、複数の作動情報にそれぞれエラー訂正用チェックビット等を加えて別々のブロックに記録することを意味する。すなわち、作動情報を読出す際に読出エラーが発生したとしても、エラー訂正用チェックビット等により読出エラー訂正を行なうことができる。
【００９０】
図３０は、冗長分散記録手段における処理の具体例を示す。図３０においては、ブロック番号１２のブロックの作動情報として、格納時間、消去時間、消去回数、の３つを記録する場合を例示する。例えば、ブロック番号１３のブロックには、「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｗｒｉｔｅ＿ｔｉｍｅ＝２００」という作動情報を記録し、ブロック番号１４のブロックには、「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｅｒａｓｅ＿ｔｉｍｅ＝２」という作動情報を記録し、ブロック番号１５のブロックには、「ｂｌｏｃｋ＿ｎｕｍ＝１２、ｅｒａｓｅ＿ｃｏｕｎｔ＝３２０００」という作動情報を記録する。すなわち、ブロック１３にはブロック１２の格納時間が、ブロック１４にはブロック１２の消去時間が、ブロック１５にはブロック１２の消去回数が格納されることとなる。
【００９１】
（実施形態１０：処理の流れ）図３１は、本実施形態に係る不揮発性メモリシステムにおける処理の流れを示すフロー図を例示する。
【００９２】
最初に、ステップＳ３１０１において不揮発性メモリ装置の複数種の作動情報をブロック単位で取得する。この処理は、主に作動情報取得部によって実行される。次に、ステップＳ３１０２において作動情報を不揮発性メモリ装置内の複数のブロックに対してエラー訂正符号を含ませて分散して記録する。この処理は、主に冗長分散記録手段によって実行される。
【００９３】
（実施形態１０：詳細な具体例）図４５は、一般的なフラッシュメモリの構成に加えて、作動情報取得部（４５０１）と作動情報保持部（冗長分散記録手段）（４５０２）とがメモリ内部に構成されている場合を例示する図である。このような場合、例えば作動情報取得部（４５０１）は制御回路（４５０３）から作動情報を取得するようになっていてもよい。また、メモリセルアレイ（４５０４）を作動情報保持部として利用するようになっていてもよい。
【００９４】
（実施形態１０：効果）本実施形態に係る不揮発性メモリシステムは、作動情報をエラー訂正符号を含ませて記録するため、作動情報を読出す際に読出エラーが発生したとしても、エラー訂正用チェックビット等により読出エラー訂正を行なうことができる。また、作動情報は複数のブロックに分散して記録されるため、例えば一のブロックから作動情報が読み出せない事態になったとしても、他のブロックから他の作動情報を読出すことができるので、より安全である。
【図面の簡単な説明】
【００９５】
【図１】実施形態１に係る不揮発性メモリシステムの機能ブロック図
【図２】作動情報の一例図
【図３】作動情報保持部にて保持されている作動情報の一例図
【図４】実施形態１に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図５】実施形態２に係る不揮発性メモリシステムの機能ブロック図
【図６】信頼性情報生成部における処理の一例図
【図７】信頼性情報生成部における処理の一例図
【図８】実施形態２に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図９】実施形態３に係る不揮発性メモリシステムの機能ブロック図
【図１０】実施形態３に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図１１】実施形態４に係る不揮発性メモリシステムの機能ブロック図
【図１２】エラー訂正情報の一例図
【図１３】実施形態４に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図１４】実施形態５に係る不揮発性メモリシステムの機能ブロック図
【図１５】格納時間情報の一例図
【図１６】実施形態５に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図１７】実施形態６に係る不揮発性メモリシステムの機能ブロック図
【図１８】消去時間情報の一例図
【図１９】実施形態６に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図２０】実施形態７に係る不揮発性メモリシステムの機能ブロック図
【図２１】消去回数情報の一例図
【図２２】実施形態７に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図２３】実施形態８に係る不揮発性メモリシステムの機能ブロック図
【図２４】読出回数情報の一例図
【図２５】実施形態８に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図２６】実施形態９に係る不揮発性メモリシステムの機能ブロック図
【図２７】格納回数情報の一例図
【図２８】実施形態９に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図２９】実施形態１０に係る不揮発性メモリシステムの機能ブロック図
【図３０】冗長分散記録手段における処理の具体例
【図３１】実施形態１０に係る不揮発性メモリシステムの処理の流れを示すフロー図
【図３２】メモリコントローラの具体例
【図３３】ＥＣＣを説明する図
【図３４】一般的なコンピュータの構成の一例図
【図３５】メモリデバイス内部の処理機構を説明する図
【図３６】実施形態１に係る不揮発性メモリシステムの構成の一例図
【図３７】実施形態２に係る不揮発性メモリシステムの構成の一例図
【図３８】実施形態３に係る不揮発性メモリシステムの構成の一例図
【図３９】実施形態４に係る不揮発性メモリシステムの構成の一例図
【図４０】実施形態５に係る不揮発性メモリシステムの構成の一例図
【図４１】実施形態６に係る不揮発性メモリシステムの構成の一例図
【図４２】実施形態７に係る不揮発性メモリシステムの構成の一例図
【図４３】実施形態８に係る不揮発性メモリシステムの構成の一例図
【図４４】実施形態９に係る不揮発性メモリシステムの構成の一例図
【図４５】実施形態１０に係る不揮発性メモリシステムの構成の一例図
【符号の説明】
【００９６】
０１０１  作動情報取得部
０１０２  作動情報保持部
０５０３  信頼性情報生成部
０９０４  管理部
【図１】
2007316779.tif 000003
【図２】
2007316779.tif 000004
【図３】
2007316779.tif 000005
【図４】
2007316779.tif 000006
【図５】
2007316779.tif 000007
【図６】
2007316779.tif 000008
【図７】
2007316779.tif 000009
【図８】
2007316779.tif 000010
【図９】
2007316779.tif 000011
【図１０】
2007316779.tif 000012
【図１１】
2007316779.tif 000013
【図１２】
2007316779.tif 000014
【図１３】
2007316779.tif 000015
【図１４】
2007316779.tif 000016
【図１５】
2007316779.tif 000017
【図１６】
2007316779.tif 000018
【図１７】
2007316779.tif 000019
【図１８】
2007316779.tif 000020
【図１９】
2007316779.tif 000021
【図２０】
2007316779.tif 000022
【図２１】
2007316779.tif 000023
【図２２】
2007316779.tif 000024
【図２３】
2007316779.tif 000025
【図２４】
2007316779.tif 000026
【図２５】
2007316779.tif 000027
【図２６】
2007316779.tif 000028
【図２７】
2007316779.tif 000029
【図２８】
2007316779.tif 000030
【図２９】
2007316779.tif 000031
【図３０】
2007316779.tif 000032
【図３１】
2007316779.tif 000033
【図３２】
2007316779.tif 000034
【図３３】
2007316779.tif 000035
【図３４】
2007316779.tif 000036
【図３５】
2007316779.tif 000037
【図３６】
2007316779.tif 000038
【図３７】
2007316779.tif 000039
【図３８】
2007316779.tif 000040
【図３９】
2007316779.tif 000041
【図４０】
2007316779.tif 000042
【図４１】
2007316779.tif 000043
【図４２】
2007316779.tif 000044
【図４３】
2007316779.tif 000045
【図４４】
2007316779.tif 000046
【図４５】
2007316779.tif 000047