(57)【特許請求の範囲】
【請求項１】
複数のポートを通じたデータ通信と、
メッセージングチャネルと
を提供するデータバスと、
前記データバス上のポートを含み、該ポートを介して前記データバスに結合され、かつ、前記データバスを管理するマネージャと、
前記マネージャを含む第1の処理デバイスと、
第2の処理デバイスと、
通信デバイスと
を含み、
前記通信デバイスが、前記データバスにおける前記データ通信のためのポートを含まず、前記データバスの前記メッセージングチャネルを介したデータへのアクセスのためのアドレスを含み、
前記第2の処理デバイスが前記データバス上のデータチャネルを必要とするとき、前記第2の処理デバイスは、前記データバスの前記メッセージングチャネルを使用して情報を前記第1の処理デバイスへ送信するため、前記通信デバイスを使用する、システム。
【請求項２】
前記通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記第1の処理デバイスと通信する、請求項1に記載のシステム。
【請求項３】
前記データバスに結合される少なくとも1つのコンポーネントをさらに含む、請求項1に記載のシステム。
【請求項４】
前記通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記少なくとも1つのコンポーネントと通信する、請求項3に記載のシステム。
【請求項５】
前記通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記少なくとも1つのコンポーネントのレジスタに書き込む、請求項4に記載のシステム。
【請求項６】
前記通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記少なくとも1つのコンポーネントのレジスタから読み取る、請求項4に記載のシステム。
【請求項７】
前記通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、データチャネルに対する要求を前記マネージャに通信する、請求項3に記載のシステム。
【請求項８】
前記データバスがSLIMバスを含む、請求項1に記載のシステム。
【請求項９】
前記通信デバイスがポートのない汎用デバイスを含む、請求項1に記載のシステム。
【請求項１０】
前記通信デバイスが第1の通信デバイスを含み、
前記システムが、前記データバスと第3の処理デバイスとの間に結合された第2の通信デバイスをさらに含み、
前記第2の通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記第3の処理デバイスから情報を通信する、請求項1に記載のシステム。
【請求項１１】
第1の処理デバイスおよび第2の処理デバイスを伴ってデータバス上で通信するための方法であって、
前記第2の処理デバイスによって、前記データバスにポートを介して結合されたコンポーネントに対するアクセスを求める要求を受信するステップと、
前記第2の処理デバイスによって、前記データバスへの前記アクセスが前記データバスのデータチャネルの割り当てを求めていると、判定するステップと、
前記データバス上におけるデータ通信のためのポートを含まず、前記データバスのメッセージングチャネルを介したデータへのアクセスのためのアドレスを含む通信デバイスを使用して、データの第1のセットを前記第2の処理デバイスから前記第1の処理デバイスに通信するステップであって、データの前記第1のセットが、前記データバスの前記メッセージングチャネルを使用して通信される、ステップと、
前記第1の処理デバイスによって、前記データバスの前記データチャネルを割り当てるステップと、
前記第2の処理デバイスによって、データの第2のセットを前記コンポーネントに通信するステップであって、データの前記第2のセットが、前記データバスの前記割り当てられたデータチャネルを使用して通信される、ステップとを含む、方法。
【請求項１２】
前記データバスがSLIMバスを含む、請求項11に記載の方法。
【請求項１３】
データの前記第1のセットが、前記コンポーネントの識別情報を示すデータを含む、請求項11に記載の方法。
【請求項１４】
データの前記第1のセットが、要求される帯域幅を示すデータを含む、請求項11に記載の方法。
【請求項１５】
データの第3のセットを前記コンポーネントから受信するステップをさらに含み、データの前記第3のセットが、前記データバスの前記データチャネルを使用して通信される、請求項11に記載の方法。
【請求項１６】
データの前記第3のセットを要求エンティティに通信するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
確認応答を要求エンティティに通信するステップをさらに含む、請求項15に記載の方法。
【請求項１８】
前記通信デバイスがポートのない汎用デバイスである、請求項11に記載の方法。
【請求項１９】
第1の処理デバイスおよび第2の処理デバイスを伴ってデータバス上で通信するための方法であって、
前記第2の処理デバイスによって、要求エンティティから要求を受信するステップであって、前記要求が、前記データバスにポートを介して結合されたコンポーネントに対するアクセスを求める、ステップと、
前記データバス上におけるデータ通信のためのポートを含まず、前記データバスのメッセージングチャネルを介したデータへのアクセスのためのアドレスを含む通信デバイスを使用して、データの第1のセットを前記第2の処理デバイスから前記コンポーネントに通信するステップであって、データの前記第1のセットが、前記データバスの前記メッセージングチャネルを使用して通信される、ステップと、
前記通信デバイスを使用して、データの第2のセットを前記コンポーネントから前記第2の処理デバイスに通信するステップと、
前記第2の処理デバイスによって、メッセージを前記要求エンティティに通信するステップであって、前記メッセージが、データの前記第2のセットに少なくとも一部基づく、ステップとを含む、方法。
【請求項２０】
データの前記第1のセットが、前記コンポーネントのレジスタに書き込むべき値を示す情報を含む、請求項19に記載の方法。
【請求項２１】
データの前記第2のセットが、前記コンポーネントのレジスタの値を示す情報を含む、請求項19に記載の方法。
【請求項２２】
前記通信デバイスがポートのない汎用デバイスを含む、請求項19に記載の方法。
【請求項２３】
複数のポートを通じたデータ通信と、
メッセージングチャネルと
を提供するデータバスと、
前記データバス上のポートを含み、該ポートを介して前記データバスに結合され、かつ、前記データバスを管理するマネージャと、
第1の通信デバイスに結合された第1の処理デバイスと、
第2の通信デバイスに結合された第2の処理デバイスと
を含み、
前記第1の通信デバイスおよび前記第2の通信デバイスが前記データバスに結合され、
前記第1の通信デバイスおよび前記第2の通信デバイスが前記データバスにおける前記データ通信のためのポートを含まず、前記データバスの前記メッセージングチャネルを介したデータへのアクセスのためのアドレスを含み、
前記第1の通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記第2の通信デバイスを介して、前記第1の処理デバイスから前記第2の処理デバイスへ情報を通信する、システム。
【請求項２４】
前記データバスに前記ポートを介して結合され、かつ、前記データバスの前記メッセージングチャネルを使用して、前記第1の通信デバイスからデータを受信する少なくとも1つのコンポーネントをさらに含む、請求項23に記載のシステム。
【請求項２５】
前記第1の通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記少なくとも1つのコンポーネントのレジスタに書き込む、請求項24に記載のシステム。
【請求項２６】
前記第1の通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、前記少なくとも1つのコンポーネントのレジスタから読み取る、請求項24に記載のシステム。
【請求項２７】
前記第1の通信デバイスが、前記データバスの前記メッセージングチャネルを使用して、データチャネルに対する要求を前記マネージャに通信する、請求項23に記載のシステム。
【請求項２８】
前記第1の通信デバイスおよび前記第2の通信デバイスが、ポートのない汎用デバイスである、請求項23に記載のシステム。
【請求項２９】
第1の処理デバイスおよび第2の処理デバイスを伴うデータバス上の通信が行われるとき、
前記第2の処理デバイスによって、前記データバスにポートを介して結合されたコンポーネントに対するアクセスを求める要求を受信することと、
前記第2の処理デバイスによって、前記データバスへの前記アクセスが前記データバスのデータチャネルの割り当てを求めていると判定することと、
前記データバス上におけるデータ通信のためのポートを含まず、前記データバスのメッセージングチャネルを介したデータへのアクセスのためのアドレスを含む通信デバイスを使用して、データの第1のセットを前記第2の処理デバイスから前記第1の処理デバイスに通信することであって、データの前記第1のセットが、前記データバスの前記メッセージングチャネルを使用して通信されることと、
前記第1の処理デバイスによって、前記データバスの前記データチャネルを割り当てることと、
前記第2の処理デバイスによって、データの第2のセットを前記コンポーネントに通信することであって、データの前記第2のセットが、前記データバスの前記割り当てられたデータチャネルを使用して通信されることと
を行うコンピュータにより実行可能な命令を含む、コンピュータ可読記録媒体。
【請求項３０】
前記データバスがSLIMバスを含む、請求項29に記載のコンピュータ可読記録媒体。
【請求項３１】
データの前記第1のセットが、前記コンポーネントの識別情報を示すデータを含む、請求項29に記載のコンピュータ可読記録媒体。
【請求項３２】
データの前記第1のセットが、要求される帯域幅を示すデータを含む、請求項29に記載のコンピュータ可読記録媒体。
【請求項３３】
データの第3のセットを、前記データバスの前記データチャネルを介して前記コンポーネントから受信することを行うコンピュータにより実行可能な命令をさらに含む、請求項29に記載のコンピュータ可読記録媒体。
【請求項３４】
データの前記第3のセットを要求エンティティへ通信することを行うコンピュータにより実行可能な命令をさらに含む、請求項33に記載のコンピュータ可読記録媒体。
【請求項３５】
確認応答を要求エンティティへ通信することを行うコンピュータにより実行可能な命令を含む、請求項33に記載のコンピュータ可読記録媒体。
【請求項３６】
前記通信デバイスがポートのない汎用デバイスである、請求項29に記載のコンピュータ可読記録媒体。
【請求項３７】
第1の処理デバイスおよび第2の処理デバイスを伴うデータバス上の通信が行われるとき、
前記第2の処理デバイスによって、要求エンティティから要求を受信することであって、前記要求が、前記データバスにポートを介して結合されたコンポーネントに対するアクセスを求めることと、
前記データバス上におけるデータ通信のためのポート含まず、前記データバスのメッセージングチャネルを介したデータへのアクセスのためのアドレスを含む通信デバイスを使用して、データの第1のセットを前記第2の処理デバイスから前記コンポーネントへ通信することであって、データの前記第1のセットが、前記データバスの前記メッセージングチャネルを使用して通信されることと、
前記通信デバイスを使用して、データの第2のセットを前記コンポーネントから前記第2の処理デバイスに通信することと、
前記第2の処理デバイスによって、メッセージを前記要求エンティティへ通信することであって、前記メッセージが、データの前記第2のセットに少なくとも一部基づくことと
を行うコンピュータにより実行可能な命令を含む、コンピュータ可読記録媒体。
【請求項３８】
データの前記第1のセットが、前記コンポーネントのレジスタへ書き込むべき値を示す情報を含む、請求項37に記載のコンピュータ可読記録媒体。
【請求項３９】
前記コンポーネントのレジスタの値を示す情報をデータの前記第2のセットから決定することを行うコンピュータにより実行可能な命令をさらに含む、請求項37に記載のコンピュータ可読記録媒体。
【請求項４０】
前記通信デバイスがポートのない汎用デバイスを含む、請求項37に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、すべての目的のために全体が参照により本明細書に組み込まれる、2011年4月29日に出願された「IN NON-PORTED GENERIC DEVICE(SOFTWARE MANAGED GENERIC DEVICE)」と題する代理人整理番号111475P1の米国仮特許出願第61/481,047号の優先権を主張する。
【背景技術】
【０００２】
オーディオ、データ、バス、およびデバイスの制御が単一のデータバス上で行えるように、Serial Low-power Inter-chip Mediaバス(SLIMバス)のようなシリアルデータバスが、モバイルデバイス(たとえば、携帯電話、タブレット、または他の個人用電子デバイス)において使用され得る。データバス上のコンポーネントは、データバス上のデータチャネルへのアクセスのために利用されるバスの論理アドレスを有する、1つまたは複数の「ポート」と関連付けられる。処理デバイスは、マネージャハードウェアを利用してデータバスを起動し、ポート間のデータチャネルのセットアップのような、データバスの管理を実行することができる。しかしながら、このセットアップは、他の処理デバイスがデータバス上のコンポーネントと通信する能力を制限する。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の実施形態は、ポートのない汎用デバイス(NGD:non-ported generic device)または他のポートのないハードウェアを利用して、組み込まれたマネージャハードウェアを必要とせずに処理デバイスをシリアルデータバスに結合できる、システムを提供する。NGDを使用して、処理デバイスは、シリアルデータバス上の利用可能な使用されていない帯域幅を利用して、マネージャハードウェアを有する処理デバイスを含む、シリアルデータバスに結合されたコンポーネントと通信することができる。
【０００４】
本開示によれば、第1の例示的なシステムは、複数のポートを通じたデータ通信と、メッセージ能力とを提供するように構成される、データバスを含む。システムはさらに、データバスに結合されデータバスを管理するように構成されたマネージャと、マネージャに結合された第1の処理デバイスと、第2の処理デバイスと、第2の処理デバイスおよびデータバスに結合された通信デバイスとを含む。通信デバイスは、データバスのポートを含まず、通信デバイスは、データバスのメッセージ能力を使用して、第2の処理デバイスからの情報を通信するように構成される。
【０００５】
第1の例示的なシステムは、以下の追加の特徴の1つまたは複数を含み得る。通信デバイスは、データバスのメッセージ能力を使用して、第1の処理デバイスと通信するように構成される。データバスに結合される少なくとも1つのコンポーネント。通信デバイスは、データバスのメッセージ能力を使用して、少なくとも1つのコンポーネントと通信するように構成される。通信デバイスは、データバスのメッセージ能力を使用して、少なくとも1つのコンポーネントのレジスタに書き込むように構成される。通信デバイスは、データバスのメッセージ能力を使用して、少なくとも1つのコンポーネントのレジスタから読み取るように構成される。通信デバイスは、データバスのメッセージ能力を使用して、データチャネルに対する要求をマネージャに通信するように構成される。データバスはSLIMバスを含む。通信デバイスは、ポートのない汎用デバイスを含む。通信デバイスは第1の通信デバイスを含み、システムはさらに、データバスと第3の処理デバイスとの間に結合された第2の通信デバイスを含む。第2の通信デバイスは、データバスのメッセージ能力を使用して、第3の処理デバイスからの情報を通信するように構成される。
【０００６】
本開示によれば、第1の例示的な方法は、データバスに結合されたコンポーネントへのアクセスを求める要求を受信するステップと、データバスへのアクセスがデータバスのデータチャネルの割り当てを求めていると判定するステップと、データバス上のポートを有さない通信デバイスによって、データの第1のセットを通信するステップとを含む。データの第1のセットは、データバスのメッセージング能力を使用して通信される。方法はさらに、データバスのデータチャネルを割り当てるステップと、データの第2のセットをコンポーネントに通信するステップとを含む。データの第2のセットは、データバスのデータチャネルを使用して通信される。
【０００７】
第1の例示的な方法は、以下の追加の特徴の1つまたは複数を含み得る。データバスはSLIMバスを含む。データの第1のセットは、コンポーネントの識別情報を示すデータを含む。データの第1のセットは、要求される帯域幅を示すデータを含む。データの第3のセットをコンポーネントから受信するステップであって、データの第3のセットはデータバスのデータチャネルを使用して通信される。データの第3のセットを要求エンティティに通信するステップ。確認応答を要求エンティティに通信するステップ。通信デバイスは、ポートのない汎用デバイスである。
【０００８】
本開示によれば、第2の例示的な方法は、要求エンティティから要求を受信するステップを含む。要求は、データバスに結合されたコンポーネントへのアクセスを求める。方法はさらに、データバス上のポートを有さない通信デバイスによって、データの第1のセットをコンポーネントに通信するステップを含む。データの第1のセットは、データバスのメッセージング能力を使用して通信される。方法はまた、通信デバイスによって、コンポーネントからのデータの第2のセットを受信するステップと、メッセージを要求エンティティに通信するステップとを含む。メッセージは、データの第2のセットに少なくとも一部基づく。
【０００９】
第2の例示的な方法は、以下の追加の特徴の1つまたは複数を含み得る。データの第1のセットは、コンポーネントのレジスタに書き込むべき値を示す情報を含む。データの第2のセットは、コンポーネントのレジスタの値を示す情報を含む。通信デバイスは、ポートのない汎用デバイスを含む。
【００１０】
本開示によれば、第2の例示的なシステムは、複数のポートを通じたデータ通信と、メッセージ能力とを提供するように構成されるデータバスを含み得る。システムはまた、データバスに結合されデータバスを管理するように構成されるマネージャと、第1の通信デバイスに結合される第1の処理デバイスと、第2の通信デバイスに結合される第2の処理デバイスとを含む。第1の通信デバイスおよび第2の通信デバイスは、データバスに結合される。第1の通信デバイスおよび第2の通信デバイスは、データバスのポートを含まない。第1の通信デバイスは、データバスのメッセージ能力を使用して、第1の処理デバイスからの情報を、第2の通信デバイスを介して第2の処理デバイスへと通信するように構成される。
【００１１】
第2の例示的なシステムは、以下の追加の特徴の1つまたは複数を含み得る。データバスに結合される少なくとも1つのコンポーネントは、データバスのメッセージ能力を使用して第1の通信デバイスからデータを受信するように構成される。第1の通信デバイスは、データバスのメッセージ能力を使用して、少なくとも1つのコンポーネントのレジスタに書き込むように構成される。第1の通信デバイスは、データバスのメッセージ能力を使用して、少なくとも1つのコンポーネントのレジスタから読み取るように構成される。第1の通信デバイスは、データバスのメッセージ能力を使用して、データチャネルに対する要求をマネージャに通信するように構成される。第1の通信デバイスおよび第2の通信デバイスは、ポートのない汎用デバイスである。
【００１２】
本開示によれば、例示的な装置は、データバスに結合されたコンポーネントへのアクセスを求める要求を受信するための手段と、データバスへのアクセスがデータバスのデータチャネルの割り当てを求めていると判定するための手段と、データバス上のポートを有さない通信デバイスによって、データの第1のセットを通信するための手段とを含む。データの第1のセットは、データバスのメッセージング能力を使用して通信される。装置はさらに、データバスのデータチャネルを割り当てるための手段と、データの第2のセットをコンポーネントに通信するための手段とを含む。データの第2のセットは、データバスのデータチャネルを使用して通信される。
【００１３】
例示的な装置は、以下の追加の特徴の1つまたは複数を含み得る。データバスはSLIMバスを含む。通信するための手段は、データの第1のセットの中に、コンポーネントの識別情報を示すデータを含めるように構成される。通信するための手段は、データの第1のセットの中に、要求される帯域幅を示すデータを含めるように構成される。データの第3のセットをコンポーネントから受信するための手段であって、データの第3のセットはデータバスのデータチャネルを使用して通信される。データの第3のセットを要求エンティティに通信するための手段。確認応答を要求エンティティに通信するための手段。通信デバイスは、ポートのない汎用デバイスを含む。
【００１４】
本開示によれば、第1の例示的な非一時的コンピュータ可読媒体は、プロセッサに、データバスに結合されたコンポーネントへのアクセスを求める要求を受信させ、データバスへのアクセスがデータバスのデータチャネルの割り当てを求めていると判定させ、データバス上のポートを有さない通信デバイスによって、データの第1のセットを通信させるように構成される命令を含む。データの第1のセットは、データバスのメッセージング能力を使用して通信される。命令はまた、プロセッサに、データバスのデータチャネルを割り当てさせ、データの第2のセットをコンポーネントへ通信させるように構成される。データの第2のセットは、データバスのデータチャネルを使用して通信される。
【００１５】
第1の例示的な非一時的コンピュータ可読媒体は、以下の追加の特徴の1つまたは複数を含み得る。データバスはSLIMバスを含む。命令は、プロセッサに、データの第1のセットの中へ、コンポーネントの識別情報を示すデータを含めさせるように構成される。命令はまた、プロセッサに、データの第1のセットの中へ、要求される帯域幅を示すデータを含めさせるように構成される。プロセッサが、データの第3のセットを、データバスのデータチャネルを介してコンポーネントから受信できるようにするように構成される命令。プロセッサに、データの第3のセットを要求エンティティへ通信させるように構成される命令。プロセッサに、確認応答を要求エンティティへ通信させるように構成される命令。通信デバイスは、ポートのない汎用デバイスである。
【００１６】
本開示によれば、第2の非一時的コンピュータ可読媒体は、プロセッサに、要求エンティティから要求を受信させるように構成される、命令を含む。要求は、データバスに結合されるコンポーネントへのアクセスを求める。命令はまた、プロセッサに、データバス上のポートを有さない通信デバイスによって、データの第1のセットをコンポーネントへ通信させることであって、データの第1のセットはデータバスのメッセージング能力を使用して通信されることと、通信デバイスによって、コンポーネントからデータの第2のセットを受信させることと、メッセージを要求エンティティへ通信させることとを行うように構成される。メッセージは、データの第2のセットに少なくとも一部基づく。
【００１７】
第2の例示的な非一時的コンピュータ可読媒体は、以下の追加の特徴の1つまたは複数を含み得る。命令は、プロセッサに、コンポーネントのレジスタへ書き込むべき値を示す情報をデータの第1のセットへ含めさせるように構成される。命令は、プロセッサに、コンポーネントのレジスタの値を示す情報をデータの第2のセットから決定させるように構成される。通信デバイスは、ポートのない汎用デバイスを含む。
【００１８】
本発明によって、従来の技法に勝る多くの利点が達成される。たとえば、追加の処理デバイスにおいて冗長なマネージャハードウェアが必要なく、これによってハードウェアが簡素になりコストが下がる。加えて、NGDの使用によって、追加の処理デバイスは、マネージャハードウェアを有する処理デバイスに「仲介者」として動作するのを強いて追加の処理デバイスからの通信をシリアルデータバスに中継することなく、シリアルデータバス上で通信することが可能になる。さらに、NGDは、シリアルデータバス上の本来は使用されない帯域幅を利用できるので、シリアルデータバスの全体的な効率が向上する。本発明のこれらのおよび他の実施形態は、その利点および特徴の多くとともに、以下の文書および添付の図面に関連してより詳しく説明される。
【００１９】
様々な実施形態の性質および利点のさらなる理解が、以下の図面を参照することによって実現され得る。添付の図面において、類似のコンポーネントまたは特徴は、同じ参照符号を有し得る。さらに、同じタイプの様々なコンポーネントは、参照符号の後に、複数の類似のコンポーネントを区別するダッシュおよび第2の標識を付けることによって、区別され得る。第1の参照符号のみが本明細書において使用される場合、その説明は、第2の参照符号とは関係なく同じ第1の参照符号を有する類似のコンポーネントのいずれの1つにも適用可能である。
【図面の簡単な説明】
【００２０】
【図１】データバスアーキテクチャを有する例示的なシステムの簡略化されたブロック図である。
【図２】バスコンポーネントへのアクセスを、データバスに接続されない処理デバイスに提供するための、例示的なシステムを示す図である。
【図３】本発明の一実施形態による、ポートのない汎用デバイス(NGD)ハードウェアに結合された処理デバイスを有する、データバスアーキテクチャのある実施形態を示す図である。
【図４】NGDハードウェアを利用してデータバス上のコンポーネントへのアクセスを提供するプロセスのある実施形態を示すブロック流れ図である。
【図５】本発明の一実施形態による、データバス上のポートを有さない通信デバイスを使用して、データバス上の情報を通信するための方法を示す、簡略化されたフローチャートである。
【図６】本発明の別の実施形態による、データバス上のポートを有さない通信デバイスを使用して、データバス上の情報を通信するための方法を示す、簡略化されたフローチャートである。
【発明を実施するための形態】
【００２１】
Serial Low-power Inter-chip Mediaバス(SLIMバス)のようなシリアルデータバスは、データバスの起動、データチャネルの割り当てなどのような、データバスの様々な管理機能を実行するためのマネージャハードウェアを含み得る。このマネージャハードウェアは、処理デバイス(たとえば、中央処理装置(CPU)、マイクロコントローラ(MCU)、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、または他の処理手段)に組み込まれてよく、とりわけ、処理デバイスがシリアルデータバス上の様々なコンポーネントと通信するのを可能にする。
【００２２】
しかしながら、第2の処理デバイスがデータバス上のコンポーネントと通信するのを可能にしようと試みる時、問題が発生し得る。これは通常、2つの方法の1つを使用して行われる。第1の方法では、第2の処理デバイスは、第1の処理デバイスと第2の処理デバイスとの間の通信リンクを介して、(マネージャハードウェアを有する)第1の処理デバイスを通じてコンポーネントと通信する。問題となることに、第1の処理デバイスは、第1のプロセッサの処理能力と帯域幅とを使い果たし得る、データを中継するための「仲介者」として動作する。第2の方法では、第2の処理デバイスは単に、データバスのマネージャを引き継ぎ得る。しかしながら、この場合、第2の処理デバイスは、データバスに接続された自身固有のマネージャハードウェアが必要である。これは、特に、データバス上のコンポーネントと通信することが可能にされたいくつかの処理デバイスを有するシステムにおいて、システムのコストを上昇させ得る。
【００２３】
本明細書で説明される本発明の実施形態は、ポートのない汎用デバイス(NGD)または他のポートのないハードウェアを利用して、第2の処理デバイスをデータバスに結合できる、改善されたシステムを提供する。明確にすると、本明細書で説明されるような「ポートのない」デバイスまたは「ポートを有さない」デバイスは、データバス上に論理ポートを有さず、したがってデータバスのデータチャネルにアクセスする能力を有さない、デバイスである。NGDは、ポートを有さず、マネージャハードウェアの機能を含まず、これによってハードウェアが簡素になりコストが下がる。NGDを使用して、第2の処理デバイスは、データバス上の利用可能な使用されていない帯域幅(たとえば、メッセージングチャネル)を利用して、第1の処理デバイスを含む、データバスに結合されるコンポーネントと通信することができる。
【００２４】
第2の処理デバイスがこのように通信するのを可能にすることは、データバスに新たな機能を与え得る。第2の処理デバイスは、データバスに結合されたコンポーネント上のレジスタを直接読み取り、かつ/またはレジスタに直接書き込むことができる。加えて、第2の処理デバイスは、データバス上のデータチャネルを利用できる、ポートを有する別個のデータ転送ハードウェアを有し得る。この場合、第2の処理デバイスは、NGDを使用して、データバス上のデータチャネルをセットアップするための要求を第1の処理デバイスに通信することができ、第1の処理デバイスは、マネージャハードウェアを使用して、要求されたデータチャネルをセットアップすることができる。これによって、第2の処理デバイスが、データチャネルを使用してデータバス上でデータを転送することが可能になる。さらに、NGDは、多くの処理デバイスによって使用されてよく、3個以上の処理デバイスがデータバス上で通信するのを可能にする。
【００２５】
データバスは、本開示の全体で論じられる。以下の例は、SLIMバスシリアルデータバスの使用に注目する。しかしながら、同様の原理が他の形式のデータバスに適用され得ることを、理解されたい。
【００２６】
図1は、Serial Low-power Inter-chip Mediaバス(SLIMバス)のような、データバスを含む例示的なシステム100の簡略化されたブロック図を示す。そのようなデータバスは、オーディオ、データ、バス、および/またはデバイスの制御が単一のデータバス上で行えるように、モバイルデバイスにおいて使用され得る。そのようなデータバスは、複数のオーディオチャネルおよび/またはデータチャネルが同じデータバスを使用するのを可能にし得る。さらに、いくつかの実施形態では、異なるオーディオチャネルに対する異なるサンプルレートが、同時にサポートされ得る。システム100は、処理デバイス110(I/Oインターフェース112、フレーマ114、およびマネージャ116を含む)、データライン120、クロックライン130、およびコンポーネント140を含む。
【００２７】
処理デバイス110は、中央処理装置(CPU)、デジタルシグナルプロセッサ(DSP)、ステートマシン、マイクロコントローラ(MCU)または他のコントローラ、特定用途向け集積回路(ASIC)、ステートマシン、参照テーブルなどであってよい。能力の最適化または他の要因のために、システムは、複数の処理デバイス110を利用することができる。処理デバイス110は、データライン120およびクロックライン130を含むデータバスを管理することができる。いくつかの実施形態では、データバスはSLIMバスである。処理デバイス110は、I/Oインターフェース112を含み得る。I/Oインターフェース112は、データバスのための管理サービスを提供し、バスのフレーム層を制御し、処理デバイス110を使用して実装されたメッセージプロトコルを監視し、かつ/または処理デバイス110のリセットを管理することができる。処理デバイス110は、命令を記憶し、かつ/または命令にアクセスすることができ、この命令は、様々な形式のいずれかの非一時的コンピュータ可読媒体に格納され得る。これらの命令は、プロセッサによって実行されてよく、プロセッサに様々な機能を実行させることができる。たとえば、本明細書で説明される方法の様々なステップは、命令として記憶されてよく、処理デバイス110によって実行されてよい。
【００２８】
処理デバイス110のフレーマ114は、クロックライン130上で駆動されるクロック信号のソースとして機能し得る。したがって、フレーマ114によって提供されるクロック信号は、クロックライン130に接続されるすべてのデバイスおよびコンポーネント140に提供され得る。フレーマ114は、アクティブクロックモードおよび中断クロックモードのような、複数のクロックモードに入る能力を有し得る。アクティブクロックモードにある時、フレーマ114は、アクティブクロック信号をクロックライン130に供給することができる。アクティブクロックモードにある時、データのフレームは、データバスを介して、処理デバイス110および/またはコンポーネント140によって送信され得る。中断クロックモードでは、フレーマ114は、(クロックライン130の論理値が変化しないように)単一の安定状態にクロックライン130を保つことができる。中断クロックモードでは、クロックライン130は、1という論理値に保たれ得る。中断クロックモードにある間、データのフレームは、データバスを使用して送信され得ない。フレーマ114はまた、まとめて「フレーミング情報」と呼ばれる、ガイドおよびフレーミングチャネルを、データバスに接続される他のコンポーネント140へ、データライン120上で送信することができる。このフレーミング情報は、バスの時分割多重化された(TDM)フレーム構造を確立し、かつ/または、そのような情報を、同期を確立するために、バスに接続される他のデバイスおよびコンポーネント140に通信するために使用され得る。
【００２９】
マネージャ116は、データバスを起動し、データバスの管理を実行することを担い得る。バスの管理は、バスに接続されたデバイスおよびコンポーネント140の列挙、バスの構成、および/または動的なチャネル割り当てを含み得る。マネージャはまた、マネージャがデータバスの管理を実行できるようにするのを助けるために、バス上にポート118または論理アドレスを含み得る。複数のマネージャがデータバスに接続される場合、1つのマネージャのみが、所与の時間においてアクティブになることを許可され得る。I/Oインターフェース112、フレーマ114、およびマネージャ116は、処理デバイス110の一部である(または、処理デバイス110によって実行されている)ものとして示されるが、いくつかの実施形態は、これらのコンポーネントの一部またはすべてを、データバスに個々に接続される別個のコンポーネントであると規定する。たとえば、システム100では、マネージャ116がフレーマ114と同じ処理デバイス110の中に存在するが、いくつかの実施形態では、マネージャ116およびフレーマ114は、データバスに接続される別個の物理的なコンポーネントの中にあってもよい。
【００３０】
図1は、データライン120およびクロックライン130に接続される、3つのコンポーネント140-1、140-2、140-Nを示す。ここで、「コンポーネント」は、データバスに接続されるデバイスのための一般的な用語である。コンポーネント140は通常、アナログからデジタルへの変換(ADC)、またはデジタルからアナログへの変換(DAC)のような、様々な用途の機能を提供する。例として、コンポーネント140-1のようなコンポーネントは、マイクロフォンと接続されるCPUまたはDSPのような、汎用プロセッサであってよい。情報がマイクロフォンから汎用プロセッサによって受信される時、情報は、デジタル化され、分析されてよく、データがデータバスに接続される1つまたは複数の他のデバイスおよび/またはコンポーネント140へ送信されるべきである場合、情報はデータバスを使用して送信されてよい。システム100の示される実施形態は3つのコンポーネント140を示すが、より多数または少数のコンポーネントがデータバスに接続され得ることを理解されたい。
【００３１】
簡単にするために、追加の詳細は、コンポーネント140-2のみにおいて示される。コンポーネント140は、I/Oインターフェース142および汎用デバイス144のような、様々なサブコンポーネントを格納し得る。そのようなサブコンポーネントは、コンポーネント140-2が、データバスを介して通信し、いくつかの他のデバイスからそれぞれデータを受信して分析するのを可能にし得る。たとえば、汎用デバイス144は、データが、入力デバイス150のようなデバイスと交換される(たとえば、送信および/または受信される)ことを可能にし得る。汎用デバイスは、データ交換を可能にするのを助けるために、データバス上にポート146または論理アドレスを含み得る。同様の詳細は、コンポーネント140-1および140-Nに存在し得る。
【００３２】
コンポーネント140および処理デバイス110は、バスに統合された1つまたは複数のポート118、146と関連付けられ得る。データバスの規格によって指示されるように、任意の数(たとえば、32、64など)のポートが各デバイス上で利用され得る。ポートは、データバスと関連付けられるデータチャネルへのアクセスに利用される、(データバスへの対応する物理的な接続を有する)バスの論理アドレスである。言い換えると、ポートは、データチャネルへの論理的な境界であり、データチャネルは、データチャネルに動的かつ論理的に接続され得る2つのポートの間でセットアップされ得る。ポートは、たとえばTDMを介して通信がデータバス上で調整され得る際の、機構を提供する。たとえば、異なるTDMタイムスロットが、様々な時間において、様々なポートに割り当てられ得る。そのようなタイムスロットは、均一であってもよく不均一であってもよい。さらに、所与のポートが所与の時間におけるソースであるか宛先であるかに応じて、タイムスロットは、対応するデータバスからのデータのソーシングとサンプリングのいずれかを提供する。最後に、以下でさらに詳しく論じられるように、いくつかのデバイスは、データバスに接続され得るが、対応する論理アドレスを有さず、したがってポートを有さない。そのようなポートを有さないデバイスは、データバスのメッセージチャネル上で通信するように構成され得る。
【００３３】
図1に示されるI/Oインターフェース112および142は、ポートのあるデバイスと関連付けられるように示されるが、I/Oインターフェース112および142は、0個のデバイスおよび/またはポートを含む、任意の数の汎用デバイス、NGD、またはポートを関連付け得る。I/Oインターフェース112または142がデバイスまたはポートと関連付けられない場合、データバスと関連付けられるフレーマ114は、それでも、クロック信号をバスコンポーネントに提供し続けることができる。
【００３４】
SLIMバスのような図1に示されるようなデータバスは、マルチドロップバストポロジーを使用して動作することができ、マルチドロップバストポロジーにおいて、バス信号はバス上のすべてのコンポーネントに共通である。バス上のコンポーネント間の干渉を防ぐために、データバスは、1つだけの送信機デバイスが任意の所与の時間においてバス上で通信するように構成される。この制約は、調停手順および/または他のコリジョン回避機構を通じて実施され得る。
【００３５】
上の説明は、データバス(SLIMバスのような)上のデバイスおよびコンポーネント140がどのように通信できるかについての、基本的な導入を提供するが、簡単にするために示されていない追加のコンポーネントが存在してよいことを、理解されたい。たとえば、処理デバイス110およびコンポーネント140は、データバスを使用して送信されるべきデータをバッファリングし、かつ/または、データバスを介して受信されているデータをバッファリングするための、1つまたは複数のメッセージバッファを有し得る。追加の情報は、使用されている特定の形式のデータバスの規格において見出され得る。たとえば、Mobile Industry Processor Interface(MIPI)Allianceによって発行されているSLIMバス規格のバージョン1.01は、SLIMバスシステムの実装に関する追加の情報を提供する。
【００３６】
システム100のデータバスは、同期した2線のバスを使用して、クロックラインとデータラインとに接続されたコンポーネントの間で、データを配信する。上で論じられたように、データバスは、TDM方式を利用して、複数の受信デバイスおよび送信デバイスが、データバスを利用しデータバスを通じて通信することを可能にし得る。ここで、データバスを使用して時間内に配信されるようなデータの組成は、「フレーム構造」と呼ばれる。SLIMバスである場合、データバスのフレーム構造は、セル、スロット、フレーム、サブフレーム、およびスーパーフレームという5個の副部分を有し得る。「セル」は、データバスを使用して転送されるデータの最小の下位区分を指す。セルは、2つの連続する実際の境界によって分けられ、単一の情報ビットを保持する。「スロット」は、4つの連続するセルを指す。したがって、スロットは、4ビットの情報を格納する。ビットは、最上位ビットから最下位ビットである(たとえば、最上位ビットが左にある)。「フレーム」は、192個の連続したスロットとして定義される。フレームの第1のスロットは、4ビットのフレーム同期シンボル(フレーム同期データとも呼ばれる)を格納する、制御空間スロットである。このフレーム同期シンボルは、バイナリシーケンス「1011」によって表される。同様に、各フレームのスロット96はまた、4ビットのフレーミング情報を格納する制御空間スロットであってよい。フレーム同期データおよび32ビットのフレーミング情報が、バスを同期するために使用される。フレーミング情報の32ビットすべてを受信するために、データは、8つの連続するフレームのスロット96から読み取られ得る。これらの8つの連続するフレームは、「スーパーフレーム」と呼ばれる。したがって、8つの連続するフレームは、単一のスーパーフレームを含む。
【００３７】
同期がデータバスに接続されるデバイスによって失われる場合、スーパーフレームは、デバイスによって読み取られることが可能ではなくなり得る。SLIMバスについて言及すると、単一のフレーム同期スロットが期待されるようなものではない場合でも、スーパーフレームのデータが適切に読み取られ得るように、許容量が設計されている。しかしながら、第2の連続するフレーム同期スロットにエラーがある場合、スーパーフレーム中のデータはデバイスによって読み取られるべきではない。
【００３８】
「サブフレーム」は、制御空間およびデータ空間が交互配置されるフレーム構造の部分として定義される。そして、第1のスロットは制御空間に割り当てられる。サブフレームは、単一の固定された長さを有さないことがある。むしろ、サブフレームの長さは、様々な事前に定義された長さの間で変化し得る。SLIMバスについて言及すると、長さは、6個、8個、24個、または32個の連続的なスロット(すなわち、24個、32個、96個、または128個のセル)にプログラムされ得る。SLIMバスでは、サブフレーム構成は、その時にSLIMバスによってサポートされているアプリケーションのデータフロー要件のような要因に基づいて、動的に変化し得る。
【００３９】
このトポロジーによって、クライアントアプリケーション160は、処理デバイス110を通じて、データバス上の任意のコンポーネント140へのアクセスを得ることができる。クライアントアプリケーション160は、バスに接続された1つまたは複数のコンポーネント140へのアクセスを必要とし得る、音楽再生、オーディオ記録、データ転送、および/または他のことのような種々の機能のいずれかを含み得る。たとえば、クライアントアプリケーション160がオーディオ記録アプリケーションであり、入力デバイス150がマイクロフォンである場合、クライアントアプリケーション160は、入力デバイス150にアクセスする必要性を処理デバイス110に通信することによって、入力デバイス150にアクセスすることができる。処理デバイスは、マネージャ116を使用して、入力デバイス150へのアクセスのためにデータバス上でセットアップされるべきデータチャネルを準備し、データバスの仕様に従って要求をコンポーネント140-2に通信する。処理デバイス110からの要求を受信した後、コンポーネント140-2は、入力デバイス150からアナログオーディオ入力を受け取り、それを、ADCであり得る汎用デバイス144を使用して、デジタルフォーマットに変換することができる。デジタルフォーマットになると、コンポーネント140は、入力デバイスからのデータを、データバスを通じて、I/Oインターフェース142を使用して処理デバイス110に通信し戻すことができる。最後に、処理デバイス110は次いで、データをクライアントアプリケーション160に提供することができる。したがって、クライアントアプリケーション160は、処理デバイス110を通じたバスコンポーネント140へのアクセスを得る。
【００４０】
図2は、バスコンポーネント140へのアクセスを、データバスに接続されない第2の処理デバイス110-2へ提供するための例示的なシステム200を示す。複数の処理デバイス110が、能力の最適化または他の要因を目的に、システムにおいて利用され得る。この構成では、第1の処理デバイス110-1はデータバスに接続され、第2の処理デバイス110-2は別個の通信リンク220を通じて第1の処理デバイス110-1に接続される。処理デバイス110は、High Speed Inter-Chip(HSIC)、High-speed Synchronous Serial Interface(HSI)、Serial Peripheral Interface(SPI)、PCI Express(PCIe)、および/または他の手段のようなインターフェースを使用して、この通信リンク220を通じてプロセッサ間通信(IPC:inter-processor communication)を行うことができる。
【００４１】
このシステム200では、第2の処理デバイス110-2とデータバスとの間のすべてのデータおよび通信は、必ず通信リンク220を通って流れ、通信リンク220において、第1の処理デバイス110-1は情報をデータバスに中継する。図2では、図1の処理デバイス110のマネージャ116のハードウェアコンポーネントおよびソフトウェアコンポーネントは、マネージャハードウェア216およびマネージャソフトウェア217という、別個のコンポーネントとして表される。マネージャハードウェア216は、第1の処理デバイス110-1とは物理的に別々であってよく、または第1の処理デバイス110-1に物理的に組み込まれていてよい。マネージャソフトウェア217は、たとえば、マネージャハードウェア216を通じてデータバスの管理任務を行うための、第1の処理デバイス110-1上で実行されるドライバであってよい。クライアントアプリケーション230および第2の処理デバイス110-2は、マネージャソフトウェア217と通信して、データバスへのアクセスを必要とする何らかの機能を実行することができる。
【００４２】
通信リンク220は、第2の処理デバイス110-2がデータバスにアクセスすることを可能にするが、通信リンク220は、第1の処理デバイス110-1が「仲介者」として動作し、データを第2の処理デバイス110-2からデータバスに中継することを要求する。たとえば、第2の処理デバイス110-2へのアクセスを有するクライアントアプリケーション230-2が、データバス上のコンポーネント140にアクセスするのを望む場合、クライアントアプリケーション230-2は、コンポーネント140とのデータの送受信を行うために、第2の処理デバイス110-2に、データバス上でデータチャネルをセットアップするように第1の処理デバイス110-1のマネージャソフトウェア217に対して要求させなければならない。次いで、すべてのデータが、第1の処理デバイス110-1を通じて、通信リンク220を介して第2の処理デバイス110-2に中継される。その上、メッセージングおよび/またはコンポーネント140のレジスタの制御のような、データチャネルがセットアップされる必要がなくてよい状況でも、第2の処理デバイス110-2は依然として、第1の処理デバイス110-1を通じて情報を中継しなければならない。
【００４３】
ある代替的な構成(図示せず)では、第2の処理デバイス110-2は、データバスに直接接続され得る。しかしながら、従来の方法によれば、第2の処理デバイス110-2は、マネージャソフトウェア217およびマネージャハードウェア216を含み、第1の処理デバイス110-1の中で対応する要素が重複する。そのような構成では、第2の処理デバイス110-2へのアクセスを有するクライアントアプリケーション230-2は、データバス上でコンポーネント140と通信することを望む場合、第2の処理デバイス110-2は、データバスを管理する役割を担うことができる。関与するデータバスのタイプに応じて、第1の処理デバイス110-1から第2の処理デバイス110-2へとこれらの役割を移すために、何らかの手順が実行される必要がある。
【００４４】
図3は、一実施形態による、バスコンポーネント140へのアクセスを第2の処理デバイス110-2に提供するための、改善されたシステム300を示す。このシステム300では、第2の処理デバイス110-2は、ポートを有さないデバイスを介して、データバスおよび/または第1の処理デバイス110-1と通信することができ、これによってハードウェアが簡素になり、ハードウェアは、さらに簡素にするために、フレーマ114またはマネージャ116の特別な機能を有さない汎用デバイスを含み得る。そのようなデバイスは、処理デバイス110の間の通信リンクを通じたものではなく、データバスに接続されたポートのない汎用デバイス(NGD)ハードウェア320を含み得る。そのような構成は、第2の処理デバイス110-2が第1の処理デバイスを通じて情報を中継する必要なくデータバスにアクセスするのを可能にすることによって、効率を向上させる。そのような構成はまた、標準的なマネージャハードウェア216よりも簡素で安いことがある、NGDハードウェア320を利用する。
【００４５】
このシステム300では、第2の処理デバイスは、サテライトソフトウェア310を含み得る。サテライトソフトウェア310は、マネージャソフトウェア217がマネージャハードウェア216を制御するのと同様の方式でNGDハードウェア320を制御する、ドライバまたは他のプログラムであってよい。しかしながら、サテライトソフトウェア310は、所望の機能によっては、マネージャソフトウェア217よりもはるかに簡素であり得る。それは、サテライトソフトウェア310は、マネージャソフトウェア217の管理機能の多くを必要としないことがあるからである。その結果、サテライトソフトウェア310は、マネージャソフトウェア217よりも小さく、必要とする処理リソースが少ないことがある。
【００４６】
同様に、NGDハードウェア320は、マネージャハードウェア216によって要求される機能を実行する必要がなく、また実際に実行できないことがあるので、NGDハードウェア320は、マネージャハードウェア216よりもはるかに簡素であり得る。NGDハードウェア320はデータバス上で「ポートがない」ので、NGDハードウェア320は、データチャネルへのアクセスのための、データバス上の割り当てられたポートを有し得ない。しかしながら、NGDハードウェア320は、第2の処理デバイス110-2が、データバス上で利用可能な使用されていない帯域幅を使用して、第1の処理デバイス110-1およびデータバス上の他のコンポーネント140と通信するのを可能にできる。たとえば、SLIMバスは、第2の処理デバイス110-2がNGDハードウェア320を通じてSLIMバス上でメッセージを送信するのを可能にできる、あらゆるデータチャネルとは別個のメッセージング能力(たとえば、メッセージングチャネル)を有する。したがって、NGDハードウェア320は、データバスへの十分なアクセスを第2の処理デバイス110-2に提供するために、データバスを通じた基本的なメッセージング能力のみを必要とし得る。NGDハードウェア320は、データチャネルへのアクセスのための、データバス上の割り当てられたポートを有し得ないが、そのメッセージング能力は、メッセージングチャネルを介したデータへのアクセスのためのアドレスを含み得る。
【００４７】
データバスを利用することによって、第2の処理デバイス110-2は、2つの処理デバイス110の間に別々の通信リンクを必要とすることなく、第1の処理デバイス110-1と通信することができる。たとえば、処理デバイス110の間のIPC情報は、データバスのメッセージング能力に何らかのプロトコルを実装することによって交換され得る。そのような技法の例は、全体が参照によって本明細書に組み込まれる、2011年4月2日に出願された、「METHOD FOR CONCURRENT SLIMBUS ACCESS FROM MULTIPLE SOFTWARE CONTEXTS」という表題の米国特許出願第61/471,106号において説明されている。
【００４８】
第2の処理デバイス110-2がNGDハードウェア320を通じてデータバスと直接通信するのを可能にすることによって、第2の処理デバイス110-2から、データバス上の他のコンポーネントおよび/またはデバイス(フレーマおよび/またはマネージャ能力を有さないことがある処理デバイスを含む)への通信は、もはや第1の処理デバイス110-1によって中継される必要がない。このことは、帯域幅および処理能力を節約するのを助け得る。たとえば、第2の処理デバイス110-2は、第2の処理デバイス110-2が特定のコンポーネント140と通信するためにデータバス上でセットアップされるデータチャネルを必要とすることを、データバス上のメッセージングチャネルを使用して第1の処理デバイス110-1に示すために、NGDハードウェア320を使用することができる。第1の処理デバイス110-1が、マネージャソフトウェア217およびマネージャハードウェア216を使用して、要求されたデータチャネルを作成した後、第2の処理デバイス110-2は次いで、データバスを通じて対応するコンポーネント140と直接通信するのが自由になる。第1の処理デバイス110-1が、何らかの追加の情報の中継を続ける必要はない。NGDハードウェア320はデータ転送能力を有し得ないので、第2の処理デバイス110-2は、データバスに通信可能にリンクされた別個のデータ転送ハードウェア(図示せず)を利用することによって、データチャネルを通じて通信することができる。
【００４９】
マネージャソフトウェア217および/またはマネージャハードウェア216が、データチャネルをセットアップすること、または同様の管理機能を実行することを要求されない場合、第1の処理デバイス110-1は、第2の処理デバイス110-2がコンポーネント140と通信するのを可能にする必要はないことがある。たとえば、SLIMバスを利用する実施形態では、第2の処理デバイス110-2は、SLIMバスメッセージングを使用して、NGDハードウェア320を通じて、コンポーネント140のレジスタに直接命令し、かつ/またはそのレジスタを直接制御することができる。そのような能力は、第2の処理デバイス110-2が第1の処理デバイス110-1と一緒に通信する必要性をなくす。
【００５０】
図3は、2つの処理デバイス110を有するシステム300を示すが、他の実施形態は、より多くの処理デバイス110を含み得る。各追加の処理デバイス110は、データバスにアクセスしコンポーネント140および他の処理デバイス110と通信するために、NGDハードウェア320およびサテライトソフトウェア310を含み得る。そのような構成は、各処理デバイス110が、上で説明されたようなセットアップデータチャネルのようなマネージャ機能を実行するために、第1の処理デバイス110-1にアクセスすることを可能にする。したがって、上の技法は、非常に多数の処理デバイス110を有するシステムを含むように、推定され得る。したがって、NGDハードウェア320を通じてデータバスに接続される任意の数の処理デバイス110が、互いに、さらには、データバスに接続されたコンポーネント140と、データバスのメッセージング能力を使用して通信するように構成され得る。
【００５１】
図1〜図3をさらに参照して図4を見ると、クライアントアプリケーション230-2へのアクセスを、NGDハードウェア320を使用することによってデータバス上のコンポーネント140に提供する、簡略化された処理400が示される。しかしながら、プロセス400は例にすぎず、限定的ではない。プロセス400は、たとえば、ブロックを追加、除去、再配置、結合、および/または同時に実行することによって、改変され得る。図示され説明されたプロセス400に対する、さらなる他の改変も可能である。
【００５２】
NGDハードウェア320に接続される処理デバイス110によってソフトウェア(またはコンピュータ可読媒体に記憶された他の命令)で実行され得るプロセス400が、ブロック405において開始してよく、そこで、コンポーネント140にアクセスするための要求が受信される。上で論じられたように、そのような要求は、クライアントアプリケーション230からサテライトソフトウェア310に通信され得る。その上、要求は、コンポーネント140へのアクセスを明確に求めなくてよいが、そのようなアクセスを求めるものとして、サテライトソフトウェア310によって解釈され得る。ブロック410において、データチャネルが求められるかどうかが判定される。言い換えると、マネージャ116に要求しなければならないかどうかが判定される。サテライトソフトウェア310は、要求およびデータバスの既知の仕様に基づいてこの判定を行うことができる。
【００５３】
データチャネルが求められない場合、ブロック415において、メッセージングデータが、NGDハードウェア320を介してコンポーネント140に送信される。またブロック420において、対応する返信が受信される。上で論じられたように、そのような返信は、とりわけ、レジスタ値が変えられたことの確認応答、および/またはレジスタ値の読み取りを含み得る。最後に、ブロック425において、対応する応答が、要求を行ったアプリケーションに提供される。
【００５４】
一方、クライアントアプリケーション(または他の要求エンティティ)によって受信された要求がデータチャネルを求める場合、対応する要求は、マネージャ116に対して行われる。要求は、データバス上のメッセージングチャネルを介して、NGDハードウェア320を使用してマネージャ116に送信され、マネージャ116は処理デバイス110と関連付けられ得る。要求は、要求されたコンポーネント、所望される帯域幅、データ転送のための時間長、および/または転送すべきデータの量などを示す、種々の情報を含み得る。マネージャ116が対応するデータチャネルを割り当てると、ブロック435において、マネージャ116から返信および/または確認応答が受信される。
【００５５】
データチャネルが割り当てられると、データは、デーバス上のデータチャネルを介して、対応するコンポーネント140へ、かつ/または対応するコンポーネント140から通信される。上で示されたように、NGDハードウェア320はデータ転送能力を有し得ないので、そのような通信は、別個のデータ転送ハードウェアを利用することによって可能にされ得る。ブロック445において、対応するデータがアプリケーションに提供される。そのようなデータは、とりわけ、データ転送の成功の確認応答、および/またはコンポーネント140から通信されたデータを含み得る。
【００５６】
図5は、本発明の一実施形態による、データバス上のポートを有さない通信デバイス(たとえば、NGDハードウェア320)を使用して、SLIMバスのようなデータバス上の情報を通信するための方法を示す、簡略化されたフローチャートである。方法は、たとえば、処理デバイス110、NGDハードウェア320、衛星ハードウェア310、マネージャハードウェア116、および/またはマネージャソフトウェア217のような図3のシステム300の様々なコンポーネントを使用して実行され得る。
【００５７】
図5を参照すると、ブロック510において、データバスに結合されるコンポーネント140へのアクセスを求める要求が受信される。そのような要求は、たとえば、サテライトソフトウェア310を実行する処理デバイス110-2、専用回路(たとえば、特定用途向け集積回路(ASIC))、より大きなシステムのハードウェアコンポーネントおよび/もしくはソフトウェアコンポーネント、または同様の手段に対して、クライアントアプリケーション230-2によって行われ得る。さらに、要求されたアクセスは、コンポーネント140へ、かつ/またはコンポーネント140から、データをストリーミングできるためのアクセスを含み得る。方法はまた、ブロック520において、データバスのデータチャネルの割り当てを求めるアクセスを決定するステップを含む。本明細書で論じられるように、データバスは、マネージャソフトウェア217および/またはマネージャハードウェア216を通じて提供されるような、TDM技法を使用してバス上に割り当てられ得る、多数のデータチャネルを提供することができる。アクセスがデータチャネルの割り当てを求めているという判定は、要求のタイプ、サイズ、タイミング、および/または発生元のような多数の要因のいずれかに基づいて、要求を受信するコンポーネント(たとえば、処理デバイス110)によって行われ得る。
【００５８】
方法はさらに、ブロック530において、データバスのメッセージング能力を使用して、データの第1のセットを通信するステップを含む。そのような通信は、たとえば、NGDハードウェア320、ASIC、ハードウェアコンポーネントおよび/もしくはソフトウェアコンポーネント、または他のポートのない通信手段を使用して、データバスを介して、マネージャハードウェア216および/またはマネージャソフトウェア217を有する第2の処理デバイス110-1に対して、第1の処理デバイス110-2によって行われ得る。データの第1のセットは、データバスを介したコンポーネント140と処理デバイス110との間の後続の通信のためにデータチャネルを割り当てるのに使用され得る、種々の情報のいずれをも含み得る。したがって、データの第1のセットは、たとえば、コンポーネント140の識別情報、要求された帯域幅、通信されるべきデータの量(推定の量または実際の量)、要求された通信期間、および/または他の関連する情報を含み得る。いくつかの実施形態によれば、処理デバイス110-2は、NGDハードウェア320およびサテライトソフトウェア310を使用して、データバスのメッセージングチャネル上でメッセージにアクセスしメッセージを送信することができる。これは、本来は使用されない、メッセージングに割り当てられるチャネルの部分にアクセスするステップを含んでよく、これによってメッセージングチャネルの使用率および効率を向上させる。
【００５９】
図5の方法について続けると、ブロック540において、データバスのデータチャネルが割り当てられる。そのような割り当ては、マネージャハードウェア116、マネージャソフトウェア217、および/または、コンポーネント140とNGDハードウェア320に結合された処理デバイス110-2との間のデータバスのデータチャネルを管理するための他の手段によって行われ得る。前に述べられたように、NGDハードウェア320は、データ転送能力を有し得ないので、データが、コンポーネント140と、NGDハードウェア320とは別個の処理デバイス110-2のデータ転送ハードウェアとの間で通信されるように、データチャネルがセットアップされ得る。
【００６０】
最後に、ブロック550において、データの第2のセットが、データチャネルを使用してコンポーネントに通信される。データチャネルが割り当てられると、データ転送ハードウェアおよび/または他のデータ通信手段を通じて処理デバイス110-2によってコンポーネントに通信され得る、データの第2のセットは、所望の機能および元のデータ転送要求に応じて、種々の情報のいずれをも含み得る。任意選択で、データの第3のセットが、データチャネルを使用して、コンポーネント140から処理デバイス110-2に通信されてよく、たとえば、処理デバイス110-2に確認応答を通信する。システムの機能、データチャネルの帯域幅、および/または同様の考慮事項によって指定されるように、様々な他のタイプのデータが、コンポーネント140と処理デバイス110-2(または他の要求エンティティ)との間で転送され得る。
【００６１】
図5に示される特定のブロックは、データバス上にポートを有さない通信デバイス(たとえば、NGDハードウェア320)を利用する、ある具体的な方法を提供することを、理解されたい。ステップの他の順序も、代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、異なる順序で、上で概説されたステップを実行することができる。その上、図5に示される個々のステップは、個々のステップに対して様々な順序で適宜実行され得る、複数のサブステップを含み得る。さらに、追加のステップが、具体的な用途に応じて、追加または削除され得る。当業者は、多くの変形、修正、および代替を認識するだろう。
【００６２】
図6は、本発明の別の実施形態による、データバス上のポートを有さない通信デバイス(たとえば、NGDハードウェア320)を使用して、SLIMバスのようなデータバス上の情報を通信するための方法を示す、簡略化されたフローチャートである。方法は、たとえば、NGDハードウェア320を有する処理デバイス110およびサテライトソフトウェア310を使用するなどして実行され得る。
【００６３】
方法はブロック610で開始してよく、ブロック610において、データバスに結合されるコンポーネント140へのアクセスを求める要求が受信される。図5の方法と同様に、そのような要求は、たとえば、図5に関連して説明されたように、サテライトソフトウェア310または同様の手段を使用して、処理デバイス110-2に対してクライアントアプリケーション230-2によって行われ得る。しかしながら、ここでは要求は異なり得る。データチャネルの割り当てを求めるコンポーネント140へのアクセスの要求ではなく、要求は、コンポーネントに直接アクセスするためのものであり得る。
【００６４】
ブロック620において、データの第1のセットは、データバスのメッセージング能力を使用して、NGDハードウェア320または同様のポートのない通信手段によって、コンポーネント140に通信される。データチャネルが必要ではない場合、この実施形態のデータの第1のセットは、図5の方法に関連して説明されたようなデータの第1のセットとは異なり得る。たとえば、データチャネルをセットアップするために使用され得るデータを含むのではなく、データの第1のセットのデータは、レジスタおよび/またはレジスタ値を示すものを含む、デバイスのレジスタの値を決定するための要求、またはコンポーネント140のレジスタに書き込むべき値を示す情報を、含み得る。同じく、ブロック630において、データの第2のセットが、NGDハードウェア320またはデータを受信するための同様の手段を使用して、コンポーネント140から受信される。データの第2のセットは、たとえば、コンポーネント140のレジスタの値、および/または、コンポーネント140のレジスタへの値の書き込みが成功したことを示すものであってよい。
【００６５】
最後に、ブロック640において、メッセージは、データの第2のセットに基づいて、サテライトソフトウェア310、ASIC、ソフトウェアおよび/もしくはハードウェア、または他のそのような手段を使用して、要求エンティティに通信される。たとえば、要求エンティティは、データバス上のコンポーネント140のレジスタ値を読み取るのを要求する、クライアントアプリケーション230-2であってよい。処理デバイス110-2によって実行されるサテライトソフトウェア310が要求を受信した後、処理デバイス110-2は、データバスのメッセージングチャネルを使用して所望のコンポーネント140に通信するために、NGDハードウェア320を使用することができる。コンポーネント140は、レジスタ値を返すことができ、サテライトソフトウェア310は、値、および/または値に基づくメッセージを、クライアントアプリケーション230-2に中継することができる。
【００６６】
図6に示される特定のブロックは、データバス上にポートを有さない通信デバイス(たとえば、NGDハードウェア320)を利用する、ある具体的な方法を提供することを、理解されたい。ステップの他の順序も、代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、異なる順序で、上で概説されたステップを実行することができる。その上、図6に示される個々のステップは、個々のステップに対して様々な順序で適宜実行され得る、複数のサブステップを含み得る。さらに、追加のステップが、具体的な用途に応じて、追加または削除され得る。当業者は、多くの変形、修正、および代替を認識するだろう。
【００６７】
上の開示は、NGDハードウェアを使用したシステムおよび技法について論じるが、他の通信デバイスが同様に使用されてよい。そのような通信デバイスはポートを有さなくてよく、したがって必要なハードウェアが簡素になる。加えて、または代替的に、そのような通信デバイスは、フレーマおよび/またはマネージャ能力を含まなくてよく、これによってハードウェアをさらに簡素にできる。ハードウェアのこれらの簡略化は、比較的低いコストにもつながり得る。
【００６８】
さらに他の技法も可能である。
【符号の説明】
【００６９】
110  処理デバイス
112  I/Oインターフェース
114  フレーマ
116  マネージャ
120  データライン
130  クロックライン
140  コンポーネント
142  I/Oインターフェース
144  汎用デバイス
150  入力デバイス
160  クライアントアプリケーション
216  マネージャハードウェア
217  マネージャソフトウェア
230  クライアントアプリケーション
310  サテライトソフトウェア
320  NGDハードウェア
【図１】
0005930430.tif 000002
【図２】
0005930430.tif 000003
【図３】
0005930430.tif 000004
【図４】
0005930430.tif 000005
【図５】
0005930430.tif 000006
【図６】
0005930430.tif 000007