CN116954346A - 芯片和电压噪声抑制方法 - Google Patents

芯片和电压噪声抑制方法 Download PDF

Info

Publication number
CN116954346A
CN116954346A CN202210404415.XA CN202210404415A CN116954346A CN 116954346 A CN116954346 A CN 116954346A CN 202210404415 A CN202210404415 A CN 202210404415A CN 116954346 A CN116954346 A CN 116954346A
Authority
CN
China
Prior art keywords
power consumption
processor
suppression
information
module
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
Application number
CN202210404415.XA
Other languages
English (en)
Inventor
程万娟
刘宇
刘臻
刘凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210404415.XA priority Critical patent/CN116954346A/zh
Priority to PCT/CN2023/082803 priority patent/WO2023202305A1/zh
Publication of CN116954346A publication Critical patent/CN116954346A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

本申请公开了一种芯片和电压噪声抑制方法,属于电源管理技术领域。其中,芯片包括处于同一电源域内的多个处理器,功耗监测模块和功耗调节模块,功耗监测模块用于获取多个处理器的功耗变化信息,并将功耗变化信息传输至功耗调节模块,功耗调节模块用于根据多个处理器的功耗变化信息,对多个处理器中的部分或全部处理器进行功耗抑制。本申请在多个处理器共享电源的场景中,综合考虑多个处理器的功耗变化信息进行功耗抑制,可以更准确地、更及时地对处理器进行功耗抑制,有效地抑制电压噪声,减少对处理器的性能损伤。

Description

芯片和电压噪声抑制方法
技术领域
本申请涉及电源管理技术领域,尤其涉及一种芯片和电压噪声抑制方法。
背景技术
在笔记本、台式机、智能手机、自动驾驶控制器等计算设备中,由于处理的任务越来越多,计算量越来越大,单核处理器无法满足任务处理需求,因此常用多核处理器来并行处理任务,以提升计算设备的算力性能和用户体验。
多核处理器可以共享电源,当出现多核处理器中的多个处理器并发处理任务或多个重载任务运行时,由于功耗急剧增加,会出现不同频率的电压跌落上冲(voltage droopor voltage overshoot),这些电压噪声可能会危害计算设备的电路功能安全,造成处理器的性能损伤。
发明内容
本申请提供一种芯片和电压噪声抑制方法,可以有效抑制电压噪声,减少对处理器的性能损伤。
第一方面,本申请实施例提供一种芯片,该芯片包括处于同一电源域内的多个处理器,多个处理器由同一电源供电。该芯片还包括功耗监测模块和功耗调节模块,其中,功耗监测模块是指用于监测处理器的运行状态,根据处理器的运行状态生成处理器的功耗变化信息的器件或模块;功耗调节模块是指对处理器的功耗进行调整的器件或模块。在本申请实施例中,功耗监测模块用于获取多个处理器的功耗变化信息,并将功耗变化信息传输至功耗调节模块,功耗调节模块用于根据多个处理器的功耗变化信息,对多个处理器中的部分或全部处理器进行功耗抑制。
本申请实施例在多个处理器共享电源的场景中,通过综合考虑多个处理器的功耗变化信息进行功耗抑制,与单个处理器单独进行功耗抑制相比,可以更准确地、更及时地对处理器进行功耗抑制,减少多个处理器并发处理任务或多个重载任务运行时发生的电压跌落上冲情况,从而有效地抑制电压噪声,减少对处理器的性能损伤。
在一种可能的实现方式中,功耗监测模块可以包括针对多个处理器中的每个处理器分别设置的电压监测模块;电压监测模块是指用于监测处理器的电压变化的器件或模块。其中,第一处理器的电压监测模块用于监测第一处理器是否发生电压跌落,并在电压跌落的幅度超过设定幅度阈值时,生成功耗变化监测信息;第一处理器可以是上述多个处理器中的任意一个。功耗变化监测信息属于功耗变化信息中的一种,功耗变化监测信息是指监测到处理器发生功耗变化而生成的信息。例如,监测到处理器的电压跌落幅度超过设定幅度阈值,或处理器的功耗变化斜率达到设定斜率阈值时,说明处理器发生功耗变化,生成功耗变化监测信息。在另一种可能的实现方式中,功耗监测模块可以包括针对多个处理器中的每个处理器分别设置的状态监测模块;状态监测模块是指用于监测处理器的功耗变化斜率的器件或模块。第一处理器的状态监测模块用于根据第一处理器的运行状态确定功耗变化斜率,并在功耗变化斜率达到第一处理器的设定斜率阈值时,生成功耗变化监测信息。在另一种可能的实现方式中,功耗监测模块可以包括针对多个处理器中的每个处理器分别设置的电压监测模块和状态监测模块。
第一处理器的电压监测模块或状态监测模块可以设置在第一处理器的内部,也可以设置在第一处理器的外部。第一处理器的电压监测模块或状态监测模块用于实时监测第一处理器的运行状态,可以及时地生成第一处理器的功耗变化信息,从而更及时地向功耗调节模块通知第一处理器的功耗变化。并且,电压监测模块和状态监测模块采用不同方式监测处理器的功耗变化,可以根据处理器的不同状态信息更全面、更及时地生成处理器的功耗变化信息。
在一种可能的实现方式中,功耗监测模块除包括针对每个处理器分别设置的电压监测模块或状态监测模块之外,还可以包括针对每个处理器分别设置的功耗变化预测模块,功耗变化预测模块是指用于预测处理器是否将发生功耗变化的器件或模块。其中,第一处理器的功耗变化预测模块用于监测第一处理器的运行状态,根据运行状态与已发生功耗变化事件的历史状态记录,预测在设定时间窗内是否将发生功耗变化事件,并在预测到将发生功耗变化事件时,生成功耗变化预测信息。功耗变化预测信息也属于功耗变化信息中的一种,功耗变化预测信息是指根据处理器的运行状态,在预测到即将发生功耗变化事件时生成的信息,其中,功耗变化事件指处理器的功耗发生变化。
上述实现方式中,通过设置功耗变化预测模块,可以预先预测到在未来的设定时间窗内是否将发生功耗变化事件,从而可以更早地向功耗调节模块提供功耗变化信息,有利于功耗调节模块提前确定功耗抑制策略,更有效地进行功耗抑制。
在一种可能的实现方式中,功耗监测模块除包括针对每个处理器分别设置的电压监测模块或状态监测模块之外,还可以包括针对每个处理器分别设置的信号监测模块,信号监测模块是指用于监测处理器接收到的信号的器件或模块。其中,第一处理器的信号监测模块用于监测第一处理器是否接收到设定的目标信号,并在第一处理器接收到设定的目标信号时,生成目标信号指示信息。目标信号指示信息也属于功耗变化信息中的一种,目标信号指示信息是指接收到设定的目标信号时生成的信息。
上述实现方式中,通过设置信号监测模块来监测处理器是否接收到设定的目标信号,目标信号为封装谐振等可能会引发功耗剧烈变化的前置信号,通过信号监测模块来监测到目标信号,可以在功耗剧烈变化之前,提前向功耗调节模块提供功耗变化信息,为封装谐振等高频功耗变化事件的抑制时机提供证据,有利于功耗调节模块提前确定功耗抑制策略,提升了控制跌落有效性更有效地进行功耗抑制。
在一种可能的实现方式中,第一处理器的功耗变化监测模块可以包括电压监测模块、状态监测模块、功耗变化预测模块和信号监测模块,从多个方面根据不同状态信息更全面地为功耗调节模块提供功耗变化信息。
在一种可能的实现方式中,功耗调节模块包括针对多个处理器中的每个处理器分别设置的抑制模块,抑制模块用于对处理器进行功耗抑制。其中,第一处理器的抑制模块用于接收第一处理器的功耗变化监测模块传输的第一处理器的功耗变化信息,以及接收除第一处理器之外的任意一个处理器通过广播的方式传输的功耗变化信息,并基于接收到的功耗变化信息,对第一处理器进行功耗抑制。第一处理器的抑制模块可以设置在第一处理器内部,也可以设置在第一处理器外部。
上述实现方式中,针对每个处理器分布式设置抑制模块,各个处理器的抑制模块可以同时得知其他处理器的功耗变化信息,从而为功耗抑制时机的判定提供有利证据,各个处理器的抑制模块结合接收到的其他处理器的功耗变化信息,对本处理器进行功耗抑制,从而实现多个处理器协同进行功耗抑制,提升多核处理器***在大电流跳变场景下的电压跌落上冲控制效率,更有效地抑制电压噪声。
在一种可能的实现方式中,第一处理器的功耗变化监测模块和抑制模块均部署于第一处理器内部,由于通信的线路较短,第一处理器的功耗变化监测模块可以更快地获知第一处理器的各种运行状态信息,更及时地将功耗变化信息通知给抑制模块,有利于抑制模块更早地对第一处理器进行功耗抑制,减少因功耗抑制生效太晚而导致无法有效抑制电压噪声的情况发生。
在一种可能的实现方式中,第一处理器的抑制模块,具体可以用于:当接收到第一处理器的功耗变化信息,且第一处理器的功耗变化信息包括功耗变化监测信息时,按照针对功耗变化监测信息的设定抑制比例对第一处理器进行功耗抑制;当接收到第一处理器的功耗变化信息,且第一处理器的功耗变化信息包括功耗变化预测信息时,若在设定时间段内接收到至少N个处理器发送的功耗变化信息,则按照针对功耗变化预测信息的设定抑制比例对所述第一处理器进行功耗抑制;其中,N为设定的变化处理器数量阈值;当接收到第一处理器的功耗变化信息,且第一处理器的功耗变化信息包括目标信号指示信息时,若在设定时间段内接收到至少M个处理器发送的功耗变化信息,则按照针对目标信号指示信息的设定抑制比例对第一处理器进行功耗抑制;其中,M为设定的变化处理器数量阈值。
上述实现方式中,抑制模块可以根据不同情形,分别确定针对处理器的功耗抑制策略,灵活的对处理器进行功耗抑制。例如,当第一处理器的抑制模块接收到第一处理器的功耗变化监测信息时,说明已经发生功耗变化,需要立即进行功耗抑制,则抑制模块立即按照针对功耗变化监测信息的设定抑制比例对第一处理器进行功耗抑制。当第一处理器的抑制模块接收到第一处理器的功耗变化预测信息或目标信号指示信息时,则抑制模块可以结合其他处理器的功耗变化信息,确定是否需要对第一处理器进行功耗抑制。
在一种可能的实现方式中,第一处理器的抑制模块,具体可以用于:当接收到第二处理器的功耗变化信息时,若在设定时间段内接收到至少K个处理器发送的功耗变化信息,且第一处理器的业务优先级低于第二处理器的业务优先级,则按照设定的级联抑制比例对第一处理器进行功耗抑制;其中,K为设定的变化处理器数量阈值;第二处理器为除第一处理器之外的任意一个处理器。
在一种可能的实现方式中,第一处理器的抑制模块,还用于:对第一处理器进行功耗抑制之后,通过广播的方式向除第一处理器之外的每个处理器传输抑制信息;以及接收除第一处理器之外的任意一个处理器通过广播的方式传输的抑制信息。当接收到第二处理器的抑制信息时,若第一处理器的业务优先级低于第二处理器的业务优先级,则按照针对抑制信息的设定抑制比例对第一处理器进行功耗抑制。
上述实现方式中,在多个处理器进行级联功耗抑制时,优先对业务优先级较低的处理器进行功耗抑制,相对保证业务优先级较高的处理器的正常运行。
在一种可能的实现方式中,芯片还可以包括针对多个处理器中的每个处理器分别设置的配置模块;第一处理器的配置模块用于根据接收到的任意一个处理器的抑制信息,调整第一处理器在生成功耗变化信息的过程中所使用的阈值和/或在进行功耗抑制的过程中所使用的抑制比例。
上述实现方式中,在多个处理器进行级联功耗抑制时,当接收到其他处理器的抑制信息时,调整本处理器在生成功耗变化信息的过程中所使用的阈值或在进行功耗抑制的过程中所使用的抑制比例,以使本处理器的功耗抑制过程可以与电源域内当前的用电情况更匹配。
在一种可能的实现方式中,功耗调节模块包括电源域内的仲裁模块和抑制执行模块;仲裁模块用于接收功耗监测模块发送的多个处理器的功耗变化信息,并根据接收到的功耗变化信息,向抑制执行模块发送功耗抑制指令,功耗抑制指令中包含需要进行功耗抑制的目标处理器;抑制执行模块用于根据仲裁模块发送的功耗抑制指令,对目标处理器进行功耗抑制。
上述实现方式中,通过对各处理器的功耗抑制进行集中管理,可以根据多个处理器的功耗变化信息协调对各处理器的功耗抑制动作,更有效地抑制电压噪声。
在一种可能的实现方式中,功耗监测模块包括电源域内设置的瞬态电流监测模块;瞬态电流监测模块用于监测电源域内的电流,并根据电流的变化生成电压状态指示信息。功耗变化信息包括瞬态电流监测模块生成的电压状态指示信息。
上述实现方式中,可以根据电源域内的瞬态电流变化情况,生成电压状态指示信息,作为各个处理器的功耗变化信息的补充,可以更全面地反映电源域内的当前用电情况。
第二方面,本申请实施例提供一种电压噪声抑制方法,该方法包括:获取处于同一电源域内的多个处理器的功耗变化信息;根据多个处理器的功耗变化信息,对多个处理器中的部分或全部处理器进行功耗抑制。
在一种可能的实现方式中,上述电压噪声抑制方法可以由第一处理器执行,第一处理器为多个处理器中的任意一个;第一处理器可以通过如下方式获取处于同一电源域内的多个处理器的功耗变化信息:监测第一处理器的运行状态,并根据第一处理器的运行状态生成第一处理器的功耗变化信息;接收第二处理器发送的第二处理器的功耗变化信息;第二处理器的功耗变化信息是根据第二处理器的运行状态生成的;第二处理器为除第一处理器之外的任意一个处理器。
在一种可能的实现方式中,第一处理器的功耗变化信息包括如下至少一种:监测到第一处理器发生功耗变化事件时,生成的功耗变化监测信息;根据第一处理器的运行状态与已发生功耗变化事件的历史状态记录,预测到在设定时间窗内将发生功耗变化事件时,生成的功耗变化预测信息;监测到第一处理器接收到设定的目标信号时,生成的目标信号指示信息。
在一种可能的实现方式中,当接收到第一处理器的功耗变化监测信息时,按照针对功耗变化监测信息的设定抑制比例,对第一处理器进行功耗抑制;当接收到第一处理器的功耗变化预测信息时,若在设定时间段内接收到至少N个处理器发送的功耗变化信息,则按照针对功耗变化预测信息的设定抑制比例,对第一处理器进行功耗抑制;N为设定的变化处理器数量阈值;当接收到第一处理器的目标信号指示信息时,若在设定时间段内接收到至少M个处理器发送的功耗变化信息,则按照针对目标信号指示信息的设定抑制比例,对第一处理器进行功耗抑制;M为设定的变化处理器数量阈值。
在一种可能的实现方式中,当接收到第二处理器的功耗变化信息时,若在设定时间段内接收到至少K个处理器发送的功耗变化信息,且第一处理器的业务优先级低于第二处理器的业务优先级,则按照设定的级联抑制比例,对第一处理器进行功耗抑制;K为设定的变化处理器数量阈值。
在一种可能的实现方式中,对第一处理器进行功耗抑制之后,可以通过广播的方式向除第一处理器之外的每个处理器传输抑制信息。
在一种可能的实现方式中,当接收到第二处理器的抑制信息时,若第一处理器的业务优先级低于第二处理器的业务优先级,则按照针对抑制信息的设定抑制比例,对第一处理器进行功耗抑制。
在一种可能的实现方式中,第一处理器还可以根据接收到的任意一个处理器的抑制信息,调整第一处理器在功耗监测过程中所使用的阈值和/或在进行功耗抑制的过程中所使用的抑制比例。
在一种可能的实现方式中,上述电压噪声抑制方法由仲裁模块执行,仲裁模块可以接收第一处理器发送的第一处理器的功耗变化信息;第一处理器为多个处理器中的任意一个;或者,仲裁模块可以接收电源域内的瞬态电流监测模块发送的功耗变化信息;功耗变化信息为瞬态电流监测模块根据电源域内的电流变化生成的电压状态指示信息。
在一种可能的实现方式中,仲裁模块可以根据接收到的功耗变化信息,确定需要进行功耗抑制的目标处理器;通过抑制执行模块对目标处理器进行功耗抑制。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第二方面提供的任一种方法。
第四方面,本申请实施例提供一种计算机程序产品,包含有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第二方面提供的任一种方法。
上述第二方面至第四方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
附图说明
图1为本申请实施例提供的一种芯片的示意图;
图2为本申请实施例提供的一种处理器的结构示意图;
图3为本申请实施例提供的一种功耗变化监测模块的结构示意图;
图4为本申请实施例提供的一种抑制模块执行功耗抑制过程的流程图;
图5为本申请实施例提供的另一种处理器的结构示意图;
图6为本申请实施例提供的另一种芯片的结构示意图;
图7为本申请实施例提供的一种仲裁模块执行功耗抑制过程的流程图;
图8为本申请实施例提供的另一种芯片的结构示意图;
图9为本申请实施例提供的一种电压噪声抑制方法的流程图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例进行详细描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请实施例提供的具体方案之前,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解,并不对本申请中的用语进行限定。
(1)处理器簇(processor cluster):处于同一电源域内的多个处理器,或者,由同一电源进行供电的多个处理器,可以称为一个处理器簇。
本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
在多核处理器共享同一电源的应用场景中,当出现多个处理器并发处理任务或多个重载任务运行时,功耗急剧增加,多核处理器的电源完整性(power integration,PI)问题会很明显,主要表现为经常出现不同频率的电压跌落上冲,从而产生电压噪声,电压噪声可能会危害计算设备的电路功能安全,造成处理器的性能损伤或影响电路最小工作电压的收益。
基于此,本申请实施例提供一种芯片,该芯片包括处于同一电源域内的多个处理器,即多个处理器由同一电源进行供电,用于为多个处理器供电的电源可以设置在芯片内,也可以设置在芯片外,多个处理器均为电源连接。
示例性地,该芯片可以是计算设备中使用的***级芯片(system on chip,SoC)或计算芯片,也可以是路由器中使用的控制逻辑芯片或转发逻辑芯片,或者是其他包括多核处理器的芯片。处理器可以是通用处理器,如微处理器、中央处理器(central processingunit,CPU),也可以是其他处理器,如应用处理器(application processor,AP)、调制解调处理器、张量处理器(tensor processing unit,TPU)芯片、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphic processing unit,GPU)、人工智能(artificial intelligence,AI)处理器,图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器等。
本申请实施例提供的芯片,除包括处于同一电源域内的多个处理器之外,还包括功耗监测模块和功耗调节模块,功耗监测模块是指用于监测处理器的运行状态,根据处理器的运行状态生成处理器的功耗变化信息的器件或模块;功耗调节模块是指对处理器的功耗进行调整的器件或模块。在本申请实施例中,功耗监测模块用于获取多个处理器的功耗变化信息,并将功耗变化信息传输至功耗调节模块,功耗调节模块用于根据多个处理器的功耗变化信息,对多个处理器中的部分或全部处理器进行功耗抑制。通过结合处于同一电源域内的多个处理器的功耗变化信息,可以更准确地确定何时需要对处理器进行功耗抑制,以及需要对哪一个处理器进行功耗抑制,从而可以在功耗急剧增加时或功耗急剧增加前及时对处理器进行功耗抑制,更有效地抑制电压噪声,减少对处理器的性能损伤。
图1示例性地示出了本申请实施例提供的一种芯片的结构示意图。在一些实施例中,如图1所示,芯片100中包括处理器0、处理器1……处理器N-1共N个处理器,N个处理器均由电源200供电。N个处理器由同一电源进行供电,可以作为一个处理器簇。图1所示的处理器簇中包括3个以上的处理器,在其他实施例中,处理器簇中也可以包括2个处理器,即N为大于等于2的整数。图1所示的电源200设置于芯片100的外部,在其他实施例中,电源200也可以设置在芯片100的内部。当电源200设置在芯片100的内部时,电源200可以设置在处理器簇的内部,也可以设置在处理器簇的外部。在一些实施例中,每个处理器均设置有片上的低压差线性稳压器(low dropout regulator,LDO),但在高压场景下,仍然需要直通到同一个电源上,由同一个电源供电,这些处理器也属于处于同一电源域内的多个处理器。
如图1所示,芯片100中包括针对N个处理器中的每个处理器分别设置的功耗变化监测模块110和抑制模块120。功耗变化监测模块110用于监测对应处理器的运行状态,并根据对应处理器的运行状态生成对应处理器的功耗变化信息,即功耗变化监测模块110实现功耗监测模块的功能。功耗变化监测模块110可以设置在对应处理器的内部,也可以设置在对应处理器的外部。当功耗变化监测模块110可以设置在对应处理器的外部时,功耗变化监测模块110可以紧邻对应处理器设置,以便可以及时感知对应处理器的电流,功耗或者电压的变化。抑制模块120用于接收任意一个处理器的功耗变化信息,并基于接收到的功耗变化信息,对抑制模块120对应的处理器进行功耗抑制,即抑制模块120实现功耗调节模块的功能。抑制模块120可以设置在对应处理器的内部,也可以设置在对应处理器的外部。图1中的功耗变化监测模块110和抑制模块120均设置在对应处理器的内部。
以处理器0为例进行说明,图1所示的处理器0内部设置有功耗变化监测模块110和抑制模块120。处理器0的功耗变化监测模块110用于监测处理器0的运行状态,并根据处理器0的运行状态生成处理器0的功耗变化信息,将生成的处理器0的功耗变化信息传输至处理器0的抑制模块120。处理器0的功耗变化监测模块110除将处理器0的功耗变化信息传输至处理器0的抑制模块120之外,还可以将功耗变化信息通过广播的方式传输至其他处理器的抑制模块120,即处理器1至处理器N-1中的每个处理器的抑制模块120均可以收到处理器0的功耗变化监测模块110发送的处理器0的功耗变化信息。处理器0的抑制模块120用于接收处理器0的功耗变化监测模块110传输的处理器0的功耗变化信息,以及接收除处理器0之外的任意一个处理器通过广播的方式传输的功耗变化信息,并基于接收到的功耗变化信息,对处理器0进行功耗抑制。
图2示例性地示出了本申请实施例提供的一种处理器的内部结构示意图。如图2所示,该处理器包括功耗变化监测模块110和抑制模块120,还包括用于实现计算功能和控制功能的多个功能单元,例如取指单元131(instruction fetch unit,IFU)、指令分派(instruction dispatch)单元132、预读取(prefetch)单元133、分支预测(branchpredictor)单元134、整型执行单元(int.execute unit)135、加载存储(load store)单元136、浮点数和单指令多数据流(single instruction multiple data,SIMD)单元,或称为浮点数和SIMD单元(float&SIMD unit)137。处理器中还可以包括缓存***(cache system)138,加载存储单元136可以将加载的程序指令或数据暂存在缓存***138中。每个功能单元和缓存***138均与功耗变化监测模块110连接,并且每个功能单元均与抑制模块120连接,抑制模块120可以对任意一个功能单元进行功耗抑制。图1中的处理器0至处理器N-1均可以采用图2所示的处理器结构。
下文以处理器0为例说明功耗变化监测模块110和抑制模块120的内部结构。其他N-1个处理器的功耗变化监测模块与处理器0的功耗变化监测模块的结构相同,其他N-1个处理器的抑制模块与处理器0的抑制模块的结构相同。
在一些实施例中,处理器0的功耗变化监测模块110可以包括事件监测模块,事件监测模块用于在监测到处理器0发生功耗变化事件时,生成功耗变化监测信息,将功耗变化监测信息传输至处理器0的抑制模块120,并通过广播的方式传输至除处理器0之外的其他处理器的抑制模块120。其中,处理器0发生功耗变化事件指处理器0发生引起电压跌落或电压过冲事件。功耗变化监测信息是功耗变化信息的一种。示例性地,事件监测模块可以根据处理器内部各个功能单元的高功耗跳变指示事件作为依据,例如,可扩展向量引擎(scalable vector extensions engine,SVE)模块运算单元是否全部占满,加载存储流水线(load store pipeline)的状态,是否出现异常冲刷状态等,或者也可以使用一条或多条关键路径(critical path)的建模检测电路的方式,检测是否存在对处理器有影响的状态产生。
在一种实施例中,事件监测模块可以包括电压监测模块,电压监测模块用于监测处理器0是否发生电压跌落,并在电压跌落的幅度超过设定幅度阈值时,生成功耗变化监测信息。在另一种实施例中,事件监测模块可以包括状态监测模块,状态监测模块用于根据处理器0的运行状态确定功耗变化斜率,并在功耗变化斜率达到处理器0的设定斜率阈值时,生成功耗变化监测信息。在另一种实施例中,事件监测模块可以包括电压监测模块和状态监测模块。
在另一些实施例中,处理器0的功耗变化监测模块110除包括事件监测模块之外,还可以包括功耗变化预测模块,功耗变化预测模块用于监测处理器0的运行状态,根据处理器0的运行状态与已发生功耗变化事件的历史状态记录,预测在设定时间窗内处理器0是否将发生功耗变化事件,并在预测到处理器0将发生功耗变化事件时,生成功耗变化预测信息,将功耗变化预测信息传输至处理器0的抑制模块120,并通过广播的方式传输至除处理器0之外的其他处理器的抑制模块120。其中,功耗变化预测信息是功耗变化信息的一种。
在另一些实施例中,处理器0的功耗变化监测模块110除包括事件监测模块之外,还可以包括信号监测模块,信号监测模块用于监测处理器0是否接收到设定的目标信号,并在处理器0接收到设定的目标信号时,生成目标信号指示信息,将目标信号指示信息传输至处理器0的抑制模块120,并通过广播的方式传输至除处理器0之外的其他处理器的抑制模块120。其中,目标信号指示信息是功耗变化信息的一种。
在另一些实施例中,处理器0的功耗变化监测模块110除包括事件监测模块之外,还可以包括功耗变化预测模块和信号监测模块。需要说明的是,功耗变化监测模块110中包含的各个模块可以根据实际应用场景进行选择组合使用,或者仅使用一个模块去实现类似的功能。
为方便理解,图3示例性地示出了本申请实施例提供的一种功耗变化监测模块的结构示意图。如图3所示,功耗变化监测模块110可以包括电压监测模块111、状态监测模块112、功耗变化预测模块113和信号监测模块114。
电压监测模块111可以采用关键路径检测器(critical path monitor,CPM)。电压监测模块111可以使用模拟关键路径(critical path)电路来检测处理器0是否发生电压跌落,如果处理器0发生电压跌落,且电压跌落幅度超过处理器0的设定幅度阈值时,则产生功耗变化监测信息。
状态监测模块112可以采用电流传感器(sensor),电流传感器用于监测单位时间电流差(delta current in delta time,DIDT),电流传感器可使用数字逻辑,根据监测到的电流差确定处理器的功耗变化斜率,产生功耗变化监测信息。
在一些实施例中,状态监测模块112可以按照设定的DIDT检测周期对处理器0的运行状态进行检测,包括检测处理器0的各个功能单元的事件或信号,将检测到的各个功能单元的高功耗事件或关键信号进行加权平均,拟合得到处理器0的功耗。根据处理器0在不同时间段的功耗确定功耗变化斜率,并在功耗变化斜率达到处理器0的设定斜率阈值时,生成功耗变化监测信息。
在一种实施例中,功耗变化斜率可以采用绝对斜率值。状态监测模块112可以按照设定的窗口时长,分别确定第n个检测时间窗Pn的功耗与第n-1个检测时间窗Pn-1的功耗,并计算检测时间窗Pn的功耗检测时间窗Pn-1的功耗与之间的差值,将该差值作为处理器0的功耗变化斜率,该差值即为绝对斜率值。其中,设定的窗口时长可以以处理器的时钟周期(cycle)为单元,例如,设定的窗口时长可以是几个或几十个时钟周期。检测时间窗Pn与检测时间窗Pn-1是相邻的两个检测窗,检测时间窗Pn且位于检测时间窗Pn-1之后。也就是说,状态监测模块112可以根据相邻的两个检测时间窗的功耗差值确定功耗变化斜率。
在另一种实施例中,功耗变化斜率可以采用移动平均斜率值。状态监测模块112可以按照设定的窗口时长,分别确定相邻的n个检测时间窗的功耗。计算其中的前n-1个检测时间窗,即从检测时间窗P1至检测时间窗Pn-1的功耗的平均值,采用检测时间窗Pn的功耗减去与前n-1个检测时间窗的功耗的平均值,得到移动平均斜率值;或者,计算其中的前n-1个检测时间窗的功耗的加权平均值,各个检测时间窗的功耗的权重可以采用如下方式确定:检测时间窗Pn-1的功耗的权重为1/2,检测时间窗Pn-2的功耗的权重为1/4,检测时间窗Pn-3的功耗的权重为1/8,依此类推;采用检测时间窗Pn的功耗减去与前n-1个检测时间窗的功耗的加权平均值,得到移动平均斜率值。也就是说,状态监测模块112可以根据相邻的n个检测时间窗的功耗差值确定功耗变化斜率。通过上述方法,可以更准确地确定功耗变化斜率。
在一些实施例中,处理器0的设定斜率阈值指设定的最大斜率阈值,处理器0的功耗斜率阈值还可以包括设定的最小斜率阈值,如果功耗变化斜率大于或等于设定的最大斜率阈值,则状态监测模块112在功耗变化监测信息对应的寄存器设置事件标识,并基于事件标识从无到有的变化生成功耗变化监测信息。如果功耗变化斜率小于或等于设定的最小斜率阈值,则状态监测模块112可以清除功耗变化监测信息对应的寄存器中的事件标识。
处理器0的电压监测模块111或状态监测模块112生成功耗变化监测信息,说明处理器0已经发生功耗变化事件,需要立即进行主动防御,抑制模块120接收到功耗变化监测模块110发送的功耗变化监测信息,立即对处理器0进行功耗抑制。
由于功耗变化监测模块110是负责给出处理器功耗剧烈变化指示信号的模块,因此,该功耗变化监测模块110的检测时延越短,功耗抑制的效果越好。电压监测模块111和状态监测模块112的检测响应时间均为ns级别甚至cycle级别,可以在迅速生成功耗变化监测信息,并传输至处理器0的抑制模块120,有利于抑制模块120及时作出响应,对处理器0进行功耗抑制。电压监测模块111和状态监测模块112在不同的应用场景中可以联合使用,也可以单独使用。电压监测模块111和状态监测模块112生成的功耗变化监测信息在下文中称为S1事件,S1事件中携带有S1事件标志(flag)。
在一些实施例中,电压监测模块111和状态监测模块112的输出端可以连接多路选择器(multiplexer,MUX)115,多路选择器115可以理解为一个连接器,其包括多个输入端口和一个输出端口。多路选择器115的一个输入端口连接电压监测模块111的输出端口,另一个输入端口连接状态监测模块112的输出端口,多路选择器115的输出端口连接至抑制模块120的输入端口。多路选择器115用于将电压监测模块111或状态监测模块112生成的S1事件传输至抑制模块120。多路选择器115可以设置在电压监测模块111内部,也可以设置在电压监测模块111外部。
电压监测模块111和状态监测模块112的检测延时很短,可以只有1cyc,从而可以保证其生成的S1事件到其他处理器的抑制模块时,仍然来得及抑制功耗的爬升,从而产生抑制电压噪声的效果。
功耗变化预测模块113可以采用基于电流斜率的预测器(DIDT forcaster;DIDTpredictor)。功耗变化预测模块113用于监测处理器0的运行状态,根据处理器0的运行状态与已发生功耗变化事件的历史状态记录,预测在W1时间窗口内,处理器0是否将发生功耗变化事件。其中,W1时间窗口指自当前时刻起,时长为设定时长W1的时间窗口。如果预测到处理器0在W1时间窗口内将发生功耗变化事件时,生成功耗变化预测信息,将功耗变化预测信息传输至处理器0的抑制模块120,并通过广播的方式传输至除处理器0之外的其他处理器的抑制模块120。示例性地,设定时长W1可以是10-50cyc之间的任意时长,也可以是更长的时长。
示例性地,功耗变化预测模块113可以采用预测算法,根据处理器0的运行状态与已发生功耗变化事件的历史状态记录,确定在W1时间窗口内,处理器0将发生功耗变化事件的概率,如果确定的概率大于或等于设定的概率值,则生成功耗变化预测信息。其中,已发生功耗变化事件的历史状态记录可以包括处理器0曾经实际发生功耗变化事件期间及前一段时间窗口所执行的指令序列的模式(pattern)或高功耗事件的发生pattern的状态统计记录。在一些实施例中,当处理器0的软件或SoC的配合电路给出可能会产生高功耗线程的提示时,功耗变化预测模块113也可能会生成功耗变化预测信息。在另一些实施例中,由于处理器的投机性预取指令,在预测失败时会引发对预取指令所取出的数据进行冲刷的高功耗事件,因此当处理器0的投机性预取指令预测失败时,功耗变化预测模块113也可能会生成功耗变化预测信息。
电压监测模块111或状态监测模块112检测到的发生功耗变化事件时处理器0的运行状态,如指令序列的pattern或高功耗事件的发生pattern,可以添加至历史状态记录中,从而在下一次出现类似的pattern时,功耗变化预测模块113可以根据历史状态记录预测处理器0在下一个W1时间窗口内是否会发生功耗变化事件。
在一些实施例中,功耗变化预测模块113在根据历史状态记录中的某个pattern生成功耗变化预测信息时,在功耗变化预测信息对应的寄存器设置事件标识。电压监测模块111或状态监测模块112检测到该pattern引发的功耗变化事件作为触发功耗变化预测模块113的刷新指示,即当电压监测模块111或状态监测模块112检测到功耗变化预测信息对应的功耗变化事件时,触发功耗变化预测模块113清除功耗变化预测信息对应的寄存器中的事件标识;并且,同时刷新历史状态记录中该pattern对应的预测概率。例如,电压监测模块111或状态监测模块112检测到功耗变化预测信息对应的功耗变化事件,表明功耗变化预测模块113针对该pattern的预测成功,增加了该pattern的预测成功率,因此可以在历史状态记录中提高该pattern对应的预测概率。
如果历史上曾经在该pattern之后发生过功耗变化事件,但此次在该pattern之后,并未真正发生功耗变化事件,此时降低了该pattern的预测成功率,即在功耗变化预测模块113生成功耗变化预测信息后的预设时长内,电压监测模块111和状态监测模块112均未检测到功耗变化预测信息对应的功耗变化事件,则功耗变化预测模块113清除该功耗变化预测信息对应的寄存器中的事件标识,并在历史状态记录中降低该pattern对应的预测概率。如果一个pattern对应的预测概率低于设定的概率值时,功耗变化预测模块113可以不再根据该pattern生成功耗变化预测信息,以减少误报的发生。
假设当前时刻为T0时刻,处理器0的功耗变化预测模块113生成功耗变化预测信息,表示自T0时刻起未来W1时间内处理器0将发生功耗变化事件。假设功耗变化预测信息广播到其他处理器的抑制模块120的延时为tn,那么任意一个处理器的抑制模块120收到的处理器0广播的功耗变化预测信息,表示的含义是T0+tn时刻起,W1-tn的时间窗口内处理器0会将发生功耗变化事件,即处理器0将由性能或功耗快速爬坡的现象发生。为了防止对一些特定场景的功耗变化事件的功耗抑制生效太晚导致主动防御失败,需尽量减小延时tn。
功耗变化预测模块113生成的功耗变化预测信息在下文中称为S2事件,S2事件中携带有S2事件标志。
信号监测模块114可以采用***变化值标志(system change number flag,SCNFlag)监测器。信号监测模块114用于监测处理器0是否接收到设定的目标信号,并在处理器0接收到设定的目标信号时,生成目标信号指示信息,将目标信号指示信息传输至处理器0的抑制模块120,并通过广播的方式传输至除处理器0之外的其他处理器的抑制模块120。其中,设定的目标信号可以包括但不限于如下信号中一种或多种:等待事件唤醒(wait forevent,WFE)信号、等待中断唤醒(wait for interrupt,WFI)信号、深度冲刷(deep flush)信号、分支冲刷(branch flush)信号、缓存冲刷(cache flush)信号、高功耗事件(highpower event)指示信号或高功耗剧增指示信号等。信号监测模块114可以基于上述目标信号,提前识别可能会引发功耗变化事件的特殊场景,更早地通知抑制模块120,以使抑制模块120可以进行错峰抑制或规避封装谐振频率。信号监测模块114生成目标信号指示信息需要在功耗变化事件之前提前预判,越早越好。比如,WFI信号可以是从IFU获取,也可以更早的从外部的唤醒中断接口处得到。
信号监测模块114在监测到处理器0接收到任意一种目标信号时,生成目标信号指示信息。信号监测模块114生成的目标信号指示信息在下文中称为S3事件,S3事件中携带有S3事件标志。
上述的S1事件、S2事件和S3事件均为处理器0的功耗变化监测模块110生成的功耗变化信息。处理器0的功耗变化监测模块110除将生成的功耗变化信息传输至处理器0的抑制模块120之外,还可以将功耗变化信息通过广播的方式传输至其他处理器的抑制模块120。相较于处理器0的功耗变化监测模块110与其他处理器的抑制模块120之间的距离,处理器0的功耗变化监测模块110与处理器0的抑制模块120之间的距离更近,因此处理器0的抑制模块120可以比其他处理器的抑制模块120更早地收到处理器0的功耗变化监测模块110发送的处理器0的功耗变化信息。
处理器0的功耗变化监测模块110在将处理器0的功耗变化信息传输至其他处理器的抑制模块120时,可以将不同种类的功耗变化信息通过一根通信信号线进行传输,也可以通过不同的通信信号线传输不同类型的功耗变化信息,例如,通过第一根通信信号线传输S1事件,通过第二根通信信号线传输S2事件,通过第三根通信信号线传输S3事件。从处理器0至其他处理器的传输路径的时延应约束至合理范围,以能够满足各个处理器在接收到处理器0的功耗变化信息后,生成的功耗抑制处理动作能够对电压跌落产生作用为约束条件。在一些实施例中,为了减小时延,可以通过高层金属走线来传输功耗变化信息,以保证功耗变化信息可以在很短的时延内到达其他处理器。在另一些实施例中,S1事件或S3事件也可以不通过实体的通信信号线传输到其他处理器,而可以通过中断、消息邮箱或者其他非实体走线的方式传输到其他处理器。
上述是对处理器0的功耗变化监测模块110的介绍,下面开始介绍处理器0的抑制模块120。处理器0的抑制模块120负责控制处理器0内部各功能单元的功耗水平。
处理器0的抑制模块120可以接收处理器0的功耗变化监测模块110传输的处理器0的功耗变化信息,以及接收除处理器0之外的任意一个处理器通过广播的方式传输的功耗变化信息,并基于接收到的功耗变化信息,对处理器0进行功耗抑制。抑制模块120对处理器进行功耗抑制的具体方式可以包括但不限于:调整处理器的时钟频率,如将时钟频率由100MHz调整为70MHz;采用时钟门控(clock gating)方式,如控制时钟每运行8拍停2拍;抑制处理器的流水线带宽,如降低处理器中各功能单元内部流水线的带宽;抑制峰值电流;对处理器中的部分功能单元进行抑制,如将部分功能单元下电或关闭,或仅对产生高功耗事件的功能单元进行抑制;暂时关闭处理器的部分功能等等。抑制模块120可以采用上述抑制方式中的一种或多种对处理器进行功耗抑制。
示例性地,当处理器0的抑制模块120接收到处理器0的功耗变化信息,且功耗变化信息中包括S1事件时,说明处理器0已经发生功耗变化事件,需要立即进行主动防御,抑制模块120可以按照S1事件对应的设定抑制比例对处理器0进行功耗抑制。
当处理器0的抑制模块120接收到处理器0的功耗变化信息,且功耗变化信息包括S2事件时,如果在设定时间段内处理器0的抑制模块120接收到至少N个处理器发送的功耗变化信息,则抑制模块120按照S2事件对应的设定抑制比例对处理器0进行功耗抑制;其中,N为设定的S2事件对应的变化处理器数量阈值。
当处理器0的抑制模块120接收到处理器0的功耗变化信息,且功耗变化信息包括S3事件时,如果在设定时间段内处理器0的抑制模块120接收到至少M个处理器发送的功耗变化信息,则抑制模块120按照S3事件对应的设定抑制比例对处理器0进行功耗抑制;其中,M为设定的S2事件对应的变化处理器数量阈值。
当处理器0的抑制模块120接收到另一处理器的功耗变化信息时,如果在设定时间段内处理器0的抑制模块120接收到至少K个处理器发送的功耗变化信息,且处理器0的业务优先级低于该另一处理器的业务优先级,则按照其他处理器功耗变化信息对应的设定抑制比例对处理器0进行功耗抑制;其中,另一处理器可以是除处理器0之外的任意一个处理器,K为设定的其他处理器功耗变化信息对应的变化处理器数量阈值。K与上述的M、N的取值可以相同,也可以不同。
在一些实施例中,处理器0的抑制模块120可以包括功耗事件仲裁模块和峰值功耗抑制(MaxPower Mitigation,MXPM)模块。功耗事件仲裁模块用于根据接收到的各个处理器的功耗变化信息,确定是否对处理器0进行功耗抑制,并在确定对处理器0进行功耗抑制时,向峰值功耗抑制模块发送抑制指令,抑制指令中包括抑制比例和抑制时长。峰值功耗抑制模块可以根据功耗抑制指令中的抑制比例,在抑制时长内对处理器0进行功耗抑制。
处理器0的抑制模块120对处理器0进行功耗抑制之后,通过广播的方式向除处理器0之外的其他各个处理器传输抑制信息,以使其他处理器确定是否需要联动进行功耗抑制。
处理器0的抑制模块120还可以接收其他处理器中的任意一个处理器通过广播的方式传输的抑制信息。当接收到另一处理器的抑制信息时,若处理器0的业务优先级低于该另一处理器的业务优先级,则抑制模块120按照抑制信息对应的设定抑制比例对处理器0进行功耗抑制,从而抑制电压噪声。抑制信息在下文中称为S***,S***中携带有S***标志。
如图1所示,处理器0的抑制模块120包括抑制信息输入接口,即S4输入接口121,以及抑制信息输出接口,即S4输出接口122。处理器0的抑制模块120可以通过S4输入接口121接收其他处理器广播的S***,通过S4输出接口122向其他处理器广播抑制信息。
当功耗变化监测模块110包括事件监测模块、功耗变化预测模块和信号监测模块时,处理器0的抑制模块120接收到的功耗变化信息可能是S1事件、S2事件或S3事件中的任意一种。此时,处理器0的抑制模块120进行功耗抑制的过程如图4所示,包括如下步骤:
S401,接收到事件信息。
处理器0的抑制模块120接收到的处理器0的功耗变化监测模块110发送的处理器0的功耗变化信息,以及其他处理器发送的功耗变化信息和抑制信息均可以称为事件信息。功耗变化信息可能是S1事件、S2事件或S3事件中的任意一种,抑制信息为S***。
任意一个处理器的发送的事件信息中可以携带处理器的标识信息和事件标志,例如,S1事件中携带有S1事件标志。处理器0的功耗变化监测模块110发送的事件信息中也可以携带处理器0的标识信息。处理器可以称为处理器核(core),处理器的标识信息可以采用Cn表示,其中,n的取值为1、……N-1中的整数值;示例性地,下文中将处理器0的S1事件表示为C0-S1,处理器0的S2事件表示为C0-S2,处理器1的S1事件表示为C1-S1。
S402,判断是否为处理器0的事件信息;若是,则执行步骤S403,若否,则执行步骤S407;
S403,判断是否为S1事件;若是,则执行步骤S404;若否,则执行步骤S405;
抑制模块120可以根据事件信息中携带的处理器的标识信息确定是哪一个处理器发送的事件信息。如果是处理器0的事件信息,则可以根据事件信息中携带的事件标志确定是否是S1事件。
S404,按照S1事件对应的设定抑制比例对处理器0进行功耗抑制。
如果接收到C0-S1,即处理器自身的S1事件,说明处理器自身已经发生功耗变化事件,需要立即进行主动防御,则抑制模块120可以按照S1事件对应的设定抑制比例,在设定的S1事件对应的抑制时长内对处理器0进行功耗抑制,以减小电源噪声。
S405,判断是否接收到至少N个处理器发送的功耗变化信息;若是,则执行步骤S406,若否,则执行步骤S410。
其中,N为设定数量。N的取值可以是1、2、3或其他整数值。
S406,按照S2/S3事件对应的设定抑制比例对处理器0进行功耗抑制。
如果不是处理器0的S1事件,说明是处理器0的S2事件或S3事件。此时,如果发送功耗变化信息的处理器的数量大于或等于N,则可以按照S2/S3事件对应的设定抑制比例在设定的抑制时长内对处理器0进行功耗抑制。示例性地,假设当前接收到的是C0-S2,可以采用如下方法统计发送功耗变化信息的处理器的数量:统计在当前时刻以及当前时刻之前的设定时间段内共接收到几个处理器发送的功耗变化信息。例如,统计结果可以是:在当前时刻以及当前时刻之前的0.05ms之内,除接收到上述C0-S2事件之前,还接收到C1-S1,即共接收到2个处理器发送的功耗变化信息。
示例性地,如果N是1,则在确定接收到处理器0的S2事件或S3事件时,就可以按照S2/S3事件对应的设定抑制比例,在设定的S2/S3事件对应的抑制时长内对处理器0进行功耗抑制。如果N是2,则在确定发送功耗变化信息的处理器的数量为2个或2个以上时,可以按照S2/S3事件对应的设定抑制比例在设定的S2/S3事件对应的抑制时长内对处理器0进行功耗抑制;否则,如果在当前时刻以及当前时刻之前的0.05ms之内,仅接收到C0-S2或C0-S3事件,则可以不对处理器0进行功耗抑制,继续等待下一个事件信息的到来。
在图4所示的实施例中,S2事件对应的设定抑制比例和S3事件对应的设定抑制比例采用同一设定比例值,S2事件对应的抑制时长和S3事件对应的抑制时长也可以相同。
在另一些实施例中,S2事件对应的设定抑制比例和S3事件对应的设定抑制比例可以不同,S2事件对应的抑制时长和S3事件对应的抑制时长也可以不同。在判断接收到的事件信息是处理器0的功耗变化信息后,还可以根据事件信息中的事件标志进一步判断是S2事件,还是S3事件。如果接收到C0-S2,在确定发送功耗变化信息的处理器的数量达到N时,可以按照S2事件对应的设定抑制比例在设定的S2事件对应的抑制时长内对处理器0进行功耗抑制。如果接收到C0-S3,在确定发送功耗变化信息的处理器的数量达到M时,可以按照S3事件对应的设定抑制比例在设定的S3事件对应的抑制时长内对处理器0进行功耗抑制。其中,M也是一个设定数量,M与N可以相同,也可以不同。
在另一些实施例中,还可以设定接收到至少N1个处理器的S1事件、至少N2个处理器的S2事件和至少N3个处理器的S3事件时,才执行对处理器进行功耗抑制的步骤。其中,N1的取值可以是0、1、2或其他整数值,N2的取值可以是0、1、2或其他整数值,N3的取值可以是0、1、2或其他整数值。例如,假设N1取值为1,N2取值为2,N3取值为0,如果在当前时刻,接收到C0-S2,在当前时刻之前的0.05ms之内,仅接收到C1-S2事件,则不执行对处理器0的功耗抑制,继续等待下一个事件信息的到来;如果在当前时刻,接收到C0-S2,在当前时刻之前的0.05ms之内,接收到C1-S1和C3-S2两个功耗变化信息,或者还接收到其他处理器的功耗变化信息,则可以按照S2事件对应的设定抑制比例在设定的S2事件对应的抑制时长内对处理器0进行功耗抑制。
S407,判断是否接收到至少K个处理器发送的功耗变化信息;若是,则执行步骤S408,若否,则执行步骤S410。
如果是其他处理器发送的事件信息,判断是否接收到至少K个处理器发送的功耗变化信息。其中,K也是一个设定数量。K的取值可以与N相同,也可以不同。
S408,判断处理器0的业务优先级是否低于发送功耗变化信息的处理器的业务优先级;若是,则执行步骤S409,若否,则执行步骤S410。
S409,按照设定的级联抑制比例对处理器0进行功耗抑制。
在图4所示的实施例中,如果是其他处理器发送的事件信息,并且,确定在当前时刻以及当前时刻之前的设定时间段内,发送功耗变化信息的处理器的数量大于或等于K,且处理器0的业务优先级较低时,可以按照其他处理器对应的设定抑制比例在设定的其他处理器对应的抑制时长内对处理器0进行功耗抑制。
示例性地,如果K是3,则在接收到C1-S1时,如果确定发送功耗变化信息的处理器的数量为3个或3个以上时,可以继续比较处理器0与处理器1的业务优先级,如果处理器0的业务优先级低于处理器1的业务优先级,则按照其他处理器对应的设定抑制比例在设定的其他处理器对应的抑制时长内对处理器0进行功耗抑制;否则,可以不对处理器0进行功耗抑制,继续等待下一个事件信息的到来。其他处理器对应的设定抑制比例与处理器自身的各种功耗变化信息对应的设定抑制比例可以不同。
在另一些实施例中,可以对其他处理器的功耗变化信息与抑制信息进行区分,分别进行不同处理。示例性地,在确定是其他处理器发送的事件信息后,可以根据事件信息中的事件标志确定是功耗变化信息,还是抑制信息。如果是功耗变化信息,发送功耗变化信息的处理器的数量大于或等于K,且处理器0的业务优先级较低时,可以按照其他处理器的功耗变化信息对应的设定抑制比例在设定的其他处理器的功耗变化信息对应的抑制时长内对处理器0进行功耗抑制;如果是抑制信息,且处理器0的业务优先级低于发送抑制信息的处理器的业务优先级时,可以按照其他处理器的抑制信息对应的设定抑制比例在设定的其他处理器的抑制信息对应的抑制时长内对处理器0进行功耗抑制。例如,如果接收到C1-S4,且处理器0的业务优先级低于处理器1的业务优先级,则按照其他处理器的抑制信息对应的设定抑制比例在设定的其他处理器的抑制信息对应的抑制时长内对处理器0进行功耗抑制。
在一些实施例中,处理器从功耗抑制状态恢复到正常运行状态的过程,可以分为多个阶段进行恢复,例如,若通过时钟频率进行功耗抑制,可以先将时钟频率从抑制值提升至中间值,再从中间值提升至正常值,以避免恢复太快反而增加电源跌落。
S410,等待接收下一个事件信息。
在执行对处理器0进行功耗抑制的步骤之后,或者根据上述条件,判定此次不需要对处理器0进行功耗抑制时,等待下一个实际信息的触发,再根据上述流程判定是否需要对处理器0进行功耗抑制。
在一些实施例中,上述生成功耗变化信息的过程中所使用的各种设定阈值,以及抑制模块在进行功耗抑制时所使用的各种设定数量、设定抑制比例、设定时长等,均可以预先设置并保存在处理器的缓存***或对应寄存器中。
在另一些实施例中,芯片100还可以包括针对N个处理器中的每个处理器分别设置的配置模块(Configuration Module,CFG)。配置模块可以设置在对应处理器的内部,也可以设置在对应处理器的外部。图5示出了一种内部设置有配置模块的处理器的结构示意图,如图5所示,配置模块140与功耗变化监测模块110和抑制模块120连接,配置模块140可以用于保存上述生成功耗变化信息的过程中所使用的各种设定阈值,以及抑制模块在进行功耗抑制时所使用的各种设定数量、设定抑制比例、设定时长等。配置模块140还可以根据接收到的任意一个处理器的抑制信息,调整对应处理器在生成功耗变化信息的过程中所使用的各种设定阈值和/或在进行功耗抑制的过程中所使用的各种设定抑制比例等。
图5中虽未示出处理器中包含的各功能单元,但图5所示的处理器可以包括图2中所示出的各功能单元。
下文示例性地说明配置模块140中配置的一些设定参数的含义。
CFG.Throttle_signal(S2):立即抑制触发事件,可以是本处理器的S1事件、或者本处理器的S1/S2事件,或者本处理器的S1/S2/S2事件;例如,如果CFG.Throttle_signal为本处理器的S1事件,则抑制模块接收到本处理器的S1事件时,立即按照设定抑制比例对本处理器进行功耗抑制;如果CFG.Throttle_signal(S2)为本处理器的S1/S2/S2事件,则抑制模块接收到本处理器的任何功耗变化信息时,均立即按照设定抑制比例对本处理器进行功耗抑制;
CFG.Detector_time(P2):设定的DIDT检测周期,状态监测模块按照该DIDT检测周期对处理器0的运行状态进行检测;例如,设定的DIDT检测周期可以是8cyc或16cyc等;
CFG.Forcast_time(W1):预测未来功耗变化事件产生窗口的时长,功耗变化预测模块预测在设定的窗口时长内是否将发生功耗变化事件;例如,设定的窗口时长可以是8cyc或16cyc等,也可以是处理器的谐振频率的1/4或1/2周期等;
CFG.Detector_threshold(L1):功耗变化斜率的最大斜率阈值,当状态监测模块监测到本处理器的功耗变化斜率达到该设定的最大斜率阈值时,生成功耗变化监测信息;
CFG.Detector_threshold(L0):功耗变化斜率的最小斜率阈值,当状态监测模块监测到本处理器的功耗变化斜率小于或等于该设定的最小斜率阈值时,取消功耗变化监测信息;
CFG.Throttle_m(R2):用于限定抑制模块可进行功耗抑制的功能单元的范围;
CFG.Throttle_th(L2):本处理器对应的设定抑制比例,即本处理器的S1事件、S2事件和S3事件对应相同的设定抑制比例;抑制模块在接收到本处理器的S1事件、S2事件或S3事件时,均可以按照该设定抑制比例对本处理器进行功耗抑制;例如,设定抑制比例可以是90%,80%,70%等;其中,90%表示将本处理器的功耗降低至当前的90%。
CFG.Throttle_time(T2):设定的抑制时长,抑制模块对本处理器进行功耗抑制的时间长度;与设定的DIDT检测周期相匹配;例如,设定的抑制时长可以是8cyc或16cyc等;
CFG.Throttle_th(cL2):级联抑制比例,即其他处理器对应的设定抑制比例;抑制模块接收到其他处理器的功耗变化信息或抑制信息时,可以按照设定的级联抑制比例对本处理器进行功耗抑制;例如,设定抑制比例可以是90%,80%,70%......0%;0%表示推迟取指,从取指单元开始就停止工作;
CFG.Throttle_time(cT2):级联抑制时长,即其他处理器对应的设定抑制时长;抑制模块接收到其他处理器的功耗变化信息或抑制信息时,可以按照设定的级联抑制比例在设定的级联抑制时长内对本处理器进行功耗抑制;级联抑制时长与设定的DIDT检测周期相匹配;例如,设定的抑制时长可以是8cyc或16cyc等;
CFG.casade_corenum(C2):抑制模块进行功耗抑制判断时所使用的设定数量,即达到该设定数量的处理器产生事件信息,就对本处理器进行功耗抑制;例如,0表示1个处理器产生功耗变化信息就进行功耗抑制,1表示2个处理器产生事件信息就进行功耗抑制,2表示3个处理器产生事件信息就进行功耗抑制,4表示不级联,只要本处理器产生事件信息就进行功耗抑制;
CFG.casade_Mask(M2):抑制模块进行抑制判断时,不参与判断的事件;例如,S***可以不参与判断,抑制模块在统计发送事件信息的处理器的数量时,可以排除发送S***的处理器;每个事件1bit。
在一些实施例中,可以针对不同的事件分别设置不同的抑制比例,示例性地,配置模块中还可以选择性地设置下列参数:
CFG.Throttle_Casade_th_S1(L2S1):S1事件对应的设定抑制比例,抑制模块在接收到本处理器的S1事件时,可以按照S1事件对应的设定抑制比例对本处理器进行功耗抑制,例如,S1事件对应的设定抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S1(T2S1):S1事件对应的设定抑制时长,抑制模块在接收到本处理器的S1事件时,可以在S1事件对应的设定抑制时长内对本处理器进行功耗抑制;与设定的DIDT检测周期相匹配;例如,S1事件对应的设定抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S2(L2S2):S2事件对应的设定抑制比例,抑制模块在接收到本处理器的S2事件时,可以按照S2事件对应的设定抑制比例对本处理器进行功耗抑制,例如,S2事件对应的设定抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S2(T2S2):S2事件对应的设定抑制时长,抑制模块在接收到本处理器的S2事件时,可以在S2事件对应的设定抑制时长内对本处理器进行功耗抑制;与设定的DIDT检测周期相匹配;例如,S2事件对应的设定抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S3(L2S3):S3事件对应的设定抑制比例,抑制模块在接收到本处理器的S3事件时,可以按照S3事件对应的设定抑制比例对本处理器进行功耗抑制,例如,S3事件对应的设定抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S3(T2S3):S3事件对应的设定抑制时长,抑制模块在接收到本处理器的S3事件时,可以在S3事件对应的设定抑制时长内对本处理器进行功耗抑制;与设定的DIDT检测周期相匹配;例如,S3事件对应的设定抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S1(cL2S1):针对S1事件的级联抑制比例,即其他处理器的S1事件对应的设定抑制比例;抑制模块接收到其他处理器的S1事件时,可以按照针对S1事件的级联抑制比例对本处理器进行功耗抑制;例如,针对S1事件的级联抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S1(cT2S1):针对S1事件的级联抑制时长,即其他处理器的S1事件对应的级联抑制时长;抑制模块接收到其他处理器的S1事件时,可以按照针对S1事件的级联抑制时长对本处理器进行功耗抑制;例如,针对S1事件的级联抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S2(cL2S2):针对S2事件的级联抑制比例,即其他处理器的S2事件对应的设定抑制比例;抑制模块接收到其他处理器的S2事件时,可以按照针对S2事件的级联抑制比例对本处理器进行功耗抑制;例如,针对S2事件的级联抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S2(cT2S2):针对S2事件的级联抑制时长,即其他处理器的S2事件对应的级联抑制时长;抑制模块接收到其他处理器的S2事件时,可以按照针对S2事件的级联抑制时长对本处理器进行功耗抑制;例如,针对S2事件的级联抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S3(cL2S3):针对S3事件的级联抑制比例,即其他处理器的S3事件对应的设定抑制比例;抑制模块接收到其他处理器的S3事件时,可以按照针对S3事件的级联抑制比例对本处理器进行功耗抑制;例如,针对S3事件的级联抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S3(cT2S3):针对S3事件的级联抑制时长,即其他处理器的S3事件对应的级联抑制时长;抑制模块接收到其他处理器的S3事件时,可以按照针对S3事件的级联抑制时长对本处理器进行功耗抑制;例如,针对S3事件的级联抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_th_S4(cL2S4):针对S***的级联抑制比例,即其他处理器的S***对应的设定抑制比例;抑制模块接收到其他处理器的S***时,可以按照针对S***的级联抑制比例对本处理器进行功耗抑制;例如,针对S***的级联抑制比例可以是90%,80%,70%......0%;
CFG.Throttle_Casade_time_S4(cT2S4):针对S***的级联抑制时长,即其他处理器的S***对应的级联抑制时长;抑制模块接收到其他处理器的S***时,可以按照针对S***的级联抑制时长对本处理器进行功耗抑制;例如,针对S***的级联抑制时长可以是8cyc或16cyc等;
CFG.Throttle_Casade_cfg_en(cEn):针对可选事件级联抑制配置的使能,若使能,则根据级联事件场景自动将该事件的级联抑制比例传递给cL2/cT2,提供给抑制模块使用;
CFG.Throttle_Casade_priority(cPrn):本处理器的业务优先级;当两个处理器中一个需要抑制另一个可正常运行时,业务优先级低的处理器进行功耗抑制;
CFG.Throttle_Casade_release(cTrn):本处理器从抑制状态恢复到正常状态时,需要增加几个阶段恢复。默认为0,直接恢复。1为增加一个阶段恢复(可以理解为电流恢复到高峰中间有一个台阶。)2,3依此类推,可以避免恢复太快反倒增加电压跌落。
配置模块140还负责调整本处理器在生成功耗变化信息的过程中所使用的各种设定阈值,以及在进行功耗抑制的过程中所使用的各种设定抑制比例等。示例性地,配置模块140可以根据接收到的任意一个处理器的抑制信息,调整对应处理器在生成功耗变化信息的过程中所使用的各种设定阈值;或者,配置模块140可以根据接收到的任意一个处理器的抑制信息,在进行功耗抑制的过程中所使用的各种设定抑制比例和设定抑制时长;或者,配置模块140可以根据接收到的任意一个处理器的抑制信息,调整对应处理器在生成功耗变化信息的过程中所使用的各种设定阈值和在进行功耗抑制的过程中所使用的各种设定抑制比例和设定抑制时长。
例如,处理器0的抑制模块120接收到处理器2的S***,可以将处理器2的S***传输至处理器0的配置模块140。处理器0的配置模块140接收到处理器2的S***,说明处理器2当前已处于功耗抑制状态,可以关联修改处理器0的功耗变化监测模块110检测S1事件的产生阈值,处理器0的功耗变化监测模块110根据修改后的阈值进行监测。在所有处理器均没有功耗抑制动作发生时,功耗变化监测模块110的S1事件的产生阈值恢复配置的默认值。对阈值的调整可由软件配合调整,也可以结合硬件业务分类处理器配合调整。
本申请实施例提供的芯片,各个处理器之间可以相互传输功耗变化信息,并协同进行功耗抑制,可以更准确更及时地对处理器进行功耗抑制,更有效地抑制电压噪声,减少对处理器的性能损伤。
在一些实施例中,如图6所示,本申请实施例提供的芯片还可以包括电源域内设置的仲裁模块150和抑制执行模块160。仲裁模块150和抑制执行模块160均属于功耗调节模块。其中,仲裁模块150又可以称为电源完整性仲裁(PI arbiter)模块,用于接收多个处理器的功耗变化信息,处理器的功耗变化信息可以是每个处理器的功耗变化监测模块110发送至仲裁模块的。仲裁模块150可以根据接收到的功耗变化信息,确定哪个或哪些处理器需要进行功耗抑制,并向抑制执行模块160发送功耗抑制指令,功耗抑制指令中包含需要进行功耗抑制的目标处理器。仲裁模块150在确定需要对部分处理器进行功耗抑制时,也可以先对业务优先级较低的处理器进行功耗抑制。
抑制执行模块160用于根据仲裁模块150发送的功耗抑制指令,对目标处理器进行功耗抑制。抑制执行模块160又可以称为快速分频响应(fast frequency scaling,FFS)模块,可以通过快速分频响应的方式进行降频处理,抑制执行模块160可以同时降频所有处理器,也可以只降频指定的部分处理器,即仲裁模块150确定的需要进行功耗抑制的目标处理器。
在一些实施例中,本申请实施例提供的芯片还可以包括电源域内设置的瞬态电流监测(transient current monitor,TCM)模块170。瞬态电流监测模块170属于功耗监测模块,用于监测电源域内的电流,并根据电流的变化生成电压状态指示信息,例如,瞬态电流监测模块170在监测到电源域内的实时电流达到或接近峰值电流(peak current)时,可以生成电压状态指示信息。瞬态电流监测模块170将电压状态指示信息发送至仲裁模块150,以使仲裁模块150根据电压状态指示信息确定功耗抑制策略,并根据确定的功耗抑制策略,向抑制执行模块160发送功耗抑制指令。
示例性地,在一种实施例中,仲裁模块可以仅根据瞬态电流监测模块170发送的电压状态指示信息确定功耗抑制策略;在另一种实施例中,仲裁模块可以仅根据各处理器发送的功耗变化信息确定功耗抑制策略;在另一种实施例中,仲裁模块可以根据各处理器发送的功耗变化信息和瞬态电流监测模块170发送的电压状态指示信息确定功耗抑制策略。
图7示例性地示出了一种仲裁模块进行功耗抑制的过程的流程图,如图7所示,该过程可以包括如下步骤:
S701,接收到触发事件。
仲裁模块接收到的触发事件可能是某个处理器的功耗变化监测模块发送的功耗变化信息,如上述的S1事件、S2事件或S3事件;也可能是瞬态电流监测模块发送的电压状态指示信息。
S702,判断触发事件是否为电压状态指示信息;若是,执行步骤S703;若否,执行步骤S704。
仲裁模块可以根据接收到的触发事件中携带的事件标志,或者根据接收到触发事件的接口,确定接收到的触发事件是否是瞬态电流监测模块发送的电压状态指示信息。
S703,根据针对电压状态指示信息的功耗抑制策略,生成功耗抑制指令。
如果接收到瞬态电流监测模块发送的电压状态指示信息,仲裁模块可以根据针对电压状态指示信息的设定抑制比例和设定抑制时长,生成功耗抑制指令,对全部处理器进行功耗抑制;或者,仲裁模块可以根据针对电压状态指示信息的设定抑制比例和设定抑制时长,以及各处理器的业务优先级,生成功耗抑制指令,对部分处理器进行功耗抑制。
在一些实施例中,仲裁模块还可以根据接收到电压状态指示信息,调整各处理器在生成功耗变化信息的过程中使用的阈值或在功耗抑制过程中使用的设定抑制比例和设定抑制时长。
S704,根据针对功耗变化信息的功耗抑制策略,生成功耗抑制指令。
如果接收到的触发事件不是电压状态指示信息,而是某个处理器发送的功耗变化信息,假设是处理器1发送的功耗变化信息,仲裁模块可以根据针对功耗变化信息设定抑制比例和设定抑制时长,生成功耗抑制指令,对处理器1进行功耗抑制;或者,仲裁模块可以根据针对功耗变化信息设定抑制比例和设定抑制时长,生成功耗抑制指令,对业务优先级低于处理器1的处理器进行功耗抑制;或者,仲裁模块可以根据针对功耗变化信息设定抑制比例和设定抑制时长,生成功耗抑制指令,对处理器1以及业务优先级低于处理器1的处理器进行功耗抑制。
在一些实施例中,仲裁模块接收到处理器1发送的功耗变化信息时,可以参照抑制模块进行功耗抑制判断的逻辑,先确定发送功耗变化信息的处理器的数量是否达到设定数量,如果达到设定数量,则可以按照针对功耗变化信息设定抑制比例和设定抑制时长,和发送功耗变化信息的各个处理器的业务优先级,确定对哪些处理器进行功耗抑制,并生成功耗抑制指令,对确定的目标处理器进行功耗抑制。
在一些实施例中,仲裁模块还可以根据接收到处理器的功耗变化信息,调整各处理器在生成功耗变化信息的过程中使用的阈值或在功耗抑制过程中使用的设定抑制比例和设定抑制时长。
S705,向抑制执行模块发送功耗抑制指令。
仲裁模块将生成的功耗抑制指令发送至抑制执行模块,由抑制执行模块根据功耗抑制指令,采用降频等方式对相应的处理器进行功耗抑制。
仲裁模块向抑制执行模块发送功耗抑制指令后,可以等待下一个触发事件的到来。
在一些实施例中,仲裁模块接收到某个处理器发送的功耗变化信息时,可以判断功耗变化信息是否为高频事件信息,即ns级别的功耗变化事件引发的功耗变化信息;如果是高频事件信息,可以按照针对ns级别的功耗变化事件的功耗抑制策略,立即进行ns级别的功耗抑制。如果不是高频事件信息,例如是us级别的功耗变化事件引发的功耗变化信息,则可以按照针对us级别的功耗变化事件的功耗抑制策略,进行us级别的功耗抑制。
上述实施例中,通过处理器核心内部的高采样率的功耗变化监测模块得到的功耗变化信息,以及针对同一电源域的低采样率的瞬态电流监测模块得到电压状态指示信息,由集中管理的仲裁模块进行降频策略控制,再通过抑制执行模块给相应的处理器核心进行降频控制及频率恢复控制,可以对各个处理器的抑制模块的抑制效率和抑制幅度进行补充,如进行更大幅度的功耗抑制,同时,还可以提供多场景能效最优选择。
在一些实施例中,芯片中可以不针对每个处理器分别设置的抑制模块。如图8所示,芯片100可以包括针对N个处理器中的每个处理器分别设置的功耗变化监测模块110,电源域内设置的仲裁模块150和抑制执行模块160,还可以包括瞬态电流监测模块170。功耗变化监测模块110用于监测对应处理器的运行状态,并根据对应处理器的运行状态生成对应处理器的功耗变化信息,将功耗变化信息传输至仲裁模块150。瞬态电流监测模块170用于监测电源域内的电流,并根据电流的变化生成电压状态指示信息。瞬态电流监测模块170将电压状态指示信息发送至仲裁模块150。仲裁模块150可以根据各个处理器的功耗变化信息和瞬态电流监测模块170传输的电压状态指示信息,确定功耗抑制策略,并根据确定的功耗抑制策略,向抑制执行模块160发送功耗抑制指令,功耗抑制指令中包含需要进行功耗抑制的目标处理器,还包括抑制比例和抑制时长。抑制执行模块160根据功耗抑制指令中的抑制比例,在抑制时长内对目标处理器进行功耗抑制。
上述实施例中,针对目标处理器的功耗抑制不是核内控制,而是由处理器外的抑制执行模块160对目标处理器进行电压或频率的控制。外部降频降压对处理器的电流的抑制程度比同等比例降性能的核内控制效果可以更好。
在另一些实施例中,芯片中也可以不包括瞬态电流监测模块。仲裁模块150可以根据各个处理器的功耗变化监测模块110传输的功耗变化信息,确定功耗抑制策略,并根据确定的功耗抑制策略,向抑制执行模块160发送功耗抑制指令。
在另一些实施例中,芯片中也可以不包括针对每个处理器分别设置的功耗变化监测模块。仲裁模块150可以根据瞬态电流监测模块170传输的电压状态指示信息,确定功耗抑制策略,并根据确定的功耗抑制策略,向抑制执行模块160发送功耗抑制指令。
与上述实施例基于相同的发明构思,本申请实施例还提供电压噪声抑制方法,由上述实施例中的芯片执行。如图9所示,该方法可以包括如下步骤:
S901,获取处于同一电源域内的多个处理器的功耗变化信息;
S902,根据多个处理器的功耗变化信息,对多个处理器中的部分或全部处理器进行功耗抑制。
在一些实施例中,上述电压噪声抑制方法可以由处于同一电源域内的多个处理器中的任意一个处理器执行,下文中以处理器0为例进行说明。
处理器0可以通过如下方式获取处于同一电源域内的多个处理器的功耗变化信息:监测处理器0的运行状态,并根据处理器0的运行状态生成处理器0的功耗变化信息;接收第二处理器发送的第二处理器的功耗变化信息;第二处理器的功耗变化信息是根据第二处理器的运行状态生成的;第二处理器为除处理器0之外的任意一个处理器。
其中,处理器0的功耗变化信息包括如下至少一种:监测到处理器0发生功耗变化事件时,生成的功耗变化监测信息;根据处理器0的运行状态与已发生功耗变化事件的历史状态记录,预测到在设定时间窗内将发生功耗变化事件时,生成的功耗变化预测信息;监测到处理器0接收到设定的目标信号时,生成的目标信号指示信息。
处理器0的功耗变化信息可以由处理器0的功耗变化监测模块生成,并传输至处理器0的抑制模块。处理器0的抑制模块可以接收处理器0的功耗变化监测模块发送的处理器0的功耗变化信息,以及接收第二处理器发送的第二处理器的功耗变化信息。
处理器0可以根据多个处理器的功耗变化信息,对处理器0进行功耗抑制。示例性地,当获取到处理器0的功耗变化监测信息时,按照针对功耗变化监测信息的设定抑制比例,对处理器0进行功耗抑制;当获取到处理器0的功耗变化预测信息时,若在设定时间段内接收到至少N个处理器发送的功耗变化信息,则按照针对功耗变化预测信息的设定抑制比例,对处理器0进行功耗抑制;N为设定的变化处理器数量阈值;当获取到处理器0的目标信号指示信息时,若在设定时间段内接收到至少M个处理器发送的功耗变化信息,则按照针对目标信号指示信息的设定抑制比例,对处理器0进行功耗抑制;M为设定的变化处理器数量阈值。
当接收到第二处理器的功耗变化信息时,若在设定时间段内接收到至少K个处理器发送的功耗变化信息,且处理器0的业务优先级低于第二处理器的业务优先级,则按照设定的级联抑制比例,对处理器0进行功耗抑制;K为设定的变化处理器数量阈值。
对处理器0进行功耗抑制之后,可以通过广播的方式向除处理器0之外的每个处理器传输抑制信息。当接收到第二处理器的抑制信息时,若处理器0的业务优先级低于第二处理器的业务优先级,则按照针对抑制信息的设定抑制比例,对处理器0进行功耗抑制。
可选地,处理器0还可以根据接收到的任意一个处理器的抑制信息,调整处理器0在功耗监测过程中所使用的阈值和/或在进行功耗抑制的过程中所使用的抑制比例。
在另一些实施例中,上述电压噪声抑制方法可以由上述实施例中的仲裁模块执行,仲裁模块可以接收第一处理器发送的第一处理器的功耗变化信息;第一处理器为多个处理器中的任意一个;或者,仲裁模块可以接收电源域内的瞬态电流监测模块发送的功耗变化信息;功耗变化信息为瞬态电流监测模块根据电源域内的电流变化生成的电压状态指示信息。
仲裁模块可以根据接收到的功耗变化信息,确定需要进行功耗抑制的目标处理器;通过抑制执行模块对目标处理器进行功耗抑制。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行计算机程序或指令的方式来实现。计算机程序或指令可以构成计算机程序产品。本申请实施例还提供一种计算机程序产品,包含有计算机可执行指令。在一些实施例中,该计算机可执行指令用于使计算机执行图4、图7或图9所示的方法实施例中的功能。
计算机可执行指令可以被存放于计算机可读存储介质中,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有可执行指令。在一些实施例中,该计算机可执行指令用于使计算机执行图4、图7或图9所示的方法实施例中的功能。
本申请实施例提供的计算机可读存储介质可以是随机存取存储器(randomaccess memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically ePROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的计算机可读存储介质。
计算机可执行指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital videodisc,DVD);还可以是半导体介质,例如,固态硬盘。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的方案进行示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (25)

1.一种芯片,其特征在于,包括处于同一电源域内的多个处理器,功耗监测模块和功耗调节模块;
所述功耗监测模块用于获取所述多个处理器的功耗变化信息,并将所述功耗变化信息传输至所述功耗调节模块;
所述功耗调节模块用于根据所述多个处理器的功耗变化信息,对所述多个处理器中的部分或全部处理器进行功耗抑制。
2.根据权利要求1所述的芯片,其特征在于,所述功耗变化信息包括功耗变化监测信息;所述功耗监测模块包括针对所述多个处理器中的每个处理器分别设置的电压监测模块和/或状态监测模块;
第一处理器的电压监测模块用于监测所述第一处理器是否发生电压跌落,并在电压跌落的幅度超过设定幅度阈值时,生成所述功耗变化监测信息;所述第一处理器为所述多个处理器中的任意一个;
第一处理器的状态监测模块用于根据所述第一处理器的运行状态确定功耗变化斜率,并在功耗变化斜率达到所述第一处理器的设定斜率阈值时,生成所述功耗变化监测信息。
3.根据权利要求2所述的芯片,其特征在于,所述功耗变化信息还包括功耗变化预测信息;所述功耗监测模块还包括针对所述多个处理器中的每个处理器分别设置的功耗变化预测模块;
所述第一处理器的功耗变化预测模块用于监测所述第一处理器的运行状态,根据所述运行状态与已发生功耗变化事件的历史状态记录,预测在设定时间窗内是否将发生功耗变化事件,并在预测到将发生功耗变化事件时,生成所述功耗变化预测信息。
4.根据权利要求2或3所述的芯片,其特征在于,所述功耗变化信息还包括目标信号指示信息;所述功耗监测模块还包括针对所述多个处理器中的每个处理器分别设置的信号监测模块;
所述第一处理器的信号监测模块用于监测所述第一处理器是否接收到设定的目标信号,并在所述第一处理器接收到设定的目标信号时,生成所述目标信号指示信息。
5.根据权利要求2~4中任一项所述的芯片,其特征在于,所述功耗调节模块包括针对所述多个处理器中的每个处理器分别设置的抑制模块;
所述第一处理器的抑制模块用于接收所述第一处理器的功耗变化监测模块传输的所述第一处理器的功耗变化信息,以及接收除所述第一处理器之外的任意一个处理器通过广播的方式传输的功耗变化信息,并基于接收到的功耗变化信息,对所述第一处理器进行功耗抑制。
6.根据权利要求5所述的芯片,其特征在于,所述第一处理器的抑制模块,具体用于:
当接收到所述第一处理器的功耗变化信息,且所述第一处理器的功耗变化信息包括功耗变化监测信息时,按照针对功耗变化监测信息的设定抑制比例对所述第一处理器进行功耗抑制。
7.根据权利要求5或6所述的芯片,其特征在于,所述第一处理器的抑制模块,具体用于:
当接收到所述第一处理器的功耗变化信息,且所述第一处理器的功耗变化信息包括功耗变化预测信息时,若在设定时间段内接收到至少N个处理器发送的功耗变化信息,则按照针对功耗变化预测信息的设定抑制比例对所述第一处理器进行功耗抑制;所述N为设定的变化处理器数量阈值;或者,
当接收到所述第一处理器的功耗变化信息,且所述第一处理器的功耗变化信息包括目标信号指示信息时,若在设定时间段内接收到至少M个处理器发送的功耗变化信息,则按照针对目标信号指示信息的设定抑制比例对所述第一处理器进行功耗抑制;所述M为设定的变化处理器数量阈值。
8.根据权利要求5~7任一项所述的芯片,其特征在于,所述第一处理器的抑制模块,具体用于:
当接收到第二处理器的功耗变化信息时,若在设定时间段内接收到至少K个处理器发送的功耗变化信息,且所述第一处理器的业务优先级低于所述第二处理器的业务优先级,则按照设定的级联抑制比例对所述第一处理器进行功耗抑制;所述K为设定的变化处理器数量阈值;所述第二处理器为除所述第一处理器之外的任意一个处理器。
9.根据权利要求5~8中任一项所述的芯片,其特征在于,所述第一处理器的抑制模块,还用于:
对所述第一处理器进行功耗抑制之后,通过广播的方式向除所述第一处理器之外的每个处理器传输抑制信息;
所述第一处理器的抑制模块,还用于:接收除所述第一处理器之外的任意一个处理器通过广播的方式传输的抑制信息。
10.根据权利要求9所述的芯片,其特征在于,所述第一处理器的抑制模块,还用于:
当接收到第二处理器的抑制信息时,若所述第一处理器的业务优先级低于所述第二处理器的业务优先级,则按照针对抑制信息的设定抑制比例对所述第一处理器进行功耗抑制。
11.根据权利要求5~10中任一项所述的芯片,其特征在于,所述芯片还包括针对所述多个处理器中的每个处理器分别设置的配置模块;
所述第一处理器的配置模块用于根据接收到的任意一个处理器的抑制信息,调整所述第一处理器在生成功耗变化信息的过程中所使用的阈值和/或在进行功耗抑制的过程中所使用的抑制比例。
12.根据权利要求1~11中任一项所述的芯片,其特征在于,所述功耗调节模块包括所述电源域内的仲裁模块和抑制执行模块;
所述仲裁模块用于接收所述功耗监测模块发送的多个处理器的功耗变化信息,并根据接收到的功耗变化信息,向所述抑制执行模块发送功耗抑制指令,所述功耗抑制指令中包含需要进行功耗抑制的目标处理器;
所述抑制执行模块用于根据所述仲裁模块发送的功耗抑制指令,对所述目标处理器进行功耗抑制。
13.根据权利要求1~12中任一项所述的芯片,其特征在于,所述功耗监测模块包括所述电源域内的瞬态电流监测模块;
所述瞬态电流监测模块用于监测所述电源域内的电流,并根据所述电流的变化生成所述功耗变化信息。
14.一种电压噪声抑制方法,其特征在于,包括:
获取处于同一电源域内的多个处理器的功耗变化信息;
根据所述多个处理器的功耗变化信息,对所述多个处理器中的部分或全部处理器进行功耗抑制。
15.根据权利要求14所述的方法,其特征在于,所述方法由第一处理器执行,所述第一处理器为所述多个处理器中的任意一个;所述获取处于同一电源域内的多个处理器的功耗变化信息,包括:
监测所述第一处理器的运行状态,并根据所述第一处理器的运行状态生成所述第一处理器的功耗变化信息;第一处理器的功耗变化信息包括:监测到所述第一处理器发生功耗变化事件时,生成的功耗变化监测信息;
接收第二处理器发送的所述第二处理器的功耗变化信息;所述第二处理器的功耗变化信息是根据所述第二处理器的运行状态生成的;所述第二处理器为除所述第一处理器之外的任意一个处理器。
16.根据权利要求15所述的方法,其特征在于,所述第一处理器的功耗变化信息还包括如下至少一种:
根据所述第一处理器的运行状态与已发生功耗变化事件的历史状态记录,预测到在设定时间窗内将发生功耗变化事件时,生成的功耗变化预测信息;
监测到所述第一处理器接收到设定的目标信号时,生成的目标信号指示信息。
17.根据权利要求16所述的方法,其特征在于,所述根据所述多个处理器的功耗变化信息,对所述多个处理器中的部分或全部处理器进行功耗抑制,包括:
若获取到所述第一处理器的功耗变化监测信息,则按照针对功耗变化监测信息的设定抑制比例,对所述第一处理器进行功耗抑制;或者,
若获取到所述第一处理器的功耗变化预测信息,且在设定时间段内获取到至少N个处理器发送的功耗变化信息,则按照针对功耗变化预测信息的设定抑制比例,对所述第一处理器进行功耗抑制;所述N为设定的变化处理器数量阈值;或者,
若获取到所述第一处理器的目标信号指示信息,且在设定时间段内获取到至少M个处理器发送的功耗变化信息,则按照针对目标信号指示信息的设定抑制比例,对所述第一处理器进行功耗抑制;所述M为设定的变化处理器数量阈值。
18.根据权利要求15或16所述的方法,其特征在于,所述根据所述多个处理器的功耗变化信息,对所述多个处理器中的部分或全部处理器进行功耗抑制,包括:
当接收到第二处理器的功耗变化信息时,若在设定时间段内接收到至少K个处理器发送的功耗变化信息,且所述第一处理器的业务优先级低于所述第二处理器的业务优先级,则按照设定的级联抑制比例,对所述第一处理器进行功耗抑制;所述K为设定的变化处理器数量阈值。
19.根据权利要求17或18所述的方法,其特征在于,所述对所述第一处理器进行功耗抑制之后,所述方法还包括:
通过广播的方式向除所述第一处理器之外的每个处理器传输抑制信息。
20.根据权利要求19所述的方法,其特征在于,所述方法还包括:
当接收到第二处理器的抑制信息时,若所述第一处理器的业务优先级低于所述第二处理器的业务优先级,则按照针对抑制信息的设定抑制比例,对所述第一处理器进行功耗抑制。
21.根据权利要求19或20所述的方法,其特征在于,所述方法还包括:
根据接收到的任意一个处理器的抑制信息,调整所述第一处理器在功耗监测过程中所使用的阈值和/或在进行功耗抑制的过程中所使用的抑制比例。
22.根据权利要求14所述的方法,其特征在于,所述方法由仲裁模块执行,所述获取处于同一电源域内的多个处理器的功耗变化信息,包括:
接收第一处理器发送的所述第一处理器的功耗变化信息;所述第一处理器为所述多个处理器中的任意一个;或者,
接收所述电源域内的瞬态电流监测模块发送的功耗变化信息;所述功耗变化信息为所述瞬态电流监测模块根据所述电源域内的电流变化生成的。
23.根据权利要求22所述的方法,其特征在于,所述根据所述多个处理器的功耗变化信息,对所述多个处理器中的部分或全部处理器进行功耗抑制,包括:
根据接收到的功耗变化信息,确定需要进行功耗抑制的目标处理器;
通过抑制执行模块对所述目标处理器进行功耗抑制。
24.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求14~23中任一项所述的方法。
25.一种计算机程序产品,其特征在于,包含有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求14~23中任一项所述的方法。
CN202210404415.XA 2022-04-18 2022-04-18 芯片和电压噪声抑制方法 Pending CN116954346A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210404415.XA CN116954346A (zh) 2022-04-18 2022-04-18 芯片和电压噪声抑制方法
PCT/CN2023/082803 WO2023202305A1 (zh) 2022-04-18 2023-03-21 芯片和电压噪声抑制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210404415.XA CN116954346A (zh) 2022-04-18 2022-04-18 芯片和电压噪声抑制方法

Publications (1)

Publication Number Publication Date
CN116954346A true CN116954346A (zh) 2023-10-27

Family

ID=88419159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210404415.XA Pending CN116954346A (zh) 2022-04-18 2022-04-18 芯片和电压噪声抑制方法

Country Status (2)

Country Link
CN (1) CN116954346A (zh)
WO (1) WO2023202305A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2849024A1 (en) * 2013-09-16 2015-03-18 ST-Ericsson SA Power consumption management system and method
WO2021114155A1 (zh) * 2019-12-11 2021-06-17 华为技术有限公司 一种处理器及降低功耗的方法
WO2021232266A1 (zh) * 2020-05-20 2021-11-25 华为技术有限公司 芯片的控制方法和控制装置
CN113641550B (zh) * 2021-06-16 2024-03-22 无锡江南计算技术研究所 一种处理器功耗管控方法及装置
CN113886196B (zh) * 2021-12-07 2022-03-15 上海燧原科技有限公司 片上功耗管理方法、电子设备及存储介质

Also Published As

Publication number Publication date
WO2023202305A1 (zh) 2023-10-26

Similar Documents

Publication Publication Date Title
KR101597167B1 (ko) 전력 소비를 감소시키기 위한 우선순위 기반 애플리케이션 이벤트 제어(paec)
US20090150696A1 (en) Transitioning a processor package to a low power state
US10261559B2 (en) Predicting future power level states for processor cores
US8356194B2 (en) Method and apparatus for estimating overshoot power after estimating power of executing events
JP6125539B2 (ja) リアルタイムシステムにおける動的電力管理
US7337334B2 (en) Network processor power management
US8539269B2 (en) Apparatus and method for high current protection
US9207745B2 (en) Methods and systems for managing performance and power utilization of a processor employing a fully-multithreaded load threshold
US9811150B2 (en) System and method for controlling idle state exits to manage DI/DT issues
US20190042331A1 (en) Power aware load balancing using a hardware queue manager
JP2020537236A (ja) システム、コンピュータ実行方法およびコンピュータ・プログラム製品
US20190146567A1 (en) Processor throttling based on accumulated combined current measurements
US11138037B2 (en) Switch policy for hybrid scheduling in multi-processor systems
US20230088994A1 (en) Low power state selection based on idle duration history
US11675410B2 (en) Predicting processor power disturbances by monitoring performance characteristics
CN116954346A (zh) 芯片和电压噪声抑制方法
EP2819008B1 (en) Method and apparatus to protect a processor against excessive power
US10346207B2 (en) Memory access controller, memory access control method, and recording medium stored with program
CN112764509A (zh) 计算核、计算核温度调整方法、设备、介质、芯片和***
US11899551B1 (en) On-chip software-based activity monitor to configure throttling at a hardware-based activity monitor
CN116775320B (zh) 一种提高计算单元执行效率的方法、***、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication