(57)【要約】【課題】不揮発性メモリのアドレス空間を複数群に分けて管理することで、小容量の作業メモリで書き込み速度を確保する。【解決手段】本発明の記憶装置は、ファイルアロケーションテーブル又は論理アドレス／物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも１つの未記録物理アドレスを有する物理アドレス群（「未記録物理アドレス群」と呼ぶ。）であるか否かの情報を有する第１の未記録物理アドレステーブルと、１つの未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第２の未記録物理アドレステーブルと、を有する。【選択図】　　　　図１
2004126945.tif 000002
【特許請求の範囲】
【請求項１】
ファイルアロケーションテーブル又は論理アドレス／物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、
前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも１つの未記録物理アドレスを有する物理アドレス群（以下、「未記録物理アドレス群」と呼ぶ。）であるか否かの情報を有する第１の未記録物理アドレステーブルと、
１つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第２の未記録物理アドレステーブルと、
を有し、
前記第２の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込み、
前記第２の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第１の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを新たに生成することを特徴とする記憶装置。
【請求項２】
複数の前記第２の未記録物理アドレステーブルを有し、未記録物理アドレスを有する前記第２の未記録物理アドレステーブルの数が所定数以下になった時、新たな前記第２の未記録物理アドレステーブルを生成することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記第１の未記録物理アドレステーブルが、全ての前記データ記録領域に関する未記録物理アドレス群の情報を有することを特徴とする請求項１又は請求項２に記載の記憶装置。
【請求項４】
前記第１の未記録物理アドレステーブルを前記不揮発性メモリに記憶し、
起動時に前記不揮発性メモリから読み出した前記第１の未記録物理アドレステーブルに含まれる前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを生成することを特徴とする請求項１から請求項３のいずれかの請求項に記載の記憶装置。
【請求項５】
ファイルアロケーションテーブル又は論理アドレス／物理アドレス変換テーブルを用いて物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、
前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が未記録物理アドレス群であるか否かの情報を有する第１の未記録物理アドレステーブルと、
１つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第２の未記録物理アドレステーブルと、
を有する記憶装置の制御方法であって、
前記第２の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込む書き込みステップと、
前記書き込みステップに応じて、前記第２の未記録物理アドレステーブル、又は前記第１及び第２の未記録物理アドレステーブルを更新する第１の更新ステップと、
前記第２の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第１の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを新たに生成する第２の未記録物理アドレステーブル生成ステップと、
を有することを特徴とする記憶装置の制御方法。
【請求項６】
起動時に、前記不揮発性メモリに記憶されていた前記第１の未記録物理アドレステーブルを読み出す第１の初期化ステップと、
前記第１の未記録物理アドレステーブルに含まれる少なくとも１つの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを生成する第２の初期化ステップと、
を更に有することを特徴とする請求項５に記載の記憶装置の制御方法。
【請求項７】
前記物理アドレス群が、データ消去単位であって複数の前記物理アドレスを有する物理ブロックを有し、
前記物理ブロックのデータを消去する消去ステップと、
前記第１の未記録物理アドレステーブルにおいて、前記消去ステップを実行した前記物理ブロックを有する前記物理アドレス群を未記録物理アドレス群にする第２の更新ステップと、
を更に有することを特徴とする請求項５又は請求項６に記載の記憶装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置及びその制御方法に関する。
【０００２】
【従来の技術】
近年、音楽データ及び映像データを取り扱う携帯機器の記憶装置として、フラッシュメモリ等の不揮発性メモリを備えた記憶装置（典型的にはＩＣカード）が使われるようになってきた。フラッシュメモリ等の不揮発性メモリは、データの書き換えが可能で、携帯性が高く、電源が無くてもデータを保持できるのが特徴である。
【０００３】
図１２及び図１３を用いて、従来例の記憶装置を説明する。図１２は従来例の記憶装置の構成を示すブロック図である。図１２において、１０２はデータ入出力装置、１２０１は記憶装置である。記憶装置１２０１は、制御部１１１、不揮発性メモリ１１２、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１１３を有する。記憶装置１２０１はＩＣカードである。データ入出力装置１０２は、ＩＣカードの挿入スロットを有する携帯機器である。
不揮発性メモリ１１２は、管理領域１２１とデータ記録領域１２２とを有する。データ記録領域１２２は、複数の領域（最小書き込み単位の領域であって、以下、「物理アドレス」と呼ぶ。）を有する。ファイルを記録する場合、ファイルのデータは分割されて、各物理アドレスに記録される。各物理アドレスは、データを格納するデータ領域とその属性情報等を格納する冗長領域とを有する。
【０００４】
不揮発性メモリ１１２は、ファイルの格納場所を管理するために、ディレクトリエントリ１３１及びＦＡＴ（Ｆｉｌｅ　Ａｌｌｏｃａｔｉｏｎ　Ｔａｂｌｅ）１３２を管理領域１２１に記憶する（図３）。図３は、ディレクトリエントリ１３１及びＦＡＴ１３２の構成を示す図である。１つのファイルは、データ記録領域１２２の複数の物理アドレスに分割して格納される。図３において、ディレクトリエントリ１３１はファイル名と、そのファイルの先頭のデータ（第１番目のデータ）が書き込まれた先頭の物理アドレスと、ファイルサイズとを対応させた一覧表である。ＦＡＴ１３２は、データ記録領域１２２の物理アドレスと同一のアドレスを有するテーブルである。第ｉ番目（１≦ｉ≦ｎ）のデータが記録されているデータ記録領域１２２の物理アドレスと同一のＦＡＴ１３２のアドレスには、第（ｉ＋１）番目のデータが記録されているデータ記録領域１２２の物理アドレスが格納されている。制御部１１１は、データ記録領域１２２からデータを読み出すことと、ＦＡＴ１３２から次のデータが記録されている物理アドレスを読み出すこととを交互に実行して、ファイルの全データを読み出す。
【０００５】
図３において、ディレクトリエントリ１３１はファイル「ｐｒｅｓｅｎｔａｔｉｏｎ５．ｐｐｔ」に対応づけられた物理アドレス０２−０８を格納している。データ記録領域１２２の物理アドレス０２−０８は、ファイル「ｐｒｅｓｅｎｔａｔｉｏｎ５．ｐｐｔ」の先頭（第１番目）のデータを格納している。ＦＡＴ１３２のアドレス０２−０８は、物理アドレス０２−３５を格納している。データ記録領域１２２の物理アドレス０２−３５は、第２番目のデータを格納している。ＦＡＴ１３２のアドレス０２−３５は、物理アドレス０３−０４を格納している。データ記録領域１２２の物理アドレス０３−０４は、第３番目のデータを格納している。以下、これを繰り返す。記憶装置１２０１は、ＦＡＴに格納されたアドレスを順にたぐりながら分割されたデータを正しい順序で読み出すことができる。
【０００６】
記憶装置１２０１は起動時に、データ記録領域１２２の全ての物理アドレスを検索し、ＲＡＭ１１３上に未記録物理アドレステーブル１３０１を生成する（図１３）。図１３は、従来例の未記録物理アドレステーブルの構成を示す図である。記憶装置１２０１は物理アドレスが、未記録であれば「１」、記録済みであれば「０」を未記録物理アドレステーブル１３０１に書き込む。未記録物理アドレステーブル１３０１は、全ての物理アドレスの情報（未記録か否かの情報）を有する。
【０００７】
データ入出力装置１０２が記憶装置１２０１にデータの書き込みを指令すると、記憶装置１２０１は、ＲＡＭ１１３上の未記録物理アドレステーブル１３０１に基づいて、未記録物理アドレスを検出する。図１３においては、物理アドレス「２」を検出する。検出された未記録物理アドレスにデータを書き込む。未記録物理アドレステーブル１３０１の物理アドレス「２」に対応するビットを記録済み「０」に更新する。全てのデータの書き込みを完了するまで、次の未記録物理アドレスを未記録物理アドレステーブル１３０１から検出し、データの書き込みを繰り返す。データの書き込みをした場合、ＦＡＴ１３２を更新する。
【０００８】
【特許文献１】
特開２００１−２６５６３３号公報
【特許文献２】
特開２００２−０９１８０６号公報
【特許文献３】
特開２００２−１６３１３６号公報
【特許文献４】
特開２００２−２０７６２６号公報
【０００９】
【発明が解決しようとする課題】
しかし、全ての物理アドレスの情報（未記録か否かの情報）を未記録物理アドレステーブルに保持しようとすると、必要なＲＡＭの容量が大きくなるという問題があった。近年では携帯機器で取り扱う情報量が増大する傾向にあり、これに対処するために、記憶装置の記憶容量の増大を図っている。記憶容量の増大は、未記録物理アドレステーブルの情報量の増大につながる。そのためＲＡＭの容量を増大させることが必要となり、コストアップの大きな要因となっていた。
従来例の記憶装置では、起動時にデータ記録領域の全ての物理アドレスを検索して未記録物理アドレステーブルを生成する必要があったため、起動に時間がかかるという問題があった。
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のＲＡＭを有する安価な記憶装置及びその制御方法を提供することを目的とする。
本発明は、短時間で起動する記憶装置及びその制御方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するため、本発明は下記の構成を有する。
請求項１に記載の発明は、ファイルアロケーションテーブル又は論理アドレス／物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも１つの未記録物理アドレスを有する物理アドレス群（未記録物理アドレス群）であるか否かの情報を有する第１の未記録物理アドレステーブルと、１つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第２の未記録物理アドレステーブルと、を有し、前記第２の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込み、前記第２の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第１の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを新たに生成することを特徴とする記憶装置である。
【００１１】
請求項２に記載の発明は、複数の前記第２の未記録物理アドレステーブルを有し、未記録物理アドレスを有する前記第２の未記録物理アドレステーブルの数が所定数以下になった時、新たな前記第２の未記録物理アドレステーブルを生成することを特徴とする請求項１に記載の記憶装置である。
【００１２】
請求項３に記載の発明は、前記第１の未記録物理アドレステーブルが、全ての前記データ記録領域に関する未記録物理アドレス群の情報を有することを特徴とする請求項１又は請求項２に記載の記憶装置である。
【００１３】
請求項４に記載の発明は、前記第１の未記録物理アドレステーブルを前記不揮発性メモリに記憶し、起動時に前記不揮発性メモリから読み出した前記第１の未記録物理アドレステーブルに含まれる前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを生成することを特徴とする請求項１から請求項３のいずれかの請求項に記載の記憶装置である。
【００１４】
請求項５に記載の発明は、ファイルアロケーションテーブル又は論理アドレス／物理アドレス変換テーブルを用いて物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が未記録物理アドレス群であるか否かの情報を有する第１の未記録物理アドレステーブルと、１つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第２の未記録物理アドレステーブルと、を有する記憶装置の制御方法であって、前記第２の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込む書き込みステップと、前記書き込みステップに応じて、前記第２の未記録物理アドレステーブル、又は前記第１及び第２の未記録物理アドレステーブルを更新する第１の更新ステップと、前記第２の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第１の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを新たに生成する第２の未記録物理アドレステーブル生成ステップと、を有することを特徴とする記憶装置の制御方法である。
【００１５】
請求項６に記載の発明は、起動時に、前記不揮発性メモリに記憶されていた前記第１の未記録物理アドレステーブルを読み出す第１の初期化ステップと、前記第１の未記録物理アドレステーブルに含まれる少なくとも１つの前記未記録物理アドレス群について、前記第２の未記録物理アドレステーブルを生成する第２の初期化ステップと、を更に有することを特徴とする請求項５に記載の記憶装置の制御方法である。
【００１６】
請求項７に記載の発明は、前記物理アドレス群が、データ消去単位であって複数の前記物理アドレスを有する物理ブロックを有し、前記物理ブロックのデータを消去する消去ステップと、前記第１の未記録物理アドレステーブルにおいて、前記消去ステップを実行した前記物理ブロックを有する前記物理アドレス群を未記録物理アドレス群にする第２の更新ステップと、を更に有することを特徴とする請求項５又は請求項６に記載の記憶装置の制御方法である。
【００１７】
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のＲＡＭを有する安価な記憶装置及びその制御方法を実現できるという作用を有する。
本発明は、短時間で起動する記憶装置及びその制御方法を実現できるという作用を有する。
【００１８】
【発明の実施の形態】
以下本発明の実施をするための最良の形態を具体的に示した実施例について、図面とともに記載する。
【００１９】
《実施例１》
図１〜８を用いて、実施例１の記憶装置及びその制御方法を説明する。図１は、本発明の記憶装置の構成を示すブロック図である。図１において、１０１は記憶装置、１０２はデータ入出力装置である。記憶装置１０１は、制御部１１１、不揮発性メモリ１１２（実施例ではフラッシュメモリである。）、ＲＡＭ１１３を有する。記憶装置１０１はＩＣカードである。データ入出力装置１０２は、ＩＣカードの挿入スロットを有する携帯機器（例えばＩＣカードを記憶媒体とする音声レコーダ）である。
本発明の実施例１の記憶装置が、従来例の記憶装置（図１２）と異なるところは、未記録物理アドレステーブル１３０１の替わりに、第１の未記録物理アドレステーブル１４１、第２の未記録物理アドレステーブル１４２及び１４３を有することである。不揮発性メモリ１１２のデータ記録領域１２２は、複数の領域（各領域を物理アドレス群と呼ぶ。）に区分されている。各物理アドレス群は、複数の物理アドレスを有する。これ以外の点において、実施例１は従来例と同一の構成である。
【００２０】
不揮発性メモリ１１２は、管理領域１２１とデータ記録領域１２２とを有する。データ記録領域１２２は、複数の物理アドレス群に区分される。図２を用いて、実施例におけるデータ記録領域１２２の区分方法を説明する。図２は、複数の物理アドレスを有する物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域１２２とを示す図である。
図２において、データ記録領域１２２はｎ個（ｎは任意の正整数。実施例においてｎ＝６４）の領域（「物理アドレス群」と呼ぶ。）に区分される。各物理アドレス群は、ｍ個（ｍは任意の正整数。実施例においてｍ＝１０２４）の物理アドレス（１つの領域は４バイト）を有する。
ファイルを記録する場合、ファイルのデータは分割されて、データ記録領域１２２の各物理アドレスに記録される。この時生成されるディレクトリエントリ１３１及びＦＡＴ１３２の構成（図３）については、従来例において既に説明した。
【００２１】
図４を用いて、第１の未記録物理アドレステーブル１４１、第２の未記録物理アドレステーブル１４２及び１４３を説明する。図４は、実施例１の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルの構成を示す図である。記憶装置１０１は起動時に、データ記録領域１２２の全ての物理アドレスを検索し、第１の未記録物理アドレステーブル１４１と第２の未記録物理アドレステーブル１４２及び１４３をＲＡＭ１１３上に生成する。
第１の未記録物理アドレステーブル１４１は、ｎ個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。未記録物理アドレスを有するか否かは論理値０又は１で示し、０が「未記録物理アドレスを有しない（物理アドレスは全て記録済み）」、１が「未記録物理アドレスを有する」である。各ビットは１ビットで構成される。ｍ個の物理アドレスを有する物理アドレス群が、少なくとも１つの未記録物理アドレスを有する場合「１」を示し、１つも未記録物理アドレスを有しない場合「０」を示す。
【００２２】
記憶装置１０１は起動時に、未記録物理アドレス群（少なくとも１つの未記録物理アドレスを有する物理アドレス群）について、第２の未記録物理アドレステーブルをＲＡＭ１１３上に生成する。第２の未記録物理アドレステーブルは、少なくとも１つ生成する（実施例においては、２つ生成する。）。第２の未記録物理アドレステーブル１４２及び１４３は、ｍ個の物理アドレスが未記録物理アドレスであるか否かの情報を有する。未記録物理アドレスであるか否かは論理値０又は１で示し、０が「未記録物理アドレスでない」、１が「未記録物理アドレスである」である。各ビットは１ビットで構成される。物理アドレスが未記録の場合「１」を示し、記録済みの場合「０」を示す。第２の未記録物理アドレステーブル１４２及び１４３は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【００２３】
第１の未記録物理アドレステーブル１４１は、データ記録領域１２２の全ての物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。物理アドレス群という概念を導入することにより、第１の未記録物理アドレステーブル１４１は、ｎビットの情報量で実現できる。第２の未記録物理アドレステーブル１４２及び１４３は、１つの未記録物理アドレス群に含まれる各物理アドレスが未記録物理アドレスであるか否かの情報を有する。第２の未記録物理アドレステーブルは、ｍビットの情報量で実現でき、少なくとも１つ（実施例では２つ）をＲＡＭ１１３に生成する。
例えば実施例１と同じ大きさのデータ記録領域（（ｍ×ｎ）＝６４ｋ個の物理アドレス）を有する従来例の記憶装置は、（ｍ×ｎ）＝６４ｋビットの情報量の未記録物理アドレステーブルを有していた。本発明の記憶装置１０１は、物理アドレス群という概念を導入して、第１の未記録物理アドレステーブルと第２の未記録物理アドレステーブルとを生成する。実施例１の記憶装置は、（２ｍ＋ｎ）＝２×１０２４＋６４＝約２ｋビットの情報量の第１及び第２の未記録物理アドレステーブルを有する。記憶装置が動作している時、未記録物理アドレステーブルはＲＡＭに常駐する故に、ＲＡＭはバッファ等の動作に必要な容量に加えて未記録物理アドレステーブルを搭載する容量を持つ必要がある。本発明の記憶装置においては、従来よりもＲＡＭ容量を小さく出来る。
【００２４】
図５を用いて、第１及び第２の未記録物理アドレステーブルを用いた実施例の記憶装置の制御方法を説明する。説明の便宜上図５においてはｍ＝１６、ｎ＝８とする。図５において、不揮発性メモリ１１２のデータ記録領域１２２は、８個（ｎ＝８）の物理アドレス群によって区分され、各物理アドレス群は１６個（ｍ＝１６）の物理アドレスによって区分される。
図５（ａ）は、初期化時の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルを示す図である。第１の未記録物理アドレステーブル５０１は、８個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。図５（ａ）では、少なくとも１つの未記録物理アドレスを有する（１を示す）第５番目の物理アドレス群と第６番目の物理アドレス群について、第２の未記録物理アドレステーブル５０２及び５０３を生成する。第２の未記録物理アドレステーブル５０２及び５０３は、１６個の物理アドレスの未記録か否かの情報を有する。
【００２５】
記憶装置１０１の制御部１１１は、データ入出力装置１０２から送られた書き込み指令を受信すると、第２の未記録物理アドレステーブル５０２を検索し、第５番目の物理アドレス群の未記録物理アドレス５−１０を選択し、そこにデータを書き込む。これにより、第５番目の物理アドレス群に含まれる物理アドレスが全て書き込み済みになる。制御部１１１は、第１の未記録物理アドレステーブル５０１の第５番目の物理アドレス群に対応するビットを０に更新する。第１の未記録物理アドレステーブル５０１に基づいて、第７番目の未記録物理アドレス群を検出し、第２の未記録物理アドレステーブル５０４をＲＡＭ１１３上に新たに生成する（図５（ｂ））。
実施例１においては、未記録物理アドレスを有する第２の未記録物理アドレステーブルの数が所定数以下（実施例１では１以下）になった時、新たな第２の未記録物理アドレステーブルを生成する。
【００２６】
図５及び図６を用いて、起動時の記憶装置１０１の制御方法を説明する。図６は、実施例１の起動時の記憶装置１０１の制御方法を示すフローチャートである。
記憶装置１０１を起動する（ステップ６０１）。記憶装置１０１は不揮発性メモリ１１２のデータ記録領域１２２に含まれる全ての物理アドレスを検索して、第１の未記録物理アドレステーブル５０１をＲＡＭ１１３上に生成する（ステップ６０２）。記憶装置１０１は第１の未記録物理アドレステーブルに基づいて、未記録物理アドレスを有する物理アドレス群の中から、所定の数（実施例においては２つ）の物理アドレス群について、第２の未記録物理アドレステーブル５０２及び５０３をＲＡＭ１１３上に生成する（ステップ６０３）。
【００２７】
図５及び図７を用いて、データの書き込み時の記憶装置１０１の制御方法を説明する。図７は、データの書き込み時の記憶装置１０１の制御方法を示すフローチャートである。
記憶装置１０１の制御部１１１は、データ入出力装置１０２からのファイルデータの書き込み指令を入力する（ステップ７０１）。第２の未記録物理アドレステーブル５０２（図５）に基づいて、データを書き込む物理アドレスを第０５−１０番目の物理アドレスに決定する（ステップ７０２）。ファイル名と先頭の物理アドレス「０５−１０」を書き込んだディレクトリエントリ１３２を不揮発性メモリ１１２の管理領域１２１上に作成する（ステップ７０３）。記憶装置１０１の不揮発性メモリ１１２は、データ記録領域１２２の第５番目の物理アドレス群の第１０番目の物理アドレスに、ファイルを分割したデータを書き込む（ステップ７０４）。
【００２８】
ＲＡＭ１１３上の第２の未記録物理アドレステーブル５０２の第１０番目の物理アドレスに対応するビットを０（記録済み）に書き換えて、第２の未記録物理アドレステーブル５０２を更新する（ステップ７０５）。未記録（１を示す）物理アドレスが、第２の未記録物理アドレステーブル５０２に有るか否か判断する（ステップ７０６）。未記録物理アドレスが有れば、ステップ７０９へ進む。ステップ７０５で、第２の未記録物理アドレステーブル５０２は、全て記録済み（０を示す）に更新されたので、未記録物理アドレスは残っていない。従って図５（ａ）においては、ステップ７０７へ進む。
【００２９】
ＲＡＭ１１３上の第１の未記録物理アドレステーブル５０１の第５番目の物理アドレス群に対応するビットを０（記録済み）に書き換えて、第１の未記録物理アドレステーブル５０１を更新する（ステップ７０７）。ＲＡＭ１１３から、第５番目の物理アドレス群の第２の未記録物理アドレステーブル５０２を削除し、第７番目の物理アドレス群の第２の未記録物理アドレステーブル５０４を新たにＲＡＭ１１３上に生成する（ステップ７０８）。
分割されたデータの全データを書き込み完了か否か判断する（ステップ７０９）。書き込みが完了していなければ、ステップ７１０へ進み、第２の未記録物理アドレステーブル５０３に基づいて、次のデータを書き込む物理アドレスを決定する。不揮発性メモリ１１２の管理領域１２１にあるＦＡＴ１３２のアドレス０５−１０に次のデータを書き込む物理アドレスを書き込む（ステップ７１１）。ステップ７０４へ戻り、データの書き込みを繰り返す。
ステップ７０９で全データの書き込みが完了であれば、処理を終了する。
【００３０】
フラッシュメモリ等の不揮発性メモリは、データの書き込み時（メモリセルに０又は１のデータを書き込む。）と、消去時（例えば消去領域のメモリセルのデータを全て１にする。）とでは、全く異なる方法で制御される。又、フラッシュメモリ等の不揮発性メモリにおいては、データの書き込み単位とデータの消去単位が異なる。実施例において、データの書き込み単位は物理アドレスである。データを消去する場合、不揮発性メモリ１１２は複数の物理アドレスを一度に消去する（物理アドレス単位でデータを消去することができない。）。このデータの消去単位を「物理ブロック」と呼ぶ。物理ブロックは複数の物理アドレスで構成される。実施例において、物理ブロックは物理アドレス群より小さい。
【００３１】
図８を用いて、データの消去時の記憶装置１０１の制御方法を説明する。図８は、データの消去時の記憶装置１０１の制御方法を示すフローチャートである。記憶装置１０１の制御部１１１は、データ入出力装置１０２からのデータの消去指令を入力する（ステップ８０１）。記憶装置１０１の不揮発性メモリ１１２は、物理ブロックを消去する（ステップ８０２）。記憶装置１０１は、消去した物理ブロックを含む物理アドレス群を未記録物理アドレス群に設定し（１を書き込む）、第１の未記録物理アドレステーブルを更新する（ステップ８０３）。
消去した物理ブロックを含む物理アドレス群の第２の未記録物理アドレステーブルが、ＲＡＭ１１３上に有るか否か判断する（ステップ８０４）。無ければ、処理を終了する。有れば、ステップ８０５へ進み、消去した物理アドレスを未記録に設定し（１を書き込む）、第２の未記録物理アドレステーブルを更新する（ステップ８０５）。処理を終了する。
【００３２】
《実施例２》
図９及び図１０を用いて、実施例２の記憶装置及びその制御方法を説明する。実施例１においては、不揮発性メモリ１１２の管理領域１２１に、ＦＡＴ１３２を記憶した（図３）。実施例２においては、ＦＡＴ１３２の代わりに、論理アドレス／物理アドレス変換テーブル９０１を管理領域１２１に記憶する（図９）。
実施例１においては、第１の未記録物理アドレステーブルは、全ての物理アドレス群の未記録物理アドレス群であるか否かの情報を記憶し、第２の未記録物理アドレステーブルは、１つの物理アドレス群に含まれる全ての物理アドレスのそれぞれが未記録物理アドレスであるか否かの情報を記憶した（図４）。実施例２においては、第１の未記録物理アドレステーブルは、未記録物理アドレス群のみのアドレスを記憶し、第２の未記録物理アドレステーブルは、未記録物理アドレスのみのアドレスを記憶する（図１０）。これ以外の点においては、実施例１と同一である。
【００３３】
図９は、論理アドレス／物理アドレス変換テーブルの構成を示す図である。フラッシュメモリ等の不揮発性メモリを用いた記憶装置においては、外部（例えばホスト装置であるデータ入出力装置）から指定される論理アドレスと、不揮発性メモリ内に配置される物理アドレスは一般的に一致しない。フラッシュメモリ等の不揮発性メモリにおいては、データを書き換える毎にデータを記録する物理アドレスを変える必要がある。ホスト装置がデータを記録した不揮発性メモリの物理アドレスを直接管理することは極めてわずらわしく困難である。不良が発生した物理アドレスを避けて使用する必要がある。特定の物理アドレスへの書き込みが頻発するシステムでは、その物理アドレスが短期間で書き換え保証回数を上回り、記憶装置が短寿命になってしまう、という不都合が生じる。
そこで、図９のように、外部から指定される論理アドレスが、どの物理アドレスに割り当てられているかを示す論理アドレス／物理アドレス変換テーブルを作成し、不揮発性メモリ１１２の管理領域１２１に格納する。
【００３４】
記憶装置１０１の制御部１１１が、データ入出力装置１０２からの論理アドレス１００を指定したデータの書き込み指令を入力すると、制御部１１１は実際にデータを書き込む物理アドレスを、第２の未記録物理アドレステーブルに基づいて決定する。不揮発性メモリ１１２は、決定された０３−１１の未記録物理アドレスに、ファイルから分割された最初のデータを書き込む。不揮発性メモリ１１２は、指定された論理アドレス１００と、実際にデータを書き込む物理アドレス０３−１１とを対応させ、論理アドレス／物理アドレス変換テーブル９０１に書き込む（９１１）。ファイルから分割された残りのデータは、第２の未記録物理アドレステーブルに基づいて決定されたデータ記録領域１２２の未記録物理アドレスに順に格納される。ファイルから分割されたデータを未記録物理アドレスに書き込む毎に、論理アドレス／物理アドレス変換テーブル９０１に、その論理アドレスと物理アドレスとを対応付けて書き込む。
【００３５】
図１０は、実施例２の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルの構成を示す図である。記憶装置１０１は起動時に、データ記録領域１２２の全ての物理アドレスを検索し、第１の未記録物理アドレステーブル１００１と第２の未記録物理アドレステーブル１００２及び１００３をＲＡＭ１１３上に生成する。
第１の未記録物理アドレステーブル１００１は、ｎ個の物理アドレス群のうち未記録物理アドレス群の番号のみを有する。ｍ個の物理アドレスを有する物理アドレス群が、少なくとも１つの未記録物理アドレスを有する場合、第１の未記録物理アドレステーブル１００１に、その物理アドレス群の番号を記憶する。テーブルの終端には、終端を示すＦＦＦ（１６進数表示）を挿入する。
【００３６】
第２の未記録物理アドレステーブル１００２及び１００３は、ｍ個の物理アドレスのうち未記録物理アドレスの番号のみを有する。終端にＦＦＦ（１６進数表示）を挿入する。記憶装置１０１は起動時に、少なくとも１つの未記録物理アドレスを有する物理アドレス群について、第２の未記録物理アドレステーブルをＲＡＭ１１３上に生成する。第２の未記録物理アドレステーブル１００２及び１００３は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【００３７】
データの書き込みが発生した場合、第２の未記録物理アドレステーブルを用いて、未記録物理アドレスを決定し、データを書き込む。記録済みになった物理アドレスは、第２の未記録物理アドレステーブルから削除し、次の物理アドレス群について新たな第２の未記録物理アドレステーブルを生成する。
データの消去が発生した場合、消去した物理ブロックを含む物理アドレス群を第１の未記録物理アドレステーブルに記憶する。その物理アドレス群の第２の未記録物理アドレステーブルがＲＡＭ１１３に有る場合は、消去した物理アドレスを、第２の未記録物理アドレステーブルに書き込む。
【００３８】
《実施例３》
図１１を用いて、実施例３の記憶装置及びその制御方法を説明する。
実施例１及び実施例２においては、第１の未記録物理アドレステーブルは、記憶装置１０１の起動時にＲＡＭ１１３上に生成された。ＲＡＭは電源を切るとデータの内容を保持できないので、電源を入れる度に第１の未記録物理アドレステーブルを生成しなければならない。不揮発性メモリは、電源が無くてもデータを保持できる。実施例３においては、第１の未記録物理アドレステーブルは、不揮発性メモリ１１２に記憶する。これ以外の点においては、実施例１又は実施例２と同一である。
【００３９】
図１１は、実施例３の起動時の記憶装置１０１の制御方法を示すフローチャートである。記憶装置１０１を起動する（ステップ１１０１）。記憶装置１０１は不揮発性メモリ１１２から第１の未記録物理アドレステーブルを読み出す（ステップ１１０２）。記憶装置１０１は、第１の未記録物理アドレステーブルの未記録物理アドレス群の中から、所定の数（実施例においては２つ）の物理アドレス群について、データ記録領域１２２の物理アドレスを検索し、第２の未記録物理アドレステーブルをＲＡＭ１１３上に生成する（ステップ１１０３）。
【００４０】
記憶装置１０１は、第１の未記録物理アドレステーブルを不揮発性メモリ１１２に持つことにより、起動時にデータ記録領域１２２の全ての物理アドレスを検索する必要がなくなる。少なくとも１つ（実施例では２つ）の未記録物理アドレス群に含まれる物理アドレスを検索するだけですむので、起動時の立ち上がりが早い。
【００４１】
【発明の効果】
本発明によれば、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のＲＡＭを有する安価な記憶装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、短時間で起動する記憶装置及びその制御方法を実現できるという有利な効果が得られる。
【図面の簡単な説明】
【図１】本発明の記憶装置の構成を示すブロック図
【図２】複数の物理アドレスを有する本発明の実施例の物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域１２２とを示す図
【図３】ディレクトリエントリ及びＦＡＴの構成を示す図
【図４】本発明の実施例１の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルの構成を示す図
【図５】図５（ａ）は初期化時の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルを示す図、図５（ｂ）は更新後の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルを示す図
【図６】本発明の実施例１の起動時の記憶装置１０１の制御方法を示すフローチャート
【図７】本発明の実施例１のデータの書き込み時の記憶装置１０１の制御方法を示すフローチャート
【図８】本発明の実施例１のデータの消去時の記憶装置１０１の制御方法を示すフローチャート
【図９】論理アドレス／物理アドレス変換テーブルの構成を示す図
【図１０】本発明の実施例２の第１の未記録物理アドレステーブル及び第２の未記録物理アドレステーブルの構成を示す図
【図１１】本発明の実施例３の起動時の記憶装置１０１の制御方法を示すフローチャート
【図１２】従来例の記憶装置の構成を示すブロック図
【図１３】従来例の未記録物理アドレステーブルの構成を示す図
【符号の説明】
１０１、１２０１　　記憶装置
１０２　　データ入出力装置
１１１　　制御部
１１２　　不揮発性メモリ
１１３　　ＲＡＭ
１３１　　ディレクトリエントリ
１３２　　ＦＡＴ
１４１　　第１の未記録物理アドレステーブル
１４２、１４３　　第２の未記録物理アドレステーブル
１３０１　従来例の未記録物理アドレステーブル
【図１】
2004126945.tif 000003
【図２】
2004126945.tif 000004
【図３】
2004126945.tif 000005
【図４】
2004126945.tif 000006
【図５】
2004126945.tif 000007
【図６】
2004126945.tif 000008
【図７】
2004126945.tif 000009
【図８】
2004126945.tif 000010
【図９】
2004126945.tif 000011
【図１０】
2004126945.tif 000012
【図１１】
2004126945.tif 000013
【図１２】
2004126945.tif 000014
【図１３】
2004126945.tif 000015