Method and Apparatus for Providing Low Latency Solid State Memory Access
First Claim
1. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via a memory controller snooping, comprising;
generating a first submission queue entry (“
SQE”
) for a first SSD memory access by a host to a connected SSD;
pushing the first SQE from the host to a submission queue (“
SQ”
) viewable by a controller of the SSD;
incrementing counter value of an SQ header pointer to reflect storage of the first SQE in the SQ;
detecting the first SQE in the SQ by a snooping component in the memory controller in accordance with the SQ header pointer; and
fetching the first SQE from the snooping component in the controller and executing one or more SSD memory instructions in response to content of the first SQE.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention discloses a process of low latency non-volatile memory access using various approaches. In one aspect, a process for low latency memory access to a non-volatile memory (“NVM”) of a solid state drive (“SSD”) is able to generate a submission queue entry (“SQE”) for an SSD memory access by a host to a connected SSD. Upon pushing the SQE from the host to a submission queue (“SQ”) viewable by a controller of the SSD, the counter value of an SQ header pointer is incremented to reflect storage of the first SQE in the SQ. After detecting the SQE in the SQ by a snooping component in the memory controller in accordance with the SQ header pointer, the SQE is fetched from the SQ by the controller and one or more SSD memory instructions are subsequently executed in response to content of the SQE.
-
Citations
29 Claims
-
1. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via a memory controller snooping, comprising;generating a first submission queue entry (“
SQE”
) for a first SSD memory access by a host to a connected SSD;pushing the first SQE from the host to a submission queue (“
SQ”
) viewable by a controller of the SSD;incrementing counter value of an SQ header pointer to reflect storage of the first SQE in the SQ; detecting the first SQE in the SQ by a snooping component in the memory controller in accordance with the SQ header pointer; and fetching the first SQE from the snooping component in the controller and executing one or more SSD memory instructions in response to content of the first SQE. - View Dependent Claims (2, 3, 4, 5)
- NVM”
-
6. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via a host CPU polling, comprising;performing a first SSD memory access by a controller of SSD in accordance with a first submission queue entry (“
SQE”
) generated by a connected host;generating a first completion queue entry (“
CQE”
) in accordance with a first result of performance of the first SSD memory access;storing the first CQE by the controller to a completion queue (“
CQ”
) viewable by the host;periodically polling the CQ by the host to identify whether the first CQE is present in response to the first SEQ; fetching the first CQE from the CQ upon detection of the first CQE by the host via a polling activity; and obtaining by the host the first result of the performance based on the first CQE. - View Dependent Claims (7, 8, 9, 10)
- NVM”
-
11. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via a cache content access, comprising;receiving a first write command by a memory controller of SSD from a host for an SSD memory access; confining writing process associated with the first write command to one (1) logic unit number (“
LUN”
) in an SSD at a given time for performing the first write command;writing first content from the host to the LUN in accordance with the first write command; caching the first content associated with the first write command to a cache while the first content is copied to the LUN; and allowing the host to access the first content via the cache while the LUN is programmed for storing the first content. storing valid data during a process of garbage collection. - View Dependent Claims (12, 13, 14, 15)
- NVM”
-
16. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via an LUN block erasing process, comprising;receiving a first write command by a memory controller from a host for an SSD memory access; identifying a first logic unit number (“
LUN”
) in an SSD as a destination storage location for the first write command;erasing all blocks within the first LUN; and programming first content from the host to the first LUN in accordance with the first write command. - View Dependent Claims (17, 18, 19, 20)
- NVM”
-
21. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via accessing erase-marked logic unit number (“
LUN”
), comprising;receiving a memory command by a memory controller of SSD from a host for an SSD memory access; identifying targeted LUN associated with the memory command in response to facilitation of a flash translation table (“
FTL”
);determining whether the targeted LUN is busy in performing a garbage collection (“
GC”
) process with copying a set of valid pages from an erase-marked LUN to the targeted LUN; andexecuting the memory commend in accordance with the erase-marked LUN while the GC process to the targeted LUN continues. - View Dependent Claims (22, 23)
- NVM”
-
24. A method for memory access to a non-volatile memory (“
- NVM”
) solid state drive (“
SSD”
) via a temporarily parking process, comprising;receiving a first submission queue entry (“
SQE”
) from a first submission queue (“
SQ”
) for a first SSD memory access by a host to an SSD;identifying first LUN associated with the first SQE in accordance with facilitation of a flash translation table (“
FTL”
);determining whether the first LUN is busy for performing scheduled tasks and identifying whether a first local temporarily parking lot (“
TPL”
) associated with the first LUN is full if the first LUN is busy; andstoring the first SQE in the first local TPL if the first local TPL is not full. - View Dependent Claims (25, 26, 27, 28, 29)
- NVM”
Specification