IP Library Granted Patent US 10,877,544
Granted Patent B2
US 10,877,544 · App. 14/994,065 · Granted Dec 29, 2020

Memory management system with backup system and method of operation thereof

Inventor: Amir Alavi (Aliso Viejo, CA)
Assignee: SMART Modular Technologies, Inc.
G06F1/3225G06F1/30G06F11/1402G06F12/0246G06F13/28G06F2212/1032G06F2212/401G11C5/141G11C7/24G11C16/10G11C2207/102
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 10,877,544
App. No.
14/994,065
Granted
Dec 29, 2020
Kind
B2
Abstract

An memory management system with backup system, and a method of operation of a memory management system with backup system thereof, including: a memory module controller for detecting a power failure condition, the memory module controller including a nonvolatile memory controller; a compression controller integrated within the nonvolatile memory controller for receiving a data block from volatile memory; a compression engine within the compression controller for compressing the data block to form a compressed data block; and a sequencer for writing the compressed data block to nonvolatile memory.

Claims (72)

1. A method of operation of a memory management system with backup system comprising:

accessing a volatile memory in a memory module from an external host controller when a memory module controller for the memory module is in standby mode, the memory module controller including a volatile memory controller and a nonvolatile memory controller in the memory module;

initiating a direct memory access (DMA) transfer for a first data block and a second data block of the volatile memory in the memory module to a DMA buffer in the nonvolatile memory controller, upon detection of a power failure condition at a host;

reading the DMA buffer with a compression controller integrated within the nonvolatile memory controller, the compression controller compressing data blocks using a one kilobyte (KB) compression buffer of the compression controller and storing each compressed one KB data block in the non-volatile memory;

compressing the first data block to form a first compressed data block using a first compression algorithm;

copying the first compressed data block to the page buffer in the nonvolatile memory controller;

configuring the compression controller dynamically to use a second compression algorithm;

compressing the second data block to form a second compressed data block using the second compression algorithm;

filling a page buffer until full with the second compressed data block, the second compressed data block in the page buffer padded to align the page buffer with a page size of the non-volatile memory;

calculating an error correction information for the page buffer having the first compressed data block and the second compressed data block;

writing the page buffer to a nonvolatile memory on the memory module; and

powering the volatile memory, the non-volatile memory, and the compression controller from a power source on the memory module, the power source having a number of super capacitors, the number of super capacitors selected to provide enough power to transfer all data from the volatile memory to the non-volatile memory using the compression controller.

2. The method as claimed in claim 1 wherein compressing the first data block includes compressing the first data block using the first compression algorithm selected based on a data type of the first data block.

3. The method as claimed in claim 1 wherein initiating the direct memory access includes detecting a loss of power from a power source.

4. The method as claimed in claim 1 wherein compressing the first data block includes:

determining a compressibility ratio of the first data block; and

choosing the first compression algorithm based on the compressibility ratio of the first data block with a compression engine within the compression controller.

5. The method as claimed in claim 1 wherein compressing the first data block includes:

determining a compressibility ratio of the first data block; and

disabling compression based on the compressibility ratio of the first data block being below a compressibility threshold.

6. A method of operation of a memory management system with backup system comprising:

accessing a volatile memory in a memory module from an external host controller when a memory module controller for the memory module is in standby mode, the memory module controller including a volatile memory controller and a nonvolatile memory controller in the memory module;

initiating a direct memory access (DMA) transfer for a first data block and a second data block of the volatile memory in the memory module to a DMA buffer in the nonvolatile memory controller in the memory module, upon detection of a power failure condition at a host;

transferring the first data block of the DMA buffer to a compression controller integrated within the nonvolatile memory controller, the compression controller compressing data blocks using a one kilobyte (KB) compression buffer of the compression controller and storing each compressed one KB data block in the non-volatile memory;

determining a compressibility ratio of the first data block;

choosing a compression algorithm based on the compressibility ratio of the first data block with a compression engine within the compression controller;

compressing the data block to form a first compressed data block using a first compression algorithm;

copying the first compressed data block to the page buffer;

compressing the second data block to form a second compressed data block using a second compression algorithm;

filling a page buffer until full with the second compressed data block, the second compressed data block in the page buffer padded to align the page buffer with a page size of the non-volatile memory;

calculating an error correction information for the page buffer having the first compressed data block and the second compressed data block;

writing the page buffer to a nonvolatile memory on the memory module; and

powering the volatile memory, the non-volatile memory, and the compression controller from a power source on the memory module, the power source having a number of super capacitors, the number of super capacitors selected to provide enough power to transfer all data from the volatile memory to the non-volatile memory using the compression controller.

7. The method as claimed in claim 6 wherein the volatile memory, the nonvolatile memory, and the compression controller are powered only by the power source on the memory module after detecting the power failure condition.

8. The method as claimed in claim 6 further comprising writing the first compressed data block to the page buffer.

9. The method as claimed in claim 6 further comprising:

writing the first compressed data block to the page buffer; and

transferring the first compressed data block to an ECC controller.

10. The method as claimed in claim 6 further comprising:

writing the first compressed data block to the page buffer;

transferring the first compressed data block to an ECC controller; and

adding error correction information to the first compressed data block.

11. A memory management system with backup system comprising:

a memory module including:

a memory module controller for detecting a power failure condition at a host;

a volatile memory coupled to the memory module controller with a volatile memory controller; the volatile memory accessible from an external host controller,

a non-volatile memory coupled to the memory module controller with a nonvolatile memory controller,

a direct memory access (DMA) buffer for receiving a DMA transfer from a first data block and a second data block;

a compression engine within a compression controller for compressing the first data block to form a first compressed data block and the second data block to form a second compressed data block, the compression controller compressing data blocks using a one kilobyte (KB) compression buffer of the compression controller and storing each compressed one KB data block in the non-volatile memory, the first data block compressed with a first compression algorithm, the second data block compressed with a second compression algorithm, and filling a page buffer until full with the second compressed data block, and padding the page buffer to align with a page size of the non-volatile memory before writing the page buffer to a nonvolatile memory on the memory module;

an error correction code (ECC) controller of the non-volatile memory controller for calculating an error correction information for the page buffer having the first compressed data block and the second compressed data block;

a power source on the memory module, the power source having a number super capacitors, the number of super capacitors selected to provide enough power to transfer all data from the volatile memory to the non-volatile memory using the compression controller; and

a sequencer for writing the page buffer to the nonvolatile memory.

12. The system as claimed in claim 11 further comprising the compression buffer within the compression controller for compressing the first data block based on a data type of the first data block.

13. The system as claimed in claim 11 wherein the nonvolatile memory controller is within the memory module controller.

14. The system as claimed in claim 11 wherein the compression engine is for:

determining a compressibility ratio of the first data block; and

choosing a compression algorithm based on the compressibility ratio of the first data block.

15. The system as claimed in claim 11 wherein:

the compression engine is for determining a compressibility ratio of the first data block; and

the compression controller is for disabling compression based on the compressibility ratio of the first data block being below a compressibility threshold.

16. The system as claimed in claim 11 wherein

the compression buffer is within the compression controller; and

wherein:

the compression engine is for determining a compressibility ratio of the first data block, and choosing a compression algorithm based on the compressibility ratio of the first data block.

17. The system as claimed in claim 16 wherein the volatile memory, the nonvolatile memory, and the compression controller are powered only by the power source on the memory module after detecting the power failure condition.

18. The system as claimed in claim 16 further comprising the page buffer coupled to the compression controller.

19. The system as claimed in claim 16 further comprising:

the page buffer coupled to the compression controller; and

the ECC controller coupled to the page buffer.

20. The system as claimed in claim 16 further comprising:

the page buffer coupled to the compression controller; and

the ECC controller coupled to the page buffer and the sequencer.

Assignments (8)
PATENT SECURITY AGREEMENT Recorded Jun 30, 2025
From: CREELED, INC.; PENGUIN SOLUTIONS CORPORATION (DE); SMART EMBEDDED COMPUTING, INC.; SMART HIGH RELIABILITY SOLUTIONS LLC; SMART MODULAR TECHNOLOGIES, INC.; PENGUIN COMPUTING, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071755/0001 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 058983/0001 Recorded Jun 25, 2025
From: CITIZENS BANK, N.A.
To: SMART MODULAR TECHNOLOGIES, INC.; SMART EMBEDDED COMPUTING, INC.; SMART HIGH RELIABILITY SOLUTIONS LLC; CREELED, INC.
Reel/Frame 071725/0207 →
RELEASE OF SECURITY INTEREST Recorded Feb 7, 2022
From: BANK OF AMERICA, N.A., AS AGENT
To: SMART MODULAR TECHNOLOGIES, INC.
Reel/Frame 058913/0385 →
RELEASE OF SECURITY INTEREST AT REEL 043495 FRAME 0397 Recorded Feb 7, 2022
From: BARCLAYS BANK PLC
To: SMART MODULAR TECHNOLOGIES, INC.
Reel/Frame 058963/0479 →
SECURITY INTEREST Recorded Feb 7, 2022
From: SMART MODULAR TECHNOLOGIES, INC.; SMART HIGH RELIABILITY SOLUTIONS, LLC; SMART EMBEDDED COMPUTING, INC.; CREELED, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 058983/0001 →
SECURITY INTEREST Recorded Dec 23, 2020
From: SMART MODULAR TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 054738/0855 →
SECURITY AGREEMENT Recorded Aug 9, 2017
From: SMART MODULAR TECHNOLOGIES, INC.
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
Reel/Frame 043495/0397 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2016
From: ALAVI, AMIR
To: SMART MODULAR TECHNOLOGIES, INC.
Reel/Frame 037469/0926 →