説明

記録装置、読出装置、および、記録再生装置

【課題】フラッシュメモリに対してリアルタイムデータを記録する機器において、書き込みエラーが発生したときに、書き込みを継続するための手段が、ファイルシステムとは無関係な独自形式であるため、ファイルシステムによりデータを記録するシステムには適合できない。
【解決手段】複数のアクセスユニットで構成されるメモリを有する記録装置であって、前記メモリにデータをアクセスユニット単位で記録する記録手段と、前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリなどの不揮発性メモリを用いた記録装置に関し、特に、フラッシュメモリの書き込みエラーおよび読み出しエラーが発生した場合の記録方法に関するものである。
【背景技術】
【0002】
近年、デジタルオーディオプレーヤ、ICレコーダ、デジタルカメラなどを代表とするデジタル機器、SDカード、MMCカードなどを代表とするメモリカード等において、不揮発性メモリであるフラッシュメモリが多用されている。フラッシュメモリは、プロセスの進化などにより、大容量化してきており、特に、データの記憶媒体としては、大容量化に向くNAND型フラッシュメモリが多用される。
【0003】
NAND型フラッシュメモリは、品種によりサイズ等は異なるが、例えば、4096個の物理的なブロックに分割されており、このブロックが消去の最小単位であり、さらにブロックは、書き込みおよび読み出しの基本単位となるページが128個で構成され、さらにページは、2048バイトのユーザーデータ領域と64バイトの冗長部領域で構成される。
【0004】
また、通常、機器組み込みマイコンやパソコン等では、データの読み書きを行うアプリケーションプログラムから見れば、記憶媒体のデータを、共通の単位として、セクタ(512バイト)単位で管理することが多く、上記で説明した書き込みおよび読み出しの基本単位であるページと異なることもある。
【0005】
特許文献1では、メモリカード装置として、複数ページに区分けされるEEPROMに対して、ページ毎にエラーの有無を検出し、特定のページをエラーフラグエリアとして、各ページのエラー発生の有無を示すエラーフラグを記録し、エラー発生ページの書き込みデータは空きページに置換して書き込み、エラー発生ページには置換アドレスを書き込み、読み出し時にはエラーフラグエリアを参照してエラー発生ページを判別し、そのページのバイトデータを読み出して置換アドレスを判別し、判別したアドレスに基づいて置換データを読み出すことが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−46490号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の記録再生装置は、書き込みエラーが発生したときに、書き込みを継続するための手段が、ファイルシステムとは無関係な独自形式であるため、パソコンとの整合性の重視のため近年一般化されているファイルシステムによりデータを記録するシステムには適合できないという問題があった。
【0008】
そこで、本発明は、上記従来の問題点を解決すべく、修復不能な書き込みエラーが発生した場合でも、書き込みエラーが発生するまでに記録したデータを正常なファイルとして取り扱うことができる記録装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明の記録装置は、複数のアクセスユニットで構成されるメモリを有する記録装置であって、前記メモリにデータをアクセスユニット単位で記録する記録手段と、前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了することを特徴とする記録装置としたものである。
【発明の効果】
【0010】
上記の構成によれば、修復不能な書き込みエラーが発生した場合でも、書き込みエラーが発生するまでに記録したデータを正常なファイルとして取り扱うことができる記録装置を提供できる。
【図面の簡単な説明】
【0011】
【図1】実施の形態1にかかる記録再生装置の一例を示すブロック図
【図2】実施の形態1にかかるメモリ制御部の一例を示すブロック図
【図3】実施の形態1にかかる制御部の一例を示すブロック図
【図4】実施の形態1にかかるフラッシュメモリ部における書き込み動作の一例を示すメモリマップ図
【図5】実施の形態1にかかるフラッシュメモリ部における読み出し動作の一例を示すメモリマップ図
【図6】実施の形態1にかかる記録再生装置におけるデータ書き込み動作の様子を示すフローチャート
【図7】実施の形態1にかかる記録再生装置におけるデータ読み出し動作の様子を示すフローチャート
【発明を実施するための形態】
【0012】
以下、本発明の記録再生装置の実施の形態について、ICレコーダを一例とし、図面を参照しながら説明する。
(実施の形態1)
図1に、実施の形態1にかかる記録再生装置(ICレコーダ)の一例を示すブロック図を示す。
【0013】
ICレコーダ100は、メモリ制御部101、表示部102、操作部103、オーディオ処理部104、マイク部105、スピーカ部106、通信部107とから構成されている。
メモリ制御部101は、制御部108、フラッシュメモリ部109とから構成されている。フラッシュメモリ部109は、ユーザデータなどを格納するためのメモリである。
【0014】
制御部108は、フラッシュメモリ部109へのデータの書き込み(録音)、および、フラッシュメモリ部109からのデータの読み出し(再生)を制御する。また制御部108は、動作するための図示しないワークRAMを含んでいる。
【0015】
表示部102は、フラッシュメモリ部109に記録されたデータのファイル番号やファイル名を表示するための表示デバイス(例えば、LCD等)である。
【0016】
操作部103は、ICレコーダの録音動作、再生動作、停止動作などを指示するためのキー(ボタン)である。
【0017】
オーディオ処理部104は、エンコーダ部110、デコーダ部111を含む。エンコーダ部110は、マイク部105から入力されたアナログ音をA/D変換してMP3形式にエンコードする。本実施の形態では、エンコーダ部110でMP3形式にエンコードしているが、他の形式でエンコードしても良い。デコーダ部111は、制御部108から出てきたデジタル音をMP3形式のデータからデジタルデータにデコードして、D/A変換してスピーカ部106へ出力する。本実施の形態では、デコーダ部111でMP3形式のデータからデジタルデータにデコードしているが、他の形式のデータをデジタルデータにデコードしても良い。
【0018】
マイク部105は、ICレコーダ100が録音するための音を拾うマイクである。
【0019】
スピーカ部106は、ICレコーダ100に記録された音を再生するためのスピーカである。
【0020】
通信部107は、ICレコーダ100がPCなどの外部機器112とUSB(Universal Serial Bus)接続によりデータ交換を行う。本実施の形態では、USB(Universal Serial Bus)による通信を行うが、その他の有線回線でも、無線LAN接続による無線回線による通信でも良い。
【0021】
図2に、メモリ制御部101のブロック図を示す。
【0022】
制御部108は、アプリケーションプログラム部201を含む。
【0023】
アプリケーションプログラム部201は、ICレコーダ100がICレコーダとして動作するためのプログラムであり、ワークRAM上で動作する。
【0024】
フラッシュメモリ部109は、メモリコントローラ部202、メモリ領域部203とから構成される。
【0025】
メモリコントローラ部202は、フラッシュメモリ部109のなかの、非記録領域部である。
【0026】
メモリ領域部203は、フラッシュメモリ部109のなかの、記録領域である。
【0027】
メモリコントローラ部202は、データ書き込み、および、データ読み出しの際に、アプリケーションプログラム部201から指示される論理アドレスを物理アドレスにマッピングしてメモリ領域部203に対して書き込み、および、読み出しを行う。メモリ領域部203は、特定の物理領域に書き込みが頻発することにより、限界を超えると、メモリ破壊が起こって、データの書き込み、あるいは、データの読み出しができなくなる。メモリコントローラ部202は、特定のアルゴリズムにより、物理アドレスと論理アドレスとの対応付けを入れ替える動作を行い、フラッシュメモリ部109の外部からは論理アドレスによってアクセスを行い、特定の物理領域に書き込みが集中しないようにウェアレベリングを行う。
【0028】
メモリ領域部203は、プログラムデータ領域204、システムデータ領域205、ユーザデータ領域206とから構成される。
【0029】
プログラムデータ領域204は、ICレコーダ100の動作プログラムデータを格納するための領域である。
【0030】
システムデータ領域205は、ICレコーダ100が動作するうえで必要なシステム情報を格納するための領域である。
【0031】
ユーザデータ領域206は、ICレコーダ100が録音したデータを格納するための領域である。
【0032】
なお、メモリ制御部101は、種々の形態で表すことができるため、上記の構成に限定されるものではない。
【0033】
図3に、制御部108のブロック図を示す。
【0034】
制御部108は、書き込み部301、書き込みエラー検出部302、アドレス特定部303、読み出し部304、読み出しエラー検出部305とから構成される。
【0035】
書き込み部301は、単一セクタ単位、複数セクタ単位、単一ページ単位、複数ページ単位、のいずれかの単位でフラッシュメモリ部109へデータの書き込みを行う。
【0036】
書き込みエラー検出部302は、フラッシュメモリ部109へのデータの書き込みに失敗したことを検出する。これは、フラッシュメモリ部109のメモリコントローラ部202からあがってくる。
【0037】
読み出し部304は、単一セクタ単位、複数セクタ単位、単一ページ単位、複数ページ単位、のいずれかの単位でフラッシュメモリ部109からデータの読み出しを行う。
【0038】
読み出しエラー検出部305は、フラッシュメモリ部109からのデータの読み出しに失敗したことを検出する。これは、フラッシュメモリ部109のメモリコントローラ部202からあがってくる。アドレス特定部303は、データの書き込みに成功、および、データの書き込みに失敗したセクタのアドレス(LSA)、ページのアドレス(LPA)、クラスタの番号(CN)を特定する。さらに、アドレス特定部D03は、データの読み出しに成功、および、データの読み出しに失敗したセクタのアドレス(LSA)、ページのアドレス(LPA)、クラスタの番号(CN)を特定する。
【0039】
図4に、フラッシュメモリ部109における書き込み動作を示すメモリマップ図を示す。
【0040】
書き込み領域拡大部401は、ユーザデータ領域206の一部である。書き込み領域拡大部401では、データは、論理ページ単位、あるいは、論理セクタ単位で書き込まれる。論理ページのアドレスをLogical Page Address(以下、LPA))、論理セクタのアドレスをLogical Sector Address(以下、LSA)と呼ぶ。
【0041】
ファイルシステムでは、データの書き込みはクラスタ単位で管理される。クラスタは、複数のページ、あるいは、複数のセクタからなる。クラスタの番号をClusterNumber(以下、CN)と呼ぶ。図4では、論理セクタのサイズは512Byte、論理ページのサイズは16セクタ、つまり8KByte、クラスタのサイズは4ページ、つまり32KBの例を示している。論理セクタ402は、LSA=1600である。論理セクタ402は、論理ページ(LPA=100)の先頭セクタである。論理セクタ403は、LSA=1601である。論理セクタ403は、論理ページ(LPA=100)の第二番目のセクタである。論理セクタ404は、LSA=1680である。論理セクタ404は、論理ページ(LPA=145)の先頭セクタである。論理セクタ405は、LSA=1688である。論理セクタ405は、論理ページ(LPA=145)の途中のセクタである。論理セクタ406は、LSA=1728である。論理セクタ406は、論理ページ(LPA=148)の先頭セクタである。クラスタ407は、CN=0である。クラスタ407は、論理ページLPA=100〜103からなる。クラスタ408は、CN=11である。クラスタ408は、論理ページLPA=144〜147からなる。クラスタ409は、CN=12である。クラスタ409は、論理ページLPA=148〜151からなる。
【0042】
図5に、フラッシュメモリ部109における読み出し動作を示すメモリマップ図を示す。
【0043】
読み出し領域拡大部501は、ユーザデータ領域206の一部である。読み出し領域拡大部501では、データは、論理ページ単位、あるいは、論理セクタ単位で読み出される。また、ファイルシステムでは、データの読み出しは、クラスタ単位で管理される。図5では、論理セクタのサイズは512Byte、論理ページのサイズは16セクタ、つまり8KByte、クラスタのサイズは4ページ、つまり32KBの例を示している。論理セクタ502は、LSA=1600である。論理セクタ502は、論理ページ(LPA=100)の先頭セクタである。論理セクタ503は、LSA=1601である。論理セクタ503は、論理ページ(LPA=100)の第二番目のセクタである。論理セクタ504は、LSA=1680である。論理セクタ504は、論理ページ(LPA=145)の先頭セクタである。論理セクタ505は、LSA=1688である。論理セクタ505は、論理ページ(LPA=145)の途中のセクタである。論理セクタ506は、LSA=1696である。論理セクタ506は、論理ページ(LPA=146)の先頭セクタである。論理セクタ507は、LSA=1728である。論理セクタ507は、論理ページ(LPA=148)の先頭セクタである。クラスタ508は、CN=0である。クラスタ508は、論理ページLPA=100〜103からなる。クラスタ509は、CN=11である。クラスタ509は、論理ページLPA=144〜147からなる。クラスタ510は、CN=12である。クラスタ510は、論理ページLPA=148〜151からなる。
【0044】
(ICレコーダの動作説明)
次に、ICレコーダ100動作を説明する。
【0045】
ICレコーダ100は、音データの録音/再生を行う機器であり、フラッシュメモリ部109のプログラムデータ領域204に格納されたプログラムデータの一部またはすべてを読み出して、マイコンの図示しないRAM部に展開してプログラムを実行し、そのプログラムがフラッシュメモリ部109のメモリ管理(データの読み出し/書き込み)を行うことによりICレコーダとして動作する。
【0046】
まず、録音・再生・USB接続の基本動作の概要について説明する。
【0047】
(録音動作概要)
ユーザが、操作部103に対して録音キー押下を行うことにより、オーディオ処理部104は、エンコーダ部110を使って、マイク部105で集音した音データをMP3形式でエンコードする。そして、制御部108は、フラッシュメモリ部109のユーザデータ領域206にエンコードデータを記録する。そして、ユーザが、操作部103に対して停止キー押下を行うことにより、エンコーダ部110は、MP3エンコードを停止し、制御部108は、フラシュメモリ部109へのエンコードデータの記録を停止する。
【0048】
(再生動作概要)
表示部102は、ユーザデータ領域206に記録されている音データのファイル名リスト、ファイル番号リストなどを表示する。ユーザは、表示部102に表示された音データの一覧からから所望の音データを選択する。その後、ユーザが再生キーを押すことで、制御部108が所望の音データをフラシュメモリ部109から読み出す。オーディオ処理部104は、デコーダ部111を使って、フラシュメモリ部109から読み出したMP3形式のデータをデコードしてデジタルデータを生成する。スピーカ部106はそのデジタルデータを出力する。なお、本実施の形態では、スピーカ106を用いて音データを出力したが、スピーカ106の代わりにインナーホンから音出力する構成でも構わない。
【0049】
(USB動作概要)
制御部108は、通信部107を介してPCから転送されたMP3データを、フラッシュメモリ部109のユーザデータ領域部206に書き込むことが可能である。そして、書き込んだMP3データを再生することも可能である。また逆に、通信部107を介してPCに対してフラッシュメモリ部109のユーザデータ領域部206に記録されているMP3データを転送することも可能である。この動作は、PCへデータのバックアップを意味する。
【0050】
次に、制御部101の動作について詳細に説明する。
【0051】
(制御部動作概要)
制御部108は、プログラムデータを格納するための内蔵NORフラッシュメモリが搭載されていないマイコンで実現される。従って、制御部108は、プログラム領域204にプログラムデータを格納したフラッシュメモリ部109が接続されている。ICレコーダ100がICレコーダとして動作するとき、制御部108は、フラッシュメモリ部109のプログラム領域204に格納されたプログラムデータの一部またはすべてを読み出して、図示しないワークRAM上に展開してプログラムを実行する。そのプログラムがフラッシュメモリ部109のメモリ管理(データの読み出し/書き込み)を行うことによりICレコーダとして動作するものである。
【0052】
(制御部動作−メモリコントローラ)
プログラムデータ領域部204には、アプリケーションプログラムが格納されている。制御部108は、上記のように、プログラムデータ領域204から読み出したアプリケーションプログラム部201を含んで動作している。
【0053】
(録音動作詳細)
録音動作におけるデータの記録(書き込み)動作について、図3の制御部101、図4のメモリマップ、および、図6のフローチャートを用いて、詳細に説明する。
【0054】
ユーザが、操作部103において録音キーを押すことにより、録音を開始した時、つまり、フラッシュメモリ部109へのデータの書き込みが開始された時(S600)、制御部101は、フラッシュメモリ部109へ新規にMP3ファイルを作成するために、ファイルシステムにおけるファイルオープン処理を行い、ファイル410をオープンする(S601)。
【0055】
次に、アドレス特定部303は、MP3ファイルを記録し始める先頭セクタアドレスを計算して特定する(S602)。図4では、ファイルの書き込み開始位置として、先頭クラスタを、書き込みに使用できるクラスタの先頭クラスタであるクラスタ407とし、先頭論理ページを、そのクラスタ407の先頭論理ページである論理ページ(LPA=100)とし、先頭論理セクタを、その論理ページ(LPA=100)の先頭論理セクタであるLSA=1600の論理セクタ402に決定したことを示している。
【0056】
次に、書き込み部301は、アドレス特定部303が特定した書き込み位置である論理セクタ402にデータを1セクタ分だけ書き込む(S603)。そして、制御部101は、録音停止指示があるかどうか、つまり、書き込み終了かどうかを判断し(S605)、書き込み終了でなければ、アドレス特定部303は、次の書き込みセクタアドレスを計算して特定する(S602)。次の書き込みセクタアドレスは、論理セクタ番号を一だけインクリメントしたLSA=1601の論理セクタ403となる。このように、制御部108は、書き込み終了まで、論理セクタ番号を一ずつインクリメントしながら、データの書き込みを継続する。制御部108は、書き込み終了と判断した場合(S605)、ファイル410をクローズし(S606)、書き込み終了となる(S607)。なお、ここでは1セクタ単位で書き込む構成としているが、書き込み単位はこれに限るものではない。
【0057】
次に、書き込みエラーが発生した場合の動作について説明する。ここでいう書き込みエラーとは、修復が不能な書き込みエラーを意味する。
【0058】
ユーザデータ領域部206は、音データの書き込み、読み出し、消去が頻繁に行われる領域である。メモリコントローラ部202は、メモリ劣化を抑制するためのウェアレベリングを実施するが、劣化が進むか、あるいは、何らかの原因により、メモリ領域部203への書き込みに失敗することがある。
【0059】
メモリコントローラ部202は、書き込みに失敗した場合、書き込みに失敗した箇所を含むブロック(例えば、複数ページからなる)のデータの内容を新たな別のブロックに複製しながら、新しいブロックに対して失敗したデータの書き込みを再度行い、同時に、書き込みエラーが発生した領域を含むブロックを今後使用できないようにするといった修復処理を行う。修復処理が成功した場合、その後の動作には影響はおこらないが、フラッシュメモリ部109の使用状況によっては、修復に失敗し、修復不能な書き込みエラーに至ってしまうことがある。
【0060】
図4は、論理セクタ405の書き込み時に修復不能な書き込みエラーが発生したことを示している。この修復不能な書き込みエラーが発生した場合(S604)、書き込みエラー検出部302は、メモリコントローラ部202からのエラー信号を認識し、アドレス特定部303は、エラーが発生したときのエラー発生セクタアドレスがLSA=1688であることを一時記憶し(S608)、一度ファイル410をクローズし(S609)、書き込みをいったん終了する。これにより、書き込みエラーが発生した箇所より前に記録したデータを正常なファイルとして取り扱うことができる。そして、ファイル410とは異なるファイル411をオープンし(S601)、アドレス特定部303は、先ほど一時記憶したエラー発生セクタアドレスがLSA=1688であることから、次の新たなMP3ファイルをファイル411として記録し始める先頭セクタアドレスをLSA=1688を用いて計算して特定する(S602)。これにより、新たなファイルに記録を継続することが可能となり、書き込みエラーが発生した後でも、自動的に音データの記録を継続することができる。ただし、ファイル410のクローズからファイル411のオープンまでには時間がかかるため、その間の音データを取りこぼすことがある。例えば、制御部108にバッファメモリを搭載し、その間に取り込んだ音データをバッファメモリにためておけば、少なくとも、ファイル410のクローズからファイル411のオープンまでのデータを取りこぼすことなく記録を再開することができる。さらに、書き込みエラーが発生した論理セクタ505のデータについてもバッファメモリに残しておけば、書き込みエラーが発生したデータも取りこぼすことなく記録を再開することも可能である。図4では、新たなファイルの書き込み開始位置として、先頭クラスタを、エラーが発生したクラスタ408以降の先頭クラスタであるクラスタ409とし、先頭論理ページを、そのクラスタ409の先頭論理ページである論理ページ(LPA=148)とし、先頭論理セクタを、その論理ページ(LPA=148)の先頭論理セクタである論理セクタ406に決定したことを示している。新たなMP3ファイルの書き込み開始位置を、エラーが発生した書き込みセクタの直近ではなく、別ページとしている。フラッシュメモリ部109への書き込みが、ページ単位で行われる場合、エラーが発生した論理セクタの次の論理セクタから書き込みを開始してしまうと、同じページの書き込みが発生することとなり、2度続けて修復不能な書き込みエラーに至る可能性が高いため、これを回避するよう、別ページとしている。なお、先頭論理ページをLPA=146としてもよいが、ファイルシステムがクラスタ単位で管理を行うため、ここではエラーが発生したクラスタを外した次のクラスタである409とする構成とした。
【0061】
(再生動作詳細)
再生動作におけるデータの再生(読み出し)動作について、図3の制御部108、図5のメモリマップ、および、図7のフローチャートを用いて、詳細に説明する。
【0062】
ユーザが、操作部103に対して再生キーを押すことにより、再生が開始された時、つまり、フラッシュメモリ部102からのデータの読み出しが開始された時(S700)、制御部108は、フラッシュメモリ部109からMP3ファイルを読み出すために、ファイルシステムのファイルオープン処理を行い、ファイル511をオープンする(S701)。
【0063】
次に、アドレス特定部303は、MP3ファイルを読み出し始める先頭セクタアドレスを計算して特定する(S702)。図5では、ファイルの読み出し開始位置として、先頭クラスタを、ファイルの先頭を示すクラスタであるクラスタ508とし、先頭論理ページを、そのクラスタ508の先頭論理ページである論理ページ(LPA=100)とし、先頭論理セクタを、その論理ページ(LPA=100)の先頭論理セクタであるLSA=1600の論理セクタ502に決定したことを示している。
【0064】
次に、読み出し部304は、アドレス特定部303が特定した読み出し位置である論理セクタからデータを1セクタ分だけ読み出す(S703)。そして、制御部108は、再生停止指示があるかどうか、つまり、読み出し終了かどうかを判断し(S705)、読み出し終了でなければ、アドレス特定部303は、次の読み出しセクタアドレスを計算して特定する(S702)。次の読み出しセクタアドレスは、論理セクタ番号を一だけインクリメントしたLSA=1601の論理セクタ503となる。このように、制御部108は、読み出し終了まで、論理セクタ番号を一ずつインクリメントしながら、データの読み出しを継続する。制御部108は、読み出し終了と判断した場合(S705)、ファイル511をクローズし(S706)、読み出し終了となる(S707)。なお、ここでは1セクタ単位で読み出す構成としているが、読み出し単位はこれに限るものではない。
【0065】
ここで、読み出しエラーが発生した場合の動作について説明する。ここでいう読み出しエラーとは、1度目の読み出しに失敗して発生した読み出しエラー、および、リトライ読み出しにも失敗して発生した読み出しエラーを指す。
【0066】
録音動作のところで説明した通り、メモリ劣化が進むと、読み出しにも影響が出てくる。劣化が進むか、あるいは、何らかの原因により、メモリ領域部203からの読み出しに失敗することがある。読み出し処理にリトライ処理を入れることにより、読み出しエラーを抑制する方法もあるが、フラッシュメモリ部109の使用状況によっては、リトライ読み出しにも失敗してエラーに至ってしまうことがある。図5は、論理セクタ505の読み出し時に読み出しエラーが発生したことを示している。この読み出しエラーが発生した場合(S704)、読み出しエラー検出部305は、メモリコントローラ部202からのエラー信号を認識し、アドレス特定部303は、エラーが発生したときのエラー発生セクタアドレスがLSA=1688であることを一時記憶し(S708)、アドレス特定部303は、先ほど一時記憶したエラー発生セクタアドレスがLSA=1688であることから、次に読み出すセクタアドレスをLSA=1688を用いて計算して特定する(S702)。図5では、次の読み出し開始位置として、先頭クラスタを、エラーが発生したクラスタ509以降の先頭クラスタであるクラスタ510とし、先頭論理ページを、そのクラスタ510の先頭論理ページである論理ページ(LPA=148)とし、先頭論理セクタを、その論理ページ(LPA=148)の先頭論理セクタである論理セクタ507に決定したことを示している。継続して読み出すセクタ位置を、エラーが発生した読み出しセクタの直近ではなく、別ページとしている。フラッシュメモリ部109からの読み出しが、ページ単位で行われる場合、エラーが発生した論理セクタの次の論理セクタから読み出しを開始してしまうと、同じページの読み出しが発生することとなり、2度続けて読み出しエラーにいたる可能性が高いため、これを回避するよう、別ページとしている。なお、先頭論理ページをLPA=146としてもよいが、ファイルシステムがクラスタ単位で管理を行うため、ここではエラーが発生したクラスタを外した次のクラスタである510とする構成とした。
【0067】
(他の実施の形態)
本発明の実施の形態として、実施の形態1を例示した。しかし、本発明はこれには限らない。そこで、本発明の他の実施の形態を以下まとめて説明する。なお、本発明は、これらには限定されず、適宜修正された実施の形態に対しても適用可能である。
【0068】
実施の形態1において、書き込み単位を、1セクタとして説明したが、これには限らない。例えば、複数セクタ単位、1ページ、複数ページとしてもよい。
【0069】
また、実施の形態1において、読み出し単位を、1セクタとして説明したが、これには限らない。例えば、複数セクタ単位、1ページ、複数ページとしてもよい。
【0070】
また、実施の形態1において、ICレコーダの動作プログラムは、フラッシュメモリ部109に格納されていて、これを制御部108の図示しないワークRAM上に展開して動作する構成として説明したが、ICレコーダ100がNORフラッシュメモリを搭載し、動作プログラムをNORフラッシュに格納する構成としてもよい。
【0071】
また、実施の形態1において、記録再生装置を、ICレコーダとして説明したが、データの記録を行う装置、および、データの読み出しを行う装置であれば、あらゆる種の機器にも適用できるものである。
【産業上の利用可能性】
【0072】
本発明は、フラッシュメモリなどの不揮発性メモリを用いた記録再生装置に関し、特に、フラッシュメモリの書き込みエラーおよび読み出しエラーが発生した場合の記録および再生方法に関するものであって、フラッシュメモリへのデータの書き込み時に、修復不能な書き込みエラーを検出して新たな書き込み先を特定することにより、記録を停止せずに継続する記録装置を提供できる。
【符号の説明】
【0073】
100 ICレコーダ
101 メモリ制御部
102 表示部
103 操作部
104 オーディオ処理部
105 マイク部
106 スピーカ部
107 通信部
108 制御部
109 フラッシュメモリ部
110 エンコーダ部
111 デコーダ部
112 外部機器
201 アプリケーションプログラム部
202 メモリコントローラ部
203 メモリ領域部
204 プログラムデータ領域部
205 システムデータ領域部
206 ユーザデータ領域部
301 書き込み部
302 書き込みエラー検出部
303 アドレス特定部
304 読み出し部
305 読み出しエラー検出部
401 書き込み領域拡大部

【特許請求の範囲】
【請求項1】
複数のアクセスユニットで構成されるメモリを有する記録装置であって、
前記メモリにデータをアクセスユニット単位で記録する記録手段と、
前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段とを備え、
前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了することを特徴とする記録装置。
【請求項2】
前記書き込みエラー検出手段で書き込みエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記記録手段は、さらに前記アクセスユニット特定手段で特定されたアクセスユニット以外の書き込みがされていないアクセスユニットに新たなデータを書き込むことを特徴とする記録装置。
【請求項3】
複数のアクセスユニットで構成されるメモリを有する再生装置であって、
前記メモリからデータをアクセスユニット単位で読み出す読出手段と、
前記読出手段で前記データを前記メモリから読み出しているときに、読み出しエラーを検出する読み出しエラー検出手段と、
前記読み出しエラー検出手段で読み出しエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記読出手段は、前記アクセスユニット特定手段で特定されたアクセスユニット以外の読み込みがされていないアクセスユニットからデータを読み出すことを特徴とする読出装置。
【請求項4】
複数のアクセスユニットで構成されるメモリを有する記録再生装置であって、
前記メモリにデータをアクセスユニット単位で記録する記録手段と、
前記記録手段で前記データを前記メモリに書き込んでいるときに、書き込みエラーを検出する書き込みエラー検出手段と、
前記メモリからデータをアクセスユニット単位で読み出す読出手段と、
前記読出手段で読み出したデータを再生する再生手段と、
前記読出手段で前記データを前記メモリから読み出しているときに、読み出しエラーを検出する読み出しエラー検出手段と、
書き込みエラーあるいは読み出しエラーが検出された箇所を含むアクセスユニットを特定するアクセスユニット特定手段とを備え、
前記記録手段は、前記書き込みエラー検出手段で書き込みエラーが検出されたときに、ファイルの書き込みを終了し、
前記読出手段は、前記アクセスユニット特定手段で特定されたアクセスユニット以外の読み込みがされていないアクセスユニットからデータを読み出すことを特徴とする記録再生装置。
【請求項5】
前記記録手段は、さらに前記アクセスユニット特定手段で特定されたアクセスユニット以外の書き込みがされていないアクセスユニットに新たなデータを書き込むことを特徴とする請求項4に記載の記録再生装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate