堆叠式多处理器结构和用于实现可靠的处理器操作的方法

文档序号:6504825阅读:198来源:国知局
堆叠式多处理器结构和用于实现可靠的处理器操作的方法
【专利摘要】本发明涉及一种堆叠式多处理器结构和用于实现可靠的处理器操作的方法。一种三维处理器系统包括采用堆叠式配置的第一处理器芯片和第二处理器芯片。第一处理器芯片包括具有第一组状态寄存器的第一处理器。第二处理器芯片包括具有与所述第一组状态寄存器对应的第二组状态寄存器的第二处理器。所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连。模式控制电路以多种操作模式之一操作所述处理器系统。在一种操作模式中,所述第一处理器活动而所述第二处理器不活动,所述第一处理器以高于第一处理器的最大安全速度的速度操作,并且所述第一处理器使用所述第二处理器的所述第二组状态寄存器来为所述第一处理器的状态设置检查点。
【专利说明】堆叠式多处理器结构和用于实现可靠的处理器操作的方法
【技术领域】
[0001]本领域一般地涉及通过以堆叠式配置连接处理器形成的三维(3-D)多处理器设备,以及用于控制3-D堆叠式多处理器设备以便选择性地以多种操作模式之一操作的方法。
【背景技术】
[0002]在半导体处理器芯片制造领域中,在处理器技术的早期阶段,许多公司都制造单芯片处理器。在过去十年左右的时间里,随着摩尔定律继续缩小尺寸,许多公司和其它实体设计了在单个层上包含多个处理器的处理器芯片。但是,随着每个芯片的处理器数量继续增加,处理器之间的片上通信成为问题。例如,随着处理器芯片的2D大小增加以容纳更多处理器,处理器之间的水平布线长度增加(在毫米或厘米范围之内),从而导致处理器之间的通信的周期延迟,并且需要沿着处理器之间的通信路径使用高功率的片上驱动器。此外,随着工作频率增加,有关处理器之间的通信的周期延迟也增加。

【发明内容】

[0003]本发明的示例性实施例一般地包括通过以堆叠式配置连接处理器形成的三维(3-D)处理器设备,以及用于控制3-D堆叠式多处理器设备以便选择性地以多种操作模式之一操作的方法。
[0004]在本发明的一个不例性实施例中,一种处理器系统包括第一处理器芯片和第二处理器芯片。所述第一处理器芯片包括具有第一组状态寄存器的第一处理器。所述第二处理器芯片包括具有与所述第一组状态寄存器对应的第二组状态寄存器的第二处理器。所述第一和第二处理器芯片以堆叠式配置相连,并且所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连。所述处理器系统还包括模式控制电路以便以多种操作模式之一选择性地操作所述处理器系统,其中在第一操作模式中,所述第一处理器活动而所述第二处理器不活动,并且其中第一处理器以高于所述第一处理器的最大安全速度的速度操作,并且其中所述第一处理器使用所述第二处理器的所述第二组状态寄存器,以便为包含在所述第一组状态寄存器中的所述第一处理器的状态设置检查点。
[0005]在本发明的其它示例性实施例中,其中在所述第一操作模式中,在所述第一处理器的当前操作周期期间,在所述第一处理器的所述第一组状态寄存器中维护并更新所述第一处理器的当前状态,然后在所述第一处理器的所述当前操作周期完成时,将所述第一处理器的当前状态存储在所述第二处理器的对应第二组状态寄存器中。当在所述第一处理器的所述当前操作周期期间发生执行错误时,通过将已设置检查点的状态从所述第二处理器的所述第二组状态寄存器复制到所述第一处理器的所述第一组状态寄存器中而回滚所述第一处理器的状态,其中从复制到所述第一处理器的所述第一组状态寄存器中的所述已设置检查点的状态开始,恢复所述当前操作周期。当恢复所述当前操作周期时,所述第一处理器可以以所述第一处理器的所述最大安全速度操作。通过所述第一和第二处理器芯片之间的所述垂直连接,从所述第二处理器的所述第二组状态寄存器访问所述已设置检查点的状态。
[0006]在本发明的另一个示例性实施例中,提供了一种用于操作计算机处理器的方法,所述计算机处理器包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片,其中所述第一和第二处理器芯片以堆叠式配置相连,并且所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连。所述方法包括:生成第一控制信号以便以第一操作模式来操作所述计算机处理器,其中所述第一处理器活动而所述第二处理器不活动,并且其中第一处理器以高于所述第一处理器的最大安全速度的速度操作,并且其中所述第一处理器使用所述第二处理器的所述第二组状态寄存器,以便为包含在所述第一组状态寄存器中的所述第一处理器的状态设置检查点;以及生成第二控制信号以便以第二操作模式来操作所述计算机处理器,其中所述第一和第二处理器独立地操作。
[0007]从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发明的这些和其它示例性实施例、特性、目标以及优点将变得显而易见。
【专利附图】

【附图说明】
[0008]图1是多处理器芯片的示意透视图;
[0009]图2是根据本发明的一个示例性实施例的3-D堆叠式多处理器结构的示意透视图;
[0010]图3是芯片封装结构的示意视图;
[0011]图4在概念上示出了根据本发明的另一个示例性实施例的3-D堆叠式多处理器结构;
[0012]图5示意性地示出了根据本发明的另一个示例性实施例的3-D堆叠式多处理器结构的物理实现,其基于图4中所示的概念实现;
[0013]图6示意性地示出了根据本发明的一个示例性实施例的用于控制3-D堆叠式多处理器结构的多模式操作的方法;
[0014]图7是可以应用本发明的原理的处理器的示意平面图;
[0015]图8是根据本发明的一个示例性实施例的3-D堆叠式多处理器设备的示意透视图,其包括具有图7中所示的相同处理器布局的一对处理器;
[0016]图9A是根据本发明的一个示例性实施例的3-D堆叠式多处理器设备的示意透视图,其包括具有对齐的L2和L3高速缓存的在彼此之上垂直堆叠的第一和第二处理器;
[0017]图9B是根据本发明的一个示例性实施例的图9A的3-D堆叠式多处理器设备的示意透视图,其具有为了操作而结合的L3高速缓存作为第一和第二处理器的共享L3高速缓存;
[0018]图9C是根据本发明的一个示例性实施例的图9A的3-D堆叠式多处理器设备的示意透视图,其具有为了操作而结合的L3高速缓存以及L2高速缓存作为第一和第二处理器的共享L2高速缓存和共享L3高速缓存;
[0019]图10是根据本发明的另一个示例性实施例的3-D堆叠式多处理器设备的示意透视图;
[0020]图11示意性地示出了根据本发明的一个示例性实施例的图10中所示的处理器的各种组件之间的通信路径;
[0021]图12示意性地示出了平面处理器系统的处理器互连结构;
[0022]图13示意性地示出了根据本发明的一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连结构;
[0023]图14示意性地示出了根据本发明的另一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连结构;
[0024]图15是根据本发明的一个示例性实施例的3-D堆叠式多处理器系统的示意顶部透视图其具有基于图14的处理器互连结构的处理器互连结构;
[0025]图16示意性地示出了根据本发明的另一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连结构;
[0026]图17A示意性地示出了根据本发明的一个示例性实施例的具有相同布局的两个处理器,其中两个相同处理器的对应区域被标识为快于或慢于其对应区域;
[0027]图17B示意性地示出了根据本发明的一个示例性实施例的3-D堆叠式处理器结构,其通过垂直堆叠图17A中所示的两个处理器形成,并作为包括每个处理器的最快对应区域的单个处理器而操作;
[0028]图18示意性地示出了根据本发明的一个示例性实施例的用于在3-D堆叠式处理器系统中实现提前运行功能的方法;
[0029]图19示意性地示出了根据本发明的一个示例性实施例的通过垂直堆叠多个处理器形成的3-D堆叠式处理器结构,每个处理器具有类似的状态寄存器布局,其中多个处理器可以独立或以协作方式操作以便共享其状态寄存器;
[0030]图20示出了图19的3-D堆叠式处理器结构的多种操作模式;以及
[0031]图21是示出图19的3-D堆叠式处理器结构的一种操作模式的流程图。
【具体实施方式】
[0032]现在将针对通过以堆叠式配置连接处理器形成的3-D多处理器设备,以及用于控制3-D堆叠式多处理器设备以便选择性地以多种资源聚合和共享模式之一操作的方法,进一步详细地描述本发明的示例性实施例。
[0033]图1是可以应用本发明的原理的多处理器芯片的示意透视图。具体地说,图1示意性地示出了包括半导体管芯(die) 12的多处理器芯片10,半导体管芯12具有在管芯12上形成的多个处理器Cl、C2、…、C49 (总体表示为Cn)。处理器Cn被布置在“平面”系统中,其中在2-D空间中每个处理器Cn具有它自己的专用占用空间。可以使用水平布线和电气互连(作为芯片10的BEOL (后段制程)结构的一部分形成),在2-D平面中将处理器Cn彼此相连,如本领域的技术人员很容易理解的那样。
[0034]在如图1中所示的平面系统中,随着处理器数量增加,处理器之间的通信成为问题。例如,随着芯片的2D大小增加以容纳更多处理器,处理器之间的水平布线长度增加(在毫米或厘米范围之内),从而导致处理器之间的通信路径中的周期延迟。这种周期延迟需要沿着处理器之间的通信路径使用高功率的片上驱动器。此外,随着工作频率增加,此周期延迟也增加。
[0035]本发明的原理利用芯片堆叠技术,以便使用多个处理器芯片层形成3-D堆叠式多处理器结构,其中两个或更多个处理器芯片被集成为具有单芯片“占用空间”的单个堆叠式系统(即,堆叠式处理器芯片看似单个芯片)。术语“处理器芯片”如在此使用的那样,指具有一个或多个处理器的任何半导体芯片或管芯。术语“多处理器芯片”如在此使用的那样,指具有两个或更多个处理器的任何半导体芯片或管芯。一般而言,在3-D堆叠式结构中,两个或更多个芯片层包括使用短垂直互连对齐并互连的处理器,以便一个层中的处理器对齐并垂直连接到另一个层中的对应处理器。应该理解,当不同处理器芯片层上的两个不同处理器或处理器组件/元件被称为彼此“对齐”时,术语“对齐”例如指两个不同处理器或处理器组件/元件在不同层上彼此至少部分重叠或完全重叠。在这点上,不同处理器芯片层上的两个处理器或处理器组件/元件可以完全对齐,因为,处理器或组件在3-D处理器芯片堆叠中的每个平面的相同2D位置中。备选地,处理器或处理器组件/元件可以基本对齐,但在3-D处理器芯片堆叠中的每个平面的2D位置之间具有某些偏移。
[0036]例如,图2是根据本发明的一个示例性实施例的3-D堆叠式多处理器结构的示意透视图。具体地说,图2示意性地示出了 3-D堆叠式多处理器芯片20,其包括第一多处理器芯片22A和在第一多处理器芯片22A之上垂直堆叠的第二多处理器芯片22B。在图2的示例性实施例中,多处理器芯片22A和22B基本相同(组件结构相同,但互连结构可能有所变化),并且被示为具有49个集成处理器,类似于图1中所示的多处理器芯片10。具体地说,第一多处理器芯片22A包括多个处理器C1A、C2A、…、C49A,第二多处理器芯片22B包括多个处理器C1B、C2B、...、C49B。第一和第二多处理器芯片22A和22B相互垂直堆叠并彼此相连,使得处理器对C1A/C1B、C2A/C2B、…、C49A/C49B (总体为CnA/CnB)使用垂直互连对齐并彼此相连。
[0037]使用图2中所示的示例性结构,每个对齐后的处理器堆叠CnA/CnB包括多个垂直连接的处理器,它们通常共享相同的I/o连接。这些I/O连接在内部多路复用,以便在2D空间中的每个处理器位置中,多个垂直堆叠(并相连)的处理器CnA/CnB (对其它堆叠式处理器而言)在逻辑上似乎作为单个处理器操作和运行。本发明的原理可以被扩展以包括多个3-D堆叠式处理器芯片(例如图2中所示),它们共同封装在封装衬底上。现在将参考图3、4和5进一步详细地讨论这些原理。
`[0038]图3是可以应用本发明的原理的芯片封装结构的示意视图。具体地说,图3示出了处理器系统30,其包括封装衬底32以及安装在封装衬底32上的多个处理器芯片P1、P2、P3、P4、P5和P6。封装衬底32包括多个电气互连和迹线(trace),它们形成在处理器芯片PU P2、P3、P4、P5和P6之间提供多对多连接的电气布线34。每个处理器芯片P1、P2、P3、P4、P5和P6都相同,并且可以是均具有多个处理器的多处理器芯片。
[0039]图4和5示意性地示出了根据本发明的另一个示例性实施例的3-D堆叠式处理器系统。具体地说,图4是示例性3-D堆叠式多处理器封装结构40的概念图。类似于图3中所示的封装结构30,图4的3-D堆叠式多处理器封装结构40包括封装衬底32以及安装在封装衬底32上的多个第一层处理器芯片P1A、P2A、P3A、P4A、P5A和P6A。封装衬底32包括多个电气互连和迹线,它们形成在处理器芯片P1A、P2A、P3A、P4A、P5A和P6A之间提供多对多连接的电气布线34。每个处理器芯片P1A、P2A、P3A、P4A、P5A和P6A都相同,并且可以是均具有多个处理器的多处理器芯片。
[0040]如图4中进一步所示,多个第二层处理器芯片P1B、P2B、P3B、P4B、P5B和P6B使用短垂直连接36垂直布置并安装在对应的第一层处理器芯片P1A、P2A、P3A、P4A、P5A和P6A上。第二层处理器芯片P1B、P2B、P3B、P4B、P5B和P6B与对应的第一层处理器芯片P1A、P2A、P3A、P4A、P5A和P6A相同,并且可以是均具有多个处理器的多处理器芯片。图4示出了多条虚线34a,它们表示第二芯片封装层中的处理器芯片P1B、P2B、P3B、P4B、P5B和P6B之间的虚拟多对多布线。这些虚拟导线34a物理上不存在,而是表示第二层处理器芯片P1B、P2B、P3B、P4B、P5B和P6B彼此相连,并且可以使用在封装衬底32上形成的相同物理布线34通信。
[0041]图5示意性地示出了根据本发明的另一个示例性实施例的3-D堆叠式多处理器结构50的物理实现,其基于图4中所示的概念实现。如图5中所示,物理上存在于3-D堆叠式多处理器封装结构50中的仅有布线是在封装衬底32上形成的布线34,以及在对应的处理器芯片堆叠 Ρ1Α/Ρ1Β、Ρ2Α/Ρ2Β、Ρ3Α/Ρ3Β、Ρ4Α/Ρ4Β、Ρ5Α/Ρ5Β 和 Ρ6Α/Ρ6Β 之间形成的短垂直互连36。在图5的3-D堆叠式多处理器封装结构50中,给定垂直堆叠Ρ1Α/Ρ1Β、Ρ2Α/Ρ2Β、Ρ3Α/Ρ3Β、Ρ4Α/Ρ4Β、Ρ5Α/Ρ5Β和Ρ6Α/Ρ6Β中的处理器芯片将使用在处理器芯片之间形成的垂直连接36彼此通信(并且这些垂直连接36包括在不同处理器芯片层中的对应的对齐处理器之间形成的连接)。
[0042]根据本发明的示例性实施例,可以使用已知的半导体制造技术结合两个处理器芯片,其中两个相同的处理器芯片可以“面对背”或“面对面”结合在一起。在“面对背”配置中,将第一处理器芯片的活动表面(面)结合到第二处理器芯片的不活动表面(背),其中两个处理器芯片的处理器和其它对应元件对齐。使用这种结构,垂直布线(例如,过孔)可以在第一处理器芯片的活动表面中形成,并在第一处理器芯片的活动表面上暴露为第一接触垫阵列,并且垂直布线(例如,硅通孔)可以通过第二处理器芯片的背面形成,并在第二处理器芯片的不活动表面上暴露为第二接触垫阵列。当第一和第二处理器芯片面对背结合时,可以将第一和第二接触垫阵列焊接在一起,从而在对齐后的处理器元件之间形成短垂直连接。为了缩短垂直连接的长度,可以使用已知技术研磨第二处理器芯片的背面,以使管芯更薄。
[0043]在“面对面”配置中,其中结合两个相同的处理器芯片(功能相同,它们作为彼此的镜像),以便将第一处理器芯片的活动表面(面)结合到第二处理器芯片的活动表面(面),并且两个芯片的处理器和其它元件对齐。使用这种结构,垂直布线(例如,过孔)可以在第一处理器芯片的活动表面中形成,并在第一处理器芯片的活动表面上暴露为第一接触垫阵列,并且垂直布线可以在第二处理器芯片的活动表面中形成,并在第二处理器芯片的活动表面上暴露为第二接触垫阵列。当第一和第二处理器芯片面对面结合时,可以将第一和第二接触垫阵列焊接在一起,从而在对齐后的处理器元件之间形成短垂直连接。
[0044]使用3-D堆叠式处理器系统,两个或更多个处理器(在它们的平面空间中大约(或几乎)位于一起,但位于不同层上)可以独立或协作地操作,方式为:聚合和/或共享资源以便增强功能并推进操作阈值、可靠性和性能,使它们高于在平面系统(其中在2维封装中,每个芯片具有它自己的空间)中实际获得的操作阈值、可靠性和性能。下面将参考图6~18进一步详细地讨论用于控制3-D堆叠式多处理器以便选择性地以一种或多种资源聚合和/或共享模式操作的各种方法。一般而言,对于某些应用,用于选择性地控制3-D堆叠式多处理器的示例性方法能够同时但彼此独立地操作一组堆叠式处理器。对于下面讨论的其它应用,可以使用处理器层之间的短垂直连接作为快速通信路径,通过跨各种层共享或聚合资源(例如,线程、执行单元、高速缓存等),控制两个或更多个垂直堆叠的处理器以便选择性地以协作方式操作,从而提供增强的操作。
[0045]根据本发明的示例性实施例,采用控制方案以控制两个或更多个垂直堆叠的处理器的多模式操作,以便可以选择性地控制垂直堆叠中的处理器独立或以协作方式操作。例如,图6示意性地示出了根据本发明的一个示例性实施例的用于控制3-D堆叠式多处理器结构的多模式操作的方法。具体地说,图6中所示的控制方案60包括多路复用器61,其选择性地接收多个配置参数组62和64以及配置模式控制信号66作为输入。选择性地输出不同的配置参数组A和B作为给定垂直处理器堆叠的机器输入68,其中机器输入配置处理器堆叠以便以机器输入68指定的多种不同操作模式之一操作。尽管为了易于说明而示出两组输入配置参数A和B,但是可以向多路复用器61输入三组或更多组不同配置参数,并且多路复用器61可以选择性地输出这些参数。应该理解,图6的控制方案是一个处理器堆叠的本地系统,并且给定处理器系统中的每个处理器堆叠将具有图6中所示的对应控制电路。
[0046]图6的控制系统60可以由全局控制系统(例如服务处理器)控制,该全局控制系统扫描控制信息并将配置控制信号66输出到处理器系统中的每个多路复用器61,以便以给定方式配置处理器堆叠。可以使用垂直堆叠的处理器的内部(片上)电路对从每个多路复用器61输出到对应处理器堆叠的机器输入68进行进一步多路复用和/或解码,以便控制各种I/O端口(要被共享或绕过)和其它切换器,可以采用这些切换器在给定处理器堆叠中的不同处理器层之间控制资源的共享和/或聚合。
[0047]在下面讨论的本发明的各种示例性实施例中,当垂直堆叠中的两个或更多个处理器在空间上重合时,可以以各种方式协同组合处理器及其组件,以便为处理器元组化系统(processor-tupled system)提供多种新用途,从而提高性能。首先,要指出的是,因为垂直处理器堆叠将两个或更多个处理器(更多或更少一确切或大约)正好放在彼此之上(作为最初印象),这似乎不切实际,因为它使与任何热点(往往主要位于处理器中)关联的热量加倍。在这点上,可以实施示例性控制方案,以便通过以较低功率级别运行堆叠式处理器(例如,通过调节工作电压和/或工作频率),控制位于一起的处理器堆叠的功率,以便可以管理总功率(例如,总功率密度和/或总功耗)。
[0048]更具体地说,在本发明的一个示例性实施例中,可以以多种操作模式之一操作3D堆叠式处理器设备(通过垂直堆叠并连接多个处理器芯片来制造),以便控制为3D堆叠式处理器设备供电。例如,在具有第一和第二处理器芯片的3D堆叠式处理器设备中,可以选择性地以第一模式操作3D堆叠式处理器设备,其中第一处理器芯片接通而第二处理器芯片关闭。在第一模式中,第一处理器芯片的每个处理器接通,并可以以最大频率和满功率操作,并且具有封装结构可以支持的总功率(例如,针对给定封装结构,控制某些热点中的功率密度,以便封装中的给定热点中的热量不会过多)。
[0049]在另一种操作模式中,可以选择性地以第二模式操作3D堆叠式处理器设备,其中第一和第二处理器芯片均接通。在此情况下,两个处理器芯片可以以最大频率和功率级别操作,并且具有封装结构可以支持的总功率(例如,功率密度或功耗)。在另一种情况下,在第二操作模式中,第一和第二处理器芯片的每个处理器的操作功率均低于满功率,使得3D堆叠式处理器设备的总功率与仅有第一处理器芯片或第二处理器芯片的每个处理器以满功率和/或最大频率工作时的3D堆叠式处理器设备的总功率基本相同。换言之,为了获得相同的功耗或功率密度分布(profile),每个处理器芯片层中的处理器可以以较低电源电压(或较低工作频率)工作,使得聚合功耗与其中仅有一个处理器芯片层上的处理器活动的第一模式相同或相似。
[0050]根据本发明的原理的功率控制方案基于以下实现:提供给处理器的功率可以大百分比(例如,50%)减少,同时只需使处理器的工作频率减少小得多的量(例如,10%)。功率控制方案可以用于选择性地控制处理器的电源电压或者通过调整工作频率,其中每一项都用于调整处理器芯片的整体功耗。因此,在具有多个处理器平面的3-D堆叠式处理器芯片结构中,如果能够调节电源电压,并且选择性地使处理器平面的子集断电,则允许在系统中具有一系列操作模式,包括一种或多种模式,其中多个处理器平面以较低电压操作,以便保持总功率与在操作一个处理器平面时消耗的总功率基本相同(或者,通过将多个处理器平面作为一个处理器平面操作时,在3-D堆叠式处理器芯片结构中的给定热点处维持相同的功率密度)。
[0051]在3-D处理器堆叠中,在每种功率控制操作模式中,每组垂直堆叠的处理器使用一组相同的互连信号(封装中以及封装外)。在这点上,因为垂直堆叠中的每个处理器芯片层共享相同的互连信号,所以即使当以较低频率(在第二模式中)操作处理器芯片时,也只需要更少的通信要求(更少的I/O带宽)。因此,通过3-D堆叠中的每个层产生的较低带宽要求(由于用于保持功耗恒定的约束需要较低频率操作)促进本发明的如下原理:采用用于重用(多路复用)互连信号的技术并封装I/O信号。
[0052]在本发明的其它示例性实施例中,在包括两个或更多个堆叠式处理器芯片层的处理器系统中,其中每个处理器芯片包括一个或多个处理器,其中不同处理器芯片层中的处理器通过不同处理器芯片层之间的垂直连接而相连,模式控制电路(例如上面参考图6示出和描述的)可以选择性地配置不同芯片层中的两个或更多个处理器以便以多种操作模式之一操作。例如,在一种操作模式中,给定堆叠中的一个或多个或全部处理器芯片可以独立操作,其中独立操作的处理器芯片的层之间的垂直连接可以被用作堆叠中的独立操作的处理器芯片之间的通信路径。
[0053]在另一种操作模式中,可以聚合不同处理器芯片层中的各种组件/资源,以便增强不同处理器芯片层上的一个或多个处理器的微架构。如本领域的技术人员很容易理解的,术语处理器的“微架构”指处理器的物理(硬件)配置。处理器的微架构包括诸如高速缓存、总线结构(路径宽度)之类的组件、布置,以及执行单元、指令单元、算术单元的数量等。例如,假设3-D堆叠式处理器芯片设备包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片。在一种操作模式中,其中第一和第二处理器芯片都活动,可以通过聚合来自第一和第二处理器的元件来配置或增强第一处理器芯片的第一处理器的微架构,并且可以通过聚合来自第一和第二处理器的元件来配置或增强第二处理器芯片的第二处理器的微架构。在另一个实施例中,第一处理器芯片可以活动而第二处理器芯片可以不活动,其中通过使用不活动的第二处理器芯片的第二处理器的一部分,增强活动的第一处理器芯片的第一处理器的微架构。增强的元件可以是执行单元、寄存器组、高速缓存等的各部分。[0054]在另一种示例性操作模式中,可以在不同处理器芯片层上的不同处理器之间“共享”不同处理器芯片层中的各种组件/资源。例如,如下面解释的,不同处理器芯片层上的两个不同处理器可以组合其高速缓存(例如,L1、L2或L3高速缓存),以便创建大小加倍但由两个处理器主动共享的高速缓存。在这种情况下,聚合后的(组合后的)组件或资源由不同处理器共享。在另一种示例性操作模式中,可以组合给定堆叠中的不同处理器芯片层上的两个或更多个不同处理器,以便操作单个处理器映像。下面将参考图7、8、9A、9B、9C、10、
11、12、13、14、15、16、17A、17B、18、19、20和21,进一步详细地解释显示用于聚合和/或共享和/或组合处理器资源的不同操作模式的本发明的示例性实施例。
[0055]例如,图7和8示出了示例性操作模式,其用于选择性地配置不同处理器芯片层上的不同处理器以便聚合和/或共享不同处理器的执行单元的各部分,从而增强一个或多个不同处理器的执行能力。图7是可以应用本发明的原理的处理器70的示意平面图。图7示意性地示出了处理器70的微架构,其中处理器70包括各种组件,例如L3高速缓存71、L2高速缓存72、执行单元73和指令单元74。执行单元73包括第一浮点单元75和第二浮点单元76 (其中第一和第二浮点单元75和76相同)以及一组浮点寄存器77。可以使用图7的多个处理器70构造例如图8中所示的3-D堆叠式多处理器结构。
[0056]具体地说,图8是3-D堆叠式多处理器设备80的示意透视图,其包括第一处理器70A和在第一处理器70A之上垂直堆叠的第二处理器70B。在图8的示例性实施例中,处理器70A和70B的结构相同,并且具有图7中所示的处理器布局。具体地说,第一处理器70A包括L3高速缓存71A、L2高速缓存72A、执行单元73A和指令单元74A。执行单元73A包括第一浮点单元75A和第二浮点单元76A (其中第一和第二浮点单元75A和76A相同)以及一组浮点寄存器77A。此外,第二处理器70B包括L3高速缓存71B、L2高速缓存72B、执行单元73B和指令单元74B。执行单元73B包括第一浮点单元75B和第二浮点单元76B (其中第一和第二浮点单元75B和76B相同)以及一组浮点寄存器77B。
[0057]在本发明的一个示例性实施例中,第一和第二处理器70A和70B的执行单元73A和73B使用短垂直连接彼此对齐并彼此相连。使用此结构,执行单元可以垂直布线,以便对于图8中所示的两个处理器70A和70B,第一处理器70A的执行单元73A可以在功能上包括处理器对的执行单元73A/73B的元件的一半,并且第二处理器70B的执行单元73B可以在功能上包括处理器对的执行单元73A/73B的元件的另一半,其中选择每对一半以便最小化每个执行单元的平面区域。
[0058]执行单元的这种3-D聚合优于传统的平面几何形状。在传统的平面系统中,可以连接位于同一平面中的两个处理器的执行单元,以便可以将一个执行单元的输出输入到第二执行单元。但是,两个处理器的执行单元之间的“水平”电气互连可以相对较长(例如,5毫米-20毫米),使得在处理器之间的信号传输中可能存在一个或两个“死”周期,这将在信号传输中导致不需要的延迟。相比之下,在例如图8中所示的3-D堆叠式处理器上的处理器(processor-on-processor )架构中,每个处理器上的执行单元的元件的一半有效地聚合成新的执行单元,使得每个平面中的执行单元实际上具有更小的区域。因为每个处理器的相同元件在空间位于一起,所以通过跨3-D层垂直连接执行单元元件而获得两个处理器的聚合组件的区域。
[0059]例如,在图8的示例性实施例中,假设每个处理器70A和70B具有两个相同的浮点单元75A/76A和75B/76B。在第一处理器平面70A中,可以采用1_2个延迟周期将来自第一浮点单兀75A的输出端的信号传输到第二浮点单兀76A的输入端,因为浮点单兀75A和76A之间具有水平距离。但是,如果垂直连接两个平面中的一对位于一起的第一浮点单元75A和75B,并且垂直连接一对位于一起的第二浮点单元76A和76B,则第一处理器70A的执行单元73A可以利用该对垂直连接的第一浮点单元75A和75B,并且第二处理器70B的执行单元73B可以利用该对垂直连接的第二浮点单元76A和76B,使得每个处理器70A和70B的执行单元仍然具有两个浮点单元。
[0060]处理器元件75A及76A和处理器元件75B及76B之间的垂直连接在处理器功能中提供更短的路径,并允许使用来自3-D框架中的不同处理器平面的元件构造每个处理器70A和70B。这将有效地减小每个处理器的平面几何形状并从执行流中删除死周期,因为从一个执行元件(在一个平面上)的输出端到另一执行元件(在另一个平面上)的输入端的路径更快。可以将这些原理应用于执行单元的其它对齐组件(例如算术单元等),以及其它处理器元件(例如L2和L3高速缓存),如下面进一步详细地解释的那样。
[0061]在图8中所示的本发明的其它示例性实施例中,每个处理器70A和70B可以独立于彼此使用,其中跨处理器层的处理器单元之间的垂直连接将不会用于聚合或共享资源。例如,在一种操作模式中,两个处理器70A或70B可以以减少的功率(例如,半功率)运行(通常在不相关程序上),使得总功率与一次仅有一个处理器70A或70B以满功率操作时的总功率基本相同。在另一种操作模式中,处理器70A或70B中的一个可以关闭,而另一个例如可以在高速模式(或加速模式)中以两倍功率操作。
[0062]在本发明的另一个示例性实施例中,在增强的“加速”操作模式中,处理器70A或70B中的一个可以被禁用(不活动),而另一个可以在高速模式(或加速模式)中以两倍功率操作,但其中活动的处理器可以使用不活动的处理器的执行单元的某些元件,从而增强其执行能力。例如,在图8的示例性实施例中,第二处理器70B (主处理器)可以接通并在高速加速模式中以增加的功率运行,而第一处理器70A可以关闭,但其中通过使用第一(不活动)处理器70A的元件,增强第二 (活动)处理器70B的微架构。通过具体的实例,当在增强的加速模式中操作时,第二 (活动)处理器70B的执行单元73B可以利用第一(不活动)处理器70A的浮点单元75A和76A以及寄存器77A,因此第二处理器70B可以使用四个浮点单元75A、75B、76A、76B以及额外的寄存器77A以增加的速度操作。此增强的架构允许第二处理器70B更快且更高效地运行更强大的代码。使用此框架,可以配置模式控制方案以便可以关闭给定处理器,同时允许通过连接或断开到不活动的处理器的所需组件的电力线,选择性地使不活动的处理器的一个或多个组件通电和断电。
[0063]在本发明的另一个示例性实施例中,可以使用垂直连接结合不同处理器芯片层中的不同高速缓存,以便处理器可以将高速缓存层次结构中的任何特定级别的高速缓存作为单个共享高速缓存来操作。例如,如果两个堆叠式处理器具有对齐的L2高速缓存和对齐的L3高速缓存,则可以将对齐后的L2高速缓存对作为具有两倍容量的单个共享L2高速缓存来操作,并且可以将对齐后的L3高速缓存对作为具有两倍容量的单个共享L3高速缓存来操作。现在将参考图9A、9B和9C进一步详细地解释这些原理。
[0064]图9A是3-D堆叠式多处理器设备90的示意透视图,其包括第一处理器90A和在第一处理器90A之上垂直堆叠的第二处理器90B。在图9A的示例性实施例中,处理器90A和90B的结构相同,并且具有相应的处理器核心91A和91B、L2高速缓存92A和92B,以及L3高速缓存93A和93B。如图9A中所示,L2高速缓存92A和92B对齐并具有相同的占用空间(2D区域)。此外,L3高速缓存93A和93B对齐并具有相同的占用空间。在这种3-D堆叠式框架中,对齐后的L2高速缓存92A和92B可以垂直相连并作为单个共享L2高速缓存操作。此外,对齐后的L3高速缓存93A和93B可以垂直相连并作为单个共享L3高速缓存操作。
[0065]例如,图9B是图9A的3_D堆叠式多处理器设备90的示意透视图,其中L3高速缓存93A和93B结合并可以由处理器90A和90B之一或全部作为共享L3高速缓存93A/B来操作。同样,图9C是图9A的3-D堆叠式多处理器设备90的示意透视图,其中L2高速缓存92A和92B也结合并可以由处理器90A和90B之一或全部作为共享L2高速缓存92A/B来操作。具体地说,在其中处理器90A和90B的L2和L3高速缓存垂直连接在一起的一个示例性实施例中,可以以两种备选模式使用L2和L3高速缓存-作为独立高速缓存,其中不使用它们之间的跨层连接,或者跨层共享,从而增加层中的所有处理器的高速缓存容量。
[0066]3-D堆叠式高速缓存框架的一个优势在于高速缓存的存储容量加倍而不增加高速缓存访问时间。实际上,对高速缓存的访问速度通常已知与高速缓存面积的平方根成正比。在图9B和9C中所示的示例性实施例中,垂直连接对齐后的L2和L3高速缓存不会增大高速缓存面积,因为对应的L2和L3高速缓存的占用空间在空间重合。在这点上,因为结合后的L2高速缓存92A/B的面积和结合后的L3高速缓存93A/B的面积不会由于垂直连接而增大,所以高速缓存访问速度保持不变。为了能够针对运行不同程序的处理器90A和90B访问同一高速缓存地址空间,可以很容易地实现高速缓存控制方案,以便控制和组织共享的高速缓存目录并保持各种高速缓存层之间的高速缓存一致性。
[0067]在本发明的另一个示例性实施例中,可以构造3-D堆叠式处理器设备以便包括多个处理器,这些处理器可结合以便增加3-D处理器堆叠中的单个处理器映像假定的线程数。例如,在包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片的3-D堆叠式处理器设备中,第一和第二处理器芯片都可以活动,其中第一和第二处理器被配置为作为单个处理器操作,并聚合其线程以便增加可由第一和第二处理器使用的线程数量。这允许有效地提高3-D堆叠中的单个处理器的多线程能力,而无需与必须针对单个处理器本身采用附加线程关联的开销(线程)。现在将参考图10和11进一步解释这些原理。
[0068]图10是3-D堆叠式处理器设备100的示意透视图,其包括第一处理器100A和在第一处理器100A之上垂直堆叠的第二处理器100B。在图10的示例性实施例中,第一和第二处理器100A和100B是多线程处理器,并且具有相同的处理器和寄存器组。具体地说,第一处理器100A包括四组寄存器101A、102A、103A和104A以实现四个线程。同样,第二处理器100B包括四组寄存器101B、102B、103B和104B以实现四个线程。
[0069]在图10的示例性实施例中,通过垂直对齐并连接处理器100A和100B,可以将3_D处理器堆叠聚合为具有相应更多线程的单个多线程处理器来操作。例如,在图10的实例中,可以共同运行两个处理器100A和100B的四个线程101A、101B、102A、102B、103A、103B、104A和104B,使得3-D处理器堆叠100似乎是运行八个线程的单个处理器。独立地,对于3-D中的系统级别仲裁,当对齐两个或更多个处理器时,该组处理器将作为单个节点显示在系统的仲裁方案中。通过这种方式,当在新的堆叠平面中添加额外处理器时,下面讨论的仲裁“树”例如不会增加复杂性。
[0070]对于传统的平面系统,可以使用数量增加的独立寄存器组制造处理器,以便实现可以同时操作的更多线程以提高多个程序的处理能力。但是,随着每个处理器的线程数量的增加,处理器的平面尺寸增加,从而导致寄存器组和处理器执行单元之间的通信周期延迟,以及功率增加。使用例如图10中所示的3-D堆叠式架构,可以使用更少的寄存器组简化处理器,以便支持每个处理器具有更少的线程,同时根据需要在处理器层之间聚合线程,以便增加给定层可以使用的线程总数。例如,假设给定应用的大多数工作负载使用四个或更少的线程来操作,则图10中所示的处理器100A和100B可以被优化为四线程处理器。如果给定工作负载需要超过四个的线程(最多8个线程)来执行,则3-D处理器堆叠100中的处理器100A和100B可以被组合并作为具有八个线程的单个处理器来操作。
[0071]在图10的示例性实施例中,实现控制方案和通信路径以便支持跨不同层聚合线程,并且在层之间连接高速缓存并维持高速缓存一致性。设计这些控制方案和通信路径,使得当不同层中的线程实际共享它们的地址空间时,每个处理器将看到相同的状态。图11中示意性地示出了这些概念。
[0072]具体地说,图11示意性地示出了根据本发明的一个示例性实施例的图10中所示的处理器的各种组件之间的通信路径。如图11中所示,第一处理器100A包括与第一处理器单元105A关联的多个寄存器组101A、102A、103A和104A (也分别表示为TO、T2、T4和T6)、L2和L3高速缓存110A、指令高速缓存112A以及数据高速缓存114A。同样,第二处理器100B包括与第二处理器单元105B关联的多个寄存器组101B、102B、103B和104B (也分别表示为T1、T3、T5和T7)、L2和L3高速缓存110B、指令高速缓存112B以及数据高速缓存114B。
[0073]指令高速缓存112A和112B以及数据高速缓存114A和114B接收被存储在相应L2或L3高速缓存IlOA和/或IlOB中的程序指令和数据。L2和/或L3高速缓存IlOA和/或IlOB可以被结合并共享,如上面例如参考图9C讨论的那样。相应处理器105A和105B针对一个或多个线程执行被存储在指令高速缓存112A和112B中的程序指令,并且给定线程的执行状态被存储在一个相应线程状态寄存器!'0、11、了2、了3、了4、了5、了6、了7中。通过执行程序指令生成数据时,处理器105A将数据存储在其数据高速缓存114A中,并且处理器105B将数据存储在其相应的数据高速缓存114B中。根据本发明的原理,利用处理器105A和105B以及数据高速缓存114A和114B之间跨层的附加通信路径116以便促进一致存储。可以以处理器上的处理器(processor-on-processor)的方式实现该通信路径116,因为当对齐处理器时,各端口在空间上位于一起。
[0074]尽管图10和11的示例性实施例示出了均具有寄存器组以支持4个操作线程的处理器,但本发明的原理可以很容易地被扩展为每个处理器具有η个线程,其中如果每个处理器是η路多线程,则处理器对可以作为2η路多线程处理器运行,如系统的其余部分所看到的那样。此外,使用此实施方式,当大部分时间运行η个线程(其中每个处理器负担的线程并不繁重)时尤其有用,从而允许针对η线程操作优化基本处理器,但在需要时具有扩展系统以运行2η个线程的能力。
[0075]如上所述,当在3-D堆叠式配置中对齐两个或更多个处理器时,处理器将作为单个节点显示在系统的仲裁方案中。使用这种框架,可以构造仲裁“树”(或者一般地说,处理器互连结构),使得当在新的堆叠平面中添加其它处理器时不会增加复杂性。现在将参考图
12、13、14、15和16,进一步详细地讨论根据本发明的原理的示例性处理器互连结构。
[0076]图12示意性地示出了平面处理器系统的处理器互连方案。具体地说,图12示出了平面处理器系统120,其包括布置在同一平面上的第一处理器120A和第二处理器120B。第一处理器120A包括多个处理器P1A、P2A、P3A、P4A、P5A、P6A、P7A和P8A (统称为PnA)以及相应的L3高速缓存。第一处理器120A的处理器PnA通过处理器互连结构122A通信。同样,第二处理器120B包括多个处理器P1B、P2B、P3B、P4B、P5B、P6B、P7B和P8B (统称为PnB)以及相应的L3高速缓存。第二处理器120B的处理器PnB通过处理器互连结构122B通信。在图12的实例实施例中,处理器互连结构122A和122B被示为实现标准仲裁方案的“树”结构。
[0077]此外,如图12中所示,通信总线122A和122B使用总线互连结构124互连。在图12的平面系统120中,该总线互连结构124在2D平面中相对较长。根据本发明的原理,在例如图13中所示的3-D堆叠式框架中,该处理器互连结构可以更简化。具体地说,图13示意性地示出了根据本发明的一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连方案。具体地说,图13示出了平面处理器系统130,其包括第一处理器130A和在第一处理器130A之上布置的第二处理器130B。第一处理器130A包括多个处理器P1A、P2A、…、P8A (统称为PnA),它们使用处理器互连结构132A互连并通信。同样,第二处理器130B包括多个处理器P1B、P2B、…、P8B (统称为PnB),它们使用处理器互连结构132B互连并通信。处理器互连结构132A和132B被示为实现标准仲裁方案的“树”结构。
[0078]如图13中进一步所示,处理器互连结构132A和132B使用连接总线结构134互连。图13的整体处理器互连方案在概念方面类似于图12的整体处理器互连方案,只是总线连接结构134 (连接处理器互连结构132A和132B)使用堆叠式处理器芯片130A和130B之间的垂直连接形成。在这点上,垂直连接总线结构134的长度比图12中所示的平面连接总线结构124短得多。因此,图13中的整体处理器互连方案实际上比图12中所示的整体处理器互连方案更小且更快。
`[0079]图14示意性地示出了根据本发明的另一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连方案。图14示意性地示出了具有处理器互连框架的3-D堆叠式处理器结构140,该处理器互连框架在拓扑上等同于图13的3-D堆叠式处理器的处理器互连框架,但更快且在大小方面更简化。更具体地说,如图14中所示,使用第二处理器芯片130B上的树结构132B以及多个垂直总线连接141、142、143、144、145、146、147和148实现处理器互连方案,这些垂直总线连接从第二处理器芯片130B上的树总线结构132B的端点延伸到第一处理器芯片130A上的相应处理器。图14的处理器互连方案考虑到第一和第二处理器芯片130A和130B上的处理器彼此对齐,使得第一和第二处理器芯片130A和130B的树总线结构132A和132B的端点(参见图13)也对齐。使用此垂直对齐,可以实现垂直总线连接141、142、143、144、145、146、147和148 (如图14中所示)以取代单个垂直总线互连134(如图13中所示)。实际上,因为上处理器芯片130B上的总线树结构132B的每个端点与下处理器芯片130A上的总线树结构132A的端点对齐,所以可以使用短垂直连接来连接两个树结构132A和132B的端点,于是,这允许不考虑并且不使用树结构132A和132B之一。现在将参考图15进一步讨论和例示这些原理。[0080]具体地说,图15是根据本发明的一个示例性实施例的3-D堆叠式多处理器系统的示意顶部透视图,其具有基于图14的处理器互连结构方案的处理器互连结构。图15示出了 3-D堆叠式多处理器系统150,其是图14中所示的概念系统的物理实现,其中下处理器芯片130A上的处理器PnA和上处理器芯片130B上的处理器PnB与总线树结构132B的端点对齐。这允许分别使用较短的垂直过孔连接141、142、143、144、145、146、147和148,在总线树结构132B的每个端点处将总线树结构132B连接到处理器对P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B、P6A/P6B、P7A/P7B和P8A/P8B。因为这些垂直过孔互连相对较短,所以每个上/下处理器对可以被视为全局总线132B上的单个垂直下降。再次地,使用垂直过孔141、142、…、148在对齐后的处理器之间提供了较短的通信路径(与图13中所示的单个垂直总线连接结构134相比)。
[0081]图16示意性地示出了根据本发明的另一个示例性实施例的用于3-D堆叠式多处理器系统的处理器互连结构。图16示意性地示出了 3-D堆叠式处理器结构160,其具有类似于图14的总线框架,只是在下处理器芯片130A上包括并使用附加树结构162A。附加树结构162A可以用于缩短面内处理器之间的通信路径并增加通信带宽。具体地说,在图16的示例性实施例中,树结构162A可以用于在第一处理器芯片130A上的处理器PnA之间的处理器到处理器通信,而不必使用短垂直总线互连141、142、…、148或上部树结构132B。同样,树结构132B可以用于在第二处理器芯片130B上的处理器PnB之间的处理器到处理器通信,而不必使用短垂直总线互连141、142、…、148或下部总线树结构162A。
[0082]在另一种控制方案中,可以结合短垂直互连141、142、…、148同时使用两个树结构162A和132B,以便在任何两个处理器之间提供两个独立的通信路径,从而可以实现通信带宽增加2倍。实际上,假设每个树结构132B和162A是16字节总线,这需要16个周期在处理器之间传送256字节的信息。在该实施例中,可以将通信带宽增加到32字节,方法是在任何两个处理器之间同时使用两个独立的通信路径以便同时发送32字节(每个路径16字节),从而增加通信带宽以便使用16个周期传送512字节的信息。
[0083]在本发明的另一个示例性实施例中,可以构造3-D堆叠式多处理器设备以便包括多个处理器,这些处理器可以结合,并通过选`择性地组合每个垂直堆叠的处理器的最快组件而被配置为单个超快处理器。借助高级技术,相同处理器之间的设备性能可以具有相当大的变化,其中一个处理器的某些子系统可能快于另一个相同处理器的相同子系统,而同时,对于不同子系统,此关系可能相反。实际上,根据设备尺寸和形状的变化以及掺杂变化等,一组在给定晶片上形成、具有相同布局和宏功能组件的相同处理器可以具有比另一个相同处理器的相同组件更快或更慢的组件。
[0084]在这点上,根据本发明的另一个示例性实施例,当不同处理器芯片层上的两个处理器(第一和第二处理器)具有相同的子系统区域布局时,在一种操作模式中,第一和第二处理器可以被配置为作为单个处理器操作,方法是组合第一和第二处理器的对应子系统区域的较快区域并关闭第一和第二处理器的对应子系统区域的较慢区域。现在将参考图17A和17B进一步详细地示出和讨论这些原理。
[0085]具体地说,图17A示意性地示出了根据本发明的一个示例性实施例的具有相同布局的两个处理器,其中两个相同处理器的对应区域被标识为快于或慢于其配对的区域。具体地说,图17A示出了两个相同处理器170A和170B,它们具有十一个相同主区域(宏)R1、R2、R3、R4、R5、R6、R7、R8、R9和Rll。在制造之后,对处理器的这些区域进行速度测试,因为虽然处理器相同,但给定处理器的某些区域将快于/慢于另一个相同处理器的相同区域。在图17A的示例性实施例中,第一处理器170A的区域Rl、R2、R4、R6、R8、R9和Rll被标识为快(标记为“F”)于相同处理器170B上的相同区域。此外,第二处理器170B的区域R2、R5、R7和RlO被标识为快(标记为“F”)于相同处理器170A上的相同区域。
[0086]图17B是根据本发明的一个示例性实施例的3-D堆叠式多处理器系统170的示意图,其包括图17A的处理器170A和170B。具体地说,图17B示意性地示出了根据本发明的一个示例性实施例的3-D堆叠式处理器结构,其通过垂直堆叠图17A中所示的两个处理器形成,并作为包括每个处理器的最快对应区域的单个处理器来操作。在图17中,处理器被对齐并垂直连接,以便对应的区域Rl、R2、…、Rll对齐并彼此相连。两个处理器170A和170B的高速缓存和执行资源垂直相连,使得3-D堆叠式处理器系统170可以以多种模式之一操作。[0087]例如,在一种模式中,处理器170A和170B可以作为独立处理器操作,其中每个处理器活动并以半功率操作,如上面讨论的那样。在另一个示例性实施例中,处理器170A或170B之一可以以满功率或增强的功率(加速模式)操作,而另一个处理器关闭。在另一个实施例中,处理器170A和170B可以作为单个处理器操作,该单个处理器包括来自每个处理器的被标识为最快版本的区域的那些区域,使得产生的处理器可以作为单个超快处理器操作,其速度快于使用仅一个处理器层中的所有组件的速度。例如,在图17B的示例性实施例中,3-D堆叠式处理器结构170可以作为单个处理器操作,该单个处理器包括11个区域,这11个区域包含第一处理器170A的快区域Rl、R2、R4、R6、R8、R9和Rll以及第二处理器170B 的快区域 R2、R5、R7 和 R10。
[0088]在本发明的另一个示例性实施例中,3-D堆叠式多处理器设备可以具有多个结合的处理器,这些处理器在逻辑上作为单个处理器映像操作,但其中至少一个处理器用于“提前运行”功能。具体地说,例如,在具有对齐并彼此垂直相连的第一和第二堆叠式处理器的3-D堆叠式多处理器设备中,第一处理器可以是负责机器的架构状态的主处理器,并且辅助处理器可以在主处理器之前运行以便预先解析分支并生成未命中,同时辅助处理器不受架构或程序的限制,并且不能更改机器的架构状态。
[0089]在该示例性实施例中,第一和第二处理器的高速缓存和执行资源连接在一起,因此它们例如可以以两种备选模式使用一作为独立处理器,其中不使用处理器层之间的连接,或者以协作方式,其中主处理器执行程序而辅助处理器运行程序的较简单版本,以便辅助处理器可以在主处理器之前生成存储器请求并解析分支,主处理器可以使用其结果以避免较长延迟的存储器访问和分支错误预测等。将参考图18进一步详细地描述这种在3-D堆叠式处理器系统中实现提前运行或辅助线程的概念。
[0090]具体地说,图18示意性地示出了根据本发明的一个示例性实施例的用于在3-D堆叠式处理器系统中实现提前运行功能的方法。具体地说,图18示出了操作主线程的主处理器针对在主处理器和辅助处理器之间共享的存储器执行的多个操作181和182,以及作为与主处理器协作的提前运行线程操作的辅助处理器执行的多个操作184、185、186、187、188和 189。
[0091]具体地说,如图18中所示,当在3-D堆叠式处理器系统中执行程序时,主处理器从存储器183取回指令(181)并执行每个程序指令(182)。当执行指令时,主处理器将从共享存储器183取回并存储程序数据,并且维护对所有外部实体可见的机器状态(存储)。换言之,主处理器正确执行程序,因为主处理器以正确顺序执行指令操作,并且仅当已知状态更改正确时,才向系统的其余部分显示状态更改信息。但是,为使程序执行更快并具有更高的指令级并行性,辅助处理器作为“提前运行处理器”操作,其中辅助处理器不保证正确和合法的操作,并且不向系统的其余部分显示状态更改。相反,它以推测方式尽可能快地运行,并且不考虑与程序流无关的指令。通过以这种方式操作,提前运行处理器将在主处理器之前解析许多分支并生成许多必需的高速缓存未命中。这将允许主处理器比正常情况下运行更快。
[0092]具体地说,如图18中所示,辅助处理器将从共享存储器183取回指令(184)并执行某些指令(例如数据取回指令),并且响应于数据取回指令,从共享存储器183取回数据(185)。辅助处理器将执行数据存储指令并执行存储器访问操作(186),以便确定必需的数据是否存储在存储器183中。辅助处理器将执行简单指令(187)并执行分支指令(188),并且丢弃或以其他方式忽略与确定高速缓存未命中或解析分支重定向不相关的所有其它取回的指令(189)。在步骤186,当辅助处理器看到数据存储指令出现时,辅助处理器将确定对于要存储的数据是否存在高速缓存行。如果高速缓存行不存在,则辅助处理器将生成高速缓存未命中并继续以便为数据存储分配高速缓存行,并获得适当的权限以便将数据存储在新分配的高速缓存行中(即,确保新高速缓存行的状态处于“数据存储就绪”状态)。如果高速缓存行已经存在,则辅助处理器将确定高速缓存行是否处于“数据存储就绪”状态,并且继续获得适当的权限(如果未获得)。通过这种方式,当主处理器执行数据存储指令时,高速缓存行将可用并处于“存储就绪”状态,从而避免在执行流中出现高速缓存未命中。
[0093]辅助处理器(提前运行处理器)通过在主处理器看到意外事件之前解决这些事件,加快主处理器的速度。辅助处理器可以以这种方式操作,因为它不必执行每个指令,并且不必正确执行程序操作。在3-D堆叠式配置中,因为主处理器和辅助处理器在空间上重合并通过较短垂直连接相连,所以它们能够共享和查看执行状态,并且以其他方式比共面(coplanar)配置更容易且可靠地同步,在共面配置中将需要较长导线来交换正确的同步信息。即使在共面处理器之间使用共面布线,共面处理器也可能无法同时查看彼此的状态。在3-D堆叠式配置中,可以更容易地通过主处理器和辅助处理器的资源之间的短垂直连接实现辅助线程和主线程之间的通信和交互,以便共享值和以其他方式同步过程流。
[0094]在本发明的另一个示例性实施例中,3-D堆叠式多处理器设备可以具有多个结合的处理器,这些处理器在逻辑上作为单个处理器映像操作,但其中它们架构存储的各部分作为专用存储空间(或临时空间)操作,3-D堆叠外部的处理器不可访问该专用存储空间。换言之,多个处理器可以被结合成具有专用存储区域的单个操作实体(从外部看,为“处理器”),该专用存储区域可以用于临时空间并组织其它数据结构,其中专用存储对系统中的其它操作实体不可见。当一个处理器元组以提前运行模式或超加速模式或任何其它分组模式作为单个逻辑处理器运行时,该元组的一个或多个高速缓存可以被用作具有专用结构的专用存储。
[0095]在本发明的其它示例性实施例中,如图19中所示,根据本发明的一个示例性实施例,3-D堆叠式处理器结构可以通过垂直堆叠多个处理器形成,每个处理器具有类似的状态寄存器布局,其中多个处理器可以独立或以协作方式操作以便共享其状态寄存器。更具体地说,图19示意性地示出了第一处理器190A和第二处理器190B,它们垂直堆叠以形成3-D堆叠式处理器结构190。在图19的示例性实施例中,每个处理器190A和190B具有相同的状态寄存器布局(总体通过包含一个或多个矩形的多个组不出)。例如,第一处理器190A和第二处理器190B具有相同的状态寄存器组191A和191B,它们分别布置在相应处理器的基本相同的2-D区域中。应该理解,对每个处理器190A和190B上的状态寄存器组(矩形组)的图示是任意的,并且只是意味着总体示出包含其状态寄存器的处理器。
[0096]在处理器的每个操作周期结束时,每个处理器190A和190B上的状态寄存器组用于存储相应处理器190A和190B的“状态”。术语“状态”指完全捕获在给定处理器上执行的程序的执行状态(执行中的程序到目前为止执行的操作)所需的信息。“状态”包括包含在通用寄存器、控制寄存器、条件码、地址寄存器,以及保存重要状态信息的任何其它寄存器中的信息,如本领域的技术人员理解的那样。假设程序在第一处理器190A上执行。在程序执行中的某一给定点(在处理器190A的完整操作周期结束时),可以从第一处理器190A的状态寄存器扫描输出第一处理器190A的“状态”并将其存储在第二处理器190B的对应状态寄存器中,并且第二处理器190B可以使用被存储在第二处理器190B的状态寄存器中的扫描输入的状态信息,在第一处理器190A上停止执行的点处开始执行同一程序。在这点上,程序可以从第一处理器190A上的停止点而继续在第二处理器190B上运行,并且程序将不能辨别它已被移动到不同处理器。因此,“状态”是捕获所需任何事物(有关任何周期中的运行中的处理器)需要的所有静态信息。“状态”是完全指定所有信息(与在处理器上运行的程序相关)的寄存器组。
[0097]一般而言,图19的3-D堆叠式结构190可以使用上面讨论的技术来制造,其中处理器190A和190B可以堆叠在彼此之上并垂直连接,使得每层处理器190A和190B的状态寄存器组(和其它组件)使用短垂直互连“对齐”并互连。如上所述,术语“对齐”指每层处理器190A和190B的对应组件直接布置在彼此之上(在每层垂直3D空间中占用基本相同的2D空间),或者按固定位移均匀交错,如果处理器190A和190B以某一偏移附接以便产生较低的功率密度,如上面讨论的那样。通过这种方式,通过在状态寄存器和其它组件之间实现适当的垂直连接,3-D堆叠式处理器190可以以多种模式之一操作。
[0098]图20是示出图19的3-D堆叠式处理器结构的多种操作模式的表。例如,如图20中所示,在一种操作模式(“正常”模式)中,第一和第二处理器190A和190B可以作为独立处理器操作,其中每个处理器190A和190B均活动(接通)并且操作功率低于满功率(例如,每个处理器以半功率操作)。在另一种操作模式(“加速”模式)中,一个处理器190A (或190B)以满功率操作,而另一个处理器关闭。在“正常”模式中,每个处理器190A和190B可以以其最大功率的一半操作,使得处理器对与以满速度运行(加速模式)的单个处理器具有相同的电源足迹(power footprint)。可以采用“正常”操作模式,使得相同的电源和冷却基础架构可以处理两种情况,即,单个处理器以满速度运行(加速模式),或者处理器对以降低的速度运行(正常模式)。
[0099]应该理解,术语“满速度”或“满功率”或“最大安全速度”如在此使用的,均指给定处理器针对所有可能情况和输入正确操作的操作速度。给定处理器的最大安全速度是一种操作特性,其针对给定处理器产品使用各种计算机模拟、建模和测量事先确定。处理器产品被宣传为以该速度作为其最大速度,而且它不会比该速度运行更快。实际上,对于给定处理器可以操作的大多数可能状态,并且对于大多数可能程序和输入,处理器的实际运行可以快于“最大安全速度”。但是,因为当处理器在超过其已知的“最大安全速度”操作时,状态和输入的某些组合可以导致操作错误,所以通常设置“满速度”限制,使得在处理器操作的任何操作条件和情况下,不会发生任何问题。
[0100]在本发明的另一个示例性实施例中,如图20的表中所示,图19的示例性3-D结构190可以以被称为“超加速”的模式操作,其中一个处理器(例如,处理器190A)可以以大于满功率操作(操作速度快于处理器的最大安全速度),而另一个处理器(例如,处理器190B)被停用(关闭),但其中活动的处理器使用被停用处理器的状态寄存器来为活动处理器的状态“设置检查点”。在该示例性实施例中,使用堆叠中的另一个不活动的处理器的状态寄存器增强堆叠中的活动的处理器的架构,以使活动的处理器能够以增强的(超加速)操作速度操作,同时在完成活动的处理器的每个操作周期时,使用不活动的处理器的状态寄存器存储当前状态信息,以便在活动的处理器以高于被视为“安全”速度的增加操作速度操作期间发生执行错误的情况下,为活动的处理器的状态“设置检查点”。
[0101]图21是示出根据本发明的一个示例性实施例的以“超加速”模式操作的图19的3-D堆叠式处理器结构190的一种操作模式的流程图。首先,可以选择性地控制图19的处理器堆叠190以进入“超加速”模式,方法是激活主处理器(例如,处理器190A)以便以高于其“最大安全速度”的速度操作,并关闭辅助处理器(例如,处理器190B),同时允许辅助(不活动)处理器的状态寄存器保持活动以供主处理器使用(步骤200)。在执行给定程序期间,当完成每个操作周期时,主处理器将开始下一操作周期(步骤201)。如果完成当前周期(步骤202的肯定结果),并且在当前周期中没有发生错误(步骤203的否定结果),则在辅助处理器的状态寄存器中为主处理器的当前状态(当完成当前周期时)设置检查点(存储)(步骤204),并且将开始下一操作周期(步骤201)。
[0102]如果在当前操作周期中发生某些错误(步骤203的肯定结果),则通过复制辅助处理器的状态寄存器中的已设置检查点的状态的当前内容,将主处理器的状态回滚一个周期(步骤205)。辅助处理器的状态寄存器中的已设置检查点的状态是在完成主处理器的上一操作周期的时间点存在的主处理器的状态寄存器的状态。然后主处理器(使用从辅助处理器的状态寄存器访问的已设置检查点的状态)恢复当前操作周期(其中发生错误)(步骤206)。在一个示例性实施例中,该过程(步骤206)优选地使用以其“安全”最大速度运行的主处理器执行,以便确保这次正确执行在较高速度时导致问题的程序操作而没有错误。
[0103]一旦完成当前操作周期(以正常安全速度执行)(步骤207的肯定结果),在辅助处理器的状态寄存器中为主处理器的当前状态设置检查点(步骤208)。此后,处理器堆叠返回超加速模式,其中主处理器开始以高于其最大安全速度的操作速度操作(步骤200)。在图21的示例性过程中,因为针对每个完整的操作周期为主处理器的状态设置检查点,并且因为使用堆叠几何形状,恢复操作简单且快速(即,通过使用辅助处理器的状态寄存器中的状态检查点的内容(经由垂直连接访问)刷新主处理器的状态寄存器而恢复状态),所以主处理器可以以高于其最大安全速度的速度运行。
[0104]尽管参考附图在此描述了本发明的示例性实施例,但是应当理解,本发明并不限于这些精确的实施例,并且在不偏离所附权利要求的范围的情况下,本领域的技术人员可以对本发明做出各种其它更改和修改。
【权利要求】
1.一种处理器系统,包括: 第一处理器芯片,其包括第一处理器,所述第一处理器具有第一组状态寄存器; 第二处理器芯片,其包括第二处理器,所述第二处理器具有与所述第一组状态寄存器对应的第二组状态寄存器, 其中所述第一和第二处理器芯片以堆叠式配置相连,并且所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连;以及 模式控制电路,其用于以多种操作模式之一选择性地操作所述处理器系统,其中在第一操作模式中,所述第一处理器活动而所述第二处理器不活动,并且其中第一处理器以高于所述第一处理器的最大安全速度的速度操作,并且其中所述第一处理器使用所述第二处理器的所述第二组状态寄存器,以便为包含在所述第一组状态寄存器中的所述第一处理器的状态设置检查点。
2.根据权利要求1的处理器系统,其中所述第一和第二处理器的所述第一和第二组寄存器的布局基本相同。
3.根据权利要求1的处理器系统,其中在所述第一操作模式中,在所述第一处理器的当前操作周期期间,在所述第一处理器的所述第一组状态寄存器中维护并更新所述第一处理器的当前状态,然后在所述第一处理器的所述当前操作周期完成时,将所述第一处理器的当前状态存储在所述第二处理器的对应第二组状态寄存器中。
4.根据权利要求3的处理器系统,其中当在所述第一处理器的所述当前操作周期期间发生执行错误时,通过将已设置检查点的状态从所述第二处理器的所述第二组状态寄存器复制到所述第一处理器的所述第一组状态寄存器中而回滚所述第一处理器的状态,其中从复制到所述第一处理器的所述第一组状态寄存器中的所述已设置检查点的状态开始,恢复所述当前操作周期。`
5.根据权利要求4的处理器系统,其中在所述第一操作模式中,恢复所述当前操作周期,并且所述第一处理器以所述第一处理器的所述最大安全速度操作。
6.根据权利要求4的处理器系统,其中通过所述第一和第二处理器芯片之间的所述垂直连接,从所述第二处理器的所述第二组状态寄存器访问所述已设置检查点的状态。
7.根据权利要求1的处理器系统,其中在第二操作模式中,所述第一处理器芯片活动并且所述第二处理器芯片活动,并且所述第一和第二处理器不共享所述第一和第二组状态寄存器。
8.根据权利要求7的处理器系统,其中在所述第二操作模式中,所述第一处理器和第二处理器的操作功率均低于它们的满功率,使得所述处理器系统的总功率与所述第一或第二处理器以满功率操作时的所述处理器系统的总功率基本相同。
9.一种半导体封装,包括: 封装衬底;以及 处理器系统,其包括安装在所述封装衬底上的多个3-D堆叠式处理器芯片,其中每个3-D堆叠式处理器芯片包括: 第一处理器芯片,其包括第一处理器,所述第一处理器具有第一组状态寄存器; 第二处理器芯片,其包括第二处理器,所述第二处理器具有与所述第一组状态寄存器对应的第二组状态寄存器,其中所述第一和第二处理器芯片以堆叠式配置相连,并且所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连;以及 模式控制电路,其用于以多种操作模式之一选择性地操作所述处理器系统,其中在第一操作模式中,所述第一处理器芯片活动而所述第二处理器芯片不活动,并且其中第一处理器以高于所述第一处理器的最大安全速度的速度操作,并且其中所述第一处理器使用所述第二处理器的所述第二组状态寄存器,以便为包含在所述第一组状态寄存器中的所述第一处理器的状态设置检查点。
10.一种用于操作计算机处理器的方法,所述计算机处理器包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片,其中所述第一和第二处理器芯片以堆叠式配置相连,并且所述第一和第二处理器通过所述第一和第二处理器芯片之间的垂直连接而相连,所述方法包括: 生成第一控制信号以便以第一操作模式来操作所述计算机处理器,其中所述第一处理器活动而所述第二处理器不活动,并且其中第一处理器以高于所述第一处理器的最大安全速度的速度操作,并且其中所述第一处理器使用所述第二处理器的所述第二组状态寄存器,以便为包含在所述第一组状态寄存器中的所述第一处理器的状态设置检查点;以及 生成第二控制信号以便以第二操作模式来操作所述计算机处理器,其中所述第一和第二处理器独立地操作。
11.根据权利要求10的方法,其中所述第一和第二处理器的所述第一和第二组寄存器的布局基本相同。
12.根据权利要求10的方法,还包括: 在所述第一处理器的当前操作周`期期间,在所述第一处理器的所述第一组状态寄存器中维护并更新所述第一处理器的当前状态,以及 在所述第一处理器的所述当前操作周期完成时,将所述第一处理器的当前状态存储在所述第二处理器的对应第二组状态寄存器中。
13.根据权利要求12的方法,还包括: 当在所述第一处理器的所述当前操作周期期间发生执行错误时,通过将已设置检查点的状态从所述第二处理器的所述第二组状态寄存器复制到所述第一处理器的所述第一组状态寄存器中而回滚所述第一处理器的状态;以及 从复制到所述第一处理器的所述第一组状态寄存器中的所述已设置检查点的状态开始,恢复所述当前操作周期。
14.根据权利要求13的方法,其中恢复所述当前操作周期,并且所述第一处理器以所述第一处理器的所述最大安全速度操作。
15.根据权利要求13的方法,还包括:通过所述第一和第二处理器芯片之间的所述垂直连接,从所述第二处理器的所述第二组状态寄存器访问所述已设置检查点的状态。
16.根据权利要求10的方法,其中在所述第二操作模式中,所述第一处理器活动并且所述第二处理器活动,并且所述第一和第二处理器不共享所述第一和第二组状态寄存器。
17.根据权利要求16的方法,其中在所述第二操作模式中,所述第一处理器和第二处理器的操作功率均低于它们的满功率,使得所述处理器系统的总功率与所述第一或第二处理器以满功率操作时的所述处理器系统的总功率基本相同。
【文档编号】G06F15/16GK103514139SQ201310261509
【公开日】2014年1月15日 申请日期:2013年6月27日 优先权日:2012年6月28日
【发明者】A·布于克托苏诺格卢, P·G·埃玛, A·M·哈特斯泰因, M·B·希利, K·K·凯拉斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1