CN105955438B - 电压调整装置与方法、移动装置及其运行方法 - Google Patents

电压调整装置与方法、移动装置及其运行方法 Download PDF

Info

Publication number
CN105955438B
CN105955438B CN201610298455.5A CN201610298455A CN105955438B CN 105955438 B CN105955438 B CN 105955438B CN 201610298455 A CN201610298455 A CN 201610298455A CN 105955438 B CN105955438 B CN 105955438B
Authority
CN
China
Prior art keywords
monitor
voltage
value
controller
delay
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.)
Expired - Fee Related
Application number
CN201610298455.5A
Other languages
English (en)
Other versions
CN105955438A (zh
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.)
MediaTek Singapore Pte Ltd
Original Assignee
MediaTek Singapore Pte 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 MediaTek Singapore Pte Ltd filed Critical MediaTek Singapore Pte Ltd
Publication of CN105955438A publication Critical patent/CN105955438A/zh
Application granted granted Critical
Publication of CN105955438B publication Critical patent/CN105955438B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明揭示电压调整装置与方法、移动装置及其运行方法。本发明的电压调整装置包含数据处理器;至少两个硬件监测器,测量相关于数据处理器的多个参数。此装置还包含电源,向数据处理器以及硬件监测器提供电压;以及控制器,根据来自硬件监测器的测量控制电源调整电源的输出电压水平。在不同条件下对硬件监测器应用不同权重值,并且电源的输出电压水平根据加权测量或者从加权测量得到的值得到控制。本发明揭示的电压调整装置与方法、移动装置及其运行方法通过加权来调整输出电压,在降低数据处理器的功耗同时仍允许数据处理器正常运行。

Description

电压调整装置与方法、移动装置及其运行方法
技术领域
本发明有关于系统芯片(system-on-chip)平台的电压调整(voltage scaling)结构。
背景技术
包含相同电路系统(circuitry)的不同集成电路(Integrated Circuit,以下简称为IC)芯片能够以不同的方式执行相同或者不同的功能,例如,由于制备工艺中先天的(innate)变化、电压供给变化、电压以及温度条件变化等(条件通常意指例如PVT的结合方式,其中P、V、以及T分别表示工艺、电压、以及温度)。IC芯片能够基于芯片运行的频率来表征并以此分为几种类别(例如:一般、快、慢等)。IC芯片的表征(characterization)包含决定针对每一类别的频率-电压特性。频率-电压特性提供针对IC芯片的具体类别、在给定频率下运行的电压需求信息。对应给定IC芯片类别的频率-电压特性可用于一种包含芯片的系统,使得系统能够决定在不同频率下芯片的操作电压。
发明内容
有鉴于此,本发明提供新的电压调整装置与方法、移动装置及其运行方法。
依本发明一实施方式,揭示一种电压调整装置,包含数据处理器;至少两个硬件监测器,测量相关于数据处理器的多个参数。此装置还包含电源,向数据处理器以及硬件监测器提供电压;以及控制器,根据来自硬件监测器的测量控制电源调整电源的输出电压水平。在不同条件下对硬件监测器应用不同权重值,并且电源的输出电压水平根据加权测量或者从加权测量得到的值得到控制。
根据本发明另一实施方式,提供一种移动装置,包含数据处理器;至少两个硬件监测器,测量相关于数据处理器的不同部分的多个参数。此移动装置还包含电源,向数据处理器以及硬件监测器提供电压;查找表,包含多个目标电压值、多组权重值、以及多组预设参数值。每一目标电压值、每一组权重值、以及每一组预设参数值对应至少一种条件。此移动装置还包含控制器,使用开放环路控制基于从查找表获取的多个目标电压值来控制电源的输出电压水平,并且使用闭合环路控制来基于硬件监测器提供的反馈来控制电源的输出电压水平。将从查找表获取的多个权重值应用在来自硬件监测器的多个测量值和多个预设参数值之间的多个差值上以得到多个加权差值,以及控制器控制电源的输出电压水平以降低多个加权差值的总和。
根据本发明又一实施方式,提供一种电压调整方法,包含:使用电源向数据处理器提供电压;使用至少两个硬件监测器测量相关于数据处理器的多个参数并且产生多个测量参数值。该方法还包含决定多个测量参数值与多个预设参数值之间的多个差值;将多个权重应用到多个差值上,得到多个加权差值;以及根据多个加权差值调整电源的输出电压水平。
根据本发明又一实施方式,提供一种运行移动装置的方法,包含:使用电源向数据处理器提供电压;使用数据处理器执行应用程序;以及使用自适应电压调整过程来降低数据处理器的功率消耗。功率消耗通过自适应电压调整过程得以降低,包含:使用至少两个硬件监测器测量相关于数据处理器的多个参数并且产生多个测量参数值;决定多个测量参数值与多个预设参数值之间的差值。此过程还包含根据至少一条件选择多个权重值;将多个权重应用到多个差值上,得到多个加权差值;以及根据多个加权差值调整电源的输出电压水平。
根据本发明又一实施方式,提供一种电压调整方法,包含:使用第一硬件监测器以及第二硬件监测器测量相关于数据处理器的参数;决定在第一条件下第一硬件监测器更准确地仿真该数据处理器的一个关键路径;在第二条件下第二硬件监测器更准确地仿真该数据处理器的一个关键路径。该方法还包含当在第一条件下时,分配给第一硬件监测器第一权重值以及分配给第二硬件监测器第二权重值,第一权重值大于第二权重值。该方法还包含当在第二条件下时,分配给第一硬件监测器第三权重值以及分配给第二硬件监测器第四权重值,第三权重值小于第四权重值;以及将第一权重值、第二权重值、第三权重值、第四权重值存储到查找表。
本发明所提出的电压调整装置与方法、移动装置及其运行方法,通过加权来调整输出电压,在降低处理器的功耗同时仍允许处理器正常运行。
附图说明
图1显示用于电压调整的系统的范例方块图。
图2是包含一序列操作来控制系统的操作电压的范例流程的流程图。
图3是显示包含范例查找表存储器接口的系统的示意图。
图4是显示范例关键路径仿真器的电路示意图。
图5是可配置的延迟电路内部电路系统的范例示意图。
图6A显示采样阶段的子阶段的范例电路系统示意图。
图6B显示在采样阶段不同部分的输出信号的绘图。
图7是包含一序列包含初始化以及校正关键路径仿真器的操作的范例流程的流程图。
图8显示范例稳定性控制器的示意方块图。
图9A是显示稳定性控制器如何对环境变量的改变做出反应的范例绘图。
图9B是显示稳定性控制器如何对操作频率的改变做出反应的范例绘图。
图10A是显示在自适应电压调整系统中包含多个监测器的系统的范例示意图。
图10B是显示范例系统的示意图。
图11A显示对应不同监测器选择权重的范例。
图11B显示对应不同监测器选择权重的另一范例。
图12是控制器与监测器之间通信的范例系统的方块图。
图13显示自适应电压调整系统中离线控制方案的信号范例时序图。
图14显示比较将调整信息包含于中断信号中的系统以及用于自适应电压调整基于轮询的系统的范例绘图。
图15是计算机系统的示意图。
具体实施方式
数据处理器的功率消耗能够通过在低于指定电压水平的电压水平运行数据处理来降低。指定电压水平是基于最坏情况的条件所决定的电压水平。由于,举例而言,材料以及制备工艺的变化,相同设计的不同集成电路芯片可能具有不同特性。最具动态性的电压频率调节(Dynamic Voltage Frequency Scaling,DVFS)系统使用离散的操作电压/频率对(discrete voltage/frequency pairs),其一般储存在集成电路芯片的查找表(Look UpTable,LUT)中。一般选择足够高的电压来允许大部分的芯片正常运行。对于那些对应给定时钟频率,能够运行于较低电压的集成电路芯片,根据查找表所指定的电压水平来运行数据处理器将导致功率浪费。通过使用硬件仿真器(emulator)来仿真数据处理器的关键路径以及测量所仿真的关键路径的时序或者延迟,能够将反馈信息提供给电压控制器来决定能够以充足的时间裕度(timing margin)来运行数据处理器的最低电压。此自适应电压调整(Adaptive Voltage Scaling,AVS)在降低数据处理器的功耗同时仍允许处理器正常运行。
对于用于计算装置的集成电路,例如处理器芯片,频率-电压特性提供针对给定频率的有关电压需求的信息。一般是将具有此集成电路的装置配置为运行不同应用,并且频率需求通常为应用的函数。例如,智能电话上,相比于语音应用或者信息应用,视频或者其他多媒体应用可能需要智能电话运行在更高的频率。需要处理器运行在高时钟频率的应用一般消耗更多功率,由此需要更高的操作电压。针对给定频率的电压需求能够基于对应集成电路给定类别(快、慢、超快等)的频率-电压特性来决定。一范例中,能够将频率-电压特性储存为查找表,并且通过集成电路系统存取来决定针对给定频率的电压需求。但是,因为给定的集成电路会展现相应类别的一般特性所引起的变化(例如,由于材料或者制备工艺的固有变化(inherent variations)及/或温度变化),并且因为频率-电压特性一般是针对最坏情况条件来决定的,给定集成电路有时可以运行于相较于对应给定类别的频率-电压特性所指定的电压,更低的电压。例如,使用关键路径仿真器监测在运行期间(run-time)电路中关键路径的延迟,并且比较所监测的延迟与所期望的延迟(例如通过预表征(pre-characterization)获取的延迟),则在所监测的延迟实质上等于所期望的延迟之前,可以降低操作电压。在特定环境下,功率消耗与电压的平方成比例,由此降低操作电压能够使得功率得到大幅降低。这种通过调整操作电压进行的功率管理意指电压调整。
一些实施方式中,在此描述的方法以及系统能够展现后续至少一个优势。通过使用基于总线(bus-based)的结构,电压调节系统(voltage regulation system)是可扩展的(scalable)。能够在总线上添加额外的性能监测器而不对结构的其余部分作出实质改变。此结构还允许在监测器的选择上增加灵活性,选择接近关键路径的监测器,而忽略或者分配低权重给其他监测器。在负载改变前,电压调节系统持续跟踪不同的监测器并且基于监测器读数(readings)调整电压。通过跟踪以及调整负载改变(即频率及/或温度的明显改变)之间的电压,能够达到在运行时间期间明显的功率节约的效果。通过提供稳定性控制器(stability controller),系统能够补偿超调(overshoot)/负调(undershoot)电压响应,还能够防止例如失控(runaway)振荡等不良状况。
使用本发明的电压调节方法及系统还能够降低环路响应时间。环路响应时间定义为在工作负荷(workload)波动(fluctuation)时(例如频率、温度、及/或IR压降(IR drop)改变时)电压调节系统响应改变的速度有多快。IR压降是电压降或者跨越(across)传导路径(或者电路中任何其他电阻性元件)的电压改变。IR压降通过电流I以及相应电阻R的乘积给出。使用本发明的方法及系统,环路响应时间能够以几种方式降低,例如:通过提供对查找表存储器的直接存取来降低查找表存取时间,以及基于在两次电压调整中的第一次电压调整期间所执行的电压校正量来计算两次电压调整之间的时间。通过提供支持功能来处理功率降低请求,还能进一步节约功率。此功率降低请求能够关闭电压调节系统中未处于使用状态的至少一部分。
电压调整系统概况
图1显示用于电压调整的系统100实施方式的范例方块图。一些实施方式中,系统100是自适应电压调整系统,也可视为系统中的电压调整装置。总体来说,系统100包含处理器105以及控制器110。电源(power supply)115将供电电压117提供给处理器105。电源115包含由控制器110控制的电压调节器114来调节电源115提供的供电电压117的电压水平。控制器110接收来自至少一监测器125a、125b、…、125n(统称为监测器125)的反馈。监测器125监测相关于处理器105的操作参数(例如相关于处理器105的电路延迟),并且相应地控制供电电压117。一些实施方式中,监测器125被配置为测量相关于处理器的不同部分的特性。上述组合的反馈环路有助于将供电电压117调节为低于从查找表获取的频率-电压特性所提供的电压水平,如此可大幅节约功率。
处理器105可以是不同形式或者不同类型。一些实施方式中,处理器105是用于蜂窝电话的移动处理器。处理器105还可以是(并非对本发明的限制)用于台式计算机、膝上型电脑、平板电脑、电子阅读器、或者其他有线或者无线电子装置的处理器。处理器105用于基于处理器执行的应用在不同的功率水平下运行。处理器105还基于应用在不同的时钟频率下运行。例如,处理器105在执行语音以及短信息应用时,运行于低电压和低频率。但是,对于更复杂的应用,例如呈现(rendering)视频,处理器105运行于相对较高的电压和频率。特定的应用以及相应操作参数通常意指对应处理器105的负载。一般而言,处理器105用于在负载改变时,改变操作电压以及频率。一些实施方式中,处理器的一部分也被关闭或者运行于“睡眠模式”。处理器105还包含功率管理模块,用于基于负载来管理处理器105的操作参数。一些实施方式中,处理器包含至少一核心120(也意指主控制单元(Master ControlUnit,MCU)120)。
控制器110用于管理至少一部分的功率管理操作。控制器110可与电压调节器114通信来控制电源115提供的供电电压117。一些实施方式中,控制器110与电压调节器114之间的通信是通过总线135进行。控制器110还可以与电压调节器114直接耦接。主控制单元120用于编写或者储存主控制单元120的频率-电压特性。例如,频率-电压特性能够储存在查找表140中。尽管图1显示,查找表140是控制器110的一部分,查找表140还能够储存在系统100的其他位置中(例如在处理器105上,或者在一个独立的存储装置中)。
控制器110用于基于从查找表140获取的目标电压值(例如预存电压值),来控制电压调节器114。例如,当处理器105必须运行在一个特定频率时,控制器110基于在查找表140中储存的频率-电压特性所指定的电压(即目标电压值)来控制电压调节器114。控制器110还基于从监测器125接收的反馈信息来控制电压调节器114。例如,对于给定频率,如果处理器105运行于频率-电压特性指定的操作电压,则监测器125用于测量关键路径的延迟,以获得测量的电路延迟值。如果在操作条件下,测量延迟少于所期望的目标延迟(例如测量的电路延迟值小于目标电路延迟值),则控制器110降低供电电压117。接着,再一次使用监测器125来测量延迟,并且相应地重新调整供电电压117。在测量延迟足够接近于目标延迟(例如,由阈值条件定义是否足够接近)前,控制器110基于来自监测器125的反馈来控制电压调节器114。基于反馈的控制在基于查找表140的控制之间(例如两次基于查找表的控制之间)的时间点完成。在本发明一些实施方式中,目标电路延迟值也可以储存在查找表140中。
当控制器110仅基于从查找表140获取的目标电压值(即预存电压值)而不参考反馈信息来控制电压调节器114时,这意指开放环路控制。当控制器110基于反馈信息来控制电压调节器114时,这意指闭合环路控制。当控制器110基于从查找表140获取的目标电压值以及反馈信息二者来控制电压调节器114时,开放环路控制用于将操作电压驱动至目标电压值,并且闭合环路控制用于将操作电压最佳化。在此状况下,从查找表140获取的目标电压值对应不同条件,例如,对应特定频率、温度、及/或工艺的最差情况下的电压,并且用于起始点,来允许使用闭合环路控制更快地到达最佳化的电压值。也就是说,控制器110使用开放环路来基于查找表提供的目标电压值来控制电源115的输出电压水平,并且使用闭合环路基于监测器125提供的反馈来控制电源115的输出电压水平。基于监测器125来对输出电压水平的控制将在之后详细描述。一些实施方式中,控制器110根据从查找表140获取的目标电压值(即预存电压值)来控制电源的输出电压水平达到一个电压水平,接着使用自适应电压调整过程来最佳化输出电压水平。一些实施方式中,查找表140还提供闭合环路控制中对应所测量的参数的预设参数值(即上述目标延迟值)。预设参数值也对应不同条件。因此,当条件改变时(例如时钟频率、供电电压下降、温度、硅老化、工艺偏移其中至少之一改变时),控制器可以从查找表140获取新的目标电压值来用于开放环路控制,并且获取新的预设参数值来用于闭合环路控制。
处理器105还包含监测器125,测量至少一相关于芯片上(on-chip)条件的参数。监测器125还意指硬件性能监测器(Hardware Performance monitors,HPM)。一些实施方式中,仅在处理器105上设置一个监测器125。其他状况下,可使用多个监测器125。一些实施方式中,将监测器125设置在处理器核心上足够接近潜在的(potential)关键路径的位置,以使得影响关键路径的温度以及其他条件也影响监测器125。
一些实施方式中,每一监测器125都包含电路系统(例如,逻辑门以及互连装置),使得相关于通过监测器125传递的信号的延迟大致上或者实质上等于相关于处理器中关键路径的延迟。此监测器125还意指关键路径仿真器(Critical Path Emulator,CPE),将在下文详细描述。当关键路径仿真器用作监测器时,测量跨越监测器的延迟并且比较测量延迟与所期望的目标延迟来取得关于电路性能的指示。例如,假若测量延迟少于目标延迟,则通常可降低操作电压。另一方面,假若测量延迟超过目标延迟,则通常可提高操作电压。相似地,测量延迟足够接近于目标延迟则表示操作电压是对应处理器所执行的应用实质上最佳的或者接近最佳的水平的操作电压。低操作电压一般会降低晶体管的驱动电流,导致较慢的速度。但是,当晶体管已经处于“快”的状态(例如,由于快速工艺或者温度条件),则通常不需要高电压来在高频率下运行。在此状况下,在允许晶体管运行于所需频率时,能够降低操作电压。
一些实施方式中,每一关键路径仿真器产生一个读数(readout),反应时钟偏移(skew)、电压、温度以及影响通过关键路径仿真器的延迟的其他变量其中至少之一的效应。一些实施方式中,系统100包含不同类型的监测器125。例如,一个监测器125a是Kogge-Stone加法器而另一监测器125b是关键路径仿真器或者环形振荡器(ring oscillator)。一些实施方式中,每一监测器125都耦接于监测器失能线(monitor disable line)180。控制器110使用相应的监测器失能线180来使至少一监测器125存取总线135失能。
一些实施方式中,监测器125包含时序错误监测器。时序错误监测器设置在电路中,例如,触发器中,并且在电路运行前将其配置为失败。时序错误监测器还用于向控制器110警告潜在的危险条件以使得供电电压117能够得到适当的警告以保证没有错误的操作。
一些实施方式中,当使用多个监测器125时,多个监测器125可以仿真数据处理器不同部分的多个关键路径。一些实施方式中,控制器110会适当地加权单个监测器的输出。一些实施方式中,将多个监测器125的输出(例如,延迟)平均来决定用于控制电压调节器114的参数。还可以基于监测器的位置来对监测器125的输出进行加权。这是因为关键路径的位置因为应用(及/或操作频率)的改变而改变,并且特定监测器的权重也会因应用的不同而不同。例如,假若已知对于一个特定的应用,特定监测器(例如监测器125a)比其他监测器(例如监测器125b)物理上更接近于关键路径,则在决定用於控制此特定应用的控制器110所用的参数时,给监测器125a的输出的权重比给监测器125b的输出的权重更高。一些实施方式中,还可以忽略监测器125中至少之一的输出。尽管图1显示将监测器125设置于处理器105上,还可以将监测器125设置在系统100中的其他位置,例如,在集成电路上靠近处理器105的周边,但是在处理器105外部的位置。当监测器125设置在处理器105外部时,电源115向处理器105和监测器125提供电压。
系统100还包含温度传感器130。温度传感器130用于测量并且提供处理器105热力条件的信息。温度传感器130提供作为相关温度的参考点,用于在此所描述的压控(voltagecontrolled)反馈环路。温度传感器130还用于防止例如热力失控的不良条件。控制器110使用温度传感器130提供的信息来决定用于电压调节器114的控制参数。例如,假如处理器105一特定部分的温度在运行期间上升,则处理器此部分的电压需求可从查找表140提供的值降低。在此状况下,温度信息用于决定是否将供电电压117降低,以及降低多少。模拟以及数字温度传感器都能够用作温度传感器130。一些实施方式中,温度传感器130耦接于温度传感器失能线182。控制器110通过温度传感器失能线182来使温度传感器130失能(disable)。
电源115提供操作功率(operating power)给处理器105。一些实施方式中,电源115也会提供操作功率给系统100的其他部分,例如,控制器110。一些实施方式中,电源115是直流到直流(Direct Current-Direct Current,DC-DC)转换器,将外部直流源提供的电压水平转换为另一电压水平。电源115由控制器110控制以使得提供给处理器105的供电电压117是可调整的。当外部电源是电池(例如,用于蜂窝电话或者膝上型电脑的电池)时,电源115通过对电池提供的电压进行转换,来提供必要的供电电压117。电源115采用不同方法来将一个电压水平转换为另一电压水平,例如采用线性转换、切换模式转换、或者磁性转换。电源115可以包含于功率管理单元(Power Management Unit,PMU)中。在此状况下,功率管理单元经由例如电源串行接口(Power Serial Port,PSP)的连接耦接于处理器105。一些实施方式中,电源串行接口有助于电源115以及处理器105之间的高效通信。一些实施方式中,电源115用于快速响应电压改变(例如,5mV/μS)。电源115还传递细粒度(fine-grained)电压分辨率,例如,5mV/步(step)。一些实施方式中,电源115包含切换调节器,例如Buck转换器。
系统100还包含共享的总线135,总线135有助于系统100中不同主体(例如处理器105、控制器110以及电源115)之间的通信。监测器125一般还耦接于总线135。一些实施方式中,控制器110作为总线主设备(bus master),并且控制对监测器125以及电源115的存取。相关于使用总线135的存取时延(latency)一般很小。一范例中,对于122MHz的总线频率,其中每一读/写操作花费3周期,存取时延是8.1ns x 3=24.3。因为系统100提供几种具有单一总线主设备的监测器125,还能够给系统100添加额外的监测器而不会明显改变控制器110。这允许依需要来添加或者减少监测器125的可扩展结构。此外,因为监测器125能够使用共享的总线135存取,控制器110能够依需要选择至少一监测器。因此,即使有较大数目的监测器可用时,也能够仅使用较小数目的监测器。一些实施方式中,除去监测器125耦接于总线135之外,监测器125还直接连接于控制器110。一些实施方式中,使用直接连接来降低总线135上的频宽需求。一种直接读取监测器125而无需使用总线的模式意指IRQ模式。IRQ模式中,控制器110使用来自监测器125的中断信号的信息,来(例如以预先决定的量)增加/减少供电电压117,而不是通过总线135读取监测器采样值(sample)。或者,控制器110,一旦接收到中断信号则获取监测器采样值(通过直接连接或者通过总线135获取)并且计算必要的调整。
控制器110跟踪处理器105中频率及/或温度的变化并且与电源115通信来控制供电电压117。电压调节器114一般由控制器110配置。控制器110包含,例如,查找表140,至少一配置暂存器(configuration registers)145,以及状态机(state machine)150。控制器110还可包含稳定性控制器155,以保证控制器110不会使电源115振荡。特定情况下,能够阻止控制器110对电源115行使任何控制。这意指“旁路”模式(bypass mode)。控制器110可依需要而激活或者关闭(deactivate)旁路模式。例如,为了配置查找表140,控制器110可激活旁路模式。当需要对电源115进行电压调节时,则控制器110可关闭旁路模式。
一些实施方式中,将查找表140作为控制器110的一部分储存。其他情况下,将查找表140储存在存储装置外部,但是可由控制器110存取。查找表140储存频率-电压特性。因此,当处理器需要在给定频率运行应用程序时,通过存取查找表140来决定作为供电电压117而提供的相应电压水平。一些实施方式中,查找表140由控制器110硬件来更快地直接存取。但是,也能够由软件存取查找表140。例如,状态机150通过在专用硬件连接上发送查找表读取请求185来从查找表140读取。查找表读取请求185包含:指示所存取的查找表140的频率或者频率范围。查找表140响应查找表读取请求185,使相应的查找表入口(entries)在查找表140的接口(ports)上是可用的。一些实施方式中,查找表140还指示控制器110已经找到相应的查找表入口。软件模式中,将查找表指示指针(lookup table index pointer)187返回状态机150。软件模式中,软件加载暂存器中的地址来触发查找表搜索操作。如果找到相应的查找表入口,则将查找表指示指针187返回控制器110。接着,软件基于查找表指示指针187从存储器读取查找表入口。状态机150基于查找表指示指针187存取对应所需频率或者频率范围的查找表入口。一些实施方式中,响应查找表读取请求185,会返回至少一查找表入口。一些实施方式中,查找表140包含针对不同频率的独立的入口。每一入口包含性能目标,例如关键路径仿真器的目标延迟、针对至少一监测器125的编码、以及对应特定频率的电压值。一般而言,查找表140的内容对特定IC芯片类型来说是固定的。可以通过软件或者硬件编码,将查找表140编写进系统100。
控制器110包含状态机150来作为控制对总线135存取的总线主设备(BUSmaster)。一般地,状态机150控制来自或者到达控制器110不同部分的信息流。一些实施方式中,控制器110轮询(poll)至少一监测器125来获取有关处理器105当前操作条件的数据,并且与控制器110通信来决定是否需要调整供电电压117。接着,状态机150与电源115通信来依需要调整供电电压117。
系统100还包含至少一配置暂存器145,用于配置状态机150或者控制器110的其他部分。例如,使用配置暂存器145来致能控制器110。相似地,使用配置暂存器145指示状态机150存取查找表140来获取相关于特定频率的储存值。一些配置暂存器145的范例在以下的表1中提供。
表1:配置暂存器的范例
控制器110包含稳定性控制器155。系统100运行在反馈环路中,并且稳定性控制器155保证反馈环路不会进入不稳定的振荡模式。一般而言,稳定性控制器155用于提供反馈环路的稳定性并且防止不需要的表现,例如热力失控。稳定性控制器155补偿不同环境变量的改变。一些实施方式中,稳定性控制器155从状态机150接收监测器采样值192以及触发信号190。稳定性控制器155分析监测器采样值192并且将电压信号194发送回状态机150。例如,仅当满足特定阈值条件时,稳定性控制器155才改变电压信号194的电压水平。此基于阈值的控制能够在由于环境或者噪声的相关原因引起在监测器采样值192发生变化时,防止控制器110对供电电压117进行不必要的调整。
系统100还包含锁相环(Phase Locked Loop,PLL)接口160,管理来自处理器105的频率请求。例如,假若处理器105在一个特定频率执行新的应用,则处理器105通过锁相环接口160,使用专用的频率请求线165,在此特定的频率上与控制器110通信。接着,控制器110存取查找表140来决定电源115是否能够提供所需要的适当电压来在那个特定频率上的执行此应用。假若可从电源115得到合适的供电电压117,则控制器110向处理器105确认此特定的频率能够得到支持。例如,使用频率确认线170经由锁相环接口160来提供此频率确认。
系统100对任何需要保存功率的装置都是有用的。例如,系统100包含于移动装置中。移动装置例如为移动电话、平板电脑、膝上型电脑、便携式音频播放器、便携式视频播放器、或者数码相机、电子阅读装置。
图2是包含一序列操作来控制系统的操作电压的范例流程200的流程图。本发明一实施方式中,流程200由上述系统100的不同部分执行(请参考图1)。操作包含初始化系统(电压调节系统)(步骤210)。例如,由硬件重置方式完成。一些实施方式中,当系统已初始化时,控制器是失能的(disabled)并且由电源提供最大可能的电压。操作还包含致能控制器(步骤215),调节来自电源的供电电压。一些实施方式中,使用软件致能控制器。但是也能够使用硬件线或者连接来致能控制器。一旦致能控制器,则电压调节系统的状态意指初始状态。一般而言,电压调节系统在初始状态中等待事件的发生(步骤220)。
事件的发生(步骤220)使电压调节系统开始从初始状态运行。事件包含,例如,至少一部分集成电路的操作温度改变,或者由于新负载引起的频率改变。此事件的发生使得电压调节系统输出与发生此事件之前所运行的供电电压不同的供电电压。例如,如果开始执行更复杂的应用,则对应此应用之较高频率需求会触发较高之电压需求。或者,如果开始执行较低频率的应用则可以降低供电电压。一些实施方式中,当切换到较高的性能水平(即,较高的频率)时,在改变所运行的电路频率之前达到对应目标频率的最差情况的电压。这能保证操作中的电路无缝地(seamlessly)支持较高的性能水平。在此状况下,在对应较高频率的必要电压可用之前,不会改变操作频率(例如,通过保持锁相环的频率)。当切换到较低频率时,因为较低频率一般不需要较高的操作电压,所以能够立即改变频率。
当检测到事件的发生时,操作包含对温度以及频率采样(步骤225)。这包含,例如,读取温度传感器以及至少一监测器的输出。温度传感器以及监测器实质上相似于上文描述的温度传感器130以及监测器125(请参阅图1)。一些实施方式中,在完成电压改变前,会推迟任何软件所进行的在锁相环暂存器中配置新频率的尝试。但是,可以将新的频率值(和来自温度传感器130的温度信息一起)用于存取查找表140。一些实施方式中,通过读取设置在集成电路上的环形振荡器的计数器值来辨识工艺类型(process type)。
操作还包含存取至少一查找表来撷取操作参数(步骤230),操作参数对应于温度以及频率采样值。一些实施方式中,经由专用硬件连接完成查找表存取来降低存取时间,由此降低用于整体反馈环路的响应时间。一些实施方式中,当在控制器发出查找表读取请求时,以指数{频率,温度,工艺}搜索查找表直到找到匹配的入口。如果未找到匹配的入口,则控制器进入旁路模式并且由软件控制。可以使用不同的搜索算法来搜索查找表中的匹配入口。例如用二分搜索模式(binary search mode)或者线性搜索模式以如下方式搜索查找表:
线性搜索(Linear Search)
-最差情况的时延是O(n),其中‘n’是查找表中入口的数目。
-不需要将查找表排序。
-用于此搜索的伪码(Pseudo code)表示为,例如:
二分搜索(Binary Search)
-最差情况的时延是O(log n),其中‘n’是查找表中入口的数目。
-查找表入口已排序。排序在运行时间期间完成或者查找表以排序表的方式储存。
-用于此搜索的伪码表示为,例如:
存取查找表以撷取对应温度以及频率采样值的查找表入口。查找表入口的操作参数包含,例如,至少一下列内容:
-目标电压V1,例如,在目标频率下执行一个应用所需的最坏情况(worst-case)或者最小的电压。
-监测器M1……Mn的配置。配置对应于目标操作条件下准确地仿真关键路径所需内容。
-相应的目标监测延迟(target monitored delays)D1……Dn
-当使用多个监测器的输出的加权组合时,分配给每一监测器的权重W1……Wn
-相关于目标延迟的较高阈值以及较低阈值。这些阈值表示,例如,对应安全操作条件而不能跨越的边界。
可以基于查找表入口配置用于系统的初始操作条件。例如,由控制器配置电源来提供供电电压V1。将供电电压V1作为电源开始的初始电压,以使得电路能够安全地在新的目标频率运行。
操作包含依据所撷取的查找表入口来配置监测器(步骤235)。例如,配置监测器以使得对于给定操作条件,监测器的延迟(或者延迟的加权组合)表示在操作条件下相关于关键路径的延迟。配置监测器包含选择将使用哪一个或者几哪个可用的监测器。例如,假若已知在给定操作条件下,一个特定的监测器不邻近关键路径,则经由配置忽略此特定的监测器(例如,通过设置相应权重值为非常低,甚至是零)。配置监测器还包含决定选择将哪个或者哪些逻辑门以及复用器(Multiplexer,MUX)用于特定监测器来准确地使用监测器来对关键路径建模。
操作还包含在配置监测器后,对监测器读数(readings)采样(步骤240)。一些实施方式中,在配置前对至少一部分监测器采样。当将监测器配置为仿真或者对电路的关键路径建模时,对监测器读数采样包含使用监测器读数决定关键路径的估计延迟。至少一监测器读数可以用于决定估计的延迟。例如,从三个独立的监测器读取延迟,并且采取三个延迟的平均(或者加权平均)作为所做之关键路径的估计延迟的建模。
操作还包含基于估计延迟,决定是否需要进行电压调整(步骤245)。例如,假若所决定的估计延迟低于目标延迟,则指示为能够将供电电压从当前水平降低。相似地,假若所决定的估计延迟高于目标延迟,则指示为需要提高供电电压。假若估计的延迟在相关于目标延迟的较高阈值以及较低阈值所定义的区域之外,则指示为发生错误条件(例如由于不良的外部操作条件或者编程错误而引起的错误条件)并且需要立即采取校正动作。在此状况下,控制器让电压调节系统进入旁路模式。一些实施方式中,失能旁路模式之前,在旁路模式下,由软件进行控制以及校正动作。一些实施方式中,系统还基于错误条件的严重性而被关闭(shut down)。
操作还包含提高或者降低供电电压(步骤250)。为提高或者降低供电电压,控制器分析来自监测器的数据,计算要进行的电压增加/减少,并且与电源交流所需的电压改变。一些实施方式中,控制器与稳定性控制器通信,以保证电压调节系统中的反馈环路不会进入例如失控振荡等不良条件。一些实施方式中,将来自稳定性控制器的错误值储存在适当的存储位置,例如调试先入先出存储器。调试先入先出存储器是指定的存储器位置,用于存储来自监测器及/或稳定性控制器的信息。例如,调试先入先出存储器包含16或者32比特暂存器的阵列或者储存信息的存储器位置。例如,信息为通过监测器的延迟值、分配给监测器的权重、供电电压的当前值、错误信息以及错误值、以及相关于稳定性控制器的输入、输出。一些实施方式中,将调试先入先出存储器配置为通过硬件写入并且通过软件读取。
操作还包含在开始任何相关于下一次(next)电压改变操作之前,等待一段时间(步骤255)。此段时间允许电压调节系统在对读数进行下一次采样之前进入稳定状态。一些实施方式中,此段时间的长度取决于控制器所决定的电压调整量。例如,对于给定系统,单位(unit)电压改变所需要的时间是预先决定的(例如对于0.01V电压改变需要1μs),并且等待的时间长度是基于完成多少个单位电压改变来计算的。在当前范例中,在0.05V电压调整之后,等待的时间长度是5μs。此段时间的长度还能够基于参考时钟的周期数目来计算。基于电压调整量来决定等待的时间长度,能够避免用于预先决定的最坏情况期间的等待,从而降低反馈环路中的响应时间。
等待一段时间之后,再一次对监测器读数采样(步骤240)。电压调节系统继续通过这种实质上对芯片上(on-chip)条件的连续监测来调整电压。一实施方式中,在另一事件的发生(步骤220)触发负载改变之前,持续监测。由此,上述方法以及系统允许在两次存取查找表之间实质上对供电电压的连续调整,并且经由细粒度电压调整明显有助于功率节约。当发生负载改变时,如上所述再一次存取查找表来撷取可能包含对监测器的新配置的新的操作参数。
另一实施例中,由图1所示的系统100来进行上述操作。其中,控制器110基于目标延迟值与预计延迟(即所测量的电路延迟值)之间的差值来计算步长电压(step voltage),并且向电压调节器提供步长电压来用于调整电源的输出电压位准。并且在提供步长电压后,再一次对监测器读数取样(即再对所测量的多个电路延迟值取样)之前,等待一段时间。所等待的时间长度取决于此步长电压。
图3是显示包含查找表存储器接口310的系统300的示意图。一些实施方式中,查找表存储器接口310管理查找表(例如图1所示的查找表140)与控制器110其他部分(例如状态机150或者稳定性控制器155)之间的通信。例如,查找表存储器接口310向状态机150发送控制信号315或者从状态机150接收信号320。查找表存储器接口310还向不同的监测器125(意指图3中的硬件性能监测器(HPM))发送配置信号316(例如配置信号HPM Config#1、HPMConfig#2、……HPM Config#n)。查找表存储器接口310还向稳定性控制器155发送控制信号325。
从状态机150接收的控制信号320包含查找表读取请求324。一些实施方式中,查找表读取请求信号324实质上相似于之前所描述的信号185(请参考图1)。来自状态机150的控制信号320还包含表示电路不同操作参数的信号,例如分别表示频率、温度、工艺的信号321、322、323。对应不同信号的比特数目是不同的。图3所示范例中,每一频率使用十个比特表示,而温度以及工艺使用两个比特表示。发送到状态机150的控制信号315包含与查找表相关的信号,例如表示查找表入口找到的信号317,表示查找表读取完成的信号318,以及表示查找表失败的信号319。发送到稳定性控制器155的控制信号325包含,相关于不同的监测器125,分别表示权重以及目标延迟的信号326、328。例如,权重信号326为HPM#1Wt、HPM#2Wt、……HPM#nWt;目标延迟信号328为HPM#1目标延迟、HPM#2目标延迟、……HPM#n目标延迟。
系统300还包含复用器345,控制查找表存储器接口310或者总线接口335能否存取查找表140。举例而言,可以使用旁路信号330来控制复用器345。一些实施方式中,当旁路信号330已设置(即当电压调节系统处于旁路模式时),使用总线接口335将数据写入查找表140。或者,当系统未处于旁路模式时,复用器345允许查找表存储器接口310来使用存储器读/写信号340从查找表140读取以及写入查找表140。
能够以不同格式将数据储存在查找表140中。一些实施方式中,查找表140是32-比特暂存器的阵列,储存对应频率、工艺、温度的不同组合的不同指数(indexes)的操作参数。查找表存储器结构的范例以表2显示如下。表2所显示的存储器结构仅用于说明的目的而非对本发明的限制。其他的存储器结构,例如具有更多或者更少的操作参数的存储器结构都在本发明保护的范围内。
表2:查找表存储器结构的范例
可配置的关键路径仿真器
一些实施方式中,当使用至少一监测器125来测量或者跟踪关键路径的延迟时,监测器125包含意指关键路径监测器或者关键路径仿真器的电子电路系统。一般地,关键路径仿真器是用于自适应电压调整系统(例如,上述系统100,请参考图1)的硬件性能监测器电路,仿真或者跟踪所监测电路(例如数据处理器)的关键路径。关键路径仿真器可以是不同类型的,包含基于采样的类型、平均类型(averaging type)、或者镜面类型(mirror type)的硬件性能监测器。关键路径仿真器辨识通过关键路径的延迟是否过高或者过低,并且使用此信息控制电路的操作电压。关键路径仿真器位于与其所监测的电路实质上相同的电压域(voltage domain)。例如,关键路径仿真器耦接于与处理器105相同的供电电压117(即电源115所提供的电源),并且跟踪相应系统内实际关键路径的延迟的改变。
图4是显示范例关键路径仿真器400的电路示意图。关键路径仿真器400实质上相似于上述至少一监测器125,请参考图1。基于来自关键路径仿真器400的反馈控制操作电压允许电路运行于,相较在给定的一组操作条件下依需求指定的电压,较低的电压。一些实施方式中,较低的电压包含保护频带以防止电路失败。关键路径仿真器400允许对关键路径的预先监测,由此允许对操作电压的相应设置。
关键路径仿真器400包含可配置的延迟电路405。可配置的延迟电路405是逻辑门及/或互连延迟链(interconnected delay chains)的可配置组合,仿真或者模仿在给定操作条件下电路的实际关键路径。一旦可配置的延迟电路405仿真关键路径,则通过延迟电路405的传播延迟(即所测量的由延迟电路405仿真的仿真关键路径的电路延迟)能够被可靠的用做通过实际关键路径的延迟的测量值。在给定的一组操作条件下给定电路的关键路径定义为在两个预定的时间点(例如,两个连续的时钟沿)之间信号通过的全部逻辑块(例如逻辑门)的组合。对于给定的关键路径,假若操作电压从给定的那组操作条件降低则可能违反时序需求,并且这可能使电路失败。一般而言,给定关键路径的操作电压保持比相应的失败电压高出一个阈值安全量。一些实施方式中,在给定的一组操作条件(电压、频率等)下的实际关键路径是预先已知的,例如,在电路的表征期间得知。或者,在给定的一组操作条件下的关键路径的具体特性是已知的。例如,特性是在给定的一组或者几组操作条件下,通过关键路径的延迟(还意指目标延迟)。在此状况下,将可配置的关键路径仿真器延迟电路405配置为,使电信号通过可配置的关键路径仿真器延迟电路405的所用时间(在此意指测量延迟)实质上与目标延迟匹配。给电路的操作电压能够基于比较测量延迟与目标延迟来得到调整。例如,假若发现测量延迟大于目标延迟,则通常将操作电压提高。或者,假若发现测量延迟小于目标延迟,则通常将操作电压降低。将可配置的关键路径仿真器延迟电路405配置为,使得在不同操作条件下测量延迟跟踪在实质上相似条件下的相应目标延迟。请参考图5,可配置的关键路径仿真器延迟电路进一步描述如下。
关键路径仿真器400还包含控制逻辑块410,用于控制延迟电路405。控制逻辑块410向延迟电路405提供输入电信号(例如输入脉冲412)。测量输入脉冲412通过延迟电路405的传播延迟,作为通过实际关键路径的传播延迟的指示。控制逻辑块410包含暂存器(例如,CPE_CTRL_MMR暂存器)。能够通过设置暂存器的至少一比特来致能关键路径仿真器400。例如,此至少一比特由主控制单元120(描述于前文,请参考图1),通过致能信号411设置,以致能关键路径仿真器400。控制逻辑块410还控制在哪个时间点对延迟电路405采样,来获取测量延迟。一些实施方式中,控制逻辑块410还控制什么时候由软件或者硬件从储存测量延迟的暂存器读取测量延迟。
关键路径仿真器400包含延迟暂存器415,储存测量延迟的最新数值。延迟暂存器415也由控制逻辑块410控制。例如,控制逻辑块410提供致能信号416(例如信号samp_en),允许时钟门(clock gate)424a基于时钟信号417(例如信号cpm_gck),向延迟暂存器415提供控制信号418(例如信号samp_gck)。图4中,时钟门使用标号“CG”表示。举例而言,将致能信号416以及时钟信号417都提供给时钟门424a。当致能信号416处于逻辑高水平时,一个高水平的时钟信号417能够由时钟门424a传递作为控制信号418。一些实施方式中,时钟门424(时钟门424a、424b、424c统称为时钟门424)是“与门”或者其他电路系统实施逻辑“与”。一些实施方式中,当控制信号418处于逻辑高水平时,将来自延迟电路405的特定逻辑块的状态传递给延迟暂存器415。延迟暂存器415的内容是测量延迟的指示。延迟暂存器415并非必须储存测量延迟的实际值。例如,延迟暂存器415的内容可以指示测量延迟以及所期望的延迟(或者目标延迟)之间的差别。延迟暂存器415的内容可以表示在设定的时间段(例如两个上升时钟沿之间)内,一个信号是否传递到比目标数量的门更多或者更少的门。
时钟信号417来源于时钟控制模块420。一些实施方式中,时钟控制模块420接收输入时钟信号421(例如信号avs_ck)并且当致能信号411处于逻辑高水平时,向关键路径仿真器400的其他部分提供输入时钟信号作为第二时钟信号417(例如信号cpm_gck)。一些实施方式中,提供给时钟控制模块420的时钟信号实质上与提供给处理器105的时钟信号相同。一些实施方式中,当将关键路径仿真器400失能以降低功率消耗时,将提供给时钟控制模块420的时钟信号门控关闭(gated off)。
关键路径仿真器400还包含影子暂存器(shadow register)425。在将储存在延迟暂存器415中的测量延迟提供给其他软件或硬件模块之前,将测量延迟传递到影子暂存器425。一些实施方式中,仅能从影子暂存器425读取测量延迟,而不能从延迟暂存器415读取。这能够避免当将数据从延迟电路405传递进延迟暂存器415时,因为(例如软件)尝试从延迟暂存器415读取而导致的任何潜在的不稳定性(potential instability)。从延迟暂存器415到影子暂存器425的数据传送还能够由控制逻辑块410来控制。例如,当来自控制逻辑块410的传送致能信号427(例如信号transfer_en)处于逻辑高水平时,由时钟信号417提供的控制信号426致能传送。这可以通过使用接收时钟信号417与传送致能信号427的时钟门424b达成。一些实施方式中,控制信号426也为信号samp_gck。时钟门424b向影子暂存器425提供控制信号426。
关键路径仿真器400还包含最大最小暂存器(min-max register)430(例如最大最小暂存器WC_REG)。例如,最大最小暂存器430储存给定时间段中最高的或者最低的测量延迟。例如,为了测量给定时间段中执行给定的一组应用的电路的最大延迟,在整个给定时间段期间,开启关键路径仿真器400的极限状态(limiting-case)模式。在此时间段期间的任意给定时间点,最大最小暂存器430储存到给定时间点为止最高的(或者依需要为,最低的)测量延迟。一些实施方式中,假若控制信号431(例如信号wcreg_gck)处于逻辑高水平,则将测量延迟从影子暂存器425传递到最大最小暂存器430。一些实施方式中,如果极限状态致能信号432处于逻辑高水平,则时钟门424c提供时钟信号417作为控制信号431。假若极限状态模式信号434(例如信号WC_MODE)为致能的并且控制信号435(例如信号new_wc)表示影子暂存器425中出现新的极限状态值,则逻辑电路433(例如与门电路)提供极限状态致能信号432。可以致能对应关键路径仿真器400的极限状态模式信号434来运行极限状态模式。例如,控制信号435可以由比较器436比较影子暂存器425的内容与最大最小暂存器430最新的内容来提供。图4中,比较器使用标号“CMP”表示。例如,假若最大最小暂存器430储存最高的延迟,则比较器436比较影子暂存器425与最大最小暂存器430的内容,并且在测量延迟高于最大最小暂存器430的内容所表示的延迟时提供控制信号435。或者,假若最大最小暂存器430储存最低的延迟,则比较器436在测量延迟低于最大最小暂存器430的内容所表示的延迟时提供控制信号435。可以由其他软件或者硬件模块读取最大最小暂存器430。例如,最大最小暂存器430能够将储存的内容提供给配置模块440。
配置模块440包含至少一暂存器(例如,存储器映射暂存器(Memory MappedRegister,MMR)),用于配置延迟电路405及/或关键路径仿真器400的其他部分。例如,配置模块440中的至少一暂存器包含,配置暂存器及/或状态暂存器。例如,配置模块440中的至少一暂存器储存表示如何配置延迟电路来仿真给定关键路径的值。一些实施方式中,这些值是经由控制信号429(例如信号MUXSEL)来提供给延迟电路405的。一些实施方式中,配置模块440包含APB从接口(APB slave interface)(标识为“APB”),用于存取配置模块440中的暂存器。一些实施方式中,APB从接口是32比特接口。一些实施方式中,APB从接口是设计用于周围从属设备(例如存储器映射暂存器)的接口。此接口是基于ARM协议的。一些实施方式中,配置模块440由时钟信号reg_gck计时。时钟信号reg_gck是用于计时处理器105的时钟信号avs_ck的门控版本(gated version)。时钟信号reg_gck还可以是时钟信号avs_ck的分割版本(divided version),并且由时钟控制模块420基于由配置模块经由一个‘div’信号线表示的分割因数(division factor)来提供。
一些实施方式中,配置模块440用于致能关键路径仿真器400运行于中断驱动模式。中断驱动模式在此意指IRQ模式。IRQ模式中,关键路径仿真器400以一个低阈值和一个高阈值编程。高阈值与低阈值分别表示电路正常运行所能容忍的(tolerated)最大以及最小延迟。当在IRQ模式下运行时,假若测量延迟落在高阈值与低阈值定义的区域之外,则关键路径仿真器400向控制器110及/或主控制单元120发送中断。一些实施方式中,控制器110基于是否超过(cross)低阈值或者高阈值,来分别以预先决定的量提高或者降低操作电压。控制器110或者主控制单元120还可以基于中断采取其他动作。另一方面,假若测量延迟在高阈值和低阈值之间,则不发送中断,并且不调整操作电压。
一些情况下,因为运行于IRQ模式涉及低干预(low intervention)及/或低总线使用(bus usage),所以是有用的。因为仅当发出中断时才调整电压,所以相较于基于连续监测进行调整的模式,IRQ模式中的干预通常较低。一些实施方式中,控制器110以及监测器125之间的直接连接会降低对总线135的使用,由此腾出(free up)总线频宽来用于其他用途。配置模块440包含用于设置或者重置IRQ模式的特定暂存器(例如IRQ_MODE暂存器比特)。一些实施方式中,配置模块440使用控制信号437(例如信号IRQ_MODE)来致能IRQ模式。
关键路径仿真器400还包含逻辑块441(此范例中的比较器),决定是否发出中断。例如,逻辑块441基于来自配置模块440的控制信号,决定是否违反(violate)了低阈值或者高阈值。来自配置模块440的控制信号包含,例如,控制信号438(例如信号LTH)以及控制信号439(例如信号UTH)表示低阈值与高阈值的编程值。相应地,当分别低于低阈值或者高于高阈值(即分别违反了低阈值或高阈值)时,逻辑块441提供控制信号442(例如信号LTH_VIO)或者443(例如信号UTH_VIO)。这些控制信号由额外的逻辑单元处理或者被直接发送到控制器110及/或主控制单元120。例如,在将控制信号442以及443分别作为中断请求444(例如请求LTH_IRQ)以及445(例如请求UTH_IRQ)发送到控制器110之前,使其通过至少一触发器。一些实施方式中,在将中断请求444、445作为中断请求448(例如请求CPM_IRQ)发送到主控制单元120之前,使其通过或门(OR gate)446。因为一次仅触发中断请求444以及445其中之一,所以使用或门446能够降低耦接至主控制单元120的中断线数目。
图5是可配置的延迟电路405内部电路系统500的范例示意图。图5中,Vdd表示提供的电压。一些实施方式中,内部电路系统500包含可配置的逻辑块以及互连装置的组合,能够选择不同的组合来仿真电路中的实际关键路径。例如,内部电路系统500包含至少一阶段(例如阶段515、520、525),每一阶段包含至少一不同逻辑门的子阶段。每一阶段通过复用器(统称为复用器535)串行耦接于另一阶段。例如,阶段515(第一阶段)通过复用器535a耦接于阶段520(第二阶段),阶段520通过复用器535b耦接于阶段525(第三阶段)。内部电路系统500还包含采样值阶段530,有助于对通过内部电路系统500传递的输出信号采样。其中,阶段515-525还意指仿真电路,用于仿真电路中的至少一关键路径。
阶段515、520、以及525的每一者包含至少一逻辑子阶段540a、540b、540c、540d、540e、540f、540g、540h(统称为逻辑子阶段540)。可以选择单个逻辑子阶段或者相互串行的多个逻辑子阶段。每一逻辑子阶段540包含,例如,一系列逻辑单元。图5所示范例中,逻辑子阶段540a包含10个串行耦接的与门。其他逻辑子阶段540的每一者能够包含其他类型相互串行耦接的逻辑单元。用于逻辑子阶段540的逻辑单元包含或门、非门、与非门(NANDgate)、或非门(NOR gate)、异或门(XOR gate)、复用器、复合门(complex gate)(例如与-或门(AND-OR gates)或者其他包含至少两个逻辑门的逻辑电路)、或者其他类型逻辑单元。一些实施方式中,逻辑子阶段540仅包含预定长度的互连装置。例如使用延迟线宏(delayline macros)对互连装置延迟建模。延迟线宏可以是可配置长度的导线(conductivewire),用于对互连装置延迟建模。由于宏是固定的和可预测的,所以这允许有延迟。将延迟线串行耦接,并且依需要选择或者旁路延迟线,来对给定互连装置延迟建模。一些实施方式中,阶段515包含两个以上实质上相似的逻辑子阶段540。不同逻辑子阶段540中逻辑单元的数目可以是实质上相同或者不同的。每一逻辑子阶段540的输出耦接于复用器535以传递到下一阶段。每一逻辑子阶段的输出还通过复用器545a、545b、545c、545d、545e、545f、545g(统称为复用器545)其中之一耦接下一逻辑子阶段(假若是可用的),作为输入。
逻辑子阶段540通过复用器545耦接于下一相应的逻辑子阶段。例如,逻辑子阶段540a通过复用器545a耦接于逻辑子阶段540b等。每一复用器545的第二输入是输入信号510。对于后一阶段(例如阶段520或者阶段525),输入信号是通过复用器535来自前一阶段的信号。复用器545用于选择对于相应逻辑子阶段540的输入。例如,复用器545选择输入信号或者来自前一逻辑子阶段的信号,其中所选择的信号通过相应的逻辑子阶段传递。
通过使用复用器545以及535选择适当的输入,能够使输入信号在给定阶段通过选择的逻辑单元组合进行传递。例如,假若仅需要通过10个或非门以及10个反向门(invertergate)(或者非门)传递输入信号,则复用器545a选择输入信号510,并且复用器545b选择逻辑子阶段540b的输出。阶段515中各逻辑子阶段之输出以550a、550b、550c、550d、550e、550f、550g及550h标示。复用器535a选择输出550c(即逻辑子阶段540c的输出)来传递到下一阶段520,并且输入信号510仅通过第一阶段515中所需数目的门(gates)。其他范例中,假若输入信号510仅通过10个与-或门,则将复用器545e配置为使其选择输入信号510作为逻辑子阶段540f的输入,并且将复用器535a配置为使其选择信号线550f(即逻辑子阶段540f的输出)作为下一阶段520的输入。一些实施方式中,到一个特定阶段的输入信号旁路那个阶段的所有逻辑单元。例如,这能够通过将复用器535配置为选择对应输入信号的信号线到那个阶段来完成。例如,假若需要将输入信号510直接传递到下一阶段520,则复用器535a选择最上面、直接耦接输入信号510的信号线。如图5所示,通过使复用器535a、535b、535c的每一者都选择最上面的信号线,能够直接将输入信号510传递到采样阶段530。由此,通过复用器535、545的不同配置,可以得到由不同逻辑单元(即不同阶段、逻辑子阶段、逻辑单元)组合而成的不同延迟电路。
可以将阶段520(第二阶段)及/或阶段525(第三阶段)中传递输入信号510的逻辑单元数目,选择为与上述阶段515(第一阶段)的相关描述实质上相似的数目。一实施方式中,基于待仿真的关键路径来选择每一逻辑子阶段540中逻辑单元的数目以及给定阶段(例如阶段515)中逻辑单元的数目。图5显示阶段515、阶段520、以及阶段525的每一逻辑子阶段分别包含10个、5个以及3个逻辑单元。此配置仅用于说明性的目的,而非本发明的限制。其他实施方式中,阶段的数目、每一阶段中逻辑子阶段的数目、每一逻辑子阶段中逻辑单元的数目、逻辑单元的性质、其中至少一内容不同于图5所示范例的配置。例如,不同阶段的逻辑子阶段具有实质上相同数目的逻辑单元,或者给定的逻辑子阶段具有不同类型的逻辑单元。
对于给定的一组操作条件,阶段、逻辑子阶段、或者逻辑单元的组合(亦可全部视为逻辑单元的组合)是基于相应关键路径的性质选择的。不同的组合表示仿真电路中不同的延迟路径。一般而言,选择一个组合,以使得输入信号510通过所选择逻辑单元的组合的传播延迟足够近地跟踪目标延迟(即,通过相应关键路径的传播延迟)。一些实施方式中,选择一个组合,以使得通过所选择逻辑单元的组合的传播延迟跟踪对应不同操作条件(即:不同的电压-频率组合)的目标延迟。一些实施方式中,(例如,在表征期间使用适当的软件或者实际测试)检查不同组合,来决定跟踪对应不同操作条件的目标延迟的一个组合。例如,在校正处理期间,将所决定的组合储存在查找表140中。如上所述,查找表具有基于至少一条件来延迟电路的信息,由此控制器根据查找表中的对应不同条件的配置信息来配置延迟电路。当延迟电路包含仿真电路配置仿真电路(阶段515-525)以及采样电路(采样阶段530)时,查找表具有配置仿真电路和采样电路的信息。例如,查找表储存针对不同条件来配置复用器535、545的信息来配置仿真电路。
采样阶段530是可配置的延迟电路的一部分,由此对可配置的延迟电路的输出采样。在另一些实施方式中,采样阶段也可以位于可配置的延迟电路之外,对可配置的延迟电路的输出采样。采样阶段还意指延迟采样电路。采样阶段530包含多个子阶段552a、552b、552c、552d、552e、552f、552g、552h(统称为子阶段552),每一子阶段552包含至少一逻辑单元(例如逻辑门),每一逻辑单元的输出都耦接一个采样触发器(还意指触发器)。在此,多个子阶段552的组合还意指延迟单元,每一子阶段还意指一组延迟元件,每一逻辑单元还意指一个延迟元件,每一采样触发器还意指一个采样元件,多个采样触发器的组合还意指采样单元。一些实施方式中,采样阶段530的每一子阶段包含不同类型的逻辑单元。例如,子阶段552a包含一系列与非门,而另一子阶段552c包含一系列反向门(或者非门)。给定子阶段552中逻辑单元的数目取决于测量延迟及/或目标延迟所需的分辨率。例如,假若使用8比特表示目标延迟及/或测量延迟,则每一子阶段552具有8个逻辑单元,例如图5所示的与门nd1、nd2、nd3……nd8。由此,逻辑单元还意指延迟元件。一些实施方式中,采样电路位于与处理器105实质上相同的电压域中。
图6A显示采样阶段530的子阶段552的范例电路系统600的示意图。电路系统600包含8个或门605a、605b、605c、605d、605e、605f、605g、605h(统称为或门605),或门605的输出分别耦接于相应的采样触发器610a、610b、610c、610d、610e、610f、610g、610h(统称为采样触发器610,还意指采样元件)。在相应采样触发器的非反向输出时对或门605的输出采样。一般而言,当重置关键路径仿真器400时,将采样触发器610清零。一旦重置,还可以将逻辑单元的输出以及输入信号510设置为逻辑低。为测量输入信号通过关键路径仿真器400的传播延迟,在时钟信号的一个上升沿发出(launch)一个电信号(例如一个脉冲)并且在下一个上升沿捕获(capture)采样触发器610中或门605的输出的状态。这显示于图6B所使用的绘图中。图6B显示在采样阶段不同部分的输出信号的绘图。图6A中,标号“in”表示输入信号,标号“samp_gck”表示采样时钟。
请参阅图6B,曲线(plot)615描绘采样时钟618(例如,请参考图4所描述的控制信号418),曲线620描绘采样阶段530的输入端所接收的输入信号600。输入信号,产生于在时间点611的上升时钟沿,在延迟614(来自之前阶段的延迟)之后到达采样阶段530的输入端。曲线625、630、635、640分别显示或门605c、605d、605e、605f的输出。其他或门的输出未显示于图6B中。在时间点612,时钟信号618的下一个上升时钟沿,对这些输出采样。因此,时间点612意指采样时间点。此外,如图6所示,在时间点613对这次输出再次采样。在其他实施方式中,还可以在时钟信号的下降时钟沿进行采样。在一些实施方式中,采样阶段530还包含锁存装置(latch)(图未示),依据时钟信号618运行,用于将或门605的输出锁存,并且采样单元在相应时钟信号的边沿(上升时钟沿或者下降时钟沿)对延迟元件(或门605)的输出进行采样。将采样触发器610的状态(即多个采样触发器610的输出,或者采样触发器读数)作为获取的采样值(即多比特延迟信号),并且表示或门605对通过相应阶段、子阶段等逻辑单元组合的输入信号600所产生的延迟量的信息,即测量延迟,其中每一比特表示输入信号是否通过相应的延迟元件传递。测量延迟还可视为各组延迟元件的输出(在此范例中,可视为或门的输出)。此范例中,使用8比特表示测量延迟。假若测量延迟在所期望关键路径延迟(即目标延迟)616的一个门延迟(gate delay)内,则触发器610的输出使用此序列比特11110000表示。如图6b所示,单个触发器的读数1即表示单个延迟=关键路径延迟,单个触发器的读数0即表示单个延迟>关键路径延迟。其中,1表示具有逻辑1状态,0表示具有逻辑0状态。此范例中,在时间点611以及612,两个时钟沿之间的时间段,输入信号向前移动,通过最初的四个或门605a-605d。假若通过关键路径仿真器400的传播延迟大于目标延迟,则输入信号会传递过更少数目的或门605,并且采样值可读取为,例如,11100000或者11000000。这表示测量延迟大于目标延迟并且能够提高系统的输入电压来使传播延迟匹配目标延迟。相反地,假若通过关键路径仿真器400的传播延迟小于目标延迟,则输入信号会传递过更多数目的或门605,并且采样值可读取为,例如,11111000或者11111100。这表示测量延迟小于所期望的延迟并且能够降低系统的输入电压来使传播延迟匹配目标延迟。假若采样值读取为图6B所示的11110000,这表示传播延迟实质上相似于目标延迟,并且不需要调整电压。假若采样值读取为00000000或者11111111,这分别表示传播延迟高于或者低于目标延迟。一些实施方式中,这将提示对供电电压的大幅调整及/或对可配置的延迟电路405的重新配置,或者中断。例如,目标延迟616是在电路的表征期间预先决定的。如前所述,关键路径仿真器位于与其所监测的电路实质上相同的电压域并且跟踪相应系统内实际关键路径的延迟的改变。例如,仿真电路和采样电路也耦接于与处理器105相同的供电电压117,由电源115来提供电源。由此,控制器110可以依据图6B所示的采样值(多比特延迟信号)来控制电压调节器114调节供电电压117的电压水平,以使得输入信号通过一半的逻辑单元,也就是说采样值为一半是0,一半是1。本实施方式中,调节电压水平,以使得采样值为11110000,也就是说输入信号600通过一半的或门605。
图6A、6B以包含或门的子阶段552b为例给出了采样阶段530的子阶段552的范例电路系统来说明如何产生一序列采样值(即一个多比特延迟信号)。在一些实施方式中,采样阶段530所包含的多个子阶段,例如或门、与门、非门组成的多个子阶段会产生多个多比特延迟信号,来提供仿真电路中的多个逻辑单元的组合对通过仿真路径传递的输入信号产生的延迟量的信息。
因为在采样阶段530,传播延迟是按照(in terms of)通过的或门的数目测量,所以传播延迟的分辨率或者准确度能够基于采样阶段530单个逻辑单元的延迟测量。一些实施方式中,将更快地逻辑单元用于采样阶段530来提高测量传播延迟的准确度。一些实施方式中,提高采样阶段530逻辑单元的数目来覆盖更大范围的测量延迟。
一些实施方式中,将目标延迟616储存在查找表140中。在此状况下,比较测量延迟与从查找表140撷取的目标延迟,并且相应地调整电压。例如,假若决定测量延迟不同于目标延迟,且相差很小的量(例如,以仅相差1比特来表示),则相应的电压调整也很少。假若测量延迟与目标延迟相差很大的量,则相应的进行更多的电压调整。
图7是一序列包含初始化以及校正关键路径仿真器400的操作的范例流程700的流程图。例如,通过校正模块(calibration module)来执行这些操作。校正模块能够使用自适应电压调整系统,例如包含处理器(例如处理器105)及/或控制器(例如控制器110),的不同部分实施。操作包含在初始的电压-频率值或者点初始化关键路径仿真器配置(步骤710)。从对于使用关键路径仿真器所监测的电路可用的表征数据中选择初始的电压-频率点。一些实施方式中,能够通过决定给定频率的失败电压来决定一个电压-频率点。例如,请参阅图5,校正模块向不同的阶段、逻辑子阶段、或者逻辑单元的组合发送多个信号或者向不同组合形成的每一延迟路径发送多个输入信号,逐渐降低提供给数据处理器105和关键路径仿真器400(包括仿真电路和采样电路)的电源电压,将数据处理器105失败时的电压,来作为失败电压。并且评估(evaluate)出数据处理器失败时多个采样元件的输出。接着,给失败电压添加安全裕度(safty margin)来获取初始的电压-频率点。一些实施方式中,处理器评估在比失败水平电压水平高出一个安全裕度的电源电压水平下,多个采样元件的输出。初始化关键路径仿真器配置还包含决定对可配置的延迟电路405的配置以使得对应此配置的测量延迟显示所需值。对于上述8比特采样阶段(请参考图6A),所需值是11110000。
操作还包含在初始化期间,决定在不同频率下,用于所选择的关键路径仿真器配置的操作电压(步骤720)。例如,决定用于初始化关键路径仿真器配置的另一频率点的操作电压。例如,通过决定不同频率下的失败电压并且给失败电压增加安全裕度来完成此步骤。操作还包含决定传播延迟是否匹配初始的配置的延迟(步骤730),例如通过决定不同的频率下对应操作电压的测量延迟是否匹配所需值(例如11110000)来达成。假若不匹配,则再一次重复初始化的步骤(步骤710)。或者,假若测量延迟匹配所需值,则执行检测来看是否已经考虑所有的电压-频率点(步骤740)。一实施方式中,执行检测来看是否已经考虑所有需要校正的电压-频率点。假若没有,则接着对其他频率再一次重复步骤720。当已经决定所有的电压-频率点,则初始化以及校正流程结束(步骤750)。在一些实施方式中,校正模块辨识(identify)给失败电压增加安全裕度的电压水平下,阶段、逻辑子阶段、或者逻辑单元的候选组合,并且在有多个候选组合时,辨识出追踪温度和频率其中至少之一最好的一个候选组合。对于候选组合来说,在一个采样周期期间,输入信号不会传递通过全部延迟元件,而是通过一部分延迟元件。组合意指延迟路径,候选组合意指候选延迟路径。在一些实施方式中,在采样时间期间结束时,当测量延迟(即延迟元件的输出)为11110000,也就是一半具有逻辑1状态,一半具有逻辑0状态时,将此延迟路径辨识为候选延迟路径。
如上所述,校正模块基于测量延迟(即采样值或者多比特延迟信号)来处理器仿真电路中的每一阶段、逻辑子阶段、或者逻辑单元的组合(即延迟路径),并且辨识出在不同条件下用于仿真数据处理器105的至少一关键路径的组合(即延迟路径)。
关键路径仿真器400运行于不同模式。例如,关键路径仿真器400能够运行在连续采样模式下。此模式下,关键路径仿真器400对来自采样阶段530的读数持续采样。此模式下,依需要由控制器110或者软件来读取数据暂存器425。一般地,关键路径仿真器400在此模式下不维护(maintain)任何历史信息。一些实施方式中,控制器110在特定时间,例如当电源115改变供电电压117时,失能(disable)关键路径仿真器400。
一些实施方式中,控制器110在不同时间点基于从查找表140获取的目标电压值(每一目标电压值对应于至少一条件)控制电压调节器114。例如,当处理器105必须运行一个特定频率时,控制器110基于在查找表140中储存的频率-电压特性所指定的电压来控制电压调节器114。在不同时间点之间,控制器基于上述采样电路530提供的采样值(多比特延迟信号)来控制电压调节器调节电源输出的供电电压。
一些实施方式中,关键路径仿真器400运行在一个模式下,关键路径仿真器400仅在最大最小暂存器430中储存测量延迟的最大值或者最小值。此模式意指粘性模式(stickymode),在特定情况下很有用,特定情况例如是当一个应用已经执行了实质上很长一段时间时,决定对应此应用的最差IR压降的情况。此模式下,关键路径仿真器400比较测量延迟的最新可用值与储存在最大最小暂存器中的当前值,并且仅当测量延迟的最新可用值大于(或者在一些情况下,小于)当前值时,将此最新可用值储存在最大最小暂存器中。一些实施方式中,关键路径仿真器400运行于前述中断驱动模式(IRQ模式)(请参考图4)。一般而言,IRQ模式下,在重置IRQ模式前,关键路径仿真器400不会进一步对读数采样。
稳定性控制器
在此描述的电压调整系统使用闭合环路反馈系统来基于来自至少一硬件监测器的读数调整来自电源的供电电压。在一般闭合环路系统中,获取系统的输出(例如,使用硬件监测器获取)并且计算输出与参考值的差别。差别还意指一个错误。接着,控制器基于错误的值调整系统的输入。每当测量输出值实质上不同于参考值时,即每当错误值超过阈值时,进行对输入的调整。但是,在设计闭合环路控制系统时,通常需要保证系统是稳定的。不稳定的反馈系统会对距离参考值的偏差进行潜在的过补偿。一些情况下,这将导致所不需要的状况,例如围绕参考值的持续振荡或者失控振荡。
一些实施方式中,为了使自适应电压调整系统对环境变量及/或操作条件的不同改变展现出稳定的响应而提供稳定性控制器。稳定性控制器还能防止自适应电压调整系统进入所不需要的状况,例如振荡或热力失控。环境变量的改变包含,例如,IR压降、温度改变、老化、或者这些因素的组合。操作条件的改变包含,例如,操作频率的改变。一些实施方式中,环境变量及/或操作条件的改变会改变系统的输出,这将通过至少一硬件监测器捕获。控制器处理来自至少一硬件监测器的反馈,并且调整电源提供的供电电压,以使得输出接近于所需参考值。
图8显示范例稳定性控制器800的示意方块图。一些实施方式中,稳定性控制器800用做上述稳定性控制器155(请参考图1)。稳定性控制器800从至少一硬件监测器125(在此表示为关键路径监测器(Critical Path Monitor,CMP))接收反馈信号(例如,通过反馈路径802接收),计算错误信号803(例如,反馈信号以及设置点805之间的差),并且基于错误信号803调整电源115。例如,控制器110控制电源115来降低错误信号803。反馈信号是硬件监测器测量的参数值,或者取决于硬件监测器测量的参数值(例如延迟)。例如,使用加法器电路807计算错误信号。设置点805是稳定性控制器800的参考值,例如储存在查找表中的在不同操作条件下,对应所测量的参数的预设值。一些实施方式中,设置点805是对应给定的一组操作条件,所需的目标延迟。在此状况下,关键路径监测器125提供测量延迟作为反馈,并且计算设置点805与测量延迟之间的差别作为错误信号803。例如,设置点805由查找表140依据操作条件提供。操作条件包含,例如,时钟频率、供电电压下降、温度或者工艺偏移(process skew)其中之一或者其中至少一种的组合。例如,假若电路的操作频率改变,则从查找表140提供新的设置点805给稳定性控制器800。一般,设置点805和测量延迟都是数字值(digital value)。一些实施方式中,将所有的可用比特(例如8个比特)都用于测量设置点805附近很小范围的延迟。这将在测量延迟时有效地提高分辨率。当监测器125包含延迟电路,则测量的参数为关键路径的电路延迟,并且设置点805的值为预设电路延迟值,错误信号803即测量的电路延迟与预设电路延迟值(目标电路延迟值)之间的差别。控制器控制电源115,以使得错误信号803降低。另一些实施方式中监测器125(例如关键路径仿真器)其中之一包含环形振荡器,则测量的参数为振荡频率,并且相应地设置点的值包含预设振荡频率值。错误信号803即测量的振荡频率与预设振荡频率值之间的差别。又一些实施方式中,监测器125测量时间裕度(例如延迟电路的时间裕度),设置点的值包含时间裕度的一个特定范围的阈值,并且控制器110控制电源115的供电电压117来将时间裕度调整在特定范围内。
稳定性控制器800包含低通滤波器(Low Pass Filter,LPF)810,对错误信号803滤波来抑制例如噪声等高频率分量。低通滤波器810的截止(cutoff)频率是依据闭合环路自适应电压调整系统的环路频宽选择。例如,截止频率是环路频宽的二倍或者以下。模拟和数字滤波器都能用作低通滤波器810。一些实施方式中,低通滤波器810是有限脉冲响应(Finite Impulse Response,FIR)或者无限脉冲响应(Infinite Impulse Response,IIR)数字滤波器。浮点和固定点的实施方式都能用于将低通滤波器810实现为数字滤波器。
稳定性控制器800还包含电路系统来量化已滤波的错误信号。图8的范例中,比较器815用于此目的。比较器815具有可编程阈值。比较器815将错误信号量化为预定数目的离散水平之一。由此,比较器815基本上(essentially)将错误信号的粒度(granularity)降低到预定数目的离散水平。这使得闭合环路反馈系统仅当错误信号的改变超过预定阈值时,才做出反应(react)并且调整供电电压。由此,防止自适应电压调整系统因响应很小的改变而做出调整并且进入潜在的不需要的振荡中。比较器使用一组阈值来量化错误信号。例如,假若已滤波的错误信号e是–e1<=e<e1,则分配给量化的错误信号一个数值“0”。相似地,假若e1<=e<e2,则分配给量化的错误信号一个数值“1”等。一些实施方式中,当监测器125的输出是高分辨率(例如16或者32比特),则比较器815通过将第一数目的错误值划分(binning)为第二个较低数目的离散水平,来降低电路的复杂度。一些实施方式中,比较器815还通过以非线性方式来设置阈值,允许对错误信号的非线性响应。例如,设置阈值以使得相比于与设置点805有明显距离的监测器读数的错误信号而言,对应接近于设置点805的监测器读数的错误信号被以更高的分辨率划分入不同的离散的水平。
一些实施方式中,比较器815以多个阈值编程来提高灵活性。例如,依据所需的对错误信号的敏感度来对阈值编程。一般,较近间隔的阈值将比较远间隔的阈值带来更高的敏感度。另一方面,相比于较远间隔的阈值,较近间隔的阈值提供对噪声更低的免疫性。一些实施方式中,负的错误值和正的错误值都会需要(be accounted for)单独使用不同的阈值以及相应的离散水平。或者,离散水平仅取决于错误信号的绝对值。一些实施方式中,量化是一致的(uniform),以使得离散水平是实质上相等的间隔及/或实质上相等的距离(range)。其他情况下,还能使用非一致(non-uniform)的量化及/或不相等的间隔的离散水平。能够基于不同因素来选择对应不同离散水平的阈值,例如基于用于系统100的硅的特性、错误信号803及/或其变化来选择。
比较器815基于针对特定错误信号而选择的离散水平来提供输出信号816。一些实施方式中,使用至少一比特表示输出信号816。如图8所示的范例中,5个离散水平-2、-1、0、1、2分别表示为110、101、000、001、010。在此状况下,最高有效位(Most Significant Bit,MSB)用于表示此水平是对应负的值还是正的值。当前范例中,最高有效位“1”表示负的值,而最高有效位“0”表示正的值。最高有效位之后的第二以及第三比特表示相应离散水平的二进制值。也能够将其他比特或者数字组合表示的离散水平用于输出信号816。输出信号816中比特或者数字的数目能够基于比较器815中离散水平的数目进行选择。例如,假若离散水平的数目大于8,则输出信号816包含至少4个比特。一些实施方式中,输出信号816还可以是模拟信号。
一些实施方式中,输出信号816用于复用器820(还意指斜率复用器(slopeMultiplexer,slope MUX))的输入选择。配置复用器820,以使得基于输出信号816选择几个输入之一,并且提供其作为复用器820的输出818。一些实施方式中,从多个暂存器817a、817b、817c、817d、817e(统称为暂存器817)提供复用器820的输入。暂存器的数目(以及复用器820的输入的数目)是可以选择的,例如,依据比较器815的离散水平的数目选择。继续以给出的范例进行说明,假若比较器815的输出信号816是“010”,则复用器820选择暂存器817a,并且将暂存器817a的内容提供作为输出信号818。相似地,假若比较器815的输出信号816是“110”,则复用器820选择暂存器817e,并且将暂存器817e的内容提供作为输出信号818。
每一暂存器817的内容表示对应供电电压的所需调整量。给出的范例中,当错误信号803是一个较大的正值时,选择暂存器817a。这表示反馈信号(例如测量延迟)明显的小于设置点805(例如目标延迟)并且需要将供电电压提高实质上较大的量。相应地,暂存器817a的内容表示一个较大的正步长(positive step)。给出的范例中,当错误信号803足够接近零时,即反馈信号足够接近设置点805时,选择暂存器817c。在此状况下,不需要进行调整,并且暂存器817c的内容表示不改变。图8的范例中,暂存器817a-817e的内容分别表示一个较大的正步长、很小的正步长、不改变、很小的负步长(negative step)、较大的负步长。暂存器817的内容包含比特与数字的组合。
一些实施方式中,暂存器817是可编程的。例如,控制器依据所需的步长改变对暂存器817编程。步长改变还意指斜率(slope)因素或者斜率值。暂存器817的可编程性允许提高设计稳定性控制器800的灵活性。例如,因为步长改变的幅度相关于自适应电压调整系统的响应时间(即电源115需要更多的时间完成更大的步长改变),所以能够依据所需响应时间对暂存器817编程。对暂存器的编程能够独立于对比较器815的阈值编程。
稳定性控制器800还包含累加器825,基于来自查找表140的初始码822(意指图8所示的LUT DCDC码)以及复用器的输出818来向电源115提供调整码827(意指AVS DCDC码)。一些实施方式中,初始码822提供表示初始供电电压的起始值,并且复用器输出818用于将起始值精调(fine tune)为表示实质上对于给定操作条件的最佳电压的调整值。例如,基于复用器的输出818来调整初始码822,以提供调整码827。初始码822可以使用比特或者数字的组合以及组合的一些最低有效位(Least Significant Bits,LSBs)来表示。例如,电压调节器解码调整码827来决定如何调整来自电源115的供电电压。
图9A是显示稳定性控制器800如何对环境变量的改变做出反应的范例绘图(plot)。绘图的x轴表示时间。时间点902a、902b、902c、902d、902e、902f(统称为时间点902)表示对关键路径监测器125采样的时间点。时间点902b与902c之间的距离表示一个轮询间隔。曲线905表示自适应调整的电压,并且曲线910表示与环境相关的变量。曲线915以及920分别表示测量值(或者反馈信号)以及设置点(意指关键路径监测器性能目标)。曲线925表示处理器的核心性能目标,即在这个值以上,处理器性能不受影响。设置点(由曲线920表示)通常在处理器核心性能目标(由曲线925表示)以上,以使得即使当测量值(由曲线915表示)稍微的向设置点以下倾斜(dips),测量值仍然在核心性能目标以上,并且处理器核心功能不会中断。曲线930表示不同的调整码827(意指DCDC电压码)。曲线930又包含表示第一调整码(意指DCDC电压码1)的曲线930a和第二调整码(意指DCDC电压码2)的曲线930b。第一调整码与第二调整码之间的交点表示控制器补偿或者传感器读数。
图9A所示范例中,时间点902a与902c之间,环境变量实质上未改变,并且曲线915的测量值足够接近曲线920的设置点。请注意尽管曲线915的测量值并未与曲线920的设置点重叠,但是由于误差量化(error quantization),认为差别实质上等于零,并且不会触发调整。这些条件下,系统在曲线930a的第一调整码下运行。环境变量在靠近时间点902c的时间点改变,使得其后测量值很快就改变。由此,曲线915的测量值倾斜至曲线920的设置点以下。在时间点902d对测量值采样。假若测量值距设置点的偏差未超过一个阈值,则不会做出调整。假若偏差超过此阈值,则会(例如在靠近时间点902e处)获取一个新的调整码(曲线930b的第二调整码)。在改变调整码时,时间点902d与时间点902e之间的延迟能够归结于不同因素,例如控制器110的处理延迟以及控制器110与电源115之间的信令时间(signalingtimes)。新的调整码使电源调整供电电压,并且使测量值再一次上升至接近设置点的水平。假若在下一时间点902f,决定测量值足够接近设置点,则执行另一调整码,否则系统继续在曲线930b的第二调整码下运行。如图9A所示,本实施方式中,时间点902d到902f之间大约需要2.3μs的时间。
图9B是显示稳定性控制器800如何对操作频率的改变做出反应的范例绘图。此范例中,操作频率950在时间点952a从第一频率950a(频率1)改变为第二频率950b(频率2)(第一频率950a与第二频率950b统称为频率950)。存取查找表140并且设置点相应地从值920a改变为值920b。核心性能目标也从水平925a改变为水平925b。如查找表中所指定的,调整码也从用于第一频率的调整码930c(用于频率1的DCDC电压码)改变为用于第二频率的调整码930d。用于不同频率的调整码930c、930d、930e、930f……930n统称为调整码930。相应地,如曲线905所示,自适应调整的电压上升(或者在一些情况下,降低)至电压值955(意指图9B中的查找表电压/DVFS电压)。在允许电源到达电压值955之后,重新在时间点952b对测量值采样。一些实施方式中在电源输出稳定前,对测量值的采样会暂停一段时间(图9B中标示为DVFS等待时间)。在此状况下,电源电压改变越大,暂停的时间(还意指等待时间)越长。一些实施方式中,等待时间是预先决定的。例如,选择适应最大可能电压改变的等待时间。一些情况下,等待时间取决于来自电源的反馈信号。响应于由新的调整码930d(来自查找表用于频率2的DCDC电压码的值)指定的新电压水平(电压值955)的到达,电源产生反馈信号。
曲线915与关键路径监测器性能目标的水平920b之间的距离表示测量值与键路径监测器性能目标之间的差别。在测量值足够接近设置点(本范例中靠近时间点952c)之前,基于测量值的反馈来对调整码930进行精调。在收敛到调整码930n(最佳的DCDC电压码)之前,调整编码会在调整处理期间改变几次(改变为调整码930e、930f等)。自适应调整的电压通过这些对调整码的改变而进行调整,并且最终降低到电压值960。由此,电压值955以及960之间的差别表示使用自适应电压调整系统所节约的电压。
使用监测器反馈的加权组合进行的电压调整
请参考图1及相关描述,自适应的电压调整系统100(或者系统中的电压调整装置)包含至少一监测器125a、125b、…、125n(统称为监测器125)。一些实施方式中,监测器125是硬件性能监测器,也称为硬件监测器。在此状况下,将对应多个监测器125的错误信号用于加权组合,来决定如何对自适应电压调整系统100进行调整。例如,在不同条件下,将不同的权重值应用于来自硬件监测器的反馈信号或者错误信号(也就是说对硬件监测器应用不同的权重值),并且根据加权测量或者从加权的测量得到的(derived)加权测量值来控制电源输出电压水平。不同条件包含,例如,时钟频率、供电电压下降、温度、硅老化(siliconage)、工艺偏移其中至少之一。当条件改变时,控制器(例如,从查找表)获取相应新的权重。
一些实施方式中,将不同的监测器125设置在处理器或者集成电路(例如系统级芯片(System-On-Chip,SOC))的不同部分,测量不同部分对应电压、硅老化以及温度的变化,相关于系统级芯片性能的参数。例如,一个硬件监测器测量数据处理器中相关于高速缓冲存储器的参数,另一硬件监测器测量相关于数据处理器中高速缓冲存储器之外的电路路径的参数。特定条件下,会广泛地存取高速缓冲存储器,并且关键路径位于高速缓冲存储器的里面。其他条件下,不经常存取高速缓冲存储器,并且关键路径位于高速缓冲存储器之外。将多个监测器125设置在处理器或者系统级芯片的不同部分允许在准确测量处理器或者系统级芯片的性能的同时增加更多的灵活性。
硅老化的变化能够以不同方式体现,包含,负偏压温度不稳定性(Negative BiasTemperature Instability,NBTI)以及热载流子注入(hot carrier injection,HCI)效应。反过来看,热载流子注入可以是活性(activity)、温度、门电压以及漏极到源极电压的函数。一些实施方式中,通过降低供给功率(supply power)及/或调节涉及工作负荷的供给功率,能够降低例如电压应力(voltage stress)以及敏感性效应,从而解决热载流子注入的相关问题。负偏压温度不稳定性会导致阈值电压的升高,一些实施方式中,这将导致关键时序路径变慢。自动电压调整系统能够通过依据测量的延迟改变来改变供电电压,处理因负偏压温度不稳定性而引起的变慢。
一些实施方式中,关键路径在处理器中的位置会随着应用或者操作条件的改变而改变。通过关键路径的延迟取决于关键路径或者其附近的芯片上条件或者操作条件(例如温度)。由此,假若通过关键路径的延迟用于指示处理器性能,则相比另一位于据此位置较远的监测器125b,设置在关键路径位置附近的监测器125a提供对处理器性能更可靠的估计。此情况下,分配给对应监测器125a的错误信号的权重比分配给对应监测器125b的错误信号的权重更高。
使用多个监测器来监测芯片上条件或者操作条件具有多种优势。例如,通过在不同位置监测芯片上条件,能够精确地控制操作电压,从而进一步节约功率。此外,避免依赖单一的监测器,能够降低对操作电压选择不准确的敏感性。使用来自多个监测器的错误信号的加权组合具有一种平均的效果。即使一个监测器故障或者提供了不正确的反馈,也会因为平均而降低所不需要的效应。
一些实施方式中,基于监测器125跟踪处理器性能的能力,将对应多个监测器125的错误信号加权。在此状况下,相比于其他条件下的其他监测器,对给定的一组操作条件,提供更准确的或者更可靠的处理器性能信息的至少一监测器分配更高的权重。分配权重,以使得高权重的错误信号对应于提供对处理器性能准确估计的至少一监测器。
处理器运行期间,至少一相关于芯片上条件或者操作条件的参数会改变,从而影响处理器性能。此参数包含,例如,电路频率、电压、以及温度。例如由于不同的响应特性、及/或在集成电路内的不同位置,对给定的一组操作条件,至少一监测器125比其他监测器更准确地跟踪或者估计处理器性能。假若由于一个特定位置上温度的升高影响处理器性能,则相比于距此特定位置较远的其他监测器,设置在接近此特定位置的监测器会提供对处理器性能更佳的估计。在此状况下,在计算组合的错误信号时,对应接近于此特定位置监测器的错误信号会分配到更高的权重。其他范例中,对给定频率或者频率范围,假若至少一监测器的频率响应特性更适合,则对应此至少一监测器的错误信号会比其他监测器分配到更高的权重。
图10A是显示在自适应电压调整系统中包含多个监测器125的系统1000的范例示意图。系统1000包含多个加法器电路1005,每一加法器电路对应一个监测器125。例如,如图1与相关描述所示,监测器位于处理器内。尽管图10A显示多个监测器125a、125b、...、125n,一些实施方式中,系统1000仅具有两个监测器125a以及125b。加法器电路1005分别从相应的设置点(即预设值)805a、805b、…、805n(统称为设置点805)的值中减去相应监测器125a、125b、…、125n提供的反馈信号,来提供错误信号(即来自硬件监测器的测量与相应设置点值之间的差距)1006a、1006b、…、1006n(统称为错误信号1006)。假若监测器125(例如关键路径仿真器)其中之一包含延迟电路,测量或者仿真关键路径的电路延迟,则设置点805的值(即预设值)包含电路延迟值。假若监测器125(例如关键路径仿真器)其中之一包含环形振荡器并测量振荡频率,则相应地设置点的值(即预设值)包含振荡频率值。一些实施方式中,假若一个监测器的测量与相应预设值之间的差别小于或者等于一个阈值时,则以较高频率对此监测器采样,否则假若差别大于阈值,则以较低频率对此监测器采样。另一些实施方式中,假若一个监测器的性能裕度(performance margin)(例如图)与相应预设值之间的差别小于或者等于一个阈值时,以较高频率对此监测器采样,否则假若差别大于阈值,则以较低频率对此监测器采样。
例如,使用乘法器1007,分别将错误信号1006与相应的权重1010a、1010b、…、1010n(统称为权重1010)相乘,以分别提供调整错误信号1008a、1008b、…、1008n(即加权差值)。例如,使用加法器电路1011将调整错误相加在一起,来向控制器110提供组合错误信号1015(即加权差值的总和)。控制器110使用组合错误信号1015产生控制信号1020,控制来自电源115的供电电压。控制器110控制电源,以使得组合错误信号1015降低。一些实施方式中,控制器110以图1及相关描述的方式控制电源115。
一些实施方式中,权重1010能够以不同方式进行分配。一些实施方式中,表示相应的关键路径接近于时序失败(timing failure)的监测器比其他表示时序失败之前有可用裕度的监测器(即距时序失败较远的监测器),分配得到更高的权重。由此,控制器110能够动态地依据监测器的时间裕度来分配权重1010。例如,假若来自一个特定监测器的反馈实质上或者大致上等于相应的设置点,这表示相应的关键路径接近时序失败(即时间裕度(timing margin)较小)。这种监测器意指A类型监测器。假若来自一个监测器的反馈信号与设置点相差一定或者更多的阈值量(即时间裕度(timing margin)较大),这表示相应的关键路径不接近时序失败,并且这种监测器意指B类型监测器。一些实施方式中,A类型监测器比B类型监测器,动态地分配到较高的权重。在此状况下,导致时序失败的潜在威胁条件具有更高的优先权。一些实施方式中,分配给一个特定监测器的权重与潜在时序失败之前可用的裕度量具有反向关系。一些实施方式中,分配给B类型监测器的权重是零。一些实施方式中,将具有最小时间裕度的硬件监测器的监测器辨识为A类型监测器。此外,将时间裕度在最小时间裕度与一预定值相乘的范围内的其他监测器也辨识为A类型监测器。并且,根据A类型监测器的测量来调整输出电压水平。(例如将B类型监测器的权重设置为零或者为较低的值。)进一步地,一些实施方式中,对A类型监测器应用相等的权重值。
一些实施方式中,控制器110以不同的频率从不同的硬件监测器获取测量。例如,对由于不同的响应特性、及/或在电路中的不同位置,比其他监测器更准确跟踪或者估计处理器性能的监测器采样更频繁。对A类型监测器的采样比对B类型监测器采样更频繁。此外,控制器110还会动态地调整对一个硬件监测器的采样率。例如,在一些实施方式中,假若一个硬件监测器125的性能裕度大于第一阈值并且电源115的输出电压水平117的改变率小于第二阈值,则控制器110降低对此硬件监测器125的采样率。例如,控制器110从不同的监测器125获取单个反馈信号及/或错误信号,并且决定一个特定的监测器是否是关键的(A类型监测器)还是B类型监测器。接着,以比对关键监测器较低的速率(rate)对B类型监测器采样。一些实施方式中,一个特定监测器的采样频率是由控制器110基于,例如错误信号的大小、错误信号的改变率,或者上述因素的组合,决定。对不同监测器采取不同的采样率能够降低系统100中总线135的使用。一些实施方式中,还基于操作条件对监测器采样。例如,控制器110在不同的操作频率对不同的监测器采样。
一些实施方式中,权重1010是(例如,基于相应监测器的位置)预先决定的,并且储存在存储器的位置中,例如储存在暂存器中。一些实施方式中,权重由控制器110提供。另一些实施方式中,权重还能从查找表获取,查找表储存几组对应不同条件(芯片上条件或者操作条件,包含时钟频率、供电电压下降、温度、硅老化、工艺偏移其中至少之一)的权重值和预设参数值(即对应参数的预设值)。查找表中储存的预设参数值(即预存参数值)表示在给定条件下监测器125所测量参数值的所需参数值。预设参数实质上与上述设置点805相同,并且权重以及预设参数值其中至少之一随着频率范围的改变而改变。其中,每组权重值及每组预设参数值进一步分别包含至少两个权重值和至少两个预设参数值。例如,当数据处理器运行于第一频率或者频率范围时,使用第一组权重和第一组预设参数值。当数据处理器运行于第二频率或者频率范围时,使用第二组权重和第二组预设参数值。在一些实施方式中,当数据处理器运行于第二频率或者频率范围时,也可以使用第二组权重和第一组预设参数值。
例如,控制器110基于监测不同监测器提供的反馈,自适应地改变权重。例如,假若决定相比于其他监测器,一个监测器提供的是异常值(outlier value),则控制器110通过将相应的权重设置为零或者很低的值来忽略那个监测器。一些实施方式中,系统1000包含电路系统(例如逻辑电路)来分配或者选择权重1010。
一些实施方式中,分配权重1010以使得将单个权重相加的总和实质上是“一”(unity)。例如,假若有三个监测器,并且分别给两个监测器分配0.3以及0.2的权重,则给第三个监测器分配0.5的权重。一些实施方式中,分配权重1010以使得组合的错误信号是各错误信号1006的平均。这能够通过将权重1010设置为相互间实质上相等并且使得权重1010相加起来是“一”来实现。例如,假若有四个监测器,则将每一监测器的权重设置为0.25,由此组合错误信号1015将为各错误信号1006的平均。
图10A是显示范例系统1000的示意图。其中,将错误信号(即反馈信号距相应设置点的偏差)调整或者加权。一些实施方式中,将权重应用于反馈信号(即来自硬件监测器的测量)。图10B是显示范例系统1050的示意图。系统1050中,(例如,使用乘法器1007)将反馈信号与权重相乘,以提供加权反馈信号1055a、1055b、…、1055n(统称为加权反馈信号1055)。在此状况下,还需要调整相应设置点(即预设值),以提供调整的设置点1060a、1060b、…、1060n(统称为设置点1060)。一些实施方式中,使用实质上相同的权重1010调整相应的设置点,来提供调整设置点1060。接着,从相应的调整设置点1060中减去加权反馈信号1055,来获取调整错误信号1008(调整错误信号1008a、1008b、…、1008N,统称为调整错误信号1008)。例如,使用加法器电路1011将调整错误相加在一起,向控制器110提供组合错误信号1015。控制器110控制电源,以使得组合错误信号1015降低。如前所述,权重和预设值的选择既可以由控制器110分配,也可以是预先决定的,例如从暂存器或者从查找表获取。
图11A显示对应不同监测器选择权重的范例,其中给出使用两个性能监测器PM1和PM2的集成电路中,对应一个特定关键路径的电压对时序延迟曲线(voltage vs.timingdelay curves)。电压对时序延迟曲线是反映电压-延迟特性的曲线。图形中的电压意指电源提供给集成电路和性能监测器的电压,并且时序延迟表示对应不同的电源电压,信号通过关键路径传递所需要的时间量。曲线1115显示目标性能曲线,并且曲线1105和1110分别表示仅使用监测器PM1和仅使用监测器PM2时所达到的性能。曲线1115表示随着电源电压的提高,时序延迟降低。区域1120中,曲线1110比曲线1105更接近于目标性能曲线1115。另一方面,区域1130中,曲线1105比曲线1110更接近于目标性能曲线1115。这表示在区域1120中(即在区域1120对应的条件下),监测器PM2更准确地仿真数据处理器的关键路径,并且仅使用来自监测器PM2的反馈就能达到在目标性能可接受范围内的性能;并且在区域1130中(即在区域1130对应的条件下),监测器PM1更准确地仿真数据处理器的关键路径,并且仅使用来自监测器PM1的反馈就能达到目标性能可接受范围内的性能。相应地,此范例中,对应落在区域1120内的操作条件,分配给对应监测器PM1和PM2的错误信号的权重分别为0和1,即100%监测器PM2。对应落在区域1130内的操作条件,对应监测器PM1以及PM2的相应权重分别为1和0,即100%监测器PM1。区域1125中,曲线1105与1110在目标性能曲线1115的两侧,并且在区域1125的大部分区域中,与目标性能曲线1115的距离相似(或实质上相同)。由此,对应落在区域1125内的操作条件分配给对应监测器PM1和PM2的错误信号的权重分别为0.5和0.5,即50%监测器PM1,50%监测器PM2。
一些实施方式中,对应给定关键路径来从较多数目的可用的监测器中选择监测器的一个子集(subset),即选择一部分监测器,并且所选择子集中的监测器的权重基于相应性能曲线或者公式决定。例如,假若在靠近处理器核心的区域及周边区域分配十个可用的监测器,则接近于核心的监测器比周边区域的监测器IR压降情况差。在高电流的情况下,可以忽略或者屏蔽(mask)周边区域的监测器,并且决定将权重分配给较小数目(例如三个)的监测器。
图11B显示对应不同监测器选择权重的另一范例。此范例使用三个监测器PM1、PM2以及PM3,并且分别对应曲线1160、1150以及1165。在范例中,目标性能由目标性能曲线1155表示。相似于图11A的范例,辨识出三个单独的区域1170、1175以及1180,并且基于曲线相互间以及与目标性能曲线1155的相关位置,决定不同区域的权重。对于落在区域1170的操作条件,分配给对应监测器PM1、PM2和PM3的错误信号的权重分别为1、0和0,即100%的监测器PM1。对于落在区域1175的操作条件,分配给对应监测器PM1、PM2和PM3的错误信号的权重分别为0.1、0.1和0.8,即80%的监测器PM3,10%的监测器PM1,和10%的监测器PM2。对于落在区域1180的操作条件,分配给对应监测器PM1、PM2和PM3的错误信号的权重分别为0、1和0,即100%的监测器PM3。
请注意,目标性能曲线1115、曲线1105以及1110仅用于说明本发明,而并非对本发明的限制。在不脱离本发明的范围下,还可以使用其他表示相关于给定关键路径下供电电压以及延迟之间关系的性能曲线。性能曲线还能随温度改变。在此状况下,能够使用代表性的曲线来选择监测器。例如,将温度变化量化为离散的数组(bins)并且基于给定频率范围下最差情况的延迟曲线来进行监测器选择。
监测器与控制器之间通信的中断驱动
请再次参考图1,一些实施方式中,控制器110间歇性地(intermittently)轮询监测器125,并且相应地控制电压调节器114来调整来自电源115的供电电压117。通过总线135来协助完成监测器125与控制器110之间的通信。但是,此基于轮询的方案中,需要频繁地使用总线135,因此会降低其他通信可用的总线频宽。频繁轮询监测器会导致功率和总线频宽浪费。另一方面,不频繁地对监测器125采样会导致错过事件以及潜在的系统不稳定。此外,由于,例如,对监测器125采样所需的存取时间,电压调整系统100的时延(latency)(即事件与相应电压调整之间的时间)还很高。采样频率还受限于,例如,总线135支持的频率范围(通常意指总线-频率)。
图12是控制器110与监测器125(例如硬件监测器)之间通信的范例系统的方块图。一些实施方式中,为降低控制器110轮询监测器125的次数,并且由此降低电压调整系统100对总线135的使用。一些实施方式中,监测器125为硬件监测器,仿真数据处理器中的关键路径,并且通过测量仿真关键路径的测量值,例如测量所仿真电路的时间裕度,来判断是否发出中断。将监测器125配置为(例如,通过测量一个参数)检测系统100是否在设置点附近运行。接着监测器125处理测量参数并且使用专用的中断线1201a、1201b、1201c(统称为中断线1201)发出中断。因为监测器125仅在需要时处理测量参数并且向控制器110发出中断信号,控制器110不需要周期性地轮询监测器125,由此降低对总线135的使用以及相关时延。中断线1201包含至少一信号线来携带作为中断信号的至少一比特。当控制器110从监测器125接收到中断时,响应中断信号,控制器110(例如使用电压调节器114)调整来自电源115的供电电压117。另一些实施方式中,每一监测器125具有一个唯一的识别符(uniqiueidentifier)。控制器通过在总线上发送唯一的识别符来轮询一个特定的监测器,并且当这个特定的监测器辨识出总线上的那个唯一的识别符时响应控制器。
监测器125以不同方式检测系统100是否运行在设置点附近。一些实施方式中,监测器125计算设置点(例如预设参数值或者来自查找表140的预存参数值)与测量参数之间的差别,并且决定差别是否在预先定义的容忍限(tolerant limit)内。假若决定差别在预先定义的容忍限之外(例如大于阈值),则监测器125还在相应的中断线1201上发出中断信号。一些实施方式中,容忍限及设置点是预先储存在监测器125中的,例如,当事件的发生触发设置点的改变时预先储存在监测器125中。控制器110使用总线135来将设置点及相应容忍限储存在监测器125中。一些实施方式中,有多个监测器125来测量数据处理器105的相关参数。每一监测器125重复测量一个参数来得到多个测量值,并且通过处理测量值来产生中断信号。
一些实施方式中,假若测量的参数值本身大于一个较高阈值或者小于一个较低阈值,则监测器125发出中断。在此状况下,控制器110编写或者储存设置点(例如图9A中的曲线920所表示的)以及至少一相关阈值到监测器125中。例如,这在当事件的发生触发设置点的改变时完成。例如,控制器110使用总线135来以设置点及/或较高及较低的阈值来配置或者编程监测器125。一些实施方式中,有多个较高及/或较低的阈值相关于一个设置点。在此状况下,在中断线1201上发出多个比特信号以表示,例如,已经违反(breach)哪个阈值水平。例如,给定设置点有4个相关阈值,即,关键低、非关键低、非关键高以及关键高。这4个阈值分别使用2比特中断信号表示,表示为比特模式(bit patterns)“00”、“01”、“10”以及“11”。
一般地,监测器125在比控制器110能重复调整来自电源115的供电电压117的频率更高的频率下测量参数。高采样率能够保证在控制器110能力的允许下尽可能经常地进行调整。但是,一些实施方式中,监测器125在比控制器110能重复调整电源输出电压水平的频率更低的频率下测量参数。例如,当由低采样率带来功率节约比频繁调整带来更多优势时,采取这样的方式。一些实施方式中,监测器的采样率是可调整的。还可以基于电源115响应调整的能力来决定采样率。
当事件的发生触发设置点的改变时,能够从查找表140获取新的设置点或预设值。查找表140储存对应不同条件(包含,例如,不同的时钟频率、供电压降、温度、硅老化,或者工艺偏移)的设置点或预设值。设置点或预设值表示在给定的一组条件下,监测器测量的参数的所需或者所期望的值。
一些实施方式中,当将多个监测器用于系统时,可以将来自不同监测器的输出平均或者加权,并且比较平均值或者加权值与相应阈值来决定是否应该向控制器发送中断。一些实施方式中,将监测器分类,一些比另一些更重要,由此当对应一个重要监测器的平均值或者加权值超出阈值时,无论其他监测器的加权值或者平均值是否都在相应阈值内,都向控制器发出中断。一些实施方式中,控制器110从多个监测器125接收多个中断信号。在此状况下,控制器110或者优先处理中断服务(例如,基于接收到中断的时间、相应监测器的重要程度及/或违反的阈值水平),或者将来自每一监测器125的信息组合来响应中断。例如,控制器110询问每一监测器125来获取来自监测器的参数的测量值,并且根据测量值调整供电电压117。一些实施方式中,使用软件来决定至少一监测器是不重要的并且被屏蔽(maskout)。例如,在此状况下,控制器110忽略来自被屏蔽的监测器的中断。
监测器125包含电路系统(例如比较器),比较监测器读数与储存的设置点及/或阈值。假若监测器读数在储存的设置点阈值内,则不中断控制器。但是,假若监测器读数在阈值之外,则监测器125向控制器110发送中断信号。控制器110服务中断,并且调整电源115的供电电压。一些实施方式中,一旦接收到中断信号并且获取来自监测器125的测量值,则控制器110调整电源,将输出电压水平降低(或者提高)一预先决定的量。一些实施方式中,一旦接收到对应测量值的中断,则控制器110轮询监测器125并且相应地控制电源115。例如,当控制器110接收到来自多个监测器125的两个以上中断信号时,询问其中一个发送中断信号的监测器125来获取其测量值,并且依据此测量值调整电源115的供电电压117的水平。或者,控制器询问所有发送中断信号的监测器125来获取其测量值,并且依据这些来自所有发送中断信号的监测器的测量值来调整电源115。在此状况下,控制器110基于至少一部分测量值来计算电压降低(或者提高)的量,并且通过计算量来调整电源115降低(或者提高)供电电压117。在一些实施方式中,当测量值大于较高阈值时,降低供电电压117;当测量者小于较低阈值时,提高供电电压117。
一些实施方式中,中断信号包含需要进行何种调整的信息,并且控制器110继续相应地调整电源115。例如,通过2比特的信号线发送中断信号到控制器110,其中第一比特表示需要正的还是负的改变,并且剩下的另一个比特表示两个不同的改变水平。由此,2比特的中断信号具有两个比特模式:表示正改变的比特模式(供电电压水平应该提高),以及表示负改变的比特模式(供电电压水平应该降低)。其他范例中,通过3比特的信号线发送中断信号到控制器110,其中第一比特表示需要正的还是负的改变,并且剩下的两个比特表示四个不同的改变水平(即供电电压应该提高或者降低的预定量)。在此状况下,当接收到中断信号时,控制器110将供电电压提高或者降低预先决定的量。此基于中断的自适应电压方案意指离线(offline)控制方案。
上述给出的离线控制方案提供多种优势。例如,能够降低控制器110与监测器125之间通信所用的总线频宽。一些情况下,当在控制器110与监测器125之间使用专用中断线时,能够实质上降低当设置点不改变时控制器110与监测器125之间通信所用的总线。这能够减少总线135上的负载并且腾出总线频宽来供其他处理器内部(intra-processor)通信或者控制器110与处理器105之间的其他通信使用。时延还能够通过避免总线存取和控制器的计算来得到改善。离线控制方案还提供对于相关于总线存取的仲裁伪影(arbitrationartifacts)来说更高的免疫性。仲裁伪影会引起一些状况,其中系统100的不同部分具有比控制器110更高的总线优先权。在此状况下,控制器110可能没有依所需要的那么频繁地对总线135进行充足的存取来监测温度传感器130。这又会降低功率效率并且会提高错失事件的机率,从而使系统不稳定。离线控制方案通过降低或者避免总线存取来提高对此仲裁伪影的免疫性。功率的使用也会由于控制器110和监测器125之间通信的降低而降低。进一步地,因为选择不再受到总线频率的限制,离线方案允许对传感器采样频率更广泛的选择。离线方案还通过使用对满足裕度(margining)需求的中断来允许更好的多功能性(versatility)。例如,考虑一种情况,其中以较快的速率对监测器采样,并且在比控制器110能反应的更高速率下违反一个阈值。在此状况下,在中断频率降低之前,系统能够通过增加裕度来得到稳定。由此通过使用离线中断,系统能够自适应地调整裕度来保证覆盖具有环路频宽之外的频率的事件。
由此,本发明提供的电压调整方法可以通过总线的方式来实施。首先,使用处理器105来接收通过总线135传送的数据,并且使用监测器125测量相关于处理器105的电路延迟,来得到电路延迟值。之后,通过总线135来从控制器110发送请求电路延迟值的请求给监测器125。随后,通过总线来在控制器110端接收来自监测器125的电路延迟值,并使用控制器110来依据电路延迟值控制电源。此外,为了减少总线上相关于监测器125的通信量,可以基于步长电压(即用于调整电源的输出电压水平的步长电压)来决定一段时间长度。控制器110先等待这段时间,再发送请求给监测器125。例如,当步长电压表示输出电压水平改变量大时,则等待的时间越长。
图13显示自适应电压调整系统中离线控制方案的信号范例时序图。横轴表示时间。曲线1205表示来自电源115的供电电压117(意指图13中的直流直流(Direct CurrentDirect Current,DCDC)电压)。曲线920表示对应一个特定监测器125的设置点805(请参考图8)并且曲线915表示这个特定监测器125的读数。范例显示,监测器读数最初在水平1255。因为监测器读数在较高阈值1220和较低阈值1225之间的区域,表示来自监测器的中断的中断信号的曲线1230为低,说明监测器125不会发出任何中断。时间点1257,传感器读数改变一定的量,使得传感器读数的曲线915倾斜到水平1260,在较低阈值1225之下。这使得监测器125在时间点1235发出中断信号,由脉冲1237表示。将脉冲1237传送到控制器110的中断引脚(pin)(例如IRQ引脚)。
控制器110服务中断并且调整电源115的供电电压。一些实施方式中,控制器110询问监测器125来获取监测器125测量的参数测量值并且根据测量值控制电源来调整输出电压水平。参数相关于监测器125仿真的关键路径。例如,参数是相关于关键路径的电路延迟,并且控制器控制供电电压117来降低测量电路延迟以及预先设置电路延迟值之间的差别。其他范例中,参数是环形振荡器的振荡频率,并且控制器110控制供电电压117来降低测量振荡频率以及预先设置振荡频率值之间的差别。其他范例中,参数是时间裕度,并且控制器控制电源输出电压水平来将时间裕度调整到指定范围内。
图13的范例中,控制器110通过将调整码1270a(例如DCDC码1)改变为调整码1270b(例如DCDC码2)来补偿监测器或者传感器读数。时间点1235和1265之间的时间距离表示由控制器110引起的时延。这使得供电电压提高以及电压曲线1205从水平1212上升到更高的水平1213。传感器读数还相应地从水平1260提高到较高阈值1220以及较低阈值1225之间的水平1262。控制器110等待一段时间来允许系统100稳定,并且在时间点1240清除中断引脚(例如IRQ引脚),即清除IRQ。监测器保持‘停滞(stalled)’或者在脉冲1237期间暂停。
当前范例中,传感器读数在时间点1245超过较高阈值,并且相应地监测器125在时间点1247发出中断。作为响应,控制器110服务中断并且在时间点1250,将调整码从1270b改变为1270c(例如DCDC码3)。在时间点1247和1250之间的时间段,因为供电电压还未改变,所以不用也不需要监测器取样。一些实施方式中,给监测器的时钟是门控的,以使得监测器或者传感器‘停滞(stalled)’。由此,监测器在时间点1247和1250之间再一次保持暂停。控制器改变电压码使得供电电压降低以及传感器读数降低到较高阈值1220以及较低阈值1225之间的水平。
图14显示比较用于自适应电压调整的将调整信息包含于中断信号中的系统以及基于轮询的系统的范例绘图。基于轮询的系统可以是连续轮询系统或者是中断驱动系统。连续轮询系统中控制器110周期性地轮询至少一监测器125,中断驱动系统中,控制器110响应接收到的中断来轮询至少一监测器。曲线1305表示时钟序列,包含时钟周期1到20。曲线1307表示监测器读数。曲线1309表示相关于监测器的较低阈值。曲线1310表示离线控制系统中的响应时间,即离线监测响应时间。此范例中,监测器读数1307在时钟周期1期间降低到低于较低阈值1309的水平。这触发到控制器110的中断并且中断在时钟周期4期间由控制器110接收。中断的接收由曲线1310从逻辑“低”到逻辑“高”的转换表示。由此,当信息包含于中断信号本身时,控制器110控制电源115的所需信息在时钟周期4期间对控制器可用。
曲线1318是一般轮询的传感器存取序列,表示当使用基于轮询的系统时的时序图。此系统中,控制器110在时钟周期1的上升沿发出数据采样脉冲1315来对监测器125采样。对监测器125采样包含几个步骤,每一步骤需要一段时间来执行。例如,需要时间段1320(总线写入存取时间来向传感器请求数据)来向总线135写入存取以从监测器125(例如传感器)请求数据。监测器125需要时间段1325来计算请求的数据并且将数据提供到总线135上(例如进行传感器计算)。控制器110需要时间段1330(总线读取存取时间来自传感器存取数据)来再一次存取总线135来读取监测器125提供的数据。之后,数据在控制器端可用。基于轮询系统的响应时间(或者从采样脉冲开始到传感器测量数据对控制器可用的时间点的时间期间)是时间段1320、1325以及1330的总和。此范例中,响应时间是18个时钟周期。调整信息包含于中断信号本身的系统中的响应时间一般低于基于轮询的系统的响应时间。响应时间的差别由时间段1335表示,在此范例中,实质上等于14个时钟周期。
计算装置的概况
图15是计算机系统1400的示意图。系统1400能够用于上述计算机实施方法的任何相关操作,例如用于初始化以及校正关键路径仿真器的流程700。系统1400能够结合于不同计算装置中,例如台式计算机1401、服务器1402、及/或移动装置1403(例如膝上型电脑、移动电话、平板电脑、电子阅读装置、便携式音频播放器、便携式视频播放器、数码相机)。系统1400包含处理器1410、存储器1420、存储装置1430以及输入/输出装置1440。处理器1410、存储器1420、存储装置1430以及输入/输出装置1440使用系统总线1450相互耦接。一些实施方式中,输入/输出装置1440与总线1450之间还有输入/输出接口。处理器1410在系统1400内处理指令来运行。一实施方式中,处理器1410是单线程(single-threaded)处理器。其他实施方式中,处理器1410是多线程(multi-threaded)处理器。处理器1410处理储存中存储器1420中或者存储装置1430中的指令来在输入/输出装置1440的用户界面(user interface)上显示图形信息。一些实施方式中,处理器1410是移动处理器,设计用于节约功率。处理器1410实质上相似于之前描述的处理器105(请参考图1),并且上述由处理器105执行的用于降低功率消耗的不同电压调整技术都能够应用于处理器1410。
存储器1420储存系统1400内的信息。一些实施方式中,存储器1420是计算机可读取存储媒体。存储器1420包含挥发性存储器及/或非挥发性存储器。存储装置1430提供用于系统1400的大容量存储。一实施方式中,存储装置1430是计算机可读取媒体。各种不同的实施方式中,存储装置1430可以是软磁盘(floppy disk)装置、硬盘(hard disk)装置、光盘(optical disk)装置、或者磁带(tape)装置。
输入/输出装置1440提供用于系统1400的输入/输出操作。一些实施方式中,输入/输出装置1440包含键盘及/或指点(pointing)装置。一些实施方式中,输入/输出装置1440包含显示单元用于显示图形用户界面。一些实施方式中,输入/输出装置接收语音(verbal)(例如口说的)输入。
所述特性可实施于数字电子电路系统、或者计算机硬件、固件或者这些装置的组合中。所述特性能够在包含在信息载体中的实体(tangibly)计算机编程产品中实施,例如在机器可读取存储装置中,由可编程处理器执行;并且所述特性可由可编程处理器执行指令程序来实施上述通过运行输入数据并且产生输出来实施的功能实现。所述特性能够实施于至少一计算机程序中,此计算机程序在可编程系统是可执行的。可编程系统包含至少一可编程处理器、至少一输入装置、以及至少一输出装置。可编程处理器耦接于数据存储系统,从此数据存储系统接收数据以及指令,并且向其传送数据以及指令。计算机程序包一组指令,用于直接或者间接地在计算机中执行特定活动或者带来特定结果。能够以任何编程语言(包含汇编或者翻译语言)以任何形式来编写计算机程序。并且可以采用任何形式,包含独立(stand-alone)程序或者作为模块、分量、子路径、或者其他适用于计算环境单元的形式,来配置计算机程序。
适合于执行指令程序的处理器通过范例方式给出,包含任意类型计算机的通用以及特殊目的微处理器、以及唯一(sole)处理器或者多个处理器之一。通常,处理器从只读存储器(read-only memory)、随机存取存储器(random access memory)或者上述二者接收指令以及数据。计算机包含用于执行指令的处理器以及用于存储指令以及数据的至少一存储器。通常,计算机还包含,或者有效地耦接至至少一用于存储数据文件的大容量存储装置并与其通信;此种装置包含磁盘,例如内部硬盘以及可移除盘(removable disk)、磁光盘(magneto-optical disks)、以及光盘。包含计算机程序指令以及数据的适合于实体的存储装置包含所有形式的非挥发性存储器,包含半导体存储器装置(例如可擦可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、以及闪存存储器装置(flash memory device))、磁盘(例如内部硬盘以及可移除盘;磁光盘、CD-ROM盘、以及DVD-ROM盘)。处理器以及存储器能够结合在专门应用集成电路(Application-specificinterated circuit(s),ASICs(s))中,或者在专门应用集成电路上补充。
为提供与用户的互动,能够在具有显示装置、键盘以及指点装置的计算机上实施上述特性。显示装置例如是:用于向用户显示信息的阴极射线管(Cathode Ray Tube,CRT)、液晶显示(Liquid Crystal Display LCD)监测器、电子墨水(e-Ink)显示器或者其他类型显示器。指点装置例如是鼠标或者轨迹球(trackball)。用户通过键盘以及指点装置向计算机提供输入。
上述特性能够在包含后端元件(back-end component)(例如数据服务器(dataserver))、中间件元件(middleware component)(例如应用服务器或者因特网服务器(Internet server))或者前端元件(front-end component)(例如包含图形用户界面、因特网浏览器或者其结合的客户端计算机)的计算机系统。系统的元件能够以数字数据通信的任何形式或者媒介,例如通信网络,耦接。通信网络的范例包含,例如局域网(Local AreaNetwork,LAN)、广域网(WAN,Wide Area Network)、以及计算机和网络形成的因特网。
计算机系统包含客户和服务器。一个客户和服务器通常相互距离遥远,并且一般地通过网络(例如上述网络)互动。客户和服务器的关系通过在各计算上运行的计算机程序产生,并且相互间具有客户-服务器关系。
处理器1410执行相关于计算机程序的指令。处理器1410包含硬件,例如逻辑门、加法器、乘法器以及计数器。另一实施方式中,处理器1410进一步包含独立的算术逻辑单元(Arithmetic Logic Unit,ALU),执行算术以及逻辑操作。
本发明已经给出多种实施方式。但是,本领域技术人员应了解可以对本发明做出不同的修改。例如,将至少一实施方式中的元件结合、删除、修改或者补充来进一步形成另一实施方式。例如其他范例中,附图中的逻辑流程不需要以所示的特定顺序或者序列顺序来执行,也能达到所需要的结果。此外,还可以向所述流程提供其他步骤,或者删除一些步骤。并且,可以向所描述的系统添加其他元件,或者从中移除元件。例如,控制器110能够是处理器核心或者主控制单元120的一部分,还执行其他无关于功率管理、操作的任务。
本发明虽以较佳实施方式揭露如上,然其并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。

Claims (21)

1.一种电压调整装置,包含:
数据处理器;
至少两个硬件监测器,测量相关于该数据处理器的多个参数;
电源,向该数据处理器以及该至少两个硬件监测器提供电压;以及
控制器,根据来自该至少两个硬件监测器的测量调整该电源的输出电压水平,其中在不同条件下对该至少两个硬件监测器应用不同的权重值,并且该电源的输出电压水平根据加权测量或者从该加权测量得到的值得到控制,以及决定来自每一硬件监测器的测量与相应预设值之间的差别,以及假若该差别等于或者小于阈值,则以较高频率地对该硬件监测器采样,假若该差别大于该阈值,则以较低频率对该硬件监测器采样。
2.如权利要求1所述的电压调整装置,其特征在于,该条件包含时钟频率、供电电压下降、温度、硅老化、工艺偏移其中至少之一。
3.如权利要求1所述的电压调整装置,还包含查找表,具有多组权重值和对应参数的多组预设值,每一组权重值和每一组预设值对应该条件中至少之一。
4.如权利要求3所述的电压调整装置,其特征在于,该控制器将该多组权重值应用到来自该至少两个硬件监测器的测量与相应多个预设值之间的差距以得到多个加权差值,并且根据该多个加权差值来控制电源调整该电源的输出电压水平。
5.如权利要求4所述的电压调整装置,其特征在于,该控制器控制该电源的输出电压水平以降低该多个加权差值的总和。
6.如权利要求3所述的电压调整装置,其特征在于,该控制器将该多组权重值应用到来自硬件监测器的测量上以得到多个加权测量,决定该多个加权测量以及相应多个预设值之间的多个差值,并且根据该多个差值来控制电源调整该电源的输出电压水平。
7.如权利要求6所述的电压调整装置,其特征在于,该控制器控制该电源的输出电压水平以降低该多个差值的总和。
8.如权利要求3所述的电压调整装置,其特征在于,每一预设值表示相关于一种条件下,硬件监测器测量的期望参数值。
9.如权利要求3所述的电压调整装置,其特征在于,第一组权重值和第一组预设值对应于第一频率或者频率范围,并且第二组权重值和第二组预设值对应于第二频率或者频率范围。
10.如权利要求9所述的电压调整装置,其特征在于,当该数据处理器操作于该第一频率或者频率范围时,该控制器将第一组权重值应用在多个参数测量值以及第一组预设值之间的差值上以得到多个第一加权差值,并且控制该电源的输出电压水平来降低该多个第一加权差值的总和;以及
当该数据处理器操作于该第二频率或者频率范围时,该控制器将第二组权重值应用在该多个参数测量值以及该第一组预设值之间的差值上以得到多个第二加权差值,并且控制该电源的输出电压水平来降低该多个第二加权差值的总和。
11.如权利要求1所述的电压调整装置,其特征在于,该至少两个硬件监测器包含关键路径仿真器,仿真该数据处理器的关键路径。
12.如权利要求11所述的电压调整装置,其特征在于,该至少两个硬件监测器其中之一包含延迟电路,并且对应该多个参数的预设值包含电路延迟值。
13.如权利要求11所述的电压调整装置,其特征在于,该至少两个硬件监测器其中之一包含环形振荡器,并且相应该硬件监测器的预设值包含振荡频率值。
14.如权利要求11所述的电压调整装置,其特征在于,该控制器对接近于时序失败的一个硬件监测器应用比另一远离时序失败的硬件监测器更高的权重值。
15.如权利要求1所述的电压调整装置,其特征在于,该控制器动态地依据该至少两个硬件监测器的时间裕度来将不同的权重应用在该至少两个硬件监测器上。
16.如权利要求1所述的电压调整装置,其特征在于,该控制器辨识出具有最小时间裕度的硬件监测器,辨识出时间裕度在该最小时间裕度与一个预定值相乘的范围内的其他至少一硬件监测器,以及根据来自该所辨识出的该多个硬件监测器的测量来调整该输出电压水平。
17.如权利要求16所述的电压调整装置,其特征在于,对所辨识出的该多个硬件监测器应用相等的权重值,并且对其他硬件监测器应用零权重值。
18.如权利要求1所述的电压调整装置,其特征在于,其中假若该至少两个硬件监测器中的一个硬件监测器的性能裕度大于第一阈值并且该电源的输出电压水平的改变率小于第二阈值,则该控制器降低对该一个硬件监测器的采样率。
19.如权利要求1所述的电压调整装置,其特征在于,不同的硬件监测器测量相关于该数据处理器的不同部分的特性。
20.如权利要求19所述的电压调整装置,其特征在于,该至少两个硬件监测器其中之一测量该数据处理器中相关于高速缓冲存储器的参数,以及该至少两个硬件监测器其中之另一测量相关于该数据处理器中该高速缓冲存储器之外的电路路径的参数。
21.如权利要求1所述的电压调整装置,其特征在于,对应一种条件,该权重值得到配置,以使得该至少两个硬件监测器其中之一得到全部权重,并且该至少两个硬件监测器中的其他硬件监测器得到的权重为零。
CN201610298455.5A 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法 Expired - Fee Related CN105955438B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/474,720 US9323320B2 (en) 2012-05-18 2012-05-18 Weighted control in a voltage scaling system
US13/474,720 2012-05-18
CN201210441812.0A CN103425223B (zh) 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201210441812.0A Division CN103425223B (zh) 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法

Publications (2)

Publication Number Publication Date
CN105955438A CN105955438A (zh) 2016-09-21
CN105955438B true CN105955438B (zh) 2018-10-16

Family

ID=49582315

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610298455.5A Expired - Fee Related CN105955438B (zh) 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法
CN201210441812.0A Expired - Fee Related CN103425223B (zh) 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210441812.0A Expired - Fee Related CN103425223B (zh) 2012-05-18 2012-11-07 电压调整装置与方法、移动装置及其运行方法

Country Status (3)

Country Link
US (1) US9323320B2 (zh)
CN (2) CN105955438B (zh)
WO (1) WO2013172787A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136177A1 (en) * 2012-11-09 2014-05-15 Mediatek Inc. Critical path emulating apparatus using hybrid architecture
US9218044B2 (en) * 2012-11-27 2015-12-22 International Business Machines Corporation Computing system frequency target monitor
US9939883B2 (en) 2012-12-27 2018-04-10 Nvidia Corporation Supply-voltage control for device power management
CN103197717B (zh) * 2013-02-28 2015-11-25 华为技术有限公司 自适应电压调整方法、芯片以及系统
US20140373024A1 (en) * 2013-06-14 2014-12-18 Nvidia Corporation Real time processor
US9766649B2 (en) 2013-07-22 2017-09-19 Nvidia Corporation Closed loop dynamic voltage and frequency scaling
US9602083B2 (en) * 2013-07-03 2017-03-21 Nvidia Corporation Clock generation circuit that tracks critical path across process, voltage and temperature variation
US10103719B2 (en) 2013-07-22 2018-10-16 Nvidia Corporation Integrated voltage regulator with in-built process, temperature and aging compensation
US9244122B2 (en) * 2013-08-06 2016-01-26 Global Unichip Corp. Method of determining performance of a chip of an integrated-circuit design and an apparatus and an integrated circuit using the same
US10145896B2 (en) * 2013-08-06 2018-12-04 Global Unichip Corporation Electronic device, performance binning system and method, voltage automatic calibration system
KR102035986B1 (ko) * 2013-11-13 2019-10-24 삼성전자 주식회사 타이밍 컨트롤러와 상기 타이밍 컨트롤러를 포함하는 디스플레이 시스템
KR20150113569A (ko) * 2014-03-31 2015-10-08 삼성전자주식회사 전자 장치의 저전력 시스템을 위한 전력 제어 방법 및 장치
CN103941788B (zh) * 2014-04-24 2016-08-24 华为技术有限公司 芯片自适应电压调整器及方法
CN104038063B (zh) * 2014-06-27 2016-08-24 电子科技大学 具有负载最小能耗点追踪的自适应电压调节电路
US9501604B1 (en) * 2014-09-23 2016-11-22 Xilinx, Inc. Testing critical paths of a circuit design
CN105823971B (zh) * 2015-01-09 2018-11-16 中芯国际集成电路制造(上海)有限公司 芯片运行状态监测系统及监测方法
US9924245B2 (en) * 2015-05-06 2018-03-20 Crystal Instruments Corporation Synchronized measurement device using local area network with ethernet messaging
US9543936B1 (en) 2015-06-22 2017-01-10 International Business Machines Corporation Reconfigurable voltage desensitization circuit to emulate system critical paths
US9651969B2 (en) 2015-07-30 2017-05-16 Qualcomm Incorporated Adaptive voltage scaling using analytical models for interconnect delay
US9733685B2 (en) 2015-12-14 2017-08-15 International Business Machines Corporation Temperature-aware microprocessor voltage management
CN105608027B (zh) * 2015-12-18 2018-10-19 华为技术有限公司 非易失存储设备和访问非易失存储设备的方法
CN105739592A (zh) * 2016-01-29 2016-07-06 四川长虹电器股份有限公司 减小电机运行功率的调试控制系统及方法
FR3050341B1 (fr) * 2016-04-18 2018-05-11 Stmicroelectronics (Crolles 2) Sas Procede et dispositif de surveillance d'un chemin critique d'un circuit integre
US20210285827A1 (en) * 2016-07-12 2021-09-16 Honeywell International Inc. Dynamic temperature sensor
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
CN106527653A (zh) * 2016-10-12 2017-03-22 东软集团股份有限公司 调整cpu频率的方法及装置
CN107992149B (zh) * 2016-10-27 2020-02-07 中芯国际集成电路制造(上海)有限公司 电压带隙电路的修调方法和修调装置
KR20180055143A (ko) 2016-11-16 2018-05-25 삼성전자주식회사 시스템 온 칩, 이를 포함하는 장치 및 이의 구동 방법
CN108345275A (zh) * 2017-01-25 2018-07-31 中芯国际集成电路制造(上海)有限公司 设备监控系统及设备监控方法
WO2018148676A1 (en) * 2017-02-13 2018-08-16 Endura Technologies LLC Realtime critical timing path potential fault event detection and prevention for embedded cores
CN110678924A (zh) 2017-02-13 2020-01-10 朝阳半导体技术江阴有限公司 电路内供应瞬态示波器
CN106873696B (zh) * 2017-03-20 2018-03-20 东南大学 一种自适应快速电源电压调节系统
US11003737B2 (en) * 2017-04-12 2021-05-11 Samsung Electronics Co., Ltd. Generic high-dimensional importance sampling methodology
US10157644B1 (en) * 2017-08-08 2018-12-18 Micron Technology, Inc. Methods and apparatus for generation of voltages
TWI655534B (zh) * 2017-11-29 2019-04-01 營邦企業股份有限公司 電源供應裝置之電源輸出管理方法
KR102453710B1 (ko) 2018-02-12 2022-10-11 삼성전자주식회사 반도체 장치
KR102652805B1 (ko) * 2018-03-12 2024-04-01 에스케이하이닉스 주식회사 파워 게이팅 회로 및 그 제어 시스템
US10504581B1 (en) * 2018-06-26 2019-12-10 Nanya Technology Corporation Memory apparatus and operating method thereof
US11144110B2 (en) 2018-07-19 2021-10-12 Apple Inc. Computer system power monitoring
CN109542203B (zh) * 2018-11-20 2021-10-29 郑州云海信息技术有限公司 一种存储设备及其供电系统
CN112292652B (zh) * 2019-02-27 2023-06-02 华为技术有限公司 一种动态电压频率调整系统和方法
US10839865B1 (en) * 2019-04-29 2020-11-17 Arm Limited Self-timed memory with adaptive voltage scaling
US20200409450A1 (en) * 2019-06-28 2020-12-31 Microsoft Technology Licensing, Llc Software-correlated supply voltages for processing devices
US11543872B2 (en) 2019-07-02 2023-01-03 Microsoft Technology Licensing, Llc Dynamically adjusting device operating voltage based on device performance
CN110244808B (zh) * 2019-07-03 2021-08-17 西安易朴通讯技术有限公司 电压调节方法、装置、设备及存储介质
US10886903B1 (en) * 2019-08-20 2021-01-05 Apple Inc. Programmable clock skewing for timing closure
TWI760722B (zh) * 2019-11-10 2022-04-11 瑞昱半導體股份有限公司 自適性電壓定比量測方法及相關的電子裝置
US11579643B2 (en) * 2019-11-10 2023-02-14 Realtek Semiconductor Corp. Adaptive voltage scaling scanning method and associated electronic device
US11165416B2 (en) 2019-12-03 2021-11-02 Apple Inc. Duty cycle and skew measurement and correction for differential and single-ended clock signals
CN113031736A (zh) * 2019-12-09 2021-06-25 华为技术有限公司 一种电压调节方法和电子设备
CN111107619B (zh) * 2019-12-27 2023-05-16 深圳市联洲国际技术有限公司 一种通信系统的功率控制方法、通信系统及存储介质
US10833582B1 (en) 2020-03-02 2020-11-10 Semiconductor Components Industries, Llc Methods and systems of power management for an integrated circuit
CN112180150B (zh) * 2020-09-29 2023-04-07 山东云海国创云计算装备产业创新中心有限公司 一种服务器的多点电压检测方法、系统及相关组件
CN112241614B (zh) * 2020-10-09 2021-05-18 广芯微电子(广州)股份有限公司 一种时钟延时链延时的检测方法、系统及电子设备
US11249530B1 (en) 2020-11-25 2022-02-15 Qualcomm Incorporated Adaptive voltage controller
CN115220508A (zh) * 2021-04-15 2022-10-21 中兴通讯股份有限公司 电压调整方法、装置、计算机设备和可读介质
CN113641550B (zh) * 2021-06-16 2024-03-22 无锡江南计算技术研究所 一种处理器功耗管控方法及装置
US11874717B2 (en) 2022-02-09 2024-01-16 Microsoft Technology Licensing, Llc PSU control based on PSU temperature
CN115903976B (zh) * 2022-11-01 2023-10-27 广州鸿博微电子技术有限公司 数字集成电路功耗控制方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241374A (zh) * 2007-02-06 2008-08-13 国际商业机器公司 用于调节电压电源的设备、系统和方法
CN101398692A (zh) * 2007-09-24 2009-04-01 联发科技股份有限公司 电子系统
US8046601B1 (en) * 2006-12-21 2011-10-25 Marvell International Ltd. Closed loop voltage control using adjustable delay lines

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1176496A1 (en) * 2000-07-24 2002-01-30 Hewlett-Packard Company, A Delaware Corporation Voltage regulation in an integrated circuit
US7281140B2 (en) * 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US7437580B2 (en) 2004-05-05 2008-10-14 Qualcomm Incorporated Dynamic voltage scaling system
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US7552346B2 (en) * 2006-05-03 2009-06-23 International Business Machines Corporation Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index
US8060765B1 (en) * 2006-11-02 2011-11-15 Nvidia Corporation Power estimation based on block activity
US7921312B1 (en) 2007-09-14 2011-04-05 National Semiconductor Corporation System and method for providing adaptive voltage scaling with multiple clock domains inside a single voltage domain
US8051312B2 (en) * 2008-05-20 2011-11-01 Advanced Micro Devices, Inc. Apparatus and method for reducing power consumption by an integrated circuit
CN101515312B (zh) 2008-12-03 2012-07-18 复旦大学 一种fpga逻辑单元模型及其通用装箱算法
US8271809B2 (en) * 2009-04-15 2012-09-18 International Business Machines Corporation On-chip power proxy based architecture
KR101573343B1 (ko) 2009-06-16 2015-12-02 삼성전자주식회사 플립플롭 회로 및 이를 구비하는 컴퓨터 시스템
US8527794B2 (en) * 2010-05-27 2013-09-03 Advanced Micro Devices, Inc. Realtime power management of integrated circuits
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
CN201887663U (zh) 2010-11-17 2011-06-29 东南大学 一种面向低功耗应用的动态电压调节系统
US20120129545A1 (en) * 2010-11-19 2012-05-24 IIlume Software, Inc. Systems and methods for selectively invoking positioning systems for mobile device control applications using multiple sensing modalities
CN102221671B (zh) 2011-03-30 2013-04-03 中国科学院计算技术研究所 信号稳定性检测器及时延测试装置
US8635483B2 (en) * 2011-04-05 2014-01-21 International Business Machines Corporation Dynamically tune power proxy architectures
US8650428B2 (en) * 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046601B1 (en) * 2006-12-21 2011-10-25 Marvell International Ltd. Closed loop voltage control using adjustable delay lines
CN101241374A (zh) * 2007-02-06 2008-08-13 国际商业机器公司 用于调节电压电源的设备、系统和方法
CN101398692A (zh) * 2007-09-24 2009-04-01 联发科技股份有限公司 电子系统

Also Published As

Publication number Publication date
WO2013172787A1 (en) 2013-11-21
US9323320B2 (en) 2016-04-26
US20130311799A1 (en) 2013-11-21
CN105955438A (zh) 2016-09-21
CN103425223B (zh) 2016-06-08
CN103425223A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN105955438B (zh) 电压调整装置与方法、移动装置及其运行方法
CN103425222B (zh) 电压调整系统与电压调整方法
CN103218026A (zh) 电压调整装置与方法、移动装置及使其运行的方法
CN103207657A (zh) 电压调整装置与方法、移动装置及使其运行的方法
CN105190465B (zh) 用于集成无电容低压差(ldo)电压调节器的数字辅助调节
US20130311792A1 (en) Voltage scaling architecture on system-on-chip platform
CN105960620B (zh) 动态电压裕度恢复
TWI528168B (zh) 微處理器、操作微處理器的方法以及電腦程式產品
Salehi et al. Dynamic voltage and frequency scheduling for embedded processors considering power/performance tradeoffs
US20160054788A1 (en) Parameter-Based Sensor Selection
US11435798B2 (en) Adaptive on-chip digital power estimator
CN108292157A (zh) 处理器核能量管理
US10147464B1 (en) Managing power state in one power domain based on power states in another power domain
CN108292161A (zh) 具有工作负载适配的热传感器最大温度的集成电路热节流
WO2018148665A1 (en) Systems and methods for coherent power management
CN111164537A (zh) 用于提高电路的电源性能的准确电压控制
WO2019133283A1 (en) Energy-aware power sharing control
US20240126353A1 (en) Current Measurement for Power Converter Circuits
US20210096635A1 (en) Power control based on performance modification through pulse modulation
US20190064907A1 (en) Early pre-charge enablement for peak power application in netzero energy devices
US20210208659A1 (en) Apparatus and method to detect power supply security attack and risk mitigation
TW202226016A (zh) 安全的裝置電力啟動設備及方法
US9547028B2 (en) Electronic device and method
US11573624B1 (en) System for providing power to low power systems
Keller Energy-efficient system design through adaptive voltage scaling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181016

Termination date: 20191107

CF01 Termination of patent right due to non-payment of annual fee