CN1950878B - 对系统存储器的gpu渲染 - Google Patents
对系统存储器的gpu渲染 Download PDFInfo
- Publication number
- CN1950878B CN1950878B CN2005800135116A CN200580013511A CN1950878B CN 1950878 B CN1950878 B CN 1950878B CN 2005800135116 A CN2005800135116 A CN 2005800135116A CN 200580013511 A CN200580013511 A CN 200580013511A CN 1950878 B CN1950878 B CN 1950878B
- Authority
- CN
- China
- Prior art keywords
- data
- graphics processing
- processing subsystem
- memory
- system storage
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 98
- 238000009877 rendering Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 153
- 238000013519 translation Methods 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 116
- 230000004044 response Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 claims description 4
- 230000000873 masking effect Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 238000005286 illumination Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/125—Frame memory handling using unified memory architecture [UMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Input (AREA)
- Image Generation (AREA)
Abstract
一种图形处理子系统使用系统存储器作为其用于渲染并扫描输出图像图形存储器。为了防止数据总线的死锁,图形处理子系统可使用数据总线的交替虚拟信道来从系统存储器存取完成第一数据的写入操作所需的附加数据。在与系统存储器的通信中,包括扩展字节启用信息的数据包允许图形处理子系统将具有任意字节屏蔽的大量数据写入系统存储器。为了提高经渲染图像数据的二维局部性的等级,图形处理子系统以平铺式格式将图像数据排列在系统存储器中。平铺块翻译单元将图像数据虚拟地址转换成对应的系统存储地址。图形处理子系统从系统存储器中读取图像数据并将其转换成显示信号。
Description
相关申请案的交叉参考
本申请案与2001年8月14日颁发的题为“Method and apparatus for accelerating thetransfer of graphical images”的第6,275,243号美国专利有关,且此专利的揭示内容出于所有目的以引用的方式并入本文中。
技术领域
本发明涉及计算机图形学的领域。通过算术模拟光与从给定观看点观看的三维场景的相互作用来创建很多计算机图形图像。被称为渲染的此过程产生从给定观看点观看的场景的二维图像,且类似于拍摄一张现实场景的照片。
背景技术
随着对计算机图形且尤其对实时计算机图形的需求增加,具有适合于加速渲染过程的图形处理子系统的计算机系统已经变得普遍。在这些计算机系统中,渲染过程在计算机的通用中央处理单元(CPU)与图形处理子系统之间分配。通常,CPU执行高等级操作,例如确定给定场景中对象的位置、运动和碰撞。根据这些高等级操作,CPU产生界定所需渲染图像的一组渲染命令和数据。举例来说,渲染命令和数据可为场景界定场景几何形状、照明、着色、纹理、运动和/或摄影参数。图形处理子系统从所述组渲染命令和数据中创建一个或一个以上渲染图像。
典型图形处理子系统包括一个或一个以上图形处理单元(GPU)或协处理器。每个GPU均执行由CPU产生的渲染命令。除一个或一个以上GPU外,图形处理子系统还包括存储器。图形子系统存储器用于存储要输出到显示设备的一个或一个以上渲染图像、几何形状数据、纹理数据、照明和着色数据和用于产生一个或一个以上渲染图像的其它数据。
为了最大化渲染性能,图形子系统存储器通常与由计算机系统使用的通用系统存储器分离。这允许图形处理子系统最大化存储器存取性能,且因此最大化渲染性能。然而,具有用于图形处理子系统的独立存储器显著增加了成本,不仅是因为额外存储器(其可为数百兆字节或更多)的费用,而且是由于例如功率调节器、滤波器和冷却设备的支持组件的成本以及电路板的附加复杂性的缘故。此外,独立的图形处理子系统存储器所需的额外空间可带来困难,尤其对于笔记本式计算机或移动设备来说。
对与独立的图形处理子系统存储器相关的问题的一种解决方案是使用统一存储器结构,其中图形处理子系统所需的所有数据,例如几何形状数据、纹理数据、照明和着色数据以及渲染图像,均存储在计算机系统的通用系统存储器中。传统上,连接图形处理子系统与系统存储器的数据总线限制了统一存储器结构系统的性能。
例如PCI-Express数据总线标准的改进的数据总线标准增加了可用于存取存储器的带宽;然而,用统一存储器结构来达到最佳渲染性能仍需要对存储器带宽和等待时间的仔细关注。此外,PCI-Express数据总线标准带来其自身的问题,包括系统死锁和用于选择性存储器存取的高开销。另外,扫描输出(将渲染图像从存储器转移到显示设备的过程)需要精确的计时以防止视觉不连续性和误差。因此,执行从存储在系统存储器中的渲染图像的扫描输出较困难。
因此,需要一种图形处理子系统,其使用统一存储器结构来提供良好的渲染性能和从系统存储器无误差的扫描输出。此外,需要所述图形处理子系统防止例如系统死锁和用于选择性存储器存取的高开销的问题。
发明内容
本发明的实施例使图形处理子系统能够使用系统存储器作为其用于渲染和扫描输出图像图形存储器。为了防止数据总线的死锁,图形处理子系统可使用数据总线的交替虚拟信道来从系统存储器存取完成第一数据的写入操作所需的附加数据。在与系统存储器的通信中,包括扩展字节启用信息(extended byte enable information)的数据包允许图形处理子系统将具有任意字节屏蔽的大量数据写入系统存储器。为了提高经渲染图像数据的二维局部性的等级,图形处理子系统以平铺式格式将图像数据排列在系统存储器中。平铺块翻译单元将图像数据虚拟地址转换成对应的系统存储地址。图形处理子系统从系统存储器读取图像数据并将其转换成显示信号。
在实施例中,图形处理子系统包含:渲染单元,其适合于响应于渲染数据而产生渲染图像的图像数据;和数据总线接口,其适合于经由数据总线而与计算机系统的系统存储器设备连接。响应于将第一数据写入到与图形处理子系统相关的图形存储器的写入操作,图形处理子系统适合于检索完成第一数据的写入操作所必需的第二数据。接着,图形处理子系统从第二数据确定系统存储器中第一数据的目的地,并将第一数据的写入操作重新定向到系统存储器中第一数据的目的地。在进一步实施例中,系统存储器中第一数据的目的地位于指定为与图形处理子系统相关的图形存储器的系统存储器的一部分内。在另一实施例中,第二数据包括地址翻译信息,且图形处理子系统适合于将与图形存储器相关的虚拟地址翻译成系统存储器中对应的目的地。
在实施例中,图形处理子系统适合于经由数据总线接口从数据总线的第一虚拟信道接收第一数据的写入操作,并使用数据总线的第二虚拟信道经由数据总线接口从系统存储器检索第二数据。在替代实施例中,图形处理子系统适合于从与图形处理子系统连接的局部存储器检索第二数据。
在进一步实施例中,图形处理子系统包括平铺块地址翻译单元,其适合于将对应于图像中的位置的虚拟存储地址转换成系统存储器中的图像数据的平铺式排列内的存储地址。平铺块地址翻译单元可进一步适合于响应对应于图像的连续部分的虚拟存储地址的范围而通过数据总线经由数据总线接口来起始复数个系统存储器存取。取决于虚拟存储地址的范围,所述复数个系统存储器存取可用于系统存储器的非连续部分。
在另一实施例中,数据总线接口适合于响应指示与系统存储器相关的存储器控制器与第一数据包类型兼容的指令而经由数据总线使用第一数据包类型的数据包与系统存储器通信第三数据。第一数据包类型包括扩展字节启用数据。响应于指示存储器控制器与第一数据包类型不兼容的指令,数据总线接口通过使用第二数据包类型的复数个数据包经由数据总线与系统存储器通信第三数据。
在附加实施例中,图形处理子系统包括显示设备控制器,其适合于与显示设备通信与渲染图像对应的显示信号。在一个实施例中,显示设备控制器适合于从与图形处理子系统连接的局部存储器检索与渲染图像对应的图像数据。在另一实施例中,显示设备控制器适合于从系统存储器检索与渲染图像对应的图像数据。
在实施例中,显示设备控制器适合于从系统存储器中的图像数据的平铺式排列检索与渲染图像的第一行对应的第一图像数据,并与显示设备通信第一图像数据。图形处理子系统可从系统存储器检索与包括渲染图像的第一行的渲染图像的一组平铺块对应的一组图像数据。图形处理子系统可丢弃所述组图像数据的不包括图像数据的所述第一行的一部分。在替代实施例中,显示设备控制器包括图像数据高速缓冲存储器,其适合于存储包括在所述组平铺块中且与渲染图像的至少一个附加行对应的第二图像数据。显示设备控制器适合于在检索第一图像数据后从图像数据高速缓冲存储器检索第二图像数据,并与显示设备通信第二图像数据。
附图说明
将参考附图来描述本发明,其中:
图1是适合实践本发明实施例的计算机系统的方框图;
图2说明根据本发明实施例的用于防止系统死锁的一般技术;
图3说明根据本发明另一实施例的用于防止系统死锁的一般技术;
图4A和4B说明根据本发明实施例的用于通过数据总线选择性地存取存储器的系统;
图5A和5B说明根据本发明实施例的组织系统存储器中的显示信息以改进渲染性能的系统;
图6A和6B说明根据本发明实施例的用于存取显示信息的系统;和
图7A-7C说明根据本发明实施例的用于将系统存储器中的显示信息输出到显示设备的系统。
在附图中,使用相同参考数字来指示相同组件。
具体实施方式
图1是适合于实践本发明实施例的计算机系统100的方框图,所述计算机系统100例如为个人计算机、视频游戏控制台、个人数字助理或其它数字设备。计算机系统100包括用于运行软件应用程序且视需要运行-操作系统的中央处理单元(CPU)105。在实施例中,CPU 105实际上是并行操作的若干独立中央处理单元。存储器110存储应用程序和数据以供CPU 105使用。存储装置115为用于应用程序和数据提供非易失性存储,且可包括固定磁盘驱动器、可移动磁盘驱动器、快闪存储器设备,和CD-ROM、DVD-ROM或其它光学存储设备。用户输入设备120将来自一个或一个以上用户的用户输入通信到计算机系统100,且用户输入设备120可包括键盘、鼠标、操纵杆、触摸屏和/或麦克风。网络接口125允许计算机系统100经由电子通信网络与其它计算机系统通信,且可包括通过局域网和广域网(例如因特网)的有线或无线通信。计算机系统100的组件,包括CPU 105、存储器110、数据存储装置115、用户输入设备120和网络接口125,是经由一个或一个以上数据总线160连接的。数据总线的实例包括ISA、PCI、AGP、PCI、PCI-Express和超传输(HyperTransport)数据总线。
图形子系统130与数据总线160和计算机系统100的组件进一步连接。所述图形子系统可与计算机系统母板集成,或集成在与计算机系统固定地或可移除地连接的独立电路板上。图形子系统130包括图形处理单元(GPU)135和图形存储器。图形存储器包括显示存储器140(例如帧缓冲器),其用于存储输出图像的每一像素的像素数据。可将像素数据直接从CPU 105提供到显示存储器140。或者,CPU 105向GPU 135提供界定所需输出图像的数据和/或命令,GPU 135根据所述数据和/或命令而产生一个或一个以上输出图像的像素数据。界定所需输出图像的数据和/或命令存储在附加存储器145中。在实施例中,GPU 135根据界定场景的几何形状、照明、着色、纹理、运动和/或摄影参数的渲染命令和数据而产生输出图像的像素数据。
在另一实施例中,显示存储器140和/或附加存储器145是存储器110的一部分,且与CPU 105共享。或者,显示存储器140和/或附加存储器145是提供以供图形子系统130专用的一个或一个以上独立存储器。图形子系统130周期性地输出一来自显示存储器218并显示在显示设备150上的图像的像素数据。显示设备150是能够响应来自计算机系统100的信号而显示视觉信息的任何设备,包括CRT、LCD、等离子和OLED显示器。计算机系统100可向显示设备150提供模拟或数字信号。
在又一实施例中,图形处理子系统130包括一个或一个以上类似于GPU 135的附加GPU 155。在更进一步的实施例中,图形处理子系统130包括图形协处理器165。图形处理协处理器165和附加GPU 155适合于与GPU 135并行操作,或代替GPU 135而操作。类似于GPU 135,附加GPU 155根据渲染命令而产生输出图像的像素数据。附加GPU 155可结合GPU 135而操作以同时产生一输出图像的不同部分的像素数据,或同时产生不同输出图像的像素数据。在实施例中,图形协处理器165执行与渲染有关的任务,例如GPU 135和/或附加GPU 155的几何形状变换、着色器计算和背面剔除(backfaceculling)操作。
附加GPU 155可与GPU 135位于同一电路板上并与GPU 135共享与数据总线160的连接,或可位于与数据总线160独立地连接的附加电路板上。附加GPU 155还可与GPU 135集成在同一模块或芯片封装中。附加GPU 155可具有其自身的类似于显示存储器140和附加存储器145的显示和附加存储器,或可与GPU 135共享存储器140和145。在实施例中,图形协处理器165与计算机系统芯片组(未图示)集成,例如与用于控制数据总线160的北桥或南桥芯片集成。
系统死锁是由于两个操作在完成其个别操作之前均需要来自对方的响应而引起的系统执行的停止。系统死锁的一个来源是起因于通过连接CPU与图形处理子系统的数据总线的投递式写入操作(posted write operation)。对于许多类型的数据总线,例如PCI-Express数据总线,必须在任何其它读取或写入操作可通过数据总线执行之前完成投递式写入操作。投递式写入操作是一被目的地接受,就被请求者视为已完成的写入操作。出于性能目的,PCI-Express使用投递式写入操作用于所有存储器写入。对配置和I/O的PCI-Express写入操作通常是非投递式写入操作,且需要写入已结束的确认,例如不含数据的完成消息。
因为投递式写入操作阻碍了其它的数据总线操作,所以在图形处理子系统需要附加信息来完成由CPU发出的投递式写入时,可产生系统死锁。举例来说,图形处理子系统常为了处理方便而利用线性连续存储器组织(linear contiguous memory organization);然而,在统一的存储器结构中用作图形存储器的计算机系统的通用存储器的部分通常配置为多组非连续存储器页面。页面翻译表将来自由图形处理子系统使用的线性连续地址空间存储地址翻译到由计算机系统存储器使用的分页非连续地址空间,从而使图形处理子系统能够存取计算机系统存储器。在实施例中,页面翻译表存储在系统存储器中。当图形处理子系统需要存取图形存储器中的给定存储地址时,图形处理子系统的地址翻译部分检索页面翻译表的适当部分;将由图形处理子系统使用的线性存储地址翻译成由系统存储器使用的对应的分页存储地址,并接着以所翻译的存储地址来存取系统存储器。
当CPU发出请求将数据写入到图形存储器中的目的地的投递式写入命令时,在投递式写入命令被接收之前没有其它的数据总线完成操作可完成。然而,为了接受投递式写入命令,图形处理子系统必须存取存储在系统存储器中的页面翻译表,以确定对应于图形存储器中的目的地的分页存储地址。因为投递式写入命令阻碍任何随后的总线完成操作直到其被接收为止,所以返回来自页面翻译表的数据的总线完成操作被投递式写入操作阻碍。因为投递式写入操作在图形处理子系统接收到来自页面翻译表的数据之前不能完成,所以计算机系统死锁。
在另一实例中,图形处理系统可在若干不同的上下文中执行。独立的上下文可与由图形处理子系统处理的每一应用程序、窗口和/或执行线程相关。当在上下文之间切换时,图形处理子系统结束来自先前上下文的所有操作;存储与先前上下文相关的状态信息;加载新的上下文的状态信息;并开始对新的上下文执行操作。为确保正确执行,在从存储器加载新的上下文的状态信息之前,不能执行来自新的上下文的命令。
在统一存储器结构系统中,上下文状态信息可存储在系统存储器中。当CPU经由投递式写入操作来指令图形处理系统切换上下文时,图形处理子系统必须从系统存储器加载新的上下文状态信息。然而,因为在图形处理子系统已切换上下文之前,投递式写入操作未完成,所以图形处理子系统不能经由数据总线来存取系统存储器。因此,计算机系统变为死锁。
图2说明根据本发明实施例的用于防止计算机系统200中的死锁的一般技术。CPU205通过数据总线经由投递式写入操作215而与图形处理子系统220通信第一数据210。为完成投递式写入操作215,图形处理子系统220必须从系统存储器230检索第二数据225。在用于存取系统存储器230的先前技术下,投递式写入操作215将阻碍图形处理子系统220存取系统数据中的第二数据225。
在本发明实施例中,图形处理子系统220通过打开交替虚拟信道以用于通过数据总线而通信来存取系统存储器230中的第二数据225。虚拟信道为通过同一数据总线的数据通信提供独立路径。举例来说,PCI-Express总线规范允许一个PCI-Express数据总线通信若干不同的数据交换,其中每一数据交换均独立发生且没有来自PCI-Express数据总线上的其它数据交换的干扰。
响应于经由数据总线上的第一虚拟信道(例如VC0)通信到图形处理子系统220的投递式写入操作215,图形处理子系统220打开数据总线上的第二虚拟信道(例如VC1),以用于从系统存储器230检索第二数据225。通过使用第二虚拟信道VC1,图形处理子系统220通过数据总线将对第二数据225的请求235发送到系统存储器230。通过使用数据总线的第二虚拟信道VC2,来自系统存储器230的响应240将第二数据225返回到图形处理子系统220。
通过使用经由第二虚拟信道从系统存储器230检索的第二数据225,图形处理子系统确定完成第一数据210的投递式写入操作215所需的信息。举例来说,如果投递式写入操作215试图将第一数据210写入到图形存储器,那么第二数据225可为用于将图形存储器中的线性存储地址翻译成系统存储器230中的对应的分页存储地址的地址翻译表的一部分。图形处理子系统220接着可将第一数据210写入245到图形存储器250,图形存储器250在计算机系统200的统一存储器结构中位于系统存储器230的一部分中。这完成了投递式写入操作215,并释放了第一虚拟信道以用于附加操作。
在另一实例中,第一数据210可包括用于图形处理子系统220的上下文切换命令。在此实例中,CPU 205通过第一虚拟信道经由投递式写入操作215而将包括上下文切换命令的第一数据210通信到图形处理子系统220。作为响应,图形处理子系统220打开交替虚拟信道(例如VC1)以从系统存储器230检索第二数据225,第二数据225在此实例中包括上下文状态信息。图形处理子系统220接着使用第二数据225以根据包括在第一数据210中的上下文切换命令而切换上下文,从而完成投递式写入操作215并释放第一虚拟信道以用于附加操作。图形处理子系统还将先前上下文的上下文状态信息写入到存储器,以使得稍后在执行切换回到所述上下文时可检索所述上下文状态信息。
图3说明根据本发明另一实施例的用于防止计算机系统300中的系统死锁的一般技术。CPU 305通过数据总线经由投递式写入操作315与图形处理子系统320通信第一数据310。如在上文所论述的实施例中,图形处理子系统320需要检索第二数据325以完成投递式写入操作315。
为避免在试图通过由投递式写入操作315阻碍的数据总线检索第二数据时发生的死锁问题,计算机系统300的实施例包括局部存储器330。在实施例中,局部存储器330经由独立的数据总线与图形处理子系统320通信。局部存储器330存储图形处理子系统所需的第二数据325以完成投递式写入操作315。因为局部存储器330需要存储用于完成涉及第一数据310的投递式写入操作的第二数据325,所以局部存储器330可能为少量存储器,从而保留统一存储器结构的许多优点。
响应于经由CPU 305与图形处理子系统之间的第一数据总线通信到图形处理子系统320的投递式写入操作315,图形处理子系统320在独立的数据总线上将对第二数据325的请求335发送到局部存储器330。来自局部存储器330的响应340经由独立的数据总线返回第二数据325。
通过使用从局部存储器330检索到的第二数据325,图形处理子系统320确定完成第一数据310的投递式写入操作315所需的信息。举例来说,如果投递式写入操作315试图将第一数据310写入到图形存储器,那么第二数据325可为用于将图形存储器中的线性存储地址翻译成系统存储器355中的对应的分页存储地址的地址翻译表的一部分。图形处理子系统320接着可将第一数据310写入345到图形存储器350,图形存储器350在计算机系统300的统一存储器结构中位于系统存储器355的一部分中。这完成了投递式写入操作315并释放CPU 305与图形处理子系统320之间的数据总线以用于附加操作。
在另一实例中,第一数据310可包括用于图形处理子系统320的上下文切换命令。在此实例中,CPU 305经由投递式写入操作315将包括上下文切换命令的第一数据310通信到图形处理子系统320。作为响应,图形处理子系统320从局部存储器330检索第二数据325,第二数据325在此实例中包括上下文状态信息。接着第二数据325由图形处理子系统320使用以根据包括在第一数据310中的上下文切换命令而切换上下文,从而完成投递式写入操作315并释放CPU 305与图形处理子系统320之间的数据总线以用于附加操作。
关于用统一存储器结构建构图形处理子系统的另一问题是与选择性存储器存取相关的高开销。图形处理子系统通常写入或更新少量稀疏分布的像素的图像数据,而不是大的连续区块的图像数据。相反,计算机系统最优化其系统存储器以在大的连续块中进行存取。为处理这些差异,许多数据总线标准(例如PCI-Express)允许除了正被写入存储器的数据以外还包括字节启用数据。字节启用数据屏蔽数据区块的部分以防止其被写入系统存储器。使用字节启用数据允许设备将大的连续数据区块发送到系统存储器,同时仅更新少量的稀疏分布的像素。
尽管包括用于选择性地屏蔽数据区块的部分以防止其被写入存储器的字节启用数据,但选择性存储器存取仍需要实质开销。举例来说,图4A说明根据PCI-Express标准而格式化的数据的标准包400。包400包括标头405和主体410。主体410含有将通过数据总线从一个设备(例如图形处理子系统)通信到另一设备(例如与计算机的系统存储器相关的存储器控制器)的数据。标头405包括用于将包400引导到其希望的目的地的信息。
标准包400的标头405还包括字节启用数据415。根据PCI-Express标准,字节启用数据415是8位掩码值。字节启用数据415允许根据字节启用数据415的值而选择性地屏蔽主体410中的最前四个字节的数据420和最后四个字节的数据425。举例来说,如果字节启用数据415中的第一位是“0”,那么主体410中的第一字节不会写入到目标设备。相反,将字节启用数据415中的一位设定为“1”将允许主体410中的对应字节写入到目标设备。然而,字节启用数据415仅可实现主体的最前四个字节420和最后四个字节425的选择性屏蔽。根据PCI-Express标准,主体410中的中间字节的数据430必须以其整体写入到目标设备。
因为PCI-Express标准将字节启用数据限制为8位值,所以当试图写入任意屏蔽的图像数据时,图形处理子系统是严格受限制的。图形处理子系统常需要选择性地屏蔽包主体中任意字节的能力。然而,当使用标准PCI-Express包时,图形处理子系统一次仅可屏蔽至多达八个字节。因此,在使用标准PCI-Express包时,当需要任意字节屏蔽时,图形处理子系统限于具有8字节主体的包。万一图形处理子系统需要用于较大组数据的任意字节屏蔽,图形处理子系统就必须将数据区块分为8字节或更少的部分,并对每一部分使用独立的PCI-Express包。
使用具有8字节主体的PCI-Express包极其浪费数据总线带宽。因为典型的PCI-Express标头为20字节长,所以发送包主体中的8字节数据总共需要28个字节。当图形处理子系统用于需要较大组数据的任意字节屏蔽时,此浪费的开销加剧。举例来说,发送具有任意字节屏蔽的32字节数据组需要四个独立的标准PCI-Express包,总共消耗112字节的总线带宽。
图4B说明根据本发明实施例的允许任意字节屏蔽以通过数据总线通信的改进的PCI-Express包450。PCI-Express标准允许厂商定义包(vendor defined packet)的定义。厂商定义包可具有非标准包标头,假定目标设备能够解译非标准包标头。图4B说明包括非标准标头455和主体460的厂商定义包450。如在标准PCI-Express包中,主体460含有将通过数据总线从一个设备通信到另一设备的数据。标头455包括用于将包450引导到其希望的目的地的信息。
非标准标头455还包括扩展字节启用数据465。在实施例中,扩展字节启用数据465包括足够的位以允许主体460中任何字节的任意屏蔽。在又一实施例中,扩展字节启用数据465中的位的数目等于主体465中的字节的数目。在实例实施中,扩展字节启用数据465为32位,允许对主体460中至多达32字节的数据进行选择性屏蔽。
因为目标设备必须能够正确解译包450的非标准标头455,所以本发明实施例使用与图形处理子系统相关的设备驱动器来检测计算机的系统存储器控制器是否与包460的非标准标头455兼容,所述系统存储器控制器可与计算机系统北桥或与CPU集成。如果系统存储器控制器是兼容的,就指令图形处理子系统使用包450的格式以选择性地屏蔽写入到系统存储器的数据。相反,如果系统存储器控制器是不兼容的,设备驱动器就指令图形处理子系统使用标准PCI-Express包400的格式以选择性地屏蔽写入到系统存储器的数据。
图5A和5B说明根据本发明实施例的组织系统存储器中的显示信息以改进渲染性能的系统。通常,图像数据的二维阵列在系统或图形存储器中已排列为一系列的首尾相连的行或列。举例来说,存储器中的帧缓冲器将以图像中像素的第一行的所有图像数据开始,随后为所述图像中像素的第二行的所有图像数据,接着是图像中像素的第三行的所有图像数据,等等。
尽管图像数据的这种排列简化了图像中二维坐标到存储器的对应位置的转换,但其需要附加的数据总线带宽用于统一的存储器结构。图形处理子系统存取具有高等级的二维局部性的图形存储器。举例来说,图形处理系统可在同一行和附近行两者中同时产生给定像素和附近像素的图像数据。
继续此实例,当使用上述的线性存储器配置时,系统存储器中不同行中的邻近像素之间的距离将相隔数百或数千字节。因为此距离大于对于数据总线包所允许的大小,尤其是在包标头中的字节启用数据的大小限制了包主体的长度的先前实施(如上文所论述)中,所以图形处理子系统必须通过数据总线将多个小包发送到系统存储器以写入一组邻近像素的图像数据。通过使用多个小包而不是一个大包所引起的数据总线开销降低了计算机系统的性能和效率。
图5A和5B说明根据本发明实施例的组织系统存储器中的显示信息以改进渲染性能的系统。为影响由图形处理子系统产生的图像数据的二维局部性,本发明实施例将图像数据组织为一组平铺块(tile)。每一平铺块均包括二维像素阵列的图像数据。图5A说明图像500的一部分。将图像500划分为许多平铺块,包括平铺块505、510和515。在图5A的实施例中,每一平铺块均包括一4乘4像素阵列。然而,在替代实施例中,可使用具有任何数目像素的正方形和非正方形平铺块。在图5A中,用图像500中的像素的行和列来标记每一像素。举例来说,平铺块505包括图像500的最前四行的每一行中的最前四个像素。
图5B说明根据本发明实施例的表示排列在系统存储器中的图像500的一部分的图像数据550。在此实施例中,每一平铺块的图像数据均连续存储在系统存储器中。举例来说,系统存储器的部分555存储平铺块505中所有像素的图像数据。在实施例中,平铺块505的图像数据之后是系统存储器的部分560,部分560存储平铺块510中所有像素的图像数据。或者,系统存储器的部分560可存储平铺块515中所有像素的图像数据。
通过将图像数据存储为一组二维像素平铺块,系统存储器中邻近行中像素之间的距离减小,尤其是在两个像素位于同一平铺块中的情况下。因此,图形处理子系统经常能在数据总线上使用单个写入操作将一组附近像素写入到系统存储器。
在又一实施例中,系统存储器中作为平铺块的图像数据的排列对图形处理系统和/或CPU的部分来说是隐藏的。替代地,由如上文所论述的扫描线接着扫描线地排列的帧缓冲器中的虚拟地址来定位像素。图形处理子系统的平铺块地址翻译部分使用虚拟地址将存储器存取请求翻译成一个或一个以上对存储在系统存储器中的图像数据的平铺式排列的存取请求。
图6A和6B说明根据本发明实施例的用于存取图像数据的实例。图6A说明实例图像600的一部分。实例图像600包括平铺块605、610、615和620。区域625对应于将由图形处理子系统存取的一组实例像素。在此实例中,区域625覆盖平铺块605和610的部分。在实施例中,使用一个或一个以上虚拟地址来定位区域625。
为检索对应于区域625的图像数据,图形处理子系统将用于定位区域625的一个或一个以上虚拟存储地址翻译成一个或一个以上系统存储地址。在实施例中,平铺块翻译表用于在虚拟存储地址与系统存储地址之间进行翻译。图形处理子系统接着检索含有所需图像数据的一个或一个以上平铺块的全部或部分。
图6B说明包括对应于上述区域625的图像数据的系统存储器600的一部分。系统存储器600的所述部分包括对应于平铺块605的图像数据605和对应于平铺块610的图像数据610。在图像数据605内,图像数据615的子集对应于平铺块605内的区域625的部分。类似地,图像数据610内的图像数据620的子集对应于平铺块610内的区域625的部分。
在实施例中,图形处理子系统识别包括图像的所请求区域的一个或一个以上平铺块。图形处理子系统接着检索经识别的平铺块中的每一者并丢弃所请求区域外部的图像数据。图形处理子系统接着将图像数据的剩余部分组合成与图像的所请求区域对应的一组连续图像数据。或者,图形处理子系统可仅检索每一经识别的平铺块的所需部分。在此实施例中,图形处理子系统可使用许多非连续存储器存取来检索与图像的连续区域对应的图像数据。
图形处理子系统可存取存储在系统存储器中的呈平铺式排列的图像的区域以用于许多不同目的,包括读取和写入图像数据以渲染图像。在一个实施例中,图形处理子系统在扫描输出之前将要显示的图像转移到局部存储器中,例如上文所论述的局部存储器330。本发明的替代实施例允许图形处理子系统将经渲染的图像从系统存储器转移到显示设备,这就是称为扫描输出的过程。扫描输出通常要求以精确时间间隔将图像数据通信到显示设备。如果图形处理子系统不能在正确时间与显示设备通信图像数据,例如由于从系统存储器检索图像数据的延迟的缘故,那么将产生例如撕裂(tearing)的视觉假象。
通常,将图像数据逐行通信到显示设备。在实施例中,图形处理子系统检索图像以获得在正被通信到显示设备的行之前的图像数据的一个或一个以上行。图7A说明此实施例的实例应用。图7A说明图像700。在实施例中,如上文所论述,将图像分为多个平铺块。图形处理子系统将图像700的行705通信到显示设备。在与显示设备通信行705时,图形处理子系统从系统存储器检索图像数据,以获得图像700的随后行(例如行710和/或行715)。
图7B说明用于与显示设备通信图像数据的图形处理子系统的实例部分730的操作。部分730包括扫描输出单元735,其适合于将图像数据转换成要与显示设备740通信的显示信号。扫描输出单元735输出的显示信号可为数字或模拟信号。
在实施例中,扫描输出单元从系统存储器检索呈平铺式格式的图像数据。因为对于图像的一部分,图像数据的每一平铺块均包括两行或两行以上图像数据,所以扫描输出单元735根据每一所检索到的平铺块的部分来组合图像的所需行。举例来说,可根据许多不同平铺块的部分,包括平铺块707的图像数据760的部分745、平铺块709的图像数据765的部分750和平铺块711的图像数据770的部分755,来组合行705的图像数据。在实施例中,丢弃所检索到的平铺块的未使用部分。
在替代实施例中,当扫描输出单元735从一组平铺块中检索给定行的图像数据时,扫描输出单元735还存储图像的一个或一个以上随后行的图像数据。这减少了为扫描输出而存取系统存储器的次数,从而改进图形处理子系统的效率和性能。
图7C说明此替代实施例的实例实施771的操作。在此实例中,扫描输出单元736从系统存储器检索图像数据的平铺块,其包括扫描输出单元736所需的行。扫描输出单元根据每一所检索到的平铺块的适当部分来组合所需的行。举例来说,可根据不同平铺块的许多部分,包括部分745、750和755,来组合行705的图像数据。
当根据许多平铺块的部分来组合所需行的图像数据时,一个或一个以上随后行的图像数据存储在一个或一个以上扫描线高速缓冲存储器中。举例来说,在所需行(例如行710)之后的第一行的图像数据存储在扫描线高速缓冲存储器790中。第一随后行的图像数据可包括平铺块部分772、774和776。类似地,包括平铺块部分778和780的第二随后行的图像数据存储在扫描线高速缓冲存储器788中。包括平铺块部分782、783和784的第三随后行的图像数据存储在扫描线高速缓冲存储器785中。
因此,对于随后行,扫描线单元736可从适当的扫描线高速缓冲存储器检索下一所需行的图像数据。在实施例中,对应于图像的平铺块中图像数据的每一行均具有一扫描线高速缓冲存储器,使得对于一给定图像,扫描线单元735仅需要从系统存储器读取每一平铺块一次。替代实施例可具有较少的扫描线高速缓冲存储器以降低图形处理子系统的硬件复杂性。
本发明提供一种能够使用系统存储器作为其图形存储器以用于渲染并扫描输出图像的图形处理子系统。尽管已参考计算机图形子系统论述了本发明,但本发明可适用于计算机系统的其它组件,包括音频组件和通信组件。已参照本发明的具体实例和实施例论述了本发明;然而,这些论述仅仅是为了说明而非限制本发明。因此,本发明的范围由权利要求书来唯一地确定。
Claims (17)
1.一种图形处理子系统,其包含:
一渲染单元,其适合于响应于渲染数据而产生一渲染图像的图像数据;和
一数据总线接口,其适合于经由一数据总线与一计算机系统的一系统存储器设备连接;
其中响应于一将一第一数据写入到一与所述图形处理子系统相关的图形存储器的写入操作,由所述数据总线接口从所述数据总线的一第一虚拟信道接收所述第一数据的所述写入操作,所述图形处理子系统适合于使用所述数据总线的一第二虚拟信道通过所述数据总线接口而从系统存储器检索完成所述第一数据的所述写入操作所必需的一第二数据,从所述第二数据确定所述系统存储器中所述第一数据的一目的地,并将所述第一数据的所述写入操作重新定向到所述系统存储器中的所述第一数据的所述目的地。
2.根据权利要求1所述的图形处理子系统,其中所述系统存储器中的所述第一数据的所述目的地位于指定为与所述图形处理子系统相关的所述图形存储器的所述系统存储器的一部分内。
3.一种图形处理子系统,其包含:
一渲染单元,其适合于响应于渲染数据而产生一渲染图像的图像数据;和
一数据总线接口,其适合于经由一数据总线与一计算机系统的一系统存储器设备连接;
其中响应于一将一第一数据写入到一与所述图形处理子系统相关的图形存储器的写入操作,所述图形处理子系统适合于检索完成所述第一数据的所述写入操作所必需的一第二数据,从所述第二数据确定所述系统存储器中所述第一数据的一目的地,并将所述第一数据的所述写入操作重新定向到所述系统存储器中的所述第一数据的所述目的地;
其中所述图形处理子系统进一步适合于从与所述图形处理子系统连接的一局部存储器检索所述第二数据。
4.根据权利要求1所述的图形处理子系统,其中所述第二数据包括地址翻译信息,且所述图形处理子系统适合于将与所述图形存储器相关的一虚拟地址翻译成系统存储器中的一对应目的地。
5.根据权利要求1所述的图形处理子系统,其中所述第二数据包括上下文状态信息,且所述图形处理子系统适合于响应于所述第一数据而执行一上下文切换。
6.根据权利要求1所述的图形处理子系统,其进一步包含:
一平铺块地址翻译单元,其适合于将对应于一图像中的一位置的一虚拟存储地址转换成系统存储器中的图像数据的一平铺式排列内的一存储地址。
7.根据权利要求6所述的图形处理子系统,其中所述平铺块地址翻译单元进一步适合于响应对应于一图像的一连续部分的虚拟存储地址的一范围经由所述数据总线接口在所述数据总线上起始复数个系统存储器存取。
8.根据权利要求7所述的图形处理子系统,其中所述复数个系统存储器存取是用于系统存储器的非连续部分。
9.根据权利要求1所述的图形处理子系统,其中所述数据总线接口适合于响应一指示一与所述系统存储器相关的存储器控制器与一第一数据包类型兼容的指令,经由所述数据总线使用所述第一数据包类型的一数据包经由所述数据总线与所述系统存储器通信一第三数据,和响应一指示所述存储器控制器与所述第一数据包类型不兼容的指令,经由所述数据总线使用一第二数据包类型的复数个数据包,经由所述数据总线与所述系统存储器通信所述第三数据。
10.根据权利要求9所述的图形处理子系统,其中所述第一数据包类型包括扩展字节启用数据。
11.根据权利要求1所述的图形处理子系统,其进一步包括一显示设备控制器,所述显示设备控制器适合于与一显示设备通信一与所述渲染图像对应的显示信号。
12.根据权利要求11所述的图形处理子系统,其中所述显示设备控制器适合于从与所述图形处理子系统连接的一局部存储器检索与所述渲染图像对应的图像数据。
13.根据权利要求11所述的图形处理子系统,其中所述显示设备控制器适合于从所述系统存储器检索与所述渲染图像对应的图像数据。
14.根据权利要求13所述的图形处理子系统,其中所述显示设备控制器适合于从所述系统存储器中的图像数据的一平铺式排列检索与所述渲染图像的一第一行对应的一第一图像数据,并与所述显示设备通信所述第一图像数据。
15.根据权利要求14所述的图形处理子系统,其中所述显示设备控制器适合于从所述系统存储器检索与包括所述渲染图像的所述第一行的所述渲染图像的一组平铺块对应的一组图像数据。
16.根据权利要求15所述的图形处理子系统,其中所述显示设备控制器适合于丢弃所述组图像数据的不包括图像数据的所述第一行的一部分。
17.根据权利要求15所述的图形处理子系统,其中所述显示设备控制器包括一图像数据高速缓冲存储器,所述高速缓冲存储器适合于存储一包括在所述组平铺块中且与所述渲染图像的至少一个附加行对应的第二图像数据;且
其中所述显示设备控制器适合于在检索所述第一图像数据后从所述图像数据高速缓冲存储器中检索所述第二图像数据,并与所述显示设备通信所述第二图像数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/833,694 US20050237329A1 (en) | 2004-04-27 | 2004-04-27 | GPU rendering to system memory |
US10/833,694 | 2004-04-27 | ||
PCT/US2005/014368 WO2005104740A2 (en) | 2004-04-27 | 2005-04-26 | Gpu rendering to system memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1950878A CN1950878A (zh) | 2007-04-18 |
CN1950878B true CN1950878B (zh) | 2010-06-16 |
Family
ID=35135944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800135116A Expired - Fee Related CN1950878B (zh) | 2004-04-27 | 2005-04-26 | 对系统存储器的gpu渲染 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20050237329A1 (zh) |
EP (1) | EP1741089B1 (zh) |
JP (1) | JP4926947B2 (zh) |
CN (1) | CN1950878B (zh) |
CA (1) | CA2564601A1 (zh) |
DE (1) | DE602005018623D1 (zh) |
TW (1) | TWI390400B (zh) |
WO (1) | WO2005104740A2 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8085273B2 (en) | 2003-11-19 | 2011-12-27 | Lucid Information Technology, Ltd | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
US7812844B2 (en) | 2004-01-28 | 2010-10-12 | Lucid Information Technology, Ltd. | PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application |
US8497865B2 (en) | 2006-12-31 | 2013-07-30 | Lucid Information Technology, Ltd. | Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS |
US7961194B2 (en) | 2003-11-19 | 2011-06-14 | Lucid Information Technology, Ltd. | Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system |
US20080074428A1 (en) | 2003-11-19 | 2008-03-27 | Reuven Bakalash | Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system |
EP1687732A4 (en) | 2003-11-19 | 2008-11-19 | Lucid Information Technology Ltd | METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS |
US20090027383A1 (en) | 2003-11-19 | 2009-01-29 | Lucid Information Technology, Ltd. | Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition |
JP4244028B2 (ja) * | 2004-09-22 | 2009-03-25 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、制御用プロセッサおよび情報処理装置 |
EP1681656A1 (en) * | 2005-01-18 | 2006-07-19 | Oculus Info Inc. | System and method for processing map data |
US20080143731A1 (en) * | 2005-05-24 | 2008-06-19 | Jeffrey Cheng | Video rendering across a high speed peripheral interconnect bus |
US7730336B2 (en) * | 2006-05-30 | 2010-06-01 | Ati Technologies Ulc | Device having multiple graphics subsystems and reduced power consumption mode, software and methods |
US7444583B2 (en) * | 2005-05-27 | 2008-10-28 | Microsoft Corporation | Standard graphics specification and data binding |
US7619628B2 (en) * | 2005-06-24 | 2009-11-17 | Microsoft Corporation | Caching digital image data |
US7554550B2 (en) * | 2005-06-24 | 2009-06-30 | Microsoft Corporation | Non-destructive processing of digital image data |
US7535433B2 (en) * | 2006-05-18 | 2009-05-19 | Nvidia Corporation | Dynamic multiple display configuration |
US8555099B2 (en) * | 2006-05-30 | 2013-10-08 | Ati Technologies Ulc | Device having multiple graphics subsystems and reduced power consumption mode, software and methods |
US7986327B1 (en) * | 2006-10-23 | 2011-07-26 | Nvidia Corporation | Systems for efficient retrieval from tiled memory surface to linear memory display |
US7805587B1 (en) | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
TWI328198B (en) * | 2006-12-11 | 2010-08-01 | Via Tech Inc | Gpu context switching system |
TWI372352B (en) | 2008-01-04 | 2012-09-11 | Asustek Comp Inc | Method for assisting in calculation of data using display card |
US8245011B2 (en) * | 2008-02-08 | 2012-08-14 | Texas Instruments Incorporated | Method and system for geometry-based virtual memory management in a tiled virtual memory |
US8392667B2 (en) * | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
US9793982B2 (en) | 2009-04-21 | 2017-10-17 | Commscope Technologies Llc | System for automatic configuration of a mobile communication system |
US8849190B2 (en) | 2009-04-21 | 2014-09-30 | Andrew Llc | Radio communication systems with integrated location-based measurements for diagnostics and performance optimization |
US9189242B2 (en) * | 2009-09-24 | 2015-11-17 | Nvidia Corporation | Credit-based streaming multiprocessor warp scheduling |
US8669990B2 (en) | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
US8537169B1 (en) | 2010-03-01 | 2013-09-17 | Nvidia Corporation | GPU virtual memory model for OpenGL |
US8291146B2 (en) * | 2010-07-15 | 2012-10-16 | Ati Technologies Ulc | System and method for accessing resources of a PCI express compliant device |
CN101976183B (zh) * | 2010-09-27 | 2012-02-22 | 广东威创视讯科技股份有限公司 | 一种多窗口图像同时更新时图像更新的方法及装置 |
US8683135B2 (en) * | 2010-10-31 | 2014-03-25 | Apple Inc. | Prefetch instruction that ignores a cache hit |
CN102096897B (zh) * | 2011-03-17 | 2012-05-02 | 长沙景嘉微电子有限公司 | 基于分块渲染的gpu中块存储策略的实现 |
JP5800565B2 (ja) * | 2011-05-11 | 2015-10-28 | キヤノン株式会社 | データ転送装置及びデータ転送方法 |
CN102270095A (zh) * | 2011-06-30 | 2011-12-07 | 威盛电子股份有限公司 | 多重显示器控制方法及其系统 |
US8830246B2 (en) * | 2011-11-30 | 2014-09-09 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing |
US9305324B2 (en) | 2012-12-21 | 2016-04-05 | Nvidia Corporation | System, method, and computer program product for tiled deferred shading |
US9495721B2 (en) * | 2012-12-21 | 2016-11-15 | Nvidia Corporation | Efficient super-sampling with per-pixel shader threads |
EP2775695B1 (en) * | 2013-03-07 | 2016-08-17 | ABB Schweiz AG | Mobile device with context specific transformation of data items to data images |
US9626735B2 (en) | 2013-06-24 | 2017-04-18 | Intel Corporation | Page management approach to fully utilize hardware caches for tiled rendering |
US8719374B1 (en) | 2013-09-19 | 2014-05-06 | Farelogix, Inc. | Accessing large data stores over a communications network |
GB2521151B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configurable thread ordering for a data processing apparatus |
GB2521155B (en) * | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
JP6291934B2 (ja) * | 2014-03-18 | 2018-03-14 | 日本電気株式会社 | 情報処理装置、描画方法、及びプログラム |
CN105427236A (zh) * | 2015-12-18 | 2016-03-23 | 魅族科技(中国)有限公司 | 一种图像渲染方法及装置 |
CN105678680A (zh) * | 2015-12-30 | 2016-06-15 | 魅族科技(中国)有限公司 | 一种图像处理的方法和装置 |
US10282808B2 (en) * | 2016-05-27 | 2019-05-07 | Intel Corporation | Hierarchical lossless compression and null data support |
US10417733B2 (en) * | 2017-05-24 | 2019-09-17 | Samsung Electronics Co., Ltd. | System and method for machine learning with NVMe-of ethernet SSD chassis with embedded GPU in SSD form factor |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6195734B1 (en) * | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3548648B2 (ja) * | 1996-02-06 | 2004-07-28 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置及び描画方法 |
US6104417A (en) * | 1996-09-13 | 2000-08-15 | Silicon Graphics, Inc. | Unified memory computer architecture with dynamic graphics memory allocation |
US5907330A (en) * | 1996-12-18 | 1999-05-25 | Intel Corporation | Reducing power consumption and bus bandwidth requirements in cellular phones and PDAS by using a compressed display cache |
US6075546A (en) * | 1997-11-10 | 2000-06-13 | Silicon Grahphics, Inc. | Packetized command interface to graphics processor |
US6275243B1 (en) * | 1998-04-08 | 2001-08-14 | Nvidia Corporation | Method and apparatus for accelerating the transfer of graphical images |
US7130958B2 (en) * | 2003-12-02 | 2006-10-31 | Super Talent Electronics, Inc. | Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes |
AU2001280857A1 (en) * | 2000-08-17 | 2002-02-25 | Api Networks, Inc. | System and method for separate virtual channels for posted requests in a multiprocessor system |
US20020083254A1 (en) * | 2000-12-22 | 2002-06-27 | Hummel Mark D. | System and method of implementing interrupts in a computer processing system having a communication fabric comprising a plurality of point-to-point links |
US6847370B2 (en) * | 2001-02-20 | 2005-01-25 | 3D Labs, Inc., Ltd. | Planar byte memory organization with linear access |
US7009618B1 (en) * | 2001-07-13 | 2006-03-07 | Advanced Micro Devices, Inc. | Integrated I/O Remapping mechanism |
US6665788B1 (en) * | 2001-07-13 | 2003-12-16 | Advanced Micro Devices, Inc. | Reducing latency for a relocation cache lookup and address mapping in a distributed memory system |
US7376695B2 (en) * | 2002-03-14 | 2008-05-20 | Citrix Systems, Inc. | Method and system for generating a graphical display for a remote terminal session |
-
2004
- 2004-04-27 US US10/833,694 patent/US20050237329A1/en not_active Abandoned
-
2005
- 2005-04-26 CA CA002564601A patent/CA2564601A1/en not_active Abandoned
- 2005-04-26 EP EP05739859A patent/EP1741089B1/en active Active
- 2005-04-26 JP JP2007510913A patent/JP4926947B2/ja active Active
- 2005-04-26 WO PCT/US2005/014368 patent/WO2005104740A2/en not_active Application Discontinuation
- 2005-04-26 CN CN2005800135116A patent/CN1950878B/zh not_active Expired - Fee Related
- 2005-04-26 DE DE602005018623T patent/DE602005018623D1/de active Active
- 2005-04-27 TW TW094113472A patent/TWI390400B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6195734B1 (en) * | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
Also Published As
Publication number | Publication date |
---|---|
US20050237329A1 (en) | 2005-10-27 |
WO2005104740A3 (en) | 2006-09-21 |
WO2005104740A2 (en) | 2005-11-10 |
EP1741089A4 (en) | 2008-01-16 |
DE602005018623D1 (de) | 2010-02-11 |
JP4926947B2 (ja) | 2012-05-09 |
CN1950878A (zh) | 2007-04-18 |
EP1741089B1 (en) | 2009-12-30 |
EP1741089A2 (en) | 2007-01-10 |
TW200620151A (en) | 2006-06-16 |
JP2007535006A (ja) | 2007-11-29 |
CA2564601A1 (en) | 2005-11-10 |
TWI390400B (zh) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1950878B (zh) | 对系统存储器的gpu渲染 | |
CN100432977C (zh) | 用于向多个图形装置传输数据的装置和方法 | |
EP0995154B1 (en) | Virtual address access to tiled surfaces | |
US5794016A (en) | Parallel-processor graphics architecture | |
US6380935B1 (en) | circuit and method for processing render commands in a tile-based graphics system | |
JP3350043B2 (ja) | 図形処理装置及び図形処理方法 | |
US6911983B2 (en) | Double-buffering of pixel data using copy-on-write semantics | |
US7456835B2 (en) | Register based queuing for texture requests | |
US6157384A (en) | Apparatus and method for drawing | |
JPH09245179A (ja) | コンピュータグラフィックス装置 | |
GB2298111A (en) | Improvements relating to computer 3d rendering systems | |
CN1443322A (zh) | 存储器控制器中枢 | |
JPH05189549A (ja) | マルチプロセッサによる画像データ処理装置 | |
CN1430769B (zh) | 拼块式图形结构 | |
JP3504240B2 (ja) | 画像処理システム、デバイス、方法及びコンピュータプログラム | |
WO1992000570A1 (en) | Graphics rendering systems | |
CN1010351B (zh) | 视频显示控制电路装置 | |
US6992673B2 (en) | Memory access device, semiconductor device, memory access method, computer program and recording medium | |
Ferrin et al. | Interactive computer graphics with the UNIX time-sharing system | |
US6125437A (en) | Virtual linear frame buffer addressing method and apparatus | |
GB2251771A (en) | Computer graphics system | |
JPH02116894A (ja) | スプライト表示装置 | |
JPS5969866A (ja) | 2次元画像デ−タ高速処理装置 | |
JPH0727556B2 (ja) | バスアクセス方式 | |
JPH03282888A (ja) | マーカ記号登録表示方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1099596 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1099596 Country of ref document: HK |
|
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: 20100616 |