CN1954356A - 用于万用数据写入单元的系统和方法 - Google Patents
用于万用数据写入单元的系统和方法 Download PDFInfo
- Publication number
- CN1954356A CN1954356A CNA2005800154352A CN200580015435A CN1954356A CN 1954356 A CN1954356 A CN 1954356A CN A2005800154352 A CNA2005800154352 A CN A2005800154352A CN 200580015435 A CN200580015435 A CN 200580015435A CN 1954356 A CN1954356 A CN 1954356A
- Authority
- CN
- China
- Prior art keywords
- pixel
- cache memory
- data write
- data
- row
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 180
- 239000000872 buffer Substances 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 14
- 238000004140 cleaning Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 16
- 238000010276 construction Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种用于在一3-D图形管线中的一包括一般高速缓冲存储器的数据写入单元的系统和方法。具体地说,在一个实施例中,一数据写入单元包括一第一存储器、复数个高速缓冲存储器和一数据写入电路。
Description
相关美国专利申请案
本申请案涉及2004年5月14日由Ed Hutchins和Paul Kim同时递交的题为“Systemand Method for Pixel Data Row Forwarding in a 3-D Graphics Pipeline”的第_号美国专利申请案,其代理人案号为NVTD-P001260且其已转让给本发明的受让人。为了不在本文中重复,此相关专利申请案的内容以引用的方式并入本文中。
技术领域
本发明的实施例涉及图形处理器。更具体地说,本发明的实施例涉及用于在3-D图形管线中的包括(例如)一般高速缓冲存储器的万用数据写入单元的方法和系统。
背景技术
三维图形图像的渲染在多种电子游戏和其它应用中受到关注。渲染是描述从三维物体的数据库表示转变为所述物体在视图表面上的二维投影的整个多步骤处理的通称。
渲染处理包含若干步骤,例如建立含有随后着色/纹理处理所需的信息的多边形模型;向所述多边网格模型施加线性变换;剔除(culling)背面朝向的多边形;相对于视窗体来裁剪多边形;将多边形扫描转换/光栅化为像素坐标系;和使用内插或递增着色技术来着色/照明个别像素。
图形处理单元(GPU)是通常用于图形系统以加速3-D渲染应用程序运行的专用集成电路装置。GPU通常与中央处理单元(CPU)结合使用以为在计算机系统上执行的一个或一个以上应用程序产生三维图像。现代GPU通常利用图形管线来处理数据。
现有技术图1展示描绘传统现有技术管线100的各个级的图。所述管线100是具有专用于执行特定功能的各级的常规“深”管线,。变换级105执行基元的几何计算且可执行裁剪操作。设置/光栅级110将基元光栅化。纹理寻址115和纹理拾取120级用于纹理贴图。雾化级130实施雾化算法。α测试级135执行α测试。深度测试140执行深度测试以剔除被遮挡的像素。α掺合级145执行α掺合色彩组合算法。存储器写入级150写入管线的输出。
图1中所说明的传统GPU管线结构的各级通常通过使用广泛实施的图形编程API(应用程序编程接口)(例如OpenGLTM图形语言、Direct3DTM等)来为高速渲染操作(例如,纹理、照明、着色等)而最佳化。管线100的结构被配置为多级深管线结构,以使得管线的整体渲染处理量最大化。一般来说,深管线结构具有足够的数据处理量(例如,像素填充率等)以实施更加复杂的场景的快速、高质量渲染。
在便携手持式装置中使用三维(3-D)图形正越来越受到关注,在这类装置中,成本和功率消耗是重要的设计要求。此类装置包括(例如)无线电话、个人数字助理(PDA)和类似物。然而,传统深管线结构需要相当大的芯片面积,从而导致成本高出期望成本。另外,即使各级正执行相对较少的处理,深管线也会消耗相当大的功率。这是因为许多级不管是否正在处理像素都会消耗大致相等量的功率。
由于考虑到成本和功率,图1中所说明的常规深管线结构不适用于很多图形应用,例如在无线电话和PDA上实施三维游戏。因此,需要一种适用于图形处理应用但具有降低的功率和尺寸要求的处理器结构。
在常规GPU中,深度数据和色彩数据以及纹理坐标的计算可为硬编码的。即,GPU管线结构的部分在功能上是固定的。因此,来自GPU管线结构的结果存储在与各自深度、色彩或纹理坐标数据相关联的特定缓冲器中,且在每个级处具有特定数据写入功能。因此,GPU的应用受到软件工程师的限制。
另外,常规GPU可在逐像素和逐级基础上将深度、色彩或各种纹理坐标数据写入到系统存储器。对于低功率和小屏幕尺寸的手持式装置来说,此逐像素传送可在数据传送中呈现瓶颈,因为像素信息的大小通常被减小以适应手持式装置。因此,GPU结构的带宽极为有限,且可减速对系统存储器的读取和写入,从而减缓总体速度并增加GPU的功率消耗。
发明内容
因此,本发明在各种实施例中提供一种用于在3-D图形管线中的包括一般缓冲存储器的万用数据写入单元的系统和方法。本发明提供在功能性上灵活且万用的通用或万用可编程数据写入级。另外,本发明提供数据写入级,其包括一般高速缓冲存储器以支持通用可编程数据写入级。另外,本发明提供具有任意大小的高速缓冲存储器以增加数据写入级处的3-D图形管线的有效带宽。此外,本发明提供通过行像素包序列来进行像素数据行转送以减少借助于通过3-D图形管线的随后遍历来处理像素包所需要的时钟周期的数目。
本发明的实施例涉及用于在3-D图形管线中的包括一般高速缓冲存储器的数据写入单元的系统和方法。具体地说,在一个实施例中,数据写入单元包括一第一存储器、复数个高速缓冲存储器和一数据写入电路。所述第一存储器接收一可含有与像素相关联的复数个信息行的像素包。所述像素包包括与像素的表面特征有关的数据。所述复数个高速缓冲存储器耦合到第一存储器以用于存储与复数个像素的复数个表面特征相关联的像素信息。复数个高速缓冲存储器中的每一者均与一指定表面特征相关联。数据写入电路耦合到第一存储器和复数个高速缓冲存储器。数据写入电路可在程序控制下操作以获得像素包的指定部分以存储到复数个高速缓冲存储器中。高速缓冲存储器被周期性地清洗到存储器子系统。
数据写入管线模块是万用的,因为任何类型的表面特征数据均可由所述模块写入,且所述模块并非专用于任何一种类型的像素数据。在一个实例中,数据写入单元写入与像素有关的色彩数据和深度数据两者。
当像素(例如)通过写入到存储器或因为在图形管线内某处被取消而从管线退离时,数据写入单元还向门监单元和/或记分板单元(其为上游模块)指示。
同样,数据写入单元对像素包执行再循环功能。即,数据写入单元使所有像素包再循环回到门监单元(其为上游模块)。门监单元调节通过3-D图形管线的像素包流,且能够通过管线将像素包发送回来,或使像素包完全退离。
在另一实施例中,一种从图形管线写入数据的方法利用具有一般高速缓冲存储器的数据写入单元。所述方法通过接收与像素相关联的像素包的一行来开始。像素包包括与像素的表面特征有关的数据。接着,所述方法的实施例存取所述行信息的第一指定部分。所述第一指定部分与像素的第一表面特征相关联。所述方法的实施例接着将像素包的第一指定部分写入到第一高速缓冲存储器。第一高速缓冲存储器用于存储复数个像素的第一表面特征,例如色彩或深度信息(如可编程地选择)。
在又一实施例中,描述用于支持手持式装置的3-D图形管线中的数据写入单元。所述数据写入单元包括第一存储器,其用于接收与像素相关联的像素包的至少一行像素信息。所述像素包包括与像素的表面特征有关的数据。数据写入单元还包括第一高速缓冲存储器,其用于存储与复数个像素的第一表面特征相关联的像素信息。数据写入单元还包括第二高速缓冲存储器,其用于存储与复数个像素的第二表面特征相关联的像素信息。数据写入单元还包括数据写入电路,其可在程序控制下操作以获得第一行像素信息的第一指定部分以存储到第一高速缓冲存储器中。数据写入单元可进一步在程序控制下操作以获得第二行像素信息的第二指定部分以存储到所述第二高速缓冲存储器中。
在本发明的各个实施例中,本发明可显著减小手持式计算装置上的图形结构的带宽要求。另外,本发明减少手持式计算装置上的图形结构的功率消耗。
附图说明
并入本说明书中并形成本说明书的一部分的附图说明了本发明的实施例,且连同描述内容一起,用于阐释本发明的原理:
现有技术图1展示描绘传统现有技术管线的各个级的图。
图2展示根据本发明一个实施例的计算机系统。
图3展示根据本发明一个替代实施例的计算机系统。
图4是根据本发明一个实施例说明包含可编程图形处理器的组件的示范性方框图。
图5是根据本发明一个实施例的具有一般高速缓冲存储器的示范性数据写入单元的方框图。
图6是根据本发明一个实施例说明四个离散单元信息的有效负载的来自像素包的一示范性信息行的方框图。
图7是根据本发明一个实施例说明用于通过具有一般高速缓冲存储器的可编程数据写入单元来处理像素信息包的计算机实施的方法中的步骤的流程图。
图8A是根据本发明一个实施例的可编程数据写入单元的一般高速缓冲存储器的双缓冲器特征的方框图。
图8B是根据本发明一个实施例的像素信息输出字的方框图。
图9是根据本发明一个实施例说明像素包中的“取消”指定符的实施的方框图。
图10是根据本发明一个实施例说明行转送数据的两个像素包的交错行像素信息的示范性方框图。
图11是根据本发明一个实施例的能够行转送数据的示范性数据写入单元的方框图。
图12是根据本发明一个实施例说明用于通过像素信息包的一序列行来行转送数据的计算机实施的方法中的步骤的示范性流程图。
图13A是根据本发明一个实施例的在示范性像素信息包从3-D图形管线第一次通过开始时示范性像素信息包的三个行的方框图。
图13B是根据本发明一个实施例说明在从3-D图形管线第一次通过结束时在数据写入单元处将数据从最后行转送到第一行的图13A的示范性像素包的三个行的方框图。
图13C是根据本发明一个实施例的图13A的示范性像素包在从3-D图形管线第二次通过开始时的三个行的方框图。
具体实施方式
现将详细参考本发明的优选实施例,其实例在附图中说明。虽然将结合优选实施例来描述本发明,但将了解,不希望将本发明限于这些实施例。相反地,本发明意欲涵盖可包括在由所附权利要求书界定的本发明精神和范围内的替代物、修改和等效物。此外,在本发明实施例的以下详细描述中,陈述大量具体细节以便提供对本发明的详尽了解。然而,所属领域的技术人员将了解,可在没有这些具体细节的情况下实践本发明。在其它例子中,并未详细描述众所周知的方法、程序、组件和电路,以便不会不必要地混淆本发明的实施例的方面。
一般来说,本发明的实施例通过提供功能方面灵活且万用的通用可编程数据写入级来降低三维(3-D)图形管线的处理要求。此部分地通过提供包括一般高速缓冲存储器的数据写入级以支持具有多个像素数据类型(例如,不同表面特征)的通用可编程数据写入级来完成。另外,本发明提供具有任意大小的高速缓冲存储器以增加数据写入级处的3-D图形管线的有效带宽。此外,本发明提供通过像素包的行信息序列来对数据进行像素数据行转送,以减少随后从管线通过时经由3-D图形管线处理像素包所需的时钟周期数目。这些成果导致处理速度增加、处理量增加且带宽减小。下文进一步描述本发明的
实施例和其益处。
符号和术语
从计算机存储器内对数据位所进行的操作的程序、步骤、逻辑块、处理和其它符号表示的角度来展现以下详细描述的某些部分。这些描述和表示是数据处理领域的技术人员用以将其作品实质最有效地传达给所属领域的其他技术人员的方式。程序、计算机执行的步骤、逻辑块、处理等在此处且一般来说被认为是导致希望结果的自相容步骤或指令序列。所述步骤是那些需要对物理量进行物理操作的步骤。通常(尽管不必要),这些量采用能在计算机系统中存储、传送、组合、比较和以其它方式操作的电信号或磁信号的形式。已多次证实将这些信号称为位、值、元素、符号、字符、项、数字或类似物是便利的,主要是因为常见用法的缘故。
然而,应记住所有这些和类似术语与适当物理量相关联且仅仅是应用于这些量的便利标记。除非另外特别规定(从以下论述中易见),否则理解为在本发明中使用例如“存取”或“接收”或“写入”或“存储”或“清洗”等术语的论述始终指代计算机系统(例如,图2的计算机系统200)或类似电子计算装置的行为和处理,其操作表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将其变换为类似地表示为计算机系统存储器或寄存器或其它类似信息存储、传输或显示装置内的物理量的其它数据。
计算机系统平台:
现参看图2,其展示根据本发明一个实施例的计算机系统200。计算机系统200展示根据本发明一个实施例的计算机系统的组件,所述计算机系统提供用于实施本发明的某种基于软件的功能性的执行平台。如图2中描绘,计算机系统200包括通过主机接口202耦合到图形处理器205的CPU201。主机接口202将在CPU201与图形处理器205之间传递的数据和命令翻译为其相应格式。CPU201和图形处理器205两者均通过存储控制器220耦合到存储器221。在系统200实施例中,存储器221是共享存储器,这是指存储器221藉此存储用于CPU201和图形处理器205两者的指令和数据的性质。通过存储控制器220来存取共享存储器221。共享存储器221还存储包含驱动所耦合的显示器225的视频帧缓冲器的数据。
如上文所述,在一个实施例中,本发明的某些处理和步骤被实行为常驻于计算机系统(例如,系统200)的计算机可读存储器(例如,存储器221)内且由系统200的CPU201和图形处理器205执行的一系列指令(例如,软件程序)。当被执行时,所述指令致使计算机系统200实施如下文所述的本发明的功能性。
如图2中所示,系统200展示实施本发明实施例的功能性的计算机系统平台的基本组件。相应地,系统200可实施为(例如)许多不同类型的便携式手持式电子装置。此类装置可包括(例如)移动式电话、PDA、手持式游戏装置和类似物。在此类实施例中,将包括被设计成添加外围总线、专用通信组件、用于专用IO装置的支持件和类似物的组件。
另外,应了解,尽管组件201到225在图2中被描绘为离散组件,但所述组件201到225中的若干者可实施为单个单片集成电路装置(例如,单个集成电路晶粒),其经配置以利用由现代半导体制作工艺提供的高集成度。举例来说,在一个实施例中,CPU201、主机接口202、图形处理器205和存储控制器220被制作为单个集成电路晶粒。
图3展示根据本发明一个替代实施例的计算机系统300。计算机系统300大体上类似于图2的计算机系统200。然而,计算机系统300使用具有专用系统存储器321的处理器201和具有专用图形存储器322的图形处理器205。在系统300实施例中,系统存储器321存储用于在CPU201上执行的处理/线程的指令和数据,且图形存储器322存储用于那些在图形处理器205上执行的处理/线程的指令和数据。图形存储器322将数据存储在驱动显示器225的视频帧缓冲器(未图示)中。如同图2的计算机系统200一样,计算机系统300的组件201到322中的一者或一者以上可集成到单个集成电路晶粒上。
图4是说明根据本发明一个实施例的包含可编程图形处理器205的组件的方框图。在一个实施例中,可编程图形处理器205说明3-D图形管线。如图4中所描绘,图形处理器205包括设置级405、光栅级410、门监级420、数据拾取级430、算术逻辑单元(ALU)管线440和数据写入级455。在一个实施例中,可编程图形处理器205包括若干ALU450,所述ALU450经配置以执行一着色器程序以实施多种不同3D图形操作,例如纹理组合、雾化、α掺合、α测试或其它着色算法。然而,应了解,在以下整个论述中,可编程图形处理器205还可经配置以执行其它类型的处理操作。
设置级405从主机(例如在CPU201上运行的软件应用程序)接收指令和图形基元。在一个实施例中,设置级405对基元执行坐标(X形式)的几何变换、裁剪和设置功能。设置单元取得3-D顶点信息(例如,x,y,z、色彩和/或纹理属性等)且应用用户定义的视图变换以为每个几何基元(下文描述为三角形,因为基元通常被实施为三角形)计算屏幕空间二维(2-D)坐标,所述二维坐标接着被发送到光栅级410以像素化给定三角形。可包括一顶点缓冲器408以为由设置级405使用的顶点数据提供缓冲器。在一个实施例中,设置级405设置重心系数。在一个实施方案中,设置级405是支持32位IEEE浮点、SI5.16定点和压缩.8格式的浮点超大指令字(Very Large Instruction Word,VLIW)机。
光栅级410从设置级405处接收关于待渲染(例如,转换为像素)的三角形的顶点数据。光栅级410通过使用内插来处理给定三角形的每个像素并确定需要对像素上执行的作为渲染一部分的着色器处理操作,例如计算色彩、纹理和雾化操作。在一个实施例中,光栅级410计算像素包的重心系数。在重心坐标系统中,相对于三角形的顶点来测量三角形中的距离。重心系数的使用减小了所需动态范围,这允许使用比浮点计算需要更小功率的定点计算。
光栅级410为待处理的三角形的每个像素产生至少一个像素包。每个像素包包括处理所需的一有效负荷的像素属性(例如,色彩、纹理、深度、雾化、(x,y)位置)以及边带信息的字段、和待对像素包执行的操作指令序列。光栅级410中的指令域(未图示)将指令分配给像素包。边带信息还可包括一有效字段和一取消字段。像素包可包括一个或一个以上像素数据行。
门监级420对像素执行数据流控制功能。在一个实施例中,门监级420具有一相关记分板425以用于像素包的调度、负载平衡、资源配置和危险避免。记分板425跟踪像素的进入和退离。进入门监级420的像素包设定记分板,且当像素包在完成处理之后从图形处理器205中排出时复位记分板。再循环通过管线的像素从数据写入单元455发送回到门监。
数据拾取级430拾取由门监420传递的像素包的数据。此可包括(例如)通过对像素包的每个行执行适当的色彩、深度或纹理数据读取来拾取色彩、深度和纹理数据。数据拾取级430可(例如)从帧缓冲器(未图示)处拾取像素数据,且还可管理局部纹理/雾化高速缓冲存储器432和色彩/深度高速缓冲存储器434。在将像素包发送到下一级之前,将所拾取的数据放置到像素包字段上。
像素包的所述行进入算术逻辑单元(ALU)管线440以用于处理。ALU管线440具有一序列的ALU。尽管图中说明了四个ALU,但可依据应用而在ALU管线440中使用更多或更少的ALU。
ALU管线440的输出转到万用数据写入级455。所述数据写入级455将像素包转换成像素数据,且将结果存储在写入缓冲器452中,或直接存储到存储器中的帧缓冲器中。数据写入级455可执行的功能的实例包括色彩和深度回写以及其格式转换。
图5是根据本发明一个实施例的与存储器子单元550介接的通用或万用数据写入单元500的方框图。在一个实施例中,数据写入单元500可在图4的3-D图形管线205内实施,且由此,所述数据写入单元500代表图4的数据写入单元455。数据写入单元500包括存储器510、数据写入电路520、指令组530和复数个高速缓冲存储器540。
存储器510用于接收与像素相关联的像素信息包。所述像素包包括与待存储在存储器550中的像素的表面特征有关的数据。此类表面特征包括(但不限于)色彩、深度、模板、透明度等。像素包包括至少一个信息行,其被格式化成所述行的包括随后处理所需的像素参数(例如,色彩、纹理、深度、雾化等)的字段。相对于图6进一步描述实例像素包。在一个实施例中,存储器510含有存储寄存器,其存储包括在像素包内的数据。
数据写入单元500可包括以通信形式耦合到存储器510以用于存储显示像素信息的复数个高速缓冲存储器540。像素信息与复数个像素的复数个表面特征相关联。复数个高速缓冲存储器540包括高速缓冲存储器-1541、高速缓冲存储器-2542,一直到高速缓冲存储器-n545。所述高速缓冲存储器540中的每一者均是一般的,且均可根据数据写入指令来编程以与一指定表面特征相关联。举例来说,高速缓冲存储器-1541可与色彩相关联,高速缓冲存储器-2542可与深度相关联。与高速缓冲存储器540相关联的表面属性的数目是可选择的。即,可显示一个或一个以上表面属性。数据写入单元是灵活的,因为如应用程序需要,便可使用更多表面属性(例如,模板)。
数据写入电路520耦合到存储器510和复数个高速缓冲存储器540。数据写入电路520可在程序控制下操作以获得存储器510中的像素包的指定部分,以将其存储到复数个高速缓冲存储器中,以可能被显示或用于随后渲染步骤。
高速缓冲存储器540可用于维持到达存储器子单元550的数据传送的高有效带宽。换句话说,高速缓冲存储器540收集数据,直到达到某一阈值量(例如128位)为止,且接着对存储器子单元550进行写入,从而减小了数据写入单元500所需的写入交易的数目。
另外,数据写入电路520以通信形式耦合到门监560。以此方式,像素包可再循环通过3-D图形管线以根据需要进行进一步处理,且门监560可调节和排列通过3-D像素图形管线的像素包传输流。举例来说,当像素包已完成通过3-D图形管线的处理时,门监560可使像素包退离。
数据写入单元500包括含有一列操作的指令组530。对像素包执行所述可选操作,且所述可选操作通过选择并排列对像素信息包执行的操作来向数据写入单元500提供可编程特征。在本实施例中,所述操作由数据写入电路520来执行。
在一个实施例中,数据写入单元500响应于包含将行像素信息的一部分指定为源和将高速缓冲存储器指定为目的地的指令格式。举例来说,在一个实施例中,指令组530包括可编程指令。指令的一个部分包括关于到所述信息行的哪个部分来提取像素数据的指示。即,为哪个成分从所述信息行中提取哪个字段。指令的另一部分控制可选抖动,即是否添加抖动值。抖动是用于在减小色彩精度时(例如,当将红、绿和蓝色成分压缩成16位量时)改进图像质量的众所周知的技术。指令的另一部分控制所提取的像素数据在存储到存储器中之前如何格式化(例如,将色彩精度从每像素八位减小到每像素五位)。指令的另一部分包括指示哪个表面缓冲器将接收所写入的数据的指示。指令的另一部分包括是否写入数据(即,是否在特定指令序列位置处执行指令)。指令的其它部分指定所述信息行的哪个字段对应于哪个输出数据通道(例如,红、绿或蓝)。
在本实施例中,指令组530包括基于存储为像素包中的边带信息的指令序列编号而施加到像素包的8个指令。其它实施例同样适合于具有不同数目(例如大于8个或小于8个)的指令的指令组530。其它实施例可利用其它机制来选择待执行的指令(例如,基于行编号依次执行)。
存储器子单元550以通信形式耦合到复数个高速缓冲存储器540以用于存储显示像素数据。在一个实施例中,所述复数个高速缓冲存储器540中的每一者均由存储控制器来控制以与存储器子单元550介接。在一个实施例中,数据写入单元500含有两个独立高速缓冲存储器,其可在软件控制下(例如,通过选择适当的指令530)用于存储独立表面(例如色彩或深度)。
周期性地,数据从高速缓冲存储器540清洗到存储器子单元550。双缓冲机构可用于每个高速缓冲存储器,其中第一高速缓冲存储器从数据写入电路520接收数据,而另一高速缓冲存储器被清洗到存储器子单元550,且接着它们的角色互换,等等。
现转向图6,其展示根据本发明一个实施例的一行像素信息600的方框图。一像素包可含有一个或一个以上行像素信息,其依次在一次或多次从3-D图形管线通过中进行处理。一般来说,像素包含有对于图形显示器中的一像素的一组完整描述的存储位置。在本实施例中,所述信息行600包括边带信息610和有效负载信息620。
边带信息610包括识别或“核算”信息的各种字段。仅出于说明目的,边带信息610可包括“偶数/奇数”字段、“取消”字段和“序列”字段。“偶数/奇数”字段在交错通过3-D图形管线的一个或一个以上像素包的行时识别一特定像素的一信息行。来自不同像素包的交错信息行将等待时间隐藏在3-D图形管线内。“序列”字段将所述信息行600链接到待施加到行600的指令。举例来说,所述指令可位于所述指令组530中。
在一个实施例中,有效负载620可分裂成4个离散数据单元R-0、R-1、R-2和R-3。包括在有效负载620内的信息包括(例如)经处理以产生显示的像素信息的像素属性(色彩、深度、纹理)。在本实施例中,对于80位信息行来说,如行600所说明的像素包的每个行中的像素属性可包括四组20位值(例如R-0、R-1、R-2和R-3)。像素属性的实例包括16位Z深度值、16位(s,t)纹理坐标、4位细节级别值、一对色彩值或压缩RGBA色彩值等。其它实施例同样适合于不同数目的离散数据单元和具有不同长度的有效负载。
在另一实施例中,数据写入单元500可用于支持手持式装置(例如手机、PDA等)的3-D图形管线。数据写入单元包含用于接收像素信息包的至少一行像素信息的第一存储器。所述像素包与一像素相关联。像素包包括与所述像素的复数个表面特征有关的数据。
数据写入单元500可包括第一高速缓冲存储器,其用于存储与复数个像素的第一表面特征(例如色彩)相关联的像素信息。另外,数据写入单元可包括第二高速缓冲存储器,其用于存储与复数个像素的第二表面特征(例如深度)相关联的像素信息。在其它实施例中,可包括更多的高速缓冲存储器以增加由3-D图形管线产生的显示数据的质量或能力。
如先前所述,数据写入单元500还包括数据写入电路。数据写入单元可在程序控制下操作以获得第一行像素信息的第一指定部分(例如来自620)以存储到第一高速缓冲存储器(例如541)中。数据写入单元500可在程序控制下进一步操作以获得第二行像素信息的第二指定部分(例如620的)以存储在第二高速缓冲存储器(例如542)中。在一个实施例中,第一指定部分和第二指定部分可包括在相同或不同行像素信息中。
现参看图7,其说明根据本发明一个实施例的用于写入来自3-D图形管线的数据的方法的流程图700。在一个实施例中,所述图形管线可在例如个人数字助理、移动电话、手持式游戏装置或类似物的手持式装置上执行。
在710处,数据写入单元接收一像素包的一行。所述像素包与一像素相关联,且提供由3-D图形管线处理的像素属性以输出显示像素数据(例如用于帧缓冲器和/或深度缓冲器)。具体地说,像素包包括与像素的表面特征有关的数据。通常,在3-D图形管线中的某一点处,所述信息行包括与像素的表面特征有关的经处理的数据。
在720处,在响应于指令的程序控制下,数据写入单元存取所述行的第一指定部分。即,举例来说,本实施例存取与所述信息行的有效负载相关联的寄存器以存取与表面特征有关的数据。在本实施例中,第一指定部分与像素的第一表面特征(例如色彩或深度)相关联。其它实施例可包括其它表面特征(例如模板等)。
在730处,本发明将像素包的第一指定部分写入到第一高速缓冲存储器。第一高速缓冲存储器并非专用于任何表面特征,直到被可编程地指定为止。此时,第一高速缓冲存储器用于存储复数个像素的第一表面特征。以此方式,本发明实施灵活且通用的数据写入单元,其可实施任何数目的表面特征。
在740处,本实施例进一步包括根据一指令而存取像素包的第二行的第二指定部分的操作。在此情况下,第二指定部分与像素的第二表面特征相关联。由此,用于所述像素的显示像素数据包括第一和第二表面特征(例如色彩和深度)。其它实施例包括使用额外显示属性(例如模板)。
在750处,本发明进一步包括将像素包的第二指定部分写入到第二高速缓冲存储器。如同第一高速缓冲存储器一样,第二高速缓冲存储器是可编程选择的,且用于存储复数个像素的第二表面特征。
在一个实施例中,描述第一表面特征的数据和描述第二表面特征的数据包括在像素包的一个行内。在其它实施例中,描述第一表面特征的数据包括在第一行内,且描述第二表面特征的数据包括在像素信息包的第二行内。
在760处,如先前所述,本实施例周期性地将第一高速缓冲存储器清洗到存储器子单元。另外,如先前所述,本实施例周期性地清洗第二高速缓冲存储器。举例来说,当达到阈值(例如128位)时,清洗第一和第二高速缓冲存储器。
图8A是根据本发明一个实施例的可编程数据写入单元的一般高速缓冲存储器的双缓冲器特征的方框图。举例来说,图8A的高速缓冲存储器代表图5的数据写入单元500中的复数个高速缓冲存储器540中的高速缓冲存储器的每一者(例如,高速缓冲存储器541)。
在本实施例中,高速缓冲存储器541包括两个缓冲器,即主动高速缓冲存储器810和清洗高速缓冲存储器815。存储控制器820通过控制从数据写入单元内对主动高速缓冲存储器810的读取和写入以及从清洗高速缓冲存储器815对存储器子系统830(例如,SRAM、DRAM等)的读取和写入来执行双功能。如图8A中所示,主动高速缓冲存储器810主动从数据写入电路(例如520)接收像素包的数据,且清洗高速缓冲存储器815已经将数据清洗到存储器子系统830,或为闲置的。
在其它实施例中,高速缓冲存储器包括复数个缓冲器以增加性能。在此情况下,存储控制器820控制对复数个缓冲器中的主动和清洗高速缓冲存储器的读取和写入。
在适当的时间,存储控制器将切换高速缓冲存储器810与815的功能,使得高速缓冲存储器810变成将数据清洗到存储器子系统830的清洗高速缓冲存储器,且高速缓冲存储器815从数据写入电路接收数据。
在一个实施例中,高速缓冲存储器541的内容被周期性地清洗到存储器子系统。具体地说,在正在进行基础上,主动高速缓冲存储器810的内容被清洗到存储器子系统830。
在一个实施例中,主动高速缓冲存储器810被指定为清洗高速缓冲存储器,且在所述高速缓冲存储器充满数据时被清洗。在另一实施例中,主动高速缓冲存储器810被指定为清洗高速缓冲存储器,且在地址扫描线改变时被清洗。即,跨越一水平扫描线处理三角形的像素。当达到扫描线的末端时,处理所述三角形的最后一个像素,且扫描线的地址改变。所述三角形中的下一像素位于下一扫描线上。此时,主动高速缓冲存储器810被指定为清洗高速缓冲存储器,且数据被清洗。在又一实施例中,活性高速缓冲存储器810在保持闲置持续任意数目的时钟周期后被清洗。在本实施例中,由于主动高速缓冲存储器中可包括显示数据的8个像素,所以可在8个时钟周期后清洗主动高速缓冲存储器810。在另一实施例中,在软件控制下(例如,在一帧渲染结束时),在接收到指示进行清洗的命令时清洗主动高速缓冲存储器810。
在一个实施例中,数据写入单元能够指示哪些像素已经写入到存储器子系统,或哪些像素因为具有取消位组而被取消。即,数据写入单元能够与门监模块进行通信,以便使像素通过3-D图形管线退离。在此情况下,一旦清洗高速缓冲存储器815被写入到存储器子系统830,与那些写入到存储器子系统的像素相关联的所有寄存器位均被清除以用于稍后处理其它像素数据。
举例来说,当像素包退离时,数据写入单元能够通知门监单元(例如420)和/或记分板单元(例如425)。具体地说,当像素包被取消时,数据写入单元通知门监和/或记分板,使得像素包可退离。如下文将进一步描述,当与像素包相关联的任一行具有取消位组时,可取消像素包。另外,当像素包已经写入到数据写入单元外部的存储器子单元时,数据写入单元通知门监和/或记分板,使得像素包可退离。举例来说,像素包中的写入启用指定符指示像素包已经写入到存储器子单元。在一个实施例中,即使像素包已经被取消且并未写入到存储子单元,当像素包被取消时,数据写入单元也设定像素包中的写入启用指定符,使得门监和/或记分板可使像素包退离。
图8B是根据本发明一个实施例的复数个像素的像素信息输出字850的方框图。所述输出字850具有指定宽度以用于存储与相关表面特征相关联的像素信息。在本实施例中,输出字包括8个像素的信息,其每一者的宽度均为16位,因为总线宽度为128位宽。16字节的信息对应于8个像素0到7的显示信息。由此,输出字的宽度为128位。即,8像素的显示数据可包括在128位字850中。
因此,增加了3-D图形管线的带宽。代替16位的逐像素带宽,可在一个时钟周期中读取或写入128位数据。由此,在一个时钟中,可写入对应于8个像素的16个字节的信息,而不是对应于1个像素的传统2个字节的信息。这显著增加了在数据写入单元处3-D图形管线所利用的带宽的效率,因为写入较少数据仍消耗存储器总线上的整个128位周期。
图9是根据本发明一个实施例的说明“取消”指定符传播到像素包的像素包的方框图。图9中的像素包包括呈循序次序的4个信息行,行-0910、行-1920、行-2930和行-3940。仅出于说明目的,仅展示所述行中的每一者的边带信息中的“取消”指定符(一位)。
如先前所论述,在一个实施例中,当“取消”指定符被设定时,像素包的有效负载部分不再通过3-D图形管线来处理。即,当一信息行包括取消指定时,数据写入单元中的数据写入电路可操作以仅在“取消”指定符未被设定时写入来自所述行的数据。具体地说,仅在所述行中写入启用被设定且在所述行的“取消”指定符未被设定时,可写入所述行的指定部分。此外,数据写入电路可操作以仅在来自每个信息行的所有“取消”指定符均未被设定时写入来自像素包的数据。
在图9中,“取消”指定符915与行-0910相关联且未被设定。“取消”指定符925与行-1920相关联且未被设定。“取消”指定符935与行-2相关联且被设定。“取消”指定符945与行-3相关联且未被设定。
本实施例中的数据写入单元(例如,图5的数据写入单元500)能够将取消位传播到整个像素包的各行。即,数据写入单元对所有来自像素包的各行的“取消”指定符执行OR函数960。
如图9中所示,行-2930具有被设定的“取消”指定符935。“取消”指定符935通过使用OR函数960而传播通过像素包。由此,通过与适当的存储控制器通信的数据写入单元能够解开字节启用950。由于字节启用950被解开,因而来自图9所示的像素包的像素数据不能写入到缓冲器高速缓冲存储器,或在另一情况下,不能从缓冲器高速缓冲存储器写入到存储器子系统。如先前所论述,“取消”指定符可通信到3-D图形管线中的上游的门监和/或记分板单元。
图10是根据本发明一个实施例的说明像素数据的行转送的两个像素包的交错行像素信息的方框图。通过交替地呈现与两个像素包相关联的行,两个像素包被交错。偶数像素的偶数行(行1010A、1010B、1010C和1010D)与奇数像素的奇数行(行1020A、1020B、1020C和1020D)交错。
交错提供额外时钟周期以解决3-D图形管线内的等待时间。另外,其它实施例同样适合于交错两个以上像素包以处理3-D图形管线中的更大等待时间。
仅出于说明目的,在偶数和奇数像素包的偶数和奇数行中的每一者的边带中仅展示“偶数/奇数”位。举例来说,偶数像素包包括具有偶数位(零位1015A、1015B、1015C和1015D)的行。奇数像素包包括具有奇数位(一位1025A、1025B、1025C和1025D)的行。
如图10中所示,线1050和线1060指示数据从偶数和奇数像素包的最后行1010D和1020D转送到在同一像素包的行序列中较早出现的行。举例来说,线1050说明来自行1010D的数据转送到在偶数像素包的行序列中较早出现的行1010A。即,来自行1010D的数据被提前某数目个时钟周期。
类似地,线1060说明将来自行1020D的数据转送到在奇数像素包的行序列中较早出现的行1020A。如下文将描述,数据的行转送由数据写入单元中的逻辑来完成。
在一个实施例中,对于一时钟周期配对交错行。在此情况下,在一个时钟周期中配对并执行每个像素包的第一行1010A和1020A。同样,在一个时钟周期中配对并执行每个像素包的第二行1010B和1020B。类似地,对于每个偶数和奇数像素包的第三和第四行也是如此。
在本实施例中,行的交错是3-D图形管线的可选特征。由此,不管两个或两个以上像素包是否在通过3-D图形管线来处理时交错,行转送均是可能的。
在一个实施例中,像素数据的行转送减小了3-D图形管线中的等待时间。像素包可分布在通过GPU管线结构依次处理的行像素信息中。像素包可再循环通过GPU管线结构,以便完成3-D处理;然而,当再循环行在不再需要的较早行后面具有有价值的数据时,常常引入等待时间,且因此在遇到先前在第一次通过期间所计算的数据以供进一步使用之前必须等待若干时钟。因此,功率消耗增加,因为通过GPU管线结构来完全处理像素信息需要更多的时钟。本实施例在行之间转送像素数据以减小3-D图形管线中的等待时间。
图11是根据本发明一个实施例的用于图形管线中能够行转送像素数据的数据写入单元500的方框图。图11大体上类似于图5。举例来说,存储器510用于存储与一像素相关联的复数行像素信息。所述复数行像素信息包括与所述像素的表面特征有关的数据。另外,在本实施例中,所述复数个行包括(但不限于)第一行和第二行。另外,数据写入电路520包括存取逻辑1110和再循环逻辑1120。
存取逻辑1110用于存取数据的第二行的一部分。存取逻辑110还用于将从第二行存取的数据存储到所述第一行的一部分中。在本实施例中,在像素信息包的行序列中,第一行出现在第二行之前。
在一个实施例中,第二行是复数行像素信息的序列中的最终行。举例来说,参看图10,偶数像素包中的第二行是最后行1010D。同样,在本实施例中,第一行是复数个行像素信息的序列中的开始行。举例来说,再次参看图10,偶数像素包中的第一行是开始行1010A。由此,如图10中所示,来自行1010D的数据被传送或存储在行1010A中。
再循环逻辑1120将所述复数个行像素信息再循环到3-D图形管线中的上游管线模块。在一些应用中再循环对于完整地处理像素包来说是必要的。在一个实施例中,上游管线模块为门监模块,其调节通过所述图形管线的像素信息流。在另一实施例中,上游管线模块为数据拾取模块。
行转送减少了处理时钟周期。即,当通过3-D管线结构再循环数据时,像素包的单次通过中的当前处理值趋向于后退到包中的最后或后部行。随着像素包再循环,较早行需要那些位于包后部的当前处理值;然而,由于那些当前值仍位于包的最后或后部行中,因而发生等待时间。对于将那些当前值传送到正确的行以供处理,若干时钟周期仍然是必要的。在此情况下,因为3-D图形管线必须等待当前值传播到进一步处理可能发生的点,所以存在等待时间。
因为特定像素包的所有行均在数据写入单元500的控制内,所以在3-D图形管线内的数据写入单元500的当前实施内,行转送是可能的。以此方式,本实施例中的数据写入单元500能够将数据从像素包的一个后部行转送到在所述像素包的行序列中较早出现的另一前部行。
在另一实施例中,在支持手持式装置的图形管线中使用的数据写入单元能够进行行转送。本实施例的数据写入单元包括第一存储器,其用于存储来自一与一像素相关联的像素包的第一行像素信息。像素包包括与所述像素的表面特征有关的数据。
数据写入单元包括第二存储器,其用于存储来自像素信息包的第二行像素信息。在一个实施例中,第一和第二行像素信息为存储寄存器。
数据写入单元还包括用于存取位于第二行的一部分中的数据的逻辑。所述逻辑还将其中所存取的数据存储到第一行的一部分中。如先前所述,在与像素信息包相关联的行序列中,第二行在第一行之后出现。
另外,数据写入单元还包括用于将像素包再循环到上游管线模块的逻辑。即,将第一行和第二行再循环到上游模块以供进一步处理。
同样,数据写入单元包括用于通过使用从第二行的所述部分存取到的数据而对再循环的第一行执行指令的逻辑。以此方式,时钟周期不用于将数据更新到第一行。
图12是根据本发明一个实施例说明用于3-D图形管线中的行转送方法的计算机实施的处理的流程图。所述处理在3-D图形管线的数据写入单元内实施,因为整个像素包在数据写入单元的控制内(例如在管线的多个级中)。
在1210处,本实施例接收与一像素相关联的复数行像素信息。所述复数行像素信息包括与像素的表面特征有关的数据。另外,所述复数个行包括(但不限于)第一行和第二行。
在1220处,本实施例存取第二行的一部分。如先前所述,在复数个行的序列中,第二行比第一行晚出现。
举例来说,在穿过3-D图形管线的当前通过中,第二行的所述部分可含有来自执行对第二行所执行的指令的结果。接着将此结果写入到稍后存取的第二行的所述部分。以此方式,在本实施例中,在处理第一行后数个时钟周期后产生的数据仍可转送到第一行。
在1230处,本实施例将在1220中从第二行存取的数据存储到第一行的一部分中。以此方式,当复数行像素信息再循环通过3-D图形管线时,不存在等待时间,因为第一行已经具有处理所必需的数据。这归因于从第二行存取的数据已转送到第一行。实现了时钟周期的显著节约。
在一个实施例中,本实施例使用从第二行存取的数据来重写包含在第一行的所述部分中的数据。
在1240处,如先前所述,本实施例使复数行像素信息再循环到上游管线模块以供进一步处理。这通过将复数个行发送到3-D图形管线的门监来完成。如先前所述,门监调节通过图形管线的像素信息流。
图13A、13B和13C根据本发明一实施例提供行转送数据以节约时钟周期的说明。在图13A、13B和13C中,呈现在通过3-D图形管线来处理像素包时像素包的不同状态。像素包包括呈以下序列的三个信息行:行-01310、行-11320和行-21330。即,行-01310为序列的开始行,且行-21330为序列的最后行。
表1说明经由从3-D图形管线的两次通过的一部分来对像素包执行的一序列操作。在第一次通过中,对像素包的行-0、行-1和行-2执行操作。仅出于说明行转送的目的,在第二次通过中,仅展示行-0上的操作。
表1
第一次通过 | 行-0 | t-0=常数-tex-0 |
行-1 | =t-0*tex-1 | |
行-2 | R-0=t-0+tex-2 | |
第二次通过 | 行-0 | R-0*tex-3 |
图13A是三个行1310、1320和1330的第一状态1300A的方框图。根据本发明一个实施例,第一状态代表像素包处于其从3-D图形管线的第一次通过开始时。即,在状态1300A下,数据已被适当地拾取到行1310、1320和1330的每一者中,以用于从3-D图形管线的第一次通过。由此,在第一次通过中,行-01310含有tex-0,行-11320含有tex-1,且行-21330含有tex-2。
图13B是根据本发明一个实施例说明在从3-D图形管线的第一次通过结束时在数据写入单元处将数据从最后行(行1330)转送到第一行(行1310)的图13A的像素包的三个行的方框图。如表1中所示,在第一次通过中,行-21330产生结果R-0。数据写入单元能够将结果R-0转送到行-01310(如图13B中的箭头所示)。结果R-0重写tex-0的部分。
图13C是根据本发明一个实施例的在从3-D图形管线的第二次通过开始时图13A的像素包的三个行的方框图。如图13C中所示,行-01310包括结果R-0以及所拾取的tex-3信息。因此,由于所有输入数据均可用,所以在第二次通过中对行-0进行操作是可能的。由于数据写入单元的行转送能力,避免了像素包的处理的停止,因为在从3-D图形管线的第一次通过期间转送结果R-0。
因此,本发明在各个实施例中提供一种用于在3-D图形管线中行转送像素数据的系统和方法。本发明提供在功能性上为灵活且不受限制的通用可编程数据写入级。另外,本发明提供一种数据写入级,其包括一般高速缓冲存储器以支持通用可编程数据写入级。另外,本发明提供具有任意大小的高速缓冲存储器以增加数据写入级处的3-D图形管线的有效带宽。此外,本发明提供通过像素包的行信息序列来行转送数据以减少通过3-D图形管线来处理像素包所需的时钟周期的数目。
已经出于说明和描述的目的呈现了本发明具体实施例的前文描述内容。不希望它们是详尽的或将本发明限于所揭示的精确形式,且显然,按照上述教示,很多修改和变化均是可能的。选择并描述所述实施例是为了最好地阐释本发明的原理和其实际应用,从而使所属领域的技术人员能够最好地利用本发明,且具有各种修改的各种实施例适合于所期望的特定使用。希望本发明的范围由所附权利要求书和其均等物来界定。
在广义概括中,此叙述已经描述了一种用于在3-D图形管线中包括一般高速缓冲存储器的数据写入单元的系统和方法。具体地说,在一个实施例中,数据写入单元包括一第一存储器、复数个高速缓冲存储器和一数据写入电路。第一存储器接收与一像素相关联的像素包。所述像素包包括与所述像素的表面特征有关的数据。复数个高速缓冲存储器耦合到第一存储器以用于存储与复数个像素的复数个表面特征相关联的像素信息。复数个高速缓冲存储器中的每一者均与指定表面特征可编程地相关联。数据写入电路耦合到第一存储器和复数个高速缓冲存储器。数据写入电路可在程序控制下操作以获得像素包的指定部分以存储到复数个高速缓冲存储器中。
Claims (31)
1.一种用于一图形管线中的数据写入单元,所述数据写入单元包含:
一第一存储器,其用于接收一与一像素相关联的像素包,所述像素包包含与所述像素的表面特征有关的数据;
复数个高速缓冲存储器,其耦合到所述第一存储器以用于存储与复数个像素的复数个表面特征相关联的像素信息,其中所述复数个高速缓冲存储器中的每一者与一指定表面特征可编程地相关联;和
一数据写入电路,其耦合到所述第一存储器和所述复数个高速缓冲存储器,且可在程序控制下操作以获得所述像素包的指定部分以存储到所述复数个高速缓冲存储器中。
2.根据权利要求1所述的数据写入单元,其中所述复数个高速缓冲存储器包含:
一第一高速缓冲存储器,其具有指定宽度且用于存储与一第一表面特征相关联的像素信息;和
一第二高速缓冲存储器,其具有所述指定宽度且用于存储与一第二表面特征相关联的像素信息。
3.根据权利要求1所述的数据写入单元,其中所述复数个像素的一表面特征为色彩。
4.根据权利要求1所述的数据写入单元,其中所述复数个像素的一表面特征为深度。
5.根据权利要求1所述的数据写入单元,其中所述像素包包含至少一个行像素信息。
6.根据权利要求5所述的数据写入单元,其中一第一行信息包括一取消指定,且其中所述数据写入电路可操作以仅在所述取消指定未被设定时写入来自所述第一行像素信息的数据。
7.根据权利要求5所述的数据写入单元,其中所述像素包中的每行信息均包括一取消指定,且其中所述数据写入电路可操作以仅在所述像素包的所有取消指定均未被设定时写入来自所述像素包的数据。
8.根据权利要求1所述的数据写入单元,其进一步包含:
一组指令,其作为用于由所述数据写入电路对所述像素包进行的操作的所述程序控制。
9.根据权利要求1所述的数据写入单元,其中所述复数个高速缓冲存储器中的每一者的内容被周期性地清洗到一存储器子单元。
10.根据权利要求1所述的数据写入单元,其中所述复数个高速缓冲存储器中的每一者均包含一双缓冲器,所述双缓冲器包含一从所述数据写入电路接收信息的主动高速缓冲存储器和一将信息清洗到一存储器子单元的清洗高速缓冲存储器。
11.根据权利要求1所述的数据写入单元,其中所述复数个高速缓冲存储器中的每一者均包含复数个缓冲器以用于从所述数据写入电路接收信息和用于将信息清洗到一存储器子单元。
12.根据权利要求1所述的数据写入单元,其中所述第一存储器可操作以存储与所述数据写入电路所操作的复数个像素相关联的复数个交错行像素包。
13.一种写入来自一图形管线的数据的方法,其包含:
a)接收与一像素相关联的一像素包的一行信息,所述像素包包含与所述像素的表面特征有关的数据;
b)存取所述行信息的一第一指定部分,所述第一指定部分与所述像素的一第一表面特征可编程地相关联;和
c)将所述像素包的所述第一指定部分写入到一第一高速缓冲存储器,其中所述第一高速缓冲存储器用于存储复数个像素的第一表面特征。
14.根据权利要求13所述的方法,其进一步包含:
d)存取所述像素包的一第二行的一第二指定部分,所述第二指定部分与所述像素的一第二表面特征可编程地相关联;和
e)将所述像素包的所述第二指定部分写入到一第二高速缓冲存储器,其中所述第二高速缓冲存储器用于存储所述复数个像素的第二表面特征。
15.根据权利要求14所述的方法,其中所述第一行与所述第二行为相同行。
16.根据权利要求14所述的方法,其中所述第一表面特征为色彩且所述第二表面特征为深度。
17.根据权利要求13所述的方法,其中所述第一表面特征为色彩。
18.根据权利要求13所述的方法,其中所述第一表面特征为深度。
19.根据权利要求13所述的方法,其进一步包含:
d)周期性地清洗所述第一高速缓冲存储器,其中所述第一高速缓冲存储器包含一主动高速缓冲存储器和一清洗高速缓冲存储器,所述清洗包含:
d1)将所述像素的所述第一表面特征主动地存储在所述主动高速缓冲存储器中;和
d2)将所述清洗高速缓冲存储器的内容清洗到所述存储器子单元。
20.根据权利要求19所述的方法,其进一步包含:
在一帧或渲染结束时清洗所述主动高速缓冲存储器。
21.根据权利要求14所述的方法,其进一步包含:
d)周期性地清洗所述第二高速缓冲存储器,其中所述第二高速缓冲存储器包含一主动高速缓冲存储器和一清洗高速缓冲存储器,所述清洗包含:
d1)将所述像素的所述第二表面特征主动地存储在所述主动高速缓冲存储器中;和
d2)将所述清洗高速缓冲存储器的内容清洗到所述存储器子单元。
22.根据权利要求13所述的方法,其中c)进一步包含:
c1)当一写入启用被设定时且仅当一取消指定未被设定在所述行像素信息中时写入所述第一指定部分。
23.根据权利要求22所述的方法,其进一步包含:
仅在与所述像素包的复数个行相关联的复数个取消指定未被设定时,写入所述第一指定部分。
24.一种用于一支持一手持式装置的图形管线中的数据写入单元,所述数据写入单元包含:
一第一存储器,其用于接收与一像素相关联的一像素包的至少一个行像素信息,所述像素包包含与所述像素的表面特征有关的数据;
一第一高速缓冲存储器,其用于存储与复数个像素的一第一表面特征相关联的像素信息;
一第二高速缓冲存储器,其用于存储与复数个像素的一第二表面特征相关联的像素信息;和
一数据写入电路,其可在程序控制下操作以获得一第一行像素信息的一第一指定部分以存储到所述第一高速缓冲存储器中,且可在程序控制下进一步操作以获得一第二行像素信息的一第二指定部分以存储到所述第二高速缓冲存储器中。
25.根据权利要求24所述的数据写入单元,其中所述第一行像素信息与所述第二行像素信息相同。
26.根据权利要求24所述的数据写入单元,其中所述第一表面特征为色彩。
27.根据权利要求26所述的数据写入单元,其中所述第二表面特征为深度。
28.根据权利要求24所述的数据写入单元,其中所述第一表面特征为深度且所述第二表面特征为色彩。
29.根据权利要求24所述的数据写入单元,其中所述数据写入单元响应于一指令格式,所述指令格式包含一将一行像素信息的一部分作为一源的指定和一将一高速缓冲存储器作为一目的地的指定。
30.根据权利要求24所述的数据写入单元,其中所述第一高速缓冲存储器和所述第二高速缓冲存储器的内容被周期性地清洗到一存储器子单元。
31.根据权利要求24所述的数据写入单元,其中所述第一高速缓冲存储器和所述第二高速缓冲存储器每一者均包含一双缓冲器,所述双缓冲器包含一从所述数据写入电路接收信息的主动高速缓冲存储器和一被清洗到一存储器子单元的清洗高速缓冲存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/846,774 US7724263B2 (en) | 2004-05-14 | 2004-05-14 | System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories |
US10/846,774 | 2004-05-14 | ||
PCT/US2005/017524 WO2005114645A2 (en) | 2004-05-14 | 2005-05-14 | System and method for a universal data write unit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1954356A true CN1954356A (zh) | 2007-04-25 |
CN1954356B CN1954356B (zh) | 2011-06-22 |
Family
ID=35429080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800154352A Expired - Fee Related CN1954356B (zh) | 2004-05-14 | 2005-05-14 | 用于万用数据写入单元的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7724263B2 (zh) |
EP (1) | EP1756803A4 (zh) |
CN (1) | CN1954356B (zh) |
WO (1) | WO2005114645A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209923A (zh) * | 2015-02-10 | 2017-09-26 | 高通股份有限公司 | 图形处理中的混合渲染 |
CN109240652A (zh) * | 2017-10-27 | 2019-01-18 | 广州恒强信息科技有限公司 | 一种基于j2ee的优抚信息管理系统 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US8624906B2 (en) | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8698817B2 (en) | 2004-11-15 | 2014-04-15 | Nvidia Corporation | Video processor having scalar and vector components |
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 |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US8207975B1 (en) * | 2006-05-08 | 2012-06-26 | Nvidia Corporation | Graphics rendering pipeline that supports early-Z and late-Z virtual machines |
US8933933B2 (en) * | 2006-05-08 | 2015-01-13 | Nvidia Corporation | Optimizing a graphics rendering pipeline using early Z-mode |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8411096B1 (en) * | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US20110043528A1 (en) * | 2009-08-24 | 2011-02-24 | Apple Inc. | Cache management for glyph display |
US8363669B2 (en) * | 2010-06-25 | 2013-01-29 | International Business Machines Corporation | Recovering data from a plurality of packets |
GB2489278B (en) * | 2011-03-24 | 2019-12-25 | Advanced Risc Mach Ltd | Improving the scheduling of tasks to be performed by a non-coherent device |
CN103247068B (zh) | 2013-04-03 | 2016-03-30 | 上海晨思电子科技有限公司 | 一种渲染方法和装置 |
GB2520366B (en) * | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
US10089230B1 (en) | 2017-04-01 | 2018-10-02 | Intel Corporation | Resource-specific flushes and invalidations of cache and memory fabric structures |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4241341A (en) | 1979-03-05 | 1980-12-23 | Thorson Mark R | Apparatus for scan conversion |
CA2043493C (en) | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5493644A (en) | 1991-07-11 | 1996-02-20 | Hewlett-Packard Company | Polygon span interpolator with main memory Z buffer |
TW304254B (zh) * | 1994-07-08 | 1997-05-01 | Hitachi Ltd | |
US5710577A (en) | 1994-10-07 | 1998-01-20 | Lasermaster Corporation | Pixel description packet for a rendering device |
JP3020833B2 (ja) * | 1995-06-19 | 2000-03-15 | 株式会社東芝 | チェックポイント取得システム |
US5977977A (en) | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5935240A (en) * | 1995-12-15 | 1999-08-10 | Intel Corporation | Computer implemented method for transferring packed data between register files and memory |
US5761720A (en) * | 1996-03-15 | 1998-06-02 | Rendition, Inc. | Pixel engine pipeline processor data caching mechanism |
US6148368A (en) * | 1997-07-31 | 2000-11-14 | Lsi Logic Corporation | Method for accelerating disk array write operations using segmented cache memory and data logging |
US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
US6025854A (en) | 1997-12-31 | 2000-02-15 | Cognex Corporation | Method and apparatus for high speed image acquisition |
US6236413B1 (en) | 1998-08-14 | 2001-05-22 | Silicon Graphics, Inc. | Method and system for a RISC graphics pipeline optimized for high clock speeds by using recirculation |
US6437789B1 (en) | 1999-02-19 | 2002-08-20 | Evans & Sutherland Computer Corporation | Multi-level cache controller |
US6433788B1 (en) | 1999-07-30 | 2002-08-13 | Ati International Srl | Dual fragment-cache pixel processing circuit and method therefore |
US6496192B1 (en) * | 1999-08-05 | 2002-12-17 | Matsushita Electric Industrial Co., Ltd. | Modular architecture for image transposition memory using synchronous DRAM |
US6633299B1 (en) * | 2000-01-10 | 2003-10-14 | Intel Corporation | Method and apparatus for implementing smart allocation policies for a small frame buffer cache serving 3D and 2D streams |
US6636223B1 (en) | 2000-08-02 | 2003-10-21 | Ati International. Srl | Graphics processing system with logic enhanced memory and method therefore |
US6638223B2 (en) * | 2000-12-28 | 2003-10-28 | Ge Medical Systems Global Technology Company, Llc | Operator interface for a medical diagnostic imaging device |
US6604175B2 (en) | 2001-03-01 | 2003-08-05 | Sony Corporation | Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type |
US6704026B2 (en) | 2001-05-18 | 2004-03-09 | Sun Microsystems, Inc. | Graphics fragment merging for improving pixel write bandwidth |
KR100510131B1 (ko) * | 2003-01-29 | 2005-08-26 | 삼성전자주식회사 | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 |
-
2004
- 2004-05-14 US US10/846,774 patent/US7724263B2/en not_active Expired - Lifetime
-
2005
- 2005-05-14 EP EP05750863A patent/EP1756803A4/en not_active Withdrawn
- 2005-05-14 CN CN2005800154352A patent/CN1954356B/zh not_active Expired - Fee Related
- 2005-05-14 WO PCT/US2005/017524 patent/WO2005114645A2/en not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209923A (zh) * | 2015-02-10 | 2017-09-26 | 高通股份有限公司 | 图形处理中的混合渲染 |
CN107209923B (zh) * | 2015-02-10 | 2021-07-06 | 高通股份有限公司 | 图形处理中的混合渲染 |
CN109240652A (zh) * | 2017-10-27 | 2019-01-18 | 广州恒强信息科技有限公司 | 一种基于j2ee的优抚信息管理系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1756803A4 (en) | 2009-01-07 |
WO2005114645A3 (en) | 2006-05-18 |
CN1954356B (zh) | 2011-06-22 |
WO2005114645A2 (en) | 2005-12-01 |
EP1756803A2 (en) | 2007-02-28 |
US7724263B2 (en) | 2010-05-25 |
US20050280652A1 (en) | 2005-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1954356B (zh) | 用于万用数据写入单元的系统和方法 | |
TWI512672B (zh) | 使用一取樣之多取樣表面處理的方法、電腦可讀儲存媒體及系統 | |
US7969446B2 (en) | Method for operating low power programmable processor | |
CN101388109B (zh) | 绘图处理系统、快取系统以及数据处理方法 | |
US7456835B2 (en) | Register based queuing for texture requests | |
EP1759380B1 (en) | Low power programmable processor | |
CN1656465B (zh) | 用于由多个互连节点执行渲染计算来渲染图形的方法和系统 | |
US6731288B2 (en) | Graphics engine with isochronous context switching | |
EP1194896B1 (en) | Decompression of three-dimensional graphics data using mesh buffer references to reduce redundancy of processing | |
CN106233326A (zh) | 图形处理中基于显现目标的灵活显现 | |
CN101371247A (zh) | 用于图形处理器的并行阵列结构 | |
CN101425175A (zh) | 着色器处理系统与方法 | |
CN1947156A (zh) | 使用统一着色器的图形处理结构 | |
US6864892B2 (en) | Graphics data synchronization with multiple data paths in a graphics accelerator | |
US20030142101A1 (en) | Parallel read with source-clear operation | |
US7336284B2 (en) | Two level cache memory architecture | |
US6720969B2 (en) | Dirty tag bits for 3D-RAM SRAM | |
CN101178806A (zh) | 计算机中管理纹理数据的系统与方法 | |
TWI533672B (zh) | 使用取樣子集的多取樣表面處理 | |
US7199799B2 (en) | Interleaving of pixels for low power programmable processor | |
US20020171657A1 (en) | External dirty tag bits for 3D-RAM SRAM | |
US20030164823A1 (en) | 3D graphics accelerator architecture | |
CN108352051A (zh) | 促进对计算装置处的捆绑状态的高效图形命令处理 | |
US7250953B2 (en) | Statistics instrumentation for low power programmable processor | |
US20050253857A1 (en) | Reconfigurable pipeline for low power programmable processor |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110622 |