説明

分割トランザクションを処理するためのバス・コントローラ

ホスト・コントローラはトランザクション内のデータを転送するのに適しており、各トランザクションは転送ディスクリプタによって記述され、トランザクションは分割トランザクションを含む。分割トランザクションのための転送ディスクリプタは、分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すように設定されてよいビットを含み、分割トランザクションを備えたトランザクションが第1分割トランザクションによって開始された後は、それに続く分割トランザクションが、トランザクションが完了するまで自動的に生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス・コントローラに関し、特に、外部バスを使用して他の電子機器へのおよび他の電子機器からのデータの転送を制御するために電子機器内に含まれることができる装置に関する。
【背景技術】
【0002】
電子機器が、ユニバーサル・シリアル・バス(USB)を使用したデータの送信を可能にするインターフェースを備えることは普通になってきている。
【0003】
電子機器のアイテムがUSBシステムを使用して相互接続されている場合、機器の1つのアイテムがUSBホストとして指定され、その他のアイテムはUSB装置として指定される。USBを介した通信の開始およびスケジュールを行うのはUSBホストである。たとえば、USBホストはパーソナル・コンピュータ(PC)でよく、プリンタ、デジタル・カメラ、および携帯情報端末(PDA)など様々なUSB装置に接続されてよい。
【0004】
しかし、たとえば、PCを通した接続を必要とせず、カメラを直接プリンタに接続するためにUSB接続を使用することも可能である。USBホストとして機能することができるためには、この例ではカメラでよい機器のアイテムは、必要な機能を備えていなければならず、本発明は、さらに特に、この機能を機器のアイテムに与えるために、機器のアイテムに含まれることができる集積回路の形態をした装置に関する。しかし、機器のアイテムはその他の機能を有し、そのUSB相互接続性は、その機能の一小部分にすぎないことが理解されるであろう。さらに、機器の諸アイテムに、それらが特別に強力なプロセッサを有することを必要とせずにUSBホストとして働くことができる機能を与えるためには、機器のアイテムに装置を含めることができることが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、装置は、それが組み込まれるべき機器のアイテムの中央処理ユニット(CPU)にできるだけ少なく依存して動作できることが望ましい。たとえば、装置は、好ましくは、機器のアイテムのバス・システム内でスレーブとして動作し、CPUがバス・マスタとしてのままであることができるようにする。さらに、装置はCPUにできるだけ小さな処理負担をかけ、特にCPUに対する割り込み要求の数を最小限にすることが望ましい。さらに、装置は、できるだけ広く様々な機器のアイテムに組み込まれることができるように、どんな特別なオペレーティング・システムを使用するCPUにも依存すべきでない。
【課題を解決するための手段】
【0006】
本発明によれば、開始分割トランザクションおよび完了分割トランザクションがCPUによるどんな介入をも必要とせずに自動的に処理されるホスト・コントローラが提供される。特に、ペイロードの転送は単一の転送ディスクリプタを使用して処理され、データはペイロード全体が転送されてしまうまで転送されることができる。
【発明を実施するための最良の形態】
【0007】
図1は、USBホストとして動作する電子機器のアイテム10の関連部分のブロック概略図である。本発明は、マイクロプロセッサおよびシステム・メモリの機能的制限が、パーソナル・コンピュータ(PC)においてよりも関係がある、カメラ、セットトップ・ボックス、携帯電話、またはPDAなどの装置に特に適用可能である。しかし、本発明は、USBホストとして動作することができるどんな装置にも適用可能である。
【0008】
装置10が、本発明の理解には関係がないので図1には示されていない多くの特徴を有するであろうことは明らかであろう。
【0009】
装置10は、プロセッサ・コアを含むホスト・マイクロプロセッサ(CPU)20を有する。CPU20は、周辺バス32によってシステム・メモリ30に接続される。
【0010】
ホスト・コントローラ40はまた、周辺バスまたはメモリ・バス32によってホスト・マイクロプロセッサ20およびシステム・メモリ30に接続される。ホスト・コントローラ40は、USBバス42のためのインターフェースを有し、これを通して複数のUSB装置に接続されることができる。この図示された実施形態では、ホスト・コントローラ40は、USB2.0ホスト・コントローラであり、ホスト・コントローラのここに記載されていない特徴は、USB2.0仕様に明記されている通りでよい。
【0011】
通常通り、ホスト・コントローラ40は、適切なフォーマットでプロセッサ20によって準備されたデータを取り出し、バス・インターフェースを介してデータを送信するように適合される。USB通信には、2つのカテゴリのデータ転送、すなわち非同期転送および周期的転送がある。制御およびバルク・データは、非同期転送を使用して送信され、アイソクロナスおよび割り込みデータは、周期的転送を使用して送信される。非同期転送のためにはキュー・トランザクション・ディスクリプタ(qTD)データ構造が使用され、周期的転送のためにはアイソクロナス・トランザクション・ディスクリプタ(iTD)データ構造が使用される。
【0012】
プロセッサ20は適当な構造のデータを準備し、それをシステム・メモリ30に記憶し、ホスト・コントローラ40は、その場合、システム・メモリ30からデータを取り出さなければならない。
【0013】
図2は、組み込みUSBホスト・コントローラ40の構造をさらに詳細に示す。
【0014】
前述のように、ホスト・コントローラ40は、メモリ管理ユニット、スレーブDMAコントローラ、割り込み制御ユニット、およびハードウェア構成レジスタを含むインターフェース44に接続されるメモリ・バス32のための接続を有する。インターフェース44はまた、制御および割り込み信号のための接続46、ならびにRAM構造をサポートするレジスタ48およびホスト・コントローラ40のオペレーショナル・レジスタをも有する。
【0015】
インターフェース44は、この好ましい実施形態ではデュアル・ポートRAMであるホスト・コントローラのオン・チップRAM50に接続され、データが同時にメモリに書き込まれたりメモリから読み出されたりすることができるようにするが、均等には、適当なアービタを備えたシングル・ポートRAMでもよい。メモリ50は、やはりUSBバス42のためのインターフェースを含む、ホスト・コントローラ論理ユニット52に接続される。制御信号は、レジスタ48から内部バス54によって論理ユニット52に送信されることができる。
【0016】
図3は、本発明による装置の動作方法を説明するために、ホスト・コントローラ40上で動作するソフトウェアを部分的に示す概略図である。
【0017】
ホスト・コントローラ40は、一般には通常のものである、USBドライバ・ソフトウェア80およびUSB拡張ホスト・コントローラ・インターフェース・ソフトウェア82を実行する。
【0018】
ホスト・コントローラ40はまた、データの送信先である全てのエンドポイントのための転送ベースの転送ディスクリプタのリストを準備するUSB EHCIインターフェース・ソフトウェア84も実行する。
【0019】
EHCIインターフェース・ソフトウェア84は、既存の周期的および非同期ヘッダのためにEHCIホスト・スタック82によって生成されたパラメータを使用するように書き込まれ、全ての様々な形のUSB転送、特に、高速アイソクロナス、バルク、割り込みおよび制御、ならびにスタート/ストップ分割トランザクションなどの高速USB転送のために使用されることができる。
【0020】
ホスト・マイクロプロセッサ20は、ホスト・コントローラ40がバス32をマスタすることを必要とせずに、周辺バス32を通して転送ベースの転送ディスクリプタをホスト・コントローラ40のRAM50に書き込む。言い換えれば、ホスト・コントローラ40は、スレーブとしてのみ働く。この場合、転送ベースの転送ディスクリプタは、ホスト・コントローラ40のRAM50にメモリマップされることができる。
【0021】
有利には、ホスト・コントローラ40のビルトイン・メモリ50は、ホスト・マイクロプロセッサ20にマップされ、トランザクションがホスト・マイクロプロセッサ20からスケジュールされることができる容易さを向上する。
【0022】
デュアル・ポートRAM50の使用は、1つの転送ベースの転送ディスクリプタがホスト・コントローラ40によって実行されている間に、ホスト・マイクロプロセッサ20がデータを別のブロック・スペースに書き込んでいることができることを意味する。
【0023】
前述のように、ホスト・コントローラ40は、USB2.0ホスト・コントローラであり、USB2.0仕様に定義されているハイスピード・バスを介してデータを転送することができる。しかし、ホスト・コントローラ40はまた、USB仕様に定義されているように、フル・スピード装置およびロー・スピード装置にデータを転送することもできる。詳細には、データは開始分割トランザクションおよび完了分割トランザクションを使用してハブを介して送信される。その場合、ハブは、ハイスピード・バスに接続されることができない機器のアイテムに接続されてもよい。
【0024】
本発明によれば、開始分割トランザクションおよび完了分割トランザクションは、単一の転送ディスクリプタによって処理される。さらに詳細には、単一の転送ディスクリプタは、ペイロード全体の転送のために、開始分割(SS)トランザクションと完了分割(CS)トランザクションの両方を処理することができる。ソフトウェアは、SS/CS転送ディスクリプタが、ハブ・アドレス、ポート番号、装置およびエンドポイント番号を備えたフル・スピード(FS)エンドポイントまたはロー・スピード(LS)エンドポイントのためのバルク/制御/ISO/割り込み転送かどうかを示しさえすればよい。
【0025】
バルク・トランザクションの場合、ハードウェアは、開始分割トランザクションを送達し、ハブからの確認通知(ACK)を待ち、次いで、このACKを使用して最初の開始分割トランザクションを完了分割トランザクションにリセットする。アクティブ転送ディスクリプタのための次の開始分割トランザクションおよび完了分割トランザクションは、転送ディスクリプタによって指定されたデータが全て送信または受信されてしまうまで、ハードウェアによってアクティブにされる。したがって、たとえば、ペイロードのサイズが256であり、最大パケットのサイズが64である場合、ハードウェアは、転送ディスクリプタに指定されているペイロード全体の転送をCPUの介入なしに完了するために、4組のSS/CSトランザクションを生成する。
【0026】
通常通り、開始分割転送および完了分割転送は、1つのマイクロフレームに関してアイソクロナス転送ディスクリプタおよび割り込み転送ディスクリプタが完了された後で、いつでも開始することができる。SS/CSトランザクションのさらなる詳細は、USB2.0仕様、たとえばセクション11.17に示されている。
【0027】
図4は、開始分割トランザクションおよび完了分割トランザクションによるバルク・データのハイ・スピード転送のための転送ディスクリプタの構造を示し、図5(図5aおよび5bに分割されている)は、図4に示された転送ディスクリプタの詳細な定義を示す。
【0028】
したがって、開始分割バルク転送および完了分割バルク転送に関する各転送ディスクリプタは、CPUの介入なしに、4KまでのデータをFS/LS装置に転送することができる。NAKが3つ続いた場合、ハードウェアはトランザクションを中止し、CPUに対する割り込み要求を生成する。ハードウェアによるエラーおよびNAK処理のための一般条件は、USB2.0仕様11.17による。
【0029】
図6は、開始分割トランザクションおよび完了分割トランザクションによるアイソクロナス・データのハイ・スピード転送のための転送ディスクリプタの構造を示し、図7(図7a、7b、7cおよび7dに分割されている)は、図6に示された転送ディスクリプタの詳細な定義を示す。
【0030】
したがって、アイソクロナス・エンドポイントに関する単一の開始分割および完了分割転送ディスクリプタは、装置に対する1Kまでのデータを処理することができる。
【0031】
図8は、開始分割トランザクションおよび完了分割トランザクションによる割り込みデータのハイ・スピード転送のための転送ディスクリプタの構造を示す。図8に示された転送ディスクリプタの詳細な定義は、パラメータMaxPacketSizeが使用されることを除いて、図7に示されたものと同じである。MaxPacketSizeはFS/LS装置のMPSである。さらに、送受信される総バイト数は、MPSより大きくてもよい。この場合、パラメータUframeはmsでのポーリング・レートである。送信する総(Total)バイト数を示すパラメータの値は、図7に示されている1023に制限されない。このパラメータはまた、バルク転送の開始分割のための1023にも制限されないことにも留意すべきである。
【0032】
転送ディスクリプタはまた、アクティブ・ビットの設定も可能にし、トランザクションが処理される特定のマイクロフレームを示す。したがって、US SS=0000 0001、US CS=0000 0100は、開始分割トランザクションにマイクロフレーム0で実行させ、完了分割トランザクションにマイクロフレーム2で実行させる。
【0033】
したがって、CPUの介入を必要とせずに分割トランザクションの実行を可能にする装置が記載される。
【図面の簡単な説明】
【0034】
【図1】本発明によるホスト・コントローラを組み込んだ電子機器のアイテムのブロック概略図である。
【図2】本発明によるホスト・コントローラのブロック概略図である。
【図3】図2のホスト・コントローラ内のソフトウェアの構造を示す図である。
【図4】本発明による第1転送ディスクリプタを示す図である。
【図5a】本発明による第1転送ディスクリプタを示す図である。
【図5b】本発明による第1転送ディスクリプタを示す図である。
【図6】本発明による第2転送ディスクリプタを示す図である。
【図7a】本発明による第2転送ディスクリプタを示す図である。
【図7b】本発明による第2転送ディスクリプタを示す図である。
【図7c】本発明による第2転送ディスクリプタを示す図である。
【図7d】本発明による第2転送ディスクリプタを示す図である。
【図8】本発明による第3転送ディスクリプタを示す図である。

【特許請求の範囲】
【請求項1】
トランザクション内のデータを転送するためのホスト・コントローラであって、各トランザクションは転送ディスクリプタによって記述され、前記トランザクションは分割トランザクションを含み、分割トランザクションのための前記転送ディスクリプタは、前記分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すように設定されてよいビットを含み、分割トランザクションを備えたトランザクションが第1分割トランザクションによって開始された後は、それに続く分割トランザクションが、該トランザクションが完了するまで自動的に生成される、ホスト・コントローラ。
【請求項2】
バルク分割トランザクションの場合、第1データは、転送ディスクリプタによって記述された第1分割トランザクションに従って転送され、前記転送ディスクリプタは、前記第1データが確認通知された場合、第2分割トランザクションを定義するように変更される、請求項1に記載のホスト・コントローラ。
【請求項3】
ホスト・マイクロプロセッサとシステム・メモリを相互接続するメモリ・バスへの接続のための第1インターフェースと、
内部メモリと、
外部バスへの接続のための第2インターフェースと
をさらに備える、請求項1または2に記載のホスト・コントローラ。
【請求項4】
トランザクション内のデータを転送するための方法であって、各トランザクションは転送ディスクリプタによって記述され、前記トランザクションは分割トランザクションを含み、
分割トランザクションを記述するために転送ディスクリプタを使用し、前記分割トランザクションが開始分割トランザクションか完了分割トランザクションかを示すために前記転送ディスクリプタ内にビットを設定すること、および
分割トランザクションを備えたトランザクションが第1分割トランザクションによって開始された後は、それに続く分割トランザクションを、該トランザクションが完了されるまで自動的に生成することを備える、方法。
【請求項5】
バルク分割トランザクションの場合、第1データは転送ディスクリプタによって記述された第1分割トランザクションに従って転送され、前記転送ディスクリプタは、前記第1データが確認通知された場合に第2分割トランザクションを定義するように変更される、請求項4に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5a】
image rotate

【図5b】
image rotate

【図6】
image rotate

【図7a】
image rotate

【図7b】
image rotate

【図7c】
image rotate

【図7d】
image rotate

【図8】
image rotate


【公表番号】特表2008−502976(P2008−502976A)
【公表日】平成20年1月31日(2008.1.31)
【国際特許分類】
【出願番号】特願2007−516102(P2007−516102)
【出願日】平成17年6月9日(2005.6.9)
【国際出願番号】PCT/IB2005/051888
【国際公開番号】WO2005/125093
【国際公開日】平成17年12月29日(2005.12.29)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】