Variable-size flash translation layer

US9495288B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9495288-B2
Application numberUS-201314055336-A
CountryUS
Kind codeB2
Filing dateOct 16, 2013
Priority dateJan 22, 2013
Publication dateNov 15, 2016
Grant dateNov 15, 2016

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 method for using a variable-size flash translation layer is disclosed. Step (A) receives a read request to read data corresponding to a logical block address from a nonvolatile memory. Step (B) reads a particular entry of a map to obtain (i) a physical address of a particular page of the nonvolatile memory, (ii) an offset in the particular page to compressed data previously stored and (iii) a length of the compressed data. The particular entry is associated with the logical block address. Step (C) converts the offset and the length to (i) an address of a given read unit in the particular page and (ii) a number of the read units to be read. Step (D) reads from the particular page at most the number of the read units starting from the given read unit. An offset and length granularity are finer than one read unit.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for using a variable-size flash translation layer, comprising the steps of: receiving, at an apparatus from a host, a read request to read particular data corresponding to a logical block address from a nonvolatile memory of the apparatus; reading a particular one of a plurality of entries in a map to obtain a physical address of a particular one of a plurality of pages of the nonvolatile memory, an offset in the particular page to compressed data previously stored in response to writing the compressed data corresponding to the logical block address, and a length of the compressed data, wherein the particular entry is associated with the logical block address; converting the offset and the length to an address of a given one of a plurality of read units in the particular page, and a number of the read units to be read from the particular page; and reading from the particular page at most the number of the read units starting from the given read unit, wherein a granularity of the offset and the length is finer than a size of one of the read units. 2. The method according to claim 1 , further comprising the steps of: performing error correction decoding on each of the read units as read from the particular page to generate corrected data; and extracting the compressed data from the corrected data according to both the offset in the particular page to the compressed data and the length of the compressed data. 3. The method according to claim 2 , further comprising the steps of: decompressing the compressed data to generate return data; and transferring the return data to the host. 4. The method according to claim 1 , wherein the number of the read units to be read is less than all of the read units in the particular page. 5. The method according to claim 1 , further comprising the step of: determining that at least a portion of the compressed data is in one or more subsequent read units of a subsequent one of the pages of the nonvolatile memory based on both the offset in the particular page to the compressed data and the length of the compressed data combined with an amount of user data in the particular page. 6. The method according to claim 5 , further comprising the step of: reading from the subsequent page at most the one or more subsequent read units. 7. The method according to claim 1 , wherein a first one of the pages of the nonvolatile memory includes a first number of the read units, a second one of the pages of the nonvolatile memory includes a second number of the read units, and the first number is different from the second number. 8. The method according to claim 1 , wherein a first one of the pages of the nonvolatile memory includes a first amount of user data, a second one of the pages of the nonvolatile memory includes a second amount of the user data, and the first amount is different from the second amount. 9. The method according to claim 1 , further comprising the steps of: receiving a write request to write the particular data in the nonvolatile memory; compressing the particular data to generate the compressed data that is smaller than the particular data; writing in the particular page at least a portion of the compressed data; and storing in the particular entry the physical address of the particular page, the offset in the particular page to the compressed data, and the length of the compressed data. 10. The method according to claim 9 , further comprising the step of: writing in the particular page a header that includes at least a portion of the logical block address of the write request and the length. 11. The method according to claim 1 , wherein the logical block address is one of a plurality of logical block addresses and at least one of the read units of the number of the read units includes at least some different data corresponding to a different one of the logical block addresses. 12. The method according to claim 1 , wherein at least one of the read units of the number of the read units includes one or more headers and a portion of the compressed data. 13. An apparatus comprising: a nonvolatile memory; and a circuit configured to receive a read request from a host to read particular data corresponding to a logical block address from the nonvolatile memory, read a particular one of a plurality of entries in a map to obtain a physical address of a particular one of a plurality of pages of the nonvolatile memory, an offset in the particular page to compressed data previously stored in response to writing the compressed data corresponding to the logical block address and a length of the compressed data, wherein the particular entry is associated with the logical block address, convert the offset and the length to an address of a given one of a plurality of read units in the particular page and a number of the read units to be read from the particular page, and read from the particular page at most the number of the read units starting from the given read unit, wherein a granularity of the offset and the length is finer than a size of one of the read units. 14. The apparatus according to claim 13 , wherein the circuit is further configured to perform error correction decoding on each of the read units as read from the particular page to generate corrected data and extract the compressed data from the corrected data according to both the offset in the particular page to the compressed data and the length of the compressed data. 15. The apparatus according to claim 14 , wherein the circuit is further configured to decompress the compressed data to generate return data and transfer the return data to the host. 16. The apparatus according to claim 13 , wherein the number of the read units to be read is less than all of the read units in the particular page. 17. The apparatus according to claim 13 , wherein the circuit is further configured to determine that at least a portion of the compressed data is in one or more subsequent read units of a subsequent one of the pages of the nonvolatile memory based on both the offset in the particular page to the compressed data and the length of the compressed data combined with an amount of user data in the particular page. 18. The apparatus according to claim 17 , wherein the circuit is further configured to read from the subsequent page at most the one or more subsequent read units. 19. The apparatus according to claim 13 , wherein a first one of the pages of the nonvolatile memory includes a first number of the read units, a second one of the pages of the nonvolatile memory includes a second number of the read units, and the first number is different from the second number. 20. The apparatus according to claim 13 , wherein the apparatus is implemented as one or more integrated circuits.

Assignees

Inventors

Classifications

  • using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10) · CPC title

  • Allocation control and policies · CPC title

  • Addressing variable-length words or parts of words · CPC title

  • Address circuits; Decoders; Word-line control circuits · CPC title

  • Address translation · 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 US9495288B2 cover?
A method for using a variable-size flash translation layer is disclosed. Step (A) receives a read request to read data corresponding to a logical block address from a nonvolatile memory. Step (B) reads a particular entry of a map to obtain (i) a physical address of a particular page of the nonvolatile memory, (ii) an offset in the particular page to compressed data previously stored and (iii) a…
Who is the assignee on this patent?
Seagate Technology Llc
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 Nov 15 2016 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).