Render-cache controller for multithreading, multi-core graphics processor
First Claim
Patent Images
1. A graphics processor, comprising:
- a multithreading, multi-core graphics engine to process pixel data;
a render-cache, readily accessible to the graphics engine, to store pixel data; and
, a render-cache controller to maintain the order in which threads are dispatched to the graphics engine, and to maintain data coherency between the render-cache and a main memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for rendering three-dimensional graphics using a streaming render-cache with a multi-threading, multi-core graphics processor are disclosed. The graphics processor includes a streaming render-cache and render-cache controller to maintain the order in which threads are dispatched to the graphics engine, and to maintain data coherency between the render-cache and the main memory. The render-cache controller blocks threads from being dispatched to the graphics engine out of order by only allowing one sub-span to be in-flight at any given time.
89 Citations
27 Claims
-
1. A graphics processor, comprising:
-
a multithreading, multi-core graphics engine to process pixel data;
a render-cache, readily accessible to the graphics engine, to store pixel data; and
,a render-cache controller to maintain the order in which threads are dispatched to the graphics engine, and to maintain data coherency between the render-cache and a main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A render-cache controller comprising:
-
a content addressable memory to map pixel coordinates to a cache-line address of a render-cache, the cache-line address specifying a location in the render-cache where pixel data corresponding to the pixel coordinates is stored;
a pixel mask array having a bit for every entry of the content addressable memory, each bit to indicate whether previously allocated pixel data is in flight; and
,a cache-line status array with a bit for every entry of the content addressable memory, each bit to indicate the availability of a cache-line in the render-cache. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method to pre-allocate pixel data to a render-cache, the method comprising:
-
checking a content addressable memory to determine whether pixel data for a particular pixel has been previously allocated to the render-cache;
if the pixel data for the particular pixel has not been previously allocated to the render-cache then checking a cache-line status array to determine an address of an available cache-line in the render-cache, evicting pixel data from the address of the available cache-line, writing the pixel data to the address of the available cache-line in the render-cache, and setting a bit in a pixel mask array to indicate that the pixel data written to the address of the available cache-line is in flight; and
if the pixel data for the particular pixel has been previously allocated to the render-cache then checking a pixel mask array to determine whether the previously allocated pixel data is in flight, stalling, if the previously allocated pixel data is in flight, and dispatching a thread to the graphics engine if the previously allocated pixel data is not in-flight. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A portable media device comprising:
-
a CPU;
a main memory;
a graphics processor, the graphics processor comprising a multithreading, multi-core graphics engine to generate graphics by processing pixel data, a render-cache to store pixel data, and a render-cache controller to maintain the order in which threads are dispatched to the graphics engine and to maintain data coherency between the render-cache and the main memory; and
a battery to provide power to the CPU, the main memory, and the graphics processor. - View Dependent Claims (24, 25, 26, 27)
-
Specification