(57)【要約】【課題】フラッシュメモリに対してリアルタイムデータを記録する機器において、書き込みエラーが発生したときに、書き込みを継続するための手段が、ファイルシステムとは無関係な独自形式であるため、ファイルシステムによりデータを記録するシステムには適合できない。【解決手段】複数のアクセスユニットで構成されるメモリを有する記録装置であって、前記メモリにデータをアクセスユニット単位で記録する記録手段と、前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了する。【選択図】図１
2011186708.tif 000002
【特許請求の範囲】
【請求項１】
複数のアクセスユニットで構成されるメモリを有する記録装置であって、
前記メモリにデータをアクセスユニット単位で記録する記録手段と、
前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、
前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了することを特徴とする記録装置。
【請求項２】
前記書き込みエラー検出手段で書き込みエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記記録手段は、さらに前記アクセスユニット特定手段で特定されたアクセスユニット以外の書き込みがされていないアクセスユニットに新たなデータを書き込むことを特徴とする記録装置。
【請求項３】
複数のアクセスユニットで構成されるメモリを有する再生装置であって、
前記メモリからデータをアクセスユニット単位で読み出す読出手段と、
前記読出手段で前記データを前記メモリから読み出しているときに、読み出しエラーを検出する読み出しエラー検出手段と、
前記読み出しエラー検出手段で読み出しエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記読出手段は、前記アクセスユニット特定手段で特定されたアクセスユニット以外の読み込みがされていないアクセスユニットからデータを読み出すことを特徴とする読出装置。
【請求項４】
複数のアクセスユニットで構成されるメモリを有する記録再生装置であって、
前記メモリにデータをアクセスユニット単位で記録する記録手段と、
前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段と、
前記メモリからデータをアクセスユニット単位で読み出す読出手段と、
前記読出手段で読み出したデータを再生する再生手段と、
前記読出手段で前記データを前記メモリから読み出しているときに、読み出しエラーを検出する読み出しエラー検出手段と、
書き込みエラーあるいは読み出しエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了し、
前記読出手段は、前記アクセスユニット特定手段で特定されたアクセスユニット以外の読み込みがされていないアクセスユニットからデータを読み出すことを特徴とする記録再生装置。
【請求項５】
前記記録手段は、さらに前記アクセスユニット特定手段で特定されたアクセスユニット以外の書き込みがされていないアクセスユニットに新たなデータを書き込むことを特徴とする請求項４に記載の記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリなどの不揮発性メモリを用いた記録装置に関し、特に、フラッシュメモリの書き込みエラーおよび読み出しエラーが発生した場合の記録方法に関するものである。
【背景技術】
【０００２】
近年、デジタルオーディオプレーヤ、ＩＣレコーダ、デジタルカメラなどを代表とするデジタル機器、ＳＤカード、ＭＭＣカードなどを代表とするメモリカード等において、不揮発性メモリであるフラッシュメモリが多用されている。フラッシュメモリは、プロセスの進化などにより、大容量化してきており、特に、データの記憶媒体としては、大容量化に向くＮＡＮＤ型フラッシュメモリが多用される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、品種によりサイズ等は異なるが、例えば、４０９６個の物理的なブロックに分割されており、このブロックが消去の最小単位であり、さらにブロックは、書き込みおよび読み出しの基本単位となるページが１２８個で構成され、さらにページは、２０４８バイトのユーザーデータ領域と６４バイトの冗長部領域で構成される。
【０００４】
また、通常、機器組み込みマイコンやパソコン等では、データの読み書きを行うアプリケーションプログラムから見れば、記憶媒体のデータを、共通の単位として、セクタ（５１２バイト）単位で管理することが多く、上記で説明した書き込みおよび読み出しの基本単位であるページと異なることもある。
【０００５】
特許文献１では、メモリカード装置として、複数ページに区分けされるＥＥＰＲＯＭに対して、ページ毎にエラーの有無を検出し、特定のページをエラーフラグエリアとして、各ページのエラー発生の有無を示すエラーフラグを記録し、エラー発生ページの書き込みデータは空きページに置換して書き込み、エラー発生ページには置換アドレスを書き込み、読み出し時にはエラーフラグエリアを参照してエラー発生ページを判別し、そのページのバイトデータを読み出して置換アドレスを判別し、判別したアドレスに基づいて置換データを読み出すことが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−４６４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の記録再生装置は、書き込みエラーが発生したときに、書き込みを継続するための手段が、ファイルシステムとは無関係な独自形式であるため、パソコンとの整合性の重視のため近年一般化されているファイルシステムによりデータを記録するシステムには適合できないという問題があった。
【０００８】
そこで、本発明は、上記従来の問題点を解決すべく、修復不能な書き込みエラーが発生した場合でも、書き込みエラーが発生するまでに記録したデータを正常なファイルとして取り扱うことができる記録装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の記録装置は、複数のアクセスユニットで構成されるメモリを有する記録装置であって、前記メモリにデータをアクセスユニット単位で記録する記録手段と、前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了することを特徴とする記録装置としたものである。
【発明の効果】
【００１０】
上記の構成によれば、修復不能な書き込みエラーが発生した場合でも、書き込みエラーが発生するまでに記録したデータを正常なファイルとして取り扱うことができる記録装置を提供できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる記録再生装置の一例を示すブロック図
【図２】実施の形態１にかかるメモリ制御部の一例を示すブロック図
【図３】実施の形態１にかかる制御部の一例を示すブロック図
【図４】実施の形態１にかかるフラッシュメモリ部における書き込み動作の一例を示すメモリマップ図
【図５】実施の形態１にかかるフラッシュメモリ部における読み出し動作の一例を示すメモリマップ図
【図６】実施の形態１にかかる記録再生装置におけるデータ書き込み動作の様子を示すフローチャート
【図７】実施の形態１にかかる記録再生装置におけるデータ読み出し動作の様子を示すフローチャート
【発明を実施するための形態】
【００１２】
以下、本発明の記録再生装置の実施の形態について、ＩＣレコーダを一例とし、図面を参照しながら説明する。
（実施の形態１）
図１に、実施の形態１にかかる記録再生装置（ＩＣレコーダ）の一例を示すブロック図を示す。
【００１３】
ＩＣレコーダ１００は、メモリ制御部１０１、表示部１０２、操作部１０３、オーディオ処理部１０４、マイク部１０５、スピーカ部１０６、通信部１０７とから構成されている。
メモリ制御部１０１は、制御部１０８、フラッシュメモリ部１０９とから構成されている。フラッシュメモリ部１０９は、ユーザデータなどを格納するためのメモリである。
【００１４】
制御部１０８は、フラッシュメモリ部１０９へのデータの書き込み（録音）、および、フラッシュメモリ部１０９からのデータの読み出し（再生）を制御する。また制御部１０８は、動作するための図示しないワークＲＡＭを含んでいる。
【００１５】
表示部１０２は、フラッシュメモリ部１０９に記録されたデータのファイル番号やファイル名を表示するための表示デバイス（例えば、ＬＣＤ等）である。
【００１６】
操作部１０３は、ＩＣレコーダの録音動作、再生動作、停止動作などを指示するためのキー（ボタン）である。
【００１７】
オーディオ処理部１０４は、エンコーダ部１１０、デコーダ部１１１を含む。エンコーダ部１１０は、マイク部１０５から入力されたアナログ音をＡ／Ｄ変換してＭＰ３形式にエンコードする。本実施の形態では、エンコーダ部１１０でＭＰ３形式にエンコードしているが、他の形式でエンコードしても良い。デコーダ部１１１は、制御部１０８から出てきたデジタル音をＭＰ３形式のデータからデジタルデータにデコードして、Ｄ／Ａ変換してスピーカ部１０６へ出力する。本実施の形態では、デコーダ部１１１でＭＰ３形式のデータからデジタルデータにデコードしているが、他の形式のデータをデジタルデータにデコードしても良い。
【００１８】
マイク部１０５は、ＩＣレコーダ１００が録音するための音を拾うマイクである。
【００１９】
スピーカ部１０６は、ＩＣレコーダ１００に記録された音を再生するためのスピーカである。
【００２０】
通信部１０７は、ＩＣレコーダ１００がＰＣなどの外部機器１１２とＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続によりデータ交換を行う。本実施の形態では、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）による通信を行うが、その他の有線回線でも、無線ＬＡＮ接続による無線回線による通信でも良い。
【００２１】
図２に、メモリ制御部１０１のブロック図を示す。
【００２２】
制御部１０８は、アプリケーションプログラム部２０１を含む。
【００２３】
アプリケーションプログラム部２０１は、ＩＣレコーダ１００がＩＣレコーダとして動作するためのプログラムであり、ワークＲＡＭ上で動作する。
【００２４】
フラッシュメモリ部１０９は、メモリコントローラ部２０２、メモリ領域部２０３とから構成される。
【００２５】
メモリコントローラ部２０２は、フラッシュメモリ部１０９のなかの、非記録領域部である。
【００２６】
メモリ領域部２０３は、フラッシュメモリ部１０９のなかの、記録領域である。
【００２７】
メモリコントローラ部２０２は、データ書き込み、および、データ読み出しの際に、アプリケーションプログラム部２０１から指示される論理アドレスを物理アドレスにマッピングしてメモリ領域部２０３に対して書き込み、および、読み出しを行う。メモリ領域部２０３は、特定の物理領域に書き込みが頻発することにより、限界を超えると、メモリ破壊が起こって、データの書き込み、あるいは、データの読み出しができなくなる。メモリコントローラ部２０２は、特定のアルゴリズムにより、物理アドレスと論理アドレスとの対応付けを入れ替える動作を行い、フラッシュメモリ部１０９の外部からは論理アドレスによってアクセスを行い、特定の物理領域に書き込みが集中しないようにウェアレベリングを行う。
【００２８】
メモリ領域部２０３は、プログラムデータ領域２０４、システムデータ領域２０５、ユーザデータ領域２０６とから構成される。
【００２９】
プログラムデータ領域２０４は、ＩＣレコーダ１００の動作プログラムデータを格納するための領域である。
【００３０】
システムデータ領域２０５は、ＩＣレコーダ１００が動作するうえで必要なシステム情報を格納するための領域である。
【００３１】
ユーザデータ領域２０６は、ＩＣレコーダ１００が録音したデータを格納するための領域である。
【００３２】
なお、メモリ制御部１０１は、種々の形態で表すことができるため、上記の構成に限定されるものではない。
【００３３】
図３に、制御部１０８のブロック図を示す。
【００３４】
制御部１０８は、書き込み部３０１、書き込みエラー検出部３０２、アドレス特定部３０３、読み出し部３０４、読み出しエラー検出部３０５とから構成される。
【００３５】
書き込み部３０１は、単一セクタ単位、複数セクタ単位、単一ページ単位、複数ページ単位、のいずれかの単位でフラッシュメモリ部１０９へデータの書き込みを行う。
【００３６】
書き込みエラー検出部３０２は、フラッシュメモリ部１０９へのデータの書き込みに失敗したことを検出する。これは、フラッシュメモリ部１０９のメモリコントローラ部２０２からあがってくる。
【００３７】
読み出し部３０４は、単一セクタ単位、複数セクタ単位、単一ページ単位、複数ページ単位、のいずれかの単位でフラッシュメモリ部１０９からデータの読み出しを行う。
【００３８】
読み出しエラー検出部３０５は、フラッシュメモリ部１０９からのデータの読み出しに失敗したことを検出する。これは、フラッシュメモリ部１０９のメモリコントローラ部２０２からあがってくる。アドレス特定部３０３は、データの書き込みに成功、および、データの書き込みに失敗したセクタのアドレス（ＬＳＡ）、ページのアドレス（ＬＰＡ）、クラスタの番号（ＣＮ）を特定する。さらに、アドレス特定部Ｄ０３は、データの読み出しに成功、および、データの読み出しに失敗したセクタのアドレス（ＬＳＡ）、ページのアドレス（ＬＰＡ）、クラスタの番号（ＣＮ）を特定する。
【００３９】
図４に、フラッシュメモリ部１０９における書き込み動作を示すメモリマップ図を示す。
【００４０】
書き込み領域拡大部４０１は、ユーザデータ領域２０６の一部である。書き込み領域拡大部４０１では、データは、論理ページ単位、あるいは、論理セクタ単位で書き込まれる。論理ページのアドレスをＬｏｇｉｃａｌ  Ｐａｇｅ  Ａｄｄｒｅｓｓ（以下、ＬＰＡ））、論理セクタのアドレスをＬｏｇｉｃａｌ  Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ（以下、ＬＳＡ）と呼ぶ。
【００４１】
ファイルシステムでは、データの書き込みはクラスタ単位で管理される。クラスタは、複数のページ、あるいは、複数のセクタからなる。クラスタの番号をＣｌｕｓｔｅｒＮｕｍｂｅｒ（以下、ＣＮ）と呼ぶ。図４では、論理セクタのサイズは５１２Ｂｙｔｅ、論理ページのサイズは１６セクタ、つまり８ＫＢｙｔｅ、クラスタのサイズは４ページ、つまり３２ＫＢの例を示している。論理セクタ４０２は、ＬＳＡ＝１６００である。論理セクタ４０２は、論理ページ（ＬＰＡ＝１００）の先頭セクタである。論理セクタ４０３は、ＬＳＡ＝１６０１である。論理セクタ４０３は、論理ページ（ＬＰＡ＝１００）の第二番目のセクタである。論理セクタ４０４は、ＬＳＡ＝１６８０である。論理セクタ４０４は、論理ページ（ＬＰＡ＝１４５）の先頭セクタである。論理セクタ４０５は、ＬＳＡ＝１６８８である。論理セクタ４０５は、論理ページ（ＬＰＡ＝１４５）の途中のセクタである。論理セクタ４０６は、ＬＳＡ＝１７２８である。論理セクタ４０６は、論理ページ（ＬＰＡ＝１４８）の先頭セクタである。クラスタ４０７は、ＣＮ＝０である。クラスタ４０７は、論理ページＬＰＡ＝１００〜１０３からなる。クラスタ４０８は、ＣＮ＝１１である。クラスタ４０８は、論理ページＬＰＡ＝１４４〜１４７からなる。クラスタ４０９は、ＣＮ＝１２である。クラスタ４０９は、論理ページＬＰＡ＝１４８〜１５１からなる。
【００４２】
図５に、フラッシュメモリ部１０９における読み出し動作を示すメモリマップ図を示す。
【００４３】
読み出し領域拡大部５０１は、ユーザデータ領域２０６の一部である。読み出し領域拡大部５０１では、データは、論理ページ単位、あるいは、論理セクタ単位で読み出される。また、ファイルシステムでは、データの読み出しは、クラスタ単位で管理される。図５では、論理セクタのサイズは５１２Ｂｙｔｅ、論理ページのサイズは１６セクタ、つまり８ＫＢｙｔｅ、クラスタのサイズは４ページ、つまり３２ＫＢの例を示している。論理セクタ５０２は、ＬＳＡ＝１６００である。論理セクタ５０２は、論理ページ（ＬＰＡ＝１００）の先頭セクタである。論理セクタ５０３は、ＬＳＡ＝１６０１である。論理セクタ５０３は、論理ページ（ＬＰＡ＝１００）の第二番目のセクタである。論理セクタ５０４は、ＬＳＡ＝１６８０である。論理セクタ５０４は、論理ページ（ＬＰＡ＝１４５）の先頭セクタである。論理セクタ５０５は、ＬＳＡ＝１６８８である。論理セクタ５０５は、論理ページ（ＬＰＡ＝１４５）の途中のセクタである。論理セクタ５０６は、ＬＳＡ＝１６９６である。論理セクタ５０６は、論理ページ（ＬＰＡ＝１４６）の先頭セクタである。論理セクタ５０７は、ＬＳＡ＝１７２８である。論理セクタ５０７は、論理ページ（ＬＰＡ＝１４８）の先頭セクタである。クラスタ５０８は、ＣＮ＝０である。クラスタ５０８は、論理ページＬＰＡ＝１００〜１０３からなる。クラスタ５０９は、ＣＮ＝１１である。クラスタ５０９は、論理ページＬＰＡ＝１４４〜１４７からなる。クラスタ５１０は、ＣＮ＝１２である。クラスタ５１０は、論理ページＬＰＡ＝１４８〜１５１からなる。
【００４４】
（ＩＣレコーダの動作説明）
次に、ＩＣレコーダ１００動作を説明する。
【００４５】
ＩＣレコーダ１００は、音データの録音／再生を行う機器であり、フラッシュメモリ部１０９のプログラムデータ領域２０４に格納されたプログラムデータの一部またはすべてを読み出して、マイコンの図示しないＲＡＭ部に展開してプログラムを実行し、そのプログラムがフラッシュメモリ部１０９のメモリ管理（データの読み出し／書き込み）を行うことによりＩＣレコーダとして動作する。
【００４６】
まず、録音・再生・ＵＳＢ接続の基本動作の概要について説明する。
【００４７】
（録音動作概要）
ユーザが、操作部１０３に対して録音キー押下を行うことにより、オーディオ処理部１０４は、エンコーダ部１１０を使って、マイク部１０５で集音した音データをＭＰ３形式でエンコードする。そして、制御部１０８は、フラッシュメモリ部１０９のユーザデータ領域２０６にエンコードデータを記録する。そして、ユーザが、操作部１０３に対して停止キー押下を行うことにより、エンコーダ部１１０は、ＭＰ３エンコードを停止し、制御部１０８は、フラシュメモリ部１０９へのエンコードデータの記録を停止する。
【００４８】
（再生動作概要）
表示部１０２は、ユーザデータ領域２０６に記録されている音データのファイル名リスト、ファイル番号リストなどを表示する。ユーザは、表示部１０２に表示された音データの一覧からから所望の音データを選択する。その後、ユーザが再生キーを押すことで、制御部１０８が所望の音データをフラシュメモリ部１０９から読み出す。オーディオ処理部１０４は、デコーダ部１１１を使って、フラシュメモリ部１０９から読み出したＭＰ３形式のデータをデコードしてデジタルデータを生成する。スピーカ部１０６はそのデジタルデータを出力する。なお、本実施の形態では、スピーカ１０６を用いて音データを出力したが、スピーカ１０６の代わりにインナーホンから音出力する構成でも構わない。
【００４９】
（ＵＳＢ動作概要）
制御部１０８は、通信部１０７を介してＰＣから転送されたＭＰ３データを、フラッシュメモリ部１０９のユーザデータ領域部２０６に書き込むことが可能である。そして、書き込んだＭＰ３データを再生することも可能である。また逆に、通信部１０７を介してＰＣに対してフラッシュメモリ部１０９のユーザデータ領域部２０６に記録されているＭＰ３データを転送することも可能である。この動作は、ＰＣへデータのバックアップを意味する。
【００５０】
次に、制御部１０１の動作について詳細に説明する。
【００５１】
（制御部動作概要）
制御部１０８は、プログラムデータを格納するための内蔵ＮＯＲフラッシュメモリが搭載されていないマイコンで実現される。従って、制御部１０８は、プログラム領域２０４にプログラムデータを格納したフラッシュメモリ部１０９が接続されている。ＩＣレコーダ１００がＩＣレコーダとして動作するとき、制御部１０８は、フラッシュメモリ部１０９のプログラム領域２０４に格納されたプログラムデータの一部またはすべてを読み出して、図示しないワークＲＡＭ上に展開してプログラムを実行する。そのプログラムがフラッシュメモリ部１０９のメモリ管理（データの読み出し／書き込み）を行うことによりＩＣレコーダとして動作するものである。
【００５２】
（制御部動作−メモリコントローラ）
プログラムデータ領域部２０４には、アプリケーションプログラムが格納されている。制御部１０８は、上記のように、プログラムデータ領域２０４から読み出したアプリケーションプログラム部２０１を含んで動作している。
【００５３】
（録音動作詳細）
録音動作におけるデータの記録（書き込み）動作について、図３の制御部１０１、図４のメモリマップ、および、図６のフローチャートを用いて、詳細に説明する。
【００５４】
ユーザが、操作部１０３において録音キーを押すことにより、録音を開始した時、つまり、フラッシュメモリ部１０９へのデータの書き込みが開始された時（Ｓ６００）、制御部１０１は、フラッシュメモリ部１０９へ新規にＭＰ３ファイルを作成するために、ファイルシステムにおけるファイルオープン処理を行い、ファイル４１０をオープンする（Ｓ６０１）。
【００５５】
次に、アドレス特定部３０３は、ＭＰ３ファイルを記録し始める先頭セクタアドレスを計算して特定する（Ｓ６０２）。図４では、ファイルの書き込み開始位置として、先頭クラスタを、書き込みに使用できるクラスタの先頭クラスタであるクラスタ４０７とし、先頭論理ページを、そのクラスタ４０７の先頭論理ページである論理ページ（ＬＰＡ＝１００）とし、先頭論理セクタを、その論理ページ（ＬＰＡ＝１００）の先頭論理セクタであるＬＳＡ＝１６００の論理セクタ４０２に決定したことを示している。
【００５６】
次に、書き込み部３０１は、アドレス特定部３０３が特定した書き込み位置である論理セクタ４０２にデータを１セクタ分だけ書き込む（Ｓ６０３）。そして、制御部１０１は、録音停止指示があるかどうか、つまり、書き込み終了かどうかを判断し（Ｓ６０５）、書き込み終了でなければ、アドレス特定部３０３は、次の書き込みセクタアドレスを計算して特定する（Ｓ６０２）。次の書き込みセクタアドレスは、論理セクタ番号を一だけインクリメントしたＬＳＡ＝１６０１の論理セクタ４０３となる。このように、制御部１０８は、書き込み終了まで、論理セクタ番号を一ずつインクリメントしながら、データの書き込みを継続する。制御部１０８は、書き込み終了と判断した場合（Ｓ６０５）、ファイル４１０をクローズし（Ｓ６０６）、書き込み終了となる（Ｓ６０７）。なお、ここでは１セクタ単位で書き込む構成としているが、書き込み単位はこれに限るものではない。
【００５７】
次に、書き込みエラーが発生した場合の動作について説明する。ここでいう書き込みエラーとは、修復が不能な書き込みエラーを意味する。
【００５８】
ユーザデータ領域部２０６は、音データの書き込み、読み出し、消去が頻繁に行われる領域である。メモリコントローラ部２０２は、メモリ劣化を抑制するためのウェアレベリングを実施するが、劣化が進むか、あるいは、何らかの原因により、メモリ領域部２０３への書き込みに失敗することがある。
【００５９】
メモリコントローラ部２０２は、書き込みに失敗した場合、書き込みに失敗した箇所を含むブロック（例えば、複数ページからなる）のデータの内容を新たな別のブロックに複製しながら、新しいブロックに対して失敗したデータの書き込みを再度行い、同時に、書き込みエラーが発生した領域を含むブロックを今後使用できないようにするといった修復処理を行う。修復処理が成功した場合、その後の動作には影響はおこらないが、フラッシュメモリ部１０９の使用状況によっては、修復に失敗し、修復不能な書き込みエラーに至ってしまうことがある。
【００６０】
図４は、論理セクタ４０５の書き込み時に修復不能な書き込みエラーが発生したことを示している。この修復不能な書き込みエラーが発生した場合（Ｓ６０４）、書き込みエラー検出部３０２は、メモリコントローラ部２０２からのエラー信号を認識し、アドレス特定部３０３は、エラーが発生したときのエラー発生セクタアドレスがＬＳＡ＝１６８８であることを一時記憶し（Ｓ６０８）、一度ファイル４１０をクローズし（Ｓ６０９）、書き込みをいったん終了する。これにより、書き込みエラーが発生した箇所より前に記録したデータを正常なファイルとして取り扱うことができる。そして、ファイル４１０とは異なるファイル４１１をオープンし（Ｓ６０１）、アドレス特定部３０３は、先ほど一時記憶したエラー発生セクタアドレスがＬＳＡ＝１６８８であることから、次の新たなＭＰ３ファイルをファイル４１１として記録し始める先頭セクタアドレスをＬＳＡ＝１６８８を用いて計算して特定する（Ｓ６０２）。これにより、新たなファイルに記録を継続することが可能となり、書き込みエラーが発生した後でも、自動的に音データの記録を継続することができる。ただし、ファイル４１０のクローズからファイル４１１のオープンまでには時間がかかるため、その間の音データを取りこぼすことがある。例えば、制御部１０８にバッファメモリを搭載し、その間に取り込んだ音データをバッファメモリにためておけば、少なくとも、ファイル４１０のクローズからファイル４１１のオープンまでのデータを取りこぼすことなく記録を再開することができる。さらに、書き込みエラーが発生した論理セクタ５０５のデータについてもバッファメモリに残しておけば、書き込みエラーが発生したデータも取りこぼすことなく記録を再開することも可能である。図４では、新たなファイルの書き込み開始位置として、先頭クラスタを、エラーが発生したクラスタ４０８以降の先頭クラスタであるクラスタ４０９とし、先頭論理ページを、そのクラスタ４０９の先頭論理ページである論理ページ（ＬＰＡ＝１４８）とし、先頭論理セクタを、その論理ページ（ＬＰＡ＝１４８）の先頭論理セクタである論理セクタ４０６に決定したことを示している。新たなＭＰ３ファイルの書き込み開始位置を、エラーが発生した書き込みセクタの直近ではなく、別ページとしている。フラッシュメモリ部１０９への書き込みが、ページ単位で行われる場合、エラーが発生した論理セクタの次の論理セクタから書き込みを開始してしまうと、同じページの書き込みが発生することとなり、２度続けて修復不能な書き込みエラーに至る可能性が高いため、これを回避するよう、別ページとしている。なお、先頭論理ページをＬＰＡ＝１４６としてもよいが、ファイルシステムがクラスタ単位で管理を行うため、ここではエラーが発生したクラスタを外した次のクラスタである４０９とする構成とした。
【００６１】
（再生動作詳細）
再生動作におけるデータの再生（読み出し）動作について、図３の制御部１０８、図５のメモリマップ、および、図７のフローチャートを用いて、詳細に説明する。
【００６２】
ユーザが、操作部１０３に対して再生キーを押すことにより、再生が開始された時、つまり、フラッシュメモリ部１０２からのデータの読み出しが開始された時（Ｓ７００）、制御部１０８は、フラッシュメモリ部１０９からＭＰ３ファイルを読み出すために、ファイルシステムのファイルオープン処理を行い、ファイル５１１をオープンする（Ｓ７０１）。
【００６３】
次に、アドレス特定部３０３は、ＭＰ３ファイルを読み出し始める先頭セクタアドレスを計算して特定する（Ｓ７０２）。図５では、ファイルの読み出し開始位置として、先頭クラスタを、ファイルの先頭を示すクラスタであるクラスタ５０８とし、先頭論理ページを、そのクラスタ５０８の先頭論理ページである論理ページ（ＬＰＡ＝１００）とし、先頭論理セクタを、その論理ページ（ＬＰＡ＝１００）の先頭論理セクタであるＬＳＡ＝１６００の論理セクタ５０２に決定したことを示している。
【００６４】
次に、読み出し部３０４は、アドレス特定部３０３が特定した読み出し位置である論理セクタからデータを１セクタ分だけ読み出す（Ｓ７０３）。そして、制御部１０８は、再生停止指示があるかどうか、つまり、読み出し終了かどうかを判断し（Ｓ７０５）、読み出し終了でなければ、アドレス特定部３０３は、次の読み出しセクタアドレスを計算して特定する（Ｓ７０２）。次の読み出しセクタアドレスは、論理セクタ番号を一だけインクリメントしたＬＳＡ＝１６０１の論理セクタ５０３となる。このように、制御部１０８は、読み出し終了まで、論理セクタ番号を一ずつインクリメントしながら、データの読み出しを継続する。制御部１０８は、読み出し終了と判断した場合（Ｓ７０５）、ファイル５１１をクローズし（Ｓ７０６）、読み出し終了となる（Ｓ７０７）。なお、ここでは１セクタ単位で読み出す構成としているが、読み出し単位はこれに限るものではない。
【００６５】
ここで、読み出しエラーが発生した場合の動作について説明する。ここでいう読み出しエラーとは、１度目の読み出しに失敗して発生した読み出しエラー、および、リトライ読み出しにも失敗して発生した読み出しエラーを指す。
【００６６】
録音動作のところで説明した通り、メモリ劣化が進むと、読み出しにも影響が出てくる。劣化が進むか、あるいは、何らかの原因により、メモリ領域部２０３からの読み出しに失敗することがある。読み出し処理にリトライ処理を入れることにより、読み出しエラーを抑制する方法もあるが、フラッシュメモリ部１０９の使用状況によっては、リトライ読み出しにも失敗してエラーに至ってしまうことがある。図５は、論理セクタ５０５の読み出し時に読み出しエラーが発生したことを示している。この読み出しエラーが発生した場合（Ｓ７０４）、読み出しエラー検出部３０５は、メモリコントローラ部２０２からのエラー信号を認識し、アドレス特定部３０３は、エラーが発生したときのエラー発生セクタアドレスがＬＳＡ＝１６８８であることを一時記憶し（Ｓ７０８）、アドレス特定部３０３は、先ほど一時記憶したエラー発生セクタアドレスがＬＳＡ＝１６８８であることから、次に読み出すセクタアドレスをＬＳＡ＝１６８８を用いて計算して特定する（Ｓ７０２）。図５では、次の読み出し開始位置として、先頭クラスタを、エラーが発生したクラスタ５０９以降の先頭クラスタであるクラスタ５１０とし、先頭論理ページを、そのクラスタ５１０の先頭論理ページである論理ページ（ＬＰＡ＝１４８）とし、先頭論理セクタを、その論理ページ（ＬＰＡ＝１４８）の先頭論理セクタである論理セクタ５０７に決定したことを示している。継続して読み出すセクタ位置を、エラーが発生した読み出しセクタの直近ではなく、別ページとしている。フラッシュメモリ部１０９からの読み出しが、ページ単位で行われる場合、エラーが発生した論理セクタの次の論理セクタから読み出しを開始してしまうと、同じページの読み出しが発生することとなり、２度続けて読み出しエラーにいたる可能性が高いため、これを回避するよう、別ページとしている。なお、先頭論理ページをＬＰＡ＝１４６としてもよいが、ファイルシステムがクラスタ単位で管理を行うため、ここではエラーが発生したクラスタを外した次のクラスタである５１０とする構成とした。
【００６７】
（他の実施の形態）
本発明の実施の形態として、実施の形態１を例示した。しかし、本発明はこれには限らない。そこで、本発明の他の実施の形態を以下まとめて説明する。なお、本発明は、これらには限定されず、適宜修正された実施の形態に対しても適用可能である。
【００６８】
実施の形態１において、書き込み単位を、１セクタとして説明したが、これには限らない。例えば、複数セクタ単位、１ページ、複数ページとしてもよい。
【００６９】
また、実施の形態１において、読み出し単位を、１セクタとして説明したが、これには限らない。例えば、複数セクタ単位、１ページ、複数ページとしてもよい。
【００７０】
また、実施の形態１において、ＩＣレコーダの動作プログラムは、フラッシュメモリ部１０９に格納されていて、これを制御部１０８の図示しないワークＲＡＭ上に展開して動作する構成として説明したが、ＩＣレコーダ１００がＮＯＲフラッシュメモリを搭載し、動作プログラムをＮＯＲフラッシュに格納する構成としてもよい。
【００７１】
また、実施の形態１において、記録再生装置を、ＩＣレコーダとして説明したが、データの記録を行う装置、および、データの読み出しを行う装置であれば、あらゆる種の機器にも適用できるものである。
【産業上の利用可能性】
【００７２】
本発明は、フラッシュメモリなどの不揮発性メモリを用いた記録再生装置に関し、特に、フラッシュメモリの書き込みエラーおよび読み出しエラーが発生した場合の記録および再生方法に関するものであって、フラッシュメモリへのデータの書き込み時に、修復不能な書き込みエラーを検出して新たな書き込み先を特定することにより、記録を停止せずに継続する記録装置を提供できる。
【符号の説明】
【００７３】
１００  ＩＣレコーダ
１０１  メモリ制御部
１０２  表示部
１０３  操作部
１０４  オーディオ処理部
１０５  マイク部
１０６  スピーカ部
１０７  通信部
１０８  制御部
１０９  フラッシュメモリ部
１１０  エンコーダ部
１１１  デコーダ部
１１２  外部機器
２０１  アプリケーションプログラム部
２０２  メモリコントローラ部
２０３  メモリ領域部
２０４  プログラムデータ領域部
２０５  システムデータ領域部
２０６  ユーザデータ領域部
３０１  書き込み部
３０２  書き込みエラー検出部
３０３  アドレス特定部
３０４  読み出し部
３０５  読み出しエラー検出部
４０１  書き込み領域拡大部
【図１】
2011186708.tif 000003
【図２】
2011186708.tif 000004
【図３】
2011186708.tif 000005
【図４】
2011186708.tif 000006
【図５】
2011186708.tif 000007
【図６】
2011186708.tif 000008
【図７】
2011186708.tif 000009