Patent ID: 7464240

Claim:
A solid-state drive comprising; a volatile memory; a non-volatile memory; and a controller for managing read and write requests to the volatile and non-volatile memories; wherein upon receiving a write request including an address and data, the controller determines if the address is referenced at a first location in the volatile memory, and if so, overwrites any data at the first location, and if not referenced in a first location, writes the data to a second location marked as available for writing in the volatile memory, associating the second location with the address, and wherein upon receiving a read request including an address, the controller determines if the address is referenced in at any location in the volatile portion, and if so, reading data from that location, and if not, reading data from the address in the non-volatile memory, and wherein the controller periodically compares valid data volume in the volatile memory with a preset threshold, and upon exceeding the threshold, selects and moves data that has been longest in the volatile memory without alteration from the volatile to the non-volatile memory, and marks the locations from which the data is moved as available for writing in the volatile portion.