IP Library Granted Patent US 9,971,547
Granted Patent B2
US 9,971,547 · App. 15/409,127 · Granted May 15, 2018

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

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,971,547
App. No.
15/409,127
Granted
May 15, 2018
Kind
B2
Abstract

Methods, systems and computer-readable storage media 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 (45)

1. A storage system comprising:

a device interface communicatively coupled to a non-volatile memory (NVM), the NVM comprising a plurality of read units; and

a storage controller communicatively coupled to the NVM via the device interface, the storage controller configured to

determine a read unit address and encoded length information of one of the plurality of read units of the NVM based at least in part on a page address of a particular one of a plurality of pages in a storage space address;

decode the encoded length information;

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;

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

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

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

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

4. The storage system 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 storage system of claim 1 , wherein updating the space usage information is in response to receiving, from a host, a disk write command.

6. The storage system of claim 1 , wherein 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 storage system of claim 1 , wherein the storage controller is further configured to update 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 storage system of claim 1 , wherein:

the 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 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 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 storage system of claim 1 , wherein the storage controller is further configured to access a particular one of a plurality of entries of a map table, the map table associating each of the pages with a respective one of the map table entries, the particular page being associated with the particular map table entry.

10. The storage system of claim 9 , wherein the 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. A storage system comprising:

a device interface communicatively coupled to a non-volatile memory (NVM);

a host interface communicatively coupled to a host; and

a storage controller communicatively coupled to the NVM via the device interface and the host via the host interface, the storage controller configured to

determine, based at least in part on a storage space address of the host, an element describing a transfer amount value in units of a transfer amount granularity, and a space amount value in units of a space amount granularity, wherein the transfer amount granularity is greater than the space amount granularity;

determine, based at least in part on the element, the transfer amount value and the space amount value;

read, from the NVM, data corresponding to the storage space address, based at least in part on the transfer amount value, and

track space usage information of the NVM based at least in part on the space amount value.

12. The storage system of claim 11 , wherein the transfer amount value represents an integer multiple of a smallest quanta of error-correctable data readable from the NVM.

13. The storage system of claim 12 , wherein the smallest quanta of error-correctable data readable from the NVM corresponds to a raw data portion and low-level error-correction code bits associated with the raw data portion.

14. The storage system of claim 11 , further comprising transforming at least a portion of the data and returning at least a portion of results of the transforming to the host in response to a read request from the host that specifies the storage space address of the host.

15. The storage system of claim 14 , wherein the transforming comprises at least one of uncompressing and decrypting.

16. The storage system of claim 11 , wherein the determining of the element is at least in part via a mapping module enabled to provide, based at least in part on the storage space address, the element and a starting address of the data in the NVM.

17. The storage system of claim 16 , wherein the reading of the data reads data from the NVM beginning at the starting address.

18. The storage system of claim 11 , further comprising managing recycling respective portions of the NVM based at least in part on the space amount value.

19. A non-transitory computer readable medium having processor-executable instructions stored thereon that, when executed by a processor, cause the processor to:

determine 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 one of a plurality of pages in a storage space address;

decode the encoded length information;

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

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

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

20. The non-transitory computer readable medium of claim 19 , wherein the processor is located in a storage controller that is operable as a solid-state disk controller enabled to communicate with a host at least in part via a host interface compatible with a storage interface standard.