説明

メモリ制御装置、メモリ制御方法、プログラム

【課題】メーカなどに応じて最良の性能が得られる条件が異なるメモリカードごとに対応して、最良の性能が的確に引き出されるようにする。
【解決手段】データ書込制御部121は、単位書込データサイズ設定部122が順次設定する単位書込データサイズごとに所定回数の単位書込データのランダムライトを実行する。タイマ値保持部125は、この所定回数のランダムライトごとに応じてタイマ部124が計測したタイマ値を保持する。最適条件決定部126は、タイマ値保持部125が保持するタイマ値に基づいて転送速度が最も高くなる単位書込データサイズを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばメモリカードに対するデータ書き込み制御を実行するメモリ制御装置と、その方法に関する。また、メモリ制御装置に所定手順を実行させるためのプログラムに関する。
【背景技術】
【0002】
SDメモリカードなどに代表されるメモリカードは、携帯電話やデジタルカメラ等の機器に対応する記録媒体として広く使用されている。このメモリカードはリムーバブルであり、ユーザによる機器への取り外しが可能とされている。また、このようなメモリカードは、規格に適合しているものであれば、どのメーカのものでも使用できるようになっている。このため、メモリカードは、多くのメーカによって製造されてユーザに提供されている状況にある。
【0003】
メモリカードは、その内部のレジスタにおいて、規格に従った転送速度、動作電圧および動作電流などの仕様を示す値を格納している。メモリカードが装着された機器のホストコントローラは、メモリカードから上記各仕様の値を参照することにより、仕様に応じた適切な動作を行うようにされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−222201号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記のようにメモリカードのレジスタに格納される仕様値は、例えば規格で定められた或る特定のデータ書き込み条件を前提として設定されたものとなっている。このために、或るメーカのメモリカードは上記特定のデータ書き込み条件で最良の性能が得られるが、他のメーカのメモリカードでは、最良の性能を引き出すことができないというような不具合を生じるこがある。
【0006】
本発明はこのような課題を解決することのできるメモリ制御装置、メモリ制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、単位書込データのサイズを設定する単位書込データサイズ設定手段と、前記単位書込データサイズ設定手段により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手段と、前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手段と、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手段とを備えることを特徴とするメモリ制御装置である。
【0008】
また、本発明は、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段と、前記アクセス範囲容量設定手段により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手段と、前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手段と、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手段とを備えることを特徴とするメモリ制御装置である。
【0009】
また、本発明は、単位書込データのサイズを設定する単位書込データサイズ設定手順と、前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順とを備えることを特徴とするメモリ制御方法である。
【0010】
また、本発明は、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順とを備えることを特徴とするメモリ制御方法である。
【0011】
また、本発明は、メモリ制御装置に、単位書込データのサイズを設定する単位書込データサイズ設定手順と、前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順とを実行させるためのプログラムである。
【0012】
また、本発明は、メモリ制御装置に、単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順とを実行させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、メーカや種類などの違いに応じて性能が最良となる条件が異なるメモリカードごとに対応して、最良の性能を引き出すことが可能になるという効果が得られる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施の形態におけるメモリカード対応装置100とメモリカード200の構成例を示す図である。
【図2】本実施の形態におけるランダムライトによるデータ書き込み処理の態様例を模式的に示す図である。
【図3】メーカの異なるメモリカードごとの単位書込データサイズと転送速度の関係例を示す図である。
【図4】第1の実施の形態におけるホストコントローラ120の機能構成例を示す図である。
【図5】第1の実施の形態におけるホストコントローラ120の処理手順例を示す図である。
【図6】メーカの異なるメモリカードごとのアクセス範囲容量と転送速度の関係例を示す図である。
【図7】第2の実施の形態におけるホストコントローラ120の機能構成例を示す図である。
【図8】第2の実施の形態におけるホストコントローラ120の処理手順例を示す図である。
【図9】第3の実施の形態におけるホストコントローラ120の機能構成例を示す図である。
【図10】第3の実施の形態におけるホストコントローラ120の処理手順例を示す図である。
【図11】本実施の形態における変形例としてのメモリカード対応装置の構成例を示す図である。
【発明を実施するための形態】
【0015】
<メモリカード対応装置とメモリカード200の構成例>
図1は、本発明を実施するための形態(実施の形態)におけるメモリカード対応装置100とメモリカード200の構成例を示している。なお、この図に示す構成は、後述する第1〜第3の実施の形態で共通となる。
【0016】
メモリカード対応装置100は、メモリカード200に対応してデータの記録再生が可能なように構成された電子機器である。このメモリカード対応装置100が具現化される電子機器については特に限定されるべきものではないが、例えばデジタルカメラ、デジタルビデオカメラ、携帯電話などを想定することができる。
【0017】
メモリカード200は、例えばSDメモリカードなどに代表される、カード型のメモリであり、所定のメモリカード規格に適合するようにしてその形状や仕様が定められている。このメモリカード200はリムーバブル形式であり、メモリカード対応装置100に対して装着、取り外しを行うことができる。
【0018】
メモリカード対応装置100は、メモリカード200に対応する部位として、ホストコントローラ120とスロット110を備える。スロット110は、メモリカード200の装着と取り外しが行われる機構部位である。このスロット110にメモリカード200が装着されることにより、ホストコントローラ120と、メモリカード200内のメモリコントローラ220とが通信可能に接続される。
【0019】
ホストコントローラ120は、スロット110に対してメモリカード200が装着された状態と取り外されている状態のいずれであるのかを検出する。また、メモリカード200が装着されているときには、メモリカード200に格納されるレジスタ値の読み出しを実行することができる。また、メモリカード200に対するデータの書き込み・読み出しを実行することができる。
【0020】
次に、メモリカード200は、メモリセル210とメモリコントローラ220を備える。メモリセル210は、データを記憶する部位である。このメモリセル210は、本実施の形態においてはNAND型フラッシュメモリを採用することとするが、これ以外のメモリ素子や記憶装置が用いられてもよい。
【0021】
メモリコントローラ220は、メモリカード対応装置100におけるホストコントローラ120の制御に応じて、メモリセル210に対するデータの書き込み/読み出しを実行する。また、NAND型フラッシュメモリでは論理アドレス方式が採用されるが、メモリコントローラ220は、メモリセル210に対するデータ書き込み・読み出し時において、論理アドレスと物理アドレスの間でのアドレス変換を実行する。また、メモリセル210内の不良ブロックの管理、エラー訂正処理を実行する。また、メモリコントローラ220は、NAND型フラッシュメモリの書き換え回数に上限があることに応じて、所定のアルゴリズムによるウェアレベリングも実行する。
【0022】
<メモリセルに対するデータ書き込み例>
図2を参照して、本実施の形態のメモリセル210に対するデータ書き込みの態様例について説明する。図2(a)に示されるように、メモリセル210の記憶領域は、(p+1)個のアクセス範囲#0〜#pによって論理的に分割される。これらのアクセス範囲#0〜#pはそれぞれ同じサイズであり、NANDフラッシュメモリとの対応では、例えばブロックといわれるデータ消去単位に対応するものとして捉えることができる。
【0023】
また、1つのアクセス範囲は、図2(b)に示されるように、(q+1)個のページ#0〜#qの領域に分割される。1つのページがデータ書き込み単位に対応する。図2(c)に示される単位書込データ300は、メモリセル200に対するデータの書き込み単位として形成される単位データであり、したがって、1ページと同じサイズを有する。
【0024】
本実施の形態においては、ランダムライトが行われる。このランダムライトにより1つの単位書込データ300を書き込む際、ホストコントローラ120は、単位書込データ300を書き込むべきアクセス範囲を決定したうえで、この決定したアクセス範囲のアドレス空間に対応する数値範囲において乱数を発生させる。そして、発生された乱数が示すアドレスのページに対して、単位書込データ300を書き込むようにする。
【0025】
<第1の実施の形態>
[単位書込データサイズと転送速度の関係]
まず、第1の実施の形態について説明する。図示は省略するが、メモリカード200は、規格に従った転送速度、動作電圧および動作電流などの仕様を示す値をレジスタに格納しており、ホストコントローラ120は、メモリカード200の装着時に、このレジスタ値を読み込む。そして、読み込んだレジスタ値が示す仕様に適合するパラメータを設定してメモリカード200に対するデータの書き込み・読み出しを実行する。
【0026】
しかし、レジスタ値が示す転送速度については、単位書込データ300のサイズ(単位書込データサイズ)との関係性が考慮されてはいない。レジスタ値が示す転送速度は、例えば特定の1つの単位書込データサイズのみを前提として求められたものとなっている。メモリカード200の転送速度は、単位書込データサイズに応じて変化するものであり、さらに、その変化の仕方は、メモリカード200のメーカなどの違いに応じて異なることを、本願発明者は確認している。
【0027】
図3は、メーカA、メーカBおよびメーカCごとのメモリカード200についての、単位書込データサイズと転送速度との関係例を示している。この図に示される例によると、メーカAのメモリカード200は、単位書込データサイズが64Kバイトのときに転送速度が最大であるのに対して、メーカBのものは単位書込データサイズが32Kバイトのときに転送速度が最大となっている。さらに、メーカCのものは4KBのときに転送速度が最大となっている。
【0028】
上記のように、メモリカード200はメーカなどの違いに応じて、単位書込データサイズと転送速度との関係が異なる。例えばホストコントローラ120がメモリカード200が格納するレジスタ値に基づいてパラメータ設定を行ったとしても、そのパラメータの1つであるホストコントローラ120からのデータの転送速度は、或る値で固定される。このために、メモリカード200のメーカによっては、転送速度に関して必ずしも最高の性能を引き出せずにいる場合があることになる。このことから、メモリカード200が格納するレジスタ値によっては、正常な動作は保証できるものの、最大限良好な性能を引き出すことは難しいということがいえる。そこで、第1の実施の形態においては、以降説明するように、装着されたメモリカード200について、転送速度が最大となる単位書込データサイズを設定できるようにする。これによって、メモリカード200のメーカなどの違いに係わらず、できるかぎり最大限の性能を発揮させることを可能にする。
【0029】
[ホストコントローラの機能構成例]
図4は、第1の実施の形態に対応するホストコントローラ120の機能構成例を示している。この図に示すホストコントローラ120は、データ書込制御部121、単位書込データサイズ設定部122、タイマ部124、タイマ値保持部125および最適条件決定部126を備える。また、この図においては、メモリカード200のメモリコントローラ220も示されている。このメモリコントローラ220は、スロット110(同図では図示を省略)にメモリカード200が装着されていることで、ホストコントローラ120と接続された状態にある。
【0030】
データ書込制御部121は、メモリカード200に対してデータ書き込み制御を実行する機能部である。データ書込制御部121は、データを書き込む際には、データ書込要求とともに単位書込データ300の単位でメモリコントローラ220に対して転送する。また、この際には、単位書込データ300を書き込むべきアクセス範囲に含まれる1つのページのアドレスを指定する。メモリコントローラ220は、転送されてくる単位書込データ300を、指定されたアドレスのページに対して書き込む。
【0031】
単位書込データサイズ設定部122は、データ書込制御部121が転送する単位書込データ300のサイズを設定する部位である。このために、単位書込データサイズ設定部122は、設定した単位書込データ300のサイズをデータ書込制御部121に対して通知する。これに応じて、データ書込制御部121は、書き込みのために入力するデータを、通知されたサイズにより分割し、この分割されたデータを単位書込データ300としてメモリカード200に転送する。
【0032】
タイマ部124は、後述するように、設定された単位書込データサイズの条件下でデータ書込制御部121が実行する、所定回数の単位書込データ300の書き込みに要する時間を計測する。タイマ値保持部125は、タイマ部124により計測されたタイマ値を保持する。
【0033】
最適条件決定部126は、タイマ値保持部125に保持されたタイマ値に基づいて、データ書き込みの最適条件を決定する部位である。第1の実施の形態において、最適条件決定部126は、上記最適条件として、転送速度が最も高くなる単位書込データサイズ(最適単位書込データサイズ)を決定する。最適条件決定部126は、決定した最適単位書込データサイズを単位書込データサイズ設定部122に通知する。単位書込データサイズ設定部122は、単位書込データサイズを設定するようにデータ書込制御部121に指示を行う。以降、データ書込制御部121は、最適単位書込データサイズによる単位書込データ300を生成してメモリコントローラ220に対して転送する。
【0034】
[処理手順例]
図5は、第1の実施の形態においてホストコントローラ120が実行する処理手順例を示している。この図に示す各処理は、図4に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理は、メモリカード200がスロット110に装填されたことを認識するのに応じてキャリブレーションの1つとして実行されるものである。また、この図に示す処理は、ホストコントローラ120がプログラムを実行することにより実現されるものとしてみることができる。なお、これらの点については、後述する第2および第3の実施の形態における図8および図10についても同様である。
【0035】
ステップS101において、単位書込データサイズ設定部122は、初期値として変数nに「0」を代入する。次に、単位書込データサイズ設定部122は、ステップS102において、変数nが5未満であるか否かについて判定する。以降の説明から理解されるように、変数nは、単位書込データサイズの候補設定に用いられるもので、ここでは、「0」〜「4」の変数mごとに応じて5つの最適単位書込データサイズの候補を順次設定していくこととしている。このステップS102において、変数nが5未満であると判定した場合、単位書込データサイズ設定部122は、ステップS103以降の手順に進む。
【0036】
ステップS103において、単位書込データサイズ設定部122は、単位書込データサイズについて2(n+1)Kバイトを設定する。具体的に、変数nは、0〜4の値を取り得るので、ステップS103が繰り返される都度、順次、4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトが設定されることになる。
【0037】
次に、タイマ部124はステップS104において起動し、時間計測を開始する。これとともに、データ書込制御部121は、ステップS105〜S108により単位書込データ300のランダムライトを所定回数(ここでは100回)実行する。つまり、ステップS105において、データ書込制御部121は、変数Nについて初期値の「0」を代入する。変数Nは、単位書込データ300の書き込み回数に対応するものとなる。次に、データ書込制御部121は、ステップS106において、ステップS103により設定された単位書込データサイズにより単位書込データ300を生成し、この単位書込データ300をランダムライトによってメモリカード200に書き込むための制御を実行する。次に、データ書込制御部121は、ステップS107において、変数Nが100以上であるか否かについて判定する。変数Nが100未満であると判定した場合、データ書込制御部121は、ステップS108において変数NをインクリメントしてステップS106に戻る。したがって、ステップS106による1つの単位書込データ300のランダムライトは、100回実行される。そして、ステップS106による単位書込データ300のランダムライトが100回実行されると、データ書込制御部121は、ステップS107において変数Nが100以上であると判定し、ステップS109以降の手順に進む。
【0038】
上記のようにデータ書込制御部121による100回の単位書込データ300のランダムライトが終了したタイミングに応じて、タイマ部124は、ステップS109において、先のステップS104にて開始した時間計測を停止する。そして、タイマ値保持部125は、ステップS110において、このときにタイマ部124にて計測されていたタイマ値を保持する。このタイマ値は、上記ステップS105〜S108により実行された100回の単位書込データ300のランダムライトに要した時間を示す。
【0039】
次に、単位書込データサイズ設定部122は、ステップS111において、変数nをインクリメントしてステップS102以降の処理を実行する。この処理により、ホストコントローラ120は、単位書込データサイズについて、4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトを順次設定し、これらの単位書込データサイズごとに、100回の単位書込データ300のランダムライトを実行する。そして、最後の64Kバイトの単位書込データ300による100回のランダムライトを終了すると、単位書込データサイズ設定部122は、ステップS102において変数nが5未満ではなくなったと判定し、ステップS112に進む。
【0040】
ステップS112に至った段階において、タイマ値保持部125は、計5つのタイマ値を保持している。つまり、4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトの単位書込データごとに応じて実行された100回のランダムライトの実行期間を計測したタイマ値を保持している。
【0041】
最適条件決定部126は、ステップS112において、上記5つのタイマ値に基づいて最適単位書込データサイズを決定する。このために、最適条件決定部126は、例えば、上記5つのタイマ値について比較することで、これらのタイマ値のうちで最小値のものを特定する。そして、この特定したタイマ値が対応する単位書込データサイズを、最適単位書込データサイズとして決定する。
【0042】
上記のタイマ値が最小の単位書込データサイズは、他の単位書込データサイズと比較して転送速度が最も高いということを意味している。このようにして、本実施の形態においては、転送速度が最大となる最適単位書込データサイズを特定することができる。単位書込データサイズ設定部122は、以降の通常動作時において、この最適単位書込データサイズを設定するように、データ書込制御部121に指示する。これにより、通常動作時において、装着されたメモリカード200の転送速度を最大限発揮できる最適単位書込データサイズが設定される。
【0043】
<第2の実施の形態>
[アクセス範囲容量と転送速度の関係]
次に、第2の実施の形態について説明する。本願発明者は、メモリカード200の転送速度は、メモリセル210に対して設定するアクセス範囲の容量によっても変化することを確認している。図6は、メーカA、メーカBおよびメーカCごとのメモリカード200についての、単位書込データサイズと転送速度との関係を示している。この図に示される例によると、メーカAのメモリカード200は、アクセス範囲容量が1Mバイトのときの転送速度が最大であるのに対して、メーカBのものはアクセス範囲容量が100Mバイトのときに転送速度が最大となっている。メーカCのものはアクセス範囲容量が10Mバイトのときに転送速度が最大となっている。
【0044】
そこで、第2の実施の形態は、データ書き込みの最適条件として、メモリカード200の転送速度が最高となるアクセス範囲容量(最適アクセス範囲容量)を判定するように構成する。そして、メモリカード200の記憶領域を判定した最適アクセス範囲容量で分割設定してデータ書込を実行させることで良好な性能を得ようというものである。
【0045】
[ホストコントローラの機能構成例]
図7は、第2の実施の形態におけるホストコントローラ120の機能構成例を示している。なお、この図において、図4と同一部分には同一符号を付して説明を省略する。この図に示すホストコントローラ120は、図4に示した単位書込データサイズ設定部122に代えて、アクセス範囲容量設定部123を備える。アクセス範囲容量設定部123は、アクセス範囲容量を設定変更する部位であり、このために、設定すべきアクセス範囲容量をデータ書込制御部121に通知する。データ書込制御部121は、メモリセル210の記憶領域を、通知された容量のアクセス範囲により論理的に分割設定したうえで、ランダムライトのための制御を実行する。
【0046】
[処理手順例]
図8は、上記図7に示した構成のホストコントローラ120が実行する処理手順例を示している。なお、この図に示す各処理は、図7に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理も、メモリカード200がスロット110に装填されたことを認識したことに応じて、キャリブレーションの1つとして実行される。
【0047】
ステップS201において、アクセス範囲容量設定部123は、初期値として変数mに「0」を代入する。次に、アクセス範囲容量設定部123は、ステップS202において、変数mが4未満であるか否かについて判定する。変数mは、最適アクセス範囲容量の候補設定に用いられるもので、ここでは、「0」〜「3」の変数mごとに応じて4つの最適アクセス範囲容量の候補を順次設定していくこととしている。このステップS202において、変数mが4未満であると判定した場合、アクセス範囲容量設定部123は、ステップS203以降の手順に進む。
【0048】
ステップS203において、アクセス範囲容量設定部123は、アクセス範囲容量について10Mバイトを設定する。具体的に、変数mは、0〜4の値を取り得るので、ステップS203が繰り返される都度、順次、1Mバイト、10Mバイト、100Mバイト、1G(1000M)バイトが設定されることになる。
【0049】
次に、タイマ部124は、ステップS204において起動して時間計測を開始する。これとともに、データ書込制御部121は、ステップS205〜S208により単位書込データ300のランダムライトを100回実行する。ステップS205〜S208の処理は、それぞれ、図5のステップS105〜S108と同様となる。この際、データ書込制御部121は、ステップS203により設定されたアクセス範囲容量に従ってメモリセル210の記憶領域のアクセス範囲を設定して単位書込データ300の書き込みを実行する。なお、単位書込データサイズについては所定の固定値が設定されている。
【0050】
ステップS209において、タイマ部124は、先のステップS204にて開始した時間計測を停止する。そして、ステップS210において、タイマ値保持部125は、このときのタイマ部124のタイマ値を保持する。
【0051】
次に、アクセス範囲容量設定部123は、ステップS211において、変数mをインクリメントしてステップS202以降の処理を実行する。これにより、ホストコントローラ120は、アクセス範囲容量(最適アクセス範囲容量の候補)について、1Mバイト、10Mバイト、100Mバイト、1G(1000M)バイトを順次設定し、これらのアクセス範囲容量ごとに、100回の単位書込データ300のランダムライトを実行する。そして、1Gバイトのアクセス範囲容量を設定した状態で単位書込データ300のランダムライトを100回実行すると、アクセス範囲容量設定部123は、ステップS202において変数mが4未満ではなくなったと判定し、ステップS212に進む。
【0052】
ステップS212に至った段階において、タイマ値保持部125は、1Mバイト、10Mバイト、100Mバイト、1G(1000M)バイトのアクセス範囲容量ごとに対応してタイマ部124により計測された、計4つのタイマ値を保持している。最適条件決定部126は、ステップS212において、例えば、これら4つのタイマ値のうちで最小値のものに対応するアクセス範囲容量を、最適アクセス範囲容量として決定する。そして、アクセス範囲容量設定部123は、以降の通常動作時において、この最適アクセス範囲容量を設定するようにデータ書込制御部121に指示する。これにより、通常動作時において、装着されたメモリカード200の転送速度を最大限発揮できる最適アクセス範囲容量が設定される。
【0053】
<第3の実施の形態>
[ホストコントローラ120の機能構成例]
続いて、第3の実施の形態について説明する。第3の実施の形態は、データ書込のための最適条件として、転送速度が最高となる単位書込データサイズとアクセス範囲容量の組み合わせを設定するように構成される。
【0054】
図9は、第3の実施の形態におけるホストコントローラ120の機能構成例を示している。なお、この図において、図4および図7と同一部分には同一符号を付している。この図に示されるホストコントローラ120は、第1の実施の形態に対応する単位書込データサイズ設定部122と第2の実施の形態に対応するアクセス範囲容量設定部123の両者を備える。これに応じて、データ書込制御部121は、アクセス範囲容量設定部123により指定された容量によりメモリセル210の記憶領域のアクセス範囲を設定する。また、単位書込データサイズ設定部122により指定されたサイズの単位書込データ300を生成してデータ記録を実行する。
【0055】
[処理手順例]
図10は、上記図9に示したホストコントローラ120が実行する処理手順例を示している。なお、この図に示す各処理は、図9に示した機能部のいずれかが適宜実行するものとしてみることができる。また、この図に示す処理は、メモリカード200がスロット110に装填されたことを認識したことに応じて、キャリブレーションの1つとして実行される。
【0056】
ステップS301において、単位書込データサイズ設定部122は、初期値として変数nに「0」を代入し、ステップS302において、この変数nが5未満であるか否かについて判定する。このステップS302において、変数nが5未満であると判定した場合、単位書込データサイズ設定部122は、ステップS303以降の手順に進む。
【0057】
ステップS303において、単位書込データサイズ設定部122は、単位書込データサイズについて2(n+1)Kバイトを設定する。これにより、ステップS303が繰り返される都度、順次、4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトが設定されることについては、図5のステップS103と同様である。
【0058】
続いては、アクセス範囲容量設定部123が、ステップS304において、初期値として変数mに「0」を代入し、ステップS305において、変数mが4未満であるか否かについて判定する。このステップS305において、変数mが4未満であると判定した場合、アクセス範囲容量設定部123は、ステップS306以降の手順に進む。
【0059】
ステップS306において、アクセス範囲容量設定部123は、アクセス範囲容量について10Mバイトを設定する。このステップS306が繰り返されるごとに、順次、1Mバイト、10Mバイト、100Mバイト、1G(1000M)バイトが設定されることについては、図8のステップS203と同様である。
【0060】
次に、タイマ部124は、ステップS307において起動して時間計測を開始する。そして、データ書込制御部121は、ステップS308〜S311により、単位書込データ300のランダムライトを100回実行する。この100回のランダムライトは、ステップS307により設定されたアクセス範囲容量とステップS303により設定された単位書込データサイズの条件のもとで実行される。
【0061】
上記ステップS308〜S311の処理が終了するのに応じて、タイマ部124は、ステップS312において時間計測を停止する。次に、タイマ値保持部125は、ステップS313において、このときにタイマ部124にて計測されていたタイマ値を保持する。
【0062】
上記のタイマ値は、上記ステップS308〜S311により実行された100回分の単位書込データ300のランダムライトに要した時間を示す。また、この100回のランダムライトは、ステップS303により設定された単位書込データサイズとステップS306により設定されたアクセス範囲容量の組み合わせによる条件下で実行されたものとなる。
【0063】
次に、単位書込データサイズ設定部122は、ステップS314において、変数mをインクリメントしてステップS305の処理に戻る。この処理により、ホストコントローラ120は、現在の変数nに応じた2(n+1)Kバイトの単位書込データサイズが設定された状態のもとで、アクセス範囲容量について、1Mバイト、10Mバイト、100Mバイト、1G(1000M)バイトを順次設定していく。そして、これらの設定されたアクセス範囲容量ごとに、100回の単位書込データ300のランダムライトを実行する。そして、1Gバイトの単位書込データ300のランダムライトを100回実行すると、アクセス範囲容量設定部123は、ステップS305において変数mが4未満ではなくなったと判定し、ステップS315に進む。
【0064】
ステップS315において、単位書込データサイズ設定部122は、変数nについてインクリメントしてステップS302に戻る。このような手順により、単位書込データサイズについて、4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトの順で設定される。そして、設定された単位書込データサイズのもとでアクセス範囲容量が1Mバイト、10Mバイト、100Mバイト、1Gバイトの順で設定され、これらのアクセス範囲容量ごとに応じて100回の単位書込データ300のランダムライトが実行され、そのタイマ値が保持される。そして、最後に64Kバイトの単位書込データサイズと1Gバイトのアクセス範囲容量との組み合わせによるランダムライトが終了すると、単位書込データサイズ設定部122は、ステップS302において変数nが5未満ではないと判定する。これに応じて、そして、最適条件決定部126によるステップS316の処理に進む。
【0065】
ステップS316に至った段階において、タイマ値保持部125は、5つの単位書込データサイズの候補と、4つのアクセス範囲容量の候補の組み合わせに対応した20個のタイマ値を保持している。つまり、[4Kバイト/1Mバイト]、[4Kバイト/10Mバイト]、[4Kバイト/100Mバイト]、[4Kバイト/1Gバイト]、[8Kバイト/1Mバイト]、[8Kバイト/10Mバイト]、[8Kバイト/100Mバイト]、[8Kバイト/1Gバイト]、[16Kバイト/1Mバイト]、[16Kバイト/10Mバイト]、[16Kバイト/100Mバイト]、[16Kバイト/1Gバイト]、[32Kバイト/1Mバイト]、[32Kバイト/10Mバイト]、[32Kバイト/100Mバイト]、[32Kバイト/1Gバイト]、[64Kバイト/1Mバイト]、[64Kバイト/10Mバイト]、[64Kバイト/100Mバイト]、[64Kバイト/1Gバイト]の各組み合わせに対応したタイマ値を保持する。
【0066】
最適条件決定部126は、ステップS306において、これら20個のタイマ値に基づいて、最適条件として、転送速度が最も高くなる単位書込データサイズとアクセス範囲容量の組み合わせを決定する。このために、最適条件決定部126は、例えば、上記20個のタイマ値のうちから最小値のものを特定する。そして、このタイマ値が対応する単位書込データサイズとアクセス範囲容量の組み合わせを、最適条件として決定する。このようにして、第3の実施の形態においては、メモリカード200の転送速度が最高となる単位書込データサイズとアクセス範囲容量の最適な組み合わせを判定することができる。
【0067】
特許文献1には、メモリのユーザデータの所定領域にデータを書き込んでその速度を測定し、これをメモリアクセス装置に伝送する構成が記載されている。しかし、この構成では、特定の条件のもとで単に速度を測定しているだけであるために、本実施の形態のようにして、メモリの転送速度が最大限に高くなるように単位書込データサイズやアクセス範囲容量などの条件を変更設定することはできない。
【0068】
[変形例]
次に、図11を参照して、本実施の形態の変形例について説明する。図11には、メモリカード対応装置100Aが示されている。このメモリカード対応装置100Aは、図1のようにメモリカード200を装着可能な構成に代えて、組込型メモリカード200Aを内蔵する構成を採る。
【0069】
組込型メモリカード200Aは、図1に示したメモリカード200と同様に、メモリセル210とメモリコントローラ220を備える。この場合、メモリコントローラ220とホストコントローラ120は、スロット110を介することなく、メモリカード対応装置100Aにおいて通信可能に接続される。このように、変形例の構成では、メモリカード対応装置100Aにおいて、ホストコントローラ120とメモリコントローラ220とメモリセル210が内蔵された構成を有している。このようにホストコントローラ120とメモリコントローラ220とメモリセル210を1つのチップに統合したものの一例として、eMMC(Embedded MultiMediaCard)規格に準拠したものを挙げることができる。
【0070】
上記のような図11の構成においては、これまでに説明した第1〜第3の実施の形態のいずれも適用することが可能である。ただし、図11の構成では、組込型メモリカード200Aが内蔵されているので、図5、図8および図10に示した処理は、メモリカード対応装置100Aの初期電源投入時において行われるようにすればよい。上記eMMCではチップのピン配置などをはじめとして規格が定められており、この規格に準拠していればどのメーカのものでも実装することができる。したがって、変形例においては、複数のメーカものが混在する組込型メモリカード200Aをメモリカード対応装置100Aに実装するような場合に、最適な単位書込データサイズやアクセス範囲容量を自動で設定できることになって有用である。
【0071】
なお、これまでの実施の形態においては、単位書込データサイズについては4Kバイト、8Kバイト、16Kバイト、32Kバイト、64Kバイトの候補のうちから設定可能とされているが、これに限定されるものではない。つまり、単位書込データサイズの候補数および単位書込データサイズ自体の値については適宜変更されてよい。この点については、アクセス範囲容量に関しても同様である。また、タイマ値計測のために単位書込データ300のランダムライト実行回数に関しても、100回以外の所定回数が設定されてよい。このランダムライト実行回数を多くするほど、ばらつきが平滑化されて信頼性が高くなる。
【0072】
また、本実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えることができる。また、これら一連の手順をコンピュータに実行させるためのプログラムまたはそのプログラムを記憶する記録媒体として捉えることができる。この記録媒体としては、例えば、ブルーレイディスク(Blu−ray Disc(登録商標))、DVD(Digital Versatile Disk)、HDD(ハードディスク)、メモリカード等を挙げることができる。
【符号の説明】
【0073】
100、100A メモリカード対応装置
110 スロット
120 ホストコントローラ
121 データ書込制御部
122 単位書込データサイズ設定部
123 アクセス範囲容量設定部
124 タイマ部
125 タイマ値保持部
126 最適条件決定部
200 メモリカード
210 メモリセル
220 メモリコントローラ
300 単位書込データ

【特許請求の範囲】
【請求項1】
単位書込データのサイズを設定する単位書込データサイズ設定手段と、
前記単位書込データサイズ設定手段により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手段と、
前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、
前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手段と、
前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手段と、
を備えることを特徴とするメモリ制御装置。
【請求項2】
前記単位書込データをランダムライトにより書き込むための前記メモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段をさらに備え、
前記データ書込制御手段は、前記単位書込データサイズ設定手段により設定される単位書込データのサイズと、前記アクセス範囲容量設定手段により設定されるアクセス範囲の容量の組み合わせごとに応じて、前記メモリへの単位書込データの書き込みを所定回数実行させ、
タイマ値保持手段は、前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズとアクセス範囲の容量の組み合わせに対応付けて保持し、
前記最適条件決定手段は、前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズとアクセス範囲の容量の組み合わせを最適条件として決定する、
ことを特徴とする請求項1に記載のメモリ制御装置。
【請求項3】
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手段と、
前記アクセス範囲容量設定手段により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手段と、
前記データ書込制御手段による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手段と、
前記タイマ手段により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手段と、
前記タイマ値保持手段が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手段と、
を備えることを特徴とするメモリ制御装置。
【請求項4】
単位書込データのサイズを設定する単位書込データサイズ設定手順と、
前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順と、
を備えることを特徴とするメモリ制御方法。
【請求項5】
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、
前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順と、
を備えることを特徴とするメモリ制御方法。
【請求項6】
メモリ制御装置に、
単位書込データのサイズを設定する単位書込データサイズ設定手順と、
前記単位書込データサイズ設定手順により設定されたサイズによる単位書込データのメモリへの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていた単位書込データのサイズに対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなる単位書込データのサイズを最適条件として決定する最適条件決定手順と、
を実行させるためのプログラム。
【請求項7】
メモリ制御装置に、
単位書込データをランダムライトにより書き込むためのメモリにおけるアクセス範囲の容量を設定するアクセス範囲容量設定手順と、
前記アクセス範囲容量設定手順により設定された容量のアクセス範囲に対する単位書込データの書き込みを所定回数実行させるデータ書込制御手順と、
前記データ書込制御手順による前記所定回数の単位書込データの書き込みが実行されている時間に応じたタイマ値を計測するタイマ手順と、
前記タイマ手順により計測されたタイマ値を、当該タイマ値が計測されたときに設定されていたアクセス範囲の容量に対応付けて保持するタイマ値保持手順と、
前記タイマ値保持手順が保持するタイマ値に基づいて、転送速度が最も高くなるアクセス範囲の容量を最適条件として決定する最適条件決定手順と、
を実行させるためのプログラム。

【図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

【図11】
image rotate


【公開番号】特開2012−234428(P2012−234428A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−103526(P2011−103526)
【出願日】平成23年5月6日(2011.5.6)
【出願人】(390010179)埼玉日本電気株式会社 (1,228)
【Fターム(参考)】