(57)【要約】      （修正有）【課題】処理ラインの状況や伝送条件等に適合させて受信データのサンプリングに使用可能なクロックの位相範囲を設定可能として、実用に適したキャリブレーション処理を実現することができるようにしたキャリブレーション処理制御装置及びキャリブレーション処理制御方法を提供する。【解決手段】キャリブレーションコマンドに対するキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングした結果の正当性に基づいてサンプリングクロックの位相設定を決定する第１の状態と、キャリブレーションコマンドに対するコマンドレスポンス及びキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングした結果の正当性に基づいてサンプリングクロックの位相設定を決定する第２の状態とを、外部条件に応じて選択的に切り替える。【選択図】図３
2011233043.tif 000002
【特許請求の範囲】
【請求項１】
キャリブレーション要求に基づいてキャリブレーションコマンドを発行する発行手段と、
前記発行手段で発行されたキャリブレーションコマンドに対するコマンドレスポンスデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第１の確認手段と、
前記発行手段で発行されたキャリブレーションコマンドに対するキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第２の確認手段と、
前記第２の確認手段による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第１の状態と、前記第１及び第２の確認手段による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第２の状態とに切り替え可能な設定手段と、
外部条件に基づいて前記設定手段を第１の状態と第２の状態とに選択的に切り替える制御手段とを具備することを特徴とするキャリブレーション処理制御装置。
【請求項２】
前記第２の状態は、前記第１の確認手段による正当性の確認結果を用いて検出した、受信データのサンプリングに使用可能なサンプリングクロックの位相範囲と、前記第２の確認手段による正当性の確認結果を用いて検出した、受信データのサンプリングに使用可能なサンプリングクロックの位相範囲とが重なり合う範囲を、受信データのサンプリングに使用可能なサンプリングクロックの位相範囲として検出することを特徴とする請求項１記載のキャリブレーション処理制御装置。
【請求項３】
前記制御手段は、データ転送品質よりもデータ転送レートの優先度が高く設定されている場合、前記設定手段を第１の状態に設定し、データ転送レートよりもデータ転送品質の優先度が高く設定されている場合、前記設定手段を第２の状態に設定することを特徴とする請求項１記載のキャリブレーション処理制御装置。
【請求項４】
キャリブレーション要求に基づいてキャリブレーションコマンドを発行する第１の工程と、
前記第１の工程で発行されたキャリブレーションコマンドに対するコマンドレスポンスデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第２の工程と、
前記第１の工程で発行されたキャリブレーションコマンドに対するキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第３の工程と、
前記第３の工程による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第４の工程と、
前記第２及び第３の工程による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第５の工程と、
外部条件に基づいて前記第４の工程及び前記第５の工程のいずれを実施するかを選択する第６の工程とを有することを特徴とするキャリブレーション処理制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施の形態は、デバイス相互間でデータ伝送を確立する際のキャリブレーション処理を行なうキャリブレーション処理制御装置及びキャリブレーション処理制御方法に関する。
【背景技術】
【０００２】
周知のように、例えばＰＣ（personal computer）等でなるホスト装置が、それに内蔵されたホストコントローラを制御してメモリカードとの間でデータ伝送を行なう場合、ホストコントローラは、メモリカードとの相互間でデータ伝送を確立するためにキャリブレーション処理を実行している。
【０００３】
そして、このようなキャリブレーション処理を実行するにあたり、近年では、ホストコントローラに対して、メモリカードから受信したデータをサンプリングするためのクロックの位相を可変に制御することができるようにした仕様が規格化され、その規格に対応したホストコントローラが実用化されている。
【０００４】
このため、ホストコントローラは、メモリカードからの受信データに対し、サンプリング用クロックの位相を順次シフトさせてサンプリングを行ない、各位相のクロックでのサンプリング後のデータの正当性を逐一確認することにより、データサンプリングに使用可能なサンプリング用クロックの位相設定範囲（サンプリングウィンドウ）を検出し、その検出された位相設定範囲を基に最終的な位相設定を決定している。
【０００５】
ところで、ホストコントローラがサンプリング用クロックの位相を順次シフトし、各位相のクロックでサンプリングしたデータの正当性を逐一確認することによりサンプリング用位相設定を決定する技術は、まだまだ開発途上にある段階であり、種々の点で改良すべき余地が多々残されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２３３９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、この発明は上記事情を考慮してなされたもので、処理ラインの状況や伝送条件等に適合させて受信データのサンプリングに使用可能なクロックの位相範囲を設定可能として、実用に適したキャリブレーション処理を実現することができるようにしたキャリブレーション処理制御装置及びキャリブレーション処理制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の実施の形態に係るキャリブレーション処理制御装置は、キャリブレーション要求に基づいてキャリブレーションコマンドを発行する発行手段と、発行手段で発行されたキャリブレーションコマンドに対するコマンドレスポンスデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第１の確認手段と、発行手段で発行されたキャリブレーションコマンドに対するキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第２の確認手段と、第２の確認手段による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第１の状態と、第１及び第２の確認手段による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第２の状態とに切り替え可能な設定手段と、外部条件に基づいて設定手段を第１の状態と第２の状態とに選択的に切り替える制御手段とを備えるようにしたものである。
【０００９】
また、この発明の実施の形態に係るキャリブレーション処理制御方法は、キャリブレーション要求に基づいてキャリブレーションコマンドを発行する第１の工程と、第１の工程で発行されたキャリブレーションコマンドに対するコマンドレスポンスデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第２の工程と、第１の工程で発行されたキャリブレーションコマンドに対するキャリブレーションデータについて、サンプリングクロックの位相を順次可変してサンプリングを行なった結果の正当性を確認する第３の工程と、第３の工程による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第４の工程と、第２及び第３の工程による正当性の確認結果を用いて、受信データのサンプリングに使用するサンプリングクロックの位相設定を決定する第５の工程と、外部条件に基づいて第４の工程及び第５工程のいずれを実施するかを選択する第６の工程とを有するようにしたものである。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態を示すもので、ＰＣの信号処理系の一例を概略的に説明するために示すブロック構成図。
【図２】同実施の形態におけるＰＣ内のホストコントローラの一例を説明するために示すブロック構成図。
【図３】同実施の形態におけるホストコントローラ内のキャリブレーション処理制御部の一例を説明するために示すブロック構成図。
【図４】同実施の形態におけるキャリブレーション処理制御部が行なう処理動作の一例を説明するために示す図。
【図５】同実施の形態におけるキャリブレーション処理制御部が行なう処理動作の一例を説明するために示すフローチャート。
【図６】同実施の形態におけるキャリブレーション処理制御部によって奏される効果の一例を説明するために示す図。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態について図面を参照して詳細に説明する。図１は、この実施の形態で説明するホスト装置としてのＰＣ１１の信号処理系を概略的に示している。このＰＣ１１は、図示しないＣＰＵ（central processing unit）を内蔵したＰＣ本体部１２に、例えば液晶パネル等を用いた表示部１３、操作部としてのキーボード１４、ポインティングデバイスとしてのマウス１５等が接続される構成となっている。
【００１２】
また、このＰＣ本体部１２には、ホストコントローラ１６が接続されている。このホストコントローラ１６には、例えばＳＤ（secure digital）カード等のメモリカード１７が着脱可能となされている。メモリカード１７がホストコントローラ１６に装着されたとき、両者は、コマンドラインとデータラインとで接続される。そして、このホストコントローラ１６は、ＰＣ本体部１２にインストールされたホストドライバ１８の制御に基づき、装着されたメモリカード１７に対してキャリブレーション処理やデータ伝送等を実行することができる。
【００１３】
図２は、上記ホストコントローラ１６の一例を示している。このホストコントローラ１６は、ホストドライバ１８から出力される各種のコマンドやデータ等が供給される制御部１９を備えている。この制御部１９は、ホストドライバ１８から供給されたコマンドを解析し、その解析結果をＩ（input）／Ｏ（output）コントローラ２０に出力している。そして、このＩ／Ｏコントローラ２０は、制御部１９が解析したコマンドの解析結果を、メモリカード１７との伝送バスプロトコルに従ったコマンドに変換してメモリカード１７に送信する。
【００１４】
すなわち、ホストドライバ１８からメモリカード１７に対するデータ書き込みコマンドが供給された場合、制御部１９は、そのコマンドの解析結果を、Ｉ／Ｏコントローラ２０により、メモリカード１７との伝送バスプロトコルに従ったコマンドに変換してメモリカード１７に送信させる。そして、制御部１９は、データ書き込みコマンドの後にホストドライバ１８から供給される書き込み用のデータをＩ／Ｏコントローラ２０に送り、メモリカード１７に書き込ませる。
【００１５】
また、ホストドライバ１８からメモリカード１７に対するデータ読み出しコマンドが供給された場合、制御部１９は、そのコマンドの解析結果を、Ｉ／Ｏコントローラ２０により、メモリカード１７との伝送バスプロトコルに従ったコマンドに変換してメモリカード１７に送信させ、データの読み出しを行なわせる。この場合、メモリカード１７から読み出されたデータは、Ｉ／Ｏコントローラ２０内の同期回路２１により、クロックジェネレータ２２から供給されるサンプリングクロックに基づいてサンプリングされた後、制御部１９に供給され、制御部１９がホストドライバ１８に出力する。
【００１６】
ここで、ホストドライバ１８からメモリカード１７に対するキャリブレーションコマンド発行要求コマンドが供給された場合には、制御部１９内のキャリブレーション処理制御部２３が、そのコマンドを解析し、キャリブレーションコマンドを発行する。また、このキャリブレーション処理制御部２３は、クロックジェネレータ２２に対して、出力サンプリングクロックの位相を制御するための位相設定値を通知する信号を出力している。
【００１７】
そして、上記キャリブレーションコマンドは、Ｉ／Ｏコントローラ２０によりメモリカード１７との伝送バスプロトコルに従ったコマンドに変換され、コマンドラインを介してメモリカード１７に送信される。メモリカード１７は、キャリブレーションコマンドを受信すると、それに対するコマンドレスポンスデータとキャリブレーションデータとを出力する。このコマンドレスポンスデータは、コマンドラインを介してＩ／Ｏコントローラ２０内の同期回路２１に供給され、クロックジェネレータ２２から供給されるサンプリングクロックに基づいてサンプリングされキャリブレーション処理制御部２３に供給される。
【００１８】
また、上記したキャリブレーションデータは、データラインを介してＩ／Ｏコントローラ２０内の同期回路２１に供給され、クロックジェネレータ２２から供給されるサンプリングクロックに基づいてサンプリングされキャリブレーション処理制御部２３に供給される。
【００１９】
そして、このキャリブレーション処理制御部２３では、キャリブレーションコマンド発行要求毎にクロックジェネレータ２２から出力されるサンプリングクロックの位相を順次シフトさせてサンプリングを行ない、サンプリングされたキャリブレーションデータの各位相クロックでの正当性確認を逐次行なう。これにより得られた正当性確認結果からサンプリングクロックの使用可能な位相設定範囲（サンプリングウィンドウ）を検出する。この検出されたサンプリングウィンドウに対し、キャリブレーション処理の成否を判定するために必要となる受信データサンプリング用クロックの位相設定範囲の幅を有しているか否かを判定することにより、キャリブレーション処理の成否判定を行なう。そして、この結果より、メモリカード１７から受信したデータをサンプリングするためのクロックの位相設定を決定する状態を第１の状態とする。
【００２０】
また、このキャリブレーション処理制御部２３では、キャリブレーションコマンド発行要求毎にクロックジェネレータ２２から出力されるサンプリングクロックの位相を順次シフトさせてサンプリングを行ない、サンプリングされたコマンドレスポンスデータ及びキャリブレーションデータの各位相クロックでの正当性確認を逐次行なう。コマンドレスポンスデータのサンプリング及びキャリブレーションデータのサンプリング結果がいずれも正当であった場合をその位相設定において正当であったと判断することにより得られた正当性確認結果からサンプリングクロックの使用可能な位相設定範囲（サンプリングウィンドウ）を検出する。この検出されたサンプリングウィンドウに対し、キャリブレーション処理の成否を判定するために必要となる受信データサンプリング用クロックの位相設定範囲の幅を有しているか否かを判定することにより、キャリブレーション処理の成否判定を行なう。そして、この結果より、メモリカード１７から受信したデータをサンプリングするためのクロックの位相設定を決定する状態を第２の状態とする。
【００２１】
第１の状態と第２の状態とは選択的に制御されうる。
【００２２】
このことは、換言すれば、メモリカード１７からの受信データサンプリング用クロックの使用可能な位相範囲（サンプリングウィンドウ）を検出する際に、キャリブレーションデータに対するサンプリングの正当性の確認結果に加えて、レスポンスデータのサンプリングの正当性の確認結果を反映させるか否かを選択的に切り替えていることになる。
【００２３】
この第１の状態と第２の状態とは、ホストコントローラ１６とメモリカード１７との間の処理ラインの状況によるサンプリングウィンドウの幅の変化や、データの伝送品質と伝送レートとのどちらを優先させるかという伝送条件等に応じて、ホストデバイス１８が選択的に切り替えている。
【００２４】
図３は、上記キャリブレーション処理制御部２３の一例を示している。すなわち、サンプリングクロック位相設定値制御部２４は、ホストドライバ１８からのキャリブレーションコマンド発行要求コマンドを受けて、クロックジェネレータ２２に対して、出力サンプリングクロックの位相を選択し切り替えるための位相設定値を通知する。
【００２５】
また、キャリブレーションコマンド発行処理部２５は、ホストドライバ１８からのキャリブレーションコマンド発行要求コマンドを受けて、サンプリングクロック位相設定値制御部２４によるサンプリングクロックの位相設定後、キャリブレーションコマンドをＩ／Ｏコントローラ２０に発行する。
【００２６】
さらに、キャリブレーションコマンド受信レスポンス正当性確認部２６は、キャリブレーションコマンドに対してメモリカード１７から返信されるコマンドレスポンスデータの正当性、つまり、現在選択されているサンプリングクロックの位相でコマンドレスポンスデータが正しく受信できたか否かを確認する。
【００２７】
また、キャリブレーションコマンド受信データ正当性確認部２７は、キャリブレーションコマンドに対してメモリカード１７から返信されるキャリブレーションデータの正当性、つまり、現在選択されているサンプリングクロックの位相でキャリブレーションデータが正しく受信できたか否かを確認する。
【００２８】
なお、キャリブレーションコマンド受信レスポンス正当性確認部２６及びキャリブレーションコマンド受信データ正当性確認部２７による確認動作は、サンプリングクロックの位相を順次シフトさせて複数回実行される。そして、これらのキャリブレーションコマンド受信レスポンス正当性確認部２６及びキャリブレーションコマンド受信データ正当性確認部２７による確認結果は、キャリブレーションコマンド処理正当性確認部３０で各キャリブレーションコマンド処理正当性結果判定に反映されて、各キャリブレーションコマンド処理正当性結果保持部２８に保持される。
【００２９】
データサンプリングウィンドウサーチ部２９は、各キャリブレーションコマンド処理正当性結果保持部２８に保持された正当性結果に基づいて、メモリカード１７からの受信データを正しく受信することができたサンプリング用クロックの位相範囲（サンプリングウィンドウ）を検出する。
【００３０】
この場合、キャリブレーションコマンド処理正当性確認部３０は、キャリブレーションコマンド受信データ正当性確認部２７による確認結果から受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）を設定する第１の状態と、キャリブレーションコマンド受信データ正当性確認部２７による確認結果から生成した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）と、キャリブレーションコマンド受信レスポンス正当性確認部２６による確認結果から生成した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）とが重なり合う範囲を、受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）として設定する第２の状態とに切り替えられる。
【００３１】
第１の状態と第２の状態との切り替えは、ホストデバイス１８から供給される切り替え制御信号を受けてキャリブレーションコマンド処理正当性確認部３０が実行する。ホストデバイス１８は、先に述べたように、ホストコントローラ１６とメモリカード１７との間の処理ラインの状況によるサンプリングウィンドウの幅の変化や、データの伝送品質と伝送レートとのどちらを優先させるかという伝送条件等に応じて、第１の状態と第２の状態とを切り替えるための切り替え制御信号を生成し、キャリブレーションコマンド処理正当性確認部３０に出力している。
【００３２】
キャリブレーション成否判定部３１は、ホストドライバ１８からキャリブレーションコマンド発行要求コマンドが出力された後の、上記した一連のキャリブレーション処理結果に基づいてキャリブレーション処理の成否を判定する。
【００３３】
ステータスレジスタ３２は、一連のキャリブレーション処理結果を示す各種のステータス（例えば、キャリブレーションの完了を示すキャリブリーション完了ステータス、キャリブレーションの結果の正当性を示すキャリブレーション正当性ステータス、キャリブレーションの続行を示すキャリブリーション継続要求ステータス等）を保持するレジスタである。
【００３４】
システムバスインターフェース３３は、ホストドライバ１８からのキャリブレーションコマンド発行要求や各種設定要求を受信するとともに、ホストドライバ１８に各種のステータス（データ受信完了フラグ、キャリブレーション開始フラグ、サンプリングクロック選択等の必要な情報）や、ステータス確認タイミング等の通知を送信している。
【００３５】
キャリブレーション処理管理部３４は、キャリブレーション処理制御部２３の処理動作を統括的に制御するもので、ホストデバイス１８から供給される各種の要求を受けて、その内容が反映されるように各部をそれぞれ制御している。
【００３６】
ここで、図４（ａ）は、キャリブレーションコマンド受信レスポンス正当性確認部２６による確認結果から検出した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）を示し、図４（ｂ）は、キャリブレーションコマンド受信データ正当性確認部２７による確認結果から検出した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）を示している。
【００３７】
両者の位相範囲（サンプリングウィンドウ）が異なっているのは、ホストコントローラ１６に装着されたメモリカード１７の品質のばらつき等に応じて、コマンド系に対する処理ラインの処理状況や伝送状況と、データ系に対する処理ラインの処理状況や伝送状況とにばらつきが生じるからである。
【００３８】
そして、図４（ｂ）に示した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）が、キャリブレーションコマンド処理正当性確認部３０が第１の状態に設定されたときに検出されるサンプリングウィンドウであり、図４（ａ）及び（ｂ）に示した各サンプリングウィンドウが重なり合う、図４（ｃ）に示す受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）が、キャリブレーションコマンド処理正当性確認部３０が第２の状態に設定されたときに検出されるサンプリングウィンドウである。
【００３９】
この場合、図４（ｂ）に示した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）に比べて、図４（ｃ）に示した受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）を用いる方が、メモリカード１７からの受信データをより正しくサンプリングすることができデータの品質を向上させることができる。
【００４０】
ここにおいて、キャリブレーション成否判定部３１がキャリブレーションの成否を判定するために必要となる受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）の幅が、図４（ｄ）に示す範囲であるとする。なお、図４（ｄ）は、キャリブレーションの成否を判定するために必要となるサンプリングウィンドウの幅のみを示し、設定位置は示していないものとする。
【００４１】
すると、図４（ｃ）に示したサンプリングウィンドウでは、この必要なサンプリングウィンドウの幅を全てカバーすることができない、つまり、サンプリングウィンドウに十分なマージンが確保できず、ホストデバイス１８は、メモリカード１７に対するデータ伝送レートを低いモードに切り替えてデータ伝送を行なう必要が生じることになる。
【００４２】
このような場合、ホストデバイス１８は、図４（ｂ）に示したサンプリングウィンドウ、つまり、図４（ｄ）に示したサンプリングウィンドウの幅に対して十分なマージンを有するサンプリングウィンドウを用いて、データ伝送レートが低いモードに切り替えられることを防止している。
【００４３】
また、図４（ｃ）に示したサンプリングウィンドウが、キャリブレーション成否判定部３１がキャリブレーションの成否を判定するために必要となる受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）の幅をカバーしていれば、つまり、図４（ｃ）に示したサンプリングウィンドウが、図４（ｄ）に示すサンプリングウィンドウの幅に対して十分なマージンを有していれば、ホストデバイス１８は、図４（ｃ）に示したサンプリングウィンドウを使用し、メモリカード１７からの受信データの品質を向上させるようにしている。
【００４４】
図５は、上記したキャリブレーション処理制御部２３を用いたキャリブレーション処理の一例をまとめたフローチャートを示している。すなわち、処理が開始（ステップＳ１１）されると、ステップＳ１２で、ホストドライバ１８よりも上位層において、キャリブレーション処理の成否判定モードＡ，Ｂが決定される。成否判定モードＡは、キャリブレーションコマンドに対して返信されるキャリブレーションデータをサンプリングした結果の正当性確認結果から、キャリブレーション処理の成否を判定するモードである。また、成否判定モードＢは、キャリブレーションコマンドに対して返信されるコマンドレスポンスデータとキャリブレーションデータとをそれぞれサンプリングした結果の正当性確認結果から、キャリブレーション処理の成否を判定するモードである。
【００４５】
そして、ホストコントローラ１６は、ホストドライバ１８とともに、ステップＳ１３で、キャリブレーション処理を実行する。その後、ホストコントローラ１６は、ステップＳ１４で、キャリブレーション処理の成否を判定し、成功したと判定された場合、ステップＳ１２で決定された成否判定モードで処理を終了（ステップＳ１７）する。
【００４６】
一方、上記ステップＳ１４でキャリブレーション処理が失敗したと判定された場合、ホストドライバ１８は、ステップＳ１５で、キャリブレーション処理をリトライする際の成否判定モードを判別し、現在の成否判定モードがＡである場合、または、現在の成否判定モードがＢでデータ転送品質がデータ転送レートよりも優先する場合には、そのままの成否判定モードで処理を終了（ステップＳ１７）する。
【００４７】
また、上記ステップＳ１５で現在の成否判定モードがＢでデータ転送レートがデータ転送品質よりも優先する場合、ホストドライバ１８は、ステップＳ１６で、キャリブレーション処理の成否判定モードをＡに設定し、ステップＳ１３の処理に移行する。
【００４８】
上記した実施の形態によれば、キャリブレーションデータの正当性確認結果に基づいて受信データをサンプリングするために使用可能なクロックの位相範囲（サンプリングウィンドウ）を設定する第１の状態と、キャリブレーションデータの正当性確認結果に基づいて設定された、受信データをサンプリングするために使用可能なクロックの位相範囲（サンプリングウィンドウ）と、コマンド受信レスポンスデータの正当性確認結果に基づいて設定された、受信データをサンプリングするために使用可能なクロックの位相範囲（サンプリングウィンドウ）との重なり合う範囲を、受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）として設定する第２の状態とに切り替えるようにしている。
【００４９】
そして、ホストコントローラ１６とメモリカード１７との間の処理ラインの状況によるサンプリングウィンドウの幅の変化や、データの伝送品質と伝送レートとのどちらを優先させるかという伝送条件等に応じて、第１の状態と第２の状態とを切り替えるようにしたので、処理ラインの状況や伝送条件等に適合させて受信データのサンプリングに使用可能なクロックの位相範囲を設定することができるようになり、実用に適したキャリブレーション処理を実現することができるようになる。
【００５０】
また、先に述べたように、キャリブレーションコマンド受信データ正当性確認部２７による確認結果から生成された受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）に比べて、キャリブレーションコマンド受信データ正当性確認部２７及びキャリブレーションコマンド受信レスポンス正当性確認部２６による確認結果から生成した各受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）の重なり合う範囲を用いる方が、メモリカード１７からの受信データをより正しくサンプリングすることができデータの品質を向上させることができる。
【００５１】
しかしながら、例えば図６に示すように、コマンド処理ラインでコマンド処理フェーズが短時間発生し、それに続く形で、データ処理ラインでデータ処理フェーズがコマンド処理フェーズに比べて長い時間実行される前提の場合、長いデータの伝送コマンド毎にキャリブレーションが実行されるという条件であれば、最初の短時間のコマンド処理が正常に行なえればよいので、キャリブレーションコマンド受信データ正当性確認部２７による確認結果から生成された受信データサンプリング用クロックの位相範囲（サンプリングウィンドウ）のみでも、十分に実用的なデータの品質を確保することができる。
【００５２】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【符号の説明】
【００５３】
１１…ＰＣ、１２…ＰＣ本体部、１３…表示部、１４…キーボード、１５…マウス、１６…ホストコントローラ、１７…メモリカード、１８…ホストドライバ、１９…制御部、２０…Ｉ／Ｏコントローラ、２１…同期回路、２２…クロックジェネレータ、２３…キャリブレーション処理制御部、２４…サンプリングクロック位相設定値制御部、２５…キャリブレーションコマンド発行処理部、２６…キャリブレーションコマンド受信レスポンス正当性確認部、２７…キャリブレーションコマンド受信データ正当性確認部、２８…各キャリブレーションコマンド処理正当性結果保持部、２９…データサンプリングウィンドウサーチ部、３０…キャリブレーションコマンド処理正当性確認部、３１…キャリブレーション成否判定部、３２…ステータスレジスタ、３３…システムバスインターフェース、３４…キャリブレーション処理管理部。
【図１】
2011233043.tif 000003
【図２】
2011233043.tif 000004
【図３】
2011233043.tif 000005
【図４】
2011233043.tif 000006
【図５】
2011233043.tif 000007
【図６】
2011233043.tif 000008