説明

記録装置、記録装置の制御方法、及びコンピュータプログラム

【課題】 記憶媒体用の入出力バスのクロック周波数を、記録装置の所望するデータの入出力速度に合わせて調整できるようにする。
【解決手段】 デジタルカメラ100と記憶媒体150との間の入出力バスの動作周波数である入出力バスクロック周波数を、記憶媒体150の入出力速度特性とデジタルカメラ100の内部情報(動作設定等)とに応じて制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記録装置、記録装置の制御方法、及びコンピュータプログラムに関し、特に、記録装置に装着された着脱可能な記憶媒体に対してデータの入出力を行うために用いて好適なものである。
【背景技術】
【0002】
記録装置(情報処理装置)の状態に応じて、記録装置全体のクロック周波数(CPUを動作させるクロック周波数)を低くすることにより、記録装置の消費電力を低減する技術がある(特許文献1を参照)。
また、記録装置の複数の部分毎に、クロック周波数を個別に制御し、かつ、各部分を監視する技術がある(特許文献2を参照)。この技術では、各部分の動作状況により必要に応じて、各部分のクロック周期を下げることで、さらに効率良く記録装置の消費電力を減少させることができる。
【0003】
一方、最近の着脱可能な記憶媒体(半導体メモリ、磁気ディスク、フラッシュ・メモリ・カード等)は大容量化し、それに比例するようにデータの入出力速度も向上している。そのため、記録装置に対して着脱される記憶媒体には、データを高速に書き込むことができる記憶媒体もある。
しかしながら、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置に、高速にデータの入出力を行うことに対応していない記憶媒体(例えばフラッシュ・メモリ・カード)を装着すると、次のような問題が生じる虞がある。すなわち、高いクロック周波数で記憶媒体に対してデータの入出力を行った場合の書き込み速度と、低いクロック周波数で記憶媒体に対してデータの入出力を行った場合の書き込み速度とに、差が生じないことがある。
【0004】
この結果、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置に、高速にデータの入出力を行うことに対応していない記憶媒体を装着し、この記憶媒体に対してデータの入出力を行うと、記録装置において無駄な電力を消費する場合がある。この問題に対して、データの書き込み速度をできるだけ落とさずに、記憶媒体用の入出力バスのクロック周波数を低くすることにより、記録装置の無駄な消費電力を低減することができるようにする技術が提案されている(特許文献3を参照) 。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−191017号公報
【特許文献2】特開2000−148279号公報
【特許文献3】特開2006−350968号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述の特許文献3に記載の技術では、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置の所望する「データの入出力速度」に応じて、クロック周波数を制御することができない。
そのため、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置の所望する「データの入出力速度」が、記憶媒体自体の最大の「データの入出力速度」よりも低い場合には、次のような問題が生じる虞がある。すなわち、高いクロック周波数で記憶媒体に対してデータの入出力を行った場合と、低いクロック周波数で記憶媒体に対してデータの入出力を行った場合とで、データの転送時間に差が生じなくなる。これにより、高いクロック周波数で動作させた場合に、記録装置が無駄な電力を消費してしまう。
【0007】
本発明は、このような問題点に鑑みてなされたものであり、記憶媒体用の入出力バスのクロック周波数を、記録装置の所望する「データの入出力速度」に合わせて調整できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
本発明の記録装置は、着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置であって、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出手段と、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定手段と、前記決定手段により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御手段と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、記録装置の内部情報と、記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出し、当該要求値に応じて、入出力バスのクロック周波数を決定する。したがって、記憶媒体用の入出力バスのクロック周波数を、記録装置の所望する「データの入出力速度」に合わせて調整することが可能になる。
【図面の簡単な説明】
【0010】
【図1】デジタルカメラの構成を示す図である。
【図2】入出力バスクロック周波数決定ルーチンの第1の例を示すフローチャートである。
【図3】入出力速度特性実測ルーチンを示すフローチャートである。
【図4】入出力速度実測ルーチンを示すフローチャートである。
【図5】記憶媒体に対するデータの入出力速度特性を示す図である。
【図6】入出力速度見積もりルーチンを示すフローチャートである。
【図7】入出力速度特性をグラフで示す図である。
【図8】入出力バスクロック周波数決定ルーチンの第2の例を示すフローチャートである。
【図9】記憶媒体クロック特性テーブルを示す図である。
【図10】UMLのシーケンス図を用いて制御プログラムを説明する図である。
【発明を実施するための形態】
【0011】
以下に、本発明の実施形態を、図面に基づいて詳細に説明する。
(第1の実施形態)
図1は、本実施形態の記録装置の一例であるデジタルカメラの構成の一例を示す図である。
本実施形態の記録装置は、撮像素子を用いて撮影した静止画像又は動画像の画像データを、所定のファイル形式で、当該記録装置に着脱可能な記憶媒体に記録する機能を有する装置である。
以下、各実施形態では、記録装置がデジタルカメラである場合を例に挙げて説明する。しかしながら、記録装置は、当該記録装置に記憶媒体を着脱可能であり、かつ、当該記憶媒体に対してデータの入出力(読み書き)を行うためのインターフェースを有するものであれば、デジタルカメラに限るものではない。例えば、記録装置は、デジタルビデオカメラ、デジタルカメラ付き携帯電話等の、デジタルカメラとしての機能を有する装置であってもよい。
【0012】
図1おいて、デジタルカメラ100には、記憶媒体150が着脱される。
撮影レンズユニット101は、複数のレンズ(レンズ群)を備えている。デジタルカメラ100は、撮影レンズユニット101を、他の撮影レンズユニットに交換することが可能である。
撮影レンズユニット101は、マイクロコンピュータ126と通信し、その結果に基づいて、撮影レンズユニット101内部のレンズ制御回路101aを制御する。具体的に、撮影レンズユニット101は、撮影レンズユニット101内のフォーカシングレンズを変移させることにより、焦点を合わせる(すなわち、オートフォーカス機能を実行する)。
フォーカシングレンズの変移量は、測距回路117の出力に基づき、マイクロコンピュータ126で演算される。また、撮影レンズユニット101内には絞り制御回路101bが設けられている。撮影レンズユニット101は、マイクロコンピュータ126と通信し、その結果に基づいて、絞り制御回路101bを制御する。具体的に、撮影レンズユニット101は、光学的な絞り値を変化させる。
【0013】
クイックリターンミラー102は、撮影光路中に配置される。クイックリターンミラー102は、撮影レンズユニット101(撮影レンズ)からの被写体光をファインダ光学系(不図示)に導く位置と撮影光路外に退避する位置との間で移動することが可能である。
シャッタ103は、露光を制御するものである。光学フィルタ104は、透過する光を調整するものである。光学フィルタ104は、防塵ガラスで覆われている。撮像素子105は、光学像を電気信号に変換する。A/D変換器106は、撮像素子105からのアナログ信号の出力をディジタル信号に変換する。
【0014】
タイミング発生回路108は、撮像素子105及びA/D変換器106に対してクロック信号や制御信号を供給する。このタイミング発生回路108は、後述するメモリ制御回路111及びマイクロコンピュータ126により制御される。
【0015】
画像処理回路107は、A/D変換器106からの画像データ、或いはメモリ制御回路111からの画像データに対して、当該画像データに付加されている処理データ等に基づき、所定の画素補間処理や現像処理等を行う。
メモリ制御回路111は、A/D変換器106、画像処理回路107、タイミング発生回路108、画像表示メモリ112、メモリ113、及び圧縮/伸長回路114を制御する。
A/D変換器106からのデータが、画像処理回路107及びメモリ制御回路111を介して、画像表示メモリ112或いはメモリ113に書き込まれる。
表示部110は、TFT又はLCD等を備える。画像表示メモリ112に書き込まれた表示用の画像データは表示制御回路109により表示部110に表示される。
【0016】
メモリ113は、例えばRAMであり、以下のメモリ領域を有している。すなわち、メモリ113は、撮影した非圧縮の画像データを一時的に格納するイメージバッファとしての領域を有する。また、メモリ113は、画像処理回路107にて画像データを現像処理する際に使用する処理データや、AF/AE/AWBの演算結果の保持や、その他一時的に使用するデータを記憶するワークバッファとしての領域を有する。また、メモリ113は、圧縮/伸長回路114で圧縮された圧縮画像データを格納するファイルバッファとしての領域を有する。
メモリ113は、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影の場合であっても、メモリ113に対して高速にかつ大量の画像データの書き込みを行うことが可能となる。
【0017】
圧縮/伸長回路114は、離散コサイン変換(DCT)等により画像データをJPEGデータとして圧縮伸長する。圧縮/伸長回路114は、メモリ113に格納された画像データを読み出して圧縮処理或いは伸長処理を行う。圧縮/伸長回路114は、圧縮処理或いは伸長処理を終えたデータをメモリ113に書き込む。
シャッタ制御回路115は、シャッタ103の動作を制御する。
【0018】
ミラー制御回路116は、クイックリターンミラー102を、撮影光路の内外に駆動する。測距回路117は、撮影レンズユニット101のフォーカシングレンズの変位量を制御する。測光回路118は、被写体の輝度を測定する。測光回路118からの出力により、露出が制御される。
【0019】
記憶媒体制御部123は、メモリカード等の記憶媒体150に対する読み書きを制御する。記憶媒体制御部123は、クロック周波数制御部123aと、内部バッファ123bとを有する。クロック周波数制御部123aは、記憶媒体制御部123から記憶媒体150に出力される記憶媒体駆動クロック信号の周波数を制御する。内部バッファ123bは、記憶媒体制御部123が記憶媒体150とデータを送受信する際、一時的に送受信データを蓄積する。
【0020】
DMA制御部124は、メモリ113に保存された画像ファイルデータを、記憶媒体制御部123を介して記憶媒体150に転送する機能と、記憶媒体150から転送されたデータを、記憶媒体制御部123を介してメモリ113に保存する機能とを有する。
マイクロコンピュータ126は、デジタルカメラ100の動作を統括制御する。
タイマ制御部160は、基準クロックのサイクル数を計数することによって時間を計測する機能を有する。
割り込み制御部161は、DMA制御部124や記憶媒体制御部123等の各部で発生した割り込みを、マイクロコンピュータ126に通知する機能を有する。
不揮発性メモリ119には、撮像処理を行うプログラム、画像処理を行うプログラム、及び画像ファイルデータを記憶媒体150に記録するプログラム等の各種プログラムが記録されている。また、不揮発性メモリ119には、これらのプログラムのマルチタスク構成を実現し実行するOS等の各種プログラム、及び各種制御を行うための調整値等が記録されている。
【0021】
次に、デジタルカメラ100が備える各操作部材の一例について説明する。
レリーズスイッチ120及びメニュー操作スイッチ121は、マイクロコンピュータ126の各種の動作指示を入力するための操作部材である。レリーズスイッチ120及びメニュー操作スイッチ121は、各種ボタンスイッチ、ダイアル、及びタッチパネルの少なくとも何れか1つ等により構成される。
ここで、これらの操作部材の一例を具体的に説明する。
【0022】
レリーズスイッチ120は、次に示す一連の処理の動作開始を指示するための操作部材である。レリーズスイッチ120がユーザによって半押しされると、レリーズスイッチ120はSW1の状態となり、そのことを示す信号がマイクロコンピュータ126に出力される。この信号がマイクロコンピュータ126に出力されると、AF(オートフォーカス)処理、及びAE(自動露出)処理等の撮影準備動作の開始が指示する。レリーズスイッチ120がユーザによって全押しされると、レリーズスイッチ120はSW2の状態となり、そのことを示す信号がマイクロコンピュータ126に出力される。この信号がマイクロコンピュータ126に出力されると、撮像処理、ホワイトバランス補正処理、現像処理、及び記録処理等が行われる。撮像処理は、撮像素子105から出力された信号を、A/D変換器106及びメモリ制御回路111を介して、メモリ113に画像データとして書き込む処理である。ホワイトバランス補正処理は、画像データに対して設定されているホワイトバランスモードに応じて、ホワイトバランスを調整する処理である。ホワイトバランス補正処理は、画像処理回路107により実行される。記録処理は、メモリ113から、現像された画像データを読み出し、その画像データに対して圧縮を行い、記憶媒体150に圧縮された画像データを書き込む処理である。画像データに対する圧縮は、圧縮/伸長回路114により行われる。
【0023】
メニュー操作スイッチ121は、例えば、不図示のメニューキー、セットキー、及び十字キーの組み合わせで構成される。ユーザは、デジタルカメラ100の撮影条件や現像条件等の各種設定の変更や、外部記憶媒体の省電力モードの選択等の各種操作を、表示部110に表示される画面表示を見ながらメニュー操作スイッチ121を操作することにより行うことができる。
【0024】
次に、デジタルカメラ100と接続される各構成要素及び付属部材について説明する。
電源制御回路122は、電池検出回路、DC−DCコンバータ、及び通電するブロックを切り換えるスイッチ回路等を備える。
電源制御回路122は、電池の装着の有無、電池の種類、及び電池残量の検出を行う。そして、電源制御回路122は、これらの検出結果と、マイクロコンピュータ126からの指示とに基づいて、DC−DCコンバータを制御する。これにより、必要な電圧が必要な期間、記憶媒体150を含む各部へ供給される。
コネクタ125は、デジタルカメラ100と、メモリカード等の記憶媒体150とを相互に電気的に接続するためのものである。
【0025】
記憶媒体150は、例えば、半導体メモリで構成されたメモリカードである。記憶媒体150は、コネクタ151と、メモリ制御部152と、記憶媒体部153とを有する。コネクタ151は、デジタルカメラ100と記憶媒体150とを相互に電気的に接続するためのものである。メモリ制御部152は、記憶媒体部153に対するデータの読み書きを制御する。記憶媒体部153は、例えば、半導体メモリから構成される。
【0026】
図2は、コネクタ125及びコネクタ151のクロック周波数を決定する入出力バスクロック周波数決定ルーチンの一例を説明するフローチャートである。以下の説明では、必要に応じて、コネクタ125とコネクタ151とを合わせて「入出力バス」と称する。尚、本ルーチンは、マイクロコンピュータ126が、不揮発性メモリ119内のコンピュータプログラムを実行することにより実現される。
【0027】
ステップS201において、マイクロコンピュータ126は、タイマ制御部160の時間計測機能を用いて、入出力速度特性実測ルーチンを実行する。入出力速度特性実測ルーチンでは、記憶媒体150の入出力速度特性を実測する。
入出力速度特性とは、クロック周波数制御部123aが出力する入出力バスのクロック周波数と、その入出力バスのクロック周波数で入出力バスを動作させた場合の「記憶媒体150におけるデータの入出力速度の実測値」とを組にしたものである。以下の説明では、クロック周波数制御部123aが出力する入出力バスのクロック周波数を必要に応じて「入出力バスクロック周波数」と称する。
【0028】
図3は、図2のステップS201の入出力速度特性実測ルーチンの詳細の一例を説明するフローチャートである。尚、本ルーチンは、マイクロコンピュータ126が、不揮発性メモリ119内のコンピュータプログラムを実行することにより実現される。
【0029】
ステップS301において、マイクロコンピュータ126は、クロック周波数制御部123aに設定可能な入出力バスクロック周波数のリストを不揮発性メモリ119から獲得する。クロック周波数制御部123aに設定可能な入出力バスクロック周波数のリストには、クロック周波数制御部123aに設定することのできる全ての周波数を格納することができる。また、クロック周波数制御部123aに設定することのできる周波数から、1つ以上の周波数を選択し、格納してもよい。
【0030】
次に、ステップS302において、マイクロコンピュータ126は、次の処理を行う。すなわち、マイクロコンピュータ126は、ステップS301で獲得した「入出力バスクロック周波数のリスト」から、未だ取り出していない入出力バスクロック周波数(ステップS307で説明するポインタで示される入出力バスクロック周波数)を1つ取り出す。
次に、ステップS303において、マイクロコンピュータ126は、ステップS302で1つ取り出された入出力バスクロック周波数が空値でないか否かを判断する。
【0031】
ステップS303の判断の結果、ステップS302で1つ取り出された入出力バスクロック周波数が空値でない場合(ステップS303でYESとなる場合)には、ステップS304に進む。ステップS304に進むと、マイクロコンピュータ126は、ステップS302で1つ取り出された入出力バスクロック周波数をクロック周波数制御部123aに設定する。
【0032】
次に、ステップS305において、マイクロコンピュータ126は、入出力速度実測ルーチンを実行する。入出力速度実測ルーチンでは、ステップS304でクロック周波数制御部123aに設定された入出力バスクロック周波数の入出力速度をタイマ制御部160の時間計測機能を用いて実測する。
【0033】
図4は、図3のステップS305の入出力速度実測ルーチンの詳細の一例を説明するフローチャートである。このルーチンは、主として、マイクロコンピュータ126が不揮発性メモリ119内のコンピュータプログラムを実行することにより実現される。
【0034】
ステップS401において、マイクロコンピュータ126は、記憶媒体150へのデータの出力速度を実測する。
具体的に、マイクロコンピュータ126は、実測量として十分な容量のデータを、記憶媒体制御部123を介して記憶媒体150に書き込む。次に、マイクロコンピュータ126は、前記データの書き込み時間を、タイマ制御部160の時間計測機能を用いて実測する。最後に、マイクロコンピュータ126は、実測した書き込み時間と、書き込んだデータ量とから、記憶媒体150へのデータの出力速度を算出する。
ここで、実測量として十分な容量のデータは、不揮発性メモリ119に予め用意してあるデータであってもよいし、不揮発性メモリ119内のコンピュータプログラムに従ってメモリ113に生成されるデータであってもよい。また、マイクロコンピュータ126は、記憶媒体部153に保存されているデータを、記憶媒体制御部123を介してメモリ113に書き込み、この書き込んだデータを、記憶媒体150に書き込むようにしてもよい。
【0035】
次に、ステップ402において、マイクロコンピュータ126は、ステップ401で実測した「記憶媒体150へのデータの出力速度」をメモリ113へ書き込む。
次に、ステップ403において、マイクロコンピュータ126は、記憶媒体150からのデータの入力速度を実測する。
具体的に、マイクロコンピュータ126は、実測量として十分な容量のデータを、記憶媒体制御部123を介して記憶媒体150から読み出す。次に、マイクロコンピュータ126は、前記データの読み出し時間を、タイマ制御部160の時間計測機能を用いて実測する。最後に、マイクロコンピュータ126は、実測した読み込み時間と、読み出したデータ量とから、記憶媒体150からのデータの入力速度を算出する。ここで、実測量として十分な容量のデータは、ステップS401で記憶媒体150に書き込んだデータであっても、記憶媒体150内の別のデータであってもよい。
【0036】
次に、ステップS404において、マイクロコンピュータ126は、ステップS403で実測した「記憶媒体150からのデータの入力速度」をメモリ113へ書き込む。そして、図3のフローチャートに戻る。
図4のフローチャートに示す例では、入力速度と出力速度とを実測しているが、クロック周波数制御部123aを用いて、どちらか一方のみを実測してもよい。この場合、入力速度と出力速度とのうちの他方の値を一方の実測値とすることができる。また、図4のフローチャートに示す例では、出力速度を実測した後に入力速度を実測しているが、この順番に制限するものではなく、入力速度を実測した後に出力速度を実測してもよい。
【0037】
図3のフローチャートの説明に戻り、ステップS306において、マイクロコンピュータ126は、ステップS305(図4)の入出力速度実測ルーチンで獲得した実測結果を、メモリ113へ記憶する。この実測結果は、記憶媒体150へのデータの出力速度と、記憶媒体150からのデータの入力速度である。
【0038】
ステップS306において、マイクロコンピュータ126は、実測記憶処理を行うことができる。ここでいう実測記憶処理は、ステップS305で獲得した実測結果を、記憶媒体150に、特定のファイル名を付して書き込む処理である。このようにすれば、マイクロコンピュータ126は、デジタルカメラ100に対する記憶媒体150の次回装着時に、そのファイル名から、実測結果を獲得することができる。また、マイクロコンピュータ126は、ステップS305で獲得した実測結果のファイルに、「デジタルカメラ100の名称や、ファームバージョン等」のデジタルカメラ100の個体識別情報を含めることができる。このようにすれば、マイクロコンピュータ126は、実測結果を獲得するに際し、その実測結果に対応するデジタルカメラ100を特定することができる。よって、マイクロコンピュータ126は、別のデジタルカメラ100で測定した記憶媒体150の実測結果を間違って使用しないようにすることができる。尚、個体識別情報の内容は、デジタルカメラ100を識別する情報であれば、どのような情報であってもよい。
【0039】
さらに、ステップS306において、マイクロコンピュータ126は、前述した実測記憶処理とは別の実測記憶処理を行うこともできる。ここでいう実測記憶処理は、ステップS305で獲得した実測結果を不揮発性メモリ119に書き込む処理である。このとき、マイクロコンピュータ126は、実測結果と、記憶媒体150の個体識別情報とを合わせて不揮発性メモリ119に書き込むことができる。このようにすれば、マイクロコンピュータ126は、デジタルカメラ100に対する記憶媒体150の次回装着時に、不揮発性メモリ119から、その記憶媒体150に対応する実測結果を獲得することができる。よって、マイクロコンピュータ126は、別の記憶媒体150の実測結果を間違って使用しないようにすることができる。
【0040】
次に、ステップS307において、マイクロコンピュータ126は、入出力バスクロック周波数のリストのポインタを進める。そして、ステップS302に戻り、ポインタで示されている入出力バスクロック周波数について、ステップS302以降の処理を繰り返し実行する。
ステップS303の判断の結果、ステップS302で1つ取り出された入出力バスクロック周波数が空値である場合(ステップ303でNOの場合)、図2のフローチャートに戻る。
【0041】
図5は、記憶媒体150に対するデータの入出力速度特性の一例を示す図である。
図5に示すように、入出力速度特性には、クロック周波数制御部123aに設定可能な入出力バスクロック周波数に対するデータ入出力速度の実測値が含まれる。ここで、データ入出力速度の実測値は、図3のステップS306でメモリ113に書き込まれた「記憶媒体150へのデータの出力速度と、記憶媒体150からのデータの入力速度」である。
【0042】
図5に示す例では、クロック周波数制御部123aに設定可能な入出力バスクロック周波数として、a[MHz]、b[MHz]、c[MHz]、d[MHz](a<b<c<d)の4つが設定されている。また、図5に示す例では、データ入出力速度を、単位時間(sec)あたりのデータ量(MB)で表している。
【0043】
尚、図5に示す例では、記憶媒体150へのデータの出力速度と、記憶媒体150からのデータの入力速度とが入出力速度特性に含まれる場合を例に挙げて示している。しかしながら、これらのうち、どちらか一方が入出力速度特性に含まれるようにしてもよい。
また、図5に示す例では、入出力バスクロック周波数として、4つの周波数を入出力特性として設定している。しかしながら、入出力速度特性として設定する周波数の数はこれより多くても、少なくてもよい。
さらに、図5に示す例では、4つの周波数の全てに対して、データ入出力速度の実測値を設定している。しかしながら、クロック周波数制御部123aに設定可能な入出力バスクロック周波数の全てに対して、データ入出力速度が実測されていなくてもよい。
【0044】
図2の説明に戻り、ステップS202において、マイクロコンピュータ126は、入出力速度見積もりルーチンを実行する。入出力速度見積もりルーチンでは、デジタルカメラ100が所望する「データの入出力速度」を見積もる。本実施形態では、デジタルカメラ100が所望する「データの入出力速度」は、記憶媒体150に対するデータの入出力速度に影響を与える「デジタルカメラ100の内部情報」に基づいて見積もられる。「記憶媒体150に対するデータの入出力速度に影響を与える『デジタルカメラ100の内部情報』」を必要に応じて「デジタルカメラ100の内部情報」と略称する。
デジタルカメラ100の内部情報には、「撮影する画像の解像度、撮影した画像データの圧縮率、連写撮影時の連写速度、及びフレームレート」等の「メニュー操作スイッチ121でデジタルカメラ100に設定される動作設定の情報」が含まれる。これらの情報は、例えば、不揮発性メモリ119やメモリ113等に保存されている。また、「デジタルカメラ100の電池の残量等の電源制御回路122により得られる情報」等の「デジタルカメラ100の動作状況の情報」等もデジタルカメラ100の内部情報に含まれる。ただし、デジタルカメラ100の内部情報は、これらに限定されるものではない。前述した動作設定の情報及び動作状況の情報の何れか一方のみが、デジタルカメラ100の内部情報に含まれるようにしてもよい。
【0045】
図6は、図2のステップS202の入出力速度見積もりルーチンの詳細の一例を説明するフローチャートである。このルーチンは、主として、マイクロコンピュータ126が不揮発性メモリ119内のコンピュータプログラムを実行することにより実現される。
【0046】
ステップS601において、マイクロコンピュータ126は、デジタルカメラ100の動作設定が、静止画撮影及び動画撮影の何れであるかを判断するものとする。
この判断の結果に応じて、マイクロコンピュータ126は、デジタルカメラ100の内部情報を、不揮発性メモリ119やメモリ113等より獲得する。ここでは、マイクロコンピュータ126は、デジタルカメラ100の動作設定の情報を獲得するものとする。図6に示す例では、デジタルカメラ100の動作設定が静止画撮影であれば、ステップS602に進む。ステップS602に進むと、マイクロコンピュータ126は、画像の解像度、画像ファイルの圧縮率、及び撮影の連写速度を獲得する。
【0047】
一方、デジタルカメラ100の動作設定が動画像撮影であれば、ステップS603に進む。ステップS603に進むと、マイクロコンピュータ126は、動画像の解像度、動画像ファイルの圧縮率、及び動画像のフレームレートを獲得する。
尚、ステップS602、又はステップ603で獲得した動作設定は、メモリ113内に記憶されておいてもよい。
【0048】
次に、ステップS604において、マイクロコンピュータ126は、ステップS602、又はステップS603で獲得した動作設定から、デジタルカメラ100が所望する「データの入出力速度」を算出する。例えば、静止画撮影時で、画像の解像度がA×Bであり、ビット深度がCであり、チャネル数がDであり、画像ファイルの圧縮率がEであり、連写枚数がFだとする。この場合、単位時間当たりのデータ量は、A×B×C×D×E×Fとなる。したがって、デジタルカメラ100が所望する「データの入出力速度」は、A×B×C×D×E×Fであると見積もられる。本実施形態では、このようにして、データの入出力速度の要求値が導出される。
【0049】
尚、この例では、デジタルカメラ100の動作設定として、解像度、ビット深度、チャネル数、画像ファイルの圧縮率、連写枚数の5つのパラメータを使用している。しかしながら、デジタルカメラ100の動作設定は、これらのパラメータに限定されるものではなく、これらのパラメータとは別のパラメータを用いてもよい。また、これらのパラメータよりも多くのパラメータを用いて、デジタルカメラ100が所望する「データの入出力速度」を算出してもよい。これとは逆に、これらのパラメータよりも少ないパラメータを用いて、デジタルカメラ100が所望する「データの入出力速度」を算出してもよい。
【0050】
さらに、マイクロコンピュータ126は、要求記憶処理を行うことができる。要求記憶処理では、デジタルカメラ100が所望する「データの入出力速度」を算出した後、その値を固定値として、その値が得られたときの動作設定と対応付けてメモリ113又は不揮発性メモリ119に記憶する。これにより、マイクロコンピュータ126は、同じ動作設定をした際に、メモリ113又は不揮発性メモリ119に記憶した値を参照することができる。これにより、デジタルカメラ100が所望する「データの入出力速度」を算出する手間を省くことができる。
【0051】
以上の図6の入出力速度見積もりルーチンによる処理が終了すると、図2のフローチャートに戻る。図2のステップS203において、マイクロコンピュータ126は、ステップS202(図6)で見積もった「デジタルカメラ100が所望する『データの入出力速度』」以上の速度で、記憶媒体150に対するデータの入出力を実現できるか否かを判断する。この判断は、ステップS201で得られた入出力速度特性(図5を参照)を基にして行われる。尚、以下の説明では、ステップ202(図6)で見積もった「デジタルカメラ100が所望する『データの入出力速度』」を必要に応じて「見積もり入出力速度」と称する。
【0052】
この判断の結果、見積もり入出力速度以上の速度で、記憶媒体150に対するデータの入出力を実現できる場合(ステップS203でYESの場合)には、ステップS204に進む。ステップS204に進むと、マイクロコンピュータ126は、見積もり入出力速度以上の速度に対応する入出力バスクロック周波数をクロック周波数制御部123aに設定する。
ここで、見積もり入出力速度以上の速度に対応する入出力バスクロック周波数のうち、できるだけ低い周波数のものを選択することが好ましい。デジタルカメラ100における無駄な電力消費を低減することができるからである。
【0053】
一方、この判断の結果、見積もり入出力速度以上の速度で、記憶媒体150に対するデータの入出力を実現できない場合(ステップS203でNOの場合)には、ステップS205に進む。ステップS205に進むと、マイクロコンピュータ126は、できるだけ高い入出力速度を実現できる入出力バスクロック周波数をクロック周波数制御部123aに設定する。
尚、見積もり入出力速度が、記憶媒体150に対する最大の入出力速度よりも速い場合、記憶媒体150では、見積もり入出力速度でデータの入出力を実現できないことを、例えば表示部110を用いてユーザに通知しても良い。
【0054】
図7は、入出力速度特性の一例をグラフで示す図である。
図7に示す例では、マイクロコンピュータ126は、クロック周波数制御部123aに入出力バスクロック周波数としてa[MHz]、b[MHz]、c[MHz]、d[MHz](a<b<c<d)の4つを設定することができる。また、図7に示す見積もり入出力速度X[MB/sec]、および見積もり入出力速度Y[MB/sec]は、図6に示した入出力速度見積もりルーチンで得られる見積もり入出力速度の一例である。
【0055】
見積もり入出力速度X[MB/sec]は、入出力バスクロック周波数a[MHz]でのデータ入出力速度H(a)[MB/sec]よりも速く、入出力バスクロック周波数b[MHz]でのデータ入出力速度H(b)[MB/sec]よりも遅い。この場合、入出力バスクロック周波数b[MHz]で記憶媒体150に対するデータの入出力を行えば、デジタルカメラ100が所望する「データの入出力速度」で記憶媒体150に対するデータの入出力を実現することができる。しかも、できるだけ低い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ126は、入出力バスクロック周波数b[MHz]をクロック周波数制御部123aに設定する。
【0056】
見積もり入出力速度Y[MB/sec]は、入出力バスクロック周波数b[MHz]でのデータ入出力速度H(b)[MB/sec]よりも速く、入出力バスクロック周波数c[MHz]でのデータ入出力速度H(c)[MB/sec]よりも遅い。この場合、入出力バスクロック周波数c[MHz]で記憶媒体150に対するデータの入出力を行えば、デジタルカメラ100が所望する「データの入出力速度」を実現することができる。しかも、できるだけ低い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ126は、入出力バスクロック周波数c[MHz]をクロック周波数制御部123aに設定する。
【0057】
見積もり入出力速度Z[MB/sec]は、入出力バスクロック周波数d[MHz]でのデータ入出力速度H(d)[MB/sec]よりも速く、このデータ入出力速度H(d)[MB/sec]よりも速いデータ入出力速度はない。この場合、入出力バスクロック周波数d[MHz]で記憶媒体150に対するデータの入出力を行えば、デジタルカメラ100が所望する「データの入出力速度」を実現することはできない。しかしながら、出来るだけ速い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ126は、入出力バスクロック周波数d[MHz]をクロック周波数制御部123aに設定する。
【0058】
以上のようにして入出力バスクロック周波数を設定すると、図2のステップS206に進む。ステップS206に進むと、マイクロコンピュータ126は、デジタルカメラ100の内部情報に変更があるか否かを判断する。ここでは、マイクロコンピュータ126は、図6を参照しながら説明した動作設定(ステップS602又はS603で獲得した動作設定)に変更があるか否かを判断する。尚、マイクロコンピュータ126は、不揮発性メモリ119又はメモリ113の記憶領域を繰り返し確認することで、動作設定の変更を検出することができる。また、マイクロコンピュータ126は、例えば、メニュー操作スイッチ121等から、割り込みハンドラ等を介して、通知を受け取ることで、動作設定の変更を検出することもできる。
【0059】
この判断の結果、ステップS602又はS603で獲得した動作設定の変更がある場合(ステップS206でYESの場合)には、ステップS202に戻り、変更後の動作設定に基づいて、ステップS202以降の処理を再度行う。
一方、ステップ602又は603で獲得した動作設定の変更がない場合(ステップS206でNOの場合)には、ステップS207に進む。ステップ207に進むと、マイクロコンピュータ126は、入出力バスクロック周波数決定ルーチンを終了するか否かを判断する。尚、入出力バスクロック周波数決定ルーチンを終了するか否かの判断は、例えば、ユーザの設定に基づいて行ったり、不揮発性メモリ119に記憶されているコンピュータプログラムの内容に基づいて行ったりすることができる。
この判断の結果、入出力バスクロック周波数決定ルーチンを終了する場合(ステップS207でYESの場合)には、図2のフローチャートによる処理を終了する。一方、入出力バスクロック周波数決定ルーチンを終了しない場合(ステップS207でNOの場合)には、動作設定の変更を確認するステップS206の処理に戻る。
【0060】
以上のように本実施形態では、デジタルカメラ100と記憶媒体150との間の入出力バスの動作周波数である入出力バスクロック周波数を、記憶媒体150の入出力速度特性とデジタルカメラ100の内部情報(動作設定等)とに応じて制御する。したがって、デジタルカメラ100に装着された記憶媒体150の入出力速度特性に応じて、記憶媒体150に対するデータ入出力速度を調整することができる。
【0061】
本実施形態では、入出力バスクロック周波数に対するデータ入出力速度の実測値を得て、記憶媒体150の入出力速度特性を求めておく(図5、図7を参照)。そして、デジタルカメラ100が所望する「データの入出力速度」の見積もり値と、入出力バスクロック周波数に対するデータ入出力速度の実測値とを比較し、比較した結果に基づいて、入出力バスクロック周波数を決定する。
具体的に説明すると、デジタルカメラ100が所望する「データの入出力速度」の見積もり値以上の速度で、記憶媒体150に対するデータの入出力を実現できる場合には、次のようにして入出力バスクロック周波数を決定する。すなわち、デジタルカメラ100が所望する「データの入出力速度」の見積もり値以上の速度の実績値に対応する入出力バスクロック周波数のうち、最も低い速度に対応する入出力バスクロック周波数を、入出力速度特性から取得して採用する。よって、デジタルカメラ100が所望する「データの入出力速度」で記憶媒体150に対してデータの入出力を行いつつ、デジタルカメラ100の無駄な電力消費を低減することができる。
【0062】
一方、デジタルカメラ100が所望する「データの入出力速度」の見積もり値以上の速度で、記憶媒体150に対するデータの入出力を実現できない場合には、次のようにして入出力バスクロック周波数を決定する。すなわち、最速の速度の実績値に対応する入出力バスクロック周波数を、入出力速度特性から取得して採用する。よって、デジタルカメラ100が所望する「データの入出力速度」に出来るだけ近い速度で、記憶媒体150に対してデータの入出力を行うことができる。
【0063】
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。第1の実施形態では、基本的には、デジタルカメラ100(記録装置)で使用する記憶媒体150を変える度に入出力速度特性を実測する。このため、実際の入出力速度特性を得るのに時間がかかる。そこで、本実施形態では、実測した入出力速度特性を不揮発性メモリ119にテーブルとして保持する実測記憶処理を行い、必要がある場合のみ、記憶媒体150の入出力速度特性を実測する。このように本実施形態と第1の実施形態とは、入出力速度特性を得るための構成及び処理の一部が主として異なる。よって、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付す等して詳細な説明を省略する。
【0064】
図8は、入出力バスのクロック周波数を決定する入出力バスクロック周波数決定ルーチンの一例を説明するフローチャートである。
ステップS804〜S810の処理は、図2のステップS201〜S207の処理と同様であるため、その詳細な説明を省略する。尚、本ルーチンは、マイクロコンピュータ126が、不揮発性メモリ119内のコンピュータプログラムを実行することにより実現される。
【0065】
ステップS801において、マイクロコンピュータ126は、記憶媒体制御部123を介して、記憶媒体150の個体識別情報を獲得し、メモリ113に書き込む。ここで、個体識別情報とは、記憶媒体150を識別する情報を指す。個体識別情報は、例えば、製造元名、製品バージョン、及び製品シリアル番号を含む情報である。ただし、個体識別情報は、これらに限定されるものではない。
【0066】
不揮発性メモリ119には、クロック周波数に対するデータ入出力速度(入出力速度特性)が、記憶媒体150の個体識別情報毎に予め記憶されている。以下、この記憶されているデータのテーブルを、必要に応じて「記憶媒体クロック特性テーブル」と称する。
【0067】
次に、ステップS802において、マイクロコンピュータ126は、メモリ113に書き込んだ記憶媒体150の個体識別情報で識別される記憶媒体150の情報が、記憶媒体クロック特性テーブルにあるか否かを判断する。この判断の結果、記憶媒体クロック特性テーブルに、当該個体識別情報で識別される記憶媒体150の情報がある場合(ステップS802でYESの場合)には、ステップS803に進む。
ステップS803に進むと、マイクロコンピュータ126は、記憶媒体クロック特性テーブルから、その個体識別情報に対応する入出力速度特性を獲得する。
【0068】
一方、記憶媒体クロック特性テーブルに、当該個体識別情報で識別される記憶媒体150の情報がない場合には、ステップS804に進む。ステップS804に進むと、マイクロコンピュータ126は、入出力速度特性実測ルーチンを実行する。入出力速度特性実測ルーチンの詳細の一例は、図3に示した通りである。入出力速度特性実測ルーチンにより、記憶媒体150の入出力速度特性が実測される。
【0069】
図9は、不揮発性メモリ119又はメモリ113に記憶されている記憶媒体クロック特性テーブルの一例を示す図である。
図9に示す例では、記憶媒体クロック特性テーブルには、記憶媒体150の個体識別情報と、記憶媒体150の最終使用日と、クロック周波数制御部123aが出力できるクロック周波数に対するデータの入出力速度とが含まれる。
また、図9に示す例では、記憶媒体150の個体識別情報には、以下の情報が含まれる。まず、製造元ID(Manufacture ID:以下「MID」と称する)と、製品名(Product name:以下「PNM」と称する)が記憶媒体150の個体識別情報に含まれる。さらに、製品バージョン(Product revision:以下「PRV」と称する)と、製品シリアル番号(Product serial number:以下「PSN」と称する)も記憶媒体150の個体識別情報に含まれる。ここで、図9の記憶媒体クロック特性テーブルの2行目、3行目のPSNの値である「*」は、特に値を指定しないことを意味している。また、図9の記憶媒体クロック特性テーブルの2行目、3行目のデータ入出力速度である「未対応」は、記憶媒体150が対応していない入出力バスクロック周波数であることを表す。
【0070】
記憶媒体150の個体識別情報の内容は、記憶媒体150の種別等により異なるが、本実施形態では、記憶媒体150から読み取れる記憶媒体に固有の情報を記憶媒体150の個体識別情報として利用する。例えば、記憶媒体150の個体識別情報として、記憶媒体150のレジスタから、MIDとして「1」、PNMとして「SDYY」、PRVとして「YY」、PSNとして「0x0293A0F1」が読み出されるとする。これらの情報からなる記憶媒体150の個体識別情報は、図9の記憶媒体クロック特性テーブルの2行目の個体識別情報に一致する。よって、ステップS803において、マイクロコンピュータ126は、図9の記憶媒体クロック特性テーブルの2行目のデータ入出力速度(入出力速度特性)を獲得することになる。
【0071】
ここで、検索する際のキーとして、記憶媒体クロック特性テーブルに含まれている個体識別情報の全てを使用しなくてもよい。例えば、記憶媒体150の個体識別情報として、記憶媒体150のレジスタから読み出した「MID及びPNM」が記憶媒体クロック特性テーブルの「MID及びPNM」と一致しているとする。この場合、マイクロコンピュータ126は、その他の個体識別情報を参照せずに、記憶媒体150の個体識別情報が、当該記憶媒体クロック特性テーブルの個体識別情報に該当しているとみなしてもよい。
【0072】
ステップS811〜S814は、記憶媒体クロック特性テーブルをメンテナンスするルーチンである。
まず、ステップS811において、マイクロコンピュータ126は、不揮発性メモリ119に保存される記憶媒体クロック特性テーブルのサイズを取得する。記憶媒体クロック特性テーブルのサイズとは、記憶媒体クロック特性テーブルに格納されている記憶媒体150の数をいう。図9に示す例では、記憶媒体クロック特性テーブルには、3つの記憶媒体150の情報が格納されているため、記憶媒体クロック特性テーブルのサイズは「3」となる。
【0073】
次に、ステップS812において、マイクロコンピュータ126は、ステップS811で取得した記憶媒体クロック特性テーブルのサイズが、不揮発性メモリ119に保持される閾値以下であるか否かを判断する。ここでいう閾値は、デジタルカメラ100に予め設定される値でも良いし、ユーザによって決定される値でも良い。
【0074】
この判断の結果、記憶媒体クロック特性テーブルに保存されている記憶媒体の数が閾値よりも多い場合(ステップS812でNOの場合)には、ステップS813に進む。ステップS813に進むと、マイクロコンピュータ126は、記憶媒体クロック特性テーブルから、最終使用日が最も古いレコード(記憶媒体150の個体識別情報、使用履歴、及びデータ入出力速度の情報)を削除する。そして、ステップS814に進む。
図9に示す例では、記憶媒体クロック特性テーブルの3行目のデータ(最終使用日が19ZZ/ZZ/ZZのデータ)が最も古いデータとなる。このため、3行目のレコード(データ)が、記憶媒体クロック特性テーブルより削除される。
【0075】
尚、図9に示す例では、記憶媒体クロック特性テーブルに最終使用日の情報を格納している。しかしながら、これ以外の情報を記憶媒体クロック特性テーブルに格納し、その情報を基に記憶媒体クロック特性テーブルをメンテナンスしてもよい。さらに、記憶媒体クロック特性テーブルに、記憶媒体150の個体識別情報と、データ入出力速度(入出力速度特性)のみを格納し、別の方法を用いて記憶媒体クロック特性テーブルをメンテナンスしてもよい。
【0076】
一方、ステップS812の判断の結果、記憶媒体クロック特性テーブルに保存されている記憶媒体の数が閾値以下である場合(ステップS812でYESの場合)には、ステップS813の処理を行わずに、ステップS814に進む。
ステップS814に進むと、マイクロコンピュータ126は、不揮発性メモリ119に記憶されている記憶媒体クロック特性テーブルに、ステップS804で実測した「記憶媒体150の入出力速度特性」を追加する。具体的には、マイクロコンピュータ126は、メモリ113に記憶されている「『記憶媒体150の入出力速度特性』のデータと、記憶媒体150の個体識別情報」を不揮発性メモリ119に記憶されている記憶媒体クロック特性テーブルにコピーする。
【0077】
以上のように本実施形態では、記憶媒体150の個体識別情報と、クロック周波数制御部123aが出力できるクロック周波数に対するデータの入出力速度とを含む記憶媒体クロック特性テーブルを入出力速度特性の実測値に基づき作成する。したがって、デジタルカメラ100に装着された記憶媒体150の個体識別情報が記憶媒体クロック特性テーブルに記憶されている場合には、記憶媒体150の入出力速度特性を、改めて実測することなく得ることができる。そして、得られた入出力速度特性と見積もり入出力速度とを用いて、入出力バスクロック周波数を決定することができる。よって、デジタルカメラ100における無駄な消費電力をより一層低減することができる。
【0078】
(制御プログラム)
図10は、UML(Unified Modeling Language)のシーケンス図を用いて、第1の実施形態の制御プログラムの一例を説明する図である。
【0079】
図10において、メイン部1000は、制御プログラムの本体モジュールである。タイマ制御ドライバ1001は、タイマ制御部160を制御するデバイスドライバである。記憶媒体制御ドライバ1002は、記憶媒体制御部123を制御するデバイスドライバである。入出力バスクロック制御ドライバ1003は、クロック周波数制御部123aを制御するデバイスドライバである。メニュー操作スイッチ制御ドライバ1004は、メニュー操作スイッチ121を制御するデバイスドライバである。速度算出プログラム1005は、デジタルカメラ100の所望する「データの入出力速度」を、デジタルカメラ100の動作設定を基に算出するプログラムである。周波数選択プログラム1006は、デジタルカメラ100の所望する「データの入出力速度」を引数として、記憶媒体150の入出力速度特性から、対応する入出力バスクロック周波数を選択するプログラムである。
【0080】
まず、ステップS1010において、メイン部1000は、入出力バスクロック制御ドライバ1003に対して、クロック周波数制御部123aが設定できるクロック周波数の取得を要求する。以下の説明では、クロック周波数制御部123aが設定できるクロック周波数を必要に応じて「設定可能クロック周波数」と称する。
この要求を受けると、入出力バスクロック制御ドライバ1003は、ステップS1010aにおいて、不揮発性メモリ119等から設定可能クロック周波数を読み出す。
次に、ステップS1011において、入出力バスクロック制御ドライバ1003は、メイン部1000に対し、設定可能クロック周波数のリストを返す。以下の説明では、設定可能クロック周波数のリストを、必要に応じて「設定可能クロック周波数リスト」と称する。
【0081】
次に、ステップS1012において、メイン部1000は、設定可能クロック周波数リストからクロック周波数を1つ取り出す。そして、メイン部1000は、取り出したクロック周波数に入出力バスクロック周波数を変更するよう、入出力バスクロック制御ドライバ1003に対して要求を出す。
この要求を受けると、入出力バスクロック制御ドライバ1003は、ステップ1012aにおいて、クロック周波数制御部123bに、新たなクロック周波数を設定して、発生するクロック周波数を変更する。
【0082】
ステップS1013〜S1019は、記憶媒体150へのデータの出力速度を実測するシーケンスである。
まず、ステップS1013において、メイン部1000は、タイマ制御ドライバ1001に対して、時間の計測開始を要求する。この要求を受けると、タイマ制御ドライバ1001は、ステップ1013aにおいて、タイマ制御部160を制御して、時間計測機能を起動する。
【0083】
次に、ステップS1014において、メイン部1000は、記憶媒体制御ドライバ1002に対し、記憶媒体150へのデータの出力開始を要求する。
この要求を受けると、記憶媒体制御ドライバ1002は、ステップS1014aにおいて、記憶媒体150へのデータの出力を開始する。そして、記憶媒体150へのデータの出力が完了すると、ステップS1015において、記憶媒体制御ドライバ1002は、割り込みハンドラ等を介して、メイン部1000にデータの出力完了を通知する。
【0084】
このデータの出力完了の通知を受けると、メイン部1000は、ステップS1016において、タイマ制御ドライバ1001に対し、時間の計測終了を要求する。この要求を受けると、タイマ制御ドライバ1001は、ステップS1016aにおいて、タイマ制御部160を制御して、時間計測機能を停止する。
さらに、ステップS1017において、メイン部1000は、タイマ制御ドライバ1001に対し、データの出力期間中に実測した時間の計測値の取得を要求する。
【0085】
この要求を受けると、タイマ制御ドライバ1001は、ステップS1017aにおいて、タイマ制御部160のレジスタを参照する等して、実測した時間の計測値を取得する。そして、ステップ1018において、タイマ制御ドライバ1001は、メイン部1000に対し計測値を返信する。
次に、ステップS1019において、メイン部1000は、取得した計測値と、出力したデータのサイズとに基づいて、記憶媒体150へのデータの出力速度を算出する。
【0086】
ステップS1020〜S1026は、記憶媒体150からのデータの入力速度を実測するシーケンスである。
まず、ステップ1020において、メイン部1000は、タイマ制御ドライバ1001に対して、時間の計測開始を要求する。この要求を受けると、タイマ制御ドライバ1001は、ステップS1020aにおいて、タイマ制御部160を制御して、時間計測機能を起動する。
【0087】
次に、ステップS1021において、メイン部1000は、記憶媒体制御ドライバ1002に対し、記憶媒体150からのデータの入力開始を要求する。
この要求を受けると、記憶媒体制御ドライバ1002は、ステップS1021aにおいて、記憶媒体150からのデータの入力を開始する。そして、記憶媒体150からのデータの入力が完了すると、記憶媒体制御ドライバ1002は、ステップS1022において、割り込みハンドラ等を介して、メイン部1000にデータの入力完了を通知する。
【0088】
このデータ入力完了通知を受けると、メイン部1000は、ステップS1023において、タイマ制御ドライバ1001に対し、時間の計測終了を要求する。この要求を受けると、タイマ制御ドライバ1001は、ステップS1023aにおいて、タイマ制御部160を制御して、時間計測機能を停止する。
さらに、ステップS1024において、メイン部1000は、タイマ制御ドライバ1001に対し、データの入力期間中に実測した時間の計測値の取得を要求する。
【0089】
この要求を受けると、タイマ制御ドライバ1001は、ステップS1024aにおいて、タイマ制御部160のレジスタを参照する等して、実測した時間の計測値を取得する。そして、ステップS1025において、タイマ制御ドライバ1001は、メイン部1000に対し計測値を返信する。
次に、ステップS1026において、メイン部1000は、取得した計測値と、入力したデータのサイズとに基づいて、記憶媒体150からのデータの入力速度を算出する。
【0090】
次に、ステップS1027において、メイン部1000は、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数があるか否かを判断する。この判断の結果、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数がある場合には、ステップS1012に戻る。そして、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数がなくなるまでステップS1012〜S1026の一連のシーケンスを繰り返す。
【0091】
ステップS1040〜S1046aは、デジタルカメラ100の内部情報に基づいて、入出力バスクロック周波数を決定するシーケンスである。ここでは、デジタルカメラ100の動作設定に基づいて、入出力バスクロック周波数を決定する場合を例に挙げて説明する。
まず、ステップS1040において、メイン部1000は、デジタルカメラ100の動作設定の取得をメニュー操作スイッチ制御ドライバ1004に要求する。
この要求を受けると、メニュー操作スイッチ制御ドライバ1004は、ステップ1040aにおいて、不揮発性メモリ119等から、デジタルカメラ100の動作設定を読み出す。そして、ステップS1041において、メニュー操作スイッチ制御ドライバ1004は、読み出した動作設定を、メイン部1000に返信する。
【0092】
次に、ステップS1042において、メイン部1000は、デジタルカメラ100の動作設定から、デジタルカメラ100が所望する「データの入出力速度」を見積もるため、速度算出プログラム1005を起動し、入出力速度の見積もりを要求する。
この要求を受けると、速度算出プログラム1005は、ステップS1042aにおいて、デジタルカメラ100の動作設定から、見積もり入出力速度を算出する。この見積もり入出力速度の算出方法は、図6のステップS704で説明したため、ここでは、その詳細な説明を省略する。
次に、ステップ1043において、速度算出プログラム1005は、見積もり入出力速度をメイン部1000へ返信する。
【0093】
その後、ステップS1044において、メイン部1000は、見積もり入出力速度から、入出力バスクロック周波数を選択するために、周波数選択プログラム1006を起動し、クロック周波数の選択を要求する。
この要求を受けると、周波数選択プログラム1006は、ステップS1044aにおいて、見積もり入出力速度と、記憶媒体150の入出力速度特性とに基づいて、入出力バスクロック周波数を選択する。この選択方法は、図7を参照しながら説明したので、ここでは、その詳細な説明を省略する。
次に、ステップS1045において、周波数選択プログラム1006は、選択した入出力バスクロック周波数をメイン部1000へ返信する。
【0094】
次に、ステップS1046において、メイン部1000は、ステップ1045で取得したクロック周波数に入出力バスクロック周波数を変更するよう、入出力バスクロック制御ドライバ1003に対して要求を出す。
この要求を受けると、入出力バスクロック制御ドライバ1003は、ステップ1046aにおいて、クロック周波数制御部123aに新たなクロック周波数の値を設定して、入出力バスクロック周波数を変更する。
【0095】
再度、デジタルカメラ100の動作設定が変更された際には、ステップS1030において、メニュー操作スイッチ制御ドライバ1004は、割り込みハンドラ等を介して、メイン部1000に、デジタルカメラ100の動作設定に変更があったことを通知する。この通知を受けたメイン部1000は、ステップS1040〜S1046aの一連のシーケンスを再度実行する。
【0096】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0097】
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【0098】
100 デジタルカメラ、123 記憶媒体制御部、150 記憶媒体

【特許請求の範囲】
【請求項1】
着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置であって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出手段と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定手段と、
前記決定手段により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御手段と、を有することを特徴とする記録装置。
【請求項2】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測手段と、
前記要求値と前記実測値とを比較する比較手段と、をさらに有し、
前記決定手段は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項1に記載の記録装置。
【請求項3】
前記記憶媒体の識別情報と、当該識別情報により識別される記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値と、当該実測値を得たときの前記入出力バスのクロック周波数と、を含む情報を、複数の前記記憶媒体のそれぞれについて記憶する実測記憶手段と、
前記要求値と前記実測値とを比較する比較手段と、をさらに有し、
前記決定手段は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項1に記載の記録装置。
【請求項4】
前記実測記憶手段は、さらに、前記識別情報で識別される記憶媒体の前記記録装置における使用履歴を記憶し、
前記識別情報で識別される記憶媒体の前記記録装置における使用履歴に基づいて、当該記憶媒体とは異なる他の前記記憶媒体についての情報を削除することを特徴とする請求項3に記載の記録装置。
【請求項5】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測手段をさらに有し、
前記計測手段は、前記記録装置に装着された記憶媒体の情報が、前記実測記憶手段により記憶されていない場合に、当該記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測することを特徴とする請求項3又は4に記載の記録装置。
【請求項6】
前記決定手段は、前記要求値よりも速い速度の実測値がある場合には、当該実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定し、前記要求値よりも速い速度の実測値がない場合には、前記実測値のうち、最も速い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項2〜5の何れか1項に記載の記録装置。
【請求項7】
前記決定手段は、前記要求値よりも速い速度の実測値がある場合には、前記実測値のうち、最も遅い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項6に記載の記録装置。
【請求項8】
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報と、当該内部情報に基づいて前記導出手段により導出された要求値とを含む情報を記憶する要求記憶手段をさらに有し、
前記導出手段は、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に対応する要求値が、前記要求記憶手段により記憶されていない場合に、当該要求値を導出することを特徴とする請求項1〜7の何れか1項に記載の記録装置。
【請求項9】
前記記録装置は、撮影装置であり、
前記記録装置の内部情報は、撮影される画像の解像度と、撮影された画像の圧縮率とを含むことを特徴とする請求項1〜8の何れか1項に記載の記録装置。
【請求項10】
着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置の制御方法であって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出工程と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定工程と、
前記決定工程により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御工程と、を有することを特徴とする記録装置の制御方法。
【請求項11】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測工程と、
前記要求値と前記実測値とを比較する比較工程と、をさらに有し、
前記決定工程は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項10に記載の記録装置の制御方法。
【請求項12】
前記記憶媒体の識別情報と、当該識別情報により識別される記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値と、当該実測値を得たときの前記入出力バスのクロック周波数と、を含む情報を、複数の前記記憶媒体のそれぞれについて記憶する実測記憶工程と、
前記要求値と前記実測値とを比較する比較工程と、をさらに有し、
前記決定工程は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項10に記載の記録装置の制御方法。
【請求項13】
前記実測記憶工程は、さらに、前記識別情報で識別される記憶媒体の前記記録装置における使用履歴を記憶し、
前記識別情報で識別される記憶媒体の前記記録装置における使用履歴に基づいて、当該記憶媒体とは異なる他の前記記憶媒体についての情報を削除することを特徴とする請求項12に記載の記録装置の制御方法。
【請求項14】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測工程をさらに有し、
前記計測工程は、前記記録装置に装着された記憶媒体の情報が、前記実測記憶工程により記憶されていない場合に、当該記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測することを特徴とする請求項12又は13に記載の記録装置の制御方法。
【請求項15】
前記決定工程は、前記要求値よりも速い速度の実測値がある場合には、当該実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定し、前記要求値よりも速い速度の実測値がない場合には、前記実測値のうち、最も速い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項11〜14の何れか1項に記載の記録装置の制御方法。
【請求項16】
前記決定工程は、前記要求値よりも速い速度の実測値がある場合には、前記実測値のうち、最も遅い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項15に記載の記録装置の制御方法。
【請求項17】
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報と、当該内部情報に基づいて前記導出工程により導出された要求値とを含む情報を記憶する要求記憶工程をさらに有し、
前記導出工程は、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に対応する要求値が、前記要求記憶工程により記憶されていない場合に、当該要求値を導出することを特徴とする請求項10〜16の何れか1項に記載の記録装置の制御方法。
【請求項18】
前記記録装置は、撮影装置であり、
前記記録装置の内部情報は、撮影される画像の解像度と、撮影された画像の圧縮率とを含むことを特徴とする請求項10〜17の何れか1項に記載の記録装置の制御方法。
【請求項19】
記録装置に装着された着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行することをコンピュータに実行させるためのコンピュータプログラムであって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出工程と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定工程と、
前記決定工程により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御工程と、をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate