(57)【要約】【課題】ＳＤカート等の外部電子機器とデータの送受信を行うホストコントローラの設計変更に伴う、ＩＯ部の信号同期用回路の増加・削減を容易とする。【解決手段】実施形態は、ＩＯ部１０２と、該ＩＯ部とホスト装置とのデータ転送を行うデータ処理部１０１とから構成されるデータ処理装置１００であって、前記データ処理部１００は、前記ＩＯ部１０２から入力される特定データに応じて、前記ＩＯ部１０２のデータ入出力タイミングをパラメータ値に基づいて調整するタイミング調整部２０１を具備し、ＩＯ部１０２の構成に対応したタイミングの調整を行う。【選択図】    図２
2012053588.tif 000002
【特許請求の範囲】
【請求項１】
ＩＯ部と、該ＩＯ部とホスト装置とのデータ転送を行うデータ処理部とから構成されるデータ処理装置であって、
前記データ処理部は、前記ＩＯ部から入力される特定データに応じて、前記ＩＯ部のデータ入出力タイミングをパラメータ値に基づいて調整するタイミング調整部を具備し、ＩＯ部の構成に対応したタイミングの調整を行うことを特徴とするデータ処理装置。
【請求項２】
前記タイミング調整部は、前記ホスト装置にて設定される調整値を格納するレジスタを具備し、この調整値に基づいて前記入出力タイミングを更に調節することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記ＩＯ部には前記外部装置としてＳＤカードが接続され、
前記タイミング調整部は、データのブロック転送時のＳＤクロック停止タイミングを調整することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
前記ＩＯ部には前記外部装置としてＳＤカードが接続され、
前記タイミング調整部は、前記ＳＤカードからのレスポンス受信開始位置を調整することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項５】
前記ＩＯ部には前記外部装置としてＳＤカードが接続され、
前記タイミング調整部は、前記ＳＤカードからのデータ受信開始位置を調整することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項６】
前記ＩＯ部には前記外部装置としてＳＤＩＯカードが接続され、
前記タイミング調整部は、前記ＳＤＩＯカードに対するリードウエイト信号の出力タイミングを調整することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項７】
ＩＯ部と、該ＩＯ部とホスト装置とのデータ転送を行うデータ処理部とから構成されるデータ処理装置におけるデータ処理方法であって、
前記ＩＯ部から入力される特定データに応じて、前記ＩＯ部のデータ入出力タイミングをパラメータ値に基づいて調整し、前記ＩＯ部の構成に対応したタイミングの調整を行うことを特徴とするデータ処理方法。
【請求項８】
前記ホスト装置にて設定される調整値に基づいて前記入出力タイミングを更に調整することを特徴とする請求項７記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＳＤカードのような外部装置を接続し、外部装置とデータの入出力処理を行うデータ処理装置に関する。
【背景技術】
【０００２】
デジタルカメラ、携帯電話などの携帯機器、及びＰＣ、テレビなどの家電機器に使用され、小型で携帯可能な不揮発性メモリとしてＳＤカードが広く普及している。ＳＤカードとホスト装置（ＣＰＵ）間のデータ及びコマンド転送は、ホストコントローラにより制御される。ホストコントローラは一般にデータ処理部とＩＯ部を含み、ＳＤカードはカードスロットを介してＩＯ部に接続される。又ホストコントローラはＬＳＩとして構成される場合が多い。
【０００３】
ＳＤカードの場合、例えばデータブロック転送時のクロック停止タイミング及びＳＤカードからのデータ入力タイミング等が、規格により詳細に定められている。例えばホストコントローラは、ＳＤカードから転送されたデータを規格に合致したタイミングでサンプリングしないと、転送されたデータを正しく認識できない。又ホストコントローラは、この規格に従ってＳＤカードを制御するように設計されているため、ＩＯ部の構成はホストコントローラ側の設計仕様で決められていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２６３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ホスト装置、ホストコントローラ及びＩＯ部を１つのＬＳＩ内に組み込み、ＳＯＣ（System on chip）を構成する場合などは、チップサイズの大型化及びレイアウトの都合上、データ処理部とＩＯ部を結ぶ複数の配線の長さ及び配線容量に相違が生じ、各信号の伝送タイミングがずれることがある。このような場合は、例えばＦ／Ｆ（フリップフロップ）を各信号配線の途中に挿入して、複数信号の同期をとることが一般に知られている。
【０００６】
しかし、ホストコントローラＬＳＩとして構成されたデータ処理部とＩＯ部の設計を、ＳＯＣの製作に流用する場合、ＩＯ部の構成が上記のように決まっているので、Ｆ／Ｆを各信号配線の途中に単に挿入することができない。なぜなら、Ｆ／Ｆを例えば１つ挿入すると信号タイミングが１クロック遅れ、上記データ入力タイミング等がＳＤカードの規格から外れてしまうからである。つまり、配線長の違いにより生じる信号伝送タイミングの相違を無くすため、既存のＩＯ部にＦ／Ｆを単に追加して設計変更をすることができないという問題があった。
【０００７】
又、ホストコントローラをデータ処理部とＩＯ部を分けた２チップ構成とした場合は、決められたＩＯしか使うことができないという問題があった。
【課題を解決するための手段】
【０００８】
本発明の実施形態では、信号或いはデータ又はコマンドの入出力タイミングを調整する手段を具備したことにより、信号同期のためのＦ／Ｆの増加・削減が容易となる。
【０００９】
すなわち本発明の実施形態に係るデータ処理装置は、ＩＯ部と、該ＩＯ部とホスト装置とのデータ転送を行うデータ処理部とから構成されるデータ処理装置であって、前記データ処理部は、前記ＩＯ部から入力される特定データに応じて、前記ＩＯ部のデータ入出力タイミングをパラメータ値に基づいて調整するタイミング調整部を具備し、ＩＯ部の構成に対応したタイミングの調整を行う。
【図面の簡単な説明】
【００１０】
【図１】本発明によるデータ処理装置を適用するホストコントローラ１００の基本構成を示すブロック図である。
【図２】ホストコントローラ１００におけるデータ処理部１０１及びＩＯ部１０２の構成及び接続関係を示す図である。
【図３】クロック停止タイミングを示す図である。
【図４】図２の回路にＦ／Ｆ２３’〜２５’を追加した場合のクロック停止タイミングを示す図である。
【図５】クロックイネーブルＳＤＣＬＫ＿ＥＮ波形とタイミング調整値の関係を示す図である。
【図６】レスポンス受信開始タイミングを示す図である。
【図７】図２の回路にＦ／Ｆ１９’〜２１’を追加した場合のレスポンス受信開始タイミングを示す図である。
【図８】レスポンス受信開始位置とタイミング調整値の関係を示す図である。
【図９】データラインのデータとリードウエイトタイミングの関係を示す図である。
【図１０】リードウエイト開始位置とタイミング調整値の関係を示す図である。
【図１１】データラインのデータとデータ受信開始タイミングの関係を示す図である。
【図１２】データ受信開始位置とタイミング調整値の関係を示す図である。
【図１３】ＩＯ部１０２のＦ／Ｆの段数とパラメータの値を示すテーブルである。
【発明を実施するための形態】
【００１１】
以下、本発明に係るデータ処理装置の実施の形態を図面を参照して説明する。
【００１２】
図１は本発明によるデータ処理装置を適用するホストコントローラ１００の基本構成を示すブロック図である。
【００１３】
ホストコントローラ１００は例えばＬＳＩとして構成され、本実施形態に係るデータ処理部１０１及びＩＯ部１０２を具備する。データ処理部１０１はホスト装置（例えばＣＰＵ)及びＩＯ部に接続され、ホスト装置とＩＯ部とのデータ転送を制御する。ＩＯ部１０２は例えばＳＤカード等の外部電子機器に接続される。ホストコントローラ１００はＳＤカードを制御するホスト側装置として機能するので、ＳＤホストコントローラとも呼ばれる。
【００１４】
図２はホストコントローラ１００におけるデータ処理部１０１及びＩＯ部１０２の構成及び接続関係を示す。
【００１５】
クロックイネーブル生成回路２００は、マルチブロックリード時にデータブロック間でクロックの停止制御を行う。マルチブロックリードとは、例えば５１２バイト単位でＳＤカードからデータを読込む動作を示す。この５１２バイトは、ホスト側の転送用バッファの単位容量に相当する。ＳＤカードへのクロック出力停止期間中にバッファ切り替えが行われる。
【００１６】
クロック停止タイミング調整回路２０１は、パラメータ格納部１３ａ又は調整レジスタ１４ａで設定された調整値（後述される）に基づいて、マルチブロックリード時のクロック停止タイミングを調整する。クロック出力回路２０２は、インバータ１５、Ｆ／Ｆ（フリップフロップ）１６、ＡＮＤゲート１７、増幅器１８、ＳＤＣＬＫ用端子２７を含み、クロックイネーブル信号ＳＤＣＬＫ＿ＥＮに応じて、クロックの送出／停止を行なう。
【００１７】
コマンド送信回路２０３は、コマンドライン（ＳＤＣＭＤ用端子２８に接続される外部配線）へのコマンド出力信号ＳＤＣＭＤ＿Ｏ及びイネーブル信号ＳＤＣＭＤ＿ＥＮをＩＯ部１０２に提供する。コマンド入出力回路２０６は、Ｆ／Ｆ１９〜２１、入出力回路２２、ＳＤＣＭＤ用端子２８を含み、コマンド出力信号ＳＤＣＭＤ＿Ｏ及びイネーブル信号ＳＤＣＭＤ＿ＥＮに応じて、コマンドライン上信号の入出力処理を行う。
【００１８】
レスポンス受信回路２０４は、ＳＤカードからコマンドラインを介して入力されるレスポンスをＩＯ部１０２から受け取る。このように、ホストコントローラからの「コマンド」に対して、同一経路を使用してＳＤカードから返信されるデータを「レスポンス」という。レスポンス受信タイミング調整回路２０５は、パラメータ格納部１３ｂ又は調整レジスタ１４ｂで設定された調整値に基づいて、レスポンスの受信開始タイミングを調整する。
【００１９】
データ送信回路及びリードウエイト制御回路２０７は、ライトデータ転送時に送信出力データＳＤＤＡＴ＿Ｏ及びイネーブル信号ＳＤＤＡＴ＿ＥＮ＿ＸをＩＯ部１０２に出力する。又回路２０７はリードデータ転送時に、リードウエイト制御（後述される）を行う場合は、データライン（ＳＤＤＡＴ用端子２９に接続される外部配線）のビット２のラインにリードウエイト信号を出力する。尚、データ転送は４ビット並列で行われるので、回路２０７は４回路設けられる。リードウエイトタイミング調整回路２０８は、パラメータ格納部１３ｃ又は調整レジスタ１４ｃで設定された調整値に基づいて、リードウエイト信号の出力開始タイミングを調整する。
【００２０】
データ受信回路２１０は、データラインより入力されるＳＤデータをＩＯ部１０２から受け取る。データ受信回路２１０も並列データビット数に合わせて４回路設けられる。データ受信タイミング調整回路２１１は、パラメータ格納部１３ｄ又は調整レジスタ１４ｄで設定された調整値に基づいて、ＳＤデータの受信開始タイミングを調整する。
【００２１】
ＳＤデータ入出力回路２０９は、Ｆ／Ｆ２３〜２５、入出力回路２６及び端子２９を含み、出力データＳＤＤＡＴ＿Ｏ及びイネーブル信号ＳＤＤＡＴ＿ＥＮ＿Ｘに応じて、データライン上データの入出力処理を行なう。この入出力回路２０９も並列データビット数に合わせて４回路設けられる。
【００２２】
ここで、データ転送経路（インターフェース）２１２内のＦ／Ｆ１９〜２１、２３〜２５は、信号同期を得るために設けられている。何らかの理由でＬＳＩ１００内のインターフェースの設計変更を行う場合に、データ処理部１０１とＩＯ部１０２間を結ぶ配線の長さが著しく相違しているか或いは配線容量が異なると、各信号の伝送タイミングがずれ、データが正しく転送されないことがある。そのような場合、Ｆ／Ｆを更に挿入するか、あるいは削除する必要がある。パラメータ格納部１３及び調整レジスタ１４は、そのような場合でも、クロック信号、データ及びコマンドがＳＤカードの規格を満足するタイミングで転送されるよう、信号転送タイミングを調整するための調整値が設定される。上記の回路２００、２０４、２０７、２１０は、調整値に基づいて、信号転送タイミングを調節する（詳細は後述される）。
【００２３】
次に、本発明に係るデータ処理装置としてのホストコントローラ１００の動作を説明する。
【００２４】
ＳＤカードに送信されるＳＤＣＬＫは、クロック出力回路２０２により、クロックイネーブルＳＤＣＬＫ＿ＥＮをディセーブ（Ｌｏｗ）にしたサイクルの次のサイクルで停止される。コマンドＳＤＣＭＤ＿ＥＸ、ＳＤＣＭＤ＿Ｏ、ＳＤＣＭＤ＿Ｉと、ＳＤＤＡＴ＿ＥＸ、ＳＤＤＡＴ＿Ｏ、ＳＤＤＡＴ＿Ｉについては前述したように、ＩＯ部にそれぞれ１段ずつのＦ／Ｆ１９〜２１、２３〜２５が配置され、これらＦ／Ｆによって、クロックイネーブル、レスポンス受信、データ受信、リードウエイトの出力のタイミングを合わせ、同期を得ている。
【００２５】
図３はクロック停止タイミングを示すタイムチャートである。
【００２６】
図３の（ａ）はホストコントローラから出力されるクロックＳＤＣＬＫ、（ｂ）はＳＤカードからデータラインに出力されたデータＳＤＤＡＴ、（ｃ）はホストコントローラに入力されたデータＳＤＤAT＿Ｉ、（ｄ）はクロックイネーブル信号ＳＤＣＬＫ＿ＥＮである。尚、（ａ）の出力信号ＳＤＣＬＫと（ｂ）〜（ｄ）の信号の変化時点がずれているのは、カード側でのクロックに対する入力データのHold time を満足するように、ホストコントローラが出力データに遅延を付けていることによる。
【００２７】
ＳＤメモリカードの場合は規格により、カードがデータラインにエンドビット「Ｅ」（例えばデータビット１で伝送される信号）を出力したクロックから２クロック目のサイクルで、ホスト側はクロックを停止しなければならない。
【００２８】
データ処理部１０１でのデータ受け取りタイミングは、データライン上の信号から１サイクル遅れるので、エンドビット「Ｅ」を受けたサイクルの次のサイクルで、クロックイネーブルをディセーブル（Ｌｏｗ）にするようにタイミングを作成している。つまり図３（ｂ）のように、ＳＤカードがエンドビット「Ｅ」を出力したクロックから２クロック目のサイクルで、図３（ｄ）のようにクロックイネーブルＳＤＣＬＫ＿ＥがＬｏｗになり、図３（ａ）のようにクロックＳＤＣＬＫを停止する。
【００２９】
ここで、ホストコントローラ１００をＳＯＣに組み込む等、なんらかの理由でホストコントローラ１００の設計を変更する場合を想定する。設計変更した結果、配線が延長されて信号遅延が増加すると、各信号の伝送タイミングがずれることがある。このような場合は、Ｆ／Ｆを各信号配線の途中に挿入して複数信号の同期をとる方法がある。設計変更してＦ／Ｆを１つ追加すると、信号タイミングは規格に合致しなくなる。図４は、図２のＳＤデータ入出力回路２０９に点線矩形のようにＦ／Ｆ２３’〜２５’を追加した場合のクロック停止タイミングを示す。このように、入力データＳＤＤＡＴ＿Ｉが全て１クロック遅れるので、エンドビット「Ｅ」に応じてＬｏｗに変化するクロックイネーブルＳＤＣＬＫ＿Ｅも１クロック遅れる。従って、クロックＳＤＣＬＫも図３に比べて１クロック余分に出力される。この結果、「ＳＤカードがエンドビットを出力したクロックから２クロック目のサイクルで、ホスト側はクロックを停止しなければならない」というクロック停止タイミングに関する規格に合致していない。
【００３０】
そこで本実施形態では、入力データＳＤＤＡＴ＿Ｉの遅れに関わらず、常に規格に合致したクロック停止タイミングを提供する。
【００３１】
図２の説明に戻り、クロックイネーブル生成回路２００は、入力データＳＤＤＡＴ＿Ｉにおいて、データ転送開始を示すスタートビット「Ｓ」（図示されず）を検出した時からのクロック数をカウントするカウンタ１１ａと、比較基準値を格納する基準レジスタ１２ａを有する。又クロックイネーブル生成回路２００は、カウンタ１１ａの計数値が基準レジスタ１２ａの基準値に一致すると、次のクロックでイネーブルＳＤＣＬＫ＿ＥＮをＬｏｗに落とす。
【００３２】
ＳＤカードがデータライン上にスタートビット「Ｓ」を出力してから、エンドビット「Ｅ」を出力するまでのクロック数は規格により決められている。このクロック数をＮｄａｔとする。基準レジスタ１２ａには、当初このクロック数Ｎｄａｔが格納されている。この場合、イネーブルＳＤＣＬＫ＿ＥＮは、図３（ｄ）に示すタイミングでＬｏｗに落ちる。
【００３３】
クロック停止タイミング調整回路２０１は、パラメータ格納手段１３ａを有する。パラメータ格納手段１３ａは、基準レジスタ１２ａに格納されている比較基準値を調整するための調整値Ｔａが格納されており、この調整値はホストコントローラ１００の設計時に決定され、その後、変更することはできない固定値である。クロック停止タイミング調整回路２０１は、この調整値Ｔａを用いて基準レジスタ１２ａに格納されている比較基準値を調整する。この調整値Ｔａは、図２の回路に設計変更がない場合は０である。
【００３４】
図２の点線矩形のＦ／Ｆ２３’〜２５’のように、Ｆ／Ｆを各データ用配線に１つ追加して設計変更した場合、パラメータ格納手段１３ａには調整値Ｔａとして「−１」が格納される。クロック停止タイミング調整回路２０１は、この調整値Ｔａに基づいて、基準レジスタ１２ａに格納されている比較基準値から「１」を減算し、減算結果を基準レジスタ１２ａに格納する。この結果、クロックイネーブル生成回路２００は、Ｆ／Ｆ２３’〜２５’を追加して、図４（ｃ）のように、入力データＳＤＤＡＴ＿Ｉが全て１クロック遅れる場合でも、クロックイネーブルＳＤＣＬＫ＿Ｅを点線で示すように、図３（ａ）と同一のタイミングでＬｏｗに落とす。従って、クロックＳＤＣＬＫの出力は規格通りに停止する。
【００３５】
図５はクロックイネーブルＳＤＣＬＫ＿ＥＮ波形とタイミング調整値Ｔａの関係を示す図である。
【００３６】
タイミング調整値Ｔａの値に応じて、クロックイネーブルＳＤＣＬＫ＿ＥＮがＬｏｗに落ちるタイミングが変化する。このようにタイミング調整値Ｔａは、上記した−１に限らず、フリップフロップの増加減少に応じて、例えば−３〜＋３まで設定可能である。
【００３７】
このタイミング調整値Ｔａは、クロック停止タイミング調整回路２０１に設けられた調整レジスタ１４ａに設定された設定値に基づいて更に可変されてもよい。ホスト装置は、この設定値を信号ＣＬＫＡＤＪとして調整レジスタ１４ａに転送して格納する。クロック停止タイミング調整回路２０１は、この設定値を用いて比較値レジスタ１２ａに格納された基準比較値を変更する。又は、クロック停止タイミング調整回路２０１は、この設定値とパラメータ格納部１３ａに格納されている調整値を加算した値を、比較値レジスタ１２ａに格納された基準比較値に更に加算することで、基準比較値を変更する。この結果、クロックイネーブルＳＤＣＬＫ＿ＥＮは、変更された基準比較値に応じたタイミングでＬｏｗに落ちる。
【００３８】
次に、レスポンス受信開始タイミングについて説明する。
【００３９】
図６はレスポンス受信開始タイミングを示す図である。図６の（ａ）はホストコントローラから出力されるクロックＳＤＣＬＫ、（ｂ）はコマンドライン上の情報ＳＤＣＭＤで、「Ｅ」まではホストコントローラが出力したコマンド、「Ｓ」からはＳＤカードがコマンドラインに出力したレスポンス、（ｃ）はホストコントローラに入力された信号ＳＤＣＭＤ＿Ｉ、（ｄ）はレスポンス受信開始信号ＲＳＰＲＣＶである。
【００４０】
コマンドラインでは、（ｂ）のようにホストコントローラ１００がエンドビット「Ｅ」をコマンドとして出力後、最短で２サイクル経過後にＳＤカードからレスポンスのスタートビット「Ｓ」が出力される。レスポンス受信回路２０４は、ＳＤＣＭＤ＿Ｉが「Ｓ」のタイミングで、レスポンス受信開始信号ＲＳＰＲＣＶをＨｉｇｈとする。
【００４１】
このレスポンス受信開始信号ＲＳＰＲＣＶは、レスポンス受信回路２０４内部で生成される信号で、この信号がＨｉｇｈのタイミングでコマンドＳＤＣＭＤ＿Ｉの読み取りが開始される。つまり、ＳＤＣＭＤ＿Ｉにおいて、ＳＤカードからのレスポンスのスタートビット「Ｓ」に受信開始信号ＲＳＰＲＣＶが示す受信開始位置が一致しなければならない。レスポンス受信開始信号ＲＳＰＲＣＶは、図６（ｂ）のようにコマンドラインにホストコントローラからエンドビット「Ｅ」が出力されてから、所定クロック（図では４クロック）目のサイクルにＨｉｇｈとなる。
【００４２】
この場合も、ホストコントローラ１００を他のシステムに組み込む場合等に、ホストコントローラ１００の設計を変更し、配線の遅延量の変化を吸収するために、コマンド用信号線にＦ／Ｆを追加すると、信号タイミングが変化し、規格に合致した又は正常動作が実現されなくなる。図７は、図２のコマンド入出力回路２０６に点線矩形のようにＦ／Ｆ１９’〜２１’を追加した場合のレスポンス受信開始タイミングを示す。この場合、図７（ｃ）のように、信号ＳＤＣＭＤ＿Ｉの内容が全て１クロック遅れる（他の信号に変化はない）。従って、ＳＤカードからのレスポンスのスタートビット「Ｓ」に受信開始信号ＲＳＰＲＣＶの受信開始位置が一致しておらず、例えばレスポンスを正常に読み込むことができない。
【００４３】
本実施形態では、信号ＳＤＣＭＤ＿Ｉの位相ずれに関わらず、ＳＤカードからのレスポンスのスタートビット「Ｓ」に受信開始位置が一致するように、受信開始信号ＲＳＰＲＣＶを生成する。
【００４４】
図２において、レスポンス受信回路２０４は、入力信号ＳＤＣＭＤ＿Ｉにおけるスタートビット「Ｓ」を検出した時からのクロック数をカウントするカウンタ１１ｂと、比較基準値を格納する基準レジスタ１２ｂを有する。レスポンス受信回路２０４は、カウンタ１１ｂの計数値が基準レジスタ１２ｂの基準値に一致すると、次のサイクルでレスポンス受信開始信号ＲＳＰＲＣＶをＨｉｇｈに上げる。
【００４５】
ＳＤカードがコマンドライン上にスタートビット「Ｓ」を出力してから、エンドビット「Ｅ」を出力するまでのクロック数は規格により決められている。このクロック数をＮｒｅｓとする。基準レジスタ１２ｂには、当初「Ｎｒｅｓ＋２」が格納されている。
【００４６】
レスポンス受信タイミング調整回路２０５は、パラメータ格納手段１３ｂを有する。パラメータ格納手段１３ｂは、基準レジスタ１２ｂに格納されている比較基準値を調整するための調整値Ｔｂが格納されており、この調整値はホストコントローラ１００の設計時に決定され、その後、変更することはできない固定値である。レスポンス受信タイミング調整回路２０５は、この調整値Ｔｂを用いて基準レジスタ１２ｂに格納されている比較基準値を調整する。この調整値Ｔｂは、図２の回路に設計変更がない場合は０である。
【００４７】
図２の点線矩形のＦ／Ｆ１９’〜２１’のように、Ｆ／Ｆを各コマンド用配線に１つ追加して設計変更した場合、パラメータ格納手段１３ｂには調整値Ｔｂとして「＋１」が格納される。レスポンス受信タイミング調整回路２０５は、この調整値Ｔｂに基づいて、基準レジスタ１２ｂに格納されている比較基準値に「１」を加算し、加算結果を基準レジスタ１２ｂに格納する。この結果、レスポンス受信回路２０４は、Ｆ／Ｆ１９’〜２１’を追加して、図７（ｃ）のように、入力信号ＳＤＣＭＤ＿Ｉが全て１クロック遅れる場合でも、ＳＤカードからのレスポンスのスタートビット「Ｓ」に受信開始位置が一致するように（規格に合致するように）、点線で示す受信開始信号ＲＳＰＲＣＶ＿ＳＴＡを生成する。従って、入力信号ＳＤＣＭＤ＿Ｉは正しく読み込まれる。
【００４８】
図８はレスポンス受信開始位置とタイミング調整値の関係を示す図である。
【００４９】
タイミング調整値Ｔｂの値に応じて、レスポンス受信開始信号ＲＳＰＲＣＶ＿ＳＴＡのタイミングが変化する。このようにタイミング調整値Ｔｂは、上記した＋１に限らず、フリップフロップの増加減少に応じて、例えば−３〜＋３まで設定可能である。
【００５０】
このタイミング調整値Ｔｂは、前述の調整値Ｔａのように、レスポンス受信タイミング調整回路２０５に設けられた調整レジスタ１４ｂに設定された設定値に基づいて更に可変されてもよい。ホスト装置は、この設定値を信号ＲＳＰＡＤＪとして調整レジスタ１４ｂに転送して格納する。レスポンス受信タイミング調整回路２０６は、この設定値を用いて比較値レジスタ１２ｂに格納された基準比較値を変更する。
【００５１】
次にリードウエイトタイミングについて説明する。
【００５２】
図９はデータラインとリードウエイトタイミングの関係を示す。
【００５３】
図９（ａ）はホストコントローラから出力されたクロックＳＤＣＬＫ、（ｂ）はＳＤＩＯカードから出力されたデータラインのビット２のデータＳＤＤＴＡ［２］、（ｃ）はホストコントローラに入力されたデータビット２のデータＳＤＤＴＡ［２］＿Ｉ、（ｄ）はビット２の出力データＳＤＤＡＴ＿Ｏ［２］で、データ送信回路及びリードウエイト制御回路２０７から出力されるリードウエイト信号である。
【００５４】
ＳＤＩＯカードでは、バッファ切替時にこのリードウエイト信号によりＳＤＩＯカードからのデータ出力を待たせる場合は、図９（ｂ）のＳＤＩＯカードがデータラインにエンドビット「Ｅ」（例えばデータビット２で伝送される信号）を出力したクロックから２クロック経過後のサイクルで、ホスト側はデータラインのビット２すなわちＳＤＤＡＴ［２］をＬｏｗに落とさなければならない。ここで、データ出力ＳＤＤＡＴ＿Ｏ［２］（リードウエイト信号）がデータラインに出力されるまでに１サイクルかかる。従って、図９（ｃ）のようにＳＤカードからの入力データＳＤＤＡＴ＿Ｉ［２］のエンドビット「Ｅ」の次のサイクルで、図９（ｄ）のようにデータ出力ＳＤＤＡＴ＿Ｏ［２］（リードウエイト出力）をＬｏｗに落とす。
【００５５】
この場合も、ホストコントローラ１００の設計変更に伴って、データ用信号線にＦ／Ｆを追加すると、信号タイミングが変化し、規格に合致した動作が実現されなくなる。前述したように、図２のＳＤデータ入出力回路２０９に点線矩形のようにＦ／Ｆ２３’〜２５’を追加すると、入力データＳＤＤＡＴ＿Ｉ［２］が全て１クロック遅れる。従って、ＳＤＤＡＴ＿Ｉのエンドビット「Ｅ」に応じてＬｏｗに変化する出力データＳＤＤＡＴ＿Ｏ［２］も１クロック遅れてＬｏｗに落ちる。この結果、「ＳＤＩＯカードがエンドビットを出力したサイクルから２クロック経過後のサイクルで、ホスト側はデータラインのビット２すなわちＳＤＤＡＴ［２］（リードウエイト出力）をＬｏｗに落とさなければならない」というリードウエイトに関する規格に合致しなくなる。
【００５６】
そこで本実施形態では、入力データＳＤＤＡＴ＿Ｉ［２］の遅れに関わらず、常に規格に合致したリードウエイトタイミングを提供する。
【００５７】
図２において、リードウエイト制御回路２０７は、入力データＳＤＤＡＴ＿Ｉにおいて、データ転送開始を示すスタートビット「Ｓ」（図示されず）を検出した時からのクロック数をカウントするカウンタ１１ｃと、比較基準値を格納する基準レジスタ１２ｃを有する。リードウエイト制御回路２１０は、カウンタ１１ｃの計数値が基準レジスタ１２ｃの基準値に一致すると、次のクロックで出力データＳＤＤＡＴ＿Ｏ［２］をＬｏｗに落とす。
【００５８】
前述したように、ＳＤカードがデータライン上にスタートビット「Ｓ」を出力してから、エンドビット「Ｅ」が出力されるまでのクロック数は規格により決められている。このクロック数をＮｄａｔとする。基準レジスタ１２ａには、当初このクロック数Ｎｄａｔが格納されている。
【００５９】
リードウエイトタイミング調整回路２０８は、パラメータ格納手段１３ｃを有する。パラメータ格納手段１３ｃは、基準レジスタ１２ｃに格納されている比較基準値を調整するための調整値Ｔｃが格納されており、この調整値はホストコントローラ１００の設計時に決定され、その後、変更することはできない固定値である。リードウエイトタイミング調整回路２０８は、この調整値Ｔｃを用いて基準レジスタ１２ｃに格納されている比較基準値を調整する。この調整値Ｔｃは、図２の回路に設計変更がない場合は０である。
【００６０】
図２の点線矩形のＦ／Ｆ２３’〜２５’のように、Ｆ／Ｆを各データ用配線に１つ追加して設計変更した場合、パラメータ格納手段１３ｃには調整値Ｔｃとして「−１」が格納される。リードウエイトタイミング調整回路２０８は、この調整値Ｔｃに基づいて、基準レジスタ１２ｃに格納されている比較基準値から「１」を減算し、減算結果を基準レジスタ１２ｃに格納する。この結果、リードウエイト制御回路２０７は、Ｆ／Ｆ２３’〜２５’を追加して、入力データＳＤＤＡＴ＿Ｉ「２」が全て１クロック遅れる場合でも、データラインの信号ＳＤＤＡＴ「２」が、規格に合致したタイミングでＬｏｗに落ちるよう、出力データＳＤＤＡＴ＿Ｏ［２］をＬｏｗに落とす。
【００６１】
図１０はリードウエイト開始位置とタイミング調整値の関係を示す図である。
【００６２】
タイミング調整値Ｔｃの値に応じて、出力データＳＤＤＡＴ＿ＯがＬｏｗとなる位置（リードウエイト開始位置）が変化する。このようにタイミング調整値Ｔｃは、上記した−１に限らず、フリップフロップの増加減少に応じて、例えば−３〜＋３まで設定可能である。
【００６３】
このタイミング調整値Ｔｃは、前述の調整値Ｔａのように、リードウエイトタイミング調整回路２０８に設けられた調整レジスタ１４ｃに設定された設定値に基づいて更に可変されてもよい。ホスト装置は、この設定値Ｔｃを信号ＲＷＡＡＤＪとして調整レジスタ１４ｃに転送して格納する。リードウエイトタイミング調整回路２０８は、この設定値Ｔｃを用いて比較値レジスタ１２ｃに格納された基準比較値を変更する。
【００６４】
次にデータ受信開始タイミングについて説明する。
【００６５】
図１１はデータラインとデータ受信開始タイミングの関係を示す図である。
【００６６】
図１１（ａ）はホストコントローラから出力されたクロックＳＤＣＬＫ、（ｂ）はホストコントローラ又はＳＤカードからデータラインに出力されたデータＳＤＤＡＴ、（ｃ）はホストコントローラに入力されたデータＳＤＤＡＴ＿Ｉ、（ｄ）はデータ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡで、データ受信回路２１０内部で生成する信号である。
【００６７】
データラインでは、ホストコントローラからＳＤカードへのデータ出力後エンドビット「Ｅ」が出力され、エンドビット「Ｅ」から最短で２サイクル経過後に、受信データの開始を示すスタートビット「Ｓ」がＳＤカードから来るので、このタイミングに合わせて、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡをＨｉｇｈに上げる。つまり、データ受信回路２１０は、入力データＳＤＤＡＴ＿Ｉのスタートビット「Ｓ」の位置で、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡをＨｉｇｈに上げなければならない。
【００６８】
この場合も、ホストコントローラ１００を他のシステムに組み込む場合等に、ホストコントローラ１００の設計を変更し、配線の遅延量の変化を吸収するために、データ用信号線にＦ／Ｆを追加すると、信号タイミングが変化し、規格に合致した又は正常動作が実現されなくなる。
【００６９】
例えば、図２のＳＤデータ入出力回路２０９に点線矩形のようにＦ／Ｆ２３’〜２５’を追加すると、図１１（ｃ)の入力データＳＤＤＡＴ＿Ｉの内容が全て１クロック遅れ、右にずれる。信号ＤＡＴＲＣＶ＿ＳＴＡの位置は変化しない。なぜなら、信号ＤＡＴＲＣＶ＿ＳＴＡはホストコントローラ側が出力した信号ＳＤＤＡＴのエンドビット「Ｅ」に基づくタイミングで生成されるからである。その結果、入力データＳＤＤＡＴ＿Ｉのスタートビット「Ｓ」の位置と、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡがＨｉｇｈの位置がずれ、規格に合致した又は正常動作が実現されなくなる。
【００７０】
図２において、データ受信回路２１０は、入力データＳＤＤＡＴ＿Ｉにおいて、データ転送開始を示すスタートビット「Ｓ」（図示されず）を検出した時からのクロック数をカウントするカウンタ１１ｄと、比較基準値を格納する基準レジスタ１２ｄを有する。データ受信回路２１０は、カウンタ１１ｄの計数値が基準レジスタ１２ｄの基準値に一致すると、次のサイクルで、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡをＨｉｇｈに上げる。
【００７１】
ＳＤカードがデータライン上にスタートビット「Ｓ」を出力してから、エンドビット「Ｅ」を出力するまでのクロック数は規格により決められている。このクロック数をＮｄａｔとする。基準レジスタ１２ｄには、当初「Ｎｄａｔ＋２」が格納されている。この場合、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡは、図１１（ｄ）に示すタイミングでＨｉｇｈに上がる。
【００７２】
データ受信タイミング調整回路２１０は、パラメータ格納手段１３ｄを有する。パラメータ格納手段１３ｄは、基準レジスタ１２ｄに格納されている比較基準値を調整するための調整値Ｔｄが格納されており、この調整値はホストコントローラ１００の設計時に決定され、その後、変更することはできない固定値である。データ受信タイミング調整回路２１１は、この調整値Ｔｄを用いて基準レジスタ１２ｄに格納されている比較基準値を調整する。この調整値Ｔｄは、図２の回路に設計変更がない場合は０である。
【００７３】
図２の点線矩形のＦ／Ｆ２３’〜２５’のように、Ｆ／Ｆを各データ用配線に１つ追加して設計変更した場合、パラメータ格納手段１３ａには調整値Ｔｄとして「＋１」が格納される。データ受信タイミング調整回路２１１は、この調整値Ｔｄに基づいて、基準レジスタ１２ｄに格納されている比較基準値に「１」を加算し、加算結果を基準レジスタ１２ｄに格納する。この結果、データ受信回路２１０は、Ｆ／Ｆ２３’〜２５’を追加して、入力データＳＤＤＡＴ＿Ｉが全て１クロック遅れる場合でも、入力データＳＤＤＡＴ＿Ｉのスタートビット「Ｓ」の位置で、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡをＨｉｇｈに上げる。従って、入力データＳＤＤＡＴ＿Ｉは正しい位置で読み込みが開始される。
【００７４】
図１２はデータ受信開始位置とタイミング調整値の関係を示す図である。
【００７５】
タイミング調整値Ｔｄの値に応じて、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡがＨｉｇｈに変るタイミングが変化する。つまり、データ受信開始信号ＤＡＴＲＣＶ＿ＳＴＡは、入力データＳＤＤＡＴ＿Ｉの位置変動に応じてＨｉｇｈの位置が変更される。このようにタイミング調整値Ｔｄは、上記した＋１に限らず、フリップフロップの増加減少に応じて、例えば−３〜＋３まで設定可能である。
【００７６】
このタイミング調整値Ｔｄは、前述の調整値Ｔａのように、データ受信タイミング調整回路２１１に設けられた調整レジスタ１４ｄに設定された設定値に基づいて更に可変されてもよい。ホスト装置は、この設定値を信号ＤＡＴＡＤＪとして調整レジスタ１４ｄに転送して格納する。データ受信タイミング調整回路２１１は、前述のクロック停止タイミング調整回路２０１のように、この設定値を用いて比較値レジスタ１２ｄに格納された基準比較値を変更する。
【００７７】
図１３はＩＯ部１０２（インターフェース２１２）のＦ／Ｆの段数とパラメータの値を示すテーブルである。
【００７８】
図２のＩＯ部１０２において、ＩＯ部側回路の都合により、追加又は削除を行ったＦ／Ｆの段数に応じて、パラメータの値を図１３のように設定する。図１３は、タイミングの調整を行う項目と、その項目に関係するパスにおいて追加又は削除したＦ／Ｆの段数とパラメータの設定値の関係を示す。それぞれのパラメータは、図２のタイミング調整回路２０１、２０５、２０８、２１１に反映され、タイミングの調整が行われて、正常に動作するようになる。 
ＬＳＩの製作時、ＩＯ部のＦ／Ｆの段数をパラメータ値として設定しておけばよい。パラメータ値は、例えばＲＴＬ記述におけるパラメータファイルに記述された値であり、ＬＳＩ製作時に、タイミング調整回路に組み込まれる。
【００７９】
又、データ処理部とＩＯ部が別々のチップで構成されたＬＳＩにおいて、ＩＯ部のみ構成が異なる別のチップに置換えたような場合は、パラメータ値に加えて、調整レジスタ１４を具備したことにより、ホスト装置からタイミングの調整値を設定できる。この場合は、変更前の構成と比べて、Ｆ／Ｆの段数がどのように変ったかによって、図１３に示す増減値をレジスタに設定すればよい。
【００８０】
［効果］
データ処理部とＩＯ部とのインターフェースのタイミングを調整するパラメータ格納手段を設けたことにより、ＳＯＣにホストコントローラを組み込み、レイアウト等の都合上、Ｆ／Ｆの段数を変えた場合などにおいて、パラメータの調整値により、データあるいは信号の入出力タイミングを合わせることができる。従って、ＩＯ部のＦ／Ｆ段数を変更できるので、ＩＰとしての汎用性が向上する。
【００８１】
又、タイミングの調整レジスタを持つことにより、ＩＰとして組み込むときだけでなく、ホストコントローラとＩＯ部の２チップ構成でＬＳＩ化し、その後別の用途のためにＩＯ部の構成を変えたような場合に、ホスト装置が調整レジスタにタイミング調整値を設定できるので、構成の異なる様々なＩＯ部を適用できるという効果がある。
【００８２】
以上の説明はこの発明の実施の形態であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができるものである。例えば、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。
【符号の説明】
【００８３】
１００…ホストコントローラ、１０１…データ処理部、１０２…ＩＯ部、２０２…クロック出力回路、２０６…コマンド入出力回路、２０９…ＳＤデータ入出力回路、１９〜２５…フリップフロップ。
【図１】
2012053588.tif 000003
【図２】
2012053588.tif 000004
【図３】
2012053588.tif 000005
【図４】
2012053588.tif 000006
【図５】
2012053588.tif 000007
【図６】
2012053588.tif 000008
【図７】
2012053588.tif 000009
【図８】
2012053588.tif 000010
【図９】
2012053588.tif 000011
【図１０】
2012053588.tif 000012
【図１１】
2012053588.tif 000013
【図１２】
2012053588.tif 000014
【図１３】
2012053588.tif 000015