Patent ID: 8549236

Claim:
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.