用于执行片上网络(NoC)中的事务聚合的系统和方法

文档序号:1952544 发布日期:2021-12-10 浏览:16次 >En<

阅读说明:本技术 用于执行片上网络(NoC)中的事务聚合的系统和方法 (System and method for performing transaction aggregation in a network on chip (NoC) ) 是由 B·德勒斯库里 M·弗兰克 于 2021-06-08 设计创作,主要内容包括:本文公开了用于聚合从多个发起器通过片上网络(NoC)被发送到目标的相同请求的系统和方法。请求被标记为用于聚合。NoC使用请求聚合器(RA)作为聚合点来聚合被标记为用于聚合的相同请求。在聚合点,相同的请求被减少为单个请求。单个请求被发送到目标。所述过程通过NoC以级联方式被重复,可能涉及多个请求聚合器。当响应事务被从目标接收回时,即离目标最近的聚合点,响应事务被直接或通过其他请求聚合器被复制并发送给每个原始请求方,其他请求聚合器进一步复制所复制的响应事务。(Systems and methods for aggregating identical requests sent from multiple initiators over a network on chip (NoC) to a target are disclosed herein. The request is marked for aggregation. The NoC aggregates the same requests marked for aggregation using a Request Aggregator (RA) as an aggregation point. At the aggregation point, the same request is reduced to a single request. A single request is sent to the target. The process is repeated in a cascaded manner by the NoC, possibly involving multiple request aggregators. When a response transaction is received back from the target, i.e., the aggregation point closest to the target, the response transaction is replicated and sent to each original requestor, either directly or through other request aggregators, which further replicate the replicated response transaction.)

用于执行片上网络(NoC)中的事务聚合的系统和方法

相关申请的交叉引用

本申请要求由Benoit DE LESCURE等人于2020年6月9日提交的申请号为63/036,944、题为“SYSTEM AND METHOD FOR PERFORMING TRANSACTION AGGREGATION IN ANETWORK-ON-CHIP(NoC)”的美国临时申请的优先权权益,该临时申请的全部内容通过引用并入本文。

技术领域

本技术属于计算机系统设计领域,更具体地,涉及聚合片上网络(NoC)内的事务以提高性能。

背景技术

在片上系统(SoC)中实现的多处理器系统通过网络进行通信,诸如片上网络(NoC)。知识产权(IP)块被用于芯片设计。SoC包括知识产权(IP)块的实例。一些IP块是发起器(initiator)。一些IP块是目标。发起器和目标通过诸如NoC的网络进行通信。

使用许多行业标准协议(例如,ARM AMBA AXI、AHB或APB、或OCP-IP)中的任何一种协议,,事务被从发起器发送到目标。这种协议具有严格的请求/响应语义,并且通常被NoC视为单播:被连接到NoC的发起器向目标发送请求。发起器使用地址选择目标,发起器向目标发送请求事务。NoC解码地址并且将请求从发起器传送到目标。目标处理请求事务并且发送响应事务,该事务由NoC传送回发起器。

如果多个发起器需要向同一个地址(向一个目标)发送同一个请求,这组请求(全部相同,全部发送到同一个地址)将由在目标处的互连(例如NoC)序列化。目标向每个发起器发送相同的响应,每次发送一个。这是非常低效的,因为目标以序列化的方式向多个发起器发送相同的响应,并且该相同的响应可能多次占用相同的互连链路。例如,如果16个发起器要读取同一目标的同一地址处的数据,则互连(NoC)必须将16个相同的请求序列化到目标。然后,目标需要向每个请求发起器发回16次相同的数据。在目标处的总操作所花费的时间是单个读取请求的时间的16倍。因此,需要一种系统和方法来聚合发送到目标的相同请求,以减少发送到目标的相同请求的数目,减少由NoC传送的相同请求的数目,以及相反的,减少由NoC传送的相同响应的数目。

发明内容

根据本发明的各种实施例和方面,公开了一种聚合从多个发起器发送到目标的相同请求的系统和方法。相同请求被标记为用于聚合。互连或片上网络(NoC)在聚合点处聚合所有的相同请求。在聚合点处,多个相同请求被减少为单个请求。单个请求被发送到目标。根据本发明的各个方面,通过NoC以级联方式重复该过程。当在聚合点处接收回来自目标的对请求的响应时,该响应被复制并发送到每个原始发起器。

本发明的各个方面和实施例的一个优点是实现了包括从多个发起器向相同地址发送相同请求的操作的最大效率。另一个优点包括但不限于请求是读取请求的系统。本发明的各个方面和实施例涵盖其他类型的请求,诸如写请求。以上述非限制性示例为例,16个发起器各自向目标的同一地址发送读取(或写入)。目标只会收到一个读取(或写入)命令。然后目标将只发送一个响应(如果请求是读取;如果请求是写入或响应是对写入已执行的确认,则不需要响应),该响应将在返回的途中被复制16次。

本发明的各个方面和实施例的又一个优点是在应用中,其中多个发起器或节点想要同时从外部存储器读取相同数据,诸如深度神经网络计算和人工智能计算。

附图说明

为了更全面地理解本发明,请参考附图。本发明根据以下描述中的方面和实施例参照绘图或图()来描述,其中相同的数字代表相同或相似的元件。理解这些附图不被认为是对本发明范围的限制,通过使用附图以附加的细节描述了当前描述的方面和实施例以及当前理解的本发明的最佳模式。

图1A示出了根据本发明的各个方面和实施例的将多个发起器连接到多个目标的片上网络(NoC)。

图1B示出了根据本发明的各个方面和实施例的将多个发起器连接到多个目标的NoC。

图1C示出了根据本发明的各个方面和实施例的将多个发起器连接到多个目标的NoC。

图2示出了根据本发明的各个方面和实施例的具有从多个发起器被发送到一个目标的请求事务的聚合的图1的NoC。

图3示出了根据本发明的各个方面和实施例的具有从一个目标被发送到多个发起器的响应事务的图2的NoC。

图4示出了根据本发明的各个方面和实施例的地址图。

图5示出了根据本发明的各个方面和实施例的用于聚合事务的过程。

具体实施方式

下面描述了本技术的各种示例,这些示例说明了本发明的各个方面和实施例。通常,示例可以以任何组合使用所描述的方面。本文中叙述原理、方面和实施例及其特定示例的所有陈述旨在涵盖其结构和功能等效物。此外,此类等效物旨在包括当前已知的等效物和未来开发的等效物,即,无论结构如何,所开发的执行相同功能的任何元件。

注意,如本文所使用,单数形式“a”、“an”和“the”包括复数所指对象,除非上下文另有明确规定。在整个说明书中对“一个方面”、“一个方面”、“某些方面”、“各个方面”或类似语言的引用意味着结合任何实施例描述的特定方面、特征、结构或特性包括在本发明的至少一个实施例中。

在本说明书中出现的短语“在一个实施例中”、“在至少一个实施例中”、“在一个实施例中”、“在某些实施例中”和类似的语言可以但不一定都指相同的实施例或类似的实施例。此外,本文描述的本发明的方面和实施例仅是示例性的,并且不应被解释为对本领域普通技术人员理解的本发明范围或精神的限制。所公开的发明在包括本文所述的任何新颖方面的任何实施例中有效地制造或使用。此处叙述本发明的方面和实施例的所有陈述旨在涵盖其结构和功能等价物。此类等效物旨在包括当前已知的等效物和将来开发的等效物。

如本文所使用,“发起器”指的是知识产权(IP)块、单元或模块。术语“发起器”、“请求方(requestor)”和“主设备(master)”在本发明的范围和实施例内可以互换使用。如本文所用,“目标”和“从设备(slave)”是指IP块;术语“目标”和“从设备”在本发明的范围和实施例内可以互换使用。

如本文所使用,事务可以是请求事务或响应事务。请求事务的示例包括写入请求和读取请求。根据本发明的各个方面,当多个发起器向同一目标发送相同的请求时,这些请求被聚合。根据本发明的一个方面,“相同的请求”是指请求事务具有相同的地址、相同的类型和相同的大小;相同的请求被从多个发起器发送到一个目标。根据本发明的一个方面,“相同的请求”意味着请求事务具有相同的地址、可选地相同的请求类型和可选地相同的长度。

如本文所使用,节点被定义为能够通过通信路径或信道创建、接收和/或传送信息的分发点或通信端点。节点可以指以下任何一种:交换机(switch)、分离器(splitter)、合并器(merger)、缓冲器(buffer)和适配器(adapter)。如本文所使用,分离器和合并器是交换机;并非所有的交换机都是分离器或合并器。如本文所使用的并且根据本发明的各个方面和实施例,术语“分离器”描述了具有单个入口端口和多个出口端口的交换机。如本文所使用的并且根据本发明的各个方面和实施例,术语“合并器”描述了具有单个出口端口和多个入口端口的交换机。

现在参考图1,示出了根据本发明的各个方面和实施例的片上网络(NoC)100。NoC100包括节点或交换机102a、102b、102c和102d。发起器104(M0、M1、M2、M3)使用网络接口(NI)单元106被连接到NoC 100。NI单元106将传入的事务(读取或写入的请求)转换为NoC100使用的协议。NoC 100使用网络接口(NI)单元116被连接到目标108(T0,T1),网络接口(NI)单元116执行与NI单元106类似的功能,将NoC协议转换为目标协议。

根据本发明的各个方面,为清楚起见,图1A、图1B和图1C仅示出了请求网络连接。请求事务从发起器104中的任何一个发起器104行进通过NoC 100到达目标108中的任何一个目标108。根据本发明的其他方面,还存在相应的响应网络,其中响应从目标行进到达发起器。

根据本发明的一些方面和实施例,NoC 100包括请求聚合器(RA)110,诸如RA0、RA1、RA10和RA11。用于实现RA110的各种实施例是可能的。根据本发明的一些方面和实施例,RA110是与交换机102协同工作并连接到交换机102的硬件组件,为清楚起见,如图1所示。

参考图1B,根据本发明的其他方面和实施例,任何RA110(例如示出的RA10 110)可以是交换机102(诸如交换机102b)的一部分或内部的硬件组件。

现在参考图1C,根据本发明的一些其他方面和实施例,任何RA 110(例如示出的RA10 110)可以支持和服务多个交换机102(例如交换机102b和交换机102d)。

RA 110被连接到请求网络和响应网络。如上所述,仅为了清楚起见,图1A、图1B和图1C中示出了针对连接的请求网络侧。响应网络连接未示出,尽管它类似于图1A、图1B和图1C以及在相反的方向。RA 110包括多个入口端口。每个入口端口都是请求的目的地(针对特定目标)和响应的源(针对特定发起器)。RA 110具有至少一个出口端口,出口端口是请求的源和响应的目的地。RA 110在一组入口端口上接收请求包,聚合请求并将经聚合的请求发送到一个出口端口。根据本发明的一方面,入口和出口端口的数目是在设计时被设置的。

现在参考图2,根据本发明的一些方面和实施例,示出了RA 110(RA0、RA1、RA10和RA11)。在一个示例中,诸如读取(RD)请求(RD0、RD1、RD2和RD3)的多个相同的请求分别从多个发起器104(M0、M1、M2和M3)被生成。请求RD0、RD1、RD2和RD3是针对或被发送到T0的事务。读取请求事务RD0、RD1、RD2和RD3是相同的请求,并且已经使用特殊标记、特殊地址、限定符位或位的组合(其包含在事务的有效载荷中)被标识为用于聚合。当这些请求被发送到如图4所示的地址图400的特殊地址区域时,这些请求可以被聚合。

RD0和RD1到达交换机102a,然后去到RA0 110。RD0和RD1在RA0处被聚合以生成经聚合的读取请求事务RD4。RD4是原始请求事务RD0和RD1的一次单个事件,被发送到交换机102b,然后到RA10 110,RD4正在朝着目标T0前进。

RD2和RD3到达交换机102c,然后到达RA1 110。RD2和RD3在RA1 110处被聚合以生成经聚合的读取请求事务RD5。RD5是原始请求事务RD2和RD3的一次单个事件,被发送到交换机102b,然后到RA10 110,RD4正在朝着目标T0前进。

在RA10 110处,分别来自RA0 110和RA1 110的两个经聚合的请求RD4和RD5,再次被聚合以生成经聚合的读取请求事务RD6。RD6被发送到NI单元116然后被发送到目标T0。

现在参考图3,响应事务RSP0由目标T0 108被生成。适当的RA是用于响应事务的经标识的目的地。RSP0被从目标T0 108发回并且在某一点到达被连接到RA10 110的响应网络的交换机,然后去往RA10 110的出口端口的响应端口。如上所述,根据本发明的各个方面和实施例,对于请求事务侧,RA可以是交换机硬件的一部分。

RA10 110复制响应事务以生成RSP1和RSP2。RA10 110分别向RA0 110和RA1 110的出口端口的响应端口发送回RSP1和RSP2。RA10 110将响应事务发送到RA,RA10 110曾从此RA接收到请求事务。因此,RA10 110向RA0 110发送一个响应事务并且向RA1 110发送一个响应事务,因为原始请求事务从RA0 110和RA1 110到达RA10 110。

RSP1在RA0 110的出口端口的响应端口处被接收。RA0 110将RSP1复制为生成的RSP3和RSP4,并将RSP3和RSP4分别发送到曾发送原始请求RD0和RD1的发起器M0 104和发起器M1 104。

RSP2在RA1 110的出口端口的响应端口处被接收。RA1 110将RSP2复制为生成的RSP5和RSP6。RA1 110然后将RSP5和RSP6分别发送到曾发送原始请求事务RD2和RD3的发起器M2 104和发起器M3 104。

本发明的各个方面和实施例是最有优势的但不限于请求是读取请求的情况。本发明还可以涵盖其他类型的请求,例如写入请求。在一些实施例中,写入请求具有在事务完成之后被生成的响应。在一些实施例中,当执行写入请求时,事务完成后没有响应被生成。

本发明的各个方面和实施例适用于任何类型的网络拓扑,并且最有用的,但不限于,可以级联RA以将请求和响应的流量限制到最小的情况。根据本发明的各种实施例,NoC中可以存在多个聚合器级联,并且一个聚合器可以是多个不同级联的一部分,例如,如图1所示,两个级联在T0和T1结束。

根据本发明的各个方面和实施例,RA通过使用存在于每个RA中的存储设备来聚合两个或更多相同的请求。存储设备被用于跟踪已聚合的请求的地址和大小。当新请求通过聚合器入口端口的其中一个端口时,存储设备被查找,以查看相同的请求是否已经被记录(相同的地址,以及可选的相同的请求类型和/或可选的相同的长度)。如果是,则RA记住请求从哪个入口端口被接收和请求从哪个源(发起器)到来;没有任何内容被发送到RA的出口端口:该请求与已经收到的请求“聚合”在一起。如果存储设备查找没有指示已记录相同的请求,则RA会记住请求从哪个入口端口被接收和请求从哪个源(发起器)到来,并且新条目被添加于它的存储设备中。此外,请求被记录在存储设备中,包括地址和可选的类型和/或可选的长度。多个请求被聚合后,RA在其出口端口上发送一个相应的请求。根据本发明的一些方面和实施例,在RA的出口端口上发出请求之前需要聚合的请求数目是在设计时被配置的。根据本发明的一些方面和实施例,需要聚合的请求数目在数据包报头的特殊字段中被动态指定。当与请求相对应的所有响应被复制后都已发送回请求方时,条目将从用于跟踪已聚合请求地址的存储设备中被删除。

根据本发明的各个方面和实施例,发起器通过使用请求限定符标记要聚合的操作,在去往一个目标的普通事务和聚合操作之间进行选择。这种请求限定符的一个示例是使用特殊标记或地址位,如图4所示。当请求事务被发送到该特殊地址位等于0的目标时,NoC不做聚合。如果当特殊地址位为1时请求事务被发送,则请求事务将通过RA。该请求事务与使用被设置为1的相同特殊地址位并且去往相同地址的其他请求被聚合。

根据本发明的各个方面,RA通过使用组合功能,将与访问NoC的目标的相同位置或被连接至NoC的所有的请求组合成单个请求来进行请求聚合。

如上所述,本发明的各个方面和实施例的一个优点是用于读取聚合,其中所有的读取请求被组合为与所有的原始请求相同的一个请求。其他优点可以被实现,其中请求事务是写入请求。本发明不受事务类型的限制。例如,写入请求聚合,其中与每个请求相关联的写入数据根据某种数学函数或逻辑运算函数被组合在一起。

根据本发明的方面和实施例的一种变化,在一些RA或所有RA中,附加的响应存储设备被实现。该附加的存储设备可以用于保持所复制的响应一段时间,允许每个响应端口独立于其他端口进行处理。在针对相同的地址的一组请求已经被聚合并且已经被响应,还允许针对该地址的服务请求到达。这不需要在所有响应都发回后删除地址存储设备中的相应条目,而是将条目保留更长时间,并基于寿命或其他驱逐机制删除它们。

根据本发明的各个方面和实施例,该系统和方法包括在一些或所有RA中实现推测性问题,该问题是经聚合的读取请求大于原始读取请求(要求更多数据)。然后,如果随后的请求来到聚合器并请求数据,这是被推测性请求的数据的一部分,则事务在聚合器中等待对推测性请求的响应返回。当响应返回时,所有的请求都会在聚合器中被响应,包括等待被推测性请求的数据的请求。换句话说,RA可以支持读取数据的推测性预读取。

现在参考图5,根据本发明的各种实施例和方面,示出了用于聚合请求事务的过程500。过程500开始并且在步骤502,多个发起器各自向NoC发送请求事务,并且当请求事务被标记为用于聚合时,RA(与交换机通信或包含在交换机中)接收被标记为用于聚合的请求事务。在步骤504,NoC的RA聚合请求事务以生成经聚合的请求事务。在步骤506,NoC将经聚合的请求事务转发到针对的目标。目标接收经聚合的请求事务。在步骤508,目标生成被发送到NoC的RA的响应事务。在步骤510,RA复制响应事务并且NoC将复制的响应事务发送到每个发起器,每个发起器是发送被标记为用于聚合的请求事务的发起器。如本文所指出的并且根据本发明的各个方面和实施例,存在一些请求事务,它们被聚合和完成,但无需或产生响应事务。

根据本发明各个方面的某些方法可以通过存储在非暂时性计算机可读介质上的指令来执行。非暂时性计算机可读介质存储包括指令的代码,如果这些指令由一个或多个处理器执行,将导致系统或计算机执行本文描述的方法的步骤。非暂时性计算机可读介质包括:旋转磁盘、旋转光盘、闪存随机存取存储器(RAM)芯片以及其他机械移动或固态存储介质。根据各种示例,任何类型的计算机可读介质都适合于存储包括指令的代码。

本文已经描述了某些示例,并且应当注意,来自不同示例的不同组件的不同组合是可能的。显著特征被呈现以更好地解释示例;然而,很明显,可以添加、修改和/或省略某些特征而不修改这些所描述的示例的功能方面。

各种示例是使用任一机器或机器组合的行为的方法。方法示例在世界上大多数组成步骤发生的任何地方都是完整的。例如并且根据本发明的各个方面和实施例,IP元素或单元包括:处理器(例如CPU或GPU)、随机存取存储器(RAM—例如片外动态RAM或DRAM)、用于有线或无线连接的网络接口,例如以太网、WiFi、3G、4G长期演进(LTE)、5G和其他无线接口标准无线电。IP还可包括各种I/O接口设备,以满足不同外围设备的需要,诸如触摸屏传感器、地理定位接收器、麦克风、扬声器、蓝牙外围设备和USB设备,诸如键盘和鼠标等。通过执行存储在RAM设备中的指令,处理器执行如本文所述的方法的步骤。

一些示例是一种或多种非暂时性计算机可读介质,其被布置为存储用于本文描述的方法的这种指令。任何机器拥有包括任何必要代码的非暂时性计算机可读介质都可以实现示例。一些示例可以实现为:物理设备,诸如半导体芯片;这种设备的逻辑或功能行为的硬件描述语言表示;以及一种或多种非暂时性计算机可读介质,用于存储这种硬件描述语言表示。本文叙述的原理、方面和实施例的描述包括其结构和功能等效物。本文描述为耦合的元件具有可以通过与一个或多个其他中间元件的直接连接或间接连接来实现的有效关系。

本领域技术人员将认识到许多修改和变化。修改和变化包括所公开特征的任何相关组合。本文叙述的原理、方面和实施例的描述包括其结构和功能等效物。在此描述为“耦合”或“通信耦合”的元件具有可以通过使用一个或多个其他中间元件的直接连接或间接连接实现的有效关系。此处描述为“与”另一设备、模块或元件“通信”或“通信”的实施例包括任何形式的通信或链接并且包括有效关系。例如,可以使用有线连接、无线协议、近场协议或RFID来建立通信链路。

就具体实施方式和权利要求中使用的术语“包括(including)”、“包括(includes)”、“具有(having)”、“具有(has)”、“具有(with)”或其变体而言,此类术语旨在以类似于术语“包括(comprising)”的方式包括在内。

因此,本发明的范围并不旨在限于在此示出和描述的示例性实施例和方面。准确地说,本发明的范围和精神由所附权利要求体现。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:片上网络拓扑结构的确定方法、装置及芯片

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!