Patent ID: 8775772

Claim:
A FLASH-based solid state storage system comprising: a system controller including an external communication bus interface adapted to receive WRITE requests from an external host, where each WRITE request includes a Logical Block Address (LBA) and a page of data to be stored at the LBA; a volatile memory space accessible to the system controller; a FLASH memory space containing a plurality of physical address locations, each physical address location being capable of storing a page of data; and one or more communication buses coupling the system controller to the FLASH memory space, wherein the system controller is configured to maintain a logical to physical translation table in the volatile memory space, where the logical to physical translation table includes both: (i) a first group of entries associating a LBA with a physical address location within the FLASH memory space where, for each such entry, data is stored within the physical address location within the FLASH memory space; and (ii) a second group of entries associating a LBA with one or more data identifiers, each data identifier and each physical address location, respectively, being stored in the logical to physical translation table as a predefined plurality of bits, where: (a) each such data identifier is associated with a specific data string such that the same data identifier may be associated with two or more distinct LBAs in the second group of entries, (b) each such data string corresponds to a specific block of data and not to any physical address location within the FLASH memory space; and (c) no physical address location within the FLASH memory space includes stored data corresponding to any of the specific blocks of data that correspond to a data string; and wherein the system controller is configured to respond to a WRITE request containing a data string that is associated with a data identifier by storing an entry in the second group of entries and not accessing the FLASH memory space as a result of such WRITE request, and wherein the system controller is configured to respond to a READ request for data associated with a LBA in the second group of entries by providing a specific data string associated with the data identifier associated with that LBA without accessing the FLASH memory space as a result of the READ request.