用于跨多个小芯片配置的统一性的小芯片体系结构分块的制作方法

背景技术:
::2.使用大型硅管芯构建图形处理器和并行处理器提供了各种制造挑战。大型管芯的制造成品率降低,并且不同部件的工艺技术要求可能会产生分歧。附加地,关键部件应通过高速、高带宽、低等待时间接口互连,以维持高处理性能。除了成品率问题之外,与创建定制客户或应用特定设计相关联的设计成本可能会增加解决关键细分市场的制造图形处理器和并行处理器的难度。附图说明3.在所附附图中以示例方式而非限制方式来图示本发明,在附图中,类似的附图标记指示类似的要素,并且其中:4.图1是根据实施例的处理系统的框图;5.图2a-图2d图示由本文中描述的实施例提供的计算系统和图形处理器;6.图3a-图3c图示由本文中描述的实施例提供的附加的图形处理器和计算加速器体系结构的框图;7.图4是根据一些实施例的图形处理器的图形处理引擎的框图;8.图5a-图5c图示根据实施例的包括在图形处理器核心中采用的处理元件阵列的线程执行逻辑;9.图6图示根据实施例的多片处理器的片;10.图7是图示根据一些实施例的图形处理器指令格式的框图;11.图8是根据另一实施例的图形处理器的框图;12.图9a-图9b图示根据一些实施例的图形处理器命令格式和命令序列;13.图10图示根据一些实施例的用于数据处理系统的示例性图形软件体系结构;14.图11a-图11d图示根据实施例的集成电路封装组件;15.图12是图示根据实施例的可以使用一个或多个ip核心来制造的示例性片上系统集成电路的框图;16.图13a-图13b图示根据本文中描述的实施例的可使用一个或多个ip核心制造的示例性图形处理器;17.图14是根据实施例的数据处理系统的框图;18.图15图示出根据实施例的模块化并行计算系统;19.图16图示出使用同构小芯片分片的模块化并行处理器实现方式;20.图17图示根据实施例的、用于同构小芯片的可互换小芯片系统;21.图18a-图18b图示根据实施例的用于可互换小芯片的模块化体系结构;22.图19图示用于在启用小芯片测试、验证和集成中使用的标准化底盘接口的使用;23.图20图示使用单独分拣的小芯片来创建各种小芯片等级;24.图21图示具有多个不同小芯片类型的图形处理器,这些小芯片类型具有统一的小芯片孔径;25.图22图示出在维度上异构的小芯片体系结构,该小芯片体系结构实现后期绑定sku可替代性;26.图23图示出用于异构小芯片的可互换小芯片系统;27.图24图示出用于异构小芯片的附加的可互换小芯片系统;28.图25图示出根据实施例的经由可互换小芯片系统对模块化并行处理器进行配置的方法;29.图26图示出根据实施例的配置有小芯片分块体系结构的模块化并行处理器;30.图27图示出根据实施例的配置有异构小芯片分块体系结构的模块化并行处理器;31.图28图示出根据实施例的对具有异构执行核心计数的小芯片进行分块的方法;32.图29图示出根据实施例的对具有异构功率要求的小芯片进行分块的方法;以及33.图30a-图30b图示出具有针对通用小芯片体系结构配置的小芯片的示例性模块化并行处理器;34.图31a-图31b图示出用于模块化并行处理器的示例性自适应小芯片接口;以及35.图32是根据实施例的包括图形处理器的计算设备的框图。具体实施方式36.本文描述的是一种实现后期绑定sku可替代性的小芯片体系结构,该小芯片体系结构允许在设计过程的后期确定产品的ip,从而实现更具可替代性和灵活性的产品体系结构。芯片体系结构可以采用功能和物理上同构或异构的小芯片的阵列来实现各种处理设计,包括通用处理器(例如,中央处理单元(centralprocessingunit,cpu))、图形处理单元(graphicsprocessingunit,gpu)、并行计算加速器和/或通用图形处理单元(general-purposegraphicsprocessingunit,gpgpu)。37.还描述了一种分块体系结构,其中多个异构或同构的小芯片被分组为物理上连续的小芯片区块。分块体系结构使具有不同执行核心计数的同构小芯片能够被分组为小芯片区块,其中每个小芯片区块具有统一数量的执行核心。分块体系结构还使具有不同功率要求的异构小芯片被分组为具有统一或预定功率递送要求的区块。然后,可以在每个区块而不是每个小芯片的基础上配置功率递送。38.所附附图中所描绘的过程可通过包括硬件(例如,电路、专用逻辑等)、软件(如非暂态机器可读存储介质上的指令)或硬件和软件两者的组合的处理逻辑来执行。将详细参考各种实施例,这些实施例的示例在附图中图示。在下面的详细描述中,阐述了众多具体细节以便提供对本发明的完全理解。然而,将对本领域普通技术人员显而易见的是,没有这些具体细节也可实践本发明。在其他实例中,未详细描述公知的方法、过程、部件、电路和网络,以免不必要地使实施例的各方面变得模糊。系统概述39.图1是根据实施例的处理系统100的框图。处理系统100可在以下各项中被使用:单interface,dmi)总线的某个版本。然而,处理器总线不限于dmi总线,并且可包括一个或多个外围部件互连总线(例如,pci、pci快速)、存储器总线或其他类型的接口总线。在一个实施例中,(一个或多个)处理器102包括存储器控制器116和平台控制器中枢130。存储器控制器116促进存储器设备与处理系统100的其他部件之间的通信,而平台控制器中枢(platformcontrollerhub,pch)130提供经由本地i/o总线至i/o设备的连接。44.存储器设备120可以是动态随机存取存储器(dynamicrandom-accessmemory,dram)设备、静态随机存取存储器(staticrandom-accessmemory,sram)设备、闪存设备、相变存储器设备或具有合适的性能以充当进程存储器的某个其他存储器设备。在一个实施例中,存储器设备120可以作为用于处理系统100的系统存储器来操作,以存储数据122和指令121,用于在一个或多个处理器102执行应用或进程时使用。存储器控制器116也与任选的外部图形处理器118耦合,该任选的外部图形处理器118可与处理器102中的一个或多个图形处理器108通信以执行图形操作和媒体操作。在一些实施例中,可由加速器112辅助图形操作、媒体操作和/或计算操作,该加速器112是可被配置成用于执行专业的图形操作、媒体操作或计算操作的集合的协处理器。例如,在一个实施例中,加速器112是用于优化机器学习或计算操作的矩阵乘法加速器。在一个实施例中,加速器112是光线追踪加速器,该光线追踪加速器可用于与图形处理器108协同地执行光线追踪操作。在一个实施例中,可替代加速器112使用外部加速器119,或可与加速器112协同地使用外部加速器119。45.在一些实施例中,显示设备111可连接到(一个或多个)处理器102。显示设备111可以是以下各项中的一项或多项:内部显示设备,如在移动电子设备或膝上型电脑设备中;或经由显示接口(例如,显示端口等)附接的外部显示设备。在一个实施例中,显示设备111可以是头戴式显示器(headmounteddisplay,hmd),诸如,用于在虚拟现实(vr)应用或增强现实(ar)应用中使用的立体显示设备。46.在一些实施例中,平台控制器中枢130使外围设备能够经由高速i/o总线连接到存储器设备120和处理器102。i/o外围设备包括但不限于音频控制器146、网络控制器134、固件接口128、无线收发器126、触摸传感器125、数据存储设备124(例如,非易失性存储器、易失性存器、硬盘驱动器、闪存、nand、3dnand、3dxpoint等)。数据存储设备124可以经由存储接口(例如,sata)或经由外围总线(诸如,外围部件互连总线(例如,pci、pci快速))连接。触摸传感器125可以包括触摸屏传感器、压力传感器或指纹传感器。无线收发器126可以是wi-fi收发器、蓝牙收发器或移动网络收发器,该移动网络收发器诸如3g、4g、5g或长期演进(long-termevolution,lte)收发器。固件接口128启用与系统固件的通信,并且可以例如是统一可扩展固件接口(unifiedextensiblefirmwareinterface,uefi)。网络控制器134可启用至有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线110耦合。在一个实施例中,音频控制器146是多声道高清音频控制器。在一个实施例中,处理系统100包括用于将传统(例如,个人系统2(personalsystem2,ps/2))设备耦合至系统的任选的传统i/o控制器140。平台控制器中枢130还可以连接到一个或多个通用串行总线(universalserialbus,usb)控制器142,以连接到输入设备,诸如,键盘和鼠标143组合、相机144或其他usb输入设备。47.将会明白,所示的处理系统100是示例性而非限制性的,因为也可以使用以不同方式配置的其他类型的数据处理系统。例如,存储器控制器116和平台控制器中枢130的实例可以集成到分立的外部图形处理器中,该分立的外部图形处理器诸如外部图形处理器118。在一个实施例中,平台控制器中枢130和/或存储器控制器116可以在一个或多个处理器102外部并驻留在与(一个或多个)处理器102通信的系统芯片组中。48.例如,可使用电路板(“橇板(sled)”),部件(诸如,cpu、存储器和其他部件)被放置在该电路板上,在该电路板上部件(诸如,cpu、存储器和其他部件)经设计以实现提升的热性能。在一些示例中,诸如处理器之类的处理部件位于橇板的顶侧上,而诸如dimm之类的附近存储器位于橇板的底侧上。作为由该设计提供的增强的气流的结果,部件能以比在典型系统中更高的频率和功率等级来操作,由此提高性能。此外,橇板被配置成用于盲配机架中的功率和数据通信线缆,由此增强它们被快速地移除、升级、重新安装和/或替换的能力。类似地,位于橇板上的各个部件(诸如,处理器、加速器、存储器和数据存储驱动器)由于它们距彼此的增加的间距而被配置成易于升级。在说明性实施例中,部件附加地包括用于证明它们的真实性的硬件认证特征。49.数据中心可利用支持多个其他网络体系结构的单个网络体系结构(“结构”),多个其他网络体系结构包括以太网和全方位路径。橇板可经由光纤耦合至交换机,这提供比典型的双绞线布线(例如,5类、5e类、6类等)更高的带宽和更低的等待时间。由于高带宽、低等待时间的互连和网络体系结构,数据中心在使用中可集中在物理上分散的诸如存储器、加速器(例如,gpu、图形加速器、fpga、asic、神经网络和/或人工智能加速器等)和数据存储驱动器之类的资源,并且根据需要将它们提供给计算资源(例如,处理器),从而使计算资源能够就好像被集中的资源在本地那样访问这些被集中的资源。50.功率供应或功率源可将电压和/或电流提供给处理系统100或本文中描述的任何部件或系统。在一个示例中,功率供应包括用于插入到墙壁插座中的ac到dc(交流到直流)适配器。此类ac功率可以是可再生能源(例如,太阳能)功率源。在一个示例中,功率源包括dc功率源,诸如,外部ac到dc转换器。在一个示例中,功率源或功率供应包括用于通过接近充电场来充电的无线充电硬件。在一个示例中,功率源可包括内部电池、交流供应、基于动作的功率供应、太阳能功率供应或燃料电池源。51.图2a-图2d图示由本文中描述的实施例提供的计算系统和图形处理器。图2a-图2d的具有与本文中的任何其他附图的元件相同的附图标记(或名称)的元件能以与本文中其他地方描述的方式类似的任何方式进行操作或运行,但不限于此。52.图2a是处理器200的实施例的框图,该处理器200具有一个或多个处理器核心202a-202n、集成存储器控制器214以及集成图形处理器208。处理器200可包括附加的核心,这些附加的核心最多为由虚线框表示的附加核心202n并包括由虚线框表示的附加核心202n。处理器核心202a-202n中的每一个包括一个或多个内部缓存单元204a-204n。在一些实施例中,每个处理器核心也具有对一个或多个共享缓存单元206的访问权。内部缓存单元204a-204n和共享缓存单元206表示处理器200内的缓存存储器层次体系。缓存存储器层次体系可包括每个处理器核心内的至少一个级别的指令和数据缓存以及一个或多个级别的共享的中级缓存,诸如,第二级(l2)、第三级(l3)、第四级(l4)或其他级别的缓存,其中,在外部存储器之前的最高级别的缓存被分类为llc。在一些实施例中,缓存一致性逻辑维持各缓存单元206与204a-204n之间的一致性。53.在一些实施例中,处理器200还可包括一个或多个总线控制器单元的集合216和系统代理核心210。一个或多个总线控制器单元216管理外围总线的集合,诸如,一个或多个pci总线或pci快速总线。系统代理核心210提供对各处理器部件的管理功能。在一些实施例中,系统代理核心210包括用于管理对各种外部存储器设备(未示出)的访问的一个或多个集成存储器控制器214。54.在一些实施例中,处理器核心202a-202n中的一个或多个处理器核心包括针对同步多线程操作的支持。在此类实施例中,系统代理核心210包括用于在多线程处理期间协调并操作核心202a-202n的部件。系统代理核心210可附加地包括功率控制单元(powercontrolunit,pcu),该功率控制单元(pcu)包括用于调节处理器核心202a-202n和图形处理器208的功率状态的逻辑和部件。55.在一些实施例中,处理器200附加地包括用于执行图形处理操作的图形处理器208。在一些实施例中,图形处理器208与共享缓存单元的集合206以及系统代理核心210耦合,该系统代理核心210包括一个或多个集成存储器控制器214。在一些实施例中,系统代理核心210还包括用于将图形处理器输出驱动到一个或多个经耦合的显示器的显示控制器211。在一些实施例中,显示控制器211还可以是经由至少一个互连与图形处理器耦合的单独模块,或者可以集成在图形处理器208内。56.在一些实施例中,基于环的互连212用于耦合处理器200的内部部件。然而,可以使用替代的互连单元,诸如,点到点互连、交换式互连、网格互连或其他技术,包括本领域中公知的技术。在一些实施例中,图形处理器208经由i/o链路213与基于环的互连212耦合。57.示例性i/o链路213表示多个各种各样的i/o互连中的至少一种,包括促进各处理器部件与高性能嵌入式存储器模块218(诸如,edram模块或高带宽存储器(high-bandwidthmemory,hmb)模块)之间的通信的封装上i/o互连。在一些实施例中,处理器核心202a-202n中的每一个以及图形处理器208可将嵌入式存储器模块218用作共享的最后一级缓存。58.在一些实施例中,处理器核心202a-202n是执行相同的指令集体系结构的同构核心。在另一实施例中,处理器核心202a-202n在指令集体系结构(instructionsetarchitecture,isa)方面是异构的,其中,处理器核心202a-202n中的一个或多个执行第一指令集,而其他核心中的至少一个执行第一指令集的子集或不同的指令集。在一个实施例中,处理器核心202a-202n在微体系结构方面是异构的,其中,具有相对较高功耗的一个或多个核心与具有较低功耗的一个或多个功率核心耦合。在一个实施例中,处理器核心202a-202n在计算能力方面是异构的。此外,处理器200可在一个或多个芯片上实现,或者被实现为除其他部件之外还具有所图示的部件的soc集成电路。59.图2b是根据本文中描述的一些实施例的图形处理器核心块219的硬件逻辑的框图。在一些实施例中,图2b的具有与本文中任何其他附图的元件相同的附图标记(或名称)的元件能以与本文中其他地方所描述的方式类似的方式进行操作或运行。图形处理器核心块219是图形处理器的一个分区的示例。图形处理器核心块219可以被包括在图2a的集成图形处理器208或分立的图形处理器、并行处理器和/或计算加速器内。如本文中所描述的图形处理器可包括基于目标功率和性能包络的多个图形核心块。每个图形处理器核心块219可包括与多个图形核心221a-221f耦合的功能块230,多个图形核心221a-221f包括固定功能逻辑和通用可编程逻辑的模块化的块。图形处理器核心块219还包括能够由所有的图形核心221a-221f、栅格化器逻辑237和附加的固定功能逻辑238访问的共享/缓存存储器236。60.在一些实施例中,功能块230包括可以由图形处理器核心块219中的所有图形核心共享的几何/固定功能管线231。在各实施例中,几何/固定功能管线231包括3d几何管线、视频前端单元、线程生成器和全局线程调遣器以及统一返回缓冲器管理器,该统一返回缓冲器管理器管理统一返回缓冲器。在一个实施例中,功能块230还包括图形soc接口232、图形微控制器233和媒体管线234。图形soc接口232提供图形处理器核心块219与图形处理器或计算加速器soc内的其他核心块之间的接口。图形微控制器233是可被配置成用于管理图形处理器核心块219的各种功能的可编程子处理器,这些功能包括线程调遣、调度和抢占。媒体管线234包括用于促进多媒体数据(包括图像和视频数据)的解码、编码、预处理和/或后处理的逻辑。媒体管线234经由对图形核心221a-221f内的计算或采样逻辑的请求来实现媒体操作。一个或多个像素后端235也可被包括在功能块230内。像素后端235包括用于存储像素颜色值的缓冲存储器,并且能够执行对经渲染的像素数据的混合操作和无损颜色压缩。61.在一个实施例中,图形soc接口232使图形处理器核心块219能够与soc内的或经由外围接口与soc耦合的系统主机cpu内的通用应用处理器核心(例如,cpu)和/或其他部件进行通信。图形soc接口232还启用与片外存储器层次体系元件的通信,片外存储器层次体系元件诸如,共享的最后一级缓存存储器、系统ram和/或嵌入式片上或封装上dram。soc接口232还能够启用与soc内的诸如相机成像管线之类的固定功能设备的通信,并且启用全局存储器原子性的使用和/或实现全局存储器原子性,该全局存储器原子性可在图形处理器核心块219与soc内的cpu之间被共享。图形soc接口232还可实现针对图形处理器核心块219的功率管理控制,并且启用图形处理器核心块219的时钟域与soc内的其他时钟域之间的接口。在一个实施例中,图形soc接口232使得能够从命令流转化器和全局线程调遣器接收命令缓冲器,该命令流转化器和全局线程调遣器被配置成用于将命令和指令提供给图形处理器内的一个或多个图形核心中的每一个图形核心。命令和指令在媒体操作要被执行时能够被调遣到媒体管线234,并且在图形处理操作要被执行时能够被调遣到几何和固定功能管线231。当计算操作要被执行时,计算调遣逻辑能够将命令调遣到图形核心221a-221f,从而绕过几何管线和媒体管线。62.图形微控制器233可被配置成用于执行针对图形处理器核心块219的各种调度任务和管理任务。在一个实施例中,图形微控制器233可以执行在图形核心221a-221f内的各向量引擎222a-222f、224a-224f和矩阵引擎223a-223f、225a-225f上调度的图形工作负载和/或计算工作负载。在该调度模型中,在包括图形处理器核心块219的soc的cpu核心上执行的主机软件可将工作负载提交到多个图形处理器门铃(doorbell)中的一个图形处理器门铃,这调用了对适当的图形引擎的调度操作。调度操作包括:确定接下来要运行哪个工作负载,将工作负载提交到命令流转化器,抢占在引擎上运行的现有工作负载,监测工作负载的进度,以及当工作负载完成时通知主机软件。在一个实施例中,图形微控制器233还能够促进图形处理器核心块219的低功率或空闲状态,从而向图形处理器核心块219提供独立于操作系统和/或系统上的图形驱动器软件跨低功率状态转变来保存和恢复图形处理器核心块219内的寄存器的能力。63.图形处理器核心块219可具有多于或少于所图示的图形核心221a-221f,最多n个模块化图形核心。对于每个具有n个图形核心的集合,图形处理器核心块219还可包括:共享/缓存存储器236,其可被配置为共享存储器或缓存存储器;栅格化器逻辑237;以及附加的固定功能逻辑238,用于加速各种图形和计算处理操作。64.在每个图形核心221a-221f内是可用于响应于由图形管线、媒体管线或着色器程序作出的请求而执行图形操作、媒体操作和计算操作的执行资源的集合。图形核心221a-221f包括多个向量引擎222a-222f、224a-224f、矩阵加速单元223a-223f、225a-225d、缓存/共享本地存储器(sharedlocalmemory,slm)、采样器226a-226f以及光线追踪单元227a-227f。65.向量引擎222a-222f、224a-224f是能够执行浮点和整数/定点逻辑操作以服务于图形操作、媒体操作或计算操作(包括图形程序、媒体程序或计算/gpgpu程序)的通用图形处理单元。向量引擎222a-222f、224a-224f能够使用simd执行模式、simt执行模式或simt+simd执行模式、以可变向量宽度进行操作。矩阵加速单元223a-223f、225a-225d包括矩阵-矩阵和矩阵-向量加速逻辑,该矩阵-矩阵和矩阵-向量加速逻辑改善矩阵操作、尤其是用于机器学习的低精度和混合精度(例如,int8、fp16、bf16)矩阵操作的性能。在一个实施例中,矩阵加速单元223a-223f、225a-225d中的每一个包括能够对矩阵元素执行并发的矩阵乘法或点积操作的处理元件的一个或多个脉动阵列。66.采样器226a-226f能够将媒体数据或纹理数据读入存储器,并且能够基于经配置的采样器状态和正被读取的纹理/媒体格式以不同方式对数据采样。在向量引擎222a-222f、224a-224f或矩阵加速单元223a-223f、225a-225d上执行的线程能够利用每个执行核心内的缓存/slm228a-228f。缓存/slm228a-228f能够被配置为在相应的图形核心221a-221f中的每个图形核心的本地的缓存存储器或共享存储器的池。图形核心221a-221f内的光线追踪单元227a-227f包括光线遍历/相交电路,该光线遍历/相交电路用于使用包围体层次体系(bvh)来执行光线遍历并标识封围在bvh体积内的光线与基元之间的相交。在一个实施例中,光线追踪单元227a-227f包括用于(例如,使用深度缓冲器或类似布置)执行深度测试和剔除的电路。在一个实现方式中,光线追踪单元227a-227f与图像降噪协作地执行遍历和相交操作,该图像降噪的至少部分可使用相关联的矩阵加速单元223a-223f、225a-225d来执行。67.图2c图示图形处理单元(gpu)239,该gpu239包括被布置为多核心组240a-240n的专用的图形处理资源集合。图示了多核心组240a的细节。多核心组240b-240n可配备有相同或类似的图形处理资源集合。68.如所图示,多核心组240a可包括图形核心的集合243、张量核心的集合244以及光线追踪核心的集合245。调度器/调遣器241调度和调遣图形线程以用于在各个核心243、244、245上执行。在一个实施例中,张量核心244是具有能够使具有零值输入的乘法操作被绕过的硬件的稀疏张量核心。图2c的gpu239的图形核心243相对于图2b的图形核心221a-221f在层次体系的抽象等级上有所不同,图2b的图形核心221a-221f与图2c的多核心组240a-240n类似。图2c的图形核心243、张量核心244和光线追踪核心245分别与图2b的向量引擎222a-222f、224a-224f、矩阵引擎223a-223f、225a-225f和光线追踪单元227a-227f类似。69.寄存器堆的集合242可以存储在执行图形线程时由核心243、244、245使用的操作对象值。这些寄存器堆可包括例如用于存储整数值的整数寄存器、用于存储浮点值的浮点寄存器、用于存储紧缩(packed)数据元素(整数和/或浮点数据元素)的向量寄存器以及用于存储张量/矩阵值的片寄存器。在一个实施例中,片寄存器被实现为向量寄存器的经组合的集合。70.一个或多个经组合的第一级(l1)缓存和共享存储器单元247在本地将图形数据存储在每个多核心组240a内,图形数据诸如纹理数据、顶点数据、像素数据、光线数据、包围体数据等。一个或多个纹理单元247也可用于执行纹理操作,诸如,纹理映射和采样。由所有多核心组240a-240n或多核心组240a-240n的子集共享的第二级(l2)缓存253存储用于多个并发的图形线程的图形数据和/或指令。如所图示,可跨多个多核心组240a-240n共享l2缓存253。一个或多个存储器控制器248将gpu239耦合至存储器249,该存储器249可以是系统存储器(例如,dram)和/或专用图形存储器(例如,gddr6存储器)。71.输入/输出(input/output,i/o)电路250将gpu239耦合至一个或多个i/o设备252,这一个或多个i/o设备252诸如数字信号处理器(digitalsignalprocessor,dsp)、网络控制器或用户输入设备。片上互连可用于将i/o设备252耦合至gpu239和存储器249。i/o电路250的一个或多个i/o存储器管理单元(i/omemorymanagementunit,iommu)251直接将i/o设备252耦合至存储器249。在一个实施例中,iommu251管理用于将虚拟地址映射到存储器249中的物理地址的多个页表集合。在该实施例中,i/o设备252、(一个或多个)cpu246和gpu239可共享相同的虚拟地址空间。72.在一个实现方式中,iommu251支持虚拟化。在这种情况下,iommu251可以管理用于将宾客/图形虚拟地址映射到宾客/图形物理地址的第一页表集合以及用于将宾客/图形物理地址映射到(例如,存储器249内的)系统/主机物理地址的第二页表集合。第一页表集合和第二页表集合中的每一个的基址可被存储在控制寄存器中,并且在上下文切换时被换出(例如,使得新上下文被提供有对相关页表集合的访问权)。虽然未在图2c中图示,但是核心243、244、245和/或多核心组240a-240n中的每一个可包括转译后备缓冲器(tlb),这些tlb用于对宾客虚拟至宾客物理转译、宾客物理至主机物理转译以及宾客虚拟至主机物理转译进行缓存。73.在一个实施例中,(一个或多个)cpu246、gpu239和i/o设备252被集成在单个半导体芯片和/或芯片封装上。存储器249可集成在同一芯片上,或者可经由片外接口被耦合至存储器控制器248。在一个实现方式中,存储器249包括共享与其他物理系统级存储器相同的虚拟地址空间的gddr6存储器,但是本文中描述的实施例的基本原理不限于该特定的实现方式。74.在一个实施例中,张量核心244包括专门被设计成用于执行矩阵操作的多个功能单元,这些矩阵操作是用于执行深度学习操作的基本计算操作。例如,可将同步矩阵乘法操作用于神经网络训练和推断。张量核心244可使用各种操作对象精度来执行矩阵处理,各种操作对象精度包括单精度浮点(例如,32比特)、半精度浮点(例如,16比特)、整数字(16比特)、字节(8比特)和半字节(4比特)。在一个实施例中,神经网络实现方式提取每个经渲染场景的特征,从而潜在地组合来自多个帧的细节,以构建高质量的最终图像。75.在深度学习实现方式中,可调度并行的矩阵乘法工作以用于在张量核心244上执行。神经网络的训练尤其需要大量矩阵点积操作。为了处理nxnxn矩阵乘法的内积公式化,张量核心244可包括至少n个点积处理元件。在矩阵乘法开始之前,一个完整的矩阵被加载到片寄存器中,并且对于n个循环中的每个循环,第二矩阵的至少一列被加载。对于每个循环,存在被处理的n个点积。76.取决于特定的实现方式,能以不同精度来存储矩阵元素,包括16比特的字、8比特的字节(例如,int8)以及4比特的半字节(例如,int4)。可为张量核心244指定不同的精度模式以确保将最高效的精度用于不同的工作负载(例如,诸如推断工作负载,其可容忍至字节和半字节的量化(quantization))。77.在一个实施例中,光线追踪核心245加速用于实时光线追踪实现方式和非实时光线追踪实现方式两者的光线追踪操作。具体而言,光线追踪核心245包括光线遍历/相交电路,该光线遍历/相交电路用于使用包围体层次体系(boundingvolumehierarchy,bvh)来执行光线遍历并标识封围在bvh体积内的光线与基元之间的相交。光线追踪核心245还可包括用于执行深度测试和剔除(例如,使用z缓冲器或类似布置)的电路。在一个实现方式中,光线追踪核心245与本文中描述的图像降噪技术协同地执行遍历和相交操作,该图像降噪技术的至少部分可在张量核心244上执行。例如,在一个实施例中,张量核心244实现深度学习神经网络以执行对由光线追踪核心245生成的帧的降噪。然而,(一个或多个)cpu246、图形核心243和/或光线追踪核心245还可实现全部的降噪和/或深度学习算法或降噪和/或深度学习算法中的部分。78.此外,如上文所描述,可采用对于降噪的分布式方法,其中,gpu239在通过网络或高速互连而耦合至其他计算设备的计算设备中。在该实施例中,经互连的计算设备共享神经网络学习/训练数据,以改善整个系统学习执行用于不同类型的图像帧和/或不同的图形应用的降噪的速度。79.在一个实施例中,光线追踪核心245处理所有的bvh遍历和光线-基元相交,从而使图形核心243免于被针对每条光线的数千个指令过载。在一个实施例中,每个光线追踪核心245包括用于执行包围盒测试(例如,用于遍历操作)的第一专业电路集合和用于执行光线-三角形相交测试(例如,使已被遍历的光线相交)的第二专业电路集合。因此,在一个实施例中,多核心组240a可简单地启动光线探测,并且光线追踪核心245独立地执行光线遍历和相交,并将命中数据(例如,命中、无命中、多个命中等)返回到线程上下文。当光线追踪核心245执行遍历和相交操作时,其他核心243、244被释放以执行其他图形或计算工作。80.在一个实施例中,每个光线追踪核心245包括用于执行bvh测试操作的遍历单元和执行光线-基元相交测试的相交单元。相交单元生成“命中”、“无命中”或“多个命中”响应,该相交单元将这些响应提供给适当的线程。在遍历和相交操作期间,其他核心(例如,图形核心243和张量核心244)的执行资源被释放以执行其他形式的图形工作。81.在下文描述的一个特定实施例中,使用在其中工作被分布在图形核心243与光线追踪核心245之间的混合式栅格化/光线追踪方法。82.在一个实施例中,光线追踪核心245(和/或其他核心243、244)包括对光线追踪指令集的硬件支持,光线追踪指令集诸如:微软的directx光线追踪(directxraytracing,dxr),其包括dispatchrays命令;以及光线生成着色器、最近命中着色器、任何命中着色器和未命中着色器,它们使得能够为每个对象指派唯一的着色器和纹理集合。可由光线追踪核心245、图形核心243和张量核心244支持的另一光线追踪平台是vulkan1.1.85。然而,要注意,本文中描述的实施例的基本原理不限于任何特定的光线追踪isa。83.一般而言,各个核心245、244、243可支持包括用于以下各项的指令/函数的光线追踪指令集:光线生成、最近命中、任何命中、光线-基元相交、逐基元和层次体系包围盒构建、未命中、拜访和异常。更具体地,一个实施例包括用于执行以下功能的光线追踪指令:84.光线生成——可为每个像素、样本或其他用户定义的工作指派执行光线生成指令。85.最近命中——可执行最近命中指令以对场景内光线与基元的最近交点定位。86.任何命中——任何命中指令标识场景内光线与基元之间的多个相交,从而潜在地标识新的最近交点。87.相交——相交指令执行光线-基元相交测试并输出结果。88.逐基元包围盒构建——该指令围绕给定的基元或基元组建立包围盒(例如,当建立新bvh或其他加速数据结构时)。89.未命中——指示光线未命中场景或场景的指定区域内的所有几何体。90.拜访——指示光线将遍历的子容体。91.异常——包括各种类型的异常处置器(例如,针对各种错误条件被调用)。92.在一个实施例中,光线追踪核心245可适于加速通用计算操作,这些通用计算操作可使用与光线相交测试类似的计算技术来加速。可提供计算框架,该计算框架使着色器程序能够被编译为经由光线追踪核心执行通用计算操作的低级别指令和/或基元。可受益于在光线追踪核心245上执行的计算操作的示例性计算问题包括涉及坐标空间内光束、波、光线或粒子传播的计算。可相对于坐标空间内的几何体或网格计算与那个传播相关联的交互。例如,与通过环境的电磁信号传播相关联的计算可经由使用经由光线追踪核心被执行的指令或基元来加速。信号通过环境中的对象发生的折射和反射可被计算为直接的光线追踪模拟。93.光线追踪核心245还可用于执行不直接与光线追踪类似的计算。例如,可使用光线追踪核心245来加速网格投影、网格细化和体积采样计算。还可执行通用坐标空间计算,诸如,最近邻计算。例如,可通过定义坐标空间中围绕给定点的包围盒来发现该点附近的点的集合。随后可使用光线追踪核心245内的bvh和光线探测逻辑来确定包围盒内点相交的集合。相交构成原点以及那个原点的最近邻。可并行于在图形核心243和张量核心244上执行的计算来执行使用光线追踪核心245执行的计算。着色器编译器可被配置成用于将计算着色器或其他通用图形处理程序编译为能够跨图形核心243、张量核心244和光线追踪核心245被并行化的低级别基元。94.图2d是根据本文中描述的实施例的通用图形处理单元(gpgpu)270的框图,该gpgpu270可被配置为图形处理器和/或计算加速器。gpgpu270可经由一个或多个系统和/或存储器总线与主机处理器(例如,一个或多个cpu246)和存储器271、272互连。在一个实施例中,存储器271是可与一个或多个cpu246进行共享的系统存储器,而存储器272是专用于gpgpu270的设备存储器。在一个实施例中,gpgpu270和存储器272内的部件可被映射到能够由一个或多个cpu246访问的存储器地址中。可经由存储器控制器268来促进对存储器271和272的访问。在一个实施例中,存储器控制器268包括内部直接存储器存取(directmemoryaccess,dma)控制器269,或可包括用于执行否则将由dma控制器执行的操作的逻辑。95.gpgpu270包括多个缓存存储器,这些缓存存储器包括l2缓存253、l1缓存254、指令缓存255以及共享存储器256,该共享存储器256的至少部分也可被分区为缓存存储器。gpgpu270还包括多个计算单元260a-260n,该多个计算单元260a-260n表示与图2b的图形核心221a-221f和图2c的多核心组240a-240n类似的层次体系的抽象等级。每个计算单元260a-260n包括向量寄存器的集合261、标量寄存器的集合262、向量逻辑单元的集合263以及标量逻辑单元的集合264。计算单元260a-260n还可包括本地共享存储器265和程序计数器266。计算单元260a-260n可与常量缓存267耦合,该常量缓存267可用于存储常量数据,该常量数据是在gpgpu270上执行的内核程序或着色器程序的运行期间不会改变的数据。在一个实施例中,常量缓存267是标量数据缓存,并且经缓存的数据可被直接取到标量寄存器262中。96.在操作期间,一个或多个cpu246可将命令写入到gpgpu270中的寄存器中,或写入到gpgpu270中的、已经被映射到可访问地址空间中的存储器中。命令处理器257可从寄存器或存储器读取命令,并且确定如何将在gpgpu270内处理那些命令。随后可使用线程调遣器258来将线程调遣给计算单元260a-260n以执行那些命令。每个计算单元260a-260n可独立于其他计算单元来执行线程。此外,每个计算单元260a-260n可被独立地配置成用于有条件计算,并且可有条件地将计算的结果输出到存储器。当所提交的命令完成时,命令处理器257可中断一个或多个cpu246。97.图3a-图3c图示由本文中描述的实施例提供的附加的图形处理器和计算加速器体系结构的框图。图3a-图3c的具有与本文中的任何其他附图的元件相同的附图标记(或名称)的元件能以与本文中其他地方描述的方式类似的任何方式进行操作或运行,但不限于此。98.图3a是图形处理器300的框图,该图形处理器300可以是分立的图形处理单元,或可以是与多个处理核心或其他半导体器件集成的图形处理器,其他半导体器件诸如但不限于存储器设备或网络接口。在一些实施例中,图形处理器经由至图形处理器上的寄存器的存储器映射的i/o接口并且利用被放置到处理器存储器中的命令进行通信。在一些实施例中,图形处理器300包括用于访问存储器的存储器接口314。存储器接口314可以是至本地存储器、一个或多个内部缓存、一个或多个共享的外部缓存和/或至系统存储器的接口。99.在一些实施例中,图形处理器300还包括用于将显示输出数据驱动到显示设备318的显示控制器302。显示控制器302包括用于显示器的一个或多个叠加平面以及多层的视频或用户界面元素的合成的硬件。显示设备318可以是内部或外部显示设备。在一个实施例中,显示设备318是头戴式显示设备,诸如,虚拟现实(vr)显示设备或增强现实(ar)显示设备。在一些实施例中,图形处理器300包括用于将媒体编码到一种或多种媒体编码格式,从一种或多种媒体编码格式对媒体解码,或在一种或多种媒体编码格式之间对媒体转码的视频编解码器引擎306,这一种或多种媒体编码格式包括但不限于:移动图片专家组(movingpictureexpertsgroup,mpeg)格式(诸如,mpeg-2)、高级视频译码(advancedvideocoding,avc)格式(诸如,h.264/mpeg-4avc、h.265/hevc、开放媒体联盟(allianceforopenmedia,aomedia)vp8、vp9)、以及电影和电视工程师协会(thesocietyofmotionpicture&televisionengineers,smpte)421m/vc-1、和联合图像专家组(jointphotographicexpertsgroup,jpeg)格式(诸如,jpeg、以及运动jpeg(motionjpeg,mjpeg)格式)。100.在一些实施例中,图形处理器300包括块图像传输(blockimagetransfer,blit)引擎304,用于执行二维(2d)栅格化器操作,包括例如,比特边界块传输。然而,在一个实施例中,使用图形处理引擎(graphicsprocessingengine,gpe)310的一个或多个部件执行2d图形操作。在一些实施例中,gpe310是用于执行图形操作的计算引擎,这些图形操作包括三维(3d)图形操作和媒体操作。101.在一些实施例中,gpe310包括用于执行3d操作的3d管线312,该3d操作诸如,使用作用于3d基元形状(例如,矩形、三角形等)的处理函数来渲染三维图像和场景。3d管线312包括可编程和固定功能元件,这些可编程和固定功能元件执行元件内的各种任务和/或生成到3d/媒体子系统315的执行线程。虽然3d管线312可用于执行媒体操作,但是gpe310的实施例还包括媒体管线316,该媒体管线316专门用于执行媒体操作,诸如,视频后处理和图像增强。102.在一些实施例中,媒体管线316包括固定功能或可编程逻辑单元,用于代替、或代表视频编解码器引擎306来执行一个或多个专业的媒体操作,诸如,视频解码加速、视频去隔行以及视频编码加速。在一些实施例中,媒体管线316附加地包括线程生成单元,用于生成线程以供在3d/媒体子系统315上执行。所生成的线程在3d/媒体子系统315中所包括的一个或多个图形核心上执行用于媒体操作的计算。103.在一些实施例中,3d/媒体子系统315包括用于执行由3d管线312和媒体管线316生成的线程的逻辑。在一些实施例中,管线将线程执行请求发送到3d/媒体子系统315,该3d/媒体子系统315包括用于对于对可用的线程执行资源的各种请求进行仲裁和调遣的线程调遣逻辑。执行资源包括用于处理3d线程和媒体线程的图形核心的阵列。在一些实施例中,3d/媒体子系统315包括用于线程指令和数据的一个或多个内部缓存。在一些实施例中,子系统还包括用于在线程之间共享数据并用于存储输出数据的共享存储器,其包括寄存器和可寻址存储器。104.图3b图示根据本文中描述的实施例的图形处理器320,该图形处理器320具有分片体系结构。在一个实施例中,图形处理器320包括图形处理引擎集群322,该图形处理引擎集群322在图形引擎片310a-310d内具有图3a的图形处理器引擎310的多个实例。每个图形引擎片310a-310d可经由片互连的集合323a-323f被互连。每个图形引擎片310a-310d还可经由存储器互连325a-325d被连接到存储器模块或存储器设备326a-326d。存储器设备326a-326d可使用任何图形存储器技术。例如,存储器设备326a-326d可以是图形双倍数据速率(gddr)存储器。在一个实施例中,存储器设备326a-326d是hbm模块,这些hbm模块可与其相应的图形引擎片310a-310d一起在管芯上。在一个实施例中,存储器设备326a-326d是可被堆叠在其相应的图形引擎片310a-310d的顶部上的堆叠式存储器设备。在一个实施例中,每个图形引擎片310a-310d和相关联的存储器326a-326d驻留在分开的小芯片上,这些分开的小芯片被接合到基础管芯或基础衬底,如在图11b-图11d中进一步详细地所描述。105.图形处理器320可配置有非统一存储器存取(non-uniformmemoryaccess,numa)系统,在该numa系统中,存储器设备326a-326d与相关联的图形引擎片310a-310d耦合。给定的存储器设备可由与该存储器设备直接连接到的图形引擎片不同的图形引擎片访问。然而,当存取本地片时,对存储器设备326a-326d的存取等待时间可以最低。在一个实施例中,启用缓存一致的numa(cachecoherentnuma,ccnuma)系统,该ccnuma系统使用片互连340d中的一个由网络处理器逻辑替代,并且要经由物理层互连344传送或接收的数据可直接向存储器326a-326d或从存储器326a-326d传送。计算加速器330的多个实例可经由物理层互连344被结合到单个逻辑设备中。替代地,各计算引擎片340a-340d可被呈现为不同的网络可访问计算加速器设备。图形处理引擎111.图4是根据一些实施例的图形处理器的图形处理引擎410的框图。在一个实施例中,图形处理引擎(gpe)410是图3a中示出的gpe310的某个版本,并且还可表示图3b的图形引擎片310a-310d。图4的具有与本文中的任何其他附图的元件相同的附图标记(或名称)的元件能以与本文中其他地方描述的方式类似的任何方式进行操作或运行,但不限于此。例如,图3a的3d管线312和媒体管线316被图示。媒体管线316在gpe410的一些实施例中是任选的,并且可以不显式地被包括在gpe410内。例如并且在至少一个实施例中,单独的媒体和/或图像处理器被耦合至gpe410。112.在一些实施例中,gpe410与命令流转化器403耦合或包括命令流转化器403,该命令流转化器403将命令流提供给3d管线312和/或媒体管线316。替代地或附加地,命令流转化器403可直接耦合至统一返回缓冲器418。统一返回缓冲器418可通信地耦合至图形核心集群414。在一些实施例中,命令流转化器403与存储器耦合,该存储器可以是系统存储器、或内部缓存存储器和共享缓存存储器中的一个或多个。在一些实施例中,命令流转化器403从存储器接收命令,并且将这些命令发送至3d管线312和/或媒体管线316。这些命令是从环形缓冲器取得的指示,该环形缓冲器存储用于3d管线312和媒体管线316的命令。在一个实施例中,环形缓冲器可附加地包括存储批量的多个命令的批量命令缓冲器。用于3d管线312的命令还可包括对存储在存储器中的数据的引用,这些数据诸如但不限于用于3d管线312的顶点数据和几何数据和/或用于媒体管线316的图像数据和存储器对象。3d管线312和媒体管线316通过经由相应的管线内的逻辑执行操作或者通过将一个或多个执行线程调遣至图形核心集群414来处理命令和数据。在一个实施例中,图形核心集群414包括一个或多个图形核心块(例如,图形核心块415a、图形核心块415b),每个块包括一个或多个图形核心。每个图形核心包括图形执行资源的集合,该图形执行资源的集合包括:用于执行图形操作和计算操作的通用和图形专用执行逻辑;以及固定功能纹理处理逻辑和/或机器学习和人工智能加速逻辑,诸如矩阵或ai加速逻辑。113.在各实施例中,3d管线312可包括用于通过处理指令并将执行线程调遣给图形核心集群414来处理一个或多个着色器程序的固定功能和可编程逻辑,该一个或多个着色器程序诸如,顶点着色器、几何着色器、像素着色器、片段着色器、计算着色器或其他着色器和/或gpgpu程序。图形核心集群414提供统一执行资源块,以供在处理这些着色器程序时使用。图形核心集群414的图形核心块415a-415b内的多功能执行逻辑包括对各种3dapi着色器语言的支持,并且可执行与多个着色器相关联的多个同步执行线程。114.在一些实施例中,图形核心集群414包括用于执行诸如视频和/或图像处理之类的媒体功能的执行逻辑。在一个实施例中,除了图形处理操作之外,图形核心还包括可编程以执行并行的通用计算操作的通用逻辑。通用逻辑可并行地或结合图1的(一个或多个)处理器核心107或如图2a中的核心202a-202n内的通用逻辑来执行处理操作。115.由在图形核心集群414上执行的线程生成的输出数据可以将数据输出到统一返回缓冲器(unifiedreturnbuffer,urb)418中的存储器。urb418可存储用于多个线程的数据。在一些实施例中,urb418可用于在图形核心集群414上执行的不同线程之间发送数据。在一些实施例中,urb418可附加地用于在图形核心阵列上的线程与共享功能逻辑420内的固定功能逻辑之间的同步。116.在一些实施例中,图形核心集群414是可缩放的,使得集群包括可变数量的图形核心,每个图形核心都具有基于gpe410的目标功率和性能等级的可变数量的图形核心。在一个实施例中,执行资源是动态地可缩放的,使得执行资源可根据需要被启用或禁用。117.图形核心集群414与共享功能逻辑420耦合,该共享功能逻辑420包括在图形核心阵列中的图形核心之间被共享的多个资源。共享功能逻辑420内的共享功能是将专业的补充功能提供给图形核心集群414的硬件逻辑单元。在各实施例中,共享功能逻辑420可包括但不限于采样器421逻辑、数学422逻辑和线程间通信(inter-threadcommunication,itc)423逻辑。此外,一些实施例实现共享功能逻辑420内的一个或多个缓存425。共享功能逻辑420可以实现与图2b的附加固定功能逻辑238相同或类似的功能。118.至少在其中对于给定的专业功能的需求不足以包括在图形核心集群414内的情况下实现共享功能。相反,那个专业功能的单个实例化被实现为共享功能逻辑420中的独立实体,并且在图形核心集群414内的执行资源之间被共享。在图形核心集群414之间被共享并被包括在图形核心集群414内的确切的功能集因实施例而异。在一些实施例中,共享功能逻辑420内的由图形核心集群414广泛使用的特定共享功能可被包括在图形核心集群414内的共享功能逻辑416内。在各个实施例中,图形核心集群414内的共享功能逻辑416可包括共享功能逻辑420内的一些或所有逻辑。在一个实施例中,共享功能逻辑420内的所有逻辑元件可以在图形核心集群414的共享功能逻辑416内被复制。在一个实施例中,共享功能逻辑420被排除以有利于图形核心集群414内的共享功能逻辑416。图形处理资源119.图5a-图5c图示根据本文中描述的实施例的包括在图形处理器中采用的处理元件阵列的执行逻辑。图5a图示根据实施例的图形核心集群。图5b图示根据实施例的图形核心的向量引擎。图5c图示根据实施例的图形核心的矩阵引擎。图5a-图5c的具有与本文中任何其他附图的元件相同的附图标记的元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或运行,但不限于此。例如,图5a-图5c的元件能以图2b的图形处理器核心块219和/或图4的图形核心块415a-415b的上下文来考虑。在一个实施例中,图5a-图5c的元件具有与图2a的图形处理器208、图2c的gpu239或图2d的gpgpu270的等效部件类似的功能。120.如图5a中所示,在一个实施例中,图形核心集群414包括图形核心块415,该图形核心块415可以是图4的图形核心块415a或图形核心块415b。图形核心块415可包括任何数量的图形核心(例如,图形核心515a、图形核心515b,一直到图形核心515n)可以包括图形核心块415的多个实例。在一个实施例中,图形核心515a-515n的元件具有与图2b的图形核心221a-221f的元件类似或等效的功能。在此类实施例中,图形核心515a-515n各自包括电路,包括但不限于:向量引擎502a-502n、矩阵引擎503a-503n、存储器加载/存储单元504a-504n、指令缓存505a-505n、数据缓存/共享本地存储器506a-506n、光线追踪单元508a-508n、采样器510a-510n。图形核心515a-515n的电路可以附加地包括固定功能逻辑512a-512n。设计的图形核心515a-515n内的向量引擎502a-502n和矩阵引擎503a-503n的数量可以基于针对该设计的工作负载、性能和功率目标而变化。121.参考图形核心515a,向量引擎502a和矩阵引擎503a可配置用于基于与着色器程序相关联的指令对以各种整数和浮点数据格式的数据执行并行的计算操作。每个向量引擎502a和矩阵引擎503a可以充当能够执行多个同步硬件线程同时针对每个线程并行地处理多个数据元素的可编程通用计算单元。向量引擎502a和矩阵引擎503a支持处理处于各种simd宽度的可变宽度向量,包括但不限于simd8、simd16和simd32。输入数据元素可以作为紧缩数据类型存储在寄存器中,并且向量引擎502a和矩阵引擎503a可基于元素的数据大小来处理各元素。例如,当对256比特宽的向量进行操作时,向量的256比特被存储在寄存器中,并且向量被处理为四个单独的64比特紧缩数据元素(四字(quad-word,qw)大小数据元素)、八个单独的32比特紧缩数据元素(双字(doubleword,dw)大小数据元素)、十六个单独的16比特紧缩数据元素(字(word,w)大小数据元素)、或三十二个单独的8比特数据元素(字节(byte,b)大小数据元素)。然而,不同的向量宽度和寄存器大小是可能的。在一个实施例中,向量引擎502a和矩阵引擎503a还可配置用于对各大小的单元组和线程组(例如,8个、16个或32个线程)进行simt操作。122.继续图形核心515a,存储器加载/存储单元504a服务于存储器访问请求,该存储器访问请求由向量引擎502a、矩阵引擎503a和/或图形核心515a的具有对存储器的访问权的其他部件来发出。存储器访问请求可以由存储器加载/存储单元504a处理,以将所请求的数据加载或存储到缓存或存储器、或从缓存或存储器加载或存储到与向量引擎502a和/或矩阵引擎503a相关联的寄存器堆中。存储器加载/存储单元504a还可执行预取操作。在一个实施例中,存储器加载/存储单元504a被配置用于针对被存储在存储器610中、来自经由片互连608而对于其他片而言是本地的存储器、或者来自系统存储器的数据提供simt分散/聚集预取或块预取。可以对特定l1缓存(例如,数据缓存/共享本地存储器506a)、l2缓存604或l3缓存606执行预取。在一个实施例中,对l3缓存606的预取自动地导致数据被存储在l2缓存604中。123.指令缓存505a存储要由图形核心515a执行的指令。在一个实施例中,图形核心515a还包括将指令取到或预取到指令缓存505a中的指令取得和预取电路。图形核心515a还包括指令解码逻辑,以用于对指令缓存505a内的指令进行解码。数据缓存/共享本地存储器506a可以被配置为由实现缓存替代策略的缓存控制器管理的数据缓存并且/或者被配置为被显式地管理的共享存储器。光线追踪单元508a包括用于加速光线追踪操作的电路。采样器510a为3d操作提供纹理采样,并为媒体操作提供媒体采样。固定功能逻辑512a包括固定功能电路,该固定功能电路在向量引擎502a和矩阵引擎503a的各实例之间共享。图形核心515b-515n能以与图形核心515a类似的方式进行操作。124.指令缓存505a-505n、数据缓存/共享本地存储器506a-506n、光线追踪单元508a-508n、采样器510a-510n和固定功能逻辑512a-512n的功能与本文中描述的图形处理器体系结构中的等效功能相对应。例如,指令缓存505a-505n能以与图2d的指令缓存255类似的方式进行操作。数据缓存/共享本地存储器506a-506n、光线追踪单元508a-508n和采样器510a-510n能以与图2b的缓存/slm228a-228f、光线追踪单元227a-227f和采样器226a-226f类似的方式进行操作。固定功能逻辑512a-512n可以包括图2b的几何/固定功能管线231和/或附加的固定功能逻辑238的元件。在一个实施例中,光线追踪单元508a-508n包括用于执行由图2c的光线追踪核心245所执行的光线追踪加速操作的电路。125.如图5b中所示,在一个实施例中,向量引擎502包括指令取得单元537、通用寄存器堆阵列(generalregisterfile,grf)524、体系结构寄存器堆阵列(architecturalregisterfile,arf)526、线程仲裁器522、发送单元530、分支单元532、simd浮点单元(floatingpointunit,fpu)的集合534、以及在一个实施例中的整数simdalu的集合535。grf524和arf526包括与可在向量引擎502中活跃的每个硬件线程相关联的通用寄存器堆和体系结构寄存器堆的集合。在一个实施例中,每线程体系结构状态被维持在arf526中,而在线程执行期间使用的数据被存储在grf524中。每个线程的执行状态,包括用于每个线程的指令指针,可以被保存在arf526中的线程特定寄存器中。126.在一个实施例中,向量引擎502具有作为同步多线程(simultaneousmulti-threading,smt)与细粒度交织多线程(interleavedmulti-threading,imt)的组合的体系结构。该体系结构具有模块化配置,该模块化配置可以基于同步线程的目标数量和每个图形核心的寄存器的数量而在设计时进行微调,其中跨用于执行多个同步线程的逻辑来划分图形核心资源。可由向量引擎502执行的逻辑线程的数量不限于硬件线程的数量,并且可将多个逻辑线程指派给每个硬件线程。127.在一个实施例中,向量引擎502可协同发出多个指令,这些指令可以各自是不同的指令。线程仲裁器522可以将指令调遣到发送单元530、分支单元532或(一个或多个)simdfpu534中的一个以供执行。每个执行线程可访问grf524内的128个通用寄存器,其中,每个寄存器可存储可作为具有32字节数据元素的可变宽度向量访问的32个字节。在一个实施例中,每个线程具有对grf524内的4个千字节的访问权,但是实施例并不限于此,并且在其他实施例中可以提供更多或更少的寄存器资源。在一个实施例中,向量引擎502被分区为可独立地执行计算操作的七个硬件线程,但是每个向量引擎502的线程数量也可根据实施例而有所不同。例如,在一个实施例中,支持最多16个硬件线程。在其中七个线程可以访问4个千字节的实施例中,grf524可以存储总共28个千字节。在16个线程可访问4个千字节的情况下,grf524可存储总共64个千字节。灵活的寻址模式可准许对寄存器一起进行寻址,从而有效地建立更宽的寄存器或者表示跨步式矩形块数据结构。128.在一个实施例中,经由由消息传递发送单元530执行的“发送”指令来调遣存储器操作、采样器操作以及其他较长等待时间的系统通信。在一个实施例中,分支指令被调遣给专用分支单元532,以促进simd分散和最终的汇聚。129.在一个实施例中,向量引擎502包括用于执行浮点操作的一个或多个simd浮点单元((一个或多个)fpu)534。在一个实施例中,(一个或多个)fpu534还支持整数计算。在一个实施例中,(一个或多个)fpu534可以执行最多m个32比特浮点(或整数)操作,或者执行最多2m个16比特整数或16比特浮点操作。在一个实施例中,(一个或多个)fpu中的至少一个提供支持高吞吐量超越数学函数和双精度64比特浮点的扩展数学能力。在一些实施例中,8比特整数simdalu的集合535也存在,并且可专门优化成执行与机器学习计算相关联的操作。在一个实施例中,simdalu由可配置用于执行整数和浮点操作的附加的simdalu的集合534来替代。在一个实施例中,simdfpu534和simdalu535可配置用于执行simt程序。在一个实施例中,支持组合的simd+simt操作。130.在一个实施例中,向量引擎502的多个实例的阵列可在图形核心中被实例化。为了可缩放性,产品架构师可以选择每图形核心分组的向量引擎的确切数量。在一个实施例中,向量引擎502可以跨多个执行通道来执行指令。在进一步的实施例中,在不同通道上执行在向量引擎502上执行的每个线程。131.如图5c中所示,在一个实施例中,矩阵引擎503包括被配置用于执行张量操作的处理元件的阵列,该张量操作包括向量/矩阵操作和矩阵/矩阵操作,诸如但不限于矩阵乘法和/或点积操作。可以利用m行和n列的处理元件(pe552aa-pe552mn)来配置矩阵引擎503,该处理元件(552aa-pe552mn)包括以管线化方式组织的乘法器和加法器电路。在一个实施例中,处理元件552aa-pe-552mn组成n宽和m深的脉动阵列的物理管线阶段,该脉动阵列可用于以数据并行的方式执行向量/矩阵操作或矩阵/矩阵操作,包括矩阵乘法、融合乘加、点积或其他通用矩阵-矩阵乘法(gemm)操作。在一个实施例中,矩阵引擎503支持16比特的浮点操作,以及8比特、4比特、2比特和二进制整数操作。矩阵引擎503还可以被配置用于加速特定机器学习操作。在此类实施例中,矩阵引擎503可配置有对于相对于电气和电子工程师学会(instituteofelectricalandelectronicsengineers,ieee)754格式具有不同数量的尾数比特和指数比特的bfloat(brain浮点)16比特浮点格式、或张量浮点32比特浮点格式(tf32)的支持。132.在一个实施例中,在每个周期期间,每个阶段可以将在该阶段执行的操作的结果添加至前一阶段的输出。在其他实施例中,在计算周期的集合之后,处理元件552aa-552mn之间的数据移动的模式可以基于被执行的指令或宏操作而变化。例如,在一个实施例中,部分和回路(partialsumloopback)被启用,并且处理元件可以替代地将当前周期的输出与前一周期中生成的输出相加。在一个实施例中,脉动阵列的最终阶段可被配置有到脉动阵列的初始阶段的回路。在此类实施例中,物理管线阶段的数量可以与由矩阵引擎503所支持的逻辑管线阶段的数量解耦。例如,在处理元件552aa-552mn被配置为m个物理阶段的脉动阵列的情况下,从阶段m至初始管线阶段的回路可以使得处理元件552aa-pe552mn能够作为例如2m、3m、4m等的逻辑管线阶段的脉动阵列来进行操作。133.在一个实施例中,矩阵引擎503包括存储器541a-541n、542a-542m,用于以针对输入矩阵的行和列数据的形式存储输入数据。存储器542a-542m可配置用于存储第一输入矩阵的行元素(a0-am),并且存储器541a-541n可配置用于存储第二输入矩阵的列元素(b0-bn)。行元素和列元素被提供为到处理元件552aa-552mn的输入以供处理。在一个实施例中,输入矩阵的元素行和列元素可以在这些元素被提供给存储器541a-541n、542a-542m之前存储在矩阵引擎503内的脉动寄存器堆540中。在一个实施例中,排除脉动寄存器堆540,并且从相关联的向量引擎中的寄存器(例如,图5b的向量引擎502的grf524)或包括矩阵引擎503的图形核心的其他存储器(例如,图5a的用于矩阵引擎503a的数据缓存/共享本地存储器506a)加载存储器541a-541n、542a-542m。由处理元件552aa-552mn生成的结果随后被输出到输出缓冲器和/或被写入到寄存器堆(例如,脉动寄存器堆540、grf524、数据缓存/共享本地存储器506a-506n),以供图形处理器的其他功能单元进一步处理或供输出到存储器。134.在一些实施例中,矩阵引擎503被配置有对输入稀疏度的支持,其中,输入数据的稀疏区域的乘法操作可通过跳过具有零值的操作对象的乘法操作而被绕过。在一个实施例中,处理元件552aa-552mn被配置用于跳过具有零值输入的某些操作的执行。在一个实施例中,输入矩阵内的稀疏度可以被检测,并且具有已知零输出值的操作在被提交给处理元件552aa-552mn之前可以被绕过。将零值操作对象加载到处理元件中可以被绕过,并且处理元件552aa-552mn可被配置用于对非零值输入元素执行乘法。矩阵引擎503还可被配置有对输出稀疏度的支持,使得具有被预定为零的结果的操作可被绕过。对于输入稀疏度和/或输出稀疏度,在一个实施例中,将元数据提供给处理元件552aa-552mn,以指示对于某一处理周期,哪些处理元件和/或数据通道在该周期期间将是活跃的。135.在一个实施例中,矩阵引擎503包括用于启用对具有稀疏矩阵的压缩表示的稀疏数据的操作的硬件,该稀疏矩阵存储非零值和标识该非零值在矩阵内的位置的元数据。示例性压缩表示包括但不限于压缩张量表示,诸如,压缩稀疏行(csr)表示、压缩稀疏列(csc)表示、压缩稀疏纤维(compressedsparsefiber,csf)表示。对压缩表示的支持使得操作能够对按压缩张量格式的输入执行而无需压缩表示被解压缩或解码。在此类实施例中,可仅对非零输入值执行操作,并且所得到的非零输出值可被映射到输出矩阵中。在一些实施例中,还提供对机器特定无损数据压缩格式的硬件支持,这些机器特定无损数据压缩格式当在硬件内传送数据或跨系统总线传送数据时被使用。此类数据可按用于稀疏输入数据的压缩格式被保留,并且矩阵引擎503可使用用于经压缩数据的压缩元数据,以使得操作能够仅对非零值执行或使得对于乘法操作能够绕过零数据输入的块。136.在各种实施例中,可以由编程器以压缩张量表示来提供输入数据,或者编解码器可以将输入数据压缩为压缩张量表示或另一稀疏数据编码。此外,为了支持压缩张量表示,可在输入数据被提供到处理元件552aa-552mn之前执行稀疏输入数据的流式压缩。在一个实施例中,对被写入到与图形核心集群414相关联的缓存存储器的数据执行压缩,其中利用由矩阵引擎503所支持的编码来执行该压缩。在一个实施例中,矩阵引擎503包括对具有结构化稀疏度的输入的支持,在该结构化稀疏度中,预定级别或预定模式的稀疏度被施加在输入数据上。该数据可被压缩到已知的压缩率,其中,经压缩的数据由压缩元件552aa-552mn根据与经压缩的数据相关联的元数据来处理。137.图6图示根据实施例的多片处理器的片600。在一个实施例中,片600表示图3b的图形引擎片310a-310d或图3c的计算引擎片340a-340d中的一个。多片图形处理器的片600包括图形核心集群的阵列(例如,图形核心集群414a、图形核心集群414b,一直到图形核心集群414n),其中,每个图形核心集群具有图形核心的阵列515a-515n。片600还包括全局调遣器602,用于将线程调遣到片600的处理资源。138.片600可以包括l3缓存606和存储器610或与l3缓存606和存储器610耦合。在各实施例中,可以排除l3缓存606,或者片600可以包括附加级别的缓存,诸如l4缓存。在一个实施例中,诸如图3b和图3c中,多片图形处理器中的片600的每个实例具有相关联的存储器610。在一个实施例中,多片处理器可以被配置为多芯片模块,在该多芯片模块中,l3缓存606和/或存储器610驻留在与图形核心集群414a-414n不同的单独的小芯片上。在该上下文中,小芯片是至少部分地被封装的集成电路,该至少部分地被封装的集成电路包括能够与其他小芯片一起被组装到更大的封装中的不同的逻辑单元。例如,l3缓存606可被包括在专用缓存小芯片中,或驻留在与图形核心集群414a-414n相同的小芯片上。在一个实施例中,l3缓存606可被包括在如图11c所图示的活跃的基础管芯或活跃的中介层(interpose)中。139.存储器结构603启用图形核心集群414a-414n、l3缓存606和存储器610之间的通信。l2缓存604与存储器结构603耦合,并且可配置用于缓存经由存储器结构603执行的事务。片互连608启用与图形处理器上的其他片的通信,并且可以是图3b和图3c的片互连323a-323f中的一个。在从片600排除l3缓存606的实施例中,l2缓存604可以被配置为组合的l2/l3缓存。存储器结构603可配置用于基于l3缓存606存在于或不存在于特定实现方式中,而将数据路由到l3缓存606或路由到与存储器610相关联的存储器控制器。l3缓存606可被配置为逐片(per-tile)缓存,该逐片缓存专用于片600的处理资源或者可以是gpu宽的l3缓存的部分。140.图7是根据一些实施例的图示图形处理器指令格式700的框图。在一个或多个实施例中,图形处理器核心支持具有按照多种格式的指令的指令集。实线框图示通常被包括在图形核心指令中的组成部分,而虚线包括任选的或仅被包括在指令的子集中的组成部分。在一些实施例中,所描述和图示的图形处理器指令格式700是宏指令,因为它们是供应至图形核心的指令,这与产生自一旦指令被处理就进行的指令解码的微操作相反。因此,单个指令可使硬件执行多个微操作。141.在一些实施例中,图形处理器原生地支持128比特指令格式710的指令。基于所选择的指令、指令选项和操作对象数量,64比特紧凑指令格式730可用于一些指令。原生的128比特指令格式710提供对所有指令选项的访问,而一些选项和操作在64比特格式730中受限。64比特格式730中可用的原生指令因实施例而异。在一些实施例中,使用索引字段713中的索引值的集合将指令部分地压缩。图形核心硬件基于索引值来引用压缩表的集合,并使用压缩表输出来重构128比特指令格式710的原生指令。可以使用其他大小和格式的指令。142.针对每种格式,指令操作码712限定图形核心要执行的操作。图形核心跨每个操作对象的多个数据元素并行地执行每个指令。例如,响应于加法指令,图形核心跨表示纹理元素或图片元素的每个颜色通道执行同步加法操作。默认地,图形核心跨操作对象的所有数据通道执行每个指令。在一些实施例中,指令控制字段714启用对某些执行选项(诸如,通道选择(例如,谓词(predication))和数据通道顺序(例如,拌和(swizzle)))的控制。针对128比特指令格式710的指令,执行大小字段716限制将被并行地执行的数据通道的数量。在一些实施例中,执行大小字段716不可用于64比特紧凑指令格式730。143.一些图形核心指令具有最多三个操作对象,包括两个源操作对象src0720、src1722以及一个目的地718。在一些实施例中,图形核心支持双目的地指令,其中目的地中的一个是隐式的。数据操纵指令可具有第三源操作对象(例如,src2724),其中指令操作码712确定源操作对象的数量。指令的最后一个源操作对象可以是与指令一起被传递的立即数(例如,硬编码的)值。144.在一些实施例中,128比特指令格式710包括访问/寻址模式字段726,该访问/寻址模式字段726例如指定使用直接寄存器寻址模式还是间接寄存器寻址模式。当使用直接寄存器寻址模式时,由指令中的比特直接提供一个或多个操作对象的寄存器地址。145.在一些实施例中,128比特指令格式710包括访问/寻址模式字段726,该访问/寻址模式字段726指定指令的寻址模式和/或访问模式。在一个实施例中,访问模式用于限定指令的数据访问对齐。一些实施例支持包括16字节对齐访问模式和1字节对齐访问模式的访问模式,其中,访问模式的字节对齐确定指令操作对象的访问对齐。例如,当处于第一模式时,指令可将字节对齐的寻址用于源操作对象和目的地操作对象,并且当处于第二模式时,指令可将16字节对齐的寻址用于所有的源操作对象和目的地操作对象。146.在一个实施例中,访问/寻址模式字段726的寻址模式部分确定指令要使用直接寻址还是间接寻址。当使用直接寄存器寻址模式时,指令中的比特直接提供一个或多个操作对象的寄存器地址。当使用间接寄存器寻址模式时,可以基于指令中的地址寄存器值和地址立即数字段来计算一个或多个操作对象的寄存器地址。147.在一些实施例中,基于操作码712比特字段对指令进行分组从而简化操作码解码740。针对8比特的操作码,比特4、比特5、和比特6允许图形核心确定操作码的类型。所示出的确切的操作码分组仅是示例。在一些实施例中,移动和逻辑操作码组742包括数据移动和逻辑指令(例如,移动(mov)、比较(cmp))。在一些实施例中,移动和逻辑组742共享五个最高有效的比特(mostsignificantbit,msb),其中,移动(mov)指令采用0000xxxxb的形式,而逻辑指令采用0001xxxxb的形式。流控制指令组744(例如,调用(call)、跳转(jmp))包括0010xxxxb(例如,0x20)形式的指令。混杂指令组746包括指令的混合,包括0011xxxxb(例如,0x30)形式的同步指令(例如,等待(wait)、发送(send))。并行数学指令组748包括0100xxxxb(例如,0x40)形式的逐分量的算术指令(例如,加、乘(mul))。并行数学指令组748跨数据通道并行地执行算术操作。向量数学组750包括0101xxxxb(例如,0x50)形式的算术指令(例如,dp4)。向量数学组对向量操作对象执行算术,诸如,点积计算。在一个实施例中,所图示的操作码解码740可用于确定图形核心的哪个部分将用于执行经解码的指令。例如,一些指令可被指定为将由脉动阵列执行的脉动指令。其他指令(诸如,光线追踪指令(未示出))可被路由至执行逻辑的切片或分区内的光线追踪核心或光线追踪逻辑。图形管线148.图8是图形处理器800的另一实施例的框图。图8的具有与本文中的任何其他附图的元件相同的附图标记(或名称)的元件能以与本文中其他地方描述的方式类似的任何方式进行操作或运行,但不限于此。149.在一些实施例中,图形处理器800包括几何管线820、媒体管线830、显示引擎840、线程执行逻辑850以及渲染输出管线870。在一些实施例中,图形处理器800是包括一个或多个通用处理核心的多核心处理系统内的图形处理器。图形处理器通过至一个或多个控制寄存器(未示出)的寄存器写入或者经由通过环形互连802发出至图形处理器800的命令被控制。在一些实施例中,环形互连802将图形处理器800耦合至其他处理部件(诸如,其他图形处理器或通用处理器)。由命令流转化器803解释来自环形互连802的命令,该命令流转化器803将指令供应至几何管线820或媒体管线830的各个部件。150.在一些实施例中,命令流转化器803引导顶点取得器805的操作,该顶点取得器805从存储器读取顶点数据,并执行由命令流转化器803提供的顶点处理命令。在一些实施例中,顶点取得器805将顶点数据提供给顶点着色器807,该顶点着色器807对每一个顶点执行坐标空间变换和照明操作。在一些实施例中,顶点取得器805和顶点着色器807通过经由线程调遣器831将执行线程调遣给图形核心852a-852b来执行顶点处理指令。151.在一些实施例中,图形核心852a-852b是具有用于执行图形操作和媒体操作的指令集的向量处理器的阵列。在一些实施例中,图形核心852a-852b可具有专用于每个阵列或在阵列之间被共享的所附接的l1缓存851。缓存可以被配置为数据缓存、指令缓存、或被分区为在不同分区中包含数据和指令的单个缓存。152.在一些实施例中,几何管线820包括用于执行3d对象的硬件加速曲面细分的曲面细分部件。在一些实施例中,可编程外壳着色器811配置曲面细分操作。可编程域着色器817提供对曲面细分输出的后端评估。曲面细分器813在外壳着色器811的指示下进行操作,并且包含用于基于粗糙的几何模型来生成详细的几何对象集合的专用逻辑,该粗糙的几何模型作为输入被提供给几何管线820。在一些实施例中,如果不使用曲面细分,则可以绕过曲面细分部件(例如,外壳着色器811、曲面细分器813和域着色器817)。曲面细分部件可基于从顶点着色器807接收的数据进行操作。153.在一些实施例中,完整的几何对象可由几何着色器819经由被调遣给图形核心852a-852b的一个或多个线程来处理,或者可以直接行进至裁剪器829。在一些实施例中,几何着色器对整个几何对象操作,而不是像在图形管线的先前的阶段中那样对顶点或顶点的补片进行操作。如果曲面细分被禁用,则几何着色器819从顶点着色器807接收输入。在一些实施例中,几何着色器819是可由几何着色器程序编程的,以便在曲面细分单元被禁用的情况下执行几何曲面细分。154.在栅格化之前,裁剪器829处理顶点数据。裁剪器829可以是固定功能裁剪器或具有裁剪和几何着色器功能的可编程裁剪器。在一些实施例中,渲染输出管线870中的栅格化器和深度测试部件873调遣像素着色器以将几何对象转换为逐像素表示。在一些实施例中,像素着色器逻辑被包括在线程执行逻辑850中。在一些实施例中,,应用可绕过栅格化器和深度测试部件873,并且经由流出单元823访问未栅格化的顶点数据。155.图形处理器800具有互连总线、互连结构、或允许数据和消息在处理器的主要部件之间传递的某个其他互连机制。在一些实施例中,图形核心852a-852b和相关联的逻辑单元(例如,l1缓存851、采样器854、纹理缓存858等)经由数据端口856进行互连,以执行存储器访问并且与处理器的渲染输出管线部件进行通信。在一些实施例中,采样器854、缓存851、858和图形核心852a-852b各自具有单独的存储器访问路径。在一个实施例中,纹理缓存858也可被配置为采样器缓存。156.在一些实施例中,渲染输出管线870包含栅格化器和深度测试部件873,该栅格化器和深度测试部件873将基于顶点的对象转换为相关联的基于像素的表示。在一些实施例中,栅格化器逻辑包括用于执行固定功能三角形和线栅格化的窗口器/掩码器单元。在一些实施例中,相关联的渲染缓存878和深度缓存879也是可用的。像素操作部件877对数据执行基于像素的操作,但是在一些实例中,与2d操作相关联的像素操作(例如,利用混合的比特块图像传输)由2d引擎841执行,或者在显示时由显示控制器843使用叠加显示平面来代替。在一些实施例中,共享的l3缓存875可用于所有的图形部件,从而允许在不使用主系统存储器的情况下共享数据。157.在一些实施例中,媒体管线830包括媒体引擎837和视频前端834。在一些实施例中,视频前端834从命令流转化器803接收管线命令。在一些实施例中,媒体管线830包括单独的命令流转化器。在一些实施例中,视频前端834在将媒体命令发送到媒体引擎837之前处理该媒体命令。在一些实施例中,媒体引擎837包括用于生成线程以用于经由线程调遣器831调遣给线程执行逻辑850的线程生成功能。158.在一些实施例中,图形处理器800包括显示引擎840。在一些实施例中,该显示引擎840在处理器800外部,并且可经由环形互连802、或某个其他互连总线或结构来与图形处理器耦合。在一些实施例中,显示引擎840包括2d引擎841和显示控制器843。在一些实施例中,显示引擎840包含能够独立于3d管线进行操作的专用逻辑。在一些实施例中,显示控制器843与显示设备(未示出)耦合,该显示设备可以是如在膝上型电脑中的系统集成的显示设备或经由显示设备连接器而附连的外部显示设备。159.在一些实施例中,几何管线820和媒体管线830可配置成用于基于多个图形和媒体编程接口来执行操作,并且不专用于任何一个应用编程接口(api)。在一些实施例中,用于图形处理器的驱动器软件将专用于特定图形或媒体库的api调用转换为可由图形处理器处理的命令。在一些实施例中,为全部来自khronosgroup的开放图形库(opengraphicslibrary,opengl)、开放计算语言(opencomputinglanguage,opencl)和/或vulkan图形和计算api提供支持。在一些实施例中,也可以为来自微软公司的direct3d库提供支持。在一些实施例中,可支持这些库的组合。还可以为开源计算机视觉库(opensourcecomputervisionlibrary,opencv)提供支持。如果可进行从未来api的管线到图形处理器的管线的映射,则具有兼容3d管线的未来api也将受到支持。图形管线编程160.图9a是图示根据一些实施例的可用于对图形处理管线编程的图形处理器命令格式900的框图。图9b是图示根据实施例的图形处理器命令序列910的框图。图9a中的实线框图示一般被包括在图形命令中的组成部分,而虚线包括任选的或仅被包括在图形命令的子集中的组成部分。图9a的示例性图形处理器命令格式900包括用于标识命令的客户端902、命令操作代码(操作码)904和数据字段906的数据字段。子操作码905和命令大小908也被包括在一些命令中。161.在一些实施例中,客户端902指定图形设备的、处理命令数据的客户端单元。在一些实施例中,图形处理器命令解析器检查每一个命令的客户端字段以调整对命令的进一步的处理,并且将命令数据路由至适当的客户端单元。在一些实施例中,图形处理器客户端单元包括存储器接口单元、渲染单元、2d单元、3d单元和媒体单元。每个客户端单元具有处理命令的对应的处理管线。一旦由客户端单元接收到命令,客户端单元就读取操作码904以及子操作码905(如果存在)以确定要执行的操作。客户端单元使用数据字段906中的信息来执行命令。针对一些命令,预期显式的命令大小908指定命令的大小。在一些实施例中,命令解析器基于命令操作码自动地确定命令中的至少一些命令的大小。在一些实施例中,命令经由双字的倍数被对齐。可使用其他命令格式。162.图9b中的流程图示示例性图形处理器命令序列910。在一些实施例中,以图形处理器的实施例为特征的数据处理系统的软件或固件使用所示出的命令序列的某个版本来建立、执行并终止图形操作的集合。仅出于示例目的示出并描述样本命令序列,因为实施例不限于这些特定的命令或该命令序列。此外,命令可以作为批量的命令在命令序列中被发出,使得图形处理器将以至少部分地并发的方式处理命令序列。163.在一些实施例中,图形处理器命令序列910能以管线转储清除命令912开始,以使任何活跃的图形管线完成用于管线的当前未决的命令。在一些实施例中,3d管线922和媒体管线924不并发地操作。执行管线转储清除以使活跃的图形管线完成任何未决命令。响应于管线转储清除,用于图形处理器的命令解析器将暂停命令处理,直到活跃的绘画引擎完成未决操作并且相关的读缓存被无效。任选地,渲染缓存中被标记为“脏”的任何数据可以被转储清除到存储器。在一些实施例中,管线转储清除命令912可用于管线同步,或可在将图形处理器置于低功率状态之前被使用。164.在一些实施例中,当命令序列需要图形处理器在管线之间显式地切换时,使用管线选择命令913。在一些实施例中,在发出管线命令之前在执行上下文中仅需要一次管线选择命令913,除非上下文是发出针对这两条管线的命令。在一些实施例中,紧接在经由管线选择命令913进行的管线切换之前需要管线转储清除命令912。165.在一些实施例中,管线控制命令914配置用于操作的图形管线,并且用于对3d管线922和媒体管线924进行编程。在一些实施例中,管线控制命令914为活跃的管线配置管线状态。在一个实施例中,管线控制命令914用于管线同步,并且用于在处理批量的命令之前清除来自活跃管线内的一个或多个缓存存储器的数据。166.在一些实施例中,与返回缓冲器状态916有关的命令用于将用于相应管线的返回缓冲器的集合配置成用于写入数据。一些管线操作需要对一个或多个返回缓冲器的分配、选择或配置,在处理期间操作将中间数据写入这一个或多个返回缓冲器中。在一些实施例中,图形处理器还使用一个或多个返回缓冲器以存储输出数据并执行跨线程通信。在一些实施例中,返回缓冲器状态916包括选择要用于管线操作的集合的返回缓冲器的大小和数量。167.命令序列中的其余命令基于用于操作的活跃管线而不同。基于管线判定920,命令序列被定制成用于以3d管线状态930开始的3d管线922、或者在媒体管线状态940处开始的媒体管线924。168.用于配置3d管线状态930的命令包括用于顶点缓冲器状态、顶点元素状态、常量颜色状态、深度缓冲器状态、以及将在处理3d基元命令之前配置的其他状态变量的3d状态设置命令。这些命令的值至少部分地基于使用中的特定3dapi来确定。在一些实施例中,3d管线状态930命令也能够在将不会使用某些管线元件的情况下选择性地禁用或绕过那些元件。169.在一些实施例中,3d基元932命令用于提交要由3d管线处理的3d基元。经由3d基元932命令传递给图形处理器的命令和相关联的参数被转发到图形管线中的顶点取得功能。顶点取得功能使用3d基元932命令数据来生成顶点数据结构。顶点数据结构被存储在一个或多个返回缓冲器中。在一些实施例中,3d基元932命令用于经由顶点着色器对3d基元执行顶点操作。为了处理顶点着色器,3d管线922将着色器程序调遣给图形核心。170.在一些实施例中,3d管线922经由执行934命令或事件来触发。在一些实施例中,寄存器写入触发命令执行。在一些实施例中,经由命令序列中的“去往(go)”或“踢除(kick)”命令来触发执行。在一些实施例中,命令执行使用管线同步命令以通过图形管线对命令序列转储清除来触发。3d管线将执行针对3d基元的几何处理。一旦操作完成,就对所得到的几何对象进行栅格化,并且像素引擎对所得到的像素进行着色。对于那些操作,还可以包括用于控制像素着色和像素后端操作的附加命令。171.在一些实施例中,当执行媒体操作时,图形处理器命令序列910遵循媒体管线924路径。一般而言,针对媒体管线924进行编程的特定用途和方式取决于要执行的媒体或计算操作。在媒体解码期间,特定的媒体解码操作可被迁移到媒体管线。在一些实施例中,也可绕过媒体管线,并且可使用由一个或多个通用处理核心提供的资源完全地或部分地执行媒体解码。在一个实施例中,媒体管线还包括用于通用图形处理器单元(gpgpu)操作的元件,其中,图形处理器用于使用计算着色器程序来执行simd向量操作,这些计算着色器程序并不显式地与图形基元的渲染相关。172.在一些实施例中,以与3d管线922类似的方式来配置媒体管线924。用于配置媒体管线状态940的命令的集合在媒体对象命令942之前被调遣或被放置到命令序列中。在一些实施例中,用于媒体管线状态940的命令包括用于配置将被用于处理媒体对象的媒体管线元件的数据。这包括用于在媒体管线内配置视频解码和视频编码逻辑的数据,诸如编码或解码格式。在一些实施例中,用于媒体管线状态940的命令还支持使用指向包含批量的状态设置的“间接”状态元素的一个或多个指针。173.在一些实施例中,媒体对象命令942供应指向用于由媒体管线处理的媒体对象的指针。媒体对象包括存储器缓冲器,该存储器缓冲器包含要处理的视频数据。在一些实施例中,,在发出媒体对象命令942之前,所有的媒体管线状态必须是有效的。一旦管线状态被配置并且媒体对象命令942被排队,就经由执行命令944或等效的执行事件(例如,寄存器写入)来触发媒体管线924。随后可通过由3d管线922或媒体管线924提供的操作对来自媒体管线924的输出进行后处理。在一些实施例中,以与媒体操作类似的方式配置和执行gpgpu操作。图形软件体系结构174.图10图示根据一些实施例的用于数据处理系统1000的示例性图形软件体系结构。在一些实施例中,软件体系结构包括3d图形应用1010、操作系统1020以及至少一个处理器1030。在一些实施例中,处理器1030包括图形处理器1032以及一个或多个通用处理器核心1034。图形应用1010和操作系统1020各自在数据处理系统的系统存储器1050中执行。175.在一些实施例中,3d图形应用1010包含一个或多个着色器程序,该一个或多个着色器程序包括着色器指令1012。着色器语言指令可以采用高级着色器语言,诸如,direct3d的高级着色器语言(high-levelshaderlanguage,hlsl)、opengl着色器语言(openglshaderlanguage,glsl),等等。应用还包括采用适于由通用处理器核心1034执行的机器语言的可执行指令1014。应用还包括由顶点数据限定的图形对象1016。176.在一些实施例中,操作系统1020是来自微软公司的在一些实施例中,操作系统1020是来自微软公司的操作系统、专属的类unix操作系统或使用linux内核的变体的开放源类unix操作系统。操作系统1020可支持图形api1022,诸如,direct3dapi、openglapi或vulkanapi。当direct3dapi在使用中时,操作系统1020使用前端着色器编译器1024以将采用hlsl的任何着色器指令1012编译成较低级的着色器语言。编译可以是即时(just-in-time,jit)编译或者应用可执行着色器预编译。在一些实施例中,在3d图形应用1010的编译期间,高级着色器被编译为低级着色器。在一些实施例中,着色器指令1012以中间形式提供,该中间形式诸如,由vulkanapi使用的标准便携式中间表示(standardportableintermediaterepresentation,spir)的某个版本。177.在一些实施例中,用户模式图形驱动器1026包含后端着色器编译器1027以将着色器指令1012编译为硬件特定表示。当openglapi在使用中时,将采用glsl高级语言的着色器指令1012传递至用户模式图形驱动器1026以用于编译。在一些实施例中,用户模式图形驱动器1026使用操作系统内核模式功能1028来与内核模式图形驱动器1029通信。在一些实施例中,内核模式图形驱动器1029与图形处理器1032通信以调遣命令和指令。ip核心实现方式178.至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性代码实现,该机器可读介质表示和/或限定集成电路(诸如,处理器)内的逻辑。例如,机器可读介质可包括表示处理器内的各种逻辑的指令。当由机器读取时,指令可使机器制造用于执行本文所描述的技术的逻辑。此类表示(被称为“ip核心”)是集成电路的逻辑的可重复使用单元,这些可重复使用单元可以作为描述集成电路的组织的硬件模型而被存储在有形的、机器可读介质上。可以将硬件模型供应至在制造集成电路的制造机器上加载硬件模型的各客户或制造设施。可以制造集成电路,使得电路执行与本文中描述的实施例中的任一实施例相关联地描述的操作。179.图11a是图示根据实施例的可用于制造集成电路以执行操作的ip核心开发系统1100的框图。ip核心开发系统1100可以用于生成可并入到更大的设计中或用于构建整个集成电路(例如,soc集成电路)的模块化、可重复使用的设计。设计设施1130可生成采用高级编程语言(例如,c/c++)的ip核心设计的软件仿真1110。软件仿真1110可用于使用仿真模型1112来设计、测试并验证ip核心的行为。仿真模型1112可包括功能仿真、行为仿真和/或时序仿真。随后可从仿真模型1112创建或合成寄存器传输级(registertransferlevel,rtl)设计1115。rtl设计1115是对硬件寄存器之间的数字信号的流进行建模的集成电路(包括使用建模的数字信号来执行的相关联的逻辑)的行为的抽象。除了rtl设计1115之外,还可创建、设计或合成逻辑级或晶体管级的较低级别设计。由此,初始设计和仿真的特定细节可有所不同。180.可由设计设施进一步将rtl设计1115或等效方案合成到硬件模型1120中,该硬件模型1120可以采用硬件描述语言(hardwaredescriptionlanguage,hdl)或物理设计数据的某种其他表示。可以进一步仿真或测试hdl以验证ip核心设计。可使用非易失性存储器1140(例如,硬盘、闪存或任何非易失性存储介质)来存储ip核心设计以用于递送至第三方制造设施1165。替代地,可通过有线连接1150或无线连接1160(例如,经由互联网)来传送ip核心设计。制造设施1165随后可制造至少部分地基于ip核心设计的集成电路。所制造的集成电路可被配置成用于执行根据本文中描述的至少一个实施例的操作。181.图11b图示根据本文中所描述的一些实施例的集成电路封装组件1170的截面侧视图。集成电路封装组件1170图示如本文中所描述的一个或多个处理器或加速器设备的实现方式。封装组件1170包括连接至衬底1180的多个硬件逻辑单元1172、1174。逻辑1172、1174可至少部分地在可配置逻辑或固定功能逻辑硬件中实现,并且可包括本文中描述的(一个或多个)处理器核心、(一个或多个)图形处理器或其他加速器设备中的任一者的一个或多个部分。每个逻辑单元1172、1174可在半导体管芯内实现,并且经由互连组织1173与衬底1180耦合。互连组织1173可被配置成用于在逻辑1172、1174与衬底1180之间路由电信号,并且可包括互连,该互连诸如但不限于凸块或支柱。在一些实施例中,互连组织1173可被配置成路由电信号,诸如例如,与逻辑1172、1174的操作相关联的输入/输出(i/o)信号和/或功率或接地信号。在一些实施例中,衬底1180是基于环氧树脂的层压衬底。在其他实施例中,衬底1180可包括其他合适类型的衬底。封装组件1170可经由封装互连1183连接到其他电气设备。封装互连1183可耦合至衬底1180的表面以将电信号路由到其他电气设备,诸如主板、其他芯片组或多芯片模块。182.在一些实施例中,逻辑单元1172、1174与桥接器1182电耦合,该桥接器1182被配置成用于在逻辑1172与逻辑1174之间路由电信号。桥接器1182可以是为电信号提供路由的密集互连组织。桥接器1182可包括由玻璃或合适的半导体材料构成的桥接器衬底。电路由特征可形成在桥接器衬底上,以提供逻辑1172与逻辑1174之间的芯片到芯片连接。183.尽管图示了两个逻辑单元1172、1174和桥接器1182,但是本文中所描述的实施例可包括在一个或多个管芯上的更多或更少的逻辑单元。这一个或多个管芯可以由零个或更多个桥接器连接,因为当逻辑被包括在单个管芯上时,可以排除桥接器1182。替代地,多个管芯或逻辑单元可以由一个或多个桥接器连接。此外,多个逻辑单元、管芯和桥接器可按其他可能的配置(包括三维配置)被连接在一起。184.图11c图示封装组件1190,该封装组件1190包括连接到衬底1180的多个单元的硬件逻辑小芯片。如本文中所描述的图形处理单元、并行处理器和/或计算加速器可由分开制造的各种硅小芯片组成。来自多个供应商的具有不同ip核心逻辑的各种集合的小芯片可被组装到单个设备中。此外,小芯片可使用有源中介层技术而被集成到基础管芯或基础小芯片中。本文中描述的概念启用gpu内的不同形式的ip之间的互连和通信。ip核心可使用不同的工艺技术来制造并在制造期间被构成,这避免了尤其是对于具有若干风格的ip的大型soc的将多个ip汇聚到同一制造工艺的复杂性。允许使用多种工艺技术改善了上市时间,并提供具有成本效益的方法来创建多个产品sku。此外,分解的ip更易修改以被独立地功率门控,对于给定工作负载不在使用中的部件可被关断,从而降低总功耗。185.在各实施例中,封装组件1190可包括由结构1185和/或一个或多个桥接器1187互连的部件和小芯片。封装组件1190内的小芯片可具有使用芯片-晶片-衬底(chip-on-wafer-on-substrate)堆叠的2.5d布置,其中,多个管芯并排地堆叠在硅中介层1189上,该硅中介层1189将小芯片与衬底1180耦合。衬底1180包括至封装互连1183的电气连接。在一个实施例中,硅中介层1189是无源中介层,该无源中介层包括硅通孔(through-siliconvia,tsv)以将封装组件1190内的小芯片电气地耦合至衬底1180。在一个实施例中,硅中介层1189是有源中介层,该有源中介层除了tsv之外还包括嵌入式逻辑。在此类实施例中,封装组件1190内的小芯片使用3d面对面管芯堆叠被布置在有源硅中介层1189的顶部上。硅中介层1189除互连结构1185和硅桥接器1187外还可包括用于i/o1191的硬件逻辑、缓存存储器1192和其他硬件逻辑1193。结构1185启用各种逻辑小芯片1172、1174与有源硅中介层1189内的逻辑1191、1193之间的通信。结构1185可以是在封装组件的部件之间交换数据分组的noc互连或另一形式的分组交换型结构。对于复杂组件,结构1185可以是启用封装组件1190的各硬件逻辑之间的通信的专用小芯片。186.有源硅中介层1189内的桥接器组织1187可用于促进例如逻辑或i/o小芯片1174与存储器小芯片1175之间的点到点互连。在一些实现方式中,桥接器组织1187还可被嵌入在衬底1180内。硬件逻辑小芯片可包括专用硬件逻辑小芯片1172、逻辑或i/o小芯片1174和/或存储器小芯片1175。硬件逻辑小芯片1172以及逻辑或i/o小芯片1174可以至少部分地在可配置逻辑或固定功能逻辑硬件中实现,并且可包括本文中描述的(一个或多个)处理器核心、(一个或多个)图形处理器、并行处理器或其他加速器设备中的任一个的一个或多个部分。存储器小芯片1175可以是dram(例如,gddr、hbm)存储器或缓存(sram)存储器。有源中介层1189(或衬底1180)内的缓存存储器1192可充当用于封装组件1190的全局缓存,充当分布式全局缓存的部分,或充当用于结构1185的专用缓存。187.每个小芯片可被制造为单独的半导体管芯,并且可与基础管芯耦合,该基础管芯嵌入在衬底1180内或与衬底1180耦合。与衬底1180的耦合可经由互连组织1173来执行。互连组织1173可被配置成用于在衬底1180内的各种小芯片与逻辑之间路由电信号。互连组织1173可包括互连,诸如但不限于凸块或支柱。在一些实施例中,互连组织1173可被配置成用于路由电信号,诸如例如,与逻辑、i/o和存储器小芯片的操作相关联的输入/输出(i/o)信号和/或功率或接地信号。在一个实施例中,附加的互连组织将有源中介层1189与衬底1180耦合。188.在一些实施例中,衬底1180是基于环氧树脂的层压衬底。在其他实施例中,衬底1180可包括其他合适类型的衬底。封装组件1190可经由封装互连1183连接到其他电气设备。封装互连1183可耦合至衬底1180的表面以将电信号路由到其他电气设备,诸如,主板、其他芯片组或多芯片模块。189.在一些实施例中,逻辑或i/o小芯片1174和存储器小芯片1175可经由桥接器1187被电耦合,该桥接器1187被配置成用于在逻辑或i/o小芯片1174与存储器小芯片1175之间路由电信号。桥接器1187可以是为电信号提供路由的密集互连组织。桥接器1187可包括由玻璃或合适的半导体材料构成的桥接器衬底。电路由特征可形成在桥接器衬底上以提供逻辑或i/o小芯片1174与存储器小芯片1175之间的芯片到芯片连接。桥接器1187还可被称为硅桥接器或互连桥接器。例如,在一些实施例中,桥接器1187是嵌入式多管芯互连桥接器(embeddedmulti-dieinterconnectbridge,emib)。在一些实施例中,桥接器1187可简单地是从一个小芯片到另一小芯片的直接连接。190.图11d图示根据实施例的包括可互换小芯片1195的封装组件1194。可互换小芯片1195可被组装到一个或多个基础小芯片1196、1198上的标准化插槽中。基础小芯片1196、1198可经由桥接器互连1197被耦合,该桥接器互连1197可与本文中描述的其他桥接器互连类似,并且可以是例如emib。在一个实施例中,桥接器互连1197也可以是中介层。在一个实施例中,一个或多个基础小芯片1196、1198是被定位在封装衬底顶部上的中介层,诸如图11c的中介层1189。存储器小芯片也可经由桥接器互连被连接到逻辑或i/o小芯片。i/o和逻辑小芯片可经由互连结构进行通信。基础小芯片各自都能以用于逻辑或i/o或存储器/缓存中的一者的标准化格式来支持一个或多个插槽。191.在一个实施例中,sram和功率递送电路可被制造到基础小芯片1196、1198中的一个或多个中,基础小芯片1196、1198可使用相对于可互换小芯片1195不同的工艺技术来制造,可互换小芯片1195堆叠在基础小芯片的顶部上。例如,可使用较大工艺技术来制造基础小芯片1196、1198,同时可使用较小工艺技术来制造可互换小芯片。可互换小芯片1195中的一个或多个可以是存储器(例如,dram)小芯片。可基于针对使用封装组件1194的产品的功率和/或性能来为封装组件1194选择不同的存储器密度。此外,可在组装时基于针对产品的功率和/或性能来选择具有不同数量的类型的功能单元的逻辑小芯片。此外,可将包含具有不同类型的ip逻辑核心的小芯片插入到可互换小芯片插槽中,从而启用可混合并匹配不同技术的ip块的混合式处理器设计。示例性片上系统集成电路192.图12和图13a-图13b图示根据本文中描述的各个实施例的可使用一个或多个ip核心制造的示例性集成电路和相关联的图形处理器。除了所图示的内容之外,还可包括其他逻辑和电路,包括附加的图形处理器/核心、外围接口控制器或通用处理器核心。193.图12是图示根据实施例的可使用一个或多个ip核心来制造的示例性片上系统集成电路1200的框图。示例性集成电路1200包括一个或多个应用处理器1205(例如,cpu)、至少一个图形处理器1210并且可附加地包括图像处理器1215和/或视频处理器1220,图像处理器1215和视频处理器1220中的任一者可以是来自相同的设计设施或多个不同的设计设施的模块化ip核心。集成电路1200包括外围或总线逻辑,包括usb控制器1225、uart控制器1230、spi/sdio控制器1235和i2s/i2c控制器1240。此外,集成电路可包括显示设备1245,该显示设备1245耦合至高清晰度多媒体接口(high-definitionmultimediainterface,hdmi)控制器1250和移动行业处理器接口(mobileindustryprocessorinterface,mipi)显示接口1255中的一个或多个。可以由闪存子系统1260(包括闪存和闪存控制器)来提供存储。可以经由存储器控制器1265来提供存储器接口以获得对sdram或sram存储器设备的访问。一些集成电路附加地包括嵌入式安全引擎1270。194.图13a-图13b是图示根据本文中所描述的实施例的用于在soc内使用的示例性图形处理器的框图。图13a图示根据实施例的可以使用一个或多个ip核心来制造的片上系统集成电路的示例性图形处理器1310。图13b图示根据实施例的可以使用一个或多个ip核心来制造的片上系统集成电路的附加的示例性图形处理器1340。图13a的图形处理器1310是低功率图形处理器核心的示例。图13b的图形处理器1340是较高性能的图形处理器核心的示例。图形处理器1310和图形处理器1340中的每个图形处理器可以是图12的图形处理器1210的变体。195.如图13a中所示,图形处理器1310包括顶点处理器1305和一个或多个片段处理器1315a-1315n(例如,1315a、1315b、1315c、1315d,一直到1315n-1和1315n)。图形处理器1310可以经由单独的逻辑执行不同的着色器程序,使得顶点处理器1305被优化以执行用于顶点着色器程序的操作,而一个或多个片段处理器1315a-1315n执行用于片段或像素着色器程序的片段(例如,像素)着色操作。顶点处理器1305执行3d图形管线的顶点处理阶段,并生成基元和顶点数据。(一个或多个)片段处理器1315a-1315n使用由顶点处理器1305生成的基元数据和顶点数据来产生被显示在显示设备上的帧缓冲器。在一个实施例中,(一个或多个)片段处理器1315a-1315n被优化以执行如在openglapi中提供的片段着色器程序,这些片段着色器程序可以用于执行与如在direct3dapi中提供的像素着色器程序类似的操作。196.图形处理器1310附加地包括一个或多个存储器管理单元(mmu)1320a-1320b、(一个或多个)缓存1325a-1325b以及(一个或多个)电路互连1330a-1330b。该一个或多个mmu1320a-1320b为图形处理器1310(包括为顶点处理器1305和/或(一个或多个)片段处理器1315a-1315n)提供虚拟到物理地址映射,除了存储在一个或多个缓存1325a-1325b中的顶点数据或图像/纹理数据之外,该虚拟到物理地址映射还可以引用存储在存储器中的顶点数据或图像/纹理数据。在一个实施例中,一个或多个mmu1320a-1320b可以与系统内的其他mmu同步,使得每个处理器1205-1220可以参与共享或统一虚拟存储器系统,系统内的其他mmu包括与图12的一个或多个应用处理器1205、图像处理器1215和/或视频处理器1220相关联的一个或多个mmu。根据实施例,一个或多个电路互连131330a-1330b使得图形处理器1310能够经由soc的内部总线或经由直接连接来与soc内的其他ip核心对接。197.如图13b中所示,图形处理器1340包括图13a的图形处理器1310的一个或多个mmu1320a-1320b、缓存1325a-1325b和电路互连1330a-1330b。图形处理器1340包括一个或多个着色器核心1355a-1355n(例如,1355a、1355b、1355c、1355d、1355e、1355f,一直到1355n-1和1355n),其提供统一着色器核心体系结构,其中,单个核心或类型或核心可执行所有类型的可编程着色器代码,包括用于实现顶点着色器、片段着色器和/或计算着色器的着色器程序代码。统一着色器核心体系结构也可配置成用于执行直接编译的高级gpgpu程序(例如,cuda)。存在的着色器核心的确切数量可以因实施例和实现方式而异。此外,图形处理器1340包括核心间任务管理器1345,该核心间任务管理器1345充当用于将执行线程调遣给一个或多个着色器核心1355a-1355n的线程调遣器和用于加速对基于片的渲染的分片操作的分片单元1358,在基于片的渲染中,针对场景的渲染操作在图像空间中被细分,例如以利用场景内的局部空间一致性或优化内部缓存的使用。198.图14是根据实施例的数据处理系统1400的框图。数据处理系统1400是异构处理系统,其具有处理器(例如,应用处理器1402)、统一存储器1410和包括机器学习加速逻辑的gpgpu1420。应用处理器1402和gpgpu1420可以是如本文中所描述的处理器和gpgpu/并行处理器中的任一者。例如,另外参考图1,应用处理器1402可以是所图示的一个或多个处理器102中的处理器的变体和/或与所图示的一个或多个处理器102中的处理器共享体系结构,并且gpgpu1420可以是(一个或多个)图形处理器108的变体和/或与(一个或多个)图形处理器108共享体系结构。199.应用处理器1402可执行存储在系统存储器1412中的用于编译器1415的指令。编译器1415在应用处理器1402上执行,以将源代码1414a编译成经编译的代码1414b。经编译的代码1414b可包括可由应用处理器1402执行的指令和/或可由gpgpu1420执行的指令。要由gpgpu执行的指令的编译可使用着色器或计算程序编译器(诸如,图10中的着色器编译器1027和/或着色器编译器1024)促进。在编译期间,编译器1415可执行操作以插入元数据,该元数据包括关于经编译的代码1414b中存在的数据并行性水平的提示和/或关于与要基于经编译的代码1414b而被调遣的线程相关联的数据局部性的提示。还可以提供关于应当使用gpgpu1420(或应用处理器1402)的哪些处理资源来执行经编译的代码1414b内的给定指令集的提示。在一个实施例中,可以提供关于经编译的代码1414b内的指令的吞吐量、等待时间或功率目标的api提示。在一个实施例中,特定指令将被引导以供特定处理资源执行。编译器1415可包括对于执行此类操作必要的信息,或者可以在运行时库1416的辅助下执行这些操作。运行时库1416还可以辅助编译器1415编译源代码1414a,并且还可以包括指令,这些指令在运行时与经编译的代码1414b链接以用于促进在gpgpu1420上执行经编译的指令。编译器1415还可促进经由寄存器分配器(registerallocator,ra)对变量的寄存器分配,并且生成用于在存储器与为变量指派的寄存器之间移动用于该变量的数据的加载和存储指令。200.统一存储器1410表示可由应用处理器1402和gpgpu1420访问的统一地址空间。统一存储器可包括系统存储器1412以及gpgpu存储器1418。gpgpu存储器1418是gpgpu1420的地址空间内的存储器,并且可包括系统存储器1412和gpgpu1420的本地存储器1434中的一些或全部。在一个实施例中,gpgpu存储器1418还可以包括可由gpgpu1420访问的任何存储器的至少一部分,此类存储器在可由gpgpu1420访问的其他设备中。在一个实施例中,应用处理器1402可以将存储在系统存储器1412中的经编译的代码1414b映射到gpgpu存储器1418以供gpgpu1420访问。在一个实施例中,对统一存储器1410的访问是一致性访问,其中经由诸如计算快速链路(computeexpresslink,cxl)之类的一致性互连来维持一致性。201.gpgpu1420包括多个计算块1424a-1424n,这些计算块1424a-1424n可包括本文中描述的各种处理资源中的一种或多种。处理资源可以是或可包括各种不同的计算资源,诸如例如,执行单元、图形核心、计算单元、流式多处理器、图形多处理器或多核心组,例如,如本文所描述的各种图形处理器体系结构中所示。gpgpu1420还可以包括可由计算块1424a-1424n和加速器电路1423共享的资源集合,包括但不限于功率和性能模块1426、和缓存1427。功率和性能模块1426可被配置成用于调整用于计算块1424a-1424n的功率递送和时钟频率,以对计算块1424a-1424n内的空闲部件进行功率门控。在各个实施例中,缓存1427可包括指令缓存和/或低级数据缓存。202.gpgpu1420可以附加地包括l3数据缓存1430,该l3数据缓存1430可用于对由加速器电路1423和/或计算块1424a-1424n内的计算元件从统一存储器1410访问的数据进行缓存。在一个实施例中,l3数据缓存1430包括共享本地存储器1432,该共享本地存储器1432可以由计算块1424a-1424n内的计算元件和加速器电路1423共享。gpgpu1420还可以包括本地存储器1434,该本地存储器1434是gpgpu1420的本地设备存储器。203.在一个实施例中,gpgpu1420包括指令处置逻辑,诸如,取得(fetch)和解码单元1421以及调度器控制器1422。取得和解码单元1421包括用于取得和解码指令以供计算块1424a-1424n中的一个或多个或加速器电路1423执行的取得单元和解码单元。指令可经由调度器控制器1422被调度给计算块1424a-1424n或张量加速器内的适当的功能单元。在一个实施例中,调度器控制器1422是能够配置成用于执行高级调度操作的asic。在一个实施例中,调度器控制器1422是能够执行从固件模块加载的调度器指令的微控制器或低每指令能量的处理核心。204.在一个实施例中,gpgpu1420附加地包括加速器电路1423(诸如图1的加速器112),加速器电路1423可以是可被配置成用于执行专业的图形操作、媒体操作或计算操作的集合的协处理器。在一个实施例中,加速器电路1423内的逻辑部件可跨多个计算块1424a-1424n的处理资源而分布。在一个实施例中,加速器电路1423可以增强或辅助由矩阵和/或光线追踪电路在多个计算块1424a-1424n的处理资源内执行的矩阵和/或光线追踪操作。在一个实施例中,用于由计算块1424a-1424n执行的一些功能可以被直接调度或迁移到加速器电路1423。在一个实施例中,加速器电路1423是专用集成电路。在一个实施例中,加速器电路1423是现场可编程门阵列(fieldprogrammablegatearray,fpga),其提供可在工作负载之间被更新的硬件逻辑。205.gpgpu1420还包括显示子系统,该显示子系统包括显示引擎1425。在一个实施例中,显示引擎1425被配置成用于将输出缓冲器显示到一个或多个附接的显示设备,诸如图1的显示设备111或图3a-图3b的显示设备318。输出缓冲器可以是包括由gpgpu1420基于由应用处理器1402执行的操作系统提供的命令来渲染的像素数据的帧缓冲器。用于后期绑定sku可替代性的小芯片体系结构206.实现后期绑定sku可替代性的小芯片体系结构允许在设计过程的后期确定产品的ip,从而实现更具可替代性和灵活性的产品体系结构。通过简单地交换出标准化基础管芯顶部的小芯片,同构小芯片用途能够以最少的r&d跨广泛范围的产品细分进行扩展。异构小芯片启用各种自定义sku,这些自定义sku具有可针对具有特殊应用的客户开发的不同比例的专用计算资产和io资产。异构小芯片可以通过最少的附加研究和开发来实现对云实例类型的定制。207.图15图示根据实施例的模块化并行计算系统1500。在一个实施例中,模块化并行计算系统1500可以提供图14的gpgpu1420的实现方式。在一个实施例中,模块化并行计算系统1500可用于实现图14的数据处理系统1400的整体。模块化并行计算系统1500包括模块化并行处理器1520,该模块化并行处理器1520可以是如本文中所描述的图形处理器或计算加速器。模块化并行处理器1520由采用分立的集成电路形式的多个小芯片组成,这些小芯片组成在具有多个标准化小芯片插槽的有源基础管芯上。在一个实施例中,模块化并行处理器1520包括全局逻辑1501单元、接口1502、线程调遣器1503、媒体单元1504、计算单元的集合1505a-1505h、以及缓存/存储器单元1506a-1506b。计算单元的集合1505a-1505h可以是与固定功能和可编程图形管线协作地操作的专用的通用计算单元或图形和计算单元。208.模块化并行处理器1520可以实现本文中描述的图形处理器或并行通用计算处理器体系结构中的任何一个。例如,媒体单元1504可以实现与图2b的媒体管线234、图3a和图4的媒体管线316或图8的媒体管线830相关联的功能。在各个实施例中,线程调遣器1503可以是向媒体单元1504和计算单元的集合1505a-1505h内的本地调遣器、调度器或线程仲裁器进行调遣的全局调遣器(例如,图6的全局调遣器602)。线程调遣器1503可以经由图2b中的图形微控制器233来实现,或者可以实现图2c的调度器/调遣器241、图2d的线程调遣器258的功能。线程调遣器1503还可以实现图8的线程调遣器831、图13a的核心间任务管理器1345的功能。计算单元的集合1505a-1505h可以包括用于实现图形和/或计算功能的电路,包括但不限于图2b的图形核心221a-221f、图2c的多核心组240a-240n、图2d的计算单元260a-260n、图5a的图形核心515a-514n、图8的图形核心852a-852b、图13a的(一个或多个)片段处理器1315a-1315n、和/或图13b的(一个或多个)着色器核心1355a-1355n的电路。209.模块化并行处理器1520的部件和功能可以跨多个小芯片分布,其中每个部件或功能是单独的小芯片。多个部件也可以被聚合成单个小芯片。例如,全局逻辑单元1501和接口1502可被包括在单个小芯片中。媒体单元1504可被包括在与计算单元的集合1505a-1505h不同的单独的小芯片中,或者单个小芯片可以提供媒体单元1504和计算单元的集合1505a-1505h。在一个实施例中,模块化并行处理器1520的小芯片可以以分片方式跨多个基础管芯分布,诸如图3b的图形处理器320或图3c的计算加速器330。在各个实施例和配置中,模块化并行处理器1520的部件可以在二维(2d)、二维半(2.5d)或三维(3d)中被布置、被堆叠或被定位。210.在一个实施例中,全局逻辑单元1501包括用于模块化并行处理器1520的全局功能,包括器件配置寄存器、全局调度器、功率管理逻辑,等等。全局逻辑单元1501还可以包括用于执行模块化并行计算系统1500的动态电压和频率缩放的时钟控制逻辑功率控制逻辑。在一个实施例中,全局逻辑单元1501包括用于硬件密钥存储、器件标识符等的一次性可编程存储器(诸如电熔丝(efuse)或反熔丝(antifuse))。全局逻辑单元1501还可以包括重置逻辑、测试逻辑、错误处置和错误恢复逻辑。211.接口1502可以包括用于模块化并行处理器1520的前端接口并且可以包括用于经由系统互连协议(诸如但不限于,pcie和/或cxl协议)连接模块化并行处理器1520的系统互连逻辑。线程调遣器1503可从接口1502接收工作负载,并将用于工作负载的线程调遣到计算单元1505a-1505h。如果工作负载包括任何媒体操作,则那些操作中的至少部分可由媒体单元1504执行。媒体单元还可将一些操作迁移到计算单元1505a-1505h。缓存/存储器单元1506a-1506b可以包括用于缓存存储器的sram(例如,l3缓存)、用于本地器件随机存取存储器的dram(例如,hbm、gddr),或者单个缓存/存储器单元可以包括sram和dram器件两者。212.模块化并行处理器1520的模块化性质实现相对于单片设计的增强型设计和制造能力。随着集成电路管芯的大小的增加以满足性能需求,设计开始接近光刻光罩限制,这限制了单个集成电路的大小。当管芯可适配在光罩限制内时,经由封装上互连连接的多个较小的管芯可能对于跨多个细分市场的成品率优化和管芯重新使用是优先的。模块化并行处理器1520的模块化性质还能够针对不同的部件使用多种不同的制造技术。例如,计算单元1505a-1505h可以在高级处理节点中实现以实现功率高效性能,而与缓存/存储器1506a-1506b和接口1502相关联的存储器和i/o控制器功能可以从已部署在已建立的过程节点中的设计中重新使用。此类分区可以产生更小的管芯、更低的制造成本、减少的设计时间和降低的设计成本。封装上的小芯片集成还使设计者能够通过选择不同数量和类型的管芯来针对不同的细分市场做出不同的权衡。例如,设计者可以取决于细分市场的需求来选择不同数量的计算、存储器和i/o管芯。由于不需要为不同的细分市场生产不同的管芯设计,因此可以实现更低的产品sku成本。213.在各个实施例中,模块化并行处理器1520可以使用同构小芯片和异构小芯片两者分片来实现。从软件的角度来看,计算模型可以被分区,使得模块化并行处理器1520可以被分区成具有单独的命令调度器的多个子设备。虽然命令调度器可能是分开的,但调度模型可以跨所有小芯片功能和/或子设备使用统一调度模型。在一个实施例中,位于缓存/存储器单元1505a-1505h内的缓存存储器可以跨多个小芯片分布,这可以使将缓存存储器与计算单元1505a-1505h互连所需的交叉带宽最小化。214.图16图示使用同构小芯片分片的模块化并行处理器实现方式。在一个实施例中,可以基于基础小芯片1610来指定多个模块化并行处理器实现方式1601、1602,基础小芯片1610可以是标准化基础小芯片。基础小芯片1610包括标准小芯片接口的集合,这些标准小芯片接口可以接受多种不同类型的在维度上同构的小芯片,包括第一小芯片类型1620和第二小芯片类型1630。虽然第一小芯片类型1620和第二小芯片类1630是在维度上同构的,但是可以针对不同的功率和性能简档来配置不同的小芯片类型。不同的功率和性能简档支持跨越多个产品细分和功率范围的产品设计规范,其中存储器容量、缓存容量、i/o带宽和gpu核心计数跨越一数量级或更多。215.例如,第一并行处理器实现方式1601可以包括基础小芯片1610和第一小芯片类型1620的小芯片阵列。第二并行处理器实现方式1602可以包括基础小芯片1610和第二小芯片类型1630的小芯片阵列。第一小芯片类型1620可以是用于机器学习训练、机器学习推断和高性能计算的计算优化的小芯片,而第二小芯片类型1630可以是具有固定功能gpu渲染能力以及媒体和计算能力的传统gpu小芯片。基础小芯片1610可被配置成用于包括缓存存储器。第一并行处理器实现方式1601可以使用基础小芯片1610的完整缓存能力,而第二并行处理器实现方式1602可以降级分拣(down-bin)较低容量的缓存。进一步扩展可以通过减少小芯片的数量、降级分拣小芯片或添加附加的小芯片的片来实现多片产品。在各个产品配置中,第一小芯片类型1620或第二小芯片类型1630的小芯片的不同组合可以被选择以实现细粒度的产品规范,如图21中进一步详述。216.图17图示根据实施例的、用于同构小芯片的可互换小芯片系统1700。在一个实施例中,可互换小芯片系统1700包括至少一个基础小芯片1710(或有源基础小芯片),该至少一个基础小芯片1710包括多个存储器小芯片插槽1701a-1701f以及多个逻辑小芯片插槽1702a-1702f。逻辑小芯片插槽(例如,1702a)和存储器小芯片插槽(例如,1701a)可由互连桥接器1735连接,该互连桥接器1735可与本文中描述的其他互连桥接器类似。逻辑小芯片插槽1702a-1702f可经由互连结构1708被互连。互连结构1708包括交换逻辑1718,该交换逻辑1718可被配置成用于通过将数据封装为结构分组而以对数据不可知的方式使得能够在逻辑小芯片插槽之间中继数据分组。结构分组随后可被交换到互连结构1708内的目的地插槽。217.在一些实施例中,存储器小芯片插槽1701a-1701f中的一个或多个可被配置成用于与结构互连节点耦合,该结构互连节点使得存储器小芯片插槽可经由互连结构1708访问。例如,逻辑小芯片插槽1702a-1702f中的任一个可利用仅用作结构互连节点的电路来填充,以耦合经由互连桥接器1735连接到逻辑小芯片的相关联的存储器小芯片插槽。在一个实施例中,存储器小芯片插槽1701a-1701f中的一个或多个包括结构互连节点,用于使得与存储器小芯片耦合的存储器能够充当互连结构1708的节点或端点。218.互连结构1708可包括一个或多个物理数据信道。一个或多个可编程虚拟信道可由每个物理信道承载。虚拟信道可被独立地仲裁,其中信道访问逐虚拟信道单独地被协商。通过虚拟信道的通信量可被分类为一个或多个通信量类别。在一个实施例中,优先级排定系统允许虚拟信道和通信量类别被指派用于仲裁的相对优先级。在一个实施例中,通信量平衡算法操作以向耦合至结构的每个节点维持基本相等的带宽和吞吐量。在一个实施例中,结构互连逻辑以比耦合至结构的节点高的时钟速率操作,从而在维持节点之间的带宽要求的同时允许互连宽度的减小。219.在某些节点要求较高带宽的情况下,多个物理链路可被组合以承载单个虚拟信道。多个通信量类别可以通过单个虚拟信道来承载,其中通信量类别是通信量的与仲裁相关的部分。虚拟信道内的通信量可阻止同一虚拟信道上附加通信量的传输。然而,给定的虚拟信道将不阻止不同的虚拟信道。相应地,不同虚拟信道上的通信量被独立地仲裁。在一个实施例中,每个物理链路在空闲时可单独地被时钟门控。可将早期指示即将到来的活动用作在数据被传送之前唤醒物理链路的触发。220.图18a-图18b图示根据实施例的用于可互换小芯片的模块化体系结构。图18a图示用于可互换逻辑或i/o小芯片的模块化体系结构。图18b图示用于可互换存储器小芯片的模块化体系结构。221.小芯片1830可以通过配置小芯片逻辑1802以用于与接口模板1808的互操作性而变得可互换。接口模块1808可包括标准化逻辑,诸如功率控制逻辑1832和时钟控制逻辑1834、以及互连缓冲器1839、互连缓存1840、结构互连节点1842。产品设计者随后可以选择将对接口模板1808提供接口的特定小芯片逻辑1802。小芯片逻辑1802的细节可以变化并且可以包括本文描述的小芯片类型(例如,第一小芯片类型1620、第二小芯片类型1630)中的任何类型。小芯片逻辑1802还可以与缓存/slm1838耦合,缓存/slm1838可以用作小芯片逻辑1802的功能单元的私有缓存或共享本地存储器。222.在接口模板1808内,功率控制逻辑1832包括用于管理向小芯片逻辑1802的功率递送的电路。功率控制逻辑1832可以在空闲状态或低功率状态期间对小芯片逻辑1802进行功率门控。时钟控制逻辑1834可以调整提供给小芯片逻辑1802的时钟频率。功率控制逻辑1832和时钟控制逻辑1834可以共同管理小芯片逻辑1802的动态电压和频率缩放。互连缓冲器1839可以存储要经由结构互连节点1842传送到互连结构1708或经由结构互连节点1842从互连结构1708接收的数据。互连缓存1840可以是可用于存储经由结构互连节点1842频繁接收或传送的数据的结构特定缓存。在一个实施例中,互连缓存1840还可以在互连结构1708上的高通信量或拥塞期间用作互连缓冲器1839的扩展。223.如图18b中所示,存储器小芯片1856可经由小芯片互连1865与逻辑或i/o小芯片1854连接,这些小芯片互连1865通过互连桥接器1735被路由。逻辑或i/o小芯片1854可以经由图17的互连结构1708与其他小芯片通信。在一个实施例中,存储器小芯片1856包括与由小芯片提供的存储器技术相对应的存储器区块1861的集合。存储器区块1861可以包括本文描述的任何类型的存储器,包括但不限于dram(例如,双数据速率dram、高带宽存储器(high-bandwidthmemory,hbm)、gddr)、sram或其他缓存存储器,或非易失性存储器,诸如闪存或3dxpoint存储器。对于dram存储器,ddr5、hbm3和gddr7被支持。然而,实施例不限于任何特定的存储器技术。存储器控制协议层1862可启用对存储器区块1861的控制,并且可包括用于一个或多个存储器控制器的逻辑。互连桥接器协议层1863可在存储器控制协议层1862与互连桥接器i/o层1864之间中继消息。互连桥接器i/o层1864可通过小芯片互连1866与互连桥接器i/o层1865通信。互连桥接器i/o层1864、1866可表示物理层,该物理层通过小芯片互连1865将信号传送到对应的互连点或从对应的互连点接收信号。物理i/o层可包括用于通过小芯片互连1865驱动信号和/或从小芯片互连1865接收信号的电路。逻辑或i/o小芯片1854内的互连桥接器协议层1867可将来自互连桥接器i/o层1866的信号转换为可被传递到计算或i/o逻辑1869的消息或信号。在一个实施例中,可使用数字适配器层1868以促进将信号转换为供由计算或i/o逻辑1869使用的消息或信号。224.计算或i/o逻辑1869可经由互连结构1708与其他逻辑或i/o小芯片通信。在一个实施例中,计算或i/o逻辑1869包括可与互连结构1708通信的集成结构互连节点逻辑,诸如图18a中的结构互连节点1842。在一个实施例中,存储器小芯片1856中的控制层1878可与逻辑或i/o小芯片1854中的控制层1880通信。这些控制层1878、1880可用于以带外方式传播或传送某些控制信号,以便例如在逻辑或i/o小芯片1854的接口总线协议层1867与存储器小芯片1856的接口总线协议层1863、存储器控制协议1862和/或存储器区块1861之间发送功率和配置消息。225.图19图示用于在启用小芯片测试、验证和集成中使用的标准化底盘接口的使用。与图18a的小芯片1830类似,小芯片1930可包括逻辑层1910和接口层1912。接口层1912可以是可与临时互连1914通信的标准化接口,该临时互连1914使得小芯片能够可移除地耦合至测试用具1916。测试用具1916可与测试主机1918通信。在测试主机1918的通信下,测试用具1916可在初始测试或拣选过程期间对各个小芯片1930执行一系列测试,以检查逻辑层1910内的缺陷,并且确定小芯片1930的性能或功能分拣单元(bin)。例如,可测试逻辑层1910以确定缺陷功能单元和非缺陷功能单元的数量,并确定阈值数量的特殊功能单元(例如,矩阵加速器、光线追踪核心等)是否功能正常。还可测试逻辑层1910以确定内部逻辑是否能以目标频率操作。此时,逻辑层1910内的计算部件可以被保留以用于现场修复。226.图20图示使用单独分拣的小芯片来创建各种小芯片等级。可对未经测试的小芯片2002的集合进行测试,并取决于各个小芯片是否符合特定的性能或功能等级而将小芯片分拣到分拣单元的集合中,分拣单元的集合包括性能分拣单元2004、主流分拣单元2006和经济分拣单元2008。性能分拣单元2004可包括超出主流分拣单元2006的性能(例如,稳定的频率)的小芯片,而经济分拣单元2008可包括功能正常但性能低于主流分拣单元2006中的小芯片的小芯片。在一个实施例中,小芯片可以根据诸如高/低泄漏功率、高/低动态功耗、最大操作频率、最小电压和/或测试失败的数量和类型之类的特征进行测试和分类。227.由于小芯片可在组装期间被可互换地放置,因此不同产品等级可基于所选择的小芯片集合而被组装。等级1产品2012可仅从性能分拣单元2004中的小芯片组装而来,而等级2产品2014可包括对来自性能分拣单元2004的小芯片以及来自主流分拣单元2006的其他小芯片的选择。例如,设计成用于要求高带宽、低等待时间存储器的工作负载的等级2产品2014可使用来自性能分拣单元2004的高性能存储器小芯片,同时使用来自主流分拣单元的计算、图形或媒体小芯片。附加地,如果等级3产品2016被定制用于没有高存储器带宽要求的工作负载,则可使用来自主流分拣单元2006的主流计算小芯片和来自经济分拣单元2008的存储器来组装此类产品。等级4产品2018可从经济分拣单元2008中的功能正常但性能不足的小芯片组装而来。分配给产品的小芯片还可以针对特定功能(诸如确定可在较低电压下操作的小芯片可以保留用于具有低功率目标的产品)进行选择。228.图21图示具有多个不同小芯片类型的图形处理器,这些小芯片类型具有统一的小芯片孔径。执行不同任务或具有不同ip的各种小芯片类型可被放置在基础芯片上,其中产品在设计阶段后期被配置或从预先设计的小芯片的选择中指定。在一个实施例中,混合各种不同类型的小芯片(包括如图16中的第一小芯片类型1620和第二小芯片类型1630)的模块化并行处理器2101可被指定。附加的小芯片类型也可以被包括在模块化并行处理器2101中,附加的小芯片类型包括第三小芯片类型2120和第四小芯片类型2130。可以基于由那些小芯片提供的功能来选择各种小芯片类型。229.不仅可以通过混合不同类型的小芯片,还可以通过混合不同分拣单元的小芯片来增强产品差异。可以基于模块化并行处理器2101的期望性能简档来选择单独分拣的小芯片。例如,模块化并行处理器2101可配置有第一小芯片类型1620的小芯片,其可以是从经济分拣单元2008中选择的用于机器学习训练、机器学习推断和高性能计算的计算优化的小芯片。此类计算优化的小芯片可能没有足够的性能用于数据中心或工作站产品。然而,当与第二小芯片类型1630的性能分拣单元2004小芯片配对时,此类小芯片可能适合于在模块化并行处理器2101中使用,第二小芯片类型1630可以是具有图形媒体和计算能力的传统gpu小芯片。230.第一小芯片类型1620的小芯片与第二小芯片类型1630的小芯片之间的混合,以及这些小芯片源自于其中的相关分拣单元可用于在执行图形功能和通用计算功能的混合时具体地调整模块化并行处理器2101的平衡。在一种实施方式中,最小电压匹配可被执行,其中具有最低最小可操作电压的小芯片可被配对以确保产品具有用于低功率应用的最佳功率特性。具有更高的稳定最大频率的小芯片也可被配对以创建高性能产品。在另一实施方式中,具有低功耗的小芯片可以与具有相对较高功耗的小芯片配对以实现某个平均功耗。231.可以基于被选择用于模块化并行处理器2101的第三小芯片类型2120的小芯片和第四小芯片类型2130的小芯片的类型来指定附加功能和与该功能相关联的性能。例如,第三小芯片类型2120的小芯片可以是缓存存储器小芯片,用于提供可由第一小芯片类型1620和第二小芯片类型1630的小芯片共享的大型最后一级缓存,第一小芯片类型1620和第二小芯片类型1630的小芯片填充模块化并行处理器2101的基础小芯片1610。此类缓存存储器可以与可驻留在基础小芯片1610内的缓存存储器协作地使用。在一种配置中,第四小芯片类型2130可以是多种不同的随机存取存储器技术中的一种,包括但不限于hbm3存储器。可以通过在基础小芯片1610上填充或去填充存储器小芯片插槽来启用各个存储容量。232.可被包括在模块化并行处理器2101的各种小芯片类型中的示例性小芯片设计包括没有图形功能并且没有或具有有限媒体功能的计算优化的小芯片。此类计算优化的小芯片可包括针对通用计算优化的单精度(fp32)浮点单元和双精度(fp64)浮点单元。小芯片还可以包括多用途传统gpu小芯片,多用途传统gpu小芯片包括渲染、像素和颜色管线以及基本计算和媒体支持。小芯片还可以包括ai训练优化的小芯片,ai训练优化的小芯片包括用于8比特和16比特脑浮点(bf8、bf16)和张量浮点(tensorfloat)-32(tf32)以及通用fp32和fp64的脉动组合逻辑。此类小芯片还可以包括对结构化矩阵稀疏度和用于稀疏矩阵操作的寄存器堆优化的支持。小芯片还可以包括ai推断优化的小芯片,ai推断优化的小芯片包括用于4比特整数(int4)、8比特整数(int8)和三元格式的脉动组合逻辑,以及结构化权重稀疏度和相关联的寄存器堆优化。附加的小芯片包括针对fp32和fp64优化的高性能计算(high-performancecompute,hpc)优化的小芯片,该小芯片具有更稳健的缓存和存储器数据路径。hpc小芯片还可以包括具有对fp32或fp64数据类型的支持的脉动阵列。此类脉动阵列还可以包括稀疏数据支持。hpc小芯片还可能包括内部光线追踪加速块。233.附加的小芯片设计可以包括针对同态加密和数据库分析使用32比特整数(int32)和64比特整数(int64)操作(诸如乘加操作、按比特操作、混合和数据移动操作)进行优化的硬件逻辑。附加地产品设计可以包括用于实现视频递送操作、视频转码操作、视频编码操作和视频解码操作的仅媒体小芯片。附加的产品设计可以包括具有bvh和运动模糊加速的光线追踪优化的小芯片、低等待时间l1缓存、硬件光线遍历、三角形相交、directx光线追踪(directxraytracing,dxr)支持和cpu迁移引擎。附加的小芯片设计包括现场可编程门阵列(field-programmablegatearray,fpga)小芯片。234.可以根据产品的预期用例在模块化并行处理器2101内混合各种小芯片设计中的任何一种。小芯片和hbm模块去填充,以及相关联的虚设管芯和降级分拣(down-bin)允许针对不同的计算和带宽比率的体系结构灵活性和可扩展性。动态管芯到管芯(die-to-die,d2d)互连利用、熔断和冗余可配置性允许不同的计算与缓存带宽比率,以及用于可配置计算与缓存容量可变性的缓存熔断选项。附加地,动态i/o通道可配置性和断电以及动态i/o功率状态允许不同的计算与i/o比率。用于后期绑定sku可替代性的在维度上异构的小芯片体系结构235.图22图示出在维度上异构的小芯片体系结构,该小芯片体系结构实现后期绑定sku可替代性。nxm网格布局可利用不同维度的小芯片实现,其中每个小芯片具有的长度和/或宽度是同构小芯片的长度或宽度的倍数。例如,1x1、1x2、2x1、2x2等的小芯片可被混合在具有对多个维度的小芯片的支持的基础管芯上。基础管芯2210可配置有对指定的小芯片孔径的支持。在一个实施例中,基础管芯2210是可配置有各种不同的小芯片孔径的基础小芯片。例如,除了第一小芯片类型1620的小芯片和第二小芯片类型1630的小芯片之外,其是1x1小芯片。可以支持第六小芯片类型2220的小芯片,该小芯片可具有2x1小芯片孔径。还可以包括第七小芯片类型2230的小芯片,该小芯片可具有2x2小芯片孔径。此类小芯片可以具有本文描述的小芯片类型中的任一种的功能。236.图23图示出用于异构小芯片的可互换小芯片系统2300。用于异构小芯片的可互换小芯片系统2300可具有与用于同构小芯片的可互换小芯片系统1700类似的功能(如图17中),以及各种孔径大小的附加逻辑插槽。例如,在一个实施例中,基础小芯片2310被配置成使得图17的基础小芯片1710的存储器小芯片插槽1701b和逻辑小芯片插槽1702b被替换为具有2x1孔径的逻辑小芯片插槽2320。在一个实施例中,基础小芯片2310被配置成使得图17的基础小芯片1710的逻辑小芯片插槽1702e-1702f被替换为具有1x2孔径的单个逻辑小芯片插槽2330,该逻辑小芯片插槽2330既与存储器小芯片插槽1701e耦合又与存储器小芯片插槽1701f耦合。基础小芯片2310的不同变体可配置有各种不同的小芯片插槽,这些小芯片插槽取决于被指定的图形或并行处理器的所期望的规范,具有各种不同的孔径大小。例如,逻辑小芯片插槽2320可以容纳具有内部存储器或非易失性存储器模块的fpga。逻辑小芯片插槽2330可利用高性能功能单元来填充,这些高性能功能单元受益于相对于可以填充逻辑小芯片插槽1702a、逻辑小芯片插槽1702b或逻辑小芯片插槽1702d的小芯片的附加存储器带宽。互连结构1708的交换逻辑1718被配置成用于通过将i/o互连的活动频率和宽度动态地配置到各个逻辑小芯片插槽来平衡各个小芯片插槽的结构带宽需求。237.图24图示出用于异构小芯片的附加的可互换小芯片系统2400。可互换小芯片系统2400与图23的可互换小芯片系统2300类似,其中增加了具有逻辑小芯片插槽2430的基础小芯片2410,逻辑小芯片插槽2430包括一个或多个直通2432。一个或多个直通2432启用要利用包括附加小芯片插槽的逻辑小芯片2440来填充的逻辑小芯片插槽2430,该逻辑小芯片2440可以包括存储器小芯片插槽2450或附加逻辑小芯片插槽2460。存储器小芯片插槽2450可以以与存储器小芯片插槽1701e或存储器小芯片插槽1701f类似的方式利用包括附加缓存存储器或随机存取存储器的小芯片来填充。逻辑小芯片插槽2460可以以与逻辑小芯片插槽1702a、逻辑小芯片插槽1702c或逻辑小芯片插槽1702d中的任一个类似的方式利用逻辑小芯片来填充。一个或多个直通2432可以将存储器小芯片插槽2450和逻辑小芯片插槽2460耦合到互连结构1708和/或互连桥接器1735。238.图25图示出根据实施例的经由可互换小芯片系统对模块化并行处理器进行配置的方法2500。方法2500可以由产品制造商或供应商执行以使得能够以与构成模块化并行处理器的各个小芯片的设计阶段解耦的方式实现产品的后期规范。模块化并行处理器可根据两个或更多个逻辑层配置,并可利用2d、2.5d或3d布置来配置。模块化并行处理器的组件的规范可经由软件逻辑来执行,该软件逻辑能够根据所提供的功能规范来实现对模块化并行处理器的各个层的逻辑的提供。239.方法2500附加地包括用于访问模块化并行处理器的功能规范的操作(2502)。在一个实施例中,功能规范指示由模块化并行处理器提供的功能(例如,ai训练、ai推断、gpu游戏、gpu计算、cpu计算、异构/混合并行处理等),以及模块化并行处理器的功率和性能目标。在一个实施例中,功能规范指示要包括在模块化并行处理器中的特定数量和类型的功能单元(例如,矩阵加速器、整数单元、浮点单元、媒体引擎等)以及与这些功能单元耦合或包括在这些功能单元中的特定数量和类型的缓存和存储器设备。此类规范还可以包括功能单元的集合及其相关联的缓存和存储器设备的功率和性能目标。功率和性能目标可以是根据由组提供的功能的每组存储器设备和功能单元的单独功率和性能指标,或者可以是功能单元的集合在其中操作的功率包络。功率目标可被指定为目标峰值或平均功耗。性能目标可被指定为每秒操作的目标数量或时钟频率目标。功能规范可由制造商设计的产品的设备制造商提供。功能规范也可以由设备制造商的客户供应商为定制设备提供。240.方法2500附加地包括用于根据功能规范确定用于模块化并行处理器的多个小芯片集合(2504)。在一个实施例中,多个小芯片集合为满足功能规范的功能目标、功率目标和性能目标被确定。在一个实施例中,多个小芯片集合是基于明确指定的功能单元集合来确定的。确定多个小芯片集合还可以包括确定将从其中得出给定功能的小芯片的期望的生产后测试分拣单元,该生产后测试分拣单元可以基于所提供的功率目标和性能目标或指定的功能细节(诸如功能执行核心的数量)来确定。可以经由可用小芯片的数据库来选择多个小芯片集合,该数据库可包括先前制造的、测试的和分拣的小芯片的库存和/或基于制造目标和成品率度量的预期库存。241.方法2500附加地包括:根据与多个小芯片中的每一个小芯片相关联的孔径大小来确定基础小芯片管芯配置,该基础小芯片管芯配置至少包括足以接受所确定的多个小芯片集合的小芯片插槽的数量(2506)。所确定的多个小芯片集合将与所确定的基础小芯片管芯配置的一个或多个基础小芯片管芯的多个小芯片插槽耦合。多个小芯片中的每一个小芯片都具有(anxbm)的维度,其中nxm是具有基本孔径大小(例如,1x1)的小芯片的空间维度,并且“a”和“b”是指示基本孔径大小的维度的倍数的整数值。基础小芯片可具有多个不同孔径大小(例如,1x1、2x1、1x2、2x2等)的相对应小芯片插槽。所确定的基础小芯片管芯配置将包括至少足够的小芯片插槽以接受所确定的多个小芯片集合和与所确定的多个小芯片集合相关联的孔径大小。所确定的基础小芯片管芯配置可以包括如图11d所示的多个基础小芯片管芯,诸如经由桥接器互连1197耦合的基础小芯片1196和基础小芯片1198。并非由所确定的基础小芯片管芯配置提供的所有小芯片插槽都需要被填充。不同的可用基础管芯配置可以包括不同的互连配置,其中不同的互连配置具有不同的最大互连带宽。不同的互连配置可以基于互连结构布局和用于给定基础小芯片管芯的交换逻辑的交换吞吐量或者存储器小芯片插槽和存储器小芯片插槽与逻辑小芯片插槽之间的互连桥接器的数量和位置而变化。在使用多个基础小芯片管芯的情况下,互连配置包括多个小芯片管芯被互连的方式。因此,确定基础小芯片管芯配置可以包括确定基础小芯片管芯的数量和孔径配置以及用于基础小芯片管芯配置的互连机制。242.方法2500附加地包括:使用所选择的基础小芯片管芯配置和所选择的多个小芯片集合对模块化并行处理器进行配置以用于制造(2508)。对模块化并行处理器进行配置以用于制造可以包括生成制造清单,该制造清单标识在模块化并行处理器的制造过程期间要使用的特定基础管芯和小芯片。模块化并行处理器的制造过程包括通过将所确定的多个小芯片集合安装到小芯片插槽来填充由基础小芯片管芯配置提供的小芯片插槽。使用方法2500,可以启用模块化产品生态系统,其中每个产品sku的确切规范可以在产品周期的后期基于被调度以用于制造的小芯片阵列或在某些情况下使用已经在生产中的小芯片来确定。用于跨配置的统一性的小芯片体系结构分块243.具有高小芯片计数的小芯片配置需要高成本、大面积的功率递送系统。当采用同构小芯片配置时,现场修复和成品率损失会造成跨同构小芯片的执行核心不对称,这可能会使高性能软件调度有问题。异构小芯片配置造成单位面积的动态电容(cdyn/mm2)增量,从而使功率递送和热管理复杂化。244.一种方法是使用最低公分母配置,其为所有小芯片提供统一的执行核心计数,从而平衡现场修复分配和成品率损失分配。例如,如果计算单元小芯片上的执行核心块由于成品率损失而被确定为无功能的,则剩余的执行核心可被分配以供现场修复使用。将这些不对称计算单元小芯片用作有源小芯片的能力会具有增加的性能和经改善的小芯片余量利用率、分拣和总体产品成本。然而,当跨具有不同执行核心计数的小芯片进行调度时,软件级别下的调度的复杂性会显著增加。245.本文描述的是一种能够跨不对称配置实现软件、功率递送和热统一性的小芯片体系结构分块技术。在一个实施例中,总体执行核心计数跨多个同构小芯片被归一化。跨多个小芯片的归一化基于每个区块的经组合的核心计数来实现跨小芯片区块的统一功率递送和热管理。在一个实施例中,跨异构小芯片区块的总cdyn被归一化。大批量制造(high-volumemanufacturing,hvm)卷轴可以由cdyn进行分类,并且功率递送和热量跨小芯片区块被统一。随后,半导体制造商会不再需要跨所有同构小芯片使用最低公分母执行核心计数,并且现场修复资源不需要以协同于成品率损失的方式分配。更灵活的sku、简化的功率递送和更低的生产成本使更高性能的产品成为可能。附加地,异构小芯片配置增加了设计灵活性,同时维持统一功率递送和热解决方案,使得异构小芯片配置能够遵守iccmax(icc最大)限制。246.图26图示出根据实施例的配置有小芯片分块体系结构的模块化并行处理器2600。模块化并行处理器2600包括至少一个基础小芯片管芯2601和多个小芯片,这些小芯片被配置成用于根据图15的模块化并行计算系统1500的模块化并行处理器1520实现功能。小芯片被布置在具有经归一化的执行核心计数的多个区块2610a-2610d中。虽然图示出了四个区块,但是任何数量的区块都可以用于模块化并行处理器2600。在一个实施例中,模块化并行处理器2600是多片处理器,诸如图3b的图形处理器320或图3c的计算加速器330。在一个实施例中,多个区块2610a-2610d中的每一个与片相对应。在一个实施例中,每个片包括多个小芯片区块。247.在一个实施例中,多个区块2610a-2610d中的每一个都包括经平衡的小芯片集合,其中,例如小芯片a表示启用了所有执行核心的完全产出的小芯片,而小芯片b表示具有成品率损失或降低功能执行核心总数的缺陷的小芯片,并且小芯片c表示被保留用于现场修复的、执行资源的一部分的小芯片。虽然跨所有小芯片的执行核心数量并不相同,但执行核心的数量在多个区块2610a-2610d中的每一个内是平衡的。模块化并行处理器2600的固件可被配置成用于将区块内的所有执行核心聚合成单个可调度的单元,这使得能够在每个区块的基础上简化硬件和软件调度。248.图27图示出根据实施例的配置有异构小芯片分块体系结构的模块化并行处理器2700。模块化并行处理器2700包括至少一个基础小芯片2701,其中多个异构小芯片被布置在多个区块2710、2720、2730、2740中。多个区块2710、2720、2730、2740在功能上可以是不统一的,但对于功率递送和热管理的目的而言是统一的。在小芯片测试期间,异构小芯片集合可以按cdyn或其他功率度量进行分类。如关于图20所指出,小芯片还可以根据泄漏功率、最大操作频率、最小电压以及测试失败的数量和类型来测试和分类。经测试和分类的小芯片随后可被配对,以创建具有统一功率和散热要求的区块。小芯片在功能、功耗和孔径大小方面可能是异构的。例如,参考图22,两个第六小芯片类型2220的小芯片(每个小芯片都具有2x1小芯片孔径)可以被包括在单个区块内,而单个第七小芯片类型2230的小芯片可以表示一个区块。替代地,四个第一小芯片类型1620的小芯片可被包括在具有两个第六小芯片类型2220的小芯片的区块中,而四个第二小芯片类型1630的小芯片可被包括在具有一个第七小芯片类型2230的小芯片的区块中。小芯片的任何连续布置都可以被分组为区块,以创建统一的功率递送、热管理和散热区域。249.返回到图27,小芯片a、小芯片b、小芯片c和小芯片d可以具有以下小芯片功能中的任一种:1)具有对bf16、tf32、bf8、fp16和对于训练神经网络优化的其他格式的支持的机器学习训练优化的脉动神经核心,2)具有对小整数数据类型(例如int4、int8、三元、二进制)的支持的机器学习推断优化的脉动神经核心,3)非脉动单精度(fp32)和双精度(fp64)向量和gemm计算优化的核心,4)针对整数和按比特操作优化的int32和int64核心,5)gpu固定功能图形渲染管线,6)媒体固定功能解码、转码、编码和视频增强,7)安全功能,包括受信任域扩展(tdx、tdx-io)、存储器加密、gsc/csc控制器、固件等,8)光线追踪,9)缓存和/或存储器,10)引导微控制器,11)迁移可接受主机cpu操作的迁移和/或辅助设备驱动器逻辑的执行的cpu核心模块。还可以支持其他小芯片功能。在一个实施例中,引导微控制器可被配置成用于引导各种小芯片内的各种不同类型的功能单元,包括但不限于用于cpu和/或gpu的引导操作。250.上述小芯片功能可以是本文描述的并行处理器和图形处理器功能的封装实现。例如,训练或推断优化的脉动神经核心可以包括图2c的张量核心244或图5c的矩阵引擎503的电路。可以使用图5b的向量引擎502、图2c的图形核心243或图2d的向量逻辑单元263的电路来实现非脉动浮点和整数核心。媒体固定功能解码、转码、编码和视频增强可以使用图8的视频前端834和媒体引擎837的电路来实现。控制器或固件功能可以使用与例如图2b的图形微控制器233相关联的电路来实现。光线追踪小芯片功能可以例如使用图2b的一个或多个光线追踪单元227a-227f、图2c的光线追踪核心245或图5a的光线追踪单元508a-508n的电路来实现。缓存和/或存储器功能可被实现或配置为用作本文描述的任何缓存或存储器,诸如图2a的(一个或多个)缓存单元204a-204n或嵌入式存储器模块218、图2b的缓存/slm228a-228f、图2c的l1缓存和共享存储器单元247或l2缓存253,或本文描述的任何其他l1、l2、l3或llc缓存。迁移cpu核心可以是cpu核心,诸如图1的(一个或多个)处理器核心107中的一个、图2a的核心202a-202n,或本文描述的任何其他cpu或应用处理器核心。251.在各个实施例中,多个小芯片功能可以被包括在单个小芯片内,或者小芯片可以专用于单个功能。例如,在一个实施例中,具有1x1孔径大小的小芯片可以包括单个功能,而2x1或1x2孔径小芯片可以包括两个或更多个功能。在一个实施例中,具有1x1孔径的小芯片还可以取决于实现这些功能所需的硅面积而包括多种功能。252.例如,在一个数据中心配置中,小芯片a可以是媒体小芯片,小芯片b可以是非脉动计算核心,小芯片c可以是gpu核心,并且小芯片d可以是机器学习训练优化的小芯片,包括脉动神经核心。根据针对相应小芯片的所测试的cdyn,小芯片被分组为区块。然后,可以根据多个区块2710、2720、2730、2740中的每一个的要求来配置功率递送、热管理和散热。253.图28图示出根据实施例的对具有异构执行核心计数的小芯片进行分块的方法2800。方法2800可由产品或半导体制造商执行来实现统一的执行核心区块的创建以简化软件和硬件调度。可经由辅助小芯片选择和分块的软件逻辑来促进与方法2800相关联的操作。254.方法2800包括执行小芯片的制造后测试以确定每个小芯片中的功能执行核心的数量(2802)。执行核心也可以指执行单元、图形核心、计算单元、流式多处理器、图形多处理器或多核心组,例如,如本文所述的各种图形处理器体系结构中所示。如图19所示,可以通过至少部分封装小芯片并经由测试工具测试小芯片功能来执行制造后测试。小芯片功能测试可以确定被测试小芯片上的功能执行核心的数量。无功能的或有故障的执行核心可被禁用,并且可以进一步测试小芯片的功能执行核心以进行性能分拣。255.然后,可以根据针对每个小芯片所确定的成品率损失将小芯片分类到多个分拣单元中(2804)。随后可以从多个分拣单元中选择具有不等数量的执行核心的小芯片以创建具有统一数量的功能执行核心的小芯片组(2806)。在一个实施例中,小芯片组可以包括一个或多个完全产出的小芯片、由于成品率损失而具有多个无功能的执行核心的一个或多个小芯片、和/或具有被保留用于现场修复的多个功能执行核心的一个或多个小芯片。具有被保留用于现场修复的功能执行核心的小芯片可能包括或者可能不包括由于成品率损失而无功能的多个执行核心。256.方法2800附加地包括,一旦小芯片组被创建,就利用每个组的所选择的小芯片来填充模块化并行处理器的一个或多个基础小芯片管芯,以创建具有统一数量的执行核心的一个或多个区块(2808)。然后,产品或半导体制造商可以根据一个或多个区块内的执行核心数量为模块化并行处理器配置固件(2810)。在一个实施例中,固件配置包括根据在每个区块内活动的功能执行核心的数量,以及被保留用于现场修复的功能执行核心的数量为模块化并行处理器配置bios。固件配置还可以包括配置调度固件以指示各种小芯片及其相关联的执行核心的分块布置。然后,线程可跨每个区块被统一地调度。257.图29图示出根据实施例的对具有异构功率要求的小芯片进行分块的方法2900。方法2900可以由产品或半导体制造商执行,以实现具有统一功率要求的小芯片区块的创建,以简化功率递送和热管理。可经由辅助小芯片选择和分块的软件逻辑来促进与方法2900相关联的操作。在一个实施例中,结合方法2800执行方法2900以为模块化并行处理器选择包括统一的或预定数量的执行核心并且具有统一的或预定功率度量。258.方法2900包括执行小芯片的制造后测试以确定小芯片的第一功率度量(2902)。所确定的功率度量可以包括cdyn或其他功率度量,诸如小芯片的峰值功耗或小芯片的功率-频率关系。如图19所示,可以通过至少部分封装小芯片并经由测试工具测试小芯片功能和功耗来执行制造后测试。单个模块化并行处理器可以包括多种类型的小芯片,这些小芯片具有不同类型的功能单元。针对给定小芯片确定的功率度量可以是小芯片内的功能单元的类型和小芯片内的功能单元的数量的函数。针对给定的小芯片确定的功率度量也可能与小芯片的孔径大小相关,该孔径大小也可能与小芯片内功能单元的类型和数量相关,因为较大的小芯片包含较大数量的功能单元和/或更复杂类型的功能单元。由于制造差异,针对给定小芯片确定的功率度量也可以跨具有相同类型和数量的功能单元的小芯片变化。259.方法2900附加地包括执行用于根据第一功率度量将经测试的小芯片分类到多个分拣单元中的操作(2904)。然后,可以从多个分拣单元中选择小芯片以创建集体具有第二功率度量的小芯片组(2906)。第二功率度量可以是小芯片组的集体或聚合cdyn、集体或聚合峰值功耗或集体功率-频率关系。小芯片组可被生成以具有统一的功率递送要求或者可以与功率递送要求的等级相关联。功率递送要求的等级可以与目标性能或功率段相关联,该目标性能或功率段旨在用于使用该方法制造的模块化并行处理器的多个层。功率递送要求的等级也可以与单个模块化并行处理器的功率域层相关联。260.方法2900附加地包括,一旦小芯片组被创建,就利用所选择的小芯片来填充模块化并行处理器的一个或多个基础小芯片管芯,以创建集体具有第二功率度量的多个小芯片的一个或多个区块(2908)。方法2900附加地包括用于在一个或多个基础小芯片管芯上配置功率递送系统的操作,该配置功率递送系统根据第二功率度量向多个小芯片的一个或多个区块递送功率(2910)。在一个实施例中,在一个或多个基础小芯片管芯上配置功率递送系统包括选择电压和热调节器部件以用于一个或多个基础小芯片管芯上。在一个实施例中,配置对小芯片的功率递送可以通过从多个可用的基础小芯片管芯中选择基础小芯片管芯来执行,其中所选择的基础小芯片管芯被预先配置有用于每个异构区块的足够的功率递送能力。配置电压和热调节器部件可附加地包括配置对电压和热调节器部件的设置,这些部件被选择在一个或多个基础小芯片管芯上使用或在被选择的一个或多个预配置的基础小芯片管芯上使用。261.模块化并行处理器的固件随后可以基于多个小芯片的每个区块的cdyn或其他功率度量来微调。虽然基础小芯片管芯上的功率递送是基于每个区块来配置的,但每个小芯片的接口模板1808内的功率控制逻辑1832是根据针对每个小芯片的特定功率要求来配置的。262.图30a-图30b图示出具有针对通用小芯片体系结构配置的小芯片的示例性模块化并行处理器3010、3020。模块化并行处理器3010、3020可以是图15的模块化并行处理器1520的版本,其中模块化功能由如本文所述的小芯片的阵列提供。263.如图30a所示,模块化并行处理器3010可被配置成与图15的模块化并行处理器1520类似,除了计算小芯片中的一个或多个可以被替换为一个或多个通用处理器小芯片(例如,cpu3005a),这些通用处理器小芯片可以执行如本文所述的一个或多个通用处理器核心的操作。在一个实施例中,通用处理器小芯片可以充当cpu迁移处理器并接受从主机处理器调遣的工作负载,示例性模块化并行处理器3010经由接口1502与该主机处理器耦合。在一个实施例中,通用处理器小芯片可以充当独立式cpu。在此类实施例中,全局逻辑3001可以包括用于使通用处理器小芯片能够充当可引导cpu的引导逻辑。调度器小芯片3003可以替代线程调遣器。在一个实施例中,调度器小芯片3003是微控制器或低功率处理器,该微控制器或低功率处理器执行能够执行用于cpu、gpu或通用计算任务的调度和调遣操作的软件或固件。264.模块化并行处理器3010的小芯片可取决于一个或多个分块特性被布置成多个区块。在一个实施例中,第一小芯片区块可以包括全局逻辑3001、接口1402、调度器3003和媒体单元1504,这些组件可被分块以用于功率递送的目的。可以在通用处理器小芯片和提供计算单元1505a-1505g的各种小芯片之间创建各种区块。还可以在提供计算单元1505a-1505g的小芯片之间创建小芯片区块,以归一化每个区块内的执行核心的数量。提供缓存/存储器单元集合1506a-1506b的缓存和/或存储器小芯片可以被分组成区块以用于功率递送的目的。265.如图30b所示,模块化并行处理器3020可被配置成提供高核心计数或许多集成核心cpu。提供图形处理功能的小芯片可能会被完全替换为实现通用并行处理操作的cpu小芯片3005a-3005h。模块化并行处理器3020可以采用多种小芯片分块布置来简化跨不同小芯片的功率递送和调度,不同小芯片可能包括功率要求的不均匀核心计数。在一个实施例中,提供缓存/存储器单元1506a-1506b的集合的缓存和/或存储器小芯片可驻留在单独的区块中以用于功率递送或容量平衡目的。266.在各个实施例中,小芯片区块或小芯片的其他分组可以驻留在单独的小芯片的片上,这些片经由片互连耦合。每个片可以包括一个或多个小芯片区块。各种小芯片之间的缓存一致性可以使用软件一致性和硬件一致性两者以各个粒度来维持。例如,硬件一致性可以在片内被维持,而跨片一致性经由软件来管理。在一个实施例中,可以在片组之间维持硬件一致性,而跨片组维持软件一致性。267.图31a-图31b图示出用于模块化并行处理器3110、3120的示例性自适应小芯片接口。本文所述的模块化并行处理器的小芯片可以使用各种工艺技术和接口经由各种管芯到管芯接口技术来制造。在一个实施例中,自适应接口3102被提供,自适应接口3102包括可配置成用于通过统一管芯到管芯接口与多个缓存或存储器技术互连的逻辑。268.如图31a所示,被配置成用于数据中心操作的模块化并行处理器3110可以包括顶层逻辑3101、自适应接口3102、中间层逻辑3103和底层逻辑。顶层逻辑3101可以包括提供控制逻辑和功能单元的一个或多个小芯片。中间层逻辑3103可以包括例如缓存存储器和缓存控制器逻辑。底层逻辑3104可以包括附加的缓存存储器和封装接口。例如,中间层逻辑3103可以包括可在顶层逻辑3101内的多个逻辑单元之间共享的大型缓存,而底层逻辑3104提供附加的缓存存储器层。自适应接口3102内的逻辑可被选择性地实现,以促进使用中间层逻辑3103和底层逻辑3104中的缓存存储器的使用。269.如图31b所示,为消费者使用而配置的模块化并行处理器3110可排除中间层逻辑3103及其相关联的缓存存储器。自适应接口3102可被配置成用于提供对底层逻辑3104的缓存存储器的访问,而不需要使用单独的接口。附加的示例性计算设备270.图32是根据实施例的包括图形处理器3204的计算设备3200的框图。计算设备3200的多个版本可以是通信设备或可被包括在通信设备内,该通信设备诸如机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(globalpositioningsystem,gps)的设备等。计算设备3200还可以是移动计算设备或可被包括在移动计算设备内,该移动计算设备诸如,蜂窝电话、智能电话、个人数字助理(personaldigitalassistant,pda)、平板计算机、膝上型电脑、电子阅读器、智能电视、电视平台、可穿戴设备(例如,眼镜、手表、项链、智能卡、首饰、服饰等)、媒体播放器等。例如,在一个实施例中,计算设备3200包括采用集成电路(integratedcircuit,“ic”)(诸如,片上系统(“soc”或“soc”))的移动计算设备,该集成电路将计算设备3200的各种硬件和/或软件部件集成在单个芯片上。计算设备3200可以是诸如图1中的处理系统100之类的计算设备。271.计算设备3200包括图形处理器3204。图形处理器3204表示本文中描述的任何图形处理器。在一个实施例中,图形处理器3204包括缓存3214,该缓存3214可以是单个缓存,或可被划分为缓存存储器的多个片段,该缓存3214包括但不限于任何数量的l1缓存、l2缓存、l3缓存或l4缓存、渲染缓存、深度缓存、采样器缓存、和/或着色器单元缓存。在一个实施例中,缓存3214可以是与应用处理器3206共享的最后一级缓存。272.在一个实施例中,图形处理器3204包括图形微控制器,该图形微控制器实现用于图形处理器的控制和调度逻辑。控制和调度逻辑可以是由图形微控制器3215执行的固件。固件可以在引导时由图形驱动器逻辑3222加载。固件也可以被编程到电子可擦除可编程只读存储器,或从图形微控制器3215内的闪存存储器设备加载。固件可以启用gpuos3216,该gpuos3216包括设备管理逻辑3217、设备驱动器逻辑3218、以及调度器3219。gpuos3216还可包括图形存储器管理器3220,该图形存储器管理器3220可补充或替代图形驱动器逻辑3222内的图形存储器管理器3221。273.在各个实施例中,可以通过gpuos3216的图形存储器管理器3220、图形驱动器逻辑3222内的图形存储器管理器3221、或gpuos3216和/或图形驱动器逻辑3222的另一部件来实现本文描述的压缩数据的虚拟存储器地址管理。274.图形处理器3204还包括gpgpu引擎3244,该gpgpu引擎3244包括如本文所述的一个或多个图形引擎、图形处理器核心、以及其他图形执行资源。此类图形执行资源能以包括但不限于以下各项的形式来呈现:执行单元、着色器引擎、片段处理器、顶点处理器、流式多处理器、图形处理器集群、或适于处理图形资源或图像资源或在异构处理器中执行通用计算操作的计算资源的任何集合。gpgpu引擎3244的处理资源可被包括在连接到衬底的硬件逻辑的多个片内,如图11b-图11d所示。gpgpu引擎3244可以包括gpu片3245,该gpu片3245包括图形处理和执行资源、缓存、采样器等。gpu片3245还可以包括本地易失性存储器,或者可以与一个或多个存储器片耦合,例如,如图3b-图3c所示。275.gpgpu引擎3244还可包括一个或多个特殊片3246,这一个或多个特殊片3246包括例如非易失性存储器片3256、网络处理器片3257、和/或通用计算片3258。gpgpu引擎3244还包括矩阵乘法加速器3260。通用计算片3258还可包括用于加速矩阵乘法操作的逻辑。非易失性存储器片3256可包括非易失性存储器单元和控制器逻辑。非易失性存储器片3256的控制器逻辑可由设备管理逻辑3217或设备驱动器逻辑3218来管理。网络处理器片3257可包括网络处理资源,该网络处理资源耦合至计算设备3200的输入/输出(i/o)源3210内的物理接口。网络处理器片3257可由设备管理逻辑3217或设备驱动器逻辑3218中的一个或多个来管理。gpu片3245中的任一个或一个或多个特殊片3246可以包括具有多个堆叠的小芯片的有源基底,如本文所述。276.矩阵乘法加速器3260是模块化可缩放稀疏矩阵乘法加速器。矩阵乘法加速器3260可包括多个处理路径,其中每个处理路径包括多个管线阶段。每个处理路径可执行单独的指令。在各实施例中,矩阵乘法加速器3260可具有本文中描述的矩阵乘法加速器中的任何一个或多个的体系结构特征。例如,在一个实施例中,矩阵乘法加速器3260是带有反馈回路的四深度脉动阵列,其能配置成以四的倍数个逻辑级(例如,四个、八个、十二个、十六个等)进行操作。在一个实施例中,矩阵乘法加速器3260包括具有四级管线的两路径矩阵乘法加速器或具有两级管线的四路径矩阵乘法加速器中的一个或多个实例。矩阵乘法加速器3260可配置成用于仅对至少一个输入矩阵的非零值进行操作。在存在块稀疏度的情况下,可以绕过对整个列或子矩阵的操作。矩阵乘法加速器3260还可以包括基于这些实施例的任何组合的任何逻辑,并且特别地包括根据本文中描述的实施例的用于启用对随机稀疏度的支持的逻辑。277.如所图示,在一个实施例中,除了图形处理器3204之外,计算设备3200可进一步包括任何数量和类型的硬件部件和/或软件部件,包括但不限于应用处理器3206、存储器3208、以及输入/输出(i/o)源3210。应用处理器3206可与如参考图3a所图示的硬件图形管线交互以共享图形管线功能。经处理的数据被存储在硬件图形管线中的缓冲器中,并且状态信息被存储在存储器3208中。所得到的数据可被传递到显示控制器,以供经由诸如图3a中的显示设备318之类的显示设备进行输出。显示设备可具有各种类型,诸如,阴极射线管(cathoderaytube,crt)、薄膜晶体管(thinfilmtransistor,tft)、液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)阵列等,并且显示设备可被配置成用于经由图形用户界面来向用户显示信息。278.应用处理器3206可包括诸如图1的(一个或多个)处理器102之类的一个或多个处理器,并且可以是至少部分地用于执行计算设备3200的操作系统(os)3202的中央处理单元(cpu)。os3202可充当计算设备3200的硬件和/或物理资源与一个或多个用户之间的接口。os3202可包括用于计算设备3200中的各种硬件设备的驱动器逻辑。驱动器逻辑可以包括图形驱动器逻辑3222,该图形驱动器逻辑3222可以包括图10的用户模式图形驱动器1026和/或内核模式图形驱动器1029。图形驱动器逻辑可以包括图形存储器管理器3221,用于管理用于图形处理器3204的虚拟存储器地址空间。279.构想了在一些实施例中,图形处理器3204可作为应用处理器3206的部分(诸如,作为物理cpu封装的部分)而存在,在这种情况下,存储器3208的至少部分可由应用处理器3206和图形处理器3204共享,但是存储器3208的至少部分对于图形处理器3204可以是独占的,或者图形处理器3204可具有存储器的单独存储。存储器3208可包括缓冲器的预分配区域(例如,帧缓冲器);然而,本领域普通技术人员应当理解,实施例不限于此,并且可使用可由较低的图形管线访问的任何存储器。存储器3208可包括包含利用图形处理器3204以渲染桌面或3d图形场景的应用的各种形式的随机访问存储器(random-accessmemory,ram)(例如,sdram、sram等)。存储器控制器中枢(诸如,图1的存储器控制器116)可访问存储器3208中的数据,并将其转发到图形处理器3204以用于图形管线处理。存储器3208可变得对计算设备3200内的其他部件可用。例如,在软件程序或应用的实现方式中,从计算设备3200的各种i/o源3210接收到的任何数据(例如,输入图形数据)在由一个或多个处理器(例如,应用处理器3206)操作之前可临时被排队到存储器3208中。类似地,软件程序确定应当从计算设备3200通过计算系统接口中的一个计算系统接口被发送到外部实体或者应当被存储到内部存储元件内的数据在被传送或被存储之前通常临时被排队在存储器3208中。280.i/o源可以包括诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器、网络设备等之类的设备,并且可以经由如参考图1中的平台控制器中枢130进行附连。附加地,i/o源3210可包括被实现用于将数据传递到计算设备3200和/或从计算设备3200传递数据的一个或多个i/o设备(例如,网络适配器);或者被实现用于计算设备3200内的大规模非易失性存储装置的一个或多个i/o设备(例如,ssd/hdd)。包括字母数字和其他键的用户输入设备可用于将信息和命令选择传递到图形处理器3204。另一类型的用户输入设备是用于将方向信息和命令选择传递到gpu并用于控制显示设备上的光标移动的光标控件,诸如,鼠标、轨迹球、触摸屏、触摸板、或光标方向键。可采用计算设备3200的相机和话筒阵列来观察姿势、记录音频和视频,并且接收和传送可视命令和音频命令。281.i/o源3210可包括一个或多个网络接口。网络接口可包括相关联的网络处理逻辑和/或与网络处理器片3257耦合。一个或多个网络接口可提供对以下各项的访问:lan、广域网(wideareanetwork,wan)、城域网(metropolitanareanetwork,man)、个域网(personalareanetwork,pan)、蓝牙、云网络、蜂窝或移动网络(例如,第三代(3rdgeneration,3g)、第四代(4thgeneration,4g)、第五代(5thgeneration,5g)等)、内联网、互联网等。(一个或多个)网络接口可包括例如具有一个或多个天线的无线网络接口。(一个或多个)网络接口也可包括例如用于经由网络电缆与远程设备通信的有线网络接口,网络电缆可以是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。282.(一个或多个)网络接口可例如通过遵照ieee802.11标准来提供对lan的访问,并且/或者无线网络接口可例如通过遵照蓝牙标准来提供对个域网的访问。还可支持其他无线网络接口和/或协议,包括先前版本和后续版本的标准。附加于或替代于经由无线lan标准的通信,(一个或多个)网络接口可使用例如以下协议来提供无线通信:时分多址(timedivision,multipleaccess,tdma)协议、全球移动通信系统(globalsystemsformobilecommunications,gsm)协议、码分多址(codedivision,multipleaccess,cdma)协议和/或任何其他类型的无线通信协议。283.应当明白,对于某些实现方式,比在上文中所描述的示例更少或更多地配备的系统可以是优选的。因此,取决于多种因素,本文中描述的计算设备的配置可因实现方式而异,这些因素诸如,价格约束、性能要求、技术改进、或其他情况。示例包括(但不限于)移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(personalcomputer,pc)、桌面型电脑、膝上型电脑、笔记本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、小型计算机、大型计算机、超级计算机、网络装置、web装置、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、电视机、数字电视、机顶盒、无线接入点、基站、订户站、移动订户中心、无线电网络控制器、路由器、中枢、网关、桥接器、交换机、机器、或其组合。284.实施例可以被提供为例如计算机程序产品,该计算机程序产品可包括一种或多种机器可读介质,该一种或多种机器可读介质具有被存储于其上的机器可执行指令,该机器可执行指令在由一个或多个机器(诸如,计算机、计算机的网络或其他电子设备)执行时可使得该一个或多个机器执行根据本文中所描述的实施例的操作。机器可读介质可包括但不限于:软盘、光盘、cd-rom(致密盘只读存储器)以及磁光盘、rom、ram、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、磁卡或光卡、闪存存储器、或者适合于存储机器可执行指令的其他类型的介质/机器可读介质。285.此外,实施例可作为计算机程序产品被下载,其中,经由通信链路(例如,调制解调器和/或网络连接)、借助于在载波或其他传播介质中实例化和/或由载波或其他传播介质调制的一个或多个数据信号,可将程序从远程计算机(例如,服务器)传输至作出请求的计算机(例如,客户端)。286.贯穿本文档,术语“用户”可以可互换地被称为“观看者”、“观察者”、“人”、“个人”、“终端用户”,等等。应当注意,贯穿本文档,如“图形域”之类的术语可以与“图形处理单元”、“图形处理器”或简称为“gpu”可互换地引用,并且类似地,“cpu域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简称为cpu”可互换地引用。287.应当注意的是,贯穿本文档,可以可互换地使用如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等之类的术语。应当进一步注意,贯穿本文档,可以可互换地使用如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等之类的术语。并且,贯穿本文档,可以可互换地使用如“作业”、“输入”、“请求”、“消息”等之类的术语。288.构想了贯穿本文档可以互换地引用如“请求”、“查询”、“作业”、“工作”、“工作项”和“工作负载”之类的术语。类似地,“应用”或“代理”可以指代或包括通过应用编程接口(applicationprogramminginterface,api)提供的计算机程序、软件应用、游戏、工作站应用等,api诸如自由渲染api,诸如开放图形库(opengraphicslibrary,)、开放计算语言(opencomputinglanguage,)、11、12等,其中“调遣”可以互换地称为“工作单元”或“绘制”,并且类似地,“应用”可以互换地称为“工作流”或简单地称为“代理”。例如,诸如三维(three-dimensiona,3d)游戏的工作负载之类的工作负载可以包括并发出任何数量和类型的“帧”,其中,每个帧可以表示图像(例如,帆船、人脸)。进一步地,每个帧可以包括并提供任何数量和类型的工作单元,其中,每个工作单元可以表示由其对应帧表示的图像(例如,帆船、人脸)的一部分(例如,帆船的桅杆、人脸的前额)。然而,为了一致性,贯穿本文档,每一项可以由单个术语(例如,“调遣”、“代理”等)来引用。289.本文中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定的特征、结构或特性,但是每个实施例可以不一定包括该特定的特征、结构或特性。而且,此类短语不一定是指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。290.在上文描述的各实施例中,除非另外专门指出,否则,诸如短语“a、b或c中的至少一个”之类的分隔语言旨在被理解为意味着a、b、或c、或其任何组合(例如,a、b、和/或c)。由此,分隔语言不旨在也不应当被理解为暗示给定的实施例要求a中的至少一个、b中的至少一个或c中的至少一个各自都存在。类似地,以“a、b或c中的至少一者”的形式列出的项可以意指(a);(b);(c);(a和b);(b和c);或(a、b和c)。291.在一些实施例中,如“显示屏”和“显示表面”之类的术语可互换地用于指代显示设备的可见部分,而显示设备的其余部分可以被嵌入到诸如智能电话、可穿戴设备等之类的计算设备中。构想到并且应当注意,实施例不限于任何特定的计算设备、软件应用、硬件部件、显示设备、显示屏或表面、协议、标准等。例如,实施例可被应用于任何数量和类型的计算机上的任何数量和类型的实时应用,并且可以与任何数量和类型的计算机上的任何数量和类型的实时应用一起使用,任何数量和类型的计算机诸如桌面型电脑、膝上型电脑、平板计算机、智能电话、头戴式显示器、以及其他可穿戴设备等。进一步地,例如,使用这种新颖技术渲染场景以实现高效性能的范围可以从诸如桌面合成之类简单场景到诸如3d游戏、增强现实应用等之类的复杂场景。292.本文所述的实施例提供了一种模块化并行处理器,包括有源基础管芯以及多个小芯片,该有源基础管芯包括硬件逻辑、互连逻辑和多个小芯片插槽,该多个小芯片垂直地堆叠在有源基础管芯上并与有源基础管芯的多个小芯片插槽耦合。多个小芯片在模块化并行处理器的组装期间是可互换的并且包括具有多个不同功能单元的硬件逻辑小芯片组和具有多个不同存储器设备的存储器小芯片组。硬件逻辑小芯片和存储器小芯片经由有源基础管芯内的互连逻辑互连。293.进一步的实施例提供了一种方法,包括:访问模块化并行处理器的功能规范;根据模块化并行处理器的功能规范为模块化并行处理器确定多个小芯片集合;根据与该多个小芯片集合相关联的孔径大小集合来确定基础小芯片管芯配置;以及使用基础小芯片管芯配置和多个小芯片集合来对模块化并行处理器进行配置以用于制造。294.本文还描述了一种模块化并行处理器及其相关联的制造方法,其中并行处理器由多个小芯片组装,这些小芯片填充有源基础小芯片管芯的多个小芯片插槽。多个小芯片被测试以确定小芯片的特性,诸如小芯片的功能单元的数量或功耗度量。多个小芯片插槽可被配置成用于由多个小芯片的一个或多个区块填充,其中每个区块具有预定集体值。预定集体值可以是区块内的功能执行核心的总数或该区块的集体功率度量。295.一个实施例提供了一种并行处理器,包括有源基础小芯片管芯以及多个小芯片,该有源基础小芯片管芯包括硬件逻辑、互连逻辑和多个小芯片插槽,该多个小芯片垂直地堆叠在有源基础小芯片管芯上。多个小芯片与有源基础小芯片管芯的多个小芯片插槽耦合并且在并行处理器的组装期间是可互换的。多个小芯片包括第一组小芯片和第二组小芯片,第一组小芯片和第二组小芯片各自包括具有分别不相等数量的执行核心的小芯片,这些执行核心总计为预定数量的执行核心。296.一个实施例提供了一种方法,包括:从小芯片的多个分拣单元中选择小芯片以创建集体具有第二功率度量的多组小芯片,小芯片的多个分拣单元中的小芯片已被测试以确定第一功率度量;利用所选择的小芯片填充基础小芯片管芯的多个小芯片插槽以创建多个小芯片的一个或多个区块,该多个小芯片的一个或多个区块具有第二功率度量;以及在基础小芯片管芯上配置功率递送系统,该功率递送系统根据第二功率度量向多个小芯片的一个或多个区块递送功率。297.一个实施例提供了一种并行处理系统,包括第一有源基础小芯片管芯以及与第一有源基础小芯片管芯耦合的第二有源基础小芯片管芯,该第一有源基础小芯片管芯包括第一硬件逻辑和第一多个小芯片插槽,该第一多个小芯片插槽利用第一多个小芯片来填充,第一多个小芯片具有分别不相等数量的执行核心,这些执行核心总计为预定数量的执行核心,该第二有源基础小芯片管芯包括第二硬件逻辑和第二多个小芯片插槽。第二多个小芯片插槽利用第二多个小芯片来填充,第二多个小芯片具有分别不相等的功率度量和等于第一预定值的集体功率度量。298.说明书和附图应被认为是说明性而非限制性意义的。本领域技术人员将明白,本文中描述的实施例的广泛技术能以各种形式来实现。因此,尽管已结合其示例描述了实施例,但实施例的真实范围不应当限于此,因为在研究附图、说明书和所附权利要求书之后,其他修改对于本领域技术人员将变得显而易见。当前第1页12当前第1页12
技术特征:
1.一种并行处理器,包括:有源基础小芯片管芯,所述有源基础小芯片管芯包括硬件逻辑、互连逻辑和多个小芯片插槽;以及多个小芯片,所述多个小芯片垂直地堆叠在所述有源基础小芯片管芯上并与所述有源基础小芯片管芯的所述多个小芯片插槽耦合,所述多个小芯片在所述并行处理器的组装期间能互换,其中,所述多个小芯片包括第一组小芯片和第二组小芯片,所述第一组小芯片和所述第二组小芯片各自包括具有分别不相等数量的执行核心的小芯片,这些执行核心总计为预定数量的执行核心。2.如权利要求1所述的并行处理器,附加地包括线程调遣器,所述线程调遣器被配置成用于根据分别与所述第一组小芯片和所述第二组小芯片相关联的所述预定数量的执行核心将线程调遣到所述第一组小芯片和所述第二组小芯片。3.如权利要求2所述的并行处理器,其中,所述预定数量的执行核心在所述第一组小芯片与所述第二组小芯片之间是相等的。4.如权利要求1-3中的任一项所述的并行处理器,其中,所述第一组小芯片或所述第二组小芯片包括:第一小芯片,所述第一小芯片具有第一数量的功能执行核心;以及第二小芯片,所述第二小芯片具有第二数量的功能执行核心和第三数量的无功能执行核心。5.如权利要求4所述的并行处理器,其中,所述第一组小芯片或所述第二组小芯片附加地包括具有第四数量的功能执行核心和第五数量的保留的执行核心的第三小芯片。6.如权利要求5所述的并行处理器,其中,所述第五数量的保留的执行核心被保留用于现场修复。7.如权利要求1或6所述的并行处理器,其中,所述多个小芯片插槽具有多个不同的管芯孔径大小。8.一种在模块化并行处理器的基础小芯片管芯上配置功率递送系统的方法,所述方法包括:从多个小芯片分拣单元中选择小芯片以创建集体具有第二功率度量的多组小芯片,所述多个小芯片分拣单元中的所述小芯片已被测试以确定第一功率度量;利用所选择的小芯片填充基础小芯片管芯的多个小芯片插槽以创建多个小芯片的一个或多个区块,所述多个小芯片的一个或多个区块具有第二功率度量;以及在所述基础小芯片管芯上配置功率递送系统,所述功率递送系统根据所述第二功率度量向所述多个小芯片的一个或多个区块递送功率。9.如权利要求8所述的方法,进一步包括,在从所述多个分拣单元中选择所述小芯片之前,基于为所述小芯片确定的所述第一功率度量来将小芯片分类到所述多个分拣单元中。10.如权利要求8所述的方法,其中,所述第一功率度量包括小芯片动态电容或峰值功耗。11.如权利要求10所述的方法,其中,所述第二功率度量包括所述多个小芯片的集体小芯片动态电容或所述多个小芯片的集体峰值功耗。
12.如权利要求11所述的方法,其中,所述第一功率度量或所述第二功率度量基于功耗与频率之间的关系。13.如权利要求11所述的方法,其中,所述小芯片包括用于执行模块化并行处理器的操作的功能单元,并且所述第一功率度量与小芯片的功能单元的类型和数量相关。14.如权利要求11所述的方法,其中,在所述基础小芯片管芯上配置所述功率递送系统包括为与多个小芯片的区块相关联的所述多个小芯片插槽配置电压调节器,所述电压调节器根据针对所述多个小芯片的区块的所述第二功率度量进行配置。15.一种系统,包括用于执行如权利要求8-14中的任一项所述的方法的装置。16.一种并行处理系统,包括:第一有源基础小芯片管芯,所述第一有源基础小芯片管芯包括第一硬件逻辑和第一多个小芯片插槽,其中所述第一多个小芯片插槽利用第一多个小芯片来填充,所述第一多个小芯片具有分别不相等数量的执行核心,这些执行核心总计为预定数量的执行核心;以及第二有源基础小芯片管芯,所述第二有源基础小芯片管芯与所述第一有源基础小芯片管芯耦合,所述第二有源基础小芯片管芯包括第二硬件逻辑和第二多个小芯片插槽,其中所述第二多个小芯片插槽利用第二多个小芯片来填充,所述第二多个小芯片具有分别不相等的功率度量和等于第一预定值的集体功率度量。17.如权利要求16所述的并行处理系统,其中,根据所述第二多个小芯片的所述集体功率度量来配置所述第二有源基础管芯的功率递送系统。18.如权利要求16所述的并行处理系统,其中,所述第一多个小芯片被垂直地堆叠在所述第一有源基础管芯上并经由所述第一多个小芯片插槽与所述第一硬件逻辑耦合。19.如权利要求18所述的并行处理系统,其中,所述第二多个小芯片被垂直地堆叠在所述第二有源基础管芯上并经由所述第一多个小芯片插槽与所述第二硬件逻辑耦合。20.如权利要求16所述的并行处理系统,其中,所述第一多个小芯片具有分别不相等的功率度量和等于第二预定值的集体功率度量。21.如权利要求20所述的并行处理系统,其中,根据所述第一多个小芯片的所述集体功率度量来配置所述第一有源基础管芯的功率递送系统。
技术总结
本发明涉及用于跨多个小芯片配置的统一性的小芯片体系结构分块。本文描述了一种模块化并行处理器及其相关联的制造方法,其中并行处理器由多个小芯片组装,这些小芯片填充有源基础小芯片管芯的多个小芯片插槽。多个小芯片被测试以确定小芯片的特性,诸如小芯片的功能单元的数量或功耗度量。多个小芯片插槽可被配置成用于由多个小芯片的一个或多个区块填充,其中每个区块具有预定集体值。预定集体值可以是区块内的功能执行核心的总数或该区块的集体功率度量。体功率度量。体功率度量。
技术研发人员:M
受保护的技术使用者:英特尔公司
技术研发日:2023.02.23
技术公布日:2023/9/25
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/