Non-volatile memory controller cache architecture with support for separation of data streams
First Claim
Patent Images
1. A system, comprising:
- non-volatile memory;
a non-volatile memory controller having a cache; and
logic integrated with and/or executable by the non-volatile memory controller, the logic being configured to;
receive a logical block address write request;
retrieve a previous physical block address and heat value associated with the logical block address from memory;
increment the heat value;
compute, by the non-volatile memory controller, a stream for the logic block address based on the incremented heat value;
increment a fill pointer of the stream;
write data of the logic block address write request to a page indexed by the incremented fill pointer; and
retrieve an updated physical block address of the page indexed by the incremented fill pointer,wherein an architecture of the cache supports separation of data streams,wherein the cache architecture supports parallel writes to different non-volatile memory channels,wherein the cache architecture supports pipelining of the parallel writes to different non-volatile memory planes,wherein the non-volatile memory controller is configured to perform a direct memory lookup in the cache based on a physical block address.
1 Assignment
0 Petitions
Accused Products
Abstract
A system according to one embodiment includes non-volatile memory, and a non-volatile memory controller having a cache. An architecture of the cache supports separation of data streams, and the cache architecture supports parallel writes to different non-volatile memory channels. Additionally, the cache architecture supports pipelining of the parallel writes to different non-volatile memory planes. Furthermore, the non-volatile memory controller is configured to perform a direct memory lookup in the cache based on a physical block address. Other systems, methods, and computer program products are described in additional embodiments.
46 Citations
19 Claims
-
1. A system, comprising:
-
non-volatile memory; a non-volatile memory controller having a cache; and logic integrated with and/or executable by the non-volatile memory controller, the logic being configured to; receive a logical block address write request; retrieve a previous physical block address and heat value associated with the logical block address from memory; increment the heat value; compute, by the non-volatile memory controller, a stream for the logic block address based on the incremented heat value; increment a fill pointer of the stream; write data of the logic block address write request to a page indexed by the incremented fill pointer; and retrieve an updated physical block address of the page indexed by the incremented fill pointer, wherein an architecture of the cache supports separation of data streams, wherein the cache architecture supports parallel writes to different non-volatile memory channels, wherein the cache architecture supports pipelining of the parallel writes to different non-volatile memory planes, wherein the non-volatile memory controller is configured to perform a direct memory lookup in the cache based on a physical block address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
separating, using a non-volatile memory controller, data to be written to a non-volatile memory into multiple data streams in cache based on heat of the data; writing the separated data from the cache to the non-volatile memory in parallel through parallel writes to different channels and pipelining of those writes to different planes; and performing a direct memory lookup in the cache based on a physical block address. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a controller to cause the controller to:
-
separate, by the controller, data to be written to a non-volatile memory into multiple data streams based on heat of the data; write, by the controller, the separated data from a cache to the non-volatile memory in parallel through parallel writes to different channels and pipelining of those writes to different planes; and perform, by the controller, a direct memory lookup in the cache based on a physical block address. - View Dependent Claims (19)
-
Specification