CN108027791A - 多节点网络中的输入/输出信号桥接和虚拟化 - Google Patents
多节点网络中的输入/输出信号桥接和虚拟化 Download PDFInfo
- Publication number
- CN108027791A CN108027791A CN201680052171.6A CN201680052171A CN108027791A CN 108027791 A CN108027791 A CN 108027791A CN 201680052171 A CN201680052171 A CN 201680052171A CN 108027791 A CN108027791 A CN 108027791A
- Authority
- CN
- China
- Prior art keywords
- gpio
- signal set
- ancillary equipment
- output
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/177—Initialisation or configuration control
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
在一方面,集成电路获得一个或多个外围设备的通用输入/输出(GPIO)信号集合,独立于中央处理单元获得包括该GPIO信号集合的第一虚拟GPIO分组,以及独立于中央处理单元在I3C总线上向该一个或多个外围设备传送该第一虚拟GPIO分组。集成电路可以进一步获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合,独立于中央处理单元获得包括配置信号集合的第二虚拟GPIO分组,以及独立于中央处理单元在I3C总线上向一个或多个外围设备传送第二虚拟GPIO分组。
Description
相关申请的交叉引用
本专利申请要求以下申请的优先权:2015年9月10日提交的题为“I/O Bridgingfor Multi-Node Network(多节点网络的I/O桥接)”的美国临时申请No.62/216,891,2015年12月10日提交的题为“I/O Bridging for Multi-Node Network(多节点网络的I/O桥接)”的美国临时申请No.62/265,612,2016年6月13日提交的题为“INPUT/OUTPUT SIGNALBRIDGING AND VIRTUALIZATION IN A MULTI-NODE NETWORK(多节点网络中的输入/输出信号桥接和虚拟化)”的美国临时申请No.62/349,609,以及2016年8月19日提交的题为“INPUT/OUTPUT SIGNAL BRIDGING AND VIRTUALIZATION IN A MULTI-NODE NETWORK(多节点网络中的输入/输出信号桥接和虚拟化)”的美国非临时申请No.15/242,368,这些申请被转让给本申请受让人并由此通过援引明确纳入于此。
引言
公开领域
本公开的各方面一般涉及多节点网络中的输入/输出(I/O)信号桥接和虚拟化。
背景技术
通用输入/输出(GPIO)使得集成电路设计者能够提供可以为特定应用定制的普适引脚。例如,取决于用户需要,GPIO引脚可以被编程为输出引脚或者输入引脚。GPIO模块或者外围设备通常将控制基于接口要求而能变动的引脚群。因为GPIO引脚的可编程性,所以它们一般被包括在微处理器和微控制器应用中。例如,移动设备中的应用处理器可以使用数个GPIO引脚来进行握手信令,诸如进行与调制解调器处理器的处理器间通信(IPC)。
主机设备(诸如应用处理器)可以通过GPIO信令被耦合到多个外围设备。在结果得到的网络中,可能存在一个外围设备需要向另一外围设备传送GPIO信号的情况。传送方外围设备必须随后向主机设备传送对应的GPIO信号,该主机设备随后向接收方外围设备重新传送GPIO信号。然而,此类通信是有问题的,因为主机设备中的处理器必须转变成活跃状态(若其处于睡眠状态)以管理去往接收方外围设备的GPIO重传。通过主机设备的I/O桥接由此不仅消耗了显著的功率,而且还要求将主机处理器从休眠状态转变成活跃状态的延迟。
相应地,本领域中存在对于与主机设备联网的多个外围设备之间的改进的GPIO信令的需要。
概述
以下给出本公开的一些方面的简要概述以提供对这些方面的基本理解。此概述不是本公开的所有构想到的特征的详尽综览,并且既非旨在标识出本公开的所有方面的关键性或决定性要素亦非试图界定本公开的任何或所有方面的范围。其唯一目的是要以简化形式给出本公开的一些方面的各种概念以作为稍后给出的更详细描述之序。
在一个方面,提供了一种在集成电路处操作的方法。集成电路获得一个或多个外围设备的GPIO信号集合,并且基于映射表来将该一个或多个外围设备的GPIO信号集合映射到第一虚拟GPIO分组中的第一预定比特位置。集成电路获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合被包括在第一虚拟GPIO分组中。集成电路独立于中央处理单元获得包括GPIO信号集合的第一虚拟GPIO分组。集成电路独立于中央处理单元在I3C总线上向一个或多个外围设备传送第一虚拟GPIO分组。集成电路获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合,并且基于映射表来将配置信号集合映射到第二虚拟GPIO分组中的第二预定比特位置。集成电路获得与配置信号集合相关联的掩码信号集合,其中与配置信号集合相关联的掩码信号集合被包括在第二虚拟GPIO分组中。集成电路独立于中央处理单元获得包括配置信号集合的第二虚拟GPIO分组,并且在I3C总线上向一个或多个外围设备传送第二虚拟GPIO分组。
在一方面,提供了一种装备。该装备可以包括用于获得一个或多个外围设备的GPIO信号集合的装置,和/或用于基于映射表来将一个或多个外围设备的GPIO信号集合映射到第一虚拟GPIO分组中的第一预定比特位置的装置。该装备可以进一步包括用于获得与GPIO信号集合相关联的掩码信号集合的装置,其中与GPIO信号集合相关联的掩码信号集合被包括在第一虚拟GPIO分组中。该装备可以进一步包括用于独立于中央处理单元获得包括GPIO信号集合的第一虚拟GPIO分组的装置。该装备可以进一步包括用于独立于中央处理单元在I3C总线上向一个或多个外围设备传送第一虚拟GPIO分组的装置。该装备可以进一步包括用于获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合的装置,和/或用于基于映射表来将配置信号集合映射到第二虚拟GPIO分组中的第二预定比特位置的装置。该装备可以进一步包括用于获得与配置信号集合相关联的掩码信号集合的装置,其中与配置信号集合相关联的掩码信号集合被包括在第二虚拟GPIO分组中。该装备可以进一步包括用于独立于中央处理单元获得包括配置信号集合的第二虚拟GPIO分组的装置,和/或用于在I3C总线上向一个或多个外围设备传送第二虚拟GPIO分组的装置。
在一个方面,提供了一种在集成电路处操作的方法。集成电路独立于中央处理单元获得一个或多个外围设备的GPIO信号集合。集成电路获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合被包括在虚拟GPIO分组中。集成电路独立于中央处理单元获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合。集成电路获得与配置信号集合相关联的掩码信号集合,其中与配置信号集合相关联的掩码信号集合被包括在虚拟GPIO分组中。集成电路基于映射表来将GPIO信号集合和配置信号集合映射到虚拟GPIO分组中的预定比特位置。集成电路独立于中央处理单元获得包括GPIO信号集合和配置信号集合的虚拟GPIO分组。集成电路独立于中央处理单元在I3C总线上向一个或多个外围设备传送虚拟GPIO分组。
在一方面,提供了一种装备。该装备可以包括用于独立于中央处理单元获得一个或多个外围设备的GPIO信号集合的装置。该装备可以进一步包括用于获得与GPIO信号集合相关联的掩码信号集合的装置,其中与GPIO信号集合相关联的掩码信号集合被包括在虚拟GPIO分组中。该装备可以进一步包括用于独立于中央处理单元获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合的装置。该装备可以进一步包括用于获得与配置信号集合相关联的掩码信号集合的装置,其中与配置信号集合相关联的掩码信号集合被包括在虚拟GPIO分组中。该装备可以进一步包括用于基于映射表来将GPIO信号集合和配置信号集合映射到GPIO分组中的预定比特位置的装置。该装备可以进一步包括用于获得包括GPIO信号集合和配置信号集合的虚拟GPIO分组的装置。该装备可以进一步包括用于独立于中央处理单元在I3C总线上向一个或多个外围设备传送虚拟GPIO分组的装置。
在一个方面,提供了一种在集成电路处操作的方法。集成电路在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧,其中虚拟GPIO分组被封装在该I3C帧中。集成电路从第一I3C帧获得虚拟GPIO分组、基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态、将该至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中、以及在I3C总线上向第二外围设备传送第二I3C帧,其中第二I3C帧包括发信令通知该至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。在一方面,第二I3C帧作为广播I3C帧被传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧被传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,集成电路可以响应于至少一个第一GPIO信号的经改变的状态而中断主机处理器。
在一方面,提供了一种装备。该装备可以包括用于在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧的装置,其中虚拟GPIO分组被封装在I3C帧中。该装备可以进一步包括用于从第一I3C帧获得虚拟GPIO分组的装置、用于基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态的装置、用于将该至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中的装置、以及用于在I3C总线上向第二外围设备传送第二I3C帧的装置,其中第二I3C帧包括发信令通知该至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。在一方面,第二I3C帧作为广播I3C帧被传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧被传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,该装备可以响应于至少一个第一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信号集合和配置信号集合的装置。
一种集成电路包括配置成与一个或多个外围设备通信的通信接口和耦合到该通信接口的处理电路。该处理电路被配置成在I3C总线上从第一外围设备接收包括虚拟通用输入/输出(GPIO)分组的第一I3C帧,其中该虚拟GPIO分组被封装在I3C帧中,从第一I3C帧获得虚拟GPIO分组、基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态、将该至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中、以及在I3C总线上向第二外围设备传送第二I3C帧,其中第二I3C帧包括发信令通知该至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。在一方面,第二I3C帧作为广播I3C帧被传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧被传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,处理电路被进一步配置成响应于至少一个第一GPIO信号的经改变的状态而中断主机处理器。
提供了一种在集成电路处操作的方法。该方法包括在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧,其中该虚拟GPIO分组被封装在I3C帧中,从第一I3C帧获得虚拟GPIO分组,以及基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态。该方法进一步包括:将该至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中、以及在I3C总线上向第二外围设备传送第二I3C帧,其中第二I3C帧包括发信令通知该至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。在一方面,第二I3C帧作为广播I3C帧被传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧被传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,该方法进一步包括响应于该至少一个第一GPIO信号的经改变的状态而中断主机处理器。
在一方面,提供了一种装备。该装备可以包括用于在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧的装置,其中该虚拟GPIO分组被封装在I3C帧中,用于从第一I3C帧获得虚拟GPIO分组的装置,以及用于基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态的装置。该装备可以进一步包括用于将该至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中的装置、和/或用于在I3C总线上向第二外围设备传送第二I3C帧的装置,其中第二I3C帧包括发信令通知该至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。在一方面,第二I3C帧作为广播I3C帧被传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧被传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,该方法进一步包括响应于该至少一个第一GPIO信号的经改变的状态而中断主机处理器。
在一方面,提供了一种集成电路。该集成电路包括有限状态机,其配置成独立于中央处理单元接收GPIO信号集合以及将该GPIO信号集合封装到虚拟GPIO分组中;以及I2C接口,其配置成在I2C总线上向多个外围设备传送I2C帧,其中该虚拟GPIO分组被封装在该I2C帧中。
在一方面,提供了一种集成电路。该集成电路包括有限状态机,其配置成独立于中央处理单元接收GPIO信号集合以及将该GPIO信号集合封装到虚拟GPIO分组中;以及I3C接口,其配置成在I3C总线上向多个外围设备传送I3C帧,其中该虚拟GPIO分组被封装在该I3C帧中。
提供了一种在集成电路(例如,主机设备)处操作的方法。该方法包括在主机设备处在I2C总线(或I3C总线)上从第一外围设备接收包括经封装的虚拟GPIO分组的第一I2C帧(或I3C帧),在主机设备中的I2C接口(或I3C接口)中从第一I2C帧恢复虚拟GPIO分组以及向有限状态机传输该虚拟GPIO分组,在主机设备中的有限状态机中将VGI分组中的第一虚拟GPIO有效载荷映射到至少一个第一GPIO信号的经改变的状态中,在有限状态机中将至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中,以及在I2C总线上将第二I2C帧从主机设备传送到第二外围设备,其中该第二I2C帧包括发信令通知至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。
本公开的这些和其他方面将在阅览以下详细描述后得到更全面的理解。在结合附图研读了下文对本公开的具体实现的描述之后,本公开的其他方面、特征和实现对于本领域普通技术人员将是明显的。尽管本公开的特征在以下可能是针对某些实现和附图来讨论的,但本公开的所有实现可包括本文所讨论的有利特征中的一个或多个。换言之,尽管可能讨论了一个或多个实现具有某些有利特征,但也可以根据本文讨论的本公开的各种实现使用此类特征中的一个或多个特征。以类似方式,尽管一些实现在下文可能是作为设备、系统或方法实现进行讨论的,但是应该理解,此类实现可以在各种设备、系统、和方法中实现。
附图简要说明
图1解说了示例常规通用输入/输出(GPIO)网络的框图。
图2A解说了示例多节点GPIO网络的框图。
图2B解说了示例GPIO网络中的示例I/O桥接场景。
图2B解说了示例GPIO网络中的示例I/O桥接场景。
图3解说了根据本公开的各方面的示例GPIO网络的框图。
图4解说了根据本公开的各方面的示例I/O映射表。
图5解说了示例常规GPIO网络。
图6解说了根据本公开的一方面的示例网络。
图7解说了根据本公开的一方面的示例网络。
图8解说了示例广播帧。
图9解说了示例经掩码广播帧。
图10解说了定向(定址)I2C/I3C VGPIO帧。
图11解说了经掩码定向帧。
图12解说了示例VGI有限状态机(FSM)的细节。
图13解说了示例映射表。
图14A解说了示例虚拟GPIO接口(VGI)分组。
图14B解说了示例定向I2C/I3C帧。
图14C解说了示例定向I2C/I3C帧。
图14D解说了示例广播I2C/I3C帧。
图15解说了根据本公开的各方面的示例通用输入/输出(GPIO)网络的框图。
图16A解说了一种GPIO网络,其中主机设备包括用于与远程设备通信的单个VGIFSM。
图16B解说了一种GPIO网络,其中主机设备包括用于与远程设备通信的多个VGIFSM。
图17是VGI FSM的框图。
图18是解说示例VGI实现的示图。
图19解说了示例通用输入/输出(GPIO)网络的框图。
图20解说了用于映射主机片上系统(SoC)的I/O和目的地外围设备的I/O的示例主机表。
图21解说了示例示例通用输入/输出(GPIO)网络的框图。
图22解说了根据本公开的各方面的示例通用输入/输出(GPIO)网络的框图。
图23是解说示例I/O配置的示图。
图24是解说引脚配置寄存器的示例配置的示图。
图25是解说直接I/O映射寄存器的示图。
图26A是解说实现掩码的仅消息消息格式的示例的示图。
图26B是解说不实现掩码的仅消息格式的示例的示图。
图27A是解说实现掩码的仅事件消息格式的示例的示图。
图27B是解说不实现掩码的仅事件消息格式2750的示例的示图。
图28是解说根据本公开的各方面的合并消息格式的示例的示图。
图29是解说根据本公开的各方面的使用合并消息来进行用于写操作的广播消息传递的示例的示图。
图30是解说根据本公开的各方面的使用合并消息来进行用于写操作的经掩码广播消息传递的示例的示图。
图31是解说根据本公开的各方面的使用合并消息来进行用于写操作的直接消息传递的示例的示图。
图32是解说根据本公开的各方面的使用合并消息来进行用于写操作的经掩码直接消息传递的示例的示图。
图33是解说根据本公开的各方面的使用合并消息来进行用于读操作的直接消息传递的示例的示图。
图34是解说根据本公开的各方面的使用合并消息来进行用于读操作的经掩码直接消息传递的示例的示图。
图35示出了根据本公开各方面的包括与多个紧邻比特值相关联的掩码比特的经映射比特。
图36是解说根据本公开各方面的VGI FSM中的功率管理单元的示图。
图37是解说根据本公开的至少一个示例的装置的组件选集的框图。
图38(38A和38B)是解说根据本公开各方面的方法的流程图。
图39是解说根据本公开的各方面的方法的流程图。
图40是解说根据本公开的各方面的方法的流程图。
图41是解说根据本公开的至少一个示例的装置的组件选集的框图。
图42是解说根据本公开的各方面的方法的流程图。
图43解说了纳入片上系统(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可能需要在第一专用线(也被称作第一专用互连)上向主机设备102传送第一DRI信号130,而罗盘114可能需要在第二专用线(也被称作第二专用互连)上向主机设备102传送第二DRI信号132。在另一示例中,主机设备102可能需要在第三专用线(也被称作第三专用互连)上传送使能信号134。应当注意,除了I2C总线之外的此类附加专用线(例如,先前所讨论的第一、第二和第三专用线)可能需要主机设备102处的对应数目的附加引脚。
图2A解说了示例多节点GPIO网络200的框图。多节点GPIO网络200包括主机设备202和n个外围设备(例如,外围设备#1 204、外围设备#2 206、外围设备#3 208、外围设备#(n-1)210、和外围设备#n 212)。在一方面,主机设备202可以是SoC设备。在一方面,主机设备202可以包括用于在总线214上传达信号的I2C/I3C端口216、GPIO输入引脚226、和GPIO输出引脚228。如图2A中所示,主机设备202经由总线214耦合到外围设备,该总线214可包括时钟线218和数据线220。在一方面,总线214可以是I2C总线或I3C总线。在一方面,当总线214被实现为I3C总线时,节点(例如,外围设备204、206、208、210和212)之间输入/输出(I/O)事件(也被称作硬件事件、硬件输入/输出事件、或GPIO)的交换可能要求主机设备202中的中央处理单元(CPU)的介入。在一个示例中,需要向远程节点传送I/O事件的第一节点必须中断其对应的第一CPU。第一CPU可以编制去往远程节点的指示I/O事件的消息。对应于远程节点的第二CPU必须苏醒以处理该消息,包括将该事件转换成I/O事件(若需要)。因此,I/O事件需要在节点(例如,外围设备204、206、208、210和/或212)之间传达的情形(也被称为I/O桥接)可能需要主机设备202进行频繁的唤醒和处理,并且因此可能导致系统中总体较高的功耗。此外,在其中多节点连接的外围设备使用数个边带信号(例如,边带GPIO 215)的情形可能消耗主机设备202和外围设备上的数个引脚,从而导致较高的分组成本。
图2B解说了示例GPIO网络200中的示例I/O桥接场景。在该示例中,源自外围设备204的I/O事件“A”(例如,在互连222上传送的I/O事件信号A 230)使得主机设备202生成在外围设备206处终接的I/O事件“B”(例如,在互连224上传送的I/O事件信号B 232)。因此,该示例涉及外围设备到外围设备I/O桥接。相应地,在该示例中,主机设备202介入到I/O事件“A”和I/O事件“B”的处理中。
图2C解说了示例GPIO网络200中的示例I/O桥接场景。在该示例中,源自外围设备208的I/O事件“A”(例如,在互连234上传送的I/O事件信号A 236)和源自主机设备202本身的另一I/O事件“B”(例如,在GPIO输入引脚226处接收的I/O事件信号B 238)使得主机设备202生成使用I2C总线事务去往外围设备210的最终I/O事件“C”(例如,在互连240上传送的I/O事件信号C)。因此,该示例涉及其中主机设备202介入I/O事件A、B和C的处理的异构情形。根据本文中描述的各方面,主机设备202对于I/O事件A和B的介入可以通过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耦合到外围设备,该总线214可包括时钟线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 FSM 318可以与I2C/I3C IP块316通信,并且可以在总线314上传送和接收信号。在一方面,VGI FSM 318可以包括I/O映射器与消息格式器320和I/O聚集块322。在一方面,I/O映射器与消息格式器320可以是在VGI FSM 318内实现可配置的I/O映射表的设备。在一方面,此类可配置的I/O映射表可以在GPIO网络300的初始化期间被配置。在一方面,如本文中所具体描述的,I/O映射表可以将I/O的连接从源外围设备(例如,GPIO网络300中的始发节点)映射到对应的目的地外围设备(例如,GPIO网络300中的目的地节点)。例如,I/O映射表可以包括一个或多个条目的列表。在此类示例中,每个条目可以描述源外围设备的I/O号和源外围设备的地址,以及目的地外围设备的对应I/O号和目的地外围设备的地址。在一方面,要从源外围设备传达到目的地外围设备的I/O可以被包括在使用I2C/I3C标准来格式化的消息中。用这种方式,消息可以由VGI FSM 318处理以实现外围设备之间的I/O状态交换而没有主机设备302的介入。
图4解说了根据本公开各方面的示例I/O映射表400。如图4中所示,I/O映射表400包括源外围设备I/O号408、源外围设备地址410、目的地外围设备I/O号412、目的地外围设备地址414。如图4中进一步所示的,I/O映射表400可以包括一个或多个条目,诸如示例条目402、404和406。I/O映射表400的条目402对应于参照图2B讨论的场景,而I/O映射表400的条目404和406对应于参照图2C讨论的场景。例如,参照图2B,条目402描述了外围设备#1204的I/O号2(与地址0x01相关联)(例如,在图2中的互连222上)被传送到外围设备#3 206的I/O号3(与地址0x02相关联)。
在一方面,为了容适主机设备(例如,SoC设备)和多个外围设备之间的GPIO信令,主机设备和每个外围设备可以包括VGI FSM。与实际GPIO接口形成对比,VGI FSM不在专用GPIO引脚上通信。替代地,外围设备和主机设备都包括进而耦合到I2C总线的集成电路间(I2C)接口。替换地,主机设备和外围设备可以各自包括由MIPI联盟定义的移动行业处理器接口(MIPI)I3C接口。类似于I2C接口中使用的双导线总线,I3C接口的总线也是双导线总线。因此,结果得到的总线在本文中将会被称作I2C/I3C总线,因为其对于这两个协议而言将会是基本上相同的。
在设立阶段,每个VGI FSM可以被配置有将从I2C/I3C接口接收到的特定比特映射到特定GPIO信号的映射表。例如,在常规系统中,GPIO信号可以被指派给指定外围设备处的指定GPIO引脚,并且以主机设备处的指定GPIO引脚为目的地。因为这些GPIO引脚在本文中公开的联网方面是虚拟化的,所以对应的外围设备会取而代之在被配置用于在I2C/I3C总线上传输的消息的数据有效载荷中配置指定的虚拟GPIO比特。在一方面,消息可以被称作I2C或I3C帧。因为不再使用GPIO引脚,所以它们可以由标识指定GPIO信号的“输入/输出号”来替代。为了与I2C和I3C标准一致,I2C或I3C帧可以包括具有将帧标识为包括虚拟GPIO信号的命令码的报头。响应于在主机设备处解码命令码,I2C/I3C接口在数据有效载荷中向主机设备的VGI FSM传送虚拟GPIO比特。每个虚拟GPIO信号在数据有效载荷内具有特定的位置。例如,考虑长度为八位的数据有效载荷。数据有效载荷中的第一位可以对应于第一虚拟GPIO信号,第二位可以对应于第二虚拟GPIO信号,等等。
在一方面,所有VGI FSM可以被配置成具有由I2C/I3C接口传送的虚拟GPIO帧的数据有效载荷内的虚拟GPIO信号的顺序的知识。例如,每个VGI FSM可以包括描述数据有效载荷内的此类虚拟GPIO信号的顺序的映射表。基于映射表,给定设备(例如,外围设备或主机设备)的VGI FSM可以识别要求VGI FSM中断对应设备中的处理器的虚拟GPIO信号的经改变的状态。在一个情形中,外围设备可以使用虚拟GPIO信号来发信令通知另一外围设备。在此类情形中,传送方外围设备可以向主机设备传送VGI I2C/I3C帧。主机设备的VGI FSM可以识别(例如,使用VGI FSM处的映射表)传送方外围设备旨在向目标外围设备发信令通知对应的虚拟GPIO信号。主机设备处的VGI FSM可以触发主机设备处的I2C/I3C接口来传送具有包括旨在用于目标设备的虚拟GPIO信号的数据有效载荷的VGI I2C/I3C帧。
在一方面,每个设备的VGI FSM可以被配置成在虚拟GPIO信号中聚集经改变的状态。例如,主机设备可以识别来自一个外围设备的虚拟GPIO信号中的经改变的状态,并且可以触发(从主机设备)去往另一外围设备的虚拟GPIO信号的传输。通过该聚集,主机处理器可以维持在空闲状态中而不管通过该主机设备从一个外围设备到另一外围设备的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是大于一的正整数。如本文中所使用的,术语“引脚”是覆盖了集成电路用来耦合到电路板上的导线(也称作迹线)或者其他物理互连(例如,封装互连或者穿孔式通孔互连)的结构(诸如焊盘或实际引脚)的普适术语。在图5的示例配置中,外围设备#1 504可以接收或传送四个GPIO信号。例如,并且如图5中所示,外围设备#1 504具有用于向主机设备502上的两个引脚(诸如引脚3 528和引脚4 530)传送对应GPIO信号的两个引脚(诸如引脚1 524和引脚2 526)。此外,主机设备502具有用于向外围设备#1 504上的两个引脚(诸如引脚3 532和引脚4 534)传送对应GPIO信号的两个引脚(诸如引脚5 536和引脚6 538)。主机设备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可以进一步包括用于在I2C/I3C总线514上与外围设备504、506、508、510和512中的对应I2C/I3C接口(图5中未示出)通信的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可以各自包括向对应的I3C接口716提供虚拟GPIO数据的虚拟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领域中公知的广播帧或定址帧。图8中示出了示例广播帧800。广播帧800始于开始位S 801和开始报头802。VGI广播命令码(CC)804可以指示帧800是I2C/I3CVGI广播帧。VGPIO数据有效载荷806可以包括n个虚拟GPIO信号,范围从第零虚拟GPIO信号到第(n-1)虚拟GPIO信号。参照回图7,并且如将在本文中进一步解释的,每个VGI FSM 718包括将VGPIO数据有效载荷806中的虚拟GPIO信号的比特位置如同它们是在参照网络100所讨论的常规GPIO引脚上所接收的那样进行映射的映射表。VGPIO数据有效载荷的“虚拟”本质由此对于与对应的VGI FSM 718对接的每个设备的处理器而言是透明的,如本文中进一步讨论的。
再次考虑GPIO网络500中的外围设备#1 504的示例,外围设备#1 504可以从主机设备502接收I/O信号号码1和2。可能有一种情况是,此类主机设备502可能需要改变I/O信号号码1,但是不干扰外围设备#1 504针对I/O信号号码2具有的值。在此类情形中,可以用图9中所示的经掩码广播帧900来代替广播帧800。例如,网络700的主机设备702中的VGIFSM 718可以触发经掩码广播帧900在I2C/I3C总线714上的传输。在该示例中,所有I/O信号会被掩码,除了外围设备#1 704的I/O信号号码1之外。为了这样做,经掩码广播帧900的数据有效载荷906中的n个I/O信号可以用对应的掩码位(范围从第零I/O信号IO0的第零掩码位M0到第(n-1)I/O信号IOn-1的第(n-1)掩码位Mn-1)来组织。无论广播帧是否被掩码,广播帧可以停止位808(诸如,广播帧800所示的停止位808)来结束。替换地,停止位808可以由同步位来代替,从而附加的VGPIO有效载荷可以被包括。
在替换实现中,每个VGI FSM 718可以触发定向(定址)I2C/I3C VGPIO帧,诸如图10中的定向帧1000。定向帧1000始于开始位S 1002和开始报头1004。VGI定向共用命令码(CCC)1006可以指示定向帧1000包括定向VGPIO数据有效载荷(例如,定向VGPIO数据有效载荷1012、定向VGPIO数据有效载荷1018)。VGI定向共用命令码(CCC)1006之后可以跟随重复开始字段(Sr)1008和从动设备地址字段1010以标识定址的外围设备(或者替换地,主机设备702的地址字段)。定向VGPIO数据有效载荷1012与广播数据有效载荷的不同之处在于,定向VGPIO数据有效载荷1012仅可以包括涉及定址设备的y个I/O信号的集合。例如,变量y可以是正整数。如图10中所示,定向VGPIO数据有效载荷1012可以包括第零I/O信号1020到第(y-1)I/O信号1022。定向帧1000可包括针对附加设备的附加定向有效载荷。例如,定向VGPIO数据有效载荷1012之后可以跟随另一重复开始字段(Sr)1014和附加的从动设备地址字段1016。在该情况中,定址设备可以支持x个I/O信号的集合,其中x是正整数。因此,与广播帧800的广播VGPIO数据有效载荷806中的n个I/O信号的全集相比,对应的定向VGPIO数据有效载荷1018将仅包括x个I/O信号。如图10中所示,定向VGPIO数据载荷1018可以包括第零I/O信号1024到第(x-1)I/O信号1026。定向帧1000可以停止位(诸如针对定向帧1000示出的停止位1028)结束。
如与参照经掩码广播帧900类似地讨论的,定向帧1000可以由经掩码定向帧代替。图11示出了示例经掩码定向帧1100。经掩码定向帧1100始于开始位S 1102和开始报头1104。VGI定向共用命令码(CCC)1106可以指示经掩码定向帧1100包括经掩码定向VGPIO数据有效载荷1112。VGI定向共用命令码(CCC)1106之后可以跟随重复开始字段(Sr)1108和从动设备地址字段1110以标识定址的外围设备(或者替换地,主机设备702的地址字段)。经掩码定向VGPIO数据有效载荷1106针对支持y个I/O信号的设备,其中变量y表示正整数。因此,如图11中所示,经掩码定向VGPIO数据有效载荷1106可以包括y个对应掩码信号(诸如对应于第零I/O信号1114的第零掩码信号M0 1116到对应于第(y-1)I/O信号1118的第(y-1)掩码信号My-1 1120)的集合。经掩码定向帧1100可以停止位(诸如针对经掩码定向帧1100示出的停止位1122)结束。
图12示出了先前参照图7讨论的VGI FSM 718的示例配置。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信号。应当理解,若仅使用广播I2C/I3CVGPIO帧,则外围设备地址1306可以是不必要的。在一方面,I/O映射表1300可以遵循参照GPIO网络500讨论的示例GPIO信令。例如,关于I/O映射表1300中的行1308,地址0x01处的外围设备#1 504在GPIO引脚1上传送I/O信号1(也被称作GPIO信号1),该I/O信号1在主机设备502的引脚3处被接收为主机设备502处的I/O信号3。类似地,关于I/O映射表1300中的行1310,来自外围设备#1 504的GPIO引脚2的I/O信号2在主机设备502处的GPIO引脚4处被接收为I/O信号4。在图13中,应当注意,主机I/O 3和4映射到网络700的外围设备#1 704的对应I/O 1和2,其中外围设备#1 704被指派外围设备地址0x01。以这种方式,可以通过映射表1300在每个设备处标识每个I/O信号。应当理解,在主机设备和外围设备之间映射的I/O不需要涉及GPIO引脚的顺序集合。例如,如图13的行1312中所指示的,I/O 9之后跟随I/O 11(例如,I/O 10并未被映射到外围设备处的对应I/O)。应当进一步理解,一个或多个I/O可以被用于其他目的且可以不被映射,诸如图5中的I/O 17 550。此外,主机的附加I/O可以被映射到外围设备的I/O,如图13中的行1314中的变量N和k所指示的。换言之,图13的各方面不限于I/O映射表1300中指示的16个I/O的示例集合。
响应于I/O信号的经改变的状态,图7中的特定VGI FSM 718可能需要改变另一I/O信号的状态。例如,在一个情形中,来自外围设备#1 704的I/O信号1的经改变的状态(例如,从逻辑‘1’到逻辑‘0’的改变)(其被接收为主机设备702处的I/O信号3)可能需要触发主机设备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 FSM 718可以使用消息传递I2C/I3C帧(未解说)来发起握手规程。如果设备(例如,外围设备)被从网络700中移除并被替换设备代替,则该发起规程可以被重复,以使得网络700中的所有设备被告知经改变的网络配置。
再次参见网络700,主机设备702中的处理器(未解说)和外围设备(例如,外围设备704、706、708、710、712)中的处理器可以通过GPIO接口(未解说)与对应的VGI FSM 718对接。以这种方式,对于处理器而言,没有软件改变是必要的,因为它们可以与在使用真实的GPIO引脚的情况下(诸如关于网络500所讨论的)没有什么不同地运行。
虽然对于设备(例如,外围设备#1 704)中的处理器而言没有必要进行软件改变以启用与设备中的对应VGI FSM 718的数据传输,但是应当理解,VGI FSM 718并不直接传送和接收VGPIO分组。替代地,来自此类丢失分组的VGPIO有效载荷以参照图8-11所讨论的经掩码或未经掩码的形式来提供。为了使得VGI FSM 718能够在没有任何修改的情况下操作,整个VGPIO分组可以被封装为I2C/I3C帧的有效载荷。每个VGPIO分组除了其数据有效载荷之外还包括报头。例如,考虑2014年11月5日提交的美国申请No.14/533,431(其通过援引被全部纳入于此)中的“混合”VGPIO分组。混合分组中的数据有效载荷可以包括消息传递信号以及VGPIO信号。与GPIO信号形成对比,消息传递信号并不专用于设备上的特定引脚。换言之,可以在专用消息传递传送引脚上传送各种消息。与GPIO信号形成对比,接收方设备(先验的)不知晓消息涉及什么。例如,GPIO信号专用于特定GPIO引脚,所以在对应的GPIO引脚上接收GPIO信号的事实向处理器标识了其自身。但对于消息传递信号而言并非如此。消息传递信号包括接收方处理器用来将接收到的消息传递信号路由到恰适寄存器的地址位。例如,通用异步接收机/发射机(UART)和串行外围设备接口(SPI)是使用消息传递信号的协议的示例。
在混合VGPIO系统中,VGI FSM被配置成分析每个混合VGPIO分组的报头以确定该分组是否包括VGPIO和/或消息传递信号有效载荷。此外,报头可以标识对应的分组是否是用于改变数据有效载荷的默认长度的编程分组。就此而言,与在个体GPIO引脚上接收的常规GPIO信号形成对比,VGPIO信号全都在共用接收引脚上接收。在常规系统中,GPIO引脚的身份标识了对应的接收到的GPIO信号,因为GPIO引脚专用于对应的GPIO信号。因为VGPIO信号也需要标识,所以接收方VGI FSM通过数据有效载荷内的VGPIO信号的位置来进行标识。例如,假设数据有效载荷对于VGPIO分组而言是8位长。有效载荷中的第一位可以被指派给第一VGPIO信号,第二位被指派给第二VGPIO信号,并且以此类推,从而第八位被指派给第八VGPIO信号。相同的位置可以被用来标识消息传递信号。然而,传送方和接收方VGPIO设备需要使用相同的分组长度来成功地实现该比特位置标识方案。例如,默认分组长度可以是八位。如果VGPIO系统要求更长的分组长度来容适附加的VGPIO信号,则VGPIO分组的报头也可以发信令通知随附的有效载荷并不是数据有效载荷,而替代的是编程有效载荷以指派新的分组长度。接收方VGI FSM可以随后使用对应的报头和分组主体来确认新的分组长度。
图14A示出了根据本公开各方面的用于VGPIO信号或消息信号的通信的示例VGI分组1400。VGI分组1400始于开始位1404并结束于停止位1410。例如,开始位1404可以是逻辑‘0’(例如,二进制0),而停止位1410可以是逻辑‘1’(例如,二进制1)。报头1402可以包括两个功能位(例如,图14A中的Fn_位-0和Fn_位-1)。报头1402中的两个功能位(Fn_位-0和Fn_位-1)可以标识后续有效载荷1403是包括VGPIO位还是消息位。在一个实施例中,若这两个功能位都具有逻辑值‘0’,则报头1402将VGI分组1400标识为包括VGPIO数据有效载荷(例如,随后的位是虚拟GPIO信号)。若Fn_位-0具有逻辑值0且Fn_位-1具有逻辑值‘1’,则报头1402将VGI分组1400标识为包括消息传递数据有效载荷(例如,随后的位是消息传递信号)。若Fn_位-0具有逻辑值‘1’且Fn_位-1具有逻辑值‘0’,则随后的位表示远程处理器所期望的虚拟GPIO分组长度。若这两个功能位具有逻辑值‘1’,则随后的位表示远程处理器对期望分组长度的确收。应当理解,使用两个功能位的编码的前述讨论仅仅是示例,且其他报头和编码协议可以被用来标识VGI分组是否携带虚拟GPIO信号、消息传递信号、VGI分组长度的标识、VGI分组长度的确收。在一个实施例中,VGI分组1400还可以包括与编程和确收分组相关联的类型位(例如,图14A中的类型位1405)。例如,在一个实施例,类型位可以被设置成逻辑值‘1’以标识VGI分组1400被配置用于GPIO信号,并且可以被设置成逻辑值‘0’以标识VGI分组1400被配置用于消息传递信号。
为了编程VGI分组1400的长度,传送方VGI FSM 718可以在报头1402中将Fn_位-0设置成逻辑值‘1’以及将Fn_位-1设置成逻辑值‘0’。VGI分组1400中的对应数据有效载荷(例如,图14A中的位1406)将随后标识新的分组长度。如果接收方VGI FSM 718支持该新分组长度,则此类VGI FSM 718可以传送确收VGPIO分组1400,其中报头1402具有等于逻辑值‘1’的Fn_位-0和等于逻辑值‘1’的Fn_位-1。此类确收分组中的对应的数据有效载荷(例如,图14A中的位1406)将重复先前的编程分组所标识的分组长度。
将领会,在替换实施例中可以使用VGI分组1400的变体。然而,无论该变体是什么,VGI FSM 718可以被预配置成解码此类替换VGI分组中的报头和数据有效载荷。类似于关于帧800、900、1000和1100内的VGPIO数据(经掩码或未经掩码)的封装所讨论地,将结果得到的VGI分组封装到I2C/I3C帧中由此是有益的。例如,图14B中示出了定向I2C/I3C帧1440。定向I2C/I3C帧1440可以始于开始位S 1442和报头1444。定向VGI共用命令码(CCC)1446可以将定向I2C/I3C帧1440标识为携带经封装VGI分组1452的定向帧。注意,参照VGI分组1452,术语“VGI”被用来代替术语“VGPIO”,因为VGI分组1452可以包括VGPIO数据有效载荷或消息传递信号。重复开始字段1448和从动设备地址1450可以跟随在定向VGI CCC 1446之后。例如,重复开始字段1448可以包括重复开始状况。接收方I2C/I3C接口通过提取经封装的VGI分组1452并将该分组转发到相关联的VGI FSM来响应于定向VGI CCC 1446。以这种方式,封装对于VGI FSM是透明的,从而在没有对其功能的硬件修改的情况下有利地纳入该封装。定向I2C/I3C帧1440的字段1454可以包括停止条件(P)或重复开始(Sr)条件。
例如,图14C中示出了定向I2C/I3C帧1460,其中定向I2C/I3C帧1460包括多个从动设备地址和对应的经封装VGI分组(例如,经封装VGI分组1472、经封装VGI分组1478)。定向I2C/I3C帧1460可以始于开始位S 1462和报头1464。定向VGI共用命令码(CCC)1466可以将定向I2C/I3C帧1460标识为具有经封装VGI分组的定向帧。如图14C中所示,定向I2C/I3C帧1460可以包括重复开始(Sr)字段1468,其可以包括重复开始条件。定向I2C/I3C帧1460可以进一步包括其后跟随经封装VGI分组1472的从动设备地址1470。如图14C中进一步所示,定向I2C/I3C帧1460可以进一步包括另一重复开始(Sr)字段1474,其可以包括重复开始(Sr)条件。另一从动设备地址1476和另一经封装VGI分组1478可以跟随重复开始(Sr)字段1474。定向I2C/I3C帧1460的字段1479可以包括停止条件(P)或重复开始(Sr)条件。
例如,图14D中示出了广播I2C/I3C帧1480。广播I2C/I3C帧1480类似于帧1440,但是排除了重复开始(Sr)字段和从动设备地址。相应地,广播I2C/I3C帧1480可以始于开始位S 1482和报头1484,其后跟随广播VGI共用命令码(CCC)1486,该共用命令码1486将广播I2C/I3C帧1480标识为具有经封装的VGI分组1488作为其数据有效载荷的广播帧。在一些方面,按照私有合同,经封装VGI分组可以包括I/O和掩码位,以及潜在的配置位。定向I2C/I3C帧1480的字段1490可以包括停止条件(P)或重复开始(Sr)条件。
图15解说了根据本公开的各方面的实现虚拟GPIO接口(VGI)的示例通用输入/输出(GPIO)网络1500的框图。如图15中所示,GPIO网络1500包括主机设备1502(例如,主机SoC)和外围设备1504。如先前所描述的,VGI是有限状态机(FSM)知识产权(IP)块,其合并了外部GPIO、内部GPIO和软GPIO/硬件事件,并且在以全双工或半双工模式操作的同步或异步串行链路上进行消息传递。在一方面,外部GPIO可以是通过设备(例如,主机SoC或外围设备)上的引脚物理可访问的GPIO。在一方面,内部GPIO可以是作为内部I/O映射的一部分、但是不可通过物理引脚以常规方式访问的GPIO。在一方面,软GPIO/硬件事件可以是映射到主机设备(例如,主机SoC)或外围设备上的IP块内的通用寄存器空间的GPIO,并且通常涉及针对读/写操作的软件或状态机介入。
参照图15,主机设备1502包括CPU 1506、VGI FSM 1508、VGI物理链路1510、以及包含数个GPIO寄存器1526的GPIO接口1512。在图15的该方面,VGI FSM 1508被配置成发送或从GPIO寄存器1518(例如,内部寄存器)接收GPIO信号,从物理引脚1514(例如,外部GPIO)接收GPIO信号,和/或从通用IP块1516(例如,软GPIO)接收GPIO信号。在一方面,VGI FSM 1508可以包括用于实现共享消息传递架构的VGI消息传递块1520。在此类方面,主机设备1502和外围设备1504可以交换去往和来自预定义寄存器位置的消息。VGI物理链路接口1510被耦合到VGI FSM 1508且用作用于在VGI链路接口1522上传送和接收I/O信号和VGI消息的接口。在一方面,VGI链路接口1522可以是双导线或三导线总线。例如,在如图15中所示的三导线总线的情形中,互连1546可以被配置用于从引脚1534向引脚1540传送信号,互连1548可以被配置用于在引脚1536处从引脚1542接收信号,而耦合到引脚1538和1544的互连1550可以携带时钟信号在一方面,VGI链路接口1522可以实现I3C(和/或I2C)协议。可以领会,外围设备1540配置成包括类似于先前参照主机设备1502描述的那些特征。
在一方面,主机设备1502处的VGI物理链路1510可以在VGI链路接口1522上向和/或从外围设备1540传送信号和/或接收信号。例如,VGI物理链路1510可以配置成发送和接收I3C(或I2C)消息传递信号。如本文中所使用的,短语“消息传递信号”是指常规上将在专用传送引脚上传送的信号,诸如在处理器间通信(IPC)或串行外围接口(SPI)协议中实践的那样。因此,消息传递信号可以包括地址,从而接收方处理器可将收到的消息传递信号路由到恰适的寄存器。作为对比,GPIO信号常规上在专用引脚上传送和接收,从而没有地址需要与GPIO信号相关联。如将在本文中进一步解释的,VGI FSM 1508将GPIO信号串行化成在共用传送引脚上传送的串行虚拟GPIO信号。例如,主机设备1502(或者外围设备1504)处的VGIFSM 1508将GPIO寄存器1526的一个或多个GPIO信号(本文中称作虚拟GPIO信号)和/或消息传递信号1528串行化以供在线路1546上进行传输(例如,从主机设备1502到外围设备1504)。关于接收,主机设备1502处的VGI FSM 1508将串行虚拟GPIO信号和接收到的串行消息传递信号解串行化。由此,VGI FSM 1508对于虚拟GPIO信号和消息传递信号而言起到串行器/解串器的作用。因此,两个设备可以各自具有VGI FSM 1508并且可以在虚拟GPIO信令的结构或格式上达成一致。启用VGI的传送方和接收方设备(例如,主机设备1502或外围设备1504)可以通过GPIO信号在包括虚拟GPIO信号集合的VGI分组内的位置来标识该GPIO信号。
在一方面,VGI物理链路1510可以由CPU 1506经由CPU链路1552来配置。例如,在配置阶段期间,CPU 1506可以经由CPU链路1552来配置VGI物理链路1510的各种特性,诸如转换速率、数据转移速度等等。在一方面,VGI物理链路1510随后可以基于通过CPU链路1552接收到的配置来独立于CPU 1506地操作。
在一方面,GPIO网络1500可以仅实现两个引脚(诸如传输引脚1534和接收引脚1536)以传送和接收原本各自需要它们自己的专用GPIO引脚对(若GPIO信号的数目是对称的)的虚拟GPIO信号。例如,主机设备1502处的GPIO寄存器1526的GPIO信号#1可以从专用GPIO引脚1519传送到外围设备1504处的专用GPIO引脚1521。因此,常规办法将要求主机设备1502和外围设备1504处的数个物理引脚1514,连同对应的互连1515一起,以在主机设备1502和外围设备1504之间传达GPIO信号。
如图15中所示,关于接收和传送消息传递信号1528(例如,I3C信号),VGI FSM1508可以直接与对应的处理器(例如,CPU 1506)对接。因为消息传递信号1528不是GPIO信号,所以它们不是通过GPIO接口耦合的。在一方面,每个VGI FSM 1508可以通过其专用的传送引脚1534和接收引脚1536来传送和接收消息传递信号1528。因此,专用传送引脚1534和接收引脚1536可以被用于虚拟GPIO信号(例如,在VGI链路接口1522上通信的来自GPIO寄存器1526的GPIO信号)和消息传递信号1528两者。
在一方面,可以领会,当来自GPIO寄存器1526的GPIO信号作为虚拟GPIO信号在VGI链路接口1522上传送和/或接收时,物理引脚1514可以被分配用于其他目的。因此,与其中GPIO寄存器1526的GPIO信号将各自需要它们自身的物理引脚的常规GPIO办法相比,GPIO网络1500可以达成(例如,主机设备1502和/或外围设备1504上)显著的引脚减少。如图15中所示,VGI FSM 1508可以通过接口1554来访问对应于GPIO寄存器1526的GPIO信号。
在一方面,参照图15,因为GPIO寄存器1526的GPIO信号可以由VGI FSM 1508通过GPIO接口1512独立地访问,所以主机设备1502(和/或外围设备)中的对应于VGI FSM 1528的CPU 1506可以是睡眠的或者处于其他类型的休眠状态中并且还可以能够接收与GPIO寄存器1526相关联的GPIO信号以及消息传递信号1528。以这种方式,GPIO网络1500不仅有利地节约了每个GPIO接口1512的引脚的数目,而且也减小了功耗。
CPU 1506可能需要响应于与GPIO寄存器1526相关联的GPIO信号中的改变或消息传递信号1528中的改变来接收中断信号。关于虚拟GPIO信号(例如,GPIO寄存器1526的串行GPIO信号)和消息传递信号1528,中断控制器1524如通过中断配置寄存器(未解说)所编程的那样监视所选择的GPIO信号或消息传递信号。GPIO寄存器1526的每个GPIO信号可以具有对应的中断配置寄存器。如果要求GPIO寄存器1526的GPIO信号响应于该信号改变状态而生成中断,则对应的配置寄存器将被相应地编程。类似地,如果GPIO寄存器1526的GPIO信号或消息传递信号1528是无论该信号是否改变了状态均不生成中断的信号,那么对应的中断配置寄存器也将被相应地编程。在一些方面,中断控制器1524也可以包括有限状态机。由此,类似于VGI FSM 1508,中断控制器1524是低功率设备并且无论其CPU 1506是处于睡眠模式还是某个其他休眠状态均是活跃的。
在一方面,对应的VGI FSM 1508的CPU 1506可以向VGI FSM 1508指派地址。相应地,VGI FSM 1508可以被配置成解码消息传递信号1528中的地址字段1556,从而给定的消息传递信号1528可以被存储在对应的消息传递寄存器(例如,消息传递寄存器1530)中。这些消息传递寄存器1530各自被映射到对应的CPU(例如,主机设备处或外围设备1504中的CPU 1506)的地址空间内的VGI FSM 1508的一般地址的某一偏移。响应于来自中断控制器1524的中断,处理器1506可以随后访问消息传递寄存器1530以获取恰适的消息传递信号1528。类似于先前讨论的虚拟GPIO信号,消息传递信号1528可以被细分为传输集和接收集。无论该架构是对称的还是不对称的,结果所得的由VGI FSM 1508对这些传送集进行的传输是在单个传送引脚1534上发生的。来自一个设备(例如,主机设备1502)的虚拟GPIO信号的传送集成为远程设备(例如,外围设备1504)的虚拟GPIO信号的接收集。类似地,消息传递信号1528的传送集成为远程设备(例如,外围设备1504)的消息传递信号1528的接收集。远程设备(例如,外围设备1504)的VGI FSM 1508随后将虚拟GPIO信号的接收集解串行化,从而它们可以并行地给到远程设备处的GPIO接口1512。
在一方面,图15中的每个VGI FSM 1508可以包括存储虚拟GPIO信号(例如,GPIO寄存器1512的串行化GPIO信号)的传送集和消息传递信号1528的先前状态的寄存器(为了便于解说而从图15中省略)。以这种方式,每个VGI FSM 1508可以监视从GPIO接口1512接收到的虚拟GPIO信号的传送集的当前状态,并且仅在当前状态相对于先前状态而言已发生改变时才触发对应传送集的串行传输。换言之,VGI FSM 1508可以仅在通过在配置寄存器中存储先前状态检测到传送集内的一个或多个信号已改变状态的情况下才触发传送集的串行传输。每个CPU 1506知晓消息传递信号寄存器1530的地址并且可以由此将期望的传送集写入到消息传递信号寄存器1530中并且也可读取接收集中的任何变化。VGI FSM 1508监视消息传递信号的传送集1528是否相对于它们先前的传输发生了变化并且将相应地触发传送集向远程处理器的传输。中断控制器1524可以监视接收集是否如先前所讨论地发生了改变,并且中断对应的CPU 1506,从而经改变的接收集可得到处理。
集成电路可以仅包括一个VGI FSM 1508或者可以包括用于与多个外部系统对接的多个这些元件。图16A解说了GPIO网络1600,其中主机设备1602包括单个VGI FSM 1616以与远程设备1604通信,该远程设备包括其自身的VGI FSM 1616。作为对比,图16B中所示的主机设备1652包括VGI FSM 1616A和VGI FSM 1616B以分别与设备1654和1656中的远程处理器通信。就此而言,SoC可以配置有为容适与其他SoC的VGI信令所必需的尽可能多的VGIFSM。不管CPU可具有的FSM的数目是多少,如图16A中所指示的,每个VGI FSM使用其自身的专用传送引脚1606和接收引脚1608进行通信。
如以上所讨论的,每个VGI FSM 1508充当串行器/解串器以将每个传送集串行化并且将每个接收集解串行化。图17是FSM 1508的框图以更好地解说这些操作。VGI FSM1508通过复用模块1700与对应的CPU 1506交换虚拟GPIO信号1518和消息传递信号1528。复用模块1700针对虚拟GPIO信号1518通过虚拟GPIO接口1512与对应的CPU 1506对接,并且针对消息传递信号1528直接与对应的CPU 1506对接。在一个实施例中,每个VGI FSM 1508包括仅在任一传送集中有改变的情况下才将授权在传送线1546上传送虚拟GPIO信号1518的传送集或消息传递信号1528的传送集的传输的逻辑电路1702。逻辑电路1702由此将虚拟GPIO信号1518(或消息传递信号1528)的传送集的当前状态与存储在相应配置寄存器1704中的该传送信号集合的先前状态作比较。例如,逻辑电路1702可以包括异或(XOR)门1706以执行该比较。复用模块1700将该传送集并行加载到并入串出(PISO)移位寄存器1708中。若来自异或门1706的使能信号1709走高(指示传送集的当前状态与先前状态之间有改变),则PISO移位寄存器1708被启用以响应于外部时钟1550的循环而串行地将其内容移出到传送线1546上。
VGI FSM 1508还使用串入并出(SIPO)移位寄存器1710以类似的方式将虚拟GPIO信号1518或消息传递信号1528的接收集解串行化。虚拟GPIO信号1518和消息传递信号1528的接收集由远程CPU生成并且由远程CPU传送到接收线1548上。该虚拟GPIO信号1518(或消息传递信号1528)的接收集响应于外部时钟1550的循环而被成功地移到SIPO移位寄存器1710中。如本文中所进一步讨论的,VGI FSM 1508被配置成在诸具有单独的开始位和结束位的帧中进行虚拟GPIO信号1518和消息传递信号1528的传送集的传送和接收集的接收。先前讨论的帧可以具有预定义大小。在一个实施例中,如先前关于参照图14A所讨论的VGI分组1400所讨论的,帧大小由报头确定成长度为特定数目个比特。
为了检测接收到虚拟GPIO信号1518或消息传递信号1528的接收集的完整帧,VGIFSM 1508可以包括如图17中所示的在接收到该帧的开始位之后对所需的外部时钟1550的循环数目进行计数的逻辑电路1712。例如,假设接收集包括响应于外部时钟1550的十个循环所接收到的十个虚拟GPIO信号1518。在检测到开始位并且等待了外部时钟1550的另外十个循环后,逻辑电路1712将接着期望接收到结束位。如果相应地检测到了结束位,那么逻辑电路1712可以接着选通输出锁存器1714以并行接收已作为完整帧被移入SIPO移位寄存器1710的虚拟GPIO信号1518的接收集。被锁存的虚拟GPIO信号的接收集接着可以通过复用模块1700被呈递给GPIO接口1512。虽然消息传递信号的接收集被加载到消息传递信号寄存器1528而非通过GPIO接口1512来路由,但是也类同地发生对消息传递信号1528的接收集的锁存。
再次参照PISO移位寄存器1708,可以领会,该寄存器被配置成将虚拟GPIO信号1518和消息传递信号1528的传送集用开始位和结束位来框定。虚拟GPIO信号的传送集由此在由开始位和结束位1404、1410划界的VGI分组14000中被传送。因为传送方处理器的传送集变成远程CPU的接收集,所以该接收集也被相应地封装。该封装是有利的,因为每个CPU由此可以监视远程CPU的健康而不需要任何附加的专用引脚。例如,每个VGI FSM 1508可以被配置成在默认状态(虚拟GPIO信号的传送集的当前状态相比于先前状态没有改变)期间将其专用传送引脚(例如,主机设备1502处的引脚1534或外围设备1504处的引脚1542)弱拉至电源电压。对于此类实施例而言,开始位将会是逻辑零,以使得为了传送此开始位,VGI FSM1508将传送线1546接地。以这种方式,每个VGI FSM 1508可以通过检测接收线1548已被拉至接地而容易地检测出收到开始位。在一个实施例中,开始位和停止位是逻辑互补的。若开始位为逻辑零,则停止位由此将为逻辑高值。VGI分组的有效载荷可以随后从类型位延展到划界分组结束的停止位1410。
存在CPU可能已经发生故障从而其不恰适地将其传送线1546拉到接地的可能性。远程处理器将由此将这一情况检测为开始位,并且逻辑电路1712将相应地开始向着VGI分组的结束进行计数。然而,若结束位是逻辑1,则每个VGI FSM 1508将传送线1546充电至电源电压以发信令通知帧传输的结束。若CPU发生了故障以使得远程VGI FSM 1508检测到被视为开始位的信号,则逻辑电路1712将不会检测到结束位,并且将相应地告知其处理器有关远程处理器的故障。
为了允许有足够的建立时间来进行接收,VGI分组1400的传输应当参照第一时钟沿来发生,并且接收应当参照剩余的时钟沿来发生。例如,PISO移位寄存器1708中的比特可以响应于外部时钟1550的下降沿或即负沿而被移出以供在传送线1546上传送。相反地,接收线1548上的收到比特可以响应于时钟1550的上升沿或即正沿而被移入SIPO移位寄存器1710。
为使一个处理器检测到远程处理器中的非活跃状态,每个VGI FSM 1508可以被配置成在默认状态(其中没有帧要传送)中弱拉高其传送线。如先前所讨论的,开始位和停止位具有相反的逻辑状态。图14A的VGI分组1400的开始位1404可以由此具有逻辑值‘0’(接地),从而传送线1546为其传输而被拉低,而停止位1406可以为逻辑值‘1’,从而传送线1546为其传输而被拉高到电源电压。再次参见图17,逻辑电路1712被配置成针对外部时钟1550的上升沿来监视接收线1548。无帧传输的默认逻辑状态通过接收线1548因其上文所讨论的弱上拉而简单地维持在高来指示。如果逻辑电路1712在外部时钟1550的上升沿之一检测到接收线1548已被拉低(指示开始位1404的零值),则逻辑电路1712根据VGI分组1400的预定义大小等待足够数目的时钟循环以随后检测停止位1410的逻辑高值。接收到停止位1410向逻辑电路1712指示完整VGI分组1400已被完全移入SIPO移位寄存器1710。此刻,逻辑电路1712选通SIPO移位寄存器1710,以使得收到的帧通过锁存器1714被并行地提供到复用模块1700。虚拟GPIO信号(或消息传递信号1528)的接收集可以接着通过GPIO接口1512被相应地提供到处理器核。
相对慢的外部时钟1550(诸如32KHz睡眠时钟)对于IPC的信令要求来说可以是充足的。例如,假设虚拟GPIO信号1518和消息传递信号1528的传输的最小建立和保持要求各自为两纳秒,并且VGI FSM 1508处收到外部时钟1550的最大预期领先或滞后为六纳秒。能够容易地示出,外部时钟1550的结果所得的最大频率将会是62MHz。诸如来自休眠时钟的32KHz频率由此会为此类实施例提供非常大的安全边际。
图18是解说示例VGI实现的示图。图18示出了包括耦合到外围设备1806的主机设备1804(例如,主机SoC)的示例配置1802。主机设备1804和外围设备1806可以通过低速(LS)接口(I/F)1808传输信号并且可以传输N个边带GPIO。在第一示例VGI实现中,如配置1812中所示,主机设备和外围设备使用三导线同步全双工VGI实现来耦合。在第二示例VGI实现中,如配置1814中所示,主机设备和外围设备使用双导线同步全双工VGI实现来耦合。在配置1814中,主机设备和外围设备各自包括可以利用通用物理链路(诸如I3C物理链路)的VGIFSM。配置1814可以启用NRZ消息传递(UART)、嵌入式GPIO/中断、和/或带内流控制。在第三示例VGI实现中,如配置1816中所示,主机设备和外围设备使用双导线(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和1920。例如,外围设备1904可以具有地址0x01,而外围设备1906可以具有地址0x02。在图19的示例配置中,相机#1 1904可以从主机设备1902接收三个GPIO信号。例如,并且如图19中所示,相机#1 1904具有三个引脚,诸如用于从主机设备1902的引脚3 1932、引脚4 1934、和引脚5 1936接收对应GPIO信号的引脚11938、引脚2 1940、和引脚3 1942。在图19的示例中,在引脚1 1938处接收的GPIO信号可以是待机信号,在引脚2 1940处接收的GPIO信号可以是复位信号、以及在引脚31942处接收的GPIO信号可以是闪存信号。作为另一示例,并且如图19中所示,相机#2 1906具有两个引脚,诸如用于从主机设备1902的引脚6 1948和引脚7 1936接收对应GPIO信号的引脚1 1944和引脚2 1946。在图19的示例中,引脚1 1944处接收的GPIO信号可以是待机信号,而引脚21946处接收的GPIO信号可以是复位信号。如图19中所示,剩余的外围设备(例如,传感器#1190、触摸屏控制器1910、和外围设备#n 1912)可以在它们对应的引脚处从主机设备1902类似地接收GPIO信号。关于图19,此类GPIO信号统称为边带GPIO信号1930。在一方面,主机设备1902可以包括GPIO输入引脚1 1952和GPIO输出引脚2 1954。主机设备1902可以进一步包括用于在I3C总线1924上与n个外围设备(例如,相机#1 1904、相机#2 1906、传感器#11908、触摸屏控制器1910、和外围设备#n 1912)中的对应I3C接口(图19中未示出)通信的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的第一列2002、指示相对于主机设备的信号转移方向(例如,输出(O/P)或输入(I/P))的第二列2004、指示外围设备的地址的第三列2006、指示外围设备的I/O数目的第四列2008、指示对应于外围设备的I/O的参数的第五列2010、以及指示来自主机设备的广播输出分组中的I/O位置的第六列2012。例如,主机设备的I/O可以是图19中的主机设备1902的引脚1-14。在此类示例中,指示外围设备的I/O数目的第四列2008可以包括对应于主机I/O 1-14的外围设备的I/O。因此,I/O映射表2000的I/O映射可以建立主机设备的I/O与外围设备的I/O之间的一对一关联。主机设备(例如,主机设备1902)可以在单独的表中维护该映射。在一方面,I/O映射表2000可以通过主机设备和外围设备之间的私有合同而与总线(例如,I3C总线)上的每个外围设备共享。在一方面,输入可以使用IBI和私有合同交换或经由如定向读取操作中所示的读取操作来管理。
图21解说了示例通用输入/输出(GPIO)网络2100的框图。GPIO网络2100包括主机设备2102和外围设备2104。如图21中所示,主机设备2102经由I3C总线2116与外围设备2104处于通信。例如,I3C总线2116可以是包括用于数据的导线和用于时钟信号的导线的双导线总线。在图21的配置中,源于主机设备2102中的硬件事件(例如,在区域2112中标记为“1”、“2”和“3”)可以由中断控制器2108接收。例如,硬件事件2112可以是内部硬件事件(例如,内部寄存器可访问位)。在其他方面,可能存在外部硬件事件(例如,外部可访问引脚)。中断控制器2108可以向CPU复合体2110传达硬件事件,从而CPU复合体2110可以生成用于传输到外围设备2104的经寄存器映射的I3C分组。例如,此类经寄存器映射的I3C分组可以经由主机设备2102的I3C IP块2106和I3C总线2116传送到外围设备2104。外围设备2104可以在I3CIP块2118处接收经寄存器映射的I3C分组,I3C IP块2118可以向MPU 2120提供经寄存器映射的I3C分组。MPU 2120可以随后标识硬件事件(例如,区域2122中标记为“1”、“2”、和“3”)。
图22解说了根据本公开的各方面的示例通用输入/输出(GPIO)网络2200的框图。GPIO网络2200包括主机设备2202和外围设备2204。如图22中所示,主机设备2202经由I3C总线2216与外围设备2204处于通信。在图22的配置中,源于主机设备2202中的硬件事件(例如,在区域2212中标记为“1”、“2”和“3”)可以由VGI FSM 2208接收。例如,硬件事件2212可以是内部硬件事件(例如,内部寄存器可访问位)。在其他方面,可能存在外部硬件事件(例如,外部可访问引脚)。VGI FSM 2208可以生成包括硬件事件的VGI分组以供传送至外围设备2204。例如,此类VGI分组可以经由主机设备2202的I3C IP块2206和I3C总线2216传送到外围设备2204。外围设备2204可以在I3C IP块2218处接收VGI分组,该I3C IP块2218可以向VGI FSM 2220提供VGI分组。VGI FSM 2220可以随后标识硬件事件(例如,区域2222中标记为“1”、“2”、和“3”)。应当注意,在图22的配置中,VGI FSM 2208可以在没有主机设备2202中的CPU 2210的介入的情况下(例如,在没有唤醒以生成VGI分组的情况下)生成和传送VGI分组,而图21的配置要求主机设备2102中的CPU 2110的介入(例如,唤醒以生成VGI分组)来生成并传送VGI分组。
虽然VGI协议和I3C上VGI协议可以使用定向和广播配置来在经掩码和未经掩码的模式中实现I/O状态转移特征,但是本文中描述的诸方面包括用于传送I/O引脚的电气配置(诸如驱动强度、极性、转换速率等等)的办法。如本文中所讨论的,可以实现用于经映射I/O的各种I/O配置以确保提供针对给定使用情况的最少等待时间的分组结构的可用性。在一方面,以及如本文中所描述的,可以实现单独的配置和事件消息。在其他方面,可以实现包括配置信号和事件信号二者的合并消息。例如,单独消息协议可以在其中不频繁地要求I/O电气配置的情况中实现。在另一示例中,合并消息协议可以在其中频繁地期望I/O电气配置的情况中实现。虽然在大多数情况中,单独消息协议可以提供I/O传输等待时间的显著减小,但是当要求频繁的I/O配置改变时,合并协议可以减少等待时间。
VGI消息传递办法
在一方面,可以实现仅配置消息。这是一种存储在外围设备寄存器中的、定义与每个GPIO引脚相关联的特性或设置的消息。仅配置消息可以在主机上电时被实现一次,或者按照主机针对与每个GPIO引脚相关联的特性或设置的修改而需要重新配置外围设备寄存器的频繁程度来实现。在另一方面,可以实现仅事件消息。仅事件消息是仅标识所定址的外围设备的GPIO引脚的事件状态(例如,逻辑值,诸如逻辑‘0’或逻辑‘1’)的虚拟GPIO消息。在一方面,仅事件消息可以在每当GPIO引脚的逻辑值改变(也被称作事件状态改变)时被发送。在另一方面,可以实现合并配置和事件消息。合并配置和事件消息(也被称作“扁平化”消息)可以在消息中包括串行化的配置和事件信息,并且可以被用来在一条消息中改变所定址的外围设备的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相关联的引脚配置寄存器(诸如配置寄存器#0 2312到配置寄存器#N 2316)可以被包括在偏移地址位置2314(例如,相对于物理引脚#0基地址2310的偏移)处。在图23的方面,配置寄存器(例如,配置寄存器2312)是8位宽。例如,此类8位在对应的寄存器位2318中被示为位D0到D7。然而,在其他方面,配置寄存器可以具有大于8位或小于8位。此外,全局引脚地址2308可以包括N位,其中N可以是基于实现所选择的整数。在图23中,与物理引脚相关联的引脚状态触发器可以存储对应物理引脚的事件状态(例如,逻辑‘1’或逻辑‘0’)。例如,与物理引脚#0 2302相关联的物理引脚配置逻辑和I/O单元块2320中的引脚状态触发器2322可以存储物理引脚#0 2302的事件状态(例如,逻辑‘1’或逻辑‘0’)。
在一方面,存储在引脚状态触发器中的物理引脚的引脚状态(例如,事件状态)可以被镜像到配置寄存器的特定位。如下文将描述的,引脚状态的此类镜像可以方便地实现跨不同消息传递模式的虚拟物理引脚访问。例如,参照图23,存储在引脚状态触发器2322中的物理引脚#0 2302的引脚状态可以被镜像(如箭头2326所示的)到配置寄存器#N 2316的位D7 2324。因此,配置寄存器可以被用来配置物理引脚配置逻辑和I/O单元块2320处的对应物理引脚。应当理解,图23中的剩余物理引脚(例如,物理引脚#1 2304到物理引脚#N2306)可以按类似于上文参照物理引脚#0 2302所描述的方式来配置。
图24是解说与外围设备的物理引脚相关联的配置寄存器的示例设置的示图。在图24中,配置寄存器结构是基于用于配置物理引脚2406的两个8位寄存器(例如,配置寄存器A2402和配置寄存器B 2404)的。然而,应当理解,在其他方面可以实现不同数目的配置寄存器。此外,在其他方面,每个配置寄存器可以包括大于8位或小于8位。配置寄存器结构可以是硅级实现选择。在一个示例中,配置寄存器2402可以对应于图23的配置寄存器#0 2312,配置寄存器2404可以对应于图23的配置寄存器#N 2316,而物理引脚2406可以对应于图23的物理引脚#0 2302。在图23的该方面,配置寄存器B 2404的位D7可以对应于图23中的配置寄存器#N 2316的位D7 2324(也称作引脚状态镜像位)。
参照图24,例如,物理引脚2406的驱动强度2408可以通过修改配置寄存器A 2406中的位D0、D1和D2来控制。例如,以及如图24中所示,可以使得二进制值‘000’到二进制值‘111’之间的八个二级制值中的每一者表示特定的驱动强度值。相应地,通过根据对应于期望驱动强度值的二进制值(例如,‘000’到‘111’之间)来设置配置寄存器A 2402中的位D0、D1和D2,主机设备可以控制外围设备处的物理引脚2406的驱动强度。可以领会,与物理引脚2406相关联的其他特性和/或设置(例如,转换速率、中断使能/禁用、边沿/电平触发中断、I/O电压电平、等等)可以通过修改如图24中所示的配置寄存器的对应位来控制。
消息传递办法
针对不同类型的使用情况,不同的消息传递办法可以被实现以达成指定消息传递模式内的最小等待时间。在第一示例情形中,可能需要一次或不频繁地需要物理引脚的配置(例如,I/O电气配置),和/或可能较频繁地需要I/O(例如,事件状态)更新。在此类情况中,可以使用仅配置消息来执行I/O电气配置。在一方面,在I/O电气配置之后,仅需要交换I/O状态。I/O状态交换可以基于任何优选办法,诸如定向消息传递、广播消息传递、或者使用定向或广播办法的经掩码消息传递。在第二示例情形中(例如,仅事件状态或I/O消息传递),内部虚拟I/O到内部虚拟I/O连接可以被实现,因为其不需要物理引脚的电气配置设置。在其中电气配置总是固定的物理引脚映射的情形中,这也是适用的。类似于第一情形,I/O状态交换可以如上文参照第一情形所描述的那样发生。在第三示例情形中,可以实现合并配置和事件消息。在I/O事件状态和I/O配置二者必须频繁地更新的情形中,该办法可以提供最优的等待时间性能(例如,最低等待时间)。在一方面,在该办法中,I/O事件状态和I/O配置信息在分组(例如,如本文中公开的VGI分组)中是交织的。在第四示例情形中,可以实现封装消息传递。对于其中物理层协议允许通用有效载荷而同时具有其自身的唯一性报头构造的所有接口而言,封装允许将VGI分组结构嵌入在考虑中的特定协议的有效载荷部分内。该办法允许以低复杂度使用VGI FSM。
图25是解说定向I/O映射寄存器的示图。如图25中所示,直接I/O映射寄存器2508可以位于一个地址(诸如0x1111)处。在图25的该方面,直接I/O映射寄存器2508可以包括8位(例如,D0到D7)。在其他方面,直接I/O映射寄存器2508的大小(例如,位长度)可以依赖于实现。如图25中所示,与物理引脚相关联的引脚状态触发器可以存储对应物理引脚的事件状态(例如,逻辑‘1’或逻辑‘0’)。例如,与物理引脚#0 2502相关联的物理引脚配置逻辑和I/O单元块2512中的引脚状态触发器2514可以存储物理引脚#0 2502的事件状态(例如,逻辑‘1’或逻辑‘0’)。存储在引脚状态触发器2514中的物理引脚#0 2502的引脚状态可以被镜像(如箭头2518所示)到配置寄存器#N 2520的位D7 2516,存储在引脚状态触发器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的仅事件消息)来修改。例如,物理引脚#02502的引脚状态可以通过读取直接I/O映射寄存器2508的位D0来读取,物理引脚#1 2504的引脚状态可以通过读取直接I/O映射寄存器2508的位D1来读取,以及物理引脚#N 2506的引脚状态可以通过读取直接I/O映射寄存器2508的位D7来读取在另一示例中,物理引脚#02502的引脚状态可以通过改变直接I/O映射寄存器2508的位D0的值来改变,物理引脚#12504的引脚状态可以通过改变直接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的示例的示图。如先前所讨论的,合并配置和事件消息可以包括外围设备的一个或多个引脚(例如GPIO引脚)的I/O配置信息和I/O事件状态信息(例如,GPIO引脚状态,诸如逻辑值‘1’或逻辑值‘0’),其中I/O配置信息和I/O事件状态信息基于预定义映射方案在分组(例如,如本文中所公开的VGI分组)中交织。相应地,在一方面,合并配置和事件消息(也被称作合并分组)中的每个比特的位置和身份可以被提供给外围设备,从而每个外围设备可以在合并配置和事件消息中标识涉及它们的比特。例如,合并配置和事件消息中的每个比特的位置和身份可以使用可以存储在指定寄存器中的仅消息分组来从主机设备(例如,主机SoC)提供到外围设备。在一方面,主机设备可以至少向每个外围设备提供I/O映射表(例如,I/O映射表2000)的相关部分。本文中描述的各方面可以因此允许每个外围设备知晓传入比特流中的每个比特的含义。例如,参照图20中的I/O映射表2000和图28中的传入数据流的映射位2801的示例集合,位M1 2802可以对应于I/O映射表2000中的掩码位2014,位2804可以对应于I/O映射表2000中的位值2016,位M2 2806可以对应于I/O映射表2000中的掩码位2020,位2808可以对应于I/O映射表2000中的位值2022,等等,从而位MN 2820可以对应于I/O映射表2000中的掩码位2036,以及位2822可以对应于I/O映射表2000中的位值2038。在一方面,掩码位(例如,位M1 2802)的值可以标识紧邻位(例如,位b1 2804)的值是否改变了状态。例如,若掩码位(例如,位M1 2802)被设置成逻辑值‘1’,则外围设备可以检测到紧邻位(例如,位b1 2804)的值改变了状态(例如,从逻辑值‘0’改变成逻辑值‘1’,或者从逻辑值‘1’改变成逻辑值‘0’)。相应地,在此类示例中,若掩码位(例如,位M1 2802)被设置成‘0’,则外围设备可以检测到紧邻位(例如,位b1 2804)的值没有改变状态。应当理解,掩码位的这些值表示一种可能的实现。因此,在其他方面,掩码位可以被设置成相对于上述示例的不同值以指示紧邻位的值是否改变了状态(例如,掩码位可以被设置成逻辑值‘0’以指示紧邻位的值改变了状态,或者设置成逻辑值‘1’以指示紧邻位的值没有改变状态)。
因此,应当注意,配置和事件消息格式2800可以包括设备的外部GPIO引脚的配置信息(例如,配置外部GPIO引脚的设置、参数和/或特性的信息、配置外部GPIO引脚是输入还是输出的信息,等等)以及单条(例如,合并)消息中的外部GPIO引脚的事件状态(例如,逻辑值‘1’或‘0’)。在一方面,共用命令码(CCC)可以被用来指示此类合并消息格式是合并分组。外部GPIO可以具有个体电气和行为配置需要,诸如驱动强度、方向性、开漏操作、中断配置、等等。此类配置可以在VGI空间中处置(从而VGI分组处置所有此类配置)或者在I3C空间中处置(从而配置信息经由正常I3C事务来传输)。在一方面,I/O的状态可以经由专用VGI_CCC命令来传输。
在一个示例中,并且参照图28和图20中的I/O映射表2000,位b1 2804可以设置地址0x01处的第一外围设备的GPIO引脚#1的事件状态(逻辑‘1’或逻辑‘0’),位b2 2808可以设置地址0x01处的第一外围设备的GPIO引脚#1的驱动强度(例如,当设置成逻辑‘0’时设置成4mA,或者当设置成逻辑‘1’时设置成20mA),位b3 2810可以在被设置成逻辑‘0’时将地址0x01处的第一外围设备的GPIO引脚#1设置成输入引脚或者在被设置成逻辑‘1’时将地址0x01处的第一外围设备的GPIO引脚#1设置成输出引脚,位b4 2812可以在设置成逻辑‘0’时将第一外围设备的GPIO引脚#1设置成开漏(OD)或者在被设置成逻辑‘1’时将第一外围设备的GPIO引脚#1设置成推挽,位b5 2814可以在被设置成逻辑‘0’时将第一外围设备的GPIO引脚#1设置成边沿触发的中断或者在被设置成逻辑‘1’时将第一外围设备的GPIO引脚#1设置成边沿触发的中断。在此类示例中,位b6 2816可以设置第一外围设备的GPIO引脚#2的事件状态,而位b7 2818可以设置第一外围设备GPIO引脚#3的事件状态。位b8 2819可以设置地址0x02处的第二外围设备的GPIO引脚#1的事件状态(逻辑‘1’或逻辑‘0’)。因此,在该示例中,当地址0x02处的第二外围设备接收到映射位2801时,第二外围设备可以基于I/O映射表2000而丢弃位b1 2804、b2 2808、b3 2810、b4 2812、b5 2814、b6 2816和b7 2818,并且可以处理位b8 2819(以及后续位b9)。
图29是解说使用合并消息来进行写操作的广播消息传递的示例的示图。图29的示例配置示出了先前参照图8描述的示例广播帧800。相应地,VGPIO数据有效载荷806可以包括基于I/O映射表2000的映射位2900。在一个方面,VGPIO数据有效载荷806中的每个比特位置可以与外围设备处的对应GPIO引脚号(也被称作外围设备I/O号)相关联,如图29中所示的I/O映射表2000所指示的。例如,位b1 2902可以设置地址0x01处的第一外围设备的GPIO引脚#1的事件状态(例如,将引脚状态设置为逻辑‘1’或逻辑‘0’)。剩余位b2 2904、b3 2906、和b4 2908到bN 2910可以设置GPIO引脚的事件状态或者可以如I/O映射表2000中所指示的那样(以及类似于先前描述的映射位2801)配置外围设备处的GPIO引脚。因此,在一个示例中,位bN 2910可以如I/O映射表2000中所指示地设置地址0x05处的第五外围设备的GPIO引脚#2的事件状态(例如,将引脚状态设置为逻辑‘1’或逻辑‘0’)。在一方面,包括映射位2900的示例广播帧800可以被广播到一个或多个外围设备。
用于写操作的消息传递
图30是解说根据本公开的各方面的使用实现掩码的合并消息来进行用于写操作的广播消息传递的示例的示图。图30的示例配置示出了先前参照图9描述的示例经掩码广播帧900。相应地,VGPIO数据有效载荷906可以包括基于I/O映射表2000的映射位2900。在一方面,包括映射位3000的经掩码广播帧900可以被广播到一个或多个外围设备。如图30中所示,映射位3000解说了数据有效载荷906中的比特位置。例如,位M1 3002可以对应于I/O映射表2000中的掩码位2014,位3004可以对应于I/O映射表2000中的位值2016,位M2 3006可以对应于I/O映射表2000中的掩码位2020,位3008可以对应于I/O映射表2000中的位值2022,等等,从而位MN 3014可以对应于I/O映射表2000中的掩码位2036,以及位3016可以对应于I/O映射表2000中的位值2038。在一方面,掩码位(例如,位M1 3002)的值可以标识紧邻位(例如,位b1 3004)的值是否已改变了状态。例如,若掩码位(例如,位M1 3002)被设置成逻辑值‘1’,则外围设备可以检测到紧邻位(例如,位b1 3004)的值改变了状态(例如,从逻辑值‘0’改变成逻辑值‘1’,或者从逻辑值‘1’改变成逻辑值‘0’)。相应地,在此类示例中,若掩码位(例如,位M1 3002)被设置成‘0’,则外围设备可以检测到紧邻位(例如,位b1 3004)的值没有改变状态。应当理解,掩码位的这些值表示一种可能的实现。因此,在其他方面,掩码位可以被设置成相对于上述示例的不同值以指示紧邻位的值是否改变了状态(例如,掩码位可以被设置成逻辑值‘0’以指示紧邻位的值改变了状态,或者设置成逻辑值‘1’以指示紧邻位的值没有改变状态)。
图31是解说使用合并消息进行用于写操作的直接消息传递的示例的示图。图31的示例配置示出了先前参照图10描述的示例定向帧1000。相应地,VGPIO数据有效载荷1012可以包括基于I/O映射表2000的映射位3100,而VGPIO数据有效载荷1018可以包括基于I/O映射表2000的映射位3115。在一个示例中,从动设备地址1010可以包括对应第一外围设备的地址0x01,而从动设备地址1016可以包括对应于第二外围设备的地址0x02。相应地,VGPIO数据有效载荷1012可以针对第一外围设备,而VGPIO数据有效载荷1018可以针对第二外围设备。在一方面,VGPIO数据有效载荷1012中的每个比特位置可以如图29中所示的I/O映射表2000中所指示地与第一外围设备处的对应GPIO引脚号(也被称作外围设备I/O号)相关联,而VGPIO数据有效载荷1018中的每个比特位置可以如图29中所示的I/O映射表2000中所指示地与第二外围设备处的对应GPIO引脚号(也被称作外围设备I/O号)相关联。例如,位b13102可以对应于位值2016并且可以设置第一外围设备的GPIO引脚#1的事件状态(例如,引脚状态设置为逻辑‘1’或逻辑‘0’),位b2 3104可以对应于I/O映射表2000中的位值2022并且可以设置第一外围设备的GPIO引脚#1的驱动强度(例如,在设置成逻辑‘0’时设置成4mA,或者在设置成逻辑‘1’时设置成20mA),等等,从而剩余的位b2 3104、b3 3106、b4 3108、b53110、b6 3112和b7 3114可以设置GPIO引脚的事件状态或者可以如I/O映射表2000中所指示地配置第一外围设备处的GPIO引脚。作为另一示例,位b1 3116可以对应于位值2028并且可以设置第二外围设备的GPIO引脚#1的事件状态(例如,引脚状态设置为逻辑‘1’或逻辑‘0’),位b2 3118可以对应于I/O映射表2000中的位值2034并且可以设置第二外围设备的GPIO引脚#2的事件状态(例如,引脚状态设置成逻辑‘1’或逻辑‘0’)。在一方面,包括映射位3100和3115的定向帧1000可以被传送到一个或多个外围设备。
图32是解说使用实现掩码的合并消息来进行用于写操作的定向消息传递的示例。图32的示例配置示出了先前参照图11描述的示例定向帧1100。相应地,VGPIO数据有效载荷1112可以包括基于I/O映射表2000的映射位3200。在一个示例中,从动设备地址1110可以包括对应于第一外围设备的地址0x01。相应地,VGPIO数据有效载荷1112可以针对第一外围设备。如图32中所示,映射位3200解说了数据有效载荷1112中的比特位置。例如,位M1 3202可以对应于I/O映射表2000中的掩码位2014,位3204可以对应于I/O映射表2000中的位值2016,位M2 3206可以对应于I/O映射表2000中的掩码位2020,位3208可以对应于I/O映射表2000中的位值2022,等等,从而位MN 3214可以对应于I/O映射表2000中的掩码位2023,以及位3216可以对应于I/O映射表2000中的位值2025。因此,VGPIO数据有效载荷1112中的所有映射位3200对应于第一外围设备。在一方面,掩码位(例如,位M1 3202)的值可以标识紧邻位(例如,位b1 3204)的值是否已改变状态。例如,若掩码位(例如,位M1 3202)被设置成逻辑值‘1’,则外围设备可以检测到紧邻位(例如,位b1 3204)的值改变了状态(例如,从逻辑值‘0’改变成逻辑值‘1’,或者从逻辑值‘1’改变成逻辑值‘0’)。相应地,在此类示例中,若掩码位(例如,位M1 3202)被设置成‘0’,则外围设备可以检测到紧邻位(例如,位b1 3204)的值没有改变状态。应当理解,掩码位的这些值表示一种可能的实现。因此,在其他方面,掩码位可以被设置成相对于上述示例的不同值以指示紧邻位的值是否改变了状态(例如,掩码位可以被设置成逻辑值‘0’以指示紧邻位的值改变了状态,或者设置成逻辑值‘1’以指示紧邻位的值没有改变状态)。
用于读操作的消息传递
图33是解说使用合并消息进行用于读操作的定向消息传递的示例。图33的示例配置示出了先前参照图10描述的示例定向帧1000。相应地,VGPIO数据有效载荷1012可以包括基于I/O映射表2000的映射位3300,而VGPIO数据有效载荷1018可以包括基于I/O映射表2000的映射位3311。在一个示例中,从动设备地址1010可以包括对应第一外围设备的地址0x01,而从动设备地址1016可以包括对应于第二外围设备的地址0x02。相应地,VGPIO数据有效载荷1012可以包括来自第一外围设备的数据,而VGPIO数据有效载荷1018可以包括来自第二外围设备的数据。在一方面,VGPIO数据有效载荷1012中的每个比特位置可以如图29中所示的I/O映射表中所指示地与第一外围设备处的对应GPIO引脚号(也被称作外围设备I/O号)相关联,而VGPIO数据有效载荷1018中的每个比特位置可以如图20中所示的I/O映射表2000中所指示地与第二外围设备处的对应GPIO引脚号(也被称作外围设备I/O号)相关联。例如,位b1 3302可以对应于位值2016并且可以设置第一外围设备的GPIO引脚#1的事件状态(例如,引脚状态设置为逻辑‘1’或逻辑‘0’),位b2 3304可以对应于I/O映射表2000中的位值2022并且可以设置第一外围设备的GPIO引脚#1的驱动强度(例如,在设置成逻辑‘0’时设置成4mA,或者在设置成逻辑‘1’时设置成20mA),等等,从而剩余的位b3 3306和b4 3308到by 3310可以包括GPIO引脚的事件状态或者可以包括如I/O映射表2000中所指示的第一外围设备处的GPIO引脚的配置信息。作为另一示例,位b1 3312可以对应于位值2028并且可以包括第二外围设备的GPIO引脚#1的事件状态(例如,引脚状态设置为逻辑‘1’或逻辑‘0’),位bx 3314可以对应于I/O映射表2000中的位值2034并且可以包括第二外围设备的GPIO引脚#2的事件状态(例如,引脚状态设置成逻辑‘1’或逻辑‘0’)。在一方面,包括映射位3300和3311的定向帧1000可以从一个或多个外围设备传送到主机设备。
图34是解说使用实现掩码的合并消息来进行用于读操作的定向消息传递的示例。图34的示例配置示出了先前参照图14B描述的示例定向帧1440。相应地,经封装的VGI分组1452可以包括基于I/O映射表2000的映射位3400。在一个示例中,从动设备地址1450可以包括对应于第一外围设备的地址0x01。相应地,经封装的VGI分组1452可以包括来自第一外围设备的数据。如图34中所示,映射位3400解说了可包括在经封装的VGI分组1452中的比特位置。例如,位M1 3402可以对应于I/O映射表2000中的掩码位2014,位3404可以对应于I/O映射表2000中的位值2016,位M2 3406可以对应于I/O映射表2000中的掩码位2020,位3408可以对应于I/O映射表2000中的位值2022,等等,从而位My 3416可以对应于I/O映射表2000中的掩码位2023,以及位3418可以对应于I/O映射表2000中的位值2025。因此,经封装的VGI分组1452中的所有映射位3200对应于第一外围设备。在一方面,掩码位(例如,位M1 3402)的值可以标识紧邻位(例如,位b1 3404)的值是否已改变状态。例如,若掩码位(例如,位M13402)被设置成逻辑值‘1’,则外围设备可以检测到紧邻位(例如,位b1 3404)的值改变了状态(例如,从逻辑值‘0’改变成逻辑值‘1’,或者从逻辑值‘1’改变成逻辑值‘0’)相应地,在此类示例中,若掩码位(例如,位M1 3402)被设置成‘0’,则外围设备可以检测到紧邻位(例如,位b1 3404)的值没有改变状态。应当理解,掩码位的这些值表示一种可能的实现。因此,在其他方面,掩码位可以被设置成相对于上述示例的不同值来指示紧邻位的值是否改变了状态(例如,掩码位可以被设置成逻辑值‘0’以指示紧邻位的值改变了状态,或者设置成逻辑值‘1’以指示紧邻位的值没有改变状态)。在一方面,包括映射位3400的定向帧1440可以从一个或多个外围设备传送到主机设备。
应当注意,可以参照图28、30、32和/或34中描述的掩码位来实现不同的掩码配置。例如,图35示出了包括与多个紧邻位值相关联的掩码位的映射位3501。在一个方面,掩码位3502可以与位b1 3504、b2 3506、b3 3508相关联,掩码位3510可以与b4 3512、b5 3514、b63516和b7 3518相关联,以及掩码位3524可以与位bN 3526相关联。在此类方面,例如,位b13504、b2 3506、b3 3508中的至少一者的状态的改变可以通过将掩码位3502设置成逻辑‘1’来指示。作为另一示例,位b4 3512、b5 3514、b6 3516和b7 3518中的至少一者的状态没有改变可以通过将掩码位3502设置成逻辑‘0’来指示。
图36示出了根据本公开的各个方面的VGI FSM(例如,图15中的VGI FSM 1508)的示例配置。如图36中所示,VGI FSM 3602包括I/O映射器与消息格式器逻辑电路3604、I/O聚集块3606、和功率管理单元3608。I/O映射器和消息格式器逻辑电路3604可以被配置成将GPIO信号(也称作I/O信号)映射到先前所讨论的虚拟GPIO有效载荷的比特位置中。在图36的配置中,VGI FSM 3602被配置成在始终开启域中操作,从而VGI FSM 3602可以独立于CPU(为了便于解说而未在图36中示出)来检测VGI接口上的来自一个或多个外围设备的通信,和/或独立于CPU在VGI接口上获得并向一个或多个外围设备传送通信。换言之,VGI FSM3602可以配置成在不管CPU的低功率或休眠状态的情况下进行操作。在一方面,VGI FSM3602可以配置成实现在需要进行VGI传输时或在检测到VGI通信时唤醒(例如,启用)VGIFSM 3602中的电路和设备(例如,消息格式器逻辑电路3604和/或I/O聚集块3606)的功率管理单元3608。
第一示例性设备和方法
图37是解说根据本公开的至少一个示例的装置3700的组件选集的框图。装置3700包括外部总线接口(或通信接口电路)3702、存储介质3704、用户接口3706、存储器设备3708以及处理电路3710。处理电路3710耦合至外部总线接口3702、存储介质3704、用户接口3706和存储器设备3708中的每一者或被置于与其处于电通信。
外部总线接口3702提供接口以供装置3700的各组件与外部总线3712对接。外部总线接口3702可包括例如以下一者或多者:信号驱动器电路、信号接收机电路、放大器、信号滤波器、信号缓冲器、或者用来与信令总线或其它类型的信令媒体对接的其它电路系统。在一方面,外部总线3712可以包括用于传送和接收VGI信号和/或I3C信号的三个物理互连线(例如,图15中所示的互连1546、1548和1550)。
处理电路3710被安排成获得、处理和/或发送数据,控制数据访问和存储,发布命令,以及控制其他期望操作。在至少一个示例中,处理电路3710可包括被适配成实现由恰适介质提供的期望编程的电路系统。在一些实例中,处理电路3710可包括适配成执行期望功能(在实现编程或在不实现编程的情况下)的电路系统。作为示例,处理电路3710可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行编程和/或期望功能的其他结构。处理电路3710的示例可包括被设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或者其任何组合。通用处理器可包括微处理器,以及任何常规处理器、控制器、微控制器、或状态机。处理电路3710还可实现为计算组件的组合,诸如DSP与微处理器的组合、数个微处理器、与DSP核协作的一个或多个微处理器、ASIC和微处理器、或任何其他数目的变化配置。处理电路3710的这些示例是为了解说,并且还设想了落在本公开范围内的其他合适的配置。
处理电路3710适配成用于进行处理,包括执行可存储在存储介质3704上的编程。如本文中使用的,术语“编程”或“指令”应当被宽泛地解释成不构成限定地包括指令集、指令、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其被称为软件、固件、中间件、微代码、硬件描述语言、还是其他术语。
在一些实例中,处理电路3710可包括以下一者或多者:GPIO和配置信号获得电路/模块3714、映射电路/模块3716、掩码信号获得电路/模块3718、传送电路/模块3720、虚拟GPIO分组获得电路/模块3722、状态改变聚集电路/模块3724、或I3C帧接收电路/模块3725。
GPIO和配置信号获得电路/模块3714可以包括适配成独立于中央处理单元获得一个或多个外围设备的GPIO信号集合,以及独立于中央处理单元获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合的电路系统和/或指令(例如,存储在存储介质3704上的GPIO和配置信号获得指令3726)。
映射电路/模块3716可以包括适配成基于映射表来至少将一个或多个外围设备的GPIO信号集合映射到第一虚拟GPIO分组中的预定比特位置,或者基于映射表来将配置信号集合映射到第二虚拟GPIO分组中的第二预定比特位置的电路系统和/或指令(例如,存储在存储介质3704上的映射指令3728)。在一方面,映射电路/模块3716可以包括适配成基于映射表来将GPIO信号集合和配置信号集合映射到虚拟GPIO分组中的预定比特位置,或者基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态的电路系统和/或指令(例如,存储在存储介质3704上的映射指令3728)。
掩码信号获得电路/模块3718可以包括适配成执行以下操作的电路系统和/或指令(例如,存储在存储介质3704上的掩码信号获得指令3730):获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合包括在第一虚拟GPIO分组中,获得与配置信号集合相关联的掩码信号集合,其中与配置信号集合相关联的掩码信号集合包括在第二虚拟GPIO分组中,获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合包括在虚拟GPIO分组中,或者获得与配置信号集合相关联掩码信号的集合,其中与配置信号集合相关联的掩码信号集合包括在虚拟GPIO分组中。
传送电路/模块3720可以包括适配成执行以下操作的电路系统和/或指令(例如,存储在存储介质3704上的传送指令3732):独立于中央处理单元在I3C总线上向一个或多个外围设备传送第一虚拟GPIO分组,独立于中央处理单元在I3C总线上向一个或多个外围设备传送第二虚拟GPIO分组,独立于中央处理单元在I3C总线上向一个或多个外围设备传送虚拟GPIO分组,或者在I3C总线上向第二外围设备传送第二I3C帧,其中第二I3C帧包括发信令通知至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷。
虚拟GPIO分组获得电路/模块3722可以包括适配成独立于中央处理单元获得包括GPIO信号集合的第一虚拟GPIO分组,以及独立于中央处理单元获得包括配置信号集合的第二虚拟GPIO分组的电路系统和/或指令(例如,存储在存储介质3704上的GPIO分组获得指令3734)。在一个方面,虚拟GPIO分组获得电路/模块3722可以包括适配成获得包括GPIO信号集合和配置信号集合的虚拟GPIO分组,或者从第一I3C帧获得虚拟GPIO分组的电路系统和/或指令(例如,存储在存储介质3704上的虚拟GPIO分组获得指令3734)。
状态改变聚集电路/模块3724可以包括适配成将至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中的电路系统和/或指令(例如,存储在存储介质3704上的状态改变聚集指令3736)。
I3C帧接收电路/模块3725可以包括适配成在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧的电路系统和/或指令(例如,存储在存储介质3704上的I3C帧接收指令3738),其中虚拟GPIO分组被封装在I3C帧中。
存储介质3704可代表用于存储编程、电子数据、数据库、或其他数字信息的一个或多个处理器可读设备。存储介质3704还可被用于存储由处理电路3710在执行编程时操纵的数据。存储介质3704可以是能被处理电路3710访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含和/或携带编程的各种其他介质。作为示例而非限定,存储介质3704可包括处理器可读存储介质,诸如磁存储设备(例如,硬盘、软盘、磁条)、光学存储介质(例如,压缩盘(CD)、数字多用盘(DVD))、智能卡、闪存设备(例如,闪存卡、闪存条、钥匙型驱动)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、和/或用于存储编程的其他介质、以及其任何组合。因此,在一些实现中,存储介质可以是非瞬态(例如,有形)存储介质。
存储介质3704可耦合到处理电路3710以使得处理电路3710能从存储介质3704读取信息和向存储介质3704写入信息。也就是说,存储介质3704可耦合至处理电路3710,从而存储介质3704至少能由处理电路3710访问,包括其中存储介质3704整合到处理电路3710的示例和/或其中存储介质3704与处理电路3710分开的示例。
由存储介质3704存储的编程/指令在由处理电路3710执行时使处理电路3710执行本文描述的各种功能和/或过程步骤中的一者或多者。例如,存储介质3704可包括以下一者或多者:GPIO和配置信号获得指令3726、映射指令3728、掩码信号获得指令3730、传送指令3732、虚拟GPIO分组获得指令3734、状态改变聚集指令3736、或I3C帧接收指令3738。因此,根据本公开的一个或多个方面,处理电路3710被适配成(结合存储介质3704)执行用于本文所描述的任何或所有装置的任何或所有过程、功能、步骤和/或例程。如本文所使用的,涉及处理电路3710的术语“适配”可指代处理电路3710(协同存储介质3704)被配置、采用、实现和/或编程(以上一者或多者)以执行根据本文描述的各种特征的特定过程、功能、步骤和/或例程。
存储器设备3708可表示一个或多个存储器设备并且可包括以上列出的任何存储器技术或者任何其它合适的存储器技术。存储器设备3708可存储由装置3700的一个或多个组件所使用的信息。存储器设备3708还可用于存储由处理电路3710或由装置3700的某种其他组件操纵的数据。在一些实现中,存储器设备3708和存储介质3704被实现为共用存储器组件。
用户接口3706包括使得用户能够与装置3700交互的功能性。例如,用户接口3706可与一个或多个用户输出设备(例如,显示设备等)以及一个或多个用户输入设备(例如,按键板、触觉输入设备等)对接。
谨记以上内容,根据所公开的各方面的操作的示例将结合图38-40的流程图更详细地描述。出于方便目的,图38的操作(或本文所讨论或教导的任何其它操作)可被描述为是由特定组件来执行的。然而,应当领会,在各个实现中,这些操作可由其他类型的组件来执行,并且可使用不同数目个组件来执行。还应当领会,在给定实现中可以不采用本文所描述的操作中的一个或多个操作。
图38(包括图38A和38B)是解说用于集成电路(例如,VGI FSM 1508)的方法的流程图3800。应理解,图38中用虚线表示的操作表示可选操作。
集成电路获得一个或多个外围设备的GPIO信号集合(3802)。集成电路基于映射表来将一个或多个外围设备的GPIO信号集合映射到第一虚拟GPIO分组中的第一预定比特位置(3804)。集成电路获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合包括在第一虚拟GPIO分组中(3806)。集成电路独立于中央处理单元获得包括GPIO信号集合的第一虚拟GPIO分组(3808)。集成电路独立于中央处理单元在I3C总线上向一个或多个外围设备传送第一虚拟GPIO分组(3810)。集成电路获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合(3812)。集成电路基于映射表来将配置信号集合映射到第二虚拟GPIO分组中的第二预定比特位置(3814)。集成电路获得与配置信号集合相关联的掩码信号集合,其中与配置信号集合相关联的掩码信号集合包括在第二虚拟GPIO分组中(3816)。集成电路独立于中央处理单元获得包括配置信号集合的第二虚拟GPIO分组(3818)。集成电路独立于中央处理单元在I3C总线上向一个或多个外围设备传送第二虚拟GPIO分组(3820)。
图39是解说用于集成电路(例如,VGI FSM 1508)的方法的流程图3900。应理解,图39中用虚线表示的操作表示可选操作。
集成电路独立于中央处理单元获得一个或多个外围设备的GPIO信号集合(3902)。集成电路获得与GPIO信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合包括在虚拟GPIO分组中(3904)。集成电路独立于中央处理单元获得用于配置一个或多个外围设备的一个或多个GPIO引脚的配置信号集合(3906)。集成电路获得与配置信号集合相关联的掩码信号集合,其中与GPIO信号集合相关联的掩码信号集合包括在虚拟GPIO分组中(3908)。集成电路基于映射表来将GPIO信号集合和配置信号集合映射到虚拟GPIO分组中的预定比特位置(3910)。集成电路获得包括GPIO信号集合和配置信号集合的虚拟GPIO分组(3912)。集成电路独立于中央处理单元在I3C总线上向一个或多个外围设备传送虚拟GPIO分组(3914)。
图40是解说用于集成电路(例如,VGI FSM 1508)的方法的流程图4000。集成电路在I3C总线上从第一外围设备接收包括虚拟GPIO分组的第一I3C帧,其中虚拟GPIO分组被封装在I3C帧中(4002)。集成电路从第一I3C帧获得虚拟GPIO分组(4004)、基于映射表来映射虚拟GPIO分组中的第一虚拟GPIO有效载荷以确定至少一个第一GPIO信号的经改变的状态(4006)、将至少一个第一GPIO信号的经改变的状态聚集到至少一个第二GPIO信号的经改变的状态中(4008)、以及在I3C总线上向第二外围设备传送第二I3C帧,其中第二I3C帧包括发信令通知至少一个第二GPIO信号的经改变的状态的第二虚拟GPIO有效载荷(4010)。在一方面,第二I3C帧作为广播I3C帧传送到第二外围设备。在一方面,广播I3C帧包括经掩码的广播I3C帧。在一方面,第二I3C帧作为定向I3C帧传送到第二外围设备。在一方面,定向I3C帧包括经掩码的定向I3C帧。在一方面,集成电路可以响应于至少一个第一GPIO信号的经改变的状态而中断主机处理器。
第二示例性设备和方法
图41是解说根据本公开的至少一个示例的装置4100的组件选集的框图。装置4100包括外部总线接口(或通信接口电路)4102、存储介质4104、用户接口4106、存储器设备4108以及处理电路4110。处理电路4110耦合至外部总线接口4102、存储介质4104、用户接口4106和存储器设备4108中的每一者或被置于与其处于电通信。
外部总线接口4102提供接口以供装置4100的各组件与外部总线4112对接。外部总线接口4102可包括例如以下一者或多者:信号驱动器电路、信号接收机电路、放大器、信号滤波器、信号缓冲器、或者用来与信令总线或其它类型的信令媒体对接的其它电路系统。在一方面,外部总线4112可以包括用于传送和接收VGI信号和/或I3C信号的三个物理互连线(例如,图15中所示的互连1546、1548和1550)。
处理电路4110被安排成获得、处理和/或发送数据,控制数据访问和存储,发布命令,以及控制其他期望操作。在至少一个示例中,处理电路4110可包括被适配成实现由恰适介质提供的期望编程的电路系统。在一些实例中,处理电路4110可包括适配成执行期望功能(在实现编程或在不实现编程的情况下)的电路系统。作为示例,处理电路4110可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行编程和/或期望功能的其他结构。处理电路4110的示例可包括被设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或者其任何组合。通用处理器可包括微处理器,以及任何常规处理器、控制器、微控制器、或状态机。处理电路4110还可实现为计算组件的组合,诸如DSP与微处理器的组合、数个微处理器、与DSP核协作的一个或多个微处理器、ASIC和微处理器、或任何其他数目的变化配置。处理电路4110的这些示例是为了解说,并且还设想了落在本公开范围内的其他合适的配置。
处理电路4110适配成用于进行处理,包括执行可存储在存储介质4104上的编程。如本文中使用的,术语“编程”或“指令”应当被宽泛地解释成不构成限定地包括指令集、指令、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其被称为软件、固件、中间件、微代码、硬件描述语言、还是其他术语。
在一些实例中,处理电路4110可包括以下一者或多者:映射表接收电路/模块4114,I3C帧接收电路/模块4116、虚拟GPIO分组获得电路/模块4118、GPIO和配置信号标识电路/模块4120、或GPIO和配置信号获得电路/模块4122。
映射表接收电路/模块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信号集合中的每一者标识为具有经改变的状态,或者将用掩码位指示的配置信号集合中的每一者标识为具有经改变的状态。
GPIO和配置信号获得电路/模块4122可包括被适配成获得GPIO信号集合与配置信号集合的电路系统和/或指令(例如,存储在存储介质4104上的GPIO和配置信号获得指令4134)。
存储介质4104可代表用于存储编程、电子数据、数据库、或其他数字信息的一个或多个处理器可读设备。存储介质4104还可被用于存储由处理电路4110在执行编程时操纵的数据。存储介质4104可以是能被处理电路4110访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含和/或携带编程的各种其他介质。作为示例而非限定,存储介质4104可包括处理器可读存储介质,诸如磁存储设备(例如,硬盘、软盘、磁条)、光学存储介质(例如,压缩盘(CD)、数字多用盘(DVD))、智能卡、闪存设备(例如,闪存卡、闪存条、钥匙型驱动)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、和/或用于存储编程的其他介质、以及其任何组合。因此,在一些实现中,存储介质可以是非瞬态(例如,有形)存储介质。
存储介质4104可耦合到处理电路4110以使得处理电路4110能从存储介质4104读取信息和向存储介质4104写入信息。也就是说,存储介质4104可耦合至处理电路4110,从而存储介质4104至少能由处理电路4110访问,包括其中存储介质4104整合到处理电路4110的示例和/或其中存储介质4104与处理电路4110分开的示例。
由存储介质4104存储的编程/指令在由处理电路4110执行时使处理电路4110执行本文描述的各种功能和/或过程步骤中的一者或多者。例如,存储介质4104可包括以下一者或多者:映射表接收指令4126,I3C帧接收指令4128、虚拟GPIO分组获得指令4130、GPIO和配置信号标识指令4132、GPIO和配置信号获得指令4134。因此,根据本公开的一个或多个方面,处理电路4110被适配成(结合存储介质4104)执行用于本文所描述的任何或所有装置的任何或所有过程、功能、步骤和/或例程。如本文所使用的,涉及处理电路4110的术语“适配”可指代处理电路4110(协同存储介质4104)被配置、采用、实现和/或编程(以上一者或多者)以执行根据本文描述的各种特征的特定过程、功能、步骤和/或例程。
存储器设备4108可表示一个或多个存储器设备并且可包括以上列出的任何存储器技术或者任何其它合适的存储器技术。存储器设备4108可存储由装置4100的一个或多个组件所使用的信息。存储器设备4108还可用于存储由处理电路4110或由装置4100的某种其他组件操纵的数据。在一些实现中,存储器设备4108和存储介质4104被实现为共用存储器组件。
用户接口4106包括使得用户能够与装置4100交互的功能性。例如,用户接口4106可与一个或多个用户输出设备(例如,显示设备等)以及一个或多个用户输入设备(例如,按键板、触觉输入设备等)对接。
谨记以上内容,根据所公开的各方面的操作的示例将结合图42的流程图更详细地描述。出于方便目的,图42的操作(或本文所讨论或教导的任何其它操作)可被描述为是由特定组件来执行的。然而,应当领会,在各个实现中,这些操作可由其他类型的组件来执行,并且可使用不同数目个组件来执行。还应当领会,在给定实现中可以不采用本文所描述的操作中的一个或多个操作。
图42是解说用于集成电路(例如,外围设备1504处的VGI FSM 1508)的方法的流程图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在系统总线4315(例如,I3C总线)上与外围设备704、706和708通信,系统总线4315还耦合至存储器4320(例如,DRAM设备)和显示器控制器4325。显示器控制器4325进而耦合至驱动显示器4335的视频处理器4330。
因此,本文中描述的诸方面提供了一种避免CPU介入基于硬件的交换而同时还在主机设备处达成功率节省的机制。边带信令中涉及的物理I/O可以被有效地虚拟化以消除物理I/O引脚。GPIO/硬件事件边带虚拟化成I3C消息可以消除对于具有VGI FSM支持的I3C外围设备在主机设备处的额外GPIO的需要,可以允许主机设备和外围设备之间的I/O的映射,可以减小总体硬件事件等待时间,和/或可以降低主机设备处的处理功率。
附图中解说的一个或多个组件、步骤、特征和/或功能可以被重新编排和/或组合成单个组件、步骤、特征或功能,或实施在数个组件、步骤或功能中。也可添加附加的元件、组件、步骤、和/或功能而不会脱离本文中所公开的新颖性特征。附图中所解说的装置、设备和/或组件可以被配置成执行本文所描述的一个或多个方法、特征、或步骤。本文中描述的新颖算法还可以高效地实现在软件中和/或嵌入到硬件中。
应理解,所公开的方法中各步骤的具体次序或阶层是示例性过程的解说。基于设计偏好,应理解,可以重新编排这些方法中各步骤的具体次序或阶层。所附方法权利要求以样本次序呈现各种步骤的要素,且并不意味着被限定于所呈现的具体次序或阶层,除非在本文中有特别叙述。附加的元件、组件、步骤、和/或功能也可被添加或不被利用,而不会脱离本公开。
尽管本公开的特征可能已经针对某些实现和附图作了讨论,但本公开的所有实现可包括本文所讨论的有利特征中的一个或多个。换言之,尽管可能讨论了一个或多个实现具有某些有利特征,但也可以根据本文中讨论的各种实现中的任一实现来使用此类特征中的一个或多个。以类似方式,尽管示例性实现在本文中可能是作为设备、系统或方法实现来进行讨论的,但是应该理解,此类示例性实现可以在各种设备、系统、和方法中实现。
另外,注意到至少一些实现是作为被描绘为流图、流程图、结构图、或框图的过程来描述的。尽管流程图可能会将各操作描述为顺序过程,但是这些操作中的许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。过程在其操作完成时终止。在一些方面,过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。本文中描述的各种方法中的一种或多种方法可部分地或全部地由可存储在机器可读、计算机可读和/或处理器可读存储介质中并由一个或多个处理器、机器和/或设备执行的编程(例如,指令和/或数据)来实现。
本领域技术人员将可进一步领会,结合本文中公开的实现描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为硬件、软件、固件、中间件、微代码、或其任何组合。为了清楚地解说这种可互换性,各种解说性组件、框、模块、电路和步骤在上文已经以其功能性的形式一般性地作了描述。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
在本公开内,措辞“示例性”用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实现或方面不必被解释为优于或胜过本公开的其他方面。同样,术语“方面”不要求本公开的所有方面都包括所讨论的特征、优点或操作模式。术语“耦合”在本文中用于指代两个对象之间的直接或间接耦合。例如,如果对象A物理地接触对象B,且对象B接触对象C,则对象A和C可仍被认为是彼此耦合的——即便它们并非彼此直接物理接触。例如,第一管芯可以在封装中耦合至第二管芯,即便第一管芯从不直接与第二管芯物理接触。术语“电路”和“电路系统”被宽泛地使用且意在包括电子器件和导体的硬件实现以及信息和指令的软件实现两者,这些电子器件和导体在被连接和配置时使得能执行本公开中描述的功能而在电子电路的类型上没有限制,这些信息和指令在由处理器执行时使得能执行本公开中描述的功能。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或其他数据结构中查找)、查明、及类似动作。而且,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。同样,“确定”还可包括解析、选择、选取、建立、及类似动作。如本文中所使用的,术语“获得”可包括一个或多个动作,包括但不限于接收、生成、确定、或其任何组合。
如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变化而不会脱离本公开的精神和范围。有鉴于此,本公开的范围不应当被限定于本文所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。
Claims (30)
1.一种集成电路,包括:
配置成与一个或多个外围设备通信的通信接口;以及
耦合至所述通信接口的处理电路,所述处理电路被配置成:
获得所述一个或多个外围设备的通用输入/输出信号集合;
独立于中央处理单元获得包括所述通用输入/输出信号集合的第一虚拟通用输入/输出分组;以及
独立于所述中央处理单元在I3C总线上向所述一个或多个外围设备传送所述第一虚拟通用输入/输出分组。
2.如权利要求1所述的集成电路,其特征在于,所述处理电路被进一步配置成:
获得与所述通用输入/输出信号集合相关联的掩码信号集合,其中与所述通用输入/输出信号集合相关联的所述掩码信号集合包括在所述第一虚拟通用输入/输出分组中。
3.如权利要求1所述的集成电路,其特征在于,所述处理电路被进一步配置成:
获得用于配置所述一个或多个外围设备的一个或多个通用输入/输出引脚的配置信号集合;
独立于所述中央处理单元获得包括所述配置信号集合的第二虚拟通用输入/输出分组;以及
独立于所述中央处理单元在所述I3C总线上向所述一个或多个外围设备传送所述第二虚拟通用输入/输出分组。
4.如权利要求3所述的集成电路,其特征在于,所述处理电路被进一步配置成:
获得与所述配置信号集合相关联的掩码信号集合,其中与所述配置信号集合相关联的所述掩码信号集合包括在所述第二虚拟通用输入/输出分组中。
5.如权利要求1所述的集成电路,其特征在于,所述第一通用输入/输出分组进一步包括所述一个或多个外围设备处的直接输入/输出映射寄存器的地址,其中所述直接输入/输出映射寄存器的每一位控制所述一个或多个外围设备的对应通用输入/输出引脚的引脚状态。
6.如权利要求3所述的集成电路,其特征在于,所述第二虚拟通用输入/输出分组进一步包括所述一个或多个外围设备处的配置寄存器的地址。
7.如权利要求3所述的集成电路,其特征在于,所述配置信号集合被配置成:
设置所述一个或多个外围设备的所述一个或多个通用输入/输出引脚的一个或多个电特性。
8.如权利要求3所述的集成电路,其特征在于,所述处理电路被进一步配置成:
基于映射表来将至少所述一个或多个外围设备的所述通用输入/输出信号集合映射到所述第一虚拟通用输入/输出分组中的第一预定比特位置,或者基于所述映射表来将所述配置信号集合映射到所述第二虚拟通用输入/输出分组中的第二预定比特位置。
9.一种集成电路,包括:
配置成与一个或多个外围设备通信的通信接口;以及
耦合至所述通信接口的处理电路,所述处理电路被配置成:
独立于中央处理单元获得所述一个或多个外围设备的通用输入/输出信号集合;
独立于中央处理单元获得用于配置所述一个或多个外围设备的一个或多个通用输入/输出引脚的配置信号集合;
基于映射表来将所述通用输入/输出信号集合和所述配置信号集合映射到虚拟通用输入/输出分组中的预定比特位置;
获得包括所述通用输入/输出信号集合和所述配置信号集合的所述虚拟通用输入/输出分组;以及
独立于所述中央处理单元在I3C总线上向所述一个或多个外围设备传送所述虚拟通用输入/输出分组。
10.如权利要求9所述的集成电路,其特征在于,所述处理电路被进一步配置成:
获得与所述通用输入/输出信号集合相关联的掩码信号集合,其中与所述通用输入/输出信号集合相关联的所述掩码信号集合包括在所述虚拟通用输入/输出分组中。
11.如权利要求9所述的集成电路,其特征在于,所述处理电路被进一步配置成:
获得与所述配置信号集合相关联的掩码信号集合,其中与所述配置信号集合相关联的所述掩码信号集合包括在所述虚拟通用输入/输出分组中。
12.如权利要求9所述的集成电路,其特征在于,所述预定比特位置基于所述映射表对应于所述一个或多个外围设备的地址。
13.如权利要求9所述的集成电路,其特征在于,所述配置信号集合被配置成设置所述一个或多个通用输入/输出引脚的一个或多个电特性。
14.如权利要求9所述的集成电路,其特征在于,所述通用输入/输出信号中的每一者控制所述一个或多个外围设备的对应通用输入/输出引脚的引脚状态。
15.如权利要求9所述的集成电路,其特征在于,所述一个或多个外围设备的所述通用输入/输出信号集合是从配置成其中存储所述通用输入/输出信号集合的通用输入/输出信号接口或知识产权块获得的。
16.一种在集成电路处操作的方法,包括:
获得一个或多个外围设备的通用输入/输出信号集合;
独立于中央处理单元:
独立于中央处理单元获得用于配置所述一个或多个外围设备的一个或多个通用输入/输出引脚的配置信号集合;
基于映射表来将所述通用输入/输出信号集合和所述配置信号集合映射到虚拟通用输入/输出分组中的预定比特位置;
获得包括所述通用输入/输出信号集合和所述配置信号集合的所述虚拟通用输入/输出分组;以及
独立于所述中央处理单元在I3C总线上向所述一个或多个外围设备传送所述虚拟通用输入/输出分组。
17.如权利要求16所述的方法,其特征在于,进一步包括:
获得与所述通用输入/输出信号集合相关联的掩码信号集合,其中与所述通用输入/输出信号集合相关联的所述掩码信号集合包括在所述虚拟通用输入/输出分组中。
18.如权利要求16所述的方法,其特征在于,进一步包括:
获得与所述配置信号集合相关联的掩码信号集合,其中与所述配置信号集合相关联的所述掩码信号集合包括在所述虚拟通用输入/输出分组中。
19.如权利要求16所述的方法,其特征在于,所述预定比特位置基于所述映射表对应于所述一个或多个外围设备的地址。
20.如权利要求16所述的方法,其特征在于,所述配置信号集合被配置成设置所述一个或多个通用输入/输出引脚的一个或多个电特性。
21.如权利要求16所述的方法,其特征在于,所述通用输入/输出信号中的每一者控制所述一个或多个外围设备的对应通用输入/输出引脚的引脚状态。
22.如权利要求16所述的方法,其特征在于,所述一个或多个外围设备的所述通用输入/输出信号集合是从配置成其中存储所述通用输入/输出信号集合的通用输入/输出信号接口或知识产权块获得的。
23.一种集成电路,包括:
通信接口,其被配置成与主机设备通信;以及
耦合至所述通信接口的处理电路,所述处理电路被配置成:
独立于中央处理单元在I3C总线上从所述主机设备接收包括虚拟通用输入/输出分组的I3C帧,其中所述虚拟通用输入/输出分组被封装在所述I3C帧中;
独立于所述中央处理单元获得包括与所述集成电路相关联的通用输入/输出信号集合和配置信号集合的所述虚拟通用输入/输出分组;
基于映射表来标识所述虚拟通用输入/输出分组中的预定比特位置处的所述通用输入/输出信号集合和所述配置信号集合;以及
获得所述通用输入/输出信号集合与所述配置信号集合。
24.如权利要求23所述的集成电路,其特征在于,所述处理电路被进一步配置成在所述集成电路的配置阶段期间在所述I3C总线上从主机设备接收所述映射表。
25.如权利要求23所述的集成电路,其特征在于,所述处理电路被进一步配置成将用掩码位指示的所述通用输入/输出信号集合中的每一者标识为具有经改变的状态。
26.如权利要求23所述的集成电路,其特征在于,所述处理电路被进一步配置成将用掩码位指示的所述配置信号集合中的每一者标识为具有经改变的状态。
27.如权利要求23所述的集成电路,其特征在于,所述配置信号集合被配置成:
设置所述集成电路的一个或多个通用输入/输出引脚的一个或多个电特性。
28.如权利要求27所述的集成电路,其特征在于,所述一个或多个通用输入/输出引脚的所述一个或多个电特性至少包括驱动强度、转换速率、电压电平、输出类型、或中断触发类型。
29.如权利要求23所述的集成电路,其特征在于,所述I3C帧是广播I3C帧或定向I3C帧。
30.如权利要求29所述的集成电路,其特征在于,所述I3C帧包括将所述I3C帧标识为所述广播I3C帧或所述定向I3C帧的命令码。
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 | 2016-08-19 | ||
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 |
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 |
---|---|
CN108027791A true CN108027791A (zh) | 2018-05-11 |
Family
ID=58236893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680052171.6A Pending CN108027791A (zh) | 2015-09-10 | 2016-08-22 | 多节点网络中的输入/输出信号桥接和虚拟化 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10140242B2 (zh) |
EP (1) | EP3347824A1 (zh) |
JP (1) | JP2018533120A (zh) |
KR (1) | KR20180050728A (zh) |
CN (1) | CN108027791A (zh) |
BR (1) | BR112018004665A2 (zh) |
WO (1) | WO2017044301A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489212A (zh) * | 2019-08-20 | 2019-11-22 | 东软集团股份有限公司 | 一种通用型输入输出口虚拟化的方法、装置及车机 |
CN111538692A (zh) * | 2020-04-20 | 2020-08-14 | 深圳市汇川技术股份有限公司 | 变频器系统及其控制方法 |
CN111562946A (zh) * | 2020-05-06 | 2020-08-21 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及芯片 |
CN112204923A (zh) * | 2018-09-27 | 2021-01-08 | 纳米电力有限责任公司 | 电力管理装置和操作方法 |
CN112639755A (zh) * | 2018-08-28 | 2021-04-09 | 高通股份有限公司 | 从机到从机直接通信 |
CN114222983A (zh) * | 2019-06-27 | 2022-03-22 | 北欧半导体公司 | 具有gpio的微控制器系统 |
Families Citing this family (31)
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 |
US10482055B2 (en) | 2017-05-10 | 2019-11-19 | Qualcomm Incorporated | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine |
US20180329837A1 (en) * | 2017-05-10 | 2018-11-15 | Qualcomm Incorporated | Input/output direction decoding in mixed vgpio state exchange |
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 |
US10684723B2 (en) * | 2018-10-23 | 2020-06-16 | Getac Technology Corporation | Touch device and control method thereof |
US20200195759A1 (en) * | 2018-12-18 | 2020-06-18 | Texas Instruments Incorporated | Protocol auto-detection |
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 |
TW202117932A (zh) * | 2019-10-15 | 2021-05-01 | 瑞昱半導體股份有限公司 | 積體電路及動態腳位控制方法 |
EP3869742B1 (en) * | 2020-02-20 | 2023-06-07 | Nxp B.V. | Network node |
US11513991B2 (en) * | 2020-10-01 | 2022-11-29 | Qualcomm Incorporated | Batch operation across an interface |
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 |
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 |
JP7313025B1 (ja) | 2021-11-12 | 2023-07-24 | 合同会社Kosumi | ストリームインターフェースを持つプロセッサ及びシステム |
CN115080191B (zh) * | 2022-08-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种管理i2c链路的方法、装置、设备及可读介质 |
Citations (11)
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 |
US6020760A (en) * | 1997-07-16 | 2000-02-01 | Altera Corporation | I/O buffer circuit with pin multiplexing |
CN1613223A (zh) * | 2001-09-30 | 2005-05-04 | 英特尔公司 | 增强型通用输入/输出体系结构中的差错转发及有关方法 |
US20050186909A1 (en) * | 2004-02-19 | 2005-08-25 | Intel Corporation | Communication access apparatus, systems, and methods |
US20060143348A1 (en) * | 2004-12-29 | 2006-06-29 | Wilson Matthew T | System, method, and apparatus for extended serial peripheral interface |
CN101499053A (zh) * | 2008-01-31 | 2009-08-05 | 上海普芯达电子有限公司 | 实现微控制器可配置性的方法和可配置的微控制器 |
US20110148383A1 (en) * | 2009-12-23 | 2011-06-23 | Mullen Kevin R | Power management control system and method |
CN102169440A (zh) * | 2009-12-23 | 2011-08-31 | 英特尔公司 | 虚拟化掉电的输入/输出装置 |
CN104395895A (zh) * | 2012-06-25 | 2015-03-04 | 超威半导体公司 | 用于输入/输出虚拟化的系统和方法 |
WO2015077803A1 (en) * | 2013-11-22 | 2015-05-28 | Qualcomm Incorporated | Clockless virtual gpio |
CN104737148A (zh) * | 2012-10-15 | 2015-06-24 | 高通股份有限公司 | 虚拟gpio |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455911A (en) | 1993-04-05 | 1995-10-03 | Allen-Bradley Company, Inc. | Communications protocol for use in transferring data over a serial bus |
JP2001175584A (ja) | 1999-12-16 | 2001-06-29 | Ricoh Co Ltd | オプション機器の制御方法 |
ATE335237T1 (de) | 2001-08-24 | 2006-08-15 | Intel Corp | Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung |
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 |
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 |
FR2885710B1 (fr) | 2005-05-11 | 2007-08-03 | Stmicroelectronics Maroc | Selection d'adresse pour bus i2c |
US8205017B2 (en) | 2009-11-17 | 2012-06-19 | Aptina Imaging Corporation | Systems and methods for addressing and synchronizing multiple devices |
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总线的实现方法 |
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 | 鸿富锦精密工业(深圳)有限公司 | 内存测试系统及方法 |
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 |
-
2016
- 2016-08-19 US US15/242,368 patent/US10140242B2/en not_active Expired - Fee Related
- 2016-08-22 CN CN201680052171.6A patent/CN108027791A/zh active Pending
- 2016-08-22 JP JP2018512395A patent/JP2018533120A/ja active Pending
- 2016-08-22 BR BR112018004665A patent/BR112018004665A2/pt not_active Application Discontinuation
- 2016-08-22 WO PCT/US2016/048082 patent/WO2017044301A1/en unknown
- 2016-08-22 EP EP16760276.2A patent/EP3347824A1/en not_active Withdrawn
- 2016-08-22 KR KR1020187009928A patent/KR20180050728A/ko unknown
Patent Citations (11)
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 |
US6020760A (en) * | 1997-07-16 | 2000-02-01 | Altera Corporation | I/O buffer circuit with pin multiplexing |
CN1613223A (zh) * | 2001-09-30 | 2005-05-04 | 英特尔公司 | 增强型通用输入/输出体系结构中的差错转发及有关方法 |
US20050186909A1 (en) * | 2004-02-19 | 2005-08-25 | Intel Corporation | Communication access apparatus, systems, and methods |
US20060143348A1 (en) * | 2004-12-29 | 2006-06-29 | Wilson Matthew T | System, method, and apparatus for extended serial peripheral interface |
CN101499053A (zh) * | 2008-01-31 | 2009-08-05 | 上海普芯达电子有限公司 | 实现微控制器可配置性的方法和可配置的微控制器 |
US20110148383A1 (en) * | 2009-12-23 | 2011-06-23 | Mullen Kevin R | Power management control system and method |
CN102169440A (zh) * | 2009-12-23 | 2011-08-31 | 英特尔公司 | 虚拟化掉电的输入/输出装置 |
CN104395895A (zh) * | 2012-06-25 | 2015-03-04 | 超威半导体公司 | 用于输入/输出虚拟化的系统和方法 |
CN104737148A (zh) * | 2012-10-15 | 2015-06-24 | 高通股份有限公司 | 虚拟gpio |
WO2015077803A1 (en) * | 2013-11-22 | 2015-05-28 | Qualcomm Incorporated | Clockless virtual gpio |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112639755A (zh) * | 2018-08-28 | 2021-04-09 | 高通股份有限公司 | 从机到从机直接通信 |
TWI800667B (zh) * | 2018-08-28 | 2023-05-01 | 美商高通公司 | 從機間直接通訊 |
CN112204923A (zh) * | 2018-09-27 | 2021-01-08 | 纳米电力有限责任公司 | 电力管理装置和操作方法 |
CN114222983A (zh) * | 2019-06-27 | 2022-03-22 | 北欧半导体公司 | 具有gpio的微控制器系统 |
CN110489212A (zh) * | 2019-08-20 | 2019-11-22 | 东软集团股份有限公司 | 一种通用型输入输出口虚拟化的方法、装置及车机 |
CN111538692A (zh) * | 2020-04-20 | 2020-08-14 | 深圳市汇川技术股份有限公司 | 变频器系统及其控制方法 |
CN111562946A (zh) * | 2020-05-06 | 2020-08-21 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及芯片 |
CN111562946B (zh) * | 2020-05-06 | 2023-09-08 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
KR20180050728A (ko) | 2018-05-15 |
US20170075852A1 (en) | 2017-03-16 |
EP3347824A1 (en) | 2018-07-18 |
JP2018533120A (ja) | 2018-11-08 |
BR112018004665A2 (pt) | 2018-09-25 |
US10140242B2 (en) | 2018-11-27 |
WO2017044301A1 (en) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027791A (zh) | 多节点网络中的输入/输出信号桥接和虚拟化 | |
CN104956347B (zh) | 将一种互连协议的枚举和/或配置机制用于不同的互连协议 | |
CN107889529A (zh) | 共用物理接口上的动态数据链路选择 | |
CN105700732B (zh) | 用于传输触摸传感器信息的装置、系统和方法 | |
CN107278299A (zh) | 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 | |
CN107209739A (zh) | 电压模式和电流模式设备枚举 | |
US7707321B2 (en) | Chained DMA for low-power extended USB flash device without polling | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
JP6092971B2 (ja) | ダイ上インターコネクトのためのアーキテクチャ | |
CN109344098A (zh) | 主从设备间的数据操作方法和装置 | |
US8224884B2 (en) | Processor communication tokens | |
CN109411007A (zh) | 一种基于fpga的通用闪存测试系统 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
CN107632951A (zh) | 控制非直接串行连接存储设备的设备及其应用和操作方法 | |
CN106657115B (zh) | 一种变频器控制系统及其协议转换卡 | |
CN109656844A (zh) | 一种AT24xx EEPROM驱动方法和装置 | |
US20060184708A1 (en) | Host controller device and method | |
US20090010260A1 (en) | Token protocol | |
CN103399839B (zh) | 媒介外围接口、电子装置及通信方法 | |
CN209149287U (zh) | 大数据运算加速系统 | |
US20190286606A1 (en) | Network-on-chip and computer system including the same | |
CN107771328A (zh) | 具有多个sdio单元的单中继sdio接口 | |
CN102693623B (zh) | 基于Android系统实现红外遥控的方法以及装置 | |
CN104572515A (zh) | 跟踪模块、方法、系统和片上系统芯片 | |
CN209433276U (zh) | 一种平板数据采集扩容终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180511 |
|
WD01 | Invention patent application deemed withdrawn after publication |