(57)【要約】【課題】ホストデバイス内のメモリカードを最適にチューニングするための方法、装置、およびコンピュータプログラム製品が提供される。【解決手段】本装置は、メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断し、メモリカードを用いて読取り動作を開始し、その少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドをメモリカードに送信する。少なくとも1つのチューニングパラメータは、メモリカードの温度、最後のチューニングシーケンスが実行されてから経過した時間、メモリカードからホストデバイスに送信されたデータブロックの数、および/またはメモリカードとホストデバイスとの間のトランザクションの数を含む。本装置は、また、メモリカードからデータを読み取り、その読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出し、CRCエラーを検出するとすぐに、チューニングコマンドをメモリカードに送信する。【選択図】図２
2018125040.tif 000002
【特許請求の範囲】
【請求項１】
ホストデバイス内のメモリカードを最適にチューニングするための方法であって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するステップと、
前記メモリカードを用いて読取り動作を開始するステップと、
前記少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドを前記メモリカードに送信するステップと
を含む方法。
【請求項２】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
最後のチューニングシーケンスが実行されてから経過した時間、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項３】
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに前記送信するステップが、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
前記最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するステップを含む、請求項2に記載の方法。
【請求項４】
前記メモリカードからデータを読み取るステップと、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出するステップと、
前記CRCエラーを検出するとすぐに、前記チューニングコマンドを前記メモリカードに送信するステップと
をさらに含む、請求項2に記載の方法。
【請求項５】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断するステップと、
前記チューニングコマンドを前記メモリカードに送信するステップと、
最適遅延線位相を選択するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項1に記載の方法。
【請求項７】
ホストデバイス内のメモリカードを最適にチューニングするための装置であって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するための手段と、
前記メモリカードを用いて読取り動作を開始するための手段と、
前記少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドを前記メモリカードに送信するための手段と
を含む装置。
【請求項８】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
最後のチューニングシーケンスが実行されてから経過した時間、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つを含む、請求項7に記載の装置。
【請求項９】
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに送信するための前記手段が、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
前記最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するように構成される、請求項8に記載の装置。
【請求項１０】
前記メモリカードからデータを読み取るための手段と、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出するための手段と、
前記CRCエラーを検出するとすぐに、前記チューニングコマンドを前記メモリカードに送信するための手段と
をさらに含む、請求項8に記載の装置。
【請求項１１】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断するための手段と、
前記チューニングコマンドを前記メモリカードに送信するための手段と、
最適遅延線位相を選択するための手段と
をさらに含む、請求項7に記載の装置。
【請求項１２】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項7に記載の装置。
【請求項１３】
ホストデバイス内のメモリカードを最適にチューニングするための装置であって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断し、
前記メモリカードを用いて読取り動作を開始し、
前記少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドを前記メモリカードに送信する
ように構成された処理システム
を含む装置。
【請求項１４】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
最後のチューニングシーケンスが実行されてから経過した時間、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つを含む、請求項13に記載の装置。
【請求項１５】
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに送信するように構成された前記処理システムが、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
前記最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するように構成される、請求項14に記載の装置。
【請求項１６】
前記処理システムが、
前記メモリカードからデータを読み取り、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出し、
前記CRCエラーを検出するとすぐに、前記チューニングコマンドを前記メモリカードに送信する
ようにさらに構成される、請求項14に記載の装置。
【請求項１７】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、前記処理システムが、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断し、
前記チューニングコマンドを前記メモリカードに送信し、
最適遅延線位相を選択する
ようにさらに構成される、請求項13に記載の装置。
【請求項１８】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項13に記載の装置。
【請求項１９】
ホストデバイス内のメモリカードを最適にチューニングするためのコンピュータプログラムであって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断し、
前記メモリカードを用いて読取り動作を開始し、
前記少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドを前記メモリカードに送信する
ためのコードを含むコンピュータ可読記憶媒体を含む
コンピュータプログラム。
【請求項２０】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
最後のチューニングシーケンスが実行されてから経過した時間、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つを含む、請求項19に記載のコンピュータプログラム。
【請求項２１】
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに送信するための前記コードが、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
前記最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するように構成される、請求項20に記載のコンピュータプログラム。
【請求項２２】
前記コンピュータ可読記憶媒体が、
前記メモリカードからデータを読み取り、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出し、
前記CRCエラーを検出するとすぐに、前記チューニングコマンドを前記メモリカードに送信する
ためのコードをさらに含む、請求項20に記載のコンピュータプログラム。
【請求項２３】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断し、
前記チューニングコマンドを前記メモリカードに送信し、
最適遅延線位相を選択する
ためのコードをさらに含む、請求項19に記載のコンピュータプログラム。
【請求項２４】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項19に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に明確に組み込まれている、2012年10月5日に出願した「ALGORITHM FOR OPTIMAL USAGE OF SD CARD TUNING SEQUENCE USING CMD19 TUNING COMMAND」と題する米国仮出願第61/710,639号の利益を主張するものである。
【０００２】
本開示は、一般に、通信システムに関し、より詳細には、CMD19チューニングコマンドを使用してメモリカードチューニングシーケンスを最適に使用することに関する。
【背景技術】
【０００３】
セキュアデジタル(SD)は、セルラフォン、スマートフォン、ラップトップコンピュータ、携帯情報端末(PDA)、全地球測位システム(GPS)デバイス、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレイヤ(たとえば、MP3プレイヤ)、カメラ、ゲーム機、タブレットコンピュータ、または他の任意の類似の機能デバイスなど、携帯用デバイス内で使用するために開発された不揮発(たとえば、フラッシュ)メモリカードフォーマットの一種である。たとえば、SDメモリカードは写真を記憶および検索するためにデジタルカメラによって使用され得る。ホストとも呼ばれる携帯用デバイスは、データをSDメモリカードに書き込んで、データをSDメモリカードから読み取り、この場合、読み取るための起動力は、SDメモリカードからではなく、ホストから生じる。
【０００４】
通常の従来の手法の限界および欠点は、そのようなシステムを、図面を参照して本開示の残りの部分で記載される、本発明のいくつかの態様と比較することによって、当業者に明らかになるであろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の一態様では、ホストデバイス内のメモリカードを最適にチューニングするための方法、コンピュータプログラム製品、および装置が提供される。本装置は、メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断し、メモリカードを用いて読取り動作を開始し、その少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドをメモリカードに送信する。少なくとも1つのチューニングパラメータは、メモリカードの温度、最後のチューニングシーケンスが実行されてから経過した時間、メモリカードからホストデバイスに送信されたデータブロックの数、および/またはメモリカードとホストデバイスとの間のトランザクションの数を含む。本装置は、また、メモリカードからデータを読み取り、その読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出し、CRCエラーを検出するとすぐに、チューニングコマンドをメモリカードに送信する。
【図面の簡単な説明】
【０００６】
【図１】ホストデバイスに接続された電子記憶媒体を示す図である。
【図２】ホストデバイス内のメモリカードを最適にチューニングするための方法の流れ図である。
【図３】例示的な装置における異なるモジュール/手段/構成要素間のデータフローを示す概念的なデータフロー図である。
【図４】処理システムを利用する装置のためのハードウェア実装の一例を示す図である。
【発明を実施するための形態】
【０００７】
添付の図面に関して下記に記載される詳細な説明は、様々な構成の説明として意図されており、本明細書に記載される概念が実践され得る唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解をもたらす目的で、具体的な詳細を含んでいる。しかしながら、これらの概念がこれらの具体的な詳細なしに実行され得ることが、当業者には明らかであろう。場合によっては、そのような概念を曖昧にすることを回避するために、周知の構造および構成要素がブロック図の形態で示されている。
【０００８】
様々な装置および方法を参照して、メモリシステム(たとえば、セキュアデジタル(SD)システムまたはエンベデッドマルチメディアカード(embedded Multi Media Card)(eMMC)システム)のいくつかの態様が次に提示される。これらの装置および方法は、以下の発明を実施するための形態で説明され、(「要素」と総称される)様々なブロック、モジュール、構成要素、回路、ステップ、プロセス、アルゴリズムなどによって添付の図面に示される。これらの要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実装され得る。そのような要素をハードウェアとして実装するか、ソフトウェアとして実装するかは、具体的な適用例および全体的なシステムに課された設計制約に依存する。
【０００９】
例として、要素、もしくは要素の任意の部分、または要素の任意の組合せは、1つまたは複数のプロセッサを含む「処理システム」で実装され得る。プロセッサの例としては、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明される様々な機能を実行するように構成された他の適切なハードウェアがある。処理システム内の1つまたは複数のプロセッサは、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００１０】
したがって、1つまたは複数の例示的な実施形態では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令またはコードとして非一時的コンピュータ可読媒体上に記憶されるか、あるいは非一時的コンピュータ可読媒体上で符号化され得る。コンピュータ可読媒体は、コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、あるいは、命令もしくはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され、かつコンピュータによってアクセスされ得る、任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク(DVD)、およびフロッピー（登録商標）ディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００１１】
図1は、接続115を介して、ホストデバイス(たとえば、モバイルフォン、タブレット、もしくは他の電子デバイス)110に接続された電子記憶媒体/メモリカード(たとえば、セキュアデジタル(SD)メモリカードまたはエンベデッドマルチメディアカード(eMMC))120を例示する図100である。ある態様では、メモリカード120がホストデバイス110に接続(たとえば、挿入)されるとき、ホストデバイス110は、メモリカード120の理想的なサンプリング点を判断して、そのカードと関連付けられた様々な動作を最適に実行する必要がある。ホストデバイス110は、チューニングシーケンスを実行することによって、理想的なサンプリング点を判断することができ、ホストデバイス110は、チューニングコマンドをメモリカード120に送信し、次に、メモリカード120はチューニングパターンをホストデバイス110に送信する。チューニングパターンに基づいて、ホストデバイス110は理想的なサンプリング点を判断することができる。
【００１２】
一手法によれば、ホストデバイス110は、最初のカード検出時にだけチューニングシーケンスを実行することができる。別の手法によれば、オートチューニングコマンドがサポートされ、メモリカード120は、ホストデバイス110のホストコントローラスイッチがメモリカード120からデータを要求するたびに、チューニングシーケンスをホストデバイス110に送信する。しかしながら、各受信トランザクションに関するチューニングシーケンスを開始する推定オーバヘッドは、電力、レイテンシなどに深刻な影響を及ぼし、標準動作にあまり価値を加えない。
【００１３】
進歩と、より高速なメモリカードバスインターフェースの採用とにより、現在の最大クロックは208MHz以上に設定され得る。したがって、ホストデバイス110のホストコントローラは、特定のカード遅延特性と、温度変化と、サンプリング点に影響を及ぼす他の要因とにより、データ読取りサンプリング点を調整することが必要とされる場合がある。メモリカード120はその独自のクロックを有さず、データは、着信CLKに基づいて、ホストデバイス110に送信し戻されるため、ホストサンプリング機構に往復遅延を考慮に入れるべきである。
【００１４】
SD仕様など、メモリカード仕様は、現在の最適サンプリング点を見出すための手順を定義する。しかしながら、これらの仕様は、温度変化、ウェアレベリング、ブロックカウントなどの結果として、この手順をいつ繰り返すべきかを取り上げていない。チューニングは、各読取りトランザクションに関して実行され得るが、電力、レイテンシ、および性能に対する悪影響は著しい。現在のチューニングシーケンスは、最高で150ミリ秒までかかる場合があるが、ホスト処理時間を含まず、これはシーケンスをさらに延ばす可能性がある。したがって、本開示は、チューニング動作を実行するとき、ホストサンプリングクロックを調整するためのチューニングコマンド(たとえば、CMD19チューニングコマンド)を最適に使用するためにホストデバイス110が利用可能な追加のデータを利用することを目標とする。
【００１５】
一態様では、本開示は、ウルトラハイスピード-I(UHS-I)および/またはウルトラハイスピード-II(UHS-II)スピードクラスと、ホストサンプリングクロックを調整するためのCMD19チューニングコマンドとをサポートするメモリカードの動作性能を改善する。正確な遅延線位相(delay line phase)を維持して、必要とされるチューニングシーケンスの数を最小限に抑えるために、CMD19チューニングコマンドを最適な形で使用するためのアルゴリズムが提供される。これは、電力を保持して、ユーザの経験を改善して、ホストデバイスの性能を改善する。
【００１６】
チューニングシーケンスを実行することが必要かどうかを決定するために、1つまたは複数のパラメータを使用することになる適応アルゴリズムが提供される。このアルゴリズムは、1)カード温度、2)最後のチューニングシーケンスから経過した時間、3)カードから読み取られたブロックの数、4)巡回冗長検査(CRC)エラーの発生、および5)事前定義された窓にわたるトランザクションの数などの基準を評価することになる。他の様々な基準を評価することも可能である。これらの基準を使用して、ホストデバイス110は、新しいチューニングシーケンスを開始すべきかどうかを判断することができる。
【００１７】
このアルゴリズムが決定基準に含めることができるパラメータの点で、このアルゴリズムは適応型である。また、このアルゴリズムは通常の動作の間に実行され得る。加えて、このアルゴリズムは、チューニングシーケンスを実行して、ホストデバイス110のホストコントローラスイッチに通知することによって、CRCエラーを改善することができる。
【００１８】
図2は、ホストデバイス内のメモリカードを最適にチューニングするための方法の流れ図200である。メモリカードは、たとえば、SDカードまたはeMMCであり得る。この方法は、ホストデバイスによって実行され得る。ステップ202で、ホストデバイスは電源投入して(すなわち、アクティブ化して)動作可能になる。ステップ204で、ホストデバイスは、ホストデバイス内に挿入された(接続された)メモリカードを初期化する。
【００１９】
ステップ206で、ホストデバイスは、そのメモリカードが、UHS-Iおよび/またはUHS-IIなど、特定のスピードクラスをサポートするかどうかを判断する。ホストデバイスがそのメモリカードはUHS-Iおよび/またはUHS-IIをサポートしないと判断するとき、ホストデバイスはステップ232に進み、そのメモリカードに関して、レガシーモード動作を実行する。レガシーモード動作は、低いクロック周波数を特徴とし得、チューニングシーケンスに関与しない場合がある。
【００２０】
ステップ208で、ホストデバイスがそのメモリカードはUHS-Iおよび/またはUHS-IIをサポートすると判断するとき、ホストデバイスはチューニングコマンドをそのメモリカードに発行する(送信する)。チューニングコマンドは、CMD19チューニングコマンドであり得る。次に、メモリカードはチューニングパターンをホストデバイスに送信することができる。ステップ210で、チューニングパターンに基づいて、ホストデバイスは、メモリカードと関連付けられた様々な動作を実行するための最適遅延線位相を選択することができる。
【００２１】
ステップ212で、ホストデバイスは、メモリカードと関連付けられた1つまたは複数のチューニングパラメータを判断して、記録することができる。チューニングパラメータは、メモリカードの温度、最後のチューニングシーケンスが実行されてから経過した時間、メモリカードからホストデバイスに送信されたデータブロックの数、および/またはメモリカードとホストデバイスとの間のトランザクションの数を含み得る。
【００２２】
ステップ214で、ホストデバイスは、メモリカードを用いて読取り/書込み動作を開始する。読取り/書込み動作は、ホストデバイスのホストコントローラから要求を受信するとすぐに開始され得る。その後、ホストデバイスは、1つまたは複数のチューニングパラメータに基づいて、チューニングコマンドをメモリカードに送信することを判断することができる。
【００２３】
たとえば、ステップ216で、ホストデバイスは、メモリカードの温度の変化が所定のしきい値を超えるかどうかを判断する。所定のしきい値を超える場合、ステップ228で、ホストデバイスは、チューニングコマンドをメモリカードに送信する。
【００２４】
別の例では、ステップ218で、ホストデバイスは、最後のチューニングシーケンスが実行されてから経過した時間が最大時間を超えるかどうかを判断する。最大時間を超える場合、ステップ228で、ホストデバイスは、チューニングコマンドをメモリカードに送信する。
【００２５】
さらなる例では、ステップ220で、ホストデバイスは、メモリカードからホストデバイスに送信されたデータブロックの数が最大ブロックカウントを超えるかどうかを判断する。最大ブロックカウントを超える場合、ステップ228で、ホストデバイスは、チューニングコマンドをメモリカードに送信する。
【００２６】
別の例では、ステップ222で、ホストデバイスは、事前定義された窓にわたるメモリカードとホストデバイスとの間のトランザクションの数が所定のしきい値を超えるかどうかを判断する。所定のしきい値を超える場合、ステップ228で、ホストデバイスは、チューニングコマンドをメモリカードに送信する。
【００２７】
ステップ224で、チューニングパラメータに関するステップ216、218、220、および/または222における判断のうちのいずれも前向きな結果を有さない場合、ホストデバイスはメモリカードからデータを読み取ることができる。ステップ226で、ホストデバイスは、読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーが検出されるかどうかを判断することができる。CRCエラーが検出された場合、ステップ228で、ホストデバイスはチューニングコマンドをメモリカードに送信する。ステップ230で、CRCエラーが検出されなかった場合、ホストデバイスは読み取られたデータをメモリ内に記憶することができる。
【００２８】
上述のように、チューニングコマンドはCMD19チューニングコマンドであり得る。ステップ228で、ホストデバイスがCMD19チューニングコマンドをメモリカードに送信した後、メモリカードはチューニングパターンをホストデバイスに戻すことができる。そのチューニングパターンに基づいて、ホストデバイスは、ホストデバイスがそのメモリカードと関連付けられた様々な動作を最適に実行するのを可能にする、メモリカードの理想的なサンプリング点を判断することができる(ステップ210)。
【００２９】
図3は、例示的な装置302における異なるモジュール/手段/構成要素間のデータフローを示す概念的なデータフロー図300である。この装置はホストデバイスであってよい。この装置は、受信モジュール304と、カード初期化モジュール306と、チューニングモジュール308と、パラメータ処理モジュール310と、読取り/書込みモジュール312と、メモリ314と、送信モジュール316とを含む。
【００３０】
装置302が電源投入して(すなわち、アクティブ化して)動作可能になるとき、カード初期化モジュール306は、装置302内に挿入された(接続された)メモリカード350を初期化する。メモリカード350は、たとえば、SDカードまたはeMMCであり得る。カード初期化モジュール306は、そのメモリカード350が、UHS-Iおよび/またはUHS-IIなど、特定のスピードクラスをサポートするかどうかを判断することができる。カード初期化モジュール306がメモリカード350はUHS-Iおよび/またはUHS-IIをサポートしないと判断するとき、カード初期化モジュール306は、メモリカード350に関してレガシーモード動作を実行するように装置302に命令することができる。レガシーモード動作は、低いクロック周波数を特徴とし得、チューニングシーケンスに関与しない場合がある。
【００３１】
カード初期化モジュール306がメモリカード350はUHS-Iおよび/またはUHS-IIをサポートすると判断するとき、チューニングモジュール308は、(送信モジュール316を介して)メモリカード350にチューニングコマンドを発行(送信)する。チューニングコマンドは、CMD19チューニングコマンドであり得る。次にチューニングモジュール308は、(受信モジュール304を介して)メモリカード350からチューニングパターンを受信することができる。そのチューニングパターンに基づいて、チューニングモジュール308は、メモリカード350と関連付けられた様々な動作を実行するための最適遅延線位相を選択することができる。
【００３２】
パラメータ処理モジュール310は、メモリカード350と関連付けられた1つまたは複数のチューニングパラメータを判断および記録することができる。チューニングパラメータは、メモリカード350の温度、最後のチューニングシーケンスが実行されてから経過した時間、メモリカード350から装置302に送信されたデータブロックの数、および/またはメモリカード350と装置302との間のトランザクションの数を含み得る。
【００３３】
読取り/書込みモジュール312は、メモリカード350を用いて読取り/書込み動作を開始することができる。読取り/書込み動作は、装置302のホストコントローラから要求を受信するとすぐに開始され得る。その後、チューニングモジュール308は、1つまたは複数のチューニングパラメータに基づいて、チューニングコマンドをメモリカード350に送信することを判断することができる。
【００３４】
たとえば、チューニングモジュール308は、メモリカード350の温度の変化が所定のしきい値を超えるかどうかを判断することができる。所定のしきい値を超える場合、チューニングモジュール308は、チューニングコマンドをメモリカード350に送信する。
【００３５】
別の例では、チューニングモジュール308は、最後のチューニングシーケンスが実行されてから経過した時間が最大時間を超えるかどうかを判断することができる。最大時間を超える場合、チューニングモジュール308は、チューニングコマンドをメモリカード350に送信する。
【００３６】
さらなる例では、チューニングモジュール308は、メモリカード350から装置302に送信されたデータブロックの数が最大ブロックカウントを超えるかどうかを判断することができる。最大ブロックカウントを超える場合、チューニングモジュール308は、チューニングコマンドをメモリカード350に送信する。
【００３７】
別の例では、ホストデバイスは、事前定義された窓にわたるメモリカード350と装置302との間のトランザクションの数が所定のしきい値を超えるかどうかを判断することができる。所定のしきい値を超える場合、チューニングモジュール308は、チューニングコマンドをメモリカード350に送信する。
【００３８】
チューニングパラメータに関する判断のいずれも肯定的に判断されない場合、読取り/書込みモジュール312は、メモリカード350からデータを読み取ることができる。読取り/書込みモジュール312は、読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーが検出されるかどうかを判断することができる。読取り/書込みモジュール312がCRCエラーを検出する場合、チューニングモジュール308は、チューニングコマンドをメモリカード350に送信する。読取り/書込みモジュール312がCRCエラーを検出しない場合、読取り/書込みモジュール312は読み取られたデータをメモリ314内に記憶することができる。
【００３９】
上述のように、チューニングコマンドはCMD19チューニングコマンドであり得る。チューニングモジュール308がCMD19チューニングコマンドをメモリカード350に送信した後、メモリカード350はチューニングパターンを装置302に戻すことができる。そのチューニングパターンに基づいて、チューニングモジュール308は、装置302がメモリカード350と関連付けられた様々な動作を最適に実行するのを可能にする、メモリカード350の理想的なサンプリング点を判断することができる。
【００４０】
この装置は、図2の上述したフローチャート内のアルゴリズムのステップの各々を実行する追加のモジュールを含み得る。したがって、図2の上述したフローチャート内の各ステップは、モジュールによって実行されてよく、この装置は、それらのモジュールの1つまたは複数を含み得る。モジュールは、指定されたプロセス/アルゴリズムを実行するように特別に構成され、指定されたプロセス/アルゴリズムを実行するように構成されたプロセッサによって実施され、プロセッサによる実施のためにコンピュータ可読媒体内に記憶される、1つもしくは複数のハードウェア構成要素、またはそれらの何らかの組合せであり得る。
【００４１】
図4は、処理システム414を利用する装置302'のためのハードウェア実装の一例を示す図400である。処理システム414は、バス424によって概略的に表されるバスアーキテクチャで実装され得る。バス424は、処理システム414の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含み得る。バス424は、プロセッサ404によって表される1つもしくは複数のプロセッサおよび/またはハードウェアモジュールと、モジュール304、306、308、310、312、314、および316と、コンピュータ可読媒体406とを含む様々な回路を互いにリンクさせる。バス424は、タイミングソース、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもでき、これらの回路は当技術分野でよく知られており、したがってこれ以上は説明しない。
【００４２】
処理システム414は、コンピュータ可読媒体406に結合されたプロセッサ404を含む。プロセッサ404は、コンピュータ可読媒体406上に記憶されたソフトウェアの実行を含む全般的な処理を担う。ソフトウェアは、プロセッサ404によって実行されると、任意の特定の装置に対して上で説明された様々な機能を処理システム414に実行させる。コンピュータ可読媒体406は、ソフトウェアを実行するときにプロセッサ404によって操作されるデータを記憶するために使用されてもよい。処理システムは、モジュール304、306、308、310、312、314、および316のうちの少なくとも1つをさらに含む。これらのモジュールは、コンピュータ可読媒体406の中に存在する/記憶される、プロセッサ404で実行されるソフトウェアモジュール、プロセッサ404に結合された1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであってよい。
【００４３】
一構成では、ホストデバイス内のメモリカードを最適にチューニングするための装置302/302'は、そのメモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するための手段と、そのメモリカードを用いて読取り動作を開始するための手段と、その少なくとも1つのチューニングパラメータに基づいて、チューニングコマンドをそのメモリカードに送信するための手段と、そのメモリカードからデータを読み取るための手段と、読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出するための手段と、CRCエラーを検出するとすぐに、チューニングコマンドをそのメモリカードに送信するための手段と、そのメモリカードがウルトラハイスピード(UHS)をサポートすることを判断するための手段と、チューニングコマンドをそのメモリカードに送信するための手段と、最適遅延線位相を選択するための手段とを含む。上記の手段は、装置302の上記のモジュールおよび/または上記の手段によって列挙された機能を実行するように構成された装置302'の処理システム414のうちの1つもしくは複数であってよい。
【００４４】
開示されたプロセスにおけるステップの具体的な順序または階層は、例示的な手法の例示であることを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの具体的な順序または階層は再構成可能であることを理解されたい。さらに、いくつかのステップが組み合わされてよく、または省略されてよい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されることは意図されない。
【００４５】
上記の説明は、本明細書で説明する様々な態様を当業者が実践できるようにするために与えられる。これらの態様への様々な変更は当業者には容易に明らかであり、本明細書で定義した一般的原理は他の態様に適用され得る。したがって、特許請求の範囲は本明細書で示す態様に限定されるよう意図されているわけではなく、文言通りの特許請求の範囲と整合するすべての範囲を許容するよう意図されており、単数の要素への言及は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味するよう意図されている。別段に明記されていない限り、「いくつかの」という用語は「1つまたは複数の」を指す。当業者に知られている、または後で知られることになる本開示全体にわたって説明する様々な態様の要素に対するすべての構造的および機能的均等物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。その上、本明細書で開示された内容は、そのような開示が特許請求の範囲で明記されているか否かにかかわらず、公に供するものではない。いかなるクレーム要素も、要素が「ための手段」という語句を使用して明確に記載されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【００４６】
100  図
110  ホストデバイス
115  接続
120  電子記憶媒体/メモリカード
200  流れ図
300  データフロー図
302  装置
302'  装置
304  受信モジュール
306  カード初期化モジュール
308  チューニングモジュール
310  パラメータ処理モジュール
312  読取り/書込みモジュール
314  メモリ
316  送信モジュール
400  図
404  プロセッサ
406  コンピュータ可読媒体
414  処理システム
424  バス
【図１】
2018125040.tif 000003
【図２】
2018125040.tif 000004
【図３】
2018125040.tif 000005
【図４】
2018125040.tif 000006
【手続補正書】
【提出日】平成30年5月10日(2018.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
何れも独自のクロックを有さないセキュアデジタル(SD)メモリカードまたはエンベデッドマルチメディアカード(eMMC)を最適にチューニングするためのホストデバイス内の方法であって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するステップであって、前記少なくとも1つのチューニングパラメータが、最後のチューニングシーケンスが実行されてから経過した時間を含む、ステップと、
前記メモリカードを用いて読取り動作を開始するステップと、
チューニングコマンドを前記メモリカードに送信するステップであって、前記少なくとも1つのチューニングパラメータが所定のしきい値を超えると前記ホストデバイスが検出したときに前記チューニングコマンドが送信される、ステップと
を含む、方法。
【請求項２】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、または
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つをさらに含み、
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに前記送信するステップが、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するステップを含む、請求項1に記載の方法。
【請求項３】
前記メモリカードからデータを読み取るステップと、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出するステップと、
前記CRCエラーを検出すると、前記チューニングコマンドを前記メモリカードに送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断するステップと、
前記チューニングコマンドを前記メモリカードに送信するステップと、
最適遅延線位相を選択するステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項1に記載の方法。
【請求項６】
何れも独自のクロックを有さないセキュアデジタル(SD)メモリカードまたはエンベデッドマルチメディアカード(eMMC)を最適にチューニングするためのホストデバイス内の装置であって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するための手段であって、前記少なくとも1つのチューニングパラメータが、最後のチューニングシーケンスが実行されてから経過した時間を含む、手段と、
前記メモリカードを用いて読取り動作を開始するための手段と、
チューニングコマンドを前記メモリカードに送信するための手段であって、前記送信するための手段は、前記少なくとも1つのチューニングパラメータが所定のしきい値を超えると前記ホストデバイスが検出したときに前記チューニングコマンドを送信するように構成される、手段と
を含む、装置。
【請求項７】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、または
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つをさらに含み、
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに送信するための前記手段が、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するように構成される、請求項6に記載の装置。
【請求項８】
前記メモリカードからデータを読み取るための手段と、
前記読み取られたデータと関連付けられた巡回冗長検査(CRC)エラーを検出するための手段と、
前記CRCエラーを検出すると、前記チューニングコマンドを前記メモリカードに
送信するための手段と
をさらに含む、請求項6に記載の装置。
【請求項９】
前記メモリカードと関連付けられた前記少なくとも1つのチューニングパラメータを前記判断するステップに先立って、
前記メモリカードがウルトラハイスピード(UHS)をサポートすることを判断するための手段と、
前記チューニングコマンドを前記メモリカードに送信するための手段と、
最適遅延線位相を選択するための手段と
をさらに含む、請求項6に記載の装置。
【請求項１０】
前記チューニングコマンドがCMD19チューニングコマンドである、請求項6に記載の装置。
【請求項１１】
何れも独自のクロックを有さないセキュアデジタル(SD)メモリカードまたはエンベデッドマルチメディアカード(eMMC)を最適にチューニングするためのホストデバイス内のコンピュータプログラムであって、
前記メモリカードと関連付けられた少なくとも1つのチューニングパラメータを判断するステップであって、前記少なくとも1つのチューニングパラメータが、最後のチューニングシーケンスが実行されてから経過した時間を含む、ステップと、
前記メモリカードを用いて読取り動作を開始するステップと、
チューニングコマンドを前記メモリカードに送信するステップであって、前記少なくとも1つのチューニングパラメータが所定のしきい値を超えると前記ホストデバイスが検出したときに前記チューニングコマンドが送信される、ステップと
を行うためのコードを含む、コンピュータプログラム。
【請求項１２】
前記少なくとも1つのチューニングパラメータが、
前記メモリカードの温度、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの数、または
前記メモリカードと前記ホストデバイスとの間のトランザクションの数
のうちの少なくとも1つをさらに含み、
前記少なくとも1つのチューニングパラメータに基づいて、前記チューニングコマンドを前記メモリカードに送信するための前記コードが、
前記メモリカードの前記温度の変化が所定のしきい値を超えるとき、
最後のチューニングシーケンスが実行されてから経過した前記時間が最大時間を超えるとき、
前記メモリカードから前記ホストデバイスに送信されたデータブロックの前記数が最大ブロックカウントを超えるとき、または
事前定義された窓にわたる前記メモリカードと前記ホストデバイスとの間のトランザクションの前記数が所定のしきい値を超えるとき、
前記チューニングコマンドを前記メモリカードに送信するように構成される、請求項11に記載のコンピュータプログラム。
【請求項１３】
前記少なくとも1つのチューニングパラメータが、前記メモリカードの温度をさらに含む、請求項1に記載の方法。
【請求項１４】
前記少なくとも1つのチューニングパラメータが、前記メモリカードから前記ホストデバイスに送信されたデータブロックの数をさらに含む、請求項1に記載の方法。
【請求項１５】
前記少なくとも1つのチューニングパラメータが、前記メモリカードと前記ホストデバイスとの間のトランザクションの数をさらに含む、請求項1に記載の方法。
【外国語明細書】
2018125040000001.pdf