用于集成电路的互连网络

文档序号:1775236 发布日期:2019-12-03 浏览:19次 >En<

阅读说明:本技术 用于集成电路的互连网络 (Interference networks for integrated circuit ) 是由 安德鲁·戴维·图恩 耿光辉 徐政 于 2019-05-16 设计创作,主要内容包括:本公开涉及用于集成电路的互连网络。一种用于在集成电路的多个节点之间提供数据传输的互连网络包括:许多端点,所述许多端点用于与所述集成电路的相应的节点交换数据;主网络,该主网络用于从源端点向目的地端点路由主净荷;以及冗余网络,该冗余网络用于向所述目的地端点路由冗余净荷,该冗余净荷包括基于所述主净荷的至少一部分计算出的第一校验码,该第一校验码具有比所述主净荷的所述至少一部分更少的位。所述目的地端点包括错误校验电路,该错误校验电路用于执行错误校验操作以基于经由所述主网络接收到的所述主净荷计算第二校验码,并且基于所述第二校验码与经由所述冗余网络接收到的所述第一校验码的比较来验证所述主净荷的完整性。(This disclosure relates to be used for the interference networks of integrated circuit.It is a kind of between multiple nodes of integrated circuit provide data transmission interference networks include: many endpoints, many endpoints be used for node switching data corresponding with the integrated circuit;Master network, the master network are used to route main payload from source endpoint to destination endpoint;And redundant network, the redundant network is used for the destination endpoint route redundancy payload, the redundancy payload includes calculated first check code of at least part based on the main payload, which has position more less than described at least part of the main payload.The destination endpoint includes error checking circuit, the error checking circuit is used to execute error-correction operations to calculate the second check code based on the main payload received via the master network, and verifies the integrality of the main payload compared with first check code received via the redundant network based on second check code.)

用于集成电路的互连网络

技术领域

本技术涉及集成电路的领域。更具体地其涉及用于在集成电路的节点之间提供数据访问的互连。

背景技术

集成电路(例如片上系统)可以包括许多组件,所述许多组件可以通过发出指定目标地址的数据访问请求来进行通信。可以提供在集成电路的节点之间提供数据传输的互连网络。

发明内容

至少一些示例提供一种用于在集成电路的多个节点之间提供数据传输的互连网络,包括:多个端点,所述多个端点各自用于与所述集成电路的相应的节点交换数据;主网络,所述主网络用于从源端点向目的地端点路由主净荷;冗余网络,所述冗余网络用于向所述目的地端点路由冗余净荷,所述冗余净荷包括基于所述主净荷的至少一部分计算的第一校验码,所述第一校验码具有比所述主净荷的所述至少一部分更少的位;其中,所述目的地端点包括错误校验电路,所述错误校验电路用于执行错误校验操作以基于经由所述主网络接收到的所述主净荷计算第二校验码,并且基于所述第二校验码与经由所述冗余网络接收到的所述第一校验码的比较来验证所述主净荷的完整性。

可以提供存储介质来存储表示如上面所讨论的互连网络的设计的电子设计文件。所述存储介质可以是非暂时性存储介质。

至少一些示例提供一种生成电子设计文件的计算机实现的方法,所述电子设计文件表示用于在集成电路的节点之间提供数据传输的互连网络的设计;所述方法包括:响应于识别要通过所述互连网络连接的所述节点的设计规范数据,生成指定所述互连网络的所述电子设计文件,所述互连网络包括:多个端点,所述多个端点各自用于与所述集成电路的相应的节点交换数据;主网络,所述主网络用于从源端点向目的地端点路由主净荷;以及冗余网络,所述冗余网络用于向所述目的地端点路由冗余净荷,所述冗余净荷包括基于所述主净荷的至少一部分计算的第一校验码,所述第一校验码具有比所述主净荷的所述至少一部分更少的位;其中,所述目的地端点包括错误校验电路,所述错误校验电路用于执行错误校验操作以基于经由所述主网络接收到的所述主净荷计算第二校验码,将所述第二校验码与经由所述冗余网络接收到的所述第一校验码相比较,并且当在所述第一校验码与所述第二校验码之间检测到失配时发信号通知错误。

可以提供存储介质来存储用于控制数据处理装置执行上面讨论的用于生成所述电子设计文件的方法的计算机程序。所述存储介质可以是非暂时性存储介质。

从将结合附图阅读的示例的以下描述中,本技术的另外的方面、特征和优点将是显而易见的。

附图说明

图1示出了包括至少一个互连网络的数据处理系统的示例;

图2示出了包括主网络和冗余网络的互连网络的示例;

图3A示意性地图示了使用主网络和冗余网络的错误校验的示例;

图3B示出了替代示例,其中主网络和冗余网络包括同一物理信道上的第一虚拟信道和第二虚拟信道;

图4示出了发送主净荷的示例,其中每分组具有可变数量的分片(flits)并且每分片具有可变数量的分片分段;

图5示出了主净荷和对应的冗余净荷;

图6图示了将有效分片分段合并成连续块以便输入到错误校验码计算的示例;

图7示出了用于执行合并的电路的示例;

图8示出了针对数据和报头信道计算独立错误校验码并且组合数据和报头校验码以形成组合校验码的示例;

图9和图10图示了生成组合校验码的替代方式;

图11示意性地图示了包括互连网络的集成电路的设计和制造;以及

图12是图示生成表示互连网络设计的电子设计文件的方法的流程图。

具体实施方式

可以在集成电路中提供互连网络以用于在集成电路的许多节点之间提供数据传输。例如,通过互连网络连接的节点能包括处理器核心、图形处理单元、网络控制器等。网络可以具有:许多端点,所述许多端点各自用于与集成电路的相应的节点交换数据;以及传输信道,所述传输信道用于从源端点向目的地端点路由净荷。可选地,网络还能包括附加组件,诸如用于在替代下游传输信道之间进行选择的路由器、数据调整大小组件和/或用于跨越时钟或电源域桥接的时钟或电源域交叉单元。

功能上正确的集成电路设计有时可能经历硬件故障,例如通过电离粒子撞击电路的组件而引起。如果在互连网络中发生故障,则由于传输期间的数据变化值,或者由于数据被错误路由使得它未到达正确的目的地(或者在到达正确的目的地方面有延迟),故障可以防止正确的数据到达适当的目的地。故障可以包括永久故障,例如当集成电路的触发器或其他存储元件不管该存储元件的输入都变得卡在特定值时,使依赖于该存储元件的后续信号具有绑定到0或1的位。另外,互连网络可能经受瞬时故障,例如在发送的值的位由于粒子撞击而在传输期间改变状态,但是因为对电路硬件未造成永久损坏所以随后发送的值仍然正确的情况下。故障还可以包括电线卡在特定值、开路电线故障、短路故障和高阻抗电线故障。

在为功能安全重要的应用(诸如汽车应用)而设计的集成电路中,可能期望提供用于检测在互连网络中发生故障的机制。一种方法可以是复制主网络的用于从源端点向目的地端点路由主净荷的组件,以形成相同的冗余网络,所述冗余网络可以将主净荷的冗余副本与主净荷其本身并行发送到目的地,并且比较在目的地处接收到的主净荷和冗余净荷以校验错误。然而,因为互连网络可以包括许多组件,所以在冗余网络中复制主网络的每个组件在校验逻辑和电路面积方面是昂贵的并且还增加功耗。

在下面讨论的技术中,冗余网络向目的地端点路由冗余净荷,所述冗余净荷包括基于主净荷的至少一部分计算出的第一校验码,其中第一校验码与用于计算第一校验码的主净荷的部分相比具有较少的位。目的地端点包括错误校验电路,该错误校验电路用于执行错误校验操作来基于经由主网络接收到的主净荷计算第二校验码,并且基于第一校验码和第二校验码的比较来验证主净荷的完整性。因此,不是通过冗余网络冗余地发送整个净荷,而是通过发送具有较少的位的校验码,这节省电路面积并降低功耗,从而使得能够不太昂贵地实现为功能安全应用而设计的片上系统的集成电路中的互连网络。

在一些示例中,冗余网络可以通过物理上分离的信道将冗余净荷路由到由主网络用于主净荷的信道。

替代地,在一些示例中主网络和冗余网络可以共享公共物理信道,但是可以使用同一物理信道上的不同的虚拟信道,其中每个虚拟信道对应于共享物理信道上的带宽的一部分。不同的虚拟信道能例如在网络的某些组件处具有分组的独立缓冲以便使主净荷分组与冗余净荷分组分离,并且提供对主净荷分组和冗余净荷分组的流的独立控制。即使公共信道被用于主网络和冗余网络两者,通过在时间上使主净荷和冗余净荷的传输分离,然后这也可仍然提供针对瞬时故障的保护。对于某些类别的功能安全认证,可能不一定要保护免于诸如卡住故障的永久硬件结果,在此情况下共享公共信道可能是足够的。

然而,为主网络和冗余网络提供单独的物理信道可以增加对故障的鲁棒性,这可以帮助提高可被检测到的故障的百分比,并且可以优选用于更高类别的功能安全认证。

在一些示例中,冗余网络可以与主网络上的主净荷的传输并行地发送冗余净荷。在一些情况下,冗余网络与主网络的物理分离可能足以在给定级别的功能安全认证所要求的程度上保护免于故障。例如如果主网络和冗余网络使用在集成电路上的物理上遥远位置处的信道,则这可提供针对共模故障的一些鲁棒性,因为它降低诸如粒子撞击的单个事件影响主净荷和对应的冗余净荷的机会。

在其他示例中,冗余网络可以相对于主网络上的主净荷的传输延迟冗余净荷的传输。这意味着主网络和冗余网络中的一个上的瞬时故障不太可能还影响在其他网络上发送的对应的净荷。

在一些示例中,主网络可以包括含有通过第一时钟信号计时的组件的一部分并且冗余网络可以包括含有通过第二时钟信号计时的组件的一部分,其中第二时钟信号独立于第一时钟信号,但是与第一时钟信号同步。例如,主网络和冗余网络的这些部分可以在锁步中操作以在主净荷传输与冗余网络上的对应的冗余净荷的传输之间提供恒定延迟。

在一些示例中,整个主网络和冗余网络可以使用同步时钟信号来操作。

然而,在其他示例中互连网络可以横跨多个时钟域,以链接通过时钟信号所驱动的组件,对于所述时钟信号来说一个域中的时钟信号的相位和频率中的至少一个与另一域中的时钟信号的相位和/或频率不对准。在这种情况下,同一时钟域内的主/冗余网络的部分可以通过同步时钟信号来驱动,但是不同时钟域中的主网络和冗余网络的部分可以使用具有不同频率的异步时钟信号或具有相同频率但相位未对准的均步时钟信号来操作。

主净荷除了包括正在发送的任何数据之外,还可以包括用于控制主网络的组件以从源端点向目的地端点路由主净荷的网络控制信号。例如,网络控制信号可以包括用于定义将从源端点到目的地端点采取的路由的信息、定义用于输送主净荷的分组的大小或格式的信息和/或用于编排网络应该如何传送净荷的任何其他信息。冗余净荷可以包括用于控制冗余网络的组件以将冗余净荷从源端点路由到目的地端点的网络控制信号的子集。可能不必要在冗余网络内复制主网络中使用的所有网络控制信号。因此,通过提供冗余网络的组件使得它们输送第一校验码和网络控制信号的适当子集(并非全部),这允许比在冗余网络简单地重复主净荷它本身的情况下更高效地实现冗余网络。

在目的地端点处执行的错误校验操作可以独立于在主净荷中发送的网络控制信号中的至少一个。也就是说,没有必要校验所有网络控制信号是否有错误。这是因为如果在一些网络控制信号中发生错误,则这可以简单地导致分组的不正确的路由,使得分组可能丢失或者沿错误路径或者向错误目的地路由,或者可以相对于到正确的目的地端点的其他分组被乱序接收。可以像上面所讨论的那样通过第一校验码和第二校验码的比较检测到此类错误,因为主净荷或冗余净荷的不正确的路由可以导致相关主/冗余净荷到达不同的目的地。在这种情况下,到达特定目的地端点的主净荷和冗余净荷实际上可以涉及数据传输的不同实例,并且所以随着冗余净荷而接收到的第一校验码可能与根据所接收到的主净荷计算出的第二校验码不匹配,使得即使没有校验到网络控制信号它本身有错误,也可检测到错误。因此,可以通过不在端点处针对所有网络控制信号执行错误校验来节省逻辑。

冗余网络可以包括用于将冗余净荷从上游组件路由到下游组件的至少一个中间组件。根据针对通过净荷所采取的给定路径在端点之间提供的中间组件的数量,上游组件和下游组件可以是端点中的一个或者可能是另一个中间组件。至少对于上游组件和下游组件都响应于同步时钟信号(在频率和相位两者上对准的时钟)而操作的同步中间组件,同步中间组件可以独立于冗余净荷与从在主网络上发送的主净荷导出的信息的任何比较而将冗余净荷从上游组件路由到下游组件。类似地,在主网络中同步中间组件可以独立于与从冗余网络上的对应的冗余净荷导出的信息的任何比较而将主净荷从上游组件路由到下游组件。因此,没有必要在同步中间组件处执行主净荷和冗余净荷的任何比较或校验,所述同步中间组件桥接在用同步时钟信号操作的组件之间。因为在网络中可以存在大量中间组件,所以通过消除在网络的每一跳处对照冗余净荷来校验主净荷,这可节省大量电路面积并降低功耗。替代地,可以在目的地端点处执行错误校验以说明跨越网络的传输中的错误。

在一些实施方式中,网络还可以包括一些异步中间组件,其中组件位于上游组件与下游组件之间,所述上游组件和下游组件响应于时钟的相位和频率中的一个或两个未对准的时钟信号而操作。一些实施方式可以在这种异步中间组件处重新生成校验码,以确保不管上游组件和下游组件处的未对准时钟的相对定时中的不确定性都可强制锁步方案有效所要求的任何固定延迟。在这种情况下,可以在异步中间组件处执行从上游组件接收到的主净荷和冗余净荷的比较以校验是否可信任要从异步中间组件向下游发送的重新生成的校验码。因此,在可能需要在主网络与冗余网络之间有连接的网络内可以存在一些中间点,以便在基于主净荷在下游时钟域中重新生成第一校验码之前针对包括在冗余净荷中的第一校验码来验证基于主净荷计算出的第二校验码。

然而,通过将主网络与冗余网络之间的此类链路局限于端点和异步时钟域边界,并且在同步中间组件处消除此类链路(主净荷与冗余净荷之间的校验),这可节省电路面积并改进功耗。另外,这可减少对在集成电路的物理上遥远区域中连接逻辑的同样多的长路径的需要,这可使逻辑分区变得更容易,使得当不要求功能安全时可将冗余网络置于省电模式下,例如通过对冗余网络进行电源门控或者时钟门控。

第一校验码和第二校验码可以包括能够检测主净荷或冗余净荷中的多位错误的一种类型的校验码。尽管诸如通过粒子撞击所引起的那些的单个事件扰乱很可能将仅触发单个位改变发送的信号中的状态,然而如果在路由控制信号中发生这种位翻转,则这可导致所发送的净荷的多于一个位不正确或者整个净荷相对于其他信号在错误时间到达,这能使错误主净荷与冗余净荷相比较或者反之亦然。因此,为了符合更高类别的功能安全认证,可能要求使用能够检测相同数据值中的多个位错误的一种类型校验码。

一系列类型的纠错码可以被用于此目的。使用卷积码来计算第一/第二校验码可能是特别有用的。卷积码可能是有用的,因为它们可以通过将函数滑动应用于数据流来生成。因此,没有必要在计算校验码的逻辑处同时使所有净荷可用。替代地,可以针对净荷的初始部分计算临时校验码,并且响应于净荷的每个连续部分而更新临时校验码,直到整个净荷已被处理并且由最终计算产生的校验码是被用作要在冗余网络上发送的第一校验码的值为止。

卷积码的特别有用的示例是循环冗余校验(CRC)码,CRC码是卷积码,该卷积码还提供多位错误检测并且可用相对少的位的码来检测相对高百分比的错误。人们已经发现,具有相对少数量的位(例如8个位)的CRC可足以符合最高级别的功能安全认证ASIL-D,使得它可检测大约99.6%的多位错误和100%的单个位错误以及错误长度8或更少的突发。

可以按照称作分组的单元在主网络上发送主净荷。例如,每个分组可以包括定义分组的某些性质的报头和提供要发送的数据的分组净荷。例如,能根据网络协议来定义报头,所述网络协议可以定义多层信号,诸如定义分组的格式的物理层信号和定义如何跨越网络路由分组的链路层信号。主净荷中输送的净荷能不仅包括数据,而且包括从由请求节点发送到接收到原始请求的源端点的请求导出的其他信息,诸如地址信息或承载表征存储器访问请求的其他信息。

每个分组可以包括一定数量的分片,其中“分片”(或“流控制数字”)是网络可独立于其他分片控制路由的信息的最小单元。在一些系统中,每个分组能简单地包括单个分片,并且在这种情况下能简单地在分组的粒度上执行路由控制(对由特定分片通过网络采取的特定路由的选择)和流控制(对网络上的带宽被用于发送特定分片的定时的控制)。然而在支持包括多个分片的分组的系统中,如果下游组件未准备好接收分片,则每个分片能被独立地路由和/或阻止传输。

某些系统可能支持具有固定数量的分片的分组。在一些情况下每个分片可以具有固定大小(位数)。

然而,为了增加灵活性,一些互连网络可以支持具有可变大小的可变数量的分片的分组。例如网络可以包括用于将主净荷的分片的大小调整为不同大小的分片的至少一个调整大小组件。例如连接到网络的节点中的一些能用不同位宽度的数据信道操作,并且所以可能期望将在网络上发送的分组重新格式化为适于数据信道的宽度,所述数据信道将用于将数据从目的地端点发送到集成电路的对应的目的地节点。

源端点可以将第一校验码计算为用于校验整个分组的内容的分组校验码。第一校验码可以是一种类型的校验码,对于要在分组中发送的给定数据量,该校验码对用于在分组中发送给定数据量的分片的数量而言是不变的。这意味着即使分组在其通过网络的途中通过调整大小组件,并且来自分组的数据最终在不同数量的分片上重新分发,在调整大小之前为分组生成的校验码也可能仍然是正确的,使得不需要在调整大小组件处重新生成校验码。这通过限制网络的需要重新计算校验码的点来再次节省电路面积和功耗。

每个分片本身可以被划分成许多分片分段,并且每个分片可以包括可变数量的分片分段。分片分段可以具有预定大小。

在一些情况下,尽管可以为给定分片定义一定数量的分片片段,但可能没有足够的有效数据来填充所有那些分片片段,并且在这种情况下某些分片片段可能是无效的。主净荷可以指定分片分段有效性信息,从而指示哪些分片分段包括有效信息。当网络包括如上面所讨论的调整大小组件时,可能的是可以在调整大小组件处丢弃一些无效的分片分段,以便将有效数据装配到具有不同大小的分片的分组中。为了避免必须重新计算第一校验码,因此可以期望使用校验码计算,该校验码计算从第一校验码的计算中省略任何无效的分片片段。例如,计算(或者重新生成)第一校验码的源端点(或如上面所讨论的异步中间组件)可以包括合并电路以将给定分片的任何有效的分片分段合并成数据的连续块以用于为第一校验码的计算提供输入。这意味着即使在网络的调整大小点处省略一些无效的分片分段,那么先前计算出的第一校验码也仍然是有效的并且可简单地被发送到下游组件而无需重新计算。这通过减少必须重新计算校验码的网络中的点数来节省电路面积和功率(并且因此避免对在调整大小点处链接主网络和冗余网络的附加代码校验逻辑和长布线路径的需要——替代地可独立地执行主网络和冗余网络上的分片的调整大小)。

在一些示例中,尽管主网络上的主分组的分片可以包括可变数量的分片片段,然而在冗余网络上发送的冗余净荷的每个分片可以包括单个分片片段,而不管主净荷的每个分片中的分片片段的数量如何。因为在冗余净荷中发送的第一错误校验码具有比用于计算第一校验码的主净荷的对应部分更少的位,那么实际上冗余分组不需要发送同样多的数据。因此,如果分片分段的大小被选取为足以容纳包括跨越冗余网络路由校验码所要求的任何报头信息的冗余净荷,则即使所对应的主分组确实每分片包括多个分片分段,也不需要包括多于一个分片分段。通过将冗余分组的大小局限于单个分片分段,这与主网络中的网络链路相比较使得能够在冗余网络中使用更窄的物理信道,从而节省电路面积并因此节省功率。替代地在冗余网络和主网络共享公共物理信道的方法中,与当发送主净荷时使用的全缓冲器/逻辑容量相比较,每分片使用仅单个分片分段能使得与未用位相对应的一些缓冲器空间或逻辑能够在正在发送冗余净荷时被置于省电模式下。因此,将冗余分片局限于单个分片分段使得能够节省功率。

冗余网络可以发送包括与主净荷的对应分组相同数量的分片的冗余净荷。即使能在单个分片分段的单个分片中发送冗余净荷,也可能期望在主网络和冗余网络中使每分组的分片的数量相等,以维持主净荷与冗余净荷之间的恒定时间关系。这使得锁步组件能够操作,假定在主净荷的接收与对应的冗余净荷的接收之间存在固定延迟。锁步可以是用于不仅在互连网络本身中而且在下游组件中使得能实现功能安全的有用技术,所以通过提供镜像主净荷中的分片的数量的冗余净荷协议,这简化此类锁步组件的实施方式。

因此,如果主净荷的分片的数量大于发送冗余净荷所要求的分片的最小数量,则源端点可以在冗余净荷中包括至少一个填充分片(padding flit),该至少一个填充分片提供独立于主净荷的数据的虚设数据或非冗余地发送的数据。填充分片能包括零或其他无意义的虚设数据。替代地能重用填充分片中的备用带宽来发送不由主净荷提供的一些附加信息,为此不要求通过主网络与冗余网络之间的冗余所提供的功能安全。例如,非安全关键数据(例如,用于控制机动车辆中的音频系统的信息)能使用冗余净荷的备用填充分片来发送,至于非安全关键数据检测错误可能不是必要的。通过出于有用目的重用填充分片内的备用带宽,这可提高网络的整体利用率。

在一些互连网络中,网络本身上的分组的格式可以与从连接到源端点的集成电路的请求节点接收到的分组的格式相同。然而,在一些系统中请求节点能使用与在互连网络内使用的内部协议不同的协议。例如,请求节点能在数据信道上提供数据并在单独的报头信道上提供报头。例如,报头能为存储器访问提供存储器地址并且数据信道能提供所对应的数据。另一方面,网络本身能使用组合分组格式,其中报头(地址)和数据都被组合到同一分组中。注意的是,在源端点处在报头信道上接收到的报头可以是与由源端点附加到网络分组的分组报头不同的信息片——可以根据由请求节点使用的源协议来定义报头信道上的报头,同时可以根据在互连网络本身中使用的网络协议来定义分组中的报头。因此,在一些情况下可以组合从请求节点接收到的数据和报头以形成主净荷。类似地,目的地端点能提取单独的数据和报头(地址)信息,然后在单独的数据和报头信道上将它们输出到连接到目的地端点的目的地节点。

在组合单独的数据和报头以形成主净荷并且从主净荷组合报头的系统中,这可使校验码的计算变得更复杂。一种方法可以是串行地处理数据和报头,使得基于报头和数据中的一个计算中间校验码,并且然后基于数据和报头中的另一个修改中间校验码。然而此方法会很慢并增加等待时间。

因此,在一些情况下源端点可以基于在数据信道上接收到的数据计算数据信道校验码,并且基于在报头信道上接收到的报头基于报头信道独立地计算报头信道校验码。然后可以组合数据信道校验码和报头信道校验码以形成已经经由冗余网络跨越网络路由的第一校验码。可以并行计算数据信道校验码和报头信道校验码,以减少等待时间。

然而,当将在目的地端点处对照第二校验码来比较第一校验码时,目的地端点可以从所发送的主净荷获得组合数据并且基于该组合数据计算第二校验码,并且所以可以假定报头位于比数据更重要的报头位置处或者反之亦然。因此,源端点可能需要生成由目的地端点复制计算性能的第一校验码,并且所以可能需要假定数据和报头中的一个与数据和报头中的另一个相比已被移位到比最高有效位更重要的位位置。这可通过变换数据信道校验码和报头信道校验码中的一个以生成变换校验码来完成,所述变换校验码对应于如果源端点顺序地而不是并行处理数据和报头信道则将会生成的移位校验码。例如可以计算二进制常数矩阵以模拟数据和报头中的一个的有效移位并且数据信道校验码和报头信道校验码中的对应一个可乘以该预先计算的矩阵以便应用变换。在一些实施方式中,其可以是被变换的数据信道校验码(即,假定了报头位于比数据不太重要的位位置处)。替代地,可以变换报头信道以模拟到比数据的最高有效位更重要的位位置的移位。

可在物理互连网络中实现上面讨论的技术,所述物理互连网络表示要包括在集成电路中的实际组件。

然而,还可以将该技术具体体现在非暂时性存储介质中,所述非暂时性存储介质存储表示如上面所讨论的互连网络的设计的电子设计文件。一般而言,电子设计文件可以指定要包括在互连网络中的组件,包括如上面所讨论的端点、主网络和冗余网络。电子设计文件能表示低级别的互连,诸如表示要通过互连包括的单独的门或晶体管,或者能在更高的抽象级别下表示,例如识别要布局在互连内的组件的某些基本块,其中每个块对应于门或晶体管的稍后可通过访问为每个标准块提供门级布局的单元库来读取的某个已知设计。使用电子设计文件来控制集成电路的自动化制造可能是有用的,因为现代系统中的集成电路中的晶体管或门的数量是如此之大,以致人类设计者不可能能够跟踪整体系统的详细设计。通过使用电子设计文件人类设计者可集中于更高级抽象和设计考虑事项,同时可稍后通过计算机基于提供组件的基本块的门级表示的先前准备的标准单元来填充单独的门级表示,所述组件可被以不同的组合组合以提供设计者所要求的功能性。然后可使用电子设计文件来控制制造设备以实际地制造集成电路。因此,在一些情况下电子设计文件可以由集成电路开发者提供给制造商以指示制造商根据所指定的设计来制造其集成电路。因此,在这种设计内表示的互连可以使上面讨论的特征中的任一个被具体体现在设计文件的数据结构内。

图1示意性地图示了数据处理系统2(例如,集成电路或片上系统)的示例,该数据处理系统2具有用于在请求节点与目的地节点之间路由数据访问请求并且将对这样的数据访问请求的响应从目的地节点路由到请求节点的数据访问路由电路4、6。在该示例中系统2包括许多主控设备,例如:一个或多个中央处理单元(CPU)7或CPU的集群;图形处理单元(GPU)8;用于控制通过通用串行总线(USB)与设备的交互的USB主控10;用于控制通过PCIExpress总线与连接到系统2的设备的交互的PCIe控制器12;数字信号处理器(DSP)14;显示控制器和/或图像信号处理器16;视频控制器18;系统控制器20,其能提供许多系统控制功能,诸如控制直接存储器访问操作、控制诸如加密或其他片上安全操作的安全操作或控制与***设备的交互;以及用于控制经由调制解调器的通信的调制解调器系统控制器22。所有主控7至22都可以能够作为用于发出要由系统的目的地节点服务的数据访问请求的请求节点。

系统可以具有可以作为目的地节点的许多组件,例如包括用于控制对动态随机存取存储器(DRAM)的访问的许多存储器控制器26;用于控制对静态随机存取存储器(SRAM)的访问的存储器控制器28;用于控制对只读存储器(ROM)的访问的存储器控制器30;用于控制对闪速存储器的访问的闪速存储器控制器32;用于控制对***设备的访问的***控制器34;以及用于控制经由网络接口与远程设备或另外的***设备的交互的网络接口控制器36。另外目的地节点可以包括数据路由电路4、6内的系统高速缓存38,其可缓存来自存储器系统26-36的一些数据,使得可为一些数据访问请求服务,而无需将它们传递到下游存储器组件。

在图1的示例中,主控7、8中的一些经由高速缓存一致互连4耦合,所述高速缓存一致互连4负责管理由相应的主控的高速缓存保持的缓存数据之间的一致性。高速缓存一致互连可以具有用于跟踪缓存在特定主控的高速缓存中的数据的探听过滤器40并且可以通过发出探听事务来对指定目标地址的读取和写入数据访问请求做出响应以校验与缓存在其他主控中的目标地址相关联的数据的一致性状态,使得如果一个主控请求对数据进行读取或写入访问,则另一主控的高速缓存中的相同地址的数据可以无效,或者如果脏,则可将该其它主控的高速缓存中的最新值提供给请求主控和/或写回到存储器系统。任何已知的一致性协议能被用于高速缓存一致互连4。

其他主控10至22(其可以不包括高速缓存)不需要经由高速缓存一致互连4连接。系统互连6将高速缓存一致互连4和非缓存主控10至22的输出与相应的目的地设备26至36耦合。系统互连6被用于将事务路由到基于通过请求指定的目标地址而选择的目标目的地节点,并且用于将响应路由回到请求节点。在图1中所示的配置中,系统互连6不需要负责相应的主控中的高速缓存数据之间的一致性的管理。然而,在其他示例中,不是提供如图1中所示的单独的高速缓存一致互连4和系统互连6,而是能提供与系统互连6类似的单个互连,所述单个互连连接主控设备和从控设备中的每一个并且还管理高速缓存一致性。

在此示例中,系统互连6被实现为片上网络(NoC),所述NoC包括许多路由器44以用于将许多主控接口46(从那里可从相应的主控设备7-22接收数据访问请求,包括读取和写入请求)耦合到许多目的地接口48(用于将请求输出到相应的目的地设备26-36)。每个主控接口46(也称为入站端口IP或源端点)负责对通过数据访问请求指定的地址进行解码以识别要经由路由器44通过片上网络6采取以到达与所选择的将为数据访问请求服务的目的地节点相关联的目的地接口48的特定路由)。在一些情况下主控接口46还可以将用于断言到片上网络6的请求的协议转换成要用于跨越片上网络6路由请求的内部表示。如果请求被转换成内部协议,则目的地接口48(也称为出站端口EP或目的地端点)可以将它们转换回成由请求使用的原始协议以便于由目的地服务。可替代地,目的地节点中的一些可以以由片上网络6使用的形式直接地处理请求,使得在目的地接口处不需要转换。对于每个目的地接口48,当它从目的地节点26-36接收到对数据访问请求的响应时,目的地接口48将该响应沿着由对应请求所采取的路径发回到发出了请求的主控接口46,并且主控接口46然后将响应返回给请求节点。

当存在大量主控设备和目的设备要连接时,如图1中所示的片上网络6可以是有用的,因为可将路由器44的布置设计为满足给定系统的要求,以便提供适当的带宽水平并且提供足够数量的路由器,以致可在没有信号幅度的显著损失的情况下容纳必须在芯片上路由请求的物理距离。对于预期要求大量业务的成对请求和目的地节点,那么可在它们之间提供附加路由器或信号信道,而其他成对请求/目的地节点可以具有更少的容量。

片上网络的使用不是必要的,并且在其他示例中能在系统互连6内使用不同的拓扑。例如,能使用主控接口与目的地接口之间的一系列点对点连接,或者可以使用环形拓扑,其中所有请求被断言到环形总线上然后循环直到它们到达所要求的目标接口为止。另外,能使用网状拓扑,其中每个接口46、48连接到网格上的点并且请求和响应可以在与对应主控接口和目的地接口46、48相关联的网格上的点之间遍历。然而,片上网络的使用可随着主控和目的地的数量增加而使得能实现更好的缩放。

尽管图1示出了用于在集成电路内的主控设备和从控设备之间路由信号的网络的示例,但在其他示例中,通过互连连接的设备可以不具有主-从关系,而是替代地能通过对等连接来连接设备。另外,在一些示例中通过网络路由的一些请求可以以互连其本身内的目的地节点(诸如一致性或高速缓存的点)为目标,而不是以互连外部的目的地节点为目标。

图2更详细地示出了片上网络(NoC)6上的组件的示例。NoC 6包括许多组件,可以根据将通过NoC 6连接的主控设备和目的地设备的特定布置而以不同的布局和布置组合所述许多组件。例如这可以包括以下组件中的任一个:

入站端口(源端点)46

入站端口从耦合到入站端口的请求节点接收数据访问请求。例如入站端口可以作为图1中所示的主控接口46中的一个。入站端口46可以对如通过从请求节点接收到的数据访问请求所指定的目标地址进行解码以识别应该选择哪一个出站端口48用于处理该请求,并且生成用于控制请求跨越NoC到所选择的出站端口48的路由的路由信息。另外,因为在NoC 6内路由的请求可以使用与由请求节点用于数据访问请求的协议不同的协议,所以入站端口可以包括用于将请求转换成网络上使用的传输协议的协议适配器50。入站端口46将经转换的分组伴随路由信息发送到网络上,所述路由信息识别应该如何跨越NoC路由与请求相对应的网络分组。入站端口46还可以提供其他功能,例如管理针对特定请求的资源分配以及控制为来自不同源的请求提供的服务质量水平以便使不同的主控设备对网络上带宽的竞争需要平衡。例如入站端口46可以具有用于缓冲与请求有关的跟踪信息并且缓冲对请求的响应的各种缓冲器。入站端口46可以基于缓冲器中的空间的可用性并且基于服务质量要求来控制资源的分配和请求的发出(例如提供对在给定时间可能待决的当前未决事务的数量的限制,或对来自给定请求模式的在给定时间内服务的事务的数量的限制)。

路由器54

每个路由器54负责路由从NoC 6的一个组件接收到的分组并且基于通过分组所指定的路由信息来选择分组应该被导向哪一个其他组件,所述路由信息已由对应请求源自于的入站端口46附加到分组。所提供的路由器54的特定布置和数量可以取决于特定系统要求。例如,如果入站端口和出站端口在集成电路上相隔大距离,则可能要求更多的路由器来提供分组的足够重复以在分组到达其目的地时维持信号电平。另外可以基于对特定成对端口46、48的预期带宽要求来选择路由器连接的拓扑。

出站端口(目的地端点)48

出站端口48接收表示由入站端口46生成并且经由路由器54跨越NoC路由的数据访问请求的网络分组。出站端口48具有用于将网络分组的传输协议转换回成由出站报告连接到的目的地节点所使用的协议的协议适配器58。某些形式的请求可能不要求来自目的地节点的响应。然而,对于确实要求响应(例如,读取响应、写入响应或两者)的请求,当从已为数据访问请求服务的目的地节点接收到对数据访问请求的响应时,响应可由出站端口48中的协议适配器58针对网络的传输协议适配,然后由出站端口48输出到网络上。在一些情况下,可以将响应分组路由回到接收到触发了那些响应的原始数据访问请求的入站端口46,例如沿着与通过数据访问请求分组所采取的路径相对应的路径但是在相反方向上或者在不同的路径上。在其他情况下,可以将响应分组路由到不同的入站端口,因为它们有时可能需要被提供给不同的请求节点到发出了原始请求的请求节点(例如由于相应的主控的高速缓存中的一致性状态变化)。因此再次协议适配器58可以附加指定要通过响应分组采取的路由的路由信息。当在入站端口46处接收到这些响应分组时,协议适配器50将它们转换成请求节点所期望的响应并且将它们转发到请求节点上。

注意的是,在一些示例中还可以在网络桥接器组件处(在两个网络部分之间的边界处)处理入站/出站端口的功能,使得网络桥接器可以出于至少一些目的有效地作为入站端口和出站端口。

数据大小调整器(resizer)70

当数据值被从一个组件提供给另一组件时,可能需要调整跨越网络发送的数据值的大小。例如,能将包括较小数量的分片的分组分成包括较小数据大小的较大数量的分片的分组,或者包括较小分片的分组能使分片被组合或者重新分区成较大大小的较小数量的分片。如果调整大小使得输入分片的数量和输出分片的数量遵循多对一或一对多关系,则大小调整器70可以作为如图2中所示的串行器-解串器(SERDES)。然而,大小调整器还可以提供数据分片的M:N调整大小,其中N和M都大于1,并且在这种情况下可以提供更一般的大小调整器来将与某组输入分片相关联的数据映射到与不同数量的输出分片相关联的数据。在一些实施例中,还可以将一定数量的接收到的分组转换为要在网络的剩余部分上发送的不同数量的分组。

时钟域交叉(CDC)72

如图2中所示,NoC 6可以横跨多个时钟域,其中一个时钟域中的组件根据时钟信号来操作,所述时钟信号在频率和相位中的一个或两个上与控制另一时钟域中的组件的时钟不同。例如,不同的时钟域中的相应的时钟信号可能是具有不同的时钟频率的异步信号,或者可能是具有相同频率但是在相位上偏移的同步时钟信号。在时钟域边界处,未对准的时钟意味着将上游域中的信号简单地连接到下游域中的对应信号路径能冒险使下游域以相对于源域的时钟的错误定时对信号进行采样。CDC 72可以提供缓冲器(一个在上游域侧而另一个在下游域侧)以用于暂时存储所发送的信息以允许下游域以相对于其时钟的正确定时对所接收到的数据进行采样。异步握手机制可以用于控制当数据从上游缓冲器传递到下游缓冲器时的定时,使得可在时钟域边界上安全地发送数据。

冗余网络组件

如图2中所示,除了定义用于跨越NoC路由主净荷的主网络的组件54、70、72之外,NoC还包括冗余网络,该冗余网络部分地重复主网络的主网络组件中的至少一些。例如,在图2中网络包括镜像主网络的对应的主路由器54的许多冗余路由器54-R。另外主网络的数据大小调整器70可以具有对应的冗余网络数据大小调整器70-R。时钟域交叉72可以在其内具有主信道和冗余信道两者以允许主信号和冗余信号跨越时钟域边界桥接,但是还可以包括交叉校验电路以在CDC 72处对照主净荷来校验冗余地发送的净荷。入站端口46和出站端口48也不重复,因为入站端口46负责取从接收节点接收到的请求并且将它映射到对应的主净荷和冗余净荷,而出站端口48从主净荷和冗余净荷中提取信息并将此信息映射到要发送到目的地节点的进行信息。通过设置提供至少部分地复制在主网络上行进的信息的冗余信息的冗余网络,这可被用于在出站端口48处进行错误校验以确定在主净荷或冗余净荷的路由期间是否已发生可能潜在地导致不正确操作的永久或瞬时故障。

应理解的是,片上网络6还可以包括图2中未示出的其他组件。

用于出于功能安全目的实现冗余的一种方法可能是冗余网络重复主网络的每个组件并且将主净荷的确切副本作为冗余净荷来路由。然而,这在附加处理逻辑和电路面积方面可能是昂贵的,因为可能必须扩展每个冗余路由器54-R和其他冗余组件70-R,并且因为在典型NoC中存在许多此类组件,所以这可以导致电路面积大大增加。

图3A图示了用于以减小的面积开销提供错误保护的示例。主网络102由用于将主净荷104从源端点(入站端口)46发送到目的地端点(出站端口48)的多个主网络组件形成。主净荷是提供要发送到目的地端点的实际数据的净荷。在此示例中,为了简明示出了仅将源端点链接到目的地端点的网络的路径(显然网络还将包括链接其他成对端点的其他路径)。另外,为了简洁在此示例中网络组件被示为用于选择要将净荷发送到哪一个下游路径的路由器54的序列,但是应理解的是,网络路径还能包括其他类型的网络组件。另外,在提供直接地链接对应成对端点的至少一些点对点连接的一些网络实施方式中,此类点对点路径可以不包括端点之间的任何路由器。

除了净荷数据之外主网络102还可以发送网络控制信息106,所述网络控制信息106被用于控制主净荷在网络上的路由。例如这些控制信号106可以指定识别要通过主净荷随着它跨越网络而遍历的路由器(或其他网络组件)的具体序列的路由向量,和/或定义所发送的分组的大小或格式的信息。

冗余网络100发送相对于在主网络102上发送的对应主净荷延迟的冗余净荷110。不是将整个主净荷104重复为冗余净荷110,而是冗余净荷110至少包括用于控制净荷的路由的网络控制信号106的子集以及提供主净荷104的摘要(digest)的第一校验码112。摘要具有比用于计算摘要的主净荷的对应部分更少的位。例如,第一校验码112可以是卷积码,例如基于主净荷104的至少一部分计算出的循环冗余校验(CRC)码。具有相对少数量的位(诸如6或8个位)的CRC可提供检测单位错误和多位错误两者的足够高的概率,以使得互连网络能够符合诸如汽车过程的应用所需的更高级别的功能安全认证。应理解的是,能使用除除CRC以外的其他类型的错误校验码,例如,SECDED ECC(单纠错、双错误检测纠错码)或DED(双错误检测)码。一般而言,应该选择能够检测在相同数据值内不正确的多个错误位的码的形式(例如奇偶校验码可能不够)。当冗余网络100发送使用具有比来自用来计算它的主净荷的对应部分更少的位的摘要错误校验码112的冗余净荷110时,冗余路由器54-R和其他冗余网络组件可用硬件更高效地实现并且需要不太复杂的控制逻辑以及更窄的数据信道和寄存器,从而节省电路面积。

当主净荷104到达目的地端点48时然后它经受与在源端点46处执行的相同的错误校验码计算,并且对照通过冗余网络100接收到的第一错误校验码112来比较所得到的第二错误校验码114。如果在第一错误校验码112与第二错误校验码114之间存在失配,则可发信号通知故障,并且触发故障处理响应。例如,故障处理响应可以包括请求数据的重传、向发起了请求的请求节点发信号通知已发生错误或者向单独的错误处理组件发信号通知已发生错误。在一些实施方式中,当检测到错误时可能没有必要将故障发信号通知给请求节点(或甚至给源端点)。例如,一些网络协议能针对每个请求发送相同信息的多个副本(并且因此还发送对应的冗余净荷的多个副本),使得如果从用于一对主/冗余净荷的校验码中的失配中检测到错误,则码匹配的主/冗余净荷的其他相同副本中的一个可用于生成要从目的地端点发送到下游电路的信息。另外,在一些系统(例如汽车)中可能没有必要实际地校正错误,只要通过错误值触发的任何不正确的动作被暂停即可,因为可以在实时系统控制期间周期性地发送更新值,并且如此如果一次检测到的值是不正确的,则系统可以基于先前发送的值继续直到下一次发送更新值为止。因此,在一些情况下所采取的响应动作可以简单地是防止错误值被写入到执行器以用于触发动作。另外,在一些情况下响应操作可以是更新跟踪已发生的错误的错误日志。

图3A示出了采取锁步方法的示例,其中冗余网络和主网络用独立但同步的时钟信号计时,并且冗余网络100上的冗余净荷110的传输相对于主网络102上的主净荷104的传输有延迟。在其他示例中可以在主传输与冗余传输之间不提供延迟,因为在一些情况下两个信道的物理分离可能足以针对共模故障提供鲁棒性(当单个故障原因(诸如粒子撞击)在主净荷和相关冗余净荷两者方面产生错误时发生共模故障)。例如,如果冗余网络和主网络的对应组件在系统芯片上是物理上遥远的,则这可以降低对共模故障的脆弱性。

虽然图2示出了冗余网络具有与主网络相同的拓扑的示例,但是这也不是必要的并且在一些情况下冗余网络能采取不同的拓扑。在这种情况下在主网络和冗余网络上提供的网络控制信号106之间可以存在某种差异。例如,与主网络相比较指示要遍历的路由器的序列的路由向量在冗余网络上可以是不同的。

总之,在图3A中提供了诸如路由器的中间NoC组件的缩减冗余版本,其中控制逻辑被复制,但是代替净荷,仅错误检测码被处理。至少一些网络控制信号(例如链路层(LINK)和物理层(PHY)信号)被复制并用作冗余版本的输入。在源端点处输入基于净荷的错误检测码(EDC)。在目的地端点处,从主净荷生成另一EDC并与已通过NoC的EDC相比较。任何差异都指示故障。在中间节点处不使用DCLS(双核心锁步)比较或EDC校验:在端点处仅需要错误检测和报告。优点是,因为净荷信号和冗余EDC是以锁步发送的,所以在LINK和PHY层信号中的至少一些上不要求DCLS错误校验。这些层上的大多数类型的错误将产生EDC和与之相关的主数据未对准或失配。所选取的ECD码是可检测在中间逻辑中可能发生的种类的多位错误(除非在没有中间组件的单个链路上使用它,否则在此情况下,奇偶校验可以是适当的)。NoC可以并入网络内宽度转换。

虽然图3A将冗余网络示出为与主网络102物理上分离的信道,但是这不是必需的,并且在一些情况下冗余网络能至少部分地重用用于主网络的相同物理信道。例如,如图3B中所示,诸如端点46、48的网络组件能具有与共享相同物理传输信道119的许多虚拟信道相对应的缓冲器118。如图3B中所示,共享物理传输信道119能包括通过共享网络与路由器54或选择哪些具体路径被用于发送的每个净荷的其他网络组件的多条路径。共享物理信道上的此类路由器54本身还可以具有与端点类似的虚拟信道缓冲器118。通过提供用于独立地缓冲与每个虚拟信道相关联的分组的单独的缓冲器118,可以(例如通过与具有缓冲器的组件相关联的仲裁器)应用独立流控制来控制公共物理信道上的带宽何时被用于每个虚拟信道。每个网络组件可以在与给定虚拟信道相关联的缓冲器内保持分组或分片,直到仲裁器允许给定虚拟信道在共享物理信道上具有另一时隙为止。与图3A中所示的方法不同,通过使用虚拟信道,不需要提供不能被主净荷使用的专用单独的冗余网络,所以此方法可降低实现冗余错误校验功能性的电路面积成本。

在使用如图3B中所示的虚拟信道的布置中,可以将主净荷104和包括第一错误校验码112的冗余净荷110映射到不同的虚拟信道上的分组,例如其中在图3B中所示的示例中通过虚拟信道1发送主净荷104并且通过虚拟信道2发送冗余净荷110。一旦已在目的地端点处的对应的虚拟信道缓冲器118中接收到每个净荷,就可以从在虚拟信道1上接收到的主净荷生成第二错误校验码114并且对照通过另一虚拟信道2接收到的第一错误校验码112来比较第二错误校验码114,并且如果像上面针对图3A所讨论的那样存在失配则可触发响应动作。

网络组件可以使用优先级方案来确定给定物理信道何时可被用于发送每个虚拟信道的分组。在一些示例中,可以向承载冗余净荷110的虚拟信道指派比承载主净荷104的虚拟信道更高的优先级,使得在虚拟信道之间进行仲裁时,优先地选择承载冗余净荷的虚拟信道。这意味着承载错误校验码112的冗余净荷110很可能遍历网络以在所对应的主净荷104之前到达目的地端点48,从而准备好在主净荷到达时与主净荷104相比较。虽然在主净荷104之前优先考虑错误校验码可能似乎是违反直觉的(一个人会认为避免使主净荷104延迟是最重要的),但是在实践中这意味着主净荷104不可能相对于在未执行错误校验的情况下将会接收到它的正常定时显著地延迟(因为虽然冗余净荷可能稍微使主净荷延迟,但是与在尚未发送冗余净荷的情况下会引发的延迟相比,其他中间分组不太可能会使主净荷延迟任何更多的延迟)。相比之下,如果在冗余净荷110之前优先考虑主净荷104,则可能的是在具有比用于冗余净荷的虚拟信道大但是比用于主净荷104的虚拟信道小的优先级的虚拟信道上的中间分组能有效地使主净荷延迟(即使它们是较低优先级),因为它们导致冗余净荷的传输延迟,这意味着主净荷必须等待,使得可比较错误校验码。反直觉地,可以通过在与用于主净荷104的虚拟信道相比具有更高优先级的虚拟信道上发送冗余净荷110来减少通过此类中间分组所引起的主净荷104中的延迟。

一些网络组件可以具有用于在公共传输信道119上将净荷发送到后续网络组件的多个输出端口。可以在虚拟信道之间共享端口,使得耦合到给定下游组件的给定端口能被用于虚拟信道1或虚拟信道2。当通过不同的虚拟信道发送主净荷104和冗余净荷110时,至少一个网络组件可以为所对应的主净荷104和冗余净荷110选择不同的输出端口,使得用于给定传输的主净荷104与其对应的冗余净荷110相比较可以在网络上采取不同的路由。例如,与虚拟信道1上的主净荷104相比较可以为虚拟信道2上的冗余净荷110选择路由器的不同序列,但是最终可以在目的地端点48处接收到两个净荷104、110。与在同一端口上顺序地发送主净荷104和冗余净荷110相比较,这可有助于减少通过错误校验所引起的额外等待时间,因为它可以允许通过公共网络119的不同分支至少部分地并行发送主净荷104和冗余净荷110。

如果至少一个虚拟信道(例如,图3B中的虚拟信道2)被指派来仅发送冗余净荷110,则与该虚拟信道相关联的每个网络组件处的缓冲器118可以具有比与用于主净荷104的其他虚拟信道相关联的缓冲器118更小的存储容量,因为在冗余净荷110中发送的错误校验码和控制信息可以具有比在主净荷104中发送的对应数据和控制信息更少的位。通过减小为冗余净荷传输保留的虚拟信道中的缓冲器118的大小,这有助于减少电路面积。

如在下面更详细地讨论的,EDC适用于整个分组并且可以每分组被发送仅一次,通常与最后分片一起。最后分片包括在冗余逻辑中复制的识别符。可以用空分片填充冗余数据传输以维持锁步。在一些实施方式中,可在这些分片中发送其他数据,但是在其他情况下,为了节省功率,逻辑可被布置为使得这些填充分片不激活寄存器写入。

例如,可以遍及整个净荷(考虑有效字的位置,像在下面进一步描述的那样)计算CRC-8。对于随机错误,精心选取的CRC可对于多位错误给出99.6%检测率,并且给出单位错误和长度8或更少的错误的突发的100%检测率。

此方案具有如下优点:除了在端点处之外不需要主NoC组件与冗余NoC组件之间的连接。这可以通过避免连接通常在单独的但同步的时钟上的域中的逻辑的长路径来简化实施方式。它还使逻辑分区变得更容易,使得当不要求功能安全时可给冗余部分断电或关闭时钟。

尽管在示例图3A中比较校验码112、114所在的唯一点是在目的地端点48处,但在具有时钟域交叉(CDC)72的一些网络中,在CDC 72处还可以存在附加校验以确定在冗余网络上发送的第一校验码112是否与根据在主网络102上发送的主净荷计算出的第二校验码匹配。这是因为,为了在时钟域交叉下游的组件中实现锁步功能性,在CDC 72的下游时钟域侧中再生冗余信号可以是有用的。主传输与冗余传输之间的延迟可能需要在以锁步操作的组件处保持恒定,使得它可信任比较逻辑实际上正在比较相关主净荷和冗余净荷(而不是与不同信息相对应的净荷)。当信号跨越时钟域边界时,未对准的时钟意味着在下游域中对冗余净荷进行采样的定时可以相对于主净荷的采样而变化。通过在下游时钟域中的CDC处再生校验码,可以恢复主净荷与冗余净荷之间的相对延迟。然而,在这种情况下可以在CDC72处执行从上游时钟域接收到的冗余地发送的第一校验码对照根据主净荷计算出的第二校验码的附加校验,以校验在通向CDC 72的网络的部分中或者在CDC 72它本身中是否已发生任何错误。否则,可能无法在目的地端点处检测到任何先前发生的错误,因为经再生的校验码将基于已经错误的主数据在CDC 72处生成,并且如此将与错误的主数据匹配,从而防止错误检测。

因此,CDC 72可以通过比较校验码来校验主净荷和冗余净荷是否匹配,并且如果存在匹配,则从下游时钟域中的主净荷的接收值再生用于冗余净荷的第一校验码,以恢复主净荷与冗余净荷之间的正确定时。关于校验码进行校验和再生,CDC 72有效地作为目的地端点(校验从实际源端点接收到的码)和源端点(生成要发送到实际目的地端点的校验码),从而有效地将采取的整个路径划分成多个分段,每个分段具有单独的码生成、传输和校验序列。因此,在一些情况下能将CDC 72认为是源端点或目的地端点。

如图4中所示,可以使用分组格式来在主网络上发送主净荷,所述分组格式在具有可变大小和格式的分组中发送数据。分组可以是响应于来自请求节点的给定请求而在入站端口处生成的数据传输的单元。每个分组可以具有单独的报头,所述单独的报头提供关于分组的格式的信息。分组可以由一个或多个分片(或流控制数字)120形成。分片是数据的最小单元,对于所述数据可独立于其他分片的路由而控制通过网络的分片的路由和/或流控制。例如如果在下游组件中没有接受分片的空间,则网络可以包括使下一个分片的传输延迟的机制。

每个分片120可以由给定基础单元大小的一个或多个分片分段122形成。因此每个分片120的大小是可变的。图4示出了可能的数据分组格式的若干示例。上部两个示例示出分片120包括单个分片分段122的分组。下部两个示例提供具有2个或4个分段122的分片120。提供可变大小的分片可用于使得网络的不同部分能够使用不同的位宽度的物理信道。这可用于允许网络的预期要求大业务量的一些部分利用网络的不太密集地使用的部分变得有较宽的物理信道。

另外,一些分组格式可以提供具有比其他格式更大数量的分片120的分组。图4示出了分别具有1分片、2分片或4分片分组的不同示例。应理解的是,这些仅仅是可能的分组格式的一些示例。通过允许从可变数量的分片形成分组,这对于处理不同的入站/出站端口可以具有与集成电路2的对应节点不同大小的接口的情况并且对于网络内宽度转换可以是有用的。例如一些上游或下游组件可能要求通过更宽或更窄的信道提供数据。因此,通过基于从请求节点接收或者要发送到目的地节点的数据的大小改变每分组的分片的数量,这使得能够视需要而定增加或者减小整体分组大小。

在具有单个分片的分组格式中,该分片120作为报头分片120-H,所述报头分片120-H包括识别分组的格式的分组报头信息124。报头分片可以包括一个或多个分片分段122(包括指定报头的第一分片分段),其可以提供另外的净荷数据。对于包括多个分片120的分组,分组至少包括报头分片120-H和尾部分片120-T。如果分组包括多于两个分片,则分组还包括一个或多个中间分片120-I。中间分片120-I或尾部分片120-T允许分组紧跟报头分片120-H之后提供附加数据。不管分组格式,报头124都指定用于控制分组的路由的信息,例如识别目的地端点和路由。在一些示例中,报头124还能定义指示分组的格式的信息,例如分片的数量和/或每分片的分片分段的数量。然而,在其他示例中能替代地通过包括在尾部分片120-T中以指示尾部分片120-T是分组的最终分片的标志来指定分片的数量。可以在与每个分片相关联的PHY层信号中指定每分片的分片分段的数量。

另外,分组可以指定指示相应的分片120的分片分段122中的哪些包含有效数据的分片有效性信息。能在分组报头124中指定分组的分片有效性信息,或者可替代地可在该分片它本身内指定与特定分片有关的分片有效性信息。取决于在入站端口46的协议适配器50处(或者在数据大小调整器70处)组装分组的方式,分片分段中的一些可以不包括任何有效数据。可选地,必要时可以通过数据大小调整器70跨越网络中途丢弃无效分片分段122。数据大小调整器70可以负责在网络处的中间点处要求的分组格式的任何变化以便使由网络的一个部分使用的分组格式适于在网络的另一部分中使用的不同的分组格式。

除了指定分组的格式的物理层信号之外,报头124还能包括链路层信号,所述链路层信号指定用于控制分组跨越网络的路由的信息,例如包括用于识别要遍历的路由器54的序列的路由向量、在中间路由分组的源端点46和目的地端点48的识别符和/或可以流控制的服务质量信息(例如影响在网络上竞争带宽的不同分组之间的仲裁或优先级)。

虽然在图4中,为了简洁仅在报头分片120-H中示出报头124,但是在一些情况下还能在每个后续分片中提供报头信息中的一些以指示该分片的性质。另外,在一些实施方式中报头能横跨多个分片。

能使用与主网络上的主净荷确切相同的分组格式来发送冗余网络100上的冗余净荷。然而,因为冗余净荷可以比主净荷小得多(因为要在冗余净荷中发送的第一校验码112可以比用来计算它的原始数据小得多),所以对于冗余净荷简单地重用主分组格式可能浪费空间并且在网络的在主网络上提供宽物理信道的区域中的冗余网络内不必要地要求宽物理信道。

替代地,如图5中所示,冗余净荷可以使用与主净荷不同的分组格式。在主净荷使用每分组具有F个分片120并且每分片具有N个分片分段122的分组格式的情况下,冗余净荷可以每分组包括相同数量F的分片120,但是可以每分片提供1个分片分段122,而不管在主分组格式中定义每分片的分片分段122的数量的值N如何。

冗余净荷可以包括报头124,所述报头124至少复制主净荷的报头124的物理(PHY)层信号(可选地可以省略一些链路层信号,但是仍然可以提供通过冗余网络的路由器来控制路由的路由向量的路由版本)。另外冗余净荷还包括在源端点46处生成(或者在CDC 72处生成)的第一校验码112。可以在分组的尾部分片120-T中提供第一校验码112,因为它可以随着每个分片被处理和发送而被卷积地计算,并且所以在整个分组已被处理之前不能被完全计算。报头124和第一校验码112的组合大小可以足够小以装配在单个分片分段122内部(使得如果主净荷包括单个分片分组,则可在冗余净荷的单个分片中包括报头124和第一校验码112两者)。因此,不需要提供具有多于一个分片分段的分片。通过不管N(主净荷中的每分片的分片分段的数量)都将冗余净荷中的每个分片120局限于单个分片分段122,这避免为冗余网络的连接提供和在主网络中提供的一样宽的信道的需要,从而通过减小有线连接以及用于锁存通过这些连接和任何比较逻辑接收的信号的寄存器的宽度来节省电路面积。

在主净荷包括分组中的多于一个分片的情况下,尽管冗余净荷能单独装配在报头分片120-H内,然而包括一个或多个填充分片120-I或120-T以使冗余净荷中的分片的数量平衡以与主净荷中的分片的数量匹配。这是有用的,因为这确保在主净荷之后的给定分片的接收与冗余净荷的对应分片的接收之间的相对时间偏移在分组中自始至终保持恒定,使得任何双核心锁步功能性可在对应传输之间的时间偏移保持确定性的假定下正确地操作。相比之下,如果冗余净荷中的每分组的分片的数量与主净荷的那些不同,则这能导致在冗余侧的定时相对于主侧而变化。

尽管冗余净荷的填充分片不需要输送任何有效数据,然而它们还能用于输送独立于主净荷并且不需要被保护免于通过位分片或其他瞬时或其他永久故障所引起的错误的一些其他数据。例如,能重用填充分片中的空间以提供在数据损坏的情况下不会有问题的非安全关键数据。可替代地,如果不存在要发送的非安全关键数据,则填充分片能简单地用零或某种其他虚设数据来填充,所述某种其他虚设数据是无意义的并且在端点处接收时被丢弃。因此,对于冗余网络的冗余大小调整器70-R,执行的调整大小可以包括***或者移除填充分片以与在主净荷的每个分组中发送的分片的数量匹配,但是可能不需要实际地调整每分片的分片分段的数量的大小。相比之下,主网络上的主大小调整器70还可以执行每分片的分片分段的数量的调整大小。如果每分片的分片分段的数量在主网络中改变,则主大小调整器70可以在以新分组格式提供的分片的数量之中重新分配给定分组的数据,以确保可以以不同的格式向下游组件发送所接收到的分组中的所有数据。

来自端点的其他校验码计算的CRC计算可以使用对其分片的调整大小和由大小调整器70执行的分组重新格式化而言是不变的校验码的形式。也就是说,可以遍及整个分组计算校验码112,而不是每分片提供单独的校验码。

CRC是具有如下性质的校验码的示例:当针对给定数据量(诸如要发送的总体分组大小)来计算时,计算出的码对该数据量被划分成的分片的数量而言是不变的。例如可以卷积地计算CRC,使得响应于接收到的每个连续分片而更新CRC的最新值,并且然后由最终分片产生的CRC指示用于整个分组的校验码。CRC可以不管假定分组是被划分成某个大小的一定数量的分片还是被划分成每个大小为一半的两倍数量的分片或者每个大小为两倍的一半数量的分片都具有相同的值。因此,通过遍及整个分组定义校验码112并且使用这对用于发送给定数据量的分片的数量而言不变的一种类型的码,这意味着到达目的地端点48的校验码将不管由数据大小调整器70应用的调整大小都是相同的,使得不需要在数据大小调整器70处重新计算校验码。这是有用的,因为校验码的任何重新计算将暗示将需要对照从主净荷导出的第二校验码来校验先前接收到的校验码,所以这因此要求主网络与冗余网络之间的连接,这将增加电路面积。因此,使用对分组结构而言不变(不管给定大小的分组被划分成的分片的数量/大小都提供相同码)的校验码可有助于改进面积效率。

还可使校验码计算变得对给定分片120内的任何有效分片分段122的位置而言不变。如图6中所示,计算校验码的电路(其能被包括在用于生成第一校验码112的源端点中、在下游时钟域中再生第一校验码112的时钟域交叉72中或者在用于生成要对照第一校验码112来比较的第二校验码114的目的地端点48中)可以将有效分片分段合并到相邻位位置中,以形成被输入到校验码计算的有效数据的连续块130。通过使有效分片分段占据连续位位置,这意味着即使在跨越网络的传输期间数据大小调整器70也丢弃一些无效分片分段或者***附加无效分片分段以适应所要求的分组格式的任何变化,所计算出的校验码对那些无效分片分段的存在而言并且对分组内的有效和无效分片分段的特定布置而言是不变的。再次,这意味着不需要在大小调整器70处重新计算校验码,这由于上面给出的原因而节省电路面积。

在一个示例中,用于基于一个分片的处理更新CRC块的寄存器状态更新可通过以下等式来表示:

X1=FVl·X0+F′Tl·DsT-1+…+F′2l·Ds1+F′l·Ds0 (等式1)

其中X0是表示从任何先前的分片生成的中间CRC的当前寄存器状态,X1是表示由当前分片生成的新中间CRC的更新状态(或者在当前分片是分组的最终分片的情况下为最终CRC),Dsi是第i个有效分片分段的数据,F′(i+1)l是要应用于第i个有效分片分段的二进制矩阵常数(可预先计算二进制矩阵常数并且每个分片分段具有它自己的矩阵常数)。在分片中总共有T个分段,其中V是有效的,所以二进制矩阵常数FVl取决于有多少个分片分段是有效的。

图7示出用于执行此合并的电路实施方式的特定示例。校验码计算电路(其可以被包括在入站端口46、出站端口48或CDC 72中)包括交叉开关电路140以基于指定有效分片分段122的位置的分片分段有效性信息(we)142来选择哪些分片分段要输入到许多矩阵乘法器144以用于计算校验码(每个矩阵乘法器144提供来自上面所示的等式1的乘法F′(i+1)l·Dsi中的一个)。因此,交叉开关电路140将分片中的第一有效分片分段供应给第一矩阵乘法器144-0,将第二有效分片分段供应给第二矩阵乘法器144-1,依此类推。如果存在至少一个无效分片分段,则最终矩阵乘法器144-n(以及可能的一个或多个其他乘法器144)被供应有零作为乘法器的输入,使得乘法器的输出将不会影响最终输出。因此,不管有效分片的位置,有效分片分段都被输入到与对应于分片中的最低有效位位置的连续块相对应的矩阵乘法器。换句话说,交叉开关电路140屏蔽输入到数据矩阵乘法器144的块的移位后无效数据。替代方案将是屏蔽矩阵乘法器输出(而不是其输入),这将是更加面积高效的。然而,如图2中所示的对矩阵乘法器144的输入的屏蔽对定时来说是更好的(减少等待时间)。

状态矩阵乘法器146被提供来实现来自上面所示的等式1的附加乘法FVl·X0。因为FVl取决于有效分片分段的数量,所以值Fx0至Fxn(对于V的不同值对应于FVl的可能值中的每一个)被供应给对应的状态矩阵乘法器148-0至148-n以用于与先前的中间校验码状态X0相乘。状态复用器152包括用于对分片有效性信息142进行解码以确定V(有效分片分段的数量)的状态解码器154,并且包括屏蔽供应给除对应于有效分片分段的实际数量的矩阵乘法器148以外的所有状态矩阵乘法器148的中间校验码状态X0的逻辑。因此,状态矩阵乘法器148的输出中的一个除外将为零并且另一输出对于有效分片分段的相关数量V提供正确值FVl·X0。使用异或树150来将状态矩阵乘法块146的输出与数据矩阵乘法器144中的每一个的输出组合,以提供等式1所要求的各项的加法。异或树的结果是被锁存在寄存器156中的新CRC值X1。在后续时钟周期中,来自先前周期的新CRC值X1被用作用于状态矩阵乘法的输入X0

应理解的是,图7的示例电路仅仅是一个实施方式,并且其他实施方式能实现用于计算CRC的相同结果。

图8至图10图示可以在在请求节点与源端点之间使用的通信协议为跨越单独的信道160、162的传输提供报头值和数据值的情况下使用的校验码计算的另一个特征。注意的是,在报头信道160上发送的报头可以与在互连网络内的协议中使用的分组报头124不同。例如由请求节点使用的总线协议(例如,由一致互连4使用的一致性协议)中的报头信道160可以提供存储器地址和表征要执行的存储器访问的其他数据。相比之下,网络协议中的分组报头124可以指定分组格式和用于通过NoC 6控制路由的信息。在报头信道160上接收到的报头信息可以作为净荷数据的一部分被包括在NoC 6上使用的一般传输协议格式内。

如图9和图10中所示,当要从报头信道160和数据信道162两者导出单个校验码112时,结果得到的校验码应该假定首先处理数据信道162(图9)或者首先处理报头信道(图10)。不管怎样,将CRC计算以滑动方式应用于报头和数据中的第一个并且然后应用于报头和数据中的另一个将给出相同结果,好像报头和数据已被合并以形成单个数据值一样,其中报头和数据中的一个在比另一个更重要的位位置处。在图9中,报头被移位到比数据更重要的位位置,然而在图10中它是恰好相反的并且数据被移位到比报头更重要的位位置。如图9中所示,如果在数据信道162上接收到的数据净荷可具有可变大小,则为了确保对数据大小而言不变的CRC的确定性计算,如果数据大小小于所支持的最大大小则可用零填充数据,使得报头不管数据大小都总是在相同位位置处开始。如果报头总是固定大小则在图10中不要求这种填充。然而,在报头可具有可变大小的其他示例中那么还可以将报头填充到图10的示例中支持的最大大小。

基于来自报头信道160和数据信道162两者的信息来计算CRC的一种方法可能是以滑动方式顺序地应用CRC计算,首先对在图9和图10中示出在不太重要的位位置处的数据/报头中的一个应用CRC计算,然后对示出在更重要的位位置处的数据/报头中的另一个应用CRC计算。然而,顺序地做此计算的问题是这非常慢,从而损害等待时间和带宽,如此这对一些实施方式来说可能不是可接受的。

替代地,如图8中所示,可以并行方式计算组合CRC(第一校验码)112。基于分别来自数据信道162和报头信道160的信息并行计算单独的数据校验码和报头校验码。随后,异或门174(或加法器)将数据校验码和头校验码相加以形成组合第一校验码112。如下面的等式中所示,可通过数据/报头校验码计算电路170、172中的一个中的矩阵乘法来模拟在图9和图10的组合数据/报头值中的更重要的位位置处的数据/报头中的一个所要求的有效移位:

CRC(Dpacket)=CRC(xp·Dms+Dls)

=CRC(xp·Dms)+CRC(Dls)

=Fp·CRC(Dms)+CRC(Dls) (等式2)

其中:

Dpacket是要基于数据/报头信道为下游网络生成的组合分组数据(例如如图9和图10中所示)

Dms是来自数据信道162和报头信道160中的一个的在组合分组数据中的最高有效位位置处提供的信息(例如,图9中的报头,或图10中的净荷数据)。

Dls是来自数据信道162和报头信道160中的一个的在组合分组数据中的最低有效位位置处提供的信息(例如图9中的净荷数据,或图10中的报头)。

Xp是Dms需要被移位以达到适当的最高有效位位置的量(例如xp可以等于2n,其中n是Dls中可能的位的最大数量。

Fp是用于在Xp个零中移位的二进制矩阵常数。

为了实现等式2,如图8中所示,数据/报头CRC计算电路170、172中的每一个均接收数据/报头数据和对应的矩阵常数作为输入。对于数据/报头电路170、172中的对应于Dms的一个,所供应的数据/报头矩阵可以包括考虑矩阵常数Fp用于模拟移位作为CRC计算的一部分。异或门174组合两个CRC计算电路170、172的输出以表示以上等式2中的加法,使得输出是要用作网络的冗余净荷中的第一校验码的组合CRC 112。

换句话说,在CRC计算电路170、172中的一个处使用附加矩阵常数Fp将数据信道校验码和报头信道校验码中的一个有效地变换成与移位校验码相对应的变换校验码,如果源端点在将数据和报头中的一个移位到比数据和报头中的另一个的最高有效位更重要的位位置之后计算出数据信道校验码和报头信道校验码中的一个则会生成所述移位校验码。

因此,利用此方法可并行执行更多的CRC方法以减少等待时间并且改进性能和带宽。不管数据或报头是否处于组合值的不太重要的末端处,通过使用并行方法可减少等待时间并且因此改进性能。

当报头信道信息160总是包括单个分片时,图8中所示的方法可以是有用的。如果报头能包括多个分片,则最后报头分片可以使用与其他报头分片不同的矩阵值,在此情况下可提供用于在报头分片矩阵的不同值之间复用的附加逻辑。

图11示意性地图示可以使用自动化设计技术来简化设计过程的电子设计过程的示例。执行设计过程的较早阶段的系统设计者或电子设计工具可以指定各种系统要求220,诸如要用于集成电路互连的端口46、48的物理位置和/或预期使用要求(例如,端口的哪些对很可能要求它们之间的通信链路以及端口的不同对的预期带宽水平取决于预期数据业务或不同主控相对于彼此的优先次序)。在数据处理装置上执行的NoC配置工具程序222可以使用系统要求以及提供可被选择用于组装NoC的各种NoC组件的高级表示的组件库224,以生成电子设计文件226,所述电子设计文件226提供NoC组件的高级布局并且指定那些组件的各种参数,诸如用于配置组件的特定性质的参数。

例如,组件库224能指定一系列组件,诸如如上面关于图2所讨论的入站端口46、出站端口48、路由器54或大小调整器70以及对应的冗余网络组件。对于这些类型的组件中的一些,能在组件库中指定多种替代类型以供取决于系统要求的特定需要而选择。可替代地能提供单一类型的组件,但是NoC配置工具222可以将某些变量指定为给定组件的性质,所述变量可以调谐NoC的给定组件的行为或者控制该组件如何被制造。例如,用于入站端口的参数能指定与对应的请求节点的接口的大小、预期需要网络业务的路由的目的地端口的子集、要用于路由到特定目的地的分组的分组格式等。NoC配置工具222可以基于被输入的系统要求确定此类要求。NoC配置功能的一部分可以是布局要为功能安全校验提供的冗余网络的高级配置、入站端口处的校验码生成以及要在出站端口处提供的错误校验逻辑。例如,可以选择入站端口46和出站端口48的特殊“功能安全提供”版本(与入站端口46和出站端口48的可以在为不要求功能安全的系统生成NoC设计时选择的替代版本相反)。取决于如系统要求220中所指定的功能安全的级别,能为其他网络组件激活类似的判定。

由NoC配置工具222生成的高级布局文件226被提供给电子设计自动化(EDA)工具228,所述EDA工具228使用在比NoC组件库224更详细的级别下指定集成电路组件的标准单元的低级单元库230,并且生成集成电路设计文件232,所述集成电路设计文件232指定要为集成电路生成的特定门或晶体管,所述集成电路包括由NOC配置工具222设计的互连。在一些情况下EDA 228可以实际地包括许多工具,所述许多工具逐步地迭代设计以产生一个或多个详细的电路级表示。EDA工具228还可以执行定时分析以校验所设计的电路是否将满足其定时要求(例如测试建立和保持违规),并且可以在早期尝试未通过定时分析的情况下迭代设计。通过设计文件232表示的最终制备的集成电路设计被提供给制造商,所述制造商使用设计文件来控制制造设备234以制造在晶体管之间具有所要求的连接的集成电路以便实现包括互连的集成电路。

图12示出图示生成表示互连网络(诸如上面讨论的系统互连(NoC)6)的设计的电子设计文件的方法的流程图。在步骤300处给系统工具提供定义要生成的互连网络的性质的设计规范数据。例如设计规范数据可以指定要使用网络来连接的节点的数量、由那些节点中的每一个使用的信道的数据宽度、预期使用要求(诸如请求节点和目的地节点的特定组合所要求的服务级别或带宽)以及所要求的功能安全级别(例如指定所要求的ASIL功能安全分类中的一个,例如级别C或级别D)。响应于设计规范数据,在步骤302处系统工具222为网络生成高级布局,例如包括定义主网络和冗余网络的路由器、大小调整器或其他组件的布置以便提供通过设计规范数据指定的要求。设计可以包括实现冗余网络并且被指定为提供用于像上面所讨论的那样(要么显式地在通过工具生成的高级布局信息226中,要么隐式地在高级布局中指定的所选单元类型对应于已被给予将实现这些功能安全特征的集成电路设计的单元库230中的单元的意义上)生成和校验错误校验码的逻辑的组件。高级布局指定要在相对抽象级别下生成的组件,例如仅仅指定要提供的单元类型的识别符以及可选地用于调整该组件的性质的一个或多个配置参数,但是不一定指定要为该组件生成的确切晶体管级布局。在步骤304处输出识别高级布局的设计文件。然后能使用标准单元库230来将这个输入到EDA工具228以在设计文件228中为由系统工具222指示的高级组件中的每一个提供具体门级设计,以生成然后可被用于制造电路的具体集成电路设计232。

在以下条款中陈述另外的示例布置:

(1)一种用于在集成电路的多个节点之间提供数据传输的互连网络,包括:

多个端点,所述多个端点各自用于与所述集成电路的相应的节点交换数据;

主网络,所述主网络用于从源端点向目的地端点路由主净荷;

冗余网络,所述冗余网络用于向所述目的地端点路由冗余净荷,所述冗余净荷包括基于所述主净荷的至少一部分计算出的第一校验码,所述第一校验码具有比所述主净荷的所述至少一部分更少的位;

其中,所述目的地端点包括错误校验电路,所述错误校验电路用于执行错误校验操作以基于经由所述主网络接收到的所述主净荷计算第二校验码,并且基于所述第二校验码与经由所述冗余网络接收到的所述第一校验码的比较来验证所述主净荷的完整性。

(2)根据条款(1)所述的互连网络,其中,所述主净荷包括含有可变大小的可变数量的分片的分组。

(3)根据条款(2)所述的互连网络,其中,所述冗余网络被配置为发送包括与所述主净荷的对应主分组相同数量的分片的所述冗余净荷的冗余分组。

(4)根据条款(3)所述的互连网络,其中,当所述主净荷的分片的数量大于发送所述冗余净荷所要求的分片的最小数量时,所述源端点被配置为在所述冗余净荷中包括至少一个填充分片,所述至少一个填充分片提供独立于所述主净荷的数据的虚设数据或非冗余地发送的数据。

(5)根据条款(1)所述的互连网络,其中,所述源端点被配置为从所述集成电路的对应源节点接收数据信道上的数据和报头信道上的报头,并且组合所述数据和所述报头以形成所述主净荷;并且

所述源端点被配置为基于在所述数据信道上接收到的所述数据计算数据信道校验码并且基于在所述报头信道上接收到的所述报头计算报头信道校验码,以及组合所述数据信道校验码和所述报头信道校验码以形成所述第一校验码。

(6)根据条款(5)所述的互连网络,其中,所述源端点被配置为:变换所述数据信道校验码和所述报头信道校验码中的一个以生成与移位校验码相对应的变换校验码,如果所述源端点在将所述数据和所述报头中的一个移位到比所述数据和所述报头中的另一个的最高有效位更重要的位位置之后计算出所述数据信道校验码和报头信道校验码中的一个则会生成所述移位校验码;并且基于所述变换校验码以及所述数据信道校验码和所述报头信道校验码中的另一个形成所述第一校验码。

在本申请中,单词“被配置为……”用于意味着装置的元件具有能够执行定义的操作的配置。在此上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可以被编程来执行功能。“被配置为”不暗示需要以任何方式改变装置元件以便提供所定义的操作。

尽管已经在本文中参考附图详细地描述了本发明的说明性实施例,然而应当理解的是,本发明不限于那些精确的实施例,并且在不脱离如由所附权利要求限定的本发明的范围和精神的情况下,本领域的技术人员可在其中实现各种变化和修改。

36页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种路由备份方法、装置、服务器及可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!