IP Library Granted Patent US 10,684,948
Granted Patent B2
US 10,684,948 · App. 15/820,352 · Granted Jun 16, 2020

Dual inline memory module

Inventor: Paul Sweere (San Clemente, CA)
Assignee: SANMINA CORPORATION
G06F12/0804G06F3/065G06F3/0619G06F3/0673G06F11/1441G06F11/1658G06F9/4401G06F12/0868G06F2201/805G06F2201/82G06F2212/1032G06F2212/2028
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,684,948
App. No.
15/820,352
Granted
Jun 16, 2020
Kind
B2
Abstract

An apparatus and method for memory backup are disclosed as being operational at a memory module that includes a volatile memory device but which is devoid of a non-volatile memory device. The memory module can emulate operations of a non-volatile memory on the memory module while the memory module is devoid of such non-volatile memory.

Claims (52)

1. A memory module, comprising:

a substrate having an edge interface to couple to a host system;

a backup energy source coupled to the substrate;

a volatile memory device coupled to the substrate, coupled to the backup energy source, and configured to receive data from and transmit data to the host system via the edge interface; and

a controller coupled to the edge interface, the backup energy source, and the volatile memory device, the controller configured to:

emulate operations for non-volatile memory on the memory module, in response to an external host non-volatile memory command, while the memory module is devoid of such non-volatile memory; and

wherein, upon receiving a save command to save data from the volatile memory device to non-volatile memory, the controller is further configured to:

issue a self-refresh command to the volatile memory device to ensure that data is preserved in the volatile memory device; and

issue a save complete response to indicate that data is saved in the non-volatile memory despite the memory module being devoid of non-volatile memory.

2. The memory module of claim 1 , further comprising a clock enable control logic circuit coupled to the controller, the volatile memory device, and the edge interface, wherein the controller causes the clock enable control logic circuit to monitor a host clock enable signal and mask the host clock enable signal and assert a clock enable signal to the volatile memory device when the controller deems the clock enable signal should be asserted.

3. The memory module of claim 1 , wherein, upon receiving an initialization command from the host system to initialize the volatile memory device, the controller is further configured to:

ignore the initialization command if there is data stored from a previous power failure event in the volatile memory device; or

allow an initialization sequence to be performed on the volatile memory device if there is no data retained in the volatile memory device.

4. The memory module of claim 1 , wherein the controller is further configured to identify an assertion of a hardware interrupt signal on the edge interface to detect a start of a power failure event, wherein the hardware interrupt signal is used by a host system to command the memory module to transfer data from the volatile memory device to non-volatile memory despite the memory module being devoid of non-volatile memory.

5. The memory module of claim 1 , wherein after detection of a power failure event the controller is further configured to enter the memory module into a data retention state, wherein the volatile memory device is entered into a self-refresh mode, and the memory module remains in the data retention state until the controller detects a start of a boot sequence initiated by the host system, wherein the controller is further configured to transition the memory module to a data restore state.

6. The memory module of claim 5 , wherein while in the data restore state, the controller is further configured to monitor the host system accesses to the volatile memory device and ensure the volatile memory device is placed in self-refresh in a host-transparent fashion to ensure the data is preserved on the volatile memory device.

7. The memory module of claim 1 , wherein, upon receiving a restore command from the host system to restore data from non-volatile memory to volatile memory, the controller is further configured to:

ignore the restore command; and

issue a restore complete response to indicate that the restore command was executed.

8. A memory module, comprising:

a substrate having an edge interface to couple to a host system;

a backup energy source coupled to the substrate;

a volatile memory device coupled to the substrate, coupled to the backup energy source, and configured to receive data from and transmit data to the host system via the edge interface; and

a controller coupled to the edge interface, the backup energy source, and the volatile memory device, the controller configured to:

emulate operations for non-volatile memory on the memory module, in response to an external host non-volatile memory command, while the memory module is devoid of such non-volatile memory;

wherein, during a power failure event, the controller is further configured to:

hold a clock enable signal low during the power failure event to mask host system control of the clock enable signal to ensure that the volatile memory device remains in a self-refresh mode.

9. A method, operational at a memory module including a volatile memory device but being devoid of non-volatile memory, the method including:

detecting a start of a host system power failure event; and

emulating operations for non-volatile memory on the memory module, in response to an external host non-volatile memory command, while the memory module is devoid of such non-volatile memory;

wherein after detecting a host system power failure event, entering the memory module into a data retention state, wherein the volatile memory device is entered into a self-refresh mode, and the memory module remains in the data retention state until the memory module detects a start of a boot sequence initiated by the host system, wherein the memory module is further configured to transition to a data restore state.

10. The method of claim 9 , wherein the memory module further includes a clock enable control logic circuit, the method further comprising:

causing, by a memory module controller, the clock enable control logic circuit to monitor a host clock enable signal and mask the host clock enable signal and assert a clock enable signal to the volatile memory device when the memory module controller deems the clock enable signal should be asserted.

11. The method of claim 9 , further comprising:

receiving an initialization command from a host system to initialize the volatile memory device, and

ignoring the initialization command if there is data stored from a previous power failure event in the volatile memory device; or

allowing an initialization sequence to be performed on the volatile memory device if there is no data retained in the volatile memory device.

12. The method of claim 9 , further comprising:

receiving a save command to save data from the volatile memory device to non-volatile memory;

issuing a self-refresh command to the volatile memory device to ensure that data is preserved in the volatile memory device; and

issuing a save complete response to indicate that data is saved in the non-volatile memory despite the memory module being devoid of non-volatile memory.

13. The method of claim 9 , further comprising:

holding a clock enable signal low during a host system power failure event to mask host system control of the clock enable signal to ensure that the volatile memory device remains in a self-refresh mode.

14. The method of claim 9 , wherein while in the data restore state, the method further comprising:

monitoring the host system accesses to the volatile memory device and ensuring the volatile memory device is placed in self-refresh in a host-transparent fashion to ensure data is preserved on the volatile memory device.

15. The method of claim 9 , wherein, upon receiving a restore command from a host system to restore data from non-volatile memory to the volatile memory device, the method further comprising:

ignoring the restore command; and

issuing a restore complete response to indicate that the restore command was executed.

16. A method, operational at a memory module including a volatile memory device but being devoid of non-volatile memory, the method including:

detecting a start of a host system power failure event; and

emulating operations for non-volatile memory on the memory module, in response to an external host non-volatile memory command, while the memory module is devoid of such non-volatile memory; and

identifying an assertion of a hardware interrupt signal on an edge interface to detect the start of the host system power failure event, wherein the hardware interrupt signal is used to command the memory module to transfer data from the volatile memory device to non-volatile memory despite the memory module being devoid of non-volatile memory.

Assignments (4)
SECURITY INTEREST Recorded Oct 28, 2025
From: SANMINA CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073363/0212 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2019
From: U.S. BANK NATIONAL ASSOCIATION, SOLELY AS NOTES COLLATERAL AGENT
To: SANMINA CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA; SCI TECHNOLOGY; SENSORWISE, INC.
Reel/Frame 049378/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2018
From: SWEERE, PAUL
To: SANMINA CORPORATION
Reel/Frame 045011/0202 →
SECURITY INTEREST Recorded Feb 2, 2018
From: SANMINA CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, NOT IN ITS INDIVIDUAL CAPACITY BUT SOLELY AS NOTES COLLATERAL AGENT
Reel/Frame 044813/0488 →