JP2018533120A - マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化 - Google Patents

マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化 Download PDF

Info

Publication number
JP2018533120A
JP2018533120A JP2018512395A JP2018512395A JP2018533120A JP 2018533120 A JP2018533120 A JP 2018533120A JP 2018512395 A JP2018512395 A JP 2018512395A JP 2018512395 A JP2018512395 A JP 2018512395A JP 2018533120 A JP2018533120 A JP 2018533120A
Authority
JP
Japan
Prior art keywords
gpio
signals
output
purpose input
bit
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.)
Pending
Application number
JP2018512395A
Other languages
English (en)
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 JP2018533120A publication Critical patent/JP2018533120A/ja
Pending legal-status Critical Current

Links

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Systems (AREA)
  • Logic Circuits (AREA)
  • Bus Control (AREA)

Abstract

ある態様では、集積回路は、1つまたは複数の周辺デバイスのための汎用入力/出力(GPIO)信号のセットを取得し、中央処理装置とは独立にGPIO信号のセットを含む第1の仮想GPIOパケットを取得し、中央処理装置とは独立にI3Cバスを通じて第1の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信する。集積回路はさらに、1つまたは複数の周辺デバイスの1つまたは複数のGPIOピンを構成するための構成信号のセットを取得し、中央処理装置とは独立に構成信号のセットを含む第2の仮想GPIOパケットを取得し、中央処理装置とは独立にI3Cバスを通じて第2の仮想GPIOパケットを1つまたは複数の周辺デバイスに送信し得る。

Description

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

Claims (30)

1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得し、
中央処理装置とは独立に汎用入力/出力信号の前記セットを含む第1の仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立にI3Cバスを通じて前記第1の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、集積回路。
前記処理回路がさらに、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記第1の仮想汎用入力/出力パケットに含まれる、請求項1に記載の集積回路。
前記処理回路がさらに、
前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得し、
前記中央処理装置とは独立に構成信号の前記セットを含む第2の仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立に前記I3Cバスを通じて前記第2の仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、請求項1に記載の集積回路。
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記第2の仮想汎用入力/出力パケットに含まれる、請求項3に記載の集積回路。
前記第1の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける直接の入力/出力マッピングレジスタのアドレスを含み、前記直接の入力/出力マッピングレジスタの各ビットが、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項1に記載の集積回路。
前記第2の仮想汎用入力/出力パケットがさらに、前記1つまたは複数の周辺デバイスにおける構成レジスタのアドレスを含む、請求項3に記載の集積回路。
構成信号の前記セットが、
前記1つまたは複数の周辺デバイスの前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項3に記載の集積回路。
前記処理回路がさらに、
マッピング表に基づいて前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の少なくとも前記セットを前記第1の仮想汎用入力/出力パケットの中の第1の所定のビット場所にマッピングし、または、前記マッピング表に基づいて構成信号の前記セットを前記第2の仮想汎用入力/出力パケットの中の第2の所定のビット場所にマッピングするように構成される、請求項3に記載の集積回路。
1つまたは複数の周辺デバイスと通信するように構成される通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に前記1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得し、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得し、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングし、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得し、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信する
ように構成される、集積回路。
前記処理回路がさらに、
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、請求項9に記載の集積回路。
前記処理回路がさらに、
構成信号の前記セットと関連付けられるマスク信号のセットを取得するように構成され、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項9に記載の集積回路。
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項9に記載の集積回路。
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項9に記載の集積回路。
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項9に記載の集積回路。
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項9に記載の集積回路。
集積回路において使用可能な方法であって、
中央処理装置とは独立に1つまたは複数の周辺デバイスのための汎用入力/出力信号のセットを取得するステップと、
前記中央処理装置とは独立に前記1つまたは複数の周辺デバイスの1つまたは複数の汎用入力/出力ピンを構成するための構成信号のセットを取得するステップと、
マッピング表に基づいて、汎用入力/出力信号の前記セットおよび構成信号の前記セットを仮想汎用入力/出力パケットの中の所定のビット場所にマッピングするステップと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを含む前記仮想汎用入力/出力パケットを取得するステップと、
前記中央処理装置とは独立にI3Cバスを通じて前記仮想汎用入力/出力パケットを前記1つまたは複数の周辺デバイスに送信するステップとを備える、方法。
汎用入力/出力信号の前記セットと関連付けられるマスク信号のセットを取得するステップをさらに備え、汎用入力/出力信号の前記セットと関連付けられるマスク信号の前記セットが、前記仮想汎用入力/出力パケットに含まれる、請求項16に記載の方法。
構成信号の前記セットと関連付けられるマスク信号のセットを取得するステップをさらに備え、構成信号の前記セットと関連付けられるマスク信号の前記セットが前記仮想汎用入力/出力パケットに含まれる、請求項16に記載の方法。
前記所定のビット場所が、前記マッピング表に基づく前記1つまたは複数の周辺デバイスのアドレスに対応する、請求項16に記載の方法。
構成信号の前記セットが、前記1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項16に記載の方法。
汎用入力/出力信号の前記セットの各々が、前記1つまたは複数の周辺デバイスの対応する汎用入力/出力ピンのピンステータスを制御する、請求項16に記載の方法。
前記1つまたは複数の周辺デバイスのための汎用入力/出力信号の前記セットが、汎用入力/出力信号の前記セット、または知的財産ブロック記憶するように構成される汎用入力/出力信号インターフェースから取得されるように構成される、請求項16に記載の方法。
ホストデバイスと通信するように構成された通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
中央処理装置とは独立に、I3Cバスを通じて前記ホストデバイスから仮想汎用入力/出力パケットを含むI3Cフレームを受信することであって、前記仮想汎用入力/出力パケットが前記I3Cフレームにおいてカプセル化される、受信することと、
前記中央処理装置とは独立に、前記集積回路と関連付けられる汎用入力/出力信号のセットおよび構成信号のセットを含む前記仮想汎用入力/出力パケットを取得することと、
マッピング表に基づいて、前記仮想汎用入力/出力パケットの中の所定のビット場所における汎用入力/出力信号の前記セットおよび構成信号の前記セットを識別することと、
汎用入力/出力信号の前記セットおよび構成信号の前記セットを取得することと
を行うように構成される、集積回路。
前記処理回路がさらに、前記集積回路の構成段階の間にホストデバイスから前記I3Cバスを通じて前記マッピング表を受信するように構成される、請求項23に記載の集積回路。
前記処理回路がさらに、マスクビットを用いて示される汎用入力/出力信号の前記セットの各々を、変更された状態を有するものとして識別するように構成される、請求項23に記載の集積回路。
前記処理回路がさらに、マスクビットを用いて示される構成信号の前記セットの各々を、変更された状態を有するものとして識別するように構成される、請求項23に記載の集積回路。
構成信号の前記セットが、
前記集積回路の1つまたは複数の汎用入力/出力ピンの1つまたは複数の電気的な特性を設定するように構成される、請求項23に記載の集積回路。
前記1つまたは複数の汎用入力/出力ピンの前記1つまたは複数の電気的な特性が、少なくとも駆動の強さ、スルーレート、電圧レベル、出力タイプ、または割り込みトリガタイプを含む、請求項27に記載の集積回路。
前記I3CフレームがブロードキャストI3Cフレームまたは有向I3Cフレームである、請求項23に記載の集積回路。
前記I3Cフレームが、前記I3Cフレームを前記ブロードキャストI3Cフレームまたは前記有向I3Cフレームとして識別するコマンドコードを含む、請求項29に記載の集積回路。
JP2018512395A 2015-09-10 2016-08-22 マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化 Pending JP2018533120A (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562216891P 2015-09-10 2015-09-10
US62/216,891 2015-09-10
US201562265612P 2015-12-10 2015-12-10
US62/265,612 2015-12-10
US201662349609P 2016-06-13 2016-06-13
US62/349,609 2016-06-13
US15/242,368 US10140242B2 (en) 2015-09-10 2016-08-19 General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US15/242,368 2016-08-19
PCT/US2016/048082 WO2017044301A1 (en) 2015-09-10 2016-08-22 Input/output signal bridging and virtualization in a multi-node network

Publications (1)

Publication Number Publication Date
JP2018533120A true JP2018533120A (ja) 2018-11-08

Family

ID=58236893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018512395A Pending JP2018533120A (ja) 2015-09-10 2016-08-22 マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化

Country Status (7)

Country Link
US (1) US10140242B2 (ja)
EP (1) EP3347824A1 (ja)
JP (1) JP2018533120A (ja)
KR (1) KR20180050728A (ja)
CN (1) CN108027791A (ja)
BR (1) BR112018004665A2 (ja)
WO (1) WO2017044301A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215701A1 (ja) * 2021-04-07 2022-10-13 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信システム及び通信方法
JP7313025B1 (ja) * 2021-11-12 2023-07-24 合同会社Kosumi ストリームインターフェースを持つプロセッサ及びシステム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727506B2 (en) 2015-10-01 2017-08-08 Sony Corporation Communication system, communication system control method, and program
US10872049B2 (en) * 2016-01-29 2020-12-22 Analog Devices, Inc. GPIO-to-GPIO communication on a multi-node daisy-chained network
US10769084B2 (en) * 2016-12-22 2020-09-08 Intel Corporation Out-of band interrupt mapping in MIPI improved inter-integrated circuit communication
US10467154B2 (en) * 2017-02-10 2019-11-05 Qualcomm Incorporated Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
CN108628798B (zh) * 2017-03-20 2020-10-20 大唐移动通信设备有限公司 一种板卡、芯片加载配置信息的方法及fpga
US20180329837A1 (en) * 2017-05-10 2018-11-15 Qualcomm Incorporated Input/output direction decoding in mixed vgpio state exchange
US10482055B2 (en) 2017-05-10 2019-11-19 Qualcomm Incorporated Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine
DE102017110890A1 (de) * 2017-05-18 2018-11-22 Basler Ag Vorrichtung und Verfahren zur Übertragung einer Steuerinformation innerhalb einer Datenkommunikation über eine serielle Schnittstelle
US11132323B2 (en) 2017-06-20 2021-09-28 Intel Corporation System, apparatus and method for extended communication modes for a multi-drop interconnect
US20190050366A1 (en) * 2017-08-14 2019-02-14 Qualcomm Incorporated Device, event and message parameter association in a multi-drop bus
US10515044B2 (en) * 2017-11-01 2019-12-24 Qualcomm Incorporated Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus
CN108255776B (zh) * 2017-12-01 2020-07-03 广东高云半导体科技股份有限公司 一种兼容apb总线的i3c主设备、主从系统及通信方法
US10511397B2 (en) 2018-01-24 2019-12-17 Qualcomm Incorporated Virtual general purpose input/output (GPIO) (VGI) over a time division multiplex (TDM) bus
US10579581B2 (en) * 2018-02-28 2020-03-03 Qualcomm Incorporated Multilane heterogeneous serial bus
US20190317911A1 (en) * 2018-04-17 2019-10-17 Qualcomm Incorporated General purpose input output triggered interface message
US10733121B2 (en) * 2018-05-10 2020-08-04 Qualcomm Incorporated Latency optimized I3C virtual GPIO with configurable operating mode and device skip
US10713185B2 (en) * 2018-07-16 2020-07-14 Logitech Europe S.A. Wireless communication with peripheral device
US11880314B1 (en) * 2018-07-27 2024-01-23 Dialog Semiconductor B.V. Microcontroller for driving an external device
US10496562B1 (en) * 2018-08-13 2019-12-03 Qualcomm Incorporated Low latency virtual general purpose input/output over I3C
US10725949B2 (en) * 2018-08-28 2020-07-28 Qualcomm Incorporated Slave-to-slave direct communication
LU100947B1 (en) * 2018-09-27 2020-03-27 Nanopower As Device connection system and method of operation
US10684723B2 (en) * 2018-10-23 2020-06-16 Getac Technology Corporation Touch device and control method thereof
KR20200093106A (ko) 2019-01-25 2020-08-05 삼성전자주식회사 반도체 집적 회로 및 그것의 동작 방법
DE102019201533A1 (de) * 2019-02-07 2020-08-13 Robert Bosch Gmbh Systemkomponente mit konfigurierbarem Kommunikationsverhalten und Verfahren zum Betreiben einer solchen Systemkomponente
GB201909270D0 (en) * 2019-06-27 2019-08-14 Nordic Semiconductor Asa Microcontroller system with GPIOS
CN110489212B (zh) * 2019-08-20 2022-08-02 东软集团股份有限公司 一种通用型输入输出口虚拟化的方法、装置及车机
TW202117932A (zh) * 2019-10-15 2021-05-01 瑞昱半導體股份有限公司 積體電路及動態腳位控制方法
EP3869742B1 (en) * 2020-02-20 2023-06-07 Nxp B.V. Network node
CN111538692B (zh) * 2020-04-20 2022-03-18 深圳市汇川技术股份有限公司 变频器系统及其控制方法
CN111562946B (zh) * 2020-05-06 2023-09-08 青岛信芯微电子科技股份有限公司 一种数据处理方法及芯片
US11513991B2 (en) * 2020-10-01 2022-11-29 Qualcomm Incorporated Batch operation across an interface
US11438122B2 (en) 2021-06-14 2022-09-06 Ultralogic 6G, Llc Custom downlink search-spaces for low-complexity 5G/6G messaging
US11546111B2 (en) 2021-06-24 2023-01-03 Ultralogic 6G, Llc Demarking the start and end of 5G/6G downlink messages
CN115080191B (zh) * 2022-08-18 2023-01-06 苏州浪潮智能科技有限公司 一种管理i2c链路的方法、装置、设备及可读介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291391A (en) 1992-03-20 1994-03-01 Cincinnati Milacron Inc. Fast programmable scan logic controller method and apparatus
US5455911A (en) 1993-04-05 1995-10-03 Allen-Bradley Company, Inc. Communications protocol for use in transferring data over a serial bus
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
JP2001175584A (ja) 1999-12-16 2001-06-29 Ricoh Co Ltd オプション機器の制御方法
US20030115513A1 (en) * 2001-08-24 2003-06-19 David Harriman Error forwarding in an enhanced general input/output architecture and related methods
US7152128B2 (en) 2001-08-24 2006-12-19 Intel Corporation General input/output architecture, protocol and related methods to manage data integrity
US7099318B2 (en) 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
US7373111B2 (en) * 2004-02-19 2008-05-13 Marvell International Ltd. Communication access apparatus, systems, and methods
TWI255404B (en) 2004-12-03 2006-05-21 Hon Hai Prec Ind Co Ltd System and method for dynamically allocating addresses to devices connected to an integrated circuit bus
US20060143348A1 (en) 2004-12-29 2006-06-29 Wilson Matthew T System, method, and apparatus for extended serial peripheral interface
FR2885710B1 (fr) 2005-05-11 2007-08-03 Stmicroelectronics Maroc Selection d'adresse pour bus i2c
CN101499053A (zh) * 2008-01-31 2009-08-05 上海普芯达电子有限公司 实现微控制器可配置性的方法和可配置的微控制器
US8205017B2 (en) 2009-11-17 2012-06-19 Aptina Imaging Corporation Systems and methods for addressing and synchronizing multiple devices
US8228038B2 (en) * 2009-12-23 2012-07-24 Intel Corporation Power management control system and method
US8959253B2 (en) * 2009-12-23 2015-02-17 Intel Corporation Virtualizing a powered down input/output device
US8725915B2 (en) 2010-06-01 2014-05-13 Qualcomm Incorporated Virtual buffer interface methods and apparatuses for use in wireless devices
CN102650975B (zh) * 2012-03-31 2014-10-29 中国人民解放军国防科学技术大学 用于多硬件平台飞腾服务器的i2c总线的实现方法
US8806025B2 (en) * 2012-06-25 2014-08-12 Advanced Micro Devices, Inc. Systems and methods for input/output virtualization
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9148147B2 (en) 2013-06-03 2015-09-29 Maxim Integrated Products, Inc. Programmable mixed-signal input/output (IO)
CN104346275A (zh) * 2013-08-07 2015-02-11 鸿富锦精密工业(深圳)有限公司 内存测试系统及方法
US9747244B2 (en) 2013-11-22 2017-08-29 Qualcomm Incorporated Clockless virtual GPIO
US9417801B2 (en) 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US10241955B2 (en) * 2014-06-18 2019-03-26 Qualcomm Incorporated Dynamically adjustable multi-line bus shared by multi-protocol devices
US9880965B2 (en) * 2014-09-11 2018-01-30 Qualcomm Incorporated Variable frame length virtual GPIO with a modified UART interface
US10241953B2 (en) * 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215701A1 (ja) * 2021-04-07 2022-10-13 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信システム及び通信方法
US11960434B2 (en) 2021-04-07 2024-04-16 Sony Semiconductor Solutions Corporation Communication device, communication system, and communication method for transmitting data blocks including signal groups conforming to a serial peripheral interface
JP7313025B1 (ja) * 2021-11-12 2023-07-24 合同会社Kosumi ストリームインターフェースを持つプロセッサ及びシステム

Also Published As

Publication number Publication date
US10140242B2 (en) 2018-11-27
CN108027791A (zh) 2018-05-11
BR112018004665A2 (pt) 2018-09-25
WO2017044301A1 (en) 2017-03-16
EP3347824A1 (en) 2018-07-18
KR20180050728A (ko) 2018-05-15
US20170075852A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
JP2018533120A (ja) マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化
US10241953B2 (en) Dynamic data-link selection over common physical interface
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
US10467154B2 (en) Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
JP6074052B2 (ja) 仮想gpio
US9971666B2 (en) Technique of link state detection and wakeup in power state oblivious interface
EP3844628B1 (en) Slave-to-slave direct communication
JP6538715B2 (ja) ハイブリッド仮想gpio
US10013950B2 (en) Systems and methods for transmitting video, network, and USB signals over extension media
JP2017528830A (ja) 修正型uartインターフェースを有する可変フレーム長仮想gpio
TW201903620A (zh) 在改良式內部積體電路匯流排拓撲中從屬對從屬之通信
JP2012200027A (ja) 統一コネクタアーキテクチャ
JP2018512775A (ja) 可変フレーム長を備えた2線式インターフェースシステムに対するインピーダンスに基づくフロー制御
US20200242066A1 (en) Semiconductor integrated circuit and operation method thereof
US10684981B2 (en) Fast termination of multilane single data rate transactions
CN117056249B (zh) 一种mdio到ahb的转换方法、系统、设备及介质
US20060184708A1 (en) Host controller device and method
US10592441B2 (en) Bus communication enhancement based on identification capture during bus arbitration
US11288223B2 (en) Bridge chip with function of expanding external devices and associated expansion method
KR102169033B1 (ko) 전력 최적화 시스템과 이의 구동 방법
WO2022179427A1 (zh) 一种数据传输带宽的配置方法及相关设备
US20210318975A1 (en) Providing I3C Communications Of Multiple Data Lines Via A Universal Serial Bus
KR20190108001A (ko) 네트워크온칩 및 이를 포함하는 컴퓨팅 장치
CN108536636B (zh) 一种基于peci总线的主从协商时序机
WO2023160691A1 (zh) 一种基于连接器的端口管理方法及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180313