(57)【要約】【課題】高速な書き込みを実現するとともに、フラッシュメモリの不良ブロックの発生を抑制し、かつ、低コストな記憶装置を提供する。【解決手段】不揮発性メモリデバイス１０の各ブロックの物理アドレスと該物理アドレスのブロックに書き込まれデータの論理アドレスとの対応関係の記録を物理アドレスの順に変換テーブル３１に並べ、書込手段４１は、情報機器２より論理アドレスのデータの書き込みの指示を受け取ると、変換テーブル３１の最後の物理アドレスのブロックに論理アドレスのデータを書き込み、変換テーブル変更手段４２で、書込手段４１により書き込まれたデータの論理アドレスと前記書き込まれたブロックの物理アドレスとの対応関係の記録を変換テーブル３１の最後に追加する。読取手段４３は、情報機器２より論理アドレスのいずれかの読み出しの指示を受け取ると、変換テーブル３１の対応関係の記録を最後から遡って読み出す。【選択図】図１
2008251063.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域を複数に分割したブロック単位でデータの消去が可能、かつ、前記ブロックを複数に分割したページ単位でデータの読み取りおよび書き込みが可能、かつ、データの書き込みはデータが書き込まれていない未使用のページにのみ書き込みが可能な不揮発性メモリデバイスと、
前記不揮発性メモリデバイスのデータにアクセスする情報機器と接続するインターフェースと、
前記情報機器が前記インターフェースを介して前記不揮発性メモリデバイスにアクセスする際、前記情報機器がアクセスする論理アドレスを前記不揮発性メモリデバイスの物理アドレスに変換する変換手段とを備えた記憶装置において、
前記変換手段が、データが書き込まれた前記不揮発性メモリデバイスの各ブロックの物理アドレスと該物理アドレスのブロックに書き込まれデータの論理アドレスとの対応関係の記録を前記物理アドレスの順に並べた変換テーブルに基づいて変換するものであり、
前記情報機器より所定の論理アドレスのデータの書き込みの指示を受け取ると、前記変換テーブルの最後の物理アドレスのブロックに続くデータが書き込まれていない未使用のブロックに前記書き込み指示された論理アドレスのデータを書き込む書込手段と、
該書込手段により書き込まれたデータの論理アドレスと前記書き込まれたブロックの物理アドレスとの対応関係の記録を前記変換テーブルの最後に追加する変換テーブル変更手段と、
前記情報機器より前記論理アドレスのいずれかの読み出しの指示を受け取ると、前記変換テーブルの対応関係の記録を最後から遡って前記読み出しが指示された論理アドレスを検索し、最初に見出された論理アドレスに対応する物理アドレスのブロックよりデータを読み取る読取手段とを備えたことを特徴とする記憶装置。
【請求項２】
前記書込手段により未使用のブロックにデータの書き込みが行われると未使用のブロック数を１つ減らして使用可能なブロック数を管理する使用可能ブロック数管理手段を備えることを特徴とする請求項１記載の記憶装置。
【請求項３】
前記使用可能ブロック数管理手段が、前記書込手段によりデータの書き込みが行われる度に使用可能なブロック数を前記不揮発性メモリデバイスに書き込むものであり、
前記情報機器より前記変換テーブルの書き込みの指示を受け取ると、前記変換テーブルを前記不揮発性メモリデバイスに書き込む変換テーブル書込手段と、
前記不揮発性メモリデバイスに書き込まれた変換テーブルより得られる使用可能なブロック数と、前記使用可能ブロック数管理手段により前記不揮発性メモリデバイスに書き込まれた使用可能なブロック数とが一致するか否かを照合する照合手段と、
前記不揮発性メモリデバイスに書き込まれた変換テーブルより得られる使用可能なブロック数が前記不揮発性メモリデバイスに書き込まれた使用可能なブロック数より多い場合には、前記変換テーブルの対応関係の記録の最後の物理アドレスより前記一致しないブロック数分のブロックのデータを消去する部分消去手段とをさらに備えることを特徴とする請求項２記載の記憶装置。
【請求項４】
前記使用可能ブロック数管理手段が、前記部分消去手段によりブロックのデータが消去された場合には、データを消去したブロック数を前記未使用のブロック数に加えるものであることを備えることを特徴とする請求項３記載の記憶装置。
【請求項５】
前記不揮発性メモリデバイスが、書き換え回数の制限の少ない第１の不揮発性メモリデバイスと該第１の不揮発性メモリデバイスより書き換え回数の制限の大きい第２の不揮発性メモリデバイスを有し、
使用可能ブロック数管理手段が、前記使用可能なブロック数を前記第１の不揮発性メモリデバイス書き込むものであり、
前記変換テーブル書込手段が、書き込む前記変換テーブルを前記第１の不揮発性メモリデバイス書き込むものであり、
前記書き込み手段が、前記データを前記第２の不揮発性メモリデバイス書き込むものであることを特徴とする請求項３または４記載の記憶装置。
【請求項６】
前記読取手段が、前記情報機器より読み取る読み出し指示を受け付けたデータについてさらに世代の指示を受取ったときには、前記最初に見出された論理アドレスを前記世代に応じてさらに遡って検索して見出された論理アドレスに対応する物理アドレスのブロックよりデータを読み取るものであることを特徴とする請求項１記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリを用いた記憶装置に関するものである。
【背景技術】
【０００２】
近年、情報機器の小形化に伴い、小型な記録媒体として、不揮発性の半導体メモリが注目されている。不揮発性の半導体メモリにいったん記憶させたデータは、電源が切れた後も消えてなくならず、再度電源を入れればそのまま読み出すことができるため、さまざまな情報機器に用いられ、デジタルスチールカメラ、デジタルビデオカメラ、パーソナル情報機器、音声録音再生器、電子手帳などに利用されている。
【０００３】
不揮発性の半導体メモリには、EPROM（Erasable Programmable ROM）、EEPROM（Electrically Erasable PROM）、NOR型のフラッシュメモリ、NAND型のフラッシュメモリなどがある。EEPROMなどのメモリ・セルは，選択用のトランジスタとメモリ用のトランジスタが組み合わされて、 各ビットごとに書き込み/消去ができるように構成されているが、NOR型のフラッシュメモリは、メモリ・セルごとに消去することはできないが、選択用トランジスタが不要になるため 1ビットあたり1トランジスタでメモリ・セルが構成されるため集積度を上げることができるようになってきた。さらに、NAND型フラッシュメモリは、NOR型フラッシュメモリのような1ビットごとのアドレッシングをせず、 特定のビット線から順番にデータが読み出せるような構造にすることで配線面積を抑えて最小のメモリ・セルを実現したため集積度が非常に高く、情報機器内に直接実装されて用いられるばかりではなく、情報機器に対して着脱可能なメモリカードなどにも用いられている。
【０００４】
しかし、NAND型フラッシュメモリは、NOR型フラッシュメモリのようにメモリ空間上にメモリ・セルがマッピングされてランダム・アクセスできる構造にはなっておらず、メモリの読み書きは、528（512＋16）バイトからなるページと呼ばれる単位で実行される。各ページは，データ部（512バイト）と冗長部（16バイト）に分けられる。 データ部には通常のデータを格納し，冗長部にはECCデータや不良ブロック・マーク、そのほかの管理情報が格納されることが多い。また、消去は複数ページからなるブロック単位で一括消去するしかなく、ビット単位・ページ単位の消去はできない。 
ページやブロックにはそれぞれアドレス番号が割り当てられているが、NAND型フラッシュメモリはHDDなどと異なり直接上書き操作のできないデバイスであるので、あるデータの一部を書き換えるためには、 そのデータの格納された物理ページを読み出し、変更したデータは新しい物理ページに書き込むので、データを格納した物理ページと論理ページとの対応関係を管理しなければならない。そのためにフラッシュメモリ上の物理アドレス空間と論理アドレス空間のアドレス・マッピングの管理を行い、データ更新をするたびにこのマッピング情報を更新して、 変更した論理ページ（あるいは、ブロック）・アドレスに対応する物理ページ（あるいは、ブロック）・アドレスを変えることになる。
【０００５】
また、フラッシュメモリはHDDのように直接上書き操作ができないため、データの一部のみを書き変えるときであっても、元のデータが格納されたブロックのデータは消去して、新しいブロックに書き込みを行うことになる。しかし、消去には時間がかかるので、書き換え時にも時間がかかることになる。さらに、NAND型フラッシュメモリは、複数回書き込み消去が繰り返されると消耗して不良ブロックが発生することになる。
【０００６】
特許文献１では、フラッシュメモリのデータを消去する単位となるブロックそれぞれに対して、そのブロックのデータ部が記録可能であるか否かなどを表す補助情報をそのブロックの冗長部に記録し、補助情報を構成する各ビットは「１」から「０」の一方向の書き換えで管理するようにして補助情報の変更に伴うブロックの消去の回数を減らす方法が提案されている。フラッシュメモリに対するデータの記録は、ビットに相当するセルから電荷を抜去ることによって行われる。つまり、「１１１１１１００」というデータを記録したい場合は、ＬＳＢ（最下位桁ビット）側の２ビットの電荷を抜けばよい。そして次に当該バイトを、「１１１１１１０１」というデータに書換える場合は、ＬＳＢ側のビットのデータ「０」を「１」に書換えればよいが、フラッシュメモリでは特定のビットだけに電荷を注入することはできない。そのため、「０」を「１」に書換えるためには、元のブロックの全体を消去して、再度、書き込みを行うことになる。そこで、例えば、1ビット目が「１」から「０」に書き換えられるとそのブロックが記録可能であること表し、２ビット目が「１」から「０」に書き換えられると記録不可であることを表し、３ビット目が「１」から「０」に書き換えられると再度記録可能であることを表すというように決めて、常に「１」から「０」への一方向の書き換えを行うようにすれば、１バイトの補助情報があれば、補助情報で管理するブロックの記録可能と記録不可の状態を４回まで繰り返すことができ、補助情報を書き換えるためにブロック全体を書き換える必要がないようにする方法が提案されている。
【０００７】
また、特許文献２では、論理アドレス空間に対応した個数分のブロックに加えて、余分な付加ブロックを複数用意しておき、一つの論理アドレスのブロックのデータを更新する場合、使用可能な付加ブロックの１つに対して更新すべきデータを書き込むと同時に、元の論理アドレスに対応する物理アドレスのブロックを消去することで、更新前のブロックの消去と更新した内容の書き込みを並行して行い処理時間を短縮する方法が提案されている。
【０００８】
特許文献３には、カメラにライトワンス媒体とリライタブル媒体との両方を備えるようにして、一旦、カメラで撮影した画像はリライタブル媒体に記憶して、撮影後一定時間経過した場合には消去される可能性が少ない画像であると判断して、ライトワンス媒体に画像を移すようにすることで、データを消去する回数を少なくする方法が提案されている。
【特許文献１】特開平１１−３０６７６７号公報
【特許文献２】特開２００２−３６６４２０公報
【特許文献３】特開２００３−７６６０８公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の手法では、各ブロックの補助情報をそのブロックの冗長部におき、各ビットは「１」から「０」の一方向の書き換えで管理することにより、元の補助情報を削除せずとも上書きすることが可能になるが、データ領域の内容を書き換える場合には必要がなくなったブロックのデータが消去されるので、データの書き換えには時間がかかり、度々消去されることにより不良ブロックが発生することになる。
【００１０】
特許文献２の手法では、更新前のブロックの消去と更新した内容の書き込みを並行して行うことで、消去と書き込みに必要な処理時間を短縮することができるが、同時に書き込みと消去ができる構成が必要であり高コストになる。
【００１１】
また、特許文献３の手法では、ライトワンス媒体とリライタブル媒体との両方を備えた構成にし、消去する可能性の少ないデータのみライトワンス媒体に移すようにすることで、度々消去されることによる不良ブロックが発生を抑えることができるが、ライトワンス媒体とリライタブル媒体の両方が必要であるため高コストになる。
【００１２】
そこで、本発明では、高速な書き込みを実現するとともに、フラッシュメモリの不良ブロックの発生を抑制し、かつ、低コストな記憶装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１３】
本発明の記憶装置は、メモリ領域を複数に分割したブロック単位でデータの消去が可能、かつ、前記ブロックを複数に分割したページ単位でデータの読み取りおよび書き込みが可能、かつ、データの書き込みはデータが書き込まれていない未使用のページにのみ書き込みが可能な不揮発性メモリデバイスと、
前記不揮発性メモリデバイスのデータにアクセスする情報機器と接続するインターフェースと、
前記情報機器が前記インターフェースを介して前記不揮発性メモリデバイスにアクセスする際、前記情報機器がアクセスする論理アドレスを前記不揮発性メモリデバイスの物理アドレスに変換する変換手段とを備えた記憶装置において、
前記変換手段が、データが書き込まれた前記不揮発性メモリデバイスの各ブロックの物理アドレスと該物理アドレスのブロックに書き込まれデータの論理アドレスとの対応関係の記録を前記物理アドレスの順に並べた変換テーブルに基づいて変換するものであり、
前記情報機器より所定の論理アドレスのデータの書き込みの指示を受け取ると、前記変換テーブルの最後の物理アドレスのブロックに続くデータが書き込まれていない未使用のブロックに前記書き込み指示された論理アドレスのデータを書き込む書込手段と、
該書込手段により書き込まれたデータの論理アドレスと前記書き込まれたブロックの物理アドレスとの対応関係の記録を前記変換テーブルの最後に追加する変換テーブル変更手段と、
前記情報機器より前記論理アドレスのいずれかの読み出しの指示を受け取ると、前記変換テーブルの対応関係の記録を最後から遡って前記読み出しが指示された論理アドレスを検索し、最初に見出された論理アドレスに対応する物理アドレスのブロックよりデータを読み取る読取手段とを備えたことを特徴とするものである。
【００１４】
「情報機器」とは、情報やデータなどを扱う機器であり、コンピュータ、デジタルスチールカメラ、デジタルビデオカメラ、携帯電話などが含まれる。
【００１５】
「前記変換テーブルの最後の物理アドレスのブロック」とは、変換テーブルに論理アドレスとの対応関係が記録されている最後の物理アドレスのブロックであり、対応関係が記録されている物理アドレスのブロックは使用されている最後のブロックを意味する。
【００１６】
また、前記記憶装置が、前記書込手段により未使用のブロックにデータの書き込みが行われると未使用のブロック数を１つ減らして使用可能なブロック数を管理する使用可能ブロック数管理手段を備えるようにしたものが望ましい。
【００１７】
さらに、前記使用可能ブロック数管理手段が、前記書込手段によりデータの書き込みが行われる度に使用可能なブロック数を前記不揮発性メモリデバイスに書き込むようにし、
前記情報機器より前記変換テーブルの書き込みの指示を受け取ると、前記変換テーブルを前記不揮発性メモリデバイスに書き込む変換テーブル書込手段と、
前記不揮発性メモリデバイスに書き込まれた変換テーブルより得られる使用可能なブロック数と、前記使用可能ブロック数管理手段により前記不揮発性メモリデバイスに書き込まれた使用可能なブロック数とが一致するか否かを照合する照合手段と、
前記不揮発性メモリデバイスに書き込まれた変換テーブルより得られる使用可能なブロック数が前記不揮発性メモリデバイスに書き込まれた使用可能なブロック数より多い場合には、前記変換テーブルの対応関係の記録の最後の物理アドレスより前記一致しないブロック数分のブロックのデータを消去する部分消去手段とをさらに備えるようにしてもよい。
【００１８】
また、前記使用可能ブロック数管理手段が、前記部分消去手段によりブロックのデータが消去された場合には、データを消去したブロック数を前記未使用のブロック数に加えるものであることを備えたものが望ましい。
【００１９】
また、前記不揮発性メモリデバイスが、書き換え回数の制限の少ない第１の不揮発性メモリデバイスと該第１の不揮発性メモリデバイスより書き換え回数の制限の大きい第２の不揮発性メモリデバイスを有すようにして、
使用可能ブロック数管理手段が、前記使用可能なブロック数を前記第１の不揮発性メモリデバイス書き込み、
前記変換テーブル書込手段が、書き込む前記変換テーブルを前記第１の不揮発性メモリデバイス書き込み、
前記書き込み手段が、前記データを前記第２の不揮発性メモリデバイス書き込むようにしてもよい。
【００２０】
「書き換え回数の制限の少ない不揮発性メモリデバイス」とは、一旦消去をおこなったあとに再度書き込みを行うという動作を繰り返したときに、書き込みが正常にできる回数が多く、書き込み回数の制限が少ないものをいう。
【００２１】
「書き換え回数の制限の大きい不揮発性メモリデバイス」とは、一旦消去をおこなったあとに再度書き込みを行うという動作を繰り返したときに、書き込みが正常にできる回数が少なく、書き込み回数を制限が大きいものをいう。
【００２２】
また、前記読取手段が、前記情報機器より読み取る読み出し指示を受け付けたデータについてさらに世代の指示を受取ったときには、前記最初に見出された論理アドレスを前記世代に応じてさらに遡って検索して見出された論理アドレスに対応する物理アドレスのブロックよりデータを読み取るようにしてもよい。
【発明の効果】
【００２３】
本発明によれば、メモリ領域を複数に分割したブロック単位でデータの消去が可能、かつ、前記ブロックを複数に分割したページ単位でデータの読み取りおよび書き込みが可能、かつ、データの書き込みはデータが書き込まれていない未使用のページにのみ書き込みが可能な不揮発性メモリデバイスを用いてデータを記録する際、書き込み時は常にデータが書き込み済みのブロックの最後に追加して書き込みを行うようにして、データの一部を変更し書き換えを行うときであっても、変更前のデータが入っているブロックを消さずに論理アドレスと物理アドレスの対応関係を変化テーブルを追加して記録するようにしたので、データの書き換え時に削除を行うことがないため高速に処理を行うことができる。また、前のブロックを削除することがないので、データが断片化して記録されることがなく必ず連続したブロックに書き込みを行うので、高速に書き込むことができる。
【００２４】
また、書き込み時に使用可能ブロック数を変更していくことにより、常に使用可能なブロック数を把握することができ、使用可能なブロック数から情報機器で動画撮影が可能な時間などを算出することが出来る。また、本発明のデータの管理方法であれば、空きブロックが必ず連続して存在するので、データの書き込みを行う際に空きブロックを探すために時間をとられないので高速に書き込みを行うことができ、データの書き込みが間に合わなくなることがない。
【００２５】
ブロックにデータの書き込みが行われる度に使用可能なブロック数を不揮発性メモリデバイスに書き込み、情報機器から指示されると変換テーブルを不揮発性メモリデバイスに書き込みを行う機能を持たせて、情報機器がデータ書き込みの終了処理を実行するタイミングなどで変換テーブルを不揮発性メモリデバイスに書き込むように指示すれば、正常に終了処理を行った場合には変換テーブルの記録と使用可能なブロック数とにズレが生じることがないが、電源断などの異常終了が発生したときには変換テーブルの記録と使用可能なブロック数とにズレが生じることになり、データが正常に書き込まれていない可能性があることがわかる。さらに、ズレが生じたブロックの数分データを消去することで使用ブロックと変換テーブルの記録が対応するように修復することができる。
【００２６】
また、不揮発性メモリデバイスとして書き換え制限の大きいメモリと書き換え制限の少ないメモリを用意して、書き換え制限の少ないメモリに変換テーブルや使用可能なブロック数を書き込むようにして、頻繁に発生する変換テーブルや使用可能なブロック数を書き換えを行なうようにすれば、変換テーブルや使用可能なブロック数の書き換えにより空きブロックが少なくなるのを防ぐことができる。
【００２７】
さらに、本発明では書き換え前のブロックを消去することがないため、読取時に書き換え前の世代を指示して、世代が指定されたブロックまで変換テーブル遡って読み取りを行なうようにして、書き換え前の状態のデータを読むことができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は第１の実施の形態の記憶装置の概略構成を示すブロック図である。
【００２９】
図１に示すように、記憶装置１は、不揮発性メモリデバイス１０と、情報機器２と接続するインターフェース２０と、情報機器２がインターフェース２０を介して不揮発性メモリデバイス１０にアクセスするときに、変換テーブル３１を参照しながら情報機器２が認識する論理アドレスを不揮発性メモリデバイス１０の物理アドレスに変換する変換手段３０と、不揮発性メモリデバイス１０のデータの読み取り、書き込み、消去、変換テーブルの書き換えなどの制御を行う制御手段４０を備える。
【００３０】
不揮発性メモリデバイス１０は、メモリ領域を複数に分割してブロック単位で消去可能、かつ、ブロックを複数に分割したページ単位で読み取りと書き込みが可能、かつ、書き込みはデータが書き込まれていない未使用のページにのみ書き込みが可能なものである。具体的には、例えば、NANDフラッシュメモリがある。
【００３１】
変換テーブル３１は、データが書き込まれた不揮発性メモリデバイス１０の各ブロックの物理アドレスとその物理アドレスのブロックに書き込まれデータの論理アドレスとの対応関係の記録を前記物理アドレスの順に並べたテーブルである。変換テーブル３１は、物理アドレスの順に沿って対応する論理アドレスが記録され、図２(a)に示すように、物理アドレス０，１，２，３，・・・のブロックにデータが書き込まれている場合は書き込まれたデータの論理アドレスａ，ｂ，ｃ，ｄ，・・・が記録される。また、図２では、物理アドレスのブロックにデータが書き込まれていない状態を「＊」で表わしている。
【００３２】
制御手段４０は、情報機器２より論理アドレスのデータの書き込みの指示を受け取ると、未使用のブロックにデータを書き込む書込手段４１と、書き込まれたデータの論理アドレスと書き込まれたブロックの物理アドレスとの対応関係の記録を変換テーブル３１に追加する変換テーブル変更手段４２と、情報機器２より論理アドレスのいずれかの読み出しの指示を受け取ると、変換テーブル３１から前記読み出しが指示された論理アドレスを検索し、最初に検索されたその論理アドレスに対応する物理アドレスのブロックよりデータを読み取る読取手段４３と、使用可能なブロックの情報を管理する使用可能ブロック情報管理手段４４と、全ブロックのデータを削除する全削除手段４５とを備える。
【００３３】
書込手段４１は、情報機器２より論理アドレスのデータの書き込みの指示を受け取ると、変換手段３０でアドレス変換をして未使用のブロックにデータの書き込みを行う。情報機器２より書込みの指示が行われる度に、変換テーブル３１の物理アドレスの先頭のブロックから順にデータを書き込むが、不揮発性メモリデバイス１０は、未使用のブロックにしか書き込むことができないので、まず、変換テーブル３１から未使用のブロックの物理アドレスを探す。図２(a)に示すように、変換テーブル３１に論理アドレスと物理アドレスの対応が記録されている最後の物理アドレス３の次の物理アドレス４のブロック以降が未使用のブロックであるので、物理アドレスのブロック４にデータを書込む。つまり、変換テーブル３１の論理アドレスの対応が記録されている最後の物理アドレスのブロックの後のブロックに常に追加するように書き込みが行われる。
【００３４】
変換テーブル変更手段４２は、書込手段４１により書き込まれたデータの論理アドレスをそのデータが書き込まれたブロックの物理アドレスに対応して記録され、論理アドレスと物理アドレスの対応関係の記録は変換テーブル３１の最後に常に追加される。
【００３５】
読取手段４３は、情報機器２より論理アドレスのいずれかの読み出しの指示を受け取ると、変換テーブル３１に記録されている論理アドレスと物理アドレスの対応関係の記録を最後から遡って指示された論理アドレスを検索し、最初に検索された論理アドレスに対応する物理アドレスのブロックから変換手段３０でアドレス変換してデータを読み取る。つまり、複数の物理アドレスに対して同じ論理アドレスが記録されている場合であっても、最後にその論理アドレスのデータが書かれた物理アドレスからデータを読み出すことになる。
【００３６】
使用可能ブロック情報管理手段４４は、書込手段４１で１ブロックに書き込みが行われると使用可能ブロック数から１つ引いて、常に使用可能な残りブロック数を管理する。
【００３７】
ここで、記憶装置１をメモリカードとし、情報機器２をデジタルスチールカメラあるいはビデオカメラ（以下、単にカメラという）として、カメラで撮影した画像のデータの書き込みや書き換えを行う場合を例に具体的に図４〜図９のフローチャートに従って説明をする。
【００３８】
まず、メモリカード１の動作について説明する。メモリカード１は電源が投入されると（Ｓ１００）、ワークメモリ上に変換テーブル３１を作成する（Ｓ１０１）。さらに、不揮発性メモリデバイス１０の未使用ブロック数を数えて使用可能ブロック数として記録する（Ｓ１０２）。この後、カメラ２からの指示（以下、コマンドという）待ちの状態になる（Ｓ１０３）。
【００３９】
カメラ２からの送られてくるコマンドには、読み取り、書き込み、全消去があり、読取コマンドを受け取ると（Ｓ１０４）、読取手段４３により読み取りの処理が実行され（Ｓ１０５）、書込コマンドを受け取ると（Ｓ１０６）、書込手段４１により書き込み処理が実行され（Ｓ１０７）、全消去コマンドを受け取ると（Ｓ１０８）、全消去手段４５により全消去の処理が実行される（Ｓ１０９）。いずれのコマンドにも該当しないときはエラーとなる。
【００４０】
次に、カメラ２から送られてくる指示とメモリカード１の動作とを併せて説明する。
【００４１】
カメラ２から撮影した画像のデータの書き込みを指示すると、書込手段４１（Ｓ１０７）で変換テーブル３１から未使用のブロックの物理アドレスを取得して（Ｓ１２０）、取得した未使用の物理アドレスのブロックに画像のデータを書き込む（Ｓ１２１）。図２(a)に示すように、データが何も書かれていないメモリカード１であれば、先頭の物理アドレスのブロックから順に，物理アドレス０，１，２，３，・・・のブロックにデータを書き込んでいく。各ブロックにデータが書き込まれると、使用可能ブロック情報管理手段４４で使用可能ブロック数を１つ減らし（Ｓ１２２）、変換テーブル変更手段４２で、変換テーブル３１の物理アドレスに対応する論理アドレスの記録を追加する（Ｓ１２３）。図２（ａ）は、論理アドレスａ，ｂ，ｃ，ｄ，・・・のデータを順に、物理アドレス０，1，２，３，・・・のブロックに書き込んだ状態を表す。
【００４２】
次に、メモリカード１に一度書き込まれた画像のデータをカメラで一旦読み取って編集し、編集が行われたデータを再度書き込む場合について説明する。
【００４３】
カメラ２から編集する論理アドレスｃのデータの読み取りをメモリカード１に指示すると、図２(ａ)に示すような変換テーブル３１に基づいて、読取手段４３（Ｓ１０５）で論理アドレスｃのデータがどの物理アドレスに対応して記録されているかを変換テーブル３１に記録されている最後の対応関係の記録から遡って検索し（Ｓ１３０）、最初に検索された論理アドレスｃに対応する物理アドレス２からデータを読み取り（Ｓ１３１）、カメラ２にそのデータを送る（Ｓ１３２）。カメラ２側で読み取ったデータが編集されると、再度、カメラ２からメモリカード１に書き込みの指示を行う。再度、書き込みを行う場合であっても、不揮発性メモリデバイス１０は未使用のブロックにしかデータを書き込むことができない。つまり、カメラ２が論理アドレスｃのデータを物理アドレス２から読み取って、編集後に再度書き込みを行う場合であっても、編集前のデータが書き込まれている物理アドレス２に上書きすることはできないので、編集後のデータは書込手段４１（Ｓ１０７）で変換テーブル３１から未使用のブロックの物理アドレス４を取得して（Ｓ１２０）、物理アドレス４に編集後のデータを書き込み（Ｓ１２１）、使用可能ブロック情報管理手段４４で使用可能ブロック数を１つ減らす（Ｓ１２２）。さらに、変換テーブル変更手段４２で、図２(ｂ)に示すように、変換テーブル３１の物理アドレス４に対して論理アドレスｃを記録する（Ｓ１２３）。つまり、何度も同じ論理アドレスのデータが書き換えられると、書き換えられる度に変換テーブル３１の別の物理アドレスに対して同じ論理アドレスが追加されて、１つの論理アドレスが複数の物理アドレスに対応して記録されることになる（図２（ｂ）の論理アドレスｃを参照）。しかし、元の物理アドレス２のブロックは消去されないので、データの書き換えが行われる度に使用可能ブロック数は減っていくことになる。
【００４４】
論理アドレスｃのデータを読み取るとき場合は、読取手段４３（Ｓ１０５）で、図２（ｂ）のように記録された変換テーブル３１に基づいて、論理アドレスｃのデータがどの物理アドレスに対応して記録されているかを変換テーブル３１に記録されている最後の対応関係の記録から遡って検索し（Ｓ１３０）、最初に検索された論理アドレスｃに対応する物理アドレス４からデータを読み取るので（Ｓ１３１）、常に、最後に記録された最新のデータを読み取ることになる。
【００４５】
さらに、カメラ２よりメモリカード１から論理アドレスｅのデータの書き込みを指示すると、書込手段４１（Ｓ１０７）で、図３（ａ）に示す変換テーブル３１に基づいて未使用のブロックの物理アドレス５を取得して（Ｓ１２０）、物理アドレス５に論理アドレスｅのデータを書き込み（Ｓ１２１）、使用可能ブロック情報管理手段４４で使用可能ブロック数を１つ減らし（Ｓ１２２）、図３（ｂ）に示すように、変換テーブル３１の物理アドレス５に対応して論理アドレスｅを記録する（Ｓ１２３）。
【００４６】
次に、メモリカード１の残量が少なくなったときに、メモリカード１のデータの全消去を行う場合について説明をする。
【００４７】
メモリカード１に記録している画像のデータなどをパソコンのハードディスクなどに移動させた後に、カメラ２から全消去の指示をして全ブロックのデータの消去を行う。まず、全除去手段４５（Ｓ１０９）は、使用可能ブロック数を初期化し（Ｓ１４０）、さらに、変換テーブル３１を全消去して（Ｓ１４１）、データ領域を全消去する（Ｓ１４２）。
【００４８】
以上説明したように、データの書き換えをする場合には前のブロックを消去しないでデータが書き込まれている最後のブロックの後のブロックにデータを書き込むようにすることにより、ブロックが断片化することがなく、空き領域は常にブロックが連続して存在することになる。従来のように、書き換えを行う際に、書き込みと消去を繰り返すと連続したブロックが少なくなりデータが断片化することになり、未使用のブロックが連続して存在しない場合には空きブロックを探しながら記録を行うため、ビデオカメラで動画を撮影しているときのように高速で記録を行う必要があるときには書込み処理が間に合わなくなる場合がある。しかし、本実施の形態で説明したように、データの書き換えを行うときであっても、前のデータを削除せず、使用したブロックの後ろに順次追加して書き込みを行うようにすることにより、連続したブロックを確保することができ、高速に書き込みを行うことができる。
【００４９】
次に、第２の実施の形態について説明する。なお、本実施の形態は図１の記憶装置１と同一の構成を有するので詳細な説明を省略する。本実施の形態の記憶装置１は、読み取り、書き込み、全消去のコマンドの他に、使用可能ブロックサイズのコマンドを受け取って、使用可能ブロック数を情報機器２に出力できるような構成にする。また、本実施の形態では、情報機器２をデジタルビデオカメラとし、記憶装置１をメモリカードとして、メモリカード１内の使用可能なブロック数を管理することによって、録画可能な時間を算出する方法について、図８，９のフローチャートに従って説明する。
【００５０】
まず、メモリカード１側の動作について説明する。図８のＳ１０１〜Ｓ１０９までの動作は、第１の実施の形態と同じであるので、詳細な説明は省略する。使用可能ブロックサイズのコマンドについてのみ説明をする。
【００５１】
デジタルビデオカメラ２より、使用可能ブロックサイズのコマンドを受け取ると（Ｓ１１０）、使用可能ブロックの数をデジタルビデオカメラに出力する（Ｓ１１１）。
【００５２】
次に、デジタルビデオカメラ２から送られてくる指示とメモリカード１の動作とを併せて具体的に説明する。
【００５３】
まず、デジタルビデオカメラ２に電源が入力されると、デジタルビデオカメラ２はメモリカード１に使用可能ブロックのサイズ読み出しを指示（使用可能ブロックサイズコマンド）をメモリカード１に送る。メモリカード１の使用可能ブロック情報管理手段４４で不揮発性メモリデバイス１０の使用可能ブロック数を読み取り（Ｓ１５０）、使用可能ブロック数から容量があるか否かを判定し（Ｓ１５１）、容量に残りがあれば、使用可能ブロック数から動画を記録することが可能な時間を算出して、デジタルビデオカメラ２のＬＣＤの画面上に撮影可能時間を表示する（Ｓ１５２）。容量に残りがなければ、例えば「カードフル」などのメッセージをデジタルビデオカメラ２のＬＣＤの画面上に表示して、容量がないこと操作者に知らせる（Ｓ１５３）。デジタルビデオカメラ２の操作者はこの撮影可能時間を確認して、撮影を開始することが出来る。
【００５４】
動画撮影が開始されると、定期的にビデオカメラよりメモリカード１にデータの書き込みの指示が送出され、メモリカード１はインターフェース２０からデジタルビデオカメラ２よりデータを受け取り、書込手段４１で変換テーブル３１から未使用のブロックの物理アドレスを取得しながら、動画のデータを順に各ブロックに書き込んでいく（Ｓ１５４）。さらに、使用可能ブロック情報管理手段４４で１ブロック書き込まれる度に使用可能ブロックを１つ減らし、記録時間が使用可能時間より大きくなるまで動画を記録し続けることができる（Ｓ１５５）。
【００５５】
従来のように使用可能なブロックが分かれて断片化している場合には、使用可能なブロックを検索するのに時間がかかるため、動画のように短い時間間隔で書き込みが指示されると、使用可能なブロックが残っているのにもかかわらず書き込みが間に合わなくなって撮影の途中で撮影不可能になる場合がある。しかし、本発明のブロックの管理方法では使用可能ブロックは必ず連続しているため、デジタルビデオカメラで動画を撮影しているようなときであっても書き込みが間に合わなくなることがなく、使用可能なブロック数から撮影可能時間を正確に算出して操作者に知らせることができる。
【００５６】
次に、第３の実施の形態では、変換テーブルを不揮発性メモリデバイスに記憶して、異常時の電源遮断などにより書き込みの途中で異常終了した場合に、変換テーブルの状態と実際にブロックに書き込まれたデータとにズレが生じたときの修復方法について説明する。なお、本実施の形態の記憶装置１ａを図１０に示す。図１０が図１の記憶装置１と同一の構成を有する部位については、同一の符号を付して詳細な説明は省略する。図１０の記憶装置１ａが記憶装置１と異なる点は制御手段である。
【００５７】
制御手段４０ａは、情報機器２より論理アドレスのデータの書き込みの指示を受け取ると、未使用のブロックにデータを書き込む書込手段４１と、書き込まれたデータの論理アドレスと書き込まれたブロックの物理アドレスとの対応関係の記録を変換テーブル３１に追加する変換テーブル変更手段４２と、情報機器２より論理アドレスのいずれかの読み出しの指示を受け取ると、変換テーブル３１から前記読み出しが指示された論理アドレスを検索し、最初に検索されたその論理アドレスに対応する物理アドレスのブロックよりデータを読み取る読取手段４３と、使用可能なブロックの情報を不揮発性メモリ１０に書き込む使用可能ブロック情報管理手段４４ａと、全ブロックのデータを削除する全削除手段４５と、情報機器２より変換テーブル３１の書き込みの指示を受取ると、変換テーブル３１を不揮発性メモリデバイス１０に書き込む変換テーブル書込手段４６と、不揮発性メモリデバイス１０に書き込まれた変換テーブル３１の論理アドレスが記録されている物理アドレスの記録より得られた使用可能なブロック数と、使用可能ブロック数管理手段４４ａで不揮発性メモリデバイス１０に書き込まれた使用可能なブロック数とが一致するか否かを照合する照合手段４８と、照合手段４８において照合が一致しない場合には、一致しないブロック数分のブロックのデータを消去する部分消去手段４９とを備える。
【００５８】
本実施の形態の使用可能ブロック情報管理手段４４ａは、書込手段４１で１ブロック書き込みが行われると使用可能ブロック数から１つ引いて、使用可能な残りブロック数を求め、その使用可能なブロック数を不揮発性メモリデバイス１０に書き込む。
【００５９】
以下、本実施の形態では、情報機器２をデジタルスチールカメラ（以下、単にカメラという）とし、記憶装置１ａをメモリカードとして、変換テーブル３１の状態と実際にデータが書き込まれたブロックとにズレが生じたときの修復方法について具体的に図１１のフローチャートに従って説明する。
【００６０】
メモリカード１ａのデータの読取・書込・全消去は、前述の実施の形態と同様に行われるが、書込手段４１で１ブロックに書き込みが行われると、使用可能ブロック情報管理手段４４ａでは、使用可能ブロック数から１つ引いて残りの使用可能ブロック数を求めて不揮発性メモリデバイス１０に書き込む。
【００６１】
通常、カメラ２の電源断を行う際（あるいは、カメラ２に差し込まれていたメモリカード１ａを取り出す際）には、カメラ２では書き込み終了処理が実行される。書込み終了処理では、カメラメ２からモリカード１ａに変換テーブル３１の書き込みが指示され、メモリカード１aは指示を受取ると、変換テーブル書込手段４６で変換テーブル３１を不揮発性メモリデバイス１０に書き込み、変換テーブル３１の書き込みが終了した後に、電源断の状態になる（あるいはメモリカード１ａの取り出しが行われる）。
【００６２】
一方、データの書き込みを行っている途中で異常が発生して電源断になると、書込み終了の処理が正常に終了する前、つまり、変換テーブル書込手段４６で変換テーブル３１を不揮発性メモリデバイス１０に書き込まれないまま電源が遮断されるため、使用可能ブロック情報管理手段４４ａで不揮発性メモリデバイス１０に書き込んだ使用可能なブロック数と、不揮発性メモリデバイス１０に書き込まれた変換テーブル３１が管理しているブロックの状態に不整合が生じることになる。
【００６３】
再度、カメラ２の電源投入（あるいは、カメラ２にメモリカード１ａの差し込み）をすることによって、メモリカード１ａに電源が供給されると(Ｓ１６０)、照合手段４８で使用可能ブロック情報管理手段４４ａによって不揮発性メモリデバイス１０に書き込まれた使用可能なブロック数を読み取る（Ｓ１６１）。また、変換テーブル３１の物理アドレスに対応して論理アドレスが記録されている場合は、その物理アドレスのブロックは使用されていることを表し、物理アドレスに対応して論理アドレスが記録されていない場合は、その物理アドレスのブロックは使用されていないことを表しているので、照合手段４８で、不揮発性メモリデバイス１０に書き込まれた変換テーブル３１を読み出して変換テーブル３１の論理アドレスが記録されていない物理アドレスから使用可能なブロック数をカウントし（Ｓ１６２）、不揮発性メモリデバイス１０から読み取った使用可能なブロック数と一致しているか否かを照合する（Ｓ１６３）。
【００６４】
例えば、図１２（ａ）に示すように、変換テーブル３１の物理アドレス０，１，２に対応して論理アドレスａ，ｂ，ｃが記録され、不揮発性メモリデバイス１０が記録されている使用可能なブロック数が３である場合には、変換テーブル３１の残りブロック数も３であるので書込み終了処理が正常に行われている。しかし、図１２（ｂ）に示すように、変換テーブル３１の物理アドレス０，１，２に対応して論理アドレスａ，ｂ，ｃが記録されて変換テーブル３１の残りブロック数が３であり、不揮発性メモリデバイス１０の物理アドレス０，１，２，３，４のブロックにデータが書き込まれており、不揮発性メモリデバイス１０に記録されている使用可能なブロック数が１しかない場合には、変換テーブル３１から求められた残りブロック数と一致しないので書込み終了処理が正常に行われていないことがわかる。
【００６５】
このように不揮発性メモリデバイス１０に記録されている使用可能なブロック数と変換テーブル３１とが一致しない場合は、異常電源断などにより書込み終了処理が正常に終了なかったため、変換テーブル３１が不揮発性メモリデバイス１０に記憶されなかったことを意味し、変換テーブル３１の物理アドレスに対応して論理アドレスが記録されていない物理アドレスのブロックのデータは書き込みの途中で、異常終了したためデータが正常でない可能性が高い。そこで、部分消去手段４９で、変換テーブル３１の論理アドレスが記録されている最後の物理アドレスより後ろにある論理アドレスが記録されていない物理アドレスのブロック（図１２（ｂ）の物理アドレス３，４のブロック）に書き込まれているデータを消去する（Ｓ１６４）。さらに、使用可能ブロック数管理手段４４では、部分消去手段４９によりブロックのデータが消去された場合には、データを消去したブロック数を未使用のブロック数に加える（Ｓ１６５）。
【００６６】
本実施の形態のブロックの管理方法では、不整合が生じた場合に不揮発性メモリデバイスの変換テーブルの物理アドレスに論理アドレスが記録されていないブロックのデータを消去することにより不整合を解消することができ、データが壊れている可能性の高い部分を削除することができる。また、本発明のように常に使用されているブロック後ろのブロックに書き込みをするように管理を行うことで、正常に終了処理が行われなれずにデータが壊れているような部分は最後の方のブロックに限られるので、最後の方のブロックを消去すれば正常な状態に戻すことができるので、使用可能なブロックが断片化することなく連続した状態で残ることになる。また、従来のように書き換えをする際に前のブロックを削除して再度書き込みを行う途中で異常終了した場合には、修正前のブロックも保証されない場合が多かったが、本実施の形態の管理方法では修正前のブロックを消去しないので、書き換えに失敗したブロックであっても書き換え前のデータが残っているので、書き換え前の状態では必ず読み出すことができる。
【００６７】
次に、第４の実施の形態について説明する。本実施の形態では、記憶装置からデータの読み出しを行うときに世代を指定することによって、書き換え前のデータを検索する方法について説明する。なお、本実施の形態の記憶装置１ｂを図１３に示す。図１３が図１の記憶装置１と同一の構成を有する部位については、同一の符号を付して詳細な説明は省略する。図１３の記憶装置１ｂが記憶装置１と異なる点は読取手段である。
【００６８】
読取手段４３ｂは、情報機器２より論理アドレスの読み出しの指示とともに世代の指示を受け取ると、変換テーブル３１に記録されている論理アドレスと物理アドレスの対応関係の記録を最後から遡って読み出しが指示された論理アドレスを検索し、世代の指定に応じて、論理アドレスの書き換え前のデータを読み取る。
【００６９】
そこで、例えば、論理アドレスａと遡る世代数ｎをパラメータとして与えると、テーブルの変換テーブル３１の対応関係の記録の最後から論理アドレスａを検索して、論理アドレスａがｎ回目に検索された対応関係の記録の物理アドレスからデータの読み出しを行う。つまり、図１４に示すように複数の物理アドレスに対して同じ論理アドレスが記録されている場合には、現在の世代（世代１）の読み出しが指定された場合には、遡って探した最初の物理アドレスからデータを読み出し、１つ前の世代（世代２）の読み出しが指定された場合には、遡って探した２番目の物理アドレスからデータを読み出し、２つ前の世代（世代３）の読み出しが指定された場合には、遡って探した３番目の物理アドレスからデータを読み出す。
【００７０】
このように読み取りの際に、世代数を指定することにより書き換え前の状態のデータを読み取ることができる。従来のように書き換えをする際に、前のブロックを削除して再度書き込みを行う場合には、書き換え前のデータを読み取ることはできないが、本実施の形態の手法では書き換え前のデータの読み出しが可能になる。
【００７１】
次に、第５の実施の形態について説明する。本実施の形態の記録装置１ｃは、第３の実施の形態とほぼ同じ構成であるが、図１５に示すように、不揮発性メモリとして２つのタイプの不揮発性メモリ用意し、一方は書き換え制限の大きい第１の不揮発性メモリ１０ａと、もう一方は書き換え制限の小さい第２の不揮発性メモリ１０ｂとし、使用可能ブロック数や変換テーブルを書き換え制限の小さい第２の不揮発性メモリに記憶するところが相違する。
【００７２】
第１の不揮発性メモリ１０ａには、大容量であるが書き換え制限の大きいメモリであり、高価で、低速なものを用いる。具体的には、例えば、NANDフラッシュメモリがある。特に、大容量のMLCタイプのフラッシュメモリを用いることができる。第１の不揮発性メモリ１０ａには、書込手段４１によりデータが書き込まれ、読取手段４３によって、第１の不揮発性メモリ１０ａのデータが読み取られる。
【００７３】
第２の不揮発性メモリ１０ｂには、書き換え制限が小さく、小容量で高速なものを用いる。具体的には、小容量のSLCタイプのフラッシュメモリがある。また、SLCタイプのフラッシュメモリは小容量であるため安価である。SLCタイプのフラッシュ以外でも、FeRAM、MRAMなどのメモリも使用することができる。
【００７４】
使用可能ブロック情報管理手段４４ａは、書込手段４１で１ブロックに書き込みが行われると使用可能ブロック数から１つ引いて、使用可能な残りブロック数を求め、その使用可能なブロック数を第２の不揮発性メモリ１０ｂに書き込む。
【００７５】
また、変換テーブル書込手段４６は、第２の不揮発性メモリ１０ｂに変換テーブル３１を書き込む。
【００７６】
このように使用可能ブロック情報管理手段４４ａで得られた使用可能な残りブロック数や変換テーブル３１は第２の不揮発性メモリ１０ｂに書き込むようにすることにより、消去を伴う上書きを行うようにしてもよい。
【００７７】
使用可能ブロック情報管理手段４４ａで得られた使用可能な残りブロック数や変換テーブル３１のようなデータ量は少ないが書き換えられる回数が多いデータを、第２の不揮発性メモリ１０ｂのような高速で書き換え制限の少ないメモリに書き込むことで、高速に書き込みを行うことができ、不良なブロックの発生を抑えて、第１の不揮発性メモリ１０ａのような大容量であるが低速で書き換え制限の大きいメモリを有効に利用することが可能になる。
【図面の簡単な説明】
【００７８】
【図１】第１の実施の形態の記憶装置の概略構成図
【図２】管理テーブルと不揮発性メモリデバイスのブロックの関係を説明するための図（その1）
【図３】管理テーブルと不揮発性メモリデバイスのブロックの関係を説明するための図（その２）
【図４】第１の実施の形態の記憶装置の動作を説明するためのフローチャート
【図５】書き込みの動作を説明するためのフローチャート
【図６】読み取りの動作を説明するためのフローチャート
【図７】全消去の動作を説明するためのフローチャート
【図８】第２の実施の形態の記憶装置の動作を説明するためのフローチャート
【図９】撮影可能時間を算出する場合の情報機器の動作を説明するためのフローチャート
【図１０】第３の実施の形態の記憶装置の概略構成図
【図１１】変換テーブルと使用可能ブロックとの不整合を解消するための動作を説明するためのフローチャート
【図１２】管理テーブルと不揮発性メモリデバイスの未使用のブロックに不整合を説明するための図
【図１３】第４の実施の形態の記憶装置の概略構成図
【図１４】世代指定をして読み出すときの管理テーブルと不揮発性メモリデバイスのブロックの関係を説明するための図
【図１５】第５の実施の形態の概略構成図
【符号の説明】
【００７９】
１、１ａ、１ｂ    記憶装置
２      情報機器
１０    不揮発性メモリデバイス
１０ａ  第１の不揮発性メモリ
１０ｂ  第２の不揮発性メモリ
２０    インターフェース
３０    変換手段
３１    変換テーブル
４０、４０ａ    制御手段
４１    書込手段
４２    変換テーブル変更手段
４３、４３ｂ  読取手段
４４、４４ａ  使用可能ブロック情報管理手段
４５    全削除手段
４６    変換テーブル書込手段
【図１】
2008251063.tif 000003
【図２】
2008251063.tif 000004
【図３】
2008251063.tif 000005
【図４】
2008251063.tif 000006
【図５】
2008251063.tif 000007
【図６】
2008251063.tif 000008
【図７】
2008251063.tif 000009
【図８】
2008251063.tif 000010
【図９】
2008251063.tif 000011
【図１０】
2008251063.tif 000012
【図１１】
2008251063.tif 000013
【図１２】
2008251063.tif 000014
【図１３】
2008251063.tif 000015
【図１４】
2008251063.tif 000016
【図１５】
2008251063.tif 000017