共用物理接口上的动态数据链路选择的制作方法

文档序号:14126141阅读:358来源:国知局
共用物理接口上的动态数据链路选择的制作方法

相关申请的交叉引用

本申请要求于2015年8月7日在美国专利商标局提交的临时申请no.62/202,658、于2016年7月25日在美国专利商标局提交的临时申请no.62/366,538以及于2016年8月4日在美国专利商标局提交的非临时申请no.15/228,877的优先权和权益。

引言

公开领域

本公开一般涉及共用物理接口上的动态数据链路选择。



背景技术:

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

关于此类握手信令,如果边带信号必须由处理器来传送和接收两者,则它被认为是“对称的”。如果存在n个需要交换的对称边带信号,则每个处理器需要n*2个gpio(一个gpio用于传送给定信号而一个gpio用于接收该信号)。例如,调制解调器处理器与应用处理器之间的对称ipc接口可包括5个信号,这转译为结果所得ipc信令需要10个gpio引脚。为ipc通信对如此多的gpio引脚的需求增加了制造成本。此外,对ipc奉献太多的gpio限制了gpio对于其它系统级外围接口的可用性。该问题不能通过将ipc通信移至处理器之间的主数据总线来解决,因为可能违反某些角点条件。

概述

以下给出了本公开的一些方面的简要概述以提供对此类方面的基本理解。此概述不是本公开的所有构想到的特征的详尽综览,并且既非旨在标识出本公开的所有方面的关键性或决定性要素亦非试图界定本公开的任何或所有方面的范围。其唯一目的是以简化的形式提出本公开的一些方面的各种概念作为稍后提出的更详细描述的序言。

在本公开的一方面,提供了一种装置。该装置包括通信接口电路和处理电路。该处理电路被配置成经由通信接口电路检测要使用串行总线通信协议传送给第一设备的第一数据和要使用虚拟通用输入/输出通信协议传送给第二设备的第二数据中的至少一者,确定要传送第一数据还是第二数据,基于该确定来将耦合至该装置的物理互连线配置成用于串行总线通信协议或虚拟通用输入/输出通信协议,以及通过该物理互连线使用串行总线通信协议将第一数据传送给第一设备,或使用虚拟通用输入/输出通信协议将第二数据传送给第二设备。?在一方面,该处理电路通过将包括第一数据的第一通信模块或包括第二数据的第二通信模块中的一者耦合至该物理互连线来配置该物理互连线。在一方面,该处理电路基于优先级设定来确定要通过该物理互连线传送第一数据还是第二数据。在一方面,该物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线中。在一方面,第一数据包括i2c信号集,而第二数据包括通用输入/输出信号集。在一方面,处理电路被配置成检测要使用串行总线通信协议传送给第一设备的第一数据和要使用虚拟通用输入/输出通信协议传送给第二设备的第二数据中的该至少一者被进一步配置成监视第一通信模块以监视第一数据的传输尝试以及监视第二通信模块以监视第二数据的传输尝试。在一方面,该处理电路被进一步配置成确定在传输期间或该传输的一定时间量期间通过物理互连传送的数据量中的至少一者,以及当该数据量超过第一阈值或当该数据量超过第二阈值时将耦合至该装置的物理互连线重配置成用于串行总线通信协议或虚拟通用输入/输出通信协议。在一方面,该处理电路被进一步配置成通过物理互连线使用串行总线通信协议从第一设备接收第三数据或使用虚拟通用输入/输出通信协议从第二设备接收第四数据。在一方面,第一设备是位于将主机设备耦合至远程设备的缆线中的存储器设备,其中该物理互连线的至少一部分被配置在该缆线中,并且其中第三数据被存储在第一设备中并包括与该缆线相关联的配置数据。

在本公开的一方面,提供了一种装备。该装备包括用于检测要使用串行总线通信协议传送给第一设备的第一数据和要使用虚拟通用输入/输出通信协议传送给第二设备的第二数据中的至少一者的装置,用于确定要传送第一数据还是第二数据的装置,用于基于该确定来将耦合至该装备的物理互连线配置成用于串行总线通信协议或虚拟通用输入/输出通信协议的装置,以及用于通过物理互连线使用串行总线通信协议将第一数据传送给第一设备,或使用虚拟通用输入/输出通信协议将第二数据传送给第二设备的装置。在一方面,该装备进一步包括用于确定在传输期间或该传输的一定时间量期间通过该物理互连传送的数据量中的至少一者的装置,以及用于当该数据量超过第一阈值或当该数据量超过第二阈值时将耦合至该装备的该物理互连线重配置成用于串行总线通信协议或虚拟通用输入/输出通信协议的装置。在一方面,该装备进一步包括用于通过该物理互连线使用串行总线通信协议从第一设备接收第三数据或使用虚拟通用输入/输出通信协议从第二设备接收第四数据的装置。

在本公开的一方面,提供了一种装置。该装置包括通信接口电路和处理电路。该处理电路被配置成经由通信接口电路获得被配置成用于使用串行总线通信协议传输给第一设备的第一数据,将第一数据存储在与串行总线通信协议相关联的第一消息寄存器中,其中第一消息寄存器被映射至第二设备处的第二消息寄存器,第二消息寄存器与串行总线通信协议相关联,并使用虚拟通用输入/输出通信协议通过物理互连线将第一数据传送给第二设备处的第二消息寄存器。在一方面,该处理电路被进一步配置成获得被配置成用于使用虚拟通用输入/输出通信协议传输给第二设备的第二数据,其中第一数据包括i2c信号集,而第二数据包括通用输入/输出信号集,将第二数据存储在与虚拟通用输入/输出通信协议相关联的第一寄存器中,其中第一寄存器被映射至第二设备处的第二寄存器,第二寄存器与虚拟通用输入/输出通信协议相关联,并使用虚拟通用输入/输出通信协议通过物理互连线将第二数据传送给第二设备处的第二寄存器。在一方面,第一数据在与虚拟通用输入/输出通信协议相关联的消息中被隧穿至第二消息寄存器。在一方面,处理电路被配置成在第一帧中使用虚拟通用输入/输出信号传送第一数据,并且其中该处理电路被配置成在第二帧中使用虚拟通用输入/输出信号传送第二数据。在一方面,第一帧包括将第一帧标识为消息接发帧的第一头部,而第二帧包括将第二帧标示为虚拟通用输入/输出帧的第二头部。在一方面,该物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线中。在一方面,第一设备是位于将主机设备耦合至远程设备的缆线中的存储器设备,其中物理互连线的至少一部分被配置在该缆线中。

在本公开的一方面,提供了一种装备。该装备包括用于获得被配置成用于使用串行总线通信协议传输给第一设备的第一数据的装置,用于将第一数据存储在与串行总线通信协议相关联的第一消息寄存器中的装置,其中第一消息寄存器被映射至第二设备处的第二消息寄存器,第二消息寄存器与串行总线通信协议相关联,以及用于使用虚拟通用输入/输出通信协议通过物理互连线将第一数据传送给第二设备处的第二消息寄存器的装置。在一方面,该装备进一步包括用于获得被配置成用于使用虚拟通用输入/输出通信协议传输给第二设备的第二数据的装置,其中第一数据包括i2c信号集,而第二数据包括通用输入/输出信号集,用于将第二数据存储在与虚拟通用输入/输出通信协议相关联的第一寄存器中的装置,其中第一寄存器被映射至第二设备处的第二寄存器,第二寄存器与虚拟通用输入/输出通信协议相关联,以及用于使用虚拟通用输入/输出通信协议通过该物理互连线将第二数据传送给第二设备处的第二寄存器的装置。

在本公开的一方面,提供了一种装置。该装置包括通信接口电路和处理电路。处理电路被配置成经由通信接口电路获得被配置成使用虚拟通用输入/输出通信协议传输给第二设备的第一数据,其中该装置通过缆线耦合至第二设备,将第一数据存储到该装置处的第一消息隧穿寄存器中,并使用虚拟通用输入/输出通信协议将将第一数据传送给第二设备处的第二消息隧穿寄存器,其中第一数据由位于该缆线中的一个或多个中间设备转发,直到该第一数据在第二消息隧穿寄存器处被接收。在一方面,处理电路被进一步配置成获得被配置成以供使用虚拟通用输入/输出通信协议传输给该一个或多个中间设备中的中间设备的第二数据,将第二数据存储到该装置处的第一消息隧穿寄存器中,获得与该中间设备相关联的节点标识符,以及使用虚拟通用输入/输出通信协议将第二数据和节点标识符传送给该中间设备处的第三消息隧穿寄存器,其中第二数据由位于该缆线中的一个或多个中间设备转发,直到该第二数据在与该节点标识符相关联的该中间设备处被接收。

在本公开的一方面,提供了一种装备。该装备包括用于获得被配置成使用虚拟通用输入/输出通信协议传输给第二设备的第一数据的装置,其中该装备通过缆线耦合至第二设备,用于将第一数据存储到该装备处的第一消息隧穿寄存器中的装置,用于使用虚拟通用输入/输出通信协议将将第一数据传送给第二设备处的第二消息隧穿寄存器的装置,其中第一数据由位于该缆线中的一个或多个中间设备转发,直到该第一消息在第二消息隧穿寄存器处被接收。在一方面,该装备进一步包括用于获得被配置成以供使用虚拟通用输入/输出通信协议传输给该一个或多个中间设备中的中间设备的第二数据的装置,用于将第二数据存储到该装备处的第一消息隧穿寄存器中的装置,用于获得与该中间设备相关联的节点标识符的装置,以及用于使用虚拟通用输入/输出通信协议将第二数据和该节点标识符传送给该中间设备处的第三消息隧穿寄存器的装置,其中第二数据由位于该缆线中的一个或多个中间设备转发,直到该第二数据在与该节点标识符相关联的中间设备处被接收。

提供了用于实现主机设备与外围设备之间的通信的缆线。该缆线包括位于缆线第一端处的第一设备,第一设备包括第一虚拟通用输入/输出接口和第二虚拟通用输入/输出端口,第一虚拟通用输入/输出端口通过第一物理互连线耦合至主机设备。该缆线进一步包括位于缆线第二端处的第二设备,第二设备包括第三虚拟通用输入/输出接口和第四虚拟通用输入/输出接口,第四虚拟通用输入/输出接口通过第二物理互连线耦合至外围设备,其中第一和第二设备被配置成使用虚拟通用输入/输出通信协议经由第二和第三虚拟通用输入/输出接口沿缆线长度进行通信;以及耦合至第一设备的第三设备,第三设备被配置成使用串行总线通信协议与第一设备通信。第一虚拟通用输入/输出接口被配置成使用串行总线通信协议或使用虚拟通用输入/输出通信协议通过第一物理互连线向主机设备传送来自第三设备的数据。在一方面,串行总线通信协议是i2c协议并且其中该数据包括i2c信号集。在一方面,第一设备是第一重定时器电路,第二设备是第二重定时器电路,而第三设备是存储器设备。

在本公开的一方面,提供了一种高速缆线。该高速缆线包括第一虚拟gpio(vgi)接口,其被配置成串行传送组织到边带信道中的专用传送线上的诸第一帧中的虚拟gpio信号传送集,并且其中第一vgi接口被进一步配置成从诸消息接发信号寄存器中检索i2c信号传送集并且在所述专用传送线上串行地传送所述i2c信号传送集,而第二虚拟gpio(vgi)接口被配置成接收vgip信号传送集并传送i2c信号传送集。

在本公开的一方面,提供了一种用于集成电路的方法。该方法包括在第一设备的虚拟gpio接口处接收gpio信号集,在专用传送引脚上将该gpio信号集作为诸第一帧中的第一虚拟gpio信号串行地传送给高速缆线,其中每个第一帧包括将该第一帧标识为虚拟gpio帧的第一头部,在虚拟gpio接口处接收i2c信号集,以及在专用传送引脚上将该i2c信号集作为诸第二帧中的第二虚拟gpio信号串行地传送给高速缆线,其中每个第二帧包括将该第二帧标识为消息接发帧的第二头部。在一方面,该方法进一步包括在高速缆线中的主信道上将pci高速信号从第一设备传送给远程设备。在本公开的一方面,提供了一种用于集成电路的方法。该方法包括在第一设备的虚拟gpio接口处接收gpio信号集,将该gpio信号集串行化到虚拟gpio帧中,在第一设备的复用器处选择该虚拟gpio帧,在专用传送引脚上将虚拟gpio帧从复用器串行地传送给高速缆线,在复用器处选择i2c信号帧,以及在专用传送引脚上将i2c帧从复用器串行地传送给高速缆线。

在审阅了以下详细描述之际,本公开的这些以及其它方面将变得更能完全理解。在结合附图审阅了下面对本公开的特定实现的描述之际,本公开的其它方面、特征和实现将对本领域普通技术人员变得显而易见。尽管本公开的特征可能是相对于以下的某些实现和附图来讨论的,但是本公开的所有实现均可包括本文讨论的一个或多个优势特征。换句话说,尽管一个或多个实现可作为具有某些优势特征来被讨论,但也可根据本文讨论的本公开的各种实现来使用一个或多个此类特征。以类似方式,尽管以下可将某些实现作为设备、系统或方法实现来讨论,但应理解,可在各种设备、系统和方法中实现此类实现。

附图说明

在结合附图理解下面阐述的详细描述时,各种特征、本质和优点会变得明显,在附图中,相像的附图标记贯穿始终作相应标识。

图1是示例混合虚拟gpio架构的框图。

图2a是混合虚拟gpio架构的高级框图,其中处理器与单个远程处理器通信。

图2b是混合虚拟gpio架构的高级示图,其中处理器与两个远程处理器通信。

图3是响应于外部时钟的混合虚拟gpio有限状态机的框图。

图4解说了虚拟gpio/消息接发信号帧的格式。

图5是由图1的gpio架构实践的方法的流程图。

图6解说了用于对虚拟gpio和消息接发帧长度进行编程的长度编程帧。

图7解说了所传送的以对响应于图6的帧进行编程的帧长度进行确收的确收帧。

图8解说了示例虚拟gpio帧和示例消息接发信号帧。

图9解说了示例经组合虚拟gpio和消息接发帧。

图10解说了不使用外部时钟的混合虚拟gpio有限状态机。

图11是使用环形振荡器脉宽调制(ro-pwm)技术通过图10的有限状态机对数据帧进行传输的定时图。

图12解说了点对多点vgi网络。

图13解说了增强型vgi混合帧。

图14解说了针对图13的增强型vgi混合帧中的头部的一些示例码字。

图15是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。

图16是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。

图17是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。

图18是根据本公开的各种方面的被配置成使用缆线与外围设备通信的主机设备的示图。

图19解说了在没有协议合并的情况下实现动态数据链路选择的架构。

图20解说了根据本公开的各种方面在没有协议合并的情况下实现动态数据链路选择的架构。

图21解说了用协议合并实现链路桥接的架构。

图22示出了具有多跳消息接发的pci-sig边带信令的架构。

图23解说了根据本公开的各种方面的示例vgi接口。

图24是根据本公开的各种方面的用于实现多跳链路隧穿的示例寄存器映射架构。

图25是解说根据本公开的至少一个示例的装置的组件选集的框图。

图26是解说用于集成电路的方法的流程图。

图27是解说根据本公开的至少一个示例的装置的选择组件的框图。

图28是解说用于集成电路的方法的流程图。

图29是解说根据本公开的至少一个示例的装置的组件选集的框图。

图30是解说用于集成电路的方法的流程图。

具体实施方式

在以下描述中,给出了具体细节以提供对各实施例的透彻理解。然而,本领域的普通技术人员将理解,无需这些具体细节就可实践各实施例。例如,电路可能用框图示出以便不使这些实施例湮没在不必要的细节中。在其他实例中,公知的电路、结构和技术可能不被详细示出以免模糊这些实施例。

已经开发了虚拟gpio(vgi)电路和技术,其中多个gpio信号被串行化为“虚拟”gpio信号并在传送引脚上从传送设备传送到接收设备上的接收引脚。接收设备将收到的虚拟gpio信号解串为gpio信号并将其呈现给gpio接口。gpio接口可随后用触发此类中断的任何经改变的gpio信号的状态来中断其主机处理器。因此,vgi系统可提供大量的引脚节省。给定了其引脚节省的前提下,已经提议了与集成电路间接口(i2c接口)结合的vgi以容适高速缆线(诸如高速外围组件接口(pcie))中的边带信令,如由pci特别兴趣小组(pci-sig)所批准的。然而,i2c接口中的i2c时钟和数据线要求在该高速缆线的每端处有两个分开的引脚。

在本公开的一方面中,提供了用于跨高速缆线的边带信令的动态数据链路选择架构。例如,高速缆线可被用于将第一设备(例如,主机设备,诸如片上系统(soc))耦合至第二设备(例如,外围设备)以实现第一与第二设备之间的通信。高速缆线可包括主带信道,诸如高速外围组件互连(pcie)主带。因为使用此主带信道是常规的,所以以下讨论将集中在高速缆线的分开的边带信道中的边带信令上。如先前所提及的,高速缆线耦合在两个设备之间,并且每个设备可包括动态数据链路选择架构。由动态数据链路选择架构进行的一种数据链路选择使用虚拟gpio(vgi)接口的虚拟通用输入/输出(gpio)协议(亦称为虚拟通用输入/输出通信协议),其使得设备能将引脚对用作就好像它们构成更大数目的多个gpio引脚那样。由动态数据链路选择架构进行的另一种选择是选择替换数据链路协议。以下讨论将假设该替换数据链路协议包括集成电路间(i2c)通信协议,但可领会,该附加数据链路协议可包括替换的串行数据通信协议,诸如i3c协议。动态数据链路选择架构可具有协议合并方面,或者可具有非协议合并方面。

协议合并概览

i2c信号是消息接发信号的示例。如本文所使用的,短语“消息接发信号”指常规上将在专用传送引脚上传送(诸如在处理器间通信(ipc)或串行外围接口(spi)协议中实践的)的信号。因此,消息接发信号可包括地址,从而接收处理器可将收到的消息接发信号路由至恰适的寄存器。相反,gpio信号常规上在专用引脚上被传送和接收,从而无需将任何地址与gpio信号相关联。如本文中进一步说明的,vgi接口将gpio信号串行化为在共用传送引脚上传送的经串行化虚拟gpio信号。因此,两个设备可各自具有vgi接口并且可关于针对虚拟gpio信令的帧结构达成一致。传送和接收vgi设备可通过gpio信号在虚拟gpio帧内的位置来确定该gpio信号的身份。

虚拟gpio架构被认为是“虚拟的”,因为对于创建虚拟gpio信号的系统级应用而言,就好像是那些虚拟gpio信号被容适以用于常规gpio引脚上的输入/输出一样。换而言之,具有本文揭示的虚拟gpio架构的soc或处理器不会体验到gpio信号与虚拟gpio信号之间的任何功能差异。然而,仅两个引脚被用于传送和接收本将各自需要其自身的专用gpio引脚对(若gpio信号是对称的)的虚拟gpio信号。在协议隧穿方面,虚拟gpio架构可被认为是“混合的”,因为被用于传送虚拟gpio信号的专用传送引脚还被用于向远程处理传送消息接发信号。类似地,被用于接收虚拟gpio信号的专用接收引脚还被用于从远程处理器接收消息接发信号。

将关于在高速缆线中的边带信道上容适第一设备与第二设备之间的ipc来讨论本文揭示的虚拟gpio信号。然而,将领会,本文揭示的虚拟gpio电路和技术被广泛应用于要求gpio能力的soc或因应用而异的集成电路(asic)。

所揭示的混合虚拟gpio架构使传送设备的健康对于接收设备是透明的。在针对软件实现的调试阶段期间,这可能是有利的,因为它向接收设备指示传送设备变为不操作的时间。为了实现此种稳健虚拟gpio能力,每个设备/集成电路包括耦合至高速缆线的边带信道中的传送线的专用传送引脚,以及耦合至该高速缆线的边带信道中的接收线的专用接收引脚。就此,虚拟gpio信号可被分为用于在传送线上传输的传送集和用于在接收线上接收的接收集。如果信令是对称的,则传送集中针对每个处理器的的信号数量是相同的。然而,本文揭示的混合虚拟gpio架构可容适不对称信令,其中针对一个处理器的虚拟gpio信号的传送集与针对远程处理器的传送集大小不同。类似于虚拟gpio信号,消息接发信号也在专用传送引脚上被传送并在专用接收引脚上被接收。图1解说了包括通过高速缆线106耦合在一起的第一设备102和第二设备104的混合虚拟gpio架构100,该高速缆线106包括主信道108,诸如pcee信道。因为每个设备耦合至专用传送线和专用接收线,高速缆线102中的边带信道内的用于第一设备102的传送线110a因此是用于第二设备的104的接收线。类似地,用于第二设备104的传送线110b是用于第一设备102的接收线。第一设备102和第二设备104可各自包括专用传送引脚112以耦合至相应的传送线(例如,用于第二设备104的线110b)。类似地,每个集成电路可包括专用接收引脚114以耦合至相应的接收线(例如,用于第二设备104的线110a)。第一设备102和第二设备104中的每一者中的有线状态机(fsm)116使用这些专用线和引脚来关于来自外部时钟源(诸如32khz休眠时钟)的外部时钟信号118控制传输和接收。第一设备102和第二设备104各自包括处理器120(也称为中央处理单元(cpu))。每个处理器120以常规方式从每个混合gpio接口112传送和接收gpio信号。然而,这些gpio信号并不通过常规gpio引脚来传送或接收。相反,它们使用专用传送和接收引脚通过相应的fsm116作为虚拟gpio信号集124来传送和接收。每个fsm116还关于接收和传送消息接发信号126(例如,i2c信号)直接与相应的处理器对接。因为消息接发信号126不是gpio信号,所以它们不通过gpio接口来耦合。每个fsm116通过其专用传送引脚112和接收引脚114传送和接收消息接发信号126。这些引脚因此是“混合”引脚,因为它们被用于虚拟gpio信号124和经隧穿消息接发信号126两者。应注意,虚拟gpio信号124并非各自具有其自身的专用引脚,如针对常规gpio信号的情形。因此,与虚拟gpio信号124将各自需要其自身引脚的常规gpio实施例相比,混合虚拟gpio架构100可达成显著的引脚减少(例如,在第一设备102和/或第二设备104上)。消息接发信号126常规上将同样需要另一个专用传送引脚和另一个专用接收引脚,诸如用于i2c接口的数据和时钟引脚。可领会,这些附加引脚也可在混合虚拟gpio架构100中被消除。

集成电路可包括仅一个fsm116或可包括用于与多个外部系统对接的多个这些元件。图2a解说了混合虚拟gpio架构200,其中第一设备202包括用于与远程设备204通信的单个fsm116,远程设备204包括其自身的fsm116。相反,图2b中示出的设备252包括用于分别与设备254和256中的远程处理器通信的fsm116a和fsm116b。就此,soc(诸如本文中讨论的处理器)可配置有如容适与其它soc的混合虚拟gpio信令接发所必需的那样多的fsm。不管处理器可具有的fsm的数量如何,每个fsm使用其自身的专用传送引脚206和接收引脚208来通信,如图2a所指示的。

再次参照图1,因为使用有限状态机(例如fsm116)来容适虚拟gpio信号124,所以第一和第二设备102、104的处理器120可以是睡眠的或处于另一种类型的休眠状态,并且还能够接收虚拟gpio信号124和消息接发信号126。以此方式,混合虚拟gpio架构100不仅有利地节省了针对每个gpio接口122的引脚数量,而且消耗了较低的功率。

如本文所使用的,术语“引脚”是包括结构的一般术语,该结构诸如集成电路用于耦合至电路板或其它物理互连(例如,封装互连或穿孔式通孔互连)上的导线的焊盘或实际引脚。第一和第二设备102、104中的每一者可使用线110a和110b来容适多(n)个虚拟gpio信号124的输入/输出接口,其中n是大于1的任意整数。类似地,第一和第二设备102、104中的每一者可使用线110a和110b来容适多(m)个消息接发信号126的输入/输出接口,m是大于1的正整数。与常规gpio信号相反,因为虚拟gpio信号124和消息接发信号126不具有专用引脚,所以虚拟gpio信号124和消息接发信号126在fsm116中被串行化以供在线110a和110b上传输。一旦被接收,每个fsm116就将收到的经串行化虚拟gpio信号和收到的经串行化消息接发信号解串。因此,每个fsm116关于虚拟gpio信号124和消息接发信号126用作串行器/解串器。

处理器可能需要响应于gpio信号或消息接发信号中的所选一些信号的变化而接收中断信号。关于虚拟gpio信号124和消息接发信号126,调制解调器功率管理器(mpm)132如通过中断配置寄存器(未解说)被编程地监视所选gpio信号或消息接发信号。每个虚拟gpio信号124具有相应的中断配置寄存器。假使要求虚拟gpio信号124响应于该信号改变状态而生成中断,则相应配置寄存器将被相应地编程。类似地,假使虚拟gpio信号124或消息接发信号126是不管该信号是否改变了状态都不生成中断的信号时,相应的中断配置寄存器也将被相应地编程。在一些方面中,mpm132还可包括有限状态机。因此,类似于fms116,mpm132是低功率设备并且不管其处理器处于休眠模式还是某种其它休眠状态都是活跃的。

虚拟gpio信号124可被细分为传送集和接收集。在对称系统中,每个传送集将具有相同数量的信号。类似地,每个接收集将具有相同数量的信号。然而,可领会,混合虚拟gpio架构100可容适不对称信令配置,其中虚拟gpio信号124和消息接发信号126的传送集具有不同大小,并且其中gpio信号124和消息接发信号126的接收集也具有不同大小。不管混合虚拟gpio架构100是对称还是不对称的,每个fms116(在这些传送集中的每个信号被携带于其自身在gpio接口122与fsm116之间的导线上的意义上)都从gpio接口122并行地接收虚拟gpio信号124的传送集。消息接发信号不是gpio信号,并且因此不通过gpio接口122来耦合。就此,如由每个fsm116所表示的混合接口可被相应的处理器120赋予某个外围地址。每个fsm116可被配置成解码消息接发信号126中的地址字段128从而给定消息接发信号126可被存储在相应的地址接发寄存器(例如,消息接发寄存器130)中。这些消息接发寄存器130各自被映射至相应处理器(例如,第一设备102中或第二设备104中的处理器120)的地址空间内针对fsm116的总地址的某个偏移。响应于来自mpm132的中断,处理器120随后可访问消息接发寄存器130以获得恰适的消息接发信号126。类似于虚拟gpio信号124,消息接发信号126可被细分为传输集和接收集。不管该架构是对称还是不对称,结果由fsm116对这些传送集进行的传输在单个传送引脚112上发生。来自一个处理器(例如,第二设备104的处理器120)的虚拟gpio信号124的传送集变为针对远程处理器(例如,第一设备102的处理器120)的虚拟gpio信号124的接收集。类似地,消息接发信号126的传送集变为针对远程处理器的消息接发信号126的接收集。远程处理器的fsm116随后解串虚拟gpio信号124的接收集,从而它们可被并行呈现给gpio接口122。

每个fsm116包括存储针对虚拟gpio信号124和消息接发信号126的传送集的先前状态的配置寄存器(未解说)。以此方式,每个fsm116可在从gpio接口122接收虚拟gpio信号124的传送集时监视虚拟gpio信号124的传送集的当前状态,并且仅在当前状态已经关于先前状态改变了时才触发相应传送集的串行传输。换而言之,fsm116将仅在如通过配置寄存器中的先前状态的存储检测到传送集内的一个或多个信号已经改变了状态时才触发该传送集的串行传输。每个处理器120知晓消息接发信号寄存器130的地址并且因此可将想要的传送集写入它们并且还可读取接收集中的任何改变。fsm116监视消息接发信号126的传送集是否已经关于其先前传输改变了,并且将相应地触发该传送集至远程处理器的传输。如先前所讨论的,mpm132监视接收集是否已经改变了,并中断相应的处理器120,从而改变了的接收集可被处理。

如以上所讨论的,每个fsm116充当串行器/解串器以将每个传送集串行化并且解串每个接收集。图3是更好地解说这些操作的fsm116的框图。fsm116通过复用模块300与相应的处理器120交换虚拟gpio信号124和消息接发信号126。复用模块300关于虚拟gpio信号124通过虚拟gpio接口122与相应的处理器对接,并关于消息接发信号126直接与相应的处理器120对接。在一个实施例中,每个fsm116包括逻辑电路302,仅当任一传送集中已经发生改变时,该逻辑电路302才将授权在传送线110a上传送虚拟gpio信号124的传送集或消息接发信号126的传送集。逻辑电路302因此将虚拟gpio信号124(或消息接发信号126)的传送集的当前状态与如在相应的配置寄存器304中存储的该传送信号集的先前状态作比较。例如,逻辑电路302可包括xor(异或)门306以执行该比较。复用模块300将该传送集并行地加载至并入串出(piso)移位寄存器308中。如果来自xor门306的使能信号309变为高(指示针对该传送集的当前状态与先前状态之间的变化),则piso移位寄存器308被启用以响应于外部时钟118的周期而串行地将其内容移出到传送线110a上。

fsm116还使用串入并出(sipo)移位寄存器310以类似方式解串虚拟gpio信号124或消息接发信号126的接收集。虚拟gpio信号124和消息接发信号126的接收集是由远程处理器生成并由该远程处理器在接收线110b上传送的。虚拟gpio信号124(或消息接发信号126)的接收集响应于外部时钟118的周期而被成功移位至sipo移位寄存器310中。fsm116被配置成在各帧中传送虚拟gpio信号124和消息接发信号126的传送集并接收接收集,如本文进一步讨论的,这些帧具有分开的起始比特和结束比特。

先前讨论的帧可具有预定义大小。在一个实施例中,帧大小由头部确定为长度为某个数量的比特。图4中示出了示例帧400。头部402可包括两个功能比特(例如,图4中的fn_bit(比特)-0andfn_bit-1)。在一个实施例中,如果这两个功能比特都具有逻辑值0,则接下来的比特是虚拟gpio信号124。如果fn_bit-0具有逻辑值0且fn_bit-1具有逻辑值1,则以下比特是消息接发信号126。如果fn_bit-0具有逻辑值1且fn_bit-1具有逻辑值0,则以下比特表示远程处理器所预期的虚拟gpio帧长度。类似地,如果这两个功能比特都具有逻辑值1,则以下比特表示由远程处理器对期望的帧长度的确收。如果虚拟gpio信号124的传送集(或消息接发信号126的传送集)小于该固定帧长度,则每个帧内的未使用比特可为“无所谓(don’tcare)”值。替换地,每个fsm116可被配置成取决于给定应用所需的比特数量而更改所传送帧的大小。将领会,对使用两个功能比特的编码的前面讨论仅是示例,并且其它头部和编码协议可被用于标识帧是否正携带虚拟gpio信号124、消息接发信号126、虚拟gpio帧长度的标识、虚拟gpio帧长度的确收、消息接发信号帧长度的标识、或消息接发信号帧长度的确收。在一个实施例中,帧400还可包括与编程和确收帧相关联的类型比特(例如,图4中的type_bit405),如以下进一步讨论的。例如,在一个实施例中,类型比特可被设为逻辑值1(例如,逻辑高)以标识虚拟gpio帧,并且可被设为逻辑0(例如,逻辑低)以标识消息接发信号帧。

发送虚拟gpio信号124或消息接发信号126的传送集所需的帧数量取决于特定传送集中的信号数量和帧大小。例如,如果示例帧大小是8比特,并且传送集中有10个虚拟gpio信号124,则将需要两个帧来使用8比特帧发送该传送集。

为了检测虚拟gpio信号124或消息接发信号126的接收集的完整帧的接收,fsm116可包括如图3中所示的逻辑电路312,该逻辑电路312在接收该帧的起始比特之后对外部时钟118的必要周期数量进行计数。例如,设想接收集包括响应于外部时钟118的10个周期而接收的10个虚拟gpio信号124。在检测到起始比特并等待外部时钟118的另外10个周期之后,逻辑电路312将随后预期接收结束比特。假使相应地检测结束比特,则逻辑电路312随后可选通输出锁存314以并行接收已经作为完整帧被移位至sipo移位寄存器310中的虚拟gpio信号124的接收集。经锁存的虚拟gpio信号的接收集可随后通过复用模块300被呈现给gpio接口122。类似地发生消息接发信号126的接收集的锁存,尽管消息接发信号的接收集被加载到消息接发信号寄存器130中而非被路由通过gpio接口122。

再次参照piso移位寄存器308,可领会,该寄存器被配置成用起始比特和结束比特对虚拟gpio信号124和消息接发信号126进行成帧。虚拟gpio信号的传送集因此在帧400中被传送,帧400由起始和结束比特404、406来定界。因为对于传送处理器的传送集变为对于远程处理器的接收集,所以该接收集也被相应地成帧。该成帧是有利的,因为每个处理器随后可监视远程处理器的健康,而无需任何附加专用引脚。例如,每个fsm116可被配置成在默认状态期间将其专用传送引脚112弱拉(并且因此将传送线110a弱拉)至电源电压以(对于虚拟gpio信号的传送集的当前状态比对先前状态没有变化)。对于此种实施例,起始比特将是逻辑0,从而fsm116将传送线110a接地以用于起始比特的传输。以此方式,每个fsm116可通过检测接收线110b已经被拉至接地来容易地检测起始比特的接收。在一个实施例中,起始比特和停止比特是彼此的逻辑补。如果起始比特为逻辑0,则停止比特因此将是逻辑高值。帧的有效载荷随后可从类型比特延伸至定界帧结束的停止比特406。可能的是,处理器可能已经故障,从而它不恰适地将其传送线110a拉至接地。远程处理器因此将把此情况检测为起始比特,并且逻辑电路312将相应地开始朝该帧结束进行计数。然而,如果结束比特是逻辑1,则每个fsm116将传送线110a充电至电源电压以信令通知帧传输的结束。如果处理器已经故障,从而远程fsm116已经检测到被认为是起始比特的情况,则逻辑电路312将不会检测到结束比特并且将相应地向其处理器通知远程处理器的故障。

为了允许用于接收的足够建立时间,帧400的传输应该关于第一时钟边沿发生并且其接收应关于其余的时钟边沿发生。例如,piso移位寄存器308中的比特可响应于外部时钟118的下降沿或负沿被移出以供在传送线110a上传输。相反,接收线110b上的收到比特可响应于时钟118的上升沿或正沿被移位至sipo移位寄存器310中。

为由一个处理器检测远程处理器中的不活跃状态,每个fsm116可被配置成在默认状态中(其中没有帧要传送)将其传送线弱拉高。如先前所讨论的,起始比特和停止比特具有相反的逻辑状态。图4的帧400的起始比特404因此可具有逻辑0(接地),从而传送线110a被拉低以用于其传输,而停止比特406可以是逻辑1,从而传送线110a被拉高至电源电压以用于其传输。再次参照图3,逻辑电路312被配置成关于外部时钟118上的上升沿来监视接收线110b。非帧传输的默认逻辑状态由接收线110b因其弱上拉(如先前所讨论的)而简单地保持为高来指示。假使逻辑电路312在外部时钟118的上升沿之一处检测到接收线110b已经被拉低(这指示起始比特404的0值),则逻辑电路312根据帧400的预定义大小等待足够数量的时钟周期以随后检测停止比特406的逻辑高。停止比特406的接收向逻辑电路312指示完整帧400已经被完全移位至sipo移位寄存器310中。在该点处,逻辑电路312选通sipo移位预测器310,从而收到帧通过锁存314被并行提供给复用模块300。虚拟gpio信号(或消息接发信号126)的接收集随后可相应地通过gpio接口122被提供给处理器核。

相对较慢的外部时钟118(诸如32khz休眠时钟)对于ipc的信令要求可能是充裕的。例如,假设对虚拟gpio信号124和消息接发信号126的传输的最小建立和保持要求各自是2纳秒,并且对fsm116处的外部时钟118的接收的最大预期超前或滞后是6纳秒。可容易地示出,外部时钟118的结果所得的最大频率将是62mhz。诸如来自休眠时钟的32khz频率因此将为此种实施例提供非常大的安全边际。现在将概述针对混合虚拟gpio架构100的示例操作方法。

图5的流程图中概述了针对混合虚拟gpio架构100的操作的方法。该方法可由设备(例如,第一设备102)来执行。该设备可在gpio接口处从第一处理器500接收gpio信号集。该设备可将gpio信号集的一部分从gpio接口通过gpio引脚传送给第二处理器502。例如,第二处理器可以是位于另一设备(例如,第二设备104)中的远程处理器。该设备可串行地将gpio信号集的其余部分作为gpio信号504从gpio接口通过专用传送引脚传送给第二处理器。该设备可从由第一处理器写入的消息接发信号寄存器中检索消息接发信号并且串行地将检索到的消息接发信号通过专用传送引脚传送给第二处理器506。

考虑所揭示的混合虚拟gpio架构100的优势:仅两个引脚是必要的,然而任何数量的虚拟gpio信号124和消息接发信号126可通过fsm116被串行化和解串。可被串行化和解串的信号数量可基于针对虚拟gpio信号124关于外部时钟118以及任何预期的时钟的滞后或超前量的定时要求。此外,没有其他引脚是为了使一个处理器的健康对于对立处理器透明所必需的。

可领会,在具有两个功能比特的开销的情况下,帧400可被用于在专用传送引脚112上传送各种消息接发信号126和虚拟gpio信号124。图6中示出了设置虚拟gpio帧长度(以及设置消息接发信号帧长度)的示例编程帧。编程帧600设置虚拟gpio帧长度。类似地,编程帧650设置消息接发信号帧长度。预定义了用于定义帧长度(并且因此定义每个编程帧的长度)的比特数量。因此,一旦fsm116看到指示编程长度被设置(诸如,fn_bit-0具有逻辑值1而fn_bit-1具有逻辑值0,如先前所讨论的)的头部(例如,头部602、头部652),则它将从帧主体中读取帧长度。就此,fsm116需要知道正被编程的是虚拟gpio帧的长度还是消息接发帧的长度。因此,针对编程帧的每个头部(例如,针对编程帧600的头部602、针对编程帧650的头部652)之后可以是帧类型比特(例如,帧类型比特604、654)。例如,具有逻辑值1的帧类型比特(例如,帧类型比特604)可指示虚拟gpio帧长度正被编程,而具有逻辑值0的帧类型比特(例如,帧类型比特654)可指示消息接发信号帧长度正被编程。在一个实施例中,每个编程帧600、650具有5个编程比特,范围从比特0到比特4。如由其名称所标识的,每个比特是2的幂的系数。换而言之,比特0是乘以20的系数,比特1是乘以21的系数,比特2是乘以22的系数,比特3是乘以23的系数,而比特4是乘以24的系数。5个编程比特因此可以编程从0到31的帧长度。附加编程比特将实现最高达63的帧长度的编程,等等。

当远程fsm116接收编程帧(诸如帧600或650)时,它可继续使用确收帧来确收所定义的帧长度。图7中示出了示例确收帧。帧700是虚拟gpio确收帧,而帧750是消息接发信号确收帧。如图7中所示,每个帧700、750包括头部702、752,其中功能比特将该帧标识为确收帧。在一个实施例中,这两个功能比特都是逻辑1的头部(例如,头部702)标识确收帧。头部(例如,头部702)之后的帧类型比特(例如,帧类型比特704)标识确收帧类型。在一个实施例中,虚拟gpio确收帧700由具有逻辑值1的帧类型比特704来标识。相反,消息接发信号确收帧750可由具有逻辑值0的帧类型比特754来标识。帧类型比特(例如,帧类型比特704或帧类型比特754)之后的编程比特等于相应帧(例如,帧600或帧650)中的编程比特。

一旦帧长度由此被编程,则虚拟gpio信号124的帧800或消息接发信号的帧850就可被传送,如图8中所示。再次参照图1,注意到有n个虚拟gpio信号124和m个消息接发信号126。每个帧(例如,帧800、850)因此可被专用于仅1个gpio端口(n个gpio信号124之一)或者它可能包括来自n个gpio信号124的每信号一个比特。换而言之,可根据各种端口来串行地传送gpio字,或者它们可被并行传送。相同的串行/并行考虑适用于消息接发信号。不管每个帧800、850是携带多个端口还是仅1个端口,头部(例如,头部802、854)皆标识该帧是虚拟gpio帧还是消息接发信号帧。

不是使用分开的帧来传送虚拟gpio信号124和消息接发信号126,而是在该替换实施例中这些信号可被组合以用于混合虚拟gpio架构,其中每个帧包括虚拟gpio信号124和消息接发信号126两者。例如,图9示出了包括头部902以及扩展头部904的示例混合帧900。扩展头部904指示在扩展头部904之后并且在停止比特906之前的消息接发信号比特和虚拟gpio比特的比特位置。取决于等待时间要求,消息接发比特908或虚拟gpio比特910在帧主体中可能是第一个。在一些实施例中,扩展头部904可包括纠错比特,诸如循环冗余校验(crc)比特。注意,扩展头部904仅需要标识仅虚拟gpio比特910或仅消息接发比特908的位置和长度,因为其余比特因此默认已知属于其余比特类别。以上讨论的共用外部时钟118可通过将每个fsm116与用于接收共用时钟118的时钟引脚相关联来实现。为了避免该附加引脚需求,外部时钟118可如美国临时申请no.61/907,974中所讨论地被消除,该美国临时申请的内容通过引用纳入于此。再次参照图1,混合虚拟gpio架构100因此将通过消除外部时钟118及其相应的引脚来被修改。为了消除对在每个集成电路中保留用于接收共用时钟的引脚的任何需要,信号的传送集的传输关于传送集成电路和接收集成电路是异步的。为了实现此种异步传输和接收,每个fsm116可包括振荡器(诸如环形振荡器)或与之相关联。传送fsm116响应于传送集中的每个比特通过对来自振荡器的振荡进行计数来对在专用传送引脚上传送的信号进行脉宽调制。传送集中的比特随后在数据帧中被传送,该帧中的每个比特是传送集中的相应比特的经脉宽调制版本。所传送的数据帧中的每个比特具有关于脉宽调制使用的某个比特周期。例如,如果所传送比特具有一个二进制状态,诸如二进制零,则fsm116可对第一振荡数量进行计数,从而比特周期的多数部分已经届满。一旦对第一振荡数量进行计数,fsm116就用第一二进制电压(诸如用电源电压vdd)来脉动专用传送引脚。在计数开始,专用传送引脚被脉动到相反的第二二进制电压状态,诸如接地。

相反,如果传送比特具有相反的二进制状态,诸如二进制1,则fsm116可以第二二进制电压(诸如接地)开始该传送比特,并前进至对第二振荡数量进行计数,从而比特周期的少数部分已经届满。一旦对第二数量的振荡进行计数,fsm116就用第一二进制电压来脉动专用传送引脚。以此方式,耦合至专用传送引脚的传送线的电压根据可变脉宽用第一二进制电压来脉动。如果电流传送比特具有第一二进制值,则根据第一脉宽用第一二进制电压来脉动该传送线。相反,如果电流传送比特具有相反的第二二进制值,则根据第二脉宽用第一二进制电压来脉动传送线。

以类似方式来解调在fsm(例如,fsm116)处在其专用接收引脚上从远程处理器接收的所传送数据帧。将每个传送线(它是针对接收处理器的接收线)的默认状态(或空闲模式)充电至电源电压vdd是便利的。这使得远程处理器的健康对于接收处理器是透明的,如以下进一步讨论的。此类实施例中的第二二进制电压则将为接地。接收fsm116随后将通过检测专用接收引脚何时被放电来识别收到比特的开始。接收fsm116随后可开始对来自其振荡器的震荡进行计数。随后将生成两个计数:在专用接收引脚被充电至第一二进制电压的比特部分期间发生了多少个振荡的第一接收计数,以及在该专用接收引脚被充电至第二二进制电压的比特部分期间发生了多少个振荡的第二接收计数。通过比较这两个接收计数,接收fsm116可确定是第一脉宽还是第二脉宽被应用于该收到比特。收到的数据帧相应被解调,从而不需要共用时钟来协调传送线上的数据帧的传输。为了区分此种fsm和使用外部时钟的fsm116,以下fsm116将被标记为内部时钟fsm。

图10是更好地解说其传送和接收操作的内部时钟fsm1016的框图。fsm1016通过复用模块300从其gpio接口122(图1中示出)接收虚拟gpio信号124的传送集。替换地,复用模块300可接收消息接发信号126的传送集,如较早关于fsm116所讨论的。fsm1016包括逻辑电路302,如果与信号的传送集的先前状态相比该传送集中已经有了变化,则该逻辑电路302将授权该传送集作为经脉宽调制信号在传送线110上的串行传输。以此方式,不必重传与先前传输相比未曾改变状态的传送集。逻辑电路302因此将虚拟gpio信号的当前传送集与锁存或配置寄存器304中存储的先前传送集作比较。为了执行该比较,逻辑电路302可包括xor门306,xor门306将当前传送集与配置寄存器304中存储的先前传送集(该先前传送集可被指定为“最后的gpio状态”,如图10中所示)进行异或运算。复用模块300将当前传送集并行地加载至并入串出(piso)移位寄存器308中。如果来自xor门306的使能信号309变为高(指示当前传送集与寄存器304中存储的传送集之间的变化),则piso移位寄存器308随后被启用以响应于移位信号316而串行地将其内容移出到传送线110a上。

信号的每个传送集包括存储到piso移位寄存器308中的数据帧。fsm1016包括脉宽调制器322,该脉宽调制器322将从piso移位寄存器308移出的比特的传送集脉宽调制为经脉宽调制输出信号,后者被驱动至传送线110a上的远程处理器。该调制响应于来自振荡器的振荡循环的计数,诸如来自传送环形振荡器(ro)318的传送环形振荡器输出信号320的计数。调制器322和传送环形振荡器318可由来自xor门306的使能信号309的断言来触发。响应于该触发,调制器322选通移位信号316从而piso移位寄存器308将信号的传送集的初始比特移位至调制器322。

调制器322包括对环形振荡器输出信号320中的循环进行计数的至少一个计数器(例如,以下进一步描述的图11中示出的计数器1105和1110)。取决于来自脉宽调制的期望脉宽,计数器计数至第一计数或大于第一计数的第二计数。在计数了满足第一和第二计数中的恰适一个的足够数量的循环之后,计数器重新选通移位信号316从而来自piso移位寄存器308中存储的数据帧的后续比特被移位至调制器322。以此方式,针对piso移位寄存器308中存储的数据帧的信号的传送集被一次1比特地移位至调制器322中。取决于被移出piso移位寄存器308的每个比特的二进制值,脉宽调制器322对在传送线110a上传送的相应脉冲进行脉宽调制。就此,每个处理器可被配置成在默认状态期间(没有数据传输)将其传送线110a弱充电高至电源电压vdd。在此种实施例中,针对比特时间周期的脉冲传输始于将传送线110a放电至接地(vss),如针对数据帧的图11的定时图中所示。每个经脉宽调制比特传输始于通过比特周期的某个初始放电部分(诸如比特时间周期的25%)将传送线110a放电至接地。取决于该比特值,调制器322维持传送线110a的放电达比特周期的多数(例如,75%),或在比特周期的初始放电部分届满之后立即将传送线110a充电回到vdd。换而言之,一个二进制值可被调制到比特周期中的相对较窄高电压(vdd)脉冲中,而二进制值的补值可被调制到比特周期中相对较宽高电压(vdd)脉冲中。

图11中示出的示例数据帧的初始比特是二进制0。在一个实施例中,二进制0可被调制到传送线110a在其中被维持接地达比特周期的75%的第一脉宽中。比特周期的此种多数部分对应于计数至第二计数的多数部分计数器1110。如果要传送的比特是二进制0,则脉宽调制器322将因此保持传送线110a被放电直到满足第二计数。当达到第二计数时,脉宽调制器322将随后将传送线110a脉动至电源电压vdd达比特周期的其余部分。该脉冲历时随后将对应于计数至第一计数的少数部分计数器1105,这刚好是比特周期的25%。针对此种比特在传送线110a上传送的结果所得电压脉冲则将具有比特周期的刚好25%的脉冲宽度。

相反,仅在少数放电部分,诸如比特周期的头25%期间,二进制1可被调制到传送线110a在其中被接地的第二脉冲宽度中。传送线110a随后将被放电直到满足第一计数。一旦满足了第一计数,脉宽调制器322随后将传送线110a脉动高到电源电压vdd达比特周期的其余部分,如通过将多数部分计数器410复位为0并计数直到它满足第二计数所确定的。用于传送线110a的电压在其中被充电至电源电压vdd的第二脉冲宽度则将包括比特周期的75%。然而,将领会,不同的脉冲宽度可在替换实施例中被用于象征期望二进制值。

在一个实施例中,调制器322可包括逻辑电路1100。取决于比特值,逻辑电路1110触发少数部分计数器1105或多数部分计数器1110以开始计数。然而将领会,取决于期望的脉宽调制,可使用计数至第一或第二计数的单个计数器。一旦由逻辑电路1100触发,少数部分计数器1105或多数部分计数器1100就对来自传送环形振荡器(ro)318的循环进行计数。例如,少数部分计数器1105可被配置成对与比特时间周期的25%对应的足够数量的循环进行计数,一旦计数出足够数量的循环它就断言输出信号以象征满足第一计数。类似地,多数部分计数器1110可被配置成对与比特时间周期的75%对应的足够数量的循环进行计数,一旦计数出足够数量的循环它就断言其输出信号。在该实施例中,调制器322被配置成在每个比特时间周期开始将传送线110a放电至接地。取决于比特值,调制器322在来自恰适计数器的输出信号的断言之际将传送线110a充电回至电源电压vdd。例如,数据帧中的第一比特是二进制0,从而调制器322在计数器1105断言其输出信号之际断言传送线110a高至vdd。类似地,数据帧中的第二比特是二进制1,从而调制器322在计数器1110断言其输出信号之际断言传送线110a高至vdd。将领会,最初25%的低周期仅是示例并且可实现比特时间周期的其它分数。

在一个方面,逻辑电路1100、计数器1105和1110、调制器322、和piso移位寄存器308的组合可被认为包括用于将传送集中的每个信号串行处理为一系列相应的经脉宽调制信号的装置,其中该装置被配置成通过响应于经串行处理信号的二进制值而将来自振荡器的振荡计数为第一计数和第二计数之一来确定每个经串行处理信号的脉宽,并且其中该装置被进一步配置成在专用传送引脚上通过该专用传送引脚将该系列对应的经脉宽调制信号传送至远程处理器。

再次参照图10,fsm1016还使用串入并出(sipo)移位寄存器310以类似方式解串信号(虚拟gpio和/或消息接发信号)的接收集。解调器328对如在接收线110b上收到的来自远程处理器的收到经脉宽调制信号进行解调。解调器328被配置成检测来自收到经脉宽调制信号的收到数据帧的开始,诸如通过检测接收线110b的放电来触发接收环形振荡器324以开始振荡出接收环形振荡器输出信号326。注意,在替换方面中,振荡器324和318可包括相同的振荡器。类似于调制器322,解调器328可包括计数器,诸如低计数器1112和高计数器1114。在每个比特周期中,低计数器1112被触发以计数,而同时接收线110b被放电。相反,高计数器1114被触发以计数,而同时接收线110b被充电至电源电压vdd。在替换实施例中,计数器1112和1114可使用在针对接收线110b的每个二进制电压状态中的振荡数量进行计数的单个共用计数器来实现。通过比较来自计数器1112和1114的计数,解调器328可相应地形成经解调数据信号332。特别地,如果在给定比特周期中来自高计数器1114的计数大于来自低计数器1112的计数,则解调器328可将经解调数据信号332驱动高至电源电压vdd以象征收到了相对较宽的脉冲。相反,如果来自低计数器1112的计数较大,则解调器328可将经解调数据信号332放电至vss以象征收到了相对较窄的脉冲。

解调器328还可在检测到来自比特时间周期边界的计数之际向sipo移位寄存器310断言移位信号330。sipo移位寄存器310随后将移入来自解调器328的经解调数据信号332。fsm模块1016可被配置成处理针对如以上讨论的由编程帧所确定的信号的传送集和接收集的预定义数据帧大小。计数器1112和1114两者在比特时间周期开始被初始化。低计数器1112在接收线110b电压为低之时对来自接收环形振荡器324的循环进行计数,而高计数器1114在接收线电压为高(vdd)之时对来自接收环形振荡器324的循环进行计数。比较器1120因此在每个比特时间周期结束时通过将来自低计数器1112的低计数(cl)与来自高计数器1114的高计数(ch)作比较来执行解调比特判定。比特周期可根据每当高计数器1114停止计数并输出ch(如由接收线110b被放电所触发的)来确定。计数器1114可相应地在每个比特时间边界处被初始化。在每个比特周期结束处,如果cl大于ch,则比较器1120将经解调数据信号332驱动为低,这在一个方面对应于二进制0的解调。相反,如果在比特周期结束处ch大于cl,则比较器将经解调数据信号332驱动为高,这在此种方面对应于二进制1的解调。sipo移位寄存器310寄存响应于移位信号330的选通的每个经解调比特判定。

增强型vgi消息接发技术

关于图4到9讨论的功能比特可通过纠错编码来增强。尽管纠错编码增加了等待时间,但功能比特随后对比特差错免疫,这些比特差错可通过纠错编码被纠正。由此可向用户保证重要的功能头部(诸如确收(ack)和否定确收(nack))将被无差错地递送。以下方面将涉及使用扩展汉明(8,4)码字来定义唯一性功能,但是将领会,可使用其它纠错技术。另外,网络拓扑可被扩展以包括点对点和点对多点拓扑两者。前文关于图1讨论的第一和第二设备102、104以点对点方式被布置。由于该直接连接,第二设备104不需要将消息寻址到第一设备102,因为仅第一设备102使其接收引脚耦合至第二设备104的传送引脚。相反,图12解说了点对多点vgpio(vgi)网络,其包括设备a1202、设备b1204、设备c1206和设备d1208。假使设备a1202需要与设备c1206或设备d1208通信,则必须使用地址来将该通信路由通过设备b1204。相反,假使设备a1202改为需要与直接毗邻设备(诸如设备b1204)通信,则此种通信不需要寻址。因此,图12的网络中的vgi帧可包括头部,该头部标识该帧被寻址或替代地是点对点帧(本文中命名为“直接”帧)。

图13中示出了具有纠错的示例帧1300。类似于关于图4和6-9讨论的帧,帧1300以逻辑低(接地)开始比特来开始并且以逻辑高(断言到vdd)停止比特来结束。10比特长功能比特字段提供与例如高达128个数据比特的数据有效载荷相关联的元数据。这些数据比特可包括如关于图4和6-9讨论的vgi数据和/或消息接发数据。头两个功能比特d0和d1(例如,操作模式比特1302)标识网络拓扑(点对点或点对多点)以及还标识帧大小是固定的还是可变的。在该实施例中,如果d0和d1两者都是逻辑低(0),则网络拓扑是点对点且帧大小(数据有效载荷)固定在8个比特。如果d0是逻辑1而d1是逻辑0,则后面跟随着的帧是用于需要寻址的点对多点网络。相反,如果d0和d1都是逻辑1,则后面跟随着的帧是用于不需要寻址的点对点网络。由d0等于二进制0而d1等于二进制1标识的操作模式可被保留以供将来使用(rfu)。将领会,替换编码可被用于标识操作模式。头两个功能比特0和1的格式化也有助于同步诸接收设备中的时钟。

功能比特2到9(8个比特)可形成汉明(8,4)码字,该码字形成功能头部的其余部分。图14表示了针对功能比特2到9的一些示例码字。在一个实施例中,功能头部码字可形成比特反转对以有利地简化结果所得解码。例如,码字6(图14中指示为“码6”)是针对点对多点网络的寻址的ack,而比特反转码字9(图14中指示为“码9”)是寻址的nack。类似地,码字7(图14中指示为“码7”)是直接ack(点对点网络),而比特反转码字8(图14中指示为“码8”)是直接nack。码字5(图14中指示为“码5”)及其比特反转的对应码字10(图14中指示为“码10”)可被保留以供将来使用。码字4(图14中指示为“码4”)指示针对所寻址网络的流控超驰消息(fcom)。相应的比特反转码字11(图14中指示为“码11”)是针对直接网络的流控超驰消息。码字3(图14中指示为“码3”)将相关联的数据有效载荷标识为针对所寻址网络的消息接发有效载荷,而相应的比特反转码字12指示相关联的数据有效载荷是针对直接网络的消息接发有效载荷。码字2(图14中指示为“码2”)指示相关联的数据有效载荷是针对所寻址网络的vgi有效载荷,而比特反转码字13指示相关联的数据有效载荷是针对直接网络的vgi有效载荷。码字1(图14中指示为“码1”)象征该帧是广播帧,而比特反转码字14(图14中指示为“码14“)象征该帧是仅监听查询。最后,码字0(图14中指示为“码0”)触发软复位,而相应的比特反转码字15(图14中指示为“码15”)触发最低速操作模式。将领会,图14中的码字指派仅是解说一个实施例并且可利用众多替换码字指派。

用于高速数据缆线的双引脚vgi接口

在外围组件互连特别兴趣小组(pci-sig)缆线/模块中,具有i2c接口的存储器设备(例如,电可擦除可编程只读存储器(eeprom))可被用于存储模块参数。该办法不仅被用于缆线,而且被用于板载接口情景以供参数存储。在本公开的一些方面中,因为vgi可被用于合并边带信令和相对较低(每秒数十kb)至中(每秒数十mb)速度的消息接发,所以可通过动态选择合适的物理链路来在vgi上兼并用于读取包含系统参数的设备的(诸)专用接口。延续现状需要主机设备(例如,soc或处理器)上的附加端口可用性以支持此类专用接口(即,i2c)并要求额外引脚,这进而增加了成本。

图15是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。在图15的示例配置中,设备a1502可以是主机设备而设备a’1504可以是外围设备。如图15中所示,设备a1502通过缆线1506耦合至设备a’1504。例如,缆线1506可以是pci-sig缆线,该缆线包括一个或多个电子设备,诸如设备b1508和设备b’1510,这两个设备可存储与缆线1506相关联的配置信息(例如,缆线1506的参数)。在此种示例中,缆线1506可被称为智能缆线或高速智能缆线。例如,设备b1508和/或设备b’1510可包括至少一个eeprom。

如图15示例配置中所示,设备a1502被配置成在第一专用链路,诸如i2c链路(或i3c链路)上与设备b1580通信。例如,第一专用链路可包括第一互连1518和第二互连1520。相应地,设备a1502可包括i2c接口1522,该接口1522被配置成在第一互连1518和第二互连1520上使用i2c串行通信协议与设备b1508通信。例如,第一互连1518可以是i2c数据线而第二互连1520可以是i2c时钟线。设备a’1504被配置成在第二专用链路,诸如i2c链路(或i3c链路)上与设备b’1510通信。例如,第二专用链路可包括第一互连1524和第二互连1526。相应地,设备a’1504可包括i2c接口1528,该接口1528被配置成在第一互连1524和第二互连1526上使用i2c串行通信协议与设备b’1510通信。例如,第一互连1524可以是i2c数据线而第二互连1526可以是i2c时钟线。

如图15中所示,缆线1506可实现设备a1502与设备a’1504之间的主带信号1512的通信。如图15中进一步示出的,缆线1506可实现边带信号1514至设备a’1504的传输以及边带信号1516从设备a’1504的接收。边带信号1514可包括第一群n个边带信号,而边带信号1516可包括第二群m个边带信号。在图15的配置中,应理解,边带信号1514中的每个边带信号在分开的物理互连线(例如,n个分开的物理互连线)上被传送,而边带信号1516中的每个边带信号在分开的物理互连线(例如,m个分开的物理互连线)上被接收。

图16是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。在图16的示例配置中,设备a1602可以是主机设备而设备a’1604可以是外围设备。如图16中所示,设备a1602通过缆线1606耦合至设备a’1604。例如,缆线1606可以是pci-sig缆线,该缆线包括一个或多个电子设备,诸如设备b1608、设备b’1610、设备c1630和设备c’1632。例如,设备b1608和设备b’1610可存储与缆线1606相关联的配置信息(例如,缆线1606的参数)。在此种示例中,缆线1606可被称为智能缆线或高速智能缆线。例如,设备b1608和/或设备b’1610可包括至少一个eeprom。设备c1630和设备c’1632可各自被配置为重定时器和边带信号合并器。例如,并且如图16中所示,设备c1630可包括第一vgi接口1634和第二vgi接口1636,而设备c’1630可包括第三vgi接口1638和第四vgi接口1640。

如图16的示例配置中所示,设备a1602被配置成在第一专用链路,诸如i2c链路(或i3c链路)上与设备b1608通信。例如,第一专用链路可包括第一互连1618和第二互连1620。相应地,设备a1602可包括i2c接口1622,该接口1622被配置成在第一互连1618和第二互连1620上使用i2c串行通信协议与设备b1608通信。例如,第一互连1618可以是i2c数据线而第二互连1620可以是i2c时钟线。设备a’1604被配置成在第二专用链路,诸如i2c链路(或i3c链路)上与设备b’1610通信。例如,第二专用链路可包括第一互连1624和第二互连1626。相应地,设备a’1604可包括i2c接口1628,该接口1628被配置成在第一互连1624和第二互连1626上使用i2c串行通信协议与设备b’1610通信。例如,第一互连1624可以是i2c数据线而第二互连1626可以是i2c时钟线。

如图16中所示,缆线1606可实现设备a1602与设备a’1604之间的主带信号1612的通信。如图16中进一步示出的,缆线1606可实现边带信号1614至设备a’1604的传输以及边带信号1616从设备a’1604的接收。边带信号1614可包括第一群n个边带信号,而边带信号1616可包括第二群m个边带信号。在图16的配置中,应理解,边带信号1614中的每个边带信号在分开的物理互连线上被传送,而边带信号1616中的每个边带信号在分开的物理互连线上被接收。

在图16的配置中,从设备a1602传送给设备a’1604的边带信号1614可被设备c1630(例如,并行地)接收。第一vgi接口1634可将边带信号1614串行化并且可将经串行化的边带信号传递给第二vgi接口1636。第二vgi接口1636可通过vgi互连1642将经串行化的边带信号传送给设备c’1632。设备c’1632的第三vgi接口1638可将经串行化的边带信号传递给第四vgi接口1640。第四vgi接口1640随后可解串这些经串行化的边带信号并且可将边带信号1614(例如,并行地)传送给设备a’1604。类似地,从设备a’1604(例如,并行地)传送给设备a1602的边带信号1616可被设备c’1632接收。第四vgi接口1640可将边带信号1616串行化并且可将经串行化的边带信号传递给第三vgi接口1638。第三vgi接口1638可通过vgi互连1644将经串行化的边带信号传送给设备c1630。设备c1630的第二vgi接口1636可将经串行化的边带信号传递给第一vgi接口1634。第一vgi接口1634随后可解串这些经串行化的边带信号并且可将边带信号1616(例如,并行地)传送给设备a1602。

因此,可领会,vgi互连1642上的边带信号1614的合并,以及vgi互连1644上的边带信号的合并可减少在缆线1606中携带边带信号1614、1616所需的线路数量。然而,应注意,在图16的配置中,vgi通信协议的实现仅是在缆线1606内部。因此,图16的配置仍可能在设备a1602与缆线1606的缆线端a之间需要大量的边带线路(例如,互连),以及在设备a’1604与缆线1606的缆线端b之间同样需要大量的边带线路(例如,互连)。如此,图16的配置可能不能帮助减少设备a1602和/或设备a’1604处的引脚。

图17是被配置成使用常规的高速缆线与外围设备通信的主机设备的示图。在图17的示例配置中,设备a1702可以是主机设备而设备a’1704可以是外围设备。如图17中所示,设备a1702通过缆线1706耦合至设备a’1704。例如,缆线1706可以是pci-sig缆线,该缆线包括一个或多个电子设备,诸如设备b1708、设备b’1710、设备c1726和设备c’1728。例如,设备b1708和设备b’1710可存储与缆线1706相关联的配置信息(例如,缆线1706的参数)。在此种示例中,缆线1706可被称为智能缆线或高速智能缆线。例如,设备b1708和/或设备b’1710可包括至少一个eeprom。设备c1726和设备c’1728可各自被配置为重定时器和边带信号合并器。例如,并且如图17中所示,设备c1726可包括第一vgi接口1734和第二vgi接口1736,而设备c’1728可包括第三vgi接口1738和第四vgi接口1740。

如图17示例配置中所示,设备a1702被配置成在第一专用链路,诸如i2c链路(或i3c链路)上与设备b1708通信。例如,第一专用链路可包括第一互连1714和第二互连1716。相应地,设备a1702可包括i2c接口1718,该接口1718被配置成在第一互连1714和第二互连1716上使用i2c串行通信协议与设备b1708通信。例如,第一互连1714可以是i2c数据线而第二互连1716可以是i2c时钟线。设备a’1704被配置成在第二专用链路,诸如i2c链路(或i3c链路)上与设备b’1710通信。例如,第二专用链路可包括第一互连1720和第二互连1722。相应地,设备a’1704可包括i2c接口1724,该接口1724被配置成在第一互连1720和第二互连1722上使用i2c串行通信协议与设备b’1710通信。例如,第一互连1720可以是i2c数据线而第二互连1722可以是i2c时钟线。如图17中所示,缆线1706可实现设备a1702与设备a’1704之间的主带信号1712的通信。

如图17中所示,设备a1702被进一步配置成通过第三专用链路,诸如vgi链路与设备c1726通信。例如,第三专用链路可包括第一vgi互连1742和第二vgi互连1744。相应地,设备a1702可包括vgi接口1730,vgi接口1730被配置成通过第一vgi互连1742向设备c1726传送vgi信号,并通过第二vgi互连1744从设备c1726接收vgi信号。类似地,设备a’1704被进一步配置成通过第四专用链路,诸如vgi链路与设备c’1728通信。例如,第四专用链路可包括第一vgi互连1750和第二vgi互连1752。相应地,设备a’1704可包括vgi接口1732,vgi接口1732被配置成通过第一vgi互连1750从设备c’1728接收vgi信号,并通过第二vgi互连1752向设备c’1728传送信号。

在图17的配置中,要从设备a1702传送给设备a’1704的边带信号可在vgi接口1730处被转换为vgi信号,并通过第一vgi互连1742传送给设备a’1704。vgi信号可在第一vgi接口1734处被接收并被传递给第二vgi接口1736。第二vgi接口1736可通过第一vgi互连1746将vgi信号传送给第三vgi接口1738。第三vgi接口1738可将vgi信号传递给第四vgi接口1740。第四vgi接口1740可通过第一vgi互连1750将vgi信号传递给设备a’1704。设备a1702可在第二vgi互连1744上从设备a’1704接收边带信号作为vgi信号。例如,要从设备a’1704传送给设备a1702的边带信号可在vgi接口1732处被转换为vgi信号,并通过第二vgi互连1752传送给设备a1702。vgi信号可在第四vgi接口1740处被接收并被传递给第三vgi接口1738。第三vgi接口1738可通过第二vgi互连1748将vgi信号传送给第二vgi接口1736。第二vgi接口1736可将vgi信号传递给第一vgi接口1734。第一vgi接口1734可通过第二vgi互连1744将vgi信号传送给设备a1702。设备a’1704可在缆线1706的缆线端b处以类似方式传送和接收vgi信号。因此,可领会,第一vgi互连1742和第二vgi互连1744上的边带信号在缆线端a处的合并,以及第一vgi互连1750和第二vgi互连1752上的边带信号在缆线端b处的合并可减少在设备a1702与设备a’1704之间携带这些边带信号所需的引脚数量。

图18是根据本公开的各种方面的被配置成使用缆线与外围设备通信的主机设备的示图。在图18的示例配置中,设备a1802可以是主机设备而设备a’1804可以是外围设备。如图18中所示,设备a1802通过缆线1806耦合至设备a’1804。例如,缆线1806可以是pci-sig缆线,该缆线包括一个或多个电子设备,诸如设备b1808、设备b’1810、设备c1826和设备c’1828。例如,设备b1808和设备b’1810可存储与缆线1806相关联的配置信息(例如,缆线1806的参数)。在此种示例中,缆线1806可被称为智能缆线或高速智能缆线。例如,设备b1808和/或设备b’1810可包括至少一个eeprom。设备c1826和设备c’1828可各自被配置为重定时器和边带信号合并器。例如,并且如图18中所示,设备c1826可包括第一vgi接口1834和第二vgi接口1836,而设备c’1828可包括第三vgi接口1838和第四vgi接口1840。

如图18中所示,设备a1802被配置成通过第一链路,诸如第一vgi链路与设备c1826通信。例如,第一vgi链路可包括第一vgi互连1842和第二vgi互连1844。相应地,设备a1802可包括vgi接口1830,vgi接口1830被配置成通过第一vgi互连1842向设备c1826传送vgi信号,并通过第二vgi互连1844从设备c1826接收vgi信号。类似地,设备a’1804被进一步配置成通过第四专用链路,诸如vgi链路与设备c’1828通信。例如,第四专用链路可包括第一vgi互连1850和第二vgi互连1852。相应地,设备a’1804可包括vgi接口1832,vgi接口1832被配置成通过第一vgi互连1850从设备c’1828接收vgi信号,并通过第二vgi互连1852向设备c’1828传送信号。

在一方面,图18的配置中的每个vgi接口可包括fsm,诸如fsm1016,其不需要时钟引脚,如先前关于图10所描述的。如图18中所示,设备a1802可包括耦合至vgi接口1830的i2c接口1818。相应地,在图18的配置中,i2c接口1818可通过第一vgi互连1842向设备b1808传送i2c信号,并通过第二vgi互连1844从设备b1808接收i2c信号。如图18中进一步所示,设备a’1804可包括耦合至vgi接口1832的i2c接口1824。相应地,在图18的配置中,i2c接口1824可通过第一vgi互连1850向设备b’1810传送i2c信号,并通过第二vgi互连1852从设备b’1810接收i2c信号。如图18中所示,缆线1806可实现设备a1802与设备a’1804之间的主带信号1812的通信。

因此,关于图18中的配置,可通过vgi链路(例如,第一vgi互连1842和/或第二vgi互连1844)在设备a1802与设备b1808之间传达i2c信号。类似地,可通过vgi链路(例如,第一vgi互连1850和/或第二vgi互连1852)在设备a’1804与设备b’1810之间传达i2c信号。在一方面并且如以下关于图19和20所述的,通过vgi链路传达2c信号可通过实现动态链路选择办法来达成,该动态链路选择办法使得能在没有协议合并的情况下(例如,不将i2c信号转化为vgi信号)通过vgi接口传达i2c信号。根据一个方面,对于每次数据事务,可在vgi链路上传达预定量的i2c数据。根据另一方面,动态链路选择办法可纳入超时特征以解决通信故障并控制链路占用周期。

在另一方面,可通过实现链路隧穿办法在vgi链路上传达i2c信号,该链路隧穿办法使得能用协议合并在vgi接口上传达i2c信号(例如,将i2c信号转化为vgi信号)。因此,在该方面中,图18中的vgi接口中的每个vgi接口可包括接口桥接模块。在一个示例中,此种接口桥接模块可以用于vgi至i2c的接口桥接。在其它示例中,此种接口桥接模块可支持其它类型的接口。例如,除了vgi至i2c接口桥接之外或作为其替代,图18中的vgi接口中的每个vgi接口可包括vgi至uart接口桥接和/或vgi至spi接口桥接。

应注意,在图18的配置中,缆线端a处在设备a1802与缆线1806之间所需的用于传达边带信号的互连数量可被减少至两个互连(例如,第一vgi互连1842和第二vgi互连1844)。换而言之,缆线端a处在设备a1802与缆线1806之间不需要专用链路(例如,i2c链路或i3c链路)。如此,在设备a1802与设备a’1804上不需要i2c引脚,在高速缆线1806(例如,因为i2c信号可在第一vgi互连1842和第二vgi互连,或第一vgi互连1850和第二vgi互连1852上被传达)上也不需要i2c引脚。因此,第一vgi互连1842和第二vgi互连1844可被用于传达vgi信号(例如,vgi消息和/或vgii/o)和/或i2c(或i3c)信号。相反,图15到17的配置需要2个以上互连以容适此类vgi信号和i2c(或i3c)信号的传达。

还应注意,在一般使用中,缆线1806中的第一vgi接口1834可将它从设备a1802中的vgi接口1830接收的虚拟gpio和隧穿i2c信号转发给第二vgi接口1836。第二vgi接口1836可将虚拟gpio和隧穿i2c信号转发给第三vgi接口1838,第三vgi接口1838可将虚拟gpio和隧穿i2c信号传递给第四vgi接口1840。第四vgi接口1840可将虚拟gpio和隧穿i2c信号转发给设备a’1804中的vgi接口1832。类似的端到端消息接发针对从设备a’1804到设备a1802的信号流发生。然而,存在信令旨在针对第一vgi接口1834或第四vgi接口1840的情景。例如,设备a1802可能需要轮询设备b1808以获取缆线1806的缆线特性。为了这样做,设备a1802通过vgi接口1830传达给第一vgi接口1834。类似地,设备a’1804可能需要通过第四vgi接口1840轮询设备b’1810。一般来说,寻址将是必要的以向第一vgi接口1834(或第四vgi接口1840)指示信号是否应该被转发。然而,在一方面,如本文中所揭示的vgi接口的寄存器映射架构使得能够在没有地址头部的情况下实现多跳隧穿。

没有协议合并的链路选择

图19解说了在没有协议合并的情况下实现动态数据链路选择的架构1900。如图19中所示,架构1900包括在缆线端1990处耦合至第二设备1904的第一设备1902。例如,第一设备1902可以是主机设备,诸如主机soc处理器,并且可包括耦合至i2c知识产权(ip)块1916的vgi接口1906。在此种方面,vgi接口1906可包括vgiip块1908、vgi串行化器/解串器模块1914和开关1918。例如,开关1918可被实现为复用器。在一方面,第二设备1904可以是外围设备且可对应于位于图18中缆线1806的缆线端a处的设备c1826。在此种方面,vgi接口1906可对应于图18中的vgi接口1830,vgi接口1942可对应于图18中的vgi接口1834,而i2c外围设备1940可对应于图18中的设备b1808。

i2cip块1916可通过i2c互连1920和1922传达i2c信号。例如,i2c互连1922可以是i2c数据线而i2c互连1920可以是i2c时钟线。vgiip块1908可将信号1932传送给vgi串行化器/解串器模块1914,该vgi串行化器/解串器模块1914随后可通过互连1928串行地传送信号1932。vgi串行化器/解串器模块1914可通过互连1926串行地接收信号并且可将收到的信号1930(例如,在解串收到的信号1930之后)传送给vgiip块1908。如图19中所示,互连1920、1922、1926和1928耦合至开关1918。如图19中所进一步示出的,vgiip块1908可包括耦合至开关1918的链路选择器1912和链路监视器1910。链路选择器1912可提供控制信号1934,该控制信号1934选择性地将互连1920和1922或互连1926和1928耦合至互连1936和1938。链路监视器1910可被配置成检测i2cip块1916已经生成了任何i2c信号。如果没有在链路监视器1910处检测到i2c信号,则链路监视器1910可控制链路选择器1912以从vgi串行化器-解串器1914中选择经串行化vgi信号。例如,链路监视器1910可控制链路选择器1912以将互连1926耦合至互连1938并将互连1928耦合至互连1936。在一个方面,链路选择器1912可被配置成在i2cip块1916和vgiip块1908两者都需要传送和/或接收信号的情形中执行仲裁。在一方面,可基于预定优先级方案来执行仲裁。在另一方面,可基于在传输期间通过互连1936、1938传送的数据量和/或传输时间量来执行仲裁。

当开关1918被链路选择器1912配置成传达经串行化vgpio信号时,开关1918可如先前关于混合虚拟gpio操作所讨论地来驱动传送引脚1972。在该情形中,开关1918可通过接收引脚1974来接收经串行化虚拟gpio信号。然而,当开关1918被链路选择器1912配置成传达i2c信号时,引脚1972被改变用途作为i2c数据引脚,并且引脚1974被改变用途作为i2c时钟引脚以供i2c信号传输。在此情形中,i2c信号不被隧穿通过虚拟gpio协议,如关于本公开的隧穿方面所讨论的。vgiip块1908处的链路监视器1910可监视多个链路。因此,需要与外部设备(例如,第二设备1904)通信的链路(例如,i2cip块1916或vgiip块1908)可被给予对将第一设备1902与第二设备1904耦合的外部物理互连(包括互连1936和1938的vgi互连)的访问。在一方面,外部物理互连可以是缆线,诸如智能缆线1806,如本文中所述的。在一方面,链路监视器1910可从开关1918接收信号1924,并且可基于所分配的量和/或时间来跟踪数据传递。可领会,包括互连1936和1938的vgi接口可支持一个以上协议,而无需协议合并,由此降低了架构1900的复杂性。

在图19的方面中,第二设备1904可以是外围设备并且可包括耦合至i2cip块1952的vgi接口1942。在此种方面,并且类似于vgi接口1906,vgi接口1942可包括vgiip块1944、vgi串行化器/解串器模块1950和开关1954。vgiip块1944可包括链路选择器1946和链路监视器1948。例如,开关1954可被实现为复用器。在一方面,i2cip块1952可向和从i2c外围1940传送和接收i2c信号。例如,vgi接口1942可按与先前描述的vgi接口1906类似的方式来操作。相应地,vgi接口1942可动态地配置开关1954以供通过互连1936、1938与vgi互连1906传达恰适信号(例如,vgpio信号或i2c信号)。

图20解说了根据本公开的各种方面在没有协议合并的情况下实现动态数据链路选择的架构2000。在图20的方面中,先前描述的第一设备1902耦合至缆线端2004。如图20中所示,缆线端2004包括i2c外围设备2040和i2cip块2052。应注意,在图20的方面中,缆线端2004不包括vgi接口。因此,可领会,vgi接口1906可经由互连1936、1938与不包括vgi接口的缆线传达i2c信号(例如,与i2c外围设备2040)。

具有协议合并的链路桥接

图21解说了用协议合并实现链路桥接的架构2100。如图21中所示,架构2100包括第一设备2102和第二设备2104。例如,第一设备2102可以是主机设备,诸如主机soc处理器,并且可包括耦合至i2c知识产权(ip)块2112的vgi接口2108。在此种方面,vgi接口2108可包括vgi串行化器/解串器2116、vgi消息寄存器集2120、以及vgii/o寄存器集2124。在一方面,vgi串行化器/解串器2116可访问vgi消息寄存器集2120中的一个或多个寄存器,诸如vgi消息寄存器2122。vgi串行化器/解串器2116还可访问vgii/o寄存器集2124中的一个或多个寄存器,诸如vgii/o寄存器2126。例如,第二设备2104可以是外围设备,并且可包括耦合至i2c知识产权(ip)块2114的vgi接口2110。在此种方面,vgi接口2110可包括vgi串行化器/解串器2118、vgi消息寄存器集2132、以及vgii/o寄存器集2130。在一方面,vgi串行化器/解串器2118可访问vgi消息寄存器集2132中的一个或多个寄存器,和/或vgii/o寄存器2130中的一个或多个寄存器。如图21中所示,第一设备2102的vgi接口2108可经由包括vgi互连2136、2138的vgi接口耦合至第二设备2104的vgi接口2110。

在一个方面,vgi消息寄存器集2120中的一个或多个寄存器可被配置为桥接寄存器,用于传达不同串行总线通信协议的信号(例如,与vgiip块不同的ip块(诸如i2cip块)的信号)。例如,在图21的配置中,vgi接口2108中的vgi桥接寄存器2128可被映射至vgi接口2110中的vgi桥接寄存器2134。在此种示例中,i2cip块2112可将i2c信号(例如,旨在给i2c外围2106的i2c信号)传递给vgi桥接寄存器2128。相应地,vgi接口2108可检测vgi桥接寄存器2128中的i2c信号,并且可使用vgi通信协议通过vgi互连2136作为vgi串行传输来传送i2c信号。vgi接口2110可接收vgi传输并且可获取i2c信号。vgi接口2110可随后将i2c信号传递给vgi桥接寄存器2134(例如,由于vgi桥接寄存器2128至vgi桥接寄存器2134的映射)。i2cip块2114可检测vgi桥接寄存器2134中的i2c信号并且可将i2c信号传递给i2c外围设备2106。因此,在该方面,不同协议(例如,i2c通信协议)的信号可在统一的vgi通信协议上被合并。

类似地,i2cip块2114可从i2c外围2106接收i2c信号(例如,旨在给i2cip块2112的i2c信号)并且可将该i2c信号传递给vgi桥接寄存器2134。vgi接口2110可检测vgi桥接寄存器2134中的i2c信号,并且可使用vgi通信协议通过vgi互连2138作为vgi串行传输来传送i2c信号。vgi接口2108可接收vgi串行传输并且可获取i2c信号。vgi接口2108可随后将i2c信号传递给vgi桥接寄存器2128(例如,由于vgi桥接寄存器2128至vgi桥接寄存器2134的映射)。i2cip块2112可检测vgi桥接寄存器2128中的i2c信号并且可接收该i2c信号。因此,在该方面,不同协议(例如,i2c协议)的信号可在统一的vgi通信协议上被合并。在一方面,第二设备2104和i2c外围设备2106可被配置在缆线端2144处。例如,缆线端2144可对应于图18中的缆线1806的缆线端a。

图22示出了具有多跳消息接发的pci-sig边带信令的架构2200。如图22中所示,架构2200包括经由缆线2209耦合至第二设备2208的第一设备2202。在一个示例中,第一设备2202可以是主机设备,诸如主机soc处理器,并且可包括vgi接口2210。在此种示例中,第二设备2208可以是外围设备并且可包括vgi接口2220。缆线2209可以是包括第一重定时器2204和第二重定时器2206的智能缆线。

在一种示例情形中,第一设备2202(图22中也称为根复合体)可获取要被传送给第二设备2208(图22中也称为端点)的边带信号。第一设备2202可在源路由寻址消息中经由vgi接口2210向第二设备2208传送这些边带信号。第一重定时器2204可被配置成在vgi接口2212处从vgi接口2210接收消息。vgi接口2212可将该消息传递给vgi接口2214,vgi接口2214随后可以充分的信号质量将该消息传送给第二重定时器2206以确保在第二重定时器2206处适当接收。第二重定时器2206可在vgi接口2216处接收该消息并且可将该消息传递给vgi接口2218。vgi接口2218可将消息传送给第二设备2208的vgi接口2220。第二设备2208随后可从收到消息中获取边带信号。

以上描述的源路由寻址消息办法可能是复杂的,并且可基于该源路由寻址消息必须通过以到达目的地(例如,端点或端节点)的跳跃的数量而受限制。例如,在以上关于架构2200描述的示例中,从第一设备2202传送给第二设备2208的源路由寻址消息必须采用5跳(如图22中所示)以到达第二设备2208。因此,在该情形中可能需要使用涉及11比特地址段的源路由寻址方案。在一方面,笛卡尔寻址方案可被实现以允许在vgi网络内进行无地址表消息传递。

图23解说了根据本公开的各种方面的示例vgi接口2302。如图23中所示,vgi接口2302可包括vgi串行化器/解串器2306、vgi消息寄存器集2312、以及vgii/o寄存器集2318。在一方面,vgi串行化器/解串器2306可(例如,经由总线2308)访问vgi消息寄存器集2312中的一个或多个寄存器,诸如vgi消息寄存器2314。在一方面,vgi消息寄存器中的一个或多个寄存器可被指定为vgi隧穿寄存器(例如,vgi隧穿寄存器2316)。vgi串行化器/解串器2306还可(例如,经由总线2310)访问vgii/o寄存器集2318中的一个或多个寄存器,诸如vgii/o寄存器2320。如图23中所示,vgi接口2302可通过耦合至传送引脚2324的第一vgi互连2322传送vgi信号,并且可通过耦合至接收引脚2328的第二vgi互连2326接收vgi信号。

图24是根据本公开的各种方面的用于实现多跳链路隧穿的示例寄存器映射架构2400。如图24中所示,架构2400包括耦合至第二设备2408的第一设备2402。在一个示例中,第一设备2402可以是主机设备,诸如主机soc处理器,并且可包括vgi接口2410。在此种示例中,第二设备2408可以是外围设备并且可包括vgi接口2420。

在一方面,第一设备2402可通过重定时器2404和2406向第二设备2408传达消息(例如,vgi消息)。在一方面,重定时器2204和2206可被安装在缆线(例如,智能缆线)中以提供重定时,诸如先前描述的图18中的缆线1806。如图24中所示,重定时器2204可包括vgi接口2412、2414,而重定时器2204可包括vgi接口2416、2418。在一方面,vgi接口2410、2412、2414、2416、2418和2420中的每一者可类似于先前描述的图23的vgi接口2302。相应地,在此种方面中,图24中的数据路径2436、2438、2440、2442和2444中的每一者可包括第一和第二vgi互连(例如,第一vgi互连2322和第二vgi互连2326)。

在一方面,将从vgi接口2410(也称为根复合体)经由端对端多跳隧穿来传送给vgi接口2420(也称为端点)的消息(例如,经隧穿i2c消息)可由vgi接口2410写到vgi隧穿寄存器2424。每个vgi接口(诸如vgi接口2412)可将其vgi隧穿寄存器(例如,vgi隧穿寄存器2426)中的比特(或数比特)的存在识别为要将其vgi隧穿寄存器中的相应消息转发给下一vgi隧穿寄存器(例如,vgi隧穿寄存器2428)的命令。高速缆线一端处的重定时器2404向在该高速缆线相对端的重定时器2406传送。由于在其隧穿寄存器中的指示,vgi接口2416将其vgi隧穿寄存器2430中的消息转发给vgi接口2418处的vgi隧穿寄存器2432。vgi接口2418随后可将该消息转发给vgi接口2420处的vgi隧穿寄存器2434。在vgi接口2410处的消息旨在给中间站(例如,从第一设备2402到vgi接口2416)的情景中,与vgi接口2416相关联的节点标识符可随该消息一起被传送。在任一情形中,没有显式寻址方案是必要的。注意,该协议合并并不限于vgi链路上的i2c消息的隧穿。相同的协议合并可被广泛地应用于使用消息接发信号(诸如uart、spi等)的其它协议。第一示例性设备和方法

图25是解说根据本公开的至少一个示例的装置2500的组件选集的框图。装置2500包括外部总线接口(或通信接口电路)2502、存储介质2504、用户接口2506、存储器设备2508、i2cip设备2509、以及处理电路2510。处理电路耦合至外部总线接口2502、存储介质2504、用户接口2506、存储器设备2508、以及i2cip设备2509中的每一者或被置于与上述每一者的电通信中。

外部总线接口2502将针对装置2500的各组件的接口提供给外部总线2512。外部总线接口2502可包括例如以下中的一者或多者:信号驱动器电路、信号接收器电路、放大器、信号滤波器、信号缓冲器、或用于与信令总线或其它类型的信令介质接口的其它电路系统。在一方面,外部总线2512可包括两个物理互连线(例如,图18中示出的第一vgi互连1842和第二vgi互连1844)用于传送和接收vgi信号和/或i2c信号。

处理电路2510被布置成获取、处理和/或发送数据、控制数据访问和存储、发布命令、以及控制其它期望操作。在至少一个示例中,处理电路2510可包括适配成实现由恰适介质提供的期望编程的电路系统。在一些实例中,处理电路2510可包括适配成在实现或不实现编程的情况下执行期望功能的电路系统。通过示例,处理电路2510可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行编程和/或执行期望功能的其它结构。处理电路2510的示例可包括通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中所描述的功能的任何组合。通用处理器可包括微处理器,以及任何常规的处理器、控制器、微控制器、或状态机。处理电路2510还可被实现为计算组件的组合,例如以下组合:dsp与微处理器、数个微处理器、与dsp核心协同的一个或多个微处理器、asic和微处理器、或任何其它数量的变化配置。处理电路2510的这些示例是用于解说并且本公开范围内的其它适合配置也是构想了的。

处理电路2510被适配成用于处理,包括执行可被存储到存储介质2504上的编程。如本文所使用的,术语“编程”或“指令”应当被宽泛地解释成包括但不限于指令集、指令、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。

在一些实例中,处理电路2510可包括以下中的一者或多者:数据检测电路/模块2514、数据传输确定电路/模块2516、物理互连线配置电路/模块2518、数据传送电路/模块2520、所传送数据量和传输时间确定电路/模块2522、物理互连线重配置电路/模块2524、或数据接收电路/模块2525。

数据检测电路/模块2514可包括适配成检测要使用串行总线通信协议传送给第一设备的第一数据或要使用虚拟通用输入/输出通信协议传送给第二设备的第二数据中的至少一者的电路系统和/或指令(例如,存储在存储介质2504上的数据检测指令2526)。在一方面,图19中的链路监视器1910可使用数据检测电路/模块2514来实现。例如,第一数据可包括i2c信号集,而第二数据可包括虚拟通用输入/输出信号集。在一方面,数据检测电路/模块2514可被配置成监视第一通信模块以监视第一数据的传输尝试,并且监视第二通信模块以监视第二数据的传输尝试。例如,第一通信模块可以是i2cip块(例如,图19中的i2cip块1916),而第二通信模块可以是vgiip块(例如,图19中的vgiip块1908)。

数据传输确定电路/模块2516可包括适配成确定是要传送第一数据还是第二数据的电路系统和/或指令(例如,存储介质2504上存储的数据传输确定指令2528)。在一方面,数据传输确定电路/模块2516可基于优先级设置来确定要通过物理互连线传送第一数据还是第二数据。例如,优先级设置可指示允许在任何第一数据(例如,i2c信号)之前传送任何第二数据(例如,vgi信号)。

物理互连线配置电路/模块2518可包括适配成基于该确定来将耦合至集成电路的物理互连线配置成用于串行总线通信协议或虚拟通用输入/输出通信协议的电路系统和/或指令(例如,存储介质2504上存储的物理互连线配置指令2530)。在一方面,物理互连线配置电路/模块2518可通过将包括第一数据的第一通信模块或包括第二数据的第二通信模块中的一者耦合至物理互连线来配置物理互连线。在一方面,该物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线中。例如,物理互连线配置电路/模块2518可被实现为开关(例如,图19中的开关1918),诸如复用器。

数据传送电路/模块2520可包括适配成通过物理互连线使用串行总线通信协议将第一数据传送给第一设备或使用虚拟通用输入/输出通信协议将第二数据传送给第二设备的电路系统和/或指令(例如,存储介质2504上存储的数据传送指令2532)。例如,该物理互连线可以是图19中的互连1936。

所传送的数据量和传输时间确定电路/模块2522可包括适配成确定在传输期间通过物理互连传送的数据量或传输时间量中的至少一者的电路系统和/或指令(例如,存储介质2504上存储的所传送数据量和传输时间确定指令2534)。

物理互连线重配置电路/模块2524可包括适配成当数据量超过第一阈值时或当时间量超过第二阈值时将耦合至集成电路的物理互连线重配置成用于串行总线通信协议或虚拟通用输入/输出通信协议的电路系统和/或指令(例如,存储介质2504上存储的物理互连线重配置指令2536)。例如,物理互连线重配置电路/模块2524可将控制信号提供给物理互连线配置电路/模块2518以达成重配置。例如,此种控制信号可类似于控制信号1934(先前关于图19描述的),该控制信号1934选择性地将互连1920和1922或互连1926和1928耦合至图19中的互连1936和1938。

数据接收电路/模块2525可包括适配成通过物理互连线使用串行总线通信协议从第一设备接收第三数据或使用虚拟通用输入/输出通信协议从第二设备接收第二数据的电路系统和/或指令(例如,存储介质2504上存储的数据接收指令2538)。例如,第一设备可以是位于缆线(例如,缆线1806)中的将主机设备(例如,设备a1802)耦合至远程设备(例如,设备a’1804)的存储器设备(例如,图18中的设备b1808)。在此种示例中,该物理互连线(例如,第一vgi互连1842)的至少一部分可被配置在缆线(例如,缆线1806)中,并且第三数据可被存储在第一设备中。第三数据可包括与该缆线相关联的配置数据并且可作为i2c信号被接收。

存储介质2504可表示用于存储编程、电子数据、数据库、或其它数字信息的一个或多个处理器可读设备。存储介质2504也可被用于存储由处理电路2510在执行编程时操纵的数据。存储介质2504可以是可由处理电路2510访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含和/或携带编程的各种其它介质。作为示例而非限定,存储介质2504可包括处理器可读存储介质,诸如磁存储设备(例如,硬盘、软盘、磁条)、光学存储介质(例如,压缩盘(cd)、数字通用盘(dvd))、智能卡、闪存设备(例如,卡、棒或钥匙驱动器)、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器、可移动盘、和/或用于存储编程的其他介质,以及其任何组合。因此,在一些实现中,存储介质可以是非瞬态(例如,有形)存储介质。

存储介质2504可被耦合至处理电路2510,以使得处理电路2510能从存储介质2504读取信息和向存储介质2504写入信息。即,存储介质2504可被耦合至处理电路2510,从而存储介质2504至少可被处理电路2510访问,包括其中存储介质2504被集成于处理电路2510的示例和/或其中存储介质2504与处理电路2510分开的示例。

由存储介质2504存储的编程/指令在被处理电路2510执行时致使处理电路2510执行本文中描述的各种功能和/或处理步骤中的一者或多者。例如,存储介质2504可包括以下中的一者或多者:数据检测指令2526、数据传输确定指令2528、物理互连线配置指令2530、数据传送指令2532、所传送数据量和传输时间确定指令2534、物理互连线重配置指令2536、或数据接收指令2538。因此,根据本公开的一个或多个方面,处理电路2510被适配成执行(协同存储介质2504)针对本文中描述的任何或所有装置的任何或所有过程、功能、步骤、和/或例程。如本文中所使用的,与处理电路2510相关的术语“适配成”可以是指处理电路2510以被配置、采用、实现、和/或编程中的一者或多者的方式(协同存储介质2504)执行根据本文中描述的各种特征的特定过程、功能、步骤和/或例程。

存储器设备2508可表示一个或多个存储器设备并且可包括以上列出的任何存储器技术或任何其它适合的存储器技术。存储器设备2508可存储由装置2500的一个或多个组件使用的信息。存储器设备2508也可被用于存储由处理电路2510或装置2500的一些其它组件操纵的数据。在一些实现中,存储器设备2508和存储介质2504被实现为共用存储器组件。

用户接口2506包括使用户能与装置2500交互的功能性。例如,用户接口2506可与一个或多个用户输出设备(例如,显示器设备等)以及一个或多个用户输入设备(例如,键盘、触觉输入设备等)交互。

考虑到以上,将协同图26的流程图来更详细地描述根据所揭示方面的操作的示例。出于便利起见,图26的操作(或本文中讨论或教导的任何其它操作)可被描述为由指定的组件来执行。然而应领会,在各种实现中,这些操作可由其它类型组件来执行并且可使用不同数量的组件来执行。还应领会,本文中描述的一个或多个操作可不在给定实现中被采用。

图26是解说由集成电路(例如,vgi接口1902或处理电路2510)在没有协议合并的情况下实现动态数据链路选择的方法的流程图2600。应理解,图26中用虚线表示的操作代表可任选操作。

该集成电路检测要使用串行总线通信协议(例如,i2c或i3c)传送给第一设备的第一数据或要使用虚拟通用输入/输出通信协议传送给第二设备的第二数据中的至少一者(2602)。该集成电路确定是要传送第一数据还是第二数据(2604)。该集成电路基于该确定来将耦合至该集成电路的物理互连线配置成用于串行总线通信协议或虚拟通用输入/输出通信协议(2606)。该集成电路通过该物理互连线使用串行总线通信协议将第一数据传送给第一设备或使用虚拟通用输入/输出通信协议将第二数据传送给第二设备(2608)。该集成电路确定在传输期间通过该物理互连传送的数据量或传输的时间量中的至少一者(2610)。当数据量超过第一阈值时或当时间量超过第二阈值时,该集成电路将耦合至该集成电路的该物理互连线重配置成用于串行总线通信协议或虚拟通用输入/输出通信协议(2612)。该集成电路通过物理互连使用串行总线通信协议从第一设备接收第三数据或使用虚拟通用输入/输出通信协议从第二设备接收第四数据(2614)。

在一方面,配置物理互连线包括将包括第一数据的第一通信模块(例如,i2cip块)或包括第二数据的第二通信模块(例如,vgiip块)中的一者耦合至该物理互连线。在一方面,是基于优先级设定来确定要通过该物理互连线传送第一数据还是第二数据。在一方面,该物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线(例如,缆线1806)中。在一方面,第一数据包括i2c信号集,而第二数据包括虚拟通用输入/输出信号集。在一方面,该检测包括监视第一通信模块(例如,i2cip块)以监视第一数据的传输尝试并且监视第二通信模块(例如,vgiip块)以监视第二数据的传输尝试。在一方面,第一设备是位于将主机设备耦合至远程设备的缆线中的存储器设备,其中物理互连线的至少一部分被配置在该缆线中,并且其中第三数据被存储在第一设备中并包括与该缆线相关联的配置数据。

第二示例性设备和方法

图27是解说根据本公开的至少一个示例的装置2700的组件选集的框图。装置2700包括外部总线接口(或通信接口电路)2702、存储介质2704、用户接口2706、存储器设备2708、i2cip设备2709、以及处理电路2710。处理电路被耦合至外部总线接口2702、存储介质2704、用户接口2706、存储器设备2708、以及i2cip设备2709中的每一者或被置于与上述每一者的电通信中。

外部总线接口2702将针对装置2700的各组件的接口提供给外部总线2712。外部总线接口2702可包括,例如以下中的一者或多者:信号驱动器电路、信号接收器电路、放大器、信号滤波器、信号缓冲器、或用于与信令总线或其它类型的信令介质接口的其它电路系统。

外部总线接口2702将针对装置2700的各组件的接口提供给外部总线2712。外部总线接口2702可包括,例如以下中的一者或多者:信号驱动器电路、信号接收器电路、放大器、信号滤波器、信号缓冲器、或用于与信令总线或其它类型的信令介质接口的其它电路系统。在一方面,外部总线2712可包括两个物理互连线(例如,图21中示出的vgi互连2136、2138)以用于传送和接收vgi信号。

处理电路2710被布置成获取、处理和/或发送数据、控制数据访问和存储、发布命令、以及控制其它期望操作。在至少一个示例中,处理电路2710可包括适配成实现由恰适介质提供的期望编程的电路系统。在一些实例中,处理电路2710可包括适配成在实现或不实现编程的情况下执行期望功能的电路系统。通过示例,处理电路2710可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行编程和/或执行期望功能的其它结构。处理电路2710的示例可包括通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中所描述的功能的任何组合。通用处理器可包括微处理器,以及任何常规的处理器、控制器、微控制器、或状态机。处理电路2710还可被实现为计算组件的组合,例如以下组合:dsp与微处理器、多个微处理器、与dsp核心协同的一个或多个微处理器、asic和微处理器、或任何其它数量的可变配置。处理电路2710的这些示例是用于解说并且本公开范围内的其它适合配置也是可构想的。

处理电路2710被适配成用于进行处理,包括执行可被存储到存储介质2704上的编程。如本文所使用的,术语“编程”或“指令”应当被宽泛地解释成包括但不限于指令集、指令、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。

在一些情形中,处理电路2710可包括以下中的一者或多者:数据获取电路/模块2714、数据存储电路/模块2716、或数据传送电路/模块2718。

数据获取电路/模块2714可包括适配成获取被配置成使用串行总线通信协议(例如,i2c或i3c)传送给第一设备的第一数据以及获取被配置成使用虚拟通用输入/输出通信协议传送给第二设备的第二数据的电路系统和/或指令(例如,存储介质2704上存储的数据获取指令2720)。例如,第一数据可包括i2c信号集,而第二数据可包括虚拟通用输入/输出信号集。在一方面,第一设备是位于将主机设备耦合至远程设备的缆线中的存储器设备,并且该物理互连线的至少一部分被配置在该缆线中。

数据存储电路/模块2716可包括适配成将第一数据存储在与串行总线通信协议相关联的第一消息寄存器(例如,vgi桥接寄存器2128)中的电路系统和/或指令(例如,存储介质2504上存储的数据存储指令2722)。第一消息寄存器被映射至第二设备处的第二消息寄存器(例如,vgi桥接寄存器2134),并且第二消息寄存器与串行总线通信协议相关联。数据存储电路/模块2716可进一步包括适配成将第二数据存储到与虚拟通用输入/输出通信协议相关联的第一寄存器(例如,vgii/o寄存器2126)中的电路系统和/或指令。第一寄存器被映射至第二设备处的第二寄存器(例如,vgii/o寄存器2150),并且第二寄存器与虚拟通用输入/输出通信协议相关联。

数据传送电路/模块2718可包括被适配成使用虚拟通用输入/输出通信协议通过物理互连线(例如,vgi互连2136)将第一数据传送给第二设备处的第二消息寄存器,以及使用虚拟通用输入/输出通信协议通过该物理互连线将第二数据传送给第二设备处的第二寄存器的电路系统和/或指令(例如,存储介质2704上存储的数据传送指令2724)。在一方面,第一数据在与虚拟通用输入/输出通信协议相关联的消息中被隧穿至第二消息寄存器。在一方面,数据传送电路/模块2718可通过在第一帧中使用虚拟通用输入/输出信号来传送第一数据,并且可通过在第二帧中使用虚拟通用输入/输出信号来传送第二数据。例如,第一帧包括将第一帧标识为消息接发帧的第一头部,而第二帧包括将第二帧标示为虚拟通用输入/输出帧的第二头部。在一方面,物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线中。

存储介质2704可表示用于存储编程、电子数据、数据库、或其它数字信息的一个或多个处理器可读设备。存储介质2704也可被用于存储由处理电路2710在执行编程时操纵的数据。存储介质2704可以是可由处理电路2710访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含和/或携带编程的各种其它介质。作为示例而非限定,存储介质2504可包括处理器可读存储介质,诸如磁存储设备(例如,硬盘、软盘、磁条)、光学存储介质(例如,压缩盘(cd)、数字通用盘(dvd))、智能卡、闪存设备(例如,卡、棒或钥匙驱动器)、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器、可移动盘、和/或用于存储编程的其他介质,以及其任何组合。因此,在一些实现中,存储介质可以是非瞬态(例如,有形)存储介质。

存储介质2704可被耦合至处理电路2710,以使得处理电路2710能从存储介质2704读取信息和向存储介质2704写入信息。即,存储介质2704可被耦合至处理电路2710,从而存储介质2704至少可被处理电路2710访问,包括其中存储介质2704被集成于处理电路2710的示例和/或其中存储介质2704与处理电路2710分开的示例。

由存储介质2704存储的编程/指令在被处理电路2710执行时致使处理电路2710执行本文中描述的各种功能和/或处理步骤中的一者或多者。例如,存储介质2704可包括以下中的一者或多者:数据获取指令2720、数据存储指令2722、或数据传送指令2724。因此,根据本公开的一个或多个方面,处理电路2710被适配成执行(协同存储介质2704)针对本文中描述的任何或所有装置的任何或所有过程、功能、步骤、和/或例程。如本文中所使用的,与处理电路2710相关的术语“适配成”可以是指处理电路2710以被配置、采用、实现、和/或编程中的一者或多者的方式(协同存储介质2704)执行根据本文中描述的各种特征的特定过程、功能、步骤和/或例程。

存储器设备2708可表示一个或多个存储器设备并且可包括以上列出的任何存储器技术或任何其它适合的存储器技术。存储器设备2708可存储由装置2700的一个或多个组件使用的信息。存储器设备2708也可被用于存储由处理电路2710或装置2700的一些其它组件操纵的数据。在一些实现中,存储器设备2708和存储介质2704被实现为共用存储器组件。

用户接口2706包括使用户能与装置2700交互的功能性。例如,用户接口2706可与一个或多个用户输出设备(例如,显示器设备等)以及一个或多个用户输入设备(例如,键盘、触觉输入设备等)交互。

考虑到以上,将协同图28的流程图来更详细地描述根据所揭示方面的操作的示例。出于便利起见,图28的操作(或本文中讨论或教导的任何其它操作)可被描述为由特定组件来执行。然而应领会,在各种实现中,这些操作可由其它类型组件来执行并且可使用不同数量的组件来执行。还应领会,本文中描述的一个或多个操作可不在给定实现中被采用。

图28是解说针对集成电路(例如,vgi接口2108或处理电路2710)以在具有协议合并的情况下实现链路桥接的方法的流程图2800。应理解,图28中用虚线表示的操作代表可任选操作。

集成电路获取被配置成用于使用串行总线通信协议(例如,i2c、i3c、或系统管理总线(sm总线))传送给第一设备(例如,i2c外围设备)的第一数据(2802)。集成电路将第一数据存储到与串行总线通信协议相关联的第一消息寄存器中,其中第一消息寄存器被映射至第二设备处的第二消息寄存器,第二消息寄存器与串行总线通信协议相关联(2804)。集成电路使用虚拟通用输入/输出通信协议通过物理互连线将第一数据传送给第二设备处的第二消息寄存器(2806)。集成电路获取被配置成使用虚拟通用输入/输出通信协议传送给第二设备(例如,设备a’1804)的第二数据,其中第一数据包括i2c信号集,而第二数据包括虚拟通用输入/输出信号集(2808)。集成电路将第二数据存储到与虚拟通用输入/输出通信协议相关联的第一寄存器中,其中第一寄存器被映射至第二设备处的第二寄存器,第二寄存器与虚拟通用输入/输出通信协议相关联(2810)。集成电路使用虚拟通用输入/输出通信协议通过物理互连线将第二数据传送给第二设备处的第二寄存器(2812)。

在一方面,第一数据在与虚拟通用输入/输出通信协议相关联的消息中被隧穿至第二消息寄存器。在一方面,传送第一数据包括在第一帧中使用虚拟通用输入/输出信号来传送第一数据,其中传送第二数据包括在第二帧中使用虚拟通用输入/输出信号来传送第二数据。在一方面,第一帧包括将第一帧标识为消息接发帧的第一头部,而第二帧包括将第二帧标示为虚拟通用输入/输出帧的第二头部。在一方面,该物理互连线的至少一部分被配置在将主机设备耦合至远程设备的缆线中。在一方面,第一设备是位于将主机设备耦合至远程设备的缆线中的存储器设备,其中该物理互连线的至少一部分被配置在该缆线中。

第三示例性设备和方法

图29是解说根据本公开的至少一个示例的装置2900的组件选集的框图。装置2900包括外部总线接口(或通信接口电路)2902、存储介质2904、用户接口2906、存储器设备2908、以及处理电路2910。处理电路2910耦合至外部总线接口2902、存储介质2904、用户接口2906、以及存储器设备2908中的每一者或被置于与上述每一者的电通信中。

外部总线接口2902将针对装置2900的各组件的接口提供给外部总线2912。外部总线接口2902可包括,例如以下中的一者或多者:信号驱动器电路、信号接收器电路、放大器、信号滤波器、信号缓冲器、或用于与信令总线或其它类型的信令介质接口的其它电路系统。

处理电路2910被布置成获取、处理和/或发送数据、控制数据访问和存储、发布命令、以及控制其它期望操作。在至少一个示例中,处理电路2910可包括适配成实现由恰适介质提供的期望编程的电路系统。在一些实例中,处理电路2910可包括适配成在实现或不实现编程的情况下执行期望功能的电路系统。通过示例,处理电路2910可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行编程和/或执行期望功能的其它结构。处理电路2910的示例可包括通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中所描述的功能的任何组合。通用处理器可包括微处理器,以及任何常规的处理器、控制器、微控制器、或状态机。处理电路2910还可被实现为计算组件的组合,例如以下组合:dsp与微处理器、数个微处理器、与dsp核心协同的一个或多个微处理器、asic和微处理器、或任何其它数量的变化配置。处理电路2910的这些示例是用于解说并且本公开范围内的其它适合配置也是构想了的。

处理电路2910被适配成用于进行处理,包括执行可被存储到存储介质2904上的编程。如本文所使用的,术语“编程”或“指令”应当被宽泛地解释成包括但不限于指令集、指令、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。

在一些情形中,处理电路2910可包括以下中的一者或多者:数据获取电路/模块2914、数据存储电路/模块2916、数据传送电路/模块2918、或节点标识符获取电路/模块2920。

数据获取电路/模块2914可包括适配成获取被配置成用于使用虚拟通用输入/输出通信协议传送给第二设备的第一数据的电路系统和/或指令(例如,存储介质2904上存储的数据获取指令2926)。在一方面,数据获取电路/模块2914可进一步获取被配置成使用虚拟通用输入/输出通信协议传送给一个或多个中间设备中的中间设备的第二数据。在一方面,该装置通过缆线耦合至第二设备。

数据存储电路/模块2916可包括适配成将第一数据存储到该装置处的第一消息隧穿寄存器(例如,vgi隧穿寄存器2424)中的电路系统和/或指令(例如,存储介质2904上存储的数据存储指令2928)。在一方面,数据存储电路/模块2916可将第二数据存储到第一消息隧穿寄存器中。

数据传送电路/模块2918可包括适配成使用虚拟通用输入/输出通信协议将第一数据传送给第二设备处的第二消息隧穿寄存器的电路系统和/或指令(例如,存储介质2904上存储的数据传送指令2930)。在一方面,第一数据由位于该缆线中的一个或多个中间设备(例如,重定时器2404、2406)转发,直到第一数据在第二消息隧穿寄存器(例如,vgi隧穿寄存器2434)处被接收到。在一方面,数据传送电路/模块2918可进一步使用虚拟通用输入/输出通信协议将第二数据和节点标识符传送给该中间设备(例如,重定时器2406)处的第三消息隧穿寄存器(例如,vgi隧穿寄存器2430)。在此种方面中,第二数据可由位于该缆线中的该一个或多个中间设备(例如,重定时器2404)转发,直到第二数据在与该节点标识符相关联的中间设备(例如,重定时器2406)处被接收到。

节点标识符获取电路/模块2920可包括适配成获取与该中间设备相关联的节点标识符的电路系统和/或指令(例如,存储介质2904上存储的节点标识符获取指令2932)。

存储介质2904可表示用于存储编程、电子数据、数据库、或其它数字信息的一个或多个处理器可读设备。存储介质2904也可被用于存储由处理电路2910在执行编程时操纵的数据。存储介质2904可以是可由处理电路2910访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含和/或携带编程的各种其它介质。作为示例而非限定,存储介质2504可包括处理器可读存储介质,诸如磁存储设备(例如,硬盘、软盘、磁条)、光学存储介质(例如,压缩盘(cd)、数字通用盘(dvd))、智能卡、闪存设备(例如,卡、棒或钥匙驱动器)、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器、可移动盘、和/或用于存储编程的其他介质,以及其任何组合。因此,在一些实现中,存储介质可以是非瞬态(例如,有形)存储介质。

存储介质2904可被耦合至处理电路2910,以使得处理电路2910能从存储介质2904读取信息和向存储介质2904写入信息。即,存储介质2904可被耦合至处理电路2910,从而存储介质2904至少可被处理电路2910访问,包括其中存储介质2904被集成于处理电路2910的示例和/或其中存储介质2904与处理电路2910分开的示例。

由存储介质2904存储的编程/指令在被处理电路2910执行时致使处理电路2910执行本文中描述的各种功能和/或处理步骤中的一者或多者。例如,存储介质2904可包括以下中的一者或多者:数据获取指令2926、数据存储指令2928、数据传送指令2930、或节点标识符获取指令2932。因此,根据本公开的一个或多个方面,处理电路2910被适配成执行(协同存储介质2904)针对本文中描述的任何或所有装置的任何或所有过程、功能、步骤、和/或例程。如本文中所使用的,与处理电路2910相关的术语“适配成”可以是指处理电路2910以被配置、采用、实现、和/或编程中的一者或多者的方式(协同存储介质2904)执行根据本文中描述的各种特征的特定过程、功能、步骤和/或例程。

存储器设备2908可表示一个或多个存储器设备并且可包括以上列出的任何存储器技术或任何其它适合的存储器技术。存储器设备2908可存储由装置2900的一个或多个组件使用的信息。存储器设备2908也可被用于存储由处理电路2910或装置2900的一些其它组件操纵的数据。在一些实现中,存储器设备2908和存储介质2904被实现为共用存储器组件。

用户接口2906包括使用户能与装置2900交互的功能性。例如,用户接口2906可与一个或多个用户输出设备(例如,显示器设备等)以及一个或多个用户输入设备(例如,键盘、触觉输入设备等)交互。

考虑到以上,将协同图30的流程图来更详细地描述根据所揭示方面的操作的示例。出于便利起见,图30的操作(或本文中讨论或教导的任何其它操作)可被描述为由特定组件来执行。然而应领会,在各种实现中,这些操作可由其它类型组件来执行并且可使用不同数量的组件来执行。还应领会,本文中描述的一个或多个操作可不在给定实现中被采用。

图30是解说由集成电路(例如,vgi接口2410或处理电路2910)在不使用寻址的情况下实现多跳链路隧穿的方法的流程图3000。应理解,图30中用虚线表示的操作代表可任选操作。

集成电路获取被配置成使用虚拟通用输入/输出通信协议传送给第二设备的第一数据,其中该集成电路通过缆线耦合至第二设备(3002)。集成电路将第一数据存储到该集成电路处的第一消息隧穿寄存器中(3004)。集成电路使用虚拟通用输入/输出通信协议将第一数据传送给第二设备处的第二消息隧穿寄存器,其中第一数据由位于缆线中的一个或多个中间设备转发,直到第一数据在第二消息隧穿寄存器处被接收到(3006)。集成电路获取被配置成使用虚拟通用输入/输出通信协议传送给该一个或多个中间设备中的中间设备的第二数据(3008)。该集成电路将第二数据存储到该集成电路处的第一消息隧穿寄存器中(3010)。该集成电路获取与中间设备相关联的节点标识符(3012)。该集成电路使用虚拟通用输入/输出通信协议将第二数据和节点标识符传送给该中间设备处的第三消息隧穿寄存器,其中第二数据由位于该缆线中的该一个或多个中间设备转发,直到第二数据在与该节点标识符相关联的中间设备处被接收到(3014)。

本文中揭示的各方面提供了一个物理链路上的诸特异接口操作,诸如没有协议合并的链路选择和具有协议合并的链路桥接。因此,此类方面允许具有或不具有协议合并的操作。本文中揭示的各方面可避免在pci-sig缆线互连中使用复杂的源路由方案。可领会,尽管在vgi和pci-sig的上下文中解说了本文中描述的各方面,但它们可适用于其它类似和/或相关协议和总线技术。如本文中所讨论的,所公开的各方面克服了旧式数据链路支持的问题,而同时消除了维持旧式数据链路所需的物理引脚。一个示例包括在许多高速物理链路(诸如pci缆线)中使用基于i2c的eeprom以存储缆线参数。本文中揭示的各方面消除了对主机设备和缆线上的专用i2c接口引脚的需要,而同时在vgi链路上兼并了这些引脚的接口功能性。可领会,本文中揭示的各方面可适用于必须在共用互连上支持两种或更多种类型的物理链路(在该电平处共享某个程度的信令相似性)的任何其它情景。此外,以上描述的办法可降低总的设计复杂性。

应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。可基于设计偏好来重新编排这些过程中各步骤的具体次序或层次。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。

如本申请中所使用的,术语“组件”、“模块”、“系统”等旨在包括计算机相关实体,诸如但不限于硬件、固件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行件、执行线程、程序和/或计算机。作为说明,在计算设备上运行的应用和计算设备两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且可将组件局部化在一个计算设备上和/或分布在两个或更多计算设备之间。另外,可从其上存储了各种数据结构的各种计算机可读介质来执行这些组件。各组件可藉由本地和/或远程过程,诸如根据具有一个或多个数据分组的信号(诸如来自与本地系统、分布式系统中的另一实体、和/或跨网络(诸如因特网)交互的一个组件的数据)通过该信号与其它系统通信。

此外,术语“或”旨在表示包含性“或”而不是排他性“或”。也就是说,除非另有规定或从上下文中清楚知道的,否则术语“x利用a或b”旨在表示任何自然的包容性置换。即,术语“x利用a或b”由以下实例中的任何实例来满足:x采用a;x采用b;或x采用a和b。此外,本申请中和所附权利要求书所使用的冠词“一”和“某”一般应解释为“一个或多个”,除非另有指定或从上下文将清楚是指单数形式。

提供先前描述是为了使本领域任何技术人员均能够实践本文中所述的各个方面。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是“一个或多个”。本公开通篇描述的各个方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于…的装置”来明确叙述的。

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