CN117408220A - 一种可编程交换架构芯片资源排布方法及装置 - Google Patents
一种可编程交换架构芯片资源排布方法及装置 Download PDFInfo
- Publication number
- CN117408220A CN117408220A CN202311726945.7A CN202311726945A CN117408220A CN 117408220 A CN117408220 A CN 117408220A CN 202311726945 A CN202311726945 A CN 202311726945A CN 117408220 A CN117408220 A CN 117408220A
- Authority
- CN
- China
- Prior art keywords
- pipeline
- chip
- programmable switch
- resource
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 36
- 238000002922 simulated annealing Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 36
- 239000004744 fabric Substances 0.000 claims description 30
- 239000002923 metal particle Substances 0.000 claims description 26
- 229910052728 basic metal Inorganic materials 0.000 claims description 23
- 150000003818 basic metals Chemical class 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 13
- 238000013468 resource allocation Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 4
- 238000010438 heat treatment Methods 0.000 claims description 4
- 241000404883 Pisa Species 0.000 description 28
- 238000005457 optimization Methods 0.000 description 24
- 239000000243 solution Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 229910021645 metal ion Inorganic materials 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000137 annealing Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000010953 base metal Substances 0.000 description 1
- -1 basic metal ion Chemical class 0.000 description 1
- 239000003637 basic solution Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种可编程交换架构芯片资源排布方法及装置,涉及芯片资源分配技术领域,该方法包括:构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定待执行程序对应的所有执行节点的依赖关系哈希表;基于依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;基于模拟退火算法更新初始资源排布方案,得到最终的资源排布方案。本发明实现了在满足资源约束条件的前提下更好的发挥芯片性能,提升了可编程交换架构芯片的运行效率。
Description
技术领域
本发明涉及芯片资源分配技术领域,具体涉及一种可编程交换架构芯片资源排布方法及装置。
背景技术
目前在设计可编程交换架构(Protocol Independent Switch Architecture,PISA)芯片时,为降低连线复杂度,通常对于流水线各级资源,及流水线各级间资源都有各种约束,这些复杂资源约束给资源排布带来了特别大的难度。因此,如何根据有限的资源更好的发挥芯片的性能成为了亟需解决的问题。
发明内容
有鉴于此,有必要提供一种可编程交换架构芯片资源排布方法及装置,用以解决目前在设计PISA芯片时无法根据有限的资源更好的发挥芯片的性能的技术问题。
为了实现上述目的,本发明提供了一种可编程交换架构芯片资源排布方法,包括:
构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
进一步地,所述基于模拟退火算法更新所述初始资源排布方案,包括:
在所述可编程交换架构芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数。
进一步地,所述在所述可编程交换架构芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数,包括:
将所述可编程交换架构芯片的任意一级流水线中的执行节点移动至另一级流水线中,并删除不包含执行节点的流水线。
进一步地,在删除的流水线的级数i小于32的情况下,同时删除第i+16级流水线。
进一步地,所述基于模拟退火算法更新所述初始资源排布方案,包括:
基于以下公式计算所述基本金属粒子的温度:
其中,表示所述可编程交换架构芯片的第i级流水线对应的基本金属粒子的温度,/>表示温度系数,/>表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,/>表示所述可编程交换架构芯片的所有流水线的资源平均占用率,n表示所述可编程交换架构芯片的流水线总级数,b表示升温常量。
进一步地,所述可编程交换架构芯片的每一级流水线的资源平均占用率基于以下公式确定:
其中,表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,表示所述可编程交换架构芯片的第i级流水线的TCAM资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的HASH资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的ALU资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的QUALIFY资源占用率。
进一步地,所述可编程交换架构芯片的每一级流水线的资源约束条件,包括:
TCAM资源约束条件、HASH资源约束条件、ALU资源约束条件和QUALIFY资源约束条件。
本发明还提供了一种可编程交换架构芯片资源排布装置,包括:
构建模块,用于构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
确定模块,用于基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
资源排布模块,用于将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如上所述的可编程交换架构芯片资源排布方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的可编程交换架构芯片资源排布方法。
与现有技术相比,本发明的有益效果包括:通过待执行程序对应的所有执行节点之间的依赖关系、可编程交换架构芯片的每一级流水线的资源约束条件和资源排布的优化目标,得到初始资源排布方案,然后根据模拟退火算法对初始资源排布方案进行更新,得到最终的资源排布方案,实现了在满足资源约束条件的前提下更好的发挥芯片性能,提升了可编程交换架构芯片的运行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的可编程交换架构芯片资源排布方法一实施例的流程示意图;
图2为本发明提供的依赖关系哈希表的生成方案一实施例的流程示意图;
图3为本发明提供的模拟退火算法一实施例的流程示意图;
图4为本发明提供的流水线排布方案一实施例的流程示意图;
图5为本发明提供的模拟退火算法的迭代一实施例的流程示意图;
图6为本发明提供的可编程交换架构芯片资源排布装置一实施例的结构示意图;
图7为本发明提供的电子设备一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。此外,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明的描述中,提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,所描述的实施例可以与其它实施例相结合。
芯片作为整个电子技术行业中一个重要的基础。PISA是目前比较主流的一种可编程交换芯片架构,它不仅有着与传统交换芯片相近的处理速率,还有着可编程性,在未来网络发展中有着光明的前景。PISA架构由报文解析(parser)、多级的报文处理流水线(Pipeline Pocket Process)和报文重组(Deparser)三部分构成。在PISA架构编程模型下,用户用P4语言对报文处理行为进行描述获得P4程序,然后通过编译器对P4程序进行编译,继而产生芯片上可执行机器码。编译器编译P4程序时会先把P4程序分成一系列基本块,然后把每个基本块排列在流水线上各级之中。因为每一个基本块都会占用部分芯片资源,把基本块排列在流水线的各级上也就是把每一个基本块上的资源排列在流水线各级上(也就是要明确每一个基本块排列在流水线的哪级上),所以可以把基本块排布问题称为基于PISA架构芯片的资源排布问题。实际设计PISA架构芯片时,为降低连线复杂度,通常对于流水线各级资源,及流水线各级间资源都有各种约束,这些复杂资源约束给资源排布带来了特别大的难度。但是芯片中各种资源都是有限的,如果能很好地利用资源,就意味着可以更好地发挥芯片的功能,所以资源利用率高的资源排布算法对编译器设计非常重要。
本发明设计了一种基于模拟退火算法的PISA架构芯片资源排布策略,针对PISA架构芯片资源排布问题建立双级目标优化模型,其中核心优化目标为所占用的流水线级数最小,即总资源利用率最大,除此之外,考虑到水桶效应对芯片寿命的影响,引入添加时间维度的总资源利用率作为次级优化目标,在首先考虑核心优化目标的情况下,再对次级优化目标进行优化求解。同时,将次级优化目标的目标函数作为随机扰动的影响因素引入模拟退火算法中,以此获得更优的PISA架构芯片资源排布方案。
以下分别对具体实施例进行详细说明:
本发明提供了一种可编程交换架构芯片资源排布方法,结合图1来看,图1为本发明提供的可编程交换架构芯片资源排布方法一实施例的流程示意图,包括步骤S101至步骤S103,其中:
在步骤S101中,构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
在步骤S102中,基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
在步骤S103中,将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
在本发明实施例中,通过待执行程序对应的所有执行节点之间的依赖关系、可编程交换架构芯片的每一级流水线的资源约束条件和资源排布的优化目标,得到初始资源排布方案,然后根据模拟退火算法对初始资源排布方案进行更新,得到最终的资源排布方案,实现了在满足资源约束条件的前提下更好的发挥芯片性能,提升了可编程交换架构芯片的运行效率。
在本发明一个具体的实施例中,首先可以构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系。两个执行节点存在控制依赖关系,即这两个执行节点中一个执行节点的部分路径通过下游的另一执行节点。两个执行节点之间的读写依赖关系包括写后写依赖、写后读依赖和读后写依赖。
根据两个执行节点之间的控制依赖关系和读写依赖关系,可以确定这两个执行节点之间的流水线级数关系。如果节点A和节点B之间存在控制依赖关系或读后写依赖关系,则节点A的流水线级数小于或者等于节点B的流水线级数;如果节点A和节点B之间存在写后写依赖关系或写后读依赖关系,则节点A的流水线级数小于节点B的流水线级数。
根据待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,可以构建所有执行节点的有向无环图,根据所有执行节点的有向无环图,可以确定所有执行节点的依赖关系哈希表。
第一目标函数的表达形式为:
其中,表示第一目标函数,i为流水线级数,PISA芯片的最大流水线级数为606。
第二目标函数的表达形式为:
其中,表示第二目标函数,/>表示PISA芯片的流水线总级数,/>表示PISA芯片第i级流水线的资源平均占用率。第i级流水线的资源平均占用率可以根据第i级流水线的TCAM资源占用率、HASH资源占用率、ALU资源占用率和QUALIFY资源占用率得到。
根据依赖关系哈希表、第一目标函数、第二目标函数以及PISA芯片的每一级流水线的资源约束条件,可以使用贪心算法确定初始资源排布方案。
最后,可以将PISA芯片的每一级流水线作为基本金属粒子,将初始资源排布方案下PISA芯片的所有流水线的资源平均占用率作为零度,将初始资源排布方案下PISA芯片的每一级流水线的资源平均占用率与零度的差值作为基本金属粒子的初始温度,基于模拟退火算法更新初始资源排布方案,得到最终的资源排布方案。
作为优选的实施例,所述基于模拟退火算法更新所述初始资源排布方案,包括:
在所述可编程交换架构芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数。
在本发明一个具体的实施例中,在根据模拟退火算法更新初始资源排布方案时,可以在PISA芯片的每一级流水线的资源满足PISA芯片的每一级流水线的资源约束条件的情况下,减少初始资源排布方案中的流水线总级数。
作为优选的实施例,所述在PISA芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数,包括:
将所述可编程交换架构芯片的任意一级流水线中的执行节点移动至另一级流水线中,并删除不包含执行节点的流水线。
在本发明一个具体的实施例中,在根据模拟退火算法更新初始资源排布方案,减少初始资源排布方案中的流水线总级数时,可以将某一级流水线上的执行节点移动到另一级流水线中,然后删除不包含执行节点的流水线。
作为优选的实施例,在删除的流水线的级数i小于32的情况下,同时删除第i+16级流水线。
在本发明一个具体的实施例中,在删除不包含执行节点的流水线时,在删除的流水线的级数i小于32的情况下,需要同时删除第i+16级流水线。
作为优选的实施例,所述基于模拟退火算法更新所述初始资源排布方案,包括:
基于以下公式计算所述基本金属粒子的温度:
其中,表示所述可编程交换架构芯片的第i级流水线对应的基本金属粒子的温度,/>表示温度系数,/>表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,/>表示所述可编程交换架构芯片的所有流水线的资源平均占用率,n表示所述可编程交换架构芯片的流水线总级数,b表示升温常量。
在本发明一个具体的实施例中,在根据模拟退火算法更新初始资源排布方案时,可以根据上述公式计算基本金属粒子的温度。
作为优选的实施例,所述可编程交换架构芯片的每一级流水线的资源平均占用率基于以下公式确定:
其中,表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,表示所述可编程交换架构芯片的第i级流水线的TCAM资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的HASH资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的ALU资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的QUALIFY资源占用率。
在本发明一个具体的实施例中,PISA芯片的每一级流水线的资源平均占用率可以根据上述公式确定。
作为优选的实施例,所述可编程交换架构芯片的每一级流水线的资源约束条件,包括:
TCAM资源约束条件、HASH资源约束条件、ALU资源约束条件和QUALIFY资源约束条件。
在本发明一个具体的实施例中,PISA芯片的每一级流水线的资源约束条件可以包括TCAM资源约束条件、HASH资源约束条件、ALU资源约束条件和QUALIFY资源约束条件这四种资源约束条件。
TCAM资源约束条件包括:每一级流水线的TCAM资源最大为1,并且第i级流水线和第i+16级流水线(i≤15)的TCAM资源之和最大为1。
HASH资源约束条件包括:每一级流水线的HASH资源最大为2,并且第i级流水线和第i+16级流水线(i≤15)的HASH资源之和最大为3。
ALU资源约束条件包括:每一级流水线的ALU资源最大为56。
QUALIFY资源约束条件包括:每一级流水线的QUALIFY资源最大为64。
下面结合一个具体的应用场景,更好地说明本发明技术方案:
本发明提供的可编程交换架构芯片资源排布方法主要包括以下步骤:
1、确定PISA芯片多级报文处理流水线的构建约束与优化问题目标函数,并建模各个节点的依赖关系。
1a、本发明主要解决多级的报文处理流水线的问题,被划分为一系列基本块的程序会排布到各级流水线中,即需要确定每个基本块排布到流水线的哪一级,将该问题称为PISA芯片资源排布问题,每个节点都会占用一定的芯片资源,为了减少PISA芯片的连线复杂度,要使基本块占用的层级尽可能的小。以来表示第i级流水线里面是否存在节点,可以描述为:
1b、构建以流水线总级数最小为目标的目标函数:
1c、确定每一级流水线对应的资源利用率和平均资源占用率:
1d、构建次级优化目标,将其表述为各级流水线加权平均资源利用率的方差最小:
1e、构建各级流水线资源的相关约束模型:
TCAM资源约束条件包括:每一级流水线的TCAM资源最大为1,并且第i级流水线和第i+16级流水线(i≤15)的TCAM资源之和最大为1。
HASH资源约束条件包括:每一级流水线的HASH资源最大为2,并且第i级流水线和第i+16级流水线(i≤15)的HASH资源之和最大为3。
ALU资源约束条件包括:每一级流水线的ALU资源最大为56。
QUALIFY资源约束条件包括:每一级流水线的QUALIFY资源最大为64。
1f、构建各个节点的控制依赖于读写依赖关系:
如果节点A和节点B之间存在控制依赖关系或读后写依赖关系,则节点A的流水线级数小于或者等于节点B的流水线级数;如果节点A和节点B之间存在写后写依赖关系或写后读依赖关系,则节点A的流水线级数小于节点B的流水线级数。
2、读取所有节点数据,对数据进行预处理,根据表中数据与相关资源约束构建所有节点的有向无环图,并生成所有节点的拓扑排序新序列,最后生成相关依赖关系的哈希表。结合图2来看,图2为本发明提供的依赖关系哈希表的生成方案一实施例的流程示意图。
2a、读取输入数生成所有节点的有向无环图,并构建所有节点的拓扑排序序列。
2b、遍历所有节点,求出从i节点到j节点的所有可行路径数量。
2c、依据数据的读写依赖与控制依赖关系,将依赖关系分为数据依赖和控制依赖,在求解各个节点之间的依赖关系时,可分开求解。从实际依赖逻辑上可将控制依赖和读后写依赖共同视作同种依赖,将写后读依赖和写后写依赖视作同种依赖,并根据其依赖关系生成所有节点的依赖关系哈希表。
3、构建面向PISA芯片资源排布方案优化的模拟退火算法,对优化问题求解,得到更优的资源排布方案。结合图3来看,图3为本发明提供的模拟退火算法一实施例的流程示意图。
3a、首先依据贪心算法为每个节点安置流水线,得到可行域范围内的一个较优芯片资源排布方案。贪心算法的基本求解思路为求解当前状态下的最优解,故本发明是根据拓扑序列顺序为每一个节点安置一个符合各种约束条件的流水级。结合图4来看,图4为本发明提供的流水线排布方案一实施例的流程示意图。
3b、将步骤3a中贪心算法所求排布方案作为模拟退火算法的初始解,设计退火温度更新策略。以各级流水线为基本金属粒子,将所有流水线的资源平均占用率作为温度为零度,以每级流水线的资源平均占用率与流水线资源的差值作为金属粒子的温度,初始状态给所有金属离子升温,选择需要更新的流水线。
因为TCAM、HASH比ALU、QUALIFY的值相对较小,所以其变化率相对来说跳跃性较大,所以在处理相关数据求资源占用率的时候考虑到TCAM和HASH的方差较大,其数据波动较大,对优化目标的影响可能较小,故成本函数中降低其成本权重。可以使用以下公式计算资源占用率:
基本金属粒子的温度计算公式为:
3c、设计流水线更新策略,对于折叠流水线的更新,两条流水线需要同时更新,同时考虑偶数级流水线的TCAM资源约束,删除空流水线必须两两删除,如果流水线级别小于32,则只能同时删除i和i+16级别的流水线,若在32级之后,则任意两两空流水线可联合删除。对于流水线的更新,遍历该流水线所有安置的节点,找出能够移出的节点移出,以成本最低为移出标准。结合图5来看,图5为本发明提供的模拟退火算法的迭代一实施例的流程示意图。
本发明构建了面向PISA芯片资源排布方案优化的双级目标优化模型。其核心优化目标为资源排布方案所占用的流水线级数最少。同时,考虑各级流水线资源利用率分布不均匀对芯片寿命的影响,即在时间维度上可能浪费更多的资源,引入次级优化目标共同构建优化模型。对于问题的求解,本发明以核心优化目标构建资源排布方案的贪心求解策略,将其作为初始解输入模拟退火算法中,同时,分析初始解的各级流水线各类资源占用比率,发现TCAM与HASH资源的资源占用率方差值相对较大,不宜作为次级优化目标的影响因素,故适当降低各级流水线中资源占用率加权平均值的对应权重,以减小不稳定因素对次级优化目标的影响。同时,将各级流水线作为模拟退火中的基本金属离子,作为资源排布方案迭代更新的基本单位,并将各级流水线资源占用率的加权平均值,作为影响金属离子自身温度的首要考虑因素。最终构建基于模拟退火算法的双级目标优化的PISA芯片资源排布方案优化策略。
本发明实施例还提供了一种可编程交换架构芯片资源排布装置,结合图6来看,图6为本发明提供的可编程交换架构芯片资源排布装置一实施例的结构示意图,可编程交换架构芯片资源排布装置600包括:
构建模块601,用于构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
确定模块602,用于基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
资源排布模块603,用于将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
可编程交换架构芯片资源排布装置的各个模块的更具体实现方式可以参见对于上述可编程交换架构芯片资源排布方法的描述,且具有与之相似的有益效果,在此不再赘述。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如上所述的可编程交换架构芯片资源排布方法。
一般来说,用于实现本发明方法的计算机指令的可以采用一个或多个计算机可读的存储介质的任意组合来承载。非临时性计算机可读存储介质可以包括任何计算机可读介质,除了临时性地传播中的信号本身。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,特别是可以使用适于神经网络计算的Python语言和基于TensorFlow、PyTorch等平台框架。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例还提供了一种电子设备,结合图7来看,图7为本发明提供的电子设备一实施例的结构示意图,电子设备700包括处理器701、存储器702及存储在存储器702上并可在处理器701上运行的计算机程序,处理器701执行程序时,实现如上所述的可编程交换架构芯片资源排布方法。
作为优选的实施例,上述电子设备700还包括显示器703,用于显示处理器701执行如上所述的可编程交换架构芯片资源排布方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器702中,并由处理器701执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在电子设备700中的执行过程。例如,计算机程序可以被分割成上述实施例中的构建模块601、确定模块602及资源排布模块603,各模块的具体功能如上所述,在此不一一赘述。
电子设备700可以是带可调摄像头模组的桌上型计算机、笔记本、掌上电脑或智能手机等设备。
其中,处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器701可以是通用处理器,包括中央处理器( CentralProcessingUnit,CPU )、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,存储器702可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead-OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。其中,存储器702用于存储程序,所述处理器701在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的方法可以应用于处理器701中,或者由处理器701实现。
其中,显示器703可以是LCD显示屏,也可以是LED显示屏。例如,手机上的显示屏。
可以理解的是,图7所示的结构仅为电子设备700的一种结构示意图,电子设备700还可以包括比图7所示更多或更少的组件。图7中所示的各组件可以采用硬件、软件或其组合实现。
根据本发明上述实施例提供的计算机可读存储介质和电子设备,可以参照根据本发明实现如上所述的可编程交换架构芯片资源排布方法具体描述的内容实现,并具有与如上所述的可编程交换架构芯片资源排布方法类似的有益效果,在此不再赘述。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
本发明公开了一种可编程交换架构芯片资源排布方法及装置,通过待执行程序对应的所有执行节点之间的依赖关系、可编程交换架构芯片的每一级流水线的资源约束条件和资源排布的优化目标,得到初始资源排布方案,然后根据模拟退火算法对初始资源排布方案进行更新,得到最终的资源排布方案,实现了在满足资源约束条件的前提下更好的发挥芯片性能,提升了可编程交换架构芯片的运行效率。
本发明技术方案,将依赖约束与资源约束分开建模,将依赖约束在数据预处理中求解完成,大大提高了后续求解算法的性能,可以扩展至更多节点、更复杂的芯片排布方案优化问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种可编程交换架构芯片资源排布方法,其特征在于,包括:
构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
2.根据权利要求1所述的可编程交换架构芯片资源排布方法,其特征在于,所述基于模拟退火算法更新所述初始资源排布方案,包括:
在所述可编程交换架构芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数。
3.根据权利要求2所述的可编程交换架构芯片资源排布方法,其特征在于,所述在所述可编程交换架构芯片的每一级流水线的资源满足所述可编程交换架构芯片的每一级流水线的资源约束条件的情况下,减少所述初始资源排布方案中的流水线总级数,包括:
将所述可编程交换架构芯片的任意一级流水线中的执行节点移动至另一级流水线中,并删除不包含执行节点的流水线。
4.根据权利要求3所述的可编程交换架构芯片资源排布方法,其特征在于,在删除的流水线的级数i小于32的情况下,同时删除第i+16级流水线。
5.根据权利要求1所述的可编程交换架构芯片资源排布方法,其特征在于,所述基于模拟退火算法更新所述初始资源排布方案,包括:
基于以下公式计算所述基本金属粒子的温度:
其中,表示所述可编程交换架构芯片的第i级流水线对应的基本金属粒子的温度,/>表示温度系数,/>表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,表示所述可编程交换架构芯片的所有流水线的资源平均占用率,n表示所述可编程交换架构芯片的流水线总级数,b表示升温常量。
6.根据权利要求5所述的可编程交换架构芯片资源排布方法,其特征在于,所述可编程交换架构芯片的每一级流水线的资源平均占用率基于以下公式确定:
其中,表示所述可编程交换架构芯片的第i级流水线的资源平均占用率,表示所述可编程交换架构芯片的第i级流水线的TCAM资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的HASH资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的ALU资源占用率,/>表示所述可编程交换架构芯片的第i级流水线的QUALIFY资源占用率。
7.根据权利要求1至6任一项所述的可编程交换架构芯片资源排布方法,其特征在于,所述可编程交换架构芯片的每一级流水线的资源约束条件,包括:
TCAM资源约束条件、HASH资源约束条件、ALU资源约束条件和QUALIFY资源约束条件。
8.一种可编程交换架构芯片资源排布装置,其特征在于,包括:
构建模块,用于构建待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,基于所述待执行程序对应的所有执行节点之间的控制依赖关系和读写依赖关系,确定所述待执行程序对应的所有执行节点的依赖关系哈希表;
确定模块,用于基于所述依赖关系哈希表、第一目标函数、第二目标函数以及可编程交换架构芯片的每一级流水线的资源约束条件,确定初始资源排布方案;
资源排布模块,用于将所述可编程交换架构芯片的每一级流水线作为基本金属粒子,将所述初始资源排布方案下所述可编程交换架构芯片的所有流水线的资源平均占用率作为零度,将所述初始资源排布方案下所述可编程交换架构芯片的每一级流水线的资源平均占用率与零度的差值作为所述基本金属粒子的初始温度,基于模拟退火算法更新所述初始资源排布方案,得到最终的资源排布方案;
其中,所述第一目标函数以所述可编程交换架构芯片的流水线总级数最小为目标,所述第二目标函数以所述可编程交换架构芯片的每一级流水线的资源平均占用率的方差最小为目标。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时,实现根据权利要求1至7任一项所述的可编程交换架构芯片资源排布方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的可编程交换架构芯片资源排布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311726945.7A CN117408220B (zh) | 2023-12-15 | 2023-12-15 | 一种可编程交换架构芯片资源排布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311726945.7A CN117408220B (zh) | 2023-12-15 | 2023-12-15 | 一种可编程交换架构芯片资源排布方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117408220A true CN117408220A (zh) | 2024-01-16 |
CN117408220B CN117408220B (zh) | 2024-02-23 |
Family
ID=89498418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311726945.7A Active CN117408220B (zh) | 2023-12-15 | 2023-12-15 | 一种可编程交换架构芯片资源排布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117408220B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170351555A1 (en) * | 2016-06-03 | 2017-12-07 | Knuedge, Inc. | Network on chip with task queues |
CN113761821A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种借由自动工具完成的模块化半定制fpga芯片设计方法 |
US20210409487A1 (en) * | 2019-07-30 | 2021-12-30 | Alibaba Group Holding Limited | Apparatus and method for controlling data transmission in network system |
CN116088861A (zh) * | 2023-03-02 | 2023-05-09 | 中国人民解放军国防科技大学 | 面向可编程交换芯片的p4后端编译方法及系统 |
CN116264550A (zh) * | 2021-12-15 | 2023-06-16 | 中兴通讯股份有限公司 | 资源的切片处理方法和装置、存储介质及电子装置 |
CN116306424A (zh) * | 2023-02-08 | 2023-06-23 | 湖南理工学院 | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 |
CN116432575A (zh) * | 2023-02-08 | 2023-07-14 | 湖南理工学院 | 一种pisa架构芯片内部结构中程序基本块优化排布方法 |
CN116545958A (zh) * | 2023-03-31 | 2023-08-04 | 吉林大学 | 一种应用于pisa架构芯片的基本块排布方法 |
CN116911246A (zh) * | 2023-09-14 | 2023-10-20 | 芯行纪科技有限公司 | 芯片设计的布线规划方法及相关设备 |
-
2023
- 2023-12-15 CN CN202311726945.7A patent/CN117408220B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170351555A1 (en) * | 2016-06-03 | 2017-12-07 | Knuedge, Inc. | Network on chip with task queues |
US20210409487A1 (en) * | 2019-07-30 | 2021-12-30 | Alibaba Group Holding Limited | Apparatus and method for controlling data transmission in network system |
CN113761821A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种借由自动工具完成的模块化半定制fpga芯片设计方法 |
CN116264550A (zh) * | 2021-12-15 | 2023-06-16 | 中兴通讯股份有限公司 | 资源的切片处理方法和装置、存储介质及电子装置 |
CN116306424A (zh) * | 2023-02-08 | 2023-06-23 | 湖南理工学院 | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 |
CN116432575A (zh) * | 2023-02-08 | 2023-07-14 | 湖南理工学院 | 一种pisa架构芯片内部结构中程序基本块优化排布方法 |
CN116088861A (zh) * | 2023-03-02 | 2023-05-09 | 中国人民解放军国防科技大学 | 面向可编程交换芯片的p4后端编译方法及系统 |
CN116545958A (zh) * | 2023-03-31 | 2023-08-04 | 吉林大学 | 一种应用于pisa架构芯片的基本块排布方法 |
CN116911246A (zh) * | 2023-09-14 | 2023-10-20 | 芯行纪科技有限公司 | 芯片设计的布线规划方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
原亮;杨文飞;张政保;吴彩华;: "使用常规IC的演化硬件电路设计实例", 计算机测量与控制, no. 11, 25 November 2006 (2006-11-25), pages 1518 - 1520 * |
涂力;周先军;盛秋林;: "基于SDN的物联网架构分析", 无线互联科技, no. 05, 10 March 2016 (2016-03-10), pages 126 - 128 * |
Also Published As
Publication number | Publication date |
---|---|
CN117408220B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zeng et al. | GraphACT: Accelerating GCN training on CPU-FPGA heterogeneous platforms | |
CN107111653A (zh) | 适于并行数据库系统的系统内存负载的查询优化 | |
Harish Ram et al. | A novel framework for applying multiobjective GA and PSO based approaches for simultaneous area, delay, and power optimization in high level synthesis of datapaths | |
JP2020512643A (ja) | 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法 | |
US20220358119A1 (en) | Blockchain consensus method, apparatus and device | |
CN108389152B (zh) | 一种图结构感知的图处理方法及装置 | |
CN112257368A (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
Liao et al. | Cost‐Sensitive Attribute Reduction in Decision‐Theoretic Rough Set Models | |
CN117408220B (zh) | 一种可编程交换架构芯片资源排布方法及装置 | |
CN116932174B (zh) | Eda仿真任务动态资源调度方法、装置、终端及介质 | |
CN112001649A (zh) | 一种风险数据挖掘方法、装置以及设备 | |
CN113392143B (zh) | 一种面向多关系图的可达性查询索引的构建与处理方法 | |
JP2020187419A (ja) | エンティティリンキング方法、情報処理装置およびエンティティリンキングプログラム | |
CN104679603A (zh) | 一种非对称的数据三模冗余方法及系统 | |
CN110189230A (zh) | 一种动态分区的解析化模型的构建方法 | |
CN114637752A (zh) | 一种连接查询语句处理方法、装置、设备及存储介质 | |
Papa et al. | Automatic large-scale integrated circuit synthesis using allocation-based scheduling algorithm | |
CN115629987A (zh) | 一种测试用例排序方法、装置、设备及存储介质 | |
CN114676132A (zh) | 一种数据表关联方法、装置、存储介质及电子设备 | |
CN109389157B (zh) | 一种用户群识别方法和装置及对象群识别方法和装置 | |
CN113111893A (zh) | 一种数据的处理方法、系统以及电子设备 | |
CN116757388B (zh) | 一种基于冗余约束筛选的电力市场出清方法及装置 | |
WO2024217599A1 (zh) | 一种基于后处理的端到端强化学习混合尺度布局方法 | |
CN116821559B (zh) | 用于快速获取一组大数据集中趋势的方法、系统及终端 | |
Cai et al. | Trusted QoS Assurance Approach for Composite Service |
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 |