CN110546922B - 环形网络 - Google Patents

环形网络 Download PDF

Info

Publication number
CN110546922B
CN110546922B CN201780083717.9A CN201780083717A CN110546922B CN 110546922 B CN110546922 B CN 110546922B CN 201780083717 A CN201780083717 A CN 201780083717A CN 110546922 B CN110546922 B CN 110546922B
Authority
CN
China
Prior art keywords
node
message
clock signal
nodes
ring network
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
Application number
CN201780083717.9A
Other languages
English (en)
Other versions
CN110546922A (zh
Inventor
K·S·塔姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Degirum Corp
Original Assignee
Degirum Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Degirum Corp filed Critical Degirum Corp
Publication of CN110546922A publication Critical patent/CN110546922A/zh
Application granted granted Critical
Publication of CN110546922B publication Critical patent/CN110546922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/422Synchronisation for ring networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/437Ring fault isolation or reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0037Delay of clock signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals

Abstract

环形网络架构包括以环形配置的多个通信节点。波状管线(wave pipelining)是用以提供高带宽以及低延迟芯片上通信。每个节点实现源同步时钟计时方案,以使得不需要建立横跨大裸片面积的大规模低偏斜时钟树。单个参考时钟信号是在根节点内产生,并以单向方式经由环形网络的每个节点路由。每个节点包括时间戳计数器以及色彩位寄存器,其即使节点被独立地操作也存储能够使节点以精确的顺序解析由其他节点发布的排序事务消息的值,并以完全不同的定时顺序接收各种事务消息。因为控制逻辑分布在节点之中,所以中央控制器不是必要的。

Description

环形网络
相关申请
本申请要求在2017年11月17日提交的标题为“Distributed ControlSynchronized Ring Network Architecture(分布式控制同步环形网络架构”的美国专利申请第15/816,235号的优先权,并且该申请要求在2016年11月23日提交的标题为“Distributed Control Synchronized Ring Network Architecture(分布式控制同步环形网络架构”的美国临时专利申请第62/425,792号的优先权,并且其通过参考被并入本文。
技术领域
本发明涉及用于实现高带宽和低延迟芯片上(on-chip)通信的改进的环形网络架构。
相关技术
常规的半导体芯片可包括大规模低偏斜时钟树,该大规模低偏斜时钟树将全局时钟信号分配至在芯片上制造的多个电路块中的每一个。时钟树被设计以确保多个电路块中的每一个接收与每个其他电路块相同的输入时钟信号。实现这样的全局时钟树需要广泛的布局(管芯)面积以及相当复杂的互连结构(以实现点对点通信、广播通信、仲裁以及同步)。沿着互连结构包括了管线阶段以维持最小的延迟。此外,需要中央控制器以建立并控制全局时钟树。由于这些结构,全局时钟树消耗大量的功率。
尽管有上述的控制,但时钟偏斜最后可降低全局时钟树的性能。在所有通信代理间的物理距离的变化使得消除该时钟偏斜很困难。
因此会期望具有用于在半导体芯片上实现时钟同步的改进方法以及结构。期望此改进的方法以及结构能够在半导体芯片上提供高频率、低延迟的操作,而不需要中央控制器。进一步期望此改进的方法以及结构具有简单的物理实现,其不需要在半导体芯片的大的面积上使用低偏斜、高功率消耗的时钟树。
发明内容
因此,本发明提供了一种环形网络架构,其中多个通信节点以环形配置。环形网络架构使用波状管线(wave pipelining)以提供高带宽以及低延迟芯片上通信。使用本发明的环形网络架构可达到非常高的操作频率。例如,假设每个通信节点包括在环形网络上转发消息的节点逻辑,其中节点逻辑包括少于12级具有四的扇出(FO4)的逻辑,其中每个逻辑门具有100皮秒(ps)的门延迟。在此情况中,甚至考虑了节点之间的线路延迟,本发明的环形网络架构也能够提供5GHz或更高的数据转移频率。
根据一个实施方式,环形网络的每一个节点实现了源同步时钟计时(clocking)方案,以使得不需要在大的管芯面积上建立大规模的低偏斜时钟树。所需的控制逻辑分布在节点之间,以使得中央控制器不是必须的。由本发明的环形网络架构实现的时钟计时以及控制方案显著地简化了网络的物理实现,同时允许非常高速的操作。
根据一个实施方式,在环形网络的根节点内产生参考时钟信号。该参考时钟信号以单向方式经由环形网络的每一个节点来路由。用参考时钟信号在节点之间传送消息,其中使用相对应的接收到的参考时钟信号将由节点接收的每个消息时钟计时至节点中。环形网络的每个节点包括时间戳计数器以及色彩位寄存器。在每次节点产生并发送原始的排序消息,以及在每次节点接收其非原始产生的经排序的消息时,使用接收到的参考时钟信号来更新每个节点的时间戳计数器。脉冲消息不断地循环通过环形网络的节点,其中每次由节点接收脉冲消息时,脉冲消息切换(toggle)节点的色彩位寄存器。在正常操作之前初始化时间戳计数器以及色彩位寄存器中的每一个,从而使得每个时间戳计数器存储相同的时间戳值,并且每个色彩位寄存器存储相同的色彩位值。即使节点正独立地操作,时间戳值以及色彩位值使每个节点能够以精确的顺序解析由其他节点发布的事务消息,并以完全不同的定时顺序来接收各种事务消息。此能力提供用于仲裁和同步的强大手段。
在一个实施方式中,每个节点将来自其时间戳计数器的时间戳值附加至所产生的每个经排序的消息。每个节点进一步包括存储在环形网络上接收到的经排序的消息的消息监听器。当在节点内切换色彩位时,节点分析存储在消息监听器中的经排序的消息,并将优先权授予具有最久时间戳值的经排序的消息。
本发明的环形网络架构可用于例如在大规模的并行处理器上实现MOSEI(经修改的、自有的、共享的、排除性的、无效的)高速缓存一致性协定存储器总线或通信网络。
鉴于以下描述和附图,将更完全了解本发明。
附图简单说明
图1是根据本发明的一个实施方式的分布式控制同步环形网络的框图。
图2是根据本发明的一个实施方式的图1的分布式控制同步环形网络的根节点的框图。
图3是根据本发明的一个实施方式的图1的分布式控制同步环形网络的分支节点的框图。
图4是根据本发明的一个实施方式的示出当用于以时钟信号来对消息进行源同步传送时图2的根节点部分以及图3的分支节点的框图。
图5是根据本发明的一个实施方式的示出图4的各种信号的源同步定时的波形图。
图6是根据本发明的一个实施方式的示出初始化图1的环形网络的方法的流程图。
图7是根据本发明的一个实施方式的示出实现图6的节点初始化过程方法的方法的流程图。
图8A、图8B、图8C、图8D、图8E、图8F、图8G、图8H以及图8I是根据本发明的一个实施方式的示出在点对点排序消息的传送期间的环形网络的状态。
具体实施方式
图1是根据本发明的一个实施方式的分布式控制同步环形网络100的框图。环形网络100包括根节点N0以及分支节点N1-N5,它们以环形连接。虽然在所描述的示例中包括了六个通信节点N0-N5,但要了解的是,在其他实施方式中可包括其他数量的节点。然而,每个环形网络将包括一个根节点以及一个或多个分支节点。节点N0-N5中的每一个接收相对应的时钟输入信号以及相对应的消息输入信号,并传送相对应的时钟输出信号以及相对应的消息输出信号。环形网络100的信号是单方向的。在所示出的实施方式中,环形网络100的信号以顺时钟的方式路由(虽然这不是必要的)。节点N0-N5中的每一个具有传送相邻节点以及接收相邻节点。例如,分支节点N3包括传送相邻节点N2以及接收相邻节点N4。节点N0、N1、N2、N3、N4以及N5将时钟信号CLK_01、CLK_12、CLK_23、CLK_34、CLK_45以及CLK_50以及相对应的输出消息MSG_01、MSG_12、MSG_23、MSG_34、MSG_45以及MSG_50分别传送至接收相邻节点N1、N2、N3、N4、N5以及N0。时钟信号CLK_01、CLK_12、CLK_23、CLK_34、CLK_45以及CLK_50在环形网络100的时钟路径101上传送,且消息MSG_01、MSG_12、MSG_23、MSG_34、MSG_45以及MSG_50在环形网络100的消息总线102上传送。
图2是根据本发明的一个实施方式的更详细地示出根节点N0的框图。根节点N0包括主时钟发生器201、延迟线202、再同步器205、节点逻辑210、同步器220、消息监听器230、接收先进先出(FIFO)存储器231、传送FIFO存储器232、客户逻辑240、节点识别符(ID)存储器250、色彩位寄存器251、时间戳(TS)计数器255、消息组装器260以及多路复用器265。
一般而言,根节点N0包括在两个时钟域中操作的电路系统,所述两个时钟域包括环形网络时钟域(由参考时钟CK_REF指定)以及客户逻辑时钟域(由本地时钟信号CK0指定)。这些时钟域之间的分界由图2中的虚线270示出。因此,客户逻辑240以及客户逻辑240与色彩位寄存器251、节点ID寄存器250、时间戳计数器255、消息监听器230、接收FIFO 231以及传送FIFO 232之间的转移是在客户逻辑时钟域中执行的。时钟发生器201、延迟线202、再同步器205、节点逻辑210、节点识别符(ID)存储器250、色彩位寄存器251、时间戳(TS)计数器255、消息组装器260以及多路复用器265在环形网络时钟域中操作。此外,到消息监听器230以及接收FIFO 231的写入操作以及从传送FIFO 232的读取操作是在环形网络时钟域中执行的。根据一个实施方式,同步电路220(其接收参考时钟信号CK_REF以及本地时钟信号CK0)使用本技术领域已知的再同步方法来执行环形网络时钟域与客户逻辑时钟域之间的同步。下面更详细地描述了环形网络时钟域以及客户逻辑时钟域的要求。
根节点N0的主时钟发生器201产生环形网络100的参考时钟信号CK_REF。常规的时钟产生电路系统(例如,锁相环电路)可用以产生参考时钟信号CK_REF。在所描述的实施方式中,参考时钟信号CK_REF具有大约5GHz或更高的频率。然而,要了解的是,在其他实施方式中,参考时钟信号CK_REF可具有其他的频率。参考时钟信号CK_REF的频率以及电压可基于环形网络架构的带宽需求以及功率最佳化而按比例缩放。注意,可以以低于正常操作的参考时钟频率来执行设定过程(其描述于下文),使得节点N0-N5之间的线延迟对于设定过程没有影响。注意,根节点N0是包括主时钟发生器201的唯一节点。如下面更详细所述,每一个分支节点N1、N2、N3、N4以及N5响应于由它们的传送相邻节点N0、N1、N2、N3以及N4所发送的相对应时钟信号CLK_01、CLK_12、CLK_23、CLK_34以及CLK_45而操作。即,参考时钟信号CK_REF经由串联的分支节点N0-N5来有效地传送。
根节点N0使用参考时钟信号CK_REF来同步传入消息MSG_50(与传入时钟信号CLK_50一起由传送相邻节点N5发送)。更具体而言,传入消息MSG_50一开始被同步至传送相邻节点N5的网络时钟域。因此,在根节点N0内横跨时钟域的同步是必要的(即,从传送相邻节点N5接收的消息MSG_50必须在根节点N0内与参考时钟信号CK_REF再同步)。在一个实施方式中,响应于传入时钟信号CLK_50,再同步电路205通过将传入消息MSG_50锁存至第一触发器中来执行此再同步操作。响应于参考时钟信号CK_REF,在第一触发器的输出所提供的消息MSG_50然后被锁存至第二触发器。第二触发器提供被提供至节点逻辑210的同步消息MSG_0。响应于参考时钟信号CK_REF,将此经同步的消息MSG_0存储在节点逻辑210中。
图3是更详细示出分支节点N1的框图。在所描述的实施方式中,分支节点N2-N5基本上与分支节点N1相同(虽然这些节点可实现不同的客户逻辑)。分支节点N1包括时钟延迟线302、节点逻辑310、同步电路320、消息监听器330、接收FIFO存储器331、传送FIFO存储器332、客户逻辑340、节点识别符(ID)存储器350、色彩位寄存器351、时间戳(TS)计数器355、消息组装器360以及多路复用器365。注意,上面所列出的分支节点N1的元件类似于根节点N0的相似命名的元件。节点N1的客户逻辑340响应于本地节点时钟域信号CK1而操作。虚线370标出了本地时钟域(CK1)以及该环形网络时钟域(CK_REF)的边界,其中同步电路320提供跨越这些时钟域的通信。注意,分支节点N1不包括与根节点N0的主时钟发生器201或再同步器205等效的电路。即,根节点N0包括环形网络100的唯一主时钟发生器201。
现在将描述从根节点N0至分支节点N1的消息以及时钟信号的源同步传送的时机。注意,在其他节点之间的传送是以与从节点N0传送至节点N1相同的方式执行。
图4是示出节点N0以及N1用于从节点N0传送消息以及时钟信号至节点N1的相关部分的框图,包括节点逻辑210、延迟线202、消息组装器260、多路复用器265、环形网络时钟信号路径101、环形网络消息总线102以及节点逻辑310。图5是根据本发明的一个实施方式的示出图4的各种信号的源同步定时的波形图。
一般而言,节点N0可在两个路径上传送输出消息。在第一路径中,由节点逻辑210接收的消息MSG_0被转发至节点逻辑N1。在此情况中,节点逻辑210确定所接收的消息MSG_0应被转发(例如,确定所接收的消息MSG_0不寻址节点N0),并将消息转发至多路复用器265。多路复用器265被控制以将此消息路由为输出消息MSG_01(该输出消息MSG_01在图4以及图5中被标示为MSG_01)。节点逻辑210以及多路复用器265引入关于参考时钟信号CK_REF的节点延迟DN0
在第二路径中,由客户逻辑240提供的消息MSG_0CL经由传送FIFO 232路由并提供至消息组装器260(响应于参考时钟信号CK_REF)。消息组装器260将所需的信息(例如,来自时间戳计数器250的时间戳值以及来自节点ID存储器350的节点ID值)提供至消息MSG_0CL,并将所得到的消息提供至多路复用器265。多路复用器265被控制以将此消息路由为输出消息MSG_01(该输出消息MSG_01在图4以及图5中被标示为MSG_01)。消息组装器260以及多路复用器265将关于参考时钟信号CK_REF的节点延迟DN0引入至消息MSG_0CL。在一个实施方式中,设计消息组装器260以及节点逻辑210,以使得这些电路将关于参考时钟信号CK_REF的相同(或类似的)延迟分别引入至所接收的消息MSG_0CL以及MSG_0。图5示出了存在于参考时钟信号与所传送的消息MSG_01之间用于消息MSG_0或消息MSG_0CL的节点延迟DN0。
虽然在图4图以及图5的示例中大体上描述了消息MSG_0以及MSG_0CL,但是下面更详细地描述了这些消息(以及有关的消息“类型”,包括广播消息、读取-修改-写入消息、点对点未排序消息以及点对点排序消息)的细节。
因为相对于参考时钟信号CK_REF延迟了所传送的消息MSG_01,因此延迟线202用以将延迟D202添加至参考时钟信号CK_REF,由此产生根节点N0的输出时钟信号CLK_01(在图4以及图5中示为时钟信号CLK_01)。由延迟线202引入的延迟D202经选择以确保时钟信号CLK_01关于从节点N0传送的消息MSG_01具有适当的设定和保持时间。在一个实施方式中,使延迟线202的延迟D202与上述的节点延迟DN0相等。即,使用节点N0的已知的内部延迟将所传送的消息MSG_01同步至输出时钟信号CLK_01。根据一个实施方式,延迟D202是可调整的(例如,可在节点逻辑210和/或客户逻辑240的控制下依需求而延长或缩短)。
注意,在节点N0和N1之间用以实现时钟信号路径101以及消息总线102的结构101D以及102D可展现显著的延迟(例如,缓冲器延迟)。由时钟信号线结构101D以及消息总线结构102D引入的延迟被分别标示为延迟D101以及D102。因此,由节点N1接收的时钟信号CLK_01相对于由节点N0传送的时钟信号CLK_01被延迟了D101。同样地,由节点N1接收的消息MSG_01相对于由节点N0传送的消息MSG_01被延迟了D102。此关系示于图5中。为了维持由节点N0建立的期望的设定和保持时间(当产生CLK_01以及MSG_01时),延迟D101以及D102必须相同。因此非常重要的是,用以实现时钟信号线结构101D以及消息总线结构102D的线路和缓冲器是高度均衡且平衡的,以最小化设定和保持时间损失。即,时钟路径结构101D以及消息总线结构102D应在节点N0以及N1之间提供基本上相同的传送特性,使得所传送的时钟信号CLK_01以及所传送的消息MSG_01的相对相位(phase)被所接收的时钟信号CLK_01以及所接收的消息MSG_01维持在接收节点N1处。
根据上述示例,时钟路径101以及消息总线102作为波状管线系统来操作,其中在消息总线102上传送的消息以源同步方式使用在时钟路径101上传送的时钟信号被锁存至接收节点中。以此方式,以参考时钟信号CK_REF的频率将消息从节点N0传送至节点N1,这允许了从节点N0至节点N1的快速数据传送。在正常操作期间,在节点N0-N5中的每一个节点内的节点逻辑响应于所接收的时钟信号而锁存传入消息(例如,节点逻辑210以及310分别响应于所接收的时钟信号CK_REF以及CLK_01而分别锁存传入消息MSG_0以及MSG_01)。
因为实现了波状管线,时钟信号线结构101D以及消息总线结构102D的线路和缓冲器延迟D101以及D102将不会降低环形网络100的操作频率。注意,波状管线可允许所传送的节点将第一消息发送至接收节点,然后在接收节点已接收第一消息之前将第二消息发送至接收节点。即,可有多个消息在消息总线结构102D上同时从节点N0传播至节点N1。注意,如果参考时钟信号CK_REF的周期(例如,对于5GHz时钟为200ps)小于相邻节点N0以及N1之间的线路/缓冲器延迟D101/D102,那么这可能发生。根据一个实施方式,在每对相邻节点之间的线路/缓冲器延迟D101/D102必须足够长(即,展现最小的延迟),以确保从第一节点(例如,节点N0)传送至相邻的第二节点(例如,节点N1)的第一多个消息不赶上从第二节点(例如,节点N1)传送至相邻的第三节点(例如,节点N2)的第二多个消息。
在一个实施方式中,节点逻辑210以及多路复用器265的门延迟可确定参考时钟信号CK_REF的最大频率。为了最大效率,应使所产生的参考时钟信号CK_REF的周期等于节点延迟DN0。在一个实施方式中,节点逻辑210包括顺序的逻辑(例如,10级的扇出4(FO4)逻辑),其允许参考时钟信号CK_REF具有5GHz或更高的频率。
因为节点逻辑210具有相对简单的设计,可在相对高的频率下执行环形网络的节点N0-N5之间的通信。客户逻辑240典型地包括较复杂的设计,且可在比参考时钟信号CK_REF的频率慢的频率下操作。即,虽然客户逻辑240可在参考时钟信号CK_REF的频率下接收来自环形网络的消息,但客户逻辑240不需要以参考时钟信号CK_REF的频率进行响应。
在一个替代的实施方式中,也可响应于具有相对低频率的参考时钟信号CK_REF来操作环形网络100,其中参考时钟信号CK_REF的周期大于相邻节点之间的线路/缓冲器延迟D101/D102。在此情况中,在传送节点发送下一个消息之前,由节点传送的每个消息由相邻节点接收(并锁存)。在此实施方式中,在相邻节点之间的线路/缓冲器延迟D101/D102对于信号管线不具有影响。在一个实施方式中,参考时钟信号CK_REF在设定阶段期间(在下文中描述)被降低至这样低的频率,但在正常操作期间被增加至高频率(例如,5GHz或更高)。
现在将描述环形网络100的节点N0-N5的设定。
图6是根据本发明的一个实施方式的示出初始化环形网络100的方法的流程图600。如图6的步骤601所示,开始设定过程(例如,通过发起提供至根节点N0的客户逻辑240的“重设”信号)。作为响应,客户逻辑240开始节点初始化过程(步骤602),其中存储在节点N0-N5的节点ID寄存器的节点ID值被初始化,存储在节点N0-N5的色彩位寄存器的色彩位被重设至预定值(例如,“0”),且由节点N0-N5中的每一个节点内的时间戳计数器所存储的时间戳值被重设至预定值(例如,“0”)。如图6的步骤603所示,发起循环经过节点N0-N5中的每一个节点的脉冲消息(例如,通过激活提供至根节点N0的客户逻辑240的“脉冲”信号)。环形网络100的正常操作然后开始(步骤604)。
图7是根据本发明的一个实施方式的示出实现步骤602的节点初始化过程的方法的流程图700。根节点N0是硬接线的,使得节点ID寄存器250存储等于“0”的节点ID值。响应于接收到经激活的“重设”信号,客户逻辑240产生为读取-修改-写入消息的ID_设定消息(步骤701)。此ID_设定消息包括一开始设定为具有“0”的值的节点ID字段(基于由节点N0的节点ID寄存器250所存储的节点ID值)。客户逻辑240也重设其时间戳计数器255以存储“0”的时间戳值,并也重设其色彩位寄存器251以存储“0”的色彩位值(步骤702)。客户逻辑240将ID_设定消息(经由传送FIFO 232、消息组装器260以及多路复用器265)传送至相邻的接收节点N1。此ID_设定消息以与上述图4以及图5结合的方式与参考时钟信号CK_REF同步。
节点逻辑310(使用对应的时钟信号CLK_01)在节点N1内接收ID_设定消息。节点逻辑310(经由接收FIFO 331)将ID_设定消息发送至节点N1内的客户逻辑340。作为响应,客户逻辑340将ID_设定消息的ID字段中的ID值增加1(步骤703)。客户逻辑340然后将更新的ID值(例如,“1”)写入至其节点ID寄存器350(步骤704)。客户逻辑340也重设其时间戳计数器355以存储“0”的时间戳值,并也重设其色彩位寄存器351以存储“0”的色彩位值(步骤705)。因此,分支节点N1被分配等于“1”的节点ID值、等于“0”的时间戳值以及等于“0”的色彩位值。
客户逻辑340(经由传送FIFO 332、消息组装器360以及多路复用器365)将包括更新的节点ID值的经修改的ID_设定消息传送至相邻的接收节点N2(步骤706)。
如果下游接收节点是根节点N0(步骤707,“是”分支),则完成ID_设定操作(步骤708)。如果下游接收节点不是根节点N0(步骤707,“否”分支),则过程回到步骤703,由此在接收分支节点中的客户逻辑将ID_设定消息中的节点ID值增加1(步骤703),将增加的节点ID值存储在其节点ID寄存器中(步骤704),并重设其时间戳计数器以及色彩位(步骤705)。此过程继续,使得节点N0至N5被分别分配0至5的唯一节点ID值。在ID_设定操作的最后,节点N0-N5的时间戳计数器全部存储相同的时间戳值(例如,“0”)以及相同的色彩位值(例如,“0”)。
在完成节点初始化过程之后,在节点N0中的客户逻辑240在环形网络100上传送脉冲消息。在一个实施方式中,脉冲消息由提供至客户逻辑240的被激活的“脉冲”信号发起。在一个替代的实施方式中,客户逻辑240响应于接收到来自传送节点N5的经修改的ID_设定消息而发起脉冲消息。脉冲消息不断地横跨环形网络100。将脉冲消息顺序地提供到节点N0-N5内的节点逻辑。每次在节点内的节点逻辑接收脉冲消息时,节点逻辑切换存储在其相对应的色彩位寄存器的色彩位值。例如,当节点N1中的节点逻辑310第一次接收来自节点N0的脉冲消息时,节点逻辑310将存储在色彩位寄存器351中的色彩位值从“0”改变为“1”。如下面更详细描述的,在由节点N0-N5接收到的排序消息的仲裁中使用色彩位。
在完成上述设定过程之后,节点N0-N5准备好用于正常操作。现在将描述根据本发明的一个实施方式的环形网络100的正常操作。
节点N0-N5的客户逻辑(例如,客户逻辑240)通过经由消息总线102交换消息来通信。消息总线102的宽度和格式必须满足下述要求。消息总线102必须能够封装下面更详细描述的所有消息类型。消息总线102也被设计以提供所需的带宽和定时,同时最小化所需的线路/缓冲器的布局面积。
在一个实施方式中,在消息总线102上实现了四种消息类型,包括:1)广播消息、2)读取-修改-写入消息、3)点对点未排序消息以及4)点对点排序消息。大部分的这些消息是由节点N0-N5内的客户逻辑产生的,其可包括例如中央处理单元(CPU)或存储器控制器。
在广播消息中,传送节点的客户逻辑(例如,节点N0的客户逻辑240)将广播消息发送至其接收相邻节点(例如,节点N1,经由传送FIFO 232、消息组装器260以及多路复用器265)。接收相邻节点内的节点逻辑(例如,节点逻辑310)接收广播消息。作为响应,此节点逻辑将广播消息路由至其相对应的客户逻辑(例如,客户逻辑340,经由其相对应的接收FIFO331)。此节点逻辑也将广播消息转发至其接收相邻节点(例如,节点N2,经由多路复用器365)。当原始传送节点(例如,节点N0)从其传送相邻节点(例如,节点N5)接收广播消息时停止转发。例如,高速缓存线无效请求可作为广播消息被传送。
在读取-修改-写入消息中,传送节点的客户逻辑(例如,节点N0的客户逻辑240)将一个消息发送至其接收相邻节点(例如,节点N1,经由传送FIFO 232、消息组装器260以及多路复用器265)。接收相邻节点内的节点逻辑(例如,节点逻辑310)接收读取-修改-写入消息,并将此消息转发至其相对应的客户逻辑(例如,客户逻辑340,经由其相对应的接收FIFO331)。如果需要的话,此客户逻辑可修改此消息。客户逻辑随后将读取-修改-写入消息转发至其接收相邻节点(例如,节点N2,经由传送FIFO 332、消息组装器360以及多路复用器365)。注意,客户逻辑在接收读取-修改-写入消息之后将以其自己的裁量(例如,使用相对应的流程控制以及带宽分配逻辑)来转发读取-修改-写入消息,其为某数量的(本地时钟信号的)循环。此转发过程由每个节点重复,直到读取-修改-写入消息由原始的传送节点的传送相邻节点(例如,节点N5)回归到原始的传送节点(例如,节点N0)。原始的传送节点处理所接收的读取-修改-写入,并停止读取-修改-写入消息的传播。上述与设定过程有关的ID_设定消息是读取-修改-写入消息的一个示例。根据另一个示例,来自CPU的高速缓存线监听响应可作为读取-修改-写入消息而被传送。
在点对点未排序消息中,传送节点的客户逻辑(例如,节点N0的客户逻辑240)将消息发送至其接收相邻节点(例如,节点N1,经由传送FIFO 232、消息组装器260以及多路复用器265)。点对点未排序消息寻址其他节点中的特定节点(例如,节点N2),其中所寻址的节点的节点ID值被包括在该消息中。在传送节点和所寻址的节点之间的每个中间节点内的节点逻辑将此消息转发至其接收相邻节点,直到此消息到达所寻址的节点。例如,节点N1中的节点逻辑310可从节点N0接收点对点未排序消息,比较其节点ID值(例如,“1”)与包括在消息中的节点ID值(例如,“2”),并作为响应,确定该消息不寻址节点N1。作为响应,节点逻辑310(经由多路复用器365)将点对点未排序消息转发至接收节点N2。注意,节点逻辑310不将消息转发至非寻址的节点N1内的客户逻辑340。在接收点对点未排序消息时,节点N2内的节点逻辑然后会确定包括在点对点未排序消息中的节点ID值(例如,“2”)等于其本身的节点ID值(例如,“2”),并作为响应,(经由其相对应的接收FIFO)将点对点未排序消息提供至其相对应的客户逻辑。点对点未排序消息不在环形网络100上的寻址节点之外传送(例如,节点N2不将点对点未排序消息转发至节点N3)。在一个实施方式中,对于读取请求的数据响应可作为点对点未排序消息而被传送。
在点对点排序消息中,传送节点的客户逻辑(例如,节点N0的客户逻辑240)将消息发送至其接收相邻节点(例如,节点N1,经由传送FIFO 232、消息组装器260以及多路复用器265)。点对点排序消息寻址其他节点中的特定节点(例如,节点N2),其中在此消息中包括了所寻址节点的节点ID值。传送节点也将来自其自身的节点ID寄存器的其自身唯一的节点ID值(例如,来自节点ID寄存器250的节点ID值“0”)以及来自其自身时间戳计数器(例如,时间戳计数器255)的当前时间戳值(TS)附加至此消息。在传送节点(例如节点N0)内,消息组装器260在传送点对点排序消息时增加时间戳计数器255。
在传送节点以及所寻址的节点之间的每个中间节点(例如,节点N1)内的节点逻辑对其节点ID值(例如,“1”)与被包括在点对点排序消息中的所寻址的节点ID值(例如,“2”)进行比较,并作为响应,确定此消息不寻址此中间节点。作为响应,此中间节点N1的节点逻辑310(经由多路复用器365)将点对点排序消息转发至其相对应的接收节点N2。在接收点对点排序消息时,在每个节点中的节点逻辑增加其相对应的时间戳计数器,并将排序消息存储在其消息监听器中(例如,在节点N1内,节点逻辑310增加其时间戳计数器355并将排序消息存储在其消息监听器330中)。
在接收点对点排序消息时,在所寻址的节点(例如,节点N2)内的节点逻辑增加其时间戳计数器,并确定包括在点对点排序消息中的所寻址的节点ID值等于其自身的节点ID值(例如,“2”)。作为响应,在所寻址的节点N2内的节点逻辑造成存储在其色彩位寄存器中的色彩位值与点对点排序消息一起被存储在其消息监听器中。在所寻址的节点N2内的节点逻辑然后将排序消息转发至其相对应的接收节点(例如,节点N3)。此转发继续直到排序消息到达原始的传送节点(例如,节点N0),其中每个中间节点增加其时间戳计数器并将排序消息捕获到其消息监听器中。在接收排序消息时,原始的传送节点(例如,节点N0)不增加其时间戳计数器。在此时,通过检验其自身的消息监听器的内容,原始的传送节点可确定其排序消息是否将由所寻址的节点授予优先权。所寻址的节点等待直到脉冲消息改变存储在其相对应的色彩位寄存器中的色彩位的状态,以解析点对点排序消息的优先权。以此方式,即使消息以不同的顺序由每个节点接收,每个节点中的消息监听器中的信息也提供其中发布消息的顺序的一致观点。消息监听器中的信息将以下面更详细描述的方式用于仲裁和冲突解决。
如上所述,节点N0-N5中的每一个节点将所接收的点对点排序消息中的每一个暂时存储至其消息监听器中(例如,节点N0以及N1的消息监听器230以及330分别存储由节点逻辑210以及310接收的排序消息)。在所描述的实施方式中,所述消息监听器中的每一个消息监听器都是FIFO,其中消息监听器FIFO的深度是环形网络100的设计参数。在一个实施方式中,选择每个消息监听器的深度以提供布局面积、操作速度、功率消耗以及所需带宽的适当取舍。如下所述,消息监听器的深度限制了点对点排序消息请求的数量,其在任何给定时间在环形网络100上都可能是重要的。
根据一个实施方式,环形网络100的每个节点被分配点对点排序消息请求的配额,其中此配额的范围是从0至等于消息监听器深度减去1的值。每个节点不能具有超过其配额的重要点对点排序消息的数量,其中点对点排序消息被视为是重要的,直到其循环回其始发节点。分配至每个节点的配额不需要相同。例如,不能够发送出点对点排序消息的节点的配额可被设定为零,而性能重要的节点(例如,CPU)可被分配较大配额的点对点排序消息。然而,可能重要点对点排序消息请求的总数(例如,分配至每个节点N0-N5的配额的和)必须小于消息监听器的深度。
每个消息监听器捕获穿过相对应节点的点对点排序消息。如下面更详细描述的,这些所捕获的排序消息用以识别在环形网络100上发布消息的顺序。
如上所述,节点N0-N5中的每一个时间戳计数器被初始化为“0”值,且每一个时间戳计数器在相对应的节点传送原始的点对点排序消息、或接收在另一个节点始发的点对点排序消息时增加。每一个时间戳计数器计数多达MAX_COUNT值。在到达MAX_COUNT值之后,时间戳计数器回绕(wrap around)至“0”的值。在一个实施方式中,将MAX_COUNT值选择为是每个消息监听器条目数量的至少两倍,以避免计数器混叠。
在一个实施方式中,初始化(或回绕)时间戳计数器也反转了时间戳计数器值的符号位。如下面更详细描述的,节点N0-N5使用时间戳值(以及符号位)以确定在消息总线102上接收到的点对点排序消息的顺序。
一般而言,如果与两个点对点排序消息相关联的时间戳值的符号位相等,则具有较低时间戳值的点对点排序消息是较旧的(且因此具有优先权)。如果与两个点对点排序消息相关联的时间戳值的符号位不同,则具有较高时间戳值的点对点排序消息是较旧的(且因此具有优先权)。如果与两个点对点排序消息相关联的符号位以及时间戳值相等,则两个点对点排序消息被同时发送。在这些条件下,“打破平局(tie breaker)”是必要的,从而提供解析。例如,可将地址散列函数(address hashing function)应用至每个点对点排序消息以产生随机值。与较大值相关联的点对点排序消息可被标示为较旧的消息并授予优先权。其他方法也可用以在这些条件下提供优先权解析。
使用特定的示例,现在将更详细地描述根据本发明的一个实施方式的确定点对点排序消息的优先权的方式。在此示例中,根节点N0的客户逻辑240包括第一CPU(例如,CPU_0),分支节点N3的客户逻辑包括第二CPU(例如,CPU_1),并且分支节点N5的客户逻辑包括系统存储器。两个CPU_0(节点N0)以及CPU_1(节点N3)都试图对于节点N5的系统存储器中的相同高速缓存线“A”有专用的访问。在所描述的示例中,假设节点N0-N5中的每一个节点的时间戳计数器一开始具有“0”的值。
图8A是示出在时间T0的环形网络100的状态的表800,包括:由节点N0-N5执行的动作、由节点N0-N5在消息总线102上提供的输出消息、以及节点N0-N5的消息监听器的内容、节点N0-N5的时间戳计数器的值、节点N0-N5的色彩位的值、以及不断地围绕环形网络100行进的脉冲消息的位置。在时间T0,根节点N0的CPU_0在消息总线102上传送消息M*0_5(0)(例如,为MSG_01)。在本文中所描述的示例中,使用了M*X_Y(Z)的消息总线记号,其中M*指定了点对点排序消息,X指定了源节点ID(即,产生消息的节点N0的节点ID寄存器250的内容),Y与目的地节点ID相对应(即,节点N5的节点ID寄存器的内容以接收点对点排序消息)、且Z与始发节点N0的时间戳值相对应(在消息一开始被发送的时候)。因此,消息M*0_5(0)指定了从节点N0传送至节点N5的点对点排序消息,这当节点N0的时间戳计数器具有0的值时而开始。在所描述的示例中,消息M*0_5(0)包括额外信息(未示出),该额外信息指出事务是对节点N5的系统存储器中高速缓存线“A”的访问。在消息总线102上传送点对点排序消息M*0_5(0)时,节点N0的CPU_0将其时间戳计数器255从0的值增加至1的值。节点N0的消息监听器230存储消息M*0_5(0)。
也在时间T0,节点N2在消息总线102上传送排序点对点消息M*2_4(0)(例如,为MSG_23)。根据上面限定的命名法,消息M*2_4(0)指定了从节点N2传送至节点N4的点对点排序消息,这当节点N2的时间戳计数器具有0的值时开始。在消息总线102上传送点对点排序消息M*2_4(0)时,节点N2将其时间戳计数器从0的值增加至1的值。节点N2的消息监听器存储消息M*2_4(0)。
注意,在时间T0,节点N1以及N3-N5不发起任何动作(或在消息总线102上提供任何消息),且节点N1以及N3-N5的消息监听器是空的。因为这些节点N1以及N3-N5没有一个已接收或传送点对点排序消息,所以这些节点的时间戳计数器维持不变。
在所示出的示例中,脉冲消息在时间T0到达节点N4,由此造成节点N4的色彩位从“0”值过渡至“1”值。注意,针对本示例,色彩位值以及脉冲位置是任意选择的。
图8B是示出在下一个循环T1期间的环形网络100的状态的表801。在此时,节点N0-N5没有一个传送任何新的消息。消息M*0_5(0)由节点N1接收,且此节点N1将消息M*0_5(0)存储在其消息监听器中。因为节点N1已接收点对点排序消息,节点N1将其时间戳计数器从0增加至1。在节点N1内的节点逻辑310然后将点对点排序消息M*0_5(0)传送至节点N2。
此外,点对点排序消息M*2_4(0)由节点N3接收,且此节点N3将消息M*2_4(0)存储在其消息监听器中。因为节点N3已接收点对点排序消息,节点N3将其时间戳计数器从0增加至1。在节点N3内的节点逻辑然后将点对点排序消息M*2_4(0)传送至节点N4。
脉冲消息在循环T1期间到达节点N5,由此造成节点N5的色彩位从“0”值切换至“1”值。
图8C是示出在下一个循环T2期间的环形网络100的状态的表802。在此循环T2期间,节点N3的CPU_1在消息总线102上传送消息M*3_5(1)(例如,为MSG_34)并将此消息M*3_5(1)存储在其消息监听器中。如上所述,消息M*3_5(1)指定了从节点N3至节点N5的点对点排序消息。注意,在产生消息M*3_5(1)时,节点N3的时间戳值是“1”。在所描述的示例中,消息M*3_5(1)包括额外信息(未示出),额外信息指出事务是对于节点N5的系统存储器中的高速缓存线“A”的访问。因为节点N3已传送排序消息M*3_5(1),所以节点N3的时间戳计数器从1增加至2。注意,在循环T2期间,节点N0-N2以及N4-N5不发起任何新的动作。
同样地,在循环T2期间,点对点排序消息M*0_5(0)由节点N2接收,且此节点N2将消息M*0_5(0)存储在其消息监听器中。因为节点N2已接收排序消息,所以节点N2将其时间戳计数器从1增加至2。在节点N2内的节点逻辑然后将点对点排序消息M*0_5(0)传送至节点N3。
此外,点对点排序消息M*2_4(0)由节点N4接收,且此节点N4将消息M*2_4(0)存储在其消息监听器中。因为节点N4已接收排序消息,所以节点N4将其时间戳计数器从0增加至1。在节点N4内的节点逻辑然后将点对点排序消息M*2_4(0)传送至节点N5。
在循环T2期间,脉冲消息到达节点N0,由此造成节点N0的色彩位从“1”值切换至“0”值。
图8D是示出在下一个循环T3期间的环形网络100的状态的表803。在此时,节点N0-N5没有一个传送任何新的消息。点对点排序消息M*0_5(0)由节点N3接收,且此节点N3将消息M*0_5(0)存储在其消息监听器中。因为节点N3已接收排序消息,所以节点N3将其时间戳计数器从2增加至3。在节点N3内的节点逻辑然后将点对点排序消息M*0_5(0)传送至节点N4。
此外,点对点排序消息M*2_4(0)由节点N5接收,且此节点N5将消息M*2_4(0)存储在其消息监听器中。因为节点N5已接收排序消息,所以节点N5将其时间戳计数器从0增加至1。在节点N5内的节点逻辑然后将点对点排序消息M*2_4(0)传送至节点N0。
此外,点对点排序消息M*3_5(1)由节点N4接收,且此节点N4将消息M*3_5(1)存储在其消息监听器中。因为节点N4已接收排序消息,所以节点N4将其时间戳计数器从1增加至2。在节点N4内的节点逻辑然后将点对点排序消息M*3_5(1)传送至节点N5。
在循环T3期间,脉冲消息到达节点N1,由此造成节点N1的色彩位从“1”值切换至“0”值。
图8E是示出在下一个循环T4期间的环形网络100的状态的表804。在此时,节点N0-N5没有一个传送任何新的消息。点对点排序消息M*0_5(0)由节点N4接收,且此节点N4将消息M*0_5(0)存储在其消息监听器中。因为节点N4已接收排序消息,所以节点N4将其时间戳计数器从2增加至3。在节点N4内的节点逻辑然后将点对点排序消息M*0_5(0)传送至节点N5。
此外,点对点排序消息M*2_4(0)由节点N0接收,且此节点N0将消息M*2_4(0)存储在其消息监听器中。因为节点N0已接收排序消息,所以节点N0将其时间戳计数器从1增加至2。在节点N0内的节点逻辑然后将点对点排序消息M*2_4(0)传送至节点N1。
此外,点对点排序消息M*3_5(1)由节点N5接收,且此节点N5将消息M*3_5(1)存储在其消息监听器中。因为节点N5已接收排序消息,所以节点N5将其时间戳计数器从1增加至2。因为点对点排序消息M*3_5(1)寻址节点N5,节点N5在接收消息M*3_5(1)时确定并存储色彩位的状态(例如,色彩位=1)。在一个实施方式中,此色彩位与点对点排序消息M*3_5(1)一起存储在节点N5的消息监听器中。为了确保节点N5以适当的顺序解析点对点排序消息,节点N5必须等待以解析所接收的点对点排序消息M*3_5(1),直到色彩位的值被切换(例如,色彩位在节点N5内过渡至0的值)。节点N5的节点逻辑然后将点对点排序消息M*3_5(1)传送至节点N0。
在循环T4期间,脉冲消息到达节点N2,由此造成节点N2的色彩位从“1”值切换至“0”值。
图8F是示出在下一个循环T5期间的环形网络100的状态的表805。在此时,节点N0-N5没有一个传送任何新的消息。点对点排序消息M*0_5(0)由节点N5接收,且此节点N5将消息M*0_5(0)存储在其消息监听器中。因为节点N5已接收排序消息,所以节点N5将其时间戳计数器从2增加至3。因为点对点排序消息M*0_5(0)寻址节点N5,在接收消息M*0_5(0)时节点N5确定并存储色彩位的状态(例如,色彩位=1)。为了确保节点N5以适当的顺序解析排序消息,节点N5必须等待以解析所接收的点对点排序消息M*0_5(0),直到色彩位的值被切换(例如,色彩位在节点N5内过渡至0的值)。节点N5的节点逻辑然后将点对点排序消息M*0_5(0)传送至节点N0。
此外,点对点排序消息M*2_4(0)由节点N1接收,且此节点N1将消息M*2_4(0)存储在其消息监听器中。因为节点N1已接收排序消息,节点N1将其时间戳计数器从1增加至2。节点N1的节点逻辑然后将消息M*2_4(0)传送至节点N2。
此外,点对点排序消息M*3_5(1)由节点N0接收,且此节点N0将消息M*3_5(1)存储在其消息监听器中。因为节点N0已接收排序消息,所以节点N0将其时间戳计数器从2增加至3。节点N0的节点逻辑然后将点对点排序消息M*3_5(1)传送至节点N1。
在循环T5期间,脉冲消息到达节点N3,由此造成节点N3的色彩位从“1”值切换至“0”值。
图8G是示出在下一个循环T6期间的环形网络100的状态的表806。在此时,节点N0-N5没有一个传送任何新的消息。点对点排序消息M*0_5(0)循环回始发的节点N0。作为响应,节点N0停止环形网络200上此消息M*0_5(0)的传播。注意,响应于接收到其原始传送的排序消息,节点N0不增加其时间戳计数器。在接收消息M*0_5(0)时,节点N0访问其消息监听器,并比较所存储的排序消息以确定其点对点排序消息M*0_5(0)具有优于寻址相同的节点N5的其他点对点排序消息M*3_5(1)的优先权(因为消息M*0_5(0)具有比其他排序消息M*3_5(1)低的时间戳)。因此,节点N0被通知,其点对点排序消息M*0_5(0)将被节点N5授予优先权,且将由节点N5处理。
此外,点对点排序消息M*2_4(0)循环回始发的节点N2。作为响应,节点N2停止环形网络200上此消息M*2_4(0)的传播。响应于接收到其原始传送的排序消息,节点N2不增加其时间戳计数器。在接收消息M*2_4(0)时,节点N2访问其消息监听器,并比较所存储的排序消息以确定其消息M*2_4(0)具有优于其消息监听器中所存储的其他排序消息的优先权(因为这些其他消息没有一个寻址节点N4)。因此,节点N2被通知其消息M*2_4(0)将被节点N4授予优先权,且将由节点N4处理。
此外,点对点排序消息M*3_5(1)由节点N1接收,且此节点N1将消息M*3_5(1)存储在其消息监听器中。因为节点N1已接收排序消息,所以节点N1将其时间戳计数器从2增加至3。节点N1的节点逻辑然后将点对点排序消息M*3_5(1)传送至节点N2。
在循环T6期间,脉冲消息到达节点N4,由此造成节点N4的色彩位从“1”值切换至“0”值。注意,响应于节点N4的色彩位的切换,节点N4解析存储在其消息监听器中的排序消息的优先权。如上所述,节点N4只将优先权授予在寻址节点N4的其消息缓冲中的排序消息M*2_4(0)。
图8H是示出在下一个循环T7期间的环形网络100的状态的表807。在此时,节点N0-N5没有一个传送任何新的消息。在循环T7期间,脉冲消息到达节点N5,由此造成节点N5的色彩位从“1”值切换至“0”值。响应于此色彩位的切换,节点N5执行存储在其消息监听器中的排序消息的仲裁,同时色彩位具有先前的“1”的值。因此,节点N5确定点对点排序消息M*0_5(0)具有优于其他点对点排序消息M*3_5(1)的优先权,因为消息M*0_5(0)具有比其他消息M*3_5(1)低的时间戳值。作为响应,节点N5将访问在系统存储器的高速缓存线“A”中由消息M*0_5(0)请求的数据。注意,节点N5将产生传送此所请求的数据至节点N0的单独的消息(未示出)。进一步注意,节点N5忽略存储在其消息监听器中的点对点排序消息M*2_4(0),因为此消息不寻址节点N5。
此外,点对点排序消息M*3_5(1)由节点N2接收,且此节点N2将消息M*3_5(1)存储在其消息监听器中。因为节点N2已接收排序消息,所以节点N2将其时间戳计数器从2增加至3。节点N2的节点逻辑然后将点对点排序消息M*3_5(1)传送至节点N3。
图8I是示出在下一个循环T8期间的环形网络100的状态的表808。在此时,节点N0-N5没有一个传送任何新的消息。点对点排序消息M*3_5(1)循环回始发的节点N3。作为响应,节点N3停止环形网络200上此消息M*3_5(1)的传播。响应于接收到其原始传送的点对点排序消息,节点N3不增加其时间戳计数器。在接收消息M*3_5(1)时,节点N3访问其消息监听器,并比较所存储的排序消息以确定由节点N0传送的点对点排序消息M*0_5(0)具有优于其自身的点对点排序消息M*3_5(1)的优先权(因为消息M*0_5(0)具有比消息M*3_5(1)低的时间戳值)。因此,节点N3被通知,其消息M*3_5(1)将不被节点N5授予优先权,且将不由节点N5处理。作为响应,节点N3可确定应该重传的消息M*3_5(1)。
以前述方式,点对点排序消息可由环形网络100处理,而不需要复杂的中央控制电路。所需的控制逻辑被有利地分布在节点之中,使得中央控制器不是必要的。此外,不一定要设计/制造横跨大管芯面积的大规模低偏斜时钟树,由此有利地简化网络的物理实现。此外,可以以最小的延迟在高频率下操作环形网络100。
如上所述,在节点N0-N5内的客户逻辑控制消息总线102上的消息流。因为环形网络的平均带宽是2(对切带宽),带宽分配方针和流程控制逻辑必须被包括在每个节点的客户逻辑内。数个公知的技术(诸如循环或基于信用的方案)可由每个节点内的带宽分配和流程控制电路使用。根据上面所提供的描述,每个节点的带宽分配和流程控制逻辑将在客户逻辑时钟域中操作,且因此可以以与环形网络时钟域的参考时钟信号CK_REF不同的频率操作。
虽然已结合数个实施方式描述了本发明,但是要了解的是,此发明不限于所公开的实施方式,但能够有各种修改,其对于本领域的技术人员而言是明显。因此,本发明只由所附权利要求所限制。

Claims (18)

1.一种环形网络,包括:
多个节点,所述多个节点包括根节点以及一个或多个分支节点,其中所述根节点被耦合以接收参考时钟信号;
圆形时钟信号路径,所述圆形时钟信号路径将所述参考时钟信号从所述根节点路由通过所述一个或多个分支节点中的每一个分支节点并且路由回到所述根节点;以及
圆形消息路径,所述圆形消息路径与所述圆形时钟信号路径平行延伸,其中所述根节点以及所述一个或多个分支节点以关于所述时钟信号路径上的所述参考时钟信号的源同步方式在所述消息路径上传送消息,
其中,所述多个节点中的每一个包括对应的节点逻辑,其响应于在所述时钟信号路径上接收到的所述参考时钟信号锁存在所述消息路径上接收到的消息,
其中,所述多个节点中的每一个在传送消息时引入相对于所述参考时钟信号的对应节点延迟,
其中,所述时钟信号路径包括在所述多个节点中的每一个节点内的延迟线,
其中,在所述对应的节点逻辑响应于所述参考时钟信号而锁存在所述消息路径上接收到的消息之后,所述延迟线对所述时钟信号路径上的所述参考时钟信号引入延迟,
其中,由所述多个节点中的每一个节点内的所述延迟线引入的所述延迟是基于所述对应节点延迟来选择的,并且,
从所述延迟线输出的所述参考时钟信号不用于控制来自所述节点的在消息路径上的传送。
2.如权利要求1所述的环形网络,其中消息以单向方式在所述消息路径上传送。
3.如权利要求1所述的环形网络,其中所述参考时钟信号是用于在所述消息路径上同步被传送的消息的唯一时钟信号。
4.如权利要求1所述的环形网络,其中响应于所述时钟信号路径上的所述参考时钟信号,将所述消息路径上的所述消息锁存至所述节点中。
5.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括在由所述参考时钟信号限定的第一时钟域中操作的节点逻辑,以存储在所述环形网络上传送的消息。
6.如权利要求5所述的环形网络,其中所述节点中的每一个节点包括客户逻辑,所述客户逻辑在由相对应的本地时钟信号限定的本地时钟域中操作。
7.如权利要求6所述的环形网络,其中所述参考时钟信号具有比每个本地时钟信号高的频率。
8.如权利要求6所述的环形网络,进一步包括同步电路系统,所述同步电路系统实现在所述节点中的每一个节点内跨越所述第一时钟域以及所述本地时钟域通信。
9.如权利要求1所述的环形网络,其中所述多个节点中的每一个节点进一步包括时间戳计数器。
10.如权利要求9所述的环形网络,进一步包括用于初始化在所述节点中的每一个节点中的所述时间戳计数器的装置。
11.如权利要求10所述的环形网络,进一步包括当所述节点始发排序消息或从另一个节点接收排序消息时用于增加每个节点中的所述时间戳计数器的装置。
12.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括存储色彩位值的色彩位寄存器,所述色彩位值由不断地横越所述圆形消息路径的脉冲消息来切换。
13.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括存储唯一节点识别符地址的节点识别寄存器。
14.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括消息监听器,所述消息监听器存储由所述消息总线上的所述节点接收的排序消息。
15.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括用于仲裁由所述节点接收的多个排序消息的优先权的装置。
16.如权利要求1所述的环形网络,其中所述节点中的每一个节点包括延迟线,所述延迟线沿着所述时钟信号路径将相对应的延迟引入至所述参考时钟信号。
17.如权利要求16所述的环形网络,其中每个延迟线的所述延迟是可调整的。
18.如权利要求1所述的环形网络,其中所述根节点包括再同步电路,所述再同步电路用于将由所述消息路径上的所述根节点接收的消息与所述参考时钟信号再同步。
CN201780083717.9A 2016-11-23 2017-11-20 环形网络 Active CN110546922B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662425792P 2016-11-23 2016-11-23
US62/425,792 2016-11-23
US15/816,235 2017-11-17
US15/816,235 US10411910B2 (en) 2016-11-23 2017-11-17 Distributed control synchronized ring network architecture
PCT/US2017/062627 WO2018098084A2 (en) 2016-11-23 2017-11-20 Distributed control synchronized ring network architecture

Publications (2)

Publication Number Publication Date
CN110546922A CN110546922A (zh) 2019-12-06
CN110546922B true CN110546922B (zh) 2022-05-10

Family

ID=62144074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780083717.9A Active CN110546922B (zh) 2016-11-23 2017-11-20 环形网络

Country Status (9)

Country Link
US (1) US10411910B2 (zh)
EP (1) EP3545653B1 (zh)
JP (1) JP7014812B2 (zh)
KR (1) KR102214874B1 (zh)
CN (1) CN110546922B (zh)
CA (1) CA3044672C (zh)
ES (1) ES2903557T3 (zh)
TW (1) TWI730197B (zh)
WO (1) WO2018098084A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017011458A1 (de) * 2017-12-12 2019-06-13 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Teilnehmer eines Bussystems, Verfahren zum Betrieb und ein Bussystem
US11829196B2 (en) * 2019-10-22 2023-11-28 Advanced Micro Devices, Inc. Ring transport employing clock wake suppression
JP7231909B2 (ja) * 2019-11-12 2023-03-02 株式会社アーリーワークス 情報処理装置及びプログラム
CN111884901B (zh) * 2020-07-01 2021-10-22 浙江杰芯科技有限公司 一种基于环形网络的时钟同步路径查询方法及系统
EP4224746A4 (en) * 2020-10-29 2023-12-13 Huawei Technologies Co., Ltd. CONTROL SYSTEM, CLOCK SYNCHRONIZATION METHOD, CONTROL DEVICE, NODE DEVICE AND VEHICLE
WO2023211320A1 (en) * 2022-04-25 2023-11-02 Saab Ab Method for generating a non-jittering trigger signal in a node of a serial data ring-bus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280550B1 (en) * 2002-12-18 2007-10-09 Cirrus Logic, Inc. Bandwidth optimization of ring topology through propagation delay compensation
CN104365043A (zh) * 2012-04-20 2015-02-18 瑞典爱立信有限公司 基于环形的精确时间数据网络时钟相位调整
CN105144579A (zh) * 2013-03-15 2015-12-09 高通股份有限公司 低功率架构

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58127246A (ja) * 1982-01-26 1983-07-29 Nec Corp リングバスインタフエイス回路
US4716575A (en) * 1982-03-25 1987-12-29 Apollo Computer, Inc. Adaptively synchronized ring network for data communication
US5539727A (en) * 1992-04-14 1996-07-23 Kramarczyk; Marian Method and apparatus for configuring and maintaining token ring networks
JPH06332852A (ja) * 1993-05-20 1994-12-02 Hitachi Ltd データ転送システム
US5815016A (en) 1994-09-02 1998-09-29 Xilinx, Inc. Phase-locked delay loop for clock correction
US6574219B1 (en) * 1998-08-06 2003-06-03 Intel Corp Passive message ordering on a decentralized ring
US6523155B1 (en) * 1998-11-17 2003-02-18 Jeffrey Joseph Ruedinger Method for partitioning a netlist into multiple clock domains
JP2002141922A (ja) * 2000-11-01 2002-05-17 Ricoh Co Ltd ループ型バスシステム
US7012927B2 (en) 2001-02-06 2006-03-14 Honeywell International Inc. High level message priority assignment by a plurality of message-sending nodes sharing a signal bus
US6570813B2 (en) * 2001-05-25 2003-05-27 Micron Technology, Inc. Synchronous mirror delay with reduced delay line taps
US6990316B2 (en) 2001-06-26 2006-01-24 Nokia Corporation Short range RF network configuration
US20030172190A1 (en) * 2001-07-02 2003-09-11 Globespanvirata Incorporated Communications system using rings architecture
US6961861B2 (en) * 2002-02-27 2005-11-01 Sun Microsystems, Inc. Globally clocked interfaces having reduced data path length
US7292585B1 (en) 2002-12-20 2007-11-06 Symantec Operating Corporation System and method for storing and utilizing routing information in a computer network
US7769956B2 (en) * 2005-09-07 2010-08-03 Intel Corporation Pre-coherence channel
US7885296B2 (en) 2006-07-27 2011-02-08 Cisco Technology, Inc. Maintaining consistency among multiple timestamp counters distributed among multiple devices
US7809871B2 (en) 2006-12-07 2010-10-05 Integrated Device Technology Inc. Common access ring system
JP5327832B2 (ja) * 2007-05-16 2013-10-30 独立行政法人情報通信研究機構 ノード識別子と位置指示子とを用いたパケットの通信方法
ATE536681T1 (de) * 2007-10-04 2011-12-15 Harman Becker Automotive Sys Datennetzwerk mit zeitsynchronisationsmechanismus
US8831435B2 (en) 2008-03-28 2014-09-09 Centurylink Intellectual Property Llc System and method for dual wavelength communications of a clock signal
US8261218B1 (en) * 2008-08-01 2012-09-04 Altera Corporation Systems and methods for determining beneficial clock-path connection delays
KR101299443B1 (ko) * 2009-05-15 2013-08-22 한국전자통신연구원 보호 절체 방법
CN102064927B (zh) * 2010-09-21 2013-11-13 四川和芯微电子股份有限公司 时序纠错系统及方法
US9247157B2 (en) * 2011-05-13 2016-01-26 Lattice Semiconductor Corporation Audio and video data multiplexing for multimedia stream switch
US9294301B2 (en) * 2012-09-20 2016-03-22 Arm Limited Selecting between contending data packets to limit latency differences between sources
US9053257B2 (en) * 2012-11-05 2015-06-09 Advanced Micro Devices, Inc. Voltage-aware signal path synchronization
US9652804B2 (en) * 2013-12-19 2017-05-16 Chicago Mercantile Exchange Inc. Deterministic and efficient message packet management
US9355054B2 (en) * 2014-01-07 2016-05-31 Omnivision Technologies, Inc. Digital calibration-based skew cancellation for long-reach MIPI D-PHY serial links
CN104796212B (zh) * 2014-01-22 2019-07-05 中兴通讯股份有限公司 一种光突发传送网、节点和传输方法
US9209961B1 (en) * 2014-09-29 2015-12-08 Apple Inc. Method and apparatus for delay compensation in data transmission
EP3015971B1 (en) * 2014-10-28 2019-07-31 Napatech A/S A system and a method of deriving information
US9755955B2 (en) * 2015-02-18 2017-09-05 Accedian Networks Inc. Single queue link aggregation
TW201735581A (zh) * 2016-03-16 2017-10-01 瑞昱半導體股份有限公司 網路通訊裝置與電子裝置
US10496581B2 (en) * 2016-03-30 2019-12-03 Intel Corporation Un-sampled decision feedback equalizer including configurable loop delay

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280550B1 (en) * 2002-12-18 2007-10-09 Cirrus Logic, Inc. Bandwidth optimization of ring topology through propagation delay compensation
CN104365043A (zh) * 2012-04-20 2015-02-18 瑞典爱立信有限公司 基于环形的精确时间数据网络时钟相位调整
CN105144579A (zh) * 2013-03-15 2015-12-09 高通股份有限公司 低功率架构

Also Published As

Publication number Publication date
CA3044672A1 (en) 2018-05-31
WO2018098084A3 (en) 2019-12-05
WO2018098084A2 (en) 2018-05-31
EP3545653A4 (en) 2021-01-27
JP7014812B2 (ja) 2022-02-01
US10411910B2 (en) 2019-09-10
KR20190085992A (ko) 2019-07-19
EP3545653B1 (en) 2022-01-05
JP2020508625A (ja) 2020-03-19
KR102214874B1 (ko) 2021-02-09
TW201832470A (zh) 2018-09-01
TWI730197B (zh) 2021-06-11
CA3044672C (en) 2023-08-29
CN110546922A (zh) 2019-12-06
US20180145849A1 (en) 2018-05-24
EP3545653A2 (en) 2019-10-02
ES2903557T3 (es) 2022-04-04

Similar Documents

Publication Publication Date Title
CN110546922B (zh) 环形网络
US11196587B2 (en) Permutated ring network
US10027433B2 (en) Multiple clock domains in NoC
US9634866B2 (en) Architecture and method for hybrid circuit-switched and packet-switched router
US10355851B2 (en) Methods and systems for synchronization between multiple clock domains
US20090049212A1 (en) Method and systems for mesochronous communications in multiple clock domains and corresponding computer program product
CN111971648A (zh) 异步多时钟域数据流接合及再同步系统和方法
KR20110095248A (ko) 신호 송신 방법 및 전송 유닛
Nambinina et al. Extension of the lisnoc (network-on-chip) with an axi-based network interface
Weber et al. Exploring asynchronous end-to-end communication through a synchronous NoC
JP7337021B2 (ja) 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール
CN111435340B (zh) 互联网总线单元及数据传输方法、wishbone互联网模块、芯片
JP7316083B2 (ja) 情報処理装置
Nambinina et al. Extension of the LISNoC (Network-on-Chip)

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