Methods and apparatus for memory management
Abstract
A method and apparatus for efficiently managing texture memory in computer graphics systems is provided. Texture images are stored in discrete memory-aligned tiles to avoid fragmentation in the texture memory. Larger texture images are divided up into smaller tiles so that they will fit in any available tile region in texture memory. Small texture images usually fit into a single tile and therefore do not usually have to be divided up. Texture images that are larger than a tile region are split up into tile-sized images that are stored individually in any available tile region of texture memory. By dividing up the larger texture images this way, the texture memory is used more efficiently because any gaps that appear in the texture memory due to fragmentation may be filled by the tile-sized images.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for managing a graphics texture, the method comprising the following steps:
subdividing a texture into one or more texture tiles; allocating a memory tile within a texture memory; paging a texture tile into the memory tile; and initializing a texture table entry to correspond to the memory tile.
2 . A method as recited in claim 1 wherein the step of initializing a texture table entry further comprises the step of setting a memory tile address in the texture table entry to be equal to the starting address of the memory tile.
3 . A method as recited in claim 1 wherein the step of initializing a texture table entry further comprises the step of setting a valid bit within the texture table entry to indicate that the texture table entry is initialized.
4 . A method as recited in claim 1 further comprising the steps of:
subdividing a texture address to create a most significant bits portion and a least significant bits portion;
using the most significant bits portion to retrieve the texture table entry from the texture table;
determining if the texture table entry includes a valid memory tile address; and
combining, if the texture table entry includes a valid memory tile address, the least significant bits portion and the memory tile address.
5 . A method as recited in claim 4 wherein the step of determining if the texture table entry includes a valid memory tile address further comprises the step of testing the state of a valid bit within the texture table entry.
6 . A method as recited in claim 1 wherein the memory tile is allocated using a fixed size and alignment.
7 . A method for managing a graphics texture, the method comprising the following steps:
subdividing a texture into one or more texture tiles; defining a region of interest within an image; and paging the set of texture tiles that correspond to the region of interest into a texture memory.
8 . A method as recited in claim 7 wherein the texture memory is subdivided into a series of fixed size memory tiles.
9 . A method as recited in claim 8 wherein the step of paging further comprises the steps of:
selecting, for each texture tile in the set of texture tiles, a corresponding memory tile; and
loading each texture tile in the set of texture tiles into its corresponding memory tile.
10 . A method as recited in claim 9 wherein the step of paging further comprises the step of:
initializing, for each texture tile in the set of texture tiles, an entry in a texture table, each texture table entry including a mapping between a texture tile and the corresponding memory tile.
11 . A method as recited in claim 7 further comprising the steps of:
moving the region of interest within the image; and
paging one or more additional texture tiles into the texture memory to reflect the movement of the region of interest.
12 . A method as recited in claim 11 wherein the step of paging one or more additional texture tiles is initiated before the step of moving the region of interest.
13 . A method as recited in claim 11 wherein at least some texture tiles include a lower resolution texture and wherein the step of paging one or more additional texture tiles into the texture memory further comprises the step of:
selecting the texture resolution to be paged.
14 . A method as recited in claim 13 wherein the step of selecting the texture resolution to be paged is based on the bandwidth available to page texture tiles.
15 . A computer program product comprising a computer usable medium having computer readable code embodied therein, the computer readable program code devices configured to perform a method for managing a graphics texture, the method comprising the steps of:
subdividing a texture into one or more texture tiles; defining a region of interest within an image; and paging the set of texture tiles that correspond to the region of interest into a texture memory.
16 . A computer program product as recited in claim 15 wherein the texture memory is subdivided into a series of fixed size memory tiles.
17 . A computer program product as recited in claim 16 wherein the step of paging further comprises the steps of:
selecting, for each texture tile in the set of texture tiles, a corresponding memory tile; and
loading each texture tile in the set of texture tiles into its corresponding memory tile.
18 . A computer program product as recited in claim 17 wherein the step of paging further comprises the step of:
initializing, for each texture tile in the set of texture tiles, an entry in a texture table, each texture table entry including a mapping between a texture tile and the corresponding memory tile.
19 . A computer program product as recited in claim 15 further comprising the steps of:
moving the region of interest within the image; and
paging one or more additional texture tiles into the texture memory to reflect the movement of the region of interest.
20 . A computer program product as recited in claim 19 wherein the step of paging one or more additional texture tiles is initiated before the step of moving the region of interest.
21 . A computer program product as recited in claim 19 wherein at least some texture tiles include a lower resolution texture and wherein the step of paging one or more additional texture tiles into the texture memory further comprises the step of:
selecting the texture resolution to be paged.
22 . A computer program product as recited in claim 21 wherein the step of selecting the texture resolution to be paged is based on the bandwidth available to page texture tiles.Join the waitlist — get patent alerts
Track US2003016229A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.