片上网络的增量拓扑修改的制作方法

文档序号:31563663发布日期:2022-09-20 19:09阅读:63来源:国知局
片上网络的增量拓扑修改的制作方法

1.本技术属于系统设计领域,并且更具体地涉及用于生成片上网络(noc)描述的拓扑合成。


背景技术:

2.多处理器系统已经在片上系统(soc)中实现,该soc通过用于处理soc的知识产权(ip)单元之间的通信的特殊网络而进行通信。特殊网络的一个示例是片上网络(noc)。典型的soc包括源或发起方ip和汇(“sink”)或目标ip的实例。事务使用行业标准协议而从发起方被发送到一个或多个目标。通过使用地址来选择目标,连接到noc的发起方向目标发送请求事务。noc解码地址并且将请求从发起方传输到目标。目标处理事务并且发送响应事务,该响应事务由noc传输回发起方。
3.通常,在设计期间,合成工具基于要求集来生成noc描述。结果已经通过asic设计流程而被处理,并且执行了逻辑合成和布局布线步骤。这些步骤通常需要很长时间(例如,数天)。
4.在第一代之后,决定从soc中移除组件,这会导致根据对该组要求集的影响而对布局规划和连通性进行轻微修改。生成noc拓扑的合成工具将利用所更新的要求再次运行。与第一次运行相比,该工具给出完全不同的结果。因此,关于逻辑合成和布局布线的所有先前工作都需要从头开始,即使修改非常小。这是非常昂贵的。
5.当设计包含一个或多个noc的大型soc时,设计方可能必须迭代地执行noc拓扑的配置,随着设计的进展进行很多小的改变。改变的示例包括:添加或移除连接到noc的组件;改变noc中业务的源与汇之间的逻辑连通性;改变导致针对noc实现的新的物理约束的布局规划的部分,诸如新的阻塞或新的空闲空间,以将构成noc的逻辑元素放置在芯片上;以及改变所需要的性能,例如修改源与汇之间所需要的最小带宽,或改变某些元素的时钟频率,或改变某些元素的路径宽度。
6.当需要做出这样的改变时,这些改变对noc拓扑有影响,使得该noc拓扑不再满足新的要求。修改现有noc拓扑以适应变化或新的需求/要求。在这样做的同时,将尝试最小化noc中的改变次数,以保留实现,使得不受改变影响的部分保持被最小修改。例如,将尝试保留现有逻辑合成和/或布局布线的实现。这项任务很困难并且容易出错。
7.需要一种工具来将现有noc拓扑和所更新的要求作为输入以生成所修改的noc拓扑,该拓扑满足所更新的要求。


技术实现要素:

8.根据本文中的各种实施例和方面,系统、方法和计算机可读介质在存在更新/新要求时,将现有noc拓扑作为输入,并且生成满足所更新的/新的要求的所更新的noc拓扑,同时最小化由增量合成运行导致的延迟和错误,诸如两次连续合成运行。
附图说明
9.图1示出了根据本发明的各个方面和实施例的、包括各种元素的片上网络(noc)的逻辑视图;
10.图2示出了根据本发明的各个方面和实施例的用于修改现有noc拓扑以满足所更新的要求的过程;
11.图3示出了根据本发明的各个方面和实施例的由拓扑修改工具使用的、用于更新noc拓扑的过程;
12.图4示出了根据本发明的各个方面和实施例的用于更新noc拓扑的过程;
13.图5示出了根据本发明的各个方面和实施例的图4的过程的步骤;
14.图6示出了根据本发明的各个方面和实施例的图4的过程的步骤;
15.图7示出了根据本发明的各个方面和实施例的图4的过程的步骤;以及
16.图8示出了根据本发明的各个方面和实施例的图4的过程的步骤。
具体实施方式
17.下面描述本技术的各种示例。通常,示例可以以任何组合使用所描述的方面。本文中引用原理、方面和实施例及其具体示例的所有陈述旨在涵盖其结构和功能等效物两者。此外,这样的等效物旨在包括当前已知的等效物和未来开发的等效物两者,即,无论结构如何,所开发的用于执行相同功能的任何元素。
18.注意,如本文中使用的,单数形式“一”、“一个”和“该”包括复数指示物,除非上下文另有明确规定。在整个说明书中对“一个实施例”、“实施例”、“某个实施例”、“各种实施例”或类似语言的引用表示结合该实施例所描述的特定方面、特征、结构或特性被包括在至少一个实施例中。
19.如本文中使用的,“源”和“发起方”指代相似的知识产权(ip)模块或单元,并且这些术语在该范围和实施例内可互换使用。如本文中使用的,“汇”和“目标”指代相似的ip模块或单元,并且这些术语在该范围和实施例内可互换使用。如本文中使用的,事务可以是请求事务或响应事务。请求事务的示例包括写入请求和读取请求。
20.因此,短语“在一个实施例中”、“在至少一个实施例中”、“在实施例中”、“在某些实施例中”和贯穿本说明书的类似语言的出现可以但不必然都指代相同的实施例或类似的实施例。此外,本文中描述的方面和实施例仅仅是示例性的,而不应当被解释为对本领域普通技术人员所理解的本发明的范围或精神的限制。本文中引用原理、方面和实施例的所有陈述旨在涵盖其结构和功能等效物两者。意图在于,这样的等效物包括当前已知的等效物和将来开发的等效物两者。此外,就在具体实施方式和权利要求中使用的术语“包括”、“包含”、“具有”、“有”、“利用”或其变型而言,这样的术语旨在以与术语“包括”类似的方式是包括性的。
21.现在参考图1,示出了片上网络(noc)100的示例。noc 100使用所组装的基本网络功能,诸如网络接口单元(niu)102、104、106、108、110、112、130、132和134、交换机114、116、118、120和122、适配器126和缓冲器124。noc 100的基础网络功能可以通常基于分组的传输来使用特定于noc 100的内部传输协议以彼此通信。niu 102、104、106、108、110、112、130、132和134将由附接的片上系统(soc)单元(未示出)所使用的协议转换为在noc 100内部所
使用的传输协议。交换机114、116、118、120和122在源与目标目的地之间路由业务流。缓冲器124用于插入流水线元素以跨越长距离,或存储分组以处理快速发送方与慢速接收方之间的速率适配,反之亦然。适配器126处理数据宽度、时钟与电源域之间的各种转换。noc 100可以在具有数字逻辑的soc中实现,诸如逻辑门和时序元素(触发器)。
22.现在参考图2,示出了用于修改noc的现有拓扑的过程。提供noc的初始要求(n)200作为输入。基于初始要求(n)200,提供或创建满足这些初始要求200的对应noc拓扑202或204。在一些实施例中,noc拓扑202是手工创建的,诸如由设计方。在一些实施例中,noc拓扑204是使用noc拓扑合成模块或工具而被自动创建的。初始要求200和对应noc拓扑202或204两者都在计算机可读表示208(诸如,计算机文件或内存数据结构)中描述。
23.初始要求200被更新(例如,所更新的、新的和/或所修订的),导致所更新的要求210。现有noc拓扑202或204现在已经过时,因为它不满足所更新的要求(n+1)210。所更新的要求(n+1)210和现在已经过时的现有noc拓扑202或204再次在计算机可读表示220(诸如,计算机文件或内存数据结构)中可用。
24.拓扑修改工具230接收所更新的要求210和现有noc拓扑表示202或204,并且修改过时的现有noc拓扑表示202或204,以生成满足所更新的要求210的noc拓扑表示232。
25.另外参考图3,示出了由拓扑修改工具230使用,以生成与所更新的要求210相关联的所更新的noc拓扑232的过程。在步骤300处,以计算机可读形式提供noc拓扑202或204和相关联的要求200。在步骤310处,更新要求。一旦要求200被更新,初始noc拓扑202或204就会过时。在步骤320处,拓扑修改工具230以计算机可读形式组合所更新的要求210和过时的现有noc拓扑。
26.在步骤330处,拓扑修改工具230修改现有noc拓扑202或204,以满足所更新的要求210。每次增量修改包括:最小化对现有拓扑中的现有组件的改变次数。最小化改变包括:保留初始noc拓扑中的现有组件的名称。
27.在步骤340处,所更新的noc拓扑232被生成并且与所更新的要求210以计算机可读形式240一起提供。
28.另外参考图4,示出了用于更新noc拓扑的工具的过程400的示例。由工具230使用过程400,以增量步骤来更新noc拓扑202或204,并且使noc拓扑202或204与所更新的要求210一致。步骤数目取决于对要求的更新的类型。所示出的步骤数目和所示出的执行或调用这些步骤的顺序只是一个非限制性示例。在一些实施例中,可以改变步骤的顺序。在一些实施例中,可以有更多步骤(未示出)。
29.在步骤402处,拓扑修改工具230接收以计算机可读形式的过时的现有noc拓扑202或204和所更新的要求210。在步骤410处,工具230确定noc拓扑202或204是否满足所更新的要求210或者是否存在错误(即,所更新的要求210不满足)。
30.工具230负责决定是否需要执行修改步骤a、b、c和/或d以及需要哪个步骤。工具的过程400确定要执行步骤a、b、c和/或d中的哪些步骤、以什么组合、以及以什么顺序以满足所更新的要求。下面根据本发明的各个方面和实施例更详细地描述步骤a、b、c和d的示例。
31.在每个步骤a、b、c和d处,工具230将所更新的要求和noc拓扑作为输入。每个步骤a、b、c和d使用所更新的要求并且产生(可能的)所修改的noc拓扑作为输出。在一个步骤a、b、c或d结束时所生成的noc拓扑可能仍不能满足所更新的要求210。
32.在框430处,在执行每个步骤a、b、c和/或d之后,生成所修改的拓扑。以这种方式,noc拓扑的修改是增量的。
33.如果所修改的noc拓扑满足所更新的要求210(框410),则该过程完成。以计算机可读形式输出所修改后拓扑。如果在步骤410处检测到错误(诸如,不可能完全满足所更新的要求)则可以终止过程400。
34.本文中的方法提供了对常规noc拓扑修改的改进。因此,当有更新/新要求时,增量合成运行(诸如,两次连续合成运行)导致的延迟和错误被最小化。因此,减少了执行修改的成本和时间。
35.现在参考图5,在图4的步骤a处,拓扑修改工具230检查现在过时或无用的noc元素和连接,因为它们在过时的noc拓扑中实现的连通性不再存在于所更新的要求中(框510和520)。该过程移除不必要的元素。工具230然后生成并且提供以计算机可读形式所更新的noc拓扑和相关联的所更新的要求(图4的框430)。
36.现在参考图6,在图4的步骤b处,拓扑修改工具230考虑丢失的业务的noc源和汇,并且添加丢失的源和汇以支持业务(框610和620)。
37.在一些情况下,noc与新发起方和/或新目标的连接可能需要新的niu,该niu是业务的源和汇。然后,检查业务的源和目的地,并且对具有丢失连通性的源和目的地进行分组(框630)。一个组可以只有一个丢失连通性的元素。一个组可以全部元素都丢失连通性。对于具有丢失连通性的每个这样的元素组,如果需要,则创建新的网络元素,并且如果需要,则在元素之间创建新的连接(框640)。新创建的元素和连接被标记为新的。未标记为新的元素被标记为旧的。
38.可以创建的新元素的类型或种类包括新交换机。可以创建的新连接类型包括:新交换机之间、新交换机与旧(现有)交换机之间以及旧(现有)交换机之间的连接。
39.拓扑修改工具230然后执行节点聚类和边缘聚类(框650)。节点聚类将多个noc元素组合成一个。例如,可以将多个交换机组合成一个交换机。因此,步骤b确保了如果新交换机与旧交换机组合,则在旧交换机的名称中选择生成交换机的名称。边缘聚类将noc元素之间的多个连接组合成一个。当这种情况发生时,步骤b确保了如果新交换机与旧交换机组合(这是由于边缘聚类过程造成的),则在旧交换机的名称中选择生成交换机的名称。因此,步骤b保留了旧交换机名称的最大值,即使旧交换机具有新的连通性。
40.工具230然后生成并且提供以计算机可读形式的所更新的noc拓扑和所更新的要求(图4的框430)。
41.现在参考图7,在图4的步骤c处,拓扑修改工具230检查过时的noc拓扑的非法位置(框710)。由于布局规划的变化,某些noc元素可能位于布局规划的非法位置。将非法位置处的元素移动到合法位置(框720)。作为选项(未示出),拓扑修改工具230可以尝试最小化noc线长度,这是元素之间的noc所聚合的总长度。拓扑修改工具230然后生成并且提供以计算机可读形式的所更新的noc拓扑和所更新的要求(图4的框430)。
42.现在参考图8,在图4的步骤d处,拓扑修改工具230更新现有noc元素的时序。例如。改变noc元素连接到时钟的方式,并且更新配置以满足所更新的要求。noc元素与时钟(noc元素具有时钟输入,因为它们是利用数字逻辑组件而被构建的)和noc元素配置(诸如,它们携带的分组flits的宽度)的连接被更新,以使noc性能适应所更新的要求(框810和820)。所
考虑的noc性能指标是所更新的要求中描述的指标。这种要求的非限制性示例是在某个业务场景中源与汇之间的最小带宽。另一非限制性示例是门计数。另一非限制性示例是功耗。拓扑修改工具230然后生成并且提供以计算机可读形式的所更新的noc拓扑和所更新的要求(图4的框430)。
43.在一些方面和实施例中,工具的过程可以仅用于noc的子部分。
44.本文中的某些方法可以由存储在非暂态计算机可读介质上的指令来执行。非暂态计算机可读介质存储包括指令的代码,如果指令由一个或多个处理器执行,该指令将使系统或计算机执行本文中描述的方法的步骤。非暂态计算机可读介质的示例包括旋转磁盘、旋转光盘、闪存随机存取存储器(ram)芯片和其他机械移动或固态存储介质。
45.本文中已经描述了某些示例,并且应当注意,可以考虑来自不同示例的不同特征的不同组合。提出了显著特征以更好地解释示例;然而,很明显,可以添加、修改和/或省略某些特征,而不修改所描述的这些示例的功能方面。
46.至于noc,ip元素或单元的示例包括处理器(例如,cpu或gpu)、随机存取存储器(ram——例如,片外动态ram或dram)、用于有线或无线连接的网络接口(诸如,以太网、wifi、3g、4g长期演进(lte)、5g和其他无线接口标准无线电)。针对不同外围设备所需要的,ip还可以包括各种i/o接口设备,诸如触摸屏传感器、地理定位接收器、麦克风、扬声器、蓝牙外围设备和usb设备(诸如,键盘和鼠标)。
47.一些示例是一种或多种非暂态计算机可读介质,该介质被布置为存储用于本文中描述的方法的这样的指令。拥有包括任何必要代码的非暂态计算机可读介质的任何机器都可以实现示例。一些示例可以实现为诸如半导体芯片的物理设备;这样的设备的逻辑或功能行为的硬件描述语言表示;以及被布置为存储这样的硬件描述语言表示的一种或多种非暂态计算机可读介质。本文中引用原理、方面和实施例的描述包括其结构和功能等效物两者。本文中描述为耦合的元素具有可以通过直接连接或间接地使用一个或多个其他中间元素实现的有效关系。
48.本领域技术人员将认识到很多修改和变化。该修改和变化包括所公开的特征的任何相关组合。本文中引用原理、方面和实施例的描述包括其结构和功能等效物两者。本文中描述为“耦合”或“通信耦合”的元素具有可以通过直接连接或间接连接实现的有效关系,该直接连接或间接连接使用一个或多个其他中间元素。本文中描述为与另一设备、模块或元素“通信”或“在通信中”的实施例包括任何形式的通信或链接并且包括有效关系。例如,通信链路可以使用有线连接、无线协议、近场协议或rfid来建立。
49.就在具体实施方式和权利要求中使用的术语“包括”、“包含”、“具有”、“有”、“利用”或其变型而言,这样的术语旨在以与术语“包括”类似的方式是包括性的。
50.因此,本发明的范围不旨在限于本文中示出和描述的示例性实施例。相反,本发明的范围和精神由所附权利要求来具化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1