CN117931093B - 全局i/o分配方法、装置及电子设备 - Google Patents
全局i/o分配方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117931093B CN117931093B CN202410317132.0A CN202410317132A CN117931093B CN 117931093 B CN117931093 B CN 117931093B CN 202410317132 A CN202410317132 A CN 202410317132A CN 117931093 B CN117931093 B CN 117931093B
- Authority
- CN
- China
- Prior art keywords
- buffer
- edges
- edge
- connection
- points
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000000872 buffer Substances 0.000 claims abstract description 145
- 238000010586 diagram Methods 0.000 claims description 37
- 238000012163 sequencing technique Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 5
- 238000004804 winding Methods 0.000 abstract description 38
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- HODRFAVLXIFVTR-RKDXNWHRSA-N tevenel Chemical compound NS(=O)(=O)C1=CC=C([C@@H](O)[C@@H](CO)NC(=O)C(Cl)Cl)C=C1 HODRFAVLXIFVTR-RKDXNWHRSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供了一种全局I/O分配方法、装置及电子设备,基于芯片中的多个缓存器与多个焊盘建立网络有向图;缓存器为输入输出缓存器;基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系,以便进行缓存器分配。本申请能够全局优化I/O缓存器分配,最大程度提升最终绕线质量,且考虑绕线资源,提高绕线成功率,减少整体绕线长度和绕道。
Description
技术领域
本申请涉及半导体技术领域,尤其是涉及一种全局I/O分配方法、装置及电子设备。
背景技术
目前,针对区域I/O倒装芯片设计通常采用一种基于排序的I/O连接分配和非曼哈顿RDL(RedistributI/On Layer,重布线层)布线方法。该方法最初通过对Bump Ball之间的曼哈顿距离进行排序来将I/O Buffer分配给Bump Ball。然后执行三种配对交换以改进初始分配。接着为了缩短导线长度,采用非曼哈顿RDL布线来连接I/O Buffer和Bump Ball。但是,此方法在分配阶段没有考虑绕线资源。
发明内容
本申请的目的在于提供一种全局I/O分配方法、装置及电子设备,全局优化I/O缓存器分配,最大程度提升最终绕线质量,且考虑绕线资源,提高绕线成功率,减少整体绕线长度和绕道。
第一方面,本申请提供一种全局I/O分配方法,方法包括:基于芯片中的多个缓存器与多个焊盘建立网络有向图;缓存器为I/O输入输出缓存器;基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系,以便进行缓存器分配。
进一步地,上述基于芯片中的多个缓存器与多个焊盘建立网络有向图的步骤,包括:将缓存器和焊盘作为输入,网格化芯片平面区域,得到网格区域;按照以下建边规则在网格区域中构建有向边,得到网络有向图:建立从虚拟源点到每一个缓存器位置节点的有向边,容量为1;建立从每一个焊盘位置节点到虚拟汇点的有向边,容量为1;建立从每一个缓存器位置节点到其最近的几个格点的有向边,容量为第一预设容量;建立终点为焊盘位置节点,起点为其最近的几个格点的有向边,容量为第二预设容量;建立相邻格点之间的双向边,各边容量是第三预设容量;其中,所有边的权重为边的长度;虚拟源点为指向各缓存器的虚拟点;虚拟汇点为各焊盘指向的虚拟点;格点为网格区域中的横纵线相交点。
进一步地,上述基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系的步骤,包括:将第一个缓存器作为当前缓存器,执行以下遍历步骤:从当前缓存器位置节点出发,广度优先遍历所有有流量的边,记录所有遍历到的焊盘位置节点,判断焊盘位置节点是否已在连接组中;如果是,将当前缓存器位置节点加入至连接组中;如果否,为遍历到的焊盘位置节点和当前缓存器构建一个连接组;选择下一个缓存器作为当前缓存器,继续执行遍历步骤,直至遍历完所有缓存器;基于每个连接组确定缓存器与焊盘间的连接关系。
进一步地,上述对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系的步骤,包括:确定多对多的缓存器与焊盘通过格点的连接关系图;连接关系图中,包括多个缓存器分别指向格点的边、以及格点指向每个焊盘的边;其中,缓存器与焊盘的数量一致;在连接关系图中,确定第一边序列;第一边序列为多个边的顺时针序列或逆时针序列;对第一边序列进行两两相邻边的顺序遍历,在确定出两个相邻边的方向相反时,在两个相邻边之间作目标射线,并停止遍历;在目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点;基于目标射线,对各边进行排序,得到第二边序列;对第二边序列进行两两相邻边的顺序遍历,执行以下移点步骤:在确定出两个相邻边的方向相反时,将两个相邻边的连接点移动至距离最近的一个还未连接的目标连接点上;在第二边序列中将两个相邻边移除,再次对移除后的第二边序列进行两两相邻边的顺序遍历,执行移点步骤,直到遍历完所有边,得到缓存器与焊盘的一对一关系。
进一步地,上述在连接关系图中,确定第一边序列的步骤,包括:在连接关系图中,以格点为原点,以任意方向作第一射线;计算每条边与第一射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第一边序列;指定夹角包括:逆时针夹角或顺时针夹角。
进一步地,上述基于目标射线,对边进行排序,得到第二边序列的步骤,包括:计算每条边与目标射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第二边序列;指定夹角包括:逆时针夹角或顺时针夹角。
进一步地,上述在两个相邻边之间作目标射线的步骤,包括:在两个相邻边之间的中分线上作目标射线;在目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点的步骤,包括:在目标射线所在直线上,标记出以格点为中心的左右对称的与焊盘的数量相同数量的顺序排列的目标连接点。
第二方面,本申请还提供一种全局I/O分配装置,装置包括:图建立模块,用于基于缓存器与焊盘建立网络有向图;缓存器为输入输出缓存器;求解模块,用于基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;拆分模块,用于对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系。
第三方面,本申请还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面所述的方法。
第四方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述第一方面所述的方法。
本申请提供的一种全局I/O分配方法、装置及电子设备中,首先基于芯片中的多个缓存器与多个焊盘建立网络有向图;缓存器为I/O输入输出缓存器;然后基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;最后对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系,以便进行缓存器分配。本申请能够实现全局优化I/O缓存器分配,最大程度提升最终绕线质量,且考虑绕线资源,提高绕线成功率,减少整体绕线长度和绕道。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种全局I/O分配方法的流程图;
图2为本申请实施例提供的一种网格区域的示意图;
图3为本申请实施例提供的一种网络有向图的示意图;
图4为本申请实施例提供的一种模型求解的示意图;
图5为本申请实施例提供的一种二对二连接关系的示意图;
图6为本申请实施例提供的一种X轴的示意图;
图7为本申请实施例提供的一种第一排序过程示意图;
图8为本申请实施例提供的一种目标射线和第二排序过程示意图;
图9为本申请实施例提供的一种拆分点示意图;
图10为本申请实施例提供的一种拆分结果示意图;
图11为本申请实施例提供的一种全局I/O分配装置的结构框图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前的RDL技术中,尚没有通过解决绕线问题去全局优化I/O分配的方法。大多数工作是在解决绕线问题,或者直接根据距离优化I/O分配。但是,全局I/O分配是否合理,直接决定最终绕线质量。并且,目前尚没有技术在分配I/O的时候考虑绕线资源。绕线资源是否足够,对最终绕线质量有着很大的影响,比如:导致绕线失败、整体绕线长度过长、产生更多的detour绕道。
基于此,本申请实施例提供一种全局I/O分配方法、装置及电子设备,全局优化I/O分配,最大程度提升最终绕线质量,且考虑绕线资源,提高绕线成功率,减少整体绕线长度和绕道。为便于对本实施例进行理解,首先对本申请实施例所公开的一种全局I/O分配方法进行详细介绍。
图1为本申请实施例提供的一种全局I/O分配方法流程图,该方法包括以下步骤:
步骤S102,基于芯片中的多个缓存器与多个焊盘建立网络有向图;缓存器为I/O输入输出缓存器,即I/O Buffer;焊盘为金属凸点球,即Bump Ball;
上述网络有向图为对多个缓存器与多个焊盘组成的区域进行分格处理后,以格点、虚拟源点、虚拟汇点、缓存器位置节点和焊盘位置节点为连接点,通过带箭头的边进行有序连接后得到的。
步骤S104,基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;
最小费用最大流模型是一个数学模型,通过有向边组成的网络有向图,可以进行求解得到最优解,即得到缓存器与焊盘之间的连接关系,该连接关系中可以包括I/OBuffer和Bump Ball之间一对一的连接关系,也可能包括I/O Buffer和Bump Ball之间多对多的连接关系。
步骤S106,对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系,以便进行缓存器分配。
对有流量边连接的I/O Buffer和Bump Ball,在保证没有交叉的前提下拆分流量边,并将I/O Buffer和Bump Ball一一配对。
本申请实施例提供的全局I/O分配方法,是一种基于最小费用最大流绕线的全局I/O缓存器分配策略。首先,基于网络流绕线,可实现全局I/O缓存器分配,避免对距离的单一依赖,最大程度提升最终绕线质量。其次,在分配I/O缓存器时,会考虑绕线资源,避免拥堵和detour绕道。
本申请实施例还提供另一种全局I/O分配方法,该方法在上述实施例的基础上实现;本实施例重点描述有向图建立过程以及多对多关系拆分过程。
上述基于芯片中的多个缓存器与焊盘建立网络有向图的过程如下:
(1)将缓存器和焊盘作为输入,网格化芯片平面区域,得到网格区域,如图2所示。
(2)按照以下建边规则在网格区域中构建有向边,得到网络有向图,如图3所示:
有向图的节点有以下5种:I/O Buffer位置节点、Bump Ball位置节点、格点、虚拟源点和虚拟汇点;虚拟源点为指向各缓存器的虚拟点;虚拟汇点为各焊盘指向的虚拟点;格点为网格区域中的横纵线相交点。
规则1:建立从虚拟源点到每一个缓存器位置节点的有向边,容量为1;
规则2:建立从每一个焊盘位置节点到虚拟汇点的有向边,容量为1;
规则3:建立从每一个缓存器位置节点到其最近的几个格点的有向边,容量为第一预设容量;
规则4:建立终点为焊盘位置节点,起点为其最近的几个格点的有向边,容量为第二预设容量;
规则5:建立相邻格点之间的双向边,各边容量是第三预设容量;
其中,所有边的权重为边的长度。
需要说明的是,第一预设容量、第二预设容量和第三预设容量均为经验预设值,均为大于1的整数。
进一步地,上述基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系的步骤,包括:
将第一个缓存器作为当前缓存器,执行以下遍历步骤:从当前缓存器位置节点出发,广度优先遍历所有有流量的边,记录所有遍历到的焊盘位置节点,判断焊盘位置节点是否已在连接组中;如果是,将当前缓存器位置节点加入至连接组中;如果否,为遍历到的焊盘位置节点和当前缓存器构建一个连接组;选择下一个缓存器作为当前缓存器,继续执行遍历步骤,直至遍历完所有缓存器;基于每个连接组确定缓存器与焊盘间的连接关系。
需要说明的是,上述边的流量指的是经过该边的路径数量,流量是小于等于边的容量的。
如图4所示,根据其中有流量的边,找出有连接的I/O Buffer和Bump Ball。具体步骤包括:
a. 从第i个I/O Buffer位置节点出发,广度优先遍历所有有流量的边,记录所有遍历到的Bump Ball位置节点为ConnectBumpSeti;
b. 记第i个I/O Buffer位置节点的连接组为ConnectGroupi。遍历当前所有连接组,如果有连接组包含ConnectBumpSeti中的Bump Ball位置节点,那么将此连接组作为ConnectGroupi;否则,创建一个空的连接组,作为ConnectGroupi。将ConnectBumpSeti中的Bump Ball位置节点和第i个I/O Buffer位置节点加入到ConnectGroupi。
c. 重复以上过程,直至遍历所有的I/O Buffer位置节点。
比如,从 I/O1出发,遍历得到 {bump1, bump2}。当前没有连接组,创建连接组ConnectGroup1= { I/O1, bump1, bump2}。然后从 I/O2出发,遍历得到 {bump1, bump2}。因为 ConnectGroup1包含 bump1和 bump2,所以将 I/O2 加入 ConnectGroup1,得到ConnectGroup1= { I/O1, bump1, bump2, I/O2}。然后从 I/O3出发,遍历得到 {bump3}。因为没有连接组包含 bump3,创建连接组 ConnectGroup2= {I/O3, bump3}。以此类推,直至遍历所有输入输出缓存器。
通过上述算法,可以将有流量边连接的I/O Buffer和Bump Ball分为一组,并保证每组中I/O Buffer个数和Bump Ball个数一致。对于第i组,比如,有I/O Buffer集合{io1,io2, io3, ..., ion},有Bump Ball集合{bump1, bump2, bump3, ..., bumpn}。然后可以配对I/O Buffer集合和Bump Ball集合中的每一个元素,得到分配结果{(ioi, bumpj)...}。具体的实现过程如下:
即上述对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系的步骤,包括:
(1)确定多对多的缓存器与焊盘通过格点的连接关系图;连接关系图中,包括多个缓存器分别指向格点的边、以及格点指向每个焊盘的边;其中,缓存器与焊盘的数量一致;
假设多对多的缓存器与焊盘包括:两对I/O Buffer和Bump Ball,分别为:io1,io2, bump1, bump2。连接关系如图5所示。有向边分别包括:i1、i2、b1、b2。i1、i2流量方向为入,b1、b2的流量方向为出。每条边的流量是1。
(2)在连接关系图中,确定第一边序列;第一边序列为多个边的顺时针序列或逆时针序列;具体的,在连接关系图中,以格点为原点,以任意方向作第一射线;计算每条边与第一射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第一边序列;指定夹角包括:逆时针夹角或顺时针夹角。
参见图6所示,定义x轴为:以交叉点为原点,水平向右为方向。参见图7所示,将i1、i2反向,计算4条边与x轴的逆时针夹角,范围是[0, 2)。根据夹角由小到大排序,得到序列{b2、b1、i1、i2}。
(3)对第一边序列进行两两相邻边的顺序遍历,在确定出两个相邻边的方向相反时,在两个相邻边之间作目标射线,并停止遍历;
遍历上述序列{b2、b1、i1、i2},如果当前边和下一个边的流量方向发生变化时,取这两条边的中间边为方向向量,即在两个相邻边之间的中分线上作目标射线,如图8所示。
(4)在目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点;比如,在目标射线所在直线上,标记出以格点为中心的左右对称的与焊盘的数量相同数量的顺序排列的目标连接点。参见图9所示,在方向向量起点附近,与方向向量共线,顺序取2个拆分点,得到点序列{v1、v2}。
(5)基于目标射线,对各边进行排序,得到第二边序列;具体的,计算每条边与目标射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第二边序列;指定夹角包括:逆时针夹角或顺时针夹角。
比如,计算每条边与方向向量的逆时针夹角,由小到大重新排序,得到序列{i1、i2、b2、b1}。
(6)对第二边序列进行两两相邻边的顺序遍历,执行以下移点步骤:在确定出两个相邻边的方向相反时,将两个相邻边的连接点移动至距离最近的一个还未连接的目标连接点上;在第二边序列中将两个相邻边移除,再次对移除后的第二边序列进行两两相邻边的顺序遍历,执行移点步骤,直到遍历完所有边,得到缓存器与焊盘的一对一关系。
遍历{i1、i2、b2、b1},如果当前边与下一个边的流量方向发生变化,则将这两条边的起点移到第一个拆分点上,并将两边与拆分点从对应序列中移出,继续遍历,直至序列没有元素。第一次时,i2、b2移点到v1上;第二次时,b1、i1移点至v2上。最终得到如图10所示的连接图,io1、bump1有边连接,配对为{ io1、bump1};io2、bump2有边连接,配对为{ io2、bump2}。
本申请实施例提出了一种基于最小费用最大流绕线的全局I/O分配策略。首先,基于网络流绕线,可实现全局I/O分配,避免对距离的单一依赖,最大程度提升最终绕线质量。其次,在分配I/O时,会考虑绕线资源,避免拥堵和绕道,提高绕线成功率。
基于上述方法实施例,本申请实施例还提供一种全局I/O分配装置,参见图11所示,该装置包括:图建立模块132,用于基于缓存器与焊盘建立网络有向图;缓存器为I/O输入输出缓存器;求解模块134,用于基于网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;拆分模块136,用于对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系。
进一步地,上述图建立模块132,用于将缓存器和焊盘作为输入,网格化整块区域,得到网格区域;按照以下建边规则在网格区域中构建有向边,得到网络有向图:建立从虚拟源点到每一个缓存器位置节点的有向边,容量为1;建立从每一个焊盘位置节点到虚拟汇点的有向边,容量为1;建立从每一个缓存器位置节点到其最近的几个格点的有向边,容量为第一预设容量;建立终点为焊盘位置节点,起点为其最近的几个格点的有向边,容量为第二预设容量;建立相邻格点之间的双向边,各边容量是第三预设容量;其中,所有边的权重为边的长度;虚拟源点为指向各缓存器的虚拟点;虚拟汇点为各焊盘指向的虚拟点;格点为网格区域中的横纵线相交点。
进一步地,上述求解模块134,用于将第一个缓存器作为当前缓存器,执行以下遍历步骤:从当前缓存器位置节点出发,广度优先遍历所有有流量的边,记录所有遍历到的焊盘位置节点,判断焊盘位置节点是否已在连接组中;如果是,将当前缓存器位置节点加入至连接组中;如果否,为遍历到的焊盘位置节点和当前缓存器构建一个连接组;选择下一个缓存器作为当前缓存器,继续执行遍历步骤,直至遍历完所有缓存器;基于每个连接组确定缓存器与焊盘间的连接关系。
进一步地,上述拆分模块136,用于确定多对多的缓存器与焊盘通过格点的连接关系图;连接关系图中,包括多个缓存器分别指向格点的边、以及格点指向每个焊盘的边;其中,缓存器与焊盘的数量一致;在连接关系图中,确定第一边序列;第一边序列为多个边的顺时针序列或逆时针序列;对第一边序列进行两两相邻边的顺序遍历,在确定出两个相邻边的方向相反时,在两个相邻边之间作目标射线,并停止遍历;在目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点;基于目标射线,对各边进行排序,得到第二边序列;对第二边序列进行两两相邻边的顺序遍历,执行以下移点动步骤:在确定出两个相邻边的方向相反时,将两个相邻边的连接点移动至距离最近的一个还未连接的目标连接点上;在第二边序列中将两个相邻边移除,再次对移除后的第二边序列进行两两相邻边的顺序遍历,执行移点步骤,直到遍历完所有边,得到缓存器与焊盘的一对一关系。
进一步地,上述拆分模块136,用于:在连接关系图中,以格点为原点,以任意方向作第一射线;计算每条边与第一射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第一边序列;指定夹角包括:逆时针夹角或顺时针夹角。
进一步地,上述拆分模块136,用于:计算每条边与目标射线间的指定夹角,按照指定夹角的大小对边进行排序,得到第二边序列;指定夹角包括:逆时针夹角或顺时针夹角。
进一步地,上述拆分模块136,用于:在两个相邻边之间的中分线上作目标射线;拆分模块136,用于在目标射线所在直线上,标记出以格点为中心的左右对称的与焊盘的数量相同数量的顺序排列的目标连接点。
本申请实施例提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置的实施例部分未提及之处,可参考前述方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图12所示,为该电子设备的结构示意图,其中,该电子设备包括处理器141和存储器140,该存储器140存储有能够被该处理器141执行的计算机可执行指令,该处理器141执行该计算机可执行指令以实现上述方法。
在图12示出的实施方式中,该电子设备还包括总线142和通信接口143,其中,处理器141、通信接口143和存储器140通过总线142连接。
其中,存储器140可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口143(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线142可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线142可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器141可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器141中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器141可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(ApplicatI/On Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器141读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种全局I/O分配方法,其特征在于,所述方法包括:
基于芯片中的多个缓存器与多个焊盘建立网络有向图;所述缓存器为I/O输入输出缓存器;
基于所述网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;
对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系,以便进行缓存器分配;
基于芯片中的多个缓存器与多个焊盘建立网络有向图的步骤,包括:
将缓存器和焊盘作为输入,网格化芯片平面区域,得到网格区域;
按照以下建边规则在网格区域中构建有向边,得到网络有向图:
建立从虚拟源点到每一个缓存器位置节点的有向边,容量为1;
建立从每一个焊盘位置节点到虚拟汇点的有向边,容量为1;
建立从每一个缓存器位置节点到其最近的几个格点的有向边,容量为第一预设容量;
建立终点为焊盘位置节点,起点为其最近的几个格点的有向边,容量为第二预设容量;
建立相邻格点之间的双向边,各边容量是第三预设容量;
其中,所有边的权重为边的长度;虚拟源点为指向各缓存器的虚拟点;虚拟汇点为各焊盘指向的虚拟点;格点为网格区域中的横纵线相交点。
2.根据权利要求1所述的方法,其特征在于,基于所述网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系的步骤,包括:
将第一个缓存器作为当前缓存器,执行以下遍历步骤:
从所述当前缓存器位置节点出发,广度优先遍历所有有流量的边,记录所有遍历到的焊盘位置节点,判断所述焊盘位置节点是否已在连接组中;如果是,将所述当前缓存器位置节点加入至所述连接组中;如果否,为遍历到的焊盘位置节点和所述当前缓存器构建一个连接组;
选择下一个缓存器作为当前缓存器,继续执行所述遍历步骤,直至遍历完所有缓存器;基于每个连接组确定缓存器与焊盘间的连接关系。
3.根据权利要求1所述的方法,其特征在于,对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系的步骤,包括:
确定多对多的缓存器与焊盘通过格点的连接关系图;所述连接关系图中,包括多个缓存器分别指向格点的边、以及所述格点指向每个焊盘的边;其中,缓存器与焊盘的数量一致;
在所述连接关系图中,确定第一边序列;所述第一边序列为多个边的顺时针序列或逆时针序列;
对第一边序列进行两两相邻边的顺序遍历,在确定出两个相邻边的方向相反时,在两个相邻边之间作目标射线,并停止遍历;
在所述目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点;
基于所述目标射线,对各边进行排序,得到第二边序列;
对第二边序列进行两两相邻边的顺序遍历,执行以下移点步骤:
在确定出两个相邻边的方向相反时,将两个相邻边的连接点移动至距离最近的一个还未连接的目标连接点上;在所述第二边序列中将所述两个相邻边移除,再次对移除后的第二边序列进行两两相邻边的顺序遍历,执行所述移点步骤,直到遍历完所有边,得到缓存器与焊盘的一对一关系。
4.根据权利要求3所述的方法,其特征在于,在所述连接关系图中,确定第一边序列的步骤,包括:
在所述连接关系图中,以格点为原点,以任意方向作第一射线;
计算每条边与所述第一射线间的指定夹角,按照所述指定夹角的大小对边进行排序,得到第一边序列;所述指定夹角包括:逆时针夹角或顺时针夹角。
5.根据权利要求3所述的方法,其特征在于,基于所述目标射线,对边进行排序,得到第二边序列的步骤,包括:
计算每条边与所述目标射线间的指定夹角,按照所述指定夹角的大小对边进行排序,得到第二边序列;所述指定夹角包括:逆时针夹角或顺时针夹角。
6.根据权利要求3所述的方法,其特征在于,在两个相邻边之间作目标射线的步骤,包括:
在两个相邻边之间的中分线上作目标射线;
在所述目标射线所在直线上,标记出与焊盘的数量相同数量的目标连接点的步骤,包括:
在所述目标射线所在直线上,标记出以格点为中心的左右对称的与焊盘的数量相同数量的顺序排列的目标连接点。
7.一种全局I/O分配装置,其特征在于,所述装置包括:
图建立模块,用于基于缓存器与焊盘建立网络有向图;所述缓存器为I/O输入输出缓存器;
求解模块,用于基于所述网络有向图进行最小费用最大流模型求解,得到缓存器与焊盘之间的连接关系;
拆分模块,用于对于连接关系为多对多的情况,对多对多的连接关系进行拆分,得到缓存器与焊盘的一对一关系;
所述图建立模块,还用于:
将缓存器和焊盘作为输入,网格化芯片平面区域,得到网格区域;
按照以下建边规则在网格区域中构建有向边,得到网络有向图:
建立从虚拟源点到每一个缓存器位置节点的有向边,容量为1;
建立从每一个焊盘位置节点到虚拟汇点的有向边,容量为1;
建立从每一个缓存器位置节点到其最近的几个格点的有向边,容量为第一预设容量;
建立终点为焊盘位置节点,起点为其最近的几个格点的有向边,容量为第二预设容量;
建立相邻格点之间的双向边,各边容量是第三预设容量;
其中,所有边的权重为边的长度;虚拟源点为指向各缓存器的虚拟点;虚拟汇点为各焊盘指向的虚拟点;格点为网格区域中的横纵线相交点。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317132.0A CN117931093B (zh) | 2024-03-20 | 2024-03-20 | 全局i/o分配方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317132.0A CN117931093B (zh) | 2024-03-20 | 2024-03-20 | 全局i/o分配方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117931093A CN117931093A (zh) | 2024-04-26 |
CN117931093B true CN117931093B (zh) | 2024-05-24 |
Family
ID=90764892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410317132.0A Active CN117931093B (zh) | 2024-03-20 | 2024-03-20 | 全局i/o分配方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931093B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561984A (ja) * | 1991-09-03 | 1993-03-12 | Nikon Corp | 有向グラフ表示装置 |
US8261226B1 (en) * | 2011-07-20 | 2012-09-04 | International Business Machines Corporation | Network flow based module bottom surface metal pin assignment |
JP2014106719A (ja) * | 2012-11-27 | 2014-06-09 | Toshiba Corp | 影響関係解析装置 |
JP2017224100A (ja) * | 2016-06-14 | 2017-12-21 | 株式会社リコー | 表示装置、通信資源割当装置、通信資源割当方法、及びプログラム |
CN112637263A (zh) * | 2020-11-23 | 2021-04-09 | 国网电力科学研究院有限公司 | 一种多数据中心资源优化提升方法、系统和存储介质 |
CN115982491A (zh) * | 2023-03-20 | 2023-04-18 | 建信金融科技有限责任公司 | 页面更新方法及装置、电子设备和计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544189B2 (en) * | 2020-02-12 | 2023-01-03 | Alibaba Group Holding Limited | System and method for memory management |
-
2024
- 2024-03-20 CN CN202410317132.0A patent/CN117931093B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561984A (ja) * | 1991-09-03 | 1993-03-12 | Nikon Corp | 有向グラフ表示装置 |
US8261226B1 (en) * | 2011-07-20 | 2012-09-04 | International Business Machines Corporation | Network flow based module bottom surface metal pin assignment |
JP2014106719A (ja) * | 2012-11-27 | 2014-06-09 | Toshiba Corp | 影響関係解析装置 |
JP2017224100A (ja) * | 2016-06-14 | 2017-12-21 | 株式会社リコー | 表示装置、通信資源割当装置、通信資源割当方法、及びプログラム |
CN112637263A (zh) * | 2020-11-23 | 2021-04-09 | 国网电力科学研究院有限公司 | 一种多数据中心资源优化提升方法、系统和存储介质 |
CN115982491A (zh) * | 2023-03-20 | 2023-04-18 | 建信金融科技有限责任公司 | 页面更新方法及装置、电子设备和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
优化网络生命周期和最短化路径的WSN移动sink路径规划算法;莫文杰 等;计算机应用;20170810(8);第2150-2156页 * |
片上网络拓朴优化:在离散平面上布局与布线;马立伟 等;电子学报;20070515(5);第906-911页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117931093A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348563B2 (en) | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology | |
US10824166B2 (en) | Methods and systems of distributing task regions for a plurality of cleaning devices | |
JP6060316B2 (ja) | NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 | |
US10554496B2 (en) | Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance | |
JPH0770598B2 (ja) | 半導体集積回路装置の配線方法 | |
US8261226B1 (en) | Network flow based module bottom surface metal pin assignment | |
US6958545B2 (en) | Method for reducing wiring congestion in a VLSI chip design | |
CN117931093B (zh) | 全局i/o分配方法、装置及电子设备 | |
EP3910522A1 (en) | Methods and computer readable media for synthesis of a network-on-chip for deadlock-free transformation | |
CN114707451A (zh) | 数字电路的版图规划方法、装置、电子设备、存储介质 | |
CN111985181B (zh) | 一种节点布局方法、装置、计算机设备及存储介质 | |
CN105224501B (zh) | 改进圆环面网络及其确定数据包传输路径的方法和装置 | |
CN111931447A (zh) | Fpga布局方法、装置、电子设备及存储介质 | |
CN111062180A (zh) | 一种fpga布线方法及装置 | |
CN108848027B (zh) | 一种面向片上网络的最小故障链路感知映射方法 | |
EP4020302A1 (en) | System and method for generation of quality metrics for optimization tasks in topology synthesis of a network | |
CN109643301B (zh) | 多核芯片数据总线布线结构和数据发送的方法 | |
US7797649B1 (en) | Method and system for implementing an analytical wirelength formulation | |
Zhang et al. | A length matching routing method for disordered pins in PCB design | |
Boese et al. | Scan chain optimization: Heuristic and optimal solutions | |
Sattar et al. | Mobility based net ordering for simultaneous escape routing | |
CN118474017B (zh) | 基于Torus网络结构的路由方法、Torus网络结构、基于Torus网络结构的路由装置、计算机设备和计算机可读存储介质 | |
Odendahl et al. | Optimized buffer allocation in multicore platforms | |
US20240048508A1 (en) | Mixed-Dimension Order Routing | |
CN117436399B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |