(57)【要約】  プロセッサからGPIO信号の送信セットを受信する仮想GPIOインターフェースが提供される。仮想GPIOインターフェースは、従来の方法でGPIOピンを介してGPIO信号の送信セットの一部を送信する。しかしながら、仮想GPIOインターフェースは、GPIO信号の送信セットの残りの部分を有限ステートマシンに提供し、有限ステートマシンは、残りの部分を仮想GPIO信号のフレーム中にGPIO信号をシリアライズする。修正型UARTインターフェースは、UARTオーバーサンプリングクロックのサイクルに応答してフレームをUART送信ピンを介して送信する。
2017528830.tif 000002
【特許請求の範囲】
【請求項１】
第1のプロセッサと、
複数のGPIOピンと、
前記プロセッサからGPIO信号の送信セットを受信し、前記送信セットの第1の部分を前記GPIOピンを介してリモートの第2のプロセッサに送信するように構成される仮想GPIOインターフェースと、
前記仮想GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を仮想GPIO信号の少なくとも1つの第1のフレーム中にシリアライズするように構成される有限ステートマシンと、
オーバーサンプリングクロックのサイクルに応答してUART送信ピンを介して前記少なくとも1つの第1のフレームを前記リモートの第2のプロセッサに送信するように構成される修正型汎用非同期レシーバ/トランスミッタ(UART)インターフェースと
を含む、集積回路。
【請求項２】
前記修正型UARTインターフェースが、前記少なくとも1つのフレーム内の1ビット当りの前記オーバーサンプリングの16サイクルに応答して前記少なくとも1つの第1のフレームを前記リモートプロセッサに送信するように構成される、請求項1に記載の集積回路。
【請求項３】
前記有限ステートマシンが複数のメッセージングレジスタを含み、前記第1のプロセッサが複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限ステートマシンが前記メッセージングレジスタからの前記メッセージング信号を少なくとも1つの第2のフレーム中にシリアライズするようにさらに構成され、前記修正型UARTインターフェースが前記オーバーサンプリングクロックのサイクルに応答して前記UART送信ピンを介して前記少なくとも1つの第2のフレームを前記リモートの第2のプロセッサに送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項４】
前記有限ステートマシンが、前記仮想GPIO信号専用である前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項3に記載の集積回路。
【請求項５】
前記有限ステートマシンが、前記メッセージング信号専用である前記少なくとも1つの第2のフレームを識別するためにヘッダを前記少なくとも1つの第2のフレームに付加するようにさらに構成される、請求項3に記載の集積回路。
【請求項６】
前記有限ステートマシンが複数のメッセージングレジスタを含み、前記第1のプロセッサが複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限ステートマシンが前記メッセージングレジスタからの前記メッセージング信号を前記少なくとも1つの第1のフレーム中にシリアライズするようにさらに構成される、請求項1に記載の集積回路。
【請求項７】
前記有限ステートマシンが、前記仮想GPIO信号と前記メッセージング信号との両方を含むハイブリッドフレームである前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項6に記載の集積回路。
【請求項８】
前記有限ステートマシンが、前記少なくとも1つの第1のフレーム内の前記仮想GPIO信号の位置を識別し、かつ前記少なくとも1つの第1のフレーム内の前記メッセージング信号の位置を識別するために拡張ヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項6に記載の集積回路。
【請求項９】
前記有限ステートマシンが前記少なくとも1つの第1のフレームの長さを識別するプログラミングフレームを形成するようにさらに構成され、前記修正型UARTインターフェースが前記オーバーサンプリングクロックのサイクルに応答して前記UART送信ピンを介して前記プログラミングフレームを前記リモートの第2のプロセッサに送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項１０】
前記修正型UARTインターフェースが、前記UARTオーバーサンプリングクロックのサイクルに応答してUART受信ピンを介して前記少なくとも1つの第1のフレームの前記長さを確認する確認フレームを受信するようにさらに構成される、請求項9に記載の集積回路。
【請求項１１】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項9に記載の集積回路。
【請求項１２】
前記修正型UARTインターフェースが、前記UARTオーバーサンプリングクロックのサイクルに応答して前記UART受信ピンを介して前記リモートの第2のプロセッサからの仮想GPIO信号の少なくとも1つの第2のフレームを受信するようにさらに構成される、請求項9に記載の集積回路。
【請求項１３】
前記集積回路がアプリケーションプロセッサ集積回路である、請求項1に記載の集積回路。
【請求項１４】
第1のプロセッサから仮想GPIOインターフェースにおいてGPIO信号の送信セットを受信するステップと、
GPIO信号の前記送信セットの第1の部分を専用GPIOピンを介してリモートの第2のプロセッサに送信するステップと、
GPIO信号の前記送信セットの残りの第2の部分を仮想GPIO信号の少なくとも1つの第1のフレーム中にシリアライズするステップと、
修正型UARTインターフェースに関するオーバーサンプリングクロックのサイクルに応答して仮想GPIO信号の前記少なくとも1つの第1のフレームをUART送信ピンを介して前記リモートの第2のプロセッサに送信するステップと
を含む、方法。
【請求項１５】
前記第1のプロセッサからの複数のメッセージング信号を複数のメッセージングレジスタに書き込むステップと、
前記複数のメッセージングレジスタからの前記メッセージング信号を少なくとも1つの第2のフレーム中にシリアライズするステップと、
前記オーバーサンプリングクロックのサイクルに応答してメッセージング信号の前記少なくとも1つの第2のフレームを前記UART送信ピンを介して前記リモートの第2のプロセッサに送信するステップと
をさらに含む、請求項14に記載の方法。
【請求項１６】
前記仮想GPIO信号専用である前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記メッセージング信号専用である前記少なくとも1つの第2のフレームを識別するためにヘッダを前記少なくとも1つの第2のフレームに付加するステップをさらに含む、請求項15に記載の方法。
【請求項１８】
前記第1のプロセッサからの複数のメッセージング信号を複数のメッセージングレジスタに書き込むステップと、
前記複数のメッセージングレジスタからの前記メッセージング信号を少なくとも1つの第1のフレーム中にシリアライズするステップと
をさらに含む、請求項14に記載の方法。
【請求項１９】
前記仮想GPIO信号と前記メッセージング信号との両方を含むハイブリッドフレームとして前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するステップをさらに含む、請求項18に記載の方法。
【請求項２０】
第1のプロセッサと、
複数のGPIOピンと、
前記第1のプロセッサからGPIO信号の送信セットを受信し、前記送信セットの第1の部分を前記GPIOピンを介してリモートの第2のプロセッサに送信するように構成される仮想GPIOインターフェースと、
前記仮想GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を仮想GPIO信号の少なくとも1つの第1のフレーム中にシリアライズするように構成される有限ステートマシンと、
オーバーサンプリングクロックのサイクルに応答して前記少なくとも1つの第1のフレームを単一の送信ピンを介して前記リモートの第2のプロセッサに送信するための手段と
を含む、集積回路。
【請求項２１】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイスに含まれる、請求項20に記載の集積回路。
【請求項２２】
前記有限ステートマシンが複数のメッセージングレジスタを含み、前記第1のプロセッサが複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限ステートマシンが前記メッセージングレジスタからの前記メッセージング信号を前記少なくとも1つの第1のフレーム中にシリアライズするようにさらに構成される、請求項20に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2014年9月11日に出願された米国仮出願第62/049,346号の利益を主張し、その出願は2015年9月10日に出願された米国特許出願第14/850,809号の出願日の優先権を主張し、両方とも参照により明細書に組み込まれる。
【０００２】
本出願は、汎用入出力(GPIO)に関し、より詳細には、一対のピンを仮想GPIOピンとして使用するように構成される集積回路に関する。
【背景技術】
【０００３】
汎用入出力(GPIO)により、集積回路の設計者が特定のアプリケーション向けにカスタマイズされ得る汎用ピンを実現することが可能になる。たとえば、GPIOピンは、ユーザのニーズに応じて出力ピンまたは入力ピンのいずれかであるようにプログラム可能である。GPIOのホストまたは周辺装置は、一般に、インターフェース要件に基づいて変化することができるピンのグループを制御する。GPIOピンは、プログラム可能なので、しばしば、マイクロプロセッサおよびマイクロコントローラのアプリケーションに含まれる。たとえば、モバイルデバイス内のアプリケーションプロセッサは、モデムプロセッサとのプロセッサ間通信(IPC)などのハンドシェイクシグナリングを行うために、いくつかのGPIOピンを使用してもよい。
【０００４】
そのようなハンドシェイクシグナリングに関して、サイドバンド信号は、プロセッサによって送信と受信との両方が行われなければならない場合、「対称」とみなされる。交換される必要があるn個の対称サイドバンド信号が存在する場合、各プロセッサは、n*2個のGPIO(所与の信号を送信する1つのGPIOおよびその信号を受信する1つのGPIO)を必要とする。たとえば、モデムプロセッサとアプリケーションプロセッサとの間の対称IPCインターフェースは、5つの信号を含む場合があり、それらは、結果として生じるIPCシグナリングに10個のGPIOピンが必要であることになる。IPC通信にはそれほど多くのGPIOピンが必要なので、製造コストが増大する。その上、IPCに充てるGPIOが多すぎると、他のシステムレベルの周辺インターフェースへのGPIOの利用度が制限される。次いで、特定のコーナ条件が侵害されることになるという点で、その問題は、プロセッサ間のメインデータバスにIPC通信を移動させることによって解決することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、過剰な数のピンを必要とせずに多数の入出力信号に適応できるGPIOアーキテクチャが、当技術分野には必要である。
【課題を解決するための手段】
【０００６】
ハイブリッド仮想GPIOアーキテクチャは、各々がプロセッサを有する2つの集積回路間の通信のために提供される。このアーキテクチャは、GPIO信号とメッセージング信号との両方に適応することで「ハイブリッド」とみなされる。前述したように、従来のGPIOシステムにおけるGPIO信号は、特定のピン専用である。対応するGPIOピンにおけるGPIO信号の受信は、受信側プロセッサへの信号を識別する。しかし、メッセージング信号は、シリアルペリフェラルインターフェース(SPI:serial peripheral interface)またはプロセス間通信(IPC:inter process communication)インターフェースなどにおける、専用受信ピンにおいて受信される。様々なメッセージング信号は、したがって、同じ専用受信ピン上で受信されてもよい。メッセージング信号間を区別するために、メッセージング信号がアドレスを含むアドレスヘッダを含むことが一般的である。受信側集積回路は、アドレスに基づいて受信したメッセージング信号を適切なレジスタにルーティングする。たとえば、1つのタイプのメッセージング信号は、ワイヤレスカードまたはGPSカードなどのインストールされたカードの識別に関連してもよい。そのようなメッセージング信号は、次いで、対応するメッセージ内容が適宜登録されてもよいように、適切なレジスタにマッピングするアドレスを有することになる。レジスタの結果として生じる内容を解釈することによって、受信側プロセッサは、次いで、インストールされたカードの識別情報を解釈することができる。他のタイプのメッセージング信号は、同様の方法で受信側集積回路内の適切なレジスタにルーティングされることになる。
【０００７】
各集積回路は、GPIO信号の送信セットを使用して他の集積回路と通信するための仮想GPIOインターフェースも含む。仮想GPIOインターフェースは、従来の方法でGPIOピンを介して送信セットの一部をリモートプロセッサに送信するように構成される。しかし、送信セットの残りの部分は、個々のGPIOピン上では送信されない。代わりに、送信セットGPIO信号の残りの部分は、ハイブリッド仮想GPIO有限ステートマシン(FSM:finite state machine)によって少なくとも1つのフレーム中にシリアライズされ、専用送信ピンを介して送信される。ハイブリッド仮想GPIO有限ステートマシンはまた、メッセージング信号を少なくとも1つのフレームまたはメッセージング信号の専用フレーム中にシリアライズするように構成される。
【０００８】
仮想GPIO信号およびメッセージング信号の送信および受信を同期させるための外部クロックの必要性をなくすために、各集積回路は、修正型Universal Asynchronous Receiver/Transmitter(UART)インターフェースも含む。各集積回路のハイブリッド仮想FSMは、仮想GPIO信号のフレームおよび/またはメッセージング信号のフレームを対応する修正型UARTインターフェースに提供するように構成される。各修正型UARTインターフェースは、オーバーサンプリングクロックを使用してフレーム内の各ビットをオーバーサンプリングし、結果として生じるサンプルを送信ピンを介してリモート集積回路内の修正型UARTインターフェースの受信ピンに送信することによって、UART送信ピンを介して各ビットを送信するように構成される。受信側修正型UARTインターフェースは、オーバーサンプリングクロックを使用して各受信ビットをサンプリングし、UARTの分野において知られているように、結果として生じるサンプルに基づいてビットを復号する。結果として生じるアーキテクチャは、単一の送信ピンおよび単一の受信ピンのみを使用して結果として生じる、仮想GPIO信号およびメッセージング信号の送信を同期させるのに外部クロックピンが必要ないので、非常に有利である。
【図面の簡単な説明】
【０００９】
【図１】各集積回路が修正型UARTインターフェースを含む、例示的なハイブリッド仮想GPIOシステムのブロック図である。
【図２Ａ】プロセッサが単一のリモートプロセッサと通信するハイブリッド仮想GPIOシステムの高レベルブロック図である。
【図２Ｂ】プロセッサが2つのリモートプロセッサと通信するハイブリッド仮想GPIOシステムの高レベルブロック図である。
【図３】図1のシステム内の修正型UARTインターフェースの高レベル回路図である。
【図４】図1のシステムの仮想GPIO/メッセージング信号フレームのフォーマットを示す図である。
【図５】図1のシステム内の仮想GPIOおよびメッセージングフレーム長をプログラムするために使用されるプログラミングフレームの対を示す図である。
【図６】図5のフレームに応答してプログラムされたフレーム長を確認するために使用される確認フレームの対を示す図である。
【図７】図1のシステムの例示的な専用仮想GPIOフレームおよび例示的な専用メッセージング信号フレームを示す図である。
【図８】仮想GPIO信号とメッセージング信号との両方を含む、図1のシステムのハイブリッドフレームを示す図である。
【図９】図1のシステム内の集積回路の動作方法のフローチャートである。
【図１０】図1のシステムに示す集積回路のうちの1つを内蔵する例示的なデバイスのブロック図である。
【図１１】中間タイミングビットを有しないフレーム、1つの中間タイミングビットを有するフレーム、および2つの中間タイミングビットを有するフレームを示す図である。
【発明を実施するための形態】
【００１０】
本発明の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって最も良く理解される。同じ参照番号は、図のうちの1つまたは複数に示された同じ要素を識別するために使用されることを了解されたい。
【００１１】
UART送信(TX)ピンと受信(RX)ピンの対がより多くの複数のGPIOピンを構成しているかのように、集積回路がそれらを使用することを可能にする、ハイブリッド仮想汎用入出力(GPIO)アーキテクチャまたはシステムが提供される。このアーキテクチャは、GPIO信号を作成するシステムレベルのアプリケーションに対して、GPIO信号がシリアライズされ仮想GPIO信号として送信されるにもかかわらず、これらのGPIO信号が従来のGPIOピン上の入出力に適応されているかのようであるという点で、仮想的であるとみなされる。言い換えれば、本明細書で開示する仮想GPIOアーキテクチャを有するシステムオンチップ(SoC)または他の集積回路は、GPIO信号と仮想GPIO信号との間で機能的な相違に遭遇しない。しかしながら、そうでなければ(GPIO信号が対称である場合)各々がそれら自体のGPIOピンの専用ペアを必要とする仮想GPIO信号を送信および受信するために、2つのピンが使用されるだけである。
【００１２】
このシステムは、仮想GPIO信号とメッセージング信号との両方に適応するという点で「ハイブリッド」とみなされる。前述したように、従来のGPIOシステムにおけるGPIO信号は、特定のピン専用である。対応するGPIOピンにおけるGPIO信号の受信は、受信側プロセッサへの信号を識別する。開示するハイブリッド仮想GPIOアーキテクチャでは、各集積回路は、仮想GPIOインターフェースに結合するプロセッサを含む。プロセッサは、仮想GPIOインターフェースにGPIO信号の送信セットを提供する。仮想GPIOインターフェースは、従来の方法で対応するGPIOピンを介してGPIO信号の送信セットの第1の部分を駆動する。仮想GPIOインターフェースは、ハイブリッド仮想GPIO有限ステートマシン(FSM)にGPIO信号の送信セットの残りの第2の部分を提供する。ハイブリッド仮想GPIO FSMは、1つまたは複数のフレーム中に編成された仮想GPIO信号の送信セット中にGPIO信号の送信セットの残りの第2の部分をシリアライズするように構成される。修正型仮想UARTインターフェースは、専用送信ピンを介してフレームを送信するように構成される。フレーム内の位置は、所与の仮想GPIO信号を、仮想GPIO信号が変換された対応するGPIO信号にリンクさせる。
【００１３】
各修正型UARTインターフェースは、システムにおける送信側集積回路内の修正型UARTインターフェースの送信ピンに結合する専用受信ピンを含む。受信側修正型UARTインターフェースは、仮想GPIO信号の受信セットを形成するために専用受信ピンを介して仮想GPIO信号の送信セットを受信し、次いで、仮想GPIO信号の受信セットは、受信側集積回路のハイブリッド仮想GPIO FSMに1つまたは複数のフレームで提供される。次いで、受信側集積回路内のハイブリッド仮想GPIO FSMは、所与の仮想GPIO信号を、受信側集積回路の仮想GPIOインターフェースに次いで与えられるGPIO信号に変換するために仮想GPIO信号の受信セット内の所与の仮想GPIO信号のフレーム位置を使用する場合があり、その結果、GPIO信号が対応するプロセッサに提供される場合がある。このことは、送信側集積回路内のプロセッサも受信側集積回路内のプロセッサも、いかなるソフトウェアの修正もハードウェアの修正も必要としないという点で非常に有利であり、GPIO信号の仮想化は、ハイブリッド仮想GPIO FSMおよび仮想GPIOインターフェース内で実行されるので、プロセッサにトランスペアレントである。
【００１４】
GPIO信号と対照的に、メッセージング信号は、従来、シリアルペリフェラルインターフェース(SPI)またはプロセス間通信(IPC)インターフェースなどにおける、専用受信ピンにおいて受信される。様々なメッセージング信号は、したがって、同じ専用受信ピン上で受信されてもよい。メッセージング信号間を区別するために、メッセージング信号がアドレスを含むアドレスヘッダを含むことが一般的である。受信側集積回路は、アドレスに基づいて受信したメッセージング信号を適切なレジスタにルーティングする。たとえば、1つのタイプのメッセージング信号は、ワイヤレスカードまたはGPSカードなどのインストールされたカードの識別に関連してもよい。そのようなメッセージング信号は、次いで、対応するメッセージ内容が適宜登録されてもよいように、適切なレジスタにマッピングするアドレスを有することになる。レジスタの結果として生じる内容を解釈することによって、受信側プロセッサは、次いで、インストールされたカードの識別情報を解釈することができる。他のタイプのメッセージング信号は、同様の方法で受信側集積回路内の適切なレジスタにルーティングされることになる。
【００１５】
メッセージング信号の送信に適応するために、各ハイブリッド仮想GPIO FSMは、対応するプロセッサのためのメッセージングレジスタのセットを含むように構成される。各プロセッサは、メッセージングレジスタにメッセージング信号の送信セットを書き込む場合がある。仮想GPIO信号の識別と同様に、メッセージング信号も、フレーム内の位置によって識別される。受信側ハイブリッド仮想GPIO有限ステートマシンは、受信したメッセージング信号を対応するメッセージングレジスタに書き込むようにそれらのメッセージング信号のフレーム位置を使用するように構成される。次いで、受信側集積回路内のプロセッサは、従来の方法で受信したメッセージング信号をメッセージングレジスタから取り出す。仮想GPIO信号の場合のように、このように、ハイブリッド仮想GPIO有限ステートマシンを介してメッセージング信号が送信および受信されることは、各プロセッサにトランスペアレントである。
【００１６】
あるハイブリッド仮想GPIO有限ステートマシンから別のハイブリッド仮想GPIO有限ステートマシンへの仮想GPIO信号およびメッセージング信号の送信と受信を同期させるために、外部クロックが使用されてもよい。しかし、外部クロックの使用は、クロックピンのコストが高くつく。クロックピンの必要性をなくすために、各ハイブリッド仮想GPIO有限ステートマシンは、修正型UARTインターフェースを介して、送信ピンに結合する。各修正型UARTインターフェースは、送信要求(RTS:Request To Send)ピンおよび送信可(CTS)ピンが不要であるという点で従来のUARTインターフェースと異なる。従来のUART信号と対照的に、GPIO信号は、比較的低帯域幅の信号であるので、フロー制御を必要としない。受信側集積回路のプロセッサが動作不可能でなければ、したがって、受信側集積回路が通常動作中に仮想GPIO信号の受信セットを常に受信する準備ができていることが仮定されてもよい。本明細書で開示する修正型UARTインターフェースは、したがって、RTSピンおよびCTSピンを介して実施される、従来のUARTフロー制御を必要としない。しかしながら、各修正型UARTインターフェースは、従来のUARTインターフェースにおいて使用されるUARTオーバーサンプリングクロックを活用する。オーバーサンプリングクロックレートは、仮想GPIO信号およびメッセージング信号に関するビットレートよりも十分に速く、その結果、これらの信号がオーバーサンプリングされる。たとえば、オーバーサンプリングクロックレートは、ビットレートの16倍であってもよい。しかしながら、代替の修正型UARTインターフェースの実装形態において、より速いまたはより遅いオーバーサンプリングクロックレートが使用されてもよいことが了解されよう。したがって、以下の説明は、一般性を失わずに、16倍のオーバーサンプリングクロックレートが使用されることを仮定する。
【００１７】
送信側修正型UARTインターフェースから受信側修正型UARTインターフェースへの通信は、比較的簡単であり、バイナリ1値を有するビットを送信するために、送信側修正型UARTインターフェースは、オーバーサンプリングクロックの16サイクルによって決定されるビット周期の期間の間、送信ピンを電源電圧VDDへ駆動する場合がある。受信側修正型UARTインターフェースは、それ自体のオーバーサンプリングクロックを使用して、ビット周期をカウントする。各受信ビットは、オーバーサンプリングクロックに従ってサンプリングされる。受信側修正型UARTインターフェースは、各受信ビットサンプルに関する二者択一の判断を行うように構成されるレシーバを含む。たとえば、受信ビットサンプルがVDD/2よりも小さい場合、受信ビットサンプルは、バイナリ0サンプルとみなされる場合がある。逆に、受信ビットサンプルがVDD/2よりも大きい場合、受信ビットサンプルは、バイナリ1サンプルとみなされる場合がある。したがって、レシーバは、ビット決定を行うことに関して、各ビット周期において、レシーバが過半数のバイナリ1サンプルを受信したか、または過半数のバイナリ0サンプルを受信したかを決定する場合がある。
【００１８】
したがって、ハイブリッド仮想GPIOシステム内の各集積回路は、仮想GPIOインターフェースと、ハイブリッド仮想GPIO有限ステートマシンと、UART送信ピンおよびUART受信ピンに結合する、対応する修正型UARTインターフェースとを含む。各集積回路のプロセッサは、ハイブリッド仮想GPIO FSMにおいて、仮想GPIOインターフェースへのGPIO信号の送信セットと、メッセージング信号へのメッセージング信号の送信セットとを提供する。GPIO信号の送信セットの第1の部分は、GPIO信号として対応するGPIOピンの第1のセットを介して仮想GPIOインターフェースからリモートプロセッサに送信されてもよい。送信側集積回路のプロセッサからのGPIO信号の送信セットの残りの第2の部分は、ハイブリッド仮想GPIO FSMに提供される。ハイブリッド仮想GPIO FSMは、GPIO信号の残りの第2の部分を仮想GPIO信号の送信セット中にシリアライズし、仮想GPIO信号の送信セットを修正型UARTインターフェースに提供し、その結果、仮想GPIO信号がフレーム内のUART送信ピンを介して送信される場合がある。ハイブリッド仮想GPIO FSMはまた、メッセージング信号の送信セットをシリアライズし、メッセージング信号のシリアライズセットを、その修正型UARTインターフェースに提供する。修正型UARTインターフェースは、メッセージング信号のシリアライズ送信セットを送信ピンを介してフレームで送信するように構成される。
【００１９】
受信側修正型UARTインターフェースにおける受信は、送信に関して論じられるものと同様に起こる。特に、送信側修正型UARTインターフェースによって送信された仮想GPIO信号の送信セットは、仮想GPIO信号の受信セットとして受信される。従来のGPIOピンを介して送信されたGPIO信号は、受信側集積回路内の対応するGPIOピン上で受信される。受信側集積回路内の仮想GPIOインターフェースは、従来の方法でGPIOピン上の受信したGPIO信号を対応するプロセッサに与える。仮想GPIO信号およびメッセージング信号のフレームは、受信側修正型UARTインターフェースによって復号され、受信側集積回路内のハイブリッド仮想GPIO FSMに提供される。受信側ハイブリッド仮想GPIO FSMは、対応するメッセージングレジスタに受信したメッセージング信号を書き込み、その結果、受信したメッセージング信号は、受信側集積回路内のプロセッサによって取り出されてもよい。受信側ハイブリッド仮想GPIO FSMは、受信した仮想GPIO信号を、仮想GPIOインターフェースに与えられるGPIO信号にデシリアライズする。仮想GPIOインターフェースは、次いで、受信側集積回路において、結果として生じる「脱仮想化(de-virtualized)」GPIO信号を対応するプロセッサに提供してもよい。
【００２０】
修正型UARTインターフェースと対照的に、従来のUARTインターフェースは、制御プロトコルとしてピンの別の対を使用する。特に、UARTインターフェースは、受信側UARTインターフェースにおいて送信可(CTS)ピン上で受信される送信要求(RTS)ピンをアサートすることによってデータを受信する準備ができていることを示す。したがって、従来のUARTインターフェースは、そのCTSピンがアサートされたのを見たときのみ、送信する。結果として生じる送信は、8ビットのフレーム内にある。従来のGPIO信号に必要なフロー制御がないので、修正型UARTインターフェースは、CTSピンおよびRTSピンが除去されるという点で従来のUARTインターフェースと異なる。さらに、修正型UARTインターフェースは、修正型UARTインターフェースの送信ピンを介して送信される仮想GPIOデータの可変サイズフレームの使用を可能にするように構成される。そのような修正は、フレームが仮想GPIO信号および/またはメッセージング信号からの各々1ビット含む場合があるという点で望ましい。ユーザは、仮想化されるべき比較的多数のGPIO信号または比較的少数のGPIO信号のみを必要とする場合がある。同様に、ユーザは、ハイブリッド仮想GPIOインターフェースからフレーム内に送信されるべき比較的多数のメッセージング信号または比較的少数のメッセージング信号を必要とする場合がある。したがって、固定フレームサイズは、ユーザのニーズに応じて極めて小さいか、または極めて大きいかのいずれかである場合がある。フレームサイズを変更するために、各ハイブリッド仮想GPIO FSMは、送信ピンを介して対応する修正型UARTインターフェースによって送信用のプログラミングフレームを生成するように構成される。メッセージング信号は、専用バスを介して普通に送信される任意のタイプの信号を含んでもよい。たとえば、メッセージング信号は、プロセッサの初期の構成に使用される集積回路間(I2C)信号を含んでもよい。仮想GPIO信号と同様に、メッセージング信号は、送信セットおよび受信セットに分割されてもよい。送信側修正型UARTインターフェースは、専用送信ピンを使用してメッセージング信号送信セットを直列に送信し、その結果、受信側修正型UARTインターフェースは、専用受信ピンを使用してメッセージング信号受信セットを直列に受信する場合がある。
【００２１】
開示するハイブリッド仮想GPIOアーキテクチャの2つの主要な実施形態または実装形態が存在する。第1の実装形態では、専用送信ピンを介して送信される各フレームは、フレームが仮想GPIO信号の送信セットを含むのか、またはメッセージング信号の送信セットを含むのかを識別するヘッダを含む。そのようなフレームは、仮想GPIO信号またはメッセージング信号のいずれかの専用であるので、本明細書では専用フレームとして示される。第2の実装形態では、フレームは、仮想GPIO信号とメッセージング信号との両方を含んでもよい。第2の実装形態のフレームは、このように、仮想GPIO信号とメッセージング信号との両方を含むので、本明細書ではハイブリッドフレームに指定される場合がある。各ハイブリッドフレームの拡張ヘッダは、仮想GPIO信号およびメッセージング信号のビット位置を識別する。フレームタイプにかかわらず、受信側ハイブリッド仮想GPIO FSMは、受信された仮想GPIO信号をデシリアライズし、結果として生じるデシリアライズされた仮想GPIO信号を仮想GPIOインターフェースに提供し、その結果、仮想GPIO信号は、従来のGPIO信号であるかのように受信側プロセッサに与えられる場合がある。同様に、受信側ハイブリッド仮想GPIO FSMは、受信したメッセージング信号をデシリアライズし、結果として生じるデシリアライズされたメッセージング信号を適切なメッセージングレジスタに書き込み、その結果、受信側プロセッサは、それらのメッセージング信号を取り出す場合がある。各送信側ハイブリッド仮想GPIO FSMは、スタートビットおよびエンドビットによって各フレームを画定する。受信側ハイブリッド仮想GPIO FSMは、送信側集積回路内のプロセッサが故障したかどうかを監視するために、各受信フレームがスタートビットとエンドビットとの両方を含むかどうかを判定する。この検出は、送信側プロセッサが動作不能になる時間を受信側プロセッサに示すので、特にソフトウェア実装用のデバッギング段階の間、非常に有利である。
【００２２】
本明細書で開示するハイブリッド仮想GPIOアーキテクチャは、モバイル電話または他の通信デバイス内のホストプロセッサと周辺集積回路との間のIPCに適応することに関して論じられる。しかしながら、本明細書で開示する仮想GPIOの回路および技法は、GPIO機能を必要とするシステムオンチップ(SoC)または特定用途向け集積回路(ASIC)に広く適用可能であることが了解されよう。ここで図面を参照すると、図1は、アプリケーションプロセッサ集積回路(IC)101およびモデムプロセッサIC105を含むハイブリッド仮想GPIOシステム100を示す。集積回路101および105は各々、仮想GPIOインターフェース103、ハイブリッド仮想GPIO FSM115、および修正型UARTインターフェース116を含む。アプリケーションプロセッサIC101内の修正型UARTインターフェース116は、回路板トレースなどの送信線を介して、モデムプロセッサIC105内の修正型UARTインターフェース116用の受信ピン112に結合する送信ピン111を駆動するように構成される。同様に、モデムプロセッサIC105内の修正型UARTインターフェース116用の送信ピン111は、アプリケーションプロセッサIC101内の修正型UARTインターフェース116用の受信ピン112に結合する。本明細書で使用する「ピン」は、集積回路が回路板または他の適切な送信線上のリードに結合するために使用するパッドまたは実際のピンなどの構造をカバーする総称である。
【００２３】
各ハイブリッド仮想GPIO FSM115は、以下に論じるGPIOの状態変化を監視する。対応する集積回路のパワーオンリセット(POR)において、各UARTインターフェース116は、仮想GPIOフレーム長およびメッセージング信号フレーム長に関して同じボーレートおよび同じ設定値を使用するように構成されてもよい。各UARTインターフェース116はまた、各UARTインターフェース116へのCPUリンクによって示される、対応する集積回路のプロセッサ(CPU)102によって構成されるソフトウェアであってもよい。
【００２４】
各プロセッサ102は、対応する仮想GPIOインターフェース103を介してGPIO信号を送信および受信するように構成される。特に、各プロセッサ102は、リモートプロセッサへの送信のためにGPIO信号の送信セットを対応する仮想GPIOインターフェース103に与える場合がある。同様に、各プロセッサ102は、リモートプロセッサから送信された対応する仮想GPIOインターフェース103からのGPIO信号の受信セットを受信する場合がある。GPIO信号の送信セットに関して、GPIO信号の第1の部分は、従来のGPIOピン125上でGPIO信号130として送信および受信される場合がある。説明を明瞭にするために、各仮想GPIOインターフェース103に関して、GPIO信号#1からGPIO信号#4までの範囲の4つのGPIO信号130のみが図1にラベリングされている。GPIO信号130の実際の数は、4つよりも多くても少なくてもよい。対応するプロセッサ102から各仮想GPIOインターフェース103に与えられるGPIO信号の送信セットの残りの部分は、従来のGPIOピン125を介して送信も受信もされない。代わりに、各仮想GPIOインターフェース103は、残りの部分を複数の仮想GPIO信号135として対応するハイブリッド仮想GPIO FSM115に提供し、その結果、これらの仮想GPIO信号は、シリアライズされ、仮想GPIO信号の1つまたは複数のフレーム内の集積回路101および105のうちの受信側に送信される場合がある。システム100では、仮想GPIO信号135のセットは、第1の仮想GPIO信号(#1)からm番目の仮想GPIO信号(#m)までの範囲である。正の整数mの値は、所与の実装形態のニーズに応じて変化してもよい。
【００２５】
さらに、各プロセッサ102は、メッセージング信号の送信セットを対応するハイブリッド仮想GPIO FSM115内のメッセージングレジスタ136のセットに書き込んでもよい。各メッセージングレジスタ136は、対応するメッセージ信号138用の特定のアドレス137に対応する。システム100では、各ハイブリッド仮想GPIO FSM115は、0レジスタ136からM番目のレジスタ136までの範囲の複数の(M+1)個のメッセージングレジスタを有するように示されている。正の整数Mの値は、所与の実装形態のニーズに応じて変化してもよい。各ハイブリッド仮想GPIO FSM115は、メッセージング信号のその送信セットと仮想GPIO信号の送信セットとを、以下にさらに説明する、対応する修正型UARTインターフェース116に与える。仮想GPIO信号135は各々、従来のGPIO信号130の場合のようにそれら自体の専用ピンを持たないことに留意されたい。これは、仮想GPIO信号135が各々それら自体のGPIOピンを要求することになる従来のGPIO実施形態と比較して、ハイブリッド仮想GPIOシステム100が集積回路101および105用のピンの大幅な削減を達成するという点で非常に有利である。
【００２６】
システム100などのハイブリッド仮想GPIOシステム内の集積回路は、ただ1つのハイブリッド仮想GPIO FSM115を含む場合があるか、または複数の外部システムとインターフェースするための複数のこれらの要素を含む場合がある。図2Aは、集積回路200が、それ自体の単一のハイブリッド仮想GPIO FSM115を含む集積回路205内のリモートプロセッサと通信するための単一のハイブリッド仮想GPIO(vGPIO) FSM115を含む、ハイブリッド仮想GPIOシステムを示す。対照的に、図2Bに示す集積回路220は、それぞれ集積回路225および230内のリモートプロセッサと通信するためのハイブリッド仮想GPIO FSM115Aおよびハイブリッド仮想GPIO FSM115Bを含む。その点において、システムオンチップ(SoC)などの集積回路は、他の集積回路とシグナリングするハイブリッド仮想GPIOに適応するのに必要な多くのハイブリッド仮想GPIO FSM115として構成されてもよい。集積回路が有する場合があるハイブリッド仮想GPIO FSM115の数にかかわらず、各ハイブリッド仮想GPIO FSM115は、図2Aに示すように、それ自体の専用送信ピン240および専用受信ピン245を使用して通信する。
【００２７】
再び図1のシステム100を参照すると、仮想GPIO信号135およびメッセージング信号138は、ハイブリッド仮想GPIO FSM115などの有限ステートマシンを介して送信および受信されるので、プロセッサ102は、それでもなお仮想GPIO信号135およびメッセージング信号136を受信することができるスリープまたは別のタイプの休止状態であってもよい。このようにして、ハイブリッド仮想GPIOシステム100は、仮想GPIOインターフェース103ごとのピンの数を有利に節約するだけでなく、低電力でもある。各プロセッサ102に関して、GPIO信号130と仮想GPIO信号135との間に相違はなく、両方とも、GPIOインターフェース103を介して、必要に応じて送信および受信されるGPIO信号として扱われる。
【００２８】
プロセッサ102は、仮想GPIO信号135のうちの選択された信号の変化に応答して、割込み信号を受信する必要がある場合がある。たとえば、モデム電力マネージャ(MPM:modem power manager)140は、割込み構成レジスタ(図示せず)を介してプログラムされた選択された仮想GPIO信号135の状態を監視する場合がある。各仮想GPIO信号135は、対応する割込み構成レジスタを有してもよい。仮想GPIO信号135がその信号変化状態に応答して割込みを生成する必要がある場合、対応する構成レジスタは、それに応じてプログラムされる。同様に、その信号が状態を変更したかどうかにかかわらず、仮想GPIO信号135が割込みを生成させない信号である場合、対応する割込み構成レジスタはまた、それに応じてプログラムされる。MPM140は有限ステートマシンを含む場合もある。したがって、ハイブリッド仮想GPIO FSM115とまったく同様に、MPM140は低電力であり、そのプロセッサ102がスリープモードまたは他の何らかの休止状態にあるかどうかにかかわらず、アクティブである。
【００２９】
仮想GPIO信号135は、送信セットおよび受信セットに再分割されてもよい。同様に、メッセージング信号136は、送信セットおよび受信セットに再分割されてもよい。対称システムでは、各セットは同じ数を有する。しかしながら、ハイブリッド仮想GPIOシステム100は、仮想GPIO信号135およびメッセージング信号136の送信セットと受信セットが異なるサイズを有する非対称シグナリングの実施形態に容易に適応できるという点で、有利であることが了解されよう。システム100が対称であるか非対称であるかにかかわらず、各ハイブリッド仮想GPIO FSM115は、送信セット内の各信号が仮想GPIOインターフェース103と対応するハイブリッド仮想GPIO FSM115との間のそれ自体のリード(図示せず)上に担持されるという点で、仮想GPIOインターフェース103から並列に仮想GPIO信号135の送信セットを受信する。対照的に、ハイブリッド仮想GPIO FSM115によるこれらの送信セットの結果として生じる送信は、単一の送信ピン111を介して行われる。
【００３０】
修正型UARTインターフェース116は、図3により詳細に示されている。対応するハイブリッド仮想GPIO FSM(図示せず)からの仮想GPIO信号またはメッセージング信号の送信セットは、シフトレジスタ305内で受信されてもよい。16×オーバーサンプリングクロック300の16サイクルごとに、シフトレジスタ305は、1ビットシフトしてオーバーサンプリングトランスミッタ310に出す。オーバーサンプリングクロック300のサイクルと送信されるべきビットのバイナリコンテンツとに応答して、オーバーサンプリングトランスミッタ310は、送信ピン111を電源電圧VDDまたはグランドのいずれかへ駆動する。たとえば、オーバーサンプリングトランスミッタ310は、バイナリ値1を有するビットを送信するためにオーバーサンプリングクロック300の16サイクルの間に送信ピンを電源電圧VDDまで充電してもよい。逆に、オーバーサンプリングトランスミッタ310は、バイナリ値0を有するビットを送信するためにオーバーサンプリングクロック300の16サイクルの間に送信ピンをグランドまで放電してもよい。
【００３１】
修正型UARTインターフェース116は、オーバーサンプリングクロック300のサイクルに応答して受信ピン112上で受信信号をサンプリングするオーバーサンプリングレシーバ315も含む。たとえば、オーバーサンプリングレシーバ315は、受信信号がバイナリ0であるか、またはバイナリ1であるかを判定するために、受信信号の各サンプルをVDD/2などのしきい値電圧と比較してもよい。このサンプルがVDD/2よりも大きい場合、オーバーサンプリングレシーバ315は、このサンプルをバイナリ1ビットのサンプルであるとみなす場合がある。逆に、このサンプルがVDD/2よりも小さい場合、オーバーサンプリングレシーバ315は、このサンプルをバイナリ0ビットのサンプルであるとみなす場合がある。デコーダ320は、オーバーサンプリングクロック300の16サイクルにわたるサンプルの過半数がバイナリ1サンプルであるか、またはバイナリ0サンプルであるかを判定することによってオーバーサンプリングレシーバ315からの結果として生じるサンプルを復号する。サンプルの過半数がバイナリ1サンプルである場合、デコーダ320は、受信ビットをバイナリ1ビットとみなす。逆に、サンプルの過半数がバイナリ0サンプルである場合、デコーダ320は、受信ビットをバイナリ0ビットとみなす。結果として生じるビットは、オーバーサンプリングクロック300の16サイクルごとに受信シフトレジスタ325中にシフトされる。対応する仮想GPIO信号135およびメッセージング信号138が比較的低帯域幅のために、前述のようにRTS制御もCTS制御も必要ないことに留意されたい。一実施形態では、修正型UARTインターフェース116は、オーバーサンプリングクロックのサイクルに応答して、少なくとも1つの第1のフレームを単一の送信ピンを介してリモートの第2のプロセッサに送信するための手段を含むものとみなされる場合がある。
【００３２】
ここで、各ハイブリッド仮想GPIO FSM115によるフレーム長制御について論じる。フレーム長は、各仮想GPIO信号135およびメッセージング信号138が、送信または受信されたフレームを用いてその位置によって識別される場合があるという点で重要である。したがって、送信側および受信側の両ハイブリッド仮想GPIO FSM115は、受信される仮想GPIO信号135およびメッセージング信号138の識別情報が確認されてもよいように同じフレーム長サイズを使用しなければならない。一実装形態では、フレームのフレームサイズは、特定の数のビット長であるようにヘッダによって決定される。例示的な専用フレーム400が、図4に示されている。ヘッダ405は、2つの機能ビット、fn_0およびfn_1を含む場合がある。一実施形態では、両方の機能ビットが0である場合、後続のビットは、vGPIO信号135である(専用フレーム400は仮想GPIO信号135専用である)。fn_0が0で、fn_1が1に等しい場合、後続のビットは、メッセージング信号138である場合がある(専用フレーム400はメッセージング信号138専用である)。fn_0が1で、fn_1が0に等しい場合、後続のビットは、専用フレーム400の長さをプログラムするか、または変化させる場合がある。同様に、両方の機能ビットが1である場合、専用フレーム400内の後続のビットは、前に変化した所望のフレーム長のリモートプロセッサによる確認を表す。仮想GPIO信号の送信セット(または、メッセージング信号の送信セット)がこの固定されたフレームサイズ未満である場合、各専用フレーム400内の未使用ビットは、ドントケア値である場合がある。代替として、各ハイブリッド仮想GPIO FSM115は、所与のアプリケーションに必要なビットの数に応じて、送信されるフレームのサイズを変更するように構成される場合がある。
【００３３】
完全な専用フレーム400の受信を検出するために、各修正型UARTインターフェース116は、専用フレーム400のスタートビット406の受信後、UARTオーバーサンプリングクロックサイクルの数をカウントする論理回路(図示せず)を含んでもよい。たとえば、専用フレーム400のフレーム長が10ビットであると仮定されたい。その場合、論理回路は、スタートビット406の受信後、オーバーサンプリングクロック300の160サイクルをカウントする。オーバーサンプリングクロックのさらに160サイクルを待った後、次いで、修正型UARTインターフェース116は、エンドビットすなわちストップビット410の受信を予想する。それに応じてストップビット410が検出される場合、次いで、修正型UARTインターフェース116は、対応するハイブリッド仮想GPIO FSM115を仮想GPIO信号135またはメッセージング信号138の完全なフレームによってストローブしてもよい。次いで、仮想GPIO信号135のラッチされた受信セットは、前述のように、仮想GPIOインターフェース103に与えられる場合がある。
【００３４】
スタートビット406およびストップビット410による各専用フレーム400のこのフレーミングは、その場合に、各プロセッサ102が追加のいかなる専用ピンも必要とすることなくリモートプロセッサの健全性を監視することができるという点で有利である。たとえば、各修正型UARTインターフェース116は、(仮想GPIO信号135の送信セットに関して前の状態に対する現在の状態に変化がない)デフォルト状態の間、その送信ピン111を電源電圧VDDに弱く引くように構成されてもよい。スタートビット406は、スタートビット406の継続時間の間、修正型UARTインターフェース116がその送信ピン111を接地してもよい、そのような一実施形態に関する論理0である。このように、各受信側修正型UARTインターフェース116は、その受信ピン112が放電されたことを検出することによってスタートビット406の受信を容易に検出する場合がある。プロセッサ102が、その送信ピン111をグランドに不適切に引くように失敗した可能性がある。したがって、受信側集積回路内の修正型UARTインターフェース116は、これをスタートビットとして検出し、それに応じて専用フレーム400のエンドに向かってカウントし始める。しかし、この実施形態では、ストップビット410は論理1であり、その結果、フレーム送信のエンドをシグナリングするためにストップビット410の継続時間の間、各修正型UARTインターフェース116は、その送信ピン111を電源電圧VDDまで充電する。受信側ハイブリッド仮想GPIO FSM115がスタートビット406であるとみなされるものを検出しているようにプロセッサ102が失敗した場合、ストップビット410が検出されず、その結果、受信側ハイブリッド仮想GPIO FSM115は、それに応じて、そのプロセッサ102にリモートプロセッサの失敗を通知する場合がある。
【００３５】
専用フレーム400の利点を考慮すると、2つの機能ビットのオーバヘッドだけで、様々なメッセージング信号138および仮想GPIO信号135がたった1つの専用送信ピン111を介して送信される場合がある。専用フレーム長をプログラムするために専用フレーム400が使用されるとき、フレームは、プログラミングフレームに指定される場合もある。専用フレーム長を設定するための例示的なプログラミングフレームが図5に示されている。プログラミングフレーム500は、仮想GPIO信号専用のフレームの長さを設定する。同様に、プログラミングフレーム505は、メッセージング信号専用のフレームのフレーム長を設定する。フレーム長(および、したがって各プログラミングフレームの長さ)を定義するために使用されるビット数は、あらかじめ定義される。したがって、ハイブリッド仮想GPIO FSM115は、(前述のように、1に等しいfn_0および0に等しいfn_1などの)プログラミング長が設定されていることを示すヘッダ405を見て、次いで後続のフレーム本体からフレーム長を読み込むことになる。その点において、ハイブリッド仮想GPIO FSM115は、専用仮想GPIOフレームまたは専用メッセージングフレームの長さがプログラムされているのかを知る必要がある。したがって、フレーム500および505をプログラミングするための各ヘッダ405には、フレームタイプビット510が続く場合がある。たとえば、1に等しいフレームタイプビット510は、専用仮想GPIOフレーム長がプログラムされていることを意味してもよいが、0に等しいフレームタイプビット510は、専用メッセージング信号フレーム長がプログラムされていることを意味してもよい。一実施形態では、各プログラミングフレーム500および505は、ビット0からビット4までの範囲の5つのプログラミングビットを含む。各ビットは、その名前によって識別されるように、2のべき乗の係数である。言い換えれば、ビット0は、20を乗算するための係数であり、ビット1は、21を乗算するための係数であり、ビット2は、22を乗算するための係数であり、ビット3は、23を乗算するための係数であり、ビット4は、24を乗算するための係数である。5つのプログラミングビットは、したがって、0から31までのフレーム長をプログラムすることができる。追加のプログラミングビットは、63などまでのフレーム長のプログラミングを可能にすることになる。図5では、プログラミングフレーム500のプログラミングビットは、新しい専用仮想GPIOフレーム長を10ビットに設定する。同様に、プログラミングフレーム505のプログラミングビットは、新しい専用メッセージングフレーム長を14ビットに設定する。
【００３６】
受信側ハイブリッド仮想GPIO FSM115は、フレーム500または505などのプログラミングフレームを受信すると、確認フレームを使用して、定義されたフレーム長を確認することに進んでもよい。例示的な確認フレームは、図6に示されている。確認フレーム600は仮想GPIO確認フレームであるが、フレーム605はメッセージング信号確認フレームである。各確認フレーム600および605は、機能ビットが確認フレーム(前述のように、1に等しいfn_0および1に等しいfn_1など)としてフレームを識別するヘッダ405を含む。ヘッダ405に続くフレームタイプビット610は、確認フレームタイプを識別する。たとえば、仮想GPIO確認フレーム600は、論理1に等しいフレームタイプビット610によって識別される。逆に、メッセージング信号確認フレーム605は、論理0に等しいフレームタイプビット610によって識別される場合がある。フレームタイプビット610に続くプログラミングビットは、図5に関して論じたように、対応するプログラミングフレーム500または505内のプログラミングビットに等しい。
【００３７】
したがって、プログラミングフレームおよび確認フレームを介してフレーム長がプログラムされると、仮想GPIO信号135の専用フレーム700またはメッセージング信号138の専用フレーム705は、図7に示すように送信される場合がある。図1を再び参照すると、m個の仮想GPIO信号135およびM+1個のメッセージング信号138が存在することを思い出されたい。フレーム700は、したがって、たった1つのGPIOポート(m個の仮想GPIO信号135のうちの1つ)専用になることができるか、または、m個のGPIO信号135から各々1ビットを含むことができる。言い換えれば、様々なポートに従ってGPIOワードを直列に送信することができるか、または、GPIOワードを並列に送信することができる。同じ直列/並列の考慮事項は、メッセージング信号に適用される。各専用フレーム700および705が複数のポートを担持しているか、またはたった1つのポートを担持しているかにかかわらず、ヘッダ405は、専用フレームが仮想GPIOフレームであるのか、またはメッセージング信号フレームであるのかを識別する。
【００３８】
仮想GPIO信号135およびメッセージング信号138を送信するために別個の専用フレームを使用するのではなく、これらの信号は、ハイブリッドフレームが仮想GPIO信号135とメッセージング信号136との両方を含むハイブリッド仮想GPIOシステムの代替実施形態において組み合わされてもよい。たとえば、図8は、ヘッダ405および拡張ヘッダ805を含む例示的なハイブリッドフレーム800を示す。拡張ヘッダ805は、拡張ヘッダ805に続いて、ストップビット410の前にある、メッセージング信号ビットおよび仮想GPIOビットのビット位置を示す。レイテンシ要件に応じて、メッセージビット810のセットまたは仮想GPIOビット815のセットのいずれかが、フレーム本体内の最初のビットであってもよい。いくつかの実施形態では、拡張ヘッダ805は、CRCビットなどの誤り訂正ビットを含んでもよい。したがって、残りのビットは、残りのビットカテゴリに属することがデフォルトで知られているので、拡張ヘッダ805は、単に、仮想GPIOビット815のみまたはメッセージビット810のみの位置および長さを識別する必要があることに留意されたい。
【００３９】
ここで、システム100内の集積回路101および105のうちのいずれかに関する動作方法について、図9のフローチャートに関して論じる。本方法は、第1のプロセッサから仮想GPIOインターフェースにおいてGPIO信号の送信セットを受信する動作900を含む。GPIO信号130および仮想GPIO信号135中に形成される、対応するプロセッサ102からの各仮想GPIOインターフェース103におけるGPIO信号の送信セットの受信は、動作900の一例である。本方法は、GPIO信号の送信セットの第1の部分を専用GPIOピンを介してリモートの第2のプロセッサに送信する動作905も含む。GPIOピン125を介した集積回路101から集積回路105内のプロセッサ102へのGPIO信号130の送信は、動作905の一例である。本方法は、仮想GPIO信号のフレーム中にGPIO信号の送信セットの残りの第2の部分をシリアライズする動作910も含む。ハイブリッド仮想GPIO FSM115内の仮想GPIO信号135のシリアル化は、動作910の一例である。最終的に、本方法は、修正型UARTインターフェースに関するオーバーサンプリングクロックのサイクルに応答して仮想GPIO信号のフレームをUART送信ピンを介してリモートの第2のプロセッサに送信する動作915を含む。図1、図4、および図8に関して論じた、修正型UARTインターフェースを介した、また送信ピン111を介した仮想GPIO信号135の専用フレーム400またはハイブリッドフレーム800の送信は、動作915の一例である。
【００４０】
図1のシステム100内の各集積回路101および105は、図10に示すように、システムオンチップ(SoC)205としてデバイス1000に組み込まれてもよい。デバイス1000は、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、ハンドヘルドゲーミングデバイス、または他の適切なデバイスを含んでもよい。SoC205は、DRAMなどのメモリ1020およびディスプレイコントローラ1025にも結合するシステムバス1015を介してセンサなどの周辺デバイス210と通信する。今度は、ディスプレイコントローラ1025は、ディスプレイ1035を駆動するビデオプロセッサ1030に結合する。
【００４１】
専用フレームおよびハイブリッドフレームに関して論じたフレームストラクチャが、ハミング符号などのエラー訂正符号を含むように修正される場合があることが了解されよう。さらに、本明細書で論じたフレームは、送信側修正型UARTインターフェースのオーバーサンプリングクロックレートと、受信側修正型UARTインターフェースのオーバーサンプリングクロックレートとの間の非同時性に対処するために中間タイミングビットを含むように修正されてもよい。フレームサイズが比較的短い場合、結果として生じる非同時性は、比較的害が少ない場合がある。たとえば、図11に示すフレーム1100は、スタートビット406とストップビット410との間の8データビット(仮想UARTビットまたはメッセージング信号ビットであってもよい)のペイロード長を有する。初期のデータビットD0から最終的なデータビットD7までの8データビットが、フレーム1100のデータペイロードを形成するように構成される。同期された16×オーバーサンプリングクロックレートにおいて、受信側修正型UARTインターフェースは、フレーム1100のデータペイロードにわたって128回サンプリングする。しかし、オーバーサンプリングクロックレートがあまりにも遅い場合、受信側修正型UARTインターフェースは、代わりに、データペイロードにわたってちょうど127回サンプリングする場合があり、その結果、128番目のサンプルは、データビットD7の代わりにストップビット410から誤って取得される。逆に、オーバーサンプリングクロックレートは、受信側修正型UARTインターフェースにおいてあまりにも速い場合がある。この場合、結果として生じるエラーは、ほんの一握りの誤ったサンプルを含むという点で軽微なものである。
【００４２】
しかしながら、フレーム長が増加するので、誤ったサンプルの数は増加する可能性がある。受信側修正型UARTインターフェースのオーバーサンプリングクロックレートを、送信側UARTインターフェースのオーバーサンプリングクロックレートと同期させたままにするために、中間タイミングビット1110は、図11のフレーム1105で示すデータペイロードに挿入される場合がある。送信側集積回路と受信側集積回路との両方は、フレーム送信前に中間タイミングビットの位置およびそのバイナリ値によって構成される。そのような構成は、前に論じたプログラミングフレームおよび確認フレームに関するものと同様に実行されてもよい。したがって、受信側修正型UARTインターフェースは、中間タイミングビット1110がサンプリングされる前にデータペイロードのいくつのサンプルを取得すべきかを知る。フレーム1105では、中間タイミングビット1110は、中間タイミングビット1110をサンプリングする前に、(16×オーバーサンプリングレートが使用されると仮定して)受信側修正型UARTインターフェースが128個のサンプルを取得するようにデータビットD7に続く。受信側修正型UARTインターフェースは、中間タイミングビット1110をサンプリングする前に、所望の数よりも多いまたは少ないサンプルを取得した場合、それに応じて、そのオーバーサンプリングクロックレートを調整してもよい。中間タイミングビット1110の後に、追加のスタートビット406が挿入される場合がある。フレームサイズが増加するとき、同時性を維持するために追加の中間タイミングビット1110が挿入されてもよい。たとえば、図11に示すフレーム1115は、2つの中間ストップビット1110を含む。フレームサイズが増加するとき、フレームに3つ以上の中間タイミングビット1110を挿入してもよいことが了解されよう。
【００４３】
当業者には現時点で了解されるように、目下の特定の応用例に応じて、本開示のデバイスの材料、装置、構成および使用方法において、また、それらに対して、多くの修正、代替、および変形を、その範囲から逸脱することなく行うことができる。これに照らして、本明細書において図示および説明されている特定の実施形態はそのいくつかの例としてのものにすぎないため、本開示の範囲はそれらの特定の実施形態の範囲に限定されるべきではなく、むしろ、下記に添付されている特許請求の範囲およびそれらの機能的な均等物の範囲と完全に同等であるべきである。
【符号の説明】
【００４４】
100  ハイブリッド仮想GPIOシステム
101  アプリケーションプロセッサ集積回路
102  プロセッサ
103  仮想GPIOインターフェース
105  モデムプロセッサIC
111  送信ピン
112  受信ピン
115  ハイブリッド仮想GPIO FSM、vGPIO FSM
116  修正型UARTインターフェース
125  従来のGPIOピン
130  GPIO信号
135  仮想GPIO信号
136  メッセージングレジスタ
137  アドレス
138  メッセージ信号
140  モデム電力マネージャ
200  集積回路
205  集積回路
210  周辺デバイス
220  集積回路
225  集積回路
230  集積回路
240  専用送信ピン
245  専用受信ピン
300  オーバーサンプリングクロック
305  シフトレジスタ
310  オーバーサンプリングトランスミッタ
315  オーバーサンプリングレシーバ
320  デコーダ
325  受信シフトレジスタ
400  専用フレーム
405  ヘッダ
406  スタートビット
410  エンドビット、ストップビット
500  プログラミングフレーム
505  プログラミングフレーム
510  フレームタイプビット
600  仮想GPIO確認フレーム
605  メッセージング信号確認フレーム
610  フレームタイプビット
700  仮想GPIO信号の専用フレーム
705  メッセージング信号の専用フレーム
800  ハイブリッドフレーム
805  拡張ヘッダ
810  メッセージビット
815  仮想GPIOビット
1000  デバイス
1015  システムバス
1020  メモリ
1025  ディスプレイコントローラ
1030  ビデオプロセッサ
1035  ディスプレイ
1100  フレーム
1105  データペイロード
1110  中間タイミングビット、中間ストップビット
1115  フレーム
【図１】
2017528830.tif 000003
【図２Ａ】
2017528830.tif 000004
【図２Ｂ】
2017528830.tif 000005
【図３】
2017528830.tif 000006
【図４】
2017528830.tif 000007
【図５】
2017528830.tif 000008
【図６】
2017528830.tif 000009
【図７】
2017528830.tif 000010
【図８】
2017528830.tif 000011
【図９】
2017528830.tif 000012
【図１０】
2017528830.tif 000013
【図１１】
2017528830.tif 000014
【手続補正書】
【提出日】平成29年3月14日(2017.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のプロセッサと、
複数のGPIOピンと、
前記プロセッサからGPIO信号の送信セットを受信し、かつ前記送信セットの第1の部分を前記GPIOピンを介してリモートの第2のプロセッサに送信するように構成される仮想GPIOインターフェースと、
前記仮想GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を仮想GPIO信号の少なくとも1つの第1のフレーム中にシリアライズするように構成される有限ステートマシンと、
オーバーサンプリングクロックのサイクルに応答して単一のUART送信ピンを介して仮想GPIO信号の可変サイズのフレームを前記リモートの第2のプロセッサに送信するために修正された修正型汎用非同期レシーバ/トランスミッタ(UART)インターフェースであって、フロー制御ピンを有しない修正型汎用非同期レシーバ/トランスミッタ(UART)インターフェースと
を含む、集積回路。
【請求項２】
前記修正型UARTインターフェースが、前記少なくとも1つのフレーム内の1ビット当りの前記オーバーサンプリングの16サイクルに応答して前記少なくとも1つの第1のフレームを前記リモートプロセッサに送信するように構成される、請求項1に記載の集積回路。
【請求項３】
前記有限ステートマシンが複数のメッセージングレジスタを含み、前記第1のプロセッサが複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限ステートマシンが前記メッセージングレジスタからの前記メッセージング信号を少なくとも1つの第2のフレーム中にシリアライズするようにさらに構成され、前記修正型UARTインターフェースが前記オーバーサンプリングクロックのサイクルに応答して前記UART送信ピンを介して前記少なくとも1つの第2のフレームを前記リモートの第2のプロセッサに送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項４】
前記有限ステートマシンが、前記仮想GPIO信号専用である前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項3に記載の集積回路。
【請求項５】
前記有限ステートマシンが、前記メッセージング信号専用である前記少なくとも1つの第2のフレームを識別するためにヘッダを前記少なくとも1つの第2のフレームに付加するようにさらに構成される、請求項3に記載の集積回路。
【請求項６】
前記有限ステートマシンが複数のメッセージングレジスタを含み、前記第1のプロセッサが複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限ステートマシンが前記メッセージングレジスタからの前記メッセージング信号を前記少なくとも1つの第1のフレーム中にシリアライズするようにさらに構成される、請求項1に記載の集積回路。
【請求項７】
前記有限ステートマシンが、前記仮想GPIO信号と前記メッセージング信号との両方を含むハイブリッドフレームである前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項6に記載の集積回路。
【請求項８】
前記有限ステートマシンが、前記少なくとも1つの第1のフレーム内の前記仮想GPIO信号の位置を識別し、かつ前記少なくとも1つの第1のフレーム内の前記メッセージング信号の位置を識別するために拡張ヘッダを前記少なくとも1つの第1のフレームに付加するようにさらに構成される、請求項6に記載の集積回路。
【請求項９】
前記有限ステートマシンが前記少なくとも1つの第1のフレームの長さを識別するプログラミングフレームを形成するようにさらに構成され、前記修正型UARTインターフェースが前記オーバーサンプリングクロックのサイクルに応答して前記UART送信ピンを介して前記プログラミングフレームを前記リモートの第2のプロセッサに送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項１０】
前記修正型UARTインターフェースが、前記UARTオーバーサンプリングクロックのサイクルに応答してUART受信ピンを介して前記少なくとも1つの第1のフレームの前記長さを確認する確認フレームを受信するようにさらに構成される、請求項9に記載の集積回路。
【請求項１１】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項9に記載の集積回路。
【請求項１２】
前記修正型UARTインターフェースが、前記UARTオーバーサンプリングクロックのサイクルに応答して前記UART受信ピンを介して前記リモートの第2のプロセッサからの仮想GPIO信号の少なくとも1つの第2のフレームを受信するようにさらに構成される、請求項9に記載の集積回路。
【請求項１３】
前記集積回路がアプリケーションプロセッサ集積回路である、請求項1に記載の集積回路。
【請求項１４】
第1のプロセッサから仮想GPIOインターフェースにおいてGPIO信号の送信セットを受信するステップと、
GPIO信号の前記送信セットの第1の部分を専用GPIOピンを介してリモートの第2のプロセッサに送信するステップと、
GPIO信号の前記送信セットの残りの第2の部分を仮想GPIO信号の少なくとも1つの第1のフレーム中にシリアライズするステップと、
修正型UARTインターフェースに関するオーバーサンプリングクロックのサイクルに応答してフロー制御なしに仮想GPIO信号の前記少なくとも1つの第1のフレームをUART送信ピンを介して前記リモートの第2のプロセッサに送信するステップと
を含む、方法。
【請求項１５】
前記第1のプロセッサからの複数のメッセージング信号を複数のメッセージングレジスタに書き込むステップと、
前記複数のメッセージングレジスタからの前記メッセージング信号を少なくとも1つの第2のフレーム中にシリアライズするステップと、
前記オーバーサンプリングクロックのサイクルに応答してメッセージング信号の前記少なくとも1つの第2のフレームを前記UART送信ピンを介して前記リモートの第2のプロセッサに送信するステップと
をさらに含む、請求項14に記載の方法。
【請求項１６】
前記仮想GPIO信号専用である前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記メッセージング信号専用である前記少なくとも1つの第2のフレームを識別するためにヘッダを前記少なくとも1つの第2のフレームに付加するステップをさらに含む、請求項15に記載の方法。
【請求項１８】
前記第1のプロセッサからの複数のメッセージング信号を複数のメッセージングレジスタに書き込むステップと、
前記複数のメッセージングレジスタからの前記メッセージング信号を少なくとも1つの第1のフレーム中にシリアライズするステップと
をさらに含む、請求項14に記載の方法。
【請求項１９】
前記仮想GPIO信号と前記メッセージング信号との両方を含むハイブリッドフレームとして前記少なくとも1つの第1のフレームを識別するためにヘッダを前記少なくとも1つの第1のフレームに付加するステップをさらに含む、請求項18に記載の方法。
【国際調査報告】
2017528830.tif 000015
2017528830.tif 000016