1. Technical Field
The present invention relates to data storage systems, and more particularly to storage subsystems in which the contents of a volatile memory are arranged to be preserved in the event of a power failure so as to make the contents of the volatile memory persistent across power failures.
2. Description of Related Art
Many computer systems store data in volatile memories, for example because such memories are usually faster and smaller than nonvolatile storage devices. However, a disadvantage to the use of volatile memories is that the data stored in them is lost if the volatile memory loses power, such as could occur in the event of a power supply failure or interruption.
It is known therefore to provide in such systems a means for preserving data stored in the volatile memory in the event of a power supply failure or interruption. This could comprise, e.g., a backup power supply, such as a battery, for the volatile memory. In other arrangements, the storage system is operable to dump the contents of the volatile memory to a nonvolatile memory in the event that a power failure is detected using an auxiliary or backup power supply such as a battery. This preserves the data in the volatile memory and allows it to be retrieved from where it was “dumped” to once power is restored. U.S. Pat. No. 5,748,844 describes one such prior art system.
Such “protected” volatile memory is often referred to as “persistent” memory.
In such persistent memory arrangements, there will typically be a finite capacity of data in the volatile memory that can be preserved in the event of a power supply failure or interruption, i.e. the volume of persistent memory will be restricted. This could be because, for example, the volatile memory has a data capacity that is larger than the amount of data that can be “dumped” to a nonvolatile memory using the provided temporary power supply (which may be desirable in some circumstances, such as, for example, where a relatively large volatile memory capacity is required, but not all the data stored in the volatile memory at any given time may need to be preserved across power interruptions).
In such arrangements, data stored in the volatile memory is typically therefore denoted as either being data that should be preserved (e.g. written to a nonvolatile memory) in the event of a power interruption, or as data that does not need to be so preserved. Data that will be preserved in the event of a power interruption is typically referred to as “hardened” data (with the data that does not need to be preserved then being “soft” data). The marking of data as being “hardened” data is usually done, e.g., by firmware in a storage subsystem controller. When a power interruption is detected, the data marked as “hardened” is then preserved, e.g. by transferring it to a nonvolatile memory.
Thus, typically, in a persistent memory arrangement, the volatile memory will contain some data that is “hardened”, i.e. to be preserved when a power failure or interruption occurs, and other data that is “soft”, i.e. that will be lost when a power failure or interruption occurs. There will also typically be a maximum amount of hardenable data that can be stored in the volatile memory (i.e. persistent memory capacity).