(57)【要約】【課題】書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができるようにする。【解決手段】  フラッシュメモリを構成する複数のブロックのうちのブロックAにおいて、先頭のページから順にデータを記録させている場合に、ブロックAの先頭から４０番目のページであるｐ４０で書き込みエラーが発生したことにより、ブロックAが欠陥ブロックとなったときに、フラッシュメモリを制御するメモリ制御部は、ブロックAのｐ４０以降のデータを、退避ブロックとしてのブロックCに仮に記憶させる。本発明は、例えば、記録媒体に対するデータの記録を制御する記録制御装置に適用できる。【選択図】図５
2007072839.tif 000002
【特許請求の範囲】
【請求項１】
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる記録制御手段
を備える記録制御装置。
【請求項２】
前記記録制御手段は、さらに、前記所定の記録ブロックを代替する代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記所定の記録ブロックの前記所定の記録単位より前までの前記記録単位に記録されている前記データであるエラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記退避ブロックに記録されている前記エラー記録単位以降データを記録させる
請求項１に記載の記録制御装置。
【請求項３】
前記記録制御手段は、前記記録媒体への前記データの記録または再生の処理が行われていないアイドル状態のときに、前記代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記エラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記エラー記録単位以降データを記録させる
請求項２に記載の記録制御装置。
【請求項４】
前記記録制御手段は、さらに、前記退避ブロックに記録されている前記エラー記録単位以降データが前記代替記録ブロックに記録された後に、前記退避ブロックの前記エラー記録単位以降データを消去する
請求項３に記載の記録制御装置。
【請求項５】
前記退避ブロックおよび前記代替記録ブロックは、前記欠陥ブロックを代替する代替ブロック領域として確保されている前記記録ブロックのなかから決定される
請求項１に記載の記録制御装置。
【請求項６】
前記記録媒体は、NAND型フラッシュメモリである
請求項１に記載の記録制御装置。
【請求項７】
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる
ステップを含む記録制御方法。
【請求項８】
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を、コンピュータに実行させるプログラムにおいて、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録制御装置および方法、並びにプログラムに関し、特に、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができる記録制御装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
NAND型フラッシュメモリ（以下、単にフラッシュメモリと称する）は、複数のブロックからなり、そのブロックそれぞれは、所定バイト数からなるページが複数集められて構成されている。また、フラッシュメモリでは、例えば、データの記録（書き込み）は、ページ単位で行われ、データの消去はブロック単位で行われる。
【０００３】
例えば、記憶容量が２ギガビット（Gbit）のフラッシュメモリでは、図１に示すように、２０４８個のブロック（２０４８ブロック）で構成され、１ブロックは、６４ページで構成されている。また、１ページは、２０４８バイトに冗長部６４バイトを加えた２１１２バイトで構成されている。
【０００４】
このようなフラッシュメモリは、画像データなどの大容量ファイルの保存または運搬に適しており、近年、デジタルビデオカメラ（デジタルカメラ）、またはハードディスクやDVD (Digital Versatile Disc)などの記録媒体にコンテンツデータを記録する記録再生装置などに装着することができるようになってきている（例えば、特許文献１参照）。
【０００５】
ところで、フラッシュメモリでは、全ブロックのうちの所定数のブロックが、出荷時点から欠陥ブロックとなっていることがある。ここで、欠陥ブロックとは、使用不可能なブロック、換言すれば、データの記録ができないブロックである。
【０００６】
従って、フラッシュメモリを組み込んだシステムでは、フラッシュメモリを最初に使用する場合に、欠陥ブロックが（どこに）あるかどうかをチェックし、検出された欠陥ブロックを使用しないように制御する必要がある。
【０００７】
図１の例では、全２０４８ブロックのうちの所定数のブロックを、欠陥ブロックを代替する代替ブロックとして割り当てるブロックの領域である代替ブロック領域を設ける。そして、初期動作確認時の欠陥検出処理で検出された図示しない１つの欠陥ブロックの代替ブロックとして、代替ブロック領域内のブロックR（Rで示されているブロック）が割り当てられ、検出された欠陥ブロックに記録するべきデータが、ブロックRに記録されるようにする。
【０００８】
また、フラッシュメモリでは、出荷時点から存在する欠陥ブロックの他に、これまで使用可能だったブロックが使用中に欠陥ブロックとなることもある。即ち、データを記録している所定ブロック内のあるページで、エラー（書き込みエラー）が発生した場合、そのエラーが発生したページを含むブロックは、それ以降欠陥ブロックとなる。この場合も、出荷時点から存在している欠陥ブロックと同様に代替ブロックが割り当てられる。
【０００９】
図２を参照して、図１で示した２Gbitのフラッシュメモリにおいて、ブロックA（Aで示されるブロック）内のあるページでエラーが発生した場合における、従来の代替ブロック処理について説明する。
【００１０】
フラッシュメモリを制御する制御部が、バッファメモリからデータを取り出し、ブロックAの先頭ページであるｐ１から順に、ｐ２，ｐ３，・・・とデータを記録させる。そして、バッファメモリから取り出したデータをｐ４０に記録させているときにエラーが発生したとする。ここで、ｐ１乃至ｐ３９に記録されたデータをデータａ1とする。
【００１１】
この場合、制御部は、ブロックAの代替ブロックとして、代替ブロック領域内のブロックB（Bで示されているブロック）を割り当てる。そして、制御部は、バッファメモリからブロックAのｐ１乃至ｐ３９に記録させたデータａ1を再度取り出し、ブロックBに先頭ページから順に記録させる。そして、ブロックBのｐ１乃至ｐ３９に対して、データａ1の記録が終了した後、制御部は、ブロックBのｐ４０以降に記録するべきデータａ2をバッファメモリから読み出し、ブロックBのデータａ1に続けて記録させる。
【００１２】
【特許文献１】特開平１０−２４７１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述したような従来の代替ブロック処理では、あるページでエラーが発生した場合に、ブロックの先頭のページからエラーが発生したページまでのデータを再度バッファメモリから読み出すので、ブロック内の全ページに対するデータの記録が正常に終了したことが確認されるまで、そのブロックに記録させるデータをバッファメモリで保持しておく必要がある。従って、バッファメモリには、少なくとも１ブロック分のデータ容量が必要となる。
【００１４】
また、上述の代替ブロック処理では、エラーが発生したページ（ｐ４０）以前のデータａ1については、ブロックAとブロックBに対して２回書き込むことになり、データの記録速度が低下する。このことは、記録するデータが文書ファイルなどのリアルタイム性が要求されないデータであれば問題にはならないが、例えば、カメラで撮像された動画像データの記録などのように、連続して供給されるデータをリアルタイムに記録する必要のある場合には、一部の画像が記録されないなど致命的な問題が起こり得る。
【００１５】
記録速度の低下を補うために、フラッシュメモリを複数個並列に動作させる方法などもあるが、その方法は、回路規模および消費電力の増大という新たな問題を発生させる。例えば、１６個のフラッシュメモリを並列に動作させた場合には、バッファメモリもそれに対応して１個のフラッシュメモリのときの１６倍だけ必要となり、バッファメモリのさらなる増大につながる。
【００１６】
例えば、１個のフラッシュメモリに対しては上述したように少なくとも１ブロック分のバッファメモリがあれば良いが、エラーによる再書き込み中に再度エラーが発生することも考慮して、１個のフラッシュメモリに対して２ブロック分のバッファメモリを用意する場合、１６個のフラッシュメモリを並列に動作させる構成では、約４メガバイト（２[ブロック]×２K[バイト/ページ]×６４[ページ]×１６[個]）の容量のバッファメモリが必要となる。
【００１７】
本発明は、このような状況に鑑みてなされたものであり、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができるようにするものである。
【課題を解決するための手段】
【００１８】
本発明の一側面の記録制御装置は、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置において、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる記録制御手段を備える。
【００１９】
前記記録制御手段には、さらに、前記所定の記録ブロックを代替する代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記所定の記録ブロックの前記所定の記録単位より前までの前記記録単位に記録されている前記データであるエラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記退避ブロックに記録されている前記エラー記録単位以降データを記録させることができる。
【００２０】
前記記録制御手段には、前記記録媒体への前記データの記録または再生の処理が行われていないアイドル状態のときに、前記代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記エラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記エラー記録単位以降データを記録させることができる。
【００２１】
前記記録制御手段には、さらに、前記退避ブロックに記録されている前記エラー記録単位以降データが前記代替記録ブロックに記録された後に、前記退避ブロックの前記エラー記録単位以降データを消去させることができる。
【００２２】
前記退避ブロックおよび前記代替記録ブロックは、前記欠陥ブロックを代替する代替ブロック領域として確保されている前記記録ブロックのなかから決定させることができる。
【００２３】
前記記録媒体は、NAND型フラッシュメモリとすることができる。
【００２４】
本発明の一側面の記録制御方法は、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法において、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させるステップを含む。
【００２５】
本発明の一側面のプログラムは、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を、コンピュータに実行させるプログラムにおいて、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させるステップを含む。
【００２６】
本発明の一側面においては、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する際、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データが、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録される。
【００２７】
記録制御装置は、独立した装置であっても良いし、記録制御処理を行うブロックであっても良い。
【発明の効果】
【００２８】
本発明の一側面によれば、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができる。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３０】
本発明の一側面の記録制御装置は、
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置（例えば、図３の記録装置１２）において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる記録制御手段（例えば、図４のメモリ制御部４１）
を備える。
【００３１】
本発明の一側面（第１の側面）の記録制御方法またはプログラムは、
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法、または、前記記録制御処理をコンピュータに実行させるプログラムにおいて、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの１つの前記記録ブロックに仮に記録させる（例えば、図６のステップＳ１７）
ステップを含む。
【００３２】
以下、図を参照して、本発明の実施の形態について説明する。
【００３３】
図３は、本発明を適用した情報処理システムの一実施の形態の構成例を示している。
【００３４】
図３の情報処理システムは、ホスト装置１１と記録装置１２により構成されている。
【００３５】
ホスト装置１１は、例えば、パーソナルコンピュータ、デジタルビデオカメラ（デジタルカメラ）、ハードディスクやDVDなどの記録媒体にデータ（画像データなど）を記録する記録再生装置、テレビジョン受像機、携帯電話機、PDA(Personal Digital Assistant)、または、フラッシュメモリやハードディスクを有する携帯型のデジタルオーディオプレーヤなどのポータブルデバイスなどであり、自身（ホスト装置１１）が受信または生成したデータを記録装置１２に供給し、記憶させる。
【００３６】
また、ホスト装置１１は、ドライブ２１を備えており、そこに装着される、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２２から読み出されたプログラムやデータを記録装置１２に供給する。
【００３７】
なお、ホスト装置１１が、ルータ、モデムなどの通信部を有している場合には、ホスト装置１１は、リムーバブルメディア２２から読み出されたものの他、通信部を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体から取得されたプログラムやデータを、記録装置１２に供給することもできる。
【００３８】
記録装置１２は、記録媒体として、NAND型フラッシュメモリ３１を有し、ホスト装置１１から供給されるデータ（例えば、画像データ）をNAND型フラッシュメモリ３１に記録（記憶）する。NAND型フラッシュメモリ３１は、上述したように、複数のブロックからなり、そのブロックそれぞれは、所定バイト数からなるページが複数集められて構成される。
【００３９】
図４は、記録装置１２の詳細な構成例を示すブロック図である。
【００４０】
記録装置１２は、NAND型フラッシュメモリ３１、メモリ制御部４１、プログラム記憶部４２、バッファメモリ４３、フラッシュインタフェース４４、ファイル管理部４５、および論物アドレス変換テーブル４６により構成されている。
【００４１】
NAND型フラッシュメモリ３１（以下、単にフラッシュメモリ３１と称する）は、図４に示すように、管理情報記録領域、データ記録領域、および代替ブロック領域により構成される。
【００４２】
管理情報記録領域には、フラッシュメモリ３１の属性情報（例えば、記憶容量、ブロック数や１ブロック当たりのページ数などの構成情報）、どのブロックに何のデータが記録されているかを表すデータ情報、ブロックの使用、未使用、またはブロックが欠陥ブロックであるかを表すブロック情報、フラッシュメモリ３１の物理アドレスと論理アドレスの対応を表す論物アドレス変換情報などが記憶される。
【００４３】
データ記録領域には、ホスト装置１１から供給されたデータ（以下、適宜、記録データと称する）が記録される。代替ブロック領域は、出荷時点から存在する、または、使用中に発生した欠陥ブロックの代替ブロック用に割り当てられるブロックの領域である。
【００４４】
なお、フラッシュメモリ３１は、従来の図１における場合と同様の記憶容量および代替ブロック領域を有しているものとする。
【００４５】
メモリ制御部４１は、プログラム記憶部４２に記憶されている制御プログラムに従い、記録装置１２の各部を制御する。なお、レジスタ５１には、各部を制御する際の一時的なデータが必要に応じて記憶される。
【００４６】
例えば、メモリ制御部４１は、記録装置１２が起動された場合、フラッシュメモリ３１の管理情報記録領域に記憶されている属性情報、データ情報、ブロック情報、および論物アドレス変換情報を読み出し、属性情報、データ情報、およびブロック情報をファイル管理部４５に、論物アドレス変換情報を論物アドレス変換テーブル４６にそれぞれ記憶させる。なお、ファイル管理部４５に記憶される属性情報とデータ情報を合わせてファイル情報と称する。
【００４７】
また、メモリ制御部４１は、記録指令のコマンドとともに、ホスト装置１１（図３）から供給される、記録データと、その記録データの記録先としてのフラッシュメモリ３１の論理アドレス（ブロックアドレス）を取得する。なお、ホスト装置１１は、ファイル管理部４５に記憶されているファイル情報を参照し、空きブロックを指定することができる。
【００４８】
メモリ制御部４１は、供給された記録データをバッファメモリ４３に一旦記憶させるとともに、論物アドレス変換テーブル４６に記憶されている論物アドレス変換情報を参照し、ホスト装置１１に指定された論理アドレスを物理アドレスに変換する。そして、メモリ制御部４１は、変換された物理アドレスのブロックに対して、記録データを１ページ分ずつバッファメモリ４３から取り出し、フラッシュインタフェース４４を介して、フラッシュメモリ３１に供給する（転送する）。これにより、記録データがフラッシュメモリ３１の所定のブロック（のページ）に書き込まれる。なお、メモリ制御部４１は、１ページ分の記録データを転送するたびに、転送した記録データが所定のページに正常に書き込まれたかどうかをステータスにより確認する。
【００４９】
プログラム記憶部４２は、記録装置１２の各部を制御する制御プログラムを記憶する。ここに記憶されている制御プログラムは、例えば、ドライブ２１に装着されたリムーバブルメディア２２から読み出され、インストールされたものである。バッファメモリ４３は、メモリ制御部４１から供給される記録データを一時記憶する。フラッシュインタフェース４４は、メモリ制御部４１とフラッシュメモリ３１との間でデータを中継する。
【００５０】
ファイル管理部４５は、上述したように、メモリ制御部４１から供給される、ファイル情報（属性情報およびデータ情報）およびブロック情報を記憶する。また、ファイル管理部４５は、必要に応じてファイル情報をホスト装置１１に供給する。論物アドレス変換テーブル４６は、メモリ制御部４１から供給される論物アドレス変換情報を記憶する。
【００５１】
次に、図５を参照して、図２で示した例と同様に、ブロックAに記録データを書き込んでいる最中に、ｐ４０においてエラー（書き込みエラー）が発生した場合の、記録装置１２が行う代替ブロック処理について説明する。なお、図５において、図２と対応する部分については同一の符号を付してあり、その説明を適宜省略する。
【００５２】
図５Aに示すように、メモリ制御部４１が、バッファメモリ４３から１ページ分ずつ記録データを取り出し、その取り出した記録データをブロックAのｐ１から順に記録させる（フラッシュメモリ３１に転送する）。そして、ブロックAのｐ４０に対して記録データを記録させているときにエラーが発生したとする。
【００５３】
この場合、メモリ制御部４１は、エラーの発生したｐ４０のアドレス（エラーページアドレス）と、エラーの発生したブロックAのアドレス（エラーブロックアドレス）をレジスタ５１に記憶する。そして、メモリ制御部４１は、ブロックAのｐ４０以降に記録するべき記録データであるデータａ2を一時的に記憶させる退避ブロックを、代替ブロック領域のなかから決定する。図５Aでは、ブロックC（Cで示されているブロック）が、決定された退避ブロックを表している。
【００５４】
次に、メモリ制御部４１は、バッファメモリ４３に記憶されているデータａ2を１ページ分ずつ順次取り出し、退避ブロックCに記録させる。これにより、ブロックAのｐ４０乃至ｐ６４に記録するべきデータａ2が、退避ブロックCのｐ１乃至ｐ２５に記録される。
【００５５】
その後、まだバッファメモリ４３に記録データがある場合には、次のブロック（例えば、図５Aに示すブロックD）が決定され、そこに、次の記録データが書き込まれる。
【００５６】
そして、ホスト装置１１から供給された記録データのフラッシュメモリ３１への記録（転送）が一旦終了し、フラッシュメモリ３１への記録データの書き込みまたはフラッシュメモリ３１に記録されているデータの読み出しのいずれの処理も行われていない、記録装置１２のアイドル状態のときに、メモリ制御部４１は、図５Bおよび図５Cに示す処理を実行する。
【００５７】
即ち、メモリ制御部４１は、ブロックAの代替ブロックを、代替ブロック領域内のブロックのなかから決定する。図５Bでは、ブロックBがブロックAの代替ブロックとして決定されている。次に、メモリ制御部４１は、レジスタ５１に記憶されているエラーブロックアドレス（ブロックAを示すアドレス）とエラーページアドレス（ｐ４０を示すアドレス）を読み出し、ブロックAのｐ１からｐ３９（エラーページアドレスが表すページの前のページ）までのデータａ1を代替ブロックBに記録させる。さらに、メモリ制御部４１は、データａ1に続けて、退避ブロックCに記録されているデータａ2（エラーページアドレスが表すページ以降のデータ）を代替ブロックBに記録させる。
【００５８】
なお、メモリ制御部４１が、フラッシュメモリ３１に記憶されているデータを読み出し、読み出したブロックと異なるブロックに記録させる場合には、ホスト装置１１から供給された記録データをフラッシュメモリ３１に記録させる場合と同様に、フラッシュメモリ３１から読み出したデータを１ページずつバッファメモリ４３に記憶させ、代替ブロックB内のページに記録させる。
【００５９】
そして、ブロックAおよび退避ブロックCに記録されている全ての記録データが、即ち、データａ1およびａ2が、ブロックAの代替ブロックBに記録された後、メモリ制御部４１は、図５Cに示すように、退避ブロックCに記録されているデータａ2を消去する。
【００６０】
以上のように、記録装置１２の代替ブロック処理によれば、ホスト装置１１から供給されている記録データをフラッシュメモリ３１に転送している最中に、ブロックAのｐ４０でエラーが発生した場合には、エラーが発生したｐ４０以降のデータａ2を退避ブロックCに記憶させる。
【００６１】
そして、記録装置１２がアイドル状態となったときに、ブロックAの代替ブロックとしてブロックBを決定し、ブロックAのｐ４０より前に記録されているデータａ1と、退避ブロックCに記録されているエラーが発生したｐ４０以降のデータａ2を、ブロックBに記録させる。
【００６２】
従って、ホスト装置１１から供給される記録データが、動画像データなどのようにリアルタイム性が要求されるデータであっても、記録装置１２から供給されて記録しているときに、バッファメモリ４３から２回読み出す必要のあるデータは、ブロックAのｐ４０に記録させる予定だった１ページ分のデータのみであるので、記録速度の低下を（ほとんど無視できる程度に）抑えることができる。
【００６３】
また、バッファメモリ４３に必要な記憶容量も１ページ分のデータ量で済むことになり、従来における場合と比較して、回路規模および消費電力を極力少なくすることができる。このことは、装置の小型化やバッテリによる長時間駆動が求められるポータブルデバイスなどには効果が大きい。
【００６４】
なお、従来例と同様に、１６個のフラッシュメモリを並列に動作させ、かつ、１個のフラッシュメモリに対して、エラーによる再書き込み中の再エラーも考慮して、２ページ分のバッファメモリを用意する場合、バッファメモリ４３では、約６４Kバイト（２[ページ]×２K[バイト/ページ]×１６[個]）の容量が必要となる。即ち、図４の記録装置１２によれば、バッファメモリの容量を、従来の４メガバイトの１／６４に削減することができる。フラッシュメモリの容量は、今後、増大していくことが予想され、その場合、必要となるバッファメモリの容量の差は、ますます大きくなり、本発明がより有用となる。
【００６５】
図６および図７のフローチャートを参照して、プログラム記憶部４２に記憶された制御プログラムに従ってメモリ制御部４１が行うブロック代替処理について説明する。図６は、ブロック代替処理のうちの、記録データがホスト装置１１から供給されたときに実行されるリアルタイム記録処理のフローチャートであり、図７は、ブロック代替処理のうちの、記録装置１２がアイドル状態となったときに実行される退避データ記録処理のフローチャートである。
【００６６】
記録指令のコマンドとともに、記録データと、その記録データの記録先としてのフラッシュメモリ３１の論理アドレスが、ホスト装置１１から記録装置１２のメモリ制御部４１に供給されると、メモリ制御部４１は、供給された記録データをバッファメモリ４３に記憶させるとともに、論物アドレス変換テーブル４６に記憶されている論物アドレス変換情報を参照し、ホスト装置１１に指定された論理アドレスを物理アドレスに変換する。また、メモリ制御部４１は、変換された物理アドレスのなかの（最初の）ブロックを決定する。ここで、決定されたブロックを以下では、決定ブロックと称する。
【００６７】
初めに、ステップＳ１１において、メモリ制御部４１は、１ページ分の記録データをバッファメモリ４３から取り出し、フラッシュインタフェース４４を介して、フラッシュメモリ３１に供給（転送）し、決定ブロック内の所定のページ（初回は、先頭のページ）に記録させて、ステップＳ１２に進む。
【００６８】
ステップＳ１２において、メモリ制御部４１は、ステップＳ１１の記録データの転送から、予め設定された所定時間が経過したか否かを判定し、所定時間が経過したと判定されるまで待機する。
【００６９】
ステップＳ１２で、所定時間が経過したと判定された場合、ステップＳ１３に進み、メモリ制御部４１は、転送した記録データが所定のページに正常に書き込まれたかどうかを表すステータスを、フラッシュインタフェース４４を介してフラッシュメモリ３１から取得する。
【００７０】
ステップＳ１４において、メモリ制御部４１は、取得したステータスに基づいて、正常に書き込みが終了したか否かを判定する。ステップＳ１４で、正常に書き込みが終了したと判定された場合、処理を終了する。
【００７１】
一方、ステップＳ１４で、正常に書き込みが終了しなかったと判定された場合、即ち、ページに対する書き込みのエラーが発生した場合、ステップＳ１５に進み、エラーが発生したページであるエラーページのアドレス（エラーページアドレス）と、エラーページを含むブロック、即ち、欠陥ブロックのアドレスをレジスタ５１に記憶する。
【００７２】
ステップＳ１６において、メモリ制御部４１は、決定ブロックのエラーページ以降に記録するべき記録データを一時的に記憶させる退避ブロックを、代替ブロック領域のなかから決定して、ステップＳ１７に進む。
【００７３】
ステップＳ１７において、メモリ制御部４１は、エラーページの記録データを再度バッファメモリ４３から読み出し、退避ブロックに記録させ、処理を終了する。
【００７４】
以上のリアルタイム記録処理が、ページに対するエラー（書き込みエラー）が発生するまでの間、決定ブロック内の６４ページそれぞれについて順番に実行される。決定ブロック内の６４ページのいずれかのページでエラーが発生した場合には、図５を参照して説明したように、図６のステップＳ１６で決定された退避ブロックにエラーページ以降の記録データが記録される。
【００７５】
そして、図６のリアルタイム記録処理において、あるページに対する書き込みでエラーが発生した場合、その後の記録装置１２がアイドル状態となったとき、図７の退避データ記録処理が実行される。
【００７６】
即ち、ステップＳ３１において、メモリ制御部４１は、エラーページを含むブロックの代替ブロックを代替ブロック領域のなかから決定して、ステップＳ３２に進む。図５に示した例では、これにより、ブロックBがブロックAの代替ブロックとして決定される。
【００７７】
ステップＳ３２において、メモリ制御部４１は、レジスタ５１に記憶されているエラーページアドレスと欠陥ブロックのアドレスを読み出し、ステップＳ３３に進む。図５に示した例では、メモリ制御部４１は、エラーの発生したｐ４０のアドレス（エラーページアドレス）と、エラーの発生したブロックAのアドレス（エラーブロックアドレス）をレジスタ５１に記憶する。
【００７８】
ステップＳ３３において、メモリ制御部４１は、欠陥ブロックに記録されている、エラーページ前のデータを代替ブロックに記録させ、ステップＳ３４に進む。図５に示した例では、メモリ制御部４１は、ブロックAのｐ１からｐ３９までのデータａ1を代替ブロックBに記録させる。
【００７９】
ステップＳ３４において、メモリ制御部４１は、退避ブロックに記録されている、エラーページ以降のデータを代替ブロックに記録させ、ステップＳ３５に進む。図５に示した例では、これにより、ブロックAのｐ４０乃至ｐ６４に記録するべきデータａ2が、退避ブロックCのｐ１乃至ｐ２５に記録される。
【００８０】
ステップＳ３５において、メモリ制御部４１は、退避ブロックに記録されているデータを消去して、ステップＳ３６に進む。図５に示した例では、メモリ制御部４１は、図５Cに示したように、退避ブロックCに記録されているデータａ2を消去する。
【００８１】
ステップＳ３６において、メモリ制御部４１は、論物アドレス変換テーブル４６に記憶されている論物アドレス変換情報を更新して、処理を終了する。即ち、メモリ制御部４１は、欠陥ブロックの論理アドレスと対応付けられている物理アドレスを、代替ブロックの物理アドレスに変更して、処理を終了する。図５に示した例では、ブロックAの論理アドレスに対応付ける物理アドレスが、ブロックBの物理アドレスとされる。
【００８２】
以上のように、記録装置１２のブロック代替処理によれば、フラッシュメモリ３１を構成する複数のブロックのうちのブロックAにおいて、先頭のページから順にデータを記録させている場合に、ｐ４０でエラーが発生したことにより、ブロックAが欠陥ブロックとなったときに、メモリ制御部４１は、ブロックAのｐ４０以降に記録するべきデータを、退避ブロックとしてのブロックCに仮に記憶させる。そして、フラッシュメモリ３１へのデータの記録または再生の処理が行われていないアイドル状態のときに、メモリ制御部４１は、ブロックAを代替する代替記録ブロックとしてブロックBを決定し、ブロックBの先頭のページから、ブロックAのエラーページ（ｐ４０）より前までの（即ち、ｐ１からｐ３９までの）データを順に記録させ、それに続けて、ブロックCに記録されているデータを記録させる。
【００８３】
これにより、ホスト装置１１から供給される記録データをフラッシュメモリ３１に書き込む場合に、エラーが発生したときでも記録速度の低下を抑えることができる。また、フラッシュメモリ３１に記録させる記録データを一時的に記憶するバッファメモリ４３を少ない容量で構成することができ、回路規模の縮小および省電力を実現することができる。
【００８４】
なお、上述した例では、データを所定のブロックに記録させる際に、ブロックの先頭のページからデータを記録させるようにしたが、ブロックの任意のページにデータを記録させることが可能な場合には、ブロックAのｐ４０で書き込みエラー発生後、仮ブロックとして決定したブロックCのｐ４０以降にブロックAのｐ４０以降に記録するべきデータを記録させ、アイドル時にブロックCのｐ１乃至ｐ３９にブロックAに記録されているデータを記録させるようにしてもよい。この場合、ブロックCをそのままブロックAの代替ブロックとすることができる。
【００８５】
また、上述した例では、欠陥ブロックの代替ブロック用にフラッシュメモリ３１の一部の領域を代替ブロック領域として予め確保しておくようにしたが、代替ブロック領域を予め確保しておく必要は必ずしもなく、欠陥ブロックが発生した時点で、ファイル管理部４５に記憶されているブロック情報に基づいて、フラッシュメモリ３１内のブロックのなかから、欠陥ブロックでなく、未使用であるブロックを決定するようにしてもよい。
【００８６】
本発明は、NAND型フラッシュメモリに限らず、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体で、記録ブロック内の１つの記録単位で書き込みエラーが発生したとき、その記録ブロックを欠陥ブロックとして扱う必要がある記録媒体に採用することができる。
【００８７】
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００８８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００８９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００９０】
【図１】NAND型フラッシュメモリを説明する図である。
【図２】従来のブロック代替処理を説明する図である。
【図３】本発明を適用した情報処理システムの一実施の形態の構成例を示すブロック図である。
【図４】記録装置１２の詳細な構成例を示すブロック図である。
【図５】記録装置１２のブロック代替処理を説明する図である。
【図６】リアルタイム記録処理を説明するフローチャートである。
【図７】避データ記録処理を説明するフローチャートである。
【符号の説明】
【００９１】
１２  記録装置，  ３１  NAND型フラッシュメモリ，  ４１  メモリ制御部，  ４３  バッファメモリ，  ５１  レジスタ
【図１】
2007072839.tif 000003
【図２】
2007072839.tif 000004
【図３】
2007072839.tif 000005
【図４】
2007072839.tif 000006
【図５】
2007072839.tif 000007
【図６】
2007072839.tif 000008
【図７】
2007072839.tif 000009