掌桥专利:专业的专利平台
掌桥专利
首页

用于可编程逻辑器件的动态功率和热管理的系统和方法

文献发布时间:2024-04-18 19:44:28


用于可编程逻辑器件的动态功率和热管理的系统和方法

技术领域

概括地说,本公开涉及用于可编程逻辑器件的动态热和功率管理。更具体地说,本公开涉及基于由封装内管芯的功率监测器和热传感器收集的功率数据和/或热数据来调整基于可编程结构的封装(例如,现场可编程门阵列(FPGA)封装)内的一个或多个管芯的部件。

背景技术

本节旨在向读者介绍在下文中描述和/或要求保护的、可能与本公开的各个方面相关的技术的各个方面。该讨论被认为有助于向读者提供背景信息以促进更好地理解本公开的各个方面。因此,可以理解的是,这些陈述应从这个角度来阅读,而不是承认现有技术。

包含可编程逻辑结构的集成电路器件可以包括使用封装连接的多个管芯,所述封装包括并排接口、2.5维(2.5D)接口和/或三维(3-D)接口。在传统的基于可编程结构的封装中,实现了对热水平和功率使用的静态控制。这可能会导致封装内的多个管芯在不同的功率状态下运行,并且可能会导致过多的功率使用而无法在基于可编程结构的封装中获益。此外,它可能导致封装的最坏情况场景功率管理,因为封装内的一个或多个管芯的功率状态可能无法响应于基于可编程结构的封装的一个或多个管芯上的功率和热波动而动态调整。

附图说明

通过阅读以下具体实施方式并且参考附图,可以更好地理解本公开的各个方面,在附图中:

图1是根据本公开的实施例的、用于对集成电路器件进行编程的系统的框图;

图2是根据本公开的实施例的图1的集成电路器件的框图;

图3是根据本公开的实施例的图1的集成电路器件的可编程结构的图;

图4是根据本公开的实施例的、基于可编程结构的封装内的多个管芯的框图,该基于可编程结构的封装包括用于实现有源功率和热管理的控制电路模块;

图5是根据本公开的实施例的、用于基于可编程结构的封装的动态功率管理的方法的流程图;

图6是根据本公开的实施例的、用于基于可编程结构的封装的多个管芯和片部件的动态功率管理的方法的流程图;

图7是根据本公开的实施例的、用于基于可编程结构的封装的动态热管理的方法的流程图;

图8是根据本公开的实施例的、用于基于可编程结构的封装的多个管芯和片部件的动态热管理的方法的流程图;

图9是根据本公开的实施例的二维配置的多个可编程结构中的热控制的框图;

图10是根据本公开的实施例的三维配置的多个可编程结构中的热控制的框图;

图11是根据本公开的实施例的数据处理系统的框图。

具体实施方式

下面将描述一个或多个具体实施例。为了提供对这些实施例的简明描述,在说明书中并未描述实际实施方式的所有特征。应该理解,在任何此类实际实施方式的开发中,如在任何工程或设计项目中,必须做出许多特定于实施方式的判决以实现开发人员的特定目标,例如遵守与系统相关和与业务相关的约束,这可能因实施方式而异。此外,应当理解,这样的开发努力可能是复杂且耗时的,但是对于受益于本公开的普通技术人员来说仍然是设计、加工和制造的例行工作。

在介绍本公开的各个实施例的要素时,冠词“一”、“一个”和“该”意在表示存在一个或多个要素。术语“包含(comprising)”、“包括(including)”和“具有(having)”意在是包括性的,并且意味着除了列出的元素之外还可以有额外的元素。此外,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也包含所阐述特征的另外实施例的存在。

本系统和技术涉及在包括使用2-D、2.5D和/或3-D接口连接的一个或多个管芯的基于可编程结构的封装中实现动态功率和热管理的系统和方法。封装的动态功率和热管理可以通过使用控制电路模块来促进,该控制电路模块从位于基于可编程结构的封装的一个或多个管芯内的一个或多个功率监测器和一个或多个热传感器接收功率数据和热数据。基于经由控制电路模块确定的每个管芯的功率状态和热水平,可以改变至少一些管芯的管芯电压和频率以基于多个管芯的功率状态和热水平来提高性能或降低功率使用。功率调节可以经由电压调节器或其他功率调节方法来实现。例如,基于可编程结构的封装内的一个或多个管芯的输入输出(IO)片(tile)(例如,芯粒(chiplet))的功率状态可以基于IO片内处于活动模式和/或休眠模式的IO通道的数量来确定。IO片的功率状态可以由控制电路模块基于由IO片内的一个或多个功率监测器收集的数据来确定。此外,位于一个或多个管芯上的加速器片可以基于加速器片的阶段(例如,计算阶段、存储阶段)具有不同功率状态。基于由管芯的一个或多个功率监测器和热传感器收集的功率数据和/或热数据确定的管芯和片(例如,芯粒)的功率和/或热水平,可编程结构封装可以经由位于可编程结构管芯内或位于可编程结构封装的单独管芯内的控制电路模块来实现一个或多个控制响应。

换言之,可编程结构管芯可以以基于可编程结构的封装内的一个或多个管芯的功率使用和热水平为基础来调整操作条件。在基于可编程结构的封装外部和/或内部的控制电路模块可以接收功率数据和热数据,并使用软件和/或固件来执行计算以确定基于可编程结构的封装内的每个管芯的功率使用和/或热水平是否超过一个或多个功率水平和/或热门限水平。然后,控制电路模块可以基于确定的功率使用和热水平向封装内的一个或多个管芯发送指令以实施某些动作。例如,可以基于功率使用和/或热水平是否超过为封装指定的门限功率和热门限水平来调整可编程结构电压和/或频率。例如,可编程结构管芯可以降低可编程结构的外围附近的扇区的电压以对应于检测到的IO片的带宽和/或加速器计算状态。片管芯到管芯(D2D)接口和可编程结构管芯内的逻辑可以通过对可编程结构管芯的频率进行调制来适应多管芯的功率状态的变化。在其他实施例中,如果功率状态被检测为对应于功率余量,则控制电路模块可以发送通信以增加可编程结构管芯内的计算片的电压和频率。

在其他实施例中,一个或多个可编程结构管芯可能能够在可编程结构管芯之间传送热水平和功率水平。可编程结构管芯之间的这种功率水平和热水平的通信使可编程结构管芯能够检测某些可编程结构管芯上的热点,并触发逻辑重新配置以将热点分布到不同的可编程结构管芯。以这种方式,可编程结构管芯的逻辑可以被重新配置以将热点从一个可编程结构管芯传送到另一个可编程结构管芯。

考虑前述内容,图1示出了可以实现算术运算的系统10的框图。设计者可能希望在集成电路器件12(例如,可编程逻辑器件,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC))上实现功能,例如本公开的操作。在某些情况下,设计者可以指定要实现的高级程序(例如

设计者可以使用设计软件14(例如英特尔公司的

设计者可以使用设计软件14来生成和/或指定低级程序,例如上述的低级硬件描述语言。此外,在一些实施例中,可以在没有单独的主机程序22的情况下实现系统10。此外,在一些实施例中,本文描述的技术可以在电路模块中被实现为非可编程电路设计。因此,本文描述的实施例旨在是说明性的而非限制性的。

现在转向集成电路器件12的更详细讨论,图2是作为可编程逻辑器件(例如现场可编程门阵列(FPGA))的集成电路器件12的示例的框图。此外,应当理解,集成电路器件12可以是任何其他合适类型的可编程逻辑器件(例如,ASIC和/或专用标准产品)。集成电路器件12可以具有输入/输出电路模块42,用于将信号驱动离开器件以及用于经由输入/输出引脚44从其他器件接收信号。互连资源46(例如全局和局部垂直和水平导电线和总线)和/或配置资源(例如,硬连线耦合、不由用户逻辑实现的逻辑耦合),可以用于在集成电路器件12上路由信号。另外,互连资源46可以包括固定互连(导线)和可编程互连(即,各个固定互连之间的可编程连接)。可编程逻辑48可以包括组合逻辑电路模块和时序逻辑电路模块。例如,可编程逻辑48可以包括查找表、寄存器和复用器。在各种实施例中,可编程逻辑48可以被配置为执行定制逻辑功能。与互连资源相关联的可编程互连可以被认为是可编程逻辑48的一部分。

可编程逻辑器件(例如集成电路器件12)可以包括具有可编程逻辑48的可编程元件50。在一些实施例中,至少一些可编程元件50可以被成组为逻辑阵列块(LAB)。如上所述,设计者(例如,客户)可以对可编程逻辑48进行(重新)编程(例如,(重新)配置)以执行一个或多个期望的功能。举例来说,可以通过使用掩模编程布置来配置可编程元件50(在半导体制造期间执行)来对一些可编程逻辑器件进行编程或重新编程。在半导体制造操作已经完成之后配置其他可编程逻辑器件,例如通过使用电编程或激光编程来对可编程元件50进行编程。通常,可编程元件50可以基于任何合适的可编程技术,例如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程元件等。

许多可编程逻辑器件都是电编程的。通过电编程布置,可编程元件50可以由一个或多个存储器单元形成。例如,在编程期间,使用输入/输出引脚44和输入/输出电路模块42将配置数据加载到存储单元中。在一个实施例中,存储器单元可以被实现为随机存取存储器(RAM)单元。如本文中所描述的,基于RAM技术的存储器单元的使用旨在仅为一个示例。此外,由于这些RAM单元在编程期间加载有配置数据,因此它们有时被称为配置RAM单元(CRAM)。这些存储器单元可各自提供相对应的静态控制输出信号,该相对应的静态控制输出信号控制可编程逻辑48中的关联逻辑部件的状态。例如,在一些实施例中,输出信号可以被施加到可编程逻辑48内的金属氧化物半导体(MOS)晶体管的栅极。

集成电路器件12可包括任何可编程逻辑器件,例如现场可编程门阵列(FPGA)70,如图3所示。出于本示例的目的,FPGA 70被称为FPGA,但应当理解,该器件可以是任何合适类型的可编程逻辑器件(例如,专用集成电路和/或专用标准产品)。在一个示例中,FPGA 70是公开号为No.2016/0049941的美国专利“Programmable Circuit Having MultipleSectors”中描述的类型的扇区化FPGA,出于所有目的通过引用的方式将上述美国专利的完整内容并入本文。FPGA 70可以形成在单个平面上。附加地或替代地,FPGA70可以是三维FPGA,其具有美国专利No.10,833,679,“Multi-Purpose Interface for ConfigurationData and User Fabric Data”中描述的类型的基础管芯和结构管芯,出于所有目的通过引用的方式将上述美国专利的完整内容并入本文。

在图3的示例中,FPGA70可以包括收发机72,收发机72可以包括和/或使用输入/输出电路模块(例如图2中的输入/输出电路模块42)用于将信号驱动离开FPGA 70和用于从其他器件接收信号。互连资源46可用于通过FPGA70对信号(例如时钟信号或数据信号)进行路由。FPGA70是扇区化的,这意味着可编程逻辑资源可以分布在多个离散的可编程逻辑扇区74中。可编程逻辑扇区74可以包括具有由配置存储器76(例如,CRAM)定义的操作的多个可编程逻辑元件50。

电源78可以向配电网络(PDN)80提供电压源(例如,电源电压)和电流,配电网络80将电力分配给FPGA 70的各个部件。操作FPGA70的电路模块导致从配电网络80汲取电力。

FPGA 70上可以有任何合适数量的可编程逻辑扇区74。实际上,虽然这里示出了29个可编程逻辑扇区74,但应该理解,在实际实现中可能会出现更多或更少的扇区(例如,在某些情况下,数量级为50、100、500、1000、5000、10,000、50,000或100,000的扇区或更多扇区)。可编程逻辑扇区74可以包括扇区控制器(SC)82,其控制可编程逻辑扇区74的操作。扇区控制器82可以与器件控制器(DC)84通信。

扇区控制器82可以从器件控制器84接受命令和数据并且可以基于来自器件控制器84的控制信号从其配置存储器76读取数据并将数据写入其配置存储器76。除了这些操作之外,扇区控制器82可以扩充有许多额外的能力。例如,这样的能力可以包括对读取和写入进行本地排序以实现配置存储器76上的错误检测和校正,以及对测试控制信号进行排序以实现各种测试模式。

扇区控制器82和器件控制器84可以被实现为状态机和/或处理器。例如,扇区控制器82或器件控制器84的操作可以作为包含控制程序的存储器中的单独例程来实现。该控制程序存储器可以固定在只读存储器(ROM)中或存储在可写存储器中,例如随机存取存储器(RAM)。ROM可以具有的大小大于用于仅存储每个例程的一个副本的大小。这可以允许例程具有多个变体,这具体取决于本地控制器可能处于的“模式”。当控制程序存储器被实现为RAM时,RAM可以被写入有新的例程以将新的操作和功能实现到可编程逻辑扇区74中。这可以以高效且易于理解的方式提供可用的可扩展性。这可以是有用的,因为新命令可以以器件控制器84和扇区控制器82之间的仅少量通信为代价在扇区内带来大量本地活动。

扇区控制器82因此可以与器件控制器84通信,器件控制器84可以协调扇区控制器82的操作并传达从FPGA 70外部发起的命令。为了支持该通信,互连资源46可以充当器件控制器84和扇区控制器82之间的网络。互连资源46可以支持器件控制器84和扇区控制器82之间的多种信号。在一个示例中,这些信号可以作为通信分组被发送。

如本文所描述的基于RAM技术的配置存储器76的使用仅旨在作为一个示例。此外,配置存储器76可以分布(例如,作为RAM单元)遍及FPGA70的各种可编程逻辑扇区74。配置存储器76可以提供相对应的静态控制输出信号,该相对应的静态控制输出信号控制相关联的可编程逻辑元件50或互连资源46的可编程部件的状态。配置存储器76的输出信号可以被施加到金属氧化物半导体(MOS)晶体管的栅极,该输出信号控制可编程逻辑元件50或互连资源46的可编程部件的状态。

如上所述,可编程逻辑结构的一些实施例可以包括在基于可编程结构的封装中,该基于可编程结构的封装包括使用2-D、2.5-D或3-D接口连接的多个管芯。每个管芯可以包括与功率状态和热水平相对应的逻辑和/或片。另外,可以监测封装内每个管芯的功率使用和热水平,并且控制电路模块可以基于收集到的功率数据和热数据动态地控制一个或多个管芯的操作。

考虑前述内容,图4是根据本公开的实施例的、具有用于实现有源功率管理的控制电路模块102的基于可编程结构的封装100内的多个管芯的框图。基于可编程结构的封装100可以包括经由2-D、2.5-D或3-D接口连接的一个或多个管芯。基于可编程结构的封装100可以包括可编程结构管芯104、IO片106、加速器片108、控制电路模块102和电压调节器110。基于经由位于管芯上的功率监测器112和/或热传感器114收集的一个或多个管芯的检测到的功率状态、功率使用和/或热水平数据,一个或多个功率状态响应(例如,改变操作点、改变电压和/或频率)可以经由控制电路模块102在一个或多个管芯中实现。

控制电路模块102可以包括位于可编程结构管芯104和/或封装内的其他管芯内的控制逻辑118和/或可以包括位于基于可编程结构的封装100内的单独的控制单元管芯116管芯。位于可编程结构管芯104内的控制逻辑118可以包括在可编程结构管芯104内运行的软控制逻辑(例如,软件)和/或固件。控制电路模块102可以在一个或多个管芯(例如,可编程结构管芯104)内和/或在管芯外部实现,控制电路模块102可以从位于基于可编程结构的封装100的管芯内的功率监测器112和/或热传感器114接收一组或多组热水平数据和/或功率使用数据。控制电路模块102可以基于每个管芯的热水平和/或功率使用来确定响应命令,并发送信号以使用电压调节器110或任何其他合适的控制逻辑来调整一个或多个管芯的操作参数(例如,电压、频率)。

功率监测器112可以监测随时间的一个或多个管芯所使用的功率并且将功率数据发送到控制电路模块102。例如,功率监测器112可以监测相应管芯内的一个或多个电压和/或一个或多个电流。如上所述,基于可编程结构的封装100可以包括一个或多个热传感器114和一个或多个功率监测器112以收集基于可编程结构的封装100的一个或多个管芯和/或片的功率数据和热数据。热传感器114和功率监测器112可以由一个或多个电压调节器总线供电,该电压调节器总线可以与电压调节器110和/或控制电路模块102通信。控制电路模块102可以使用与基于可编程结构的封装100中的其他管芯分离和/或分布在基于可编程结构的封装100的一个或多个管芯上的控制单元管芯116来实现。一个或多个电压调节器110可以被实施为母板电压调节器或封装电压调节器。附加地或替代地,一个或多个电压调节器110可以在封装的各种管芯中实现。例如,一个或多个调节器110可以包括集成到一个或多个管芯中的全集成电压调节器(FIVR)。电压调节器110可以从控制电路模块102接收通信并与控制电路模块102通信以基于功率数据和热数据实施控制响应。

如上所述,控制电路模块102可以基于针对基于可编程结构的封装100的一个或多个管芯收集的功率数据和热数据来确定响应。控制电路模块102可以基于所收集的功率数据来确定基于可编程结构的封装100的功率使用是低于还是高于门限功率水平,并且可以基于功率数据经由电压调节器110发送信号以调整可编程结构管芯104或附加管芯内的电压。例如,功率监测器112可以从位于基于可编程结构的封装100的管芯内的IO片106和/或加速器片108收集功率数据。功率数据可以被发送到控制电路模块102,并且控制电路模块102可以基于功率数据确定基于可编程结构的封装100内的每个管芯的功率状态。例如,可以基于以从功率监测器112收集的功率数据为基础处于活动模式和/或休眠模式的通道的数量来确定IO片106功率状态。附加地或替代地,可编程结构管芯104可以监测可编程结构管芯104和IO片106之间的接口处的带宽以估计每个功率状态中的IO片功率。附加地或替代地,加速器片108可以基于加速器片108的计算阶段和/或存储器阶段而对应于不同功率状态,这些功率状态可以是基于经由位于加速器片108上的功率监测器112收集的功率数据而检测的。控制电路模块102可以从功率监测器112和热传感器114接收功率数据和热数据,并确定一个或多个管芯的功率状态和一个或多个管芯的热水平。控制电路模块102然后可以确定:基于可编程结构的封装100的功率水平和/或热水平是否超过与增加和/或降低封装内的功率和/或热水平的响应相对应的一个或多个功率门限或一个或多个热门限。此外,控制电路模块102可以基于其他部件的状态来调整可编程结构管芯104的可编程结构的操作、IO片106的操作和/或加速器片108的操作。例如,当IO片106/加速器片108的吞吐量减少时(例如,超过空闲通道的门限),控制电路模块102可以降低功率使用/性能以匹配IO片106/加速器片108的状态,反之亦然。类似地,如果IO片106和/或加速器片108的带宽不受相应片的状态限制,则控制电路模块102可以提高可编程结构的性能,如果不受功率或热数据限制的话。同样,IO片106和/或加速器片108的操作可以被调整以匹配彼此的状态和/或可编程结构管芯的可编程结构。

例如,控制电路模块102可以基于IO片106和/或加速器片108的检测到的功率水平向电压调节器110发送信号以降低位于可编程结构管芯104的外围处的一个或多个可编程逻辑扇区74处的电压。附加地或替代地,管芯的频率可以被调制以适应基于可编程结构的封装100的一个或多个管芯和/或片的确定的功率状态。此外,可编程结构管芯104的计算片的电压和/或频率可以基于功率余量而增加,该功率余量是基于经由功率监测器112收集的功率数据和/或先前功率降低确定的。应当理解,控制电路模块102可以实现任何合适的响应以使用本文讨论的与控制电路模块102相关的技术来管理遍及基于可编程结构的封装100的功率使用和热水平。

考虑前述内容,图5是根据本公开的实施例的用于对基于可编程结构的封装100的动态功率控制的方法130的流程图。如上所述,控制电路模块102可以在基于可编程结构的封装100内实现以基于从基于可编程结构的封装100内的管芯收集的功率传感器数据而实现动态功率管理。应当理解,控制电路模块102可以包括集中式控制单元管芯116和/或可以包括分布在整个基于可编程结构的封装100中的控制逻辑118。例如,可以通过将配置加载到可编程结构管芯104的可编程结构中来实现控制逻辑118。因此,控制电路模块102的各种实施例可以包括任何合适的固件和/或软件部件以执行本文所讨论的功率和/或热水平操纵。

考虑前述内容,控制电路模块102在框132处从基于可编程结构的封装100的一个或多个功率监测器112接收功率数据。如前所述,一个或多个功率监测器112可以位于IO片106、可编程结构管芯104和加速器片108或封装的任何其他管芯和/或片之内,和/或与IO片106、可编程结构管芯104和加速器片108或封装的任何其他管芯和/或片接口。功率数据可以指示由相应被监测管芯使用的电压、电流或频率,并且可以由控制电路模块102使用以实施一个或多个响应来管理基于可编程结构的封装100的功率利用。

为此,控制电路模块在框134处基于功率数据计算基于可编程结构的封装100的功率使用。由控制电路模块102执行的计算可以包括:确定一个或多个管芯和/或片内的功率使用随时间的移动平均,确定一个或多个管芯和/或片内的功率使用的指数移动平均,确定与接收到的功率数据相对应的多个时间窗内的功率使用,或者任何其他合适的功率水平计算。功率水平可基于任何上述计算,或者通过取任何合适的功率水平计算的加权平均来确定。这些计算可由控制单元管芯116的CPU内的算法和/或通过分布遍及一个或多个管芯的控制逻辑118实现。因此,可以在特定时间针对基于可编程结构的封装100的每个部件、针对基于可编程结构的封装100的每个部件随时间(例如,随时间的平均/累积)、在特定时间针对基于可编程结构的封装100的总体使用来单独计算功率使用,或者功率使用可以是基于可编程结构的封装100随时间的总体功率使用(例如,随时间的平均/累积)。

如果控制电路模块102在判决框136处确定计算的功率使用高于一个或多个功率使用门限值,则控制电路模块102可以在框140处实施一个或多个功率管理操作。一个或多个功率使用门限值可以基于在制造时为功率消耗限制指定的一个或多个设计点,和/或基于由基于可编程结构的封装100实现的期望逻辑。一个或多个功率门限可以对应于不同的响应指令。例如,超过较低功率门限可以对应于将IO片106内的IO通道减少至较低功率状态,而超过较高功率门限可以对应于一个或多个IO通道的完全关闭。

响应于超过一个或多个功率门限,由控制电路模块102在框140处执行的一个或多个管理操作可以包括:向IO片106发送信号以将IO通道更新为低功率状态。另外,控制电路模块102可以向可编程结构管芯104发送信号以降低IO接口逻辑频率,并基于功率使用超过功率使用门限值向一个或多个加速器片108发送信号以设置电压频率点。控制电路模块102在判决框142处基于功率使用超过功率使用门限值来向基于可编程结构的封装100的中央控制逻辑和/或主机18发送通信来对去往可编程结构管芯104的通信进行节流,以便降低用电量。该方法然后可以返回到框132,并且控制电路模块102可以继续从基于可编程结构的封装100的一个或多个功率监测器112接收经更新的功率数据。

可以在各种机制中的任何机制中进行功率调整。可以调整可编程结构管芯104的功率以在IO片106的操作点处匹配IO片106的带宽。基于在一个或多个管芯处监测的功率,控制电路模块102可以实施多个响应。例如,可以经由电压调节器110来降低位于IO片106附近的可编程结构管芯104的一个或多个外围扇区的电压电平以对应于IO片106的带宽和/或加速器片108的计算状态。可编程结构管芯104内的片管芯对管芯接口和控制逻辑118可以通过调制可编程结构管芯104的频率来适应IO片106和/或加速器片108的功率状态。

如果控制电路模块120确定功率使用低于一个或多个功率门限,则控制电路模块102在框138处发送通信以增加或维持可编程结构管芯104的逻辑频率和/或将加速器片108设置为增加的电压频率点。例如,如果功率降低和/或条件改变(例如,更少的拥塞/更多的空闲时间),则可能存在管芯(例如,可编程结构管芯104)的功率余量。响应于确定功率余量可用,控制电路模块102可以发送信号以响应于可编程结构管芯104的功率余量来增加计算片的电压和/或频率以由于可用资源而提升性能。在先前功率降低之后与该功率门限相关的门限可以不同于用于执行功率降低的门限。

控制电路模块102可以基于功率使用,响应于基于可编程结构的封装100的一个或多个管芯的功率使用而执行操作。例如,图6是根据本公开的实施例的、用于基于可编程结构的封装100的多个管芯和片部件的动态功率管理的方法150的流程图。如上所述,控制电路模块102可以在基于可编程结构的封装100内实现以基于与基于可编程结构的封装100内的管芯相对应的收集的功率传感器数据而实现动态功率管理。应当理解,控制电路模块102可以包括集中式控制单元管芯102和/或可以包括在基于可编程结构的封装100的一个或多个管芯中实现的控制逻辑118。

考虑前述内容,控制电路模块102在框152处可以从基于可编程结构的封装100的功率监测器112接收功率数据。控制电路模块在框154处还可以从IO片106的功率监测器112接收功率数据,并且控制电路模块102在框156处可以从加速器片108的一个或多个监测器接收功率数据。应当理解,功率监测器可以位于基于可编程结构的封装100的一个或多个片和/或一个或多个管芯内以确定封装的所有或一些片和管芯的功率状态,使得可以实施响应来管理基于可编程结构的封装100的功率状态。来自任何功率监测器112的功率数据可以监测电压、电流、频率和/或与功率利用相关的其他参数。

为了利用该功率数据,控制电路模块在框158处基于接收的功率数据来计算基于可编程结构的封装100的功率使用。如前所述,由控制电路模块102执行的计算可以包括:确定一个或多个管芯和/或片内的功率使用随时间的移动平均,确定一个或多个管芯和/或片内的功率使用的指数移动平均,确定与接收到的功率数据相对应的多个时间窗内的功率使用,或者任何其他合适的功率水平计算。功率水平可基于任何上述计算,或者通过取任何合适的功率水平计算的加权平均来确定。这些计算算法可以在控制单元管芯116的CPU内和/或通过分布遍及一个或多个管芯的控制逻辑118实现。功率使用可以是基于针对可编程结构管芯104、IO片106、加速器片108或者与基于可编程结构的封装100的功率使用相对应的任何其他管芯和/或片的功率使用收集的功率数据的平均功率使用。

控制电路模块102在判决框160处基于计算的功率使用高于或低于一个或多个功率使用门限值来确定要针对管芯和片实施的一个或多个响应,控制电路模块102可以在框162、164和166处实施一个或多个功率管理操作。例如,功率使用门限值可以基于在制造时为功率消耗指定的一个或多个设计点,或者基于由基于可编程结构的封装100实现的期望逻辑。一个或多个功率门限可以对应于不同的响应指令。例如,控制电路模块102在框162处向IO片106发送通信以基于功率使用是高于还是低于一个或多个功率门限来移动IO通道功率状态。例如,超过较低功率门限可以对应于将IO片106内的IO通道减少至较低功率状态,而超过较高功率门限可以对应于一个或多个IO通道的完全关闭。在框164处,控制电路模块基于计算的功率使用向可编程结构管芯104发送控制信号。例如,控制电路模块102可以响应于功率使用超过一个或多个门限来向可编程结构管芯104发送信号来降低可编程结构管芯104接口逻辑频率,并且可以响应于功率使用低于一个或多个门限来发送信号以增加接口逻辑频率。

控制电路模块102在框166处发送通信以基于确定的功率使用以及功率使用是高于还是低于一个或多个指定的功率门限来设置加速器片108的电压频率点。应当理解,虽然在上文中基于可编程结构的封装100内的片和管芯对一个或多个响应进行了详细描述,但控制电路模块102可以基于所确定的功率使用来实现任何合适的控制响应。

除了功率管理控制之外或者替代功率管理控制,控制电路模块102可以实现基于可编程结构的封装100的热控制,如图7所示。图7是根据本公开的实施例的、用于基于可编程结构的封装100的动态热管理的方法170的流程图。应当理解,控制电路模块102可以包括集中式控制单元管芯116和/或可以包括分布在整个基于可编程结构的封装100中的控制逻辑118。例如,可以通过将配置加载到可编程结构管芯104的可编程结构中来实现控制逻辑118。因此,控制电路模块102的各种实施例可以包括任何合适的固件和/或软件部件以执行本文所讨论的功率和/或热水平操纵。

考虑前述内容,控制电路模块102在框172处从基于可编程结构的封装100的一个或多个热传感器114接收热数据。一个或多个热传感器114可以位于基于可编程结构的封装100的管芯和/或片内和/或与之接口。热数据可由控制电路模块102使用以根据基于可编程结构的封装100的热水平来实现一个或多个控制响应。热传感器114可以包括分布在基于可编程结构的封装100的每个管芯上的一个或多个热传感器用于收集每个管芯上的一个或多个位置处的温度数据。由热传感器114在每个管芯的一个或多个位置处收集的温度数据可以使得能够分析热点的温度数据(例如,管芯中温度高于同一管芯的其他扇区的部分或扇区)。

为此,控制电路模块在框174处基于从一个或多个热传感器114接收的热数据来计算基于可编程结构的封装100的热水平。由控制电路模块102执行的计算可以包括:应用一个或多个算法以确定封装的管芯上的平均热温度,以及应用算法以检测基于可编程结构的封装100内的每个管芯的热点。热水平可基于任何上述计算,或者通过取任何合适的热水平计算的加权平均来确定。这些计算算法可以在控制单元管芯116内实现和/或通过在基于可编程结构的封装100的一个或多个管芯中实现的控制逻辑118实现。

如果控制电路模块102在判决框176处确定计算的热水平高于一个或多个热水平门限值,则控制电路模块102可以在框180处实施一个或多个功率管理操作。热水平门限值可以基于在制造时指定用于热水平上限的一个或多个设计点和/或基于使用基于可编程结构的封装100的实现。一个或多个热水平门限可以对应于不同的响应指令。例如,超过较低的热门限可以对应于通过重新配置结构逻辑来降低可编程结构管芯104的电压,而超过较高的热门限可以对应于通过更大程度地降低结构电压来关闭可编程结构管芯104。

响应于超过一个或多个热门限,由控制电路模块102在框180处执行的一个或多个管理操作可以包括:向IO管芯发送信号以将IO通道更新为低功率状态和/或关闭,这取决于被超过的热门限值。另外,控制电路模块102可以向可编程结构管芯104发送信号以降低IO接口逻辑电压、电流和/或频率,并且可以重新配置结构逻辑以分布热水平。此外,控制电路模块102可以向一个或多个加速器片108发送信号以基于热水平超过一个或多个热水平值来设置降低电压(或电流或频率)和/或关闭。控制电路模块102在判决框182处向基于可编程结构的封装100和/或主机18的中央控制逻辑发送通信,以基于热水平超过一个或多个热水平门限值,对与可编程结构管芯104的通信进行节流以降低热水平。该方法然后可以返回到框172,并且控制电路模块102可以继续从基于可编程结构的封装100的一个或多个热传感器114接收经更新的热数据。

如果控制电路模块120确定热水平低于一个或多个热水平门限,则控制电路模块102在框178处可以由于热余量而发送通信以增加和/或维持可编程结构管芯104的逻辑频率。如果以前使用了热限制来降低性能,则尤其如此。附加地或替代地,如果瓶颈或其他因素表明性能的增加可能是有益的,则可以使用增加以利用热余量。

考虑前述内容,图8是根据本公开的实施例的、用于基于可编程结构的封装100的多个管芯和片部件的动态热管理的方法190的流程图。应当理解,控制电路模块102可以包括集中式控制单元管芯116和/或可以包括分布在整个基于可编程结构的封装100中的控制逻辑118。例如,可以通过将配置加载到可编程结构管芯104的可编程结构中来实现控制逻辑118。因此,控制电路模块102的各种实施例可以包括任何合适的固件和/或软件部件以执行本文所讨论的功率和/或热水平操纵。

考虑前述内容,控制电路模块102在框192处从可编程结构的管芯104的一个或多个热传感器114接收热数据。热传感器可以分布在可编程结构管芯104中的一个或多个位置,并且热数据可以包括基于可编程结构的封装上的一个或多个位置(例如,扇区)的热水平数据。控制电路模块在框194处还可以从IO片106的一个或多个热传感器114接收热数据,并且控制电路模块102在框196处还可以从加速器片108的一个或多个热传感器114接收热数据。应当理解,热传感器114基于可编程结构的封装可用于确定封装的所有或一些片和管芯或者整个封装的热简档。该热简档可用于管理基于可编程结构的封装100中的功率使用和由此产生的热量。

为此,控制电路模块在框200处基于从一个或多个热传感器114接收的热数据来计算基于可编程结构的封装100的热水平。由控制电路模块执行的计算可以包括:应用一个或多个算法以用于确定封装的管芯上的平均热温度和/或用于检测基于可编程结构的封装100内的管芯的热点。热水平可基于任何上述计算,或者通过取任何合适的热水平计算的加权平均来确定。这些计算算法可以在控制单元管芯116内和/或分布在一个或多个管芯(例如,可编程结构管芯104)中的控制逻辑118中实现。

在判决框202处,控制电路模块102基于计算的热水平高于或低于一个或多个热水平门限值来确定一个或多个控制响应以针对基于可编程结构的封装100的管芯和片实施。控制电路模块102可以在框204、206和208处实施一个或多个热管理操作。例如,热水平门限值可以基于在制造时为热水平指定的一个或多个设计点,或者基于由基于可编程结构的封装100而实现的期望逻辑。一个或多个热门限可以对应于不同的响应指令。一个或多个热门限可以对应于不同的响应指令和/或可以基于性能是被提高还是被降低而不同。例如,对应于性能降低的热门限在从第一水平转变到第二水平之前可以具有更高的温度水平。当返回到第一水平时,可以使用不同的和较低的热门限来等待直到在切换回第一水平之前发生额外的冷却。

例如,控制电路模块102在框204处向IO片106发送通信以基于热水平是高于还是低于一个或多个功率门限值来移动IO通道功率状态。在框164处,控制电路模块基于计算的热水平向可编程结构管芯104发送控制信号。例如,响应于热水平超过一个或多个门限,控制电路模块102可以向可编程结构管芯104发送信号以降低可编程结构管芯104接口逻辑频率和/或电压,并且可以根据热水平数据基于检测到的热点来向可编程结构管芯104的控制逻辑118发送信号以重新配置逻辑,以及将热点内的逻辑重新配置到管芯上的其他位置以实现更高效的热分布。

控制电路模块102在框208处基于所确定的热水平、基于热水平是高于还是低于一个或多个指定的热水平门限发送通信以设置加速器片108的电压。应当理解,虽然在上文中根据基于可编程结构的封装100内的片和管芯对一个或多个响应进行了详细描述,但控制电路模块102可以基于所确定的功率使用来实现任何合适的控制响应。

基于可编程结构的封装还可以通过将可编程结构管芯上的一个或多个热点卸载到封装内的另一可编程结构管芯来管理基于可编程结构的封装100的热水平。基于可编程结构的封装100还可包括一个或多个热控制器,这些热控制器可检测基于可编程结构的封装100内的一个或多个热点并重新配置可编程结构管芯以使用存储在每个可编程结构管芯的CRAM之内的多个逻辑配置基于热水平将热点从一个可编程结构管芯移动到另一可编程结构管芯。例如,热传感器114和控制电路模块102可用于确定何时进行改变,同时与可编程结构管芯一起工作以执行改变。

考虑前述内容,图9是根据本公开的实施例的、基于二维(2-D)可编程结构的封装198中的多个可编程结构中的热控制的框图。如上所述,基于2-D可编程结构的封装198的第一可编程结构管芯210A可以与基于2-D可编程结构的封装198的第二可编程结构管芯210B传送热数据,以将与热点214相对应的逻辑从第一可编程结构管芯210A重新配置到另一个第二相邻可编程结构管芯210B。这可以在基于可编程结构的封装100上实现更均匀的热分布。附加地或替代地,可编程结构管芯210中的一个可能能够比另一个可编程结构管芯210更快地散热。在这样的实施例中,控制电路模块102可以优先将热点移动到具有更快头耗散的更多管芯。使用实现了基于2-D可编程结构的封装198的至少一个管芯的控制单元管芯116和/或控制逻辑118将热点212、214从第一可编程结构管芯210A中的一个传送到另一个实现了热热点管理。

为了检测热点212、214,一个或多个热传感器114可以分布在封装198的一个或多个可编程结构管芯210A、210B中。一个或多个热传感器114可以放置在可编程结构管芯210的外围、可编程结构管芯210内部或者可编程结构管芯210内的任何其他合适的位置。可编程结构管芯210A、210B还可以包括热管理控制器216A、216B,这些热管理控制器可以检测运行时热点(例如,结构管芯中的热水平超过门限热水平值的区域),并将热水平和热点数据传送到另一热管理控制器216A、216B,使得热点可以基于热水平数据在可编程结构管芯210A、210B之间传送。管芯的热管理控制器216A、216B可以与安全设备管理器通信以确定与热点相对应的逻辑,并且促进与可编程结构管芯210A、210B之间的热点相对应的逻辑的重新配置。

通过热热点212、214的检测和可编程结构的重新配置来移动热热点以实现跨一个或多个可编程结构管芯的更高效散热,实现了基于二维(2-D)可编程结构的封装100的热管理。一个或多个重新配置块可以包括在可编程结构管芯210A、210B中,并且可以包括预定义的功能,这些预定义的功能包括存储在CRAM中的多个配置,这些配置可以由控制逻辑118基于检测到的可编程结构管芯210A、210B内的热热点212、214来重新配置来跨可编程结构管芯210A、210B重新定位热热点,以在整个基于2-D可编程结构的封装198中高效地分布热水平。基于可编程结构的封装。

另外,一个或多个高速接收机可沿基于2-D可编程结构的封装198内的每个可编程结构管芯210A、210B的存储器接口的岸线定位。每个可编程结构管芯210A、210B的工作负载可以在每个可编程结构管芯210A、210B的热简档内的存储器和收发机接口之间传送。为了在可编程结构管芯210A、210B之间传送热点,可编程元件的配置可以从一个可编程结构管芯重新配置到另一个可编程结构管芯。

例如,第一可编程结构管芯210A可以经由热传感器114收集管芯上多个位置的热数据,并且热传感器114可以将收集到的热数据发送到第一热管理控制器216A。第一热管理控制器216A和/或216B可以确定第一可编程结构管芯210A上的热水平(例如,经由控制电路模块102)。控制电路模块102和/或管理控制器216A可以基于热数据识别第一可编程结构管芯210A中的第一热点212和第二热点214。控制电路模块102和/或管理控制器216A可以确定与超过门限值的热点相对应的区域的热水平。例如,第一热管理控制器216A可以确定第二热点214的热点数据并将第二热点214的热点数据发送到第二可编程结构管芯210B的第二热管理控制器216B。或者,控制电路模块102可以独立地做出这样的确定。同样,热管理控制器210A和/或控制电路模块102可以确定热点214的区域中哪些逻辑块可以被分配到第二可编程结构管芯210B。例如,热管理控制器210A、控制电路模块102和/或安全设备管理器(SDM)可以确定热点214是包括热点214外部的逻辑块的功能模块/块的一部分。为了在基于2-D可编程结构的封装198上分布总体热水平,可以移动功能模块/块。第二热管理控制器216B可以从第一控制器热管理控制器216A接收热热点信息,并使用SDM(例如,配置管理器)来重新配置逻辑以识别热点212、214内的逻辑,并将与第一可编程结构管芯210A的第二热点214相对应的逻辑重新定位到第二可编程结构管芯210B。通过将与功能模块/块相对应的配置加载到第二可编程结构管芯210B的逻辑块,可以将检测到的第二热热点214的区域中的逻辑块移动到第二可编程结构管芯210B。这使得热水平分布在基于可编程结构的封装上,以减少一个区域中的热点集中。应当理解,虽然在该实施例中描绘了两个可编程结构管芯210A、210B,但可以使用任何合适数量的可编程结构管芯来在整个基于2-D可编程结构的封装198中分布热点。此外,当重新配置可编程结构管芯时,可以通过使用部分重新配置和/或完全重新配置并重新启动可编程结构管芯来完成重新配置。

在一些实施例中,相同的热分布方法可以应用于基于三维(3-D)可编程结构的封装218。例如,图10是根据本公开的实施例的三维配置的多个可编程结构中的热管理的框图。基于3-D可编程结构的封装218的底部可编程结构管芯220A可以与封装的顶部可编程结构管芯220B传送热数据,以将热点从底部可编程结构管芯220A传送到以三维配置堆叠在底部可编程结构管芯220A的顶部的另一个可编程结构管芯220B。这可以在基于3-D可编程结构的封装218上实现更均匀的热分布。例如,顶部可编程结构管芯220B可以具有更好的散热并且可以使热点224相应地移动到那里。

为了检测热点222、224、226,一个或多个热传感器114可以分布在封装218的一个或多个可编程结构管芯220A、220B中。一个或多个热传感器114可以放置在可编程结构管芯220的外围、可编程结构管芯220内部或者可编程结构管芯230内的任何其他合适的位置。可编程结构管芯220A、220B还可以包括热管理控制器230A、230B,这些热管理控制器可以检测运行时热点(例如,热水平超过门限热水平值的结构管芯的区域),并将热水平和热点数据传送到另一热管理控制器230A、230B,使得热点可以基于热水平数据在可编程结构管芯230A、230B之间传送。管芯的热管理控制器230A、230B可以与安全设备管理器通信以确定与热点相对应的逻辑,并且促进与可编程结构管芯220A、220B之间的热点相对应的逻辑的重新配置。

通过热热点222、224、226的检测和可编程结构的重新配置来移动热热点以实现跨一个或多个可编程结构管芯上的更高效散热,实现了基于三维(3-D)可编程结构的封装100的热管理。一个或多个重新配置块可以包括在可编程结构管芯220A、220B中,并且可以包括预定义的功能,这些预定义的功能包括存储在CRAM中的多个配置,这些配置可以由控制逻辑118基于可编程结构管芯220A、220B内的检测到的热热点222、224、226重新配置来跨可编程结构管芯220A、220B重新定位热热点,以在整个基于3-D可编程结构的封装218可编程结构的封装中高效地分布热水平,并将热点重新配置到基于可编程结构的封装218的一个顶部管芯或多个顶部管芯以帮助散热。

另外,一个或多个高速接收机可沿基于3-D可编程结构的封装218内的每个可编程结构管芯220A、220B的存储器接口的岸线定位。每个可编程结构管芯220A、220B的工作负载可以在每个可编程结构管芯220A、220B的热简档内的存储器和收发机接口之间传送。为了在可编程结构管芯220A、220B之间传送热点,可编程元件的配置可以从一个可编程结构管芯重新配置到另一个可编程结构管芯。

例如,底部可编程结构管芯220A可以经由热传感器114收集管芯上多个位置的热数据,并且热传感器114可以将收集到的热数据发送到底部热管理控制器230A。第一热管理控制器230A和/或230B可以确定底部可编程结构管芯220A的热水平(例如,经由控制电路模块102)。控制电路模块102和/或管理控制器230A可以基于热数据识别底部可编程结构管芯220A中的第一热点222和第二热点224。此外,控制电路模块和/或管理控制器230B可以基于热数据识别顶部可编程结构管芯220B中的第三热点226。控制电路模块102和/或底部管理控制器230A可以确定与超过门限值的热点相对应的区域的热水平。例如,底部热管理控制器230A可以确定第二热点224的热点数据并将第二热点224的热点数据发送到顶部可编程结构管芯220A的顶部热管理控制器230B。或者,控制电路模块102可以独立地做出这样的确定。同样,底部热管理控制器230A和/或控制电路模块102可以确定热点224的区域中哪些逻辑块可以被分配到顶部可编程结构管芯220A。例如,底部热管理控制器230A、控制电路模块102和/或安全设备管理器(SDM)可以确定热点224是包括热点224外部的逻辑块的功能模块/块的一部分。为了在基于3-D可编程结构的封装218上分布总体热水平,可以移动功能模块/块。顶部热管理控制器230B可以从底部热管理控制器230A接收热热点信息,并使用SDM(例如,配置管理器)来重新配置逻辑以识别热点222、224、226内的逻辑,并将与底部可编程结构管芯220A的第二热点224相对应的逻辑重新定位到顶部可编程结构管芯220B。通过将与功能模块/块相对应的配置加载到顶部可编程结构管芯220B的逻辑块,可以将检测到的第二热热点224的区域中的逻辑块移动到顶部可编程结构管芯220B。这使得热水平分布在基于可编程结构的封装上,以减少一个区域中的热点集中。

应当理解,虽然在该实施例中描绘了三维堆叠的两个可编程结构管芯,但可以使用任何合适数量的可编程结构管芯来在整个基于可编程结构的封装100中分布热点。应当理解,基于可编程结构的封装100可以具有任何合适的数据处理系统以用于信息处理并完成上述功率和热管理方法。

集成电路器件12可以是数据处理系统或包括在数据处理系统中的部件。例如,集成电路器件12可以是图8所示的数据处理系统280的部件。数据处理系统280可以包括主机处理器282(例如,中央处理单元(CPU))、存储器和/或存储电路模块284以及网络接口286。数据处理系统280可以包括更多或更少的部件(例如,电子显示器、用户界面结构、专用集成电路(ASIC))。主机处理器282可以包括任何合适的处理器,例如

在一个示例中,数据处理系统280可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统280可以经由网络接口286接收数据处理请求以执行加速、调试、错误检测、数据分析、加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息识别、网络安全模式识别、空间导航、数字信号处理或其他一些专门任务。

尽管可以对本公开中阐述的实施例进行各种修改和替代形式,但具体实施例已经在附图中以示例的方式示出并且已经在本文中进行了详细描述。然而,应当理解,本公开不旨在限于所公开的特定形式。本公开将涵盖落入所附权利要求所书定义的本公开的精神和范围内的所有修改、等价物和替代物。

本文提出和要求保护的技术被引用并应用于具有实用性的实物和具体例子,它们明显改进了本技术领域,并且因此不是抽象的、无形的或纯理论的。此外,如果附加到本说明书末尾的任何权利要求包含一个或多个被指定为“用于[执行][功能]……的单元”或“用于[执行][功能]……的步骤”的元素,则意指这些要素将根据35U.S.C.112(F)被解释。然而,对于包含以任何其他方式指定的元素的任何权利要求,这些元素不应根据35U.S.C.112(f)被解释。

示例实施例

示例实施例1、一种可编程逻辑器件封装,其包括:一个或多个电压调节器;一个或多个功率传感器,用于测量功率参数;一个或多个互连结构管芯;以及控制电路模块,用于:从位于所述一个或多个互连结构管芯上的所述一个或多个功率传感器接收功率数据;以及向所述一个或多个电压调节器发送指令以基于所述功率数据来控制所述可编程逻辑器件封装的功率水平。

示例实施例2、根据示例实施例1所述的可编程逻辑器件封装,其中,所述一个或多个互连结构管芯包括一个或多个输入/输出(IO)芯粒。

示例实施例3、根据示例实施例2所述的可编程逻辑器件封装,其中,所述控制电路模块确定所述一个或多个IO芯粒的功率状态,其中,确定所述功率状态包括:确定处于活动模式的IO通道的数量、处于休眠模式的IO通道的数量、或者处于活动模式和休眠模式这两种模式的IO通道的数量。

示例实施例4、根据示例实施例2所述的可编程逻辑器件封装,其中,所述控制电路模块至少部分地基于接收到的功率数据基于带宽数据来确定所述一个或多个IO芯粒的功率状态。

示例实施例5、根据示例实施例1所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:基于所述可编程逻辑器件封装的一个或多个IO芯粒的确定的可用带宽、所述可编程逻辑器件的一个或多个加速器芯粒的一个或多个计算状态,或这二者,将所述一个或多个互连结构管芯的一个或多个扇区设置为较低电压状态。

示例实施例6、根据示例实施例1所述的可编程逻辑器件封装,其中,所述控制电路模块包括耦合至所述一个或多个互连结构管芯和所述一个或多个电压调节器的控制单元管芯。

示例实施例7、根据示例实施例1所述的可编程逻辑器件封装,其中,所述控制电路模块包括在所述一个或多个互连结构管芯中的至少一个互连结构管芯上的可编程逻辑结构中实现的控制逻辑。

示例实施例8、根据示例实施例1所述的可编程逻辑器件封装,其中,所述一个或多个互连结构管芯包括一个或多个加速器芯粒。

示例实施例9、根据示例实施例1所述的可编程逻辑器件封装,其中,所述控制电路模块基于所述功率数据确定所述功率参数随时间的平均功率水平。

示例实施例10、根据示例实施例9所述的可编程逻辑器件封装,其中,所述控制电路模块确定随时间的所述平均功率水平是否超过一个或多个功率门限,并且至少部分地基于所述平均功率水平超过所述一个或多个功率门限而发送所述指令。

示例实施例11、根据示例实施例1所述的可编程逻辑器件封装,其中,所述功率参数包括测量的电流、测量的电压或者它们的组合。

示例实施例12、一种可编程逻辑器件封装,包括:一个或多个电压调节器;一个或多个功率传感器,用于测量功率参数;一个或多个互连结构管芯;加速器芯粒,其用于帮助所述一个或多个互连结构管芯执行操作;以及控制电路模块,其用于:从位于所述一个或多个互连结构管芯上的所述一个或多个功率传感器接收功率数据;基于所接收到的功率数据确定平均功率水平;确定所述平均功率水平超过一个或多个门限值;以及向所述可编程逻辑的所述一个或多个电压调节器发送指令以基于所述功率数据控制所述加速器管芯的功率水平。

示例实施例13、根据示例实施例12所述的可编程逻辑器件封装,其中,所述功率数据包括所述可编程逻辑管芯功率数据的功率参数、IO芯粒功率数据、所述加速器芯粒的加速器芯粒功率数据,或者它们的任何组合。

示例实施例14、根据示例实施例12所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:将所述一个或多个互连结构管芯的一个或多个IO芯粒的一个或多个IO通道移动到低功率状态。

示例实施例15、根据示例实施例12所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:降低所述一个或多个互连结构管芯的接口频率。

示例实施例16、根据示例实施例12所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:降低所述加速器芯粒的电压频率点。

示例实施例17、根据示例实施例12所述的可编程逻辑器件封装,其中,所述控制电路模块包括控制单元管芯,其耦合至所述一个或多个互连结构管芯和所述一个或多个电压调节器。

示例实施例18、一种可编程逻辑器件封装,包括:一个或多个电压调节器;一个或多个热传感器,其用于测量热参数;一个或多个互连结构管芯;以及控制电路模块,其用于:基于接收到的热数据来确定热水平;确定所述热水平超过一个或多个门限值;以及向所述可编程逻辑的一个或多个电压调节器或一个或多个芯粒发送指令,以基于所述热数据控制所述一个或多个结构管芯的热水平。

示例实施例19、根据示例实施例18所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:将所述一个或多个互连结构管芯的所述一个或多个芯粒之中的一个或多个IO芯粒的一个或多个IO通道移动到低功率状态。

示例实施例20、根据示例实施例18所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:关闭所述一个或多个互连结构管芯的所述一个或多个芯粒之中的一个或多个IO芯粒的一个或多个IO通道。

示例实施例21、根据示例实施例18所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:降低所述一个或多个互连结构管芯的接口频率,以及向所述可编程逻辑器件封装的中央控制逻辑发送通信以减少接口逻辑业务,其中,所述中央控制逻辑包括一个或多个处理器和存储器。

示例实施例22、根据示例实施例18所述的可编程逻辑器件封装,其中,所述指令包括降低所述一个或多个互连结构管芯的所述一个或多个芯粒之中的一个或多个加速器芯粒的电压频率点。

示例实施例23、根据示例实施例18所述的可编程逻辑器件封装,其中,所述指令包括用于进行以下操作的指令:关闭所述一个或多个互连结构管芯的所述一个或多个芯粒之中的一个或多个加速器芯粒。

示例实施例24、根据示例实施例18所述的可编程逻辑器件封装,其中,所述热水平包括来自单个热传感器的热参数随时间的平均。

示例实施例25、根据示例实施例18所述的可编程逻辑器件封装,其中,所述热水平包括来自所述一个或多个热传感器的多个热传感器的所述热参数的平均。

示例实施例26、根据示例实施例18所述的可编程逻辑器件封装,其中,所述热水平包括峰值热参数。

示例实施例27、一种可编程逻辑器件封装,包括:多个可编程结构管芯,其包括多个热传感器;以及控制电路模块,其用于:从位于所述多个可编程结构管芯上的所述多个热传感器接收热数据;使用所述热数据确定第一可编程结构管芯中的热点;通过将一个或多个逻辑块从所述第一可编程结构管芯重新配置到所述第二可编程结构管芯,使得在所述热点中实现的可编程逻辑在第二可编程结构管芯中实现。

示例实施例28、根据示例实施例27所述的可编程逻辑器件封装,其中,所述多个可编程结构管芯以三维取向堆叠。

示例实施例29、根据示例实施例27所述的可编程逻辑器件封装,其中,所述多个可编程结构管芯的一个或多个热管理控制器被配置为:将热数据从所述第一可编程结构管芯发送到所述第二可编程结构管芯。

示例实施例30、根据示例实施例27所述的可编程逻辑器件封装,其中,每个互连结构管芯内的所述一个或多个逻辑块被预定义为先前编译的模块化设计的一部分。

示例实施例31、根据示例实施例27所述的可编程逻辑器件封装,其中,重新配置所述一个或多个逻辑块包括:从配置存储器加载所述配置。

示例实施例32、根据示例实施例27所述的可编程逻辑器件封装,其中,重新配置所述一个或多个逻辑块包括:在从所述第一可编程结构管芯移动所述热点时,对用于所述多个可编程管芯的设计进行编译。

技术分类

06120116304434