具有多个着色器引擎的处理单元的制作方法

文档序号:6351002阅读:182来源:国知局
专利名称:具有多个着色器引擎的处理单元的制作方法
技术领域
本发明通常针对在计算机系统中实施的计算操作。更具体而言,本发明是针对在计算机系统执行计算操作的处理单元。
背景技术
图形处理单元(GPU)是一种适用于执行图形处理任务的复杂集成电路 (integrated circuit)。举例而言,GPU能依终端使用者应用所需的执行图形处理任务,例如视讯游戏(video-game)。此GPU可以是离散的(即分散)装置及/或包装件或也可能包含在相同装置内及/或包装件中如另一个处理器(如,CPU)。举例而言,GPU常集成于路由或桥接装置,举例而言,如北桥装置。在上述例子中,所述终端使用者应用与GPU间有多层的软件。所述终端使用者应用是与应用编程接口(API)相连接。API可使终端使用者应用以标准化格式输出图形数据及命令,而不是取决于GPU的格式。市售API有几种类型,包含由微软(Microsoft Corporation of Redmond)开发的 DirectX 、Khronos 集团发表的 Washington and OpenGL 0所述API是与驱动程序相连接。所述驱动程序将从API所接收的标准程序码转换为可被GPU理解的指令的本机格式。所述驱动程序通常由GPU的制造商写入,接着GPU执行自驱动程序产生的指令。藉由GPU所执行的图形处理任务,其通常涉及复杂的数学运算,如矩阵或向量的运算。为了有效的执行这些运算,GPU通常包含处理组件的阵列,称之为着色器引擎。处理组件的阵列被组织为一种单一指令多重数据(SIMD)装置。所述着色器引擎执行指令的顺序,称之为着色器程序。所述必需执行着色器程序的数据是平行分散于着色器引擎中的不同处理组件。不同处理组件可能在不同的数据片段执行相同的操作。因此,GPU可以比典型的中央处理单元(CPU)更快的执行图形处理任务所需的复杂数学计算。过去,GPU必需包含不同的着色器引擎以执行完成单一图形处理任务所需的不同着色器程序。举例而言,单一图形处理任务可能需要至少两个不同的着色器程序的执行用于操作三角形的顶点的顶点着色器;以及用于决定即将显示于显示装置(如,电脑萤幕)上的像素的像素着色器。为了执行这两组计算,典型的GPU包含两个不同的着色器引擎(i) 第一着色器引擎,用于执行所述顶点着色器;以及(ii)第二着色器引擎,用于执行所述像素着色器。最近,GPU已经被设计成含有一整合着色器引擎。整合着色器引擎包含能执行数个不同类型的着色器程序的处理组件的阵列。整合着色器引擎,举例而言,可利用在整合着色器的处理组件的阵列之间重复循环的每一个着色器,而不是在管线中不同着色器引擎中进行的方式,来执行顶点着色器、几何着色器及像素着色器。除了典型的图形处理任务(如, 顶点着色器、几何着色器、像素着色器等)之外,整合着色器引擎最近也可用于执行通用计算操作(如,数学算法、物理模拟等)。为了保持竞争力,GPU的计算能力必需不断增加以跟上顾客的需求及API与终端使用者应用的要求。一种增加GPU的计算能力的方式为增加着色器引擎的阵列中的处理组件的数量。然而,为了要提供数据及工作负荷给数量已增加的处理组件,馈送处理组件的输入/输出总线也必须相对的增加,此举仅是为了维持GPU现有的效能。为解决GPU的计算能力增加的问题,可能的方法为增加着色器引擎中的SIMD的宽度。然而,这个解决方法会有SIMD分歧的问题。当SIMD装置上有不同线程采取着色器程序的分支指令(branch instruction)中的不同方向运行时,则会发生SIMD分歧。举例而言, 着色器程序可能具有如表1所示的分支指令。会发生SIMD分歧,举例而言,若运行于SIMD 装置的第一线程输入分支指令的“then”段(如,operation 1),且行于SIMD装置的第二线程运输入分支指令的“else”段(如,operation 2)。在此条件下,所述第二线程(输入 “else”段)将必须等待第一线程(输入“if”语句)。与SIMD分歧有关的等待需耗费着色器程序额外的时间来执行。由于SIMD分歧潜在的问题,若想增加GPU的计算能力,单纯增加SIMD的宽度可能不是一个可行的选择。
if(condition) {
operation 1 ;
}
else {
operation 2 ;
}表1.其它可能可增加GPU计算能力的方法,为在着色器引擎的阵列中增加处理组件 (如,SIMD)的堆迭。然而,此解决方法因为几个理由而有问题。作为一个初步的问题,增加处理组件的堆迭可能导致芯片的加长,可能产生制造上的问题。此外,增加处理组件的堆迭会产生与提供工作负荷到堆迭相关的增加的输入延迟以及与从堆迭路由结果有关的增加的输出延迟。此外,提供数据(如,状态数据)至堆迭时将有增加的延迟。因此,对于增加 GPU的计算能力,单纯增加处理组件堆迭的厚度可能不是一个可行的选择。根据前述,需要开发一种增加计算能力的GPU及其应用。

发明内容
本发明提供一满足上述已增加计算能力的处理器及其应用。而不是增加单一着色器引擎中处理器的宽度及厚度,于本发明的具体实施例中本发明揭示一种具有多个着色器引擎的处理器。举例而言,根据本发明的具体实施例,所述处理器包含第一着色器引擎及第二着色器引擎。第一着色器引擎建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器。第二着色器引擎建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器。所述第一及第二着色器引擎两者亦建构成处理通用计算着色器及非像素图形着色器。所述处理器亦包含第一级(Li)数据高速缓存,其是耦接至并设置于所述第一及第二着色器引擎之间。
在另一具体实施例中,所述处理器定义为软件。于此具体实施例,计算机程序产品包含含有指令的计算机可读取储存媒介,当执行所述指令于计算器装置时定义所述处理
ο在进一步的具体实施例中,所述处理器包含计算系统。在此具体实施例中,所述计算系统包含存储器、第一处理单元、第二处理单元及总线,所述总线是与所述存储器、所述第一处理单元及所述第二处理单元耦接。计算机系统的例子包含,而非限制于,超级电脑、 桌上型电脑、膝上型电脑、视讯游戏装置、嵌入式装置、手提装置(如,行动电话、智能型手机、MP3播放器、照相机等)、或其它包含或建构有处理器的装置。仍然在进一步的具体实施例中,提供一种用于在处理器中处理着色器的方法。依据此方法,第一着色器引擎处理用于即将显示于显示装置上的像素的第一子集,且第二着色器引擎处理用于即将显示于所述显示装置上的像素的第二子集。所述第一及第二着色器引擎中两者亦处理通用计算着色器及非像素图形着色器。本发明进一步的特征及优点在于,本发明的具体实施例除结构外其操作方法也具有各种不同的态样,参考附图详细说明于下,而非限制于此所描述的特定具体实施例。下述具体实施例仅供说明之用。基于本案的教示该领域技术人员可轻易思及本发明额外的具体实施例。


下列附图为并为说明书的一部分,连同说明书以详细说明本发明,并进一步解释本发明的原理,使该领域技术人员可制作及使用本发明。图1为依据本发明的具体实施例的计算系统的例示方块图。图2为依据本发明的具体实施例的具有多个分割画面、整合着色器引擎的GPU的例示方块图。图3为图2所述的GPU所包含的输入逻辑的例示方块图。图4A及4B为图2所述的GPU的分割画面、整合着色器引擎例示方块图。图5为图2所述的GPU的着色器引擎共享的第一级(Li)数据高速缓存的例示方块图。图6为图2的GPU含有的芯片外存储器存取逻辑的例示方块图。根据下文详细的描述配合图说,及全文所述的参考组件符号能使本发明的特征及优点更征明确。在图说中,相同的参考数字通常指出相同、功能相似及/或结构相似的组件。第一次出现的组件,其参考数字显示于最左边的数字。
具体实施例方式I.概述本发明所显示的具体实施例,是针对一种于具有多个着色器引擎的处理单元及其应用。于下列详细描述中提及的“一种具体实施例”、“具体实施例”、“例示实施例”等术语, 是指描述具体实施例可能包含的特定的特点、结构或特征,但每个具体实施例未必包含所有特定的特点、结构或特征。此外,这些术语未必论述相同具体实施例。此外,当一特定的特点、结构或特征描述于相关的具体实施例中,无论是否详细描述其它具体实施例,该领域技术人员可轻易推知影响本发明特点、结构或特征相关的其它具体实施例。根据具体实施例,提供具有多个着色器引擎的处理器以增加处理器的计算能力。 设计一种具有多个着色器引擎的处理器,而不是单纯增加单一着色器引擎的宽度及/或厚度,促进进一步突破较大量的SIMD。在具体实施例中,多个着色器引擎的数据共享存取至通用的高速缓存系统,以减少提供数据至着色器引擎相关的延迟。于此具体实施例中,多个着色器引擎及高速缓存系统可建构成具有实质上方形平面设计的处理器。举例而言,所述高速缓存系统(或至少其中一部分)可放置于中央位置,以着色器引擎的一半从一端存取高速缓存系统且着色器引擎的另一半由另一端存取高速缓存系统。处理器的着色器引擎对非像素着色器及像素着色器的操控是不同的。对于非像素图形着色器,处理器的每个着色器引擎是相同的。换言之,每个着色器引擎建构成处理通用计算着色器(举例而言,如数学算法、物理模拟等)及非像素图形着色器(举例而言,如顶点着色器、几何着色器、嵌入式着色器等)。于具体实施例中,所述非像素图形着色器以循环的方式(round-robin fashion)传送至多个着色器引擎。对于像素着色器,处理器的每个着色器引擎建构成处理即将显示于显示装置上的像素的特定子集。显示装置的像素被划分为与着色器引擎数量相对应的子集数量。举例而言,于具体实施例中,所述处理器包含两个着色器引擎,显示装置的像素被划分为像素的第一及第二子集(如,棋盘模式(checkerboard pattern),其棋盘模式的偶数像素包括第一子集以及棋盘模式的奇数像素包括第二子集。于此具体实施例中,所述处理器的第一着色器引擎建构成用于处理第一子集的像素,及所述处理器的第二着色器引擎建构成用于处理第二子集的像素。所述处理器可能亦包括两个以上(如,四个、八个等)的着色器引擎。在此种情况下,所述显示装置的像素被划分为两个以上(如,四个、八个等)的子集,且每个像素的子集由处理器的特定的着色器引擎处理。关于例示处理器进一步详细的描述,请参照下述之本发明的具体实施例。以描述为前提,然而,有助于描述在此处理器上可实行的具体实施例系统。II.例示系统图1为依据本发明的具体实施例的计算系统100的例示方块图。计算系统100包含CPU 102,GPU 110,且可选择包括协处理器(Coprocessor) 112。此外,计算系统100包含可被CPU 102、GPU 110或协处理器112存取的系统存储器104。在具体实施例中,计算系统100可包括超级电脑、桌上型电脑、膝上型电脑、视讯游戏装置、嵌入式装置、手提装置 (如,行动电话、智能型手机、MP3播放器、照相机、GPS装置等)、或其它包含或建构有GPU的装置。尽管图1没有明确的说明,所述计算系统100可包含用于显示显示内容(如,图形、视频等)的显示装置(如,阴极射线管(cathode-ray tube)、液晶显示器、等离子显示器等)。GPU 110及协处理器112通过总线114连接至CPU 102及所述系统存储器。总线 114可以为任何型式的总线用于所述计算系统,包含周边组件接口(PCI)总线、绘图加速端口(AGP)总线、高速PCI (PCIE)总线或无论现所使用或未来开发的其它任一型式的总线。GPU 110及协处理器112通过执行某些特殊功能来帮助CPU 102,因此通常比CPU 102执行那些软件更快。举例而言,GPU 110可处理数据并列计算任务,例如举例而言,图形处理任务(包含,举例而言,顶点着色器、几何着色器、像素着色器等)以及通用计算任务 (包含,举例而言,数学算法、物理模拟等)。更详而言,根据本发明的具体实施例,GPU 110包含多个着色器引擎。相较于单一着色器引擎的GPU,多个着色器引擎可增加GPU 110的计算能力。协处理器112可能包括,但非限制于,浮点协处理器、GPU、网路连结协处理器及其它类型的协处理器,且为该领域技术人员显而易知的处理器。除了系统存储器104外,计算系统100进一步包含区域存储器106及区域存储器 108。区域存储器106耦接至GPU 110,其可能也与总线114耦接。区域存储器108耦接至协处理器112且可能也耦接至总线114。为了使某些数据(如,使用频繁的数据)的存取可能比储存在系统存储器的数据快,区域存储器106及108可分别耦接至GPU 110及协处理器 112。在具体实施例中,GPU 110及协处理器112与CPU 102平行解码指令,且只有执行那些用于GPU 110及协处理器102的指令。在另一具体实施例中,CPU 102发送用于GPU 110及协处理器102的指令至各自命令缓冲器。III例示处理器图2为依据本发明的具体实施例的具有多个着色器引擎的例示处理器的方块图。 仅说明目的而非限制于,下所描述的例示处理器称为GPU。然而,该领域技术人员会了解,本发明所述的具体实施例可能应用于其它型式的处理器,如视讯处理单元,中央处理单元、协处理器及其它包含多个着色器引擎的类似处理单元。在不悖离本发明的范围及精神下考虑这些其它型式的处理器。如图2所示的具体实施例,GPU 110包含两个着色器引擎-第一着色器引擎210A 及第二着色器引擎210B。着色器引擎210整合为非像素着色器,表示每个着色器引擎210 都建构成用于执行非像素图形着色器(如,顶点着色器、几何着色器、嵌入式着色器等)以及通用计算着色器(如,数学算法、物理模拟等)。每个非像素着色器仅在着色器引擎210 的处理组件的阵列之间重复循环,而不是在管线中不同着色器引擎进行。不同于非像素图形着色器,着色器引擎210并非整合为像素着色器。所指像素着色器,每个着色器引擎210建构成用于执行即将显示于显示装置的像素的子集的着色程序。举例而言,第一着色器引擎210A可建构为执行即将显示于显示装置的像素的第一子集 (如,一半)的着色器程序,以及第二着色器引擎210B可建构为执行即将显示于显示装置的像素的第二子集(如,另一半)的着色程序。尽管图2绘制的GPU仅有两个着色器引擎,但可体会的此仅用于说明而非限制本发明。在一具体实施例中,GPU 110可包括两个以上(如,四个、八个、十六个等)着色器引擎。在此具体实施例中,一半的着色器引擎位于数据路径的一端(如,数据高速缓存206), 以及另一半的着色器引擎位于数据路径的另一端(如,数据高速缓存206)。因为一半的着色器引擎位于数据路径的一端,且另一半的着色器引擎位于数据路径的另一端,则GPU 110 可能建构成实质的方形的平面设计。除了着色器引擎210,图2说明所述的GPU 110也包含输入逻辑204、高速缓存系统(包含第一级(Li))数据高速缓存206、(第二级(U))数据高速缓存216),以及输出逻辑(包含路由选择逻辑212A-B、交叉开关214,以及芯片外存储器存取逻辑218A-B)。每个组件详述于下文。A.输入逻辑204输入逻辑204执行图形处理任务及通用计算任务的前处理,且发配任务至着色器引擎210。图3为说明输入204的具体实施例。如图3的具体实施例所述,输入逻辑204包含命令处理器302、顶点分析器310、基元组译器312、第一扫描转换器314A,第二扫描转换器314B、第一输入控制块316A及第二输入控制块316B。命令处理器302接收来自CPU的图形处理及通用计算任务。接着命令处理器302 将这些任务传至顶点分析器310。顶点分析器310识别关于图形处理及/或通用计算任务的所有着色器程序。当各个着色器程序可在着色器引擎210中启动时,顶点分析器310基于将会有效的输入及输出数据时排程。举例而言,特殊的图形处理任务可能需要第一着色器程序及第二着色器程序来执行,其中第二着色器程序取决于第一着色器程序产生的数据。根据本实施例,顶点分析器310辨识第一及第二着色器程序且排程第一着器色程序执行于第二着色器程序之前,以便在第二着色器程序启动时,第二着色器程序的数据有效。除了排程着色器程序的启动外,顶点分析器310也产生顶点缓冲器的指标且包括连接数据。所述指标是用于读取来自顶点缓冲器的顶点。若顶点已经被处理且被储存于顶点缓冲器,则顶点分析器310可从顶点缓冲器读取那个顶点,所以顶点只会被处理一次。所述连接数据具体指出顶点如何结合在一起成为基元(如,三角形),以便使基元能正确的栅格化。顶点分析器310是耦接至基元组译器312及输入控制块316。传送来自顶点分析器 310的一些着色器程序至基元组译器312,且传送其它着色器程序至第一输入控制块316A 或第二输入控制块316B两者之一。尤其是,传送像素着色器至基元组译器312 ;反之,传送通用计算着色器及非像素图形着色器至输入控制块316。基元组译器312于基元被传送至扫描转换器314之前,进行前处理(如,转换、剪辑等)。如图3的具体实施例所示,基元组组译器可能收到来自顶点分析器310或路由选择逻辑212的基元。扫描转换器314遍历基元以决定像素要由不同的着色器引擎210处理。在具体实施例中,第一扫描转换器314A传送像素的第一子集(如,棋盘模式的偶数像素)至第一输入控制块316A供第一着色器引擎210A后续处理,且第二扫描转换器314B传送像素的第二子集(如,棋盘模式的基数像素)至第一输入控制块316B供第二着色器引擎210B后续处理。如上所述,输入控制块316除了接收来自扫描转换器314的像素外,输入控制块 316也接收来自顶点分析器310的非像素着色器。在具体实施例中,顶点分析器310以循环的方式将非像素着色器(如,通用计算及非像素图形着色器)传递至输入控制块316。举例而言,顶点分析器310可依序排程非像素着色器的流,包括第一非像素着色器、第二非像素着色器、第三非像素着色器、第四非像素着色器,以此类推。根据非像素着色器的循环分布, 顶点分析器310传送第一非像素着色器至第一输入控制块316A、传送第二非像素着色器至第二输入控制块316B、传送第三非像素着色器至第一输入控制块316A、传送第四非像素着色器至第二输入控制块316B,以此类推。输入控制块316决定传送特定的工作负荷至着色器引擎210的哪里。如上简短的描述且将详述于后文,每个着色器引擎210包含多个处理组件(如,SIMD)。输入控制块316 辨识哪一个处理组件(如,SIMD)可用来处理新的工作负荷且传送新的工作负荷至可用的处理组件(如,SIMD)。尤其是,第一输入控制块316A传送工作负荷至第一着色器引擎210A 的处理组件(如,SIMD),且第二输入控制块316B传送工作负荷至第二着色器引擎210B的处理组件(如,SIMD)。B.着色器引擎210图4A及4B分别说明第一着色器引擎210A及第二着色器引擎210B的范例细节。 如图4A及4B所示的具体实施例,着色器引擎210建构成相对于在两着色器引擎中的中央轴而彼此相对的镜像。如此方式,着色器引擎210可共享存取至高速缓存系统,在下文更详细的解释。如图4A及4B所示,每个着色器引擎210包含多个SIMD 406、多个全域数据共享 (LDS) 404,及序列发生器402。SIMD 406为每个着色器引擎210的数据-并列处理组件。 在具体实施例中,每个着色器引擎包含十行SIMD 406,每行包括四组具有四个组件的算术-逻辑运算单元(ALUs)。每个LDS 404储存用于SIMD 406的行的数据。序列发生器402 保持追踪SIMD406中不同着色器引擎210正处理工作负荷,使多个线程能并列执行。在具体实施例中,举例而言,超过30,000个线程可在任何一时间执行在每个着色器引擎210中。 可从高速缓存系统撷取SIMD 406所须用以执行的数据。C.高速缓存系统回到图2,所述高速缓存系统包含Ll数据高速缓存206、L2数据高速缓存216及芯片外存储器存取逻辑218。当着色器引擎210需要数据以执行着色器程序时,首先产生一至Ll数据高速缓存206的请求。若于Ll数据高速缓存206中有快取命中时(即请求的数据是在Ll数据高速缓存206中),所述数据则依据哪一个着色器引擎请求该数据而被发送至第一着色器引擎210A或第二着色器引擎210B的两者之一。若高速缓存从Ll数据高速缓存206有高速缓存缺失时(即所请求的数据不在Ll数据高速缓存206),Ll数据高速缓存206将所请求的数据发送至L2数据高速缓存216。L2数据高速缓存216是一个比Ll数据高速缓存还要大的高速缓存存储器单元,但由于他较大的空间通常耗费较长的时间判断所请求的数据是否包含在L2数据高速缓存216中。倘若有一快取命中在L2数据高速缓存 216中,而所请求的数据储存于Ll数据高速缓存206并将其发送至请求该数据的着色器引擎210。如果于L2数据高速缓存216中有高速缓存缺失,则所请求的数据必须通过芯片外存储器存取逻辑218由芯片外存储器透过撷取。图5是说明Ll数据高速缓存的具体实施例。所述具体实施例如图5所示,Ll数据高速缓存206包含对应于每个着色器引擎210的多个SIMD的多个逻辑块的行。Ll数据高速缓存206的逻辑块的每一行包含第一纹理-地址单元502A、第一纹理-数据单元504A、 纹理-快取缓存/Li对510、第二纹理-数据单元504B及第二纹理-地址单元502B。纹理-地址单元502基于来自序列发生器402的状态数据产生纹理地址。如此一来,可下载适合的纹理数据至区域存储器做后续的处理。第一纹理-地址单元502A产生用于第一着色器引擎210A的纹理地址,而第二纹理地址单元502B产生用于第二着色器引擎 2IOB的纹理地址。纹理-数据单元504过滤及回传数据至所述着色器引擎210。第一纹理-数据单元504A耦接至第一着色器引擎210A,且第二纹理-数据单元504B耦接至第二着色器引擎 210B。
纹理-高速缓存/Li对510执行数据的第一级高速缓存。如上所述,若纹理-高速缓存/Li对510中有缺失,则产生一至L2数据高速缓存216的请求。纹理-高速缓存/ Ll对510服务来自第一着色器引擎210A及第二着色器引擎210B的数据请求。以此方式, 可减少与为着色器引擎210撷取数据有关的延迟。D.输出逻辑执行着色器程序后,着色器引擎210将结果传送至输出逻辑。回到图2,所述输出逻辑包含路由选择逻辑212、交叉开关214及芯片外存储器存取逻辑218。如图2所示,第一着色器引擎210A将结果传送至第一路由选择逻辑212A,且第二着色器引擎210B将结果传送至第二路由选择逻辑212B。每个路由选择逻辑212包含输出缓冲器。为维持着色器引擎210的SIMD持续忙录,可能发送栅格化命令以外的工作负荷至着色器引擎。然而,所述着色器引擎210产生的结果最终将合并于栅格化命令中,以确保像素能正确的显示于显示装置。包含于每个路由选择逻辑212中的输出缓冲器使着色器引擎210输出栅格化命令以外的执行结果。每个路由选择逻辑212亦包括使着色器引擎210的结果以正确路线传送的逻辑。 如图2所示,路由选择逻辑212可能将来自着色器引擎210的结果传送至下列位置(i)输入逻辑204,其中,所述结果将接着由第一着色器引擎210A或第二着色器引擎210B两者之一作处理;(ii)第一芯片外存储器存取逻辑218A,其中,所述结果接着写入第一多数个芯片外存储器信道中的任一芯片外存储信道;或者(iii)第二芯片外存储器存取逻辑218A, 其中,所述结果接着写入第二多数个芯片外存储器信道中的任一芯片外存储信道。第一路由选择逻辑212A可直接传送结果至第一芯片外存储器存取逻辑218A,但需使用交叉开关 214传送结果至第二芯片外存储器存取逻辑218B。同样的,第二路由选择逻辑212B可直接传送结果至第二芯片外存储器存取逻辑218B,但需使用交叉开关214传送结果至第一芯片外存储器存取逻辑218A。于具体实施例中,交叉开关214包括三十二像素的交叉开关,其中,每一像素含有一百二十八个位。图6说明芯片外存储器存取逻辑218的详细实施例。如图6所示的具体实施例, 芯片外存储器存取逻辑218包含多个写入组合高速缓存602A-D、多个深度缓冲器604A-D、 多个色彩缓冲器606A-D、第一存储接口 608A及第二存储接口 608B。写入组合高速缓存602 合并即将写入芯片外存储器的数据,且能有效的存取至芯片外存储器。深度缓冲器604缓冲Z-测试的结果器。色彩缓冲器606缓冲混色的结果器。每个存储器接口 608包括双信道存储器控制器。由于芯片外存储器存取逻辑218包含两个双信道存储器控制器,每个芯片外存储器存取逻辑218有四个不同芯片外存储器信道可供存取。IV.例示操作在操作上,GPUl 10接收从CPU102的图形处理及通用计算任务。GPU 110的输入逻辑204以如上述的交替方式(如,循环式),传送与执行非像素着色器相关的工作负荷至第一着色器引擎210A或第二着色器引擎210B两者之一。对于像素着色器而言,输入逻辑204 传送像素的第一子集(如,棋盘模式的偶数像素)至第一着色器引擎210A以及传送像素的第二子集(如,棋盘模式的基数像素)至第二着色器引擎210B。发出要执行的工作负荷后,着色器引擎210撷取所需的数据以执行这些工作负荷。如上所述,所述数据是从高速缓存系统(包括Ll数据高速缓存206、L2数据高速缓存216及芯片外存储器存取逻辑21 撷取。接着通过路由选择逻辑212将来自着色器引擎210的结果路由至适当的位置。重要的是,交叉开关214使来自两个着色器引擎210的结果,经由第一芯片外存储器存取逻辑 218A或第二芯片外存储器存取逻辑218B两者之一写入任何芯片外存储信道。V.例示软件实现除了 GPU 110的硬件实现外,举例而言,这些GPU亦可能以配置于建构成用以储存软件(如,计算机可读取程序码)的计算器可读取媒介中的软件来实施。所述程序代码导致本发明的具体实施例的启动,包括下列具体实施例(i)本文所揭露的系统功能及技术描述(如在GPUllO执行图形处理及通用计算任务);(ii)本文所揭露的技术及系统的建构 (例如GPU 110的建构);或(iii)本文所揭露的系统的建构与功能的结合。举例而言,这些可透过一般程序语言(如C或C++)、硬件描述语言(HDL)包括 Verilog HDL、VHDL、Altera HDL(AHDL)以此类推、或其它能做程序设计及/或简图撷取工具(如电路绘制工具)来实现。所述程序码可以置于任何已知的计算机可读取媒介包括半导体、磁盘或光盘(如⑶-ROM、DVD-ROM)。因此,所述程序码可由通信网路传输,通信网络包括网际网络与网际网络。据了解,通过如上所述的系统及技术所提供的功能及/或建构的系统,表示于一核心(如GPU核心),藉由程序码据以实施亦可转化部分于硬件的集成电路生产。VI 结论应当明白的,详细说明的部分、综述及摘要部分是用于解释权利要求书。所述综述及摘要部分可能阐明一个或多个本发明的具体实施例,但并非本发明限制于该些具体实施例,因此,并非用任何方式限制本发明及附加的权利要求书。
权利要求
1.一种处理器,包括第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器;以及第二着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器;其中,所述第一及第二着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
2.根据权利要求1所述的处理器,进一步包括第一级(Li)数据高速缓存,其是耦接至并设置于所述第一及第二着色器引擎之间。
3.根据权利要求2所述的处理器,其中,所述第一着色器引擎、所述第二着色器引擎及所述Ll数据高速缓存是用于提供具有实质方形平面设计的所述处理器。
4.根据权利要求2所述的处理器,其中,所述Ll数据高速缓存是耦接至第二级(L2)数据高速缓存。
5.根据权利要求2所述的处理器,进一步包括第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器;其中,所述Ll数据高速缓存是耦接至并设置于所述第三及第四着色器引擎之间,且其中,所述第三及第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
6.根据权利要求1所述的处理器,进一步包括输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
7.根据权利要求6所述的输入逻辑,包括第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
8.根据权利要求1所述的处理器,进一步包括第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个; 以及第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
9.根据权利要求8所述的处理器,进一步包括 交叉开关,是装备有(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及( )第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
10.一种包括计算机可读取储存媒介的计算机程序产品,所述计算机可读取储存媒介含有指令,当执行所述指令于计算装置中时定义处理器,其中所述处理器包括第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器;第二着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器;以及其中,所述第一及第二着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
11.根据权利要求10所述的计算机程序产品,其中,所述处理器进一步包括第一级(Li)数据高速缓存,其是耦接至并设置于所述第一及第二着色器引擎之间。
12.根据权利要求11所述的计算机程序产品,其中,所述第一着色器引擎、所述第二着色器引擎及所述Ll数据高速缓存是用于提供具有实质方形平面设计的所述处理器。
13.根据权利要求11所述的计算机程序产品,其中,所述Ll数据高速缓存是耦接至第二级(U)数据高速缓存。
14.根据权利要求11所述的计算机程序产品,其中,所述处理器进一步包括第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器;其中,所述Ll数据高速缓存是耦接至并设置于所述第三及第四着色器引擎之间,且其中,所述第三及第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
15.根据权利要求10所述的计算机程序产品,其中,所述处理器进一步包括输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
16.根据权利要求15所述的计算机程序产品,其中,所述输入逻辑包括第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
17.根据权利要求10所述的计算机程序产品,其中,所述处理器进一步包括第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个; 以及第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
18.根据权利要求17所述的计算机程序产品,其中,所述处理器进一步包括交叉开关,是装备有(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及( )第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
19.一种用于在处理单元中处理着色器的方法,包括以下步骤在第一着色器引擎中,处理用于即将显示于显示装置上的像素的第一子集的像素着色器;在第二着色器引擎中,处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器;以及在所述第一及第二着色器中,处理通用计算着色器及非像素图形着色器。
20.根据权利要求19所述方法,进一步包括使用第一扫描转换器,识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及使用第二扫描转换器,识别即将由所述第二着色器引擎处理的所述像素的第二子集。
21.根据权利要求19所述方法,进一步包括在第三着色器引擎中,处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及在第四着色器引擎中,处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器。
22.—种计算机系统,包括 存储器;第一处理单元; 第二处理单元;以及总线,是耦接至所述存储器、所述第一处理单元及所述第二处理单元,其中,所述第二处理单元包括第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器;以及第二着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第二子集的像素着色器;其中,所述第一及第二着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
23.根据权利要求22所述计算机系统,其中,所述第二处理单元进一步包括 第一级(Li)数据高速缓存,其是耦接至并设置于所述第一及第二着色器引擎之间。
24.根据权利要求23所述计算机系统,其中,所述第一着色器引擎、所述第二着色器引擎及所述Ll数据高速缓存是用于提供具有实质方形平面设计的所述第二处理单元。
25.根据权利要求23所述计算机系统,其中,所述Ll数据高速缓存是耦接至第二级 (L2)数据高速缓存。
26.根据权利要求23所述计算机系统,其中,所述第二处理单元进一步包括第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子的像素着色器;其中,所述Ll数据高速缓存是耦接至并设置于所述第三及第四着色器引擎之间,且其中,所述第三及第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
27.根据权利要求22所述计算机系统,其中,所述第二处理单元进一步包括 输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
28.根据权利要求27所述计算机系统,其中,所述输入逻辑包括第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
29.根据权利要求22所述计算机系统,其中,所述第二处理单元进一步包括第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个; 以及第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
30.根据权利要求四所述计算机系统,其中,所述第二处理单元进一步包括 交叉开关,是装备有(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及( )第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
全文摘要
一种处理器包含第一着色器引擎及第二着色器引擎。所述第一着色器引擎建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器。所述第二着色器引擎建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器。所述第一及第二着色器引擎两者皆建构成处理通用计算着色器及非像素图形着色器。所述处理器也可包含第一级(L1)数据高速缓存,是耦接至并设置于所述第一着色器引擎及第二着色器引擎之间。
文档编号G06T15/00GK102598061SQ201080049825
公开日2012年7月18日 申请日期2010年9月3日 优先权日2009年9月3日
发明者J·T·布雷迪, M·曼托, R·C·泰勒 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1