片上网络拓扑结构的确定方法、装置及芯片

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

阅读说明:本技术 片上网络拓扑结构的确定方法、装置及芯片 (Method and device for determining network-on-chip topological structure and chip ) 是由 王坚烽 于 2021-08-31 设计创作,主要内容包括:本公开提供了一种片上网络拓扑结构的确定方法、装置及芯片,其中,该方法包括:获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系;基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。(The disclosure provides a method, a device and a chip for determining a network-on-chip topological structure, wherein the method comprises the following steps: acquiring first connection relations of a plurality of on-chip components of an on-chip system and attribute information of the plurality of on-chip components; simplifying the first connection relation based on the attribute information of the on-chip components to obtain second connection relations corresponding to the on-chip components; and adding a routing component for connecting the plurality of on-chip components in the system on chip based on the second connection relation to obtain the topological structures corresponding to the plurality of on-chip components.)

片上网络拓扑结构的确定方法、装置及芯片

技术领域

本公开涉及片上网络技术领域,具体而言,涉及一种片上网络拓扑结构的确定方法、装置及芯片。

背景技术

随着片上系统(System on Chip,SoC)对低互连延迟、高吞吐率和扩展性的需求不断提高,基于总线的互连方式很难满足现在SoC的性能需求,而基于信息交换的片上网络(Network on Chip,NoC)已逐渐成为SoC中不同组件间通信的互连架构。

相关技术中,在构建片上网络拓扑结构时,需要设计人员根据连接关系手动构建,而随着网络拓扑结构越来越复杂,人工构建网络拓扑效率低下的问题也愈发明显。

发明内容

本公开实施例至少提供一种片上网络拓扑结构的确定方法、装置及芯片。

第一方面,本公开实施例提供了一种片上网络拓扑结构的确定方法,包括:

获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;

基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系;

基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

这样,通过对第一连接关系进行简化处理,使得在确定片上网络拓扑结构时的效率更高;基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构,通过这种方法,可以自动生成拓扑结构,从而有效的解决了人工构建网络拓扑效率低下的问题。

一种可能的实施方式中,所述片上组件的属性信息包括该片上组件的带宽需求,和/或,该片上组件所能访问的地址空间范围;

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,所述基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系,包括:

对所述片上组件所能访问的地址空间范围符合第一预设条件的片上组件进行聚类,得到第一聚类结果;

基于所述第一聚类结果,确定所述多个片上组件对应的第二连接关系。

这样,可以根据地址空间这一维度对连接关系进行聚类,从而使得后续在拓扑结构构建时的速度更快。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,所述基于所述第一聚类结果,确定所述多个片上组件对应的第二连接关系,包括:

对所述第一聚类结果中,带宽需求符合第二预设条件的片上组件进行聚类,得到第二聚类结果;

基于所述第二聚类结果,确定所述多个片上组件对应的第二连接关系。

这样,通过在其他维度对第一聚类结果再次进行聚类,可以使得聚类之后的多个片上组件在多个维度上都是相似的,从而使得聚类效果更好。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,所述基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系,包括:

对带宽需求符合第二预设条件的片上组件进行聚类,得到第三聚类结果;

基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,所述基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系,包括:

对所述第三聚类结果中,所能访问的地址空间范围符合第一预设条件的片上组件进行聚类,得到第四聚类结果;

基于所述第四聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,所述基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,包括:

获取所述路由组件的属性信息;所述属性信息包括所述路由组件的最大输入数量和最大输出数量,其中,所述最大输入数量和所述最大输出数量用于表示,所述路由组件连接的片上组件的数量;

基于所述路由组件的属性信息和所述第二连接关系确定所述路由组件的类型,以及所述路由组件的部署位置;

按照所述路由组件的类型和所述路由组件的部署位置,在所述片上系统中添加路由组件。

一种可能的实施方式中,所述方法还包括:

针对所述拓扑结构中的任一路由组件,确定该任一路由组件与数据端构成的候选数据链路;其中,所述数据端为进行数据发送的片上组件或进行数据接收的片上组件;

确定候选数据链路完全相同的第一目标路由组件;

基于所述第一目标路由组件连接的输入输出数量,对所述第一目标路由组件进行整合;

基于整合后的第一目标路由组件,调整所述拓扑结构。

这样,通过对第一路由组件进行整合,可以减少路由组件的使用,提高路由组件的使用效率。

一种可能的实施方式中,所述方法还包括:

基于路由组件的初始时钟频率和所述片上组件的带宽需求,确定所述路由组件的输入位宽和输出位宽;

基于所述路由组件的输入位宽和输出位宽,为所述拓扑结构中各路由组件分配时钟域。

这样,基于路由组件的输入位宽和输出位宽为路由组件分配时钟域,可以使得分配的时钟域跨时钟域最少,进而减低跨时钟域所带来的损耗。

一种可能的实施方式中,所述基于路由组件的初始时钟频率和所述片上组件的带宽需求,确定所述路由组件的输入位宽和输出位宽,包括:

基于所述片上组件的带宽需求和所述片上组件对应的时钟域,确定所述片上组件的输出位宽;以及,确定与所述片上组件直接连接的第二目标路由组件;

基于与各第二目标路由组件连接的第一片上组件的带宽需求,确定各第二目标路由组件的输入位宽;以及,基于所述初始时钟频率和所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输出位宽;

基于各第二目标路由组件的输出位宽以及所述拓扑结构,确定所述拓扑结构中除所述第二目标路由组件外的其他路由组件的输入位宽和输出位宽。

一种可能的实施方式中,所述基于所述初始时钟频率和所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输出位宽,包括:

基于所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输入带宽;

基于所述初始时钟频率和所述各第二目标路由组件的输入带宽,确定所述各第二目标路由组件的输出位宽。

一种可能的实施方式中,所述基于所述路由组件的输入位宽和输出位宽,为所述拓扑结构中各路由组件分配时钟域,包括:

基于所述拓扑结构和所述路由组件的输入位宽、输出位宽,为所述拓扑结构中各路由组件分配时钟域,其中,为各路由组件分配的时钟域跨时钟域的位宽之和最小。

这样,为各路由组件分配的时钟域跨时钟域的位宽之和最小,从而使得数据传输在跨时钟域时需要的硬件资源最小。

一种可能的实施方式中,所述基于所述拓扑结构和所述路由组件的输入位宽、输出位宽,为所述拓扑结构中各路由组件分配时钟域,包括:

基于所述拓扑结构,确定至少一种待筛选的分配组合,不同的分配组合用于为所述路由组件分配不同的时钟域;

基于所述路由组件的输入位宽和输出位宽,确定各分配组合下跨时钟域的位宽之和,并将位宽之和最小的分配组合确定为为所述拓扑结构中各路由组件分配的时钟域。

一种可能的实施方式中,所述基于所述拓扑结构,确定至少一种待筛选的分配组合,包括:

基于所述拓扑结构,对所述片上组件和路由组件进行聚合处理;

基于所述片上组件和路由组件的聚合结果,确定至少一种待筛选的分配组合。

这样,通过对所述片上组件和路由组件进行聚合处理,使得产生的待筛选的分配组合数量更少,从而可以提高时钟域的分配效率。

一种可能的实施方式中,在为所述拓扑结构中各路由组件分配时钟域之后,所述方法还包括:

基于为所述路由组件分配的时钟域对应的目标时钟频率和所述片上组件的带宽需求,重新确定所述路由组件的输入位宽和输出位宽;

基于所述拓扑结构和重新确定的所述路由组件的输入位宽、输出位宽,重新确定多种待筛选的分配组合,并确定各分配组合下跨时钟域的位宽之和;

确定重新确定的多种待筛选的分配组合中,位宽之和最小的目标分配组合,并在所述目标分配组合与已分配的时钟域不同的情况下,基于所述目标分配组合,返回执行重新确定所述路由组件的输入位宽和输出位宽的步骤。

这样,通过对时钟域的分配结果进行验证,并在验证不通过的情况下,重新执行时钟域的分配过程,从而可以最终确定的跨时钟域位宽之和最小。

一种可能的实施方式中,所述方法还包括:

在返回执行的次数超过预设次数的情况下,停止执行循环过程,并发送第一报警信息。

这样,可以在拓扑结构不合理的情况下,提醒设计人员对拓扑结构进行调整。

一种可能的实施方式中,在基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构之后,所述方法还包括:

基于各片上组件的带宽需求,对所述路由组件的输入带宽和输出带宽进行验证,并在验证不通过的情况下,发送第二报警信息。

这样,通过对拓扑结构中各路由组件的输入带宽和输出带宽进行验证,可以在拓扑结构对应的数据带宽不合理的情况下,提醒设计人员对带宽进行调整。

一种可能的实施方式中,所述方法还包括:

响应目标器件添加操作指令,在所述拓扑结构中添加目标器件;其中,所述目标器件包括先入先出存储单元和/或网络速率适配器。

这样,可以响应设计人员对拓扑结构的调整,从而使得拓扑结构的数据传输性能更好。

第二方面,本公开实施例还提供一种片上网络拓扑结构的确定装置,包括:

获取模块,用于获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;

简化模块,用于基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系;

添加模块,用于基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

第三方面,本公开实施例还提供一种芯片,包括:片上组件和路由组件;

其中,所述路由组件和片上组件之间的网络拓扑结构,为基于上述第一方面,或第一方面中任一种可能的实施方式所述的片上网络拓扑结构的确定方法确定的。

第四方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

关于上述片上网络拓扑结构的确定装置、芯片、计算机设备及存储介质的效果描述参见上述片上网络拓扑结构的确定方法的说明,这里不再赘述。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种片上网络拓扑结构的确定方法的流程图;

图2示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,一种得到第二连接关系的具体方法的流程图;

图3示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,另一种得到第二连接关系的具体方法的流程图;

图4示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,添加路由组件的具体方法的流程图;

图5a示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,拆分算法的示意图;

图5b示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,一种路由组件的级联关系的示意图;

图5c示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,另一种路由组件的级联关系的示意图;

图5d示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,另一种路由组件的级联关系的示意图;

图6示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,对所述拓扑结构进行调整的具体方法的流程图;

图7a示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,调整前的拓扑结构示意图;

图7b示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,调整后的拓扑结构示意图;

图8示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,一种为拓扑结构中各路由组件分配时钟域的具体方法的流程图;

图9示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,确定路由组件的输入位宽和输出位宽的具体方法的流程图;

图10示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,另一种为拓扑结构中各路由组件分配时钟域的具体方法的流程图;

图11a~图11d示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,为各路由组件分配时钟域的示意图;

图12示出了本公开实施例所提供的片上网络拓扑结构的确定方法中,对时钟域的分配结果进行验证的具体方法的流程图;

图13示出了本公开实施例所提供的一种片上网络拓扑结构的确定装置的架构示意图;

图14示出了本公开实施例所提供的一种计算机设备的结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

经研究发现,在构建片上网络拓扑结构时,需要设计人员根据连接关系手动构建,而随着网络拓扑结构越来越复杂,人工构建网络拓扑效率低下的问题也愈发明显。

基于上述研究,本公开提供了一种片上网络拓扑结构的确定方法、装置及芯片,获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系,这样,通过对第一连接关系进行简化处理,使得在确定片上网络拓扑结构时的效率更高;基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构,通过这种方法,可以自动生成拓扑结构,从而有效的解决了人工构建网络拓扑效率低下的问题。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种片上网络拓扑结构的确定方法进行详细介绍,本公开实施例所提供的片上网络拓扑结构的确定方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该片上网络拓扑结构的确定方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

参见图1所示,为本公开实施例提供的片上网络拓扑结构的确定方法的流程图,所述方法包括步骤S101~S103,其中:

S101:获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息。

S102:基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系。

S103:基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

以下是对上述步骤的详细介绍。

针对S101,所述片上组件表示片上系统中的组件,其可以是预先设计好的电路功能模块(即IP核),IP核中包含可用于片上网络通信的网络接口,从而能够通过IP核的网络接口调用相应的IP核,以实现相应的功能;所述第一连接关系表示在片上系统中,各个片上组件之间的连接关系。

具体的,所述片上组件的属性信息包括片上组件的带宽需求和片上组件所能访问的地址空间范围;其中,

所述带宽需求表示片上组件正常工作所需要使用的最小数据传输带宽,以所述片上组件为IP核为例,所述IP核的带宽需求表示实现对应的电路功能所需要的最小带宽,比如,某IP核的电路功能为处理100个任务,则该IP核对应的带宽需求为传输100个任务所需的最小带宽;

所述存储空间地址范围表示片上组件所能访问的地址空间的范围(比如片上组件所能访问的片外存储组件的地址空间的范围),其由基址和偏移范围组成,其中,所述偏移范围用来表示偏移量的范围。在基址的基础上加上偏移范围内的最大偏移量,可以得到片上组件所能访问的最大访问地址,在基址的基础上加上偏移范围内的最小偏移量,可以得到片上组件所能访问的最小访问地址;在基址的基础上加上偏移范围内的最大偏移量,可以得到片上组件所能访问的最大访问地址,最小访问地址与最大访问地址之间的地址空间范围,即为该片上组件所能访问的地址空间范围,比如,某IP核的基址为X,偏移范围为Y~Z(Y<Z),则最小访问地址为X+Y,最大访问地址为X+Z,该IP核所能访问的地址空间范围为X+Y~X+Z。

S102:基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,如图2所示,可以通过以下步骤得到所述多个片上组件对应的第二连接关系:

S201:对所述片上组件所能访问的地址空间范围符合第一预设条件的片上组件进行聚类,得到第一聚类结果。

S202:基于所述第一聚类结果,确定所述多个片上组件对应的第二连接关系。

这里,在根据所能访问的地址空间进行聚类时,可以将地址空间相近或相同的片上组件进行聚类,所述地址空间相近是指两个地址空间具有重合的部分地址空间。

示例性的,以IP核1对应的地址空间为A~C,IP核2对应的地址空间为B~D,A<B<C<D为例,IP核1和IP核2对应的地址空间存在重合部分B~C,可以将IP核1和IP核2进行聚类,聚类之后的IP核对应的地址空间为A~D。

进一步的,在对所述片上组件进行聚类之后,可以根据聚类之后的片上组件确定简化的连接关系。

示例性的,IP核A1和IP核A2分别与IP核B连接,IP核A1和IP核A2聚类后为IP核A,则直接通过IP核A与IP核B的连接关系,即可用于实现聚类前的连接效果,从而达到了简化连接关系的效果。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,如图3所示,还可以根据以下步骤确定所述第二连接关系:

S2021:对所述第一聚类结果中,带宽需求符合第二预设条件的片上组件进行聚类,得到第二聚类结果。

S2022:基于所述第二聚类结果,确定所述多个片上组件对应的第二连接关系。

这里,在根据所述带宽需求进行聚类时,可以将带宽需求相似的片上组件进行聚类,所述带宽需求相似的判断条件包括:两个片上组件带宽需求之差的绝对值小于第一预设值,和带宽需求较大值除以带宽需求较小值之商小于第二预设值中的至少一种。

示例性的,以基于地址空间范围进行聚类后得到的第一聚类结果中,IP核A1、IP核A2、IP核A3的带宽需求依次为1Mbps、5Mbps、6Mbps为例,由于IP核A2、IP核A3的带宽需求之差的绝对值小于第一预设值N,则可以确定IP核A2、IP核A3的带宽需求相似,因此可以将IP核A2和IP核A3聚类,而IP核A1则不进行聚类。

这样,通过在其他维度对第一聚类结果再次进行聚类,可以使得聚类之后的多个片上组件在多个维度上都是相似的,从而使得聚类效果更好。

需要说明的是,在所述片上组件的属性信息包括,该片上组件的带宽需求和其所能访问的地址空间范围的情况下,除了可以先根据地址空间范围进行聚类,然后在聚类结果的基础上再根据带宽需求进行聚类;还可以先根据带宽需求进行聚类,然后在聚类结果的基础上再根据地址空间范围进行聚类,也即聚类的先后顺序对聚类结果不产生影响。

具体的,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,在基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系时,可以先对带宽需求符合所述第二预设条件的片上组件进行聚类,得到第三聚类结果;基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,在基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系时,可以对所述第三聚类结果中,所能访问的地址空间范围符合所述第一预设条件的片上组件进行聚类,得到第四聚类结果;基于所述第四聚类结果,确定所述多个片上组件对应的第二连接关系。

S103:基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

这里,所述路由组件表示为所述片上组件提供网络路由服务所需使用的组件,可以是数据选择器multiplexer,或路由器router。

其中,所述数据选择器有多个输入端和一个输出端,在使用时可以从多个输入端中选择一个输入端与输出端进行数据传输,比如4输入1输出(简称4to1)数据选择器,可以从4个输入端中选择1个输入端与输出端进行数据传输。

所述路由器有一个输入端和多个输出端,在使用时可以从多个输出端中选择一个输出端与输入端进行数据传输,比如1输入4输出(简称1to4)路由器,可以从4个输出端中选择1个输出端与输入端进行数据传输。

一种可能的实施方式中,如图4所示,可以根据以下步骤添加路由组件:

S301:获取所述路由组件的属性信息;所述属性信息包括所述路由组件的最大输入数量和最大输出数量,其中,所述最大输入数量和所述最大输出数量用于表示,所述路由组件连接的片上组件和其他路由组件的数量。

这里,所述最大输入数量和最大输出数量可以是设计人员根据设计需求设定的,比如所述最大输入数量为5,表示数据选择器最多可以连接5个片上组件或其他路由组件。又比如所述最大输出数量为4,表示路由器最多可以连接4个片上组件或其他路由组件。

S302:基于所述路由组件的属性信息和所述第二连接关系确定所述路由组件的类型,以及所述路由组件的部署位置。

具体的,在确定所述路由组件的类型,以及所述路由组件的部署位置时,针对所述第二连接关系中的任一数据通路,基于该数据通路的输入端的片上组件的数量以及输出端的片上组件的数量,确定插入该数据通路的片上组件的类型和数量。

其中,所述任一数据通路为包含至少一条数据链路的数据传输通道,其可以包括多个数据链路,每个数据链路的输入端属于一个类簇(数据通路),输出端属于一个类簇(数据通路)。

这里,针对所述第二连接关系中的任一数据通路,基于该数据通路的输入端的片上组件的数量以及输出端的片上组件的数量,可以分为以下四种情况:

情况1、路由组件输入端所需要连接的片上组件的数量不超过最大输入数量,且路由组件输出端所需要连接的片上组件的数量也不超过最大输出数量。

此时,可以先确定路由组件的输入端数量为与输入端所需要连接的片上组件的数量,示例性的,若输入端所需要连接的片上组件数量为N,N为大于1小于M的值,M为最大输入数量,则可以确定路由组件为Nto1的数据选择器;部署位置为需要连接的片上组件的输出端,路由组件与片上组件的连接方式为路由组件的输入端直接与片上组件的输出端连接。

示例性的,以所述路由组件的最大输入数量为5为例,当某一路由组件输入端所需要连接的片上组件的数量为4时,可以确定该路由组件的类型为4to1的数据选择器。

进一步的,可以确定路由组件的输出端数量为与输出端所需要连接的片上组件的数量,部署位置为需要连接的片上组件的输入端,路由组件与片上组件的连接方式为路由组件的输出端直接与片上组件的输入端连接。

承接上例,以所述路由组件的最大输出数量为5为例,当某一路由组件输出端所需要连接的片上组件的数量为3时,可以确定该路由组件的类型为1to3的路由器,该数据通路上的路由组件为4to1的数据选择器(连接4个输入端的片上组件)和1to3的路由器(连接3个输出端的片上组件),所述4to1的数据选择器的输出端与所述1to3的路由器的输入端连接。

情况2、路由组件输入端所需要连接的片上组件的数量超过最大输入数量,但路由组件输出端所需要连接的片上组件的数量不超过最大输出数量。

这里,可以根据所述路由组件输入端所需要连接的片上组件的数量、所述最大输入数量以及预设的拆分算法,将此处原本需要连接的一个路由组件拆分成具有级联关系的多个路由组件。

具体的,所述拆分算法可以如图5a所示,图5a中,将所述路由组件输入端所需要连接的片上组件的数量记为K,所述最大输入数量记为N(一般的,N大于等于3),K大于N,所述拆分算法具体执行时包括以下步骤:

步骤1、判断K能否被N整除。

这里,可以首先从N开始判断,记K与N的商为M,余数为P,当判断K能被N整除(即P=0)时,执行步骤2a;当判断K不能被N整除时,执行步骤2b。

步骤2a、判断M是否大于N。

这里,若M小于等于N,执行步骤3;若M大于N,则将M作为K,迭代执行上述步骤1。

步骤2b、判断M+1是否大于N。

这里,若M+1小于等于N,执行步骤3;若M+1大于N,则将M+1作为K,迭代执行上述步骤1。

步骤3、根据上述步骤得到的商、除数以及对应的余数,确定拆分后得到的待筛选路由组合,其中,所述待筛选路由组合包括各路由组件的类型和数量。

这里,可以将第一次执行步骤1时的除数,确定为级联关系中第一层的第一类型的路由组件的输入端的连接数量(这里记为路由组件1的输入端数量);将第一次执行步骤1时的商,确定为所述级联关系中路由组件1的数量;将第一次执行步骤1时的余数,确定为所述级联关系中第一层的第二类型的路由组件的输入端的连接数量(这里记为路由组件2的输入端数量),其中,所述路由组件2的数量为1。

同理,可以将第二次执行步骤1时的除数,确定为级联关系中第二层的第一类型的路由组件的输入端的连接数量(这里记为路由组件3的输入端数量);将第二次执行步骤1时的商,确定为所述级联关系中路由组件3的数量;将第二次执行步骤1时的余数,确定为所述级联关系中第二层的第二类型的路由组件的输入端的连接数量(这里记为路由组件4的输入端数量),其中,所述路由组件4的数量为1。迭代执行上述步骤,直至确定出所述级联关系的除最后一层之外的各层路由组件的类型和数量,其中,若最后一次运算的余数不为0,则所述级联关系最后一层的路由组件的输入端的连接数量为最后一次运算时的商+1,该路由组件的数量为1;若最后一次运算的余数为0,则所述级联关系最后一层的路由组件的输入端的连接数量为最后一次运算时的商,该最后一层的路由组件的数量为1。

可见,最终得到的所述级联关系中路由组件的层数可以为执行步骤1的次数+1。

示例性的,以所述路由组件的最大输入数量为5为例,当某一路由组件输入端所需要连接的片上组件和其他路由组件的数量为32时,可以使用32÷5=6…2,判断6+1大于5,则使用7÷5=1…2,此时1+1小于5,运算结束。

此时,所述路由组件的级联关系可以如图5b所示,图5b中,将第一次运算时的除数5,确定为级联关系第一层中的第一类型的路由组件为5to1的数据选择器,将第一次运算时的商6,确定为第一类型的路由组件的数量为6,将第一次运算时的余数2,确定为第二类型的路由组件为2to1的数据选择器,所述第二类型的路由组件的数量为1,这样可以确定出级联关系中第一层的路由组件为6个5to1的数据选择器和1个2to1的输出数据选择器;根据上述方法判断第二次运算时的除数、商以及余数,可得在所述级联关系中第二层的路由组件为1个5to1的数据选择器和1个2to1的数据选择器,以及级联关系中最后一层(第三层)的路由组件为1个2to1的数据选择器。

步骤4、依次使用(N,2]区间内的正整数,更新上述步骤中的N,直至得到[N,2]区间内所有正整数分别对应的多个待筛选路由组合。

承接上例,仍以所述路由组件的最大输入数量为5为例,在根据上述计算得到N=5对应的待筛选路由组合后,可以使用4对N进行更新,代入N=4进行计算,使用32÷4=8,判断8大于4,则使用8÷4=2,此时2小于4,运算结束。

此时,所述路由组件的级联关系可以如图5c所示,图5c中,将第一次运算时的除数4,确定为级联关系第一层中的第一类型的路由组件为4to1的数据选择器,将第一次运算时的商8,确定为第一类型的路由组件的数量为8,这样可以确定出级联关系中第一层的路由组件为8个4to1的数据选择器;根据上述方法判断第二次运算时的除数、商以及余数,可得在所述级联关系中第二层的路由组件为2个4to1的数据选择器,以及级联关系中最后一层(第三层)的路由组件为1个2to1的数据选择器。

进一步的,根据上述步骤继续确定N=3和N=2分别对应的待筛选路由组合,从而可以得到N=5、4、3、2分别对应的4个待筛选路由组合。

步骤5、基于预设的筛选规则,从多个待筛选路由组合中确定目标路由组合。

这里,在从多个待筛选路由组合中确定目标路由组合时,可以基于待筛选路由组合对应的余数之和,和/或,商之和进行确定。

一种可能的实施方式中,针对每个N,可以确定各待筛选路由组合在多次执行步骤1的过程中得到余数和商,并可以确定对应的余数之和,以及商之和;确定所述多个待筛选路由组合中,对应的余数之和最小的待筛选路由组合为第一待筛选路由组合;确定所述第一待筛选路由组合中,对应的商之和最小的第一待筛选路由组合为所述目标路由组合。

具体的,运算过程中的余数表示在该层级联关系中,所使用的第二类型的路由组件的类型,为了确保不同输入端和输出端的公平性,余数越小越好(余数越小越公平,当余数为0时,表征在级联关系的第一层中没有第二类型的路由组件,由于均使用第一类型的路由组件,此时各输入端和输出端的公平性最高);运算过程中的商表征在级联关系中,使用的某一类型的路由组件的数量,商之和即表示整个待筛选路由组合的数量,商之和最小也即使用路由组件的数量最少。

承接上例,可以确定N=5时,运算过程中的商为6和1,余数为2和2;N=4时,运算过程中的商为8和2,余数为0;N=3时,运算过程中的商为10、3、1,余数为2、2、1;N=2时,运算过程中的商为16、8、4、2,余数为0。

由此可得,N=5时,商之和为7,余数之和为4;N=4时,商之和为10,余数之和为0;N=3时,商之和为14,余数之和为5;N=2时,商之和为30,余数之和为0。此时,可以根据余数之和最小,确定出N=4和N=2这两种第一待筛选路由组合,再根据商之和最小,确定N=4为所述目标路由组合。

进一步的,可以确定路由组件的输出端数量为与输出端所需要连接的片上组件的数量,部署位置为需要连接的片上组件的输入端,路由组件与片上组件的连接方式为路由组件的输出端直接与片上组件的输入端连接。

承接上例,以所述路由组件的最大输出数量为5为例,当某一路由组件输出端所需要连接的片上组件的数量为3时,可以确定该路由组件的类型为1to3的路由器,该数据通路上的路由组件为如图5c所示的具有级联关系的多个数据选择器和1to3的路由器(连接3个输出端的片上组件),图5c中的2to1的数据选择器的输出端与所述1to3的路由器的输入端连接。

情况3、路由组件输入端所需要连接的片上组件的数量不超过最大输入数量,路由组件输出端所需要连接的片上组件的数量超过最大输出数量。

这里,可以先确定路由组件的输入端数量为与输入端所需要连接的片上组件的数量,部署位置为需要连接的片上组件的输出端,路由组件与片上组件的连接方式为路由组件的输入端直接与片上组件的输出端连接。

然后,可以根据所述路由组件输出端所需要连接的片上组件的数量、所述最大输出数量以及预设的拆分算法,将此处原本需要连接的一个路由组件拆分成具有级联关系的多个路由组件,这里,可以将所述路由组件输出端所需要连接的片上组件的数量带入所述情况2中的K,所述最大输出数量带入所述情况2中的N(一般的,N大于等于3),K大于N,然后依次执行所述情况2中的步骤1~步骤5,即可得到拆分之后具有级联关系的多个路由组件的类型和连接方式。

示例性的,以所述路由组件的最大输出数量为5为例,当某一路由组件输出端所需要连接的片上组件和其他路由组件的数量为7时,可以使用7÷5=1…2,此时1+1小于5,运算结束,此时判断的顺序与上述情况2中的顺序相反,先从最后一次运算的商开始判断,直至判断到第一次运算时的商和余数,可以判断出级联关系中第一层为1个1to2的路由器,第二层为1个1to5的路由器和1个1to2的路由器。

情况4、路由组件输入端所需要连接的片上组件的数量超过最大输入数量,路由组件输出端所需要连接的片上组件的数量也超过最大输出数量。

这里,可以根据所述路由组件输入端所需要连接的片上组件的数量、所述最大输入数量以及预设的拆分算法,将此处原本需要连接的一个路由组件拆分成具有级联关系的多个路由组件。

然后,可以根据所述路由组件输出端所需要连接的片上组件的数量、所述最大输出数量以及预设的拆分算法,将此处原本需要连接的一个路由组件拆分成具有级联关系的多个路由组件,这里,所述拆分算法的相关内容参见情况2和情况3中的相关描述,针对输出端的运算过程可以参照情况2中的内容,针对输入端的运算过程可以参照情况3中的内容。

示例性的,以所述路由组件的最大输入数量和最大输出数量为5为例,当某一路由组件输入端所需要连接的片上组件和其他路由组件的数量为32,输出端所需要连接的片上组件和其他路由组件的数量为7时,所述路由组件的级联关系可以如图5d所示,图5d中,第一层为8个4to1的数据选择器,第二层为2个4to1的数据选择器,第三层为1个2to1的数据选择器,第四层为1to2的路由器,第五层为1个1to5的路由器和1个1to2的路由器,各层路由组件的确定过程可以参照情况2和情况3的示例,在此不再赘述。

S303:按照所述路由组件的类型和所述路由组件的部署位置,在所述片上系统中添加路由组件。

承接上步,在根据上述步骤得到所述路由组件的类型和部署位置之后,即可按照所述路由组件的类型和部署位置在片上系统中添加路由组件,从而得到所述多个片上组件对应的拓扑结构。

实际应用中,在得到所述多个片上组件对应的拓扑结构之后,可以对所述拓扑结构进行调整,以使得拓扑结构更符合实际需要,比如可以对所述拓扑结构进行简化以节约路由组件的使用数量,提高路由组件的使用效率;或者,也可以响应设计人员的目标器件添加操作指令,为所述拓扑结构添加目标器件,以提高网络拓扑结构的数据传输效率。

一种可能的实施方式中,在得到所述片上组件对应的拓扑结构之后,如图6所示,可以根据以下步骤对所述拓扑结构进行调整:

S401:针对所述拓扑结构中的任一路由组件,确定该任一路由组件与数据端构成的候选数据链路;其中,所述数据端为进行数据发送的片上组件或进行数据接收的片上组件。

示例性的,以所述拓扑结构为进行数据发送的片上组件为IP核A,路由组件为路由组件B,进行数据接收的片上组件为IP核C1、IP核C2为例,则该路由组件与数据端构成的候选数据链路即为A-B、B-C1、B-C2

S402:确定候选数据链路相同的第一目标路由组件。

这里,在确定第一目标路由组件时,可以将从相同的片上组件出发的数据链路(即位于输入端的数据端相同),或到达相同片上组件的数据链路(即位于输出端的数据端相同)中的路由组件,确定为所述第一目标路由组件;在一种实施方式中,所述对应的候选数据链路相同的第一目标路由组件可以理解为,与相同的片上组件进行连接的路由组件,或者通过相同的路由组件与相同的片上组件进行连接的路由组件。

示例性的,调整前的拓扑结构示意图可以如图7a所示,图7a中,数据发送端的IP核共有10个,数据接收端的IP核共有12个,通过10个1to2的路由器、10to8的交叉开关矩阵、10to4的交叉开关矩阵构成了数据通路,对于10to8的交叉开关矩阵和10to4的交叉开关矩阵而言,均通过10个相同的1to2的路由器分别与10个相同的IP核进行连接,因此10to8的交叉开关矩阵和10to4的交叉开关矩阵分别针对同一个片上组件的数据链路为相同的候选数据链路。

其中,所述交叉开关矩阵为基于所述数据选择器和路由器构成的,使得拓扑结构中连接关系更为简洁,比如10to8的交叉开关矩阵,其可以是由1个10to1的数据选择器和1个1to8的路由器组成,10to8的交叉开关矩阵和10to4的交叉开关矩阵一般为封装好的一个整体的组件,因此可以看作是一个路由组件。

S403:基于所述第一目标路由组件连接的输入输出数量,对所述第一目标路由组件进行整合。

实际应用中,为了减少拓扑结构中路由组件的数量,可以对所述第一目标路由组件进行整合。具体的,由于多个第一目标路由组件连接的候选数据链路完全相同,因此可以将多个第一目标路由组件进行合并,并通过调整拓扑结构的方式,以确保合并之后的第一目标路由组件仍然能保证合并之前数据端之间的连接关系不发生变化。

示例性的,若第一目标路由组件A和第一目标路由组件B对应的候选数据链路均为数据链路1,则可以将第一目标路由组件A和第一目标路由组件B进行合并,数据链路1可以直接与合并之后的路由组件进行连接,进而可以在能够保证数据端之间进行正常的数据传输的前提下,减少路由组件的数量。

具体的,根据所述第一目标路由组件的输入输出数量,对所述第一目标路由组件进行整合时,可以分为以下2种情况:

情况1、所述第一目标路由组件的输入数量相同,输出数量不同。

在这种情况下,所述第一目标路由组件的输入侧数据通路相同,输出侧数据通路不同;在对所述第一目标路由组件进行整合时,与上述S302中的情况2中步骤5的作用相似,为了确保不同输入端和输出端的公平性,需要确保在进行整合之后需要新增的路由组件的类型是相同的(也即能被整除,余数为0,此时公平性最高),因此需要确定一个能被整除的约数,而为了进一步的减少路由组件的使用,可以确定将所述约数确定为最大公约数,从而可以通过增大路由组件输入输出数量的方式,减少路由组件个数的使用,因此此时可以确定不同第一目标路由组件的输出数量的最大公约数和输出数量之和,并基于确定的最大公约数和输出数量之和,确定整合之后的第一目标路由组件。

具体的,所述输入数量即为整合之后的第一目标路由组件的输入数量,与所述第一目标路由组件的输入端连接的路由组件,由于第一目标路由组件的整合而需要被删除;所述最大公约数即为整合之后的第一目标路由组件的输出数量;所述输出数量之和与所述最大公约数的商,即为整合之后需要新增的第一目标路由组件的输出数量,最大公约数即为需要新增的第一目标路由组件的数量。

承接上例,如图7a所示,10to8的交叉开关矩阵和10to4的交叉开关矩阵即为输入数量相同,输出数量不同的第一目标路由组件,根据他们左侧的相同候选数据链路,以及输入数量可以确定在将10to8的交叉开关矩阵和10to4的交叉开关矩阵进行整合,整合之后的第一目标路由组件的输入数量为10;8和4的最大公约数为4则可以确定整合之后的第一目标路由组件的输出数量为4,即整合之后的第一目标路由组件包含10to4的交叉开关矩阵;10to8的交叉开关矩阵和10to4的交叉开关矩阵的输出数量之和为12,最大公约数为4,则输出数量之和与所述最大公约数的商为3,则可以确定整合之后需要新增的第一目标路由组件的输出数量3,需要新增的第一目标路由组件的数量为4,即需要添加4个1to3的路由器。

示例性的,以所述第一目标路由组件为10to7的交叉开关矩阵和10to4的交叉开关矩阵为例,在进行整合时,整合之后的第一目标路由组件的输入数量为10(如图7a-图7b,整合之后减少了10个1to2路由器),根据输出数量7和4,可以确定输出端数量之和为11,此时可以根据上述拆分算法,确定整合之后的第一目标路由组件的输出数量,比如可以确定出所述整合之后的第一目标路由组件的输出数量为4,需要新增的第一目标路由组件为3个1to3的路由器和1个1to2的路由器。

情况2、所述第一目标路由组件的输入数量不同,输出数量相同。

在这种情况下,所述第一目标路由组件的输入侧数据通路不同,输出侧数据通路相同;在对所述第一目标路由组件进行整合时,可以确定不同第一目标路由组件的输入数量的最大公约数和输入数量之和,并基于确定的最大公约数和输出数量之和,确定整合之后的第一目标路由组件。

具体的,所述输出数量即为整合之后的第一目标路由组件的输出数量,与所述第一目标路由组件的输出端连接的路由组件,由于第一目标路由组件的整合而需要被删除;所述最大公约数即为整合之后的第一目标路由组件的输入数量;所述输入数量之和与所述最大公约数的商,即为整合之后需要新增的第一目标路由组件的输入数量,最大公约数即为需要新增的第一目标路由组件的数量,相关示例参见情况1中的相关示例,在此不再赘述。

S404:基于整合后的第一目标路由组件,调整所述拓扑结构。

示例性的,调整后的拓扑结构示意图可以如图7b所示,图7b中,数据发送端的IP核共有10个,数据接收端的IP核共有12个,通过10输入4输出交叉开关矩阵和4个1输入3输出路由器构成了数据通路,与图7a相比,减少了路由组件的使用,提高了路由组件的使用效率。

实际应用中,在根据上述步骤得到拓扑结构之后,此时拓扑结构中的各路由组件对应的初始时钟频率,可能会造成数据传输时,经过两个不同时钟频率的硬件代价较大,因此可以为添加的各路由组件分配合适的时钟域,以减小数据通路在跨时钟域时的硬件代价。

一种可能的实施方式中,如图8所示,可以根据以下步骤为所述拓扑结构中各路由组件分配时钟域:

S501:基于路由组件的初始时钟频率和所述片上组件的带宽需求,确定所述路由组件的输入位宽和输出位宽。

这里,针对任一路由组件,该路由组件的初始时钟频率,可以是与该路由组件连接的任一片上组件的时钟域相同;位宽表示一定时钟周期内传输数据的位数,带宽表示一定时间内传输数据的数据量,所述带宽可以使用位宽与时钟频率的乘积表示。

一种可能的实施方式中,如图9所示,可以通过以下步骤确定所述路由组件的输入位宽和输出位宽:

S5011:基于所述片上组件的带宽需求和所述片上组件对应的时钟域,确定所述片上组件的输出位宽;以及,确定与所述片上组件直接连接的第二目标路由组件。

这里,可以使用所述片上组件的带宽需求,除以所述片上组件对应的时钟域中的时钟频率,得到的结果即为所述片上组件的输出位宽,其中,不同的片上组件对应的时钟频率可以不同,从而可以得到的片上组件的输出位宽也可以不同。

S5012:基于与各第二目标路由组件连接的第一片上组件的带宽需求,确定各第二目标路由组件的输入位宽;以及,基于所述初始时钟频率和所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输出位宽。

这里,第一片上组件的输出位宽,即为与所述第一片上组件连接的第二目标路由组件的输入位宽。

一种可能的实施方式中,在确定所述各第二目标路由组件的输出位宽时,可以基于所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输入带宽之后,基于所述初始时钟频率和所述各第二目标路由组件的输入带宽,确定所述各第二目标路由组件的输出位宽。

具体的,针对任一所述第二路由组件,该第二路由组件的输入带宽为,与该第二路由组件所连接的至少一个第一片上组件的带宽需求之和,在得到所述第二路组件的输入带宽之后,所述第二路由组件的输出带宽应大于等于所述输入带宽,因此所述第二路由组件的输出带宽最小为所述输入带宽;可以使用所述输入带宽除以所述第二路由组件对应的初始时钟频率,得到所述第二路由组件的输出位宽。

示例性的,以第二路由组件A连接的IP核A1和IP核A2的带宽需求分别为800Mbps和800Mbps,初始时钟频率为100MHZ为例,可以得到所述第二路由组件A的输入带宽为1600Mbps,根据公式带宽=位宽×频率÷8可得,所述第二路由组件的输出位宽为1600Mbps×8÷100MHZ=128bit(即128位)。

S5013:基于各第二目标路由组件的输出位宽以及所述拓扑结构,确定所述拓扑结构中除所述第二目标路由组件外的其他路由组件的输入位宽和输出位宽。

承接上步,针对任一数据链路,在得到该数据链路上的第二目标路由组件的输出位宽之后,可以从进行数据发送的数据端开始,直至进行数据接收数据端,依次确定该数据链路上的路由组件的输入位宽和输出位宽,其中,当前器件的输入位宽即为该数据通路上与该当前器件连接的上一器件的输出位宽,当前器件的输入位宽之和即为该数据通路上与该当前器件连接的所有上一器件的输出位宽之和。

S502:基于所述路由组件的输入位宽和输出位宽,为所述拓扑结构中各路由组件分配时钟域。

这里,可以基于所述拓扑结构和所述路由组件的输入位宽、输出位宽,为所述拓扑结构中各路由组件分配时钟域,其中,为各路由组件分配的时钟域时跨时钟域的位宽之和最小。

一种可能的实施方式中,如图10所示,可以通过以下步骤为所述拓扑结构中各路由组件分配时钟域:

S5021:基于所述拓扑结构,确定至少一种待筛选的分配组合,不同的分配组合用于为所述路由组件分配不同的时钟域。

一种可能的实施方式中,在为所述路由组件分配时钟域时,可以使用与路由组件具有连接关系的片上组件的时钟域进行分配。

示例性的,针对路由组件A所在的数据通路,输入端的IP核对应的时钟域为时钟域1,输出端的IP核对应的时钟域为时钟域2,则在为路由组件A分配时钟域时,可以使用时钟域1和时钟域2进行分配,以得到至少一种待筛选的分配组合。

进一步的,在得到可能为各路由组件分配的时钟域之后,根据可能为每个路由组件分配的时钟域,生成至少一个待筛选的分配组合。

另一种可能的实施方式中,在确定待筛选的分配组合时,还可以基于所述拓扑结构,对所述片上组件和路由组件进行聚合处理;基于所述片上组件和路由组件的聚合结果,确定至少一种待筛选的分配组合,具体内容将在下文进行详细描述,在此不再展开描述。

S5022:确定各分配组合下跨时钟域的位宽之和,并将位宽之和最小的分配组合确定为为所述拓扑结构中各路由组件分配的时钟域。

这里,可以根据各路由组件的输入位宽和输出位宽,计算各分配组合下跨时钟域的位宽之和,将跨时钟域的位宽之和最小的分配组合确定为目标分配组合。

示例性的,为各路由组件分配时钟域的示意图可以如图11a~图11d所示,其中:

图11a表示拓扑结构中分配时钟域前的数据通路的示意图,图11a中,NI表示IP核的网络接口,不同的阴影类型表示不同的时钟域,其中,NI0和NI1位于时钟域1,NI2位于时钟域2,NI3和NI4位于时钟域3,s0、s1、s2分别表示路由组件1、路由组件2、路由组件3,箭头方向表示数据的传输方向,数字则表示数据通络上传输的数据位宽;

图11b表示对片上组件进行聚合处理的示意图,图11b中,将同处于时钟域1的NI0和NI1进行了聚合处理,生成了NI0~1,聚合处理后的输出位宽为1024+512=1536;以及,将同处于时钟域3的NI3和NI4进行了聚合处理,生成了NI3~4,聚合处理后的输入位宽为512+512=1024;

进一步的,根据拓扑结构对应的连接关系可以确定出将路由组件与片上组件进行聚合处理的所有可能,根据聚合处理的结果即可确定出所述筛选的分配组合;

具体的,根据路由组件1的拓扑结构,可以在图11b的基础上将路由组件1和NI0~1再进行聚合处理,也即给路由组件1分配时钟域1;根据路由组件2和路由组件3的拓扑结构,可以在图11b的基础上将路由组件2、路由组件3和NI3~4再进行聚合处理,也即给路由组件2和路由组件3分配时钟域3;

示例性的,对路由组件和片上组件进行聚合处理的示意图可以如图11c所示,图11c中,将路由组件1和NI0~1进行聚合处理得到了NI0~1,s0;将路由组件2和路由组件和NI3~4进行聚合处理得到了s1,s2,NI3~4;

进一步的,根据拓扑结构中路由组件1、路由组件2、路由组件3与其他组件的连接关系,可以得到聚类处理后对应的4种待筛选的分配组合,分别为,(1)依次为路由组件1、路由组件2、路由组件3分配时钟域1、时钟域3、时钟域3;(2)依次为路由组件1、路由组件2、路由组件3分配时钟域1、时钟域2、时钟域3;(3)依次为路由组件1、路由组件2、路由组件3分配时钟域1、时钟域2、时钟域2;(4)依次为路由组件1、路由组件2、路由组件3分配时钟域1、时钟域2、时钟域1。依次确定各待筛选的分配组合对应的跨时钟域位宽之后,可以得到跨时钟域之和最小的目标分配组合为分配组合(1);

图11d表示拓扑结构中分配时钟域后的数据通路的示意图,图11d中,依次为路由组件1、路由组件2、路由组件3分配时钟域1、时钟域3、时钟域3,跨时钟域带宽之和为512+128=640,在所有待筛选的分配组合中最小。

实际应用中,在根据上述步骤得到为每个添加的路由组件分配的时钟域之后,由于此前确定的路由组件的输入位宽和输出位宽,是基于路由组件对应的初始时钟频率确定的,而当确定新的时钟频率之后,路由组件的输入位宽和输出位宽也可能相应的发生变化,想要确定位宽变化之后的跨时钟域的位宽之和最小,则需要对分配结果进行验证。

一种可能的实施方式中,在为所述拓扑结构中各路由组件分配时钟域之后,如图12所示,可以通过以下步骤对所述时钟域的分配结果进行验证:

S601:基于为所述路由组件分配的时钟域对应的目标时钟频率和所述片上组件的带宽需求,重新确定所述路由组件的输入位宽和输出位宽。

S602:基于所述拓扑结构和重新确定的所述路由组件的输入位宽、输出位宽,重新确定多种待筛选的分配组合,并确定各分配组合下跨时钟域的位宽之和。

S603:确定重新确定的多种待筛选的分配组合中,位宽之和最小的目标分配组合,并在所述目标分配组合与已分配的时钟域不同的情况下,基于所述目标分配组合,返回执行重新确定所述路由组件的输入位宽和输出位宽的步骤。

这里,确定所述路由组件的输入位宽和输出位宽的相关描述,以及确定多种待筛选的分配组合,并确定目标分配组合的相关描述,参照上文相关内容,在此不再赘述。

具体的,若目标分配组合与已分配的时钟域不同,可以循环执行确定路由组件的输入位宽和输出位宽,以及确定目标分配组合的步骤,直至目标分配组合与已分配的时钟域相同。

实际应用中,可能出现循环执行上述步骤多次,但目标分配组合与已分配的时钟域仍然不同的情况。

一种可能的实施方式中,在返回执行的次数超过预设次数的情况下,可以停止执行循环过程,并发送第一报警信息。

这里,可以通过第一报警信息提示设计人员当前的拓扑结构无法满足设计要求,需要对拓扑结构进行调整。

一种可能的实施方式中,在基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构之后,可以基于各片上组件的带宽需求,对所述路由组件的输入带宽和输出带宽进行验证,并在验证不通过的情况下,发送第二报警信息。

具体的,在对所述路由组件的输入带宽和输出带宽进行验证时,针对任一数据通路,可以确定最后一个路由组件的输出带宽是否能满足最后一个路由组件连接的片上组件的带宽需求,若最后一个路由组件的输出带宽小于最后一个路由组件连接的片上组件需求的最小带宽,表示此时的带宽分配不合理,此时需要发送第二报警信息,以提示设计人员分配的带宽不足,需要进行相应的调节。

一种可能的实施方式中,在得到所述多个片上组件对应的拓扑结构之后,还可以响应目标器件添加操作指令,在所述拓扑结构中添加目标器件;其中,所述目标器件包括先入先出存储单元和/或网络速率适配器。

这里,设计人员根据接收的报警信息,可以相应的目标对拓扑结构进行调节,以使得拓扑结构的数据传输性能更好。

示例性的,在接收到第二报警信息之后,设计人员可以通过目标器件添加操作指令,在所述拓扑结构中,添加先入先出存储单元和网络速率适配器,以减少网络阻塞和数据传输等待时间,实现对拓扑结构的优化。

本公开实施例提供的片上网络拓扑结构的确定方法,获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系,这样,通过对第一连接关系进行简化处理,使得在确定片上网络拓扑结构时的效率更高;基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构,通过这种方法,可以自动生成拓扑结构,从而有效的解决了人工构建网络拓扑效率低下的问题。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与片上网络拓扑结构的确定方法对应的片上网络拓扑结构的确定装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述片上网络拓扑结构的确定方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图13所示,为本公开实施例提供的一种片上网络拓扑结构的确定装置的架构示意图,所述装置包括:获取模块1301、简化模块1302、添加模块1303;其中,

获取模块1301,用于获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;

简化模块1302,用于基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系;

添加模块1303,用于基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

一种可能的实施方式中,所述片上组件的属性信息包括该片上组件的带宽需求,和/或,该片上组件所能访问的地址空间范围;

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,所述简化模块1302,在基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系时,用于:

对所述片上组件所能访问的地址空间范围符合第一预设条件的片上组件进行聚类,得到第一聚类结果;

基于所述第一聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,所述简化模块1302,在基于所述第一聚类结果,确定所述多个片上组件对应的第二连接关系时,用于:

对所述第一聚类结果中,带宽需求符合第二预设条件的片上组件进行聚类,得到第二聚类结果;

基于所述第二聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件的带宽需求的情况下,所述简化模块1302,在基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系时,用于:

对带宽需求符合第二预设条件的片上组件进行聚类,得到第三聚类结果;

基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,在所述片上组件的属性信息包括该片上组件所能访问的地址空间范围的情况下,所述简化模块1302,在基于所述第三聚类结果,确定所述多个片上组件对应的第二连接关系时,用于:

对所述第三聚类结果中,所能访问的地址空间范围符合第一预设条件的片上组件进行聚类,得到第四聚类结果;

基于所述第四聚类结果,确定所述多个片上组件对应的第二连接关系。

一种可能的实施方式中,所述添加模块1303,在基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件时,用于:

获取所述路由组件的属性信息;所述属性信息包括所述路由组件的最大输入数量和最大输出数量,其中,所述最大输入数量和所述最大输出数量用于表示,所述路由组件连接的片上组件的数量;

基于所述路由组件的属性信息和所述第二连接关系确定所述路由组件的类型,以及所述路由组件的部署位置;

按照所述路由组件的类型和所述路由组件的部署位置,在所述片上系统中添加路由组件。

一种可能的实施方式中,所述装置还包括调整模块1304,用于:

针对所述拓扑结构中的任一路由组件,确定该任一路由组件与数据端构成的候选数据链路;其中,所述数据端为进行数据发送的片上组件或进行数据接收的片上组件;

确定候选数据链路完全相同的第一目标路由组件;

基于所述第一目标路由组件连接的输入输出数量,对所述第一目标路由组件进行整合;

基于整合后的第一目标路由组件,调整所述拓扑结构。

一种可能的实施方式中,所述装置还包括分配模块1305,用于:

基于路由组件的初始时钟频率和所述片上组件的带宽需求,确定所述路由组件的输入位宽和输出位宽;

基于所述路由组件的输入位宽和输出位宽,为所述拓扑结构中各路由组件分配时钟域。

一种可能的实施方式中,所述分配模块1305,在基于路由组件的初始时钟频率和所述片上组件的带宽需求,确定所述路由组件的输入位宽和输出位宽时,用于:

基于所述片上组件的带宽需求和所述片上组件对应的时钟域,确定所述片上组件的输出位宽;以及,确定与所述片上组件直接连接的第二目标路由组件;

基于与各第二目标路由组件连接的第一片上组件的带宽需求,确定各第二目标路由组件的输入位宽;以及,基于所述初始时钟频率和所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输出位宽;

基于各第二目标路由组件的输出位宽以及所述拓扑结构,确定所述拓扑结构中除所述第二目标路由组件外的其他路由组件的输入位宽和输出位宽。

一种可能的实施方式中,所述分配模块1305,在基于所述初始时钟频率和所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输出位宽时,用于:

基于所述第一片上组件的带宽需求,确定所述各第二目标路由组件的输入带宽;

基于所述初始时钟频率和所述各第二目标路由组件的输入带宽,确定所述各第二目标路由组件的输出位宽。

一种可能的实施方式中,所述分配模块1305,在基于所述路由组件的输入位宽和输出位宽,为所述拓扑结构中各路由组件分配时钟域时,用于:

基于所述拓扑结构和所述路由组件的输入位宽、输出位宽,为所述拓扑结构中各路由组件分配时钟域,其中,为各路由组件分配的时钟域跨时钟域的位宽之和最小。

一种可能的实施方式中,所述分配模块1305,在基于所述拓扑结构和所述路由组件的输入位宽、输出位宽,为所述拓扑结构中各路由组件分配时钟域时,用于:

基于所述拓扑结构,确定至少一种待筛选的分配组合,不同的分配组合用于为所述路由组件分配不同的时钟域;

基于所述路由组件的输入位宽和输出位宽,确定各分配组合下跨时钟域的位宽之和,并将位宽之和最小的分配组合确定为为所述拓扑结构中各路由组件分配的时钟域。

一种可能的实施方式中,所述分配模块1305,在基于所述拓扑结构,确定至少一种待筛选的分配组合时,用于:

基于所述拓扑结构,对所述片上组件和路由组件进行聚合处理;

基于所述片上组件和路由组件的聚合结果,确定至少一种待筛选的分配组合。

一种可能的实施方式中,在为所述拓扑结构中各路由组件分配时钟域之后,所述分配模块1305还用于:

基于为所述路由组件分配的时钟域对应的目标时钟频率和所述片上组件的带宽需求,重新确定所述路由组件的输入位宽和输出位宽;

基于所述拓扑结构和重新确定的所述路由组件的输入位宽、输出位宽,重新确定多种待筛选的分配组合,并确定各分配组合下跨时钟域的位宽之和;

确定重新确定的多种待筛选的分配组合中,位宽之和最小的目标分配组合,并在所述目标分配组合与已分配的时钟域不同的情况下,基于所述目标分配组合,返回执行重新确定所述路由组件的输入位宽和输出位宽的步骤。

一种可能的实施方式中,所述分配模块1305还用于:

在返回执行的次数超过预设次数的情况下,停止执行循环过程,并发送第一报警信息。

一种可能的实施方式中,在基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构之后,所述分配模块1305还用于:

基于各片上组件的带宽需求,对所述路由组件的输入带宽和输出带宽进行验证,并在验证不通过的情况下,发送第二报警信息。

一种可能的实施方式中,所述添加模块1303还用于:

响应目标器件添加操作指令,在所述拓扑结构中添加目标器件;其中,所述目标器件包括先入先出存储单元和/或网络速率适配器。

本公开实施例提供的片上网络拓扑结构的确定装置,获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系,这样,通过对第一连接关系进行简化处理,使得在确定片上网络拓扑结构时的效率更高;基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构,通过这种方法,可以自动生成拓扑结构,从而有效的解决了人工构建网络拓扑效率低下的问题。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图14所示,为本公开实施例提供的计算机设备1400的结构示意图,包括处理器1401、存储器1402、和总线1403。其中,存储器1402用于存储执行指令,包括内存14021和外部存储器14022;这里的内存14021也称内存储器,用于暂时存放处理器1401中的运算数据,以及与硬盘等外部存储器14022交换的数据,处理器1401通过内存14021与外部存储器14022进行数据交换,当计算机设备1400运行时,处理器1401与存储器1402之间通过总线1403通信,使得处理器1401在执行以下指令:

获取片上系统的多个片上组件的第一连接关系和所述多个片上组件的属性信息;

基于所述多个片上组件的属性信息,对所述第一连接关系进行简化处理,得到所述多个片上组件对应的第二连接关系;

基于所述第二连接关系在所述片上系统中添加用于连接所述多个片上组件的路由组件,得到所述多个片上组件对应的拓扑结构。

本公开实施例还提供了一种芯片,包括:片上组件和路由组件;其中,所述路由组件和片上组件之间的网络拓扑结构,可以是基于本公开任一实施例中所述片上网络拓扑结构的确定方法确定的。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的片上网络拓扑结构的确定方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的片上网络拓扑结构的确定方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

39页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于基板管理控制器的海光芯片管理方法、装置、设备

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!