(57)【要約】  外部クロックのサイクルに応答して、仮想GPIO信号を直列化することと仮想GPIO信号を非直列化することの両方を行う有限状態機械が提供される。有限状態機械は、開始ビットおよび終了ビットによって各々分界されたフレームの中に、直列化された仮想GPIO信号をフレーム化する。
2016500174.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサから信号の第1のセットを受信するように構成されたGPIOインターフェースと、
専用送信ピンと、
前記GPIOインターフェースから信号の前記第1のセットを受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介してリモートプロセッサに、仮想GPIO信号の送信セットとして信号の前記第1のセットを直列に送信するように構成された、有限状態機械(FSM)と
を備える、集積回路。
【請求項２】
専用受信ピンをさらに備え、前記FSMが、前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに仮想GPIO信号の前記受信セットを供給するようにさらに構成された、請求項1に記載の集積回路。
【請求項３】
専用GPIOピンをさらに備え、前記GPIOインターフェースが、前記プロセッサから信号の第2のセットを受信し、前記専用GPIOピンのうちの対応するピンを介して前記リモートプロセッサに、GPIO信号として信号の前記第2のセットを送信するようにさらに構成された、請求項1に記載の集積回路。
【請求項４】
前記プロセッサがアプリケーションプロセッサを含む、請求項3に記載の集積回路。
【請求項５】
前記プロセッサがモデムプロセッサを含む、請求項3に記載の集積回路。
【請求項６】
前記FSMが、並列入力直列出力(PISO)シフトレジスタと、直列入力並列出力(SIPO)シフトレジスタとを備える、請求項2に記載の集積回路。
【請求項７】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成された、請求項1に記載の集積回路。
【請求項８】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記受信セットを直列に受信するようにさらに構成された、請求項2に記載の集積回路。
【請求項９】
前記FSMが、前記フレーム用の前記終了ビットを受信できないことを検出することによって、前記リモートプロセッサの障害を検出するようにさらに構成された、請求項8に記載の集積回路。
【請求項１０】
前記FSMが、前記外部クロックについての第1のクロックエッジに応答して、仮想GPIO信号の前記送信セットを直列に送信し、前記外部クロックについての反対の第2のクロックエッジに応答して、仮想GPIO信号の前記受信セットを直列に受信するように構成された、請求項2に記載の集積回路。
【請求項１１】
前記第1のクロックエッジが立上りクロックエッジであり、前記第2のクロックエッジが立下りクロックエッジである、請求項10に記載の集積回路。
【請求項１２】
前記FSMが、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記FSMが、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記FSMが、前記専用送信ピン上のデフォルトの論理状態を維持するようにさらに構成された、請求項1に記載の集積回路。
【請求項１３】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成され、前記開始ビットが前記デフォルトの論理状態とは異なる論理状態を有する、請求項12に記載の集積回路。
【請求項１４】
前記終了ビットが前記デフォルトの論理状態を含む、請求項13に記載の集積回路。
【請求項１５】
GPIOインターフェースで、プロセッサから信号の第1のセットを受信するステップと、
前記GPIOインターフェースから、有限状態機械(FSM)に信号の前記第1のセットを並列に供給するステップと、
前記FSMにおいて、外部クロックのサイクルに応答して、専用送信ピンを介してリモートプロセッサに、仮想GPIO信号の送信セットとして信号の前記第1のセットを直列に送信するステップと
を含む、方法。
【請求項１６】
前記FSMで、前記外部クロックのサイクルに応答して、専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信するステップと、
前記FSMから、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを供給するステップと、
前記GPIOインターフェースから、信号の第2のセットとして前記プロセッサに仮想GPIO信号の前記受信セットを供給するステップと
をさらに含む、請求項15に記載の方法。
【請求項１７】
前記GPIOインターフェースで、信号の第2のセットを受信するステップと、
対応するGPIOピンを介して前記リモートプロセッサに、信号の前記第2のセットを送信するステップと
をさらに含む、請求項15に記載の方法。
【請求項１８】
プロセッサと、
前記プロセッサから信号の第1のセットを受信し、対応するGPIOピンを介してリモートプロセッサに、第1のGPIO信号として信号の前記第1のセットの一部分を送信するように構成された、GPIOインターフェースと、
専用送信ピンと、
前記GPIOインターフェースから信号の前記第1のセットの残りの部分を受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介して前記リモートプロセッサに、仮想GPIO信号の送信セットとして前記残りの部分を直列に送信するための第1の手段と
を備える、集積回路。
【請求項１９】
専用受信ピンと、
前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを与えるための第2の手段と
をさらに備える、請求項18に記載の集積回路。
【請求項２０】
前記GPIOインターフェースが、前記プロセッサに信号の第2のセットを供給するようにさらに構成され、前記第2のセットが、仮想GPIO信号の前記受信セットおよび前記リモートプロセッサからのGPIO信号の第2のセットを含む、請求項19に記載の集積回路。
【請求項２１】
前記プロセッサが、モバイル電話内のアプリケーションプロセッサを含む、請求項18に記載の集積回路。
【請求項２２】
前記プロセッサが、モバイル電話内のモデムプロセッサを含む、請求項18に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照によりその全体が本明細書に組み込まれている、2012年10月15日に出願された米国仮出願第61/714,118号の利益を主張するものである。
【０００２】
本出願は、汎用入出力(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アーキテクチャが、当技術分野には必要である。
【発明の概要】
【課題を解決するための手段】
【０００６】
各々がプロセッサを有する2つの集積回路間の通信用の仮想GPIOアーキテクチャが提供される。各集積回路は、信号のセットを使用するリモートプロセッサとの通信用のGPIOインターフェースも含む。この信号のセットは、GPIO信号のセットおよび仮想GPIO信号のセットを含む。したがって、各集積回路は、GPIO信号のセットに対応するGPIOピンのセットを含む。
【０００７】
GPIO信号のセットとは対照的に、仮想GPIO信号のセットはGPIOピンを介して送信されない。代わりに、各集積回路は、専用送信ピンおよび専用受信ピンを使用して、仮想GPIO信号のセットを送信および受信する。その点において、仮想GPIO信号のセットは送信セットおよび受信セットを含む。各集積回路内の有限状態機械(FSM)は、専用送信ピンを介してリモートプロセッサに、送信セットを直列に送信するように構成される。有限状態機械はさらに、専用受信ピンを介してリモートプロセッサから、仮想GPIO信号の受信セットを直列に受信するように構成される。
【０００８】
プロセッサは、GPIOインターフェースに信号の第1のセットを供給する。GPIOインターフェースから、信号の第1のセットの一部分が、対応するGPIOピンの第1のセットを介して、GPIO信号の第1のセットとしてリモートプロセッサに送信される。プロセッサからの信号の第1のセットの残りの部分は、FSMに並列にGPIOインターフェースによって供給される。次いで、FSMは、専用送信ピンを介して、仮想GPIO信号の送信セットとして残りの部分を直列に送信することができる。
【０００９】
GPIOインターフェースはまた、対応するGPIOピンの第2のセットを介して、リモートプロセッサからGPIO信号の第2のセットを受信する。加えて、FSMは、リモートプロセッサから仮想GPIO信号の受信セットを直列に受信し、その受信セットをGPIOインターフェースに並列に供給する。次いで、GPIOインターフェースは、リモートプロセッサからのGPIO信号の第2のセットと仮想GPIO信号の受信セットとを含む信号の第2のセットをプロセッサに供給する。
【００１０】
このようにして、プロセッサは、プロセッサがGPIOインターフェースに供給する信号の第1のセットがいずれかの仮想GPIO信号を含むかどうかに関して、「不可知論的」である。同様に、プロセッサがGPIOインターフェースから受信する信号の第2のセットがいずれかの仮想GPIO信号を含むかどうかは、プロセッサに機能的な相違を作らない。したがって、プロセッサは、本明細書で開示される仮想GPIOアーキテクチャとのその統合に関して、構成または再プログラミングを必要としない。その上、有限状態機械は、ソフトウェア駆動型ではないという点でプロセッサから独立している。したがって、仮想GPIOアーキテクチャは、プロセッサが電力を節約するスリープモードまたは場合によってはアクティブでない間、単独で機能することができる。
【００１１】
あるプロセッサ内のFSMは、開始ビットおよび終了ビットによって分界されたフレーム内で仮想GPIO信号の送信セットを送信する。したがって、リモートプロセッサ内のFSMは、仮想GPIO信号のその受信セットとして、送信されたフレームを受信する。開始ビットと終了ビットの両方を含む完全なフレームとして受信したかどうかを監視することによって、あるプロセッサ用のFSMは、リモートプロセッサが失敗したかどうかを検出することができる。
【図面の簡単な説明】
【００１２】
【図１】例示的な仮想GPIOアーキテクチャのブロック図である。
【図２Ａ】プロセッサが単一のリモートプロセッサと通信する仮想GPIOアーキテクチャについてのハイレベルブロック図である。
【図２Ｂ】プロセッサが2つのリモートプロセッサと通信する仮想GPIOアーキテクチャについてのハイレベルブロック図である。
【図３】仮想GPIO有限状態機械についてのブロック図である。
【図４】仮想GPIOフレームの送信と受信との間のタイミング関係を示す図である。
【図５】図1のGPIOアーキテクチャによって実践される方法についてのフローチャートである。
【発明を実施するための形態】
【００１３】
本発明の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって最も良く理解される。同じ参照番号は、図のうちの1つまたは複数に示された同じ要素を識別するために使用されることを諒解されたい。
【００１４】
一対のピンがより多くの複数のGPIOピンを構成しているかのように、システムがそれらを使用することを可能にする、仮想汎用入出力(GPIO)アーキテクチャが提供される。このアーキテクチャは、仮想GPIO信号を作成するシステムレベルのアプリケーションに対して、それらの仮想GPIO信号が従来のGPIOピン上の入出力に適応されているかのようであるという点で、仮想的であると考えられる。言い換えれば、本明細書で開示される仮想GPIOアーキテクチャを有するシステムオンチップ(SoC)またはプロセッサは、GPIO信号と仮想GPIO信号との間で機能的な相違に遭遇しない。しかしながら、そうでなければ(GPIO信号が対称である場合)各々がそれら自体のGPIOピンの専用ペアを必要とするはずの仮想GPIO信号を送信および受信するために、2つのピンが使用されるだけである。
【００１５】
本明細書で開示される仮想GPIOアーキテクチャは、モバイル電話または他の通信デバイス内のアプリケーションプロセッサとモデムプロセッサとの間のIPCに適応することに関して説明される。しかしながら、本明細書で開示される仮想GPIOの回路および技法は、GPIO機能を必要とするシステムオンチップ(SoC)または特定用途向け集積回路(ASIC)に広く適用可能であることが諒解されよう。
【００１６】
開示される仮想GPIOアーキテクチャにより、送信ノードの健康が受信ノードに対して透過的になる。これは、送信プロセッサが動作不能になる時間を受信プロセッサに示すので、特にソフトウェア実装用のデバッギング段階の間は、重要な利点である。
【００１７】
そのような強固な仮想GPIO機能を可能にするために、各集積回路は、回路板上の送信ラインに結合された専用送信ピンと、回路板上の受信ラインに結合された専用受信ピンとを含む。その点において、仮想GPIO信号は、送信ラインを介した送信用の送信セットと、受信ライン上の受信用の受信セットとに分割することができる。シグナリングが対称である場合、プロセッサごとの送信セット内の信号の数は同じである。しかしながら、本明細書で開示される仮想GPIOアーキテクチャは、あるプロセッサ用の仮想GPIO信号の送信セットが、リモートプロセッサ用の送信セットと同じサイズではない、非対称のシグナリングに適応することができる。
【００１８】
ここで図面を参照すると、図1は、モバイル電話または他の通信デバイス内の対応する集積回路において、アプリケーションプロセッサ集積回路100およびモデムプロセッサ集積回路105に関する仮想GPIOアーキテクチャ101を示す。各集積回路は専用送信ラインおよび専用受信ラインに結合するので、アプリケーションプロセッサ100用の送信ライン110aは、すなわちモデムプロセッサ105用の受信ラインである。同様に、モデムプロセッサ105用の送信ライン110bは、アプリケーションプロセッサ100用の受信ラインである。これらのラインまたはリードは、(破線150によって示された)回路板、または集積回路100と集積回路105との間の他の物理的な相互接続に担持される。各集積回路は、対応する送信ライン(たとえば、モデムプロセッサ105用のライン110b)に結合する専用送信ピンを含む。同様に、各プロセッサは、対応する受信ライン(たとえば、モデムプロセッサ105用のライン110a)に結合する専用受信ピンを含む。各集積回路内の有限状態機械(FSM)115は、32KHzスリープクロックなどの外部クロックソースからの外部クロック信号120に対して、これらの専用ラインおよび専用ピンを使用して、送信および受信を制御する。
【００１９】
GPIOの技術分野で知られているように、各プロセッサは、プロセッサがGPIOピンとインターフェースするGPIOインターフェース103を含む。有利なことに、そのGPIOインターフェースは、仮想GPIOアーキテクチャ101において不変であり得る。言い換えれば、各プロセッサは、仮想GPIOアーキテクチャ101がプロセッサ100およびプロセッサ105に対して透過的であるような従来の方式で、そのGPIOインターフェース103を介して信号を受信および送信する。各GPIOインターフェース103を介して処理された信号のある部分は、GPIO信号130として従来のGPIOピン125で送信および受信することができる。しかし、GPIOインターフェース103を介して処理された信号の残りの部分は、従来のGPIOピン125を介して送信または受信されない。代わりに、この残りの部分は、専用送信ピンおよび専用受信ピンを使用するFSM115を介して送信および受信される、複数の仮想GPIO信号135を含む。
【００２０】
GPIOインターフェース103を介して処理された信号のこの残りの部分は、従来のGPIO信号130の場合と同様にそれら自体の専用ピンを各々が有していないので、仮想GPIO信号135と呼ばれる。これは、各プロセッサコアがそのGPIOインターフェース103の一新を必要とせず、しかも、仮想GPIO信号135がそれら自体のピンを各々必要とする従来のGPIO実施形態と比較して、仮想GPIOアーキテクチャ101がピンの著しい削減を実現するという点で、極めて有利である。
【００２１】
集積回路は、ただ1つのFSM115を含む場合があるか、または複数の外部システムとインターフェースするための複数のこれらの要素を含む場合がある。図2Aは、それ自体のFSM115を含む集積回路205内のリモートプロセッサと通信するための単一のFSM115を集積回路200が含む、仮想GPIOアーキテクチャを示す。対照的に、図2Bに示された集積回路220は、それぞれ集積回路225および集積回路230内のリモートプロセッサと通信するためのFSM115AおよびFSM115Bを含む。その点において、本明細書で説明されたプロセッサなどのシステムオンチップ(SoC)は、他のSoCとの仮想GPIOシグナリングに適応するために必要であるのと同数のFSMで構成することができる。プロセッサが有することができるFSMの数にかかわらず、各FSMは、図2Aに示されたように、それ自体の専用送信ピン240および受信ピン245を使用して通信する。
【００２２】
再び図1を参照すると、仮想GPIO信号135がFSM115などの有限状態機械を使用して適応されるので、プロセッサコアは、スリープまたは他のタイプの休止状態であって、しかも仮想GPIO信号135を受信することが可能であり得る。このようにして、仮想GPIOアーキテクチャ101は、GPIOインターフェース103ごとのピンの数を有利に節約するだけでなく、低電力でもある。
【００２３】
本明細書で使用する「ピン」は、集積回路が回路板または他の物理的な相互接続(たとえば、パッケージ相互接続または相互接続を介したスルーホール)上のリードに結合するために使用するパッドまたは実際のピンなどの構造をカバーする総称である。たとえば、各集積回路が16個のGPIOピン125を有する場合、これらのピンは、8個の対称GPIO信号130(説明の明快さのために、図1では4つの従来のGPIO信号#1〜#4だけが示されている)または16個の非対称GPIO信号130に適応するように構成することができる。加えて、各集積回路は、ライン110aおよびライン110bを使用する複数のn個の仮想GPIO信号135の入出力インターフェースに適応することができ、nは任意の複数形の整数である。各プロセッサコアに関して、GPIO信号130と仮想GPIO信号135との間に相違はなく、両方とも、単にGPIOインターフェース103を介して、必要に応じて送信および受信される信号である。しかしながら、仮想GPIO信号135は、従来のGPIO信号130とは対称的に専用ピンを有していないので、仮想GPIO信号135は、ライン110aおよびライン110b上で送信するためにFSM115内で直列化される。受信すると、各FSM115は、受信された直列化仮想GPIO信号を非直列化する。したがって、各FSM115は、仮想GPIO信号135に対するシリアライザ/デシリアライザとして機能する。
【００２４】
プロセッサは、GPIO信号のうちの選択された信号における変化に応答して、割込み信号を受信する必要があり得る。仮想GPIO信号135に対して、モデム電力マネージャ(MPM)140は、割込み構成レジスタ145を介してプログラムされる選択されたGPIO信号を監視する。各仮想GPIO信号135は、対応する割込み構成レジスタ145を有する。仮想GPIO信号135がその信号変化状態に応答して割込みを発生させるように要求された場合、対応する構成レジスタ145はそのようにプログラムされる。同様に、その信号が状態を変更したかどうかにかかわらず、仮想GPIO信号135が割込みを発生させない信号である場合、対応する割込み構成レジスタはまた、そのようにプログラムされる。MPM140は有限状態機械を含む場合もある。したがって、FSM115とまったく同様に、MPM140は低電力であり、そのプロセッサがスリープモードまたは他の何らかの休止状態にあるかどうかにかかわらず、アクティブである。
【００２５】
仮想GPIO信号135は、送信セットおよび受信セットに細分することができる。対称システムでは、各セットは同じ数を有する。しかしながら、仮想GPIOアーキテクチャ101は、仮想GPIO信号135の送信セットと受信セットが異なるサイズを有する非対称シグナリングの実施形態に容易に適応できるという点で、有利であることが諒解されよう。アーキテクチャ101が対称か非対称かにかかわらず、仮想GPIO信号135の送信セット内の各信号が、GPIOインターフェース103とFSM115との間のそれ自体のリード106上で搬送されるという意味で、各FSM115は、GPIOインターフェース103から並列に仮想GPIO信号135の送信セットを受信する。対照的に、FSM115によるこの送信セットの生じる送信は、図2Aに関して説明されたように単一の送信ピン240を介して行われる。次いで、仮想GPIO信号のこの送信セットは、リモートプロセッサ用の受信セットになる。次いで、リモートプロセッサのFSMは受信セットを非直列化し、その結果、受信セットはGPIOインターフェース103に並列に与えることができる。
【００２６】
各FSM115は、仮想GPIO信号135の送信セットについての前の状態を記憶する構成レジスタ107を含む。このようにして、各FSM115は、GPIOインターフェース103から受信された送信セットの現在の状態を監視し、現在の状態が前の状態に対して変化した場合のみ、送信セットの直列送信をトリガすることができる。言い換えれば、FSM115は、構成レジスタ107内の前の状態の記憶を介して検出されたように、送信セット内の信号のうちの1つまたは複数が状態を変化させた場合のみ、送信セットの直列送信をトリガする。
【００２７】
上記で説明されたように、各FSM115は、シリアライザ/デシリアライザとして動作して、仮想GPIO信号135の送信セットを直列化し、仮想GPIO信号135の受信セットを非直列化する。図3は、これらの動作をより良く説明するFSM115のブロック図である。FSM115は、GPIOインターフェース103(図1)を経由し、多重化モジュール300を介して、仮想GPIO信号135をプロセッサコアと交換する。一実施形態では、FSM115は、送信セット内で変更があった場合、送信ライン110aを介した仮想GPIO信号135の送信セットの送信を認可する論理回路301を含む。論理回路301は、こうして、仮想GPIO信号135の送信セットについての現在の状態を、構成レジスタ107に記憶された送信信号のこのセットについての前の状態と比較する。たとえば、論理回路301は、この比較を実行するXORゲート310を含む場合がある。多重化モジュール300は、並列入力直列出力(PISO)シフトレジスタ315の中に並列に送信セットをロードする。XORゲート310からのイネーブル信号320が高くなった(送信セットについての現在の状態と前の状態との間の変化を示す)場合、PISOシフトレジスタ315はイネーブルにされて、外部クロック120のサイクルに応答して、そのコンテンツを送信ライン110a上に直列にシフトアウトする。
【００２８】
FSM115はまた、直列入力並列出力(SIPO)シフトレジスタ325を使用する類似の方式で、仮想GPIO信号の受信セットを非直列化する。仮想GPIO信号135の受信セットは、リモートプロセッサによって生成され、リモートプロセッサにより受信ライン110b上に送信される。仮想GPIO信号135のこの受信セットは、外部クロック120のサイクルに応答して、SIPOシフトレジスタ325の中に連続的にシフトされる。FSM115は、本明細書でさらに説明されるように、別個の開始ビットと終了ビットを有するフレーム内で、仮想GPIO信号135の送信セットを送信し、受信セットを受信するように構成される。
【００２９】
フレームは、あらかじめ定義されたサイズを有する。一実施形態では、フレームサイズは、一定数のビット長になるように固定される場合がある。仮想GPIO信号の送信セットがこの固定サイズよりも小さい場合、各フレーム内の未使用ビットは、値を気にしない場合がある。代替として、各FSM115は、所与のアプリケーションに必要なビットの数に応じて、送信されるフレームのサイズを変更するように構成される場合がある。
【００３０】
仮想GPIO信号135の受信セット用の完全なフレームの受信を検出するために、FSM115は、フレーム用の開始ビットの受信後、外部クロック120用のサイクルの必要な数をカウントする論理回路350を含む場合がある。たとえば、受信セットが、外部クロック120の10サイクルに応答して受信された10個の仮想GPIO信号を含むと仮定する。開始ビットの検出および外部クロック120のさらなる10サイクルの待機後、論理回路350は、次いで、終了ビットの受信を予想する。終了ビットがそれに応じて検出された場合、論路回路350は、次いで、出力ラッチ351をストローブさせて、完全なフレームとしてSIPOシフトレジスタ325の中にシフトされている仮想GPIO信号の受信セットを並列に受信することができる。次いで、仮想GPIO信号のラッチされた受信セットは、多重化モジュール300を介してGPIOインターフェース103に与えることができる。
【００３１】
再びPISOシフトレジスタ315を参照すると、このレジスタは、開始ビットと終了ビットで仮想GPIO信号の送信セットをフレーム化するように構成されることが諒解されよう。仮想GPIO信号の送信セットは、こうして、開始ビットと終了ビットによって分界されたフレーム内で送信される。プロセッサ用の送信セットは、リモートプロセッサ用の受信セットになるので、受信セットもそれに応じてフレーム化される。このフレーム化は、いかなる追加の専用ピンも必要とせずに、各プロセッサがそうすることでリモートプロセッサの健康を監視できるという点で有利である。たとえば、各FSM115は、その専用送信ピン240を弱く引いて(したがって、送信ライン110aを弱く引いて)、(仮想GPIO信号の送信セットについての前の状態に対する現在の状態に変化がない)デフォルト状態の間、電圧を供給するように構成することができる。FSM115が開始ビットの送信用の送信ライン110aを接地するような実施形態の場合、開始ビットは論理ゼロになる。このようにして、各FSM115は、受信ライン110bが接地に向かって引かれたことを検出することによって、開始ビットの受信を容易に検出することができる。一実施形態では、開始ビットと停止ビットは、互いの論理補数である。
【００３２】
プロセッサが、その送信ライン110aを接地に不適切に引くように、失敗している可能性がある。したがって、リモートプロセッサは、開始ビットとしてこれを検出し、論理回路350は、それに応じてフレームの最後に向かってカウントを開始する。しかし、各FSM115が送信ライン110aを電源電圧に帯電させてフレーム送信の最後をシグナリングするようなこの実施形態では、終了ビットは論理1である。リモートFSMが開始ビットであると考えられるものを検出したように、プロセッサが失敗した場合、論理回路350は終了ビットを検出せず、それに応じてリモートプロセッサの障害をそのプロセッサに通知する。
【００３３】
図4は、仮想GPIOフレーム400の送信および受信用の外部クロック120に関する例示的なタイミングを示す。受信用の十分なセットアップ時間を与えるために、送信は第1のクロックエッジに対して行われ、受信は残りのクロックエッジに対して行われるべきである。たとえば、PISOシフトレジスタ315内のビットは、外部クロック120についての立下りエッジまたは負のエッジに応答して、送信ライン110a上の送信のためにシフトアウトすることができる。逆に、受信ライン110b上で受信されたビットは、クロック120の立上りエッジまたは正のエッジに応答して、SIPOシフトレジスタ325の中にシフトすることができる。
【００３４】
あるプロセッサがリモートプロセッサにおける非アクティブ状態を検出するために、各FSM115は、(送信するフレームが存在しない)デフォルト状態でその送信ライン高を弱く引くように構成することができる。開始ビットと停止ビットは反対の論理状態を有する。したがって、開始ビット405は、送信ライン110aがその送信について低く引かれるようにゼロであり得るし、一方、停止ビット410は、送信ライン110aがその送信について高く引かれるようにバイナリ1の値であり得る。再び図3を参照すると、論路回路350は、外部クロック120上の立上りエッジに対して受信ライン110bを監視するように構成される。フレーム送信がないデフォルトの論理状態は、前に説明されたようにその弱いプルアップのせいで高く残っているだけの受信ライン110bによって示される。論理回路350が外部クロック120についての立上りエッジのうちの1つで、(開始ビット405のゼロ値を示す)受信ライン110bが低く引かれたことを検出した場合、論理回路350は、フレーム400のあらかじめ定義されたサイズに応じた十分な数のクロックサイクルの間待機して、次いで停止ビット410の論理高の値を検出する。停止ビット410の受信は、完全なフレーム400がSIPOシフトレジスタ325の中に完全にシフトされていることを論理回路350に示す。その時点で、論理回路350は、受信されたフレームがラッチ351を介して多重化モジュール300に並列に供給されるように、SIPOシフトレジスタ325をストローブさせる。次いで、仮想GPIO信号の受信セットは、それに応じてGPIOインターフェース103を介してプロセッサコアに供給することができる。
【００３５】
32KHzスリープクロックなどの比較的遅い外部クロック120は、IPCのシグナリング要件に十分である。たとえば、仮想GPIO信号の送信に対する最小のセットアップ要件および保持要件が各々2ナノ秒であり、仮想GPIOのFSMでの外部クロック120の受信に対する最大の予想されるリードまたはラグが6ナノ秒であると仮定する。結果として生じる外部クロック120用の最大周波数は、62MHzであることを容易に示すことができる。したがって、スリープクロックなどからの32KHzの周波数は、そのような実施形態の場合、非常に大きいマージンの安全性を提供する。
【００３６】
アーキテクチャ101のための動作方法が、図5のフローチャートに要約される。方法は、ステップ500で、GPIOインターフェースがそのプロセッサから信号のセットを受信することから始まる。次いで、ステップ505で、GPIOインターフェースから、信号のセットがFSMに供給される。ステップ510で、FSMは、外部クロックのサイクルに応答して、専用送信ピンを介して信号のセットを直列に送信する。
【００３７】
開示された仮想GPIOアーキテクチャの利点は、2つだけのピンおよび共通クロックソースが必要であるが、有限状態機械を介して任意の数の仮想GPIO信号を直列化および非直列化できることであると考える。唯一の制限は、外部クロック120およびクロックのラグまたはリードの任意の予想される量に対する仮想GPIO信号についてのタイミング要件である。その上、あるプロセッサの健康を相対するプロセッサに対して透過的にするために、他のピンが必要になることはない。
【００３８】
当業者がそろそろ諒解するように、かつ目下の特定の適用例に応じて、本開示の精神および範囲から逸脱することなく、本開示のデバイスの材料、装置、構成、および使用方法において、かつそれらに対して、多くの修正、置換、および変更を行うことができる。これに照らして、本明細書に例示および記載された特定の実施形態は、それらのいくつかの例としているにすぎないので、本開示の範囲はそれらの範囲に限定されるべきではなく、むしろ、以後に添付された特許請求の範囲およびそれらの機能的な均等物の範囲に完全に相応するべきである。
【符号の説明】
【００３９】
100  アプリケーションプロセッサ集積回路
101  仮想GPIOアーキテクチャ
103  GPIOインターフェース
105  モデムプロセッサ集積回路
106  リード
107  構成レジスタ
110a  アプリケーションプロセッサ100用の送信ライン(モデムプロセッサ105用の受信ライン)
110b  モデムプロセッサ105用の送信ライン(アプリケーションプロセッサ100用の受信ライン)
115  有限状態機械(FSM)
115A  FSM
115B  FSM
120  外部クロック
125  GPIOピン
130  GPIO信号
135  仮想GPIO信号
140  モデム電力マネージャ(MPM)
145  割込み構成レジスタ
150  破線
200  集積回路
205  集積回路
220  集積回路
225  集積回路
230  集積回路
240  専用送信ピン
245  専用受信ピン
300  多重化モジュール
301  論理回路
310  XORゲート
315  並列入力直列出力(PISO)シフトレジスタ
320  イネーブル信号
325  直列入力並列出力(SIPO)シフトレジスタ
350  論路回路
351  出力ラッチ
400  仮想GPIOフレーム
405  開始ビット
410  停止ビット
【図１】
2016500174.tif 000003
【図２Ａ】
2016500174.tif 000004
【図２Ｂ】
2016500174.tif 000005
【図３】
2016500174.tif 000006
【図４】
2016500174.tif 000007
【図５】
2016500174.tif 000008
【手続補正書】
【提出日】平成26年7月7日(2014.7.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサ(100)と、
前記プロセッサ(100)から信号の第1のセット(135)を受信するように構成されたGPIOインターフェース(103)と、
専用送信ピン(110a)と、
前記GPIOインターフェース(103)から信号の前記第1のセット(135)を受信し、外部クロック(120)のサイクルに応答して、前記専用送信ピン(110a)を介してリモートプロセッサ(105)に、仮想GPIO信号の送信セットとして信号の前記第1のセット(135)を直列に送信するように構成された、有限状態機械FSM(115)と
を備え、
前記FSM(115)が、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記FSM(115)が、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記FSM(115)が、前記専用送信ピン(110a)上のデフォルトの論理状態を維持するようにさらに構成された、
集積回路。
【請求項２】
専用受信ピン(110b)をさらに備え、前記FSM(115)が、前記外部クロック(120)のサイクルに応答して、前記専用受信ピン(110b)を介して前記リモートプロセッサ(105)から、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェース(103)に仮想GPIO信号の前記受信セットを供給するようにさらに構成された、請求項1に記載の集積回路。
【請求項３】
専用GPIOピンをさらに備え、前記GPIOインターフェース(103)が、前記プロセッサ(100)から信号の第2のセット(130)を受信し、前記専用GPIOピンのうちの対応するピンを介して前記リモートプロセッサ(105)に、GPIO信号として信号の前記第2のセット(130)を送信するようにさらに構成された、請求項1に記載の集積回路。
【請求項４】
前記プロセッサ(100)がアプリケーションプロセッサを含む、請求項3に記載の集積回路。
【請求項５】
前記プロセッサ(100)がモデムプロセッサを含む、請求項3に記載の集積回路。
【請求項６】
前記FSM(115)が、並列入力直列出力PISOシフトレジスタ(315)と、直列入力並列出力SIPOシフトレジスタ(325)とを備える、請求項2に記載の集積回路。
【請求項７】
前記FSM(115)が、開始ビット(405)および終了ビット(410)によって分界されたフレーム(400)内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成された、請求項1に記載の集積回路。
【請求項８】
前記FSM(115)が、開始ビット(405)および終了ビット(410)によって分界されたフレーム(400)内で、仮想GPIO信号の前記受信セットを直列に受信するようにさらに構成された、請求項2に記載の集積回路。
【請求項９】
前記FSM(115)が、前記フレーム(400)用の前記終了ビット(410)を受信できないことを検出することによって、前記リモートプロセッサ(105)の障害を検出するようにさらに構成された、請求項8に記載の集積回路。
【請求項１０】
前記FSM(115)が、前記外部クロック(120)についての第1のクロックエッジに応答して、仮想GPIO信号の前記送信セットを直列に送信し、前記外部クロック(120)についての反対の第2のクロックエッジに応答して、仮想GPIO信号の前記受信セットを直列に受信するように構成された、請求項2に記載の集積回路。
【請求項１１】
前記第1のクロックエッジが立上りクロックエッジであり、前記第2のクロックエッジが立下りクロックエッジである、請求項10に記載の集積回路。
【請求項１２】
前記FSM(115)が、開始ビット(405)および終了ビット(410)によって分界されたフレーム(400)内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成され、前記開始ビット(405)が前記デフォルトの論理状態とは異なる論理状態を有する、請求項1に記載の集積回路。
【請求項１３】
前記終了ビット(410)が前記デフォルトの論理状態を含む、請求項12に記載の集積回路。
【請求項１４】
GPIOインターフェース(103)で、プロセッサ(100)から信号の第1のセット(135)を受信するステップ(500)と、
前記GPIOインターフェース(103)から、有限状態機械FSM(115)に信号の前記第1のセット(135)を並列に供給するステップ(505)と、
前記FSM(115)において、外部クロック(120)のサイクルに応答して、専用送信ピン(110a)を介してリモートプロセッサ(105)に、仮想GPIO信号の送信セットとして信号の前記第1のセット(135)を直列に送信するステップ(510)と
を含み、
前記FSM(115)が、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記FSM(115)が、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記FSM(115)が、前記専用送信ピン(110a)上のデフォルトの論理状態を維持するようにさらに構成された、
方法。
【請求項１５】
前記FSM(115)で、前記外部クロック(120)のサイクルに応答して、専用受信ピン(110b)を介して前記リモートプロセッサ(105)から、仮想GPIO信号の受信セットを直列に受信するステップと、
前記FSM(115)から、前記GPIOインターフェース(103)に並列に仮想GPIO信号の前記受信セットを供給するステップと、
前記GPIOインターフェース(103)から、信号の第2のセットとして前記プロセッサ(105)に仮想GPIO信号の前記受信セットを供給するステップと
をさらに含む、請求項14に記載の方法。
【請求項１６】
前記GPIOインターフェース(103)で、信号の第2のセット(130)を受信するステップと、
対応するGPIOピンを介して前記リモートプロセッサ(105)に、信号の前記第2のセット(130)を送信するステップと
をさらに含む、請求項14に記載の方法。
【請求項１７】
プロセッサ(100)と、
前記プロセッサ(100)から信号の第1のセット(135)を受信し、対応するGPIOピンを介してリモートプロセッサ(105)に、第1のGPIO信号として信号の前記第1のセット(135)の一部分を送信するように構成された、GPIOインターフェース(103)と、
専用送信ピン(110a)と、
前記GPIOインターフェース(103)から信号の前記第1のセット(135)の残りの部分を受信し、外部クロック(120)のサイクルに応答して、前記専用送信ピン(110a)を介して前記リモートプロセッサ(105)に、仮想GPIO信号の送信セットとして前記残りの部分を直列に送信するための第1の手段(115)と
を備え、
前記第1の手段(115)が、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記第1の手段(115)が、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記第1の手段(115)が、前記専用送信ピン(110a)上のデフォルトの論理状態を維持するようにさらに構成された、
集積回路。
【請求項１８】
専用受信ピンと、
前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェース(103)に並列に仮想GPIO信号の前記受信セットを与えるための第2の手段と
をさらに備える、請求項17に記載の集積回路。
【請求項１９】
前記GPIOインターフェース(103)が、前記プロセッサに信号の第2のセットを供給するようにさらに構成され、前記第2のセットが、仮想GPIO信号の前記受信セットおよび前記リモートプロセッサからのGPIO信号の第2のセットを含む、請求項18に記載の集積回路。
【請求項２０】
前記プロセッサ(100)が、モバイル電話内のアプリケーションプロセッサを含む、請求項17に記載の集積回路。
【請求項２１】
前記プロセッサ(100)が、モバイル電話内のモデムプロセッサを含む、請求項17に記載の集積回路。
【手続補正書】
【提出日】平成27年11月11日(2015.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
複数のGPIOピンと、
前記プロセッサから信号の第1のセットを受信するとともに前記プロセッサから信号の第2のセットを受信するように構成されたGPIOインターフェースであって、前記GPIOインターフェースは前記GPIOピンのうちの対応するピンを介してリモートプロセッサに、GPIO信号の前記第2のセットを送信するようにさらに構成される、GPIOインターフェースと、
専用送信ピンと、
前記GPIOインターフェースから信号の前記第1のセットを受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介してリモートプロセッサに、仮想GPIO信号の送信セットとして信号の前記第1のセットを直列に送信するように構成された、有限状態機械（FSM）と
を備える集積回路。
【請求項２】
専用受信ピンをさらに備え、前記FSMが、前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに仮想GPIO信号の前記受信セットを供給するようにさらに構成された、請求項1に記載の集積回路。
【請求項３】
前記プロセッサがアプリケーションプロセッサを含む、請求項1に記載の集積回路。
【請求項４】
前記プロセッサがモデムプロセッサを含む、請求項1に記載の集積回路。
【請求項５】
前記FSMが、並列入力直列出力（PISO）シフトレジスタと、直列入力並列出力（SIPO）シフトレジスタとを備える、請求項2に記載の集積回路。
【請求項６】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成された、請求項1に記載の集積回路。
【請求項７】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記受信セットを直列に受信するようにさらに構成された、請求項2に記載の集積回路。
【請求項８】
前記FSMが、前記フレーム用の前記終了ビットを受信できないことを検出することによって、前記リモートプロセッサの障害を検出するようにさらに構成された、請求項7に記載の集積回路。
【請求項９】
前記FSMが、前記外部クロックについての第1のクロックエッジに応答して、仮想GPIO信号の前記送信セットを直列に送信し、前記外部クロックについての反対の第2のクロックエッジに応答して、仮想GPIO信号の前記受信セットを直列に受信するように構成された、請求項2に記載の集積回路。
【請求項１０】
前記第1のクロックエッジが立上りクロックエッジであり、前記第2のクロックエッジが立下りクロックエッジである、請求項9に記載の集積回路。
【請求項１１】
前記FSMが、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記FSMが、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記FSMが、前記専用送信ピン上のデフォルトの論理状態を維持するようにさらに構成された、請求項1に記載の集積回路。
【請求項１２】
前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成され、前記開始ビットが前記デフォルトの論理状態とは異なる論理状態を有する、請求項11に記載の集積回路。
【請求項１３】
前記終了ビットが前記デフォルトの論理状態を含む、請求項12に記載の集積回路。
【請求項１４】
GPIOインターフェースで、プロセッサから信号の第1のセットを受信するとともに前記プロセッサからGPIO信号の第2のセットを受信するステップと、
前記GPIOインターフェースから、対応するGPIOピンを介してリモートプロセッサに、GPIO信号の前記第2のセットを送信するステップと、
前記GPIOインターフェースから、有限状態機械（FSM）にGPIO信号の前記第１のセットを並列に供給するステップと、
前記FSMにおいて、外部クロックのサイクルに応答して、専用送信ピンを介して前記リモートプロセッサに、仮想GPIO信号の送信セットとしてGPIO信号の前記第1のセットを直列に送信するステップと
を含む方法。
【請求項１５】
前記FSMで、前記外部クロックのサイクルに応答して、専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信するステップと、
前記FSMから、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを供給するステップと、
前記GPIOインターフェースから、信号の第2のセットとして前記プロセッサに仮想GPIO信号の前記受信セットを供給するステップと
をさらに含む、請求項14に記載の方法。
【請求項１６】
前記GPIOインターフェースで、信号の第2のセットを受信するステップと、
対応するGPIOピンを介して前記リモートプロセッサに、信号の前記第2のセットを送信するステップと
をさらに含む、請求項14に記載の方法。
【請求項１７】
複数のGPIOピンと、
プロセッサと、
前記プロセッサからGPIO信号の第1のセットを受信し、前記GPIOピンのうちの対応するピンを介してリモートプロセッサに、第1のGPIO信号としてGPIO信号の前記第1のセットの一部分を送信するように構成された、GPIOインターフェースと、
専用送信ピンと、
前記GPIOインターフェースからGPIO信号の前記第1のセットの残りの部分を受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介して前記リモートプロセッサに、仮想GPIO信号の送信セットとして前記残りの部分を直列に送信するための第1の手段と
を備える集積回路。
【請求項１８】
専用受信ピンと、
前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを与えるための第2の手段と
をさらに備える、請求項17に記載の集積回路。
【請求項１９】
前記GPIOインターフェースが、前記プロセッサに信号の第2のセットを供給するようにさらに構成され、前記第2のセットが、仮想GPIO信号の前記受信セットおよび前記リモートプロセッサからのGPIO信号の第2のセットを含む、請求項18に記載の集積回路。
【請求項２０】
前記プロセッサが、モバイル電話内のアプリケーションプロセッサを含む、請求項17に記載の集積回路。
【請求項２１】
前記プロセッサが、モバイル電話内のモデムプロセッサを含む、請求項17に記載の集積回路。
【国際調査報告】
2016500174.tif 000009
2016500174.tif 000010
2016500174.tif 000011