(57)【要約】【課題】  フラッシュメモリの誤訂正や誤消去を簡単に防止する【解決手段】  フラッシュメモリの各物理ブロックのユーザ領域には、ユーザデータＹＤ或いはカード情報ＣＩＳ，モード情報ＭＤ等の管理情報が書き込まれる。これに対し、各物理ブロックの冗長領域に、ブロックステータス、論理ブロック情報、データ種別情報を書き込むようにする。ブロックステータスとしては、良品ブロックを示す情報と不良ブロックを示す情報とがあり、管理情報が書き込まれた物理ブロックには、Ｆ０ｈ或いは０Ｆｈの不良ブロックを示す情報がブロックステータスとして書き込まれる。また、データ種別情報に、管理情報の種類（３ｈ或いはＣｈ）が示される。このようにすると、管理情報の書き込まれた物理ブロックに対するホストシステムからのアクセスが制限され、例えば管理情報が誤って消されることが防止される。【選択図】図５
2006185290.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにアクセスする際に参照される管理情報を、前記フラッシュメモリ内の物理ブロックに書き込む第１の書込み手段と、
ホストシステムから供給されるユーザデータを該ホストシステムから与えられる論理アドレスに対応する前記フラッシュメモリ内の物理ブロックに書き込む第２の書込み手段と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断手段と、
前記フラッシュメモリ内の各物理ブロックの冗長領域に、当該物理ブロックの良否を示す第１の情報、前記論理アドレスに関する情報を示す第２の情報及びデータの種別を示す第３の情報を書き込む第３の書込み手段とを備え、
前記第１の書込み手段により前記管理情報が書き込まれた物理ブロックの冗長領域と前記診断手段により不良ブロックであると診断された物理ブロックの冗長領域とに、不良ブロックであることを示す前記第１の情報が書き込まれ、
前記第２の書込み手段によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータに対応する前記第２の情報が書き込まれ、
前記第１の書込み手段により管理情報が書き込まれた物理ブロックの冗長領域に、前記管理情報の種別を示す前記第３の情報が書き込まれるように構成されていることを特徴とするメモリコントローラ。
【請求項２】
前記論理アドレスと前記フラッシュメモリのアドレス空間上の物理アドレスとの対応関係を示す変換テーブルを作成するテーブル作成手段を備え、
前記テーブル作成手段が、前記第１の情報に基づいて良品ブロックであると判断された物理ブロックの前記第２の情報を読み出し、該第２の情報に基づいて前記変換テーブルを作成することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記第３の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、該物理ブロックからその管理情報を読み出す管理情報読出し手段を備えたことを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記第1の情報が、前記冗長領域の複数のビットに割当てられ、該複数のビットに含まれる書込み状態のビットの数により不良ブロックであるか否かが示されることを特徴とする請求項１乃至３のいずれか１項に記載のメモリコントローラ。
【請求項５】
請求項１乃至４のいずれか１項に記載のメモリコントローラとフラッシュメモリとを備えることを特徴とするフラッシュメモリシステム。
【請求項６】
フラッシュメモリにアクセスする際に参照される管理情報を、前記フラッシュメモリ内の物理ブロックに書き込む第１の書込み処理と、
ホストシステムから供給されるユーザデータを、該ホストシステムから与えられる論理アドレスに対応する前記フラッシュメモリ内の物理ブロックに書き込む第２の書込み処理と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断処理と、
前記フラッシュメモリ内の冗長領域に、物理ブロックの良否を示す第１の情報、前記論理アドレスに関する情報を示す第２の情報及びデータの種別を示す第３の情報を書き込む第３の書込み処理とを含み、
前記第１の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域と前記診断処理により不良ブロックであると診断された物理ブロックの冗長領域に、不良ブロックであることを示す前記第１の情報が書き込まれ、
前記第２の書込み処理によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたデータに対応する前記第２の情報が書き込まれ、
前記第１の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域に、該管理情報の種別を示す前記第３の情報が書き込まれることを特徴とするフラッシュメモリの制御方法。
【請求項７】
前記論理アドレスと前記フラッシュメモリのアドレス空間上の物理アドレスとの対応関係を示す変換テーブルを作成するテーブル作成処理を含み、
前記テーブル作成処理が、前記第１の情報に基づいて良品ブロックであると判断された物理ブロックの前記第２の情報を読み出し、該第２の情報に基づいて前記変換テーブルを作成する処理であることを特徴とする請求項６に記載のフラッシュメモリの制御方法。
【請求項８】
前記第３の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、該物理ブロックからその管理情報を読み出す管理情報読出し処理を含むことを特徴とする請求項６又は７に記載のフラッシュメモリの制御方法。
【請求項９】
前記第１の情報が、前記冗長領域の複数のビットに割当てられ、該複数のビットに含まれる書込み状態のビットの数により不良ブロックであるか否かを示すことを特徴とする請求項６乃至８のいずれか１項に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。
【０００４】
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
上述のような構成を有するＮＡＮＤ型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書替を行う場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行わなければならない。このようなデータの書替を行った場合、書替後のデータは、書替前のデータと異なるブロックに書き込まれる。従って、ホストシステム側で管理されている論理アドレスと実際にデータが書き込まれたフラッシュメモリ内の物理アドレスの対応関係が、データを書替える毎に動的に変化する。
【０００６】
この論理アドレスと物理アドレスの対応関係を管理するため、ホストシステム側から与えられたユーザデータが書き込まれたブロックの冗長領域には、書き込んだデータに対応する論理アドレス情報が書き込まれる。この論理アドレス情報は、論理アドレスと物理アドレスの対応関係を示す変換テーブルを作成するときに読み出され、読み出した論理アドレス情報に基づいて変換テーブルが作成される。
【０００７】
ホストシステム側から与えられたユーザデータが書き込まれたブロックの冗長領域には、上記のように論理アドレス情報が書き込まれるが、カード情報（ＣＩＳ：Card Information Structure）等の管理情報が書き込まれたブロックの冗長領域には、論理アドレス情報が書き込まれない。つまり、カード情報等の管理情報が書き込まれたブロックには、通常、論理アドレスが割当てられない。
【０００８】
管理情報が書き込まれるブロックは、通常、予め設定されたフラッシュメモリ内の位置（ブロック）に割当てられるため、論理アドレスが割当てられていなくても、そのブロックにアクセスすることができる。例えば、特許文献１では、カード情報をフラッシュメモリ内の先頭又は最後の物理ブロックに書き込んでいる。従って。フラッシュメモリ内の先頭又は最後の物理ブロックを見つけ出すことにより、カード情報を読み出すことができる。
【特許文献１】特表２００１−５０３１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述の技術によれば、管理情報が書き込まれたブロックとユーザデータが書き込まれたブロックは、冗長領域に書き込まれている論理アドレス情報に基づいて判別するこができる。しかしながら、フラッシュメモリでは、ディスターブ現象等でデータが変化することがあるため、論理アドレス情報に基づいて、管理情報が書き込まれたブロックとユーザデータが書き込まれたブロックを判別した場合、誤った判別がなされてしまう場合がある。誤った判別がなされた場合、ユーザデータの書替処理や、書き込まれているユーザデータのエラー訂正処理等で、誤って管理情報が訂正又は消去されることがある。又、管理情報が書き込まれたブロックの位置情報を常時管理して、管理情報が書き込まれたブロックを、ユーザデータの書替処理やエラー訂正処理等の処理対象から除外することもできるが、除外するか否かの判断をその都度行った場合、処理効率の低下が生じる。
【００１０】
そこで、本発明は、誤訂正や誤消去を簡単かつ確実に防止することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、
フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにアクセスする際に参照される管理情報を、前記フラッシュメモリ内の物理ブロックに書き込む第１の書込み手段と、
ホストシステムから供給されるユーザデータを該ホストシステムから与えられる論理アドレスに対応する前記フラッシュメモリ内の物理ブロックに書き込む第２の書込み手段と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断手段と、
前記フラッシュメモリ内の各物理ブロックの冗長領域に、当該物理ブロックの良否を示す第１の情報、前記論理アドレスに関する情報を示す第２の情報及びデータの種別を示す第３の情報を書き込む第３の書込み手段とを備え、
前記第１の書込み手段により前記管理情報が書き込まれた物理ブロックの冗長領域と前記診断手段により不良ブロックであると診断された物理ブロックの冗長領域とに、不良ブロックであることを示す前記第１の情報が書き込まれ、
前記第２の書込み手段によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータに対応する前記第２の情報が書き込まれ、
前記第１の書込み手段により管理情報が書き込まれた物理ブロックの冗長領域に、前記管理情報の種別を示す前記第３の情報が書き込まれるように構成されていることを特徴とする。
【００１２】
このような構成を採用したことにより、管理情報が書き込まれた物理ブロックの冗長領域には、不良ブロックであることを示す第１の情報が書き込まれる。また、管理情報が書き込まれた物理ブロックの冗長領域に、管理情報の種別を示す第３の情報が書き込まれるので、誤訂正や誤消去を簡単かつ確実に防止することができる。
【００１３】
尚、前記論理アドレスと前記フラッシュメモリのアドレス空間上の物理アドレスとの対応関係を示す変換テーブルを作成するテーブル作成手段を備え、
前記テーブル作成手段が、前記第１の情報に基づいて良品ブロックであると判断された物理ブロックの前記第２の情報を読み出し、該第２の情報に基づいて前記変換テーブルを作成してもよい。
【００１４】
また、前記第３の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、該物理ブロックからその管理情報を読み出す管理情報読出し手段を備えてもよい。
また、前記第１の情報が、前記冗長領域の複数のビットに割当てられ、該複数のビットに含まれる書込み状態のビットの数により不良ブロックであるか否かが示されてもよい。
【００１５】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステムは、本発明の第１の観点に係るメモリコントローラとフラッシュメモリとを備えることを特徴とする。
【００１６】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、
フラッシュメモリにアクセスする際に参照される管理情報を、前記フラッシュメモリ内の物理ブロックに書き込む第１の書込み処理と、
ホストシステムから供給されるユーザデータを、該ホストシステムから与えられる論理アドレスに対応する前記フラッシュメモリ内の物理ブロックに書き込む第２の書込み処理と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断処理と、
前記フラッシュメモリ内の冗長領域に、物理ブロックの良否を示す第１の情報、前記論理アドレスに関する情報を示す第２の情報及びデータの種別を示す第３の情報を書き込む第３の書込み処理とを含み、
前記第１の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域と前記診断処理により不良ブロックであると診断された物理ブロックの冗長領域に、不良ブロックであることを示す前記第１の情報が書き込まれ、
前記第２の書込み処理によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたデータに対応する前記第２の情報が書き込まれ、
前記第１の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域に、該管理情報の種別を示す前記第３の情報が書き込まれることを特徴とする。
【００１７】
尚、前記論理アドレスと前記フラッシュメモリのアドレス空間上の物理アドレスとの対応関係を示す変換テーブルを作成するテーブル作成処理を含み、
前記テーブル作成処理が、前記第１の情報に基づいて良品ブロックであると判断された物理ブロックの前記第２の情報を読み出し、該第２の情報に基づいて前記変換テーブルを作成する処理であってもよい。
【００１８】
また、前記第３の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、該物理ブロックからその管理情報を読み出す管理情報読出し処理を含んでもよい。
【００１９】
また、前記第１の情報が、前記冗長領域の複数のビットに割当てられ、該複数のビットに含まれる書込み状態のビットの数により不良ブロックであるか否かを示してもよい。
【発明の効果】
【００２０】
本発明によれば、論理アドレスが割当てられないブロックに書き込まれているカード情報等の管理情報が、誤って訂正又は消去されたりすることを簡単かつ確実に防止することができる。又、論理アドレスと物理アドレスの対応関係を示す変換テーブルを作成するときに、管理情報が書き込まれている物理ブロックが、不良ブロックと同等に取り扱われるため、管理情報が書き込まれている物理ブロックを除外する処理を別途行う必要がなくなり、変換テーブルの作成処理の効率が向上する。
【発明を実施するための最良の形態】
【００２１】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明の実施形態に係るフラッシュメモリシステムの概要を示す構成図である。
図１に示したように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３で構成されている。又、フラッシュメモリシステム１は、通常、ホストシステム４に着脱可能に装着され、ホストシステム４に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ２及びメモリコントローラ３の詳細を説明する。
【００２２】
[フラッシュメモリ２の説明]
このフラッシュメモリシステム１において、データが記憶されるフラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００２３】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００２４】
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム４側から与えられる論理アドレスと、フラッシュメモリ２内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ２にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ２に対するアクセスが行なわれる。
【００２５】
図２は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリでは、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。本実施形態では、１ブロックが３２ページで構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されているものして説明する。
【００２６】
ここで、ユーザー領域は、主に、ホストシステム４から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００２７】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
【００２８】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００２９】
次に、フラッシュメモリ２の回路構成について説明する。
一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００３０】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行っている。
【００３１】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込状態）が、論理値"０"のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値"１"のデータに対応する。
【００３２】
［メモリコントローラ３の説明］
メモリコントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
【００３３】
マイクロプロセッサ６は、メモリコントローラ３を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック７は動作する。
【００３４】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続される。かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口として、メモリコントローラ３の内部に取り込まれ、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口として、ホストシステム４に供給される。
【００３５】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００３６】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成されている。
【００３７】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４の受取準備ができるまで、バッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込準備ができるまで、バッファ９に保持される。
【００３８】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づいて、フラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。
【００３９】
ここで、「内部コマンド」とは、メモリコントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行なう機能ブロックである。
【００４０】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００４１】
［フラッシュメモリ２に対するアクセスの説明］
図３は、論理ブロックと物理ブロックの対応関係を示す説明図であり、論理アドレス空間を、セクタ単位で付けた連番であるＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）で示している。
【００４２】
本実施例に係るフラッシュメモリシステム１では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割当てている。図３に示した例では、１０２４個の物理ブロックでゾーンが形成されている。又、このゾーンに対して、１０００ブロック分（物理ブロック１０００個分）の論理ブロック空間が割当てられている。
【００４３】
ここで、１セクタの容量がフラッシュメモリ２の１ページの容量と等しく、各物理ブロックが３２個のページで構成されている場合、ゾーン内の各物理ブロックは、論理アドレス空間の３２セクタ分の領域に割当てられる。従って、論理アドレス空間の３２セクタ分の領域を１個の論理ブロックとすれば、１個の物理ブロックに対して１個の論理ブロックが割当てられる。又、１つのゾーンに割当てられる３２０００セクタ分の領域（ＬＢＡ０〜ＬＢＡ３１９９９）を、３２セクタ毎に区切った論理ブロックには、連番（ＬＢＮ０〜ＬＢＮ９９９）が付けられている（以下、論理ブロックに付けた連番を論理ブロック連番という）。一方、ゾーンを構成する１０２４個の物理ブロックにも連番（＃０〜＃１０２３）が付けられている（以下、物理ブロックに付けた連番を物理ブロック連番という）。
【００４４】
図３に示した例では、ＬＢＡ０〜ＬＢＡ３１に対応する論理ブロック連番ＬＢＮ０の論理ブロックが、物理ブロック連番＃３の物理ブロックに割当てられ、ＬＢＡ３２〜ＬＢＡ６３に対応する論理ブロック連番ＬＢＮ１の論理ブロックが、物理ブロック連番＃１の物理ブロックに割当てられ、ＬＢＡ６４〜ＬＢＡ９５に対応する論理ブロック連番ＬＢＮ２の論理ブロックが、物理ブロック連番＃５の物理ブロックに割当てられ、ＬＢＡ９６〜ＬＢＡ１２７に対応する論理ブロック連番ＬＢＮ３の論理ブロックが、物理ブロック連番＃７の物理ブロックに割当てられている。
【００４５】
フラッシュメモリ２にアクセスするときは、論理ブロックと物理ブロックの対応関係を示した変換テーブルを作成し、この変換テーブルを用いて、アクセスするページのアドレスを求めている。変換テーブルは、各物理ブロックの冗長領域に書き込まれている論理ブロック情報（その物理ブロックに書込まれているユーザーデータに対応する論理ブロックを示す情報）に基づいて作成される。
【００４６】
例えば、物理ブロックにユーザーデータを書込んだときに、そのユーザーデータに対応する論理ブロックの論理ブロック連番を、その物理ブロックの冗長領域に書込めば、この論理ブロック連番を順次読み出すことにより、変換テーブルを作成することができる。
【００４７】
図４は、変換テーブルの説明図である。
この変換テーブルは、１つのゾーンに対して作成されたものであり、ゾーンに割当てられている論理アドレス空間の論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９と、これ対応する物理ブロックの物理ブロック連番＃０〜＃１０２３の対応関係を示している。図４に示した例では、論理ブロック連番ＬＢＮ０は、物理ブロック連番＃３に対応し、論理ブロック連番ＬＢＮ１は、物理ブロック連番＃１に対応し、論理ブロック連番ＬＢＮ２は、物理ブロック連番＃５に対応する。
【００４８】
このように、各論理ブロック連番に対応する物理ブロック連番が示されているので、ホストシステム４からコマンドと共にアドレス情報としてＬＢＡが供給された場合は、そのＬＢＡが属する論理ブロックの論理ブロック連番を変換テーブル上で検索することにより、それに対応する物理ブロックの物理ブロック連番を求めることができる。
【００４９】
物理ブロックの冗長領域には、論理ブロック情報と共にブロックステータスやデータ種別等の情報が書き込まれている。これらの情報について図５を参照して説明する。
【００５０】
図５は、冗長領域に書き込まれる情報を示す図である。
ブロックステータスは、その物理ブロックが良品ブロックであるか、又は不良ブロックであるかを示す情報である。図５に示した例では、ブロックステータスに対して８ビットのデータが割当てられている。
【００５１】
ブロックステータスの初期状態は、全てビットが消去状態（論理値の“１”）になっている（ＦＦｈ（１６進数））。そして、不良ブロックであると診断された場合には、８ビットのうちの３ビットを書込み状態（論理値の“０”）にする。又、このブロックステータスに基づいて良否を判断する場合、消去状態（論理値の“１”）のビットが１ビット以下であれば、良品ブロックと判断し、消去状態（論理値の“１”）のビットが２ビット以上であれば、不良ブロックと判断する。
【００５２】
なお、不良ブロックであると判断した場合に、書込み状態（論理値の“０”）にするビットの数は、フラッシュメモリ２の信頼性等を考慮して適宜設定すればよい。又、ブロックステータスに基づいて良否を判断する場合の基準、つまり、良品ブロックと判断する書込み状態（論理値の“０”）のビットの数の許容数についても、フラッシュメモリ２の信頼性等を考慮して適宜設定すればよい。
【００５３】
また、カード情報（ＣＩＳ）が書き込まれている物理ブロックのブロックステータスは、Ｆ０ｈ（１６進数）が設定され、モード情報（ＭＤ）が書き込まれている物理ブロックのブロックステータスには、０Ｆｈ（１６進数）が設定される。これらは、実質的に不良ブロックを示すブロックステータスとなる。
【００５４】
データ種別情報は、ユーザ領域に書き込まれているデータの種別を示す情報であり、４ビットのデータが割当てられている。例えば、ユーザ領域に、属性等のカード情報（ＣＩＳ）、ホストシステム４から与えられるユーザデータ（ＹＤ）又は書込みモード等を示すモード情報（ＭＤ）が書き込まれている場合に、データ種別情報を検出することにより、各ブロックに書き込まれているデータがどれに該当するかを判断することができる。
【００５５】
図５では、ユーザデータ（ＹＤ）が書き込まれている物理ブロックのデータ種別情報は、全てのビットが消去状態（論理値の“１”）のＦｈ（１６進数）になっている。これに対し、カード情報（ＣＩＳ）が書き込まれている物理ブロックのデータ種別情報は、３ｈ（１６進数）に設定され、モード情報（ＭＤ）が書き込まれている物理ブロックのデータ種別はＣｈ（１６進数）に設定されている。
この場合、不良ブロックのデータ種別情報も、ユーザデータ（ＹＤ）が書き込まれている物理ブロックのデータ種別情報と同じである。尚、ユーザデータ（ＹＤ）が書き込まれている物理ブロックのデータ種別情報は、不良ブロックのデータ種別情報と同一になっているが、Ｆｈ（１６進数）と異なるデータ種別を設定にしても良い。
【００５６】
論理ブロック情報には、ユーザ領域に書き込まれているユーザデータ（ＹＤ）に対応する論理ブロックの論理ブロック連番が、１０ビットデータで書き込まれている。対応する論理ブロックのないカード情報（ＣＩＳ）やモード情報（ＭＤ）が書き込まれている物理ブロックには、論理ブロック情報が書き込まれず、全てのビットが消去状態（論理値の“１”）になっている。つまり、カード情報（ＣＩＳ）やモード情報（ＭＤ）が書き込まれている物理ブロックの論理ブロック情報は、３ＦＦｈになっている。
【００５７】
冗長領域に書き込まれている論理ブロック情報、ブロックステータス、及びデータ種別等の情報は、図４に示した変換テーブルを作成する場合や、カード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報が書き込まれる物理ブロックにアクセスする場合に、参照される。
【００５８】
図４に示した変換テーブルを作成する場合には、ワークエリア８上に変換テーブルを作成する領域を確保し、この領域に論理ブロック連番と物理ブロック連番の対応関係を記述する。論理ブロック連番と物理ブロック連番の対応関係は、冗長領域から読み出した論理ブロック情報に基づいて記述される。論理ブロック情報を読み出すときには、良品ブロックの論理ブロック情報が順次読み出される。
【００５９】
良品ブロックの判断は、ブロックステータスに基づいて行われるため、ブロックステータスが不良ブロックを示す情報に設定されているカード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報が書き込まれている物理ブロックに対しては、論理ブロック情報の読み出しが行われない。
【００６０】
つまり、ブロックステータスに不良ブロックを示す情報が設定されている物理ブロックを、論理ブロック情報の読み出し対象から除外することにより、カード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報が書き込まれている物理ブロックも、論理ブロック情報の読み出し対象から除外することができる。
【００６１】
更に、カード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報が書き込まれている物理ブロックのブロックステータスを、不良ブロックを示す情報と同じにしたことにより、ユーザデータ（ＹＤ）が書き込まれている物理ブロックと間違えて、管理情報が書き替えられたり、又は消去されたりすることを少なくすることができる。つまり、フラッシュメモリは、ディスターブ現象等でデータが変化してしまうことがあるが、ブロックステータスが不良ブロックを示す情報に設定されていれば、良品ブロックと間違われることは殆どないため、誤った処理の対象となることが非常に少なくなる。
【００６２】
カード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報が書き込まれている物理ブロックのブロックステータスは、不良ブロックと同様の情報が設定されているが、データ種別の情報に基づいて、管理情報が書き込まれている物理ブロックを判別することができる。
つまり、不良ブロックのデータ種別は、全てのビットが消去状態（論理値の“１”）のＦｈ（１６進数）になっているが、カード情報（ＣＩＳ）が書き込まれている物理ブロックのデータ種別は３ｈ（１６進数）に設定され、モード情報（ＭＤ）が書き込まれている物理ブロックのデータ種別はＣｈ（１６進数）に設定されている。
【００６３】
従って、データ種別が３ｈ（１６進数）の物理ブロックを検索することにより、カード情報（ＣＩＳ）が書き込まれている物理ブロックを知得することができ、データ種別がＣｈ（１６進数）の物理ブロックを検索することにより、モード情報（ＭＤ）が書き込まれている物理ブロックを知得することができる。
【００６４】
次に、論理ブロック情報、ブロックステータス、及びデータ種別の設定処理について説明する。
診断処理で不良ブロックであると診断された場合、その物理ブロックの冗長領域に不良ブロックを示すブロックステータスを書き込む。尚、不良ブロックの診断処理では、例えば、消去を行ったときに全てのビットが消去状態になるかと、予め設定されたデータを書き込んだときに正常に書き込めたか等の診断が行われる。
【００６５】
カード情報（ＣＩＳ）やモード情報（ＭＤ）等の管理情報を書き込んだ場合は、管理情報を書き込んだ物理ブロックの冗長領域に不良ブロックを示すブロックステータスを書き込むと共に、データ種別を示す情報を書き込む。ユーザデータ（ＹＤ）を書き込んだ場合は、ユーザデータ（ＹＤ）を書き込んだ物理ブロックの冗長領域に、論理ブロック情報を示す情報を書き込む。
【００６６】
尚、論理ブロック情報、ブロックステータス及びデータ種別の各情報が書き込まれなかった場合には、消去状態のままになる。つまり、論理ブロック情報を書き込まなかった場合、論理ブロック情報は３ＦＦｈ（１６進数）となり、ブロックステータスを書き込まなかった場合、ブロックステータスはＦＦｈ（１６進数）となり、データ種別を書き込まなかった場合、データ種別はＦｈ（１６進数）となる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施形態に係るフラッシュメモリシステムのブロック図である。
【図２】フラッシュメモリのブロックとページの構成を示す図である。
【図３】論理ブロックと物理ブロックの対応関係を示す図である。
【図４】変換テーブルを示す図である。
【図５】冗長領域に書き込まれる情報を示す図である。
【符号の説明】
【００６８】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  メモリコントローラ
４  ホストシステム
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  外部バス
１４  内部バス
【図１】
2006185290.tif 000003
【図２】
2006185290.tif 000004
【図３】
2006185290.tif 000005
【図４】
2006185290.tif 000006
【図５】
2006185290.tif 000007