CN103684961A - 自动构建无死锁互连 - Google Patents
自动构建无死锁互连 Download PDFInfo
- Publication number
- CN103684961A CN103684961A CN201310389131.9A CN201310389131A CN103684961A CN 103684961 A CN103684961 A CN 103684961A CN 201310389131 A CN201310389131 A CN 201310389131A CN 103684961 A CN103684961 A CN 103684961A
- Authority
- CN
- China
- Prior art keywords
- channel
- route
- deadlock
- dependency
- module
- 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.)
- Granted
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/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- 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
-
- 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/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及自动构建无死锁互连。本发明描述了用于在多核系统中自动地建立无死锁的互通信网络的系统与方法。本文中描述的示例性实施方式包括在系统的各块之间映射用户指定的通信图期间检测死锁。然后,通过重新分配信道资源以避免检测到的死锁。死锁避免方案的示例性实施方式在用于大规模多核片上系统的片上网络互连上呈现。
Description
技术领域
本文中描述的方法和示例性实施方式总体上是指互连体系结构,更具体地,是指片上网络系统互连体系结构。
背景技术
由于整体化、系统复杂性以及缩小晶体管几何尺寸的水平日渐提高,使得位于芯片上的的组件数量在迅速增长。复杂的片上系统(SoC)可以包括各种组件,例如,处理器核、DSP、硬件加速器、存储器以及I/O,而片上多核处理器(CMP)可以包括大量同质的处理器核、存储器以及I/O子系统。在两个系统中,片上系统互连对于在各个组件之间提供高性能的通信起到了关键的作用。由于基于互连的传统总线和交叉开关的可伸缩性限制,片上网络(NoC)已呈现为使芯片上的大量组件互连的范例。NoC是一种由使用点对点物理链路而彼此互连的几个路由节点组成的全局共享的通信基础设施。消息由源注入并且通过多个中间路由器和物理链路从源路由器路由至目的地。然后,目的地路由器将该消息发送并且将其提供至目的地。对于该文件的其余部分,术语“组件”、“模块”或者“核”可被互换地使用来指代使用NoC互连的各种系统组件。无损失地概括,具有多个互连组件的系统本身将被称为“多核系统”。
存在几个可能的拓扑,在该拓扑中,路由器可以彼此连接以建立系统网络。在相关技术中,双向环(如图1(a)所示)与2-D网格(如图1(b)所示)是拓扑示例。
数据包是用于在各种组件之间进行相互通信的消息传输单元。路由选择包括识别数据包从源发送至目的地所通过的路径,该路径是网络上的路由器和物理链路的集合。将组件连接到一个或多个路由器的一个或多个端口,其中每一个这样的端口都具有唯一的ID。数据包携带目的地路由器和端口ID以供中间路由器用来将数据包发送至目的组件。
路由选择技术的示例包括确定性路由选择,该确定性路由选择包括为每一个数据包选择从A到B的相同路径。这种形式的路由选择独立于网络状态并且不会在底层网络中存在的路径多样性之间进行负载平衡。然而,确定性路由选择对于在硬件中实施是简单的,保持数据包的排序并且易于摆脱网络级死锁。因为最短路径路由选择减少了从源至目的地的跳数,从而最短路径路由选择将延迟时间最小化。为此,该最短路径对于两个组件间的通信同样是最低功率路径。维序路由选择是一种在2D网格网络中存在的确定性最短路径路由选择的形式。
图2示出了二维网格中XY路由选择的示例。更具体地,图2示出了从节点“34”到节点“00”的XY路由选择。在图2的示例中,每个组件仅连接到一个路由器的一个端口。首先,数据包被路由在X维度上直到其到达节点“04”,其中,X维度与目的地相同。接着,数据包被路由在Y维度上直至其到达目的地。
源路由选择和使用表格的路由选择是用于NoC中的其他路由选择的选项。基于网络的状态,自适应路由选择可以动态地改变网络上两点之间所采用的路径。这种形式的路由选择对于分析和实施会很复杂,并且因此很少应用于实践中。
运行在大的多核系统上的软件应用在各种块之间产生复杂的互通信消息。这样的复杂的、并发的、多跳的块间通信可以导致互连时的死锁情形。当消息不能行进至其目的地时会在网络中发生死锁,因为它们等待彼此释放资源(例如,释放缓冲器以及信道)。由于阻塞的缓冲器所发生的死锁可以迅速地遍布于整个网络,这可能使系统更多的操作瘫痪。死锁广义上可以被分类为网络级死锁和协议级死锁。
如果在网络中的信道之间有循环依赖,则在网络中就可能发生死锁。图3示出了网络级死锁的示例。在图3的示例中,以将所有缓冲器清空的状态开始,同时块启动A→C、B→D、C→A以及D→B的消息传递。每个块控制其输出信道并且将消息向其目的地发送。在图3的示例中,每个信道每次仅能拥有一条消息。从这一点开始,每个信道等待下一个信道以将消息移动的更远。在等待图中有循环依赖并且网络变成死锁。通过使用无死锁路由选择或者虚拟路径的构造可以避免这样的网络层死锁或者低级死锁。
网络端点可能不是理想的接收器,即,直至一些当前未处理的数据包被处理它们才会接收所有到来的数据包。如果在未处理的数据包的处理期间需要发送新的数据包,会在模块的NoC发射信道和接收信道之间产生依赖性。基于消息序列、组件位置以及由各种消息所采用的路线,该依赖性会成为循环。如果死锁是由在网络层以外的依赖性引起的,则这被称之为高级别、协议或者应用级死锁。在相关领域的系统中,大多数的高级任务包括以特定的序列存在于NoC上的多个模块之间的消息流。这样互通信的多点序列会引入导致协议级死锁的复杂依赖性。死锁的根本原因依然是由存在于多个组件之间的相互依赖的消息所引入的信道依赖性循环。从网络上的一个端点到另一个端点的独立消息不会引起协议级死锁;然而,取决于网络上这种消息的路由选择,系统中仍然有可能发生网络级死锁。
图4(a)、图4(b)以及图5(a)至图5(c)示出协议级死锁的示例。考虑通过交叉开关(crossbar)连接至存储器与高速缓冲存储控制器的三个中央处理单元(CPU)系统的示例。用于互连的高速缓冲存储控制器的接口具有单个先入先出(FIFO)缓冲器,该缓冲器最大可保持三个消息。内部地,高速缓冲存储控制器可以同时处理高达两个请求(并且因此处理高达两个未处理的存储器的失败请求)。
在图4(a)中,所有三个CPU向高速缓冲存储控制器发送读取请求。
在图4(b)中,对高速缓冲存储控制器的读取请求从交叉开关而排队在输入缓冲器中。
在图5(a)中,高速缓冲存储控制器接受来自输入缓冲器的两个请求“1”与“2”而第三请求“3”依然保留在输入缓冲器中。“1”与“2”在高速缓冲存储器中发生读取失败,该高速缓冲存储器依次将失败补充请求“m1”、“m2”发送至存储器。
在图5(b)中,存储器返回补充数据“d1”、“d2”。这个数据在高速缓冲存储控制器的输入缓冲器中排列在“3”之后。
在图5(c)中,在接受新的请求“3”之前,高速缓冲存储控制器等待未处理的请求的补充数据。然而,补充数据被阻挡在该请求“3”的后面。因此,该系统发生死锁。
在该系统中,通过在该系统中部署额外的缓冲区,或者使用多个物理或者虚拟网络来用于不同消息类型,可以达到避免死锁的目的。通常,以手动的方式来避免死锁1)解释互通信消息序列与依赖性,2)然后,分配足够的缓冲器以及虚拟和/或物理信道以及3)为序列中的各种消息分派适当的信道。
在诸如因特网的大规模网络中,死锁很少被关注。诸如拥塞检测、超时、数据包丢失、确认和重传的机制提供死锁的解决方案。然而,在功率、范围以及速度方面,这种复杂的机制太昂贵以至于不能在互连网络上实施,其中,在该互连网络上最主要的需求是低延迟时间和高性能。在这种系统中,死锁避免成为了关键性的结构需求。
发明内容
本发明基于各种系统组件之间的互通消息的类型的给定说明,提出了摆脱网络级死锁和应用级死锁的系统互连的自动结构。还公开了处理过程的示例性实施方式,其中,在保持互连资源成本最小的同时可实现避免死锁。
根据本发明的实施方式,提供一种计算机实现的方法,包括:基于多核系统的信道,为所述多核系统自动构建互连信道的映射,以使所述多核系统免于死锁。
该方法进一步包括:在依赖图中,为所述多核系统的消息序列的区段的端点之间的路线中的链路分配一个信道;以及自动地检查所述依赖图中的循环依赖性。
该方法进一步包括,当没有检测到循环依赖性时:在所述映射的自动构建中包括为所述链路分配一个所述信道;如果所述路线未被完整地映射,利用所述依赖图中所分配的一个信道或为所述路线中的另一条链路新分配的信道;以及如果所述路线未被完整地映射,自动地检查所述依赖图中的循环依赖性。
该方法进一步包括,当检测到循环依赖性时:从所述依赖图中丢弃所分配的一个信道,以及为所述依赖图中的所述路线分配另一个可用的信道。
其中,重复所述分配和所述检查循环依赖性,直至所述序列被完整地映射或者直至所述信道全部被用尽。
其中,所述构建包括:接收包含死锁的所述多核系统的说明;自动地再分配信道直至解决所述死锁;以及基于所述再分配构建所述映射。
根据本发明的另一个实施方式,提供一种计算机可读存储介质,存储有用于实现方法的指令,所述指令包括:基于多核系统的信道,为所述多核系统自动地构建互连信道的映射,以使所述多核系统免于死锁。
其中,所述指令进一步包括:在依赖图中,为所述多核系统的序列的端点之间的路线中的链路分配一个信道;以及自动地检查所述依赖图中的循环依赖性。
其中,所述指令进一步包括,当没有检测到循环依赖性时:在所述映射的自动构建中包括为所述链路分配一个所述信道;如果所述路线未被完整地映射,利用所述依赖图中所分配的一个信道或为所述路线中的另一条链路新分配的信道;以及如果所述路线未被完整地映射,自动地检查所述依赖图中的循环依赖性。
其中,所述指令进一步包括,当检测到循环依赖性时:从所述依赖图中丢弃所分配的一个信道,以及为所述依赖图中的所述路线分配另一个可用的信道。
其中,重复所述分配和所述检查循环依赖性,直至所述序列被完整地映射或者直至所述信道全部被用尽。
其中,所述构建包括:接收包含死锁的所述多核系统的说明;自动地再分配信道直至解决所述死锁;以及基于所述再分配构建所述映射。
根据本发明的又一个实施方式,提供一种系统,包括:路线构建模块,被配置为基于多核系统的信道,自动地为所述多核系统构建互连信道的映射,以使所述多核系统免于死锁。
该系统进一步包括:分配模块,被配置为在依赖图中,为所述多核系统的序列的端点之间的路线中的链路分配一个信道;以及依赖性模块,被配置为自动地检查所述依赖图中的循环依赖性。
其中,所述路线构建模块被配置为:当通过所述依赖性模块没有检测到循环依赖性时,在所述映射的自动构建中包括为所述链路分配一个所述信道;如果所述路线未被完整地映射,指示所述分配模块利用所述依赖图中所分配的一个信道或为所述路线中的另一条链路新分配的信道;以及如果所述路线未被完整地映射,指示所述依赖性模块自动地检查所述依赖图中的循环依赖性。
其中,所述分配模块被配置为:当通过所述依赖性模块检测到循环依赖性时,从所述依赖图中丢弃所分配的一个信道,以及为所述依赖图中的所述路线分配另一个可用的信道。
其中,所述分配模块被配置为重复所述分配,并且其中,所述依赖性模块被配置为重复地检查循环依赖性,直至所述序列被完整地映射或者直至所述信道被全部用尽。
其中,所述路线构建模块被配置为通过以下步骤来自动地构建所述映射:接收包含死锁的所述多核系统的说明;指示所述分配模块自动地再分配信道直至解决所述死锁;以及基于所述再分配构建所述映射。
其中,所述信道包括物理信道与虚拟信道中的至少一个。
其中,所述路线构建模块进一步被配置为捕获所述多核系统的所有高级别依赖性。
附图说明
图1(a)和图1(b)示出了双向环和2D网格NoC拓扑。
图2示出了在二维网格中XY路由的示例。
图3示出了网络级死锁的示例。
图4(a)、图4(b)示出了具有三个向高速缓冲存储控制器发送读取请求的CPU的存储器子系统的示例。
图5(a)至图5(c)示出了在存储器子系统中导致协议级死锁的信息交换。
图6示出了在存储器子系统中高速缓冲存储器读取失败时的通信序列的示例。
图7(a)和图7(b)示出了存储器子系统中死锁的示例。
图8(a)和图8(b)示出了根据示例性实施方式的在存储器子系统中自动实施死锁避免的示例。
图9示出了根据示例性实施方式的在NoC上进行无死锁通信量映射的流程图。
图10示出了可以实现示例性实施方式的计算机系统的示例。
具体实施方式
由运行在大的多核系统上的应用程序所引入的复杂依赖性使得通过人工分析以确保无死锁运行来说是很困难的。本文中描述的示例性实施方式均基于为系统中特定的块间的通信模式自动地构造无死锁互连的概念。还公开了自动构建无死锁互连的过程的示例。
运行在多核系统上的应用通常在多个块之间产生几个相互依赖的消息序列,其中,在完成消息处理并在块释放资源以用于新的消息之前,到达块的消息必须为不同的块生成另一个消息。对于假设的示例,考虑在块A上运行的任务,其请求在块B上执行操作。一旦接收到请求消息,块B完成部分操作并且将部分结果发送到第三块C,第三块C进行操作的其他部分并且将部分结果发送到块D。块D执行合并以及将最终结果发送回块A。在块A上完成的操作需要生成消息序列并且在网络上的多个块之间交换消息序列。为了成功完成起始块上的任务的消息之间存在更高等级的依赖性。在中间块的网络接口处存在输入信道对块的输出信道的依赖性。这种信道依赖性中的任意循环均可导致系统中的协议级死锁。
为了检测多核系统中的潜在死锁,传统系统会采用半自动化分析。然而,人工地分析结果并且对互连进行适当的修改以避免潜在的死锁。
系统中的通信被全部指定以获取所有高等级的消息依赖性。然后,示例性实施方式对互连上的消息采用了整体的观察,分配信道资源,以及分配消息到已分配的信道资源以确保所产生的互连在网络级和协议级两者是无死锁的。示例性实施方式通过利用虚拟信道,移除了通信图中的循环资源依赖性。虚拟信道在连接两个端口的物理信道上提供逻辑链路。每个虚拟信道在网络节点中具有独立分配的并且流控制的片缓冲器。系统中每一个高等级通信需要被指定为多个块的分组端到端序列的形式,消息在该多个块之间流动。在上述提供的假设的示例中,序列可表示为A→B→C→D→A。网络上介于每一个源-目的地对之间的路由选择路径(即,组成上述序列的区段)被制作成可用在示例性实施方式中的算法中,或者算法自动地判定以避免死锁。
示例性实施方式的流程以最复杂的消息序列开始,并且使用其在网络上的路由路径来创建信道依赖性图。示例性实施方式使用物理链路上的最低虚拟信道ID,并且随后渐进的获取不太复杂的消息序列并且继续将它们的路线映射(map,绘制)到现有的全局信道依赖性图中。当映射两个块之间的路径时,如果在依赖性图中检测到循环,则示例性实施方式由原路返回并且通过利用路径上的下一个最高虚拟信道ID重新映射包含依赖性的区段,以将循环从依赖性图中移除。通常,首先,示例性实施方式试图以信道ID值递增顺序映射任意预分配的虚拟信道,并且如果没有其他的预分配虚拟信道仍然保留在该路径上,同样以信道ID值递增的顺序分配空闲的虚拟信道ID。这个处理过程继续直到所有特定的消息序列的网络路线没有任何循环地映射到全局图上。如果不能以限定数目的可用虚拟信道实现特定的系统消息的无死锁映射,则该算法中止尝试。在以下示例与图9的流程图中提供了更多的细节。该方案的其他变形也是可行的。例如,代替为消息序列的区段的端点之间的路线的所有物理链路使用相同的虚拟信道,可以在路线的每个物理链路上使用不同的虚拟信道。为了减少虚拟信道的使用,或者为了在保持死锁避免的同时的负荷平衡,算法同样可以尝试为不同的消息使用不同的路线。
在系统示例中,CPU与包括高速缓冲存储器和外部DRAM存储器的存储器子系统通信。CPU发送在高速缓冲存储器中发生读取失败的读取请求。因此,高速缓冲存储控制器将读取补充请求发送至外部的存储器控制器。补充数据从存储器返回到高速缓冲存储控制器,其反过来又将读取响应发送至CPU。
图6示出了高速缓冲存储器上的通信序列读取失败的示例。上述描述的通信模式示例被表示为如图6所示的序列。在高速缓冲存储器读取失败的序列示例中,读取请求600从CPU(A)发送至高速缓冲存储器(B)。在高速缓冲存储器(B)处,发生高速缓冲存储器读取失败并且产生读取补充请求601,该读取补充请求601继续前进到存储器(C)。在存储器(C)处,产生读取补充响应602并且将其发送回高速缓冲存储器(B)。然后,高速缓冲存储器(B)将读取响应603发送回CPU(A)。
图7(a)和图7(b)示出了存储器子系统中死锁的示例。具体地,图7(a)示出了其中通过物理链路将CPU、高速缓冲存储器以及存储器互连的简单拓扑。网络上的每一个物理链路被假定为具有单个虚拟信道。图7(b)示出了对于上面的通信序列的可能信道依赖性图。具体地,基于图7(a)中的物理链路,在图7(b)中示出了如图6中所描述的高度缓冲存储器上的通信序列的读取失败。该图包含指示潜在的应用级死锁的循环。例如,在高速缓冲存储器(B)接收来自于存储器(C)的响应之前,当CPU(A)通过物理信道c将随后的读取请求消息发送至高速缓冲存储器(B)时,由于早期的补充请求通过相同物理的信道,故会发生死锁。从而,高速缓冲存储器(B)成为死锁,因为其在不首先处理其未处理的补充请求的情况下,是不能处理来自于CPU(A)的后来的读取请求消息的,并且不能处理未处理的补充请求,因为来自于存储器(C)的补充请求的响应在物理信道c的队列中,该响应位于后来的读取请求消息之后。类似地,当高速缓冲存储器(B)试图通过物理信道d返回来自于CPU(A)的消息的响应,但是在存储器(C)没处理完先前从高速缓冲存储器(B)发送至存储器(C)的消息的情况下是不能通过该信道发送消息时,就会发生死锁。
图8(a)和图8(b)示出了根据示例性实施方式的在图6的示例系统中实施的自动死锁避免。如图8(a)所示,在通信区段A→B与B→C上利用虚拟信道ID0而没有发现任何死锁。然而,当子系统试图在VC ID0上映射区段C→B时,检测到环路(例如,如图7(b)所描绘的由于死锁所导致的物理信道c)。子系统向后沿着路线前进并且试图使用VC ID1(离开未使用的VC ID0)重新映射C→B路径,该VC ID1在该图中不会引起任何循环。子系统以VC ID0开始继续前进以映射路径B→A,该VC ID0在该图中引起循环(例如,如图7(b)中所描绘的由于死锁的物理信道d)。于是子系统尝试VC ID1,该VC ID1在图中没有循环地成功映射。因此,子系统成功地映射了整个通信序列同时避免了潜在死锁。
图9示出了根据示例性实施方式的用于在NoC上进行无死锁通信量映射的流程图。在如图9所示的实施方式中,在900,系统选择用户指定的消息序列(例如,接收来自用户的消息序列)。在901,系统选择网络端点以限定序列的区段。在902,系统基于路由选择方案选择区段的端点之间的路线。在903,内部计数器可被从零设置以计数被试验用以映射特定的通信量的可用虚拟信道的数量。在904,系统利用由计数器指示的下一个可用虚拟信道,以将路线上的链路添加至全局信道依赖性图。在905,系统检查(例如,自动地)当前的依赖性图中的循环依赖性。在906,如果检测到循环,那么系统前进到907以从依赖性图中移除并且重置消息序列的当前区段。然后,系统前进到908,以将计数器递增到下一个可用的虚拟信道,并且在909,确定是否所有可用的虚拟信道都已经用尽。如果可用的虚拟信道没有用尽,则系统返回到904。然而,如果已经尝试了所有可用的虚拟信道,那么系统前进到910以结束该处理并且指示(例如,给用户消息)指定通信量不能用可用的虚拟信道映射。
如果未检测到循环,那么系统前进到911以确定当前区段是否被完全地映射。如果当前区段没有被完全地映射,那么系统前进到904以利用虚拟信道(由计数器指示的)在路线上添加下一条链路。
如果当前区段被完全地映射,那么系统前进到912以确定当前序列是否已经被完全地映射。如果当前序列没有被完全地映射,那么系统前进到901以为该序列的下一个区段选择端点。
如果当前序列已经被完全地映射,那么系统前进到913以确定是否所有的序列都已经被完全地映射。如果没有完全地映射所有的序列,那么系统前进到900以使用来自于用户说明的下一个消息序列。如果已经完全地映射所有的序列,则系统前进到914以表明(例如,向用户发送消息)特定通信量的可能无死锁映射。
图10示出了可以实现示例性实施方式的示例计算机系统1000。该计算机系统1000包括服务器1005,服务器1005可以包括输入/输出单元1035、存储器1060以及可操作以执行本领域的技术人员所熟知的一个或多个单元的处理器1010。本文中使用的术语“计算机可读介质”指的是参与向处理器1010提供用于执行的指令的任何介质(该介质可以以诸如的形式存在,计算机可读存储介质诸如有但并不限于光盘、磁盘、只读存储器、随机存取存储器、固态装置以及驱动器);或者适用于存储电子信息的任何其他类型切实的介质;或者可以包括诸如载波的临时介质的计算机可读信号介质。输入/输出单元对来自用户界面1040和操作员界面1045的输入进行处理,用户界面1040和操作员界面1045可利用诸如键盘、鼠标、触摸装置或者口令的输入设备。
服务器1005也可以连接至外部存储器1050,该外部存储器1050可以包括诸如便携式硬盘驱动器、光学介质(CD或者DVD)、磁盘介质或者计算机读取可执行代码所在的任何其他介质的可移动式存储器。服务器还可以连接诸如显示器的输出设备1055以输出数据以及其他信息至用户,以及向用户请求附加信息。从服务器1055至用户界面1040、操作员界面1045、外部存储器1050以及输出装置1055的连接可经由诸如802.11标准、蓝牙或者蜂窝协议的无线协议,或者经由诸如电缆或者光纤的物理传输介质。因此,该输出设备1055可以进一步充当用于与用户交互的输入设备。
处理器1010可以执行一个或多个模块。路线构建模块1011被配置为自动地构建包括互连的物理链路的路径,该路径用于在多核系统中将消息从源块发送到目的地块。虚拟信道分配模块1012可以被配置为为链路分配可用虚拟信道中的一个并将其添加至全局信道依赖性图中,所述链路位于多核系统的消息序列中的区段的端点之间的路线中。依赖性模块1013可以被配置为通过检测信道依赖性图中的环路自动地检测信道之间的循环依赖性。
取决于想要的实施方式,路线构建模块1011、虚拟信道分配模块1012以及依赖性模块1013可以以不同的方式彼此相互作用。例如,路线构建模块1011可以选择网络端点以限定序列的区段,并且基于路由方案、基于负荷平衡、基于资源最小化或者其他可能的因素,选择区段的端点之间的路线。虚拟信道分配模块1012可以从零设置内部计数器以计算被试验用以映射特定通信量的可用的虚拟信道的数量。虚拟信道分配模块可以基于资源共享与最小化、负荷平衡或者其他可能的因素分配虚拟信道。
路线构建模块1011可指示虚拟信道分配模块1012利用下一个可用的虚拟信道(例如,由虚拟信道分配模块中的计数器指示),以将路线上的链路增加到全局信道依赖性图中。然而,路线构建模块1011可以指示依赖性模块1013检查(例如,自动地)当前依赖性图中的循环依赖性。如果依赖性模块1013检测到依赖性,则路线构建模块1011可从依赖性图中移除并且重置消息序列的当前区段,其中,虚拟信道分配模块1012可以使计数器累加至下一个可用的虚拟信道,并且检查可用的虚拟信道是否用尽。如果已经尝试了所有可用的虚拟信道,那么路线构建模块1011会终止并且指示(例如,向用户发送消息)指定通信量不能以可用的虚拟信道作为路线(map映射)。
如果依赖性模块1013没有检测到循环,那么路线构建模块1011可以确定当前区段是否被完全地映射。如果确定当前区段没有被完全地映射,那么路线构建模块1011尝试利用已分配的虚拟信道来在路线上添加下一个链路,并且再核查依赖性。
如果确定当前区段被完全地映射,那么路线构建模块1011可以确定当前序列是否已经被完全地映射。如果确定当前序列没有被完全地映射,那么路线构建模块1011会进行至为序列的下一个区段选择端点并且基于路由选择方案尝试在新的端点之间选择另一个路线。
如果确定当前序列被完全地映射,那么路线构建模块确定所有的序列是否已被完全地映射。如果确定没有完全地映射所有的序列,那么路线构建模块1011从用户说明中选择下一个消息序列并且尝试映射下一个消息序列。如果确定已完全地映射所有的序列,那么路线构建模块1011可以指示(例如,向用户发送消息)特定通信量的可能无死锁映射。
路线构建模块通过被配置为接收包含死锁的多核系统的说明;指示分配模块1012自动地重新分配虚拟信道直至解决死锁;并且基于重新分配来构建映射,也可进行映射的自动构建。
此外,根据在计算机内操作的算法和符号表示法来提供详细描述的一些部分。这些算法描述与符号表示法是在数据处理领域的技术人员使用的手段以最有效地向本领域的其他技术人员传达他们新技术的本质。算法是用于产生想要的最终状态或结果的一系列限定的步骤。在示例性实施方式中,为了达到切实的结果,步骤的执行需要切实数量的物理操作。
此外,根据本文公开的说明书的描述以及示例性实施方式的实践,示例性实施方式的其他实施方式对于本领域中的技术人员是显而易见的。所描述的示例性实施方式的各个方面和/或组件可以单独使用或者以任意组合使用。说明书与示例旨在被认为是示例,具有由所附权利要求指示的实施方式的真实范围与精神。
Claims (10)
1.一种计算机实现的方法,包括:
基于多核系统的信道,为所述多核系统自动构建互连信道的映射,以使所述多核系统免于死锁。
2.根据权利要求1所述的方法,进一步包括:
在依赖图中,为所述多核系统的消息序列的区段的端点之间的路线中的链路分配一个信道;以及
自动地检查所述依赖图中的循环依赖性。
3.根据权利要求2所述的方法,进一步包括,当没有检测到循环依赖性时:
在所述映射的自动构建中包括为所述链路分配一个所述信道;
如果所述路线未被完整地映射,利用所述依赖图中所分配的一个信道或为所述路线中的另一条链路新分配的信道;以及
如果所述路线未被完整地映射,自动地检查所述依赖图中的循环依赖性;以及
当检测到循环依赖性时:
从所述依赖图中丢弃所分配的一个信道,以及
为所述依赖图中的所述路线分配另一个可用的信道。
4.根据权利要求1所述的方法,其中,所述构建包括:
接收包含死锁的所述多核系统的说明;
自动地再分配信道直至解决所述死锁;以及
基于所述再分配构建所述映射。
5.一种系统,包括:
路线构建模块,被配置为基于多核系统的信道,自动地为所述多核系统构建互连信道的映射,以使所述多核系统免于死锁。
6.根据权利要求5所述的系统,进一步包括:
分配模块,被配置为在依赖图中,为所述多核系统的序列的端点之间的路线中的链路分配一个信道;以及
依赖性模块,被配置为自动地检查所述依赖图中的循环依赖性。
7.根据权利要求6所述的系统,其中,所述路线构建模块被配置为:当通过所述依赖性模块没有检测到循环依赖性时,
在所述映射的自动构建中包括为所述链路分配一个所述信道;
如果所述路线未被完整地映射,指示所述分配模块利用所述依赖图中所分配的一个信道或为所述路线中的另一条链路新分配的信道;以及
如果所述路线未被完整地映射,指示所述依赖性模块自动地检查所述依赖图中的循环依赖性。
8.根据权利要求6所述的系统,其中,所述分配模块被配置为:当通过所述依赖性模块检测到循环依赖性时,
从所述依赖图中丢弃所分配的一个信道,以及
为所述依赖图中的所述路线分配另一个可用的信道。
9.根据权利要求6所述的系统,其中,所述分配模块被配置为重复所述分配,并且其中,所述依赖性模块被配置为重复地检查循环依赖性,直至所述序列被完整地映射或者直至所述信道被全部用尽。
10.根据权利要求5所述的系统,其中,所述路线构建模块被配置为通过以下步骤来自动地构建所述映射:
接收包含死锁的所述多核系统的说明;
指示所述分配模块自动地再分配信道直至解决所述死锁;以及
基于所述再分配构建所述映射。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/599,559 US9244880B2 (en) | 2012-08-30 | 2012-08-30 | Automatic construction of deadlock free interconnects |
US13/599,559 | 2012-08-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103684961A true CN103684961A (zh) | 2014-03-26 |
CN103684961B CN103684961B (zh) | 2018-03-27 |
Family
ID=50189084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310389131.9A Expired - Fee Related CN103684961B (zh) | 2012-08-30 | 2013-08-30 | 自动构建无死锁互连 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9244880B2 (zh) |
CN (1) | CN103684961B (zh) |
Cited By (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819616B2 (en) | 2012-10-23 | 2014-08-26 | Netspeed Systems | Asymmetric mesh NoC topologies |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US8934377B2 (en) | 2013-03-11 | 2015-01-13 | Netspeed Systems | Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis |
US9007920B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes |
US9009648B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification |
US9054977B2 (en) | 2013-08-05 | 2015-06-09 | Netspeed Systems | Automatic NoC topology generation |
US9130856B2 (en) | 2013-01-28 | 2015-09-08 | Netspeed Systems | Creating multiple NoC layers for isolation or avoiding NoC traffic congestion |
US9160627B2 (en) | 2013-04-04 | 2015-10-13 | Netspeed Systems | Multiple heterogeneous NoC layers |
US9158882B2 (en) | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9185023B2 (en) | 2013-05-03 | 2015-11-10 | Netspeed Systems | Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance |
US9185026B2 (en) | 2012-12-21 | 2015-11-10 | Netspeed Systems | Tagging and synchronization for fairness in NOC interconnects |
US9223711B2 (en) | 2013-08-13 | 2015-12-29 | Netspeed Systems | Combining associativity and cuckoo hashing |
US9244880B2 (en) | 2012-08-30 | 2016-01-26 | Netspeed Systems | Automatic construction of deadlock free interconnects |
US9244845B2 (en) | 2014-05-12 | 2016-01-26 | Netspeed Systems | System and method for improving snoop performance |
US9253085B2 (en) | 2012-12-21 | 2016-02-02 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US9294354B2 (en) | 2013-10-24 | 2016-03-22 | Netspeed Systems | Using multiple traffic profiles to design a network on chip |
US9319232B2 (en) | 2014-04-04 | 2016-04-19 | Netspeed Systems | Integrated NoC for performing data communication and NoC functions |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
US9473415B2 (en) | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
US9473359B2 (en) | 2014-06-06 | 2016-10-18 | Netspeed Systems | Transactional traffic specification for network-on-chip design |
US9473388B2 (en) | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
US9477280B1 (en) | 2014-09-24 | 2016-10-25 | Netspeed Systems | Specification for automatic power management of network-on-chip and system-on-chip |
US9529400B1 (en) | 2014-10-29 | 2016-12-27 | Netspeed Systems | Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements |
US9535848B2 (en) | 2014-06-18 | 2017-01-03 | Netspeed Systems | Using cuckoo movement for improved cache coherency |
US9571402B2 (en) | 2013-05-03 | 2017-02-14 | Netspeed Systems | Congestion control and QoS in NoC by regulating the injection traffic |
US9568970B1 (en) | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US9571341B1 (en) | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US9660942B2 (en) | 2015-02-03 | 2017-05-23 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9742630B2 (en) | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US9762474B2 (en) | 2014-04-07 | 2017-09-12 | Netspeed Systems | Systems and methods for selecting a router to connect a bridge in the network on chip (NoC) |
US9774498B2 (en) | 2012-12-21 | 2017-09-26 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US9781043B2 (en) | 2013-07-15 | 2017-10-03 | Netspeed Systems | Identification of internal dependencies within system components for evaluating potential protocol level deadlocks |
US9825809B2 (en) | 2015-05-29 | 2017-11-21 | Netspeed Systems | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip |
US9830265B2 (en) | 2013-11-20 | 2017-11-28 | Netspeed Systems, Inc. | Reuse of directory entries for holding state information through use of multiple formats |
US9864728B2 (en) | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US9928204B2 (en) | 2015-02-12 | 2018-03-27 | Netspeed Systems, Inc. | Transaction expansion for NoC simulation and NoC design |
US10027433B2 (en) | 2013-06-19 | 2018-07-17 | Netspeed Systems | Multiple clock domains in NoC |
US10042404B2 (en) | 2014-09-26 | 2018-08-07 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US10050843B2 (en) | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10084725B2 (en) | 2017-01-11 | 2018-09-25 | Netspeed Systems, Inc. | Extracting features from a NoC for machine learning construction |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10298485B2 (en) | 2017-02-06 | 2019-05-21 | Netspeed Systems, Inc. | Systems and methods for NoC construction |
US10313269B2 (en) | 2016-12-26 | 2019-06-04 | Netspeed Systems, Inc. | System and method for network on chip construction through machine learning |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
US10419300B2 (en) | 2017-02-01 | 2019-09-17 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10528682B2 (en) | 2014-09-04 | 2020-01-07 | Netspeed Systems | Automatic performance characterization of a network-on-chip (NOC) interconnect |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US10735335B2 (en) | 2016-12-02 | 2020-08-04 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
US10860762B2 (en) | 2019-07-11 | 2020-12-08 | Intel Corpration | Subsystem-based SoC integration |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
CN113642275A (zh) * | 2020-05-11 | 2021-11-12 | 阿特里斯公司 | 用于无死锁变换的片上网络的综合的系统和方法 |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9160607B1 (en) * | 2012-11-09 | 2015-10-13 | Cray Inc. | Method and apparatus for deadlock avoidance |
CN105099904B (zh) * | 2014-04-30 | 2018-06-05 | 华为技术有限公司 | 一种确定中间路由节点的方法、装置及系统 |
US10200482B2 (en) * | 2014-10-24 | 2019-02-05 | The Boeing Company | Mapping network service dependencies |
US10657216B2 (en) * | 2016-02-29 | 2020-05-19 | Oregon State University | Routerless networks-on-chip |
CN111382115B (zh) * | 2018-12-28 | 2022-04-15 | 北京灵汐科技有限公司 | 一种用于片上网络的路径创建方法、装置及电子设备 |
US11245643B2 (en) | 2020-05-20 | 2022-02-08 | Tenstorrent Inc. | Speculative resource allocation for routing on interconnect fabrics |
CN113076129B (zh) * | 2021-03-23 | 2023-11-28 | 成都安恒信息技术有限公司 | 一种复杂配置依赖关系自动检查处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | 系统总线的防死锁方法、装置及片上系统 |
US20100158023A1 (en) * | 2008-12-23 | 2010-06-24 | Suvhasis Mukhopadhyay | System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions |
US20120159037A1 (en) * | 2010-12-17 | 2012-06-21 | Kwon Woo Cheol | Memory interleaving device and method using reorder buffer |
CN102546406A (zh) * | 2011-12-28 | 2012-07-04 | 龙芯中科技术有限公司 | 片上网络路由集中控制系统和装置及自适应路由控制方法 |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4933933A (en) * | 1986-12-19 | 1990-06-12 | The California Institute Of Technology | Torus routing chip |
US5742738A (en) * | 1988-05-20 | 1998-04-21 | John R. Koza | Simultaneous evolution of the architecture of a multi-part program to solve a problem using architecture altering operations |
US5404461A (en) * | 1991-03-29 | 1995-04-04 | International Business Machines Corp. | Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks |
US5355455A (en) * | 1991-11-19 | 1994-10-11 | International Business Machines Corporation | Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor |
WO1994009576A1 (en) | 1992-10-21 | 1994-04-28 | Bell Communications Research, Inc. | A broadband virtual private network service and system |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
US5701416A (en) * | 1995-04-13 | 1997-12-23 | Cray Research, Inc. | Adaptive routing mechanism for torus interconnection network |
US5859981A (en) * | 1995-07-12 | 1999-01-12 | Super P.C., L.L.C. | Method for deadlock-free message passing in MIMD systems using routers and buffers |
US5764740A (en) | 1995-07-14 | 1998-06-09 | Telefonaktiebolaget Lm Ericsson | System and method for optimal logical network capacity dimensioning with broadband traffic |
US5991308A (en) | 1995-08-25 | 1999-11-23 | Terayon Communication Systems, Inc. | Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant |
US5898826A (en) * | 1995-11-22 | 1999-04-27 | Intel Corporation | Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network |
US5961623A (en) * | 1996-08-29 | 1999-10-05 | Apple Computer, Inc. | Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system |
US6003029A (en) | 1997-08-22 | 1999-12-14 | International Business Machines Corporation | Automatic subspace clustering of high dimensional data for data mining applications |
US6101181A (en) * | 1997-11-17 | 2000-08-08 | Cray Research Inc. | Virtual channel assignment in large torus systems |
KR100250437B1 (ko) * | 1997-12-26 | 2000-04-01 | 정선종 | 라운드로빈 중재 및 적응 경로 제어를 수행하는경로제어 장치 |
US6249902B1 (en) | 1998-01-09 | 2001-06-19 | Silicon Perspective Corporation | Design hierarchy-based placement |
US6415282B1 (en) | 1998-04-22 | 2002-07-02 | Nec Usa, Inc. | Method and apparatus for query refinement |
US6711152B1 (en) | 1998-07-06 | 2004-03-23 | At&T Corp. | Routing over large clouds |
US6968514B2 (en) | 1998-09-30 | 2005-11-22 | Cadence Design Systems, Inc. | Block based design methodology with programmable components |
US6888843B2 (en) * | 1999-09-17 | 2005-05-03 | Advanced Micro Devices, Inc. | Response virtual channel for handling all responses |
US6356900B1 (en) | 1999-12-30 | 2002-03-12 | Decode Genetics Ehf | Online modifications of relations in multidimensional processing |
CA2359168A1 (en) | 2000-10-25 | 2002-04-25 | John Doucette | Design of meta-mesh of chain sub-networks |
GB0118294D0 (en) * | 2001-07-27 | 2001-09-19 | Ibm | Method and system for deadlock detection and avoidance |
US20030145314A1 (en) * | 2002-01-31 | 2003-07-31 | Khoa Nguyen | Method of efficient dynamic data cache prefetch insertion |
US7096459B2 (en) * | 2002-09-11 | 2006-08-22 | International Business Machines Corporation | Methods and apparatus for root cause identification and problem determination in distributed systems |
US6925627B1 (en) | 2002-12-20 | 2005-08-02 | Conexant Systems, Inc. | Method and apparatus for power routing in an integrated circuit |
US8281297B2 (en) | 2003-02-05 | 2012-10-02 | Arizona Board Of Regents | Reconfigurable processing |
US20040257993A1 (en) * | 2003-03-26 | 2004-12-23 | Olav Lysne | Method and device for network reconfiguration |
US7065730B2 (en) | 2003-04-17 | 2006-06-20 | International Business Machines Corporation | Porosity aware buffered steiner tree construction |
US7318214B1 (en) | 2003-06-19 | 2008-01-08 | Invarium, Inc. | System and method for reducing patterning variability in integrated circuit manufacturing through mask layout corrections |
US7725859B1 (en) | 2003-08-01 | 2010-05-25 | Cadence Design Systems, Inc. | Methods and mechanisms for inserting metal fill data |
US7518990B2 (en) | 2003-12-26 | 2009-04-14 | Alcatel Lucent Usa Inc. | Route determination method and apparatus for virtually-concatenated data traffic |
US20050201356A1 (en) * | 2004-03-11 | 2005-09-15 | Yasuyuki Miura | Adaptive routing for hierarchical interconnection network |
US7219178B2 (en) * | 2004-09-30 | 2007-05-15 | Arm Limited | Bus deadlock avoidance |
KR100674933B1 (ko) | 2005-01-06 | 2007-01-26 | 삼성전자주식회사 | 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체 |
US8059551B2 (en) | 2005-02-15 | 2011-11-15 | Raytheon Bbn Technologies Corp. | Method for source-spoofed IP packet traceback |
US20060281221A1 (en) | 2005-06-09 | 2006-12-14 | Sharad Mehrotra | Enhanced routing grid system and method |
US7603644B2 (en) | 2005-06-24 | 2009-10-13 | Pulsic Limited | Integrated circuit routing and compaction |
US7343581B2 (en) | 2005-06-27 | 2008-03-11 | Tela Innovations, Inc. | Methods for creating primitive constructed standard cells |
JP3938387B2 (ja) * | 2005-08-10 | 2007-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、制御方法、およびコンパイラ・プログラム |
US7693064B2 (en) * | 2005-10-24 | 2010-04-06 | Cisco Technology, Inc. | Forwarding packets to a directed acyclic graph destination using link selection based on received link metrics |
JP2007149061A (ja) | 2005-10-31 | 2007-06-14 | Seiko Epson Corp | レイアウトシステムおよびレイアウトプログラム、並びにレイアウト方法 |
US7289933B2 (en) | 2005-11-04 | 2007-10-30 | Synopsys, Inc. | Simulating topography of a conductive material in a semiconductor wafer |
US7904892B2 (en) * | 2006-01-06 | 2011-03-08 | Northrop Grumman Corporation | Systems and methods for identifying and displaying dependencies |
US20070244676A1 (en) | 2006-03-03 | 2007-10-18 | Li Shang | Adaptive analysis methods |
US8448102B2 (en) | 2006-03-09 | 2013-05-21 | Tela Innovations, Inc. | Optimizing layout of irregular structures in regular layout context |
US20070256044A1 (en) | 2006-04-26 | 2007-11-01 | Gary Coryer | System and method to power route hierarchical designs that employ macro reuse |
WO2008005102A2 (en) | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
JP2007311491A (ja) | 2006-05-17 | 2007-11-29 | Toshiba Corp | 半導体集積回路 |
US20080072182A1 (en) | 2006-09-19 | 2008-03-20 | The Regents Of The University Of California | Structured and parameterized model order reduction |
EP2080128A1 (en) | 2006-10-10 | 2009-07-22 | Ecole Polytechnique Federale De Lausanne (Epfl) | Method to design network-on-chip (noc)-based communication systems |
US9053072B2 (en) * | 2007-01-25 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | End node transactions at threshold-partial fullness of storage space |
WO2008126516A1 (ja) | 2007-04-10 | 2008-10-23 | Naoki Suehiro | 送信方法、送信装置、受信方法及び受信装置 |
US7724674B2 (en) * | 2007-05-16 | 2010-05-25 | Simula Innovations As | Deadlock free network routing |
US7809006B2 (en) * | 2007-08-16 | 2010-10-05 | D. E. Shaw Research, Llc | Routing with virtual channels |
US8136071B2 (en) | 2007-09-12 | 2012-03-13 | Neal Solomon | Three dimensional integrated circuits and methods of fabrication |
US8099757B2 (en) | 2007-10-15 | 2012-01-17 | Time Warner Cable Inc. | Methods and apparatus for revenue-optimized delivery of content in a network |
TWI390869B (zh) | 2008-04-24 | 2013-03-21 | Univ Nat Taiwan | 網路資源分配系統及方法 |
JP4607254B2 (ja) | 2008-06-12 | 2011-01-05 | パナソニック株式会社 | ネットワーク監視装置、バスシステム監視装置、方法、およびプログラム |
US8050256B1 (en) | 2008-07-08 | 2011-11-01 | Tilera Corporation | Configuring routing in mesh networks |
US8255849B1 (en) | 2008-12-08 | 2012-08-28 | Cadence Design Systems, Inc. | Solver for modeling a multilayered integrated circuit with three-dimensional interconnects |
US8065433B2 (en) | 2009-01-09 | 2011-11-22 | Microsoft Corporation | Hybrid butterfly cube architecture for modular data centers |
US8285912B2 (en) | 2009-08-07 | 2012-10-09 | Arm Limited | Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure |
US8276105B2 (en) | 2009-09-18 | 2012-09-25 | International Business Machines Corporation | Automatic positioning of gate array circuits in an integrated circuit design |
US8407647B2 (en) | 2009-12-17 | 2013-03-26 | Springsoft, Inc. | Systems and methods for designing and making integrated circuits with consideration of wiring demand ratio |
US8541819B1 (en) | 2010-12-09 | 2013-09-24 | Monolithic 3D Inc. | Semiconductor device and structure |
US8492886B2 (en) | 2010-02-16 | 2013-07-23 | Monolithic 3D Inc | 3D integrated circuit with logic |
US20130080073A1 (en) | 2010-06-11 | 2013-03-28 | Waters Technologies Corporation | Techniques for mass spectrometry peak list computation using parallel processing |
US8196086B2 (en) | 2010-07-21 | 2012-06-05 | Lsi Corporation | Granular channel width for power optimization |
US9396162B2 (en) | 2010-07-22 | 2016-07-19 | John APPLEYARD | Method and apparatus for estimating the state of a system |
CN102467582B (zh) | 2010-10-29 | 2014-08-13 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
US9397933B2 (en) | 2010-12-21 | 2016-07-19 | Verizon Patent And Licensing Inc. | Method and system of providing micro-facilities for network recovery |
US8717875B2 (en) | 2011-04-15 | 2014-05-06 | Alcatel Lucent | Condensed core-energy-efficient architecture for WAN IP backbones |
US8711867B2 (en) | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
US9213788B2 (en) | 2011-10-25 | 2015-12-15 | Massachusetts Institute Of Technology | Methods and apparatus for constructing and analyzing component-based models of engineering systems |
US20130151215A1 (en) | 2011-12-12 | 2013-06-13 | Schlumberger Technology Corporation | Relaxed constraint delaunay method for discretizing fractured media |
JP2013125906A (ja) | 2011-12-15 | 2013-06-24 | Toshiba Corp | フレアマップ計算方法、フレアマップ算出プログラムおよび半導体装置の製造方法 |
US20130174113A1 (en) | 2011-12-30 | 2013-07-04 | Arteris SAS | Floorplan estimation |
US9070121B2 (en) | 2012-02-14 | 2015-06-30 | Silver Spring Networks, Inc. | Approach for prioritizing network alerts |
US9111151B2 (en) | 2012-02-17 | 2015-08-18 | National Taiwan University | Network on chip processor with multiple cores and routing method thereof |
US8756541B2 (en) | 2012-03-27 | 2014-06-17 | International Business Machines Corporation | Relative ordering circuit synthesis |
US9379971B2 (en) * | 2012-05-11 | 2016-06-28 | Simula Inovation AS | Method and apparatus for determining paths between source/destination pairs |
US8635577B2 (en) | 2012-06-01 | 2014-01-21 | International Business Machines Corporation | Timing refinement re-routing |
US9244880B2 (en) | 2012-08-30 | 2016-01-26 | Netspeed Systems | Automatic construction of deadlock free interconnects |
US20140092740A1 (en) | 2012-09-29 | 2014-04-03 | Ren Wang | Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US8601423B1 (en) | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
US8667439B1 (en) | 2013-02-27 | 2014-03-04 | Netspeed Systems | Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost |
-
2012
- 2012-08-30 US US13/599,559 patent/US9244880B2/en not_active Expired - Fee Related
-
2013
- 2013-08-30 CN CN201310389131.9A patent/CN103684961B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | 系统总线的防死锁方法、装置及片上系统 |
US20100158023A1 (en) * | 2008-12-23 | 2010-06-24 | Suvhasis Mukhopadhyay | System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions |
US20120159037A1 (en) * | 2010-12-17 | 2012-06-21 | Kwon Woo Cheol | Memory interleaving device and method using reorder buffer |
CN102546406A (zh) * | 2011-12-28 | 2012-07-04 | 龙芯中科技术有限公司 | 片上网络路由集中控制系统和装置及自适应路由控制方法 |
Cited By (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244880B2 (en) | 2012-08-30 | 2016-01-26 | Netspeed Systems | Automatic construction of deadlock free interconnects |
US8885510B2 (en) | 2012-10-09 | 2014-11-11 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US10355996B2 (en) | 2012-10-09 | 2019-07-16 | Netspeed Systems | Heterogeneous channel capacities in an interconnect |
US8819611B2 (en) | 2012-10-23 | 2014-08-26 | Netspeed Systems | Asymmetric mesh NoC topologies |
US8819616B2 (en) | 2012-10-23 | 2014-08-26 | Netspeed Systems | Asymmetric mesh NoC topologies |
US9185026B2 (en) | 2012-12-21 | 2015-11-10 | Netspeed Systems | Tagging and synchronization for fairness in NOC interconnects |
US9774498B2 (en) | 2012-12-21 | 2017-09-26 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US9253085B2 (en) | 2012-12-21 | 2016-02-02 | Netspeed Systems | Hierarchical asymmetric mesh with virtual routers |
US9007920B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes |
US9009648B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification |
US9130856B2 (en) | 2013-01-28 | 2015-09-08 | Netspeed Systems | Creating multiple NoC layers for isolation or avoiding NoC traffic congestion |
US8934377B2 (en) | 2013-03-11 | 2015-01-13 | Netspeed Systems | Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis |
US9160627B2 (en) | 2013-04-04 | 2015-10-13 | Netspeed Systems | Multiple heterogeneous NoC layers |
US9185023B2 (en) | 2013-05-03 | 2015-11-10 | Netspeed Systems | Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance |
US10554496B2 (en) | 2013-05-03 | 2020-02-04 | Netspeed Systems | Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance |
US9571402B2 (en) | 2013-05-03 | 2017-02-14 | Netspeed Systems | Congestion control and QoS in NoC by regulating the injection traffic |
US10027433B2 (en) | 2013-06-19 | 2018-07-17 | Netspeed Systems | Multiple clock domains in NoC |
US9781043B2 (en) | 2013-07-15 | 2017-10-03 | Netspeed Systems | Identification of internal dependencies within system components for evaluating potential protocol level deadlocks |
US10496770B2 (en) | 2013-07-25 | 2019-12-03 | Netspeed Systems | System level simulation in Network on Chip architecture |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
US9054977B2 (en) | 2013-08-05 | 2015-06-09 | Netspeed Systems | Automatic NoC topology generation |
US9473388B2 (en) | 2013-08-07 | 2016-10-18 | Netspeed Systems | Supporting multicast in NOC interconnect |
US9223711B2 (en) | 2013-08-13 | 2015-12-29 | Netspeed Systems | Combining associativity and cuckoo hashing |
US9294354B2 (en) | 2013-10-24 | 2016-03-22 | Netspeed Systems | Using multiple traffic profiles to design a network on chip |
US9830265B2 (en) | 2013-11-20 | 2017-11-28 | Netspeed Systems, Inc. | Reuse of directory entries for holding state information through use of multiple formats |
US9563735B1 (en) | 2013-12-19 | 2017-02-07 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9158882B2 (en) | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9569579B1 (en) | 2013-12-19 | 2017-02-14 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US10084692B2 (en) | 2013-12-30 | 2018-09-25 | Netspeed Systems, Inc. | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9769077B2 (en) | 2014-02-20 | 2017-09-19 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US10110499B2 (en) | 2014-02-20 | 2018-10-23 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9473415B2 (en) | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9571420B2 (en) | 2014-04-04 | 2017-02-14 | Netspeed Systems | Integrated NoC for performing data communication and NoC functions |
US9319232B2 (en) | 2014-04-04 | 2016-04-19 | Netspeed Systems | Integrated NoC for performing data communication and NoC functions |
US9762474B2 (en) | 2014-04-07 | 2017-09-12 | Netspeed Systems | Systems and methods for selecting a router to connect a bridge in the network on chip (NoC) |
US9244845B2 (en) | 2014-05-12 | 2016-01-26 | Netspeed Systems | System and method for improving snoop performance |
US9473359B2 (en) | 2014-06-06 | 2016-10-18 | Netspeed Systems | Transactional traffic specification for network-on-chip design |
US9535848B2 (en) | 2014-06-18 | 2017-01-03 | Netspeed Systems | Using cuckoo movement for improved cache coherency |
US10528682B2 (en) | 2014-09-04 | 2020-01-07 | Netspeed Systems | Automatic performance characterization of a network-on-chip (NOC) interconnect |
US9742630B2 (en) | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US9477280B1 (en) | 2014-09-24 | 2016-10-25 | Netspeed Systems | Specification for automatic power management of network-on-chip and system-on-chip |
US10324509B2 (en) | 2014-09-26 | 2019-06-18 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US10042404B2 (en) | 2014-09-26 | 2018-08-07 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US9571341B1 (en) | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US10074053B2 (en) | 2014-10-01 | 2018-09-11 | Netspeed Systems | Clock gating for system-on-chip elements |
US9529400B1 (en) | 2014-10-29 | 2016-12-27 | Netspeed Systems | Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements |
US9860197B2 (en) | 2015-02-03 | 2018-01-02 | Netspeed Systems, Inc. | Automatic buffer sizing for optimal network-on-chip design |
US9660942B2 (en) | 2015-02-03 | 2017-05-23 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9825887B2 (en) | 2015-02-03 | 2017-11-21 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
US9829962B2 (en) | 2015-02-12 | 2017-11-28 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US9928204B2 (en) | 2015-02-12 | 2018-03-27 | Netspeed Systems, Inc. | Transaction expansion for NoC simulation and NoC design |
US9568970B1 (en) | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US10218581B2 (en) | 2015-02-18 | 2019-02-26 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
US10050843B2 (en) | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
US9864728B2 (en) | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US9825809B2 (en) | 2015-05-29 | 2017-11-21 | Netspeed Systems | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10613616B2 (en) | 2016-09-12 | 2020-04-07 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10564703B2 (en) | 2016-09-12 | 2020-02-18 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10564704B2 (en) | 2016-09-12 | 2020-02-18 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US10735335B2 (en) | 2016-12-02 | 2020-08-04 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
US10749811B2 (en) | 2016-12-02 | 2020-08-18 | Netspeed Systems, Inc. | Interface virtualization and fast path for Network on Chip |
US10313269B2 (en) | 2016-12-26 | 2019-06-04 | Netspeed Systems, Inc. | System and method for network on chip construction through machine learning |
US10523599B2 (en) | 2017-01-10 | 2019-12-31 | Netspeed Systems, Inc. | Buffer sizing of a NoC through machine learning |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10084725B2 (en) | 2017-01-11 | 2018-09-25 | Netspeed Systems, Inc. | Extracting features from a NoC for machine learning construction |
US10419300B2 (en) | 2017-02-01 | 2019-09-17 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10469338B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10469337B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10298485B2 (en) | 2017-02-06 | 2019-05-21 | Netspeed Systems, Inc. | Systems and methods for NoC construction |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
US10860762B2 (en) | 2019-07-11 | 2020-12-08 | Intel Corpration | Subsystem-based SoC integration |
CN113642275A (zh) * | 2020-05-11 | 2021-11-12 | 阿特里斯公司 | 用于无死锁变换的片上网络的综合的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103684961B (zh) | 2018-03-27 |
US9244880B2 (en) | 2016-01-26 |
US20140068132A1 (en) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103684961A (zh) | 自动构建无死锁互连 | |
JP6060316B2 (ja) | NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 | |
US11003604B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
KR102374572B1 (ko) | 네트워크 온 칩 설계를 위한 트랜잭션 트래픽 스펙 | |
US7706275B2 (en) | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by employing bandwidth shells at areas of overutilization | |
US9294354B2 (en) | Using multiple traffic profiles to design a network on chip | |
US9477280B1 (en) | Specification for automatic power management of network-on-chip and system-on-chip | |
Maglione-Mathey et al. | Scalable deadlock-free deterministic minimal-path routing engine for infiniband-based dragonfly networks | |
US20140115218A1 (en) | ASYMMETRIC MESH NoC TOPOLOGIES | |
US9160627B2 (en) | Multiple heterogeneous NoC layers | |
WO2014113646A1 (en) | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification | |
US10547514B2 (en) | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation | |
CN102148763B (zh) | 一种应用于片上网络的动态路径分配方法及系统 | |
US10983910B2 (en) | Bandwidth weighting mechanism based network-on-chip (NoC) configuration | |
Kinsy et al. | Optimal and heuristic application-aware oblivious routing | |
US20180183672A1 (en) | System and method for grouping of network on chip (noc) elements | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
US7835284B2 (en) | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by routing through transporter nodes | |
US9762474B2 (en) | Systems and methods for selecting a router to connect a bridge in the network on chip (NoC) | |
US20180198682A1 (en) | Strategies for NoC Construction Using Machine Learning | |
Seifi et al. | A clustered NoC in group communication | |
US10084725B2 (en) | Extracting features from a NoC for machine learning construction | |
Somisetty et al. | Congestion aware negative first routing with fair arbitration for network on chip | |
CN117221212B (zh) | 片上光网络低拥塞路由方法及相关设备 | |
Moadeli et al. | Quarc: A novel network-on-chip architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180327 Termination date: 20210830 |