IP Library › Granted Patent US 12,602,320
Granted Patent B2
US 12,602,320 · App. 18/782,147 · Granted Apr 14, 2026

Dynamic page mapping using header to identify compressed data

Inventors: Rishabh Dubey (Agrate Brianza, IT); Marco Sforzin (Cernusco sul Naviglio, IT); Emanuele Confalonieri (Segrate, IT); Danilo Caraccio (Milan, IT); Daniele Balluchi (Cernusco sul Naviglio, IT); Nicola Del Gatto (Cassina de' Pecchi, IT)
Assignee: Micron Technology, Inc.
G06F12/0246G06F2212/401G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,602,320
App. No.
18/782,147
Granted
Apr 14, 2026
Kind
B2
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 (49)

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.

2 . 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.

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

4 . 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.

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

6 . 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.

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

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.

9 . 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.

10 . 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.

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.

12 . 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.

13 . 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.

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.

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.

16 . 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.

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

18 . 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.

19 . 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.

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

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2024
From: DUBEY, RISHABH; SFORZIN, MARCO; CONFALONIERI, EMANUELE; CARACCIO, DANILO; BALLUCHI, DANIELE; DEL GATTO, NICOLA
To: MICRON TECHNOLOGY, INC.
Reel/Frame 068974/0001 →
Priority Claims (1)
IN 202311062639 · Sep 18, 2023 · national
Continuity (1)
Related Publication 20250094343A1 · Mar 20, 2025
References Cited (29)
US 4908874A · Gabriel · 1990 [cited by applicant]
US 5627995A · Miller et al. · 1997 [cited by applicant]
US 6968424B1 · Danilak · 2005 [cited by applicant]
US 10572378B2 · Li et al. · 2020 [cited by applicant]
US 10691626B2 · Nale et al. · 2020 [cited by applicant]
US 11036427B2 · Sallese et al. · 2021 [cited by applicant]
US 20020178332A1 · Wilson et al. · 2002 [cited by applicant]
US 20110320730A1 · Blake et al. · 2011 [cited by applicant]
US 20120324129A1 · Chan et al. · 2012 [cited by applicant]
US 20150281717A1 · Yukawa et al. · 2015 [cited by applicant]
US 20170024160A1 · Feldman · 2017 [cited by applicant]
US 20170046273A1 · Cohen · 2017 [cited by examiner]
US 20180137044A1 · Jo et al. · 2018 [cited by applicant]
US 20190324912A1 · Toivanen · 2019 [cited by applicant]
US 20210036714A1 · Martin et al. · 2021 [cited by applicant]
US 20210232450A1 · Vankamamidi · 2021 [cited by examiner]
US 20220129388A1 · Balakrishnan · 2022 [cited by examiner]
US 20240094908A1 · Agrawal et al. · 2024 [cited by applicant]
US 20250094047A1 · Sforzin et al. · 2025 [cited by applicant]
US 20250094344A1 · Dubey et al. · 2025 [cited by applicant]
US 20250110670A1 · Erickson · 2025 [cited by applicant]
US 20250190446A1 · Martin et al. · 2025 [cited by applicant]
CN 119645296 · 2025 [cited by applicant]
CN 119645897 · 2025 [cited by applicant]
WO WO2020096639A1 · 2020 [cited by applicant]
Blankenship, Robert, “Compute Express Link CXL Memory and Cache Protocols”, Storage Developer Conference, [Online] Retrieved from the internet:https: snia.org sites default files SDC 2020 130-Blankenship-CXL-1.1-Protoco… [cited by applicant]
U.S. Appl. No. 18/782,380, filed Jul. 24, 2024, Chained Mapping With Compression. [cited by applicant]
U.S. Appl. No. 18/782,539, filed Jul. 24, 2024, Dual Compression in Memory Devices. [cited by applicant]
Synopsys, “An Introduction to the CXL Device Types”, [Online]. Retrieved from the Internet: <https://www.synopsys.com/blogs/chip-design/introduction-cxl-device-types.html>, (Mar. 3, 2020), 7 pages. [cited by applicant]