(57)【要約】【課題】  メモリカードの種類に係わらず、常に最適なアクセス管理を行えるデータ処理装置を提供する。【解決手段】  ＣＰＵ２１は、メモリカードコントローラ２２を介してインターフェース２３を制御することにより、そのインターフェース２３がアクセス可能なメモリカード１０にアクセスする。そのメモリカード１０のブロックサイズは、記憶装置２５に格納されたプログラム３０を実行して認識する。その認識は、メモリカード１０に１度に書き込ませるデータのサイズを順次、変更しながら、その書き込みに要する時間をタイマ２６で計時することにより、計時した時間の変化を基に行う。【選択図】      図１
2007087344.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたブロックサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体にアクセスできる媒体駆動装置を用いて該記録媒体にデータを保存させるデータ処理装置において、
前記媒体駆動装置による前記記録媒体へのアクセスを制御するアクセス制御手段と、
前記アクセス制御手段により前記媒体駆動装置に前記記録媒体にアクセスさせて、該記録媒体の前記ブロックサイズを認識するサイズ認識手段と、
を具備することを特徴とするデータ処理装置。
【請求項２】
前記サイズ認識手段は、前記アクセス制御手段により前記記録媒体に１度に書き込ませるデータのサイズを順次、変更しながら、該データの書き込みに要する時間を計時することにより、該計時した時間の変化を基に前記ブロックサイズを認識する、
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記サイズ認識手段は、前記アクセス制御手段により前記記録媒体にアクセスさせて前記ブロックサイズを認識した場合、該認識したブロックサイズを前記アクセス制御手段により前記記録媒体から読み出させた識別情報と共に所定の記憶装置に保存させることにより、該記憶装置に識別情報が保存されていない記録媒体を対象に該ブロックサイズの認識を行う、
ことを特徴とする請求項１、または２記載のデータ処理装置。
【請求項４】
予め定められたブロックサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体にアクセスできる媒体駆動装置を用いて該記録媒体にデータを保存させるデータ処理装置に実行させるプログラムであって、
前記媒体駆動装置による前記記録媒体へのアクセスを制御する機能と、
前記制御する機能により前記媒体駆動装置に前記記録媒体にアクセスさせて、該記録媒体の前記ブロックサイズを認識する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカード等の予め定められたブロックサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体にアクセスするための技術に関する。
【背景技術】
【０００２】
現在広く普及しているデジタルカメラ等の機器（データ処理装置）の多くは、可搬性の記録媒体に画像データ等の各種データを保存させることができるようになっている。そのような記録媒体にデータを保存できるようにすることにより、データの取り扱いはより容易に行える、複数の記録媒体を用意すればより大量のデータが保存可能、といった利点を得ることができる。
【０００３】
デジタルカメラのような小型・携帯型の機器では、より小型、軽量の記録媒体が求められる。このことから、記録媒体として、フラッシュメモリをパッケージしたメモリカード（可搬性の記録媒体）が採用されるのが普通となっている。その規格には様々なものがあるが、大量のデータの保存に用いるのを想定していることから、何れの規格でもフラッシュメモリとしては、予め定められたサイズのブロック単位で書き込みを行うタイプが採用されるのが普通である。以降、特に断らない限り、フラッシュメモリはこのタイプのものを指す意味で用いる。
【０００４】
図８は、フラッシュメモリの特性を説明するための図である。図８（ａ）および図８（ｂ）それぞれにおいて、上段にバッファ１０２、下段にフラッシュメモリ１０１を示す。そのフラッシュメモリ１０１としては、１ブロック分を示している。フラッシュメモリ１０１に書き込む対象となるデータは斜線、すでにフラッシュメモリ１０１に記録されているデータは網掛けで示している。これは図９でも同様である。
【０００５】
周知のようにメモリカードには、フラッシュメモリの他に、それにアクセスし、外部との入出力を行うコントローラが搭載される。図８に示すバッファ１０２は、フラッシュメモリ１０１を搭載したメモリカードに用意されたものである。そのバッファ１０２は、そのメモリカードに搭載されたコントローラ（ＬＳＩ）によってアクセスされる。
【０００６】
図８（ａ）は、ブロックサイズのデータをフラッシュメモリに書き込む場合の動作を説明するための図である。その場合、まず、（１）消去処理で、フラッシュメモリ１０１上で対象となるブロックにデータが存在していればそれを消去し、その後、（２）データ書き込み処理において、バッファ１０２の書き込むべきデータをフラッシュメモリ１０１に書き込むことになる。
【０００７】
図８（ｂ）は、ブロックサイズ未満のデータをフラッシュメモリに書き込む場合の動作を説明するための図である。ここでは、対象となるブロックにすでにデータが存在する状況を例にとっている。
【０００８】
フラッシュメモリ１０１上で対象となるブロックにすでにデータが記録され、その空き領域に記録可能な量のデータを更に書き込む場合には、図８（ｂ）のような手順によりデータ書き込みが実行される。まず、（１）データ読み込み処理において、図８（ｂ）では網掛けで示される、すでに記録されているデータをバッファ１０２に読み出す。読み出したデータは、次の（２）合成処理において、新たに書き込もうとするデータと合成する（一緒にする）。続く（３）消去処理で、対象ブロックに記録されたデータを全て消去する。その消去の後、（４）データ書き込み処理を実行し、バッファ１０２のデータをフラッシュメモリ１０１の対象ブロックに書き込む。
【０００９】
通常、フラッシュメモリへのデータの書き込みでは、同じブロックへのデータの書き込みが集中しないように制御が行われる。それにより、（３）消去処理は、データを読み出したブロックに対して行い、（４）データ書き込み処理は、別のブロックに対して行うのが普通である。しかしここでは説明上、便宜的にそのことは無視している。これは以降も同様とする。
【００１０】
図９は、ブロックサイズ未満のデータをフラッシュメモリに書き込む場合の動作をより詳細に説明するための図である。図９（ａ）は、書き込みの対象とするブロック１０１に対し、ブロックサイズ未満のデータを１回目に書き込む場合の動作を示し、図９（ｂ）は、そのサイズ未満のデータを次に書き込む（２回目に書き込む）場合の動作を示している。図９（ａ）、及び図９（ｂ）において、データを書き込む対象とするブロック１０１は４つの矩形で示している。各矩形はブロックサイズ未満のデータが書き込まれる領域に相当する。
【００１１】
１回目の書き込みでは、図９（ａ）に示すように、まず、（１）データ読み込み処理において、データを書き込む領域以外の領域に書き込まれたデータをバッファ１０２に読み出す。それにより、ブロックに書き込むべき１ブロック分のデータをバッファ１０２に用意すると、次の（２）消去処理で、対象ブロックに記録されたデータを全て消去する。その消去の後、（３）データ書き込み処理を実行し、バッファ１０２のデータをフラッシュメモリ１０１の対象ブロックに書き込む。その対象ブロックにデータが書き込まれていない場合には、（１）データ読み込み処理の実行は省くことができる。
【００１２】
その後の２回目の書き込みでは、図９（ｂ）に示すように、まず、（１）データ読み込み処理において、データを書き込む領域以外の領域に書き込まれたデータを同様にバッファ１０２に読み出す。それにより、ブロックに書き込むべき１ブロック分のデータをバッファ１０２に再度、用意し、次の（２）消去処理で、対象ブロックに記録されたデータを全て消去する。その消去の後、（３）データ書き込み処理を実行し、バッファ１０２のデータをフラッシュメモリ１０１の対象ブロックに書き込む。その結果、データが存在しないブロックにデータを書き込む場合には、２回の書き込みによってブロックサイズ未満のデータが２つ保存されることになる。
【００１３】
周知のように、フラッシュメモリへのデータの書き込みには比較的に時間がかかる。また、消去／書き込み回数に上限が存在する。このため、図９に示すように、１ブロック分のデータの書き込みを複数回に分けて行う場合には、その書き込みが終了するまでにかかる時間がより長くなるだけでなく、フラッシュメモリの寿命をより短くしてしまうことになる。これは非常に望ましくない。このことから、そのような不具合を回避できるように、従来のデータ処理装置のなかには、例えば特許文献１に記載されているように、フラッシュメモリの特性データ（各種アクセス時間やブロックサイズ（ここでは３２個のページ分の容量））を予め用意し、その特性データを考慮して、書き込むデータの容量に応じた最適なアクセス管理を行えるようにしたものがある。
【特許文献１】特開２００５−１７４４６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
アクセスするフラッシュメモリが固定であれば、その特性データを予め用意することができ、その特性データにより、最適なアクセス管理を実現させることができる（特許文献１）。しかし、メモリカードに搭載されるフラッシュメモリの特性は、カードによって異なるのが普通である。このため、特性データを予め用意しておくことは非常に困難と言える。特性データとメモリカードの対応関係の特定も非常に困難である。メモリカード（予め定められたサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体）は非常に小型・軽量であることから、今後、記録媒体としてより普及すると期待されている。これらのことから、データ処理装置は、メモリカードに種類（内蔵されたフラッシュメモリの特性）に係わらず、常に最適なアクセス管理を行えるようにすることが重要であると考えられる。
【００１５】
本発明の課題は、メモリカードの種類に係わらず、常に最適なアクセス管理を行えるデータ処理装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明のデータ処理装置は、予め定められたブロックサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体にアクセスできる媒体駆動装置を用いて該記録媒体にデータを保存させることを前提とするものであり、媒体駆動装置による記録媒体へのアクセスを制御するアクセス制御手段と、アクセス制御手段により媒体駆動装置に記録媒体にアクセスさせて、該記録媒体のブロックサイズを認識するサイズ認識手段と、を具備する。
【００１７】
なお、上記サイズ認識手段は、アクセス制御手段により記録媒体に１度に書き込ませるデータのサイズを順次、変更しながら、該データの書き込みに要する時間を計時することにより、該計時した時間の変化を基にブロックサイズを認識する、ことが望ましい。また、アクセス制御手段により記録媒体にアクセスさせてブロックサイズを認識した場合、該認識したブロックサイズをアクセス制御手段により記録媒体から読み出させた識別情報と共に所定の記憶装置に保存させることにより、該記憶装置に識別情報が保存されていない記録媒体を対象に該ブロックサイズの認識を行う、ことが望ましい。
【００１８】
本発明のプログラムは、上記データ処理装置が具備する各手段をそれぞれ実現させるための機能を搭載している。
【発明の効果】
【００１９】
本発明によれば、予め定められたブロックサイズのブロック単位でデータの書き込みを行う可搬性の記録媒体にアクセスして、その記録媒体のブロックサイズを認識する。このため、ブロックサイズ未満の複数のデータはそれらのデータサイズに応じて一つにまとめ、一度に１ブロックに書き込ませることができる。それにより、より少ない回数でより大量のデータを最適な形で記録媒体に保存できることから、データ保存はより高速（短時間）に行えることとなる。また、ブロック内の空き領域をより有効に利用できるようになることから、より大量のデータを保存できることとなる。これらのことから、記録媒体の種類に係わらず、常に最適なアクセス管理を実現できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施の形態について、図面を参照しながら詳細に説明する。
＜第１の実施形態＞
図１は、本実施形態によるデータ処理装置の構成図である。そのデータ処理装置１は、バスに、ＣＰＵ２１、メモリカード１０にアクセスするインターフェース２３が接続されたメモリカードコントローラ２２、入力装置２４、記憶装置２５およびタイマ２６をそれぞれ接続させた形で構成されている。
【００２１】
上記入力装置は、各種キーやそれへの操作を検出するサブＣＰＵを備えたものである。記憶装置２５は、例えば少なくともＲＡＭやＲＯＭ（例えばフラッシュメモリ）をまとめて表したものであり、そのＲＯＭにはＣＰＵ２１が実行するプログラム３０が格納されている。それにより、ＣＰＵ２１は、そのプログラム３０を読み出し、ＲＡＭをワークに用いて装置１全体の制御を実行する。
【００２２】
メモリカードコントローラ（以下「コントローラ」と略記）２２は、ＣＰＵ２１の指示に従ってインターフェース２３を制御することにより、インターフェース２３によるメモリカード１０へのアクセスを管理する。そのメモリカード１０は、フラッシュメモリ、及び外部（ここではインターフェース２３）との入出力を管理するコントローラ（ＬＳＩ）を内蔵したものである。そのコントローラ（以降、便宜的に「内蔵コントローラ」と呼ぶ）は、予め定められたブロックサイズのブロック単位でフラッシュメモリにアクセスを行う。
【００２３】
図１に構成を示すデータ処理装置１は、例えば例えばパーソナルコンピュータ（ＰＣ）、ＰＤＡ、携帯電話機、或いはデジタルカメラである。その種類によって別の構成要素が存在するが、ここでは基本的に言及しないことにする。それらのデータ処理装置では、メモリカード１０に保存するデータは、他の記録媒体に記録されたデータ、通信ネットワークを介して取得したデータ、或いは撮影によって得られた画像データ、などである。
【００２４】
ユーザーによってインターフェース２３がアクセス可能となるメモリカード１０の種類（それに内蔵のフラッシュメモリのブロックサイズを含む特性）を予め特定することはできない。このことから、ＣＰＵ２１は、以下のようにして、アクセス可能なメモリカード１０のブロックサイズの認識（特定）を行う。
【００２５】
図２は、一定サイズのデータの分割数と、その分割数で分割したデータの書き込みに要する処理時間の関係を説明する図である。まず、図２を参照して、ブロックサイズの認識方法について具体的に説明する。
【００２６】
フラッシュメモリにデータを書き込む場合、ブロック単位で消去／書き込みが行われるのが普通である。その消去にかかる時間（消去時間）は基本的に一定であり、書き込みにかかる時間（書き込み時間）はデータサイズ（データ量）によって変化する。消去時間は書き込み時間と比較して非常に長いのが普通である。これらのことから、処理時間は、消去回数が１つ異なれば大きく変化する。それにより、一定サイズとして、ブロックサイズとして考えられるサイズの最小公倍数、或いはその整数倍のものを想定すれば、図２に示すように、データサイズがブロックサイズに相当する分割数Ｎで処理時間が階段状に大きく変化することになる。本実施形態では、このことに着目し、処理時間の階段状の大きな時間差Ｔｈを探すことでブロックサイズを認識している。そのようにして認識するブロックサイズについては以降、便宜的に「最適サイズ」と呼ぶことにする。階段状の大きな時間差Ｔｈ検出のために用意した閾値にはその「Ｔｈ」を付して表記する。
【００２７】
図３は、最適サイズ取得処理のフローチャートである。ＣＰＵ２１は、その取得処理を実行することにより、最適サイズを認識する。次に図３を参照して、その最適サイズを認識するための最適サイズ取得処理について詳細に説明する。その取得処理は、ＣＰＵ２１が記憶装置２５に格納されたプログラム３０を実行することで実現される。
【００２８】
まず、ステップＳ１では、上記一定サイズの分割数ｎ１として１を設定する。続くステップＳ２では、タイマ２６を起動して処理時間の計時を開始させ、その次のステップＳ３では、設定した分割数ｎ１（ここでは１）で一定サイズのデータの書き込みを行わせる。そのデータの書き込みは、一定サイズのデータをそのままコントローラ２２に送り、その書き込みを指示することで行われる。
【００２９】
ステップＳ３に続くステップＳ４では、タイマ２６を停止させる。次のステップＳ５では、タイマ２６により計時させた処理時間を、分割数ｎ１＝１の場合の処理時間として例えば記憶装置２５を構成するＲＡＭに記録する。その記録後に移行するステップＳ６では、分割数ｎ１として、それまでの値の２倍の値を設定する。その後は同様にして、設定した分割数ｎ１で一定サイズのデータを分割して書き込みを行わせた場合の処理時間をタイマ２６により計時し、計時した処理時間を記録する（ステップＳ７〜Ｓ１０）。ステップＳ１１には、その記録後に移行する。
【００３０】
ステップＳ１１では、今回、計時した処理時間を前回、計時した処理時間と比較し、その時間差が閾値Ｔｈ未満か否かの判定を行う。その時間差が閾値Ｔｈ未満であった場合、その旨が判定されてステップＳ１２に移行する。そうでない場合には、つまりその時間差が閾値Ｔｈ以上であった場合には、その旨が判定されてステップＳ１３に移行し、前回の書き込みを行わせた際の分割数ｎ１に相当するデータサイズを最適サイズとして設定した後、一連の処理を終了する。
【００３１】
一方、ステップＳ１２では、最適サイズの確認を終了すべきタイミングか否かの判定を行う。ブロックサイズとして考えにくいデータサイズに分割しての書き込みを行う必要性は低い。このことから、本実施形態では、分割数ｎ１が予め定めた一定分割数を越えていない場合、その旨が判定されて上記ステップＳ６に戻る。そうでない場合には、つまり分割数ｎ１が一定分割数を越えた場合には、その旨が判定されてステップＳ１４に移行し、最適サイズを示す分割数ｎ１として任意の数を割り当てた後、一連の処理を終了する。
【００３２】
周知のように、メモリカード１０に書き込まれるデータには必要に応じて、システム管理用データが付加される。このため、分割数ｎ１に従って分割するデータの実際のサイズは、その管理用データを考慮したものとしている。しかし、その管理用データのサイズは最小のブロックサイズと比較して大きく異なるため、管理用データが付加されるか否かに係わらず、最適サイズを示す分割数ｎ１は正確に特定することができる。
【００３３】
上記最適サイズを認識するためには、メモリカード１０に複数回、データの書き込みを行わなければならない。しかし、その最適サイズを認識することにより、ブロックサイズ未満の複数のデータ（ブロックサイズ以上のデータでは普通、１つ以上のブロックに格納された分とその余りの分（ブロックサイズ未満）に分けられる。その余りの分もここでは含まれる）はパックして（一つにまとめて）メモリカード１０に一度に保存することができる（図９）。それにより、最適サイズを認識した後は、保存の対象となるデータをそのサイズ、その数等に係わらず、常に最小の書き込み回数でメモリカード１０に保存できるため、その寿命はより延ばせることとなる。また、より効率的にデータを保存できるようになるため、メモリカード１０にはより大量のデータを書き込めるようになる。
【００３４】
なお、本実施の形態では、最適サイズは分割数ｎ１を順次、大きく設定していくことにより特定しているが、逆にその分割数ｎ１を順次、小さく設定していくことで特定するようにしても良い。
＜第２の実施形態＞
上記第１の実施形態では、最適サイズの取得は随時、必要に応じて行うことを想定している。しかし、そのような想定の場合には、最適サイズの取得のためにメモリカードにアクセスする（データを書き込む）回数が不必要に多くなる可能性がある。このことから、第２の実施形態は、最適サイズ取得のためのメモリカードへのデータ書き込み回数を最小限に抑えられるようにしたものである。
【００３５】
第２の実施形態によるデータ処理装置の構成は、基本的に第１の実施形態におけるそれと同じである。また、動作も大部分は基本的に同じである。このことから、第１の実施形態の説明で付した符号をそのまま用いつつ、その第１の実施形態から異なる部分についてのみ説明することとする。
【００３６】
第２の実施形態では、記憶装置２５はＲＡＭやＲＯＭの他に、補助記憶装置（例えばハードディスク装置）を含むものであると想定する。その想定では、プログラム３０は、その補助記憶装置上に格納されている。構成上の相違としては基本的にそれのみである。このことから、以降は動作上の相違について詳細に説明する。
【００３７】
最近のメモリカード１０では、セキュリティ向上等の目的から、シリアルナンバーが内蔵されるのが普通となっている。そのシリアルナンバーは、個々のメモリカード１０を一義的に識別できる識別情報である。第２の実施形態はそのシリアルナンバー（識別情報）に着目し、取得した最適サイズをそのシリアルナンバーと共に保存することにより、最適サイズを取得していないメモリカード１０のみを対象にその最適サイズを取得するようにしている。それにより、不必要な最適サイズの取得を行うことを回避して、その取得のためのデータ書き込み回数を最小限に抑えるようにしている。その書き込み回数を最小限に抑えることにより、データ処理装置１はより高速に動作できる形となって、使い勝手もより向上することになる。最適サイズとシリアルナンバーの保存には、記憶装置２５を構成する補助記憶装置（不揮発性メモリ）を利用している。その最適サイズは、それを取得したメモリカード１０に保存するようにしても良い。
【００３８】
図４は、最適サイズ保存処理のフローチャートである。その保存処理は、例えばユーザーが入力装置２４を操作して最適サイズの認識を指示した場合に実行される処理である。次に図４を参照して、その保存処理について詳細に説明する。その保存処理は、第１の実施形態と同じく、ＣＰＵ２１が記憶装置２５（を構成する補助記憶装置）に格納されたプログラムを実行することで実現される。これは、図５でも同様である。
【００３９】
まず、ステップＳ２１では、図３に示す最適サイズ取得処理を実行して、インターフェース２３がアクセス可能なメモリカード１０のブロックサイズと見なす最適サイズを取得する。次のステップＳ２２では、コントローラ２２に指示して、メモリカード１０からシリアルナンバーを読み取らせる。そのシリアルナンバーをコントローラ２２から受け取ると、ステップＳ２３に移行して、記憶装置２５の補助記憶装置（図中「不揮発メモリ」と表記）に、ステップＳ２１で取得した最適サイズと共に保存する。一連の処理はその後に終了する。
【００４０】
図５は、イニシャライズ処理のフローチャートである。そのイニシャライズ処理は、メモリカード１０にデータを書き込む場合に、そのデータの書き込み上、考慮すべき最適サイズを設定するために実行される処理である。次に図５を参照して、そのイニシャライズ処理について詳細に説明する。
【００４１】
まず、ステップＳ３１では、コントローラ２２に指示して、メモリカード１０からシリアルナンバーを読み取らせる。そのシリアルナンバーをコントローラ２２から受け取ると、ステップＳ３２に移行して、記憶装置２５の補助記憶装置に保存されているシリアルナンバーの読み込みを行う。その読み込み後はステップＳ３３に移行する。
【００４２】
ステップＳ３３では、読み込んだシリアルナンバーのなかにステップＳ３１で取得したシリアルナンバーと一致するものがあるか否か判定する。既に最適サイズを取得済みのメモリカード１０をユーザーが装着したような場合、そのシリアルナンバーは補助記憶装置に保存されていることから、判定はＹＥＳとなってステップＳ３４に移行し、そのシリアルナンバーと併せて保存されている最適サイズを補助記憶装置から読み込み、現在、考慮すべき最適サイズとして設定した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなってステップＳ３５に移行し、予め定めたデフォルトサイズを現在、考慮すべきデフォルトサイズとして設定した後、一連の処理を終了する。
【００４３】
なお、本実施形態では、取得した最適サイズの設定、つまり図５に示すイニシャライズ処理はメモリカードにデータを書き込む際に行うようにしているが、そのイニシャライズ処理は別のタイミングで行うようにしても良い。例えば電源投入（ＯＮ）時に行うようにしても良い。電源投入時に行う場合には、ステップＳ３５として、図３に示す最適サイズ取得処理、及び最適サイズとシリアルナンバーを保存する処理を実行するようにしても良い。
＜第３の実施形態＞
上記第２の実施形態では、最適サイズの取得・保存、つまり図４に示す最適サイズ保存処理はユーザーの指示により行うようにしている。これに対し、第３の実施形態は、その保存処理を電源のＯＦＦ時に行うようにしたものである。
【００４４】
第３の実施形態によるデータ処理装置の構成は、基本的に第２の実施形態におけるそれと同じである。また、動作も大部分は基本的に同じである。このことから、第２の実施形態と同様に、第１の実施形態の説明で付した符号をそのまま用いつつ、その第２の実施形態から異なる部分についてのみ説明することとする。
【００４５】
上述したように、第３の実施形態では、最適サイズ保存処理を電源のＯＦＦ時に行うようにしている。このことから、その時に行う最適サイズ保存処理について、図６に示すそのフローチャートを参照して詳細に説明する。
【００４６】
まず、ステップＳ５１では、コントローラ２２に指示して、インターフェース２３がアクセス可能なメモリカード１０に格納されているシリアルナンバーを取得する。続くステップＳ５２では、シリアルナンバーを取得したメモリカード１０の最適サイズの認識状態の判定を行う。そのナンバーが記憶装置２５の補助記憶装置に保存されている場合、最適サイズは既知であると判定してステップＳ５５に移行し、電源のＯＦＦにより実行するサブルーチン処理に制御を移すための処理を実行した後、一連の処理を終了する。そうでない場合には、最適サイズは未知であると判定してステップＳ５３に移行する。
【００４７】
ステップＳ５３では、図３に示す最適サイズ取得処理を実行する。次のステップＳ５４では、その取得処理の実行によって認識した最適サイズを、ステップＳ５１で取得したシリアルナンバーと共に記憶装置２５の補助記憶装置（図中「不揮発メモリ」と表記）に保存する。上記ステップＳ５５にはその後に移行する。
【００４８】
フラッシュメモリの特性により、最適サイズの取得（認識）には或る程度の時間が必要である。そのため、データ処理装置１をユーザーが使用している際にその取得を行うと、比較的に長い待ち時間が生じることになる。しかし、電源のＯＦＦ時にその取得を行うと、そのような待ち時間の発生を回避できるようになる。このため、ユーザーにとっては、データ処理装置１をより快適に使用できるようになる。
【００４９】
なお、図６に示す最適サイズ保存処理では、最適サイズを取得するためにメモリカード１０への不必要なデータの書き込みを行わないことから、図４に示す最適サイズ保存処理の代わりとして実行するようにしても良い。つまりユーザーの指示に応じて実行するようにしても良い。或いは、データ処理装置１の使用（動作）状態を監視し、使用されていない状態のときに実行させるようにしても良い。
＜第４の実施形態＞
周知のように、メモリカードはフォーマットされて使用される。第４の実施の形態は、そのことに着目し、フォーマットを行う際に最適サイズを取得・保存するようにしたものである。
【００５０】
第４の実施形態によるデータ処理装置の構成は、基本的に第２の実施形態におけるそれと同じである。また、動作も大部分は基本的に同じである。このことから、第２、及び第３の実施形態と同様に、第１の実施形態の説明で付した符号をそのまま用いつつ、第２の実施形態から異なる部分についてのみ説明することとする。
【００５１】
上述したように、第４の実施形態では、最適サイズの取得・保存をフォーマットの実行の際に行うようにしている。このことから、そのフォーマットのために実行するフォーマット処理について、図７に示すそのフローチャートを参照して詳細に説明する。
【００５２】
まず、ステップＳ６１では、コントローラ２２に指示して、メモリカード１０全体のデータを消去させるための処理を実行する。次のステップＳ６２では、図３に示す最適サイズ取得処理を実行する。その後に移行するステップＳ６３では、最適サイズの取得に使用したブロックを対象にしたデータ消去を行う。
【００５３】
ステップＳ６３に続くステップＳ６４では、メモリカード１０のフラッシュメモリ（記憶領域）を小さな部分に区分けし、どの部分に何を記録したかを管理するための管理領域を確保することによりフォーマットを行う。その次に移行するステップＳ６５では、コントローラ２２に指示してシリアルナンバーを読み取らせ、そのナンバーをステップＳ６２で得た最適サイズと共に記憶装置２５の補助記憶装置に保存する。その保存を行った後、一連の処理を終了する。
【００５４】
フォーマットには比較的に長い時間が必要である。このため、フォーマットを行う際に最適サイズの取得を行うと、その取得に要する時間が目立たなくなる。また、フォーマットを行ったメモリカード１０への最適な形でのデータの書き込みは常に迅速に行えることから、ユーザーにとっての利便性はより向上することとなる。フォーマットを行う際は、メモリカード１０全体の消去を行うことから、それにどのような状態でデータが書き込まれていても、データの書き込みにかかる時間を常に正確に計時できるようになる。そのため、ブロックサイズを最適サイズとしてより確実に認識できることとなる。
【００５５】
なお、本実施形態では、フォーマット時に最適サイズの取得・保存を行うようにしているが、メモリカード１０のフォーマットは別のデータ処理装置で行われることがありうる。このことから、図４、或いは図６に示す最適サイズ保存処理を必要に応じて実行できるようにすることが望ましい。
【００５６】
上述したようなデータ処理装置を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いはメモリカード等の記録媒体に記録させて配布しても良い。公衆網等の通信ネットワークを介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してデータ処理装置にロードすることにより、その装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【図面の簡単な説明】
【００５７】
【図１】第１の実施形態によるデータ処理装置の構成図である。
【図２】一定サイズのデータの分割数と、その分割数で分割したデータの書き込みに要する処理時間の関係を説明する図である。
【図３】最適サイズ取得処理のフローチャートである。
【図４】最適サイズ保存処理のフローチャートである。
【図５】イニシャライズ処理のフローチャートである。
【図６】最適サイズ保存処理のフローチャートである（第３の実施形態）。
【図７】フォーマット処理のフローチャートである。
【図８】フラッシュメモリの特性を説明するための図である。
【図９】ブロックサイズ未満のデータをフラッシュメモリに書き込む場合の動作をより詳細に説明するための図である。
【符号の説明】
【００５８】
１      データ処理装置
１０    メモリカード
２１    ＣＰＵ
２２    メモリカードコントローラ
２３    インターフェース
２４    入力装置
２５    記憶装置
２６    タイマ
３０    プログラム
【図１】
2007087344.tif 000003
【図２】
2007087344.tif 000004
【図３】
2007087344.tif 000005
【図４】
2007087344.tif 000006
【図５】
2007087344.tif 000007
【図６】
2007087344.tif 000008
【図７】
2007087344.tif 000009
【図８】
2007087344.tif 000010
【図９】
2007087344.tif 000011