(57)【要約】【課題】多値のフラッシュメモリのように書き込みエラーが発生しやすいフラッシュメモリに書き込みを行うと、頻繁に書き込みエラーとなり、また、不良ブロックが大量に生成されてしまう可能性があった。【解決手段】書き込みエラーが起こった場合（ステップ４）には、別ブロックに書き込みをリトライする。再度書き込みエラーが起こった場合は、書き込み処理をエラー終了する（ステップ７）が、データを読み出してエラーチェックを実施（ステップ８）し、訂正不能なエラーがある場合のみ、不良ブロックとして登録（ステップ９）し、訂正可能なエラーがある場合は、不良ブロック登録しない。【選択図】  図３
2004220068.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリを搭載したメモリカードであって、前記不揮発性メモリのデータ書き込み状態を管理する管理テーブルと、前記管理テーブルに基づき前記不揮発性メモリへブロック単位でデータを書き込む手段と、前記データの書き込みが正常に実行されたか否かを判定する判定手段と、前記判定手段によって前記データの書き込みが正常に実行されたと判断された場合に、書き込みを行ったブロックの再書き込みを禁止するよう前記管理テーブルを更新し正常終了する手段と、前記判定手段によって前記データの書き込みが正常に実行されなかったと判断された場合に、前記不揮発性メモリの異なるブロックへデータの書き込みをリトライする手段と、前記リトライによるデータの書き込みが前記判定手段により正常に実行されなかったと判断された場合は、前記リトライに時に書き込みを行ったブロックからデータを読み出し誤り訂正を行う誤り訂正手段と、前記誤り訂正手段によって訂正能力を超えるエラーと判断された場合のみリトライに使用したブロックを不良ブロックとして前記管理テーブルを更新し、訂正能力内のエラーと判断された場合には不良ブロックとせずにエラー終了する手段を有するメモリカード。
【請求項２】
書き換え可能な不揮発性メモリへのデータ書き込み方法であって、前記不揮発性メモリのデータ書き込み状態を管理する管理テーブルに基づき、前記不揮発性メモリへブロック単位でデータを書き込むステップと、前記データの書き込みが正常に実行されたか否かを判定する判定ステップと、前記判定ステップによって前記データの書き込みが正常に実行されたと判断された場合に、書き込みを行ったブロックの再書き込みを禁止するよう前記管理テーブルを更新し正常終了するステップと、前記判定ステップによって前記データの書き込みが正常に実行されなかったと判断された場合に、前記不揮発性メモリの異なるブロックへデータの書き込みをリトライするステップと、前記リトライによるデータの書き込みが前記判定ステップにより正常に実行されなかったと判断された場合は、前記リトライに時に書き込みを行ったブロックからデータを読み出し誤り訂正を行う誤り訂正ステップと、前記誤り訂正ステップによって訂正能力を超えるエラーと判断された場合のみリトライに使用したブロックを不良ブロックとして前記管理テーブルを更新し、訂正能力内のエラーと判断された場合には不良ブロックとせずにエラー終了するステップを有するメモリへのデータ書き込み方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、書き換え可能な不揮発性メモリへのデータ書き込み時のエラー処理に特徴を有するメモリカードおよびメモリへのデータ書き込み方法に関する。
【０００２】
【従来の技術】
近年、デジタル情報を保存する記憶装置として、書き換え可能な不揮発性メモリを搭載したメモリカードや機器が広まってきている。特にメモリカードは、小型かつ耐震性に優れるため、今後、益々携帯機器で多用されることが期待されている。
【０００３】
書き換え可能な不揮発性メモリの代表的なものにＮＡＮＤ型フラッシュメモリ（以下、フラッシュメモリと称す）がある。フラッシュメモリはブロック単位でその使用、未使用が管理されており、例えば、未使用のブロックに対しては管理データとして“１  ”が書き込まれ、データの書き込みを行った場合に、管理データを“１  ”から“０  ”に書き換える。
【０００４】
また、一般的に、フラッシュメモリは、正常に書き込まれない場合が希に存在する。このため、フラッシュメモリには、正常書き込みであったか、または異常書き込みであったかを示すステータスをリード（読み出し）する機能が備わっており、データの書き込み後、このステータスをリードすることによって、書き込みが正常に行なわれたか否かを判別することが必要である。書き込みエラーが発生した場合は、そのブロックが再び書き込みブロックとして選択されないようにするために、対応するブロックの管理データを“１  ”から“０  ”に書き換えを行う。
【０００５】
以上のような、フラッシュメモリの書き込みエラーに関するものは、特許文献１に記載されたものが知られている。
【０００６】
【特許文献１】
特開２００２−１０８７２０号公報（段落０００３〜０００４）
【０００７】
【発明が解決しようとする課題】
従来のフラッシュメモリは、１つのセルに“０”または“１”の２値のデータを書き込んでいたが、近年、“００”、“０１  ”、“１０”または“１１  ”の４値或いはそれ以上の多値のデータを書き込むフラッシュメモリが開発され、一部では実用化が開始されている。多値のフラッシュメモリは、同容量の２値のフラッシュメモリに比べて小面積で構成することができ、フラッシュメモリの低コスト化を図ることができるため、今後、フラッシュメモリの多値化が進むものと考えられる。しかし、多値のフラッシュメモリは、従来の２値のフラッシュメモリに比べて、書き込み時にエラーとなる確率が高い。このため、従来通りに書き込みを行うと、頻繁に書き込みエラーとなり、また、不良ブロックが大量に生成されてしまう可能性があった。
【０００８】
本発明は上記の課題を解決するためになされたもので、書き込みエラーの頻度を下げ、不良ブロックの生成を低減可能なメモリカード及びメモリへのデータ書き込み方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
この課題を解決するために、本発明のメモリカードは、書き換え可能な不揮発性メモリを搭載したメモリカードであって、不揮発性メモリのデータ書き込み状態を管理する管理テーブルと、不揮発性メモリへブロック単位でデータを書き込む手段と、データの書き込みが正常に実行されたか否かを判定する判定手段と、判定手段によってデータの書き込みが正常に実行されたと判断された場合に、書き込みを行ったブロックの再書き込みを禁止するよう管理テーブルを更新し正常終了する手段と、判定手段によってデータの書き込みが正常に実行されなかったと判断された場合に、不揮発性メモリの異なるブロックへデータの書き込みをリトライする手段と、リトライによるデータの書き込みが判定手段により正常に実行されなかったと判断された場合はリトライに時に書き込みを行ったブロックからデータを読み出し誤り訂正を行う誤り訂正手段と、誤り訂正手段によって訂正能力を超えるエラーと判断された場合のみリトライに使用したブロックを不良ブロックとして管理テーブルを更新し、訂正能力内のエラーと判断された場合には不良ブロックとせずにエラー終了する手段を有するものである。
【００１０】
これにより、リトライ処理を行うことでエラー終了発生の頻度を下げ、また誤り訂正不可能な場合のみ不良ブロックとすることで不良ブロックの増大を防止することができる。
【００１１】
【発明の実施の形態】
本発明の請求項１に記載の発明は、書き換え可能な不揮発性メモリを搭載したメモリカードであって、前記不揮発性メモリのデータ書き込み状態を管理する管理テーブルと、前記管理テーブルに基づき前記不揮発性メモリへブロック単位でデータを書き込む手段と、前記データの書き込みが正常に実行されたか否かを判定する判定手段と、前記判定手段によって前記データの書き込みが正常に実行されたと判断された場合に、書き込みを行ったブロックの再書き込みを禁止するよう前記管理テーブルを更新し正常終了する手段と、前記判定手段によって前記データの書き込みが正常に実行されなかったと判断された場合に、前記不揮発性メモリの異なるブロックへデータの書き込みをリトライする手段と、前記リトライによるデータの書き込みが前記判定手段により正常に実行されなかったと判断された場合は、前記リトライに時に書き込みを行ったブロックからデータを読み出し誤り訂正を行う誤り訂正手段と、前記誤り訂正手段によって訂正能力を超えるエラーと判断された場合のみリトライに使用したブロックを不良ブロックとして前記管理テーブルを更新し、訂正能力内のエラーと判断された場合には不良ブロックとせずにエラー終了する手段を有するメモリカードである。
【００１２】
また、本発明の請求項２に記載の発明は、書き換え可能な不揮発性メモリへのデータ書き込み方法であって、前記不揮発性メモリのデータ書き込み状態を管理する管理テーブルに基づき、前記不揮発性メモリへブロック単位でデータを書き込むステップと、前記データの書き込みが正常に実行されたか否かを判定する判定ステップと、前記判定ステップによって前記データの書き込みが正常に実行されたと判断された場合に、書き込みを行ったブロックの再書き込みを禁止するよう前記管理テーブルを更新し正常終了するステップと、前記判定ステップによって前記データの書き込みが正常に実行されなかったと判断された場合に、前記不揮発性メモリの異なるブロックへデータの書き込みをリトライするステップと、前記リトライによるデータの書き込みが前記判定ステップにより正常に実行されなかったと判断された場合は、前記リトライに時に書き込みを行ったブロックからデータを読み出し誤り訂正を行う誤り訂正ステップと、前記誤り訂正ステップによって訂正能力を超えるエラーと判断された場合のみリトライに使用したブロックを不良ブロックとして前記管理テーブルを更新し、訂正能力内のエラーと判断された場合には不良ブロックとせずにエラー終了するステップを有するメモリへのデータ書き込み方法である。
【００１３】
これにより、データ書き込みが異常の場合にリトライ処理を行うことでエラー終了発生の頻度を下げ、またリトライ処理後もデータ書き込みが異常であっても誤り訂正不可能な場合のみ不良ブロックとすることで不良ブロックの増大を防止するという作用を有する。
【００１４】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１５】
（実施の形態）
図１は、本発明の実施の形態によるメモリカードの構成を示すブロック図である。
【００１６】
図１において、メモリカード１は、例えばディジタル・スチル・カメラ、パーソナルコンピュータ等の電子機器（図示せず）に装着して使用されるものであり、ホストインタフェース２と、コントローラ３と、ＲＡＭ４と、インストラクションＲＯＭ５と、バッファメモリ６と、書き換え可能な不揮発性メモリとして、例えばフラッシュメモリ７から構成される。
【００１７】
ホストインタフェース２は、メモリカード１が装着される電子機器本体（以下、ホストと称する）とのインタフェースを行うブロックであり、フラッシュメモリ７に読み書きするデータや各種制御のためのコマンドやクロックを送受信する。
【００１８】
コントローラ３は、メモリカード１全体を制御するブロックであり、マイクロプロセッサ（以下、ＭＰＵと称する）３１を有している。ＭＰＵ３１は、インストラクションＲＯＭ５に格納されている制御プログラムに従って、ＲＡＭ４、フラッシュメモリ７、バッファメモリ６の制御を行う。
【００１９】
インストラクションＲＯＭ５は、読み出し専用の不揮発性メモリであり、ＭＰＵ３１の制御プログラムが格納されている。
【００２０】
ＲＡＭ４は、揮発性メモリであり、コントローラ３の作業用領域であるワークＲＡＭ４１と、ブロック管理テーブル４２から構成されている。ブロック管理テーブル４２は、フラッシュメモリ７の使用状態を管理するテーブルであり、その一例を図２に示す。
【００２１】
一般にフラッシュメモリ７の物理上のブロック（以下、物理ブロックと称す）への読み書きは、ホストから与えられる論理上のブロック（以下、論理ブロックと称す）のアドレスを指定して行われる。ブロック管理テーブル４２の１つの役割は、この論理ブロックのアドレス（論理アドレス）を物理ブロックのアドレス（物理ブロック）に変換するものである。
【００２２】
図２では、ブロックアドレスである物理アドレスと論理アドレスの対応関係と、その物理アドレス（アドレスで指定されるブロック）の使用の有無を示している。
【００２３】
例えば、図２に示すように、物理ブロックの使用の有無、及び各物理ブロックに割り当てられた論理アドレスの番号が書かれている。使用の有無を示す欄で“０”、すなわち使用済みであるにもかかわらず、論理アドレスが書かれていない場合（図２の例では、物理アドレス「６」）は、その物理ブロックは不良ブロックであることを示しており、書き込みアドレスとして選択されることはない。
【００２４】
バッファメモリ６は、ホストから転送されてきたデータを一時的に保持するメモリである。また、フラッシュメモリ７は、ホストから転送されたデータを書き込むメモリである。
【００２５】
以上のように構成されたメモリカード１のデータ書き込み処理について、図３に示すフローチャートを参照して説明する。図３に示されるフローチャートは、コントローラ３により実行されるものである。
【００２６】
まず、ステップ１として、コントローラ３は、ホストインタフェース２を介して、ホストからの書き込みコマンドを受けると、ホストから送られてくるデータをバッファメモリ６に一時的に保持し、ブロック単位でフラッシュメモリ７へデータの転送を行なう。
【００２７】
次に、ステップ２として、ＭＰＵ３１はブロック管理テーブル４２に書き込まれているブロック管理データを参照し、書き込み可能な物理アドレス、すなわち管理データ（使用の有無）が“１”の物理アドレス（未使用の物理アドレス）をサーチする。
【００２８】
次に、ステップ３として、ステップ２でサーチされた物理アドレスに書き込みを行なう。このステップ３がデータを書き込む手段またはデータを書き込むステップに相当する。
【００２９】
次に、ステップ４として、フラッシュメモリ７に対してステータス・リードコマンドを発行し、フラッシュメモリ７からの応答からデータ書き込みの処理ステータスが正常に行われたか否かを判別する。このステップ４が判定手段または判定ステップに相当する。
【００３０】
ステップ４において、データ書き込みが正常に行われたと判断された場合には、ステップ５として、ブロック管理テーブル４２上の対応する管理データを“１”から“０”に書き換えるとともに、論理ブロック番号（論理アドレス）を書き込み、書き込みを正常終了する（ステップ６）。このステップ５，６が正常終了する手段または正常終了するステップに相当する。
【００３１】
一方、ステップ４において、データ書き込みが正常に行われなかったと判断された場合には、ステップ７として、この書き込み処理がリトライ処理であったか否かを判定する。リトライ処理でなかった場合には、１回目のリトライ処理を実行するためにステップ２に移行する。このステップ２に移行し、再度ステップ２，３を実行するステップ７，２，３がリトライする手段またはリトライするステップに相当する。
【００３２】
ステップ７において、リトライ処理と判断された場合は、ステップ８として、リトライ処理でデータ書き込みをした物理ブロックからデータの読み出しを行い、データの誤り検出を行う。そして、データの誤りが訂正できるか否かを判断し、訂正可能と判断した場合には、ブロック管理テーブル４２を更新することなくエラー終了する（ステップ１０）。このステップ８が誤り訂正手段または誤り訂正ステップに相当する。
【００３３】
一方、ステップ８において、訂正不可能と判断された場合には、ステップ９として、ブロック管理テーブル４２上の対応する管理データを“１”から“０”に書き換え、書き込みをエラー終了する（ステップ１０）。この場合、論理アドレスの書き込みは行われない。このステップ９，１０がエラー終了する手段またはエラー終了するステップに相当する。
【００３４】
以上のように本実施の形態によれば、ステップ４でステータスリード書き込みが異常の場合にリトライ処理を行うので、ホストからの書き込み指示に対してエラー終了する頻度を低減することができる。また、ステップ８でデータを読み出し誤り訂正が不可能な場合のみ不良ブロック処理（ＢＢ処理）を行うので、不良ブロックの増大を防止することができる。また、ステップ８で誤り訂正可能な場合でもエラー終了させることで、書き込みの品質を保証することができる。
【００３５】
なお、上記実施の形態では、不揮発性メモリを搭載したメモリカードに実施した場合について説明したが、その他、例えば電子機器が内蔵する不揮発性メモリに対しても、同様に実施可能であり、本発明はメモリカードに限るものではないことは言うまでもない。
【００３６】
【発明の効果】
以上のように本発明によれば、多値のフラッシュメモリのような書き込みエラーが発生しやすい不揮発性メモリであっても、リトライ処理を行うことで、ホストからの書き込み指示に対してエラー終了する頻度を下げることが可能となる。また、リトライ処理を繰り返すと、不良ブロックが増大する可能性があるが、誤り訂正不可能な場合のみを不良ブロックとして登録することで、ブロックの不良ブロックの増大を防止し、不揮発性メモリの寿命の低下を回避することが可能である。また、誤り訂正可能なエラーを含んだデータは、他ブロックの書き込みのストレス等によって誤り訂正が行えないエラーとなる可能性があるが、例え、誤り訂正が可能であってもエラー終了させることにより、書き込み終了時点でエラーを含んだデータを不揮発性メモリ内に残さないようにすることで、他ブロックの書き込みのストレスに強いメモリカードとすることが可能である。
【００３７】
以上より、本発明を用いることにより、多値のフラッシュメモリ等の書き込みエラーの頻度が高い不揮発性メモリを用いてメモリカードを構成することができ、メモリカードの低コスト化を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態によるメモリカードの構成を示すブロック図
【図２】同メモリカードにおけるブロック管理テーブルの構成と管理データの一例を示す図
【図３】同メモリカードにおける書き込み処理の動作を示すフローチャート
【符号の説明】
１  メモリカード
２  ホストインタフェース
３  コントローラ
４  ＲＡＭ
５  インストラクションＲＯＭ
６  バッファメモリ
７  フラッシュメモリ
３１  マイクロプロセッサ（ＭＰＵ）
４１  ワークＲＡＭ
４２  ブロック管理テーブル
【図１】
2004220068.tif 000003
【図２】
2004220068.tif 000004
【図３】
2004220068.tif 000005