Storage subsystem with multiple non-volatile memory arrays to protect against data losses
First Claim
1. A storage subsystem comprising:
- a first controller connected to, and being capable of writing data to and reading data from, a first solid-state non-volatile memory array;
a second controller connected to, and being capable of writing data to and reading data from, a second solid-state non-volatile memory array; and
a connector for connecting the storage subsystem to a host system, said connector coupled to the first and second controllers such that the first and second controllers are capable of receiving storage access commands from the host system;
wherein the first controller is capable of presenting at least a portion of the first non-volatile memory array to the host system as storage space of ATA device 0, and the second controller is capable of presenting at least a portion of the second non-volatile memory array to the host system as storage space of ATA device 1,wherein both the first and second solid-state non-volatile memory arrays include operating system files associated with a boot up process of the host system;
wherein the storage subsystem is capable of being placed into a switch device mode in which data access commands issued by the host system to ATA device 1 are re-directed to the first non-volatile memory array, ATA device 0, and data access commands issued by the host system to ATA device 0 are re-directed to the second non-volatile memory array, ATA device 1, in response to an anticipated failure based on at least one of;
(1) a determination, based at least in part on usage or wear-level statistics of the first solid-state non-volatile memory array, that the first solid-state non-volatile memory array is close to the end of its useful life; and
(2) a command issued by the host system that is triggered at least in part by memory errors in the first solid-state non-volatile memory array reported by the first controller,wherein the storage subsystem is configured to be placed in the switch device mode prior to an actual failure of the first solid-state non-volatile memory array,wherein, due to the re-direction of data access commands, the storage subsystem provides the operating system files to the host system from the second solid-state non-volatile memory array when the host system attempts to read such files from the first solid-state non-volatile memory array to cause the host to boot up from the second solid-state non-volatile memory array without a prior failure of a data access command executed at the first non-volatile memory array and without a need to modify the host system'"'"'s BIOS.
8 Assignments
0 Petitions
Accused Products
Abstract
A storage subsystem contains multiple non-volatile memory arrays that are accessible to a host system when the storage subsystem is connected thereto. The storage subsystem implements commands and/or modes for enabling the host system to create and use backup copies of files, such that the host system can recover when files become corrupted or otherwise lost. In one embodiment, the storage subsystem presents the non-volatile memory arrays to the host'"'"'s operating system as distinct storage devices (e.g., ATA device 0 and 1), and implements special commands for copying data between these storage devices. The subsystem may alternatively present the memory arrays to the host operating system as a single storage device. The storage subsystem may have a standard form factor, such as a form factor commonly used for memory cards.
292 Citations
17 Claims
-
1. A storage subsystem comprising:
-
a first controller connected to, and being capable of writing data to and reading data from, a first solid-state non-volatile memory array; a second controller connected to, and being capable of writing data to and reading data from, a second solid-state non-volatile memory array; and a connector for connecting the storage subsystem to a host system, said connector coupled to the first and second controllers such that the first and second controllers are capable of receiving storage access commands from the host system; wherein the first controller is capable of presenting at least a portion of the first non-volatile memory array to the host system as storage space of ATA device 0, and the second controller is capable of presenting at least a portion of the second non-volatile memory array to the host system as storage space of ATA device 1, wherein both the first and second solid-state non-volatile memory arrays include operating system files associated with a boot up process of the host system; wherein the storage subsystem is capable of being placed into a switch device mode in which data access commands issued by the host system to ATA device 1 are re-directed to the first non-volatile memory array, ATA device 0, and data access commands issued by the host system to ATA device 0 are re-directed to the second non-volatile memory array, ATA device 1, in response to an anticipated failure based on at least one of; (1) a determination, based at least in part on usage or wear-level statistics of the first solid-state non-volatile memory array, that the first solid-state non-volatile memory array is close to the end of its useful life; and (2) a command issued by the host system that is triggered at least in part by memory errors in the first solid-state non-volatile memory array reported by the first controller, wherein the storage subsystem is configured to be placed in the switch device mode prior to an actual failure of the first solid-state non-volatile memory array, wherein, due to the re-direction of data access commands, the storage subsystem provides the operating system files to the host system from the second solid-state non-volatile memory array when the host system attempts to read such files from the first solid-state non-volatile memory array to cause the host to boot up from the second solid-state non-volatile memory array without a prior failure of a data access command executed at the first non-volatile memory array and without a need to modify the host system'"'"'s BIOS. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A storage subsystem, comprising:
-
first and second solid-state non-volatile memory arrays; controller circuitry which is capable of writing data to, and reading data from, each of the first and second non-volatile memory arrays in response to commands received from a host system; and a connector for connecting the storage subsystem to the host system, said connector coupled to the controller circuitry; wherein the controller circuitry is capable of maintaining the second non-volatile memory array hidden from the host system while using the second non-volatile memory array to maintain a backup copy of data written by the host system to the first non-volatile memory array, such that the backup copy is maintained transparently to the host system, and wherein the controller circuitry implements non-vendor-specific ATA storage access commands, and implements at least one vendor-specific command that enables the host system to access backup data stored in the second non-volatile memory array, wherein the storage subsystem is capable of being placed into a switch device mode in which commands received from the host system for the first non-volatile memory array, presented to the host system as ATA device 0, are performed on the second non-volatile memory array, presented to the host system as ATA device 1, in response to an anticipated failure of the first non-volatile memory array based on at least one of; (1) a determination, based at least in part on usage or wear-level statistics of the first non-volatile memory array, that the first non-volatile memory array is close to the end of its useful life; and (2) a command issued by the host system that is triggered at least in part by memory errors in the first non-volatile memory array reported by the controller, wherein the storage subsystem is configured to be placed in the switch device mode prior to an actual failure of the first solid-state non-volatile memory array, wherein, due to the re-direction of data access commands, the storage subsystem provides the operating system files to the host system from the second solid-state non-volatile memory array when the host system attempts to read such files from the first solid-state non-volatile memory array to cause the host to boot up from the second solid-state non-volatile memory array without a prior failure of a data access command executed at the first non-volatile memory array and without a need to modify the host system'"'"'s BIOS. - View Dependent Claims (15, 16, 17)
-
Specification