Managed NAND data compression
Apparatus and methods are disclosed, including providing available data operations for the storage system processor to a host processor, identifying data operations to be performed by the storage system processor, and assigning identified data operations to the storage system processor to reduce bus traffic between the host processor and the storage system processor, to improve host processor performance, and to reduce energy use by the host processor.
1 . A device comprising:
a plurality of non-volatile memory cells; and
a memory controller coupled to the plurality of non-volatile memory cells, wherein the memory controller is configured to:
indicate, to a host processor, one or more data operations that the memory controller is configurable to perform;
receive, from the host processor, an indication of a data operation of the one or more data operations; and
perform the data operation on one or more non-volatile memory cells of the plurality of non-volatile memory cells based on the indication.
2 . The device of claim 1 , wherein the memory controller is configured to perform the data operation on a contiguous range of a subset of non-volatile memory cells of the plurality of non-volatile memory cells.
3 . The device of claim 1 , wherein the plurality of non-volatile memory cells corresponds to flash memory.
4 . The device of claim 1 , wherein the host processor is disposed on a separate chip than the memory controller, and wherein the host processor and the memory controller are configured to communicate through a bidirectional serial communication interface.
5 . The device of claim 1 , wherein the memory controller is configured as an interface between a host device comprising the host processor and a non-volatile memory subsystem comprising the plurality of non-volatile memory cells.
6 . The device of claim 1 , wherein the one or more data operations comprises a data migration operation.
7 . The device of claim 1 , wherein the memory controller is configured to indicate the one or more data operations based on transmitting a list structure indicating the one or more data operations.
8 . The device of claim 1 , wherein the device corresponds to an embedded removable memory device.
9 . The device of claim 1 , comprising a plurality of memory controllers that includes the memory controller.
10 . A tangible, non-transitory, computer-readable medium comprising instructions that, when executed by a host processor, causes a host device to perform operations comprising:
receiving an indication of a plurality of data operations that a memory controller of a memory device is configurable to perform;
identifying a data operation of the plurality of data operations to be performed by the memory controller; and
assigning the identified data operation to the memory controller.
11 . The tangible, non-transitory, computer-readable medium of claim 10 , wherein identifying the data operation is based on determining to reduce memory device power consumption.
12 . The tangible, non-transitory, computer-readable medium of claim 10 , wherein the plurality of data operations comprises a data migration operation.
13 . The tangible, non-transitory, computer-readable medium of claim 10 , comprising:
generating a trigger for the identified data operation; and
associating the trigger with the identified data operation.
14 . The tangible, non-transitory, computer-readable medium of claim 13 , comprising communicating, to the memory controller, the identified data operation and the trigger via a bidirectional serial communication interface.
15 . A method, comprising:
indicating, to a host processor, one or more data operations that a memory controller is configurable to perform;
receiving, from the host processor, an instruction configured to cause the memory controller to perform a data operation of the one or more data operations; and
performing, based on the instruction, the data operation on a plurality of non-volatile memory cells.
16 . The method of claim 15 , wherein indicating the one or more data operations comprises sending an indication via a bidirectional serial communication interface.
17 . The method of claim 15 , wherein performing the data operation comprises performing a data migration from a first subset of the plurality of non-volatile memory cells to a second subset of the plurality of non-volatile memory cells.
18 . The method of claim 15 comprising receiving a trigger for the data operation, wherein the trigger corresponds to a time-based condition;
detecting the trigger based on latency since a previous host activity; and
in response to detecting the trigger, performing the data operation.
19 . The method of claim 15 , wherein performing the data operation comprises clearing data of one or more non-volatile memory cells of the plurality of non-volatile memory cells, reading data of the one or more non-volatile memory cells of the plurality of non-volatile memory cells, or writing data of the one or more non-volatile memory cells of the plurality of non-volatile memory cells, or any combination thereof.
20 . The method of claim 15 , wherein performing the data operation occurs during a detected period of inactivity.