CN102156959A - 具有多线程执行单元的绘图处理装置及其存储器存取方法 - Google Patents
具有多线程执行单元的绘图处理装置及其存储器存取方法 Download PDFInfo
- Publication number
- CN102156959A CN102156959A CN2011100793014A CN201110079301A CN102156959A CN 102156959 A CN102156959 A CN 102156959A CN 2011100793014 A CN2011100793014 A CN 2011100793014A CN 201110079301 A CN201110079301 A CN 201110079301A CN 102156959 A CN102156959 A CN 102156959A
- Authority
- CN
- China
- Prior art keywords
- working storage
- thread
- identifier
- threads
- logic
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000013519 translation Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 217
- 230000008569 process Effects 0.000 claims description 5
- 230000001105 regulatory effect Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 abstract 1
- 238000004040 coloring Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000010422 painting Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- XEBWQGVWTUSTLN-UHFFFAOYSA-M phenylmercury acetate Chemical compound CC(=O)O[Hg]C1=CC=CC=C1 XEBWQGVWTUSTLN-UHFFFAOYSA-M 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241001062009 Indigofera Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明涉及具有多线程执行单元的绘图处理装置及其存储器存取方法。于本发明的实施例中,绘图处理单元包括用以处理可编程着色器的操作的执行单元,此执行单元可用以处理多个管线的操作。绘图处理单元还包括可形成暂存器文件的存储器,此暂存器文件可用以调节执行单元中所有管线的暂存器操作。此存储器可规划为多个存储库,其中多个第一存储库配置给多个第一线程,而多个第二存储库配置给其他线程。此外绘图处理单元还包括地址转译单元,用以将逻辑暂存器识别符转换为物理暂存器地址。
Description
技术领域
本发明涉及具有多线程执行单元的绘图处理装置及其存储器存取方法。本发明利用共同暂存器文件来调节执行单元所执行的所有线程的暂存器操作,此共同暂存器文件规划为多个存储库,一部分的存储库对应至偶数线程,另一部分的存储库对应至奇数线程。当线程产生暂存器要求时,对应的逻辑暂存器识别符被转译为物理存储器位置,使线程可存取对应的存储库。
背景技术
众所皆知,三维计算机绘图技术着重于将三维(3D)物体以二维(2D)影像的方式呈现出来,并显示于诸如阴极线真空管(CRT)屏幕或液晶屏幕(LCD)之类的显示装置上。此三维物体可以是简单的几何基元(primitive),例如点、线段、三角形或是多边形(polygon)。较为复杂的物体则是以一系列相连的平面多边形的方式呈现在显示装置上,例如一连串的平面三角形。所有的图形基元都可以单一顶点或一组顶点的方式来表示,例如以座标(X,Y,Z)来定义一个点,或是线段的某一端点,或是多边形的某一个顶点。
为了产生用来代表三维物体的二维投影数据使物体可呈现在显示装置上,图形基元的顶点需要经过一连串的操作,以及绘图显像管线的多个阶段来处理。一般的管线是由一连串相连的处理单元或阶段所组成,上一阶段的输出可做为下一阶段的输入。对于绘图处理单元而言,管线阶段包括以下:逐一顶点操作,基元合成操作,像素操作,像素合成操作,光栅扫描(rasterization)操作以及碎型(fragment)操作等等。
在典型的绘图显示系统中,可利用影像数据库来储存场景中物体的叙述符。物体可以多个小多边形来表示,这些小多边形是涵盖物体表面的多边形,如同墙面上的磁砖。每一个多边形又可以顶点座标清单以及表面材质特性来表示,甚或再包括每一顶点相对于表面的法线向量。顶点座标清单可以是模型空间的XYZ座标,表面材质特性可包括颜色,纹理或亮度等。对于具有 复杂曲面的三维物体,通常是以三角形或四边形来表示,而四边形又可拆解为一对三角形。
当使用者决定了观看的角度,转换引擎单元便将物体座标转换至相对于观赏角度。此外,使用者可以指定视野范围,所产生的影像的大小,以及可见物体的后方是否包含某一背景或是将背景删除。
当视野区域选定之后,裁剪单元将位于视野区域之外的多边形剔除,并且将部份位于视野区域之外部份位于视野区域之内的多边形加以裁剪。裁减后的多边形对应至原多边形位于视野区域之内的部份,其裁减后的边缘对应至视野区域的边界。接着多边形的顶点会传递到下一个管线阶段,包含每一顶点在视野区域的座标(XY)以及其相对的深度值(Z)。之后一般的绘图处理系统会进行光源模型处理,再将多边形以及其颜色值传递至光栅扫描器。
对每一个多边形而言,光栅扫描器会判断哪些像素位在此多边形,并将其对应的颜色值和深度值写入帧缓冲器(frame buffer)。光栅扫描器会比较目前处理的多边形其像素的深度值与原先储存在帧缓冲器相对应位置的像素的深度值,如果多边形像素的深度值较小,表示其位于帧缓冲器所储存的像素的前方,则以多边形像素的深度值取代原帧缓冲器的深度值,因为目前处理的多边形会遮蔽原先储存于帧缓冲器内的多边形。上述步骤会持续重复直到所有的多边形都已显像处理过。之后,影像控制器会将帧缓冲器的内容以逐一扫描线的方式呈现在显示装置上。
在了解过上述相关背景技术后,请参见图1所绘示的计算机系统的绘图管线的部份元件的功能方块图,此实施例仅为说明之便,绘图管线的元件可因系统差异有所变化,并以其他方式表示。图1的主控计算机10可通过命令串流处理器(command stream processor)12产生命令清单,主控计算机10可以是计算机系统所执行的绘图应用程序界面。命令清单包含一系列的绘图命令以及将一环境显像在显示装置所需的数据。绘图管线中的元件可以对命令清单中的命令和数据执行操作,以绘制影像至显示装置上。
为达到上述目的,解析器(parser)14从命令串流处理器12接收命令,并通过数据解析来转译命令,以及将定义绘图基元的数据沿着绘图管线传递。绘图基元可藉由位置数据来定义,例如XYZ和W座标,还有亮度和纹理数据。解析器14会从命令串流处理器12接收每一个基元的所有信息,并且传递至顶点着色器(vertex shader)16。顶点着色器16可以对从命令清单所接收 的绘图数据作各种转换,例如从世界座标转换至视野座标,再到投影座标,最后是屏幕座标。顶点着色器16可执行的各项功能为本领域的技术人员已知,在此不加以叙述。经过上述处理后,绘图数据传递至光栅扫描器18,其操作亦如上已述。
接续对图形基元的每一个像素作深度测试,如上所述,深度测试是将目前基元的像素的深度值与对应的像素位置所储存的深度值做比较,所储存的深度值是先前绘制的基元的像素位置的深度值。如果目前基元的深度值比所储存的深度值更为接近观看者,则以目前基元的深度值取代所储存的深度值,而目前基元的颜色信息也会取代帧缓冲器中对应位置先前所储存的颜色信息(于像素着色器(pixel shader)22执行)。如果目前基元的深度值没有比所储存的深度值更接近观看者,则所储存的深度值与帧缓冲器都不会被更新取代,因为先前绘制的基元是位在目前基元的前面。对于被判定为较先前绘制的基元更接近观看者的目前基元,其相关信息都会传送至像素着色器22,以决定其颜色信息。
为了达到最佳化绘图管线的效能的目的,必须取得与管线耗能相关的信息。绘图数据的数量与复杂度可反映出管线的耗能、延迟以及瓶颈,进而影响效能。因此,确认管线与数据流程的问题来源有助于增进管线效能。
发明内容
本发明是关于在绘图处理单元中执行暂存器存取与操作的方法和系统。
本发明实施例提供一个绘图处理单元,其包含执行单元、存储器单元与地址转译单元。执行单元用以执行可编程的着色器操作,以实现多个管线的操作处理。存储器单元用以形成暂存器文件来调节执行单元所执行的所有线程的暂存器操作。存储器单元包含多个存储库,其中多个第一存储库是分配给多个第一线程,多个第二存储库是分配给多个第二线程。地址转译单元用以将逻辑暂存器识别符转译为物理存储器地址。
本发明另一实施例提供另一绘图处理单元,其包含执行单元、存储器单元与线程控制器。执行单元用以执行可编程的着色器操作,以实现多个管线的操作处理。存储器单元用以形成暂存器文件来调节执行单元所执行的所有线程的暂存器操作。存储器单元包含多个存储库,其中多个第一存储库配置给多个第一线程,多个第二存储库配置给多个第二线程。线程控制器用以管 理线程对暂存器的存取,以减少延迟。
本发明的又一实施例提供一种多线程的执行单元的操作方法,此操作方法包含以下步骤:首先接收对应于一逻辑暂存器存取的逻辑暂存器要求,以实现指定线程的处理操作。接着产生一逻辑暂存器识别符,此逻辑暂存器识别符是根据该逻辑暂存器与指定线程的识别符的相关信息而产生。根据逻辑暂存器要求将逻辑暂存器识别符转译为物理存储器地址,再根据物理存储器地址存取存储器单元的一物理地址,以实现对应于逻辑暂存器识别符的暂存器相关的处理操作,该指定线程可通过逻辑暂存器识别符来存取存储器单元的物理地址。
附图说明
图1为现有技术的计算机系统的绘图管线的部份元件的功能方块图。
图2为本发明一实施例的绘图处理管线的部分元件方块图。
图3为本发明一实施例的绘图处理器的方块图。
图4为本发明一实施例的计算核心单元的内部方块图。
图5为本发明一实施例的执行单元的功能方块图。
图6为本发明一实施例的共同暂存器文件的数据流向。
图7为本发明一实施例的共同暂存器文件架构图。
图8为本发明一实施例的执行单元内部方块图。
图9为本发明一实施例的执行单元操作流程图。
附图符号说明
10:主控计算机
12、120:命令串流处理器
14:解析器
16、54:顶点着色器
18、58:光栅扫瞄器
20:深度测试
22、60:像素着色器
24、62:帧缓冲器
50:存储器单元
52:输入组合器
56:几何着色器
105:计算核心单元
110:纹理滤波单元
115:像素封装器
125:执行单元集区控制单元
130:回写单元
135:纹理地址产生器
205:存储器存取单元
210:L2闪速存储器
220:执行单元输出接口
230:执行单元集区
235:执行单元输入接口
240、800:执行单元
520:共同暂存器文件
521:读取端口
522:写入端口
523:读写端口
530:数据输出单元
810:线程执行逻辑单元
820:存储器
830:共同暂存器文件
840:线程控制器
842:线程分派逻辑单元
844:线程回收逻辑单元
846:线程配对逻辑单元
860:转译单元
910:接收逻辑暂存器要求
920:产生逻辑暂存器识别符
930:转译为物理存储器地址
940:存取对应的存储器地址
具体实施方式
以下将结合附图来说明本发明的各个实施例,虽然本发明是藉由这些实施例来说明,但本发明不局限于下面所揭示的实施例,下述实施例的变形、改进与等同实施方式皆属于本发明的范围。
请参照图2,其绘示本发明一实施例的部分元件方块图,特别是绘图处理管线的基本元件。首先是输入组合器(input assembler)52,其基本上是用以形成管线的几何基元和工作项目,几何基元是由顶点所组成,工作项目则提供管线执行。输入组合器52自存储器单元接收数据,并藉此产生三角形、线段、点或者其他欲引入管线的几何基元。当几何基元组成后便传送至顶点着色器54。顶点着色器54执行转换、扫描和打光等操作来处理顶点,接着传送至几何着色器(geometry shader)56。几何着色器56所接收的输入为一完整基元的所有顶点,并将这些顶点以单一拓朴的形式输出,例如三角形串,线段串或是点清单等。此外几何着色器56还可执行诸如镶嵌和阴影锥生成等操作,最后输出数据至光栅扫描器58。光栅扫瞄器58是用以剪裁和设定基元,并决定何时和如何启动像素着色器60。像素着色器60是在光栅扫描器58输出一基元时启动以处理其中的每一像素。如所已知,像素着色器60可执行内插或其他操作来决定输出至帧缓冲器62的像素颜色值。图2的各元件的功能操作为本领域技术人员所熟知,在此不赘述。本发明是关于用以实现一般用途且可复制的处理架构的动态排程的系统和方法,此处理架构可执行顶点着色器54、几何着色器56、和像素着色器60的各项操作,因此这些元件的内部操作和细部实现方式在此不多作说明,以使本发明可获得较完整充分的理解。
图3为本发明一实施例的绘图处理器的方块图。图3仅绘示有助于理解本发明的相关元件,并未完整绘示绘图处理器的所有元件,本领域的技术人员应可自图3理解相关绘图处理装置的一般功能和架构。此绘图处理装置包含计算核心单元105,用以处理各种指令,且可在单一时钟周期执行多个指令。
除了计算核心单元105之外,此绘图处理装置还包括纹理滤波单元110、像素封装器115、命令串流处理器120、回写单元130、纹理地址产生器135和执行单元集区控制单元(EU pool control unit)125。执行单元集区控制单元 125包含顶点闪速存储器和/或串流闪速存储器。计算核心单元105可接收各元件的输入,并输出至其他元件。
举例而言,纹理滤波单元110提供纹理数据给计算核心单元105(通过输入端口A和B)。在本发明的部分实施例中,纹理数据的格式是512位的数据分组,以下叙述的数据结构亦与此相同。
像素封装器115通过输入端口C和D提供像素着色器输入给计算核心单元105,同样是512位的格式。此外,像素封装器115会向计算核心单元105要求像素着色器任务,包含指定执行单元号码与线程号码。由于像素封装器115与纹理滤波单元110的操作为本领域的现有技术,在此不多做讨论。虽然图3的实施例中数据是以512位的格式传递,本领域的技术人员应可理解数据分组的大小可依实际需要改变,以达到所需的效能或特性。
命令串流处理器120提供三角形顶点索引给执行单元集区控制单元125,于图3的实施例中,顶点索引的数据格式是256位。执行单元集区控制单元125组合来自串流闪速存储器的顶点着色器输入,并通过输入端口E传送数据给计算核心单元105。执行单元集区控制单元125也组合几何着色器输入并通过输入端口F传送数据给计算核心单元105。执行单元集区控制单元125还可控制执行单元输入接口235和执行单元输出接口220(图5),简言之,执行单元集区控制单元125掌控计算核心单元105的输入与输出数据流向。
在处理过程中,计算核心单元105通过输出端口J1和J2提供像素着色器输出给回写单元130,像素着色器输出包括红/绿/蓝/透明度(RGBA)信息,如所已知。根据先前所揭示的数据结构,像素着色器输出可以是2个512位的数据串流形式,然而其他实施例亦可以实现为不同的位大小。
类似于像素着色器输出,计算核心单元105通过输出端口K1和K2输出纹理座标给纹理地址产生器135,包含UVRQ信息。纹理地址产生器135发出纹理要求T#REQ给计算核心单元105(从输入端口X接收),而计算核心单元105从输出端口W输出纹理数据T#DATA给纹理地址产生器135。由于纹理地址产生器135和回写单元130为习知技术,在此不多做讨论。再次重申,虽然此实施例中UVRQ与RGBA数据皆是512位的格式,但其他实施例中亦可为不同的数据长度。于图3的实施例中,总线分割为2条512位的通道,分别传送4个像素的128位RGBA颜色值以及128位UVRQ纹 理座标。
计算核心单元105和执行单元集区控制单元125可以相互传送512位的闪速溢出(cache spill)数据,此外,2个512位的顶点闪速写入数据可以从计算核心单元105的输出端口M1和M2输出至执行单元集区控制单元125以作进一步处理。
了解计算核心单元105的外部数据交换之后,请参看图4计算核心单元105的内部方块图。计算核心单元105包括存储器存取单元(memory access unit)205,其通过存储器接口仲裁器(memory interface arbiter)245耦接至第二阶闪速存储器(L2 cache)210。
L2闪速存储器210从输入端口G接收图3的执行单元集区控制单元125输出的顶点快速溢出数据,并从输出端口G提供顶点闪速预取(vertex cache prefetch)数据给执行单元集区控制单元125。此外,L2闪速存储器210可自输入端口X从纹理地址产生器35接收纹理要求T#REQ,并从输出W提供纹理数据T#DATA给纹理地址产生器35来回应此纹理要求T#REQ。
存储器接口仲裁器245可作为区域影音存储器(帧缓冲器)的控制接口。总线接口单元(未绘示)通过总线提供连接至处理单元的接口。存储器接口仲裁器245和总线接口单元提供存储器单元和执行单元集区230的L2闪速存储器210之间的接口。在某些实施例中,L2闪速存储器210是通过存储器存取单元205连接至存储器接口仲裁器245和总线接口单元。存储器接口仲裁器245将L2闪速存储器210或其他单元的虚拟存储器地址转换成物理存储器地址。
存储器接口仲裁器245为L2闪速存储器210提供存储器存取(亦即读/写存取),撷取指令、常数、数据和纹理数据,直接存储器存取(亦即载入/储存),暂时储存存取的索引,暂存器溢出以及顶点闪速存储器溢出等等。
计算核心单元105还包括执行单元集区230,其中包括多个执行单元(EU,execution unit)240a至240h,统称执行单元240。每一个执行单元240都包含执行单元控制单元和区域存储器(未绘示),并且可以在单一时钟周期执行多个指令。因此在最大使用效率时,执行单元集区230基本上可以同时执行多个线程。执行单元240和其同步执行能力将于后续详述。虽然图4的实施例绘示了8个执行单元EU0至EU7,本领域的技术人员应可理解其数量不限定于8个,在其他实施例中亦可包含较多或较少数量的执行单元。
计算核心单元105还包含执行单元输入接口235和执行单元输出接口220,分别用以提供执行单元集区230的输入和输出。执行单元输入接口235和执行单元输出接口220可以是交叉开关(crossbar)、总线或是其他输出/输入机制。
执行单元输入接口235从图3的执行单元集区控制单元125接收顶点着色器输入(输入端口E)和几何着色器输入(输入端口F),并提供给执行单元集区230的各个执行单元240来处理。此外,执行单元输入接口235还接收像素着色器输入(输入端口C和D)和纹理分组(输入端口A和B),并传送给执行单元集区230的各个执行单元240来处理。执行单元输入接口235亦可从L2闪速存储器210接收执行单元集区230所需要的信息。
于图4的实施例中,执行单元输出接口220划分为偶数输出接口225a和奇数输出接口225b。偶数输出接口225a负责管理偶数执行单元240a、240c、240e、240g的输出,而奇数输出接口225b负责管理奇数执行单元240b、240d、240f、240gh的输出。整体而言,执行单元输出接口225a和225b用以接收执行单元集区230的输出数据,例如UVRQ或RGBA,这些输出数据可以导回至L2闪速存储器,或是从计算核心单元105输出至回写单元130(通过输出端口J1和J2),或是通过输出端口K1和K2输出至纹理地址产生器135,如图3所示。
以上概略描述本发明实施例的基本架构和元件,于下将介绍本发明其他实施例的元件和操作。如上所述,本发明所提供的是用以改善绘图处理装置的整体效能的系统与方法。依此考量,绘图处理装置的效能就整体来说与其中的管线所处理的数据流量相关。本发明的实施例所使用的各种着色器是可编程的着色器,每个元件的功能并非以具有不同硬件设计的个别着色器单元搭配个别指令集来实现,而是通过执行单元240a~240h搭配统一指令集来执行各项功能。每一个执行单元240的设计都是相同的,并可编程其操作,此外每个执行单元240都可实现多线程操作,例如同时处理64个线程。于其他实施例中亦可实现不同数量的同步线程。当顶点着色器54、几何着色器56、像素着色器60等产生各项着色器任务之后,这些着色器任务会通过接口单元和排程器传送至对应的执行单元来执行。
本发明的实施例是关于可实现绘图操作环境的效能最佳化的独特硬件架构。因此,本发明的实施例揭示了可提供并支援共同暂存器区域的元件架 构,此共同暂存器区域可由执行单元的多个线程所共享,也可称为共同暂存器文件(common register file,CRF)。图5、6、7绘示了此硬件架构的实施例。
请先参见图5,其绘示本发明一实施例的执行单元的功能方块图,包含共同暂存器文件520,以及相关的执行单元输入接口235和执行单元数据路径(EU data path)230。虽然图4的实施例包含多个执行单元240,但图5仅就单一个执行单元240作说明。执行单元集区230之中的每一个执行单元240都可包含一个或多个共同暂存器文件520,而执行单元数据路径230包含执行单元240用以实现计算功能的硬件或电路,其中可能包括算术逻辑单元(ALU,浮点或固定运算),存储器单元,专用计算硬件等等。在本发明的精神所涵盖的范围中,执行单元240可包含各种类型的处理硬件单元或逻辑单元。
数据输出单元530用以提供执行单元数据路径230所输出的数据,并将数据导向执行单元输出接口220或是回传至共同暂存器文件520。
请参见图6。于本发明一实施例中,共同暂存器文件520可分割为两个部份,其中一个部分520a是配置给所有的偶数线程,而另一个部份520b则是配置给所有的奇数线程。与图4中执行单元的分组相似,线程也可被分为偶数群组和奇数群组。图6绘示在此分组的下执行单元输入接口235、执行单元输出接口220、执行单元数据路径225、数据输出单元530、以及共同暂存器文件520之间的数据流向。
于本发明实施例中,共同暂存器文件520又可划分为多个存储库(bank)。如图7所绘示,偶数半区520a和奇数半区520b分别又分割为4个存储库,此结构的优点将于下文详叙。每一个存储库分别包含读取端口521,写入端口522以及读写端口523,但于其他实施例中,存取端口的数目可依需要增减。若存储器单元的存取端口数目增加,由于需要仲裁机制和其他逻辑单元,相关成本通常会增加。若存储器单元的存取端口数目减少,由于待处理的读取和写入都需要等待处理中的读写完成,其整体效能降低。
图7的实施例中共同暂存器文件520分割为8个存储库。存储库0、2、4、6由偶数线程0、2...14所共享,而存储库1、3、5、7由奇数线程1、3...15所共享。对于每一个存储库而言,读取端口521和写入端口522被执行单元数据路径225用来作为指令执行所引起的读取或写入存取之用。图8的线程控制器840则负责将不同线程的指令配对,使延迟时间和个别存储库的读写 冲突减到最少。个别线程内文的资源冲突的避免或减少通常是在编译器(compiler)层级控制的。
读写端口523被执行单元输入和输出端口用来载入初始的线程输入数据,以及将最终的线程输出数据写至执行单元集区或其他模组单元。执行单元数据路径230和执行单元输出/输入的读写存取使用分离的存取端口的好处在于,线程的输入或输出的载入或载出可以和线程的执行平行地进行,还可以避免执行单元数据路径230和输入输出要求之间不必要的仲裁,此种情况会造成硬件复杂度的显著增加。
读写端口523是由执行单元的输入和输出所共享,且写入的优先级高于读取。512位的输入数据分别进入4个不同的存储库,以避免在载入至共同暂存器文件520时发生存储器冲突,每一个存储库124位。数据还会伴随2位的通道索引(channel index)以及512位的排序基底地址(base address),用以识别输入数据的起始存储库。举例而言,如果起始通道索引是1,则自最低位起算的第一笔128位载入存储库1,其后的128位载入存储库2,以此类推,最后的128位载入存储库0,此实施例中假设此线程的存储库偏移量(bank offset)为0。在其他实施例中,可藉由线程识别符的2个最低位来产生存储库偏移量,使每一线程的起始存储库地址可随机产生。
由于共同暂存器文件520所能提供的物理存储器空间通常都小于暂存器的占用空间(footprint),也绝对小于暂存器可定义的空间,因此逻辑暂存器识别符与物理暂存器地址之间需要适当的转换或转译,逻辑暂存器识别符的范例如软件所提供的暂存器识别符。地址转译的一种管理方式即是将共同暂存器文件520之内的存储器空间当做闪速存储器空间来处理。地址转译单元提供地址转译,近似于提供闪速存储器存取的闪速标签或是虚拟存储器机制中的转译后备缓冲区(TLB,translation lookaside buffer)。图8将详细描述地址转译的一种实施方式。
请注意,在不脱离本发明的精神与范畴的情况下,其他替代结构亦可用于实现本发明。举例来说,存储器的存储库的大小可以不是128位,每个存储库可以包含较多或较少数量的存取端口,此外存储库的数量亦可增加或减少。本发明实施例所揭示的特定架构仅为叙述之便,并在各种设计因素的考量之下,可提供一定程度的整体效能和成本效益。
如上所述,执行单元用以处理着色器程序,例如顶点着色器程序,几何 着色器程序以及像素着色器程序。每一个着色器都是由软件所定义的程序,软件设计师所选择的程序码可配置暂存器给该程序。举例而言,像素着色器程序可以利用下面的虚拟程序码片段来定义特定输入、输出以及暂时暂存器:
在这个程序码片段中,总共需要80个暂存器,设计一个大到可以支援所有线程(本实施例为32个)的所有暂存器总共需要2560个暂存器空间。这种设计会耗费过多的存储器空间,并且造成存储器空间不敷使用,因为通常在同一时间内仅有小部分的暂存器被使用。
相对地,着色器程序的转译器可以评估着色器程序在执行期间内所需的逻辑暂存器空间的最大值或是占用空间。也就是说,转译器可以判断在程序执行期间,同一时间可能使用的最大线程数量,而存储器配置可以据此设计为提供刚好的物理存储器空间来符合所有线程最大的占用空间。在上面的实施例中,着色器暂存器可以对应至某一物理存储器空间。然而,这种方式同样也可能有过度配置的问题,因为并非所有线程都会同时被使用,当然也并非所有线程都会在单一事件中占用到最大暂存器使用量。相对而言,如果存储器空间配置过小,则会造成较高速的暂存器与系统存储器之间频繁的数据交换,导致效能低落。
因此,着色器程序的转译器可以根据着色器执行的某一需求量来配置物理暂存器,例如输入暂存器。当此输入暂存器已被读取而且不需要再被使用时,被配置为输入暂存器的物理暂存器可以重新对应至其他用途,例如暂时或输出暂存器。在另一个实施例中,转译器可以配置一个物理暂存器做为暂时暂存器,用以储存着色器程序所计算或合成的数值。当数值被计算完毕而且准备输出之后,此物理暂存器可以重新配置为输出暂存器。
本发明所使用的存储库结构反映出设计考量之间的权衡。举例而言,每 个存储器空间的尺寸相对较小,并各自具有读取端口和写入端口,这种结构基本上等同于具有多个存取端口的大型存储器,但成本相对较低。再者,存储库结构使得线程转译器得以减低某些指令延迟。
以下面的指令为例,R2←R0,R1,也就是把暂存器R0的值与暂存器R1的值相加,再将结果存入暂存器R2。图8的线程控制器840可以使这些暂存器分别存入不同的存储器存储库,如此一来,暂存器R0与R1的值可以分别自对应的读取端口同时被读取。
图8绘示本发明一实施例的执行单元800内部组成的方块图。如上所述,每一个执行单元800包含用以执行多个线程的线程执行逻辑单元810,在一实施例中,线程逻辑单元810可执行多达32个独立的平行线程,其他实施例亦可支援较多或较少的线程。每个执行单元800还包含存储器820以及暂存器空间830(亦即共同暂存器文件)。此外,每个执行单元800包含线程控制器(或执行单元管理器)840。线程控制器840用以管理和控制执行单元的各项操作,如本发明所提及的各种功能和特性。举例来说,线程控制器840包含用以分派执行单元被指派的任务给可用线程的线程分派逻辑单元842,线程的分派包含可支援该线程的执行的相关资源,例如存储器和暂存器。
相似地,线程控制器840包含用以在任务完成后回收线程以分派后续任务的线程回收逻辑单元844。线程控制器840还包含用以配对线程以减少或隐藏延迟的线程配对逻辑单元846。举例来说,读取-修改-写入指令需要耗费多个时钟周期来执行,因为暂存器值必须先从共同暂存器文件830(先前实施例中为元件520)读出,然后传送到执行单元数据路径来作计算(也就是修改)。接着在下一个时钟周期,将计算后的值写回共同暂存器文件830。在修改的时钟周期中,其他数据也可能需要通过存储器存取端口来传递或沟通,也就是说,在执行单元数据路径执行修改指令当中,其他指令也可能发生暂存器文件存取。因此,线程配对逻辑单元846可以最大化暂存器文件读取端口或写入端口使用率或流量的方式来配对指令,以达到减少指令延迟的目的。
如上所述,共同暂存器文件830的总体存储器空间是依据设计和效能之间的权衡来选择的。然而存储器空间通常都会比着色器程序的最大占用空间总和(包含所有线程)来得小。还有,处理逻辑暂存器识别符和共同暂存器文件的物理存储器地址之间的转换或转译的一种方式与闪速存储器的实现方 式类似。例如,暂存器可以在着色器程序有需要时才做配置,换句话说,可以利用闪速命中测试来实现暂存器资源的配置和回收。以上述的虚拟程序码为例,虽然着色器程序中定义了逻辑暂存器,但是这些逻辑暂存器未必会配置到硬件的物理暂存器,除非这些逻辑暂存器确实在着色器程序的执行中被使用到。由于存储器空间被分割为存储库,这种方式也有其限制和先决条件。
因此,转译单元860是用将逻辑暂存器识别符(或地址)转译为物理暂存器地址(或识别符)。下方表一显示了暂存器转译的一个范例。
表一
共同暂存器文件索引(CRF index,也就是程序暂存器识别符)以及线程识别符(thread identifier)可以用来构成特定的逻辑地址,用于读取或写入共同暂存器文件时做标签比对。地址的格式是对齐为128位,也就是图7中存储库的宽度。单一地址的13个位包含来自共同暂存器文件索引的8位和来自线程识别符的5位(用以识别相关线程是32个线程中的哪一个),两者合并形成共同暂存器文件830中每一个项目的独特地址。
在本发明的一个实施例中,每1024位的存储线(line)有一个标签(tag),每一条存储线有2个512位的项目(entry),每个项目都是横跨4个存储库来储存的。共同暂存器文件索引的最低2位加上当前线程的存储库偏移量就产生存储库选择(bank select)。
标签比对机制允许不同线程的暂存器共享单一的共同暂存器文件830,而不是每一个线程各自拥有一个暂存器文件。但是,共同暂存器文件830中的暂存器配置对个别线程来说未必要是连续的,因为暂存器可以藉由标签依实际需要被配置或释放,并以标签来识别。这种方式可以达到有效率的存储器空间使用。此外,执行单元集区资源监控器(未绘示)可以记录共同暂存器文件830的存储器使用状态,以确保在排程新任务给执行单元的可用线程之前,尚有足够的可用暂存器空间。这是为了保证当写入配置发生时,存储器空间内会有可用的空闲存储线,暂存器才不会重复。此外,暂存器资源可以根据所指定的标签(包含线程识别符)来释放,这让某一条线程所使用的所有物理暂存器可以几乎同时被释放,以供其他执行中的线程来使用。
接着请参见图9,其绘示本发明图8的执行单元800的操作流程图,此操作流程图也是本发明的操作方法的一个实施例。请注意此流程图并非用以涵盖所有执行单元的可能操作,而是用以示意本发明的执行单元800如何配置共同暂存器文件830的项目以及提供地址转译的相关操作的实施例。
首先在步骤910,接收暂存器要求。暂存器要求可以是由执行单元800所执行的其中一线程所发出,也就是说,线程可以藉由提出对逻辑暂存器的请求来发出暂存器请求,例如由执行于线程中的软件提供一个线程识别符。在步骤920中,对应于线程所提出的暂存器要求,执行单元800产生逻辑暂存器识别符。如上所述,在某些实施例中逻辑暂存器识别符可包含线程识别符还有与线程所要求的逻辑暂存器相关的数据,如此一来即可产生对应于线程所要求的逻辑暂存器的独特逻辑暂存器识别符。在本发明的一个实施例中,针对线程所要求的每个逻辑暂存器,可以将线程识别符与逻辑暂存器相关数据组合以产生逻辑暂存器识别符。执行单元800接着于步骤930将步骤920所产生的逻辑暂存器识别符转译成物理存储器地址,换句话说,执行单元800配置一个物理暂存器或是存储器位置给逻辑暂存器识别符。这个步骤允许当线程要求暂存器的时候,共同暂存器文件830中的某一项目可配置给线程的某一操作。本发明的一个实施例中步骤920的地址转译是由执行单元800的暂存器地址转译单元860所实现。接着在步骤940执行单元800即可允许共同暂存器文件830中的某一暂存器或存储器位置通过逻辑暂存器识别符被线程所存取。
本发明的技术人员应可理解,上述所提的执行单元还可包含额外的元件以实现各项功能和操作。在本发明中“逻辑单元”是指专用硬件或是一般用途的硬件,包含一般电路或半导体电路,上述硬件可被编程以实现某些专门或预先定义的功能或操作。
本发明的流程方法实施例所包含的各项操作或方块应解读为程序码的模组、片段或部分,其包含可实现特定逻辑功能或步骤的一或多个指令。任何可实现本发明各实施例的目的和功能的其他变形或替换实施例仍属于本发明所涵盖的范围,在不脱离本发明精神之下,其他实施例亦可依据功能特性改变操作顺序或同步执行。
虽然本发明以多个实施例揭示如上,但本领域的技术人员应可理解上述实施例的各种替换、变更或改进仍属于本发明的范围。例如本发明的绘图处 理装置可包含用以处理可编程着色器操作的执行单元,此执行单元可处理多个线程的操作。绘图处理装置还可包含可形成暂存器文件的存储器,用以调节执行单元的各线程所需的暂存器操作。此存储器规划为存储库架构,其中一部分的存储库配置给多个第一线程,另一部分的存储库配置给多个第二线程。此外,绘图处理装置还包含地址转译单元,用以将逻辑暂存器识别符转译成物理暂存器地址。
在本发明的另一实施例中,绘图处理装置可包含用以处理可编程着色器操作的执行单元,此执行单元可处理多个线程的操作。绘图处理装置还可包含可形成暂存器文件的存储器单元,用以调节执行单元的各线程所需的暂存器操作。此存储器单元规划为存储库架构,其中一部分的存储库配置给多个第一线程,另一部分的存储库配置给多个第二线程。此外,绘图处理装置还包含线程控制器,用以管理线程对暂存器的存取,藉此减少指令的延迟。
本发明的又一实施例揭示多线程的执行单元的操作方法。此方法包含接收一暂存器的逻辑暂存器识别符,以供某一线程的处理操作来使用,将此逻辑暂存器识别符与该线程的线程识别符组合以产生一个物理存储器地址,此物理存储器地址对应至上述逻辑暂存器识别符,接着根据物理存储器地址存取存储器,以实现与该逻辑暂存器识别符相关的暂存器操作。
Claims (19)
1.一种具有多线程执行单元的绘图处理装置,包含:
一执行单元,用以执行可编程着色器操作,该执行单元可执行多个线程的处理操作;
一存储器单元,用以形成一暂存器文件来调节该多个线程的暂存器操作,该存储器单元包含多个存储库,其中多个第一存储库分配给多个第一线程,多个第二存储库分配给多个第二线程;
一线程控制器,用以对应于该多个线程所发出的一逻辑暂存器要求,配置和释放该存储器单元的该多个存储库;以及
一地址转译单元,用以将对应于该逻辑暂存器要求的一逻辑暂存器识别符转译为该存储器单元的一物理存储器地址;其中该逻辑暂存器识别符包含一线程识别符和一暂存器索引,该线程识别符用以识别该执行单元内的一线程,该暂存器索引用以识别该存储器单元的一存储库。
2.如权利要求1所述的绘图处理装置,其中该存储器单元规划为8个存储库,其中4个存储库配置给该多个第一线程,4个存储库配置给该多个第二线程。
3.如权利要求2所述的绘图处理装置,其中该多个第一线程为偶数线程,该多个第二线程为奇数线程。
4.如权利要求1所述的绘图处理装置,其中该存储器单元的每一个该存储库包含一读取端口、一写入端口和一读写端口。
5.如权利要求1所述的绘图处理装置,其中该转译单元利用该可编程着色器操作所指派的该线程识别符以及该暂存器索引将该逻辑暂存器识别符转译为该物理存储器地址。
6.如权利要求5所述的绘图处理装置,其中该线程识别符为5位,该暂存器索引为8位。
7.如权利要求1所述的绘图处理装置,其中该线程控制器在对应于该逻辑暂存器要求的处理操作完成后,释放对应于该逻辑暂存器识别符的该存储库。
8.一种具有多线程执行单元的绘图处理装置,包含:
一执行单元,用以执行可编程着色器操作,以实现多个线程的操作处理;
一暂存器文件,用以调节该执行单元的该多个线程的暂存器操作,该暂存器文件包含多个存储库,其中多个第一存储库配置给多个第一线程,多个第二存储库配置给多个第二线程;
一线程控制器,用以管理该多个线程对该暂存器文件的存取,以及用以产生一特定线程对一逻辑暂存器的要求;以及
一地址转译单元,用以将对应于该逻辑暂存器要求的一逻辑暂存器识别符转译为该暂存器文件的一物理存储器地址;其中该逻辑暂存器识别符包含一线程识别符和一暂存器索引,该线程识别符用以识别该执行单元内的该特定线程,该暂存器索引用以识别对应的该暂存器文件的该存储库。
9.如权利要求8所述的绘图处理装置,其中该线程控制器用以配对指令,使得该特定线程的暂存器操作处理时,另一线程可同时存取另一存储库。
10.如权利要求8所述的绘图处理装置,其中该暂存器文件规划为8个该存储库,4个该存储库配置给该多个第一线程,4个存储库配置给该多个第二线程。
11.如权利要求10所述的绘图处理装置,其中该多个第一线程为偶数线程,该多个第二线程为奇数线程。
12.如权利要求8所述的绘图处理装置,其中该暂存器文件的每一个该存储库包含一读取端口、一写入端口和一读写端口。
13.如权利要求8所述的绘图处理装置,其中该转译单元利用该可编程着色器操作所指派的该线程识别符以及该暂存器索引将该逻辑暂存器识别符转译为该物理存储器地址。
14.如权利要求13所述的绘图处理装置,其中该线程识别符为5位,该暂存器索引为8位。
15.如权利要求8所述的绘图处理装置,其中该线程控制器还用以在该特定线程对该逻辑暂存器识别符所对应的该存储库存取结束后,释放该逻辑暂存器识别符所对应的该存储库。
16.一种适用于具有多线程执行单元的绘图处理装置的存储器存取方法,包含:
接收对应于一线程的一暂存器操作的一逻辑暂存器请求;
根据与该逻辑暂存器请求相关的数据与该线程的一线程识别符产生一逻辑暂存器识别符;
转译该逻辑暂存器识别符为一物理存储器地址,该物理存储器地址对应于该逻辑暂存器请求;
根据该物理存储器地址存取一存储器的一物理地址,以实现对应于该逻辑暂存器识别符的该暂存器操作,该线程可通过该逻辑暂存器识别符来存取该存储器的该物理地址。
17.如权利要求16所述的存储器存取方法,其中该产生步骤还包含合并该逻辑暂存器请求相关的数据与该线程识别符以产生该逻辑暂存器识别符。
18.如权利要求17所述的存储器存取方法,其中该线程识别符为5位,该逻辑暂存器请求相关的数据为8位的暂存器索引。
19.如权利要求16所述的存储器存取方法,还包含:
对应于该逻辑暂存器识别符的该暂存器操作结束后,释放该逻辑暂存器请求对应的该物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/764,243 | 2010-04-21 | ||
US12/764,243 US8514235B2 (en) | 2010-04-21 | 2010-04-21 | System and method for managing the computation of graphics shading operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102156959A true CN102156959A (zh) | 2011-08-17 |
CN102156959B CN102156959B (zh) | 2014-04-23 |
Family
ID=44438443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110079301.4A Active CN102156959B (zh) | 2010-04-21 | 2011-03-31 | 具有多线程执行单元的绘图处理装置及其存储器存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8514235B2 (zh) |
CN (1) | CN102156959B (zh) |
TW (1) | TWI437507B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050627A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 线程机制的条件结束 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10534614B2 (en) * | 2012-06-08 | 2020-01-14 | MIPS Tech, LLC | Rescheduling threads using different cores in a multithreaded microprocessor having a shared register pool |
US11663767B2 (en) | 2013-02-20 | 2023-05-30 | Nvidia Corporation | Power efficient attribute handling for tessellation and geometry shaders |
US9767602B2 (en) * | 2014-06-30 | 2017-09-19 | Intel Corporation | Techniques for reduced pixel shading |
CN104572020B (zh) * | 2014-12-31 | 2017-03-15 | 中国电子科技集团公司第三十八研究所 | 一种寄存器堆分页式扩展装置及其实现方法 |
KR20160144698A (ko) * | 2015-06-09 | 2016-12-19 | 에스케이하이닉스 주식회사 | 메모리 장치 |
GB2546308B (en) * | 2016-01-15 | 2019-04-03 | Advanced Risc Mach Ltd | Data processing systems |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10026145B2 (en) * | 2016-12-13 | 2018-07-17 | Qualcomm Incorporated | Resource sharing on shader processor of GPU |
US10360034B2 (en) * | 2017-04-18 | 2019-07-23 | Samsung Electronics Co., Ltd. | System and method for maintaining data in a low-power structure |
US11714760B2 (en) * | 2019-05-24 | 2023-08-01 | Texas Instmments Incorporated | Methods and apparatus to reduce bank pressure using aggressive write merging |
US10891708B1 (en) | 2019-11-25 | 2021-01-12 | Arm Limited | Shader program execution in graphics processing |
CN113345067B (zh) * | 2021-06-25 | 2023-03-31 | 深圳中微电科技有限公司 | 一种统一渲染方法、装置、设备和引擎 |
CN116893854B (zh) * | 2023-09-11 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 指令资源的冲突检测方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1056968A (zh) * | 1990-05-25 | 1991-12-11 | Gec-普列斯长途电讯有限公司 | 数据单元交换机 |
US20060256120A1 (en) * | 2002-12-26 | 2006-11-16 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
JP2006318404A (ja) * | 2005-05-16 | 2006-11-24 | Mitsubishi Electric Corp | 図形描画装置 |
CN1928918A (zh) * | 2005-10-14 | 2007-03-14 | 威盛电子股份有限公司 | 图形处理装置及于图形处理装置中执行着色操作的方法 |
CN1991906A (zh) * | 2005-10-18 | 2007-07-04 | 威盛电子股份有限公司 | 在多重图形处理单元图形子系统中进行多重缓冲 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313675B2 (en) * | 2005-06-16 | 2007-12-25 | Intel Corporation | Register allocation technique |
US7454599B2 (en) | 2005-09-19 | 2008-11-18 | Via Technologies, Inc. | Selecting multiple threads for substantially concurrent processing |
US8144149B2 (en) | 2005-10-14 | 2012-03-27 | Via Technologies, Inc. | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units |
US7692660B2 (en) | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
US8963930B2 (en) | 2007-12-12 | 2015-02-24 | Via Technologies, Inc. | Triangle setup and attribute setup integration with programmable execution unit |
-
2010
- 2010-04-21 US US12/764,243 patent/US8514235B2/en active Active
-
2011
- 2011-03-25 TW TW100110323A patent/TWI437507B/zh active
- 2011-03-31 CN CN201110079301.4A patent/CN102156959B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1056968A (zh) * | 1990-05-25 | 1991-12-11 | Gec-普列斯长途电讯有限公司 | 数据单元交换机 |
US20060256120A1 (en) * | 2002-12-26 | 2006-11-16 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
JP2006318404A (ja) * | 2005-05-16 | 2006-11-24 | Mitsubishi Electric Corp | 図形描画装置 |
CN1928918A (zh) * | 2005-10-14 | 2007-03-14 | 威盛电子股份有限公司 | 图形处理装置及于图形处理装置中执行着色操作的方法 |
CN1991906A (zh) * | 2005-10-18 | 2007-07-04 | 威盛电子股份有限公司 | 在多重图形处理单元图形子系统中进行多重缓冲 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050627A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 线程机制的条件结束 |
CN104050627B (zh) * | 2013-03-15 | 2017-07-21 | 英特尔公司 | 线程机制的条件结束 |
Also Published As
Publication number | Publication date |
---|---|
CN102156959B (zh) | 2014-04-23 |
US8514235B2 (en) | 2013-08-20 |
US20110261063A1 (en) | 2011-10-27 |
TW201142740A (en) | 2011-12-01 |
TWI437507B (zh) | 2014-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156959B (zh) | 具有多线程执行单元的绘图处理装置及其存储器存取方法 | |
CN101124613B (zh) | 片段着色管线中增加按比例缩放性的图形处理子系统及方法 | |
CN109978751A (zh) | 多gpu帧渲染 | |
CN103793893B (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
CN101425175A (zh) | 着色器处理系统与方法 | |
TWI686769B (zh) | 用於演現圖形物件的設備,方法及非暫時性電腦可讀的儲存媒體 | |
US7830390B2 (en) | Color computation of pixels using a plurality of vertex or fragment shader programs | |
CN100547610C (zh) | 顶点着色器、绘图处理单元及其相关的流程控制方法 | |
CN107038742A (zh) | 屏幕空间管线中的多通道渲染 | |
CN103810669A (zh) | 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块 | |
CN108694698A (zh) | 针对执行块的分层通用寄存器堆(grf) | |
CN104036537A (zh) | 多分辨率一致光栅化 | |
CN101877116A (zh) | 绘图处理单元、执行单元以及工作管理方法 | |
CN103761215B (zh) | 基于图形处理器的矩阵转置优化方法 | |
EP3614344B1 (en) | Frustum rendering | |
CN101371247A (zh) | 用于图形处理器的并行阵列结构 | |
US5325485A (en) | Method and apparatus for displaying primitives processed by a parallel processor system in a sequential order | |
CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
EP3200158A2 (en) | Sparse rendering | |
CN103886538A (zh) | 用于存储共享顶点的技术 | |
CN106575430A (zh) | 用于像素哈希的方法和装置 | |
CN108694686A (zh) | 混合低功率同构图形处理单元 | |
CN107392836A (zh) | 使用图形处理管线实现的立体多投影 | |
CN102915563A (zh) | 三维网格模型透明绘制的方法及其系统 | |
CN103996216A (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 |