Texture mapping performance by combining requests for image data
AssigneeSun Microsystems, Inc.
InventorsBrian D. Emberling, Michael G. Lavelle
Life of this patent
Estimating the term…
Abstract
An optimizing unit for use with an interleaved memory and suitable for use in a computer graphics system is described. The unit utilizes knowledge of the repetitive and predictable nature of texture buffer accesses to potentially reduce the number of memory fetches. The unit maintains a queue of pending requests for tiles of data from the memory, and predicts the retrieval of redundant data within short sequences of requests. The redundant data is retrieved from the memory once, and repeated as necessary from local temporary storage registers.
Claims33
A graphics system comprising:
- a memory configured to receive and store image data, wherein the memory is subdivided into banks;
- a request queue configured to buffer requests for the image data stored in the memory;
- and
- a request processor coupled to the request queue and the memory, and configured to test a series of subsequent requests buffered in the request queue, and according to the results of the testing;
- issue the requests to the memory, or
- combine at least a subset of the subsequent requests, wherein the result of the combination is a single request, wherein the single request is issued to the memory.
A graphics system comprising;
- an interleaved memory configured to receive and store arrays of data;
- a set of registers coupled to the memory, configured to receive and store data from the memory, wherein each register in the set of registers has a data storage capacity equal to the quantity of data contained in an array of data;
- selection logic coupled to the set of registers, and configured to select elements from at least one array of data stored in the set of registers in response to external control signals, wherein the number of selected elements is equal to the number of elements contained in an array of data, and wherein the selection logic is further configured to output the selected elements;
- and
- controller logic coupled to the memory, the set of registers, and the selection logic, and configured to generate and convey control signals to the memory, the set of registers, and the selection logic in response to receiving requests for arrays of data.
A method for rendering graphics data, the method comprising;
- a) storing image data in a memory buffer, wherein the image data comprises independent image elements, wherein each image element is stored in a unique memory buffer location;
- b) receiving requests for neighborhoods of the image data, wherein the neighborhoods of the image data comprise spatially contiguous image elements;
- c) fetching two neighborhoods of the image data from a memory in response to a first and a second request for a neighborhood of the image data;
- and
- d) combining image elements from the two neighborhoods of the image data fetched in (c) in response to determining that the combination satisfies a third request, otherwise fetching a third neighborhood of the image data from a memory in response to the third request.
A method for mitigating the effect of the performance of an image buffer on the throughput of a graphics system, the method comprising;
- a) receiving memory requests for tiles, wherein a tile comprises a set of spatially adjacent image elements;
- b) calculating addresses corresponding to the locations of the requested tiles in the image buffer, and storing the addresses in a FIFO storage space;
- c) calculating two target address differentials between three subsequent memory requests, and comparing the two target address differentials to a constant k;
- d) combining the three subsequent memory requests into two memory requests in response to determining that the two target address differentials are equal to the constant k.
A graphics system comprising:
- an image memory configured to receive and store image data;
- a request memory configured to receive requests for portions of the image data stored in the image memory;
- and
- control logic coupled to the request memory and the image memory, wherein the control logic is configured to examine a plurality of requests for portions of the image data stored in the image memory, wherein the control logic is operable to combine at least a subset of the requests into a reduced number of requests, wherein the reduced number of requests is issued to the image memory.
A graphics system comprising:
- an image memory configured to receive and store tiles of image data;
- a request memory configured to receive requests for tiles of the image data stored in the image memory;
- and
- control logic coupled to the request memory and the image memory, wherein the control logic is configured to examine the requests for tiles of the image data stored in the image memory, wherein the control logic is operable to combine at least a subset of the requests into a reduced number of requests, wherein the reduced number of requests is issued to the image memory.
A method for rendering graphics data, the method comprising:
- storing image data in an image memory, wherein the image data comprises tiles;
- receiving requests for tiles of the image data stored in the image memory;
- examining the requests for tiles of the image data stored in the image memory;
- combining at least a subset of the requests into a reduced number of requests;
- providing the reduced number of requests to the image memory.
Dependencies are inferred from the claim text.