Non-volatile storage system with integrated compute engine and optimized use of local fast memory
First Claim
Patent Images
1. A non-volatile storage system, comprising:
- a controller comprising a processor;
local memory connected to the controller, the local memory is configured to store logical to physical translation information, the controller is configured to perform logical to physical translation of a logical address based on the logical to physical translation information stored in the local memory;
non-volatile memory connected to the controller; and
a compute engine connected to the controller and the local memory, the compute engine is separate from the processor, the compute engine is configured to;
receive one or more data manipulation instructions from an entity external to the non-volatile storage system, andperform one or more data manipulation operations, using a working area in the local memory for the one or more data manipulation instructions, on data from the non-volatile memory in response to the one or more data manipulation instructions;
wherein the controller is further configured to reallocate space in the local memory in response to the received one or more data manipulation instructions by reducing space in the local memory allocated to logical to physical translation information including removing logical to physical translation information for logical addresses not accessed by the one or more data manipulation instructions and adding space in the local memory allocated for the working area for the one or more data manipulation instructions.
7 Assignments
0 Petitions
Accused Products
Abstract
A memory system (e.g. a solid state drive) includes one or more non-volatile memory die, a controller in communication with the memory die, a local memory connected to (or part of) the controller and a compute engine inside the memory system that is near the location of the data and can be used to perform common data manipulation operations. When the memory system receives instructions to use the compute engine to perform data manipulation operations, the local memory is reallocated such that an amount of space allocated in the local memory for logical to physical translation information is changed based on the one or more data manipulation instructions.
-
Citations
19 Claims
-
1. A non-volatile storage system, comprising:
-
a controller comprising a processor; local memory connected to the controller, the local memory is configured to store logical to physical translation information, the controller is configured to perform logical to physical translation of a logical address based on the logical to physical translation information stored in the local memory; non-volatile memory connected to the controller; and a compute engine connected to the controller and the local memory, the compute engine is separate from the processor, the compute engine is configured to; receive one or more data manipulation instructions from an entity external to the non-volatile storage system, and perform one or more data manipulation operations, using a working area in the local memory for the one or more data manipulation instructions, on data from the non-volatile memory in response to the one or more data manipulation instructions; wherein the controller is further configured to reallocate space in the local memory in response to the received one or more data manipulation instructions by reducing space in the local memory allocated to logical to physical translation information including removing logical to physical translation information for logical addresses not accessed by the one or more data manipulation instructions and adding space in the local memory allocated for the working area for the one or more data manipulation instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 18, 19)
-
-
12. A method of operating a storage system comprising persistent storage, a controller, a local compute core and a local memory for the controller, the persistent storage storing logical address to physical address translation tables, the local memory storing a cache for the logical address to physical address translation tables in the persistent storage, the method comprising:
-
receiving at the controller, from a host system, data manipulation instructions including instructions for performing one or more data manipulation operations on data stored in the persistent storage, the data manipulation instructions refer to logical addresses; in response to receiving the data manipulation instructions from the host system, reallocating space in the local memory by reducing space in the local memory allocated to the cache for the logical address to physical address translation tables in the persistent storage including removing address translation information for logical addresses not accessed by the data manipulation instructions and adding space in the local memory allocated for a working area in the local memory for the one or more data manipulation operations; in response to receiving the data manipulation instructions from the host system, performing the one or more data manipulation operations on the data using the local compute core and the working area in the local memory to determine a result of the one or more data manipulation operations; and conveying to the host system at least one of a completion status of the one or more data manipulation operations and the result of the one or more data manipulation operations. - View Dependent Claims (13, 14)
-
-
15. A non-volatile storage system, comprising:
-
a non-volatile memory package comprising non-volatile memory and a compute core, the non-volatile memory configured to store a plurality of L2P tables representing address translation information for translating between logical addresses and physical addresses; a local memory that is separate from the non-volatile memory, the local memory is configured to store a L2P cache for the plurality of L2P tables stored in the non-volatile memory; and means, in communication with the local memory and the non-volatile memory package, for; receiving instructions to perform data manipulation operations causing the compute core to perform the data manipulation operations on data read from the non-volatile memory and stored in a working area of the local memory for the data manipulation operations, in response to the received instructions, reallocating space in the local memory by reducing space allocated to the L2P cache including removing address translation information for logical addresses not accessed by the received instructions and adding space for the working area of the local memory for the data manipulation operations. - View Dependent Claims (16, 17)
-
Specification