(57)【特許請求の範囲】
【請求項１】
複数のブロックに分割された記憶領域を有し、上記ブロック毎にデータが記憶されるとともに、無効ブロックであるか否かをブロック毎に示す無効ブロックマップを記憶する第１のブロックと、該第１のブロックに記憶された上記無効ブロックマップがコピーされて記憶された第２のブロックとを有し、上記第１のブロックと上記第２のブロックとが互いに離間された位置に設けられた記憶手段と、
上記第１のブロックに記憶された上記無効ブロックマップに基づいて、無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出す制御を行い、上記第１のブッロクから上記無効ブロックマップの読み出しが不能とされたとき、上記第２のブロックに記憶された無効ブロックマップに基づいて、無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出す制御を行う制御手段とを備える記憶装置。
【請求項２】
上記制御手段は、上記記憶手段に無効ブロックが生じると、このブロックが無効ブロックであることを示すように上記無効ブロックマップを書き換える制御を行うことを特徴とする請求項１記載の記憶装置。
【請求項３】
上記記憶手段は、ブロック毎に無効ブロックであるか否かを１ビットで示すことによって作成される無効ブロックマップを記憶することを特徴とする請求項１記載の記憶装置。
【請求項４】
上記記憶手段は、上記第１のブロックと、上記第２のブロックと、主データが記憶される主データ領域と、上記主データ領域に記憶された主データを管理する管理情報が記憶される管理領域とを有し、
上記管理領域は、記録領域の先頭又は最後ではない位置に配置されていることを特徴とする請求項１記載の記憶装置。
【請求項５】
上記記憶手段は、上記第１のブロックと、上記第２のブロックと、主データ領域に記憶された主データの記憶位置を示すアドレス情報を含む管理情報が記憶されるインデックスステージブロックとを有し、
上記第１のブロックと上記第２のブロックとの間に上記インデックスステージブロックが設けられることで、上記第２のブロックが上記第１のブロックから離間して配置されていることを特徴とする請求項１記載の記憶装置。
【請求項６】
上記記憶手段は、上記第１のブロックと、上記第２のブロックと、主データ領域に記憶された主データの記憶位置を示すアドレス情報を含む管理情報が記憶されるインデックスステージブロックとを有し、
上記インデックスステージブロックは、第１のインデックスステージブロックと第２のインデックスステージブロックを含み、上記第１及び第２のインデックスステージブロックは、上記主データ領域に新たな主データが書き込まれる毎に交互に書き換えが行われることを特徴とする請求項１記載の記憶装置。
【請求項７】
上記記録領域には、上記主データの記録時に記録されるデータのアドレス情報が一時的に記録されるワークエリアブロックが設けられ、
上記インデックスステージブロックは、上記ワークエリアブロックに記憶されたデータを読み出しながら書き換えが行われることを特徴とする請求項６記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリを用いた記憶装置に関する。
【０００２】
【従来の技術】
フラッシュメモリは、データを例えば５１２個からなるブロック毎に分割して記憶する。この１ブロックは、５１２バイトのデータエリアと１６バイトの冗長エリアとからなる１ページが１６個集合して構成される。
【０００３】
ところで、フラッシュメモリには、製造時から使用不可能なバッド・ブロック（以下、無効ブロックという）が存在している。したがって、各ブロックには、当該ブロックが無効ブロックであるか否かを示すフラグが設けられている。
【０００４】
例えばＮＡＮＤ型のフラッシュメモリは、データを記憶していない状態においては、全てのセルが「１」になっている。しかし、データの書込み等が不可能な無効ブロックには、そのブロック内の何れかの位置に無効ブロックであることを示すフラグ「００ｈ」が記述されている。「００ｈ」は、ランダムな位置に記述され、特に決められた位置に記述されるものではない。
【０００５】
そこで、データの読み出し／書込みの制御を行うマイクロコントローラ（以下、「マイコン」という。）は、フラッシュメモリに対してデータの読み出し等を行う前に全てのブロックをスキャンして、無効ブロックの有無の判断を行い、また、フラッシュメモリに無効ブロックが生じたときは、そのブロックが無効ブロックであることを示す「００ｈ」を記述する。
【０００６】
【発明が解決しようとする課題】
このように、マイコンは、データの書込み／読出しを行う前に全てのブロックをスキャンして、使用可能なブロックか否かを全てのブロックについて判断する必要がある。したがって、データの書込み／読出しを行う前に、全てのブロックに対してスキャンを行ことによって長時間を要してしまい、かかる時間の短縮化が望まれていた。
【０００７】
本発明は、このような実情を鑑みて提案されたものであり、何れのブロックが無効ブロックであるかを容易かつ迅速に認識することができる記憶装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述の課題を解決するため、本発明に係る記憶装置は、複数のブロックに分割された記憶領域を有し、上記ブロック毎にデータが記憶されるとともに、無効ブロックであるか否かをブロック毎に示す無効ブロックマップを記憶する第１のブロックと、該第１のブロックに記憶された上記無効ブロックマップがコピーされて記憶された第２のブロックとを有し、上記第１のブロックと上記第２のブロックとが互いに離間された位置に設けられた記憶手段と、上記第１のブロックに記憶された上記無効ブロックマップに基づいて、無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出す制御を行い、上記第１のブッロクから上記無効ブロックマップの読み出しが不能とされたとき、上記第２のブロックに記憶された無効ブロックマップに基づいて、無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出す制御を行う制御手段とを備える。
【０００９】
そして、上記記憶装置では、上記無効ブロックマップに基づいて、無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出す制御を行う。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
本発明は、例えば図１に示すような構成のＩＣレコーダに適用される。
【００１１】
上記ＩＣレコーダ１は、記録部１０によって電気的にデータの消去／再書込みが可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrical Erasable/Programmable Read-Only Memory ）すなわちフラッシュメモリ９に音声データを記憶させ、フラッシュメモリ９の音声データを再生部２０によって再生する制御を行う制御部３０を有し、表示部４０に操作部５０の操作内容やフラッシュメモリ９の音声データの内容を表示させるものである。
【００１２】
上記記録部１０は、音声を電気信号に変換して音声信号を出力するマイクロホーン１１と、マイクロホーン１１からの音声信号を増幅する増幅器１２と、増幅器１２で増幅された音声信号の利得制御を行う自動利得制御回路（以下、「ＡＧＣ」：Automatic Gain Controllerという。）１３と、ＡＧＣ１３からの音声信号を音声データに変換するエンコーダ１４と、エンコーダ１４からの音声データを一時記憶するバッファメモリ１５とを備える。
【００１３】
マイクロホーン１１は、入力される音を音声信号に変換して増幅器１２に供給し、増幅器１２は、音声信号を増幅してＡＧＣ１３に供給する。ＡＧＣ１３は、増幅器１２で増幅された音声信号を、その利得が所定値になるように利得制御を行ってエンコーダ１４に供給する。
【００１４】
エンコーダ１４は、音声信号が時間的に相関が強いことから、例えば適応型差分パルスコードモジュレーション（以下、「ＡＤＰＣＭ」：Adaptive Differential Pulse Code Modulation という。）方式により、音声信号を符号化して音声データを生成し、この音声データをバッファメモリ１５を介してフラッシュメモリ９に供給する。また、エンコーダ１４は、例えばＳＰモードのとき８ｋＨｚでサンプリングを行い、ＬＰモードのときは４ｋＨｚでサンプリングを行って、時間軸方向に対して音声信号の符号化量を調整することができる。
【００１５】
一方、再生部２０は、フラッシュメモリ９から読み出された音声データを元の音声信号に変換するデコーダ２１と、高域成分を除去するフィルタ２２と、フィルタ２２からの音声信号を増幅してスピーカ２４に供給する増幅器２３とを備える。
【００１６】
デコーダ２１は、記録部１０のエンコーダ１４に対応したものであり、上述のＳＰモード又はＬＰモードに応じてフラッシュメモリ９から読み出された音声データ、すなわちＡＤＰＣＭ方式で符号化された音声データを復号していわゆるＰＡＭ信号を生成する。フィルタ２２は、このＰＡＭ信号から音声帯域以上の高周波成分を除去して、音声信号を出力する。増幅器２３は、デコーダ２１から供給される音声信号を増幅してスピーカ２４を駆動する。かくして、録音された音がスピーカ２４から出力される。
【００１７】
制御部３０は、このＩＣレコーダ１の動作を制御するためのプログラムが記憶されているＲＯＭ３１と、ＲＯＭ３１に記憶されているプログラムを実行して、フラッシュメモリ９や記録部１０を制御するマイクロコンピュータ（以下、ＣＰＵという。）３２と、時刻情報を生成するタイマ３３と、時刻やプログラムの実行結果等を一時的に記憶するランダム・アクセス・メモリ（以下、ＲＡＭ：Randam Access Memoryという。）３４とを備え、操作部５０の操作設定に基づいて各回路を制御する。
【００１８】
また、ＣＰＵ３２には、タイマ３３等を動作させるための水晶発振器３５が接続されている。ＣＰＵ３２は、例えばタイマ３３が所定時刻になると、フラッシュメモリ９に記録されている音声データを読み出す制御を行う。
【００１９】
表示部４０は、低消費電力の液晶表示パネル４１と、この液晶表示パネル４１を照明するためのバックライト４２とを備え、ＩＣレコーダ１の動作状態や操作手順を表示する。
【００２０】
また、上述の記録部１０，再生部２０，制御部３０は図２に示す匡体６０内に設けられている。匡体６０の操作面には、図２に示すように、表示パネル４１が外部を臨むように設けられ、さらに、記録再生等の操作を行うための操作部５０が配設されている。
【００２１】
操作部５０は、具体的には、ファイルボタン５１と、メニューボタン５２と、プライオリティボタン５３と、ジョグダイヤル５４と、停止ボタン５５と、録音ボタン５６と、消去ボタン５７と、ホールドスイッチ５８とを有する。
【００２２】
ファイルボタン５１は、ファイルを変更操作するためのものである。メニューボタン５２は、モード状態をメニューモードに設定するものである。なお、メニューモードに設定されると、ジョグダイヤル５４によって種々の操作設定が可能になる。プライオリティボタン５３は、録音されたファイルの優先順位を切換設定するものである。停止ボタン５５は、録音中又は再生中の動作を中止させるものである。録音ボタン５６は、録音を開始するものである。消去ボタン５７は、再生中又は停止中に１件のファイルを消去するためのものである。ホールドスイッチ５８は、各ボタンを誤操作しないようにするために、ホールドオン／オフの切換を設定するものである。
【００２３】
ここで、上述のフラッシュメモリ９は、例えばＮＡＮＤ型のものである。フラッシュメモリ９は、バッファメモリ１５から供給される音声データを記憶すると共に、どの領域に記憶したか等を示す音声データを管理する管理情報（以下、ＴＯＣ情報という。）を記憶する。上記フラッシュメモリ９は、１６Ｍビットの容量を有し、ＳＰモードでは２００〜３４００Ｈｚの音声信号に対応した１６分間分の音声データを記憶することができ、ＬＰモードでは２００〜１７００Ｈｚの音声信号に対応した２４分間分の音声データを記憶することができる。
【００２４】
ここで、上記フラッシュメモリ９には、図３に示すように、消去単位となる５１２ブロック毎に音声データ等が分割されて記憶される。そして、これらのブロックは６種類に分けられる。具体的には、エターナルブロック（１ブロック）と、インデックスステージ０ブロック（６ブロック）と、インデックスステージ１ブロック（６ブロック）と、バックアップブロック（１ブロック）と、ワークエリアブロック（１５ブロック）と、ＰＣＭデータブロック（４６９ブロック）の６種類がある。
【００２５】
また、上述のＴＯＣ情報は、エターナルブロックと、インデックスステージ０ブロックと、インデックスステージ１ブロックと、バックアップブロックと、ワークエリアブロックとによって構成される。なお、音声データは、ＰＣＭブロックに書き込まれる。
【００２６】
各ブロックは、図３に示すように、１ページ（＝５２８バイト）が１６個集合して構成され、ページ０，ページ１，・・・，ページ１４，ページ１５を有する。この１ページは５１２バイトのデータエリアと１６バイトの冗長エリアとからなる。なお、ここではデータの記録再生の不可能なバッド・ブロック（以下、「無効ブロック」という。）は最大１０ブロック存在している。また、無効ブロック以外のブロックをグッド・ブロック（以下、有効ブロックという。）。
【００２７】
ここで、エターナルブロックは、最初に読み出されるＴＯＣ情報であって、ページ０のみにデータがある。よって、ページ１〜ページ１５にはデータがない。
【００２８】
エターナルブロックのページ０は、具体的には図４に示すように、４バイトのエターナルブロック認識用のデータと、２バイトのエターナルブロックアドレスと、２バイトのインデックスステージ０アドレスと、２バイトのインデックスステージ１アドレスと、２バイトのワークエリアブロックスタートアドレスと、４バイトのダミーデータと、１２８バイトのブランクマップとを備える。なお、ブランクマップは、無効ブロックであるか否かをブロック毎に示す無効ブロックマップが記憶される場所である。
【００２９】
無効ブロックマップは、ブロック毎に無効ブロックであるか否かを１ビットで示すことによって作成され、全てのブロックに対して、そのブロックが有効ブロック又は無効ブロックであるかを記述している。したがって、フラッシュメモリの総ブロック数をＮ個とすると、Ｎ／８バイト分のエリアを上記無効ブロックマップのために設けておけばよい。ここでは、フラッシュメモリ９の総ブロック数は５１２個なので、６４バイト分のエリアがあればよい。
【００３０】
例えば、上記無効ブロックでは、図５に示すように、全てのブロックに対して、有効ブロックであれば「０」、無効ブロックであれば「１」が記述される。また、データの読出しや書込み等を行っているときにブロックが破損して無効ブロックが生じたときは、そのブロックが無効ブロックであることを示すように上記無効ブロックマップを書き換えるようにしてもよい。
【００３１】
なお、無効ブロックマップは、フラッシュメモリの製造時から設けられてもよいし、また、記録／再生を行う前にＣＰＵ３２に全てのブロックをスキャンさせて無効ブロックの有無を判断させてから作成されてもよい。これは、フラッシュメモリは製造時から複数の無効ブロックを有し、各無効ブロックにはそのブロックが無効ブロックであることを示すフラグが設けられているので、このフラグに基づいて無効ブロックマップを作成するのは、フラッシュメモリの製造の最終段階でも可能であるし、ＣＰＵ３２が記録／再生の制御をする前でも可能だからである。
【００３２】
インデックスステージ０ブロックとインデックスステージ１ブロックは同じ構成であり、データの書換がある毎に、これらは交互に書き換えられる。すなわち、音声データが書き込まれると例えばインデックスステージ０ブロックのデータが書き直され、再び音声データが書き込まれるとインデックスステージ１ブロックのデータが書き直される。以下、これらのブロックをインデックスステージブロックと称して説明する。
【００３３】
インデックスステージブロックは、上述のように６ブロックあり、ファイルデータからなるもの（５ブロック）と、ステージデータからなるもの（１ブロック）とがある。
【００３４】
ファイルデータからなるインデックスステージブロックは、図６に示すように、ページ０からページ１１にあるＡＤＲデータ部と、ページ１２からページ１５にあるＨＤＲ部とで構成される。
【００３５】
ＡＤＲデータ部は、具体的には図７に示すように、音声データが記録されているファイル毎に、当該ファイルのＳＰ又はＬＰのモードを示す「ＳＰ」と、当該ファイルの上位のスタートアドレスを示す「ＳＴＨ」及び下位のスタートアドレスを示す「ＳＴＭ」と、当該ファイルの上位のエンドアドレスを示す「ＥＮＨ」及び下位のエンドアドレスを示す「ＥＮＭ」とを有する。
【００３６】
例えば、６件の音声データが録音された場合、図８に示すように、上記ＡＤＲデータ部には上記６件毎に対応する「０１」〜「０６」までのＩＤナンバが記録される。そして、ＩＤナンバ毎に、記録モード（ＳＰ）と、そのＩＤナンバの音声データが記録されている場所のスタートアドレス（ＳＴＨ，ＳＴＭ）とエンドアドレス（ＥＮＨ，ＥＮＭ）が記録されている。なお、ＩＤナンバ０１及びＩＤ０３の音声データの容量は大きいので、図７に示すように、例えばＩＤナンバ０１は２つのファイルで構成され、ＩＤナンバ０３は４つのファイルで構成されている。このとき各ファイル毎に記録モードとスタートアドレス及びエンドアドレスが記録される。
【００３７】
また、ＨＤＲデータ部は、図８に示すように、ファイル毎に、当該ファイルのプライオリティを示す「ＰＲＩ」と、アラームセットのオン／オフを示す「ＡＬＭ」と、アラームを鳴らす月，日，時，分，曜日を示す「ＡＭＯ」，「ＡＤＡ」，「ＡＨＯ」，「ＡＭＩ」，「ＡＯＷ」とを有する。ここで、プライオリティとは、音声データのファイルの再生の優先順位を示すものである。また、ＨＤＲデータ部は、音声データが更新されなくても、プライオリティやアラームの設定変更がある毎に更新される。
【００３８】
一方、ステージデータからなるインデックスステージブロックは、図９に示すように、ページ０にある有効マークと、ページ１にあるモード中断マークと、ページ２にあるブランクマップと、ページ３にあるエターナルブロックブランクマップとを備える。
【００３９】
バックアップブロックは、上述のエターナルブロックのバックアップである。すなわち、エターナルブロックをコピーしたものである。したがって、エターナルブロックが新たに書き換えられると、バックアップブロックも同様に書き換えられるようになっている。
【００４０】
ワークエリアブロックは、音声データの記録時にインデックスデータを一時的に記録しておくエリアである。ワークエリアブロックは、図１０に示すように、インデックスステージブロックとほぼ同様の構成となっており、ＩＤナンバーと、ＳＰ／ＬＰ情報と、音声データの上位スタートアドレスと、音声データの下位スタートアドレスと、音声データの上位エンドアドレスと、音声データの下位エンドアドレスとをそれぞれ１バイトずつ備える。したがって、このワークエリアブロックでは、ワークエリアブロックのデータを読み出しながら、インデックスステージブロックの書換が行われ、スタートアドレス等のデータがそのまま書き込まれる。
【００４１】
ＰＣＭデータブロックは、主として音声データが記録されるエリアである。また、ＰＣＭデータブロックでは、図１１に示すように、１ページ毎に音声データのみならず、その音声データの記録された年，月，日，時，分，秒，曜日も記録される。具体的に１ページにおいては、５１２バイトの音声データ、各１バイトの年，月，日，時，分，秒，曜日のデータ、１バイトの時計フラグが記録される。
【００４２】
以上のように構成されたＩＣレコーダ１において、記録又は再生を行っていないときに録音ボタン５６が押圧されると、ＣＰＵ３２は、エターナルブロックを認識して、このエターナルブロックから無効ブロックマップのデータを読み出す。ＣＰＵ３２は、上記無効ブロックマップのデータに基づいて、全てのブロックについて無効ブロックであるか否かを判断し、無効ブロックを避けてデータの書込みを行うように制御する。
【００４３】
具体的には、ＣＰＵ３２は、マイクロホーン１１からの音声信号をエンコーダ１４を介して所定の音声データに変換して、この音声データをフラッシュメモリ９の有効ブロックに書き込む制御を行う。なお、フラッシュメモリ９には、上述の図７に示すように、既に６件の音声データが記録されているものとする。
【００４４】
ＣＰＵ３２は、上記録音ボタン５６が押されると、録音モードに対応したプログラムをＲＯＭ３１から読み出して実行し、増幅器１２、ＡＧＣ１３、エンコーダ１４等を動作させ、バッファメモリ１５を介して所定時間蓄積された音声データをフラッシュメモリ９のＰＣＭデータブロックに記憶させる。
【００４５】
ＣＰＵ３２は、ＰＣＭデータブロック毎に、５１２バイトの音声データを記録するとともに、当該ＰＣＭデータブロックにその記録時の年月日及び時分までも記録する。ＣＰＵ３２は、停止ボタン５５が押圧されるまで、上記音声データを１件分として各ＰＣＭデータブロックに書き込む制御を行う。
【００４６】
ＣＰＵ３２は、停止ボタン５５が押圧されると、ＰＣＭデータブロックに音声データを記録する制御を停止し、ＴＯＣ情報の書換を行う。具体的には、インデックスステージブロックを書き換える。ＣＰＵ３２は、ファイルデータからなるインデックスステージブロックのＡＤＲデータ部に対して、７件目の音声データをＩＤナンバ０１として、モード設定、スタートアドレス及びエンドアドレスのデータを書き込む。そして、ＣＰＵ３２は、元のＩＤナンバ０１〜ＩＤナンバ０６をＩＤナンバ０２〜ＩＤナンバ０７として、それぞれのＩＤナンバのモード設定、スタートアドレス及びエンドアドレスのデータを書き込む。
【００４７】
以上のように、ＣＰＵ３２は、図１２に示すように、新しく録音された７件目の音声データのＩＤナンバ１とし、元のＩＤナンバ０１〜ＩＤナンバ０６をそれぞれＩＤナンバ０２〜ＩＤナンバ０７として１つずつスライドしてＴＯＣ情報を書き換える。すなわち、最新の音声データをＩＤナンバ１として記録している。
【００４８】
つぎに、音声データを再生する場合について説明する。
利用者が記録又は再生の停止中に図２に示すジョグダイヤル５４をＺ方向に押すと、ＣＰＵ３２は、再生を開始する。すなわちＣＰＵ３２は、フラッシュメモリ９からエターナルブロックのエターナルブロック認識用のデータによって当該エターナルブロックを認識し、このエターナルブロックのデータを読み出してＲＡＭ３４に格納する。なお、ＣＰＵ３２は、エターナルブロックを認識することができなかったときは、バックアップブロックを認識しこのバックアップブロックのデータを読み出す。
【００４９】
ＣＰＵ３２は、上記エターナルブロック又はバックアップブロック内のインデックスステージ０アドレス又はインデックスステージ１アドレスに基づいて、インデックスステージブロックのデータを読み出す。
【００５０】
ＣＰＵ３２は、ファイルデータからなるインデックスステージブロックのＡＤＲデータ部に基づいて、ＰＣＭブロック内の音声データを読み出す制御を行う。このとき、ＣＰＵ３２は、ＩＤナンバ０１，ＩＤナンバ０２，ＩＤナンバ０３，・・・の順に音声データを読み出す。具体的には、ＣＰＵ３２は、最初にＡＤＲデータ部のＩＤナンバ０１のスタートアドレス（ＳＴＨ，ＳＴＭ）及びエンドアドレス（ＥＮＨ，ＥＮＭ）に基づいて、ＩＤナンバ０１の音声データを読み出す。読み出された音声データは、デコーダ２１，フィルタ２２等を介して音声信号に変換されて、スピーカ２４に供給される。したがって、スピーカ２４は、ＩＤナンバ０１の音声を出力することができる。
【００５１】
ＣＰＵ３２は、図２に示す停止ボタン５５が押圧されるまで、音声データの読み出しを続ける。したがって、ＣＰＵ３２は、上述のようにＩＤナンバ０１の音声がスピーカ２４から出力されると、次にＩＤナンバ０２，ＩＤナンバ０３，・・・の順に音声データの読み出しを行う。
【００５２】
以上のように、上記ＩＣレコーダ１は、図１２に示すように、音声を録音する毎に最新の音声データをＩＤナンバ０１としてフラッシュメモリ９に記憶し、音声を出力するときはＩＤナンバ０１，ＩＤナンバ０２，ＩＤナンバ０３，・・・の順に行っている。これにより、重要な用件ほどＩＤナンバの最初の方に設定されるようになり、わざわざ重要で最新の用件をサーチする必要がなくなり、操作性が向上する。
【００５３】
また、上記ＩＣレコーダ１は既に記録された用件に他の用件を追加して合わせて１件して録音（後追い録音）することができる。このとき、ＣＰＵ３２は、図１３に示すステップＳ１以下の処理を行う。
【００５４】
ＩＣレコーダ１が例えばＩＤナンバ０２の音声データを再生しているとき（ステップＳ１）、利用者が録音ボタン５６を押圧すると、ＣＰＵ３２は、タイマ３３を作動させて、録音ボタン５６が１秒以上押圧されているかを判定する（ステップＳ２）。ＣＰＵ３２は、録音ボタンが１秒以上押圧されたと判定したときはＩＤナンバ０２の音声データの再生を停止し（ステップＳ３）、１秒以上押圧されなかったときはそのまま再生を続行する。
【００５５】
ＣＰＵ３２は、再生を停止した後、マイクロホーン１１に入力される音声の録音を開始し（ステップＳ４）、音声データをフラッシュメモリ９のＰＣＭデータブロックに書き込む制御を行う。そして、ＣＰＵ３２は、停止ボタン５５が押されるか又はフラッシュメモリ９の容量がいっぱになるまで録音を続ける（ステップＳ５）。そして、ＣＰＵ３２は、停止ボタン５５が押されるか又はフラッシュメモリ９の容量がいっぱになったときは、録音を停止する（ステップＳ６）。
【００５６】
ＣＰＵ３２は、録音を停止すると、音声データのＴＯＣ情報の書換を実行する（ステップＳ７）。具体的には図１４に示すように、ＣＰＵ３２は、ファイルデータからなるインデックスステージブロックのＡＤＲデータ部において、まず、録音前からあったＩＤナンバ０１及びＩＤ０２のスタートアドレス（ＳＴＨ，ＳＴＭ）及びエンドアドレス（ＥＮＨ，ＥＮＭ）を書き込む。つぎに、ＣＰＵ３２は、ＩＤナンバ０２として新たに追加録音した音声データの記録位置を示すスタートアドレス及びエンドアドレスを書き込み、そして、録音前からあったＩＤナンバ０３以降の音声データのスタートアドレス等を再び書き込む制御を行う。このように、ＣＰＵ３２は、新しく追加録音する音声データをＩＤナンバ０２として、そのスタートアドレス（ＳＴＨ，ＳＴＭ）及びエンドアドレス（ＥＮＨ，ＥＮＭ）を書き込む。
【００５７】
したがって、ＩＣレコーダ１は、上述のように再生を開始すると、ＩＤナンバ０１，ＩＤナンバ０２，・・・の順で音声データの再生を行う。このとき、追加録音を行った用件は、図１５に示すように、ＩＤナンバ０２の再生を行っているときにスピーカ２４から出力される。
【００５８】
すなわち、上記ＩＣレコーダ１は、既に録音されている複数の用件の何れか一つを選択してその用件に追加して新しい用件を録音することができる。これにより、利用者は、既に録音した用件と関連のある用件を新しく録音するときは、既に記録されている用件の音声データと新しい用件の音声データとを同じＩＤナンバにすることによって１つの用件として取り扱うことができる。よって、関連のある用件をバラバラに録音した場合に、それらの用件をサーチする手間を省いて操作性を向上させることができる。また、操作部５０を従来からの構成のままできるので、生産コストを上げることなく、上述の追加録音をすることが可能となる。
【００５９】
なお、上述の実施の形態では、所定のファイルを再生しているときに録音ボタン５６が１秒間以上押圧されると後追い録音モードになるものとして説明したが、後追い録音モードはこの場合に限られるものではない。
【００６０】
例えば、利用者がＩＤナンバ０２のファイルを再生を停止させてから、録音ボタン５６を所定時間（例えば２秒間）押圧すると、ＣＰＵ３２は、後追い録音モードになって、図１３に示すステップＳ４以下の処理を行うことによって、ＩＤナンバ０２として新たな音声データをフラッシュメモリ９に記録するようにしてもよい。
【００６１】
【発明の効果】
以上詳細に説明したように、本発明に係る記憶装置によれば、無効ブロックであるか否かをブロック毎に示す無効ブロックマップを少なくとも１つのブロック内に記憶し、無効ブロックマップに基づいて無効ブロック以外のブロックにデータを書き込み又は無効ブロック以外のブロックからデータを読み出すことによって、記憶手段の全ブロックをスキャンすることなく何れのブロックに無効ブロックがあるかを迅速に認識することができる。
【図面の簡単な説明】
【図１】本発明を適用したＩＣレコーダの具体的な構成を示すブロック図である。
【図２】上記ＩＣレコーダの正面図である。
【図３】上記ＩＣレコーダのフラッシュメモリの構成図である。
【図４】上記フラッシュメモリのエターナルブロックの構成図である。
【図５】上記エターナルブロックの無効ブロックマップの構成図である。
【図６】上記フラッシュメモリのファイルデータからなるインデックスステージブロックの構成図である。
【図７】上記インデックスステージブロックのＡＤＲデータ部の構成図である。
【図８】上記インデックスステージブロックのＨＤＲデータ部の構成図である。
【図９】上記フラッシュメモリのファイルデータからなるインデックスステージブロックの構成図である。
【図１０】上記フラッシュメモリのワークエリアブロックの構成図である。
【図１１】上記フラッシュメモリのＰＣＭデータブロックの構成図である。
【図１２】新しく録音された音声データの記録位置の説明図である。
【図１３】ＩＤナンバ０２として新しく音声データを追加録音するときのＣＰＵの動作を説明するフローチャートである。
【図１４】ＩＤナンバ０２として新しく音声データを追加録音したときのインデックスステージブロックのＡＤＲデータ部の構成図である。
【図１５】ＩＤナンバ０２として新しく追加録音された音声データの記録位置の説明図である。
【符号の説明】
１１  マイクロホーン、９  フラッシュメモリ、２４  スピーカ、３２  ＣＰＵ
【図１】
0003849241.tif 000002
【図２】
0003849241.tif 000003
【図３】
0003849241.tif 000004
【図４】
0003849241.tif 000005
【図５】
0003849241.tif 000006
【図６】
0003849241.tif 000007
【図７】
0003849241.tif 000008
【図８】
0003849241.tif 000009
【図９】
0003849241.tif 000010
【図１０】
0003849241.tif 000011
【図１１】
0003849241.tif 000012
【図１２】
0003849241.tif 000013
【図１３】
0003849241.tif 000014
【図１４】
0003849241.tif 000015
【図１５】
0003849241.tif 000016