CN114691599A - 使用性能约束和目标的片上网络(NoC)的合成 - Google Patents
使用性能约束和目标的片上网络(NoC)的合成 Download PDFInfo
- Publication number
- CN114691599A CN114691599A CN202111577009.5A CN202111577009A CN114691599A CN 114691599 A CN114691599 A CN 114691599A CN 202111577009 A CN202111577009 A CN 202111577009A CN 114691599 A CN114691599 A CN 114691599A
- Authority
- CN
- China
- Prior art keywords
- network
- bandwidth
- performance
- performance data
- tool
- 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
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 48
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 131
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 239000003999 initiator Substances 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 239000002131 composite material Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 114
- 230000008859 change Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 12
- 230000001902 propagating effect Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
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)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
公开了实现用于执行网络(例如片上网络(NoC))的性能感知拓扑合成的工具的系统和方法。该工具提供了网络信息。该工具使用网络信息自动确定满足网络约束和性能要求的网络中每个元件的数据宽度和时钟速度。该工具能够快速提供性能感知拓扑合成,同时满足目标和网络约束。
Description
技术领域
本技术属于系统设计领域,更具体地说,涉及在片上网络(NoC)拓扑合成中使用性能约束和目标。
背景技术
多处理器系统已在通过片上网络(NoC)进行通信的片上系统(SoC)中实现。SoC包括主(启动器)知识产权(intellectual properties IP)和从(目标)IP的实例。使用行业标准协议将事务从主服务器发送到一个或多个从服务器。连接到NoC的主设备使用地址选择从设备向从设备发送请求事务。NoC解码地址并且将请求从主机传输到从机。从机处理事务并发送响应事务,该事务由NoC传输回主机。
NoC的设计和实现可以由用户(设计者)完成,也可以通过拓扑合成工具自动提供给用户。无论设计和实现是如何实现的,在整个设计(和拓扑合成)过程中都会考虑性能和性能约束。一种已知的方法是由用户(人类)创建NoC。用户必须选择NoC元件、其数据宽度以及NoC元件应连接到的时钟源。鉴于现有系统的复杂性,这种方法对于用户来说是一项非常复杂和乏味的任务。
另一种已知方法是,当网络由拓扑合成工具创建时,该工具使用拓扑合成算法为生成的网络元件计算所需的数据宽度和元件所连接的时钟。因此,每次使用稍微不同的约束运行时,该工具可能会找到不同的解决方案。如果工具每次生成的结果大不相同,那么这将导致设计者不得不在设计中花费大量时间,以确认已经完成的实现工作。此过程不能由用户手动高效且高度准确地执行。因此,需要一种工具来推导数据宽度,并且为NoC的每个元件自动选择时钟源。
发明内容
根据本发明的各个实施例和方面,为拓扑合成工具提供了系统和方法,该拓扑合成工具生成网络,例如片上网络(NoC),其导出数据宽度并且为NoC的每个元件选择时钟源。该工具实现了性能感知拓扑合成,包括使用网络中具有明确定义的性能参数(如数据宽度和时钟频率要求)的网络元件定义。本发明的一个优点是,该工具执行过程并产生可行的网络,该可行网络在整个拓扑合成过程中考虑性能约束和目标。
附图说明
为了更全面地理解本发明,参考附图。参考附属图或附图(图),根据以下描述中的方面和实施例描述本发明,其中相同的附图标记表示相同或相似的元件。要理解的是这些附图不应被视为本发明范围的限制,通过使用附图以附加细节描述本发明的当前描述的方面和实施例以及当前理解的最佳模式。
图1示出了根据本发明的方面和实施例的通过网络的在源和汇之间的连接图。
图2示出了根据本发明的方面和实施例由合成网络拓扑的工具执行的流程过程。
图3示出了根据本发明的方面和实施例的具有连接性的网络,并将元件分组到各个层。
图4A示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的初始步骤。
图4B示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的另一步骤。
图4C示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的另一步骤。
图4D示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的另一步骤。
图4E示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的另一步骤。
图4F示出了根据本发明的方面和实施例的通过网络的拓扑合成过程的另一步骤。
图5示出了根据本发明的方面和实施例的网络的一个层上的拓扑合成过程。
图6A示出了根据本发明的方面和实施例的图5的拓扑合成过程中的一个过程。
图6B示出了根据本发明的方面和实施例的图5的拓扑合成过程中的不同过程。
图7示出了用于在根据本发明的方面和实施例执行拓扑合成过程的前向传播(请求网络)时确定数据宽度和时钟的流程过程。
图8示出了用于在根据本发明的方面和实施例执行拓扑合成过程的反向传播(响应网络)时确定数据宽度和时钟的过程。
图9示出了根据系统的方面和实施例的请求网络中的带宽约束或要求的矩阵。
图10A示出了根据系统的方面和实施例的请求网络中的各种场景的带宽约束确定。
图10B示出了根据系统的方面和实施例的响应网络中的各种场景的带宽约束确定。
图11示出了根据本发明的方面和实施例的具有对整个网络的带宽的注释的网络的拓扑合成过程。
图12示出了根据本发明的方面和实施例的用于检查任何边沿的带宽的可容许性的拓扑合成过程。
图13示出了根据本发明的方面和实施例的可折叠节点的拓扑合成过程。
图14示出了根据本发明的方面和实施例的图13的连接图。
具体实施方式
关于以下描述了本技术的各种示例,这些示例说明了本发明的各个方面和实施例。通常,示例可以在任何组合中使用所描述的方面。本文中叙述原理、方面和实施例以及其具体示例的所有陈述旨在包括其结构和功能等效物。此外,此类等同物包括当前已知的等同物和将来开发的等同物,即,执行相同功能的任何开发元件,无论其结构如何。
注意,如本文所用,单数形式“一”、“一个”和“所述”包括复数指代,除非上下文另有明确规定。在本说明书中对“一个实施例”、“一实施例”、“某些实施例”、“各种实施例”或类似语言的引用意味着结合实施例描述的特定方面、特征、结构或特征包括在本发明的至少一个实施例中。
如本文所用,“源”、“主设备”和“启动器”指的是类似的知识产权(IP)区块或单元,并且这些术语在本发明的范围和实施例中可以互换使用。如本文所使用的,“汇”、“从设备”和“目标设备”是指类似的IP区块或单元,并且这些术语在本发明的范围和实施例中可交换地使用。如本文所使用的,事务可以是请求事务或响应事务。请求事务的示例包括写请求和读请求。
因此,贯穿本说明书的短语“在一个实施例中”、“在至少一个实施例中”、“在一实施例中”、“在某些实施例中”和类似语言的出现可能(但不一定)都指相同的实施例或类似的实施例。此外,本文描述的本发明的方面和实施例仅是示例性的,并且不应被解释为限制本领域普通技术人员所理解的本发明的范围或精神。在包括本文所述的任何新颖方面的任何实施例中有效地制造或使用所公开的发明。本文中叙述本发明的原理、方面和实施例的所有陈述旨在涵盖其结构和功能等效物。此类等价物包括目前已知的等价物和未来开发的等价物。此外,在详细描述和权利要求中使用术语“包括”、“包含”、“拥有”、“拥有着”、“具有”或其变体的情况下,这些术语旨在以与术语“包括”类似的方式包括在内
根据本发明的方面和实施例,基于一组规则和一组约束,工具通过连接可配置元件(交换机、管道、缓冲器、适配器等)来创建NoC。该工具考虑元件的数据宽度。该工具考虑每个元件的时钟源。成对(源、汇)进行通信并且连接以通过网络进行通信的元件被配置有数据宽度和时钟源。
当考虑成对元件(源、汇)时,成对元件之间的最大可实现带宽基于在成对元件(源、汇)之间的流量,这是通过网络的唯一流量。换言之,如果成对元件(源、汇)之间的流量是网络中唯一的流量,则成对元件(源、汇)之间的最大可实现带宽是源的带宽和汇的带宽中的最小值,由网络承载用于成对元件(源、汇)之间的通信。如本文所用,带宽(以位/秒为单位)基于元件的数据宽度和时钟频率。
现在参考图1,根据本发明的各个方面和实施例示出了源100和汇110的连接图,源100和汇110中的每个元件都具有数据宽度和时钟频率。换言之,每个源都有为其指定的数据宽度和绑定到该源的时钟。此外,每个汇都有为其定义的数据宽度和绑定到该汇的时钟。每个时钟都有定义的频率。此外,在源和汇处定义的数据宽度独立于连接性图,并且本发明的范围不受连接性图的限制。例如,源102连接到具有相似或不同数据宽度的汇112、116和118。
根据本发明的各个方面和实施例,在定义向外连接可承载的最大带宽的源处计算带宽。根据本发明的各个方面和实施例,在定义向内连接承载的最大带宽的汇处计算带宽。例如,源102和汇116具有1GHz的时钟速率和4字节的数据宽度。源106具有1.2GHz的时钟频率和8字节的数据宽度。汇116具有1GHz的时钟频率和4字节的数据宽度。
现在参考图2,示出了由工具执行的NoC拓扑合成过程200以及根据本发明的各个方面和实施例遵循的步骤。过程200从用户接收作为输入的网络信息和参数,包括:连接图、要建模的平面图信息以及其他约束和性能目标。过程200还接收参数,包括:源和汇可用的所有时钟信号的时钟速度;所有源和汇的数据宽度;各种连接的使用场景;请求的带宽限制;以及性能目标。由网络的用户(设计者)将参数输入到使用过程200的工具。
根据本发明的各个方面和实施例,过程200实现算法,该算法将同时导出数据宽度并为网络的每个元件选择时钟源。这些参数是使用定义的(且不可修改的)数据宽度选择的,并为源和汇使用定义的时钟源。该信息被输入到执行过程200的工具。根据本发明的各个方面和实施例,所有时钟源可用于连接到网络的任何元件,以便匹配为元件标识或定义的时钟频率。
该工具执行了过程200,以保证对于通过网络传输的任何给定对(源、汇),在该对之间的最大可实现带宽可由网络承载。最大可实现带宽被确定为源最大带宽和汇最大带宽中的最小值。一旦选择了最大可实现带宽,则与该对路由(源、汇)相关的所有网络元件的数据宽度和时钟源将确定该对路由(源、汇)之间网络任意点的网络带宽容量。
根据本发明的各个方面和实施例,实现算法的过程200基于用户定义的参数执行网络拓扑合成。网络拓扑合成包括以下内容:拓扑合成变换、链接容量传播、链接容量检查和链接容量偏差,本文对此进行更详细的说明。网络合成步骤的输出产生逻辑和功能网络描述、网络元件的物理放置、链接容量注释和链接容量偏差,本文对此进行解释。
根据本发明的一些方面和实施例,该过程使用用于在整个网络元件中自动传播数据宽度的规则。如果元件的入口端口或出口端口的数据宽度未知,则在以下公式中为MAX函数指定值0。换句话说,该值在传播中被忽略,除非所有入口或出口未定义;在这种情况下,值为0。该过程使用以下规则,并按如下方式为元件指定数据宽度:
MIN(MAX(入口端口的数据宽度),MAX(所有出口端口的数据宽度))
根据本发明的一些方面和实施例,该过程使用用于将时钟连接(频率)自动传播到网络元件的规则。如果入口端口或出口端口的时钟频率未知,则在以下等式中为MAX函数指定值0。该过程使用以下规则,并根据时钟频率将时钟分配给元件,如下所示:
MIN(MAX(入口端口的时钟频率),MAX(所有出口端口的时钟频率))
如前所述,拓扑合成过程包括在网络中创建与链接容量计算相关的链接,包括链接容量传播、链接容量检查和链接容量偏差。现在参考图3,根据本发明的一些方面和实施例,示出了连接图300,用于将源100连接到汇110(如图1所示)的所有路由(通过网络)通过网络元件(边沿和节点)进行数据传播。图300显示了要合成的网络的节点(圆)。合成考虑了节点、节点间链接和链接容量。每个节点都包含关于其数据宽度和时钟频率的信息,以便在网络中针对每个(源、汇)配对进行传播。
根据本发明的各个方面和实施例,拓扑合成过程背对背地应用前向和后向传播,直到注释稳定为止。当没有任何节点的数据宽度和时钟频率在传递之间不断变化时,注释是稳定的。拓扑合成过程将网络节点划分为不相交的存储桶,使得存储桶中的所有节点具有相同的层(即,沿路由的网络深度)或沿数据传播路径到最近源的距离。对于所示的非限制性示例,从源100开始,数据宽度和时钟频率被逐级(从左到右)分组到桶中,直到到达汇110为止。因此,从源100开始的第一组节点被放置在桶中并标记为层#1。该过程继续生成桶和不同的层,例如层#2、层#3、层#4和层#5的桶。这将生成前向传播的带注释的网络。当遍历所有层并且达到所有汇时,以类似的方式执行反向传播,通过从汇110、通过网络的节点、以数据宽度和时钟速度通过网络传播到源100。反向传播使用由先前过程(即,正向传播)生成的带注释的映射300。
现在参考图4A到图4F,示出了网络400,其总结了在通过网络节点(例如NoC)从源100到汇110的前向传递期间的各个阶段(对于任何给定层的任何给定节点)的数据宽度传播规则。该过程确定沿着(源、汇)对的路径或路由通过网络的链接容量。图4A从源100开始并且示出了通过层到汇110的传播。图4B示出当从源100传播到层#1时的链接容量计算。图4C示出了从层#1传播到层#2时的链接容量计算。图4D示出了从层#2传播到层#3时的链接容量计算。图4E示出了从层#3传播到层#4时的链接容量计算。图4F示出了从层#5传播到层#5时的链接容量计算。
现在参考图5、图6A和图6B,根据本发明的各个方面和实施例示出了用于稳定和注释网络的前向传播过程。在此示例中,层#3用作数据宽度计算的示例。该过程适用于所有层,尽管为了清晰起见,本文仅讨论层#3。层#3包括三个节点,每个节点在入口和出口侧具有数据宽度,用于从层#2到层#3的第一次传播。层#3的存储桶中的每个节点包括入口侧和出口侧的数据宽度(DW)。使用节点610的规则MIN(MAX(数据宽度入口端口)、MAX(数据宽度出口端口)),结果是MIN(MAX(DW1,DW2)、MAX(未定义DW4,未定义DW6))。如果未定义数据宽度,则指定值0。因此,节点610的结果是MAX(DW1,DW2)。对于节点620和630的类似计算导致数据宽度如下:对于节点620,它是DW3,对于节点630,它是MIN(DW3,DW7)。在完成前向传播的第一个过程之后,执行其他背对背的前向和后向过程,直到数据宽度稳定为止。
根据本发明的各个方面和实施例,图6B中示出了任意过程。该任意选择的过程(从第一过程之后的任意数目的可能过程中选择)用作示例,而不是对本发明范围的限制。该过程再次应用规则MIN(MAX(入口端口的数据宽度)、MAX(所有出口端口的数据宽度))。这一次,出口端口数据宽度是从先前传递中知道的。该过程将规则MIN(MAX(数据宽度入口端口)、MAX(数据宽度出口端口))应用于节点610。结果是MIN(MAX(DW1,DW2),MAX(DW4,DW6))。对于节点620和630的类似计算导致数据宽度如下:对于节点620,它是MIN(DW3,DW5),对于节点630,它是MIN(DW3,DW7)。
现在参考图7,根据本发明的方面和实施例,示出了使用通过网络中的所有节点和边沿(元件)的前向传播分析来确定数据宽度和时钟的过程。该过程从步骤710开始。在步骤710,网络中的所有节点相对于最靠近该节点的源被标记或标识。此信息用于将节点组织到层中。在步骤712,将相同层的节点分配给存储桶并且存储在存储桶中。桶根据与源的接近程度按升序排序。选择第一层的初始或第一桶。停滞标志设置为真。如本文所讨论的,根据本发明的一个方面和实施例,停滞标志可以通过使用单个比特由停滞标志值表示,其中“1”为真,“0”为假。分析了带桶节点的第一层结构。在步骤714,过程确定是否访问和分析了不同层的所有桶。如果不是,则过程继续到步骤716。在步骤716,选择未访问的下一桶,该桶处于数值较高的下一层。对桶进行了访问和分析。
在步骤718,该过程确定处于同一层(相同层)的所有节点是否已被访问并根据数据宽度和时钟速度进行了分析。如果是,则过程继续到步骤714。如果不是,则过程继续到步骤720,其中分析未访问的节点。使用规则对节点执行计算。根据本发明的方面和实施例,每个节点包括用于指示节点是否已被访问和分析的访问标志。对节点执行计算后,节点的访问标志被标记为已访问。
在正向和反向传播过程中,工具在从一层到另一层的传播过程中使用停滞标志值更新停滞标志。该工具检查停滞标志。在一些实施例中,在通过每个层的传播结束时,在一些实施例中,在完全(向前或向后)传播结束时,在一些实施例中,在每个层的结束时,在通过所有层的完全传播结束时,本文将讨论其示例。根据一些实施例,停滞标志的停滞标志值在每个传播阶段开始时重置为“真”。
根据本发明的一些方面和实施例,可以在每个节点或每个层处的局部停滞标志跟踪每个节点的拓扑合成的稳定性。对于局部停滞标志的示例,该标志以停滞标志值“真”开始。每次工具处理节点时,在正向或反向传播期间,拓扑合成工具都会更新该标志。如果节点的数据宽度/时钟信息发生变化,则更新标志;它被改变为“假”值。当访问了所有节点时,在任何给定层(或根据某些方面,在分析了所有层之后)的传播结束时(向前或向后),工具检查标志。如果所有标志的值均为“真”,则在传播过程中未更新任何节点。这意味着网络的拓扑合成是停滞的(稳定的),工具完成(停止)传播过程。如果任何停滞标志值为“假”,则该节点的数据宽度/时钟发生了改变或更新。
根据本发明的一些方面和实施例,全局停滞标志用于跟踪整个网络拓扑合成的稳定性。对于全局停滞标志的示例,该标志以停滞标志值“真”开始。每次工具处理节点时,在正向或反向传播期间,拓扑合成工具都会更新该标志。如果节点的数据宽度/时钟信息发生改变,则该标志将更新并改变为“假”值。在传播结束时(向前或向后),当访问了所有节点时,工具将检查标志。如果停滞标志值为“真”,则在传播过程中未更新任何节点。这意味着网络的拓扑合成如果稳定,工具完成(停止)传播过程。
在步骤722,基于结果更新节点的数据或信息,以设置节点的数据宽度和时钟速度(DW/时钟)。考虑全局停滞标志的示例,一旦确定了节点的数据宽度和时钟,就可以确定停滞标志值。如果节点的数据宽度/时钟信息由于被访问而改变,则停滞标志设置为假。只要节点的参数不变,停滞标志保持不变,停滞标志值保持“真”。另一方面,如果存在通过存储桶层且任何节点的性能数据(数据宽度和时钟)发生改变,则更新停滞标志,并且将停滞标志值改变为真。
根据本发明的一些方面,当过程继续确定最近计算的数据宽度和时钟是否导致任何节点的DW/时钟值发生变化时,检查停滞标志;当工具处理和访问新层和更多节点时,计算数据导致DW/时钟发生变化时,停滞标志将更新。改变针对以前访问的节点的对性能数据的改变通过改变或更新停滞标志来跟踪访问新(以前未访问)节点和层来产生。如本文概述的,对于已经访问的节点的确定的信息(性能数据)可以随着访问和分析不同层的新节点而改变。
如果在步骤718访问了所有节点,并且在步骤714访问了所有层存储桶,则流程继续到步骤730,以确定停滞标志是否已改变。如果进程确定停滞标志值为真,则进程结束,因为停滞已经发生,并且网络的拓扑合成是稳定的。另一方面,如果在计算每个节点的数据宽度和时钟速度期间,结果计算发生改变或过时,则不会发生停滞,并且停滞失效。该改变被标识并跟踪为停滞标志中的改变,因此停滞标志值为假。以另一种方式说明,如果任何节点(DW/时钟)的计算信息已改变,则停滞标志将从真改变为假(在一个示例中,这是改变的位)。如果在步骤730,处理确定不存在停滞,这意味着停滞标志全部为假,则处理进行到图8所示的反向传播。另一方面,如果在步骤730,过程确定存在停滞且停滞标志值为“真”,则过程结束。
现在参考图8,根据本发明的方面和实施例,示出了使用通过网络中的所有节点和边沿(元件)的反向传播分析来确定数据宽度和时钟的过程。处理从步骤810开始。在步骤810,网络中的所有节点相对于最靠近该节点的汇被标记或标识。此信息用于将节点组织到层中。在步骤812,将相同层的节点分配给存储桶并存储在存储桶中。桶根据与汇的距离按升序排序。选择最靠近汇的第一层初始或第一个桶进行分析和计算。停滞标志的停滞标志值设置为“真”。分析节点的第一层存储桶。在步骤814,过程确定是否访问和分析处于不同层的所有桶。如果不是,则过程继续到步骤816。在步骤816,选择处于下一个数值更高层的下一个尚未访问的桶。对桶进行了访问和分析。
在步骤818,该过程确定是否访问了同一层存储桶中的所有节点,并根据数据宽度和时钟速度进行了分析。如果是,则过程继续并返回到步骤814。如果不是,则过程继续到步骤820,其中选择未访问的节点。使用规则对节点执行计算。节点被标记为已访问。
在步骤822,更新由计算(针对正在分析的节点)产生的数据或信息。为节点存储数据或信息;这将设置节点的数据宽度和时钟速度(DW/时钟)。一旦确定了节点的数据宽度和时钟,就可以如上文关于图7概述的那样更新停滞标志,记住可以使用全局停滞标志或局部停滞标志或两者。停滞标志的“真”值表示节点的数据没有改变。换句话说,节点是稳定的。只要节点的参数不变,停滞标志就保持不变。根据本发明的方面和实施例,停滞标志是由“1”或“0”表示的值位,用于指示“真”或“假”。当过程继续(传播)时,针对所有节点检查停滞标志查看当过程访问新的层和节点时,计算的数据宽度和时钟是否已改变。如本文概述的,当访问和分析不同层的新节点时,节点的确定信息可以改变。
如果在步骤818,过程确定访问了所有节点,并且在步骤814,访问了所有层存储桶,则过程继续到步骤830,以确定在从最低层存储桶到最高层存储桶的传播过程中,是否在任何节点处发生停滞。如果在计算每个节点的数据宽度和时钟速度期间,每个节点的DW/时钟计算结果不变,则会发生停滞。如果有变化(在任何节点DW/时钟中),则该变化被标识并且跟踪为停滞标志值的变化,该变化被改变为“假”。如果计算的信息已改变,则停滞标志被改变为假(在一个示例中,这是一个改变的位)。如果不存在停滞,这意味着停滞标志为假,则处理进行到图7的前向传播。如果在步骤830,存在停滞(停滞标志值为“真”),这意味着所有节点的计算都是停滞的(或稳定的),并且过程结束。如果值发生变化,则停滞标志(用于变化的节点)将从真改变为假。如上所述,如果在步骤830,过程确定存在停滞标志的值为“真”,则过程结束。
根据本发明的一些方面和实施例,网络正在为每个(源、汇)对使用专用路径。该算法通过先前算法的设计,计算出元件的数据宽度和时钟源,能够保证满足任何类型的带宽要求。
根据本发明的一些方面和实施例,网络不将路径专用于每个(源、汇)对。因此,网络合成过程将结合网络资源,以尽量减少网络中的导线和逻辑数目。使用节点和边沿群集的组合转换具有带宽性能意识,可控制优化,以确保始终支持所需的带宽,并且如果生成的群集不再支持带宽需求,则不会执行群集。
现在参考图9,显示了两个表格或矩阵。矩阵910根据本发明的一个方面和实施例阐述了网络中的读取(请求和响应)事务的带宽要求。矩阵920根据本发明的一个方面和实施例规定了通过网络的写(请求和响应)事务的带宽要求。如本文所使用的,“场景”是两个不同的2D矩阵的叠加,一个用于读取,一个用于写入,例如矩阵910和矩阵920。每个矩阵包括关于源和汇的信息或数据;每个汇有列,每个源有行。然后,对于每个(源、汇)对,都有一个带宽值,该值是对应于该对的要求或约束的数字。例如,在矩阵910中,(S1,M1)对的带宽要求为100MB/秒。对于表中没有连接的条目,则没有指示值。基于带宽约束的总体网络性能由矩阵中的条目表示,并且网络需要支持所有场景,即使在任何时候只有一个场景可以运行。用户输入包括或定义用户意图,例如网络中不同点或整个网络的带宽容量的一组可能场景。本发明的范围不受任意场景数目的限制。
现在参考图10A,针对请求网络显示了三种不同的带宽方案。用于请求网络中一对(源、汇)的每条路径都有带宽限制。例如,为了简单明了,选择并讨论源108。在场景1中,源108与两个汇通信。在场景1中,源108的一个(源、汇)对具有2GB/s带宽约束,另一个(源、汇)对具有1GB/s带宽约束。在场景2中,源108的一个(源、汇)对具有1.5GB/sec带宽约束,另一个(源、汇)对具有1GB/sec带宽约束。在场景n中,源108的一个(源、汇)对具有1.8GB/sec带宽约束,另一个(源、汇)对具有1.2GB/sec带宽约束。已连接到源。对于任意数目的(源、汇)对,该过程需要根据可能场景中描述的所需带宽确定用户的意图。因此,对于任意数目的用例,该算法在网络优化转换(例如节点和边沿群集)期间考虑约束(带宽需求)。该过程使用该算法来确保网络的带宽容量满足网络每个点所需的带宽。根据本发明的一个方面和实施例,所得到的优化正好满足网络和每个点的所需带宽容量。根据本发明的一个方面和实施例,如果带宽容量冲突的数目超过指定数目的允许冲突,则产生的优化失败。
现在参考图10B,示出了响应网络的三种不同带宽方案。响应网络中镜像相应请求网络路径的一对(汇、源)的每条路径都有带宽限制。例如,为了简单和清楚,选择并讨论从所有汇到源108的路径。在场景1中,一个汇到源108的路径具有2GB/sec带宽约束,而另一个汇到源108的路径具有1GB/sec带宽约束。在场景2中,一个汇到源108的路径具有1.5GB/sec带宽约束,而另一个汇的路径具有1GB/sec带宽约束。在场景n中,一条(汇、源)路径的带宽限制为1.8GB/sec;另一条(汇、源)路径的带宽限制为1.2GB/sec。该过程确保响应网络的带宽容量满足网络每个点的所需带宽。根据本发明的一个方面和实施例,所得到的优化正好满足网络和每个点的所需带宽容量。根据本发明的一个方面和实施例,如果带宽容量冲突的数目超过指定数目的允许冲突,则产生的优化失败。
现在参考图11,示出了用于合成具有源100和汇110的网络以生成具有网络元件的注释连接图的连接图。为了关于图11进行说明的目的,标识路径1110。显示所有源100的每个(源、汇)对的连接图。确定每个源的数据宽度和时钟。使用每个源的数据和时钟,该过程确定每个元件的网络带宽,并且在每个节点上用带宽要求(BW)注释连接图。例如,源108与汇118通信。带注释的网络显示通过网络元件BW5和BW12的带宽要求。
根据本发明的各个方面和实施例,该过程计算每个拓扑合成阶段的带宽容量,并将其存储在正在构建的网络的边沿。圆圈表示网络元件(例如交换机、合并器、拆分器、适配器)。该过程将继续进行,直到网络满足约束条件且允许为止。对于每个场景,如果每个边沿的带宽容量满足每个边沿所需带宽的场景约束,则网络在性能约束方面是可接受的。该过程通过基于传播的带宽计算来确定数据宽度和时钟速度,从而实现可容许性。
现在参考图12,根据本发明的各个方面和实施例,示出了检查边沿带宽的可容许性的过程。例如,带宽为BW9的边沿1210(标记为e9)是要检查的选定边。边沿1210落在图11的路径1110内。BW9是一带宽,其在与拓扑合成的网络类型(请求或响应网络)相对应的模式(写入或读取)下满足所有场景中的所有最大带宽约束。为了标识要考虑的约束,该过程标识通过边沿1210的所有路由(边沿和节点)。这些在图12中以实线示出;未通过边沿1210的路线以虚线显示。该过程标识所有涉及的连接。该过程从上面讨论的场景矩阵中提取所有相应的场景约束。该过程根据场景矩阵的值检查带宽BW9。该过程确保在网络合成过程中考虑的性能驱动目标,包括在网络每个边沿流动的所有带宽,遵守场景约束,同时最小化物理资源。
根据本发明的一些方面,性能目标可以通过允许边沿的所有带宽都需要下降的裕度来放松。裕度可以作为过程的输入。作为非限制性示例,裕度以百分比表示,如5%、7%等。
根据本发明的各个方面和实施例,与目标(由用户定义)的偏差被测量为最大偏差,最大偏差是跨越所有网络边沿的最大带宽偏差。根据本发明的各个方面和实施例,与目标(如用户所定义)的偏差被测量为平均偏差,其是所有网络边沿带宽的平均值。该过程试图为带宽找到可行的解决方案。如果找不到可行的解决方案,或者如果初始场景约束不可行,那么过程将生成提供给用户的所有冲突列表。对于任何标注有带宽高于其中一个场景的最大界限的边沿,标识违规;这将导致过程生成冲突。当计算的带宽和最大界限之间的差异超过指定的偏差范围时,将引发/报告冲突。
根据本发明的各个方面和实施例,该过程随时检查带宽可容许性,以查看完全注释的网络是否可容许。该过程正在检查,以确保所有边沿都符合性能约束。另一种方式是,该过程检查所有网络边沿的可接受性。
根据本发明的各个方面和实施例,该过程通过验证可提交和接受的应用拓扑合成转换来检查带宽容许性。另一种方式是,该过程仅检查受改变影响的网络部分。例如,网络的一部分可能会由节点群集而改变。
现在参考图13和图14,示出了根据本发明的一些方面和实施例的用于标识两个节点的可能集群的网络。当至少选择两个节点折叠为一个节点时,会发生节点群集。该过程使用检查方法来确定节点是否可以集群。该过程将标识作为路由一部分的所有边沿,这些路由将通过两个节点(或通过两个旧节点)的群集而产生的新节点。选择节点1320和1322进行集群。在集群节点1320和1322的示例中,该过程标识出边沿1310和1312,这两个边沿都源自节点1330,它们可以组合,因为边1310连接到节点1320,边1312连接到节点1322。一旦节点1320和1322折叠,相应的边1310和1312也折叠,从而形成边1410。
根据本发明的各个方面和实施例,该过程确定用于请求网络的结果边沿1410和连接到折叠节点1320和1322的所有其他边沿的带宽值。为清楚起见,作为非限制性示例,考虑两个边沿1310和1312。节点1320有两个入口端口,其中一个入口端口的带宽为BW7。节点1322具有一个带宽为BW8的入口端口。根据本发明的各个方面和实施例,当不同的边将减少为一个时,考虑用于检查的带宽是所有涉及边的带宽的组合/总和。折叠的结果是带宽为BW7+BW8的节点1420。当节点1320和1322折叠时,同样地,边沿1310和1312以BW7+BW8的组合带宽合并或组合到边沿1410上。该过程确定路由并且标识相应的(源、汇)对连接。因此,可以标识场景矩阵中的所有最大带宽边界。该过程根据矩阵的限制或边界检查沿已标识路线的所有已标识边。
该流程可确定并报告任何违规或偏差。该流程还更新了此时的全球绩效目标(及其偏差)。对于性能驱动的节点群集,所有拓扑合成转换都结合了物理/布局规划约束、节点/交换机大小约束和性能约束。
根据本发明各个方面的某些方法可以通过存储在非暂时性计算机可读介质上的指令来执行。非暂时性计算机可读介质存储包括指令的代码,该指令如果由一个或多个处理器执行,将导致系统或计算机执行本文所述方法的步骤。非暂时性计算机可读介质包括:旋转磁盘、旋转光盘、闪存随机存取存储器(RAM)芯片和其他机械移动或固态存储介质。任何类型的计算机可读介质适于存储包括根据各种示例的指令的代码。
本文描述了某些示例,应注意,不同示例中不同组件的不同组合是可能的。为了更好地解释示例,给出了显著特征;然而,显然,在不修改所描述的这些示例的功能方面的情况下,可以添加、修改和/或省略某些特征。
各种示例是使用机器或机器组合行为的方法。方法示例在世界上任何地方都是完整的,大多数组成步骤都会出现。例如,根据本发明的各个方面和实施例,IP元件或单元包括:处理器(例如cpu或gpu)、随机存取存储器(RAM–例如片外动态RAM或DRAM)、用于有线或无线连接的网络接口,例如以太网、Wi-Fi、3G、4G长期演进(LTE)、5G、和其他无线接口标准收音机。IP还可以包括各种I/O接口设备,如触摸屏传感器、地理位置接收器、麦克风、扬声器、蓝牙外围设备和USB设备(如键盘和鼠标等)。通过执行存储在RAM设备中的指令,处理器执行如本文所述的方法步骤。
一些示例是一个或多个非暂时性计算机可读介质,用于存储本文所述方法的此类指令。任何持有包含任何必要代码的非暂时性计算机可读介质的机器都可以实现示例。一些示例可以实现为:诸如半导体芯片的物理设备;硬件描述语言表示此类设备的逻辑或功能行为;以及一个或多个非暂时性计算机可读介质,其被布置成存储这样的硬件描述语言表示。本文中叙述的原理、方面和实施例的描述包括其结构和功能等效物。本文中描述为耦合的元件具有可通过直接连接或间接与一个或多个其他中间元件实现的有效关系。
本领域技术人员将认识到许多修改和变化。修改和变化包括所公开特征的任何相关组合。本文中叙述的原理、方面和实施例的描述包括其结构和功能等效物。本文中描述为“耦合”或“通信耦合”的元件具有可通过使用一个或多个其他介入元件的直接连接或间接连接实现的有效关系。本文中描述为“与另一设备、模块或元件通信”或“与之通信”的实施例包括任何形式的通信或链接,并且包括有效关系。例如,可以使用有线连接、无线协议、近场协议或RFID来建立通信链接。
因此,本发明的范围并不限于本文所示和描述的示例性实施例。相反,本发明的范围和精神由所附权利要求书体现。
Claims (17)
1.一种系统,包括:
存储器,用于存储信息和代码;
处理器,与所述存储器通信;
工具,用于网络性能感知拓扑合成,所述工具与所述处理器和所述存储器通信,所述处理器访问存储器以执行所述代码,在执行所述代码时导致所述工具:
针对所述网络接收网络信息,所述网络信息包括元件和性能约束;
基于与知识产权区块的接近度,将每个元件分配到层,以产生多个层;
以基于接近度的递增顺序组织所述多个层;
使用所述工具来分析在同一层的每个元件,以计算针对同一层的每个元件的性能数据,直到已分析所述多个层中的所有层为止;
将针对每个元件的所述性能数据存储在存储器中;以及
设置每个元件的访问标志值,以指示针对被存储的所述元件的所述性能数据。
2.根据权利要求1所述的系统,其中所述元件包括形成通过所述网络的路由的节点和边沿。
3.根据权利要求1所述的系统,其中所述网络是请求网络。
4.根据权利要求1所述的系统,其中所述网络是响应网络。
5.根据权利要求1所述的系统,其中所述知识产权区块是源。
6.根据权利要求1所述的系统,其中所述知识产权区块是汇。
7.根据权利要求1所述的系统,其中性能数据包括针对每个元件的数据宽度和时钟频率。
8.根据权利要求7所述的系统,其中针对每个元件的所述数据宽度和所述时钟频率被用于确定针对每个元件的所述带宽。
9.根据权利要求1所述的系统,其中所述工具进一步引起:
检查停滞标志的值,以便确定是否任何元件的性能数据已改变或保持不变;以及
如果所述停滞标志的值为真,则使用存储的所述性能数据生成所述网络的所述性能感知拓扑合成。
10.一种用于基于性能的网络合成的方法,所述方法包括:
在工具处接收针对所述网络的网络信息,其中所述网络信息包括元件和性能要求;
基于所述元件的导知识产权区块的接近度来将所述网络中的每个元件分配到桶层,以便产生多个桶层;
基于每个元件的接近度,组织所述多个桶层,所述每个元件是通过所述网络的路由的部分,所述知识产权区块使用所述路由与另外的知识产权通信;
使用所述工具,针对在从所述多个桶层选择的第一桶层的所有元件计算性能数据;
利用所计算的所述性能数据来存储每个元件的性能数据;
设置停滞标志来指示所述值被存储、并且针对所述第一桶层的初始访问所确定的所述性能数据未改变;
针对在下一桶层的所有元件计算性能数据;
针对下一桶层的每个元件存储所述性能数据;
如果针对任何元件的所述性能数据被更新,则将所述停滞标志更新为假;并且
如果所述停滞标志为真,则生成所述网络的性能感知合成。
11.根据权利要求10所述的方法,其中元件包括形成通过所述网络的路由的节点和边沿。
12.根据权利要求10所述的方法,其中所述网络处置请求事务包括以下至少一项:读取事务和写入事务。
13.根据权利要求12所述的方法,其中所述知识产权区块是发起器。
14.根据权利要求10所述的方法,其中所述网络处置响应事务。
15.根据权利要求14所述的方法,其中所述知识产权区块是目标。
16.根据权利要求10所述的方法,其中性能数据包括针对每个元件的数据宽度和时钟频率。
17.根据权利要求16所述的系统,其中针对每个元件的所述数据宽度和所述时钟频率被用于确定针对每个元件的所述带宽。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/138,839 | 2020-12-30 | ||
US17/138,839 US11449655B2 (en) | 2020-12-30 | 2020-12-30 | Synthesis of a network-on-chip (NoC) using performance constraints and objectives |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691599A true CN114691599A (zh) | 2022-07-01 |
Family
ID=78820194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111577009.5A Pending CN114691599A (zh) | 2020-12-30 | 2021-12-22 | 使用性能约束和目标的片上网络(NoC)的合成 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11449655B2 (zh) |
EP (1) | EP4024262A1 (zh) |
CN (1) | CN114691599A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11657203B2 (en) | 2019-12-27 | 2023-05-23 | Arteris, Inc. | Multi-phase topology synthesis of a network-on-chip (NoC) |
US10990724B1 (en) * | 2019-12-27 | 2021-04-27 | Arteris, Inc. | System and method for incremental topology synthesis of a network-on-chip |
US11418448B2 (en) | 2020-04-09 | 2022-08-16 | Arteris, Inc. | System and method for synthesis of a network-on-chip to determine optimal path with load balancing |
US11601357B2 (en) | 2020-12-22 | 2023-03-07 | Arteris, Inc. | System and method for generation of quality metrics for optimization tasks in topology synthesis of a network |
US11281827B1 (en) | 2020-12-26 | 2022-03-22 | Arteris, Inc. | Optimization of parameters for synthesis of a topology using a discriminant function module |
US11449655B2 (en) * | 2020-12-30 | 2022-09-20 | Arteris, Inc. | Synthesis of a network-on-chip (NoC) using performance constraints and objectives |
US11956127B2 (en) | 2021-03-10 | 2024-04-09 | Arteris, Inc. | Incremental topology modification of a network-on-chip |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475607A (en) * | 1994-04-12 | 1995-12-12 | International Business Machines Corporation | Method of target generation for multilevel hierarchical circuit designs |
US7181383B1 (en) * | 2003-11-26 | 2007-02-20 | Cadence Design Systems, Inc. | System and method for simulating a circuit having hierarchical structure |
US20090067343A1 (en) * | 2007-06-04 | 2009-03-12 | David Fritz | Method for the synthesis of optimal asynchronous on-chip communication networks from system-level constraints |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真系统 |
US20170063734A1 (en) * | 2015-02-03 | 2017-03-02 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
CN106503333A (zh) * | 2016-10-20 | 2017-03-15 | 桂林电子科技大学 | 一种三维片上网络测试规划方法 |
US20170230253A1 (en) * | 2015-06-18 | 2017-08-10 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US20180227180A1 (en) * | 2015-02-18 | 2018-08-09 | Netspeed Systems, Inc. | System-on-chip (soc) optimization through transformation and generation of a network-on-chip (noc) topology |
CN109189720A (zh) * | 2018-08-22 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 层次化片上网络拓扑结构及其路由方法 |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5541849A (en) | 1990-04-06 | 1996-07-30 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters |
US5485396A (en) | 1991-06-28 | 1996-01-16 | Vlsi Technology, Inc. | Symbolic routing guidance for wire networks in VLSI circuits |
US5638288A (en) | 1994-08-24 | 1997-06-10 | Lsi Logic Corporation | Separable cells having wiring channels for routing signals between surrounding cells |
US5623420A (en) | 1994-11-16 | 1997-04-22 | Sun Microsystems, Inc. | Method and apparatus to distribute spare cells within a standard cell region of an integrated circuit |
US5761078A (en) | 1996-03-21 | 1998-06-02 | International Business Machines Corporation | Field programmable gate arrays using semi-hard multicell macros |
US5903886A (en) | 1996-04-30 | 1999-05-11 | Smartlynx, Inc. | Hierarchical adaptive state machine for emulating and augmenting software |
US6120550A (en) | 1996-10-28 | 2000-09-19 | Altera Corporation | Design file templates for implementation of logic designs |
US6002857A (en) | 1996-11-14 | 1999-12-14 | Avant! Corporation | Symbolic constraint-based system for preroute reconstruction following floorplan incrementing |
JP3063828B2 (ja) | 1997-03-27 | 2000-07-12 | 日本電気株式会社 | 集積回路の自動概略配線方法 |
US6437804B1 (en) | 1997-10-23 | 2002-08-20 | Aprisma Management Technologies, Inc | Method for automatic partitioning of node-weighted, edge-constrained graphs |
US6249902B1 (en) | 1998-01-09 | 2001-06-19 | Silicon Perspective Corporation | Design hierarchy-based placement |
US6145117A (en) | 1998-01-30 | 2000-11-07 | Tera Systems Incorporated | Creating optimized physical implementations from high-level descriptions of electronic design using placement based information |
US6449761B1 (en) | 1998-03-10 | 2002-09-10 | Monterey Design Systems, Inc. | Method and apparatus for providing multiple electronic design solutions |
US6321363B1 (en) | 1999-01-11 | 2001-11-20 | Novas Software Inc. | Incremental simulation using previous simulation results and knowledge of changes to simulation model to achieve fast simulation time |
US6543040B1 (en) | 2000-03-15 | 2003-04-01 | International Business Machines Corporation | Macro design techniques to accommodate chip level wiring and circuit placement across the macro |
US6622225B1 (en) | 2000-08-31 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System for minimizing memory bank conflicts in a computer system |
JP4035354B2 (ja) | 2001-07-11 | 2008-01-23 | 富士通株式会社 | 電子回路設計方法及び装置、コンピュータプログラム及び記憶媒体 |
US6907591B1 (en) | 2001-08-28 | 2005-06-14 | Cadence Design Systems, Inc. | Method and apparatus for performing extraction using a neural network |
US20030093765A1 (en) | 2001-11-13 | 2003-05-15 | Lam William K | Method and system for robust distributed circuit synthesis |
JP3961346B2 (ja) | 2002-06-17 | 2007-08-22 | 川崎重工業株式会社 | 滑走艇、及び滑走艇用の緩衝部材 |
US7225116B2 (en) | 2002-08-20 | 2007-05-29 | Cadence Design Systems, Inc. | Method for eliminating routing congestion in an IC layout |
US6990651B2 (en) | 2003-05-14 | 2006-01-24 | Lsi Logic Corporation | Advanced design format library for integrated circuit design synthesis and floorplanning tools |
US6914435B2 (en) | 2003-10-01 | 2005-07-05 | And Yet, Inc. | Circuit for measurement of electrical pollution on power line |
WO2005091574A1 (en) | 2004-03-17 | 2005-09-29 | Koninklijke Philips Electronics N.V. | Integrated circuit and method of communication service mapping |
US20050268258A1 (en) | 2004-06-01 | 2005-12-01 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
US7305641B2 (en) | 2005-01-12 | 2007-12-04 | International Business Machines Corporation | Method and system to redistribute white space for minimizing wire length |
US7788625B1 (en) | 2005-04-14 | 2010-08-31 | Xilinx, Inc. | Method and apparatus for precharacterizing systems for use in system level design of integrated circuits |
US7711536B2 (en) | 2005-12-30 | 2010-05-04 | Cadence Design Systems, Inc. | System and method for verification aware synthesis |
US7587687B2 (en) | 2005-12-30 | 2009-09-08 | Cadence Design Systems, Inc. | System and method for incremental synthesis |
US7673259B2 (en) | 2005-12-30 | 2010-03-02 | Cadence Design Systems, Inc. | System and method for synthesis reuse |
US8000318B2 (en) | 2006-06-30 | 2011-08-16 | Embarq Holdings Company, Llc | System and method for call routing based on transmission performance of a packet network |
US8144587B2 (en) | 2006-08-22 | 2012-03-27 | Embarq Holdings Company, Llc | System and method for load balancing network resources using a connection admission control engine |
US8042087B2 (en) | 2006-10-10 | 2011-10-18 | Ecole Polytechnique Federale De Lausanne (Epfl) | Method to design network-on-chip (NOC)-based communication systems |
US20100061352A1 (en) | 2006-10-31 | 2010-03-11 | Elena Fasolo | Method for routing traffic in a local mobile communication network |
US7756029B2 (en) | 2007-05-24 | 2010-07-13 | Harris Stratex Networks Operating Corporation | Dynamic load balancing for layer-2 link aggregation |
US8819608B2 (en) | 2007-07-23 | 2014-08-26 | Synopsys, Inc. | Architectural physical synthesis |
US8302041B1 (en) | 2008-06-25 | 2012-10-30 | Xilinx, Inc. | Implementation flow for electronic circuit designs using choice networks |
US9576092B2 (en) | 2009-02-24 | 2017-02-21 | Mentor Graphics Corporation | Synthesis using multiple synthesis engine configurations |
US8161048B2 (en) | 2009-04-24 | 2012-04-17 | At&T Intellectual Property I, L.P. | Database analysis using clusters |
US9444737B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Packet data processor in a communications processor architecture |
US9262359B1 (en) | 2009-12-04 | 2016-02-16 | Cadence Design Systems, Inc. | Method and system for implementing pipeline flip-flops |
US8457107B2 (en) | 2010-01-12 | 2013-06-04 | Verizon Patent And Licensing Inc. | Method and system for finding shortest paths in ring networks |
US8786495B2 (en) | 2010-07-14 | 2014-07-22 | Zebra Enterprise Solutions Corp. | Frequency channel diversity for real-time locating systems, methods, and computer program products |
US8793644B2 (en) | 2011-06-02 | 2014-07-29 | Qualcomm Technologies, Inc. | Display and automatic improvement of timing and area in a network-on-chip |
US20130174113A1 (en) | 2011-12-30 | 2013-07-04 | Arteris SAS | Floorplan estimation |
US8730806B2 (en) | 2012-04-03 | 2014-05-20 | Telefonaktiebolaget L M Ericsson (Publ) | Congestion control and resource allocation in split architecture networks |
US8726214B2 (en) | 2012-04-19 | 2014-05-13 | Ncku Research And Development Foundation | Floorplanning method for an analog integrated circuit layout |
US8601423B1 (en) | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
US9479456B2 (en) | 2012-11-02 | 2016-10-25 | Altera Corporation | Programmable logic device with integrated network-on-chip |
US9253077B2 (en) | 2012-11-30 | 2016-02-02 | International Business Machines Corporation | Parallel top-K simple shortest paths discovery |
US9203761B2 (en) | 2012-12-12 | 2015-12-01 | Taqua Wbh, Llc | Systems and methods optimizing backhaul transport |
US8989017B2 (en) | 2012-12-14 | 2015-03-24 | Intel Corporation | Network congestion management by packet circulation |
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 |
US9184998B2 (en) | 2013-03-14 | 2015-11-10 | Qualcomm Incorporated | Distributed path update in hybrid networks |
US8839171B1 (en) | 2013-03-31 | 2014-09-16 | Atrenta, Inc. | Method of global design closure at top level and driving of downstream implementation flow |
US9054977B2 (en) | 2013-08-05 | 2015-06-09 | Netspeed Systems | Automatic NoC topology generation |
ITTO20130824A1 (it) | 2013-10-11 | 2015-04-11 | St Microelectronics Grenoble 2 | Sistema per progettare disposizioni di interconnessione network on chip |
US9158882B2 (en) | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9569574B1 (en) | 2014-03-07 | 2017-02-14 | Altera Corporation | Method and apparatus for performing fast incremental physical design optimization |
US9607071B2 (en) | 2014-03-07 | 2017-03-28 | Adobe Systems Incorporated | Managing a distributed database across a plurality of clusters |
US9825779B2 (en) | 2014-05-23 | 2017-11-21 | Arteris, Inc. | Network-on-chip (NoC) topology generation |
US9529951B2 (en) | 2014-05-29 | 2016-12-27 | International Business Machines Corporation | Synthesis tuning system for VLSI design optimization |
US10042404B2 (en) | 2014-09-26 | 2018-08-07 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US9355211B2 (en) | 2014-10-10 | 2016-05-31 | Oracle International Corporation | Unified tool for automatic design constraints generation and verification |
US9417961B2 (en) | 2014-11-18 | 2016-08-16 | HGST Netherlands B.V. | Resource allocation and deallocation for power management in devices |
US9444702B1 (en) | 2015-02-06 | 2016-09-13 | Netspeed Systems | System and method for visualization of NoC performance based on simulation output |
JP2016177454A (ja) | 2015-03-19 | 2016-10-06 | 富士通株式会社 | 動作合成方法、動作合成プログラムおよび動作合成装置 |
CN105187313B (zh) | 2015-09-25 | 2018-05-01 | 东北大学 | 一种片上网络拓扑结构及其自适应路由方法 |
US9852254B2 (en) | 2015-11-10 | 2017-12-26 | Arteris, Inc. | Automatic architecture placement guidance |
US9940423B2 (en) | 2015-12-20 | 2018-04-10 | Arteris, Inc. | Editing a NoC topology on top of a floorplan |
US10733350B1 (en) | 2015-12-30 | 2020-08-04 | Sharat C Prasad | On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy |
US20170193136A1 (en) | 2015-12-30 | 2017-07-06 | Sharat C. Prasad | On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy |
US20200234582A1 (en) | 2016-01-03 | 2020-07-23 | Yosef Mintz | Integrative system and methods to apply predictive dynamic city-traffic load balancing and perdictive parking control that may further contribute to cooperative safe driving |
US10068047B1 (en) | 2016-10-14 | 2018-09-04 | Altera Corporation | Systems and methods for designing an integrated circuit |
US10425339B2 (en) | 2016-10-24 | 2019-09-24 | Cisco Technology, Inc. | Multi-homed load-balanced rate-based tunnels |
US10521536B2 (en) | 2016-11-21 | 2019-12-31 | Synopsys, Inc. | RTL verification using computational complexity-based property ranking and scheduling |
EP3333735B1 (en) | 2016-12-12 | 2021-07-07 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device |
US9792397B1 (en) | 2017-01-08 | 2017-10-17 | Alphaics Corporation | System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning |
US10282502B1 (en) | 2017-03-07 | 2019-05-07 | Amazon Technologies, Inc. | Flexible constraint integrated circuit implementation runs |
US10740527B2 (en) | 2017-09-06 | 2020-08-11 | Apple Inc. | Semiconductor layout in FinFET technologies |
CN109587081A (zh) | 2017-09-29 | 2019-04-05 | 邢筱丹 | 一种基于拓扑划分的片上网络快速映射算法 |
US10719651B2 (en) | 2017-12-30 | 2020-07-21 | Arteris, Inc. | Synthesizing topology for an interconnect network of a system-on-chip with intellectual property blocks |
US11154251B2 (en) | 2018-02-10 | 2021-10-26 | The Governing Council Of The University Of Toronto | System and method for classifying time series data for state identification |
US11544441B2 (en) | 2018-02-12 | 2023-01-03 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Automated network-on-chip design |
US20190260504A1 (en) | 2018-02-22 | 2019-08-22 | Netspeed Systems, Inc. | Systems and methods for maintaining network-on-chip (noc) safety and reliability |
US11671329B2 (en) | 2018-04-04 | 2023-06-06 | Arista Networks, Inc. | Computation of network flooding topologies |
US10516478B2 (en) | 2018-05-23 | 2019-12-24 | Futurewei Technologies, Inc. | Controller based path estimation and path provisioning using optical impairment data |
US10893005B2 (en) | 2018-09-17 | 2021-01-12 | Xilinx, Inc. | Partial reconfiguration for Network-on-Chip (NoC) |
US10922471B2 (en) | 2019-03-18 | 2021-02-16 | Intel Corporation | High performance regularized network-on-chip architecture |
US11588733B2 (en) | 2019-05-14 | 2023-02-21 | Vmware, Inc. | Slice-based routing |
US10990724B1 (en) | 2019-12-27 | 2021-04-27 | Arteris, Inc. | System and method for incremental topology synthesis of a network-on-chip |
US11121933B2 (en) | 2019-12-27 | 2021-09-14 | Arteris, Inc. | Physically aware topology synthesis of a network |
US11558259B2 (en) | 2019-12-27 | 2023-01-17 | Arteris, Inc. | System and method for generating and using physical roadmaps in network synthesis |
US11201819B2 (en) | 2020-01-16 | 2021-12-14 | Charter Communications Operating, Llc | Multi-domain quality of service software-defined networking controller |
US11418448B2 (en) | 2020-04-09 | 2022-08-16 | Arteris, Inc. | System and method for synthesis of a network-on-chip to determine optimal path with load balancing |
US11281827B1 (en) | 2020-12-26 | 2022-03-22 | Arteris, Inc. | Optimization of parameters for synthesis of a topology using a discriminant function module |
US11449655B2 (en) | 2020-12-30 | 2022-09-20 | Arteris, Inc. | Synthesis of a network-on-chip (NoC) using performance constraints and objectives |
US11956127B2 (en) | 2021-03-10 | 2024-04-09 | Arteris, Inc. | Incremental topology modification of a network-on-chip |
-
2020
- 2020-12-30 US US17/138,839 patent/US11449655B2/en active Active
-
2021
- 2021-11-30 EP EP21211514.1A patent/EP4024262A1/en active Pending
- 2021-12-22 CN CN202111577009.5A patent/CN114691599A/zh active Pending
-
2022
- 2022-09-19 US US17/948,199 patent/US11836427B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475607A (en) * | 1994-04-12 | 1995-12-12 | International Business Machines Corporation | Method of target generation for multilevel hierarchical circuit designs |
US7181383B1 (en) * | 2003-11-26 | 2007-02-20 | Cadence Design Systems, Inc. | System and method for simulating a circuit having hierarchical structure |
US20090067343A1 (en) * | 2007-06-04 | 2009-03-12 | David Fritz | Method for the synthesis of optimal asynchronous on-chip communication networks from system-level constraints |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真系统 |
US20170063734A1 (en) * | 2015-02-03 | 2017-03-02 | Netspeed Systems | Automatic buffer sizing for optimal network-on-chip design |
US20180227180A1 (en) * | 2015-02-18 | 2018-08-09 | Netspeed Systems, Inc. | System-on-chip (soc) optimization through transformation and generation of a network-on-chip (noc) topology |
US20170230253A1 (en) * | 2015-06-18 | 2017-08-10 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
CN106503333A (zh) * | 2016-10-20 | 2017-03-15 | 桂林电子科技大学 | 一种三维片上网络测试规划方法 |
CN109189720A (zh) * | 2018-08-22 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 层次化片上网络拓扑结构及其路由方法 |
Non-Patent Citations (4)
Title |
---|
SRINIVASAN MURALI 等: "Synthesis of Predictable Networks-on-Chip-Based Interconnect Architectures for Chip Multiprocessors", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, vol. 15, no. 8, 31 August 2007 (2007-08-31), XP011187732, DOI: 10.1109/TVLSI.2007.900742 * |
TOMÁS PICORNELL 等: "DCFNoC: A Delayed Conflict-Free Time Division Multiplexing Network on Chip", THE 56TH ANNUAL DESIGN AUTOMATION CONFERENCE 2019, 30 June 2019 (2019-06-30) * |
VICTOR DUMITRIU 等: "The 56th Annual Design Automation Conference 2019", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, vol. 17, no. 10, 31 October 2009 (2009-10-31) * |
刘凌云 等: "片上网络映射优化问题研究与进展", 计算机应用研究, vol. 34, no. 07, 31 July 2017 (2017-07-31) * |
Also Published As
Publication number | Publication date |
---|---|
EP4024262A1 (en) | 2022-07-06 |
US20220210030A1 (en) | 2022-06-30 |
US11836427B2 (en) | 2023-12-05 |
US20230013697A1 (en) | 2023-01-19 |
US11449655B2 (en) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114691599A (zh) | 使用性能约束和目标的片上网络(NoC)的合成 | |
CN113055219B (zh) | 网络的物理感知拓扑综合 | |
US10348563B2 (en) | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology | |
EP3140748B1 (en) | Interconnect systems and methods using hybrid memory cube links | |
US7373475B2 (en) | Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures | |
CN101765838B (zh) | 用于改善可路由架构的性能的系统和方法 | |
US20210203557A1 (en) | System and method for generating and using physical roadmaps in network synthesis | |
CN111490948B (zh) | 用于siro交换系统的路由配置方法、装置以及介质 | |
JP2003114879A (ja) | メッセージトラフィックとマルチシャーシコンピュータシステムのバランスをとる方法 | |
CN113051215A (zh) | 用于片上网络的增量拓扑综合的系统和方法 | |
US11329690B2 (en) | Network-on-Chip topology generation | |
US20050177344A1 (en) | Histogram performance counters for use in transaction latency analysis | |
US10896476B2 (en) | Repository of integration description of hardware intellectual property for NoC construction and SoC integration | |
CN107315697A (zh) | 用于减少管理端口的计算机可读取存储装置、系统及方法 | |
CN111182037A (zh) | 一种虚拟网络的映射方法和装置 | |
CN113791730B (zh) | 基于双存储池的放置组调整方法、系统、装置及存储介质 | |
Mortazavi et al. | A fault-tolerant and congestion-aware architecture for wireless networks-on-chip | |
JP2011503731A (ja) | リンクに基づくシステムにおけるシステムルーティング情報の変更 | |
CN109271438A (zh) | 一种数据库访问方法及其系统 | |
CN114915586A (zh) | 片上网络拓扑生成 | |
EP4309039A1 (en) | Memory operations management in computing systems | |
US10084725B2 (en) | Extracting features from a NoC for machine learning construction | |
Odendahl et al. | Optimized buffer allocation in multicore platforms | |
US11784909B2 (en) | Quality metrics for optimization tasks in generation of a network | |
TWI452518B (zh) | 虛擬機器的配置方法與使用其之伺服器系統 |
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 |