# US 12,602,320 B2 · Dynamic page mapping using header to identify compressed data

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

- Number: US 12,602,320 B2
- Document ID: US12602320B2
- Status: Granted
- Kind: B2
- Application number: 18/782,147
- Filed: 2024-07-24
- Published: 2025-03-20
- Granted: 2026-04-14
- Earliest claimed: 2023-09-18
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Rishabh Dubey; Marco Sforzin; Emanuele Confalonieri; Danilo Caraccio; Daniele Balluchi; Nicola Del Gatto
- Web page: https://patentgrep.com/patent/US12602320B2

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 13/1668: {Details of memory controller}
- G06F 12/0292: {using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10)}
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 2212/1024: Latency reduction
- G06F 2212/401: Compressed data
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A variety of applications can include a memory device having dynamic page mapping with compression. The memory device can include a mapping table having an entry location to associate a virtual page with a physical address of a first stripe of data of the virtual page. The entry location can include a flag along with the physical address of the first stripe. The flag can identify data of the virtual page as being compressed or uncompressed. A controller of the memory device, responsive to the flag identifying the data of virtual page being compressed, is structured to generate a format of compressed data of the first stripe with a header. The header can include a count of additional physical addresses to store compressed data of the virtual page and the additional physical addresses. Additional apparatus, systems, and methods are disclosed.

## Claims

### Claim 1

A memory device comprising:
a mapping table having an entry location to associate a virtual page with a physical address of a first stripe of data of the virtual page along with a flag, the flag identifying the data of the virtual page as compressed or uncompressed; and
a controller, responsive to the flag identifying the data of the virtual page being compressed, to generate a format of compressed data of the first stripe with a header, the header including i) a count of additional physical addresses to store compressed data of the virtual page and ii) the additional physical addresses.

### Claim 2 (depends on 1)

The memory device of claim 1, wherein the additional physical addresses are physical addresses of additional stripes of the compressed data of the virtual page.

### Claim 3 (depends on 2)

The memory device of claim 2, wherein the additional stripes of the compressed data of the virtual page have a format without a header.

### Claim 4 (depends on 1)

The memory device of claim 1, wherein the format includes a user data block and an error correction code following the count of the additional physical addresses.

### Claim 5 (depends on 1)

The memory device of claim 1, wherein the header has a predefined format dependent on size of the first stripe.

### Claim 6 (depends on 1)

The memory device of claim 1, wherein the memory device includes the controller to make available physical addresses to write data from a host to a memory subsystem of the memory device.

### Claim 7 (depends on 1)

The memory device of claim 1, wherein the memory device is a compute express link (CXL) type 3 memory device.

### Claim 8

A method comprising:
accessing an indirection table based on a virtual address received in a read request from a host device;
reading a first stripe of compressed data from a physical memory at a physical address listed in the indirection table corresponding to the virtual address, the first stripe of the compressed data including a header and the compressed data, the header including i) a count of additional physical addresses storing compressed data and ii) the additional physical addresses;
uncompressing the compressed data of the first stripe, generating uncompressed data of the first stripe; and
sending the uncompressed data of the first stripe to the host.

### Claim 9 (depends on 8)

The method of claim 8, wherein the method includes:
reading a next stripe of compressed data at a physical address retrieved from the header of the first stripe of the compressed data;
uncompressing the compressed data of the next stripe, generating uncompressed data of the next stripe; and
sending the uncompressed data of the next stripe along with the uncompressed data of the first stripe to the host.

### Claim 10 (depends on 8)

The method of claim 8, wherein accessing the indirection table includes loading the indirection table in response to determination that the indirection table is not cached.

### Claim 11

A method comprising:
accessing an indirection table based on a virtual address received in a read request from a host device;
reading a first stripe of compressed data from a physical memory at a physical address listed in the indirection table corresponding to the virtual address, the first stripe of the compressed data including a header and the compressed data;
uncompressing the compressed data of the first stripe, generating uncompressed data of the first stripe;
sending the uncompressed data of the first stripe to the host; and
consecutively reading stripes of compressed data having physical addresses in the header of the first stripe, after uncompressing the first stripe of compressed data.

### Claim 12 (depends on 11)

The method of claim 11, wherein the method includes uncompressing the compressed data of the stripes having the physical addresses in the header of the first stripe and copying the uncompressed data of the stripes, having the physical addresses in the header of the first stripe, to a cache along with the uncompressed data of the first stripe.

### Claim 13 (depends on 12)

The method of claim 12, wherein the read request is a series of read requests and the uncompressed data of the stripes, having the physical addresses in the header of the first stripe, along with the uncompressed data from the first stripe are copied to read buffers for the series of read requests.

### Claim 14

A method comprising:
accessing an indirection table based on a virtual address received in a read request from a host device;
reading a first stripe of compressed data from a physical memory at a physical address listed in the indirection table corresponding to the virtual address, the first stripe of the compressed data including a header and the compressed data;
uncompressing the compressed data of the first stripe, generating uncompressed data of the first stripe;
sending the uncompressed data of the first stripe to the host; and
fetching the header of the first stripe for decomposition after uncompressing the first stripe.

### Claim 15

A method comprising:
accessing an indirection table based on a virtual address received in a write request from a host device;
compressing data of a user page size corresponding to the write request;
obtaining physical addresses of a physical memory from a free space manager based on size of the compressed data corresponding to the write request;
updating the indirection table with a first physical address of the physical addresses;
generating a header including the physical addresses other than the first physical address and a count of the physical addresses other than the first physical address;
formatting the compressed data to include the header; and
writing the formatted compressed data with the header to the physical memory at the first physical address.

### Claim 16 (depends on 15)

The method of claim 15, wherein the method includes writing remaining compressed data corresponding to the write request to the physical memory at the physical addresses other than the first physical address.

### Claim 17 (depends on 15)

The method of claim 15, wherein accessing the indirection table includes loading the indirection table for processing.

### Claim 18 (depends on 15)

The method of claim 15, wherein accessing the indirection table includes accessing the indirection table in a cache, the indirection table including a first physical address corresponding to the virtual address.

### Claim 19 (depends on 15)

The method of claim 15, wherein the method includes freeing physical addresses for write operations by:
obtaining a physical address from the indirection table corresponding to the virtual address, the indirection table having a flag identifying a stripe of data, at the physical address, is compressed data;
reading a header from the stripe corresponding to the physical address; and
freeing for use the physical address and additional physical addresses listed in the header.

### Claim 20 (depends on 15)

The method of claim 15, wherein the user page size is 4 KB.
