(57)【要約】【課題】  メモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるようにすること。【解決手段】  実施形態によれば、ライトデータに対して返されるＣＲＣステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段（２５〜２７）と、前記複数のデータ入力手段により取得された複数の値の中から、前記ＣＲＣステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段（２１）とを具備するホストコントローラが提供される。【選択図】図２
2012015805.tif 000002
【特許請求の範囲】
【請求項１】
ライトデータに対して返されるＣＲＣステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、
前記複数のデータ入力手段により取得された複数の値の中から、前記ＣＲＣステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段と
を具備するホストコントローラ。
【請求項２】
前記制御手段は、前記複数のデータ入力手段により取得された複数の値の中に、前記ＣＲＣステータスの値として正しく取得された値が存在し、且つ、前記ＣＲＣステータスの値として誤って取得された値が存在しない場合に、データ転送が成功したものと判定する請求項１に記載のホストコントローラ。
【請求項３】
請求項１又は２に記載のホストコントローラと、当該ホストコントローラを制御するプロセッサとを具備する情報処理装置。
【請求項４】
ライトデータに対して返されるＣＲＣステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返し、
前記取得した複数の値の中から、前記ＣＲＣステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する、サンプリング方法。
【請求項５】
前記取得した複数の値の中に、前記ＣＲＣステータスの値として正しく取得された値が存在し、且つ、前記ＣＲＣステータスの値として誤って取得された値が存在しない場合に、データ転送が成功したものと判定する、請求項４に記載のサンプリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリカードのホストコントローラ、該ホストコントローラを備えた情報処理装置、および該ホストコントローラによるサンプリング方法に関する。
【背景技術】
【０００２】
最近のＳＤ（Secure Digital）カードは従来よりもデータ転送速度がさらに高速化されてきているため、従前は固定であったデータ受信時の遅延量が定められなくなり、ホストコントローラ側においてサンプリング位置の位相設定が必要になっている。
【０００３】
位相設定には、データ転送前に受信データと期待値とを比較することにより位相調整を行なうチューニング（もしくはキャリブレーション）という方法が採られることが一般的である。
【０００４】
なお、特許文献１に開示の技術のように、ビット位相同期回路で、位相の異なる複数（３つ）のクロックを生成してデータをラッチし、この３つのデータにより位相比較を行った上でクロックを決定することにより、短時間でビット同期をとれるようにした方法もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０２−２５０５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のチューニング（もしくはキャリブレーション）を行ったとしても、温度ドリフトなどの影響によりデータ転送中に位相がずれてしまった場合には、メモリカードからのデータ（ライトデータに対して返されるＣＲＣ（Cyclic Redundancy Check）ステータスなど）を正しく得ることができなくなるため、データの再転送を繰り返さなければならず、そのためにデータの転送効率が低下するという問題がある。
【０００７】
また、特許文献１に開示の技術は、前述の比較結果から選択可能なクロックの中の１つを決定するものにすぎず、データ受信時の遅延量が定められないような転送速度が高速なデータ通信に適用することはできない。
【０００８】
そこで、本発明はメモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるホストコントローラ、情報処理装置、およびサンプリング方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、ライトデータに対して返されるＣＲＣステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、前記複数のデータ入力手段により取得された複数の値の中から、前記ＣＲＣステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段とを具備するホストコントローラが提供される。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係るノートブック型パーソナルコンピュータの外観を示す図。
【図２】ホストコントローラの概略構成を示すブロック図。
【図３】マルチプルライト処理の各ライトデータの転送の後にそれぞれ返されるＣＲＣステータスをサンプリングすることを説明するための図。
【図４】従来の単一のサンプリングクロックを用いた場合のサンプリングにおける問題点を説明するための図。
【図５】３種の位相の異なるサンプリングクロックを用いてＣＲＣステータスをサンプリングすることを説明するための図。
【図６】図５に示される３種の位相の異なるサンプリングクロックを用いてサンプリングされた場合の、ＣＲＣステータスの値、および、当該ＣＲＣステータスの値が正しく取得できたかどうかを示す分類結果、ならびに、転送が成功したか失敗したかを示す判定結果を示す図。
【図７】データ転送が成功したか失敗したかの判定が「ＯＫ」の数および「ＮＧ」の数によることを説明するための図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して実施の形態について説明する。
【００１２】
図１は、一実施形態に係るノートブック型パーソナルコンピュータ（以下、ＰＣ１と称す）の外観を示す図である。
【００１３】
ＰＣ１は、本体１１と、表示ユニット１２とを備えている。本体１１は、キーボード１３と、ポインティングデバイスであるタッチパッド１４とを備えている。本体１１内部には、メイン回路基板、同図符号２で示す破線部分のＳＤ（Secure Digital）カードホストコントローラ（詳細は後述；以下、ホストコントローラと称す）、ＯＤＤユニット（Optical Disk Device）、ＳＤカードスロット等が収容されている。
【００１４】
ＳＤカードスロットは、本体１１の周壁に設けられている。この周壁には、ＳＤカードスロット用の開口部１５が設けられている。ユーザは、この開口部１５を通じて本体１１の外部からＳＤカード３をカードスロットに挿抜することが可能である。
【００１５】
ＰＣ１には、ホストコントローラ２を制御するためのデバイスドライバであるホストドライバがインストールされており、このホストドライバとホストコントローラ２により、ＳＤカードスロットに装着されたＳＤカード３に対するリード／ライト処理やチューニング（もしくはキャリブレーション処理）等を行うことが可能となっている。
【００１６】
なお、本実施形態では、ホストコントローラ２をＰＣ１に内蔵する構成としているが、ホストコントローラ２を、ＵＳＢインターフェースやその他のインターフェースを介して外付けされるＳＤカードリーダ／ライタ等に内蔵させた構成とすることもできる。また、本実施形態では、ホストコントローラ２の制御対象としてＳＤカードを例に挙げ説明するが、これに限らず、データ受信時の遅延量が固定されておらず、サンプリング位置の位相設定が必要になるその他のメモリカードであってもよい。
【００１７】
また、情報処理装置としては、上記のようなパーソナルコンピュータに限らず、携帯電話、ＰＤＡ（Personal Digital Assistant）、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビジョン受像機等もあり、これらについても本発明を適用することができる。
【００１８】
図２は、ホストコントローラ２の概略構成を示すブロック図である。
【００１９】
ホストコントローラ２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などによるハードウェアとして構成することができる。
【００２０】
このホストコントローラ２は、ＰＣ１のＣＰＵ（Central Processing Unit）３１が実行するホストドライバにより制御される。ホストドライバによる各種要求は、制御部２１内のシステムバスインターフェース（図示せず）を通じて、制御部２１に渡される。
【００２１】
サンプリングクロック生成部２２は、制御部２１により位相設定レジスタ２３に設定された位相設定に従って、受信データサンプリング用のクロック位相をシフトさせた３種の位相の異なるサンプリングクロック（ＣＬＫ  Ｌ，ＣＬＫ  Ｃ，ＣＬＫ  Ｒ）を生成し、Ｉ／Ｏコントローラ２４に供給する。なお、各サンプリングクロックは、その位相が、前回のチューニング（もしくはキャリブレーション）により受信データを正しく受信できたサンプリングクロック位相の範囲内となるよう生成するものとする。
【００２２】
Ｉ／Ｏコントローラ２４は、ＳＤカードスロットに装着されたＳＤカード３に対するコマンドを、ＳＤバスプロトコルに従ったコマンドとしてＳＤカード３に送信したり、あるいはマルチプルライト処理で複数ブロックのデータをＳＤカード３に送信したり、ＳＤカード３からのデータ（例えばマルチプルライトデータに対するＣＲＣステータス）を受信したりする。また、データ入力部（Ｌ）２５、データ入力部（Ｃ）２６、データ入力部（Ｒ）２７を備え、これらはそれぞれ、サンプリングクロック生成部２２からの３種の位相の異なるサンプリングクロック（ＣＬＫ  Ｌ，ＣＬＫ  Ｃ，ＣＬＫ  Ｒ）に従って、ＳＤカード３からの受信データをサンプリングし、制御部２１へ渡す。
【００２３】
例えば、図３に示されるように、データラインにおいてマルチプルライト処理による複数ブロックのデータのライト転送が行われる場合、Ｉ／Ｏコントローラ２４は、各ライトデータの転送の後にそれぞれ返されるＣＲＣステータス４０をサンプリングする。ＣＲＣステータス４０に対し、上記３種の位相の異なるサンプリングクロックを用いてサンプリングすることの利点については、後で詳しく説明する。
【００２４】
なお、ＰＣ１のＣＰＵ３１からＳＤカード３へのアクセス時には、データ入力部（Ｃ）２６でサンプリングされた受信データが、制御部２１内のシステムバスインターフェースを介してＰＣ１のＣＰＵ３１へ送られる。ＰＣ１のＣＰＵ３１は、ホストドライバを実行することによりホストコントローラ２を制御する制御手段としても機能するものであり、本明細書では、このＣＰＵ３１とホストドライバの組をホストコントローラ２に対してホスト側と称す。
【００２５】
制御部２１は、データ入力部（Ｌ）２５、データ入力部（Ｃ）２６、データ入力部（Ｒ）２７によりそれぞれ取得される３つの値の中から、ＣＲＣステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する機能を有する。また、この制御部２１は、位相設定レジスタ２３にを通じてクロックの位相を調整する機能も有する。制御部２１は、データ取得部２８、ＣＲＣステータス結果判定部２９、および結果通知部３０を備えている。
【００２６】
データ取得部２８は、データ入力部（Ｌ）２５、データ入力部（Ｃ）２６、データ入力部（Ｒ）２７でデータをサンプリングして得られる３つの値を取得する。
【００２７】
ＣＲＣステータス結果判定部２９は、データ取得部２８により取得された３つの値のそれぞれに対し、「ＯＫ」（ＣＲＣステータスの値が正しく得られた状態）、「ＮＧ」（ＣＲＣステータスの値が誤って得られた状態）、あるいは「該当なし」（値が得られなかった状態）を判別する。また、ＣＲＣステータス結果判定部２９は、「ＯＫ」を示す結果が存在し、且つ、「ＮＧ」を示す結果が存在しない場合に、データ転送が成功したものと判定し、そうでない場合にはデータ転送が失敗したものと判定する。
【００２８】
結果通知部３０は、ＣＲＣステータス結果判定部２９による判定結果をホスト側のＣＰＵ３１等に通知する。
【００２９】
ここで、３種の位相の異なるサンプリングクロックではなく、従来の単一のサンプリングクロックを用いた場合のサンプリングにおける問題点について、図４を用いて説明する。
【００３０】
例えば、ＣＲＣステータス４０が、スタートビット“０”で始まり、ステータスそのものを表す３つビット“０”，“１”，“０”が続き、エンドビット“１”で終わるものとする。このとき、温度ドリフトは起きておらず、図４（ａ）に示されるように、サンプリングクロックに対して受信データの位相はずれていない。そのような場合、ＣＲＣステータス４０の値を正しく取得することができる。
【００３１】
しかしながら、データ転送量が増加し、転送時間が長くなるにつれ、温度ドリフトが起きる。そのような場合、図４（ｂ）に示されるように、温度ドリフトの影響により、サンプリングクロックに対して受信データの位相がずれてくるため、正しいＣＲＣステータス４０が転送されてきているのもかかわらず、ＣＲＣステータス４０の値を正しく取得することができない。これにより、ホストコントローラ２は、転送失敗を示す結果をホスト側に通知すると、ホスト側からライトデータの再転送を指示され、ライトデータのＳＤカード３への再転送を繰り返し行うことになるため、転送効率が低下してしまう。
【００３２】
そこで、本実施形態では、温度ドリフトが起きた場合でも、図５に示されるように、３種の位相の異なるサンプリングクロック（ＣＬＫ  Ｌ，ＣＬＫ  Ｃ，ＣＬＫ  Ｒ）を用いてＣＲＣステータス４０をサンプリングすることにより、ＣＲＣステータス４０の値の取りこぼしを防ぎ、ＣＲＣステータス４０の値を正しく取得できるようにする。なお、サンプリングクロックＣＬＫ  Ｌは、基本クロックＣＬＫ  Ｃに対してその位相を予め定められる１単位分だけ遅らせたクロックであり、ＣＬＫ  Ｒは、ＣＬＫ  Ｃに対してその位相を１単位分進めたクロックである。
【００３３】
図６には、温度ドリフトの影響によりサンプリングクロックに対して受信データの位相がずれている状態で、図５に示される３種の位相の異なるサンプリングクロックを用いてサンプリングされた場合の、ＣＲＣステータスの値、および、当該ＣＲＣステータスの値が正しく取得できたかどうかを示す分類結果、ならびに、転送が成功したか失敗したかを示す判定結果が示されている。
【００３４】
図６の例では、サンプリングクロックＣＬＫ  ＬでサンプリングされたＣＲＣステータスのbit2, bit1, bit0の値は“０”，“−”，“−”であり、値が得られなかった状態を示す“−”のビットがあるため、分類結果は「該当なし」とされている。
【００３５】
また、サンプリングクロックＣＬＫ  ＣでサンプリングされたＣＲＣステータスのbit2, bit1, bit0の値は“０”，“１”，“−”であり、値が得られなかった状態を示す“−”のビットがあるため、分類結果は「該当なし」とされている。
【００３６】
一方、サンプリングクロックＣＬＫ  ＲでサンプリングされたＣＲＣステータスのbit2, bit1, bit0の値は“０”，“１”，“０”であり、値が正しく取得されているため、分類結果は「ＯＫ」とされている。なお、ここには例示されていないが、値が誤って取得されている場合、例えばＣＲＣステータスのbit2, bit1, bit0の値が“１”，“０”，“１”である場合、分類結果は「ＮＧ」とされる。
【００３７】
データ転送が成功したか失敗したかの判定は、図７に示されるように、「ＯＫ」の数および「ＮＧ」の数による。すなわち、「ＯＫ」の数が“０”で、「ＮＧ」の数が“０以上”であれば、“転送失敗”と判定される。また、「ＯＫ」の数が“１以上”であっても、「ＮＧ」の数が“１以上”であれば、“転送失敗”と判定される。一方、「ＯＫ」の数が“１以上”で、「ＮＧ」の数が“０”であれば、“転送成功”と判定される。
【００３８】
従って、図６の例では、「ＯＫ」の数が“１以上”で、「ＮＧ」の数が“０”であるため、“転送成功”と判定される。
【００３９】
このように、本実施形態によれば、３種の位相の異なるサンプリングクロックを用いてＣＲＣステータスをサンプリングすることにより、温度ドリフトなどの影響によりサンプリングクロックに対して受信データの位相がずれてきた場合であっても、ＣＲＣステータスの値の取りこぼしを防ぎ、ＣＲＣステータスの値を正しく取得することができ、転送成功をホスト側に通知することができる。また、ＣＲＣステータスの値を正しく取得できることから、ライトデータのＳＤカード３への再転送の回数を低減することができ、転送効率を向上させることができる。
【００４０】
なお、上記実施形態では、３種の位相の異なるサンプリングクロックを用いてサンプリングを行っているが、３種に限るものではなく、さらに多数種類のサンプリングクロックを用いてサンプリングを行うことも可能である。
【００４１】
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００４２】
１…ＰＣ、２…ホストコントローラ、３…ＳＤカード、１１…ＰＣ本体、１２…表示ユニット、１３…キーボード、１４…タッチパッド、１５…開口部、２１…制御部、２２…サンプリングクロック生成部、２３…位相設定レジスタ、２４…Ｉ／Ｏコントローラ、２５…データ入力部（Ｌ）、２６…データ入力部（Ｃ）、２７…データ入力部（Ｒ）、２８…データ取得部、２９…ＣＲＣステータス結果判定部、３０…結果通知部、３１…ＣＰＵ。
【図１】
2012015805.tif 000003
【図２】
2012015805.tif 000004
【図３】
2012015805.tif 000005
【図４】
2012015805.tif 000006
【図５】
2012015805.tif 000007
【図６】
2012015805.tif 000008
【図７】
2012015805.tif 000009