説明

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

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

【発明の詳細な説明】
【技術分野】
【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は、3種の位相の異なるサンプリングクロックを用いて、SDカードからの入力データをサンプリングする際のエラー検知を説明するためのタイミング図である。
【図6】図6は、3種の位相の異なるサンプリングクロックを用いて、SDカードからの入力データをサンプリングする際の変化無しデータ検知を説明するためのタイミング図である。
【図7】図7は、制御部において特徴的な処理の流れを示すフローチャートである。
【発明を実施するための形態】
【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、変化無し期間集計部32、ステータス通知部33を備える。
【0023】
データ比較部28は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27でサンプリングしたデータをサンプリング単位で比較し、比較結果をエラー判定部29、位相ずれ集計部31および変化無し期間集計部32に送る。位相ずれ集計部31は、このデータ比較部28による3つのデータ入力の比較結果に基づいて位相ずれの有無を判断し、データのブロック単位で、データブロックの終了時まで、位相ずれを集計する。エラー判定部29は、データ比較部28による3つのデータ入力の比較結果からエラーを判定する。変化無し期間集計部32は、入力データが変化しない期間を集計する。ステータス通知部33は、位相ずれ集計部31および変化無し期間集計部32による集計結果に基づくステータスをホスト側へ通知する。エラー通知部30は、エラー判定部29によりエラーが検知された場合にホスト側へエラー通知をする。なお、制御部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種のクロックに対するサンプリングデータ値が異なることがわかる。よって、位相ずれ集計部31による位相ずれの集計にて、このデータの位相ずれ回数は2回と集計され、この値がステータスとしてステータス通知部33によりホスト側に通知される。ここで、ホスト側での位相ずれ設定値(位相ずれ回数の上限値)が2であった場合には、位相ずれ回数が位相ずれ設定値の2以上になるため、ホスト側の制御により再キャリブレーションが行なわれる。このように、ホストは、3つの入力データの比較結果に基づく位相ずれ回数が、ホスト側で定めている設定値を超えた場合には再度キャリブレーションが必要であると判断することができる。
【0027】
続いて、データサンプリング時のエラー検知について、図5を用いて説明する。図5は、3種の位相の異なるサンプリングクロック(CLK L,CLK C, CLK R)を用いて、SDカード3からの入力データをサンプリングする際のエラー検知を説明するためのタイミング図である。なお、同図に示す、sampD_L,sampD_C,sampD_Rは、同図の符号50で示す範囲で、サンプリングクロックCLK L,CLK C, CLK Rでサンプリングされたサンプリングデータ値を表わす。
【0028】
データ取得に失敗し、位相ずれであると判断ができない場合はエラーを検知し通知させることを可能とした。本来位相ずれが無い場合、位相を変えた3つのクロックではそれぞれ同じ値が取得できるはずである(図3のSamp1_*など)。しかし、図5に示すData A,Data B,Data Cのようなデータをサンプリングしデータ比較を行なった場合、データ比較で不一致となる。しかし、通常の位相ずれは、図5のDataAやDataBのように、中央のサンプリングデータ値(SampD_C)と、その左のサンプリングデータ値(SampD_L)またはその右のサンプリングデータ値(SampD_R)とが異なった場合でも、中央のサンプリングデータ値(SampD_C)と、その右のサンプリングデータ値(SampD_R)またはその左のサンプリングデータ値とは同じ値になるはずである。ところが、DataCでは、中央のサンプリングデータ値(SampD_C)とその右のサンプリングデータ値(SampD_R)とで値が異なり、さらに、中央のサンプリングデータ値(SampD_C)とその左のサンプリングデータ値(SampD_L)の間でも値が異なっている。このようなケースがあることから、図中の中央と左並びに中央と右のデータを比較することで、位相ずれの場合と、他の要因でデータ取得に不具合がある場合とを区別することができる。
【0029】
本実施形態のホストコントローラ2では、図5に示すようなサンプリングデータが得られた場合、エラー判定部29が次の判定をする。
【0030】
(1)DataAの場合のように、中央のサンプリングデータ値とその左サンプリングデータ値が等しく、かつ、中央のサンプリングデータ値とその右のサンプリングデータ値が異なる場合、位相ずれと判定する。
【0031】
(2)DataBの場合のように、中央のサンプリングデータ値とその左のサンプリングデータ値が異なり、かつ、中央のサンプリングデータ値とその右のサンプリングデータ値が等しい場合、位相ずれと判定する。
【0032】
(3)DataCの場合のように、中央のサンプリングデータ値とその左のサンプリングデータ値が異なり、かつ、中央のサンプリングデータ値とその右のサンプリングデータ値も異なる場合、この場合、データの有効幅が狭いか大きくシフトし中央のサンプリングポイントがデータの有効領域からはみ出したと考えられるため、エラーと判定する。
【0033】
以上のように3種のサンプリングクロックでサンプリングしたデータの比較を行い、位相ずれでないデータ不一致の場合には、エラーとして検出する。そして、エラー判定部29によりエラーを検知した場合には、エラー通知部30が、データ受信のエラーとしてホスト側に通知する。このエラー通知を受けたホスト側は、SDカード3からのデータを取り直すことになる。
【0034】
次に、データサンプリング時の変化無しデータ検知について、図6を用いて説明する。図6は、3種の位相の異なるサンプリングクロック(CLK L,CLK C, CLK R)を用いて、SDカード3からの入力データをサンプリングする際の変化無しデータ検知を説明するためのタイミング図である。
【0035】
変化があまり起こらないデータの場合には、実際に位相ずれが生じていたとしてもそれを検出できないことが起こり、位相ずれの検出性能が低下してしまう。そこで、本実施形態では、変化無し期間集計部32を設けた。この変化無し期間集計部32を備えることで、データ変化の状況を把握することが可能となる。さらにこの変化無し期間集計部32は、入力データのピーク値や変化率などの情報も併せて、位相ずれの検出性能が劣化していることを示す情報をステータスとしてステータス通知部33に送る。そして、ステータス通知部33が、ホスト側にその通知を行なうことにより、ホストは再チューニングが必要であると判断することができる。
【0036】
具体的には、図6のようにDataが全て“1”の場合には、Samp_N−1や、Samp_Nで位相ずれが起こっていてもデータに変化がないため、制御部21は、位相ずれ回数の集計や位相ずれ回数の通知を行なうことができない。そこで、3種のサンプリングクロックごとのデータ変化の有無(変化が無い場合)を、変化無し期間集計部32にてカウントする。図6に示す例では変化無し期間はN−1となりこの値を通知する。また、入力データのレベル(Hi/Lo)と併せてこの変化無し期間を集計し保持しておくことで、入力データのピーク値や変化率をホスト側に示すことも可能となる。ホスト側は、ステータス通知部33からの情報を基に、例えば、変化無し期間が予め定められる設定値以上となったときに、再キャリブレーションのための制御を開始する。
【0037】
次に、本実施形態の制御部21において特徴的な処理の流れを、図7を用いて説明する。図7は、その一連の処理を示すフローチャートである。なお、以下に説明する処理の流れは一例であって、これに限定されるものではない。
【0038】
はじめに、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27でサンプリングされた入力データが、順次データ比較部28に入力される(ステップS701)。
【0039】
続いて、データ比較部28では、入力された3つの入力データを比較し、3つのデータが一致している/中央と左のデータが一致していない/中央と右のデータが一致していない/中央と両側のデータが一致していないことを示す比較結果をエラー判定部29、位相ずれ集計部31および変化無し期間集計部32に送る(ステップS702)。
【0040】
続いて、データ比較部28から比較結果を受けたエラー判定部29は、この比較結果を基にエラー判定を行う(ステップS703)。具体的には、比較結果が、中央と両側のデータが一致していないことを示すものである場合、エラーであると判定し(本ステップでYesの判定)、ステップS707へ移行し、ステータス通知部33が、ホスト側へエラー通知を行う。
【0041】
一方、比較結果が上記と異なる場合、すなわち、比較結果が、3つのデータが一致している/中央と左のデータが一致していない/中央と右のデータが一致していないことを示すものである場合、位相ずれ集計部31が、データ比較部28から受けた比較結果を基に位相ずれ回数を集計する(ステップS704)。
【0042】
また、変化無し期間集計部32も同様に、データ比較部28から受けた比較結果を基に変化無し期間を集計する(ステップS705)。
【0043】
最後に、ステータス通知部33が、位相ずれ集計部31による集計結果および変化無し期間集計部32による集計結果をステータスとして、ステータス通知部33がホスト側へ通知する(ステップS706)。
【0044】
以上のように、本実施形態では、位相ずれの回数、データの変化無し状況、エラー検出をホスト側に通知するので、ホスト側は再キャリブレーションが必要と判断される場合にのみキャリブレーションを行なえばよいので、全体的なデータ転送効率を向上させることができる。
【0045】
なお、上記実施形態では、3種の位相の異なるサンプリングクロックで、入力データをサンプリングし、サンプリングしたデータを比較することにより比較結果を得ているが、3種に限るものではなく、さらに多数種類のサンプリングクロックを用いて実施することも可能である。
【符号の説明】
【0046】
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…位相ずれ集計部、32…変化無し期間集計部、33…ステータス通知部

【特許請求の範囲】
【請求項1】
位相が異なる複数のサンプリングクロックを生成するクロック生成手段と、
前記複数のサンプリングクロックの各々で入力データをサンプリングする複数のデータ入力手段と、
前記データ入力手段がサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較手段と、
前記データ比較手段による比較結果を基に、位相ずれに関する情報を集める位相ずれ集計手段と、
前記位相ずれ集計手段が集めた位相ずれに関する情報を通知する通知手段と
を有するホストコントローラと、
前記通知手段から通知された情報を基に前記ホストコントローラを制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記位相ずれに関する情報は、データブロックの単位で集計される位相ずれの回数であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記位相ずれ集計手段は、前記複数のサンプリングクロックの位相の内中心となる位相を有するサンプリングクロックでサンプリングされたデータと、前記中心となる位相に対して前または後の位相を有するサンプリングクロックの一方でサンプリングされたデータのみが異なる場合に、位相ずれとして集計することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記通知手段により通知された前記位相ずれの回数が予め定められる設定値以上となったことを基点に、前記制御手段が所定の制御を開始することを特徴とする請求項2または請求項3に記載の情報処理装置。
【請求項5】
前記複数のサンプリングクロックでサンプリングしたデータ間で値の変化がない変化無し期間を集計する変化無し期間集計手段をさらに備え、
前記通知手段は、前記変化無し期間集計手段が集計した前記変化無し期間をステータスとして通知し、
前記制御手段は、前記通知手段から通知された前記変化無し期間が予め定められる設定値以上となったことを基点に、所定の制御を開始することを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記入力データは、SD(Secure Digital)カードから入力されるデータであって、前記所定の制御は、前記SDカードに対するキャリブレーションを前記ホストコントローラに開始させる制御であることを特徴とする請求項4または請求項5に記載の情報処理装置。
【請求項7】
前記複数のサンプリングクロックの位相の内中心となる位相を有するサンプリングクロックでサンプリングされたデータと、前記中心となる位相に対して前および後の位相を有するサンプリングクロックでサンプリングされたデータの両方とが異なる場合に、エラーと判定するエラー判定手段と、
前記エラー判定手段によりエラーと判定された判定結果を前記制御手段に通知するエラー通知手段とを
さらに備えることを特徴とする請求項1ないし請求項6のいずれか1項に記載の情報処理装置。
【請求項8】
ホストコントローラと該ホストコントローラを制御する制御手段とを備える情報処理装置の制御方法であって、
前記ホストコントローラが、
位相が異なる複数のサンプリングクロックを生成するクロック生成ステップと、
前記複数のサンプリングクロックの各々で入力データをサンプリングする複数のデータ入力ステップと、
前記データ入力ステップにおいてサンプリングした複数のデータ値をサンプリング単位で比較するデータ比較ステップと、
前記データ比較ステップにおける比較結果を基に、位相ずれに関する情報を集める位相ずれ集計ステップと、
前記位相ずれ集計ステップにおいて集めた位相ずれに関する情報を通知する通知ステップと、を実行し、
前記制御手段が、
前記通知ステップで通知された情報を基に前記ホストコントローラを制御する
ことを特徴とする情報処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate