CN113778937A - 用于执行片上网络(NoC)中的事务聚合的系统和方法 - Google Patents
用于执行片上网络(NoC)中的事务聚合的系统和方法 Download PDFInfo
- Publication number
- CN113778937A CN113778937A CN202110637260.XA CN202110637260A CN113778937A CN 113778937 A CN113778937 A CN 113778937A CN 202110637260 A CN202110637260 A CN 202110637260A CN 113778937 A CN113778937 A CN 113778937A
- Authority
- CN
- China
- Prior art keywords
- request
- target
- transaction
- response
- transactions
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文公开了用于聚合从多个发起器通过片上网络(NoC)被发送到目标的相同请求的系统和方法。请求被标记为用于聚合。NoC使用请求聚合器(RA)作为聚合点来聚合被标记为用于聚合的相同请求。在聚合点,相同的请求被减少为单个请求。单个请求被发送到目标。所述过程通过NoC以级联方式被重复,可能涉及多个请求聚合器。当响应事务被从目标接收回时,即离目标最近的聚合点,响应事务被直接或通过其他请求聚合器被复制并发送给每个原始请求方,其他请求聚合器进一步复制所复制的响应事务。
Description
相关申请的交叉引用
本申请要求由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)”的方式包括在内。
因此,本发明的范围并不旨在限于在此示出和描述的示例性实施例和方面。准确地说,本发明的范围和精神由所附权利要求体现。
Claims (6)
1.一种系统包括:
多个发起器,用于生成请求;
至少一个目标,用于生成响应;以及
片上网络NoC,与所述多个发起器和所述目标进行通信,所述NoC包括:
多个发起器网络接口单元,每个发起器网络接口单元被连接到所述多个发起器中的一个发起器;
至少一个目标网络接口单元,所述至少一个目标网络接口单元被连接到所述至少一个目标;
多个交换机,所述多个交换机被连接到所述多个发起器网络接口单元和所述目标网络接口单元;以及
与所述多个交换机通信的多个请求聚合器,
其中所述多个请求聚合器中的任何一个或多个请求聚合器从多个发起器接收多个请求事务并且将所述多个请求事务聚合成经聚合的请求事务,每个请求事务被标记为用于聚合并且针对所述至少一个目标,所述经聚合的请求事务被发送到所述至少一个目标。
2.根据权利要求1所述的系统,其中所述目标生成被发送到所述NoC的所述请求聚合器的响应事务。
3.根据权利要求2所述的系统,其中所述请求聚合器复制所述响应事务,并且向发送被标记为用于聚合的所述请求事务的所述多个发起器中的每个发起器转发一个复制的响应事务。
4.一种方法包括:
在请求聚合器的请求入口端口处接收来自多个发起器的可聚合请求事务;
在所述请求聚合器处聚合所述可聚合请求事务以生成经聚合的请求事务;
从所述请求聚合器的请求出口端口发送所述经聚合的请求事务到目标;
在所述请求聚合器的响应入口端口处接收来自所述目标的响应事务;
在所述请求聚合器处复制所述响应事务以生成多个复制的响应事务;以及
从所述请求聚合器的响应出口端口向所述多个发起器发送所述多个复制的响应事务,使得每个发起器得到一个复制的响应事务。
5.根据权利要求4所述的方法,还包括:向第二请求聚合器发送所述复制的响应事务,以进一步复制所述复制的响应事务。
6.一种非暂态计算机可读介质,包括代码,所述代码由处理器执行以使片上网络NoC:
标识被标记为用于聚合的请求事务;
聚合所述请求事务以生成经聚合的请求事务;
向目标发送所述经聚合的请求事务;
接收针对所述经聚合的请求事务的响应事务;
复制所述响应事务以产生多个复制的响应事务;以及
向多个发起器发送所述多个复制的响应事务,使得每个发起器得到一个复制的响应事务。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063036944P | 2020-06-09 | 2020-06-09 | |
US63/036,944 | 2020-06-09 | ||
US17/338,151 | 2021-06-03 | ||
US17/338,151 US20210382847A1 (en) | 2020-06-09 | 2021-06-03 | SYSTEM AND METHOD FOR PERFORMING TRANSACTION AGGREGATION IN A NETWORK-ON-CHIP (NoC) |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113778937A true CN113778937A (zh) | 2021-12-10 |
Family
ID=76325413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110637260.XA Pending CN113778937A (zh) | 2020-06-09 | 2021-06-08 | 用于执行片上网络(NoC)中的事务聚合的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210382847A1 (zh) |
EP (1) | EP3926482A1 (zh) |
KR (1) | KR20210152962A (zh) |
CN (1) | CN113778937A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370231B (zh) * | 2023-12-07 | 2024-04-12 | 芯动微电子科技(武汉)有限公司 | 实现gpu核内片上网络总线访问的协议转换模块及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920484A (en) * | 1988-10-05 | 1990-04-24 | Yale University | Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined |
US5046000A (en) * | 1989-01-27 | 1991-09-03 | International Business Machines Corporation | Single-FIFO high speed combining switch |
CA2540002A1 (en) * | 2003-09-29 | 2005-04-07 | British Telecommunications Public Limited Company | Matching process |
US7660296B2 (en) * | 2005-12-30 | 2010-02-09 | Akamai Technologies, Inc. | Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows |
EP3400688B1 (en) * | 2016-01-04 | 2020-05-20 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
US20190334759A1 (en) * | 2018-04-26 | 2019-10-31 | Microsoft Technology Licensing, Llc | Unsupervised anomaly detection for identifying anomalies in data |
-
2021
- 2021-06-03 US US17/338,151 patent/US20210382847A1/en active Pending
- 2021-06-08 CN CN202110637260.XA patent/CN113778937A/zh active Pending
- 2021-06-08 EP EP21178162.0A patent/EP3926482A1/en active Pending
- 2021-06-08 KR KR1020210073857A patent/KR20210152962A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
EP3926482A1 (en) | 2021-12-22 |
KR20210152962A (ko) | 2021-12-16 |
US20210382847A1 (en) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US10169080B2 (en) | Method for work scheduling in a multi-chip system | |
CN100524252C (zh) | 一种嵌入式系统芯片及数据读写处理方法 | |
US7395379B2 (en) | Methods and apparatus for responding to a request cluster | |
US20150253997A1 (en) | Method and Apparatus for Memory Allocation in a Multi-Node System | |
US20150254182A1 (en) | Multi-core network processor interconnect with multi-node connection | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
CN109117386B (zh) | 一种网络远程读写二级存储的系统及方法 | |
US10805392B2 (en) | Distributed gather/scatter operations across a network of memory nodes | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
US20150254183A1 (en) | Inter-chip interconnect protocol for a multi-chip system | |
US20230132724A1 (en) | Broadcast adapters in a network-on-chip | |
KR20240004315A (ko) | Smartnic들 내의 네트워크 연결형 mpi 프로세싱 아키텍처 | |
US20190042496A1 (en) | Delayed link compression scheme | |
CN115639947A (zh) | 数据写入方法、数据读取方法、装置、设备、系统及介质 | |
CN113778937A (zh) | 用于执行片上网络(NoC)中的事务聚合的系统和方法 | |
WO2022199357A1 (zh) | 数据处理方法及装置、电子设备、计算机可读存储介质 | |
US20230144693A1 (en) | Processing system that increases the memory capacity of a gpgpu | |
WO2015070539A1 (zh) | 一种基于dma的数据压缩芯片结构及其实现方法 | |
CN115529275B (zh) | 一种报文处理系统及方法 | |
US11487695B1 (en) | Scalable peer to peer data routing for servers | |
US12001370B2 (en) | Multi-node memory address space for PCIe devices | |
US20230214345A1 (en) | Multi-node memory address space for pcie devices | |
CN116955270B (zh) | 一种多裸片互连系统的被动数据缓存实现方法 | |
US20240069755A1 (en) | Computer system, memory expansion device and method for use in computer system |
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 |