会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 用于局部可编程集成电路重配置的有源插入物

用于局部可编程集成电路重配置的有源插入物

阅读:1029发布:2020-10-30

IPRDB可以提供用于局部可编程集成电路重配置的有源插入物专利检索,专利查询,专利分析的服务。并且一种系统可以包括主处理器、具有存储器元件的插入物、安装在插入物上用于加速从主处理器接收到的任务的协处理器以及辅助芯片。协处理器、插入物以及辅助芯片可以是集成电路封装的部分。插入物上的存储器元件可以将配置位流运送到协处理器的可编程电路中的一个或多个逻辑扇区。可以使用硅通孔将插入物连接到集成电路封装的封装衬底,使得插入物的有源表面面向协处理器的有源表面。每个逻辑扇区可以包括加载有来自存储器元件的配置数据的一个或多个数据寄存器。在一些实例中,辅助芯片可以包括用于存储用来配置协处理器的逻辑扇区的附加配置位流的辅存储器。,下面是用于局部可编程集成电路重配置的有源插入物专利的具体信息内容。

1.一种集成电路封装,包括:

封装衬底;

安装在所述封装衬底上的插入物;以及

安装在所述插入物上的集成电路管芯,其中所述插入物包括存储用于所述集成电路管芯的配置数据的存储器。

2.根据权利要求1所述的集成电路封装,其中

所述插入物具有在其处形成所述存储器的有源侧,其中所述集成电路管芯具有在其处形成逻辑电路的有源侧,并且其中所述插入物的有源侧面向所述集成电路管芯的有源侧。

3.根据权利要求2所述的集成电路封装,进一步包括:微突起,其插入在所述插入物的有源侧与所述集成电路管芯的有源侧之间并且将所述存储器耦合到所述逻辑电路。

4.根据权利要求2所述的集成电路封装,其中所述集成电路管芯上的所述逻辑电路被组织成逻辑扇区,并且其中所述存储器选择性地用配置数据来配置所述逻辑扇区中的至少一个。

5.根据权利要求1所述的集成电路封装,其中所述集成电路管芯包括用于对配置数据进行解密和解压缩的解密和解压缩电路。

6.根据权利要求1所述的集成电路封装,其中所述插入物包括用于对配置数据进行解密和解压缩的解密和解压缩电路。

7.根据权利要求1-6中的任一项所述的集成电路封装,进一步包括:附加集成电路管芯,其包括用于存储附加配置数据的附加存储器。

8.根据权利要求7所述的集成电路封装,进一步包括:散热器,其直接附着到所述集成电路管芯和所述附加集成电路管芯。

9.根据权利要求8所述的集成电路封装,其中所述插入物具有面向所述封装衬底的背侧,其中所述附加集成电路管芯具有在其处形成所述附加存储器的有源侧,并且其中所述附加集成电路管芯的有源侧面向所述封装衬底。

10.根据权利要求8所述的集成电路封装,其中所述附加集成电路管芯具有在其处形成所述附加存储器的有源侧,并且其中所述附加集成电路管芯的有源侧面向所述插入物的有源侧。

11.根据权利要求7所述的集成电路封装,其中所述附加集成电路管芯具有在其处形成所述附加存储器的有源侧,其中所述附加集成电路管芯的有源侧面向所述插入物的有源侧,并且其中所述附加集成电路管芯直接安装在所述封装衬底上。

12.一种操作集成电路封装的方法,所述集成电路封装包括封装衬底、安装在所述封装衬底上的插入物以及安装在所述插入物上的集成电路管芯,所述方法包括:将配置数据存储在所述插入物中的存储器上;以及

通过将配置数据从所述插入物的所述存储器加载到所述集成电路管芯上来配置所述集成电路管芯上的逻辑电路。

13.根据权利要求12所述的方法,进一步包括:在所述集成电路管芯处解压缩和解密配置数据,其中在所述存储器上存储配置数据包括在所述插入物中的存储器上存储经解压缩和解密的配置数据。

14.根据权利要求12所述的方法,进一步包括:在所述插入物处解压缩和解密配置数据。

15.根据权利要求12-14中的任一项所述的方法,进一步包括:在所述集成电路封装中的附加集成电路处存储附加配置数据。

16.根据权利要求15所述的方法,进一步包括:利用所述集成电路管芯向所述插入物发送针对期望的配置位流的请求;

确定所述期望的配置位流是否是存储在所述存储器中的配置数据的一部分;以及响应于确定所述期望的配置位流从存储在所述插入物的存储器中的配置数据中缺失,确定所述期望的配置位流是否是存储在所述附加集成电路中的附加配置数据的一部分。

17.一种用于操作半导体封装内的集成电路管芯的方法,所述方法包括:请求用于配置所述集成电路管芯的配置位流;

确定所述配置位流是否存储在所述半导体封装内的有源插入物上,其中所述集成电路管芯安装在所述有源插入物上;以及响应于确定所述配置位流未被存储在所述有源插入物上,从封装外检索所述配置位流。

18.根据权利要求17所述的方法,进一步包括:确定所述配置位流是否存储在所述半导体封装内的辅助芯片上,其中从封装外检索所述配置位流包括响应于以下而从封装外检索所述配置位流:(1)确定所述配置位流未被存储在所述有源插入物上,以及(2)确定所述配置位流未被存储在所述辅助芯片上。

19.根据权利要求18所述的方法,进一步包括:响应于确定所述配置位流存储在所述有源插入物上,将所述配置位流从所述有源插入物加载到所述集成电路管芯上;以及响应于确定所述配置位流存储在所述辅助芯片上,将所述配置位流从所述辅助芯片加载到所述集成电路管芯上。

20.根据权利要求17-19中的任一项所述的方法,进一步包括:使用所述集成电路管芯和所述有源插入物中的所选择的一个来解密和解压缩所检索到的配置位流;以及将经解密和解压缩的配置位流存储在所述半导体封装内的辅助芯片和所述有源插入物中的所选择的一个上。

21.一种包括封装衬底、安装在所述封装衬底上的插入物以及安装在所述插入物上的集成电路管芯的集成电路封装,所述集成电路封装包括:用于将配置数据存储在所述插入物中的存储器上的部件;以及用于通过将配置数据从所述插入物的存储器加载到所述集成电路管芯上来配置所述集成电路管芯上的逻辑电路的部件。

22.根据权利要求21所述的集成电路封装,进一步包括:在所述集成电路管芯处解压缩和解密配置数据,其中在所述存储器上存储配置数据包括在所述插入物中的所述存储器上存储经解压缩和解密的配置数据。

23.根据权利要求21所述的集成电路封装,进一步包括用于在所述插入物处解压缩和解密配置数据的部件。

24.根据权利要求21-23中的任一项所述的集成电路封装,进一步包括用于在所述集成电路封装中的附加集成电路处存储附加配置数据的部件。

25.根据权利要求24所述的集成电路封装,进一步包括:利用所述集成电路管芯向所述插入物发送针对期望的配置位流的请求;

用于确定所述期望的配置位流是否是存储在所述存储器中的配置数据的一部分的部件;以及用于响应于确定所述期望的配置位流从存储在所述插入物的所述存储器中的配置数据中缺失而确定所述期望的配置位流是否是存储在所述附加集成电路中的附加配置数据的一部分的部件。

说明书全文

用于局部可编程集成电路重配置的有源插入物

背景技术

[0001] 这涉及集成电路,并且更特别地涉及可编程集成电路。
[0002] 可编程集成电路是可以由用户编程以实现期望的定制逻辑功能的集成电路的类型。在典型场景中,逻辑设计者使用计算机辅助设计工具来设计定制逻辑电路。当设计过程完成时,计算机辅助设计工具生成配置数据。配置数据被加载到可编程集成电路上的存储器元件中来将该器件配置成执行定制逻辑电路的功能。
[0003] 可以以配置位流的形式将配置数据供应到可编程器件。在已将第一配置位流加载到可编程器件上之后,可以通过在称为重配置的过程中加载不同的配置位流来重配置该可编程器件。在重配置期间经常加载整个配置数据集。
[0004] 可编程器件可以用于在大数据或快速数据应用中进行协处理。例如,可编程器件可以用在数据中心中的应用加速任务中,并且可以在数据中心操作期间被重编程以执行不同的任务。然而,传统上,可编程器件的重配置的速度比数据中心中的期望的虚拟化速率慢几个数量级。此外,用来隐藏重配置的等待时间的预取的配置位流的片上高速缓存或缓冲在硅片空间(silicon real estate)方面不合期望地昂贵。附加地,配置位流从片外存储经由整个配置电路链的重复取出是能量密集的。
[0005] 频繁地出现期望设计并实现使得能够实现具有改进的重配置速度和降低的能量消耗的片外存储器的可编程器件的情况。
[0006] 本文中的实施例是在该上下文内产生的。

发明内容

[0007] 要领会到,本发明可以以众多方式来实现,诸如过程、装置、系统、器件或计算机可读介质上的方法。下面描述本发明的若干发明实施例。
[0008] 一种系统可以包括主处理器和集成电路封装。所述集成电路封装可以包括封装衬底、安装在所述封装衬底上的有源插入物(interposer)、安装在所述有源插入物上的集成电路(例如,协处理器)以及辅助芯片。所述辅助芯片可以安装在所述封装衬底上,或者如果期望的话安装在所述插入物上。所述插入物和所述辅助芯片可以均包含用于存储配置数据(例如,配置位流)的存储器元件,所述配置数据用于将所述集成电路上的可编程电路配置成执行各种任务。所述集成电路封装还可以包括散热器,其被附着到所述协处理器集成电路并与其接触。在一些实例中,所述散热器也可以与所述辅助芯片接触地放置。
[0009] 所述集成电路的所述可编程电路可以包括被耦合到相应的相关联的逻辑扇区管理器的多个逻辑扇区。这些逻辑扇区管理器可以帮助从所述插入物和所述辅助芯片的所述存储器元件中检索所述配置位流。所述逻辑扇区中的每一个可以包括存储器单元(例如,配置随机存取存储器单元)的阵列、被耦合到存储器单元的阵列的地址寄存器以及被耦合到存储器单元的阵列的数据寄存器。
[0010] 所述集成电路、所述插入物以及所述辅助芯片可以均包括具有在其处形成晶体管电路(例如,存储器元件和可编程逻辑电路)的有源侧的有源层以及具有无源背侧的无源层(例如,大块半导体层)。在一些实施例中,所述集成电路和所述插入物的所述有源侧可以面向彼此以促进所述集成电路上的可编程电路的更快重配置。在这些实施例中,所述插入物可以使用所述插入物的所述无源层中的硅通孔(through silicon via)来与所述封装衬底通信,并且可以通过插入在所述集成电路的所述有源侧与所述插入物的所述有源侧之间的微突起(microbump)来与所述集成电路通信。
[0011] 在其它实施例中,所述插入物的所述有源侧可以面向所述封装衬底,并且所述插入物的背侧可以面向所述集成电路的所述有源侧。在这些实施例中,所述插入物可以使用所述插入物的所述无源层中的硅通孔来与所述集成电路通信。
[0012] 在一些实施例中,所述辅助芯片可以安装在与所述插入物相邻的所述封装衬底上。在这些实施例中,所述辅助芯片的所述有源侧可以面向所述封装衬底,并且可以通过所述封装衬底中的嵌入式多管芯互连桥来电子耦合到所述插入物。所述辅助芯片的背侧可以与所述散热器接触。
[0013] 在其它实施例中,所述辅助芯片可以插入在所述封装衬底与所述集成电路之间。在这些实施例中,所述辅助芯片的所述有源侧可以面向所述集成电路的所述有源侧,并且所述辅助芯片可以使用所述辅助芯片的所述无源层中的硅通孔来与所述封装衬底通信。
[0014] 在其它实施例中,所述辅助芯片可以安装在所述插入物上。在这些实施例中,所述辅助芯片的所述有源侧可以面向所述插入物,并且所述辅助芯片的背侧可以与所述散热器接触。
[0015] 当由集成衬底封装接收到新的配置位流时,可以将该位流存储在所述插入物的所述存储器元件中或在所述辅助芯片的所述存储器元件中。针对其中所述插入物包括解密/解压缩电路的实例,可以使用所述插入物中的所述解密/解压缩电路来对接收到的配置位流进行解密和解压缩。针对其中所述集成电路包括解压缩/解密电路的实例,可以替代地在将接收到的配置位流传递回到所述插入物的所述存储器元件或所述辅助芯片的所述存储器元件以用于存储之前在所述集成电路处对接收到的配置位流进行解密和解压缩。然后可以顺序将所存储的配置位流中的一些或全部加载到所述集成电路的所述可编程电路内的一个或多个逻辑扇区上。
[0016] 当请求配置位流以用于配置集成电路管芯时,可以向所述插入物以及可选地向所述辅助芯片发送请求以确定所请求的配置位流是否被存储在所述插入物的所述存储器元件中或在所述配置位流的所述存储器元件中。响应于确定所请求的配置位流从所述插入物的所述存储器元件和所述插入物的所述存储器元件二者中缺失,所述集成电路可以从封装外(例如,从所述主处理器或从外部存储器)请求所述配置位流。否则,如果所请求的配置位流被存储在所述辅助芯片的所述存储器元件上或在所述插入物的所述存储器元件上,那么可以顺序地将所请求的配置位流加载到所述集成电路管芯的所述可编程电路上。
[0017] 本发明的另外的特征、其性质以及各种优点将从附图以及以下的详细描述而更加明显。

附图说明

[0018] 图1是根据实施例的例证性可编程集成电路的图示。
[0019] 图2是根据实施例的示出配置数据是如何由逻辑设计系统创建并加载到可编程器件中以配置器件用于在系统中操作的图示。
[0020] 图3是根据实施例的示出可编程集成电路可以如何用作支持主处理器的协处理器的图示。
[0021] 图4是根据实施例的具有由局部(local)扇区管理器和安全器件管理器管理的多个逻辑扇区的例证性可编程集成电路的图示。
[0022] 图5是根据实施例的包括协处理器可编程集成电路、包括用于存储配置数据的存储器元件的有源插入物以及辅助芯片的例证性集成电路封装。
[0023] 图6是根据实施例的用于将配置位流加载到协处理器可编程集成电路的逻辑扇区中并在有源插入物处高速缓存配置位流的例证性步骤的流程图。
[0024] 图7是根据实施例的用于执行针对图4的可编程集成电路的逻辑扇区管理以处置接收自主处理器的加速请求的例证性步骤的流程图。
[0025] 图8是根据实施例的图5的集成电路封装的截面侧视图,其中有源插入物和协处理器可编程集成电路具有面向彼此的有源侧,并且其中辅助芯片通过嵌入式多管芯互连桥连接到有源插入物。
[0026] 图9是根据实施例的图5的集成电路封装的截面侧视图,其中辅助芯片被部署在有源插入物上。
[0027] 图10是根据实施例的图5的集成电路封装的截面侧视图,其中辅助芯片被部署在协处理器可编程集成电路与封装衬底之间。
[0028] 图11是根据实施例的图5的集成电路封装的截面侧视图,其中协处理器集成电路具有面向有源插入物的无源背侧的有源侧。

具体实施方式

[0029] 本发明的实施例涉及集成电路,并且更特别地涉及可编程集成电路。本领域技术人员将认识到,可以在没有这些具体细节中的某些或全部的情况下实践本示例性实施例。在其它实例中,没有详细描述众所周知的操作以便不会不必要地使本实施例模糊不清。
[0030] 可编程集成电路使用可编程存储器元件来存储配置数据。配置数据可以基于对应于应用特定的任务的源代码来生成以在可编程集成电路上并行执行。在可编程集成电路的编程期间,配置数据被加载到存储器元件中。可以将存储器元件组织在具有众多行和列的阵列中。例如,存储器阵列电路可以形成在可编程逻辑器件集成电路上的数百或数千的行和列中。
[0031] 在可编程集成电路的正常操作期间,每个存储器元件提供静态输出信号。由存储器元件供应的静态输出信号用作控制信号。这些控制信号被应用于集成电路上的可编程逻辑来对所述可编程逻辑进行定制以执行期望的逻辑功能。
[0032] 有时可能期望将可编程集成电路配置或重配置为加速器电路以高效地执行并行处理任务。加速器电路可以包括多列各种类型的软处理器,其专门用于不同类型的并行任务。可以将加速器电路动态地重配置成最佳地分配和执行并行任务。
[0033] 在图1中示出了例证性可编程集成电路,诸如可编程逻辑器件(PLD)10。如图1中所示,可编程集成电路10可以具有用于驱动信号离开器件10以及用于经由输入输出引脚14从其它器件接收信号的输入输出电路12。诸如全局和局部垂直和水平传导线路和总线之类的互连资源16可以用来在器件10上路由信号。互连资源16包括固定互连(传导线路)和可编程互连(即,相应的固定互连之间的可编程连接)。可编程逻辑18可以包括组合的且顺序的逻辑电路。可编程逻辑18可以被配置成执行定制逻辑功能。
[0034] 可编程集成电路10包含存储器元件20,其可以使用引脚14和输入输出电路12而被加载有配置数据(也称为编程数据)。一旦被加载,存储器元件20就可以均提供对应的静态控制输出信号,所述静态控制输出信号控制可编程逻辑18中的关联的逻辑组件的状态。通常,存储器元件输出信号用来控制金属氧化物半导体(MOS)晶体管的栅极。所述晶体管中的一些可以是p通道金属氧化物半导体(PMOS)晶体管。这些晶体管中的许多可以是可编程组件(诸如复用器)中的n通道金属氧化物半导体(NMOS)传输晶体管(pass transistor)。当存储器元件输出为高时,由该存储器元件控制的NMOS传输晶体管将被接通以将逻辑信号从其输入端传输到其输出端。当存储器元件输出为低时,所述传输晶体管被关断并且不传输逻辑信号。
[0035] 典型的存储器元件20是由被配置成形成交叉耦合的反相器的数个晶体管形成的。也可以使用其它布置(例如,具有更多的分布式反相器类电路的单元)。用一种适当方法,互补金属氧化物半导体(CMOS)集成电路技术用来形成存储器元件20,因此基于CMOS的存储器元件实现方式在本文中作为示例而描述。在可编程集成电路的上下文中,存储器元件存储配置数据并且因此有时称为配置随机存取存储器(CRAM)单元。
[0036] 在图2中示出了用于器件10的例证性系统环境。器件10可以安装在系统38中的板36上。一般来说,可编程逻辑器件10可以从编程设备或从其它适当的设备或器件接收配置数据。在图2的示例中,可编程逻辑器件10是从关联的集成电路40接收配置数据的可编程逻辑器件的类型。用此类布置,电路40可以(如果期望的话)与可编程逻辑器件10安装在相同的板36上。
[0037] 电路40可以是可擦除可编程只读存储器(EPROM)芯片、具有内置式存储器的可编程逻辑器件配置数据加载芯片(有时称为“配置器件”)或另一适当器件。当系统38启动时(或在另一适当时间处),可以从器件40向可编程逻辑器件供应用于配置可编程逻辑器件的配置数据,如通过路径42示意性地示出的那样。被供应给可编程逻辑器件的配置数据可以存储在可编程逻辑器件中在其配置随机存取存储器元件20中。
[0038] 系统38可以包括处理电路44、储存器46以及与器件10通信的其它系统组件48。系统38的组件可以位于诸如板36之类的一个或多个板或者其它适当的安装结构或外壳上,并且可以通过总线、迹线和其它电气路径50进行互连。
[0039] 配置器件40可以通过诸如路径52之类的路径而被供应有用于器件10的配置数据。配置器件40可以例如从配置数据加载设备54或存储配置器件40中的配置数据的其它适当设备接收该数据。器件40可以在安装在板36上之前或之后被加载有数据。
[0040] 在可编程逻辑器件中设计并实现期望的逻辑电路可能是重要的任务。逻辑设计者因此一般使用基于计算机辅助设计(CAD)工具的逻辑设计系统来辅助他们设计电路。逻辑设计系统可以帮助逻辑设计者设计和测试用于系统的复杂电路。当设计完成时,逻辑设计系统可以用来生成配置数据以用于对适合的可编程逻辑器件进行电子编程。
[0041] 如在图2中所示,可以通过诸如路径58之类的路径将由逻辑设计系统56产生的配置数据提供给设备54。设备54将配置数据提供到器件40,使得器件40可以稍后通过路径42将该配置数据提供给可编程逻辑器件10。逻辑设计系统56可以基于一个或多个计算机和一个或多个软件程序。一般来说,软件和数据可以存储在系统56中的任何计算机可读介质(储存器)上,并且在图2中被示意性地示出为储存器60。
[0042] 在典型场景中,逻辑设计系统56被逻辑设计者用来创建定制电路设计。系统56产生对应的配置数据,其被提供给配置器件40。在上电时,配置器件40和可编程逻辑器件10上的数据加载电路被用来将配置数据加载到器件10的CRAM单元20中。然后可以在系统38的正常操作中使用器件10。
[0043] 在器件10最初(例如,使用配置器件40)加载有配置数据集之后,可以通过加载不同的配置数据集来重配置器件10。有时可能期望经由有时称为部分重配置的过程来重配置器件10上的存储器单元的仅一部分。由于存储器单元通常以阵列布置,因此可以通过将新的数据值仅写入到阵列中的(一个或多个)所选部分中、而同时使阵列的除(一个或多个)所选部分之外的部分保留在其原始状态中来执行部分重配置。
[0044] 部分重配置可以是在开发加速框架时尤其有用的特征。例如,考虑其中诸如系统300之类的系统包括经由路径304耦合到其它网络组件的主处理器302的场景(参见例如图
3)。如图3中所示,主处理器302可以经由路径312耦合到诸如协处理器310(在本文中有时称为加速器电路310或加速器310)之类的协处理器(例如,加速器电路)。加速器电路310可以是诸如图1的器件10之类的可编程集成电路,或者替换地,多个加速器电路可以在可编程集成电路中。加速器电路310可以包括诸如核P1-P4之类的各种处理节点(例如,处理核、处理器核)以帮助对主处理器302的执行进行加速。核P1-P4可以是可配置(例如,可编程)的软处理器核或软处理器。在一些实例中,诸如核P1-P4之类的处理器核可以被实现为加速器电路
310中的逻辑扇区。
[0045] 这样配置,加速器电路310有时可以称为“硬件加速器”。作为示例,协处理器上的处理核可以用于对各种各样的功能进行加速,所述功能可以包括但不限于:加密、快速傅里叶变换、视频编码/解码、卷积神经网络(CNN)、防火墙、入侵检测、数据库搜索、域名服务(DNS)、负载平衡、高速缓存网络地址翻译(NAT)以及其它适当的网络分组处理应用,仅举几例。
[0046] 针对其中核P1-P4被实现为加速器电路310中的逻辑扇区的实例,每个逻辑扇区可以使用局部扇区管理器来管理,所述局部扇区管理器进而可以使用安全器件管理器来管理。如图4中所示,加速器电路310可以包括多个逻辑扇区410(有时称为扇区410)。每个逻辑扇区可以通过局部扇区管理器(LSM)412中的相应的一个来管理。逻辑扇区管理器412可以通过安全器件管理器402来管理。硬处理控制器400可以从主处理器(例如,图3的主处理器302)接收配置数据(例如,配置位流)和/或加速器请求。安全器件管理器402可以从硬处理控制器400接收所述配置数据、所述加速器请求以及命令。硬处理控制器400可以例如是微处理器。安全器件管理器402可以通过总线414将命令、配置数据和加速请求提供给局部扇区管理器412。
[0047] 在一些实例中,可以可选地对配置数据和加速器请求进行压缩和加密。因此,安全器件管理器402可以包括解压缩引擎404和解密引擎406以用于对通过硬处理控制器400从主处理器接收到的数据进行解压缩和解密。
[0048] 逻辑扇区410可以是可单独配置/编程的。这允许逻辑扇区410中的每一个并行地、独立地处理不同的任务。可以利用由逻辑扇区410使能的并行处理来通过将逻辑扇区的不同子集重配置成执行各种各样的任务或工作同时执行针对所述任务的应用加速(例如,在数据中心中)。
[0049] 为了在新任务从主处理器发布到加速器电路310时高效地管理应用加速,对将用于处理给定的新接收到的任务的任何逻辑扇区410执行实时重配置可能是必要的。换言之,可以在加速器电路310正运行的同时执行逻辑扇区410的重配置,并且可以在不中断加速器电路310的操作的情况下执行逻辑扇区410的重配置。
[0050] 逻辑扇区410中的哪些要用于给定任务的选择可以通过识别哪些扇区空闲(例如,目前没有正在执行任务)以及通过识别哪些扇区正处置相比于给定任务的优先级更低的优先级的任务(例如,不具有固定时间预算的任务)来确定。然后被识别为正空闲或正执行较不关键的任务的逻辑扇区410中的一些或全部可以被选择,并且如果必要的话,被重配置成执行给定任务的操作。可以基于负载平衡机制来在需要扇区分配时执行对正从事于比给定任务更低的优先级的任务的逻辑扇区410的重新分配。应指出的是,被识别为已经被配置成执行给定任务的那些逻辑扇区410可以被给予相对于将需要被重配置以执行所述任务的任何扇区的选择优先级。
[0051] 由加速器电路310接收到的配置数据可以存储在与加速器电路310相同的电路封装上的存储器中。如图5中所示,协处理器310和有源插入物502(有时称为插入物502)以及辅助芯片504可以安装在集成电路(IC)封装500上或者集成为集成电路(IC)封装500的一部分。插入物502可以包括存储器元件506,其可以用于存储用来重配置协处理器310上的可编程逻辑扇区的配置位流。存储器元件506例如可以是包含SRAM存储器单元或非易失性存储器单元的智能CRAM高速缓存。
[0052] 在一些实例中,插入物502还可以包括用于对(例如,从主处理器或外部存储器接收的)配置位流进行解密和解压缩的解密/解压缩电路(未示出)。如果期望的话,协处理器310可以替代地包括该解密/解压缩电路。
[0053] 辅助芯片504可以是各种各样的芯片中的一个,包括收发器芯片、易失性存储器(例如,高带宽存储器)芯片或非易失性存储器(例如,3D XPoint)芯片。在其中辅助芯片504是存储器芯片的实例中,芯片504可以用作用于存储在重配置协处理器310的逻辑扇区中使用的配置位流的辅高速缓存。
[0054] 来自主处理器302的配置数据可以在经历通过协处理器310的安全器件管理器402的处理/路由之后(例如,在经历解压缩和解密之后)被加载到插入物502的存储器元件506上(以及可选地到辅助芯片504中的存储器元件上)。配置数据可以包括一个或多个扇区级重配置位流。当扇区410中的一个被选择成执行任务时,如果该扇区需要被重配置以执行所述任务(例如,由于该扇区目前被配置成执行不同的任务),那么安全器件管理器402可以向所选扇区提供指向存储器元件506中的执行该任务所需的必要配置位流(例如,角色(persona))的位置的指针。
[0055] 在一些场景中,存储器元件506可能在所选扇区需要所述位流时没有已经存储了必要的配置位流。在这种情况下,安全器件管理器402可以从外部存储器或从辅助芯片504检索该必要配置位流,并且可以将检索到的位流加载到所选扇区上并加载到存储器元件506上。
[0056] 上文结合图3到图5描述的协处理器310、插入物502和辅助芯片504可以执行用于当在封装500处接收到新的配置位流时(例如,在指令循环的预取阶段期间,或者响应于协处理器310发送存储器请求)接收和存储来自主处理器的配置位流的步骤(参见例如图6的例证性步骤)。
[0057] 在步骤600处,针对一组预期配置位流,可以将一个或多个新的配置位流从主处理器提供给集成电路封装(例如,分别为图5的集成电路封装500和图3的主处理器302)。所述预期配置位流可以对应于需要加速时的处理任务。例如,可以在指令循环的预取阶段期间发送这些新的配置位流。替换地,可以响应于在协处理器310确定执行给定任务所需的一个或多个配置位流目前不在插入物的存储器元件(例如,插入物502中的存储器元件506)中时由协处理器(例如,图3的协处理器310)发送出的存储器请求而发送所述新的配置位流。
[0058] 在步骤602处,可以可选地将新的配置位流高速缓存在辅助芯片(例如,图5的辅助芯片504)中。例如,如果检测到插入物502的存储器元件506不具有充足的空间来存储新的配置位流,则可以将所述位流存储在辅助芯片504中。在一些实例中,可以将当前存储在插入物502的存储器元件506中的配置位流移动到辅助芯片504以在存储器元件506上为新的配置位流腾出空间。
[0059] 在步骤604处,如果插入物502包括解密/解压缩能力(例如,解密/解压缩电路),则方法可以前进至步骤606。否则,如果插入物502不包括解密/解压缩能力,则方法可以前进至步骤608。
[0060] 在步骤606处,可以使用插入物502的解密/解压缩电路来对新的配置位流进行解密和解压缩,并且可以将经解密/解压缩的位流高速缓存在插入物502处。
[0061] 在步骤608处,可以将新的配置位流传递至协处理器310,并且协处理器310上的解密/解压缩电路可以对所述位流进行解密/解压缩。
[0062] 在步骤610处,可以将经解密/解压缩的位流传递回插入物502,在那里,可以随后将所述位流高速缓存在插入物502上的存储器元件506中。
[0063] 在完成步骤606或步骤610之后,可以执行步骤612。在步骤612处,可以将经解密/解压缩的位流中的至少一部分顺序地加载到协处理器上的配置随机存取存储器(CRAM)单元中(例如,加载到图4的协处理器310的扇区410中的一个或多个中的CRAM单元中)。
[0064] 在步骤614处,可以可选地将任何其余未存储的经解密/解压缩的位流高速缓存在辅助芯片504中。例如,如果插入物502中的存储器元件506不具有充足的空间来存储用于配置扇区410的CRAM单元的配置位流的一部分,则可以将配置位流的该部分存储在辅助芯片504中。
[0065] 上文结合图3到图6描述的协处理器310和插入物502可以执行用于管理扇区以执行从主处理器302接收到的工作/任务池的步骤(参见例如图7的例证性步骤)。
[0066] 在步骤700处,可以向主处理器(例如,图3的主处理器302)分派任务以执行工作/任务池。为了改进执行这些任务的速度(例如,为了加速任务),可以使用协处理器(例如,图3-6的加速器电路310)来至少执行所述任务池的子集。
[0067] 在步骤702处,主处理器302可以向协处理器310发送加速请求。可以由安全器件管理器(例如,图4的安全器件管理器402)接收该加速请求,所述安全器件管理器可以识别可用于执行与所述加速请求相关联的一个或多个给定任务的(例如,图4的逻辑扇区410中的)一个或多个逻辑扇区。
[0068] 在步骤704处,在指令循环的执行阶段期间,安全器件管理器402可以与逻辑扇区410中的每一个处的局部扇区管理器(例如,图4的局部扇区管理器412)通信,以确定是否逻辑扇区410中的任何已经被配置成实行给定任务。取决于是否存在被预配置成执行给定任务的扇区,该过程可以前进至步骤706或步骤708。
[0069] 在步骤706处,如果存在这样的预配置的扇区,则可以选择该扇区并使用该扇区来执行给定任务。
[0070] 在步骤708处,如果不存在这样的预配置的扇区,则主处理器302可以为可用扇区的局部扇区管理器412提供指向存储在有源插入物中的存储器元件(例如,图5的有源插入物502中的存储器元件506)中或者辅助芯片(例如,图5的辅助芯片504)的存储器元件中的执行给定任务所需的配置位流的位置的指针。存储在插入物502的存储器元件506上或辅助芯片504的存储器元件上的配置数据例如可以是未加密的。然而,所需配置位流将不存在于插入物502的存储器元件506中或辅助芯片504的存储器元件上是可能的。因此,局部扇区管理器412可以进行检查以确定所需配置数据是否存在于插入物502的存储器元件506中或辅助芯片504的存储器元件上。如果所需配置数据存在于插入物502的存储器元件506中或辅助芯片504的存储器元件上,那么过程可以前进至步骤710。否则,过程可以前进至步骤712。
[0071] 在步骤710处,如果所需配置数据存储在插入物502的存储器元件506中或辅助芯片504的存储器元件上(例如,如果存在高速缓存命中),则可以从那些存储器元件中检索所需或期望的配置位流,并且所需或期望的配置位流可以用来重配置可用扇区(例如,通过将所需配置位流加载到可用扇区上)。存储在插入物502的存储器元件506中或辅助芯片504的存储器元件上的配置镜像可以未被加密。插入物502的存储器元件506和辅助芯片504的存储器元件可以充当局部扇区管理器从其中取出配置数据(例如,位流)以用于重配置逻辑扇区410的指令高速缓存。如果从辅助芯片504的存储器元件取出了所需配置位流,那么所需配置位流可以在用所需配置位流加载到可用逻辑扇区上之前传递给插入物502的存储器元件506。替换地,可以将所需配置位流直接从辅助芯片504的存储器元件加载到可用逻辑扇区上。
[0072] 在步骤712处,如果所需配置数据未被存储在插入物502的存储器元件506中或辅助芯片504的存储器元件上(例如,如果存在高速缓存未命中(miss)),则可用扇区的局部扇区管理器412可以向主处理器302发送要求主处理器302向插入物502的存储器元件506或辅助芯片504的存储器元件提供所需配置位流的请求。例如,可以从封装外、直接从主处理器302或者从外部存储器检索所需配置位流。局部扇区管理器412然后可以如结合步骤710描述的那样将所需配置位流加载到可用扇区上,从而重配置可用扇区。在一些场景中,局部扇区管理器412可以直接通过安全器件管理器402从主处理器302接收所需配置位流,在这种情况下,也可以将所需配置位流存储在插入物502的存储器元件506上或辅助芯片504的存储器元件上。
[0073] 在图8中示出了具有堆叠的协处理器和智能有源插入物的IC封装的截面侧视图。如图8中所示,IC封装800可以包括堆叠在封装衬底832上的有源插入物802、堆叠在插入物
802上的协处理器310(有时称为具有CRAM的高级节点IC)、堆叠在封装衬底832上的辅助芯片812以及放置在协处理器310和辅助芯片812上并与它们接触的散热器830。
[0074] 上文中结合图3到图7详细描述了协处理器310和其功能。在此出于简要的目的不会重复这些描述。协处理器310可以包括有源层392和大块半导体层390(在本文中有时称为无源层390)。有源层392的前表面在本文中有时可以称为有源侧。大块半导体层390的相对表面有时可以称为背侧。有源层392可以包括形成在有源侧处的结合图4描述的协处理器310的电路元件(例如,硬处理控制器400、安全器件管理器402、局部扇区管理器412和逻辑扇区410)。有源层392还可以包括寄存器文件394,其可以充当用于协处理器310的中央管芯上存储器。在一些实例中,协处理器310可以可选地包括用于处理经加密和/或压缩的配置位流的解密/解压缩电路。
[0075] 有源插入物802可以包括有源层806和大块半导体层804(有时称为无源层804)。有源层806的前表面在本文中有时可以称为有源侧。大块半导体层804的相对表面有时可以称为背侧。有源层806可以包括形成在有源侧处的多个一级(L1)存储器元件808,其可以用作用于存储配置位流的存储器高速缓存,所述配置位流用于配置协处理器310中的逻辑扇区410。L1存储器元件808可以在形式和功能上对应于上文中结合图5描述的存储器元件506。
[0076] 在一些实例中,有源层806可以可选地包括用于处理经加密和/或解压缩的配置位流的解密/解压缩电路。有源插入物802可以通过焊料822(在本文中有时称为焊料突起822或焊料球822)电气连接到封装衬底832。无源层804可以包括硅通孔(TSV)810,其可以将有源层806中的诸如L1存储器元件808之类的组件连接到焊料球822。例如,L1高速缓存808可以通过焊料球822和TSV 810从主处理器接收配置位流。通过以这种方式使用TSV 810,可以相比于传统的插入物互连布置改进在有源层806与封装衬底832之间传送信号和功率的能量效率。
[0077] 通过使用无源层804中的TSV 810将插入物802的有源层806连接到封装衬底832,插入物802的有源层806可以被布置成面向协处理器310的有源层392,并且可以通过微突起(microbump)820电气连接到有源层392中的组件,所述微突起820可以更小并且可以具有比焊料球822更小的节宽。该布置可以显著地缩短在插入物802与协处理器310之间传输的信号所行进的距离(并且从而降低所述信号的等待时间)。该等待时间中的降低可以有利地增加协处理器310中的逻辑扇区410的重配置速度。
[0078] 辅助芯片812可以与插入物802相邻地放置,并且可以堆叠在封装衬底832上。辅助芯片812可以包括有源层816和大块半导体层814(有时称为无源层814)。有源层816的前表面在本文中有时可以称为有源侧。大块半导体层814的相对表面有时可以称为背侧。有源层816可以包括形成在有源侧处的二级(L2)存储器元件809,其可以用作用于存储配置位流的存储器高速缓存,所述配置位流用于配置协处理器310中的逻辑扇区410。
[0079] 例如,可以将存储在插入物802上的L1存储器元件808中的配置位流传送到L2存储器元件809以在L1存储器元件808上为(例如,在L1存储器元件808处从主处理器接收到的)新的传入的配置位流腾出空间。辅助芯片812的有源层816可以被布置成面向封装衬底832,并且可以通过焊料球822和焊料球824电气连接到封装衬底832。焊料球824可以比焊料球822更小,并且可以具有比焊料球822更小的节宽。
[0080] 可以使用嵌入式多管芯互连桥(EMIB)826来将辅助芯片812连接到插入物802。EMIB 826可以包括形成在嵌入在封装衬底832中的硅衬底中的互连828。互连828可以将焊料球824的连接到辅助芯片812的部分电气连接到焊料球824的连接到插入物802的部分。
[0081] 散热器830可以与协处理器310的无源层390和辅助芯片812的无源层814接触地放置,以便从协处理器310和辅助芯片812中移除热量。有源插入物802可以执行最小处理并且因此可以生成最小热量。因此,可能不需要将散热器830放于与插入物802接触。
[0082] 在图9到图11中示出了封装800的替换布置。
[0083] 如图9中所示,代替直接堆叠在封装衬底832上,辅助集成电路管芯812可以堆叠在有源插入物802上。在该布置中,辅助电路812可以在不必通过封装衬底832传递信号的情况下直接与有源插入物802通信。辅助电路812的有源层816和有源插入物802的有源层806可以被布置成面向彼此,以便降低插入物802与辅助电路812之间的通信等待时间。类似于图8的布置,散热器830可以与协处理器310和辅助电路812二者接触以从协处理器310和辅助芯片812二者中散热。
[0084] 如图10中所示,辅助电路812可以插入在协处理器310与封装衬底832之间。协处理器310的有源层392和辅助电路812的有源层816可以被布置成面向彼此,以便降低辅助电路812与协处理器310之间的通信等待时间。辅助电路812的无源层814可以包括TSV 810,其可以将信号从封装衬底832和焊料球822传送到辅助电路812的有源层816。在该布置中,可以通过协处理器310或封装衬底832在辅助电路812与有源插入物802之间传送配置位流。
[0085] 如图11中所示,有源插入物802可以被布置成使得插入物802的无源层804面向协处理器310的有源层392。在该布置中,可以在插入物802的无源层804中形成TSV 810以将协处理器310的有源层392连接到插入物802的有源层806(例如,通过微突起820)。有源层806可以通过焊料球822与封装衬底832对接。该布置可以有利地改进封装衬底832与插入物802之间的通信速度,然而,插入物802与协处理器810之间的通信可能相比于插入物802的有源层806被布置成面向协处理器310的有源层392的实施例而稍微较慢。
[0086] 因此,远没有描述完关于集成电路的实施例。本文中描述的方法和装置可以并入到任何适当的电路中。例如,它们可以并入到众多类型的器件中,所述器件诸如可编程逻辑器件、专用标准产品(ASSP)和专用集成电路(ASIC)。可编程逻辑器件的示例包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、复杂可编程逻辑器件(CPLD)以及现场可编程门阵列(FPGA),仅举几例。
[0087] 在本文中的一个或多个实施例中描述的可编程逻辑器件可以是包括以下组件中的一个或多个的数据处理系统的一部分:处理器;存储器;IO电路;以及外围设备。数据处理可以用在各种各样的应用中,诸如计算机联网、数据联网、仪器、视频处理、数字信号处理或者其中期望使用可编程或可重编程的逻辑的优点的任何适当的其它应用。可以使用可编程逻辑器件来执行各种各样的不同逻辑功能。例如,可编程逻辑器件可以被配置为与系统处理器协作工作的处理器或控制器。可编程逻辑器件还可以用作用于对到数据处理系统中的共享资源的访问进行仲裁的仲裁器。在又另一示例中,可编程逻辑器件可以被配置为处理器与系统中的其它组件之一之间的接口。在一个实施例中,所述可编程逻辑器件可以是由阿尔特拉/英特尔公司所拥有的器件系列中的一个。
[0088] 前文仅说明本发明的原理,并且本领域技术人员可以进行各种修改。可以单独地或以任何组合来实现前文的实施例。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用