Data storage system with persistent volatile memory across power failures
First Claim
1. An apparatus for use in a data storage subsystem comprising:
- a volatile memory;
a nonvolatile memory;
a temporary power supply;
processing logic that;
detects an interruption in the power supply to the volatile memory;
in the event of such detection, performs the steps of;
determines an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power;
calculates an amount of data stored in the volatile memory that can be written to the nonvolatile memory before the amount of stored power of temporary power supply is depleted; and
writes the calculated amount of data stored in the volatile memory to the nonvolatile memory using the amount of stored power supplied by the temporary power supply.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage adapter for use in a data storage subsystem includes a controlling processor, a volatile memory, and a nonvolatile memory “dump device.” The storage adapter also includes a battery that can be used to provide sufficient power to the storage adapter to allow data from the volatile memory to be written to the nonvolatile memory of the storage adapter under the control of the processor in the event of an interruption or failure in the main power supply to the storage adapter, i.e. to preserve data stored in the volatile memory in that event. The processor uses the current state of charge of the battery to determine the amount of data that can be “dumped” to the nonvolatile dump device before the battery is depleted.
-
Citations
20 Claims
-
1. An apparatus for use in a data storage subsystem comprising:
-
a volatile memory; a nonvolatile memory; a temporary power supply; processing logic that; detects an interruption in the power supply to the volatile memory; in the event of such detection, performs the steps of; determines an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power; calculates an amount of data stored in the volatile memory that can be written to the nonvolatile memory before the amount of stored power of temporary power supply is depleted; and writes the calculated amount of data stored in the volatile memory to the nonvolatile memory using the amount of stored power supplied by the temporary power supply. - View Dependent Claims (2, 3)
-
-
4. An apparatus for a data storage subsystem comprising:
-
a volatile memory; a nonvolatile memory; a temporary power supply for temporarily supplying power to the apparatus in the event of a main power supply interruption; processing logic that; determines an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power; denotes data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of the main power supply interruption; and calculates a permitted amount of data that can be stored in the volatile memory and that can be denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the determined state of the temporary power supply, wherein data that should be written is hardened data, wherein hardened data is data that has been predetermined to persist in the event of the main power supply interruption. - View Dependent Claims (5, 6)
-
-
7. An apparatus for a data storage subsystem comprising:
-
a volatile memory; a nonvolatile memory; a power supply for temporarily supplying power to the apparatus in the event of a main power supply interruption; processing logic that; determines an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power; denotes data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of the main power supply interruption; sets a permitted amount of data stored in the volatile memory that can be denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the determined state of the temporary power supply; compares the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the set permitted amount of such data; where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the permitted amount of such data that has been set, prevents the writing of any new data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption, while the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption exceeds the set permitted amount of such data, and wherein access to memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is given preferentially to firmware client components of the storage subsystem that require such data storage to ensure data integrity; controls the storage in the volatile memory of data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory; and allocates memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory. - View Dependent Claims (8, 9)
-
-
10. A method of operating a data storage subsystem comprising a volatile memory, a nonvolatile memory, and a temporary power supply for supplying temporary power to the storage subsystem after the interruption of the power supply to the subsystem, in which in the event of the detection of an interruption of the power supply to the volatile memory, data from the volatile memory is written to the nonvolatile memory using power supplied from the temporary power supply, the method comprising:
-
determining an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power; and calculating an amount of data stored in the volatile memory that can be written to the nonvolatile memory using the amount of stored power supplied by the temporary power supply on the basis of the determined state of the temporary power supply and controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the ability of a or more than one of the client components to reduce the amount of data that it or they have stored in the volatile memory that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory.
-
-
11. A computer program product, residing on a computer usable storage medium, for use with operating a data storage subsystem comprising a volatile memory, a nonvolatile memory, and a temporary power supply, in which in the event of the detection of an interruption of the power supply to the volatile memory, data from the volatile memory is written to the nonvolatile memory using power supplied from the temporary power supply, the computer program product having a plurality of instructions embodied therein, wherein the plurality of instructions, when executed by a processing device, causes a data processing system to perform the following steps:
-
determine an amount of stored power of the temporary power supply, wherein the amount of stored power is a relative amount of power greater than zero up to a larger amount of power; and calculate the amount of data stored in the volatile memory that can be written to the nonvolatile memory using power supplied by the temporary power supply on the basis of the determined state of the temporary power supply. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification