(57)【要約】  バスシステムのバスコントローラが、時間フレーム毎に保証された送受信容量にそれぞれ対応し又は対応しない等時性のメッセージと非等時性のメッセージに対応する。前記システムは、プロセッサとバスコントローラとの間での等時性のメッセージからのデータの交換のための第１と第２のメモリ区分を有する。時間フレームのうちの第１のものと第２のものを交替する際に、バスコントローラはプロセッサより大きいアクセス優先度を有する。バスコントローラは、それぞれ時間フレームの第１と第２のものにおいて、バス媒体と第１と第２のメモリ区分との間で等時性のメッセージからのデータを転送する。プロセッサは、それぞれ時間フレームの第１と第２のものにおいて、バスコントローラより大きい第１と第２のメモリ区分へのアクセス優先度を有する。前記システムは、非等時性のメッセージからのデータの交換のための第３のメモリ区分を有し、第３のメモリ区分へのプロセッサとバスコントローラの相対的なアクセス優先度は、全ての時間フレームにおいて変換しない。
2005512193.tif 000002
【特許請求の範囲】
【請求項１】
−バス媒体と、
−連続的な時間フレームで前記バス媒体を介してメッセージを送信及び／又は受信するように構成されたバスコントローラであって、
バスシステムが時間フレーム毎に保証された送受信容量にそれぞれ対応し又は対応しない等時性のメッセージと非等時性のメッセージに対応するバスコントローラと、
−プロセッサと、
−前記プロセッサと前記バスコントローラとの間での等時性のメッセージからのデータの交換のための第１と第２のメモリ区分であって、
前記バスシステムが、それぞれ前記時間フレームのうちの第１と第２のものにおいて、前記プロセッサより大きいアクセス優先度を前記バスコントローラに与えるように構成され、
前記時間フレームのうちの前記第１と第２のものが相互に交替し、
前記バスコントローラが、それぞれ前記時間フレームの前記第１と第２のものにおいて、前記バス媒体と前記第１と第２のメモリ区分との間で等時性のメッセージからのデータを転送し、
前記プロセッサが、それぞれ前記時間フレームの前記第２と第１のものにおいて、前記バスコントローラより大きい前記第１と第２のメモリ区分へのアクセス優先度を有する第１と第２のメモリ区分と、
−非等時性のメッセージからのデータの交換のための第３のメモリ区分であって、
前記第３のメモリ区分への前記プロセッサとバスコントローラの相対的なアクセス優先度が全ての時間フレームにおいて変化しない第３のメモリ区分と
を有する通信バスシステム。
【請求項２】
請求項１に記載の通信バスシステムであって、
前記バスコントローラが中断の出力を有し、
前記プロセッサが前記中断の出力に連結された中断の入力を有し、
それぞれ前記第１と第２の時間フレームにおいて、前記第１と前記第２のメモリ区分を用いたデータ転送の終了により、前記バスコントローラが前記プロセッサに中断を送信するように構成された通信バスシステム。
【請求項３】
請求項２に記載の通信バスシステムであって、
前記バスコントローラが、前記バス媒体と前記第３のメモリ区分との間でデータを転送する前に、各時間フレームにおいて前記バス媒体と前記第１又は第２のメモリ区分との間で前記データを転送するように構成され、
前記バスコントローラが、各時間フレームにおいて前記第３のメモリ区分を用いたデータ転送の終了により、更なる中断を送信するように構成された通信バスシステム。
【請求項４】
請求項３に記載の通信バスシステムであって、
前記プロセッサが、それぞれ前記第１と第２の時間フレームにおける前記中断に応じて、前記第１と第２のメモリ区分で前記データを読み取り、又は書き込むことを開始するようにプログラムされた通信バスシステム。
【請求項５】
−バス媒体に接続するインタフェースと、
−連続的な時間フレームで前記バス媒体を介してメッセージを送信及び／又は受信するように構成されたバスコントローラであって、
バスインタフェース回路が時間フレーム毎に保証された送受信容量にそれぞれ対応し又は対応しない等時性のメッセージと非等時性のメッセージに対応するバスコントローラと、
−プロセッサのインタフェースと、
−前記プロセッサと前記バスコントローラとの間での等時性のメッセージからのデータの交換のための第１と第２のメモリ区分であって、
前記バスインタフェース回路が、それぞれ前記時間フレームのうちの第１と第２のものにおいて、前記プロセッサより大きいアクセス優先度を前記バスコントローラに与えるように構成され、
前記時間フレームのうちの前記第１と第２のものが相互に交替し、
前記バスコントローラが、それぞれ前記時間フレームの前記第１と第２のものにおいて、前記バス媒体と前記第１と第２のメモリ区分との間で等時性のメッセージからのデータを転送し、
前記プロセッサのインタフェースが、それぞれ前記時間フレームの前記第２と第１のものにおいて、前記バスコントローラより大きい前記第１と第２のメモリ区分へのアクセス優先度を有する第１と第２のメモリ区分と、
−非等時性のメッセージからのデータの交換のための第３のメモリ区分へのインタフェースであって、
前記第３のメモリ区分への前記プロセッサのインタフェースとバスコントローラの相対的なアクセス優先度が全ての時間フレームにおいて変化しない第３のメモリ区分へのインタフェースと
を有する通信バスインタフェース回路。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は、USBシステムのような通信バスシステムに関するものである。
【０００２】
今日では、USB（ユニバーサル・シリアル・バス）がPC（パーソナルコンピュータ）においてしばしば使用される。USBはUSBケーブルで構成されるバス媒体上でのデータ転送を提供する。PCはUSBのホストとしての役割をし、そのケーブルの一方に接続される。USB装置は、場合によってはハブを介して、そのケーブルの他方に接続される。PCにおいて、USB機能は、内部システムバスを介してシステムプロセッサ及び他のシステムリソースと通信するホストコントローラHCで実施される。通常は、ホストコントローラとプロセッサはメモリを介して通信する。ホストコントローラは、バス媒体から受信したデータをメモリに書き込み、又はメモリから送信されなければならないデータを読み取る。プロセッサは、前記データをメモリで読み取り又は書き込む。明らかに、プロセッサがデータを生成し、メモリにそれを書き込む前に、ホストコントローラはそのデータを送信できない。同様に、処理されない受信データでメモリがオーバーフローしないことを保証するほどの十分な速さで、ホストプロセッサは受信データを処理しなければならない。
【０００３】
USBはバス媒体上で等時性及び非等時性のメッセージの送信を提供する。等時性のメッセージは、例えば音声又はオーディオ信号のようなリアルタイムデータに関係し、その送信はリアルタイムの制約を満たさなければならない。保証転送帯域が利用可能でなければならない。このことは連続的な時間フレームで実施される。ホストコントローラは、保証された量のデータが各時間フレームの等時性のパケットで転送され得ることを保証する。すなわち、ホストコントローラが等時性のメッセージを送信しなければならない場合、ホストコントローラは時間に遅れずに利用可能なデータを（通常はメモリに）有していなければならず、又は受信される等時性のメッセージの場合、ホストコントローラが入力データを保存するために利用可能なメモリを有していなければならない。非等時性のメッセージの送信と受信は、リソースが利用可能になるまで遅延され得る。
【０００４】
従来は、ホストコントローラは、等時性のメッセージのデータを読み取り又は書き込む必要がある場合に、時間に遅れずにメモリへのアクセスを有することを保証するために、システムバスのマスターでできている。プロセッサとバスが非常に高速であり高性能である場合、通常はPCの場合に、このことは問題ではない。しかし、例えば携帯電話やパームトップPC等のような低コストのハンドヘルド装置のように、USBホストとして動作し得る更に低性能のプロセッサの場合、ホストコントローラは内部バスに過度の負荷を課す場合があり、プロセッサがデータを処理する時間、又は例えば携帯電話に必要な他の（バスに関係しない）機能を実行する時間をほとんど残さない。
【０００５】
中でも、プロセッサによる処理に少なからぬ時間を残すような方法で等時性及び非等時性のメッセージを処理し得る処理システムのアーキテクチャを提供することが本発明の目的である。
【０００６】
本発明による通信バスは、請求項１に示される。本発明によると、前記システムは、等時性及び非等時性のメッセージのための異なるメモリ区分を有する。ホストコントローラとプロセッサは、相互に妨げることなく、並行してメモリ区分の異なるものにアクセスし得る。それが並行して同じメモリ区分にアクセスを試みると、仲裁が必要になる。等時性のメッセージの転送を妨げないことを保証するために、少なくとも２つのメモリ区分が等時性のメッセージに提供される。連続的な時間フレームにおいて、ホストコントローラは前記メモリ区分の交互のものに最優先のアクセスを与えられる。プロセッサは、各時間フレームにおいて前記メモリ区分の他方（又は複数の他方のもの）に最優先のアクセスを与えられる。
【０００７】
最優先のアクセスは、例えば排他的アクセスを用いて、多数の方法で保証され、他方のものが高い優先度のアクセスを有していることを示す場合に、ホストコントローラ又はプロセッサのうちの１つへの何らかのアクセスを拒否し得る。その他、各メモリ処理を個別に仲裁する仲裁の機構が用いられ得る。
【０００８】
非等時性のメッセージに更なるメモリ区分が提供される。ホストコントローラとプロセッサの双方が、前記更なるメモリへのアクセスを有する。前記メモリへのその相対的なアクセス優先度は１つの時間フレームから他の時間フレームに変化しない。一例として、ホストコントローラとプロセッサとの間の仲裁を用いて優先度が定められ、どれが前記メモリ区分へのアクセスを得るかを判断する。非等時性のメッセージのための別のメモリ区分を提供することにより、等時性のメッセージの専用のメモリ区分が小さく維持され得る。
【０００９】
実施例において、時間フレームの間にメッセージの転送が終わると、ホストコントローラがプロセッサに中断を送信することに基づいて、システムが中断される。従って、時間フレームがまだ終了していない場合でも、ホストコントローラがメッセージの転送を終了した後に、プロセッサは第１又は第２のメモリ区分へのアクセスを開始することができる。
【００１０】
更なる実施例において、等時性のメッセ時が最初に転送され、等時性のメッセージの転送の終了と非等時性のメッセージの転送の終了により、別の中断が生成される。従って、等時性のメッセージの転送の終了後であるが、全てのメッセージの転送の終了前に、ホストプロセッサがそのメモリ区分への最優先のアクセスを有する時間フレームの間でさえ、プロセッサは第１又は第２のメモリ区分へのアクセスを開始することができる。
【００１１】
本発明によるバスシステムの前記の及び他の有利な形態が、以下の図面を用いて更に詳細に説明される。
【００１２】
図１はUSBシステムを示したものである。前記システムは、USBホスト1とUSB接続17a,bとUSB装置18a,bとを有する。USBホスト1は、プロセッサ10とバス制御部12と共通メモリ14を有し、全てが内部バス16を介して接続される。バス制御部12は、ホストコントローラ120と第１のメモリ122aと第２のメモリ122bと第１のアクセス制御部124aと第２のアクセス制御部124bとを有する。第１と第２のメモリ122a,bは、アクセス制御部124a,bのそれぞれの第１のアクセスポートを介して、それぞれ第１と第２のアクセス制御部124a,bを介して内部バス16に連結される。
【００１３】
ホストコントローラ120はUSB接続17a,bに接続される。更に、ホストコントローラ120は、第１と第２のアクセス制御部124a,bの第２のポートを介して、内部バス16と、第１と第２のアクセス制御部124a,bと、第１と第２のメモリ122a,bとに接続される。ホストコントローラ120は、プロセッサ10に連結した中断ライン15を有する。
【００１４】
動作中に、前記システムはUSB接続17a,bを介してUSB装置18a,bにメッセージを転送し、それからメッセージを転送する。メッセージからのデータは、プロセッサ10により作られ、又は消費される。データがUSB装置18a,bに送信されなければならない場合、プロセッサ10は、共通メモリ14又は第１若しくは第２のメモリ122a,bのうちの１つに（直接に又はDMAを用いて）前記データを書き込む。ホストコントローラ120は、該当するメモリ14,122a,bから前記データを読み取り、前記データをメッセージにカプセル化し、USB接続17a,bを介してアドレス指定された装置18a,bに前記メッセージを送信する。同様に、メッセージがUSB装置18a,bから受信されなければならない場合、ホストコントローラ120は、共通メモリ14又は第１若しくは第２のメモリ122a,bのうちの１つに各メッセージからのデータを書き込む。この場合、プロセッサ10は該当するメモリ14,122a,bから（直接に又はDMAを用いて）前記データをその後読み取る。
【００１５】
内部バスを介した共通メモリ14へのアクセスは、例えば仲裁手段（図示なし）を用いて、又はプロセッサの制御により、従来通りである。第１と第２のメモリ122a,bへのアクセスは、アクセス制御部124a,bにより制御される。双方のアクセス制御部124a,bは、第１と第２の動作モードを有する。第１のモードにおいて、アクセス制御部124a,bは、アクセス制御部124a,bの第１のポートを介して、内部バスを介して対応するメモリ122a,bへのアクセスを与える。これは、アクセスにマッピングされた通常のアドレスである場合がある。第２のモードにおいて、アクセス制御部124a,bは、ホストコントローラ120に対応するメモリ122a,bへのアクセスを与える。このモードは、アクセス制御部124a,bの制御入力を介して、ホストコントローラ120により選択される。
【００１６】
ホストコントローラ120は連続的な時間フレームで動作する。各時間フレームにおいて、ホストコントローラ120は、等時性のメッセージの送信のために特定の量の時間を予約する。等時性のメッセージは、リアルタイムの信号がUSB接続17a,bを介して時間通りに送信され得ることを保証する役目をする。プロセッサ10で実行するプログラムがリアルタイムの信号を送信したいと思う場合に、前記信号についてどのくらいの送信時間がフレーム毎に必要となるかを判断し、ホストコントローラ120が各時間フレームにその量の時間を予約することを要求する。それほど多くの時間がまだ予約されていない場合、ホストコントローラ120は要求を許可する（そうでない場合、プログラムは信号を開始できない）。このように、ホストコントローラ120が要求を許可する信号について、各フレームで十分なデータが送信され得ることを保証される。
【００１７】
図２は、時間“t”の関数としてシステムの動作を示したものである。時間は連続的な時間フレームに分割される（時間T1-4で開始して示される）。各時間フレームにおいて、等時性のメッセージが送信される時間間隔21a-dが生じ、続いて非等時性のメッセージが送信される時間間隔23a-dが生じる。前記時間間隔21a-d,23a-dの長さは、送信されなければならない実際のデータ量に依存してフレーム毎に変化し得る。図示の通り、時間フレームのうちのいくつかは送信に使用されずに残る場合がある。これは必ずしも必要ではなく、それもまた転送される必要のある実際のデータ量に依存する。
【００１８】
更に、図２は、上から下に連続的に、ホストコントローラ120による第１のメモリ122aへのアクセスと、プロセッサ10による第１のメモリ122aへのアクセスと、ホストコントローラ120による第２のメモリ122bへのアクセスと、プロセッサ10による第２のメモリ122bへのアクセスを表す４つの線を示す。アクセス権が実線で示され、そのアクセス権の欠乏が点線で示される。
【００１９】
連続的な時間フレームにおいて、ホストコントローラ120は、等時性のメッセージからのデータの転送の時間間隔21a-dの継続時間の間に、第１と第２のメモリ122a,bの交互のものへのアクセスをつかむ。すなわち、奇数の（第１と第３の）時間フレームの時間間隔21a,c（T1,T3で開始）において、ホストコントローラ120は第１のメモリ122aへのアクセスをつかみ、偶数の（第２と第４の）時間フレームの時間間隔21b,d（T2,T4で開始）において、ホストコントローラ120は第２のメモリ122bの制御をつかむ。等時性のメッセージの転送の時間間隔21a-dの間に、ホストコントローラ120は、制御をつかんだメモリ122a,bにデータを書き込み、又はそれからデータを読み取る。前記データは、等時性の受信メッセージから受け取られ、又は等時性の送信メッセージに入れられる。
【００２０】
ホストコントローラ120が該当するメモリ122a,bの制御をつかんでいない場合、プロセッサ10は内部バス16を介して第１と第２のメモリ122a,bのそれぞれに対するアクセスを有する。従って、ホストコントローラが等時性のメッセージで用いられるメモリ122a,bからデータを読み取る時間フレームの前の時間フレームの間であって、ホストコントローラ120がそのメモリに等時性のメッセージからのデータを書き込む時間フレームの後の時間フレームに、プロセッサ10はそれぞれの特定のメモリ122a,bへのアクセスを少なくとも有する。このことは、１つの時間フレームでそのデータを書き込み又は読み取る機会をプロセッサ10に与え、それは、他の時間フレームにおける遅延なしに等時性のメッセージを受信し及び送信する機会をホストコントローラ120に与える。
【００２１】
ホストコントローラ120が時間フレームにおいて等時性のメッセージを受信又は送信し終えた後の時間I1-I4に、ホストコントローラ120は、その受信又は送信に使用される第１と第２のメモリ122a,bへのアクセスを放棄する。従って、プロセッサ10は、時間フレームの残りにおいてそのメモリ122a,bに書き込み又はそれを読み取る機会を得る。当然ながら、ホストコントローラ120が次の時間フレームで他のメモリ122a,bから読み取り、又はそれから書き込むまで、前記機会はそのフレームに続く。合計で、プロセッサ10は、等時性の送信のデータを読み取り又は書き込む全体の時間フレームの間隔を得る。
【００２２】
図２において、例えば、ホストコントローラ120は、時間フレームの開始時間T1から等時性のメッセージ転送の終了時の時間I1までの間隔20において、第１の時間フレームの間に第１のメモリ122aへのアクセスをつかむ。その時間I1の後に、ホストコントローラ120は、第３の時間フレームの開始T3まで、時間間隔においてアクセスを放棄する（点線20aで示される）。時間I1から第２の時間フレームの開始時間T3まで（実線22の間隔）、プロセッサ10が第１のメモリ122aにアクセスする機会を有する。同様に、ホストコントローラ120は、時間フレームの開始時間T2から等時性のメッセージ転送の終了時の時間I2までの間隔24において、第２の時間フレームの間に第２のメモリ122bへのアクセスをつかむ。その時間I2の後に、ホストコントローラ120は、第４の時間フレームの開始T4まで、時間間隔においてアクセスを放棄する。時間I2から第４の時間フレームの開始時間T4まで（間隔26）、プロセッサ10が第２のメモリ122aにアクセスする機会を有する。
【００２３】
等時性のメッセージの転送の終了の時間I1-4の後に、共通メモリ14からのデータを用いて、データが残らなくなるまでの時間I5-8、又は時間フレームの終了まで、非等時性のメッセージが転送される。ホストコントローラ120は、通常は共通メモリ14にアクセスするための内部バス16にアクセスするために、プロセッサ10と競う。従って、ホストコントローラ120がプロセッサ10に対してアクセスを負けると、非等時性のメッセージのデータ転送が遅延されなければならない場合がある。
【００２４】
ホストコントローラ120は、時間フレーム毎にプロセッサ10のための２つの中断を、すなわち等時性のメッセージ転送が完了された時間I1-I4に第１のものを、非等時性のメッセージ転送が完了された時間I5-I8に第２のものを作る。第１の中断は、ホストコントローラ120が現在の時間フレームにおいて等時性のデータ転送に用いていた第１と第２のメモリ122a,bのうちの１つにアクセスする機会をプロセッサ10が再び得たことを示す。このことは、その時間フレームの残りと次の時間フレームの間に、プロセッサ10がそのメモリ122a,bからデータを読み取り、又はそれにデータを書き込むことを可能にする。このように、プロセッサ10は、メモリ122a,bにデータを転送し、それからデータを転送する最大の機会を得る。
【００２５】
第２の中断（時間I5-8）は、時間フレームにおいてホストコントローラ120が非等時性のデータ転送を終了したことを示す。このことは、プロセッサ10がホストコントローラ120との最小の干渉をもたらす時間間隔にデータ転送を適応させることを可能にする。
【００２６】
図３は、USBメッセージ転送の処理記述子のフォーマットを示したものである。プロセッサ10は、ホストコントローラ120へのメッセージ転送の必要性を示すために、メモリ122a,b,14に前記フォーマットを備えたデータ記述子をロードする。前記記述子に続いて転送されるデータのためのメモリ空間がある。前記記述子は必ずしも１つのメッセージ（USBにおいて“パケット”とも呼ばれる）に限定される必要はないことがわかり、前記記述子はホストコントローラ120が１つ以上のメッセージで送信又は受信し得るデータのブロックを記述する。前記記述子の多様なフィールドの意味と、それが干すとコントローラによって読み取り又は書き込みできるかどうか（“アクセス”の列）が、以下の表に示される。
【００２７】
【表１】
2005512193.tif 000003
ホストコントローラ120は、前記記述子から情報を読み取り、前記記述子に従ってデータを送信又は受信し、前記記述子に状態情報を書き込む。USBメッセージが送信されたか又は受信されたかどうかに応じて、ホストコントローラ120は前記記述子の次のデータを読み取り、又は書き込む。
【００２８】
好ましくは、ホストコントローラ120は、各フレームの間に連続してメモリ122a,bに保存された識別子にアクセスし、“Active”のビットが設定されている各記述子のメッセージを送信又は受信する。前記記述子の全てのデータが転送されると、ホストコントローラ120が“Active”のビットをクリアする。ホストコントローラが時間フレームにおいて全ての記述子のメッセージを転送し、まだ時間が残っている場合、ホストコントローラ120が前記記述子に再度アクセスし、“Active”のビットがまだクリアされていない前記記述子のメッセージを転送する。従って、時間フレームにおいて最大のデータ量が転送され得る。
【００２９】
ここまで説明された実施例は、本発明のほんの１つの実施例であることがわかる。例えば、本発明から逸脱することなく、１つ以上の非等時性のメッセージのデータが、そのデータの空間がある場合には、等時性のメッセージのデータに加えて第１と第２のメモリ122a,bに保存され得る。当然ながら、これは、ホストコントローラ120が１つの時間フレームで全てのデータを転送できない場合に、偶数又は奇数の時間フレームへの前記データの送信を制限し得る。他の例において、ホストコントローラ120は、実際に転送されるデータをバッファに入れる追加のメモリを有する場合があり、それぞれメッセージの終了の前又は後に、前記データはメモリ122a,b,14から取り出され、又はメモリ122a,b,14に保存される。プロセッサ10はデータのいくつかを一時的に保存するキャッシュメモリを有する場合があり、キャッシュからのデータは、ホストコントローラ120により許可される時に転送される。DMAが、メモリ122a,b,14にデータを転送し、それから転送するために用いられ得る。バスのアドレス指定されたメモリ122a,bの代わりに、プロセッサの特別の機能レジスタが１つ以上のメモリにアクセスするために用いられ得る。
【図面の簡単な説明】
【００３０】
【図１】バスシステムを示したものである。
【図２】時間フレームの連続を示したものである。
【図３】処理記述子を示したものである。
【図１】
2005512193.tif 000004
【図２】
2005512193.tif 000005
【図３】
2005512193.tif 000006
【国際調査報告】
2005512193.tif 000007
2005512193.tif 000008