处理器及其控制方法、装置、电子设备和存储介质与流程

文档序号:29700887发布日期:2022-04-16 14:25阅读:93来源:国知局
处理器及其控制方法、装置、电子设备和存储介质与流程

1.本公开的实施例涉及一种用于处理器的控制方法、用于处理器的控制装置、处理器、电子设备和计算机可读存储介质。


背景技术:

2.随着科学技术的发展,电子设备的种类日新月异,处理器为电子设备的核心部件,处理器例如包括cpu(central processing unit)、gpu(graphics processing unit)等。处理器的功耗会影响到处理器的性能,目前处理器的设计都会考虑性能与功耗的比值;处理器的功耗过大会导致芯片发热过量,造成芯片的损害,加大芯片应用系统的设计难度;处理器的功耗增加会增大整个系统的耗电量,不能保证能源的有效性。因此,如何降低处理器的功耗是处理器设计中极为重要的问题。


技术实现要素:

3.本公开至少一个实施例提供一种用于处理器的控制方法,所述处理器包括不同类型的多个指令执行单元,所述方法包括:获取多条待派发指令的属性信息,所述属性信息表征所述待派发指令将被派发至的指令执行单元的类型;基于所述多条待派发指令的属性信息,从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元;从所述m个候选指令执行单元中确定至少一个待休眠指令执行单元;m为正整数。
4.例如,本公开一实施例提供的控制方法还包括:关闭所述待休眠指令执行单元的时钟,以使所述待休眠指令执行单元由激活状态转变为休眠状态。
5.例如,本公开一实施例提供的控制方法还包括:基于所述多条待派发指令的属性信息,从处于休眠状态的指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中存在指令派发的至少一个指令执行单元,作为待激活指令执行单元;打开所述待激活指令执行单元的时钟,以将所述待激活指令执行单元由休眠状态转变为激活状态。
6.例如,在本公开一实施例提供的控制方法中,从所述m个候选指令执行单元中确定至少一个待休眠指令执行单元,包括:根据指令释放队列,从所述m个候选指令执行单元中确定至少一个将派发的指令均已释放的指令执行单元,作为所述至少一个待休眠指令执行单元。
7.例如,在本公开一实施例提供的控制方法中,获取多条待派发指令的属性信息,包括:从指令派发队列中获取多条待派发指令的属性信息。
8.例如,在本公开一实施例提供的控制方法中,所述至少一次指令派发过程为派发所述指令派发队列中的前p条待派发指令的过程;从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元,包括:从所述多个指令执行单元中确定在派发所述前p条待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的所述m个候选指令执行单元,p为大于或者等于0的
整数。
9.例如,在本公开一实施例提供的控制方法中,所述至少一次指令派发过程为派发所述指令派发队列中的全部待派发指令的过程;从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元,包括:从所述多个指令执行单元中确定在派发所述全部待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的所述m个候选指令执行单元。
10.例如,在本公开一实施例提供的控制方法中,所述多个待派发指令为循环体指令序列,所述至少一次指令派发过程为派发所述循环体指令序列的过程;其中,从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元,包括:基于所述循环体指令序列,确定所述多个指令执行单元分别对应的空闲概率;将空闲概率大于或等于概率阈值的指令执行单元作为处于派发空闲状态的所述m个候选指令执行单元。
11.例如,在本公开一实施例提供的控制方法中,所述概率阈值为100%,或者,所述概率阈值大于或等于50%并且小于100%。
12.例如,本公开一实施例提供的控制方法还包括:对于空闲概率大于或等于概率阈值并且小于100%的每个待休眠指令执行单元,基于所述待休眠指令执行单元对应的指令在指令派发队列中的位置和所述待休眠指令执行单元中的指令释放情况,关闭所述待休眠指令执行单元的时钟。
13.例如,在本公开一实施例提供的控制方法中,打开所述待激活指令执行单元的时钟,包括:根据与所述待激活指令执行单元对应的待派发指令在指令派发队列中的位置,打开所述待激活指令执行单元的时钟。
14.例如,在本公开一实施例提供的控制方法中,根据与所述待激活指令执行单元对应的待派发指令在指令派发队列中的位置,打开所述待激活指令执行单元的时钟,包括:响应于与所述待激活指令执行单元对应的待派发指令出现在所述指令派发队列的最后一位,打开所述待激活指令执行单元的时钟,所述指令派发队列的最后一位为所述指令派发队列接收新增指令的端部位置。
15.例如,在本公开一实施例提供的控制方法中,根据与所述待激活指令执行单元对应的待派发指令在指令派发队列中的位置,打开所述待激活指令执行单元的时钟,包括:响应于与所述指令执行单元对应的待派发指令由所述指令派发队列的最后一位前进至所述指令派发队列的预定位置,打开所述待激活指令执行单元的时钟。
16.例如,本公开一实施例提供的控制方法还包括:在多线程运行模式的情况下,确定与多个线程分别对应的多组待休眠指令执行单元,其中,每组待休眠指令执行单元包括至少一个待休眠指令执行单元;确定所述多组待休眠指令执行单元的交集指令执行单元;关闭所述交集指令执行单元的时钟。
17.例如,本公开一实施例提供的控制方法还包括:在多线程运行模式的情况下,确定与多个线程分别对应的多组待激活指令执行单元;确定所述多组待激活指令执行单元的全部指令执行单元;打开所述全部指令执行单元的时钟。
18.例如,在本公开一实施例提供的控制方法中,所述处理器具有第一取指模式和第二取指模式。确定与多个线程分别对应的多组待休眠指令执行单元,包括:对于所述第一取
指模式对应的线程,从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中无指令派发的m个候选指令执行单元,并从所述m个候选指令执行单元中确定至少一个待休眠指令执行单元;对于所述第二取指模式对应的线程,基于循环体指令序列,确定所述多个指令执行单元分别对应的空闲概率,确定空闲概率大于或等于概率阈值的m个候选指令执行单元,并从所述m个候选指令执行单元中确定至少一个待休眠指令执行单元。
19.本公开至少一个实施例提供一种用于处理器的控制装置,所述处理器包括不同类型的多个指令执行单元,所述控制装置包括属性获取模块、第一确定模块和第二确定模块。属性获取模块配置为获取多条待派发指令的属性信息,其中,所述属性信息表征所述待派发指令将被派发至的指令执行单元的类型;第一确定模块配置为基于所述多条待派发指令的属性信息,从所述多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元;第二确定模块配置为从所述m个候选指令执行单元中确定至少一个待休眠指令执行单元,m为正整数。
20.本公开至少一个实施例提供一种处理器,包括本公开任一实施例提供的控制装置。
21.本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开任一实施例提供的控制方法的指令。
22.本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的控制方法。
附图说明
23.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
24.图1示出了本公开至少一实施例提供的一种处理器的示意图;
25.图2示出了本公开至少一实施例提供的时钟信号的传输示意图;
26.图3示出了处理器的一种功耗分布的示意图;
27.图4示出了本公开至少一实施例提供的一种用于处理器的控制方法的流程图;
28.图5a示出了本公开至少一实施例提供的另一种处理器的示意图;
29.图5b示出了本公开至少一实施例提供的指令执行单元的选择过程示意图;
30.图6示出了本公开至少一实施例提供的时钟信号的另一传输示意图;
31.图7示出了本公开至少一实施例提供的另一种处理器的示意图;
32.图8示出了本公开至少一实施例提供的循环语句的执行示意图;
33.图9示出了本公开至少一实施例提供的在执行循环体指令序列期间指令执行单元的空闲概率统计方法的示意图;
34.图10示出了本公开至少一实施例提供的另一种处理器的示意图;
35.图11示出了本公开至少一个实施例提供的一种用于处理器的控制装置的示意框图;
36.图12示出了本公开至少一个实施例提供的另一种用于处理器的控制装置的示意框图;
37.图13示出了本公开至少一个实施例提供的一种处理器的示意框图;
38.图14为本公开一些实施例提供的一种电子设备的示意框图
39.图15为本公开一些实施例提供的另一种电子设备的示意框图;以及
40.图16为本公开一些实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
41.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
42.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
43.图1示出了本公开至少一实施例提供的一种处理器的示意图。
44.如图1所示,处理器的指令执行流水线可以包括指令派发部件110和指令执行部件120,指令派发部件110包括指令派发队列,指令执行部件120包括不同类型的多个指令执行单元c1、c2、c3、

、cn,n为正整数。多个指令执行单元c1、c2、c3、

、cn分别用于执行不同类型的指令,或者多个指令执行单元配合完成同一类型的指令。例如,分配至该多个指令执行单元c1、c2、c3、

、cn的指令的属性信息各不相同,该属性信息表征待派发指令将被派发至的指令执行单元的类型,即属性信息能够表征待派发指令需要派发到哪类指令执行单元,例如,从目前的处理器设计中,多个指令执行单元c1、c2、c3、

、cn可以包括定点指令执行单元、浮点指令执行单元、向量指令执行单元、矩阵指令执行单元、访存指令执行单元等,分别用于执行定点运算指令、浮点运算指令、向量运算指令、矩阵运算指令、访存指令等。每个指令执行单元可以包含多个元器件或电路等,例如可以包含寄存器、运算器件(例如加、减、乘、除运算器件)、访存部件(例如对访存地址的读、写操作器件)等。
45.该处理器可以为单核处理器或多核处理器,对于多核处理器的每个处理器核可以各自包括上述指令派发部件110和指令执行部件120等,并且还可以进一步包括例如分支预测部件、取指部件、译码部件、寄存器重名部件等,本公开对此不作限制。
46.例如,指令派发队列111包含按照执行时间先后顺序排列的多个待派发指令,队列中的指令从前至后被依次派发,并且随着前侧的指令不断被派发,后侧的指令不断向前移动位置,并且新的指令信息经过译码单元之后填入到指令派发队列当中。每个待派发指令
均包含属性信息,属性信息例如为定点、浮点、向量等与指令执行单元相对应的属性。指令派发队列111可以根据每条待派发指令的属性,按照顺序将待派发指令派发至相应的指令执行单元c1、c2、c3、

、cn。
47.例如,在处理器运行过程中,需要使用系统时钟来使处理器内部的各个元器件同步运行。在处理器内核中,采用同频率、同相位的时钟信号,从而保证处理器内核内部各职能部件按照相同的节奏运行。
48.图2示出了本公开至少一实施例提供的传输时钟信号的示意图。
49.如图2所示,时钟信号可以传输至各个指令执行单元c1、c2、c3、

、cn包含的元器件(例如寄存器),以控制相应元器件同步运行。例如,为了减少功耗,可以在指令执行单元中针对至少部分元器件设置时钟门控cg(clock gating),时钟门控(以下也简称为“门控”)可以将当前不需要用到的元器件的时钟关闭,例如,将当前时钟周期内没有用到的寄存器的时钟信号暂时切断,关闭寄存器的传输功能,阻止无用的数据进入下一级逻辑,避免引起一连串不必要的逻辑翻转,从而达到降低功耗的效果。因此,可以在各个指令执行单元内部设置适量的门控以降低每个指令执行单元的功耗。
50.图3示出了典型的处理器的一种功耗分布的示意图。
51.如图3所示,处理器的功耗主要由组合逻辑(combinational)、寄存器(flops)、门控(gate)、时钟(clocks)、定制存储模块(macro)、锁存器(latch)等项目组成。其中主要的功耗分布在组合逻辑、寄存器、门控和时钟。时钟的功耗约占7%,作为功耗控制的门控所引入的功耗也比较高,约占15%。也就是说,虽然门控的作用是减小功耗,但是另一方面,门控本身也会造成一定的功耗。
52.因此,为寄存器添加时钟门控的功耗控制方法,虽然能够降低寄存器的动态功耗。但是,门控电路同样会引入额外的电路功耗。这要求添加的门控电路的数量需要适量,但是不能保证门控覆盖所有的寄存器。而若在指令执行单元内部设置较多的门控,又会增加处理器的整体功耗,不能达到降低功耗的效果,并且随着指令执行单元的电路复杂性提高,指令执行单元中的时钟和门控产生的额外功耗也会随之增加,并不能达到良好地降低处理器功耗的效果。
53.本公开实施例提供了一种用于处理器的控制方法、用于处理器的控制装置、处理器、电子设备和计算机可读存储介质。本公开实施例从处理器微架构的角度,提出一种降低处理器功耗的方法。如果说当前的门控针对的是每一个寄存器器件,那么,本公开实施例中的门控主要针对的是处理器中的每一个指令执行单元。该用于处理器的控制方法包括:获取多条待派发指令的属性信息,属性信息表征待派发指令将被派发至的指令执行单元的类型;基于多条待派发指令的属性信息,从多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元;从m个候选指令执行单元中确定至少一个待休眠指令执行单元,m为正整数。
54.该种用于处理器的控制方法可以在指令执行单元的层面上关闭时钟,被关闭时钟的指令执行单元的动态功耗将大幅下降,因此,可以降低整个指令执行部件的功耗,进而可以降低处理器的整体功耗。
55.图4示出了本公开至少一实施例提供的一种用于处理器的控制方法的流程图。
56.如图4所示,该控制方法可以包括步骤s210~s230。
57.步骤s210:获取多条待派发指令的属性信息。
58.步骤s220:基于多条待派发指令的属性信息,从所述指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元。
59.步骤s230:从m个候选指令执行单元中确定至少一个待休眠指令执行单元。
60.图5a示出了本公开至少一实施例提供的另一种处理器的示意图。该控制方法适用的处理器可以为例如图5a所示的处理器,相比于图1所示的处理器,图5a所示的处理器增加了控制装置300,控制方法可以由该控制装置300执行。如上所述,该处理器同样可以是单核处理器或多核处理器,对于多核处理器的每个处理器核可以各自包括上述指令派发部件110和指令执行部件120等,并且还可以进一步包括例如分支预测部件、取指部件、译码部件、寄存器重名部件等,本公开对此不作限制。
61.例如,在步骤s210中,属性信息表征待派发指令将被派发至的指令执行单元的类型。多条待派发指令例如是指令派发队列中的全部指令或部分指令。属性信息例如为定点、浮点、向量等与指令执行单元相对应的属性。
62.例如,在步骤s220中,根据每个待派发指令的属性信息,可以确定分别执行该多个待派发指令的指令执行单元,进而可以确定在执行至少部分待派发指令的过程中哪些指令执行单元处于派发空闲状态(例如没有指令派发到的指令执行单元),并将处于派发空闲状态的每个指令执行单元作为一个候选指令执行单元,由此可以得到m个候选指令执行单元,m为大于或者等于0的整数。
63.例如,在步骤s230中,可以将m个候选指令执行单元均作为待休眠待休眠指令执行单元;或者可以从m个候选指令执行单元中选择部分候选指令执行单元作为待休眠指令执行单元。例如,可以根据指令释放队列从m个候选指令执行单元中选择满足释放条件的候选指令执行单元作为待休眠指令执行单元,这一方案将在以下的内容中详细描述。
64.图5b示出了本公开至少一实施例提供的指令执行单元的选择过程示意图,如图5b所示,指令执行部分包含的多个指令执行单元(例如c1、c2、c3、

、cn)可以归于集合1。在经过步骤s220后选出若干个候选指令执行单元(例如c1、c2、c3、c4),该若干个候选指令执行单元可以归于集合2。在经过步骤s230后进一步选出若干个待休眠指令执行单元(例如c1、c2),该若干个待休眠指令执行单元可以归于集合3。
65.例如,确定待休眠指令执行单元之后,可以关闭每个待休眠指令执行单元的时钟,以使待休眠指令执行单元由激活状态转变为休眠状态。
66.图6示出了本公开至少一实施例提供的另一种传输时钟信号的示意图。
67.如图6所示,例如,可以针对每个指令执行单元c1、c2、c3、

、cn均设置时钟开关器件122,在执行至少部分待派发指令期间,利用时钟开关器件将待休眠指令执行单元的时钟关闭,也就是说,将待休眠指令执行单元的时钟截断,使指令执行单元处于时钟关闭状态,由此同样地也不用控制待休眠指令执行单元内的时钟门控,减少了这些时钟门控的功耗;由于关闭了时钟,降低了寄存器的动态功耗;并且,由于没有电平翻转,降低了组合逻辑上的动态功耗;同时,由于时钟传递被阻断,因此,降低了时钟功耗。时钟开关器件122例如可以实现为时钟门控。
68.本公开实施例提供的控制方法,根据待派发指令的属性信息,判断未来若干次指令派发过程中处于派发空闲状态的指令执行单元,对处于派发空闲状态的至少部分指令执
行单元的时钟进行截断,基于这一方案,可以在指令执行单元层次上关闭时钟,因此,可以降低对应指令执行部件的功耗,进而可以降低处理器的整体功耗。由于程序行为大都具有针对性,一段时间内指令行为更集中到特定的指令执行单元上,因此,指令执行单元的电路功耗会大幅下降,包括时序电路、组合电路、时钟电路和门控电路,因此,可以降低处理器的整体功耗。
69.例如,在指令执行单元内部也可以设置适量的时钟门控cg。在指令执行单元的时钟处于关闭状态的情况下,指令执行单元中的器件均处于关闭状态,相比较现有技术,门控电路产生的功耗会变小。在指令执行单元的时钟处于打开状态的情况下,指令执行单元内部的时钟门控可以根据需要关闭这些时钟门控对应的部件或部分,由此起到一定程度的降低功耗的效果,在本公开实施例的基础上,由于执行单元层级已经进行了时钟控制,因此,可以适当的减少内部的门控电路的数量。
70.图7示出了本公开至少一实施例提供的另一种处理器的示意图。
71.如图7所示,相比图5a所示的处理器,处理器还可以包括指令释放部件130,指令释放部件包括指令释放队列131。例如,指令释放队列131包括多条待释放指令,指令派发队列111中的指令被派发至相应的指令执行单元之后,该次派发的指令会作为待释放的指令增加至指令释放队列131中,在当前指令及其之前的指令被执行完毕后,指令释放部件可以将已完成的指令从指令释放队列131中释放,从处理器的指令执行流水线中退出(retire)。例如,以指令i为例,在指令派发部件将指令i派发至某一指令执行单元j之后,指令释放队列131中增加该指令i,直到指令执行单元j执行完该指令i后,并且,指令释放队列中指令i之前的指令全部被执行完成后,指令释放部件可以将该指令i从指令释放队列131中释放。也就是说,若指令i仍位于指令释放队列131中,则说明指令i已被派发但未被释放,此时该指令有可能在执行,也有可能已经执行完毕,为了保证处理器的功能正确性,当指令未被释放,则认为该指令对应的执行单元处于忙碌状态,若指令i从指令释放队列131中被释放,则说明指令i已被执行完毕。
72.例如,在一些示例中,可以根据指令释放队列,从m个候选指令执行单元中确定至少一个将派发的指令均已释放的指令执行单元,作为至少一个待休眠指令执行单元。例如,在根据步骤s220确定m个候选指令执行单元之后,可以根据指令释放队列,确定哪些候选指令执行单元中存在已派发但是尚未执行完毕的指令,以及确定哪些候选指令执行单元已执行完毕的指令,从而确定待休眠的指令执行单元。基于这一方式,可以保证被关闭的指令执行单元中均不存在正在执行中的指令,从而避免出现指令执行中断的情况出现,保证处理器的功能。
73.例如,在一些示例中,在步骤s220中,至少一次指令派发过程可以是指令派发队列中的全部待派发指令的派发过程。可以从多个指令执行单元中确定在派发全部待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的m个候选指令执行单元。
74.例如,指令派发队列中存在k(k大于等于0)条待派发指令,k例如为100,该100条待派发指令中的前50条待派发指令的属性信息为定点,由定点指令执行单元执行;后50条待派发指令的属性信息为浮点,由浮点指令执行单元执行。则可以将除定点指令执行单元和浮点指令执行单元之外的其余指令执行单元(例如向量指令执行单元、矩阵指令执行单元、
访存指令执行单元等)作为候选指令执行单元。可以认为在执行该100条指令的过程中,向量指令执行单元、矩阵指令执行单元、访存指令执行单元等若干指令执行单元均没有指令派发,可以再结合指令释放情况,确定待休眠的指令执行单元,暂时关闭待休眠指令执行单元的时钟。
75.例如,在另一些示例中,在步骤s220中,至少一次指令派发过程可以是指令派发队列中的前p条待派发指令的派发过程。可以从多个指令执行单元中确定在派发该前p条待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的m个候选指令执行单元。例如,可以先确定多个指令执行单元中与指令派发队列111中前p条待派发指令的属性信息对应的n个指令执行单元,将多个指令执行单元中除该n个指令执行单元之外的其余指令执行单元作为候选指令执行单元,p和n均为大于或者等于0的整数。
76.例如,指令派发队列中存在k条待派发指令,例如,k为100,该100条待派发指令中的前30条待派发指令的属性信息为定点,由定点指令执行单元执行;中间的40条待派发指令的属性信息为浮点,由浮点指令执行单元执行;后30条待派发指令的属性信息为向量,由向量指令执行单元执行。若p为70,则前p条待派发指令是指前30条待派发指令以及中间的40条待派发指令,则在派发前70条待派发指令的过程中,除定点指令执行单元和浮点指令执行单元之外的其余指令执行单元(例如向量指令执行单元、矩阵指令执行单元、访存指令执行单元等)等若干指令执行单元均没有指令派发,作为候选指令执行单元。可以再结合指令释放情况,确定待休眠的指令执行单元,暂时关闭待休眠指令执行单元的时钟。
77.对于本公开实施例所述的关于指令派发队列的“前”、“后”的表述,“前”表示指令派发队列派发指令的一端,“后”表示接收指令进入指令派发队列的一端,通常情况下,位于“前”侧的指令进入指令派发队列的时间早于位于“后”侧的指令进入指令派发队列的时间,并且,位于“前侧”的指令相对于位于“后侧”的指令更早被派发至指令执行部件。
78.例如,控制方法还可以包括:基于多条待派发指令的属性信息,从处于休眠状态的指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中存在指令派发的至少一个指令执行单元,作为待激活指令执行单元;打开待激活指令执行单元的时钟,以将待激活指令执行单元由休眠状态转变为激活状态。
79.例如,基于多条待派发指令的属性信息,从当前处于关闭时钟状态的指令执行单元中确定待激活指令执行单元,待激活指令执行单元与指令派发队列中的至少一个待派发指令的属性信息相对应,且,有一定概率被打开相对应的时钟。
80.例如,在一些示例中,根据与待激活指令执行单元对应的待派发指令在指令派发队列中的位置,打开待激活指令执行单元的时钟。
81.例如,可以响应于与待激活指令执行单元对应的待派发指令出现在指令派发队列的最后一位,打开待激活指令执行单元的时钟。指令派发队列的最后一位为所述指令派发队列接收新增指令的端部位置。也就是说,可以响应于与待激活指令执行单元对应的指令出现在指令派发队列中,打开相应的待激活指令执行单元的时钟。例如,向量指令执行单元和矩阵指令执行单元当前处于关闭时钟状态,一旦指令派发队列中出现一条属性信息为向量的待派发指令,则向量指令执行单元可以作为一个待激活指令执行单元,打开向量指令执行单元的时钟;一旦指令派发队列中出现一条属性信息为矩阵的待派发指令,则矩阵指令执行单元可以作为一个待激活指令执行单元,打开矩阵指令执行单元的时钟。基于这一
方式,可以充分保证指令派发队列中的每条待派发指令在派发时对应的指令执行单元的时钟处于打开状态,保证执行部件能够无遗漏的执行所对应的指令。
82.例如,在另一些示例中,可以响应于与指令执行单元对应的待派发指令由指令派发队列的最后一位前进至指令派发队列的预定位置,打开待激活指令执行单元的时钟。
83.例如,响应于与待激活指令执行单元对应的待派发指令到达指令派发队列的预定位置,打开待激活指令执行单元的时钟。例如,指令派发队列可以具有100个指令位置,可以排列100条待派发指令,预定位置可以是从前至后的顺序上的第10个指令位置、或者第50个指令位置、或者第70个指令位置等。预定位置可以根据实际情况而定,本公开对此不做限制。以预定位置为从前至后的顺序上的第10个指令位置为例,向量指令执行单元当前处于关闭时钟状态,在指令派发队列中出现一条属性信息为向量的待派发指令并且该待派发指令由最后一位向前移动至第10个指令位置时,则打开向量指令执行单元的时钟。基于这一方式,一方面可以保证指令派发队列中的每条待派发指令在派发时对应的指令执行单元的时钟处于打开状态;另一方面,可以尽量延长指令执行单元关闭的时长,进而可以进一步减小对应执行单元的功耗。
84.例如,多个待派发指令包括循环体指令序列,每个循环体指令序列包括若干条指令。步骤s220中的至少一次指令派发过程可以为派发循环体指令序列的过程。
85.图8示出了本公开至少一实施例提供的循环语句的执行示意图。
86.如图8所示,例如,程序中存在语句x1、判断语句x2和语句x3,执行语句x1后执行判断语句x2,在判断结果为第一判断结果(例如判断结果为“否”)的情况下,需要返回执行程序语句x2,之后需要再次执行判断语句x1,在判断结果仍为第一判断结果的情况下,需要再次返回执行程序语句x2,依此循环,直至判断结果变为第二预定结果(例如判断结果为“是”)的情况下,可以结束循环并向下执行语句x3。
87.例如,一个循环体指令序列可以是一次循环对应的若干条指令,即一次循环中的多个指令可形成一个指令序列,在某段特定时间内,该指令序列重复出现的几率较大。例如,一次循环需要执行(n+1)条指令:op0、op1、op2、op3、

、opn,则指令op0~opn形成一个循环体指令序列,并且,在指令派发队列中,该循环体的指令会重复的出现,具体的重复次数取决于循环体的循环次数。
88.例如,针对循环执行的情况,由于循环体具有嵌套的现象,因此,在指令派发队列中存在依次排列的多个循环体指令序列,若采用对指令派发队列中的全部指令逐个判断属性,并根据每个指令的属性确定可以关闭时钟的指令执行单元的方式会导致额外的功耗开销。因此,针对循环体指令的情况,本公开实施例还提供了另一种确定可以关闭时钟的指令执行单元的方式。
89.例如,在步骤s220中,可以基于循环体指令序列,确定多个指令执行单元分别对应的空闲概率;将空闲概率大于或等于概率阈值的指令执行单元作为处于派发空闲状态的m个候选指令执行单元。
90.图9示出了本公开至少一实施例提供的在执行循环体指令序列期间指令执行单元的空闲概率统计方法的示意图。
91.如图9所示,op0~opn代表循环体指令序列,指令op0~opn循环指令。在步骤s220中,可以以每个指令执行单元为对象,确定在执行循环体指令序列期间的空闲概率,例如可
以统计指令执行单元在每相邻两个指令之间的空闲值exeempty((i-1)~i),如果为空闲状态,则空闲值为“1”,否则空闲值大于或者等于“0”(在本公开实施例中等于“0”)。然后,可以利用下式,计算指令执行单元的空闲概率:
[0092][0093]
其中,p
(empty)
为某指令执行单元的空闲概率,n为循环体指令序列包含的指令的个数,i为大于或等于1并且小于或等于n的整数,exeempty((i-1)~i)为指令执行单元在执行指令op
(i-1)
至指令opi期间的空闲值,exeempty(n~0)为指令执行单元在执行指令opn至指令op0期间的空闲值。目前,已有技术能够侦测循环体中的指令个数,本公开实施例可以利用现有技术侦测循环体中的指令个数,在此不再赘述。
[0094]
例如,循环体指令序列包括10条指令,前9条指令由定点指令执行单元执行,最后一条指令由浮点指令执行单元执行,则利用上式计算得到定点指令执行单元对应的空闲概率为0.1,浮点指令执行单元对应的空闲概率为0.9,其余指令执行单元(例如向量指令执行单元、矩阵指令执行单元、访存指令执行单元等)对应的空闲概率均为1。指令执行单元对应的空闲概率越大,则认为在执行循环体指令序列期间指令执行单元处于空闲状态的时长越长。如果空闲概率达到1,则说明在执行循环体指令序列期间不需要使用该指令执行单元。如果空闲概率不为1但是接近于1,则说明在执行循环体指令序列期间只有很少的时间会用到该指令执行单元。
[0095]
例如,在一些示例中,概率阈值为100%(即,概率阈值为1),也就是说,在执行循环体指令序列期间只将空闲概率达到1的指令执行单元的时钟关闭(在派发至指令执行单元中的指令均已释放的前提下)。基于这一方式,可以在执行循环体指令序列期间保持全部需要用到的指令执行单元始终处于时钟打开状态,可以避免执行单元时钟打开/关闭状态的频繁切换。
[0096]
例如,在另一些示例中,概率阈值大于或等于50%并且小于100%(即概率阈值介于0.5~1之间)。例如,概率阈值为0.8,在执行循环体指令序列期间可以将空闲概率大于或等于0.8且小于或等于1的指令执行单元的时钟关闭。沿用上述示例,定点指令执行单元对应的空闲概率为0.1,浮点指令执行单元对应的空闲概率为0.9,其余指令执行单元(例如向量指令执行单元、矩阵指令执行单元、访存指令执行单元等)对应的空闲概率均为1,则可以考虑将浮点指令执行单元以及其余指令执行单元(例如向量指令执行单元、矩阵指令执行单元、访存指令执行单元等)的时钟关闭。基于这一方式,将循环体中的循环指令序列执行期间,将不会使用或者很少使用的指令执行单元的设置为候选指令执行单元,并且可以进一步结合指令释放情况从中得到待休眠指令执行单元,关闭待休眠指令执行单元的时钟。由此,可以避免过于频繁的切换指令执行单元的时钟打开/关闭状态。
[0097]
例如,对于空闲概率等于100%的每个待休眠指令执行单元,可以在执行完循环体指令之前,使对应的时钟均处于关闭状态。也就是说,对于空闲概率为100%的指令执行单元,在执行该循环体期间保持对应指令执行单元时钟为关闭状态,直到跳出该循环体,再按照对指令派发队列的监测确定指令执行单元的时钟打开/关闭状态。
[0098]
例如,对于空闲概率大于或等于概率阈值并且小于100%的每个待休眠指令执行
单元,基于待休眠指令执行单元对应的指令在指令派发队列中的位置和待休眠指令执行单元中的指令释放情况,打开或关闭待休眠指令执行单元的时钟。
[0099]
例如,沿用上述示例,循环体指令序列包括10条指令(例如op0~op9),前9条指令由定点指令执行单元执行(例如op0~op8),最后一条指令(例如op9)由浮点指令执行单元执行,例如,浮点指令执行单元的空闲概率大于概率阈值并且小于100%。指令派发队列例如排列为[op0,op1,op2,op3,

,op9,op0,op1,op2,op3,

,op9,op0,op1,op2,op3,

,op9,

]。在派发指令op0,op1,op2,op3,

,op8期间,浮点指令执行单元可以处于时钟关闭状态,在即将要派发指令op9时(即,在接下来的一次指令派发时,op9将被派发),将op9作为待激活指令执行单元,打开浮点指令执行单元对应的时钟,以将指令op9派发至浮点指令执行单元。在浮点指令执行单元执行完指令op9之后,可以再次将浮点指令执行单元的时钟关闭,直至下一个循环中的指令op9将要派发时,再次打开浮点指令执行单元的时钟。依此方式,在执行循环体指令序列期间动态打开/关闭部分指令执行单元的时钟。
[0100]
本公开实施例的控制方法,针对循环体指令序列确定每个指令执行单元的空闲概率,根据空闲概率确定需要关闭时钟的指令执行单元,基于这一方式,针对循环体指令序列提升了判断的粒度,仅需要判断一次循环所需的执行单元,即根据一次循环就可以找出空闲的指令执行单元,而无需再针对每次循环均逐个指令地去获取指令属性并进行判断空闲的指令执行单元,因此,能够提高功耗控制的有效性。
[0101]
例如,在一些实施例中,在多线程运行模式的情况下,确定与多个线程分别对应的多组待休眠指令执行单元,每组待休眠指令执行单元包括至少一个待休眠指令执行单元;确定多组待休眠指令执行单元的交集指令执行单元;关闭交集指令执行单元的时钟。
[0102]
例如,涉及多个线程同时运行的情况,每个线程均包含属于本线程的指令派发队列,在这种情况下,可以针对每个线程确定其对应的待休眠指令执行单元,再汇总所有线程的结果,仲裁并确定多线程下的待休眠指令执行单元。
[0103]
例如,两个线程(例如线程0和线程1)同时运行,根据线程0中的待派发指令,确定出在未来一段时间内浮点指令执行单元、向量指令执行单元、矩阵指令执行单元和访存指令执行单元为待休眠指令执行单元。根据线程1中的待派发指令,确定出在未来一段时间内向量指令执行单元、矩阵指令执行单元和访存指令执行单元为待休眠指令执行单元。可以将两个线程的待休眠指令执行单元的交集作为待休眠指令执行单元,例如,两个线程的交集为向量指令执行单元、矩阵指令执行单元和访存指令执行单元,可以将这三个指令执行单元的时钟关闭。
[0104]
例如,在多线程运行模式的情况下,可以确定与多个线程分别对应的多组待激活指令执行单元;确定多组待激活指令执行单元的全部指令执行单元;打开全部指令执行单元的时钟。
[0105]
例如,处理器具有第一取指模式和第二取指模式,对于第一取指模式对应的线程,从多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中无指令派发的m个候选指令执行单元,并从m个候选指令执行单元中确定至少一个待休眠指令执行单元。对于第二取指模式对应的线程,基于循环体指令序列,确定多个指令执行单元分别对应的空闲概率,确定空闲概率大于或等于概率阈值的m个候选指令执行单元,并从m个候选指令执行单元中确定至少一个待休眠指令执行单元。
[0106]
图10示出了本公开至少一实施例提供的另一种处理器的示意图。
[0107]
如图10所示,处理器还可以包括第一取指部件141和第二取指部件142,第二取指部件142例如为oc(micro-operation cache,微指令缓存区)路径取指部件,第一取指部件141例如为ic(instruction cache,指令缓存区)路径取指部件。第一取指模式可以是利用第一取指部件141获取指令,第二取指模式可以是利用第二取指部件142获取指令。此外,处理器还可以包括指令译码部件150、取指通路判断部件160和地址产生部件及分支预测部件170。地址产生部件及分支预测部件170可以用于预测分支指令的跳转方向以及跳转目的地址。取指通路判断部件160可以用于对取指路径进行判断,选择进入ic或者oc取指路径。其中ic路径取指部件可以用来从指令缓存中取指,ic中存放译码之前的指令信息,将译码电路之后翻译为机器识别的微指令,这些微指令通常被写入到oc中,以供未来在oc取指路径中使用;而oc路径取指部件可以用来在已经存放的译码之后的指令信息(即微指令)中取指,一旦在oc路径取指部件没有命中(miss),则系统会切换至ic路径取指部件。循环体指令大多会选择从oc路径取指。指令译码部件150用于对ic路径取指部件得到的指令数据进行译码,将程序指令转换为处理器能识别的微指令。指令派发部件110根据下游各类指令执行单元c1、c2、c3、

、cn的执行情况,结合目前需要派发的指令的属性,将指令派发到各个指令执行单元c1、c2、c3、

、cn中。
[0108]
例如,在单线程模式下,该线程采用第一取指模式或者第二取指模式进行指令读取,同一时间,线程只能在一种取指模式下进行。若线程切换到第一取指模式,可以逐个判断指令派发队列中每个待派发指令的属性信息,并根据指令派发队列中全部或部分待派发指令的属性信息确定候选指令执行单元,并进一步确定待休眠指令执行单元。由于第二取指模式对应的指令大多为循环体指令序列,因此若线程切换到第二取指模式,可以采用上述针对循环体指令序列的方式确定候选指令执行单元,并进一步确定待休眠指令执行单元。
[0109]
例如,在单线程模式下,可以选择只根据第二取指模式确定待休眠/待激活指令执行单元,避免频繁打开/关闭时钟,保证功耗控制的有效性。例如,在单线程模式下,也可以选择只根据第一取指模式确定待休眠/待激活指令执行单元,由于某些程序运行,很少存在第二取指特性,采用第一取指模式能保证功耗的降低。
[0110]
例如,无论在同步多线程模式或者单线程模式,可以仅考虑,针对第二取指模式,进行对应的执行单元的休眠/激活进行控制。
[0111]
本公开另一实施例还提供了一种用于处理器的控制装置。该用于处理器的控制装置根据待派发指令的属性信息,判断未来若干次指令派发过程中处于派发空闲状态的指令执行单元,对处于派发空闲状态的至少部分指令执行单元的时钟进行截断,基于这一方案,可以在指令执行单元层次上关闭时钟,因此,可以降低对应指令执行部件的功耗,进而可以降低处理器的整体功耗。由于程序行为大都具有针对性,一段时间内指令行为更集中到特定的指令执行单元上,因此,指令执行单元的电路功耗会大幅下降,包括时序电路、组合电路、时钟电路和门控电路,因此,可以降低处理器的整体功耗。
[0112]
图11示出了本公开至少一个实施例提供的一种用于处理器的控制装置300的示意框图。
[0113]
例如,如图11所示,该控制装置300包括属性获取单元310、第一确定单元320和第
二确定单元330。
[0114]
属性获取单元310配置为获取多条待派发指令的属性信息,其中,属性信息表征待派发指令将被派发至的指令执行单元的类型。属性获取单元310例如可以执行图4描述的步骤s210。
[0115]
第一确定单元320配置为基于多条待派发指令的属性信息,从多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中处于派发空闲状态的m个候选指令执行单元,m为正整数。第一确定单元320例如可以执行图4描述的步骤s220。
[0116]
第二确定单元330配置为从m个候选指令执行单元中确定至少一个待休眠指令执行单元。第二确定单元330例如可以执行图4描述的步骤s230。
[0117]
例如,属性获取单元310、第一确定单元320和第二确定单元330可以为硬件、软件、固件以及它们的任意可行的组合。例如,属性获取单元310、第一确定单元320和第二确定单元330可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
[0118]
需要说明的是,本公开的实施例中,控制装置300的各个单元与前述的控制方法的各个步骤对应,关于控制装置300的具体功能可以参考关于控制方法的相关描述,此处不再赘述。图11所示的控制装置300的组件和结构只是示例性的,而非限制性的,根据需要,该控制装置300还可以包括其他组件和结构。
[0119]
图12示出了本公开至少一个实施例提供的另一种用于处理器的控制装置的示意框图。
[0120]
例如,如图12所示,控制装置300还可以包括时钟控制单元340,时钟控制单元340配置为关闭待休眠指令执行单元的时钟,以使待休眠指令执行单元由激活状态转变为休眠状态。此外,时钟控制单元340还可以配置为打开指令执行单元的时钟。例如,时钟控制单元可以包括用于控制多个指令执行单元的时钟开闭/打开的多个子时钟控制单元,在接收到针对一个或多个指令执行单元的时钟关闭/打开信号的情况下,关闭/打开相对应的指令执行单元。
[0121]
例如,如图12所示,控制装置300还可以包括释放监控单元350,释放监控单元350配置为根据指令释放队列,从m个候选指令执行单元中确定至少一个将派发的指令均已释放的指令执行单元,作为至少一个待休眠指令执行单元。
[0122]
例如,如图12所示,属性获取单元310配置为:从指令派发队列中获取多条待派发指令的属性信息。
[0123]
例如,上述至少一次指令派发过程为派发指令派发队列中的前p条待派发指令的过程。第一确定单元320进一步配置为:从多个指令执行单元中确定在派发前p条待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的m个候选指令执行单元,p为大于或者等于0的整数。
[0124]
例如,至少一次指令派发过程为派发指令派发队列中的全部待派发指令的过程。第一确定单元320进一步配置为:从多个指令执行单元中确定在派发全部待派发指令的过程中无指令派发的m个指令执行单元,作为处于派发空闲状态的m个候选指令执行单元。
[0125]
例如,多个待派发指令为循环体指令序列,至少一次指令派发过程为派发循环体指令序列的过程。第一确定单元进一步配置为:基于循环体指令序列,确定多个指令执行单
元分别对应的空闲概率;将空闲概率大于或等于概率阈值的指令执行单元作为处于派发空闲状态的m个候选指令执行单元。例如,在一些示例中,概率阈值为100%。在另一些示例中,概率阈值大于或等于50%并且小于100%。
[0126]
例如,如图12所示,控制装置300还可以包括第四确定单元370,第四确定单元370配置为:对于空闲概率大于或等于概率阈值并且小于100%的每个待休眠指令执行单元,基于待休眠指令执行单元对应的指令在指令派发队列中的位置和待休眠指令执行单元中的指令释放情况,打开或关闭待休眠指令执行单元的时钟。
[0127]
例如,如图12所示,控制装置还可以包括第三确定单元360,第三确定单元360可以配置为:基于多条待派发指令的属性信息,从处于休眠状态的指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中存在指令派发的至少一个指令执行单元,作为待激活指令执行单元;打开待激活指令执行单元的时钟,以将待激活指令执行单元由休眠状态转变为激活状态。
[0128]
例如,第三确定单元360可以进一步可以配置为:根据与待激活指令执行单元对应的待派发指令在指令派发队列中的位置,打开待激活指令执行单元的时钟。
[0129]
例如,第三确定单元360可以进一步可以配置为:响应于与待激活指令执行单元对应的待派发指令出现在指令派发队列的最后一位,打开待激活指令执行单元的时钟,指令派发队列的最后一位为指令派发队列接收新增指令的端部位置。
[0130]
例如,第三确定单元360可以进一步可以配置为:响应于与指令执行单元对应的待派发指令由指令派发队列的最后一位前进至指令派发队列的预定位置,打开待激活指令执行单元的时钟。
[0131]
例如,第一确定单元320、第二确定单元330、第三确定单元360和第四确定单元370例如均位于算法模块中。
[0132]
例如,控制装置还可以包括多线程模块(图中未示出),多线程模块配置为:在多线程运行模式的情况下,确定与多个线程分别对应的多组待休眠指令执行单元,其中,每组待休眠指令执行单元包括至少一个待休眠指令执行单元;确定多组待休眠指令执行单元的交集指令执行单元;关闭交集指令执行单元的时钟。
[0133]
例如,多线程模块还配置为:在多线程运行模式的情况下,确定与多个线程分别对应的多组待激活指令执行单元;确定多组待激活指令执行单元的全部指令执行单元;打开全部指令执行单元的时钟。
[0134]
例如,处理器具有第一取指模式和第二取指模式。例如,处理器包括第一取指部件和第二取指部件,第一取指模式为利用第一取指部件获取指令,第二取指模式为利用第二取指部件获取指令。多线程模块可以进一步配置为:对于第一取指模式对应的线程,从多个指令执行单元中确定在从当前时刻开始的至少一次指令派发过程中无指令派发的m个候选指令执行单元,并从m个候选指令执行单元中确定至少一个待休眠指令执行单元;对于第二取指模式对应的线程,基于循环体指令序列,确定多个指令执行单元分别对应的空闲概率,确定空闲概率大于或等于概率阈值的m个候选指令执行单元,并从m个候选指令执行单元中确定至少一个待休眠指令执行单元。
[0135]
例如,控制装置还可以包括时钟状态监控模块(图中未示出),时钟状态监控模块配置为监控各个指令执行单元的时钟打开/关闭状态。例如,在执行打开/关闭时钟的步骤
之前,可以先从时钟状态监控模块查询并确认当前的时钟状态。例如,对于需要执行关闭时钟操作的指令执行单元,可以根据时钟状态监控模块确认该指令执行单元的时钟当前是否处于打开状态,确认后再执行关闭时钟的操作。在执行打开/关闭时钟的步骤之后,可以将时钟的最新状态更新至时钟状态监控模块。
[0136]
本公开实施例的控制装置,根据待派发指令的属性信息,判断未来若干次指令派发过程中处于派发空闲状态的指令执行单元,对处于派发空闲状态的至少部分指令执行单元的时钟进行截断,基于这一方案,可以在指令执行单元层次上关闭时钟,因此,可以降低对应指令执行部件的功耗,进而可以降低处理器的整体功耗。由于程序行为大都具有针对性,一段时间内指令行为更集中到特定的指令执行单元上,因此,指令执行单元的电路功耗会大幅下降,包括时序电路、组合电路、时钟电路和门控电路,因此,可以降低处理器的整体功耗。
[0137]
本公开另一实施例还提供了一种处理器。
[0138]
图13示出了本公开至少一个实施例提供的一种处理器400的示意框图。
[0139]
例如,如图13所示,处理器400包括如上所述的控制装置300。此外,处理器400还可以包括指令派发部件110、指令执行部件120、指令释放部件130等。
[0140]
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的控制方法的指令。该电子设备可以降低整个指令执行部件的功耗,进而可以降低处理器的整体功耗。
[0141]
图14为本公开一些实施例提供的一种电子设备的示意框图。如图14所示,该电子设备500包括处理器510和存储器520。存储器520用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器510用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器510运行时可以执行上文所述的控制方法中的一个或多个步骤。存储器520和处理器510可以通过总线系统和/或其它形式的连接机构(未示出)互连。
[0142]
例如,处理器510可以是中央处理单元(cpu)、图形处理单元(gpu)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(cpu)可以为x86或arm架构等。处理器510可以为通用处理器或专用处理器,可以控制电子设备500中的其它组件以执行期望的功能。
[0143]
例如,存储器520可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器510可以运行一个或多个计算机程序模块,以实现电子设备500的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
[0144]
需要说明的是,本公开的实施例中,电子设备500的具体功能和技术效果可以参考上文中关于控制方法的描述,此处不再赘述。
[0145]
图15为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备600例
如适于用来实施本公开实施例提供的控制方法。电子设备600可以是终端设备等。需要注意的是,图15示出的电子设备600仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
[0146]
如图15所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)610,其可以根据存储在只读存储器(rom)620中的程序或者从存储装置680加载到随机访问存储器(ram)630中的程序而执行各种适当的动作和处理。在ram 630中,还存储有电子设备600操作所需的各种程序和数据。处理装置610、rom 620以及ram630通过总线640彼此相连。输入/输出(i/o)接口650也连接至总线640。
[0147]
通常,以下装置可以连接至i/o接口650:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置660;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置670;包括例如磁带、硬盘等的存储装置680;以及通信装置690。通信装置690可以允许电子设备600与其他电子设备进行无线或有线通信以交换数据。虽然图15示出了具有各种装置的电子设备600,但应理解的是,并不要求实施或具备所有示出的装置,电子设备600可以替代地实施或具备更多或更少的装置。
[0148]
例如,根据本公开的实施例,上述控制方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述控制方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置690从网络上被下载和安装,或者从存储装置680安装,或者从rom 620安装。在该计算机程序被处理装置610执行时,可以实现本公开实施例提供的控制方法中限定的功能。
[0149]
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的控制方法。利用该计算机可读存储介质,可以降低整个指令执行部件的功耗,进而可以降低处理器的整体功耗。
[0150]
图16为本公开一些实施例提供的一种计算机可读存储介质的示意图。如图16所示,计算机可读存储介质700用于存储非暂时性计算机可读指令710。例如,当非暂时性计算机可读指令710由计算机执行时可以执行根据上文所述的控制方法中的一个或多个步骤。
[0151]
例如,该存储介质700可以应用于上述电子设备500中。例如,存储介质700可以为图14所示的电子设备500中的存储器520。例如,关于存储介质700的相关说明可以参考图14所示的电子设备500中的存储器520的相应描述,此处不再赘述。
[0152]
有以下几点需要说明:
[0153]
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
[0154]
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0155]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1