JP2017521905A - 送信機における電力節約および性能バランシングのための方法および機構 - Google Patents

送信機における電力節約および性能バランシングのための方法および機構 Download PDF

Info

Publication number
JP2017521905A
JP2017521905A JP2016569706A JP2016569706A JP2017521905A JP 2017521905 A JP2017521905 A JP 2017521905A JP 2016569706 A JP2016569706 A JP 2016569706A JP 2016569706 A JP2016569706 A JP 2016569706A JP 2017521905 A JP2017521905 A JP 2017521905A
Authority
JP
Japan
Prior art keywords
transmitter
data
transmission
governor
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016569706A
Other languages
English (en)
Other versions
JP2017521905A5 (ja
Inventor
シン、バルビンダー
ガジャ、アジャイ・クマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2017521905A publication Critical patent/JP2017521905A/ja
Publication of JP2017521905A5 publication Critical patent/JP2017521905A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0203Power saving arrangements in the radio access network or backbone network of wireless communication networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/029Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment reducing the clock frequency of the controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

ブルートゥースプロトコルを使用する例は、ハンドシェイク衝突およびクレジット処理の確率を低減するための動的なMTU調整を含み得る。これはまた、Tx MTUを遠隔Rxクレジットの数の非倍数にすることと、Tx MTUを、クレジットの前後に重複なしにCONTINUEが来るような値に調整することと、アンダーフロー状態を防ぐこととを含み得る。別の例は、たとえアンダーフロー状態の間でも優先度の低いトラフィックを定期的にペーシングして、それによって速度のバランスを取ることを含み得る。別の例は、周波数速度のバランスを取り得、それによって望ましくない待機状態の間にプロセッサ負荷を制御することによって電力のバランスを取り、優先度の低いトラフィック条件に対して起こり得る望ましくないマルチプロセッサ周波数ジャンプ決定を間接的に制御する。

Description

関連出願の相互参照
[0001]本特許出願は、本明細書の譲受人に譲渡され、参照によりその全体が本明細書に明確に組み込まれる2014年5月27日に出願された「METHODS AND MECHANISMS FOR POWER SAVING AND PERFROMANCE BALANCING IN A TRANSMITTER」と題する、米国仮出願第62/003,249号の利益を主張する。
[0002]本開示は、一般に、2つのデバイス間の性能改善に関し、より詳細には、排他的ではないが、送信機と受信機との間の電力節約および性能バランシングに関する。
[0003]従来、デバイス間通信であるワイヤードまたはワイヤレスの任意の通信プロトコル(たとえば、ブルートゥース(登録商標)プロトコル)では、受信デバイスが低バッファを有する場合、および/または送信デバイスが、長時間のデータ送信中にプロトコルフロー制御制限(低速遠隔デバイスのために流入する)に起因する処理遅延を経験している場合、(本質的には、後で説明するプラットフォーム設計制約下で、所与の時間内に倍増する可能性がある)高い消費電力がある。要するに、遠隔側でより低いRxバッファを使用するデバイス間データ転送、またはローカル側での処理遅延は、送信側で高い電力消費を引き起こす。システム全体がより高い電力漏れ状態で、および優先度の低い抑制されたトラフィック条件のために待機することは良くない。
[0004]したがって、本明細書で提供される改善された方法および装置を含む従来の方法を改善する方法への長年にわたる産業ニーズがある。
[0005]本教示に特有のものである発明の特徴は、さらなる特徴および利点とともに、詳細な説明および添付の図面からよりよく理解される。図の各々は、例示および記述のみを目的に提供されるものであり、本教示を制限するものではない。
[0006]以下は、本明細書で開示される装置および方法に関連付けられる1つまたは複数の態様および/または例に関する簡略化された概要を提示する。したがって、以下の概要は、すべての企図される態様および/または例に関連する広範な概要と見なされるべきではなく、また、以下の要約は、すべての企図される態様および/または例に関連する主要または重要な要素を特定するための、または任意の特定の態様および/または例に関連付けられる範囲を描くものと見なされるべきではない。したがって、以下の概要は、本明細書で開示される装置および方法に関連する1つまたは複数の態様および/あるいは例に関連する特定の概念を、以下に提示される詳細な説明に先立って簡略化した形で提示するための唯一の目的を有する。
[0007]本開示のいくつかの例は、低速であり、抑制され、または制限されたRxバッファ遠隔受信機に対する高性能送信機の動的な電力節約および性能バランシングのためのシステム、装置、および方法を対象とする。
[0008]本開示のいくつかの例では、システム、装置、および方法は、特にブルートゥースデータ転送リンクなどの例で、電力節約(半減以上など(たとえば、本発明の場合、300+mAから150mAに節約される)(これは、抑制されたときにシステムが様々なスレッドをどのように見るかに依存する設計であり、たとえば、スレッドのいくつかは、フローが停止した状態で依然として不必要に消費する可能性がある)と、性能向上(適用可能な通信規格および仕様に違反していないが、それらのいくつかの改良を提案しているシーケンシングにおけるいくつかの変更のために、200Kビット/秒を超えて増加した速度など)をもたらす。
[0009]本開示のいくつかの例では、システム、装置、および方法は、a)制御PDUが同時に来て、何らかの処理影響を与えないように、実行時にバッファを検出および調整することと、b)特に遠隔が、アプリケーションレベルまでより速い送信デバイスの速度にマッチさせることができず、CPU利用(消費電力)が特定のシナリオの制御下にあるようにアプリケーションデータをペースアップまたはダウンさせるために、Local TX FULLイベントのような待機ポイント上の停止を検出することと、c)たとえ(ハードウェアコントローラの)アンダーフロー状態であっても制限されたデータの制御された送信によって良好な速度と電力消費とのバランスを取り、それによって低速遠隔からの遅いフロー制御を予期することとを含む。これらのステップはさらに、そのような遅れを予期することを可能にし、次いで、たとえ送信条件が良好でなくても速度を調整する。低速遠隔からのフロー遅延のバランシングと予期は、速度と性能のバランスを取るために良い位置に速い送信機を置くことができる。これは、プロトコル転送(ワイヤードまたはワイヤレス)の様々な速度を有する他の多くの技術、特により多くの電力を消費するモジュールに適用され得、これは実に良好な電力節約形態を生成する。
[0010]本開示のいくつかの例では、システム、装置、および方法は、断続的な間隔でトラフィックのアンダーフローにつながる条件と、アンダーフローが停止してフローが開始するときに突発的なトラフィックの発生を含む。
[0011]本開示のいくつかの例では、システム、装置、および方法は、高性能デバイス、または高性能モードのデバイスのためのシステム電力(バッテリなど)を動的に低減することを含む。
[0012]本開示のいくつかの例では、システム、装置、および方法は、未使用のAIRチャネル(誘導されたアンダーフロー中など)を利用することによって、高速化することと、高速および高電力条件でトランザクションを終了することとを含む。
[0013]本開示のいくつかの例では、システム、装置、および方法は、一定の低速および低電力の安定したトラフィックの代わりにオオツメクサトラフィックを引き起こすプロセスのプロセス間フローおよびデバイス間フロー制御を含む。
[0014]本開示のいくつかの例では、システム、装置、および方法は、データパケットを生成するためのデータアプリケーションモジュールと、データパケットを送信フローレートで遠隔デバイスに送信するためのプロトコルスタックコンポーネントと、プロトコルスタックがデータアプリケーションモジュールに通信可能に結合される、フロー制御メッセージを送信するためのOBEXコンポーネントと、OBEXコンポーネントが、フロー制御メッセージをデータアプリケーションモジュールおよびプロトコルスタックコンポーネントに送信するために、データアプリケーションモジュールおよびプロトコルスタックコンポーネントに通信可能に結合される、データアプリケーションモジュール、プロトコルスタックコンポーネント、およびOBEXコンポーネントのプロセスフローを制御するためのプロセッサと、プロセッサのプロセッサ速度を制御するためのガバナとを有するモバイルデバイスを含み、ここにおいて、OBEXコンポーネントは、遠隔デバイスから受信した遠隔送信クレジットの基づく数に、生成されたデータパケットのサイズを制御するために、データサイズフロー制御メッセージをデータアプリケーションモジュールに送信する。
[0015]本開示のいくつかの例では、システム、装置、および方法は、データパケットを受信機に送信するための送信機と、送信機と通信するデータ送信ガバナと、データ送信ガバナが送信機の送信速度を制御するように構成される、送信機と通信するデータフローコンポーネントと、データフローコンポーネントが、生成されたデータパケットを送信のために送信機に送信および通信するためのデータパケットを生成するように構成される、を有する送信機を含む。
[0016]本開示のいくつかの例では、システム、装置、および方法は、ローカルデバイスと遠隔デバイスとの間の通信の方法を含み、本方法は、コントローラのアンダーフロー状態に基づいてローカルデバイスのマイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することと、ローカルデバイスの送信機が遠隔デバイスからのハンドシェイクメッセージを待っているときにローカルデバイスのプロセッサ負荷を制御することと、実行時にコントローラのアンダーフロー状態を検出することと、ハンドシェイクの衝突およびクレジット処理の確率を低減するためにローカルデバイスの最大送信ユニットを調整することとを含む。
[0017]本開示のいくつかの例では、システム、装置、および方法は、ローカルデバイスと遠隔デバイスとの間の通信を制御することを行うためのプログラムコードを有するコンピュータ可読記憶媒体を有する製造物品を含み、本プログラムコードは、プロセッサによって実行されると、プロセッサに、コントローラのアンダーフロー状態に基づいてローカルデバイスのマイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することと、ローカルデバイスの送信機が遠隔デバイスからのハンドシェイクメッセージを待っているときにローカルデバイスのプロセッサ負荷を制御することと、実行時にコントローラのアンダーフロー状態を検出することと、ハンドシェイクの衝突およびクレジット処理の確率を低減するためにローカルデバイスの最大送信ユニットを調整することとを備える動作を実行させる命令を備える。
[0018]本明細書で開示される装置および方法に関連付けられる他の特徴および利点は、添付の図面および詳細な説明に基づいて当業者には明らかであろう。
[0019]添付の図面は、本発明の教示の例を説明するために提示されており、限定するものではない。添付の図面は、本開示の実施例の説明を補助するために提示され、また実施例の説明のためのみに提供され、本発明の限定ではない。
[0020]本開示の態様およびそれに付随する利点の多くのより完全な理解は、単に説明のために提示され、本開示の限定ではない、添付の図面に関連して考慮される場合、以下の詳細な説明を参照することによってそれらがよりよく理解されるにつれて、より容易に得られる。
[0021]本開示のいくつかの例による、例示的なプロセッサを示す図。 [0022]本開示のいくつかの例による、例示的なユーザ機器(UE)を示す図。 [0023]ブルートゥースプロトコルを使用する例示的なロングファイル転送を示す図。 [0024]RFCOMMを介する例示的なブルートゥース転送を示す図。 [0025]ボトルネックを強調する例示的なシーケンスを示す図。 [0026]例示的なPut(最終)、Continue、およびRFCOMMクレジットを示す図。 [0027]例示的なContinueおよびRFCOMMクレジットを示す図。 [0028]例示的なOBEXならびにRFCOMM TxおよびRxを示す図。 [0029]CXレール(接続性BTライン電流)上の例示的な電流を示す図。 [0030]CXレール(接続性BTライン電流)上の例示的な電圧を示す図。 [0031]ハンドシェイク信号の並列処理を回避するような例示的なMTU調整を示す図。 [0032]例示的なローカルMTU調整を示す図。 [0033]本開示のいくつかの例による、例示的なシーケンスの例(パイロット例として行われるブルートゥースフロー制御)を示す図。
[0034]一般的な慣習に従って、図面によって示された特徴は、縮尺に合わせて描かれていない場合がある。したがって、示された特徴の寸法は、明瞭さのために任意に拡張または縮小され得る。一般的な慣習に従って、図面の一部は明瞭さのために簡素化されている。したがって、図面は、特定の装置または方法のすべてのコンポーネントを示しているとは限らない場合がある。さらに、同様の参照番号は、明細書および図の全体にわたって同様の特徴を示している。
[0035]送信機と受信機との間の電力節約および性能バランシングのための方法、装置、およびシステムが提供される。本明細書に開示された例示的な方法、装置、およびシステムは、長年にわたる産業ニーズならびに他の以前には識別されていないニーズに有利に対処し、従来の方法、装置、およびシステムの欠点を緩和する。たとえば、本明細書に開示された方法、装置、およびシステムによって提供される利点は、デバイス間送信の電力対性能要求の改善である。
[0036]本開示に関連する特定の例を示すために、以下の説明および関連する図面において様々な態様が開示される。代替実施例は、本開示を読めば当業者には明らかであり、本開示の範囲または趣旨から逸脱することなしに構築および実施され得る。さらに、よく知られている要素は、本明細書に開示された態様および実施例の関連する詳細を不明瞭にしないために詳細に説明されず、または省略されてもよい。
[0037]「例示的(exemplary)」という用語は、本明細書では、「例、事例、または例示としての役割を果たす(serving as an exmple,instance,or illustration)」ことを意味するために使用される。本明細書において「例示的」と記載されているあらゆる詳細は、必ずしも他の実施例よりも好ましいまたは有利であると解釈されるべきではない。同様に、「例(examples)」という用語は、すべての例が論議された特徴、利点、または動作モードを含むことを必要としない。「一例では(in one example)」、「例(an example)」、「1つの特徴では(in one feature)」、および/または「特徴(a feature)」という用語の使用は、本明細書では、必ずしも同じ特徴および/または例を指しているとは限らない。さらに、特定の特徴および/または構造は、1つまたは複数の他の特徴および/または構造と組み合わせられ得る。さらに、本明細書に記述された装置の少なくとも一部は、本明細書に記述された方法の少なくとも一部を実行するように構成され得る。
[0038]本明細書で使用される用語は、特定の実施例を説明するためのものにすぎず、本開示の実施例を限定することが意図されるものではない。本明細書で使用されるように、単数形「a」、「an」、および「the」は、文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。本明細書で使用する場合、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、記載された特徴、整数、ステップ、動作、要素、および/または構成要素の存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されよう。
[0039]「接続された(connected)」、「結合された(coupled)」、またはその変形の用語は、要素間における、直接的または間接的のいずれかの任意の接続または結合を意味するものであり、中間要素を介して「接続された」または「結合された」2つの要素の間において中間要素の存在を包含する場合があることに注意するべきである。要素間の結合および/または接続は、物理的、論理的、またはそれらの組合せの場合がある。本明細書で用いる場合、要素は、たとえば、1つまたは複数のワイヤ、ケーブル、および/または印刷された電気接続を使用することによってだけでなく、電磁エネルギーを使用することによって「接続される」または「結合される」ことができる。電磁エネルギーは、無線周波数領域の波長、マイクロ波領域、および/またはオプティカル(可視と非可視の両方)領域を持つことができる。これらは、複数の限定を目的としない、非網羅的な例である。
[0040]「信号(signal)」という用語は、データ信号、オーディオ信号、ビデオ信号、マルチメディア信号、アナログ信号、および/またはデジタル信号など任意の信号を含むことができることを理解するべきである。情報および信号は、様々な異なる技術および手法のいずれかを使用して表され得る。たとえば、本明細書に記載するデータ、命令、処理ステップ、コマンド、情報、信号、ビット、および/またはシンボルは、電圧、電流、電磁波、磁場および/または磁粒子、光学場および/または光粒子、ならびにそれらの任意の組合せによって表され得る。
[0041]本明細書において「第1の(first)」、「第2の(second)」などの指示を使用する要素を言及する場合、それらの要素の数および/または順序を制限するものではない。むしろ、これらの指示は、2つ以上の要素および/または要素のインスタンスを区別する便利な方法として使用される。したがって、第1の要素および第2の要素という言及は、2つの要素だけが用いられ得ること、または第1の要素は、必ず第2の要素に先行しなければならないことを意味するものではない。また、そうでないことが明記されていない限り、要素の組は、1つまたは複数の要素を備えることができる。さらに、本明細書または特許請求の範囲で使用される「A、B、またはCの少なくとも1つ(at least one of: A,B,orC)」という形式の用語は、「AまたはBまたはC、あるいはこれらの要素の任意の組合せ(AorBorCor any combination of these elements)」と解釈され得る。
[0042]さらに、多くの例が、たとえばコンピューティングデバイスの要素によって実行されるべき一連の動作に関して記述されている。本明細書に記載される様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいはその両方の組合せによって実行され得ることが認識されるであろう。さらに、本明細書に記載されるこれらの一連の動作は、実行時に関連するプロセッサに本明細書に記載の機能性を実行させるコンピュータ命令の対応するセットを記憶したコンピュータ可読記憶媒体の任意の形態内に完全に具体化されていると考えられ得る。したがって、本開示の様々な態様は、多数の異なる形態で具体化され得、そのすべてが特許請求される主題の範囲内にあると考えられている。さらに、本明細書に記載される各例について、任意のそのような例の対応する形態は、たとえば、記載された動作を実行する「ように構成された論理(logic configured to)」として本明細書に記載され得る。
[0043]本明細書では、特定の用語は、特定の特徴を記述するために使用される。「モバイルデバイス(mobile device)」という用語は、限定ではないが、モバイル電話、モバイル通信デバイス、ページャ、携帯情報端末、個人情報マネージャ、モバイルハンドヘルドコンピュータ、ラップトップコンピュータ、ワイヤレスデバイス、ワイヤレスモデム、および/または、典型的には人によって通常運ばれる、および/または通信機能(たとえば、ワイヤレス、セルラ、赤外線、近距離無線等)を有する他のタイプの携帯電子デバイスを記述し得る。さらに、「ユーザ機器(user equipment)」(UE)、「モバイル端末(mobile terminal)」、「モバイルデバイス(mobile device)」、および「ワイヤレスデバイス(wireless device)」という用語は、入れ替えて使うことができる。
[0044]図1は、ASIC208(以下参照)などの例示的なプロセッサ10の機能ブロック図を示す。プロセッサ10は、制御ロジック14に従って命令実行パイプライン12内の命令を実行する。制御ロジック14は、プログラムカウンタ(PC)15を維持し、たとえば現在の命令セット動作モード、算術演算結果および論理比較に関する情報(0、繰上げ、等しい、等しくない)などを示すために、1つまたは複数のステータスレジスタ16内のビットを設定および消去する。いくつかの例では、パイプライン12は、複数の並列パイプラインを有するスーパースカラー設計であり得る。パイプライン12はまた、実行ユニットと呼ばれ得る。汎用レジスタ(GPR)ファイル20は、パイプライン12によってアクセス可能であり、メモリ階層の最上部を備える汎用レジスタ24のリストを提供する。
[0045]異なる命令セット動作モードで少なくとも2つの命令セットからの命令を実行するプロセッサ10は、各命令の実行時に、少なくともあらかじめ定められた目標命令セット動作モードを現在の命令セット動作モードと比較し、2つの間の一致の表示を提供するように動作するデバッグ回路18をさらに含む。
[0046]パイプライン12は、命令キャッシュ(I−キャッシュ)26から命令をフェッチし、命令側変換索引バッファ(ITLB)28によって管理されるメモリアドレス変換および許可を有する。データは、メイン変換索引バッファ(TLB)32によって管理されるメモリアドス変換および許可を用いてデータキャッシュ(D−キャッシュ)30からアクセスされる。様々な実施形態において、ITLB28は、TLB32の部分のコピーを備え得る。あるいは、ITLB28とTLB32は統合され得る。同様に、プロセッサ10の様々な例において、I−キャッシュ26およびD−キャッシュ30は、統合されてもよく、一体化されてもよい。さらに、I−キャッシュ26およびD−キャッシュ30は、L1キャッシュであり得る。I−キャッシュ26および/またはD−キャッシュ30におけるミスは、メモリインターフェース34によるメイン(オフチップ)メモリ38、40へのアクセスを生じさせる。メモリインターフェース34は、本開示のいくつかの実施例による改善されたデータ復元を組み込み得る1つまたは複数のメモリデバイス38、40への共有バスを実装するバス相互接続42へのマスタ入力であり得る。追加のマスタデバイス(図示せず)は、バス相互接続42にさらに接続し得る。
[0047]プロセッサ10は、入力/出力(I/O)インターフェース44がバス46を介して様々な周辺デバイス48、50にアクセスし得る、周辺バス上のマスタデバイスであり得るI/Oインターフェース44を含み得る。当業者は、プロセッサ10の多数の変形が可能であることを認識するであろう。たとえば、プロセッサ10は、I−キャッシュ26およびD−キャッシュ30のいずれかまたは両方に対する第2レベル(L2)キャッシュを含み得る。さらに、プロセッサ10に示された機能ブロックのうちの1つまたは複数は、特定の例から省略され得る。JTAGコントローラ、命令プリデコーダ、分岐宛先アドレスキャッシュなどの、プロセッサ10内に存在し得る他の機能ブロックは、本開示の記述に密接な関係がなく、明瞭さのために省略されている。
[0048]図2を参照すると、コアネットワーク、インターネット、ならびに/または他の遠隔サーバおよびネットワークから最終的に得られる無線アクセスネットワーク(RAN)から送信されたソフトウェアアプリケーション、データ、および/またはコマンドを受信して実行することができるプラットフォーム202を有するセルラ電話などのUE200(ここでは、ワイヤレスデバイス)を含むシステム100。プラットフォーム202は、特定用途向け集積回路(「ASIC」208)、または他のプロセッサ、マイクロプロセッサ、論理回路、あるいは他のデータ処理デバイスに動作可能に結合されたトランシーバ206を含み得る。ASIC208または他のプロセッサは、ワイヤレスデバイスのメモリ212内の任意の常駐プログラムとインターフェースするアプリケーションプログラミングインターフェイス(「API」)210層を実行する。メモリ212は、読出し専用またはランダムアクセスメモリ(RAMおよびROM)、EEPROM(登録商標)、フラッシュカード、あるいはコンピュータプラットフォームに共通の任意のメモリで構成され得る。プラットフォーム202はまた、メモリ212において積極的に使用されないアプリケーションを保持することができるローカルデータベース214を含み得る。ローカルデータベース214は、典型的にはフラッシュメモリセルであるが、磁気媒体、EEPROM、光媒体、テープ、ソフトまたはハードディスクなどの当技術分野で知られている任意の二次ストレージデバイスであり得る。内部プラットフォーム202の構成要素はまた、当技術分野で知られているように、他の構成要素の中でも特に、アンテナ222、ディスプレイ224、プッシュツートークボタン228、およびキーパッド226などの外部デバイスに動作可能に結合され得る。
[0049]したがって、本開示の例は、本明細書に記載の機能を実行する能力を含むUEを含み得る。当業者には理解されるように、様々な論理要素は、本明細書に開示された機能を実現するために、ディスクリート要素、プロセッサ上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアの任意の組合せで具体化され得る。たとえば、ASIC208、メモリ212、API210、およびローカルデータベース214はすべて、本明細書に開示された様々な機能をロードし、記憶し、実行するために協調して使用され得、したがって、これらの機能を実行するためのロジックは様々な要素を介して分散され得る。あるいは、機能は1つの個別コンポーネントに組み込まれ得る。したがって、図2のUE200の特徴は単なる例示であると見なされるべきであり、本開示は例示された特徴または構成に限定されない。
[0050]UE200とRANとの間のワイヤレス通信は、符号分割多元接続(CDMA),W−CDMA(登録商標)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交周波数分割多重(OFDM)、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標))、3GPP(登録商標)ロングタームエボリューション(LTE(登録商標))、またはワイヤレス通信ネットワークまたはデータ通信ネットワークで使用され得る他のプロトコルなどの異なる技術に基づき得る。
[0051]次に、本開示の例が、例としてブルートゥースロングファイル転送の文脈で説明される。本開示、および本明細書で開示された発明の概念は本質的に一般的であり、任意のワイヤレスまたはワイヤード技術に適用され得ることが理解されるべきである。本明細書に記載される概念は、特にプロトコルボトルネックのために生成されたTxアンダーフローによって電力と性能が低下する場合、特に遠隔装置が低速であり、多すぎる流量制御、抑制、性能サイクルの浪費および空中時間をもたらす状況において特に適している。この概念は上記の条件で適用され得、そのような状況では、優先度の低いトラフィック送信(低速のロングブルートゥースファイル転送など)で、システム電流が非常に大きくなる可能性がある。そのようなシナリオは、遠隔デバイスの受信速度は非常に遅いが送信機は非常に高速である、遠隔デバイスはより少ないRxバッファを有し、より多くのフロー制御ハンドシェイクを追加する、エアチャネルは良好ではなく、干渉/イントラプロトコルの共存の問題が発生した場合は特に、多すぎる再送/パケット損失をもたらす、ならびに遠隔が悪いRxを有するなど、いくつかの状況下での長時間の転送で見られ得る。
[0052]図3は、本開示の一例によるブルートゥースロングファイル送信を示す。図3において、ローカルデバイス300は、ブルートゥースオープンソース実装を構成し得る様々な機能ブロックを含むが示される。以下に説明するブロック(モジュール、またはコンポーネント)に加えて、ローカルデバイス300は、ブルートゥースインターフェース定義351、物理トランスポートドライバ(SMD/UART/USB/SDIO等)352、ならびにLMP、ベースバンド、および無線層352を含み得る。他のブロック(モジュール、またはコンポーネント)は、以下を含む。
[0053]ブルートゥースアプリケーション310:ファイルシステムと会話し、デジタルデータを下位層に配信する。このコンポーネントは、ファイルシステムからデータを取得するという主な責任を有し得、次いで、合意されたパケットが完了すると、転送の進行状況をユーザに知らせる役割を担う。ブルートゥースアプリケーションはまた、OBEXライブラリから受信したフロー制御をタップし、次いで、パケットの次のセットを最下層に提供し得る。
[0054]OBEXライブラリ320:OBEXライブラリ320は、ソケットインターフェース330を介して提供されるrfcommソケットから読み出され、rfcommソケットに書き込まれるデータを扱うことができる。これは、必要なOBEXヘッダを追加してデータをOBEX形式にパケット化し、遠隔端とネゴシエートされたOBEXのMTUをフィッティングするためにPDUをパケット化する役割を担う。このコンポーネントは、転送中にアプリケーション層とブルートゥースプロトコルスタックとの間のフロー制御機構を管理し得る。この層はまた、RFCOMMベースの転送のためのフロー制御モードを有し得る点に留意されたい。それはIO中に2つのパケットを使用する。1つは最終的なPUT PDUであり(これはフルファイルの点で最終的なものではないが、OBEX MTUを構成する長さのPDUセット合計の最終的なものである)、もう1つは最後のPUTの肯定応答としてのCONTINUEパケットである。一般に、最終的なプットパケットは、OBEX MTUサイズのバイトがTx側から転送され、送信機がこの状態で受信機からCONTINUEを待機した後に送信される。進行中の最終的なプット中にCONTINUEが送信機に送信されない場合、送信機はその期間を「Obex Flow Stop」と見なし、たとえより多くのパケットが利用可能であり、rfcommがパケットを送信するためのクレジットを有していても、OBEXは次のパケット転送を開始し得ない。
[0055]スタックインターフェース340:2つのインターフェースが示されており、1つはブルートゥースの他のプロファイルのそれぞれに対応し、もう1つはブルートゥースプロトコルスタックを備えた標準SOCKET IPC 330に対応する。ブルートゥーススタックインタフェースは、アプリケーションとRFCOMMの間で生成される標準Socketパイプを取得するのに役立つインターフェースであり得る。スタックインターフェース340はミドルウェアインターフェースのように機能し、いくつかの例は、システム電源が切断されていると、遠隔低速/フロー抑制の検出に基づいてインラインで最適化する。
[0056]次に、転送中のインターフェースについて説明する。
[0057]ブルートゥースプロトコルスタックコンポーネント350:このコンポーネントは、RFCOMMおよびL2CAPの2つのコンポーネントを含み得る。RFCOMMは、I/O中にフロー制御機構のソフトウェアハンドシェイクを有するソフトウェア仮想モデムと一般に呼ばれる仮想シリアルポート上のシリアルモデムのモデムエミュレーションであり得る。RFCOMMはまた、CBFCまたはクレジットベースのフロー制御モードと呼ばれる、転送中に広く使用される1つ複数の機構を有し得る。CBFCは、受信機のクレジットが接続時に知られている場合は特に、転送中に合意されたソフトウェアフロー制御機構と見なされ得る。Tx側は、受信機の最大クレジットと、遠隔rfcomm(=最大クレジット*port mtu)サイズの深さでのバッファがどのくらい深いかを記録しなければならない場合がある。いったん達成され、遠隔からクレジット更新が受信されなければ、それは「フローストップ」状態と見なされ、たとえOBEXソケット上に利用可能なパケットを有していてもRFCOMMを介してデータを転送することはできない。
[0058]CPUガバナ:CPUガバナの役割は、全体的な電力および性能駆動モードにあり得る。CPUガバナは、4つのコア0−3のそれぞれについて計算を行う機密モジュールであり、次いで、それに応じて実行中のアプリケーションの処理要求を満たすために周波数ジャンプおよびCPUジャンプを実行するモジュールであり得る。ガバナは、通常、アイドル時間またはスリープ時間中にユーザ入力が遅れることがないようにするために、CPUまたはプラットフォームによって提供される待ち時間に関して良好なユーザ体験を維持するためにCPU速度を上げる。ガバナ(例示的な構成)は、次のルールで使用し得る。
[0059]− CPU速度のより高いモード、たとえば、シングルコアでは1.2GHzにジャンプし、最小周波数(たとえば、300MHz)の90%が所与の時間に達成される。
[0060]− 上述の90%は、指定された例だけを含むのではなく、その所与の時間におけるシステム上の全体的なCPU使用量の合計を含むことができ、たとえば同様に300MHzの90%に近いものであり得る。
[0061]− ジャンプのベースラインは、たとえば300MHzの90%である。
[0062]− これが実行中のアプリケーションによって達成されると、最良のユーザ経験を提供するために電圧および電流がバッテリで非常に高いターボモードにバンピングが行われる。バンプはシステムによって行われるので、ユーザには低速は見えないが、消費電力に悪影響を与える。
[0063]− 特に待ち状態の下での優先度の低いトラフィックに対しては、ターボモードへのそのようなバンプは回避されるべきである。
[0064]− ターボへのそのようなバンプは、重要なユーザ特有のシナリオでのみ発生し、任意のプロトコル上の巨大なファイル転送の場合のようなバックグラウンドの優先度の低いトラフィックでは起こるべきではない。
[0065]CPUガバナ対ユーザデータフローの停止:前に説明したように、高電力状態とユーザデータフローとの関係は、進行中のデータフロー中のトラフィックの突然のアンダーフローおよび再開により直接的である。低速でバースト的な遠隔トラフィックの間の高電力の根本的な原因は、アンダーフローの直後のトラフィックを最小周波数(たとえば、300MHz)のベースラインの90%+として検出するガバナである可能性がある。
[0066]プロトコルフロー制御:ローカルデバイス400と遠隔デバイス410との間の通信のための、異なる層におけるブルートゥースプロトコルフロー制御機構が、図4に示される。
[0067]フロー制御:動作の電力モードおよび性能モードに直接影響を与える2つのフロー制御が存在し得る。RFCOMMクレジット420(交渉されたRx maxクレジット)送信機は、クレジットが遠隔から利用可能でない限り、いかなるパケットも送信しない。相手側へのデータの送信を待つべきであるOBEX上のCONTINUE430パケット。
[0068]図5は、特に遠隔が継続パケットを遅らせると速度を低下させるボトルネックを強調する例示的なシーケンスを示す。図からわかるように、最後の剰余バイトブロック510のOBEX FINAL PACKET WITH PUTと、NEXT OBEX PACKET AFTER ONE FULL MTUブロック520との間の速度低下/アンダーフローを引き起こすCONTINUE500当たり58〜110ミリ秒の待ち時間がある。また、この待ち時間は、遠隔がCONTINUEまたはRFCOM CREDITSのいずれかにおいて遅延するたびに発生する。待ち時間は、以下を引き起こす。a)たとえRFCOMMがいくつかのより多くのパケットを送信するために利用可能なクレジットを有していても、OBEXからRFCOMMに送信されないデータ、b)速度低下(待ち時間はCONTINUEごとに、またはそれぞれのMTU送信後に58〜110ミリ秒の調整までなので)およびc)不均一なビット数/秒−アンダーフロー後のCPU速度の急激な増加につながる。
[0069]図6は、フロー制御オフおよびオンのための例示的なPut600(PDU Lotの最終、1つのOBEX MTUサイズに等しい)、Continue、およびRFCOMMクレジットを示す図7は、例示的なContinue700およびRFCOMMクレジット710を示す。
[0070]次に、フローオフ/トラフィック再開とバッテリ電力との関係について説明する。これは、例としてMP Decision結合を備えたCPU速度ガバナソフトウェアコードであり得る。電力への結合は、低速遠隔によるデータ送信の不規則なレートの観点からのものであり得る。WCNSSは、低速遠隔デバイスによって抑制されているため、ホストからより少ないデータを取得し得る。サンプリングされた電源トレースは、WCNSSのPOWER Railsが非常に頻繁な間隔でアンダーフローを見て、次いでトラフィックが開始されると突然トラフィックが発生することを示す。この発生は、突然のCPU負荷変動につながる可能性があり、したがってガバナはこの負荷に対応するためにより高い周波数を試行する。APPSの現在の値は、WCNSS上のアンダーフローが終了した瞬間に上昇し得、トラフィックが再開する。これにより、抑制されたネットワークで大きな電流が流れる可能性がある。
[0071]特定のシナリオでは、可変データレートは問題を引き起こす可能性がある。しかしながら、受信するためのより高いバッファを有し、転送中に発生する抑制がより少ない遠隔デバイスでは、アプリケーションプロセッサの電力がステップに入って(go in steps)いないために主電源に問題が発生する可能性はほとんどなく、より少ない電力数につながる。遠隔は十分に速く、遠隔受信機のバッファがより高いためビットレートまたは速度にアップダウンがそれほど多く見られないので、CPUは一貫した方法で動作する。それにより、一定期間にわたる平均電流は少し低い。
[0072]次に、インジェクトフローオフが電力数に影響を及ぼす例示的なシナリオについて説明する。たとえば、遠隔がより低いRxバッファを有し、また定期的に抑制する場合、アンダーフロー中にアイドル状態のスレッドのCPU使用率が低下した場合は特に、アプリケーションプロセッサのCPU使用率におけるアップダウンが非常に高くなり得る。
[0073]図8は、OBEX800、ならびにRFCOMM Tx810およびRx820の相互作用を示す。
[0074]本開示のいくつかの例が電力およびバランス性能をどのように節約するかを示す様々な例示的なシナリオを以下に説明する。シナリオ1 − 転送中に変更できない、低速で可変な遠隔側の受信機。上述のように、特に次の3つの条件のいずれかを満たしている場合は、フローが常にオンになるとは限らない。
[0075]− 受信用の遠隔バッファが少なく(たとえば、5〜6パケット未満など)、送信機が非常に高速である
[0076]− 遠隔デバイスが低速である
[0077]− または、チャンネルが非常に悪く、アプリケーションプロセッサがアイドル状態の場合はブルートゥースベースバンドレベルで再送信している
[0078]そのようなシナリオの下では、図9および図10のレール図に見られるように、検出せずに大量の電流が消費される可能性がある。図9は、CXレール上の電流を示す。図10は、CXレール上の電圧を示す。
[0079]悪い場合はVCXが1.18ボルト(ターボモード)になり、良い場合はほとんど常にVCXが1.05ボルトのままである。
[0080]別のシナリオでは、優先度の低いトラフィックは、可変レートフローのためにシステム電力をより高く移動させる。この場合、トラフィックの優先順位は非常に高くはなく、長時間の転送のみが例1.4Mbpsを超える速度で実行され(これは単なる例であり、プラットフォームに大きく依存する)長時間の転送の間に低下するべきではない。
[0081]別のシナリオでは、CPUガバナ調整は変更され得ず、MP決定は無効にされ得ない(これは、他の機密使用シナリオに対するシステムの反応性に逆効果があるためである)。ガバナとMP決定は、目標ごとにモデル化され得、特定のサンプリング値とCPUあたりのゆるやかなタイミングを有するように微調整であり得る。
[0082]そのような微調整のために、オーディオやタッチ/ゲームなどの優先度の高いユースケースでは、ユーザーエクスペリエンスが損なわれることなしに優先度の低いトラフィックに対してアルゴリズムを変更することは困難である。たとえば、MP決定とCPUガバナは、以下の機能を有するように調整されている。
[0083]− 中間の高周波数。
[0084]− インタラクティブガバナには、中間高速を最高速度以下に設定するオプションがある。高速負荷が越えられるとすぐに周波数がこの速度にジャンプする。設定可能な遅延時間がある。
[0085]− この遅延後の負荷評価に基づいて、CPU周波数におけるステップジャンプが発生する前に、あらかじめ定めされた待機時間がある。
[0086]− ブルートゥースまたはタッチを介してオーディオを微調整すること、あるいは、性能を向上させるためにあまり頻繁にスイッチを切り替えない、時間の掛かる重要なシナリオ
[0087]− タッチスクリーンブースト:異なるベンダからのInputイベントパッチは、1つのソリューションに統合されているように見える。
[0088]− その他:デフォルトの最小サンプル時間が約数ミリ秒に変更され、その後、それのソフトウェアによって評価された負荷が所与のしきい値を下回った場合にも同様にステップを下げることができる
[0089]− そのようなもののモデル化された値は、一般にハードワイヤードであり、システム全体の側面に影響を及ぼす可能性があるため変更されない。したがって、前述のシナリオの速度を低下させるために、システムポリシーを変更するよりも、スピードをモデル化する必要がある。
[0090]次に、ハンドシェイク衝突の可能性を低減するためのMTU調整とクレジット処理について説明する。図示されるタイムラインは実際には110ミリ秒を超えており、これは単なるハンドシェイクでありデータではないため、データ速度の点では無駄な時間である。図11に示されるように、これは問題のあるケースである。速度は少し高いが、実際の問題は、11パケットごとに、遠隔からの継続パケットと遠隔からのRFCOM CREDITSがほぼ同時に来ているため、大きな待機時間があるということである。これは6パケットごとに、遠隔がクレジットを送信するためである。OBEX PDU Sideは65534バイトであり、一般に、たとえば65×990バイト(RFCOMM MTU)+残りの1パケットに分割される。したがって、66パケットごとにDUTから遠隔に1プット(put)が送られ、同時に、処理中の遠隔からDUTに6クレジットを与える必要がある。処理が必要なPutが送信され、CONTINUEも送信される。次に、11分の1(=66/6)のクレジット更新、PUT、CONTINUE、CREDITSが処理されているため、その間により多くのSOCアンダーフローが発生する。
[0091]上記のシナリオでは、ローカルのMTU調整が解決策につながる可能性がある。遠隔のRFCOMMクレジットは低い(この例では6クレジットのように低い)と仮定すると、それは遠隔が受信する6パケットごとに送信機にクレジットを与え、次いでTx側がさらなる転送を行い得ることを意味する。現在の状況を改善するには、次の2つの方法のいずれかによって、クレジットと継続バイが交互に行われ得る。
[0092]− Tx MTUを遠隔Rxクレジットの数の非倍数にする(RFCOMM WM MAX−MINの遠隔側の差)
[0093]− Tx MTUを、クレジットの前後にCONTINUEを来させる(オーバーラップしない)ような値に調整する
[0094]第1の目標は、図12に示されるようなふらつき(staggering)を有するためのものであり得る。このことは、実行時MTU調整のための提案された手法では、時間空間を介してハンドシェイクをふらつきがないように(un-stagger)し、実行時にPDUのセットごとに行われる調整によって図11において報告された問題を克服することを示しており、100ミリ秒以上を節約し、したがって多くの電力に影響を与えることなしに速度を上げ)、図12に示されるように、11回のクレジット更新ごとに55ミリ秒以上の遅延の節約が達成され得る。
[0095]次にたとえ、アンダーフロー中であっても優先度の低いトラフィックを定期的にペーシングすることについて説明する。データ転送速度(ビット/秒)が一定ではないため、Txアクティビティの急激な低下が断続的にあり、CPUガバナがランダムに起動し、周波数と電圧を低下させようとする。しかしながら、実際の問題は、データが突然利用可能になり、ガバナがCPU負荷を評価しようとした後に起こる。CPU使用率の急激な上昇があり得、ガバナがCPUをより高い周波数にジャンプさせ、したがってより高い消費電力に戻る。これにより、システムは非常に優先度が高い、または高いトラフィック条件を有することなしに、ターボモードに移行することにつながり得る。
[0096]次に、最大周波数を制限し、MP決定を無効にすることについて説明する。システム上のマイクロプロセッサ周波数スイッチ決定を無効にし、1.2Ghzの最高速度に切り替えるのではなく、MAX CPU速度を例示的な600Mhzに制限することによって、電源数が許容可能になり、範囲内になり得る。マイクロプロセッサ周波数スイッチ決定が停止され、最大周波数が例示的な600MHzに制限されると、電流にスパイクや急激な増加はない。
[0097]本開示のいくつかの例は、低電力目標を達成すること、高い性能目標を達成すること、および優先度の低いトラフィックのバランシングの3つの構成要素によって上記の問題を解決する。
[0098]低電力目標:
[0099]− 上で説明したような、他の処理の衝突を招かないOBEX MTU(すべてのハンドシェイクとPDUがほぼ同じ時間フレームに入る)を提供する。
[00100]− ガバナがデータ転送速度におけるあまりにも多くの変動に気付かないような方法で転送をペースアウト(pace out)する。この状態では、ガバナは一定の中速度を見ており、ランプを越えてジャンプすることはないので、最大電力節約があり得る。第2に、転送が遅すぎる場合には速度ペナルティがあり、フローオフの状況は無視される。
[00101]したがって、実行時のMTU調整は、時間の経過とともにいくつかのハンドシェイクをふらつかせるような方法で、すべてのスレッドを合理化するのに実に役立ち、また多くのアンダーフローが頻繁に発生することは可能にしない。
[00102]前述したような問題の根本的な原因は、各アンダーフロー状態の後に突然高いCPU使用率が見られるCPU周波数ガバナコードにある。
[00103]各アンダーフロー状態の後、CX電流において突然のスパイクがステップで発生する。これらのステップスパイクは、CPUガバナがCPUの突然の使用を見ているが、CPU使用率の%が徐々に上昇していることから見られる。電力数を減少させる本開示のいくつかの例は、速度がたとえば約15%以上低下するという欠点を有し得る。
[00104]高性能目標:OBEX Txの速度はUNDERFLOWSによって妨げられ、パケットはアンダーフローの回復の後に突然高速でポンピングされる。性能の向上は、遠隔継続遅延の間にいくつかのデータパケット(最大の遠隔クレジットの下で)がポンピングされる場合に発生し得る。前に説明したように、アンダーフローには2つの欠点があり、1つは送信速度のビット/秒を低下することであり、もう1つは低下している間にガバナを起動してCPU周波数をより低いレベルに下げようとすることである。しかしながら、ブルートゥースでは、特に単一のリンクが考慮されている場合、アンダーフローは長期間ではない。このアンダーフローは、長すぎるとCPU周波数を低下させ(約100ミリ秒以上に及ぶ場合がある)が、その後トラフィックが開始されると、コアの周波数の急激な上昇が発生し、これは電力を節約するために回避され得る。
[00105]低電力目標は、rfcommからのトラフィックのペースが、CPUガバナコードが次のフローオフに達するまでわずかな増加と見るような方法で制御されている場合に達成され得る。
[00106]次に、アンダーフローの状況、および低電力目標と結合し、電力と性能のトレードオフを有するためにシナリオをどのように活用するかについて説明する。継続遅延中にトラフィックを利用するには、アンダーフローは、速度を上げ、継続後にトラフィックをペースアウトするために使用され得、これにより、速度と消費電力のバランスが良好になる場合がある。
[00107]アンダーフロー領域は、システムがCONTINUEを待っているが、rfcommクレジットが利用可能な場合に、依然として有効であり得る。そのような場合、アンダーフロー中の1つまたは2つのパケットを差し引いた合意クレジット(agreed credits)がプッシュされる。これは、アンダーフロー(速度増加)を利用することを可能にし得るだけでなく、アンダーフロー直後のパケットのペースアウトを可能にする。
[00108]図13は、図3に示されるパケット化スキームの変更を有する開示のいくつかの例示的な例を示す。図からわかるように、最後の剰余バイトブロックのOBEX FINAL PACKET WITH PUTとNEXT OBEX PACKET AFTER ONE FULL MTUブロックとの間の速度低下/アンダーフローを引き起こすCONTINUE当たり58〜110ミリ秒の待ち時間がある。また、この待ち時間は、遠隔がCONTINUEまたはRFCOM CREDITSのいずれかにおいて遅延するたびに発生する。待ち時間は、以下を引き起こす。a)たとえRFCOMMがいくつかのより多くのパケットを送信するために利用可能なクレジットを有していても、OBEXからRFCOMMに送信されないデータ、b)速度低下(待ち時間はCONTINUEごとに、またはそれぞれのMTU送信後に58〜110ミリ秒の調整までなので)およびc)不均一なビット数/秒 − アンダーフロー後のCPU速度の急激な増加につながる。たとえば:
[00109]− OBEX MTUをある量だけ減少させる(約、最大受信機OBEX MTU−5パケットの最大、2つのRx−Creditフレーム間で6パケットと仮定)
[00110]− アンダーフロー状態であっても6に達した場合にクレジット更新された場合、衝突事例にヒット(hit)しないように言及された5つのパケット
[00111]− これは、遠隔が低速であり、しばらくの間にハンドシェイクが戻ってくると予想しているという評価に基づく。
[00112]− 通常の方法で60個のすべての奇数パケットを計画し、最終的なPUTを通常の方法で送信する
[00113]− obexレベルで継続を待たずに、アンダーフロー時の間にこれらの5つのパケットをrfcommキューに入れ、それによって、その間にCPUガバナがマイクロプロセッサステップ変更決定をまだ行わないように転送レベルに置く。
[00114]− 遠隔からクレジットが受信されたときに、これらのパケットを無線で遠隔コントローラのバッファにポンピングできる。それにより、RFCOMMクレジットとCONTINUE待機時間の間の時間が節約される。
[00115]− rfcommキューがクレジットを受信するとすぐに、これらが送信され、キューイングを開始するために継続を待つ必要がなくなり、それによってCPU周波数ジャンプを発生させずにCPUの負荷が効果的に減少する。
[00116]− これは、アンダーフローが発生したときに、より多くのビット/秒を効果的に増加させ得る
[00117]− 速度に影響を与えるには、この変更が必要な場合がある
[00118]− 電力に影響を与えるためには、継続の前に待ち行列に入れられた余分なパケットの間の適切なバランスが実際に受信されることが必要な場合がある。
[00119]− したがって、ガバナがあまりにも頻繁に降下する(come down)ことはなく、その後、アンダーフローが終了した後に別のもう少しの数のパケットの間、ビット/秒を維持する必要がある
[00120]− これは、速度対電力の良好なトレードオフをもたらし得る。
[00121]本明細書に記載の方法、装置、およびシステムの例は、多くの用途に使用され得る。たとえば、記載した例は、複数のプロセッサにわたってデジタルトラフィックのバーストを生成するワイヤレスまたはワイヤードシステムで使用され得る。さらなる用途は、当業者には容易に明らかであるべきである。
[00122]本出願に記載または図示されているものはいずれも、コンポーネント、ステップ、機能、利点、または同等物が本書に記載されているかどうかにかかわらず、いかなるコンポーネント、ステップ、機能、利点、または同等物も一般に公開することが意図されるものではない。
[00123]当業者であれば、様々な異なる技術および技法のいずれかを使用して情報および信号が表され得ることができることを理解するであろう。たとえば、上記の説明を通して参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁粒子、光学場または光粒子、あるいはそれらの組合せによって表され得る。
[00124]さらに、当業者であれば、本明細書に開示された例に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得ることを理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に説明するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップを、それらの機能性の点で一般的に上述した。そのような機能性がハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課される特定のアプリケーションおよび設計の制約に依存する。当業者は、特定のアプリケーションごとに様々な方法で説明した機能を実装することができるが、そのような実装の決定は本開示の範囲から逸脱させるものと解釈されるべきではない。
[00125]本明細書に開示された実施例に関連して説明された方法、シーケンスおよび/またはアルゴリズムは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組合せに直接具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている他の任意の形式の記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。あるいは、記憶媒体は、プロセッサに一体化され得る。
[00126]本明細書に開示された態様に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。また、プロセッサは、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実現され得る。
[00127]いくつかの態様は、デバイスに関連して説明されているが、これらの態様はまた対応する方法の記述を構成することは言うまでもないので、デバイスのブロックまたは構成要素も、対応する方法ステップとして、または方法ステップの特徴として理解されるべきである。それに類似して、方法ステップに関連して、または方法ステップとして記載される態様はまた、対応するデバイスの対応するブロックまたは詳細または特徴の記述を構成する。方法ステップの一部または全部は、たとえば、マイクロプロセッサ、プログラマブルコンピュータまたは電子回路などのハードウェア装置によって(またはハードウェア装置を使用して)実行され得る。いくつかの例では、最も重要な方法ステップのいくつかまたは複数は、そのような装置によって実行され得る。
[00128]上述の例は、単に本開示の原理の説明を構成するにすぎない。言うまでもなく、本明細書に記載された構成および詳細の変更および変形は、当業者には明らかになるであろう。したがって、本開示は、本明細書の実施例の記述および説明に基づいて提示される特定の詳細ではなく、添付の特許請求の範囲の保護の範囲によってのみ制限されることが意図される。
[00129]上記の詳細な説明では、異なる特徴が実施例にまとめられていることがわかる。この開示の方法は、請求される例がそれぞれの請求項において明示的に言及されているよりも多くの特徴を必要とするという意図として理解されるべきではない。むしろ、発明されたコンテンツは、開示された個々の例のすべての特徴よりも少ない特徴に存在し得るという状況である。したがって、以下の特許請求の範囲は、本明細書に組み込まれると見なされるべきであり、各請求項はそれ自体が別個の例として存在することができる。各請求項はそれ自体が別個の例として存在することができるが、従属請求項は請求項において1つまたは複数の請求項との特定の組合せを指すことができるが、他の例もまた、前記従属請求項と任意の別の従属請求項の主題との組合せ、または任意の特徴と他の従属請求項および独立請求項との組合せを包含する、または含むことができる点に留意されたい。特定の組合せが意図されていないことが明示されていない限り、そのような組合せが本明細書において提案される。さらに、たとえ前記請求項が独立請求項に直接依存していないとしても、請求項の特徴は別の任意の独立請求項に含まれ得ることもまた意図される。
[00130]さらに、本明細書または特許請求の範囲に開示された方法は、この方法のそれぞれのステップまたは動作を実行するための手段を備えるデバイスによって実施され得る点に留意されたい。
[00131]さらに、いくつかの例では、個々のステップ/動作は、複数のサブステップに細分されてもよく、複数のサブステップを含んでもよい。そのようなサブステップは、個々のステップの開示に含まれてもよく、個々のステップの開示の一部であってもよい。
[00132]前述の開示は本開示の例示的な実施例を示すが、添付の特許請求の範囲によって定義される本開示の範囲から逸脱することなしに、本明細書において様々な変更および修正が行われ得る点に留意されたい。本明細書に記載された開示の例による方法クレームの機能、ステップ、および/または動作は、任意の特定の順序で実行される必要はない。さらに、本開示の要素は単数形で記載または請求され得るが、単数形への限定が明示的に述べられていない限り、複数形も考えられる。

Claims (30)

  1. データパケットを生成するためのデータアプリケーションモジュールと、
    前記データパケットを送信フローレートで遠隔デバイスに送信するためのプロトコルスタックコンポーネントと、前記プロトコルスタックが前記データアプリケーションモジュールに通信可能に結合され、
    フロー制御メッセージを送信するためのOBEXコンポーネントと、前記OBEXコンポーネントが、前記フロー制御メッセージを前記データアプリケーションモジュールおよび前記プロトコルスタックコンポーネントに送信するために、前記データアプリケーションモジュールおよび前記プロトコルスタックコンポーネントに通信可能に結合され、
    前記データアプリケーションモジュール、前記プロトコルスタックコンポーネント、および前記OBEXコンポーネントのプロセスフローを制御するためのプロセッサと、
    前記プロセッサのプロセッサ速度を制御するためのガバナと
    を備えるモバイルデバイスであって、
    ここにおいて、前記OBEXコンポーネントが、前記遠隔デバイスから受信した遠隔送信クレジットの基づく数に、前記生成されたデータパケットのサイズを制御するために、データサイズフロー制御メッセージを前記データアプリケーションモジュールに送信する、モバイルデバイス。
  2. 前記ガバナが、前記遠隔デバイスのオーバーフロー状態の間に前記プロセッサ速度を減少させる、請求項1に記載のモバイルデバイス。
  3. 前記ガバナが、前記オーバーフロー状態が終了した後に、前記減少されたプロセッサ速度を維持する、請求項2に記載のモバイルデバイス。
  4. 前記ガバナが、前記遠隔デバイスにおいて、アンダーフロー状態の間に前記プロセッサ速度を増加させる、請求項1に記載のモバイルデバイス。
  5. 前記ガバナが、前記アンダーフロー状態が終了した後に、前記増加されたプロセッサ速度を維持する、請求項4に記載のモバイルデバイス。
  6. 前記送信フローレートが、前記遠隔デバイスのデータ受信レートに基づいて調整される、請求項1に記載のモバイルデバイス。
  7. 前記ガバナが、オーバーフロー状態の間にプロセッサ速度スイッチ決定を無効にし、最大プロセッサ速度を設定する、請求項1に記載のモバイルデバイス。
  8. 前記OBEXコンポーネントが低い遠隔送信クレジット状態を検出し、それに応答して継続フロー制御メッセージ送信を遅延させる、請求項1に記載のモバイルデバイス。
  9. 前記OBEXコンポーネントが、継続フロー制御メッセージが遠隔送信クレジットメッセージの予期した到着とは異なる時間に到達することを可能にするために、前記生成されたデータパケットの前記サイズを調整する、請求項1に記載のモバイルデバイス。
  10. データパケットを受信機に送信するための送信機と、
    前記送信機と通信するデータ送信ガバナと、前記データ送信ガバナが前記送信機の送信速度を制御するように構成され、
    前記送信機と通信するデータフローコンポーネントと、前記データフローコンポーネントが、前記生成されたデータパケットを送信のために前記送信機に送信および通信するためのデータパケットを生成するように構成され、
    を備える、送信機。
  11. 前記送信機が、モバイル電話、モバイル通信デバイス、ページャ、携帯情報端末、個人情報管理ソフトウェア、モバイルハンドヘルドコンピュータ、ラップトップコンピュータ、ワイヤレスデバイス、またはワイヤレスモデムのうちの1つに統合される、請求項10に記載の送信機。
  12. 前記データ送信ガバナが、前記受信機の受信レートに基づいて前記送信機の前記送信速度を調整する、請求項10に記載の送信機。
  13. 前記データフローコンポーネントが、前記受信機からの継続メッセージが、前記受信機からのクレジットメッセージの到着時間とは異なる時間に到着することを可能にするために、前記生成されたデータパケットのサイズを調整する、請求項12に記載の送信機。
  14. 前記データ送信ガバナが、低送信クレジット状態を検出し、前記検出された低送信クレジット状態に応答して、前記受信機への継続メッセージの送信を遅延させる、請求項13に記載の送信機。
  15. 前記データ送信ガバナが、前記受信機のオーバーフロー状態の間にプロセッサ速度を減少させる、請求項14に記載の送信機。
  16. 前記データ送信ガバナが、前記オーバーフロー状態が終了した後に、前記減少されたプロセッサ速度を維持する、請求項15に記載の送信機。
  17. 前記データ送信ガバナが、前記受信機のアンダーフロー状態の間に前記プロセッサ速度を増加させる、請求項16に記載の送信機。
  18. 前記データ送信ガバナが、前記アンダーフロー状態が終了した後に、前記増加されたプロセッサ速度を維持する、請求項17に記載の送信機。
  19. 前記データ送信ガバナが、プロセッサ速度変更決定を無効にし、最大プロセッサ速度を送信機プロセッサの最大速度未満に設定する、請求項18に記載の送信機。
  20. コントローラのアンダーフロー状態に基づいてローカルデバイスのマイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することと、
    前記ローカルデバイスの送信機が遠隔デバイスからのハンドシェイクメッセージを待っているときに前記ローカルデバイスのプロセッサ負荷を制御することと、
    実行時に前記コントローラのアンダーフロー状態を検出することと、
    ハンドシェイクの衝突およびクレジット処理の確率を低減するために前記ローカルデバイスの最大送信ユニットを調整することと
    を備える、ローカルデバイスと遠隔デバイスとの間の通信の方法。
  21. 前記マイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することが、プロセッサ速度の増加を防ぐことを含む、請求項20に記載の方法。
  22. 前記マイクロプロセッサ周波数ジャンプ決定を制御することが、前記コントローラのアンダーフロー状態の間に前記プロセッサ速度を減少させることを含む、請求項21に記載の方法。
  23. 前記マイクロプロセッサ周波数ジャンプ決定を制御することが、前記コントローラのアンダーフロー状態が終了した後に、前記減少されたプロセッサ速度を維持することを含む、請求項22に記載の方法。
  24. 低い遠隔送信クレジット状態を検出することと、それに応答して継続フロー制御メッセージ送信を遅延させることとをさらに備える、請求項23に記載の方法。
  25. 継続フロー制御メッセージが、遠隔送信クレジットメッセージの到着時間とは異なる時間に前記ローカルデバイスに到着することを可能にするために、データパケットのサイズを調整することをさらに備える、請求項24に記載の方法。
  26. コントローラオーバーフロー状態の間に、マイクロプロセッサ周波数ジャンプ決定を無効にし、最大プロセッサ速度を設定することをさらに備える、請求項25に記載の方法。
  27. ローカルデバイスと遠隔デバイスとの間の通信を制御することを行うためのプログラムコードを有するコンピュータ可読記憶媒体を備える製造物品であって、前記プログラムコードが、プロセッサによって実行されると、前記プロセッサに、
    コントローラのアンダーフロー状態に基づいてローカルデバイスのマイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することと、
    前記ローカルデバイスの送信機が遠隔デバイスからのハンドシェイクメッセージを待っているときに前記ローカルデバイスのプロセッサ負荷を制御することと、
    実行時に前記コントローラのアンダーフロー状態を検出することと、
    ハンドシェイクの衝突およびクレジット処理の確率を低減するために前記ローカルデバイスの最大送信ユニットを調整することと
    を備える動作を実行させる命令を備える、製造物品。
  28. 前記マイクロプロセッサ周波数ジャンプ決定コンポーネントを制御することが、プロセッサ速度の増加を防ぐことを含む、請求項27に記載の製造物品。
  29. 前記マイクロプロセッサ周波数ジャンプ決定を制御することが、前記コントローラのアンダーフロー状態の間に前記プロセッサ速度を減少させることを含む、請求項28に記載の製造物品。
  30. 前記マイクロプロセッサ周波数ジャンプ決定を制御することが、前記コントローラのアンダーフロー状態が終了した後に、前記減少されたプロセッサ速度を維持することを含む、請求項29に記載の製造物品。
JP2016569706A 2014-05-27 2015-05-14 送信機における電力節約および性能バランシングのための方法および機構 Pending JP2017521905A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462003249P 2014-05-27 2014-05-27
US62/003,249 2014-05-27
US14/627,841 US20150351029A1 (en) 2014-05-27 2015-02-20 Methods and mechanisms for power saving and perfromance balancing in a transmitter
US14/627,841 2015-02-20
PCT/US2015/030897 WO2015183587A1 (en) 2014-05-27 2015-05-14 Methods and mechanisms for power saving and performance balancing in a transmitter

Publications (2)

Publication Number Publication Date
JP2017521905A true JP2017521905A (ja) 2017-08-03
JP2017521905A5 JP2017521905A5 (ja) 2018-06-14

Family

ID=53276295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016569706A Pending JP2017521905A (ja) 2014-05-27 2015-05-14 送信機における電力節約および性能バランシングのための方法および機構

Country Status (5)

Country Link
US (1) US20150351029A1 (ja)
EP (1) EP3150005A1 (ja)
JP (1) JP2017521905A (ja)
CN (1) CN106464599A (ja)
WO (1) WO2015183587A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680758B2 (en) * 2015-09-02 2017-06-13 Intel Corporation Apparatus and method to increase throughput of a transmitter

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
JP5935484B2 (ja) * 2012-04-25 2016-06-15 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9729459B2 (en) * 2012-11-19 2017-08-08 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for credit-based link level flow control

Also Published As

Publication number Publication date
WO2015183587A1 (en) 2015-12-03
CN106464599A (zh) 2017-02-22
US20150351029A1 (en) 2015-12-03
EP3150005A1 (en) 2017-04-05

Similar Documents

Publication Publication Date Title
US10268261B2 (en) Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US10789198B2 (en) Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
KR101140980B1 (ko) 전력 관리를 위한 버퍼링 기술
US8661167B2 (en) DMA (direct memory access) coalescing
US9178965B2 (en) Systems and methods for synchronization of application communications
KR20180121531A (ko) 최적의 퍼포먼스 및 전력 절약을 위한 적응적 주변 컴포넌트 상호접속 익스프레스 링크 하위상태 개시
JP2016502705A (ja) ポータブルコンピューティングデバイスにおける割込み待ち時間閾値およびプロセッサをサポートするリソースの動的な調整
US9152459B2 (en) Adjusting thread priority to improve throughput between peer-to-peer (P2P) devices
EP1725944A2 (en) Power management system and method for a wireless communications device
KR20190006487A (ko) 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들
CN106658686B (zh) 一种数据转发方法,及接入设备
JP2017521905A (ja) 送信機における電力節約および性能バランシングのための方法および機構
US10117289B2 (en) Maintaining network connections for background applications
WO2012167520A1 (zh) 自动功耗控制方法及系统
WO2013013408A1 (zh) 一种降低pc架构软件无线电设备功耗的方法和装置
TW201516703A (zh) 網路事件處理方法與電子裝置
TW201340753A (zh) 快速休眠機制觸發方法及系統

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191203