(57)【要約】  ある態様では、集積回路は、1つまたは複数の周辺デバイスのための汎用入力/出力(GPIO)信号のセットを取得し、中央処理装置とは独立にGPIO信号のセットを含む第1の仮想GPIOパケットを取得し、中央処理装置とは独立にI3Cバスを通じて第1の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信する。集積回路はさらに、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得し、中央処理装置とは独立に構成信号のセットを含む第2の仮想GPIOパケットを取得し、中央処理装置とは独立にI3Cバスを通じて第2の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信し得る。
2018533120.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得し、
中央処理装置とは独立に汎用入力/出力信号の前記セットを含む第1の仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立にI3Cバスを通じて前記第1の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、集積回路。
【請求項２】
前記処理回路がさらに、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記第1の仮想汎用入力/出力パケットに含まれる、請求項1に記載の集積回路。
【請求項３】
前記処理回路がさらに、
前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得し、
前記中央処理装置とは独立に構成信号の前記セットを含む第2の仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立に前記I3Cバスを通じて前記第2の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、請求項1に記載の集積回路。
【請求項４】
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記第2の仮想汎用入力/出力パケットに含まれる、請求項3に記載の集積回路。
【請求項５】
前記第1の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける直接の入力/出力マッピングレジスタのアドレスを含み、前記直接の入力/出力マッピングレジスタの各ビットが、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項1に記載の集積回路。
【請求項６】
前記第2の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける構成レジスタのアドレスを含む、請求項3に記載の集積回路。
【請求項７】
構成信号の前記セットが、
前記1つまたは複数の周辺デバイスの前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項3に記載の集積回路。
【請求項８】
前記処理回路がさらに、
マッピング表に基づいて前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の少なくとも前記セットを前記第1の仮想汎用入力/出力パケットの中の第1の所定のビット場所にマッピングし、または、前記マッピング表に基づいて構成信号の前記セットを前記第2の仮想汎用入力/出力パケットの中の第2の所定のビット場所にマッピングするように構成される、請求項3に記載の集積回路。
【請求項９】
1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得し、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得し、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングし、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、集積回路。
【請求項１０】
前記処理回路がさらに、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、請求項9に記載の集積回路。
【請求項１１】
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項9に記載の集積回路。
【請求項１２】
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項9に記載の集積回路。
【請求項１３】
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項9に記載の集積回路。
【請求項１４】
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項9に記載の集積回路。
【請求項１５】
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項9に記載の集積回路。
【請求項１６】
集積回路において使用可能な方法であって、
中央処理装置とは独立に1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得するステップと、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得するステップと、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングするステップと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得するステップと、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信するステップとを備える、方法。
【請求項１７】
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するステップをさらに備え、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、請求項16に記載の方法。
【請求項１８】
構成信号の前記セットと関連付けられるマスク信号のセットを取得するステップをさらに備え、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項16に記載の方法。
【請求項１９】
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項16に記載の方法。
【請求項２０】
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項16に記載の方法。
【請求項２１】
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項16に記載の方法。
【請求項２２】
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項16に記載の方法。
【請求項２３】
ホストデバイスと通信するように構成された通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に、I3Cバスを通じて前記ホストデバイスから仮想汎用入力/出力パケットを含むI3Cフレームを受信することであって、前記仮想汎用入力/出力パケットが前記I3Cフレームにおいてカプセル化される、受信することと、
前記中央処理装置とは独立に、前記集積回路と関連付けられる汎用入力/出力信号のセットおよび構成信号のセットを含む前記仮想汎用入力/出力パケットを取得することと、
マッピング表に基づいて、前記仮想汎用入力/出力パケットの中の所定のビット場所における汎用入力/出力信号の前記セットおよび構成信号の前記セットを識別することと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを取得することと
を行うように構成される、集積回路。
【請求項２４】
前記処理回路がさらに、前記集積回路の構成段階の間にホストデバイスから前記I3Cバスを通じて前記マッピング表を受信するように構成される、請求項23に記載の集積回路。
【請求項２５】
前記処理回路がさらに、マスクビットを用いて示される汎用入力/出力信号の前記セットの各々を、変更された状態を有するものとして識別するように構成される、請求項23に記載の集積回路。
【請求項２６】
前記処理回路がさらに、マスクビットを用いて示される構成信号の前記セットの各々を、変更された状態を有するものとして識別するように構成される、請求項23に記載の集積回路。
【請求項２７】
構成信号の前記セットが、
前記集積回路の1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項23に記載の集積回路。
【請求項２８】
前記1つまたは複数の汎用入力/出力ピンの前記1つまたは複数の電気的な特性が、少なくとも駆動の強さ、スルーレート、電圧レベル、出力タイプ、または割り込みトリガタイプを含む、請求項27に記載の集積回路。
【請求項２９】
前記I3CフレームがブロードキャストI3Cフレームまたは有向I3Cフレームである、請求項23に記載の集積回路。
【請求項３０】
前記I3Cフレームが、前記I3Cフレームを前記ブロードキャストI3Cフレームまたは前記有向I3Cフレームとして識別するコマンドコードを含む、請求項29に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、2015年9月10日に出願された「I/O BRIDGING FOR MULTI-NODE NETWORK」という表題の米国仮出願第62/216,891号、2015年12月10日に出願された「I/O BRIDGING FOR MULTI-NODE NETWORK」という表題の米国仮出願第62/265,612号、2016年6月13日に出願された「INPUT/OUTPUT SIGNAL BRIDGING AND VIRTUALIZATION IN A MULTI-NODE NETWORK」という表題の米国仮出願第62/349,609号、および2016年8月19日に出願された「INPUT/OUTPUT SIGNAL BRIDGING AND VIRTUALIZATION IN A MULTI-NODE NETWORK」という表題の米国本出願第15/242,368号の優先権を主張し、これらの出願が本明細書の譲受人に譲渡され、参照により本明細書に明確に組み込まれる。
【０００２】
本開示の態様は全般に、マルチノードネットワークにおける入力/出力(I/O)信号のブリッジングおよび仮想化に関する。
【背景技術】
【０００３】
汎用入力/出力(GPIO)は、集積回路の設計者が特定の用途にカスタマイズされ得る汎用ピンを実現することを可能にする。たとえば、GPIOピンは、ユーザの必要に応じて出力ピンまたは入力ピンのいずれかであるようにプログラム可能である。GPIOのモジュールまたは周辺機器は、通常、インターフェース要件に基づいて変化することができるピンのグループを制御する。GPIOピンはプログラム可能なので、一般にマイクロプロセッサおよびマイクロコントローラの適用例において含まれる。たとえば、モバイルデバイスの中のアプリケーションプロセッサは、いくつかのGPIOピンを使用して、モデムプロセッサとのプロセッサ間通信(IPC)などの、ハンドシェイクシグナリングを行うことができる。
【０００４】
アプリケーションプロセッサなどのホストデバイスは、GPIOシグナリングを通じて複数の周辺デバイスに結合され得る。その結果として得られるネットワークでは、1つの周辺デバイスがGPIO信号を別の周辺機器に送信することが必要であることがある。送信側の周辺デバイスが次いで、対応するGPIO信号をホストデバイスに送信しなければならず、ホストデバイスが次いで、GPIO信号を受信側の周辺デバイスに再送信する。しかしながら、ホストデバイスの中のプロセッサが受信側の周辺デバイスへのGPIO再送信を管理するために(スリープ状態にある場合には)アクティブ状態へと移行しなければならないという点で、そのような通信には問題がある。よって、ホストデバイスを通じたI/Oのブリッジングは、かなりの電力を消費するだけではなく、休眠状態からアクティブ状態へとホストプロセッサを移行するための遅延も伴う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国出願第14/533,431号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、ホストデバイスとネットワーク化される複数の周辺デバイスの間の、改善されたGPIOシグナリングが当技術分野において必要である。
【課題を解決するための手段】
【０００７】
以下は、本開示のいくつかの態様の基本的な理解をもたらすように、そのような態様の簡略化された概要を提示する。この概要は、本開示のすべての企図された特徴の広範な概要ではなく、本開示のすべての態様の主要な要素または重要な要素を特定するものでもなく、本開示のいずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、本開示のいくつかの態様の様々な概念を簡略化された形態で提示することである。
【０００８】
ある態様では、集積回路において使用可能な方法が提供される。集積回路は、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得し、マッピング表に基づいて1つまたは複数の周辺デバイスのためのGPIO信号のセットを第1の仮想GPIOパケットの中の第1の所定のビット場所にマッピングする。集積回路は、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットは第1の仮想GPIOパケットに含まれる。集積回路は、中央処理装置とは独立に、GPIO信号のセットを含む第1の仮想GPIOパケットを取得する。集積回路は、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに第1の仮想GPIOパケットを送信する。集積回路は、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得し、マッピング表に基づいて構成信号のセットを第2の仮想GPIOパケットの中の第2の所定のビット場所にマッピングする。集積回路は、構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットは第2の仮想GPIOパケットに含まれる。集積回路は、構成信号のセットを含む第2の仮想GPIOパケットを取得し、中央処理装置とは独立にI3Cバスを通じて1つまたは複数の周辺デバイスに第2の仮想GPIOパケットを送信する。
【０００９】
ある態様では、装置が提供される。装置は、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得するための手段、および/または、マッピング表に基づいて1つまたは複数の周辺デバイスのためのGPIO信号のセットを第1の仮想GPIOパケットの中の第1の所定のビット場所にマッピングするための手段を含み得る。装置はさらに、GPIO信号のセットと関連付けられるマスク信号のセットを取得するための手段を含むことがあり、GPIO信号のセットと関連付けられるマスク信号のセットは第1の仮想GPIOパケットに含まれる。装置はさらに、中央処理装置とは独立に、GPIO信号のセットを含む第1の仮想GPIOパケットを取得するための手段を含み得る。装置はさらに、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに第1の仮想GPIOパケットを送信するための手段を含み得る。装置はさらに、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得するための手段、および/または、マッピング表に基づいて構成信号のセットを第2の仮想GPIOパケットの中の第2の所定のビット場所にマッピングするための手段を含み得る。装置はさらに、構成信号のセットと関連付けられるマスク信号のセットを取得するための手段を含むことがあり、構成信号のセットと関連付けられるマスク信号のセットは第2の仮想GPIOパケットに含まれる。装置はさらに、構成信号のセットを含む第2の仮想GPIOパケットを取得するための手段、および/または、中央処理装置とは独立にI3Cバスを通じて1つまたは複数の周辺デバイスに第2の仮想GPIOパケットを送信するための手段を含み得る。
【００１０】
ある態様では、集積回路において使用可能な方法が提供される。集積回路は、中央処理装置とは独立に、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得する。集積回路は、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる。集積回路は、中央処理装置とは独立に、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得する。集積回路は、構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる。集積回路は、マッピング表に基づいて、GPIO信号のセットおよび構成信号のセットを仮想GPIOパケットの中の所定のビット場所にマッピングする。集積回路は、GPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得する。集積回路は、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに仮想GPIOパケットを送信する。
【００１１】
ある態様では、装置が提供される。装置は、中央処理装置とは独立に、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得するための手段を含み得る。装置はさらに、GPIO信号のセットと関連付けられるマスク信号のセットを取得するための手段を含むことがあり、GPIO信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる。装置はさらに、中央処理装置とは独立に、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得するための手段を含み得る。装置はさらに、構成信号のセットと関連付けられるマスク信号のセットを取得するための手段を含むことがあり、構成信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる。装置はさらに、マッピング表に基づいて、GPIO信号のセットおよび構成信号のセットを仮想GPIOパケットの中の所定のビット場所にマッピングするための手段を含み得る。装置はさらに、GPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得するための手段を含み得る。装置はさらに、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに仮想GPIOパケットを送信するための手段を含み得る。
【００１２】
ある態様では、集積回路において使用可能な方法が提供される。集積回路は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信し、仮想GPIOパケットはI3Cフレームにおいてカプセル化される。集積回路は、第1のI3Cフレームから仮想GPIOパケットを取得し、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定し、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約し、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信し、第2のI3Cフレームは少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、集積回路は、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込み得る。
【００１３】
ある態様では、装置が提供される。装置は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信するための手段を含むことがあり、仮想GPIOパケットはI3Cフレームにおいてカプセル化される。装置はさらに、第1のI3Cフレームから仮想GPIOパケットを取得するための手段、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定するための手段、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約するための手段、および/または、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信するための手段を含むことがあり、第2のI3Cフレームは少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、装置は、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込み得る。
【００１４】
ある態様では、集積回路において使用可能な方法が提供される。集積回路は、集積回路の構成段階の間にホストデバイスからI3Cバスを通じてマッピング表を受信する。集積回路は、中央処理装置とは独立に、I3Cバスを通じてホストデバイスから仮想GPIOパケットを含むI3Cフレームを受信し、仮想GPIOパケットはI3Cフレームにおいてカプセル化される。集積回路は、中央処理装置とは独立に、集積回路と関連付けられるGPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得する。集積回路は、マッピング表に基づいて、仮想GPIOパケットの中の所定のビット場所にあるGPIO信号のセットおよび構成信号のセットを特定する。集積回路は、マスクビットを用いて示されるGPIO信号のセットの各々を、変更された状態を有するものとして識別する。集積回路は、マスクビットを用いて示される構成信号のセットの各々を、変更された状態を有するものとして識別し、GPIO信号のセットおよび構成信号のセットを取得する。
【００１５】
ある態様では、装置が提供される。装置は、集積回路の構成段階の間にホストデバイスからI3Cバスを通じてマッピング表を受信するための手段を含み得る。装置はさらに、中央処理装置とは独立に、I3Cバスを通じてホストデバイスから仮想GPIOパケットを含むI3Cフレームを受信するための手段を含むことがあり、仮想GPIOパケットはI3Cフレームにおいてカプセル化される。装置はさらに、中央処理装置とは独立に、集積回路と関連付けられるGPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得するための手段を含み得る。装置はさらに、マッピング表に基づいて、仮想GPIOパケットの中の所定のビット場所にあるGPIO信号のセットおよび構成信号のセットを特定するための手段を含み得る。装置はさらに、マスクビットを用いて示されるGPIO信号のセットの各々を、変更された状態を有するものとして識別するための手段を含み得る。装置はさらに、マスクビットを用いて示される構成信号のセットの各々を、変更された状態を有するものとして識別するための手段、および/または、GPIO信号のセットおよび構成信号のセットを取得するための手段を含み得る。
【００１６】
集積回路は、通信インターフェースに結合された1つまたは複数の周辺デバイスおよび処理回路と通信するように構成される通信インターフェースを含む。処理回路は、第1の周辺デバイスからI3Cバスを通じて仮想汎用入力/出力(GPIO)パケットを含む第1のI3Cフレームを受信し、仮想GPIOパケットはI3Cフレームにおいてカプセル化され、第1のI3Cフレームから仮想GPIOパケットを取得し、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定し、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約し、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信するように構成され、第2のI3Cフレームは少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、処理回路はさらに、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込むように構成される。
【００１７】
集積回路において使用可能な方法が提供される。方法は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信するステップであって、仮想GPIOパケットがI3Cフレームにおいてカプセル化される、ステップと、第1のI3Cフレームから仮想GPIOパケットを取得するステップと、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定するステップとを含む。方法はさらに、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約するステップと、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信するステップとを含み、第2のI3Cフレームは、少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、方法はさらに、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込むステップを含む。
【００１８】
ある態様では、装置が提供される。装置は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信するための手段であって、仮想GPIOパケットがI3Cフレームにおいてカプセル化される、手段と、第1のI3Cフレームから仮想GPIOパケットを取得するための手段と、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定するための手段とを含み得る。装置はさらに、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約するための手段、および/または、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信するための手段を含むことがあり、第2のI3Cフレームは、少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、方法はさらに、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込むステップを含む。
【００１９】
ある態様では、集積回路が提供される。集積回路は、中央処理装置とは独立にGPIO信号のセットを受信してGPIO信号のセットを仮想GPIOパケットへと詰め込むように構成される有限状態機械と、I2Cバスを通じてI2Cフレームを複数の周辺デバイスに送信するように構成されるI2Cインターフェースとを含み、仮想GPIOパケットはI2Cフレームにおいてカプセル化される。
【００２０】
ある態様では、集積回路が提供される。集積回路は、中央処理装置とは独立にGPIO信号のセットを受信してGPIO信号のセットを仮想GPIOパケットへと詰め込むように構成される有限状態機械と、I3Cバスを通じてI3Cフレームを複数の周辺デバイスに送信するように構成されるI3Cインターフェースとを含み、仮想GPIOパケットはI3Cフレームにおいてカプセル化される。
【００２１】
集積回路(たとえば、ホストデバイス)において使用可能な方法が提供される。方法は、ホストデバイスにおいて、第1の周辺デバイスからI2Cバス(またはI3Cバス)を通じてカプセル化された仮想GPIOパケットを含む第1のI2Cフレーム(または第1のI3Cフレーム)を受信するステップと、ホストデバイスの中のI2Cインターフェース(またはI3Cインターフェース)において、第1のI2Cフレームから仮想GPIOパケットを復元して仮想GPIOパケットを有限状態機械に転送するステップと、ホストデバイスの中の有限状態機械において、VGIパケットの中の第1の仮想GPIOペイロードを少なくとも1つの第1のGPIO信号の変更された状態へとマッピングするステップと、有限状態機械において、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約するステップと、I2Cバスを通じて第2のI2Cフレームをホストデバイスから第2の周辺デバイスに送信するステップとを含み、第2のI2Cフレームは、少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。
【００２２】
本開示のこれらの態様および他の態様は、以下の詳細な説明を検討することにより、より完全に理解されるであろう。本開示の他の態様、特徴、および実装形態は、添付の図とともに本開示の特定の実装形態の以下の説明を検討すれば、当業者に明らかになろう。本開示の特徴が以下のいくつかの実装形態および図に対して論じられ得るが、本開示のすべての実装形態が、本明細書において説明される有利な特徴のうちの1つまたは複数を含み得る。言い換えれば、1つまたは複数の実装形態が、いくつかの有利な特徴を有するものとして説明され得るが、そのような特徴のうちの1つまたは複数はまた、本明細書において説明される本開示の様々な実装形態に従って使用され得る。同様に、いくつかの実装形態が、デバイス、システム、または方法の実装形態として以下で説明され得るが、そのような実装形態が様々なデバイス、システム、および方法において実施され得ることを理解されたい。
【図面の簡単な説明】
【００２３】
【図１】例示的な従来の汎用入力/出力(GPIO)ネットワークのブロック図である。
【図２Ａ】例示的なマルチノードGPIOネットワークのブロック図である。
【図２Ｂ】例示的なGPIOネットワークにおける例示的なI/Oブリッジングのシナリオを示す図である。
【図２Ｃ】例示的なGPIOネットワークにおける例示的なI/Oブリッジングのシナリオを示す図である。
【図３】本開示の様々な態様による例示的なGPIOネットワークのブロック図である。
【図４】本開示の様々な態様による例示的なI/Oマッピング表である。
【図５】例示的な従来のGPIOネットワークを示す図である。
【図６】本開示のある態様による例示的なネットワークを示す図である。
【図７】本開示のある態様による例示的なネットワークを示す図である。
【図８】例示的なブロードキャストフレームを示す図である。
【図９】例示的なマスキングされたブロードキャストフレームを示す図である。
【図１０】有向(アドレス指定された)I2C/I3C VGPIOフレームを示す図である。
【図１１】マスキングされた有向フレームを示す図である。
【図１２】例示的なVGI有限状態機械(FSM)の詳細を示す図である。
【図１３】例示的なマッピング表を示す図である。
【図１４Ａ】例示的な仮想GPIOインターフェース(VGI)パケットを示す図である。
【図１４Ｂ】例示的な有向I2C/I3Cフレームを示す図である。
【図１４Ｃ】例示的な有向I2C/I3Cフレームを示す図である。
【図１４Ｄ】例示的なブロードキャストI2C/I3Cフレームを示す図である。
【図１５】本開示の様々な態様による例示的な汎用入力/出力(GPIO)ネットワークのブロック図である。
【図１６Ａ】リモートデバイスと通信するための単一のVGI FSMをホストデバイスが含むGPIOネットワークを示す図である。
【図１６Ｂ】リモートデバイスと通信するための複数のVGI FSMをホストデバイスが含むGPIOネットワークを示す図である。
【図１７】VGI FSMのブロック図である。
【図１８】例示的なVGIの実装形態を示す図である。
【図１９】例示的な汎用入力/出力(GPIO)ネットワークのブロック図である。
【図２０】ホストシステムオンチップ(SoC)のI/Oおよび宛先周辺機器のI/Oをマッピングするための例示的なホスト表を示す図である。
【図２１】例示的な汎用入力/出力(GPIO)ネットワークのブロック図である。
【図２２】本開示の様々な態様による例示的な汎用入力/出力(GPIO)ネットワークのブロック図である。
【図２３】例示的なI/O構成を示す図である。
【図２４】ピン構成レジスタの例示的な構成を示す図である。
【図２５】直接I/Oマッピングレジスタを示す図である。
【図２６Ａ】マスクを実装するメッセージのみのメッセージフォーマットの例を示す図である。
【図２６Ｂ】マスクを実装しないメッセージのみのフォーマットの例を示す図である。
【図２７Ａ】マスクを実装するイベントのみのメッセージフォーマットの例を示す図である。
【図２７Ｂ】マスクを実装しないイベントのみのメッセージフォーマット2750の例を示す図である。
【図２８】本開示の様々な態様による統合されたメッセージフォーマットの例を示す図である。
【図２９】本開示の様々な態様による、統合されたメッセージを使用した書込み動作のためのブロードキャストメッセージングの例を示す図である。
【図３０】本開示の様々な態様による、統合されたメッセージを使用した書込み動作のためのマスキングされたブロードキャストメッセージングの例を示す図である。
【図３１】本開示の様々な態様による、統合されたメッセージを使用した書込み動作のための直接メッセージングの例を示す図である。
【図３２】本開示の様々な態様による、統合されたメッセージを使用した書込み動作のためのマスキングされた直接メッセージングの例を示す図である。
【図３３】本開示の様々な態様による、統合されたメッセージを使用した読取り動作のための直接メッセージングの例を示す図である。
【図３４】本開示の様々な態様による、統合されたメッセージを使用した読取り動作のためのマスキングされた直接メッセージングの例を示す図である。
【図３５】本開示の様々な態様による、複数のすぐ隣のビット値と関連付けられるマスクビットを含むマッピングされたビットを示す図である。
【図３６】本開示の様々な態様による、VGI FSMの中の電力管理ユニットを示す図である。
【図３７】本開示の少なくとも1つの例による、装置の選択構成要素を示すブロック図である。
【図３８Ａ】本開示の様々な態様による方法を示すフローチャートである。
【図３８Ｂ】本開示の様々な態様による方法を示すフローチャートである。
【図３９】本開示の様々な態様による方法を示すフローチャートである。
【図４０】本開示の様々な態様による方法を示すフローチャートである。
【図４１】本開示の少なくとも1つの例による、装置の選択構成要素を示すブロック図である。
【図４２】本開示の様々な態様による方法を示すフローチャートである。
【図４３】システムオンチップ(SoC)デバイスおよび周辺デバイスを組み込む例示的なシステムを示す図である。
【発明を実施するための形態】
【００２４】
添付の図面に関して以下に記載される詳細な説明は、様々な構成の説明として意図されており、本明細書において説明される概念が実践され得る唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解を与える目的で、具体的な細部を含む。しかし、当業者には、これらの概念が、これらの具体的な細部なしでも実践され得ることが明らかであろう。いくつかの例では、よく知られている構造および構成要素は、そのような概念を不明瞭にすることを避けるために、ブロック図の形で示される。
【００２５】
図1は、例示的な汎用入力/出力(GPIO)ネットワーク100のブロック図を示す。図1に示されるように、ホストデバイス102は集積回路間(I2C)バス103を介していくつかの周辺デバイスに結合され、I2Cバス103はI2Cの技術分野において知られているようなデータ線126およびクロック線128を含む。ある態様では、ホストデバイス102はシステムオンチップ(SoC)デバイスであり得る。たとえば、図1に示されるように、周辺デバイスは、加速度計および磁力計104、加速度計106、ジャイロセンサ108、環境光センサ(ALS)および近接センサ110、高度計112、コンパス114、グリップセンサ116、近接場通信デバイス118、指紋センサ120、アナログデジタルコンバータ122、ならびに/またはタッチスクリーン124を含み得る。図1に示されるように、周辺デバイス(たとえば、加速度計および磁力計104、加速度計106、ジャイロセンサ108、環境光センサ(ALS)および近接センサ110、高度計112、コンパス114、グリップセンサ116、ならびに/または近接場通信デバイス118)はI2Cバス103を使用してホストデバイス102と通信し得るが、ホスト102および周辺デバイスは、割り込み信号(たとえば、データレディ割り込み(DRI)信号)および/またはハードウェアイベント(たとえば、イネーブル、およびリセット)などの側帯信号のための、追加の線を必要とすることがある。たとえば、加速度計および磁力計104は、第1の専用線(第1の専用配線とも呼ばれる)を通じて第1のDRI信号130をホストデバイス102に送信する必要があることがあり、コンパス114は、第2の専用線(第2の専用配線とも呼ばれる)を通じて第2のDRI信号132をホストデバイス102に送信する必要があることがある。別の例では、ホストデバイス102は、第3の専用線(第3の専用配線とも呼ばれる)を通じてイネーブル信号134を送信する必要があることがある。I2Cバス線に加えてそのような追加の専用線(たとえば、前に論じられた第1の、第2の、および第3の専用線)が、ホストデバイス102における対応する数の追加のピンを必要とし得ることに留意されたい。
【００２６】
図2Aは、例示的なマルチノードGPIOネットワーク200のブロック図を示す。マルチノードGPIOネットワーク200は、ホストデバイス202およびn個の周辺デバイス(たとえば、周辺デバイス#1 204、周辺デバイス#2 206、周辺デバイス#3 208、周辺デバイス#(n-1) 210、および周辺デバイス#n 212)を含む。ある態様では、ホストデバイス202はSoCデバイスであり得る。ある態様では、ホストデバイス202は、バス214、GPIO入力ピン226、およびGPIO出力ピン228を通じて信号を通信するための、I2C/I3Cポート216を含み得る。図2Aに示されるように、ホストデバイス202はバス214を介して周辺デバイスに結合され、バス214はクロック線218およびデータ線220を含み得る。ある態様では、バス214はI2CバスまたはI3Cバスであり得る。ある態様では、バス214がI3Cバスとして実装されるとき、ノード(たとえば、周辺機器204、206、208、210、および212)間での入力/出力(I/O)イベント(ハードウェアイベント、ハードウェア入力/出力イベント、またはGPIOとも呼ばれる)の交換は、ホストデバイス202における中央処理装置(CPU)の関与を必要とし得る。一例では、I/Oイベントをリモートノードに送信する必要がある第1のノードは、対応する第1のCPUに割り込まなければならない。第1のCPUは、I/Oイベントを示すリモートノードへのメッセージを編成し得る。リモートノードに対応する第2のCPUは、そのメッセージを処理するために起動しなければならず、その処理は、イベントを必要があればI/Oイベントへと変換することを含む。したがって、ノード(たとえば、周辺機器204、206、208、210、および/または212)間でI/Oイベントが通信される必要がある状況(I/Oブリッジングとも呼ばれる)は、ホストデバイス202による頻繁な起動および処理を必要とし得るので、システムにおけるより大きな全体的な電力消費につながることがある。その上、複数のノードに接続される周辺機器がいくつかの側帯信号(たとえば、側帯GPIO215)を使用する状況は、ホストデバイス202および周辺機器においていくつかのピンを消費することがあり、パッケージコストがより高くなる。
【００２７】
図2Bは、例示的なGPIOネットワーク200における例示的なI/Oブリッジングのシナリオを示す。この例では、周辺機器204が発するI/Oイベント「A」(たとえば、配線222を通じて送信されるI/Oイベント信号A230)は、ホストデバイス202に、周辺機器206において終端するI/Oイベント「B」(たとえば、配線224を通じて送信されるI/Oイベント信号B232)を生成させる。したがって、この例は、周辺機器から周辺機器へのI/Oブリッジングを伴う。したがって、この例では、ホストデバイス202は、I/Oイベント「A」およびI/Oイベント「B」の処理に関与する。
【００２８】
図2Cは、例示的なGPIOネットワーク200における例示的なI/Oブリッジングのシナリオを示す。この例では、周辺機器208が発するI/Oイベント「A」(たとえば、配線234を通じて送信されるI/Oイベント信号A236)およびホストデバイス202自体が発する別のI/Oイベント「B」(たとえば、GPIO入力ピン226において受信されるI/Oイベント信号B238)は、ホストデバイス202に、I2Cバスのトランザクションを使用して周辺機器210への最後のI/Oイベント「C」(たとえば、配線240を通じて送信されるI/Oイベント信号C240)を生成させる。したがって、この例は、ホストデバイス202がI/OイベントA、B、およびCの処理に関与するような異種の事例を伴う。本明細書において説明される態様によれば、I/OイベントAおよびBに対するホストデバイス202の関与は、I/Oブリッジング/集約により回避され得る。
【００２９】
図3は、本発明の様々な態様による例示的なGPIOネットワーク300のブロック図を示す。GPIOネットワーク300は、ホストデバイス302およびn個の周辺デバイス(たとえば、周辺デバイス#1 304、周辺デバイス#2 306、周辺デバイス#3 308、周辺デバイス#(n-1) 310、および周辺デバイス#n 312)を含む。ある態様では、ホストデバイス302はSoCデバイスであり得る。図3に示されるように、ホストデバイス302はバス314を介して周辺デバイスに結合され、バス314はクロック線332およびデータ線334を含み得る。バス314はI2CバスまたはI3Cバスであり得る。ある態様では、ホストデバイス302は、GPIO入力ピン328、GPIO出力ピン330、およびI2C/I3C知的財産ブロック316を含み得る。たとえば、I2C/I3C知的財産ブロック316は、I2C/I3C通信プロトコルを使用して通信するために構成されるデータを取得および/または処理し得る。
【００３０】
図3にさらに示されるように、ホストデバイス302は、仮想GPIO有限状態機械(VGI FSM)318を含み得る。VGI FSM318はI2C/I3C IPブロック316と通信することができ、バス314を通じて信号を送信し受信することができる。ある態様では、VGI FSM318は、I/Oマッパおよびメッセージフォーマッタ320とI/O集約ブロック322とを含み得る。ある態様では、I/Oマッパおよびメッセージフォーマッタ320は、VGI FSM318内に構成可能なI/Oマッピング表を実装するデバイスであり得る。ある態様では、そのような構成可能なI/Oマッピング表は、GPIOネットワーク300の初期化の間に構成され得る。ある態様では、本明細書において詳しく説明されるように、I/Oマッピング表は、ソース周辺デバイス(たとえば、GPIOネットワーク300の中の発生側ノード)から対応する宛先周辺デバイス(たとえば、GPIOネットワーク300の中の宛先ノード)へのI/Oの接続をマッピングすることができる。たとえば、I/Oマッピング表は1つまたは複数のエントリのリストを含み得る。そのような例では、各エントリは、ソース周辺デバイスのI/O数と、ソース周辺デバイスのアドレスと、宛先周辺デバイスの対応するI/O数と、宛先周辺デバイスのアドレスとを記述し得る。ある態様では、ソース周辺デバイスから宛先周辺デバイスに通信されるべきI/Oは、I2C/I3Cの規格を使用してフォーマットされるメッセージに含まれ得る。このようにして、メッセージは、ホストデバイス302が関与することなく周辺デバイス間でのI/Oステータスの交換を可能にするために、VGI FSM318によって処理され得る。
【００３１】
図4は、本開示の様々な態様による例示的なI/Oマッピング表400を示す。図4に示されるように、I/Oマッピング表400は、ソース周辺機器I/O数408、ソース周辺機器アドレス410、宛先周辺機器I/O数412、宛先周辺機器アドレス414を含む。図4にさらに示されるように、I/Oマッピング表400は、例示的なエントリ402、404、および406などの1つまたは複数のエントリを含み得る。I/Oマッピング表400のエントリ402は、図2Bを参照して論じられるシナリオに対応し、I/Oマッピング表400のエントリ404および406は、図2Cを参照して論じられるシナリオに対応する。たとえば、図2Bを参照すると、エントリ402は、(アドレス0x01と関連付けられる)周辺機器#1 204のI/O数2が(アドレス0x02と関連付けられる)周辺機器#3 206のI/O数3に(図2Bの配線222を通じて)送信されることを記述する。
【００３２】
ある態様では、ホストデバイス(たとえば、SoCデバイス)と複数の周辺デバイスとの間のGPIOシグナリングに対応するために、ホストデバイスおよび各周辺デバイスはVGI FSMを含み得る。実際のGPIOインターフェースとは対照的に、VGI FSMは専用のGPIOピンを通じて通信しない。代わりに、周辺デバイスおよびホストデバイスはすべて、集積回路間(I2C)インターフェースを含み、I2Cインターフェースは次いでI2Cバスに結合する。代替的に、ホストデバイスおよび周辺デバイスは各々、Mobile Industry Processor Interface(MIPI)コンソーシアムによって定義されるようなMIPI I3Cインターフェースを含み得る。I2Cインターフェースにおいて使用される2線のバスと同様に、I3Cインターフェースのためのバスも2線のバスである。したがって、得られるバスはI2C/I3Cバスと本明細書において呼ばれ、それはバスが両方のプロトコルに対して実質的に同一であるからである。
【００３３】
セットアップ段階の間に、各VGI FSMは、I2C/I3Cインターフェースから受信される特定のビットを特定のGPIO信号にマッピングするマッピング表を用いて構成され得る。たとえば、従来のシステムでは、GPIO信号は、特定の周辺デバイスにおける特定のGPIOピンに割り当てられ、ホストデバイスにおける特定のGPIOピンに宛てられ得る。これらのGPIOピンは本明細書において開示されるネットワーキングの態様においては仮想化されるので、対応する周辺デバイスは代わりに、I2C/I3Cバスを通じた送信のために構成されるメッセージのデータペイロードにおいて、特定の仮想GPIOビットを構成する。ある態様では、メッセージはI2CフレームまたはI3Cフレームと呼ばれ得る。GPIOピンはもはや使用されないので、GPIOピンは特定のGPIO信号を識別する「入力/出力数」により置き換えられ得る。I2CおよびI3Cの規格に適合するために、I2CフレームまたはI3Cフレームは、仮想GPIO信号を含むものとしてフレームを特定するコマンドコードを伴うヘッダを含み得る。ホストデバイスにおいてコマンドコードを復号したことに応答して、I2C/I3Cインターフェースは、データペイロードの中の仮想GPIOビットをホストデバイスのVGI FSMに送信する。各仮想GPIO信号は、データペイロード内のある場所を有する。たとえば、長さが8ビットであるデータペイロードを考える。データペイロードの中の第1のビットは第1の仮想GPIO信号に対応することがあり、第2のビットは第2の仮想GPIO信号に対応することがあり、以下同様である。
【００３４】
ある態様では、すべてのVGI FSMが、I2C/I3Cインターフェースにより送信されるような仮想GPIOフレームのデータペイロード内での仮想GPIO信号の順序の知識を有するように構成され得る。たとえば、各VGI FSMは、データペイロード内での仮想GPIO信号のそのような順序を記述するマッピング表を含み得る。マッピング表に基づいて、所与のデバイス(たとえば、周辺デバイスまたはホストデバイス)のVGI FSMは、対応するデバイスの中のプロセッサに割り込むことをVGI FSMに要求する、仮想GPIO信号の変更された状態を認識し得る。1つの事例では、周辺デバイスは、仮想GPIO信号を使用する、シグナリングしている別の周辺デバイスであり得る。そのような場合、送信側の周辺デバイスは、VGI I2C/I3Cフレームをホストデバイスに送信し得る。ホストデバイスのVGI FSMは、送信側の周辺デバイスが対応する仮想GPIO信号を用いてターゲット周辺デバイスにシグナリングを行おうとしていることを(たとえば、VGI FSMにおけるマッピング表を使用して)認識し得る。ホストデバイスにおけるVGI FSMにより、ホストデバイスにおけるI2C/I3Cインターフェースは、ターゲットデバイスへ宛てられる仮想GPIO信号を含むデータペイロードを有するVGI I2C/I3Cフレームを送信するようになり得る。
【００３５】
ある態様では、各デバイスのVGI FSMは、仮想GPIO信号において変更された状態を集約するように構成され得る。たとえば、ホストデバイスは、1つの周辺デバイスからの仮想GPIO信号において変更された状態を認識することができ、別の周辺デバイスへの仮想GPIO信号の(ホストデバイスからの)送信を引き起こし得る。この集約を通じて、ホストプロセッサは、ホストデバイスを通じた1つの周辺デバイスから別の周辺デバイスへのGPIO信号のこのI/Oブリッジングにもかかわらず、アイドル状態にとどまり得る。したがって、この手法は、そうされなければ従来のGPIO信号に対応するために必要であろう様々なGPIOピンをなくすことができるだけでなく、I/Oブリッジングのプロセッサによる管理に従来は必要であった電力損失および遅延をなくすこともできる。言い換えると、仮想GPIO信号がホストデバイスと周辺デバイスのいずれかの中のプロセッサに割り込む必要がない限り、そのようなプロセッサはアイドル状態または低電力状態にとどまることができる。
【００３６】
これらの利点をより理解するために、図5に示されるような例示的なGPIOネットワーク500を考える。ホストデバイス502(たとえば、ホストSoC)は、複数のn個の周辺デバイス(たとえば、周辺デバイス#1 504、周辺デバイス#2 506、周辺デバイス#3 508、周辺デバイス#(n-1) 510、および周辺デバイス#n 512)上の対応するGPIOピンとインターフェースするための複数のGPIOピンを含み、nは1より大きな正の整数である。本明細書において使用されるとき、「ピン」という用語は、集積回路が回路基板または他の物理配線(たとえば、パッケージ配線またはスルーホールビア配線)上のリード(トレースとも呼ばれる)に結合するために使用する、パッドおよび/または実際のピンなどの構造を包含する総称である。図5の例示的な構成では、周辺デバイス#1 504は、4つのGPIO信号を受信または送信し得る。たとえば、図5に示されるように、周辺デバイス#1 504は、ホストデバイス502上のピン3 528およびピン4 530などの2つのピンに対応するGPIO信号を送信するための、ピン1 524およびピン2 526などの2つのピンを有する。加えて、ホストデバイス502は、周辺デバイス#1 504上のピン3 532およびピン4 534などの2つのピンに対応するGPIO信号を送信するための、ピン5 536およびピン6 538などの2つのピンを有する。ホストデバイス502は、周辺デバイス#2 506上でそれぞれのピン1、2、および3と通信するためのピン7、8、および9、周辺デバイス#3 508上でそれぞれのピン1および2と通信するためのピン11および12、ならびに、周辺デバイス#n 512上でそれぞれのピン1、2、3、および4と通信するためのピン13、14、15、および16を有する。ある態様では、ホストデバイス502は、GPIO入力ピン1 520およびGPIO出力ピン2 522を含み得る。ホストデバイス502はさらに、周辺デバイス504、506、508、510、および512の中の対応するI2C/I3Cインターフェース(図5には示されない)にI2C/I3Cバス514を通じて通信するためのI2C/I3Cポート518(I2C/I3Cインターフェースとも呼ばれる)を含み得る。
【００３７】
図6は、本開示の様々な態様による例示的なGPIOネットワーク600のブロック図を示す。図6に示されるように、GPIOネットワーク600はI3Cバス626を実装し、ここでI3Cバス626はクロックリード628およびデータリード630を含む。図6に示されるように、ホストデバイス602(たとえば、ホストSoC)は、I3Cバス626を介していくつかの周辺デバイスに結合される。たとえば、図6に示されるように、周辺デバイスは、加速度計および磁力計604、加速度計606、ジャイロセンサ608、環境光センサ(ALS)および近接センサ610、高度計612、コンパス614、グリップセンサ616、近接場通信デバイス618、指紋センサ620、アナログデジタルコンバータ622、ならびに/またはタッチスクリーン624を含み得る。I3C通信プロトコルは、帯域内割り込み(DRI)を含めることにより、I2C通信プロトコルを改良する。したがって、図6において見られるように、ハードウェアイベントを通信するための専用ピンおよび/または配線が除去され得るので、ホストデバイス602および周辺デバイス上でのピンの節約を実現する。前に論じられたハードウェアイベント(たとえば、イネーブルおよびリセット)およびGPIO信号は、I3Cメッセージへと、ただししばしばオーバーヘッドを伴って変換され得る。たとえば、ホストデバイスのCPUは、メッセージを作成/抽出することに関与する必要があることがあり、これは遅延および電力消費を増やすことがある。その上、GPIO信号/メッセージの特定はI3Cプロトコルにおいて標準化されていない。
【００３８】
図7は、本開示の様々な態様による例示的なネットワーク700を示す。ネットワーク700は、ホストデバイス702およびn個の周辺デバイス(たとえば、周辺デバイス#1 704、周辺デバイス#2 706、周辺デバイス#3 708、周辺デバイス#(n-1) 710、および周辺デバイス#n 712)を含む。ホストデバイス702はI2C/I3Cバス714を介してn個の周辺デバイスに結合され、I2C/I3Cバス714はI2C/I3Cの技術分野において知られているようなデータリード720およびクロックリード722を含む。例示的なネットワーク700の中のホストデバイス702はあらゆるGPIOピンを必要としないことに留意されたい。同様に、n個の周辺デバイス704、706、708、710、および712に対して、対応するGPIOピンは必要ではない。そのようなGPIOピンの除去は、パッケージングコストの大きな低減をもたらし得る。図7に示されるように、ホストデバイス702および周辺デバイス704、706、708、710、および712は各々、仮想GPIOデータを対応するI3Cインターフェース716に提供する仮想GPIOインターフェース有限状態機械(VGI FSM)718を含み得る。代替的な実装形態では、I3Cインターフェース716はI2Cインターフェース716であり得る。したがって、I3Cインターフェース716はまた、これらの様々な実装形態を包含するためにI2C/I3Cインターフェース716として指定され得る。
【００３９】
各I2C/I3Cインターフェース716は、I2C/I3Cプロトコルを使用してI2C/I3Cフレームの送信を開始し得る。しかしながら、I2C/I3CフレームがVGPIOデータを含むことをシグナリングするために、各I2C/I3Cインターフェース716は、フレームをVGPIOフレームとして特定するために特別なコマンドコードを使用し得る。I2C/I3C VGPIOフレームは、I2C/I3Cの技術分野において知られているようなブロードキャストフレームまたはアドレス指定されたフレームであり得る。例示的なブロードキャストフレーム800が、図8に示されている。ブロードキャストフレーム800は、開始ビットS801および開始ヘッダ802で始まる。VGIブロードキャストコマンドコード(CC)804は、フレーム800がI2C/I3C VGIブロードキャストフレームであることを示し得る。VGPIOデータペイロード806は、第0の仮想GPIO信号から第(n-1)の仮想GPIO信号までの、n個の仮想GPIO信号を含み得る。図7に戻ると、本明細書においてさらに説明されるように、各VGI FSM718は、仮想GPIO信号のビット場所を、仮想GPIO信号がネットワーク100に関して論じられた従来のGPIOピンで受信されたかのように、VGPIOデータペイロード806においてマッピングするために、マッピング表を含む。したがって、VGPIOデータペイロードの「仮想」の性質は、本明細書においてさらに論じられるような対応するVGI FSM718とインターフェースする各デバイスのプロセッサに対して透過的である。
【００４０】
GPIOネットワーク500の中の周辺デバイス#1 504の例を再び考えると、周辺デバイス#1 504はホストデバイス502からI/O信号数1および2を受信し得る。そのようなホストデバイス502がI/O信号数1を変更しなければならないが、周辺デバイス#1 504がI/O信号数2に対して有する値に影響を与えてはならないということが、起こり得る。そのような場合、ブロードキャストフレーム800は、図9に示されるようなマスキングされたブロードキャストフレーム900により置き換えられ得る。たとえば、ネットワーク700のホストデバイス702の中のVGI FSM718は、I2C/I3Cバス714を通じたマスキングされたブロードキャストフレーム900の送信を引き起こし得る。この例では、周辺デバイス#1 704に対するI/O信号数1を除き、I/O信号のすべてがマスキングされる。そうするために、マスキングされたブロードキャストフレーム900に対するデータペイロード906の中のn個のI/O信号は、第0のI/O信号IO0に対する第0のマスクビットM0から第(n-1)のI/O信号IOn-1に対する第(n-1)のマスクビットMn-1までの、対応するマスクビットを用いて組織化され得る。ブロードキャストフレームがマスキングされているかいないかにかかわらず、ブロードキャストフレームは、ブロードキャストフレーム800について示されるような停止ビット808などの停止ビットにより終了し得る。代替的に、停止ビット808は、追加のVGPIOペイロードが含まれ得るように、同期ビットにより置き換えられ得る。
【００４１】
代替的な実装形態では、各VGI FSM718は、図10に示される有向フレーム1000などの、有向(アドレス指定される)I2C/I3C VGPIOフレームを引き起こし得る。有向フレーム1000は、開始ビットS1002および開始ヘッダ1004で始まる。VGI有向共通コマンドコード(CCC:common command code)1006は、有向フレーム1000が有向VGPIOデータペイロード(たとえば、有向VGPIOデータペイロード1012、有向VGPIOデータペイロード1018)を含むことを示し得る。VGI有向共通コマンドコード(CCC)1006の後には、アドレス指定された周辺デバイスを特定するための繰り返し開始フィールド(Sr)1008およびスレーブアドレスフィールド1010(または代替的に、ホストデバイス702のためのアドレスフィールド)が続き得る。有向VGPIOデータペイロード1012は、アドレス指定されたデバイスに関連するy個のI/O信号のセットのみを含み得るという点で、ブロードキャストデータペイロードと異なる。たとえば、変数yは正の整数であり得る。図10に示されるように、有向VGPIOデータペイロード1012は、第0のI/O信号1020から第(y-1)のI/O信号1022を含み得る。有向フレーム1000は、追加のデバイスに対する追加の有向ペイロードを含み得る。たとえば、有向VGPIOデータペイロード1012の後には、別の繰り返し開始フィールド(Sr)1014および追加のスレーブアドレスフィールド1016が続き得る。この場合、アドレス指定されたデバイスはx個のI/O信号のセットをサポートすることができ、xは正の整数である。したがって、対応する有向VGPIOデータペイロード1018は、ブロードキャストフレーム800のブロードキャストVGPIOデータペイロード806の中のn個のI/O信号の完全なセットではなく、x個だけのI/O信号を含む。図10に示されるように、有向VGPIOデータペイロード1018は、第0のI/O信号1024から第(x-1)のI/O信号1026を含み得る。有向フレーム1000は、有向フレーム1000に対して示されるような停止ビット1028などの、停止ビットにより終了し得る。
【００４２】
マスキングされたブロードキャストフレーム900に関して類似して論じられたように、有向フレーム1000はマスキングされた有向フレームにより置き換えられ得る。図11は、例示的なマスキングされた有向フレーム1100を示す。マスキングされた有向フレーム1100は、開始ビットS1102および開始ヘッダ1104で始まる。VGI有向共通コマンドコード(CCC)1106は、マスキングされた有向フレーム1100がマスキングされた有向VGPIOデータペイロード1112を含むことを示し得る。VGI有向共通コマンドコード(CCC)1106の後には、アドレス指定された周辺デバイスを特定するための繰り返し開始フィールド(Sr)1108およびスレーブアドレスフィールド1110(または代替的に、ホストデバイス702のためのアドレスフィールド)が続き得る。マスキングされた有向VGPIOデータペイロード1106は、y個のI/O信号をサポートするデバイスに宛てられており、変数yは正の整数を表す。したがって、図11に示されるように、マスキングされた有向VGPIOデータペイロード1106は、第0のI/O信号1114に対応する第0のマスク信号M01116から第(y-1)のI/O信号1118に対応する第(y-1)のマスク信号My-11120までのような、y個の対応するマスク信号のセットを含み得る。マスキングされた有向フレーム1100は、マスキングされた有向フレーム1100に対して示されるような停止ビット1122などの、停止ビットにより終了し得る。
【００４３】
図12は、図7に関して前に論じられたVGI FSM718の例示的な構成を示す。I/Oマッパおよびメッセージフォーマッタ論理回路1204は、前に論じられたように、GPIO信号(I/O信号とも呼ばれる)を仮想GPIOペイロードの中のビット場所へとマッピングするように構成される。I/Oマッパおよびメッセージフォーマッタ論理回路1204が使用するための例示的なI/Oマッピング表1300が、図13に示されている。I/Oマッピング表1300は、ホストI/O数1302、対応する周辺機器I/O数1304、および対応する周辺機器アドレス1306を含み得る。ある態様では、I/Oマッピング表1300は、有向I2C/I3C VGPIOフレーム1000またはマスキングされた有向I2C/I3C VGPIOフレーム1100においてI/O信号をマッピングするために使用され得る。周辺機器アドレス1306は、ブロードキャストI2C/I3C VGPIOフレームが使用される場合にのみ必要ではないことがあることを理解されたい。ある態様では、I/Oマッピング表1300は、GPIOネットワーク500に関して論じられた例示的なGPIOシグナリングに従い得る。たとえば、I/Oマッピング表1300の中の行1308に関して、アドレス0x01にある周辺デバイス#1 504は、GPIOピン1を通じてI/O信号1(GPIO信号1とも呼ばれる)を送信し、I/O信号1はホストデバイス502におけるI/O信号3としてホストデバイス502のピン3において受信される。同様に、I/Oマッピング表1300の中の行1310に関して、周辺デバイス#1 504のGPIOピン2からのI/O信号2は、I/O信号4としてホストデバイス502のGPIOピン4において受信される。図13において、ホストI/O3および4がネットワーク700の周辺デバイス#1 704に対する対応するI/O1および2にマッピングし、周辺デバイス#1 704が0x01という周辺機器アドレスを割り当てられることに留意されたい。この方式で、各I/O信号は、マッピング表1300を通じて各デバイスにおいて特定され得る。ホストデバイスと周辺デバイスとの間でマッピングされるI/Oは、GPIOピンの順次的なセットを伴う必要がないことを理解されたい。たとえば、図13の行1312において示される
ように、I/O9の後にI/O11が続く(たとえば、I/O10は周辺デバイスにおいて対応するI/Oにマッピングされない)。図5のI/O17 550などの、1つまたは複数のI/Oが他の目的で使用されることがあり、マッピングされないことがあることを、さらに理解されたい。その上、ホストの追加のI/Oは、図13の行1314における変数Nおよびkによって示されるように、周辺機器のI/Oにマッピングされ得る。言い換えると、図13の態様は、I/Oマッピング表1300に示される16個のI/Oの例示的なセットに限定されない。
【００４４】
I/O信号の変更された状態に応答して、図7の特定のVGI FSM718は、別のI/O信号の状態を変更する必要があり得る。たとえば、1つの場合、ホストデバイス702においてI/O信号3として受信される、周辺デバイス#1 704からのI/O信号1の変更された状態(たとえば、論理「1」から論理「0」への変更)は、ホストデバイス702によるI/O信号9の状態の変更を引き起こす必要があり得る。I/Oマッピング表1300の行1312において示されるように、I/O信号9は、アドレス0x02を有する周辺デバイス#2 706においてI/O信号3として受信される。そのような変更された状態の検出のためのI/O信号の集約は、図12のI/O集約ブロック1206によって対応され得る。ある態様では、I/O集約ブロック1206は、I/O集約論理回路として実装され得る。
【００４５】
各周辺デバイス(たとえば、周辺デバイス#1 704)のためのI/Oマッピング表1300を準備するために、ホストデバイス702の中のVGI FSM718は、メッセージングI2C/I3Cフレーム(図示されず)を使用してハンドシェイキング手順を開始することができる。デバイス(たとえば、周辺デバイス)がネットワーク700から除去され代替的なデバイスにより置き換えられる場合、ネットワーク700の中のすべてのデバイスが変更されたネットワーク構成を知らされるように、この開始手順が繰り返され得る。
【００４６】
ネットワーク700を再び参照すると、ホストデバイス702の中の(図示されていない)プロセッサおよび周辺デバイス(たとえば、周辺デバイス704、706、708、710、712)の中のプロセッサは、GPIOインターフェース(図示されていない)を通じて対応するVGI FSM718とインターフェースし得る。この方式では、プロセッサは、ネットワーク500に関して論じられたものなどの実際のGPIOピンを使用した場合とまったく同じように機能し得るので、プロセッサに対してソフトウェアの変更は不要である。
【００４７】
デバイス(たとえば、周辺デバイス#1 704)の中の対応するVGI FSM718とのデータ転送を可能にするためのデバイスの中のプロセッサに対するソフトウェアの変更は不要であるが、VGI FSM718はVGPIOパケットを直接送受信しないことを理解されたい。代わりに、そのような欠けているパケットからのVGPIOペイロードは、図8〜図11に関して論じられるように、マスキングされた形式またはマスキングされていない形式のいずれかで提供される。VGI FSM718がどのような変更も伴わずに動作することを可能にするために、VGPIOパケット全体が、I2C/I3Cフレームのためのペイロードとしてカプセル化され得る。各VGPIOパケットは、そのデータペイロードに加えてヘッダを含む。たとえば、2014年11月5日に出願され、参考として本明細書に全体が組み込まれる米国出願第14/533,431号において開示される「ハイブリッド」VGPIOパケットを考える。ハイブリッドパケットの中のデータペイロードは、メッセージング信号ならびにVGPIO信号を含み得る。GPIO信号とは対照的に、メッセージング信号は、デバイス上の特定のピンに専用ではない。言い換えれば、様々なメッセージが、専用のメッセージング送信ピンを通じて送信され得る。GPIO信号とは対照的に、受信デバイスは演繹的に、メッセージングが何に関係するかを知らない。たとえば、GPIO信号は特定のGPIOピンに専用であるので、GPIO信号が対応するGPIOピン上で受信されるという事実が、プロセッサに対してGPIO信号の正体を識別する。メッセージング信号ではこれは当てはまらない。メッセージング信号は、受信側プロセッサが受信されたメッセージング信号を適切なレジスタにルーティングするために使用するアドレスビットを含む。たとえば、汎用非同期受信機/送信機(UART:universal asynchronous receiver/transmitter)およびシリアル周辺インターフェース(SPI:serial peripheral interface)が、メッセージング信号を使用するプロトコルの例である。
【００４８】
ハイブリッドVGPIOシステムでは、VGI FSMは、各ハイブリッドVGPIOパケットのヘッダを分析して、パケットがVGPIOおよび/またはメッセージング信号ペイロードを含むかどうかを決定するように構成される。加えて、ヘッダは、対応するパケットがデータペイロードのデフォルトの長さを変更するためのプログラミングパケットであるかどうかを特定し得る。その点において、個々のGPIOピンで受信される従来のGPIO信号とは対照的に、VGPIO信号はすべて共通の受信ピンで受信される。従来のシステムでは、GPIOピンは対応するGPIO信号に専用であるので、GPIOピンの識別情報が対応する受信されたGPIO信号を識別する。VGPIO信号も識別を必要とするので、受信側のVGI FSMは、データペイロード内のVGPIO信号の位置を通じてそれを行う。たとえば、データペイロードがVGPIOパケットに対して8ビットの長さであるとする。ペイロードの中の第1のビットは第1のVGPIO信号に割り当てられることがあり、第2のビットが第2のVGPIO信号に割り当てられることがあり、以下同様にして、第8のビットが第8のVGPIO信号に割り当てられる。メッセージング信号を識別するために同じ位置が使用され得る。しかしながら、送信側のVGPIOデバイスおよび受信側のVGPIOデバイスは、このビット場所による識別方式の実施を成功させるために、同じパケット長を使用する必要がある。たとえば、デフォルトのパケット長は8ビットであり得る。VGPIOシステムは追加のVGPIO信号を収容するためにより長いパケット長を必要とする場合、VGPIOパケットのヘッダは、付随するペイロードがデータペイロードではなく、代わりに新しいパケット長を割り当てるためのプログラミングペイロードであるということも、シグナリングし得る。受信側のVGI FSMは次いで、対応するヘッダおよびパケット本体を使用して、新しいパケット長に肯定応答する。
【００４９】
図14Aは、本開示の様々な態様による、VGPIO信号またはメッセージ信号の通信のための例示的なVGIパケット1400を示す。VGIパケット1400は、開始ビット1404で開始し、停止ビット1410で終了する。たとえば、開始ビット1404は論理「0」(たとえば、二進の0)であることがあり、停止ビット1410は論理「1」(たとえば、二進の1)であることがある。ヘッダ1402は、2つの機能ビット(たとえば、図14AのFn_Bit-0およびFn_Bit-1)を含み得る。ヘッダ1402の2つの機能ビット(Fn_Bit-0およびFn_Bit-1)は、後続のペイロード1403がVGPIOビットを備えるかメッセージビットを備えるかを特定し得る。一実施形態では、両方の機能ビットが論理値「0」を有する場合、ヘッダ1402は、(たとえば、後続のビットが仮想GPIO信号であるという)VGPIOデータペイロードを含むものとしてVGIパケット1400を識別する。Fn_Bit-0が論理値0を有しFn_Bit-1が論理値「1」を有する場合、ヘッダ1402は、(たとえば、後続のビットがメッセージング信号であるという)メッセージングデータペイロードを含むものとしてVGIパケット1400を識別する。Fn_Bit-0が論理値「1」を有しFn_Bit-1が論理値「0」を有する場合、後続のビットは、リモートプロセッサによって予想されることになる仮想GPIOパケット長を表す。両方の機能ビットが論理値「1」を有する場合、後続のビットは、所望のパケット長のリモートプロセッサによる肯定応答を表す。2つの機能ビットを使用するコーディングの前述の説明は、例にすぎず、VGIパケットが仮想GPIO信号を搬送しているか、メッセージング信号を搬送しているか、VGIパケット長の識別情報を搬送しているか、VGIパケット長の肯定応答を搬送しているかを識別するために、他のヘッダおよびコーディングプロトコルが使用され得ることを理解されたい。一実施形態では、VGIパケット1400は、プログラミングパケットおよび肯定応答パケットと関連付けられるタイプビット(たとえば、図14AのType_Bit 1405)も含み得る。たとえば、一実施形態では、タイプビットは、VGIパケット1400が仮想GPIO信号のために構成されることを特定するために論理値「1」に設定されることがあり、VGIパケット1400がメッセージング信号のために構成されることを特定するために論理値「0」に設定されることがある。
【００５０】
VGIパケット1400の長さをプログラムするために、送信側のVGI FSM718は、ヘッダ1402においてFn_Bit-0を論理値「1」に設定し、Fn_Bit-1を論理値「0」に設定し得る。VGIパケット1400の中の対応するデータペイロード(たとえば、図14Aのビット1406)は次いで、新しいパケット長を識別する。受信側のVGI FSM718がこの新しいパケット長をサポートする場合、そのようなVGI FSM718は、ヘッダ1402が論理値「1」に等しいFn_Bit-0および論理値「1」に等しいFn_Bit-1を有するような、肯定応答VGPIOパケット1400を送信し得る。そのような肯定応答パケットの中の対応するデータペイロード(たとえば、図14Aのビット1406)は、前のプログラミングパケットによって識別されるパケット長を繰り返す。
【００５１】
代替的な実施形態では、VGIパケット1400の変形が使用され得ることが理解されるであろう。しかしながら、変形とは無関係に、VGI FSM718は、そのような代替的なVGIパケットの中のヘッダおよびデータペイロードを復号するように事前構成され得る。よって、フレーム800、900、1000、および1100内へのVGPIOデータ(マスキングされた、またはマスキングされていない)の詰め込みに関して論じられたのと同様に、得られるVGIパケットをI2C/I3Cフレームにカプセル化することが有利である。たとえば、有向I2C/I3Cフレーム1440が図14Bに示されている。有向I2C/I3Cフレーム1440は、開始ビットS1442およびヘッダ1444で始まり得る。有向VGI共通コマンドコード(CCC)1446は、カプセル化されたVGIパケット1452を搬送する有向フレームであるものとして、有向I2C/I3Cフレーム1440を識別し得る。VGIパケット1452はVGPIOデータペイロードまたはメッセージング信号を含み得るので、VGIパケット1452に関して「VGI」という用語が「VGPIO」という用語の代わりに使用されることに留意されたい。繰り返し開始フィールド1448およびスレーブデバイスアドレス1450は、有向VGI CCC1446に従い得る。たとえば、繰り返し開始フィールド1448は、繰り返し開始条件を含み得る。受信側のI2C/I3Cインターフェースは、カプセル化されたVGIパケット1452を取り去り、このパケットを関連するVGI FSMに転送することによって、有向VGI CCC1446に応答する。この方式では、カプセル化がVGI FSMに対して透過的であるので、有利なことに、VGI FSMの機能に対するハードウェア的な変更を伴うことなくカプセル化が組み込まれ得る。有向I2C/I3Cフレーム1440のフィールド1454は、停止条件(P)または繰り返し開始(Sr)条件を含み得る。
【００５２】
たとえば、有向I2C/I3Cフレーム1460が図14Cに示されており、図14Cでは、有向I2C/I3Cフレーム1460は複数のスレーブアドレスおよび対応するカプセル化されたVGIパケット(たとえば、カプセル化されたVGIパケット1472、カプセル化されたVGIパケット1478)を含む。有向I2C/I3Cフレーム1460は、開始ビットS1462およびヘッダ1464で始まり得る。有向VGI共通コマンドコード(CCC)1466は、カプセル化されたVGIパケットを伴う有向フレームとして、有向I2C/I3Cフレーム1460を識別し得る。図14Cに示されるように、有向I2C/I3Cフレーム1460は、繰り返し開始条件を含み得る繰り返し開始(Sr)フィールド1468を含み得る。有向I2C/I3Cフレーム1460はさらに、カプセル化されたVGIパケット1472が後に続くスレーブデバイスアドレス1470を含み得る。図14Cにさらに示されるように、有向I2C/I3Cフレーム1460はさらに、繰り返し開始(Sr)条件を含み得る別の繰り返し開始(Sr)フィールド1474を含み得る。別のスレーブデバイスアドレス1476および別のカプセル化されたVGIパケット1478は、繰り返し開始(Sr)フィールド1474に後続し得る。有向I2C/I3Cフレーム1460のフィールド1479は、停止条件(P)または繰り返し開始(Sr)条件を含み得る。
【００５３】
たとえば、ブロードキャストI2C/I3Cフレーム1480が図14Dに示されている。ブロードキャストI2C/I3Cフレーム1480は、フレーム1440と類似しているが、繰り返し開始(Sr)フィールドおよびスレーブデバイスアドレスがない。したがって、ブロードキャストI2C/I3Cフレーム1480は、開始ビットS1482およびヘッダ1484で開始し、そのデータペイロードとしてカプセル化されたVGIパケット1488を伴うブロードキャストフレームとしてブロードキャストI2C/I3Cフレーム1480を識別する、ブロードキャストVGI共通コマンドコード(CCC)1486が後に続き得る。いくつかの態様では、カプセル化されたVGIパケットは、秘密の取り決めにより、I/Oビットおよびマスクビット、ならびに場合によっては構成ビットを含み得る。ブロードキャストI2C/I3Cフレーム1480のフィールド1490は、停止条件(P)または繰り返し開始(Sr)条件を含み得る。
【００５４】
図15は、本開示の様々な態様による、仮想GPIOインターフェース(VGI)を実装する例示的な汎用入力/出力(GPIO)ネットワーク1500のブロック図を示す。図15に示されるように、GPIOネットワーク1500は、ホストデバイス1502(たとえば、ホストSoC)および周辺デバイス1504を含む。前に説明されたように、VGIは、外部のGPIO、内部のGPIO、およびソフトGPIO/ハードウェアイベント、ならびに、全二重モードまたは半二重モードで動作する同期シリアルリンクまたは非同期シリアルリンクを通じたメッセージングを統合する、有限状態機械(FSM)知的財産(IP)ブロックである。ある態様では、外部のGPIOは、デバイス(たとえば、ホストSoCまたは周辺デバイス)上のピンを通じて物理的にアクセス可能なGPIOであり得る。ある態様では、内部のGPIOは、内部のI/Oマップの一部であるが従来の方法で物理ピンを通じてアクセス可能ではないGPIOであり得る。ある態様では、ソフトGPIO/ハードウェアイベントは、ホストデバイス(たとえば、ホストSoC)または周辺デバイス上のIPブロックの内側の汎用レジスタ空間にマッピングされるGPIOであることがあり、通常は読取り/書込み動作のためのソフトウェアまたは状態機械による介入を伴う。
【００５５】
図15を参照すると、ホストデバイス1502は、CPU1506と、VGI FSM1508と、VGI物理リンク1510と、いくつかのGPIOレジスタ1526を含むGPIOインターフェース1512とを含む。図15の態様では、VGI FSM1508は、GPIOレジスタ1518(たとえば、内部のGPIO)からGPIO信号を、物理ピン1514(たとえば、外部のGPIO)からGPIO信号を、かつ/もしくは汎用IPブロック1516(たとえば、ソフトGPIO)からGPIO信号を、送信または受信するように構成される。ある態様では、VGI FSM1508は、共有されるメッセージングアーキテクチャを実装するためのVGIメッセージングブロック1520を含み得る。そのような態様では、ホストデバイス1502および周辺デバイス1504は、事前に定義されたレジスタ位置との間でメッセージを交換し得る。VGI物理リンクインターフェース1510は、VGI FSM1508に結合され、VGIリンクインターフェース1522を通じてI/O信号およびVGIメッセージを送信して受信するためのインターフェースとして機能する。ある態様では、VGIリンクインターフェース1522は2線または3線のバスであり得る。たとえば、図15に示されるような3線のバスの場合、配線1546はピン1534からピン1540への信号の送信のために構成されることがあり、配線1548はピン1542からのピン1536における信号の受信のために構成されることがあり、ピン1538および1544に結合される配線1550はクロック信号を搬送することがある。ある態様では、VGIリンクインターフェース1522はI3C(および/またはI2C)プロトコルを実装し得る。周辺デバイス1504は、ホストデバイス1502に関して前に説明されたものと同様の特徴を含むように構成されることが、理解され得る。
【００５６】
ある態様では、ホストデバイス1502におけるVGI物理リンク1510は、VGIリンクインターフェース1522を通じて、周辺デバイス1504に信号を送信し、かつ/または周辺デバイス1504から信号を受信し得る。たとえば、VGI物理リンク1510はI3C(またはI2C)メッセージング信号を送信して受信するように構成され得る。本明細書で使用される場合、「メッセージング信号」という語句は、プロセッサ間通信(IPC)またはシリアル周辺インターフェース(SPI)プロトコルにおいて実践されるものなどの、専用の送信ピンを通じて従来は送信される信号を指す。したがって、メッセージング信号は、受信側プロセッサが受信されたメッセージング信号を適切なレジスタにルーティングできるように、アドレスを含み得る。対照的に、GPIO信号は、従来は専用のピンを通じて送信され受信されるので、GPIO信号と関連付けられることが必要なアドレスはない。本明細書においてさらに説明されるように、VGI FSM1508は、GPIO信号を、共通の送信ピンを通じて送信されるシリアル化された仮想GPIO信号へとシリアル化する。たとえば、ホストデバイス1502(または周辺デバイス1504)におけるVGI FSM1508は、線1546上での(たとえば、ホストデバイス1502から周辺デバイス1504への)送信のために、GPIOレジスタ1526の1つまたは複数のGPIO信号(本明細書では仮想GPIO信号と呼ばれる)および/またはメッセージング信号1528をシリアル化する。受信に関して、ホストデバイス1502におけるVGI FSM1508は、シリアル化された仮想GPIO信号および受信されたシリアル化されたメッセージング信号を非シリアル化する。したがって、VGI FSM1508は、仮想GPIO信号およびメッセージング信号に関してシリアライザ/デシリアライザとして機能する。したがって、2つのデバイスは各々、VGI FSM1508を有することがあり、仮想GPIOシグナリングのための構造またはフォーマットを取り決めることがある。送信側および受信側のVGI対応デバイス(たとえば、ホストデバイス1502または周辺デバイス1504)は、仮想GPIO信号のセットを含むVGIパケット内でのGPIO信号の位置によって、GPIO信号を識別し得る。
【００５７】
ある態様では、VGI物理リンク1510は、CPUリンク1552を介してCPU1506によって構成され得る。たとえば、構成段階の間に、CPU1506は、CPUリンク1552を介した、スルーレート、データ転送速度などのVGI物理リンク1510の様々な特性を構成し得る。ある態様では、VGI物理リンク1510は続いて、CPUリンク1552を通じて受信された構成に基づいて、CPU1506とは独立に動作し得る。
【００５８】
ある態様では、GPIOネットワーク1500は、(GPIO信号の数が対称的である場合)そうされなければGPIOピンの固有の専用のペアを各々必要とするであろう、仮想GPIO信号を送信して受信するために、送信ピン1534および受信ピン1536などの2つだけのピンを実装し得る。たとえば、ホストデバイス1502におけるGPIOレジスタ1526のGPIO信号#1は、周辺デバイス1504において専用GPIOピン1519から専用GPIOピン1521に送信され得る。したがって、従来の手法は、ホストデバイス1502と周辺デバイス1504との間でGPIO信号を通信するために、ホストデバイス1502および周辺デバイス1514におけるいくつかの物理ピン1514を、対応する配線1515とともに必要とする。
【００５９】
図15に示されるように、VGI FSM1508は、受信側および送信側のメッセージング信号1528(たとえば、I3C信号)に関して、対応するプロセッサ(たとえば、CPU1506)と直接インターフェースし得る。メッセージング信号1528はGPIO信号ではないので、GPIOインターフェースを通じて結合しない。ある態様では、各VGI FSM1508は、専用の送信ピン1534および受信ピン1536を通じて、メッセージング信号1528を送信および受信し得る。したがって、専用の送信ピン1534および受信ピン1536は、仮想GPIO信号(たとえば、VGIリンクインターフェース1522を通じたGPIOレジスタ1526からのGPIO信号の通信)およびメッセージング信号1528の両方に使用され得る。
【００６０】
ある態様では、GPIOレジスタ1526からのGPIO信号が仮想GPIO信号としてVGIリンクインターフェース1522を通じて送信および/または受信されるとき、物理ピン1514が他の目的で割り振られ得ることが理解され得る。したがって、GPIOネットワーク1500は、GPIOレジスタ1526のGPIO信号が固有の物理ピンを各々必要とするであろう従来のGPIO手法と比較して、(たとえば、ホストデバイス1502および/または周辺デバイス1504上の)ピンを大きく減らすことができる。図15に示されるように、VGI FSM1508は、インターフェース1554を通じて、GPIOレジスタ1526に対応するGPIO信号にアクセスし得る。
【００６１】
ある態様では、図15を参照すると、GPIOレジスタ1526のGPIO信号はGPIOインターフェース1512を通じてVGI FSM1508によって独立にアクセスされ得るので、ホストデバイス1502(および/または周辺デバイス)の中のVGI FSM1508に対応するCPU1506は、スリープ状態または別のタイプの休眠状態であり得るが、それでもGPIOレジスタ1526と関連付けられるGPIO信号ならびにメッセージング信号1528を受信することが可能であり得る。このようにして、GPIOネットワーク1500は、GPIOインターフェース1512ごとのピンの数を有利に節約するだけでなく、電力消費も減らす。
【００６２】
CPU1506は、GPIOレジスタ1526と関連付けられるGPIO信号の変化またはメッセージング信号1528の変化に応答して、割り込み信号を受信する必要があり得る。仮想GPIO信号(たとえば、GPIOレジスタ1526のシリアル化されたGPIO信号)およびメッセージング信号1528に関して、割り込みコントローラ1524は、割り込み構成レジスタ(図示されず)を通じてプログラムされたように、選択されたGPIO信号またはメッセージング信号を監視する。GPIOレジスタ1526の各GPIO信号は、対応する割り込み構成レジスタを有し得る。その信号変化状態に応答して割り込みを生成するためにGPIOレジスタ1526のGPIO信号が必要とされる場合、対応する構成レジスタはそれに応じてプログラムされる。同様に、GPIOレジスタ1526のGPIO信号またはメッセージング信号1528が、その信号が状態を変更したかどうかにかかわらず、割り込みを生成しないものである場合、対応する割り込み構成レジスタも、それに応じてプログラムされる。いくつかの態様では、割り込みコントローラ1524は有限状態機械も含み得る。したがって、VGI FSM1508と同様に、割り込みコントローラ1524は、低電力デバイスであり、そのCPU1506がスリープモードにあるか何らかの他の休眠状態にあるかにかかわらずアクティブである。
【００６３】
ある態様では、対応するVGI FSM1508のCPU1506は、アドレスをそのVGI FSM1508に割り当て得る。したがって、VGI FSM1508は、所与のメッセージング信号1528が対応するメッセージングレジスタ(たとえば、メッセージングレジスタ1530)に記憶され得るように、メッセージング信号1528の中のアドレスフィールド1556を復号するように構成され得る。これらのメッセージングレジスタ1530は各々、対応するCPU(たとえば、ホストデバイスまたは周辺デバイス1504におけるCPU1506)のためのアドレス空間内のVGI FSM1508のための一般的なアドレスのいくらかのオフセットにマッピングされる。割り込みコントローラ1524からの割り込みに応答して、CPU1506は次いで、適切なメッセージング信号1528を得るために、メッセージングレジスタ1530にアクセスし得る。前に論じられた仮想GPIO信号と同様に、メッセージング信号1528は、送信セットおよび受信セットに細分され得る。アーキテクチャが対称であるか非対称であるかにかかわらず、VGI FSM1508によるこれらの送信セットの結果として生じる送信は、単一の送信ピン1534を通じて発生する。1つのデバイス(たとえば、ホストデバイス1502)からの仮想GPIO信号の送信セットは、リモートデバイス(たとえば、周辺デバイス1504)のための仮想GPIO信号の受信セットになる。同様に、メッセージング信号1528の送信セットは、リモートデバイス(たとえば、周辺デバイス1504)のためのメッセージング信号1528の受信セットになる。リモートデバイス(たとえば、周辺デバイス1504)のVGI FSM1508は次いで、リモートデバイスにおけるGPIOインターフェース1512に仮想GPIO信号の受信セットが並列に提示され得るように、仮想GPIO信号の受信セットを非シリアル化する。
【００６４】
ある態様では、図15の各VGI FSM1508は、仮想GPIO信号の送信セット(たとえば、GPIOレジスタ1512のシリアル化されたGPIO信号)のための、およびメッセージング信号1528のための以前の状態を記憶する、(例示を簡単にするために図15からは省略されている)構成レジスタを含み得る。この方式では、各VGI FSM1508は、GPIOインターフェース1512から受信されるような仮想GPIO信号の送信セットの現在の状態を監視することができ、現在の状態が以前の状態に対して変化した場合、対応する送信セットのシリアル送信を引き起こすだけであり得る。言い換えれば、VGI FSM1508は、送信セット内の信号の1つまたは複数が、構成レジスタの中の以前の状態の記憶を通じて検出されるような変更された状態を有する場合にのみ、送信セットのシリアル送信を引き起こし得る。各CPU1506は、メッセージング信号レジスタ1530のアドレスを知っており、したがって、それらに所望の送信セットを書き込むことができ、受信セットのあらゆる変化を読み取ることもできる。VGI FSM1508は、メッセージング信号1528の送信セットがそれらの以前の送信に対して変化したかどうかを監視し、それに応じてリモートプロセッサへの送信セットの送信を引き起こす。割り込みコントローラ1524は、受信セットが前に論じられたように変化したかどうかを監視することができ、変化した受信セットが処理され得るように対応するCPU1506に割り込む。
【００６５】
集積回路は、ただ1つのVGI FSM 1508を含むことがあり、または複数の外部システムとインターフェースするための複数のこれらの要素を含むことがある。図16Aは、リモートデバイス1604と通信するための単一のVGI FSM1616をホストデバイス1602が含むGPIOネットワーク1600を示し、リモートデバイス1604は固有のVGI FSM1616を含む。対照的に、図16Bに示されるホストデバイス1652は、それぞれデバイス1654および1656の中のリモートプロセッサと通信するためのVGI FSM1616AおよびVGI FSM1616Bを含む。この点において、SoCは、他のSoCとのVGIシグナリングを収容するために必要な数のVGI FSMを用いて構成され得る。CPUが有し得るVGI FSMの数にかかわらず、各VGI FSMは、図16Aに示されるように、固有の専用送信ピン1606および受信ピン1608を使用して通信する。
【００６６】
上で論じられたように、各VGI FSM1508は、各送信セットをシリアル化して各受信セットを非シリアル化するためのシリアライザ/デシリアライザとして機能する。図17は、これらの動作をより良く示すFSM1508のブロック図である。VGI FSM1508は、多重化モジュール1700を通じて対応するCPU1506と仮想GPIO信号1518およびメッセージング信号1528を交換する。多重化モジュール1700は、仮想GPIO信号1518に関してGPIOインターフェース1512を通じて対応するCPU1506とインターフェースし、メッセージング信号1528に関して対応するCPU1506と直接インターフェースする。一実施形態では、各VGI FSM1508は、送信線1546を通じた仮想GPIO信号1518の送信セットまたはメッセージング信号1528の送信セットの送信を、いずれかの送信セットに変化があった場合にのみ許可する論理回路1702を含む。論理回路1702は、したがって、仮想GPIO信号1518(またはメッセージング信号1528)の送信セットの現在の状態を、対応する構成レジスタ1704に記憶されているような送信信号のこのセットの以前の状態と比較する。たとえば、論理回路1702は、この比較を実行するXORゲート1706を含み得る。多重化モジュール1700は、並列入力直列出力(PISO:parallel-in-serial-out)シフトレジスタ1708の中に並列に送信セットをロードする。XORゲート1706からのイネーブル信号1709がハイである(送信セットについての現在の状態と前の状態との間の変化を示す)場合、PISOシフトレジスタ1708は、外部クロック1550のサイクルに応答してその内容を送信線1546上へ直列にシフトアウトすることが可能にされる。
【００６７】
VGI FSM1508はまた、直列入力並列出力(SIPO:serial-in-parallel-out)シフトレジスタ1710を使用して、類似の方式で仮想GPIO信号1518またはメッセージング信号1528の受信セットを非シリアル化する。仮想GPIO信号1518およびメッセージング信号1528の受信セットは、リモートCPUによって生成され、リモートCPUによって受信線1548上へ送信される。仮想GPIO信号1518(またはメッセージング信号1528)のこの受信セットは、外部クロック1550のサイクルに応答してSIPOシフトレジスタ1710内に連続的にシフトされる。VGI FSM1508は、本明細書においてさらに論じられるように、別個の開始ビットおよび終了ビットを有するフレームにおいて、仮想GPIO信号1518およびメッセージング信号1528の送信セットを送信し、受信セットを受信するように構成される。前に論じられたフレームは、あらかじめ定義されたサイズを有し得る。一実施形態では、フレームサイズは、図14Aに関して論じられるVGIパケット1400に関して前に論じられたように、長さがあるビット数であるものとしてヘッダによって決定される。
【００６８】
仮想GPIO信号1518またはメッセージング信号1528の受信セットのための完全なフレームの受信を検出するために、VGI FSM1508は、フレームの開始ビットの受信後に外部クロック1550の必要なサイクル数をカウントする、図17に示されるような論理回路1712を含み得る。たとえば、受信セットが、外部クロック1550の10サイクルに応答して受信される10個の仮想GPIO信号1518を備えるとする。開始ビットの検出、および外部クロック1550の別の10サイクルの待機の後、論理回路1712は次いで、終了ビットの受信を予期する。終了ビットがそれに応じて検出された場合、論理回路1712は次いで、完全なフレームとしてSIPOシフトレジスタ1710内にシフトされた仮想GPIO信号1518の受信セットを並列に受信するために、出力ラッチ1714をストローブし得る。次いで、仮想GPIO信号のラッチされた受信セットは、多重化モジュール1700を通じてGPIOインターフェース1512に与えられ得る。メッセージング信号1528の受信されたセットのラッチングは同様に行われるが、メッセージング信号の受信されたセットは、GPIOインターフェース1512を通じてルーティングされるのではなくメッセージング信号レジスタ1528にロードされる。
【００６９】
再びPISOシフトレジスタ1708を参照すると、このレジスタは、開始ビットおよび終了ビットを用いて仮想GPIO信号1518およびメッセージング信号1528の送信セットをフレーム化するように構成されることが理解され得る。仮想GPIO信号の送信セットは、したがって、開始ビット1404および終了ビット1410によって画定されたVGIパケット1400において送信される。送信プロセッサのための送信セットは、リモートCPUのための受信セットになるので、受信セットもそれに応じて詰め込まれる。この詰め込みは、いかなる追加の専用ピンも必要とせずに、各CPUがリモートCPUの健全性を監視できるという点で有利である。たとえば、各VGI FSM1508は、その専用送信ピン(たとえば、ホストデバイス1502におけるピン1534または周辺デバイス1504におけるピン1542)をウィークプルアップして、(仮想GPIO信号の送信セットについての前の状態に対する現在の状態に変化がない)デフォルト状態の間、電圧を供給するように構成され得る。VGI FSM1508が開始ビットの送信のために送信線1546に接地するような実施形態では、開始ビットは論理0である。このようにして、各VGI FSM1508は、受信線1548がグラウンドにプルダウンされたことを検出することによって、開始ビットの受信を容易に検出することができる。一実施形態では、開始ビットと停止ビットは、互いの論理補数である。停止ビットは、したがって、開始ビットが論理0である場合、論理ハイの値になる。そうすると、VGIパケットのペイロードは、タイプビットから、パケット端を画定する停止ビット1410まで延びることがある。
【００７０】
CPUが正しく動作しなかった結果、CPUがその送信線1546をグラウンドへ不適切にプルダウンするという可能性がある。したがって、リモートプロセッサは、これを開始ビットとして検出し、論理回路1712は、それに応じてVGIパケットの最後に向かってカウントを開始する。しかしながら、終了ビットが論理1である場合、各VGI FSM1508は、フレーム送信の終了をシグナリングするために、送信線1546を電源電圧に充電する。CPUが正しく動作しなかった結果、リモートVGI FSM1508が開始ビットであると思われるものを検出した場合、論理回路1712は、終了ビットを検出せず、それに応じてリモートプロセッサの障害を論理回路のプロセッサに通知する。
【００７１】
受信のための十分なセットアップ時間を可能にするために、VGIパケット1400の送信は第1のクロックエッジに関して起こるべきであり、受信は残りのクロックエッジに関して起こるべきである。たとえば、PISOシフトレジスタ1708の中のビットは、外部クロック1550の立下りエッジまたは負のエッジに応答して、送信線1546上での送信のためにシフトアウトされ得る。逆に、受信線1548上の受信されたビットは、クロック1550の立上りエッジまたは正のエッジに応答して、SIPOシフトレジスタ1710の中にシフトされ得る。
【００７２】
あるプロセッサがリモートプロセッサにおける非アクティブ状態を検出するために、各VGI FSM1508は、(送信するフレームが存在しない)デフォルト状態でその送信線をハイにウィークプルアップするように構成され得る。前に論じられたように、開始ビットおよび停止ビットは、反対の論理状態を有する。図14AのVGIパケット1400の開始ビット1404は、したがって、送信線1546がその送信のためにローへプルダウンされるように論理値「0」(グラウンド)を有することがあり、一方、停止ビット1406は、送信線1546がその送信のために電源電圧へとハイにプルアップされるように論理値「1」であることがある。再び図17を参照すると、論路回路1712は、外部クロック1550の立上りエッジに関して受信線1548を監視するように構成される。フレーム送信がないデフォルトの論理状態は、前に論じられたようにウィークプルアップが原因でハイにとどまっているだけの受信線1548によって示される。論理回路1712が外部クロック1550の立上りエッジのうちの1つにおいて、受信線1548がローにプルダウンされたこと(開始ビット1404の0の値を示す)を検出する場合、論理回路1712は、VGIパケット1400のあらかじめ定義されたサイズに従った十分な数のクロックサイクルの間待機して、次いで停止ビット1410の論理ハイの値を検出する。停止ビット1410の受信は、完全なVGIパケット1400がSIPOシフトレジスタ1710へと完全にシフトされていることを論理回路1712に示す。その時点で、論理回路1712は、受信されたフレームがラッチ1714を通じて多重化モジュール1700に並列に提供されるように、SIPOシフトレジスタ1710をストローブする。それに応じて、仮想GPIO信号(またはメッセージング信号1528)の受信セットが次いで、GPIOインターフェース1512を通じてプロセッサコアに提供される。
【００７３】
32KHzスリープクロックなどの比較的遅い外部クロック1550は、IPCのシグナリング要件に十分であり得る。たとえば、仮想GPIO信号1518およびメッセージング信号1528の送信のための最小のセットアップ要件およびホールド要件が各々2ナノ秒であり、VGI FSM1508における外部クロック1550の受信のための最大の予想される先行または遅延が6ナノ秒であるとする。結果として生じる外部クロック1550の最大周波数が62MHzであることが容易に示され得る。したがって、スリープクロックなどからの32KHzの周波数は、そのような実施形態では、非常に大きい安全マージンをもたらす。
【００７４】
図18は、例示的なVGIの実装形態を示す図である。図18は、周辺デバイス1806に結合されたホストデバイス1804(たとえば、ホストSoC)を含む例示的な構成1802を示す。ホストデバイス1804および周辺デバイス1806は、低速(LS)インターフェース(I/F)1808を通じて信号を転送することができ、N個の側帯GPIOを転送することができる。第1の例示的なVGIの実装形態では、構成1812に示されるように、ホストデバイスおよび周辺デバイスは、3線の同期全二重VGIの実装形態を使用して結合される。第2の例示的なVGIの実装形態では、構成1814に示されるように、ホストデバイスおよび周辺デバイスは、2線の非同期全二重VGIの実装形態を使用して結合される。構成1814において、ホストデバイスおよび周辺デバイスは各々、I3C物理リンクなどの汎用物理リンクを利用できるVGI FSMを含む。構成1814は、NRZメッセージング(UART)、埋め込まれたGPIO/割り込み、および/または帯域内フロー制御を可能にし得る。第3の例示的なVGIの実装形態では、構成1816に示されるように、ホストデバイスおよび周辺デバイスは、2線(2W)の同期半二重VGIの実装形態を使用して結合される。構成1816において、ホストデバイスおよび周辺デバイスは各々、I3C物理リンクなどの汎用物理リンクを利用できるVGI FSMを含む。
【００７５】
図19は、例示的な汎用入力/出力(GPIO)ネットワーク1900のブロック図を示す。ホストデバイス1902(たとえば、ホストSoC)は、複数のn個の周辺デバイス(たとえば、カメラ#1 1904、カメラ#2 1906、センサ#1 1908、タッチスクリーンコントローラ1910、および周辺デバイス#n 1912)上の対応するGPIOピンとインターフェースするための複数のGPIOピンを含み、nは1より大きな正の整数である。ある態様では、n個の周辺デバイスの各々が、図19の対応するn個の周辺デバイスに割り当てられたアドレス1914、1916、1918、1920、および1922などの割り当てられたアドレスを有し得る。たとえば、周辺デバイス1904はアドレス0x01を有することがあり、周辺デバイス1906はアドレス0x02を有することがある。図19の例示的な構成では、カメラ#1 1904はホストデバイス1902から3つのGPIO信号を受信し得る。たとえば、図19に示されるように、カメラ#1 1904は、ホストデバイス1902のピン3 1932、ピン4 1934、およびピン5 1936から対応するGPIO信号を受信するための、ピン1 1938、ピン2 1940、およびピン3 1942などの3つのピンを有する。図19の例では、ピン1 1938において受信されるGPIO信号はスタンバイ信号であることがあり、ピン2 1940において受信されるGPIO信号はリセット信号であることがあり、ピン3 1942において受信されるGPIO信号はフラッシュ信号であることがある。別の例として、図19に示されるように、カメラ#2 1906は、ホストデバイス1902のピン6 1948およびピン7 1936から対応するGPIO信号を受信するための、ピン1 1944およびピン2 1946などの2つのピンを有する。図19の例では、ピン1 1944において受信されるGPIO信号はスタンバイ信号であることがあり、ピン2 1946において受信されるGPIO信号はリセット信号であることがある。残りの周辺デバイス(たとえば、センサ#1 190、タッチスクリーンコントローラ1910、および周辺機器#n 1912)は同様に、図19に示されるように、対応するピンにおいてホストデバイス1902からGPIO信号を受信し得る。図1
9に関して、そのようなGPIO信号は、側帯GPIO信号1930と総称的に呼ばれる。ある態様では、ホストデバイス1902は、GPIO入力ピン1 1952およびGPIO出力ピン2 1954を含み得る。ホストデバイス1902はさらに、n個の周辺デバイス(たとえば、カメラ#1 1904、カメラ#2 1906、センサ#1 1908、タッチスクリーンコントローラ1910、および周辺デバイス#n 1912)の中の対応するI3Cインターフェース(図19には示されない)にI3Cバス1924を通じて通信するためのI3Cインターフェース1928(I3Cポートとも呼ばれる)を含み得る。ある態様では、I3Cバス1924は、データリード1926およびクロックリード1928を含み得る。本開示のある態様では、ホストデバイス1902上のピン(たとえば、ピン3から14)と関連付けられるハードウェアイベントは、I3Cメッセージに変換され得る。図20を参照して以下で説明されるように、I/Oマッピング表(ホスト表とも呼ばれる)が、ハードウェアイベントと宛先周辺機器のI/Oとの間の対応付けをマッピングするために作成され得る。
【００７６】
図20は、周辺機器のI/OにホストデバイスのI/OをマッピングするためのI/Oマッピング表2000である。たとえば、図20に示されるように、I/Oマッピング表2000は、ホストデバイスのI/Oを示す第1の列2002と、ホストデバイスに関する信号転送方向(たとえば、出力(O/P)または入力(I/P))を示す第2の列2004と、周辺デバイスのアドレスを示す第3の列2006と、周辺デバイスのI/O数を示す第4の列2008と、周辺デバイスのI/Oに対応するパラメータを示す第5の列2010と、ホストデバイスからのブロードキャスト出力パケットにおけるI/Oの位置を示す第6の列2012とを含む。たとえば、ホストデバイスのI/Oは、図19のホストデバイス1902のピン1〜14であり得る。そのような例では、周辺デバイスのI/O数を示す第4の列2008は、ホストI/O1〜14に対応する周辺デバイスのI/Oを含み得る。したがって、I/Oマッピング表2000のI/Oマッピングは、ホストデバイスのI/Oと周辺デバイスのI/Oとの間の1対1の関連付けを確立し得る。ホストデバイス(たとえば、ホストデバイス1902)は、別個の表においてこのマッピングを維持し得る。ある態様では、I/Oマッピング表2000は、ホストデバイスと周辺デバイスとの間の秘密の取り決めにより、バス(たとえば、I3Cバス)上のあらゆる周辺デバイスと共有され得る。ある態様では、IBIまたは秘密の取り決めの交換を使用して、または有向の読取り動作において示されるような読取り動作を介して、入力が管理され得る。
【００７７】
図21は、例示的な汎用入力/出力(GPIO)ネットワーク2100のブロック図を示す。GPIOネットワーク2100は、ホストデバイス2102と周辺デバイス2104とを含む。図21に示されるように、ホストデバイス2102は、I3Cバス2116を介して周辺デバイス2104と通信している。たとえば、I3Cバス2116は、データのためのリードおよびクロック信号のためのリードを含む、2線のバスであり得る。図21の構成では、ホストデバイス2102において発するハードウェアイベント(たとえば、領域2112において「1」、「2」、および「3」と標識されている)が、割り込みコントローラ2108によって受信され得る。たとえば、ハードウェアイベント2112は内部ハードウェアイベント(たとえば、内部レジスタアクセス可能ビット)であり得る。他の態様では、外部ハードウェアイベント(たとえば、外部的にアクセス可能なピン)が可能である。割り込みコントローラ2108は、CPUコンプレックス2110が周辺デバイス2104への送信のためにレジスタマッピングされたI3Cパケットを生成できるように、ハードウェアイベントをCPUコンプレックス2110に通信することができる。たとえば、そのようなレジスタマッピングされたI3Cパケットは、ホストデバイス2102のI3C IPブロック2106およびI3Cバス2116を介して周辺デバイス2104に送信され得る。周辺デバイス2104は、I3C IPブロック2118においてレジスタマッピングされたI3Cパケットを受信することができ、I3C IPブロック2118はレジスタマッピングされたI3CパケットをMPU2120に提供することができる。MPU2120は次いで、ハードウェアイベント(領域2122において「1」、「2」、および「3」と標識されている)を識別し得る。
【００７８】
図22は、本開示の様々な態様による例示的な汎用入力/出力(GPIO)ネットワーク2200のブロック図を示す。GPIOネットワーク2200は、ホストデバイス2202と周辺デバイス2204とを含む。図22に示されるように、ホストデバイス2202は、I3Cバス2216を介して周辺デバイス2204と通信している。図22の構成では、ホストデバイス2202において発するハードウェアイベント(たとえば、領域2212において「1」、「2」、および「3」と標識されている)が、VGI FSM2208によって受信され得る。たとえば、ハードウェアイベント2212は内部ハードウェアイベント(たとえば、内部レジスタアクセス可能ビット)であり得る。他の態様では、外部ハードウェアイベント(たとえば、外部的にアクセス可能なピン)が可能である。VGI FSM2208は、周辺デバイス2204への送信のためのハードウェアイベントを含むVGIパケットを生成し得る。たとえば、そのようなVGIパケットは、ホストデバイス2202のI3C IPブロック2206およびI3Cバス2216を介して周辺デバイス2204に送信され得る。周辺デバイス2204は、I3C IPブロック2218においてVGIパケットを受信することができ、I3C IPブロック2218はVGIパケットをVGI FSM2220に提供することができる。VGI FSM2220は次いで、ハードウェアイベント(たとえば、領域2222において「1」、「2」、および「3」と標識されている)を識別し得る。図22の構成では、VGI FSM2208は、ホストデバイス2202の中のCPU2210が関与せずに(たとえば、VGIパケットを生成するために起動することなく)VGIパケットを生成して送信することができ、一方で、図21の構成は、VGIパケットを生成して送信するためにホストデバイス2102の中のCPU2110の関与(たとえば、VGIパケットを生成するために起動すること)を必要とすることに留意されたい。
【００７９】
VGIプロトコルおよびVGI over I3Cプロトコルは、有向構成およびブロードキャスト構成を使用して、マスキングされたモードとマスキングされていないモードにおけるI/O状態転送機能を有効にでき、本明細書において説明される態様は、I/Oピンのための電気的な構成(駆動の強さ、極性、スルーレートなど)を送信するための手法を含む。本明細書において論じられるように、マッピングされたI/Oのための様々なI/O構成プロトコルは、所与の使用事例に関して最小の遅延をもたらすパケット構造を確実に利用可能にするように、実装され得る。一態様では、本明細書において説明されるように、別個の構成メッセージおよびイベントメッセージが実装され得る。他の態様では、構成信号とイベント信号の両方を含む統合されたメッセージが実装され得る。たとえば、別個のメッセージプロトコルが、I/Oの電気的な構成が頻繁には必要とされない状況において実装され得る。別の例では、統合されたメッセージプロトコルが、I/Oの電気的な構成が頻繁に望まれる状況において実装され得る。別個のメッセージプロトコルは、多くの場合、I/O転送の遅延を大きく減らし得るが、統合されたプロトコルは、頻繁なI/O構成の変更が必要とされるときに遅延を減らし得る。
【００８０】
VGIメッセージング手法
一態様では、構成のみのメッセージが実装され得る。これは、各GPIOピンと関連付けられる特性または設定を定義するために周辺機器レジスタに記憶されるメッセージである。構成のみのメッセージは、ホストの電源投入時に一度、または、各GPIOピンと関連付けられる特性もしくは設定の修正のために周辺機器レジスタをホストが再構成することが必要であるのと同じ頻度で、実装され得る。別の態様では、イベントのみのメッセージが実装され得る。イベントのみのメッセージは、アドレス指定された周辺機器のGPIOピンのイベント状態(たとえば、論理「0」または論理「1」などの論理値)のみを識別する、仮想GPIOメッセージである。ある態様では、イベントのみのメッセージは、GPIOピンの論理値が変化するとき(イベント状態変更とも呼ばれる)には常に送信され得る。別の態様では、統合された構成およびイベントメッセージが実装され得る。統合された構成およびイベントメッセージ(「平らにされた」メッセージとも呼ばれる)は、シリアル化された構成およびイベントの情報をメッセージに含めることができ、1つのメッセージの中のアドレス指定された周辺機器のGPIOピンの構成およびイベントの状態を変更するために使用され得る。たとえば、統合された構成およびイベントメッセージは、GPIOピンのイベント状態を論理「1」に変更するために、また、GPIOピンの駆動の強さを20mAに変更するために使用され得る。周辺デバイスは、構成表の中の周辺デバイスに命令するホストに基づいて、統合された構成およびイベントメッセージとしてメッセージを検出し得る。別の態様では、カプセル化されたメッセージが実装され得る。そのような態様では、VGI I/OまたはVGIパケットが、あらゆる汎用リンクの特定のパケット構造またはフレーム構造の内部に埋め込まれ得る。
【００８１】
図23は、例示的なI/O構成を示す図である。たとえば、図23のI/O構成は、均一な構成レジスタアーキテクチャに基づく。デバイス(たとえば、周辺デバイス)の各ピン(たとえば、物理ピン#0 2302、物理ピン#1 2304、物理ピン#N 2306)は、グローバルピンアドレス2308と関連付けられ得る。たとえば、図23の物理ピン#0 2302は、物理ピン#0のベースアドレス2310と関連付けられ得る。構成レジスタ#0 2312から構成レジスタ#N 2316などの、物理ピン#0 2312と関連付けられるピン構成レジスタは、オフセットアドレス位置2314(たとえば、物理ピン#0のベースアドレス2310に関するオフセット)に含まれ得る。図23の態様では、構成レジスタ(たとえば、構成レジスタ2312)は8ビットの幅である。たとえば、そのような8ビットは、対応するレジスタビット2318の中のビットD0からD7として示されている。しかしながら、構成レジスタは、他の態様では8ビットよりも多数または8ビットよりも少数を有し得る。その上、グローバルピンアドレス2308はNビットからなることがあり、Nは実装形態に基づいて選択される整数であり得る。図23では、物理ピンと関連付けられるピンステータスフロップは、対応する物理ピンのイベント状態(たとえば、論理「1」または論理「0」)を記憶し得る。たとえば、物理ピン構成論理の中のピンステータスフロップ2322および物理ピン#0 2302と関連付けられるI/Oセルブロック2320は、物理ピン#0 2302のイベント状態(たとえば、論理「1」または論理「0」)を記憶し得る。
【００８２】
ある態様では、ピンステータスフロップに記憶されるような物理ピンのピンステータス(たとえば、イベント状態)は、構成レジスタの特定のビットに反映され得る。以下で説明されるように、ピンステータスのそのような反映は、便利なことに、メッセージングの様々なモードにわたる仮想的な物理ピンアクセスを可能にし得る。たとえば、図23を参照すると、ピンステータスフロップ2322に記憶されている物理ピン#0 2302のピンステータスは、構成レジスタ#N 2316のビットD7 2324に(矢印2326により示されるように)反映され得る。したがって、構成レジスタは、物理ピン構成論理における対応する物理ピンおよびI/Oセルブロック2320を構成するために使用され得る。図23の残りの物理ピン(たとえば、物理ピン#1 2304から物理ピン#N 2306)は、物理ピン#0 2302に関して上で説明されたのと同様の方式で構成され得ることを理解されたい。
【００８３】
図24は、周辺デバイスの物理ピンと関連付けられる構成レジスタの例示的な設定を示す図である。図24において、構成レジスタの構造は、物理ピン2406を構成するための2つの8ビットレジスタ(たとえば、構成レジスタA2402および構成レジスタB2404)に基づく。しかしながら、他の態様では、異なる数の構成レジスタが実装され得ることを理解されたい。その上、構成レジスタの各々は、他の態様では8ビットよりも多数または8ビットよりも少数を含み得る。構成レジスタの構造は、シリコンレベルの実装の選択であり得る。一例では、構成レジスタ2402は図23の構成レジスタ#0 2312に対応することがあり、構成レジスタ2404は図23の構成レジスタ#N 2316に対応することがあり、物理ピン2406は図23の物理ピン#0 2302に対応することがある。図23の態様では、構成レジスタB2404のビットD7は、図23の構成レジスタ#N 2316のビットD7 2324(ピンステータスミラービットとも呼ばれる)に対応し得る。
【００８４】
図24を参照すると、たとえば、物理ピン2406の駆動の強さ2408は、構成レジスタA2402の中のビットD0、D1、およびD2を変更することによって制御され得る。たとえば、図24に示されるように、二進の値「000」と二進の値「111」との間の8個の二進の値の各々が、特定の駆動の強さの値を表すようになされ得る。したがって、所望の駆動の強さの値に対応する二進の値(たとえば、「000」と「111」の間の)に従って構成レジスタA2402の中のビットD0、D1、およびD2を設定することによって、ホストデバイスは、周辺デバイスにおいて物理ピン2406の駆動の強さを制御し得る。物理ピン2406と関連付けられる他の特性および/または設定(たとえば、スルーレート、割り込みイネーブル/ディスエーブル、エッジ/レベルでトリガされる割り込み、I/O電圧レベルなど)は、図24に示されるような構成レジスタの対応するビットを変更することによって制御され得ることが理解され得る。
【００８５】
メッセージング手法
異なるメッセージング手法は、メッセージングの特定のモード内で最小の遅延を実現するために、様々なタイプの使用事例に対して実装され得る。第1の例示的な場合において、物理ピンの構成(たとえば、I/Oの電気的な構成)は一度、もしくはまれにしか必要とされないことがあり、かつ/または、I/O(たとえば、イベント状態)更新はより頻繁に必要とされることがある。そのような場合、I/Oの電気的な構成は、構成のみのメッセージを使用して実行され得る。ある態様では、I/Oの電気的な構成の後で、I/Oステータスのみが交換されることが必要とされる。I/Oステータスの交換は、有向メッセージング、ブロードキャストメッセージング、または有向の手法もしくはブロードキャストの手法を使用したマスキングされたメッセージングなどの、任意の好ましい手法に基づき得る。第2の例示的な場合(たとえば、イベント状態またはI/Oメッセージングのみ)において、内部の仮想I/Oから内部の仮想I/Oへの接続が実施されることがあり、それは、物理ピンのための電気的な構成のセットアップを必要としないからである。これは、電気的な構成が常に固定されている物理ピンマッピングの場合にも適用可能である。第1の場合と同様に、I/Oステータスの交換は、第1の場合に関して上で説明されたように行われ得る。第3の例示的な場合、統合された構成およびイベントメッセージが実装され得る。I/Oイベント状態とI/O構成の両方が頻繁に更新される状況では、この手法は最適な遅延の性能(たとえば、最小の遅延)を実現し得る。ある態様では、I/Oイベント状態およびI/O構成情報は、この手法ではパケット(たとえば、本明細書において開示されるようなVGIパケット)の中でインターリーブされる。第4の例示的な場合において、カプセル化されたメッセージングが実施され得る。物理レイヤプロトコルが固有のヘッダを構築させる一方で汎用ペイロードを許容するようなすべてのインターフェースに対して、カプセル化は、検討される特定のプロトコルのペイロードセクション内にVGIパケット構造を埋め込むことを許容する。この手法は、複雑さを小さくしながらVGI FSMを使用することを可能にする。
【００８６】
図25は、直接のI/Oマッピングレジスタを示す図である。図25に示されるように、直接I/Oマッピングレジスタ2508は、0x1111などのアドレスに位置し得る。図25の態様では、直接I/Oマッピングレジスタ2508は8ビット(たとえば、D0からD7)を含み得る。他の態様では、直接I/Oマッピングレジスタ2508のサイズ(たとえば、ビット長)は、実装形態に依存し得る。図25に示されるように、物理ピンと関連付けられるピンステータスフロップは、対応する物理ピンのイベント状態(たとえば、論理「1」または論理「0」)を記憶し得る。たとえば、物理ピン構成論理の中のピンステータスフロップ2514および物理ピン#0 2502と関連付けられるI/Oセルブロック2512は、物理ピン#0 2502のイベント状態(たとえば、論理「1」または論理「0」)を記憶し得る。ピンステータスフロップ2514に記憶されている物理ピン#0 2502のピンステータスは構成レジスタ#N 2520のビットD7 2516に(矢印2518により示されるように)反映されることがあり、ピンステータスフロップ2522に記憶されている物理ピン#1 2504のピンステータスは構成レジスタ#N 2526のビットD7 2524に反映されることがあり、以下同様である結果、ピンステータスフロップ2528に記憶されている最後の物理ピン#N 2506のピンステータスは構成レジスタ#N 2532のビットD7 2530に反映されることがある。直接I/Oマッピングレジスタ2508は、物理ピンのグループ(たとえば、物理ピン#0 2502、物理ピン#1 2504、物理ピン#N 2506)に対するピンステータス(たとえば、イベント状態)をイベントのみのメッセージが操作することを可能にし得る。ある態様では、各物理ピンのピンステータスは、直接I/Oマッピングレジスタ2508の内容を読み取ることによって読み取られることがあり、または、各物理ピンのピンステータスは、直接I/Oマッピングレジスタ2508の内容を変更することによって(たとえば、直接I/Oマッピングレジスタ2508に書き込むイベントのみのメッセージを実装することによって)修正されることがある。たとえば、物理ピン#0 2502のピンステータスは、直接I/Oマッピングレジスタ2508のビットD0を読み取ることによって読み取られることがあり、物理ピン#1 2504のピンステータスは、直接I/Oマッピングレジスタ2508のビットD1を読み取ることによって読み取られることがあり、物理ピン#N 2506のピンステータスは、直接I/Oマッピングレジスタ2508のビットD7を読み取ることによって読み取られることがある。別の例では、物理ピン#0 2502のピンステータスは、直接I/Oマッピングレジスタ2508のビットD0の値を変更することによって修正されることがあり、物理ピン#1 2504のピンステータスは、直接I/Oマッピングレジスタ2508のビットD1の値を変更することによって修正されることがあり、物理ピン#N 2506のピンステータスは、直接I/Oマッピングレジスタ2508のビットD7の値を変更することによって修正されることがある。ある態様では、マスキングされた書込み動作は、ピンステータス値とともにマスクパターンを使用することによって可能にされ得る。
【００８７】
図26Aは、マスクを実装するメッセージのみのメッセージフォーマット2600の例を示す図である。図26Aの態様では、レジスタアドレス2602、マスク2604、および値2606は各々8ビット(たとえば、ビットD0からD7)である。ある態様では、そのようなメッセージフォーマットがマスクを含むことを示すために、共通コマンドコード(CCC)が使用され得る。図26Bは、マスクを実装しないメッセージのみのフォーマット2650の例を示す図である。図26Bの態様では、レジスタアドレス2652および値2654は各々8ビット(たとえば、D0からD7)である。ある態様では、そのようなメッセージフォーマットがマスクを含まないことを示すために、共通コマンドコード(CCC)が使用され得る。
【００８８】
図27Aは、マスクを実装するイベントのみのメッセージフォーマット2700の例を示す図である。図27Aの態様では、レジスタアドレス2702、マスク2704、および値2706は各々8ビット(たとえば、ビットD0からD7)である。ある態様では、そのようなメッセージフォーマットがマスクを含むことを示すために、共通コマンドコード(CCC)が使用され得る。図27Bは、マスクを実装しないイベントのみのメッセージフォーマット2750の例を示す図である。図27Bの態様では、レジスタアドレス2752および値2754は各々8ビット(たとえば、ビットD0からD7)である。ある態様では、そのようなメッセージフォーマットがマスクを含まないことを示すために、共通コマンドコード(CCC)が使用され得る。
【００８９】
統合された構成およびイベントメッセージのフォーマット
図28は、本開示の様々な態様による、統合された構成およびイベントメッセージのフォーマット2800の例を示す図である。前に論じられたように、統合された構成およびイベントメッセージは、周辺デバイスの1つまたは複数のピン(たとえば、GPIOピン)のためのI/O構成情報およびI/Oイベント状態情報(たとえば、論理値「1」または論理値「0」などのGPIOピンステータス)を含むことがあり、I/O構成情報およびI/Oイベント状態情報は、事前に定義されたマッピング方式に基づいてパケット(たとえば、本明細書において開示されるようなVGIパケット)の中でインターリーブされる。それに従って、一態様では、統合された構成およびイベントメッセージ(統合されたパケットとも呼ばれる)の中の各ビットの場所および識別情報が周辺デバイスに提供され得るので、周辺デバイスの各々は、統合された構成およびイベントメッセージの中のそれらに向けられるビットを識別することができる。たとえば、統合された構成およびイベントメッセージの中の各ビットの場所および識別情報は、特定されたレジスタに記憶され得るメッセージのみのパケットを使用して、ホストデバイス(たとえば、ホストSoC)から周辺デバイスに提供され得る。ある態様では、ホストデバイスは、周辺デバイスの各々にI/Oマッピング表(たとえば、I/Oマッピング表2000)の少なくとも関連する部分を提供し得る。したがって、本明細書において説明される態様は、周辺デバイスの各々が入ってくるビットストリームの中の各ビットの意味を知ることを可能にし得る。たとえば、図20のI/Oマッピング表2000および図28の入ってくるデータストリームのマッピングされたビット2801の例示的なセットを参照すると、ビットM12802はI/Oマッピング表2000の中のマスクビット2014に対応することがあり、ビット2804はI/Oマッピング表2000の中のビット値2016に対応することがあり、ビットM22806はI/Oマッピング表2000の中のマスクビット2020に対応することがあり、ビット2808はI/Oマッピング表2000の中のビット値2022に対応することがあり、以下同様である結果、ビットMN2820はI/Oマッピング表2000の中のマスクビット2036に対応することがあり、ビット2822はI/Oマッピング表2000の中のビット値2038に対応することがある。ある態様では、マスクビット(たとえば、ビットM12802)の値は、すぐ隣のビット(たとえば、ビットb12804)の値が状態を変更したかどうかを特定し得る。たとえば、マスクビット(たとえば、ビットM12802)が論理値「1」に設定される場合、周辺機器は、すぐ隣のビット(たとえば、ビットb12804)の値が状態を変更した(たとえば、論理値「0」から論理値「1」に変化した、または論理値「1」から論理値「0」に変化した)ことを検出し得る。したがって、そのような例では、マスクビット(たとえば、ビットM12802)が0に設定される場合、周辺機器はすぐ隣のビット(たとえば、ビットb12804)の値が状態を変更しなかったことを検出し得る。マスクビットのこれらの値は、1つの可能な実装形態を表すことを理解されたい。したがって、他の態様では、マスクビットは、すぐ隣のビットの値が状態を変更したかどうかを示すために、上の例に関して異なる値に設定され得る(たとえば、マスクビットは、すぐ隣のビットの値が状態を変更したことを示すために論理値「0」に設定されることがあり、または、すぐ隣のビッ���の値が状態を変更しなかったことを示すために論理値「1」に設定されることがある)。
【００９０】
したがって、構成およびイベントメッセージのフォーマット2800は、デバイスの外部GPIOピンのための構成情報(たとえば、外部GPIOピンの設定、パラメータ、および/または特性を構成するための情報、外部GPIOピンが入力か出力かを構成するための情報など)、ならびに、単一の(たとえば、統合された)メッセージにおける外部GPIOピンのイベント状態(たとえば、論理値「1」または「0」)を含み得ることに留意されたい。ある態様では、そのような統合されたメッセージフォーマットが統合されたパケットであることを示すために、共通コマンドコード(CCC)が使用され得る。外部GPIOは、駆動の強さ、指向性、オープンドレイン動作、割り込み構成などの、個々の電気的なおよび挙動上の構成の必要性を有し得る。そのような構成は、VGIパケットがすべてのそのような構成を扱うようにVGI空間において、または、構成情報が普通のI3Cトランザクションを介して転送されるようにI3C空間において、扱われ得る。ある態様では、I/Oの状態は、専用のVGI_CCCコマンドを介して転送され得る。
【００９１】
一例では、図28および図20のI/Oマッピング表2000を参照すると、ビットb12804は、アドレス0x01における第1の周辺機器のGPIOピン#1のイベント状態(論理「1」または論理「0」)を設定することができ、ビットb22808は、アドレス0x01における第1の周辺機器のGPIOピン#1の駆動の強さを(たとえば、論理「0」に設定されるときは4mAに、または論理「1」に設定されるときは20mAに)設定することができ、ビットb32810は、アドレス0x01における第1の周辺機器のGPIOピン#1を、論理「0」に設定されるときは入力ピンとして、または論理「1」に設定されるときは出力ピンとして設定することができ、ビットb42812は、第1の周辺機器のGPIOピン#1を、論理「0」に設定されるときはオープンドレイン(OD)として、または論理「1」に設定されるときはプッシュプルとして設定することができ、ビットb52814は、第1の周辺機器のGPIOピン#1を、論理「0」に設定されるときはエッジでトリガされる割り込みとして、または論理「1」に設定されるときはエッジでトリガされる割り込みとして設定することができる。そのような例では、ビットb62816は第1の周辺機器のGPIOピン#2のイベント状態を設定することができ、ビットb72818は第1の周辺機器のGPIOピン#3のイベント状態を設定することができる。ビットb82819は、アドレス0x02における第2の周辺機器のGPIOピン#1のイベント状態(論理「1」または論理「0」)を設定することができる。したがって、この例では、アドレス0x02における第2の周辺機器がマッピングされたビット2801を受信するとき、第2の周辺機器は、I/Oマッピング表2000に基づいて、ビットb12804、b22808、b32810、b42812、b52814、b62816、およびb72818を無視することができ、ビットb82819(および後続のビットb9)を処理することができる。
【００９２】
図29は、統合されたメッセージを使用した書込み動作のためのブロードキャストメッセージングの例を示す図である。図29の例示的な構成は、図8に関して前に説明された例示的なブロードキャストフレーム800を示す。したがって、VGPIOデータペイロード806は、I/Oマッピング表2000に基づいて、マッピングされたビット2900を含み得る。ある態様では、VGPIOデータペイロード806の中の各ビット場所は、図29に示されるI/Oマッピング表2000に示されるような、周辺デバイスにおける対応するGPIOピン数(周辺機器I/O数とも呼ばれる)と関連付けられ得る。たとえば、ビットb12902は、アドレス0x01における第1の周辺機器のGPIOピン#1のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することができる。残りのビットb22904、b32906、およびb42908〜bN2910は、GPIOピンのイベント状態を設定することができ、または、I/Oマッピング表2000に示されるように(前に説明されたマッピングされたビット2801と同様に)周辺デバイスにおいてGPIOピンを構成することができる。したがって、一例では、ビットbN2910は、I/Oマッピング表2000において示されるように、アドレス0x05における第5の周辺機器のGPIOピン#2のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することができる。ある態様では、マッピングされたビット2900を含む例示的なブロードキャストフレーム800は、1つまたは複数の周辺デバイスにブロードキャストされ得る。
【００９３】
書込み動作のためのメッセージング
図30は、本開示の様々な態様による、マスクを実装する統合されたメッセージを使用した書込み動作のためのブロードキャストメッセージングの例を示す図である。図30の例示的な構成は、図9に関して前に説明された例示的なマスキングされたブロードキャストフレーム900を示す。したがって、VGPIOデータペイロード906は、I/Oマッピング表2000に基づいて、マッピングされたビット2900を含み得る。ある態様では、マッピングされたビット3000を含むマスキングされたブロードキャストフレーム900は、1つまたは複数の周辺デバイスにブロードキャストされ得る。図30に示されるように、マッピングされたビット3000は、データペイロード906におけるビットの場所を示す。たとえば、ビットM13002はI/Oマッピング表2000の中のマスクビット2014に対応することがあり、ビット3004はI/Oマッピング表2000の中のビット値2016に対応することがあり、ビットM23006はI/Oマッピング表2000の中のマスクビット2020に対応することがあり、ビット3008はI/Oマッピング表2000の中のビット値2022に対応することがあり、以下同様である結果、ビットMN3014はI/Oマッピング表2000の中のマスクビット2036に対応することがあり、ビット3016はI/Oマッピング表2000の中のビット値2038に対応することがある。ある態様では、マスクビット(たとえば、ビットM13002)の値は、すぐ隣のビット(たとえば、ビットb13004)の値が状態を変更したかどうかを特定し得る。たとえば、マスクビット(たとえば、ビットM13002)が論理値「1」に設定される場合、周辺機器は、すぐ隣のビット(たとえば、ビットb13004)の値が状態を変更した(たとえば、論理値「0」から論理値「1」に変化した、または論理値「1」から論理値「0」に変化した)ことを検出し得る。したがって、そのような例では、マスクビット(たとえば、ビットM13002)が0に設定される場合、周辺機器はすぐ隣のビット(たとえば、ビットb13004)の値が状態を変更しなかったことを検出し得る。マスクビットのこれらの値は、1つの可能な実装形態を表すことを理解されたい。したがって、他の態様では、マスクビットは、すぐ隣のビットの値が状態を変更したかどうかを示すために、上の例に関して異なる値に設定され得る(たとえば、マスクビットは、すぐ隣のビットの値が状態を変更したことを示すために論理値「0」に設定されることがあり、または、すぐ隣のビットの値が状態を変更しなかったことを示すために論理値「1」に設定されることがある)。
【００９４】
図31は、統合されたメッセージを使用した書込み動作のための直接のメッセージングの例を示す図である。図31の例示的な構成は、図10に関して前に説明された例示的な有向フレーム1000を示す。したがって、VGPIOデータペイロード1012は、I/Oマッピング表2000に基づいてマッピングされたビット3100を含むことがあり、VGPIOデータペイロード1018は、I/Oマッピング表2000に基づいてマッピングされたビット3115を含むことがある。一例では、スレーブアドレス1010は、第1の周辺デバイスに対応するアドレス0x01を含むことがあり、スレーブアドレス1016は、第2の周辺デバイスに対応するアドレス0x02を含むことがある。したがって、VGPIOデータペイロード1012は第1の周辺デバイスに向けられることがあり、VGPIOデータペイロード1018は第2の周辺デバイスに向けられることがある。ある態様では、VGPIOデータペイロード1012の中の各ビット場所は、図29に示されるI/Oマッピング表2000において示されるような第1の周辺デバイスにおける対応するGPIOピン数(周辺機器I/O数とも呼ばれる)と関連付けられることがあり、VGPIOデータペイロード1018の中の各ビット場所は、図29に示されるI/Oマッピング表2000において示されるような第2の周辺デバイスにおける対応するGPIOピン数(周辺機器I/O数とも呼ばれる)と関連付けられることがある。たとえば、ビットb13102は、ビット値2016に対応することがあり、第1の周辺デバイスのGPIOピン#1のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することができ、ビットb23104は、I/Oマッピング表2000の中のビット値2022に対応することがあり、第1の周辺機器のGPIOピン#1の駆動の強さを(たとえば、論理「0」に設定されるときは4mAに、または論理「1」に設置されるときは20mAに)設定することができ、以下同様である結果、残りのビットb23104、b33106、b43108、b53110、b63112、およびb73114は、I/Oマッピング表2000において示されるような第1の周辺デバイスにおけるGPIOピンのイベント状態を設定することができ、またはそのようなGPIOピンを構成することができる。別の例として、ビットb13116は、ビット値2028に対応することがあり、第2の周辺デバイスのGPIOピン#1のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することがあり、ビットb23118は、I/Oマッピング表2000の中のビット値2034に対応することがあり、第2の周辺デバイスのGPIOピン#2のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することがある。ある態様では、マッピングされたビット3100および3115を含む有向フレーム1000は、1つまたは複数の周辺デバイスに送信され得る。
【００９５】
図32は、マスクを実装する統合されたメッセージを使用した書込み動作のための直接のメッセージングの例を示す図である。図32の例示的な構成は、図11に関して前に説明された例示的な有向フレーム1100を示す。したがって、VGPIOデータペイロード1112は、I/Oマッピング表2000に基づいて、マッピングされたビット3200を含み得る。一例では、スレーブアドレス1110は、第1の周辺デバイスに対応するアドレス0x01を含み得る。したがって、VGPIOデータペイロード1112は、第1の周辺デバイスに向けられ得る。図32に示されるように、マッピングされたビット3200は、データペイロード1112におけるビットの場所を示す。たとえば、ビットM13202はI/Oマッピング表2000の中のマスクビット2014に対応することがあり、ビット3204はI/Oマッピング表2000の中のビット値2016に対応することがあり、ビットM23206はI/Oマッピング表2000の中のマスクビット2020に対応することがあり、ビット3208はI/Oマッピング表2000の中のビット値2022に対応することがあり、以下同様である結果、ビットMy3214はI/Oマッピング表2000の中のマスクビット2023に対応することがあり、ビット3216はI/Oマッピング表2000の中のビット値2025に対応することがある。したがって、VGPIOデータペイロード1112の中のマッピングされたビット3200のすべてが、第1の周辺デバイスに対応する。ある態様では、マスクビット(たとえば、ビットM13202)の値は、すぐ隣のビット(たとえば、ビットb13204)の値が状態を変更したかどうかを特定し得る。たとえば、マスクビット(たとえば、ビットM13202)が論理値「1」に設定される場合、周辺機器は、すぐ隣のビット(たとえば、ビットb13204)の値が状態を変更した(たとえば、論理値「0」から論理値「1」に変化した、または論理値「1」から論理値「0」に変化した)ことを検出し得る。したがって、そのような例では、マスクビット(たとえば、ビットM13202)が0に設定される場合、周辺機器はすぐ隣のビット(たとえば、ビットb13204)の値が状態を変更しなかったことを検出し得る。マスクビットのこれらの値は、1つの可能な実装形態を表すことを理解されたい。したがって、他の態様では、マスクビットは、すぐ隣のビットの値が状態を変更したかどうかを示すために、上の例に関して異なる値に設定され得る(たとえば、マスクビットは、すぐ隣のビットの値が状態を変更したことを示すために論理値「0」に設定されることがあり、または、すぐ隣のビットの値が状態を変更しなかったことを示すために論理値「1」に設定されることがある)。
【００９６】
読取り動作のためのメッセージング
図33は、統合されたメッセージを使用した読取り動作のための直接のメッセージングの例を示す図である。図33の例示的な構成は、図10に関して前に説明された例示的な有向フレーム1000を示す。したがって、VGPIOデータペイロード1012は、I/Oマッピング表2000に基づいてマッピングされたビット3300を含むことがあり、VGPIOデータペイロード1018は、I/Oマッピング表2000に基づいてマッピングされたビット3311を含むことがある。一例では、スレーブアドレス1010は、第1の周辺デバイスに対応するアドレス0x01を含むことがあり、スレーブアドレス1016は、第2の周辺デバイスに対応するアドレス0x02を含むことがある。したがって、VGPIOデータペイロード1012は第1の周辺デバイスからのデータを含むことがあり、VGPIOデータペイロード1018は第2の周辺デバイスからのデータを含むことがある。ある態様では、VGPIOデータペイロード1012の中の各ビット場所は、図29に示されるI/Oマッピング表2000において示されるような第1の周辺デバイスにおける対応するGPIOピン数(周辺機器I/O数とも呼ばれる)と関連付けられることがあり、VGPIOデータペイロード1018の中の各ビット場所は、図20に示されるI/Oマッピング表2000において示されるような第2の周辺デバイスにおける対応するGPIOピン数(周辺機器I/O数とも呼ばれる)と関連付けられることがある。たとえば、ビットb13302は、ビット値2016に対応することがあり、第1の周辺デバイスのGPIOピン#1のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を設定することができ、ビットb23304は、I/Oマッピング表2000の中のビット値2022に対応することがあり、第1の周辺機器のGPIOピン#1の駆動の強さを(たとえば、論理「0」に設定されるときは4mAに、または論理「1」に設定されるときは20mAに)設定することができ、以下同様である結果、残りのビットb33306およびb43308〜by3310は、I/Oマッピング表2000において示されるような第1の周辺デバイスにおけるGPIOピンのイベント状態を含むことがあり、またはGPIOピンの構成情報を含むことがある。別の例として、ビットb13312は、ビット値2028に対応することがあり、第2の周辺デバイスのGPIOピン#1のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を含むことがあり、ビットbx3314は、I/Oマッピング表2000の中のビット値2034に対応することがあり、第2の周辺デバイスのGPIOピン#2のイベント状態(たとえば、論理「1」または論理「0」としてのピンステータス)を含むことがある。ある態様では、マッピングされたビット3300および3311を含む有向フレーム1000は、1つまたは複数の周辺デバイスからホストデバイスに送信され得る。
【００９７】
図34は、マスクを実装する統合されたメッセージを使用した読取り動作のための直接のメッセージングの例を示す図である。図34の例示的な構成は、図14Bに関して前に説明された例示的な有向フレーム1440を示す。したがって、カプセル化されたVGIパケット1452は、I/Oマッピング表2000に基づいて、マッピングされたビット3400を含み得る。一例では、スレーブアドレス1450は、第1の周辺デバイスに対応するアドレス0x01を含み得る。したがって、カプセル化されたVGIパケット1452は、第1の周辺デバイスからのデータを含み得る。図34に示されるように、マッピングされたビット3400は、カプセル化されたVGIパケット1452に含まれ得るビット場所を示す。たとえば、ビットM13402はI/Oマッピング表2000の中のマスクビット2014に対応することがあり、ビット3404はI/Oマッピング表2000の中のビット値2016に対応することがあり、ビットM23406はI/Oマッピング表2000の中のマスクビット2020に対応することがあり、ビット3408はI/Oマッピング表2000の中のビット値2022に対応することがあり、以下同様である結果、ビットMy3416はI/Oマッピング表2000の中のマスクビット2023に対応することがあり、ビット3418はI/Oマッピング表2000の中のビット値2025に対応することがある。したがって、カプセル化されたVGIパケット1452の中のマッピングされたビット3400のすべてが、第1の周辺デバイスに対応する。ある態様では、マスクビット(たとえば、ビットM13402)の値は、すぐ隣のビット(たとえば、ビットb13404)の値が状態を変更したかどうかを特定し得る。たとえば、マスクビット(たとえば、ビットM13402)が論理値「1」に設定される場合、周辺機器は、すぐ隣のビット(たとえば、ビットb13404)の値が状態を変更した(たとえば、論理値「0」から論理値「1」に変化した、または論理値「1」から論理値「0」に変化した)ことを検出し得る。したがって、そのような例では、マスクビット(たとえば、ビットM13402)が0に設定される場合、周辺機器はすぐ隣のビット(たとえば、ビットb13404)の値が状態を変更しなかったことを検出し得る。マスクビットのこれらの値は、1つの可能な実装形態を表すことを理解されたい。したがって、他の態様では、マスクビットは、すぐ隣のビットの値が状態を変更したかどうかを示すために、上の例に関して異なる値に設定され得る(たとえば、マスクビットは、すぐ隣のビットの値が状態を変更したことを示すために論理値「0」に設定されることがあり、または、すぐ隣のビットの値が状態を変更しなかったことを示すために論理値「1」に設定されることがある)。ある態様では、マッピングされたビット3400を含む有向フレーム1440は、1つまたは複数の周辺デバイスからホストデバイスに送信され得る。
【００９８】
異なるマスク構成が、図28、図30、図32、および/または図34において説明されるマスクビットに関して実装され得ることに留意されたい。たとえば、図35は、複数のすぐ隣のビット値と関連付けられるマスクビットを含む、マッピングされたビット3501を示す。ある態様では、マスクビット3502はビットb13504、b23506、b33508と関連付けられることがあり、マスクビット3510はビットb43512、b53514、b63516、およびb73518と関連付けられることがあり、マスクビット3524はビットbN3526と関連付けられることがある。そのような態様では、たとえば、ビットb13504、b23506、b33508の少なくとも1つの状態の変化は、マスクビット3502を論理「1」に設定することによって示され得る。別の例として、ビットb43512、b53514、b63516、およびb73518の少なくとも1つの状態の変化がないことは、マスクビット3510を論理「0」に設定することによって示され得る。
【００９９】
図36は、本開示の様々な態様による、VGI FSM(たとえば、図15のVGI FSM1508)の例示的な構成を示す。図36に示されるように、VGI FSM3602は、I/Oマッパおよびメッセージフォーマッタ論理回路3604、I/O集約ブロック3606、および電力管理ユニット3608を含む。I/Oマッパおよびメッセージフォーマッタ論理回路3604は、前に論じられたように、GPIO信号(I/O信号とも呼ばれる)を仮想GPIOペイロードの中のビット場所へとマッピングするように構成され得る。図36の構成では、VGI FSM3602は、CPU(図示を簡単にするために図36には示されていない)とは独立に1つまたは複数の周辺デバイスからのVGIインターフェースを通じた通信を検出できるように、かつ/またはCPUとは独立にVGIインターフェースを通じた1つまたは複数の周辺デバイスへの通信を取得して送信できるように、常時オンドメインで動作するように構成される。言い換えると、VGI FSM3602は、CPUが低電力状態または休眠状態であるにもかかわらず動作するように構成され得る。ある態様では、VGI FSM3602は、VGI送信が行われる必要があるとき、またはVGI通信が検出されるときに、VGI FSM3602の中の回路およびデバイス(たとえば、メッセージフォーマッタ論理回路3604および/またはI/O集約ブロック3606)を起動する(たとえば、有効にする)電力管理ユニット3608を実装するように構成され得る。
【０１００】
第1の例示的なデバイスおよび方法
図37は、本開示の少なくとも1つの例による装置3700の選択構成要素を示すブロック図である。装置3700は、外部バスインターフェース(または通信インターフェース回路)3702と、記憶媒体3704と、ユーザインターフェース3706と、メモリデバイス3708と、処理回路3710とを含む。処理回路3710は、外部バスインターフェース3702、記憶媒体3704、ユーザインターフェース3706、およびメモリデバイス3708の各々と電気的に通信するように結合または配置される。
【０１０１】
外部バスインターフェース3702は、外部バス3712に対するインターフェースを装置3700の構成要素に提供する。外部バスインターフェース3702は、たとえば、信号ドライバ回路、信号受信機回路、増幅器、信号フィルタ、信号バッファ、またはシグナリングバスもしくは他のタイプのシグナリング媒体とインターフェースするために使用される他の回路のうちの1つまたは複数を含み得る。ある態様では、外部バス3712は、VGI信号および/またはI3C信号を送信して受信するための3つの物理配線(たとえば、図15に示される配線1546、1548、および1550)を含み得る。
【０１０２】
処理回路3710は、データを取得し、処理し、および/または送信し、データのアクセスおよび記憶を制御し、命令を出し、他の所望の動作を制御するように構成される。処理回路3710は、少なくとも1つの例において、適切な媒体によって提供される所望のプログラミングを実装するように適合された回路を含み得る。場合によっては、処理回路3710は、プログラミングを実施することによって、またはプログラミングを実施することなく、所望の機能を実行するように適合された回路を含み得る。例として、処理回路3710は、1つまたは複数のプロセッサ、1つまたは複数のコントローラ、および/または、実行可能なプログラミングを実行するように、かつ/もしくは所望の機能を実行するように構成された他の構造として実装され得る。処理回路3710の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを含み得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路3710はまた、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICおよびマイクロプロセッサ、または任意の他の数の様々な構成などのコンピューティング構成要素の組合せとして実装され得る。処理回路3710のこれらの例は例示のためのものであり、本開示の範囲内の他の適切な構成も企図される。
【０１０３】
処理回路3710は、プログラミングの実行を含め、記憶媒体3704上に記憶され得る処理用に適合される。本明細書で使用される「プログラミング」または「命令」という用語は、ソフトウェアと呼ばれるか、ファームウェアと呼ばれるか、ミドルウェアと呼ばれるか、マイクロコードと呼ばれるか、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかにかかわらず、限定はしないが、命令セット、命令、コード、コードセグメント、プログラムコード、プログラム、プログラミング、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行のスレッド、手順、関数などを含むように広く解釈されなければならない。
【０１０４】
いくつかの事例では、処理回路3710は、GPIOおよび構成信号取得回路/モジュール3714、マッピング回路/モジュール3716、マスク信号取得回路/モジュール3718、送信回路/モジュール3720、仮想GPIOパケット取得回路/モジュール3722、状態変化集約回路/モジュール3724、またはI3Cフレーム受信回路/モジュール3725のうちの1つまたは複数を含み得る。
【０１０５】
GPIOおよび構成信号取得回路/モジュール3714は、中央処理装置とは独立に1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得し、中央処理装置とは独立に1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶されるGPIOおよび構成信号取得命令3726)を含み得る。
【０１０６】
マッピング回路/モジュール3716は、マッピング表に基づいて第1の仮想GPIOパケットにおける第1の所定のビット場所に少なくとも1つまたは複数の周辺デバイスのためのGPIO信号のセットをマッピングし、または、マッピング表に基づいて第2の仮想GPIOパケットにおける第2の所定のビット場所に構成信号のセットをマッピングするように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶されるマッピング命令3728)を含み得る。ある態様では、マッピング回路/モジュール3716は、少なくとも1つの第1のGPIO信号の変更された状態を決定するために、マッピング表に基づいてGPIO信号のセットおよび構成信号のセットを仮想GPIOパケットにおける所定のビット場所にマッピングし、または、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングするように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶されるマッピング命令3728)を含み得る。
【０１０７】
マスク信号取得回路/モジュール3718は、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットが第1の仮想GPIOパケットに含まれ、構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットが第2の仮想GPIOパケットに含まれ、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットが仮想GPIOパケットに含まれ、または構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットが仮想GPIOパケットに含まれる、ように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶されるマスク信号取得命令3730)を含み得る。
【０１０８】
送信回路/モジュール3720は、中央処理装置とは独立にI3Cバスを通じて第1の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信し、中央処理装置とは独立にI3Cバスを通じて第2の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信し、中央処理装置とは独立にI3Cバスを通じて仮想GPIOパケットを1つまたは複数の周辺デバイスに送信し、または、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶される送信命令3732)を含むことがあり、第2のI3Cフレームは、少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。
【０１０９】
仮想GPIOパケット取得回路/モジュール3722は、中央処理装置とは独立にGPIO信号のセットを含む第1の仮想GPIOパケットを取得し、または、中央処理装置とは独立に構成信号のセットを含む第2の仮想GPIOパケットを取得するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶される仮想GPIOパケット取得命令3734)を含むことがある。ある態様では、仮想GPIOパケット取得回路/モジュール3722は、GPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得し、または第1のI3Cフレームから仮想GPIOパケットを取得するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶される仮想GPIOパケット取得命令3734)を含むことがある。
【０１１０】
状態変更集約回路/モジュール3724は、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶される状態変更集約命令3736)を含むことがある。
【０１１１】
I3Cフレーム受信回路/モジュール3725は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信するように適合される、回路および/または命令(たとえば、記憶媒体3704に記憶されるI3Cフレーム受信命令3738)を含むことがあり、仮想GPIOパケットはI3Cフレームにカプセル化される。
【０１１２】
記憶媒体3704は、プログラミング、電子データ、データベース、または他のデジタル情報を記憶するための、1つまたは複数のプロセッサ可読デバイスを表し得る。記憶媒体3704はまた、プログラミングを実行するときに処理回路3710によって操作されるデータを記憶するために使用され得る。記憶媒体3704は、可搬型または固定式記憶デバイスと、光記憶デバイスと、プログラミングの記憶、収容、および/または搬送が可能な様々なその他の媒体とを含む、処理回路3710によってアクセスすることが可能な任意の利用可能な媒体であり得る。限定ではなく例として、記憶媒体3704は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、取外し可能なディスク、および/またはプログラミングを記憶するための他の媒体、ならびにそれらの任意の組合せなどのプロセッサ可読記憶媒体を含み得る。したがって、いくつかの実装形態では、記憶媒体は、非一時的(たとえば、有形の)記憶媒体であり得る。
【０１１３】
記憶媒体3704は、処理回路3710が記憶媒体3704から情報を読み取り、記憶媒体3704に情報を書き込むことができるように、処理回路3710に結合され得る。すなわち、記憶媒体3704が少なくとも処理回路3710によってアクセス可能であるように、記憶媒体3704が、処理回路3710に結合されてよく、記憶媒体3704が処理回路3710と一体である例、および/または記憶媒体3704が処理回路3710と分離している例を含む。
【０１１４】
記憶媒体3704によって記憶されているプログラミング/命令は、処理回路3710によって実行されると、処理回路3710に、本明細書において説明される様々な機能および/またはプロセスステップのうちの1つまたは複数を実行させる。たとえば、記憶媒体3704は、GPIOおよび構成信号取得命令3726、マッピング命令3728、マスク信号取得命令3730、送信命令3732、仮想GPIOパケット取得命令3734、状態変更集約命令3736、またはI3Cフレーム受信命令3738のうちの1つまたは複数を含み得る。したがって、本開示の1つまたは複数の態様によれば、処理回路3710は、本明細書において説明される装置のいずれかもしくはすべてのためのプロセス、関数、ステップ、および/またはルーチンのうちのいずれかあるいはすべてを(記憶媒体3704と連携して)実行するように適合される。処理回路3710に関係して本明細書において使用される「適合される」という用語は、処理回路3710が、(記憶媒体3704と連携して)本明細書において説明される様々な特徴による特定のプロセス、機能、ステップおよび/もしくはルーチンを実行するように構成されること、用いられること、実装されること、ならびに/またはプログラムされることのうちの1つもしくは複数を行うことを指すことがある。
【０１１５】
メモリデバイス3708は、1つまたは複数のメモリデバイスを表すことがあり、上に列挙されたメモリ技術のうちのいずれかまたは任意の他の適切なメモリ技術を含み得る。メモリデバイス3708は、装置3700の構成要素のうちの1つまたは複数によって使用される情報を記憶することができる。メモリデバイス3708はまた、処理回路3710または装置3700の何らかの他の構成要素によって操作されるデータを記憶するために使用され得る。いくつかの実装形態では、メモリデバイス3708および記憶媒体3704は、共通のメモリ構成要素として実装される。
【０１１６】
ユーザインターフェース3706は、ユーザが装置3700と対話するのを可能にする機能を含む。たとえば、ユーザインターフェース3706は、1つまたは複数のユーザ出力デバイス(たとえば、ディスプレイデバイスなど)および1つまたは複数のユーザ入力デバイス(たとえば、キーボード、接触入力デバイスなど)とインターフェースすることができる。
【０１１７】
上記を念頭において、開示される態様による動作の例が、図38〜図40のフローチャートに関連してより詳細に説明される。便宜上、図38の動作は(または、本明細書で論じられ、または教示される他のどの動作も)、特定の構成要素によって実行されるものとして説明され得る。しかしながら、様々な実装形態では、これらの動作は、他のタイプの構成要素によって実行されることがあり、かつ異なる数の構成要素を使用して実行されることがあることを理解されたい。また、本明細書において説明される動作のうちの1つまたは複数は、所与の実装形態において利用されないことがあることも理解されたい。
【０１１８】
図38(図38Aおよび図38Bを含む)は、集積回路(たとえば、VGI FSM1508)のための方法を示すフローチャート3800である。点線により表される図38の動作は任意選択の動作を表すことを理解されたい。
【０１１９】
集積回路は、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得する(3802)。集積回路は、マッピング表に基づいて、1つまたは複数の周辺デバイスのためのGPIO信号のセットを第1の仮想GPIOパケットの中の第1の所定のビット場所にマッピングする(3804)。集積回路は、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットは第1の仮想GPIOパケットに含まれる(3806)。集積回路は、中央処理装置とは独立に、GPIO信号のセットを含む第1の仮想GPIOパケットを取得する(3808)。集積回路は、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに第1の仮想GPIOパケットを送信する(3810)。集積回路は、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得する(3812)。集積回路は、マッピング表に基づいて、構成信号のセットを第2の仮想GPIOパケットの中の第2の所定のビット場所にマッピングする(3814)。集積回路は、構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットは第2の仮想GPIOパケットに含まれる(3816)。集積回路は、中央処理装置とは独立に、構成信号のセットを含む第2の仮想GPIOパケットを取得する(3818)。集積回路は、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに第2の仮想GPIOパケットを送信する(3820)。
【０１２０】
図39は、集積回路(たとえば、VGI FSM1508)のための方法を示すフローチャート3900である。点線により表される図39の動作は任意選択の動作を表すことを理解されたい。
【０１２１】
集積回路は、中央処理装置とは独立に、1つまたは複数の周辺デバイスのためのGPIO信号のセットを取得する(3902)。集積回路は、GPIO信号のセットと関連付けられるマスク信号のセットを取得し、GPIO信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる(3904)。集積回路は、中央処理装置とは独立に、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得する(3906)。集積回路は、構成信号のセットと関連付けられるマスク信号のセットを取得し、構成信号のセットと関連付けられるマスク信号のセットは仮想GPIOパケットに含まれる(3908)。集積回路は、マッピング表に基づいて、GPIO信号のセットおよび構成信号のセットを仮想GPIOパケットの中の所定のビット場所にマッピングする(3910)。集積回路は、GPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得する(3912)。集積回路は、中央処理装置とは独立に、I3Cバスを通じて1つまたは複数の周辺デバイスに仮想GPIOパケットを送信する(3914)。
【０１２２】
図40は、集積回路(たとえば、VGI FSM1508)のための方法を示すフローチャート4000である。集積回路は、第1の周辺デバイスからI3Cバスを通じて仮想GPIOパケットを含む第1のI3Cフレームを受信し、仮想GPIOパケットはI3Cフレームにおいてカプセル化される(4002)。集積回路は、第1のI3Cフレームから仮想GPIOパケットを取得し(4004)、マッピング表に基づいて仮想GPIOパケットにおいて第1の仮想GPIOペイロードをマッピングして少なくとも1つの第1のGPIO信号の変更された状態を決定し(4006)、少なくとも1つの第1のGPIO信号の変更された状態を少なくとも1つの第2のGPIO信号の変更された状態へと集約し(4008)、I3Cバスを通じて第2のI3Cフレームを第2の周辺デバイスに送信し(4010)、第2のI3Cフレームは少なくとも1つの第2のGPIO信号の変更された状態をシグナリングする第2の仮想GPIOペイロードを含む。ある態様では、第2のI3Cフレームは、ブロードキャストI3Cフレームとして第2の周辺デバイスに送信される。ある態様では、ブロードキャストI3CフレームはマスキングされたブロードキャストI3Cフレームを備える。ある態様では、第2のI3Cフレームは、有向I3Cフレームとして第2の周辺デバイスに送信される。ある態様では、有向I3Cフレームはマスキングされた有向I3Cフレームを備える。ある態様では、集積回路は、少なくとも1つの第1のGPIO信号の変更された状態に応答してホストプロセッサに割り込み得る。
【０１２３】
第2の例示的なデバイスおよび方法
図41は、本開示の少なくとも1つの例による装置4100の選択構成要素を示すブロック図である。装置4100は、外部バスインターフェース(または通信インターフェース回路)4102と、記憶媒体4104と、ユーザインターフェース4106と、メモリデバイス4108と、処理回路4110とを含む。処理回路4110は、外部バスインターフェース4102、記憶媒体4104、ユーザインターフェース4106、およびメモリデバイス4108の各々と電気的に通信するように結合または配置される。
【０１２４】
外部バスインターフェース4102は、外部バス4112に対するインターフェースを装置4100の構成要素に提供する。外部バスインターフェース4102は、たとえば、信号ドライバ回路、信号受信機回路、増幅器、信号フィルタ、信号バッファ、またはシグナリングバスもしくは他のタイプのシグナリング媒体とインターフェースするために使用される他の回路のうちの1つまたは複数を含み得る。ある態様では、外部バス4112は、VGI信号および/またはI3C信号を送信して受信するための3つの物理配線(たとえば、図15に示される配線1546、1548、および1550)を含み得る。
【０１２５】
処理回路4110は、データを取得し、処理し、および/または送信し、データのアクセスおよび記憶を制御し、命令を出し、他の所望の動作を制御するように構成される。処理回路4110は、少なくとも1つの例において、適切な媒体によって提供される所望のプログラミングを実装するように適合された回路を含み得る。いくつかの事例では、処理回路4110は、プログラミングを実施することによって、またはプログラミングを実施することなく、所望の機能を実行するように適合された回路を含み得る。例として、処理回路4110は、1つまたは複数のプロセッサ、1つまたは複数のコントローラ、および/または、実行可能なプログラミングを実行するように、かつ/もしくは所望の機能を実行するように構成された他の構造として実装され得る。処理回路4110の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを含み得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路4110はまた、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICおよびマイクロプロセッサ、または任意の他の数の様々な構成などのコンピューティング構成要素の組合せとして実装され得る。処理回路4110のこれらの例は例示のためのものであり、本開示の範囲内の他の適切な構成も企図される。
【０１２６】
処理回路4110は、プログラミングの実行を含め、記憶媒体4104上に記憶され得る処理用に適合される。本明細書で使用される「プログラミング」または「命令」という用語は、ソフトウェアと呼ばれるか、ファームウェアと呼ばれるか、ミドルウェアと呼ばれるか、マイクロコードと呼ばれるか、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかにかかわらず、限定はしないが、命令セット、命令、コード、コードセグメント、プログラムコード、プログラム、プログラミング、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行のスレッド、手順、関数などを含むように広く解釈されなければならない。
【０１２７】
いくつかの事例では、処理回路4110は、マッピング表受信回路/モジュール4114、I3Cフレーム受信回路/モジュール4116、仮想GPIOパケット取得回路/モジュール4118、GPIOおよび構成信号識別回路/モジュール4120、またはGPIOおよび構成信号取得回路/モジュール4122のうちの1つまたは複数を含み得る。
【０１２８】
マッピング表受信回路/モジュール4114は、処理回路4110の構成段階の間にホストデバイスからI3Cバスを通じてマッピング表を受信するように適合される、回路および/または命令(たとえば、記憶媒体4104に記憶されるマッピング表受信命令4126)を含み得る。
【０１２９】
I3Cフレーム受信回路/モジュール4116は、中央処理装置とは独立にI3Cバスを通じてホストデバイスから仮想汎用入力/出力パケットを含むI3Cフレームを受信するように適合される、回路および/または命令(たとえば、記憶媒体4104に記憶されるI3Cフレーム受信命令4128)を含むことがあり、仮想汎用入力/出力パケットはI3Cフレームにカプセル化される。
【０１３０】
仮想GPIOパケット取得回路/モジュール4118は、中央処理装置とは独立に集積回路と関連付けられるGPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得するように適合される、回路および/または命令(たとえば、記憶媒体4104に記憶される仮想GPIOパケット取得命令4130)を含むことがある。
【０１３１】
GPIOおよび構成信号識別回路/モジュール4120は、マッピング表に基づいて仮想GPIOパケットの中の所定のビット場所におけるGPIO信号のセットおよび構成信号のセットを識別し、マスクビットを用いて示されるGPIO信号のセットの各々を、変更された状態を有するものとして識別し、または、マスクビットを用いて示される構成信号のセットの各々を、変更された状態を有するものとして識別するように適合される、回路および/または命令(たとえば、記憶媒体4104に記憶されるGPIOおよび構成信号識別命令4132)を含むことがある。
【０１３２】
GPIOおよび構成信号取得回路/モジュール4122は、GPIO信号のセットおよび構成信号のセットを取得するように適合される、回路および/または命令(たとえば、記憶媒体4104に記憶されるGPIOおよび構成信号取得命令4134)を含むことがある。
【０１３３】
記憶媒体4104は、プログラミング、電子データ、データベース、または他のデジタル情報を記憶するための、1つまたは複数のプロセッサ可読デバイスを表し得る。記憶媒体4104はまた、プログラミングを実行するときに処理回路4110によって操作されるデータを記憶するために使用され得る。記憶媒体4104は、可搬型または固定式記憶デバイスと、光記憶デバイスと、プログラミングの記憶、収容、および/または搬送が可能な様々なその他の媒体とを含む、処理回路4110によってアクセスすることが可能な任意の利用可能な媒体であり得る。限定ではなく例として、記憶媒体4104は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、取外し可能なディスク、および/またはプログラミングを記憶するための他の媒体、ならびにそれらの任意の組合せなどのプロセッサ可読記憶媒体を含み得る。したがって、いくつかの実装形態では、記憶媒体は、非一時的(たとえば、有形の)記憶媒体であり得る。
【０１３４】
記憶媒体4104は、処理回路4110が記憶媒体4104から情報を読み取り、記憶媒体4104に情報を書き込むことができるように、処理回路4110に結合され得る。すなわち、記憶媒体4104が少なくとも処理回路4110によってアクセス可能であるように、記憶媒体4104が、処理回路4110に結合されてよく、記憶媒体4104が処理回路4110と一体である例、および/または記憶媒体4104が処理回路4110と分離している例を含む。
【０１３５】
記憶媒体4104によって記憶されているプログラミング/命令は、処理回路4110によって実行されると、処理回路4110に、本明細書において説明される様々な機能および/またはプロセスステップのうちの1つまたは複数を実行させる。たとえば、記憶媒体4104は、マッピング表受信命令4126、I3Cフレーム受信命令4128、仮想GPIOパケット取得命令4130、GPIOおよび構成信号識別命令4132、GPIOおよび構成信号取得命令4134のうちの1つまたは複数を含み得る。したがって、本開示の1つまたは複数の態様によれば、処理回路4110は、本明細書において説明される装置のいずれかもしくはすべてのためのプロセス、関数、ステップ、および/またはルーチンのうちのいずれかあるいはすべてを(記憶媒体4104と連携して)実行するように適合される。処理回路4110に関係して本明細書において使用される「適合される」という用語は、処理回路4110が、(記憶媒体4104と連携して)本明細書において説明される様々な特徴による特定のプロセス、機能、ステップおよび/もしくはルーチンを実行するように構成されること、用いられること、実装されること、ならびに/またはプログラムされることのうちの1つもしくは複数を行うことを指すことがある。
【０１３６】
メモリデバイス4108は、1つまたは複数のメモリデバイスを表すことがあり、上に列挙されたメモリ技術のうちのいずれかまたは任意の他の適切なメモリ技術を含み得る。メモリデバイス4108は、装置4100の構成要素のうちの1つまたは複数によって使用される情報を記憶することができる。メモリデバイス4108はまた、処理回路4110または装置4100の何らかの他の構成要素によって操作されるデータを記憶するために使用され得る。いくつかの実装形態では、メモリデバイス4108および記憶媒体4104は、共通のメモリ構成要素として実装される。
【０１３７】
ユーザインターフェース4106は、ユーザが装置4100と対話するのを可能にする機能を含む。たとえば、ユーザインターフェース4106は、1つまたは複数のユーザ出力デバイス(たとえば、ディスプレイデバイスなど)および1つまたは複数のユーザ入力デバイス(たとえば、キーボード、接触入力デバイスなど)とインターフェースすることができる。
【０１３８】
上記を念頭において、開示される態様による動作の例が、図42のフローチャートに関連してより詳細に説明される。便宜上、図42の動作は(または、本明細書で論じられ、または教示される他のどの動作も)、特定の構成要素によって実行されるものとして説明され得る。しかしながら、様々な実装形態では、これらの動作は、他のタイプの構成要素によって実行されることがあり、かつ異なる数の構成要素を使用して実行されることがあることを理解されたい。また、本明細書において説明される動作のうちの1つまたは複数は、所与の実装形態において利用されないことがあることも理解されたい。
【０１３９】
図42は、集積回路(たとえば、周辺デバイス1504におけるVGI FSM1508)のための方法を示すフローチャート4200である。点線により表される図42の動作は任意選択の動作を表すことを理解されたい。
【０１４０】
集積回路は、集積回路の構成段階の間にホストデバイスからI3Cバスを通じてマッピング表を受信する(4202)。集積回路は、中央処理装置とは独立に、I3Cバスを通じてホストデバイスから仮想GPIOパケットを含むI3Cフレームを受信し、仮想GPIOパケットはI3Cフレームにおいてカプセル化される(4204)。集積回路は、中央処理装置とは独立に、集積回路と関連付けられるGPIO信号のセットおよび構成信号のセットを含む仮想GPIOパケットを取得する(4206)。集積回路は、マッピング表に基づいて、仮想GPIOパケットの中の所定のビット場所にあるGPIO信号のセットおよび構成信号のセットを特定する(4208)。集積回路は、マスクビットを用いて示されるGPIO信号のセットの各々を、変更された状態を有するものとして識別する(4210)。集積回路は、マスクビットを用いて示される構成信号のセットの各々を、変更された状態を有するものとして識別する(4212)。集積回路は、GPIO信号のセットおよび構成信号のセットを取得する(4214)。
【０１４１】
図43は、システムオンチップ(SoC)デバイスおよび周辺デバイスを組み込む例示的なシステムを示す。システム4300は、図7に関して前に説明された、ホストデバイス702(たとえば、SoCデバイス)ならびに例示的な周辺デバイス704、706、および708を含む。たとえば、システム4300は、携帯電話、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、ハンドヘルドゲーミングデバイスなどであり得る。ホストデバイス702は、メモリ4320(たとえば、DRAMデバイス)およびディスプレイコントローラ4325にも結合するシステムバス4315(たとえば、I3Cバス)を通じて、周辺デバイス704、706、および708と通信する。今度は、ディスプレイコントローラ4325は、ディスプレイ4335を駆動するビデオプロセッサ4330に結合する。
【０１４２】
したがって、本明細書において説明される態様は、ハードウェアベースの交換にCPUが関与することを回避しながら、ホストデバイスにおける電力の節約も達成するための、機構を提供する。側帯シグナリングに関与する物理I/Oは、物理I/Oピンをなくすために実質的に仮想化され得る。GPIO/ハードウェアイベントの側帯をI3Cメッセージへと仮想化することで、VGI FSMをサポートするI3C周辺機器のためのホストデバイスにおける過剰なGPIOが不要になることがあり、ホストデバイスと周辺デバイスとの間でのI/Oのマッピングが可能になることがあり、ハードウェアイベントの全体的な遅延が減ることがあり、かつ/または、ホストデバイスにおける処理電力が減ることがある。
【０１４３】
図に示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴もしくは機能として再構成されることがあり、かつ/または結合されることがあり、あるいはいくつかの構成要素、ステップ、または機能として具現化されることがある。また、本明細書において開示された新規の特徴から逸脱することなく、追加の要素、構成要素、ステップ、および/または機能が追加され得る。図に示される装置、デバイス、および/または構成要素は、本明細書において説明された方法、特徴、またはステップの1つまたは複数を実行するように構成され得る。本明細書において説明された新規のアルゴリズムはまた、効率的にソフトウェアで実装されることがあり、かつ/またはハードウェアに埋め込まれることがある。
【０１４４】
開示される方法におけるステップの特定の順序または階層は、例示的なプロセスを示すことを理解されたい。設計上の選好に基づいて、方法におけるステップの特定の順序または階層が並べ替えられ得ることが理解される。添付の方法クレームは、例示的な順序で様々なステップの要素を提示し、特に記載されない限り、提示された特定の順序または階層に限定されることを意味しない。また、本開示から逸脱することなく、追加の要素、構成要素、ステップ、および/または機能が追加されることがあり、または利用されないことがある。
【０１４５】
本開示の特徴がいくつかの実装形態および図に対して論じられたが、本開示のすべての実装形態は、本明細書において説明された有利な特徴のうちの1つまたは複数を含み得る。言い換えれば、1つまたは複数の実装形態が、いくつかの有利な特徴を有するものとして論じられることがあったが、そのような特徴のうちの1つまたは複数はまた、本明細書において説明された様々な実装形態のいずれかに従って使用され得る。同様に、例示的な実装形態がデバイス、システム、または方法の実装形態として本明細書において論じられたことがあったが、そのような例示的な実装形態が様々なデバイス、システム、および方法において実装されてもよいことを理解されたい。
【０１４６】
また、少なくともいくつかの実装形態がフローチャート、フロー図、構造図、またはブロック図として示されるプロセスとして説明されたことに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並べ替えられ得る。プロセスは、その動作が完了したときに終了する。いくつかの態様では、プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに相当し得る。プロセスが関数に相当するとき、その終了は、関数が呼び出し関数またはメイン関数に戻ることに相当する。本明細書において説明された様々な方法のうちの1つまたは複数は、機械可読記憶媒体、コンピュータ可読記憶媒体、および/またはプロセッサ可読記憶媒体に記憶され得るプログラミング(たとえば、命令および/またはデータ)によって部分的にまたは完全に実装されることがあり、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行されることがある。
【０１４７】
本明細書において開示された実装形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実装され得ることを当業者はさらに理解するであろう。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、全般にそれらの機能の観点から上で説明された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課された設計制約によって決まる。
【０１４８】
本開示内では、「例示的」という語は、「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書において説明されるいずれの実装形態または態様も、必ずしも本開示の他の態様よりも好ましいかまたは有利であると解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が、議論された特徴、利点、または動作モードを含むことを必要としない。「結合される」という用語は、2つの物体間の直接的または間接的な結合を指すために本明細書において使用される。たとえば、物体Aが物体Bに物理的に接触し、物体Bが物体Cに接触する場合、物体AとCはやはり、直接的に物理的に互いに接触しない場合であっても、互いに結合されると見なされ得る。たとえば、第1のダイは、第1のダイがパッケージ内の第2のダイに物理的に直接接触していなくても、第2のダイに結合され得る。「回路(circuit)」および「回路(circuitry)」という用語は広く使用され、電子回路のタイプに関する制限なく、接続および構成されたときに本開示において説明された機能の実行を可能にする電気デバイスおよび導体というハードウェア実装形態と、プロセッサによって実行されたときに本開示において説明された機能の実行を可能にする情報および命令というソフトウェア実装形態の両方を含むものとする。
【０１４９】
本明細書において使用される「決定すること」という用語は、幅広い様々な活動を包含する。たとえば、「決定すること」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること(たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること)、確認することなどを含み得る。また、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリの中のデータにアクセスすること)などを含み得る。また、「決定すること」は、解決すること、選択すること、選ぶこと、確立することなどを含み得る。本明細書において使用される「取得すること」という用語は、限定はされないが、受信すること、生成すること、決定すること、またはこれらの任意の組合せを含む1つまたは複数のアクションを含み得る。
【０１５０】
当業者が今では理解するように、また当面の具体的な適用例に応じて、本開示の要旨および範囲から逸脱することなく、本開示のデバイスの材料、装置、構成、および使用方法において、かつそれらに対して、多くの修正、置換、および変形を行うことができる。このことに照らして、本明細書において図示および説明された特定の実施形態は、実施形態のいくつかの例にすぎないので、本開示の範囲はそのような特定の実施形態の範囲に限定されるべきではなく、むしろ、下記に添付される特許請求の範囲およびそれらの機能的な均等物の範囲と完全に同じであるべきである。
【符号の説明】
【０１５１】
100  汎用入力/出力(GPIO)ネットワーク
102  ホストデバイス
103  I2Cバス
104  加速度計および磁力計
106  加速度計
108  ジャイロセンサ
110  環境光センサ(ALS)および近接センサ
112  高度計
114  コンパス
116  グリップセンサ
118  近接場通信デバイス
120  指紋センサ
122  アナログデジタルコンバータ
124  タッチスクリーン
126  データ線
128  クロック線
130  第1のDRI信号
132  第2のDRI信号
134  イネーブル信号
200  マルチノードGPIOネットワーク
202  ホストデバイス
204  周辺デバイス#1
206  周辺デバイス#2
208  周辺デバイス#3
210  周辺デバイス#(n-1)
212  周辺デバイス#n
214  バス
215  側帯GPIO
216  I2C/I3Cポート
218  クロック線
220  データ線
222  配線
224  配線
226  GPIO入力ピン
228  GPIO出力ピン
230  信号A
232  信号B
234  配線
236  信号A
238  信号B
240  信号C
300  GPIOネットワーク
302  ホストデバイス
304  周辺デバイス#1
306  周辺デバイス#2
308  周辺デバイス#3
310  周辺デバイス#(n-1)
312  周辺デバイス#n
314  バス
316  I2C/I3C知的財産ブロック
318  仮想GPIO有限状態機械
320  IOマッパおよびメッセージフォーマッタ
322  IO集約ブロック
328  GPIO入力ピン
330  GPIO出力ピン
332  クロック線
334  データ線
400  I/Oマッピング表
402  エントリ
404  エントリ
406  エントリ
408  ソース周辺機器I/O数
410  ソース周辺機器アドレス
412  宛先周辺機器I/O数
414  宛先周辺機器アドレス
500  GPIOネットワーク
502  ホストデバイス
504  周辺デバイス#1
506  周辺デバイス#2
508  周辺デバイス#3
510  周辺デバイス#(n-1)
512  周辺デバイス#n
514  I2C/I3Cバス
518  I2C/I3Cポート
520  GPIO入力ピン1
522  GPIO出力ピン2
524  ピン1
526  ピン2
528  ピン3
530  ピン4
532  ピン3
534  ピン4
536  ピン5
538  ピン6
550  I/O17
600  GPIOネットワーク
602  ホストSoC
604  加速度計および磁力計
606  加速度計
608  ジャイロセンサ
610  環境光センサ(ALS)および近接センサ
612  高度計
614  コンパス
616  グリップセンサ
618  近接場通信デバイス
620  指紋センサ
622  アナログデジタルコンバータ
624  タッチスクリーン
626  I3Cバス
628  クロックリード
630  データリード
700  ネットワーク
702  ホストデバイス
704  周辺デバイス#1
706  周辺デバイス#2
708  周辺デバイス#3
710  周辺デバイス#(n-1)
712  周辺デバイス#n
714  I2C/I3Cバス
716  I3Cインターフェース
718  仮想GPIOインターフェース有限状態機械
720  データリード
722  クロックリード
800  ブロードキャストフレーム
801  開始ビットS
802  開始ヘッダ
804  VGIブロードキャストコマンドコード
806  VGPIOデータペイロード
808  停止ビット
900  マスキングされたブロードキャストフレーム
906  データペイロード
1000  有向フレーム
1002  開始ビットS
1004  開始ヘッダ
1006  VGI有向共通コマンドコード
1008  繰り返し開始フィールド
1010  スレーブアドレスフィールド
1012  有向VGPIOデータペイロード
1014  繰り返し開始フィールド
1016  スレーブアドレスフィールド
1018  有向VGPIOデータペイロード
1020  第0のI/O信号
1022  第y-1のI/O信号
1024  第0のI/O信号
1026  第x-1のI/O信号
1028  停止ビット
1100  マスキングされた有向フレーム
1102  開始ビットS
1104  開始ヘッダ
1106  VGI有向共通コマンドコード
1108  繰り返し開始フィールド
1110  スレーブアドレスフィールド
1112  マスキングされた有向VGPIOデータペイロード
1114  第0のI/O信号
1116  第Oのマスク信号M0
1118  第y-1のI/O信号
1120  第y-1のマスク信号My-1
1122  停止ビット
1204  I/Oマッパおよびメッセージフォーマッタ論理回路
1206  I/O集約ブロック
1300  I/Oマッピング表
1302  ホストI/O数
1304  周辺機器I/O数
1306  周辺機器アドレス
1308  行
1310  行
1312  行
1314  行
1400  VGIパケット
1402  ヘッダ
1403  後続のペイロード
1404  開始ビット
1405  Type_Bit
1406  停止ビット
1410  終了ビット
1440  有向I2C/I3Cフレーム
1442  開始ビットS
1444  ヘッダ
1446  有向VGI共通コマンドコード
1448  繰り返し開始フィールド
1450  スレーブデバイスアドレス
1452  カプセル化されたVGIパケット
1454  フィールド
1460  有向I2C/I3Cフレーム
1462  開始ビットS
1464  ヘッダ
1466  有向VGI共通コマンドコード
1468  繰り返し開始フィールド
1470  スレーブデバイスアドレス
1472  カプセル化されたVGIパケット
1474  繰り返し開始フィールド
1476  スレーブデバイスアドレス
1478  カプセル化されたVGIパケット
1479  フィールド
1480  ブロードキャストI2C/I3Cフレーム
1482  開始ビットS
1484  ヘッダ
1486  ブロードキャストVGI共通コマンドコード
1488  カプセル化されたVGIパケット
1490  フィールド
1500  GPIOネットワーク
1502  ホストデバイス
1504  周辺デバイス
1506  CPU
1508  VGI FSM
1510  VGI物理リンク
1512  GPIOインターフェース
1514  物理ピン
1515  配線
1516  汎用IPブロック
1518  仮想GPIO信号
1519  専用GPIOピン
1520  VGIメッセージングブロック
1521  専用GPIOピン
1522  VGIリンクインターフェース
1524  割り込みコントローラ
1526  GPIOレジスタ
1528  GPIO信号および/またはメッセージング信号
1530  メッセージングレジスタ
1534  送信ピン
1536  受信ピン
1538  ピン
1540  ピン
1542  ピン
1544  ピン
1546  送信線
1548  受信線
1550  外部クロック
1552  CPUリンク
1554  インターフェース
1556  アドレスフィールド
1600  GPIOネットワーク
1602  ホストデバイス
1604  リモートデバイス
1606  送信ピン
1608  受信ピン
1616  VGI FSM
1652  ホストデバイス
1654  デバイス
1656  デバイス
1700  多重化モジュール
1702  論理回路
1704  構成レジスタ
1706  XORゲート
1708  並列入力直列出力シフトレジスタ
1709  イネーブル信号
1710  直列入力並列出力シフトレジスタ
1712  論理回路
1714  出力ラッチ
1802  構成
1804  ホストデバイス
1806  周辺デバイス
1808  低速インターフェース
1812  構成
1814  構成
1816  構成
1900  GPIOネットワーク
1902  ホストデバイス
1904  カメラ#1
1906  カメラ#2
1908  センサ#1
1910  タッチスクリーンコントローラ
1912  周辺デバイス#n
1914  アドレス
1916  アドレス
1918  アドレス
1920  アドレス
1922  アドレス
1924  I3Cバス
1926  データリード
1928  クロックリード
1930  側帯GPIO信号
1932  ピン3
1934  ピン4
1936  ピン5、ピン7
1938  ピン1
1940  ピン2
1942  ピン3
1944  ピン1
1946  ピン2
1948  ピン6
1952  GPIO入力ピン1
1954  GPIO出力ピン2
2000  I/Oマッピング表
2002  第1の列
2004  第2の列
2006  第3の列
2008  第4の列
2010  第5の列
2012  第6の列
2014  マスクビット
2016  ビット値
2020  マスクビット
2022  ビット値
2023  マスクビット
2025  ビット値
2028  ビット値
2034  ビット値
2036  マスクビット
2038  ビット値
2100  GPIOネットワーク
2102  ホストデバイス
2104  周辺デバイス
2106  I3C IPブロック
2108  割り込みコントローラ
2110  CPUコンプレックス
2112  領域
2116  I3Cバス
2118  I3C IPブロック
2120  MPU
2122  領域
2200  GPIOネットワーク
2202  ホストデバイス
2204  周辺デバイス
2206  I3C IPブロック
2208  VGI FSM
2210  CPU
2212  領域
2216  I3Cバス
2218  I3C IPブロック
2220  VGI FSM
2222  領域
2302  物理ピン#0
2304  物理ピン#1
2306  物理ピン#N
2308  グローバルピンアドレス
2310  物理ピン#0のベースアドレス
2312  構成レジスタ#0
2314  オフセットアドレス位置
2316  構成レジスタ#N
2318  レジスタビット
2320  物理ピンおよびI/Oセルブロック
2322  ピンステータスフロップ
2324  ビットD7
2326  矢印
2402  構成レジスタA
2404  構成レジスタB
2406  物理ピン
2408  駆動の強さ
2502  物理ピン#0
2504  物理ピン#1
2506  物理ピン#N
2508  直接I/Oマッピングレジスタ
2512  I/Oセルブロック
2514  ピンステータスフロップ
2516  ビットD7
2518  矢印
2520  構成レジスタ#N
2522  ピンステータスフロップ
2524  ビットD7
2526  構成レジスタ#N
2528  ピンステータスフロップ
2530  ビットD7
2532  構成レジスタ#N
2600  フォーマット
2602  レジスタアドレス
2604  マスク
2606  値
2650  フォーマット
2652  レジスタアドレス
2654  値
2700  フォーマット
2702  レジスタアドレス
2704  マスク
2706  値
2750  フォーマット
2752  レジスタアドレス
2754  値
2800  フォーマット
2801  マッピングされたビット
2802  ビットM1
2804  ビットb1
2806  ビットM2
2808  ビットb2
2810  ビットb3
2812  ビットb4
2814  ビットb5
2816  ビットb6
2818  ビットb7
2819  ビットb8
2820  ビットMN
2822  ビット
2900  マッピングされたビット
2902  ビットb1
2904  ビットb2
2906  ビットb3
2908  ビットb4
2910  ビットbN
3000  ビット
3002  ビットM1
3004  ビット
3006  ビットM2
3008  ビット
3014  ビットMN
3016  ビット
3100  マッピングされたビット
3102  ビットb1
3104  ビットb2
3106  ビットb3
3108  ビットb4
3110  ビットb5
3112  ビットb6
3114  ビットb7
3115  マッピングされたビット
3116  ビットb1
3118  ビットb2
3200  マッピングされたビット
3202  マスクビット
3204  ビット
3206  ビットM2
3208  ビット
3214  ビットMy
3216  ビット
3300  マッピングされたビット
3302  ビットb1
3304  ビットb2
3306  ビットb3
3308  ビットb4
3310  ビットby
3311  マッピングされたビット
3312  ビットb1
3314  ビットbx
3400  マッピングされたビット
3402  ビットM1
3404  ビットb1
3406  ビットM2
3408  ビット
3416  ビットMy
3418  ビット
3501  マッピングされたビット
3502  マスクビット
3504  ビットb1
3506  ビットb2
3508  ビットb3
3510  マスクビット
3512  ビットb4
3514  ビットb5
3516  ビットb6
3518  ビットb7
3524  マスクビット
3526  ビットbN
3602  VGI FSM
3604  I/Oマッパおよびメッセージフォーマッタ論理回路
3606  I/O集約ブロック
3608  電力管理ユニット
3700  装置
3702  外部バスインターフェース
3704  記憶媒体
3706  ユーザインターフェース
3708  メモリデバイス
3710  処理回路
3712  外部バス
3714  GPIOおよび構成信号取得回路/モジュール
3716  マッピング回路/モジュール
3718  マスク信号取得回路/モジュール
3720  送信回路/モジュール
3722  仮想GPIOパケット取得回路/モジュール
3724  状態変更集約回路/モジュール
3725  I3Cフレーム受信回路/モジュール
3726  GPIOおよび構成信号取得命令
3728  マッピング命令
3730  マスク信号取得命令
3732  送信命令
3734  仮想GPIOパケット取得命令
3736  状態変更集約命令
3738  I3Cフレーム受信命令
3800  フローチャート
3900  フローチャート
4000  フローチャート
4100  装置
4102  外部バスインターフェース
4104  記憶媒体
4106  ユーザインターフェース
4108  メモリデバイス
4110  処理回路
4112  外部バス
4114  マッピング表受信回路/モジュール
4116  I3Cフレーム受信回路/モジュール
4118  仮想GPIOパケット取得回路/モジュール
4120  GPIOおよび構成信号識別回路/モジュール
4122  GPIOおよび構成信号取得回路/モジュール
4126  マッピング表受信命令
4128  I3Cフレーム受信命令
4130  仮想GPIOパケット取得命令
4132  GPIOおよび構成信号識別命令
4134  GPIOおよび構成信号取得命令
4200  フローチャート
4300  システム
4315  システムバス
4320  メモリ
4325  ディスプレイコントローラ
4330  ビデオプロセッサ
4335  ディスプレイ
【図１】
2018533120.tif 000003
【図２Ａ】
2018533120.tif 000004
【図２Ｂ】
2018533120.tif 000005
【図２Ｃ】
2018533120.tif 000006
【図３】
2018533120.tif 000007
【図４】
2018533120.tif 000008
【図５】
2018533120.tif 000009
【図６】
2018533120.tif 000010
【図７】
2018533120.tif 000011
【図８】
2018533120.tif 000012
【図９】
2018533120.tif 000013
【図１０】
2018533120.tif 000014
【図１１】
2018533120.tif 000015
【図１２】
2018533120.tif 000016
【図１３】
2018533120.tif 000017
【図１４Ａ】
2018533120.tif 000018
【図１４Ｂ】
2018533120.tif 000019
【図１４Ｃ】
2018533120.tif 000020
【図１４Ｄ】
2018533120.tif 000021
【図１５】
2018533120.tif 000022
【図１６Ａ】
2018533120.tif 000023
【図１６Ｂ】
2018533120.tif 000024
【図１７】
2018533120.tif 000025
【図１８】
2018533120.tif 000026
【図１９】
2018533120.tif 000027
【図２０】
2018533120.tif 000028
【図２１】
2018533120.tif 000029
【図２２】
2018533120.tif 000030
【図２３】
2018533120.tif 000031
【図２４】
2018533120.tif 000032
【図２５】
2018533120.tif 000033
【図２６Ａ】
2018533120.tif 000034
【図２６Ｂ】
2018533120.tif 000035
【図２７Ａ】
2018533120.tif 000036
【図２７Ｂ】
2018533120.tif 000037
【図２８】
2018533120.tif 000038
【図２９】
2018533120.tif 000039
【図３０】
2018533120.tif 000040
【図３１】
2018533120.tif 000041
【図３２】
2018533120.tif 000042
【図３３】
2018533120.tif 000043
【図３４】
2018533120.tif 000044
【図３５】
2018533120.tif 000045
【図３６】
2018533120.tif 000046
【図３７】
2018533120.tif 000047
【図３８Ａ】
2018533120.tif 000048
【図３８Ｂ】
2018533120.tif 000049
【図３９】
2018533120.tif 000050
【図４０】
2018533120.tif 000051
【図４１】
2018533120.tif 000052
【図４２】
2018533120.tif 000053
【図４３】
2018533120.tif 000054
【手続補正書】
【提出日】平成30年3月13日(2018.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得することと、
中央処理装置とは独立に汎用入力/出力信号の前記セットを含む第1の仮想汎用入力/出力パケットを取得することと、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得することであって、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記第1の仮想汎用入力/出力パケットに含まれる、取得することと、
前記中央処理装置とは独立にI3Cバスを通じて前記第1の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信することと
を行うように構成される、集積回路。
【請求項２】
前記処理回路がさらに、
前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得し、
前記中央処理装置とは独立に構成信号の前記セットを含む第2の仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立に前記I3Cバスを通じて前記第2の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、請求項1に記載の集積回路。
【請求項３】
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記第2の仮想汎用入力/出力パケットに含まれる、請求項2に記載の集積回路。
【請求項４】
前記第1の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける直接の入力/出力マッピングレジスタのアドレスを含み、前記直接の入力/出力マッピングレジスタの各ビットが、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項1に記載の集積回路。
【請求項５】
前記第2の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける構成レジスタのアドレスを含む、請求項2に記載の集積回路。
【請求項６】
構成信号の前記セットが、
前記1つまたは複数の周辺デバイスの前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項2に記載の集積回路。
【請求項７】
前記処理回路がさらに、
マッピング表に基づいて前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の少なくとも前記セットを前記第1の仮想汎用入力/出力パケットの中の第1の所定のビット場所にマッピングし、または、前記マッピング表に基づいて構成信号の前記セットを前記第2の仮想汎用入力/出力パケットの中の第2の所定のビット場所にマッピングするように構成される、請求項3に記載の集積回路。
【請求項８】
1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得することと、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得することと、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングすることと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得することと、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得することであって、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、取得することと、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信することと
を行うように構成される、集積回路。
【請求項９】
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項8に記載の集積回路。
【請求項１０】
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項8に記載の集積回路。
【請求項１１】
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項8に記載の集積回路。
【請求項１２】
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項8に記載の集積回路。
【請求項１３】
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項8に記載の集積回路。
【請求項１４】
集積回路において使用可能な方法であって、
中央処理装置とは独立に1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得するステップと、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得するステップと、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングするステップと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得するステップと、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するステップであって、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、ステップと、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信するステップとを備える、方法。
【請求項１５】
構成信号の前記セットと関連付けられるマスク信号のセットを取得するステップをさらに備え、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項14に記載の方法。
【請求項１６】
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項14に記載の方法。
【請求項１７】
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項14に記載の方法。
【請求項１８】
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項14に記載の方法。
【請求項１９】
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項14に記載の方法。
【請求項２０】
集積回路であって、
ホストデバイスと通信するように構成された通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に、I3Cバスを通じて前記ホストデバイスから仮想汎用入力/出力パケットを含むI3Cフレームを受信することであって、前記仮想汎用入力/出力パケットが前記I3Cフレームにおいてカプセル化される、受信することと、
前記中央処理装置とは独立に、前記集積回路と関連付けられる汎用入力/出力信号のセットおよび構成信号のセットを含む前記仮想汎用入力/出力パケットを取得することと、
マッピング表に基づいて、前記仮想汎用入力/出力パケットの中の所定のビット場所における汎用入力/出力信号の前記セットおよび構成信号の前記セットを識別することと、
マスクビットを用いて示される汎用入力/出力信号の前記セットの各々を、変更された状態を有するものとして識別することと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを取得することと
を行うように構成される、集積回路。
【請求項２１】
前記処理回路がさらに、前記集積回路の構成段階の間にホストデバイスから前記I3Cバスを通じて前記マッピング表を受信するように構成される、請求項20に記載の集積回路。
【請求項２２】
前記処理回路がさらに、マスクビットを用いて示される構成信号の前記セットの各々を、変更された状態を有するものとして識別するように構成される、請求項20に記載の集積回路。
【請求項２３】
構成信号の前記セットが、
前記集積回路の1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項20に記載の集積回路。
【請求項２４】
前記1つまたは複数の汎用入力/出力ピンの前記1つまたは複数の電気的な特性が、少なくとも駆動の強さ、スルーレート、電圧レベル、出力タイプ、または割り込みトリガタイプを含む、請求項23に記載の集積回路。
【請求項２５】
前記I3CフレームがブロードキャストI3Cフレームまたは有向I3Cフレームである、請求項20に記載の集積回路。
【請求項２６】
前記I3Cフレームが、前記I3Cフレームを前記ブロードキャストI3Cフレームまたは前記有向I3Cフレームとして識別するコマンドコードを含む、請求項25に記載の集積回路。
【国際調査報告】
2018533120.tif 000055
2018533120.tif 000056