一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于芯片设计的组件优化方法、装置、计算机设备及介质与流程

2023-01-14 12:05:14 来源:中国专利 TAG:


1.本发明涉及芯片设计技术领域,具体而言,涉及一种基于芯片设计的组件优化方法、装置、计算机设备及介质。


背景技术:

2.通用应用程序基准是测试芯片的体系结构设计的性能和功率的重要工具。
3.随着计算机应用程序的规模和复杂程度的大规模提升,利用新发布的基准应用程序测试芯片的体系结构设计的性能和功率变得十分困难,工业界通常会选择一些基准指令流片段进行测试,以根据其运行结果指导芯片的设计开发方向。
4.但是当需要对特定组件进行测试时,所筛选的基准指令流片段无法反应特定组件的热点行为,对组件的优化没有意义。


技术实现要素:

5.本发明的目的在于,针对上述现有技术中的不足,提供一种基于芯片设计的组件优化方法、装置、计算机设备及介质,以便从预设应用程序的指令流中筛选出可以代表目标组件的热点行为的指令流片段,以便根据热点行为对应的指令流片段提高目标组件的设计优化效果。
6.为实现上述目的,本技术实施例采用的技术方案如下:第一方面,本技术实施例提供了一种基于芯片设计的组件优化方法,所述方法包括:对预设应用程序的指令流进行切分,得到多组指令流片段;模拟运行所述多组指令流片段,获取目标组件对应的多个组件行为;采用预设转换规则,将所述多个组件行为转换为多个组件行为向量;对所述多个组件行为向量进行聚类分析,确定组件行为代表向量;将所述组件行为代表向量对应的指令流片段作为目标指令流片段,所述目标指令流片段用于获取所述目标组件的设计优化方案。
7.可选的,所述对预设应用程序的指令流进行切分,得到多组指令流片段,包括:从所述预设应用程序中获取目标应用子程序的指令流片段;按照预设划分方法对所述目标应用子程序的指令流片段进行划分,得到所述多组指令流片段,其中,每组包含相同数量的指令。
8.可选的,所述模拟运行所述多组指令流片段,获取目标组件对应的多个组件行为,包括:模拟运行所述多组指令流片段,获取各所述指令流片段对应多个组件的组件行为;从所述多个组件的组件行为中筛选出所述目标组件对应的多个组件行为。
9.可选的,所述采用预设转换规则,将所述多个组件行为转换为多个组件行为向量,
包括:根据所述多个组件行为的模拟运行日志,采用所述预设转换规则,将所述多个组件行为转换为所述多个组件行为向量。
10.可选的,所述将所述组件行为代表向量对应的指令流片段作为目标指令流片段之后,还包括:以所述目标指令流片段作为特征片段,采用权重求和计算,获取所述目标组件的完整行为特征,所述完整行为特征用于分析获取所述目标组件的设计优化方案。
11.可选的,所述对所述多个组件行为向量进行聚类分析,确定组件行为代表向量,包括:根据预设聚类数量,采用k均值聚类算法从所述多个组件行为向量中确定所述预设聚类数量的初始组件行为代表向量;根据所述初始组件行为代表向量,对所述多个组件行为向量进行聚类分析,得到所述预设聚类数量的初始聚类子集;对所述初始聚类子集进行迭代聚类,得到所述预设聚类数量的所述组件行为代表向量。
12.可选的,所述对所述初始聚类子集进行迭代聚类,得到所述预设聚类数量的所述组件行为代表向量,包括:对所述初始聚类子集进行迭代聚类,直至相邻两次聚类结果的变化范围小于预设阈值,确定所述预设聚类数量的所述组件行为代表向量。
13.第二方面,本技术实施例还提供一种基于芯片设计的组件优化装置,所述装置包括:指令流切分模块,用于对预设应用程序的指令流进行切分,得到多个指令流片段;组件行为确定模块,用于模拟运行所述多个指令流片段,获取所述多个指令流片段对应的多个组件行为;向量转换模块,用于采用预设转换规则,将所述多个组件行为转换为多个组件行为向量;聚类分析模块,用于对所述多个组件行为向量进行聚类分析,确定组件行为代表向量;目标片段确定模块,用于将所述组件行为代表向量对应的指令流片段作为目标指令流片段,所述目标指令流片段用于获取芯片的设计优化方案。
14.可选的,所述指令流切分模块,包括:指令流片段获取单元,用于从所述预设应用程序中获取目标应用子程序的指令流片段;指令流切分单元,用于按照预设划分方法对所述目标应用子程序的指令流片段进行划分,得到所述多组指令流片段,其中,每组包含相同数量的指令。
15.可选的,所述组件行为确定模块,包括:组件行为获取单元,用于模拟运行所述多组指令流片段,获取各所述指令流片段对应多个组件的组件行为;组件行为筛选单元,用于从所述多个组件的组件行为中筛选出所述目标组件对应
的多个组件行为。
16.可选的,所述向量转换模块,具体用于根据所述多个组件行为的模拟运行日志,采用所述预设转换规则,将所述多个组件行为转换为所述多个组件行为向量。
17.可选的,所述装置还包括:权重求和模块,用于以所述目标指令流片段作为特征片段,采用权重求和计算,获取所述目标组件的完整行为特征,所述完整行为特征用于分析获取所述目标组件的设计优化方案。
18.可选的,所述聚类分析模块,包括:初始代表向量确定单元,用于根据预设聚类数量,采用k均值聚类算法从所述多个组件行为向量中确定所述预设聚类数量的初始组件行为代表向量;迭代聚类单元,用于根据所述初始组件行为代表向量,对所述多个组件行为向量进行聚类分析,得到所述预设聚类数量的初始聚类子集;代表向量确定单元,用于对所述初始聚类子集进行迭代聚类,得到所述预设聚类数量的所述组件行为代表向量。
19.可选的,所述代表向量确定单元,具体用于对所述初始聚类子集进行迭代聚类,直至相邻两次聚类结果的变化范围小于预设阈值,确定所述预设聚类数量的所述组件行为代表向量。
20.第三方面,本技术实施例还提供一种计算机设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一所述的基于芯片设计的组件优化方法的步骤。
21.第四方面,本技术实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一所述的基于芯片设计的组件优化方法的步骤。
22.本技术的有益效果是:本技术提供一种基于芯片设计的组件优化方法、装置、计算机设备及介质,通过模拟运行预设应用程序的多组指令流片段,获取目标组件对应的多个组件行为,通过对多个组件行为的组件行为向量进行聚类确定组件行为代表向量,以将组件行为代表向量对应的指令流片段作为可以代表目标组件的热点行为的目标指令流片段,利用模拟器根据目标指令流片段的测试结果优化目标组件的设计,提高目标组件的设计优化效果,进而缩短利用模拟器验证目标组件设计的流程和时间,加速芯片体系结构设计的优化周期。
附图说明
23.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
24.图1为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图一;图2为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图二;
图3为本技术实施例提供的一种指令流划分的示意图;图4为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图三;图5为本技术实施例提供的生成组件行为向量的流程框图;图6为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图四;图7为本技术实施例提供的一种聚类过程示意图;图8为本技术实施例提供的基于芯片设计的组件优化装置的结构示意图;图9为本技术实施例提供的计算机设备的示意图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
26.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.需要说明的是,在不冲突的情况下,本技术的实施例中的特征可以相互结合。
29.利用通用应用程序基准测试芯片的体系结构设计的性能和功率是芯片设计领域的重要手段,但是随着计算机应用程序的规模和复杂程度的大幅提升,新发布的基准应用程序往往十分复杂,利用这些复杂的基准应用程序测试芯片的体系结构设计的性能和功率是十分困难的,为此,掌握应用程序下的行为是体系结构设计的核心问题之一。
30.通常,工业界会从应用程序中选择一些基准指令流片段,通过在比最终设计的芯片运行速度慢几个数量级的模拟器上对基准指令流片段上进行测试,以根据测试结果指导芯片体系结构设计的方法。
31.目前可以采用基于bbv(basic block vector,基本块向量)或者循环种类分析方法采样热点指令流片段的方法来减少模拟器的运行时间。这些方法的核心从应用程序中找出执行过程中重复运行的行为模式,这些模式在指导体系结构设计中的ipc等控制流行为上,具有非常好的参考价值。
32.但是,因为bbv或者循环种类分析方法并没有统计组件的流水线时序行为,随着模拟器的模拟精度的提升,当体系结构设计师需要对特定组件比如alu(arithmetic logic unit,基本逻辑单元)或cache存储单元进行测试的时候,bbv或者循环种类分析方法采样出来的热点指令流片段并不能反应特定组件的热点行为,对这些热点指令流片段进行组件的
优化开发并没有任何指导意义,模拟器测试这些特定组件的性能和功率的运行时间又会再一次加长。
33.为此模拟器需要基于组件的行为重新寻找热点的采样片段,但是由于各个组件的行为不同,每个组件的行为在指令流的层面上很难找到一个通用的方法去分析组件的行为,如何在应用程序运行的过程中,找到特定组件工作运行的热点指令流片段,一直是体系结构设计和开发中一个难以解决的问题。
34.基于上述现有技术存在的问题,本技术拟提供一种基于芯片设计的组件优化方法、装置、计算机设备及存储介质,通过从预设应用程序的多个指令流片段运行出的组件行为中筛选出目标组件的多个组件行为,通过聚类分析,从多个组件行为中找出代表目标组件的热点组件行为,利用模拟器对热点组件行为对应的指令流片段进行测试,根据测试结果优化目标组件的设计,实现从预设应用程序的指令流中筛选出特定组件的热点行为的热点指令流片段,提高对目标组件的设计优化效果和效率。
35.请参考图1,为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图一,如图1所示,该方法可以包括:s10:对预设应用程序的指令流进行切分,得到多组指令流片段。
36.本实施例中,预设应用程序为用于指导芯片的体系结构设计的基准应用程序,预设应用程序的指令流为预设应用程序运行过程中的多条指令,采用体系结构模拟器模拟预设应用程序在芯片结构上运行时的总动态指令流,为了提高预设应用程序在体系结构模拟器中的运行速度,将总动态指令流切分为多组指令流片段,每组指令流片段中包含多条指令。
37.示例的,体系结构模拟器可以为虚拟操作系统模拟器(quick emulator,qemu)。
38.s20:模拟运行多组指令流片段,获取目标组件对应的多个组件行为。
39.本实施例中,芯片的体系结构设计是由多个组件、组件之间的排列以及组件之间的交互组成的,组件行为是指令在芯片的不同组件上运行时组件所表现的行为,将多组指令流片段并行输入体系结构模拟器,体系结构模拟器在运行多组指令流片段时,会记录运行指令流片段时的日志,日志中记载有模拟多组指令流片段在芯片的多个组件上运行时产生的组件行为,目标组件为芯片的多个组件中的重点组件或代表组件,通过对多组指令流片段对应的日志中记载的组件行为进行统计,将属于目标组件的相同组件行为聚类为组件行为族(component behavior group,cbg),得到目标组件的多个组件行为。
40.s30:采用预设转换规则,将多个组件行为转换为多个组件行为向量。
41.本实施例中,预设转换规则用于根据组件行为的行为特征进行向量转换,针对不同的组件行为提供不同的转换规则,体系结构模拟器对每个组件行为的行为特征进行统计,并按照组件行为对应的转换规则,将组件行为转换为组件行为向量。
42.在一些实施例中,上述s30中采用预设转换规则,将多个组件行为转换为多个组件行为向量的过程可以包括:根据多个组件行为的模拟运行日志,采用预设转换规则,将多个组件行为转换为多个组件行为向量。
43.本实施例中,体系结构模拟器在模拟运行多组指令流片段时,根据模拟运行日志中记载的组件行为,统计每个组件行为的行为特征,具体可以按照不同维度或者不同类型
进行行为特征的统计,并将每个组件行为在多个维度或者多个类型将的行为特征转换为组件行为向量。
44.示例的,表1为本技术实施例提供的一种组件行为转换规则,如表1所示,组件行为包括:组件流水线运行时序、表格类命中、表格类未命中、组件信号传递和组件运算,其中,组件流水线运行时序包括组件运行的多种流水线的时序、组件信号传递包括组件传递的多种类型信号、运算包括组件的多种运算行为。
45.表1 本技术实施例提供的一种组件行为转换规则
组件行为转换规则备注组件流水线运行时序记录运行的流水线次数表格类命中记录命中次数用于cache等表格类未命中记录未命中次数用于cache等组件信号传递记录不同种类的信号传递次数运算种类分类记录不同种运算种类组件运行的次数用于alu或者agu等
每种组件行为具有对应的向量转换规则,其中,组件流水线运行时序的转换规则为统计组件运行不同类型的流水线的次数,按照流水线的类型,将多种类型流水线的运行次数转换为对应的组件流水线运行向量;表格类命中的转换规则为统计不同数据的命中次数,按照数据类型,将多种类型数据的命中次数转换为对应的表格类命中向量;表格类未命中的转换规则为统计不同数据的未命中次数,按照数据类型,将多种类型数据的未命中次数转换为对应的表格类未命中向量;组件信号传递的转换规则为统计不同类型的信号的传递次数,根据信号类型,将多种类型信号的传递次数转换为对应的组件信号传递向量;组件运算的转换规则为统计不同运算种类的运算次数,根据运算种类,将多种类型运算的运算次数转换为对应的组件运算向量。
46.需要说明的是,一些组件行为是芯片中各种组件均会运行的行为,另外一些组件行为芯片中特定组件运行的行为,例如表格类命中和表格类命中行为一般是高速缓冲存储器(cache)组件运行的行为,组件运算行为一般为运算类组件运行的行为,运算类组件例如可以为算数逻辑单元(arithmetic logic unit,alu)或地址生成单元(address generation units,agu)。因此,可以根据组件类型,从运行日志中统计不同组件的组件行为,并根据转换规则将组件行为转换为组件行为向量。
47.s40:对多个组件行为向量进行聚类分析,确定组件行为代表向量。
48.本实施例中,将目标组件的多个组件行为根据组件行为的特征和预设转换规则转换为多个组件行为向量后,采用预设的聚类分析算法对多个组件行为向量进行聚类分析,将多个组件行为向量聚类为至少两个向量集合,每个向量集合中具有一个组件行为代表向量。
49.s50:将组件行为代表向量对应的指令流片段作为目标指令流片段,目标指令流片段用于获取目标组件的设计优化方案。
50.本实施例中,通过聚类分析从多个组件行为向量中得到至少两个组件行为代表向量后,根据每个组件行为代表向量对应的组件行为,组件行为代表向量对应的组件行为是目标组件的热点行为,确定该组件行为所属的指令流片段为目标指令流片段,目标指令流片段是可以反应目标组件的热点行为的指令流片段,通过运行目标指令流片段,获取目标
组件设计中导致流水线时序不合理的部分,对目标组件的体系结构进行修改,直至目标指令流片段的运行结构达到预设效果。
51.下面结合图2对切分预设应用程序的指令流得到多组指令流片段的一种实现方式进行详细说明。
52.请参考图2,为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图二,如图2所示,上述s10中对预设应用程序的指令流进行切分,得到多组指令流片段的过程,可以包括:s11:从预设应用程序中获取目标应用子程序的指令流片段。
53.预设应用程序是由多段不同的应用子程序以及内核驱动程序构成的,多个应用子程序和内核驱动程序按照预设排列顺序循环运行,为了组件的设计优化效率,无需采用整个预设应用程序的指令流,只需要从预设应用程序中获取目标应用子程序的指令流片段,其中,目标应用子程序可以为多个应用子程序的核心应用子程序。
54.s12:按照预设划分方法对目标应用子程序的指令流片段进行划分,得到多组指令流片段,其中,每组包含相同数量的指令。
55.本实施例中,从预设应用程序中获取到目标应用子程序的多个指令流片段后,将目标应用子程序的多个指令流片段组合为目标应用子程序的完整指令流,预设划分方法用于定义划分目标应用子程序的完整指令流的方式,采用预设划分方法,可以将目标应用子程序的完整指令流划分为多组指令流片段,每组指令流片段中包含若干条指令。
56.在一些实施例中,预设划分方法为平均划分法,通过平均划分法,将目标应用子程序的完整指令流划分为多组指令流片段,每组指令流片段中包含的指令数量相同。
57.示例的,请参考图3,为本技术实施例提供的一种指令流划分的示意图,如图3所示,预设应用程序包括应用子程序1、应用子程序2和内核驱动程序等,应用子程序1、应用子程序2和内核驱动程序按照预设顺序运行,从预设应用程序中获取应用子程序1的指令流片段,将应用子程序1的指令流片段组合为应用子程序1的完整指令流,通过指令流切分,得到多组包含n条指令的指令流片段。
58.以下结合图4对获取目标组件对应的多个组件行为的一种实现方式进行详细说明。
59.请参考图4,为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图三,如图4所示,上述s20中模拟运行多组指令流片段,获取目标组件对应的多个组件行为的过程,可以包括:s21:模拟运行多组指令流片段,获取各指令流片段对应多个组件的组件行为。
60.本实施例中,获取到多组指令流片段之后,将所有的多组指令流片段并行输入体系结构模拟器,体系结构模拟器通过日志输出多组指令流片段在体系结构模拟器中造成的组件行为,按照不同的组件对组件行为进行聚类,得到多个组件的组件行为,每个组件包括多个组件行为。
61.s22:从多个组件的组件行为中筛选出目标组件对应的多个组件行为。
62.本实施例中,目标组件是芯片体系结构设计中的代表组件或者当前需要优化的组件,通过过滤器设置目标组件的标识,以从多个组件的组件行为中过滤得到目标组件对应的多个组件行为,其中,目标组件的数量可以为一个或者多个。
63.示例的,表2为过滤前后的组件行为,如表2所示,在过滤前的每一轮循环中生成的组件行为包括:针对多个组件x unit、y unit、a unit、b unit的组件行为,若目标组件为x unit和y unit,则从多个组件的组件行为中过滤出x unit和y unit的组件行为。
64.表2 过滤前后的组件行为示例的,请参考图5,为本技术实施例提供的生成组件行为向量的流程框图,如图5所示,将多组指令流片段并行输入体系结构模拟器,输出运行各组指令流片段的指令流日志,从多个指令流日志中统计得到多个组件的组件行为后,将多个组件的组件行为输入过滤器,得到目标组件的多个组件行为,采用预设转换规则,将目标组件的多个组件行为转换为对应的组件行为向量。
65.需要说明的是,过滤器可以与体系结构模拟器相互独立,也可以为体系结构模拟器中的一个过滤单元,将组件行为转换为组件行为向量的过程实际上也是在体系结构模拟器中完成的。
66.以下结合图6对通过对多个组件行为向量进行聚类分析确定组件行为代表向量的一种实现方式进行详细说明。
67.请参考图6,为本技术实施例提供的基于芯片设计的组件优化方法的流程示意图四,如图6所示,上述s40中对多个组件行为向量进行聚类分析,确定组件行为代表向量的过程,可以包括:s41:根据预设聚类数量,采用k均值聚类算法从多个组件行为向量中确定预设聚类数量的初始组件行为代表向量。
68.本实施例中,k均值聚类算法又称为kmeans算法,在进行k均值聚类时,先确定聚类数量,聚类数量用于表示对多个组件行为向量进行聚类的组数,在迭代开始前,将多个组件行为向量分为预设聚类数量的子集,对每个子集中的多个组件行为向量进行计算,确定每个子集中的初始组件行为代表向量,初始组件行为代表向量的数量为聚类数量,聚类数量至少为2个。
69.s42:根据初始组件行为代表向量,对多个组件行为向量进行聚类分析,得到预设聚类数量的初始聚类子集。
70.本实施例中,以初始组件行为代表向量作为聚类中心,通过聚类分析,确定其余多个组件行为向量与各初始组件行为代表向量的距离,将其余多个组件行为向量分配给距离其最近的初始组件行为代表向量,使其他多个组件行为向量分别与对应的初始组件行为代表向量构成初始聚类子集。
71.s43:对初始聚类子集进行迭代聚类,得到预设聚类数量的组件行为代表向量。
72.本实施例中,对于每个初始聚类子集中的多个组件行为代表向量,重新计算每个初始聚类子集的组件行为代表向量,直至满足预设迭代停止条件后停止迭代,最终的多个聚类子集的组件行为代表向量即为多个组件行为的组件行为代表向量。
73.在一种可能的实现方式中,上述s43中对初始聚类子集进行迭代聚类,得到预设聚类数量的组件行为代表向量的过程,可以包括:对初始聚类子集进行迭代聚类,直至相邻两次聚类结果的变化范围小于预设阈值,确定预设聚类数量的组件行为代表向量。
74.本实施例中,预设迭代停止条件为两次聚类结果的变化范围小于预设阈值,即两次聚类结果中被重新分配给不同聚类子集的组件行为向量的数量小于预设数量阈值,每进行一次聚类,将当前聚类结果与前一次聚类结果进行比较,若两次聚类结果的变化范围大于或等于预设阈值,则表示不满足预设迭代停止条件,对当前聚类结果重新进行聚类;若两次聚类结果的变化范围小于预设阈值,则表示满足预设迭代停止条件,当前聚类结果即为最终的聚类结果,各聚类子集的聚类中心对应的组件行为向量为组件行为代表向量。
75.示例的,请参考图7,为本技术实施例提供的一种聚类过程示意图,如图7所示,以聚类数量为2为例,将多个组件行为向量分为两组,计算每组的初始组件行为代表向量,重新计算其余多个组件行为向量与两个初始组件行为代表向量的距离,得到两个初始聚类子集,对两个初始聚类子集重新进行多轮聚类,直至两次聚类结果满足预设迭代停止条件停止迭代,两个聚类子集的聚类中心对应的组件行为向量为组件行为代表向量。
76.在一些实施例中,可以在每次聚类时,计算每次聚类结果的贝叶斯信息度量(bayesian information criterion,bic),确定bic值对应的最高的k值,在迭代至第k次时停止迭代,第k次聚类结果中各聚类子集的聚类中心对应的组件行为向量为组件行为代表向量。
77.示例的,bic值的计算公式可以为:其中,l为似然函数,n为样本大小,m为参数数量。
78.需要说明的是,迭代停止条件还可以为两次聚类结果的聚类中心对应的组件行为向量没有发生改变,或者聚类子集内各个组件行为向量的误差平方和达到局部最小。
79.上述实施例提供的基于芯片设计的组件优化方法,通过模拟运行预设应用程序的多组指令流片段,获取目标组件对应的多个组件行为,通过对多个组件行为的组件行为向量进行聚类确定组件行为代表向量,以将组件行为代表向量对应的指令流片段作为可以代表目标组件的热点行为的目标指令流片段,利用模拟器根据目标指令流片段的测试结果优化目标组件的设计,提高目标组件的设计优化效果,进而缩短利用模拟器验证目标组件设
计的流程和时间,加速芯片体系结构设计的优化周期。
80.基于上述确定的目标组件的目标指令流片段,该方法还可以包括:以目标指令流片段作为特征片段,采用权重求和计算,获取目标组件的完整行为特征,完整行为特征用于分析获取目标组件的设计优化方案。
81.本实施例中,确定目标组件的多个目标指令流片段为目标组件的特征片段,通过体系结构模拟器运行目标指令流片段,得到目标组件的特定组件行为,根据目标指令流片段对应的目标组件行为代表向量在聚类分析时得到的权重,对多个特定组件行为的特征进行加权求和,得到目标组件的完整行为特征,分析目标组件的完整行为特征,确定目标组件的体系结果设计中导致流水线时序不合理的部分,优化目标组件的体系结构设计。
82.通过反复迭代目标指令流片段,直至目标组件的体系结构设计的优化到达预期效果,然后验证预设应用程序的全指令流在目标组件上的运行效果,若全指令流的运行结果不满足预设要求,再进一步优化目标组件的体系结构设计,直至运行结果满足预设要求,完成目标组件的体系结构设计的优化。
83.上述实施例提供的基于芯片设计的组件优化方法,通过确定代表目标组件热点行为的目标指令流片段,由于运行目标指令流片段相对于预设应用程序的全指令流片段的时间更快,根据目标指令流片段的运行结果优化目标组件的体系结构设计,可以加速组件体系结构设计的优化周期,提高芯片设计的速度。
84.在上述实施例的基础上,本技术实施例还提供一种基于芯片设计的组件优化装置。请参考图8,为本技术实施例提供的基于芯片设计的组件优化装置的结构示意图,如图8所示,该装置包括:指令流切分模块10,用于对预设应用程序的指令流进行切分,得到多个指令流片段;组件行为确定模块20,用于模拟运行多个指令流片段,获取多个指令流片段对应的多个组件行为;向量转换模块30,用于采用预设转换规则,将多个组件行为转换为多个组件行为向量;聚类分析模块40,用于对多个组件行为向量进行聚类分析,确定组件行为代表向量;目标片段确定模块50,用于将组件行为代表向量对应的指令流片段作为目标指令流片段,目标指令流片段用于获取芯片的设计优化方案。
85.可选的,指令流切分模块10,包括:指令流片段获取单元,用于从预设应用程序中获取目标应用子程序的指令流片段;指令流切分单元,用于按照预设划分方法对目标应用子程序的指令流片段进行划分,得到多组指令流片段,其中,每组包含相同数量的指令。
86.可选的,组件行为确定模块20,包括:组件行为获取单元,用于模拟运行多组指令流片段,获取各指令流片段对应多个组件的组件行为;组件行为筛选单元,用于从多个组件的组件行为中筛选出目标组件对应的多个组
件行为。
87.可选的,向量转换模块30,具体用于根据多个组件行为的模拟运行日志,采用预设转换规则,将多个组件行为转换为多个组件行为向量。
88.可选的,该装置还包括:权重求和模块,用于以目标指令流片段作为特征片段,采用权重求和计算,获取目标组件的完整行为特征,完整行为特征用于分析获取目标组件的设计优化方案。
89.可选的,聚类分析模块40,包括:初始代表向量确定单元,用于根据预设聚类数量,采用k均值聚类算法从多个组件行为向量中确定预设聚类数量的初始组件行为代表向量;迭代聚类单元,用于根据初始组件行为代表向量,对多个组件行为向量进行聚类分析,得到预设聚类数量的初始聚类子集;代表向量确定单元,用于对初始聚类子集进行迭代聚类,得到预设聚类数量的组件行为代表向量。
90.可选的,代表向量确定单元,具体用于对初始聚类子集进行迭代聚类,直至相邻两次聚类结果的变化范围小于预设阈值,确定预设聚类数量的组件行为代表向量。
91.上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
92.以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
93.请参考图9,为本技术实施例提供的计算机设备的示意图,如图9所示,该计算机设备100包括:处理器101、存储介质102。存储介质102存储有处理器101可执行的计算机程序,处理器101执行计算机程序时,实现上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
94.可选地,本技术还提供一种存储介质,例如计算机可读存储介质,存储介质上存储有计算机程序,该计算机程序在被处理器执行时用于执行上述方法实施例。
95.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
96.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
97.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
98.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
99.上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献