IP Library Granted Patent US 10,740,011
Granted Patent B2
US 10,740,011 · App. 15/946,891 · Granted Aug 11, 2020

Storage system with application to NVM address, span, and length

Inventor: Earl T. Cohen (Oakland, CA)
Assignee: Seagate Technology LLC
G06F3/0638G06F3/0608G06F3/0679G06F12/0246G06F12/1009G06F2212/7201
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 10,740,011
App. No.
15/946,891
Granted
Aug 11, 2020
Kind
B2
Abstract

Methods for determining, by a storage controller, a read unit address and encoded length information of one of the plurality of read units of a non-volatile memory (NVM) based at least in part on a page address of a particular one of a plurality of pages in a storage space address. The encoded length information may be decoded. The storage controller may determine a span specifying an integer number of the read units and a length in units having a finer granularity than the read units based at least in part on the page address. The storage controller may read data associated with the particular page based at least in part on the read unit address and the span. The storage controller may update space usage information of the NVM based at least in part on the length.

Claims (23)

1. A method comprising the steps of:

determining a read unit address and encoded length information of one of a plurality of read units of a non-volatile memory (NVM) based at least in part on a page address of a particular page, the particular page comprising a particular one of a plurality of pages in a storage space address;

decoding the encoded length information;

determining a span specifying an integer number of the read units and a length in units having a finer granularity than the read units based at least in part on the page address;

reading data associated with the particular page based at least in part on the read unit address and the span; and

updating space usage information of the NVM based at least in part on the length.

2. The method of claim 1 , wherein each of the read units of the NVM is a smallest quantum of correctable data readable from the NVM.

3. The method of claim 1 , wherein the step of reading comprises accessing N integer ones of the read units, wherein N is based at least in part on the span.

4. The method of claim 3 , wherein at least one of the N integer ones of the read units comprises at least some of the data associated with the particular page and at least some data associated with at least one other of the pages.

5. The method of claim 1 , wherein updating the space usage information is in response to receiving, from a host, a disk write command.

6. The method of claim 1 , wherein the step of reading the data further comprises parsing a header comprised in the read units, the header comprising an offset identifying the data associated with the particular page.

7. The method of claim 1 , further comprising the step of updating the span of the particular page according to a number of the read units to access for retrieval of the data associated with the particular page.

8. The method of claim 1 , wherein:

the step of determining the read unit address comprises mapping each of the pages to respective read unit addresses of respective ones of the read units, the read unit address being the respective read unit address to which the particular page is mapped;

the step of determining the span comprises mapping each of the pages to respective spans specifying respective integer numbers of the read units, the span being the respective span to which the particular page is mapped; and

the step of determining the length comprises mapping each of the pages to respective lengths in units having a finer granularity than the read units, the length being the respective length to which the particular page is mapped.

9. The method of claim 8 , further comprising the step of accessing a particular one of a plurality of entries of a map table, the map table associating each of the pages with a respective particular map table entry in the plurality of entries of the map table, the particular page being associated with the particular map table entry.

10. The method of claim 9 , wherein the step of accessing further comprises:

mapping the particular page to the read unit address;

mapping the particular page to the span; and

mapping the particular page to the length, wherein the particular map table entry comprises the respective read unit address, the respective span, and the respective length.

11. The method of claim 1 , wherein the steps of determining a read unit address and encoded length information, decoding the encoded length information, determining a span, reading data, and updating space usage information are each performed by a storage controller.

12. The method of claim 11 , wherein the storage controller is a Solid-State Disk/Drive (SSD) controller.

Continuity (4)
Continuation 15409127 · Jan 18, 2017
Continuation 14158380 · Jan 17, 2014
Provisional Application 61755169 · Jan 22, 2013
Related Publication 20180232179A1 · Aug 16, 2018