CN104050141B - 具有局部电力和冷却层以及全局互连的计算机处理器系统 - Google Patents

具有局部电力和冷却层以及全局互连的计算机处理器系统 Download PDF

Info

Publication number
CN104050141B
CN104050141B CN201410090673.0A CN201410090673A CN104050141B CN 104050141 B CN104050141 B CN 104050141B CN 201410090673 A CN201410090673 A CN 201410090673A CN 104050141 B CN104050141 B CN 104050141B
Authority
CN
China
Prior art keywords
processor
multichip
chip
computer processor
layer
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.)
Active
Application number
CN201410090673.0A
Other languages
English (en)
Other versions
CN104050141A (zh
Inventor
A·布于克托苏诺格卢
P·G·埃玛
A·M·哈特斯泰因
M·B·希利
K·K·凯拉斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104050141A publication Critical patent/CN104050141A/zh
Application granted granted Critical
Publication of CN104050141B publication Critical patent/CN104050141B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • 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
    • 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16151Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
    • H01L2224/16221Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
    • H01L2224/16225Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/73Means for bonding being of different types provided for in two or more of groups H01L2224/10, H01L2224/18, H01L2224/26, H01L2224/34, H01L2224/42, H01L2224/50, H01L2224/63, H01L2224/71
    • H01L2224/732Location after the connecting process
    • H01L2224/73251Location after the connecting process on different surfaces
    • H01L2224/73253Bump and layer connectors
    • 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

Abstract

本发明涉及一种具有局部电力和冷却层以及全局互连的计算机处理器系统。一种计算机处理器系统包括以物理方式聚合和结合的多个多芯片系统。每个多芯片系统包括结合在一起的多个芯片,以及局部互连和输入/输出布线层。全局互连网络连接到每个多芯片系统的所述局部互连和输入/输出布线层以便将所述多芯片系统互连在一起。一个或多个所述多芯片系统包括结合在一起的多个处理器芯片。

Description

具有局部电力和冷却层以及全局互连的计算机处理器系统
技术领域
本领域一般地涉及三维计算机处理器系统,具体地说,涉及包括多个多芯片系统的三维计算机处理器系统,这些多芯片系统采用包括多个局部电力和冷却层的聚合结构,以及在聚合结构中连接多芯片系统的全局互连结构。
背景技术
在半导体处理器芯片制造领域中,在处理器技术的早期阶段,许多公司都制造单芯片处理器。在过去十年左右的时间里,随着摩尔定律继续缩小尺寸,许多公司和其它实体设计了在单个层上包含多个处理器的处理器芯片。但是,随着每个芯片的处理器数量继续增加,处理器之间的片上通信成为问题。例如,随着处理器芯片的2D大小增加以容纳更多处理器,处理器之间的水平布线长度增加(在毫米或厘米范围之内),从而导致处理器之间的通信的周期延迟,并且需要沿着处理器之间的通信路径使用高功率的片上驱动器。此外,随着工作频率增加,有关处理器之间的通信的周期延迟增加。此外,随着集成密度增加,以下操作越来越成为问题并且成本高昂:在多芯片系统中实现全局互连方案以便连接多个处理器,以及实现高效冷却结构以便适当地去除由多芯片结构中的高功率、高密度处理器芯片生成的热量。
发明内容
本发明的各实施例一般地包括三维计算机处理器系统,具体地说,包括包含多个多芯片系统的三维计算机处理器系统,这些多芯片系统采用包括多个局部电力和冷却层的聚合结构,以及在聚合结构中连接多芯片系统的全局互连结构。
在本发明的一个实施例中,一种计算机处理器系统包括以物理方式聚合和结合的多个多芯片系统。每个多芯片系统包括结合在一起的多个芯片,以及局部互连和输入/输出布线层。全局互连网络连接到每个多芯片系统的所述局部互连和输入/输出布线层以便将所述多芯片系统互连在一起。一个或多个所述多芯片系统包括结合在一起的多个处理器芯片。
在本发明的另一个实施例中,一种计算机处理器系统包括多个多芯片系统。每个多芯片系统包括结合在一起的多个芯片、局部互连和输入/输出布线层。一个或多个多芯片系统包括结合在一起的多个处理器芯片。全局互连网络连接到每个多芯片系统的所述局部互连和输入/输出布线层以便将所述多芯片系统互连在一起。所述多个多芯片系统彼此平行地边缘安装(edge-mounted)到所述衬底。
从以下将结合附图阅读的对本发明的各实施例的详细描述,将描述这些和其它实施例或者使它们变得显而易见。
附图说明
图1是多处理器芯片的示意透视图;
图2是根据本发明的一个示例性实施例的3D层叠式多处理器结构的示意透视图;
图3是芯片封装结构的示意图;
图4在概念上示出根据本发明的另一个示例性实施例的3D层叠式多处理器结构;
图5示意性地示出根据本发明的另一个示例性实施例的3D层叠式多处理器结构的物理实现,其基于图4中所示的概念实现;
图6示意性地示出根据本发明的一个示例性实施例的用于控制3D层叠式多处理器结构的多模式操作的方法;
图7是可以应用本发明的原理的处理器的示意平面图;
图8是根据本发明的一个示例性实施例的3D层叠式多处理器设备的示意透视图,其包括具有与图7所示相同的处理器布局的一对处理器;
图9A是根据本发明的一个示例性实施例的3D层叠式多处理器设备的示意透视图,其包括具有对齐的L2和L3高速缓存的在彼此之上垂直层叠的第一和第二处理器;
图9B是根据本发明的一个示例性实施例的图9A的3D层叠式多处理器设备的示意透视图,其具有结合的L3高速缓存以便由第一和第二处理器用作共享L3高速缓存;
图9C是根据本发明的一个示例性实施例的图9A的3D层叠式多处理器设备的示意透视图,其具有结合的L3高速缓存以及L2高速缓存以便由第一和第二处理器用作共享L2高速缓存和共享L3高速缓存;
图10是根据本发明的另一个示例性实施例的3D层叠式多处理器设备的示意透视图;
图11示意性地示出根据本发明的一个示例性实施例的图10中所示的处理器的各种组件之间的通信路径;
图12示意性地示出用于平面处理器系统的处理器互连结构;
图13示意性地示出根据本发明的一个示例性实施例的用于3D层叠式多处理器系统的处理器互连结构;
图14示意性地示出根据本发明的另一个示例性实施例的用于3D层叠式多处理器系统的处理器互连结构;
图15是根据本发明的一个示例性实施例的3D层叠式多处理器系统的示意顶部透视图,其具有基于图14的处理器互连结构的处理器互连结构;
图16示意性地示出根据本发明的另一个示例性实施例的用于3D层叠式多处理器系统的处理器互连结构;
图17A示意性地示出根据本发明的一个示例性实施例的具有相同布局的两个处理器,其中两个相同处理器的对应区域被标识为快于或慢于其对应区域;
图17B示意性地示出根据本发明的一个示例性实施例的3D层叠式处理器结构,其通过垂直层叠图17A中所示的两个处理器形成,并且作为由每个处理器的最快对应区域组成的单个处理器操作;
图18示意性地示出根据本发明的一个示例性实施例的用于在3D层叠式处理器系统中实现预运行功能的方法;
图19示意性地示出根据本发明的一个示例性实施例的通过垂直层叠多个处理器形成的3D层叠式处理器结构,每个处理器具有类似的状态寄存器布局,其中多个处理器可以独立或以协作方式工作以便共享其状态寄存器;
图20示出图19的3D层叠式处理器结构的多种操作模式;
图21是示出图19的3D层叠式处理器结构的一种操作模式的流程图;
图22示意性地示出可以应用本发明的各实施例的存储阵列;
图23A、23B和23C共同示出根据本发明的一个示例性实施例的用于构造包括具有不同存取模式的多个级别存储器的存储结构的方法;
图24示意性地示出用于将存储在两个4×4存储块A和B中的矩阵相乘并且将矩阵相乘结果存储在4×4存储块C中的过程;
图25示意性地示出根据本发明的一个示例性实施例的使用单个基元(primitive)操作存取存储块的行和列的方法;
图26示出根据本发明的一个示例性实施例的包括存储单元阵列和对角线存取布线模式的存储阵列;
图27示出根据本发明的另一个示例性实施例的包括存储单元阵列和对角线存取布线模式的存储阵列;
图28示出根据本发明的另一个示例性实施例的包括存储单元阵列和列移位后的存取布线模式的存储阵列;
图29示意性地示出根据本发明的一个示例性实施例的在多个级别的存储装置上实现3D存取模式的3D存储结构;
图30A、30B和30C示意性地示出根据本发明的示例性实施例的用于使用图29的示例性3D存储结构沿着各种维度存取数据的方法;
图31示出根据本发明的一个示例性实施例的用于将2D数据阵列结构存储在存储器中的方法,其中在一个操作中实现存取行和列;
图32示意性地示出根据本发明的一个示例性实施例的用于将3D数据阵列存储在3D存储结构中的方法;
图33是可以应用本发明的各实施例的多芯片系统的侧面示意图;
图34是可以应用本发明的各实施例的3D计算机处理器系统的高级透视图;
图35是根据本发明的一个实施例的多芯片系统的侧面示意图;
图36示出根据本发明的一个实施例的3D计算机处理器系统,其通过结合图35中所示的多个多芯片系统来构造;
图37示意性地示出根据本发明的各实施例的用于将全局总线连接到3D计算机处理器系统的每个多芯片系统的技术;
图38示出根据本发明的另一个实施例的3D计算机处理器系统;
图39示出根据本发明的另一个实施例的3D计算机处理器系统。
具体实施方式
现在将针对通过以层叠式配置连接处理器形成的3D多处理器设备,以及用于控制3D层叠式多处理器设备以便选择性地以多种资源聚合和共享模式之一操作的方法,进一步详细地描述本发明的示例性实施例。
图1是可以应用本发明的原理的多处理器芯片的示意透视图。具体地说,图1示意性地示出包括半导体管芯12的多处理器芯片10,半导体管芯12具有在管芯12上形成的多个处理器C1、C2、...、C49(总体表示为Cn)。处理器Cn被布置在“平面”系统中,其中在2D空间中每个处理器Cn具有它自己的专用占用空间。可以使用作为芯片10的BEOL(后段制程)结构的一部分形成的水平布线和电互连,在2D平面中将处理器Cn彼此相连,如所属技术领域的普通技术人员很容易理解的那样。
在如图1中所示的平面系统中,随着处理器数量增加,处理器之间的通信成为问题。例如,随着芯片的2D大小增加以容纳更多处理器,处理器之间的水平布线长度增加(在毫米或厘米范围之内),从而导致处理器之间的通信路径中的周期延迟。这种周期延迟需要沿着处理器之间的通信路径使用高功率的片上驱动器。此外,随着工作频率增加,这种周期延迟也增加。
本发明的原理利用芯片层叠技术,以便使用多个处理器芯片层形成3D层叠式多处理器结构,其中两个或更多处理器芯片被集成到具有单芯片“占用空间”的单个层叠式系统(即,层叠式处理器芯片看似单个芯片)。术语“处理器芯片”如在此使用的那样,指具有一个或多个处理器的任何半导体芯片或管芯。术语“多处理器芯片”如在此使用的那样,指具有两个或更多处理器的任何半导体芯片或管芯。一般而言,在3D层叠式结构中,两个或更多芯片层包括对齐并使用短垂直互连而互连的处理器,以便一个层中的处理器对齐并垂直连接到另一个层中的对应处理器。应该理解,当不同处理器芯片层上的两个不同处理器或处理器组件/元件被称为彼此“对齐”时,术语“对齐”例如指两个不同处理器或处理器组件/元件在不同层上彼此至少部分重叠或完全重叠。在这点上,不同处理器芯片层上的两个处理器或处理器组件/元件可以完全对齐,因为处理器或组件在3D处理器芯片层叠中的每个平面的相同2D位置中。备选地,处理器或处理器组件/元件可以基本对齐,但在3D处理器芯片层叠中的每个平面的2D位置之间具有某种偏移。
例如,图2是根据本发明的一个示例性实施例的3D层叠式多处理器结构的示意透视图。具体地说,图2示意性地示出3D层叠式多处理器芯片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)对齐并使用垂直互连彼此相连。
使用图2中所示的示例性结构,每个对齐的处理器层叠CnA/CnB包括多个垂直连接的处理器,它们共同共享相同的I/O连接。这些I/O连接在内部多路复用,以便在2D空间中的每个处理器位置处,多个垂直层叠(并连接)的处理器CnA/CnB(对其它层叠式处理器而言)逻辑上看似作为单个处理器操作和运行。可以扩展本发明的原理以便包括多个3D层叠式处理器芯片(例如图2中所示),它们共同封装在封装衬底上。现在将参考图3、4和5进一步详细地讨论这些原理。
图3是可以应用本发明的原理的芯片封装结构的示意图。具体地说,图3示出处理器系统30,其包括封装衬底32以及安装在封装衬底32上的多个处理器芯片P1、P2、P3、P4、P5和P6。封装衬底32包括多个电互连和迹线,它们形成在处理器芯片P1、P2、P3、P4、P5和P6之间提供多对多连接的电布线34。每个处理器芯片P1、P2、P3、P4、P5和P6都相同,并且可以是均具有多个处理器的多处理器芯片。
图4和5示意性地示出根据本发明的另一个示例性实施例的3D层叠式处理器系统。具体地说,图4是示例性3D层叠式多处理器封装结构40的概念图。类似于图3中所示的封装结构30,图4的3D层叠式多处理器封装结构40包括封装衬底32以及安装在封装衬底32上的多个第一层处理器芯片P1A、P2A、P3A、P4A、P5A和P6A。封装衬底32包括多个电互连和迹线,它们形成在处理器芯片P1A、P2A、P3A、P4A、P5A和P6A之间提供多对多连接的电布线34。每个处理器芯片P1A、P2A、P3A、P4A、P5A和P6A都相同,并且可以是均具有多个处理器的多处理器芯片。
如图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通信。
图5示意性地示出根据本发明的另一个示例性实施例的3D层叠式多处理器结构50的物理实现,其基于图4中所示的概念实现。如图5中所示,物理上存在于3D层叠式多处理器封装结构50中的仅有布线是在封装衬底32上形成的布线34,以及在对应的处理器芯片层叠P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B和P6A/P6B之间形成的短垂直互连36。在图5的3D层叠式多处理器封装结构50中,给定垂直层叠P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B和P6A/P6B中的处理器芯片将使用在处理器芯片之间形成的垂直连接36彼此通信(并且这些垂直连接36包括在不同处理器芯片层中的对应的对齐处理器之间形成的连接)。
根据本发明的示例性实施例,可以使用已知的半导体制造技术结合两个处理器芯片,其中两个相同的处理器芯片可以“面对背”或“面对面”结合在一起。在“面对背”配置中,将第一处理器芯片的活动表面(面)结合到第二处理器芯片的不活动表面(背),其中两个处理器芯片的处理器和其它对应元件均对齐。使用这种结构,垂直布线(例如,导电过孔)可以在第一处理器芯片的活动表面中形成,并在第一处理器芯片的活动表面上显示为第一接触垫阵列,并且垂直布线(例如,硅通孔)可以通过第二处理器芯片的背面形成,并在第二处理器芯片的不活动表面上显示为第二接触垫阵列。当第一和第二处理器芯片面对背结合时,可以将第一和第二接触垫阵列焊接在一起,从而在对齐的处理器元件之间形成短垂直连接。为了缩短垂直连接的长度,可以使用已知技术研磨第二处理器芯片的背面,以使管芯更薄。
在“面对面”配置中,其中结合两个相同的处理器芯片(功能相同,它们作为彼此镜像),以便将第一处理器芯片的活动表面(面)结合到第二处理器芯片的活动表面(面),并且两个芯片的处理器和其它元件对齐。使用这种结构,垂直布线(例如,导电过孔)可以在第一处理器芯片的活动表面中形成,并在第一处理器芯片的活动表面上显示为第一接触垫阵列,并且垂直布线可以在第二处理器芯片的活动表面中形成,并在第二处理器芯片的活动表面上显示为第二接触垫阵列。当第一和第二处理器芯片面对面结合时,可以将第一和第二接触垫阵列焊接在一起,从而在对齐的处理器元件之间形成短垂直连接。
使用3D层叠式处理器系统,可以通过聚合和/或共享资源独立或协作操作两个或更多处理器,这些处理器在其平面空间中大约(或几乎)位于一起但位于不同层上,以便增强功能并促使工作阈值、可靠性和性能高于平面系统(其中在2维封装中,每个芯片具有它自己的空间)中实际获得的工作阈值、可靠性和性能。下面将参考图6~18进一步详细地讨论用于控制3D层叠式多处理器以便选择性地以一种或多种多资源聚合和/或共享模式来操作的各种方法。一般而言,对于某些应用,用于选择性地控制3D层叠式多处理器的示例性方法能够同时但彼此独立地操作一组层叠式处理器。对于下面讨论的其它应用,可以使用处理器层之间的短垂直连接作为快速通信路径,通过跨各层共享或聚合资源(例如,线程、执行单元、高速缓存等),控制两个或更多垂直层叠的处理器以便选择性地以协作方式操作,从而提供增强的操作。
根据本发明的各示例性实施例,采用控制方案以控制两个或更多垂直层叠的处理器的多模式操作,以便可以选择性地控制垂直层叠中的处理器独立或以协作方式操作。例如,图6示意性地示出根据本发明的一个示例性实施例的用于控制3D层叠式多处理器结构的多模式操作的方法。具体地说,图6中所示的控制方案60包括多路复用器61,其选择性地接收多个配置参数组62和64以及配置模式控制信号66作为输入。选择性地输出不同的配置参数组A和B作为到给定垂直处理器层叠的机器输入68,其中机器输入配置处理器层叠以便以机器输入68指定的多种不同操作模式之一操作。尽管为了易于说明示出两个输入配置参数组A和B,但多路复用器61可以输入并选择性地输出三个或更多不同的配置参数组。应该理解,图6的控制方案是一个处理器层叠的本地系统,并且给定处理器系统中的每个处理器层叠将具有图6中所示的对应控制电路。
图6的控制系统60可以由全局控制系统(例如服务处理器)控制,该全局控制系统扫描控制信息并将配置控制信号66输出到处理器系统中的每个多路复用器61,以便以给定方式配置处理器层叠。可以使用垂直层叠的处理器的内部(片上)电路对从每个多路复用器61输出到对应处理器层叠的机器输入68进行进一步多路复用和/或解码,以便控制各种I/O端口(要被共享或绕过)和其它开关,可以采用这些开关在给定处理器层叠中的不同处理器层之间控制资源的共享和/或聚合。
在下面讨论的本发明的各种示例性实施例中,当垂直层叠中的两个或更多处理器在空间上重合时,可以以各种方式协同组合处理器及其组件,以便为处理器元组系统(processor-tupled system)提供多种新用途,从而提高性能。首先,应该注意,因为垂直处理器层叠将两个或更多处理器(更多或更少—确切或大约)正好放在彼此之上,所以作为最初印象,这似乎不切实际,因为它使得与任何热点(往往主要位于处理器中)关联的热量加倍。在这点上,可以实现示例性控制方案,以便通过以较低功率级别运行层叠式处理器(例如,通过调节工作电压和/或工作频率),控制位于一起的处理器叠层的功率,以便可管理总功率(例如,总功率密度和/或总功耗)。
更具体地说,在本发明的一个示例性实施例中,可以以多种操作模式之一操作3D层叠式处理器设备(通过垂直层叠并连接多个处理器芯片制造),以便控制3D层叠式处理器设备的功率。例如,在具有第一和第二处理器芯片的3D层叠式处理器设备中,可以选择性地以第一模式操作3D层叠式处理器设备,其中第一处理器芯片开启而第二处理器芯片关闭。在第一模式中,第一处理器芯片的每个处理器开启,并可以以最大频率和满功率工作,并且具有封装结构可以支持的总功率(例如,针对给定封装结构,控制某些热点处的功率密度,以便封装中的给定热点处的热量不会过多)。
在另一种操作模式中,可以选择性地以第二模式操作3D层叠式处理器设备,其中第一和第二处理器芯片都开启。在这种情况下,两个处理器芯片可以以最大频率和功率级别工作,并且具有封装结构可以支持的总功率(例如,功率密度或功耗)。在另一种情况下,在第二操作模式中,第一和第二处理器芯片的每个处理器可以不超过满功率工作,以便3D层叠式处理器设备的总功率与仅有第一处理器芯片或第二处理器芯片的每个处理器以满功率和/或最大频率工作时的3D层叠式处理器设备的总功率基本相同。换言之,为了获得相同的功耗或功率密度分布,每个处理器芯片层中的处理器可以以较低电源电压(或较低工作频率)工作,以便聚合功耗与其中仅有一个处理器芯片层上的处理器活动的第一模式相同或类似。
根据本发明的原理的功率控制方案基于以下实现:提供给处理器的功率可以大百分比(例如,50%)减少,同时只需使处理器的工作频率减少更小量(例如,10%)。功率控制方案可以用于选择性地控制处理器的电源电压或者通过调整工作频率,其中每一项都用于调整处理器芯片的整体功耗。因此,在具有多个处理器平面的3D层叠式处理器芯片结构中,如果能够调节电源电压,并且选择性地使处理器平面的子集断电,则允许在系统中具有一系列操作模式,包括一种或多种模式,其中多个处理器平面以较低电压操作,以便保持总功率与操作一个处理器平面时消耗的总功率基本相同(或者,将多个处理器平面作为一个处理器平面操作时,通过在3D层叠式处理器芯片结构中的给定热点处保持相同的功率密度)。
在3D处理器叠层中,在每种功率控制操作模式中,每组垂直层叠的处理器使用一组相同的互连信号(封装上以及封装外)。在这点上,因为垂直层叠中的每个处理器芯片层共享相同的互连信号,所以即使当以较低频率(在第二模式中)操作处理器芯片时,也需要更少的通信要求(更少的I/O带宽)。因此,3D层叠中的每个层产生的较低带宽要求(由于用于保持功耗恒定的约束需要较低频率操作)促进了本发明的如下原理:采用用于重用(多路复用)互连信号和封装I/O信号的技术。
在本发明的其它示例性实施例中,在包括两个或更多层叠式处理器芯片层的处理器系统中,其中每个处理器芯片包括一个或多个处理器,其中不同处理器芯片层中的处理器通过不同处理器芯片层之间的垂直连接进行连接,模式控制电路(例如上面参考图6示出和描述的)可以选择性地配置不同芯片层中的两个或更多处理器以便以多种操作模式之一操作。例如,在一种操作模式中,给定叠层中的一个或多个或全部处理器芯片可以独立操作,其中独立操作的处理器芯片的层之间的垂直连接可以被用作叠层中的独立操作的处理器芯片之间的通信路径。
在另一种操作模式中,可以聚合不同处理器芯片层中的各种组件/资源,以便增强不同处理器芯片层上的一个或多个处理器的微体系结构。如所属技术领域的普通技术人员很容易理解的,处理器的术语“微体系结构”指处理器的物理(硬件)配置。处理器的微体系结构包括诸如高速缓存、总线结构(路径宽度)之类的组件、执行单元、指令单元、算术单元的布置和数量等。例如,假设3D层叠式处理器芯片设备包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片。在一种操作模式中,其中第一和第二处理器芯片都活动,可以通过聚合第一和第二处理器中的元件来配置或增强第一处理器芯片的第一处理器的微体系结构,并且可以通过聚合第一和第二处理器中的元件来配置或增强第二处理器芯片的第二处理器的微体系结构。在另一个实施例中,第一处理器芯片可以活动而第二处理器芯片可以不活动,其中通过使用不活动的第二处理器芯片的第二处理器的一部分,增强活动的第一处理器芯片的第一处理器的微体系结构。聚合的元件可以是执行单元、寄存器组、高速缓存等的各部分。
在另一种示例性操作模式中,可以在不同处理器芯片层上的不同处理器之间“共享”不同处理器芯片层中的各种组件/资源。例如,如下面解释的,不同处理器芯片层上的两个不同处理器可以组合其高速缓存(例如,L1、L2或L3高速缓存),以便创建大小加倍但由两个处理器主动共享的高速缓存。在这种情况下,聚合的(组合的)组件或资源由不同处理器共享。在另一种示例性操作模式中,可以组合给定叠层中的不同处理器芯片层上的两个或更多不同处理器,以便操作单个处理器映像。下面将参考图7、8、9A、9B、9C、10、11、12、13、14、15、16、17A、17B、18、19、20和21,进一步详细地解释显示用于聚合和/或共享和/或组合处理器资源的不同操作模式的本发明的示例性实施例。
例如,图7和8示出示例性操作模式,其用于选择性地配置不同处理器芯片层上的不同处理器以便聚合和/或共享不同处理器的执行单元的各部分,从而增强一个或多个不同处理器的执行能力。图7是可以应用本发明的原理的处理器70的示意平面图。图7示意性地示出处理器70的微体系结构,其中处理器70包括各种组件,例如L3高速缓存71、L2高速缓存72、执行单元73和指令单元74。执行单元73包括第一浮点单元75和第二浮点单元76(其中第一和第二浮点单元75和76相同)以及一组浮点寄存器77。可以使用图7的多个处理器70构造例如图8中所示的3D层叠式多处理器结构。
具体地说,图8是3D层叠式多处理器设备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。
在本发明的一个示例性实施例中,第一和第二处理器70A和70B的执行单元73A和73B彼此对齐并使用短垂直连接彼此相连。使用这种结构,执行单元可以垂直布线,以便对于图8中所示的两个处理器70A和70B,第一处理器70A的执行单元73A可以在功能上包括处理器对的执行单元73A/73B的元件的一半,并且第二处理器70B的执行单元73B可以在功能上包括处理器对的执行单元73A/73B的元件的另一半,其中选择每对一半以便最小化每个执行单元的平面面积。
执行单元的这种3D聚合优于传统的平面几何结构。在传统的平面系统中,可以连接位于同一平面中的两个处理器的执行单元,以便可以将一个执行单元的输出输入到第二执行单元。但是,两个处理器的执行单元之间的“水平”电互连可以相对很长(例如,5毫米-20毫米),以便在处理器之间的信号传输中可以具有一个或两个“死”周期,这将在信号传输中导致不需要的延迟。相比之下,在例如图8中所示的3D层叠式处理器上的处理器体系结构中,每个处理器上的执行单元的元件的一半有效地聚合成新的执行单元,以便每个平面中的执行单元实际上具有更小的面积。因为每个处理器的相同元件在空间上位于一起,所以通过跨3D层垂直连接执行单元元件获得两个处理器的聚合组件区域。
例如,在图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的执行单元仍具有两个浮点单元。
处理器元件75A及76A和处理器元件75B及76B之间的垂直连接在处理器功能中提供更短的路径,并且允许使用3D框架中的不同处理器平面中的元件构造每个处理器70A和70B。这将有效地减小每个处理器的平面几何结构并从执行流中删除死周期,因为从一个执行元件(在一个平面上)的输出到执行元件(在另一个平面上)的输入的路径更快。可以将这些原理应用于执行单元的其它对齐组件(例如算术单元等),以及其它处理器元件(例如L2和L3高速缓存),如下面进一步详细地解释的那样。
在图8中所示的本发明的其它示例性实施例中,每个处理器70A和70B可以独立于彼此使用,其中跨处理器层的处理器单元之间的垂直连接将不会用于聚合或共享资源。例如,在一种操作模式中,两个处理器70A或70B可以以减少的功率(例如,半功率)运行(通常在不相关程序上),以便总功率与一次仅有一个处理器70A或70B以满功率工作时的总功率基本相同。在另一种操作模式中,处理器70A或70B中的一个可以关闭,而另一个例如可以在高速模式(或加速模式)中以两倍功率工作。
在本发明的另一个示例性实施例中,在增强的“加速”操作模式中,处理器70A或70B中的一个可以禁用(不活动),而另一个可以在高速模式(或加速模式)中以两倍功率工作,但其中活动的处理器可以使用不活动的处理器的执行单元的某些元件,从而增强其执行能力。例如,在图8的示例性实施例中,第二处理器70B(主处理器)可以开启并在高速加速模式中以增加的功率运行,而第一处理器70A可以关闭,但其中通过使用第一(不活动)处理器70A的元件,增强第二(活动)处理器70B的微体系结构。通过具体的实例,当在增强的加速模式中工作时,第二(活动)处理器70B的执行单元73B可以使用第一(不活动)处理器70A的浮点单元75A和76A以及寄存器77A,因此第二处理器70B可以使用四个浮点单元75A、75B、76A、76B以及额外的寄存器77A以增加的速度工作。这种增强的体系结构允许第二处理器70B更快且更高效地运行更强大的代码。使用这种框架,可以配置模式控制方案以便可以关闭给定处理器,同时允许通过耦合或解耦到不活动的处理器的所需组件的电源线,选择性地使不活动的处理器的一个或多个组件通电和断电。
在本发明的另一个示例性实施例中,可以使用垂直连接结合不同处理器芯片层中的不同高速缓存,以便处理器可以将高速缓存层次结构中的任何特定级别高速缓存作为单个共享高速缓存操作。例如,如果两个层叠式处理器具有对齐的L2高速缓存和对齐的L3高速缓存,则可以将对齐的L2高速缓存对作为具有两倍容量的单个共享L2高速缓存操作,并且可以将对齐的L3高速缓存对作为具有两倍容量的单个共享L3高速缓存操作。现在将参考图9A、9B和9C进一步详细地解释这些原理。
图9A是3D层叠式多处理器设备90的示意透视图,其包括第一处理器90A和在第一处理器90A之上垂直层叠的第二处理器90B。在图9A的示例性实施例中,处理器90A和90B的结构相同,并且具有相应的处理器核心91A和91B、L2高速缓存92A和92B,以及L3高速缓存93A和93B。如图9A中所示,L2高速缓存92A和92B对齐并具有相同的占用空间(2D面积)。此外,L3高速缓存93A和93B对齐并具有相同的占用空间。在这种3D层叠式框架中,对齐的L2高速缓存92A和92B可以垂直连接并作为单个共享L2高速缓存操作。此外,对齐的L3高速缓存93A和93B可以垂直连接并作为单个共享L3高速缓存操作。
例如,图9B是图9A的3D层叠式多处理器设备90的示意透视图,其中L3高速缓存93A和93B结合并可以由处理器90A和90B之一或全部作为共享L3高速缓存93A/B操作。同样,图9C是图9A的3D层叠式多处理器设备90的示意透视图,其中L2高速缓存92A和92B也结合并可以由处理器90A和90B之一或全部作为共享L2高速缓存92A/B操作。具体地说,在其中处理器90A和90B的L2和L3高速缓存垂直连接在一起的一个示例性实施例中,可以以两种备选模式使用L2和L3高速缓存—要么作为独立高速缓存,其中不使用它们之间的跨层连接,要么跨层共享,从而增加层中的所有处理器的高速缓存容量。
3D层叠式高速缓存框架的优势在于高速缓存的存储容量加倍而不增加高速缓存存取时间。实际上,高速缓存存取速度通常已知与高速缓存面积的平方根成正比。在图9B和9C中所示的示例性实施例中,垂直连接对齐的L2和L3高速缓存不会增加高速缓存面积,因为对应的L2和L3高速缓存的占用空间在空间上重合。在这点上,因为结合后的L2高速缓存92A/B的面积和结合后的L3高速缓存93A/B的面积不会由于垂直连接而增加,所以高速缓存存取速度保持不变。为了能够针对运行不同程序的处理器90A和90B存取相同的高速缓存地址空间,可以很容易地实现高速缓存控制方案,以便控制和组织共享的高速缓存目录并保持各高速缓存层之间的高速缓存一致性。
在本发明的另一个示例性实施例中,可以构造3D层叠式处理器设备以便包括多个处理器,这些处理器可结合以便增加3D处理器叠层中的单个处理器映像认定的线程数量。例如,在包括具有第一处理器的第一处理器芯片和具有第二处理器的第二处理器芯片的3D层叠式处理器设备中,第一和第二处理器芯片都可以活动,其中第一和第二处理器被配置为作为单个处理器操作,并且聚合其线程以便增加可由第一和第二处理器使用的线程数量。这允许有效地提高3D叠层中的单个处理器的多线程能力,而不需要与必须在单个处理器本身上采用其它线程关联的开销(线程)。现在将参考图10和11进一步解释这些原理。
图10是3D层叠式处理器设备100的示意透视图,其包括第一处理器100A和在第一处理器100A之上垂直层叠的第二处理器100B。在图10的示例性实施例中,第一和第二处理器100A和100B是多线程处理器,并且具有相同的处理器和寄存器组。具体地说,第一处理器100A包括四个寄存器组101A、102A、103A和104A以实现四个线程。同样,第二处理器100B包括四个寄存器组101B、102B、103B和104B以实现四个线程。
在图10的示例性实施例中,通过垂直对齐并连接处理器100A和100B,3D处理器叠层可以以聚合方式作为具有相应更多线程的单个多线程处理器操作。例如,在图10的实例中,可以共同运行两个处理器100A和100B的四个线程101A、101B、102A、102B、103A、103B、104A和104B,以便3D处理器叠层100看似是运行八个线程的单个处理器。独立地,对于3D中的系统级别仲裁,当对齐两个或更多处理器时,该处理器组将作为单个节点显示在系统的仲裁方案中。通过这种方式,当在新的层叠平面中添加其它处理器时,下面讨论的仲裁“树”例如不会增加复杂性。
对于传统的平面系统,可以使用越来越多的独立寄存器组制造处理器,以便实现可以同时操作的更多线程以提高多个程序的处理能力。但是,随着每个处理器的线程数量增加,处理器的平面尺寸增加,从而导致寄存器组和处理器执行单元之间的通信周期延迟,以及功率增加。使用例如图10中所示的3D层叠式体系结构,可以使用更少的寄存器组简化处理器,以便支持每个处理器的更少线程,同时在处理器层之间聚合线程,以便根据需要增加给定层可以使用的线程总数。例如,假设给定应用的大多数工作负载使用四个或更少的线程操作,则图10中所示的处理器100A和100B可以被优化为四线程处理器。如果给定工作负载需要超过四个的线程(最多8个线程)来执行,则3D处理器叠层100中的处理器100A和100B可以被组合并作为具有八个线程的单个处理器操作。
在图10的示例性实施例中,实现控制方案和通信路径以便支持跨不同层聚合线程,并且在层之间连接高速缓存并保持高速缓存一致性。设计这些控制方案和通信路径,以便当不同层中的线程实际共享其地址空间时,每个处理器将看到相同的状态。图11中示意性地示出这些概念。
具体地说,图11示意性地示出根据本发明的一个示例性实施例的图10中所示的处理器的各种组件之间的通信路径。如图11中所示,第一处理器100A包括与第一处理器单元105A关联的多个寄存器组101A、102A、103A和104A(也分别表示为T0、T2、T4和T6)、L2和L3高速缓存110A、指令高速缓存112A以及数据高速缓存114A。同样,第二处理器100B包括与第二处理器单元105B关联的多个寄存器组101B、102B、103B和104B(也分别表示为T1、T3、T5和T7)、L2和L3高速缓存110B、指令高速缓存112B以及数据高速缓存114B。
指令高速缓存112A和112B以及数据高速缓存114A和114B接收被存储在相应L2或L3高速缓存110A和/或110B中的程序指令和数据。L2和/或L3高速缓存110A和/或110B可以被结合并共享,如上面例如参考图9C讨论的那样。相应处理器105A和105B执行被存储在指令高速缓存112A和112B中的程序指令以实现一个或多个线程,并且给定线程的执行状态被存储在一个相应的线程状态寄存器T0、T1、T2、T3、T4、T5、T6、T7中。通过执行程序指令产生数据时,处理器105A将数据存储在其数据高速缓存114A中,并且处理器105B将数据存储在其相应的数据高速缓存114B中。根据本发明的原理,使用处理器105A和105B以及数据高速缓存114A和114B之间跨层的其它通信路径116以便促进一致存储。可以以处理器上的处理器(processor-on-processor)实现该通信路径116,因为当对齐处理器时,端口在空间上位于一起。
尽管图10和11的示例性实施例示出均具有寄存器组以支持4个操作线程的处理器,但本发明的原理可以很容易地被扩展为每个处理器具有n个线程,其中如果每个处理器是n路多线程处理器,则处理器对可以作为2n路多线程处理器运行,如系统的其余部分所看到的那样。此外,使用这种实现,当大部分时间运行n个线程(其中每个处理器并不运行过多的线程)时尤其有用,从而允许针对n线程操作优化基本处理器,但在需要时具有扩展系统以运行2n个线程的能力。
如上所述,当在3D层叠式配置中对齐两个或更多处理器时,处理器将作为单个节点显示在系统的仲裁方案中。使用这种框架,可以构造仲裁“树”(或者一般地说,处理器互连结构),以便当在新的层叠平面中添加其它处理器时不会增加复杂性。现在将参考图12、13、14、15和16,进一步详细地讨论根据本发明的原理的示例性处理器互连结构。
图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被示出为实现标准仲裁方案的“树”结构。
进一步,如图12中所示,通信总线122A和122B使用总线互连结构124互连。在图12的平面系统120中,该总线互连结构124在2D平面中相对很长。根据本发明的原理,在例如图13中所示的3D层叠式框架中,该处理器互连结构可以更简化。具体地说,图13示意性地示出根据本发明的一个示例性实施例的用于3D层叠式多处理器系统的处理器互连方案。具体地说,图13示出平面处理器系统130,其包括第一处理器130A和在第一处理器130A之上布置的第二处理器130B。第一处理器130A包括多个处理器P1A、P2A、...、P8A(统称为PnA),它们使用处理器互连结构132A互连并通信。同样,第二处理器130B包括多个处理器P1B、P2B、...、P8B(统称为PnB),它们使用处理器互连结构132B互连并通信。处理器互连结构132A和132B被示出为实现标准仲裁方案的“树”结构。
如图13中进一步所示,处理器互连结构132A和132B使用连接总线结构134互连。图13的整体处理器互连方案在概念方面类似于图12的整体处理器互连方案,只是总线连接结构134(连接处理器互连结构132A和132B)使用层叠式处理器芯片130A和130B之间的垂直连接形成。在这点上,垂直连接总线结构134的长度比图12中所示的平面连接总线结构124短得多。因此,图13中的整体处理器互连方案有效地比图12中所示的整体处理器互连方案更小且更快。
图14示意性地示出根据本发明的另一个示例性实施例的用于3D层叠式多处理器系统的处理器互连方案。图14示意性地示出具有处理器互连框架的3D层叠式处理器结构140,该处理器互连框架在拓扑上相当于图13的3D层叠式处理器的处理器互连框架,但更快且在大小方面更简化。更具体地说,如图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进一步讨论和示出这些原理。
具体地说,图15是根据本发明的一个示例性实施例的3D层叠式多处理器系统的示意顶部透视图,其具有基于图14的处理器互连结构方案的处理器互连结构。图15示出3D层叠式多处理器系统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相比)。
图16示意性地示出根据本发明的另一个示例性实施例的用于3D层叠式多处理器系统的处理器互连结构。图16示意性地示出3D层叠式处理器结构160,其具有类似于图14的总线框架,只是在下处理器芯片130A上包括并使用其它树结构162A。其它树结构162A可以用于缩短面内处理器之间的通信路径并增加通信带宽。具体地说,在图16的示例性实施例中,树结构162A可以用于在第一处理器芯片130A上的处理器PnA之间的处理器到处理器通信,而不必使用短垂直总线互连141、142、...、148或上部树结构132B。同样,树结构132B可以用于在第二处理器芯片130B上的处理器PnB之间的处理器到处理器通信,而不必使用短垂直总线互连141、142、...、148或下部总线树结构162A。
在另一种控制方案中,可以结合短垂直互连141、142、...、148同时使用树结构162A和132B,以便在任何两个处理器之间提供两个独立的通信路径,从而可以实现通信带宽增加2倍。实际上,假设每个树结构132B和162A是16字节总线,这需要16个周期在处理器之间传送256字节的信息。在该实施例中,可以将通信带宽增加到32字节,方法是在任何两个处理器之间同时使用两个独立的通信路径以便同时发送32字节(每个路径16字节),从而增加通信带宽以便使用16个周期传送512字节的信息。
在本发明的另一个示例性实施例中,可以构造3D层叠式多处理器设备以便包括多个处理器,这些处理器可以结合,并且通过选择性地组合每个垂直层叠的处理器的最快组件而被配置为单个超快处理器。使用高级技术,相同处理器之间的设备性能可以具有相当大的变化,其中一个处理器的某些子系统可以快于另一个相同处理器的相同子系统,而同时,不同子系统的关系可以相反。实际上,根据设备尺寸和形状的变化以及掺杂变化等,一组在给定晶片上形成、具有相同布局和宏功能组件的相同处理器可以具有比另一个相同处理器的相同组件更快或更慢的组件。
在这点上,根据本发明的另一个示例性实施例,当不同处理器芯片层上的两个处理器(第一和第二处理器)具有相同的子系统区域布局时,在一种操作模式中,第一和第二处理器可以被配置为作为单个处理器操作,方法是组合第一和第二处理器的对应子系统区域的较快区域并关闭第一和第二处理器的对应子系统区域的较慢区域。现在将参考图17A和17B进一步详细地示出和讨论这些原理。
具体地说,图17A示意性地示出根据本发明的一个示例性实施例的具有相同布局的两个处理器,其中两个相同处理器的对应区域被标识为快于或慢于其对应区域。具体地说,图17A示出两个相同处理器170A和170B,它们具有十一个相同主区域(宏)R1、R2、R3、R4、R5、R6、R7、R8、R9和R11。在制造之后,对处理器的这些区域进行速度测试,因为虽然处理器相同,但给定处理器的某些区域将快于/慢于另一个相同处理器的相同区域。在图17A的示例性实施例中,第一处理器170A的区域R1、R2、R4、R6、R8、R9和R11被标识为快(标记为“F”)于相同处理器170B上的相同区域。此外,第二处理器170B的区域R2、R5、R7和R10被标识为快(标记为“F”)于相同处理器170A上的相同区域。
图17B是根据本发明的一个示例性实施例的3D层叠式多处理器系统170的示意图,其包括图17A的处理器170A和170B。具体地说,图17B示意性地示出根据本发明的一个示例性实施例的3D层叠式处理器结构,其通过垂直层叠图17A中所示的两个处理器形成,并且作为由每个处理器的最快对应区域组成的单个处理器操作。在图17中,处理器对齐并垂直连接,以便对应的区域R1、R2、...、R11对齐并彼此相连。两个处理器170A和170B的高速缓存和执行资源垂直连接,以便3D层叠式处理器系统170可以以多种模式之一操作。
例如,在一种模式中,处理器170A和170B可以作为独立处理器操作,其中每个处理器活动并以半功率操作,如上面讨论的那样。在另一个示例性实施例中,处理器170A或170B之一可以以满功率或增强的功率(加速模式)操作,而另一个处理器关闭。在另一个实施例中,处理器170A和170B可以作为单个处理器操作,其包括每个处理器中被标识为该区域最快版本的那些区域,以便生成的处理器可以作为单个超快处理器操作,其速度快于使用仅一个处理器层中的所有组件的速度。例如,在图17B的示例性实施例中,3D层叠式处理器结构170可以作为单个处理器操作,其包括由第一处理器170A的快区域R1、R2、R4、R6、R8、R9和R11以及第二处理器170B的快区域R2、R5、R7和R10组成的11个区域。
在本发明的另一个示例性实施例中,3D层叠式多处理器设备可以具有多个结合的处理器,这些处理器在逻辑上作为单个处理器映像操作,但其中至少一个处理器用于“预运行”功能。具体地说,例如,在具有对齐并垂直地彼此相连的第一和第二层叠式处理器的3D层叠式多处理器设备中,第一处理器可以是负责机器的体系结构状态的主处理器,并且辅助处理器可以在主处理器之前运行以便预先解析分支并产生未命中,同时辅助处理器不受体系结构或程序的限制,并且不能更改机器的体系结构状态。
在该示例性实施例中,第一和第二处理器的高速缓存和执行资源连接在一起,因此它们例如可以以两种备选模式使用—要么作为独立处理器,其中不使用处理器层之间的连接,要么以协作方式,其中主处理器执行程序而辅助处理器运行程序的较简单版本,以便辅助处理器可以在主处理器之前产生存储器请求并解析分支,主处理器可以使用其结果避免长延迟的存储器存取和分支错误预测等。将参考图18进一步详细地描述这种在3D层叠式处理器系统中实现预运行或辅助线程的概念。
具体地说,图18示意性地示出根据本发明的一个示例性实施例的用于在3D层叠式处理器系统中实现预运行功能的方法。具体地说,图18示出操作主线程的主处理器针对在主处理器和辅助处理器之间共享的存储器执行的多个操作181和182,以及作为与主处理器协作的预运行线程操作的辅助处理器执行的多个操作184、185、186、187、188和189。
具体地说,如图18中所示,当在3D层叠式处理器系统中执行程序时,主处理器从存储器183取回指令(181)并执行每个程序指令(182)。当执行指令时,主处理器将从共享存储器183取回并存储程序数据,并且维护对所有外部实体可见的机器状态(存储)。换言之,主处理器正确执行程序,因为主处理器以正确顺序执行指令操作,并且仅当已知这些更改正确时,向系统的其余部分显示状态更改信息。但是,为使程序执行更快并具有更高的指令级别并行性,辅助处理器作为“预运行处理器”操作,其中辅助处理器不保证正确和合法的操作,并且不向系统的其余部分显示状态更改。相反,它以推测方式尽可能快地运行,并且不会为与程序流无关的指令所烦扰。通过以这种方式操作,预运行处理器将在主处理器之前解析许多分支并产生许多必需的高速缓存未命中。这将允许主处理器比正常情况下运行更快。
具体地说,如图18中所示,辅助处理器将从共享存储器183取回指令(184)并执行某些指令(例如数据取回指令),并且响应于数据取回指令,从共享存储器183取回数据(185)。辅助处理器将执行数据存储指令并执行存储器存取操作(186),以便判定必需的数据是否存储在存储器183中。辅助处理器将执行简单指令(187)并执行分支指令(188),并且丢弃或以其它方式忽略与确定高速缓存未命中或解析分支重定向不相关的所有其它取回的指令(189)。在步骤186,当辅助处理器看到数据存储指令出现时,辅助处理器将判定针对要被存储的数据是否存在高速缓存行。如果高速缓存行不存在,则辅助处理器将生成高速缓存未命中并继续为数据存储分配高速缓存行,并且获得适当的权限以便将数据存储在新分配的高速缓存行中(即,确保新高速缓存行的状态处于“数据存储就绪”状态)。如果高速缓存行已经存在,则辅助处理器将判定高速缓存行是否处于“数据存储就绪”状态,并且继续获得适当的权限(如果未获得)。通过这种方式,当主处理器执行数据存储指令时,高速缓存行将可用并处于“存储就绪”状态,从而避免在执行流中出现高速缓存未命中。
辅助处理器(预运行处理器)通过在主处理器看到意外事件之前解决这些事件,加快主处理器的速度。辅助处理器可以以这种方式操作,因为它不必执行每个指令,并且不必正确执行程序操作。在3D层叠式配置中,因为主处理器和辅助处理器在空间上重合并通过垂直连接相连,所以它们能够共享和查看执行状态,并且另外比共面配置更容易且可靠地同步,在共面配置中将需要长导线交换正确的同步信息。即使在共面处理器之间使用共面布线,共面处理器也可能无法同时地查看彼此的状态。在3D层叠式配置中,可以更容易地通过主处理器和辅助处理器的资源之间的短垂直连接实现辅助线程和主线程之间的通信和交互,以便共享值并以其它方式同步过程流。
在本发明的另一个示例性实施例中,3D层叠式多处理器设备可以具有多个结合的处理器,这些处理器在逻辑上作为单个处理器映像操作,但其中它们体系结构存储的各部分作为专用存储空间(或临时空间)操作,3D层叠外部的处理器不可存取该专用存储空间。换言之,多个处理器可以被结合成具有专用存储区域的单个操作实体(从外部看,为“处理器”),该专用存储区域可以用于临时空间并用于组织其它数据结构,其中专用存储对系统中的其它操作实体不可见。当一组处理器以预运行模式或超加速模式或任何其它分组模式作为单个逻辑处理器运行时,该组的一个或多个高速缓存可以被用作具有专用结构的专用存储。
在本发明的其它示例性实施例中,如图19中所示,根据本发明的一个示例性实施例,3D层叠式处理器结构可以通过垂直层叠多个处理器形成,每个处理器具有类似的状态寄存器布局,其中多个处理器可以独立或以协作方式操作以便共享其状态寄存器。更具体地说,图19示意性地示出第一处理器190A和第二处理器190B,它们垂直层叠以形成3D层叠式处理器结构190。在图19的示例性实施例中,每个处理器190A和190B具有相同的状态寄存器布局(总体上通过包含一个或多个矩形的多个组示出)。例如,第一处理器190A和第二处理器190B具有相同的状态寄存器组191A和191B,它们分别布置在相应处理器的基本相同的2D区域中。应该理解,对每个处理器190A和190B上的状态寄存器组(矩形组)的描述是任意的,并且仅意味着总体示出包含其状态寄存器的处理器。
每个处理器190A和190B上的状态寄存器组用于在处理器的每个操作周期结束时,存储相应处理器190A和190B的“状态”。术语“状态”指完全捕获在给定处理器上执行的程序的执行状态(执行中的程序到目前为止执行的操作)所需的信息。“状态”包括包含在通用寄存器、控制寄存器、条件码、地址寄存器,以及保存重要状态信息的任何其它寄存器中的信息,如所属技术领域的普通技术人员理解的那样。假设程序在第一处理器190A上执行。在程序执行中的某一给定点(在处理器190A的完整操作周期结束时),可以从第一处理器190A的状态寄存器扫描出第一处理器190A的“状态”并将其存储在第二处理器190B的对应状态寄存器中,并且第二处理器190B可以使用被存储在第二处理器190B的状态寄存器中的扫描输入的状态信息,在程序在第一处理器190A上停止执行的点处开始执行同一程序。在此方面,程序可以从第一处理器190A上的停止点继续在第二处理器190B上运行,并且程序将不能分辨它已经被移动到不同处理器。因此,“状态”是捕获有关任何周期中的运行处理器的任何事物所需的所有静态信息。“状态”是完整指定与处理器上正在运行的程序相关的所有信息的寄存器组。
一般而言,图19的3D层叠式结构190可以使用上面讨论的技术制造,其中处理器190A和190B可以在彼此之上层叠并垂直连接,以便每层处理器190A和190B的状态寄存器组(和其它组件)“对齐”并使用短垂直互连而互连。如上所述,术语“对齐”指每层处理器190A和190B的对应组件直接布置在彼此之上(在每层垂直3D空间中占用基本相同的2D空间),或者按固定位移均匀交错(如果处理器190A和190B以某种偏移附接),以便产生较低的功率密度,如上面讨论的那样。通过这种方式,通过在状态寄存器和其它组件之间实现适当的垂直连接,3D层叠式处理器190可以以多种模式之一操作。
图20是示出图19的3D层叠式处理器结构的多种操作模式的表。例如,如图20中所示,在一种操作模式(“正常”模式)中,第一和第二处理器190A和190B可以作为独立处理器操作,其中每个处理器190A和190B活动(开启)并且以不超过满功率操作(例如,每个以半功率操作)。在另一种操作模式(“加速”模式)中,一个处理器190A(或190B)以满功率操作,而另一个处理器关闭。在“正常”模式中,每个处理器190A和190B可以以其最大功率的一半操作,以便处理器对与以满速度运行(加速模式)的单个处理器具有相同的电力足迹(powerfootprint)。可以采用“正常”操作模式,以便同一电力和冷却基础体系结构可以处理两种情况,即,单个处理器以满速度运行(加速模式),或者处理器对以减少的速度运行(正常模式)。
应该理解,术语“满速度”或“满功率”或“最大安全速度”如在此使用的,均指给定处理器针对所有可能情况和输入正确操作的操作速度。给定处理器的最大安全速度是针对给定处理器产品使用各种计算机仿真、建模和测量而事先确定的操作特性。处理器产品被宣传为具有最大安全速度作为其最大速度,并且处理器不会运行更快。实际上,对于给定处理器可以操作的大多数可能状态,并且对于大多数可能程序和输入,处理器的实际运行可以快于“最大安全速度”。但是,因为当处理器在高于其已知的“最大安全速度”操作时,状态和输入的某些组合可以导致操作错误,所以通常设置“满速度”限制,以便在处理器操作的任何操作条件和情况下,不会发生任何问题。
在本发明的另一个示例性实施例中,如图20的表中所示,图19的示例性3D结构190可以以被称为“超加速”的模式操作,其中一个处理器(例如,处理器190A)可以以大于满功率操作(操作速度快于处理器的最大安全速度),而另一个处理器(例如,处理器190B)停用(关闭),但其中活动的处理器使用被停用处理器的状态寄存器为活动的处理器的状态“设置检查点”。在该示例性实施例中,使用叠层中的另一个不活动的处理器的状态寄存器增强叠层中的活动的处理器的体系结构,以便活动的处理器能够以增强的(超加速)操作速度操作,同时使用不活动的处理器的状态寄存器存储在活动处理器的每个操作周期完成时的当前状态信息,以便在活动的处理器以高于被视为“安全”的速度的增加操作速度操作时发生执行错误的情况下,为活动的处理器的状态“设置检查点”。
图21是示出根据本发明的一个示例性实施例的以“超加速”模式操作的图19的3D层叠式处理器结构190的一种操作模式的流程图。首先,可以选择性地控制图19的处理器叠层190以进入“超加速”模式,方法是激活主处理器(例如,处理器190A)以便以高于其“最大安全速度”的速度操作,并关闭辅助处理器(例如,处理器190B),同时允许辅助(不活动)处理器的状态寄存器保持活动以供主处理器使用(步骤200)。在给定程序的执行期间,一旦完成每个操作周期,主处理器就开始下一个操作周期(步骤201)。如果完成当前周期(步骤202的肯定结果),并且在当前周期中没有发生错误(步骤203的否定结果),则在辅助处理器的状态寄存器中为主处理器的当前状态(当完成当前周期时)设置检查点(存储)(步骤204),并且将开始下一个操作周期(步骤201)。
如果在当前操作周期中发生某些错误(步骤203的肯定结果),则通过复制辅助处理器的状态寄存器中的已设置检查点的状态的当前内容,将主处理器的状态回滚一个周期(步骤205)。辅助处理器的状态寄存器中的已设置检查点的状态是在完成主处理器的上一个操作周期的时间点存在的主处理器的状态寄存器的状态。然后主处理器(使用从辅助处理器的状态寄存器存取的已设置检查点的状态)继续当前操作周期(其中发生错误)(步骤206)。在一个示例性实施例中,该过程(步骤206)优选地使用以其“安全”最大速度运行的主处理器执行,以便确保这次正确执行在较高速度时导致问题的程序操作而没有错误。
一旦完成当前操作周期(以正常安全速度执行)(步骤207的肯定结果),在辅助处理器的状态寄存器中为主处理器的当前状态设置检查点(步骤208)。此后,处理器叠层返回超加速模式,其中主处理器开始以高于其最大安全速度的操作速度操作(步骤200)。在图21的示例性过程中,因为针对每个完整的操作周期为主处理器的状态设置检查点,并且因为对于层叠式几何结构,可简单且快速地执行恢复动作(即,通过使用辅助处理器的状态寄存器中的状态检查点的内容(经由垂直连接存取)刷新主处理器的状态寄存器来恢复状态),所以主处理器可以以高于其最大安全速度的速度运行。
在上面参考图9A、9B和9C讨论的示例性实施例中,例如可以使用垂直连接结合形成3D层叠式处理器结构的不同级别处理器芯片中的不同高速缓存,以便处理器可以将高速缓存层次结构中的任何特定级别高速缓存作为单个共享高速缓存来操作。例如,如上所述,可以将对齐的L2高速缓存对(在两个不同级别上)作为具有两倍容量的单个共享L2高速缓存来操作,并且可以将对齐的L3高速缓存对(在两个不同级别上)作为具有两倍容量的单个共享L3高速缓存来操作。在下面参考图22~32详细讨论的本发明的其它示例性实施例中,可以使用沿着多个维度实现不同存取模式的存取布线结构,构造不同处理器芯片的高速缓冲存储器。
图22示意性地示出可以应用本发明的各实施例的存储阵列。具体地说,图22示意性地示出存储阵列210,其包括可由多个字线(WL0、WL1、...WLn)和多个位线(BL0、BL1、...BLn)存取的存储单元220的2D阵列。每个存储单元220包括存取晶体管222和存储元件224(例如,电容器),其中存取晶体管222具有连接到字线的栅极端子、连接到位线的源极端子以及连接到存储元件224的漏极端子。在图22的示例性存储阵列210中,每行存储单元220连接到同一字线,其中每行存储单元220包括组成给定字节、字、高速缓存行等的位组(量)。此外,每列存储单元220连接到同一位线,其中连接到给定位线的每个存储单元220对应于给定量(字节、字、高速缓存行等)中的给定位位置,从存储器210读取该位位置/将该位位置写入到存储器210。
每个字线(WL0、WL1、...WLn)连接到对应的驱动器226,该驱动器操作以便激活和停用给定字线。用于给定字线的驱动器226向连接到该给定字线的存储单元行中的每个存取晶体管222的栅极端子施加电压,这将导通连接到该给定字线的每个存储单元220中的每个存取晶体管222。字线是对应于用于执行读取或写入操作的地址的完全解码线,以便在任何给定时刻仅激活一个字线。此外,每个位线(BL0、BL1、...BLn)连接到对应的接收器228(例如,读出放大器电路),该接收器读出连接到该位线(由给定字线选择)的给定存储单元220的给定存储元件224(电容器)上的电荷(逻辑“0”或逻辑“1”)。对于读取或写入操作,一个字线(行)由对应的字线驱动器226激活,这将导通该给定行中的每个存储单元220的每个存取晶体管222。一旦激活给定字线,通过对应的位线存取选定字线中的一个或多个位(列)。给定位线的所有位连接在一起,但在任何给定时刻仅可以选择一个位。
图22示意性地示出DRAM(动态随机存取存储器),其中将每个存储单元的状态(例如,逻辑“0”或逻辑“1”)存储为用作存储元件224的电容器上的电荷。在诸如SRAM(静态随机存取存储器)之类的其它存储体系结构中,行-列“体系结构”针对字线和位线相同,但每个存储元件将包括多个晶体管而不是电容器,如所属技术领域公知的那样。
根据本发明的各实施例,可以构造多维存储体系结构,方法是使用沿着多个维度实现不同存取模式以便读取/写入数据的存取布线结构,层叠多个级别的存储器(例如,DRAM、SRAM)。例如,图23A、23B和23C共同示出根据本发明的一个示例性实施例的用于构造包括具有不同存取模式的多个级别存储器的存储结构的方法。更具体地说,图23A示意性地示出第一级别存储器230A,图23B示意性地示出第二级别存储器230B,图23C示意性地示出3D存储器230C,其中在第一级别高速缓冲存储器230A(图23A)上布置第二级别存储器230B(图23B)。图23A中所示的第一级别高速缓冲存储器230A包括存储单元MC1、MC2、MC3和MC4阵列,每个存储单元包括存取晶体管222A和存储元件224A、多个字线(例如,WL0_A、WL1_A)、多个位线(例如,BL0_A、BL1_A)、字线驱动器226A和位线接收器228A。图23A中的第一级别高速缓冲存储器230A在结构和操作方面类似于上面参考图22讨论的存储阵列210,只是在图23A中,为了易于说明,仅示出四个存储单元MC1、MC2、MC3和MC4,连同两个字线(行)WL0_A和WL1_A以及两个位线(列)BL0_A和BL1_A。字线沿着行方向延伸,位线沿着列方向延伸。
图23B中所示的第二级别存储器230B包括多个存储单元MC1、MC2、MC3和MC4,它们对应于图23A中所示的存储单元MC1、MC2、MC3和MC4。图23B中所示的存储单元均包括存取晶体管222B和垂直过孔连接224B。垂直过孔连接224B连接到在不同高速缓冲存储器层上形成的对应存储单元的存储元件。例如,垂直过孔连接224B连接到第一级别存储器230A上的对应存储单元的存储元件224A。此外,图23B中的第二级别存储器230B包括多个字线(例如,WL0_B、WL1_B)、多个位线(例如,BL0_B、BL1_B)、字线驱动器226B和位线接收器228B。在图23B中,每个字线垂直延伸(列)并且连接到给定存储单元列中的存取晶体管222B的栅极端子。此外,每个位线水平延伸(行)并且连接到给定存储单元行中的存取晶体管222B的源极端子。
根据本发明的一个示例性实施例,在第一级别存储器230A上布置第二级别存储器230B以便形成如图23C中所示的3D存储体系结构。具体地说,图23C示出3D存储器230C,其中在不同级别存储器上,每个存储单元MC1、MC2、MC3和MC4包括一个存储元件224A以及两个存取晶体管222A和222B,以便使用两种不同的存取布线模式存取同一存储元件224A。第二级别存储器230B上的存取晶体管222B经由垂直连接224B连接到第一级别存储器230A上的对应存储元件224A。在图23C的3D存储体系结构中,尽管每个存储单元MC1、MC2、MC3和MC4具有单个存储元件224A,但每个不同级别存储器上的字线和位线布线以及字线驱动器和位线读出电路为相同的存储单元MC1、MC2、MC3和MC4提供不同的存取模式。
具体地说,如图23C中所示,第一级别存储器230A上的字线WL0_A和WL1_A的布置与第二级别存储器230B上的字线WL0_B和WL1_B垂直。此外,第一级别存储器230A上的位线BL0_A和BL1_A的布置与第二级别存储器230B上的位线BL0_B和BL1_B垂直。在这点上,对于每个位(存储单元),第一和第二级别存储器230A和230B上的两种垂直布线模式使能沿着不同维度(例如,阵列的行和列)存取数据结构。例如,可以使用第一级别存储器230A上的字线(例如,WL0_A、WL1_A)存取3D存储器230C中的水平存储单元行,并且可以使用第二级别存储器230B上的字线(WL0_B、WL1_B)存取3D存储器230C中的垂直存储单元列。因为每个存储单元MC1、MC2、MC3、MC4的存储元件222A共同连接到两个不同存取晶体管222A和222B,所以3D存储器230C使能使用不同级别存储器上的不同字线和位线几何结构存取同一位阵列(一个级别的存储)。
在本发明的一个实施例中,图23C的3D存储结构230C实现为高速缓冲存储器结构。在本发明的另一个实施例中,图23C的3D存储结构230C实现为主系统存储结构。此外,应该理解,形成图23C中所示的结构的每个级别的存储器230A和230B可以实现为“概念级别存储器”或者实现为单独的“物理级别存储器”。
具体地说,针对“物理级别存储器”,在单独的衬底或芯片上构造每个级别的存储器230A和230B,其中两个单独的衬底或芯片安装到彼此以便形成层叠式3D结构。使用图23A中所示的第一级别存储器230A,在第一衬底的活动表面上构造各种电路组件222A、224A、226A和228A,而字线(WL0_A、WL1_A)和位线(BL0_A、BL1_A)的存取布线模式作为第一衬底的BEOL结构的一部分制造。此外,图23B中所示的第二级别的存储器230B包括第二衬底,其中在第二衬底的活动表面上形成各种组件222B、226B和228B,而字线(WL0_B、WL1_B)和位线(BL0_B、BL1_B)的存取布线模式作为第二衬底的BEOL结构的一部分制造。连接224B可以是延伸通过第一和第二衬底的垂直过孔连接,这些连接将第二级别存储器230B上的存取晶体管222B连接到第一级别存储器230A上的存储元件224A。
针对“概念级别存储器”,在同一衬底或芯片上构造每个级别的存储器230A和230B,从而提供一个物理级别的存储器,但提供两个不同概念级别的存储器。在该实施例中,所有电路组件222A、222B、226A、226B、228A、228B都将在一个衬底的活动表面上形成,并且字线和位线的两种不同存取布线模式将在衬底的活动表面上作为同一BEOL结构的一部分制造。在这点上,可以制造高速缓冲存储器,其中多个“概念”级别高速缓冲存储器在单个芯片(例如处理器芯片)上,以便可以使用两种不同布线存取模式存取同一2D存储单元阵列。在本发明的一个实施例中,如图9A、9B和9C中所示的第一和第二处理器90A和90B的每一个的L2和/或L3高速缓存可以均使用多个概念级别高速缓冲存储器来构造。
图23C的存储体系结构可用于各种应用,其中沿着多个维度取回数据将提高某些工作负载的效率和速度。例如,图23C的存储结构的布线框架将用于诸如矩阵相乘之类的应用,例如,如参考图24和25解释的那样。具体地说,图24示意性地示出表示4×4存储块的三个存储块A、B和C,每个存储块具有4个行和4个列。存储块C表示存储块A和B的行和列的矩阵相乘(A×B)的结果。应该理解,存储块A、B和C可以被视为不同的存储结构,或者同一存储结构的不同部分。在图24中所示的实例中,当应用矩阵相乘A×B时,存储块C中的给定表项(位)被计算为存储块A的行向量和存储块B的列向量的向量点积,如下所示:
Cip■FAi-CBj
其中RAi表示具有索引i(其中i=1、2、3或4)的存储块A的行,并且其中CBi表示具有索引j(其中j=1、2、3或4)的存储块B的列。例如,对于i=1和j=1,存储单元Cij中的表项将被计算为:
C11=RA2·CB1=(A11xB11)+(A12xB21)+(A13xB31)+(A14xB41).
如上所示,存储块A和存储块B的矩阵相乘将需要取回存储块A的行和存储块B的列。假设存储块A和B均具有诸如图22中所示的传统框架,则取回存储块A中的给定行将需要一个基元操作(采用高级程序语言)以便全部取回给定行。实际上,因为每行由字线存取,所以给定行中的每个存储单元由一个唯一字线地址激活,并且沿着该行的每个存储单元经由相应的位线读取。例如,存储块A的第一行RA1(包含A11、A12、A13和A14)可以通过输入与行RA1关联的唯一地址以激活其字线来读取,然后激活与每列CA1、CA2、CA3和CA4关联的位线以便从存储单元位置A11、A12、A13和A14读出数据,从而在单个操作中读出行RA1。
另一方面,因为存储块B中的阵列的每列完全存储在存储器的单个列中,所以使用图22的传统框架从存储块B取回一个列将需要多个操作。例如,为了读出图24中的存储块B的第一列CB1(B11、B21、B31和B41),存储块B中的每行RB1、RB2、RB3和RB4将必须按顺序被激活,并且在给定时刻将从目标列CB1的每个被激活行仅存取一位(B11、B21、B31和B41)。这将需要四个连续的字线激活和读取操作。
根据本发明的一个实施例,可以使用图23C的框架构造图24中所示的存储块A和B,以便可以在单个操作中存取存储块A中的行和存储块B中的列。例如,图25示意性地示出根据本发明的一个示例性实施例的使用单个基元操作存取存储块的行和列的方法。具体地说,图25示出可以使用其中字线水平延伸的存储器的存取层,在单个基元指令LD A[2,i]中存取存储块A的单个行(第二行),其中LD表示采用汇编语言的“加载”操作。同样,图25示出可以使用其中字线垂直延伸的存储器的存取层,在单个基元指令LD B[i,4]中存取存储块B的单个列(第四列)。
图23C的示例性实施例示出包括两个级别存储器以及两种不同的垂直存取布线模式的3D存储结构。在本发明的其它实施例中,可以形成这样的3D存储结构:其具有三个或更多级别的不同存取布线模式以便访问一个级别的存储。此外,尽管图23C示出具有由两种不同布线模式存取的一个级别存储的3D存储结构,但在本发明的其它实施例中,构造3D存储结构以便具有两个或更多级别的存储,其中每个级别存储由不同存取布线几何结构的一个或多个层共享。此外,在本发明的其它示例性实施例中,可以实现不同于垂直模式的存取布线模式,例如图26、27和28中所示。
一般而言,图26示出根据本发明的一个示例性实施例的包括存储单元阵列和对角线存取布线模式的存储阵列。更具体地说,图26示出存储阵列240,其包括采用包含8行(R1、R2、...R8)和8列(C1、C2、...、C8)的2D阵列布置的64个存储单元(M)。存储阵列240包括采用对角线存取模式布置的多个字线WL1、WL2、WL3、WL4、WL5、WL6、WL7和WL8,其中每个字线连接到来自每行和每列的一个存储单元M(M(i,j)),其中i表示行索引而j表示列索引。例如,字线WL1连接到存储单元M(1,8)、M(2,7)、M(3,6)、M(4,5)、M(5,4)、M(6,3)、M(7,2)和M(8,1)。此外,字线WL2连接到存储单元M(1,1)、M(2,8)、M(3,7)、M(4,6)、M(5,5)、M(6,4)、M(7,3)和M(8,2)。尽管图26中未具体示出,但在本发明的一个实施例中,图26中的存储阵列240的所有位线可以沿着列方向或行方向延伸。因此,当激活给定字线时,可以同时激活每个位线以便读出每列中由该给定字线激活的一个位。
此外,图27示出根据本发明的另一个示例性实施例的包括存储单元阵列和对角线存取布线模式的存储阵列。更具体地说,图27示出存储阵列250,其包括采用包含8行(R1、R2、...R8)和8列(C1、C2、...、C8)的2D阵列布置的64个存储单元(M),类似于图26,但其中图27中的多个字线WL1、WL2、WL3、WL4、WL5、WL6、WL7和WL8沿着这样的对角线存取模式布置:该模式是图26中所示的字线布线模式的镜像。在图27中,每个字线连接到来自每行和每列的一个存储单元M(M(i,j)),其中i表示行索引而j表示列索引。例如,字线WL8连接到存储单元M(1,1)、M(2,2)、M(3,3)、M(4,4)、M(5,5)、M(6,6)、M(7,7)和M(8,8)。尽管图27中未具体示出,但在本发明的一个实施例中,图27中的存储阵列250的所有位线可以沿着列方向或行方向延伸。因此,当激活给定字线时,可以同时激活每个位线以便读出每列中由该给定字线激活的一个位。
图28示出根据本发明的另一个示例性实施例的包括存储单元阵列和移位后的存取布线模式的存储阵列。更具体地说,图28示出存储阵列260,其包括采用包含8行(R1、R2、...R8)和8列(C1、C2、...、C8)的2D阵列布置的64个存储单元(M),类似于图26和27,但其中图28中的多个字线WL1、WL2、WL3、WL4、WL5、WL6、WL7和WL8采用列移位后的存取模式布置。具体地说,图28中的字线被示出针对至少两行沿着列方向延伸,然后沿着对角线方向移位到另一列,在这另一列它们针对另两行延伸,依此类推。例如,字线WL1连接到存储单元M(1,4)、M(2,4)、M(3,3)、M(4,3)、M(5,2)、M(6,2)、M(7,1)和M(8,1)。尽管图28中未具体示出,但在本发明的一个实施例中,图28中的存储阵列260的位线可以沿着行方向延伸,以便当激活给定字线时,可以激活每个位线以便读出每列中由该给定字线激活的一个位。
应该理解,图23C、26、27和28中所示的存取布线模式是示例性实施例,并且可以实现其它存取布线模式。3D存储结构可以具有多层不同的存取布线模式,例如图23C、26、27和28中所示,这些存取布线模式通常连接到一个级别的存储。如上所述,图23C中所示的垂直存取布线模式使能沿着不同维度(例如,阵列的行和列)存取数据结构。图26、27和28的随机存取模式允许采用支持加密和错误检查的任意模式来存储数据。例如,图26、27和28的存取布线模式可以用于以任意方式存储数据,以便基本上以唯一方式对数据进行加密。此外,如果沿着每个维度维护简单奇偶校验,则可以使用不同存取布线模式针对阵列执行强大的错误纠正。例如,如果一行和一列的奇偶校验错误,则其中行和列交叉的位被确定为错误位。
在本发明的其它实施例中,使用多层存储构造3D存储结构,其中可以沿着三个维度存储或存取数据。例如,图29示意性地示出根据本发明的一个示例性实施例的在多个级别存储上实现3D存取模式的3D存储结构。具体地说,图29示出3D存储结构270,其包括多个级别的存储器(例如,平面0、平面1、平面2、...),其中每个存储级别包括一个级别存储和至少一个2D存取布线几何结构。举例来说,图29示出第一级别存储器(平面0)包括存储单元M1、M2、M3和M4的2D阵列,可以在该给定平面中使用包括字线(WL0_0、WL1_0)和位线(BL0_0、BL1_0)的垂直存取布线模式存取这些存储单元。第二级别存储器(平面1)包括存储单元M5、M6、M7和M8的2D阵列,可以在该给定平面中使用包括字线(WL0_1、WL1_1)和位线(BL0_1、BL1_1)的垂直存取布线模式存取这些存储单元。此外,第三级别存储器(平面2)包括存储单元M9、M10、M11和M12的2D阵列,可以在该给定平面中使用包括字线(WL0_2、WL1_2)和位线(BL0_2、BL1_2)的垂直存取布线模式存取这些存储单元。
此外,图29的3D存储结构270包括多个垂直字线WL0_3、WL1_3、WL2_3和WL3_3,这些字线跨不同级别存储连接到存储单元列。具体地说,第一垂直字线WL0_3在第一到第三平面(平面0、1和2)上连接到存储单元M3、M7和M11。第二垂直字线WL1_3在第一到第三平面上连接到存储单元M1、M5和M9。第三垂直字线WL2_3在第一到第三平面上连接到存储单元M4、M8和M12。第四垂直字线WL3_3在第一到第三平面上连接到存储单元M2、M6和M10。在这点上,图29示出3D存储结构,其中可以沿着三个维度中的任意一个存储数据,并且沿着三个维度中的任意一个存取数据。将参考图30A、30B和30C进一步示出这些概念。
具体地说,图30A、30B和30C示意性地示出用于使用图29的示例性3D存储结构沿着各种维度存取数据的方法。具体地说,图30A示出用于针对图29的存储结构270中的固定值x沿着y-z平面存取数据(存储单元M1、M2、M5、M6、M9和M10)的方法。图30B示出用于针对图29的存储结构270中的固定值z沿着x-y平面存取数据(存储单元M5、M6、M7和M8)的方法。图30C示出用于针对图29的存储结构270中的固定值y沿着x-z平面存取数据(存储单元M1、M3、M5、M7、M9和M11)的方法。图29的3D结构支持使用新的基元操作以便移动数据。例如,在任何维度中,可以作为一个基元操作而沿着垂直维度移动数据平面。例如,在图30B中,可以作为一个基元操作而将固定值z的x-y数据平面移动到另一个值的存储位置的另一个x-y平面。在本发明的其它实施例中,一个基元操作可以被定义为作为一个操作而转置(置换)两个平行的数据平面。图30A、30B和30C中所示的各种水平和垂直线使用双箭头示出,以便这些线一般表示字线和/或位线,具体取决于可以实现的布线体系结构。
应该理解,图29(以及图30A、30B和30C)中所示的每个存储单元可以表示单个位、字节、字、高速缓存行或任何其它数据量。还应该理解,为了易于说明,每个2D存储平面(平面0、平面1、平面2)在图29中被示出为具有四个存储单元以及两个字线和位线,但每个存储平面可以具有更多的存储单元以及字线和位线。此外,尽管图29中仅示出三个2D存储平面,但可以使用两个级别的2D存储或者四个或更多级别的2D存储构造3D存储结构,其中每个级别存储具有一个或多个与其关联的不同存取布线模式。实际上,尽管图29示出与每个2D级别存储关联的一个存取布线模式,但一个或多个存储平面(平面0、平面1、平面2)可以具有两个或更多与其关联的不同存取布线模式,以便可以使用不同布线几何结构存取给定存储平面的2D阵列数据,例如上面在图23C中描述的那样。
还应该理解,图29中所示的3D存储结构270的每个级别(平面)的存储器可以实现为物理级别存储器或概念级别存储器,如上面讨论的那样。例如,在本发明的一个实施例中,3D存储结构270可以在单个衬底或芯片上实现,其中所有存储电路组件(存取晶体管、存储元件、驱动器、读出放大器等)都在单个衬底或芯片的活动表面上形成,并且其中所有布线都将作为单个芯片的BEOL结构的一部分制造。在该实施例中,3D存储器的所有存储位都将布置在单个2D平面中,但存取布线结构将被设计为以这样一种方式连接存储单元的存储位:该方式将产生如图29中在概念上示出的虚拟3D存储结构。
在本发明的另一个实施例中,为了获得增加的存储密度,在单独的衬底或芯片上形成图29中所示的3D存储结构270中的每个级别(平面)的存储器,其中不同的衬底/芯片在彼此之上层叠以便形成物理3D层叠式存储结构。在该实施例中,每个衬底/芯片将具有与给定级别存储器关联的存储元件、存取设备和存取布线结构,其中通过不同衬底/芯片位形成的垂直过孔连接产生垂直存取布线(例如,字线)以便跨不同物理级别存储器存取存储单元。例如,在本发明的一个实施例中,可以利用图29的结构,使用多个物理级别高速缓冲存储器构造图9C中所示的第一和第二处理器90A和90B之间结合的L2和L3高速缓存中的每一个。
在本发明的其它实施例中,可以使用概念和物理级别存储器的组合制造图29中所示的3D存储结构270。例如,假设4级别存储结构,则可以在第一衬底上制造4个级别存储器中的2个而作为第一和第二概念存储级别,并且可以在单独的第二衬底上制造其它2个级别存储器而作为第三和第四概念存储级别。第一和第二衬底(均具有两个概念级别存储器)可以在彼此之上层叠以便形成具有4个级别存储器的3D层叠式结构。
如上面参考图23C和24讨论的,例如可以采用具有一个级别存储器和两种不同存取布线模式的存储结构存储2D阵列(数据结构),以便可以使用一个基元操作存取2D阵列的全部行或全部列。在本发明的其它实施例中,可以采用具有一个级别存储器和一种存取布线模式的标准存储结构存储2D数据阵列结构,以便可以采用一个操作存取全部行或列。例如,图31示出根据本发明的一个示例性实施例的用于将2D数据阵列结构存储在存储器中的方法,其中采用一个操作实现存取行和列。图31示意性地示出存储阵列280,其包括布置在四行(R0、R1、R2和R3)和四列(C0、C1、C2和C3)中的2D存储单元阵列,其中可以通过包括四个字线(WL0、WL1、WL2、WL3)和四个位线(BL0、BL1、BL2、BL3)的存取布线结构存取存储单元。
图31的存储阵列280被示出为存储包括数据元素A(i,j)的4x4数据阵列结构,其中i表示行索引而j表示列索引。与图24中所示的存储块A的数据存储布置相比,图31中所示的数据阵列结构的行和列采用置换布置存储,以便将行的所有元素存储在不同列中,并且将给定列的所有元素存储在不同行中。具体地说,通过将每行的列偏移其行编号,将数据阵列结构的元素A(i,j)存储在存储单元中,以便按行和列倾斜数据。
例如,在图31中,存储器280的第0行(R0)包括存储在标准位置中的数据结构的第一行(A11、A12、A13和A14)。但是,将数据结构的第二行(A21、A22、A23和A24)存储在存储器280的第1行(R1)中,其中数据元素向右移位1。此外,将数据结构的第三行(A31、A32、A33、A34)存储在存储器280的第2行(R2)中,其中数据元素向右移位2,并且将数据结构的第四行(A41、A42、A43、A44)存储在存储器280的第3行(R3)中,其中数据元素向右移位3。在这点上,数据结构A的每行和每列在存储阵列280的不同行和列中。这允许采用单个操作取回任何行或任何列。例如,可以通过激活字线WL0,然后激活每个位线BL0、BL1、BL2和BL3,存取数据结构A的第一行RA1(元素A11、A12、A13、A14),以便采用一个操作读出数据阵列结构A的第一行RA1中的每个元素(A11、A12、A13、A14)。此外,可以通过激活每个字线WL0~WL3,然后激活每个位线BL0~BL3,存取数据阵列结构A的第一列CA1(元素A11、A21、A31、A41)(如虚线282所示),以便采用一个操作读出数据阵列结构A的第一列CA1中的每个元素(A11、A21、A31、A41)。
可以以类似的方式从存储器280读出数据阵列结构的第二、第三和第四行和列,但应用旋转方法284以便根据需要将位向左移位某一位置数,从而按照适当的顺序放置位。例如,当读出数据阵列结构的第二行时,位线BL0、BL1、BL2和BL3上的数据元素将按照A24、A21、A22和A23的顺序。将应用1位位置的右移操作以便按照适当的顺序放置数据元素,即A21、A22、A23和A24。
在本发明的另一个实施例中,将上面参考图31讨论的示例性存储方法扩展到3D应用,例如图32中所示。图32示意性地示出根据本发明的一个示例性实施例的用于将3D数据阵列存储在3D存储结构中的方法。图32示出立方体结构290,其包括4x4x4存储单元矩阵。立方体结构表示例如具有图29中所示的体系结构的3D存储结构。在该实施例中,可以通过在每个4x42D平面中以及沿着垂直(层叠)方向偏移行和列,将3D数据阵列存储在3D存储器中。在图32中,存储结构290中的每个立方体的编号(1、2、3、4)表示给定2D阵列的给定行的数据元素的位位置以及该给定2D阵列中的给定列的关联列编号。
图32的存储布置将允许3D存储系统中的任何4x42D平面保存4x4x43D数据结构的任何2D片段,以便可以采用一个操作存取每个2D数据片段的数据元素。在其它实施例中,可以通过在一个平面中存储一个维度,将2D数据映射到3D存储结构。例如,可以通过将4x16阵列分为两个4x4部分,并且在3D存储结构的单独平面中存储每个4x4部分,将4x162D矩阵存储在图32的3D存储器中。此外,假设使用多个级别64x256存储器构造3D存储系统,则可以通过将前256维度分为4个单独部分(例如,形成4个64x256部分),并且将4个部分的每一个存储在3D存储器的4个不同级别64x256上,将256x2562D数据阵列存储在3D存储系统上。
本发明的其它实施例包括用于使用多芯片系统实现3D计算机处理器系统的结构和方法。例如,图33是可以应用本发明的实施例的多芯片系统的侧面示意图。具体地说,图33示出多芯片系统300,其包括封装衬底310、使用表面安装结构330(例如,球栅阵列结构)安装在衬底310上的3D计算叠层320,以及安装在计算叠层320上的冷却板340。计算叠层320包括多个层叠式层,其中包括一个或多个处理器核心层321、互连和输入/输出布线层322、L3高速缓冲存储器层323、多个L4高速缓冲存储器层324、可选层325和电力转换器层326。每个层321、322、323、324、325和326包括半导体芯片,其分别具有正面(活动)表面321A、322A、323A、324A、325A和326A,以及与活动表面相对的背面(不活动)表面。
电力转换器层326包括电路,以便将封装衬底310提供的高电压电力(例如,10V)转换为提供给各种层的有源电路的较低电压(例如,1V)。电力转换器层326可以包括诸如电容器和加速器电路之类的其它电路和电路组件,以便实现其它标准功能。例如,加速器是执行特定功能的ASIC硬件引擎。电力转换器层326的背面通过表面安装结构330连接到封装衬底310。可选层325可以包括备用存储器或其它部件。L4高速缓冲存储器层324包括多个面对背安装到彼此的存储器层(L1、L2、L3和L4)。L3高速缓冲存储器层323的背面安装到L4高速缓冲存储器叠层324的第一层L1的正面。L3高速缓冲存储器层323的活动表面323A可以还包括驱动器和用于控制各种L4高速缓冲存储器层324的控制电路。
在一个实施例中,处理器核心层321包括多个处理器芯片,其中每个处理器芯片可以包括一个或多个处理器。处理器芯片例如可以使用上面针对图13、14、15和16讨论的技术来连接。互连和I/O布线层322包括将每个处理器核心层321彼此相连的布线,其中互连和I/O布线层包括多个输入/输出端口,其中各处理器核心层321共同连接并且共享多个输入/输出端口。在图33的实例实施例中,处理器核心层321的叠层中的下处理器核心层被示为经由互连阵列327(例如,焊球)与互连和I/O布线层322面对面安装。
互连和I/O布线层322包括布线网络以便将每个局部存储器层连接在一起(即,存储器层323和324),从而产生存储系统。例如,可以使用上面参考图9A、9B、9C以及22到32讨论的一种或多种技术来互连和控制各种存储器层。此外,互连和I/O布线层322包括布线网络以便将处理器核心层321的叠层的共同共享的输入/输出端口连接到由互连的存储器层323和324形成的聚合存储系统。此外,形成全局互连总线以便将互连和I/O布线层322连接到在封装衬底310上(经由表面安装结构330)形成的布线,该全局互连总线包括通过存储器层323、324和电力转换器层326形成的垂直布线和互连。
尽管图33示出一个计算叠层320,但可以在封装衬底上安装多个计算叠层以便形成多处理器计算系统。例如,图34是可以应用本发明的实施例的3D计算机处理器系统的高级透视图。具体地说,图34示出具有多个计算叠层420的3D多处理器计算系统400,这些计算叠层安装在公共衬底410上并且由公共冷却板结构(热耦合到计算叠层420的上表面)冷却。图34中所示的计算叠层420可以与图33中所示的计算叠层320具有相同或类似的结构。封装衬底410包括多个电互连和迹线,它们形成在各计算叠层420之间提供多对多连接的电布线。冷却板440例如可以是支持液体冷却的结构,或者支持空气冷却的散热板。
在图34的实施例中,使用公共冷却板440冷却每个计算叠层420可以由于各种原因而出现问题。例如,根据采用的冷却技术(例如,液体冷却、空气冷却),公共冷却板440可能由于所属技术领域中的普通技术人员理解的原因,不会为位于冷却板440的不同位置处的不同计算叠层420充分提供足够的热冷却。此外,当冷却板440由于其热膨胀系数而膨胀和收缩时,将向冷却板440和位于冷却板440的不同范围(区域)处的计算叠层420的上表面之间的热界面施加不同的应力和应变,这难以控制。例如,对于位置更远离冷却板440的中心的那些计算叠层420,冷却板440的表面相对于给定叠层420的表面之间的位移较大,这将导致冷却板440和位置更靠近冷却板440的外围的计算叠层420之间的热界面产生较大的应变并且可能损坏。此外,使用图34的3D计算系统400,封装衬底410的制造可以非常昂贵和复杂,这是由于将所有计算叠层420连接在一起所需的各种级别的布线所致。实际上,取决于形成所述系统的计算叠层420的数量,以及所采用的特定布线网络结构,封装衬底410可以具有100或更多级别的布线,这制造起来可以非常昂贵。
在本发明的其它实施例中,通过以下操作消除与具有复杂布线的公共冷却板440和封装衬底410关联的问题:构造包括多个多芯片系统的3D计算机处理器系统,这些多芯片系统采用包括多个局部电力和冷却层的聚合结构,以及在聚合结构中连接多芯片系统的全局互连结构。例如,图35、36、37、38和39示意性地示出包括多个多芯片系统的3D计算机处理器系统的实施例。图35是根据本发明的一个实施例的多芯片系统的侧面示意图,图36示出根据本发明的一个实施例的3D计算机处理器系统,其通过结合图35中所示的多个多芯片系统而构造。
具体地说,图35示出多芯片系统500,其包括局部电力转换器层510、多个(m个)存储器层520、局部互连和I/O布线层530、多个处理器核心层540和局部冷却层550。局部冷却层550包括局部入口552和局部出口554。局部电力转换器层510包括局部电源馈送512和局部接地514。多芯片系统500还包括全局总线560,其穿过连接到局部互连和I/O布线层530的层叠式结构。多芯片系统500的各层510、520、530、540和550在结构和功能方面类似于图33中所示的多芯片系统300的类似对应层326、324/323、322、321和340。但是,图35中所示的多芯片系统500为通过以物理方式聚合和结合例如图35中所示的多个多芯片系统而构造的3D计算机处理器系统提供构件块。
图36示意性地示出根据本发明的一个实施例的3D计算机处理器系统600,其通过采用垂直结构层叠多个多芯片系统(例如图35中所示的多芯片系统500)而形成。具体地说,图36示出3D计算机处理器系统600,其包括在彼此之上垂直层叠的十个多芯片系统(500_1、500_2、...、500_10)。系统600包括连接到每个多芯片系统(500_1、500_2、...、500_10)的每个局部电力转换器层510的全局电源结构610,以及连接到每个多芯片系统(500_1、500_2、...、500_10)的局部冷却层550的局部入口/出口的全局冷却系统650。在该实施例中,冷却系统借助每个多芯片系统500的单独局部冷却层550集成到3D计算机处理器系统600。该结构消除了与图34中所示的公共冷却板440关联的需要和问题。
图37示意性地示出根据本发明的各实施例的用于将全局总线连接到3D计算机处理器系统的每个多芯片系统的技术。具体地说,图37示出3D计算机处理器系统700,其包括多个多芯片系统(701、702、703、704、705、706、707、708、709和710),以及连接3D计算机处理器系统700中的多芯片系统的全局互连结构760。为了易于说明,图37中的全局总线760一般地被示出为是连接到3D计算机处理器系统700中的每个多芯片系统(701、702、703、704、705、706、707、708、709和710)的共享总线。在一个实施例中,全局总线760可以是由布线和互连形成的电连接,这些布线和互连穿过形成多芯片系统(701、702、703、704、705、706、707、708、709和710)的各芯片层中的每一个。例如,图35中所示的总线元件560表示图37的全局总线760的穿过每个多芯片系统500的局部芯片层并连接到每个多芯片系统的局部互连和I/O布线层530的部分。
图37中所示的全局总线760连接到形成3D计算机处理器系统700的每个多芯片系统(701、702、703、704、705、706、707、708、709和710)的局部互连和I/O布线层。如上面讨论的,给定多芯片系统中的局部互连和I/O布线层将给定多芯片系统中的所有处理器核心层彼此相连,将所有存储器层520彼此相连,并且将所有局部处理器核心层和存储器层彼此相连。全局总线760在3D计算机处理器系统700中的每个多芯片系统(701、702、703、704、705、706、707、708、709和710)之间实现点到点通信。全局总线760使得无需封装衬底410提供的用于连接图34中所示的3D计算机处理系统400中的每个多芯片系统420的布线网络。在该实施例中,在3D计算机处理器系统700的最外侧多芯片系统701和710之间布线的全局总线760的总长度将不会成为问题,因为假设系统700中的每个层的厚度为100微米,则3D系统700中的100个层的厚度将约为1厘米。
在本发明的另一个实施例中,全局总线760可以由使用激光通信的光纤系统形成。在该实施例中,可以通过为3D计算机处理系统700中的每个多芯片系统(701、702、703、704、705、706、707、708、709和710)指定不同的通信信号波长(颜色),促进共享光纤总线上的点到点通信。例如,可以为第一多芯片系统701指定基础波长,然后可以为每个剩余的多芯片系统(702、703、704、705、706、707、708、709和710)指定逐渐更大(或更小)的激光波长。光纤系统将允许多个多芯片系统(701、702、703、704、705、706、707、708、709和710)在共享总线760上将信息传输到其它多芯片系统,而无需等待共享总线760的控制,如果以电方式实现全局总线760则需要这种控制。在每种情况下,无论全局总线760以光方式还是电方式实现,都将采用一致性方案以便控制和协调在共享全局总线760上的点到点通信。
图38示出根据本发明的另一个实施例的3D计算机处理器系统。具体地说,图38示出3D计算机处理器系统800,其包括多个多芯片系统820。多芯片系统820包括结合在一起的多个层826,其中层826包括处理器芯片、存储器芯片、局部互连和输入/输出布线层等,如上面讨论的那样。某些多芯片系统820可以仅包括处理器芯片,仅包括存储器芯片,或者包括它们的组合。多芯片系统820还包括局部电力转换器层822和局部冷却层824。局部冷却层824具有连接到全局冷却系统830的入口和出口,如在上面其它实施例中讨论的那样。
3D计算机处理器系统800还包括衬底810,在其上安装多个多芯片系统820。具体地说,将多芯片系统820的各个芯片和层的边缘安装到衬底810。在一个实施例中,衬底810包括布线和组件以便提供配电网络,从而为每个局部电力转换器层822提供全局电力,以及进行布线以实现边缘耦合(edge-coupled)到多芯片系统820的局部互连和输入/输出布线层的全局电总线。在另一个实施例中,衬底810包括布线和组件以便实现配电网络,同时使用在聚合的多芯片系统820的各层中形成的布线和互连来构造全局互连网络,从而通过多芯片系统820从一端纵向延伸到另一端。
图39示出根据本发明的另一个实施例的3D计算机处理器系统。具体地说,图39示出3D计算机处理器系统900,其包括多个在衬底910上边缘安装的多芯片系统920,类似于图38。多芯片系统920包括多个结合在一起的层926,其中层926包括处理器芯片、存储器芯片以及局部互连和输入/输出布线层等,如上面讨论的那样。某些多芯片系统可以仅包括处理器芯片,仅包括存储器芯片,或者包括它们的组合。多芯片系统920还包括局部电力转换器层922。3D计算机处理器系统900的衬底910包括布线和组件以便提供配电网络,从而为每个局部电力转换器层922提供全局电力,以及进行布线以实现边缘耦合到每个多芯片系统920的局部互连和输入/输出布线层的全局电总线。
此外,在图39的3D计算机处理器系统900中,多芯片系统920边缘安装到衬底910,并且在相邻多芯片系统之间布置空间932。保护层(containment layer)930耦合到多芯片系统920的各层的上边缘以便提供机械稳定性,以及提供空间932所提供的封闭腔,强制性空气或冷却剂可以通过该封闭腔流动以便为多芯片系统920提供冷却。
尽管参考附图在此描述了本发明的各示例性实施例,但应该理解,本发明并不限于这些精确的实施例,并且在不偏离所附权利要求的范围的情况下,所属技术领域的技术人员可以做出各种其它更改和修改。

Claims (20)

1.一种计算机处理器系统,包括:
多个多芯片系统,所述多个多芯片系统以物理方式聚合和结合,其中每个多芯片系统包括:
多个芯片,所述多个芯片结合在一起;以及
局部互连和输入/输出布线层;以及
全局互连网络,所述全局互连网络连接到每个多芯片系统的所述局部互连和输入/输出布线层以便将所述多芯片系统互连在一起,
其中至少一个多芯片系统包括结合在一起的多个处理器芯片。
2.根据权利要求1的计算机处理器系统,其中至少一个所述多芯片系统包括结合在一起的多个存储芯片。
3.根据权利要求2的计算机处理器系统,其中所述多个存储芯片包括L4高速缓冲存储器。
4.根据权利要求2的计算机处理器系统,其中所述多个存储芯片包括L3高速缓冲存储器。
5.根据权利要求1的计算机处理器系统,其中所述多芯片系统中的至少一个多芯片系统包括局部电力转换器层以便为该多芯片系统提供局部电力。
6.根据权利要求1的计算机处理器系统,其中所述多芯片系统中的至少一个多芯片系统包括局部冷却层以便为该多芯片系统提供局部冷却。
7.根据权利要求6的计算机处理器系统,其中所述局部冷却层包括液体冷却板,所述液体冷却板具有连接到液体冷却剂传送系统的局部入口和局部出口。
8.根据权利要求1的计算机处理器系统,其中所述全局互连网络包括全局电总线。
9.根据权利要求8的计算机处理器系统,其中所述全局电总线包括沿着与形成所述多芯片系统的芯片的平行平面垂直的方向延伸的电布线。
10.根据权利要求9的计算机处理器系统,其中所述全局电总线的所述电布线包括在形成所述多芯片系统的芯片中形成并延伸通过所述芯片的布线和通孔。
11.根据权利要求9的计算机处理器系统,其中所述全局电总线的所述电布线包括在与形成所述多个多芯片系统的芯片的边缘相连的单独衬底中形成的布线。
12.根据权利要求1的计算机处理器系统,其中所述全局互连网络包括光总线。
13.根据权利要求12的计算机处理器系统,其中每个多芯片系统在所述光总线上使用不同波长的光通信。
14.根据权利要求12的计算机处理器系统,其中所述光总线布置在所述多芯片系统附近并沿着与形成所述多芯片系统的芯片的平行平面垂直的方向延伸。
15.根据权利要求1的计算机处理器系统,其中每个多芯片系统均包括局部电力转换器层和局部冷却层。
16.根据权利要求15的计算机处理器系统,其中第一多芯片系统的所述局部冷却层布置在第二多芯片系统的所述局部电力转换器层附近并与第二多芯片系统的所述局部电力转换器层接触。
17.根据权利要求1的计算机处理器系统,其中所述至少一个多芯片系统的所述多个处理器芯片使用在所述处理器芯片中形成的垂直通孔而彼此相连,并且其中每个所述处理器芯片共同连接到所述局部互连和输入/输出布线层并共享在所述局部互连和输入/输出布线层上形成的I/O端口。
18.一种计算机处理器系统,包括:
多个多芯片系统,其中每个多芯片系统均包括:
多个芯片,所述多个芯片结合在一起;以及
局部互连和输入/输出布线层,
其中至少一个多芯片系统包括结合在一起的多个处理器芯片;
全局互连网络,所述全局互连网络连接到每个多芯片系统的所述局部互连和输入/输出布线层以便将所述多芯片系统互连在一起;以及
衬底,在所述衬底上安装所述多个多芯片系统,其中所述多芯片系统的所述芯片彼此平行地边缘安装到所述衬底。
19.根据权利要求18的计算机处理器系统,其中所述全局互连网络包括在所述多芯片系统所边缘安装到的所述衬底内形成的电总线。
20.根据权利要求18的计算机处理器,其中将所述多芯片系统边缘安装到所述衬底,并且在所述多芯片系统之间具有空间以便允许空气或冷却剂流过所述空间并为所述多芯片系统提供冷却。
CN201410090673.0A 2013-03-13 2014-03-12 具有局部电力和冷却层以及全局互连的计算机处理器系统 Active CN104050141B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/801,071 US9195630B2 (en) 2013-03-13 2013-03-13 Three-dimensional computer processor systems having multiple local power and cooling layers and a global interconnection structure
US13/801,071 2013-03-13

Publications (2)

Publication Number Publication Date
CN104050141A CN104050141A (zh) 2014-09-17
CN104050141B true CN104050141B (zh) 2017-11-10

Family

ID=51503000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410090673.0A Active CN104050141B (zh) 2013-03-13 2014-03-12 具有局部电力和冷却层以及全局互连的计算机处理器系统

Country Status (2)

Country Link
US (1) US9195630B2 (zh)
CN (1) CN104050141B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9568960B2 (en) * 2015-02-20 2017-02-14 International Business Machines Corporation Supercomputer using wafer scale integration
US11527523B2 (en) * 2018-12-10 2022-12-13 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956647A (zh) * 2005-10-25 2007-05-02 国际商业机器公司 冷却装置及其制造方法
CN102210020A (zh) * 2008-11-10 2011-10-05 飞思卡尔半导体公司 用于互连集成电路的技术

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420754A (en) 1990-09-28 1995-05-30 At&T Corp. Stacked board assembly for computing machines, including routing boards
US5913256A (en) 1993-07-06 1999-06-15 Lockheed Martin Energy Systems, Inc. Non-lead environmentally safe projectiles and explosive container
US5701233A (en) 1995-01-23 1997-12-23 Irvine Sensors Corporation Stackable modules and multimodular assemblies
US5568574A (en) 1995-06-12 1996-10-22 University Of Southern California Modulator-based photonic chip-to-chip interconnections for dense three-dimensional multichip module integration
US6525726B1 (en) 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
US6433413B1 (en) 2001-08-17 2002-08-13 Micron Technology, Inc. Three-dimensional multichip module
US6982197B2 (en) * 2002-02-07 2006-01-03 Hewlett-Packard Development Company, L.P. Method and apparatus for building up large scale on chip de-coupling capacitor on standard CMOS/SOI technology
KR100621992B1 (ko) 2003-11-19 2006-09-13 삼성전자주식회사 이종 소자들의 웨이퍼 레벨 적층 구조와 방법 및 이를이용한 시스템-인-패키지
US7068515B2 (en) 2004-11-24 2006-06-27 Hewlett-Packard Development Company, L.P. Multi-chip module with stacked redundant power
TWI267967B (en) 2005-07-14 2006-12-01 Chipmos Technologies Inc Chip package without a core and stacked chip package structure using the same
US7554203B2 (en) 2006-06-30 2009-06-30 Intel Corporation Electronic assembly with stacked IC's using two or more different connection technologies and methods of manufacture
KR100843214B1 (ko) 2006-12-05 2008-07-02 삼성전자주식회사 메모리 칩과 프로세서 칩이 관통전극을 통해 연결된 플래너멀티 반도체 칩 패키지 및 그 제조방법
US7615857B1 (en) * 2007-02-14 2009-11-10 Hewlett-Packard Development Company, L.P. Modular three-dimensional chip multiprocessor
JP2010108204A (ja) 2008-10-30 2010-05-13 Hitachi Ltd マルチチッププロセッサ
US8417917B2 (en) 2009-09-30 2013-04-09 International Business Machines Corporation Processor core stacking for efficient collaboration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956647A (zh) * 2005-10-25 2007-05-02 国际商业机器公司 冷却装置及其制造方法
CN102210020A (zh) * 2008-11-10 2011-10-05 飞思卡尔半导体公司 用于互连集成电路的技术

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
3D IC 集成与硅通孔(TSV)互连;童志义;《电子工业专用设备》;20090331(第3期);第27-34页 *

Also Published As

Publication number Publication date
US20140281378A1 (en) 2014-09-18
US9195630B2 (en) 2015-11-24
CN104050141A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
CN105579979B (zh) 具有可依据多于一组的规则和/或配置分割、联合并管理的多个缓存的三维处理系统
CN105359119B (zh) 具有使得能够实现多维中的不同访问模式的配线结构的存储器架构
Sun et al. A novel architecture of the 3D stacked MRAM L2 cache for CMPs
Gao et al. Practical near-data processing for in-memory analytics frameworks
CN103514139B (zh) 堆叠式多处理器结构和用于实现可靠的处理器操作的方法
US10691182B2 (en) Layered super-reticle computing: architectures and methods
WO2015060913A1 (en) Three-dimensional processing system having independent calibration and statistical collection layer
CN103378076B (zh) 半导体器件、半导体封装以及操作计算机的方法
CN104050141B (zh) 具有局部电力和冷却层以及全局互连的计算机处理器系统
US9190118B2 (en) Memory architectures having wiring structures that enable different access patterns in multiple dimensions
US9400762B2 (en) Integrated device with memory systems accessible via basic and bypass routes
Ozdemir et al. Quantifying and coping with parametric variations in 3D-stacked microarchitectures
Jagasivamani et al. Memory-systems challenges in realizing monolithic computers
CN103377171B (zh) 处理器系统、半导体封装以及用于操作计算机处理器的方法
Xie et al. Die-stacking architecture
Woo et al. Pragmatic integration of an SRAM row cache in heterogeneous 3-D DRAM architecture using TSV
CN103377169B (zh) 处理器系统以及用于操作计算机处理器的方法
Naeem et al. Scalability of relaxed consistency models in NoC based multicore architectures
Tárrega et al. Fast-track cache: a huge racetrack memory L1 data cache
Yuang et al. A scalable distributed memory architecture for Network on Chip
Randall Cost-Driven Integration Architectures for Multi-Die Silicon Systems
Ziabari Improving the global memory efficiency in GPU-based systems
Wu An Express Network-on-Chip (ExNoC) Cache Architecture for Large Caches
Jevdic Exploiting Bandwidth in 3D-Integrated Chip Multiprocessors
Farahani Energy-efficient data processing using accelerators

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant