(57)【要約】【課題】メーカなどに応じて最良の性能が得られる条件が異なるメモリカードごとに対応して、最良の性能が的確に引き出されるようにする。【解決手段】データ書込制御部１２１は、単位書込データサイズ設定部１２２が順次設定する単位書込データサイズごとに所定回数の単位書込データのランダムライトを実行する。タイマ値保持部１２５は、この所定回数のランダムライトごとに応じてタイマ部１２４が計測したタイマ値を保持する。最適条件決定部１２６は、タイマ値保持部１２５が保持するタイマ値に基づいて転送速度が最も高くなる単位書込データサイズを決定する。【選択図】図４
2012234428.tif 000002
【特許請求の範囲】
【請求項１】
単位書込データのサイズを設定する単位書込データサイズ設定手段と、
前記単位書込データサイズ設定手段により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手段と、
前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、
前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手段と、
前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手段と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記単位書込データをランダムライトにより書き込むための前記メモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段をさらに備え、
前記データ書込制御手段は、前記単位書込データサイズ設定手段により設定される単位書込データのサイズと、前記アクセス範囲容量設定手段により設定されるアクセス範囲の容量の組み合わせごとに応じて、前記メモリへの単位書込データの書き込みを所定回数実行させ、
タイマ値保持手段は、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズとアクセス範囲の容量の組み合わせに対応付けて保持し、
前記最適条件決定手段は、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズとアクセス範囲の容量の組み合わせを最適条件として決定する、
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段と、
前記アクセス範囲容量設定手段により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手段と、
前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、
前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手段と、
前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手段と、
を備えることを特徴とするメモリ制御装置。
【請求項４】
単位書込データのサイズを設定する単位書込データサイズ設定手順と、
前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順と、
を備えることを特徴とするメモリ制御方法。
【請求項５】
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、
前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順と、
を備えることを特徴とするメモリ制御方法。
【請求項６】
メモリ制御装置に、
単位書込データのサイズを設定する単位書込データサイズ設定手順と、
前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順と、
を実行させるためのプログラム。
【請求項７】
メモリ制御装置に、
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、
前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばメモリカードに対するデータ書き込み制御を実行するメモリ制御装置と、その方法に関する。また、メモリ制御装置に所定手順を実行させるためのプログラムに関する。
【背景技術】
【０００２】
ＳＤメモリカードなどに代表されるメモリカードは、携帯電話やデジタルカメラ等の機器に対応する記録媒体として広く使用されている。このメモリカードはリムーバブルであり、ユーザによる機器への取り外しが可能とされている。また、このようなメモリカードは、規格に適合しているものであれば、どのメーカのものでも使用できるようになっている。このため、メモリカードは、多くのメーカによって製造されてユーザに提供されている状況にある。
【０００３】
メモリカードは、その内部のレジスタにおいて、規格に従った転送速度、動作電圧および動作電流などの仕様を示す値を格納している。メモリカードが装着された機器のホストコントローラは、メモリカードから上記各仕様の値を参照することにより、仕様に応じた適切な動作を行うようにされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２２２２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記のようにメモリカードのレジスタに格納される仕様値は、例えば規格で定められた或る特定のデータ書き込み条件を前提として設定されたものとなっている。このために、或るメーカのメモリカードは上記特定のデータ書き込み条件で最良の性能が得られるが、他のメーカのメモリカードでは、最良の性能を引き出すことができないというような不具合を生じるこがある。
【０００６】
本発明はこのような課題を解決することのできるメモリ制御装置、メモリ制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、単位書込データのサイズを設定する単位書込データサイズ設定手段と、前記単位書込データサイズ設定手段により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手段と、前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手段と、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手段とを備えることを特徴とするメモリ制御装置である。
【０００８】
また、本発明は、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段と、前記アクセス範囲容量設定手段により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手段と、前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手段と、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手段とを備えることを特徴とするメモリ制御装置である。
【０００９】
また、本発明は、単位書込データのサイズを設定する単位書込データサイズ設定手順と、前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順とを備えることを特徴とするメモリ制御方法である。
【００１０】
また、本発明は、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順とを備えることを特徴とするメモリ制御方法である。
【００１１】
また、本発明は、メモリ制御装置に、単位書込データのサイズを設定する単位書込データサイズ設定手順と、前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順とを実行させるためのプログラムである。
【００１２】
また、本発明は、メモリ制御装置に、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順とを実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明によれば、メーカや種類などの違いに応じて性能が最良となる条件が異なるメモリカードごとに対応して、最良の性能を引き出すことが可能になるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態におけるメモリカード対応装置１００とメモリカード２００の構成例を示す図である。
【図２】本実施の形態におけるランダムライトによるデータ書き込み処理の態様例を模式的に示す図である。
【図３】メーカの異なるメモリカードごとの単位書込データサイズと転送速度の関係例を示す図である。
【図４】第１の実施の形態におけるホストコントローラ１２０の機能構成例を示す図である。
【図５】第１の実施の形態におけるホストコントローラ１２０の処理手順例を示す図である。
【図６】メーカの異なるメモリカードごとのアクセス範囲容量と転送速度の関係例を示す図である。
【図７】第２の実施の形態におけるホストコントローラ１２０の機能構成例を示す図である。
【図８】第２の実施の形態におけるホストコントローラ１２０の処理手順例を示す図である。
【図９】第３の実施の形態におけるホストコントローラ１２０の機能構成例を示す図である。
【図１０】第３の実施の形態におけるホストコントローラ１２０の処理手順例を示す図である。
【図１１】本実施の形態における変形例としてのメモリカード対応装置の構成例を示す図である。
【発明を実施するための形態】
【００１５】
＜メモリカード対応装置とメモリカード２００の構成例＞
図１は、本発明を実施するための形態（実施の形態）におけるメモリカード対応装置１００とメモリカード２００の構成例を示している。なお、この図に示す構成は、後述する第１〜第３の実施の形態で共通となる。
【００１６】
メモリカード対応装置１００は、メモリカード２００に対応してデータの記録再生が可能なように構成された電子機器である。このメモリカード対応装置１００が具現化される電子機器については特に限定されるべきものではないが、例えばデジタルカメラ、デジタルビデオカメラ、携帯電話などを想定することができる。
【００１７】
メモリカード２００は、例えばＳＤメモリカードなどに代表される、カード型のメモリであり、所定のメモリカード規格に適合するようにしてその形状や仕様が定められている。このメモリカード２００はリムーバブル形式であり、メモリカード対応装置１００に対して装着、取り外しを行うことができる。
【００１８】
メモリカード対応装置１００は、メモリカード２００に対応する部位として、ホストコントローラ１２０とスロット１１０を備える。スロット１１０は、メモリカード２００の装着と取り外しが行われる機構部位である。このスロット１１０にメモリカード２００が装着されることにより、ホストコントローラ１２０と、メモリカード２００内のメモリコントローラ２２０とが通信可能に接続される。
【００１９】
ホストコントローラ１２０は、スロット１１０に対してメモリカード２００が装着された状態と取り外されている状態のいずれであるのかを検出する。また、メモリカード２００が装着されているときには、メモリカード２００に格納されるレジスタ値の読み出しを実行することができる。また、メモリカード２００に対するデータの書き込み・読み出しを実行することができる。
【００２０】
次に、メモリカード２００は、メモリセル２１０とメモリコントローラ２２０を備える。メモリセル２１０は、データを記憶する部位である。このメモリセル２１０は、本実施の形態においてはＮＡＮＤ型フラッシュメモリを採用することとするが、これ以外のメモリ素子や記憶装置が用いられてもよい。
【００２１】
メモリコントローラ２２０は、メモリカード対応装置１００におけるホストコントローラ１２０の制御に応じて、メモリセル２１０に対するデータの書き込み／読み出しを実行する。また、ＮＡＮＤ型フラッシュメモリでは論理アドレス方式が採用されるが、メモリコントローラ２２０は、メモリセル２１０に対するデータ書き込み・読み出し時において、論理アドレスと物理アドレスの間でのアドレス変換を実行する。また、メモリセル２１０内の不良ブロックの管理、エラー訂正処理を実行する。また、メモリコントローラ２２０は、ＮＡＮＤ型フラッシュメモリの書き換え回数に上限があることに応じて、所定のアルゴリズムによるウェアレベリングも実行する。
【００２２】
＜メモリセルに対するデータ書き込み例＞
図２を参照して、本実施の形態のメモリセル２１０に対するデータ書き込みの態様例について説明する。図２（ａ）に示されるように、メモリセル２１０の記憶領域は、（ｐ＋１）個のアクセス範囲＃０〜＃ｐによって論理的に分割される。これらのアクセス範囲＃０〜＃ｐはそれぞれ同じサイズであり、ＮＡＮＤフラッシュメモリとの対応では、例えばブロックといわれるデータ消去単位に対応するものとして捉えることができる。
【００２３】
また、１つのアクセス範囲は、図２（ｂ）に示されるように、（ｑ＋１）個のページ＃０〜＃ｑの領域に分割される。１つのページがデータ書き込み単位に対応する。図２（ｃ）に示される単位書込データ３００は、メモリセル２００に対するデータの書き込み単位として形成される単位データであり、したがって、１ページと同じサイズを有する。
【００２４】
本実施の形態においては、ランダムライトが行われる。このランダムライトにより１つの単位書込データ３００を書き込む際、ホストコントローラ１２０は、単位書込データ３００を書き込むべきアクセス範囲を決定したうえで、この決定したアクセス範囲のアドレス空間に対応する数値範囲において乱数を発生させる。そして、発生された乱数が示すアドレスのページに対して、単位書込データ３００を書き込むようにする。
【００２５】
＜第１の実施の形態＞
［単位書込データサイズと転送速度の関係］
まず、第１の実施の形態について説明する。図示は省略するが、メモリカード２００は、規格に従った転送速度、動作電圧および動作電流などの仕様を示す値をレジスタに格納しており、ホストコントローラ１２０は、メモリカード２００の装着時に、このレジスタ値を読み込む。そして、読み込んだレジスタ値が示す仕様に適合するパラメータを設定してメモリカード２００に対するデータの書き込み・読み出しを実行する。
【００２６】
しかし、レジスタ値が示す転送速度については、単位書込データ３００のサイズ（単位書込データサイズ）との関係性が考慮されてはいない。レジスタ値が示す転送速度は、例えば特定の１つの単位書込データサイズのみを前提として求められたものとなっている。メモリカード２００の転送速度は、単位書込データサイズに応じて変化するものであり、さらに、その変化の仕方は、メモリカード２００のメーカなどの違いに応じて異なることを、本願発明者は確認している。
【００２７】
図３は、メーカＡ、メーカＢおよびメーカＣごとのメモリカード２００についての、単位書込データサイズと転送速度との関係例を示している。この図に示される例によると、メーカＡのメモリカード２００は、単位書込データサイズが６４Ｋバイトのときに転送速度が最大であるのに対して、メーカＢのものは単位書込データサイズが３２Ｋバイトのときに転送速度が最大となっている。さらに、メーカＣのものは４ＫＢのときに転送速度が最大となっている。
【００２８】
上記のように、メモリカード２００はメーカなどの違いに応じて、単位書込データサイズと転送速度との関係が異なる。例えばホストコントローラ１２０がメモリカード２００が格納するレジスタ値に基づいてパラメータ設定を行ったとしても、そのパラメータの１つであるホストコントローラ１２０からのデータの転送速度は、或る値で固定される。このために、メモリカード２００のメーカによっては、転送速度に関して必ずしも最高の性能を引き出せずにいる場合があることになる。このことから、メモリカード２００が格納するレジスタ値によっては、正常な動作は保証できるものの、最大限良好な性能を引き出すことは難しいということがいえる。そこで、第１の実施の形態においては、以降説明するように、装着されたメモリカード２００について、転送速度が最大となる単位書込データサイズを設定できるようにする。これによって、メモリカード２００のメーカなどの違いに係わらず、できるかぎり最大限の性能を発揮させることを可能にする。
【００２９】
［ホストコントローラの機能構成例］
図４は、第１の実施の形態に対応するホストコントローラ１２０の機能構成例を示している。この図に示すホストコントローラ１２０は、データ書込制御部１２１、単位書込データサイズ設定部１２２、タイマ部１２４、タイマ値保持部１２５および最適条件決定部１２６を備える。また、この図においては、メモリカード２００のメモリコントローラ２２０も示されている。このメモリコントローラ２２０は、スロット１１０（同図では図示を省略）にメモリカード２００が装着されていることで、ホストコントローラ１２０と接続された状態にある。
【００３０】
データ書込制御部１２１は、メモリカード２００に対してデータ書き込み制御を実行する機能部である。データ書込制御部１２１は、データを書き込む際には、データ書込要求とともに単位書込データ３００の単位でメモリコントローラ２２０に対して転送する。また、この際には、単位書込データ３００を書き込むべきアクセス範囲に含まれる１つのページのアドレスを指定する。メモリコントローラ２２０は、転送されてくる単位書込データ３００を、指定されたアドレスのページに対して書き込む。
【００３１】
単位書込データサイズ設定部１２２は、データ書込制御部１２１が転送する単位書込データ３００のサイズを設定する部位である。このために、単位書込データサイズ設定部１２２は、設定した単位書込データ３００のサイズをデータ書込制御部１２１に対して通知する。これに応じて、データ書込制御部１２１は、書き込みのために入力するデータを、通知されたサイズにより分割し、この分割されたデータを単位書込データ３００としてメモリカード２００に転送する。
【００３２】
タイマ部１２４は、後述するように、設定された単位書込データサイズの条件下でデータ書込制御部１２１が実行する、所定回数の単位書込データ３００の書き込みに要する時間を計測する。タイマ値保持部１２５は、タイマ部１２４により計測されたタイマ値を保持する。
【００３３】
最適条件決定部１２６は、タイマ値保持部１２５に保持されたタイマ値に基づいて、データ書き込みの最適条件を決定する部位である。第１の実施の形態において、最適条件決定部１２６は、上記最適条件として、転送速度が最も高くなる単位書込データサイズ（最適単位書込データサイズ）を決定する。最適条件決定部１２６は、決定した最適単位書込データサイズを単位書込データサイズ設定部１２２に通知する。単位書込データサイズ設定部１２２は、単位書込データサイズを設定するようにデータ書込制御部１２１に指示を行う。以降、データ書込制御部１２１は、最適単位書込データサイズによる単位書込データ３００を生成してメモリコントローラ２２０に対して転送する。
【００３４】
［処理手順例］
図５は、第１の実施の形態においてホストコントローラ１２０が実行する処理手順例を示している。この図に示す各処理は、図４に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理は、メモリカード２００がスロット１１０に装填されたことを認識するのに応じてキャリブレーションの１つとして実行されるものである。また、この図に示す処理は、ホストコントローラ１２０がプログラムを実行することにより実現されるものとしてみることができる。なお、これらの点については、後述する第２および第３の実施の形態における図８および図１０についても同様である。
【００３５】
ステップＳ１０１において、単位書込データサイズ設定部１２２は、初期値として変数ｎに「０」を代入する。次に、単位書込データサイズ設定部１２２は、ステップＳ１０２において、変数ｎが５未満であるか否かについて判定する。以降の説明から理解されるように、変数ｎは、単位書込データサイズの候補設定に用いられるもので、ここでは、「０」〜「４」の変数ｍごとに応じて５つの最適単位書込データサイズの候補を順次設定していくこととしている。このステップＳ１０２において、変数ｎが５未満であると判定した場合、単位書込データサイズ設定部１２２は、ステップＳ１０３以降の手順に進む。
【００３６】
ステップＳ１０３において、単位書込データサイズ設定部１２２は、単位書込データサイズについて２（ｎ＋１）Ｋバイトを設定する。具体的に、変数ｎは、０〜４の値を取り得るので、ステップＳ１０３が繰り返される都度、順次、４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトが設定されることになる。
【００３７】
次に、タイマ部１２４はステップＳ１０４において起動し、時間計測を開始する。これとともに、データ書込制御部１２１は、ステップＳ１０５〜Ｓ１０８により単位書込データ３００のランダムライトを所定回数（ここでは１００回）実行する。つまり、ステップＳ１０５において、データ書込制御部１２１は、変数Ｎについて初期値の「０」を代入する。変数Ｎは、単位書込データ３００の書き込み回数に対応するものとなる。次に、データ書込制御部１２１は、ステップＳ１０６において、ステップＳ１０３により設定された単位書込データサイズにより単位書込データ３００を生成し、この単位書込データ３００をランダムライトによってメモリカード２００に書き込むための制御を実行する。次に、データ書込制御部１２１は、ステップＳ１０７において、変数Ｎが１００以上であるか否かについて判定する。変数Ｎが１００未満であると判定した場合、データ書込制御部１２１は、ステップＳ１０８において変数ＮをインクリメントしてステップＳ１０６に戻る。したがって、ステップＳ１０６による１つの単位書込データ３００のランダムライトは、１００回実行される。そして、ステップＳ１０６による単位書込データ３００のランダムライトが１００回実行されると、データ書込制御部１２１は、ステップＳ１０７において変数Ｎが１００以上であると判定し、ステップＳ１０９以降の手順に進む。
【００３８】
上記のようにデータ書込制御部１２１による１００回の単位書込データ３００のランダムライトが終了したタイミングに応じて、タイマ部１２４は、ステップＳ１０９において、先のステップＳ１０４にて開始した時間計測を停止する。そして、タイマ値保持部１２５は、ステップＳ１１０において、このときにタイマ部１２４にて計測されていたタイマ値を保持する。このタイマ値は、上記ステップＳ１０５〜Ｓ１０８により実行された１００回の単位書込データ３００のランダムライトに要した時間を示す。
【００３９】
次に、単位書込データサイズ設定部１２２は、ステップＳ１１１において、変数ｎをインクリメントしてステップＳ１０２以降の処理を実行する。この処理により、ホストコントローラ１２０は、単位書込データサイズについて、４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトを順次設定し、これらの単位書込データサイズごとに、１００回の単位書込データ３００のランダムライトを実行する。そして、最後の６４Ｋバイトの単位書込データ３００による１００回のランダムライトを終了すると、単位書込データサイズ設定部１２２は、ステップＳ１０２において変数ｎが５未満ではなくなったと判定し、ステップＳ１１２に進む。
【００４０】
ステップＳ１１２に至った段階において、タイマ値保持部１２５は、計５つのタイマ値を保持している。つまり、４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトの単位書込データごとに応じて実行された１００回のランダムライトの実行期間を計測したタイマ値を保持している。
【００４１】
最適条件決定部１２６は、ステップＳ１１２において、上記５つのタイマ値に基づいて最適単位書込データサイズを決定する。このために、最適条件決定部１２６は、例えば、上記５つのタイマ値について比較することで、これらのタイマ値のうちで最小値のものを特定する。そして、この特定したタイマ値が対応する単位書込データサイズを、最適単位書込データサイズとして決定する。
【００４２】
上記のタイマ値が最小の単位書込データサイズは、他の単位書込データサイズと比較して転送速度が最も高いということを意味している。このようにして、本実施の形態においては、転送速度が最大となる最適単位書込データサイズを特定することができる。単位書込データサイズ設定部１２２は、以降の通常動作時において、この最適単位書込データサイズを設定するように、データ書込制御部１２１に指示する。これにより、通常動作時において、装着されたメモリカード２００の転送速度を最大限発揮できる最適単位書込データサイズが設定される。
【００４３】
＜第２の実施の形態＞
［アクセス範囲容量と転送速度の関係］
次に、第２の実施の形態について説明する。本願発明者は、メモリカード２００の転送速度は、メモリセル２１０に対して設定するアクセス範囲の容量によっても変化することを確認している。図６は、メーカＡ、メーカＢおよびメーカＣごとのメモリカード２００についての、単位書込データサイズと転送速度との関係を示している。この図に示される例によると、メーカＡのメモリカード２００は、アクセス範囲容量が１Ｍバイトのときの転送速度が最大であるのに対して、メーカＢのものはアクセス範囲容量が１００Ｍバイトのときに転送速度が最大となっている。メーカＣのものはアクセス範囲容量が１０Ｍバイトのときに転送速度が最大となっている。
【００４４】
そこで、第２の実施の形態は、データ書き込みの最適条件として、メモリカード２００の転送速度が最高となるアクセス範囲容量（最適アクセス範囲容量）を判定するように構成する。そして、メモリカード２００の記憶領域を判定した最適アクセス範囲容量で分割設定してデータ書込を実行させることで良好な性能を得ようというものである。
【００４５】
［ホストコントローラの機能構成例］
図７は、第２の実施の形態におけるホストコントローラ１２０の機能構成例を示している。なお、この図において、図４と同一部分には同一符号を付して説明を省略する。この図に示すホストコントローラ１２０は、図４に示した単位書込データサイズ設定部１２２に代えて、アクセス範囲容量設定部１２３を備える。アクセス範囲容量設定部１２３は、アクセス範囲容量を設定変更する部位であり、このために、設定すべきアクセス範囲容量をデータ書込制御部１２１に通知する。データ書込制御部１２１は、メモリセル２１０の記憶領域を、通知された容量のアクセス範囲により論理的に分割設定したうえで、ランダムライトのための制御を実行する。
【００４６】
［処理手順例］
図８は、上記図７に示した構成のホストコントローラ１２０が実行する処理手順例を示している。なお、この図に示す各処理は、図７に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理も、メモリカード２００がスロット１１０に装填されたことを認識したことに応じて、キャリブレーションの１つとして実行される。
【００４７】
ステップＳ２０１において、アクセス範囲容量設定部１２３は、初期値として変数ｍに「０」を代入する。次に、アクセス範囲容量設定部１２３は、ステップＳ２０２において、変数ｍが４未満であるか否かについて判定する。変数ｍは、最適アクセス範囲容量の候補設定に用いられるもので、ここでは、「０」〜「３」の変数ｍごとに応じて４つの最適アクセス範囲容量の候補を順次設定していくこととしている。このステップＳ２０２において、変数ｍが４未満であると判定した場合、アクセス範囲容量設定部１２３は、ステップＳ２０３以降の手順に進む。
【００４８】
ステップＳ２０３において、アクセス範囲容量設定部１２３は、アクセス範囲容量について１０ｍＭバイトを設定する。具体的に、変数ｍは、０〜４の値を取り得るので、ステップＳ２０３が繰り返される都度、順次、１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇ（１０００Ｍ）バイトが設定されることになる。
【００４９】
次に、タイマ部１２４は、ステップＳ２０４において起動して時間計測を開始する。これとともに、データ書込制御部１２１は、ステップＳ２０５〜Ｓ２０８により単位書込データ３００のランダムライトを１００回実行する。ステップＳ２０５〜Ｓ２０８の処理は、それぞれ、図５のステップＳ１０５〜Ｓ１０８と同様となる。この際、データ書込制御部１２１は、ステップＳ２０３により設定されたアクセス範囲容量に従ってメモリセル２１０の記憶領域のアクセス範囲を設定して単位書込データ３００の書き込みを実行する。なお、単位書込データサイズについては所定の固定値が設定されている。
【００５０】
ステップＳ２０９において、タイマ部１２４は、先のステップＳ２０４にて開始した時間計測を停止する。そして、ステップＳ２１０において、タイマ値保持部１２５は、このときのタイマ部１２４のタイマ値を保持する。
【００５１】
次に、アクセス範囲容量設定部１２３は、ステップＳ２１１において、変数ｍをインクリメントしてステップＳ２０２以降の処理を実行する。これにより、ホストコントローラ１２０は、アクセス範囲容量（最適アクセス範囲容量の候補）について、１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇ（１０００Ｍ）バイトを順次設定し、これらのアクセス範囲容量ごとに、１００回の単位書込データ３００のランダムライトを実行する。そして、１Ｇバイトのアクセス範囲容量を設定した状態で単位書込データ３００のランダムライトを１００回実行すると、アクセス範囲容量設定部１２３は、ステップＳ２０２において変数ｍが４未満ではなくなったと判定し、ステップＳ２１２に進む。
【００５２】
ステップＳ２１２に至った段階において、タイマ値保持部１２５は、１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇ（１０００Ｍ）バイトのアクセス範囲容量ごとに対応してタイマ部１２４により計測された、計４つのタイマ値を保持している。最適条件決定部１２６は、ステップＳ２１２において、例えば、これら４つのタイマ値のうちで最小値のものに対応するアクセス範囲容量を、最適アクセス範囲容量として決定する。そして、アクセス範囲容量設定部１２３は、以降の通常動作時において、この最適アクセス範囲容量を設定するようにデータ書込制御部１２１に指示する。これにより、通常動作時において、装着されたメモリカード２００の転送速度を最大限発揮できる最適アクセス範囲容量が設定される。
【００５３】
＜第３の実施の形態＞
［ホストコントローラ１２０の機能構成例］
続いて、第３の実施の形態について説明する。第３の実施の形態は、データ書込のための最適条件として、転送速度が最高となる単位書込データサイズとアクセス範囲容量の組み合わせを設定するように構成される。
【００５４】
図９は、第３の実施の形態におけるホストコントローラ１２０の機能構成例を示している。なお、この図において、図４および図７と同一部分には同一符号を付している。この図に示されるホストコントローラ１２０は、第１の実施の形態に対応する単位書込データサイズ設定部１２２と第２の実施の形態に対応するアクセス範囲容量設定部１２３の両者を備える。これに応じて、データ書込制御部１２１は、アクセス範囲容量設定部１２３により指定された容量によりメモリセル２１０の記憶領域のアクセス範囲を設定する。また、単位書込データサイズ設定部１２２により指定されたサイズの単位書込データ３００を生成してデータ記録を実行する。
【００５５】
［処理手順例］
図１０は、上記図９に示したホストコントローラ１２０が実行する処理手順例を示している。なお、この図に示す各処理は、図９に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理は、メモリカード２００がスロット１１０に装填されたことを認識したことに応じて、キャリブレーションの１つとして実行される。
【００５６】
ステップＳ３０１において、単位書込データサイズ設定部１２２は、初期値として変数ｎに「０」を代入し、ステップＳ３０２において、この変数ｎが５未満であるか否かについて判定する。このステップＳ３０２において、変数ｎが５未満であると判定した場合、単位書込データサイズ設定部１２２は、ステップＳ３０３以降の手順に進む。
【００５７】
ステップＳ３０３において、単位書込データサイズ設定部１２２は、単位書込データサイズについて２（ｎ＋１）Ｋバイトを設定する。これにより、ステップＳ３０３が繰り返される都度、順次、４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトが設定されることについては、図５のステップＳ１０３と同様である。
【００５８】
続いては、アクセス範囲容量設定部１２３が、ステップＳ３０４において、初期値として変数ｍに「０」を代入し、ステップＳ３０５において、変数ｍが４未満であるか否かについて判定する。このステップＳ３０５において、変数ｍが４未満であると判定した場合、アクセス範囲容量設定部１２３は、ステップＳ３０６以降の手順に進む。
【００５９】
ステップＳ３０６において、アクセス範囲容量設定部１２３は、アクセス範囲容量について１０ｍＭバイトを設定する。このステップＳ３０６が繰り返されるごとに、順次、１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇ（１０００Ｍ）バイトが設定されることについては、図８のステップＳ２０３と同様である。
【００６０】
次に、タイマ部１２４は、ステップＳ３０７において起動して時間計測を開始する。そして、データ書込制御部１２１は、ステップＳ３０８〜Ｓ３１１により、単位書込データ３００のランダムライトを１００回実行する。この１００回のランダムライトは、ステップＳ３０７により設定されたアクセス範囲容量とステップＳ３０３により設定された単位書込データサイズの条件のもとで実行される。
【００６１】
上記ステップＳ３０８〜Ｓ３１１の処理が終了するのに応じて、タイマ部１２４は、ステップＳ３１２において時間計測を停止する。次に、タイマ値保持部１２５は、ステップＳ３１３において、このときにタイマ部１２４にて計測されていたタイマ値を保持する。
【００６２】
上記のタイマ値は、上記ステップＳ３０８〜Ｓ３１１により実行された１００回分の単位書込データ３００のランダムライトに要した時間を示す。また、この１００回のランダムライトは、ステップＳ３０３により設定された単位書込データサイズとステップＳ３０６により設定されたアクセス範囲容量の組み合わせによる条件下で実行されたものとなる。
【００６３】
次に、単位書込データサイズ設定部１２２は、ステップＳ３１４において、変数ｍをインクリメントしてステップＳ３０５の処理に戻る。この処理により、ホストコントローラ１２０は、現在の変数ｎに応じた２（ｎ＋１）Ｋバイトの単位書込データサイズが設定された状態のもとで、アクセス範囲容量について、１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇ（１０００Ｍ）バイトを順次設定していく。そして、これらの設定されたアクセス範囲容量ごとに、１００回の単位書込データ３００のランダムライトを実行する。そして、１Ｇバイトの単位書込データ３００のランダムライトを１００回実行すると、アクセス範囲容量設定部１２３は、ステップＳ３０５において変数ｍが４未満ではなくなったと判定し、ステップＳ３１５に進む。
【００６４】
ステップＳ３１５において、単位書込データサイズ設定部１２２は、変数ｎについてインクリメントしてステップＳ３０２に戻る。このような手順により、単位書込データサイズについて、４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトの順で設定される。そして、設定された単位書込データサイズのもとでアクセス範囲容量が１Ｍバイト、１０Ｍバイト、１００Ｍバイト、１Ｇバイトの順で設定され、これらのアクセス範囲容量ごとに応じて１００回の単位書込データ３００のランダムライトが実行され、そのタイマ値が保持される。そして、最後に６４Ｋバイトの単位書込データサイズと１Ｇバイトのアクセス範囲容量との組み合わせによるランダムライトが終了すると、単位書込データサイズ設定部１２２は、ステップＳ３０２において変数ｎが５未満ではないと判定する。これに応じて、そして、最適条件決定部１２６によるステップＳ３１６の処理に進む。
【００６５】
ステップＳ３１６に至った段階において、タイマ値保持部１２５は、５つの単位書込データサイズの候補と、４つのアクセス範囲容量の候補の組み合わせに対応した２０個のタイマ値を保持している。つまり、［４Ｋバイト／１Ｍバイト］、［４Ｋバイト／１０Ｍバイト］、［４Ｋバイト／１００Ｍバイト］、［４Ｋバイト／１Ｇバイト］、［８Ｋバイト／１Ｍバイト］、［８Ｋバイト／１０Ｍバイト］、［８Ｋバイト／１００Ｍバイト］、［８Ｋバイト／１Ｇバイト］、［１６Ｋバイト／１Ｍバイト］、［１６Ｋバイト／１０Ｍバイト］、［１６Ｋバイト／１００Ｍバイト］、［１６Ｋバイト／１Ｇバイト］、［３２Ｋバイト／１Ｍバイト］、［３２Ｋバイト／１０Ｍバイト］、［３２Ｋバイト／１００Ｍバイト］、［３２Ｋバイト／１Ｇバイト］、［６４Ｋバイト／１Ｍバイト］、［６４Ｋバイト／１０Ｍバイト］、［６４Ｋバイト／１００Ｍバイト］、［６４Ｋバイト／１Ｇバイト］の各組み合わせに対応したタイマ値を保持する。
【００６６】
最適条件決定部１２６は、ステップＳ３０６において、これら２０個のタイマ値に基づいて、最適条件として、転送速度が最も高くなる単位書込データサイズとアクセス範囲容量の組み合わせを決定する。このために、最適条件決定部１２６は、例えば、上記２０個のタイマ値のうちから最小値のものを特定する。そして、このタイマ値が対応する単位書込データサイズとアクセス範囲容量の組み合わせを、最適条件として決定する。このようにして、第３の実施の形態においては、メモリカード２００の転送速度が最高となる単位書込データサイズとアクセス範囲容量の最適な組み合わせを判定することができる。
【００６７】
特許文献１には、メモリのユーザデータの所定領域にデータを書き込んでその速度を測定し、これをメモリアクセス装置に伝送する構成が記載されている。しかし、この構成では、特定の条件のもとで単に速度を測定しているだけであるために、本実施の形態のようにして、メモリの転送速度が最大限に高くなるように単位書込データサイズやアクセス範囲容量などの条件を変更設定することはできない。
【００６８】
［変形例］
次に、図１１を参照して、本実施の形態の変形例について説明する。図１１には、メモリカード対応装置１００Ａが示されている。このメモリカード対応装置１００Ａは、図１のようにメモリカード２００を装着可能な構成に代えて、組込型メモリカード２００Ａを内蔵する構成を採る。
【００６９】
組込型メモリカード２００Ａは、図１に示したメモリカード２００と同様に、メモリセル２１０とメモリコントローラ２２０を備える。この場合、メモリコントローラ２２０とホストコントローラ１２０は、スロット１１０を介することなく、メモリカード対応装置１００Ａにおいて通信可能に接続される。このように、変形例の構成では、メモリカード対応装置１００Ａにおいて、ホストコントローラ１２０とメモリコントローラ２２０とメモリセル２１０が内蔵された構成を有している。このようにホストコントローラ１２０とメモリコントローラ２２０とメモリセル２１０を１つのチップに統合したものの一例として、ｅＭＭＣ（Ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ）規格に準拠したものを挙げることができる。
【００７０】
上記のような図１１の構成においては、これまでに説明した第１〜第３の実施の形態のいずれも適用することが可能である。ただし、図１１の構成では、組込型メモリカード２００Ａが内蔵されているので、図５、図８および図１０に示した処理は、メモリカード対応装置１００Ａの初期電源投入時において行われるようにすればよい。上記ｅＭＭＣではチップのピン配置などをはじめとして規格が定められており、この規格に準拠していればどのメーカのものでも実装することができる。したがって、変形例においては、複数のメーカものが混在する組込型メモリカード２００Ａをメモリカード対応装置１００Ａに実装するような場合に、最適な単位書込データサイズやアクセス範囲容量を自動で設定できることになって有用である。
【００７１】
なお、これまでの実施の形態においては、単位書込データサイズについては４Ｋバイト、８Ｋバイト、１６Ｋバイト、３２Ｋバイト、６４Ｋバイトの候補のうちから設定可能とされているが、これに限定されるものではない。つまり、単位書込データサイズの候補数および単位書込データサイズ自体の値については適宜変更されてよい。この点については、アクセス範囲容量に関しても同様である。また、タイマ値計測のために単位書込データ３００のランダムライト実行回数に関しても、１００回以外の所定回数が設定されてよい。このランダムライト実行回数を多くするほど、ばらつきが平滑化されて信頼性が高くなる。
【００７２】
また、本実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えることができる。また、これら一連の手順をコンピュータに実行させるためのプログラムまたはそのプログラムを記憶する記録媒体として捉えることができる。この記録媒体としては、例えば、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＨＤＤ（ハードディスク）、メモリカード等を挙げることができる。
【符号の説明】
【００７３】
１００、１００Ａ  メモリカード対応装置
１１０  スロット
１２０  ホストコントローラ
１２１  データ書込制御部
１２２  単位書込データサイズ設定部
１２３  アクセス範囲容量設定部
１２４  タイマ部
１２５  タイマ値保持部
１２６  最適条件決定部
２００  メモリカード
２１０  メモリセル
２２０  メモリコントローラ
３００  単位書込データ
【図１】
2012234428.tif 000003
【図２】
2012234428.tif 000004
【図３】
2012234428.tif 000005
【図４】
2012234428.tif 000006
【図５】
2012234428.tif 000007
【図６】
2012234428.tif 000008
【図７】
2012234428.tif 000009
【図８】
2012234428.tif 000010
【図９】
2012234428.tif 000011
【図１０】
2012234428.tif 000012
【図１１】
2012234428.tif 000013