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