具体实施方式!
与本发明一致的实施例利用通用的标准化层间总线来促进设置在多层半导体堆叠中不同电路层中的各功能单元之间的通信。在这方面,可以考虑使单独的电路层包括设置在半导体衬底上的逻辑电路的二维布图。将认识到,作为制造处理的结果,单个电路层可包括多个物理层(例如,金属层,电介质层等),但是该多个层共同地限定了大体上在二维覆盖区上布图的逻辑电路。因此多层半导体堆叠包括以重叠关系彼此互联的多个电路层,以有效地限定三维电路设计,增加了垂直或横向维度到单独的电路层的平面维度,并利用层间总线来沿着单独的电路层内限定的各功能单元之间的垂直方向通信。
例如,图1图示了包括多个半导体管芯或芯片12的多层半导体堆叠10,每个半导体管芯包括一个或多个功能单元14。根据本发明,多个芯片12上的功能单元14经由垂直地或横向地定向的层间总线16彼此通信,且以堆叠的布置彼此物理地和电气地耦合。
如图2所示,为实现通用的标准化层间总线,每个半导体管芯12包括设置在管芯的预定形貌(topographic)位置的层间接口区域18,其包括设置在预定位置的多个导电体(图2中没有示出),以使得当将管芯12堆叠在一起时,各个层间接口区域18且因此在其中的导电体在形貌方面彼此对准(在本发明的环境下,且假定其中x和y指电路平面内的维度且z指垂直于电路的平面的维度的x-y-z坐标系统,当在其上形成两个特征的管芯在堆叠中被布置在一起时,在两个特征具有大体上相同的x,y坐标时它们在形貌上对准)。在许多情况下,由于该对准,各个管芯内的导电体形成层间总线的彼此互连是从管芯彼此物理地和电气地互连到堆叠中自动产生的结果。
将认识到,取决于例如需要的总线分段的数目,实现总线需要的互连的数目,功能单元的数目和布置,和各个管芯的尺寸之类的因素,层间接口区域可采用多种形式。例如,如果堆叠包括可变尺寸的管芯,则不同管芯上的层间接口区域可以是不同尺寸的,但是尽管如此可包括相应的和在形貌上对准的导电体以实现总线。并且,接口区域可以是单个连续区域或可以分为多个不连续区域。此外,如以下关于图8论述的,堆叠中的某些电路层可包括层内总线互连,例如,互连层间总线的多个总线分段,以使得一个电路层的层间接口区域可以是另一层的层间接口区域的超集或子集。
在图示的实施例中,用于电路层的功能电路(例如,电路设计中的功能单元14)可以不设置在层间接口区域内,而是另行需要被放置在管芯的功能区域20中。在本发明的上下文中,功能单元通常是指已经为功能目的划分为分立单元的、功能地相关的逻辑电路。虽然在图示的实施例中,功能单元典型地是高度复杂的电路,例如处理器核心、存储控制器或加速器单元,将认识到在其他实施例中,功能单元的复杂性和功能性可以更复杂或更简单,且与本发明一致的层间总线可以用于允许在可以集成到电路设计中的实际上任意类型的逻辑电路之间的数据通信。
现在转到图3,虽然不是必须的,典型地期望在多层半导体堆叠的全部电路层当中,以可重复的规则图形在层间总线中安置导电体。例如,在图示的实施例中,可能期望将导电体布置为规则的二维阵列,例如矩形阵列,此外,可能期望将这种阵列与作为每个半导体管芯的功率分配网络操作的功率分配导电体的阵列集成。
例如,图3图示了在半导体管芯12的表面之上设置的接触焊盘22的矩形阵列。设置在层间接口区域18内的灰色焊盘24被耦合到层间总线的导电体,而黑色焊盘26是耦合到正电压(VDD)或者地的功率分配焊盘。白色焊盘22是虚拟焊盘,且与任意有源电路电气地隔离。但是,虚拟焊盘用作附加的机械连接,可将相邻的半导体管芯固定到所述虚拟焊盘。
在该实施例中,层间总线焊盘24的间距是功率分配焊盘26的三倍,由此在层间接口区域18中的焊盘的任意3×3栅格内,将有九个层间总线焊盘24,但是在功能区域20中的焊盘的任意3×3栅格内,将有一个功率分配焊盘26和八个虚拟焊盘28。
例如,在一个实施例中,层间总线焊盘的间距是50μm,而功率分配焊盘的间距是150μm,其是与例如现有的微C4焊接技术兼容的。例如,在具有在210mm2(18.6mm×11.3mm)面积上分布的接触焊盘的半导体管芯上,可以提供84,072(226×372)个接触焊盘的阵列。以图3所示的方式配置的层间接口区域具有大约18.6mm×0.55mm的尺寸(或等于11行接触焊盘的宽度),其占据小于5%的管芯上可用空间,且将提供4092个独立的信号路径。
将认识到,在某些实施例中,功率分配焊盘还可以被设置在层间接口区域内,且在其他实施例中,可以考虑某些正电压和地导电体作为层间总线体系结构的一部分,且因此由于该原因所述正电压和地导电体存在于层间接口区域内。另外将认识到,正电压和地接触焊盘的分布可在不同实施例中不同,例如,具有比接地焊盘更多或更少的正电压接触焊盘,或具有在整个功能区域中以不规则分布图形分布的功率分配焊盘。
如图4所示(没有按比例示出),在一种实施方式中,多层半导体堆叠10中的半导体管芯12彼此物理地和电气地以堆叠布置耦合。每个管芯12包括衬底40(例如,硅衬底),且每个管芯包括相对的表面或面42、44,且其至少一个包括电路逻辑46,所述电路逻辑集成在表面或面上并限定用于多层堆叠的电路层。其中可以在衬底40的表面上制造集成电路逻辑的各种方式对从本公开中获益的本领域技术人员是公知的,且因此在这里不再更详细地描述。
为将半导体管芯12物理地和电气地耦合在一起,且由此联接用于层间总线的导电体,可以使用各种技术。例如,在一个实施例中,在传统厚度(例如,大约700μm厚)的硅晶片上制造每个半导体管芯。然后将晶片的一侧(与电路逻辑所在的一侧相反)接地并抛光例如到大约50至大约70μm厚。在完全在表面42、44之间延伸的每个管芯中形成(例如,经由离子蚀刻)孔的规则阵列(例如,在该50μm的实现中,采用与接触焊盘的规则阵列相同的间距),且将导电材料淀积在所述孔的壁上。随后孔被填充硅以形成硅过孔(TSV)48。然后在每个管芯12的相对的表面42、44上形成接触焊盘22的形貌对准的规则阵列,其中在相对的表面42、44上形貌对准的接触焊盘22通过在上述焊盘22之间延伸的各个通路48彼此电气地耦合。
将认识到,TSV可完全地延伸通过每个管芯12,或TSV的某些或全部可间断地通过每个管芯的厚度。例如,在某些实施例中,对于与Vdd/Gnd相关联的任意TSV,期望完全地延伸通过管芯的厚度,且对于与携带数据的信号相关联的TSV,数据信号可经由接触焊盘22进入单个电路层的底部,连接到电路层中的电路,且使得该电路的输出路由到相同的形貌位置并耦合到延伸通过管芯的衬底至相对的接触焊盘22的TSV。
在图示的实施例中,不需要在形貌上对准管芯上任意虚拟接触焊盘的每个管芯中形成通路。因此,例如,可需要在每个管芯的层间接口区域18内以层间总线导电体的间距形成通路的规则阵列(在该实施例中,50μm),但是在功能区域20以功率分配导体的间距形成通路的规则阵列(在该实施例中,150μm)。通过这样做,有源电路层的功能区域的否则将由通路占据的面积可用于功能电路。
一旦在半导体管芯12的相对表面上形成接触焊盘,管芯12可以与晶片分离,并使用多种不同类型的芯片焊接技术(例如,压缩焊接或微C4(可控崩塌芯片连接))中的任意一种,以堆叠的布置物理地和电气地彼此耦合,使得形成物理的/电气的互连50的规则阵列,其接合相邻的半导体芯片12的相邻表面42、44上的接触焊盘22。还可以执行附加的制造步骤,例如,安装堆叠10到载体或包装,应用热油脂,附加散热器,封装堆叠等以完成装配。
虽然每个半导体管芯12被示出为在两个表面上包括接触焊盘,在其中一个表面上设置单个电路层,且所有管芯被定向以使得每个管芯有源层面向下,然而将认识到,在其他实施例中可使用可替换的布置。例如,不同的管芯互连技术可以用于相同堆叠内的不同管芯,且可以与堆叠中的其他管芯不同地配置设置在堆叠的顶部或底部的管芯。作为实例,堆叠中的端部(或顶部)管芯可以不包括通路,且可简单地包括直接耦合到管芯单个面上的有源电路的接触焊盘。但是,在许多实施例中,对于端部管芯,期望在与有源电路相对的面上包括通路和接触焊盘,这是因为假定导电通路和接触焊盘通过堆叠的整个厚度在形貌上对准,通路中的导电材料可以以与热管大致相同的方式操作。
作为另一实例,可将有源电路集成到半导体管芯的两个表面上,或者可以通过晶片将两个半导体衬底面对面或者背对背地接合在一起而形成双侧半导体管芯。作为又一实例,堆叠中的可选的管芯可以被翻转以将特定半导体管芯上的有源电路定向为更靠近或更远离相邻的半导体管芯上的有源电路。
还将认识到,可以使用当前巳知的或者可能随后开发出的多个替代的制备、封装和制造技术来制造与本发明一致的多层半导体堆叠。因此本发明不限于在这里描述的特定的技术。
接下来图5图示了可以用来以与本发明一致的方式设计多层半导体堆叠的电路布置的示例性设计处理80。在该实现中,现有的单个电路层设计(在这里也被称为二维设计)被重新设计或改编为适于实现多层半导体堆叠的三维设计。但是,将认识到可以采用其它设计方法,且三维或多层半导体堆叠设计的设计不必基于先前存在的二维设计。因此本发明不限于在这里使用的特定的设计方法。
处理80在块82开始,以现有的二维设计和普通平面布置开始。设计中的电路逻辑典型地被组织成多个功能单元,其中每个功能单元包括功能地与执行通常的计算任务相关的电路逻辑。附加支持电路可能不具有任意特定的高级任务,但是设计的操作需要该附加支持电路,该附加支持电路也可视为被组织成用于处理80的目的的功能单元,且可能需要将无关但是能够被布图在相同的一般区域中作为促进重新设计处理的功能单元的电路逻辑分组在一起。例如,在如下所述的实例中,可能期望将如下的大量电路分组在一起,所述电路不将特定处理核心或加速器单元专用于处理辅助任务(例如外部驱动和接口、联网、测试、调试、时钟和/或功率分配、存储控制等)的一个或多个I/O功能单元。
接下来,在块84,单个电路层中的功能单元,二维设计被再划分为N个电路层。虽然可以使用各种替换的方法,然而典型地期望将相同电路层上功能地相关的功能单元分组在一起。此外,在设计中存在给定功能单元的多个实例的情况中,可期望将所有那些实例定位在相同的电路层上。例如,在包括多个处理核心的设计中,可能期望将那些处理核心分配给相同的层。
接下来,在块86,从物理和逻辑的观点来看,限定了层间互连或总线。具体的,确定每个电路层上的层间接口区域的维度和位置以及该区域内用于总线的通路和导电体的特定位置。类似地,在块88,确定层-层功率分配网络(Vdd/Gnd),由此指定了正电压和接地通路的位置。
接下来,在块90,使用层间总线导电体位置和功率分配网络位置创建物理层-层模板,以设计出用于通路的适当区域并提供可以电耦合到每个电路层上的逻辑电路的接触点。另外,模板可以提供标准化总线接口逻辑以促进功能单元电路到层间总线的互连。
接下来,如块92-96所示,通过在各个层设计中设置分配给那些层的功能单元并将那些功能单元耦合到由背景模板限定的层间总线和功率分配网络,所创建的模板随后可被用作多层设计中每个电路层的背景。如块98所示,一旦设计了每个层,可以为了测试和仿真的目的堆叠N个层,且然后该设计适于制备和制造。
典型地,响应于来自电路设计师的用户输入,通过基于软件的电路设计工具执行电路层设计中功能单元的放置,以及功能单元到层间总线的信号路径的互连。设计处理使得产生一个或多个设计文件,在制造与本发明一致的多层半导体堆叠的制备处理期间,可根据该设计文件测试、仿真、调试和最终使用设计。
图6-11进一步通过实例的方式图示了在图5中所示的处理。在图6中,具体地说,图示了用于多核心联网装置的示例性二维设计100。设计100包括系统总线102,多个功能单元彼此耦合到该系统总线以及耦合到设计中的其他支持和接口逻辑。例如,其中可以使用与可从国际商业机器公司获得的电源处理器体系结构结合使用的PowerBus或PBus总线体系结构来实现系统总线102。
设计100包括多个(例如,16个)节点104,其中每个节点104包括耦合到共享的L2高速缓存108的多个(例如,四个)处理核心106。例如,每个处理核心106可以被实现为电源体系结构的兼容核心。
设计100还包括存储控制器逻辑110,其包括多个(例如,四个)存储控制器块112,每个存储控制器块具有用于耦合到芯片外(off-chip)存储器的协物理存储器接口块114。设计100还包括一组加速器块,用于提供加速设计中所需的各种功能的专用逻辑,例如,图形匹配(块116)、XML处理(块118)、加密(块120)和压缩/解压(块112)。加速器块116-122被分组为四个组,每个组利用相关联的总线接口逻辑(PBIC)块124与系统总线102接口。
三个芯片/芯片接口块126提供芯片-到-芯片通信,且通过相关联的PBIC块128耦合到系统总线102,然而另一PBIC块130将多个附加的联网和接口逻辑块耦合到系统总线102。特别地,PCIExpress块132耦合到芯片上PCI总线134,而分组处理器单元136和主机以太网控制器块138耦合到芯片上总线140。分组交换接口块142和40G比特以太网媒体访问控制块144耦合在总线134和140之间,且多个物理接口块146耦合到总线134以与外部(芯片外)装置通信。10G比特以太网媒体访问控制块148还耦合到总线134并通过物理接口块150与芯片外接口。低管脚计数(LPC)块152还经由PBIC 130与系统总线102接口,且耦合到LPC IO块154。在图6中没有图示的附加支持逻辑当中,附加的电路逻辑(例如,可编程中断控制器(PIC)块156和普适逻辑(pervasive logic)158)也可被包括在电路设计100中。例如,普适逻辑158可包括JTAG、性能监视器、时钟控制器、POR和错误控制逻辑。
为重新设计用于多层半导体堆叠的电路设计100,如上关于图5中的块84所述,设计100中的功能单元被再划分为多个电路层。例如,图7图示了电路设计100中功能单元被划分为四个电路层。在该实例中,标明为I/O层1的第一层用于存储控制器,网络以及接口逻辑,普适逻辑及其他支持逻辑,包括实现芯片外通信所需的任意其他逻辑。十六个处理节点104(包括总共64个处理核心)被分配给两个计算层(标明为计算层2和3),且加速器块116-122被分配给单独的加速器层(标明为加速器层4),产生总共四个单独的电路层。
接下来,如上关于图5的块86所述,限定层-层或层间互连。例如,图8图示了包括四个层162、164、166和168的示例性多层电路设计160,该四个层分别对应于I/O层1、计算层2、计算层3和加速器层4。
在该实现中,以四个分段限定了层间总线170。在该实现中,使用PowerBus体系结构兼容总线,其包括单独的命令和数据总线(在172和174图示)和普适互连(在176图示)。例如,在一个实施例中,PowerBus数据总线可包括提供8×32B宽的数据总线的2560信号路径和提供命令总线(包括46个地址比特、17个Ttag比特、6个Ttype比特、7个Tsize比特、10个snoop比特、40个组合响应比特)的210信号路径。附加的40到80个信号路径可以用于提供普适的信号路径,例如,LBIST信道、ABIST接口、跟踪和性能监视信号路径、通电复位信号路径、错误状态信号路径、中断信号路径、时钟控制路径、本地时钟缓冲器(LCB)信号路径等。但是,将认识到信号路径的分配和到层间总线的互连可在不同实施例中不同,这样本发明不限于在这里描述的特定的分配。
在该实现中,多层设计中功能单元到层的划分用于实现彼此独立操作的多个垂直定向的“超节点”或片(尽管它们在设计的相同层上分布)。具体地说,限定了四个超节点,每个超节点包括四个计算节点(每个计算层164,166中两个计算节点)和加速器层168中的一组专用的加速器块。层间总线170中的各个总线分段专用于每个超节点,且结果,在每个层164、166和168上限定了四个单独的层间接口区域178。但是,超节点共享层162上的I/O资源,以及经由互连总线分段的层内总线彼此通信,且结果,可以共享层162的层间接口区域180,且其另外包括将各个总线分段逻辑地彼此接合的逻辑。层162-168的各个层间接口区域178、180外的区域是功能区域182,在功能区域182内,可以放置通常以184表示的功能单元。
一旦已经限定了层-层互连,如上关于图5所述,创建模板且其被用作用于各个电路层的设计的背景。在图8-11的实现中,使用两个单独的模板,第一模板用于计算和加速器层164-168(因为这些层包括四个分开的总线分段)且第二模板用于I/O层162(因为在该层中有效地接合了四个总线分段)。例如,图9图示了用于图示的计算层164的一个适当的布图,其还可以适于计算层166。在图9以及在图10-11中,将认识到标号2xx的块或功能单元典型地对应于图6的二维电路设计中标号为1xx的块或功能单元,而且在许多实例中,在三维多层半导体堆叠设计中可以简单地再次使用来自二维设计的块或功能单元。
在该布图中,每个超节点包括两个计算节点204,每个计算节点204具有四个处理核心206和共享的L2高速缓存208,且对于用于超节点的相关联的总线分段耦合到层间总线逻辑200。将认识到,通过以如图9所示的方式配置的两个计算层,每个超节点将具有分配给其的总共四个计算节点204。
图10图示了加速器层168的一个适当的实现,包括到层间总线分段200的连接,且每个超节点被分配各自的加速器块,包括图形匹配块216、XML处理块218、加密块220和压缩/解压块222。每个超节点还包括相关联的总线接口逻辑(PBIC)块224以接口各个加速器块和层间总线。
图11图示了I/O层162的一个适当的实现,包括层间总线200的一部分,其另外包括一个或多个层内总线,所述层内总线互连四个层间总线分段,且由此允许每个超节点访问I/O层162上的功能单元以及允许其彼此通信。
如上所述,可以以多个方式实现与本发明一致的层间总线。典型地,层间总线包括与经总线的数据通信相关联的功能信号路径,以及附加支持或普适信号路径,例如,其包括功率分配信号路径、时钟分布信号路径、测试/调试信号路径、中断信号路径、复位信号路径等。功能信号路径可实现多个总线实现方式,包括实现单独的命令、地址和数据信号路径的总线实现方式,或其中经由相同信号路径传递命令、地址和/或数据的总线实现方式。还可以实现各种总线或网络体系结构,例如,点对点、交换、多点连接(multi drop)等,且可以在体系结构中使用控制逻辑以将层间总线划分为多个分段,以使得不要求耦合到总线的全部功能单元共享相同带宽。虽然在这里使用术语“总线”,将认识到层间总线实际上可以包括使得电路设计中的多个逻辑单元能够彼此通信的任意网络体系结构,且层间总线体系结构可以包括实现期望的联网体系结构所需要的各种缓冲器、控制器、交换机、路由器等。此外,在某些实施例中,电路层可以被标明为源、终端和/或内部层,其中在每个这种层中实现不同的总线控制逻辑以为给定的总线体系结构提供适当的总线源和终端逻辑。例如,可能期望使用I/O层162上的一个或多个主总线控制器来管理经由每个总线分段的数据通信。
普适信号路径到层间总线体系结构中的集成在整个多层半导体堆叠上分布电路设计的普适逻辑方面提供了附加的益处,这是因为仅将半导体管芯对准到堆叠中并将它们接合在一起的处理不仅形成了层间总线,而且还在整个多个电路层上分布了包括时钟逻辑和测试/调试逻辑的普适逻辑。此外,在制造期间实现附加的益处,这是因为一旦在管芯上形成接触焊盘,每个半导体管芯的层间接口区域内普适信号路径的标准化位置使得能够单独地测试单个半导体管芯,此外,一旦将半导体管芯接合到堆叠中,外部半导体管芯之一上的相同接触焊盘可用于执行整个接合的堆叠的附加全局测试。
另外,层间总线可以包括层内的部分,例如,互连堆叠中在形貌上彼此偏离的多个总线分段。例如,图12图示了示例性的多层半导体堆叠300,其中包括两个层间总线分段302A和302B的层间总线302另外包括层内总线分段304,以使得耦合到层间总线分段302A的功能单元306A能够与耦合到另一层间总线分段302B的功能单元306B通信。在该实现中,可以在每个分段302A、302B和304之间使用联网逻辑,以定位每个层间分段302A、302B的带宽,并仅使用层内分段304来中继来自层间总线分段302A、302B中的一个、被寻址到层间总线分段302A、302B中的另一个上的功能单元的通信。但是,在其他实施例中,层间总线可以是全局的,其中在给定多层半导体堆叠中全部功能单元共享相同的带宽,或可以实现完全地彼此隔离的多个层间总线。
标准化或通用层间总线体系结构的另一益处在于,给定堆叠内的各个电路层和半导体管芯可以具有不同的维度和/或组成。例如,如图13所示,与本发明一致的多层半导体堆叠310可以包括一个或多个半导体管芯,例如与堆叠中的其他半导体管芯314、316尺寸不同的管芯312。只要当将管芯接合到堆叠中时在形貌上对准用于层间总线的接触焊盘,则各个管芯的物理维度可以彼此独立。
作为另一实例,如图14所示,与本发明一致的多层半导体堆叠320可以包括一个或多个半导体管芯,例如使用与堆叠中的其他半导体管芯324、326不同的半导体制造设计规则来设计和制造的管芯322。具体地说,图示的管芯322使用45nm工艺制造,而图示的管芯324、326使用32nm工艺制造。只要当将管芯接合到堆叠中时在形貌上对准用于层间总线的接触焊盘,则每个单独的管芯上逻辑电路的特征尺寸可以彼此独立。另外,该配置允许可以以更新的、更先进的层再次使用某些遗留层的可能性。例如,在图8的电路设计中,使用较小的特征尺寸制造的计算层的新的高性能版本可以代替遗留的计算层,其中在新的多层半导体堆叠中再次使用来自前一代的加速器和I/O层。
此外,在这里描述的方法中,具有公共功能性的功能单元可以被分配给特定的电路层,在设计再次使用方面,能够得到显著的灵活性。例如,如上关于图8-11所述的基本多层设计160包括单独的I/O、计算和加速器层162、164/166、168,其可用于通过简单地混合和匹配用于不同半导体堆叠中不同功能层的半导体管芯来实现整个系列的产品。公共的I/O层162可以用作全部变型的起点,例如包括:
低功率-I/O层,1计算层
低功率+加速器-I/O层,1计算层,1加速器层
中等功率-I/O层,2计算层
中等功率+加速器-I/O层,2计算层,1加速器层
高功率-I/O层,3计算层
高功率+加速器-I/O层,3计算层,1加速器层
并且,通过提供不同的加速器层,可以从相同的通用计算平台制备各种类型的专用装置。例如,包括适当的加速硬件的加速器层可以用于优化用于特定应用的装置,例如联网、图形处理、加密等。同样地,可以在不同的变型中使用具有不同的功耗特性的不同的替换层,以使得相同平台能够被用于高性能/高功率和低性能/低功率应用两者。另外,在这里描述的技术可以用于提供用于不同变型的高速缓存存储器的不同级别和/或尺寸,以使得例如,需要附加的高速缓存存储器的应用可利用在几个电路层上实现的更大的高速缓存存储器或多级高速缓存。
独立电路层的使用还可以提供利用不同层上的不同类型的电路的能力,例如,所述不同类型的电路包括某些层上的FPGA。另外,独立的电路层可以使得需要不均匀特性的专用电路能够与单个层隔离,例如,考虑芯片外驱动、可变电压、无源或模拟组件、电压调节电路。在某些实施例中,还可以为了测试/调试目的或样机制造而单独地使用专用层,然后一旦特定的设计投入生产,则该层由不同的操作层代替。
如上所述,图8-11中图示的配置的另一有益方面在于,垂直地划片每个电路层并利用每个电路层上相同逻辑的多个实例,以使得单独的实例形成垂直定向的超节点,其在I/O层中彼此接口,且是独立操作的单元。图8-11的配置有效地是四个独立处理器的集合,每个处理器包括16个处理核心、专用的L2高速缓存和专用的一组加速器。
例如,在多个实施例中期望限定多个独立操作的垂直定向的超节点(其是彼此的功能复制),例如,以从与该电路接口的外部电路的观点来看,限定多个以大体上以彼此相同的方式操作的电路(例如,类似于将多个处理器芯片集成到相同的集成电路中)。此外,在某些实施例中,为了便于设计、制备和测试,期望使用功能单元的相同实例实现多个超节点,例如,以使得对于其中为垂直定向的超节点之一限定功能单元的每个电路层,对于多个垂直定向的超节点中的每一个在这种电路层中限定了这种功能单元的相应实例。因此,例如,以计算节点204的八个实例图示了每个计算层164、166,其中将两个这种实例分配给每个垂直定向的超节点,而以加速器块的多个实例图示了加速器层168,包括图形匹配块216、XML处理块218、加密块220和压缩/解压块222,其中将单独的实例分配给每个超节点。将认识到在某些实施例中,从用于实现这种实例的电路逻辑的角度,分配给不同超节点的功能相同的实例也可能相同,而在其他实施例中,例如优化电路设计的物理布图的考虑可能需要使用不相同的下层电路逻辑实现的功能相同的实例。
此外,由于每个超节点内电路的垂直定向,超节点比其在单个电路层上实现的情况在空间上更加紧凑,且更少受到超节点内的功能单元之间的信号传播延迟的影响。例如,假定以7mm×7mm(7000μm×7000μm)的面积实现计算层164,166中的每个节点204。通过层间总线(假定70μm的层厚度)通信的两个节点被并排布置在相同层上,且迫使其与层内通信,信号路径的长度将至少是较长幅度的量级,且因此需要较慢的数据传输速率来考虑将在那些信号路径中存在的附加传播延迟。同样地,对于较大的高速缓存存储器,与比并排安置的情况相比,在隔离层中定向那些高速缓存存储器可以将那些存储器定向为更靠近处理逻辑。
将认识到,在这里描述的电路层设计可被实现为通用门网表,或以其它方式实现为可由本领域技术人员所知的。网表是电路的逻辑功能的布尔-代数表示(门,标准单元),类似于为高级程序应用列出的汇编码。例如,还可以以可合成的形式实现电路层设计,如例如Verilog或VHDL的硬件描述语言中描述的。除网表和可合成实现之外,还可以以较低级的物理描述传达电路层设计。例如SERDES、PLL、DAC、ADC等的模拟元件可以分布在例如GDSII的晶体管布图格式中。有时也以布图格式提供电路层设计的数字元素。还将认识到,与本发明一致地实现的电路层设计以及其它逻辑电路可以以计算机数据文件的形式分布(例如,以逻辑定义程序代码),其在各级别细节定义了实现这种逻辑的电路布置的功能性和/或布图。因此,虽然已经以及在下文中将以完全功能集成电路装置实现的电路布置和这种装置的堆叠布置、利用这种装置的数据处理系统、和其它实体的物理硬件电路的背景描述了本发明,然而从本公开直接受益的本领域技术人员将认识到,还可以在程序产品内实现本发明,且同等地应用本发明而不论用于分布程序产品的计算机可读的或信号承载介质的特定类型如何。计算机可读的或信号承载介质的实例包括,但不限于物理的可记录类型介质,例如易失和非易失存储器件、软盘、硬盘驱动器、CD-ROM和DVD等(以及其他),和例如数字和模拟通信链路的传输类型的介质。
还将认识到,可至少部分地使用计算机化设计和仿真工具执行上述设计处理。例如,图15图示了设备400,在其内可执行设计处理中的各种步骤。在图示的实施例中的设备400被实现为经由网络402耦合到一个或多个客户端计算机404的服务器或多用户计算机。为了本发明的目的,每个计算机400,404实际上可以表示任意类型的计算机,计算机系统或其他可编程电子设备。此外,例如,在簇或其它分布式计算系统中,可以使用一个或多个联网的计算机实现每个计算机400,404。替代地,可以在单个计算机或其他可编程电子设备内实现计算机400,例如,在台式计算机、膝上型计算机、手持计算机、移动电话、机顶盒等内。
计算机400典型地包括中央处理单元406,其包括耦合到存储器408的至少一个微处理器,存储器408可以表示包括计算机400的主存储的随机存取存储器(RAM)器件,以及任意补充级别的存储器,例如,高速缓存存储器、非易失性或备用存储器(例如,可编程或闪存存储器),只读存储器等。另外,可以考虑存储器408包括物理上定位在计算机400中其它位置的存储器,例如,CPU 406中的处理器中的任意高速缓存存储器,以及用作虚拟内存的任意存储容量,例如,如存储在大容量存储器件410上或存储在耦合到计算机400的另一计算机上。计算机400还典型地接收用于外部地传递信息的多个输入和输出。为了与用户或操作者接口,计算机400典型地包括用户界面142,其包括一个或多个用户输入装置(例如,键盘、鼠标、轨迹球、操纵杆、触板、和/或麦克风等以及其他)和显示器(例如,CRT监视器、LCD显示面板和/或扬声器等以及其他)。另外,可以经由另一计算机或终端接收用户输入。
对于辅助存储,计算机400还可以包括一个或多个大量储存器件410,例如,软盘驱动器或其它可拆卸盘驱动器、硬盘驱动器、直接存取存储器件(DASD)、光驱动器(例如,CD驱动器、DVD驱动器等)和/或带驱动器等。此外,计算机400可以包括与一个或多个网络402(例如,LAN、WAN、无线网络和/或因特网等)的接口414,以允许与其他计算机和电子设备的信息通信。应该认识到,如本领域中熟知的,计算机400典型地包括在CPU 406和每个组件408、410、412和414之间适当的模拟和/或数字接口。在本发明的上下文内构想了其他硬件环境。
计算机400在操作系统416的控制下操作,且执行或依靠各种计算机软件应用、组件、程序、对象、模块、数据结构等,如将在下面更详细地描述的。例如,可以通过各种设计和仿真工具418的辅助来执行在这里描述的处理,其可以作为输入接收,并作为输出产生一个或多个电路设计420。另外,如上所述,层模板422可以用于促进包括适于实现通用或标准化层间总线的特征的电路层的设计。此外,还可以在经由网络402耦合到计算机400的另一计算机(例如,在分布或客户端-服务器计算环境)中,在一个或多个处理器上执行各种应用、组件、程序、对象、模块等,由此,实现计算机程序功能所要求的处理可以通过网络被分配给多个计算机。
总的来说,执行以实现本发明的实施例的例程(无论实现为操作系统的一部分或特定应用程序、组件、程序、对象、模块或指令序列,或甚至其子集)在这里将被称为“计算机程序代码”,或简单地称为“程序代码”。程序代码典型地包括在各种时间驻留于计算机中的各种存储器和存储器件中的一个或多个指令,且在由计算机中的一个或多个处理器读取和执行时,其使得计算机执行实现具体表现本发明的各个方面的步骤或元件所需的步骤。此外,虽然已经以完全功能计算机和计算机系统的上下文描述了本发明的各方面,本领域技术人员将认识到本发明的各种实施例能够分布为各种形式的程序产品,且同等地应用本发明而不论用于实际上执行分布的计算机可读介质的特定类型如何。
另外,可以基于应用标识在这里描述的各种程序代码,在应用内,以本发明的特定实施例实现各种程序代码。但是,应该认可下面的任意特定程序名称仅是为了方便起见而是用的,且因此本发明不应该限于单独地用于由这种名称标识和/或暗示的任意专门应用。此外,典型地给定其中计算机程序可以被组织成例程、过程、方法、模块、对象等的无数方式,以及其中可以在位于典型的计算机内的各个软件层(例如,操作系统、库、API、应用、小程序等)当中分配程序功能性的各种方式,应该认可本发明不限于在这里描述的程序功能性特定组织和分配。
可以进行各种修改而不脱离本发明的精神和范围。例如,虽然在这里图示的实施例利用层间总线来使得功能单元能够彼此通信,还可利用层间总线来启用功能单元内通信。
其他修改对本领域技术人员是显而易见的。因此,本发明在于在下文中所附的权利要求。