具有多模调制的增强虚拟GPIO的制作方法

文档序号:13451325
具有多模调制的增强虚拟GPIO的制作方法

相关申请的交叉引用

本申请要求2016年4月12日提交的美国申请No.15/097,237的权益,该申请要求2015年4月14日提交的临时申请No.62/147,238的权益并进一步要求2015年9月25日提交的美国临时申请No.62/233,278的权益。

技术领域

本申请涉及信令,尤其涉及组合了脉宽调制和相位调制的多调制数字信令方案。

背景

通用输入/输出(GPIO)使得集成电路设计者能够提供可以为特定应用定制的普适引脚。例如,取决于用户需要,GPIO引脚可以被编程为输出引脚或者输入引脚。GPIO主机或外围设备通常将控制可基于接口要求而变动的引脚群。由于GPIO引脚的可编程性,它们经常被包括在微处理器和微控制器应用中。例如,移动设备中的应用处理器可使用数个GPIO引脚来进行握手信令,诸如与调制解调器处理器的处理器间通信(IPC)。

对于此类握手信令,若边带信号必须既被处理器传送又被其接收,那么该边带信号被视为是“对称”的。若有n个对称的边带信号需要被交换,那么每个处理器要求n*2个GPIO(一个GPIO传送给定信号并且一个GPIO接收该信号)。例如,调制解调器处理器与应用处理器之间的对称IPC接口可以包括五个信号,这转化成结果所得的IPC信令需要10个GPIO引脚。IPC通信需要如此之多的GPIO引脚增加了制造成本。此外,为IPC投入过多的GPIO限制了 GPIO对其他系统级外围接口的可用性。该问题不能够通过将IPC通信移到处理器之间的主数据总线上来得到解决,因为如此就违反了特定角点条件。

此外,已经开发了数种数字信令协议以支持在诸如移动设备之类的系统中的各集成电路之间的通信。这些信令协议在本文中被视作“数字”的,其中发射电路将其发射引脚驱动高至电源电压电平或将引脚接地以传送一位。此类数字信令协议的示例包括通用I/O(GPIO)和通用异步接收机发射机(UART)。例如,UART发射机在发射引脚上驱动数字信号,该数字信号是在UART接收机处的接收引脚上接收的。UART接收机使用过采样时钟来采样收到的信号,以确定收到的信号是二进制高还是二进制低。

为了在这些数字信令协议中减小功耗,利用了各种无损数据压缩技术,诸如游程长度编码(RLE)。但是游程长度编码不能保证固定和可预测的吞吐量增强,因为压缩的程度取决于数据的随机性。若数据传送是完全随机的,则游程长度编码不提供益处。其他更为复杂的方案提供改进的吞吐量,但不与数字信令兼容。例如,使用正交相移键控(QPSK)方案具有两倍于常规数字信令的吞吐量,但要求使用两个独立的正弦副载波。相反,数字信号协议则简单得多,因为发射机仅需要在码元传输期间将其发射引脚驱动至电源电压和/或接地。类似地,数字信令接收机仅需要确定在过采样时钟的每次采样处接收的是高压信号还是低压信号。

相应地,在本领域中存在对于能够容适众多输入/输出信号而不要求过多数目的引脚并且使用具有增加的吞吐量和减小的功耗的改进的数字信令协议的GPIO架构的需要。

概述

提供了一种用于在各自具有处理器的两个集成电路之间进行通信的混合虚拟GPIO架构。该架构被视为“混合”的,因为其容适GPIO信号和消息接发信号两者。如稍早所讨论的,常规GPIO系统中的GPIO信号专用于特定引脚。在对应GPIO引脚上接收到GPIO信号标识去往接收方处理器的信号。但是,如本文中所定义的消息接发信号是在专用接收引脚(诸如在串行外围接口 (SPI)或进程间通信(IPC)接口中的专用接收引脚)上被接收的信号。各种消息接发信号可以由此在相同专用接收引脚上被接收。为了在消息接发信号之间进行区分,常规上消息接发信号包括包含地址的地址报头。接收方集成电路基于该地址将接收到的消息接发信号路由到恰适的寄存器。例如,一种类型的消息接发信号可涉及所安装的卡(诸如无线卡或GPS卡)的身份。此类消息接发信号将具有映射到恰适寄存器的地址,从而对应的消息内容可被相应地寄存。通过解读寄存器的结果所得的内容,接收方处理器可随后解读所安装的卡的身份。其他类型的消息接发信号可按类似方式被路由到接收方集成电路中的恰适寄存器。

每个集成电路还包括用于使用GPIO信号发射集来与剩余的集成电路(或诸电路)通信的虚拟GPIO接口。该虚拟GPIO接口配置成以常规方式在GPIO 引脚上向对方集成电路中的远程处理器传送该发射集的一部分。但是,该发射集的剩余部分不是在个别GPIO引脚上传送的。替代地,该GPIO信号发射集的剩余部分由混合虚拟GPIO有限状态机(FSM)串行化成至少一个帧并在专用发射引脚上传送。该混合虚拟GPIO有限状态机还配置成将这些消息接发信号串行化到该至少一个帧中或串行化为这些消息接发信号的(诸)专用帧。

每个集成电路还包括与(诸)剩余集成电路中的过采样时钟不同步的过采样时钟。集成电路的混合虚拟FSM配置成响应于其过采样时钟的循环而传送和接收虚拟GPIO信号帧和/或消息接发信号帧。传送方混合虚拟FSM通过以下操作来传送要在其发射引脚上传送的帧中的每个位:使用过采样时钟来对该位进行过采样,以及在该发射引脚上向远程集成电路中的用于混合虚拟FSM 的接收引脚传送结果所得的样本。接收方混合虚拟FSM使用其过采样时钟来对每个收到位进行采样,并如UART领域已知的那样基于结果所得的样本来解码这些位。结果所得的架构是相当有益的,因为仅使用单个发射引脚和单个接收引脚来同步结果所得的对虚拟GPIO信号和消息接发信号的传输并不需要外部时钟引脚。

为了增强虚拟GPIO传送,每个混合虚拟GPIO(VGPIO)接口被进一步配置成使用经相位编码的经脉宽调制码元来传送和接收帧位。例如,假设码元具有两种可能的脉宽。在常规的脉宽调制方案中,这两种脉宽会标识一位。但是此外,该码元还具有至少两种可能的相位。在双相位实施例中,这些脉冲被对齐为要么使得它们的下降沿与位周期的结束对齐,要么使得它们的上升沿与位周期的开始对齐。这两种相位对齐由此代表另一位。给定该脉宽调制和相位调制二者的组合,结果所得的码元在本文中被记作“多调制”码元或字。这些字因其增加的吞吐量和减小的功耗之故,与二进制相位或脉宽调制方案相比是相当有利的。此外,这些优点在不脱离传统数字信令技术的情况下获得。涉及模拟正弦曲线复杂性(诸如QPSK中)由此被避免。

所公开的混合虚拟GPIO架构有两种主要的实施例。在第一实施例中,在专用发射引脚上传送的每个帧包括报头,该报头标识该帧是包括虚拟GPIO信号的发射集还是包括消息接发信号的发射集。该报头还可以指示该帧将标识要在接收机侧上设置的虚拟GPIO帧长度或者指示所期望的虚拟GPIO帧长度的确收。帧大小由此是可变的并且由结果所得的流长度确定帧来确定。在第二实施例中,报头针对包括虚拟GPIO信号和消息接发信号二者的帧被扩展,从而经扩展的报头标识了虚拟GPIO信号和消息接发信号的位(bit)位置。该混合 GPIO接口能够随后向接收处理器提供第二信号集,该第二信号集包括来自该远程处理器的第二GPIO信号和消息接发信号集。

该混合虚拟GPIO FSM在各自由开始位和结束位划界的帧中传送虚拟 GPIO信号和消息接发信号的发射集。接收方设备中的混合虚拟GPIO FSM由此将所传送的帧作为其虚拟GPIO信号和消息接发信号的接收集来接收。通过监视其是否接收到包括了开始位和结束位二者的完整帧,用于一个处理器的 FSM就能够检测出该远程处理器是否发生了故障。

这些优势和附加的优势可以通过以下详细描述来更好地领会。

附图简要说明

图1解说了四个示例多调制两位字。

图2解说了图1的一些多调制字与对应的二进制相位调制输入位和脉宽调制输入位集合之间的关系。

图3是根据本公开一实施例的发射机的框图。

图4解说了用于解调从图3的发射机传送的多调制字的过采样时钟样本。

图5是示例混合虚拟GPIO架构的框图。

图6A是其中处理器与单个远程处理器通信的混合虚拟GPIO架构的框图。

图6B是其中处理器与两个远程处理器通信的混合虚拟GPIO架构的框图。

图7解说了具有两位功能报头的示例混合帧。

图8是图5的混合虚拟GPIO架构中的混合虚拟GPIO有限状态机的电路图。

图9解说了由图8的FSM传送的普适帧。

图10解说了用于图9的帧的第一输入/输出(I/O)模式。

图11解说了用于图9的帧的第二I/O模式和第三I/O模式。

图12解说了图11的帧的码字表。

图13解说了图9的帧的第四I/O模式。

图14A是根据本公开的一方面的第一操作方法的流程图。

图14B是根据本公开的一方面的第二操作方法的流程图。

图15解说了包括图5的混合虚拟架构的示例系统。

本公开的各实施例及其优势通过参考以下详细描述而被最好地理解。应当领会,相同参考标记被用来标识在一个或多个附图中所解说的相同元件。

详细描述

提供了一种数字信令协议,该数字信令协议将例如UART信令协议中使用的传统数字信令的吞吐量翻倍。就此而言,UART位通常由二进制电压信号来表示,该二进制电压信号处于电源电压电平或接地。就简易性而言,这是相当有益的,因为可以使用常规反相器作为输出驱动器。本文中公开的数字信令协议保留了该简易性,因为每个所传送的码元是二进制组合(例如,该码元的第一部分被冲高至电源电压,而第二部分被放电)。为了相较于传统数字信令技术增强吞吐量,提供了一种传送经相位编码的脉宽调制码元的发射机。以下示例实施例涉及仅使用两个脉宽和两个相位的系统,然而将会领会任何数目的脉宽和相位可以如本文中所公开地被结合。

图1中示出了两个示例脉宽。第一脉冲100具有位周期的25%的脉宽,而剩余的脉冲105具有该位周期的75%的脉宽。给予脉冲100的脉宽什么二进制赋值是任意性的,但是出于解说的目的,脉冲100的脉宽被赋予二进制0值。类似地,脉冲105的脉宽表示二进制1。注意,脉冲100和105的下降沿与位周期结尾相对齐。在逻辑高系统中,脉冲100和105二者由此始于逻辑0(接地)并以逻辑高(电源电压)结束。在逻辑低系统中,指示脉冲100和105二者始于逻辑高值(接地)并以逻辑低值(电源电压)结束也是等效的。以下讨论涉及逻辑高系统而不失其一般性。因为脉冲100和105二者被调整相位从而于位周期边界同步结束,所以脉冲100和105可被视为表示第一相位。该第一相位调制可以被视为表示二进制0。由此,脉冲100表示两位码元00——一个二进制0来自后沿对齐,而另一二进制0来自25%脉宽。类似地,脉冲125表示具有起源自75%脉宽的二进制1的两位码元01。

互补第二相位(上升沿与位周期的开始对齐)由脉冲对110和115表示。脉冲110类似于脉冲100,因其也具有等于位周期的25%的脉宽。但不像脉冲 100的是,脉冲110被移位180度,从而其上升沿与位周期的开始对齐。类似地,脉冲115被相对于脉冲105被移位180度。

由此相比于脉冲100和105,有由脉冲110和115表示的二进制相位调制。类似地,每对脉冲100/105和110/115表示一二进制脉宽调制。脉冲100,105, 110和115的组合由此表示二进制相位调制和二进制脉宽调制二者,从而每个脉冲可被视作包括两位码元。与替换性编码技术(诸如QPSK)不同的是,脉冲100,105,110和115的调制是完全数字的:发射机仅需要传送二进制高信号长达位周期的某个历时,以及传送二进制低信号长达位周期的剩余历时。因为每个脉冲代表两位字,所以可以表示四种可能的二进制两位字:[00],[01], [10],和[11]。哪个两位字被指派给给定脉冲是任意性的。将会有四个此类选择——图1表示一种选择,其中脉冲100表示字[00],脉冲105表示字[01],脉冲110表示字[10],以及脉冲115表示字[11]。将领会,替换的脉宽(诸如 70/30或80/20)可被用于二进制脉宽调制方案。此外,在替换性实施例中,脉宽和相位的数目可以从仅有两个起增加。

可以参照图2更好地领会到组合了二进制相位调制和二进制脉宽调制的结果所得的“多模”调制带来的吞吐量增强和功率减小。有八个二进制位D0到 D7使用脉宽调制被处理以产生经脉宽调制的序列200。这些相同的位也可以使用相位调制来被处理以产生经相位调制的序列205。相位调制的载波是方形脉冲(脉宽为位周期的50%),其下降沿与位周期的结束对齐以表示二进制0。此类对齐将在本文中被称为“不翻转的”,因为其表示方形脉冲的0度相位调制。相反,二进制1的相位调制由其上升沿与位周期的开始对齐的方形脉冲表示。此类调制在本文中被记作“翻转的”,其表示180度的相位调制。

对于序列200和205中的任一者,要求有八个位周期来传送八个位D0到 D7。与之形成对比的是,多调制序列210仅在四个位周期中传送这八个位,这表示比单调制序列200和205大两倍的吞吐量。为了创建多调制序列210,位 D0到D7中的一半被指定为脉宽调制位,而剩余的一半被指定为相位调制位。例如,序列205中的位D0,D2,D4,和D6可被假定成表示相位调制位。相反,序列200中的位D1,D3,D5,和D7可以被假定成表示脉宽调制位。在该示例中,二进制1由位周期的75%的脉冲表示,而二进制0由位周期的25%的脉冲表示。序列200中的这些脉冲全都使得它们的下降沿与它们各自的位周期的结束相对齐。

每个相位调制位对后续的脉宽调制位进行相位调制。在该情形中,这些相位调制位的二进制1被假定成表示180度相位反转,以使得脉冲调制是“翻转的”,从而使上升沿与码元周期的开始对齐。相反,这些相位调制位的二进制0 被假定成表示没有相位改变(“不翻转的”),从而使得下降沿与码元周期的结束对齐。因为相位调制位D0具有二进制1值,所以来自序列200中的PWM 位D1的脉冲被翻转以形成序列210中对应的多调制字A(其对应于参照图1 所讨论的字110)。相反,相位位D2具有二进制0值,从而来自PWM位D3 的脉冲不翻转,以形成对应的多调制字B(其对应于图1的字或码元105)。然而,相位调制位D4具有二进制1值,所以来自PWM位D5的脉冲被翻转,以形成对应的多调制字C(其对应于图1的字115)。最后,相位位D6是二进制0,所以来自PWM位D7的脉冲不翻转,以形成对应的多调制字D(其再次对应于图1的字105)。可以立即看到结果所得的多调制字相比于输入 PMW和相位调制位的诸多益处。例如,若假定多调制周期与相位和PWM位的位周期相同,则吞吐量增加达两倍。此外,因为与使用八个相位位或八个 PWM位相比,多调制字中仅有四个脉冲的传送,所以功耗将被降低达一半。最后,与使用八个PWM位相比,来自多调制字A到D的电磁干扰(EMI)被减小,因为上升沿和下降沿的数目被减小达一半。

图3中示出了示例发射机300,其配置用于传送经多调制的字。位解复用器305接收输入数据流,并且将输入位流解复用成PWM输入位和相位输入位。例如,若输入位流包括范围从位D0到位D15的16个位,则解复用器305可解复用位D0、D2、D4、D6、D8、D10、D12和D14,以形成相位位。相反,位D1、D3、D5、D7、D9、D11、D13和D15则形成PWM位。在该实施例中,每个相位位和连贯的PWM位形成输入位对,该输入位对由调制器310调制成图1的四种可能的输出字100、105、110和115中的一者。例如,位D0和D1 形成一个输入位对,位D2和D3形成另一对,等等。调制器310可包括四位查找表328,其对应于四个可能的输入组合[00],[01],[10],和[11]。当接收到输入位对[00]时,查找表328针对脉冲100进行选择。类似地,当接收到输入位对[01]时,查找表328针对脉冲105进行选择,等等。为了提供附加的吞吐量增加,输入数据流可被无损地编码,诸如通过在位解复用前被游程长度编码。输出驱动器325可以包括反相器326,该反相器326在输出引脚315上驱动出由查找表328取回的码元的反相形式。结果所得的码元周期的定时可以响应于时钟信号(诸如,来自过采样时钟的过采样时钟信号320)而发生。

接收机中的多调制字的解调可以针对过采样时钟信号400(诸如在图4中解说的)来执行。就此而言,发射机和接收机二者可以包括类似的过采样时钟。为保持过采样时钟彼此间同相,发射机可以周期性地传送训练序列,诸如具有 50%占空比的一系列脉冲。多调制字可以随后使用帧和报头来发送,诸如常规地在UART执行的那样。帧和报头尺寸对于接收机和发射机二者都是已知的。由此,接收机可以关于该已知结构来确定帧的位边界。如图4中所示,接收机可以使用每个字100到115的初始样本来确定其相位。如果第一样本是0,则接收机知晓其将会解调字100或105。为了在这些字之间进行区分,接收机可以对与为二进制0的样本数目相比的为二进制1(电源电压)的样本数目进行计数以确定脉宽。另一方面,若初始样本是二进制1,则接收机必须在字110 和115之间进行区分。该区别还可以通过确定与二进制0相比为二进制1的过采样样本的数目来执行。此类过采样方案可被容易地扩展到解调更高阶(大于二进制)的相位和脉宽调制。此外,多调制还可以采用多振幅以允许更大的功耗减小和吞吐量增加。

本文中描述的多模式调制可以有利地应用于虚拟GPIO架构中。具体而言,提供了一种混合虚拟通用输入/输出(GPIO)架构,其使得系统能够将引脚对用作就如同该引脚对构成了更大数目的多个GPIO引脚以及还有用于消息接发信号的专用发射引脚和专用接收引脚那样。如本文中所使用的,“消息接发信号”是指按常规本将会在专用发射引脚上发射的信号(诸如在IPC、SPI或UART 协议中实践的那样)。每个消息接发信号由此包括使得接收处理器可以将接收到的消息接发信号路由到恰适的寄存器的地址。在混合虚拟GPIO架构中,地址信号由所传送的帧内的位次序代替。例如,可以理解,消息接发帧中的第一位将在收到之际被递送给第一消息接发寄存器。类似地,消息接发帧中的第二位在收到之际被递送给第二消息接发寄存器,等等。每个消息接发寄存器具有一地址,从而接收处理器通过该处理器从中取回消息接发信号的对应消息接发寄存器的地址来知晓该消息接发信号的身份。

该混合虚拟GPIO架构被视为是“虚拟”的,因为对于创建那些虚拟GPIO 信号的系统级应用而言,这就如同那些虚拟GPIO信号是正被容适以供在常规 GPIO引脚上进行输入/输出那样。换言之,具有本文中所公开的虚拟GPIO架构的片上系统(SoC)或处理器不会体验到GPIO信号与虚拟GPIO信号之间的功能性差异。然而,使用了仅两个引脚来传送和接收原本各自需要它们自己的专用GPIO引脚对(若GPIO信号是对称的)的虚拟GPIO信号。该混合虚拟GPIO架构被视为“混合”的,因为用于传送虚拟GPIO信号的专用发射引脚也被用于将消息接发信号传送到远程处理器。类似地,被用来接收虚拟GPIO 信号的专用接收引脚也被用来从远程处理器接收消息接发信号。

本文中所公开的虚拟GPIO信号可以针对容适移动电话或其他通信设备中的应用处理器与调制解调器处理器之间的IPC来讨论。然而,将领会,本文中所公开的虚拟GPIO电路和技术广泛应用于要求GPIO能力的片上系统(SoC) 或专用集成电路(ASIC)。

所公开的混合虚拟GPIO架构使得发射节点的健康对于接收节点来说是透明的。这是重要的优势,在软件实现的调试阶段期间尤其如此,因其向接收处理器指示了发射处理器变为不操作的时间。

为了使得能够实现此类稳健的虚拟GPIO能力,每个集成电路包括耦合到电路板上的发射线的专用发射引脚、以及耦合到该电路板的接收线的专用接收引脚。鉴于此,虚拟GPIO信号可以被划分为用于在该发射线上进行传送的发射集和用于在该接收线上进行接收的接收集。如果信令是对称的,那么每个处理器的发射集中信号的数目是相同的。然而,本文中所公开的混合虚拟GPIO 架构能够容适不对称信令,其中一个处理器的虚拟GPIO信号的发射集与远程处理器的发射集的大小并不相同。类同于虚拟GPIO信号,消息接发信号也在专用发射引脚上被传送且在专用接收引脚上被接收。

图5中示出了混合虚拟GPIO架构,其在移动电话或其他通信设备内包括应用处理器集成电路505和调制解调器处理器集成电路500。应用处理器集成电路505的发射线510a是调制解调器处理器集成电路500的接收线。类似地,调制解调器处理器集成电路500的发射线110b是应用处理器集成电路505的接收线。这些线或导线被承载在电路板或者集成电路500和505之间的其他物理互连上。每个集成电路包括专用发射引脚512以耦合到对应发射线(例如,调制解调器处理器集成电路500的线510b)。类似地,每个集成电路包括耦合到对应接收线(例如,调制解调器处理器集成电路500的线510a)的专用接收引脚511。每个集成电路中的混合虚拟有限状态机(FSM)515使用这些专用线和引脚,针对如本文中进一步讨论的过采样时钟信号320(图3)的循环来控制传送和接收。

应用处理器集成电路505包括处理器502。类似地,调制解调器处理器集成电路500包括处理器501。每个处理器通过GPIO接口503来传送和接收GPIO 信号,其以常规方式用GPIO接口503与GPIO引脚525对接。通过每个混合虚拟GPIO接口503处理的信号的特定部分可以作为常规GPIO信号530在常规GPIO引脚525上被传送和接收。但是,通过GPIO接口503处理的信号的其余部分并不通过常规GPIO引脚525来传送或接收。替代地,该剩余信号部分中的一些包括使用专用发射引脚和专用接收引脚通过对应混合虚拟FSM 515来传送和接收的多个虚拟GPIO信号535。针对接收和传送消息接发信号 538而言,每个混合虚拟FSM 515还直接与对应处理器对接。因为消息接发信号538不是GPIO信号,所以它们不是通过GPIO接口103耦合。每个FSM 115 通过其专用发射引脚512和接收引脚511来传送和接收消息接发信号538。这些引脚由此是“混合”引脚,因为它们被用于虚拟GPIO信号535和消息接发信号538二者。

虚拟GPIO信号535并非如常规GPIO信号530的情形中那样各自具有它们自身的专用引脚。这是相当有利的,因为结果所得的混合虚拟GPIO架构达成了与其中虚拟GPIO信号535将各自要求它们自身的引脚的常规GPIO实施例相比而言引脚的显著减少。消息接发信号538常规上也会要求另一专用发射引脚和另一专用接收引脚。但是,这些附加引脚在本申请内容的有利混合虚拟 GPIO架构中也被消除了。

集成电路可以包括仅一个混合虚拟FSM 515或者可以包括用于与多个外部系统对接的多个此类元件。图6A解说了混合虚拟GPIO架构,其中集成电路600包括用于与集成电路605(包括其自身的单个混合虚拟FSM 515)中的远程处理器通信的单个混合虚拟FSM 515。与之形成对比的是,图6B中所示的集成电路620包括用于分别与集成电路625和630中的远程处理器通信的第一混合虚拟FSM 115A和第二混合虚拟FSM 115B。就此而言,本文中讨论的集成电路可配置有容适与其他设备的混合虚拟GPIO信令所必需的那样多的混合虚拟FSM 515。

再次参见图5,因为虚拟GPIO信号535是使用诸如混合虚拟FSM 515等的有限状态机来容适的,所以处理器501和502可以处于休眠或者其他类型的蛰伏状态,却仍能够接收虚拟GPIO信号535和消息接发信号538。以此方式,虚拟GPIO架构不仅有利地节约了每个GPIO接口503的引脚数目,而且还是低功率的。

如本文中所使用的,“引脚”是覆盖了集成电路用来耦合到电路板上或者其他物理互连(例如,封装互连或者穿孔式通孔互连)上的引线的结构(诸如焊盘或实际引脚)的通用术语。例如,若如图5中所示,每个集成电路具有十六个GPIO引脚或焊盘525,那么这些引脚可以配置成容适八个对称GPIO信号 530(为了解说清楚起见,图5中仅编号出了四个常规GPIO信号#1到#4)或者十六个不对称GPIO信号530。此外,每个集成电路能够使用线510a和510b 来容适多个(m个)虚拟GPIO信号535的输入/输出对接,其中m是任意性复数整数。类似地,每个集成电路可以使用线510a和510b来容适多个(M个) 消息接发信号538的输入/输出对接,其中M是复数(plural)正整数。对于每个处理器核而言,GPIO信号530与虚拟GPIO信号535之间没有差异:它们两者均简单地是按需通过GPIO接口503来传送和接收的信号。然而,因为虚拟GPIO信号535和消息接发信号538没有专用引脚(这与常规GPIO信号530 形成对比),所以虚拟GPIO信号535和消息接发信号538在混合虚拟FSM 515 中被串行化以供在线510a和510b上传送。在接收之际,每个混合虚拟FSM 515 将接收到的经串行化虚拟GPIO信号和接收到的经串行化的消息接发信号解串行化。由此,每个混合虚拟FSM 515对于虚拟GPIO信号535和消息接发信号 538而言起到串行器/解串器的作用。

处理器可能需要响应于这些GPIO信号或消息接发信号中选定的若干信号的改变而接收中断信号。针对虚拟GPIO信号535和消息接发信号336而言,调制解调器功率管理器(MPM)540按通过中断配置寄存器(未解说)编程的方式来监视这些选定的GPIO信号或消息接发信号。每个虚拟GPIO信号535 具有对应的中断配置寄存器。假如需要虚拟GPIO信号535响应于该信号改变状态而生成中断,则对应的配置寄存器将被相应地编程。类似地,如果虚拟 GPIO信号535或消息接发信号538是无论该信号是否改变了状态均不生成中断的信号,那么对应的中断配置寄存器也将被相应地编程。MPM 540还可包括有限状态机。由此,就像混合虚拟FSM 115那样,MPM 540是低功率的并且无论其处理器是处于休眠模式还是某种其他蛰伏状态均呈活跃。

虚拟GPIO信号535可被细分成发射集和接收集。在对称系统中,每个发射集将具有相同的数目。类似地,每个接收集将具有相同数目的信号。然而,将会领会,所公开的虚拟GPIO架构是有利的,因为其能现成地容适不对称信令实施例,在该不对称信令实施例中,虚拟GPIO信号535的发射集和消息接发信号538的发射集具有不同的大小,并且其中GPIO信号535的接收集和消息接发信号538的接收集也具有不同的大小。无论架构是对称的还是不对称的,每个混合虚拟FSM 515并行地从GPIO接口503接收虚拟GPIO信号535的发射集,并行的意义是指这些发射集中的每个信号被承载在该信号自身的在 GPIO接口503与混合虚拟FSM 515之间的导线上。消息接发信号538不是 GPIO信号并且由此它们并不通过GPIO接口503耦合。替代地,每个处理器 501和502从消息接发寄存器536中的对应各个取回消息接发信号538或将消息接发信号538写入到消息接发寄存器536中的对应各个中。针对接收到的消息接发信号538的帧,对应的混合虚拟FSM使用该帧中的位次序来标识哪个消息接发信号538被写入到特定的消息接发寄存器。这些消息接发寄存器536 各自被映射到对应处理器501或502的地址空间内的用于混合虚拟FSM 515 的通用地址的某个偏移。每个消息接发寄存器536由此具有其自身的地址537。响应于来自MPM 540的中断,处理器101或102可以随后访问消息接发寄存器536来获取恰适的消息接发信号538。就象虚拟GPIO信号535那样,消息接发信号538可以被细分为发射集和接收集。无论该架构是对称的还是不对称的,结果所得的由混合虚拟FSM 115对这些发射集进行的传送是在单个发射引脚512上发生的。来自一个处理器的虚拟GPIO信号535的发射集成为了远程处理器的虚拟GPIO信号535的接收集。类似地,消息接发信号538的发射集成为了远程处理器的消息接发信号538的接收集。远程处理器的混合虚拟FSM 515接着将虚拟GPIO信号535的接收集解串行化,从而其可以被并行地呈递给GPIO接口503。

每个混合虚拟FSM 515包括存储虚拟GPIO信号535和消息接发信号538 的发射集的先前状态的配置寄存器(未解说)。以这种方式,每个混合虚拟 FSM 515能够监视从GPIO接口503接收到的虚拟GPIO信号535发射集的当前状态,并且仅在当前状态相对于先前状态而言改变了时才触发对应发射集的串行传送。换言之,混合虚拟FSM 515将仅在通过在配置寄存器中存储先前状态而检测到发射集内的一个或多个信号改变了状态的情况下才触发消息接发信号538或虚拟GPIO信号535发射集的串行传送。每个处理器知晓消息接发信号寄存器536的地址537并且可以由此将期望的发射集写入到它们并且也读取接收集中的任何变化。混合虚拟FSM 515监视消息接发信号的发射集536 是否相对于它们先前的传送发生了变化并且将相应地触发发射集向远程处理器的传送。MSM 540监视接收集是否如先前所讨论地发生了改变,并且中断对应的处理器,从而改变了的接收集可得到处理。

所传送的和所接收的帧具有预定义的大小。对帧大小的预定义是必要的,因为混合虚拟FSM 515标识接收到的虚拟GPIO信号535和接收到的消息接发信号538是按其在帧内的次序来进行的。假若发射处理器需要传送比在缺省帧大小中所能包含的更多的虚拟GPIO信号535或消息接发信号538,则传送方混合虚拟FSM 515可以向接收方混合虚拟FSM 515信令通知要将其帧大小从缺省长度改变成新的经编程的长度。例如,帧大小可以由报头编程为长达特定数目的位。图7中示出了示例帧700。报头705可包括两个功能比特,fn_0和 fn_1。在一个实施例中,若这两个功能位都为零,那么随后的位是虚拟GPIO 信号535。若fn_0为零,且fn_1等于1,那么随后的位是消息接发信号538。如果fn_0为1且fn_1等于0,那么帧载荷中的后续比特表示接收方混合虚拟 FSM 515所预期的新虚拟GPIO(或消息接发信号)帧长度。类似地,若这两个功能位都为1,那么随后的位表示远程处理器对于期望帧长度的确收。若虚拟GPIO信号535的发射集(或消息接发信号538的发射集)小于此固定帧大小,那么每帧内未被使用的位可以是随意(don't care)值。替换地,每个混合虚拟FSM 515可配置成取决于给定应用所需的位数而更改所传送帧的大小。将会领会,前述对使用两个功能位的编码的讨论仅仅是示例,且可以使用其他报头和编码协议来标识帧是否正携带虚拟GPIO信号535、消息接发信号538、虚拟GPIO帧长度的标识、虚拟GPIO帧长度的确收、消息接发信号帧长度的标识、或消息接发信号帧长度的确收。在一个实施例中,帧700还可以包括标识帧载荷包括虚拟GPIO信号535还是消息接发信号538的类型位(type_bit)。

为了检测接收到虚拟GPIO信号535或消息接发信号538的接收集的完整帧,混合虚拟FSM 515可以包括在接收到帧700的开始位706后对所需的过采样时钟320循环数目进行计数的逻辑电路(未示出)。例如,假设接收集包括响应于过采样时钟320的100个循环而接收到的10个虚拟GPIO信号535(10X 过采样速率)。在检测到开始位706并且等待了过采样时钟320的另外100个循环后,FSM逻辑电路将接着期望收到结束位710。

再次参照图7,虚拟GPIO信号的发射集由此在由开始位706和结束位710 划界的帧700中被传送。因为发射处理器的发射集变成远程处理器的接收集,所以该接收集也被相应地成帧。该成帧是有利的,因为每个处理器由此可以监视远程处理器的健康而不需要任何的附加专用引脚。例如,每个混合虚拟FSM 515可以配置成在缺省状态(虚拟GPIO信号的发射集的当前状态相比于先前状态没有改变)期间将其专用发射引脚512弱拉(并因此将其发射线510a弱拉)至电源电压。对于此类实施例而言,开始位将会是逻辑零,以使得为了传送此开始位706,混合虚拟FSM 515将其发射线510a接地。用这种方式,每个混合虚拟FSM 515可以容易地通过检测其接收线510b已被拉向地而检测到接收到开始位706。在一个实施例中,开始位706和停止位710是彼此逻辑互补的。若开始位706为逻辑零,则停止位710由此将为逻辑高。帧700的载荷可以随后从类型位延展到划界帧结束的停止位710。

存在处理器发生故障以使得其不恰适地将其发射线710a拉到地的可能性。远程混合虚拟FSM 515会由此将这一情况检测为开始位706,并且其逻辑电路会相应地开始向着帧700的结束进行计数。但是,若结束位710是逻辑1,则每个混合虚拟FSM 515将其发射线510a充电至电源电压以信令通知帧传送的结束。若处理器发生了故障以使得远程混合虚拟FSM 115检测到被视为开始位706的信号,则逻辑电路将不会检测到结束位,并且将会相应告知其处理器远程处理器的故障。

考虑所公开的虚拟混合GPIO架构的优势:仅需要两个引脚,而任何数目的虚拟GPIO信号535和消息接发信号538能通过混合虚拟有限状态机515被串行化或解串行化。仅有的限制是对虚拟GPIO信号参照过采样时钟320和任何预期的时钟滞后或领先量的定时要求。此外,不需要任何其他引脚来使得一个处理器的健康对于对方处理器透明。帧700也是相当有利的,因为仅仅使用少至两个功能位的开销,各种消息接发信号538和虚拟GPIO信号535就可以在专用发射引脚112上被传送。

每个混合虚拟FSM 115可以如针对图3和4讨论地那样配置成使用多模式调制(诸如,针对码元100、105、110和115讨论地)来传送和接收帧700。每个接收到的码元可以由接收方混合虚拟FSM 515通过使用其过采样时钟对接收到的码元进行采样并比较结果所得的二进制1样本数目和结果所得的二进制0样本数目来解调。

图8是多模式调制混合虚拟FSM 515的框图以更好地解说其发射和接收操作。FSM 515通过复用模块800从其GPIO接口503(图5中示出)接收虚拟GPIO信号535的发射集。替换地,如稍早针对FSM 515所讨论的,复用模块800可以接收消息接发信号538的发射集。FSM 515包括若与发射集的先前状态相比,发射集中有改变时,将授权在发射线510a上信号发射集作为多模式调制码元来串行传送的逻辑电路801。用这种方式,不需要重传相比于先前传送而言未改变状态的发射集。逻辑电路801由此比较虚拟GPIO信号535的当前发射集和存储在锁存器或配置寄存器807中的先前发射集。为了执行该比较,逻辑电路801可以包括异或门810,其对当前发射集与存储在配置寄存器 807中的先前发射集进行异或操作。复用模块800将该当前发射集并行加载到并入串出(PISO)移位寄存器815中。若来自异或门810的使能信号820走高 (指示当前发射集与存储在配置寄存器807中的发射集之间有改变),则PISO 移位寄存器815随即被启用以响应于移位时钟120将其内容串行地移出到发射线510a上。

每个信号发射集包括存储在PISO移位寄存器815中的数据帧。FSM 515 包括将从PISO移位寄存器815移出的位发射集多模式调制成在发射线510a上被驱动到远程处理器的经多模式调制的码元的多模式调制器855。该调制响应于对来自振荡器的振荡循环的计数,诸如,来自过采样时钟源861的过采样时钟信号320的计数。调制器855和过采样时钟源861可以通过来自异或门810 的使能信号820的断言来被触发。响应于该触发,调制器855选通移位信号120,从而PISO移位寄存器815将来自信号发射集的初始位对移位到调制器855。例如,移位时钟120可以通过将过采样时钟320的频率降低达其过采样率而从过采样时钟320推导而得。

以此方式,存储在PISO移位寄存器815中的数据帧的信号发射集一次一对位地被移入到调制器855中。取决于被移出PISO移位寄存器815的位对中的每一位的二进制值,多模式调制器355对在发射线510a上传送的对应码元进行脉宽调制和相位调制。有鉴于此,每个处理器可以配置成在缺省状态(没有数据传送)期间将其发射线510a弱充电拉高至电源电压VDD。参照回图3,调制器855可以包括调制器310。

FSM 515还使用串入并出(SIPO)移位寄存器825用类似的方式将信号 (虚拟GPIO信号535和/或消息接发信号538)的接收集解串行化。多模式解调器870解调来自远程处理器的,在接收线510b上接收的收到经多模式调制码元。每帧的开始位被用来同步来自过采样时钟875的过采样时钟信号880。注意,在替换性实施例中,时钟875和861可包括相同的时钟。解调器870还可以在从中检测到整个帧已经被接收到之际将移位信号881断言到SIPO移位寄存器825。SIPO移位寄存器825随后将从解调器870移入经解调数据信号 882。一旦接收到帧,其就被锁存在输出锁存器851中,从而该帧可以被并行地呈送给复用模块800。

针对图7讨论的功能位可以通过纠错编码被增强。虽然纠错编码增加了等待时间,但是功能位随后免受位差错的影响,位差错可以通过纠错编码而被校正。用户随后能够保证重要的功能报头(诸如确收(ACK)和否定确收(NACK)) 将会在没有差错的情况下被递送。后续的实施例将会涉及使用扩展式汉明 (Extended Hamming)(8,4)码字来定义唯一性的功能,但是将会领会可以使用其他的纠错技术。

图9中示出了具有纠错的示例帧900。类似于帧700,帧900始于开始码元且以逻辑高(断言到VDD)停止码元来结束。10位长的功能位字段905提供了与例如至多128数据位的数据载荷910相关联的元数据(meta-data)。这些数据位可以包括如针对图7所讨论的虚拟GPIO信号530和/或消息接发信号 538。功能位字段905和数据载荷910二者作为经多模式调制的码元被传送。例如,第一码元915表示操作模式(op-mode)位D0和D1二者。因为有两个操作模式位,所以它们编码了四种不同的操作模式。第一操作模式对应于操作模式位D0和D1二者等于零,如图10中针对帧1100所示。在该模式中,数据载荷910具有八个虚拟GPIO位535的固定大小。给定了该固定的帧大小和相对简短的数据载荷1010,功能位字段905可以在该第一操作模式中被缩短到仅该两个操作模式位D0和D1。

第二和第三操作模式对应于图11中所示的帧1100。若操作模式位D0等于1且操作模式位D1等于0,则使用了第一P2P(点到点)消息接发方案。在该第一P2P消息接发方案中,操作模式位D0和D1之后跟随8位功能字段。该8位功能字段可以形成图12中所示的汉明(Hamming)码字。以该方式,8 位功能字段对差错是稳健的,从而接收方混合虚拟FSM可以稳健地解码正被传送的帧类型。因为有8位,所以有16个汉明(Hamming)码字可以如图12 中所示地被传送。在一个实施例中,功能报头码字可以形成经位反相的对以有利地简化结果所得的解码。例如,码字6是针对点对多点网络寻址的ACK,而经位反相的码字9则是寻址的NACK。类似地,码字7是直接ACK(点对点网络),而经位反相码字8是直接NACK。码字5及其经位反相的对应码字 10可以被保留以供未来使用。码字4为所寻址的网络指定流控制超驰消息 (FCOM)。对应的经位反相码字11是直连网络的流控制超驰消息。码字3 将相关联的数据载荷标识为所寻址网络的消息接发载荷,而对应的经位反相码字12指示相关联的数据载荷是直连网络的消息接发载荷。码字2指示相关联的数据载荷为所寻址网络的虚拟GPIO载荷,而经位反相码字13指示相关联的数据载荷是直连网络的虚拟GPIO载荷。码字1表示该帧是广播帧,而经位反相码字14表示该帧是仅监听查询。最后,码字0触发软复位,而对应的经位反相码字15触发最低速操作模式。将会领会,图12中的码字的指派仅是一个实施例的解说,并且可以利用众多替换性码字指派。

再次参照图11,第三操作模式对应于操作模式位D0等于0且操作模式位 D1等于1。在该操作模式中,跟随该操作模式位的功能位字段的范围可以从0 到8位。这些功能位可以被任意性地指派给图12中所示码字中的所选各个。

第四操作模式对应于图13中所示的帧1300,其中第一码元915中的操作模式位D0和D1二者等于1。在该模式中,跟随操作模式位之后的码元包括针对图7讨论的功能位D0和D1 705。该第四操作模式由此支持要被用于消息接发信号和虚拟GPIO信号载荷的新虚拟GPIO流长度的编程。

注意,帧900、1000、1100和1300的载荷都可以被编码以供用于纠错。此外,这些帧中的每一者始于在码元周期上延展的同步码元(时钟同步)。在前半个时钟同步码元中,传送方混合虚拟FSM 515将其发射引脚放电。在后半个同步码元中,传送方混合虚拟FSM 515将其发射引脚充电回电源电压VDD。因为发射引脚的缺省状态是高,所以当接收到前半个同步码元时,接收混合虚拟FSM 515可以容易地检测到其接收引脚的放电。接收方混合虚拟FSM 515 还可以容易地在码元传送的中点处检测到该同步码元的上升沿。接收方FSM 可以由此响应于该同步码元的上升沿而同步其过采样时钟。

现在将针对图14A的流程图来讨论第一操作方法。第一方法包括动作 1400:在GPIO接口处接收GPIO信号发射集。在GPIO接口503处从对应处理器501或502接收到GPIO信号的发射集是动作4100的示例。该方法还包括动作1405:在GPIO引脚上从GPIO接口传送GOIO信号的第一部分。在 GPIO引脚525中的对应各个上传送GPIO信号530是动作1405的示例。此外,该方法包括动作1410:从GPIO接口向有限状态机(FSM)传送GPIO信号的第二部分,其中GPIO信号的第二部分被安排成一系列位对。在调制器855中接收位对是动作1410的示例。后续的动作是针对每个位对来定义的。动作1415 是基于位对中的第一位的并且包括在至少两个脉宽之间选择以提供所选脉宽。如针对查找表328讨论的基于每个位对中的相位宽度位来选择脉宽是动作 1414的示例。动作1420是基于位对中的第二位的且包括在所选脉宽与码元周期的开始的上升沿对齐和所选脉宽与码元周期的结束的下降沿对齐之间进行选择,以提供所选择的边沿对齐。如针对查找表328讨论的根据每个位对中的相位控制位来控制相位是动作1420的示例。最后,该方法包括动作1425:根据所选脉宽和所选边沿对齐在码元周期内在发射引脚上从FSM传送脉冲,该脉冲在所选脉宽期间等于电源电压,以及在所选脉宽之外等于接地。由调制器 855进行的脉宽和经调制脉宽码元的传送是动作1425的示例。

针对图14B的流程图讨论第二操作方法。动作1430和1435分别与动作 1400和1405类似。该方法还包括动作1440:在诸第一帧中在专用发射引脚上向远程处理器串行地传送GPIO信号集的剩余部分作为虚拟GPIO信号,其中每个第一帧包括将该第一帧标识为虚拟GPIO帧的第一报头,并且其中诸第一报头是经纠错编码的。最后,该方法包括动作1445:从由第一处理器写入的诸消息接发信号寄存器取回消息接发信号并且在诸第二帧中在专用发射引脚上向远程处理器串行地传送所取回的诸消息接发信号,其中每个第二帧包括将该第二帧标识为消息接发帧的第二报头,以及其中诸第二报头是经纠错编码的。

示例系统1500在图15中示出,其包括配置成在如本文中所公开的混合虚拟GPIO接口(未解说)上与多个外围设备1510通信的片上系统(SoC)1505。每个外围设备1510由此还包括如本文所公开的混合虚拟FSM(未解说)。系统1500可包括蜂窝电话、智能电话、个人数字助理、平板计算机、膝上型计算机、数码相机、手持式游戏设备、或其他合适设备。除了使用其混合虚拟 FSM来向外围设备1510传送消息接发信号和虚拟GPIO信号以外,SoC 1505 在系统总线1515上进行通信,该系统总线1515还耦合至存储器(诸如DRAM 1520)和显示控制器1525。显示器控制器1525进而耦合到驱动显示器1535 的视频处理器1530。

如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的范围。有鉴于此,本公开的范围不应当被限定于本文所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1