(57)【要約】プロセッサ及び関連するシステムメモリを具えているＵＳＢに使用する組み込み型ホストコントローラは、ＤＭＡコントローラを具えており、前記ホストコントローラは、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をＤＭＡコントローラに送るように適合され、且つＤＭＡコントローラは、ホストコントローラから送られた開始アドレス及びブロック長の受信で、このＤＭＡコントローラが前記関連するシステムメモリから指示データを取り出すように適合される。このようにすることの利点は、ＰＣＩの機能性を利用できるようにしなくても、組み込み型ホストコントローラを種々のホストマイクロプロセッサで使用することができることにある。
2007502476.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及び関連するシステムメモリを具えているＵＳＢシステムに使用する組み込み型のホストコントローラであって：
-  ＤＭＡコントローラを具えており、
-  前記ホストコントローラは、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をＤＭＡコントローラに送るように適合され、且つ
-  ＤＭＡコントローラは、ホストコントローラから送られた開始アドレス及びブロック長の受信で、このＤＭＡコントローラが前記関連するシステムメモリから指示データを取り出すように適合される、組み込み型ホストコントローラ。
【請求項２】
前記ＤＭＡコントローラは、バスアクセスが許可されている際にのみ、プロセッサにバス要求を送って、関連するシステムメモリからデータを取り出すべく適合される、請求項１記載の組み込み型ホストコントローラ。
【請求項３】
前記ホストコントローラはプログラマブルレジスタを具え、このプログラマブルレジスタは、ホストコントローラがバスアクセス中にバスを占有できる最大クロックサイクル数を示している、プロセッサから受信した信号を格納すべく適合される、請求項２記載の組み込み型ホストコントローラ。
【請求項４】
前記ホストコントローラは、前記最大クロックサイクル数の満了でバスを釈放すべく適合される、請求項３記載の組み込み型ホストコントローラ。
【請求項５】
前記関連するシステムメモリはＳＤＲＡＭであり、且つ前記ホストコントローラはＳＤＲＡＭコントローラを具え、このＳＤＲＡＭコントローラは、関連するシステムメモリからの指示データの取り出しにＳＤＲＡＭのリフレッシュ期間よりも長い時間かかる場合に、リフレッシュ機能を果たすべく適合される、請求項１記載の組み込み型ホストコントローラ。
【請求項６】
前記ＤＭＡコントローラは、これが関連するシステムメモリから指示データを取り出している間、プロセッサに信号を送って、プロセッサが関連するシステムメモリに同時にアクセスするのを防ぐべく適合される、請求項１記載の組み込み型ホストコントローラ。
【請求項７】
-  バスアクセスを適えるべく適合されるプロセッサと；
-  該プロセッサがＵＳＢデータを書き込むシステムメモリと；
-  ホストコントローラと；
を具えているＵＳＢホストであって、前記ホストコントローラが：
-  ＤＭＡコントローラを具えており、
-  ブロック長をＤＭＡコントローラに送るように適合され、且つ
-  ＤＭＡコントローラは、ホストコントローラから送られた開始アドレス及びブロック長の受信で、このＤＭＡコントローラがバスアクセスを許可されている際にのみ、プロセッサにバス要求を送って、システムメモリからデータを取り出すべく適合される、ＵＳＢホスト。
【請求項８】
前記プロセッサは、ホストコントローラがバスアクセス中にバスを占有できる最大クロックサイクル数を示す最大期間信号をホストコントローラに送るべく適合され、且つホストコントローラはプログラマブルレジスタを具え、このプログラマブルレジスタは、プロセッサから受信した最大期間信号を格納すべく適合される、請求項７記載のＵＳＢホスト。
【請求項９】
前記ホストコントローラは、前記最大クロックサイクル数の満了でバスを釈放すべく適合される、請求項８記載のＵＳＢホスト。
【請求項１０】
前記関連するシステムメモリはＳＤＲＡＭであり、且つ前記ホストコントローラはＳＤＲＡＭコントローラを具え、このＳＤＲＡＭコントローラは、関連するシステムメモリからの指示データの取り出しにＳＤＲＡＭのリフレッシュ期間よりも長い時間かかる場合に、リフレッシュ機能を果たすべく適合される、請求項７記載のＵＳＢホスト。
【請求項１１】
-  システムメモリと；
-  プロセッサがＵＳＢデータを書き込むサブシステムメモリと；
-  ホストコントローラと；
を具えているＵＳＢホストであって、前記ホストコントローラが：
-  ＤＭＡコントローラを具えており、
-  ブロック長をＤＭＡコントローラに送るように適合され、且つ
-  このＤＭＡコントローラがサブシステムメモリから指示データを取り出すように適合され、
-  ＤＭＡコントローラはさらに、これがサブシステムメモリからデータを取り出している間、プロセッ
サに信号を送って、プロセッサがサブシステムメモリに同時にアクセスするのを防ぐべく適合される、ＵＳＢホスト。
【請求項１２】
前記ＤＭＡコントローラは、これが関連するシステムメモリからデータを取り出している間、プロセッサに信号を送って、プロセッサが、関連するシステムメモリに同時にアクセスするのを防ぐべく適合される、請求項１１記載のＵＳＢホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコントローラ、特に、バス通信システムに使用するホストコントローラに関する。
【０００２】
ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）仕様は、ＵＳＢホストを多数のＵＳＢデバイスに接続できるようにして、ＵＳＢホストとＵＳＢデバイスとの間でデータを首尾よく転送し得るようにするバス通信方式を規定している。本発明は特に、ＵＳＢホストとして作動するデバイスにおけるホストコントローラ用のインターフェースとして作用するエンハンスド・ホスト・コントローラ・インターフェース（ＥＨＣＩ: Enhanced Host Controller Interface）に関する。
【背景技術】
【０００３】
ＵＳＢホストは、代表的にはパーソナルコンピュータ（ＰＣ）又は同様なデバイスである。即ち、それは主として、ＰＣにＵＳＢホストとして作用させることのできる機能性を具備させたＰＣのことである。このことは、通常のＥＨＣＩは、このＥＨＣＩによって使用される特殊な機能性を提供するペリフェラル・コンポーネント・インターコネクト（ＰＣＩ: Peripheral Component Interconnect）標準バスが存在する状況にて作動することを意味している。例えば、ＥＨＣＩはＰＣＩのバスマスタリング機能性を利用して、送信すべきデータを取り出す。
【０００４】
しかしながら、例えば携帯電話のような他のデバイスをＵＳＢホストとして作動させることができるのが有用であることが認められつつある。これらの他のデバイスは一般にＰＣＩバスを有しておらず、このためにＥＨＣＩにＰＣＩの機能性を巧く利用させることができない。
【０００５】
さらに、斯様なデバイスにおけるホストマイクロプロセッサの処理能力は一般に、ＰＣにおけるマイクロプロセッサよりも劣る。
【発明の開示】
【０００６】
従って、ＰＣＩの機能性が見込まれず、しかもホストマイクロプロセッサでの要求が低減される埋め込み型のアプリケーションに使用するホストコントローラを提供するのが有利である
【０００７】
本発明の第１の態様によれば、プロセッサ及び関連するシステムメモリを具えているＵＳＢに使用する組み込み型のホストコントローラであって、該ホストコントローラがＤＭＡコントローラを具え、前記ホストコントローラは、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をＤＭＡコントローラに送るように適合され、且つＤＭＡコントローラは、ホストコントローラから送られた開始アドレス及びブロック長の受信でこのＤＭＡコントローラが前記関連するシステムメモリから指示データを取り出すように適合される、組み込み型ホストコントローラが提供される。
【０００８】
これによる利点は、ＰＣＩの機能性を利用可能にすることを見込まなくても、組み込み型ホストコントローラを種々のホストマイクロプロセッサと一緒に使用できることにある。
【０００９】
本発明の第１好適例では、ホストコントローラがバスアービトレーションを許可し、ＤＭＡコントローラは、バス要求をプロセッサに送って、バスアクセスが許可されている時にのみ関連するシステムメモリからデータを取り出すべく適合させる。
【００１０】
本発明の第２好適例では、ホストコントローラがバスアービトレーションを許可しないで、ＤＭＡコントローラは、このＤＭＡコントローラが関連するシステムメモリからデータを取り出している間はプロセッサに信号を送って、プロセッサが関連するシステムメモリに同時にアクセスするのを防ぐように適合させる。
【００１１】
本発明の第２態様によれば、前記本発明の第１態様によるホストコントローラを含むＵＳＢホストが提供される。
【００１２】
以下、本発明を添付の図面を参照して説明する。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明によるＵＳＢホスト１０の一部を示す概略ブロック図である。ＵＳＢホストとは、ここでは、例えばＵＳＢ2.0仕様に従って作動するシステムにてホストとして作動するデバイスを意味するために用いられる。即ち、ＵＳＢホストは、ＵＳＢバスによって１つ以上のＵＳＢデバイスに接続することができ、ＵＳＢホストはＵＳＢデバイスへの、及びＵＳＢデバイスからのデータの通信を制御する。
【００１４】
本発明はあらゆるＵＳＢホストに適用できるが、特に、ＵＳＢホストがパーソナルコンピュータではなく、従ってそれがペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを有しておらず、特にパワフルなプロセッサを持つことができない状況に適用することができる。
【００１５】
ＵＳＢホスト１０はホストプロセッサ２０、システムメモリ３０及びホストコントローラ４０を有している。
【００１６】
本発明のこの好適例におけるプロセッサ２０は、当業者に良く知られているような、Intel社のPXA210又はPXA250プロセッサとする。同様な機能を有している他のプロセッサを使用することもできることは勿論である。プロセッサ２０は、汎用入−出力（ＧＰＩＯ：General Purpose Input-Output）ブロック２２及びメモリコントローラ２４を具えている。プロセッサ２０の他の要部及び機能については、本発明の理解に関連すること以外は説明を省略する。
【００１７】
メモリ３０も当業者には良く知られているＳＤＲＡＭバンクとする。
【００１８】
慣例のように、ホストコントローラ、即ち埋め込み型ＥＨＣIホスト４０は、プロセッサ２０によって用立てられるデータを適切なフォーマットで取り出して、そのデータをバスインターフェースによって送信すべく適合される。ＵＳＢ通信には、２つのカテゴリのデータ転送、即ち、非同期転送と周期転送とがある。制御及びバルクデータは非同期転送を用いて送信され、ＩＳＯ及び割込みデータは周期転送を用いて送信される。エンハンスド・ホスト・コントローラ・インターフェース（ＥＨＣI）は、非同期転送用に待ち行列トンザクション記述子（ｑＴＤ：Queue Transaction Descriptor）データ構造を用い、周期転送用に等時性トランザクション記述子（ｉＴＤ：Isochronous Transaction Descriptor）データ構造を用いる。
【００１９】
プロセッサ２０はデータを適切な構造に用立て、そのデータをシステムメモリ３０に格納し、そしてホストコントローラ４０はシステムメモリ３０からデータを取り出さなければならない。
【００２０】
図1にはホストコントローラ４０の構成を多少詳しく示してある。ホストコントローラ４０はＥＨＣIコア４２を具えており、これは一般に慣例のものであり、ケイパビリティ・レジスタ４４及びオペレーショナル・レジスタ４６を含むが、ここではＥＨＣIコア４２についてのさらなる説明発明は省略する。ＥＨＣIコア４２はアドレスデコーダ４８に接続され、このデコーダも一般に慣例のものである。
【００２１】
ＥＨＣＩコア４２の内部のケイパビリティ・レジスタ４４及びオペレーショナル・レジスタ４６は、ダイレクト入/出力マップとして作成することができ、プロセッサ２０からのＣＳ信号を用いて、埋め込み型ホストコントローラを選択することができる。
【００２２】
本発明によれば、ホストコントローラ４０がＤＭＡ/バス・マスター・エンジン５０を具え、プロセッサ２０に何らかの形態のバス仲裁をさせる場合に、そのエンジン５０を適合させる。
【００２３】
ホストコントローラ４０のＥＨＣＩコア４２は、慣例のＥＨＣＩホストコントローラに用いられるのと同じ転送記述子を用い、ＰＣＩバスをマスタリングすることによってデータを取り出すのであり、従ってＥＨＣＩコアのソフトウェアを生成するのに必要とされる追加の努力が軽減される。
【００２４】
ＤＭＡ/バス・マスター・エンジン５０は、ＳＤＲＡＭコントローラ５２及びダイレクト・メモリ・アクセス（ＤＭＡ）マスター・エンジン５４を含み、これはＥＨＣＩコア４２によって開始アアドレス５６及びブロック長５８でプログラムすることができる。
【００２５】
ＤＭＡ/バス・マスター・エンジン５０は、プログラマブル・バス・リリース・ブロック６０からの入力を受け取ることもできる。
【００２６】
ホストコントローラ４０はさらにＲＡＭ６２も具えている。
【００２７】
ホストコントローラ４０は、ＧＰＩＯブロック２２への又はそれからのダイレクト入力端又は出力端を介してプロセッサ２０にアクセスすることができ、且つ埋め込み型システムメモリバス７０にアクセスすることができる。
【００２８】
ホストコントローラ４０がシステムメモリ３０からデータを取り出す際には、プロセッサ２０がバス７０を釈放して、ホストコントローラ４０がシステムメモリ３０にアクセスできるようにしなければならない。
【００２９】
従って、ホストコントローラ４０がデータの転送を初期化する際には、開始アドレス及びブロック長をコアロジック４２からＤＭＡコントローラ５４に送って、このＤＭＡコントローラ５４がＧＰＩＯブロック２２にバス要求を送出する。そして、ＧＰＩＯブロック２２がメモリバス要求（ＭＢＲＥＱ）信号をメモリコントローラ２４に送る。アクセスが許されると、メモリバス許可（ＭＢＧＮＴ）信号がメモリコントローラ２４からＧＰＩＯブロック２２に送られ、このＧＰＩＯブロック２２が、対応する信号をホストコントローラ４０に送る。この場合に、バス７０のデータ、アドレス及び制御信号のラインはいずれも、ホストコントローラ４０がメモリ３０にアクセスできるように、３状態を取る（tri-stated）。この場合、データは、プロセッサ２０からのさらなる介入を必要とすることなく、システムメモリ３０からホストコントローラ４０へと転送される。
【００３０】
特に、ＤＭＡコントローラ５４は、システムメモリ３０からのデータのブロックをＲＡＭ６２にバーストし、そのデータブロックをＲＡＭ６２からＵＳＢバスインターフェースを介して送信することができる。
【００３１】
ＳＤＲＡＭコントローラ５２は、バス７０がホストコントローラ４０に許可されている時間中リフレッシュ機能を提供する。即ち、バーストのサイクル/長さがＳＤＲＡＭ３０のリフレッシュ期間よりも長くなる場合に、ＳＤＲＡＭコントローラ５２はリフレッシュ機能を果たす。このことは、バースト長をリフレッシュ期間に限定する必要がないことを意味する。リフレッシュ機能を行わせるＳＤＲＡＭコントローラ５２がないと、プロセッサ２０にリフレッシュ機能を行わせるためにバスの利用をプロセッサ２０に戻す必要がある。
【００３２】
プログラマブル・バス・リリース・ブロック６０は、プロセッサ２０によって多数のクロックサイクルでプログラムすることができ、このブロックは、ホストコントローラ４０が単一のメモリバスへのアクセスを許可されるバス７０を占有できるクロックサイクル数を設定する。従って、プログラムしたクロックサイクル数はバスアクセスの最大期間を示す。このプログラムしたクロックサイクル数が一旦満了すると、ホストコントローラ４０はＤＭＡコントローラ５４によって最新のデータワードを転送し、そしてデ-アサーション（de-assertion）バス要求によってバス７０を釈放する。
【００３３】
これは、ホストコントローラがバス７０を長い間占有して、プロセッサ２０に重要なタスクをさせなくすることを防ぎ、従って、プロセッサ２０とホストコントローラ４０との間のバス利用効率のバランスが良くなる。
【００３４】
このように、図1はプロセッサ２０が或る形態のバス仲裁を行って、そのデータバスを釈放させる場合に適用することができる。これに反して、図2は、プロセッサがバス仲裁を行わない場合に適用できるアーキテクチャを示す。
【００３５】
ＵＳＢホスト１１０はホストプロセッサ１２０、システムメモリ１３０及びホストコントローラ１４０を有している。
【００３６】
この場合のプロセッサ１２０は、バス仲裁を行わないタイプのものである。プロセッサ１２０の要部及び機能については、本発明の理解にとって関係するものを除いて、ここではさらには説明しない。
【００３７】
メモリ１３０はＳＤＲＡＭバンクとするが、これも当業者には良く知られている。
【００３８】
慣例のように、ホストコントローラ、即ち埋め込み型ＥＨＣＬホスト１４０は、プロセッサ１２０によって用立てられるデータを適切なフォーマットにて取り出して、そのデータをバスインターフェースによって送信すべく適合される。ＵＳＢ通信には、データ転送に2つのカテゴリ、即ち、非同期転送と周期転送とがある。制御及びバルクデータは非同期転送を用いて送信され、ＩＳＯ及び割込みデータは周期転送を用いて送信される。エンハンスド・ホスト・コントローラ・インターフェース（ＥＨＣＬ）は、非同期転送用に待ち行列トンザクション記述子（ｑＴＤ）データ構造を用い、周期転送用に等時性トランザクション記述子（ｉＴＤ）を用いる。
【００３９】
この場合、ＵＳＢホスト１１０はさらに、サブシステムメモリ１８０を具えている。プロセッサ１２０はデータを適切な構造に用立て、そのデータをサブシステムメモリ１８０に格納し、この場合、ホストコントローラ１４０はサブシステムメモリ１８０からデータを取り出さなければならない。
【００４０】
このことは、データをシステムメモリ１３０の代わりに、サブシステムメモリ１８０に向けることを除いて、プロセッサ１２０で実行させるソフトウェアスタックは、データをシステムメモリ１３０に格納させる場合と左程変えなくて済むと云うことを意味する。
【００４１】
図2には、ホストコントローラ１４０の構成を多少詳しく示してある。ホストコントローラ１４０はＥＨＣＩコア１４２を具えており、これは一般に慣例のものであり、ケイパビリティ・レジスタ及びオペレーショナル・レジスタ１４４を含み、ここではそれ以外のものについては記述しないようにする。ホストコントローラ１４０はアドレスデコーダ１４８に接続され、これも一般に慣例のものである。
【００４２】
本発明によれば、ホストコントローラ１４０がＤＭＡコントローラ１５０を具え、これを図2ではバスアービターと一緒に単一のブロック内に示してある。
【００４３】
ＤＭＡコントローラ１５０はＳＤＲＡＭコントローラ１５２に接続され、このＤＭＡコントローラ１５０はＥＨＣＩコア１４２によって開始アドレス１５６とブロック長１５８とでプログラムすることができる。
【００４４】
ホストコントローラ１４０のＥＨＣＩコア１４２は、従来のＥＨＣＩホストコントローラに用いられるのと同じ転送子を用い、ＰＣＩバスをマスタリングすることによってデータを取り出すのであり、従ってＥＨＣＩコアのソフトウェアを生成するのに必要とされる追加の努力が軽減される。
【００４５】
ＥＨＣＩコア１４２はさらに、ＲＡＭ形態の共用メモリ１６２も具えている。
【００４６】
従って、ホストコントローラ１４０がデータの転送を初期化する際には、開始アドレス及びブロック長がコアロジック１４２からＤＭＡコントローラ１５０に送られ、このＤＭＡコントローラ１５０がサブシステムメモリ１８０からＲＡＭ１６２へのバーストデータの転送を初期化することができて、ＲＡＭ１６２からデータをＵＳＢバスインターフェースによって送信することができる。
【００４７】
プロセッサ１２０は、ホストコントローラ１４０がサブシステムメモリ１８０にアクセスしているのと同じ時間にサブシステムメモリ１８０にアクセスすることがあり得るため、競合を回避し得るようにする必要がある。
【００４８】
そこで、ホストコントローラ１４０がサブシステムメモリ１８０にアクセスしている時には、ＤＭＡコントローラ１５０におけるバスアービターが作動可能（Ready）信号をプロセッサ１２０に送って、プロセッサ１２０がサブシステムメモリ１８０にアクセスするのを、ホストコントローラのアクセスが完了するまで遅延させるようにする。
【００４９】
ＵＳＢホストにはさらに、ホストコントローラ１４０、サブシステムメモリ１８０及びシステムメモリ１３０に接続される外部データバス・トライ-ステート（tri-state）トランシーバ１９０も設けられている。プロセッサ１２０がサブシステムメモリ１８０にアクセスしていない時には、データバストランシーバ１９０が３状態を取り、サブシステムメモリ１８０にアクセスしているホストコントローラ１４０がシステムメモリ１３０に影響を及ぼさなくなる。これはプロセッサ１２０からのチップ選択信号と制御信号との組み合わせによって制御することができる。
【００５０】
このように、図２は、図１のアーキテクチャに比べて追加の大きなサブシステムメモリを必要とするアーキテクチャを示しているも、プロセッサにバス仲介をサポートさせる必要がないから、広範囲のプロセッサを使用することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明による第１の埋め込み型ホストコントローラを具えているシステムの概略ブロック図である。
【図２】本発明による第２の埋め込み型ホストコントローラを具えているシステムの概略ブロック図である。
【図１】
2007502476.tif 000003
【図２】
2007502476.tif 000004
【国際調査報告】
2007502476.tif 000005
2007502476.tif 000006