WO2002017077A1 - Method and apparatus for transferring data between a non-volatile memory module and a storage device - Google Patents

Method and apparatus for transferring data between a non-volatile memory module and a storage device Download PDF

Info

Publication number
WO2002017077A1
WO2002017077A1 PCT/US2000/034257 US0034257W WO0217077A1 WO 2002017077 A1 WO2002017077 A1 WO 2002017077A1 US 0034257 W US0034257 W US 0034257W WO 0217077 A1 WO0217077 A1 WO 0217077A1
Authority
WO
WIPO (PCT)
Prior art keywords
volatile memory
storage device
memory module
voltage level
controller
Prior art date
Application number
PCT/US2000/034257
Other languages
French (fr)
Inventor
Amnon Strasser
Original Assignee
Exanet Co.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Exanet Co. filed Critical Exanet Co.
Priority to AU2001230751A priority Critical patent/AU2001230751A1/en
Publication of WO2002017077A1 publication Critical patent/WO2002017077A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Definitions

  • Provisional Application Serial No. 60/227,379 filed on August 24, 2000, pursuant to 35 U.S.C. ⁇ 111(b).
  • the Provisional Application Serial No. 60/227,379 is incorporated herein by reference for all it discloses.
  • the present invention relates to a method and apparatus for transferring data in a non-volatile write cache architecture, and more particularly, to a method and apparatus for transferring data between a nonvolatile memory module and a storage device.
  • Non-volatile memory modules In a client/server environment, it is often required that write transactions cached by a server are kept in non-volatile memory until transferred to stable storage.
  • Non-volatile memory modules usually require batteries or any other uninterruptible power supply for proper operation. In conventional systems, either the non-volatile memory module battery supplies power all the time, regardless of changes in system power, or the non-volatile
  • a conventional non- volatile memory module including a central processing unit 1, a non- volatile memory 2, a main storage
  • a battery or other uninterruptible power supply backs up the non-volatile memory. Because the battery backing up the non-volatile memory is not under any control, except possibly being
  • the non-volatile memory always remains powered up.
  • the longer the battery is required to stay on before system power is restored the more the life of the battery will be shortened. K the battery is
  • the invention has been made in view of the above circumstances and to overcome the above problems and limitations of the prior art.
  • non-volatile memory module and a stable storage device that does not require a battery for data retention.
  • a non-volatile memory According to an aspect of the invention, a non-volatile memory
  • module can be implemented such that it consists of a battery backed up memory and a stable storage device that does not require a battery for data
  • battery power can be used to transfer the battery
  • non-volatile memory module i.e., a volatile memory module backed up by battery
  • the non-volatile write cache transfers
  • non-volatile write cache is used to ensure that the data is not lost because of power failure or a system
  • the non-volatile write cache can be an integral part of a computer
  • the non-volatile write cache Upon power fail, the non-volatile write cache will transfer its memory
  • the non-volatile write cache will be restored from the designated disk and the operation can be continued. This mechanism maintains the data integrity
  • the battery size in terms of dimension and power capacity can be reduced and the total capacity of the non-volatile write cache can be reduced.
  • each memory device is powered by its own uninterruptible power supply, which can be shut down
  • a computer system comprises a plurality of non-volatile memory modules, called a redundant array of inexpensive non-volatile memories, and a plurality of storage nodes,
  • Each of the storage nodes comprises a storage device and a controller. This aspect of the invention provides enhanced reliability and fault tolerance,
  • Each of the plurality of non- volatile memory sub-systems comprises
  • At least one memory device at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one memory device, an uninterruptible power supply connected to at least one
  • At least one memory device a storage device connected to at least one memory
  • FIG. 1 illustrates a block diagram of a conventional non-volatile memory module
  • FIG. 2 illustrates a block diagram of a non-volatile memory module
  • FIG. 3 illustrates a block diagram of a non-volatile memory module
  • FIG. 4 illustrates a block diagram of a non-volatile memory module
  • FIG. 5 illustrates a block diagram of a non-volatile memory module with a system processing unit
  • FIG. 6 illustrates a block diagram of a non-volatile memory module with an external processing unit backed up by the uninterruptible power
  • FIG. 7 illustrates a block diagram of a non-volatile memory module
  • FIG. 8 illustrates a block diagram of a non-volatile memory module
  • an embedded micro-controller including a plurality of memory devices
  • FIG. 9 illustrates a block diagram of a non-volatile memory module, including a plurality of memory devices, each of which shares the same stable storage, but has its own uninterruptible power supply;
  • FIG. 10 illustrates a block diagram of a memory system including a plurality of non-volatile memory modules, each with its own embedded micro ⁇
  • controller uninterruptible power supply, stable storage, and main storage
  • FIG. 11 illustrates a block diagram of a memory system including a
  • non- volatile memory system connected to three storage nodes
  • FIG. 12 illustrates a flow chart of a method of transferring data from
  • non-volatile memory to stable storage in accordance with an aspect of the
  • FIGS. 13A and 13B illustrate a flow chart of a method of transferring
  • FIG. 14 illustrates a flow chart of a method of transferring data from
  • computer system includes at least a memory and a processor.
  • the memory will store, at one time or another, at least portions of executable program code, and the processor will execute one or more of the instructions included in that executable program code.
  • predetermined operations the term "computer system software,” and the term “executable code” mean substantially the same thing for the purposes of this description. It is not necessary to the practice of this invention that the memory and the processor be physically located in the same place. That is to say, it is foreseen that the processor and the memory might be in different physical pieces of equipment or even in geographically distinct locations.
  • media or “computer-readable media” may include a diskette, a tape, a compact disc, an integrated circuit, a cartridge, a remote transmission via a communications circuit, or any other similar medium useable by computers.
  • the supplier might provide a diskette or might transmit the instructions for performing predetermined operations in some form via satellite transmission, via a direct telephone link, or via the Internet.
  • bearing is intended to encompass the above and all equivalent ways in which instructions for performing predetermined operations are associated with a computer usable medium.
  • program product is hereafter used to refer to a computer useable medium, as defined above, which bears instructions for performing predetermined operations in any form.
  • FIG. 2 a block diagram of a non- volatile memory module, according to an aspect of the invention, is illustrated.
  • a non- volatile memory 5, a stable storage 7 and a main storage 3 are all connected together.
  • An uninterruptible power supply 6 is connected to and supplies power to the nonvolatile memory 5 and the stable storage 7.
  • a microcontroller 8, which controls the data transfer between the non-volatile memory 5 and the stable storage 7, is embedded in the non- volatile memory 5. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the nonvolatile memory 5 onto the stable storage 7.
  • FIG. 3 another aspect of the invention is illustrated, which is similar to FIG. 2, except that in FIG. 3 a processing unit 10 is embedded in the non-volatile memory 9 and controls the data transfer, instead of a microcontroller 8. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non-volatile memory 9 onto the
  • FIG. 4 another aspect of the invention is illustrated.
  • FIG. 4 is a diagrammatic representation of FIG.
  • FIG. 4 is similar to FIGS. 2 and 3, except that the non- volatile memory 12 does not include an embedded processing unit 10 or an embedded microcontroller 8, and FIG. 4 includes a disk controller 11 connected to the stable storage 7 and
  • the disk controller 11 is backed up by the uninterruptible power supply 6.
  • uninterruptible power supply 6 can be used to transfer the non-volatile memory 12 onto the stable storage 7.
  • uninterruptible power supply 6 can be used to transfer the non-volatile memory 12 onto the stable storage 7.
  • FIG. 5 illustrates another aspect of the invention, which includes a system processing unit 14, which is connected to the non- volatile memory 12,
  • the system processing unit 14 controls the data transfer. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non- volatile memory 12 onto the stable storage 7. When the transfer operation is completed, uninterruptible power supply power is no longer required to maintain the data stored in the non-volatile memory;
  • the power can optionally be disconnected to prolong uninterruptible power supply life.
  • FIG. 7 is similar to FIG. 6, except that the external system processing
  • unit 14 of FIG. 7 has its own external uninterruptible power supply 6a for power back up. Upon power loss, power from the uninterruptible power
  • the power can optionally be disconnected to prolong uninterruptible power supply life.
  • FIG. 8 illustrates a non-volatile memory module with a plurality of memory devices that all share the same uninterruptible power supply and stable storage.
  • An uninterruptible power supply 6 is connected to and supplies power to the non-volatile memory 5 and the stable
  • a microcontroller 8 which controls the
  • volatile memory 5 and the stable storage 7 is embedded in the non- volatile memory 5.
  • power from the uninterruptible power supply 6 can be used to transfer the non- volatile memory 5 onto the stable storage 7.
  • the power can optionally be disconnected to prolong uninterruptible power supply life.
  • the power can optionally be disconnected to prolong uninterruptible power supply life.
  • FIG. 9 illustrates another aspect of the invention in which each memory device has its own uninterruptible power supply, which can be shut off independently.
  • a non-volatile memory 16 a stable storage 7 and a main memory
  • An uninterruptible power supply 6 is
  • a microcontroller 8 which controls the data transfer between the memory devices (MDl-MDn) 13a-13n of the non- volatile memory 5 and the stable storage 7, is embedded in the non-volatile
  • each uninterruptible power supply l4a-14n can be shut off individually and sequentially after each memory device is transferred, rather than shutting off a single uninterruptible power supply for all of the memory
  • FIG. 10 shows another aspect of the invention including a plurality of
  • non-volatile memory modules called a redundant array of inexpensive non-volatile memory
  • each of the non-volatile memory modules 25a-25n, the microcontrollers 28a-28n, the stable storage devices 27a-27n, and the main storage devices 23a-23n operate
  • Each non-volatile memory module is connected to the other
  • this aspect of the invention provides
  • the memory system of FIG. 11 comprises a non- volatile memory
  • the main storage nodes comprises a processing unit 32 and a main storage
  • This arrangement allows for transfer of data to a plurality of main
  • FIG. 12 shows a flow chart of a method of transferring data, according to an aspect of the invention.
  • the method determines whether the system voltage is below a certain predetermined level. If the system voltage is
  • the method returns to S100. If the
  • the non- volatile memory power supply is turned off to prolong the non-volatile memory power supply life.
  • FIGS. 13A and 13B show a flow chart of a method of transferring data
  • the data transfer from the first non- volatile memory module is complete. If all the data has not been transferred yet, the method returns to S202. If the data
  • FIG. 14 shows a flow chart of a method of transferring data, according
  • the data is transferred to non- volatile memory in S303. If the data is not
  • the computer program product comprises software instructions for
  • predetermined operations of the computer program product determine if a
  • the predetermined operations flush data from the non- volatile memory to the
  • the predetermined level that is used is a voltage level
  • the computer program product also comprises predetermined operations that
  • the computer program product also detects a restoration of system
  • the predetermined operations of the computer program product determine if
  • the voltage level of the computer system is above the predetermined level following a shutdown of the uninterruptible power supply.
  • predetermined level is the voltage level that is appropriate for the application.
  • the computer program product Based on a determination if the voltage level is above the predetermined level, the computer program product includes predetermined operations that turn on the uninterruptible power supply if the voltage level is above the
  • the computer program product further includes predetermined
  • a voltage level being
  • the predetermined operations can be
  • operations can transfer the data from the storage device to a main storage
  • the predetermined operations can transfer the data from the
  • non-volatile memory comprises a plurality of memory devices
  • each memory device is transferred to the storage device.
  • the computer system comprises software means for determining if a voltage level of the computer system is less than a predetermined level.
  • the predetermined voltage level is determined by the application.
  • the computer system further comprises software means for, if the
  • the computer system further comprises software means for turning off the uninterruptible power supply of
  • the non- volatile memory module Based on a determination if the voltage
  • the computer system further includes
  • the computer system further includes software means that transfer the
  • a voltage level that is above a predetermined level triggers all these data transfers.
  • the software means can transfer the data back to the non-volatile memory.
  • the software means can transfer the data from the storage
  • the software means can transfer the data from the storage device to a processing unit memory.
  • the software means of the computer system are further configured to transfer the data to the storage device in sequential fashion.
  • the software means sequentially transfer data from each of the memory devices comprising the non-volatile memory to the storage device.
  • the software means sequentially shut off power to each of the memory devices after each memory device is transferred to the storage device.
  • an executable program for a computer system for transferring data between a non-volatile memory module and a storage device.
  • the executable program comprises a first executable code portion which, when executed on a computer, determines if a voltage level of the computer system is less than a predetermined level. As described earlier, this voltage level is selected on the basis of the application. Typically, this level is non-zero.
  • the executable program further comprises a second executable code portion which, when executed on a computer, if it determines that the voltage level is less than a predetermined level, transfers data from the non-volatile memory to the storage device.
  • the executable program further comprises a third executable code portion which, when executed on a computer, turns off the
  • the executable program further comprises an executable code portion that turns on the uninterruptible power supply if the voltage level is above the predetermined level. Turning on the
  • the executable program further includes an executable portion that
  • predetermined level triggers all these data transfers.
  • the voltage level being above a predetermined level assumes that the voltage level had previously dropped below that predetermined level and data was transferred from the non-volatile memory.
  • the executable code portion can transfer the data
  • the executable code portion can
  • the executable code portion can transfer the data from the storage device to a processing unit memory.
  • non-volatile memory comprises a plurality of memory devices
  • the executable program further includes and executable code portion
  • the executable code portion configured to transfer the data to the storage device in sequential fashion.
  • the executable code portion sequentially transfers data from each of the memory devices comprising the non-volatile memory to the storage device.
  • the executable code portion sequentially shuts off power to each of the memory devices after each memory device is transferred to the storage device.

Abstract

A method and apparatus for transferring data between a non-volatile memory module (5) and a storage device (7) is provided. The method includes the steps of detecting a loss of system power, writing data from non-volatile memory to the storage device, and turning off the power supply of the non-volatile memory module. The apparatus used to transfer the data includes a memory device, an uninterruptible power supply (6) used to supply back-up power to the non-volatile memory, a storage device connected to the memory device, and a controller (8) to control the transferring of data and powering down and powering up of the power supply.

Description

METHOD AND APPARATUS FOR TRANSFERRING DATA BETWEEN A NON-VOLATILE MEMORY MODULE AND A
STORAGE DEVICE
CROSS-REFERENCES TO RELATED APPLICATIONS
This application is an application filed under 35 U.S.C. § 111(a), claiming benefit pursuant to 35 U.S.C. § 120 of the filing date of the
Provisional Application Serial No. 60/227,379 filed on August 24, 2000, pursuant to 35 U.S.C. § 111(b). The Provisional Application Serial No. 60/227,379 is incorporated herein by reference for all it discloses.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method and apparatus for transferring data in a non-volatile write cache architecture, and more particularly, to a method and apparatus for transferring data between a nonvolatile memory module and a storage device.
2. Description of the Related Art
In a client/server environment, it is often required that write transactions cached by a server are kept in non-volatile memory until transferred to stable storage. Non-volatile memory modules usually require batteries or any other uninterruptible power supply for proper operation. In conventional systems, either the non-volatile memory module battery supplies power all the time, regardless of changes in system power, or the non-volatile
memory module battery supplies power during an entire power failure time
period.
Referring to FIG. 1, a conventional non- volatile memory module, including a central processing unit 1, a non- volatile memory 2, a main storage
device 3 and an uninterruptible power supply 4 is illustrated. In the
conventional module, a processing unit, a non-volatile memory and a main
storage device are connected to each other. A battery or other uninterruptible power supply backs up the non-volatile memory. Because the battery backing up the non-volatile memory is not under any control, except possibly being
controlled to supply power during an entire power failure time period, it
remains on until the battery itself loses power or until power is restored.
Therefore, the non-volatile memory always remains powered up. However, the longer the battery is required to stay on before system power is restored, the more the life of the battery will be shortened. K the battery is
required to maintain power for too long before system power is restored, the
battery can lose power, thereby causing a loss of data stored in the non- volatile
memory.
SUMMARY OF THE INVENTION
The invention has been made in view of the above circumstances and to overcome the above problems and limitations of the prior art.
In order to solve the above problems, it is an object of the present invention to provide a method and apparatus for transferring data between a
non-volatile memory module and a stable storage device that does not require a battery for data retention.
It is another object of the present invention to provide a computer
program product for the above data transfer method.
According to an aspect of the invention, a non-volatile memory
module can be implemented such that it consists of a battery backed up memory and a stable storage device that does not require a battery for data
retention. Upon power loss, battery power can be used to transfer the battery
backed up memory onto the stable storage device. When the transfer
operation is completed, battery power is no longer required to maintain the data stored in the cache; hence, the power can optionally be disconnected to prolong battery life.
For example, it is possible to implement such a non-volatile write
cache mechanism by directing, routing, or trapping all the write requests to a non-volatile memory module (i.e., a volatile memory module backed up by battery) and then writing the data to system disks when appropriate. Thus, the
synchronous write will occur at non-volatile memory speed, not at disk speed.
As the non-volatile write cache fills up, the non-volatile write cache transfers
the data to system disks in portions that are large enough to allow the disk drivers to optimize the order of the writes. Reads that hit or match blocks in the non-volatile write cache can also realize performance benefits since the data does not have to be read from system disks. The non- volatile write cache is used to ensure that the data is not lost because of power failure or a system
crash. The non-volatile write cache can be an integral part of a computer
system or a different entity connected logically by any means to the required
computer system that needs such a beneficial functionality. Upon power fail, the non-volatile write cache will transfer its memory
content into stable storage such as a hard disk or disks, after a controller
determines that the external voltage level is less than or approaching a
predetermined level. After power resumes and the controller determines that
the external voltage level exceeds or is approaching a predetermined level, the non-volatile write cache will be restored from the designated disk and the operation can be continued. This mechanism maintains the data integrity
required by such systems in a transparent manner. By using a disk or disks as
a stable storage, the battery size in terms of dimension and power capacity can be reduced and the total capacity of the non-volatile write cache can be
increased by orders of magnitude.
According to another aspect of the invention, it is also possible to
incrementally shut down memory devices after each one is backed up onto the
stable storage device.
According to another aspect of the invention, each memory device is powered by its own uninterruptible power supply, which can be shut down
independently.
According to another aspect of the invention, a computer system comprises a plurality of non-volatile memory modules, called a redundant array of inexpensive non-volatile memories, and a plurality of storage nodes,
each of which is connected to the plurality of non-volatile memory modules. Each of the storage nodes comprises a storage device and a controller. This aspect of the invention provides enhanced reliability and fault tolerance,
because of the redundancy of the non-volatile memories.
According to another aspect of the invention, a computer system
comprises a plurality of non-volatile memory sub-systems that are connected
together. Each of the plurality of non- volatile memory sub-systems comprises
at least one memory device, an uninterruptible power supply connected to at
least one memory device, a storage device connected to at least one memory
device, and a controller.
Additional aspects and advantages of the invention will be set forth in part in the description that follows and in part will be obvious from the
description, or may be learned by practice of the invention. The aspects and
advantages of the invention may be realized and attained by means of the
instrumentaUties and combinations particularly pointed out in the appended
claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute
a part of this specification illustrate aspects of the invention and, together with the written description, serve to explain the aspects, advantages and principles of the invention. In the drawings, FIG. 1 illustrates a block diagram of a conventional non-volatile memory module;
FIG. 2 illustrates a block diagram of a non-volatile memory module
with an embedded micro-controller;
FIG. 3 illustrates a block diagram of a non-volatile memory module
with an embedded processing unit;
FIG. 4 illustrates a block diagram of a non-volatile memory module
with a disk controller;
FIG. 5 illustrates a block diagram of a non-volatile memory module with a system processing unit;
FIG. 6 illustrates a block diagram of a non-volatile memory module with an external processing unit backed up by the uninterruptible power
supply of the non- volatile memory module;
FIG. 7 illustrates a block diagram of a non-volatile memory module
with an external processing unit backed up by an external uninterruptible power supply;
FIG. 8 illustrates a block diagram of a non-volatile memory module
with an embedded micro-controller, including a plurality of memory devices,
all of which share the same uninterruptible power supply and stable storage; FIG. 9 illustrates a block diagram of a non-volatile memory module, including a plurality of memory devices, each of which shares the same stable storage, but has its own uninterruptible power supply;
FIG. 10 illustrates a block diagram of a memory system including a plurality of non-volatile memory modules, each with its own embedded micro¬
controller, uninterruptible power supply, stable storage, and main storage;
FIG. 11 illustrates a block diagram of a memory system including a
non- volatile memory system connected to three storage nodes;
FIG. 12 illustrates a flow chart of a method of transferring data from
non-volatile memory to stable storage in accordance with an aspect of the
invention;
FIGS. 13A and 13B illustrate a flow chart of a method of transferring
data from non-volatile memory to stable storage, sequentially, in accordance
with an aspect of the invention; and
FIG. 14 illustrates a flow chart of a method of transferring data from
stable storage to non-volatile memory, main memory, or processing unit memory in accordance with an aspect of the invention.
DETAILED DESCRIPTION OF THE INVENTION
Prior to describing the aspects of the invention, some details
concerning the prior art will be provided to facilitate the reader's understanding of the invention and to set forth the meaning of various terms.
As used herein, the term "computer system" encompasses the widest
possible meaning and includes, but is not limited to, standalone processors, networked processors, mainframe processors, and processors in a client/server relationship. The term "computer system" is to be understood to include at least a memory and a processor. In general, the memory will store, at one time or another, at least portions of executable program code, and the processor will execute one or more of the instructions included in that executable program code.
It will be appreciated that the term "predetermined operations," the term "computer system software," and the term "executable code" mean substantially the same thing for the purposes of this description. It is not necessary to the practice of this invention that the memory and the processor be physically located in the same place. That is to say, it is foreseen that the processor and the memory might be in different physical pieces of equipment or even in geographically distinct locations.
As used herein, one of skill in the art will appreciate that "media" or "computer-readable media" may include a diskette, a tape, a compact disc, an integrated circuit, a cartridge, a remote transmission via a communications circuit, or any other similar medium useable by computers. For example, to distribute computer system software, the supplier might provide a diskette or might transmit the instructions for performing predetermined operations in some form via satellite transmission, via a direct telephone link, or via the Internet.
Although computer system software might be "written on" a diskette, "stored in" an integrated circuit, or "carried over" a communications circuit, it
will be appreciated that, for the purposes of this discussion, the computer
usable medium will be referred to as "bearing" the instructions for performing
predetermined operations. Thus, the term "bearing" is intended to encompass the above and all equivalent ways in which instructions for performing predetermined operations are associated with a computer usable medium.
Therefore, for the sake of simplicity, the term "program product" is hereafter used to refer to a computer useable medium, as defined above, which bears instructions for performing predetermined operations in any form.
A detailed description of the aspects of the invention will now be given referring to the accompanying drawings.
Referring to FIG. 2, a block diagram of a non- volatile memory module, according to an aspect of the invention, is illustrated. A non- volatile memory 5, a stable storage 7 and a main storage 3 are all connected together. An uninterruptible power supply 6 is connected to and supplies power to the nonvolatile memory 5 and the stable storage 7. A microcontroller 8, which controls the data transfer between the non-volatile memory 5 and the stable storage 7, is embedded in the non- volatile memory 5. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the nonvolatile memory 5 onto the stable storage 7. When the transfer operation is completed, uninterruptible power supply power is no longer required to maintain the data stored in the non-volatile memory; hence, the power can optionally be disconnected to prolong uninterruptible power supply life. Referring to FIG. 3, another aspect of the invention is illustrated, which is similar to FIG. 2, except that in FIG. 3 a processing unit 10 is embedded in the non-volatile memory 9 and controls the data transfer, instead of a microcontroller 8. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non-volatile memory 9 onto the
stable storage 7. When the transfer operation is completed, uninterruptible
power supply power is no longer required to maintain the data stored in the non-volatile memory; hence, the power can optionally be disconnected to
prolong uninterruptible power supply life.
Referring to FIG. 4, another aspect of the invention is illustrated. FIG.
4 is similar to FIGS. 2 and 3, except that the non- volatile memory 12 does not include an embedded processing unit 10 or an embedded microcontroller 8, and FIG. 4 includes a disk controller 11 connected to the stable storage 7 and
backed up by the uninterruptible power supply 6. The disk controller 11
controls the data transfer. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non-volatile memory 12 onto the stable storage 7. When the transfer operation is completed, uninterruptible
power supply power is no longer required to maintain the data stored in the
non-volatile memory; hence, the power can optionally be disconnected to
prolong uninterruptible power supply life.
FIG. 5 illustrates another aspect of the invention, which includes a system processing unit 14, which is connected to the non- volatile memory 12,
the main storage 3, and the stable storage 7 and is supplied power from the
uninterruptible power supply 6. The system processing unit 14 controls the data transfer. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non- volatile memory 12 onto the stable storage 7. When the transfer operation is completed, uninterruptible power supply power is no longer required to maintain the data stored in the non-volatile memory;
hence, the power can optionally be disconnected to prolong uninterruptible power supply life.
In FIG. 6 the data transfer is controlled by an external system
processing unit 14, which is backed up by the uninterruptible power supply 6
of the non-volatile memory module. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non-volatile
memory 12 onto the stable storage 7. When the transfer operation is
completed, uninterruptible power supply power is no longer required to
maintain the data stored in the non-volatile memory; hence, the power can optionally be disconnected to prolong uninterruptible power supply life.
FIG. 7 is similar to FIG. 6, except that the external system processing
unit 14 of FIG. 7 has its own external uninterruptible power supply 6a for power back up. Upon power loss, power from the uninterruptible power
supply 6 can be used to transfer the non-volatile memory 12 onto the stable storage 7. When the transfer operation is completed, uninterruptible power supply power is no longer required to maintain the data stored in the non¬
volatile memory; hence, the power can optionally be disconnected to prolong uninterruptible power supply life.
FIG. 8 illustrates a non-volatile memory module with a plurality of memory devices that all share the same uninterruptible power supply and stable storage. A non-volatile memory 15, a stable storage 7 and a main
storage 3 are all connected together. An uninterruptible power supply 6 is connected to and supplies power to the non-volatile memory 5 and the stable
storage 7 during a system power loss. A microcontroller 8, which controls the
data transfer between the memory devices (MDl-MDn) 13a-13n of the non¬
volatile memory 5 and the stable storage 7, is embedded in the non- volatile memory 5. Upon power loss, power from the uninterruptible power supply 6 can be used to transfer the non- volatile memory 5 onto the stable storage 7.
When the transfer operation is completed, uninterruptible power supply power
is no longer required to maintain the data stored in the non-volatile memory; hence, the power can optionally be disconnected to prolong uninterruptible power supply life. To further prolong uninterruptible power supply life, the
power to each memory device can be shut off sequentially after each memory
device is transferred.
FIG. 9 illustrates another aspect of the invention in which each memory device has its own uninterruptible power supply, which can be shut off independently. A non-volatile memory 16, a stable storage 7 and a main
storage 3 are all connected together. An uninterruptible power supply 6 is
connected to and supplies power to the non- volatile memory 5 and the stable storage 7 during a system power loss. A microcontroller 8, which controls the data transfer between the memory devices (MDl-MDn) 13a-13n of the non- volatile memory 5 and the stable storage 7, is embedded in the non-volatile
memory 5. The data transfer is performed in the same way as described
above, except each uninterruptible power supply l4a-14n can be shut off individually and sequentially after each memory device is transferred, rather than shutting off a single uninterruptible power supply for all of the memory
devices.
FIG. 10 shows another aspect of the invention including a plurality of
non-volatile memory modules, called a redundant array of inexpensive non-
volatile memories, each of which is connected together. Each of the plurality
of non-volatile memory modules has its own uninterruptible power supply,
stable storage and main storage that comprises a memory system. Each of the non-volatile memory modules 25a-25n, the microcontrollers 28a-28n, the stable storage devices 27a-27n, and the main storage devices 23a-23n operate
as explained above to transfer data and shut off each uninterruptible power
supply 26a-26n. Each non-volatile memory module is connected to the other
non-volatile memory modules through an interconnect 29. Because of the redundancy of the non- volatile memories, this aspect of the invention provides
enhanced reliability and fault tolerance.
The memory system of FIG. 11 comprises a non- volatile memory
system with an uninterruptible power supply 26a, a stable storage 27a, and a non-volatile memory 25a with an embedded microcontroller 28a, and three main storage nodes connected together through an interconnect 29. Each of
the main storage nodes comprises a processing unit 32 and a main storage
device 33. This arrangement allows for transfer of data to a plurality of main
storage devices, rather than to a single main storage device.
FIG. 12 shows a flow chart of a method of transferring data, according to an aspect of the invention. At S100, the method determines whether the system voltage is below a certain predetermined level. If the system voltage is
not below a certain predetermined level, the method returns to S100. If the
system voltage is below the predetermined level, at S102, data is transferred
from non-volatile memory to stable storage. At S103, a determination is made
whether all the data has been transferred to stable storage. If all the data has
been transferred, at S 104 the non- volatile memory power supply is turned off to prolong the non-volatile memory power supply life.
FIGS. 13A and 13B show a flow chart of a method of transferring data,
according to another aspect of the invention. In this method power is turned
off to individual memory devices after each memory device has had its data
transferred to stable storage. Referring to FIG. 13 A, at S200, it is determined if system power is below a predetermined level. In S201, if system power is not below the predetermined level, the method returns to S200. If system
power is below the predetermined level, data is transferred from the first non-
volatile memory module to stable storage at S202. In S203, it is determined if
the data transfer from the first non- volatile memory module is complete. If all the data has not been transferred yet, the method returns to S202. If the data
transfer is complete, the power supplied to the first non-volatile memory module is turned off in S204.
Referring to FIG. 13B, which is a continuation of FIG. 13 A, it is determined in S205 if any non-volatile memory modules are remaining that have not had their data transferred. If not, then the method terminates. If any non-volatile memory modules are remaining, then, in S206, the data is transferred from the next non-volatile memory module to stable storage. If the data transfer is not complete in S207, the method returns to S206. When the
data transfer is complete in S207, the method proceeds to block B, which
returns to S205. With this method, power can be saved by shutting off
individual memory devices as soon as the data has been transferred from them, rather than waiting for the entire non-volatile memory to be transferred from before shutting off power to the memory devices.
FIG. 14 shows a flow chart of a method of transferring data, according
to another aspect of the invention. In S300, system power is restored. In S301, it is determined where data in stable storage is to be transferred. If it is determined that the data is to be transferred back to non-volatile memory in
S302, the data is transferred to non- volatile memory in S303. If the data is not
to be transferred to non- volatile memory, it is determined in S304 if the data is
to transferred to main storage. If it is determined that the data is to be
transferred to main storage, it is transferred to main storage in S305. If the data is not to be transferred to main storage, it is determined in S306 if the
data is to be transferred to processing unit memory. If so, the data is
transferred to processing unit memory in S307. If it is determined that the data is not to be transferred to processing unit memory in S306, the method terminates. Also, after the data is transferred to any of the memories the method terminates.
According to another aspect of the present invention, there is provided
computer program product, in which programs for executing the steps of detecting a loss of system power, writing data from non-volatile memory to
the storage device, and turning off the power supply of the non-volatile
memory module, by computers, are recorded in order to enable a computer
system to transfer data between a non-volatile memory module and a storage device. The computer program product comprises software instructions for
enabling the computer system to perform predetermined operations, and a
computer readable medium bearing the software instructions. The
predetermined operations of the computer program product determine if a
voltage level of the computer system is less than a predetermined level. Based on that determination, if the voltage level is less than a predetermined level,
the predetermined operations flush data from the non- volatile memory to the
storage device. The predetermined level that is used is a voltage level
appropriate for the application. Typically, this voltage level will be non-zero. The computer program product also comprises predetermined operations that
turn off the uninterruptible power supply of the non- volatile memory module.
The computer program product also detects a restoration of system
power to the non-volatile memory module and turning on the power supply.
The predetermined operations of the computer program product determine if
the voltage level of the computer system is above the predetermined level following a shutdown of the uninterruptible power supply. As before, the
predetermined level is the voltage level that is appropriate for the application.
Based on a determination if the voltage level is above the predetermined level, the computer program product includes predetermined operations that turn on the uninterruptible power supply if the voltage level is above the
predetermined level.
The computer program product further includes predetermined
operations that transfer the data that was previously transferred into the
storage device to several different types of memory. A voltage level being
above a predetermined level triggers all these data transfers. The voltage level
being above a predetermined level assumes that the voltage level had
previously dropped below that predetermined level and data was transferred
from the non-volatile memory. First, the predetermined operations can
transfer the data back to the non- volatile memory. Second, the predetermined
operations can transfer the data from the storage device to a main storage
device. Third, the predetermined operations can transfer the data from the
storage device to a processing unit memory.
If the non-volatile memory comprises a plurality of memory devices,
the predetermined operations of the computer program product are further
configured to transfer the data to the storage device. The predetermined
operations sequentially transfer data from each of the memory devices
comprising the non-volatile memory to the storage device. The predetermined
operations sequentially shut off power to each of the memory devices after
each memory device is transferred to the storage device.
According to another aspect of the present invention, there is further
provided a computer system for transferring data between a non-volatile
memory module powered by an uninterruptible power supply and a storage device. The computer system comprises software means for determining if a voltage level of the computer system is less than a predetermined level. As
before, the predetermined voltage level is determined by the application.
Typically, the data transfer would occur before the voltage level had reached
zero volts. The computer system further comprises software means for, if the
voltage level is less than the predetermined level, flushing data from the nonvolatile memory to the storage device. The computer system further comprises software means for turning off the uninterruptible power supply of
the non- volatile memory module. Based on a determination if the voltage
level is above the predetermined level, the computer system further includes
software means that turn on the uninterruptible power supply if the voltage
level is above the predetermined level. Turning on the uninterruptible supply
assumes that the voltage level had dropped below the predetermined level and
data was transferred from the non-volatile storage to a storage device.
The computer system further includes software means that transfer the
data that was previously transferred into the storage device to several different
types of memory. A voltage level that is above a predetermined level triggers all these data transfers. The voltage level being above a predetermined level
assumes that the voltage level had previously dropped below that
predetermined level and data was transferred from the non-volatile memory.
First, the software means can transfer the data back to the non-volatile memory. Second, the software means can transfer the data from the storage
device to a main storage device. Third, the software means can transfer the data from the storage device to a processing unit memory.
If the non- volatile memory comprises a plurality of memory devices, the software means of the computer system are further configured to transfer the data to the storage device in sequential fashion. The software means sequentially transfer data from each of the memory devices comprising the non-volatile memory to the storage device. The software means sequentially shut off power to each of the memory devices after each memory device is transferred to the storage device.
According to another aspect of the present invention, there is further provided an executable program for a computer system for transferring data between a non-volatile memory module and a storage device. The executable program comprises a first executable code portion which, when executed on a computer, determines if a voltage level of the computer system is less than a predetermined level. As described earlier, this voltage level is selected on the basis of the application. Typically, this level is non-zero. The executable program further comprises a second executable code portion which, when executed on a computer, if it determines that the voltage level is less than a predetermined level, transfers data from the non-volatile memory to the storage device. The executable program further comprises a third executable code portion which, when executed on a computer, turns off the
uninterruptible power supply of the non-volatile memory module. The
uninterruptible power supply is shut off after all the data has been transferred
from the non-volatile memory module. Based on a determination if the voltage level is above the predetermined level, the executable program further comprises an executable code portion that turns on the uninterruptible power supply if the voltage level is above the predetermined level. Turning on the
uninterruptible supply assumes that the voltage level had dropped below the
predetermined level and data was transferred from the non- volatile storage to a
storage device.
The executable program further includes an executable portion that
transfers the data that was previously transferred into the storage device to
several different types of memory. A voltage level that is above a
predetermined level triggers all these data transfers. The voltage level being above a predetermined level assumes that the voltage level had previously dropped below that predetermined level and data was transferred from the non-volatile memory. First, the executable code portion can transfer the data
back to the non-volatile memory. Second, the executable code portion can
transfer the data from the storage device to a main storage device. Third, the executable code portion can transfer the data from the storage device to a processing unit memory.
If the non-volatile memory comprises a plurality of memory devices,
the executable program further includes and executable code portion
configured to transfer the data to the storage device in sequential fashion. The executable code portion sequentially transfers data from each of the memory devices comprising the non-volatile memory to the storage device. The executable code portion sequentially shuts off power to each of the memory devices after each memory device is transferred to the storage device.
The foregoing description of the aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The principles of the invention and its practical application were described in order to explain the invention to enable one skilled in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.
Thus, while only certain aspects of the invention have been specifically described herein, it will be apparent that numerous modifications may be made thereto without departing from the spirit and scope of the invention. Further, acronyms are used merely to enhance the readability of the specification and claims. It should be noted that these acronyms are not intended to lessen the generality of the terms used and they should not be construed to restrict the scope of the claims to the embodiments described therein.

Claims

CLAIMS What is claimed is: 1. A non-volatile memory module comprising: at least one memory device; an uninterruptible power supply connected to at least one memory device; and a controller connected to at least one memory device and the uninterruptible power supply.
2. The non- volatile memory module of claim 1, wherein the controller is embedded in the memory device.
3. The non-volatile memory module of claim 1, wherein the controller is a processing unit external to the non-volatile memory module.
4. The non- volatile memory module of claim 1, wherein the controller is a system processing unit external to the non-volatile memory module.
5. The non- volatile memory module of claim 1, wherein the controller is a disk controller.
6. The non- volatile memory module of claim 1, wherein the uninterruptible power supply is a battery.
7. The non- volatile memory module of claim 1, wherein a storage device is connected to at least one memory device, and wherein the controller shuts down the unintermptible power supply after at least one memory device is completely transferred into the storage device.
8. The non- volatile memory module of claim 7, wherein the controller transfers data from at least one memory device into the storage device when the controller determines that an external voltage level is less than a predetermined level.
9. The non- volatile memory module of claim 7, wherein the controller transfers data from at least one memory device into the storage device when the controller determines that an external voltage level is approaching a predetermined level.
10. The non- volatile memory module of claim 7, wherein the controller transfers data previously transferred into the storage device to at least one memory device when the controller determines that an external voltage level exceeds a predetermined level.
11. The non-volatile memory module of claim 7, wherein the controller transfers data previously transferred into the storage device to at least one memory device when the controller determines that an external voltage level is approaching a predetermined level.
12. The non- volatile memory module of claim 1, wherein at least one memory device further comprises a plurality of memory devices.
13. The non- volatile memory module of claim 12, wherein a storage device is connected to the plurality of memory devices, and wherein the controller sequentially transfers data from the plurality of memory devices into the storage device.
14. The non-volatile memory module of claim 13, wherein the controller sequentially shuts off the power to each of the plurality of memory devices after it has been completely transferred into the storage device.
15. The non- volatile memory module of claim 13, wherein the controller transfers data from the plurality of memory devices into the storage device when the controller determines that an external voltage level is less than a predetermined level.
16. The non-volatile memory module of claim 13, wherein the controller transfers data from the plurality of memory devices into the storage device when the controller determines that an external voltage level is approaching a predetermined level.
17. The non-volatile memory module of claim 13, wherein the controller transfers data previously transferred into the storage device to the plurality of memory devices when the controller determines that an external voltage level exceeds a predetermined level.
18. The non- volatile memory module of claim 13, wherein the controller transfers data previously transferred into the storage device to the plurality of memory devices when the controller determines that an external voltage level is approaching a predetermined level.
19. A non- volatile memory module comprising: at least one memory device for storing data; an uninterruptible power supply for supplying power to at least one memory device; and a controller for flushing data from at least one memory device to a storage device.
20. The non-volatile memory module of claim 19, wherein the controller is embedded in at least one memory device.
21. The non- volatile memory module of claim 19, wherein the controller is a processing unit external to the non- volatile memory module.
22. The non-volatile memory module of claim 19, wherein the controller is a system processing unit external to the non-volatile memory module.
23. The non- volatile memory module of claim 19, wherein the controller is a disk controller.
24. The non- volatile memory module of claim 19, wherein the uninterruptible power supply is a battery.
25. The non- volatile memory module of claim 19, wherein a storage device is connected to at least one memory device, and wherein the controller shuts down the uninterruptible power supply after the memory device is completely transferred into the storage device.
26. The non- volatile memory module of claim 25, wherein the controller tiansfers data from at least one memory device into the storage device when the controller determines that an external voltage level is less than a predetermined level.
27. The non-volatile memory module of claim 25, wherein the controller transfers data from at least one memory device into the storage device when the controller determines that an external voltage level is approaching a predetermined level.
28. The non-volatile memory module of claim 25, wherein the controller transfers data previously transferred into the storage device to at least one memory device when the controller determines that an external voltage level exceeds a predetermined level.
29. The non-volatile memory module of claim 25, wherein the controller transfers data previously transferred into the storage device to at least one memory device when the controller determines that an external voltage level is approaching a predetermined level.
30. The non-volatile memory module of claim 19, wherein at least one memory device further comprises a plurality of memory devices.
31. The non- volatile memory module of claim 30, wherein a storage device is connected to the plurality of memory devices, and wherein the controller sequentially transfers data from the plurality of memory devices into the storage device.
32. The non-volatile memory module of claim 30, wherein the controller sequentially shuts off the power to each of the plurality of memory devices after it has been completely transferred into the storage device.
33. The non- volatile memory module of claim 30, wherein the controller transfers data from the plurality of memory devices into the storage device when the controller determines that an external voltage level is less than a predetermined level.
34. The non-volatile memory module of claim 30, wherein the controller transfers data from the plurality of memory devices into the storage device when the controller determines that an external voltage level is approaching a predetermined level.
35. The non-volatile memory module of claim 30, wherein the controller transfers data previously transferred into the storage device to the plurality of memory devices when the controller determines that an external voltage level exceeds a predetermined level.
36. The non-volatile memory module of claim 30, wherein the controller transfers data previously transferred into the storage device to the plurality of memory devices when the controller determines that an external voltage level is approaching a predetermined level.
37. A non-volatile memory module comprising: means for storing data; means for supplying unintermptible power to the means for storing; and means for controlling the means for storing and the means for supplying unintermptible power.
38. The non-volatile memory module of claim 37, wherein the means for controlling is embedded in the means for storing.
39. The non-volatile memory module of claim 37, wherein the means for controlling is a processing unit external to the non-volatile memory module.
40. The non-volatile memory module of claim 37, wherein the means for controlling is a system processing unit external to the non-volatile memory module.
41. The non- volatile memory module of claim 37, wherein the means for controlling is a disk controller.
42. The non-volatile memory module of claim 37, wherein the means for supplying uninterruptible power is a battery.
43. The non-volatile memory module of claim 37, wherein a storage device is connected to the means for storing, and wherein the means for controlling shuts down the means for supplying unintermptible power after the means for storing is completely transferred into the storage device.
44. The non- volatile memory module of claim 43, wherein the means for controlling transfers data from the means for storing into the storage device when the means for controlling determines that an external voltage level is less than a predetermined level.
45. The non- volatile memory module of claim 43, wherein the means for controlling transfers data from the means for storing into the storage device when the means for controlling determines that an external voltage level is approaching a predetermined level.
46. The non- volatile memory module of claim 43, wherein the means for controlling transfers data previously transferred into the storage device to the means for storing when the means for controlling determines that an external voltage level exceeds a predetermined level.
47. The non- volatile memory module of claim 43, wherein the means for controlling transfers data previously transferred into the storage device to the means for storing when the means for controlling determines that an external voltage level is approaching a predetermined level.
48. The non-volatile memory module of claim 37, wherein the means for storing further comprises a plurality of means for storing.
49. The non-volatile memory module of claim 48, wherein a storage device is connected to the plurality of means for storing, and wherein the means for controlling sequentially transfers data from the plurality of means for storing into the storage device.
50. The non-volatile memory module of claim 49, wherein the means for controlling sequentially shuts off the power to each of the plurality of means for storing after it has been completely transferred into the storage device.
51. The non- volatile memory module of claim 49, wherein the means for controlling transfers data from the plurality of means for storing into the storage device when the means for controlling determines that an external voltage level is less than a predetermined level.
52. The non-volatile memory module of claim 49, wherein the means for controlling transfers data from the plurality of means for storing into the storage device when the means for controlling determines that an external voltage level is approaching a predetermined level.
53. The non-volatile memory module of claim 49, wherein the means for controlling transfers data previously transferred into the storage device to the plurality of means for storing when the means for controlling determines that an external voltage level exceeds a predetermined level.
54. The non-volatile memory module of claim 49, wherein the means for controlling transfers data previously transferred into the storage device to the plurality of means for storing when the means for controlling determines that an external voltage level is approaching a predetermined level.
55. A computer system comprising: a plurality of non-volatile memory sub-systems, wherein each non- volatile memory sub-system comprises: at least one memory device; an uninterruptible power supply connected to at least one memory device; a storage device connected to at least one memory device; and a controller; wherein each of the non-volatile memory sub-systems are interconnected.
56. A computer system comprising: at least one non-volatile memory module, comprising: at least one memory device; an uninterruptible power supply connected to at least one memory device; a storage device connected to at least one memory device; and a controller; and a plurality of storage nodes, each of which is connected to at least one non- volatile memory module.
57. The non-volatile memory system of claim 56, wherein each of the plurality of storage nodes comprises: a storage device; and a controller.
58. A method for transferring data between a non- volatile memory module powered by an unintermptible power supply and a storage device in a computer system, comprising: determining if the voltage level of the computer system is less than a predetermined level; based on that determination, if the voltage level is less than a predetermined level, transferring data from the non-volatile memory to the storage device; and turning off the unintermptible power supply of the non-volatile memory module.
59. The method of claim 58, wherein the method further comprises: determining if the voltage level of the computer system is above the predetermined level following a shutdown of the unintermptible power supply; and based on that determination, turning on the uninterruptible power supply if the voltage level is above the predetermined level.
60. The method of claim 59, wherein the method further comprises transferring the data that was transferred into the storage device back to the non- volatile memory if the voltage level is above the predetermined level.
61. The method of claim 59, wherein the method further comprises transferring the data that was transferred into the storage device to a main storage device if the voltage level is above the predetermined level.
62. The method of claim 59, wherein the method further comprises transferring the data that was tiansferred into the storage device to a processing unit memory if the voltage level is above the predetermined level.
63. The method of claim 58, wherein the non- volatile memory comprises a plurality of memory devices and the data is sequentially transferred from each of the memory devices comprising the non-volatile memory to the storage device.
64. The method of claim 63, wherein power to each of the memory devices is sequentially shut off after each memory device is transferred to the storage device.
65. A computer program product for enabling a computer system to transfer data between a non-volatile memory module powered by an uninterruptible power supply and a storage device, the computer program product comprising: software instructions for enabling the computer system to perform predetermined operations, and a computer readable medium bearing the software instructions; the predetermined operations comprising: determining if a voltage level of the computer system is less than a predetermined level; based on that determination, if the voltage level is less than a predetermined level, flushing data from the non- volatile memory to the storage device; and turning off the uninterruptible power supply of the non- volatile memory module.
66. The computer program product of claim 65, wherein the predetermined operations further comprise: determining if the voltage level of the computer system is above the predetermined level following a shutdown of the uninterruptible power supply; and based on that determination, turning on the uninterruptible power supply if the voltage level is above the predetermined level.
67. The computer program product of claim 65, wherein the predetermined operations further comprise transferring the data that was tiansferred into the storage device back to the non-volatile memory if the voltage level is above the predetermined level.
68. The computer program product of claim 65, wherein the predetermined operations further comprise transferring the data that was transferred into the storage device to a main storage device if the voltage level is above the predetermined level.
69. The computer program product of claim 65, wherein the predetermined operations further comprise transferring the data that was transferred into the storage device to a processing unit memory if the voltage level is above the predetermined level.
70. The computer program product of claim 65, wherein the non- volatile memory comprises a plurality of memory devices and the predetermined operations further comprise sequentially transferring data from each of the memory devices comprising the non-volatile memory to the storage device.
71. The computer program product of claim 65, wherein the predetermined operations further comprise sequentially shutting off power to each of the memory devices after each memory device is transferred to the storage device.
72. A computer system for transferring data between a non- volatile memory module powered by an unintermptible power supply and a storage device, the computer system comprising: software means for determining if a voltage level of the computer system is less than a predetermined level; software means for, if the voltage level is less than a predetermined level, flushing data from the non-volatile memory to the storage device; and software means for turning off the unintermptible power supply of the non- volatile memory module.
73. The computer system of claim 72, further comprising software means for determining if the voltage level of the computer system is above the predetermined level following a shutdown of the unintermptible power supply, and, based on that determination, for turning on the unintermptible power supply if the voltage level is above the predetermined level.
74. The computer system of claim 72, further comprising software means for transferring the data that was transferred into the storage device back to the non-volatile memory if the voltage level is above the predetermined level.
75. The computer system of claim 72, further comprising software means for transferring the data that was transferred into the storage device to a main storage device if the voltage level is above the predetermined level.
76. The computer system of claim 72, further comprising software means for transferring the data that was transferred into the storage device to a processing unit memory if the voltage level is above the predetermined level.
77. The computer system of claim 72, wherein the non- volatile memory comprises a pluraUty of memory devices and the computer system further comprising software means for sequentially transferring data from each of the memory devices comprising the non-volatile memory to the storage device.
78. The computer system of claim 77, further comprising software means for sequentially shutting off power to each of the memory devices after each memory device is transferred to the storage device.
79. An executable program for a computer system for transferring data between a non-volatile memory module and a storage device, the executable program comprising: a first executable code portion which, when executed on a computer, determines if a voltage level of the computer system is less than a predetermined level; a second executable code portion which, when executed on a computer, if the voltage level is less than a predetermined level, transfers data from the non- volatile memory to the storage device; and a third executable code portion which, when executed on a computer, turns off the uninterruptible power supply of the non- volatile memory module.
80. The executable program for a computer system of claim 79, further comprising an executable code portion which, when executed on a computer, determines if the voltage level of the computer system is above the predetermined level following a shutdown of the unintermptible power supply, and, based on that determination, turns on the uninterruptible power supply if the voltage level is above the predetermined level.
81. The executable program for a computer system of claim 80, further comprising an executable code portion which, when executed on a computer, transfers the data that was transferred into the storage device back to the non-volatile memory if the voltage level is above the predetermined level.
82. The executable program for a computer system of claim 80, further comprising an executable code portion which, when executed on a computer, transfers the data that was transferred into the storage device to a main storage device if the voltage level is above the predetermined level.
83. The executable program for a computer system of claim 80, further comprising an executable code portion which, when executed on a computer, transfers the data that was transferred into the storage device to a processing unit memory if the voltage level is above the predetermined level.
84. The executable program for a computer system of claim 79, further comprising an executable code portion which, when executed on a computer, sequentially tiansfers data from each of the memory devices comprising the non-volatile memory to the storage device.
85. The executable program for a computer system of claim 84, further comprising an executable code portion which, when executed on a computer, sequentially shuts off power to each of the memory devices after each memory device is transferred to the storage device.
PCT/US2000/034257 2000-08-24 2000-12-21 Method and apparatus for transferring data between a non-volatile memory module and a storage device WO2002017077A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001230751A AU2001230751A1 (en) 2000-08-24 2000-12-21 Method and apparatus for transferring data between a non-volatile memory module and a storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22737900P 2000-08-24 2000-08-24
US60/227,379 2000-08-24

Publications (1)

Publication Number Publication Date
WO2002017077A1 true WO2002017077A1 (en) 2002-02-28

Family

ID=22852864

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/034257 WO2002017077A1 (en) 2000-08-24 2000-12-21 Method and apparatus for transferring data between a non-volatile memory module and a storage device

Country Status (2)

Country Link
AU (1) AU2001230751A1 (en)
WO (1) WO2002017077A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7862582B2 (en) 2006-05-02 2011-01-04 Ethicon Endo-Surgery, Inc. Suture management
CN103093157A (en) * 2013-01-25 2013-05-08 浪潮电子信息产业股份有限公司 Method of permanent protection of cache data of serial attached scsi (SAS) redundant array of independent disks (RAID) card

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414861A (en) * 1991-09-11 1995-05-09 Fujitsu Limited Data protection system using different levels of reserve power to maintain data in volatile memories for any period of time
US5485623A (en) * 1993-03-10 1996-01-16 Hitachi, Ltd. Information processor having high speed and safety resume system
US5822600A (en) * 1996-07-19 1998-10-13 Compaq Computer Corporation Dynamic hibernation time in a computer system
US5872984A (en) * 1997-04-01 1999-02-16 International Business Machines Corporation Uninterruptible power supply providing continuous power mainstore function for a computer system
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414861A (en) * 1991-09-11 1995-05-09 Fujitsu Limited Data protection system using different levels of reserve power to maintain data in volatile memories for any period of time
US5485623A (en) * 1993-03-10 1996-01-16 Hitachi, Ltd. Information processor having high speed and safety resume system
US5822600A (en) * 1996-07-19 1998-10-13 Compaq Computer Corporation Dynamic hibernation time in a computer system
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system
US5872984A (en) * 1997-04-01 1999-02-16 International Business Machines Corporation Uninterruptible power supply providing continuous power mainstore function for a computer system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7862582B2 (en) 2006-05-02 2011-01-04 Ethicon Endo-Surgery, Inc. Suture management
US8435262B2 (en) 2006-05-02 2013-05-07 Ethicon Endo-Surgery, Inc. Suture management
CN103093157A (en) * 2013-01-25 2013-05-08 浪潮电子信息产业股份有限公司 Method of permanent protection of cache data of serial attached scsi (SAS) redundant array of independent disks (RAID) card

Also Published As

Publication number Publication date
AU2001230751A1 (en) 2002-03-04

Similar Documents

Publication Publication Date Title
US6990603B2 (en) Method and apparatus for securing volatile data in power failure in systems having redundancy
US9390767B2 (en) Battery-less cache memory module with integrated backup
US8296534B1 (en) Techniques for using flash-based memory in recovery processing
US8065479B2 (en) Methods and structure for improved storage system performance with write-back caching for disk drives
US7793061B1 (en) Techniques for using flash-based memory as a write cache and a vault
US7421552B2 (en) Techniques for managing data within a data storage system utilizing a flash-based memory vault
US5535399A (en) Solid state disk drive unit having on-board backup non-volatile memory
EP1705574A2 (en) Non-volatile backup for data cache
JP4041473B2 (en) Autonomous power loss recovery for multi-cluster storage subsystems
EP1229448A2 (en) Redundant backup device and method
US8078908B2 (en) Data storage device and method
US20120233398A1 (en) Storage system and data management method
JP2004021989A (en) Method of backingup data
US6181630B1 (en) Method of stabilizing data stored in volatile memory
JP2001296974A (en) System and method for storing data
JP7060789B2 (en) Electronic systems, information processing equipment and control methods
US7293197B2 (en) Non-volatile memory with network fail-over
CN113711189B (en) System and method for managing reduced power failure energy requirements on solid state drives
WO2002017077A1 (en) Method and apparatus for transferring data between a non-volatile memory module and a storage device
JP2008059007A (en) Semiconductor storage device
JP2004118644A (en) Disk array control system
JPH09212424A (en) Disk cache and disk caching method
JP2004078963A (en) Cache memory backup device
JP2021039674A (en) Data storage device, control device, stored data management method, and program
JPS63140357A (en) Disk input and output control system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP