JP2016500174A - 仮想gpio - Google Patents

仮想gpio Download PDF

Info

Publication number
JP2016500174A
JP2016500174A JP2015537005A JP2015537005A JP2016500174A JP 2016500174 A JP2016500174 A JP 2016500174A JP 2015537005 A JP2015537005 A JP 2015537005A JP 2015537005 A JP2015537005 A JP 2015537005A JP 2016500174 A JP2016500174 A JP 2016500174A
Authority
JP
Japan
Prior art keywords
signals
gpio
processor
fsm
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015537005A
Other languages
English (en)
Other versions
JP2016500174A5 (ja
JP6074052B2 (ja
Inventor
ララン・ミシュラ
モヒット・プラサド
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016500174A publication Critical patent/JP2016500174A/ja
Publication of JP2016500174A5 publication Critical patent/JP2016500174A5/ja
Application granted granted Critical
Publication of JP6074052B2 publication Critical patent/JP6074052B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • Information Transfer Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

外部クロックのサイクルに応答して、仮想GPIO信号を直列化することと仮想GPIO信号を非直列化することの両方を行う有限状態機械が提供される。有限状態機械は、開始ビットおよび終了ビットによって各々分界されたフレームの中に、直列化された仮想GPIO信号をフレーム化する。

Description

関連出願
本出願は、参照によりその全体が本明細書に組み込まれている、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 停止ビット

Claims (22)

  1. プロセッサと、
    前記プロセッサから信号の第1のセットを受信するように構成されたGPIOインターフェースと、
    専用送信ピンと、
    前記GPIOインターフェースから信号の前記第1のセットを受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介してリモートプロセッサに、仮想GPIO信号の送信セットとして信号の前記第1のセットを直列に送信するように構成された、有限状態機械(FSM)と
    を備える、集積回路。
  2. 専用受信ピンをさらに備え、前記FSMが、前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに仮想GPIO信号の前記受信セットを供給するようにさらに構成された、請求項1に記載の集積回路。
  3. 専用GPIOピンをさらに備え、前記GPIOインターフェースが、前記プロセッサから信号の第2のセットを受信し、前記専用GPIOピンのうちの対応するピンを介して前記リモートプロセッサに、GPIO信号として信号の前記第2のセットを送信するようにさらに構成された、請求項1に記載の集積回路。
  4. 前記プロセッサがアプリケーションプロセッサを含む、請求項3に記載の集積回路。
  5. 前記プロセッサがモデムプロセッサを含む、請求項3に記載の集積回路。
  6. 前記FSMが、並列入力直列出力(PISO)シフトレジスタと、直列入力並列出力(SIPO)シフトレジスタとを備える、請求項2に記載の集積回路。
  7. 前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成された、請求項1に記載の集積回路。
  8. 前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記受信セットを直列に受信するようにさらに構成された、請求項2に記載の集積回路。
  9. 前記FSMが、前記フレーム用の前記終了ビットを受信できないことを検出することによって、前記リモートプロセッサの障害を検出するようにさらに構成された、請求項8に記載の集積回路。
  10. 前記FSMが、前記外部クロックについての第1のクロックエッジに応答して、仮想GPIO信号の前記送信セットを直列に送信し、前記外部クロックについての反対の第2のクロックエッジに応答して、仮想GPIO信号の前記受信セットを直列に受信するように構成された、請求項2に記載の集積回路。
  11. 前記第1のクロックエッジが立上りクロックエッジであり、前記第2のクロックエッジが立下りクロックエッジである、請求項10に記載の集積回路。
  12. 前記FSMが、仮想GPIO信号の前記送信セットについての現在の状態を前の状態と比較するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していたとき、前記FSMが、前記送信セットを直列に送信するようにさらに構成され、前記現在の状態が前記前の状態と比較して変化していなかったとき、前記FSMが、前記専用送信ピン上のデフォルトの論理状態を維持するようにさらに構成された、請求項1に記載の集積回路。
  13. 前記FSMが、開始ビットおよび終了ビットによって分界されたフレーム内で、仮想GPIO信号の前記送信セットを直列に送信するようにさらに構成され、前記開始ビットが前記デフォルトの論理状態とは異なる論理状態を有する、請求項12に記載の集積回路。
  14. 前記終了ビットが前記デフォルトの論理状態を含む、請求項13に記載の集積回路。
  15. GPIOインターフェースで、プロセッサから信号の第1のセットを受信するステップと、
    前記GPIOインターフェースから、有限状態機械(FSM)に信号の前記第1のセットを並列に供給するステップと、
    前記FSMにおいて、外部クロックのサイクルに応答して、専用送信ピンを介してリモートプロセッサに、仮想GPIO信号の送信セットとして信号の前記第1のセットを直列に送信するステップと
    を含む、方法。
  16. 前記FSMで、前記外部クロックのサイクルに応答して、専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信するステップと、
    前記FSMから、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを供給するステップと、
    前記GPIOインターフェースから、信号の第2のセットとして前記プロセッサに仮想GPIO信号の前記受信セットを供給するステップと
    をさらに含む、請求項15に記載の方法。
  17. 前記GPIOインターフェースで、信号の第2のセットを受信するステップと、
    対応するGPIOピンを介して前記リモートプロセッサに、信号の前記第2のセットを送信するステップと
    をさらに含む、請求項15に記載の方法。
  18. プロセッサと、
    前記プロセッサから信号の第1のセットを受信し、対応するGPIOピンを介してリモートプロセッサに、第1のGPIO信号として信号の前記第1のセットの一部分を送信するように構成された、GPIOインターフェースと、
    専用送信ピンと、
    前記GPIOインターフェースから信号の前記第1のセットの残りの部分を受信し、外部クロックのサイクルに応答して、前記専用送信ピンを介して前記リモートプロセッサに、仮想GPIO信号の送信セットとして前記残りの部分を直列に送信するための第1の手段と
    を備える、集積回路。
  19. 専用受信ピンと、
    前記外部クロックのサイクルに応答して、前記専用受信ピンを介して前記リモートプロセッサから、仮想GPIO信号の受信セットを直列に受信し、前記GPIOインターフェースに並列に仮想GPIO信号の前記受信セットを与えるための第2の手段と
    をさらに備える、請求項18に記載の集積回路。
  20. 前記GPIOインターフェースが、前記プロセッサに信号の第2のセットを供給するようにさらに構成され、前記第2のセットが、仮想GPIO信号の前記受信セットおよび前記リモートプロセッサからのGPIO信号の第2のセットを含む、請求項19に記載の集積回路。
  21. 前記プロセッサが、モバイル電話内のアプリケーションプロセッサを含む、請求項18に記載の集積回路。
  22. 前記プロセッサが、モバイル電話内のモデムプロセッサを含む、請求項18に記載の集積回路。
JP2015537005A 2012-10-15 2013-10-15 仮想gpio Active JP6074052B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261714118P 2012-10-15 2012-10-15
US61/714,118 2012-10-15
US13/750,839 2013-01-25
US13/750,839 US9129072B2 (en) 2012-10-15 2013-01-25 Virtual GPIO
PCT/US2013/065017 WO2014062661A1 (en) 2012-10-15 2013-10-15 Virtual gpio

Publications (3)

Publication Number Publication Date
JP2016500174A true JP2016500174A (ja) 2016-01-07
JP2016500174A5 JP2016500174A5 (ja) 2016-10-20
JP6074052B2 JP6074052B2 (ja) 2017-02-01

Family

ID=50476494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015537005A Active JP6074052B2 (ja) 2012-10-15 2013-10-15 仮想gpio

Country Status (6)

Country Link
US (2) US9129072B2 (ja)
EP (1) EP2907035A1 (ja)
JP (1) JP6074052B2 (ja)
KR (2) KR101665985B1 (ja)
CN (2) CN107273329B (ja)
WO (1) WO2014062661A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509974A (ja) * 2014-03-27 2017-04-06 インテル・コーポレーション 仮想汎用i/oコントローラ
JP2018518083A (ja) * 2015-04-14 2018-07-05 クアルコム,インコーポレイテッド マルチモード変調を用いる向上した仮想gpio

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9619427B2 (en) * 2014-04-21 2017-04-11 Qualcomm Incorporated Hybrid virtual GPIO
US9880965B2 (en) * 2014-09-11 2018-01-30 Qualcomm Incorporated Variable frame length virtual GPIO with a modified UART interface
EP3117330A1 (en) * 2014-11-13 2017-01-18 Qualcomm Incorporated Clockless virtual gpio
US10042797B2 (en) 2015-02-04 2018-08-07 Qualcomm Incorporated Voltage mode and current mode device enumeration
US9563398B2 (en) * 2015-03-06 2017-02-07 Qualcomm Incorporated Impedance-based flow control for a two-wire interface system with variable frame length
US9971666B2 (en) 2015-03-06 2018-05-15 Qualcomm Incorporated Technique of link state detection and wakeup in power state oblivious interface
US10241953B2 (en) 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface
US10140242B2 (en) 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US20170168966A1 (en) * 2015-12-10 2017-06-15 Qualcomm Incorporated Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
CN105553557B (zh) * 2015-12-16 2019-04-19 华进半导体封装先导技术研发中心有限公司 光纤通信光接收单元结构
US10180925B2 (en) 2016-03-28 2019-01-15 Nxp Usa, Inc. Integrated circuit with pin level access to IO pins
US20180329837A1 (en) * 2017-05-10 2018-11-15 Qualcomm Incorporated Input/output direction decoding in mixed vgpio state exchange
CN109857485B (zh) * 2019-01-28 2021-06-15 山东华芯半导体有限公司 一种可编程gpio装置及基于该装置的时序实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007006505A (ja) * 2001-08-29 2007-01-11 Analog Devices Inc 無線システムにおけるタイミングおよび事象処理の方法および装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960191A (en) 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
CN100422976C (zh) * 1998-05-08 2008-10-01 自由度半导体公司 数字通信处理器
CN1149794C (zh) * 1999-07-27 2004-05-12 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
EP1226493B1 (en) * 1999-11-05 2006-05-03 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication processor
US6980563B2 (en) 2000-04-13 2005-12-27 International Business Machines Corporation Method and system for fast ethernet serial port multiplexing to reduce I/O pin count
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
KR20030019744A (ko) * 2001-08-30 2003-03-07 엘지전자 주식회사 개인휴대용 정보단말기의 외부 인터페이스장치 및인터페이스방법
US20040127207A1 (en) * 2002-09-25 2004-07-01 Interdigital Technology Corporation Programmable radio interface
US7131077B1 (en) * 2003-03-28 2006-10-31 Xilinx, Inc Using an embedded processor to implement a finite state machine
CN100351827C (zh) * 2004-04-13 2007-11-28 联发科技股份有限公司 引脚共用系统
US7484027B1 (en) * 2004-09-20 2009-01-27 Cypress Semiconductor Corporation Apparatus and method for configurable device pins
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
US7991296B1 (en) * 2006-11-10 2011-08-02 Marvell International Ltd. Method and apparatus for data frame synchronization and delineation
KR20100103451A (ko) 2007-08-02 2010-09-27 제임스 부머 직렬 스트림에 걸쳐서 lcd, 카메라, 키패드 및 gpio 데이터를 인터리빙하고 직렬 변환하고/직병렬 변환하기 위한 방법론 및 회로
US8249616B2 (en) * 2007-08-23 2012-08-21 Texas Instruments Incorporated Satellite (GPS) assisted clock apparatus, circuits, systems and processes for cellular terminals on asynchronous networks
GB2462997B (en) 2008-04-23 2010-09-08 Wolfson Microelectronics Plc Method and apparatus for configuring a device
CN101329663B (zh) 2008-07-31 2010-04-21 炬力集成电路设计有限公司 一种实现片上系统管脚分时复用的装置及方法
CN101706552B (zh) * 2009-07-02 2011-09-28 苏州国芯科技有限公司 支持芯片不同引脚封装的可配置式片上测试模块
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
TWI406135B (zh) 2010-03-09 2013-08-21 Nuvoton Technology Corp 資料傳輸系統與可編程序列周邊介面控制器
US8433838B2 (en) 2010-09-17 2013-04-30 International Business Machines Corporation Remote multiplexing devices on a serial peripheral interface bus
WO2012125504A2 (en) 2011-03-11 2012-09-20 Skyworks Solutions, Inc. Dual mode serial/parallel interface and use thereof in improved wireless devices and switching components
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
CN103092810B (zh) * 2011-11-02 2017-03-01 飞思卡尔半导体公司 处理器、对处理器编程的方法以及电子设备
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007006505A (ja) * 2001-08-29 2007-01-11 Analog Devices Inc 無線システムにおけるタイミングおよび事象処理の方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509974A (ja) * 2014-03-27 2017-04-06 インテル・コーポレーション 仮想汎用i/oコントローラ
JP2018518083A (ja) * 2015-04-14 2018-07-05 クアルコム,インコーポレイテッド マルチモード変調を用いる向上した仮想gpio
JP2021145338A (ja) * 2015-04-14 2021-09-24 クアルコム,インコーポレイテッド マルチモード変調を用いる向上した仮想gpio

Also Published As

Publication number Publication date
US20150356053A1 (en) 2015-12-10
EP2907035A1 (en) 2015-08-19
KR101750672B1 (ko) 2017-06-23
KR101665985B1 (ko) 2016-10-13
KR20150070291A (ko) 2015-06-24
KR20160120806A (ko) 2016-10-18
CN104737148B (zh) 2017-09-05
US20140108679A1 (en) 2014-04-17
WO2014062661A1 (en) 2014-04-24
US9582456B2 (en) 2017-02-28
CN107273329B (zh) 2020-07-17
CN107273329A (zh) 2017-10-20
JP6074052B2 (ja) 2017-02-01
CN104737148A (zh) 2015-06-24
US9129072B2 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
JP6074052B2 (ja) 仮想gpio
US10241953B2 (en) Dynamic data-link selection over common physical interface
JP6538715B2 (ja) ハイブリッド仮想gpio
US10339093B2 (en) USB interface using repeaters with guest protocol support
US9563398B2 (en) Impedance-based flow control for a two-wire interface system with variable frame length
JP2017528830A (ja) 修正型uartインターフェースを有する可変フレーム長仮想gpio
US9747244B2 (en) Clockless virtual GPIO
EP3387546B1 (en) Serial communication link with optimal transfer latency
US11232060B2 (en) Method, apparatus and system for power supply policy exchange on a bus
WO2017171997A1 (en) A method, apparatus and system for communicating between multiple protocols
CN107436856B (zh) 具有直接控制的通信装置及相关方法
EP3117330A1 (en) Clockless virtual gpio

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151111

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20151111

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160902

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160902

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170105

R150 Certificate of patent or registration of utility model

Ref document number: 6074052

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250