Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module

US10565123B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10565123-B2
Application numberUS-201715726313-A
CountryUS
Kind codeB2
Filing dateOct 5, 2017
Priority dateApr 10, 2017
Publication dateFeb 18, 2020
Grant dateFeb 18, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A host compiles code to perform a set of one or more database operations on target and embeds an indication of whether the target data is randomly accessed data or sequentially accessed data. The compiled code is transmitted to the compute engine inside a memory system that maintains a first portion of memory for storing sequentially accessed data and a second portion of memory for storing randomly accessed data. The memory system (e.g. SSD) maintains reduced size L2P tables in volatile working memory by maintaining coarse L2P tables in the working memory for use with sequentially accessed data and maintaining fine L2P tables in the working memory for use with randomly accessed data. The compute engine uses the compiled code to perform the set of one or more database operations on the target data using the working memory.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a memory system, comprising: non-volatile memory; working memory separate from the non-volatile memory, the working memory is configured to store a coarse logical address to physical address table for use with data stored in the non-volatile memory as sequentially accessed data and a fine logical address to physical address table for use with data stored in the non-volatile memory as randomly accessed data; a controller in communication with the non-volatile memory and the working memory, the controller includes a processor, the controller is configured to create data for the coarse logical address to physical address table by reading fine logical address to physical address data and reducing the fine logical address to physical address data to coarse logical address to physical address data, the controller is configured to: randomly access data stored in the non-volatile memory as randomly accessed data in response to a request from a host by translating a logical address from the host to a physical address in the non-volatile memory using the fine logical address to physical address table in the working memory, sequentially access data stored in the non-volatile memory as sequentially accessed data in response to a request from the host by translating a logical address from the host to a physical address in the non-volatile memory using the coarse logical address to physical address table in the working memory, and randomly access data stored in the non-volatile memory as sequentially accessed data in response to a request from the host by translating a logical address from the host to a physical address in the non-volatile memory using the coarse logical address to physical address table in the working memory; and a compute engine positioned within the memory system, the compute engine is in communication with the controller and the working memory, the compute engine is different than the processor included in the controller, the compute engine is configured to receive code from the host and perform one or more database operations on target data in the non-volatile memory by executing the code and using the working memory. 2. The apparatus of claim 1 , wherein: the code received from the host is compiled code that includes an indication of whether the target data is sequentially accessed data or randomly accessed data. 3. The apparatus of claim 2 , wherein: the controller includes a host interface; the compute engine is behind the host interface; the host interface is configured to receive the compiled code from the host and forward the compiled code to the compute engine; and the compute engine is further configured to use the controller to perform address translation between logical and physical addresses for the target data based on the coarse logical address to physical address table and the fine logical address to physical address table in the working memory. 4. The apparatus of claim 1 , wherein: the non-volatile memory includes a first portion of non-volatile memory configured to store sequentially accessed data comprising leaf node data for one or more database data structures and a second portion of non-volatile memory configured to store randomly accessed data comprising branch node data for one or more database data structures; the controller is further configured to use the coarse logical address to physical address table to perform address translation between logical and physical addresses for sequentially accessed data stored in the first portion of non-volatile memory; the controller is further configured to use the fine logical address to physical address table to perform address translation between logical and physical addresses for randomly accessed data stored in the second portion of non-volatile memory; the coarse logical address to physical address table is separate from the leaf node data and the branch node data; and the fine logical address to physical address table is separate from the leaf node data and the branch node data. 5. The apparatus of claim 1 , wherein: the non-volatile memory includes a first portion of non-volatile memory configured to store sequentially accessed data comprising leaf node data for one or more database data structures and a second portion of non-volatile memory configured to store randomly accessed data comprising branch node data for one or more database data structures; the coarse logical address to physical address table is separate from the leaf node data and the branch node data; the fine logical address to physical address table is separate from the leaf node data and the branch node data; the compute engine is further configured to use the coarse logical address to physical address table to perform address translation between logical and physical addresses for sequentially accessed data stored in the first portion of non-volatile memory; and the compute engine is further configured to use the fine logical address to physical address table to perform address translation between logical and physical addresses for randomly accessed data stored in the second portion of non-volatile memory. 6. The apparatus of claim 1 , wherein: the non-volatile memory includes a first portion of non-volatile memory configured to store leaf nodes of a database as sequentially accessed data and a second portion of non-volatile memory configured to store branch nodes of the database randomly accessed data; the coarse logical address to physical address table is separate from the leaf nodes and the branch nodes; the fine logical address to physical address table is separate from the leaf nodes and the branch nodes; the compute engine is further configured to use the coarse logical address to physical address table to perform address translation between logical and physical addresses for the leaf nodes stored in the first portion of non-volatile memory; and the compute engine is further configured to use the fine logical address to physical address table to perform address translation between logical and physical addresses for the branch nodes stored in the second portion of non-volatile memory. 7. The apparatus of claim 2 , wherein: wherein the indication of whether the target data is sequentially accessed data or random accessed data is inferred from a type of the one or more database operations specified by the code. 8. The apparatus of claim 1 , wherein: the working memory is volatile memory; and the compute engine is further configured to use the volatile working memory to store working data for the compute engine while performing the one or more database operations. 9. The apparatus of claim 1 , wherein: the non-volatile memory includes a memory package that is separate from and connected to the controller; and the memory package includes one or more non-volatile memory dies and the compute engine. 10. The apparatus of claim 9 , wherein: the compute engine is positioned on a first memory die of the one of the non-volatile memory dies; the code received from the host is compiled code that is received by the compute engine on the first memory die; and the compute engine is configured to execute the compiled code to access the target data on the first memory die based on the coarse logical address to physical address table in the working memory for sequentially accessed data, and the fine logical address to physical address table in the working memory for data randomly accessed data. 11. The apparatus of claim 1 , wherein: the memory system is a solid state drive; and the controller includes a host interface, the compute engine is in the solid state

Assignees

Inventors

Classifications

  • Latency reduction · CPC title

  • Correctness of operation, e.g. memory ordering · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Virtual address space management · CPC title

  • Logical to physical mapping or translation of blocks or pages · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10565123B2 cover?
A host compiles code to perform a set of one or more database operations on target and embeds an indication of whether the target data is randomly accessed data or sequentially accessed data. The compiled code is transmitted to the compute engine inside a memory system that maintains a first portion of memory for storing sequentially accessed data and a second portion of memory for storing rand…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 18 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).