(57)【要約】  シリアル通信リンクを介した仮想化汎用入出力(GPIO)信号の通信のためのシステム、方法、および装置が開示される。通信リンクに結合された送信デバイスにおいて実行される方法は、仮想GPIO信号またはメッセージをデータパケット内に符号化するステップと、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定するステップと、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するステップと、最大レイテンシ要件を満たすように選択されたパケット内で通信リンクを介してコマンドコードヘッダおよびデータパケットを送信するステップとを含む。データパケットを送信するためのプロトコルは、最大レイテンシ要件と、通信リンク上で使用するために利用可能なプロトコルの1つまたは複数の属性とに基づいて決定されてもよい。一例では、通信リンクはシリアルバスを含み、利用可能なプロトコルは、I2Cプロトコル、I3Cプロトコル、および/またはRFFEプロトコルを含む。
2019508915.tif 000002
【特許請求の範囲】
【請求項１】
送信デバイスにおいて実行される方法であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するステップであって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、ステップと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するステップと、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するステップであって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、ステップと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するステップと
を含む、方法。
【請求項２】
前記通信リンクがシリアルバスを含み、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定するステップと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルがI2Cプロトコルを含む、請求項2に記載の方法。
【請求項４】
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルがI3Cプロトコルを含む、請求項2に記載の方法。
【請求項５】
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルが無線周波数フロントエンド(RFFE)プロトコルを含む、請求項2に記載の方法。
【請求項６】
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定するステップと、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記通信リンクがワイヤレス通信リンクを含み、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定するステップと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
前記複数のプロトコルがBluetoothプロトコルを含む、請求項7に記載の方法。
【請求項９】
前記複数のプロトコルがワイヤレスローカルエリアネットワークに関連するプロトコルを含む、請求項7に記載の方法。
【請求項１０】
前記複数のプロトコルがセルラーワイヤレスネットワークに関連するプロトコルを含む、請求項7に記載の方法。
【請求項１１】
前記データパケットが、前記少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む、請求項1に記載の方法。
【請求項１２】
前記構成パラメータがスルーレートパラメータを含む、請求項11に記載の方法。
【請求項１３】
前記構成パラメータがドライブ強度パラメータを含む、請求項11に記載の方法。
【請求項１４】
装置であって、
前記装置を通信リンクに結合するように適合された物理レイヤ回路と、
メッセージまたは仮想GPIO信号を前記通信リンクを介して送信されることになるデータパケット内に符号化するように構成されるパケタイザと、
有限ステートマシンであって、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
コマンドコードを前記パケタイザに提供することであって、前記コマンドコードが、前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示し、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと
を行うように構成される、有限ステートマシンと
を備え、
前記パケタイザが、前記データパケットおよび前記コマンドコードを含むパケットを前記物理レイヤ回路に提供するように構成され、
前記物理レイヤ回路が、前記通信リンクを介して前記パケットを少なくとも1つのペリフェラルデバイスに送信するように構成される、
装置。
【請求項１５】
前記通信リンクがシリアルバスを含み、前記有限ステートマシンが、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記パケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードを構成する
ように構成される、請求項14に記載の装置。
【請求項１６】
前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンド(RFFE)プロトコルを含む、請求項15に記載の装置。
【請求項１７】
前記有限ステートマシンが、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定し、
前記データパケットを送信するために使用されることになる前記動作モードを前記物理レイヤ回路に示すように前記コマンドコードを構成する
ように構成される、請求項14に記載の装置。
【請求項１８】
前記通信リンクがワイヤレス通信リンクを含み、前記有限ステートマシンが、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードを構成する
ように構成される、請求項14に記載の装置。
【請求項１９】
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、請求項18に記載の装置。
【請求項２０】
前記データパケットが、前記少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む、請求項14に記載の装置。
【請求項２１】
前記構成パラメータがスルーレートパラメータを含む、請求項20に記載の装置。
【請求項２２】
前記構成パラメータがドライブ強度パラメータを含む、請求項20に記載の装置。
【請求項２３】
装置であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するための手段であって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、手段と、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するための手段と、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するための手段であって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、手段と、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するための手段と
を含む、装置。
【請求項２４】
前記通信リンクがシリアルバスを含み、最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成する
ように構成され、
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンドプロトコルを含む、
請求項23に記載の装置。
【請求項２５】
最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定し、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成する
ように構成される、請求項23に記載の装置。
【請求項２６】
前記通信リンクがワイヤレス通信リンクを含み、最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成する
ように構成され、
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、
請求項23に記載の装置。
【請求項２７】
1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、処理回路の少なくとも1つのプロセッサまたはステートマシンによって実行されると、前記処理回路に、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化することであって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、符号化することと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供することであって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信することと
を行わせる、プロセッサ可読記憶媒体。
【請求項２８】
前記通信リンクがシリアルバスを含み、前記処理回路に、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含み、
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンドプロトコルを含む、
請求項27に記載の記憶媒体。
【請求項２９】
前記処理回路に、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定することと、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含む、請求項27に記載の記憶媒体。
【請求項３０】
前記通信リンクがワイヤレス通信リンクを含み、前記処理回路に、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含み、
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、請求項27に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2015年12月10日に米国特許商標庁に出願した仮出願第62/265,599号、および2016年11月10日に米国特許商標庁に出願した非仮出願第15/348,353号の優先権および利益を主張し、それらの内容全体が参照により本明細書に組み込まれる。
【０００２】
本開示は、一般に、シリアル通信および入出力ピン構成に関し、より詳細には、シリアルメッセージングおよび入出力ピン構成に対する最適レイテンシのために構成される有限ステートマシンを最適化することに関する。
【背景技術】
【０００３】
モバイル通信デバイスは、回路基板、集積回路(IC)デバイスおよび/またはシステムオンチップ(SoC)デバイスを含む様々な構成要素を含んでもよい。これらの構成要素は、処理デバイス、ユーザインターフェース構成要素、ストレージ、およびシリアルバスを通して通信する他のペリフェラル構成要素を含んでもよい。インター集積回路(I2CまたはI2C)シリアルバスと、I3Cおよび無線周波数フロントエンド(RFFE)インターフェースなど、Mobile Industry Processor Interface(MIPI) Allianceによって定義されるインターフェースを含むその派生物および代替物を含む汎用シリアルインターフェースが業界で知られている。
【０００４】
一例では、I2Cシリアルバスは、低速ペリフェラル機器をプロセッサに接続する際に使用することが意図されたシリアルシングルエンドコンピュータバスである。いくつかのインターフェースは、2つ以上のデバイスがシリアルバス上で送信される様々なメッセージに対するバスマスタとして働くことができるマルチマスタバスを提供する。別の例では、RFFEインターフェースは、電力増幅器(PA)、低雑音増幅器(LNA)、アンテナチューナ、フィルタ、センサ、電力管理デバイス、スイッチなど含む様々な無線周波数(RF)フロントエンドデバイスを制御するための通信インターフェースを定義する。これらのデバイスは、単一ICデバイス内でコロケートされてよく、または複数のICデバイス内に提供されてもよい。モバイル通信デバイスでは、複数のアンテナおよび無線トランシーバが複数の同時RFリンクをサポートしてもよい。
【０００５】
多くの事例では、モバイル通信デバイス内で様々な構成要素デバイスを接続するために、いくつかのコマンド信号および制御信号が採用される。これらの接続は、モバイル通信デバイス内の貴重な汎用入出力(GPIO)ピンを消費し、物理的相互接続を既存のシリアルデータリンクを介して送信される情報内で搬送されるシグナルに置換することが望ましいことになる。しかしながら、シリアルデータリンクは、特に、確定的な送信デッドラインを定義するモバイル通信デバイスによってサポートされるリアルタイム組み込みシステムアプリケーションでは、物理的なコマンド信号および制御信号の仮想信号への変換を防止することができるレイテンシに関連付けられる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
モバイル通信デバイスはより高いレベルの機能を含み続けるため、ペリフェラル機器とアプリケーションプロセッサとの間の低レイテンシ送信をサポートするために改善されたシリアル通信技法が必要とされる。
【課題を解決するための手段】
【０００７】
本開示のいくつかの態様は、GPIO信号が仮想信号として搬送されてもよいように、デバイス同士の間に最適化された低レイテンシ通信を提供することができるシステム、装置、方法、および技法に関する。仮想GPIO信号に対する送信レイテンシ、およびGPIOピンに関する対応する構成パラメータを最適化することができる仮想GPIO有限ステートマシン(VGI FSM)が提供される。いくつかの例では、VGI FSMは、仮想GPIO信号を送信するために使用されることになるパケットのタイプを決定することができる。いくつかの例では、VGI FSMは、仮想GPIO信号を送信するために使用されることになるプロトコルを決定することができる。
【０００８】
本開示の様々な態様では、送信デバイスにおいて実行される方法は、仮想GPIO信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するステップと、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定するステップと、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するステップと、通信リンクを介してコマンドコードヘッダおよびデータパケットをコマンドコードヘッダによって示されるタイプを有するパケット内で少なくとも1つのペリフェラルデバイスに送信するステップとを含む。仮想GPIO信号は物理的GPIOコネクタに関する状態情報を表してもよい。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。
【０００９】
いくつかの態様では、通信リンクはシリアルバスを含み、本方法は、最大レイテンシ要件と、シリアルバス上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定するステップを含んでもよい。本方法は、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成するステップを含んでもよい。シリアルバス上で使用するために利用可能な複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、またはRFFEプロトコルを含んでもよい。
【００１０】
一態様では、本方法は、最大レイテンシ要件と、通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになる通信リンクに対する動作モードを決定するステップを含んでもよい。本方法は、データパケットを送信するために使用されることになる動作モードを物理レイヤ回路に示すようにコマンドコードヘッダを構成するステップを含んでもよい。
【００１１】
いくつかの態様では、通信リンクはワイヤレス通信リンクを含み、本方法は、最大レイテンシ要件と、ワイヤレス通信リンク上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定するステップを含んでもよい。本方法は、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成するステップを含んでもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【００１２】
いくつかの態様では、データパケットは、少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む。構成パラメータは、スルーレートパラメータ、またはドライブ強度パラメータを含んでもよい。
【００１３】
本開示の様々な態様では、装置は、装置を通信リンクに結合するように適合された物理レイヤ回路と、メッセージまたは仮想GPIO信号を通信リンクを介して送信されることになるデータパケット内に符号化するように構成されるパケタイザと、有限ステートマシンとを含む。有限ステートマシンは、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定することと、コマンドコードをパケタイザに提供することであって、コマンドコードが、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示す、提供することとを行うように構成されてもよい。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。パケタイザは、データパケットおよびコマンドコードを含むパケットを物理レイヤ回路に提供するように構成されてもよい。物理レイヤ回路は、通信リンクを介してパケットを少なくとも1つのペリフェラルデバイスに送信するように構成されてもよい。
【００１４】
いくつかの態様では、通信リンクはシリアルバスを含み、有限ステートマシンは、最大レイテンシ要件と、シリアルバス上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定し、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードを構成するように構成されてもよい。複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、またはRFFEプロトコルを含んでもよい。
【００１５】
一態様では、有限ステートマシンは、最大レイテンシ要件と、通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになる通信リンクに対する動作モードを決定するように構成されてもよい。有限ステートマシンは、データパケットを送信するために使用されることになる動作モードを物理レイヤ回路に示すようにコマンドコードヘッダを構成するように適合されてもよい。
【００１６】
いくつかの態様では、通信リンクはワイヤレス通信リンクを含み、有限ステートマシンは、最大レイテンシ要件と、ワイヤレス通信リンク上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定するように構成されてもよい。有限ステートマシンは、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成するように適合されてもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【００１７】
いくつかの態様では、データパケットは、少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む。構成パラメータは、スルーレートパラメータ、および/またはドライブ強度パラメータを含んでもよい。
【００１８】
様々な態様では、装置は、仮想GPIO信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するための手段と、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定するための手段と、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するための手段とを含む。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。装置は、通信リンクを介してコマンドコードヘッダおよびデータパケットをコマンドコードヘッダによって示されるタイプを有するパケット内で少なくとも1つのペリフェラルデバイスに送信するための手段を含んでもよい。仮想GPIO信号は物理的GPIOコネクタに関する状態情報を表してもよい。
【００１９】
いくつかの態様では、通信リンクはシリアルバスを含み、最大レイテンシ要件を決定するための手段は、最大レイテンシ要件と、シリアルバス上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定し、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成するように構成されてもよい。シリアルバス上で使用するために利用可能な複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、またはRFFEプロトコルを含んでもよい。
【００２０】
いくつかの態様では、最大レイテンシ要件を決定するための手段は、最大レイテンシ要件と、通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになる通信リンクに対する動作モードを決定し、データパケットを送信するために使用されることになる動作モードを物理レイヤ回路に示すようにコマンドコードヘッダを構成するように構成される。
【００２１】
いくつかの態様では、通信リンクはワイヤレス通信リンクを含み、最大レイテンシ要件を決定するための手段は、最大レイテンシ要件と、ワイヤレス通信リンク上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定し、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成するように構成されてもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【００２２】
本開示の様々な態様では、プロセッサ可読記憶媒体が開示される。この記憶媒体は、非一時的記憶媒体であってよく、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、仮想GPIO信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化することと、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定することと、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供することと、通信リンクを介してコマンドコードヘッダおよびデータパケットをコマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信することとを行わせるコードを記憶してもよい。仮想GPIO信号は物理的GPIOコネクタに関する状態情報を表してもよい。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。
【００２３】
いくつかの態様では、通信リンクはシリアルバスを含み、これらの命令は、処理回路に、最大レイテンシ要件と、シリアルバス上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定させ、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成させてもよい。シリアルバス上で使用するために利用可能な複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンドプロトコルを含んでもよい。
【００２４】
いくつかの態様では、これらの命令は、処理回路に、最大レイテンシ要件と、通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになる通信リンクに対する動作モードを決定させ、データパケットを送信するために使用されることになる動作モードを物理レイヤ回路に示すようにコマンドコードヘッダを構成させてもよい。
【００２５】
いくつかの態様では、通信リンクはワイヤレス通信リンクを含み、これらの命令は、処理回路に、最大レイテンシ要件と、ワイヤレス通信リンク上で使用されるために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定させ、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成させてもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【図面の簡単な説明】
【００２６】
【図１】複数の利用可能な規格のうちの1つに従って選択的に動作するICデバイス同士の間のデータリンクを採用する装置を示す図である。
【図２】ICデバイス同士の間のデータリンクを採用する装置のためのシステムアーキテクチャを示す図である。
【図３】様々な無線周波数フロントエンドデバイスを結合するためにRFFEバスを採用するデバイスを示す図である。
【図４】本明細書で開示するいくつかの態様に従って様々なフロントエンドデバイスを結合するためにI3Cバスを採用するデバイスを示す図である。
【図５】本明細書で開示するいくつかの態様に従って適合されてもよいアプリケーションプロセッサおよび複数のペリフェラルデバイスを含む装置を示す図である。
【図６】本明細書で開示するいくつかの態様による、仮想GPIOをサポートするように適合される装置を示す図である。
【図７】本明細書で開示するいくつかの態様によるVGIブロードキャストフレームの例を示す図である。
【図８】本明細書で開示するいくつかの態様によるVGI有向フレームの例を示す図である。
【図９】本明細書で開示するいくつかの態様による、物理ピンに関連付けられてもよい構成レジスタを示す図である。
【図１０】本明細書で開示するいくつかの態様に従って装置内の仮想GPIOをサポートすることができる有限ステートマシンのいくつかの態様を示す図である。
【図１１】本明細書で開示するいくつかの態様に従って適合されてもよい処理回路を採用する装置の一例を示す図である。
【図１２】本開示で開示するいくつかの態様に従って、スレーブデバイスに複数の動的アドレスを取得させるように適合されたアプリケーションプロセッサのいくつかの動作を示すフローチャートである。
【図１３】本明細書で開示するいくつかの態様による、複数の動的アドレスに応じるように適合された装置に関するハードウェア実施態様の第1の例を示す図である。
【発明を実施するための形態】
【００２７】
添付の図面に関して以下に記載する詳細な説明は、様々な構成について説明するものであり、本明細書で説明する概念が実践されてもよい唯一の構成を表すものではない。詳細な説明は、様々な概念の完全な理解を可能にする目的で、具体的な細部を含む。しかし、当業者には、これらの概念が、これらの具体的な細部なしでも実践されてもよいことが明らかであろう。場合によっては、そのような概念を不明瞭にすることを避けるために、よく知られている構造および構成要素がブロック図の形態で図示される。
【００２８】
次に、様々な装置および方法を参照して、本発明のいくつかの態様が提示される。これらの装置および方法は、以下の詳細な説明において説明され、様々なブロック、モジュール、構成要素、回路、ステップ、プロセス、アルゴリズムなど(集合的に「要素」と呼ばれる)によって添付の図面に示される。これらの要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実装されてもよい。そのような要素がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【００２９】
概説
複数のSoCを含むデバイスおよび他のICデバイスは、プロセッサをモデムおよび他のペリフェラル機器に接続するためにシリアルバスを採用することが多い。シリアルバスは、複数のプロトコルに従って動作してもよい。一例では、シリアルバスは、I2Cプロトコル、I3Cプロトコル、および/またはRFFEプロトコルに従って動作してもよい。本明細書で開示するいくつかの態様によれば、GPIOピンおよびGPIO信号は、シリアル通信リンクを介して送信されてもよいGPIO状態情報に仮想化されてもよい。仮想化GPIO状態情報は、ワイヤードを含むリンクと、ワイヤレス通信リンクとを含むリンクを含めて、様々な通信リンクを介して送信されてもよい。たとえば、Bluetooth(登録商標)、ワイヤレスLAN、セルラーネットワークなどを含めて、ワイヤレスネットワークを介した送信のために仮想化GPIO状態情報をパケット化、またはそうでなければフォーマットすることが可能である。いくつかの態様の理解を促すために、ワイヤード通信リンクに関連する例について本明細書で説明する。これらの態様は、GPIO状態情報の送信がワイヤレスネットワークを介した送信を含む実装形態に常に適用される。
【００３０】
シリアル通信リンクを介してメッセージングおよびデータを通信するためにいくつかの異なるプロトコル方式が使用されてもよい。既存のプロトコルは、ユースケースにおける差異、および/または他のプロトコル、デバイス、およびアプリケーションとの共存に基づいて、送信レイテンシを最適化するためにこれらの構造を変更することができないという意味で、明確かつ不変の構造を有する。一定のデッドラインを満たさなければならないことはリアルタイム組み込みシステムの必須事項である。いくつかのリアルタイムアプリケーションでは、送信デッドラインを満たすことは最も重要なことである。共通のバスが異なるプロトコルをサポートするとき、すべてのユースケースの下で最適なレイテンシを保証することは、一般に困難であるか、または不可能である。いくつかの例では、異なるレイテンシ要件、異なるデータ送信量、および/または異なる送信方式を用いて異なるプロトコルをトンネリングするために、I2Cシリアル通信バス、I3Cシリアル通信バス、またはRFFEシリアル通信バスが使用されてもよい。
【００３１】
本発明のいくつかの態様によれば、データソース(たとえば、プロトコルユニット)と物理レイヤ回路との間で提供されるインテリジェントブロックは、すべてのユースケースの下で最適なレイテンシを保証することができる。インテリジェント有限ステートマシンは、複数のソースからペイロードを受信する。ペイロードは、異なるプロトコルに従って、かつ特定のタイプの物理レイヤ回路を介した送信のために構成されてもよい。有限ステートマシンは、ペイロードに対するコマンドコードを選択してもよく、この場合、選択されるコマンドコードは、ペイロードに関連するソースおよび/または物理レイヤ回路に対応する。有限ステートマシンは、共有バスを介した送信のためのペイロードを各ペイロードのソースに関連する優先順位および/またはペイロードのコンテンツによって決定された順序で優先順位付けしてもよい。各ペイロードに対して、有限ステートマシンは、コマンドコードヘッダおよびシリアル化汎用入出力(GPIO)状態データを有する送信パケットを生成し、GPIO状態データは、ペイロードに対応する物理レイヤ回路に関連する通信インターフェース上の物理シグナリングを表す。
【００３２】
ユースケースに基づいて、有限ステートマシンは、転送されることになる情報(データ、メッセージング、GPIO状態データ)に対して使用されることになる最適なプロトコルを決定するためにレイテンシ推定を実行する。レシーバは、事前定義され、かつ相互に合意されたコマンドコードのプールから有限ステートマシンによって選択された一意のコマンドコードに基づいて、ペイロード内でどのプロトコルが搬送されるかを決定することができる。コマンドコードは、レイテンシ推定ブロックによって生成されるコマンドコードインデックスに基づいて選択されてもよい。ペイロードとともに選択されたコマンドコードは、次いで、パケタイザブロックに送信されてもよい。レイテンシ推定ブロックおよびパケタイザブロックをハードウェアで実装することができる、いくつかの例では、ハードウェアとソフトウェアの何らかの組合せが使用されてもよい。
【００３３】
シリアルデータリンクを採用する装置の例
いくつかの態様によれば、シリアルデータリンクは、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)電話、ラップトップ、ノートブック、ネットブック、スマートブック、携帯情報端末(PDA)、衛星ラジオ、全地球測位システム(GPS)デバイス、スマートホームデバイス、インテリジェント照明、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレーヤ(たとえば、MP3プレーヤ)、カメラ、ゲームコンソール、エンターテインメントデバイス、車両構成要素、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、ヘルスまたはフィットネストラッカ、アイウェアなど)、電気製品、センサ、セキュリティデバイス、自動販売機、スマートメータ、ドローン、マルチコプター、または任意の他の同様の機能デバイスなどの装置の副構成要素である電子デバイスを相互接続するために使用されてもよい。
【００３４】
図1は、データ通信バスを採用してもよい装置100の一例を示す。装置100は、1つまたは複数のASIC内またはSoC内で実装されてもよい複数の回路またはデバイス104、106、および/または108を有するSoC処理回路102を含んでもよい。一例では、装置100は通信デバイスであってもよく、処理回路102は、ASIC104、1つまたは複数のペリフェラルデバイス106、および装置がアンテナ124を通して無線アクセスネットワーク、コアアクセスネットワーク、インターネットおよび/または別のネットワークと通信することを可能にするトランシーバ108内に提供される処理デバイスを含んでもよい。
【００３５】
ASIC104は、1つまたは複数のプロセッサ112、1つまたは複数のモデム110、オンボードメモリ114、バスインターフェース回路116、および/または他の論理回路または論理機能を有してもよい。処理回路102は、1つまたは複数のプロセッサ112がオンボードメモリ114または処理回路102上に提供される他のプロセッサ可読記憶装置122内に存在するソフトウェアモジュールを実行することを可能にするアプリケーションプログラミングインターフェース(API)レイヤを提供してもよいオペレーティングシステムによって制御されてもよい。ソフトウェアモジュールは、オンボードメモリ114またはプロセッサ可読記憶装置122内に記憶された命令およびデータを含んでもよい。ASIC104は、そのオンボードメモリ114、プロセッサ可読記憶装置122、および/または処理回路102の外部の記憶装置にアクセスしてもよい。オンボードメモリ114、プロセッサ可読記憶装置122は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気消去可能プログラマブルROM(EEPROM)、フラッシュカード、または処理システムおよびコンピューティングプラットフォーム内で使用することができる任意のメモリデバイスを含んでもよい。処理回路102は、装置100および/または処理回路102を構成し動作させるために使用される動作パラメータおよび他の情報を維持することができるローカルデータベースまたは他のパラメータ記憶装置を含んでよく、それらを実装してよく、またはそれらにアクセスしてもよい。ローカルデータベースは、レジスタ、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、ソフトディスクまたはハードディスクなどを使用して実装されてもよい。処理回路102はまた、他の構成要素の中でも、アンテナ124、ディスプレイ126、スイッチもしくはボタン128、130および/または一体型もしくは外部キーパッド132などのオペレータ制御などの外部デバイスに動作可能に結合されてもよい。ユーザインターフェースモジュールは、専用通信リンクを通してまたは1つまたは複数のシリアルデータ相互接続を通して、ディスプレイ126、キーパッド132などを用いて動作するように構成されてもよい。
【００３６】
処理回路102は、いくつかのデバイス104、106、および/または108が通信することを可能にする1つまたは複数のバス118a、118b、120を提供してもよい。一例では、ASIC104は、回路、カウンタ、タイマ、制御論理、および他の構成可能な回路またはモジュールの組合せを含むバスインターフェース回路116を含んでもよい。一例では、バスインターフェース回路116は、通信仕様書または通信プロトコルに従って動作するように構成されてもよい。処理回路102は、装置100の動作を構成および管理する電力管理機能を含んでもよく、またはそれを制御してもよい。
【００３７】
図2は、シリアルバス230に接続された複数のデバイス202、220、および222a〜222nを含む装置200のいくつかの態様を示す。デバイス202、220、および222a〜222nは、アプリケーションプロセッサ、SoC、またはASICなど、1つまたは複数の半導体ICデバイスを含んでもよい。デバイス202、220、および222a〜222nの各々は、モデム、信号処理デバイス、ディスプレイドライバ、カメラ、ユーザインターフェース、センサ、センサコントローラ、プレーヤ、メディアプレーヤ、トランシーバ、および/もしくは他のそのような構成要素もしくはデバイスを含んでよく、それらをサポートしてもよく、またはそれらとして動作してもよい。シリアルバス230を介したデバイス202、220と222a〜222nとの間の通信は、バスマスタデバイス220によって制御される。いくつかのタイプのバスは、複数のバスマスタデバイス220をサポートすることができる。
【００３８】
装置200は、シリアルバス230がI2Cプロトコル、I3Cプロトコル、または他のプロトコルに従って動作するときに通信する複数のデバイス202、220、および222a〜222nを含んでもよい。少なくともデバイス202、222a〜222nは、シリアルバス230上でスレーブデバイスとして動作するように構成されてもよい。一例では、スレーブデバイス202は、制御機能204を提供するように適合されてもよい。いくつかの例では、制御機能204は、ディスプレイ、画像センサをサポートする回路およびモジュール、および/または環境状態を測定する1つまたは複数のセンサを制御し、それらと通信する回路およびモジュールを含んでもよい。スレーブデバイス202は、構成レジスタ206または他の記憶装置224と、制御論理212と、トランシーバ210と、ラインドライバ/レシーバ214aおよび214bとを含んでもよい。制御論理212は、ステートマシン、シーケンサ、信号プロセッサまたは汎用プロセッサなどの処理回路を含んでもよい。トランシーバ210は、レシーバ210aと、トランスミッタ210cと、タイミング、論理、および記憶装置回路および/またはデバイスを含む共通回路210bとを含んでもよい。一例では、トランスミッタ210cは、クロック生成回路208によって提供される1つまたは複数の信号228のタイミングに基づいて、データを符号化し送信する。
【００３９】
デバイス202、220、および/または222a〜222nのうちの2つ以上が、I2Cプロトコルおよび/またはI3Cプロトコルを含んでもよい、共通バスを介した複数の異なる通信プロトコルをサポートするように、本明細書で開示するいくつかの態様および特徴に従って適合されてもよい。いくつかの事例では、I2Cプロトコルを使用して通信するデバイスは、I3Cプロトコルを使用して通信するデバイスと同じ2-ワイヤインターフェース上に共存することができる。一例では、I3Cプロトコルは、より高い性能を提供する1つまたは複数の任意選択の高データレート(HDR)動作モードで6メガビット毎秒(Mbps)から16Mbpsの間のデータレートを提供する動作モードをサポートしてもよい。I2Cプロトコルは、100キロビット毎秒(kbps)から3.2Mbpsの間の範囲であってもよいデータレートを提供するI2Cデファクトスタンダードに準拠する場合がある。I2CプロトコルおよびI3Cプロトコルは、データフォーマットおよびバス制御の特徴に加えて、2-ワイヤシリアルバス230上で送信される信号に関する電気的特徴およびタイミング特徴を定義する場合がある。いくつかの態様では、I2CプロトコルおよびI3Cプロトコルは、シリアルバス230に関連する特定の信号レベルに影響を及ぼす直流(DC)特性および/またはシリアルバス230上で送信される信号の一定のタイミング特徴に影響を及ぼす交流(AC)特性を定義する場合がある。いくつかの例では、2-ワイヤシリアルバス230は、第1のワイヤ218上でデータを送信し、第2のワイヤ216上でクロック信号を送信する。いくつかの事例では、データは、シグナリング状態で符号化されてよく、または第1のワイヤ218および第2のワイヤ216のシグナリング状態で遷移する。
【００４０】
図3は、様々なフロントエンドデバイス312〜317を結合するためにRFFEバス308を採用するデバイス302の一例を示すブロック図300である。モデム304は、モデム304をRFFEバス308に結合するRFFEインターフェース310を含んでもよい。モデム304は、ベースバンドプロセッサ306と通信してもよい。図示される装置302は、モバイル通信デバイス、モバイル電話、モバイルコンピューティングシステム、モバイル電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、ウェアラブルコンピューティングおよび/または通信デバイス、電気製品などのうちの1つまたは複数において具現化されてもよい。様々な例では、デバイス302は、1つまたは複数のベースバンドプロセッサ306、モデム304、複数の通信リンク308、320、ならびに様々な他のバス、デバイスおよび/または異なる機能を用いて実装されてもよい。図3に示す例では、RFFEバス308は、RFフロントエンドのいくつかの態様を構成および制御する1つまたは複数のコントローラおよび/またはプロセッサを含んでもよいRF集積回路(RFIC)312に結合されてもよい。RFFEバス308は、RFIC312をスイッチ313、RFチューナ314、電力増幅器(PA)315、低雑音増幅器(LNA)316、および電力管理モジュール317に結合してもよい。
【００４１】
図4は、ホストSoC402およびいくつかのペリフェラルデバイス412を含めて様々なデバイスを結合するためにI3Cバスを使用するデバイス400の一例を示す。ホストSoC402は、仮想GPIO有限ステートマシン(VGI FSM406)およびI3Cインターフェース404を含んでよく、この場合、I3Cインターフェース404は、ホストSoC402とペリフェラルデバイス412との間に通信リンクを提供するためにペリフェラルデバイス412内の対応するI3Cインターフェース414と協働する。各ペリフェラルデバイス412はVGI FSM416を含む。図示の例では、SoC402とペリフェラルデバイス412との間の通信は、シリアル化されて、I3Cプロトコルに従ってマルチワイヤシリアルバス410上で送信されてもよい。他の例では、ホストSoC402は、I2Cおよび/またはRFFEインターフェースを含めて、他のタイプのインターフェースを含んでもよい。他の例では、ホストSoC402は、I2Cプロトコル、I3Cプロトコル、RFFEおよび/または別の適切なプロトコルを使用して通信するために採用されてもよい構成可能インターフェースを含んでもよい。いくつかの例では、I2CバスまたはI3Cバスなどのマルチワイヤシリアルバス410は、データワイヤ418を介してデータ信号を送信し、クロックワイヤ420を介してクロック信号を送信してもよい。
【００４２】
仮想GPIO構成情報のシグナリング
モバイル通信デバイス、およびモバイル通信デバイスに関するかまたはそれらに接続される他のデバイスは、より高い能力、性能、および機能をますます提供している。多くの事例では、モバイル通信デバイスは、様々な通信リンクを使用して接続される複数のICデバイスを組み込む。図5は、アプリケーションプロセッサ502および複数のペリフェラルデバイス504、506、508を含む装置500を示す。この例では、各ペリフェラルデバイス504、506、508は、互いに異なるプロトコルに従って動作するそれぞれの通信リンク510、512、514を介してアプリケーションプロセッサ502と通信する。アプリケーションプロセッサ502と各ペリフェラルデバイス504、506、508との間の通信は、アプリケーションプロセッサ502とペリフェラルデバイス504、506、508との間で制御信号またはコマンド信号を搬送する追加のワイヤを必要とする場合がある。これらの追加のワイヤは、サイドバンド汎用入出力(サイドバンドGPIO520、522、524)と呼ばれる場合があり、いくつかの事例では、サイドバンドGPIO520、522、524に対して必要とされる接続の数は、通信リンク510、512、514に対して使用される接続の数を超えることができる。
【００４３】
GPIOは、特定のアプリケーションのためにカスタマイズされてもよい一般的なピン/接続を提供する。たとえば、GPIOピンは、アプリケーションニーズに応じて、出力ピン、入力ピン、または双方向ピンとして機能するようにプログラム可能であってもよい。一例では、アプリケーションプロセッサ502は、モデムなどのペリフェラルデバイス504、506、508とのハンドシェイクシグナリングまたはプロセッサ間通信(IPC)を実行するためにいくつかのGPIOピンを割り当ててよく、かつ/または構成してもよい。ハンドシェイクシグナリングが使用されるとき、サイドバンドシグナリングは対称的であってよく、この場合、シグナリングは、アプリケーションプロセッサ502およびペリフェラルデバイス504、506、508によって送信および受信される。デバイスの複雑性の高まりにより、IPC通信のために使用されるGPIOピン数の増大は、製造コストを著しく増大させ、他のシステムレベルペリフェラルインターフェースに対するGPIO利用可能性を限定する場合がある。
【００４４】
図6は、本細書で開示するいくつかの態様による仮想GPIO(VGIまたはVGMI)をサポートするように適合される装置600を示す。VGI回路およびVGI技法は、アプリケーションプロセッサ602をペリフェラルデバイス624に接続するために使用される物理ピンおよび接続の数を低減することができる。VGIは、複数のGPIO信号が通信リンク622を介して送信することができる仮想GPIO信号にシリアル化されることを可能にする。一例では、仮想GPIO信号は、シリアルバスを含むマルチワイヤバスを含む通信リンク622を介して送信されるパケット内で符号化されてもよい。通信リンク622がシリアルバスとして提供されるとき、受信ペリフェラルデバイス624は、受信されたパケットをデシリアライズしてもよく、メッセージおよび仮想GPIO信号を抽出してもよい。ペリフェラルデバイス624内のVGI FSM626は、仮想GPIO信号を内部GPIOインターフェースに存在することができる物理的GPIO信号に変換してもよい。
【００４５】
別の例では、通信リンク622は、たとえば、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワーク(WLAN)プロトコル、セルラーワイドエリアネットワークプロトコル、および/または別のワイヤレス通信プロトコルを使用して、ワイヤレス通信をサポートする無線周波数トランシーバによって提供されてもよい。通信リンク622がワイヤレス接続を含むとき、メッセージおよび仮想GPIO信号は、パケット、フレーム、サブフレーム、または通信リンク622を介して送信することができる他の構造で符号化されてもよく、受信ペリフェラルデバイス624は、メッセージおよび仮想GPIO信号を取得するために、受信された信号を抽出、デシリアライズ、およびそうでなければ処理してもよい。メッセージおよび/または仮想GPIO信号の受信時に、VGI FSM626または受信デバイスの別の構成要素は、メッセージの受信および/またはGPIO信号内の何らかの変更を示すために、そのホストプロセッサに割り込んでもよい。
【００４６】
通信リンク622がシリアルバスとして提供される一例では、メッセージおよび/または仮想GPIO信号は、I2Cインターフェース、I3Cインターフェース、RFFEインターフェース、または別の標準化シリアルインターフェースに関して構成されるパケット内で送信されてもよい。図示の例では、VGI技法は、アプリケーションプロセッサ602とペリフェラルデバイス624との間のI/Oブリッジングに対応するために採用される。アプリケーションプロセッサ602は、ASIC、SoC、またはデバイスの何らかの組合せとして実装されてもよい。アプリケーションプロセッサ602は、1つまたは複数の通信チャネル606に関連するメッセージおよびGPIOを生成するプロセッサ(中央処理装置またはCPU604)を含む。通信チャネル606によって生成されるGPIO信号およびメッセージは、VGI FSM626内のそれぞれの監視回路612、614によって監視されてもよい。いくつかの例では、GPIO監視回路612は、物理的GPIO信号の状態および/または物理的GPIO信号の状態の変化を表す仮想GPIO信号を生成するように適合されてもよい。いくつかの例では、物理的GPIO信号の状態および/または物理的GPIO信号の状態の変化を表す仮想GPIO信号を生成するための他の回路が提供される。
【００４７】
推定回路618は、GPIO信号およびメッセージに関するレイテンシ情報を推定するように構成されてよく、GPIO信号およびメッセージを符号化および送信するためにレイテンシを最適化する通信リンク622に対する通信プロトコルおよび/またはモードを選択してもよい。推定回路618は、プロトコルおよび/または通信のモードを選択するときに考慮されるべき通信リンク622のいくつかの態様を特徴づけるプロトコルおよびモード情報616を維持してもよい。推定回路618は、GPIO信号およびメッセージを符号化および送信するためのパケットタイプを選択するようにさらに構成されてもよい。推定回路618は、GPIO信号およびメッセージを符号化するためにパケタイザ620によって使用される構成情報を提供してもよい。一例では、構成情報は、パケットのタイプをレシーバにおいて決定することができるように、パケット内でカプセル化されてもよいコマンドとして提供される。コマンドであってもよい構成情報はまた、物理レイヤ回路(PHY608)に提供されてもよい。PHY608は、関連するパケットを送信するためのプロトコルおよび/または通信のモードを選択するために構成情報を使用してもよい。PHY608は、次いで、パケットを送信するために適切なシグナリングを生成してもよい。
【００４８】
ペリフェラルデバイス624は、通信リンク622から受信されるデータパケットを処理するように構成されてもよいVGI FSM626を含んでもよい。ペリフェラルデバイス624におけるVGI FSM626は、メッセージを抽出してよく、仮想GPIO信号内のビット位置をペリフェラルデバイス624内の物理的GPIOピン上にマッピングしてもよい。いくつかの実施形態では、通信リンク622は双方向であり、アプリケーションプロセッサ602とペリフェラルデバイス624の両方がトランスミッタとレシーバの両方として動作してもよい。
【００４９】
アプリケーションプロセッサ602内のPHY608およびペリフェラルデバイス624内の対応するPHY628は、通信リンク622を確立し、かつ動作させるように構成されてもよい。PHY608および628は、ワイヤレス通信をサポートするワイヤレストランシーバ108(図1参照)に結合されてよいか、またはそれを含んでもよい。いくつかの例では、PHY608および628は、それぞれ、アプリケーションプロセッサ602およびペリフェラルデバイス624におけるI2Cインターフェース、I3Cインターフェース、RFFEインターフェース、またはSMBusインターフェースなど、2-ワイヤインターフェースをサポートしてよく、仮想GPIOおよびメッセージは、マルチワイヤシリアルバスであってもよい通信リンク622を介して送信されるパケットにカプセル化されてもよい。
【００５０】
本明細書で説明するいくつかの態様によれば、VGIトンネリングは、物理的GPIOピンの完全補完なしに、通信リンク622を動作させるように構成される既存のまたは利用可能なプロトコルを使用して実装することができる。VGI FSM610、626は、アプリケーションプロセッサ602内および/またはペリフェラルデバイス624内のプロセッサの介入なしに、GPIOシグナリングを処理してもよい。VGIの使用は、通信リンク622に関連するピンカウント、電力消費、およびレイテンシを低減させることができる。
【００５１】
受信デバイスにおいて、仮想GPIO信号は物理的GPIO信号に変換される。物理的GPIOピンのいくつかの特性は仮想GPIO信号を使用して構成されてもよい。たとえば、スルーレート、極性、ドライブ強度、ならびに物理的GPIOピンの他の関係するパラメータおよび属性は、仮想GPIO信号を使用して構成されてもよい。物理的GPIOピンを構成するために使用される構成パラメータは、対応するGPIOピンに関連する構成レジスタ内に記憶されてもよい。属性、またはI2C、I3C、またはRFFEなどの従来のプロトコルを使用してこれらの構成パラメータをアドレス指定することができる。一例では、構成パラメータはI3Cアドレス有効レジスタ内に維持されてもよい。本明細書で開示するいくつかの態様は、構成パラメータ、および対応するアドレス(たとえば、構成パラメータを記憶するために使用されるレジスタのアドレス)の送信に関連するレイテンシを低減させることに関する。
【００５２】
VGIインターフェースはメッセージおよび仮想GPIOの送信を可能にし、それによって、ワイヤード通信リンクまたはワイヤレス通信リンク622を介してシリアルデータストリーム内で仮想GPIO、メッセージ、または両方を送信することができる。一例では、シリアルデータストリームは、パケット内で、かつ/またはI2Cバス、I3Cバス、もしくはRFFEバスを介したトランザクションのシーケンスとして送信されてもよい。いくつかの例では、I2Cおよび/またはI3Cフレーム内の仮想GPIOデータの存在は、そのフレームをVGPIOフレームとして識別するための特別なコマンドコードを使用してシグナリングされてもよい。VGPIOフレームは、I2CプロトコルまたはI3Cプロトコルに従って、ブロードキャストフレームまたはアドレス指定フレームとして送信されてもよい。いくつかの実装形態では、シリアルデータストリームは、VGI_UART動作モードと呼ばれる場合がある動作モードで、ユニバーサル非同期受信機/送信機(UART)シグナリングプロトコルに似たフォーマットで送信されてもよい。
【００５３】
図7は、VGIブロードキャストフレーム700、720のいくつかの例を示す。第1の例では、ブロードキャストフレーム700は、I2CプロトコルまたはI3Cプロトコルに従って、開始ビット702(S)で始まり、その後にヘッダ704が続く。VGIブロードキャストフレームは、VGIブロードキャスト共通コマンドコード706を使用して識別されてもよい。VGPIOデータペイロード708は、第1の仮想GPIO信号7120から第n番目の仮想GPIO信号712n-1に及ぶ、いくつかの(n個の)仮想GPIO信号7120〜712n-1を含む。VGI FSMは、VGPIOデータペイロード708内の仮想GPIO信号のビット位置を従来のGPIOピン上にマッピングするマッピング表を含んでもよい。VGPIOデータペイロード708内のシグナリングの仮想性質は、送信デバイスおよび受信デバイス内のプロセッサに対して透過的であることが可能である。
【００５４】
第2の例では、マスクVGIブロードキャストフレーム720は、他のGPIOピンの状態を妨害せずに、1つまたは複数のGPIOピンの状態を変更するためにホストデバイスによって送信されてもよい。この例では、1つまたは複数のデバイスに対するI/O信号がマスクされるが、ターゲットデバイス内のI/O信号はマスクされない。マスクVGIブロードキャストフレーム720は、開始ビット722で始まり、その後にヘッダ724が続く。マスクVGIブロードキャストフレーム720は、マスクVGIブロードキャスト共通コマンドコード726を使用して識別されてもよい。VGPIOデータペイロード728は、I/O信号値7340〜734n-1と、第1のI/O信号(IO0)に対する第1のマスクビットM0 7320から第n番目のI/O信号IOn-1に対する第n番目のマスクビットMn-1 732n-1に及ぶ、対応するマスクビット7320〜732n-1とを含んでもよい。
【００５５】
停止ビットまたは同期ビット(Sr/P710、730)はブロードキャストフレーム700、720を終了する。同期ビットは、追加のVGPIOペイロードが送信されることになることを示すために送信されてもよい。一例では、同期ビットはI2Cインターフェース内の繰返し開始ビットであってもよい。
【００５６】
図8は、VGI有向フレーム800、820のいくつかの例を示す。第1の例では、VGI有向フレーム800は、単一のペリフェラルデバイスにアドレス指定されてよく、またはいくつかの事例では、ペリフェラルデバイスのグループにアドレス指定されてもよい。VGI有向フレーム800の第1は、I2CプロトコルまたはI3Cプロトコルに従って、開始ビット802(S)で始まり、その後にヘッダ804が続く。VGI有向フレーム800は、VGI有向共通コマンドコード806を使用して識別されてもよい。有向共通コマンドコード806の後に、同期フィールド808a(Sr)と、アドレス指定デバイスを選択するためのスレーブ識別子を含むアドレスフィールド810aとが続いてもよい。アドレスフィールド810aに続く有向VGPIOデータペイロード812aは、アドレス指定デバイスに関するI/O信号のセットに関する値816を含む。VGI有向フレーム800は、追加のデバイスに対する追加の有向ペイロード812bを含むことができる。たとえば、第1の有向VGPIOデータペイロード812aの後に、同期フィールド808bおよび第2のアドレスフィールド810bが続いてもよい。この例では、第2の有向VGPIOデータペイロード812bは、第2のアドレス指定デバイスに関するI/O信号のセットに関する値818を含む。VGI有向フレーム800の使用は、ブロードキャストVGPIOフレーム700、720内で搬送されるI/O信号のサブセットまたは部分に関する値の送信を許可してもよい。
【００５７】
第2の例では、マスクVGI有向フレーム820は、単一のペリフェラルデバイス内の他のGPIOピンの状態を妨害せずに、かつ他のペリフェラルデバイスに影響を及ぼさずに、1つまたは複数のGPIOピンの状態を変更するためにホストデバイスによって送信されてもよい。いくつかの例では、1つまたは複数のデバイス内のI/O信号はマスキングされてもよいが、1つまたは複数のターゲットデバイス内の選択されたI/O信号はマスキングされない。マスクVGI有向フレーム820は、開始ビット822で始まり、その後にヘッダ824が続く。マスクVGI有向フレーム820は、マスクVGI有向共通コマンドコード826を使用して識別されてもよい。マスクVGI有向コマンドコード826の後に、同期フィールド828(Sr)と、アドレス指定デバイスを選択するためのスレーブ識別子を含むアドレスフィールド830とが続いてもよい。続く有向ペイロード832は、アドレス指定デバイスに関するI/O信号のセットに関するVGPIO値を含む。たとえば、有向データペイロード832内のVGPIO値は、I/O信号値838および対応するマスクビット836を含んでもよい。
【００５８】
停止ビットまたは同期ビット(Sr/P814、834)は、VGI有向フレーム800、820を終了する。同期ビットは、追加のVGPIOペイロードが送信されることになることを示すために送信されてもよい。一例では、同期ビットはI2Cインターフェース内の繰返し開始ビットであってもよい。
【００５９】
受信デバイス(たとえば、アプリケーションプロセッサ502および/またはペリフェラルデバイス504、506、508)において、受信された仮想GPIO信号はGPIOピン上に提示される物理的GPIO信号状態に拡張される。本明細書で使用する「ピン」という用語は、パッド、ピン、またはICをワイヤ、トレース、スルーホールビア、または回路基板、基板などの上に提供される他の適切な物理的コネクタに結合するために使用される他の相互接続要素などの物理構造を指す場合がある。各GPIOピンは、GPIOピンに関する構成パラメータを記憶する1つまたは複数の構成レジスタに関連付けられてもよい。図9は、物理ピンに関連付けられてもよい構成レジスタ900および920を示す。各構成レジスタ900、920は、異なるビットまたはビットのグループが構成を通して制御することができる特性または他の特徴を定義する、1バイト(8ビット)レジスタとして実装される。第1の例では、ビットD0〜D2 902は、GPIOピンに対するドライブ強度を制御し、ビットD3〜D5 904は、GPIOピンに対するスルーレートを制御し、ビットD6 906は割込みを有効にし、ビットD7 908は、割込みがエッジトリガされるか、または電圧レベルによってトリガされるかを決定する。第2の例では、ビットD0 922は、GPIOピンが反転信号を受信するかまたは非反転信号を受信するかを決定し、ビットD1〜D2 924は、入力ピンまたは出力ピンのタイプを定義し、ビットD3〜D4 926は、駆動されない(undriven)ピンの一定の特性を定義し、ビットD5〜D6 928は、シグナリング状態に関する電圧レベルを定義し、ビットD7 930は、GPIピンに関する2進値(すなわち、GPIOピンがバイナリ1を搬送するかまたはバイナリ0を搬送するか)を制御する。
【００６０】
仮想GPIO有限ステートマシンの例
図10は、装置内の仮想GPIOをサポートすることができる有限ステートマシン1000のいくつかの態様を示す。有限ステートマシン1000は、ハードウェアイベント1002、構成パラメータ1004、マスクデータ1006、および/または構成パラメータレジスタアドレス1008を含む、複数の入力ソース1024からの状態情報を監視してもよい。有限ステートマシン1000は、物理リンク上で送信されることになるパケットを生成するために使用されるプロトコルを選択してもよい。有限ステートマシン1000は、図4に示すような、ホストSoC402内で、かつ/または1つまたは複数のペリフェラルデバイス412内で提供されるVGI FSM406、416を実装してもよい。様々な例では、有限ステートマシン1000は、シグナリング、切替え、バッファリング、および他の遅延を最小限に抑えることができる非常に低いレイテンシドメイン内で提供されてもよい。
【００６１】
有限ステートマシン1000は、アクティブペリフェラルデバイスが当該入出力状態に関連するときを含めて、いくつかの入出力状態が重要であるとき、状態および状態変化を監視するように構成される回路が利用可能であることを確実にするために常時オンドメインで展開されてもよい。多くの実装形態では、入出力状態の信頼できる監視を許可するために、有限ステートマシン1000を常時オンドメインで提供することが必要な場合がある。
【００６２】
いくつかの実装形態では、有限ステートマシン1000は、有限ステートマシン1000によって監視される状態が修正されているときにアクティブであるドメイン内で展開可能な場合があり、この場合、そのドメインは時々非アクティブであってもよい。有限ステートマシン1000が常時オンドメインでないドメイン内で展開される事例では、有限ステートマシン1000を許容可能なレイテンシ内でアクティブ状態に入らせるために、低レイテンシウェイクアップの技法および手順が採用されてもよい。一例では、常時オンドメイン内に位置する異なる有限ステートマシンは、仮想GPIOをサポートする有限ステートマシン1000の適時のウェイクアップを開始するために、入力状態、出力状態、および他の動作可能状態を監視することができる。別の例では、仮想GPIOをサポートする有限ステートマシン1000のウェイクアップを開始するためにプロセッサが使用されてもよい。別の例では、仮想GPIOをサポートする有限ステートマシン1000のウェイクアップを開始するために、異なる有限ステートマシンとプロセッサの何らかの組合せが使用されてもよい。
【００６３】
有限ステートマシン1000は、いくつかの異なるタイプのパケットを送信するように構成されてよく、有限ステートマシン1000は、通信リンク内のレイテンシを最適化するためのパケットのタイプを選択してもよい。一例では、有限ステートマシン1000は、送信されることになるGPIOデータと関連するGPIOピンの関連構成とに基づいて、パケットタイプを選択してもよい。パケット送信レイテンシ推定器1010は、送信GPIO状態、または1つまたは複数のハードウェアイベント1002から生じる状態変化に関連するレイテンシを推定するために、ハードウェアイベント1002を監視してもよい。パケット送信レイテンシ推定器1010は、マスクデータ1006が使用されるかどうかを決定してもよく、GPIO構成パラメータ1004、および構成パラメータレジスタアドレス1008。パケット送信レイテンシ推定器1010は、GPIOピンが構成される頻度に基づく推定を行ってもよい。GPIOピンがまれに構成される一例では、パケット送信レイテンシ推定器1010は、大きなレイテンシを有する旧来のアドレス指定I2C/I3Cパケットを使用してピンを構成してもよい。別の例では、仮想化GPIOシグナルおよびメッセージングシグナルはレジスタアドレスなしで送信されてよく、レシーバにおける有限ステートマシンは、対応するフレームまたはパケット内のビット位置に基づいて、GPIOシグナルおよびメッセージの識別を決定してもよい。後者の例では、GPIOピンが頻繁に再構成されるとき、GPIOデータとともに構成データを仮想化することによってレイテンシを低減してもよい。パケット送信レイテンシ推定器1010は、各パケットタイプに対して構成されるパケット固有レイテンシ推定器を使用してレイテンシを推定してもよい。異なるパケットタイプに対して構成されるパケット固有レイテンシ推定器によって推定される最小レイテンシを決定するために比較器を採用してもよい。比較器の出力は、送信のために選択されることになるパケットタイプ、および/またはパケット送信レイテンシ推定器1010によって考慮される他のパラメータを決定してもよい。
【００６４】
パケット送信レイテンシ推定器1010は、送信の際に使用されることになるパケットのタイプを決定するコマンドコード1018を選択するために使用される情報を提供してもよい。たとえば、パケット送信レイテンシ推定器1010は、複数の考えられるコマンドコードから選択するためにインデックス1016を使用するコマンドコード選択器モジュール1012にインデックス1016を提供してもよい。パケタイザブロック1014は、選択されたコマンドコード1018に従って、ペイロード1020内のデータ(たとえば、ハードウェアイベント1002に関連する情報)および/または構成パラメータ1004をシリアル化してもよい。結果として生じるパケット1022は、対応するI2C/I3Cインターフェースによって送信のために物理レイヤ(PHY)に提供されてもよい。
【００６５】
GPIO状態は、マスクパケットなど、GPIO状態のみのパケット(GPIO-state-only packet)、または非マスクパケットのいずれかを使用して送信されてもよい。一例では、GPIO状態のみのパケットタイプは、GPIOピンがまれに構成されるときに選択されてもよい。GPIO状態のみのパケットは、パケット内で送信されたコマンドコードヘッダに基づいてレシーバによって識別されてもよい。いくつかの事例では、マージまたは組み合わされたパケットが送信されてもよい。マージまたは組み合わされたパケットは、GPIO状態情報とGPIOピンに関連する構成データの両方を組み合わせてもよい。レシーバにおいて、マージされたパケットのマップビット位置をホストI/O番号、ペリフェラルデバイス番号、ペリフェラルアドレス、およびペリフェラルI/Oパラメータにマップするために、I/Oマッピング表が実装または維持されてもよい。たとえば、第1のマスクビットおよびマージされたパケット内の対応する値は、第1のペリフェラルデバイス内のペリフェラルアドレス(たとえば、0x01)にマップされてもよい。このビット位置に対して、対応するビットは識別されたGPIOピンに関するGPIO状態であってもよい。第1のマスクビットに続く第2のマスクビット、およびマージされたパケット内の対応するビットは、同じ識別されたGPIOピンに関するドライブ強度の選択に関連付けられてもよい。マージされたパケットは、様々な比率で、送信レイテンシを最適化するために必要とされる、GPIO状態および構成パラメータを含んでもよい。
【００６６】
マルチプロトコルインターフェース内の仮想GPIO
いくつかのインターフェースは、シグナリングによって区別される通信モード同士の間で切り替えることができる。たとえば、I3Cバスは、特に、レガシーI2Cデバイスとの通信のために、I2Cプロトコルがそのバス上で使用されてもよいI2C互換性動作モードで動作することができる。I3Cインターフェースは、データ転送レートおよび電力消費属性を含めて、様々な属性を有する複数の通信モードのために構成されてもよい。一例では、I3Cバスは、クロックワイヤ420上でクロック信号が送信され、データワイヤ418上でデータが送信される(図4参照)第1のモードで動作してもよく、第2のモードで、各シンボル送信間隔内のクロックワイヤ420およびデータワイヤ418のシグナリング状態を表すシンボルの形でデータが符号化されてもよい。
【００６７】
従来のシステムでは、送信されることになる情報の様々なタイプまたはソースに対して最適な送信レイテンシを達成するためにプロトコルの構造を変更することができないという意味で、異なるプロトコルの特性および属性は安定している。本明細書で開示するいくつかの態様に従って提供される有限ステートマシンは、プロトコル方式ならびにパケットタイプの選択によって最適なレイテンシを達成するように適合されてもよい。適合される有限ステートマシンは、送信デッドラインを満たすことが最も重要なことであるリアルタイム組み込みシステムアプリケーションにおける送信デッドラインを満たすのに好適な場合がある。
【００６８】
図10の有限ステートマシン1000は、GPIO状態およびメッセージを送信するために使用されるプロトコル同士の間で選択するように適合されてもよい。直列に送信されるパラメータは入力として見なされ、パケット送信レイテンシ推定器1010は、各情報(I/Oおよびメッセージング)転送のために使用されることになる最適プロトコルを決定することによってレイテンシを最適化するように構成されてもよい。GPIO状態およびメッセージングを搬送するパケットを受信するために使用されることになるプロトコルをレシーバに知らせるために、事前定義され、相互に合意されたコマンドコードのプールから選択される一意のコマンドコードが使用されてもよい。コマンドコードは、プロプリエタリコマンドコードであってよく、もしくはプロトコル、規格によって定義されてよく、かつ/またはアプリケーション特定考慮事項に基づいて定義されてもよい。一例では、コマンドコードは、MIPI Allianceによって定義された特定のコモンコマンドコード(CCC)を含んでもよい。
【００６９】
コマンドコードは、パケット送信レイテンシ推定器1010によって生成されるインデックス1016を使用して選択されてもよい。選択されるコマンドコード1018は、ペイロード1020とともにパケタイザブロック1014に提供される。パケタイザブロック1014は、パケット1022、および物理レイヤに選択されたプロトコル方式に従ってパケット1022を送信させるために必要な制御情報を生成する。パケタイザブロック1014は、パケット1022および制御情報を物理レイヤに渡す。一例では、I3C物理レイヤは、複数の異なるI3Cプロトコルおよび/または1つまたは複数のI2Cプロトコルもしくは構成を伴うI3C通信モードをサポートしてもよい。別の例では、RFFE物理レイヤは、異なるシグナリング方式および/またはプロトコルをサポートしてもよい。
【００７０】
図10に示す例では、入力ソース1024に優先順位が付けられてもよい。一例では、ハードウェアイベント1002から生じる状態変更は、最高優先順位を有してよく、その後にGPIO構成パラメータ1004が続き、その後に、マスクデータ1006が続き、その後に、指定されたレジスタアドレス1008との対話が続いてもよい。パケット送信レイテンシ推定器1010は、入力ソース1024から生成される各ペイロード1020を送信するための最良の利用可能なプロトコルを決定してもよい。パケット送信レイテンシ推定器1010は、各プロトコルのデータレートおよびレイテンシ属性に基づいて最良の利用可能なプロトコルを決定してもよい。たとえば、パケット送信レイテンシ推定器1010は、各プロトコルに対してシリアルバスを構成するために必要とされる時間、送信を開始する際の遅延、および/またはペイロード1020を送信するために必要とされる時間に基づいて、最悪レイテンシを評価してもよい。いくつかの事例では、読取りトランザクションおよび書込みトランザクションが連続して実行されるとき、ラインターンアラウンド時間を考慮に入れてもよい。他の例では、パケット送信レイテンシ推定器1010は、電力消費、電力バジェット、およびアプリケーションによって構成される優先順位に基づいてプロトコル方式を決定するように構成されてもよい。
【００７１】
有限ステートマシン1000は、アプリケーション、および/またはデバイス同士の間で通信するために使用される物理レイヤとは無関係に動作してもよい。有限ステートマシン1000は、アプリケーションプロセッサ502(図5参照)および/または1つまたは複数のペリフェラルデバイス504、506、508がスタンバイモードまたはスリープモードであるときに動作してもよい。後者の場合、別のデバイスがGPIO状態の変化を引き起こすときにアプリケーションプロセッサ502またはペリフェラルデバイス504、506、508がスリープモードにあるとき、有限ステートマシン1000はGPIO状態の整合性を維持してもよい。いくつかの例では、有限ステートマシン1000はアプリケーションによって構成されてもよい。いくつかの実装形態では、有限ステートマシン1000のいくつかの機能は、たとえば、リソースおよび/または電力使用のシステム全体に及ぶ優先順位を条件とする実装形態において、ソフトウェアモジュールを使用して実行されてもよい。
【００７２】
いくつかの事例では、有限ステートマシン1000は、異なる物理レイヤ同士の間で選択することによってレイテンシを最適化してもよい。たとえば、有限ステートマシン1000は、2つのデバイス同士の間のRFFE通信リンクをサポートする第1の物理レイヤと、2つのデバイス同士の間のI2C通信リンクまたはI3C通信リンクをサポートする第2の物理レイヤとの間で選択してもよい。
【００７３】
いくつかの態様によれば、有限ステートマシン1000は、選択されたプロトコルに関するレイテンシを最適化するパケットのフォーマットを取得するためにメッセージングパケットを再フォーマットしてもよい。有限ステートマシン1000は、最適および/または最小化レイテンシを満たすメッセージングおよび/またはGPIO状態コンテンツの転送を可能にするために最も適したパケットを選択することによってレイテンシを最適化してもよい。
【００７４】
処理回路および処理方法の例
図11は、仮想GPIOレイテンシを最適化するために有限ステートマシン610、1000を採用する装置1100に関するハードウェア実装形態の例を示す図である。いくつかの例では、装置1100は有限ステートマシン610、1000の動作を構成してもよい。いくつかの例では、装置1100は、本明細書で開示する1つまたは複数の機能を実行してもよい。本開示の様々な態様によれば、本明細書で開示するような要素、もしくは要素の何らかの一部分、または要素の何らかの組合せは処理回路1102を使用して実装されてもよい。処理回路1102は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1104を含んでもよい。プロセッサ1104の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、SoC、ASIC、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、シーケンサ、ゲート論理、ディスクリートハードウェア回路、および本開示を通して説明する様々な機能を実行するように構成される他の適切なハードウェアを含む。1つまたは複数のプロセッサ1104は、特定の機能を実行する特殊なプロセッサを含んでもよく、ソフトウェアモジュール1116のうちの1つによって構成、拡張、または制御されてもよい。1つまたは複数のプロセッサ1104は、初期化中にロードされたソフトウェアモジュール1116の組合せによって構成されてもよく、動作中に1つまたは複数のソフトウェアモジュール1116をロードまたはアンロードすることによってさらに構成されてもよい。
【００７５】
図示の例では、処理回路1102は、バス1110によって一般的に表されるバスアーキテクチャを用いて実装されてもよい。バス1110は、処理回路1102の特定の用途および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含んでもよい。バス1110は、1つまたは複数のプロセッサ1104を含む様々な回路および記憶装置1106を互いにリンクさせる。記憶装置1106は、メモリデバイスおよび大容量記憶デバイスを含んでもよく、本明細書ではコンピュータ可読媒体および/またはプロセッサ可読媒体と呼ばれる場合がある。バス1110はまた、タイミングソース、タイマ、ペリフェラル機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできる。バスインターフェース1108は、バス1110と1つまたは複数のトランシーバ1112a、1112bとの間のインターフェースを提供してもよい。トランシーバ1112a、1112bは、処理回路によってサポートされるネットワーキング技術ごとに設けられてもよい。いくつかの事例では、複数のネットワーキング技術は、トランシーバ1112a、1112bの中に見られる回路または処理モジュールの一部または全部を共有してもよい。各トランシーバ1112a、1112bは、送信媒体を介して様々な他の装置と通信するための手段を構成する。一例では、トランシーバ1112aは、装置1100をマルチワイヤバスに結合するために使用されてもよい。別の例では、トランシーバ1112bは、装置1100をワイヤレスネットワークに結合するために使用されてもよい。装置1100の性質に応じて、ユーザインターフェース1118(たとえば、キーパッド、ディスプレイ、スピーカー、マイクロフォン、ジョイスティック)が設けられてもよく、直接またはバスインターフェース1108を介してバス1110に通信可能に結合されてもよい。
【００７６】
プロセッサ1104は、バス1110を管理すること、および記憶装置1106を含んでもよいコンピュータ可読媒体内に記憶されたソフトウェアの実行を含んでもよい一般的な処理を担ってもよい。この点で、プロセッサ1104を含む処理回路1102は、本明細書で開示する方法、機能および技法のうちのいずれかを実装するために使用されてもよい。記憶装置1106は、ソフトウェアを実行するとき、プロセッサ1104によって操作されるデータを記憶するために使用されてもよく、ソフトウェアは、本明細書で開示する方法のうちの任意の1つを実装するように構成されてもよい。
【００７７】
処理回路1102における1つまたは複数のプロセッサ1104は、ソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、手順、関数、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読形態で、記憶装置1106内または外部コンピュータ可読媒体内に存在してもよい。外部コンピュータ可読媒体および/または記憶装置1106は、非一時的コンピュータ可読媒体を含んでもよい。非一時的コンピュータ可読媒体は、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブル読み出し専用メモリ(PROM)、EEPROMを含む消去可能PROM(EPROM)、レジスタ、リムーバブルディスク、および、コンピュータによってアクセスされ読み取られてもよいソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。コンピュータ可読媒体および/または記憶装置1106はまた、例として、搬送波、送信線路、および、コンピュータによってアクセスされ読み取られてもよいソフトウェアおよび/または命令を送信するための任意の他の適切な媒体を含んでもよい。コンピュータ可読媒体および/または記憶装置1106は、処理回路1102内に存在するか、プロセッサ1104内に存在するか、処理回路1102の外部に存在するか、または処理回路1102を含む複数のエンティティにわたって分散されてもよい。コンピュータ可読媒体および/または記憶装置1106は、コンピュータプログラム製品で具現化されてもよい。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含んでもよい。当業者であれば、特定の用途およびシステム全体に課せられた全体的な設計制約に応じて、本開示を通じて提示される、説明する機能をどのように実装するのが最良であるかを認識するであろう。
【００７８】
記憶装置1106は、本明細書でソフトウェアモジュール1116と呼ばれる場合がある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて維持および/または編成されるソフトウェアを維持してもよい。ソフトウェアモジュール1116の各々は、処理回路1102上にインストールまたはロードされ、1つまたは複数のプロセッサ1104によって実行されると、1つまたは複数のプロセッサ1104の動作を制御するランタイムイメージ1114に寄与する命令およびデータを含んでもよい。実行されると、いくつかの命令は、処理回路1102に、本明細書で説明するいくつかの方法、アルゴリズム、およびプロセスに従って機能を実行させてもよい。
【００７９】
ソフトウェアモジュール1116の一部は、処理回路1102の初期化中にロードされてもよく、これらのソフトウェアモジュール1116は、本明細書に開示する様々な機能の実行を可能にするように処理回路1102を構成してもよい。たとえば、いくつかのソフトウェアモジュール1116は、プロセッサ1104の内部デバイスおよび/または論理回路1122を構成してもよく、トランシーバ1112、バスインターフェース1108、ユーザインターフェース1118、タイマ、数理コプロセッサなどの外部デバイスへのアクセスを管理してもよい。ソフトウェアモジュール1116は、割込みハンドラおよびデバイスドライバと対話するとともに処理回路1102によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含んでもよい。リソースは、メモリ、処理時間、トランシーバ1112へのアクセス、ユーザインターフェース1118などを含んでもよい。
【００８０】
処理回路1102の1つまたは複数のプロセッサ1104は、多機能であってよく、それにより、ソフトウェアモジュール1116のうちのいくつかがロードされ、異なる機能または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ1104は、追加として、たとえば、ユーザインターフェース1118、トランシーバ1112、およびデバイスドライバからの入力に応じて開始されるバックグラウンドタスクを管理するように適合されてもよい。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ1104は、マルチタスク環境を提供するように構成されてよく、それにより、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ1104によってサービスされるタスクのセットとして実装される。一例では、マルチタスキング環境は、異なるタスク間でプロセッサ1104の制御を渡す時分割プログラム1120を使用して実装されてよく、それにより、各タスクは、任意の未処理動作が完了すると、かつ/または割込みなどの入力に応じて、時分割プログラム1120に1つまたは複数のプロセッサ1104の制御を戻す。タスクが1つまたは複数のプロセッサ1104の制御を有するとき、処理回路は、事実上、制御しているタスクに関連付けられた機能によって対処される目的に特化される。時分割プログラム1120は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先順位付けに従って1つまたは複数のプロセッサ1104の制御を割り振る機能、および/または、1つまたは複数のプロセッサ1104の制御を処理機能に提供することによって外部イベントに応答する割込み駆動のメインループを含んでもよい。
【００８１】
仮想GPIOレイテンシを最適化するための方法は、GPIO信号状態のソース、送信されることになるパラメータおよび/またはメッセージングを含めて様々な入力ソースをパースする動作を含んでもよい。入力ソースは、ハードウェアイベント、構成データ、マスクパラメータ、およびレジスタアドレスを含んでもよい。パースされたパラメータに基づいて対応するパケットタイプに対するレイテンシを推定するためにパケット固有レイテンシ推定器が採用されてもよい。送信するために使用されることになるパケットタイプは、利用可能なパケットタイプに対し計算または決定される最小レイテンシに基づいて選択されてもよい。選択されたパケットタイプは、送信されることになるペイロードとともにパケタイザに提供されてもよいコマンドコードを使用して識別されてもよい。コマンドコードはまた、ペイロードを送信するために使用されることになるプロトコルを反映してもよい。いくつかの実装形態では、ペイロードを送信するために使用される物理リンクは、様々なプロトコルまたは1つまたは複数のプロトコルの様々な変形形態に従って動作してもよい。ペイロードを送信するために使用されることになるプロトコルは、様々な利用可能なプロトコルまたはプロトコルの変形形態に関連するレイテンシに基づいて選択されてもよい。
【００８２】
図12は、送信デバイスにおいて実行されてもよい方法のフローチャート1200である。本方法の部分は、送信デバイス内の有限ステートマシンによって実行されてもよい。
【００８３】
ブロック1202において、有限ステートマシンは、仮想GPIO信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化してもよい。仮想GPIO信号は物理的GPIOコネクタに関する状態情報を表してもよい。
【００８４】
ブロック1204において、有限ステートマシンは、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定してもよい。
【００８５】
ブロック1206において、有限ステートマシンは、通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供してもよい。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。
【００８６】
ブロック1208において、有限ステートマシンは、通信リンクを介してコマンドコードヘッダおよびデータパケットをコマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信してもよい。
【００８７】
いくつかの例では、有限ステートマシンは、最大レイテンシ要件と、シリアルバスに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになるシリアルバスに対する動作モードを決定してもよい。有限ステートマシンは、データパケットを送信するために使用されることになる動作モードを物理レイヤ回路に示すようにコマンドコードヘッダを構成してもよい。
【００８８】
いくつかの例では、通信リンクはシリアルバスを含む。有限ステートマシンは、最大レイテンシ要件と、シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定してもよい。有限ステートマシンは、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成してもよい。シリアルバス上で使用するために利用可能な複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、またはRFFEプロトコルを含んでもよい。
【００８９】
いくつかの例では、通信リンクはワイヤレス通信リンクを含む。有限ステートマシンは、最大レイテンシ要件と、ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定してもよい。有限ステートマシンは、データパケットを送信するために使用されることになるプロトコルを示すようにコマンドコードヘッダを構成してもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【００９０】
いくつかの例では、データパケットは、少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む。構成パラメータは、スルーレートパラメータまたはドライブ強度パラメータを含んでもよい。
【００９１】
図13は、処理回路1302を採用する装置1300のためのハードウェア実装形態の簡略化された例を示す図である。本装置は、本明細書で開示するいくつかの態様に従ってブリッジング回路を実装してもよい。処理回路は、一般に、1つまたは複数のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、および/またはステートマシンを含んでもよいコントローラまたはプロセッサ1316を有する。処理回路1302は、概してバス1320によって表されるバスアーキテクチャを用いて実装されてもよい。バス1320は、処理回路1302の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでもよい。バス1320は、コントローラまたはプロセッサ1316、モジュールまたは回路1304、1306、および1308、およびプロセッサ可読記憶媒体1318によって表される、1つまたは複数のプロセッサおよび/またはハードウェアモジュールを含む様々な回路を互いにリンクさせる。1つまたは複数の物理レイヤ回路および/またはモジュール1314は、(たとえば、ワイヤレスネットワークに対する)アンテナ1322を介してマルチワイヤバス1312を使用して実装される通信リンクを介した通信をサポートするために提供されてもよい。バス1320はまた、当技術分野でよく知られており、したがって、これ以上説明されない、タイミングソース、周辺機器、電圧調整器、および電力管理回路など、様々な他の回路をリンクさせてもよい。
【００９２】
プロセッサ1316は、プロセッサ可読記憶媒体1318内に記憶されたソフトウェア、コード、および/または命令の実行を含めて、一般的な処理を担当する。プロセッサ可読記憶媒体は、非一時的記憶媒体を含んでもよい。ソフトウェアは、プロセッサ1316によって実行されると、処理回路1302に任意の特定の装置について上記で説明した様々な機能を実行させる。プロセッサ可読記憶媒体は、ソフトウェアを実行するとき、プロセッサ1316によって操作されるデータを記憶するために使用されてもよい。処理回路1302は、モジュール1304、1306、および1308のうちの少なくとも1つをさらに含む。モジュール1304、1306、および1308は、プロセッサ可読記憶媒体1318に存在する/記憶された、プロセッサ1316の中で動作するソフトウェアモジュール、プロセッサ1316に結合された1つもしくは複数のハードウェアモジュール、またはそれらのいくつかの組合せであってもよい。モジュール1304、1306、および/または1308は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含んでもよい。
【００９３】
一構成では、装置1300は、GPIO信号をGPIO状態のみ情報にシリアル化するように構成されるモジュールおよび/または回路1308と、通信リンクを介してGPIO状態のみ情報を送信するための最大レイテンシ要件を決定するように構成されるモジュールおよび/または回路1306と、GPIO状態のみ情報およびコマンドコードを含むパケットを物理レイヤ回路1314に提供するように構成されるモジュールおよび/または回路1304とを含む。一例では、コマンドコードは、シリアルバスを介してGPIO状態のみ情報を送信するために使用されることになるパケットを示す。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。別の例では、コマンドコードは、GPIO状態のみ情報を送信するために使用されることになるプロトコルを示す。プロトコルは、最大レイテンシ要件と、通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて選択されてもよい。
【００９４】
様々な例では、装置1300は、図6のPHY608に対応してよく、かつ装置を通信リンクに結合するように適合されてもよい1つまたは複数の物理レイヤ回路および/または回路1314と、メッセージまたは仮想GPIO信号を通信リンクを介して送信されることになるデータパケット内に符号化するように構成されるパケタイザ620またはパケタイザブロック1014と、通信リンクを介してデータパケットを送信するための最大レイテンシ要件を決定することと、コマンドコードをパケタイザに提供することであって、コマンドコードが通信リンクを介してデータパケットを送信するために使用されることになるパケットタイプを示す、提供することとを行うように構成される有限ステートマシン610または1000とを含む。パケットタイプは、最大レイテンシ要件を満たすように選択されてもよい。パケタイザは、データパケットおよびコマンドコードを含むパケットをPHY608に提供するように構成されてもよい。PHY608は、通信リンクを介してパケットを少なくとも1つのペリフェラルデバイス412、504、506、508、または624に送信するように構成されてもよい。
【００９５】
一例では、通信リンクは、シリアルバスとして動作するように構成されるマルチワイヤバス1312を含む。有限ステートマシン610または1000は、最大レイテンシ要件と、シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定し、パケットを送信するために使用されることになるプロトコルを示すようにコマンドコードを構成するように構成されてもよい。複数のプロトコルは、I2Cプロトコル、I3Cプロトコル、またはRFFEプロトコルを含んでもよい。
【００９６】
別の例では、有限ステートマシン610または1000は、最大レイテンシ要件と、通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、データパケットを送信するときに使用されることになる通信リンクに対する動作モードを決定し、データパケットをPHY608に送信するために使用されることになる動作モードを示すように第1のコマンドコードを構成するように構成されてもよい。
【００９７】
別の例では、通信リンクは、たとえば、アンテナ124または1322を通してアクセス可能なワイヤレス通信リンクを含む。有限ステートマシン610または1000は、最大レイテンシ要件と、ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、データパケットを送信するために使用されることになるプロトコルを決定し、データパケットを送信するために使用されることになるプロトコルを示すように第1のコマンドコードヘッダを構成するように構成されてもよい。複数のプロトコルは、Bluetooth(登録商標)プロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含んでもよい。
【００９８】
いくつかの例では、データパケットは、少なくとも1つのペリフェラルデバイス412、504、506、508、または624内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む。構成パラメータは、スルーレートパラメータまたはドライブ強度パラメータを含んでもよい。
【００９９】
開示したプロセスにおけるステップの特定の順序または階層は、例示的な手法の例示であることが理解される。設計選好に基づいて、プロセスにおけるステップの特定の順序または階層が並べ替えられてもよいことが理解される。さらに、いくつかのステップは、組み合わせられてよく、または省略されてもよい。添付の方法クレームは、様々なステップの要素を見本的な順序で提示し、提示された特定の順序または階層に限定されることは意図されない。
【０１００】
上述の説明は、本明細書で説明した様々な態様を当業者が実施できるようにするために提供される。これらの態様への様々な変更が当業者には容易に明らかになり、本明細書で規定された一般原理は他の態様に適用されてもよい。したがって、特許請求の範囲は、本明細書に示す態様に限定されるものではなく、文言通りの特許請求の範囲と一致するすべての範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味するものとする。別段に明記されていない限り、「いくつかの」という用語は、1つまたは複数を指す。当業者に知られているか、後で知られることになる、本開示全体にわたって説明した様々な態様の要素のすべての構造的および機能的均等物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されることが意図される。その上、本明細書で開示するものは、そのような開示が特許請求の範囲において明示的に列挙されているかどうかにかかわらず、公に供されるものではない。いかなるクレーム要素も、要素が「ための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【０１０１】
100  装置
102  SoC処理回路、処理回路
104  回路またはデバイス、ASIC
106  回路またはデバイス、ペリフェラルデバイス
108  回路またはデバイス、トランシーバ
110  モデム
112  プロセッサ
114  オンボードメモリ
116  バスインターフェース回路、インターフェース回路
118a  バス
118b  バス
120  バス
122  プロセッサ可読記憶装置
124  アンテナ
126  ディスプレイ
128  スイッチまたはボタン
130  スイッチまたはボタン
132  一体型または外部キーパッド、キーパッド
200  装置
202  デバイス、スレーブデバイス
204  制御機能
206  構成レジスタ
208  クロック生成回路
210  トランシーバ
210a  レシーバ
210b  共通回路
210c  トランスミッタ
212  制御論理
214a  ラインドライバ/レシーバ
214b  ラインドライバ/レシーバ
216  第1のワイヤ
218  第2のワイヤ
220  デバイス、バスマスタデバイス、マスタデバイス
222a〜222n  デバイス
224  他の記憶装置
228  信号
230  シリアルバス、2-ワイヤシリアルバス
300  ブロック図
302  デバイス
304  モデム
306  ベースバンドプロセッサ
308  RFFEバス、通信リンク
310  RFFEインターフェース
312  RF集積回路(RFIC)
312〜317  フロントエンドデバイス
313  スイッチ
314  チューナ
315  電気増幅器(PA)
316  低雑音増幅器(LNA)316
317  電力管理モジュール
320  通信リンク
400  デバイス
402  ホストSoC
404  I3Cインターフェース
406  仮想GPIO有限ステートマシン(VGI FSM)
410  マルチワイヤシリアルバス
412  ペリフェラルデバイス
414  I3Cインターフェース
416  VGI FSM
418  データワイヤ
420  クロックワイヤ
500  装置
502  アプリケーションプロセッサ
504  ペリフェラルデバイス
506  ペリフェラルデバイス
508  ペリフェラルデバイス
510  通信リンク
512  通信リンク
514  通信リンク
520  サイドバンド汎用入出力(サイドバンドGPIO)
522  サイドバンド汎用入出力(サイドバンドGPIO)
524  サイドバンド汎用入出力(サイドバンドGPIO)
600  装置
602  アプリケーションプロセッサ
606  通信チャネル
608  物理レイヤ回路(PHY)
610  VGI FSM
612  監視回路、GPIO監視回路
614  監視回路
616  モード情報
618  推定回路
620  パケタイザ
622  通信リンク、ワイヤレス通信リンク
624  ペリフェラルデバイス、受信ペリフェラルデバイス
626  VGI FSM
628  PHY
700  VGIブロードキャストフレーム
702  開始ビット(S)
704  ヘッダ
706  VGIブロードキャスト共通コマンドコード
708  VGPIOデータペイロード
710  Sr/P
7120〜712n-1  仮想GPIO信号
720  VGIブロードキャストフレーム、マスクVGIブロードキャストフレーム
722  開始ビット
724  ヘッダ
726  マスクVGIブロードキャスト共通コマンドコード
728  VGPIOデータペイロード
730  Sr/P
7320  第1のマスクビットM0
7320〜732n-1  対応するマスクビット
732n-1  第n番目のマスクビットMn-1
7340〜734n-1  I/O信号値
800  VGI有向フレーム
802  開始ビット(S)
804  ヘッダ
806  VGI有向共通コマンドコード、有向共通コマンドコード
808a  同期フィールド(Sr)
808b  同期フィールド
810a  アドレスフィールド
810b  第2のアドレスフィールド
812a  有効VGPIOデータペイロード、第1の有効VGPIOデータペイロード
812b  追加の有向VGPIOデータペイロード、第2の有向VGPIOデータペイロード
814  停止ビットまたは同期ビット(Sr/P)
816  値
818  値
820  VGI有向フレーム
822  開始ビット(S)
824  ヘッダ
826  マスクVGI有向コマンドコード
828  同期フィールド(Sr)
830  アドレスフィールド
832  有向ペイロード
834  停止ビットまたは同期ビット(Sr/P)
836  マスクビット
838  I/O信号値
900  構成レジスタ
902  ビットD0〜D2
904  ビットD3〜D5
906  ビットD6
908  ビットD7
920  構成レジスタ
922  ビットD0
924  ビットD1〜D20
926  ビットD3〜D4
928  ビットD5〜D6
930  ビットD7
1000  有限ステートマシン
1002  ハードウェアイベント
1004  構成パラメータ
1006  マスクデータ
1008  構成パラメータレジスタアドレス
1010  パケット送信レイテンシ推定器
1012  コマンドコード選択器モジュール
1014  パケタイザブロック
1016  インデックス
1018  コマンドコード
1020  ペイロード
1022  パケット
1024  入力ソース
1100  装置
1102  処理回路
1104  プロセッサ
1106  記憶装置
1108  バスインターフェース
1110  バス
1112  トランシーバ
1112a  トランシーバ
1112b  トランシーバ
1114  ランタイムイメージ
1116  ソフトウェアモジュール
1118  ユーザインターフェース
1200  フローチャート
1300  装置
1302  処理回路
1304  モジュールまたは回路
1306  モジュールまたは回路
1308  モジュールまたは回路
1314  物理レイヤ回路および/またはモジュール
1316  コントローラまたはプロセッサ
1318  プロセッサ可読記憶媒体
1320  バス
1322  アンテナ
【図１】
2019508915.tif 000003
【図２】
2019508915.tif 000004
【図３】
2019508915.tif 000005
【図４】
2019508915.tif 000006
【図５】
2019508915.tif 000007
【図６】
2019508915.tif 000008
【図７】
2019508915.tif 000009
【図８】
2019508915.tif 000010
【図９】
2019508915.tif 000011
【図１０】
2019508915.tif 000012
【図１１】
2019508915.tif 000013
【図１２】
2019508915.tif 000014
【図１３】
2019508915.tif 000015
【手続補正書】
【提出日】平成30年6月12日(2018.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
送信デバイスにおいて実行される方法であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するステップであって、前記通信リンクがシリアルバスであり、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、ステップと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するステップと、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定するステップであって、前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、および無線周波数フロントエンド(RFFE)プロトコルを含む、ステップと、
前記通信リンクを介して前記データパケットを送信するために使用されることになる前記プロトコルおよびパケットタイプを示すコマンドコードヘッダを提供するステップであって、前記プロトコルおよび前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、ステップと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるプロトコルおよびタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するステップと
を含む、方法。
【請求項２】
送信デバイスにおいて実行される方法であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するステップであって、前記通信リンクがワイヤレス通信リンクであり、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、ステップと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するステップと、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定するステップであって、前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、およびセルラーワイヤレスネットワークに関連するプロトコルを含む、ステップと、
前記通信リンクを介して前記データパケットを送信するために使用されることになる前記プロトコルおよびパケットタイプを示すコマンドコードヘッダを提供するステップであって、前記プロトコルおよび前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、ステップと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるプロトコルおよびタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するステップと
を含む、方法。
【請求項３】
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定するステップと、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成するステップと
をさらに含む、請求項1または2に記載の方法。
【請求項４】
前記データパケットが、前記少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む、請求項1または2に記載の方法。
【請求項５】
前記構成パラメータがスルーレートパラメータを含む、請求項4に記載の方法。
【請求項６】
前記構成パラメータがドライブ強度パラメータを含む、請求項4に記載の方法。
【請求項７】
装置であって、
前記装置を通信リンクに結合するように適合された物理レイヤ回路であって、前記通信リンクがシリアルバスである、物理レイヤ回路と、
メッセージまたは仮想GPIO信号を前記通信リンクを介して送信されることになるデータパケット内に符号化するように構成されるパケタイザと、
有限ステートマシンであって、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
コマンドコードを前記パケタイザに提供することであって、前記コマンドコードが、前記通信リンクを介して前記データパケットを送信するために使用されることになる前記プロトコルおよびパケットタイプを示し、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと
を行うように構成される、有限ステートマシンと
を備え、
前記パケタイザが、前記データパケットおよび前記コマンドコードを含むパケットを前記物理レイヤ回路に提供するように構成され、
前記物理レイヤ回路が、前記通信リンクを介して前記パケットを少なくとも1つのペリフェラルデバイスに送信するように構成され、
前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンド(RFFE)プロトコルを含む、
装置。
【請求項８】
装置であって、
前記装置を通信リンクに結合するように適合された物理レイヤ回路であって、前記通信リンクがワイヤレス通信リンクである、物理レイヤ回路と、
メッセージまたは仮想GPIO信号を前記通信リンクを介して送信されることになるデータパケット内に符号化するように構成されるパケタイザと、
有限ステートマシンであって、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
コマンドコードを前記パケタイザに提供することであって、前記コマンドコードが、前記通信リンクを介して前記データパケットを送信するために使用されることになる前記プロトコルおよびパケットタイプを示し、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと
を行うように構成される、有限ステートマシンと
を備え、
前記パケタイザが、前記データパケットおよび前記コマンドコードを含むパケットを前記物理レイヤ回路に提供するように構成され、
前記物理レイヤ回路が、前記通信リンクを介して前記パケットを少なくとも1つのペリフェラルデバイスに送信するように構成され、
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、
装置。
【請求項９】
前記有限ステートマシンが、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定し、
前記データパケットを送信するために使用されることになる前記動作モードを前記物理レイヤ回路に示すように前記コマンドコードを構成する
ように構成される、請求項7または8に記載の装置。
【請求項１０】
前記データパケットが、前記少なくとも1つのペリフェラルデバイス内のGPIOピンに関する構成パラメータに対応する仮想GPIO信号を含む、請求項7または8に記載の装置。
【請求項１１】
前記構成パラメータがスルーレートパラメータを含む、請求項10に記載の装置。
【請求項１２】
前記構成パラメータがドライブ強度パラメータを含む、請求項10に記載の装置。
【請求項１３】
装置であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するための手段であって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、手段と、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するための手段と、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するための手段であって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、手段と、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するための手段と
を含み、
前記通信リンクがシリアルバスを含み、最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成する
ように構成され、
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンドプロトコルを含む
装置。
【請求項１４】
装置であって、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化するための手段であって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、手段と、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定するための手段と、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供するための手段であって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、手段と、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信するための手段と
を含み、前記通信リンクがワイヤレス通信リンクを含み、最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定し、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成する
ように構成され、
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、
装置。
【請求項１５】
最大レイテンシ要件を前記決定するための手段が、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定し、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成する
ように構成される、請求項13または14に記載の装置。
【請求項１６】
1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、処理回路の少なくとも1つのプロセッサまたはステートマシンによって実行されると、前記処理回路に、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化することであって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、符号化することと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供することであって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信することと
を行わせ、
前記通信リンクがシリアルバスを含み、前記処理回路に、
前記最大レイテンシ要件と、前記シリアルバス上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含み、
前記シリアルバス上で使用するために利用可能な前記複数のプロトコルが、I2Cプロトコル、I3Cプロトコル、または無線周波数フロントエンドプロトコルを含む、
プロセッサ可読記憶媒体。
【請求項１７】
1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、処理回路の少なくとも1つのプロセッサまたはステートマシンによって実行されると、前記処理回路に、
仮想汎用入出力(GPIO)信号またはメッセージを通信リンクを介して送信されることになるデータパケット内に符号化することであって、前記仮想GPIO信号が物理的GPIOコネクタに関する状態情報を表す、符号化することと、
前記通信リンクを介して前記データパケットを送信するための最大レイテンシ要件を決定することと、
前記通信リンクを介して前記データパケットを送信するために使用されることになるパケットタイプを示すコマンドコードヘッダを提供することであって、前記パケットタイプが前記最大レイテンシ要件を満たすように選択される、提供することと、
前記通信リンクを介して前記コマンドコードヘッダおよび前記データパケットを前記コマンドコードヘッダによって示されるタイプを有するパケット内の少なくとも1つのペリフェラルデバイスに送信することと
を行わせ、
前記通信リンクがワイヤレス通信リンクを含み、前記処理回路に、
前記最大レイテンシ要件と、前記ワイヤレス通信リンク上で使用するために利用可能な複数のプロトコルの1つまたは複数の属性とに基づいて、前記データパケットを送信するために使用されることになるプロトコルを決定することと、
前記データパケットを送信するために使用されることになる前記プロトコルを示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含み、
前記複数のプロトコルが、Bluetoothプロトコル、ワイヤレスローカルエリアネットワークに関連するプロトコル、またはセルラーワイヤレスネットワークに関連するプロトコルを含む、
プロセッサ可読記憶媒体。
【請求項１８】
前記処理回路に、
前記最大レイテンシ要件と、前記通信リンクに関連する複数の動作モードの1つまたは複数の属性とに基づいて、前記データパケットを送信するときに使用されることになる前記通信リンクに対する動作モードを決定することと、
前記データパケットを送信するために使用されることになる前記動作モードを物理レイヤ回路に示すように前記コマンドコードヘッダを構成することと
を行わせる命令をさらに含む、請求項16または17に記載の記憶媒体。
【国際調査報告】
2019508915.tif 000016
2019508915.tif 000017