`a2) Patent Application Publication co) Pub. No.: US 2003/0126494 A1
`(43) Pub. Date: Jul. 3, 2003
`
`Strasser
`
`US 20030126494A1
`
`(54)
`
`METHOD AND APPARATUS FOR SECURING
`VOLATILE DATA IN POWER FAILURE IN
`SYSTEMS HAVING REDUNDANCY
`
`(75)
`
`Inventor: Amnon A.Strasser, Tel Aviv (IL)
`
`Correspondence Address:
`SUGHRUE MION, PLLC
`2100 PENNSYLVANIA AVENUE, N.W.
`WASHINGTON, DC 20037 (US)
`
`(73)
`
`Assignee: EXANET INC.
`
`(21)
`
`Appl. No.:
`
`10/032,617
`
`(22)
`
`Filed:
`
`Jan. 2, 2002
`
`Publication Classification
`
`
`.. HO4L 1/22
`Int. Cl.” ......
`US. CD. ees eeesse ces eesssessesssncceseesnessneennsensess 714/6
`
`(51)
`(52)
`
`(57)
`
`ABSTRACT
`
`A method and apparatus for transferring data between a
`main volatile memory and a backup memory in a redundant
`system comprised of a main sub-system and a mirror sub-
`system is provided. For the purpose of preserving uninter-
`ruplible power supply energy, dala is continuously trans-
`ferred to back-up memory which maybe a corresponding
`volatile memory of the mirror sub-system, or a non-volatile
`memory of the main sub-system. The method further
`includes the steps of detecting a loss of system power,
`transferring data from volatile memory to non-volatile
`memory, and turning off the power supply of the non-
`volatile memory module. The methodis capable of detecting
`the status of the uninterruptible power supply of the mirror
`system and if that system is operative then only data not
`previously backed up is transferred to main non-volatile
`memory; otherwise, if a power failure is detected in both
`sub-systems all data in volatile memory, not previously
`written to non-volatile memoryis transferred to non-volatile
`memory.
`
`POWER SUPPLY
`
`CONTROL
`UNIT
`
`VOLATILE
`MEMORY
`
`REDUNDANT
`CONTROL
`UNIT
`
`REDUNDANT
`VOLATILE
`MEMORY
`
`NON-VOLATILE
`MEMORY
`
`REDUNDANT
`NON-VOLATILE
`MEMORY
`
`UNINTERRUPTIBLE
`
`Google Exhibit 1031
`Google Exhibit 1031
`Google v. Valtrus
`Google v. Valtrus
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 1 of 6
`
`US 2003/0126494 Al
`
`
`
`UNINTERRUPTIBLE
`VOLATILE
`POWER SUPPLY
`
`MEMORY
`
`
`
`
`
`NON-VOLATILE
`MEMORY
`
`
`
`FIG. 1
`PRIOR ART
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 2 of 6
`
`US 2003/0126494 Al
`
`204
`
`CONTROL
`UNIT
`
`VOLATILE
`MEMORY
`
`NON-VOLATILE
`MEMORY
`
`co——26ao>
`
`REDUNDANT
`NON-VOLATILE
`MEMORY
`
`REDUNDANT
`CONTROL
`UNIT
`
`REDUNDANT
`VOLATILE
`MEMORY
`
` “I>ra5Po.52
`rc”
`
`
`
`FIG. 2
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 3 of 6
`
`US 2003/0126494 Al
`
`204
`
`J 300
`
`208
`
`
`
`
`MAIN
`
`
`
`SUB-SYSTEM
`
`REDUNDANT
`MAIN
`SUB-SYSTEM
`
`
`REDUNDANT
`
` MAIN
`MAIN
`UNITERRUPTIBLE
`
`
`UNITERRUPTIBLE
`POWER SUPPLY
`POWER SUPPLY
`
`
`
`
`
`
`FIG. 3
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 4 of 6
`
`US 2003/0126494 Al
`
`
`
`AVAILABLE?
`
`NO
`
`YES
`
`9110
`
`TRANSFER DATA FROM VOLATILE
`MEMORY TO REDUNDANT MEMORY OR
`
` IS CONTROL UNIT
`RESPECTIVE NON-VOLATILE MEMORY
`NOTE TYPE OF BACKUP MADE TO DATA
`
`$120
`
`
`$130
`
`
`FINISHED
`
`
`TRANSFERRING DATA?
`
`
`
`NO
`
`YES
`
`FIG. 4
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 5 of 6
`
`US 2003/0126494 Al
`
`
`
`BELOW
`PREDETERMINED VALUE?
`
`$210
`
`WAS OTHER CONTROL
`UNIT AFFECTED?
`
`
`
`
`
`TRANSFER ONLY DATA NOTIN OTHER
`
`TRANSFER ALL DATA FROM VOLATILE TO
`CONTROLUNIT MEMORY FROM VOLATILE
`
`
`NON-VOLATILE MEMORY
`TO NON-VOLATILE MEMORY
`
`
`
`
`TRANSFER
`DONE?
`
`
`
`
`FIG. 5A
`
`
`
`Patent Application Publication
`
`Jul. 3, 2003 Sheet 6 of 6
`
`US 2003/0126494 Al
`
`$240
`
` HAS OTHER CONTROL
`
`UNIT INDICATED BACKUP
`
`COMPLETION?
`
`SUPPLY
`NO
`
`
`SHUTDOWN UNINTERRUPTABLE POWER
`
`INDICATE COMPLETION OF BACKUP
`ACTIVITY
`
`TERMINATE
`
`FIG. 5B
`
`
`
`US 2003/0126494 Al
`
`Jul. 3, 2003
`
`METHOD AND APPARATUS FOR SECURING
`VOLATILE DATA IN POWER FAILURE IN
`SYSTEMS HAVING REDUNDANCY
`
`BACKGROUND OF THE INVENTION
`
`(0001]
`
`1. Field of the Invention
`
`invention relates to a method and
`[0002] The present
`apparatus for transferring data in volatile and non-volatile
`redundant memory architectures, including random access
`and write cache architectures, and more particularly, to a
`method and apparatus for transferring data between a vola-
`tile memory and a non-volatile memory in a redundant
`storage environment.
`
`[0003]
`
`2. Description of the Related Art
`
`In a client/server environment, it is often required
`[0004]
`that write transactions cached by a server are kept
`in
`memory until transferred to stable storage. As this informa-
`tion maybecritical such volatile memory modules usually
`require batteries or any other uninterruptible power supply
`for proper operation. In conventional systems, either the
`volatile memory module battery supplies powerall the time,
`regardless of changes in system power, or the volatile
`memory module battery supplies power during an entire
`powerfailure time period.
`
`[0005] Referring to FIG. 1, a conventional volatile
`memory module, including a central processing unit 1, a
`volatile memory 2, a non-volatile memory 3, or otherwise a
`main storage device 3, and an uninterruptible power supply
`4 is illustrated. In the conventional module, the processing
`unit, the non-volatile memory and the main storage device
`are connected to each other. A battery or other uninterrupt-
`ible power supply backs up the volatile memory. Because
`the battery backing up the volatile memoryis 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 poweris restored.
`
`the volatile memory always remains
`[0006] Therefore,
`powered up. However, the longer the battery is required to
`stay on before system poweris restored, the morethe life of
`the battery will be shortened. If the battery is required to
`maintain powerfor too long before system poweris restored,
`the battery can lose power, thereby causing a loss of data
`stored in the volatile memory.
`
`[0007] The concept used in the system described in FIG.
`1 is used in the industryin a variety of implementations. In
`modem computing systems, as well as storage devices, the
`concept of redundancy has long been introduced. However,
`the concepts of reducing the hazards of data loss due to
`power supply failure have remained essentially the same.
`Systemscurrently available for handling powersupply fail-
`ures do not take advantage of the redundancy features of
`modem system to reduce the power requirements from the
`uninterruptible power supply.
`
`SUMMARYOTFTIE INVENTION
`
`[0008] The present invention has been made in view ofthe
`above circumstances and is intended to overcome the above
`
`problemsand limitations of the prior art.
`
`[0009] Additional aspects and advantages of the present
`invention will be set forth in part in the description that
`
`follows andin part will be obvious from the description, or
`may be learned by practice of the present invention. The
`aspects and advantages of the present invention may be
`realized and attained by meansof the instrumentalities and
`combinations particularly pointed out
`in the appended
`claims.
`
`[0010] According to a first aspect of the invention, a
`system with redundancy and powerfailure capabilities com-
`prising a main sub-system, a mirror sub-system, a means of
`communication between the main sub-system and mirror
`sub-system and an uninterruptible power supply connected
`to at least one of the main sub-system or mirrored sub-
`system is provided. The main sub-system further comprises
`a main control unit, a main volatile memory and a main
`non-volatile memory. Similarly, the mirror sub-system also
`comprises a redundant control unit, a redundant volatile
`memory and a redundant non-volatile memory.
`
`[0011] According to a second aspect of the invention, a
`method for
`transferring data between a main volatile
`memory and a backup memory in a system having a main
`sub-system and a mirror sub-system, each capable of being
`powered by an uninterruptible power supply, is provided.
`The method determines if a main control unit is available. If
`the main control unit is available, the method transfers data
`from a main volatile memoryto a backup memory and keeps
`a record of which data was transferred to the backup
`memory. The method transfers all the data to the backup
`memory and terminates upon completion of the data transfer
`to the backup memory. If, however, the main control unit is
`not available, the method for transferring data between a
`main volatile memory and a backup memorywaits until the
`main control unit is available.
`
`In a third aspect of the present invention, a com-
`{0012]
`puter program product for enabling a system to transfer data
`between a volatile memory and a backup memory in a
`system having a main sub-system and a mirror sub-system,
`each capable of being powered by an uninterruptible power
`supply is provided. The computer program product com-
`prises software instructions for enabling the system to
`perform predetermined operations and a computer readable
`medium bearing software instructions. The predetermined
`operations include determining if a main control unit is
`available. If the main control unit is available the predeter-
`mined operations include transferring data from a main
`volatile memory to a backup memory, keeping record of
`which data wastransferred to the backup memory, repeating
`the above steps until all data is transferred to the backup
`memory and terminating upon completion of data transfer to
`the backup memory.If, however, the main control unit is not
`available, the predetermined operations wait until the main
`control unit is available.
`
`invention, a
`In a fourth aspect of the present
`[0013]
`method for
`transferring data between a main volatile
`memory and a main non-volatile memory, in a system have
`a main sub-system and a mirror sub-system, each capable of
`being powered by an uninterruptible power supply is pro-
`vided. The method further comprises determining if the
`voltage level in a main sub-system is less than a predeter-
`mined level. Based onthat determination,if the voltage level
`is less than a predetermined level, a check is made to
`determine if the voltage level of the mirror sub-system is less
`than a predetermined level. Based on that determination,all
`
`
`
`US 2003/0126494 Al
`
`Jul. 3, 2003
`
`data not previously backed up in the main non-volatile
`memory is transferred from the main volatile memoryto the
`main non-volatile memory. Otherwise, only the data not
`previously transferred is transferred to the backup memory.
`The above mentioned sequence is then repeated until all
`relevant datais transferred to the main non-volatile memory.
`The method further comprises determining if the redundant
`control unit completed the transfer of data to the non-volatile
`memory, and based on that determination, turning off the
`uninterruptible power supply of the non-volatile memory
`module, or otherwise indicating the completion of data
`transfer to the main non-volatile memory.
`
`In a fifth aspect of the invention, a computer
`[0014]
`program product for enabling a computer system to transfer
`data between a main volatile memory and a main non-
`volatile memory in a system having a main sub-system and
`a mirror sub-system each capable of being powered by an
`uninterruptible power supply is provided. The computer
`program product further comprises software instructions for
`enabling the computer system to perform predetermined
`operations and a computer readable medium bearing soft-
`ware instructions. The predetermined operations include
`determining if a voltage level of the main sub-system is less
`than a predetermined level. Based on that determination, if
`the voltage level is less than a predetermined level, a check
`is made to determine if the voltage level of the mirror
`sub-system is less than a predetermined level. Based on the
`determination, data not previously backed up in the main
`non-volatile memory is transferred from the main volatile
`memory to the main non-volatile memory. Otherwise, only
`the data not previously transferred is transferred to a backup
`memory. The above mentioned sequenceis repeated until all
`relevant datais transferred to the main non-volatile memory.
`‘The predetermined operations further include determining if
`the redundant control unit completed the transfer of data to
`non-volatile memory and based on that determination, turn-
`ing off the uninterruptible power supply of the non-volatile
`memory module, or otherwise indicating the completion of
`the data transfer to the main non-volatile memory.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`{0015] The accompanying drawings, which are incorpo-
`rated 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,
`
`[0016] FIG. 1 illustrates a block diagram of a conven-
`tional non-volatile memory module;
`
`{0017] FIG. 2 illustrates an exemplary embodimentof a
`memory module having volatile and non-volatile memory
`redundancyaccording to the present invention;
`
`[0018] FIG. 3 illustrates another exemplary embodiment
`of a distributed main sub-system and mirror sub-system each
`having its separate uninterruptible power supply units
`according to the present invention;
`
`[0019] FIG. 4 illustrates a flow chart of a method of
`transferring data from non-volatile memoryto stable storage
`according to the present invention; and
`
`[0020] FIGS. 5A and 5B illustrate a flow chart of a
`method of transferring data from volatile to non-volatile
`memory in a system having redundancy according to the
`present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`Prior to describing the aspects of the invention,
`[0021]
`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.
`
`the term “computer system”
`[0022] As used herein,
`encompasses the widest possible meaning and includes, but
`is not limited to, standalone processors, networked proces-
`sors, mainframe processors, and processors in a client/server
`relationship. The term “computer system” is to be under-
`stood 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 includedin that
`
`executable program code. The term “processor” may be used
`to describe a variety of devices capable of performing
`control and processing functions by processing a series of
`predefined instructions. The term may refer to microproces-
`sors, microcontrollers, control units, and the likes. The term
`“volatile memory”is used for any type of memory that may
`lose the data stored in it upon disruption of powersupply,for
`example, random access memory (RAM), cache memory
`and the likes. The term “non-volatile memory” is used for
`any type of memory capable of retaining data stored in it
`even when there is a disruption in power supply,
`for
`example, Flash memory, programmable read only memory
`(PROM),
`erasable programmable
`read only memory
`(EPROM), electrically erasable programmable read only
`memory (EEPROM), hard disk, diskette, compact disk
`(CD), digital video disk (DVD)andthe likes.
`
`It will be appreciated that the term “predetermined
`[0023]
`operations,” the term “computer system software,” and the
`term “‘executable code” mean substantially the same thing
`for the purposesofthis description. It is not necessary to the
`practice of the present invention that the memory and the
`processor be physically located in the same place. Thatis 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.
`
`[0024] As used herein, one of skill in the art will appre-
`ciate that “media” or “computer-readable media” may
`include a diskette, a tape, a compact disc, an integrated
`circuil, a cartridge, a remote transmission via a communi-
`cations 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.
`
`[0025] Although computer system software might be
`“written on” a diskette, “stored in” an integrated circuit, or
`“carried over” a communicationscircuit, it will be appreci-
`ated that, for the purposes of this discussion, the computer
`usable medium will be referred to as “bearing”the instruc-
`tions for performing predetermined operations. Thus, the
`term “bearing” is intended to encompass the above, andall
`equivalent ways, in which instructions for performing pre-
`determined operations are associated with a computer usable
`medium.
`
`the term
`[0026] Therefore, for the sake of simplicity,
`“program product” is hereafter used to refer to a computer
`
`
`
`US 2003/0126494 Al
`
`Jul. 3, 2003
`
`useable medium, as defined above, which bears instructions
`for performing predetermined operations in any form.
`
`[0027] A detailed description of the aspects of the inven-
`tion will now be given referring to the accompanying
`drawings.
`
`[0028] Referring to FIG. 2, an exemplary embodiment
`comprising a main sub-system and a mirror sub-system,
`both of which are supported by memory and an uninterrupt-
`ible power supply, is illustrated. A main sub-system 204 is
`comprised of a control unit 210, a volatile memory 220 and
`a non-volatile memory 230, all of which are connected
`together via communication links 260 and 270,respectively.
`In another exemplary embodimentof the present invention,
`communication links 260 and 270 are a combined commu-
`nication link, and may include, but are not limited to, a
`processor bus, a peripheral componentinterface (PCT) net-
`work, an Infiniband network,a local area network (LAN)or
`a wide area network (WAN). In yet another exemplary
`embodimentof the present invention, communication links
`260 and 270 have redundant communication links allowing
`for switching over from a main communication link to a
`redundant communication link upon a communication fail-
`ure.
`
`[0029] A mirror sub-system 208, also referred to as a
`redundant sub-system, is comprised of a redundant control
`unit 215, a redundant volatile memory 225 and a redundant
`non-volatile memory 235, all of which are connected
`together via redundant communication links 265 and 275,
`respectively. The redundant sub-system 208 mirrors the
`main sub-system 204. In an exemplary embodimentofthe
`present invention, both the main sub-system 204 and the
`mirror sub-system 208 are continuously used for processing
`purposes. An example of such an embodimentis provided in
`US. patent application Ser. No. 09/989,375, entitled “A
`System and Method for Load Balancing in Systems Having
`Redundancy,” filed Nov. 21, 2001, and whichis assigned to
`the same commonassignee as the present application, and is
`hereby incorporated herein by referencein its entirety for all
`it discloses.
`In another exemplary embodiment of the
`present invention, the communication links 265 and 275 are
`a single communications link, including, but not limited to,
`a processor bus, a peripheral component
`interface (PCI)
`network, an Infiniband network,a local area network (LAN)
`or a wide area network (WAN).
`
`[0030] The control unit 210 and the redundant control unit
`215 are further connected through communicationslink 250.
`The volatile memory 220 and the redundant volatile memory
`225 are further connected through communicationslink 255.
`In another exemplary embodimentof the present invention,
`communication links 260 and 270 are a single communica-
`tions link, and may include, but are not
`limited to, a
`processor bus, a peripheral componentinterface (PCT) net-
`work, an Infiniband network, a local area network (LAN) or
`a wide area network (WAN).
`[0031] An uninterruptible power supply 240 is connected
`to and supplies power to the control unit 210 and the
`redundant control unit 215, the volatile memory 220 andthe
`redundant volatile memory 225, and the non-volatile
`memory 230 and the redundant non-volatile memory 235
`through the connectivity links 280 and 285, respectively.
`[0032]
`In another exemplary embodiment of the present
`invention, a microcontroller, which controls the data transfer
`
`between the volatile memory 220 and the non-volatile
`memory 230, is embedded in the non-volatile memory 220.
`Similarly, a microcontroller may be embedded in non-
`volatile memory 235.
`
`[0033] Upon power loss, power from the uninterruptible
`power supply 240 can be used to transfer data stored in
`volatile memory 220 onto the non-volatile memory 230.
`Similarly,
`the process can be mirrored on the redundant
`volatile memory 225 and non-volatile memory 235 respec-
`tively. When the transfer operation is completed, uninter-
`ruptible power supply power 240 is no longer required to
`maintain the data stored in the non-volatile memory; hence,
`the powercan optionally be disconnected to prolongthelife,
`or “on”time, of uninterruptible power supply 240. A person
`skilled in the art could easily implement system 200 using
`multiple uninterruptible power supplies, each supplying
`power to a specific element of the main sub-system or the
`mirror sub-system. More specifically, it should be noted that
`system 200 can be implemented as a geographicallydistrib-
`uted system.
`
`In yet another exemplary embodiment of the
`[0034]
`invention,
`the volatile memory and/or the non-
`present
`volatile memory may be comprised of one or more volatile
`or non-volatile devices, respectively. The uninterruptible
`power supply may be commanded to shut down power to
`each volatile and/or non-volatile device to which sustaining
`poweris no longer required. For example, a volatile memory
`device, from which all data has been transferred to a
`redundant volatile memory or to a non-volatile memory,
`may be disconnected from uninterruptible power supply.
`Similarly, a non-volatile memory, to which no data is to be
`transferred, may be similarly disconnected from the unin-
`terruptible power supply. In yet another exemplary embodi-
`ment, if power supply is restored during the backup opera-
`tion, then only data that was actually corrupted during the
`shutdown process, e.g., a volatile memory device being
`disconnected from uninterruptible power supply, is restored
`from the non-volatile memory or from the redundantvolatile
`memory, hence saving time to bring the system up and
`running.
`
`[0035] Referring to FIG. 3, another aspect of the present
`invention is illustrated, which is similar to FIG. 2, except
`that in FIG.3, the main sub-system 204 and the redundant
`sub-system 208 are connected by a communication link 330,
`through which control and data information is transferred
`back and forth. Specifically, this exemplary embodimentis
`particularly suitable for geographically distributed systems
`where the communication link maybe, butis notlimited to,
`a local area network (LAN), a wide area network (WAN), or
`an asynchronous transfer mode (ATM)network. The main
`sub-system 204 is connected to uninterruptible power supply
`310 and the redundant sub-system 208 is connected redun-
`dant uninterruptible power supply 320, respectively. The
`uninterruptible power supply 310 and the redundant unin-
`terruptible power supply 320 may be controlled via com-
`munication link 330 by the redundant control unit 215 and
`the main control unit 210, respectively. Periodically, data is
`transferred from the main volatile memory to the redundant
`volatile memory or to the main non-volatile memory, as
`explained above. Upon detection of power loss, activities
`described above are performed; however, each of the unin-
`terruptible power suppliesis controlled separately. When the
`transfer operation is completed, uninterruptible power sup-
`
`
`
`US 2003/0126494 Al
`
`Jul. 3, 2003
`
`ply poweris no longer required to maintain the data stored
`in the non-volatile memories. Thus, the power can option-
`ally be disconnected to either one or both of the uninter-
`ruptible power supply 310 and the redundant uninterruptible
`power supply 320, in order to prolong the uninterruptible
`power supplylife.
`
`In a system having redundancy, it is further pos-
`[0036]
`sible to allow for a longer “life-time” for uninterruptible
`powersupply 240. This is achieved by taking advantage of
`the redundant features of system 200. FIG. 4 illustrates a
`method of transferring data, according to an aspect of the
`present invention. At $100, the method determines whether
`a control unit (control unit 210 or redundant control unit
`215, as the case may be)is available, ie., control unit is not
`busy with other system or user tasks. If the control unit is not
`available, the method returns to S100. If the control unit is
`available, at S110, data is transferred from the volatile
`memory to a redundant volatile memoryor to a non-volatile
`memory. Specifically,
`the system may choose to transfer
`data from the volatile memory 220 to the volatile memory
`225, which is the redundant memory of the mirror sub-
`system 208. The system may otherwise choose to transfer
`data to the non-volatile memory 230. Thus, at S110, data is
`transferred from the volatile memory (volatile memory 220
`or redundant volatile memory 225, as the case maybe) to a
`backup memory. Determination of the location of backup
`may be based on one or moreof the following parameters:
`a priority determination, a sensitivity to failure determina-
`tion, a random algorithm,
`a round robin algorithm,
`a
`weighted round robin algorithm, a least recently used algo-
`rithm, a space availability determination or network load
`balancing determination. A priority determination may
`assign a higher priority to backing up frequently used
`information on the local non-volatile memory rather then
`transferring it over the communication link to the redundant
`system. A sensitivity to failure determination may be the
`amount of damage that can occur to the system in the case
`where certain data was not backed up properly. If the
`damageis high then it may be beneficial to movethe data to
`the redundant systemso as to ensure the data integrityin the
`case where the main system hasa significant failure. A space
`availability determination may be used whenit is essential
`to keep certain data in a specific memory, for example main
`non-volatile memory and therefore as this memoryfills up it
`is required to maintain space there for the expected data that
`must be stored in that memory. In other cases more random
`approaches may be used as the importanceis in having some
`kind of a non-volatile backup butit is not critical were the
`data resides. By using one of the random or semi-random
`approaches suggested the data to be backed up will be spread
`between the various types of memories and the goal of
`maintaining a high level of data integrity is achieved. At
`$120, data that was backed up in either one of the above
`listed methods is recorded as having been backed up. If not
`all the data has been transferred at $130, then the process
`continues al step $100, otherwise the process is complete. It
`should be noted that this process might be repeated periodi-
`cally for the purpose of backing up additional data not
`previously backed up by the system. Uninterruptible power
`supply “life,” or “on time,” is prolonged as there will be less
`data to be backed up in case of powerfailure. This method
`can be equally applied on system 300 described in FIG.3.
`
`A person skilled in the art could further add the step of
`ceasing the operation based on this method upon detection
`of powerfailure.
`
`[0037] FIGS. 5A and 5B illustrate a method of transfer-
`ring data, according to another aspect of the present inven-
`tion. Referring to FIG. 5A, at S200,
`it is determined if
`system power is below a predetermined level. If system
`power is not below the predetermined level,
`the method
`returns to $200. If system poweris below the predetermined
`level, then at S210, a check is performed to determineif the
`other control unit of the mirror sub-system 208 wasaffected.
`If both the main control unit and the redundant control unit
`were affected, then in $220,all data is transferred from the
`volatile memories (volatile memory 220 or redundantvola-
`tile memory225) to the non-volatile memories (non-volatile
`memory 230 or non-volatile memory 235). However,if the
`other control unit was not affected, then at S225, only data
`not previously transferred to the volatile memory of the
`mirror sub-system 208 is transferred to the non-volatile
`memories
`(non-volatile memory 230 or non-volatile
`memory 235). In S230, it is determined if the data transfer
`from volatile memory to non-volatile memory is complete.
`If all the data has not been transferred yet,
`the method
`returns to S210. In another exemplary embodiment of the
`present invention, control is returned to S200 instead of
`$210. This is advantageous in the case where the power
`failure was only temporary and there is no need to continue
`the backup process. Otherwise the method continuation is
`described in FIG. 5B.
`
`[0038] Referring to FIG. 5B, it is determined in $240 if
`the other control unit has indicated backup completion.If the
`other control unit has not indicated backup completion, then
`at S255, the control unit indicates that it has concluded the
`backup activity and terminates further backup activity. If
`both the control unit and the redundant control unit have
`completed the backup activity, then at $250, the last control
`unit to complete the backup activity shuts down uninter-
`ruptible power supply 240. With this method, power can be
`saved by: a) continuously backing up data to either redun-
`dantvolatile memory or to non-volatile memory; b) backing
`up only data which maybe affected by a powerfailure; and
`c) shutting off uninterruptible power supply upon comple-
`tion of backup activity.
`
`[0039] According to another aspect of the present inven-
`tion, there is provided a computer program product, in which
`programsfor backing up data in a system having redundancy
`as well as power-fail response capabilitics is described. 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 control unit is
`available to execute these predeterminedinstructions. If the
`control unit is unavailable then the program waits until such
`time when control unit is available. When control unit is
`available, portions of data, not previously backed up, are
`backed up on either a redundant volatile memory or on
`non-volatile memory. If all previously not backed up data
`has been backedup,then the program terminates, otherwise,
`it continues its operation until such time that all data has
`been backed up. Determination of the location of backup
`may be based on one or moreof the following parameters:
`a priority determination, a sensitivity to failure determina-
`
`
`
`US 2003/0126494 Al
`
`Jul. 3, 2003
`
`a
`a round robin algorithm,
`tion, a random algorithm,
`weighted round robin algorithm, a least recently used algo-
`rithm, a space availability determination or network load
`balancing determination.
`
`[0040] According to another aspect of the present inven-
`tion, there is provided a computer program product, in which
`programsfor detecting a loss of system power, writing data
`from a volatile memory to a non-volatile memory, and
`turning off the power supply of a system having redundancy
`as well as powcer-fail response capabilitics, by computers,
`are recordedin order to enable a computer system to transfer
`data between a volatile memory and a non-volatile memory.
`The computer program product comprises software instruc-
`tions for enabling the computer system to perform prede-
`termined operations, and a computer readable medium bear-
`ing 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 program further checks if
`both control unit and redundant control unit have been
`affected. If both control units have been affected then the
`
`predetermined operations flush all data from the volatile
`memory to the non-volatile memory. However, if only the
`control unit has been affected by the powerfailure then only
`data not transferred to the redundant volatile memory is
`flushed from the volatile memory to the non-volatile
`memory. 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 unin-
`terruptible power supply if both co