US20180293174A1

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

Claim Score by NHIP

Read claim 1, the broadest

Abstract

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.

US20180293174A1, drawing sheet 1
Sheet 1 of 32

Term

11 yearsto projected expiry

Projected expiry 5 October 2037, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 38, average(NHIP)An apparatus, comprising:a memory system, comprising: non-volatile memory;a controller in communication with the non-volatile memory;working memory connected to the controller and configured to store a coarse logical address to physical address table for use with storing sequentially accessed data related to database operations and a fine logical address to physical address table for use with storing randomly accessed data related to database operations;and a compute engine positioned within the memory system and in communication with the controller, wherein the compute engine is configured to: receive code from a host, the code including instructions for performing one or more database operations on target data in the non-volatile memory and an indication of whether the target data is sequentially accessed data or randomly accessed data, perform the one or more database operations based on the code, and the target data being accessed using the coarse logical address to physical address table in response to the indication denoting that the target data is sequentially accessed data, and perform the one or more database operations based on the code, and the target data being accessed using the fine logical address to physical address table in response to the indication denoting that the target data is randomly accessed data.
  2. 15
    A method, comprising:maintaining, in a memory system, reduced size logical to physical (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;receiving, by the memory system from a host, compiled code instructing a compute engine within the memory system to perform a set of one or more database operations on target data in the memory system, wherein the compiled code is embedded with an indication of whether the target data is randomly accessed data or sequentially accessed data;using, by the compute engine inside the memory system, the compiled code to perform the set of one or more database operations on the target data using the working memory, including using space in the working memory made available due to reduced size L2P tables, to store working data for the set of one or more database operations;and performing address translation for a logical address in the compiled code using coarse L2P tables or fine L2P tables based on the embedded indication.
  3. 20
    A memory system, comprising:non-volatile memory including a first set of memory cells configured to store branch nodes of a database as randomly accessed data and a second set of memory cells configured to store leaf nodes of the database as sequentially accessed data;working memory;and a controller in communication with the non-volatile memory and the working memory, the controller including a host interface, the controller being configured to: store a first logical address to physical address table in the working memory for use with storing randomly accessed data in the first set of memory cells and a second logical address to physical address table in the working memory for use with storing sequentially accessed data in the second set of memory cells, the first logical address to physical address table providing address translation at a lower level of granularity than the second logical address to physical address table;receive a request from a host via the host interface, the request including an indication of whether target data of the database to be accessed by the request is sequentially accessed data or randomly accessed data;access the target data from the first set of memory cells using the first logical address to physical address table in response to the request including an indication that the target data is randomly accessed data, and access the target data from the second set of memory cells using the second logical address to physical address table in response to the request including an indication that the target data is sequentially accessed data;and a compute engine that is behind the host interface and is in communication with the controller and the working memory, the compute engine being configured to perform data manipulation operations on sequentially accessed data stored in the second set of memory cells.