(57)【要約】      （修正有）【課題】  論理／物理変換テーブルの作成に要する時間を短縮する。【解決手段】  書替可能な不揮発性の記憶デバイスには、各々物理アドレスが付与された記憶ブロックが複数設けられており、有効なデータを記憶している有効な記憶ブロック内の特定領域には、該記憶ブロックに付与された論理アドレスが書き込まれる。この記憶デバイスが接続される機器は、電源が投入されると、記憶デバイスの有効な記憶ブロックに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成する。ここで、特定ブロック（物理アドレス０の記憶ブロック）には有効な記憶ブロックの数（図では「５」）が書き込まれており、論理／物理変換テーブルの作成時には、各記憶ブロックに順にアクセスし、読み出した論理アドレスの数が有効ブロック数に達した時点でアクセスを終了する。【選択図】        図７
2006127242.tif 000002
【特許請求の範囲】
【請求項１】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、
稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、
稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている記憶ブロックの個数を表す個数情報を前記記憶デバイスに書き込む書込手段と、
を備え、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた個数情報を読み出し、前記記憶デバイスから読み出した論理アドレスの個数が前記個数情報が表す個数に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了する
ことを特徴とする記憶デバイス制御装置。
【請求項２】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、
稼働開始毎に、前記複数の記憶ブロックに一定順序でアクセスして前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、
稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記一定順序に対応する記憶ブロックの配列のうち、前記論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報を前記記憶デバイスに書き込む書込手段と、
を備え、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた範囲情報を読み出し、読み出した範囲情報に前記先頭位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しを前記先頭位置情報が表す先頭位置から開始し、読み出した範囲情報に前記末尾位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しが前記末尾位置情報が表す末尾位置に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了する
ことを特徴とする記憶デバイス制御装置。
【請求項３】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、
稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、
稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報を前記記憶デバイスに書き込むと共に、前記一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、前記一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報を書き込む書込手段と、
を備え、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた前記先頭の記憶ブロックの位置を表す位置情報を読み出した後に、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、前記一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出す
ことを特徴とする記憶デバイス制御装置。
【請求項４】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、
稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、
及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている記憶ブロックの個数を表す個数情報を前記記憶デバイスに書き込む書込手段
として機能させると共に、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた個数情報を読み出し、前記記憶デバイスから読み出した論理アドレスの個数が前記個数情報が表す個数に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了する
ことを特徴とする記憶デバイス制御プログラム。
【請求項５】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、
稼働開始毎に、前記複数の記憶ブロックに一定順序でアクセスして前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、
及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記一定順序に対応する記憶ブロックの配列のうち、前記論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報を前記記憶デバイスに書き込む書込手段
として機能させると共に、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた範囲情報を読み出し、読み出した範囲情報に前記先頭位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しを前記先頭位置情報が表す先頭位置から開始し、読み出した範囲情報に前記末尾位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しが前記末尾位置情報が表す末尾位置に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了する
ことを特徴とする記憶デバイス制御プログラム。
【請求項６】
各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、
稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、
及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報を前記記憶デバイスに書き込むと共に、前記一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、前記一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報を書き込む書込手段
として機能させると共に、
前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた前記先頭の記憶ブロックの位置を表す位置情報を読み出した後に、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、前記一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出す
ことを特徴とする記憶デバイス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶デバイス制御装置及びプログラムに係り、特に、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置、及び、コンピュータを前記記憶デバイス制御装置として機能させるための記憶デバイス制御プログラムに関する。
【背景技術】
【０００２】
フラッシュメモリはデータの書き込み及び消去を電気的に行うことが可能な不揮発性メモリであり、例えばデジタルスチルカメラ（ＤＳＣ）で撮影された画像データ等を記録するための記録メディアに用いられたり、コンピュータのＢＩＯＳを記憶するためのメモリとして用いられる等、様々な分野で広範に用いられている。一般に、フラッシュメモリにはデータの書き込み及び消去の単位である記憶ブロックが複数設けられており、各記憶ブロックには物理アドレスが各々付与されているが、フラッシュメモリに対するデータの書込／消去回数には制限があるため、フラッシュメモリへのデータの書き込みに際しては、記憶ブロックへのデータの書き込みが必ずしも物理アドレスの昇順に行われるとは限らず、データの書き込みが特定の記憶ブロックに集中することを回避するために、連続するデータが物理アドレスがとびとびの記憶ブロックに分けて書き込まれることもある。
【０００３】
このため、フラッシュメモリが接続される機器（例えばフラッシュメモリ内蔵の記録メディアが挿入されるＤＳＣ）にはメモリ制御部が設けられており、このメモリ制御部は、上位のアプリケーション・プログラムがフラッシュメモリに対してデータの読み出し等を行う際に、読出対象のデータが書き込まれている記憶ブロックの位置（物理アドレス）を認識して指定する等の煩雑な処理を不要とするために、フラッシュメモリに設けられている各記憶ブロックのうち、有効なデータを書き込んだ記憶ブロックに論理アドレスを付与し、付与した論理アドレスを対応する記憶ブロックの特定領域に書き込む処理を行う。
【０００４】
また、フラッシュメモリがアクセス可能な状態になると（例えば機器の電源が投入されていると共にフラッシュメモリが接続されている状態になると）、メモリ制御部はフラッシュメモリに設けられている全ての記憶ブロックに順にアクセスし、論理アドレスが書き込まれている記憶ブロックを発見する毎に、発見した記憶ブロックから論理アドレスを読み出し、前記記憶ブロックの物理アドレスと共にテーブルへ登録することで、有効なデータが書き込まれている記憶ブロックの論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成する。この論理／物理変換テーブルは、フラッシュメモリに対してデータの読み出しや書き込みに際しての論理アドレスから物理アドレスへの変換に用いられる。
【０００５】
上記に関連して特許文献１には、ＰＣカードに内蔵されているメモリ部における所定のアドレスのブロック又はセクタ内に全ての欠陥セクタアドレスを製造時に格納しておき、格納された全ての欠陥セクタアドレスを用いて論理／物理アドレス変換テーブルを作成する技術が開示されている。
【特許文献１】特開平１１−３４５１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら近年、記録メディアは大容量化の傾向にあり、これに伴って記録メディアに内蔵されているフラッシュメモリの論理／物理変換テーブルの作成に要する時間が長時間化しているという問題がある。特にＤＳＣでは起動時間（電源投入から撮影可能状態となる迄の時間）の短縮が求められており、論理／物理変換テーブルの作成に時間がかかることは、ＤＳＣの起動時間の増大に繋がるので望ましくない。
【０００７】
また、特許文献１に記載の技術は、初期的な欠陥を或る割合で許容したメモリデバイス（ＭＧＭ：Mostly Good Memory）に適用することを前提とした技術であり、有効なデータを書き込んだ記憶ブロックに論理アドレスを付与すると共に、付与した論理アドレスを対応する記憶ブロックの特定領域に書き込む方式にこの技術を適用したとしても、初期的な欠陥が０又はごく僅かなフラッシュメモリに対しては論理／物理変換テーブルの作成に要する時間を短縮することは困難である。
【０００８】
本発明は上記事実を考慮して成されたもので、論理／物理変換テーブルの作成に要する時間を短縮できる記憶デバイス制御装置及び記憶デバイス制御プログラムを得ることが目的である。
【課題を解決するための手段】
【０００９】
上記目的を達成するために請求項１記載の発明に係る記憶デバイス制御装置は、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている記憶ブロックの個数を表す個数情報を前記記憶デバイスに書き込む書込手段と、を備え、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた個数情報を読み出し、前記記憶デバイスから読み出した論理アドレスの個数が前記個数情報が表す個数に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了することを特徴としている。
【００１０】
請求項１記載の発明に係る記憶デバイス制御装置に接続される記憶デバイスは、書替可能な不揮発性の記憶デバイス（例えばフラッシュメモリ）であり、各々物理アドレスが付与された記憶ブロックを複数備え、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる。また請求項１記載の発明では、稼働開始毎（例えば装置の電源が投入されると共に記憶デバイスが接続され記憶デバイスにアクセス可能な状態になる毎）に、テーブル作成手段により、記憶デバイスに書き込まれている論理アドレスが全て読み出され、論理アドレスを物理アドレスへ変換するための論理／物理変換テーブルが作成される。
【００１１】
また、請求項１記載の発明に係る書込手段は、稼働終了時（例えば装置の電源が切断されるか記憶デバイスとの接続が解除される時）又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、論理アドレスが付与されている記憶ブロックの個数を表す個数情報を記憶デバイスに書き込む。そして、前述のテーブル作成手段は、記憶デバイスからの論理アドレスの読み出しに先立ち、書込手段によって記憶デバイスに書き込まれた個数情報を読み出し、記憶デバイスから読み出した論理アドレスの個数が個数情報が表す個数に達した時点で記憶デバイスからの論理アドレスの読み出しを終了する。
【００１２】
このように、請求項１記載の発明では、テーブル作成手段によるアクセス順序で最後の記憶ブロックに論理アドレスが書き込まれていない限りは、書込手段によって記憶デバイスに書き込まれた個数情報に基づき、テーブル作成手段が全ての記憶ブロックにアクセスする前に、記憶デバイスに書き込まれている全ての論理アドレスの読み出しが終了したことを認識することができ、論理／物理変換テーブル作成のためにテーブル作成手段がアクセスする記憶ブロックの数を減らすことができる。従って、請求項１記載の発明によれば、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【００１３】
また、請求項２記載の発明に係る記憶デバイス制御装置は、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、稼働開始毎に、前記複数の記憶ブロックに一定順序でアクセスして前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記一定順序に対応する記憶ブロックの配列のうち、前記論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報を前記記憶デバイスに書き込む書込手段と、を備え、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた範囲情報を読み出し、読み出した範囲情報に前記先頭位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しを前記先頭位置情報が表す先頭位置から開始し、読み出した範囲情報に前記末尾位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しが前記末尾位置情報が表す末尾位置に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了することを特徴としている。
【００１４】
請求項２記載の発明では、稼働終了時又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、書込手段により、一定順序（テーブル作成手段による記憶ブロックのアクセス順序）に対応する記憶ブロックの配列のうち、論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報が記憶デバイスに書き込まれる。そしてテーブル作成手段は、記憶デバイスからの論理アドレスの読み出しに先立ち、書込手段によって記憶デバイスに書き込まれた範囲情報を読み出し、読み出した範囲情報に先頭位置情報が含まれている場合には、記憶デバイスからの論理アドレスの読み出しを先頭位置情報が表す先頭位置から開始し、読み出した範囲情報に末尾位置情報が含まれている場合には、記憶デバイスからの論理アドレスの読み出しが末尾位置情報が表す末尾位置に達した時点で記憶デバイスからの論理アドレスの読み出しを終了する。
【００１５】
このように、請求項２記載の発明では、書込手段によって記憶デバイスに先頭位置情報が書き込まれる場合、テーブル作成手段によるアクセス順序で先頭の記憶ブロックに論理アドレスが書き込まれていない限りは、前述の先頭位置情報に基づき、テーブル作成手段による記憶ブロックのアクセス順序に対応する記憶ブロックの配列のうち、先頭側に存在している論理アドレス未書込の記憶ブロックへのテーブル作成手段によるアクセスが省かれることになる。また、書込手段によって記憶デバイスに末尾位置情報が書き込まれる場合には、テーブル作成手段によるアクセス順序で末尾の記憶ブロックに論理アドレスが書き込まれていない限りは、前述の末尾位置情報に基づき、テーブル作成手段による記憶ブロックのアクセス順序に対応する記憶ブロックの配列のうち、末尾側に存在している論理アドレス未書込の記憶ブロックへのテーブル作成手段によるアクセスが省かれることになる。
【００１６】
従って、請求項２記載の発明についても、論理／物理変換テーブル作成のためにテーブル作成手段がアクセスする記憶ブロックの数を減らすことができ、論理／物理変換テーブルの作成に要する時間を短縮することができる。なお、請求項２記載の発明において、書込手段は、先頭位置情報及び末尾位置情報を各々書き込むことが望ましい。
【００１７】
また、請求項３記載の発明に係る記憶デバイス制御装置は、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続される記憶デバイス制御装置であって、稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段と、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報を前記記憶デバイスに書き込むと共に、前記一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、前記一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報を書き込む書込手段と、を備え、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた前記先頭の記憶ブロックの位置を表す位置情報を読み出した後に、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、前記一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出すことを特徴としている。
【００１８】
請求項３記載の発明では、稼働終了時又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、書込手段により、論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報が記憶デバイスに書き込まれると共に、一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報が書き込まれる。そしてテーブル作成手段は、記憶デバイスからの論理アドレスの読み出しに先立ち、書込手段によって記憶デバイスに書き込まれた先頭の記憶ブロックの位置を表す位置情報を読み出した後に、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出す。
【００１９】
このように、請求項３記載の発明では、テーブル作成手段が、論理アドレスが書き込まれている記憶ブロックのみをアクセスするので、論理／物理変換テーブル作成のためにテーブル作成手段がアクセスする記憶ブロックの数を減らすことができ、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【００２０】
また、請求項４記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている記憶ブロックの個数を表す個数情報を前記記憶デバイスに書き込む書込手段として機能させると共に、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた個数情報を読み出し、前記記憶デバイスから読み出した論理アドレスの個数が前記個数情報が表す個数に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了することを特徴としている。
【００２１】
請求項４記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、上記のテーブル作成手段及び書込手段として機能させるためのプログラムであるので、コンピュータが請求項４記載の発明に係る記憶デバイス制御プログラムを実行することにより、コンピュータが請求項１に記載の記憶デバイス制御装置として機能することになり、請求項１記載の発明と同様に、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【００２２】
また、請求項５記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、稼働開始毎に、前記複数の記憶ブロックに一定順序でアクセスして前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記一定順序に対応する記憶ブロックの配列のうち、前記論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報を前記記憶デバイスに書き込む書込手段として機能させると共に、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた範囲情報を読み出し、読み出した範囲情報に前記先頭位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しを前記先頭位置情報が表す先頭位置から開始し、読み出した範囲情報に前記末尾位置情報が含まれている場合には、前記記憶デバイスからの論理アドレスの読み出しが前記末尾位置情報が表す末尾位置に達した時点で前記記憶デバイスからの論理アドレスの読み出しを終了することを特徴としている。
【００２３】
請求項５記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、上記のテーブル作成手段及び書込手段として機能させるためのプログラムであるので、コンピュータが請求項５記載の発明に係る記憶デバイス制御プログラムを実行することにより、コンピュータが請求項２に記載の記憶デバイス制御装置として機能することになり、請求項２記載の発明と同様に、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【００２４】
また、請求項６記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、稼働開始毎に、前記記憶デバイスに書き込まれている論理アドレスを全て読み出し、論理アドレスと物理アドレスとを対応付ける論理／物理変換テーブルを作成するテーブル作成手段、及び、稼働終了時又は前記記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、前記論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報を前記記憶デバイスに書き込むと共に、前記一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、前記一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報を書き込む書込手段として機能させると共に、前記テーブル作成手段は、前記記憶デバイスからの論理アドレスの読み出しに先立ち、前記書込手段によって前記記憶デバイスに書き込まれた前記先頭の記憶ブロックの位置を表す位置情報を読み出した後に、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、前記一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出すことを特徴としている。
【００２５】
請求項６記載の発明に係る記憶デバイス制御プログラムは、各々物理アドレスが付与された記憶ブロックを複数備えると共に、有効なデータを記憶している記憶ブロック内の第１特定領域に該記憶ブロックに付与された論理アドレスが書き込まれる書替可能な不揮発性の記憶デバイスと接続されるコンピュータを、上記のテーブル作成手段及び書込手段として機能させるためのプログラムであるので、コンピュータが請求項６記載の発明に係る記憶デバイス制御プログラムを実行することにより、コンピュータが請求項３に記載の記憶デバイス制御装置として機能することになり、請求項３記載の発明と同様に、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【発明の効果】
【００２６】
以上説明したように請求項１及び請求項４記載の発明は、稼働終了時又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、論理アドレスが付与されている記憶ブロックの個数を表す個数情報を記憶デバイスに書き込んでおき、論理／物理変換テーブル作成時に、記憶デバイスから読み出した論理アドレスの個数が個数情報が表す個数に達した時点で記憶デバイスからの論理アドレスの読み出しを終了するようにしたので、論理／物理変換テーブルの作成に要する時間を短縮できる、という優れた効果を有する。
【００２７】
また、請求項２及び請求項５記載の発明は、稼働終了時又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、一定順序に対応する記憶ブロックの配列のうち、論理アドレスが付与されている記憶ブロックが存在している範囲内の先頭位置を表す先頭位置情報及び末尾位置を表す末尾位置情報の少なくとも一方を含む範囲情報を記憶デバイスに書き込んでおき、論理／物理変換テーブル作成時に、記憶デバイスに書き込まれた範囲情報に先頭位置情報が含まれている場合には、記憶デバイスからの論理アドレスの読み出しを先頭位置情報が表す先頭位置から開始し、範囲情報に末尾位置情報が含まれている場合には、記憶デバイスからの論理アドレスの読み出しが末尾位置情報が表す末尾位置に達した時点で記憶デバイスからの論理アドレスの読み出しを終了するようにしたので、論理／物理変換テーブルの作成に要する時間を短縮できる、という優れた効果を有する。
【００２８】
また、請求項３及び請求項６記載の発明は、稼働終了時又は記憶デバイスのうち論理アドレスが付与されている記憶ブロックの個数が変化した時に、論理アドレスが付与されている一連の記憶ブロックのうちの先頭の記憶ブロックの位置を表す位置情報を記憶デバイスに書き込むと共に、一連の記憶ブロックを構成する各記憶ブロック内の第２特定領域に、一連の記憶ブロックにおける次の記憶ブロックの位置を表す位置情報を書き込んでおき、論理／物理変換テーブル作成時に、先頭の記憶ブロックの位置を表す位置情報を読み出し、読み出した位置情報が表す位置に存在している記憶ブロックから論理アドレス及び位置情報を読み出すことを繰り返すことで、一連の記憶ブロックを構成する各記憶ブロックから論理アドレスを順に読み出すようにしたので、論理／物理変換テーブルの作成に要する時間を短縮できる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００３０】
〔第１実施形態〕
図１には、本第１実施形態に係る撮影記録装置１０が示されている。撮影記録装置１０の本体１２は略箱型とされ、図１（Ａ）に示すように、本体１２の正面側中央やや上寄りにレンズ１４が取付けられている。また、本体１２のレンズ１４の上方には、ユーザが撮影範囲等を目視で確認するための光学ファインダ１６と、補助光を発するためのストロボ１８と、マイクロフォン２０が各々取付けられている。ストロボ１８は、低照度であることが検出された場合や、ユーザによって発光が指示された場合に発光される。
【００３１】
また、本体１２の上面には、正面から見て左側にシャッターボタン２２が設けられており、本体１２の正面から見て左側の側面には、フラッシュメモリを内蔵した記録メディア６８（図２参照）を装填可能なスロット２４が設けられている。図１（Ｂ）に示すように、本体１２の背面の上方側には光学ファインダ１６と電源スイッチ２６が設けられており、左下方側には、反射型又は透過型のカラーＬＣＤ２８が取付けられている。また、ＬＣＤ２８の右側には、撮影モードの切り替えや各種の設定スイッチ３０が各々取付けられており、更にその右上方には動画像の撮影を行う際に操作される動画記録開始／停止ボタン３１が配設されている。
【００３２】
図２には撮影記録装置１０の電気系の構成が示されている。本体１２内部のレンズ１４の焦点位置に相当する位置には、エリアＣＣＤセンサ３４が配置されており、被写体を反射してレンズ１４に入射された光はエリアＣＣＤセンサ３４の受光面に結像される。エリアＣＣＤセンサ３４は、図示しないタイミング発生回路（図示省略）によって発生されたタイミング信号に同期したタイミングで駆動され、画像信号（受光面上にマトリクス状に配列された多数個の光電変換セルの各々における受光量を表す信号）を出力する。エリアＣＣＤセンサ３４の信号出力端には、Ａ／Ｄ変換器３６、画像信号処理回路３８が順に接続されている。エリアＣＣＤセンサ３４から出力された画像信号は、Ａ／Ｄ変換器３６によってデジタルの画像データに変換されて画像信号処理回路３８へ入力される。画像信号処理回路３８では、入力された画像データに対して色補正・γ補正等の各種処理を行う。
【００３３】
画像信号処理回路３８はバス４０に接続されており、このバス４０には、ＣＰＵ４２、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）４４、メディアＩ／Ｆ（インタフェース）部４６、ＹＣ処理回路４８、符号化回路５０、液晶／ビデオＩ／Ｆ部５６、メモリコントローラ６０が各々接続されていると共に、電源スイッチ２６・各種の設定スイッチ３０・シャッターボタン２２の半押しや全押し等の操作に応じて接点が切り替わるシャッタースイッチ（図示省略）等を含んで構成された操作部６２が接続されている。なお、図示は省略するが、ＣＰＵ４２はＲＯＭ、ＲＡＭ、入出力ポート等の周辺回路を含んで構成されており、液晶／ビデオＩ／Ｆ部５６にはＬＣＤ２８が、メモリコントローラ６０にはＳＤＲＡＭ（シンクロナスＤＲＡＭ）６４及びフラッシュＲＯＭ６６が各々接続されている。
【００３４】
なお、フラッシュＲＯＭ６６には、ＣＰＵ４２で各種の処理を実行するための各種の処理プログラムが予め記憶されており、各種の処理プログラムの中には、後述する稼働時処理を行うための稼働時プログラムが含まれている。この稼働時プログラムの中には、後述する論理／物理変換テーブル作成処理を行うための論理／物理変換テーブル作成プログラム、領域確保処理を行うための領域確保プログラム、領域解放処理を行うための領域解放プログラムが各々サブルーチンとして含まれている。これらの論理／物理変換テーブル作成プログラム、領域確保プログラム、領域解放プログラム（及び第３実施形態で説明する電源切断時処理を行うための電源切断時プログラム）は本発明に係る記憶デバイス制御プログラムに対応しており、ＣＰＵ４２がこれらのプログラムを実行することで、撮影記録装置１０は本発明に係る記憶デバイス制御装置として機能する。
【００３５】
画像の撮影時、画像信号処理回路３８から出力された画像データは液晶／ビデオＩ／Ｆ部５６に入力され、液晶／ビデオＩ／Ｆ部５６によって被写体が動画像としてＬＣＤ２８に表示される。ユーザによってシャッターボタン２２が半押しされると、ＣＰＵ４２は画像信号処理回路３８から出力された画像データのＡＦ評価値を演算し、ＡＦ評価値が最大となるようにレンズ１４のＡＦ機構を駆動するＡＦ処理を行うと共に、自動的に露出を決定するＡＥ処理を行う。そして、ユーザによってシャッターボタン２２が全押しされると、シャッターボタン２２が全押しされたタイミングで画像信号処理回路３８から出力された画像データが、メモリコントローラ６０を介してＳＤＲＡＭ６４に一時記憶され、ＹＣ処理回路４８によるＹ／Ｃ変換処理、符号化回路５０による符号化（圧縮）処理が順次行われた後に、メディアＩ／Ｆ部４６を介して記録メディア６８に画像データとして記録される。なお、上記処理におけるＳＤＲＡＭ６４と各回路間のデータ転送（ダイレクト・メモリ・アクセス）はＤＭＡＣ４４の制御下で行われる。
【００３６】
また、記録メディア６８に記録されている画像データが表す画像の再生（表示）が指示された場合には、記録メディア６８から画像データが読み出されて液晶／ビデオＩ／Ｆ部５６へ転送され、ＬＣＤ２８に画像が表示（再生）される。一方、ユーザによって操作部６２が操作されることでメニュー画面や各種の設定画面の表示が指示された場合、液晶／ビデオＩ／Ｆ部５６は、予めフラッシュＲＯＭ６６に記憶されている各種画面のデータのうち、表示対象の画面のデータを読み出してＬＣＤ２８に表示させる。
【００３７】
次に本実施形態の作用として、まず記録メディア６８について説明する。記録メディア６８は、書替可能な不揮発性の記憶デバイスとしてのフラッシュメモリを内蔵しており、図３に示すように、フラッシュメモリの記憶領域は複数個の記憶ブロックに分割され、個々の記憶ブロックには記憶ブロックの配列の昇順に物理アドレス0,1,2,…が予め固定的に付与されている。また、個々の記憶ブロック内の記憶領域はデータ領域と冗長部領域とに分割されており、データ領域は画像データ等の任意のデータを書き込み可能とされている。また、各記憶ブロックのうち、データ領域に有効なデータが書き込まれている記憶ブロックに対しては論理アドレスが付与され、論理アドレスが付与された記憶ブロック（データ領域に有効なデータが書き込まれている記憶ブロック：図３では「使用ブロック」と表記）の冗長部領域には付与された論理アドレスが書き込まれ、データ領域に有効なデータが書き込まれておらず論理アドレスが付与されていない記憶ブロック（図３では「未使用ブロック」と表記）の冗長部領域には、未使用ブロックであることを表す所定の記号が書き込まれる。
【００３８】
詳細は後述するが、撮影記録装置１０では電源が投入され記録メディア６８に対するアクセスが可能な状態になると論理／物理変換テーブル作成処理が行われ、記録メディア６８（のフラッシュメモリ）の各記憶ブロックのうち論理アドレスが付与されている全ての記憶ブロックについて、物理アドレスと論理アドレスを対応付けて登録した論理／物理変換テーブルが作成される。フラッシュＲＯＭ６６に記憶されＣＰＵ４２で実行される各種プログラムの中には変換プログラムが含まれており、より上位のアプリケーション・プログラムは論理アドレスを指定して記録メディア６８へのアクセスを指示し、指定された論理アドレスが前述の変換プログラムにより論理／物理変換テーブルに基づき対応する物理アドレスへ変換された後に、記録メディア６８への実際のアクセスが行われる。図４に物理空間として示すように、有効なデータが書き込まれている各記憶ブロックに付与される論理アドレスは必ずしも各記憶ブロックの実際の配列順とは一致しないが、上記のように、論理／物理変換テーブルにより論理アドレスを指定して記録メディア６８をアクセスすることが可能となることで、有効なデータが書き込まれている各記憶ブロックが論理アドレスの昇順に配列されているものと見なして（図４に示す論理空間を参照）記録メディア６８へのアクセスを行うことができる。
【００３９】
次に、ユーザによって電源スイッチ２６が操作されて撮影記録装置１０の電源が投入されたことを契機として、ＣＰＵ４２によって稼働時プログラムが実行されることで行われる稼働時処理について、図５のフローチャートを参照して説明する。ステップ１００では、記録メディア６８の挿入の有無を含む撮影記録装置１０の各部の状態チェックや、メモリをクリアする等の初期化処理が行われる。また、この初期化処理では、記録メディア６８が挿入されていることを確認すると、後述する論理／物理変換テーブル作成処理も行われる。次のステップ１０２ではユーザによって選択された処理モードを判定し、判定結果に応じて処理を分岐する。
【００４０】
ユーザによって選択された処理モードが被写体を撮影する撮影モードである場合は、ステップ１０２からステップ１０４へ移行し、ユーザの撮影操作に従って被写体を撮影する撮影処理を行う。また、この撮影処理では、撮影によって得られた画像データが記録メディア６８に書き込まれるが、記録メディア６８への画像データの書き込みに際し、有効な記憶ブロック（論理アドレスが付与されて論理／物理変換テーブルに登録されている記憶ブロック）の空き領域が不足していた場合は、後述する領域確保処理が行われることで、有効な記憶ブロックとして新たな記憶ブロックが確保される。また、ユーザによって選択された処理モードが画像表示モードである場合には、ステップ１０２からステップ１０６へ移行し、表示が指示された画像データを記録メディア６８から読み出してＬＣＤ２８に表示させる画像表示処理が行われる。また、ユーザによって選択された処理モードが画像消去モードである場合は、ステップ１０２からステップ１０８へ移行し、消去が指示された画像データを記録メディア６８から消去する画像消去処理が行われる。また、記録メディア６８からの画像データの消去に伴い、記録メディア６８の特定の記憶ブロックが有効なデータを一切記憶していない状態となった場合には、後述する領域解放処理が行われることで、当該記憶ブロックが有効な記憶ブロックから除外される。
【００４１】
ステップ１０４〜１０８の何れかの処理を行うとステップ１１０へ移行し、ユーザによって電源スイッチ２６が操作されることで撮影記録装置１０の電源切断が指示されたか否か判定する。判定が否定された場合はステップ１０２に戻り、ステップ１１０の判定が肯定される迄、ステップ１０２〜ステップ１１０を繰り返す。また、ステップ１１０の判定が肯定されるとステップ１１２へ移行し、撮影記録装置１０の電源切断に備えて必要な情報をフラッシュＲＯＭ６６に書き込む等の終了処理を行う。なお、本第１実施形態では記録メディア６８の特定の記憶ブロック（本実施形態では先頭(物理アドレス「０」)の記憶ブロックとする）のデータ領域に有効ブロック数（論理アドレスを付与している記憶ブロックの数、請求項１等に記載の個数情報に相当）を書き込んでおり、有効ブロックの数が増減する際、すなわち前述の領域確保処理又は領域解放処理が行われる際に上記の有効ブロック数が更新されるが(詳細は後述)、この有効ブロック数の更新は電源切断時にのみ行ってもよく、この場合はステップ１１２の終了処理で有効ブロック数の更新が同時に行われる。そして終了処理が完了すると、次のステップ１１４で撮影記録装置１０の電源が切断される。
【００４２】
次に、前述の初期化処理（図５のステップ１０２）の実行時に併せて実行される論理／物理変換テーブル作成処理について、図６のフローチャートを参照して説明する。なお、この論理／物理変換テーブル作成処理は請求項１，４に記載のテーブル作成手段に対応している。ステップ１２０ではメモリ（例えばＳＤＲＡＭ６４）に設けられた論理／物理変換テーブル記憶用の領域を初期化する。先にも説明したように、本第１実施形態では記録メディア６８の特定の記憶ブロックに有効ブロック数（論理アドレスを付与している記憶ブロックの数）を書き込んでおり（記録メディア６８全体が未使用の状態では初期値として０が書き込まれている）、次のステップ１２２では、記録メディア６８の特定の記憶ブロックから有効ブロック数を読み出す。またステップ１２４では、アドレスカウンタのカウント値及びブロックカウンタのカウント値を各々１に初期化する。
【００４３】
次のステップ１２６では、アドレスカウンタのカウント値が記録メディア６８の記憶ブロックの総数よりも大きいか否か判定する。判定が否定された場合はステップ１２８へ移行し、ブロックカウンタのカウント値がステップ１２２で読み出した有効ブロック数よりも大きいか否か判定する。なお、記録メディア６８全体が未使用状態の場合には、最初にステップ１２８の判定が行われた時点で判定が肯定される。この判定も否定された場合はステップ１３０へ移行し、物理アドレスがアドレスカウンタの現在のカウント値に一致している記憶ブロックにアクセスし、当該記憶ブロックの冗長部領域に記憶されている情報を論理アドレスとして読み出す。そしてステップ１３２では、ステップ１３０で読み出した論理アドレスが有効な論理アドレスか否か判定する。
【００４４】
前述のように、有効なデータが書き込まれている有効な記憶ブロックの冗長部領域には論理アドレスが書き込まれている一方、有効なデータが書き込まれていない記憶ブロック（未使用記憶ブロック）の冗長部領域には未使用を表す記号が書き込まれているので、ステップ１３２の判定は、アクセスした記憶ブロックが有効な記憶ブロックであれば肯定され、アクセスした記憶ブロックが未使用の記憶ブロックであれば否定される。ステップ１３２の判定が肯定された場合はステップ１３４へ移行し、ステップ１２０で初期化を行った論理／物理変換テーブルのうち、読み出した有効な論理アドレスに対応するエリアにアドレスカウンタのカウント値、すなわちアクセスした記憶ブロックの物理アドレスを書き込む。また、次のステップ１３６では、ブロックカウンタのカウント値に１を加算し、ステップ１３８へ移行する。一方、ステップ１３２の判定が否定された場合は何ら処理を行うことなくステップ１３８へ移行する。
【００４５】
ステップ１３８ではアドレスカウンタのカウント値に１を加算してステップ１２６に戻り、ステップ１２６又はステップ１２８の判定が肯定される迄、ステップ１２６〜ステップ１３８を繰り返す。そして、ステップ１２６又はステップ１２８の判定が肯定されると処理を終了する。
【００４６】
上述した論理／物理変換テーブル作成処理では、物理アドレスの昇順で末尾の記憶ブロックが有効な記憶ブロックであった場合には、全ての記憶ブロックが順にアクセスされて論理／物理変換テーブルが作成された後に、ステップ１２６の判定が肯定されて処理を終了するので、論理／物理変換テーブルの作成に要する時間は従来と変わらないが、物理アドレスの昇順で末尾の記憶ブロック等が未使用の記憶ブロックであった場合には、全ての記憶ブロックが順にアクセスされる前にブロックカウンタのカウント値が有効ブロック数を超えることで、ステップ１２８の判定が肯定されて処理を終了する。例えば図７に示すように、有効なブロックの数が５、物理アドレスの昇順で最後の有効な記憶ブロックが10番目の記憶ブロック（物理アドレス「９」の記憶ブロック）であった場合には、10番目の記憶ブロックからの論理アドレスの読み出しを終了した時点で、論理アドレスの読み出しが終了したと判断されて（ステップ１２８の判定が肯定されて）処理が終了される。従って、本第１実施形態によれば論理／物理変換テーブルの作成に要する時間を短縮することができ、これに伴って撮影記録装置１０の起動時間（電源が投入されてから初期化処理（図５のステップ１００）が完了する迄の時間）を短縮することができる。
【００４７】
続いて本第１実施形態において、上位のアプリケーション・プログラムから、有効な記憶ブロックを新たに確保するよう指示された場合に、ＣＰＵ４２によって領域確保プログラムが実行されることで実現される領域確保処理について、図８のフローチャートを参照して説明する。なお、以下で説明する領域確保処理及び領域解放処理は請求項１，４に記載の書込手段に対応している。領域確保処理では、まずステップ１４０において、記録メディア６８に未使用の記憶ブロックが存在しているか否か判定する。この判定は、例えば論理／物理変換テーブルに物理アドレスが登録されていない記憶ブロックに順にアクセスし、冗長部領域に未使用を表す記号が書き込まれているか否かを各々判断することで行うことができる。ステップ１４０の判定が否定された場合は、記憶ブロックの確保に失敗したことを指示元のアプリケーション・プログラムに通知して処理を終了する。
【００４８】
また、ステップ１４０の判定が肯定された場合はステップ１４２へ移行し、ステップ１４０で存在を認識した確保対象の記憶ブロックに付与する論理アドレスを決定し、決定した論理アドレスを確保対象の記憶ブロックの冗長部領域に書き込むと共に、論理／物理変換テーブルのうちの決定した論理アドレスに対応するエリアに、確保対象の記憶ブロックの物理アドレスを書き込む。そしてステップ１４４では、記録メディア６８の特定ブロックから有効ブロック数を読み出し、読み出した有効ブロック数に１を加算した後に特定ブロックに書き戻し、処理を終了する。これにより、有効な記憶ブロックが新たに確保されると共に、有効な記憶ブロックの数の増加に伴って記録メディア６８に書き込まれている有効ブロック数も更新されることになる。
【００４９】
次に本第１実施形態において、上位のアプリケーション・プログラムから、有効な記憶ブロックを解放が指示された場合に、ＣＰＵ４２によって領域解放プログラムが実行されることで実現される領域解放処理について、図９のフローチャートを参照して説明する。この領域解放処理では、まずステップ１５０において、解放対象の記憶ブロックのデータ領域に書き込まれているデータを消去すると共に、冗長部領域に未使用を表す記号を書き込む。またステップ１５２では、解放対象の記憶ブロックの物理アドレスを論理／物理変換テーブルから削除する。そして、次のステップ１５４では、記録メディア６８の特定ブロックから有効ブロック数を読み出し、読み出した有効ブロック数から１を減算した後に特定ブロックに書き戻し、処理を終了する。これにより、解放対象の記憶ブロックが有効な記憶ブロックから未使用の記憶ブロックになると共に、有効な記憶ブロックの数の減少に伴って記録メディア６８に書き込まれている有効ブロック数も更新されることになる。
【００５０】
なお、上述した第１実施形態では、記録メディア６８に書き込まれている有効ブロック数の更新を、有効な記憶ブロックの数が増減する毎に行う例を説明したが、有効ブロック数の更新タイミングは上記に限定されるものではなく、撮影記録装置１０の電源切断が指示された場合や撮影記録装置１０からの記録メディア６８の取り出しが指示された場合に、論理／物理変換テーブルに物理アドレスが登録されている記憶ブロックの個数（有効な記憶ブロックの個数）を計数し、計数結果を有効ブロック数として記録メディア６８に書き込むようにしてもよい。この場合、領域確保処理及び領域解放処理をより短時間で行うことができる。但し、撮影記録装置１０の電源が瞬断された等の場合は上記処理を行うことができず、記録メディアに書き込まれている有効ブロック数と有効な記憶ブロックの実数とに不一致が生ずる可能性があることを考慮すると、有効な記憶ブロックの数に増減が生ずる毎に有効ブロック数を更新することが望ましい。
【００５１】
〔第２実施形態〕
次に本発明の第２実施形態について説明する。なお、第２実施形態は第１実施形態と同一の構成であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第２実施形態の作用を説明する。
【００５２】
本第２実施形態では、記録メディア６８の特定の記憶ブロックのデータ領域に、本第１実施形態で説明した有効ブロック数に代えて、先頭アドレスと末尾アドレスから成る範囲情報を書き込んでいる。なお、先頭アドレスには、有効な記憶ブロックのうち物理アドレスが最小の記憶ブロック（記憶ブロックの配列において有効な記憶ブロックが存在している範囲の先頭に相当する位置に存在している記憶ブロック）の物理アドレスが設定され、末尾アドレスには、有効な記憶ブロックのうち物理アドレスが最大の記憶ブロック（記憶ブロックの配列において有効な記憶ブロックが存在している範囲の末尾に相当する位置に存在している記憶ブロック）の物理アドレスが設定される。なお、記録メディア６８全体が未使用の状態では、先頭アドレス及び末尾アドレスの初期値として空白が各々書き込まれている。
【００５３】
次に本第２実施形態に係る論理／物理変換テーブル作成処理について、図１１のフローチャートを参照して説明する。なお、この論理／物理変換テーブル作成処理は請求項２，５に記載のテーブル作成手段に対応している。ステップ１６０では論理／物理変換テーブル記憶用の領域を初期化する。ステップ１６２では記録メディア６８の特定ブロックに範囲情報として書き込まれている先頭アドレス及び末尾アドレスを読み出し、次のステップ１６３では、記録メディア６８から読み出した先頭アドレス（末尾アドレスでもよい）が空白か否か判定する。判定が肯定された場合は記録メディア６８全体が未使用状態と判断できるので、処理を終了する。
【００５４】
また、ステップ１６３の判定が否定された場合はステップ１６４へ移行し、記録メディア６８から読み出した先頭アドレスをアドレスカウンタに設定する。次のステップ１６６では、アドレスカウンタのカウント値が、記録メディア６８から読み出した末尾アドレスの値よりも大きいか否か判定する。判定が否定された場合はステップ１６８へ移行し、物理アドレスがアドレスカウンタの現在のカウント値に一致している記憶ブロックにアクセスし、当該記憶ブロックの冗長部領域に記憶されている情報を論理アドレスとして読み出す。そしてステップ１７０では、ステップ１６８で読み出した論理アドレスが有効な論理アドレスか否か判定する。
【００５５】
ステップ１７０の判定が肯定された場合、すなわちアクセスした記憶ブロックが有効な記憶ブロックの場合にはステップ１７２へ移行し、論理／物理変換テーブルのうち、読み出した有効な論理アドレスに対応するエリアにアドレスカウンタのカウント値、すなわちアクセスした記憶ブロックの物理アドレスを書き込んでステップ１７４へ移行する。一方、ステップ１７０の判定が否定された場合、すなわちアクセスした記憶ブロックが未使用の記憶ブロックの場合は、何ら処理を行うことなくステップ１７４へ移行する。そしてステップ１７４ではアドレスカウンタのカウント値に１を加算してステップ１６６に戻り、ステップ１６６の判定が肯定される迄、ステップ１６６〜ステップ１７４を繰り返す。そして、ステップ１６６の判定が肯定されると処理を終了する。
【００５６】
上述した論理／物理変換テーブル作成処理では、物理アドレスの昇順で先頭及び末尾の記憶ブロックが各々有効な記憶ブロックであった場合には、物理アドレスの昇順で先頭の記憶ブロックから末尾の記憶ブロック迄全ての記憶ブロックが順にアクセスされて論理／物理変換テーブルが作成された後にステップ１６６の判定が肯定されるので、論理／物理変換テーブルの作成に要する時間は従来と変わらないが、物理アドレスの昇順で先頭の記憶ブロックが未使用の記憶ブロックであった場合は、記憶ブロックのアクセス（論理アドレスの読み出し）が物理アドレスの昇順で途中の記憶ブロック（記録メディア６８から読み出した先頭ブロックに対応する記憶ブロックから開始され、物理アドレスの昇順で末尾の記憶ブロックが未使用の記憶ブロックであった場合には、記憶ブロックのアクセスが、記録メディア６８から読み出した末尾ブロックに対応する記憶ブロックに達した時点で終了されるので、アクセスする記憶ブロックの数が少なくなることで、論理／物理変換テーブルの作成に要する時間が短縮される。
【００５７】
例えば図１１(Ａ)に示すように、有効な記憶ブロックが存在している範囲の先頭に位置している記憶ブロックの物理アドレスが「６」、有効な記憶ブロックが存在している範囲の末尾に位置している記憶ブロックの物理アドレスが「１２」であった場合には、記憶ブロックのアクセス（論理アドレスの読み出し）が物理アドレス「６」の記憶ブロックから開始され、物理アドレス「１２」の記憶ブロックに達した時点で終了される。従って、論理アドレスの読み出しを行う記憶ブロックの数が大幅に減少することで、論理／物理変換テーブルの作成に要する時間が大幅に短縮され、撮影記録装置１０の起動時間も大幅に短縮される。
【００５８】
次に、本第２実施形態に係る領域確保処理について、図１２のフローチャートを参照して説明する。なお、以下で説明する領域確保処理及び領域解放処理は請求項２，５に記載の書込手段に対応している。ステップ１８０では、記録メディア６８に未使用の記憶ブロックが存在しているか否か判定する。ステップ１８０の判定が否定された場合は、記憶ブロックの確保に失敗したことを通知して処理を終了する。また、ステップ１８０の判定が肯定された場合はステップ１８２へ移行し、ステップ１８０で存在を認識した確保対象の記憶ブロックに付与する論理アドレスを決定し、決定した論理アドレスを確保対象の記憶ブロックの冗長部領域に書き込むと共に、論理／物理変換テーブルのうちの決定した論理アドレスに対応するエリアに、確保対象の記憶ブロックの物理アドレスを書き込む。ステップ１８４では記録メディア６８の特定ブロックから先頭アドレス及び末尾アドレスを読み出し、次のステップ１８６では読み出した先頭アドレスが空白か否か判定する。判定が肯定された場合は確保対象の記憶ブロック以外に有効な記憶ブロックが存在していないと判断できるので、ステップ１９０へ移行し、後で記録メディア６８に書き込む先頭アドレスとして、確保対象の記憶ブロックの物理アドレスをメモリに一時記憶させる。
【００５９】
またステップ１８６の判定が否定された場合は、確保対象の記憶ブロック以外にも有効な記憶ブロックが存在しているので、次のステップ１８８において、確保対象の記憶ブロックの物理アドレスの値が、先のステップ１８４で読み出した先頭アドレスの値よりも小さいか（確保対象の記憶ブロックが、記憶ブロックの配列において、先頭アドレスに対応する記憶ブロックよりも前側に位置しているか）否かを判定する。ステップ１８８の判定が肯定された場合はステップ１９０へ移行し、後で記録メディア６８に書き込む先頭アドレスとして、確保対象の記憶ブロックの物理アドレスをメモリに一時記憶させた後にステップ１９２へ移行する。なお、ステップ１８８の判定が否定された場合には、何ら処理を行うことなくステップ１９２へ移行する。
【００６０】
ステップ１９２では、先のステップ１８４で読み出した末尾アドレスが空白か否か判定する。判定が肯定された場合は確保対象の記憶ブロック以外に有効な記憶ブロックが存在していないと判断できるので、ステップ１９６へ移行し、後で記録メディア６８に書き込む末尾アドレスとして、確保対象の記憶ブロックの物理アドレスをメモリに一時記憶させる。またステップ１９２の判定が否定された場合はステップ１９４へ移行し、確保対象の記憶ブロックの物理アドレスの値が、先のステップ１８４で読み出した末尾アドレスの値よりも大きいか（確保対象の記憶ブロックが、記憶ブロックの配列において、末尾アドレスに対応する記憶ブロックよりも後側に位置しているか）否かを判定する。ステップ１９４の判定が肯定された場合はステップ１９６へ移行し、後で記録メディア６８に書き込む末尾アドレスとして、確保対象の記憶ブロックの物理アドレスをメモリに一時記憶させた後にステップ１９８へ移行する。また、ステップ１９４の判定が否定された場合には、何ら処理を行うことなくステップ１９８へ移行する。そしてステップ１９８では、メモリに一時記憶している先頭アドレス及び末尾アドレスを記録メディア６８の特定ブロックに書き込み、処理を終了する。上記処理により、有効な記憶ブロックが新たに確保されると共に、有効な記憶ブロックの数の増加に伴い、記録メディア６８に書き込まれている先頭アドレス及び末尾アドレスの少なくとも一方が必要に応じて更新されることになる。
【００６１】
続いて本第２実施形態に係る領域解放処理について、図１３のフローチャートを参照して説明する。ステップ２００では、解放対象の記憶ブロックのデータ領域に書き込まれているデータを消去すると共に、冗長部領域に未使用を表す記号を書き込む。ステップ２０１では記録メディア６８の特定ブロックから先頭アドレス及び末尾アドレスを読み出し、次のステップ２０２では、解放対象の記憶ブロックの物理アドレスの値が、ステップ２０１で読み出した先頭アドレスの値と一致しているか否か、すなわち解放対象の記憶ブロックが記憶ブロックの配列において有効な記憶ブロックが存在している範囲の先頭に位置しているか否か判定する。判定が否定された場合は何ら処理を行うことなくステップ２１２へ移行する。
【００６２】
一方、ステップ２０２の判定が肯定された場合はステップ２０４へ移行し、解放対象の記憶ブロックを今回有効な記憶ブロックから除外することで、新たに有効な記憶ブロックが存在している範囲の先頭に位置することになる記憶ブロックを探索する。この探索は、例えば論理／物理変換テーブルに登録されている物理アドレスのうち、解放対象の記憶ブロックの物理アドレスを除いて最小の物理アドレスを検索することで実現できる。次のステップ２０６では、ステップ２０４の探索によって該当する記憶ブロックが抽出されたか否か判定する。判定が肯定された場合はステップ２０８へ移行し、後で記録メディア６８に書き込む先頭アドレスとして、ステップ２０４の探索によって抽出された記憶ブロックの物理アドレスをメモリに一時記憶させる。また、ステップ２０６の判定が否定された場合はステップ２１０へ移行し、後で記録メディア６８に書き込む先頭アドレスとしてメモリに空白を一時記憶させる。
【００６３】
次のステップ２１２では、解放対象の記憶ブロックの物理アドレスの値が、ステップ２０１で読み出した末尾アドレスの値と一致しているか否か、すなわち解放対象の記憶ブロックが有効な記憶ブロックが存在している範囲の末尾に位置しているか否か判定する。判定が否定された場合は何ら処理を行うことなくステップ２２２へ移行する。一方、ステップ２１２の判定が肯定された場合はステップ２１４へ移行し、解放対象の記憶ブロックを今回有効な記憶ブロックから除外することで、新たに有効な記憶ブロックが存在している範囲の末尾に位置することになる記憶ブロックを探索する。この探索は、例えば論理／物理変換テーブルに登録されている物理アドレスのうち、解放対象の記憶ブロックの物理アドレスを除いて最大の物理アドレスを検索することで実現できる。次のステップ２１６では、ステップ２１４の探索によって該当する記憶ブロックが抽出されたか否か判定する。判定が肯定された場合はステップ２１８へ移行し、後で記録メディア６８に書き込む末尾アドレスとして、ステップ２１４の探索によって抽出された記憶ブロックの物理アドレスをメモリに一時記憶させる。また、ステップ２１６の判定が否定された場合はステップ２２０へ移行し、後で記録メディア６８に書き込む先頭アドレスとしてメモリに空白を一時記憶させる。
【００６４】
次のステップ２２２では、メモリに一時記憶している先頭アドレス及び末尾アドレスを記録メディア６８の特定ブロックに書き込み、ステップ２２４では、解放対象の記憶ブロックの物理アドレスを論理／物理変換テーブルから削除し、処理を終了する。上記処理により、解放対象の記憶ブロックが有効な記憶ブロックから未使用の記憶ブロックになると共に、有効な記憶ブロックの数の減少に伴い、記録メディア６８に書き込まれている先頭アドレス及び末尾アドレスの少なくとも一方が必要に応じて更新されることになる。
【００６５】
なお、上述した第２実施形態では、記録メディア６８に書き込まれている範囲情報（先頭アドレス及び末尾アドレス）の更新を、有効な記憶ブロックの数が増減する毎に行う例を説明したが、範囲情報（先頭アドレス及び末尾アドレス）の更新タイミングは上記に限定されるものではなく、撮影記録装置１０の電源切断が指示された場合や撮影記録装置１０からの記録メディア６８の取り出しが指示された場合に、論理／物理変換テーブルに登録されている物理アドレスの最小値及び最大値を探索し、探索によって抽出した最小値を先頭アドレス、最大値を末尾アドレスとして記録メディア６８に書き込むようにしてもよい。
【００６６】
また、上述した第２実施形態では、本発明に係る範囲情報として先頭アドレス（先頭位置情報）及び末尾アドレス（末尾位置情報）を記録メディア６８に各々書き込む例を説明したが、これに限定されるものではなく、例えば図１１(Ｂ)に示すように、範囲情報として先頭アドレス（この例では物理アドレス「６」）のみを記録メディア６８に書き込むようにしてもよい。この場合は、記憶ブロックのアクセス（論理アドレスの読み出し）が物理アドレス「６」の記憶ブロックから開始されるので、開始された記憶ブロックのアクセスは物理アドレスの昇順で最後の記憶ブロック迄継続されるものの、全ての記憶ブロックから論理アドレスを読み出す場合と比較して論理アドレスの読み出しを行う記憶ブロックの数が減少することで、論理／物理変換テーブルの作成に要する時間を短縮することができる。また、例えば図１１(Ｃ)に示すように、範囲情報として末尾アドレス（この例では物理アドレス「１２」）のみを記録メディア６８に書き込むようにしてもよい。この場合は、記憶ブロックのアクセス（論理アドレスの読み出し）が物理アドレスの昇順で最初の記憶ブロックから開始されるものの、開始された記憶ブロックのアクセスは物理アドレス「１２」の記憶ブロックに達した時点で終了されるので、全ての記憶ブロックから論理アドレスを読み出す場合と比較して論理アドレスの読み出しを行う記憶ブロックの数が減少することで、論理／物理変換テーブルの作成に要する時間を短縮することができる。
【００６７】
また、上述した第２実施形態では、本発明に係る範囲情報として先頭アドレス及び末尾アドレスを記録メディア６８に１組のみ書き込む例を説明したが、これに限定されるものでもなく、例えば図１１(Ｄ)に示すように、範囲情報として複数組の先頭アドレス及び末尾アドレスを記録メディア６８に各々書き込むようにしてもよい。図１１(Ｄ)の例では、物理アドレスが「３」「５」「６」「２１」「２３」「２４」の各記憶ブロックが有効な記憶ブロックとされ、範囲情報として、物理アドレス「３」「５」「６」の記憶ブロックを指し示す先頭アドレス「３」、末尾アドレス「６」の組と、物理アドレス「２１」「２３」「２４」の記憶ブロックを指し示す先頭アドレス「２１」、末尾アドレス「２４」の組が各々書き込まれている。範囲情報として上記の情報を書き込んでおくことで、記憶ブロックのアクセス（論理アドレスの読み出し）を、物理アドレスで「３」〜「６」の範囲及び「２１」〜「２４」の範囲についてのみ行うことができる。これにより、論理アドレスの読み出しを行う記憶ブロックの数を大幅に減少させることができ、論理／物理変換テーブルの作成に要する時間を大幅に短縮することができる。
【００６８】
〔第３実施形態〕
次に本発明の第３実施形態について説明する。なお、第１実施形態及び第２実施形態と同一の部分には同一の符号を付し、説明を省略する。
【００６９】
本第３実施形態では、第１実施形態で説明した有効ブロック数、第２実施形態で説明した範囲情報（先頭アドレス及び末尾アドレス）に代えて連鎖情報を用いている。連鎖情報は、有効な記憶ブロックを物理アドレスの昇順（降順或いは別の順序を適用してもよい）に一連の有効な記憶ブロックとみなし、この一連の有効な記憶ブロックを構成する個々の記憶ブロックの繋がりを表す情報であり、図１５に示すように、特定ブロックに書き込まれた一連の有効な記憶ブロックにおける先頭ブロックの物理アドレス（図１５の例では物理アドレス「２」）と、一連の有効な記憶ブロックの各々に書き込まれた次ブロック（次の有効な記憶ブロック）の物理アドレス（但し、一連の有効な記憶ブロックにおける末尾の記憶ブロック（物理アドレス「１１」の記憶ブロック）には、次ブロックの物理アドレスに代えて終端を表す終端記号(図１５では"EOC"と表記)が書き込まれる）から構成されている。
【００７０】
なお、本第３実施形態に係る記録メディア６８の各記憶ブロックの冗長部領域には、論理アドレスを記憶するための論理アドレス記憶領域に加え、連鎖情報を記憶するための連鎖情報記憶領域が設けられており、上記の連鎖情報は各記憶ブロックの連鎖情報記憶領域に各々書き込まれる。また、記録メディア６８全体が未使用の状態では、特定ブロックの連鎖情報記憶領域にのみ、上記の連鎖情報の初期値として終端記号が書き込まれている。
【００７１】
次に本第３実施形態に係る論理／物理変換テーブル作成処理について、図１４のフローチャートを参照して説明する。なお、この論理／物理変換テーブル作成処理は請求項３，６に記載のテーブル作成手段に対応している。ステップ２３０では論理／物理変換テーブル記憶用の領域を初期化する。ステップ２３２では記録メディア６８の特定ブロックの連鎖情報記憶領域に書き込まれている情報を読み出し、次のステップ２３４では、特定ブロックの連鎖情報記憶領域から読み出した情報（通常は先頭ブロックの物理アドレス）をアドレスカウンタに設定する。また、次のステップ２３６ではアドレスカウンタに設定した情報が終端記号か否か判定する。前述のように、特定ブロックの連鎖情報記憶領域には、一連の有効な記憶ブロックが存在していれば該一連の有効な記憶ブロックの先頭ブロックの物理アドレスが書き込まれ、有効な記憶ブロックが存在していなければ終端記号が書き込まれるので、判定が肯定された場合は記録メディア６８全体が未使用状態と判断して処理を終了する。
【００７２】
また、ステップ２３６の判定が否定された場合はステップ２３６へ移行し、物理アドレスがアドレスカウンタの現在のカウント値（連鎖情報記憶領域から読み出した物理アドレス）に一致している記憶ブロックにアクセスし、当該記憶ブロックの冗長部領域の論理アドレス記憶領域及び連鎖情報記憶領域に記憶されている情報を各々読み出す。そしてステップ２４０では、ステップ２３８で論理アドレス記憶領域から読み出した情報が有効な論理アドレスか否か判定する。この判定が否定された場合はステップ２４４へ移行するが、ステップ２４０の判定は通常肯定され、次のステップ２４２において、論理／物理変換テーブルのうち、論理アドレス記憶領域から読み出した論理アドレスに対応するエリアにアドレスカウンタのカウント値、すなわちアクセスした記憶ブロックの物理アドレスを書き込む。
【００７３】
そしてステップ２４４では、連鎖情報記憶領域から読み出した情報をアドレスカウンタに設定してステップ２３６に戻る。これにより、ステップ２３６の判定が肯定される迄、すなわち連鎖情報記憶領域に終端記号が書き込まれている記憶ブロックが出現する迄、ステップ２３６〜ステップ２４４が繰り返される。そして、ステップ２３６の判定が肯定されると処理を終了する。
【００７４】
上述した論理／物理変換テーブル作成処理では、連鎖情報に基づき、記憶ブロックのアクセス（論理アドレスの読み出し）を有効な記憶ブロックに対してのみ行うので、アクセスする記憶ブロックの数が最小となり、論理／物理変換テーブルの作成に要する時間が大幅に短縮される。例えば図１５に示すように、物理アドレス「２」「３」「６」「８」「１１」の記憶ブロックが有効な記憶ブロックである場合、特定ブロックの連鎖情報記憶領域から先頭ブロックの物理アドレス「２」を取得した後は、記憶ブロックのアクセス（論理アドレスの読み出し）は有効な記憶ブロックに対してのみ順次行われ、物理アドレス「１１」の記憶ブロックへのアクセスが終了すると、ステップ２３６の判定が肯定されて処理が終了される。従って、論理アドレスの読み出しを行う記憶ブロックの数が最小となることで、論理／物理変換テーブルの作成に要する時間が最短となり、撮影記録装置１０の起動時間も大幅に短縮される。
【００７５】
ところで、本第３実施形態では、記録メディア６８に書き込まれている連鎖情報の更新を、撮影記録装置１０の電源切断が指示された際に、図１６に示す電源切断時処理を実行することで行っている（なお、この電源切断時処理は記録メディア６８の取り出しが指示された場合にも実行される）。以下、この電源切断時処理について説明する。なお、この電源切断時処理は請求項３，６に記載の書込手段に対応している。
【００７６】
ステップ２５０ではアドレスカウンタに１を代入する。次のステップ２５２では、アドレスカウンタのカウント値が論理／物理変換テーブルに物理アドレスとして登録されているか否か判定する。判定が否定された場合、物理アドレスがアドレスカウンタのカウント値に一致する記憶ブロックは有効な記憶ブロックではないと判断できるので、ステップ２５４へ移行し、アドレスカウンタのカウント値に１を加算する。ステップ２５６ではアドレスカウンタのカウント値が記録メディア６８に設けられている記憶ブロックの総数を超えたか否か判定する。判定が否定された場合はステップ２５２に戻り、ステップ２５２又はステップ２５６の判定が肯定される迄ステップ２５２〜ステップ２５６を繰り返す。ステップ２５６の判定が肯定された場合は、記録メディア６８には有効な記憶ブロックが存在していないと判断できるので、ステップ２５８へ移行し、特定ブロックの連鎖情報記憶領域に終端記号を書き込んで処理を終了する。
【００７７】
一方、ステップ２５２の判定が肯定された場合はステップ２６０へ移行し、アドレスカウンタのカウント値を先頭ブロックの物理アドレスとして特定ブロックの連鎖情報記憶領域に書き込むと共に、メモリに一時記憶させる。次のステップ２６２ではアドレスカウンタのカウント値に１を加算し、ステップ２６４ではアドレスカウンタのカウント値が記録メディア６８に設けられている記憶ブロックの総数を超えたか否か判定する。判定が否定された場合はステップ２６６へ移行し、アドレスカウンタの現在のカウント値が論理／物理変換テーブルに物理アドレスとして登録されているか否か、すなわち物理アドレスがアドレスカウンタの現在のカウント値に一致する記憶ブロックは有効な記憶ブロックか否か判定する。判定が否定された場合はステップ２６２に戻り、ステップ２６２以降を繰り返す。
【００７８】
また、ステップ２６６の判定が肯定された場合はステップ２６８へ移行し、メモリに一時記憶している物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に、アドレスカウンタのカウント値を次ブロックの物理アドレスとして書き込む。次のステップ２７０では、アドレスカウンタのカウント値を物理アドレスとしてメモリに一時記憶させ、ステップ２６２に戻る。これにより、ステップ２６４の判定が肯定される迄ステップ２６２〜ステップ２７０が繰り返され、有効な記憶ブロックを発見する毎（ステップ２６６の判定が肯定される毎）に、一時記憶していた物理アドレスの記憶ブロック（前回発見した有効な記憶ブロック）の連鎖情報記憶領域に、今回発見した有効な記憶ブロックの物理アドレスを次ブロックの物理アドレスとして書き込むと共に、今回発見した有効な記憶ブロックの物理アドレスを一時記憶する処理が繰り返されることになる。
【００７９】
ステップ２６４の判定が肯定されるとステップ２７２へ移行し、メモリに一時記憶している物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に終端記号を書き込んで処理を終了する。上記の電源切断時処理により、記録メディア６８に書き込まれている連鎖情報が、記録メディア６８に現在存在している一連の有効な記憶ブロックを構成する個々の記憶ブロックの繋がりを表す情報へ更新されることになる。
【００８０】
なお、本第３実施形態において、記録メディア６８に書き込まれている連鎖情報の更新を、第１実施形態及び第２実施形態と同様に有効な記憶ブロックの数が増減する毎に（有効な記憶ブロックの確保又は解放が行われる毎に）行うことも可能である。以下、有効な記憶ブロックの確保と同時に連鎖情報の更新を行う領域確保処理（図１７）、有効な記憶ブロックの解放と同時に連鎖情報の更新を行う領域解放処理（図１８）について順に説明する。なお、以下では特定ブロックの連鎖情報記憶領域に、先頭ブロックの物理アドレスに加えて一連の有効な記憶ブロックの末尾に相当する記憶ブロック（末尾ブロック）の物理アドレスが書き込まれて、一連の有効な記憶ブロックの連鎖情報記憶領域にも、次ブロックの物理アドレスに加えて前ブロック（１つ前の有効な記憶ブロック）の物理アドレスが書き込まれる態様を例に領域確保処理及び領域解放処理を説明する（なお、記録メディア６８全体が未使用の状態では、特定ブロックの連鎖情報記憶領域にのみ先頭ブロック及び末尾ブロックの物理アドレスとして終端記号が書き込まれている。）。また、以下で説明する領域確保処理及び領域解放処理は請求項３，６に記載の書込手段に対応している。
【００８１】
図１７に示す領域確保処理では、まずステップ２８０では、記録メディア６８に未使用の記憶ブロックが存在しているか否か判定する。ステップ２８０の判定が否定された場合は、記憶ブロックの確保に失敗したことを通知して処理を終了する。また、ステップ２８０の判定が肯定された場合はステップ２８２へ移行し、ステップ２８０で存在を認識した確保対象の記憶ブロックに付与する論理アドレスを決定し、決定した論理アドレスを確保対象の記憶ブロックの論理アドレス記憶領域に書き込むと共に、論理／物理変換テーブルのうち決定した論理アドレスに対応するエリアに、確保対象の記憶ブロックの物理アドレスを書き込む。ステップ２８４では記録メディア６８の特定ブロックの連鎖情報記憶領域から先頭ブロックの物理アドレス及び末尾ブロックの物理アドレスを読み出し、読み出した末尾ブロックの物理アドレス（これに代えて先頭ブロックの物理アドレスを用いてもよい）が有効な物理アドレスか否か判定する。
【００８２】
上記判定が否定された場合（読み出した末尾ブロックの物理アドレスが終端記号であった場合）は、確保対象の記憶ブロック以外に有効な記憶ブロックが存在していないと判断できるので（図１８(Ａ)も参照）、ステップ２８６へ移行し、先頭ブロックの物理アドレスとして、確保対象の記憶ブロックの物理アドレスを特定ブロックの連鎖情報記憶領域に書き込み、次のステップ２８８では、末尾ブロックの物理アドレスとして、確保対象の記憶ブロックの物理アドレスを特定ブロックの連鎖情報記憶領域に書き込む。そしてステップ９０では、確保対象の記憶ブロックの連鎖情報記憶領域に、前ブロックの物理アドレスとして特定ブロックの物理アドレス（本実施形態では「０」）を、次ブロックの物理アドレスとして終端記号を各々書き込み、処理を終了する（図１８(Ｂ)も参照）。
【００８３】
また、ステップ２８４の判定が否定された場合は確保対象の記憶ブロック以外にも有効な記憶ブロックが存在しているので（例えば図１８(Ｂ)に示す状態）、ステップ２９２へ移行し、特定ブロックの連鎖情報記憶領域から読み出した末尾ブロックの物理アドレスに対応する記憶ブロック（現在の末尾ブロック）の連鎖情報記憶領域に、次ブロックの物理アドレスとして、領域確保した記憶ブロックの物理アドレスを書き込む。次のステップ２９４では、確保対象の記憶ブロックの連鎖情報記憶領域に、次ブロックの物理アドレスとして終端記号を書き込む。そしてステップ２９６では、特定ブロックの連鎖情報記憶領域に、確保対象の記憶ブロックの物理アドレスを末尾ブロックの物理アドレスとして書き込み、処理を終了する（図１８(Ｃ)も参照）。上記処理により、有効な記憶ブロックが新たに確保されると共に、有効な記憶ブロックの数の増加に伴い、記録メディア６８に書き込まれている連鎖情報が更新されることになる。
【００８４】
続いて、図１９に示す領域解放処理について説明する。ステップ３００では、記録メディア６８の特定ブロックの連鎖情報記憶領域から先頭ブロックの物理アドレス及び末尾ブロックの物理アドレスを読み出し、読み出した末尾ブロックの物理アドレスを解放対象の記憶ブロックの物理アドレスと比較することで、解放対象のブロックが末尾ブロックか否か判定する。判定が否定された場合はステップ３０２へ移行し、特定ブロックの連鎖情報記憶領域から読み出した先頭ブロックの物理アドレスを解放対象の記憶ブロックの物理アドレスと比較することで、解放対象のブロックが先頭ブロックか否か判定する。
【００８５】
判定が肯定された場合はステップ３０４へ移行し、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている次ブロックの物理アドレスを、先頭ブロックの物理アドレスとして特定ブロックの連鎖情報記憶領域に書き込む。また、ステップ３０８では、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている次ブロックの物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に、前ブロックの物理アドレスとして、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている前ブロックの物理アドレスを書き込む(図２０(Ａ)及び(Ｂ)も参照）。次のステップ３１８では、解放対象の記憶ブロックのデータ領域に書き込まれているデータを消去すると共に、冗長部領域の論理アドレス記憶領域に未使用を表す記号を書き込む。そしてステップ３２０では、解放対象の記憶ブロックの物理アドレスを論理／物理変換テーブルから削除し、処理を終了する。
【００８６】
また、ステップ３０２の判定が否定された場合、すなわち解放対象の記憶ブロックが先頭ブロック及び末尾ブロック以外の有効な記憶ブロックであった場合には、ステップ３０６へ移行し、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている前ブロックの物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に、次ブロックの物理アドレスとして、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている次ブロックの物理アドレスを書き込む。続いて、上述したステップ３０８において、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている次ブロックの物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に、前ブロックの物理アドレスとして、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている前ブロックの物理アドレスを書き込む(図２０(Ａ)及び(Ｄ)も参照）。そして、ステップ３１８で解放対象の記憶ブロックに対してデータ消去、未使用記号の書き込みが行われ、ステップ３２０で解放対象の記憶ブロックの物理アドレスが論理／物理変換テーブルから削除される。
【００８７】
また、ステップ３００の判定が肯定された場合はステップ３１０へ移行し、特定ブロックの連鎖情報記憶領域から読み出した先頭ブロック及び末尾ブロックの物理アドレスが同一か否か判定する。この判定が肯定された場合、解放対象の記憶ブロックを有効な記憶ブロックから除外することで有効な記憶ブロックの数がゼロになると判断できるので、ステップ３１６へ移行し、特定ブロックの連鎖情報記憶領域に先頭ブロックの物理アドレス及び末尾ブロックの物理アドレスとして終端記号を各々書き込む。そして、前述したステップ３１８、３２０を経て処理を終了する。
【００８８】
一方、ステップ３１０の判定が否定された場合は、解放対象の記憶ブロックが末尾ブロックであり、かつ解放対象の記憶ブロックを有効な記憶ブロックから除外しても有効な記憶ブロックの数は１以上であると判断できるので、ステップ３１２へ移行し、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている前ブロックの物理アドレスに対応する記憶ブロックの連鎖情報記憶領域に、次ブロックの物理アドレスとして終端記号を書き込む。またステップ３１４では、解放対象の記憶ブロックの連鎖情報記憶領域に書き込まれている前ブロックの物理アドレスを、末尾ブロックの物理アドレスとして特定ブロックの連鎖情報記憶領域に書き込む(図２０(Ａ)及び(Ｃ)も参照）。そして、前述したステップ３１８、３２０を経て処理を終了する。上記処理により、解放対象の記憶ブロックが有効な記憶ブロックから未使用の記憶ブロックになると共に、有効な記憶ブロックの数の減少に伴い、記録メディア６８に書き込まれている連鎖情報が更新されることになる。
【００８９】
また、上記ではＣＰＵ４２が所定のプログラムを実行することで本発明に係る処理（論理／物理変換テーブル作成処理、領域確保処理、領域解放処理、電源切断時処理）が実現される態様を説明したが、これに限定されるものではなく、上述した各処理をハードウェアによって実行することも可能である。また、上記では撮影記録装置１０を本発明に係る記憶デバイス制御装置として機能させる例を説明したが、これに限定されるものではなく、本発明に係る記憶デバイスと接続される各種の機器（例えばＰＣや携帯端末、プリンタ等）に上記のプログラム又は上記のハードウェアを組み込むことで、各種の機器を本発明に係る記憶デバイス制御装置として機能させることも可能である。また、上記のハードウェアは、本発明に係るフラッシュメモリ等の記憶デバイスと共に記録メディアに内蔵することも可能である。
【図面の簡単な説明】
【００９０】
【図１】本実施形態に係る撮影記録装置の外観を示す斜視図である。
【図２】撮影記録装置の概略ブロック図である。
【図３】記録メディア（フラッシュメモリ）のフォーマットの一例を示す概念図である。
【図４】論理／物理変換テーブルの作用を説明するための概念図である。
【図５】稼働時処理の内容を示すフローチャートである。
【図６】第１実施形態に係る論理／物理変換テーブル作成処理の内容を示すフローチャートである。
【図７】第１実施形態に係る論理／物理変換テーブル作成処理の作用を説明する概念図である。
【図８】第１実施形態に係る領域確保処理の内容を示すフローチャートである。
【図９】第１実施形態に係る領域解放処理の内容を示すフローチャートである。
【図１０】第２実施形態に係る論理／物理変換テーブル作成処理の内容を示すフローチャートである。
【図１１】第２実施形態に係る論理／物理変換テーブル作成処理の作用を説明する概念図である。
【図１２】第２実施形態に係る領域確保処理の内容を示すフローチャートである。
【図１３】第２実施形態に係る領域解放処理の内容を示すフローチャートである。
【図１４】第３実施形態に係る論理／物理変換テーブル作成処理の内容を示すフローチャートである。
【図１５】第３実施形態に係る論理／物理変換テーブル作成処理の作用を説明する概念図である。
【図１６】第３実施形態に係る電源切断時処理の内容を示すフローチャートである。
【図１７】第３実施形態において、領域確保時に連鎖情報を書替える場合の領域確保処理の内容を示すフローチャートである。
【図１８】図１７の領域確保処理の作用を説明する概念図である。
【図１９】第３実施形態において、領域解放時に連鎖情報を書替える場合の領域解放処理の内容を示すフローチャートである。
【図２０】図１９の領域解放処理の作用を説明する概念図である。
【符号の説明】
【００９１】
１０  撮影記録装置
２４  スロット
２６  電源スイッチ
４２  ＣＰＵ
６６  フラッシュＲＯＭ
６８  記録メディア
【図１】
2006127242.tif 000003
【図２】
2006127242.tif 000004
【図３】
2006127242.tif 000005
【図４】
2006127242.tif 000006
【図５】
2006127242.tif 000007
【図６】
2006127242.tif 000008
【図７】
2006127242.tif 000009
【図８】
2006127242.tif 000010
【図９】
2006127242.tif 000011
【図１０】
2006127242.tif 000012
【図１１】
2006127242.tif 000013
【図１２】
2006127242.tif 000014
【図１３】
2006127242.tif 000015
【図１４】
2006127242.tif 000016
【図１５】
2006127242.tif 000017
【図１６】
2006127242.tif 000018
【図１７】
2006127242.tif 000019
【図１８】
2006127242.tif 000020
【図１９】
2006127242.tif 000021
【図２０】
2006127242.tif 000022