Data processing systems
US-2017285955-A1 · Oct 5, 2017 · US
US11023152B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11023152-B2 |
| Application number | US-201916510200-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 12, 2019 |
| Priority date | Jul 12, 2019 |
| Publication date | Jun 1, 2021 |
| Grant date | Jun 1, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
When storing an array of data in memory, the data array is divided into a plurality of blocks, and for respective groups of the blocks that the data array has been divided into, a set of data representing the group of blocks that includes: for each block of the group of blocks, a set of data for that block of the group of blocks; and a size indication for each of one or more of the blocks of the group of blocks, the size indication for a block of a group of blocks indicating the size in memory of the set of data for that block of the group included in the stored set of data representing the group of blocks, is stored. A set of header data is also stored separately for each group of blocks of the data array.
Opening claim text (preview).
The invention claimed is: 1. A method of storing an array of data in memory, the method comprising: dividing the array of data to be stored into a plurality of blocks; for at least one group of the blocks that the data array has been divided into, storing a set of data representing the group of blocks of the data array in memory, the set of data representing the group of blocks of the data array including: for each block of the group of blocks, a set of data for that block of the group of blocks; and a size indication for each of one or more of the blocks of the group of blocks, the size indication for a block of a group of blocks indicating the size in memory of the set of data for that block of the group included in the stored set of data representing the group of blocks; the method further comprising: storing, for each group of blocks of the data array for which a set of data has been stored, a set of header data separately to the set of data representing the group of blocks of the data array, the header data for a group of blocks of the data array indicating the total size in memory of the set of data for the group of blocks of the data array that the header data relates to: wherein the set of data representing each group of blocks for which a set of data has been stored is stored at a location that can be determined using the header data that is stored for that group of blocks; and the set of data for each of the one or more of the blocks of the group of blocks for which a size indication has been stored is stored at a location that can be determined using the size indication that is stored for that block. 2. The method of claim 1 , wherein the sets of data for the blocks of the group of blocks included in the set of data representing the group of blocks of the data array comprise compressed representations of the blocks of the group of blocks. 3. The method of claim 1 , wherein the set of data representing the group of blocks of the data array includes a size indication for each of all except one block of the group of blocks. 4. The method of claim 1 , further comprising: for at least one other group of the blocks that the data array has been divided into: storing in memory: a set of data representing the group of blocks of the data array that represents each block of the group of blocks of the data array in an uncompressed form and that does not include a size indication for any of the blocks of the group of blocks; and a set of header data separately to the set of data representing the group of blocks of the data array, the header data for the group of blocks of the data array indicating that the data for each block of the group of blocks of the data array that the header data relates to has been stored in an uncompressed form. 5. The method of claim 1 , comprising: storing each set of data representing a group of blocks of the data array in a fixed-size and address-aligned block in memory. 6. The method of claim 1 , wherein the separate set of header data for each group of blocks indicates the actual size of the set of data that is stored for the group of blocks. 7. The method of claim 6 , wherein one size indication value that can be indicated in the separate set of header data is predefined as indicating that the set of data for each block of the group of blocks has been stored in an uncompressed form. 8. The method of claim 1 , comprising storing the separate header data for the groups of blocks of the data array as one or more header data blocks in a header buffer, with each header data block storing the header data for plural groups of blocks of the data array. 9. The method of claim 1 , wherein the data array is a graphics texture, or a frame for display. 10. An apparatus for storing an array of data in memory, the apparatus comprising: an encoding circuit configured to store, for at least one group of blocks of a plurality of blocks that the data array has been divided into for encoding purposes, a set of data representing the group of blocks of the data array in memory, the set of data representing the group of blocks of the data array including: for each block of the group of blocks, a set of data for that block of the group of blocks; and a size indication for each of one or more of the blocks of the group of blocks, the size indication for a block of a group of blocks indicating the size in memory of the set of data for that block of the group included in the stored set of data representing the group of blocks; the apparatus further comprising: a header generating circuit configured to store for a group of blocks of the data array for which a set of data has been stored, a set of header data separately to the set of data representing the group of blocks of the data array, the header data for a group of blocks of the data array indicating the total size in memory of the set of data for the group of blocks of the data array that the header data relates to: wherein the set of data representing each group of blocks for which a set of data has been stored is stored at a location that can be determined using the header data that the header generating circuit is configured to store for that group of blocks; and the set of data for each of the one or more of the blocks of the group of blocks for which a size indication has been stored is stored at a location that can be determined using the size indication that is stored by the encoding circuit for that block. 11. The apparatus of claim 10 , wherein the encoding circuit is configured to encode the data for the blocks of the data array such that the sets of data for the blocks of a group of blocks included in the set of data representing the group of blocks of the data array comprise compressed representations of the blocks of the group of blocks. 12. The apparatus of claim 10 , wherein the set of data representing the group of blocks of the data array includes a size indication for each of all except one block of the group of blocks. 13. The apparatus of claim 10 , wherein the encoding circuit is configured to: determine whether encoding the blocks of data of a group of blocks of the data array would result in a set of encoded data that is larger than the size of the uncompressed input data for that group of blocks, and to, in that event, store in memory for the group of blocks of the data array: a set of data representing the group of blocks of the data array that represents each block of the group of blocks of the data array in an uncompressed form and that does not include a size indication for any of the blocks of the group of blocks; and a set of header data separately to the set of data representing the group of blocks of the data array, the header data for the group of blocks of the data array indicating that the data for each block of the group of blocks of the data array that the header data relates to has been stored in an uncompressed form. 14. The apparatus of claim 10 , wherein the encoding circuit is configured to: store each set of data representing a group of blocks of the data array in a fixed-size and address-aligned block in memory. 15. The apparatus of claim 10 , wherein the separate set of header data for each group of blocks indicates the actual size of the set of data that is stored for the group of blocks. 16. The apparatus of claim 15 , wherein one size indication value that can be indicated in the separate set of header data is predefined as indicating that the set of data for each block of the group of blocks has been stored in an uncompressed form. 17. The appar
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Memory management · CPC title
Management of space entities, e.g. partitions, extents, pools · CPC title
Single storage device · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.