(57)【要約】【課題】ＮＡＮＤフラッシュメモリが使用できるようになるまでの時間を短縮する。【解決手段】ＦＡＴ書き込み部１８は、アロケーションテーブルを、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む。探索部１１は、リーダライタ装置１の起動時に、ＮＡＮＤフラッシュメモリの最上位のアドレスから順に使用可能なブロックを探索する。ＦＡＴ読み出し部１２は、探索部１１が探索したブロックからアロケーションテーブルを読み出す。【選択図】図１
2012088884.tif 000002
【特許請求の範囲】
【請求項１】
所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置であって、
前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込むデータ書き込み部と、
前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新する更新部と、
前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む管理情報書き込み部と、
前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索する探索部と、
前記探索部が探索したブロックから前記ファイル管理情報を読み出す管理情報読み出し部と
を備えることを特徴とするリーダライタ装置。
【請求項２】
前記管理情報書き込み部は、前記ファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロック、及び当該ブロックの次に上位のアドレスに対応するブロックに書き込み、
前記管理情報読み出し部が、前記探索部が探索したブロックからの前記ファイル管理情報の読み出しに失敗した場合に、前記探索部が探索したブロックの次に上位の使用可能なブロックを探索する二次探索部と、
前記二次探索部が探索したブロックから前記ファイル管理情報を読み出す管理情報二次読み出し部と
を備えることを特徴とする請求項１に記載のリーダライタ装置。
【請求項３】
所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置を用いたデータ管理方法であって、
データ書き込み部は、前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込み、
更新部は、前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新し、
管理情報書き込み部は、前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込み、
探索部は、前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索し、
管理情報読み出し部は、前記探索部が探索したブロックから前記ファイル管理情報を読み出す
ことを特徴とするデータ管理方法。
【請求項４】
所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置を、
前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込むデータ書き込み部、
前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新する更新部、
前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む管理情報書き込み部、
前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索する探索部、
前記探索部が探索したブロックから前記ファイル管理情報を読み出す管理情報読み出し部
として機能させるためのプログラム。
【請求項５】
所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体であって、
前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに記憶する
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置、データ管理方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
リーダライタ装置がＮＡＮＤフラッシュメモリにアクセスする際、当該ＮＡＮＤフラッシュメモリへのアクセスに供する情報であるアロケーションテーブルを用いて、ＮＡＮＤフラッシュメモリに対する読み出し処理及び書き込み処理を行う。リーダライタ装置は、ＮＡＮＤフラッシュメモリにアクセスする際、一般にＮＡＮＤフラッシュメモリの各ブロックの先頭に格納されているブロックの詳細情報を、全てのブロックから読み出してアロケーションテーブルを作成する。そのため、リーダライタ装置は、ＮＡＮＤフラッシュメモリへのアクセスを開始する前に、アロケーションテーブルを作成する時間がかかってしまうという問題があった。
【０００３】
この問題を解決する方法として、特許文献１〜３には、アロケーションテーブル等のファイル管理情報を予めＮＡＮＤフラッシュメモリに記憶しておく技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３０８２４１号公報
【特許文献２】特開２００４−２８０７５２号公報
【特許文献３】特開２００８−１７１２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１〜３に記載の方法を用いたとしても、リーダライタ装置がファイル管理情報を発見するために、ファイル管理情報が何処に記憶されているかを調査する必要があるため、多くのデータ読出しを行なう必要があった。そのため、ＮＡＮＤフラッシュメモリ等の記憶媒体を使用した携帯機器は、機器の電源投入から使用できるようになるまでの準備に時間がかかってしまうという問題があった。
【課題を解決するための手段】
【０００６】
本発明は上記の課題を解決するためになされたものであり、所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置であって、前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込むデータ書き込み部と、前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新する更新部と、前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む管理情報書き込み部と、前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索する探索部と、前記探索部が探索したブロックから前記ファイル管理情報を読み出す管理情報読み出し部とを備えることを特徴とする。
【０００７】
また、本発明は、所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置を用いたデータ管理方法であって、データ書き込み部は、前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込み、更新部は、前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新し、管理情報書き込み部は、前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込み、探索部は、前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索し、管理情報読み出し部は、前記探索部が探索したブロックから前記ファイル管理情報を読み出すことを特徴とする。
【０００８】
また、本発明は、所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体に対して読み出し処理及び書き込み処理を行うリーダライタ装置を、前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を用いて、前記記憶媒体にデータを書き込むデータ書き込み部、前記データ書き込み部が前記記憶媒体にデータを書き込んだときに、前記ファイル管理情報を更新する更新部、前記更新部が更新したファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む管理情報書き込み部、前記リーダライタ装置の起動時に、前記記憶媒体の最上位のアドレスから順に使用可能なブロックを探索する探索部、前記探索部が探索したブロックから前記ファイル管理情報を読み出す管理情報読み出し部として機能させるためのプログラムである。
【０００９】
また、本発明は、所定の容量のデータを記憶できるブロックが複数設定されたデータ領域を複数有する記憶媒体であって、前記記憶媒体の各データ領域へのアクセスに用いるアドレス情報であるファイル管理情報を、前記記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックに記憶することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、リーダライタ装置は、記憶媒体にファイル管理情報を書き込む際、記憶媒体の使用可能なブロックのうち、最上位のアドレスに対応するブロックにファイル管理情報を書き込む。他方、リーダライタ装置は、記憶媒体からファイル管理情報を読み出す際、記憶媒体の最上位のアドレスから順に使用可能なブロックを探索し、探索したブロックからファイル管理情報を読み出す。
このように、本発明によれば、リーダライタ装置がファイル管理情報を発見するために、ファイル管理情報が何処に記憶されているかを調査する必要がないため、記憶媒体が使用できるようになるまでの時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態によるリーダライタ装置の構成を示す概略ブロック図である。
【図２】ＮＡＮＤフラッシュメモリのブロック分類の例を示す図である。
【図３】ＮＡＮＤフラッシュメモリのアロケーションテーブルの例を示す図である。
【図４】リーダライタ装置の動作を示す第１のフローチャートである。
【図５】リーダライタ装置の動作を示す第２のフローチャートである。
【図６】ＮＡＮＤフラッシュメモリの更新後のアロケーションテーブルの例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるリーダライタ装置の構成を示す概略ブロック図である。
本実施形態によるリーダライタ装置１は、ＮＡＮＤフラッシュメモリ（記憶媒体）に対する読み出し処理及び書き込み処理を実行する装置であり、ＮＡＮＤフラッシュメモリが記憶するプログラムを携帯機器のＣＰＵが実行することで実現する。
リーダライタ装置１は、探索部１１（二次探索部）、ＦＡＴ読み出し部１２（管理情報読み出し部、管理情報二次読み出し部）、ＦＡＴ生成部１３、ＦＡＴ記憶部１４、データ読み出し部１５、データ書き込み部１６、更新部１７、ＦＡＴ書き込み部１８（管理情報書き込み部）を備える。なお、ＦＡＴとは、アロケーションテーブル（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ、ファイル管理情報）の略語である。
【００１３】
探索部１１は、リーダライタ装置１の起動時に、ＮＡＮＤフラッシュメモリの最上位のアドレスから順に、使用可能なブロックを探索する。
ＦＡＴ読み出し部１２は、探索部１１が探索したブロックからアロケーションテーブルを読み出し、当該アロケーションテーブルをＦＡＴ記憶部１４に記録する。なお、アロケーションテーブルとは、ＮＡＮＤフラッシュメモリの各データ領域へのアクセスに用いるアドレス情報である。
ＦＡＴ生成部１３は、ＦＡＴ読み出し部１２がアロケーションテーブルを読み出せなかった場合にアロケーションテーブルを生成し、当該アロケーションテーブルをＦＡＴ記憶部１４に記録する。
ＦＡＴ記憶部１４は、ＦＡＴ読み出し部１２が読み出したアロケーションテーブル、またはＦＡＴ生成部１３が生成したアロケーションテーブルを記憶する。
【００１４】
データ読み出し部１５は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを用いてＮＡＮＤフラッシュメモリからデータを読み出す。
データ書き込み部１６は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを用いてＮＡＮＤフラッシュメモリにデータを書き込む。
更新部１７は、データ書き込み部１６がＮＡＮＤフラッシュメモリにデータを書き込んだときに、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する。
ＦＡＴ書き込み部１８は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込む。
【００１５】
リーダライタ装置１は、ＮＡＮＤフラッシュメモリに対してページ単位で書き込み処理及び読み出し処理を行う。なお、ページとは、複数のビットの集合であり、書き込み処理及び読み出し処理の最小単位である。また、リーダライタ装置１は、ＮＡＮＤフラッシュメモリに対してブロック単位でデータの消去を行う。なお、ブロックとは、複数のページの集合であり、データ消去処理の最小単位である。
【００１６】
図２は、ＮＡＮＤフラッシュメモリのブロック分類の例を示す図である。
リーダライタ装置１は、ＮＡＮＤフラッシュメモリの各ブロックを用途ごとにエリア（データ領域）として分類し、当該エリアに対して処理を実行する。携帯機器で使用するＮＡＮＤフラッシュメモリにおいては、携帯機器を動作させるプログラムを格納するプログラムエリアとデータを格納するデータエリアとが必要とされる。また、プログラムやデータは、随時追加されるため、プログラムエリア及びデータエリアには、まだ使用していない予備ブロック（未使用ブロック）も必要となる。
図２では、各エリアのブロック番号が連続（例えばブロック０〜１０２３、ブロック１０２４〜４０１４）するように表記しているが、アロケーションテーブルがしっかり管理されていれば、特に連続することは必須ではない。
【００１７】
図３は、ＮＡＮＤフラッシュメモリのアロケーションテーブルの例を示す図である。
ＦＡＴ記憶部１４には、ＮＡＮＤフラッシュメモリのブロックがどのように使われ、配置されているかを示すアロケーションテーブルが記憶されている。
アロケーションテーブルには、各ブロックのアドレスに関連付けて当該ブロックの状態を示す情報が格納される。状態を示す情報としては、ＶＢ（Ｖａｌｉｄ  Ｂｌｏｃｋ：有効なブロック）、ＩＢ（Ｉｎｖａｌｉｄ  Ｂｌｏｃｋ：無効で使用できない、または、使用できなくなったブロック）、Ｐ（Ｐｒｏｇｒａｍ：プログラムが入ったブロック）、Ｄ（Ｄａｔａ：データが入ったブロック）、Ｒ（Ｒｅｓｅｒｖｅ：未使用または再利用可能なブロック）、ＡＴ（Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ：アロケーションテーブルを記憶したブロック）がある。
【００１８】
具体的には、ＮＡＮＤフラッシュメモリのブロック０は有効なブロックであり、あるプログラムの一部であるプログラムＰ０を記憶する。ＮＡＮＤフラッシュメモリが記憶するプログラムは、ブロック０からブロック１０２３までを占有する。なお、ブロック５０９はＩｎｖａｌｉｄ  Ｂｌｏｃｋである。このため、本来ブロック５０９に書き込まれるプログラムＰ５０９は、予備ブロックであるブロック４０１４に置換される。
【００１９】
また、ＮＡＮＤフラッシュメモリのブロック１０２４は有効なブロックであり、あるデータの一部であるデータＤ０を記憶する。ＮＡＮＤフラッシュメモリが記憶するデータは、ブロック１０２４からブロック３０７８までを占有する。なお、ブロック１０２９、ブロック３０７４、ブロック３０７５はＩｎｖａｌｉｄ  Ｂｌｏｃｋである。このため、本来ブロック１０２９、ブロック３０７４、ブロック３０７５に書き込まれるべきデータＤ５、Ｄ２０５０、Ｄ２０５１は、それぞれブロック４０１５、ブロック４０１６、ブロック４０１８に置換される。なお、データＤ２０５１は、本来ブロック４０１７に置換されるが、ブロック４０１７がＩｎｖａｌｉｄ  Ｂｌｏｃｋなので、ブロック４０１８に置換される。
【００２０】
図３に示すアロケーションテーブルは、ＮＡＮＤフラッシュメモリの使用可能なブロック（ＩＢでないブロック）のうち、最上位のアドレスに関連付けられたブロックであるブロック４０９５に書き込まれる。また、ブロック４０９５に書き込まれたアロケーションテーブルと同じ内容のアロケーションテーブルは、ブロック４０９５の次に上位の使用可能なブロックであるブロック４０９４に書き込まれる。
【００２１】
次に本実施形態によるリーダライタ装置１の動作を説明する。
図４は、リーダライタ装置１の動作を示す第１のフローチャートである。
携帯機器が起動し、携帯機器のＣＰＵがＮＡＮＤフラッシュメモリのブロック０に格納されたプログラムを実行すると、探索部１１は、ＮＡＮＤフラッシュメモリの最上位のアドレスから順に使用可能なブロックを探索する（ステップＳ１）。次に、ＦＡＴ読み出し部１２は、探索部１１によって探索されたブロックに格納されたデータがアロケーションテーブルであるか否かを判定する（ステップＳ２）。
【００２２】
ＦＡＴ読み出し部１２は、探索部１１によって探索されたブロックに格納されたデータがアロケーションテーブルであると判定した場合（ステップＳ２：ＹＥＳ）、当該アロケーションテーブルをＦＡＴ記憶部１４に記録する（ステップＳ３）。以降、データ読み出し部１５及びデータ書き込み部１６は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを参照して、必要なプログラム、データをＮＡＮＤフラッシュメモリから読み出して携帯機器の電源投入時の処理を行う（ステップＳ４）。
【００２３】
他方、ＦＡＴ読み出し部１２が、探索部１１によって探索されたブロックにアロケーションテーブルが格納されていないと判定した場合（ステップＳ２：ＮＯ）、探索部１１は、ステップＳ１で探索したブロックの次に上位の使用可能なブロックを探索する（ステップＳ５）。次に、次に、ＦＡＴ読み出し部１２は、探索部１１によって探索されたブロックに格納されたデータがアロケーションテーブルであるか否かを判定する（ステップＳ６）。
【００２４】
ＦＡＴ読み出し部１２は、ステップＳ５で探索部１１によって探索されたブロックに格納されたデータがアロケーションテーブルであると判定した場合（ステップＳ６：ＹＥＳ）、当該アロケーションテーブルをＦＡＴ記憶部１４に記録する（ステップＳ７）。以降、データ読み出し部１５及びデータ書き込み部１６は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを参照して、必要なプログラム、データをＮＡＮＤフラッシュメモリから読み出して携帯機器の電源投入時の処理を行う（ステップＳ４）。
【００２５】
他方、ＦＡＴ読み出し部１２が、ステップＳ５で探索されたブロックにアロケーションテーブルが格納されていないと判定した場合（ステップＳ６：ＮＯ）、ＦＡＴ生成部１３は、ＮＡＮＤフラッシュメモリの全ブロックを検索し、新たなアロケーションテーブルを作成する（ステップＳ８）。次に、ＦＡＴ書き込み部１８は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに対応するブロック、及び当該ブロックの次に上位のアドレスに対応するブロックに書き込む（ステップＳ９）。このとき、書き込みの対象となるブロックに既にデータが記録されている場合、当該ブロックに対して消去処理を実行してから書き込みを行う。以降、データ読み出し部１５及びデータ書き込み部１６は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを参照して、必要なプログラム、データをＮＡＮＤフラッシュメモリから読み出して携帯機器の電源投入時の処理を行う（ステップＳ４）。
【００２６】
上記処理により、ＮＡＮＤフラッシュメモリにアロケーションテーブルが格納されている場合、リーダライタ装置１は、アロケーションテーブルがＮＡＮＤフラッシュメモリの何処に記憶されているかを調査せずに、アロケーションテーブルを読み出すことができる。これにより、記憶媒体が使用できるようになるまでの時間を短縮することができる。
【００２７】
次に、データ書き込み部１６の処理により、ＮＡＮＤフラッシュメモリのエリア構成が変わったときの動作を説明する。
図５は、リーダライタ装置１の動作を示す第２のフローチャートである。
ＮＡＮＤフラッシュメモリのデータ更新が必要となった場合、更新部１７は、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する（ステップＳ１１）。このとき、ＮＡＮＤフラッシュメモリの最上位アドレスを内部メモリに記憶しておく。次に、データ書き込み部１６は、ＮＡＮＤフラッシュメモリのデータ更新を行なうブロックにデータを書き込む（ステップＳ１２）。
【００２８】
次に、ＦＡＴ書き込み部１８は、ＮＡＮＤフラッシュメモリが記憶するアロケーションテーブルを更新するため、内部メモリが記憶するＮＡＮＤフラッシュメモリの最上位アドレスに関連付けられたブロックの情報を消去する（ステップＳ１３）。次に、ＦＡＴ書き込み部１８は、消去が正常に行なわれたか否かを確認する（ステップＳ１４）。
【００２９】
ＦＡＴ書き込み部１８が、消去が正常に完了しなかったと判定した場合（ステップＳ１４：ＮＯ）、更新部１７は、当該ブロックをＩｎｖａｌｉｄ  Ｂｌｏｃｋに設定し、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する（ステップＳ１５）。このとき、内部メモリが記憶する最上位のアドレスを、現在の値から１を減じた値に書き換え、ステップＳ１３に戻る。
【００３０】
他方、ＦＡＴ書き込み部１８は、正常に消去が行われたと判定した場合（ステップＳ１４：ＹＥＳ）、内部メモリが記憶するＮＡＮＤフラッシュメモリの最上位アドレスに関連付けられたブロックに、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを書き込む（ステップＳ１６）。次に、ＦＡＴ書き込み部１８は、書き込みが正常に行なわれたか否かを確認する（ステップＳ１７）。
【００３１】
ＦＡＴ書き込み部１８が、書き込みが正常に完了しなかったと判定した場合（ステップＳ１７：ＮＯ）、更新部１７は、当該ブロックをＩｎｖａｌｉｄ  Ｂｌｏｃｋに設定し、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する（ステップＳ１５）。このとき、内部メモリが記憶する最上位のアドレスを、現在の値から１を減じた値に書き換え、ステップＳ１３に戻る。
【００３２】
他方、ＦＡＴ書き込み部１８は、正常に書き込みが行われたと判定した場合（ステップＳ１７：ＹＥＳ）、次に、ＦＡＴ書き込み部１８は、ＮＡＮＤフラッシュメモリが記憶するアロケーションテーブルを更新するため、内部メモリが記憶するＮＡＮＤフラッシュメモリの最上位アドレスから１を減じたアドレスに関連付けられたブロックの情報を消去する（ステップＳ１８）。次に、ＦＡＴ書き込み部１８は、消去が正常に行なわれたか否かを確認する（ステップＳ１９）。
【００３３】
ＦＡＴ書き込み部１８が、消去が正常に完了しなかったと判定した場合（ステップＳ１９：ＮＯ）、更新部１７は、当該ブロックをＩｎｖａｌｉｄ  Ｂｌｏｃｋに設定し、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する（ステップＳ２０）。このとき、内部メモリが記憶する最上位のアドレスを、現在の値から１を減じた値に書き換え、ステップＳ１８に戻る。
【００３４】
他方、ＦＡＴ書き込み部１８は、正常に消去が行われたと判定した場合（ステップＳ１９：ＹＥＳ）、内部メモリが記憶するＮＡＮＤフラッシュメモリの最上位アドレスから１を減じたアドレスに関連付けられたブロックに、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを書き込む（ステップＳ２１）。次に、ＦＡＴ書き込み部１８は、書き込みが正常に行なわれたか否かを確認する（ステップＳ２２）。
【００３５】
ＦＡＴ書き込み部１８が、書き込みが正常に完了しなかったと判定した場合（ステップＳ２２：ＮＯ）、更新部１７は、当該ブロックをＩｎｖａｌｉｄ  Ｂｌｏｃｋに設定し、ＦＡＴ記憶部１４が記憶するアロケーションテーブルを更新する（ステップＳ２０）。このとき、内部メモリが記憶する最上位のアドレスを、現在の値から１を減じた値に書き換え、ステップＳ１８に戻る。
他方、ＦＡＴ書き込み部１８は、正常に書き込みが行われたと判定した場合（ステップＳ２２：ＹＥＳ）アロケーションテーブルの書き込み処理を終了する。
【００３６】
次に、具体的な例を用いて、アロケーションテーブルの更新処理を説明する。ここでは、図３に示すブロック３０７８にデータＤ２０５４を書き込む際の処理を説明する。
図６は、ＮＡＮＤフラッシュメモリの更新後のアロケーションテーブルの例を示す図である。
新たにデータＤ２０５４をＮＡＮＤフラッシュメモリに追加する場合、更新部１７は、図６に示すように、ＦＡＴ記憶部１４が記憶するアロケーションテーブルのブロック３０７８を、未使用を示すＲからデータＤ２０５４に書き換える。次に、データ書き込み部１６は、アロケーションテーブルのブロック３０７８にデータＤ２０５４を書き込む。
【００３７】
次に、ＦＡＴ書き込み部１８は、最上位アドレスに関連付けられたブロックであるブロック４０９５の情報を消去する。消去中でエラーが発生して消去を失敗した場合、更新部１７は、そのブロックをＩｎｖａｌｉｄ  Ｂｌｏｃｋにして、最上位のアドレスから１を減じたアドレスに関連付けられたブロックであるブロック３０７７の情報を消去し、当該ブロックにアロケーションテーブルを書き込む。ＦＡＴ書き込み部１８は、同様にブロック３０７６にもアロケーションテーブルを書き込む。
【００３８】
このように、本実施形態によれば、アロケーションテーブルは、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに対応するブロックに書き込まれる。また、リーダライタ装置１は、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスを読み出すことで、アロケーションテーブルがＮＡＮＤフラッシュメモリの何処に記憶されているかを調査せずに、アロケーションテーブルを読み出すことができる。これにより、ＮＡＮＤフラッシュメモリが使用できるようになるまでの時間を短縮することができる。
【００３９】
また、本実施形態によれば、ＦＡＴ書き込み部１８は、アロケーションテーブルを、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに対応するブロック、及び当該ブロックの次に上位のアドレスに対応するブロックに書き込む。これにより、ＮＡＮＤフラッシュメモリの使用可能なブロックのうち、最上位のアドレスに格納されたアロケーションテーブルが何らかの原因で読み出せなくなった場合にも、ＦＡＴ読み出し部１２が、最上位のアドレスの次に上位のアドレスに対応するブロックを参照することで、アロケーションテーブルを読み出すことができる。
【００４０】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、ＮＡＮＤフラッシュメモリに、アロケーションテーブルを２つ記憶させる場合を説明したが、これに限られず、３つ以上記憶させても良い。
【００４１】
なお、上述したように、リーダライタ装置１は、ＮＡＮＤフラッシュメモリが記憶するプログラムを携帯機器のＣＰＵが実行することで構成されるものである。なお、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００４２】
１…リーダライタ装置  １１…探索部  １２…ＦＡＴ読み出し部  １３…ＦＡＴ生成部  １４…ＦＡＴ記憶部  １５…データ読み出し部  １６…データ書き込み部  １７…更新部  １８…ＦＡＴ書き込み部
【図１】
2012088884.tif 000003
【図２】
2012088884.tif 000004
【図３】
2012088884.tif 000005
【図４】
2012088884.tif 000006
【図５】
2012088884.tif 000007
【図６】
2012088884.tif 000008