# US 2025/0094343 A1 · Dynamic page mapping with compression

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

- Number: US 2025/0094343 A1
- Document ID: US20250094343A1
- Status: Published application
- Kind: A1
- Application number: 18/782,147
- Filed: 2024-07-24
- Published: 2025-03-20
- 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/US20250094343A1

## 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 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 a count of additional physical addresses to store compressed data of the virtual page and 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 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 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 a free space manager 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 compressed data including a header and the compressed data;
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 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 the method includes 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 11 (depends on 10)

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

### Claim 12 (depends on 11)

The method of claim 11, wherein the read request is a series of read requests and the uncompressed data of the stripes having 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 13 (depends on 8)

The method of claim 8, wherein the method includes fetching the header of the first stripe for decomposition after uncompressing the first stripe.

### Claim 14 (depends on 8)

The method of claim 8, wherein accessing the indirection table includes loading the indirection table if the indirection table is not cached.

### 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 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 the free space manager 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.
