(57)【要約】  USBホストとして動作する電子デバイスが、互いにメモリバスで接続される、組み込みプロセッサとシステムメモリとを備える。バスコントローラ集積回路は、システムメモリを支配する必要はない代わりに、純粋にスレーブとして機能する。そして、組み込みプロセッサは、ホストコントローラ集積回路に転送ベースのトランザクションの形式でデータを書き込むことに適応する。
2007501472.tif 000002
【特許請求の範囲】
【請求項１】
ホストマイクロプロセッサとシステムメモリとを備えるバス通信デバイスにおいて使用するホストコントローラであって、
前記ホストマイクロプロセッサと前記システムメモリとを接続するメモリバスにおいて該ホストコントローラがスレーブとしてのみ動作するような、該メモリバスへの接続に用いる第１のインタフェースと、
前記第１のインタフェースを介して受信する転送ベースの転送ディスクリプタを複数格納する内部メモリと、
外部バスへの接続に用いる第２のインタフェースとを有し、
前記ホストコントローラは、
格納された転送ベースの転送ディスクリプタを実行し、
実行に際し、前記格納された転送ベースの転送ディスクリプタの内容を更新し、
前記更新された転送ベースの転送ディスクリプタを前記システムメモリにコピーすることを特徴とするホストコントローラ。
【請求項２】
前記内部メモリは、デュアルポートRAMであることを特徴とする請求項１に記載のホストコントローラ。
【請求項３】
前記内部メモリは、シングルポートRAMであり、前記ホストコントローラは、更に、前記RAMに対するデータの書き込み及び読み出しが本質的に同時に行われることを可能にするアービタを有することを特徴とする請求項１に記載のホストコントローラ。
【請求項４】
前記内部メモリは、２つの部分に分割され、第１の部分に転送ベースの転送ディスクリプタヘッダを格納し、第２の部分に転送ベースの転送ディスクリプタのペイロードデータを格納することを特徴とする請求項１に記載のホストコントローラ。
【請求項５】
前記内部メモリの前記第１の部分は、更に２つの下位部分に分割され、第１の下位部分に周期転送に関する転送ディスクリプタヘッダを格納し、第２の下位部分に非同期転送に関する転送ディスクリプタヘッダを格納することを特徴とする請求項４に記載のホストコントローラ。
【請求項６】
前記ホストコントローラは、マイクロフレーム毎に１度、前記内部メモリの前記第１の下位部分をスキャンし、各マイクロフレームの間中連続的に、前記第２の下位部分をスキャンすることを特徴とする請求項５に記載のホストコントローラ。
【請求項７】
前記ホストコントローラは、USBホストコントローラであり、前記第２のインタフェースは、USBバスインタフェースであることを特徴とする請求項１に記載のホストコントローラ。
【請求項８】
前記内部メモリは、転送ディスクリプタの複数のマイクロフレームを格納し、前記ホストマイクロプロセッサからの介入なしに、前記格納された転送ディスクリプタを実行することを特徴とする請求項１に記載のホストコントローラ。
【請求項９】
転送ディスクリプタの前記複数のマイクロフレームはそれぞれ、イソクロナス転送、インタラプト転送、バルクデータ転送のうちの１つ又は複数に関連するペイロードデータを格納してよいことを特徴とする請求項８に記載のホストコントローラ。
【請求項１０】
ホストマイクロプロセッサと、
システムメモリと、
前記ホストマイクロプロセッサと前記システムメモリとを接続するメモリバスと、
ホストコントローラとを有するバス通信デバイスであって、
前記ホストマイクロプロセッサは、転送ベースの転送ディスクリプタを形成し、前記転送ベースの転送ディスクリプタを前記システムメモリ及び前記ホストコントローラへ書き込み、
前記ホストコントローラは、
前記メモリバスにおいて該ホストコントローラがスレーブとしてのみ動作するような、前記メモリバスへの接続に用いる第１のインタフェースと、
前記第１のインタフェースを介して受信する転送ベースの転送ディスクリプタを複数格納する内部メモリと、
外部バスへの接続に用いる第２のインタフェースとを備え、
前記ホストコントローラは、
格納された転送ベースの転送ディスクリプタを実行し、
実行に際し、前記格納された転送ベースの転送ディスクリプタの内容を更新し、
前記更新された転送ベースの転送ディスクリプタを前記システムメモリにコピーすることを特徴とするバス通信デバイス。
【請求項１１】
前記ホストコントローラの前記第２のインタフェースは、USBバスインタフェースであり、前記バス通信デバイスは、USBホストとして動作することを特徴とする請求項１０に記載のバス通信デバイス。
【請求項１２】
前記ホストマイクロプロセッサは、複数のマイクロフレームの転送ディスクリプタを前記システムメモリ及び前記ホストコントローラに書き込み、前記ホストコントローラは、前記ホストマイクロプロセッサからの介入なしに、前記複数のマイクロフレームの転送ディスクリプタを実行することを特徴とする請求項１０に記載のバス通信デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステム、特にバスコントローラ、及びバスコントローラを搭載するデバイスに関する。
【０００２】
また特に、本発明は電子デバイスの演算効率を改善するために、電子デバイスにおいてホストコントローラとして使用可能な集積回路に関連する。
【背景技術】
【０００３】
USBホストとして動作する従来の電子デバイスにおいて、プロセッサはデータをシステムメモリに書き込むことができる。ホストコントローラ集積回路は、それから、システムメモリに書き込まれたデータを直接読み出す。これを可能とするためには、ホストコントローラはシステムメモリを支配する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、システムメモリはホストコントローラ集積回路とシステムプロセッサとで共有されるため、ホストコントローラがシステムメモリを支配するには、システムプロセッサに特有な、バスマスタを使用する必要がある。更に、ホストコントローラがシステムメモリを支配する間、システムプロセッサの制御下で動作する、そのデバイスの根幹機能が中断される恐れがある。
【課題を解決するための手段】
【０００５】
本発明の側面によれば、ホストコントローラ集積回路はシステムメモリを支配することはできないが、その代わりに純粋にスレーブとして動作する。そして、組み込みプロセッサは、ホストコントローラ集積回路に転送ベースのトランザクションの形式でデータを書き込むことに適応する。
【発明を実施するための最良の形態】
【０００６】
図１は、USBホストとして動作する電子デバイス１０において関連する部分を示すブロック概略図である。本発明は、パーソナルコンピュータ(PC)よりむしろ、携帯電話やPDAのような、マイクロプロセッサやシステムメモリの機能的な制限がより重要な意味を持つデバイスに特に適用可能である。しかしながら、本発明はUSBホストとして動作可能ないかなるデバイスに対しても適用することができる。
【０００７】
本発明の理解には不要であるため図１では図示省略されているが、デバイス１０は、多くの機能を備えていてもよいことは明らかである。
【０００８】
デバイス１０は、ホストマイクロプロセッサ２０を備える。ホストマイクロプロセッサ２０は、LCDコントローラ２４、DMAマスタ２５、及びメモリコントローラ２６に、標準的なシステムバス２３で接続されるプロセッサコア２２を含む。メモリコントローラ２６は、システムメモリ３０とペリフェラルバス３２を介して接続される。
【０００９】
ホストコントローラ４０もまた、ホストマイクロプロセッサ２０とシステムメモリ３０とに、ペリフェラルバス３２即ちメモリバスを介して接続される。ホストコントローラ４０は、USBバス４２へのインタフェースを含み、そのインタフェースを介して複数のUSBデバイスに接続されることができる。図示される実施形態では、ホストコントローラ４０はUSB２．０のホストコントローラである。
【００１０】
従来技術と同様に、ホストコントローラ４０は、プロセッサ２０により適切なフォーマットで準備されるデータを読み出し、バスインタフェースを介してデータを転送することに適応する。USB通信では、データ転送には２種類のカテゴリ、即ち非同期転送と周期転送が存在する。コントロールデータとバルクデータとは非同期転送を使用して送信され、ＩＳＯデータとインタラプトデータとは周期転送を使用して送信される。キュートランザクションディスクリプタ(qTD)データ構造が非同期転送に対して使用され、イソクロナストランザクションディスクリプタ(iTD)データ構造が周期転送に対して使用される。
【００１１】
プロセッサ２０は、適切な構造でデータを用意し、それをシステムメモリ３０に格納する。すると、ホストコントローラ４０は、システムメモリ３０からデータを取得しなければならないことになる。
【００１２】
図２は、組み込まれたUSBホストコントローラ４０の構造をより詳細に示す図である。
【００１３】
上述したように、ホストコントローラ４０はメモリバス３２に対する接続を持ち、それはメモリマップト・インプット／アウトプット、メモリ管理ユニット、及びスレーブDMAコントローラを含むインタフェース４４に接続される。インタフェース４４は、また、コントロール信号及びインタラプト信号への接続４６と、RAM構造とホストコントローラ４０で使用可能なレジスタとをサポートするレジスタ４８を含む。
【００１４】
インタフェース４４は、ホストコントローラのオンチップRAM５０に接続される。後に詳述されるように、オンチップRAMは、この好ましい実施形態ではデュアルポートRAMである。メモリ５０は、USBバス４２へのインタフェースを備えるホストコントローラ論理ユニット５２に接続される。コントロール信号は、内部バス５４を介してレジスタ４８から論理ユニット５２へ送信されることができる。
【００１５】
上述したように、この場合オンチップメモリ５０はデュアルポートRAMであるため、メモリへのデータの書き込み及びメモリからのデータの読み出しを同時に行うことができる。
【００１６】
図３は、本発明の別の実施形態を示す図であり、図２と同じ機能を示す箇所には同じ参照番号が振られている。この場合、オンチップメモリ５６は、シングルポートRAMであり、メモリ５６に書き込まれるデータ及びメモリ５６から読み出されるデータは、アービタ５８を介して転送される。この場合でも、メモリ５６に対する効率的な同時アクセスを実現することが可能である。
【００１７】
図４は、オンチップメモリの構造を示す図である。図４に示される構造に関する限り、オンチップメモリが、図２に示されるようなデュアルポートRAM５０であるか、図３に示されるようなシングルポートRAM５６であるかは関係がない。
【００１８】
図４に示されるように、RAMは事実上２つの部分に分割される。即ち、第１の部分７０は、格納された転送ディスクリプタTD1、TD2、…、TDnに対するヘッダ情報とステータス情報とを含み、更に、第１の部分自身は、非同期（バルク）転送に関連する部分７２と周期（イソクロナス及びインタラプト）転送に関連する部分７４とに細分割される。第２の部分７６は、格納された転送ディスクリプタTD1、TD2、…、TDnに対するペイロードデータを含む。
【００１９】
RAMのこの構造は、ホストマイクロプロセッサ２０がすべての転送ディスクリプタヘッダを一緒に書き込み、そして読み出すことを容易に行うことができるという利点を持つ。この構造は、非同期転送に関連するヘッダがマイクロフレームの間中連続的にスキャンされる一方で、周期転送に関連するヘッダは各マイクロフレームで１度だけスキャンされることを容易にする。
【００２０】
これは、トランザクション間の時間が短く、そして同様に重要なことであるが、あるトランザクションから別のトランザクションまでに一貫性があることを意味する。
【００２１】
図５は、本発明によるデバイスの動作方法を説明するために、ホストコントローラ４０で動作するソフトウェアの一部を示す概略図である。
【００２２】
ホストコントローラ４０では、一般的な既存技術である、USBドライバソフトウェア８０とUSBエンハンストホストコントローラインタフェース(Enhanced Host Controller Interface)ソフトウェア８２とが稼動している。
【００２３】
しかしながら本発明によれば、ホストコントローラ４０はまたUSB EHCIインタフェースソフトウェア８４を稼動し、データが転送されるエンドポイント毎に転送ベースの転送ディスクリプタのリストを準備する。
【００２４】
EHCIインタフェースソフトウェア８４は、現存する周期ヘッダ及び非同期ヘッダ用にEHCIホストスタック８２により生成されるパラメータを使用するように、そして、USB転送のすべての異なる形態、特に、ハイスピードイソクロナス転送、ハイスピードバルク転送、ハイスピードインタラプト転送、ハイスピードコントロール転送といった高速USB転送やスプリットトランザクションの開始／停止に対して使用することができるように書かれる。
【００２５】
ホストマイクロプロセッサ２０は、ホストコントローラ４０にバス３２の支配を要求することなく、ペリフェラルバス３２を介して、ホストコントローラ４０のRAM５０又は５６に転送ベースの転送ディスクリプタを書き込む。言い換えれば、ホストコントローラ４０は単にスレーブとして機能する。そして、転送ベースの転送ディスクリプタは、ホストコントローラ４０のRAM５０又は５６にメモリマップされることができる。
【００２６】
より有利には、トランザクションがホストマイクロプロセッサ２０からスケジュールされることを容易にするために、ホストコントローラ４０に組み込まれたメモリ５０又は５６がホストマイクロプロセッサ２０にマップされていてもよい。
【００２７】
更に、上述したように、デュアルポートRAM５０又はアービタ５８付きのシングルポートRAM５６を使用することは、ある転送ベースの転送ディスクリプタがホストコントローラ４０により実行されている間、ホストマイクロプロセッサ２０が他のブロックスペースにデータを書き込むことができることを意味する。
【００２８】
図６は、データがホストコントローラ４０からUSBバス４２を介して転送される際に使用される、あるUSBフレームのフォーマットが、複数のマイクロフレームに分割された状態を示す図である。従来技術と同様に、種々の転送タイプのトランザクションを含む複数のトランザクションが、１つのマイクロフレーム内で送信されてよい。また、従来技術と同様に、ハイスピードイソクロナス転送は常に先頭であり、以下、ハイスピードインタラプト転送、フルスピード及ロウスピードのスタートスプリット転送及びコンプリートスプリット転送と続き、ハイスピードバルクデータがマイクロフレームの残り時間を占める。
【００２９】
転送ベースのプロトコルを使えば、ホストマイクロプロセッサ２０は、（RAMが転送データを保存できるだけの容量があることを前提として）ホストコントローラのRAM５０又は５６に１msフレーム分のデータを書き込むことができ、ホストマイクロプロセッサからの更なる介入なしにUSBバス４２を介してこのデータが転送されるようにすることができる。
【００３０】
図７は、高速USB送信をサポートする転送ベースのプロトコルを説明する図であり、図７aは、そのプロトコルに対応して用いられる、あるエンドポイントに対する転送ベースの転送ディスクリプタにおけるヘッダ（１６バイト）のフォーマットである。図７bと図７cは、ヘッダフィールドの内容を説明するものである。転送ベースのプロトコルに用いられるヘッダは、既存のUSB EHCIソフトウェアと同様の定義を持つパラメータから構成されるため、転送ディスクリプタを簡単に構築することができる。
【００３１】
転送ベースのプロトコルは、各USBのエンドポイントに対してデータが公平に送信されることを確実にする。
【００３２】
図８には、第１の転送ディスクリプタTD1に対応付けられたペイロードデータが、それぞれ６４バイトのパケット３つ(PL1、PL2、PL3)に分割された状態が示される。第２の転送ディスクリプタTD2に対応付けられたペイロードデータは、３２バイトのパケット１つ(PL1)のみを含む。第３の転送ディスクリプタTD3に対応付けられたペイロードデータは、それぞれ８バイトのパケット２つ(PL1、PL2)に分割される。第４の転送ディスクリプタTD4に対応付けられたペイロードデータは、それぞれ１６バイトのパケット４つ(PL1、PL2、PL3、PL4)に分割される。
【００３３】
図９は、データに含まれるこれらのパケットが、RAM５０又は５６から、ホストに接続された各デバイスにおけるそれぞれのエンドポイントへ転送される方法を説明する図である。
【００３４】
図８における矢印９０により示されるように、循環的なプロセスが生じる。最初に、ステップ９１では、第１の転送ディスクリプタTD1に対応付けられた最初のパケットPL1が転送される。転送ディスクリプタにはハイ(High)にセットされたアクティブフラグが含まれ、この転送ディスクリプタに対応付けられたデータがまだ残されていることを示す。
【００３５】
次に、ステップ９２では、第２の転送ディスクリプタTD2に対応付けられた最初のパケットPL1が転送される。この転送ディスクリプタは、今度は、ホストコントローラ４０によりロウ(low)にセットされたアクティブフラグを含み、第２の転送ディスクリプタTD2に対応付けられたペイロードデータの転送が完了したことを示す。
【００３６】
続いて、ステップ９３と９４において、第３、第４の転送ディスクリプタTD3、TD4に対応付けられたペイロードデータにおけるそれぞれの最初のパケットPL1が転送される。ここでも、これらの転送ディスクリプタはそれぞれ、ハイにセットされたアクティブフラグを含み、各転送ディスクリプタに対応付けられたペイロードデータのうちまだ転送されずに残されているものがあることを示す。
【００３７】
そして、ステップ９５においては、第１の転送ディスクリプタTD1に対応付けられたペイロードデータの２番目のパケットPL2が転送される。アクティブフラグはハイのままであるが、これは、第１の転送ディスクリプタに対応付けられたペイロードデータのいくつかがまだ転送されずに残されているためである。
【００３８】
第２の転送ディスクリプタTD2に対応付けられたペイロードデータの転送は完了しており、ステップ９６では、第３の転送ディスクリプタTD3に対応付けられたペイロードデータの２番目のパケットPL2が転送される。このとき、この転送ディスクリプタにおけるアクティブフラグはロウにセットされ、第３の転送ディスクリプタTD3に対応付けられたペイロードデータの転送が完了したことを示す。
【００３９】
ステップ９７においては、第４の転送ディスクリプタTD4に対応付けられたペイロードデータの２番目のパケットPL2が転送される。アクティブフラグはハイのままである。
【００４０】
ステップ９８では、第１の転送ディスクリプタTD1に対応付けられたペイロードデータの３番目のパケットPL3が転送される。アクティブフラグはロウにセットされ、第１の転送ディスクリプタに対応付けられたペイロードデータの転送が完了したことを示す。
【００４１】
ステップ９９及び１００においては、第４の転送ディスクリプタTD4に対応付けられたペイロードデータの３番目、４番目のパケットPL3、PL4が転送される。アクティブフラグはステップ１００でロウにセットされ、第４の転送ディスクリプタTD4に対応付けられたペイロードデータの転送が完了したことを示す。
【００４２】
転送ベースの転送ディスクリプタの実行中、転送ベースの転送ディスクリプタの内容はホストコントローラ論理ユニット５２により更新される。例えば、転送ディスクリプタヘッダにあるアクティブフラグは、その転送ディスクリプタに対応付けられたペイロードデータの転送が完了したとき、ロウにセットされる。USB EHCIインタフェースソフトウェア８４は、それから、更新された転送ベースの転送ディスクリプタを既存のEHCIホストスタック８２により処理可能なフォーマットに再構築する。更新された転送ベースの転送ディスクリプタはシステムメモリ３０にコピーされる。
【００４３】
こうして、高速USBホスト機能を特に非PCベースのシステムに組み込むことを可能にするホストコントローラが提供されることになる。
【図面の簡単な説明】
【００４４】
【図１】本発明の側面に対応するUSBホストのブロック概略図である。
【図２】本発明の別の側面に対応するホストコントローラのブロック概略図である。
【図３】本発明の側面に対応するホストコントローラの別の形態を示すブロック概略図である。
【図４】図２又は図３のホストコントローラにおけるメモリの構造を説明する図である。
【図５】図１のデバイスにおけるソフトウェアの構成を説明する図である。
【図６】ホストのマイクロプロセッサからホストコントローラに書き込まれるデータフォーマットを説明する図である。
【図７ａ】データと共に転送される、転送記述ヘッダの構造を示す図である。
【図７ｂ】データと共に転送される、転送記述ヘッダの構造を示す図である。
【図７ｃ（１）】データと共に転送される、転送記述ヘッダの構造を示す図である。
【図７ｃ（２）】データと共に転送される、転送記述ヘッダの構造を示す図である。
【図７ｃ（３）】データと共に転送される、転送記述ヘッダの構造を示す図である。
【図８】図４のメモリに格納される、転送データを説明する概略図である。
【図９】図８のデータの転送方法を説明する図である。
【図１】
2007501472.tif 000003
【図２】
2007501472.tif 000004
【図３】
2007501472.tif 000005
【図４】
2007501472.tif 000006
【図５】
2007501472.tif 000007
【図６】
2007501472.tif 000008
【図７ａ】
2007501472.tif 000009
【図７ｂ】
2007501472.tif 000010
【図７ｃ（１）】
2007501472.tif 000011
【図７ｃ（２）】
2007501472.tif 000012
【図７ｃ（３）】
2007501472.tif 000013
【図８】
2007501472.tif 000014
【図９】
2007501472.tif 000015
【国際調査報告】
2007501472.tif 000016
2007501472.tif 000017
2007501472.tif 000018
2007501472.tif 000019