SYSTEM AND METHOD FOR LOCALITY DETECTION TO IDENTIFY READ OR WRITE STREAMS IN A MEMORY DEVICE
First Claim
1. A method comprising:
- accessing an identified read stream, the identified read stream comprising one or more read commands and an address range, the address range determined based on addresses in the one or more read commands received in a memory device;
accessing an incoming command;
reviewing an address of the incoming command, wherein the address of the incoming command is not contiguous with the address range of the identified read stream;
analyzing proximity of the address of the incoming command with part or all of the address range of the identified read stream;
determining, based on the analysis of proximity, whether the incoming command is associated with the identified read stream; and
performing at least one access to non-volatile memory in the memory device based on the identified read stream.
7 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for determining locality of an incoming command relative to previously identified write or read streams is disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into multiple submission queues. The memory device fetches the commands from the multiple submission queues, which results in the incoming commands being interspersed. In order to determine whether the incoming commands should be assigned to previously identified read or write streams, the locality of the incoming commands relative to the previously identified read or write streams is analyzed. One example of locality is proximity in address space. In response to determining locality, the incoming commands are assigned to the various streams.
-
Citations
23 Claims
-
1. A method comprising:
-
accessing an identified read stream, the identified read stream comprising one or more read commands and an address range, the address range determined based on addresses in the one or more read commands received in a memory device; accessing an incoming command; reviewing an address of the incoming command, wherein the address of the incoming command is not contiguous with the address range of the identified read stream; analyzing proximity of the address of the incoming command with part or all of the address range of the identified read stream; determining, based on the analysis of proximity, whether the incoming command is associated with the identified read stream; and performing at least one access to non-volatile memory in the memory device based on the identified read stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-volatile memory device comprising:
-
a non-volatile memory having a plurality of memory cells; a communication interface configured to communicate with a host device; and a controller in communication with the non-volatile memory and the communication interface, the controller configured to; identify a write command stream, the write command stream including an address range; receive a non-write command via the communication interface; determine whether the non-write command is associated with the write command stream; and in response to determining that the non-write command is associated with the write command stream, perform a speculative access of the non-volatile memory using part or all of the address range of the write command stream. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-volatile memory device comprising:
-
a non-volatile memory having a plurality of memory cells; a communication interface configured to communicate with a host device; and a controller in communication with the non-volatile memory and the communication interface, the controller configured to; access an identified read stream, the identified read stream comprising an address range and one or more read commands from the host device, the address range defined by a lower address and an upper address for the one or more read commands received in a memory device; determine whether additional commands not yet associated with the identified read stream include addresses in a lower address direction or addresses in an upper address direction, the lower address direction including addresses less than the lower address, the upper address direction including addresses greater than the upper address; and performing a read look ahead of the non-volatile memory based, at least in part, on whether the identified read stream has addresses in the lower address direction or the upper address direction. - View Dependent Claims (17)
-
-
18. A method comprising:
-
accessing an identified read stream, the identified read stream comprising one or more read commands and an address range, the address range determined based on addresses in the one or more read commands received in a memory device; accessing an incoming command; comparing an address of the incoming command with the address range of the identified read stream; determining, based on the comparison, whether the incoming command is associated with the identified read stream; and in response to determining that the incoming command is associated with the identified read stream, executing the incoming command by performing at least one operation on a volatile memory in the memory device without performing the at least one operation on a non-volatile memory in the memory device. - View Dependent Claims (19, 20)
-
-
21. A non-volatile memory device comprising:
-
a non-volatile memory having a plurality of memory cells; a communication interface configured to communicate with a host device; and means for accessing an identified read stream, the identified read stream comprising one or more read commands and an address range, the address range determined based on addresses in the one or more read commands received in a memory device; means for accessing an incoming command received via the communication interface; means for reviewing an address of the incoming command, wherein the address of the incoming command is not contiguous with the address range of the identified read stream; means for analyzing proximity of the address of the incoming command with part or all of the address range of the identified read stream; means for determining, based on the analysis of proximity, whether the incoming command is associated with the identified read stream; and means for performing at least one access to the non-volatile memory based on the identified read stream. - View Dependent Claims (22, 23)
-
Specification