| 【発明の名称】 |
メモリカード及び不揮発性メモリのデータ書き込み方法 |
| 【発明者】 |
【氏名】野村 勝幸
【氏名】藤本 曜久
|
| 【要約】 |
【課題】システム的な要因に起因する不良ブロックの判定に対しては、管理データの書き換えを阻止し、メモリの寿命が短くなることを確実に防止する。
【解決手段】コントローラ12は、シングルライトを行なう場合、ブロック使用管理テーブル142に登録されているブロック使用管理データを参照し書き込み可能な領域を見つけてデータを書き込む。この際、エラーが発生するとリトライ処理を実行して正常に書き込みができたか否かを判定し、正常な書き込みができた場合にブロック使用管理テーブル142を更新する。すなわち、リトライ処理によって正常に書き込みができた場合に、前回の書き込み時に利用したアドレスを不良ブロックとしてブロック使用管理テーブル142を更新する。この結果、システム的な要因によるエラーの場合には、ブロック使用管理テーブル142が更新されることはなく、不揮発性メモリの長寿命化を図ることができる。 |
【特許請求の範囲】
【請求項1】 書き換え可能な不揮発性メモリを搭載したメモリカードにおいて、上記不揮発性メモリのデータ書き込み状態を管理するブロック使用管理テーブルと、シングルライト処理により上記不揮発性メモリへブロック単位でデータを書き込む手段と、上記データの書き込みが正常に実行されたか否かを判定し、データの書き込みが正常に実行された場合に上記ブロック使用管理テーブルを更新し、対応するブロックへの再書き込みを禁止する手段と、上記データの書き込みが正常に実行されなかった場合に上記不揮発性メモリの異なるブロックへデータの書き込みをリトライする手段と、上記リトライによってデータの書き込みが正常に実行された場合に前回の書き込み時に利用したアドレスを不良ブロックとして上記ブロック使用管理テーブルを更新する手段とを具備することを特徴とするメモリカード。 【請求項2】 書き換え可能な不揮発性メモリを搭載したメモリカードにおいて、上記不揮発性メモリのデータ書き込み状態を管理するブロック使用管理テーブルと、マルチプルライト処理により上記不揮発性メモリへブロック単位でデータを書き込む手段と、上記データの書き込みが正常に実行されたか否かを判定し、データの書き込みが正常に実行された場合に上記ブロック使用管理テーブルを更新し、対応するブロックへの再書き込みを禁止する手段と、上記データの書き込みが正常に実行されなかった場合にエラーデータが登録されるエラー管理テーブルと、ホストデバイスからの再書き込み要求により上記エラー管理テーブルを参照して空きブロックを選択しデータの書き込みをリトライする手段と、上記リトライによってデータの書き込みが正常に実行された場合に上記エラー管理テーブルに登録されているエラー管理データをクリアする手段とを具備することを特徴とするメモリカード。 【請求項3】 シングルライト処理により不揮発性メモリへブロック単位でデータを書き込む第1のステップと、データの書き込みが正常に実行されたか否かを判定する第2のステップと、上記データの書き込みが正常に実行された場合にブロック使用管理テーブルを更新し、そのブロックへの再書き込みを禁止する第3のステップと、上記データの書き込みが正常に実行されなかった場合に異なるブロックへリトライする第4のステップと、上記リトライによってデータの書き込みが正常に実行された場合に前回の書き込み時に利用したアドレスを不良ブロックとして上記ブロック使用管理テーブルを更新する第5のステップとを具備することを特徴とする不揮発性メモリのデータ書き込み方法。 【請求項4】 マルチプルライト処理により不揮発性メモリへデータを書き込む第1のステップと、データの書き込みが正常に実行されたか否かを判定する第2のステップと、上記データの書き込みが正常に実行された場合にブロック使用管理テーブルを更新し、そのブロックへの再書き込みを禁止する第3のステップと、上記データの書き込みが正常に実行されなかった場合にエラーデータをエラー管理テーブルに登録する第4のステップと、ホストデバイスからの再書き込み要求により上記エラー管理テーブルを参照して空きブロックを選択してリトライする第5のステップと、上記リトライによってデータの書き込みが正常に実行された場合に上記エラー管理テーブルに登録されているエラー管理データをクリアする第6のステップとを具備することを特徴とする不揮発性メモリのデータ書き込み方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、不揮発性メモリへのデータ書き込み時のエラーにより不良ブロックを判定し、続く書き込み処理が正しく実行されたことを確認して先行のブロックを不良ブロックとして管理するメモリカード及び不揮発性メモリのデータ書き込み方法に関する。 【0002】 【従来の技術】近年、画像データや音楽データに代表される種々のデジタル情報を保存する記憶装置として、電源がオフされても保存情報が消失する虞のない書き換え可能な不揮発性メモリを搭載したメモリカードが広まってきている。 【0003】書き換え可能な不揮発性メモリの代表的なものにNAND型フフラッシュメモリがある。この種のフラッシュメモリはブロック単位で管理され、未使用のブロックに対しては管理データとして“1”が書き込まれている。そして、データの書き込みを行なった場合に、管理データを“1”から“0”に書き換えている。また、データの書き込みを行なった際に書き込みが正常に行なわれたか否かを判別し、エラーが発生すると、そのブロックの管理データを“1”から“0”に書き換えている。また、書き込みエラーが発生した場合は、不揮発性メモリの異なるブロックに対してリトライ処理を行なう。このリトライ処理において、エラーが発生すれば、そのブロックの管理データを“0”に書き換える。 【0004】上記のようにデータ書き込みの際にエラーが発生すると、その都度、対応するブロックの管理データを“1”から“0”に書き換えている。なお、不揮発性メモリにデータを書き込む動作として2つの状態があり、書き込み最小単位により完結するシングルライトと、これを複数回実施して完結するマルチプルライトがある。 【0005】 【発明が解決しようとする課題】上記のようにデータの書き込みを行なった際には、そのブロックが不良ブロックであるか否かを判定しているが、不良ブロックであるという判定は、メモリ自身の要因だけでなく、システム的な要因に起因する場合が存在する。従って、上記従来のようにデータ書き込みの際に不良ブロックであると判定された場合に、対応するブロックの管理データを“1”から“0”に書き換え、不良と判定されたブロックを直ちに利用できないようにすると、メモリ自身が不良でなくても、そのブロックは使用できないようになる。このため従来の不揮発性メモリのデータ書き込み方法では、メモリカードの寿命が短くなるという問題があった。 【0006】本発明は上記の課題を解決するためになされたもので、システム的な要因に起因する不良ブロックの判定に対しては、管理データの書き換えを阻止し、メモリの寿命が短くなることを確実に防止し得るメモリカード及び不揮発性メモリのデータ書き込み方法を提供することを目的とする。 【0007】 【課題を解決するための手段】第1の発明に係る不揮発性メモリのデータ書き込み方法は、シングルライト処理により不揮発性メモリへブロック単位でデータを書き込む第1のステップと、データの書き込みが正常に実行されたか否かを判定する第2のステップと、上記データの書き込みが正常に実行された場合にブロック使用管理テーブルを更新し、そのブロックへの再書き込みを禁止する第3のステップと、上記データの書き込みが正常に実行されなかった場合に異なるブロックへリトライする第4のステップと、上記リトライによってデータの書き込みが正常に実行された場合に前回の書き込み時に利用したアドレスを不良ブロックとして上記ブロック使用管理テーブルを更新する第5のステップとを具備することを特徴とする。上記のようにシングルライト処理においては、データ書き込みを行なった際にエラーが発生してもブロック使用管理テーブルに不良ブロックの登録は行なわず、その後、リトライ処理によって正常に処理を終了した場合に、前回の書き込み時に利用したアドレスを不良ブロックとしてブロック使用管理テーブルに登録される。従って、システム的な要因によるエラーの場合には、ブロック使用管理テーブルが更新されることはなく、不揮発性メモリの寿命が短くなることを確実に防止することができる。 【0008】第2の発明に係る不揮発性メモリのデータ書き込み方法は、マルチプルライト処理により不揮発性メモリへデータを書き込む第1のステップと、データの書き込みが正常に実行されたか否かを判定する第2のステップと、上記データの書き込みが正常に実行された場合にブロック使用管理テーブルを更新し、そのブロックへの再書き込みを禁止する第3のステップと、上記データの書き込みが正常に実行されなかった場合にエラーデータをエラー管理テーブルに登録する第4のステップと、ホストデバイスからの再書き込み要求により上記エラー管理テーブルを参照して空きブロックを選択してリトライする第5のステップと、上記リトライによってデータの書き込みが正常に実行された場合に上記エラー管理テーブルに登録されているエラー管理データをクリアする第6のステップとを具備することを特徴とする。上記マルチプルライト処理においては、書き込みエラーが発生した場合に、エラーデータをエラー管理テーブルに登録し、ホストデバイスからの再書き込み要求により上記エラー管理テーブルに登録されたエラー管理データに基づいて空きブロックを選択してリトライ処理を行ない、リトライ動作が正しく実施されたことでエラー管理テーブルがクリアされる。従って、システム的な要因によるエラーによってブロック使用管理テーブルが更新されることはなく、不揮発性メモリを効率的に使用して長寿命化を図ることができる。 【0009】 【発明の実施の形態】以下、図面を参照して本発明の一実施形態を説明する。図1は本発明の一実施形態に係るメモリカードの全体構成を示すブロック図である。 【0010】図1のメモリカードは、例えばパーソナルコンピュータ、電子カメラ、ゲーム機を始めとする各種電子機器に装着して使用されるもので、ホストインタフェース11と、コントローラ12と、ROM13と、RAM14と、書き換え可能な不揮発性メモリ、例えばフラッシュメモリ15とを備えている。 【0011】ホストインタフェース11は、上記メモリカードが装着される電子機器本体(以下、ホストデバイスと称する)とのインタフェースをなす。コントローラ12は、カード全体の制御を司るもので、マイクロプロセッサ(MPU)121と、レジスタ(REG)122とを有している。上記マイクロプロセッサ121は、ホストインタフェース11を介して受信されるコマンドをROM13に格納されている制御プログラム(ファームウェア)に従って解釈して実行する。 【0012】ROM13は、読み出し専用の不揮発性メモリである。ROM13は、上記制御プログラム、及び管理用の固定データ等を予め格納するのに用いられる。RAM14は、揮発性メモリであり、コントローラ12の作業用領域141の他、ブロック使用管理テーブル142、エラー管理テーブル143、書き込みデータバッファ144等が設けられる。上記ブロック使用管理テーブル142は、図2に示すようにフラッシュメモリ15の各ブロックに対し、それぞれ未使用状態と使用又は不良ブロック状態を記憶してブロックの使用状態を管理する。上記ブロック使用管理テーブル142は、図3(a)に示すようにフラッシュメモリ15の各ブロックが未使用の場合には、各ブロックに対して“1”が書き込まれている。そして、ブロック単位でデータの書き込みが行なわれると、図3(b)に示すように“1”が“0”に書き換えられ、そのブロックが使用状態であることが示される。また、不良ブロックに対しても“0”が書き込まれ、その後の使用が禁止される。 【0013】また、上記エラー管理テーブル143は、マルチプルライト処理の場合に使用されるもので、データ書き込みの際にエラーが発生すると、不良データとして登録される。 【0014】フラッシュメモリ15の各ブロックは、一定サイズの複数のセクタから構成される。セクタは、フラッシュメモリ15に対するデータの書き込み/読み出しの最小単位である。また、フラッシュメモリ15の領域は、システム管理情報等が保存される管理領域151と、画像データ、音楽データ等のデジタルコンテンツを保存するデータ領域152からなっている。管理領域151には、データ領域152に保存されているディジタルコンテンツを使用するのに必要な、コンテンツ復号キー、コピー制御情報、移動制御情報等の重要な情報が保存されている。 【0015】次に上記メモリカードに対するデータ書き込み処理について説明する。最初に、シングルライト処理について、図4に示すフローチャートを参照して説明する。コントローラ12は、ホストデバイスからの指令に従ってシングルライト処理を行なう場合、まず、書き込みアドレスを計算する(ステップA1)。すなわち、ブロック使用管理テーブル142に書き込まれているブロック使用管理データを参照して書き込み可能な領域を見つける。この場合、不良ブロックは使用済みとして管理されているので、再度利用することはない。 【0016】そして、上記書き込みアドレスに対してデータの書き込みを行なう(ステップA2)。この場合、ホストデバイスから送られてくるデータをRAM14の書き込みデータバッファ144にブロック単位で保持し、上記書き込みアドレスに対して書き込みを行なう。その後、ライトステータス、つまり、データ書き込みの処理ステータスが正常か否かを判別する(ステップA3)。 【0017】上記ステップA3で、異常ステータスが見つかっても不良ブロックをブロック使用管理テーブル142に直ちに登録することはしない。すなわち、上記ステップA3で、ライトステータスが異常であると判定された場合には、先行状態が異常であるとし(ステップA4)、リトライを継続するか終了するかをリトライ回数から判別する(ステップA5)。このステップA5では、予め設定されたリトライ回数に達したか否かによってリトライを継続するか終了するかを判別し、リトライ回数が設定値に達していなければ、ステップA1に戻り、異なるブロックを見つけてデータの再書き込みを行なう。上記ステップA5で、リトライ回数が設定値に達したと判定された場合には、ステップA6に進んでエラー終了とし、シングルライト処理を終了する。 【0018】また、上記ステップA3でライトステータスが正常であると判定された場合には、上記のデータ書き込みがリトライ処理であるか否かを判別し(ステップA7)、リトライ処理であった場合には、先行状態、つまり、前回の書き込みが正常か否かを判別する(ステップA8)。書き込み異常の場合には、不良データと判断し、前回のライト時に利用したアドレスを不良ブロックとし(ステップA9)、ステップA10で先行状態を正常にした後、ブロック使用管理テーブル142を更新する(ステップA11)。例えば図3(a)に示すようにブロック使用管理テーブル142が全て未使用状態となっているとき、最初のデータ書き込みがエラーとなってリトライ処理を行ない、その結果、データを正しく書けた場合には、図3(b)に示すように、そのブロックに対する管理データを“0”に書き換えて使用状態とすると共に、その1つ前に書き込みを行なったブロックを不良ブロックとして“0”に書き換える。 【0019】また、上記のようにリトライ処理によってデータの書き込みが正常に行なわれた場合において、図3(c)に示すように1つ前のブロックが既に使用状態となっており、その前のブロックが前回書き込みを行なったブロックであった場合には、図3(d)に示すように正常に書き込みができた今回のブロックに“0”を書き込むと共に、前回書き込みを行なった2つ前のブロックを不良ブロックとして“0”を書き込む。 【0020】また、上記ステップA7でリトライ処理ではないと判定された場合、あるいはステップA8で先行状態が正常であると判定された場合には、ステップA10で先行状態を正常にした後、ブロック使用管理テーブル142を更新する(ステップA11)。この場合には、データの書き込みが正常に行なわれたブロックに対して“0”を書き込んで使用状態とする。 【0021】その後、正常終了(ステップA12)としてシングルライト処理を終了する。 【0022】上記のようにシングルライトにおいては、データ書き込みを行なった際にエラーが発生してもブロック使用管理テーブル142に不良ブロックの登録は行なわず、その後、リトライ処理によって正常に処理を終了した場合に、前回の書き込み時に利用したアドレスを不良ブロックとしてブロック使用管理テーブル142を更新するようにしているので、メモリ自身の要因によってエラーが発生した場合のみブロック使用管理テーブル142が更新される。従って、システム的な要因によるエラーの場合には、ブロック使用管理テーブル142が更新されることはなく、リトライを繰り返して実施した場合においても、再書き込み実施試行分の不良ブロック判定を回避することが可能であり、不揮発性メモリの寿命が短くなることを確実に防止することができる。 【0023】次に、マルチプルライトによるデータ書き込み処理について図5に示すフローチャートを参照して説明する。 【0024】ホストデバイスからマルチプルライトによる書き込みが指示されると、コントローラ12は、まず、ブロック使用管理テーブル142に書き込まれている管理データを利用して、フラッシュメモリ15の書き込み可能な空きブロックを選択し(ステップB1)、この空きブロックに対してデータの書き込みを行なう(ステップB2)。この場合、ホストデバイスから送られてくるデータがRAM14の書き込みデータバッファ144に順次書き込まれ、このデータが上記空きブロックに書き込まれる。その後、ライトステータス、つまり、データ書き込みの処理ステータスが正常か否かを判別する(ステップB3)。 【0025】上記ステップB3で、ライトステータスが異常であると判定された場合には、先行状態が異常であるとし、エラーデータをRAM14のエラー管理テーブル143に登録する(ステップB4)。書き込みエラーが発生した場合、コントローラ12からホストインタフェース11を介してホストデバイスに書き込みエラーの発生を示すデータが送られる。これによりホストデバイスから再書き込み要求が指示される(ステップB5)。 【0026】コントローラ12は、再書き込み要求により、エラー管理テーブル143を参照して他の空きブロックの選択動作を行ない(ステップB6)、その空きブロックに対してリトライ処理を行なう(ステップB7)。すなわち、ホストデバイスから送られてくるデータを書き込みデータバッファ144に順次保持し、上空きブロックへの書き込みを行なう。 【0027】そして、上記リトライ処理に対してデータの書き込みが正常に行なわれたか否かを判別し(ステップB8)、書き込み異常が発生した場合にはステップB5に戻り、上記した処理を繰り返して実行する。 【0028】また、上記ステップB8で正常に書き込み処理を終了したと判定された場合には、上記エラー管理テーブル143に登録されているエラー管理データをクリアすると共にブロック使用管理テーブル142を更新し(ステップB9)、正常終了(ステップB10)としてマルチプルライト処理を終了する。 【0029】マルチプルライト時にエラーが発生した場合、RAM14の書き込みデータバッファ144には書き込みデータの一部しか保持されていない。このため書き込みデータバッファ144の保持データに基づくリトライを実施することができず、上記シングルライトの場合のようにリトライによって正常に書き込みができたという行為によって1つ前に書き込みを行なったブロックを不良ブロックであると判断することはできない。また、ホストデバイスからの書き込み再要求によって再度不良ブロック化できない事態が考えられる。 【0030】このため本発明によるマルチプルライト処理においては、上記したように書き込みエラーを発生したブロックについてエラー管理テーブル143に登録し、ブロック使用管理テーブル142とは別管理にする。その後、ホストデバイスからの再書き込み要求により、上記エラー管理テーブル143に登録されたエラー管理データに基づいて空きブロックを選択することでリトライ動作を可能としている。そして、リトライ動作が正しく実施されたことで上記エラー管理テーブル143に登録されているエラー管理データをクリアする。 【0031】上記マルチプルライトの場合には、エラーが発生した場合、そのエラーがメモリ自身の要因であるか、システム的な要因に起因するものか判断できないので、ブロック使用管理テーブル142の更新は行なわない。このようにエラーが発生したと判断されたブロックをそのまま未使用領域として残しておいても、その後、図5で説明したシングルライト処理において、そのエラーがメモリ自身の要因であるか、システム的な要因に起因するものかを判断できるので問題はない。上記したようにマルチプルライト処理の場合には、エラーが発生してもブロック使用管理テーブル142が更新されることはなく、不揮発性メモリの寿命が短くなることを確実に防止することができる。 【0032】なお、上記実施形態では、不揮発性メモリを備えたメモリカードに実施した場合について説明したが、その他、例えばコンピュータが内蔵する不揮発性メモリに対しても、上記実施形態と同様にして実施し得るものである。 【0033】 【発明の効果】以上詳記したように本発明によれば、シングルライト処理により不揮発性メモリへデータ書き込みを行なった際にエラーが発生しても不良ブロックを直ちにブロック使用管理テーブルに登録することはせず、その後、リトライ処理によって正常に書き込みができた場合に、前回の書き込み時に利用したアドレスを不良ブロックとしてブロック使用管理テーブルを更新するようにしているので、メモリ自身の要因によってエラーが発生した場合のみブロック使用管理テーブルが更新される。従って、システム的な要因によるエラーの場合には、ブロック使用管理テーブルが更新されることはなく、不揮発性メモリの寿命が短くなることを確実に防止することができる。また、マルチプルライト処理においては、書き込みエラーが発生した場合に、エラーデータをエラー管理テーブルに登録し、ホストデバイスからの再書き込み要求により上記エラー管理テーブルに登録されたエラー管理データに基づいて空きブロックを選択してリトライ処理を行ない、リトライ動作が正しく実施されたことでエラー管理テーブルをクリアするようにしたので、システム的な要因によるエラーによってブロック使用管理テーブルが更新されることはなく、不揮発性メモリを効率的に使用して長寿命化を図ることができる。
|
| 【出願人】 |
【識別番号】000003078 【氏名又は名称】株式会社東芝
|
| 【出願日】 |
平成12年9月29日(2000.9.29) |
| 【代理人】 |
【識別番号】100058479 【弁理士】 【氏名又は名称】鈴江 武彦 (外6名)
|
| 【公開番号】 |
特開2002−108720(P2002−108720A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−301521(P2000−301521) |
|