(57)【特許請求の範囲】
【請求項１】
第1のプロセッサと、
複数のメッセージング信号レジスタであって、前記第1のプロセッサが、メッセージング信号の送信セットを前記メッセージング信号レジスタ内に書き込むように構成された、複数のメッセージング信号レジスタと、
複数のGPIOピンと、
前記第1のプロセッサから信号の第1のセットを受信し、前記複数のGPIOピンを介してリモートプロセッサにGPIO信号として前記信号の第1のセットの一部を送信するように構成されたGPIOインターフェースと、
専用送信ピンと、
仮想GPIO信号を含むものとして第1のフレームを識別するように構成されたヘッダを含む前記第1のフレーム内で、前記GPIOインターフェースから前記信号の第1のセットの残りの部分を受信し、前記専用送信ピンを介して前記リモートプロセッサに仮想GPIO信号の送信セットとして前記残りの部分を直列送信するように構成された有限状態機械(FSM)とを備え、前記FSMが、前記専用送信ピンを介して前記リモートプロセッサに前記メッセージング信号を含むものとして第2のフレームを識別するように構成されたヘッダを含む前記第2のフレーム内で前記メッセージング信号レジスタから取得した前記メッセージング信号の送信セットを直列送信するようにさらに構成され、前記FSMが、前記第1のフレームおよび前記第2のフレームの長さをプログラムするヘッダを有する第3のフレームを前記リモートプロセッサに前記専用送信ピンを介して直列送信するようにさらに構成された、集積回路。
【請求項２】
専用受信ピンをさらに備え、前記FSMが、前記専用受信ピンを介して前記リモートプロセッサから仮想GPIO信号の受信セットを直列受信し、前記GPIOインターフェースに前記仮想GPIO信号の受信セットを提供するようにさらに構成された、請求項1に記載の集積回路。
【請求項３】
前記GPIOインターフェースが、前記GPIOピンからGPIO信号の受信セットを受信し、前記第1のプロセッサに前記GPIO信号の受信セットを送信するようにさらに構成された、請求項2に記載の集積回路。
【請求項４】
前記第1のプロセッサが、アプリケーションプロセッサまたはモデムプロセッサを備える、請求項1に記載の集積回路。
【請求項５】
前記FSMが、並列入力直列出力(PISO)シフトレジスタと、直列入力並列出力(SIPO)シフトレジスタとを備える、請求項2に記載の集積回路。
【請求項６】
前記FSMが、前記第1のフレームおよび第2のフレームが開始ビットおよび終了ビットによって各々画定されるように、前記第1のフレームおよび前記第2のフレームを直列送信するようにさらに構成された、請求項2に記載の集積回路。
【請求項７】
前記FSMが、前記リモートプロセッサからの受信フレーム内の終了ビットを受信することの失敗の検出によって、前記リモートプロセッサの失敗を検出するようにさらに構成された、請求項6に記載の集積回路。
【請求項８】
前記FSMが、外部クロックのサイクルに応答して、前記仮想GPIO信号の送信セットおよび前記メッセージング信号の送信セットを直列送信するようにさらに構成された、請求項3に記載の集積回路。
【請求項９】
前記FSMが、前記外部クロックの第1のクロックエッジに応答して前記信号の送信セットを直列送信し、前記外部クロックの第2のクロックエッジに応答して前記受信セットを直列受信するようにさらに構成された、請求項8に記載の集積回路。
【請求項１０】
前記FSMが、パルス幅変調信号として前記信号の送信セットを直列送信するようにさらに構成された、請求項3に記載の集積回路。
【請求項１１】
前記FSMが、発振器と、前記発振器からの発振をカウントする少なくとも1つのカウンタとを含み、前記FSMが、前記少なくとも1つのカウンタからのカウントに応答して各パルス幅変調信号のためのパルス幅を決定するようにさらに構成された、請求項10に記載の集積回路。
【請求項１２】
前記発振器が、リング発振器である、請求項11に記載の集積回路。
【請求項１３】
前記FSMが、第1のパルス幅または第2のパルス幅のいずれかを有するように各パルス幅変調信号を生成するようにさらに構成され、前記第2のパルス幅が、前記第1のパルス幅よりも大きい、請求項10に記載の集積回路。
【請求項１４】
第1のプロセッサからGPIOインターフェースにおいてGPIO信号のセットを受信するステップと、
前記GPIOインターフェースによって、専用GPIOピンを介してリモートプロセッサに前記GPIO信号のセットの一部を送信するステップと、
有限状態機械(FSM)によって、仮想GPIO信号を含むものとして第1のフレームを識別するように構成されたヘッダを含む前記第1のフレーム内で、仮想GPIO信号として前記リモートプロセッサに前記GPIO信号のセットの残りの部分を、専用送信ピンを介して直列送信するステップと、
前記FSMによって、前記第1のプロセッサによって書き込まれたメッセージング信号レジスタからのメッセージング信号を取得し、前記メッセージング信号を含むものとして第2のフレームを識別するように構成されたヘッダを含む前記第2のフレーム内で、前記リモートプロセッサに前記専用送信ピンを介して、前記取得したメッセージング信号を直列送信するステップと、
前記FSMによって、前記第1のフレームおよび前記第2のフレームの長さをプログラムするものとして第3のフレームを識別するヘッダを含む前記第3のフレームを、前記リモートプロセッサに前記専用送信ピンを介して直列送信するステップと
を備える方法。
【請求項１５】
前記FSMによって、専用受信ピンを介して前記リモートプロセッサから仮想GPIO信号の受信セットを直列受信するステップであって、前記仮想GPIO信号の受信セットが、デシリアライズされて前記GPIOインターフェースを介して前記第1のプロセッサに提供される、ステップと、
前記GPIOインターフェースによって、前記専用GPIOピンを介して前記リモートプロセッサからGPIO信号の受信セットを受信するステップであって、前記GPIO信号の受信セットが、前記第1のプロセッサに提供される、ステップと
をさらに備える、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2014年4月21日に出願された米国仮特許出願第61/982,286号の利益を主張し、それは2014年11月5日に出願された米国特許出願第14/533,431号の利益を主張し、両方とも全体が参照により本明細書に組み込まれる。
【０００２】
本出願は、汎用入出力(GPIO)に関し、より詳細には、一対のピンを仮想GPIOピンとして使用するように構成された集積回路に関する。
【背景技術】
【０００３】
汎用入出力(GPIO)により、集積回路の設計者が特定のアプリケーション向けにカスタマイズされ得る汎用ピンを実現することが可能になる。たとえば、GPIOピンは、ユーザのニーズに応じて出力ピンまたは入力ピンのいずれかであるようにプログラム可能である。GPIOのモジュールまたは周辺機器は、一般に、インターフェース要件に基づいて変化することができるピンのグループを制御する。GPIOピンは、プログラム可能なので、一般に、マイクロプロセッサおよびマイクロコントローラのアプリケーションに含まれる。たとえば、モバイルデバイス内のアプリケーションプロセッサは、いくつかのGPIOピンを使用して、モデムプロセッサとのプロセッサ間通信(IPC)などの、ハンドシェイクシグナリングを行うことができる。
【０００４】
そのようなハンドシェイクシグナリングに関して、側波帯信号は、プロセッサによって送信と受信の両方が行われなければならない場合、「対称」と考えられる。交換される必要があるn個の対称側波帯信号が存在する場合、各プロセッサは、n*2個のGPIO(所与の信号を送信する1つのGPIOおよびその信号を受信する1つのGPIO)を必要とする。たとえば、モデムプロセッサとアプリケーションプロセッサとの間の対称IPCインターフェースは、5つの信号を含む場合があり、それらは、結果として生じるIPCシグナリングに10個のGPIOピンが必要であることになる。IPC通信にはそれほど多くのGPIOピンが必要なので、製造コストが増大する。その上、IPCに充てるGPIOが多すぎると、他のシステムレベルの周辺インターフェースへのGPIOの利用度が制限される。特定のコーナ条件が侵害されることになるという点で、その問題は、プロセッサ間のメインデータバスにIPC通信を移動させることによっては解決することができない。
【０００５】
GPIO信号に加えて、専用の送信ピンおよび受信ピンを有するSPIバスを介するなどして、外部デバイスとメッセージングすることがプロセッサには慣例的である。GPIO信号とは対照的に、そのようなメッセージング信号は、特定のピンに専用ではない。言い換えれば、様々なメッセージが、専用のメッセージング送信ピンを介して送信される可能性がある。受信デバイスは、GPIO信号とは対照的に、メッセージングが関連するものをアプリオリには知らず、GPIO信号は、特定のGPIOピンに専用であるので、GPIO信号が対応するGPIOピン上で受信されるということが、プロセッサにそれを識別する。しかし、メッセージング信号の場合はそうではない。そのような信号は、プロセッサが受信したメッセージング信号を適切なレジスタにルーティングするために使用するアドレスビットを有する。登録に際して、プロセッサは、次いで、登録されたメッセージを解釈しなければならない。専用のメッセージング送信ピンおよび専用のメッセージング受信ピンが必要な結果として、製造コストを大幅に追加する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国仮出願第61/907,974号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、過剰な数のピンを必要とすることなく、多数の入力/出力信号に対処することができるハイブリッド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信号のセットと、1つまたは複数のメッセージング信号とを備える。したがって、各集積回路は、GPIO信号のセットに対応するGPIOピンのセットを含む。これらのGPIOピンは、GPIO技術において知られているような従来の方法でGPIO信号のセットを送信するために使用される。
【００１０】
GPIO信号のセットとは対照的に、仮想GPIO信号のセットおよびメッセージング信号は、GPIOピンを介して送信されない。代わりに、各集積回路は、専用送信ピンおよび専用受信ピンを使用して、仮想GPIO信号のセットおよびメッセージング信号を送受信する。その点において、仮想GPIO信号のセットは送信セットおよび受信セットを含む。各集積回路内の有限状態機械(FSM)は、専用送信ピンを介してリモートプロセッサに、送信セットを直列に送信するように構成される。有限状態機械はさらに、専用受信ピンを介してリモートプロセッサから、仮想GPIO信号の受信セットを直列に受信するように構成される。
【００１１】
メッセージング信号は、通常、様々なメッセージング信号によって共有される専用バスを介して送信される任意のタイプの信号を備えてもよい。たとえば、メッセージング信号は、プロセッサの初期設定のために使用される集積回路間(I2C)信号を備えてもよい。仮想GPIO信号と同様に、メッセージング信号は、送信セットおよび受信セットに分割されてもよい。FSMは、専用送信ピンを使用してメッセージング信号送信セットを直列送信し、専用受信ピンを使用してメッセージング信号受信セットを直列受信する。
【００１２】
プロセッサは、ハイブリッドGPIOインターフェースに信号の第1のセットを提供する。ハイブリッドGPIOインターフェースから、信号の第1のセットの一部は、対応するGPIOピンの第1のセットを介して、GPIO信号の第1のセットとしてリモートプロセッサに送信される。プロセッサからの信号の第1のセットの残りの部分は、FSMと並列のハイブリッドGPIOインターフェースによって提供される。残りの部分の内容に応じて(GPIO対メッセージング信号)、FSMは、次いで、専用送信ピンを介して、仮想GPIO信号の送信セットとして残りの部分を直列送信することができる。
【００１３】
ハイブリッドGPIOインターフェースはまた、対応するGPIOピンの第2のセットを介して、リモートプロセッサからGPIO信号の第2のセットを受信する。動作モードに応じて、FSMは、リモートプロセッサから仮想GPIO信号の受信セットまたはメッセージング信号の受信セットを直列受信し、ハイブリッドGPIOインターフェースと並列に受信セットを提供する。
【００１４】
開示されたハイブリッド仮想GPIOアーキテクチャのための2つの主要な実施形態が存在する。第1の実施形態において、専用送信ピンを介して送信される各フレームは、フレームが仮想GPIO信号の送信セットまたはメッセージング信号の送信セットのどちらを備えるのかを識別するヘッダを含む。ヘッダはまた、対応するフレームが受信側において設定されるべきvGPIOストリーム長を識別することになることを示してもよく、または、所望のvGPIOストリーム長の確認を示してもよい。フレームサイズは、したがって、可変であり、結果として生じるストリーム長決定フレームによって決定される。第2の実施形態において、ヘッダは、拡張されたヘッダが仮想GPIO信号およびメッセージング信号のビット位置を識別するように、仮想GPIO信号とメッセージング信号の両方を含むフレームのために拡張される。ハイブリッドGPIOインターフェースは、次いで、リモートプロセッサからのGPIO信号およびメッセージング信号の第2のセットを備える信号の第2のセットを受信プロセッサに提供することができる。
【００１５】
FSMは、各々が開始ビットおよび終了ビットで画定されたフレーム化された状態で仮想GPIO信号およびメッセージング信号の送信セットを送信する。リモートプロセッサ内のFSMは、したがって、送信されたフレームを、仮想GPIO信号およびメッセージング信号のその受信セットとして受信する。FSMが開始ビットと終了ビットの両方を含む完全なフレームを受信したかどうかを監視することによって、あるプロセッサ用のFSMは、リモートプロセッサが失敗したかどうかを検出することができる。
【図面の簡単な説明】
【００１６】
【図１】例示的なハイブリッド仮想GPIOアーキテクチャのブロック図である。
【図２Ａ】プロセッサが単一のリモートプロセッサと通信するハイブリッド仮想GPIOアーキテクチャのための高レベルブロック図である。
【図２Ｂ】プロセッサが2つのリモートプロセッサと通信するハイブリッド仮想GPIOアーキテクチャのための高レベルブロック図である。
【図３】外部クロックに応答するハイブリッド仮想GPIO有限状態機械のためのブロック図である。
【図４】仮想GPIO/メッセージング信号フレームのためのフォーマットを示す図である。
【図５】図1のGPIOアーキテクチャによって実践される方法についてのフローチャートである。
【図６】仮想GPIOおよびメッセージングフレーム長をプログラムするために使用される長さプログラミングフレームを示す図である。
【図７】図6のフレームに応答してプログラムされたフレーム長を確認するために送信される確認フレームを示す図である。
【図８】例示的な仮想GPIOフレームおよび例示的なメッセージング信号フレームを示す図である。
【図９】例示的な組み合わされた仮想GPIOおよびメッセージングフレームを示す図である。
【図１０】外部クロックを使用しないハイブリッド仮想GPIO有限状態機械を示す図である。
【図１１】図10の有限状態機械を介するデータのフレームの送信のためのタイミング図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態およびそれらの利点は、以下に続く詳細な説明を参照することによって最も理解される。同様の参照番号が、図のうちの1つまたは複数に示された同様の要素を識別するために使用されていることを諒解すべきである。
【００１８】
システムが1対のピンを、それらがより多くの複数のGPIOピンならびにメッセージング信号のための専用の送信ピンおよび専用の受信ピンを構成しているかのように使用することを可能にするハイブリッド仮想汎用入力/出力(GPIO)アーキテクチャが提供される。本明細書で使用される場合、「メッセージング信号」は、IPCまたはSPIプロトコル内で実施されるように、従来は専用の送信ピンを介して送信される信号を指す。メッセージング信号は、したがって、受信プロセッサが受信したメッセージング信号を適切なレジスタにルーティングすることができるようにアドレスを含む。ハイブリッド仮想GPIOアーキテクチャは、仮想GPIO信号を作成するシステムレベルのアプリケーションに対して、これらの仮想GPIO信号が従来のGPIOピンにおける入力/出力に適応されていたかのようである点で「仮想」としてみなされる。言い換えれば、本明細書で開示される仮想GPIOアーキテクチャを有するシステムオンチップ(SoC)またはプロセッサは、GPIO信号と仮想GPIO信号との間で機能的な相違に遭遇しない。しかしながら、そうでなければ(GPIO信号が対称である場合)各々がそれら自体のGPIOピンの専用ペアを必要とするはずの仮想GPIO信号を送信および受信するために、2つのピンが使用されるだけである。ハイブリッド仮想GPIOアーキテクチャは、仮想GPIO信号を送信するために使用される専用送信ピンがリモートプロセッサにメッセージング信号を送信するためにも使用される点で、「ハイブリッド」としてみなされる。同様に、仮想GPIO信号を受信するために使用される専用受信ピンは、リモートプロセッサからメッセージング信号を受信するためにも使用される。
【００１９】
本明細書で開示される仮想GPIO信号は、モバイル電話または他の通信デバイス内のアプリケーションプロセッサとモデムプロセッサとの間のIPCに適応することに関して説明される。しかしながら、本明細書で開示される仮想GPIOの回路および技法は、GPIO機能を必要とするシステムオンチップ(SoC)または特定用途向け集積回路(ASIC)に広く適用可能であることが諒解されよう。
【００２０】
開示されるハイブリッド仮想GPIOアーキテクチャは、送信ノードの状態(health)を受信ノードに対して透明にする。これは、送信プロセッサが動作不能になる時間を受信プロセッサに示すので、特にソフトウェア実装用のデバッギング段階の間は、重要な利点である。そのような強固な仮想GPIO機能を可能にするために、各集積回路は、回路板上の送信ラインに結合された専用送信ピンと、回路板上の受信ラインに結合された専用受信ピンとを含む。その点において、仮想GPIO信号は、送信ラインを介した送信用の送信セットと、受信ライン上の受信用の受信セットとに分割することができる。シグナリングが対称である場合、プロセッサごとの送信セット内の信号の数は同じである。しかしながら、本明細書で開示されるハイブリッド仮想GPIOアーキテクチャは、1つのプロセッサのための仮想GPIO信号の送信セットがリモートプロセッサのための送信セットと同じサイズではない非対称シグナリングに適応することができる。仮想GPIO信号に類似して、メッセージング信号はまた、専用送信ピンを介して送信され、専用受信ピンにおいて受信される。
【００２１】
ここで図面に向かうと、図1は、モバイル電話または他の通信デバイス内のアプリケーションプロセッサ集積回路100およびモデムプロセッサ集積回路105を含むハイブリッド仮想GPIOアーキテクチャ101を示す。各集積回路は、専用の送信ラインおよび専用の受信ラインに結合するので、アプリケーションプロセッサ集積回路100のための送信ライン110aは、したがって、モデムプロセッサ集積回路105のための受信ラインである。同様に、モデムプロセッサ集積回路105のための送信ライン110bは、アプリケーションプロセッサ集積回路100のための受信ラインである。これらのラインまたはリードは、集積回路100と集積回路105との間の回路基板または他の物理的相互接続上に担持される。各集積回路は、対応する送信ライン(たとえば、モデムプロセッサ集積回路105のためのライン110b)に結合するために専用送信ピン112を含む。同様に、各集積回路は、対応する受信ライン(たとえば、モデムプロセッサ集積回路105のためのライン110a)に結合するために専用受信ピン111を含む。各集積回路内の有限状態機械(FSM)115は、32KHzスリープクロックなどの外部クロックソースからの外部クロック信号120に対して、これらの専用ラインおよび専用ピンを使用して、送信および受信を制御する。
【００２２】
アプリケーションプロセッサ集積回路100は、プロセッサ101を含む。同様に、モデムプロセッサ集積回路105は、プロセッサ102を含む。各プロセッサは、GPIOインターフェース103を介して結合し、それによって、従来の方法においてGPIOピン125とインターフェースする。各ハイブリッドGPIOインターフェース103を介して処理された信号の特定の部分は、従来のGPIO信号130として従来のGPIOピン125上で送受信され得る。しかし、GPIOインターフェース103を介して処理された信号の残りの部分は、従来のGPIOピン125を介して送信または受信されない。代わりに、この残りの信号部分の一部は、専用送信ピンおよび専用受信ピンを使用して対応するFSM115を介して送受信される複数の仮想GPIO信号135を備える。各FSM115はまた、メッセージング信号136を受信および送信することに関して、対応するプロセッサと直接インターフェースする。メッセージング信号136は、GPIO信号ではないので、それらは、GPIOインターフェース103を介して結合しない。各FSM115は、その専用の送信ピン112および受信ピン111を介して、メッセージング信号136を送信および受信する。これらのピンは、したがって、それらが仮想GPIO信号135とメッセージング信号136の両方のために使用されるという点で、「ハイブリッド」ピンである。
【００２３】
仮想GPIO信号135は、各々、従来のGPIO信号130の場合のようにそれら自体の専用ピンを持たない。これは、仮想GPIO信号135が各々それら自体のピンを要求することになる従来のGPIO実施形態と比較して、ハイブリッド仮想GPIOアーキテクチャ101がピンの大幅な削減を達成する点で非常に有利である。メッセージング信号136は、従来、別の専用送信ピンおよび別の専用受信ピンを同様に必要とする。しかし、これらの別のピンはまた、本主題の有利なハイブリッド仮想GPIOアーキテクチャにおいて除去される。
【００２４】
集積回路は、ただ1つのFSM115を含む場合があるか、または複数の外部システムとインターフェースするための複数のこれらの要素を含む場合がある。図2Aは、集積回路200が、それ自体のFSM115を含む集積回路205内のリモートプロセッサと通信するための単一のFSM115を含む、ハイブリッド仮想GPIOアーキテクチャを示す。対照的に、図2Bに示された集積回路220は、それぞれ集積回路225および集積回路230内のリモートプロセッサと通信するためのFSM115AおよびFSM115Bを含む。この点において、本明細書で説明するプロセッサなどのシステムオンチップ(SoC)は、他のSoCとシグナリングするハイブリッド仮想GPIOに適応するために必要であるのと同じくらい多くのFSMで構成され得る。プロセッサが有することができるFSMの数にかかわらず、各FSMは、図2Aに示されたように、それ自体の専用送信ピン240および受信ピン245を使用して通信する。
【００２５】
再び図1を参照すると、仮想GPIO信号135は、FSM115などの有限状態機械を使用して適応されるので、プロセッサ101および102は、依然として仮想GPIO信号135およびメッセージング信号136を受信することができるスリープまたは別のタイプの休止状態であってもよい。このようにして、仮想GPIOアーキテクチャ101は、GPIOインターフェース103ごとのピンの数を有利に節約するだけでなく、低電力でもある。
【００２６】
本明細書で使用する「ピン」は、集積回路が回路板または他の物理的な相互接続(たとえば、パッケージ相互接続または相互接続を介したスルーホール)上のリードに結合するために使用するパッドまたは実際のピンなどの構造をカバーする総称である。たとえば、図1に示すように各集積回路が16のGPIOピンまたはパッド125を有する場合、これらのピンは、8つの対称GPIO信号130(例示の明確さのため、4つの従来のGPIO信号#1〜#4のみが図1に示されている)または16の非対称GPIO信号130に適応するように構成され得る。加えて、各集積回路は、ライン110aおよびライン110bを使用する複数のn個の仮想GPIO信号135の入出力インターフェースに適応することができ、nは任意の複数形の整数である。同様に、各集積回路は、ライン110aおよびライン110bを使用する複数のm個のメッセージング信号136の入出力インターフェースに適応することができ、mは正の複数形の整数である。各プロセッサコアに関して、GPIO信号130と仮想GPIO信号135との間に違いはなく、それらは両方とも、単に、GPIOインターフェース103を介して必要に応じて送受信される信号である。しかしながら、仮想GPIO信号135およびメッセージング信号136は、従来のGPIO信号130とは対照的に、専用ピンを持たず、仮想GPIO信号135およびメッセージング信号136は、ライン110aおよび110b上の送信のためにFSM115内でシリアライズされる。受信すると、各FSM115は、受信したシリアライズ化仮想GPIO信号および受信したシリアライズ化メッセージング信号をデシリアライズする。したがって、各FSM115は、仮想GPIO信号135およびメッセージング信号136に関してシリアライザ/デシリアライザとして機能する。
【００２７】
プロセッサは、GPIO信号またはメッセージング信号のうちの選択されたものにおける変換に応答して割込み信号を受信する必要があることがある。仮想GPIO信号135およびメッセージング信号136に対して、モデム電力マネージャ(MPM:modem power manager)140は、割込み構成レジスタ(図示せず)を介してプログラムされたように、選択されたGPIO信号またはメッセージング信号を監視する。各仮想GPIO信号135は、対応する割込み構成レジスタを有する。仮想GPIO信号135がその信号変化状態に応答して割込みを生成する必要がある場合、対応する構成レジスタは、それに応じてプログラムされる。同様に、仮想GPIO信号135またはメッセージング信号136が、その信号が状態を変更しているかどうかにかかわらず、割込みを生成しないものである場合、対応する割込み構成レジスタはまた、それに応じてプログラムされる。MPM140は有限状態機械を含む場合もある。したがって、FSM115とまったく同様に、MPM140は低電力であり、そのプロセッサがスリープモードまたは他の何らかの休止状態にあるかどうかにかかわらず、アクティブである。
【００２８】
仮想GPIO信号135は、送信セットおよび受信セットに細分することができる。対称システムでは、各送信セットは、同じ数を有することになる。同様に、各受信セットは、同じ数の信号を有することになる。しかしながら、仮想GPIO信号135およびメッセージング信号136の送信セットが異なるサイズを有し、GPIO信号135およびメッセージング信号136の受信セットも異なるサイズを有する非対称シグナリング実施形態に容易に対応することができるという点で、仮想GPIOアーキテクチャ101は有利であることが理解されるであろう。アーキテクチャ101が対称であるか非対称であるかにかかわらず、各FSM115は、仮想GPIO信号135の送信セット内の各信号がGPIOインターフェース103とFSM115との間のそれ自体のリード上に担持されるという意味で、GPIOインターフェース103から並列に仮想GPIO信号135の送信セットを受信する。メッセージング信号は、GPIO信号ではなく、したがって、GPIOインターフェース103を介して結合しない。その点において、各FSM115によって表されるように、ハイブリッドインターフェースは、対応するプロセッサ101または102によっていくらかの周辺機器アドレスを与えられてもよい。各FSM115は、所与のメッセージング信号136が対応するメッセージングレジスタ138内に記憶され得るように、メッセージング信号136内にアドレスフィールド137を復号するように構成される。これらのメッセージングレジスタ138は、各々、対応するプロセッサ101または102のためのアドレス空間内のFSM115のための一般的なアドレスのいくらかのオフセットにマッピングされる。MPM140からの割込みに応答して、プロセッサ101または102は、次いで、適切なメッセージング信号136を得るために、メッセージングレジスタ138にアクセスしてもよい。仮想GPIO信号135と同様に、メッセージング信号136は、送信セットおよび受信セットに細分され得る。アーキテクチャが対称または非対称のどちらであるかにかかわらず、FSM115によるこれらの送信セットの結果として生じる送信は、単一の送信ピン112を介して起こる。1つのプロセッサからの仮想GPIO信号135の送信セットは、リモートプロセッサのための仮想GPIO信号135の受信セットになる。同様に、メッセージング信号136の送信セットは、リモートプロセッサのためのメッセージング信号136の受信セットになる。リモートプロセッサのFSM115は、次いで、仮想GPIO信号135の受信セットがGPIOインターフェース103と並列に提供され得るように、仮想GPIO信号135の受信セットをデシリアライズする。
【００２９】
各FSM115は、仮想GPIO信号135の送信セットのためおよびメッセージング信号136のための以前の状態を記憶する設定レジスタ(図示せず)を含む。この様式で、各FSM115は、GPIOインターフェース103から受信されるように仮想GPIO信号135の送信セットの現在の状態を監視することができ、現在の状態が以前の状態に対して変化した場合、単に対応する送信セットの直列送信をトリガしてもよい。言い換えれば、FSM115は、送信セット内の1つまたは複数の信号が、設定レジスタ107内の以前の状態の記憶を介して検出されるように状態を変化した場合にのみ、送信セットの直列送信をトリガすることになる。各プロセッサは、メッセージング信号レジスタ138のためのアドレスを知っており、したがって、それらに所望の送信セットを書き込むことができ、受信セットの任意の変化を読み取ることもできる。FSM115は、メッセージング信号136の送信セットがそれらの以前の送信に対して変化したかどうかを監視し、それに応じてリモートプロセッサへの送信セットの送信をトリガすることになる。MPM140は、受信セットが前述したように変化したかどうかを監視し、変化した受信セットが処理され得るように対応するプロセッサに割り込む。
【００３０】
上記で説明したように、各FSM115は、各送信セットをシリアライズし、各受信セットをデシリアライズするシリアライザ/デシリアライザとして機能する。図3は、これらの動作をより良く説明するFSM115のブロック図である。FSM115は、多重化モジュール300を介して対応するプロセッサと仮想GPIO信号135およびメッセージング信号136を交換する。多重化モジュールは、仮想GPIO信号135に関して仮想GPIOインターフェース103を介して対応するプロセッサとインターフェースし、メッセージング信号136に関して対応するプロセッサと直接インターフェースする。一実施形態では、各FSM115は、送信ライン110aを介する仮想GPIO信号135の送信セットまたはメッセージング信号136の送信セットの送信を、いずれかの送信セットに変化があった場合にのみ許可することになる論理回路301を含む。論理回路301は、したがって、仮想GPIO信号135(またはメッセージング信号136)の送信セットの現在の状態を、対応する設定レジスタ107に記憶されているような送信信号のこのセットの以前の状態と比較する。たとえば、論理回路301は、この比較を実行するXORゲート310を含む場合がある。多重化モジュール300は、並列入力直列出力(PISO)シフトレジスタ315の中に並列に送信セットをロードする。XORゲート310からのイネーブル信号320が高くなった(送信セットについての現在の状態と以前の状態との間の変化を示す)場合、PISOシフトレジスタ315はイネーブルにされて、外部クロック120のサイクルに応答して、その内容を送信ライン110a上に直列にシフトアウトする。
【００３１】
FSM115はまた、直列入力並列出力(SIPO:serial-in-parallel-out)シフトレジスタ325を使用して、類似の方法で仮想GPIO信号135またはメッセージング信号136の受信セットをデシリアライズする。仮想GPIO信号135およびメッセージング信号136の受信セットは、リモートプロセッサによって生成され、リモートプロセッサによって受信ライン110b上に送信される。仮想GPIO信号135(またはメッセージング信号136)のこの受信セットは、外部クロック120のサイクルに応答してSIPOシフトレジスタ325内に連続的にシフトされる。FSM115は、本明細書でさらに説明するように、別個の開始ビットおよび終了ビットを有するフレームにおいて、仮想GPIO信号135およびメッセージング信号136の送信セットを送信し、受信セットを受信するように構成される。
【００３２】
一実施形態では、FSM115は、GPIOインターフェースから仮想GPIO信号の送信セットを受信し、専用送信ピンを介してリモートプロセッサに仮想GPIO信号の送信セットを直列送信し、メッセージング信号レジスタからメッセージング信号の送信セットを取得し、専用送信ピンを介してリモートプロセッサにメッセージング信号の送信セットを直列送信するための手段を備えるものとみなされ得る。
【００３３】
フレームは、あらかじめ定義されたサイズを有する。一実施形態では、フレームサイズは、特定の数のビット長であるようにヘッダによって決定される。例示的なフレーム400は、図4に示されている。ヘッダ405は、2つの機能ビット、fn_0およびfn_1を備え得る。一実施形態では、両方の機能ビットがゼロである場合、後続のビットは、仮想GPIO信号135である。fn_0がゼロであり、fn_1が1に等しい場合、後続のビットは、メッセージング信号136である。fn_0が1であり、fn_1がゼロに等しい場合、後続のビットは、リモートプロセッサによって予想されるように仮想GPIOフレーム長を表す。同様に、両方の機能ビットが1である場合、後続のビットは、所望のフレーム長のリモートプロセッサによる確認を表す。仮想GPIO信号135の送信セット(または、メッセージング信号136の送信セット)がこの固定されたフレームサイズ未満である場合、各フレーム内の未使用ビットは、ドントケア値であり得る。代替として、各FSM115は、所与のアプリケーションに必要なビットの数に応じて、送信されるフレームのサイズを変更するように構成される場合がある。2つの機能ビットを使用するコーディングの前述の説明は、単なる一例であり、他のヘッダおよびコーディングプロトコルは、フレームが、仮想GPIO信号135、メッセージング信号136、仮想GPIOフレーム長の識別情報、仮想GPIOフレーム長の確認、メッセージング信号フレーム長の識別情報、またはメッセージング信号フレーム長の確認のいずれかを担持しているかを識別するために使用されてもよいことが理解されるであろう。一実施形態では、フレーム400はまた、以下でさらに説明するように、プログラミングおよび確認フレームに関連付けられたタイプビット(type_bit)を含んでもよい。たとえば、一実施形態では、タイプビットは、仮想GPIOフレームを識別するハイ、およびメッセージング信号フレームを識別するローであり得る。
【００３４】
仮想GPIO信号135またはメッセージング信号136の送信セットを送信するために必要なフレームの数は、特定の送信セット内の信号の数と、フレームサイズとに依存する。たとえば、フレームサイズが8ビットであり、送信セット内に10の仮想GPIO信号135が存在すると仮定する。8ビットフレームを使用してその送信セットを送信することは、したがって、2フレームを必要とすることになる。
【００３５】
仮想GPIO信号135またはメッセージング信号136の受信セットのための完全なフレームの受信を検出するために、FSM115は、フレームの開始ビットの受信後に外部クロック120の必要なサイクル数をカウントする、図3に示すような論理回路350を含んでもよい。たとえば、受信セットが、外部クロック120の10サイクルに応答して受信される10の仮想GPIO信号135を備えると仮定する。開始ビットの検出、および外部クロック120の別の10サイクルの待機後、論理回路350は、次いで、終了ビットの受信を期待することになる。終了ビットがそれに応じて検出された場合、論理回路350は、次いで、完全なフレームとしてSIPOシフトレジスタ325内にシフトされている仮想GPIO信号135の受信セットを並列に受信するために、出力ラッチ351をストローブしてもよい。次いで、仮想GPIO信号のラッチされた受信セットは、多重化モジュール300を介してGPIOインターフェース103に与えることができる。メッセージング信号の受信セットが、GPIOインターフェース103を介してルーティングされる代わりに、メッセージング信号レジスタ138内にロードされるが、メッセージング信号136の受信セットのラッチングは、類似して発生する。
【００３６】
再びPISOシフトレジスタ315を参照すると、このレジスタは、開始ビットおよび終了ビットで仮想GPIO信号およびメッセージング信号の送信セットをフレーム化するように構成されることが理解されるであろう。仮想GPIO信号の送信セットは、したがって、開始ビットおよび終了ビットによって画定されたフレーム400において送信される。送信プロセッサのための送信セットは、リモートプロセッサのための受信セットになるので、受信セットも、それに応じてフレーム化される。このフレーム化は、いかなる追加の専用ピンも必要とせずに、各プロセッサがそうすることでリモートプロセッサの健全性を監視できるという点で有利である。たとえば、各FSM115は、その専用送信ピン112を弱く引いて(したがって、送信ライン110aを弱く引いて)、(仮想GPIO信号の送信セットについての以前の状態に対する現在の状態に変化がない)デフォルト状態の間、電圧を供給するように構成することができる。FSM115が開始ビットの送信用の送信ライン110aを接地するような実施形態の場合、開始ビットは論理ゼロになる。このようにして、各FSM115は、受信ライン110bが接地に向かって引かれたことを検出することによって、開始ビットの受信を容易に検出することができる。一実施形態では、開始ビットと停止ビットは、互いの論理補数である。停止ビットは、したがって、開始ビットが論理ゼロである場合、論理ハイの値になる。フレームのペイロードは、次いで、タイプビットから、フレーム端を画定する停止ビット410まで延びてもよい。
【００３７】
プロセッサが、その送信ライン110aを接地に不適切に引くように、失敗している可能性がある。したがって、リモートプロセッサは、開始ビットとしてこれを検出し、論理回路350は、それに応じてフレームの終了部に向かってカウントを開始する。しかし、終了ビットが論理1である場合、各FSM115は、フレーム送信の終了を信号送信するために、送信ライン110aを電源電圧に充電する。リモートFSM115が開始ビットであると思われるものを検出しているようにプロセッサが失敗している場合、論理回路350は、終了ビットを検出しないことになり、それに応じてリモートプロセッサの失敗をそのプロセッサに通知することになる。
【００３８】
受信のための十分なセットアップ時間を可能にするために、フレーム400の送信は、第1のクロックエッジに対して起こるべきであり、受信は、残りのクロックエッジに対して起こるべきである。たとえば、PISOシフトレジスタ315内のビットは、外部クロック120についての立下りエッジまたは負のエッジに応答して、送信ライン110a上の送信のためにシフトアウトすることができる。逆に、受信ライン110b上で受信されたビットは、クロック120の立上りエッジまたは正のエッジに応答して、SIPOシフトレジスタ325の中にシフトすることができる。
【００３９】
あるプロセッサがリモートプロセッサにおける非アクティブ状態を検出するために、各FSM115は、(送信するフレームが存在しない)デフォルト状態でその送信ライン高を弱く引くように構成することができる。前述したように、開始ビットおよび停止ビットは、反対の論理状態を有する。図4のフレーム400のための開始ビット406は、したがって、送信ライン110aがその送信のために弱く引かれるように論理ゼロ(設置)であってもよく、一方、停止ビット410は、送信ライン110aがその送信のために電源電圧までハイに引かれるようにバイナリの1の値であってもよい。再び図3を参照すると、論路回路350は、外部クロック120上の立上りエッジに対して受信ライン110bを監視するように構成される。フレーム送信がないデフォルトの論理状態は、前に説明されたようにその弱いプルアップのせいで高く残っているだけの受信ライン110bによって示される。論理回路350が外部クロック120についての立上りエッジのうちの1つで、(開始ビット406のゼロ値を示す)受信ライン110bが低く引かれたことを検出した場合、論理回路350は、フレーム400のあらかじめ定義されたサイズに応じた十分な数のクロックサイクルの間待機して、次いで停止ビット410の論理高の値を検出する。停止ビット410の受信は、完全なフレーム400がSIPOシフトレジスタ325の中に完全にシフトされていることを論理回路350に示す。その時点で、論理回路350は、受信されたフレームがラッチ351を介して多重化モジュール300に並列に供給されるように、SIPOシフトレジスタ325をストローブさせる。仮想GPIO信号(またはメッセージング信号136)の受信セットは、次いで、GPIOインターフェース103を介してそれに応じてプロセッサコアに提供される。
【００４０】
32KHzスリープクロックなどの比較的遅い外部クロック120は、IPCのシグナリング要件に十分である。たとえば、仮想GPIO信号135およびメッセージング信号136の送信のための最小セットアップおよびホールド要件が各々2ナノ秒であり、FSM115における外部クロック120の受信のための最大に予測された先行または遅延が6ナノ秒であると仮定する。結果として生じる外部クロック120用の最大周波数は、62MHzであることを容易に示すことができる。したがって、スリープクロックなどからの32KHzの周波数は、そのような実施形態の場合、非常に大きいマージンの安全性を提供する。アーキテクチャ101のための例示的な動作方法をここで概説する。
【００４１】
アーキテクチャ101のための動作方法が、図5のフローチャートに要約される。方法は、ステップ500において、第1のプロセッサからGPIOインターフェースでGPIO信号のセットを受信することで開始する。ステップ505は、GPIOインターフェースからGPIOピンを介してリモートプロセッサにGPIO信号のセットの一部を送信することを備える。ステップ510は、GPIOインターフェースから専用送信ピンを介してリモートプロセッサに仮想GPIO信号としてGPIO信号のセットの残りの部分を直列送信することを備える。最後に、方法は、第1のプロセッサによって書き込まれたメッセージング信号レジスタからメッセージング信号を取得し、専用送信ピンを介してリモートプロセッサに取得したメッセージング信号を直列送信する行為515を含む。
【００４２】
開示された仮想ハイブリッドGPIOアーキテクチャの利点を考えると、2つのピンのみが必要とされ、さらに、任意の数の仮想GPIO信号135およびメッセージング信号136が有限状態機械を介してシリアライズおよびデシリアライズされ得る。唯一の制限は、外部クロック120およびクロックのラグまたはリードの任意の予想される量に対する仮想GPIO信号についてのタイミング要件である。その上、あるプロセッサの健康を相対するプロセッサに対して透明にするために、他のピンが必要になることはない。
【００４３】
フレーム400はまた、わずか2つの機能ビットのオーバヘッドだけで、様々なメッセージング信号136および仮想GPIO信号135が専用送信ピン112を介して送信され得るという点で、非常に有利である。仮想GPIOフレーム長を設定するため(かつ、メッセージング信号フレーム長を設定するため)の例示的なプログラミングフレームは、図6に示されている。プログラミングフレーム600は、仮想GPIOフレーム長を設定する。同様に、プログラミングフレーム605は、メッセージング信号フレーム長を設定する。フレーム長(および、したがって各プログラミングフレームの長さ)を定義するために使用されるビット数は、あらかじめ定義される。したがって、FSM115は、(前述のように、1に等しいfn_0および0に等しいfn_1などの)プログラミング長が設定されていることを示すヘッダを見ると、フレーム本体からフレーム長を読み出すことになる。その点において、FSM115は、仮想GPIOフレーム長またはメッセージングフレーム長のどちらがプログラムされているのかを知る必要がある。したがって、フレーム600および605をプログラミングするための各ヘッダ405には、フレームタイプビット610が続く。たとえば、1に等しいフレームタイプビット610は、仮想GPIOフレーム長がプログラムされていることを意味してもよく、一方、ゼロに等しいフレームタイプビット610は、メッセージング信号フレーム長がプログラムされていることを意味してもよい。一実施形態では、各プログラミングフレーム600および605は、ビット0からビット4までの5つのプログラミングビットを有する。各ビットは、その名前によって識別されるように、2のべき乗の係数である。言い換えれば、ビット0は、20を乗算するための係数であり、ビット1は、21を乗算するための係数であり、ビット2は、22を乗算するための係数であり、ビット3は、23を乗算するための係数であり、ビット4は、24を乗算するための係数である。5つのプログラミングビットは、したがって、ゼロから31までのフレーム長をプログラムすることができる。追加のプログラミングビットは、63などまでのフレーム長のプログラミングを可能にすることになる。
【００４４】
リモートFSM115は、フレーム600または605などのプログラミングフレームを受信すると、確認フレームを使用して、定義されたフレーム長を確認することに進んでもよい。例示的な確認フレームは、図7に示されている。フレーム700は、仮想GPIO確認フレームであり、一方、フレーム705は、メッセージング信号確認フレームである。各フレーム700および705は、機能ビットが確認フレームとしてフレームを識別するヘッダ405を含む。一実施形態では、両方の機能ビットが論理1であるヘッダ405は、確認フレームを識別する。ヘッダ405に続くフレームタイプビット710は、確認フレームタイプを識別する。一実施形態では、仮想GPIO確認フレーム700は、論理1に等しいフレームタイプビット710によって識別される。逆に、メッセージング信号確認フレーム705は、論理ゼロに等しいフレームタイプビット710によって識別され得る。フレームタイプビット710に続くプログラミングビットは、対応するフレーム600または605内のプログラミングビットに等しい。
【００４５】
フレーム長がこのようにプログラムされたら、仮想GPIO信号135のフレーム800またはメッセージング信号のフレーム805は、図8に示すように送信され得る。図1を再び参照すると、nの仮想GPIO信号135およびmのメッセージング信号136が存在することに留意されたい。各フレーム800は、したがって、ちょうど1つのGPIOポート(n個のGPIO信号135のうちの1つ)に専用になり得、または、n個のGPIO信号135から各々1ビットを含むことができる。言い換えれば、様々なポートに従ってGPIOワードを直列送信することができ、または、それらは、並列に送信され得る。同じ直列/並列の考慮事項は、メッセージング信号に適用される。各フレーム800および805が複数のポートまたはちょうど1つのポートのいずれを担持しているのかにかかわらず、ヘッダ405は、フレームが仮想GPIOフレームまたはメッセージング信号フレームのどちらであるのかを識別する。
【００４６】
仮想GPIO信号135およびメッセージング信号136を送信するために別個のフレームを使用するのではなく、これらの信号は、各フレームが仮想GPIO信号135とメッセージング信号136の両方を含むハイブリッド仮想GPIOアーキテクチャのための代替実施形態において組み合わされてもよい。たとえば、図9は、ヘッダ405ならびに拡張ヘッダ905を含む例示的なハイブリッドフレーム900を示す。拡張ヘッダ905は、拡張ヘッダ905に続いて、停止ビット410の前に、メッセージング信号ビットおよび仮想GPIOビットのビット位置を示す。待ち時間要件に応じて、メッセージングビット910または仮想GPIOビット915のいずれかが、フレーム本体内の最初のビットであり得る。いくつかの実施形態では、拡張ヘッダ905は、CRCビットなどの誤り訂正ビットを含んでもよい。残りのビットは、残りのビットカテゴリに属することがデフォルトで知られているので、拡張ヘッダ905は、単に、仮想GPIOビット915のみまたはメッセージングビット910のみの位置および長さを識別する必要があることに留意されたい。
【００４７】
上記で説明したように、共通外部クロック120の使用は、実装するのが好都合に簡単であるが、各FSM115が共通クロック120を受信するためのクロックピンと関連することを必要とする。この追加のピンの要求を回避するために、その内容が参照により本明細書に組み込まれている米国仮出願第61/907,974号で説明されているように、外部クロック120は、除去されてもよい。再び図1を参照すると、アーキテクチャ101は、したがって、外部クロック120およびその対応するピンを除去することによって変更されることになる。共通クロック120を受信するための各集積回路内のピンを確保するためのどのような必要性も排除するために、信号の送信セットの送信は、送信集積回路および受信集積回路に関して非同期である。この有利な非同期送信および受信を可能にするために、各FSM115は、リング発振器などの発振器を含んでもよく、またはそれに関連付けられてもよい。送信FSMは、発振器からの発振をカウントすることによって、送信セット内の各ビットに対応じて専用送信ピンを介して送信信号をパルス幅変調する。送信セット内のビットは、次いで、データのフレームにおいて送信され、フレーム内の各ビットは、送信セット内の対応するビットのパルス幅変調されたバージョンである。データの送信フレーム内の各ビットは、パルス幅変調に関連して使用される特定のビット期間を有する。たとえば、送信ビットがバイナリゼロなどの1つのバイナリ状態を有する場合、FSMは、ビット期間の大きい部分(majority fraction)が終了するように第1の数の発振をカウントしてもよい。第1の数の発振をカウントすると、FSMは、電源電圧VDDなど、第1のバイナリ電圧で、専用送信ピンをパルス化する。カウントの開始時に、専用送信ピンは、グランドなどの反対の第2のバイナリ電圧状態においてパルス化される。
【００４８】
逆に、送信ビットが、バイナリ1などの反対のバイナリ状態を有する場合、FSMは、グランドなどの第2のバイナリ電圧状態で送信ビットを開始し、ビット期間の小さい部分(minority fraction)が終了するように第2の数の発振をカウントすることに進む。第2の数の発振をカウントすると、FSMは、第1のバイナリ電圧で専用送信ピンをパルス化する。このようにして、専用送信ピンに結合された送信ラインの電圧は、可変パルス幅に従って第1のバイナリ電圧でパルス化される。現在の送信ビットが第1のバイナリ値を有する場合、送信ラインは、第1のパルス幅に従って第1のバイナリ電圧でパルス化される。逆に、現在の送信ビットが反対の第2のバイナリ値を有する場合、送信ラインは、第2のパルス幅に従って第1のバイナリ電圧でパルス化される。
【００４９】
リモートプロセッサからのデータの送信フレームのその専用受信ピンを介するFSMにおける受信は、類似の方法で復調される。(受信プロセッサのための受信ラインである)各送信ラインのデフォルト状態(またはアイドルモード)が電源電圧VDDに充電されることは、便利である。これは、以下でさらに説明するように、リモートプロセッサの状態を受信プロセッサに対して透明にする。そのような実施形態における第2のバイナリ電圧は、次いで、グランドになる。受信FSMは、次いで、専用受信ピンが放電されたときを検出することによって、受信ビットの開始を認識することになる。受信FSMは、次いで、その発振器からの発振をカウントし始めてよい。次いで、2つのカウント、すなわち、専用受信ピンが第1のバイナリ電圧に充電されるビット部分の間、どれくらい多くの発振が生じるのかについての第1の受信カウントと、専用受信ピンが第2のバイナリ電圧に充電されるビット部分の間、どれくらい多くの発振が生じるのかについての第2の受信カウントとが生成されることになる。2つの受信カウントを比較することによって、受信FSMは、第1のパルス幅または第2のパルス幅のいずれかが受信ビットに適用されたのかを決定してもよい。データの受信フレームは、送信ラインを介するデータのフレームの送信を調整するために共通クロックが必要とされないように、それに応じて復調される。外部クロックを使用するFSM115からそのようなFSMを区別するために、以下のFSMは、内部クロックFSMと表記される。
【００５０】
図10は、その送信および受信動作をより良く示す内部クロックFSM1015のブロック図である。FSM1015は、多重化モジュール300を介して、そのGPIOインターフェース103(図1に示す)から仮想GPIO信号135の送信セットを受信する。代替的には、多重化モジュール300は、FSM115に関して前述したように、メッセージング信号136の送信セットを受信してもよい。FSM1015は、送信セットの以前の状態と比較して送信セットに変化があった場合、送信ライン110aを介するパルス幅変調信号としての信号の送信セットの直列送信を許可する論理回路301を含む。このように、以前の送信と比較して状態が変化していない送信セットの不要な再送信はない。論理回路301は、したがって、仮想GPIO信号の現在の送信セットを、ラッチまたは設定レジスタ107に記憶された以前の送信セットと比較する。比較を実行するために、論理回路301は、現在の送信セットを、設定レジスタ107に記憶された以前の送信セットとXORするXORゲート310を含んでもよい(この以前の送信セットは、図2に示すように「LAST GPIO Status」として示され得る)。多重化モジュール300は、並列入力直列出力(PISO)シフトレジスタ315の中に並列に現在の送信セットをロードする。XORゲート310からのイネーブル信号320が高くなった(現在の送信セットとレジスタ107に記憶された送信セットとの間の変化を示す)場合、PISOシフトレジスタ315は、シフト信号120に応答して、そのコンテンツを送信ライン110a上に直列にシフトアウトするようにイネーブルにされる。
【００５１】
信号の各送信セットは、PISOシフトレジスタ315に記憶されたデータのフレームを備える。FSM1015は、PISOシフトレジスタ315からシフトアウトされたビットの送信セットを、送信ライン110a上のリモートプロセッサに駆動されるパルス幅変調出力信号にパルス幅変調するパルス幅変調器355を含む。この変調は、送信リング発振器(RO)361からの送信リング発振器出力信号360のカウントなどの、発振器からの発振サイクルのカウントに応答する。変調器355および送信リング発振器361は、XORゲート310からのイネーブル信号320のアサーションによってトリガされ得る。このトリガに応答して、変調器355は、PISOシフトレジスタ315が信号の送信セットの最初のビットを変調器355にシフトするように、シフト信号120をストローブする。
【００５２】
変調器355は、リング発振器出力信号360におけるサイクルをカウントする少なくとも1つのカウンタ(たとえば、以下でさらに説明する図11に示すカウンタ1105および1110)を含む。パルス幅変調からの所望のパルス幅に応じて、カウンタは、第1のカウント、または第1のカウントよりも大きい第2のカウントのいずれかをカウントする。第1および第2のカウントのうちの適切な1つを満たすのに十分な数のサイクルをカウントした後、PISOシフトレジスタ315内に記憶されたデータのフレームからの後続のビットが変調器355内にシフトされるように、カウンタはシフト信号120を再ストローブする。このように、PISOシフトレジスタ315内に記憶されたデータのフレームのための信号の送信セットは、一度に1ビットを変調器355内にシフトされる。PISOシフトレジスタ315のシフトアウトされた各ビットのバイナリ値に応じて、パルス幅変調器355は、送信ライン110aを介して送信された対応するパルスをパルス幅変調する。その点において、各プロセッサは、デフォルト状態(無データ伝送)の間、その送信ライン110aを電源電圧VDDまでハイに弱く充電するように構成され得る。そのような実施形態では、ビット時間期間のためのパルス送信は、データのフレームのための図11のタイミング図に示すように、送信ライン110aをグランド(VSS)に放電することで開始する。各パルス幅変調ビット送信は、ビット時間期間の25%などのビット期間のいくらかの初期放電部分によるグランドへの送信ライン110aの放電で開始する。ビット値に応じて、変調器355は、ビット期間の大部分(たとえば、75%)の間、送信ライン110aの放電を維持し、または、ビット期間の初期放電部分の終了後、すぐに送信ライン110aをVDDに充電し戻す。言い換えれば、1つのバイナリ値は、ビット期間内でハイ電圧(VDD)の比較的狭いパルスに変調され得、バイナリ値の補数は、ビット期間内でハイ電圧(VDD)の比較的広いパルスに変調され得る。
【００５３】
図11に示す例示的なデータフレームの最初のビットは、バイナリゼロである。一実施形態では、バイナリゼロは、送信ライン110aがビット期間の75%の間グランドに維持される第1のパルス幅に変調され得る。ビット期間のそのような大きい部分は、第2のカウントをカウントする大きい部分カウンタ1110に対応する。送信すべきビットがバイナリゼロである場合、パルス幅変調器355は、したがって、第2のカウントが満たされるまで、放電された送信ライン110aを保つことになる。第2のカウントに達すると、パルス幅変調器355は、次いで、ビット期間の残りの間、送信ライン110aを電源電圧VDDにパルス化することになる。このパルス持続時間は、このとき、ビット期間のちょうど25%である第1のカウントをカウントする小さい部分カウンタ1105に対応することになる。そのようなビットのための送信ライン110aを介して送信される結果として生じる電圧パルスは、このとき、ビット期間のちょうど25%のパルス幅を有することになる。
【００５４】
逆に、バイナリ1は、送信ライン110aがビット期間の最初の25%などの小さい放電部分の間にのみ接地される第2のパルス幅に変調され得る。送信ライン110aは、このとき、第1のカウントが満たされるまで、放電されることになる。第1のカウントが満たされると、パルス幅変調器355は、次いで、大きい部分カウンタ1110をゼロにリセットし、第2のカウントを満たすまでカウントすることによって決定されるようなビット期間の残りの間、送信ライン110aを電源電圧VDDまでハイにパルス化することになる。送信ライン110aのための電圧が電源電圧VDDに充電される第2のパルス幅は、このとき、ビット期間の75%を備えることになる。しかしながら、異なるパルス幅が、代替実施形態では、所望のバイナリ値を表すために使用され得ることが理解されるであろう。
【００５５】
一実施形態では、変調器355は、論理回路1100を備えてもよい。ビット値に応じて、論理回路1100は、カウントを開始するために小さい部分カウンタ1105または大きい部分カウンタ1110のいずれかをトリガする。しかしながら、所望のパルス幅変調に応じて第1または第2のカウントのいずれかをカウントする単一のカウンタが使用され得ることが理解されるであろう。論理回路1100によってトリガされると、小さい部分カウンタ1105または大きい部分カウンタ1110は、送信リング発振器(RO)361からのサイクルをカウントする。たとえば、小さい部分カウンタ1105は、ビット時間期間の25%に対応する十分な数のサイクルをカウントし、その後、第1のカウントが満たされたことを示すために出力信号をアサートするように構成されてもよい。同様に、大きい部分カウンタ1110は、ビット時間期間の75%に対応する十分な数のサイクルをカウントし、その後、その出力信号をアサートするように構成されてもよい。この実施形態では、変調器355は、各ビット時間期間の開始時に、送信ライン110aをグランドに放電するように構成される。ビット値に応じて、変調器355は、適切なカウンタからの出力信号のアサーションに際し、送信ライン110aを電源電圧VDDに充電し戻すことになる。たとえば、データフレーム内の第1のビットは、バイナリゼロであるので、変調器355は、カウンタ1105がその出力信号をアサートするに際し、送信ライン110aをVDDまでハイにアサートする。同様に、データフレーム内の第2のビットは、バイナリ1であるので、変調器355は、カウンタ1110がその出力信号をアサートするに際し、送信ライン110aをVDDまでハイにアサートする。初期の25%ロー期間は、単なる一例であり、ビット時間期間の他の部分が実施されてもよいことが理解されるであろう。
【００５６】
一実施形態では、論理回路1100、カウンタ1105および1110、変調器355、ならびにSIPOシフトレジスタ315の組合せは、送信セット内の各信号を一連の対応するパルス幅変調信号に直列に処理するための手段を備えるものとみなされてもよく、手段は、直列処理された信号のバイナリ値に応答して第1のカウントおよび第2のカウントのうちの一方に発振器からの発振をカウントすることによって、各直列処理された信号のためのパルス幅を決定するように構成され、手段は、専用送信ピンを介してリモートプロセッサに専用送信ピンを介して一連の対応するパルス幅変調信号を送信するようにさらに構成される。
【００５７】
再び図9を参照すると、FSM1015はまた、直列入力並列出力(SIPO)シフトレジスタ325を使用して、類似の方法で信号(仮想GPIOおよび/またはメッセージング信号)の受信セットをデシリアライズする。復調器370は、受信ライン110b上で受信されるように、リモートプロセッサからの受信されたパルス幅変調信号を復調する。復調器370は、受信リング発振器出力信号380を発振することを開始するように受信リング発振器375をトリガするために、受信ライン110bの放電を検出することなどによって、受信したパルス幅変調信号からデータの受信フレームの開始を検出するように構成される。代替実施形態では、発振器375および361は、同じ発振器を備えてもよいことに留意されたい。変調器355に類似して、復調器370は、ローカウンタ415およびハイカウンタ420などのカウンタを含んでもよい。各ビット期間において、ローカウンタ415は、受信ライン110bが放電している間、カウントするようにトリガされる。逆に、ハイカウンタ420は、受信ライン110bが電源電圧VDDに充電される間、カウントするようにトリガされる。代替実施形態では、カウンタ415および420は、受信ライン110bのための各バイナリ電圧状態における発振の数をカウントする単一の共通カウンタを使用して実装されてもよい。カウンタ415および420からのカウントを比較することによって、復調器370は、それに応じて復調データ信号382を形成してもよい。具体的には、所与のビット期間においてハイカウンタ420からのカウントがローカウンタ415からのカウントよりも大きい場合、復調器370は、比較的広いパルス幅が受信されたことを示すために、復調データ信号382を電源電圧VDDまでハイに駆動してもよい。逆に、ローカウンタ415からのカウントがより大きい場合、復調器370は、比較的狭いパルスが受信されたことを示すために、復調データ信号382をVSSまで放電してもよい。
【００５８】
復調器370はまた、ビット時間期間の境界のカウントからの検出時に、シフト信号381をSIPOシフトレジスタ325にアサートしてもよい。SIPOシフトレジスタ325は、次いで、復調器370からの復調データ信号382においてシフトすることになる。FSMモジュール1015は、上記で説明したプログラミングフレームによって決定されるように、信号の送信および受信セットのためのあらかじめ定義されたデータフレームサイズを処理するように構成されてもよい。カウンタ415と420の両方は、ビット時間期間の開始時に初期化される。ローカウンタ415は、受信ライン110b電圧がローである間、受信リング発振器375からのサイクルをカウントし、一方、ハイカウンタ420は、受信ライン電圧がハイ(VDD)である間、受信リング発振器375からのサイクルをカウントする。比較器425は、したがって、ローカウンタ415からローカウント(CL)をハイカウンタ420からのハイカウント(CH)と比較することによって、各ビット時間期間の終了において復調ビット決定を実行する。ビット期間は、ハイカウンタ420がカウントを停止し、放電されている受信ライン110bによってトリガされるように、CHを出力したいつからでも決定され得る。カウンタ420は、それに応じて、各ビット時間境界において初期化され得る。各ビット期間の終了時にCLがCHよりも大きい場合、比較器425は、復調データ信号382を、一実施形態ではバイナリゼロの復調に対応するローに駆動する。逆に、ビット期間の終了時にCHがCLよりも大きい場合、比較器は、復調データ信号382を、そのような実施形態ではバイナリ1の復調に対応するハイに駆動する。SIPOシフトレジスタ325は、シフト信号381のストローブに応答して、各復調ビット決定を登録する。
【００５９】
当業者が今では認識するように、近い将来の特定の用途に応じて、本開示の要旨および範囲から逸脱することなく、多くの修正、置換、および変形が、本開示のデバイスの材料、装置、構成、および使用方法において、およびそれらに対してなされ得る。これを踏まえて、本明細書において図示および説明された特定の実施形態は本開示のいくつかの例にすぎないので、本開示の範囲は本明細書において図示および説明された特定の実施形態の範囲に限定されるべきでなく、むしろ、以下に添付される特許請求の範囲、その機能的均等物の範囲に完全に相応すべきである。
【符号の説明】
【００６０】
100  アプリケーションプロセッサ集積回路
101  ハイブリッド仮想GPIOアーキテクチャ
102  プロセッサ
103  GPIOインターフェース
105  モデムプロセッサ集積回路
107  設定レジスタ
110a  送信ライン
110b  送信ライン
111  専用受信ピン
112  専用送信ピン
115  有限状態機械(FSM)
115A  FSM
115B  FSM
120  外部クロック信号
125  GPIOピン
130  GPIO信号
135  仮想GPIO信号
136  メッセージング信号
137  アドレスフィールド
138  メッセージングレジスタ
140  モデム電力マネージャ(MPM)
200  集積回路
205  集積回路
220  集積回路
225  集積回路
230  集積回路
240  専用送信ピン
245  専用受信ピン
300  多重化モジュール
301  論理回路
310  XORゲート
315  並列入力直列出力(PISO)シフトレジスタ
320  イネーブル信号
325  直列入力並列出力(SIPO)シフトレジスタ
350  論理回路
351  ラッチ
355  パルス幅変調器
360  送信リング発振器出力信号
361  送信リング発振器(RO)
370  復調器
375  受信リング発振器
380  受信リング発振器出力信号
381  シフト信号
382  復調データ信号
400  フレーム
405  ヘッダ、開始ビット
406  開始ビット
410  停止ビット
415  ローカウンタ
420  ハイカウンタ
425  比較器
600  プログラミングフレーム
605  プログラミングフレーム
610  フレームタイプビット
700  フレーム
705  フレーム
710  フレームタイプビット
800  フレーム
805  フレーム
900  ハイブリッドフレーム
905  拡張ヘッダ
910  メッセージングビット
915  仮想GPIOビット
1100  論理回路
1105  小さい部分カウンタ
1110  大きい部分カウンタ
【図１】
0006538715.tif 000002
【図２Ａ】
0006538715.tif 000003
【図２Ｂ】
0006538715.tif 000004
【図３】
0006538715.tif 000005
【図４】
0006538715.tif 000006
【図５】
0006538715.tif 000007
【図６】
0006538715.tif 000008
【図７】
0006538715.tif 000009
【図８】
0006538715.tif 000010
【図９】
0006538715.tif 000011
【図１０】
0006538715.tif 000012
【図１１】
0006538715.tif 000013