説明

ホストコントローラ、情報処理装置、およびサンプリング方法

【課題】メモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるようにすること。
【解決手段】実施形態によれば、リードデータの中のデータ本体および該データ本体に付随する付加情報を対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段(25〜27)と、前記複数のデータ入力手段により取得される複数の値に基づき、クロックに対するデータのずれを検出し、検出したデータのずれに基づき、前記クロックの位相を調整する制御手段(21)とを具備するホストコントローラが提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリカードのホストコントローラ、該ホストコントローラを備えた情報処理装置、および該ホストコントローラによるサンプリング方法に関する。
【背景技術】
【0002】
最近のSD(Secure Digital)カードは従来よりもデータ転送速度がさらに高速化されてきているため、従前は固定であったデータ受信時の遅延量が定められなくなり、ホストコントローラ側においてサンプリング位置の位相設定が必要になっている。
【0003】
位相設定には、データ転送前に受信データと期待値とを比較することにより位相調整を行なうチューニング(もしくはキャリブレーション)という方法が採られることが一般的である。
【0004】
なお、特許文献1に開示の技術のように、ビット位相同期回路で、位相の異なる複数(3つ)のクロックを生成してデータをラッチし、この3つのデータにより位相比較を行った上でクロックを決定することにより、短時間でビット同期をとれるようにした方法もある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平02−250535号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述のチューニング(もしくはキャリブレーション)を行ったとしても、温度ドリフトなどの影響によりデータ転送中に位相がずれてしまった場合には、メモリカードからのデータ(リードデータなど)を正しく得ることができなくなるため、短い間隔で再チューニングを行って転送を繰り返さなければならず、そのためにデータの転送効率が低下するという問題がある。
【0007】
また、特許文献1に開示の技術は、前述の比較結果から選択可能なクロックの中の1つを決定するものにすぎず、データ受信時の遅延量が定められないような転送速度が高速なデータ通信に適用することはできない。
【0008】
そこで、本発明はメモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるホストコントローラ、情報処理装置、およびサンプリング方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
実施形態によれば、リードデータの中のデータ本体および該データ本体に付随する付加情報を対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、前記複数のデータ入力手段により取得される複数の値に基づき、クロックに対するデータのずれを検出し、検出したデータのずれに基づき、前記クロックの位相を調整する制御手段とを具備するホストコントローラが提供される。
【図面の簡単な説明】
【0010】
【図1】一実施形態に係るノートブック型パーソナルコンピュータの外観を示す図。
【図2】ホストコントローラの概略構成を示すブロック図。
【図3】リードデータの中のデータ本体(Content)のみならず、該データ本体に付随する付加情報(例えば、CRC(Cyclic Redundancy Check)およびエンドビット(End bit)の各情報)をもサンプリングの対象とすることを説明するための図。
【図4】3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従ってサンプリングを行うことを説明するための図。
【図5】3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従ってサンプリングする際のタイミング(データ取得タイミング)の一例を示す図。
【図6】図5に示すタイミングでサンプリングしたときのサンプリングデータ値を示す図。
【図7】値が全て”1”の場合に位相ずれを検出することができない従来技術を説明するための図。
【図8】データ本体(Content)の値が変化しない場合でも当該値とは異なる値がCRCもしくはエンドビットから得られること説明するための図。
【発明を実施するための形態】
【0011】
以下、図面を参照して実施の形態について説明する。
【0012】
図1は、一実施形態に係るノートブック型パーソナルコンピュータ(以下、PC1と称す)の外観を示す図である。
【0013】
PC1は、本体11と、表示ユニット12とを備えている。本体11は、キーボード13と、ポインティングデバイスであるタッチパッド14とを備えている。本体11内部には、メイン回路基板、同図符号2で示す破線部分のSD(Secure Digital)カードホストコントローラ(詳細は後述;以下、ホストコントローラと称す)、ODDユニット(Optical Disk Device)、SDカードスロット等が収容されている。
【0014】
SDカードスロットは、本体11の周壁に設けられている。この周壁には、SDカードスロット用の開口部15が設けられている。ユーザは、この開口部15を通じて本体11の外部からSDカード3をカードスロットに挿抜することが可能である。
【0015】
PC1には、ホストコントローラ2を制御するためのデバイスドライバであるホストドライバがインストールされており、このホストドライバとホストコントローラ2により、SDカードスロットに装着されたSDカード3に対するリード/ライト処理やチューニング(もしくはキャリブレーション処理)等を行うことが可能となっている。
【0016】
なお、本実施形態では、ホストコントローラ2をPC1に内蔵する構成としているが、ホストコントローラ2を、USBインターフェースやその他のインターフェースを介して外付けされるSDカードリーダ/ライタ等に内蔵させた構成とすることもできる。また、本実施形態では、ホストコントローラ2の制御対象としてSDカードを例に挙げ説明するが、これに限らず、データ受信時の遅延量が固定されておらず、サンプリング位置の位相設定が必要になるその他のメモリカードであってもよい。
【0017】
また、情報処理装置としては、上記のようなパーソナルコンピュータに限らず、携帯電話、PDA(Personal Digital Assistant)、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビジョン受像機等もあり、これらについても本発明を適用することができる。
【0018】
図2は、ホストコントローラ2の概略構成を示すブロック図である。
【0019】
ホストコントローラ2は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などによるハードウェアとして構成することができる。
【0020】
このホストコントローラ2は、PC1のCPU(Central Processing Unit)31が実行するホストドライバにより制御される。ホストドライバによる各種要求は、制御部21内のシステムバスインターフェース(図示せず)を通じて、制御部21に渡される。
【0021】
サンプリングクロック生成部22は、制御部21により位相設定レジスタ23に設定された位相設定に従って、受信データサンプリング用のクロック位相をシフトさせた3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)を生成し、I/Oコントローラ24に供給する。なお、各サンプリングクロックは、その位相が、前回の位相補正により受信データを正しく受信できたサンプリングクロック位相の範囲内となるよう生成するものとする。
【0022】
I/Oコントローラ24は、SDカードスロットに装着されたSDカード3に対するコマンドを、SDバスプロトコルに従ったコマンドとしてSDカード3に送信し、SDカード3からのデータ(例えばマルチプルリードデータ)を受信する。また、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27を備え、これらはそれぞれ、サンプリングクロック生成部22からの3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従って、SDカード3からの受信データをサンプリングし、制御部21へ渡す。
【0023】
特に本実施形態に係るI/Oコントローラ24は、図3に示されるように、リードデータの中のデータ本体(Content)のみならず、該データ本体に付随する付加情報(例えば、CRC(Cyclic Redundancy Check)およびエンドビット(End bit)の各情報)をもサンプリングの対象とし、図4に示されるように、3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従ってサンプリングを行うことによって3つの値を取得する動作を繰り返す。付加情報をもサンプリングの対象とする理由については、後で詳しく説明する。
【0024】
なお、PC1のCPU31からSDカード3へのアクセス時には、データ入力部(C)26でサンプリングされた受信データが、制御部21内のシステムバスインターフェースを介してPC1のCPU31へ送られる。PC1のCPU31は、ホストドライバを実行することによりホストコントローラ2を制御する制御手段としても機能するものであり、本明細書では、このCPU31とホストドライバの組をホストコントローラ2に対してホスト側と称す。
【0025】
制御部21は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27により取得される3つの値に基づき、クロックに対するデータのずれを検出し、検出したデータのずれに基づき、クロックの位相を調整する機能を有する。すなわち、制御部21は、ホスト側からの指示を仰ぐことなく、自律的にクロックの位相調整を行う機能を有する。なお、制御部21が自律的にクロックの位相調整を行うモードと、ホスト側からの指示に従ってクロックの位相調整を行うモードとを適宜切り替えられるように構成してもよい。この制御部21は、データ比較部28、エラー判定部29、位相ずれ集計部29、および位相調整部30を備えている。
【0026】
データ比較部28は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27でデータをサンプリングして得られる3つの値をサンプリング単位で比較し、その比較結果(3つの値の一致/不一致など)を位相ずれ集計部29に送る。
【0027】
位相ずれ集計部29は、データ比較部28から得られる比較結果に基づき、クロックに対するデータの位相ずれに関する情報(位相ずれの有無、位相ずれの方向、位相ずれの量など)を集計する。なお、集計結果は、位相調整部30に伝えられるほか、ホスト側にも伝えられる。
【0028】
位相調整部30は、位相ずれ集計部29により集計された集計結果に基づき、位相ずれがある場合には位相ずれを解消する位相シフト量を判定して位相設定レジスタ23に設定する(設定値を更新する)。
【0029】
ここで、3種の位相の異なるサンプリングクロックを用いたデータサンプリングおよび位相ずれの集計について、図5、図6を用いて説明する。図5は、3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従って、SDカード3からの入力データをサンプリングする際のタイミング(データ取得タイミング)の一例を示す図である。また、図6は、図5に示すタイミングでサンプリングしたときのサンプリングデータ値を示す図である。
【0030】
図5に示すサンプリングクロックCLK Lは、基本クロックCLK Cに対してその位相を予め定められる1単位分だけ遅らせたクロックであり、CLK Rは、CLK Cに対してその位相を1単位分進めたクロックである(なお、以下では、基本クロックCLK Cの位相を中央とし、これに対し遅らせた位相を左、進めた位相を右と表現する)。3種のサンプリングクロックCLK L,CLK C,CLK Rで順にデータをサンプリングした結果をSamp1_L/Samp1_C/Samp1_R、Samp2_L/Samp2_C/Samp2_R、…、SampN_L/SampN_C/SampN_Rとする。なお、図面では、各サンプリングタイミング毎に、3種のサンプリングクロックによるサンプリング結果をSamp1_*、Samp2_*、…、SampN_*として表記している。
【0031】
図5に示すサンプリングタイミングでは、Samp1_L=1,Samp1_C=1,Samp1_R=1、…、SampN−1_L=0,SampN−1_C=0,SampN−1_R=1、SampN_L=1,SampN_C=1,SampN_R=0のようにサンプリングデータ値が得られ、図6に示される値となる。この例では、SampN−1、SampNの2箇所については、3種のクロックに対するサンプリングデータ値が異なるため、位相ずれが生じていることがわかり、位相補正の対象としてカウントされる。
【0032】
次に、リードデータの中のデータ本体(Content)のみならず、該データ本体に付随する付加情報(例えば、CRCおよびエンドビットの各情報)をもサンプリングの対象とする理由について説明する。
【0033】
従来の技術では、データ本体(Content)の値が時間的に変化しない場合(すなわち、データ本体(Content)の全データの値が“1”で連続している場合、又は、あるいは全データの値が“0”で連続している場合)、位相ずれを検出することができない。例えば、図7に示されるように、値が全て”1”の場合には、Samp_N−1や、Samp_Nで位相ずれが起こっていても、3つのサンプリングデータ値のどれもが常に“1”となるため、位相ずれを検出することができない。この問題を解決するためには、3種のサンプリングクロックごとに値が変化しない期間をカウントし、その期間が予め定められた設定値以上となったときに、再チューニングを行うように制御することも考えられる。しかしながら、この方法では、値が変化がない場合は、位相ずれが生じていなくても、不要な再チューニングを何度も行うこととなり、転送効率が低下する。
【0034】
そこで、本実施形態では、データ本体(Content)の値が変化しない場合でも、値が変化するデータの場合と同様に位相ずれの有無などを検出でき、位相ずれが生じているときに位相を補正できるようにする。すなわち、前述の図3および図4に示したように、リードデータの中のデータ本体(Content)のみならず、該データ本体に付随する付加情報(例えば、CRCおよびエンドビットの各情報)をもサンプリングの対象とする。このようにすることで、データ本体(Content)の値が変化しない場合でも、当該値とは異なる値がCRCもしくはエンドビットから得られることから、値の変化を必ず検出することができる。
【0035】
例えば、図8に示されるように、512 bytesのリードデータの場合を考える。
【0036】
データ本体(Content)の全データの値が“1”の場合、CRCの値は“0x7FA1”であり、エンドビットの値は“1”である。このとき、データ本体(Content)の値“1”とは異なる値“0”がCRCの中に存在する。
【0037】
また、データ本体(Content)の全データの値が“0”の場合、CRCの値は“0x0000”であり、エンドビットの値は“1”である。このとき、データ本体(Content)の値“0”とは異なる値“1”がエンドビットに存在する。
【0038】
このように、本実施形態によれば、データ本体(Content)の値が変化しない場合でも、当該値とは異なる値がCRCもしくはエンドビットから得られることから、位相ずれが生じているときにその位相ずれを必ず検出することができ、位相補正が必要なタイミングを確実に得ることができる。さらに、無駄な再チューニングの実施が無くなるので、データ転送効率を向上させることができる。
【0039】
なお、上記実施形態では、3種の位相の異なるサンプリングクロックで、入力データをサンプリングし、サンプリングしたデータを比較することにより比較結果を得ているが、3種に限るものではなく、さらに多数種類のサンプリングクロックを用いて実施することも可能である。
【0040】
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0041】
1…PC、2…ホストコントローラ、3…SDカード、11…PC本体、12…表示ユニット、13…キーボード、14…タッチパッド、15…開口部、21…制御部、22…サンプリングクロック生成部、23…位相設定レジスタ、24…I/Oコントローラ、25…データ入力部(L)、26…データ入力部(C)、27…データ入力部(R)、28…データ比較部、29…位相ずれ集計部、30…位相調整部、31…CPU。

【特許請求の範囲】
【請求項1】
リードデータの中のデータ本体および該データ本体に付随する付加情報を対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、
前記複数のデータ入力手段により取得される複数の値に基づき、クロックに対するデータのずれを検出し、検出したデータのずれに基づき、前記クロックの位相を調整する制御手段と
を具備するホストコントローラ。
【請求項2】
前記複数のデータ入力手段は、前記データ本体および該データ本体に付随するCRC(Cyclic Redundancy Check)およびエンドビットの各情報を対象にサンプリングを行う請求項1に記載のホストコントローラ。
【請求項3】
請求項1又は2に記載のホストコントローラと、当該ホストコントローラを制御するプロセッサとを具備する情報処理装置。
【請求項4】
リードデータの中のデータ本体および該データ本体に付随する付加情報を対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返し、
前記取得した複数の値に基づき、クロックに対するデータのずれを検出し、検出したデータのずれに基づき、前記クロックの位相を調整する、サンプリング方法。
【請求項5】
前記データ本体および該データ本体に付随するCRC(Cyclic Redundancy Check)およびエンドビットの各情報を対象にサンプリングを行う請求項4に記載のサンプリング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−14456(P2012−14456A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−150454(P2010−150454)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】