CN108027792B - 用于芯片间和芯片内节点通信的统一系统和方法 - Google Patents
用于芯片间和芯片内节点通信的统一系统和方法 Download PDFInfo
- Publication number
- CN108027792B CN108027792B CN201680052466.3A CN201680052466A CN108027792B CN 108027792 B CN108027792 B CN 108027792B CN 201680052466 A CN201680052466 A CN 201680052466A CN 108027792 B CN108027792 B CN 108027792B
- Authority
- CN
- China
- Prior art keywords
- node
- gateway
- nodes
- state
- bus
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004891 communication Methods 0.000 title claims abstract description 39
- 230000008859 change Effects 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims description 12
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 230000001413 cellular effect Effects 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000002618 waking effect Effects 0.000 claims 1
- 239000004744 fabric Substances 0.000 abstract description 4
- 230000009471 action Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 208000007944 Nodular Nonsuppurative Panniculitis Diseases 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/4027—Coupling between buses using bus bridges
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
公开了用于芯片间和芯片内节点通信的统一系统和方法。在一个方面,提供了在计算设备内连接这些芯片中的每一者的单个统一低速总线。这些芯片通过物理层接口及相关联的网关来耦合到该总线。该网关包括存储概述接口织构中每个节点的状态的状态表的存储器。随着节点经历状态变化,这些节点向相关联的本地网关提供更新。这些本地网关随后使用侦察消息来向远程网关通报与状态变化相关的信息。当第一节点正在准备给第二节点的信号时,第一节点检查相关联的本地网关处的状态表来确定第二节点的当前状态。基于第二节点的状态,第一节点可以发送该消息或采取其他恰适的动作。
Description
优先权申请
本申请要求于2015年9月10日提交的题为“UNIFIED SYSTEMS AND METHODS FORINTERCHIP AND INTRACHIP NODE COMMUNICATION(用于芯片间和芯片内节点通信的统一系统和方法)”的美国专利申请序列号14/850,104的优先权,该申请通过援引全部纳入于此。
背景
I.公开领域
本公开的技术一般涉及用于促成计算设备内的节点之间的通信的结构和方法。
II.背景
计算设备在当代社会已变得普遍。计算设备的盛行部分地是通过在此类计算设备上启用的不断增加的大批功能来推动的。增加的功能性通过更快的处理器、更大更快的存储器元件、以及包括配置成执行特定任务的专门的集成电路(IC)来实现。历史上,随着新功能或新IC被添加到计算设备,总线被用来允许与该新功能相关联的(诸)节点与该计算设备的其他节点进行通信。该总线可遵循现有低速标准(诸如通用异步接收机/发射机(UART)、集成电路间(I2C)、串行外围接口(SPI))、或现有高速标准(诸如外围组件互连(PCI)、快速PCI(PCIe)、通用串行总线(USB))等的规则。
虽然现有标准适于某些特定的预期目的,但是根据不同标准工作的总线的激增使得设备设计变得困难,因为每个总线的导电元件必须按遵循特定设计准则的方式来布线和/或遵循电磁干扰(EMI)发射限制或电磁兼容性(EMC)标准(例如,诸如由联邦通信委员会(FCC)颁布的那些标准)。在使用多个各种协议时,还可能需要支持不同协议之间的协议转换。此类转换要求增添了IC的复杂度。根据由不同标准设定的不同休眠/苏醒规则工作的节点可能使各节点之间的通信进一步复杂化。可在每条总线上发送时钟信号,这可能增加遵循EMI发射限制或EMC标准上的困难。再进一步,如果IC被耦合到多个总线,则该IC可能具有不同接口,其中每个耦合一个接口。此类接口在计算设备内可能是重复的,消耗IC内的空间,并且使计算设备的设计变得困难。即使当总线在IC内部(例如,片上系统网络(SNOC))时,也可能要求多个物理层和协议层,这些层中的每一者都增添了设计复杂度。
即使设计者能够协调在计算设备中包括各种总线的竞争要求,设计者仍面临着协调芯片内通信与芯片间通信的困难。即使设计者能够解决路由芯片内和芯片间通信两者的问题以及控制EMI的问题,确保各种元件苏醒以接收通信的问题仍然存在。相应地,仍然存在对允许单个IC内的节点之间以及分开的IC上的各节点之间的可靠通信的一致的节点到节点通信系统的需求。
公开概述
详细描述中公开的各方面包括用于芯片间和芯片内节点通信的统一系统和方法。在一示例性方面,提供了连接计算设备内的这些芯片中的每一者的单个统一低速总线(有时被称为外部总线或芯片间总线)。这些芯片通过物理层接口及相关联的网关来耦合到该总线。该网关包括存储概述接口织构中每个节点的状态的状态表的存储器。状态表在系统初始化时初始地被填充。随着节点经历状态变化,这些节点向相关联的本地网关提供更新。本地网关随后使用侦察消息来向远程网关通报与状态变化相关的信息。以此方式,每个网关都具有经更新的状态表,可以对此经更新的状态表进行涉及该网络中任何节点的状态的参考。当第一节点正在准备给第二节点的信号时,第一节点检查相关联的本地网关处的状态表来确定第二节点的当前状态。基于第二节点的状态,第一节点可以发送消息、扣留消息、随唤醒命令发送、或采取其他恰适的动作。通过将所有低速总线合并成具有单个统一物理层接口的单个统一总线,计算设备的集成电路(IC)内的空间就不被用于重复的物理层接口,不需要不必要地重复的导电元件来连接这些IC,并且布局设计被简化。再进一步,较少总线意味着需要较少时钟信号,这意味着可以降低功耗。设计通过消除支持各种接口块的需求同样被简化。再进一步,确保了软件统一性,这与其中常常需要不同软件和/或桥接软件来在各节点之间发送消息的异构系统形成了对比。
本公开的各示例性方面允许总线在其中网关在所接收到的诸消息中检测到不一致行为的情况下通过操纵仲裁过程来被重新初始化。也就是说,当网关检测到与本网关的内部状态冲突的事件时,该网关在下一仲裁循环期间发送特殊仲裁标识符以保证该网关赢得仲裁。在赢得仲裁之后,该网关随后不发送数据,这强制重置超时。重置超时强制重新初始化,这允许在没有先前检测到的错误的情况下重新填充状态表并恢复消息话务。
就此而言,在一个方面,提供了一种用于填充计算设备内的诸网络节点的状态表的方法。该方法包括:激活耦合到总线的第一IC。该方法还包括:向第一网关注册与第一IC相关联的诸第一节点。该方法还包括:使用关于与第一IC相关联的诸第一节点的信息来填充第一网关处的第一状态表。该方法还包括:基于如在第一状态表中所指示的可用性来准许与第一IC相关联的诸第一节点之间的芯片内通信。
在另一方面,提供了一种用于填充计算设备内的诸网络节点的状态表的方法。该方法包括:在计算设备内将具有诸第一节点的第一IC耦合到总线。该方法还包括:在该计算设备内将具有诸第二节点的第二IC耦合到该总线。该方法还包括:从与第一IC相关联的第一网关接收与诸第一节点相关的状态和配置信息。该方法还包括:使用与诸第一节点相关的状态和配置信息来填充与第二IC相关联的第二网关处的状态表。
在另一方面,提供了一种用于更新计算设备内的诸网络节点的状态表的方法。该方法包括:在第一IC中的第一网关处,接收来自该第一IC中的一第一节点的状态变化指示。该方法还包括:响应于该状态变化指示,更新第一网关处的第一状态表以反映该第一节点的状态变化。该方法还包括:生成给第二IC中的第二网关的侦察消息,其中该侦察消息指示该第一节点的状态变化。
在另一方面,提供了一种用于更新计算设备内的诸网络节点的状态表的方法。该方法包括:在第一IC中的第一网关处,接收来自第二IC中的第二网关的侦察消息,其中该侦察消息指示该第二IC中一节点的状态变化。该方法还包括:响应于该侦察消息,更新第一网关处的第一状态表以反映该节点的状态变化。
就此而言,在一方面,提供了一种IC。该IC包括节点。该节点包括发射机和接收机。该IC还包括网关。该网关包括:配置成被耦合到总线并且通过第一协议在其上进行通信的外部接口。该网关还包括:通信地耦合到该节点并配置成通过第一协议在其间进行通信的内部接口。
在另一方面,提供了一种IC。该IC包括第一节点。该IC还包括第二节点。该IC还包括网关。该网关包括:配置成耦合到总线并且操作用于控制来自第一节点和第二节点的信息的外部接口。该IC还包括:将第一节点和第二节点通信地耦合到该网关的共用电路系统。
在另一方面,提供了一种计算系统。该计算系统包括第一IC。该第一IC包括第一节点。该第一节点包括第一发射机和第一接收机。该第一IC还包括第一网关。该第一网关包括第一外部接口。该第一网关还包括:通信地耦合到第一节点并被配置成通过第一协议在其间进行通信的第一内部接口。该计算系统还包括第二IC。该第二IC包括第二节点。该第二节点包括第二发射机和第二接收机。该第二IC还包括第二网关。该第二网包括第二外部接口。该第二网关还包括:通信地耦合到第二节点并被配置成通过第一协议在其间进行通信的第二内部接口。该计算系统还包括:耦合到第一IC的第一网关以及第二IC的第二网关并配置成使用第一协议在其间携带信号的总线。
就此而言,在一方面,提供了一种IC。该IC包括节点。该IC还包括通信地耦合到该节点的网关。该网关包括配置成耦合到总线的接口。该网关还包括:配置成存储涉及与该总线相关联的节点的可用性的数据的查找表。该IC还包括操作地耦合到该节点和该网关的控制系统。该控制系统被配置成接收与该节点的状态相关的状态更新。该控制系统还被配置成向与该总线相关联的其他网关发送与该节点的状态相关的信息以提高节点到节点通信之间的可靠性。
在另一方面,提供了一种用于促成节点到节点通信的方法。该方法包括:接收来自网关处的本地节点的状态更新。该方法还包括:向远程网关广播该状态更新。
在一示例性方面,公开了一种强制系统重置的方法。该方法包括:在仲裁阶段期间,从网关断言最紧急的优先级值以赢得仲裁。该方法还包括:在赢得该仲裁之后,不从该网关发送数据,以强制总线超时。该方法还包括:响应于该总线超时,发起系统重置。
在另一示例性方面,公开了一种IC。该IC包括网关。该网关包括配置成耦合到总线的总线接口。该网关进一步包括控制系统。该控制系统被配置成:在仲裁阶段期间,在该总线上断言最紧急的优先级值以赢得仲裁。该控制系统被进一步配置成:在赢得该仲裁之后,不在该总线上发送数据,以强制总线超时。该控制系统被进一步配置成:响应于该总线超时,发起系统重置。
附图简述
图1是具有用于芯片到芯片通信的多条通信总线和多个协议的示例性常规计算系统的框图;
图2是根据本公开的示例性方面的具有单个外部总线的示例性计算系统的框图;
图3是具有多个节点的第一芯片耦合到具有多个节点的第二芯片的简化框图;
图4是解说在图2的计算系统的初始化期间在网关中填充系统拓扑和状态表的流程图;
图5是根据本公开的示例性方面的示例性系统拓扑和状态表;
图6是示出节点如何向网关进行注册的信号流图;
图7是解说使用由节点状态的变化生成的侦察消息来更新图5的系统拓扑和状态表的流程图;
图8是根据本公开的协议的示例性方面的示例性侦察消息;
图9是一节点与芯片内的第二节点进行通信的信号图;
图10是一节点与第二远程节点进行通信的信号图;
图11是解说根据本公开的协议的各示例性方面的标准消息的结构的表;
图12是根据本公开的示例性方面的仲裁过程的信号图;
图13是继总线上的仲裁之后的总线中止的示例性总线序列;以及
图14是总线中止的替换示例性总线序列,其中总线不具有保持器电路,但是具有线与(wire-AND)仲裁。
详细描述
现在参照附图,描述本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
本详细描述中公开的各方面包括用于芯片间和芯片内节点通信的系统和方法。在一示例性方面,提供了连接计算设备内的这些芯片中的每一者的单个统一低速总线(有时被称为外部总线或芯片间总线)。这些芯片通过物理层接口及相关联的网关来耦合到该总线。该网关包括存储概述接口织构中每个节点的状态的状态表的存储器。状态表在系统初始化时初始地被填充。随着节点经历状态变化,这些节点向相关联的本地网关提供更新。本地网关随后使用侦察消息来向远程网关通报与状态变化相关的信息。以此方式,每个网关都具有经更新的状态表,可以对此经更新的状态表进行涉及网络中任何节点的状态的参考。当第一节点正在准备给第二节点的信号时,第一节点检查相关联的本地网关处的状态表来确定第二节点的当前状态。基于第二节点的状态,第一节点可以发送消息、扣留消息、随唤醒命令发送、或采取其他恰适的动作。通过将所有低速总线合并成具有单个统一物理层接口的单个统一总线,计算设备的集成电路内的空间不被用于重复的物理层接口,不需要不必要地重复的导电元件来连接这些集成电路,并且布局设计被简化。再进一步,较少总线意味着需要较少时钟信号,这意味着可以降低功耗。设计通过消除支持各种接口块的需求同样被简化。再进一步,确保了软件统一性,这与其中常常需要不同软件和/或桥接软件来在各节点之间发送消息的异构系统形成对比。
本公开的各示例性方面允许总线在其中网关在所接收到的诸消息中检测到不一致行为的情况下通过操纵仲裁过程来被重新初始化。也就是说,当网关检测到与本网关的内部状态冲突的事件时,该网关在下一仲裁循环期间发送特殊仲裁标识符以保证该网关赢得仲裁。在赢得仲裁之后,该网关随后不发送数据,这强制重置超时。重置超时强制重新初始化,从而允许在没有先前检测到的错误的情况下重新填充状态表并恢复消息话务。
在讲到本公开的示例性方面之前,参照图1提供了常规计算系统10的简要概览。提供了常规计算系统10的概览,以帮助与本公开的各示例性方面形成对比并解说常规系统的缺点。本公开的示例性方面的讨论在以下参照图2开始。
就此而言,图1是包括第一IC 12的常规计算系统10的框图,第一IC 12可以是应用处理器(在本文中有时被称为“AP”)。第一IC 12可以包括多个子系统14(1)-14(N),其可以包括导航系统(诸如全球导航卫星系统(GNSS)(在本文中有时被称为“Nav”)、调制解调器(诸如用于3G、4G、和/或长期演进(LTE)的蜂窝调制解调器)、传感器子系统、常通处理器(AOP)子系统、音频子系统等。应领会,该多个子系统14(1)-14(N)中的每一个子系统可具有与其相关联的节点(未解说),该节点将该子系统的应用层活动转译到协议栈中的下层以供与其他节点进行通信。常规计算系统10可进一步包括其他IC 16(1)-16(6)。尽管解说了六个其他IC 16(1)-16(6),但是应领会,在常规计算系统10内可存在更多或更少的其他IC(诸如其他IC 16(1)-16(6))。在示例性方面,其他IC 16(1)和16(2)是移动设备调制解调器(MDM),而其他IC 16(4)是近场通信调制解调器(NFCM)(诸如WIFI或BLUETOOTHTM系统)(有时被称为WIFI/BT)。其他IC 16(5)可以是无线编解码器设备(诸如音频或语音编解码器(有时被称为WCD)),而其他IC 16(6)可以是功率管理IC(PMIC)。应领会,第一IC 12和其他IC 16(1)-16(6)中的每一者可以是其自己的安装在常规计算系统10内的印刷电路板(PCB)上的芯片。此类安装可以通过将芯片的引脚插入卡座、将引脚焊接到PCB、或其他技术来完成,这是很好理解的。
继续参照图1,第一IC 12通过通信总线18(1)-18(6)来与其他IC 16(1)-16(6)进行通信。应领会,通信总线18(1)-18(6)中的每一者可以包括根据不同协议操作并具有不同数目的导线的子总线。例如,通信总线18(2)包括双线(2W)快速外围组件互连(PCI)(PCIe)总线、四线(4W)通用异步接收机/发射机(UART)主机控制器接口(UARTHCI)总线、双线UARTBLUETOOTH低能量(UART BLE)总线、以及四线UART移动性/移动辅助无线保真(WiFi)连通性(UART MAWC)总线。其他总线可以符合系统功率管理接口(SPMI)标准、通用输入/输出(GPIO)标准、串行外围接口(SPI)标准、UART地理围栏(UART GF)、UART无线连通性接口、版本2(UARTWCI2)、或其他标准。对于每个总线和/或子总线,芯片可能需要分开的接口,其可能是重复的。应领会,对通信总线18(1)-18(6)中的每一者与所有子总线进行路由可能是复杂的。此外,每个总线中的每根导线都需要引脚或触点,这在商业上很快变得不切实际。再进一步,这些通信总线18(1)-18(6)中的每一者都可充当电磁干扰(EMI)攻击方或EMI受害方,这增添了对通信总线18(1)-18(6)进行路由的复杂度。简而言之,常规计算系统10可被改进。
就此而言,本公开的各示例性方面将计算系统内的诸低速总线合并成单个低速总线并且实现允许在芯片内级别和芯片间级别两者处进行节点到节点通信的协议。此类合并简化了总线的路由,减小了EMI的机会,并且减少了芯片上的引脚计数。此外,此类合并通过使子系统节点及其相应的控制软件依附单个共用应用编程接口(API)来简化整个系统软件,这与异构系统中要求有许多API是相反的。
就此而言,图2解说了具有第一IC 32的示例性计算系统30,第一IC 32可以是应用处理器。第一IC 32可以包括多个子系统(被示为矩形,但未用数字标记)。如以上所提及的,这些子系统可以包括导航子系统、调制解调器子系统、传感器子系统、音频子系统、AOP子系统等。该多个子系统中的每一者具有相关联的节点。由此,第一IC 32具有节点34(1)-34(N)。应领会,节点34(1)-34(N)具有相应的发射机34(1)Tx-34(N)Tx和相应的接收机34(1)Rx-34(N)Rx。计算系统30可进一步包括其他IC 36(1)-36(M)(解说了6个)。外部总线38将第一IC32和其他IC 36(1)-36(M)耦合。在一示例性方面,外部总线38是低速总线。其他IC 36(1)具有在其中的节点40(1)-40(P),其他IC 36(2)具有在其中的节点42,而其他IC 36(3)具有在其中的多个节点44(1)-44(Q)。其他IC 36(1)-36(M)中的又一些其他IC可具有在其中的各个数目的节点(未被显式地标记,但被解说)。同样,应领会,节点40(1)-40(P)、42和44(1)-44(Q)中的每一者具有其自己相应的发射机和接收机(未示出)。第一IC 32包括网关46(在附图中也被标记为“GW”)。网关46包括耦合到节点34(1)-34(N)的内部接口以及耦合到外部总线38的外部接口。类似地,其他IC 36(1)-36(M)包括类似于网关46的相应网关48(1)-48(M)(在附图中也被称为“GW”)。虽然其他总线(诸如USB和PCIe总线)可能仍然存在,但是一般而言,这些总线都是高速总线。如本文中所使用的,低速总线是具有至多达50-100Mbps的速度的总线。作为对比,高速总线处于数百至数千Mbps或Gbps。在一示例性方面,外部总线38的频率可以为57.6MHz,其是许多蜂窝设计中所见的常见的19.2MHz的倍数且有资格作为低速总线。
为了更好地解说节点和网关的某些特征,图3提供了从图2的计算系统30中提取的部分计算系统50的简化框图。部分计算系统50包括具有控制系统51(在附图中被标记为“CS”)的第一IC 32、具有控制系统52(在附图中被标记为“CS”)的其他IC 36(1)、以及将第一IC 32和其他IC 36(1)耦合的外部总线38。外部总线38可以是能够在第一导线上携带时钟信号(SCLK)以及在第二导线上携带数据信号(SDATA)的双线总线。第一IC 32的网关46通过点对点耦合53被直接耦合到节点34(1)-34(N)。如本文中所使用的,此类直接耦合被定义成包括一对一物理连接。虽然可能在节点34(1)-34(N)中的给定节点与网关46之间存在有源和无源元件,但是该连接在不通过网关46的情况下并不通信地连接到第一IC 32中的节点34(1)-34(N)中的任何其他节点。作为对比,其他IC 36(1)的节点40(1)-40(P)诸如通过片上网络(NoC)54来间接地耦合到网关48(1)。虽然图3解说了具有点对点耦合53的第一IC32以及具有NoC 54的其他IC 36(1),但是在一示例性方面,这些系统是互斥的。也就是说,如果第一IC 32具有点对点耦合53,则其他IC 36(1)将同样具有点对点耦合53,而非NoC54。同样,如果其他IC 36(1)具有NoC 54,则第一IC 32将同样具有NoC 54。还注意到,尽管如所解说的控制系统51和52在相应网关46和48(1)内部,但是本公开并不限于此,并且控制系统51和52可以在相应网关46和48(1)之外。
继续参照图3,外部总线38可将第一IC 32和其他IC 36(1)耦合到仲裁时钟管理器(ACM)56。替换地,ACM 58可能存在于其他IC 36(1)(或另一IC,诸如第一IC 32)中。ACM 56或ACM 58的功能是在仲裁期间为外部总线38作为SCLK的源。如以上所提及的,网关46和48(1)包括相应的外部接口60和62以耦合到外部总线38。同样,网关46可以包括内部接口64以耦合到节点34(1)-34(N)。内部接口64可以按需要或按期望为单一元件或多个元件。类似地,网关48(1)可以包括耦合到NoC 54的内部接口66。在一示例性方面,内部接口64可以具有连接到内部节点34(1)-34(N)的一组端口。每个端口具有一组端口逻辑ID寄存器,以使得节点34(1)-34(N)中的一节点可以响应不止一个逻辑节点ID。示例性端口表包含定义以下状况的状态的寄存器:可靠、在线、可唤醒、最大传输单元(MTU)、以及清除发送(CTS)。注意到,可靠性可能是个体逻辑模式的函数,但是网关可以为端口中的所有逻辑节点(例如,在线、可唤醒、MTU、CTS)提供共用参数集。不同实现可对属性进行不同地划分。
图4是解说在图2的计算系统30的初始化期间在网关(例如,网关46或网关48(1)-48(P)中的一者)中对系统拓扑和状态表100(见图5)的填充过程70的流程图。过程70开始于计算系统30激活连接到外部总线38的第一IC 32(框72)。诸第一节点34(1)-34(N)向第一网关46注册(框74)。这种注册可以响应于来自网关46的索求、响应于节点34(1)-34(N)接收到功率、或从另一命令来完成,这是容易理解的。第一网关46使用关于节点34(1)-34(N)的信息来填充系统拓扑和状态表100(见图5)(框76)。在此时间点,芯片内通信(即,节点34(1)-34(N)之间)是可能的(框78),但是网关46阻止芯片间通信。
继续参照图4,在稍晚的某一时间,激活其他IC 36(1)-36(M)中的一者或多者。出于解说的目的,其他IC 36(1)被激活且第二网关48(1)自举(框80)。注意到,如在本文中所使用的,第一和第二是为了便于在元件之间进行辨别而使用的,并且不一定是严格的时间标记。例如,可能其他IC 36(3)可在第一时刻激活,而IC 32随后激活,并且由此该其他IC36(3)对于过程70而言可以是“第一”。其他时间次序也是可能的,这是容易理解的。第二网关48(1)发信号通知第二节点40(1)-40(P)以进行注册(框82)。第二网关48(1)从第一网关46请求与第一网关46相关联的节点34(1)-34(N)的配置数据(框84)。第二节点40(1)-40(P)向第二网关48(1)注册(框86),并且第二网关48(1)填充其自己的系统拓扑和状态表。注意到,虽然在本公开的示例性方面,IC 32和36(1)-36(M)被彼此独立地配置,但是在另一示例性方面,第一网关46可以配置第二网关48(1)。
继续参照图4,第二网关48(1)在外部总线38上发送广播第二节点40(1)-40(P)的状态和属性的侦察消息(框88)。以下参照图8提供了更多关于侦察消息的信息。第一网关46使用关于诸第二节点40(1)-40(P)的信息来更新本地系统拓扑和状态表。第一网关46在外部总线38上向第二网关48(1)发送具有诸第一节点34(1)-34(N)的状态和属性的侦察消息(框90)。第二网关48(1)使用关于诸第一节点34(1)-34(N)的信息来更新本地系统拓扑和状态表。一旦使用关于远程节点的信息来更新系统拓扑和状态表,则芯片间通信就可以根据通信中所涉及的节点的可用性来发生,如以下关于图9和10更详细地解释的。
图5是根据本公开的示例性方面的示例性系统拓扑和状态表100。系统拓扑和状态表100可以包括诸如以下之类的字段:节点地址字段102、“节点存在于内部”字段104、“节点存在于外部”字段106、“节点苏醒”字段108、“允许应消息而苏醒”字段110、“需要可靠递送”字段112、节点清除发送(CTS)状态字段114、以及最大传输单元(MTU)大小字段116。在本公开的示例性方面,系统设计者为所有接收节点确定MTU,以不溢出缓冲器和类似因素。SOC面积与MTU和缓冲器大小之间存在直接关系,因为较大MTU意味着较大缓冲器大小,以及由此较大SOC面积。注意到,字段104、106、108、110和112可以是单个比特或简单的Y/N指示。其他字段102、114和116可以大于单个比特。进一步注意到,字段104和106可被合并成单个字段,其指示内部或外部,或者依赖于节点的位置的互斥性质使用单个指示来指示节点的位置,以及依赖于不存在此类指示来推断缺乏该指示的节点的其他位置(例如,如果仅有“节点存在于内部”字段104,则此处不存在正比特必定指示该节点存在于外部)。
图6是示出在重置或初始化之际节点(例如,节点34(1))如何向网关(例如,网关46)注册的信号流图130。应领会,节点34(1)包括节点硬件(HW)132和节点软件(SW)134。同样,网关46包括网关(在附图中被称为GW)端口管理器140、网关路由表142(例如,系统拓扑和状态表100)、网关外部总线管理器144、以及网关配置SW 146。初始地,硬件或软件命令发起重置。节点34(1)可以在状态寄存器(未解说)中写入重置条件。重置条件可以是冷/子系统硬件重置、网关重置请求、软件重置请求、或调试重置。节点34(1)可以测试以查看网关46是否准备就绪。一旦网关46准备就绪,信号流图130的初始化过程就开始。
继续参照图6,初始地,端口表被解锁且可以通过网关配置SW 146来修改。网关配置SW 146使用信号150来在端口表中写入逻辑节点ID、有效、可靠/不可靠。网关配置SW 146还使用信号152来启用网关46。替换地,网关46被自启用。网关端口管理器140使用信号154来向节点HW 132指示网关46已准备就绪,这使节点HW 132更新网关读取状态寄存器(未解说)。节点HW 132向网关端口管理器140发送节点重置命令156,网关端口管理器140检查端口标志值。该端口标志值应当被设为被禁用。该端口标志值被用来在暖重置的条件下重置端口和路由表。
继续参照图6,网关端口管理器140向节点HW 132发送重置确收(ACK)158。节点HW132向节点SW 134发送节点初始化中断160。同时,网关配置SW 146可以使用信号162来在端口表中写入逻辑节点ID、有效、可靠/不可靠。网关配置SW 146可以由节点初始化中断160来触发。节点HW 132使用命令164来设置自启用比特。节点SW 134向节点HW 132发送启用节点命令166。节点HW 132向网关端口管理器140发送端口CONF命令(有时被称为CMD)168,网关端口管理器140使用端口CONF ACK 170来响应并锁定(写保护或“WP”)端口表,以使得其不能由网关配置SW 146来修改。
继续参照图6,节点HW 132向网关端口管理器140发送RX_MTU CMD 172,网关端口管理器140使用命令174来在网关路由表142中设置本地、有效、可靠、RX_MTU。网关端口管理器140向节点HW 132发送MTU ACK 176。同时,网关路由表142使用命令178来设置每默认值的HDR。节点HW 132向网关端口管理器140发送可唤醒CMD 180,网关端口管理器140使用命令182来在网关路由表142中设置可唤醒/不可唤醒(NW)比特。网关端口管理器140向节点HW132发送唤醒ACK 184。节点HW 132向网关端口管理器140发送CTS CMD 186,网关端口管理器140使用命令188来在网关路由表142中设置CTS比特。网关端口管理器140向节点HW 132发送CTS ACK 190。节点HW 132向网关端口管理器140发送开启/关闭CMD 192,网关端口管理器140使用命令194来在网关路由表142中设置开启/关闭比特。网关端口管理器140向节点HW 132发送开启/关闭ACK 196。节点HW 132向网关端口管理器140发送配置完成(CONFDONE)CMD 198。网关路由表142随后向网关外部总线管理器144发送具有节点状态变化的侦察命令200。网关端口管理器140向节点HW 132发送CONFDONE ACK 202,并且端口表被解锁且可以由网关配置SW 146来修改。针对端口表中的每个节点ID重复信号和命令170-202。节点HW 132结束于向节点SW 134发送节点配置完成中断204。
在一示例性方面,端口应当在动态创建逻辑节点ID的情形中维持要使用的节点的状态。这允许节点的状态(诸如被启用(在线)、开启/关闭、可唤醒、Rx_MTU、以及CTS)在逻辑节点ID被创建时继承端口的状态。注意到,逻辑节点ID可以通过设置或改变逻辑节点ID值来被动态地创建。网关中的端口跟踪所有可能逻辑节点ID及其状态。作为示例,物理节点可以具有带ID a、b、c和d的四个逻辑节点。改变条件导致在ID e处动态创建新的逻辑节点(及其参数)。这样做,逻辑节点e替代逻辑节点a。在创建之后,逻辑节点的网关列表被更新为b、c、d和e。逻辑节点a的参数可以按期望被保持在节点软件中。
图7是解说使用由节点状态的变化生成的侦察消息来更新图5的系统拓扑和状态表100的流程图。具体而言,过程220开始于节点34(1)在正常操作期间改变状态(框222)。例如,节点34(1)可以进入睡眠模式。第一网关46获悉节点34(1)的状态变化(框224)。节点34(1)可以在状态变化之前抢先向网关46通知这种状态变化;网关46可以周期性地轮询节点34(1)-34(N)以寻找状态变化,或者可以按需要或按期望使用其他技术。在获悉状态变化之后,第一网关46更新本地系统拓扑和状态表100(框226)。
继续参照图7,第一网关46跨外部总线38来发送广播本地系统拓扑和状态表100中的变化的侦察消息(框228)。第二网关48(1)接收侦察消息(框230)并更新其本地系统拓扑和状态表100(框232)。
图8是根据本公开的协议的示例性方面的示例性侦察消息250。侦察消息250可以包括以下字段:空闲字段252、开始字段254、侦察标识符字段256、版本(“ver”)字段258、优先级字段260、切换字段262、消息报头264、以及一至四个侦察命令266(仅解说了一个命令)。切换字段262结束侦察消息250的仲裁阶段并开始数据阶段。
在所有系统拓扑和状态表100被填充并更新之后,图2的计算系统30的节点可以彼此通信以实行计算系统30的更高级功能。就此而言,图9是节点34(1)与第一IC 32内的第二节点34(2)进行通信的信号图270。节点34(1)向网关46发送消息请求272。消息请求272可以包括诸如可靠性要求之类的属性。网关46检查是否要求可靠性(信号274)。如果不要求可靠性,则网关46指令节点34(1)发送消息(信号276),并且节点34(1)发送消息278。
继续参照图9,如果要求可靠性,则网关46检查系统拓扑和状态表100以查看目的地节点34(2)是否可用(信号280)。如果表100指示目的地节点34(2)可用(信号282),则网关46指令节点34(1)发送消息(信号284),并且节点34(1)发送消息278。
继续参照图9,如果要求可靠性且目的地节点34(2)不可用且不可唤醒(信号286),则网关46指令节点34(1)扣留或丢弃该消息(信号288)。
继续参照图9,如果要求可靠性且目的地节点34(2)不可用但是可唤醒(信号290),则网关46向目的地节点34(2)发送唤醒命令292。目的地节点34(2)发送唤醒确认(信号294),并且网关46指令节点34(1)发送消息(信号296)。节点34(1)发送消息278。
通过检查系统拓扑和状态表100,确保了消息传递的可靠性。改进的可靠性允许节省带宽,因为较少消息被重发。即使在节点具有不同功率域、不同时钟域、和/或不同可唤醒性参数的情况下也实现这种可靠性。
虽然信号图270讨论了芯片内节点到节点通信,但是图10是节点34(1)与远程IC上的第二远程节点40(1)(诸如其他IC 36(1)-36(M)中的一者)进行通信的信号图310。节点34(1)向网关46发送消息请求312。消息请求312可以包括诸如可靠性要求之类的属性。网关46检查是否要求可靠性(信号314)。如果不要求可靠性,则网关46指令节点34(1)发送消息(信号316),并且节点34(1)跨外部总线38向远程目的地节点40(1)发送消息318。
继续参照图10,如果要求可靠性,则网关46检查系统拓扑和状态表100以查看远程目的地节点40(1)是否可用(信号320)。基于先前已被发送以提供计算系统30中的所有节点的状态的侦察消息,表100应当是当前的。如果表100指示远程目的地节点40(1)可用(信号322),则网关46指令节点34(1)发送消息(信号324),并且节点34(1)跨外部总线38向远程目的地节点40(1)发送消息318。
继续参照图10,如果要求可靠性且远程目的地节点40(1)不可用且不可唤醒(信号326),则网关46指令节点34(1)扣留或丢弃消息(信号328)。
继续参照图10,如果要求可靠性且远程目的地节点40(1)不可用但是可唤醒(信号330),则网关46跨外部总线38向远程目的地节点40(1)发送唤醒命令332。远程目的地节点40(1)跨外部总线38发送唤醒确认(信号334),并且网关46指令节点34(1)发送消息(信号336)。节点34(1)发送消息318。
为了帮助说明外部总线38上所使用的新协议,图11是解说根据本公开的协议的各示例性方面的标准消息的结构的表350。标准消息可以具有诸如以下之类的字段:标准或侦察(Std_or_Scout)352、版本354、优先级等级356、退避比特358、节点子ID 360、时钟切换362、循环冗余校验(CRC)存在364、HDR模式366、目的地节点ID 368、长度370、有效载荷372、CRC 374、以及总线停放376。虽然标准消息的其他结构和/或布置是可能的,但是图11中所解说的结构适用于本公开的各示例性方面。
图12是根据本公开的示例性方面的仲裁过程400的信号图。为了有助于说明外部总线38上所使用的新协议,提供了仲裁过程400。虽然其他仲裁过程是可能的,但是仲裁过程400适用于本公开的各示例性方面。仲裁过程400在前一序列时段的结束402之后并且在总线空闲时段404之后开始。在总线空闲时段404期间,SCLK是休眠的,SDATA也是。仲裁阶段406开始于仲裁开始408,其在一个(或多个)芯片在SDATA线上发起请求时开始。在检测到消息发起时,仲裁序列410开始,并且ACM 58驱动SCLK(在412处标示)。各个请求网关根据它们相应的消息优先级来驱动SDATA(一般在414处),并且优先级建立起来。一旦建立了优先级,时钟切换时段416就开始,在其后胜出网关驱动SCLK(在418处标示)并且在数据阶段422中提供恰适的SDATA(在420处标示)。
在仲裁阶段406,多个网关46和48(1)-48(M)可以通过传送唯一性消息优先级值来争用对外部总线38的接入。外部总线38被配置成使得在不止一个网关46和48(1)-48(M)在仲裁阶段406期间传送时,最紧急的优先级值超驰具有不那么紧急的优先级值的网关46和48(1)-48(M)。为了达成这个优先级方案,首先使用最高有效位(MSB)传送消息优先级值,并且所有网关46和48(1)-48(M)都感测外部总线38以确认它们刚刚输出给外部总线38的比特是外部总线38的实际值。无论何时只要网关46和48(1)-48(M)中的一者检测到不等于该网关刚刚传送的值的比特值,该网关就退避并且不尝试传送该消息优先级值的后续比特。胜出网关是检测到其消息优先级值的所有比特被正确地传送了(即,诸优先级比特未被网关46和48(1)-48(M)中的另一网关先占)的网关。胜出网关被准予在数据阶段422期间传送其消息的许可。在网关完成传送其消息之后,外部总线38返回到空闲状态,其中网关46和48(1)-48(M)中的任一者能够请求对外部总线38的接入。
当网关46和48(1)-48(M)中的一者检测到其内部状态中的不可恢复的错误时,该网关可以发送将导致系统范围重置发生的唯一性总线接入请求。该唯一性总线接入请求被称为总线错误中止序列。为了实现总线错误中止序列,仲裁过程中最紧急的优先级值被保留以用于传送总线错误中止序列。在一示例性方面,取决于计算系统30中对消息优先级值的指派,该优先级值可以为全1或全0。总线错误中止序列可以由网关46和48(1)-48(M)中的任一者传送,并且准许网关46和48(1)-48(M)中的不止一者同时传送总线错误中止序列。应领会,通过将最紧急的优先级值用于总线错误中止序列,的确传送了总线错误中止序列的网关46和48(1)-48(M)将赢得仲裁阶段406。(诸)胜出网关随后在数据阶段422中不传送任何数据。因为所有(诸)胜出网关都不传送任何数据,所以不存在争用,即使在仲裁阶段406中存在平局。数据阶段422中消息的缺乏将最终触发网关46和48(1)-48(M)中的每一者中的重置定时器,这导致系统错误并使所有网关46和48(1)-48(M)被重置。在一示例性方面,在网关46和48(1)-48(M)中的每一者处确定系统错误。网关46和48(1)-48(M)可以具有第二定时器,其防止它们重启,直到网关46和48(1)-48(M)中的最慢者有机会检测到冻结的外部总线38,因此网关46和48(1)-48(M)中的最慢者也能内部地声明重置条件。
在图13中提供了反映刚刚描述的系统重置的信号图500。信号图500类似于图12的仲裁过程400的信号图,因为仲裁过程400在前一序列时段402的结束之后并且在总线空闲时段404之后开始。在总线空闲时段404期间,SCLK是休眠的,SDATA也是。仲裁阶段406开始于仲裁开始408,其在一个芯片在SDATA线上发起消息时开始。在检测到消息发起时,仲裁序列410开始,并且ACM 58驱动SCLK(在412处标示)。请求网关在SDATA线上断言数据414’,并且优先级建立起来。如所解说的,数据414’以非归零反相(NRZI)格式编码,其中值变化为1,而值无变化为0。传送相应的优先级值的网关46和48(1)-48(M)将通过驱动转变以改变外部总线38的状态来传送逻辑1,并随后变为高阻抗状态。如果没有网关主动驱动外部总线38,则使用保持器电路(未解说)将外部总线38上的信号保持在其当前状态,以使得外部总线38被保持在当前逻辑状态。网关46和48(1)-48(M)中的一者通过不改变外部总线38的状态来发送逻辑0。使用这种方法,逻辑1将优先于逻辑0。网关46和48(1)-48(M)中的正在发送总线错误中止序列的任何网关正在传送最紧急的优先级值,并且由此没有其他更高优先级值可以存在,因此网关46和48(1)-48(M)中的正在传送总线错误中止序列的任何网关将赢得仲裁阶段406。因为传送最紧急的优先级值的所有网关46和48(1)-48(M)正在外部总线38上断言相同值,所以不存在关于争用的问题。
继续参照图13,在已经赢得了仲裁阶段406的情况下,胜出网关在数据阶段422期间不传送数据502。同样,胜出网关将SCLK驱动为0(在504处标示)直到在时间506总线超时条件发生。检测到总线超时条件使系统重置,如先前所指示的。
类似地,图14解说了总线错误中止序列的信号图600,其中外部总线38实现线与(wire-AND)功能。也就是说,外部总线38具有上拉电阻器(未解说),而非保持器电路,并且全0优先级值是最紧急的值(一般在414”处标示)。逻辑0由网关46和48(1)-48(M)中将外部总线38拉低的一者传送,而逻辑1由网关46和48(1)-48(M)中不驱动外部总线38的一者传送。如果没有网关驱动外部总线38,则上拉电阻器将外部总线38拉至逻辑1。然而,如所解说的,网关46和48(1)-48(M)中的至少一者断言最紧急的优先级值并赢得仲裁阶段406。随后,如先前所描述的,(诸)胜出网关在数据阶段422期间不传送数据502,并且将SCLK驱动至0(在504处标示)直到在时间506总线超时条件发生。
根据本文中所公开的各方面的用于芯片间和芯片内通信的接口织构可被提供在或被集成到任何基于处理器的设备中。不构成限定的示例包括:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、智能电话、平板、平板手机、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器,便携式数字视频播放器,以及汽车。
本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其他处理设备执行的指令、或这两者的组合。作为示例,本文中描述的设备可被用在任何电路、硬件组件、IC、或IC芯片中。本文所公开的存储器可以是任何类型和大小的存储器,并且可被配置成存储所期望的任何类型的信息。为了清楚地解说这种可互换性,各种解说性组件、框、模块、电路和步骤在上文已经以其功能性的形式一般性地作了描述。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文所公开的各方面描述的各种解说性逻辑块、模块、以及电路可用被设计成执行本文所描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如DSP与微处理器的组合、多个微处理器、与DSP核协作的一个或多个微处理器、或任何其他此类配置)。
本文中所公开的各方面可被实施在硬件和存储在硬件中的指令中,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中所描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,可组合示例性方面中讨论的一个或多个操作步骤。应理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。
Claims (38)
1.一种用于填充计算设备内的诸网络节点的状态表的方法,所述方法包括:
激活耦合到总线的第一集成电路IC,所述第一IC包括包含处于其内的外部接口和内部接口的第一网关并且具有与所述第一IC相关联的多个第一节点;
向所述第一网关注册与所述第一IC相关联的所述多个第一节点;
使用关于与所述第一IC相关联的所述多个第一节点的信息来填充所述第一网关处的第一状态表;以及
基于如在所述第一状态表中所指示的可用性来准许与所述第一IC相关联的所述多个第一节点之间的芯片内通信,其中基于如在所述第一状态表中所指示的所述可用性来准许与所述第一IC相关联的所述第一节点之间的所述芯片内通信包括:
在所述第一网关处接收从所述第一IC内的初始节点去往所述第一IC内的目的地节点的消息请求;
基于所述第一状态表中关于与所述第一IC相关联的所述多个第一节点的信息来确定所述目的地节点是否可用;以及
在所述目的地节点可用的情况下,指令所述初始节点发送与所述消息请求相关联的消息。
2.如权利要求1所述的方法,进一步包括:
激活耦合到所述总线的第二IC,所述第二IC包括第二网关并且具有相关联的多个第二节点;
向所述第二网关注册与所述第二IC相关联的所述多个第二节点;
使用关于与所述第二IC相关联的所述多个第二节点的信息来填充所述第二网关处的第二状态表;
由所述第二网关请求来自所述第一网关的配置数据;以及
基于来自所述第一网关处的所述第一状态表的关于与所述第一IC相关联的所述多个第一节点的信息来使用关于与所述第一IC相关联的所述多个第一节点的信息来填充所述第二网关处的所述第二状态表。
3.如权利要求2所述的方法,进一步包括:从所述第二网关跨所述总线广播所述第二状态表中所存储的关于与所述第二IC相关联的所述多个第二节点的信息。
4.如权利要求1所述的方法,进一步包括:响应于第一节点改变状态,更新所述第一状态表以反映所述第一节点的改变的状态。
5.如权利要求4所述的方法,进一步包括:
在所述第一网关处使用与所述第一节点的所述改变的状态相关的信息来生成侦察消息;以及
从所述第一网关向通信地耦合到所述总线的远程网关发送所述侦察消息。
6.如权利要求5所述的方法,进一步包括:
在第二网关处接收所述侦察消息;以及
基于所述侦察消息来更新第二状态表。
7.如权利要求1所述的方法,进一步包括:
响应于确定所述目的地节点不可用,确定所述目的地节点是否可唤醒;
响应于确定所述目的地节点可唤醒,向所述目的地节点发送唤醒命令;以及
在唤醒所述目的地节点之后,指令所述初始节点发送与所述消息请求相关联的所述消息。
8.如权利要求1所述的方法,进一步包括:
接收从所述第一IC内的所述初始节点去往第二IC处的目的地节点的所述消息请求;
基于所述第一状态表中关于所述目的地节点的信息来确定所述目的地节点是否可用;以及
在所述目的地节点可用的情况下,指令所述初始节点跨所述总线发送与所述消息请求相关联的所述消息。
9.一种用于填充计算设备内的诸网络节点的状态表的方法,所述方法包括:
在计算设备内将具有多个第一节点的第一集成电路IC耦合到总线,所述第一IC与包括处于其内的第一外部接口和第一内部接口的第一网关相关联;
在所述计算设备内将具有诸第二节点的第二IC耦合到所述总线,所述第二IC包括包含处于其内的第二外部接口和第二内部接口的第二网关;
从所述第一网关接收与所述多个第一节点相关的状态和配置信息;以及
使用与所述多个第一节点相关的所述状态和配置信息来填充与所述第二IC相关联的所述第二网关处的状态表。
10.如权利要求9所述的方法,进一步包括:使用与诸第二节点相关的第二状态和配置信息来填充所述第二网关处的所述状态表。
11.如权利要求9所述的方法,进一步包括:从所述第一网关接收指示所述多个第一节点中的一者的状态变化的更新。
12.如权利要求11所述的方法,进一步包括:使用指示所述多个第一节点中的所述一者的所述状态变化的所述更新来更新所述第二网关处的所述状态表。
13.如权利要求9所述的方法,进一步包括:响应于所述第二IC耦合到所述总线而由所述第二IC请求与所述多个第一节点相关的所述状态和配置信息。
14.一种用于更新计算设备内的诸网络节点的状态表的方法,所述方法包括:
在第一集成电路IC中的包括处于其内的第一外部接口和第一内部接口的第一网关处,接收来自所述第一IC中的第一节点的状态变化指示;
响应于所述状态变化指示,更新所述第一网关处的第一状态表以反映所述第一节点的状态变化;以及
生成给第二IC中的包括处于其内的第二外部接口和第二内部接口的第二网关的侦察消息,其中所述侦察消息指示所述第一节点的所述状态变化。
15.一种用于更新计算设备内的诸网络节点的状态表的方法,所述方法包括:
在第一集成电路IC中的包括处于其内的第一外部接口和第一内部接口的第一网关处,接收来自第二IC中的包括处于其内的第二外部接口和第二内部接口的第二网关的侦察消息,其中所述侦察消息指示所述第二IC中的节点的状态变化;以及
响应于所述侦察消息,更新所述第一网关处的第一状态表以反映所述第二IC中的节点的所述状态变化。
16.一种集成电路IC,包括:节点,其包括发射机和接收机;以及
网关,其包括处于其内的外部接口和内部接口,
所述外部接口被配置成被耦合到外部总线并且通过第一协议在其上进行通信,并且
所述内部接口被通信地耦合到所述节点并被配置成通过所述第一协议在其间进行通信,进一步包括配置成控制所述网关的控制系统,所述控制系统被配置成在所述节点与耦合到所述网关的所述内部接口的一个或多个其他节点之间进行仲裁,所述节点和所述一个或多个其他节点向所述网关进行注册,所述网关包括用于存储包括所述节点和所述一个或多个其他节点的状态的状态表的存储器,并且其中所述控制系统被配置成基于所述状态表进行仲裁。
17.如权利要求16所述的IC,其中,所述节点被直接耦合到所述网关的所述内部接口。
18.如权利要求16所述的IC,其中,所述节点通过片上网络NoC来耦合到所述网关的所述内部接口。
19.如权利要求16所述的IC,其中,所述控制系统位于所述网关内。
20.如权利要求16所述的IC,其中,所述控制系统在所述网关外部。
21.如权利要求16所述的IC,进一步包括耦合到所述网关的所述内部接口的所述一个或多个其他节点。
22.如权利要求16所述的IC,其中,所述控制系统被配置成执行所述第一协议。
23.如权利要求16所述的IC,其中,所述节点被配置成与所述IC内的第二节点进行通信。
24.如权利要求16所述的IC,其中,所述节点被配置成与位于所述IC之外的第二节点进行通信。
25.如权利要求16所述的IC,其中,所述节点包括配置成作为以下各项中的至少一者操作的电路系统:导航电路、传感器电路、常通处理器AOP电路、音频电路、以及调制解调器电路。
26.一种计算系统,包括:
第一集成电路IC,其包括:
第一节点,其包括第一发射机和第一接收机;
第一网关,其包括处于其内的第一外部接口和第一内部接口,所述第一外部接口被配置成耦合到外部总线并且通过第一协议在其上进行通信,并且
所述第一内部接口被通信地耦合到所述第一节点并被配置成通过所述第一协议在其间进行通信,进一步包括配置成控制所述第一网关的控制系统,所述控制系统被配置成在所述第一节点与耦合到所述第一网关的所述第一内部接口的一个或多个其他节点之间进行仲裁,所述第一节点和所述一个或多个其他节点向所述第一网关进行注册,所述第一网关包括用于存储包括所述第一节点和所述一个或多个其他节点的状态的状态表的存储器,并且其中所述控制系统被配置成基于所述状态表进行仲裁;
第二IC,其包括:
第二节点,其包括第二发射机和第二接收机;
第二网关,其包括处于其内的第二外部接口和第二内部接口,所述第二外部接口被配置成耦合到所述外部总线并且通过所述第一协议在其上进行通信,并且所述第二内部接口被通信地耦合到所述第二节点并被配置成通过所述第一协议在其间进行通信,进一步包括配置成控制所述第二网关的控制系统,所述控制系统被配置成在所述第二节点与耦合到所述第二网关的所述第二内部接口的一个或多个其他节点之间进行仲裁,所述第二节点和所述一个或多个其他节点向所述第二网关进行注册,所述第二网关包括用于存储包括所述第二节点和所述一个或多个其他节点的状态的状态表的存储器,并且其中所述控制系统被配置成基于所述状态表进行仲裁;以及
所述外部总线,其被耦合到所述第一IC的所述第一网关以及所述第二IC的所述第二网关并被配置成使用所述第一协议在其间携带信号。
27.如权利要求26所述的计算系统,其中,所述计算系统是选自下组的设备:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、智能电话、平板、平板手机、台式计算机、个人数字助理PDA、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟DVD播放器、便携式数字视频播放器、以及汽车。
28.一种集成电路IC,包括:
节点;
网关,其具有通信地耦合到所述节点并且处于所述网关内的内部接口以及能通信耦合到外部总线并且处于所述网关内的外部接口,所述网关包括:
查找表,其被配置成存储涉及所述节点和与所述外部总线相关联的诸节点的可用性的数据;以及
控制系统,其被操作地耦合到所述节点和所述网关,所述控制系统被配置成:
接收与所述节点的状态相关的状态更新;以及
向与关联于所述外部总线的其他IC相关联的其他网关发送与所述节点的状态相关的信息以提高节点到节点通信之间的可靠性。
29.如权利要求28所述的IC,进一步包括通信地耦合到所述网关的多个节点。
30.如权利要求28所述的IC,其中,所述控制系统位于所述网关内。
31.如权利要求28所述的IC,其中,所述控制系统位于所述网关之外。
32.如权利要求28所述的IC,其中,所述控制系统被进一步配置成:
接收来自所述节点的消息请求;
将来自所述消息请求的目的地标识符与所述查找表进行比较;以及
基于所述查找表中的数据来确定接收节点的可用性。
33.如权利要求32所述的IC,其中,所述控制系统被进一步配置成:在所述控制系统基于所述查找表中的数据确定所述接收节点不可用的情况下阻止从所述节点传送消息。
34.如权利要求28所述的IC,其中,所述控制系统被进一步配置成:
接收来自所述节点的消息请求;
确定所述消息请求是否要求可靠性;以及
在所述消息请求不要求可靠性的情况下,指令所述节点向第二节点发送与所述消息请求相关联的消息。
35.如权利要求32所述的IC,其中,所述控制系统被进一步配置成:
确定所述接收节点的应命令苏醒能力;以及
向所述接收节点发送唤醒命令。
36.如权利要求32所述的IC,其中,配置成确定所述接收节点的可用性的所述控制系统确定所述IC内的接收节点的可用性。
37.如权利要求32所述的IC,其中,配置成确定所述接收节点的可用性的所述控制系统确定位于所述IC之外的接收节点的可用性。
38.如权利要求28所述的IC,其中,所述控制系统被进一步配置成:接收与位于所述IC之外的第二节点的状态相关的远程状态更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/850,104 | 2015-09-10 | ||
US14/850,104 US20170075843A1 (en) | 2015-09-10 | 2015-09-10 | Unified systems and methods for interchip and intrachip node communication |
PCT/US2016/046728 WO2017044247A1 (en) | 2015-09-10 | 2016-08-12 | Unified systems and methods for interchip and intrachip node communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108027792A CN108027792A (zh) | 2018-05-11 |
CN108027792B true CN108027792B (zh) | 2021-08-20 |
Family
ID=56787712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680052466.3A Active CN108027792B (zh) | 2015-09-10 | 2016-08-12 | 用于芯片间和芯片内节点通信的统一系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US20170075843A1 (zh) |
EP (2) | EP4195058B1 (zh) |
JP (1) | JP6845224B2 (zh) |
KR (2) | KR102704511B1 (zh) |
CN (1) | CN108027792B (zh) |
BR (1) | BR112018004715A2 (zh) |
WO (1) | WO2017044247A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170075843A1 (en) | 2015-09-10 | 2017-03-16 | Qualcomm Incorporated | Unified systems and methods for interchip and intrachip node communication |
US10521392B2 (en) | 2017-05-10 | 2019-12-31 | Qualcomm Incorporated | Slave master-write/read datagram payload extension |
US20190227971A1 (en) * | 2018-01-23 | 2019-07-25 | Qualcomm Incorporated | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus |
US11443713B2 (en) * | 2020-01-30 | 2022-09-13 | Apple Inc. | Billboard for context information sharing |
CN113296479B (zh) * | 2020-06-17 | 2024-07-23 | 盒马(中国)有限公司 | 总线入网单元、输送线电气控制系统及部署方法 |
US11675713B2 (en) * | 2021-04-02 | 2023-06-13 | Micron Technology, Inc. | Avoiding deadlock with a fabric having multiple systems on chip |
JP2024120116A (ja) * | 2021-05-10 | 2024-09-04 | 日本たばこ産業株式会社 | エアロゾル生成装置の回路ユニット及びエアロゾル生成装置 |
CN115460128B (zh) * | 2022-11-09 | 2023-07-07 | 之江实验室 | 一种面向多芯粒组合芯片的片上网络仿真系统 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5199106A (en) * | 1986-09-19 | 1993-03-30 | International Business Machines Corporation | Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus |
JPS63211837A (ja) * | 1987-02-27 | 1988-09-02 | Hitachi Ltd | デ−タ伝送制御方式 |
JP2544481B2 (ja) * | 1988-06-20 | 1996-10-16 | 株式会社日立製作所 | 通信制御方式 |
US6157967A (en) | 1992-12-17 | 2000-12-05 | Tandem Computer Incorporated | Method of data communication flow control in a data processing system using busy/ready commands |
US6247161B1 (en) | 1997-01-16 | 2001-06-12 | Advanced Micro Devices, Inc. | Dynamically configured on-chip communications paths based on statistical analysis |
US6173350B1 (en) * | 1997-10-17 | 2001-01-09 | Eveready Battery Company Inc. | System and method for writing data to a serial bus from a smart battery |
US6714994B1 (en) | 1998-12-23 | 2004-03-30 | Advanced Micro Devices, Inc. | Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa |
US6791949B1 (en) * | 2000-04-28 | 2004-09-14 | Raytheon Company | Network protocol for wireless ad hoc networks |
JP2002051055A (ja) * | 2000-08-04 | 2002-02-15 | Sony Corp | 通信制御方法、通信システム及び通信装置 |
US7191271B2 (en) * | 2001-09-20 | 2007-03-13 | Lockheed Martin Corporation | Two level multi-tier system bus |
US7484118B2 (en) | 2003-12-16 | 2009-01-27 | International Business Machines Corporation | Multi nodal computer system and method for handling check stops in the multi nodal computer system |
US7409473B2 (en) | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7751850B2 (en) | 2005-09-01 | 2010-07-06 | Broadcom Corporation | Single chip multimode baseband processing circuitry with a shared radio interface |
US7464225B2 (en) | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
US20070109015A1 (en) * | 2005-11-15 | 2007-05-17 | Alcatel | Switched integrated circuit connection architectures and techniques |
US8189573B2 (en) * | 2005-12-22 | 2012-05-29 | Intel Corporation | Method and apparatus for configuring at least one port in a switch to be an upstream port or a downstream port |
US7945721B1 (en) * | 2006-08-11 | 2011-05-17 | Oracle America, Inc. | Flexible control and/or status register configuration |
JP2009021939A (ja) * | 2007-07-13 | 2009-01-29 | Oki Electric Ind Co Ltd | ノード情報収集システム、ネットワーク装置及びノード |
US9009350B2 (en) | 2008-04-01 | 2015-04-14 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US8140835B2 (en) | 2008-05-09 | 2012-03-20 | International Business Machines Corporation | Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer |
US20090307408A1 (en) | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US20100158005A1 (en) | 2008-12-23 | 2010-06-24 | Suvhasis Mukhopadhyay | System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions |
EP2339795B1 (en) | 2009-12-07 | 2013-08-14 | STMicroelectronics (Research & Development) Limited | Inter-chip communication interface for a multi-chip package |
US8359367B2 (en) | 2010-01-08 | 2013-01-22 | International Business Machines Corporation | Network support for system initiated checkpoints |
US20120166621A1 (en) | 2010-12-23 | 2012-06-28 | Anish Sharma | Sharing the Status of S-CSCF Nodes Across I-CSCF Nodes in a Communications Network |
US8824295B2 (en) | 2011-12-30 | 2014-09-02 | Qualcomm Technologies, Inc. | Link between chips using virtual channels and credit based flow control |
US9264368B2 (en) | 2012-01-27 | 2016-02-16 | Marvell World Trade Ltd. | Chip-to-chip communications |
EP2856690B1 (en) * | 2012-06-01 | 2020-12-02 | BlackBerry Limited | Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems |
US20130339091A1 (en) * | 2012-06-15 | 2013-12-19 | Anthony W. Humay | Intelligent social polling platform |
CN103838698A (zh) * | 2012-11-27 | 2014-06-04 | 鸿富锦精密工业(深圳)有限公司 | I2c总线架构及设备可用性查询方法 |
US9152598B2 (en) | 2012-11-28 | 2015-10-06 | Atmel Corporation | Connecting multiple slave devices to a single master controller in bus system |
US20150120826A1 (en) | 2013-10-28 | 2015-04-30 | Bernd Gauweiler | Node control in a distributed peer-to-peer network |
US9497710B2 (en) * | 2013-11-25 | 2016-11-15 | Qualcomm Incorporated | Multipoint interface shortest pulse width priority resolution |
US20170075843A1 (en) | 2015-09-10 | 2017-03-16 | Qualcomm Incorporated | Unified systems and methods for interchip and intrachip node communication |
-
2015
- 2015-09-10 US US14/850,104 patent/US20170075843A1/en not_active Abandoned
-
2016
- 2016-08-12 BR BR112018004715A patent/BR112018004715A2/pt not_active Application Discontinuation
- 2016-08-12 EP EP23154234.1A patent/EP4195058B1/en active Active
- 2016-08-12 WO PCT/US2016/046728 patent/WO2017044247A1/en active Application Filing
- 2016-08-12 EP EP16754624.1A patent/EP3347823A1/en not_active Ceased
- 2016-08-12 JP JP2018509894A patent/JP6845224B2/ja active Active
- 2016-08-12 KR KR1020187009926A patent/KR102704511B1/ko active IP Right Grant
- 2016-08-12 KR KR1020247022151A patent/KR20240108580A/ko active Application Filing
- 2016-08-12 CN CN201680052466.3A patent/CN108027792B/zh active Active
-
2021
- 2021-06-30 US US17/363,407 patent/US11720512B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP6845224B2 (ja) | 2021-03-17 |
EP4195058B1 (en) | 2024-07-03 |
KR20240108580A (ko) | 2024-07-09 |
JP2018528540A (ja) | 2018-09-27 |
EP4195058A1 (en) | 2023-06-14 |
KR20180050727A (ko) | 2018-05-15 |
US20210326290A1 (en) | 2021-10-21 |
WO2017044247A1 (en) | 2017-03-16 |
EP3347823A1 (en) | 2018-07-18 |
CN108027792A (zh) | 2018-05-11 |
BR112018004715A2 (pt) | 2018-09-25 |
EP4195058C0 (en) | 2024-07-03 |
US11720512B2 (en) | 2023-08-08 |
US20170075843A1 (en) | 2017-03-16 |
KR102704511B1 (ko) | 2024-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027792B (zh) | 用于芯片间和芯片内节点通信的统一系统和方法 | |
US11010327B2 (en) | I3C point to point | |
US10642778B2 (en) | Slave master-write/read datagram payload extension | |
DE112013001661B4 (de) | Apparat, verfahren und system zur bereitstellung eines konsolidierten seitenband kommunikationskanal zwischen geräten | |
US20170255588A1 (en) | Multiprotocol i3c common command codes | |
EP3158698B1 (en) | Systems and methods for providing power savings and interference mitigation on physical transmission media | |
US10838898B2 (en) | Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange | |
US9524265B2 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
CN111052101B (zh) | 低功率PCIe | |
US10579549B2 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
US9128811B2 (en) | Assigning addresses to devices on an interconnect | |
TW202014904A (zh) | I3c上的低等待時間虛擬通用輸入/輸出 | |
US20240251290A1 (en) | Multi-protocol communication network | |
US20180329838A1 (en) | Bus communication enhancement based on identification capture during bus arbitration | |
CN107408092B (zh) | 用于多端口物理层(phy)的锁相环(pll)的共享控制 | |
US20170371830A1 (en) | Accelerated i3c master stop |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |