一种芯片功耗的确定方法、装置及电子设备与流程
未命名
07-22
阅读:131
评论:0
1.本技术涉及芯片技术领域,尤其涉及一种芯片功耗的确定方法、装置及电子设备。
背景技术:
2.在芯片的设计过程中,需要采集芯片的功耗信息,以根据芯片的功耗信息优化芯片设计。
3.芯片包括多个硬件模块,芯片的功耗信息包括该多个硬件模块的功耗信息。通常,采集芯片的功耗信息时,可以通过依次运行芯片的性能分析程序,采集各硬件模块对应的功耗信息。
4.然而,在芯片包括的硬件模块的数量较多时,依次运行各硬件模块的性能分析程序,会导致芯片的功耗信息的收集时间较长,导致芯片的功耗分析效率较低。
技术实现要素:
5.为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种芯片功耗的确定方法、装置及电子设备。由于可以并行运行各硬件模块的性能分析程序,从而能够减少芯片的功耗信息的收集时间,提高芯片的功耗分析效率。
6.本公开的实施例提供了一种芯片功耗的确定方法,包括:首先,确定芯片包括的多个硬件模块中各硬件模块的配置信息;其次,基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本;再次,基于功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果;最后,基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
7.根据本公开实施例的另一个方面,提供了一种芯片功耗的确定装置,包括:第一确定模块,用于确定芯片包括的多个硬件模块中各硬件模块的配置信息;第二确定模块,用于基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本;运行模块,用于基于功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果;第三确定模块,用于基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
8.根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述任一的方法。
9.根据本公开实施例的另一个方面,提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述任一的方法。
10.基于本公开上述实施例提供的芯片功耗的确定方法和装置、电子设备和介质,在确定芯片的功耗时,通过芯片中各硬件模块的配置信息,确定出各硬件模块的功耗运行脚本,基于各模块的功耗运行脚本以及功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果,基于各硬件模块的功耗分析结果,可以确定出芯片的功耗信息。由于确定芯片的功耗时,可以并行运行芯片中各模块对应的功耗分析程序,使得致芯片
的功耗信息的收集时间减少,能够提高芯片的功耗分析效率。
附图说明
11.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
12.图1是本公开所适用的系统图。
13.图2是本公开一示例性实施例提供的芯片功耗的确定方法的流程图。
14.图3是本公开另一示例性实施例提供的芯片功耗的确定方法的流程图。
15.图4是本公开另一示例性实施例提供的芯片功耗的确定方法的流程图。
16.图5是本公开另一示例性实施例提供的芯片功耗的确定方法的流程图。
17.图6是本公开另一示例性实施例提供的芯片功耗的确定方法的流程图。
18.图7是本公开另一示例性实施例提供的芯片功耗的确定方法的流程图。
19.图8是本公开一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
20.图9是本公开另一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
21.图10是本公开另一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
22.图11是本公开另一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
23.图12是本公开另一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
24.图13是本公开另一示例性实施例提供的一种芯片功耗的确定装置的结构示意图。
25.图14是本公开一示例性实施例提供的一种电子设备的结构图。
具体实施方式
26.为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分实施例,而不是全部实施例,应理解,本公开不受示例性实施例的限制。
27.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
28.申请概述
29.在芯片的设计过程中,需要采集芯片的功耗信息,如芯片包括的时钟门控逻辑门的功耗信息,以根据芯片的功耗信息优化芯片设计,从而能够保证芯片的迭代设计。
30.芯片包括多个硬件模块,芯片的功耗信息包括该多个硬件模块的功耗信息。通常,采集芯片的功耗信息时,可以通过依次运行芯片的性能分析程序,采集各硬件模块对应的功耗信息。
31.例如,大型的系统级芯片(system on chip,soc)通常包括多个硬件模块,如,控制逻辑模块、中央处理器(central processing unit,cpu)模块、数字信号处理器(digital signal processing,dsp)模块、嵌入的存储器模块、和外部进行通讯的接口模块等。在soc的设计过程中,需要采集soc各硬件模块的功耗信息,即采集各硬件模块的时钟门控逻辑门的功耗信息。通过电子设计自动化(electronic design automation,eda)工具依次运行
soc各硬件模块的性能分析程序,从而采集各硬件模块对应的功耗信息。
32.然而,在芯片包括的硬件模块的数量较多时,依次运行各硬件模块的性能分析程序,会导致芯片的功耗信息的收集时间较长,导致芯片的功耗分析效率较低。
33.示例性系统
34.图1示出了可以应用于本公开的实施例的芯片功耗的确定方法的示例性系统架构。
35.如图1所示,系统架构可以包括电子设备100。电子设备100可以包括功耗收集单元101、功耗分析单元102以及功耗确定单元103。
36.功耗收集单元101,用于确定芯片中各硬件模块的配置信息,并基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本。
37.芯片可以为电子设备100包括的芯片,也可以为电子设备100之外的芯片。当芯片为电子设备100之外的芯片时,系统架构还可以包括该芯片。本公开实施例中对系统架构中电子设备100与芯片的包含关系并不进行限定。图1以系统架构中芯片为电子设备100之外的芯片为例进行示例性示意。
38.示例性地,当芯片为电子设备100之外的芯片时,功耗收集单元101可以获取用户输入的芯片的配置文件,并基于该配置文件确定芯片中各硬件模块的配置信息。当芯片为电子设备100之外的芯片时,功耗收集单元101也可以通过与芯片连接,获取芯片的配置文件,并基于该配置文件确定芯片中各硬件模块的配置信息。功耗分析单元102,可以用于基于功耗分析程序,运行功耗收集单元101确定的各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。
39.功耗确定单元103,可以用于基于功耗分析单元102得到的各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
40.示例性方法
41.下面对本公开实施例提供的芯片功耗的确定方法进行描述。
42.图2为本公开实施例提供的一种芯片功耗的确定方法的流程示意图,该方法可以应用于电子设备上。如图2所示,该方法包括以下步骤201-步骤204。
43.步骤201、确定芯片包括的多个硬件模块中各硬件模块的配置信息。
44.芯片中的多个硬件模块可以包括:芯片的控制逻辑模块、cpu模块、dsp模块、嵌入的存储器模块、和外部进行通讯的接口模块等。本公开实施例对芯片包括的多个硬件模块的具体类型并不进行限定。
45.硬件模块可以包括带时钟门控功能的逻辑门和不带时钟门控功能的逻辑门。带时钟门控功能的逻辑门可以为一个,也可以为多个。时钟门控技术是通过关闭芯片上暂时用不到的功能和该功能对应的时钟,以达到降低功耗的目的。在时钟门控技术中,通过一个时钟门控信号与一个时钟信号作逻辑运算,以达到对该时钟信号进行门控的目的。例如,用一个时钟门控信号和一个时钟信号相与,可以控制该时钟信号的起作用时间,从而控制时钟门控信号的时间。由于待测目标(如soc)可以包括多个不同功能的硬件模块,因此待测目标中可以包括多路时钟信号,每一路时钟信号均可采用时钟门控技术进行控制。
46.硬件模块的配置信息,可以包括硬件模块的设计代码的目录、硬件模块的波形文件的目录、硬件模块的模块名、硬件模块的时钟信号名以及时钟采样方式、硬件模块的模块
复位信号名以及复位触发方式。
47.在一些示例中,硬件模块的配置信息的数据结构可以为表格(excel)或另一种标记语言(yet another markup language,yaml)等。本公开实施例中对硬件模块的配置信息的具体数据结构并不进行限定。
48.在一些示例中,硬件模块的设计代码的目录,可以用于指示硬件模块的设计代码的存储位置。硬件模块的波形文件的目录,可以用于指示硬件模块的仿真波形文件的存储位置。
49.在一些示例中,硬件模块的仿真波形文件,是预设时间段内硬件模块在不同运行状态(如空闲状态,数据传输等状态)下的波形。预设时间段可以为预设数量的时钟周期。时钟周期也称为振荡周期,在一个时钟周期内,芯片仅完成一个最基本的动作。预设数量可以根据实际情况设定,本公开实施例中对此并不进行限定。例如,预设数量可以为100,即预设时间段可以为100个时钟周期。
50.硬件模块的仿真波形文件可以通过芯片仿真工具产生,如通过编译型verilog模拟器(verilog compile simulator,vcs)产生,也可以通过芯片仿真工具(irun)或者芯片仿真工具(ncverilog)产生,本公开实施例中对芯片仿真工具的具体类型并不进行限定。硬件模块的仿真波形文件可以为快速信号数据库(fast signal data base,fsdb)文件。
51.在一些示例中,硬件模块的时钟采样方式,可以包括上升沿采样或下降沿采样。硬件模块的复位触发方式,可以包括上升沿触发、下降沿触发或电平触发。
52.在一些示例中,在需要确定芯片功耗时,可以先运行功耗收集程序,通过功耗收集程序输入启动命令。在输入启动命令之后,功耗收集程序可以自动装载用户输入的芯片的配置文件,从而功耗收集程序可以确定芯片包括的多个硬件模块中各硬件模块的配置信息。
53.功耗收集程序可以为多进程并发程序。例如,多进程并发程序可以为多进程并发(rust)程序,也可以为多进程并发(fork)程序,还可以为多进程并发(python multiprocessing)程序,还可以为其他类型的多进程并发程序,本公开实施例中对多进程并发程序的具体类型并不进行限定。在功耗收集程序确定芯片包括的多个硬件模块中各硬件模块的配置信息之后,功耗收集程序可以将硬件模块中各硬件模块的配置信息采用如python脚本语言(也可以为javascript脚本语言或perl等脚本语言)进行编写,本公开实施例中对各硬件模块的配置信息采用的脚本语言的具体类型并不进行限定。编写之后的各硬件模块的配置信息可以运行于如linux操作系统(也可以运行与windows操作系统或者macos操作系统等操作系统)上,本公开实施例中对编写之后的各硬件模块的配置信息可以运行的操作系统的具体类型并不进行限定。
54.步骤202、基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本。
55.硬件模块的功耗运行脚本为功耗分析程序(也可以称为芯片性能分析工具)可以运行的脚本数据。
56.硬件模块的功耗运行脚本可以为工具命令语言(tool command language,tcl)脚本,硬件模块的功耗运行脚本还可以为面向对象(ruby)脚本。本公开实施例中对硬件模块的功耗运行脚本的具体数据结构并不进行限定,硬件模块的功耗运行脚本为功耗分析程序可以运行的脚本数据即可。
57.在一些示例中,基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本,可以为基于各硬件模块的配置信息,并行确定各硬件模块的功耗运行脚本,能够减少各硬件模块的功耗运行脚本的确定时间。
58.步骤203、基于功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。
59.在得到各硬件模块的功耗运行脚本之后,可以基于功耗分析程序,运行各硬件模块的功耗运行脚本,从而得到各硬件模块的功耗分析结果。也就是说,在得到各硬件模块的功耗运行脚本之后,可以基于功耗分析程序同时运行各硬件模块的功耗运行脚本,从而可以同时得到各硬件模块的功耗分析结果。
60.在一些示例中,硬件模块的功耗分析结果可以包括是硬件模块对应的波形,即在预设时间段内硬件模块在不同运行状态下的波形。
61.在另一些示例中,硬件模块的功耗分析结果可以包括硬件模块对应的功耗信息表,功耗信息表可以包括各硬件模块对应的信号名称、各硬件模块对应的寄存器名称和各硬件模块对应的时序信息等。
62.在一些示例中,基于功耗分析程序,运行各硬件模块的功耗运行脚本,可以为基于功耗分析程序,并行运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。由于可以并行运行各硬件模块的功耗运行脚本,能够减少得到各硬件模块的功耗分析结果的时间,从而提高芯片的功耗分析效率。
63.步骤204、基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
64.在得到各硬件模块的功耗分析结果,可以基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
65.在一些示例中,硬件模块的功耗信息可以包括硬件模块的时钟门控比(clock gating ratio,cgr)和时钟门控效率(clock gating efficiency,cge)。硬件模块的功耗信息还可以包括其他功耗信息,本公开实施例中对硬件模块的功耗信息的具体类型不进行限定。
66.时钟门控比即硬件模块的带时钟门控功能的逻辑门的数值,与该硬件模块的全部逻辑门的数值的比值。
67.时钟门控效率即硬件模块的所有的带时钟门控功能的逻辑门的时钟门控效率的总和,与该硬件模块的全部逻辑门数的比值。
68.带时钟门控功能的逻辑门的时钟门控效率即该带时钟门控功能的逻辑门的时钟被门控的周期数,与总时钟周期数的比值。总时钟周期数可以与该硬件模块的仿真波形文件对应的时钟周期数相同。
69.在一些示例中,在确定出各硬件模块的功耗信息,即各硬件模块的时钟门控比和时钟门控效率之后,可以生成显示页面,在该显示界面上可以显示各硬件模块的功耗信息,即在该显示界面上可以显示各硬件模块的时钟门控比和时钟门控效率。
70.在一些示例中,在得到各硬件模块的功耗信息之后,可以基于各硬件模块的功耗信息,确定芯片的功耗信息。
71.在一些实施例中,在得到各硬件模块的功耗信息之后,可以将各硬件模块的功耗信息相加,得到芯片的功耗信息。
72.本公开实施例提供的方案通过芯片中各硬件模块的配置信息,可以并行确定出各硬件模块的功耗运行脚本,从而可以基于各模块的功耗运行脚本以及功耗分析程序,可以并行运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果,基于各硬件模块的功耗分析结果,可以确定出芯片的功耗信息。由于确定芯片的功耗时,可以并行运行芯片中各模块对应的功耗分析程序。因此,能够减少芯片的功耗信息的收集时间,提高芯片的功耗分析效率。
73.在一些实施例中,如图3所示,在上述图2所示实施例的基础上,上述步骤202可以包括步骤301-步骤302。
74.步骤301、基于多线程程序,启动各硬件模块对应的处理线程。
75.多线程程序中可以包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个执行的线程来完成各自的任务。
76.在一些示例中,基于多线程程序,启动各硬件模块对应的处理线程,可以为基于多线程程序,并行启动各硬件模块对应的处理线程,能够减少各硬件模块对应的处理线程的启动时间。故基于各硬件模块的配置信息和处理线程,生成各硬件模块的功耗运行脚本时,能够减少生成各硬件模块的功耗运行脚本的时间。
77.在一些示例中,多线程程序可以包括分布式集群管理系统程序(load sharing facility,lsf)。lsf可以负责计算资源的管理和批处理作业的调度。多线程程序还可以为其他程序,本公开实施例中对多线程程序的具体类型并不进行限定。
78.在一些示例中,在确定芯片包括的多个硬件模块中各硬件模块的配置信息之后,多线程程序可以根据芯片包括的硬件模块的数量,同时启动各硬件模块对应的处理线程。
79.硬件模块对应的处理线程用于基于该硬件模块的配置信息,生成该硬件模块的功耗运行脚本。硬件模块对应的处理线程还用于调用功耗分析程序,从而可以基于功耗分析程序,可以并行运行该硬件模块的功耗运行脚本,得到该硬件模块的功耗分析结果。
80.在一些示例中,基于多线程程序,并行启动各硬件模块对应的处理线程,可以包括:在功耗收集程序确定硬件模块中各硬件模块的配置信息之后,功耗收集程序可以进行多线程作业提交,即功耗收集程序可以调用多线程程序,从而多线程程序可以并行启动各硬件模块对应的处理线程。
81.例如,在功耗收集程序为多进程并发(python multiprocessing)程序,多线程程序为lsf时,功耗收集程序可以从硬件模块中各硬件模块的配置信息采用如python脚本语言进行编写。之后,多进程并发程序可以先定义每个硬件模块对应的线程函数,线程函数的参数可以为该硬件模块的模块名以及硬件模块的配置信息的路径。之后,可以通过multiprocessing中的pool自带的apply_async函数,通过传参方式,将每个模块对应的线程函数对应的参数传入到multiprocessing中的pool中。之后,多线程程序为lsf可以启动多个lsf作业(即各硬件模块对应的处理线程),并等待全部线程结束。
82.步骤302、基于各硬件模块的配置信息和处理线程,生成各硬件模块的功耗运行脚本。
83.在一些示例中,基于各硬件模块的配置信息和处理线程,生成各硬件模块的功耗运行脚本,可以包括:硬件模块对应的处理线程根据该硬件模块的配置信息,生成各硬件模块的功耗运行脚本。功耗运行脚本,即功耗分析程序可以运行的脚本。
84.功耗分析程序(也可以称为性能分析工具),可以运行各硬件模块对应的功耗运行脚本,从而能够得到各硬件模块对应的功耗信息。
85.在一些示例中,功耗分析程序可以为分析程序(powerpro),功耗分析程序还可以为分析程序(power analyzer)。功耗分析程序还可以为其他程序,本公开实施例中对功耗分析程序的具体类型并不进行限定。
86.本公开实施例提供的方案通过多线程程序,可以并行启动各硬件模块对应的处理线程,通过各硬件模块对应的处理线程,可以更加快速的生成各硬件模块的功耗运行脚本。从而基于功耗分析程序可以并行运行各硬件模块的功耗运行脚本,可以更加快速的得到各硬件模块的功耗分析结果,因此,能够进一步使得致芯片的功耗信息的收集时间减少,能够提高芯片的功耗分析效率。
87.在一些实施例中,如图4所示,在上述图3所示实施例的基础上,上述步骤302可以包括步骤401-步骤402。
88.步骤401、基于各硬件模块的处理线程,将各硬件模块的配置信息的数据结构转换为预设数据结构,得到各硬件模块的功耗运行脚本的结构数据。
89.预设数据结构可以为功耗运行程序对应的运行脚本的结构数据。例如,在功耗分析程序为分析程序(powerpro)时,预设数据结构,可以为分析程序(powerpro)对应的运行脚本的数据结构,如tcl脚本的数据结构。
90.也就是说,由于硬件模块的配置信息的数据结构可以为表格(excel)或另一种标记语言(yaml),其并不是功耗运行程序对应的功耗运行脚本的结构数据,因此,在基于多线程程序,可以并行启动各硬件模块对应的处理线程之后,各硬件模块的处理线程,可以将各硬件模块的配置信息的数据结构转换为功耗分析程序对应的数据结构,从而得到各硬件模块的功耗运行脚本的结构数据。
91.在一些示例中,硬件模块的功耗运行脚本的结构数据可以包括该硬件模块对应的设计代码的目录、该硬件模块对应的波形文件的目录、该硬件模块对应的模块名、该硬件模块对应的时钟信号名以及时钟采样方式、该硬件模块对应的模块复位信号名以及复位触发方式。
92.步骤402、基于各硬件模块的功耗运行脚本的结构数据,生成各硬件模块对应的功耗运行脚本。
93.在基于各硬件模块的处理线程,将各硬件模块的配置信息的数据结构转换为预设数据结构,得到各硬件模块的功耗运行脚本的结构数据之后,各硬件模块的处理线程,可以基于各硬件模块的功耗运行脚本的结构数据,生成各硬件模块对应的功耗运行脚本。
94.本公开实施例提供的方案通过各硬件模块的处理线程,可以将各硬件模块的配置信息的数据结构转换为功耗运行程序对应的功耗运行脚本的结构数据,能够更加快速的生成各硬件模块对应的功耗运行脚本。从而基于功耗分析程序可以并行运行各硬件模块的功耗运行脚本,从而可以更加快速的得到各硬件模块的功耗分析结果,因此,能够进一步使得致芯片的功耗信息的收集时间减少,能够提高芯片的功耗分析效率。
95.在一些实施例中,如图5所示,在上述图2所示实施例的基础上,上述步骤203可以包括步骤501-步骤502。
96.步骤501、基于各硬件模块的处理线程,分别调用功耗分析程序,得到各硬件模块
对应的功耗分析子程序。
97.在基于各硬件模块的配置信息,并行确定各硬件模块的功耗运行脚本之后,可以基于各硬件模块的处理线程,分别调用功耗分析程序,从而得到各硬件模块对应的功耗分析子程序,通过功耗分析子程序可以得到各硬件模块的功耗分析结果。
98.步骤502、基于各硬件模块对应的功耗分析子程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。
99.在分别调用功耗分析程序,得到各硬件模块对应的功耗分析子程序之后,可以基于各硬件模块对应的功耗分析子程序,并行运行各硬件模块的功耗运行脚本,即各硬件模块对应的功耗分析子程序可以同时运行各硬件模块的功耗运行脚本,从而能够得到各硬件模块的功耗分析结果。
100.在一些示例中,基于各硬件模块对应的功耗分析子程序,运行各硬件模块的功耗运行脚本,可以为基于各硬件模块对应的功耗分析子程序,并行运行各硬件模块的功耗运行脚本,能够减少得到各硬件模块的功耗分析结果的时间。故基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息时,能够减少确定各硬件模块的功耗信息的时间,从而提高芯片的功耗分析效率。
101.在一些示例中,硬件模块的功耗分析结果可以包括是硬件模块对应的波形,即在预设时间段内硬件模块在不同运行状态下的波形。硬件模块的功耗分析结果还可以包括其他功耗分析结果,本公开实施例中对硬件模块的功耗分析结果的具体类型并不进行限定。
102.本公开实施例提供的方案通过各硬件模块的处理线程,分别调用功耗分析程序,得到各硬件模块对应的功耗分析子程序,从而通过各硬件模块对应的功耗分析子程序可以并行运行各硬件模块的功耗运行脚本,能够更加快速的得到各硬件模块的功耗分析结果。因此,能够进一步使得致芯片的功耗信息的收集时间减少,能够提高芯片的功耗分析效率。
103.在一些实施例中,如图6所示,在上述图2所示实施例的基础上,上述步骤204可以包括步骤601-步骤602。
104.步骤601、基于各硬件模块的功耗分析结果,确定各硬件模块的时钟门控比和时钟门控效率。
105.在功耗分析子程序得到各硬件模块的功耗分析结果之后,功耗分析子程序可以基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
106.在一些示例中,硬件模块的功耗信息可以包括该硬件模块对应的时钟门控比和时钟门控效率。硬件模块的功耗信息还可以包括其他类型的功耗信息,本公开实施例中对硬件模块的功耗信息的其他类型并不进行限定。本公开实施例中是以硬件模块的功耗信息包括该硬件模块对应的时钟门控比和时钟门控效率为例进行示意说明。
107.在一些示例中,功耗分析子程序得到硬件模块的功耗分析结果之后,功耗分析子程序可以先确定该硬件模块的带时钟门控功能的逻辑门的数量,以及该硬件模块的全部逻辑门数,从而可以确定出该硬件模块的时钟门控比,即该硬件模块的带时钟门控功能的逻辑门的数量与该硬件模块的全部逻辑门数的比值。
108.步骤602、基于各硬件模块的时钟门控比和时钟门控效率,确定各硬件模块的功耗信息。
109.在一些示例中,在确定出各硬件模块的时钟门控比和时钟门控效率之后,可以将
各硬件模块的时钟门控比和时钟门控效率汇总到一个统一的页面(如html网页页面)上,从而可以基于各硬件模块的时钟门控比和时钟门控效率,确定各硬件模块的功耗信息。
110.本公开实施例提供的方案通过各硬件模块的功耗分析结果,可以并行确定出各硬件模块的时钟门控比和时钟门控效率,从而可以并行确定出各硬件模块的功耗信息。由于可以并行确定出各硬件模块的功耗信息,因此,能够更加快速的得到芯片的功耗信息。因此,能够进一步使得致芯片的功耗信息的收集时间减少,能够提高芯片的功耗分析效率。
111.在一些实施例中,如图7所示,在上述图6所示实施例的基础上,上述步骤601可以包括步骤701-步骤702。
112.步骤701、基于各硬件模块的配置信息,确定各硬件模块的设计代码和仿真波形。
113.在功耗分析子程序得到各硬件模块的功耗分析结果之后,功耗分析子程序可以基于各硬件模块的配置信息,确定出各硬件模块的设计代码和仿真波形,从而可以基于各硬件模块的设计代码和仿真波形,得到各硬件模块的时钟门控比和时钟门控效率。
114.步骤702、基于各硬件模块的功耗分析结果,解析各硬件模块的设计代码和仿真波形,得到各硬件模块的时钟门控比和时钟门控效率。
115.在一些示例中,功耗分析子程序确定出硬件模块的设计代码之后,功耗分析子程序可以解析该硬件模块的设计代码,从而通过该硬件模块的设计代码可以确定出该硬件模块的带时钟门控功能的逻辑门的数量,以及该硬件模块的全部逻辑门数。从而可以根据该硬件模块的带时钟门控功能的逻辑门的数量以及该硬件模块的全部逻辑门数,确定出该硬件模块的时钟门控比,即该硬件模块的带时钟门控功能的逻辑门的数量与该硬件模块的全部逻辑门数的比值。
116.在一些示例中,在硬件模块的功耗分析结果包括硬件模块对应的波形时,在功耗分析子程序确定出硬件模块的仿真波形之后,功耗分析子程序可以解析该硬件模块对应的仿真波形文件,并与硬件模块对应的波形进行比对,从而能够确定出该硬件模块的每个带时钟门控功能的逻辑门的时钟门控效率,单一逻辑门时钟门控效率等于时钟被门控周期数比上总时钟周期数。从而基于该硬件模块的每个带时钟门控功能的逻辑门的时钟门控效率,能够确定出该硬件模块的所有带时钟门控功能的逻辑门的时钟门控效率的总和。进而基于该硬件模块的所有带时钟门控功能的逻辑门的时钟门控效率的总和,与该硬件模块的全部逻辑门数,可以确定出该硬件模块的时钟门控效率,即该硬件模块的每个带时钟门控功能的逻辑门的时钟门控效率与该硬件模块的全部逻辑门数的比值。
117.本公开实施例提供的方案通过确定各硬件模块的设计代码和仿真波形,可以快速的得到各硬件模块的时钟门控比和时钟门控效率。由于能够快速的得到各硬件模块的时钟门控比和时钟门控效率,从而可以快速确定出各硬件模块的功耗信息,因此,能够更加快速的得到芯片的功耗信息。
118.示例性装置
119.图8为本公开实施例提供的一种芯片功耗的确定装置,如图8所示,该芯片功耗的确定装置800包括第一确定模块801、第二确定模块802、运行模块803和第三确定模块804。
120.第一确定模块801,用于确定芯片包括的多个硬件模块中各硬件模块的配置信息。
121.第二确定模块802,用于基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本。
122.运行模块803,用于基于功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。
123.第三确定模块804,用于基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。
124.在一些示例中,如图9所示,在上述如图8所示的芯片功耗的确定装置800的基础上,第二确定模块802包括:启动单元8021和生成单元8022。
125.启动单元8021,用于基于多线程程序,并行启动各硬件模块对应的处理线程。
126.生成单元8022,用于基于各硬件模块的配置信息和处理线程,生成各硬件模块的功耗运行脚本。
127.在一些示例中,如图10所示,在上述如图9所示的芯片功耗的确定装置800的基础上,生成单元8022包括:第一生成子单元80221和第二生成子单元80222。
128.第一生成子单元80221,用于基于各硬件模块的处理线程,将各硬件模块的配置信息的数据结构转换为预设数据结构,得到各硬件模块的功耗运行脚本的结构数据。
129.第二生成子单元80222,用于基于各硬件模块的功耗运行脚本的结构数据,生成各硬件模块对应的功耗运行脚本。
130.在一些示例中,在上述图8至图10所示的芯片功耗的确定装置800中,运行模块803可以包括调用单元8031和运行单元8032。图11以图10所示的芯片功耗的确定装置800中运行模块803包括调用单元8031和运行单元8032为例进行示例性示意。
131.调用单元8031,用于基于各硬件模块的处理线程,分别调用功耗分析程序,得到各硬件模块对应的功耗分析子程序。
132.运行单元8032,用于基于各硬件模块对应的功耗分析子程序,并行运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果。
133.在一些示例中,上述图8至图11所示的芯片功耗的确定装置800中,第三确定模块804可以包括第一确定单元8041和第二确定单元8042。图12以图8所示的芯片功耗的确定装置800中第三确定模块804包括第一确定单元8041和第二确定单元8042为例进行示例性示意。
134.第一确定单元8041,用于基于各硬件模块的功耗分析结果,确定各硬件模块的时钟门控比和时钟门控效率。
135.第二确定单元8042,用于基于各硬件模块的时钟门控比和时钟门控效率,确定各硬件模块的功耗信息。
136.在一些示例中,如图13所示,上述图12所示的芯片功耗的确定装置800中,第一确定单元8041包括第一确定子单元80411和第二确定子单元80412。
137.第一确定子单元80411,用于基于各硬件模块的配置信息,确定各硬件模块的设计代码和仿真波形。
138.第二确定子单元80412,用于基于各硬件模块的功耗分析结果,解析各硬件模块的设计代码和仿真波形,得到各硬件模块的时钟门控比和时钟门控效率。
139.本装置示例性实施例对应的有益技术效果可以参见上述示例性方法部分的相应有益技术效果,在此不再赘述。
140.示例性电子设备
141.图14为本公开实施例提供的一种电子设备的结构图,如图14所示,该电子设备1400包括一个或多个处理器1401和存储器1402。
142.处理器1401可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1400中的其他组件以执行期望的功能。
143.存储器1402可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器901可以运行程序指令,以实现上文的本公开的各个实施例的芯片功耗的确定方法以及/或者其他期望的功能。
144.在一个示例中,电子设备1400还可以包括:输入装置1403和输出装置1404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
145.该输入装置1403还可以包括例如键盘、鼠标等等。
146.该输出装置1404可以向外部输出各种信息,其可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
147.当然,为了简化,图14中仅示出了该电子设备1400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1400还可以包括任何其他适当的组件。
148.示例性计算机程序产品和计算机可读存储介质
149.除了上述方法和设备以外,本公开的实施例还可以提供一种计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的芯片功耗的确定方法中的步骤。
150.计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
151.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的芯片功耗的确定方法中的步骤。
152.计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如但不限于包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
153.以上结合具体实施例描述了本公开的基本原理,但是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为其是本公开的各个实施例必须具备的。另外,上述
公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
154.本领域的技术人员可以对本公开进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
技术特征:
1.一种芯片功耗的确定方法,包括:确定芯片包括的多个硬件模块中各硬件模块的配置信息;基于所述各硬件模块的配置信息,确定所述各硬件模块的功耗运行脚本;基于功耗分析程序,运行所述各硬件模块的功耗运行脚本,得到所述各硬件模块的功耗分析结果;基于所述各硬件模块的功耗分析结果,确定所述各硬件模块的功耗信息。2.根据权利要求1所述的方法,其中,所述基于所述各硬件模块的配置信息,确定所述各硬件模块的功耗运行脚本,包括:基于多线程程序,启动所述各硬件模块对应的处理线程;基于所述各硬件模块的配置信息和处理线程,生成所述各硬件模块的功耗运行脚本。3.根据权利要求2所述的方法,其中,所述基于所述各硬件模块的配置信息和处理线程,生成所述各硬件模块的功耗运行脚本,包括:基于所述各硬件模块的处理线程,将所述各硬件模块的配置信息的数据结构转换为预设数据结构,得到所述各硬件模块的功耗运行脚本的结构数据;基于所述各硬件模块的功耗运行脚本的结构数据,生成所述各硬件模块对应的功耗运行脚本。4.根据权利要求2或3所述的方法,其中,所述基于功耗分析程序,运行所述各硬件模块的功耗运行脚本,得到所述各硬件模块的功耗分析结果,包括:基于所述各硬件模块的处理线程,分别调用所述功耗分析程序,得到所述各硬件模块对应的功耗分析子程序;基于所述各硬件模块对应的功耗分析子程序,运行所述各硬件模块的功耗运行脚本,得到所述各硬件模块的功耗分析结果。5.根据权利要求1-3中任一项所述的方法,其中,所述基于所述各硬件模块的功耗分析结果,确定所述各硬件模块的功耗信息,包括:基于所述各硬件模块的功耗分析结果,确定所述各硬件模块的时钟门控比和时钟门控效率;基于所述各硬件模块的时钟门控比和时钟门控效率,确定所述各硬件模块的功耗信息。6.根据权利要求5所述的方法,其中,所述基于所述各硬件模块的功耗分析结果,确定所述各硬件模块的时钟门控比和时钟门控效率,包括:基于所述各硬件模块的配置信息,确定所述各硬件模块的设计代码和仿真波形;基于所述各硬件模块的功耗分析结果,解析所述各硬件模块的设计代码和仿真波形,得到所述各硬件模块的时钟门控比和时钟门控效率。7.一种芯片功耗的确定装置,包括:第一确定模块,用于确定芯片包括的多个硬件模块中各硬件模块的配置信息;第二确定模块,用于基于所述各硬件模块的配置信息,确定所述各硬件模块的功耗运行脚本;运行模块,用于基于功耗分析程序,运行所述各硬件模块的功耗运行脚本,得到所述各硬件模块的功耗分析结果;
第三确定模块,用于基于所述各硬件模块的功耗分析结果,确定所述各硬件模块的功耗信息。8.根据权利要求7所述的装置,其中,所述第二确定模块,包括:启动单元,用于基于多线程程序,启动所述各硬件模块对应的处理线程;生成单元,用于基于所述各硬件模块的配置信息和处理线程,生成所述各硬件模块的功耗运行脚本。9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6任一所述的芯片功耗的确定方法。10.一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6任一所述的芯片功耗的确定方法。
技术总结
公开了一种芯片功耗的确定方法、装置及电子设备,涉及芯片技术领域,该方法包括:确定芯片包括的多个硬件模块中各硬件模块的配置信息;基于各硬件模块的配置信息,确定各硬件模块的功耗运行脚本;基于功耗分析程序,运行各硬件模块的功耗运行脚本,得到各硬件模块的功耗分析结果;基于各硬件模块的功耗分析结果,确定各硬件模块的功耗信息。本公开的方案由于能够并行运行芯片的各硬件模块的功耗运行脚本,从而能够并行确定芯片的各硬件模块的功耗信息,能够减少芯片的功耗信息的收集时间,提高芯片的功耗分析效率。高芯片的功耗分析效率。高芯片的功耗分析效率。
技术研发人员:周礼照
受保护的技术使用者:北京地平线信息技术有限公司
技术研发日:2023.05.31
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
