Retention based defecting in a hybrid memory system
US-2015058683-A1 · Feb 26, 2015 · US
US9477591B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9477591-B2 |
| Application number | US-201213543100-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 6, 2012 |
| Priority date | Jul 6, 2012 |
| Publication date | Oct 25, 2016 |
| Grant date | Oct 25, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Incoming memory access requests are routed in a set of incoming queues, the incoming memory access requests comprise a range of host logical block addresses (LBAs) that correspond to a memory space of a primary memory. The host LBA range is mapped to clusters of secondary memory LBAs, the secondary memory LBAs corresponding to a memory space of a secondary memory. Each incoming memory access request queued in the set of incoming queues is transformed into one or more outgoing memory access requests that include a range of secondary memory LBAs or one or more clusters of secondary memory LBAs. The outgoing memory access requests are routed in a set of outgoing queues. The secondary memory is accessed using the outgoing memory access requests.
Opening claim text (preview).
What is claimed is: 1. A device, comprising: a hybrid controller configured to manage data transfers between a host processor and a secondary memory, the secondary memory configured to serve as a cache for a primary memory, the primary memory including a memory space corresponding to host logical block addresses (LBAs), the hybrid controller configured to receive incoming memory access requests from the host processor, the memory access requests including a range of host LBAs, the memory access requests comprising: read requests, each read request respectively including a host LBA range; promotion requests, each promotion request respectively including a host LBA range that is aligned to secondary memory LBA clusters; and invalidate requests, each invalidate request respectively including a host LBA range that is aligned to secondary memory LBA clusters; route the incoming memory access requests to a set of incoming queues, the set of incoming queues comprising an incoming free queue containing a number of incoming nodes; map the range of host LBAs into clusters of secondary memory LBAs; transform each incoming memory access request into one or more outgoing memory access requests, each outgoing memory access request including a range or cluster of secondary memory LBAs; route the outgoing memory access requests from the incoming queues into a set of outgoing queues, the set of outgoing queues comprising a set of outgoing execute queues and an outgoing free queue that includes a number of outgoing nodes; use an outgoing node to store data about the outgoing memory access request; make the outgoing node that stores the data about the outgoing memory access request unavailable to store data about other outgoing memory access requests; return the outgoing node to the outgoing free queue after at least a portion of the outgoing memory access request has been executed; and access the secondary memory using the outgoing memory access requests. 2. The device of claim 1 , wherein the incoming queues include one or more of: a receive queue configured to queue the incoming memory access requests; a set of ready queues, each ready queue of the set of ready queues configured to queue memory access requests that are ready for execution, the set of ready queues comprising: a read ready queue configured to queue incoming read requests; a promotion ready queue configured to queue incoming promotion requests; and an invalidate ready queue configured to queue invalidate requests; an overlap queue configured to queue incoming memory access requests having a host LBA range that overlaps with a host LBA range of other data access requests; and an execute queue configured to queue incoming memory access requests that are being executed. 3. The device of claim 1 , wherein the set of outgoing queues comprises a set of outgoing execute queues, wherein each entry in the incoming execute queue is associated with a plurality of entries in an outgoing execute queue. 4. The controller of claim 3 , wherein the set of outgoing queues comprises an outgoing free queue containing a number outgoing nodes wherein an outgoing node is removed from the outgoing free queue when an outgoing memory access request is queued in one of the outgoing execute queues and the outgoing node is returned to the outgoing free queue. 5. A method of operating a hybrid memory system that includes a primary memory and a secondary memory, the method comprising: routing incoming memory access requests in a set of incoming queues, the set of incoming queues comprising: an incoming free queue containing a number of incoming nodes; a receive queue configured to queue each of the incoming memory access requests; a set of ready queues, each ready queue of the set of ready queues configured to queue memory access requests that are waiting for execution, the set of ready queues comprising: a read ready queue configured to queue read requests; a promotion ready queue configured to queue promotion requests; and an invalidate ready queue configured to queue invalidate requests; an execute queue configured to queue data access requests that are being executed; and an overlap queue configured to queue each memory access request having a host LBA range that overlaps with a host LBA range of a memory access request in the set of ready queues or the execute queue, the incoming memory access requests comprising a range of host logical block addresses (LBAs) that correspond to a memory space of the primary memory, the memory access requests comprising: read requests, each read request respectively including a host LBA range; promotion requests, each promotion request respectively including a host LBA range that is aligned to secondary memory LBA clusters; and invalidate requests, each invalidate request respectively including a host LBA range that is aligned to secondary memory LBA clusters; mapping the host LBA range to clusters of secondary memory LBAs, the secondary memory LBAs corresponding to a memory space of the secondary memory; transforming each incoming memory access request queued in the set of incoming queues into one or more outgoing memory access requests, the outgoing memory comprising a range of secondary memory LBAs or one or more clusters of secondary memory LBAs; routing the one or more outgoing memory access requests in a set of outgoing queues; and accessing the secondary memory using the outgoing memory access requests. 6. The method of claim 5 , wherein routing the incoming memory access requests comprises implementing a priority scheme for routing the memory access requests in the set of incoming queues, the priority scheme including routing memory access requests that take smaller amount time to execute before routing memory access request that take a larger amount of time to execute. 7. The method of claim 5 , wherein routing the incoming memory access requests in the set of incoming queues comprises routing one or more of requests to read a host LBA range from the secondary memory, requests to promote a host LBA range to the secondary memory, and requests to invalidate a host LBA range in the secondary memory. 8. The method of claim 5 , wherein routing the incoming memory access requests comprises implementing a priority scheme for routing the incoming memory access requests comprising: routing invalidate requests in the invalidate ready queue to the execute queue as a first priority; routing read requests in the read ready queue to the execute queue as a second priority; and routing promotion requests in the promotion ready queue as a third priority. 9. The method of claim 5 , wherein routing the incoming memory access requests in the incoming queues comprises routing a read request into the execute queue only if the secondary memory LBA range corresponding to the host LBA range of the read request is fully present in the secondary memory. 10. The method of claim 5 , wherein routing the incoming memory access requests in incoming queues comprises routing an invalidate request into the execute queue and adding the secondary memory LBA clusters associated with the invalidate request to a list of free clusters. 11. The method of claim 5 , wherein routing the incoming memory access requests in the incoming queues includes routing a promotion request from the promotion ready queue to the execute queue comprising: determining if secondary memory LBA clusters corresponding to the host LBA range of the promotion request are present in the secondary memory; forming a bitmap to skip promotion of the secondary memory LBA clusters that are present in the secondary memory; determining if a suf
Mapping of cache memory to specific storage devices or parts thereof · CPC title
Address translation · CPC title
Hybrid storage device · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
in block erasable memory, e.g. flash memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.