(57)【要約】【課題】イレース単位であるイレースブロックのサイズが不明である記録媒体について、当該サイズを算出可能にする。【解決手段】イレースブロックを有する記録媒体の先頭セクタから順次データを書き込み、セクタごとにデータの書き込み開始から、記録媒体からの書き込み完了の応答があるまでの時間を計測する。そして当該応答時間が閾値以上である場合に複数のイレースブロックへのアクセスが行われたと判断して、当該セクタから先頭セクタまでのセクタ数に基づき、セクタ数を記録媒体のイレースブロックのサイズを算出する。【選択図】図４
2012226443.tif 000002
【特許請求の範囲】
【請求項１】
イレースブロックを有する記録媒体の先頭セクタから順次データを書き込む書き込み手段と、
前記記録媒体のセクタごとに、前記書き込み手段による応答時間として、データの書き込み開始から前記記録媒体からの書き込み完了の応答があるまでの時間を計測する計測手段と、
前記計測手段により計測された前記応答時間が閾値以上であるか否かを判断することにより、複数のイレースブロックへのアクセスが行われたか否かを判断する判断手段と、
前記判断手段により前記応答時間が前記閾値以上であると判断されたセクタから前記先頭セクタまでのセクタ数に基づき、前記記録媒体のイレースブロックのサイズを算出する算出手段と、
を備えることを特徴とする電子機器。
【請求項２】
前記書き込み手段は、前記記録媒体を初期化するためのデータを書き込むことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記記録媒体のセクタからデータを読み出す読み出し手段をさらに備え、
前記書き込み手段は、１つのセクタについて前記読み出し手段により読み出された当該セクタのデータを、再び当該セクタに書き込むことを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記閾値は、前記計測手段により計測された前記先頭セクタについての応答時間以上となるように、当該応答時間に基づいて設定されることを特徴とする請求項１乃至３のいずれか１項に記載の電子機器。
【請求項５】
前記算出手段により算出した前記記録媒体のイレースブロックのサイズを、当該記録媒体の個体識別情報に関連付けて記憶する記憶手段をさらに備える請求項１乃至４のいずれか１項に記載の電子機器。
【請求項６】
前記算出手段は、前記判断手段により前記応答時間が前記閾値以上であると判断されたセクタから前記先頭セクタまでのセクタ数から１を減算したセクタ数を前記記録媒体のイレースブロックのサイズとして算出することを特徴とする請求項１乃至５のいずれか１項に記載の電子機器。
【請求項７】
記録媒体が有するイレースブロックのサイズを算出する方法であって、
書き込み手段が、記録媒体の先頭セクタから順次データを書き込む書き込み工程と、
計測手段が、前記記録媒体のセクタごとに、前記書き込み工程の応答時間として、データの書き込み開始から前記記録媒体からの書き込み完了の応答があるまでの時間を計測する計測工程と、
判断手段が、前記計測工程において計測された前記応答時間が閾値以上であるか否かを判断することにより、複数のイレースブロックへのアクセスが行われたか否かを判断する判断工程と、
算出手段が、前記判断工程において前記応答時間が前記閾値以上であると判断されたセクタから前記先頭セクタまでのセクタ数に基づき、前記記録媒体のイレースブロックのサイズを算出する算出工程と、
を備えることを特徴とする記録媒体が有するイレースブロックのサイズを算出する方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の電子機器の各手段として機能させるための、コンピュータが実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体が有するイレースブロックサイズを算出する技術に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤ型のフラッシュメモリ等の半導体で構成された記録媒体は、記録されたデータを削除する場合に、イレースブロックと呼ばれるイレース単位で電気的にデータの一括消去を実行する。半導体で構成された記録媒体は上書き操作ができないため、一時的なバッファ領域に書き込まれ、書き込み対象の領域についてイレース単位分のデータ消去を行った後に、当該書き込み対象の領域に書き込まれることになる。即ち、記録媒体に格納するデータがイレースブロックのサイズを超える場合、データの書き込みにあたり、イレースブロックのサイズの書き込みごとに書き込み対象の領域の消去が実行されることになる。
【０００３】
このようにイレースブロックサイズを超えるサイズを有するデータを格納する場合、記録媒体のハードウェア構成上、イレースブロックサイズ分のデータを書き込むごとにイレースブロックサイズの消去操作後に返される書き込み完了の応答を待たねばならない。即ち、イレースブロックサイズ以上のサイズを有するデータを記録媒体に書き込む場合、イレースブロックサイズ分の書き込みごとに応答待機時間を必要とする。この結果として、データの書き込み完了までの時間がイレースブロックサイズ以下のサイズを有するデータを記録媒体に書き込む場合に比べて遅くなる。また、格納するデータのサイズがイレースブロックサイズを超えない場合であっても、データの格納開始アドレスにより、記録媒体からの書き込み完了の応答を待たねばならない状況も生じうる。
【０００４】
記録媒体のメモリ空間は、図２（ａ）に示すようなデータの読み書きのアドレス指定単位である一定サイズのセクタで構成される。また例えば記録媒体がＦＡＴ（File Allocation Table）システムで管理される場合、記録媒体のメモリ空間はさらに、複数のセクタで構成されるクラスタで構成される。ＦＡＴシステムの場合、当該クラスタ単位でＦＡＴ情報等のデータは管理される。
【０００５】
ここで、例えば１以上のクラスタでイレースブロックが構成されており、当該イレースブロックサイズで区切られたメモリ空間に対して、イレースブロックサイズ以下の画像データを転送して書き込む場合を考える。例えば図２（ｂ）のように、イレースブロックの先頭アドレスからイレースブロックサイズ以下の画像データの書き込みが行われる場合、データ転送に要する時間は図２（ｄ）のように記録媒体からの応答を必要としない。しかしながら、図２（ｃ）に示すようにイレースブロック内の中途のアドレスから当該画像データを転送する場合、複数のイレースブロックへのアクセスを必要とするため、図２（ｅ）のようにデータ転送中に消去の時間分、応答を待機する必要がある。即ち、複数のイレースブロックへのデータアクセスを行う場合は、記録媒体からの応答待ちの時間を要するため、同じデータサイズであってもデータ転送に係る時間が長くなることがある。
【０００６】
このため、ホストＩＣのＤＭＡ制御をイレースブロックサイズに変更する等、複数のイレースブロックへのデータアクセスを回避することにより、データの書き込みに要する時間を短縮する技術もある。
【０００７】
特許文献１には、記録媒体に書き込むデータがイレースブロックサイズの整数倍とならない場合、不足するサイズのデータを記録媒体より読み出して合わせることにより、記録媒体への書き込み速度の低下を回避することが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３２２０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
一般に、データの管理単位であるクラスタは、記録媒体のイレースブロックがクラスタの整数倍のサイズとなるように調整されることが望ましい。しかしながら、例えばコンパクトフラッシュ（登録商標）カード（以下、ＣＦカード）等、半導体で構成された記録媒体の中には、イレース単位であるイレースブロックサイズが規格で規定されておらず、不明である記録媒体が存在する。このような記録媒体では、特許文献１のようにイレースブロックサイズの整数倍となるように書き込むデータを調整することができないため、書き込み速度を向上させることはできない。
【００１０】
また、例えばＤＭＡ転送により記録媒体へのデータ転送が行われる場合、ホストＩＣのＤＭＡ転送サイズをイレースブロックサイズにあわせることができないため、転送するデータはイレースブロックをまたいで書き込まれる可能性がある。
【００１１】
このＤＭＡ転送の例では、ホストＩＣにより記録対象のデータの読み出し開始アドレスと転送データサイズが指定されることによりデータ転送はなされる。このため、所定のデータサイズごとにホストＩＣの処理に係る転送データの準備期間が生じることになり、さらにデータ転送に要する時間を長引かせることもある。
【００１２】
例えば、イレースブロックサイズを超えるサイズを有するデータを記録媒体に書き込む場合、図３（ａ）のようにイレースブロックサイズ分のデータがバッファに書き込まれるごとに書き込み対象の領域の消去及び当該領域への書き込みが実行される。このため、都度、記録媒体からの応答待ち時間が発生する。またＤＭＡ転送を行う場合は、図３（ｂ）のようにデータ転送サイズごとにデータの準備期間が生じる。ＤＭＡ転送では図３（ｄ）のように、イレースブロックサイズ分のデータの書き込み後に生じる記録媒体からの応答待ち時間の開始と、ＤＭＡ転送におけるデータ準備期間の開始とが同時になるよう、転送サイズをイレースブロックサイズに合わせることが望ましい。しかしながら、イレースブロックサイズが不明な記録媒体では、図３（ｃ）のようにＤＭＡ転送の準備期間と記録媒体からの応答待ち時間とが同時に発生しない場合が生じ得、ＤＭＡ転送を行わない場合よりもデータ転送に要する時間が長くなることがあった。
【００１３】
本発明は、上述の問題点に鑑みてなされたものであり、イレース単位であるイレースブロックのサイズが不明である記録媒体について、当該サイズを算出可能にすることを目的とする。
【課題を解決するための手段】
【００１４】
前述の目的を達成するために、本発明の電子機器は、以下の構成を備える。
イレースブロックを有する記録媒体の先頭セクタから順次データを書き込む書き込み手段と、記録媒体のセクタごとに、書き込み手段による応答時間として、データの書き込み開始から記録媒体からの書き込み完了の応答があるまでの時間を計測する計測手段と、計測手段により計測された応答時間が閾値以上であるか否かを判断することにより、複数のイレースブロックへのアクセスが行われたか否かを判断する判断手段と、判断手段により応答時間が閾値以上であると判断されたセクタから先頭セクタまでのセクタ数に基づき、記録媒体のイレースブロックのサイズを算出する算出手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
このような構成により本発明によれば、イレース単位であるイレースブロックのサイズが不明である記録媒体について、当該サイズを算出可能になるので、例えばデータ転送の高速化あるいは効率化を実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るデジタルカメラの機能構成を示したブロック図
【図２】イレースブロック境界の有無によるデータ転送に要する時間の違いを説明するための図
【図３】イレースブロック境界を超える場合の転送時間の遅延、及びＤＭＡ転送に係る転送時間の遅延を説明するための図
【図４】本発明の実施形態１に係るイレースブロックサイズ算出処理のフローチャート
【図５】本発明の変形例に係るイレースブロックサイズ算出処理のフローチャート
【図６】本発明の変形例に係る表示部１０６の表示例
【発明を実施するための形態】
【００１７】
（実施形態１）
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、電子機器の一例としての、接続された記録媒体に対して、当該記録媒体の１セクタごとの書き込みを実行可能なデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、接続された記録媒体に対して、当該記録媒体の１セクタごとの書き込みを実行することが可能な任意の機器に適用可能である。また、本明細書において、例えばＣＦカード等のイレースブロックの単位サイズをデジタルカメラ側で知る手段を持たない記録媒体は「イレース単位不明媒体」と表現して説明するものとする。
【００１８】
（デジタルカメラ１００の構成）
図１は、本発明の実施形態に係るデジタルカメラの機能構成を示すブロック図である。
システム制御部１０１は、デジタルカメラ１００が備える各ブロックの動作、及び後述するイレース単位不明媒体２００へのデータ転送を制御するブロックである。システム制御部１０１は、ＣＰＵ（Central Processing Unit）１１１、タイマ１１２、及びＤＭＡＣ（Direct Memory Access Controller）１１３を備えるものとする。ＣＰＵ１１１は、例えば不揮発性メモリ１０２に記憶されている後述のイレースブロックサイズ算出処理を読み出し、メモリ１０３に展開して実行することにより、デジタルカメラ１００の各ブロックの動作を制御する。タイマ１１２は、システムタイマであり、処理に係る時間計測や任意時間経過後の割り込み処理の発生、あるいは処理中の各ブロックの動作タイミングを通知する制御信号を発生する機能を備える。ＤＭＡＣ１１３は、イレース単位不明媒体２００へのデータ転送を制御するブロックである。ＤＭＡＣ１１３は、ＣＰＵ１１１より転送開始指示を受信した後は、ＣＰＵ１１１の制御を介さず、後述するメモリ１０３に記憶されているデータをイレース単位不明媒体２００に転送することができる。
【００１９】
なお、本実施形態ではハードウェアとしてデジタルカメラ１００が備える各ブロックにおいて処理が実現されるものとして説明するが、本発明の実施はこれに限らず、各ブロックの処理は当該各ブロックと同様の処理を行うプログラムで実現されてもよい。また、本実施形態ではイレース単位不明媒体２００へのデータ転送はＤＭＡＣ１１３により行われるものとして説明するが、本発明の実施はこれに限らず可能であることは容易に理解されよう。
【００２０】
不揮発性メモリ１０２は、例えば電気的に書き換え可能な記憶装置であり、後述するイレースブロックサイズ算出処理のプログラムに加え、各ブロックの動作に必要となる設定パラメータ等が記憶されている。なお、本実施形態では不揮発性メモリ１０２には、後述するイレースブロックサイズ算出処理において判明したイレース単位不明媒体２００のイレースブロックの単位サイズの情報が、当該イレース単位不明媒体２００の識別情報とともに格納されるものとする。イレースブロックサイズは、記録媒体の個体ごとに異なるため、当該記録媒体の個体識別情報に関連付けて不揮発性メモリ１０２に格納することで、単位サイズの検出が完了した記録媒体については、従来技術のようにデータ転送を高速化することができる。
【００２１】
なお、本発明の実施はこれに限らず、例えば算出したイレースブロックの単位サイズの情報は、イレース単位不明媒体に記録されるものであってもよい。即ち、このようにすることで、１つの機器においてイレースブロックの単位サイズが算出された後は、他の機器に当該イレース単位不明媒体が接続された場合であっても、データ転送の効率化を図ることができる。
【００２２】
メモリ１０３は、書き換え可能な揮発性の記憶装置であり、プログラムの展開領域に限らず、例えば後述する撮像部１０４により撮像された画像等、各ブロックの処理で出力されたデータが一時的に格納される。
【００２３】
撮像部１０４は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子、レンズ等の光学系、絞り、シャッタ、Ａ／Ｄ変換器等から構成されるブロックであり、被写体を撮像して得られた画像信号を出力する。具体的には撮像部１０４は、光学系により撮像素子に結像された被写体の光学像をアナログ画像信号に光電変換し、さらに当該アナログ画像信号に対してＡ／Ｄ変換処理を適用することにより、得られたデジタル画像信号を出力する。撮像部１０４から出力されたデジタル画像信号は、例えばメモリ１０３に格納される。
【００２４】
電源制御部１０５は、電源検出回路、ＤＣ／ＤＣコンバータ、デジタルカメラ１００が備える各ブロックへの給電を切り替えるスイッチ回路等により構成される。電源制御部１０５は、例えば充電池等の電源１２０が接続されたことを検出し、接続された電源の種類、電池残量等の検出を行い、当該検出結果をシステム制御部１０１に出力する。また電源制御部１０５は、システム制御部１０１の制御に基づいてＤＣ／ＤＣコンバータを制御し、イレース単位不明媒体２００を含む各ブロックの動作に必要な電圧を、必要な期間だけ供給する。電源１２０は、例えばアルカリ電池やリチウム電池等の一次電池やＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプター等であってよい。
【００２５】
表示部１０６は、例えば小型ＬＣＤ等のデジタルカメラ１００が備える表示装置である。表示部１０６には、システム制御部１０１の制御により、撮像部１０４により出力された画像データ、イレース単位不明媒体２００に記録されている画像データ、あるいは不揮発性メモリ１０２に格納されているメニューやエラー表示等のＧＵＩデータが表示される。
【００２６】
操作部１０７は、例えばデジタルカメラ１００が備えるメニューボタンや撮影ボタン等の、ユーザからの操作入力を受け付けるユーザインタフェースである。操作部１０７は、ユーザにより操作部１０７が備える各ユーザインタフェースが操作されたことを検出すると、当該検出した動作に応じた操作信号をシステム制御部１０１に出力する。
【００２７】
記録媒体Ｉ／Ｆ１０８は、イレース単位不明媒体２００との接続を行うインタフェースであり、ホストコントローラを有し、イレース単位不明媒体２００の規格に準拠したアクセスを行う。イレース単位不明媒体２００は、イレース単位であるイレースブロックを有する記録装置であり、記録媒体Ｉ／Ｆ１０８を介してＤＭＡＣ１１３より転送されたデータが書き込まれる。なお、本発明が対象とするイレース単位不明媒体２００は、デジタルカメラ１００等の機器に接続された際に、イレースブロックの単位サイズが不明である記録媒体である。
【００２８】
（イレースブロックサイズ算出処理）
このような構成をもつ本実施形態のデジタルカメラ１００のイレースブロックサイズ算出処理について、図４のフローチャートを用いて具体的な処理を説明する。当該フローチャートに対応する処理は、システム制御部１０１のＣＰＵ１１１が、例えば不揮発性メモリ１０２に記憶されている対応する処理プログラムを読み出し、メモリ１０３に展開して実行することにより実現することができる。
【００２９】
なお、本イレースブロックサイズ算出処理は、例えばユーザがメニュー画面を閲覧しながら、イレース単位不明媒体２００の物理フォーマットの実行を選択した際に開始されるものとして説明する。また、上述したように本処理が一度実行された記録媒体は、記録媒体の個体識別情報とともにイレースブロックイズの情報が不揮発性メモリ１０２に記憶される。これにより、再度本処理を実行することなく当該記録媒体へのデータ転送を効率化することができる。
【００３０】
Ｓ４０１で、システム制御部１０１は、例えば不揮発性メモリ１０２に記憶されているアクセス開始アドレスの情報を初期化する。具体的にはシステム制御部１０１は、イレース単位不明媒体２００に記録されている当該イレース単位不明媒体２００のメモリ空間の先頭セクタアドレスの情報を記録媒体Ｉ／Ｆ１０８を介して取得する。そしてシステム制御部１０１は、当該先頭セクタアドレスの情報でアクセス開始アドレスの情報を更新する。
【００３１】
Ｓ４０２で、システム制御部１０１は、１セクタ分のデータの書き込みに要するアクセス時間を計測するため、タイマ１１２に当該時間の計測を開始させる。本実施形態では、先頭セクタアドレスからアドレス順に、１セクタ分のデータの書き込みに要する時間を計測する。そして、複数のイレースブロックへのアクセスによるイレース単位不明媒体２００の応答待ちが発生するセクタを特定することによりイレースブロックサイズを算出する。なお、タイマ１１２の構成によっては、フリーランカウンタを用いてもよく、計測開始時のフリーランカウンタの値を取得して例えばメモリ１０３に格納してもよい。
【００３２】
Ｓ４０３で、システム制御部１０１は、現在のアクセス開始アドレスに、１セクタ分のデータである、初期化のための「０」を書き込む。そしてＳ４０４でシステム制御部１０１は、１セクタ分のデータアクセスにより、イレース単位不明媒体２００からのデータ書き込み完了の割り込みがあったか否かを判断する。例えばイレース単位不明媒体２００がＣＦカードである場合は、１セクタ分のアクセスが完了した場合、完了したことをホストＩＣに通知するために、完了割り込みが発生する。システム制御部１０１は、完了割り込みがあった場合は処理をＳ４０５に移し、完了割り込みがない場合は本ステップの処理を繰り返す。
【００３３】
Ｓ４０５で、システム制御部１０１は、Ｓ４０２で開始させたタイマ１１２の計測を停止させる。そしてＳ４０６で、システム制御部１０１は、当該停止させたタイマ１１２の計測時間、即ち１セクタ分のデータアクセス開始から完了割り込みまでに要した時間が、予め定めた１セクタ分のアクセス時間の閾値以上であるか否かを判断する。システム制御部１０１は、１セクタ分のデータアクセス開始から完了割り込みまでに要した時間が、予め定めた１セクタ分のアクセス時間の閾値以上である場合は処理をＳ４０９に移し、閾値未満である場合は処理をＳ４０７に移す。
【００３４】
なお、１セクタ分のアクセス時間の閾値は、複数のイレースブロックへのアクセスを行ったことにより、応答待ち時間が生じたことを判別することが可能な値であり、様々な規格の記録媒体を想定した上で予め設定されればよい。また当該閾値は個体ごとに異なるため、イレースブロックが１セクタで構成されることはないことを踏まえ、例えばイレース単位不明媒体２００の先頭セクタにデータを書き込んだ際の完了割り込みまでの応答時間に基づいて設定してもよい。即ち、先頭セクタについての応答時間以上、かつ複数のイレースブロックへのアクセスを行った場合の応答時間以下の値に閾値は設定されればよい。
【００３５】
Ｓ４０７で、システム制御部１０１は、イレース単位不明媒体２００のメモリ空間の全セクタについて初期化が完了したか否かを判断する。システム制御部１０１は、イレース単位不明媒体２００のメモリ空間の全セクタについて初期化が完了している場合は本イレースブロックサイズ算出処理を完了する。またシステム制御部１０１は、全セクタについて初期化が完了していない場合はＳ４０８でアクセス開始アドレスの値をインクリメントし、処理をＳ４０２に戻す。そしてシステム制御部１０１は新たなアクセス開始アドレスについて、初期化及びデータアクセスに要する時間の計測を実行する。
【００３６】
Ｓ４０６で１セクタ分のデータアクセス開始から完了割り込みまでに要した時間が、予め定めた１セクタ分のアクセス時間の閾値以上であると判断した場合、システム制御部１０１は、Ｓ４０９でイレースブロックサイズを特定する。即ち、１セクタ分のデータアクセス開始から完了割り込みまでに要した時間が閾値以上である場合は、複数のイレースブロックへのアクセスを行ったと判断できるため、イレースブロックサイズは以下の式で算出することができる。
（イレースブロックサイズ）＝（現在のセクタアドレス）−（先頭セクタアドレス）
【００３７】
つまり、実体的には、現在アクセスしたセクタから先頭セクタまでのセクタ数から１を減算したセクタ数が、イレースブロックに含まれるセクタ数となる。
【００３８】
システム制御部１０１は、このように特定したイレースブロックサイズを、イレース単位不明媒体２００に記録されている当該イレース単位不明媒体２００の個体識別情報に関連付けて、不揮発性メモリ１０２に格納する。このようにすることで、イレース単位不明媒体２００へのデータ書き込み時の複数のイレースブロックへのアクセスを回避するよう、ＤＭＡ転送の転送データサイズを設定することが可能になる。
【００３９】
そしてＳ４１０で、システム制御部１０１は、イレース単位不明媒体２００のメモリ空間の残りのセクタについて「０」を書き込んで初期化を続行し、本イレースブロックサイズ算出処理を完了する。なお、本ステップで行う初期化が完了していないセクタの初期化は、Ｓ４０１からＳ４０９のように１セクタずつ実行する必要は無いことは容易に理解されよう。
【００４０】
以上説明したように、本実施形態の電子機器は、イレース単位であるイレースブロックのサイズが不明の記録媒体について、当該サイズを算出することができる。具体的には電子機器は、イレースブロックを有する記録媒体の先頭セクタから順次データを書き込み、セクタごとにデータの書き込み開始から、記録媒体からの書き込み完了の応答があるまでの時間を計測する。そして当該応答時間が閾値以上である場合に複数のイレースブロックへのアクセスが行われたと判断して、当該セクタから先頭セクタまでのセクタ数に基づき、セクタ数を記録媒体のイレースブロックのサイズを算出する。
【００４１】
このようにすることで、接続された記録媒体のイレースブロックサイズが不明の場合であっても、イレースブロックサイズを算出することができるため、当該記録媒体へのデータ転送を高速化あるいは効率化することが可能となる。
【００４２】
（変形例）
上述した実施形態１では、イレース単位不明媒体２００の初期化に合わせてイレースブロックサイズを算出するものとして説明した。本変形例では、イレース単位不明媒体２００のデータを初期化することなくイレースブロックサイズを算出する方法について説明する。
【００４３】
（イレースブロックサイズ算出処理）
上述の実施形態１と同様の構成をもつ本変形例のデジタルカメラ１００のイレースブロックサイズ算出処理について、図５のフローチャートを用いて具体的な処理を説明する。なお、本イレースブロックサイズ算出処理において、実施形態１のイレースブロックサイズ算出処理と同様の処理を行うステップについては、同一の参照符号を付して説明を省略し、本変形例に特徴的なステップを中心に説明する。
【００４４】
本変形例におけるイレースブロックサイズ算出処理は、例えばイレース単位不明媒体２００へのデータ転送を高速化するための指示がユーザによりなされた際に開始されるものとして説明する。例えばユーザによりメニューボタンが操作されて表示部１０６に図６（ａ）のようなＧＵＩが表示された際に、さらにユーザにより「カード高速化」メニュー６００が選択された場合に、図６（ｂ）のような確認画面を経て処理が実行されてもよい。当該処理が実行中は、例えば図６（ｃ）に示すようなプログレスバー６０１を含むＧＵＩが、表示部１０６に表示されればよい。
【００４５】
しかしながら本イレースブロックサイズ算出処理の実施のタイミングはこれに限らず、例えばイレース単位不明媒体２００が接続された際、あるいはイレース単位不明媒体２００がスロットに挿入されてスロットカバーが閉められた際等に実行されてもよい。
【００４６】
Ｓ５０１で、システム制御部１０１は、イレース単位不明媒体２００の先頭セクタアドレスから、所定のサイズのデータを読み出し、メモリ１０３に記憶する。本ステップでイレース単位不明媒体２００からデータを読み出す所定のサイズは、様々な規格の記録媒体で想定されるイレースブロックサイズよりも十分に大きいサイズであるものとする。
【００４７】
そしてＳ５０２で、システム制御部１０１は、イレース単位不明媒体２００のアクセス開始アドレスに、Ｓ５０１で読み出してメモリ１０３に記憶したデータのうち、当該アクセス開始アドレスに記録されていたデータを書き込む。そしてＳ４０４でシステム制御部１０１は、１セクタ分のデータアクセスにより、イレース単位不明媒体２００からのデータ書き込み完了の割り込みがあったか否かを判断する。
【００４８】
即ち、本変形例では、イレース単位不明媒体２００に記録されているデータを事前に読み出す。そしてアクセス時間を計測する際に当該データを１セクタずつ書き戻すことにより、イレース単位不明媒体２００を初期化することなくイレース単位不明媒体２００のイレースブロックサイズを算出することができる。
【００４９】
なお、本変形例ではイレース単位不明媒体２００からイレースブロックサイズよりも十分に大きいサイズのデータを計測前に読み出すものとして説明したが本発明の実施はこれに限らない。例えばイレース単位不明媒体２００に書き戻すデータは、各セクタのアクセス時間を計測する直前に当該セクタから１セクタ分のデータを読み出す、あるいは所定のセクタごとにデータの読み出しを行う構成であってもよい。
【００５０】
（実施形態２）
上述した実施形態１及び変形例では、１セクタずつデータを書き込み、完了割り込みが発生するまでの時間を、タイマ１１２を用いて計測することでイレースブロックサイズを算出する方法について説明した。本実施形態では、１セクタずつのデータ書き込みによらずに、イレースブロックサイズを算出する方法について説明する。
【００５１】
（デジタルカメラ１００の構成）
本実施形態のデジタルカメラ１００は、実施形態１及び変形例の構成に加えて、バスモニタ１０９を有する。図１に破線で示したバスモニタ１０９は、イレース単位不明媒体２００と記録媒体Ｉ／Ｆ１０８との間の信号をモニタ可能なブロックである。バスモニタ１０９は、各セクタのデータの書き込み開始から完了割り込みまでに要する応答時間を計測することができる。具体的には、例えばＣＦカードのようなイレース単位不明媒体２００では、ＵＤＭＡ（Ultra Direct Memory Access）転送に対応しているものが存在する。このような場合、ＵＤＭＡ転送では、ＤＭＡＣ１１３のホストＩＣからの転送リクエスト（ＤＭＡＲＱ）とイレース単位不明媒体２００からの応答（ＤＭＡＣＫ）とで、相互にネゴシエーションをとりながら転送を実現している。このため本実施形態のバスモニタ１０９は、ＤＭＡＣ１１３のホストＩＣからイレース単位不明媒体２００へのデータ書き込み時に、ＤＭＡＲＱがアサートされてから、ＤＭＡＣＫがアサートされるまでの時間を計測する。
【００５２】
このようなバスモニタ１０９を用いる場合、複数セクタ分のサイズのデータを書き込む場合であっても、セクタごとに応答時間を計測することが可能である。即ち、上述の実施形態１及び変形例と同様に先頭セクタアドレスから順に初期化、あるいは読み出したデータを書き込む際に、１以上のセクタ分のサイズのデータの書き込みを行いながらイレースブロックサイズを算出することができる。このため、イレースブロックサイズの算出に要する時間を短縮することが可能になる。
【００５３】
なお、本実施形態ではバスモニタ１０９を用いる構成について説明したが、複数セクタ分のサイズのデータを書き込む場合であってもセクタごとに応答時間を計測可能な任意のハードウェアを用いてもよいことは容易に想像されよう。
【００５４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012226443.tif 000003
【図２】
2012226443.tif 000004
【図３】
2012226443.tif 000005
【図４】
2012226443.tif 000006
【図５】
2012226443.tif 000007
【図６】
2012226443.tif 000008