CN114489812A - 指令发射方法及装置、电子设备及存储介质 - Google Patents
指令发射方法及装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114489812A CN114489812A CN202210352627.8A CN202210352627A CN114489812A CN 114489812 A CN114489812 A CN 114489812A CN 202210352627 A CN202210352627 A CN 202210352627A CN 114489812 A CN114489812 A CN 114489812A
- Authority
- CN
- China
- Prior art keywords
- instruction
- power consumption
- transmitted
- window period
- queue
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 139
- 230000005540 biological transmission Effects 0.000 claims abstract description 142
- 230000015654 memory Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 10
- 230000001186 cumulative effect Effects 0.000 claims description 9
- 230000017525 heat dissipation Effects 0.000 claims description 8
- 238000005457 optimization Methods 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 26
- 238000013461 design Methods 0.000 description 21
- 230000002411 adverse Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Abstract
一种指令发射方法及装置、电子设备及存储介质,该指令发射方法包括:在指令发射队列中选择满足发射条件的可发射指令,发射条件包括指令功耗限制和指令的操作数状态;以及将可发射指令从指令发射队列中发射,以用于执行可发射指令。该指令发射方法有助于实现对指令发射队列中的各待发射指令的发射顺序的优化。
Description
技术领域
本公开的实施例涉及一种指令发射方法、指令发射装置、电子设备及存储介质。
背景技术
目前,随着芯片工艺技术的不断发展和进步,高速度、高集成度、低功耗和低成本已成为集成电路产业的主要发展方向,市场对于芯片产品的性能要求也相应提升。因此,芯片的设计规模和复杂度也随之大大增加,同时,芯片工作时的功耗限定也已经成为制约芯片设计的重要因素之一。
发明内容
本公开至少一个实施例提供一种指令发射方法,该指令发射方法包括:在指令发射队列中选择满足发射条件的可发射指令,所述发射条件包括指令功耗限制和指令的操作数状态;以及将所述可发射指令从所述指令发射队列中发射,以用于执行所述可发射指令。
例如,在本公开一实施例提供的指令发射方法中,所述指令功耗限制包括所述指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量。
例如,在本公开一实施例提供的指令发射方法中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,包括:确定所述指令发射队列中的待发射指令的执行功耗是否超过所述当前功耗余量;若所述待发射指令的执行功耗大于所述当前功耗余量,则所述待发射指令不满足所述发射条件;若所述待发射指令的执行功耗小于或等于所述当前功耗余量,则所述待发射指令满足所述发射条件。
例如,在本公开一实施例提供的指令发射方法中,所述当前功耗余量为预设最高功耗与当前的窗口周期内的累计功耗之间的差值,所述窗口周期包括至少一个时钟周期,所述窗口周期内的累计功耗对应于所述窗口周期内从所述指令发射队列中发射的全部可发射指令的执行功耗的总累计。
例如,在本公开一实施例提供的指令发射方法中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗采用如下公式表示:TPCnew = TPCprev+ PCnew-APCprev,TPCnew为所述新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为所述新的可发射指令的执行功耗,APCprev为所述上一个窗口周期内的平均功耗,所述窗口周期内的平均功耗为所述窗口周期内的累计功耗与所述窗口周期内包括的时钟周期的数目之间的比值。
例如,在本公开一实施例提供的指令发射方法中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗采用如下公式表示:TPCnew = TPCprev+ PCnew-PV,TPCnew为所述新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为所述新的可发射指令的执行功耗,PV为预估能力值。
例如,在本公开一实施例提供的指令发射方法中,所述预估能力值为指令平均功耗预估值,或者所述预估能力值为散热能力预估值。
例如,在本公开一实施例提供的指令发射方法中,所述发射条件还包括指令功耗增量限制,所述指令功耗增量限制包括所述指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量,所述功耗增量为所述待发射指令的执行功耗与当前的所述窗口周期内的平均功耗之间的差值,所述窗口周期内的平均功耗为所述窗口周期内的累计功耗与所述窗口周期内包括的时钟周期的数目之间的比值。
例如,在本公开一实施例提供的指令发射方法中,所述当前功耗增量余量为预设最高功耗增量与当前的所述窗口周期内的累计功耗增量之间的差值,所述窗口周期内的累计功耗增量对应于所述窗口周期内从所述指令发射队列中发射的全部可发射指令的功耗增量的总累计。
例如,在本公开一实施例提供的指令发射方法中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗增量采用如下公式表示:TPInew =TPIprev + PInew-APIprev,TPInew为所述新的窗口周期内的累计功耗增量,TPIprev为上一个窗口周期内的累计功耗增量,PInew为所述新的可发射指令的功耗增量,APIprev为所述上一个窗口周期内的平均功耗增量,所述窗口周期内的平均功耗增量为所述窗口周期内的累计功耗增量与所述窗口周期内包括的时钟周期的数目之间的比值。
例如,在本公开一实施例提供的指令发射方法中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:确定所述指令发射队列中的待发射指令的功耗增量是否超过所述当前功耗增量余量;若所述待发射指令的功耗增量大于所述当前功耗增量余量,则所述待发射指令不满足所述发射条件;若所述待发射指令的功耗增量小于或等于所述当前功耗增量余量,则所述待发射指令满足所述发射条件。
例如,在本公开一实施例提供的指令发射方法中,所述指令的操作数状态包括所述指令发射队列中的待发射指令的操作数是否被提供。
例如,在本公开一实施例提供的指令发射方法中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:确定所述指令发射队列中的待发射指令的操作数是否被提供;若所述待发射指令的操作数被提供,则所述待发射指令满足所述发射条件;若所述待发射指令的操作数未被提供,则所述待发射指令不满足所述发射条件。
例如,在本公开一实施例提供的指令发射方法中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:在操作数被提供的待发射指令中,选择执行功耗小于或等于所述当前功耗余量的待发射指令作为所述可发射指令。
例如,在本公开一实施例提供的指令发射方法中,将所述可发射指令从所述指令发射队列中发射,包括:响应于所述指令发射队列中包括多条可发射指令,将所述多条可发射指令中选择操作数最先被提供的可发射指令从所述指令发射队列中发射。
例如,本公开一实施例提供的指令发射方法还包括:响应于所述操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于所述当前功耗余量,不从所述指令发射队列中发射指令。
例如,本公开一实施例提供的指令发射方法还包括:响应于所述操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于所述当前功耗余量,在所述操作数被提供的待发射指令中选择执行功耗最小的待发射指令作为所述可发射指令从所述指令发射队列中发射。
例如,本公开一实施例提供的指令发射方法还包括:获取所述指令发射队列中的待发射指令的功耗信息。
例如,在本公开一实施例提供的指令发射方法中,获取所述指令发射队列中的所述待发射指令的功耗信息,包括:获取所述指令发射队列中满足所述指令的操作数状态的待发射指令的功耗信息。
本公开至少一个实施例还提供一种指令发射装置,该指令发射装置包括可发射指令获取单元和指令发射单元;可发射指令获取单元配置为在指令发射队列中选择满足发射条件的可发射指令,所述发射条件包括指令功耗限制和指令的操作数状态;指令发射单元配置为将所述可发射指令从所述指令发射队列中发射,以用于执行所述可发射指令。
本公开至少一个实施例还提供一种电子设备,该电子设备包括存储器和处理器;存储器非瞬时性地存储有计算机可执行指令;处理器配置为运行所述计算机可执行指令,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的指令发射方法。
本公开至少一个实施例还提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的指令发射方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种处理器核的流水线的示意图;
图2为本公开一些实施例提供的一种指令发射方法的示意性流程图;
图3为本公开一些实施例提供的一种指令发射方法的操作流程的示意图;
图4为本公开一些实施例提供的另一种指令发射方法的操作流程的示意图;
图5为本公开一些实施例提供的一种指令发射方法中的步骤S11的示意性流程图;
图6为本公开一些实施例提供的一种在可发射指令从指令发射队列中发射后累计功耗以及平均功耗的更新过程的示意性流程图;
图7为本公开一些实施例提供的另一种在可发射指令从指令发射队列中发射后累计功耗以及平均功耗的更新过程的示意性流程图;
图8为本公开一些实施例提供的另一种指令发射方法中的步骤S11的示意性流程图;
图9为本公开一些实施例提供的一种指令发射队列的具体示例的示意图;
图10为本公开一些实施例提供的另一种指令发射方法的示意性流程图;
图11为本公开一些实施例提供的再一种指令发射方法中的步骤S11的示意性流程图;
图12为本公开一些实施例提供的再一种指令发射方法的操作流程的示意图;
图13为本公开一些实施例提供的一种在可发射指令从指令发射队列中发射后累计功耗增量以及平均功耗增量的更新过程的示意性流程图;
图14为本公开一些实施例提供的一种指令发射装置的示意性框图;
图15为本公开一些实施例提供的一种电子设备的示意框图;
图16为本公开一些实施例提供的另一种电子设备的示意框图;以及
图17为本公开一些实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
随着集成电路产业的快速发展,电路设计的规模及复杂程度不断增加,相应地,芯片在工作时的系统总功耗也逐渐增大。例如,以具有较大电路设计规模或者复杂电路设计的芯片为例,由于芯片在工作时的系统总功耗可能往往过高,因此系统通常需要维持高供电以及高散热能力,以保证芯片能够正常工作。
但是,高供电以及高散热能力往往会导致芯片的设计成本以及使用成本急剧上升,并且当芯片的系统总功耗过高且产生的热能无法及时驱散时,还会使得芯片的内部温度持续升高,进而可能引发例如电路性能下降、芯片的使用寿命缩短、电源噪声以及信号噪声等一系列不良问题,导致芯片的可靠性以及稳定性大幅度降低。
本公开至少一个实施例提供一种指令发射方法,该指令发射方法包括:在指令发射队列中选择满足发射条件的可发射指令,发射条件包括指令功耗限制和指令的操作数状态;以及将可发射指令从指令发射队列中发射,以用于执行可发射指令。
本公开上述实施例提供的指令发射方法可以应用于具有不同电路结构或不同布局设计的集成电路的设计及研发中,例如,芯片设计及芯片研发中。
本公开上述实施例提供的指令发射方法中,从指令发射队列中发射的可发射指令需要同时满足以下不同的发射条件:指令功耗限制和指令的操作数状态,例如,该指令发射方法既要求从指令发射队列中发射的可发射指令的操作数处于已提供或者已准备好的状态,同时还对可发射指令的执行功耗的数值范围进行限制。由此,有助于使芯片的系统总功耗基本保持在一定数值范围内,例如能够保持在芯片的最高热能设计(Thermal DesignPower,TDP)标准所对应的数值范围内。
因此,本公开上述实施例提供的指令发射方法可以有助于实现对指令发射队列中的各条待发射指令的发射顺序的优化,从而减弱或避免芯片的系统总功耗可能出现的例如在短时间内陡然升高或数值忽高忽低等不良现象,使芯片的系统总功耗的数值能够相对保持平稳,进而使芯片能够工作在相对稳定的状态下,提升芯片的稳定性和可靠性,有利于实现对芯片的整体性能的优化。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
图1示出了一种处理器核的流水线的示意图,图中的带箭头的虚线表示重新定向的指令流。
如图1所示,单核处理器或多核处理器的处理器核(例如CPU核)通过流水线技术提高指令间并行度(Instruction Level Parallelism)。处理器核内部包括多个流水阶段,比如,在流水线送入各种来源的程序计数器,通过多路选择器(Mux)选择出下一程序计数器(PC)之后,该程序计数器对应的指令要经过分支预测(Branch prediction)、指令提取(Instruction fetch)、指令译码(Decode)、指令分发与重命名(Dispatch and Rename)、指令执行(Execute)、指令结束(Retire)等。在各个流水级之间根据需要设置等待队列,这些队列通常是先入先出(FIFO)队列。例如,在分支预测单元之后,设置有分支预测(BP) FIFO队列,以存储分支预测结果;在指令提取单元之后,设置有指令缓存(Instruction Cache,IC) FIFO,以缓存所取得的指令;在指令译码单元之后,设置有译码(DE)FIFO,以缓存译码后的指令;在指令分发与重命名单元之后,设置有结束(RT)FIFO以缓存执行之后等待确认结束的指令。同时处理器核的流水线还包括指令队列,以在指令分发与重命名之后缓存等待指令执行单元执行指令。为了支持高运行频率,每一个流水阶段又可能包含多个流水级(时钟周期)。虽然每个流水级执行有限的操作,但是这样每个时钟可以做到最短,通过提高CPU 的运行频率来提高CPU核的性能。每个流水级也可以通过容纳更多条指令(即超标量(superscalar)技术)来进一步提高处理器核的性能。
图2为本公开一些实施例提供的一种指令发射方法的示意性流程图。
如图2所示,本公开实施例提供的指令发射方法包括步骤S11和S12。
步骤S11:在指令发射队列中选择满足发射条件的可发射指令,发射条件包括指令功耗限制和指令的操作数状态。
步骤S12:将可发射指令从指令发射队列中发射,以用于执行可发射指令。
例如,对于上述步骤S11,可发射指令为指令发射队列中同时满足至少以下两种不同发射条件的待发射指令:满足指令功耗限制以及满足指令的操作数状态。例如,指令的操作数状态包括待发射指令当前是否已处于可执行状态或者该待发射指令当前是否已准备好,例如用于执行该条待发射指令的操作数、操作环境等是否已准备充分。例如,指令功耗限制包括对于指令执行时的功耗需求的数值限制,例如可以包括待发射指令执行时的执行功耗是否在限定的功耗数值范围内。
例如,对于上述步骤S12,将同时满足上述指令功耗限制以及指令的操作数状态的可发射指令从指令发射队列中发射,由此在芯片中的相应模块或单元接收到发射的该可发射指令后,可以执行该可发射指令,从而实现该可发射指令的相应功能或操作等。
本公开的实施例提供的指令发射方法中,从指令发射队列中发射的可发射指令需要至少同时满足指令功耗限制和指令的操作数状态,例如,该指令发射方法既要求从指令发射队列中发射的可发射指令的操作数处于已提供或者已准备好的状态,同时还对可发射指令的执行功耗的数值范围进行限制。
这样,在该可执行指令从指令发射队列中发射并执行后,有利于使芯片的系统总功耗基本保持在一定的合理数值范围内,例如能够保持在与芯片的最高热能设计(ThermalDesign Power,TDP)标准对应的数值范围内,进而使芯片的工作频率、工作电压等能效参数均能够分别保持在相对稳定且合理的数值范围内。由此,有助于使芯片能够基本保持在相对稳定的工作状态下,减弱或避免芯片的系统总功耗可能出现的例如忽高忽低或数值在短时间内发生急剧变化等不良现象,从而改善芯片的整体工作性能,延长芯片的使用寿命,提升芯片的稳定性和可靠性。
图3为本公开一些实施例提供的一种指令发射方法的操作流程的示意图,图4为本公开一些实施例提供的另一种指令发射方法的操作流程的示意图。需要说明的是,除对发射条件中的指令功耗限制和指令的操作数状态进行判断的操作流程的执行顺序不同以外,图3和图4所示的指令发射方法中的其他操作流程均基本相同或相似,重复之处不再赘述。
例如,如图3所示,在本公开的一些实施例中,可以对指令发射队列中的待发射指令是否满足指令功耗限制以及是否满足指令的操作数状态同时进行判断,并在确定该待发射指令同时满足指令功耗限制和指令的操作数状态的情况下,确定该待发射指令满足发射条件,可以作为可发射指令从指令发射队列中发射。
例如,在图3所示的实施例中,对于待发射指令是否满足指令功耗限制的判断过程以及是否满足指令的操作数状态的判断过程之间的执行顺序不作具体限制。例如,对于每条待发射指令均需要分别判断该条待发射指令是否满足指令功耗限制以及是否满足指令的操作数状态,例如,指令功耗限制的判断和指令的操作数状态的判断之间不具有因果关系或必然联系。
例如,在当前的指令发射队列中存在满足发射条件的多条可发射指令的情况下,可以对该多条可发射指令进行排序并挑选当前最先发射的可发射指令。例如,可以根据该多条可发射指令进入指令发射队列的顺序(或者例如还可以根据该多条可发射指令中的操作数被提供的顺序等)对该多条可发射指令进行排序,并按照该多条可发射指令进入指令发射队列的先后顺序将该多条可发射指令依次从指令发射队列中发射,例如,在该多条可发射指令中,将最先进入指令发射队列的可发射指令优先从指令发射队列中发射。
又例如,如图4所示,在本公开的一些实施例中,也可以是在对指令发射队列中的待发射指令是否满足指令的操作数状态进行判断后,再对满足指令的操作数状态的待发射指令进行是否满足指令功耗限制的判断,也即,在满足指令的操作数状态的待发射指令中,进一步判断这些待发射指令是否满足指令功耗限制,进而确定可发射指令。例如,在某条待发射指令不满足指令的操作数状态的情况下,则不需要再对该条待发射指令是否满足指令功耗限制进行进一步判断。由此,可以简化整体操作流程,节约计算成本,从而有助于实现对选择可发射指令的操作过程的优化。
需要说明的是,在本公开的其他一些实施例中,也可以是对指令发射队列中的待发射指令是否满足指令功耗限制进行判断后,再对满足指令功耗限制的待发射指令进行是否满足指令的操作数状态的判断,也即,在满足指令功耗限制的待发射指令中,进一步判断这些待发射指令是否满足指令的操作数状态,进而确定可发射指令。例如,在某条待发射指令不满足指令功耗限制的情况下,则不需要再对该条待发射指令是否满足指令的操作数状态进行进一步判断。
例如,在通常情况下,当芯片中的系统总功耗过高且产生的热能无法及时有效地被驱散时,会使得芯片内部的温度持续升高,同时还可能会引起例如电路性能下降、电源噪声以及信号噪声等一系列不良问题。并且,芯片长期工作在高温状态下也会对芯片的使用寿命以及整体性能等产生严重的不良影响。
芯片的系统总功耗通常由静态功耗和动态功耗两部分组成。静态功耗通常是由于例如晶体管中的漏电现象导致,静态功耗的大小通常由供电电压、阈值电压以及温度等因素共同决定,因此,当温度上升时可能会导致静态功耗急剧上升,从而引发芯片的系统总功耗的急剧上升。动态功耗通常是由例如晶体管的翻转等操作而产生,动态功耗的大小通常由负载电容、供电电压、晶体管的翻转率以及工作频率等多种因素共同决定,并且在上述多种因素中,除负载电容是由芯片本身的结构特性决定以外,其它因素通常都由芯片工作时的工作状态决定。
在目前的芯片设计中,通常采用例如动态电压频率调整(Dynamic VoltageFrequency Scaling,DVFS)技术、压降检测(Droop Detect)技术等,通过例如降低芯片中的总体信号翻转率、工作频率或工作电压等来降低芯片中的动态功耗,以达到降低芯片的系统总功耗的目的。
例如,对于目前普遍采用的用于调节动态功耗的动态电压频率调整(DynamicVoltage Frequency Scaling,DVFS)技术,该DVFS技术中往往需要花费较长时间来监测芯片内部的动态功耗变化,同时还需要通过一系列较为复杂的设置后才能完成调频调压,因而导致该方法在时间上的调节粒度较粗糙,无法对系统中的细粒度变化行为进行及时响应。因此,采用该DVFS技术的功耗调整策略无法及时检测出芯片中例如功耗值忽高忽低或者在短时间内发生急剧变化的动态功耗变化,仍然可能导致芯片间断性地工作在高于芯片的最高热能设计(TDP)所对应的最高标准数值的状态下,导致对芯片的性能产生严重的不利影响。
相似地,对于目前普遍采用的另一压降检测(Droop Detect)技术而言,该技术仅能起到电压下降预防作用,而当电压下降的恶化情况超过预设值或预设标准时,该方法同样也无法及时有效地缓解电压在短时间内发生急剧下降的概率,同时还会对芯片的性能产生不利影响。
相比于上述两种普遍采用的功率调节方法,本公开的实施例提供的指令发射方法中将指令的操作数状态以及指令功耗限制同时作为在指令发射队列中选择可发射指令的条件,例如,从操作数已准备好(或操作数已提供)且执行功耗满足当前功耗余量的待发射指令中挑选出可以从指令发射队列中发射的可发射指令。由此,既可以减弱或避免芯片的系统总功耗在短时间内陡然升高,同时也可以避免芯片的系统总功耗可能出现的例如忽高忽低或数值在短时间内发生急剧变化等不良现象,使芯片的系统总功耗能够相对保持在较为平稳的数值变化范围内,进而使芯片能够工作在相对稳定的状态下,从而改善芯片的整体工作性能,延长芯片的使用寿命,提升芯片的稳定性和可靠性。
下面将结合本公开的一些实施例对判断指令发射队列中的待发射指令是否满足指令功耗限制以及指令的操作数状态的具体流程及步骤等进行说明。
例如,在本公开的一些实施例中,上述步骤S11中的指令功耗限制包括指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量。
例如,待发射指令的执行功耗为该条待发射指令执行时在一个时钟周期内所需消耗的总能量。例如,该时钟周期可以设置为芯片的机器周期,例如也可以称为CPU周期;或者,该时钟周期也可以设置为芯片中的一个时钟脉冲信号所需要的时间等,例如仅为上述CPU周期中的一部分时间,本公开的实施例对该时钟周期的具体限定方式或设置标准等不作限制。
例如,当前功耗余量可以用于表示当前芯片中的能量消耗状态。例如,在保证芯片的系统总功耗不超过芯片的最高热能设计(TDP)所对应的最高标准数值的情况下,除芯片中正在执行的指令以外,芯片内部还能够提供的用于执行其他新的指令的最大工作能力即可表示为当前功耗余量,也即,当前芯片中对于新的执行指令能够允许的最大功耗。
在本公开的一些实施例中,为了即时掌握芯片在短时间内的能量消耗状态,可以将一个时钟周期或多个时钟周期作为一个窗口周期,例如作为一个滑动窗口周期,并在每个窗口周期内对芯片的功耗数据进行实时监测,从而避免芯片的系统总功耗过高,例如避免芯片的系统总功耗超过芯片的最高热能设计(TDP)所对应的最高标准数值,使芯片能够工作在相对稳定的状态下,进而改善芯片的整体工作性能,提升芯片的稳定性和可靠性。
图5为本公开一些实施例提供的一种指令发射方法中的步骤S11的示意性流程图。
如图5所示,在本公开的一些实施例中,上述步骤S11中的在指令发射队列中选择满足发射条件的可发射指令包括以下步骤S101至S103。
步骤S101:确定指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量。
若待发射指令的执行功耗大于当前功耗余量(也即,“YES”),则执行步骤S102:确定待发射指令不满足发射条件。进而,可以确定该待发射指令当前不可以作为可发射指令从指令发射队列中发射。
若待发射指令的执行功耗小于或等于当前功耗余量(也即,“NO”),则执行步骤S103:确定待发射指令满足发射条件。进而,在该待发射指令满足指令的操作数状态的条件下,确定该待发射指令当前可以作为可发射指令从指令发射队列中发射。
例如,在计算当前功耗余量以确定指令发射队列中的待发射指令是否满足发射条件从而能够被选择为可发射指令时,可以将当前功耗余量设定为预设最高功耗与当前的窗口周期内的累计功耗之间的差值。
例如,该预设最高功耗可以为芯片的最高热能设计(TDP)所对应的最高标准数值,或者也可以为例如用于衡量芯片的工作性能或标准的其他数值,本公开的实施例对此不作具体限制。
例如,窗口周期可以设定为包括一个或多个时钟周期,例如该窗口周期可以仅为一个时钟周期,或者也可以由多个连续的时钟周期构成。例如,窗口周期为滑动窗口周期,一个窗口周期内的累计功耗对应于该窗口周期内从指令发射队列中发射的全部可发射指令的执行功耗的总累计。例如,该窗口周期内的累计功耗的数值可以等于或近似等于该窗口周期内从指令发射队列中发射的全部可发射指令的执行功耗的总累计值。
例如,以窗口周期由三个时钟周期构成为例,假设在第一个时钟周期中从指令发射队列中发射了执行功耗为PC1的可发射指令A,在第二个时钟周期中从指令发射队列中发射了执行功耗为PC2的可发射指令B,在第三个时钟周期中从指令发射队列中发射了执行功耗为PC3的可发射指令C,则该窗口周期内的累计功耗TPC的计算公式可以为:TPC = 4*PC1/9+2*PC2/3+PC3,该窗口周期内的平均功耗APC为TPC/3,也即,APC = TPC/3=4*PC1/27+2*PC2/9+PC3/3。
又例如,以窗口周期由三个时钟周期构成为例,假设在第一个时钟周期中从指令发射队列中发射了执行功耗为PC1的可发射指令A,在第二个时钟周期中从指令发射队列中发射了执行功耗为PC2的可发射指令B,在第三个时钟周期中从指令发射队列中发射了执行功耗为PC3的可发射指令C以及执行功耗为PC4的可发射指令D,则该窗口周期内的累计功耗TPC的计算公式可以为:TPC = 4*PC1/9+2*PC2/3+PC3+PC4,该窗口周期内的平均功耗APC为TPC/3,也即,APC = TPC/3= 4*PC1/27+2*PC2/9+PC3/3+PC4/3。
例如,以预设最高功耗为芯片的最高热能设计(TDP)所对应的最高标准数值PCmax为例,当前功耗余量R1即为该预设最高功耗PCmax与当前窗口周期内的累计功耗TPC之间的差值,也即,R1=PCmax-TPC。对于指令发射队列中的待发射指令,如果该待发射指令的执行功耗PC不超过预设最高功耗PCmax与当前窗口周期内的累计功耗TPC之间的差值R1,也即,PC≤PCmax-TPC,则该待发射指令满足指令功耗限制;如果该待发射指令的执行功耗PC超过预设最高功耗PCmax与当前窗口周期内的累计功耗TPC之间的差值R1,也即,PC>PCmax-TPC,则该待发射指令不满足指令功耗限制。
需要说明的是,在本公开的一些实施例中,在一个时钟周期内可以从指令发射队列中仅发射一条可发射指令,或者在一个时钟周期内也可以从指令发射队列中同时发射多条可发射指令,本公开的实施例对各时钟周期内从指令发射队列中发射的可发射指令的数目不作具体限制。例如,在从指令发射队列中选择可发射指令时,如果多条可发射指令的执行功耗的总和不超过当前功耗余量,则可以将该多条可发射指令同时从指令发射队列中发射。
图6为本公开一些实施例提供的一种在可发射指令从指令发射队列中发射后累计功耗以及平均功耗的更新过程的示意性流程图,图7为本公开一些实施例提供的另一种在可发射指令从指令发射队列中发射后累计功耗以及平均功耗的更新过程的示意性流程图。
需要说明的是,在图6和图7所示的基于上一个窗口周期内的累计功耗TPCprev计算新的窗口周期内的累计功耗TPCnew的过程中,除需要减去的具体功耗数值不同以外,例如分别需要减去上一个窗口周期内的平均功耗APCprev或预估能力值PV以外,图6和图7所示的累计功耗以及平均功耗的更新过程中的其他操作流程均基本相同或相似,重复之处不再赘述。
例如,在本公开的一些实施例中,如图6所示,在新的可发射指令从指令发射队列中发射以用于实现执行该新的可发射指令的情况下,新的窗口周期内的累计功耗可以采用如下公式表示:
TPCnew = TPCprev+PCnew-APCprev,
其中,TPCnew为新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为新的可发射指令的执行功耗,APCprev为上一个窗口周期内的平均功耗。例如,上一个窗口周期内的平均功耗APCprev为上一个窗口周期内的累计功耗TPCprev与窗口周期内包括的时钟周期的数目m之间的比值。
例如,对于每个新的窗口周期,在新的可发射指令从指令发射队列中发射后,需要在上一个窗口周期内的累计功耗TPCprev的基础上,加上新的可发射指令的执行功耗PCnew,再减去上一个窗口周期内的平均功耗APCprev,进而得到新的窗口周期内的累计功耗TPCnew,也即当前窗口周期内的累计功耗TPCnew。由此,在将预设最高功耗减去当前窗口周期内的累计功耗TPCnew后,可以确定当前功耗余量,并根据当前功耗余量在指令发射队列中选择相应的可发射指令。
例如,在计算该新的窗口周期之后的下一个窗口周期内的累计功耗时,可以利用上述得到的新的窗口周期内的累计功耗TPCnew对窗口周期内的累计功耗的数值进行更新,以用于该下一个窗口周期内的累计功耗的计算。例如,在计算下一个窗口周期内的累计功耗时,则将该下一个窗口周期作为新的窗口周期,上述当前窗口周期内的累计功耗TPCnew则作为相对于该下一个窗口周期的上一个窗口周期内的累计功耗,从而依次实现每个窗口周期内的累计功耗以及平均功耗的更新及计算过程。
换言之,基于图6所示的更新过程,对于每个新的窗口周期内的累计功耗TPCnew,分别通过在上一个窗口周期内的累计功耗TPCprev的基础上递加新的可发射指令的执行功耗PCnew,并递减上一个窗口周期内的平均功耗APCprev而得到。
例如,在图6所示的实施例中,对于每个新的窗口周期,均需要减去上一个窗口周期内的平均功耗APCprev,由此可以提高获得的新的窗口周期内的累计功耗TPCnew的准确性和可靠性,进而提高根据该新的窗口周期内的累计功耗TPCnew得到的当前功耗余量的准确性和可靠性,从而有利于优化从指令发射队列中选择可发射指令的实现过程。
例如,在本公开的一些实施例中,如图7所示,在新的可发射指令从指令发射队列中发射以用于实现执行该新的可发射指令的情况下,新的窗口周期内的累计功耗可以采用如下公式表示:
TPCnew = TPCprev+PCnew-PV,
其中,TPCnew为新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为新的可发射指令的执行功耗,PV为预估能力值。
例如,对于每个新的窗口周期,在新的可发射指令从指令发射队列中发射后,需要在上一个窗口周期内的累计功耗TPCprev的基础上,加上新的可发射指令的执行功耗PCnew,再减去预估能力值PV,进而得到新的窗口周期内的累计功耗TPCnew,也即当前窗口周期内的累计功耗TPCnew。由此,在将预设最高功耗减去当前窗口周期内的累计功耗TPCnew后,可以确定当前功耗余量,并根据当前功耗余量在指令发射队列中选择相应的可发射指令。
例如,在图7所示的实施例中,对于每个新的窗口周期,该预估能力值PV可以均始终保持相同,从而减少系统内部所需的运算量,降低操作成本及计算成本,进而有利于实现对从指令发射队列中选择可发射指令的操作过程的优化。
例如,该预估能力值PV可以为指令平均功耗预估值,例如该指令平均功耗预估值可以根据芯片中可能产生的全部或大部分指令的执行功耗的平均值确定;或者,该预估能力值PV也可以为散热能力预估值,例如该散热能力预估值可以根据芯片在每个窗口周期或每个时钟周期内的平均散热能力确定,本公开的实施例对该预估能力值的具体数值以及设置方式等均不作具体限制。
例如,在本公开的一些实施例中,指令的操作数状态包括指令发射队列中的待发射指令的操作数是否被提供。
图8为本公开一些实施例提供的另一种指令发射方法中的步骤S11的示意性流程图。
如图8所示,在本公开的一些实施例中,上述步骤S11中的在指令发射队列中选择满足发射条件的可发射指令还包括以下步骤S201至S203。
步骤S201:确定指令发射队列中的待发射指令的操作数是否被提供。
若待发射指令的操作数被提供(也即,“YES”),则执行步骤S202:确定待发射指令满足发射条件。进而,在该待发射指令满足指令功耗限制的条件下,确定该待发射指令当前可以作为可发射指令从指令发射队列中发射。
若待发射指令的操作数未被提供(也即,“NO”),则执行步骤S203:确定待发射指令不满足发射条件。进而,可以确定该待发射指令当前不可以作为可发射指令从指令发射队列中发射。
例如,在执行上述步骤S201至S203后,在本公开的一些实施例中,图2中所示的步骤S11还包括以下步骤S301。
步骤S301:在操作数被提供的待发射指令中,选择执行功耗小于或等于当前功耗余量的待发射指令作为可发射指令。
例如,对于上述步骤S301,可以在对指令发射队列中的各待发射指令的操作数是否被提供进行判断并确定操作数被提供的待发射指令后,再对操作数被提供的待发射指令是否满足指令功耗限制进行进一步判断,并从操作数被提供的待发射指令中选择执行功耗小于或等于当前功耗余量的可发射指令。也即,在上述步骤S301的执行过程中,仅对操作数被提供的待发射指令的执行功耗进行判断,不对指令发射队列中操作数未被提供的待发射指令的执行功耗进行判断。由此,可以简化整体操作流程,节约计算成本,从而有利于实现对选择可发射指令的实现过程的优化。
例如,在本公开的一些实施例中,图2中所示的步骤S12包括以下步骤S401。
步骤S401:响应于指令发射队列中包括多条可发射指令,将多条可发射指令中选择操作数最先被提供的可发射指令从指令发射队列中发射。
例如,在当前的指令发射队列中存在满足发射条件的多条可发射指令的情况下,可以根据该多条可发射指令中的操作数被提供的顺序对该多条可发射指令进行排序,并按照该多条可发射指令中操作数被提供的先后顺序将该多条可发射指令依次从指令发射队列中发射。例如,在该多条可发射指令中,将操作数最先被提供的可发射指令优先从指令发射队列中发射,从而提升芯片内部的工作效率,实现对整体设计流程的优化。
图9为本公开一些实施例提供的一种指令发射队列的具体示例的示意图。下面结合图9所示的指令发射队列对本公开实施例提供的指令发射方法进行示例性说明。需要说明的是,图9所示的指令发射队列中包括的待发射指令以及可发射指令的数目、状态等均仅是示例性说明,本公开的实施例包括但并不仅限于此。
例如,如图9所示,该指令发射队列中包括(n+1)条待发射指令,例如n可以为大于5的任意整数,该(n+1)条待发射指令按照从待发射指令0至待发射指令n的顺序依次进入该指令发射队列,也即,待发射指令0最先进入该指令发射队列,待发射指令n最后进入该指令发射队列。
以该指令发射队列中的待发射指令0、待发射指令1、待发射指令2、待发射指令3、待发射指令4以及待发射指令5为例,待发射指令0、待发射指令3和待发射指令4的操作数未准备好,也即,待发射指令0、待发射指令3和待发射指令4的操作数没有被提供;待发射指令1、待发射指令2和待发射指令5的操作数已准备好,也即,待发射指令1、待发射指令2和待发射指令5的操作数已被提供。因此,可以仅对待发射指令1、待发射指令2和待发射指令5的执行功耗进行判断,以确定待发射指令1、待发射指令2和待发射指令5是否满足发射条件,而无需对待发射指令0、待发射指令3和待发射指令4的执行功耗进行判断。由此,可以简化整体操作流程,节约计算成本,从而有利于实现对可发射指令的选择过程的优化。
例如,对于操作数已准备好的待发射指令1、待发射指令2和待发射指令5,待发射指令1的执行功耗大于当前功耗余量,待发射指令2的执行功耗小于当前功耗余量,待发射指令5的执行功耗小于当前功耗余量。因此,可以确定:待发射指令1不满足发射条件,不可以作为可发射指令从该指令发射队列中发射;待发射指令2和待发射指令5均满足发射条件,可以作为可发射指令从该指令发射队列中发射,也即,待发射指令2和待发射指令5被选择为可发射指令2和可发射指令5。
例如,对于满足发射条件的可发射指令2和可发射指令5,可以根据可发射指令2和可发射指令5进入该指令发射队列的先后顺序,确定从指令发射队列中发射可发射指令2和可发射指令5的顺序,例如,由于可发射指令2相比于可发射指令5先进入该指令发射队列,则从该指令发射队列中先发射可发射指令2。或者,也可以根据可发射指令2和可发射指令5中的操作数被提供的顺序,确定从指令发射队列中发射可发射指令2和可发射指令5的顺序,例如,如果可发射指令5中的操作数相比于可发射指令2中的操作数先被提供,则从该指令发射队列中先发射可发射指令5。本公开实施例对于指令发射队列中满足发射条件的多个可发射指令之间的发射顺序不作具体限制。
例如,在本公开的一些实施例中,该指令发射方法还包括以下步骤S13。
步骤S13:响应于操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于当前功耗余量,不从指令发射队列中发射指令。
例如,对于上述步骤S13,如果每条待发射指令的执行功耗均大于当前功耗余量,也即,每条待发射指令均不满足指令功耗限制,则不从指令发射队列中发射任何指令,以避免芯片的系统总功耗超过例如芯片的最高热能设计(TDP)标准对应的数值范围。进而,有助于使芯片的工作频率、工作电压等能效参数均能够分别保持在相对稳定且合理的数值范围内,使芯片能够基本保持在相对稳定的工作状态下,从而减弱或避免芯片的系统总功耗可能出现的例如数值忽高忽低或数值在短时间内发生急剧变化等不良现象。
例如,在本公开的一些实施例中,该指令发射方法还包括以下步骤S14。
步骤S14:响应于操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于当前功耗余量,在操作数被提供的待发射指令中选择执行功耗最小的待发射指令作为可发射指令从指令发射队列中发射。
例如,对于上述步骤S14,如果每条待发射指令的执行功耗均大于当前功耗余量,也即,每条待发射指令均不满足指令功耗限制,则从操作数被提供的待发射指令中选择执行功耗最小的待发射指令作为可发射指令,也即,从满足指令的操作数状态的待发射指令中选择虽然不满足指令功耗限制但执行功耗最小的待发射指令,作为从指令发射队列中发射的可发射指令。由此,可以避免芯片在工作过程中出现例如空档期或某一个时钟周期闲置,从而提升芯片的工作效率。
图10为本公开一些实施例提供的另一种指令发射方法的示意性流程图。需要说明的是,除步骤S20以外,图10中所示的指令发射方法中的其他步骤S21至S22均与图2中所示的指令发射方法中的步骤S11和S12基本相同或相似,重复之处不再赘述。
如图10所示,该指令发射方法还包括以下步骤S20。
步骤S20:获取指令发射队列中的待发射指令的功耗信息。
例如,对于上述步骤S20,待发射指令的功耗信息包括待发射指令的执行功耗,从而可以根据该待发射指令的执行功耗判断该待发射指令是否满足指令功耗限制,例如该待发射指令的执行功耗是否超过当前功耗余量,进而确定该待发射指令是否可以作为可发射指令。
需要说明的是,在本公开的一些实施例中,图10中所示的步骤S20可以在步骤S21之前执行,或者也可以在步骤S21之后执行,或者步骤S20也可以与步骤S21同步执行。
例如,在本公开的一些实施例中,上述步骤S20包括以下步骤S210。
步骤S210:获取指令发射队列中满足指令的操作数状态的待发射指令的功耗信息。
例如,对于待发射指令的功耗信息的获取操作也可以在确定该待发射指令满足指令的操作数状态的条件下进行,例如,仅对满足指令的操作数状态的待发射指令执行获取功耗信息的操作,从而有助于简化操作流程,节约操作成本。
在本公开的一些实施例中,上述步骤S11中的发射条件还包括指令功耗增量限制,该指令功耗增量限制包括指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量,功耗增量为待发射指令的执行功耗与当前的窗口周期内的平均功耗之间的差值。窗口周期内的平均功耗为窗口周期内的累计功耗与窗口周期内包括的时钟周期的数目之间的比值。
由此,在待发射指令需要满足指令功耗限制以及指令的操作数状态的基础上,被选择为可发射指令的待发射指令还需要同时满足指令功耗增量限制,从而可以更好地减弱或避免芯片的系统总功耗在短时间内发生急剧变化,例如可以更好地减弱或避免芯片的系统总功耗在短时间内陡然升高,或者数值出现例如忽高忽低等不良现象等。进而,可以使芯片的系统总功耗能够保持在相对平稳的状态,使芯片的工作状态能够相对保持正常稳定,从而改善芯片的整体工作性能,延长芯片的使用寿命,提升芯片的稳定性和可靠性。
例如,基于该指令功耗增量限制,当识别出指令发射队列中的某一条待发射指令的执行功耗突然大幅增加时,例如,该待发射指令的执行功耗相比于当前窗口周期内的平均功耗的变化量较大时,则可以通过该指令功耗增量限制,不将该条待发射指令作为可发射指令。由此,可以避免在下一个时钟周期内该条待发射指令从指令发射队列中发射后可能引起的例如芯片的工作电压在短时间内发生急剧变化或较大波动等不良现象,从而有助于使芯片的工作状态能够相对保持稳定,改善芯片的整体工作性能,提升芯片的稳定性和可靠性。
图11为本公开一些实施例提供的再一种指令发射方法中的步骤S11的示意性流程图。
如图11所示,在本公开的一些实施例中,上述步骤S11中的在指令发射队列中选择满足发射条件的可发射指令包括以下步骤S501至S503。
步骤S501:确定指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量。
若待发射指令的功耗增量大于当前功耗增量余量(也即,“YES”),则执行步骤S502:确定待发射指令不满足发射条件。进而,确定该待发射指令当前不可以作为可发射指令从指令发射队列中发射。
若待发射指令的功耗增量小于或等于当前功耗增量余量(也即,“NO”),则执行步骤S503:确定待发射指令满足发射条件。进而,在该待发射指令满足指令的操作数状态以及指令功耗限制的条件下,确定该待发射指令当前可以作为可发射指令从指令发射队列中发射。
图12为本公开一些实施例提供的再一种指令发射方法的操作流程的示意图。需要说明的是,除加入指令功耗增量限制的条件以外,图12所示的指令发射方法的操作流程与图3所示的指令发射方法的操作流程基本相同或相似,重复之处不再赘述。
例如,在图12所示的指令发射方法的操作流程中,可以对指令发射队列中的待发射指令是否满足指令功耗限制、指令功耗增量限制以及指令的操作数状态同时进行判断,并在确定该待发射指令同时满足指令功耗限制、指令功耗增量限制和指令的操作数状态的情况下,确定该待发射指令满足发射条件,可以作为可发射指令从指令发射队列中发射。
需要说明的是,在本公开的其他一些实施例中,也可以是在对指令发射队列中的待发射指令是否满足指令的操作数状态进行判断后,再对满足指令的操作数状态的待发射指令进行是否满足指令功耗限制以及是否满足指令功耗增量限制的判断,也即,在满足指令的操作数状态的待发射指令中,进一步基于指令功耗限制以及指令功耗增量限制确定可发射指令。由此,可以简化整体操作流程,节约计算成本,从而有助于实现对选择可发射指令的操作流程的优化。例如,除加入指令功耗增量限制的条件以外,上述指令发射方法的操作流程与图4所示的指令发射方法的操作流程基本相同或相似,重复之处不再赘述。
例如,在本公开的一些实施例中,当前功耗增量余量为预设最高功耗增量与当前的窗口周期内的累计功耗增量之间的差值。
例如,该预设最高功耗增量可以例如设置为用于衡量芯片的工作性能或标准的数值,例如该预设最高功耗增量的设置标准可以基于避免芯片的系统总功耗出现例如忽高忽低或数值在短时间内发生急剧变化等不良现象。
例如,以预设最高功耗增量为PImax为例,当前功耗增量余量R2即为该预设最高功耗增量PImax与当前窗口周期内的累计功耗增量TPI之间的差值,也即,R2=PImax-TPI。对于指令发射队列中的待发射指令,如果该待发射指令的功耗增量PI不超过预设最高功耗增量PImax与当前窗口周期内的累计功耗增量TPI之间的差值R2,也即,PI≤PImax-TPI,则该待发射指令满足指令功耗增量限制;如果该待发射指令的功耗增量PI超过预设最高功耗增量PImax与当前窗口周期内的累计功耗增量TPI之间的差值R2,也即,PI>PImax-TPI,则该待发射指令不满足指令功耗增量限制。
图13为本公开一些实施例提供的一种在可发射指令从指令发射队列中发射后累计功耗增量以及平均功耗增量的更新过程的示意性流程图。
需要说明的是,除加入关于累计功耗增量以及相应的平均功耗增量的更新过程以外,图13所示的操作流程与图6所示的操作流程基本相同或相似,并且图13中所示的累计功耗增量的更新过程的原理以及具体步骤等大体上均与图6中所示的累计功耗的更新过程基本相同或相似,具体内容可以参考关于图6所示的实施例中的相应描述,重复之处在此不再赘述。
例如,在本公开的一些实施例中,如图13所示,响应于新的可发射指令从指令发射队列中发射以用于实现执行该新的可发射指令的情况下,新的窗口周期内的累计功耗增量采用如下公式表示:
TPInew =TPIprev+PInew-APIprev,
其中,TPInew为新的窗口周期内的累计功耗增量,TPIprev为上一个窗口周期内的累计功耗增量,PInew为新的可发射指令的功耗增量,APIprev为上一个窗口周期内的平均功耗增量。例如,上一个窗口周期内的平均功耗增量APIprev为上一个窗口周期内的累计功耗增量TPIprev与窗口周期内包括的时钟周期的数目m之间的比值。
例如,对于每个新的窗口周期,在新的可发射指令从指令发射队列中发射后,需要在上一个窗口周期内的累计功耗增量TPIprev的基础上,加上新的可发射指令的功耗增量PInew,再减去上一个窗口周期内的平均功耗增量APIprev,进而得到新的窗口周期内的累计功耗增量TPInew,也即当前窗口周期内的累计功耗增量TPI。由此,可以根据预设最高功耗增量PImax以及当前窗口周期内的累计功耗增量TPI,确定当前功耗增量余量,并根据当前功耗增量余量在指令发射队列中选择相应的可发射指令。
例如,在计算新的窗口周期之后的下一个窗口周期内的累计功耗增量时,可以利用上述得到的新的窗口周期内的累计功耗增量TPInew对窗口周期内的累计功耗增量的数值进行更新,以用于该下一个窗口周期内的累计功耗增量的计算。例如,在计算下一个窗口周期内的累计功耗增量时,则将该下一个窗口周期作为新的窗口周期,上述当前窗口周期内的累计功耗增量TPInew则作为相对于该下一个窗口周期的上一个窗口周期内的累计功耗增量,从而依次实现每个窗口周期内的累计功耗增量以及平均功耗增量的更新及计算过程。
本公开实施例提供的指令发射方法在保证芯片内部的工作效率以及性能的前提下,可以有效地减弱或避免芯片的系统总功耗在短时间内发生急剧变化或数值出现忽高忽低等不良现象,由此,通过设置发射条件以在指令发射队列中选择用于发射的可发射指令,可以实现对于芯片内部的系统总功耗的实时动态调节,同时还可以提升该调节过程的及时性和精确性,从而使芯片能够工作在相对稳定的状态下,提升芯片的稳定性和可靠性。
需要说明的是,本公开的实施例对指令发射队列中包括的指令的具体数量、功能等均不作具体限制。
需要说明的是,在本公开的实施例中,本公开上述各个实施例提供的指令发射方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文描述的指令发射方法的流程包括特定顺序出现的多个操作,但是应该清楚地了解,多个操作的顺序并不受限制。上文描述的指令发射方法可以执行一次,也可以按照预定条件执行多次。
本公开至少一个实施例还提供一种指令发射装置,该指令发射装置既要求从指令发射队列中发射的可发射指令的操作数处于已提供或者已准备好的状态,同时还对可发射指令的执行功耗的数值范围进行限制,从而有助于使芯片的系统总功耗基本保持在一定数值范围内,例如能够保持在芯片的最高热能设计(Thermal Design Power,TDP)标准所对应的数值范围内。
图14为本公开一些实施例提供的一种指令发射装置的示意性框图。
例如,如图14所示,该指令发射装置700包括可发射指令获取单元701和指令发射单元702。
可发射指令获取单元701配置为在指令发射队列中选择满足发射条件的可发射指令,发射条件包括指令功耗限制和指令的操作数状态。例如,可发射指令获取单元701可以执行图2中所示的指令发射方法中的步骤S11。
指令发射单元702配置为将可发射指令从指令发射队列中发射,以用于执行可发射指令。例如,指令发射单元702可以执行图2中所示的指令发射方法中的步骤S12。
例如,可发射指令获取单元701和指令发射单元702包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的可发射指令获取单元701和指令发射单元702的一些功能或全部功能。例如,可发射指令获取单元701和指令发射单元702可以是专用硬件器件,用来实现如上所述的可发射指令获取单元701和指令发射单元702的一些或全部功能。例如,可发射指令获取单元701和指令发射单元702可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,可发射指令获取单元701用于实现图2所示的步骤S11,指令发射单元702用于实现图2所示的步骤S12。从而关于可发射指令获取单元701的具体说明可以参考上述指令发射方法的实施例中图2所示的步骤S11的相关描述,关于指令发射单元702的具体说明可以参考上述指令发射方法的实施例中图2所示的步骤S12的相关描述。此外,该指令发射装置700可以实现与前述指令发射方法相似的技术效果,在此不再赘述。
在本公开的一些实施例中,指令功耗限制包括指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量。
例如,可发射指令获取单元701还配置为确定指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量;若待发射指令的执行功耗大于当前功耗余量,则待发射指令不满足发射条件;若待发射指令的执行功耗小于或等于当前功耗余量,则待发射指令满足发射条件。
在本公开的一些实施例中,当前功耗余量为预设最高功耗与当前的窗口周期内的累计功耗之间的差值,窗口周期包括至少一个时钟周期,窗口周期内的累计功耗对应于该窗口周期内从指令发射队列中发射的全部可发射指令的执行功耗的总累计。
例如,该指令发射装置还包括计算单元,该计算单元配置为响应于新的可发射指令从指令发射队列中发射,采用如下公式计算新的窗口周期内的累计功耗:TPCnew =TPCprev + PCnew-APCprev,其中,TPCnew为新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为新的可发射指令的执行功耗,APCprev为上一个窗口周期内的平均功耗。窗口周期内的平均功耗为窗口周期内的累计功耗与窗口周期内包括的时钟周期的数目之间的比值。
例如,该计算单元还配置为响应于新的可发射指令从指令发射队列中发射,采用如下公式计算新的窗口周期内的累计功耗:TPCnew =TPCprev+PCnew-PV,其中,TPCnew为新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为新的可发射指令的执行功耗,PV为预估能力值。
例如,预估能力值为指令平均功耗预估值,或者预估能力值为散热能力预估值。
在本公开的一些实施例中,发射条件还包括指令功耗增量限制,指令功耗增量限制包括指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量,功耗增量为待发射指令的执行功耗与当前的窗口周期内的平均功耗之间的差值,窗口周期内的平均功耗为窗口周期内的累计功耗与窗口周期内包括的时钟周期的数目之间的比值。
例如,当前功耗增量余量为预设最高功耗增量与当前的窗口周期内的累计功耗增量之间的差值,窗口周期内的累计功耗增量对应于窗口周期内从指令发射队列中发射的全部可发射指令的功耗增量的总累计。
例如,该计算单元还配置为响应于新的可发射指令从指令发射队列中发射,采用如下公式计算新的窗口周期内的累计功耗增量:TPInew =TPIprev+PInew-APIprev,其中,TPInew为新的窗口周期内的累计功耗增量,TPIprev为上一个窗口周期内的累计功耗增量,PInew为新的可发射指令的功耗增量,APIprev为上一个窗口周期内的平均功耗增量。窗口周期内的平均功耗增量为窗口周期内的累计功耗增量与窗口周期内包括的时钟周期的数目之间的比值。
例如,可发射指令获取单元701还配置为:确定指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量;若待发射指令的功耗增量大于当前功耗增量余量,则待发射指令不满足发射条件;若待发射指令的功耗增量小于或等于当前功耗增量余量,则待发射指令满足发射条件。
在本公开的一些实施例中,指令的操作数状态包括指令发射队列中的待发射指令的操作数是否被提供。
例如,可发射指令获取单元701还配置为:确定指令发射队列中的待发射指令的操作数是否被提供;若待发射指令的操作数被提供,则待发射指令满足发射条件;若待发射指令的操作数未被提供,则待发射指令不满足发射条件。
例如,可发射指令获取单元701还配置为:在操作数被提供的待发射指令中,选择执行功耗小于或等于当前功耗余量的待发射指令作为可发射指令。
例如,指令发射单元702还配置为:响应于指令发射队列中包括多条可发射指令,将多条可发射指令中选择操作数最先被提供的可发射指令从指令发射队列中发射。
例如,该指令发射装置700还包括指令发射调节单元,该指令发射调节单元配置为:响应于操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于当前功耗余量,不从指令发射队列中发射指令。
例如,该指令发射调节单元还配置为:响应于操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于当前功耗余量,在操作数被提供的待发射指令中选择执行功耗最小的待发射指令作为可发射指令从指令发射队列中发射。
在本公开的一些实施例中,该指令发射装置700还包括功耗信息获取单元,该功耗信息获取单元配置为获取指令发射队列中的待发射指令的功耗信息。
例如,该功耗信息获取单元配置为获取指令发射队列中满足指令的操作数状态的待发射指令的功耗信息。
本公开至少一个实施例还提供一种电子设备,该电子设备包括处理器、存储器和一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于执行本公开任一实施例提供的指令发射方法的指令。
图15为本公开一些实施例提供的一种电子设备的示意框图。如图15所示,该电子设备300包括处理器310和存储器320。存储器320用于非瞬时性地存储有计算机可执行指令(例如一个或多个计算机程序模块)。处理器310用于运行该计算机可执行指令,该计算机可执行指令被处理器310运行时可以执行上文所述的指令发射方法中的一个或多个步骤。存储器320和处理器310可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器310可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器310可以为通用处理器或专用处理器,可以控制电子设备300中的其它组件以执行期望的功能。
例如,存储器320可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器310可以运行一个或多个计算机程序模块,以实现电子设备300的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备300的具体功能和技术效果可以参考上文中关于指令发射方法以及指令发射装置的描述,此处不再赘述。
图16为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备400例如适用于实施本公开实施例提供的指令发射方法。电子设备400可以是终端设备等。需要注意的是,图16示出的电子设备400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图16所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM 430中,还存储有电子设备400操作所需的各种程序和数据。处理装置410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。虽然图16示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述指令发射方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述指令发射方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM 420安装。在该计算机程序被处理装置410执行时,可以实现本公开实施例提供的指令发射方法中限定的功能。
图17为本公开一些实施例提供的一种存储介质的示意图。例如,如图17所示,存储介质500可以为非瞬时性计算机可读存储介质,在存储介质500上可以非暂时性地存储一个或多个计算机可读指令501。例如,当计算机可读指令501由处理器执行时可以执行根据上文所述的指令发射方法中的一个或多个步骤。
例如,该存储介质500可以应用于上述电子设备中,例如,该存储介质500可以包括电子设备中的存储器。
例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。
例如,关于存储介质500的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。存储介质500的具体功能和技术效果等可以参考上文中关于指令发射方法以及指令发射装置的描述,此处不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种指令发射方法,包括:
在指令发射队列中选择满足发射条件的可发射指令,其中,所述发射条件包括指令功耗限制和指令的操作数状态;以及
将所述可发射指令从所述指令发射队列中发射,以用于执行所述可发射指令。
2.根据权利要求1所述的指令发射方法,其中,所述指令功耗限制包括所述指令发射队列中的待发射指令的执行功耗是否超过当前功耗余量。
3.根据权利要求2所述的指令发射方法,其中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,包括:
确定所述指令发射队列中的待发射指令的执行功耗是否超过所述当前功耗余量;
若所述待发射指令的执行功耗大于所述当前功耗余量,则所述待发射指令不满足所述发射条件;
若所述待发射指令的执行功耗小于或等于所述当前功耗余量,则所述待发射指令满足所述发射条件。
4.根据权利要求2或3所述的指令发射方法,其中,所述当前功耗余量为预设最高功耗与当前的窗口周期内的累计功耗之间的差值,
所述窗口周期包括至少一个时钟周期,所述窗口周期内的累计功耗对应于所述窗口周期内从所述指令发射队列中发射的全部可发射指令的执行功耗的总累计。
5.根据权利要求4所述的指令发射方法,其中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗采用如下公式表示:
TPCnew = TPCprev + PCnew-APCprev,
其中,TPCnew为所述新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为所述新的可发射指令的执行功耗,APCprev为所述上一个窗口周期内的平均功耗,
其中,所述窗口周期内的平均功耗为所述窗口周期内的累计功耗与所述窗口周期内包括的时钟周期的数目之间的比值。
6.根据权利要求4所述的指令发射方法,其中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗采用如下公式表示:
TPCnew = TPCprev + PCnew-PV,
其中,TPCnew为所述新的窗口周期内的累计功耗,TPCprev为上一个窗口周期内的累计功耗,PCnew为所述新的可发射指令的执行功耗,PV为预估能力值。
7.根据权利要求6所述的指令发射方法,其中,所述预估能力值为指令平均功耗预估值,或者所述预估能力值为散热能力预估值。
8.根据权利要求4所述的指令发射方法,其中,所述发射条件还包括指令功耗增量限制,
所述指令功耗增量限制包括所述指令发射队列中的待发射指令的功耗增量是否超过当前功耗增量余量,所述功耗增量为所述待发射指令的执行功耗与当前的所述窗口周期内的平均功耗之间的差值,所述窗口周期内的平均功耗为所述窗口周期内的累计功耗与所述窗口周期内包括的时钟周期的数目之间的比值。
9.根据权利要求8所述的指令发射方法,其中,所述当前功耗增量余量为预设最高功耗增量与当前的所述窗口周期内的累计功耗增量之间的差值,
所述窗口周期内的累计功耗增量对应于所述窗口周期内从所述指令发射队列中发射的全部可发射指令的功耗增量的总累计。
10.根据权利要求9所述的指令发射方法,其中,响应于新的可发射指令从所述指令发射队列中发射,新的窗口周期内的累计功耗增量采用如下公式表示:
TPInew = TPIprev + PInew-APIprev,
其中,TPInew为所述新的窗口周期内的累计功耗增量,TPIprev为上一个窗口周期内的累计功耗增量,PInew为所述新的可发射指令的功耗增量,APIprev为所述上一个窗口周期内的平均功耗增量,
其中,所述窗口周期内的平均功耗增量为所述窗口周期内的累计功耗增量与所述窗口周期内包括的时钟周期的数目之间的比值。
11.根据权利要求8所述的指令发射方法,其中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:
确定所述指令发射队列中的待发射指令的功耗增量是否超过所述当前功耗增量余量;
若所述待发射指令的功耗增量大于所述当前功耗增量余量,则所述待发射指令不满足所述发射条件;
若所述待发射指令的功耗增量小于或等于所述当前功耗增量余量,则所述待发射指令满足所述发射条件。
12.根据权利要求2或3所述的指令发射方法,其中,所述指令的操作数状态包括所述指令发射队列中的待发射指令的操作数是否被提供。
13.根据权利要求12所述的指令发射方法,其中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:
确定所述指令发射队列中的待发射指令的操作数是否被提供;
若所述待发射指令的操作数被提供,则所述待发射指令满足所述发射条件;
若所述待发射指令的操作数未被提供,则所述待发射指令不满足所述发射条件。
14.根据权利要求12所述的指令发射方法,其中,在所述指令发射队列中选择满足所述发射条件的所述可发射指令,还包括:
在操作数被提供的待发射指令中,选择执行功耗小于或等于所述当前功耗余量的待发射指令作为所述可发射指令。
15.根据权利要求14所述的指令发射方法,其中,将所述可发射指令从所述指令发射队列中发射,包括:
响应于所述指令发射队列中包括多条可发射指令,将所述多条可发射指令中选择操作数最先被提供的可发射指令从所述指令发射队列中发射。
16.根据权利要求14所述的指令发射方法,还包括:
响应于所述操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于所述当前功耗余量,不从所述指令发射队列中发射指令。
17.根据权利要求14所述的指令发射方法,还包括:
响应于所述操作数被提供的待发射指令中的每条待发射指令的执行功耗均大于所述当前功耗余量,在所述操作数被提供的待发射指令中选择执行功耗最小的待发射指令作为所述可发射指令从所述指令发射队列中发射。
18.根据权利要求1-3任一项所述的指令发射方法,还包括:
获取所述指令发射队列中的待发射指令的功耗信息。
19.根据权利要求18所述的指令发射方法,其中,获取所述指令发射队列中的所述待发射指令的功耗信息,包括:
获取所述指令发射队列中满足所述指令的操作数状态的待发射指令的功耗信息。
20.一种指令发射装置,包括:
可发射指令获取单元,配置为在指令发射队列中选择满足发射条件的可发射指令,其中,所述发射条件包括指令功耗限制和指令的操作数状态;
指令发射单元,配置为将所述可发射指令从所述指令发射队列中发射,以用于执行所述可发射指令。
21.一种电子设备,包括:
存储器,非瞬时性地存储有计算机可执行指令;
处理器,配置为运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-19任一项所述的指令发射方法。
22.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1-19任一项所述的指令发射方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210352627.8A CN114489812A (zh) | 2022-04-06 | 2022-04-06 | 指令发射方法及装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210352627.8A CN114489812A (zh) | 2022-04-06 | 2022-04-06 | 指令发射方法及装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489812A true CN114489812A (zh) | 2022-05-13 |
Family
ID=81488402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210352627.8A Pending CN114489812A (zh) | 2022-04-06 | 2022-04-06 | 指令发射方法及装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489812A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121432A (zh) * | 2016-11-30 | 2018-06-05 | 中科创达软件股份有限公司 | 一种任务运行的控制方法和装置 |
CN110502279A (zh) * | 2019-08-23 | 2019-11-26 | 中国人民解放军国防科技大学 | 一种基于可标记指令的发射队列智能调节方法 |
CN112181616A (zh) * | 2020-07-24 | 2021-01-05 | 华为技术有限公司 | 任务处理方法及相关装置 |
CN112329618A (zh) * | 2020-11-04 | 2021-02-05 | 夏永霞 | 一种基于人工智能的光伏清洁机器人控制方法及系统 |
CN112463218A (zh) * | 2020-11-27 | 2021-03-09 | 海光信息技术股份有限公司 | 指令发射控制方法及电路、数据处理方法及电路 |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
-
2022
- 2022-04-06 CN CN202210352627.8A patent/CN114489812A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121432A (zh) * | 2016-11-30 | 2018-06-05 | 中科创达软件股份有限公司 | 一种任务运行的控制方法和装置 |
CN110502279A (zh) * | 2019-08-23 | 2019-11-26 | 中国人民解放军国防科技大学 | 一种基于可标记指令的发射队列智能调节方法 |
CN112181616A (zh) * | 2020-07-24 | 2021-01-05 | 华为技术有限公司 | 任务处理方法及相关装置 |
CN112329618A (zh) * | 2020-11-04 | 2021-02-05 | 夏永霞 | 一种基于人工智能的光伏清洁机器人控制方法及系统 |
CN112463218A (zh) * | 2020-11-27 | 2021-03-09 | 海光信息技术股份有限公司 | 指令发射控制方法及电路、数据处理方法及电路 |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11366511B2 (en) | Distribution of tasks among asymmetric processing elements | |
US9311152B2 (en) | Methods and apparatuses for load balancing between multiple processing units | |
TWI599960B (zh) | 在多核心處理器中執行電源管理 | |
EP1023656B1 (en) | Localized performance throttling to reduce ic power consumption | |
TWI537821B (zh) | 對每一核心提供電壓及頻率控制之技術 | |
US9588915B2 (en) | System on chip, method of operating the same, and apparatus including the same | |
JP2020505703A (ja) | 適応電力制御ループ | |
JP5311234B2 (ja) | 計算機システムとその動作方法 | |
KR101930752B1 (ko) | 멀티 코어를 포함하는 전자 기기의 전력 제어 방법 및 장치 | |
US11693466B2 (en) | Application processor and system on chip | |
CN110795238B (zh) | 负载计算方法、装置、存储介质及电子设备 | |
US20160370848A1 (en) | Techniques for managing system power using deferred graphics rendering | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
US9588817B2 (en) | Scheduling method and scheduling system for assigning application to processor | |
CN114489812A (zh) | 指令发射方法及装置、电子设备及存储介质 | |
US10114649B2 (en) | Thermal availability based instruction assignment for execution | |
JP4209377B2 (ja) | 半導体装置 | |
US11500444B2 (en) | Intelligent prediction of processor idle time apparatus and method | |
US20230079975A1 (en) | Power management for system-on-chip | |
US20230297432A1 (en) | Current Spike Mitigation Technique for Neural Networks | |
US11347289B2 (en) | Enabling performance features for voltage limited processors | |
JP4530074B2 (ja) | 半導体装置 | |
JPH11110063A (ja) | コンピュータシステム | |
KR20230124248A (ko) | Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템 |
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 |