IP Library Granted Patent US 9,448,921
Granted Patent B2
US 9,448,921 · App. 13/879,708 · Granted Sep 20, 2016

Page allocation for flash memories

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,448,921
App. No.
13/879,708
Granted
Sep 20, 2016
Kind
B2
Abstract

Technologies are described herein for allocating pages in a flash memory. Some example technologies may receive multiple data elements and a write request to write the multiple data elements to the flash memory. Example technologies may identify a correlation between a subset of the data elements based on correlation criteria. Example technologies may allocate neighboring pages of the flash memory for storing the subset of the data elements. Example technologies may write the subset of the data elements into the allocated pages.

Claims (38)

1. A computer-implemented method to allocate pages in a flash memory, the method comprising:

receiving a plurality of data elements and a write request to write the plurality of data elements to the flash memory, wherein the plurality of data elements comprises a plurality of files or file segments;

identifying, by a computing device, a correlation between a subset of the data elements based on correlation criteria by computing a correlation score for the subset of the data elements, wherein the correlation score is computed based on a statistical model associated with one or more of, a heuristic and a user-interaction record specifying the correlation criteria, wherein the subset of the data elements comprises consecutive video frames of a video file;

allocating, by the computing device, neighboring pages of the flash memory for storing the subset of the data elements;

writing, by the computing device, the subset of the data elements into the allocated pages;

receiving a series of read requests to read the subset of the data elements; and

reading, by the computing device, the subset of the data elements from the allocated pages and additional pages neighboring the allocated pages, wherein overlapping pages of the allocated pages and the additional pages within different read requests from the series of read requests are read once.

2. The method of claim 1 , wherein

reading, by the computing device, the subset of the data elements from the allocated pages and additional pages neighboring the allocated pages is according to a joint decoding decision that compensates for inter-cell interference.

3. The method of claim 1 , wherein identifying the correlation between the subset of the data elements based on the correlation criteria comprises determining that the subset of the data elements are correlated when the subset of the data elements are accessed concurrently, sequentially, or within a threshold amount of time.

4. The method of claim 3 , wherein determining that the subset of the data elements are correlated when the subset of the data elements are accessed concurrently, sequentially, or within the threshold amount of time comprises determining that the subset of the data elements are correlated based on the monitoring record of previous accesses of the subset of the data elements.

5. The method of claim 3 , wherein determining that the subset of the data elements are correlated when the subset of the data elements are accessed concurrently, sequentially, or within the threshold amount of time comprises determining that the subset of the data elements are correlated based on the heuristic.

6. The method of claim 3 , wherein determining that the subset of the data elements are correlated when the subset of the data elements are accessed concurrently, sequentially, or within the threshold amount of time comprises determining that the subset of the data elements are correlated based on the user-interaction record containing user input of the correlation.

7. The method of claim 1 , wherein the neighboring pages comprises adjacent pages within a wordline.

8. The method of claim 1 , wherein the neighboring pages comprises adjacent pages between multiple wordlines.

9. The method of claim 1 , wherein the flash memory comprises a NAND type flash memory.

10. The method of claim 1 , wherein the flash memory is a single-level type flash memory.

11. A non-transitory computer-readable medium comprising computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

receive a plurality of data elements and a write request to write the plurality of data elements to a flash memory, wherein the plurality of data elements comprises one or more of a HyperText Markup Language (HTML) file, a video file, and an image file;

identify a correlation between a subset of the data elements based on correlation criteria, by computing a correlation score for the subset of the data elements, wherein the correlation score is computed based on a statistical model associated with one or more of a heuristic and a user-interaction record specifying the correlation criteria, wherein the subset of the data elements comprises consecutive video frames of the video file;

allocate neighboring pages of the flash memory for storing the subset of the data elements;

write the subset of the data elements into the allocated pages; and

in response to a receipt of a series of read requests to read the subset of the data elements, read the subset of the data elements from the allocated pages and additional pages neighboring the allocated pages, wherein overlapping pages of the allocated pages and the additional pages within different read requests from the series of read requests are read once.

12. The non-transitory computer-readable medium of claim 11 , further comprising computer-executable instructions stored thereon which, when executed by the computer, cause the computer to:

read the subset of the data elements from the allocated pages and the additional pages neighboring the allocated pages according to a joint decoding decision that compensates for inter-cell interference.

13. The non-transitory computer-readable medium of claim 11 , wherein to identify the correlation between the subset of the data elements based on the correlation criteria, the computer-executable instructions further cause the computer to determine that the subset of the data elements are correlated when the subset of the data elements are accessed concurrently, sequentially, or within a threshold amount of time.

14. The non-transitory computer-readable medium of claim 11 , wherein the subset of the data elements comprises a first data element including information of a first product and a second data element including information of a second product that is related to the first product.

15. The non-transitory computer-readable medium of claim 11 , wherein the neighboring pages comprises adjacent pages within a wordline.

16. A computing device, comprising:

a flash memory comprising a plurality of memory cells arranged to form a plurality of memory pages; and

an operating system coupled to the flash memory and configured to:

receive a plurality of data elements and a write request to write the plurality of data elements to the flash memory, wherein the plurality of data elements comprises a plurality of files or file segments;

identify a correlation between a subset of the data elements based on correlation criteria by computing a correlation score for the subset of the data elements, wherein the correlation score is computed based on a statistical model associated with one or more of a heuristic and a user-interaction record specifying the correlation criteria;

allocate neighboring pages of the flash memory for storing the subset of the data elements;

write the subset of the data elements into the allocated pages; and

in response to a receipt of a series of read requests to read the subset of the data elements, read the subset of the data elements from the allocated pages and additional pages neighboring the allocated pages, wherein overlapping pages of the allocated pages and the additional pages within different read requests from the series of read requests are read once.

17. The computing device of claim 16 , wherein the operating system is further configured to:

read the subset of the data elements from the allocated pages and the additional pages neighboring the allocated pages according to a joint decoding decision that compensates for inter-cell interference.

Assignments (2)
RELEASE OF SECURITY INTEREST Recorded Nov 29, 2023
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 065712/0585 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →