CN115994503A - 一种芯片及其功耗控制方法 - Google Patents
一种芯片及其功耗控制方法 Download PDFInfo
- Publication number
- CN115994503A CN115994503A CN202310036699.6A CN202310036699A CN115994503A CN 115994503 A CN115994503 A CN 115994503A CN 202310036699 A CN202310036699 A CN 202310036699A CN 115994503 A CN115994503 A CN 115994503A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- instruction
- instruction execution
- chip
- execution unit
- 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
Images
Classifications
-
- 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
- Power Sources (AREA)
Abstract
本申请提供一种芯片及其功耗控制方法,所述芯片包括:一个或多个指令执行单元;功耗管理单元,用于当所述芯片的功耗信息超过预设阈值时,向指令调度器发送暂停信息;指令调度器,用于根据所述功耗管理单元发送的所述暂停信息暂停向所述一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停所述目标指令执行单元正在执行的指令。通过上述方式,实现对芯片功耗的精准管理。
Description
技术领域
本申请涉及芯片领域,具体而言,涉及一种芯片及其功耗控制方法。
背景技术
随着计算机的不断发展,在芯片设计阶段,为了保证芯片的安全运行,功耗建模和运行时及时管理动态功耗十分重要,其关系到芯片的峰值功耗规划和电压速降(voltagedroop)控制。
目前,在对芯片进行功耗管理时,通常是根据芯片的当前功耗与预设的功耗阈值进行比较,进而增加或减少将要发送的指令数量以实现功耗管理。然而,随着芯片的不断发展,芯片中存在许多高功耗运算指令,高功耗运算指令的执行周期较长,通常为十几个甚至几十个周期。若高功耗运算指令在发射时芯片的功耗处于正常范围,则高功耗运算指令会正常发送到芯片中的指令执行单元。芯片的指令执行单元同时执行多个高功耗指令,则会导致芯片的功耗瞬间超过峰值功耗,引起芯片发热、电压速降等问题,进而影响芯片的处理性能。现有的功耗管理只会减少将要发送的指令数量,难以实现对芯片功耗的精确管理。
发明内容
本申请实施例的目的在于提供一种芯片及其功耗控制方法,用以实现对芯片功耗的精准管理。
第一方面,本申请提供一种芯片,包括:一个或多个指令执行单元;功耗管理单元,用于当所述芯片的功耗信息超过预设阈值时,向指令调度器发送暂停信息;指令调度器,用于根据所述功耗管理单元发送的所述暂停信息暂停向所述一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停所述目标指令执行单元正在执行的指令。
在本申请实施例中,当确定芯片的功耗信息超过预设阈值时,指令调度器暂停向芯片中的目标指令执行单元发送新的指令。同时,还会暂停目标指令执行单元正在执行的指令。相较于现有方式中只暂停发送新的指令,本申请实施例通过上述方式,在暂停发送新的指令的基础上,暂停目标指令执行单元处于执行中的指令,从而可以确保目标执行单元的功耗可以立刻降低,实现对芯片功耗的精准管理,避免芯片出现发热、电压速降等问题,保证芯片的处理性能。
在可选的实施方式中,所述芯片还包括:功耗信息采集单元,与所述一个或多个指令执行单元连接,用于在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,并将所述每个指令执行单元的功耗信息发送至所述功耗管理单元。
在本申请实施例中,功耗信息采集单元在每个采集周期采集各个指令执行单元中各个指令执行单元的功耗信息,将采集到的功耗信息发送至功耗管理单元,对芯片中各个指令执行单元功耗进行监控。
在可选的实施方式中,所述每个指令执行单元的功耗信息为所述每个指令执行单元正在执行的指令;所述功耗管理单元还用于在每个采集周期根据所述每个指令执行单元正在执行的指令、预先配置的每种指令对应的功耗值以及所述每个指令执行单元的功耗权重确定所述芯片的功耗信息,并判断所述芯片的功耗信息是否超过预设阈值。
在本申请实施例中,预先通过仿真和功耗计算的方式确定出各个指令执行单元在各种指令下的功耗值,将这些功耗值预先配置在芯片中。功耗管理单元根据每个指令执行单元正在执行的指令、预先配置的各个指令执行单元在各种指令下的功耗值以及各个指令执行单元的功耗权重可以准确的确定出芯片的功耗水平,实现了对芯片功耗的精准估计。此外,通过对各个指令执行单元的功耗权重进行配置,实现了对各个指令执行单元的功耗信息比重的动态配置。
在可选的实施方式中,所述芯片的功耗信息包括所述芯片在每个采集周期中的功耗值,和\或所述芯片在每个周期中的功耗增量值。
在可选的实施方式中,所述采集周期与所述指令调度器发送最短指令的周期相同。
在本申请实施例中,将功耗信息采集单元采集各个指令执行单元功耗的采集周期设置为指令调度器发送最短指令的周期,对芯片中各个指令执行单元的功耗信息进行高精度的监控,实现高时间分辨率的功耗管理,进而提高功耗管理的及时可控性。
在可选的实施方式中,所述一个或多个指令执行单元中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行所述指令调度器发送的指令;所述指令调度器在接收到所述功耗管理单元发送的所述暂停信息后,向所述目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停所述目标指令执行单元中的每一级流水线寄存器的写入操作。
在本申请实施例中,在指令执行单元中设置多级流水线寄存器,以流水线方式执行指令调度器发送的指令,提高指令执行效率。通过指令调度器向目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,暂停每一级流水线寄存器的写入操作。相较于仅暂停发送新的指令的现有功耗控制方法,通过上述方式,达到实时控制功耗的效果。此外,还能避免产生流水线空泡。
第二方面,本申请提供一种芯片的功耗控制方法,所述芯片包括一个或多个指令执行单元,所述方法包括:当所述芯片的功耗信息超过预设阈值时,生成暂停信息;基于所述暂停信息暂停向所述一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停所述目标指令执行单元正在执行的指令。
在可选的实施方式中,在所述当所述芯片的功耗信息超过预设阈值时,生成暂停信息之前,所述方法还包括:在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,并判断所述芯片的功耗信息是否超过预设阈值。
在可选的实施方式中,所述在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,包括:在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元正在执行的指令;根据所述每个指令执行单元正在执行的指令、预先配置的每种指令对应的功耗值以及所述每个指令执行单元的功耗权重确定所述每个指令执行单元的功耗信息。
在可选的实施方式中,所述芯片的功耗信息包括所述芯片在每个采集周期中的功耗值,和\或所述芯片在每个周期中的功耗增量值。
在可选的实施方式中,所述采集周期与所述指令调度器发送指令的周期相同。
在可选的实施方式中,所述一个或多个指令执行单元中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行所述指令调度器发送的指令;所述基于所述暂停信息暂停所述目标指令执行单元正在执行的指令,包括:向所述目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停所述目标指令执行单元中的每一级流水线寄存器的写入操作。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种芯片的结构框图;
图2为本申请实施例提供的一种指令执行单元的工作流程图;
图3为本申请实施例提供的一种指令执行单元执行指令的时序图;
图4为现有技术进行功耗控制时指令执行单元执行指令的时序图;
图5为本申请实施例中还提供一种芯片的功耗控制方法的流程图.
图标:100-芯片;101-指令执行单元;102-功耗管理单元;103-指令调度器;104-功耗信息采集单元。
具体实施方式
下面通过实施例,并结合附图,对本申请的技术方案进行清楚、完整地说明,但是本申请不限于以下所描述的实施例。基于以下实施例,本领域普通技术人员在没有创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
应理解,本申请中诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件或其组合的存在,并不排除一个或多个其它特征、数字、步骤、行为、部件或其组合存在或被添加的可能性。本申请中“多个”通常可以解释为两个或两个以上的含义。
请参阅图1,图1为本申请实施例提供的一种芯片的结构框图。该芯片100可以包括:一个或多个指令执行单元101、功耗管理单元102和指令调度器103。
具体地,芯片100可以为中央处理器(Central Processing Unit,CPU)芯片,图形处理器(Graphics Processing Unit,GPU)芯片,AI DSA(Domain Specific Architecture)处理器芯片或DSP(Digital Signal Processing)芯片等。
CPU芯片或GPU芯片是基于指令进行调度的硬件处理器,芯片100中设置有一个或多个指令执行单元101。指令执行单元101用于执行芯片中的各类指令。指令执行单元101可以包括逻辑运算单元,张量计算单元,数据存取单元等。其中,逻辑运算单元用于处理普通的算术和逻辑运算,张量计算单元用于处理矩阵的计算,数据存取单元用于进行数据的装载和写回。需要说明的是,指令执行单元101可以为芯片100中用于处理芯片各类指令的任何单元,本申请对指令执行单元101的类型不作具体限定。
指令调度器103与各个指令执行单元101连接,芯片100中将要执行的指令以指令序列的形式发送到指令调度器103,指令调度器103将指令序列中的指令调度到各个指令执行单元101上执行。
功耗管理单元102在确定芯片100的功耗信息超过预设阈值时,向指令调度器103发送暂停信息。指令调度器103中预设有控制优先级,指令调度器103根据控制优先级从芯片100中的各个指令执行单元101中确定出目标指令执行单元,暂停向该目标指令执行单元发送新的指令。同时,还会暂停目标指令执行单元正在执行的指令。
举例来说,芯片100包括3个指令执行单元:指令执行单元A、指令执行单元B和指令执行单元C。控制优先级为:指令执行单元A对应优先级1、指令执行单元B对应优先级2、指令执行单元C对应优先级3。当指令调度器103接收到功耗管理单元102发送的暂停信息时,首先将优先级1对应的指令执行单元A作为目标指令执行单元,暂停向目标指令执行单元A发送新的指令。同时,还会暂停目标指令执行单元A正在执行的指令。
可以理解,上述示例仅为控制优先级的一种具体实施方式,本申请对此不做具体限定。
在本申请实施例中,当确定芯片的功耗信息超过预设阈值时,指令调度器暂停向芯片中的目标指令执行单元发送新的指令。同时,还会暂停目标指令执行单元正在执行的指令。相较于现有方式中只暂停发送新的指令,本申请实施例通过上述方式,在暂停发送新的指令的基础上,暂停目标指令执行单元处于执行中的指令,从而可以确保目标执行单元的功耗可以立刻降低,实现对芯片功耗的精准管理,避免芯片出现发热、电压速降等问题,保证芯片的处理性能。
进一步地,作为一种可选的实施方式,本申请实施例提供的芯片100还可以包括:功耗信息采集单元104。功耗信息采集单元104与各个指令执行单元101连接,用于在每个采集周期获取各个指令执行单元101的功耗信息,并将获取到的各个指令执行单元101的功耗信息发送至功耗管理单元102。
本申请实施例中,采集周期是功耗信息采集单元104对各个指令执行单元101的功耗信息的时间周期。在一些实施例中,采集周期可以为芯片处理时钟的2倍、4倍、8倍等。需要说明的是,采集周期越短,功耗信息采集单元104对各个指令执行单元101的功耗信息进行采集的时间分辨率越高。
作为一种可选的实施方式,为了实现高时间分辨率的功耗管理,对芯片100中各个指令执行单元101的功耗信息进行高精度的监控,采集周期与指令调度器103发送最短指令的周期相同。
本申请实施例中,由于芯片100中存在多种不同的指令,不同的指令的发送周期存在差异。将采集周期设置为与指令调度器103发送最短指令的周期相同,从而保证指令调度器103每进行一次指令调度,功耗信息采集单元104便会采集一次各个指令执行单元101的功耗信息,从而实现对各个指令执行单元101的功耗信息的实时监控,提高功耗管理的及时可控性。
进一步地,作为一种可选的实施方式,每个指令执行单元的功耗信息为每个指令执行单元正在执行的指令。功耗管理单元102在每个采集周期根据功耗信息采集单元104采集的每个指令执行单元101正在执行的指令、预先配置的每种指令对应的功耗值以及每个指令执行单元的功耗权重确定每个指令执行单元的功耗信息,并判断芯片100的功耗信息是否超过预设阈值。
由于CPU或GPU是基于指令进行调度的硬件,因此,每个指令执行单元101正在执行的指令可以反应每个指令执行单元101的工作强度和功耗水平。在芯片设计阶段,可以预先通过仿真和功耗计算的方式确定出各个指令执行单元101在各种指令下的波形并进行功耗计算,然后将各种指令和其对应的功耗值存储起来。在芯片功耗控制时,功耗管理单元102调用预先存储的每种指令对应的功耗值,结合功耗信息采集单元104采集的每个指令执行单元101正在执行的指令确定每个指令执行单元的功耗信息。
进一步地,芯片100的功耗信息可以包括芯片100在每个采集周期中的功耗值,和\或芯片100在每个周期中的功耗增量值。
在一些实施例中,可以将每条指令按照功耗值高低分为八个功耗等级,功耗信息采集单元104采集的每个指令执行单元101正在执行的指令后,功耗管理单元102按照每个指令执行单元101正在执行的指令对应的功耗等级在每个采集周期进行累加,累加后的结果即为每个指令执行单元在每个采集周期中的功耗值。然后将每个指令执行单元在每个采集周期中的功耗值与每个指令执行单元对应的功耗权重相乘并相加,最终确定芯片100在每个采集周期中的功耗值。
相应地,当芯片100的功耗信息为芯片100在每个采集周期中的功耗值时,功耗管理单元102预先配置有芯片100对应的功耗值阈值。通过判断芯片100在每个采集周期中的功耗值是否大于芯片100对应的功耗值阈值,确定出芯片100的功耗信息是否超过预设阈值。
需要说明的是,芯片100对应的功耗值阈值可以为在芯片设计阶段,对芯片100进行仿真并模拟计算功耗值。将芯片100对应的功耗峰值存储作为芯片100的功耗值阈值。功耗管理单元102在进行判断时,直接调用存储的芯片100对应的功耗值阈值即可确定芯片100的功耗信息是否超过预设阈值。
在一些实施例中,还可以设置时间窗,计算芯片100在相邻时间窗中的功耗值,进而确定单位时间内的功耗值增量,将该功耗值增量作为芯片100在每个采集周期中的功耗信息。
相应地,当芯片100在每个采集周期中的功耗信息为芯片100在每个采集周期中的功耗值增量时,功耗管理单元102预先配置有芯片100对应的功耗值增量阈值。通过判断芯片100在每个采集周期中的功耗值增量是否大于芯片100对应的功耗值增量阈值,确定出芯片100的功耗信息是否超过预设阈值。
需要说明的是,芯片100对应的功耗值增量阈值的确定方式与上述芯片100对应的功耗值阈值的确定方式相同,为使说明书简洁,相同或相似部分可以参照芯片部分的内容,在此不再赘述。
在一些实施例中,可以将芯片100在每个采集周期中的功耗值和功耗值增量一并作为芯片100在每个采集周期中的功耗信息。
相应地,当芯片100在每个采集周期中的功耗信息为芯片100在每个采集周期中的功耗值和功耗值增量时,功耗管理单元102预先配置有芯片100对应的功耗值阈值和功耗值增量阈值。若芯片100在每个采集周期中的功耗值大于芯片100对应的功耗值阈值或芯片100在每个采集周期中的功耗值增量大于芯片100对应的功耗值增量阈值,则确定芯片100的功耗信息是否超过预设阈值。
作为一种可选的实施方式,各个指令执行单元101中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行指令调度器103发送的指令。指令调度器103在接收到功耗管理单元102发送的暂停信息后,向目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停目标指令执行单元中的每一级流水线寄存器的写入操作。
本申请实施例中,将每条指令划分为多个执行过程,指令执行单元101中设置有多级流水线寄存器,一条指令的一个执行过程结束后,将结果写入到对应的流水线寄存器中。当确定出目标指令执行单元后,指令调度器103向目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,暂停目标指令执行单元中的每一级流水线寄存器的写入操作。此时,目标指令执行单元中的每一级流水线寄存器的写入操作被暂停,每一级流水线寄存器中保存了当前时刻的执行数据,且根据流水行寄存器的存储特性,各个流水线寄存器中的数据不会丢失。
以下结合图2,以一个具体示例对上述指令调度器103暂停目标指令执行单元正在执行的指令的过程进行介绍。
如图2所示,以融合乘加指令(Fused-Multiply-Add,FMA)为例,每条FMA指令的执行过程分为读寄存器堆,算术逻辑运算和写寄存器堆三个过程。目标指令执行单元中设置有5个流水线寄存器,对应图2中的S1-S5寄存器。每条指令以流水线的方式执行,指令序列中的指令经过指令译码后,指令调度器103产生各级流水线寄存器的使能信号,各级流水线寄存器的使能信号通过使能寄存器E1-E4打拍后依次输入至各级流水线寄存器对应的与门中。指令调度器103根据功耗管理单元102反馈的暂停信息,产生流水线暂停指令。流水线暂停指令与各级流水线寄存器的使能信号一并输入到与门中对各级流水线寄存器的写入操作进行控制。
当目标指令执行单元的功耗信息未超过预设阈值时,指令调度器103不会向每一级流水线寄存器发送流水线暂停指令,各级流水线寄存器的写入操作由使能信号控制。使能信号的控制下各级流水线寄存器依次进行写入操作。
在执行一条FMA指令时,根据寄存器S1中的参数实现读寄存器堆操作,完成读寄存器堆操作后,将读到的结果写入寄存器S2中。算术逻辑运算需要经过三个运算过程:相乘、相加和饱和\舍入。根据寄存器S2中的参数进行相乘,然后将结果写入寄存器S3中。完成相乘操作后,根据寄存器S3中的参数进行相加,然后将结果写入寄存器S4中。完成相加操作后,根据寄存器S4中的参数进行饱和\舍入,然后将结果写入寄存器S5中。完成饱和\舍入操作后,将寄存器S5中的参数写入寄存器堆,完成FMA指令。
结合图3所示,水平行代表运行的时刻,竖直列代表流水线寄存器的级数。在S1时刻,FMA1指令进入寄存器S1,在S2时刻,FMA2指令进入寄存器S1。FMA1指令和FMA2指令按照上述方式执行。在S3时刻,指令调度器103根据功耗管理单元102反馈的暂停信息,产生流水线暂停指令,向每一级流水线寄存器发送流水线暂停指令,寄存器S1-S5的写入操作均被暂停。在S4时刻,目标指令执行单元的功耗恢复到正常水平,指令调度器103解除流水线暂停指令,继续发射后续的FMA3指令。各级流水线寄存器以流水线的形式执行依次执行FMA1指令、FMA2指令和FMA3指令。
请参阅图4,图4示出了一种现有的功耗控制方式。在S1时刻,FMA1指令进入寄存器S1,在S2时刻,FMA2指令进入寄存器S1。在S3时刻,目标指令执行单元的功耗信息超过预设阈值,暂停发送新的指令。但是,已经发送的指令会继续执行,直至执行完毕。现有的功耗控制方式发送NOP空操作指令,每级寄存器接收到NOP空操作指令后,不进行任何处理。在S4时刻,目标指令执行单元的功耗恢复到正常水平,继续发射后续的FMA3指令。根据图4可知,现有的功耗控制方式会导致流水线中产生空泡,且不能暂停执行已经发送的指令,从而导致功耗控制滞后。
若向目标指令执行单元发送一个矩阵指令(一个矩阵指令可以看做是几十或是上百个FMA指令),在发送矩阵指令时,目标指令执行单元的功耗处于正常状态。在执行了几个周期后,目标指令执行单元的功耗高于预设阈值。采用现有的功耗控制方式只能停止发送新的指令,并不能暂停运行中的矩阵指令,目标指令执行单元在执行完该矩阵指令之前,功耗均会高于预设阈值,从而导致功耗控制滞后。
采用本申请实施例提供的功耗控制方法,在矩阵指令执行的过程中,若目标指令执行单元的功耗高于预设阈值,通过指令调度器103向目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,暂停执行该矩阵指令。当目标指令执行单元的功耗低于预设阈值后,解除每一级流水线寄存器发送流水线暂停指令,即可恢复执行该矩阵指令。通过上述方式,达到实时控制功耗的效果。此外,还能避免产生流水线空泡。
需要说明的是,上述举例仅为本申请实施例提供的一种具体实施方式,本申请实施例对指令执行过程的划分方式、指令执行单元设置的多级流水线寄存器的数量不做具体限定。
在其他实施方式中,指令执行单元设置的多级流水线寄存器的数量可以为3级、6级、7级等。
在其他实施方式中,指令执行过程可以划分为:读寄存器堆和写寄存器堆两个过程(即无需算术逻辑运算,只有数据搬运);或读寄存器堆和算术逻辑运算两个过程(即无需结果返回的指令);或算术逻辑运算和写寄存器堆两个过程(即无读寄存器堆,操作数是立即数或者内联常数);或算术逻辑运算一个过程(即无读寄存器堆,操作数是立即数或者内联常数,且无写寄存器堆,无需结果返回的指令)。
进一步地,作为一种可选的实施方式,当目标指令执行单元的功耗信息小于预设阈值时,指令调度器103解除目标指令执行单元中的每一级流水线寄存器的流水线暂停指令,并继续向目标指令执行单元发送新的指令。
本申请实施例中,指令调度器103向目标指令执行单元发送新的指令并暂停目标指令执行单元正在执行的指令后,目标指令执行单元的功耗会逐渐降低。根据前述内容可知,功耗管理单元会实时的对各个指令执行单元的功耗进行监控。当确定目标指令执行单元的功耗小于功耗阈值后,指令调度器103解除目标指令执行单元中的每一级流水线寄存器的流水线暂停指令,并继续向该目标指令执行单元发送新的指令。目标执行单元中的各级流水线寄存器根据暂停前存储的执行数据继续执行被暂停的指令以及发送的新指令。
基于同一发明构思,本申请实施例中还提供一种芯片的功耗控制方法。请参阅图5,图5为本申请实施例中还提供一种芯片的功耗控制方法的流程图。所述芯片包括一个或多个指令执行单元,本申请实施例中提供的芯片的功耗控制方法包括以下步骤:
步骤501:当芯片的功耗信息超过预设阈值时,生成暂停信息。
步骤502:基于暂停信息暂停向一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停目标指令执行单元正在执行的指令。
在可选的实施方式中,在所述当所述芯片的功耗信息超过预设阈值时,生成暂停信息之前,所述方法还包括:在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,并判断所述芯片的功耗信息是否超过预设阈值。
在可选的实施方式中,所述在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,包括:在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元正在执行的指令;根据所述每个指令执行单元正在执行的指令、预先配置的每种指令对应的功耗值以及所述每个指令执行单元的功耗权重确定所述每个指令执行单元的功耗信息。
在可选的实施方式中,所述芯片的功耗信息包括所述芯片在每个采集周期中的功耗值,和\或所述芯片在每个周期中的功耗增量值。
在可选的实施方式中,所述采集周期与所述指令调度器发送指令的周期相同。
在可选的实施方式中,所述一个或多个指令执行单元中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行所述指令调度器发送的指令;所述基于所述暂停信息暂停所述目标指令执行单元正在执行的指令,包括:向所述目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停所述目标指令执行单元中的每一级流水线寄存器的写入操作。
可以理解,本申请提供的芯片的功耗控制方法与本申请提供的芯片对应,为使说明书简洁,相同或相似部分可以参照芯片部分的内容,在此不再赘述。
此外,本申请实施例还提供一种电子设备,该电子设备包括:至少一个处理器,至少一个通信接口,至少一个存储器和至少一个总线。其中,总线用于实现这些组件直接的连接通信,通信接口用于与其他节点设备进行信令或数据的通信,存储器存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储器之间通过总线通信。
本申请实施例中的处理器为上述实施例中的芯片100。处理器具有信号处理能力,上述处理器可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解,于本申请实施例中,电子设备可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备。另外,电子设备也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
此外,本申请实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述实施例中芯片的功耗控制方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种芯片,其特征在于,包括:
一个或多个指令执行单元;
功耗管理单元,用于在所述芯片的功耗信息超过预设阈值时,向指令调度器发送暂停信息;
指令调度器,用于根据所述功耗管理单元发送的所述暂停信息暂停向所述一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停所述目标指令执行单元正在执行的指令。
2.根据权利要求1所述的芯片,其特征在于,所述芯片还包括:
功耗信息采集单元,与所述一个或多个指令执行单元连接,用于在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,并将所述每个指令执行单元的功耗信息发送至所述功耗管理单元。
3.根据权利要求2所述的芯片,其特征在于,所述每个指令执行单元的功耗信息为所述每个指令执行单元正在执行的指令;所述功耗管理单元还用于在每个采集周期根据所述每个指令执行单元正在执行的指令、预先配置的每种指令对应的功耗值以及所述每个指令执行单元的功耗权重确定所述芯片的功耗信息,并判断所述芯片的功耗信息是否超过预设阈值。
4.根据权利要求3所述的芯片,其特征在于,所述芯片的功耗信息包括所述芯片在每个采集周期中的功耗值,和\或所述芯片在每个周期中的功耗增量值。
5.根据权利要求2-4中任一项所述的芯片,其特征在于,所述采集周期与所述指令调度器发送最短指令的周期相同。
6.根据权利要求1所述的芯片,其特征在于,所述一个或多个指令执行单元中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行所述指令调度器发送的指令;
所述指令调度器在接收到所述功耗管理单元发送的所述暂停信息后,向所述目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停所述目标指令执行单元中的每一级流水线寄存器的写入操作。
7.一种芯片的功耗控制方法,其特征在于,所述芯片包括一个或多个指令执行单元,所述方法包括:
当所述芯片的功耗信息超过预设阈值时,生成暂停信息;
基于所述暂停信息暂停向所述一个或多个指令执行单元中的目标指令执行单元发送新的指令并暂停所述目标指令执行单元正在执行的指令。
8.根据权利要求7所述的方法,其特征在于,在所述当所述芯片的功耗信息超过预设阈值时,生成暂停信息之前,所述方法还包括:
在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,并判断所述芯片的功耗信息是否超过预设阈值。
9.根据权利要求8所述的方法,其特征在于,所述在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元的功耗信息,包括:
在每个采集周期获取所述一个或多个指令执行单元中每个指令执行单元正在执行的指令;
根据所述每个指令执行单元正在执行的指令、预先配置的每种指令对应的功耗值以及所述每个指令执行单元的功耗权重确定所述芯片的功耗信息。
10.根据权利要求8所述的方法,其特征在于,所述芯片的功耗信息包括所述芯片在每个采集周期中的功耗值,和\或所述芯片在每个周期中的功耗增量值。
11.根据权利要求8-10中任一项所述的方法,其特征在于,所述采集周期与指令调度器发送最短指令的周期相同。
12.根据权利要求7所述的方法,其特征在于,所述一个或多个指令执行单元中的每个指令执行单元包括多级流水线寄存器,用于以流水线方式执行指令调度器发送的指令;所述基于所述暂停信息暂停所述目标指令执行单元正在执行的指令,包括:
向所述目标指令执行单元中的每一级流水线寄存器发送流水线暂停指令,以暂停所述目标指令执行单元中的每一级流水线寄存器的写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310036699.6A CN115994503A (zh) | 2023-01-10 | 2023-01-10 | 一种芯片及其功耗控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310036699.6A CN115994503A (zh) | 2023-01-10 | 2023-01-10 | 一种芯片及其功耗控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115994503A true CN115994503A (zh) | 2023-04-21 |
Family
ID=85990053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310036699.6A Pending CN115994503A (zh) | 2023-01-10 | 2023-01-10 | 一种芯片及其功耗控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994503A (zh) |
-
2023
- 2023-01-10 CN CN202310036699.6A patent/CN115994503A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582320B2 (en) | Computer systems and methods with resource transfer hint instruction | |
KR20210011451A (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
US9645802B2 (en) | Technique for grouping instructions into independent strands | |
CN110168497B (zh) | 可变波阵面大小 | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
CN112925587B (zh) | 用于初始化应用的方法和装置 | |
JP2011086298A (ja) | プログラム・フロー制御 | |
EP3948556A1 (en) | Processor and interrupt controller | |
AU2017438670B2 (en) | Simulation device, simulation method, and simulation program | |
CN107870780B (zh) | 数据处理装置和方法 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
CN113190427B (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
KR101862981B1 (ko) | 명령어 기반 카운터를 통한 성능 및 전력량 예측 시스템 및 방법 | |
US9703614B2 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
CN115994503A (zh) | 一种芯片及其功耗控制方法 | |
WO2024198748A1 (zh) | 数据处理方法、系统、芯片及终端 | |
KR20090095500A (ko) | 다수의 클록 도메인 사이의 결정을 촉진하는 장치, 시스템,방법 및 머신 판독 가능한 매체 | |
JP2022546250A (ja) | 電力に基づいたsramの適応割り当て | |
EP4024286A1 (en) | Computing method and apparatus for convolutional neural network model | |
CN110825502A (zh) | 神经网络处理器和用于神经网络处理器的任务调度方法 | |
CN107769987A (zh) | 一种报文转发性能评估方法和装置 | |
KR101674324B1 (ko) | 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 | |
CN118093332A (zh) | 处理器的任务分析方法及相关装置 | |
CN112445587A (zh) | 一种任务处理的方法以及任务处理装置 | |
CN113127142A (zh) | 在物理系统中创建虚拟机的方法和装置 |
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 |