Shadow memory system for storing variable backup blocks in consecutive time periods
First Claim
1. A data storage system for a host computer having a CPU bus, comprising:
- a volatile main memory coupled to the CPU bus;
a usage monitor memory having a plurality of address locations;
bus monitor means for monitoring data transfers between the volatile memory and the CPU bus and, in response to each write type of data transfer between the volatile main memory and the CPU bus, storing in the usage monitor memory an indication of the data transfer;
a shadow memory subsystem including a nonvolatile data store, the shadow memory subsystem comprising means, coupled to said usage monitor memory, for determining when said bus monitor means is not accessing said usage monitor memory and for providing access of the shadow memory subsystem to said usage monitor memory upon which determination and means for sequentially searching variable numbers of the usage monitor memory address locations during consecutive variable length time periods when the bus monitor means is not accessing the usage monitor memory for an indication of a data transfer, and continually searching the entire plurality of address locations during said consecutive time periods, means, upon finding an indication, for responding to the indication by reading from the volatile main memory any data stored at a location to which the indication relates and writing the data read from the volatile main memory to the nonvolatile data store, and means for erasing the indication from the usage monitor memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A highly reliable shadow memory system is able to survive multiple fast sequence power failures and includes a volatile main memory and a shadow memory subsystem which continually monitors write accesses to the main memory. The shadow memory subsystem includes a disk drive or shadow memory storing a copy of the data in main memory. As the main memory contents are altered, the shadow memory is continually updated to reflect the changes while main utility power is available. In the event of a main utility power failure, backup power is required to store main memory data in the shadow memory for only a few storage locations for which the updating of the shadow memory may lag main memory data changes. Consequently, only a small portion of available battery backup power is required to preserve all main memory data and the system can withstand multiple rapid succession power failures without loss of data.
-
Citations
23 Claims
-
1. A data storage system for a host computer having a CPU bus, comprising:
-
a volatile main memory coupled to the CPU bus; a usage monitor memory having a plurality of address locations; bus monitor means for monitoring data transfers between the volatile memory and the CPU bus and, in response to each write type of data transfer between the volatile main memory and the CPU bus, storing in the usage monitor memory an indication of the data transfer; a shadow memory subsystem including a nonvolatile data store, the shadow memory subsystem comprising means, coupled to said usage monitor memory, for determining when said bus monitor means is not accessing said usage monitor memory and for providing access of the shadow memory subsystem to said usage monitor memory upon which determination and means for sequentially searching variable numbers of the usage monitor memory address locations during consecutive variable length time periods when the bus monitor means is not accessing the usage monitor memory for an indication of a data transfer, and continually searching the entire plurality of address locations during said consecutive time periods, means, upon finding an indication, for responding to the indication by reading from the volatile main memory any data stored at a location to which the indication relates and writing the data read from the volatile main memory to the nonvolatile data store, and means for erasing the indication from the usage monitor memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data storage system for a host CPU having a CPU bus, comprising:
-
a volatile main memory having a plurality of blocks of addressable storage locations; a main memory bus; memory controller means, coupled to the main memory bus, for communicating data between the main memory and the CPU bus; a usage monitor memory having a plurality of storage locations each corresponding to a predetermined block of addressable storage locations in the main memory; memory multiplexer means, coupled to the usage monitor memory, for selectively accessing the usage monitor memory; bus monitor circuit means, coupled to the main memory bus and the memory multiplexer means, for monitoring data transfers between the main memory and the memory controller for communication over the host CPU bus and for responding to each write type of data transfer by assuring that an indication of memory usage is stored in the usage monitor memory at a storage location which corresponds to the main memory block at which the write data transfer occurs; a power supply subsystem coupled to receive power from an externally supplied interruptible power source and including a limited duration uninterruptible power source, the power supply subsystem including means for supplying power to the data storage system with the supplied power being taken from the interruptible power source when possible and otherwise from the interruptible power source, the power supply subsystem including a power monitor coupled to monitor the interruptible power source and generate a power supply signal indicating whether or not the power available from the interruptible power source is adequate to operate the data storage system; and a shadow memory subsystem including a nonvolatile data store, the shadow memory subsystem being coupled to the memory multiplexer means and to the power supply subsystem, the shadow memory subsystem further including; means for continually searching while the power supply signal indicates an availability of adequate power for indications of main memory usage stored in the usage monitor memory by making repetitive usage monitor memory read accesses when the bus monitor means is not accessing the usage monitor memory and, upon finding an indication of memory usage, executing a shadow storage operation upon main memory data corresponding to the indication by reading data from all address locations of the main memory within the block which corresponds to the indication, writing the data into corresponding locations in the nonvolatile data store and erasing the indication of memory usage, and means for operating, while the power supply signal indicates a nonavailablity of adequate power, to generate a main memory inhibit signal inhibiting further data transfers between the main memory and the CPU bus, to search each location of the usage monitor memory for an indication of main memory usage, to execute a shadow storage operation for each indication of main memory usage, and to command termination of the supply of power to the data storage system. - View Dependent Claims (13, 14, 16)
-
-
15. A data storage system for a host CPU having a CPU bus, comprising:
-
a volatile main memory having a plurality of blocks of addressable storage locations; a main memory bus; memory controller means, coupled to the main memory bus, for communicating data between the main memory and the CPU bus; a usage monitor memory having a plurality of storage locations each corresponding to a predetermined block of addressable storage locations in the main memory; memory multiplexer means, coupled to the usage monitor memory, for selectively accessing the usage monitor memory, bus monitor circuit means, coupled to the main memory bus and the memory multiplexer means, for monitoring data transfers between the main memory and the memory controller for communication over the host CPU bus and for responding to each write type of data transfer by assuring that an indication of memory usage is stored in the usage monitor memory at a storage location which corresponds to the main memory block at which the write data transfer occurs; a power supply subsystem coupled to receive power from an externally supplied interruptible power source and including a limited duration uninterruptible power source, the power supply subsystem including means for supplying power to the data storage system with the supplied power being taken from the interruptible power source when possible and otherwise from the uninterruptible power source, the power supply subsystem including a power monitor coupled to monitor the interruptible power source and generate a power supply signal indicating whether or not the power available from the interruptible power source is adequate to operate the data storage system; a shadow memory subsystem including a nonvolatile data store, the shadow memory subsystem being coupled to the memory multiplexer means and to the power supply subsystem, the shadow memory subsystem further including; means for searching while the power supply signal indicates an availability of adequate power for indications of main memory usage stored in the usage monitor memory by making repetitive usage monitor memory read accesses and, upon finding an indication of memory usage, executing a shadow storage operation upon main memory data corresponding to the indication by reading data from all address location of the main memory within the block which corresponds to the indication, writing the data into corresponding locations in the nonvolatile data store and erasing the indication of memory usage, and means for operating, while the power supply signal indicates a nonavailability of adequate power, to generate a main memory inhibit signal inhibiting further data transfer between the main memory and the CPU bus, to search each location of the usage monitor memory for an indication of main memory usage, to execute a shadow storage operation for each indication of main memory usage, and to command termination of the supply of power to the data storage system; and a bus request circuit coupling the shadow memory subsystem to the memory controller means, the bus request circuit operates while adequate power is available to respond to main memory access requests from the shadow memory subsystem by communicating to the memory controller a relatively low priority request for access to the main memory, and being responsive to the inhibit signal to make a highest priority request to the memory controller for access to the main memory.
-
-
17. A backup data storage system for a primary data store having a plurality of storage locations addressable by a data processing system, each primary data store addressable storage location being assigned to one of a plurality of primary store data blocks, each containing the data stored by all of the addressable storage locations assigned thereto, the backup data storage system comprising:
-
first means for storing a write indication at each of a plurality of addressable storage locations, each of which has a predetermined correspondence with one of the data block; means for writing a write indication into the first means for storing a write indication each time data is written by the data processing system into the primary data store, the write indication being stored at a location corresponding to a primary store data block into which the data has been written; second means for storing a plurality of backup data blocks, each corresponding to a different primary store data block; and data processing means, connected to the first storing means, the means for writing a write indication, the second storing means, and the primary data store, comprising means coupled to the firs storing means for determining when said writing means is not accessing the first storing means, means for continually accessing said first storing means when said first storing means is available for data communication and for repetitively reading sequential addressable storage locations of the first storing means, wherein the number of addressable storage locations read varies with the time during which said first storing means is available for data communications, and means, upon reading a write indication from a currently addressed storage location, for copying the primary store data block corresponding thereto to the corresponding backup data block stored by the second storing means. - View Dependent Claims (18, 19, 20)
-
-
21. A method of backing up data in a primary data store having a plurality of addressable storage locations storing the data and coupled for communication with a data processing system, the method using a usage monitor memory having a plurality of addressable storage locations and a nonvolatile shadow data store, the method comprising the steps of:
-
assigning each addressable storage location in the primary data store to one of a plurality of different blocks of storage locations; establishing a correspondence between each of the blocks of locations and a different addressable storage location in the usage monitor memory; writing a data write indication into the usage monitor memory each time data is written into an addressable storage location of the primary data store from the data processing system, the data write indication being written to a usage monitor memory location corresponding to the block of storage locations to which is assigned the primary data store addressable location at which the data was written; and continually accessing the usage monitor memory when the usage monitor memory is not being written with write data indications and repetitively reading in sequence the addressable storage locations of the usage monitor memory which correspond to a block of locations in the primary data store, and upon reading a data write indication from any given location in the usage monitor memory (1) copying to the nonvolatile shadow data store all data stored by the primary data store at addressable locations assigned to the block of locations corresponding to the given location in the usage monitor memory, and (2) clearing the data write indication from the given location in the usage monitor memory. - View Dependent Claims (22, 23)
-
Specification