CN101388109A - 绘图处理系统、快取系统以及数据处理方法 - Google Patents
绘图处理系统、快取系统以及数据处理方法 Download PDFInfo
- Publication number
- CN101388109A CN101388109A CNA2008101704162A CN200810170416A CN101388109A CN 101388109 A CN101388109 A CN 101388109A CN A2008101704162 A CNA2008101704162 A CN A2008101704162A CN 200810170416 A CN200810170416 A CN 200810170416A CN 101388109 A CN101388109 A CN 101388109A
- Authority
- CN
- China
- Prior art keywords
- data
- mentioned
- cache
- tinter
- vertex
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一个绘图处理单元用来处理关于三维对象或场景的数据,并且将三维的数据成像于二维的显示屏幕之上。本发明一实施例是使用于绘图处理单元中的统一高速缓存系统,包括了数据储存装置和储存装置控制器。储存装置用来储存一或多个着色器单元所处理(或要处理)的绘图数据。储存装置控制器连接到数据储存装置。储存装置控制器于数据储存装置内动态地控制绘图数据的储存配置。
Description
技术领域
本发明是有关于一种三维的计算机绘图系统,特别是有关于一种绘图处理核心系统内的高速缓存和控制系统。
背景技术
用来将三维世界(真实或假想)的对象呈现于二维显示屏幕之上的三维计算机绘图系统目前正被广泛地使用于各种的应用类型之中。例如,三维计算机绘图可以用于实时互动的应用程序,像是计算机游戏、虚拟实境、科学研究等等,以及离线应用程序,像是高分辨率电影的制作、绘图设计等。由于对三维计算机绘图的需求与日俱增,此技术领域于过去几年间有了长足的发展和进步。
为了将三维的对象以二维方式呈现,使用了空间坐标和色彩特征将欲显示的对象定义于一个三维世界空间中。先决定一个对象表面的点的坐标,并且用这些点(或顶点)来建立连接这些点的线框以定义此对象的大致形状。在某些情况,这些对象可具有骨干和接合点,其可绕转、旋转等,或者具有使对象弯曲、压缩和变形等特性。一个绘图处理系统可集结对象线框的顶点来建立三角形或多边形。举例来说,对于一个具有简单结构的对象,例如一面墙或一大楼的一个面,可简单地以一个平面上形成一矩形多边形或两个三角形的四个顶点所定义。更复杂的对象,像是树或球体,可能需要上百个顶点形成上百个三角形来定义此对象。
除了定义对象的顶点,绘图处理器亦可执行其它的工作,像是决定三维的对象将如何出现在一个二维的屏幕上。此过程包括由朝向特定方向的单一相机景象决定一个三维世界的窗口框架景象。从此景象,绘图处理器可剪辑一对象其可能在镜头外面的部分、被其它对象遮蔽的部分或是偏离相机且被此对象其它部分所遮蔽的部分。此绘图处理器也可决定三角形或多边形的顶点的颜色,并且依照光线效应、反射特性和透明特性等等来做适当的调整。使用纹理贴图可将平面图片的纹理或颜色显示于三维对象的表面之上,就好像覆盖表皮层于对象之上。在某些情况,对于位于两顶点之间的像素,或位于由三个或更多个顶点所形成的多边形的表面之上的像素,如果顶点的颜色值已知的话,其像素颜色值是可以被插值的。其它的绘图处理技术可用来将这些对象呈现于平面屏幕之上。
如本领域技术人员所知,绘图处理器包括了被称为着色器的核心数据处理元件,软件开发者或本领域技术人员可以利用这些着色器来建立图像且随意控制连续影格的视频。举例来说,顶点着色器、几何着色器和像素着色器通常包含于绘图处理器之内以执行上述的诸多工作。有些工作也由像是光栅化器、像素插补器和三角设置单元等的固定功能单元所执行。借着建构具有上述个别元件的绘图处理器,制造商可以提供建构逼真三维图像或视频的基本工具。
绘图处理器于很多的处理阶段使用到高速缓存,着色装置的输出通常传送到高速缓存装置,此高速缓存装置随后提供这些数据值给下一级的着色装置,此下一级的着色装置又输出它的结果给另一个高速缓存装置等等。当特定的场景或对象需更常以某一特定的着色装置来处理时,也会同样地更常使用到与此着色装置的相关高速缓存。因为不同的软件开发者或本领域技术人员基于他们的特殊应用类型而有不同的需求,因此不容易一开始就能决定每一种高速缓存用来储存处理核心中着色器所处理的数据的可能需求量。因此,对于此绘图处理领域,有需要指出不同类型和大小的高速缓存装置于比例上的问题,因而需要提供一种有能力于三维绘图技术中克服这些和其它缺失的绘图处理系统。
发明内容
本发明揭露在高速缓存系统中处理和储存绘图数据的系统和方法。其中一个绘图处理系统的实施例包括了互相沟通的处理管线和高速缓存系统,处理管线包括多个绘图着色器阶段,处理管线内的每一绘图着色器阶段用来执行一或多个的着色运算。高速缓存系统包括多个储存单元,其中每一个储存单元用来储存关于处理管线的多个绘图着色器阶段的数据。高速缓存系统包括控制装置,其建构来管理上述数据于高速缓存系统的储存单元的配置。
在另一实施例揭露了一种绘图处理单元的高速缓存系统,此实施例的高速缓存系统包括数据储存装置以及储存装置控制器。储存装置用来储存一或多个着色器单元所处理(或要处理)的绘图数据。储存装置控制器连接到数据储存装置,用来于数据储存装置内动态地控制绘图数据的储存配置。
另外,本发明揭露了绘图处理装置内的数据处理方法。此方法包括分析多个绘图处理着色器的活动级别(activity level)。此方法亦包括根据每一绘图处理着色器的个别活动级别来决定多个绘图处理着色器的数据储存需求,此方法还包括分配一部分的存储装置。
经过阅读以下所述的图示和详细解释,对本领域技术人员而言,本发明其它的系统、方法、特征和优点将会是显而易见的。本发明的保护范围当视所附的申请专利范围所界定者为准。
附图说明
通过以下的图示可更了解本发明所揭露的所有实施例的各个观点。同一个标号于全文代表同一个元件。
图1显示根据本发明的一实施例的一绘图处理系统的方块图;
图2显示图1中所示的绘图处理单元的一实施例的方块图;
图3A显示图1中所示的绘图处理单元的另一实施例的方块图;
图3B显示图1中所示的绘图处理单元的另一实施例的方块图;
图3C还是显示图1中所示的绘图处理单元的另一实施例的方块图;
图4显示根据本发明的教述的高速缓存系统的一实施例的方块图;
图5显示根据本发明的教述的高速缓存系统的另一实施例的方块图;
图6还是显示根据本发明的教述的高速缓存系统的另一实施例的方块图;
图7还是显示根据本发明的教述的高速缓存系统的另一实施例的方块图;
图8显示图6和图7中所示的第二级高速缓存的一实施例的方块图;
图9显示说明用来管理绘图处理器的高速缓存系统的方法的一实施例的流程图。
[主要元件标号说明]
12~运算系统 14~绘图软件模块
16~显示装置 18~绘图处理单元
20~应用程序接口 22~软件应用程序
24~绘图处理管线
26、102、108、122、154~高速缓存系统
28~总线接口 30~顶点着色器
32~几何着色器 34~光栅化器
36~像素着色器
40~顶点串流高速缓存 42~第一级高速缓存
44、90、146~第二级高速缓存
46~Z高速缓存
48、184~纹理高速缓存 50~统一着色器单元
52、56、82~执行单元
54、60、92~高速缓存/控制装置
58~纹理单元 62~只读高速缓存
64~数据高速缓存
66~顶点着色器控制装置 68~光栅接口
70、100~命令串流处理器
72、96~存储器存取单元
74~光栅装置 76、86、182~回写单元
78~包装器 80~输入闩
84~输出闩 88~纹理寻址产生器
94、150~存储器接口 98、152~三角设定单元
104~储存装置控制器 106~数据储存装置
110~要求接收器 112~控制装置
114~数据接收器 116~数据发送器
118~数据接口 120~储存单元
124~顶点数据串流高速缓存
126~垂直水平转换器
128~第一级顶点高速缓存 130~顶点着色器前端
132~顶点着色器识别表
134~几何着色器识别表
136~几何着色器基元建构器 138~串流输出装置
140~串流输出索引缓冲器 142~几何着色器前端
144~串流输出前端 148、174~常数载入器
156~串流高速缓存格式器 158~顶点着色器控制
160~顶点着色器识别表
162~串流输出索引缓冲器
164~串流输出缓存器控制装置
166~串流输出装置 168~存储器存取单元
170~第二级纹理高速缓存
172~第二级数据高速缓存 176~光栅方块
178~小区块屏蔽
180~像素着色器控制装置
186、188~执行单元输入装置
190~串流高速缓存
192、194~要求合并装置 196~集合仲裁器
198~第一寻到测试装置
200~第二寻到测试装置
202、206~暂停要求装置 204、208~误失要求表
210~存储器存取单元接口 212~回归数据缓冲器
214~回归要求控制装置 216~读/写仲裁器
218~第一区块 220~第二区块
222~输出仲裁器 226、228、230~方块
具体实施方式
传统上,绘图处理器或绘图处理单元(Graphics Processing Units,GPUs)是合并于计算机系统内以专门地执行计算机的绘图。随着三维计算机绘图的普遍使用,绘图处理单元变得更加进步且功能强大,一些一向由中央处理单元(Central Processing Unit,CPU)所处理的工作现在都交由绘图处理单元处理,以达成具有高度复杂性的绘图处理任务。一般来说,绘图处理单元可嵌入于附接到计算机处理系统的主机板,或与主机板沟通的绘图卡之内。
绘图处理单元包括许多独立的单元来执行不同的工作以最终呈现三维的景象于二维的显示屏幕之上。例如电视、计算机屏幕、视频屏幕或其它适当的显示装置。这些独立的处理单元就是一般所称的着色器,其可包括顶点着色器、几何着色器以及像素着色器等等。绘图处理单元亦包含了其它被称为固定功能单元的处理单元,像是像素插补器和光栅化器等。在设计绘图处理单元的时候,上述元件的每一种组合都会被考虑进去以便能执行各种工作。基于这些组合,绘图处理单元在无法全力执行另外的工作时可具有较大的能力处理单一件工作。因此,硬件开发者始终尝试将一些着色器单元放进一个元件中。然而,独立单元结合在一起的程度却是有限的。
另外,每一着色器单元的输入和输出都储存于不同的高速缓存装置,每一个高速缓存装置皆被指定来处理特定着色器单元的数据。因此,每一个高速缓存装置皆依照其对应的着色器单元的使用方式来利用。
本发明的相关美国专利说明书,公开编号____(案号S3U06-0030;252209-1810),讨论了将这些着色器单元和固定功能单元结合成单一单元(又称为统一着色器)的相关机制。此统一着色器除了具备执行顶点着色、几何着色和像素着色的能力,同时亦能执行光栅化和像素插值等的功能。
本发明揭露了一种高速缓存系统,其运算于上述的统一着色器、或运算于着色装置其它形式的架构之上。此高速缓存系统可将传统技术中各个分离的高速缓存集中起来。与传统技术中以分散于处理器各处的高速缓存装置来设计绘图处理器的方法有所不同,本发明可将统一高速缓存装置局限于单一位置,因此于硅芯片或处理器基板上占据较少的空间。
本发明也将先前技术的高速缓存系统做了改进,其方式是借着容许依照需求来配置该高速缓存系统。因此,当有可能较常使用到某一着色器单元和其对应的高速缓存时,可配置其它的可用资源来更佳符合使用需求。基于当时的特定需求,高速缓存资源的配置是可以动态调整的,如此一来便可以更有效率地运用高速缓存。传统技术的处理器设计了对每一种高速缓存装置具备了最大的储存量,但是这些储存量不能更改。依照本发明的教述调整高速缓存的配置,就不再需要针对各种高速缓存装置皆设计了最大的高速缓存数量。反而,全部的高速缓存与绘图处理单元设计在一起以供着色器单元共同使用。如此一来,与传统技术的处理器相比,高速缓存的总储存数量可维持不变,或着实际上是可以减少的。然而,当有需要的时候可以配置更大量的高速缓存,因此为软件开发者提供了较大的弹性。本技术另一个优势是此重新配置的机制可以减少于处理器管线中可能会发生的瓶颈情况。
图1显示计算机绘图系统10的一实施例的方块图,此计算机绘图系统10包括运算系统12、绘图软件模块14和显示装置16。除了上述的元件,运算系统12还包括绘图处理单元18以处理运算系统12中至少一部分的绘图数据。在某些实施例中,绘图处理单元18可设计于运算系统12内的绘图卡之上。绘图处理单元18处理这些图形数据以产生图框的每一像素的颜色值及亮度值,并显示于显示装置16之上,一般来说是以每秒30个图框的比率来处理。绘图软件模块14包括应用程序接口(Application ProgrammingInterface,API)20和软件应用程序22。在本实施例中,应用程序接口20支持最新的OpenGL和(或)DirectX规格。
在最近几年,对具有大量可编程逻辑的绘图处理单元的使用需求渐增。在此实施例中,绘图处理单元18设计了具有较高的可编程性,使用者可以借着绘图软件模块14控制许多的输入/输出装置来互动地输入数据和(或)命令。应用程序接口20根据软件应用程序22内的逻辑来控制绘图处理单元18的硬件以建立绘图处理单元18有用的绘图功能。在本实施例中,使用者可以不需要了解绘图处理单元18与其功能,特别是如果此绘图软件模块14是电动游戏操纵器且该使用者纯粹是一个玩家。如果该绘图软件模块14是用来建立三维绘图视频、计算机游戏或是其它实时或离线成像的装置,并且该使用者是软件开发者或该领域之人士,则此使用者一般比较了解绘图处理单元18的功能。要了解的是,绘图处理单元18可使用于诸多不同的应用类型中。然而为了简化叙述,本发明特别着重图像于二维显示装置16上的实时成像。
图2显示图1所示的绘图处理单元18的一实施例的方块图。在此实施例中,绘图处理单元18包括绘图处理管线24,其与高速缓存系统26之间被总线接口28所分离。管线24包括顶点着色器30、几何着色器32、光栅化器34和像素着色器36。管线24的输出可被送到回写单元(图未显示)。高速缓存系统26包括顶点串流高速缓存40、第一级高速缓存42、第二级高速缓存44、Z高速缓存46和纹理高速缓存48。
顶点串流高速缓存40接收命令和图形数据,并且传送这些命令和数据给顶点着色器30,其用以对这些数据执行顶点着色的运算。顶点着色器30使用顶点信息建立欲显示的对象的三角形和多边形。顶点数据从顶点着色器30传送到几何着色器32和第一级高速缓存42。如果有需要的话,某些数据可被第一级高速缓存42和第二级高速缓存44所共享。第一级高速缓存也可传送数据给几何着色器32,其用以执行某些像是镶嵌、阴影计算、点精灵的建立等等的功能。几何着色器32也可借着从单一顶点建立三角形,或从单一三角形建立多个三角形来提供流畅的运算。
在此阶段以后,管线24所包括的光栅化器34对几何着色器32和第二级高速缓存44的数据进行运算。光栅化器34亦可利用Z高速缓存46做深度分析,以及纹理高速缓存48做有关颜色特性的处理。光栅化器34可包括固定功能的运算,像是三角设定、跨砖运算(span tile operations)、深度测试(Z测试)、预包装、像素插值、包装等等。光栅化器34亦可包括用来将世界空间中一个对象的顶点转换至屏幕空间上的坐标体系的转换矩阵。
光栅化之后,光栅化器34将数据传送给像素着色器36来决定最后的像素值,像素着色器36的功能包括根据各种颜色特性处理每一个个别的像素以及改变颜色值。举例来说,像素着色器36可包括根据光源的位置及顶点的法线来决定反射或高光色值和透明值的功能,然后从管线24输出所完成的视频图框。诚如图中所示,着色器单元和固定功能单元于许多阶段使用到高速缓存系统26。假如总线接口28是异步的接口,则于管线24和高速缓存系统26之间的通讯可包括另外的缓冲机制。
在此实施例中,管线24的元件设计成分离的单元,这些单元在有需要的时候存取不同的高速缓存元件。然而,着色器元件可被集中于统一着色器之内,使得管线24可以较简单的形式设计且仍提供相同的功能。数据流可被映像在实体装置之上,在此称为执行单元,其是用于执行一部分的着色器功能。如此一来,管线24结合成至少一个有能力执行管线24的功能的执行单元。同样的,高速缓存系统26的某些高速缓存单元也可并入这些执行单元。借着将这些元件合并成单一的单元可简化绘图处理的流量,并且可包括与异步接口的切换。因此,可在局限的范围(local)内进行数据的处理,因而允许较快速度的执行。同理,高速缓存系统26也可合并在一起建立统一高速缓存系统。
图3A显示图1中所示的绘图处理单元18的一实施例的方块图(或其它绘图处理装置的方块图)。绘图处理单元18包括统一着色器单元50,其具有多个执行单元52和高速缓存/控制装置54。执行单元52平行地连接设置并通过高速缓存/控制装置54来存取,统一着色器单元50可包括无数的执行单元52以适当地根据各种规格执行所要的绘图处理量。当设计情况需要处理到更多的绘图任务时可以加入更多的执行单元,如此一来,统一着色器单元50具有可扩充性的特色。
在此实施例中,统一着色器单元50具有比传统绘图管线更具弹性的简化设计。在其它实施例中,每一着色器单元可能需要较大量的资源以因应运作之需(例如高速缓存和控制装置)。在此实施例中的资源是可以共享的,每一个执行单元52也可以类似的方法制造,并且依照当前的工作负载量来做存取。根据此工作负载量,可以视需求来配置执行单元52以执行一或多个绘图处理管线24的功能。因此,统一着色器单元50于绘图处理中提供一个成本效能比更佳的解决方案。
此外,当应用程序接口20的设计和规格改变的时候(此属常见现象),统一着色器单元50不需要为了配合应用程序接口的改变而重新设计。反而,统一着色器单元50可动态调整以便依照需求提供特定的着色功能。高速缓存/控制装置54包括动态规划装置,其依照当前正在处理的对象或场景来平衡所处理的负载量。高速缓存/控制装置54也可包括配置系统以平衡数据的储存需求,此规划装置和配置系统可一起互相运作或独立运算。
依照规划装置的决定,可分配更多的执行单元52来提供较大的处理能力于特定的绘图处理之上,例如着色功能或固定功能,如此一来就可以减少延迟。执行单元52也可运算于所有着色器功能的指令之上,进而简化处理过程。
图3B显示绘图处理单元18的另一实施例的方块图,成对的执行单元56和纹理单元58平行并列,并且连接到高速缓存/控制装置60。在此实施例中,纹理单元58为执行单元集的一部分,执行单元56和纹理单元58可因此共享高速缓存/控制装置60内的高速缓存,使得纹理单元58可比传统纹理单元更快速地存取指令。此实施例中的高速缓存/控制装置60包括指令/纹理高速缓存62(只读),数据高速缓存64,顶点着色器控制装置66和光栅接口68。绘图处理单元18亦包括命令串流处理器70、存储器存取单元72、光栅装置74以及回写单元76。
因为数据高速缓存64为读/写高速缓存,并且比只读高速缓存62贵,所以这两个高速缓存是分开的。然而,不同的高速缓存装置是可以如下所述的方式结合的。只读高速缓存62可包括约32个快取列,但这个数目是可以减少的,并且每一个快取列的大小是可以增加的,这样的做法主要是为了减少所需的数目比较。只读高速缓存62的寻到/误失测试可与一般CPU的寻到/误失测试不同,主要是因为绘图数据持续地被串流化。对于误失的情况,高速缓存纯粹更新数据并且继续操作,而不需要将数据储存于外部的存储器。对于寻到的情况,则稍微延迟读取的操作以接收高速缓存的数据。只读高速缓存62和数据高速缓存64可以是第一级高速缓存装置以减少延迟,其对使用第二级高速缓存的传统绘图处理单元高速缓存系统来说是更进步的。借着结合更多的高速缓存资源,更多的高速缓存可以当成本地或第一级高速缓存以减少数据读取时间。
顶点着色器控制装置66从命令串流处理器70接收命令和数据,执行单元56和纹理单元58接收只读高速缓存62的纹理信息、指令和常数的串流。执行单元56和纹理单元58也接收数据高速缓存64的数据,以及将处理后的数据提供回数据高速缓存64。只读高速缓存62和数据高速缓存64是与存储器存取单元72连接。光栅接口68和顶点着色器控制装置66提供信号给执行单元56以及从执行单元56接收回处理过的信号。光栅接口68与光栅装置74连接,执行单元56的输出也接到回写单元76。
图3C显示此绘图处理单元18的另一实施例的方块图。在此实施例中,绘图处理单元18包括包装器(packer)78、输入闩80、多对的执行单元装置82、输出闩84、回写单元86、纹理寻址产生器88、第二级高速缓存90、高速缓存/控制装置92、存储器接口94、存储器存取单元96、三角设定单元98以及命令串流处理器100。
命令串流器处理器100提供一串的索引给高速缓存/控制装置92,这些索引是关于顶点的身分标签。举例来说,高速缓存/控制装置92可设计于先进先出机制内一次辨识256个索引。包装器78以固定功能单元为佳,其送出要求给高速缓存/控制装置92要求取得相关的信息来执行像素着色的功能。高速缓存/控制装置92送回像素着色器信息以及某一执行单元号码和线程号码的配置消息。该执行单元号码是指执行单元装置82中的其中一个执行单元,而线程号码是指每一个执行单元中用来处理数据的许多平行线程的其中一个线程。之后,包装器78传送像素着色运算所需的相关纹理像素和颜色信息给输入闩80。举例来说,可把连接至输入闩80的两个输入指定给纹理像素信息,另外两个输入指定给颜色信息。每一个输入具有传送特定位数的能力,例如512位。
输入闩80可为总线接口,其依照高速缓存/控制装置92所规定的分配任务将像素着色器数据安排给特定的执行单元和线程。此分配的任务可根据执行单元和线程的可用性、或是其它的因素来决定,且可依需求改变。在多个执行单元82平行连接的架构下,可同时执行更大量的绘图处理任务。由于高速缓存存取的便利性,数据流可维持在局部区域而不需要从较不具存取性的高速缓存获取数据。另外,与传统绘图系统相比,流经输入闩80和输出闩84的数据流可以被减少,因而降低处理时间。
每一个执行单元82依照其被指派的方式使用顶点着色和几何着色的功能来处理数据。另外,执行单元82可根据包装器78的纹理像素信息和颜色信息来执行像素着色的功能。如同本实施例包括了五个执行单元,且每一个执行单元分成两个部分,每一个部分代表许多的线程。每一部分可以图4-6来表示,执行单元装置82的输出是传送到输出闩84。
当绘图数据完成的时候,这些数据从输出闩84传送到回写单元86,其连接至用来将图框显示在显示装置16之上的图框缓冲器。在一或多个执行单元装置82以像素着色功能将数据处理完毕之后,回写单元86会接收完成的图框,此是绘图处理的最后阶段。然而,数据处理流可一或多次地通过高速缓存/控制装置92回绕以防主从纹理读取。在中间处理的期间,纹理寻址产生器88从输出闩84接收纹理坐标以决定要取样的地址。纹理寻址产生器88传送纹理号码(texture number)加载要求给第二级高速缓存90,所加载的数据可传回至纹理寻址产生器88。
输出闩84的输出是顶点数据,这些顶点数据被传送至高速缓存/控制装置92。高速缓存/控制装置92可传送关于顶点着色器或几何着色器运算的数据输入给输入闩80作为响应。同样地,读取要求也从输出闩84送到第二级高速缓存90,第二级高速缓存90也可传送数据给输入闩80作为响应。第二级高速缓存90执行寻到/误失测试确定数据是否储存于高速缓存之内。如果不是储存于高速缓存之内,存储器接口94可通过存储器存取单元96存取存储器以读取所需的数据。第二级高速缓存90依其需求以读取的数据更新其存储器,并且把旧的数据丢给存储器或是丢弃只读数据。高速缓存/控制装置92也包括输出,用来传送顶点着色和几何着色数据至三角设定单元98以执行三角设定处理。
图4显示依照本发明的技术的高速缓存系统102的一实施例的方块图。除了之前所提到的元件,高速缓存系统102还包括储存装置控制器104和数据储存装置106。储存装置控制器104用来连接多重着色器单元,例如顶点着色器、几何着色器和像素着色器,以及绘图处理单元的固定功能单元。同样地,储存装置控制器104也用来连接本发明所述的统一着色器单元或执行单元。然而,为了简化本发明的描述,在此所述的高速缓存系统是与着色器单元相连接。但必须知道的是,此高速缓存系统也可与固定功能单元、统一着色器单元和执行单元等连接。
储存装置控制器104可接收着色器所发出的数据读取或写入的要求。为了响应这些要求,储存装置控制器104可于着色器单元和数据储存装置106之间传送数据。储存装置控制器104视数据储存装置106中存储空间的可用性而相对应地分配数据,像是绘图数据。如此一来,储存装置控制器104可根据目前的需求动态地调整所需的数据分配。当顶点着色功能的运算加重时,储存装置控制器104可分配更多的存储单元于数据储存装置106之内以储存相关的顶点数据。储存装置控制器104也可依需求协调读取和写入的运算。
图5显示高速缓存系统108的另一实施例的方块图。高速缓存系统108包括要求接收器110、控制装置112、数据接收器114、数据发送器116、数据接口118和许多的储存单元120。在此实施例中,高速缓存系统108可包括适当数目的储存单元120,这些储存单元120集合起来可建构成具备适当架构高速缓存信道,且被分成许多快取列的高速缓存。同样地,储存单元120也可包括分离的可寻址缓存器或存储元件。另一种选项就是,储存单元120可代表不同形式,且放置于不同位置的高速缓存。举例来说,储存单元120可包括第一级和第二级高速缓存。
要求接收器110接收诸多着色器单元的要求,且在一时间点可接收超过一个的需求。如果要求接收器110接收到多个要求,则这些要求会以预定的优先级处理。控制装置112用来处理这些要求以决定和管理数据的传送。对于写入指令,控制装置112致能数据接收器114以接收个别着色器单元的数据,控制装置112也控制数据接口118以储存数据于一或多个适当的储存单元120中。对于读取指令,控制装置112控制数据接口118以撷取可寻址储存单元120的数据,然后数据发送器116发送数据给发出该要求的着色器单元。控制装置112视目前运算中的处理功能来管理数据的分配。与传统技术中对应至特定着色器单元的每一个高速缓存装置具备固定的储存容量不同,高速缓存系统108所具备的储存单元120可依照每一着色器单元的需求来分割其储存容量。同样地,由于处理不同类型的绘图对象和(或)场景而产生处理需求的改变,此分配机制亦可根据上述情况来做调整。
图6显示高速缓存系统122的一实施例的方块图,其可用于或取代图2所示的高速缓存系统26或图3A至3C所示的高速缓存/控制装置54。在此实施例中,高速缓存系统122包括顶点数据串流高速缓存124、垂直水平转换器126、第一级顶点高速缓存128、顶点着色器前端130、顶点着色器识别表132、几何着色器识别表134、几何着色器基元建构器136、串流输出装置138、串流输出索引缓冲器140、几何着色器前端142、串流输出前端144、第二级高速缓存146、常数加载器148、存储器接口150以及三角设定单元152。如本领域技术人员将会了解的,其它的实施例亦可用上述部分或全部的元件,并以上述或其它的形式来设计。上述高速缓存系统122具备处理多重着色器单元的功能。
顶点着色器前端130从源头接收索引基元,例如从命令串流处理器。顶点着色器前端130也可接收状态消息、命令以及几何基元信息。顶点着色器前端130传送索引信息给顶点着色器识别表132,其是寻到测试装置,可对第一级顶点高速缓存128中的数据执行寻到/误失测试。寻到/误失的结果和顶点高速缓存识别信息会回传给顶点着色器前端130,顶点着色器前端130也发送状态、命令和误失(顶点高速缓存识别)消息给顶点数据串流高速缓存124。顶点数据串流高速缓存124用来传送任务要求给外部顶点着色器规划器(图未显示),以及接收关于图3A中的执行单元数目和线程数目等信息。顶点数据串流高速缓存124也传送顶点着色器的输入给输入闩80(图3C)。
顶点数据串流高速缓存124也传送顶点着色器旁路消息给垂直水平转换器126。垂直水平转换器126接收顶点着色器和几何着色器信息,并回送样本给顶点数据串流高速缓存124以作为响应,然后将这些信息储存于第一级顶点高速缓存128中。垂直水平转换器126也可传送发出(emit)、剪辑(cut)和完成(done)的信息给几何着色器识别表134。
顶点着色器前端130也传送状态、命令和顶点着色器的顶点高速缓存识别给串流输出索引缓冲器140,其传递这些信息给几何着色器前端142,接着几何着色器前端142又传送这些信息给串流输出前端144,并且传送顶点着色器的顶点高速缓存识别信息给几何着色器基元建构器136。串流输出前端144传送顶点着色器和几何着色器的顶点高速缓存识别信息给串流输出装置138。顶点着色器识别表132、几何着色器识别表134、几何着色器基元建构器136和串流输出装置138分别传送顶点着色器无效信息、几何着色器无效信息、顶点着色器的顶点高速缓存识别和顶点着色器/几何着色器的顶点高速缓存识别给第一级顶点高速缓存128。第一级顶点高速缓存128传送顶点数据给几何着色器基元建构器136和串流输出装置138。
几何着色器基元建构器136也传送几何着色信息给输入闩80。同样地,几何着色器基元建构器136传送任务要求给外部几何着色器规划器(图未显示)以及从其接收执行单元数目和线程数目等信息。
第二级高速缓存146在有需要的时候储存第一级顶点高速缓存128的过量数据,并且在适当的时机提供预取机制。顶点着色器前端130和几何着色器前端142传送常数撷取消息给常数加载器148,其将常数传送至第二级高速缓存146。第二级高速缓存146通过输入闩80传送信息给执行单元,并且通过输出闩84从执行单元接收回信息。同样地,串流输出装置138传送顶点数据给存储器接口150和三角设定单元152。第二级高速缓存146和存储器接口150之间可交换工作负载以及储存信息。
图7显示高速缓存系统154的另一实施例的方块图,其可有关于图3A至3C中的高速缓存/控制装置。依照本实施例,高速缓存系统154包括串流高速缓存格式器156、顶点着色器控制158、顶点着色器识别表160、串流输出索引缓冲器162、串流输出缓存器控制装置164、串流输出装置166、存储器存取单元168、第二级纹理高速缓存170、第二级数据高速缓存172、常数加载器174、光栅方块176、小区块屏蔽178、像素着色器控制装置180以及回写单元182。在某些实施例中,顶点着色器控制158可以是顶点着色器前端装置。举例来说,此实施例可与具有几何着色功能的统一着色器一起使用。如此一来,如图6的实施例中所述的几何着色元件在此实施例中是被省略且被执行单元的元件所控制的。图7的高速缓存系统154的运算原理与图6中所述的实施例是很类似的。
关于顶点着色器控制158和顶点着色器识别表160,顶点着色器识别表160在顶点着色运算之后执行顶点寻到/误失测试,并且将后顶点(post-vertex)着色器的顶点高速缓存识别分配给每一个接收到的顶点,这些顶点是由源头的VertexID和InstanceID所指定,例如从命令串流处理器到顶点着色器控制158。顶点着色器识别表160大约每一周期从顶点着色器控制158接收顶点,并且于VertexID卷标随机存取存储器内(图未显示)执行VertexID和快取登录项目之间的完整集合相联(fullyset-associated)寻到/误失比较,VertexID卷标随机存取存储器的大小可以是32K字节,且每一个项目(Entry)可具有宽度为32位的VertexID。
如果发现一相合情况,相关的8位顶点高速缓存识别会被分配给顶点,并且顶点着色器识别表160内的顶点高速缓存识别的参考计数会增加1。否则,当参考计数等于零的时候,顶点着色器识别表160内下个顶点高速缓存识别的位置(根据顶点的大小,位置的数目可为1、2、3或4)会分配给顶点,并且起始的顶点高速缓存识别将被储存于VertexID卷标随机存取存储器内。VertexID卷标随机存取存储器的取代法则可以是先进先出,举例来说。如果下个顶点高速缓存识别位置的参考计数不等于零,顶点着色器识别表160将停止运作,并且停止从顶点着色器控制158接收顶点。
下个顶点高速缓存识别的参考计数的查阅是借着比较顶点着色器识别表160上的两个指标来实现。一配置指针指向顶点着色器识别表160中下个要被失效的顶点高速缓存识别。在寻到/误失测试之后,分配到顶点的起始顶点高速缓存识别回归到顶点着色器控制158,其储存顶点高速缓存识别为针对于执行单元(通过串流高速缓存格式器156)和串流输出索引缓冲器162的顶点快取登录项目。
顶点着色器识别表160可设计来包括256个快取登录项目。当顶点高速缓存识别在VertexID卷标随机存取存储器内是寻到的情况时,参考计数会增加,不然它会根据误失的情况而被分配。当几何着色器基元建构器(图6)或串流输出装置166读取顶点时,参考计数会减少。顶点着色器识别表160可根据预先设定的额度分配一定数目的误失顶点给执行单元。举例来说,假定每个执行单元有16个误失的额度,则前16个误失可被分配至执行单元0,下16个误失可被分配至执行单元1等等。用来建构基元的索引也被送到执行单元,每一个基元跟随其顶点并且移动到相同的执行单元。如果顶点储存于一个以上的执行单元,这些基元将被分配至其中一个包含其最多顶点的执行单元。如果误失的顶点稍后被分配到不同执行单元的基元所寻到,顶点着色器识别表160将传送通知给包括此顶点的执行单元,并要求此执行单元提供数据给第二级数据高速缓存172。因此,顶点着色器识别表160保有关于每一顶点高速缓存识别分配到哪个执行单元的信息,以及数据备妥旗标信息。
图8显示纹理高速缓存184的一实施例的方块图,其可代表图7中显示的第二级纹理高速缓存170。纹理高速缓存184可设计来接收及储存纹理信息、常数和指令的串流。在此实施例中,纹理高速缓存184包括执行单元输入装置186和188、串流高速缓存190、要求合并装置192和194、集合仲裁器196、第一寻到测试装置(集合0)198、第二寻到测试装置(集合1)200、暂停要求装置202、误失要求表204、暂停要求装置206、误失要求表208、存储器存取单元接口210、回归数据缓冲器212、回归要求控制214、读/写仲裁器216、第一区块(区块0)218、第二区块(区块1)220和输出仲裁器222-0(GT)。
纹理高速缓存184设计来以第二级高速缓存的形式地运作,以让执行单元集和纹理单元使用。纹理高速缓存184包括对于顶点着色运算、几何着色运算和像素着色运算的常数和指令。纹理高速缓存184也包括顶点串流数据、纹理数据以及被纹理单元所使用的缓存器的辨识号码。
纹理高速缓存184的储存容量可以是64K到288K字节,举例来说。纹理高速缓存184可包括256个2K位的快取列,所以此快取列的尺寸是2048位。其中每个快取列包括四个字符,所以每个快取列可分成四个512位的字符,每个字符位于不同的区块,并且26位-512位的位[1:0]所选到的字符与其虚拟存储器地址对齐。此高速缓存也可是128路(way)的集合相联,对高速缓存的存储器要求可以是512位的字符要求。纹理高速缓存184可建构成一个两区块的可读取和可写入的512x512高速缓存,其总尺寸为64K字节。高速缓存中数据的替代机制可根据虚拟最近最少使用算法(Pseudo Least RecentlyUsed,PLRU),以每一周期每一集合一次寻到测试的条件下执行。高速缓存读/写吞吐量可以是每周期两个512位的读取/写入,以及2x512位的回归数据缓冲器。
于运作中,纹理高速缓存184可使用两个区块的储存单元。为了于每个周期执行两次的寻到测试,这256个快取列可被分成偶数和奇数区块,每一偶数或奇数标签可具有128个快取列,而且地址位[2]可以被使用来区分偶数或奇数区块。一巨型格子的物理大小可以是256个区块。高速缓存卷标可以是地址位中的17个最重要的位。纹理高速缓存184可以是第二级四路集合相联高速缓存,且此集合被512位对齐地址的位[8:3]所选择。每一区块可具有一1读写(RW)的512位端口,全部四个区块可于每一周期提供四个读/取存取。存储器存取单元168的外部写入可比要求装置的读/写更具更高的优先级。替代的方式可根据虚拟最近最少使用算法来执行。
地址可依照如下所述来决定:
对于每一偶数或奇数区块,集合地址等于512位的对齐地址[8:3];
对于每一快取列,高速缓存地址为512位的对齐地址[8:0]。
执行单元的常数负载的指令可包括加载128/512位数据,此数据个别对齐128/512位的存储器地址。对于加载指令,回归的128位数据可被复制成512位,且当被写入执行单元共同缓存器文件(图未显示)时会被有效像素/顶点屏蔽和通道屏蔽所屏蔽。执行单元所有对于指令和常数的读取要求以及纹理寻址产生器的T#缓存器皆与512位的存储器地址对齐。
第一和第二寻到测试装置198和200包括很多的测试阶段以执行读取或写入操作的寻到测试。在第一阶段中会执行地址比较和要求合并。要求合并装置192和194尝试将一接收到的要求与此要求的最接近的前一个或后一个要求合并在一起,依此来达到改善效能的目的。合并的操作有两个目的,第一就是减少寻到测试的流量。如果流量可以减少,不需要两倍的寻到测试逻辑就可以维持巨型格子的效能。另一个目的是此要求地址倾向是路线要求(course request),其提供一要求于此地址的邻近地址。此合并操作一般于一快取列内执行,例如2048位的快取列。为了于之后更顺利地进行仲裁,要求合并装置192和194在这些区块彼此不冲突的时候可以进行合并。一快取登录项目,其包括了一要求或合并要求,在寻到测试装置198和200的认可下从要求合并装置192和194送到集合仲裁器196。
关于寻到测试的第一阶段,为了在单一个周期内执行两次寻到测试,快取列可从256个区块分成两组128区块。集合仲裁器196传送寻到测试信息至个别的寻到测试装置198和200。第一寻到测试装置198用于偶数区块而第二寻到测试装置200用于奇数区块。集合仲裁器196可用循环的方式从执行单元输入装置186、188和串流高速缓存190的输入间发送要求。在仲裁之后,仲裁的要求进入一要求先进先出,举例来说,其可深达四个或更多的快取登录项目。
在寻到测试的第二阶段中确认了此要求是寻到或误失。因为每一个寻到测试装置198和200只有一个要求,所以不需要使用到最近最少使用算法或其它复杂的机制。512位对齐地址(集合地址)的位[8:3]被当成索引以查阅第二级快取卷标随机存取存储器的四个卷标。此地址最重要的17个位与这四个卷标做比较以寻找匹配。
如果第一寻到测试装置198确认在第二级高速缓存内是寻到的情况,第一寻到测试装置198传送列地址至暂停要求表206,并伴随着附属于寻到测试快取登录项目的字符选择、偏移、回归目的识别以及多达四个的要求的地址一起传送。如果第一寻到测试装置198确认在第二级高速缓存内是误失或误失寻到(hit-on-miss)的情况,第一寻到测试装置198将列地址和其它要求信息写入误失要求表208内。
在一些实施例中,寻到测试装置198和200包括特定的元件以执行寻到/误失测试。举例来说,这些装置可包括执行卷标寻到测试和卷标更新的TAG_COL、借着使用虚拟最近最少使用算法来找寻下个可使用的快取列的LRU_TABLE,以及保持每个快取列状态的LOCK_TABLE。对于LOCK_TABLE而言,当数据从存储器存取单元接口210回来的时候,使用了有效的快取登录项目(An entry of valid)。如果不是误失要求表204和208中的所有要求都被清除时,则使用锁定快取登录项目(An entry of locked)。另外,使用已使用快取登录项目(An entry of dirty)来表示此快取列已被执行单元的输出所写入。如果有堵塞情况,可停止管线的运作并且可将循到结果先写入一两快取登录项目的寻到结果先进先出。
在第三阶段的寻到测试中执行了读/写的仲裁。误失要求表204和208的读取要求被回归要求控制装置214所控制。存储器存取单元接口210的写入要求被送到回归数据缓冲器212。写入要求被读/写仲裁器216所仲裁,并且这些要求被送到第二级随机存取存储器,其包括第一区块218和第二区块220。如果不同来源的要求皆于同一周期送到同一个区块,存储器存取单元接口210的写入会取得最高的优先权。在这些写入之后,接着处理误失要求表204和208的误失结果,而寻到测试结果则于最后处理。优先级可包括循环的机制。为了将吞吐量最大化,同一来源的要求的优先级是可被打乱的,只要读/写仲裁器216传送它们至不同的区块218和220。
要最佳使用巨型格子的频宽,控制逻辑单元将会试着于单一周期内将要求填入区块内。举例来说,执行单元总线信道0可具有可用的区块0和1、执行单元总线信道1可具有可用的区块2和3、误失要求暂停可具有可用的区块2,以及存储器存取单元可具有可用的区块1。此周期内最后的要求包括选择存储器存取单元接口210来填补区块1、选择误失要求暂停来填补区块2、选择执行单元总线信道0(186)来填补区块0以及选择执行单元总线信道1(188)来填补区块3。
在寻到测试的第四阶段执行了输出的仲裁。巨型格子的读取数据被放入每一区块中单快取登录项目或双快取登录项目的数据先进先出。纹理高速缓存184一般无法停止回归数据,对其的输出将会立刻被送出。传送到执行单元和纹理单元的回归数据可能会经历囤积的情况。
再次参照图6和图7,第一级数据高速缓存可设计来包含标签表和数据段。每一快取列中可具有四个512位(或2048位),其中快取列的总数是512。单一快取列内四个512位的快取登录项目共享相同的卷标。除了卷标地址,还有四个一位的状态位以区分快取列的状态。对于有效状态,代表快取列是被分配且卷标地址是有效的。此状态在重新开机后可被清除,而任何的配置操作将会设定此位。
对于已使用的状态,表示此快取列已经被数据所写入,但不包括存储器存取单元接口210的存储器存取数据。如果要进行此快取列的任何取代操作,则这些数据将写入到存储器。配置每一快取列后,其可被清除或失效。如果进行任何写入操作的话其可被设定,除了存储器存取单元的写入操作。
当此状态就绪的时候,会分配快取列并且设定存储器存取单元的读取要求。备妥位将于分配快取列之后被清除,并且于将于存储器存取单元的数据送达之后被设定,这将避免更进一步的误失寻到情况。
对于锁定的状态,就此快取列来说,在误失要求表204和208中可以有超过一个的快取登录项目,其是误失或误失寻到的情况。此锁定将于高速缓存分配后被设定,此位将会被清除如果属于此快取列的所有快取登录项目都从误失要求表204和208中移除的话。它将允许此高速缓存被分配以进行取代。
再次参照图8,如果于第二级高速缓存中有读取误失或误失寻到,则对误失要求表204和208做搜寻的操作。选择一快取登录项目来储存快取列地址以及此要求的其它信息(回归目的单元识别、快取登录项目类型、线程识别、公用缓存器文件索引、任务顺序识别等)。存储器存取单元接口210的数据传送到高速缓存内的一快取列号码。因为有两个表,每个表可包含128列。区块有效信号指定哪个快取登录项目是有效的。
如果第二级高速缓存内有写入误失,则对误失要求表204和208做搜寻的操作,并且选择可用的快取登录项目储存于快取列地址。快取列将如读取误失般地分配,并且写入数据可直接写入高速缓存内。为了不要覆写快取列中的现有数据,故保有一写入屏蔽缓冲器以暂停由写入误失所引起的误失要求。当数据从存储器存取单元接口210送回的时候,读/写仲裁器216将检查写入屏蔽,并且更新至对应的快取列。
在高速缓存误失之上,一个针对存储器存取单元接口210的读取要求是送到误失要求表204和208。有两个要求表连接到每一寻到测试单元198和200,每一个要求表包括多达32个的暂停读取要求快取登录项目。对于读取要求,回归第二级快取列地址(9位)与虚拟存储器地址一起传送,并且于稍后当数据从存储器存取单元接口210回来时,可用来于误失要求表中搜寻要求快取登录项目。每一读取要求预计可取回一快取列(2048位或4x512位)。
暂停要求先进先出(pending request FIFO)202和206大致具有与误失要求表204和208相同的大小。误失要求表204和208中的快取登录项目在数据从存储器存取单元接口210回来前通常不会被清除。因此可忽略此先进先出的整体情况,因为如果适当管理误失要求表204和208的话其是不会被覆写的。
可使用4x512位的4R1W存储器,将回归要求控制装置214建构成数据缓冲器。为了得到存取巨型格子的最高效率,回归要求控制装置214将属于高速缓存地址的四个连续群组的数据分组。一旦所有四组数据群组都准备妥当,回归要求控制装置214将这些数据传送给读/写仲裁器216以回写数据。回归要求控制装置214设计来确保从存储器存取单元接口210来的数据不会与指定给一个不同高速缓存地址的数据混合。也就是说,属于相同读取要求(一个读取要求和四个数据回归)的数据会分成同一组。当读/写仲裁器216收到数据时,它可检查写入屏蔽缓冲器中的写入屏蔽信息。同样地,它也可以产生一快取登录项目于一回归要求队列中以通知误失要求表204和208快取列已经备妥。当此快取列于备妥时,读/写仲裁器216通知高速缓存卷标以防止另外的误失寻到测试结果。
回归要求控制装置214可包括64快取登录项目的回归要求队列,其包括9位的快取列地址。当一个数据快取登录项目从回归数据缓冲器212读取出来,被并且送到快取随机存取存储器时,会新增一个新的快取登录项目到回归要求队列以储存新的快取列地址。回归要求控制装置214从底部读取第一个队列快取登录项目,并且使用快取列地址于误失要求表204和208中搜寻一个匹配。每一周期处理一个匹配的快取登录项目,并且把此要求送到读/写仲裁器216。此要求的优先级可比回归数据缓冲器212的写入要求更低,但比寻到测试单元198和200的要求更高,在读/写仲裁器216藉此要求允许这些区块对快取随机存取存储器的读取之后,此快取登录项目被释放出来且标记成无效。
对于列地址的既定区块而言,在误失要求表204和208中所有的匹配快取登录项目都处理之后,回归要求控制装置214的回归要求队列内的快取登录项目会移除掉。在这期间,将传送信号到高速缓存卷标表以解锁高速缓存卷标中的此快取列。
纹理高速缓存184也可执行连续检查运算。由于采用了写入能力,此快取列可以是已使用的,如果分配新的误失列的话。输出仲裁器222将此已使用的列移动到写入缓冲器(图未显示),并且等待存储器接口读取此列。举例来说,假设一快取列于某一快取列位置的物理地址为A,并且假设此快取列已使用过,输出仲裁器222可尝试以新的误失高速缓存地址取代此使用过的快取列。读取巨型格子已使用的数据、传送这些数据至写入缓冲器以及允许存储器接口读取这些数据等操作的执行可能要上花几个周期。如果有关于地址A的要求于其间传送进来,输出仲裁器222可于已使用数据送达之前传送这些数据至存储器接口,因为回读的数据可能是不正确的。
要维持数据的连续性,在每一个寻到测试装置198和200中皆有计数器。每次执行已使用替换(dirty replacement)的操作时计数器增加。误失读取要求和已使用快取列替换等操作皆假定(assume)此计数器的值。在执行单元集的存储器接口单元的第二级高速缓存中,第二级高速缓存保留一个位置来储存计数器的值。第二级高速缓存中的复制可从写入要求更新。纹理高速缓存184可供那些读取要求所使用,如果这些读取要求的计数值与目前存储器接口中所保有的值相等的话。
执行单元集的数据高速缓存以第二级高速缓存的形式供执行单元使用。它设计来容纳多出的输入、输出和临时数组缓存器的数据,这些数据是属于顶点着色器、几何着色器和像素着色器的数据。它亦容纳顶点属性缓冲器(图未显示)多出的内容。举例来说,快取随机存取存储器的大小可以是32K字节,并且包括128个2K位的快取列,其中每一快取列有四个字符并且为全相联的形式。存储器要求以字符的形式接收,每一字符为512位。此高速缓存架构是1RW 256X512位,以及每周期一个读取或写入测试。读/写吞吐量可以是每周期512位的读/写,并且回归数据缓冲器可以是2X512位。
第二级数据高速缓存的功能描述包含使用两个区块的1RW 512X512位的存储器,并且总大小是32K字节。纹理高速缓存184可具有256个快取列,每个快取列是2048位。此快取列可分成四个512位的字符,每一个字符在不同的区块上,而且以字符的位[1:0]来选择操作,此字符是对齐虚拟存储器地址。替代机制可根据最近最少使用算法。
关于针对纹理高速缓存184的加载和储存,执行单元加载/储存指令LD4/8/16/64可加载128/512位的数据,LD4/8/16/64分别与32/64/128/512位的存储器地址对齐。对于加载指令,回归的32/64/128位的数据被复制成512位,并且当它被写入执行单元共同缓存器文件时被有效的像素-顶点屏蔽和通道屏蔽所屏蔽。其它所有针对多出缓存器的读取要求以及执行单元的VAB内容系对齐至512位的存储器地址。
本发明所述的统一高速缓存系统可以硬件、软件、固件或其组合等方式实现。在所揭露的实施例中,部分以软件或固件实现的统一着色和执行单元可储存于存储器之中,并且可以适当的指令执行单元执行。部分以硬件实现的统一着色和执行单元,可以任何具有逻辑门、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Programmable GateArray,PGA)、场可编程门阵列(Field Programmable Gate Array,FPGA)等等的离散逻辑电路,或上述任何组合的离散逻辑电路所实现。。
图9显示用于处理绘图数据的方法224的一实施例的流程图。根据本发明,如方块图226所示,方法224包括分析众多着色器的活动。着色器单元可包括顶点着色器、几何着色器和像素着色器等的任何组合。同样地,着色器单元也可形成于统一着色器中,或建构于执行单元中。方块图226中所分析的活动可以是处理级别或处理数量,其可以是正在处理中的图像或场景的要素。
在方块228中,着色单元的数据储存需求是根据着色单元的个别活动级别来决定。关于数据的储存,举例来说,数据可储存于高速缓存中,其可为单一高速缓存元件,于每一阶段的着色器处理提供储功能。此高速缓存可供应数据给着色器单元,以及(或)接收着色器单元所处理的数据。此储存需求可以每一着色器单元的处理活动的百分比表示。
在方块230中,方法224还包括根据数据储存需求动态地分配部分的高速缓存资源。此配置处理可包括分配到每一特定着色器单元的高速缓存的一个部分或一个百分比。此高速缓存可以是用来提供数据给个别着色器单元的高速缓存的部分,以及(或)用来接收个别着色器单元的数据的高速缓存的部分。方块230可另外包括将高速缓存分割成分离的可寻址部分并且依需求分配,当对象或场景改变的时候也可依需求改变或调整快取的配置。
在此所描述的统一高速缓存系统的功能可包括用来实现逻辑功能的可执行指令的顺序列表。这些可执行指令可被嵌入于任何计算机可读取的媒体以让一指令执行系统、机械或装置使用,像是基于计算机的系统、处理器控制的系统或其它系统。计算机可读取媒体可以是能容纳、储存、通讯、传播程序以让指令执行系统、机械或装置所使用的任何媒体。举例来说,此计算机可读取媒体可以是电子、磁力、光学、电磁、红外线或半导体的系统、机械、装置或传播媒体。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
Claims (20)
1.一种绘图处理系统,包括:
处理管线,具有多个绘图着色器阶段,上述处理管线的每一绘图着色阶段用以执行一或多个着色运算;以及
统一高速缓存系统,耦接至上述处理管线,上述统一高速缓存系统包括多个储存单元,每一储存单元用以储存关于上述处理管线的上述多个绘图着色器阶段的数据,其中上述统一高速缓存系统包括控制装置,用以管理与上述多个绘图着色器阶段的要求以及与上述高速缓存系统的上述储存单元的可用性有关的上述数据的分配。
2.根据权利要求1所述的绘图处理系统,其中上述控制装置根据上述多个绘图着色器阶段的活动动态地调整上述数据的分配。
3.根据权利要求1所述的绘图处理系统,其中上述处理管线是嵌入于执行单元中。
4.根据权利要求3所述的绘图处理系统,其中上述执行单元包括顶点着色器阶段、几何着色器阶段和像素着色器阶段。
5.根据权利要求1所述的绘图处理系统,其中上述统一高速缓存系统还包括寻到测试装置,用以对接收到的顶点数据执行寻到/误失测试。
6.根据权利要求5所述的绘图处理系统,其中上述寻到测试装置包括顶点着色器识别表。
7.根据权利要求6所述的绘图处理系统,其中上述顶点着色器识别表用以储存多达256个顶点的相关信息。
8.一种高速缓存系统,适用于绘图处理系统,包括:
数据储存装置,用来储存被或将被一或多个着色器单元所处理的绘图数据;以及
储存装置控制器,耦接到上述数据储存装置,上述储存装置控制器用以动态地控制上述绘图数据于上述数据储存装置内的储存配置。
9.根据权利要求8所述的高速缓存系统,其中上述储存装置控制器包括顶点着色器识别表。
10.根据权利要求9所述的高速缓存系统,其中上述储存装置控制器还包括几何着色器识别表。
11.根据权利要求10所述的高速缓存系统,其中上述储存装置控制器包括第一级顶点高速缓存,上述第一级顶点高速缓存是耦接到上述顶点着色器识别表和上述几何着色器识别表。
12.根据权利要求8所述的高速缓存系统,其中上述一或多个着色器单元是嵌入于统一着色器单元内。
13.根据权利要求8所述的高速缓存系统,其中上述储存装置控制器包括第二级纹理高速缓存,用来执行寻到/误失测试。
14.根据权利要求13所述的高速缓存系统,其中上述第二级纹理高速缓存于二或多个快取列集合内大致同时地执行平行寻到/误失测试。
15.一种数据处理方法,适用于处理绘图处理装置内的数据,包括:
分析多个绘图处理着色器的活动级别;
根据每一绘图处理着色器所对应的上述活动级别决定上述绘图处理着色器的数据储存需求;以及
根据每一绘图处理着色器的数据储存需求分配部分的存储装置。
16.根据权利要求15所述的数据处理方法,其中上述活动级别根据目前正被处理的目前图像或场景对应至处理需求级别。
17.根据权利要求15所述的数据处理方法,还包括:
提供具有既定数目的多个储存单位的上述存储装置,上述储存单位具有既定大小,其中上述存储装置的分配还包括分配上述储存单位的第一数目给第一绘图处理着色器,并且分配上述储存单位的第二数目给第二绘图处理着色器。
18.根据权利要求15所述的数据处理方法,其中上述存储器装置是第一级高速缓存,用以提供数据给每一绘图处理着色器,以及从每一绘图处理着色器接收数据。
19.根据权利要求15所述的数据处理方法,其中上述活动级别的分析还包括分析每一绘图处理着色器的活动级别对于上述绘图处理着色器的总活动级别的百分比。
20.根据权利要求15所述的数据处理方法,还包括执行寻到/误失测试。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/019,845 | 2008-01-25 | ||
US12/019,845 US9214007B2 (en) | 2008-01-25 | 2008-01-25 | Graphics processor having unified cache system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101388109A true CN101388109A (zh) | 2009-03-18 |
CN101388109B CN101388109B (zh) | 2011-10-19 |
Family
ID=40477514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101704162A Active CN101388109B (zh) | 2008-01-25 | 2008-11-03 | 绘图处理系统、快取系统以及数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9214007B2 (zh) |
CN (1) | CN101388109B (zh) |
TW (1) | TWI474279B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243685A (zh) * | 2015-11-17 | 2016-01-13 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105427368A (zh) * | 2015-11-17 | 2016-03-23 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105556565A (zh) * | 2013-06-10 | 2016-05-04 | 索尼电脑娱乐公司 | 片段着色器执行顶点着色器计算 |
CN105550443A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
CN103677828B (zh) * | 2013-12-10 | 2017-02-22 | 华为技术有限公司 | 一种图层绘制方法、绘图引擎及终端设备 |
CN109538189A (zh) * | 2018-09-27 | 2019-03-29 | 核工业北京地质研究院 | 基于超声成像测井数据采集过程中图像实时显示的方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619087B2 (en) * | 2009-10-06 | 2013-12-31 | Nvidia Corporation | Inter-shader attribute buffer optimization |
TWI474280B (zh) * | 2010-04-21 | 2015-02-21 | Via Tech Inc | 增進繪圖處理單元之總處理量的方法與系統 |
US8681162B2 (en) * | 2010-10-15 | 2014-03-25 | Via Technologies, Inc. | Systems and methods for video processing |
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
GB201103698D0 (en) * | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphics processing |
US9928179B2 (en) | 2011-12-16 | 2018-03-27 | Intel Corporation | Cache replacement policy |
TWI585583B (zh) * | 2011-12-19 | 2017-06-01 | 英特爾股份有限公司 | 快取更換策略 |
US9214008B2 (en) * | 2013-01-18 | 2015-12-15 | Nvidia Corporation | Shader program attribute storage |
US9299123B2 (en) * | 2013-01-22 | 2016-03-29 | Qualcomm Incorporated | Indexed streamout buffers for graphics processing |
US9324128B2 (en) | 2013-03-14 | 2016-04-26 | Intel Corporation | Techniques for improving rendering efficiency |
US9430394B2 (en) * | 2013-12-12 | 2016-08-30 | Mediatek Singapore Pte. Ltd. | Storage system having data storage lines with different data storage line sizes |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
KR102263326B1 (ko) * | 2014-09-18 | 2021-06-09 | 삼성전자주식회사 | 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법 |
GB2536964B (en) | 2015-04-02 | 2019-12-25 | Ge Aviat Systems Ltd | Avionics display system |
GB2543866B (en) | 2016-03-07 | 2017-11-01 | Imagination Tech Ltd | Task assembly for SIMD processing |
GB2555929B (en) * | 2016-03-07 | 2018-11-28 | Imagination Tech Ltd | Task assembly |
US10489947B2 (en) * | 2016-03-09 | 2019-11-26 | Htc Corporation | Mobile device, application display method, and non-transitory computer readable storage medium |
US10535178B2 (en) * | 2016-12-22 | 2020-01-14 | Advanced Micro Devices, Inc. | Shader writes to compressed resources |
US10353591B2 (en) * | 2017-02-24 | 2019-07-16 | Advanced Micro Devices, Inc. | Fused shader programs |
CN108804219B (zh) | 2017-04-28 | 2024-01-12 | 超威半导体公司 | 多计算核中的灵活着色器导出设计 |
US10679317B2 (en) * | 2018-07-19 | 2020-06-09 | Microsoft Technology Licensing, Llc | Techniques for displaying a shader table associated with raytracing images |
US11119922B1 (en) * | 2020-02-21 | 2021-09-14 | Nxp Usa, Inc. | Data processing system implemented having a distributed cache |
US11720499B2 (en) * | 2020-12-28 | 2023-08-08 | Advanced Micro Devices, Inc. | Selective generation of miss requests for cache lines |
CN113345067B (zh) * | 2021-06-25 | 2023-03-31 | 深圳中微电科技有限公司 | 一种统一渲染方法、装置、设备和引擎 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9011743D0 (en) | 1990-05-25 | 1990-07-18 | Plessey Telecomm | Data element switch |
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 |
US6665767B1 (en) * | 1999-07-15 | 2003-12-16 | Texas Instruments Incorporated | Programmer initiated cache block operations |
US7148888B2 (en) | 2003-04-04 | 2006-12-12 | Via Technologies, Inc. | Head/data request in 3D graphics |
US7593010B2 (en) | 2003-09-18 | 2009-09-22 | Microsoft Corporation | Software-implemented transform and lighting module and pipeline for graphics rendering on embedded platforms using a fixed-point normalized homogenous coordinate system |
US7454599B2 (en) | 2005-09-19 | 2008-11-18 | Via Technologies, Inc. | Selecting multiple threads for substantially concurrent processing |
US20070091088A1 (en) | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
CN1928918B (zh) | 2005-10-14 | 2012-10-10 | 威盛电子股份有限公司 | 图形处理装置及于图形处理装置中执行着色操作的方法 |
US7468726B1 (en) * | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US7692660B2 (en) | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
-
2008
- 2008-01-25 US US12/019,845 patent/US9214007B2/en active Active
- 2008-05-16 TW TW97118073A patent/TWI474279B/zh active
- 2008-11-03 CN CN2008101704162A patent/CN101388109B/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556565A (zh) * | 2013-06-10 | 2016-05-04 | 索尼电脑娱乐公司 | 片段着色器执行顶点着色器计算 |
CN105556565B (zh) * | 2013-06-10 | 2019-06-25 | 索尼电脑娱乐公司 | 片段着色器执行顶点着色器计算 |
CN103677828B (zh) * | 2013-12-10 | 2017-02-22 | 华为技术有限公司 | 一种图层绘制方法、绘图引擎及终端设备 |
CN105243685A (zh) * | 2015-11-17 | 2016-01-13 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105427368A (zh) * | 2015-11-17 | 2016-03-23 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105243685B (zh) * | 2015-11-17 | 2018-01-02 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105427368B (zh) * | 2015-11-17 | 2018-03-20 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
CN105550443A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
CN105550443B (zh) * | 2015-12-11 | 2019-05-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
CN109538189A (zh) * | 2018-09-27 | 2019-03-29 | 核工业北京地质研究院 | 基于超声成像测井数据采集过程中图像实时显示的方法 |
Also Published As
Publication number | Publication date |
---|---|
US9214007B2 (en) | 2015-12-15 |
TW200933522A (en) | 2009-08-01 |
CN101388109B (zh) | 2011-10-19 |
TWI474279B (zh) | 2015-02-21 |
US20090189909A1 (en) | 2009-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101388109B (zh) | 绘图处理系统、快取系统以及数据处理方法 | |
US7830392B1 (en) | Connecting multiple pixel shaders to a frame buffer without a crossbar | |
US8174534B2 (en) | Shader processing systems and methods | |
US7633506B1 (en) | Parallel pipeline graphics system | |
CN103092772B (zh) | 电路装置和高速缓存状态数据的方法 | |
US6587110B1 (en) | Image processing unit, image processing system using the same, and image processing method | |
US6426753B1 (en) | Cache memory for high latency and out-of-order return of texture data | |
JP5485257B2 (ja) | レイトレース・レンダリングのための並列化された交差テストおよびシェーディングのアーキテクチャ | |
CN101877116A (zh) | 绘图处理单元、执行单元以及工作管理方法 | |
CN101470892A (zh) | 绘图处理单元以及执行单元 | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
US4928247A (en) | Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures | |
US9292965B2 (en) | Accelerated data structure positioning based upon view orientation | |
CN103365631B (zh) | 用于存储器访问的动态库模式寻址 | |
US8773449B2 (en) | Rendering of stereoscopic images with multithreaded rendering software pipeline | |
US8248412B2 (en) | Physical rendering with textured bounding volume primitive mapping | |
US5251322A (en) | Method of operating a computer graphics system including asynchronously traversing its nodes | |
US20090256836A1 (en) | Hybrid rendering of image data utilizing streaming geometry frontend interconnected to physical rendering backend through dynamic accelerated data structure generator | |
US20050219253A1 (en) | Render-cache controller for multithreading, multi-core graphics processor | |
CN103886634A (zh) | 利用每像素着色器线程的高效超级采样 | |
CN103885893A (zh) | 用于访问内容寻址存储器的技术 | |
US20110261063A1 (en) | System and Method for Managing the Computation of Graphics Shading Operations | |
CN104050705A (zh) | 处置光栅操作中的post-z覆盖数据 | |
CN103810669A (zh) | 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块 | |
WO1989001664A1 (en) | High performance graphics workstation |
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 |