CN102598061B - 具有多个着色器引擎的处理单元 - Google Patents
具有多个着色器引擎的处理单元 Download PDFInfo
- Publication number
- CN102598061B CN102598061B CN201080049825.2A CN201080049825A CN102598061B CN 102598061 B CN102598061 B CN 102598061B CN 201080049825 A CN201080049825 A CN 201080049825A CN 102598061 B CN102598061 B CN 102598061B
- Authority
- CN
- China
- Prior art keywords
- tinter
- engine
- pixel
- construed
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 54
- 238000004040 coloring Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims description 55
- 238000010276 construction Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 238000001801 Z-test Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一种处理器包含第一着色器引擎及第二着色器引擎。所述第一着色器引擎建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器。所述第二着色器引擎建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器。所述第一及第二着色器引擎两者皆建构成处理通用计算着色器及非像素图形着色器。所述处理器也可包含第一级(L1)数据高速缓存,是耦接至并设置于所述第一着色器引擎及第二着色器引擎之间。
Description
技术领域
本发明通常针对在计算机系统中实施的计算操作。更具体而言,本发明是针对在计算机系统执行计算操作的处理单元。
背景技术
图形处理单元(GPU)是一种适用于执行图形处理任务的复杂集成电路(integratedcircuit)。举例而言,GPU能依终端使用者应用所需的执行图形处理任务,例如视讯游戏(video-game)。此GPU可以是离散的(即分散)装置及/或包装件或也可能包含在相同装置内及/或包装件中如另一个处理器(如,CPU)。举例而言,GPU常集成于路由或桥接装置,举例而言,如北桥装置。在上述例子中,所述终端使用者应用与GPU间有多层的软件。所述终端使用者应用是与应用编程接口(API)相连接。API可使终端使用者应用以标准化格式输出图形数据及命令,而不是取决于GPU的格式。市售API有几种类型,包含由微软(MicrosoftCorporationofRedmond)开发的DirectX、Khronos集团发表的WashingtonandOpenGL。所述API是与驱动程序相连接。所述驱动程序将从API所接收的标准程序码转换为可被GPU理解的指令的本机格式。所述驱动程序通常由GPU的制造商写入,接着GPU执行自驱动程序产生的指令。
藉由GPU所执行的图形处理任务,其通常涉及复杂的数学运算,如矩阵或向量的运算。为了有效的执行这些运算,GPU通常包含处理组件的阵列,称之为着色器引擎。处理组件的阵列被组织为一种单一指令多重数据(SIMD)装置。所述着色器引擎执行指令的顺序,称之为着色器程序。所述必需执行着色器程序的数据是平行分散于着色器引擎中的不同处理组件。不同处理组件可能在不同的数据片段执行相同的操作。因此,GPU可以比典型的中央处理单元(CPU)更快的执行图形处理任务所需的复杂数学计算。
过去,GPU必需包含不同的着色器引擎以执行完成单一图形处理任务所需的不同着色器程序。举例而言,单一图形处理任务可能需要至少两个不同的着色器程序的执行:用于操作三角形的顶点的顶点着色器;以及用于决定即将显示于显示装置(如,电脑萤幕)上的像素的像素着色器。为了执行这两组计算,典型的GPU包含两个不同的着色器引擎:(i)第一着色器引擎,用于执行所述顶点着色器;以及(ii)第二着色器引擎,用于执行所述像素着色器。
最近,GPU已经被设计成含有一整合着色器引擎。整合着色器引擎包含能执行数个不同类型的着色器程序的处理组件的阵列。整合着色器引擎,举例而言,可利用在整合着色器的处理组件的阵列之间重复循环的每一个着色器,而不是在管线中不同着色器引擎中进行的方式,来执行顶点着色器、几何着色器及像素着色器。除了典型的图形处理任务(如,顶点着色器、几何着色器、像素着色器等)之外,整合着色器引擎最近也可用于执行通用计算操作(如,数学算法、物理模拟等)。
为了保持竞争力,GPU的计算能力必需不断增加以跟上顾客的需求及API与终端使用者应用的要求。一种增加GPU的计算能力的方式为增加着色器引擎的阵列中的处理组件的数量。然而,为了要提供数据及工作负荷给数量已增加的处理组件,馈送处理组件的输入/输出总线也必须相对的增加,此举仅是为了维持GPU现有的效能。
为解决GPU的计算能力增加的问题,可能的方法为增加着色器引擎中的SIMD的宽度。然而,这个解决方法会有SIMD分歧的问题。当SIMD装置上有不同线程采取着色器程序的分支指令(branchinstruction)中的不同方向运行时,则会发生SIMD分歧。举例而言,着色器程序可能具有如表1所示的分支指令。会发生SIMD分歧,举例而言,若运行于SIMD装置的第一线程输入分支指令的“then”段(如,operation1),且行于SIMD装置的第二线程运输入分支指令的“else”段(如,operation2)。在此条件下,所述第二线程(输入“else”段)将必须等待第一线程(输入“if”语句)。与SIMD分歧有关的等待需耗费着色器程序额外的时间来执行。由于SIMD分歧潜在的问题,若想增加GPU的计算能力,单纯增加SIMD的宽度可能不是一个可行的选择。
表1.
其它可能可增加GPU计算能力的方法,为在着色器引擎的阵列中增加处理组件(如,SIMD)的堆迭。然而,此解决方法因为几个理由而有问题。作为一个初步的问题,增加处理组件的堆迭可能导致芯片的加长,可能产生制造上的问题。此外,增加处理组件的堆迭会产生与提供工作负荷到堆迭相关的增加的输入延迟以及与从堆迭路由结果有关的增加的输出延迟。此外,提供数据(如,状态数据)至堆迭时将有增加的延迟。因此,对于增加GPU的计算能力,单纯增加处理组件堆迭的厚度可能不是一个可行的选择。
根据前述,需要开发一种增加计算能力的GPU及其应用。
发明内容
本发明提供一满足上述已增加计算能力的处理器及其应用。而不是增加单一着色器引擎中处理器的宽度及厚度,于本发明的具体实施例中本发明揭示一种具有多个着色器引擎的处理器。
举例而言,根据本发明的具体实施例,所述处理器包含第一着色器引擎及第二着色器引擎。第一着色器引擎建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器。第二着色器引擎建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器。所述第一及第二着色器引擎两者亦建构成处理通用计算着色器及非像素图形着色器。所述处理器亦包含第一级(L1)数据高速缓存,其是耦接至并设置于所述第一及第二着色器引擎之间。
在另一具体实施例中,所述处理器定义为软件。于此具体实施例,计算机程序产品包含含有指令的计算机可读取储存媒介,当执行所述指令于计算器装置时定义所述处理器。
在进一步的具体实施例中,所述处理器包含计算系统。在此具体实施例中,所述计算系统包含存储器、第一处理单元、第二处理单元及总线,所述总线是与所述存储器、所述第一处理单元及所述第二处理单元耦接。计算机系统的例子包含,而非限制于,超级电脑、桌上型电脑、膝上型电脑、视讯游戏装置、嵌入式装置、手提装置(如,行动电话、智能型手机、MP3播放器、照相机等)、或其它包含或建构有处理器的装置。
仍然在进一步的具体实施例中,提供一种用于在处理器中处理着色器的方法。依据此方法,第一着色器引擎处理用于即将显示于显示装置上的像素的第一子集,且第二着色器引擎处理用于即将显示于所述显示装置上的像素的第二子集。所述第一及第二着色器引擎中两者亦处理通用计算着色器及非像素图形着色器。
本发明进一步的特征及优点在于,本发明的具体实施例除结构外其操作方法也具有各种不同的态样,参考附图详细说明于下,而非限制于此所描述的特定具体实施例。下述具体实施例仅供说明之用。基于本案的教示该领域技术人员可轻易思及本发明额外的具体实施例。
附图说明
下列附图为并为说明书的一部分,连同说明书以详细说明本发明,并进一步解释本发明的原理,使该领域技术人员可制作及使用本发明。
图1为依据本发明的具体实施例的计算系统的例示方块图。
图2为依据本发明的具体实施例的具有多个分割画面、整合着色器引擎的GPU的例示方块图。
图3为图2所述的GPU所包含的输入逻辑的例示方块图。
图4A及4B为图2所述的GPU的分割画面、整合着色器引擎例示方块图。
图5为图2所述的GPU的着色器引擎共享的第一级(L1)数据高速缓存的例示方块图。
图6为图2的GPU含有的芯片外存储器存取逻辑的例示方块图。
根据下文详细的描述配合图说,及全文所述的参考组件符号能使本发明的特征及优点更征明确。在图说中,相同的参考数字通常指出相同、功能相似及/或结构相似的组件。第一次出现的组件,其参考数字显示于最左边的数字。
具体实施方式
I.概述
本发明所显示的具体实施例,是针对一种于具有多个着色器引擎的处理单元及其应用。于下列详细描述中提及的“一种具体实施例”、“具体实施例”、“例示实施例”等术语,是指描述具体实施例可能包含的特定的特点、结构或特征,但每个具体实施例未必包含所有特定的特点、结构或特征。此外,这些术语未必论述相同具体实施例。此外,当一特定的特点、结构或特征描述于相关的具体实施例中,无论是否详细描述其它具体实施例,该领域技术人员可轻易推知影响本发明特点、结构或特征相关的其它具体实施例。
根据具体实施例,提供具有多个着色器引擎的处理器以增加处理器的计算能力。设计一种具有多个着色器引擎的处理器,而不是单纯增加单一着色器引擎的宽度及/或厚度,促进进一步突破较大量的SIMD。在具体实施例中,多个着色器引擎的数据共享存取至通用的高速缓存系统,以减少提供数据至着色器引擎相关的延迟。于此具体实施例中,多个着色器引擎及高速缓存系统可建构成具有实质上方形平面设计的处理器。举例而言,所述高速缓存系统(或至少其中一部分)可放置于中央位置,以着色器引擎的一半从一端存取高速缓存系统且着色器引擎的另一半由另一端存取高速缓存系统。处理器的着色器引擎对非像素着色器及像素着色器的操控是不同的。
对于非像素图形着色器,处理器的每个着色器引擎是相同的。换言之,每个着色器引擎建构成处理通用计算着色器(举例而言,如数学算法、物理模拟等)及非像素图形着色器(举例而言,如顶点着色器、几何着色器、嵌入式着色器等)。于具体实施例中,所述非像素图形着色器以循环的方式(round-robinfashion)传送至多个着色器引擎。
对于像素着色器,处理器的每个着色器引擎建构成处理即将显示于显示装置上的像素的特定子集。显示装置的像素被划分为与着色器引擎数量相对应的子集数量。举例而言,于具体实施例中,所述处理器包含两个着色器引擎,显示装置的像素被划分为像素的第一及第二子集(如,棋盘模式(checkerboardpattern),其棋盘模式的偶数像素包括第一子集以及棋盘模式的奇数像素包括第二子集。于此具体实施例中,所述处理器的第一着色器引擎建构成用于处理第一子集的像素,及所述处理器的第二着色器引擎建构成用于处理第二子集的像素。所述处理器可能亦包括两个以上(如,四个、八个等)的着色器引擎。在此种情况下,所述显示装置的像素被划分为两个以上(如,四个、八个等)的子集,且每个像素的子集由处理器的特定的着色器引擎处理。
关于例示处理器进一步详细的描述,请参照下述之本发明的具体实施例。以描述为前提,然而,有助于描述在此处理器上可实行的具体实施例系统。
II.例示系统
图1为依据本发明的具体实施例的计算系统100的例示方块图。计算系统100包含CPU102、GPU110,且可选择包括协处理器(Coprocessor)112。此外,计算系统100包含可被CPU102、GPU110或协处理器112存取的系统存储器104。在具体实施例中,计算系统100可包括:超级电脑、桌上型电脑、膝上型电脑、视讯游戏装置、嵌入式装置、手提装置(如,行动电话、智能型手机、MP3播放器、照相机、GPS装置等)、或其它包含或建构有GPU的装置。尽管图1没有明确的说明,所述计算系统100可包含用于显示显示内容(如,图形、视频等)的显示装置(如,阴极射线管(cathode-raytube)、液晶显示器、等离子显示器等)。
GPU110及协处理器112通过总线114连接至CPU102及所述系统存储器。总线114可以为任何型式的总线用于所述计算系统,包含周边组件接口(PCI)总线、绘图加速端口(AGP)总线、高速PCI(PCIE)总线或无论现所使用或未来开发的其它任一型式的总线。
GPU110及协处理器112通过执行某些特殊功能来帮助CPU102,因此通常比CPU102执行那些软件更快。举例而言,GPU110可处理数据并列计算任务,例如举例而言,图形处理任务(包含,举例而言,顶点着色器、几何着色器、像素着色器等)以及通用计算任务(包含,举例而言,数学算法、物理模拟等)。更详而言,根据本发明的具体实施例,GPU110包含多个着色器引擎。相较于单一着色器引擎的GPU,多个着色器引擎可增加GPU110的计算能力。协处理器112可能包括,但非限制于,浮点协处理器、GPU、网路连结协处理器及其它类型的协处理器,且为该领域技术人员显而易知的处理器。
除了系统存储器104外,计算系统100进一步包含区域存储器106及区域存储器108。区域存储器106耦接至GPU110,其可能也与总线114耦接。区域存储器108耦接至协处理器112且可能也耦接至总线114。为了使某些数据(如,使用频繁的数据)的存取可能比储存在系统存储器的数据快,区域存储器106及108可分别耦接至GPU110及协处理器112。
在具体实施例中,GPU110及协处理器112与CPU102平行解码指令,且只有执行那些用于GPU110及协处理器102的指令。在另一具体实施例中,CPU102发送用于GPU110及协处理器102的指令至各自命令缓冲器。
III例示处理器
图2为依据本发明的具体实施例的具有多个着色器引擎的例示处理器的方块图。仅说明目的而非限制于,下所描述的例示处理器称为GPU。然而,该领域技术人员会了解,本发明所述的具体实施例可能应用于其它型式的处理器,如视讯处理单元,中央处理单元、协处理器及其它包含多个着色器引擎的类似处理单元。在不悖离本发明的范围及精神下考虑这些其它型式的处理器。
如图2所示的具体实施例,GPU110包含两个着色器引擎-第一着色器引擎210A及第二着色器引擎210B。着色器引擎210整合为非像素着色器,表示每个着色器引擎210都建构成用于执行非像素图形着色器(如,顶点着色器、几何着色器、嵌入式着色器等)以及通用计算着色器(如,数学算法、物理模拟等)。每个非像素着色器仅在着色器引擎210的处理组件的阵列之间重复循环,而不是在管线中不同着色器引擎进行。
不同于非像素图形着色器,着色器引擎210并非整合为像素着色器。所指像素着色器,每个着色器引擎210建构成用于执行即将显示于显示装置的像素的子集的着色程序。举例而言,第一着色器引擎210A可建构为执行即将显示于显示装置的像素的第一子集(如,一半)的着色器程序,以及第二着色器引擎210B可建构为执行即将显示于显示装置的像素的第二子集(如,另一半)的着色程序。
尽管图2绘制的GPU仅有两个着色器引擎,但可体会的此仅用于说明而非限制本发明。在一具体实施例中,GPU110可包括两个以上(如,四个、八个、十六个等)着色器引擎。在此具体实施例中,一半的着色器引擎位于数据路径的一端(如,数据高速缓存206),以及另一半的着色器引擎位于数据路径的另一端(如,数据高速缓存206)。因为一半的着色器引擎位于数据路径的一端,且另一半的着色器引擎位于数据路径的另一端,则GPU110可能建构成实质的方形的平面设计。
除了着色器引擎210,图2说明所述的GPU110也包含输入逻辑204、高速缓存系统(包含第一级(L1))数据高速缓存206、(第二级(L2))数据高速缓存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包含多个SIMD406、多个全域数据共享(LDS)404,及序列发生器402。SIMD406为每个着色器引擎210的数据-并列处理组件。在具体实施例中,每个着色器引擎包含十行SIMD406,每行包括四组具有四个组件的算术-逻辑运算单元(ALUs)。每个LDS404储存用于SIMD406的行的数据。序列发生器402保持追踪SIMD406中不同着色器引擎210正处理工作负荷,使多个线程能并列执行。在具体实施例中,举例而言,超过30,000个线程可在任何一时间执行在每个着色器引擎210中。可从高速缓存系统撷取SIMD406所须用以执行的数据。
C.高速缓存系统
回到图2,所述高速缓存系统包含L1数据高速缓存206、L2数据高速缓存216及芯片外存储器存取逻辑218。当着色器引擎210需要数据以执行着色器程序时,首先产生一至L1数据高速缓存206的请求。若于L1数据高速缓存206中有快取命中时(即请求的数据是在L1数据高速缓存206中),所述数据则依据哪一个着色器引擎请求该数据而被发送至第一着色器引擎210A或第二着色器引擎210B的两者之一。若高速缓存从L1数据高速缓存206有高速缓存缺失时(即所请求的数据不在L1数据高速缓存206),L1数据高速缓存206将所请求的数据发送至L2数据高速缓存216。L2数据高速缓存216是一个比L1数据高速缓存还要大的高速缓存存储器单元,但由于他较大的空间通常耗费较长的时间判断所请求的数据是否包含在L2数据高速缓存216中。倘若有一快取命中在L2数据高速缓存216中,而所请求的数据储存于L1数据高速缓存206并将其发送至请求该数据的着色器引擎210。如果于L2数据高速缓存216中有高速缓存缺失,则所请求的数据必须通过芯片外存储器存取逻辑218由芯片外存储器透过撷取。
图5是说明L1数据高速缓存的具体实施例。所述具体实施例如图5所示,L1数据高速缓存206包含对应于每个着色器引擎210的多个SIMD的多个逻辑块的行。L1数据高速缓存206的逻辑块的每一行包含第一纹理-地址单元502A、第一纹理-数据单元504A、纹理-快取缓存/L1对510、第二纹理-数据单元504B及第二纹理-地址单元502B。
纹理-地址单元502基于来自序列发生器402的状态数据产生纹理地址。如此一来,可下载适合的纹理数据至区域存储器做后续的处理。第一纹理-地址单元502A产生用于第一着色器引擎210A的纹理地址,而第二纹理地址单元502B产生用于第二着色器引擎210B的纹理地址。
纹理-数据单元504过滤及回传数据至所述着色器引擎210。第一纹理-数据单元504A耦接至第一着色器引擎210A,且第二纹理-数据单元504B耦接至第二着色器引擎210B。
纹理-高速缓存/L1对510执行数据的第一级高速缓存。如上所述,若纹理-高速缓存/L1对510中有缺失,则产生一至L2数据高速缓存216的请求。纹理-高速缓存/L1对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.例示操作
在操作上,GPU110接收从CPU102的图形处理及通用计算任务。GPU110的输入逻辑204以如上述的交替方式(如,循环式),传送与执行非像素着色器相关的工作负荷至第一着色器引擎210A或第二着色器引擎210B两者之一。对于像素着色器而言,输入逻辑204传送像素的第一子集(如,棋盘模式的偶数像素)至第一着色器引擎210A以及传送像素的第二子集(如,棋盘模式的基数像素)至第二着色器引擎210B。
发出要执行的工作负荷后,着色器引擎210撷取所需的数据以执行这些工作负荷。如上所述,所述数据是从高速缓存系统(包括L1数据高速缓存206、L2数据高速缓存216及芯片外存储器存取逻辑218)撷取。
接着通过路由选择逻辑212将来自着色器引擎210的结果路由至适当的位置。重要的是,交叉开关214使来自两个着色器引擎210的结果,经由第一芯片外存储器存取逻辑218A或第二芯片外存储器存取逻辑218B两者之一写入任何芯片外存储信道。
V.例示软件实现
除了GPU110的硬件实现外,举例而言,这些GPU亦可能以配置于建构成用以储存软件(如,计算机可读取程序码)的计算器可读取媒介中的软件来实施。所述程序代码导致本发明的具体实施例的启动,包括下列具体实施例:(i)本文所揭露的系统功能及技术描述(如在GPU110执行图形处理及通用计算任务);(ii)本文所揭露的技术及系统的建构(例如GPU110的建构);或(iii)本文所揭露的系统的建构与功能的结合。
举例而言,这些可透过一般程序语言(如C或C++)、硬件描述语言(HDL)包括VerilogHDL、VHDL、AlteraHDL(AHDL)以此类推、或其它能做程序设计及/或简图撷取工具(如电路绘制工具)来实现。所述程序码可以置于任何已知的计算机可读取媒介包括半导体、磁盘或光盘(如CD-ROM、DVD-ROM)。因此,所述程序码可由通信网路传输,通信网络包括网际网络与网际网络。据了解,通过如上所述的系统及技术所提供的功能及/或建构的系统,表示于一核心(如GPU核心),藉由程序码据以实施亦可转化部分于硬件的集成电路生产。
VI结论
应当明白的,详细说明的部分、综述及摘要部分是用于解释权利要求书。所述综述及摘要部分可能阐明一个或多个本发明的具体实施例,但并非本发明限制于该些具体实施例,因此,并非用任何方式限制本发明及附加的权利要求书。
Claims (27)
1.一种处理器,包括:
第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的预定的第一子集的像素着色器,其中,所述第一着色器引擎包括第一多个单一指令多重数据单元;以及
第二着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的预定的第二子集的像素着色器,其中,所述第二着色器引擎包括第二多个单一指令多重数据单元;
第一级数据高速缓存耦接并物理上设置于所述第一和第二着色器引擎之间,其中,所述第一级数据高速缓存共享所述第一多个单一指令多重数据单元的至少一个和所述第二多个单一指令多重数据单元的至少一个之间的数据,从而减少提供数据的延迟;以及
输入逻辑,其建构成用于像素着色器以将即将显示于所述显示装置上的所述像素划分至所述第一子集和所述第二子集;以及
其中,所述输入逻辑也建构成分配通用计算着色器及非像素图形着色器至所述第一着色器引擎和所述第二着色器引擎中的可用者,其中,所述第一和第二着色器引擎各自进一步建构成处理所述通用计算着色器及所述非像素图形着色器;
借此所述着色器引擎整合为非像素着色器以及非整合为像素着色器。
2.根据权利要求1所述的处理器,其中,所述第一着色器引擎、所述第二着色器引擎建构成相对于在所述第一着色器引擎和所述第二着色器引擎之间的中央轴而彼此相对的镜像,以及所述第一级数据高速缓存安置在所述第一着色器引擎和所述第二着色器引擎之间,其中,所述第一着色器引擎从一端存取所述高速缓存且所述第二着色器引擎由另一端存取所述高速缓存,用于提供互连的所述第一和第二着色器引擎以及所述第一级数据高速缓存具有实质方形平面设计。
3.根据权利要求1所述的处理器,其中,所述第一级数据高速缓存是耦接至第二级数据高速缓存,且其中,所述预定划分的像素是基于着色器引擎的数量。
4.根据权利要求1所述的处理器,进一步包括:
第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及
第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器;
其中,所述第一级数据高速缓存是耦接至并设置于所述第三及第四着色器引擎之间,且
其中,所述第三着色器引擎及所述第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
5.根据权利要求1所述的处理器,进一步包括:
输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
6.根据权利要求5所述的处理器,其中,所述输入逻辑包括:
第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及
第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
7.根据权利要求1所述的处理器,进一步包括:
第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个;以及
第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
8.根据权利要求7所述的处理器,进一步包括:
交叉开关,是装备有
(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及
(ii)第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
9.一种包括计算机可读取储存媒介的计算装置,所述计算机可读取储存媒介含有执行于其上的指令以定义处理器,其中,所述处理器包括:
第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器,其中,所述第一着色器引擎包括第一多个单一指令多重数据单元;以及
第二着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器,其中,所述第二着色器引擎包括第二多个单一指令多重数据单元;
第一级数据高速缓存耦接并物理上设置于所述第一和第二着色器引擎之间,其中,所述第一级数据高速缓存共享所述第一多个单一指令多重数据单元的至少一个和所述第二多个单一指令多重数据单元的至少一个之间的数据,以减少与提供数据至着色器引擎单一指令多重数据单元相关的延迟;以及
输入逻辑,其建构成用于像素着色器以将即将显示于所述显示装置上的所述像素划分至所述第一子集和所述第二子集,以及建构成分配通用计算着色器及非像素图形着色器至所述第一着色器引擎和所述第二着色器引擎中的可用者;
其中,所述第一和第二着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器;
借此所述着色器引擎整合为非像素着色器以及非整合为像素着色器。
10.根据权利要求9所述的计算裝置,其中,所述第一着色器引擎、所述第二着色器引擎建构成相对于在所述第一着色器引擎和所述第二着色器引擎之间的中央轴而彼此相对的镜像,以及所述第一级数据高速缓存安置在所述第一着色器引擎和所述第二着色器引擎之间,其中,所述第一着色器引擎从一端存取所述第一级数据高速缓存且所述第二着色器引擎由另一端存取所述第一级数据高速缓存,用于提供互连的所述第一和第二着色器引擎以及所述第一级数据高速缓存具有实质方形平面设计。
11.根据权利要求9所述的计算裝置,其中,所述第一级数据高速缓存是耦接至第二级数据高速缓存,且其中,所述划分的像素是基于着色器引擎的数量。
12.根据权利要求9所述的计算裝置,其中,所述处理器进一步包括:
第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及
第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器;
其中,所述第一级数据高速缓存是耦接至并设置于所述第三著色器引擎及所述第四着色器引擎之间,且
其中,所述第三及第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器。
13.根据权利要求9所述的计算裝置,其中,所述处理器进一步包括:
输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
14.根据权利要求13所述的计算裝置,其中,所述输入逻辑包括:
第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及
第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
15.根据权利要求9所述的计算裝置,其中,所述处理器进一步包括:
第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个;以及
第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
16.根据权利要求15所述的计算裝置,其中,所述处理器进一步包括:
交叉开关,是装备有
(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及
(ii)第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
17.一种用于在处理单元中处理着色器的方法,包括以下步骤:
在第一着色器引擎中,处理用于即将显示于显示装置上的像素的第一子集的像素着色器,其中,所述第一着色器引擎包括第一多个单一指令多重数据单元;
在第二着色器引擎中,处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器,其中,所述第二着色器引擎包括第二多个单一指令多重数据单元;
在所述第一及第二着色器中,处理通用计算着色器及非像素图形着色器;
通过输入逻辑,划分即将显示于所述显示装置上的所述像素至所述第一子集和所述第二子集;
通过所述输入逻辑,分配通用计算着色器及非像素图形着色器至所述第一着色器引擎和所述第二着色器引擎中的可用者;以及
使用耦接至并物理上设置于所述第一着色器引擎及所述第二着色器引擎之间的第一级数据高速缓存,其中,所述第一级数据高速缓存共享所述第一多个单一指令多重数据单元的至少一个和所述第二多个单一指令多重数据单元的至少一个之间的数据。
18.根据权利要求17所述的方法,进一步包括:
使用第一扫描转换器,识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及
使用第二扫描转换器,识别即将由所述第二着色器引擎处理的所述像素的第二子集。
19.根据权利要求17所述的方法,进一步包括:
在第三着色器引擎中,处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及
在第四着色器引擎中,处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器。
20.一种计算机系统,包括:
存储器;
处理单元;以及
总线,是耦接至所述存储器及所述处理单元,其中,所述处理单元包括:
第一着色器引擎,其建构成处理用于即将显示于显示装置上的像素的第一子集的像素着色器,其中,所述第一着色器引擎包括第一多个单一指令多重数据单元;
第二着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第二子集的像素着色器,其中,所述第二着色器引擎包括第二多个单一指令多重数据单元;
第一级数据高速缓存,其耦接并物理上设置于所述第一和第二着色器引擎之间,其中,所述第一级数据高速缓存共享所述第一多个单一指令多重数据单元的至少一个和所述第二多个单一指令多重数据单元的至少一个之间的数据,从而减少提供数据的延迟;以及
输入逻辑,其建构成用于像素着色器以将即将显示于所述显示装置上的所述像素划分至所述第一子集和所述第二子集,且建构成分配通用计算着色器及非像素图形着色器至所述第一着色器引擎和所述第二着色器引擎中的可用者;
其中,所述第一及第二着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器,借此所述着色器引擎整合为非像素着色器以及非整合为像素着色器。
21.根据权利要求20所述的计算机系统,其中,所述第一着色器引擎、所述第二着色器引擎建构成相对于在所述第一着色器引擎和所述第二着色器引擎之间的中央轴而彼此相对的镜像,以及所述第一级数据高速缓存安置在所述第一着色器引擎和所述第二着色器引擎之间,其中,所述第一着色器引擎从一端存取所述第一级数据高速缓存且所述第二着色器引擎由另一端存取所述第一级数据高速缓存,用于提供互连的所述第一和第二着色器引擎以及所述第一级数据高速缓存具有实质方形平面设计。
22.根据权利要求20所述的计算机系统,其中,所述第一级数据高速缓存是耦接至第二级数据高速缓存,且其中,所述划分的像素是基于着色器引擎的数量。
23.根据权利要求20所述的计算机系统,其中,所述处理单元进一步包括:
第三着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第三子集的像素着色器;以及
第四着色器引擎,其建构成处理用于即将显示于所述显示装置上的像素的第四子集的像素着色器;
其中,所述第一级数据高速缓存是耦接至并设置于所述第三着色器引擎及所述第四着色器引擎之间;
其中,所述第三及第四着色器引擎各自进一步建构成处理通用计算着色器及非像素图形着色器;且
其中,所述输入逻辑进一步建构成将显示于所述显示装置上的像素划分为所述第三子集和所述第四子集,且进一步建构成分配通用计算着色器及非像素图形着色器至所述第一着色器引擎、所述第二着色器引擎、所述第三着色器引擎和所述第四着色器引擎中的可用者。
24.根据权利要求23所述的计算机系统,其中,所述处理单元进一步包括:
输入逻辑,其建构成准备即将发配至所述第一及第二着色器引擎的工作负荷。
25.根据权利要求24所述的计算机系统,其中,所述输入逻辑包括:
第一扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第一着色器引擎处理的所述像素的第一子集;以及
第二扫描转换器,其建构成扫描所述工作负荷及识别即将由所述第二着色器引擎处理的所述像素的第二子集。
26.根据权利要求20所述的计算机系统,其中,所述处理单元进一步包括:
第一输出逻辑,是耦接至所述第一着色器引擎及第一多数个芯片外存储器信道,使来自所述第一着色器引擎的结果数据提供给所述第一多数个芯片外存储器信道中的任一个;以及
第二输出逻辑,是耦接至所述第二着色器引擎及第二多数个芯片外存储器信道,使来自所述第二着色器引擎的结果数据提供给所述第二多数个芯片外存储器信道中的任一个。
27.根据权利要求26所述的计算机系统,其中,所述处理单元进一步包括:
交叉开关,是装备有
(i)第一数据路径,是从所述第一着色器引擎至所述第二多数个芯片外存储器信道;以及
(ii)第二数据路径,是从所述第二着色器引擎至所述第一多数个芯片外存储器信道。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23971809P | 2009-09-03 | 2009-09-03 | |
US61/239,718 | 2009-09-03 | ||
US12/691,541 US9142057B2 (en) | 2009-09-03 | 2010-01-21 | Processing unit with a plurality of shader engines |
US12/691,541 | 2010-01-21 | ||
PCT/US2010/047779 WO2011028981A1 (en) | 2009-09-03 | 2010-09-03 | A processing unit with a plurality of shader engines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102598061A CN102598061A (zh) | 2012-07-18 |
CN102598061B true CN102598061B (zh) | 2016-05-04 |
Family
ID=43624194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080049825.2A Active CN102598061B (zh) | 2009-09-03 | 2010-09-03 | 具有多个着色器引擎的处理单元 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9142057B2 (zh) |
EP (1) | EP2473976B1 (zh) |
JP (1) | JP5711236B2 (zh) |
KR (1) | KR101661720B1 (zh) |
CN (1) | CN102598061B (zh) |
IN (1) | IN2012DN02658A (zh) |
WO (1) | WO2011028981A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9092267B2 (en) * | 2011-06-20 | 2015-07-28 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
US9727385B2 (en) * | 2011-07-18 | 2017-08-08 | Apple Inc. | Graphical processing unit (GPU) implementing a plurality of virtual GPUs |
US9442780B2 (en) * | 2011-07-19 | 2016-09-13 | Qualcomm Incorporated | Synchronization of shader operation |
US8842122B2 (en) | 2011-12-15 | 2014-09-23 | Qualcomm Incorporated | Graphics processing unit with command processor |
US9530245B2 (en) | 2011-12-29 | 2016-12-27 | Qualcomm Incorporated | Packing multiple shader programs onto a graphics processor |
US9529575B2 (en) | 2012-02-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Rasterization of compute shaders |
US9019289B2 (en) | 2012-03-07 | 2015-04-28 | Qualcomm Incorporated | Execution of graphics and non-graphics applications on a graphics processing unit |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US20130311753A1 (en) * | 2012-05-19 | 2013-11-21 | Venu Kandadai | Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations |
US10176621B2 (en) * | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US9536342B2 (en) * | 2014-08-15 | 2017-01-03 | Intel Corporation | Automatic partitioning techniques for multi-phase pixel shading |
US9665975B2 (en) * | 2014-08-22 | 2017-05-30 | Qualcomm Incorporated | Shader program execution techniques for use in graphics processing |
KR102263326B1 (ko) | 2014-09-18 | 2021-06-09 | 삼성전자주식회사 | 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법 |
US20160292812A1 (en) * | 2015-03-31 | 2016-10-06 | Qualcomm Incorporated | Hybrid 2d/3d graphics rendering |
US10089775B2 (en) * | 2015-06-04 | 2018-10-02 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
EP3101650A1 (en) * | 2015-06-04 | 2016-12-07 | Samsung Electronics Co., Ltd. | Method and apparatus for performing interleaving |
US10403025B2 (en) | 2015-06-04 | 2019-09-03 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US10346943B2 (en) * | 2017-01-03 | 2019-07-09 | Microsoft Technology Licensing, Llc | Prefetching for a graphics shader |
US10467796B2 (en) * | 2017-04-17 | 2019-11-05 | Intel Corporation | Graphics system with additional context |
CN107464208B (zh) * | 2017-07-24 | 2019-07-09 | 浙江大学 | 一种图形绘制流水线中像素着色结果重用方法 |
US11295507B2 (en) * | 2020-02-04 | 2022-04-05 | Advanced Micro Devices, Inc. | Spatial partitioning in a multi-tenancy graphics processing unit |
US12051144B2 (en) * | 2020-02-28 | 2024-07-30 | Advanced Micro Devices, Inc. | Fully utilized hardware in a multi-tenancy graphics processing unit |
US11403729B2 (en) | 2020-02-28 | 2022-08-02 | Advanced Micro Devices, Inc. | Dynamic transparent reconfiguration of a multi-tenant graphics processing unit |
US11442495B2 (en) * | 2020-03-06 | 2022-09-13 | Advanced Micro Devices, Inc. | Separate clocking for components of a graphics processing unit |
CN111580974B (zh) * | 2020-05-08 | 2023-06-27 | 抖音视界有限公司 | Gpu实例分配方法、装置、电子设备和计算机可读介质 |
US11508124B2 (en) | 2020-12-15 | 2022-11-22 | Advanced Micro Devices, Inc. | Throttling hull shaders based on tessellation factors in a graphics pipeline |
US11776085B2 (en) | 2020-12-16 | 2023-10-03 | Advanced Micro Devices, Inc. | Throttling shaders based on resource usage in a graphics pipeline |
US11200060B1 (en) * | 2020-12-23 | 2021-12-14 | Advanced Micro Devices, Inc. | Broadcast synchronization for dynamically adaptable arrays |
US11710207B2 (en) | 2021-03-30 | 2023-07-25 | Advanced Micro Devices, Inc. | Wave throttling based on a parameter buffer |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082982A (zh) * | 2007-02-16 | 2007-12-05 | 威盛电子股份有限公司 | 顶点着色器、绘图处理单元及其相关的流程控制方法 |
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701405A (en) * | 1995-06-21 | 1997-12-23 | Apple Computer, Inc. | Method and apparatus for directly evaluating a parameter interpolation function used in rendering images in a graphics system that uses screen partitioning |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
JP4158413B2 (ja) * | 2002-05-22 | 2008-10-01 | ソニー株式会社 | 画像処理装置 |
US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
US6862027B2 (en) * | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
US9098932B2 (en) * | 2004-08-11 | 2015-08-04 | Ati Technologies Ulc | Graphics processing logic with variable arithmetic logic unit control and method therefor |
US8332592B2 (en) * | 2004-10-08 | 2012-12-11 | International Business Machines Corporation | Graphics processor with snoop filter |
US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
JP2008538620A (ja) | 2005-01-25 | 2008-10-30 | ルーシッド インフォメイション テクノロジー リミテッド | モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム |
JPWO2007049610A1 (ja) | 2005-10-25 | 2009-04-30 | 三菱電機株式会社 | 画像処理装置 |
US8766995B2 (en) * | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US8933933B2 (en) * | 2006-05-08 | 2015-01-13 | Nvidia Corporation | Optimizing a graphics rendering pipeline using early Z-mode |
US7928990B2 (en) * | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
US8139069B1 (en) * | 2006-11-03 | 2012-03-20 | Nvidia Corporation | Method and system for improving data coherency in a parallel rendering system |
JP2008225893A (ja) | 2007-03-13 | 2008-09-25 | Toshiba Corp | プロセッサ及びプロセッサシステム |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
GB0723537D0 (en) | 2007-11-30 | 2008-01-09 | Multi-core rasterisation in a tile based rendering system7743180001 | |
US8769207B2 (en) * | 2008-01-16 | 2014-07-01 | Via Technologies, Inc. | Caching method and apparatus for a vertex shader and geometry shader |
US20090309896A1 (en) * | 2008-05-30 | 2009-12-17 | Advanced Micro Devices, Inc. | Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache |
US8259111B2 (en) * | 2008-05-30 | 2012-09-04 | Advanced Micro Devices, Inc. | Merged shader for primitive amplification |
-
2010
- 2010-01-21 US US12/691,541 patent/US9142057B2/en active Active
- 2010-09-03 KR KR1020127008021A patent/KR101661720B1/ko active IP Right Grant
- 2010-09-03 CN CN201080049825.2A patent/CN102598061B/zh active Active
- 2010-09-03 IN IN2658DEN2012 patent/IN2012DN02658A/en unknown
- 2010-09-03 JP JP2012528078A patent/JP5711236B2/ja active Active
- 2010-09-03 WO PCT/US2010/047779 patent/WO2011028981A1/en active Application Filing
- 2010-09-03 EP EP10754626.9A patent/EP2473976B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082982A (zh) * | 2007-02-16 | 2007-12-05 | 威盛电子股份有限公司 | 顶点着色器、绘图处理单元及其相关的流程控制方法 |
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
Non-Patent Citations (1)
Title |
---|
NVIDIA GeForce 8800 GPU Architecture Overview;Nvidia;《Nvidia Technical Brief》;20061130;图12 * |
Also Published As
Publication number | Publication date |
---|---|
EP2473976A1 (en) | 2012-07-11 |
KR20120064093A (ko) | 2012-06-18 |
CN102598061A (zh) | 2012-07-18 |
JP5711236B2 (ja) | 2015-04-30 |
JP2013504129A (ja) | 2013-02-04 |
US20110050716A1 (en) | 2011-03-03 |
IN2012DN02658A (zh) | 2015-09-11 |
EP2473976B1 (en) | 2016-10-26 |
KR101661720B1 (ko) | 2016-09-30 |
WO2011028981A1 (en) | 2011-03-10 |
US9142057B2 (en) | 2015-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102598061B (zh) | 具有多个着色器引擎的处理单元 | |
US8669990B2 (en) | Sharing resources between a CPU and GPU | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
KR101642105B1 (ko) | 셰이더 코어 상에서 서로 다른 타입의 태스크들의 비동기 동시 디스패치를 가능하게 해주는 복수의 버퍼들을 구비한 커맨드 프로세서를 포함하는 그래픽 처리 유닛 | |
DE102013017511B4 (de) | Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten | |
CN103365631B (zh) | 用于存储器访问的动态库模式寻址 | |
US20100259536A1 (en) | System and method for deadlock-free pipelining | |
DE102012221502A1 (de) | System und Verfahren zum Durchführen von gestalteter-Speicherzugriff-Operationen | |
US20060152519A1 (en) | Method for operating low power programmable processor | |
CN103885752A (zh) | 多线程处理单元中可编程的混合 | |
CN104050033A (zh) | 用于有索引的屏障的硬件调度的系统和方法 | |
CN104050706A (zh) | 用于低功率图形渲染的像素着色器旁路 | |
CN103810743A (zh) | 在上游着色器中设置下游渲染状态 | |
CN109313557B (zh) | 用于优化gpu线程共享本地存储器访问的装置 | |
CN105321143A (zh) | 来自片段着色程序的采样掩膜的控制 | |
CN104050632A (zh) | 使用一个样本的多样本表面处理 | |
CN102016926A (zh) | 具有混合精度指令执行的可编程串流处理器 | |
CN104050705A (zh) | 处置光栅操作中的post-z覆盖数据 | |
US9317456B2 (en) | Method and system for performing event-matching with a graphical processing unit | |
CN103870213A (zh) | 经由管线化的状态包触发性能事件捕获 | |
DE102020115578A1 (de) | Management von partiellem schreiben in einer grafik-enginemit mehreren kacheln | |
CN103871019A (zh) | 优化三角形拓扑用于路径渲染 | |
CN103793206A (zh) | 基于工作队列的图形处理单元工作创建 | |
CN104050633A (zh) | 使用样本子集的多样本表面处理 | |
CN109791527B (zh) | 延迟丢弃 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |