Redundant backup using non-volatile memory
First Claim
1. In a host computer memory system having a volatile memory subsystem, a non-volatile memory subsystem, and a controller for managing the non-volatile subsystem, a method for redundantly backing up the volatile memory subsystem, the method comprising:
- detecting a trigger condition;
decoupling the volatile memory subsystem from the host computer based on the detected trigger condition;
using the controller to communicate one or more blocks of data from the volatile memory subsystem to the non-volatile memory subsystem while the volatile memory subsystem is decoupled from the host computer; and
redundantly storing said communicated one or more blocks of data in the non-volatile memory subsystem, said redundantly storing including;
writing to a first channel of the non-volatile memory subsystem a first copy of the one or more blocks of data; and
writing to a second channel of the non-volatile memory subsystem a second copy of the one or more blocks of data.
3 Assignments
0 Petitions
Accused Products
Abstract
Data stored in a volatile memory subsystem is backed up redundantly into first and second channels of a non-volatile memory subsystem. The data is retrieved from the volatile memory subsystem upon detection of a trigger condition indicative of real or imminent power loss or reduction and multiple copies are stored in dedicated non-volatile memory channels. The stored copies may be error checked and corrected, and re-written if necessary. The redundantly backed up data can be subsequently retrieved from the non-volatile memory subsystem, error-corrected, and an error-free copy communicated to the volatile memory subsystem.
-
Citations
22 Claims
-
1. In a host computer memory system having a volatile memory subsystem, a non-volatile memory subsystem, and a controller for managing the non-volatile subsystem, a method for redundantly backing up the volatile memory subsystem, the method comprising:
-
detecting a trigger condition; decoupling the volatile memory subsystem from the host computer based on the detected trigger condition; using the controller to communicate one or more blocks of data from the volatile memory subsystem to the non-volatile memory subsystem while the volatile memory subsystem is decoupled from the host computer; and redundantly storing said communicated one or more blocks of data in the non-volatile memory subsystem, said redundantly storing including; writing to a first channel of the non-volatile memory subsystem a first copy of the one or more blocks of data; and writing to a second channel of the non-volatile memory subsystem a second copy of the one or more blocks of data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for restoring to a volatile memory subsystem data that is redundantly-backed up in first and second channels of a non-volatile memory subsystem, the method comprising:
-
retrieving a first copy of the data from the first channel of the non-volatile memory subsystem; retrieving a second copy of the data from the second channel of the non-volatile memory subsystem; error-checking the first and second copies; communicating an error-free copy to the volatile memory subsystem, the error-free copy being generated using any one of (i) the retrieved first copy, (ii) the retrieved second copy, or (iii) a recovered error-free copy, wherein the recovered error-free copy is generated by correcting one or more data errors using data from any one of the first and second copies; and replacing at least one of the first and second copies with the error-free copy. - View Dependent Claims (9, 10, 11)
-
-
12. A memory system comprising:
-
a non-volatile memory subsystem; a volatile memory subsystem couplable to a host; and a switching circuit operable to decouple the volatile memory subsystem from the host and to couple the volatile memory to the non-volatile memory subsystem based on a trigger condition, wherein the non-volatile memory subsystem includes; a first set of one or more memory elements; a second set of one or more memory elements; and a controller coupled to the first and second sets of memory elements and configured to operate the first set as a first channel to which a first copy of one or more blocks of data from the volatile memory subsystem is written in response to the trigger condition, and to operate the second set as a second channel to which a second copy of the one or more blocks of data from the volatile memory subsystem is written in response to the trigger condition. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A memory system comprising:
-
a volatile memory subsystem couplable to a host; and a non-volatile memory subsystem, the non-volatile memory subsystem including; a first set of one or more memory elements; a second set of one or more memory elements; and a controller coupled to the first and second sets of memory elements and configured to operate the first set as a first channel in which a first copy of one or more blocks of data from the volatile memory subsystem is backed up, and to operate the second set as a second channel in which a second copy of the one or more blocks of data from the volatile memory subsystem is backed up, and to retrieve and error-check the first and second copies, and communicate an error-free copy of the first and second copies to the volatile memory subsystem. - View Dependent Claims (20, 21, 22)
-
Specification