# US 2024/0201894 A1 · Low overhead page recompression

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2024/0201894 A1
- Document ID: US20240201894A1
- Status: Published application
- Kind: A1
- Application number: 18/540,670
- Filed: 2023-12-14
- Published: 2024-06-20
- Earliest claimed: 2022-12-15
- Assignees: Rambus Inc.
- Applicants: Rambus Inc.
- Inventors: Evan Lawrence Erickson; Christopher Haywood
- Web page: https://patentgrep.com/patent/US20240201894A1

## CPC

- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/064: {Management of blocks}
- G06F 3/0673: {Single storage device}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus and method for low page overhead recompression. In one embodiment a memory buffer integrated circuit (IC) device is disclosed that includes a first circuit configured to independently compress equally sized portions of a page of data, and a second circuit configured to store the compressed data portions at respective addresses in memory. The memory buffer IC device also includes a third circuit configured to store a page table comprising an entry with information related to the respective memory addresses.

## Claims

### Claim 1

A memory buffer integrated circuit (IC) device comprising:
a first circuit configured to independently compress equally sized portions of a page of data;
a second circuit configured to store the compressed data portions at respective addresses in memory, and;
a third circuit configured to store a page table comprising an entry with information related to the respective memory addresses.

### Claim 2 (depends on 1)

The memory buffer IC of claim 1 wherein the second circuit is configured to store the compressed data portions in memory with unused memory portions between the compressed data portions.

### Claim 3 (depends on 2)

The memory buffer IC of claim 2 wherein the unused memory portions are equal in size.

### Claim 4 (depends on 2)

The memory buffer IC of claim 2 wherein the unused memory portions are unequal in size.

### Claim 5 (depends on 1)

The memory buffer IC of claim 1 further comprising a fourth circuit configured to store the page of data.

### Claim 6

A method comprising:
independently compressing equally sized portions of a page of data;
storing the compressed data portions at respective addresses in memory;
creating a table, wherein the table comprises a plurality of entries, a first of which comprises information related to the addresses in memory where the compressed data portions are respectively stored.

### Claim 7 (depends on 6)

The method of claim 6 wherein the compressed data portions are stored with unused memory portions between them.

### Claim 8 (depends on 7)

The method of claim 7 wherein the unused memory portions are equal in size.

### Claim 9 (depends on 7)

The method of claim 7 wherein the unused memory portions are unequal in size.

### Claim 10 (depends on 6)

The method of claim 6 further comprising:
receiving a request to access first data of the data page, wherein the request comprises a data address;
decompressing the compressed data portions after receiving the request;
storing the decompressed data portions in a fourth circuit configured to store data;
accessing the first data in the fourth circuit.

### Claim 11 (depends on 10)

The method of claim 10 further comprising:
in response to receiving the request, accessing the table using the data address to read the information related to the addresses in memory where the compressed data portions are stored;
accessing the compressed data portions using the information related to the addresses in memory where the compressed data portions are stored;
wherein the compressed data portions are decompressed in response to accessing the table.

### Claim 12 (depends on 10)

The method of claim 10 wherein the decompressed data portions are stored in the fourth circuit, starting with the decompressed data portion that comprises the first data.

### Claim 13 (depends on 10)

The method of claim 10 wherein storing the compressed data portions comprises:
storing a first of the compressed data portion in memory at a first address;
storing the remaining compressed data portions in memory after the first compressed data portion is stored in memory;
wherein the method further comprises:
storing the first address in the first entry of the table;
copying the first address to buffer memory:
selecting a new first address in memory from a list of free addresses;
overwriting the first address in the first entry with the new first address;
after overwriting the first address in the first entry with the new first address, overwriting the new first address in the first entry with the first address copied to the buffer memory if the decompressed data portions held in the fourth circuit have not been modified;
after overwriting the first address in the first entry with the new first address, recompressing the decompressed data portions held in the fourth circuit, and storing the recompressed data portions in memory if one or more of the decompressed data portions held in the fourth circuit have been modified;
wherein storing the recompressed data portions comprises storing a first of the recompressed data portions at the new first address;
storing the remaining recompressed data portions in memory after the first recompressed data portion is stored.

### Claim 14 (depends on 10)

The method of claim 10 further comprising:
recompressing those decompressed data portions in the fourth circuit, which have been modified;
replacing the compressed data portions in memory with the recompressed data portions, respectively, if the recompressed data portions can fit in memory spaces, respectively, that are occupied by the respective decompressed data portions;
storing the recompressed data portions at respective new addresses in memory if the recompressed data portions cannot fit in the memory spaces, respectively, that are occupied by the decompressed data portions, respectively.

### Claim 15

A memory buffer integrated circuit (IC) device comprising:
a first circuit configured to compress some but not all of a page of data;
a second circuit configured to store the compressed data of the page in memory and uncompressed data of the page in the memory.

### Claim 16 (depends on 14)

The memory buffer IC of claim 14:
wherein the first circuit is configured to independently compress equally sized portions of the page of data;
wherein the second circuit is configured to store the compressed, equally sized data portions at respective addresses in memory.

### Claim 17 (depends on 14)

The memory buffer IC of claim 14 further comprising a third circuit configured to store a page table comprising an entry with information related to the memory addresses where the compressed, equally sized data portions are stored.

### Claim 18 (depends on 16)

The memory buffer IC of claim 16 further comprising:
a fourth circuit configured to store data;
wherein the first circuit is configured to receive a request to access first data of the data page, wherein the request comprises a data address;
wherein the first circuit is configured to access the table using the data address and read the information related to the addresses in memory where the compressed data portions are stored;
wherein the second circuit is configured to decompress the compressed data portions;
wherein the first circuit is configured to store the decompressed data portions in the fourth circuit;
wherein the first circuit is configured to store the uncompressed data in the fourth circuit.

### Claim 19 (depends on 15)

The memory buffer IC of claim 15:
wherein the page includes a first portion and a second portion;
wherein the first circuit is configured to sequentially compress and store the first portion in memory;
wherein the first circuit is configured to store the second portion as uncompressed data in memory.

### Claim 20 (depends on 16)

The memory buffer IC of claim 16:
wherein the first circuit is configured to independently compress some but not all of another equally sized portion of the page of data after the first circuit compresses the equally sized portions of the page of data;
wherein the second circuit is configured to store the compressed some but not all of the other equally sized data portion in memory.
