Methods and apparatus for storing data in memory in data processing systems

US11023152B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11023152-B2
Application numberUS-201916510200-A
CountryUS
Kind codeB2
Filing dateJul 12, 2019
Priority dateJul 12, 2019
Publication dateJun 1, 2021
Grant dateJun 1, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • G06T1/60Primary

    Memory management · CPC title

  • G06F3/0644Primary

    Management of space entities, e.g. partitions, extents, pools · CPC title

  • Single storage device · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11023152B2 cover?
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 th…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06T1/60. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 01 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).