Non-volatile memory controller cache architecture with support for separation of data streams
First Claim
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;
retrieve a physical block address corresponding to a logic block address;
extract information from the physical block address;
perform a lookup operation in cache using the extracted information;
perform a range check of the physical block address in response to the lookup operation succeeding; and
read data from the cache in response to the range check succeeding,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; 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: retrieve a physical block address corresponding to a logic block address; extract information from the physical block address; perform a lookup operation in cache using the extracted information; perform a range check of the physical block address in response to the lookup operation succeeding; and read data from the cache in response to the range check succeeding. An architecture of the cache supports separation of data streams, in addition to supporting parallel writes to different non-volatile memory channels. The cache architecture also supports pipelining of the parallel writes to different non-volatile memory planes. The non-volatile memory controller is also configured to perform a direct memory lookup in the cache based on a physical block address.
42 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; retrieve a physical block address corresponding to a logic block address; extract information from the physical block address; perform a lookup operation in cache using the extracted information; perform a range check of the physical block address in response to the lookup operation succeeding; and read data from the cache in response to the range check succeeding, 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. A computer-implemented 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; and 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. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, 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; and 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. - View Dependent Claims (18, 19)
-
Specification