説明

情報処理装置およびその制御方法

【課題】特にメモリカードとホスト側間の全体的なデータの転送速度を向上させることができる情報処理装置およびその制御方法を提供する。
【解決手段】位相が異なる複数のサンプリングクロックを生成するクロック生成手段と、複数のサンプリングクロックの各々で入力データをサンプリングする複数のデータ入力手段と、データ入力手段がサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較手段と、データ比較手段による比較結果を基に、位相ずれに関する情報を集める位相ずれ集計手段と、位相ずれ集計手段が集めた位相ずれに関する情報に基づいてサンプリングクロックの位相シフトの要/不要を判定し、位相ずれをなくすようにサンプリングクロックの位相を調整する位相シフト判定手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリカードのホストコントローラを有する情報処理装置およびその制御方法に関する。
【背景技術】
【0002】
従来のメモリカード(例えば、旧タイプのSD(Secure Digital)カードやマルチメディアカード)では、カードから出力されるデータの遅延時間が定められているので、これらのカードに対応したホストコントローラでは、受信データをサンプリングする位置は固定であった。最近では、メモリカードの動作速度が高速化され、遅延時間が定められなくなっている。また、こうした高速のメモリカードでは、データ転送中に遅延時間が変化するため、サンプリング位置にずれが発生する。そのため、サンプリング位置の位相設定が必要になっている。位相設定にはデータ転送前に受信データと期待値とを比較することによりサンプリング位置を決定するキャリブレーションという方法が一般的である。
【0003】
一方、特許文献1に開示の技術のように、ビット位相同期回路で、位相の異なる複数(3つ)のクロックを生成してデータをラッチし、この3つのデータにより位相比較を行った上でクロックを決定することにより、短時間でビット同期をとれるようにした従来技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平02−250535号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、キャリブレーションによりサンプリング位置を決定してから、データ転送を行う方法によっても、転送中にサンプリング位置がずれてくるため、短い転送間隔で再キャリブレーションを繰り返さなければならず、転送効率が上がらないという問題があった。また、特許文献1に開示の技術は、上記比較結果から、選択可能なクロックの中の1つを決定するものにすぎず、データ受信時の遅延量が定められないような転送速度が高速なデータ通信に適用することはできない。
【0006】
本発明は、上記に鑑みてなされたものであって、特にメモリカードとホスト側間の全体的なデータの転送速度を向上させることができる情報処理装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明は、情報処理装置であって、位相が異なる複数のサンプリングクロックを生成するクロック生成手段と、前記複数のサンプリングクロックの各々で入力データをサンプリングする複数のデータ入力手段と、前記データ入力手段がサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較手段と、前記データ比較手段による比較結果を基に、位相ずれに関する情報を集める位相ずれ集計手段と、前記位相ずれ集計手段が集めた位相ずれに関する情報に基づいて前記サンプリングクロックの位相シフトの要/不要を判定し、位相ずれをなくすように前記サンプリングクロックの位相を調整する位相シフト判定手段とを備えることを特徴とする。
【0008】
また、本発明は、メモリカードのホストコントローラを備える情報処理装置における制御方法であって、前記ホストコントローラにおいて、クロック生成手段が、位相が異なる複数のサンプリングクロックを生成するクロック生成ステップと、複数のデータ入力手段が、前記複数のサンプリングクロックの各々で入力データをサンプリングするデータ入力ステップと、データ比較手段が、前記データ入力ステップにおいてサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較ステップと、位相ずれ集計手段が、前記データ比較ステップにおける比較結果を基に、位相ずれに関する情報を集める位相ずれ集計ステップと、位相シフト判定手段が、前記位相ずれ集計ステップにおいて集めた位相ずれに関する情報に基づいて前記サンプリングクロックの位相シフトの要/不要を判定し、位相ずれをなくすように前記サンプリングクロックの位相を調整する位相シフト判定ステップと、を実行することを特徴とする。
【発明の効果】
【0009】
本発明によれば、データ転送中にサンプリング位置のずれを検出し、ずれた場合は、サンプリング位置を自動で調整するので、短い転送間隔で再キャリブレーションを行う必要がなく、全体的なデータの転送速度を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】図1は、本発明にかかる情報処理装置の一実施形態としてのノートブック型パーソナルコンピュータの外観を示す図である。
【図2】図2は、ホストコントローラ2の概略構成を示すブロック図である。
【図3】図3は、3種の位相の異なるサンプリングクロックを用いて、SDカードからの入力データをサンプリングする際のタイミング(データ取得タイミング)の一例を示す図である。
【図4】図4は、図3に示すタイミングでサンプリングしたときのサンプリングデータ値を示す図である。
【図5】図5は、ホストコントローラの動作を説明するためのフローチャートである。
【発明を実施するための形態】
【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を用いて説明する。図2は、ホストコントローラ2の概略構成を示すブロック図である。なお、ホストコントローラ2は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などによるハードウェアとして構成することができる。
【0019】
ホストコントローラ2は、PC1のCPU(図示せず)が実行するホストドライバにより制御される。ホストドライバによる各種要求は、制御部21内のシステムバスインターフェース(図示せず)を通じて、制御部21に渡される。例えば、キャリブレーションの際は、ホストドライバからキャリブレーションコマンド発行要求が制御部21に渡され、このキャリブレーションコマンド発行要求に対して、制御部21が規定のキャリブレーション処理を行うための制御をする。
【0020】
サンプリングクロック生成部22は、制御部21により位相設定レジスタ部23に設定された位相設定に従って、受信データサンプリング用のクロック位相をシフトさせた3種の位相の異なるサンプリングクロック(CLK L,CLK C, CLK R)を生成し、I/Oコントローラ24に供給する。なお、各サンプリングクロックは、その位相が、前回のキャリブレーションにより受信データを正しく受信できたサンプリングクロック位相の範囲内となるよう生成するものとする。また、SDカードの場合、そのデータラインは4ラインあるので、それぞれのラインで、同様に位相の異なる3つのクロックでデータをサンプリングする。以下では、説明の簡単のため、1ライン分を代表として説明するが、実際は4つのデータラインの各々について各処理が行われる。
【0021】
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へ渡す。PC1のCPUからSDカード3へのアクセス時には、データ入力部(C)26でサンプリングされた受信データが、制御部21内のシステムバスインターフェースを介してPC1のCPUへ送られる。なお、PC1のCPUは、ホストドライバを実行することによりホストコントローラ2を制御する制御手段としても機能するものであり、本明細書では、このCPUとホストドライバの組をホストコントローラ2に対してホスト側と称す。
【0022】
制御部21は、本実施形態における特徴的機能を実現する構成要素として図2に示す、データ比較部28、位相ずれ回数上限設定部29、位相ずれ集計部30、位相シフト判定部31を備える。
【0023】
データ比較部28は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27でサンプリングしたデータをサンプリング単位で比較し、比較結果(データ間の値の一致/不一致)を位相ずれ集計部30に送る。位相ずれ回数上限設定部29は、位相ずれ回数の上限値(例えば、3〜4以下)を設定するレジスタであり、下記の位相シフトの判定に使用される。なお、この上限値の設定は、ホスト側から行うことができる。位相ずれ集計部30は、データ比較部28による3つのデータ入力の比較結果に基づいて位相ずれの有無を判断し、データのブロック単位(例えば、512バイト)で、データブロックの終了時まで、位相ずれを集計する。具体的には、1ブロック内のデータサンプリング処理において、CLK Cでサンプリングされたデータと、その左側のデータ(すなわちCLC Lでサンプリングされたデータ)またはその右側のデータ(すなわち、CLC Rでサンプリングされたデータ)間で不一致を検出した回数を位相ずれの回数として集計する。なお、制御部21の動作の詳細は後述する。
【0024】
ここで、3種の位相の異なるサンプリングクロックを用いたデータサンプリングおよび位相ずれの集計について、図3、図4を用いて説明する。図3は、3種の位相の異なるサンプリングクロック(CLK L,CLK C, CLK R)を用いて、SDカード3からの入力データをサンプリングする際のタイミング(データ取得タイミング)の一例を示す図である。また、図4は、図3に示すタイミングでサンプリングしたときのサンプリングデータ値を示す図である。
【0025】
図3に示すサンプリングクロック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_*として表記している。
【0026】
図3に示すサンプリングタイミングでは、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のようにサンプリングデータ値が得られ、図4に示される値となる。この例では、データ比較部28にて、SampN−1、SampNの2箇所については、3種のクロックに対するサンプリングデータ値が異なることがわかる。よって、位相ずれ集計部30による位相ずれの集計にて、このデータの位相ずれ回数は2回と集計される。このとき、位相ずれ回数上限設定部29に設定されている位相ずれ回数の上限値が2であった場合には、位相ずれ回数が上限値の2以上になるため、位相シフト判定部31により位相シフトが必要と判定され、位相設定レジスタ部23の位相設定が変更される(詳細は後述)。
【0027】
次に、本実施形態のホストコントローラ2の動作を、図5を用いて説明する。図5は、ホストコントローラ2の動作を説明するためのフローチャートである。なお、以下に説明する処理の流れは一例であって、これに限定されるものではない。
【0028】
はじめに、制御部21は、位相設定レジスタ部23に対し、サンプリングクロック生成部22が生成する3種のサンプリングクロックの位相を定める設定をする(ステップS501)。このとき、キャリブレーション後に、サンプリングクロック生成部22が生成する3つのサンプリングクロックが、図3に例示したCLK_L、CLK_C、CLK_Rの関係となるように設定がなされる。なお、CLK_Cが有効データの中央となるように位相が設定される。
【0029】
続いて、受信データのサンプリングとデータ入力が行われる(ステップS502)。SDカード3からの受信データは、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27で、位相の異なる各サンプリングクロックCLK L,CLK C,CLK Rでサンプリングされる。そして、サンプリングされたデータは、データ比較部28に送られる。
【0030】
次に、データ比較部28にて、各サンプリングポイントで3つのデータが比較される(ステップS503)。受信データとサンプリングクロックとの間に位相のずれがない場合は、図4のSamp1_*〜Samp3_*のように3つのサンプリング値は一致している。しかし、データの遅延量が変化することにより、データとサンプリングクロックとの位相がずれてくると、図4のSampN−1_*、SampN_*のように、3つのサンプリング値が一致しなくなる。データ比較部28によるデータの比較結果は、位相ずれ集計部30に送られる。
【0031】
次に、位相ずれ集計部30にて、位相ずれの集計を行う(ステップS504)。具体的には、SDカード3から転送されてくるデータの1データブロック単位で、サンプリングデータの不一致の回数をカウントする。図4のように、CLK_CとCLK_Lでサンプリングされたデータの値は同じで、CLK_CとCLK_Rでサンプリングされたデータの値が異なる場合は、受信データの右側で位相がずれたと集計される。一方、CLK_CとCLK_Rでサンプリングされたデータの値が同じで、CLK_CとCLK_Lでサンプリングされたデータの値が異なる場合は、受信データの左側で位相がずれたと集計される。このように、位相ずれ集計部30は、上記右側での位相ずれと左側での位相ずれを分けて集計する。1データブロック分の位相ずれ集計が完了すると(ステップS505でYes)、位相ずれ集計部30による集計結果は、位相シフト判定部31に送られる。1データブロック分の位相ずれ集計が未完の場合は(ステップS505でNo)、ステップS502へ戻り、データ入力から位相ずれ集計までを繰り返す。
【0032】
次に、位相シフト判定部31にて、位相シフトを行う必要があるか不要かの判定を行う(ステップS506)。具体的には、1データブロックの処理ごとに、位相ずれ集計部30からの集計結果である位相ずれ回数と位相ずれ回数上限設定部29に設定されている位相ずれ回数の上限値とを比較する。そして、受信データの右側での位相ずれ回数が、位相ずれ回数上限設定部29に設定された上限値を超えている場合は、データの位相が左に移動したと判定し、すなわち位相シフト要と判定し(ステップS506で要)、サンプリングクロックを左にシフトさせるように、位相設定レジスタ部23に指示を送る(ステップS507)。同様に、受信データの左側での位相ずれ回数が、位相ずれ回数上限設定部29に設定された上限値を超えている場合は、データの位相が右に移動したと判定し、すなわち位相シフト要と判定し(ステップS506で要)、サンプリングクロックを右にシフトさせるように、位相設定レジスタ部23に指示を送る(ステップS507)。この指示は、具体的には、位相シフト判定部31から、位相シフトの設定値と位相シフトの方向の情報を含む位相シフトの指示信号が、位相設定レジスタ部23に送られ、位相設定レジスタ部23にて、位相シフトの設定値を指示されたシフト方向に再設定することにより、サンプリングクロック生成部22が生成するサンプリングクロックの位相をシフトさせる。なお、どちらの位相ずれ回数も上限値以下である場合には位相シフト不要(ステップS506で不要)と判定され、ステップS508へ移行する。
【0033】
位相シフト完了後、位相ずれ集計部30の位相ずれ集計値を0にクリアする(ステップS508)。それから、次のデータブロックの転送を行う。次ブロック転送においても、上述のように、位相ずれを集計し、サンプリングクロックの位相シフトの判定を行い、必要なサンプリングクロックの位相シフトを行う。
【0034】
以上説明したように、本実施形態では、ホストコントローラ2が上記のように構成され動作するので、データの遅延量の変化によりデータのサンプリング位置がずれた場合でも、データのブロック転送処理ごとにそのサンプリング位置を自動的に調整してデータ転送を行うことができる。その結果、メモリカードとホスト側間の全体的なデータの転送速度、転送効率を向上させることができる。
【0035】
なお、上記実施形態では、3種の位相の異なるサンプリングクロックで、入力データをサンプリングし、サンプリングしたデータを比較することにより比較結果を得ているが、3種に限るものではなく、さらに多数種類のサンプリングクロックを用いて実施することも可能である。
【符号の説明】
【0036】
1…PC、2…ホストコントローラ、3…SDカード、11…(PC1の)本体、12…表示ユニット、13…キーボード、14…タッチパッド、15…開口部、21…制御部、22…サンプリングクロック生成部、23…位相設定レジスタ部、24…I/Oコントローラ、25…データ入力部(L)、26…データ入力部(C)、27…データ入力部(R)、28…データ比較部、29…位相ずれ回数上限設定部、30…位相ずれ集計部、31…位相シフト判定部

【特許請求の範囲】
【請求項1】
位相が異なる複数のサンプリングクロックを生成するクロック生成手段と、
前記複数のサンプリングクロックの各々で入力データをサンプリングする複数のデータ入力手段と、
前記データ入力手段がサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較手段と、
前記データ比較手段による比較結果を基に、位相ずれに関する情報を集める位相ずれ集計手段と、
前記位相ずれ集計手段が集めた位相ずれに関する情報に基づいて前記サンプリングクロックの位相シフトの要/不要を判定し、位相ずれをなくすように前記サンプリングクロックの位相を調整する位相シフト判定手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記位相ずれに関する情報は、データブロックの単位で集計される、位相が遅れることによる位相ずれの回数および位相が進むことによる位相ずれの回数であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記位相ずれ集計手段は、前記複数のサンプリングクロックの位相の内中心となる位相を有するサンプリングクロックでサンプリングされたデータと、前記中心となる位相に対して前または後の位相を有するサンプリングクロックの一方でサンプリングされたデータのみが異なる場合に、位相ずれとして集計することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記入力データは、SD(Secure Digital)カードから入力されるデータであって、前記SDカードに対するキャリブレーション後に、前記各手段による処理を実行することを特徴とする請求項1から請求項3のいずれか1項に記載の情報処理装置。
【請求項5】
メモリカードのホストコントローラを備える情報処理装置における制御方法であって、
前記ホストコントローラにおいて、
クロック生成手段が、位相が異なる複数のサンプリングクロックを生成するクロック生成ステップと、
複数のデータ入力手段が、前記複数のサンプリングクロックの各々で入力データをサンプリングするデータ入力ステップと、
データ比較手段が、前記データ入力ステップにおいてサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較ステップと、
位相ずれ集計手段が、前記データ比較ステップにおける比較結果を基に、位相ずれに関する情報を集める位相ずれ集計ステップと、
位相シフト判定手段が、前記位相ずれ集計ステップにおいて集めた位相ずれに関する情報に基づいて前記サンプリングクロックの位相シフトの要/不要を判定し、位相ずれをなくすように前記サンプリングクロックの位相を調整する位相シフト判定ステップと、を実行する
ことを特徴とする情報処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−134009(P2011−134009A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2009−291384(P2009−291384)
【出願日】平成21年12月22日(2009.12.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】