(57)【要約】  データ通信のための方法、装置、およびコンピュータプログラム製品が提供される。方法は、通信リンク上で複数のデータチャネルを提供するステップと、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のデータチャネルによって使用される帯域幅との間の差分として決定するステップと、未使用帯域幅を仮想チャネルに割り振るステップと、時間ベースの多重化方式に従って複数のデータチャネルおよび仮想チャネルをスケジュールするステップと、仮想チャネルがスケジュールされるとき、送信機を通信リンクに結合するために使用されるインターフェース回路を無効化するステップとを含み得る。複数のデータチャネルの各々は、通信リンク上で送信されるべきデータのソースに割り当てられ得る。
2018516489.tif 000002
【特許請求の範囲】
【請求項１】
送信機における電力使用を管理するための方法であって、
通信リンク上で複数のデータチャネルを提供するステップであって、前記複数のデータチャネルの各々が、前記通信リンク上で送信されるべきデータのソースに割り当てられる、ステップと、
未使用帯域幅を、前記通信リンクによって提供される総帯域幅と前記複数のデータチャネルによって使用される帯域幅との間の差分として決定するステップと、
前記未使用帯域幅を仮想チャネルに割り振るステップと、
時間ベースの多重化方式に従って前記複数のデータチャネルおよび前記仮想チャネルをスケジュールするステップと、
前記仮想チャネルがスケジュールされるとき、前記送信機を前記通信リンクに結合するために使用されるインターフェース回路を無効化するステップと
を備える方法。
【請求項２】
前記複数のデータチャネルによって使用される前記帯域幅の第1の部分が、決定論的データトラフィックを送信するために割り振られる、請求項1に記載の方法。
【請求項３】
前記複数のデータチャネルによって使用される前記帯域幅の第2の部分が、非決定論的データトラフィックを送信するために割り振られる、請求項2に記載の方法。
【請求項４】
前記複数のデータチャネルによって使用される前記帯域幅の第3の部分が、ランダムな制御送信のために割り振られる、請求項2に記載の方法。
【請求項５】
前記インターフェース回路を無効化するステップが、
ある時間期間の間、前記インターフェース回路を電源切断するステップ
を備える、請求項1に記載の方法。
【請求項６】
前記複数のデータチャネルに関連付けられた最大パケットレートに基づいて電力サイクルの持続時間を決定するステップと、
前記未使用帯域幅と前記総帯域幅の比に基づいて電源切断期間を計算するステップと
をさらに備え、
少なくとも1つのデータチャネルが、前記最大パケットレートで送信するためのデータを提供する、
請求項1に記載の方法。
【請求項７】
前記送信機を電源切断するステップが、
受信機に電源切断させる信号を前記受信機に送信するステップと、
前記未使用帯域幅と前記総帯域幅の比に基づいて計算された持続時間の間、前記送信機を電源切断するステップと
を備える、請求項1に記載の方法。
【請求項８】
前記複数のデータチャネルおよび前記仮想チャネルをスケジュールするステップが、
先着順アービトレーションアルゴリズムを使用するステップ
を備える、請求項1に記載の方法。
【請求項９】
前記複数のデータチャネルから第1のチャネルを削除するステップと、
前記第1のチャネルを削除することによって解放される帯域幅の量に対応する量だけ、前記仮想チャネルに割り振られた帯域幅を増加させるステップと
をさらに備える、請求項1に記載の方法。
【請求項１０】
第2のチャネルを前記複数のデータチャネルに追加するステップと、
前記未使用帯域幅の一部分を前記第2のチャネルに再割振りするステップと
をさらに備える、請求項1に記載の方法。
【請求項１１】
装置であって、
前記装置を通信リンクに結合するように適合されたインターフェース回路と、
複数のチャネルの各々からデータストリームを受信するように構成された符号化回路と、
未使用帯域幅を、前記通信リンクによって提供される総帯域幅と前記複数のチャネルによって使用される帯域幅との間の差分として計算し、
前記未使用帯域幅を仮想チャネルに割り振り、
時間ベースの多重化方式に従って前記複数のチャネルおよび前記仮想チャネルをスケジュールする
ように構成されたアービタと
を備え、
前記仮想チャネルがスケジュールされるとき、前記インターフェース回路の少なくとも送信機部分が無効化される、
装置。
【請求項１２】
前記複数のチャネルによって使用される前記帯域幅の第1の部分が、決定論的データ送信のために割り振られる、請求項11に記載の装置。
【請求項１３】
前記複数のチャネルによって使用される前記帯域幅の第2の部分が、非決定論的データ送信のために割り振られる、請求項12に記載の装置。
【請求項１４】
前記複数のチャネルによって使用される前記帯域幅の第3の部分が、ランダムな制御送信のために割り振られる、請求項12に記載の装置。
【請求項１５】
前記アービタが、
前記複数のチャネルおよび前記仮想チャネルをスケジュールするために電力サイクルを使用し、
前記未使用帯域幅と前記総帯域幅の比に基づいて電源切断期間を計算する
ように構成され、
前記電力サイクルの持続時間が、少なくとも1つのデータチャネルに関連付けられた最大パケットレートに基づいて決定される、
請求項11に記載の装置。
【請求項１６】
前記仮想チャネルに割り振られた前記帯域幅が、あるチャネルが前記複数のチャネルから削除されたときに解放される帯域幅の量に対応する量だけ増加される、請求項15に記載の装置。
【請求項１７】
前記未使用帯域幅の一部分が、新しいチャネルが前記複数のチャネルに追加されるときに前記新しいチャネルに再割振りされる、請求項15に記載の装置。
【請求項１８】
前記アービタが、先着順アービトレーションアルゴリズムを使用するように構成される、請求項11に記載の装置。
【請求項１９】
装置であって、
通信リンク上で複数のデータチャネルを提供するための手段であって、前記複数のデータチャネルの各々が、前記通信リンク上で送信されるべきデータのソースに割り当てられる、手段と、
未使用帯域幅を、前記通信リンクによって提供される総帯域幅と前記複数のデータチャネルによって使用される帯域幅との間の差分として決定するための手段であって、前記未使用帯域幅が仮想チャネルに割り振られる、手段と、
時間ベースの多重化方式に従って前記複数のデータチャネルおよび前記仮想チャネルをスケジュールするための手段と
を備え、
前記仮想チャネルがスケジュールされるとき、前記装置を前記通信リンクに結合するために使用されるインターフェース回路が無効化される、
装置。
【請求項２０】
前記複数のデータチャネルによって使用される前記帯域幅の第1の部分が、決定論的データトラフィックのために割り振られる、請求項19に記載の装置。
【請求項２１】
前記複数のデータチャネルによって使用される前記帯域幅の第2の部分が、非決定論的データトラフィックのために割り振られる、請求項20に記載の装置。
【請求項２２】
前記複数のデータチャネルによって使用される前記帯域幅の第3の部分が、制御情報のために割り振られる、請求項20に記載の装置。
【請求項２３】
前記複数のデータチャネルおよび前記仮想チャネルをスケジュールするための前記手段が、前記複数のデータチャネルに関連付けられた最大パケットレートに基づく電力サイクルの持続時間、前記未使用帯域幅と前記総帯域幅の比として計算された電源切断期間を使用して構成され、少なくとも1つのデータチャネルが、前記最大パケットレートで送信するためのデータを提供する、請求項19に記載の装置。
【請求項２４】
前記複数のデータチャネルおよび前記仮想チャネルをスケジュールするための前記手段が、先着順アービトレーションアルゴリズムを使用するように構成される、請求項19に記載の装置。
【請求項２５】
前記複数のデータチャネルを提供するための前記手段が、
前記複数のデータチャネルから第1のチャネルを削除する
ように構成され、
前記仮想チャネルに割り振られた前記帯域幅が、前記第1のチャネルに割り振られた帯域幅の量に対応する量だけ増加される、
請求項19に記載の装置。
【請求項２６】
前記複数のデータチャネルを提供するための前記手段が、
第2のチャネルを前記複数のデータチャネルに追加する
ように構成され、
前記未使用帯域幅の一部分が前記第2のチャネルに再割振りされる、
請求項19に記載の装置。
【請求項２７】
1つまたは複数の命令を記憶したプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
通信リンク上で複数のデータチャネルを提供することであって、前記複数のデータチャネルの各々が、前記通信リンク上で送信されるべきデータのソースに割り当てられる、提供することと、
未使用帯域幅を、前記通信リンクによって提供される総帯域幅と前記複数のデータチャネルによって使用される帯域幅との間の差分として決定することと、
前記未使用帯域幅を仮想チャネルに割り振ることと、
時間ベースの多重化方式に従って前記複数のデータチャネルおよび前記仮想チャネルをスケジュールすることと、
前記仮想チャネルがスケジュールされるとき、前記少なくとも1つの処理回路を前記通信リンクに結合するために使用されるインターフェース回路を無効化することと
を行わせる、プロセッサ可読記憶媒体。
【請求項２８】
前記複数のデータチャネルによって使用される前記帯域幅の第1の部分が、決定論的データトラフィックを送信するために割り振られ、前記複数のデータチャネルによって使用される前記帯域幅の第2の部分が、非決定論的データトラフィックを送信するために割り振られ、前記複数のデータチャネルによって使用される前記帯域幅の第3の部分が、ランダムな制御送信のために割り振られる、請求項27に記載の記憶媒体。
【請求項２９】
前記命令が、前記少なくとも1つの処理回路に、
前記複数のデータチャネルに関連付けられた最大パケットレートに基づいて電力サイクルの持続時間を決定させ、
前記未使用帯域幅と前記総帯域幅の比に基づいて電源切断期間を計算させ、
前記仮想チャネルがスケジュールされるとき、前記電源切断期間の間、前記インターフェース回路を電源切断させ、
少なくとも1つのデータチャネルが、前記最大パケットレートで送信するためのデータを提供する、
請求項27に記載の記憶媒体。
【請求項３０】
前記命令が、前記少なくとも1つの処理回路に、
前記仮想チャネルがスケジュールされるとき、受信機に電源切断させる信号を前記受信機に送信させ、
前記未使用帯域幅と前記総帯域幅の比に基づいて計算された持続時間の間、前記少なくとも1つの処理回路を電源切断させる、
請求項27に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年4月13日に米国特許商標庁に出願された非仮出願第14/685,334号の優先権および利益を主張する。
【０００２】
本開示は、一般に通信システムに関し、より詳細には、装置内の集積回路デバイスを接続する通信リンクに関する。
【背景技術】
【０００３】
デバイスの機能性および複雑性が増大するにつれて、集積回路(IC)デバイス間で提供されるデジタル通信インターフェースには、拡大する帯域幅がプロビジョニングされる。たとえば、モバイル通信機器は、複数の多様な機能を実行し、無線周波数トランシーバ、カメラ、ディスプレイシステム、ユーザインターフェース、コントローラ、ストレージなどを含むICデバイスを使用して能力を提供し得る。汎用シリアルインターフェースは当業界において知られており、キロビット毎秒(Kbps)で測定可能な帯域幅を提供するインター集積回路(I2C)インターフェースから、ギガビット毎秒(Gbps)で測定可能な帯域幅を有する周辺構成要素相互接続エクスプレス(PCI-E)などの高ビットレートインターフェースにわたる。
【０００４】
他の例は、10/100メガビット毎秒(Mbps)、1Gbps、10Gbpsの帯域幅を提供するイーサネット(登録商標)規格、1.5Mbpsから10Mbpsの間の帯域幅を提供するユニバーサルシリアルバス(USB)規格、ならびに、ディスプレイシステムインターフェース(DSI)およびDigRFを含むモバイル業界プロセッサインターフェース(MIPI)アライアンスによって定義される規格および仕様、高精細度マルチメディアインターフェース(HDMI(登録商標))を含む米国電子工業会(EIA)および/または全米家電協会(CEA)によって定義される規格、およびDisplayPortを含むビデオエレクトロニクス規格協会(VESA)によって定義される規格などのマルチメディア規格などの業界規格によって定義される。
【０００５】
別の例では、「アドバンストマイクロコントローラバスアーキテクチャ」(AMBA)オンチップ相互接続は、システムオンチップ(SoC)またはネットワークオンチップ(NOC)における機能ブロックを接続および管理するために使用され得るインターフェースを定義する。AMBAは、1つまたは複数のマスタデバイスを1つまたは複数のスレーブデバイスに接続し得る「高度拡張可能インターフェース」(AXI)を含む。
【０００６】
多種多様なシリアルインターフェース規格は、多数の異なる用途の幅広い要件に由来する。用途、または用途の発生に応じて、最も適切なインターフェースの選択が行われなければならない。たとえば、3Gから4G、5Gへの無線周波数(RF)技術の進化は、コスト、性能および電力消費の制約に関する課題を含め、ロングタームエボリューション(LTE)および/またはワイヤレスローカルエリアネットワーク(WLANまたはWiFi)用チップセットなどのモバイルデバイスチップセットにおける新しい能力の統合に関する課題を提示する。
【０００７】
モバイルデバイスの中の構成要素を接続する通信インターフェースは、モバイルデバイスの電力バジェットのかなりの部分を消費する場合があり、モバイル通信デバイスおよび他のデバイスは、そのような通信インターフェースがアイドルであるとき、節電動作モードに入るように構成され得る。モバイル通信デバイスは一般的に、ピーク帯域幅が増加した期間を経験し、平均帯域幅使用はピーク帯域幅をかなり下回る。したがって、電力使用スケジューラおよび帯域幅使用スケジューラは、帯域幅の変化する需要および使用に適合するために通信する必要があり得る。しかしながら、スケジューラ間のそのような通信は、変化する条件に対応する際にタイムラグおよび他の非効率性をもたらし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
デバイス間の改善された通信に対する需要が高まり続けるにつれて、デバイス間のインターフェースを管理するための方法の改善が必要とされている。
【課題を解決するための手段】
【０００９】
本開示のいくつかの態様は、様々な装置の中のICデバイス間で使用され得るデジタル通信インターフェースを実装および管理するためのシステム、装置、方法および技法に関する。いくつかの態様は、連続する時間間隔が節電のために作成され、スケジュールされ得る帯域幅を割り振るためのシステム、装置、方法および技法を提供する。
【００１０】
本開示の様々な態様では、方法、コンピュータプログラム製品、および装置が提供される。方法は、通信リンク上で複数のデータチャネルを提供するステップと、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のデータチャネルによって使用される帯域幅との間の差分として決定するステップと、未使用帯域幅を仮想チャネルに割り振るステップと、時間ベースの多重化方式に従って複数のデータチャネルおよび仮想チャネルをスケジュールするステップと、仮想チャネルがスケジュールされるとき、送信機を通信リンクに結合するために使用されるインターフェース回路を無効化するステップとを含み得る。複数のデータチャネルの各々は、通信リンク上で送信されるべきデータのソースに割り当てられ得る。
【００１１】
いくつかの態様は、装置を通信リンクに結合するように適合されたインターフェース回路と、複数のチャネルの各々からデータストリームを受信するように構成された符号化回路と、アービタとを有する装置に関する。アービタは、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のチャネルによって使用される帯域幅との間の差分として計算し、未使用帯域幅を仮想チャネルに割り振り、時間ベースの多重化方式に従って複数のチャネルおよび仮想チャネルをスケジュールするように構成され得る。仮想チャネルがスケジュールされるとき、インターフェース回路の少なくとも送信機部分が無効化され得る。
【００１２】
いくつかの態様は、通信リンク上で複数のデータチャネルを提供するための手段と、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のデータチャネルによって使用される帯域幅との間の差分として決定するための手段と、時間ベースの多重化方式に従って複数のデータチャネルおよび仮想チャネルをスケジュールするための手段とを含む装置に関する。仮想チャネルがスケジュールされるとき、装置を通信リンクに結合するために使用されるインターフェース回路が無効化され得る。複数のデータチャネルの各々は、通信リンク上で送信されるべきデータのソースに割り当てられ得る。未使用帯域幅は、仮想チャネルに割り振られ得る。
【００１３】
いくつかの態様は、1つまたは複数の命令を記憶したプロセッサ可読記憶媒体に関する。プロセッサ可読記憶媒体は、一時的または非一時的記憶媒体であり得る。少なくとも1つの処理回路によって実行されると、命令は、少なくとも1つの処理回路に、通信リンク上で複数のデータチャネルを提供させ、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のデータチャネルによって使用される帯域幅との間の差分として決定させ、未使用帯域幅を仮想チャネルに割り振らせ、時間ベースの多重化方式に従って複数のデータチャネルおよび仮想チャネルをスケジュールさせ、仮想チャネルがスケジュールされるとき、少なくとも1つの処理回路を通信リンクに結合するために使用されるインターフェース回路を無効化させることができる。複数のデータチャネルの各々は、通信リンク上で送信されるべきデータのソースに割り当てられ得る。
【図面の簡単な説明】
【００１４】
【図１】複数の利用可能な規格のうちの1つに従って動作する集積回路デバイス間のデータリンクを利用する装置を示す図である。
【図２】装置内のICデバイスを接続するために提供され得、本明細書で開示するいくつかの態様に従って適合され得る、データ通信リンクを示す図である。
【図３】本明細書で開示するいくつかの態様による、データ通信リンクに結合された装置のための簡略化されたシステムアーキテクチャを示す図である。
【図４】データ通信リンクに対する時間ベースの多重化のいくつかの態様を示す図である。
【図５】データ通信リンク上の電力サイクリングのいくつかの態様を示す図である。
【図６】本明細書で開示するいくつかの態様による、適応的電力サイクリング用に構成されたデータ通信リンクを示す図である。
【図７】本明細書で開示するいくつかの態様による、トラフィックおよび電力サイクリングを管理するように適合または構成されたアービタを示す図である。
【図８】本明細書で開示するいくつかの態様に従って適合され得る処理回路を利用する装置の一例を示すブロック図である。
【図９】本明細書で開示するいくつかの態様による、送信機における電力使用を管理する方法のフローチャートである。
【図１０】本明細書で開示するいくつかの態様に従って適合された処理回路を利用する送信装置のためのハードウェア実装形態の一例を示す図である。
【発明を実施するための形態】
【００１５】
添付の図面に関して以下に記載する詳細な説明は、様々な構成の説明として意図されており、本明細書で説明する概念が実践される場合がある唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解を与えるための具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践される場合があることは当業者には明らかであろう。場合によっては、そのような概念を不明瞭にすることを避けるために、よく知られている構造および構成要素がブロック図の形態で示される。
【００１６】
次に、電気通信システムのいくつかの態様が、様々な装置および方法を参照しながら提示される。これらの装置および方法について、以下の詳細な説明において説明し、様々なブロック、モジュール、構成要素、回路、ステップ、プロセス、アルゴリズムなど(「要素」と総称される)によって添付の図面に示す。これらの要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実装され得る。そのような要素がハードウェアとして実装されるかソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【００１７】
例として、要素、または要素の任意の部分、または要素の任意の組合せは、1つまたは複数のプロセッサを含む「処理システム」を用いて実装され得る。プロセッサの例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明する様々な機能を実行するように構成された他の適切なハードウェアを含む。処理システムの中の1つまたは複数のプロセッサは、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数などを意味するように広く解釈されるべきである。
【００１８】
したがって、1つまたは複数の例示的な実施形態では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、プロセッサ可読媒体と呼ばれることもあるコンピュータ可読媒体上の1つまたは複数の命令またはコードとして、記憶または符号化され得る。コンピュータ可読媒体は、コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、コンパクトディスクROM(CD-ROM)もしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、およびフロッピーディスク(disk)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００１９】
概説
本明細書で開示するいくつかの態様によれば、既知の帯域幅を有する周期的および/または準周期的データストリームは、単一の通信リンク上でアグリゲートされ、集中され得る。場合によっては、通信リンクは、ICデバイス間で展開されるシリアルインターフェースなどのシリアルバスを含み得る。通信リンクを介して送信するためのランダムなトラフィックが受信され得る。ランダムなトラフィックは、たとえば、制御トラフィックを含み得る。ランダムなトラフィックは、通信リンクによって提供される帯域幅の小さい割合を消費し得る。場合によっては、ランダムなトラフィックおよび/または制御トラフィックは、制限された遅延で送信されるべき、低レイテンシ要件を有するトラフィックを含み得る。
【００２０】
多くの適用例では、装置の電力消費を低減することが望ましい。一例では、電力消費は、通信インターフェースに関連付けられた回路に提供されるクロッキング信号の頻度が低下したときに低減され得る。別の例では、電力消費は、通信インターフェースに関連付けられたいくつかの回路が電源切断されたときに低減され得る。別の例では、電力消費は、通信リンクの中の電流フローが削減されるかまたは終了されるように、ラインドライバが高インピーダンス状態に置かれたときに低減され得る。
【００２１】
本明細書で開示するいくつかの態様は、マルチチャネル通信リンクを介して送信されるトラフィックのアービトレーションおよびスケジューリングに関する。処理回路は、未使用帯域幅を監視、測定、計算および/またはモデル化することができる。未使用帯域幅は、通信リンク上で送信するための周期的なおよび/またはランダムなデータを提供するデータチャネルとともにスケジュールされ得る仮想データチャネルに割り当てられ得る。仮想チャネルは、通信リンク用に静的にまたは動的に構成される電力サイクルにおける電源切断期間を識別するために使用され得る。電力サイクルは、1つまたは複数のデータチャネルのトラフィック特性およびレイテンシ要件に基づいて構成され得る。スケジューリングは、データチャネルおよび仮想チャネルを含む定義されたチャネル間のアクセスをアービトレーションすることを含み得る。
【００２２】
本明細書で開示するいくつかの態様は、Nの理論的上限なしにN個のチャネルに適用され得るスケーラブルなスケジューリング/アービトレーションを提供する。関連するデータストリームアービトレーションおよび電力サイクル要件を単一のプロセスにおいて策定することによってデータトラフィックおよび電力サイクルを最適にスケジュールすることができる、アービトレーションおよびスケジューリング方法について説明する。別個のデータストリームアービトレーションおよび電力サイクリングスケジュールの対話に起因する複雑性が削減され得る。一例では、スケーラブルで効率的なアービトレーションは、介在するアービトレーションサイクルなしで連続したデータ転送が実行されることを可能にする先着順スケジューリングアルゴリズムの使用を含み得る。この例では、アービトレーション/スケジューリングがアービトレーションにのみ適用されるとき、実質的に100%の帯域幅利用が可能になり、電力サイクリングのために未使用帯域幅がスケジュールされるとき、節電が実現可能である。
【００２３】
複数のICデバイス下位構成要素を有するデバイスの例
本発明のいくつかの態様は、電話、モバイルコンピューティングデバイス、アプライアンス、自動車用電子機器、アビオニクスシステム、ウェアラブルコンピューティングデバイスなどの装置の下位構成要素を含む電子デバイス間で展開される通信リンクに適用可能であり得る。図1は、ICデバイス間の通信リンクを利用し得る装置100の一例を示す。一例では、装置100は、無線アクセスネットワーク、コアアクセスネットワーク、インターネットおよび/または別のネットワークとRF通信トランシーバ106を通じて通信するワイヤレス通信デバイスを含み得る。通信トランシーバ106は、処理回路102に動作可能に結合され得る。処理回路102は、特定用途向けIC(ASIC)108などの1つまたは複数のICデバイスを有し得る。ASIC108は、1つまたは複数の処理デバイス、論理回路などを含み得る。処理回路102は、処理回路102によって実行され得る命令およびデータを維持し得るメモリデバイス112などのプロセッサ可読ストレージを含んでもよく、かつ/またはそれに結合されてもよい。処理回路102は、オペレーティングシステム、および、ワイヤレスデバイスのメモリデバイス112などの記憶媒体の中に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)110レイヤのうちの1つまたは複数によって制御され得る。メモリデバイス112は、ROMもしくはRAM、EEPROM、フラッシュカード、または処理システムおよびコンピューティングプラットフォームにおいて使用され得る任意のメモリデバイスを含み得る。処理回路102は、装置100を構成し、動作させるために使用される動作パラメータおよび他の情報を維持することができるローカルデータベース114を含むか、またはそれにアクセスすることができる。ローカルデータベース114は、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装され得る。処理回路はまた、構成要素の中でも、アンテナ118、ディスプレイ120、ボタン124および/または一体型キーボードもしくは外部キーボード122などのオペレータ制御などの外部デバイスに動作可能に結合され得る。
【００２４】
ICデバイス間で提供される通信リンクの例
図2は、システム200(たとえば、図1の装置100)内のICデバイス202、230を接続するために提供され得、本明細書で開示するいくつかの態様に従って適合され得る、通信リンク220を示すブロック概略図である。システム200は、ワイヤレスモバイルデバイス、携帯電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ウェアラブルコンピューティングデバイス、アプライアンス、ゲームデバイスなどにおいて具現化されるか、またはこれらを含む場合がある。通信リンク220は、単一のデバイス内で互いに極めて近接して提供されるか、または互いから遠く離れて物理的に位置し得る物理的に別個の構成要素の間で分散される、ICデバイス202および230を接続するために使用され得る。一例では、システム200は、通信リンク220を通じてデータおよび制御情報を交換する複数のICデバイス202および230を含む単一のデバイスにおいて具現化される。別の例では、通信リンク220は、ICデバイス202および230を担持するチップキャリア、基板または回路板上に設けられ得る。別の例では、第1のICデバイス202は、フリップフォンのキーパッドセクションに配置され得、第2のICデバイス230は、フリップフォンのディスプレイセクションに配置され得る。別の例では、通信リンク220の一部分は、物理的に別個のデバイスまたはサブシステムを接続するケーブル接続または光接続を含み得る。
【００２５】
通信リンク220は、複数のチャネル222、224および226を含み得る。1つまたは複数のチャネル226は双方向であってもよく、半二重モードおよび/または全二重モードで動作し得る。1つまたは複数のチャネル222および224は、単方向であってもよい。通信リンク220は、一方向においてより高い帯域幅を提供する非対称であってもよい。本明細書で説明する一例では、第1の通信チャネル222は順方向リンク222と呼ばれることがあり、第2の通信チャネル224は逆方向リンク224と呼ばれることがある。両方のICデバイス202および230が通信リンク222上で送信および受信するように構成される場合でも、第1のICデバイス202はホストシステムまたは送信機として指定され得、第2のICデバイス230はクライアントシステムまたは受信機として指定され得る。一例では、順方向リンク222は、第1のICデバイス202から第2のICデバイス230にデータを通信するとき、より高いデータレートで動作し得、逆方向リンク224は、第2のICデバイス230から第1のICデバイス202にデータを通信するとき、より低いデータレートで動作し得る。
【００２６】
ICデバイス202および230は各々、プロセッサあるいは他の処理回路もしくは処理デバイスおよび/またはコンピューティング回路もしくはコンピューティングデバイス206、236を有し得る。一例では、第1のICデバイス202は、ワイヤレストランシーバ204およびアンテナ214を通じてワイヤレス通信を維持することを含む、システム200のコア機能を実行し得、第2のICデバイス230は、ディスプレイコントローラ232を管理するかまたは動作させるユーザインターフェースをサポートし得る。第1のICデバイス202または第2のICデバイス230は、カメラコントローラ234を使用してカメラまたはビデオ入力デバイスの動作を制御し得る。ICデバイス202および230のうちの1つまたは複数によってサポートされる他の特徴は、キーボード、音声認識構成要素、および他の入力デバイスまたは出力デバイスを含み得る。ディスプレイコントローラ232は、液晶ディスプレイ(LCD)パネル、タッチスクリーンディスプレイ、インジケータなどのディスプレイをサポートする回路およびソフトウェアドライバを含み得る。記憶媒体208および238は、それぞれの処理デバイス206および236、ならびに/またはICデバイス202および230の他の構成要素によって使用される命令およびデータを維持するように適合された、一時的記憶デバイスおよび/または非一時的記憶デバイスを含み得る。各処理デバイス206、236ならびにその対応する記憶媒体208および238と、他のモジュールおよび回路との間の通信は、それぞれ、1つまたは複数のバス212および242によって容易にされ得る。
【００２７】
逆方向リンク224は、順方向リンク222と同じ方法で作動され得、順方向リンク222および逆方向リンク224は、同等の速度でまたは異なる速度で送信することが可能であり得、ここで、速度はデータ転送レートおよび/またはクロッキングレートとして表され得る。順方向および逆方向のデータレートは、適用例に応じて桁が実質的に同じであるかまたは桁が異なることがある。いくつかの適用例では、単一の双方向リンク226は、第1のICデバイス202と第2のICデバイス230との間の通信をサポートし得る。順方向リンク222および/または逆方向リンク224は、たとえば、順方向リンク222および逆方向リンク224が同じ物理接続を共有し、半二重様式で動作するとき、双方向モードで動作するように構成可能であり得る。一例では、通信リンク220は、業界規格または他の規格に従って第1のICデバイス202と第2のICデバイス230との間で制御情報、コマンド情報および他の情報を通信するように作動され得る。
【００２８】
一例では、順方向リンク222および逆方向リンク224は、ディスプレイリフレッシュのために810Mbpsでピクセルデータを配信する、ワイドビデオグラフィックスアレイ(WVGA)の毎秒80フレームのLCDドライバICをフレームバッファなしでサポートするように構成または適合され得る。別の例では、順方向リンク222および逆方向リンク224は、ダブルデータレート同期型ダイナミックランダムアクセスメモリ(SDRAM)などのダイナミックランダムアクセスメモリ(DRAM)との通信を可能にするように構成または適合され得る。符号化デバイス210および/または230は、クロック遷移ごとに複数のビットを符号化することができ、ワイヤの複数のセットは、SDRAMからのデータ、制御信号、アドレス信号などを送信および受信するために使用され得る。
【００２９】
順方向リンク222および逆方向リンク224は、特定用途向け業界規格に準拠するか、または適合することができる。一例では、MIPI規格は、アプリケーションプロセッサICデバイス202と、モバイルデバイスの中のカメラまたはディスプレイをサポートするICデバイス230との間の物理レイヤインターフェースを定義する。MIPI規格は、モバイルデバイス用のMIPI仕様に準拠する製品の動作特性を支配する仕様を含む。MIPI規格は、相補型金属酸化物半導体(CMOS)並列バスを利用するインターフェースを定義し得る。
【００３０】
一例では、図2の通信リンク220は、(N個のワイヤとして示す)複数の信号ワイヤを含むワイヤードバスとして実装され得る。N個のワイヤは、シンボルの中で符号化されたデータを搬送するように構成され得、ここで、クロック情報は、複数のワイヤを介して送信されるシンボルのシーケンスに埋め込まれる。
【００３１】
図3は、本明細書で開示するいくつかの態様に従って適合され得るデバイス300のためのアーキテクチャの一般化された例を示すブロック概略図である。デバイス300は、センサ、入力/出力デバイス、ユーザインターフェースデバイス、撮像デバイス、ワイヤレス通信回路などの1つまたは複数の機能要素304を管理するように構成された処理回路302を含み得る。処理回路302は、処理回路302を通信リンク320に結合するように適合され得る、1つまたは複数のトランシーバ310、ドライバ316および受信機318を含み得る。通信リンク320は、デバイス300に結合され、デバイス300をシステム中の1つまたは複数のデバイスおよび/または処理回路に相互接続するために使用される、複数のデータリンクのうちの1つであり得る。いくつかの例では、通信リンク320は、装置内のICデバイス間で提供され得る。いくつかの例では、通信リンク320は、物理的に別個の装置を接続し得る。
【００３２】
通信リンク320は、適用例のニーズに従って構成され得る。通信リンク320は、たとえば、時間ベースの多重化を使用して通信リンク320を共有するデータトラフィックの複数のチャネルを搬送し得る。一例では、共通の通信リンク320を介して複数のソースからのデータを送信するために時分割多重(TDM)方式が利用され得、その結果、各ソースからのデータは、スケジューリング期間および/または電力サイクル期間として定義され得る時間期間の一部分の間に、通信リンク320上に存在する信号において送信される。別の例では、トラフィック需要に従って通信リンク320がいくつかの可変ビットレートチャネルまたはデータストリームに配分される、統計的多重化方式または動的な帯域幅割振り方式が使用され得る。時間ベースの多重化方式では、各データソースはチャネルを割り振られ得、データソースからのデータのストリームは、先着順に非同期的に送信されるパケットにおいて提供され得る。場合によっては、パケットは、公平性、差別化されたサービスおよび/または保証されたサービス品質を提供するスケジューリングアルゴリズムに従って送信され得る。
【００３３】
場合によっては、1つまたは複数の機能304は、通信リンク320への優先アクセスを与えられ得る。低レイテンシおよび/または高優先度トラフィックは、より優先度が低いトラフィックと、および/または時々の、低頻度のもしくはランダムなデータ送信を含むトラフィックと、通信リンク320を共有し得る。たとえば、低いデータレートで低頻度の制御データは、大量のデータおよび/または時間依存のデータを特徴とするビデオストリーミングデータと通信リンク320を共有し得る。
【００３４】
一例では、処理回路302は、たとえば、画像センサを管理するセンサ制御機能304を提供するように適合され得る。別の例では、処理回路302は、1つまたは複数の環境条件、機械の動作状態などを監視するセンサ制御機能304を提供するように適合され得る。処理回路302は、構成レジスタ306および/または他の記憶デバイス324、プロセッサおよび/または制御論理312、トランシーバ310ならびに、必要に応じて処理回路302を通信リンク320に結合するために、いくつかのラインドライバ回路316および/または受信機回路318を含み得る。プロセッサおよび/または制御論理312は、たとえば、状態機械、シーケンサ、信号プロセッサまたは汎用プロセッサを含み得る。トランシーバ310は、1つまたは複数の受信機310aと、1つまたは複数の送信機310cと、タイミング、論理および記憶回路および/またはデバイスを含むいくつかの共通回路310bとを含み得る。場合によっては、トランシーバ310は、エンコーダおよびデコーダ、クロックおよびデータ復元回路などを含み得る。送信クロック(TXCLK)信号328が送信機310cに供給される場合があり、ここで、TXCLK信号328は、データ送信レートを決定するために使用され得る。
【００３５】
通信リンク320は、単方向、双方向の半二重通信モードまたは全二重通信モードをサポートし得る。通信リンク320上の送信は、1つまたは複数の通信規格、プロトコルおよびシグナリング仕様に適合するか、または準拠することができる。
【００３６】
マルチチャネルアービトレーション
本開示のいくつかの態様は、複数の機能構成要素間のデータ送信をサポートするように構成された多重アクセスデータ通信リンクに関する。発信デバイス(すなわち、送信機)において、アービトレーション回路および/または論理は、いくつかのタイプのトラフィックのためのデータ通信リンクへのアクセスをスケジュールし得、他のタイプのトラフィックのためのデータ通信リンクへのオンデマンドアクセスを提供し得る。
【００３７】
図4は、本明細書で開示するいくつかの態様に従って適合されたデータ通信リンク412のいくつかの態様を示す簡略化されたタイミング図400である。通信リンク412は、送信ノード402と受信ノード422との間の複数のアクセスデータ通信をサポートし得る。一例では、通信リンク412は、複数のデバイスを結合するバスとして構成され得、通信リンク412に結合された各デバイスは、通信リンク412上で1つまたは複数のタイムスロットを割り振られる場合があり、かつ/または、アービトレーションプロトコルを使用してアクセスをネゴシエートするかもしくはアクセスを求めて競合する場合がある。
【００３８】
図示の例では、単一のデバイスまたは処理回路内の複数の機能は、共通の通信インターフェースを通じて通信し得る。エンコーダ406は、複数の機能/ソースの各々によって提供されるデータを、対応する送信スロット414において、アービタ410によって提供されるスケジューリングおよび制御情報に従って、アグリゲート、符号化、および/または送信するために利用され得る。動作時、通信リンク412は、一連の送信スロット414のうちの1つまたは複数のスロットにおいて送信され得る複数のデータチャネルを提供し得る。通信リンク412上でトランスポートされるデータは、主な決定論的(deterministic)レートに関連付けられ得る。一例では、ワイヤレス通信デバイス内の通信リンク412は、セルラーRATおよびWiFi RATを含む1つまたは複数の無線アクセス技術(RAT)、非圧縮オーディオ/ビデオストリーム、ならびに他のタイプのトラフィックに関連付けられたトラフィックに、データチャネルを割り振ることができる。複数のデータソースおよび/またはチャネル4041〜404nによって提供されるデータは、送信ノード402において蓄積および/または集中され得る。一例では、エンコーダ406は、複数のチャネル4041〜404nからのデータをパケット化し、アービタ410によって生成または実装されるスケジュールに従ってパケットを送信し得る。受信ノード422において、データは、通信リンク412を介して送信されたパケットから復号および/または抽出され得、パケット化解除されたデータは、それらのそれぞれの複数の宛先データチャネル4241〜424nに配信され得る。
【００３９】
送信ノード402において実装されるアービタ410は、データが転送される順序を決定することができ、データ送信をスケジュールする。アービタ410は、レイテンシの目標および期待値を満たしている間に、通信リンク412によって提供される利用可能な帯域幅を効率的に使用するように構成され得る。利用可能な帯域幅は、所与の時間期間に通信リンク412を介して転送され得るビット数として計算され得、通信リンク412のスループットは、プロトコルヘッダ、アービトレーションおよび同期に関連付けられたビットまたは送信などの付加ビットを除く、送信され得る様々なチャネル4041〜404nからのデータの測度であり得る。帯域幅使用の効率は、スループットと利用可能な帯域幅の関係または比に基づいて推定され得る。
【００４０】
レイテンシおよびバッファサイズに関するスケジューリング考慮事項
レイテンシは、ソースデータチャネル4041〜404nからのデータのキャプチャと宛先データチャネル4241〜424nにおけるデータの到着との間に経過した時間として計算され得る。レイテンシは、キューなどにおけるデータ蓄積(バッファリング)によってもたらされる時間期間、パケットが送信スロット414を待機する時間に関するスケジューリング遅延、通信リンク412の構造に関する送信時間(「飛行時間」)、および受信ノード422における受信とデータの最終的な宛先への発送との間の時間を含み得る。一般的には、レイテンシと帯域幅使用の効率との間でトレードオフが行われる。たとえば、大きいバッファまたはキューの使用は、ギャップおよび/またはパディングなしで大きいチャンクにおいてデータが転送されることを可能にし、それによって、帯域幅使用の効率を高め得る。大きいバッファまたはキューは、ハードウェアコストを上げ、レイテンシを増加させる可能性があり、処理制約に起因する限られたレイテンシを許容することができる一定のデータに影響を及ぼし得る。
【００４１】
アービタ410は、アービトレーションアルゴリズムを使用することによって複数のチャネル4041〜404nからのデータのための送信スケジュールを管理することができ、このことは、レイテンシと必要なバッファサイズの両方に著しく影響を及ぼす可能性がある。アービトレーションアルゴリズムは、適用例のニーズに従って適合または構成され得る。一例では、アービトレーションアルゴリズムは、スケジューリングの「先着順」手法を使用してレイテンシおよびバッファサイズを最適化するように構成され得る。順序が狂ってパケットがスケジュールされるとき、バッファまたはキューにおいて待機するパケットに対するレイテンシが増加される場合があり、一定のレートまたはほぼ一定のレートを有するデータストリームの中のチャネル4041〜404nのうちの対応するチャネルによって提供され得るデータを蓄積するために、バッファまたはキューの容量の増加が必要とされる場合がある。後者のシナリオでは、バッファは、順序が狂ったスケジューリングによって生成された最悪のレイテンシに基づいてサイズ決定され得る。
【００４２】
電力サイクリング
モバイル通信デバイスおよびモバイルコンピューティングデバイスでは、電力消費は一般に、デバイスの設計において顕著に対処される問題である。通信インターフェースはかなりのエネルギーを消費する場合があり、バッテリー充電イベントの間のモバイルデバイスの動作時間を低減する可能性がある。したがって、デバイスが低電力状態に置かれるとき、通信インターフェースを電源切断することが望ましい場合がある。低電力状態は、データが通信リンク412を介してアクティブに送信または受信されないときに開始され得る。一例では、帯域幅使用(BWU)は利用可能な帯域幅の40%に達する場合があり、デバイスは、理論上、60%の確率でその通信インターフェースを電源切断することができる。実際には、データは、通信インターフェースが電源切断される期間中を含め、1つまたは複数のチャネル4041〜404nから継続的に受信され得る。したがって、通信インターフェースが電源切断されるとき、パケット化され、送信の準備ができているデータに対してレイテンシが増加され得る。レイテンシは、電力サイクルの持続時間に依存し得る。
【００４３】
図5は、電力サイクリングのいくつかの態様を示すタイミング図500である。本例では、通信リンク412(図4参照)は、アクティビティ512、516、520の期間と、電力サイクルに起因するアイドル期間514、518とを示し得る。単一のアクティブ期間512、516、または520の間、1つまたは複数のパケット510が通信リンク412上で送信され得る。リンクアクティビティ502は、電力節約ニーズ、チャネル4041〜404nによって生成されたデータの観測されたレート、観測されたバッファ利用率、および他の要因に基づいて実装される電力サイクル504によって左右され得る。電力サイクル504は、最大パケットレート(MPR)に関係し得る。たとえば、MPRがマイクロ秒当たり1パケットであるとき、電力サイクル504は、マイクロ秒ごとに1パケットの送信をサポートするように構成され得る。すなわち、電力サイクル504の期間(TPcycle)506は、次のパケットが送信のために到着する前に各到着パケットが送信されることを可能にするために、1マイクロ秒未満に設定されてもよい。アイドル時間期間の持続時間(TPD)508は、最大サイズのパケットの送信時間に基づいて選択されてもよい。場合によっては、電力サイクリングは、電力サイクル504がより長い期間506を有するときに、より効率的である。一例では、6マイクロ秒のアイドル持続時間を有する10マイクロ秒の期間506は、0.6マイクロ秒のアイドル持続時間を有する1マイクロ秒の期間506よりも効率的であり得る。
【００４４】
電力サイクリングスケジュールがアービタ410によって適用される送信スケジュールと競合するかまたはそれに干渉するとき、競合および非効率が生じ得る。1つまたは複数のチャネル4041〜404nから受信されるデータフローの変化は、電力サイクル504の期間506の持続時間の調整を必要とする、かつ/または、電力サイクル504の期間506に対するアイドル時間期間の持続時間508の変化に比例する場合がある。場合によっては、MPRの増加は、電力サイクル504の期間506の短縮を必要とし得る。一例では、MPRは、動きが開始するまたは終了するシーンのビデオ画像からビデオストリームが導出されるときに変動し得る。別の例では、1つまたは複数のチャネル4041〜404nから受信されるデータフローの量は、経時的に変化する場合があり、アイドル時間期間の持続時間508と電力サイクル504の期間506の比は、バッファ利用率を制御するために修正される場合がある。
【００４５】
電力サイクル504の構成の変更は、一般的に、アービタ410に通信されて、利用可能な帯域幅および/またはアクティブ送信期間の持続時間の差異に適応させるためにアービタ410がそのスケジューリングアルゴリズムを調整することを可能にする。アービタ410によって利用されるスケジューリングアルゴリズムの変更は、電力サイクル504を構成するために使用される条件に影響を及ぼし得る。したがって、電力サイクル504およびスケジューリングアルゴリズムは、平衡が達成されるまで、反復して修正され得る。アービタ410によって使用される、電力サイクル504を制御するためのスケジューラは、電力サイクリングと送信スケジューリングとの間の平衡により迅速に集中するために、互いと通信していることを必要とし得る。平衡を実現する際の通信オーバーヘッドおよび遅延は、電力使用と通信インターフェースの両方の効率性を低減し得る。場合によっては、電力サイクルは、パケットが送信されている間に電源切断が行われ得るように、送信スケジュールとは無関係に作動され得る。
【００４６】
適応的電力サイクリング
アービタ410によって使用されるスケジューリングアルゴリズムは、適応的電力サイクリング機構を提供するために、本明細書で開示するいくつかの態様に従って適合され得る。一例では、電力サイクリング要件は、アービタに仮想チャネルに対応する時間期間をスケジュールさせる仮想チャネルからの仮想データフローを確立することによって満足され得る。仮想チャネルがスケジュールされるとき、通信インターフェースが電源切断され得る。
【００４７】
図6は、本明細書で開示するいくつかの態様による、適応的電力サイクリング用に構成されたデータ通信リンク612のいくつかの態様を示す簡略化されたタイミング図600である。図4の通信リンク412の場合と同様に、通信リンク612は、送信ノード602において受信される複数のデータソースおよび/またはチャネル6041〜604nからのデータの送信をサポートし得る。エンコーダ606は、複数のデータチャネル6041〜604nからのデータをパケット化し、アービタ610によって生成されたスケジュールに従ってパケット614を受信ノード622に送信し得る。この例では、可変長パケット614がデータ通信リンク上で送信される。他の例では、データチャネル6041〜604nの各々が、各電力サイクルの中の1つまたは複数のタイムスロットにおける送信のために割り当てられ得る。受信ノード622において、データは、通信リンク612を介して送信されたパケットから復号および/または抽出され得、パケット化解除されたデータは、それらのそれぞれの複数の宛先6241〜624nに配信され得る。
【００４８】
この例では、アービタ610は、送信ノード602の電力サイクル要件を容易にする電力サイクルチャネル608からの要求をサービスするように適合され得る。電力サイクルチャネル608は、符号化するための実際のデータを生成しない仮想チャネルであり得る。電力サイクルチャネル608が送信のためにスケジュールされるとき、送信ノード602の通信インターフェースが電源切断され得る。したがって、送信ノード602によって受信ノード622に送信されるパケット614のストリームにおいてアイドル期間616が生じる。
【００４９】
動作時、電力サイクルチャネル608は、アービタ610によって利用されるスケジューリングアルゴリズムによって、通信リンクへのアクセスを許可される。スケジューリングアルゴリズムは、他のデータチャネル6041〜604nがスケジュールされるのと同じように電力サイクルチャネル608をスケジュールするので、電力サイクルチャネル608の性質に気づいている必要はない。制御論理および/または回路618は、電力サイクルチャネル608がスケジュールされるときに通信インターフェースおよび/またはエンコーダを電源切断するように適合され得る。
【００５０】
電力サイクルチャネル608は、データチャネルにおけるパケットレートに関連付けられた期間に対応する一定の間隔でサービスを要求し得、電力サイクル期間は、通信リンク612のMPRの計算において考慮され得る。電力サイクルチャネル608は、サイズが通信リンクの未使用帯域幅に対応する帯域幅を割り振られ得る。スケジューリングアルゴリズムは、MPRに基づいて決定された期間内の単一の連続する時間期間において電力サイクルチャネル608をスケジュールするように構成され得る。
【００５１】
いくつかの態様によれば、電力サイクルチャネル608は実際のデータチャネル6041〜604nと同じ方法でスケジュールされるので、電源切断イベントの開始は、前のパケットが送信を完了するまで遅延され得る。言い換えれば、電力サイクルチャネル608は、データチャネル6041〜604nのうちの1つに対する許可が終了した後、アービタ610から(通信リンク612へのアクセスの)許可を受信する。実際のパケットが送信されないので、電力サイクルチャネル608に対する許可の持続時間は、タイマーを使用して制御され得る。
【００５２】
場合によっては、メッセージまたは信号は、受信機がそのインターフェースを電源切断することができるように、電源切断期間の開始時に受信機に送信され得る。たとえば、送信機は、電源切断期間の持続時間を示す電源切断メッセージを送り得る。受信機は、電源切断期間よりも少ないかまたはそれに等しい時間期間の間、そのインターフェースを電源切断し得、送信機から次の送信を受信するのに間に合うように、インターフェースを再アクティブ化し得る。電源切断期間は、送信機回路および/または受信機回路のインターフェースに供給される電力をオフにすることによって開始され得る。いくつかの例では、電源切断期間は、ラインドライバを高インピーダンス状態に置くことによって開始され得る。いくつかの例では、電源切断は、電源切断期間の持続時間の間に送信機クロック信号および/または受信機クロック信号の頻度を中断または低減することによって開始され得る。
【００５３】
適応的電力サイクリングの例
電力サイクルチャネル608は、状態機械、処理回路、カウンタ、レジスタおよび制御論理を含み得るモジュールおよび回路の組合せを使用して実装され得る。通信リンクに関するまたは通信リンクを特徴づけるいくつかのパラメータは、システム起動時に決定され得る。パラメータは、通信リンクに関連付けられたアクティブチャネルの数、データチャネル6041〜604nの各々に許可されるかまたはそれらの各々によって必要とされる帯域幅(BW[ch])、データチャネル6041〜604nの各々のパケットレート(PR[ch])、通信リンクによって提供される利用可能な総帯域幅(BWmax)などを定義し得る。アービタ610および/またはアービタ610によって使用されるスケジューリングアルゴリズムは、パラメータに基づいて構成され得る。たとえば、電力サイクルを設定するために使用されるMPRは、MPR=max(PR[ch])として計算され得、電力サイクルチャネル608は、BWPcycle=BWmax-sum(BW[ch])として計算される帯域幅要件または許可を有するものとして特徴づけられ得る。これらのパラメータならびにアービタ610および/またはスケジューリングアルゴリズムの構成は、チャネルが追加または削除されたときに、および/または、1つもしくは複数のチャネルについて帯域幅もしくはパケットレートが修正されたときに、調整され得る。
【００５４】
電力サイクルチャネル608は、電力サイクル要求間の間隔を追跡する1つまたは複数のカウンタを含んでもよく、ここで、間隔は1/MPRとして計算され得る。たとえば、カウントダウンカウンタは、値1/MPRを有するように初期化され得、電力サイクル要求は、カウントダウンカウンタがゼロに達するまで減分されたときに生成され得る。電源切断カウンタは、電源切断期間の持続時間を追跡するために使用され得る。電源切断期間の持続時間は、(1-BWU)/MPRとして計算され得、電源切断カウンタは、電源切断サイクル要求が許可されたときに初期化され得る。
【００５５】
電源切断期間の持続時間が満了すると、電源切断カウンタは、通信インターフェースを再アクティブ化するために電源投入シーケンスをトリガし得る。たとえば、信号検出回路、ラインドライバ、受信機、エンコーダ606などが電源投入されるかまたは他の方法で再アクティブ化され得る。いくつかのデバイスでは、再アクティブ化は瞬時に達成されない可能性があるかまたは瞬時に達成することができず、通信インターフェースを再アクティブ化するために必要なアクティブ化時間が、アービタ610に与えられ得る。アクティブ化時間は、インターフェースの設計からおよび/または動作の特徴づけによって知られ得る。電力サイクル持続時間および/または電源切断期間は、アクティブ化時間または他のオーバーヘッドに適応するように調整され得る。
【００５６】
アービタ610は、リンクアクティブ期間の間に送信されたデータパケット間に挿入され得るランダムな制御トラフィックなどの他のオーバーヘッドを考慮し得る。モニタは、そのようなトラフィックに関連付けられた時間を測定するために利用され得、オーバーヘッドは、電力サイクル期間ごとのオーバーヘッド時間として表され得る。オーバーヘッド時間は、実効電力サイクル持続時間から差し引かれる場合もある。
【００５７】
いくつかの例では、適応的電力サイクリングは、複数の動的に変化するパラメータに応答し得る。電力サイクリング要求間の間隔は、適用例および/または動作のニーズに基づいて適合され得る。たとえば、電力サイクリング要求間の間隔は、パワーオン状態とパワーオフ状態との間の切替えのレートが低減され、電力サイクリング効率が高まるように、遅いトラフィックの間に増加され得る。
【００５８】
各電力サイクルの持続時間は、制御トラフィックを扱うように適合され得る。一例では、電力サイクル持続時間は、制御パケットを送信するための要求が電力サイクルチャネル608からの要求よりも高い優先度を割り当てられるとき、制御トラフィックに適応するように短縮され得る。電力サイクル持続時間は、たとえば、前のアクティブ期間に観測された制御トラフィックの量だけ短縮され得る。電力サイクルの深さ(電源切断期間の持続時間)は、観測されたリンク状態に基づいて適合され得る。電力サイクル持続時間は電力サイクルの始めに知られる場合があり、アービタ610または他の制御論理618は、節電を増大させることができるより深い電力サイクルのための十分な時間があるかどうかを決定し得る。場合によっては、アービタ610または他の制御論理618は、計算された電力サイクル持続時間が効率的な電力サイクリングには短すぎると決定し得、通信リンクは、通信リンクのアクティビティレベルが低下するまでアクティブのままであり得る。
【００５９】
アービタの例
図7は、本明細書で開示するいくつかの態様による、トラフィックおよび電力サイクリングを管理するように適合または構成され得るアービタ702のいくつかの態様を示す簡略ブロック図700である。アービタ702は、複数のチャネル704から受信されるデータトラフィックを監視するように構成された回路、論理および/またはモジュールを含み得るチャネルマネージャ710を有し得る。チャネルマネージャ710は、複数のチャネル704からデータを受信するために使用されるキューおよび/またはバッファの動作を制御し得る。場合によっては、アービタ702は、バッファおよび/またはキューとして動作する記憶デバイスを含み得るか、または記憶デバイスに結合され得る。チャネルマネージャ710は、キューステータスを決定および監視することができる回路またはモジュールを含み得る。チャネルマネージャ710は、1つもしくは複数のチャネル704からのデータがいつ送信のために利用可能であるか、および/または、1つもしくは複数のキューもしくはバッファがいつ空であるかもしくは輻輳しているかを、アービトレーション論理712にシグナリングするように構成され得る。
【００６０】
アービトレーション論理712は、1つまたは複数のアービトレーションアルゴリズムを実行するように適合されたシーケンサおよび/または状態機械を含み得る。アービトレーション論理712は、アービトレーションアルゴリズムを修正および/またはチューニングするために使用され得る構成情報706およびチャネルメトリック716を受信し得る。構成情報706は、最大パケット長、MPR、BWU、クロックレート、および他のそのような情報を含め、アービトレーションサイクル持続時間、チャネル優先度を定義する情報、ならびに/または、通信プロトコルおよびタイミングを定義する情報を含み得る。場合によっては、MPR、BWUおよび他の動的に変化するチャネルパラメータは、通信リンク上で実際のデータ送信を監視することによってフィードバックを提供し得るチャネルマネージャ710および/またはインターフェースコントローラ718から受信される情報に基づいて、チャネルメトリック716として算出され得る。
【００６１】
アービトレーション論理712はまた、電力サイクル管理に関するバス要求を受信し得る。一例では、電力サイクルタイマーおよび/またはカウンタ714は、アービトレーション論理712に対する要求を生成するために、電力構成パラメータ708を使用して構成され得る。電力サイクルタイマーおよび/またはカウンタ714は、トラフィックレベルが増加するときの電源切断時間の変化に適応するために、アービトレーション論理712によって提供されるチャネルメトリック716および/または情報に応答し得る。たとえば、電力サイクルタイマーおよび/またはカウンタ714ならびにアービトレーション論理712は、1つまたは複数のチャネルが送るべきデータをもたないとき、電源切断期間の持続時間を増加させるように動的に再構成され得る。電力サイクルタイマーおよび/またはカウンタ714は、通信インターフェースの電源切断が要求されていることを示すために使用される1つまたは複数の信号を生成し得る。
【００６２】
インターフェースコントローラ718は、通信リンクインターフェースの動作を制御するために使用され得る制御信号724を提供し得る。たとえば、インターフェースコントローラ718は、通信リンクにアクセスすることを許可されている現在のチャネルからエンコーダがデータを受信することを可能にし得る。インターフェースコントローラ718は、パケット、フレーム、スロットタイミングなどを決定するために、送信タイミング回路720と対話し得る。送信タイミング回路720は、エンコーダ、ならびに他の送信デバイスおよび/または受信デバイスによって使用されるクロック信号722を供給し得る。インターフェースコントローラ718はまた、電力サイクルタイマーおよび/またはカウンタ714ならびにアービトレーション論理712から受信される信号に応答して、通信インターフェースの電源切断を制御し得る。
【００６３】
動作時、アービトレーションアルゴリズムは、最適な帯域幅利用を実現するために、通信リンク構成および現在のトラフィック状態を追跡するように構成され得る。アービトレーションアルゴリズムは、マルチチャネルアービトレーションに、一定の帯域幅を有する決定論的トラフィック、ならびに本質的にかなりランダムであり得る非決定論的(non-deterministic)トラフィックのためのサポートを提供し得る。一例では、非決定論的トラフィックは、可変の帯域幅を有し得る制御トラフィックを含み得る。本明細書で開示するいくつかの態様によれば、アービトレーションアルゴリズムは、電力状態制御を実装するために使用され得る。
【００６４】
一例では、アービトレーションアルゴリズムは、先着順アルゴリズムとして動作するように構成され得る。チャネルマネージャ710は、各チャネル704に待機カウントを割り当てることができ、ここで、様々なチャネル704の待機カウントは、チャネル704からのパケットが送信を待機している時間量を表すために使用され得る。チャネル704のうちの1つによるパケット転送の要求が許可されると、その対応する待機カウントは(たとえば、0の値に)リセットされ得るが、他のチャネル704の待機カウントは1だけ増加される。最も高い待機カウントを有するチャネルは、一般的に、次の許可を割り当てられる。
【００６５】
複数の同時の要求の発生は、各チャネルの要求信号をタイムスロットに割り当てることによって回避され得る。たとえば、16チャネル実装形態では、16個の連続するタイムスロットが提供され得る。
【００６６】
アービトレーションアルゴリズムは、パケットがそれらのそれぞれの到着順序に従って転送されるデータフローを取得するように構成され得、ここで、レイテンシは平衡状態で適正であり、最適な帯域幅使用をもたらす。様々な例では、レイテンシは、要求の周期によって制限され得、順序が狂った転送は、レイテンシ増加の可能性を高め得る。アービトレーションアルゴリズムは、十分な帯域幅が利用可能であれば、自然に非周期的な要求を扱うように構成され得る。
【００６７】
アービトレーションアルゴリズムは、電力サイクリングに関するアービトレーションを扱うように適合され得る。アービトレーションアルゴリズムは、未使用帯域幅が利用可能であるとき、通信リンクに低電力状態を仮定させ得る。言い換えれば、帯域幅は、データトラフィックによってまたは低電力状態によってのいずれかで、完全に利用される。低電力状態の期間は、データチャネル704によって使用されない帯域幅に対応する帯域幅を有する別のチャネルであるかのようにモデル化され得る。このようにして、アービタ702は、最も効率的な方法で、すべての未使用帯域幅を低電力状態に自然に割り振ることができる。
【００６８】
未使用帯域幅は、次のように計算され得る。
【００６９】
【数１】
2018516489.tif 000003
【００７０】
チャネルによって使用される帯域幅は、次のように計算され得る。
【００７１】
【数２】
2018516489.tif 000004
【００７２】
チャネルのパケットレートは、次のように計算され得る。
【００７３】
【数３】
2018516489.tif 000005
【００７４】
チャネルのパケットサイズは、次のように計算され得る。
【００７５】
【数４】
2018516489.tif 000006
【００７６】
これらの計算を使用して、最大レイテンシ条件は、次のように表され得る。
【００７７】
【数５】
2018516489.tif 000007
【００７８】
等価の未使用パケットサイズについての得られた式は、次のように表され得る。
【００７９】
【数６】
2018516489.tif 000008
【００８０】
仮想チャネルは、カウンタ714を使用して低電力状態をスケジュールするために提供され得る。カウンタ714のうちの第1のカウンタは、データチャネル704によって生成される要求をシミュレートする周期的な要求を生成するために使用され得る。このカウンタの(最小期間に対応する)最大レートは、
【００８１】
【数７】
2018516489.tif 000009
【００８２】
を使用して計算され得る。
【００８３】
カウンタ714のうちの第2のカウンタは、仮想チャネルすなわち「低電力」チャネルへのアクセスが許可されるときに適用される、低電力期間の持続時間を生成するために使用され得る。これはアクティブチャネルのデューティサイクルと等価であり、したがって、バイト/パケット計算が使用され得る。
【００８４】
【数８】
2018516489.tif 000010
【００８５】
チャネル704の任意の構成およびトラフィック情報(たとえば、チャネルメトリック716)について、計算に必要なパラメータは一定であり得る。したがって、これらのパラメータは、必要または要望に応じて、テーブルとして記憶されるかもしくはアービトレーションアルゴリズムに埋め込まれるか、またはオンザフライで計算される場合がある。所与の構成のためのパラメータは、チャネル704が追加もしくは削除されたときに、および/またはチャネル704のうちの1つもしくは複数に関連付けられたデータフローが変化するときに、カウンタ714をプログラムするために使用され得る。一例では、カウンタ714は、追加されたチャネルを介してデータを送る前に再プログラムされる。別の例では、カウンタ714は、削除されたチャネルがデータを送るのを停止した後に再プログラムされ得る。
【００８６】
本明細書で開示するように、低電力チャネルは未使用帯域幅を吸収する。低電力チャネルは、仮想チャネルまたはダミーチャネルと呼ばれることがある。データチャネル704から受信されるデータトラフィックは、仮想チャネルが「非アクティブ」である(すなわち、許可をもたない)とき、残りの時間期間に集中され得る。仮想チャネルの「アクティブ」期間は、低電力状態のために利用可能な生の帯域幅に対応し得る。
【００８７】
制御トラフィックは非周期的であり得、定義されたレートがない場合がある。スケジューリングアルゴリズムが制御トラフィックに合うことができる場合、制御トラフィックが挿入され得る。周期的なカウンタを構成するために使用される式は、ランダムな制御トラフィックまたは他の非決定論的トラフィックについてのスケジューリングを制御するために使用され得る。すなわち、次の通りである。
【００８８】
【数９】
2018516489.tif 000011
【００８９】
しかしながら、デューティサイクルを構成するための式は、次のように調整され得る。
【００９０】
【数１０】
2018516489.tif 000012
【００９１】
制御トラフィックは、通常ならばクロックゲーティングのために利用可能である帯域幅を吸収し得る。リンクコントローラは一般的に制御トラフィックを生成し、制御トラフィックは、所与の期間における制御トラフィックバイトをカウントするために、カウンタ714および/またはチャネルメトリック716を使用して追跡され得る。一例では、制御トラフィックバイトカウンタは、ダミーチャネルが通信リンクへのアクセスを許可されるときはいつでもリセットされ得、低電力状態のために利用可能な期間は、コントローラによる介入なしに自動的にかつ正確に調整され得る。
【００９２】
(たとえば、ソフトウェアによって制御される)処理回路による介入は、通信リンク構成、チャネル構成、および/またはトラフィックシナリオが変化したときに生じ得る。一例では、チャネルを追加または削除するための再構成が実行され得る。別の例では、総帯域幅に変化をもたらすために位相ロックループ(PLL)レートを変更するための再構成が実行され得る。電力状態遷移のタイミングに関する決定および電力状態遷移に関する他の決定は、カウンタ、比較器および他の論理によって行われ得る。
【００９３】
処理回路および方法の例
図8は、本明細書で開示する1つまたは複数の機能を実行するように構成され得る処理回路802を利用する装置のためのハードウェア実装形態の簡略化された例を示す概念図800である。本開示の様々な態様によれば、本明細書で開示する要素、または要素の任意の部分、または要素の任意の組合せは、処理回路802を使用して実装され得る。処理回路802は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ804を含み得る。プロセッサ804の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明する様々な機能を実行するように構成された他の適切なハードウェアを含む。1つまたは複数のプロセッサ804は、特定の機能を実行し、ソフトウェアモジュール816のうちの1つによって構成され、増強され、または制御され得る専用プロセッサを含み得る。1つまたは複数のプロセッサ804は、初期化中にロードされたソフトウェアモジュール816の組合せを通じて構成されてもよく、動作中に1つまたは複数のソフトウェアモジュール816をロードまたはアンロードすることによってさらに構成されてもよい。
【００９４】
図示の例では、処理回路802は、バス810によって概略的に表されるバスアーキテクチャを用いて実装され得る。バス810は、処理回路802の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。バス810は、1つまたは複数のプロセッサ804およびストレージ806を含む様々な回路を互いにリンクさせる。ストレージ806は、メモリデバイスおよび大容量記憶デバイスを含んでもよく、本明細書ではコンピュータ可読媒体および/またはプロセッサ可読媒体と呼ばれることがある。バス810は、タイミングソース、タイマー、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできる。バスインターフェース808は、バス810と1つまたは複数のトランシーバ812との間のインターフェースを提供し得る。トランシーバ812は、処理回路によってサポートされるネットワーキング技術ごとに提供され得る。場合によっては、複数のネットワーキング技術は、トランシーバ812の中に見出される回路または処理モジュールの一部または全部を共有してもよい。各トランシーバ812は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に応じて、ユーザインターフェース818(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられる場合もあり、直接またはバスインターフェース808を通じてバス810に通信可能に結合される場合がある。
【００９５】
プロセッサ804は、バス810を管理することと、ストレージ806を含み得るコンピュータ可読媒体に記憶されたソフトウェアの実行を含み得る一般的な処理とを担うことができる。この点で、プロセッサ804を含む処理回路802は、本明細書で開示する方法、機能および技法のうちのいずれかを実装するために使用され得る。ストレージ806は、ソフトウェアを実行するときにプロセッサ804によって操作されるデータを記憶するために使用されてもよく、ソフトウェアは、本明細書で開示する方法のうちのいずれか1つを実装するように構成されてもよい。
【００９６】
処理回路802の中の1つまたは複数のプロセッサ804は、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読の形でストレージ806の中または外部コンピュータ可読媒体の中に存在してもよい。外部コンピュータ可読媒体および/またはストレージ806は、非一時的コンピュータ可読媒体を含み得る。非一時的コンピュータ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、CDまたはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、EEPROM、レジスタ、リムーバブルディスク、ならびに、コンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。コンピュータ可読媒体および/またはストレージ806は、例として、搬送波、伝送線路、ならびに、コンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含み得る。コンピュータ可読媒体および/またはストレージ806は、処理回路802の中に存在するか、プロセッサ804の中に存在するか、処理回路802の外部に存在するか、または処理回路802を含む複数のエンティティにわたって分散されてもよい。コンピュータ可読媒体および/またはストレージ806は、コンピュータプログラム製品において具現化され得る。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含み得る。特定の適用例
および全体的なシステムに課される全体的な設計制約に応じて、本開示全体にわたって提示される説明した機能を実装する最良の方法を、当業者は認識されよう。
【００９７】
ストレージ806は、本明細書ではソフトウェアモジュール816と呼ばれることがある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて維持および/または編成されるソフトウェアを維持してもよい。ソフトウェアモジュール816の各々は、処理回路802上にインストールまたはロードされ、1つまたは複数のプロセッサ804によって実行されると、1つまたは複数のプロセッサ804の動作を制御するランタイムイメージ814に寄与する命令およびデータを含み得る。実行されると、いくつかの命令は、処理回路802に、本明細書で説明するいくつかの方法、アルゴリズムおよびプロセスに従って機能を実行させてもよい。
【００９８】
ソフトウェアモジュール816のうちのいくつかは、処理回路802の初期化中にロードされてもよく、これらのソフトウェアモジュール816は、本明細書で開示する様々な機能の実行を可能にするように処理回路802を構成してもよい。たとえば、いくつかのソフトウェアモジュール816は、プロセッサ804の内部デバイスおよび/または論理回路822を構成することができ、トランシーバ812、バスインターフェース808、ユーザインターフェース818、タイマー、数学的コプロセッサなどの外部デバイスへのアクセスを管理することができる。ソフトウェアモジュール816は、割込みハンドラおよびデバイスドライバと対話し、処理回路802によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含み得る。リソースは、メモリ、処理時間、トランシーバ812へのアクセス、ユーザインターフェース818などを含み得る。
【００９９】
処理回路802の1つまたは複数のプロセッサ804は、多機能であってもよく、それにより、ソフトウェアモジュール816のうちのいくつかがロードされ、異なる機能または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ804は加えて、たとえば、ユーザインターフェース818、トランシーバ812、およびデバイスドライバからの入力に応答して開始されたバックグラウンドタスクを管理するように適合され得る。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ804は、マルチタスキング環境を提供するように構成されてもよく、それにより、複数の機能の各々は、必要または要望に応じて、1つまたは複数のプロセッサ804によってサービスされるタスクのセットとして実装される。一例では、マルチタスキング環境は、異なるタスク間でプロセッサ804の制御を渡す時分割プログラム820を使用して実装されてもよく、それにより、各タスクは、任意の未処理動作が完了すると、および/または割込みなどの入力に応答して、1つまたは複数のプロセッサ804の制御を時分割プログラム820に戻す。タスクが1つまたは複数のプロセッサ804の制御を有するとき、処理回路は、事実上、制御するタスクに関連付けられた機能によって対処される目的に特化される。時分割プログラム820は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先順位付けに従って1つもしくは複数のプロセッサ804の制御を割り振る機能、および/または、1つもしくは複数のプロセッサ804の制御を処理機能に提供することによって外部イベントに応答する割込み駆動のメインループを含み得る。
【０１００】
図9は、データ通信の方法のフローチャート900である。方法は、送信機における電力使用の管理に関し得る。
【０１０１】
ブロック902において、複数のデータチャネルが通信リンク上で提供される。複数のデータチャネルの各々は、通信リンク上で送信されるべきデータのソースに割り当てられ得る。
【０１０２】
ブロック904において、未使用帯域幅は、通信リンクによって提供される総帯域幅と複数のデータチャネルによって使用される帯域幅との間の差分として決定または計算され得る。複数のデータチャネルによって使用される帯域幅の第1の部分は、決定論的データトラフィックを送信するために割り振られ得る。複数のデータチャネルによって使用される帯域幅の第2の部分は、非決定論的データトラフィックを送信するために割り振られ得る。複数のデータチャネルによって使用される帯域幅の第3の部分は、ランダムな制御送信のために割り振られ得る。
【０１０３】
ブロック906において、未使用帯域幅が仮想チャネルに割り振られ得る。
【０１０４】
ブロック908において、複数のデータチャネルおよび仮想チャネルが時間ベースの多重化方式に従ってスケジュールされ得る。複数のデータチャネルおよび仮想チャネルは、先着順アービトレーションアルゴリズムを使用してスケジュールされ得る。
【０１０５】
ブロック910において、仮想チャネルがスケジュールされるとき、送信機を通信リンクに結合するために使用されるインターフェース回路が無効化され得る。一例では、ある時間期間の間、インターフェース回路を電源切断することによって、インターフェース回路が無効化され得る。別の例では、ラインドライバの出力を高インピーダンスモードに置くことによって、インターフェース回路が無効化され得る。別の例では、1つまたは複数のクロック信号の頻度を低減することによって、インターフェース回路が無効化され得る。別の例では、1つまたは複数のクロック信号をゲーティングすることによって、インターフェース回路が無効化され得る。送信機が電源切断されているときまたはその前に、受信機に電源切断させる信号が受信機に送信され得る。未使用帯域幅と総帯域幅の比に基づいて計算された持続時間の間、送信機が電源切断され得る。
【０１０６】
場合によっては、電力サイクルの持続時間は、複数のデータチャネルに関連付けられた最大パケットレートに基づいて決定または計算され、電源切断期間は、未使用帯域幅と総帯域幅の比に基づいて決定または計算される。少なくとも1つのデータチャネルは、最大パケットレートで送信するためのデータを提供する。
【０１０７】
場合によっては、複数のデータチャネルからの第1のチャネルが削除されてもよく、仮想チャネルに割り振られる帯域幅が、第1のチャネルを削除することによって解放される帯域幅の量に対応する量だけ増加されてもよい。
【０１０８】
場合によっては、第2のチャネルが複数のデータチャネルに追加されてもよく、次いで、未使用帯域幅の一部分が第2のチャネルに再割振りされてもよい。
【０１０９】
図10は、処理回路1002を利用する装置1000のためのハードウェア実装形態の簡略化された例を示す図である。処理回路は、一般に、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサおよび状態機械のうちの1つまたは複数を含み得るプロセッサ1016を有する。処理回路1002は、バス1020によって概略的に表されるバスアーキテクチャを用いて実装され得る。バス1020は、処理回路1002の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。バス1020は、プロセッサ1016によって表される1つまたは複数のプロセッサおよび/またはハードウェアモジュール、モジュールまたは回路1004、1006および1008、通信リンク1014およびコンピュータ可読記憶媒体1018のコネクタまたはワイヤを介して通信するように構成可能なラインインターフェース回路1012を含む様々な回路を互いにリンクさせる。バス1020は、タイミングソース、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできるが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。
【０１１０】
プロセッサ1016は、コンピュータ可読記憶媒体1018上に記憶されたソフトウェアの実行を含む一般的な処理を担う。ソフトウェアは、プロセッサ1016によって実行されると、処理回路1002に、任意の特定の装置について上記で説明した様々な機能を実行させる。コンピュータ可読記憶媒体1018はまた、ソフトウェアを実行するときに、データレーンおよびクロックレーンとして構成され得る通信リンク1014のコネクタを介して送信されたシンボルから復号されるデータを含む、プロセッサ1016によって操作されるデータを記憶するために使用され得る。処理回路1002は、モジュール1004、1006、1008、および1010のうちの少なくとも1つをさらに含む。モジュール1004、1006、1008、および1010は、プロセッサ1016中で動作している、コンピュータ可読記憶媒体1018に常駐する/記憶されるソフトウェアモジュール、プロセッサ1016に結合された1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであり得る。モジュール1004、1006、1008、および/または1010は、マイクロコントローラ命令、状態機械構成パラメータ、またはそれらの何らかの組合せを含み得る。
【０１１１】
一構成では、ワイヤレス通信のための装置1000は、複数のデータソースから受信されるデータフローおよび電力サイクリングを実装するために使用される仮想フローをスケジュールするように構成されたモジュールおよび/または回路1004、電力サイクルのタイミングを制御および管理するように構成されたモジュールおよび/または回路1006、ならびにデータフローおよび通信リンク1014上のチャネルへのそれらの割振りを管理するように構成されたモジュールおよび/または回路1008を含む。
【０１１２】
装置1000の様々なモジュールおよび/または回路は、通信リンク1014に結合された送信デバイスにおいて提供され得る。たとえば、送信デバイスは、装置を通信リンクに結合するように適合されたラインインターフェース回路1012と、複数のチャネルの各々からデータストリームを受信するように構成された符号化回路と、未使用帯域幅を、通信リンクによって提供される総帯域幅と複数のチャネルによって使用される帯域幅との間の差分として計算し、未使用帯域幅を仮想チャネルに割り振り、時間ベースの多重化方式に従って複数のチャネルおよび仮想チャネルをスケジュールするように構成されたアービタとを含み得る。仮想チャネルがスケジュールされるとき、インターフェース回路の少なくとも送信機部分が無効化される。
【０１１３】
場合によっては、複数のチャネルによって使用される帯域幅の第1の部分は、決定論的データ送信のために割り振られる。複数のチャネルによって使用される帯域幅の第2の部分は、非決定論的データ送信のために割り振られ得る。複数のチャネルによって使用される帯域幅の第3の部分は、ランダムな制御送信のために割り振られ得る。
【０１１４】
場合によっては、アービタは、電力サイクルに基づいて時間ベースの多重化方式に従って複数のチャネルおよび仮想チャネルをスケジュールし、未使用帯域幅と総帯域幅の比に基づいて電源切断期間を計算するように構成される。電力サイクルの持続時間は、少なくとも1つのデータチャネルに関連付けられた最大パケットレートに基づいて決定され得る。仮想チャネルに割り振られた帯域幅は、あるチャネルが複数のチャネルが削除されたときに解放される帯域幅の量に対応する量だけ増加され得る。未使用帯域幅の一部分は、新しいチャネルが複数のチャネルに追加されるときに新しいチャネルに再割振りされ得る。
【０１１５】
アービタは、先着順アービトレーションアルゴリズムを使用するように構成され得る。
【０１１６】
開示したプロセスにおけるステップの特定の順序または階層は、例示的な手法の例示であることを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの特定の順序または階層は再構成されてもよいことを理解されたい。さらに、いくつかのステップは、組み合わされるか、または省略される場合がある。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されるものではない。
【０１１７】
前述の説明は、いかなる当業者も本明細書で説明する様々な態様を実践することを可能にするために提供される。これらの態様に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義した一般原理は、他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に示す態様に限定されるものではなく、文言通りの特許請求の範囲と一致するすべての範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味するものとする。別段に明記されていない限り、「いくつかの」という用語は、1つまたは複数を指す。当業者に知られているか、または後で知られることになる、本開示全体にわたって説明する様々な態様の要素の、すべての構造的および機能的等価物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。さらに、本明細書で開示したものは、そのような開示が特許請求の範囲において明示的に列挙されているかどうかにかかわらず、公に供されるものではない。いかなるクレーム要素も、要素が「ための手段」という句を使用して明示的に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【０１１８】
100  装置
102  処理回路
106  RF通信トランシーバ、通信トランシーバ
108  特定用途向けIC(ASIC)、ASIC
110  アプリケーションプログラミングインターフェース(API)
112  メモリデバイス
114  ローカルデータベース
118  アンテナ
120  ディスプレイ
122  一体型キーボードもしくは外部キーボード
124  ボタン
200  システム
202  ICデバイス、第1のICデバイス、アプリケーションプロセッサICデバイス
204  ワイヤレストランシーバ
206  処理デバイス
208  記憶媒体
210  符号化デバイス
212  バス
214  アンテナ
220  通信リンク
222  チャネル、第1の通信チャネル、順方向リンク
224  チャネル、第2の通信チャネル、逆方向リンク
226  チャネル、双方向リンク
230  ICデバイス、第2のICデバイス、符号化デバイス
232  ディスプレイコントローラ
234  カメラコントローラ
236  処理デバイス
238  記憶媒体
242  バス
300  デバイス
302  処理回路
304  機能要素、機能、センサ制御機能
306  構成レジスタ
310  トランシーバ
310a  受信機
310b  共通回路
310c  送信機
312  プロセッサおよび/または制御論理
316  ドライバ
318  受信機
320  通信リンク
324  記憶デバイス
328  送信クロック(TXCLK)信号、TXCLK信号
400  簡略化されたタイミング図
402  送信ノード
4041〜404n  チャネル、ソースデータチャネル
410  アービタ
412  通信リンク
414  送信スロット
422  受信ノード
4241〜424n  宛先データチャネル
500  タイミング図
502  リンクアクティビティ
504  電力サイクル
506  期間
508  持続時間
510  パケット
512  アクティビティ、アクティブ期間
514  アイドル期間
516  アクティビティ、アクティブ期間
518  アイドル期間
520  アクティビティ、アクティブ期間
600  簡略化されたタイミング図
602  送信ノード
6041〜604n  データソースおよび/またはチャネル、データチャネル
608  電力サイクルチャネル
610  アービタ
612  データ通信リンク、通信リンク
614  パケット、可変長パケット
616  アイドル期間
618  制御論理および/または回路
622  受信ノード
6241〜624n  宛先
700  簡略ブロック図
702  アービタ
704  チャネル
706  構成情報
708  電力構成パラメータ
710  チャネルマネージャ
712  アービトレーション論理
714  電力サイクルタイマーおよび/またはカウンタ
716  チャネルメトリック
718  インターフェースコントローラ
720  送信タイミング回路
722  クロック信号
724  制御信号
800  概念図
802  処理回路
804  プロセッサ
806  ストレージ
808  バスインターフェース
810  バス
812  トランシーバ
814  ランタイムイメージ
816  ソフトウェアモジュール
818  ユーザインターフェース
820  時分割プログラム
822  内部デバイスおよび/または論理回路
900  フローチャート
1000  装置
1002  処理回路
1004  モジュールまたは回路、モジュール
1006  モジュールまたは回路、モジュール
1008  モジュールまたは回路、モジュール
1010  モジュール
1012  ラインインターフェース回路
1014  通信リンク
1016  プロセッサ
1018  コンピュータ可読記憶媒体
1020  バス
【図１】
2018516489.tif 000013
【図２】
2018516489.tif 000014
【図３】
2018516489.tif 000015
【図４】
2018516489.tif 000016
【図５】
2018516489.tif 000017
【図６】
2018516489.tif 000018
【図７】
2018516489.tif 000019
【図８】
2018516489.tif 000020
【図９】
2018516489.tif 000021
【図１０】
2018516489.tif 000022
【国際調査報告】
2018516489.tif 000023
2018516489.tif 000024
2018516489.tif 000025