Double-buffering of pixel data using copy-on-write semantics
First Claim
1. A buffer system for storing tile data for a plurality of tiles of a display, comprising:
- a first memory space for storing tile data;
a second memory space for storing tile data;
a memory interface circuit configured to receive memory access commands referencing a first logical buffer and a second logical buffer, the memory interface circuit further configured to respond to the memory access commands by accessing the first and second memory spaces; and
a tile table configured to store an entry for each of a plurality of tiles, each entry associating each of the first logical buffer and the second logical buffer with one of the first and second memory spaces, wherein the memory interface circuit uses the tile table entries to determine and modify associations of tiles of the first and second logical buffers with the first and second memory spaces.
1 Assignment
0 Petitions
Accused Products
Abstract
Tile buffers in a graphics processing system are managed use “copy-on-write” semantics, in which tile data stored in a memory location is not transferred to another location until the tile data for one of the buffers is modified. Two memory spaces store tile data, and two logical buffers are used to access the memory spaces. For each tile, a tile association is maintained, indicating which of the two memory spaces is associated with each of the two logical buffers. To copy a tile of the first logical buffer to the second logical buffer, the tile association for the tile being copied is modified. Data for a tile is written to the memory space associated with a target logical buffer after ensuring that the tile association for the tile associates the target logical buffer with a different one of the two memory spaces from the other logical buffer.
-
Citations
33 Claims
-
1. A buffer system for storing tile data for a plurality of tiles of a display, comprising:
-
a first memory space for storing tile data;
a second memory space for storing tile data;
a memory interface circuit configured to receive memory access commands referencing a first logical buffer and a second logical buffer, the memory interface circuit further configured to respond to the memory access commands by accessing the first and second memory spaces; and
a tile table configured to store an entry for each of a plurality of tiles, each entry associating each of the first logical buffer and the second logical buffer with one of the first and second memory spaces, wherein the memory interface circuit uses the tile table entries to determine and modify associations of tiles of the first and second logical buffers with the first and second memory spaces. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for managing graphics data for a plurality of tiles of a display, the method comprising:
-
establishing a tile association for each of the plurality of tiles, each tile association indicating which of two memory spaces for storing tile data for that tile is associated with each of a first logical buffer and a second logical buffer, wherein the two memory spaces are accessible by referencing the first logical buffer and the second logical buffer;
copying a tile of the first logical buffer to the second logical buffer by modifying the tile association for the tile; and
writing updated tile data for a tile of the second logical buffer to the one of the two memory spaces associated with the second logical buffer after updating the tile association for the tile so that the first and second logical buffers are associated with different ones of the two memory spaces. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for managing graphics data for a plurality of tiles of a display, the method comprising:
-
establishing a tile association for each of the plurality of tiles, each tile association indicating which of two memory spaces for storing tile data for that tile is associated with each of a first logical buffer and a second logical buffer, wherein the two memory spaces are accessible by referencing the first logical buffer and the second logical buffer;
scanning out data for each tile of a first display image from the one of the two memory spaces associated with the first logical buffer;
in parallel with the act of scanning out data, writing updated tile data for a tile of a second display image to the one of the two memory spaces associated with the second logical buffer after updating the tile association for the tile so that the first and second logical buffers are associated with different ones of the two memory spaces; and
upon completion of the act of scanning out data, copying each tile of the second logical buffer to the first logical buffer by updating the tile associations. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A memory system for managing data for a plurality of tiles, comprising:
-
a plurality of drawing memories, each configured to receive source tile data for a plurality of tiles from a data source and to store the source tile data in one of a first and a second drawing buffer;
a desktop compositor module configured to read source tile data by accessing selected first drawing buffers of the drawing memories and to generate desktop tile data from the source tile data; and
a desktop frame memory subsystem configured to store desktop tile data received from the desktop compositor module, the desktop frame memory subsystem including;
a first memory space for storing tile data;
a second memory space for storing tile data;
a memory interface circuit configured to receive memory access commands referencing a first desktop buffer and a second desktop buffer, the memory interface circuit further configured to respond to the memory access commands by accessing the first and second memory spaces; and
a tile table configured to store an entry for each of a plurality of tiles, each entry associating each of the first desktop buffer and the second desktop buffer with one of the first and second memory spaces, wherein the memory interface circuit uses the tile table entries to determine and modify associations of tiles of the first and second desktop buffers with the first and second memory spaces. - View Dependent Claims (29, 30, 31, 32, 33)
-
Specification