(57)【要約】  ホスト・コントローラはトランザクション内のデータを転送するのに適しており、各トランザクションは転送ディスクリプタによって記述され、トランザクションは分割トランザクションを含む。分割トランザクションのための転送ディスクリプタは、分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すように設定されてよいビットを含み、分割トランザクションを備えたトランザクションが第１分割トランザクションによって開始された後は、それに続く分割トランザクションが、トランザクションが完了するまで自動的に生成される。
2008502976.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション内のデータを転送するためのホスト・コントローラであって、各トランザクションは転送ディスクリプタによって記述され、前記トランザクションは分割トランザクションを含み、分割トランザクションのための前記転送ディスクリプタは、前記分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すように設定されてよいビットを含み、分割トランザクションを備えたトランザクションが第１分割トランザクションによって開始された後は、それに続く分割トランザクションが、該トランザクションが完了するまで自動的に生成される、ホスト・コントローラ。
【請求項２】
バルク分割トランザクションの場合、第１データは、転送ディスクリプタによって記述された第１分割トランザクションに従って転送され、前記転送ディスクリプタは、前記第１データが確認通知された場合、第２分割トランザクションを定義するように変更される、請求項１に記載のホスト・コントローラ。
【請求項３】
ホスト・マイクロプロセッサとシステム・メモリを相互接続するメモリ・バスへの接続のための第１インターフェースと、
内部メモリと、
外部バスへの接続のための第２インターフェースと
をさらに備える、請求項１または２に記載のホスト・コントローラ。
【請求項４】
トランザクション内のデータを転送するための方法であって、各トランザクションは転送ディスクリプタによって記述され、前記トランザクションは分割トランザクションを含み、
分割トランザクションを記述するために転送ディスクリプタを使用し、前記分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すために前記転送ディスクリプタ内にビットを設定すること、および
分割トランザクションを備えたトランザクションが第１分割トランザクションによって開始された後は、それに続く分割トランザクションを、該トランザクションが完了されるまで自動的に生成することを備える、方法。
【請求項５】
バルク分割トランザクションの場合、第１データは転送ディスクリプタによって記述された第１分割トランザクションに従って転送され、前記転送ディスクリプタは、前記第１データが確認通知された場合に第２分割トランザクションを定義するように変更される、請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス・コントローラに関し、特に、外部バスを使用して他の電子機器へのおよび他の電子機器からのデータの転送を制御するために電子機器内に含まれることができる装置に関する。
【背景技術】
【０００２】
電子機器が、ユニバーサル・シリアル・バス（ＵＳＢ）を使用したデータの送信を可能にするインターフェースを備えることは普通になってきている。
【０００３】
電子機器のアイテムがＵＳＢシステムを使用して相互接続されている場合、機器の１つのアイテムがＵＳＢホストとして指定され、その他のアイテムはＵＳＢ装置として指定される。ＵＳＢを介した通信の開始およびスケジュールを行うのはＵＳＢホストである。たとえば、ＵＳＢホストはパーソナル・コンピュータ（ＰＣ）でよく、プリンタ、デジタル・カメラ、および携帯情報端末（ＰＤＡ）など様々なＵＳＢ装置に接続されてよい。
【０００４】
しかし、たとえば、ＰＣを通した接続を必要とせず、カメラを直接プリンタに接続するためにＵＳＢ接続を使用することも可能である。ＵＳＢホストとして機能することができるためには、この例ではカメラでよい機器のアイテムは、必要な機能を備えていなければならず、本発明は、さらに特に、この機能を機器のアイテムに与えるために、機器のアイテムに含まれることができる集積回路の形態をした装置に関する。しかし、機器のアイテムはその他の機能を有し、そのＵＳＢ相互接続性は、その機能の一小部分にすぎないことが理解されるであろう。さらに、機器の諸アイテムに、それらが特別に強力なプロセッサを有することを必要とせずにＵＳＢホストとして働くことができる機能を与えるためには、機器のアイテムに装置を含めることができることが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、装置は、それが組み込まれるべき機器のアイテムの中央処理ユニット（ＣＰＵ）にできるだけ少なく依存して動作できることが望ましい。たとえば、装置は、好ましくは、機器のアイテムのバス・システム内でスレーブとして動作し、ＣＰＵがバス・マスタとしてのままであることができるようにする。さらに、装置はＣＰＵにできるだけ小さな処理負担をかけ、特にＣＰＵに対する割り込み要求の数を最小限にすることが望ましい。さらに、装置は、できるだけ広く様々な機器のアイテムに組み込まれることができるように、どんな特別なオペレーティング・システムを使用するＣＰＵにも依存すべきでない。
【課題を解決するための手段】
【０００６】
本発明によれば、開始分割トランザクションおよび完了分割トランザクションがＣＰＵによるどんな介入をも必要とせずに自動的に処理されるホスト・コントローラが提供される。特に、ペイロードの転送は単一の転送ディスクリプタを使用して処理され、データはペイロード全体が転送されてしまうまで転送されることができる。
【発明を実施するための最良の形態】
【０００７】
図１は、ＵＳＢホストとして動作する電子機器のアイテム１０の関連部分のブロック概略図である。本発明は、マイクロプロセッサおよびシステム・メモリの機能的制限が、パーソナル・コンピュータ（ＰＣ）においてよりも関係がある、カメラ、セットトップ・ボックス、携帯電話、またはＰＤＡなどの装置に特に適用可能である。しかし、本発明は、ＵＳＢホストとして動作することができるどんな装置にも適用可能である。
【０００８】
装置１０が、本発明の理解には関係がないので図１には示されていない多くの特徴を有するであろうことは明らかであろう。
【０００９】
装置１０は、プロセッサ・コアを含むホスト・マイクロプロセッサ（ＣＰＵ）２０を有する。ＣＰＵ２０は、周辺バス３２によってシステム・メモリ３０に接続される。
【００１０】
ホスト・コントローラ４０はまた、周辺バスまたはメモリ・バス３２によってホスト・マイクロプロセッサ２０およびシステム・メモリ３０に接続される。ホスト・コントローラ４０は、ＵＳＢバス４２のためのインターフェースを有し、これを通して複数のＵＳＢ装置に接続されることができる。この図示された実施形態では、ホスト・コントローラ４０は、ＵＳＢ２．０ホスト・コントローラであり、ホスト・コントローラのここに記載されていない特徴は、ＵＳＢ２．０仕様に明記されている通りでよい。
【００１１】
通常通り、ホスト・コントローラ４０は、適切なフォーマットでプロセッサ２０によって準備されたデータを取り出し、バス・インターフェースを介してデータを送信するように適合される。ＵＳＢ通信には、２つのカテゴリのデータ転送、すなわち非同期転送および周期的転送がある。制御およびバルク・データは、非同期転送を使用して送信され、アイソクロナスおよび割り込みデータは、周期的転送を使用して送信される。非同期転送のためにはキュー・トランザクション・ディスクリプタ（ｑＴＤ）データ構造が使用され、周期的転送のためにはアイソクロナス・トランザクション・ディスクリプタ（ｉＴＤ）データ構造が使用される。
【００１２】
プロセッサ２０は適当な構造のデータを準備し、それをシステム・メモリ３０に記憶し、ホスト・コントローラ４０は、その場合、システム・メモリ３０からデータを取り出さなければならない。
【００１３】
図２は、組み込みＵＳＢホスト・コントローラ４０の構造をさらに詳細に示す。
【００１４】
前述のように、ホスト・コントローラ４０は、メモリ管理ユニット、スレーブＤＭＡコントローラ、割り込み制御ユニット、およびハードウェア構成レジスタを含むインターフェース４４に接続されるメモリ・バス３２のための接続を有する。インターフェース４４はまた、制御および割り込み信号のための接続４６、ならびにＲＡＭ構造をサポートするレジスタ４８およびホスト・コントローラ４０のオペレーショナル・レジスタをも有する。
【００１５】
インターフェース４４は、この好ましい実施形態ではデュアル・ポートＲＡＭであるホスト・コントローラのオン・チップＲＡＭ５０に接続され、データが同時にメモリに書き込まれたりメモリから読み出されたりすることができるようにするが、均等には、適当なアービタを備えたシングル・ポートＲＡＭでもよい。メモリ５０は、やはりＵＳＢバス４２のためのインターフェースを含む、ホスト・コントローラ論理ユニット５２に接続される。制御信号は、レジスタ４８から内部バス５４によって論理ユニット５２に送信されることができる。
【００１６】
図３は、本発明による装置の動作方法を説明するために、ホスト・コントローラ４０上で動作するソフトウェアを部分的に示す概略図である。
【００１７】
ホスト・コントローラ４０は、一般には通常のものである、ＵＳＢドライバ・ソフトウェア８０およびＵＳＢ拡張ホスト・コントローラ・インターフェース・ソフトウェア８２を実行する。
【００１８】
ホスト・コントローラ４０はまた、データの送信先である全てのエンドポイントのための転送ベースの転送ディスクリプタのリストを準備するＵＳＢ  ＥＨＣＩインターフェース・ソフトウェア８４も実行する。
【００１９】
ＥＨＣＩインターフェース・ソフトウェア８４は、既存の周期的および非同期ヘッダのためにＥＨＣＩホスト・スタック８２によって生成されたパラメータを使用するように書き込まれ、全ての様々な形のＵＳＢ転送、特に、高速アイソクロナス、バルク、割り込みおよび制御、ならびにスタート／ストップ分割トランザクションなどの高速ＵＳＢ転送のために使用されることができる。
【００２０】
ホスト・マイクロプロセッサ２０は、ホスト・コントローラ４０がバス３２をマスタすることを必要とせずに、周辺バス３２を通して転送ベースの転送ディスクリプタをホスト・コントローラ４０のＲＡＭ５０に書き込む。言い換えれば、ホスト・コントローラ４０は、スレーブとしてのみ働く。この場合、転送ベースの転送ディスクリプタは、ホスト・コントローラ４０のＲＡＭ５０にメモリマップされることができる。
【００２１】
有利には、ホスト・コントローラ４０のビルトイン・メモリ５０は、ホスト・マイクロプロセッサ２０にマップされ、トランザクションがホスト・マイクロプロセッサ２０からスケジュールされることができる容易さを向上する。
【００２２】
デュアル・ポートＲＡＭ５０の使用は、１つの転送ベースの転送ディスクリプタがホスト・コントローラ４０によって実行されている間に、ホスト・マイクロプロセッサ２０がデータを別のブロック・スペースに書き込んでいることができることを意味する。
【００２３】
前述のように、ホスト・コントローラ４０は、ＵＳＢ２．０ホスト・コントローラであり、ＵＳＢ２．０仕様に定義されているハイスピード・バスを介してデータを転送することができる。しかし、ホスト・コントローラ４０はまた、ＵＳＢ仕様に定義されているように、フル・スピード装置およびロー・スピード装置にデータを転送することもできる。詳細には、データは開始分割トランザクションおよび完了分割トランザクションを使用してハブを介して送信される。その場合、ハブは、ハイスピード・バスに接続されることができない機器のアイテムに接続されてもよい。
【００２４】
本発明によれば、開始分割トランザクションおよび完了分割トランザクションは、単一の転送ディスクリプタによって処理される。さらに詳細には、単一の転送ディスクリプタは、ペイロード全体の転送のために、開始分割（ＳＳ）トランザクションと完了分割（ＣＳ）トランザクションの両方を処理することができる。ソフトウェアは、ＳＳ／ＣＳ転送ディスクリプタが、ハブ・アドレス、ポート番号、装置およびエンドポイント番号を備えたフル・スピード（ＦＳ）エンドポイントまたはロー・スピード（ＬＳ）エンドポイントのためのバルク／制御／ＩＳＯ／割り込み転送かどうかを示しさえすればよい。
【００２５】
バルク・トランザクションの場合、ハードウェアは、開始分割トランザクションを送達し、ハブからの確認通知（ＡＣＫ）を待ち、次いで、このＡＣＫを使用して最初の開始分割トランザクションを完了分割トランザクションにリセットする。アクティブ転送ディスクリプタのための次の開始分割トランザクションおよび完了分割トランザクションは、転送ディスクリプタによって指定されたデータが全て送信または受信されてしまうまで、ハードウェアによってアクティブにされる。したがって、たとえば、ペイロードのサイズが２５６であり、最大パケットのサイズが６４である場合、ハードウェアは、転送ディスクリプタに指定されているペイロード全体の転送をＣＰＵの介入なしに完了するために、４組のＳＳ／ＣＳトランザクションを生成する。
【００２６】
通常通り、開始分割転送および完了分割転送は、１つのマイクロフレームに関してアイソクロナス転送ディスクリプタおよび割り込み転送ディスクリプタが完了された後で、いつでも開始することができる。ＳＳ／ＣＳトランザクションのさらなる詳細は、ＵＳＢ２．０仕様、たとえばセクション１１．１７に示されている。
【００２７】
図４は、開始分割トランザクションおよび完了分割トランザクションによるバルク・データのハイ・スピード転送のための転送ディスクリプタの構造を示し、図５（図５ａおよび５ｂに分割されている）は、図４に示された転送ディスクリプタの詳細な定義を示す。
【００２８】
したがって、開始分割バルク転送および完了分割バルク転送に関する各転送ディスクリプタは、ＣＰＵの介入なしに、４ＫまでのデータをＦＳ／ＬＳ装置に転送することができる。ＮＡＫが３つ続いた場合、ハードウェアはトランザクションを中止し、ＣＰＵに対する割り込み要求を生成する。ハードウェアによるエラーおよびＮＡＫ処理のための一般条件は、ＵＳＢ２．０仕様１１．１７による。
【００２９】
図６は、開始分割トランザクションおよび完了分割トランザクションによるアイソクロナス・データのハイ・スピード転送のための転送ディスクリプタの構造を示し、図７（図７ａ、７ｂ、７ｃおよび７ｄに分割されている）は、図６に示された転送ディスクリプタの詳細な定義を示す。
【００３０】
したがって、アイソクロナス・エンドポイントに関する単一の開始分割および完了分割転送ディスクリプタは、装置に対する１Ｋまでのデータを処理することができる。
【００３１】
図８は、開始分割トランザクションおよび完了分割トランザクションによる割り込みデータのハイ・スピード転送のための転送ディスクリプタの構造を示す。図８に示された転送ディスクリプタの詳細な定義は、パラメータＭａｘＰａｃｋｅｔＳｉｚｅが使用されることを除いて、図７に示されたものと同じである。ＭａｘＰａｃｋｅｔＳｉｚｅはＦＳ／ＬＳ装置のＭＰＳである。さらに、送受信される総バイト数は、ＭＰＳより大きくてもよい。この場合、パラメータＵｆｒａｍｅはｍｓでのポーリング・レートである。送信する総（Ｔｏｔａｌ）バイト数を示すパラメータの値は、図７に示されている１０２３に制限されない。このパラメータはまた、バルク転送の開始分割のための１０２３にも制限されないことにも留意すべきである。
【００３２】
転送ディスクリプタはまた、アクティブ・ビットの設定も可能にし、トランザクションが処理される特定のマイクロフレームを示す。したがって、ＵＳ  ＳＳ＝００００  ０００１、ＵＳ  ＣＳ＝００００  ０１００は、開始分割トランザクションにマイクロフレーム０で実行させ、完了分割トランザクションにマイクロフレーム２で実行させる。
【００３３】
したがって、ＣＰＵの介入を必要とせずに分割トランザクションの実行を可能にする装置が記載される。
【図面の簡単な説明】
【００３４】
【図１】本発明によるホスト・コントローラを組み込んだ電子機器のアイテムのブロック概略図である。
【図２】本発明によるホスト・コントローラのブロック概略図である。
【図３】図２のホスト・コントローラ内のソフトウェアの構造を示す図である。
【図４】本発明による第１転送ディスクリプタを示す図である。
【図５ａ】本発明による第１転送ディスクリプタを示す図である。
【図５ｂ】本発明による第１転送ディスクリプタを示す図である。
【図６】本発明による第２転送ディスクリプタを示す図である。
【図７ａ】本発明による第２転送ディスクリプタを示す図である。
【図７ｂ】本発明による第２転送ディスクリプタを示す図である。
【図７ｃ】本発明による第２転送ディスクリプタを示す図である。
【図７ｄ】本発明による第２転送ディスクリプタを示す図である。
【図８】本発明による第３転送ディスクリプタを示す図である。
【図１】
2008502976.tif 000003
【図２】
2008502976.tif 000004
【図３】
2008502976.tif 000005
【図４】
2008502976.tif 000006
【図５ａ】
2008502976.tif 000007
【図５ｂ】
2008502976.tif 000008
【図６】
2008502976.tif 000009
【図７ａ】
2008502976.tif 000010
【図７ｂ】
2008502976.tif 000011
【図７ｃ】
2008502976.tif 000012
【図７ｄ】
2008502976.tif 000013
【図８】
2008502976.tif 000014
【国際調査報告】
2008502976.tif 000015
2008502976.tif 000016