JP2012015805A - ホストコントローラ、情報処理装置、およびサンプリング方法 - Google Patents
ホストコントローラ、情報処理装置、およびサンプリング方法 Download PDFInfo
- Publication number
- JP2012015805A JP2012015805A JP2010150455A JP2010150455A JP2012015805A JP 2012015805 A JP2012015805 A JP 2012015805A JP 2010150455 A JP2010150455 A JP 2010150455A JP 2010150455 A JP2010150455 A JP 2010150455A JP 2012015805 A JP2012015805 A JP 2012015805A
- Authority
- JP
- Japan
- Prior art keywords
- value
- data
- acquired
- crc status
- host controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
【課題】 メモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるようにすること。
【解決手段】 実施形態によれば、ライトデータに対して返されるCRCステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段(25〜27)と、前記複数のデータ入力手段により取得された複数の値の中から、前記CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段(21)とを具備するホストコントローラが提供される。
【選択図】図2
【解決手段】 実施形態によれば、ライトデータに対して返されるCRCステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段(25〜27)と、前記複数のデータ入力手段により取得された複数の値の中から、前記CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段(21)とを具備するホストコントローラが提供される。
【選択図】図2
Description
本発明の実施形態は、メモリカードのホストコントローラ、該ホストコントローラを備えた情報処理装置、および該ホストコントローラによるサンプリング方法に関する。
最近のSD(Secure Digital)カードは従来よりもデータ転送速度がさらに高速化されてきているため、従前は固定であったデータ受信時の遅延量が定められなくなり、ホストコントローラ側においてサンプリング位置の位相設定が必要になっている。
位相設定には、データ転送前に受信データと期待値とを比較することにより位相調整を行なうチューニング(もしくはキャリブレーション)という方法が採られることが一般的である。
なお、特許文献1に開示の技術のように、ビット位相同期回路で、位相の異なる複数(3つ)のクロックを生成してデータをラッチし、この3つのデータにより位相比較を行った上でクロックを決定することにより、短時間でビット同期をとれるようにした方法もある。
しかしながら、上述のチューニング(もしくはキャリブレーション)を行ったとしても、温度ドリフトなどの影響によりデータ転送中に位相がずれてしまった場合には、メモリカードからのデータ(ライトデータに対して返されるCRC(Cyclic Redundancy Check)ステータスなど)を正しく得ることができなくなるため、データの再転送を繰り返さなければならず、そのためにデータの転送効率が低下するという問題がある。
また、特許文献1に開示の技術は、前述の比較結果から選択可能なクロックの中の1つを決定するものにすぎず、データ受信時の遅延量が定められないような転送速度が高速なデータ通信に適用することはできない。
そこで、本発明はメモリカードからのデータを正しく得ることができ且つデータの転送効率を向上させることができるホストコントローラ、情報処理装置、およびサンプリング方法を提供することを目的とする。
実施形態によれば、ライトデータに対して返されるCRCステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、前記複数のデータ入力手段により取得された複数の値の中から、前記CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段とを具備するホストコントローラが提供される。
以下、図面を参照して実施の形態について説明する。
図1は、一実施形態に係るノートブック型パーソナルコンピュータ(以下、PC1と称す)の外観を示す図である。
PC1は、本体11と、表示ユニット12とを備えている。本体11は、キーボード13と、ポインティングデバイスであるタッチパッド14とを備えている。本体11内部には、メイン回路基板、同図符号2で示す破線部分のSD(Secure Digital)カードホストコントローラ(詳細は後述;以下、ホストコントローラと称す)、ODDユニット(Optical Disk Device)、SDカードスロット等が収容されている。
SDカードスロットは、本体11の周壁に設けられている。この周壁には、SDカードスロット用の開口部15が設けられている。ユーザは、この開口部15を通じて本体11の外部からSDカード3をカードスロットに挿抜することが可能である。
PC1には、ホストコントローラ2を制御するためのデバイスドライバであるホストドライバがインストールされており、このホストドライバとホストコントローラ2により、SDカードスロットに装着されたSDカード3に対するリード/ライト処理やチューニング(もしくはキャリブレーション処理)等を行うことが可能となっている。
なお、本実施形態では、ホストコントローラ2をPC1に内蔵する構成としているが、ホストコントローラ2を、USBインターフェースやその他のインターフェースを介して外付けされるSDカードリーダ/ライタ等に内蔵させた構成とすることもできる。また、本実施形態では、ホストコントローラ2の制御対象としてSDカードを例に挙げ説明するが、これに限らず、データ受信時の遅延量が固定されておらず、サンプリング位置の位相設定が必要になるその他のメモリカードであってもよい。
また、情報処理装置としては、上記のようなパーソナルコンピュータに限らず、携帯電話、PDA(Personal Digital Assistant)、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビジョン受像機等もあり、これらについても本発明を適用することができる。
図2は、ホストコントローラ2の概略構成を示すブロック図である。
ホストコントローラ2は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などによるハードウェアとして構成することができる。
このホストコントローラ2は、PC1のCPU(Central Processing Unit)31が実行するホストドライバにより制御される。ホストドライバによる各種要求は、制御部21内のシステムバスインターフェース(図示せず)を通じて、制御部21に渡される。
サンプリングクロック生成部22は、制御部21により位相設定レジスタ23に設定された位相設定に従って、受信データサンプリング用のクロック位相をシフトさせた3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)を生成し、I/Oコントローラ24に供給する。なお、各サンプリングクロックは、その位相が、前回のチューニング(もしくはキャリブレーション)により受信データを正しく受信できたサンプリングクロック位相の範囲内となるよう生成するものとする。
I/Oコントローラ24は、SDカードスロットに装着されたSDカード3に対するコマンドを、SDバスプロトコルに従ったコマンドとしてSDカード3に送信したり、あるいはマルチプルライト処理で複数ブロックのデータをSDカード3に送信したり、SDカード3からのデータ(例えばマルチプルライトデータに対するCRCステータス)を受信したりする。また、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27を備え、これらはそれぞれ、サンプリングクロック生成部22からの3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)に従って、SDカード3からの受信データをサンプリングし、制御部21へ渡す。
例えば、図3に示されるように、データラインにおいてマルチプルライト処理による複数ブロックのデータのライト転送が行われる場合、I/Oコントローラ24は、各ライトデータの転送の後にそれぞれ返されるCRCステータス40をサンプリングする。CRCステータス40に対し、上記3種の位相の異なるサンプリングクロックを用いてサンプリングすることの利点については、後で詳しく説明する。
なお、PC1のCPU31からSDカード3へのアクセス時には、データ入力部(C)26でサンプリングされた受信データが、制御部21内のシステムバスインターフェースを介してPC1のCPU31へ送られる。PC1のCPU31は、ホストドライバを実行することによりホストコントローラ2を制御する制御手段としても機能するものであり、本明細書では、このCPU31とホストドライバの組をホストコントローラ2に対してホスト側と称す。
制御部21は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27によりそれぞれ取得される3つの値の中から、CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する機能を有する。また、この制御部21は、位相設定レジスタ23にを通じてクロックの位相を調整する機能も有する。制御部21は、データ取得部28、CRCステータス結果判定部29、および結果通知部30を備えている。
データ取得部28は、データ入力部(L)25、データ入力部(C)26、データ入力部(R)27でデータをサンプリングして得られる3つの値を取得する。
CRCステータス結果判定部29は、データ取得部28により取得された3つの値のそれぞれに対し、「OK」(CRCステータスの値が正しく得られた状態)、「NG」(CRCステータスの値が誤って得られた状態)、あるいは「該当なし」(値が得られなかった状態)を判別する。また、CRCステータス結果判定部29は、「OK」を示す結果が存在し、且つ、「NG」を示す結果が存在しない場合に、データ転送が成功したものと判定し、そうでない場合にはデータ転送が失敗したものと判定する。
結果通知部30は、CRCステータス結果判定部29による判定結果をホスト側のCPU31等に通知する。
ここで、3種の位相の異なるサンプリングクロックではなく、従来の単一のサンプリングクロックを用いた場合のサンプリングにおける問題点について、図4を用いて説明する。
例えば、CRCステータス40が、スタートビット“0”で始まり、ステータスそのものを表す3つビット“0”,“1”,“0”が続き、エンドビット“1”で終わるものとする。このとき、温度ドリフトは起きておらず、図4(a)に示されるように、サンプリングクロックに対して受信データの位相はずれていない。そのような場合、CRCステータス40の値を正しく取得することができる。
しかしながら、データ転送量が増加し、転送時間が長くなるにつれ、温度ドリフトが起きる。そのような場合、図4(b)に示されるように、温度ドリフトの影響により、サンプリングクロックに対して受信データの位相がずれてくるため、正しいCRCステータス40が転送されてきているのもかかわらず、CRCステータス40の値を正しく取得することができない。これにより、ホストコントローラ2は、転送失敗を示す結果をホスト側に通知すると、ホスト側からライトデータの再転送を指示され、ライトデータのSDカード3への再転送を繰り返し行うことになるため、転送効率が低下してしまう。
そこで、本実施形態では、温度ドリフトが起きた場合でも、図5に示されるように、3種の位相の異なるサンプリングクロック(CLK L,CLK C,CLK R)を用いてCRCステータス40をサンプリングすることにより、CRCステータス40の値の取りこぼしを防ぎ、CRCステータス40の値を正しく取得できるようにする。なお、サンプリングクロックCLK Lは、基本クロックCLK Cに対してその位相を予め定められる1単位分だけ遅らせたクロックであり、CLK Rは、CLK Cに対してその位相を1単位分進めたクロックである。
図6には、温度ドリフトの影響によりサンプリングクロックに対して受信データの位相がずれている状態で、図5に示される3種の位相の異なるサンプリングクロックを用いてサンプリングされた場合の、CRCステータスの値、および、当該CRCステータスの値が正しく取得できたかどうかを示す分類結果、ならびに、転送が成功したか失敗したかを示す判定結果が示されている。
図6の例では、サンプリングクロックCLK LでサンプリングされたCRCステータスのbit2, bit1, bit0の値は“0”,“−”,“−”であり、値が得られなかった状態を示す“−”のビットがあるため、分類結果は「該当なし」とされている。
また、サンプリングクロックCLK CでサンプリングされたCRCステータスのbit2, bit1, bit0の値は“0”,“1”,“−”であり、値が得られなかった状態を示す“−”のビットがあるため、分類結果は「該当なし」とされている。
一方、サンプリングクロックCLK RでサンプリングされたCRCステータスのbit2, bit1, bit0の値は“0”,“1”,“0”であり、値が正しく取得されているため、分類結果は「OK」とされている。なお、ここには例示されていないが、値が誤って取得されている場合、例えばCRCステータスのbit2, bit1, bit0の値が“1”,“0”,“1”である場合、分類結果は「NG」とされる。
データ転送が成功したか失敗したかの判定は、図7に示されるように、「OK」の数および「NG」の数による。すなわち、「OK」の数が“0”で、「NG」の数が“0以上”であれば、“転送失敗”と判定される。また、「OK」の数が“1以上”であっても、「NG」の数が“1以上”であれば、“転送失敗”と判定される。一方、「OK」の数が“1以上”で、「NG」の数が“0”であれば、“転送成功”と判定される。
従って、図6の例では、「OK」の数が“1以上”で、「NG」の数が“0”であるため、“転送成功”と判定される。
このように、本実施形態によれば、3種の位相の異なるサンプリングクロックを用いてCRCステータスをサンプリングすることにより、温度ドリフトなどの影響によりサンプリングクロックに対して受信データの位相がずれてきた場合であっても、CRCステータスの値の取りこぼしを防ぎ、CRCステータスの値を正しく取得することができ、転送成功をホスト側に通知することができる。また、CRCステータスの値を正しく取得できることから、ライトデータのSDカード3への再転送の回数を低減することができ、転送効率を向上させることができる。
なお、上記実施形態では、3種の位相の異なるサンプリングクロックを用いてサンプリングを行っているが、3種に限るものではなく、さらに多数種類のサンプリングクロックを用いてサンプリングを行うことも可能である。
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
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…CRCステータス結果判定部、30…結果通知部、31…CPU。
Claims (5)
- ライトデータに対して返されるCRCステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返す複数のデータ入力手段と、
前記複数のデータ入力手段により取得された複数の値の中から、前記CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する制御手段と
を具備するホストコントローラ。 - 前記制御手段は、前記複数のデータ入力手段により取得された複数の値の中に、前記CRCステータスの値として正しく取得された値が存在し、且つ、前記CRCステータスの値として誤って取得された値が存在しない場合に、データ転送が成功したものと判定する請求項1に記載のホストコントローラ。
- 請求項1又は2に記載のホストコントローラと、当該ホストコントローラを制御するプロセッサとを具備する情報処理装置。
- ライトデータに対して返されるCRCステータスを対象に、位相が異なる複数のクロックに従ってサンプリングを行うことによって複数の値を取得する動作を繰り返し、
前記取得した複数の値の中から、前記CRCステータスの値として正しく取得された値を識別し、データ転送が成功したか否かを示す判定結果を所定のデバイスに通知する、サンプリング方法。 - 前記取得した複数の値の中に、前記CRCステータスの値として正しく取得された値が存在し、且つ、前記CRCステータスの値として誤って取得された値が存在しない場合に、データ転送が成功したものと判定する、請求項4に記載のサンプリング方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010150455A JP2012015805A (ja) | 2010-06-30 | 2010-06-30 | ホストコントローラ、情報処理装置、およびサンプリング方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010150455A JP2012015805A (ja) | 2010-06-30 | 2010-06-30 | ホストコントローラ、情報処理装置、およびサンプリング方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012015805A true JP2012015805A (ja) | 2012-01-19 |
Family
ID=45601707
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010150455A Withdrawn JP2012015805A (ja) | 2010-06-30 | 2010-06-30 | ホストコントローラ、情報処理装置、およびサンプリング方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012015805A (ja) |
-
2010
- 2010-06-30 JP JP2010150455A patent/JP2012015805A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4600518B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム | |
| JP2018526912A (ja) | 3相インターフェース用の多相クロックデータ復元 | |
| CN102576342B (zh) | 错误侦测为基础的内存写入时序调整 | |
| US8856433B2 (en) | Data transfer in memory card system | |
| KR102495361B1 (ko) | 입출력 회로 | |
| KR20190088734A (ko) | 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
| US10347347B1 (en) | Link training mechanism by controlling delay in data path | |
| US11561923B2 (en) | Method for training multichannel data receiver timing | |
| US7702820B2 (en) | Hardware accelerator and data transmission system and method using the same | |
| CN107392292B (zh) | 用于传送数据的电子电路和方法 | |
| JP5803821B2 (ja) | 制御装置、第1制御部、第2制御部、及び画像形成装置 | |
| US9720440B2 (en) | Communication apparatus and method for controlling communication apparatus | |
| US9054691B2 (en) | Information processing apparatus or information processing method | |
| US9240231B2 (en) | Recording apparatus and control method for recording apparatus | |
| JP2012015805A (ja) | ホストコントローラ、情報処理装置、およびサンプリング方法 | |
| US10162570B2 (en) | Methods and apparatuses of compensating for delays caused by an extension line of a storage device | |
| EP4027573B1 (en) | Phase calibration methods and systems | |
| US20120266009A1 (en) | Information processing apparatus or information processing method | |
| JP2009026370A (ja) | 同期型記憶装置及びその制御方法 | |
| JP5259563B2 (ja) | 情報処理装置およびその制御方法 | |
| US8259943B2 (en) | Method for decrypting serial transmission signal | |
| US20120005518A1 (en) | Host Controller, Semiconductor Device, Information Processing Apparatus, and Sampling Method | |
| JP5204084B2 (ja) | 情報処理装置およびその制御方法 | |
| KR20200129588A (ko) | 메모리 시스템 및 그것의 동작방법 | |
| US6850561B1 (en) | Predictable updating of a baud divisor of an asynchronous serial port during data reception |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20130730 |
|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130903 |
|
| A072 | Dismissal of procedure |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20131203 |