Patent ID: 8977805
Filing Date: 2015-03-10
Classification: G06F,G11C

Abstract:
1. A method for data storage, comprising: in a system that includes a host and a memory controller that is separate from the host and stores data for the host in a non-volatile memory, allocating a portion of a host memory for use by the memory controller; sending, by the memory controller, a signal to the host to exchange information; sending, by the host, a query message to the memory controller responsive to the signal; sending, by the memory controller, a response to the query message, wherein the response to the query message includes a request to retrieve information items relating to one or more source blocks of the non-volatile memory from the portion of the host memory, and a range of addresses indicating one or more storage locations in the host memory from which to retrieve the information items; retrieving, by the host, from the portion of the host memory the information items dependent upon the range of addresses; sending, by the host, the information items to the memory controller; reading, by the memory controller, the one or more source blocks from the non-volatile memory dependent upon the information items; transferring from the memory controller to the host the one or more source blocks; compacting the one or more source blocks in the host by copying valid data from the one or more source blocks into one or more destination blocks; transferring the one or more destination blocks from the host to the memory controller; and storing the one or more destination blocks by the memory controller in the non-volatile memory.