IP Library Granted Patent US 12,591,364
Granted Patent B2
US 12,591,364 · App. 18/670,243 · Granted Mar 31, 2026

In-situ memory compression

Inventors: Saideep Tiku (Fort Collins, CO); Poorna Kale (Folsom, CA)
Assignee: Micron Technology, Inc.
G06F3/0608G06F3/064G06F3/0659G06F3/0673
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,591,364
App. No.
18/670,243
Granted
Mar 31, 2026
Kind
B2
Abstract

The subject application relates to in-situ compression of data in a main memory and storing of the compressed data in the same main memory to improve memory optimization. A hardware logic of a memory device may receive modified pages from a first portion of memory array, cause a page compression accelerator in the hardware logic to compress the received modified pages to generate compressed data, and facilitate storing of the compressed data to a second portion of memory array of the same memory device. By using in-situ data compression, memory optimization in a computing device is improved.

Claims (57)

1 . A memory module, comprising:

a volatile random access memory (RAM) array; and

complimentary metal oxide semiconductor (CMOS) logic under the RAM array on the memory module, the CMOS logic including a page compression accelerator (PCA) that is coupled to the volatile RAM array, wherein the CMOS logic is configured to:

receive data comprising pages marked as dirty pages from a first portion of the RAM array;

cause the PCA to compress the data to generate compressed data; and

cause the compressed data to be stored in a second portion of the volatile RAM array; and

wherein the memory module is configured to operate as main memory for a computing system.

2 . The memory module of claim 1 , wherein the CMOS logic is further configured to:

receive a command from a memory controller that is coupled to the CMOS logic, the command includes compressing the data using a compression ratio; and

in response to the received command, the CMOS logic is configured to:

cause the PCA to compress the data using the compression ratio; and

store the compression ratio associated with the stored compressed data.

3 . The memory module of claim 2 , wherein the CMOS logic is configured to:

receive a command from the memory controller, the command includes moving the stored compressed data from the second portion of the volatile RAM array to the first portion of the volatile RAM array; and

in response to the received command, the CMOS logic is configured to:

identify the compression ratio that is associated with the stored compressed data to be decompressed;

cause the PCA to use the identified compression ratio as a reference for decompressing the stored compression data to generate a decompressed data; and

store the decompressed data to the first portion of the volatile RAM array.

4 . The memory module of claim 1 , wherein the dirty pages include modified pages in the first portion of the volatile RAM array.

5 . The memory module of claim 1 , wherein the CMOS logic is configured to: cause the PCA to compress the modified pages; and

cause the compressed modified pages to be stored in the second portion of the volatile RAM array.

6 . The memory module of claim 1 , wherein the second portion of the volatile RAM array includes a compressed cache (zRAM) that is a partition of the volatile RAM array.

7 . The memory module of claim 1 , wherein the second portion of the volatile RAM array includes compressed block storage configured to store the compressed data.

8 . A memory module, comprising:

a first volatile random access memory (RAM) array;

a second volatile RAM array;

complimentary metal oxide semiconductor (CMOS) logic under the second volatile RAM array on the memory module, the CMOS logic including a page compression accelerator (PCA) that is coupled to the second volatile RAM array; and

a memory controller coupled to the first volatile RAM array and to the second volatile RAM array, wherein the memory controller is configured to move data comprising pages marked as dirty pages from the first volatile RAM array to the second volatile RAM array in response to a memory reclamation command,

wherein the CMOS logic is configured to:

cause the PCA to compress the data to generate compressed data; and

cause the compressed data to be stored in the second volatile RAM array; and

wherein the memory module is configured to operate as main memory for a computing system.

9 . The apparatus of claim 8 , wherein the CMOS logic is further configured to:

receive a command from the memory controller, the command includes compressing the data using a compression ratio; and

in response to the received command, the CMOS logic is configured to:

cause the PCA to compress the data using the compression ratio; and

store the compression ratio associated with the stored compressed data.

10 . The apparatus of claim 9 , wherein the CMOS logic is configured to:

receive a command from the memory controller, the command includes moving the stored compressed data from the second memory array to the first memory array; and

in response to the received command, the CMOS logic is configured to:

identify the compression ratio that is associated with the stored compressed data to be decompressed;

cause the PCA to use the identified compression ratio as a reference for decompressing the stored compression data to generate a decompressed data; and

send the decompressed data to the memory controller.

11 . The apparatus of claim 10 , wherein memory controller is configured to store the decompressed data in the first volatile RAM array.

12 . The apparatus of claim 8 , wherein the memory controller is configured to send an interrupt to a host to indicate the storing of the compressed data.

13 . A method, comprising:

receiving, by a complimentary metal oxide semiconductor (CMOS) logic under a volatile random access memory (RAM) array on a memory module, data comprising pages marked as dirty pages from a first portion of the volatile RAM array, wherein the CMOS logic is coupled to the volatile RAM array and includes a page compression accelerator (PCA);

receiving a command at the CMOS logic;

executing the command on the PCA to compress the received data to generate a compressed data;

storing the compressed data to a second portion of the volatile RAM array; and

operating the memory module as main memory for a computing system.

14 . The method of claim 13 , further comprising erasing the data in the first portion of the volatile RAM array in response to the storing of the compressed data in the second portion of the volatile RAM array.

15 . The method of claim 13 , further comprising:

receiving a command from a memory controller that is coupled to the CMOS logic, wherein the command includes moving the stored compressed data from the second portion of the volatile RAM array to the first portion of the volatile RAM array;

executing the command on the PCA to decompress the stored compressed data to generate a decompressed data; and

sending the decompressed data to the memory controller.

16 . The method of claim 13 , wherein the data includes dirty data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2024
From: TIKU, SAIDEEP; KALE, POORNA
To: MICRON TECHNOLOGY, INC.
Reel/Frame 067478/0743 →
Continuity (2)
Provisional Application 63504089 · May 24, 2023
Related Publication 20240393945A1 · Nov 28, 2024
References Cited (5)
US 10691529B2 · Gopal · 2020 [cited by examiner]
US 20070067483A1 · Fallon · 2007 [cited by examiner]
US 20140108700A1 · Li · 2014 [cited by examiner]
“Memory allocation among processes”, https://developer.android.com/topic/performance/memory-management, updated Mar. 21, 2023, 6 pages. [cited by applicant]
Li, et al., “RRAM-DNN: An RRAM and Model-Compression Empowered All-Weights-On-Chip DNN Accelerator”, IEEE Journal of Solid-State Circuits, vol. 56, No. 4, Apr. 2021, 11 pages. [cited by applicant]