Additive library for data structures in a flash memory
First Claim
Patent Images
1. A method for writing data to a data structure implemented in a flash memory, the method comprising:
- receiving a write request from a client at the flash memory, wherein the flash memory includes a controller and a library that includes a plurality of calls that are performed by the controller, wherein the controller is configured to perform the write request and wherein the library allows the client to specify a particular call of the plurality of calls directly to the library of the flash memory such that the client determines how the write request is performed in the flash memory, wherein the write request is to write an update to a data structure stored in the flash memory in accordance with the particular call, wherein the write request includes an update and a location and wherein the library supports write requests and read requests;
translating the location to identify a page in the data structure and to identify a location in the page that corresponds to the location in the write request; and
overwriting the location in the page with the update when an overwrite operation can be performed, wherein the update is written to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed.
9 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for managing data structures in a flash memory. A library is provided that supports read requests and write requests. The library allows reads and writes to be implemented without requiring the client to understand how the data structure is implemented in the flash memory.
187 Citations
21 Claims
-
1. A method for writing data to a data structure implemented in a flash memory, the method comprising:
-
receiving a write request from a client at the flash memory, wherein the flash memory includes a controller and a library that includes a plurality of calls that are performed by the controller, wherein the controller is configured to perform the write request and wherein the library allows the client to specify a particular call of the plurality of calls directly to the library of the flash memory such that the client determines how the write request is performed in the flash memory, wherein the write request is to write an update to a data structure stored in the flash memory in accordance with the particular call, wherein the write request includes an update and a location and wherein the library supports write requests and read requests; translating the location to identify a page in the data structure and to identify a location in the page that corresponds to the location in the write request; and overwriting the location in the page with the update when an overwrite operation can be performed, wherein the update is written to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for reading data from a data structure implemented in a flash memory, the method comprising:
-
receiving a read request from a client at a library of the flash memory for data stored in a data structure, wherein the read request includes a location in the data structure and wherein the library supports write requests and read requests, wherein the library flash memory includes a controller, wherein the controller is configured to perform the read request and wherein the library allows the client to specify a particular call of the plurality of calls directly to the library of the flash memory such that the client determines how the particular call is performed in the flash memory; translating the location to identify a page in the data structure and to identify a location in the page that corresponds to the location in the read request; reading the data from the data structure at the location in the page; applying updates to the data that are stored in an in-memory table, wherein the updates stored in the in-memory table correspond to writes to the requested data that were stored in the in-memory table instead of being written to the flash memory; and returning the updated data to the client. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A library configured to provide calls for a client that allows the client to write and read to a data structure stored in flash memory without understanding that the data structure is stored in the flash memory, the library comprising computer executable instructions that, where executed, perform a method for interacting with the data structure in response to a request from the client, the method comprising:
-
receiving the request at the library, the library included in the flash memory, wherein the flash memory includes a controller, wherein the library includes a plurality of calls that can be performed by the controller, wherein the controller is configured to perform the request and wherein the library allows the client to specify a particular call directly to the library of the flash memory such that the client determines how the request is performed in the flash memory; when the request is a read request for data; identifying a page in the data structure stored in the flash memory from information included in the read request; reading the requested data from the identified page; applying updates to the requested data, if any, from an in-memory table, wherein the updates correspond to writes to the requested data that were stored in the in-memory table instead of being written to the flash memory and returning the updated data to the client; and when the request is a write request that includes an update to the data structure; identifying a page in the data structure from information included in the write request; overwriting data in the page with the update when the update only requires bits to be set in the page with an overwrite operation; and writing the update to the in-memory table when the overwrite operation requires bits to be unset. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification