Efficient graphics pipeline with a pixel cache and data pre-fetching
First Claim
1. A computer system comprising:
- a processor for issuing commands;
a memory sub-system coupled to said processor for storing information including graphics data;
a graphics sub-system coupled to said processor and operates according to said commands from said processor, said graphics sub-system comprising;
a rasterizer for traversing graphics primitives of said graphics data to generate pixel coordinates for pixels corresponding to said graphics primitives;
a graphics pipeline coupled to said rasterizer for processing said graphics data, said graphics pipeline comprising;
a color pipeline;
a stencil z-buffer pipeline in parallel with the color pipeline; and
a texture pipeline in parallel with the color pipeline and the stencil z-buffer pipeline; and
a pixel cache coupled to said graphics pipeline for caching said graphics data, said pixel cache comprising;
a color cache coupled to the color pipeline for caching color data;
a stencil z-buffer cache coupled to the stencil z-buffer pipeline for caching stencil z-buffer data; and
a texture cache coupled to the texture pipeline for caching texture data; and
wherein said graphics sub-system masks latency of said memory sub-system by pre-fetching said graphics data and storing said graphics data within said pixel cache.
3 Assignments
0 Petitions
Accused Products
Abstract
An efficient graphics pipeline with a pixel cache and data pre-fetching. By combining the use of a pixel cache in the graphics pipeline and the pre-fetching of data into the pixel cache, the graphics pipeline of the present invention is able to take best advantage of the high bandwidth of the memory system while effectively masking the latency of the memory system. More particularly, advantageous reuse of pixel data is enabled by caching, which when combined with pre-fetching masks the memory latency and delivers high throughput. As such, the present invention provides a novel and superior graphics pipeline over the prior art in terms of more efficient data access and much greater throughput. In one embodiment, the present invention is practiced within a computer system having a processor for issuing commands; a memory sub-system for storing information including graphics data; and a graphics sub-system for processing the graphics data according to the commands from the processor. The graphics sub-system comprises a rasterizer for traversing graphics primitives of the graphics data to generate pixel coordinates for pixels corresponding to the graphics primitives; a graphics pipeline for processing the graphics data of the pixels; and a pixel cache for caching the pixel data. In this embodiment, he graphics sub-system masks the inherent latency of the memory sub-system by pre-fetching the graphics data and storing the graphics data within the pixel cache.
120 Citations
32 Claims
-
1. A computer system comprising:
-
a processor for issuing commands;
a memory sub-system coupled to said processor for storing information including graphics data;
a graphics sub-system coupled to said processor and operates according to said commands from said processor, said graphics sub-system comprising;
a rasterizer for traversing graphics primitives of said graphics data to generate pixel coordinates for pixels corresponding to said graphics primitives;
a graphics pipeline coupled to said rasterizer for processing said graphics data, said graphics pipeline comprising;
a color pipeline;
a stencil z-buffer pipeline in parallel with the color pipeline; and
a texture pipeline in parallel with the color pipeline and the stencil z-buffer pipeline; and
a pixel cache coupled to said graphics pipeline for caching said graphics data, said pixel cache comprising;
a color cache coupled to the color pipeline for caching color data;
a stencil z-buffer cache coupled to the stencil z-buffer pipeline for caching stencil z-buffer data; and
a texture cache coupled to the texture pipeline for caching texture data; and
wherein said graphics sub-system masks latency of said memory sub-system by pre-fetching said graphics data and storing said graphics data within said pixel cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A graphics computer system comprising:
-
a memory sub-system for storing information including graphics data;
a rasterizer coupled to said memory sub-system for traversing graphics primitives of said graphics data to generate pixel coordinates for pixels corresponding to said graphics primitives;
a graphics pipeline coupled to said rasterizer for processing said graphics data, said graphics pipeline comprising;
a color pipeline;
a stencil z-buffer pipeline in parallel with the color pipeline; and
a texture pipeline in parallel with the color pipeline and the stencil z-buffer pipeline; and
a pixel cache coupled to said graphics pipeline for caching said graphics data, said pixel cache comprising;
a color cache coupled to the color pipeline for caching color data;
a stencil z-buffer cache coupled to the stencil z-buffer pipeline for caching stencil z-buffer data; and
a texture cache coupled to the texture pipeline for caching texture data; and
wherein said graphics computer system masks latency of said memory sub-system by pre-fetching said graphics data and storing said graphics data within said pixel cache. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system comprising:
-
a first graphics pipeline that processes data associated with a first aspect of a graphic;
a first cache associated with the first graphics pipeline, the first cache storing data associated with the first aspect of the graphic;
a second graphics pipeline in parallel with the first graphics pipeline, the second graphics pipeline processes data associated with a second aspect of the graphic, the second aspect of the graphic being different from the first aspect of the graphic;
a second cache associated with the second graphics pipeline, the second cache storing data associated with the second aspect of the graphic; and
a fragment selection unit that is coupled to each of the graphics pipelines, the fragment selection unit generating appropriately sized fragments of graphic data for each graphics pipeline. - View Dependent Claims (20, 21, 22, 23, 24, 25)
a third graphics pipeline in parallel with the first and second graphics pipelines, the third graphics pipeline processes data associated with a third aspect of the graphic; and
a third cache associated with the third graphics pipeline, the third cache storing data associated with the third aspect of the graphic, the third aspect of the graphic being different from the first and second aspects of the graphic.
-
-
22. The computer system as recited in claim 21, wherein the first aspect of the graphic comprises one of a color, a stencil z-buffer, and a texture and wherein the second aspect of the graphic comprises a different one of a color, a stencil z-buffer, and a texture and wherein the third aspect of the graphic comprises another different one of a color, a stencil z-buffer, and a texture.
-
23. The computer system as recited in claim 21, wherein the data associated with the first aspect of the graphic, the data associated with the second aspect of the graphic, and the data associated with the third aspect of the graphic are organized as tiles of pixels.
-
24. The computer system as recited in claim 21, wherein the first, second, and third caches each receive pre-fetched data associated with the cache and each store the pre-fetched data in the cache.
-
25. The computer system as recited in claim 21, wherein the first, second, and third caches each comprise cache lines organized as two-dimensional arrays for storing tiles of graphic data.
-
26. A method for processing graphics data, comprising:
-
pre-fetching graphics data associated with a first aspect of a graphic from a memory to a first cache that is associated with a first graphics pipeline that processes data associated with the first aspect of the graphic;
pre-fetching graphics data associated with a second aspect of the graphic from a memory to a second cache that is associated with a second graphics pipeline that processes data associated with the second aspect of the graphic, the second aspect of the graphic being different from the first aspect of the graphic; and
fragmenting graphics data associated with the first aspect of the graphic to appropriately sized fragments for the first cache; and
fragmenting graphics data associated with the second aspect of the graphic to appropriately sized fragments for the second cache. - View Dependent Claims (27, 28, 29, 30, 31, 32)
generating a first cache address for the graphics data associated with the first aspect of the graphic based on a pixel coordinate of the graphics data associated with the first aspect of the graphic; and
generating a second cache address for the graphics data associated with the second aspect of the graphic based on a pixel coordinate of the graphics data associated with the second aspect of the graphic.
-
-
28. The method as recited in claim 27, further comprising:
-
storing the first cache address in a pre-fetch queue; and
storing the second cache address in the pre-fetch queue.
-
-
29. The method as recited in claim 26, wherein the first aspect of the graphic comprises one of a color, a stencil z-buffer, and a texture and wherein the second aspect of the graphic comprises a different one of a color, a stencil z-buffer, and a texture.
-
30. The method as recited in claim 26, wherein the first and second caches each comprise cache lines organized as two-dimensional arrays for storing tiles of graphic data.
-
31. The method as recited in claim 26, further comprising:
pre-fetching graphics data associated with a third aspect of the graphic from a memory to a third cache that is associated with a third graphics pipeline that processes data associated with the third aspect of the graphic, the third aspect of the graphic being different from the first and second aspects of the graphic.
-
32. The method as recited in claim 31, wherein the first aspect of the graphic comprises one of a color, a stencil z-buffer, and a texture and wherein the second aspect of the graphic comprises a different one of a color, a stencil z-buffer, and a texture, and the third aspect of the graphic comprises another different one of a color, a stencil z-buffer, and a texture.
Specification