CN110058976A - 集成电路的热管理 - Google Patents

集成电路的热管理 Download PDF

Info

Publication number
CN110058976A
CN110058976A CN201811516413.XA CN201811516413A CN110058976A CN 110058976 A CN110058976 A CN 110058976A CN 201811516413 A CN201811516413 A CN 201811516413A CN 110058976 A CN110058976 A CN 110058976A
Authority
CN
China
Prior art keywords
power
processor
fpga
temperature
group
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
CN201811516413.XA
Other languages
English (en)
Inventor
M·D·赫顿
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110058976A publication Critical patent/CN110058976A/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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60HARRANGEMENTS OF HEATING, COOLING, VENTILATING OR OTHER AIR-TREATING DEVICES SPECIALLY ADAPTED FOR PASSENGER OR GOODS SPACES OF VEHICLES
    • B60H1/00Heating, cooling or ventilating [HVAC] devices
    • B60H1/00642Control systems or circuits; Control members or indication devices for heating, cooling or ventilating devices
    • B60H1/00814Control systems or circuits characterised by their output, for controlling particular components of the heating, cooling or ventilating installation
    • B60H1/00878Control systems or circuits characterised by their output, for controlling particular components of the heating, cooling or ventilating installation the components being temperature regulating devices
    • B60H1/00899Controlling the flow of liquid in a heat pump system
    • B60H1/00921Controlling the flow of liquid in a heat pump system where the flow direction of the refrigerant does not change and there is an extra subcondenser, e.g. in an air duct
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60HARRANGEMENTS OF HEATING, COOLING, VENTILATING OR OTHER AIR-TREATING DEVICES SPECIALLY ADAPTED FOR PASSENGER OR GOODS SPACES OF VEHICLES
    • B60H1/00Heating, cooling or ventilating [HVAC] devices
    • B60H1/22Heating, cooling or ventilating [HVAC] devices the heat being derived otherwise than from the propulsion plant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • 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
    • 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/3243Power saving in microcontroller unit
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/02Manufacture or treatment of semiconductor devices or of parts thereof
    • H01L21/04Manufacture or treatment of semiconductor devices or of parts thereof the devices having potential barriers, e.g. a PN junction, depletion layer or carrier concentration layer
    • H01L21/48Manufacture or treatment of parts, e.g. containers, prior to assembly of the devices, using processes not provided for in a single one of the subgroups H01L21/06 - H01L21/326
    • H01L21/4814Conductive parts
    • H01L21/4871Bases, plates or heatsinks
    • H01L21/4882Assembly of heatsink parts
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/34Arrangements for cooling, heating, ventilating or temperature compensation ; Temperature sensing arrangements
    • H01L23/36Selection of materials, or shaping, to facilitate cooling or heating, e.g. heatsinks
    • H01L23/367Cooling facilitated by shape of device
    • H01L23/3675Cooling facilitated by shape of device characterised by the shape of the housing
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/34Arrangements for cooling, heating, ventilating or temperature compensation ; Temperature sensing arrangements
    • H01L23/36Selection of materials, or shaping, to facilitate cooling or heating, e.g. heatsinks
    • H01L23/367Cooling facilitated by shape of device
    • H01L23/3677Wire-like or pin-like cooling fins or heat sinks
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/34Arrangements for cooling, heating, ventilating or temperature compensation ; Temperature sensing arrangements
    • H01L23/36Selection of materials, or shaping, to facilitate cooling or heating, e.g. heatsinks
    • H01L23/373Cooling facilitated by selection of materials for the device or materials for thermal expansion adaptation, e.g. carbon
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/34Arrangements for cooling, heating, ventilating or temperature compensation ; Temperature sensing arrangements
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Materials Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Thermal Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Computing Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Power Sources (AREA)

Abstract

一种系统包括可编程逻辑器件(PLD)和处理器。所述处理器确定与PLD的多个部分的相应部分相关联的多组功率值。所述处理器还基于与PLD相关联的多组功率值和平台数据来确定多个部分中的每个部分的温度值。附加地,处理器基于多组功率值来生成指示多个部分中的每个部分的预期功率量的功率图。此外,处理器生成指示多个部分中的每个部分的预期温度值的热图。

Description

集成电路的热管理
背景技术
本公开一般涉及管理集成电路以防止过热。更具体地,本公开涉及用于主动监视集成电路的温度和功率以及基于所监视的温度和功率来控制集成电路的操作的系统和方法。
该部分旨在向读者介绍可能与下面描述和/或要求保护的本公开的各个方面有关的技术的各个方面。相信该讨论有助于向读者提供背景信息以促进更好地理解本公开的各个方面。因此,应该理解,这些陈述应该从这个角度来理解,而不是作为对现有技术的承认。
可编程逻辑器件是一类集成电路,其可被编程以执行各种操作。当可编程逻辑器件的温度超过可编程逻辑器件的工作温度时,发生过热。与其他电子设备一样,过热可能会降低可编程逻辑器件的性能,并且在某些情况下,可能会损坏可编程逻辑器件或其组件。
在一些情况下,温度传感器可用于检测与可编程逻辑器件相关联的温度。然而,温度传感器通常检测与可编程逻辑器件的特定区域相关联的温度。与可编程逻辑器件的其他区域相关联的温度可以与温度传感器所服务的区域的温度不同,使得难以识别可编程逻辑器件的那些其他区域中的过热。
附图说明
通过阅读以下详细描述并参考附图,本公开的优点将变得显而易见,其中:
图1是根据本公开的实施例的系统的框图,该系统可以生成集成电路的功率图和热图并使用功率图和热图来控制集成电路;
图2是根据本公开的实施例的包括多个可编程逻辑扇区的集成电路的框图;
图3是根据本公开的实施例的可以细化集成电路的功率图和热图的系统的框图;
图4是根据本公开的实施例的基于功率图和热图来控制集成电路的过程的流程图;
图5是根据本公开的实施例的用于生成集成电路的功率图和热图的过程的流程图;
图6是根据本公开的实施例的集成电路的一部分的示意图;
图7是根据本公开的实施例的集成电路的一部分,其包括与集成电路的信道和收发器块相关联的功率值;
图8是示出了根据本公开的实施例的集成电路的作为结温的函数的静态功率的曲线图;
图9是根据本公开的实施例的功率图及其与集成电路的关系的示图;
图10是根据本公开的实施例的集成电路的几个实施例的示图;
图11是根据本公开的实施例的功率图及其与集成电路的关系的示图;
图12是根据本公开的实施例的与集成电路的各种操作场景相关联的功率图和热图的示图;
图13是根据本公开的实施例的细化功率图和热图的过程的流程图;以及
图14是根据本公开的实施例的用于控制集成电路的操作的过程的流程图。
具体实施方式
下面将描述本公开的一个或多个具体实施例。为了提供这些实施例的简明描述,并未在说明书中描述实际实现的所有特征。应当意识到,在任何此类实际实现方式的开发中,如在任何工程或设计项目中,必须做出许多特定于实现方式的决策以实现开发者的特定目标,例如遵守可能因实施方式而异的与系统相关的和与业务相关的约束。此外,应该意识到的是,这种开发工作可能是复杂且耗时的,但是对于受益于本公开的普通技术人员来说仍然是设计、制造和制造的常规任务。
当介绍本公开的各种实施例的元件时,词语“一”、“一个”和“该”旨在表示存在该元件中的一个或多个。术语“包括”、“包含”和“具有”旨在是包含性的,并且意味着可能存在除所列元件之外的其他元件。另外,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也结合了所述特征的另外的实施例的存在。此外,短语A“基于”B旨在表示A至少部分地基于B。此外,除非另有明确说明,否则术语“或”旨在包含性的(例如,逻辑OR)而不是排他性的(例如,逻辑异或)。换句话说,短语A“或”B旨在表示A、B或A和B两者。
本公开一般涉及控制集成电路的操作。更具体地,可以生成和改进(即,更新)集成电路的功率图和热图,使得它们用于控制集成电路的操作。不期望的功率水平或温度可能导致过热,这可能损害集成电路的性能或损坏集成电路或其部件。例如,某些功率水平或过热可能导致存储可编程逻辑器件结构的值的配置随机存取存储器存储不正确的值或丢失存储的值,这可能影响集成电路的操作。
考虑到前述内容,在一些实施例中,控制器或其他合适的设备可以经由设置在集成电路的某些部分上的温度传感器来接收温度数据。另外,控制器可以从集成电路的加速器功能单元(AFU)、电压调节器等接收功率数据。基于由这些组件获取的数据和其他已知信息(例如,收发器配置、入射系数矩阵、AFU时隙大小和总体),控制器可以更准确地确定集成电路的不同部分的温度和功率。在一个实施例中,控制器可以使用集成电路的各个部分的所确定的温度和功率特性来产生与集成电路相关联的热图和功率图。
为了检测正在利用不期望的功率量和/或在不期望的温度下工作的集成电路的部分,控制器可以查阅集成电路的热图和功率图以管理集成电路的操作。也就是说,通过利用热图和功率图,控制器可以调整集成电路的操作,以减少或防止集成电路吸收过量的电功率和在任何特定区域中过热。
考虑到前述内容,图1示出了可以生成集成电路12的功率图和热图的系统10的框图。设计者可以指定要实现的程序或电路设计,例如Open CL程序,其可以使设计者能够更高效和容易地提供编程指令以实现集成电路12的一组可编程逻辑,而不需要某些计算机编程语言(例如,Verilog或VHDL)的特定知识。
在某些实施例中,设计者可以使用设计软件14(例如,Intel公司的Quartus版本)来实现它们的电路设计。设计软件14可以使用编译器16将程序转换成机器可读指令,该机器可读指令表示提供给设计软件14到主机18和集成电路12的程序。例如,集成电路12可以接收一个或者更多内核程序(比特流)20,其描述了应该存储在集成电路12中的硬件实现方式。主机18可以接收主机程序22,主机程序22可以由内核程序(比特流)20实现。为了实现主机程序22,主机18可以经由通信链路24将指令从主机程序22传送到集成电路12,通信链路24可以是例如直接存储器存取(DMA)通信或快速外围组件互连(PCIe)通信。在一些实施例中,内核程序(比特流)20和主机18可以实现在集成电路12上分区26的配置和/或部分重新配置。分区26可以是集成电路12上的具有可适应逻辑的区域,所述可适应逻辑便于集成电路12的配置和/或部分重新配置,使得可以在集成电路12的运行时之前和/或期间添加、移除和/或交换某些功能。例如,集成电路12可以是可编程逻辑器件(PLD),并且分区26可以是集成电路12的可以由集成电路12的终端用户配置的区域。
设计者还可以使用设计软件14来生成集成电路12的功率图28和热图30。更具体地,可以处理(例如,发送到编译器16)设计软件14的处理器32可以基于设计软件14中指定的集成电路12的硬件实现方式来生成功率图28和热图30。例如,功率图28和热图30可以分别涉及集成电路12的部分的预期的功耗和预期的温度,并且可以基于集成电路12要采用的硬件实现方式来确定预期的功耗和温度。例如,功率图28和热图30可以分别提供与扇区化的FPGA的每个扇区相关联的或用于集成电路12的虚拟区域(例如可以由终端用户定义的分区26的部分)的功率值和温度值的估计。另外,主机18可以接收处理器32生成的功率图28和热图30。
集成电路12可以是可编程逻辑器件,例如现场可编程门阵列(FPGA)40,如图2所示。出于该示例的目的,FPGA 40被称为FPGA,但是应该理解,该设备可以是任何合适类型的可编程逻辑器件(例如,专用集成电路和/或应用特定标准产品)。在一个示例中,FPGA 40是美国专利申请第14/460,548号“Programmable Circuit Having Multiple Sectors”中描述的类型的扇区化的FPGA。
在图2的示例中,FPGA 40可以包括收发器电路44,其用于驱动FPGA40的信号以及用于从其他设备接收信号。互连资源46可用于通过FPGA 40路由信号,例如时钟或数据信号。图2的FPGA 40是扇区化的,意味着可编程逻辑资源可以通过多个离散的可编程逻辑扇区48分布。每个可编程逻辑扇区48可以包括多个可编程逻辑元件50,其具有由配置存储器52(例如,配置随机存取存储器(CRAM))定义的操作。可编程逻辑元件50可以包括组合或顺序逻辑电路。例如,可编程逻辑元件50可以包括查找表、寄存器、多路复用器、路由线等。设计者可以对可编程逻辑元件50进行编程以执行各种所需功能。电源54可以向配电网络(PDN)56提供电压和电流源,PDN 56将电力分配给FPGA 40的各种组件。在一些实施例中,可以将不同的电压或电流供应给FPGA 40的不同的扇区48或电路区域(例如,一个或多个扇区48的组)。操作FPGA 40的电路使得从配电网络56吸取电力。
在FPGA 40上可以存在任何合适数量的可编程逻辑扇区48。实际上,虽然这里示出了29个可编程逻辑扇区48,但是应当意识到,在实际实现方式中可以出现更多或更少的可编程逻辑扇区48(例如,在某些情况下,在50到100个扇区或更多的数量级)。每个可编程逻辑扇区48可以包括控制可编程逻辑扇区48的操作的扇区控制器(SC)58。每个扇区控制器58可以与设备控制器(DC)60通信。每个扇区控制器58可以接受来自设备控制器60的命令和数据,并且可以基于来自设备控制器60的控制信号从其配置存储器52中读取数据并将数据写入其配置存储器52中。除了这些操作之外,扇区控制器58可以增加许多附加能力。
扇区控制器58和设备控制器60可以实现为状态机和/或处理器。例如,扇区控制器58或设备控制器60的每个操作可以实现为包括控制程序的存储器中的单独例程。该控制程序存储器可以固定在只读存储器(ROM)中或存储在可写存储器中,例如随机存取存储器(RAM)。ROM具有的大小可以大于用于仅存储每个例程的一个副本的大小。这可以允许每个例程具有多个变体,这取决于本地控制器可以处于的“模式”。当控制程序存储器被实现为RAM时,RAM可以被写入新例程,以将新的操作和功能实现到可编程逻辑扇区48中。这可以以高效且易于理解的方式提供可用的可扩展性。这可能是有用的,因为新命令可能在扇区内引起大量本地活动,代价是设备控制器60和扇区控制器58之间仅有少量通信。
因此,每个扇区控制器58可以与设备控制器60通信,设备控制器60可以协调扇区控制器58的操作并传送从FPGA设备40外部发起的命令,例如由处理器32发起的命令。为了支持该通信,互连资源46可以充当设备控制器60和每个扇区控制器58之间的网络。互连资源46可以支持设备控制器60与每个扇区控制器58之间的各种信号。例如,这些信号可以作为通信分组传输。
FPGA 40可以是电编程的。利用电编程布置,可编程逻辑元件50可以包括一个或多个逻辑元件(导线、栅极、寄存器等)。例如,在编程期间,可以使用输入/输出引脚和输入/输出电路将配置数据加载到配置存储器52中。在一个示例中,配置存储器52可以实现为配置随机存取存储器(CRAM)单元。这里描述的基于RAM技术的配置存储器52的使用仅旨在作为一个示例。此外,配置存储器52可以在FPGA 40的各个可编程逻辑扇区48中分布(例如,作为RAM单元)。配置存储器52可以提供控制相关联的可编程逻辑元件50或互连资源46的可编程组件的状态的相对应的静态控制输出信号。配置存储器52的输出信号可以应用于控制可编程逻辑元件50或互连资源46的可编程组件的状态的金属氧化物半导体(MOS)晶体管的栅极。
如上所述,集成电路12可以接收在集成电路12上实现的一个或多个内核程序(比特流)20。考虑到这一点,图3是系统70的框图,系统70可用于细化功率图28和热图30以及使用功率图28和热图30控制集成电路。这些区域可对应于内核程序(比特流)20。例如,集成电路12(例如,FPGA 40)可以包括静态区域72和若干部分重配置区域74。虽然所示实施例示出了单个静态区域72和两个部分重配置区域74,但是应该注意到集成电路12可包括任何合适数量的静态区域72和部分重配置区域74。集成电路12的区域(例如,静态区域72和部分配置区域74)可由各方编程和/或设计。例如,区域可以由集成电路12的制造商、用户(即,用户定义的)、第三方或其组合来编程和/或设计。静态区域72对应于集成电路12上的通常不被配置为重新配置(即,重新编程)的区域。部分重配置区域74对应于集成电路12上的可以被修改(即,部分地重新配置)以实现新逻辑的区域。
集成电路12的各个区域可以对应于与集成电路12相关联的不同功能。例如,在所示实施例中,静态区域72与同集成电路12相关联的控制功能相关联。例如,静态区域72可以与控制集成电路12和/或其他集成电路的另一个处理器76接合。应注意,处理器76与图1的处理器32不同之处在于,当处理器32可以执行设计软件14并生成功率图28和热图30时,处理器76可以在FPGA 40上实现内核程序(比特流)20之后控制FPGA 40的操作。如下所述,处理器76还可以更新功率图28和热图30。另外,在所示实施例中,部分重配置区域74对应于加速器功能单元(AFU),其可以用于执行指定功能。例如,部分重配置区域74中的每个可以执行由用户经由设计软件14定义的某些计算。
如另外所示,处理器76通信地耦合到存储器78,存储器78包括可由处理器76执行的热管理指令80。热管理指令80可包括集成电路12的功率图28和热图30(例如,经由执行设计软件14生成的功率图28和热图30)以及关于处理器76应如何基于功率图28和热图30管理集成电路12的指令。例如,基于热管理指令80,处理器76可以确定应该分配哪个部分重配置区域74来执行计算。另外,处理器76可以随时间细化(例如,更新、修改)功率图28和热图30。例如,可以在FPGA 40实现存储在存储器78上的内核程序(比特流)20(例如,在热管理指令80内)之前生成功率图28和热图30,并且处理器76可以在硬件配置已经实现到FPGA 40之后,基于FPGA 40改变功率图28和热图30。在下面更详细地讨论热图28和功率图30的生成和细化。
考虑到前述内容,图4是用于控制集成电路(例如,图1的集成电路12或图2的FPGA40)的过程100的流程图。过程100可以通过分别执行设计软件14和热管理指令78由处理器32和76的组合来执行。另外,在继续更深入地讨论过程100之前,应该注意过程100提供了一种通用技术,该技术在下面的图5-图12中详细说明。即,图4和过程100旨在提供本公开的特征的概述,并且在过程100的讨论之后提供关于过程100的元素的更多细节。
在框102处,处理器32生成FPGA 40的功率图28。在一个实施例中,基于FPGA 40的特性以及其他因素(例如,包括FPGA 40的系统的特性)生成功率图28。另外,功率图28可以特定于FPGA 40的每个扇区48。此外,可以在FPGA 40上实现内核程序(比特流)20的至少一部分之前生成功率图28。关于生成功率图28的附加细节将在下面参考图5进行描述。
在框104处,处理器32生成热图30。热图30可以针对FPGA 40的每个扇区48提供预期温度,并且可以至少部分地基于在框102处生成的功率图28来生成热图30。与功率图28一样,可以在FPGA 40上实现内核程序(比特流)20的至少一部分之前生成热图30。换句话说,框102和104可以在FPGA 40上实现内核程序(比特流)20所定义的硬件实现之前执行。下面将参考图5描述关于生成热图30的附加细节。
在框106处,处理器76生成更新的功率图。例如,在FPGA 40实现了程序(比特流)20之后,处理器76可以接收关于FPGA 40的操作的数据并且细化或以其他方式修改在框102处生成的功率图28。类似地,在框108处,处理器76可以生成可以基于更新的功率图和热图30的更新的热图。更新的热图可以是在框84处生成的热图30的修改版本,并且可以基于在实现内核程序(比特流)20之后FPGA 40如何操作来生成更新的热图。
在框110处,处理器76可以使用更新的功率图和更新的热图来控制FPGA 40。例如,如下所述,处理器76可以接收关于FPGA 40的操作的数据。利用数据和更新的功率图和热图,处理器76可以确定FPGA 40的一部分的功率或温度是否是不期望的(例如,超过阈值),在这种情况下,处理器76可以发送命令以改变FPGA 40如何操作,以及其他动作。
考虑到对框102和104的讨论,图5是用于生成诸如集成电路12或FPGA 40的集成电路的功率图28和热图30的过程120的流程图。过程120可以由处理器32通过执行存储在存储器24中的设计软件14来执行。另外,可以在将内核程序(比特流)20实现到FPGA 40之前执行过程120。此外,在继续之前,应当注意,下面通过参考图6-图10来解释过程120的细节。
在框122处,处理器32确定集成电路12的收发器功率。收发器功率包括集成电路12的收发器(例如,收发器组)所消耗的预期功率。现在参照图6,其是FPGA 40(和集成电路12)的实施例的一部分的示意图,FPGA40包括16个收发器组140。在其他实施例中,FPGA 40可包括更少或更多的收发器组140。每个收发器组140包括六个信道142,其可用于FPGA 40与诸如处理器76之类的其他设备之间的通信。在FPGA 40的其他实施例中,收发器组140可包括少于或多于六个信道142(例如,一个、两个、三个、四个、五个、七个或更多个信道142)。另外,信道142可以允许以系统70的各种方式和/或组件进行若干通信。例如,信道142中的一些可以用于以太网通信、与PCIe块144的通信和/或与处理器76的通信。
除了收发器140之外,FPGA 40还包括四个快速外围组件互连(PCIe)块144,其还可以用于允许FPGA 40与可以包括在系统70中的组件(例如处理器76或存储器)通信。虽然FPGA 40的所示实施例包括四个PCIe块144,但FPGA 40的其他实施例可包括少于或多于四个PCIe块144(例如,一个、两个、三个、五个或更多个)。
处理器32可以通过执行设计软件14来确定收发器功率。例如,设计软件14可以包括关于将由FPGA 40执行的各种操作、FPGA 40使用的电路组件(例如,逻辑元件)的集合、可以包括在FPGA 40中的收发器(例如,收发器块140)数量等的数据。基于FPGA 40根据所提供的设计采用的硬件实现方式,处理器32可以确定将在FPGA 40中实现哪个收发器块140和PCIe块144。然后,处理器32可以确定要由收发器块140和PCIe块144消耗的预期的功率量。例如,与收发器块140的类型或者收发器块140使用的通信方式(例如,经由以太网通信、PCIe通信)相关联的功耗值可以由设计软件14指定,并且处理器32可以使用这些功耗值和相对应数量的收发器块140、通信介质、PCIe块144以及FPGA 40的类似物来计算收发器功率。
更具体地,处理器32可以确定收发器块140的每个信道142的功耗值。例如,基于提供给设计软件14的FPGA 40的电路设计,处理器32可以确定收发器块140的多少信道142将用于不同类型的通信。另外,处理器32可以基于将用于每种类型的通信的信道142的数量以及当信道142使用特定类型的通信时预期要消耗的功率量来确定收发器功率。换句话说,不同的功率量(例如,毫瓦的量变化)可以与不同的通信方法(例如,经由PCIe或以太网通信)相关联,并且处理器32可以基于要使用的通信类型来确定每个信道142的功率量。然后可以通过对与每个信道142相关联的所有功耗值求和来确定收发器功率。
另外,每个信道的功耗可以分类为数字功率和模拟功率。例如,处理器32可以生成表格,该表格指示与列146中的收发器组140A的信道142相关联的数字功率和与列148中的信道142相关联的模拟功率。然后,可以通过对来自列146和148中的每一个的条目求和来确定与相应的收发器组140的每个信道142相关联的数字和模拟功耗。
为了进一步说明收发器功率确定(即,在框122处执行的确定),提供了图7。图7是FPGA 40的实施例的一部分的图,其示出了与收发器块140的信道142相关联的功率值(例如,“252”、“253”和“303”)。如上所述,各种各样的功耗值可以与由给定信道使用的通信类型相关联。在所示实施例中,功率值与以太网通信、PCIe通信和经由处理器互连的通信相关联,所述处理器互连例如超路径互连( UPI)。不包括功率值的信道142(例如,信道142B)对应于不期望使用的信道142。在任何情况下,如上所述,处理器32可以通过对与信道142相关联的功耗值求和来确定由相应收发器组140消耗的功率。
返回图5,在框124处,处理器32可以确定与集成电路12(例如,FPGA40)相关联的默认静态功率。静态功率可以指除了部分重配置区域74之外的FPGA 40的部分所使用的功率量。例如,静态功率包括由收发器块140和静态区域72使用的功率。然而,因为可以在框122处计算收发器功率,所以处理器32可以在框124处不计算或重新计算与收发器块140相关联的功率。换句话说,在一些实施例中,在框124处,处理器32可以确定与静态区域74相关联的功率量而不是与收发器块140相关联的功率量。
在一些实施例中,静态功率可以被确定为FPGA 40的结温的函数。图8是示出了作为结温的函数的FPGA 40的静态功率的曲线图160。轴162包括结温值(以摄氏度为单位),而轴164包括FPGA 40的功率值(以瓦特为单位)。曲线图160包括两种可能情况的数据。线166表示FPGA 40的预期操作。换句话说,线166反应的数据表示基于历史数据、FPGA 40的组件的预期操作、FPGA 40的操作模拟等被预期发生的静态功率。另一方面,线168表示当FPGA40在最大功耗条件下操作时消耗的预期静态功率,其可以由FPGA 40的制造商指定。
可以将曲线图160中呈现的数据提供给设计软件14,并且处理器32可以使用这样的数据来确定FPGA 40所消耗的预期静态功率。另外,基于针对整个FPGA 40确定的静态功率,处理器32可以确定与FPGA 40的每个扇区48相关联的预期静态功率。例如,在给定结温下与每个扇区48相关联的静态功率可以通过将针对结温的曲线图160指示的功率值除以FPGA40的扇区48的数量来确定。因此,处理器32可以确定FPGA 40的预期静态功率量以及FPGA 40的每个扇区49的预期的静态功率量。
返回参考图5,在框126处,处理器32可以确定与FPGA 40的静态区域72相关联的动态功率的量。动态功率可以指当集成电路(例如,集成电路12、FPGA 40)正在主动操作时使用的功率量。例如,FPGA 40的动态功率是指当FPGA 40在执行计算时由FPGA 40消耗的功率。与静态区域72相关联的动态功率是在FPGA 40的动态操作期间由静态区域72使用的功率量。
更具体地,处理器32可以基于内核程序(比特流)20来确定与静态区域72相关联的动态功率量。例如,处理器32可以确定要由静态区域72合并的硬件实现方式并且估计当FPGA 40动态操作(例如,执行计算)时这种硬件实现方式将使用的功率量。例如,内核程序(比特流)20可以包括网表,该网表是FPGA 40的电子组件以及组件所连接的节点的列表。例如,FPGA 40的一些组件(例如,逻辑元件)可以从一个或多个电压源(例如,电源轨)接收电力。这样,处理器32可以基于FPGA 40的组件和组件的连接来确定动态功率的估计量。例如,可以使用以下公式确定功率:
P=CV2Fα (1)
其中P是功率,C是电容,V是电压,F频率,并且α是活动因子。处理器32可以基于内核程序(比特流)20来确定C、V和F的值。例如,可以基于用于实现内核程序(比特流)20的电路组件或元件来定义这些值。活动因子(即,α)是一个乘数,用于考虑FPGA 40在运行时的预期有效或无效。处理器32可以基于设计者输入来确定α的值。例如,用户可以在设计内核程序(比特流)20时指定α的值。在一些实施例中,可以基于呈现给设计者的问题的答案来确定α的值。例如,可以在设计者设计软件(例如,内核程序(比特流)20)时向设计者呈现关于FPGA 40的预期使用的问题(例如,FPGA 40将用于执行何种计算)。
处理器32还可以以与上述类似的方式估计静态区域72的每个扇区48的动态功率。另外,每个扇区48的功率值可以包括在由处理器32生成的功率图28中。考虑到这一点,图9包括功率图28的实施例和FPGA 40的实施例的图。所示功率图28是表示FPGA 40的扇区48的电子表格。例如,列192和194的单元格对应于收发器块140。列196和198中的单元格以及包括在单元格的组198中的单元格对应于静态区域72的扇区48。
返回参考图5,在框128处,处理器32可以确定与部分重配置区域74相关联的动态功率。通常,处理器32可以类似于在框126处确定静态区域72的动态功率的方式来确定部分重配置区域74的动态功率。更具体地,处理器32可以基于内核程序(比特流)20来确定FPGA40的部分重配置区域74的数量和位置。例如,图10包括FPGA 40的几个实施例的图。所示实施例中的每一个包括至少一个部分重配置区域74。虽然在图10中提供了三个示例,但是应当注意,在其他实施例中,FPGA 40可以包括不同数量的部分重配置区域74(例如,四个或更多个),并且FPGA 40上的部分重配置区域74的位置可以与说明的实施例不同。
另外,基于内核程序(比特流)20,处理器32可以确定针对FPGA 40的部分重配置区域74的每个扇区48的动态功率的估计。例如,如上所述,内核程序(比特流)20可能包括网表。基于网表,处理器32可以如上所述确定针对包括在部分重配置区域74中的FPGA 40的扇区48的功率。即,使用公式1,处理器32可以基于FPGA 40的组件以及网表所描述的组件的连接来确定动态功率的估计的量。应当注意,用于计算部分重配置区域74的动态功率的α的值可以不同于静态区域72的动态功率的计算中使用的值α。
例如,图11包括示例功率图28和包括两个部分重配置区域74的FPGA40的实施例的图。图11的功率图28包括与部分重配置区域74中的一个(例如,AFU 1)的扇区48相对应的单元的区域200。换句话说,可以针对部分重配置区域74中的每个确定功率图28的各个部分的功率量。实际上,在一些情况下,公式1的α的值可以在不同的部分重配置区域74之间不同。
应当注意,功率图28的与部分重配置区域74相对应的每个部分可以通过各种度量来参数化,所述度量例如频率(即,f)和活动因子(即,α)。在同一设备中组合存在的不同部分重配置区域74,或者在不同时间驻留在可编程逻辑器件(例如,FPGA 40)的相同区域中的不同部分重配置区域74可以具有不同的频率、不同的资源使用以及不同的活动因素。设计软件14知道这些差异,例如资源使用和频率的差异。此外,与特定部分重配置区域74相关联的活动因子可以从用户输入或单独利用特定部分重配置区域74进行的经验测试来获得。
除了与FPGA 40的每个扇区48(例如,静态区域72的扇区48或部分重配置区域74)相关联的动态功率之外,处理器32还可以确定由FPGA 40使用的每个电压源消耗的功率。例如,FPGA 40的各个扇区48可以经由一个或多个电源轨接收电力。处理器32可以基于上述网表和功率确定来确定要从每个电源轨消耗的功率。例如,处理器32可以确定哪些扇区48被供应来自特定电压轨的功率,并且处理器32可以通过对与那些扇区48相关联的功率求和来确定由电压轨供应的功率。
此外,处理器32可以确定FPGA 40消耗的总功率量。可以通过对功耗值求和来做出这种确定。例如,FPGA 40消耗的总功率可以通过对功率图28的每个单元的功耗值求和来确定。
此外,还应注意,可以针对FPGA 40或集成电路12的特定结温生成功率图28。换句话说,可以针对不同的结温生成不同的功率图190。例如,功率图28可以对应于针对一个结温的功耗值,而其他功率图可以对应于其他结温。
返回参考图5,在框130处,处理器32可以确定与系统70相关联的平台数据。平台数据包括关于集成电路12(例如,FPGA 40)以及正在使用的处理器76的性质或类型的信息。例如,平台数据可以包括关于与集成电路12、FPGA 40或处理器76结合使用的集成电路、处理器和硬件的特定型号的数据。可以基于在要结合在FPGA 40上的硬件实现的设计期间来自设计者的用户输入获得平台数据。
关于集成电路12,平台数据可以包括集成电路12的类型、集成电路12的型号以及集成电路12的操作特性。类似地,平台数据还可以包括处理器76的类型、处理器76的型号以及处理器76的操作特性。平台数据还可以包括关于系统70的其他硬件信息,这种信息关于用于冷却集成电路12的散热器。例如,平台数据可以包括关于以下的信息:散热器的型号以及由散热器提供的热管理类型(例如,具有或不具有风扇的散热器或采用液体冷却的散热器)。另外,平台数据可以包括关于将操作系统70的环境的信息。例如,系统70在操作时位于其中的环境的预期环境温度可以包括在平台数据中。此外,平台数据可以包括系统在操作时位于其中的环境的预期气流。
在一些实施例中,可以基于用户输入来获得平台数据。例如,设计软件14可以包括允许设计者输入集成电路12的型号、处理器76、关于要与集成电路12集成的诸如散热器的其他硬件的信息以及关于系统70可以操作的环境的信息(例如预期的环境温度)的接口。例如,设计软件14可以提供下拉框,其允许设计者选择或以其他方式提供关于系统70的信息。
在继续对过程120的讨论之前,应该注意,功率图28可以包括功耗值的范围。例如,虽然可以给出一个值(例如,如图9和图11中所示),但是这样的值可以是与其他消耗功率量相比具有更高的消耗功率量的概率的值。可以使用多个值来提供一系列功耗值。该范围可用于考虑α的不同可能值,FPGA 40的性能是否更可能与典型操作或最大功耗条件相关联、环境温度的变化或与FPGA 40相关联的散热器或冷却系统的操作或其组合。
返回图5,在框132处,处理器32可以基于平台数据来确定入射系数矩阵(ICM)。ICM通常描述FPGA 40消耗的功率与FPGA 40生成的预期热量之间的关系。ICM考虑关于FPGA 40的设计细节(例如,收发器块140、静态区域72和部分重配置区域74)以及平台数据(例如,关于用于冷却FPGA 40的散热器的信息)。还可以基于其他信息来确定ICM,所述其他信息例如收发器功率、默认静态功率、静态区域动态功率等。
在框134处,处理器32可以确定热因子。热因子是描述系统70将如何高效或低效地从FPGA 40移除热量的值或一系列值。此外,热因子描述了预期由FPGA的电功耗生成的热量。换句话说,热因子可以提供在操作期间将由FPGA 40生成的热量的指示。处理器32可以基于平台数据来确定散热因子。例如,可以基于FPGA 40(例如,FPGA 40的型号、FPGA 40的编程方式、FPGA 40的物理组件)、与FPGA 40相关联的其他组件(例如冷却系统或散热器)以及FPGA 40将位于的环境(例如,预期的环境温度)来确定可以由FPGA 40生成的热量的量度以及可以(例如,通过散热器)消散的热量。
在框136处,处理器32可以生成功率图28。如上所述,功率图28指示FPGA 40将消耗的预期功率。例如,功率图28可以指示与FPGA 40的每个扇区48相关联的预期的功率量。功率图28可以对应于特定的结温,并且处理器32可以生成若干功率图28,功率图28中的每个属于特定的结温值。另外,功率图28可以指示FPGA 40的每个扇区48以及每个区域(例如静态区域72和部分重配置区域74)所使用的功率(例如,经由对与包括在FPGA 40的特定区域中的扇区48相关联的功耗值求和)。
在框138处,处理器32可以生成热图30。可以基于功率图28、平台数据、ICM和热因子来生成热图30。换句话说,对于特定硬件配置(例如,要采用的特定集成电路、由内核程序(比特流)20描述的硬件实现以及(例如,通过冷却系统或散热器)要提供的冷却和/或散热程度)、集成电路将在其中操作的环境(例如,预期的环境温度),以及将如何使用集成电路12(例如,FPGA 40)(例如,如活动因子α所描述的),以及功率和温度之间的关系(例如,如热因子所描述的),处理器32可以生成热图30。
考虑到这一点,图12包括与各种场景相关联的功率图28和热图30。例如,在FPGA40采用由内核程序(比特流)20描述的硬件实现之后,FPGA40可能遇到与各种潜在操作场景相关联的每个示出的功率图28和热图30。如图所示,功率图28示出了温度传感器210可以位于何处。尽管温度传感器210可以位于与部分重配置区域74相关联的FPGA 40的区域中,但是在其他实施例中,温度传感器210可以位于FPGA 40上的其他位置。此外,在其他实施例中,可以使用超过一个温度传感器210。温度传感器210可以收集温度传感器210周围的温度数据。另外,温度传感器210可以通信地耦合到FPGA 40、处理器76或者FPGA 40和处理器76两者。
在系统70的操作期间,处理器76可以确定FPGA 40的结温与温度传感器210检测的温度之间的温度差。例如,如图12所示,每个热图30与“ΔT(Delta T)”的值相关联,该值是温度传感器210感测的温度与FPGA40的结温之间的差。例如,热图30可以指示与FPGA 40的每个扇区48相关联的温度。根据热图30,一个扇区48可以与一个温度值相关联,而温度传感器210可以测量同一扇区48的另一个温度值。“ΔT”反映了两个这样的值之间的差异。另外,应当注意,在将内核程序(比特流)20实现到FPGA40中之前,用于确定温度差(即,ΔT)的温度值可以是由处理器32计算的预测值。
如上所述,由内核程序(比特流)20描述的硬件实现可以由集成电路12(例如,FPGA40)合并。在结合硬件实现方式之后,可以细化功率图28和热图30。更具体地,并且如下所述,处理器76可以基于检测到的功率值并且通过将确定的值与用于生成功率图28和热图30的预期值进行比较来更新功率图28和热图30。换句话说,虽然可以估计由处理器32生成的功率图28和热图30,但是可以在实现内核程序(比特流)20之后获得FPGA 40特有的数据,并且处理器76可以基于收集的数据来更新功率图28和热图30。
考虑到上述情况,图13是用于细化功率图28和热图30的过程240的流程图。简而言之,处理器76可以将特定硬件实现到FPGA 40中,所述特定硬件包括被编程为执行某些操作的已知电路组件布置。这样,处理器76可以具有活动因子的值,其可以是每个AFU的统一值。当在FPGA 40上操作AFU时,处理器76可以获得功耗值和热值,以产生关于FPGA 40的操作的功率和热估计的边界条件。
在稍后的时间,处理器76可以接收结合用于FPGA 40的另一硬件实现方式的设计。这样,处理器76可以基于在硬件实现的加载(例如,大约50毫秒)期间的先前功率和热量测量来更新与AFU相对应的功率图28和热图30的部分的估计。当FPGA 40的AFU执行它们各自的任务时,处理器76可以进行额外的电和温度测量并动态调整功率图28和热图30以表示FPGA 40的当前操作。
现在参考图13的细节,在框242处,可以包括统一相关比特流的第一内核程序(比特流)20可以由FPGA 40加载和实现。应当注意,与框242相关联的第一内核程序20可以与如下所述的第二内核程序20不同。更具体地,第一内核程序20可以描述部分重配置区域74的硬件实现,其不同于用于由设计者对FPGA 40进行编程以执行某些期望操作的第二内核程序20所描述的硬件实现方式。在一个实施例中,第一内核程序20可以包括已知的硬件实现方式。例如,结合由第一内核程序20描述的硬件实现可以导致部分重配置区域74的CRAM被编程为执行某些已知操作。例如,对于包括在第一内核程序20中的部分重配置区域的每个扇区48,可以知道活动因子α的值。这样,功率图28和热图30的与第一内核程序20的硬件配置相关联的部分可以被生成为处理器76的基线或参考。在实现第一内核程序20的情况下,如下面关于框244、246、248和250所描述的,处理器76可以进行特定于FPGA 40的若干确定(例如,功耗、每轨电流、结温)。这些确定可用于细化功率图28和热图30。
在框244处,处理器76可以测量FPGA 40的每个轨的电流值。即,可以测量与向DSP40传送电力的电压轨相关联的电流值。例如,FPGA 40可以由处理器76控制,处理器76可以命令FPGA 40以某些操作特性进行操作。例如,处理器76可以使部分重配置区域74以最大输出电平进行操作。处理器76可以检测与经由电压轨传递到FPGA 40的各个部分(例如收发器组140、静态区域72和部分重配置区域74)的功率相关联的电流值。如下所述,可以使用电流测量值来计算测量的功率值,并且可以将测量的功率值与预期的功率值进行比较。
在框246处,处理器76可以基于从温度传感器210接收的温度值和热图30来测量在各种最大操作频率下FPGA 40的结温值。例如,FPGA 40可以以由图12的场景2表示的方式进行操作,其中,FPGA 40的部分重配置区域74的每个扇区48以特定频率或最大频率进行操作。结温可以通过利用来自温度传感器210的数据以及通过在框242处参考与加载到FPGA40上的内核程序20相关联的热图28来由处理器76确定。例如,结温可以是在100、200和300兆赫兹的频率值下确定的。在其他实施例中,可以使用不同的频率值,可以使用更多的频率值,并且两个频率值之间的差异可以不同。例如,结温值可以在50、100、150、200、250、300和350兆赫的频率下进行测量。
基于所确定的结温值,在框248处,处理器76可以生成将结温定义为频率和活动因子α的函数的等式。例如,当活动因子具有恒定值时-如上所述,当使用第一内核程序时可能是这种情况-在各种频率下测量的结温值可用于基于频率来确定结温的等式。
在框250处,处理器76可以确定允许进行更准确的功率和温度确定的参数。更具体地,处理器76可以确定Tj-max参数。Tj-max参数可用于获得不同功率值的最大结温。可以基于某些扇区48在其中操作的频率(例如,存在已知量的功率或与特定频率相关联的功率值的范围)来获得功率值。因此,对于给定频率,可以针对计算的温度值设置排序的最大误差范围。
在框252处,可以将第二内核程序(比特流)20加载到FPGA 40上。换句话说,由第二内核程序(比特流)20描述的硬件实现被合并到FPGA 40上。基于从第一内核程序20的操作收集的功率和温度数据,可以更准确地确定在其他内核程序的操作期间集成电路12的功率和温度特性。举例来说,其他内核程序可以包括可以由FPGA 40的终端用户开发的第二内核程序20。
在框254处,可以由处理器76加载(例如,访问)或生成用于第一内核程序28的功率图28。例如,如上所述,功率图28可以由处理器生成。功率图28还可以存储在存储器78上并且可由处理器76访问。在其他实施例中,处理器76可以生成功率图28。
在框256处,可以基于在框250处生成的参数以及测量值(例如,在框244处测量的电流)来细化(例如,缩放)功率图28。关于测量值,例如电流值,处理器76可以确定电源轨使用的功率量。例如,在框244处可以使用具有已知电压的电功率(例如,经由电压常规或完全集成的电压调节器确定)。利用已知的电压和电流值,处理器76可以确定用于每个电源轨的功率量。
处理器76可以基于所确定的功率量与预期的功率量的比较来修改功率图28。换句话说,处理器76可以基于在框244、246、248和250中进行的芯片特定确定来修改先前生成的功率图28。更具体地,可以将用于给定电源轨的已知功率值与同功率图28相关联的值进行比较,并且可以基于这样的比较来细化功率图28。例如,当用于电源轨的电力值与预测值相差阈值量(例如,百分比值或电量)时,可以修改功率图28以反映与基于从FPGA40获得的数据确定的功率值更相似的功率值。此外,为了考虑在给定时间点可以跟踪多于一个AFU的可能性,在一些实例中,可以单独地利用单个AFU执行这种学习(例如,同时其他AFU被禁用或未被加载(例如,为了隔离特定AFU的功率和/或活动因子))。这样的经验计算还可以包括功率的统计分布(例如,最小值、最大值、平均值、方差)或其他因素,例如作为输入率(即,供应给AFU的数据量)的函数的功率、AFU的操作模式或其他外源信息。这些考虑因素可以被合并到在给定时间点处用于AFU的功率估计中,并且当许多AFU在给定集成电路(例如,FPGA 40)上有效时可以包含概率平均。
在框258处,处理器76可以基于细化的功率图28来细化热图30。换句话说,因为基于功率图30生成热图30,所以对功率图28的改变(例如,由于细化)可能导致功率图30被改变。
应当注意,可以在将第二内核程序(比特流)20加载到FPGA 40上的同时执行在框254、256、258处执行的操作。即,在第二内核程序(比特流)20的实现期间,可以细化先前生成的功率图28。另外,可以基于细化的功率图28来细化热图30。
功率图28和热图30可以在系统70的操作期间继续被细化。即,当FPGA操作40时,处理器76可以对功率图28和热图30进行调整。例如,作为细化的一部分,处理器76可以基于电功率数据来确定针对部分重配置区域74的每个加速器功能单元的活动因子α的值。可以在将第二内核程序(比特流)20加载到FPGA 40上之后或者在将第二内核程序(比特流)20的一部分加载到FPGA 40上之后进行这样的确定。例如,当没有其他加速器功能单元加载到FPGA40上时,可以确定针对给定加速器功能单元的活动因子α的值。
继续对过程240的讨论,在框260处,处理器76可以确定向部分重配置区域74供电的电源轨的电流。在框262,处理器76可以将测量的电流值与预期的电流值进行比较。例如,处理器76可以基于要传递到特定电源轨的电功率的电压来确定用于电源轨的预期电流值。可替换地,处理器76可将基于测量的电流值和已知电压值(例如,从用于电源轨的电压调节器获得的值)确定的测量功率值与预期功率值进行比较。
在框264处,处理器76可以基于在框262处执行的比较来细化功率图28。例如,当测量的功率与预期的功率量不同时,处理器76可以细化功率图28。更具体地,因为在FPGA 40的操作期间,频率、电压和电容的值是可确定的,因此,已知的是,处理器76可以确定活动因子α的值。功率图28可以使用在确定新的预期功率时计算的活动因子来由处理器76细化。也就是说,处理器76可以修改功率图28以更接近地反映FPGA 40实际经历的功率值。类似地,在框266处,处理器76可以基于细化的功率图28来细化热图30。例如,更新的预期功率值可用于确定温度值。
此外,处理器76可以基于在系统70的操作期间收集的数据来改变FPGA 40的性能。改变FPGA的性能可以包括改变部分重配置74的频率(例如,时钟速度),改变输入被供应给部分重配置74的数据速率,改变或限制部分重配置74对诸如存储器带宽的外围设备的可用性,或者可以改变部分重配置74所消耗的功率量的另一机制。考虑到这点,图14是用于控制FPGA 40的操作的过程300的流程图。过程300可以由处理器76或其他合适的处理电路执行。
在框302处,处理器76可以从FPGA 40接收数据和/或接收关于FPGA40的数据。例如,处理器76可以接收与电源轨相关联的电流值、来自电压调节器的电压值以及与FPGA 40相关联的数据,例如热图28、功率图30和关于FPGA 40的信息(例如,FPGA的类型、由内核程序(比特流)20指示的硬件实现)。
在框304处,处理器76可以确定与FPGA 40相关联的功率值和温度值。例如,处理器76可以确定与FPGA的每个电源轨以及每个电源轨的每个部分重配置区域74相关联的功率值。例如,每个部分重配置区域74可以由一个或多个特定电源轨供电,并且处理器76可以确定与那些轨相关联的电力。类似地,基于功耗以及来自热传感器210的检测的温度值,处理器76可以确定与FPGA的部分(例如,扇区48和/或部分重配置区域74)相关联的温度以及由温度传感器210反映的温度和FPGA 40的各个扇区48和/或区域(例如,部分重配置区域74)的预测温度之间的温度差异。
在框306处,处理器76可以确定部分重配置区域74是否消耗超过功率的阈值量的功率量。例如,阈值功率量可以是由功率图28预测的功率量或者高于由功率图28预测的功率量的特定百分比值(例如,10%、20%、25%或任何其他合适的百分比值)。另外或替代地,处理器76可确定与FPGA40的一部分(例如,扇区48或部分重配置区域74)相关联的温度值是否超过阈值。类似于功率值,阈值温度可以是预测温度(例如,如由热图30所指示的)和由温度传感器210指示的或者根据上面提供的描述确定的温度之间的温度差。当既不超过功率阈值也不超过温度阈值时,处理器76可返回到框302并接收关于FPGA 40的数据。
然而,当不止一个部分重配置区域74超过阈值时,处理器76可以前进到框308并且改变部分重配置区域74中的一个或多个的操作。例如,处理器76可以改变超过阈值最多的部分重配置区域74的操作,使得部分重配置区域74在阈值以下操作。
处理器76可以以若干方式改变部分重配置区域74的操作。例如,处理器76可以限制部分重配置区域74的时钟频率。也就是说,处理器76可以使部分重配置区域74操作的频率降低。这种减小将导致部分重配置区域74使用更少的功率并生成更少的热量。作为又一示例,处理器76可以使部分重配置区域74停止执行。也就是说,处理器可以强制部分重配置区域74避免执行操作或使部分重配置区域74断电。处理器改变其中输入被供应给部分重新配置74的数据速率以及改变或限制部分重新配置74对诸如存储器带宽的外围设备的可用性的动作的其他示例。
本文提出和要求保护的技术被引用并应用于实际性质的材料对象和具体实例,其显然改进了本技术领域,因此不是抽象的,无形的或纯理论的。此外,如果附加到本说明书末尾的任何权利要求包含被指定为“用于[执行[功能]...的单元”或“用于执行[功能]......的步骤”的一个或多个元素,意图是这些元素在35U.S.C.l12(f)下进行解释。但是,对于包含以任何其他方式指定的要素的任何权利要求,意图是这些元素不应在35U.S.C.l12(f)下进行解释。
公开的示例实施例
以下编号的条款定义了本公开的某些示例实施例:
条款1.一种热管理系统,包括:
可编程逻辑器件(PLD);以及
第一处理器,其通信地耦合到所述PLD,其中所述第一处理器被配置为:
基于所述PLD的第一设计,基于经由PLD上的硬件实现的一个或多个收发器,确定所述PLD的多个部分的第一组部分的第一组功率值;
基于与所述PLD相关联的结温,确定所述多个部分中的第二组部分的第二组功率值;
确定被配置为执行PLD的一个或多个操作的多个部分的第三组部分的第三组功率值,其中所述第三组功率值与当所述第三组部分正在执行所述一个或多个操作时的一组预期功耗值相对应;
基于第一组功率值、第二组功率值、第三组功率值和与PLD相关联的平台数据,确定PLD的多个部分中的每个部分的温度值;以及
基于第一组功率值、第二组功率值和第三组功率值,生成指示多个部分中的每个部分的预期功率值的功率图;以及
生成指示所述多个部分中的每个部分的预期温度值的热图。
条款2.如权利要求1所述的热管理系统,其中所述PLD包括现场可编程门阵列(FPGA)。
条款3.如条款1或2所述的热管理系统,其中第一处理器被配置为:
基于当所述一个或多个硬件组件正在执行操作时的所述第二组部分中的一个或多个硬件组件的预期活动,确定所述多个部分中的第二组部分的第四组功率值;以及
基于第一组功率值、第二组功率值、第三组功率值、第四组功率值以及与PLD相关联的平台数据,确定PLD的多个部分中的每个部分的温度值。
条款4.如条款1、2或3所述的热管理系统,其中所述平台数据包括关于散热器、预期气流或预期环境温度的信息。
条款5.如条款1、2、3或4所述的热管理系统,包括:第二处理器,所述第二处理器被配置为控制所述PLD的一组操作,其中所述第二处理器被配置为响应于与多个部分中的至少一部分相关联的所述功率图的至少一个预期功率值超过至少一个相应的功率阈值来控制所述一组操作。
条款6.如条款5所述的热管理系统,其中所述至少一个相应的功率阈值与在PLD的操作期间与所述多个部分中的相应的至少一部分相关联的预期功耗值相对应。
条款7.如条款1、2、3或4所述的热管理系统,包括:第二处理器,所述第二处理器被配置为控制所述PLD的一组操作,其中所述第二处理器被配置为响应于与多个部分中的至少一部分相关联的所述热图的至少一个温度值超过至少一个相应的温度阈值来控制所述一组操作。
条款8.如权利要求1或2所述的热管理系统,其中,所述多个部分中的每个部分的温度值至少部分地基于与所述多个部分的相应部分相关联的相应功率值来确定。
条款9.如权利要求1或2所述的热管理系统,其中所述多个部分的所述第三组部分与所述PLD的至少一个部分重配置区域相对应。
条款10.一种热管理系统,包括:
现场可编程门阵列(FPGA),其包括配置存储器、多个收发器块和多个部分,其中所述多个部分包括至少一个静态区域和至少一个部分重配置区域;
温度传感器,其被配置为检测与所述多个部分中的一部分相关联的温度;以及
第一处理器,其通信地耦合到所述FPGA,其中所述处理器被配置为:
接收FPGA的功率图,其中所述功率图指示所述多个部分的多个预期功率量;
接收FPGA的热图,其中所述热图指示所述多个部分的多个预期温度值;
在FPGA的操作期间,从温度传感器接收与所述多个部分中的一部分相关联的温度数据;
接收与被配置为耦合到所述FPGA的一个或多个电源轨相关联的电流数据,其中所述电流数据表示在FPGA的操作期间存在于一个或多个电源轨上的一个或多个电流量;
基于所述电流数据来细化所述功率图;以及
基于所述电流数据来细化所述热图。
条款11.根据权利要求10所述的热管理系统,其中所述处理器被配置为基于根据所述功率图与所述多个部分中的一个部分相关联的电流值与所述一个或多个电流量中的一个之间的差异来细化所述功率图。
条款12.根据权利要求10或11所述的热管理系统,其中所述处理器被配置为:
接收同与所述FPGA相关联的频率和电压相关联的一个或多个值;以及
基于所述电流数据和所述一个或多个值来细化所述功率图。
条款13.如权利要求10、11或12所述的热管理系统,其中所述处理器被配置为响应于与所述多个部分中的至少一部分相关联的热图的预期温度值中的至少一个与温度传感器检测到的温度之间的差异超过阈值来控制所述FPGA的一组操作。
条款14.如权利要求10、11、12或13所述的热管理系统,其中所述热图和所述功率图由与所述第一处理器分开的第二处理器生成。
条款15.一种用于操作现场可编程门阵列(FPGA)的方法,该方法包括:
经由处理器接收FPGA的功率图,其中所述功率图指示FPGA的多个部分的多个预期功率量;
经由所述处理器接收所述FPGA的热图,其中至少部分地基于所述功率图生成所述热图,并且其中所述热图指示所述多个部分的多个预期温度值;
经由所述处理器接收与被配置为耦合到FPGA的一个或多个电源轨相关联的功率数据,其中所述功率数据表示在FPGA的操作期间存在于一个或多个电源轨上的一个或多个电流量;以及
经由所述处理器基于所述功率数据,确定FPGA的多个部分的多个功率量;
经由处理器确定所述多个功率量中的至少一个是否超过与所述多个部分的至少一部分相关联的相应功率阈值;以及
响应于所述功率量中的至少一个超过相应功率阈值,经由所述处理器改变所述至少一个部分的至少一个操作。
条款16.如条款15所述的方法,其中所述相应功率阈值与大于所述多个预期功率量中的预期功率量的值相对应。
条款17.如条款15或16所述的方法,包括:
在FPGA的操作期间,经由所述处理器从温度传感器接收与多个部分中的一部分相关联的温度数据;
经由所述处理器确定温度数据是否超过与所述至少一个部分相关联的相应温度阈值;以及
响应于所述温度数据超过相应的温度阈值,经由所述处理器改变所述至少一个操作。
条款18.如条款17所述的方法,包括:
基于所述功率数据,经由所述处理器确定与所述至少一个部分相关联的温度;以及
确定当与所述至少一个部分相关联的温度超过相应的温度阈值时,所述温度数据是否超过相应的温度阈值。
条款19.如条款15或16所述的方法,其中所述处理器被配置为通过停止所述至少一个部分的操作来改变所述至少一个部分的操作。
条款20.如条款15或16所述的方法,其中所述处理器被配置为通过降低所述至少一个部分的操作频率来改变所述至少一个部分的操作。
条款21.一种包括指令的非暂时性计算机可读介质,所述指令当由一个或多个处理器执行时,使得一个或多个处理器用于:
基于PLD的设计、与PLD相关联的结温以及与PLD相关联的预期功耗量,确定PLD的多个部分的多个功率值;
基于与PLD相关联的多个功率值和平台数据,生成PLD的多个部分中的每个部分的温度值;
基于所述多个功率值,生成指示所述多个部分中的每个部分的预期功率值的功率图;以及
生成指示多个部分中的每个部分的预期温度值的热图。
条款22.如条款21所述的非暂时性计算机可读介质,其中所述指令被配置为使得所述一个或多个处理器用于:
在PLD的操作期间从温度传感器接收与多个部分中的第一部分相关联的温度数据;
接收与被配置为耦合到PLD的一个或多个电源轨相关联的电流数据,其中,电流数据表示在PLD的操作期间存在于一个或多个电源轨上的一个或多个电流量;
基于电流数据来细化功率图;以及
基于电流数据来细化热图。
条款23.根据条款22所述的非暂时性计算机可读介质,其中所述指令被配置为使得所述一个或多个处理器基于所述热图来改变所述PLD的操作。
条款24.如条款21、22或23所述的非暂时性计算机可读介质,其中所述多个功率值包括与所述多个部分的第一部分相关联的第一组功率值,其中所述第一部分与部分重配置区域相对应。
条款25.如条款21、22、23或24所述的非暂时性计算机可读介质,其中PLD包括现场可编程门阵列(FPGA)。

Claims (20)

1.一种热管理系统,包括:
可编程逻辑器件(PLD);以及
第一处理器,其通信地耦合到所述PLD,其中,所述第一处理器被配置为:
基于一个或多个收发器来确定所述PLD的多个部分中的第一组部分的第一组功率值,所述一个或多个收发器是经由基于所述PLD的第一设计的所述PLD上的硬件来实现的;
基于与所述PLD相关联的结温,确定所述多个部分中的第二组部分的第二组功率值;
确定所述多个部分中的被配置为执行所述PLD的一个或多个操作的第三组部分的第三组功率值,其中,所述第三组功率值与当所述第三组部分正在执行所述一个或多个操作时的一组预期功耗值相对应;
基于所述第一组功率值、所述第二组功率值、所述第三组功率值以及与所述PLD相关联的平台数据,确定所述PLD的所述多个部分中的每个部分的温度值;以及
基于所述第一组功率值、所述第二组功率值以及所述第三组功率值,生成指示所述多个部分中的每个部分的预期功率值的功率图;以及
生成指示所述多个部分中的每个部分的预期温度值的热图。
2.根据权利要求1所述的热管理系统,其中,所述PLD包括现场可编程门阵列(FPGA)。
3.根据权利要求1所述的热管理系统,其中,所述第一处理器被配置为:
基于当所述第二组部分中的一个或多个硬件组件正在执行操作时所述一个或多个硬件组件的预期活动,确定所述多个部分中的所述第二组部分的第四组功率值;以及
基于所述第一组功率值、所述第二组功率值、所述第三组功率值、所述第四组功率值以及与所述PLD相关联的平台数据,确定所述PLD的所述多个部分中的每个部分的温度值。
4.根据权利要求1所述的热管理系统,其中,所述平台数据包括关于散热器、预期气流或预期环境温度的信息。
5.根据权利要求1所述的热管理系统,包括:第二处理器,所述第二处理器被配置为控制所述PLD的一组操作,其中,所述第二处理器被配置为响应于与所述多个部分中的至少一个部分相关联的所述功率图的至少一个预期功率值超过至少一个相应的功率阈值来控制所述一组操作。
6.根据权利要求5所述的热管理系统,其中,所述至少一个相应的功率阈值与在所述PLD的操作期间与所述多个部分中的相应的至少一个部分相关联的预期功耗值相对应。
7.根据权利要求1所述的热管理系统,包括:第二处理器,所述第二处理器被配置为控制所述PLD的一组操作,其中,所述第二处理器被配置为响应于与所述多个部分中的至少一个部分相关联的所述热图的至少一个温度值超过至少一个相应的温度阈值来控制所述一组操作。
8.根据权利要求1所述的热管理系统,其中,所述多个部分中的每个部分的温度值是至少部分地基于与所述多个部分的相应部分相关联的相应功率值来确定的。
9.根据权利要求1所述的热管理系统,其中,所述多个部分中的所述第三组部分与所述PLD的至少一个部分重配置区域相对应。
10.一种热管理系统,包括:
现场可编程门阵列(FPGA),其包括配置存储器、多个收发器块和多个部分,其中,所述多个部分包括至少一个静态区域和至少一个部分重配置区域;
温度传感器,其被配置为检测与所述多个部分中的一部分相关联的温度;以及
第一处理器,其通信地耦合到所述FPGA,其中,所述处理器被配置为:
接收所述FPGA的功率图,其中,所述功率图指示所述多个部分的多个预期功率量;
接收所述FPGA的热图,其中,所述热图指示所述多个部分的多个预期温度值;
从所述温度传感器接收在所述FPGA的操作期间与所述多个部分中的所述部分相关联的温度数据;
接收与被配置为耦合到所述FPGA的一个或多个电源轨相关联的电流数据,其中,所述电流数据表示在所述FPGA的操作期间存在于所述一个或多个电源轨上的一个或多个电流量;
基于所述电流数据来细化所述功率图;以及
基于所述电流数据来细化所述热图。
11.根据权利要求10所述的热管理系统,其中,所述处理器被配置为基于根据所述功率图的与所述多个部分中的一个部分相关联的电流值与所述一个或多个电流量中的一个电流量之间的差异来细化所述功率图。
12.根据权利要求10所述的热管理系统,其中,所述处理器被配置为:
接收同与所述FPGA相关联的频率和电压相关联的一个或多个值;以及
基于所述电流数据和所述一个或多个值来细化所述功率图。
13.根据权利要求10所述的热管理系统,其中,所述处理器被配置为响应于与所述多个部分中的至少一个部分相关联的所述热图的预期温度值中的至少一个与由所述温度传感器检测到的温度之间的差异超过阈值来控制所述FPGA的一组操作。
14.根据权利要求10所述的热管理系统,其中,所述热图和所述功率图由与所述第一处理器分开的第二处理器生成。
15.一种用于操作现场可编程门阵列(FPGA)的方法,所述方法包括:
经由处理器接收FPGA的功率图,其中,所述功率图指示所述FPGA的多个部分的多个预期功率量;
经由所述处理器接收所述FPGA的热图,其中,所述热图是至少部分地基于所述功率图生成的,并且其中,所述热图指示所述多个部分的多个预期温度值;
经由所述处理器接收与被配置为耦合到所述FPGA的一个或多个电源轨相关联的功率数据,其中,所述功率数据表示在所述FPGA的操作期间存在于所述一个或多个电源轨上的一个或多个电流量;以及
经由所述处理器基于所述功率数据,确定所述FPGA的所述多个部分的多个功率量;
经由所述处理器确定所述多个功率量中的至少一个功率量是否超过与所述多个部分中的至少一个部分相关联的相应功率阈值;以及
响应于所述功率量中的至少一个功率量超过所述相应功率阈值,经由所述处理器改变所述至少一个部分的至少一个操作。
16.根据权利要求15所述的方法,其中,所述相应功率阈值与大于所述多个预期功率量中的一预期功率量的值相对应。
17.根据权利要求15所述的方法,包括:
经由所述处理器从温度传感器接收在所述FPGA的操作期间与所述多个部分中的一部分相关联的温度数据;
经由所述处理器确定所述温度数据是否超过与所述至少一个部分相关联的相应温度阈值;以及
响应于所述温度数据超过所述相应的温度阈值,经由所述处理器改变所述至少一个操作。
18.根据权利要求17所述的方法,包括:
经由所述处理器基于所述功率数据来确定与所述至少一个部分相关联的温度;以及
当与所述至少一个部分相关联的所述温度超过所述相应的温度阈值时,确定所述温度数据是否超过所述相应的温度阈值。
19.根据权利要求15所述的方法,其中,所述处理器被配置为通过停止所述至少一个部分的操作来改变所述至少一个部分的操作。
20.根据权利要求15所述的方法,其中,所述处理器被配置为通过降低所述至少一个部分的操作频率来改变所述至少一个部分的操作。
CN201811516413.XA 2018-01-12 2018-12-12 集成电路的热管理 Pending CN110058976A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/870,442 2018-01-12
US15/870,442 US11137806B2 (en) 2018-01-12 2018-01-12 Thermal management of integrated circuits

Publications (1)

Publication Number Publication Date
CN110058976A true CN110058976A (zh) 2019-07-26

Family

ID=65230548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811516413.XA Pending CN110058976A (zh) 2018-01-12 2018-12-12 集成电路的热管理

Country Status (2)

Country Link
US (2) US11137806B2 (zh)
CN (1) CN110058976A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026603A (zh) * 2019-10-25 2020-04-17 南京大学 片上网络温度预测方法及装置、设备、存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824584B1 (en) * 2018-04-03 2020-11-03 Xilinx, Inc. Device with data processing engine array that enables partial reconfiguration
US10936043B2 (en) * 2018-04-27 2021-03-02 International Business Machines Corporation Thermal management of hardware accelerators
WO2021015721A1 (en) * 2019-07-19 2021-01-28 Hewlett-Packard Development Company, L.P. Processor thermal metric
JP2022042856A (ja) * 2020-09-03 2022-03-15 富士フイルムビジネスイノベーション株式会社 情報処理装置、及びプログラム
CN112270086A (zh) * 2020-10-26 2021-01-26 济南浪潮高新科技投资发展有限公司 一种防止fpga散热失效系统及方法
US20220004688A1 (en) * 2021-09-21 2022-01-06 Intel Corporation Systems And Methods For Circuit Design Dependent Programmable Maximum Junction Temperatures
US20220113788A1 (en) * 2021-12-22 2022-04-14 Mahesh K. Kumashikar Adjustable Integrated Circuit Operation Using Power Headroom
US20230213999A1 (en) * 2022-01-06 2023-07-06 Nvidia Corporation Techniques for controlling computing performance for power-constrained multi-processor computing systems
US11888318B2 (en) * 2022-04-07 2024-01-30 Micron Technology, Inc. Transient load management for a system-on-chip meeting an activity threshold

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366997B1 (en) * 2005-01-11 2008-04-29 Synplicity, Inc. Methods and apparatuses for thermal analysis based circuit design

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026603A (zh) * 2019-10-25 2020-04-17 南京大学 片上网络温度预测方法及装置、设备、存储介质
CN111026603B (zh) * 2019-10-25 2021-04-23 南京大学 片上网络温度预测方法及装置、设备、存储介质

Also Published As

Publication number Publication date
US11714471B2 (en) 2023-08-01
US11137806B2 (en) 2021-10-05
US20220011838A1 (en) 2022-01-13
US20190043737A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
CN110058976A (zh) 集成电路的热管理
KR101155757B1 (ko) 처리 장치, 및 프로세서 성능 조정 방법
JP5676759B2 (ja) 安定した仮想周波数のための複数の動作点の管理
Memik et al. Optimizing thermal sensor allocation for microprocessors
US8510582B2 (en) Managing current and power in a computing system
JP6595614B2 (ja) デバイスの表面温度に基づいて電力限界を変化させる電力管理
US8942932B2 (en) Determining transistor leakage for an integrated circuit
US20070168151A1 (en) Model predictive thermal management
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
US20120110352A1 (en) Method and apparatus for thermal control of processing nodes
US7725853B1 (en) Optimizing long-path and short-path timing and accounting for manufacturing and operating condition variability
TWI633491B (zh) 基於確定性電流的處理器晶片頻率最佳化
JP2018511868A (ja) デバイス状態に基づく電力制限の変更
KR20140020404A (ko) 집적 회로의 소비 전력 모델링 방법 및 장치
Oh et al. Runtime temperature-based power estimation for optimizing throughput of thermal-constrained multi-core processors
Beldachi et al. Run‐time power and performance scaling in 28 nm FPGAs
EP4202603A1 (en) Adjustable integrated circuit operation using power headroom
US7096374B2 (en) Method and apparatus for defining an input state vector that achieves low power consumption in digital circuit in an idle state
US20240111351A1 (en) Frequency/State Based Power Management Thresholds
Martirosyan et al. A power based memory BIST grouping methodology
US20220004688A1 (en) Systems And Methods For Circuit Design Dependent Programmable Maximum Junction Temperatures
JP2023543753A (ja) 電圧レギュレータ電界効果トランジスタのパルス幅変調器スイッチングによって決定される位相効率に基づく位相シェディング
Pathak et al. Evolving On-Chip Power Delivery through Particle Swarm Optimization
Firouzi et al. Adaptive Mitigation of Parameter Variations
Eltawil et al. Young-Hwan Park, Amin Khajeh, Jun Yong Shin, Fadi Kurdahi

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination