Resizing namespaces for storage devices

US10402092B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10402092-B2
Application numberUS-201615170106-A
CountryUS
Kind codeB2
Filing dateJun 1, 2016
Priority dateJun 1, 2016
Publication dateSep 3, 2019
Grant dateSep 3, 2019

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 may include receiving, by a controller of a storage device and from a host device, a command to resize a first namespace of a plurality of namespaces stored in a non-volatile memory device of the storage device. The method may further include, relocating, by the controller, a physical block address for the non-volatile memory device from an entry in a virtual to physical table identified by a first index value to an entry in the virtual to physical table identified by a second index value, and in response to relocating the physical block address, updating, by the controller, a mapping, by a namespace table, to indicate an initial index value of a second namespace of the plurality of namespaces.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, by a controller of a storage device and from a host device, a command to resize a first namespace of a plurality of namespaces stored in a non-volatile memory device of the storage device; and in response to receiving the command to resize the first namespace: relocating, by the controller, a physical block address for the non-volatile memory device from an entry in a virtual to physical table identified by a first index value to an entry in the virtual to physical table identified by a second index value, wherein the relocating includes moving the entire physical block address; and in response to relocating the physical block address, updating, by the controller, a mapping, by a namespace table, to indicate an initial index value of a second namespace of the plurality of namespaces to include abutting index values in the virtual to physical table, wherein the namespace table and the virtual to physical table are separate tables, wherein the namespace table includes a namespace identifier that is mapped, by the namespace table, to a corresponding starting virtual to physical index value and to a corresponding namespace size, and wherein each of the namespace sizes represents a specific and separate entry in the namespace table. 2. The method according to claim 1 , wherein: the first namespace is associated with a first set of contiguous index values of the virtual to physical table; and the second namespace is associated with a second set of contiguous index values of the virtual to physical table, the second set of contiguous index values starting with the initial index value indicated by the second table after relocating the physical block address. 3. The method according to claim 2 , wherein: the command to resize indicates adding a quantity of physical block addresses to the first set of contiguous index values for the first namespace, and relocating the physical block address comprises moving the second set of contiguous index values for the second namespace within the virtual to physical table away from the first contiguous index values to permit adding the quantity of physical block addresses to the first set of contiguous index values for the first namespace. 4. The method according to claim 3 , comprising: determining, by the controller, whether one or more intermediate index values in the virtual to physical table permit adding the quantity of physical block addresses to the first set of contiguous index values for the first namespace, wherein the one or more intermediate index values are positioned between the first set of contiguous index values and the second set of contiguous index values, and wherein relocating the physical block address is in response to determining that the one or more intermediate index values in the virtual to physical table do not permit adding the quantity of physical block addresses to the first set of contiguous index values for the first namespace. 5. The method according to claim 2 , wherein: the command to resize indicates reducing a quantity of physical block addresses of the first set of contiguous index values for the first namespace, and relocating the physical block address comprises moving the second set of contiguous index values for the second namespace within the virtual to physical table towards the first contiguous index values. 6. The method according to claim 2 , wherein relocating the physical block address comprises: moving, by the controller, the second set of contiguous index values for the second namespace within the virtual to physical table from a corresponding set of index values of the virtual to physical table to another corresponding set of index values of the virtual to physical table; and preventing, by the controller, access to read and write to the second namespace while moving the second set of contiguous index values for the second namespace within the virtual to physical table. 7. The method according to claim 1 , wherein data stored at a physical block address of the non-volatile memory device of the storage device includes a tag indicating the namespace identifier and an offset, the method further comprising: determining, by the controller, an index value of the virtual to physical table corresponding with the physical block address by: determining, by the controller, a base index value for the physical block address using the namespace table and the namespace identifier indicated in the tag; and adding, by the controller, the offset to the base index value. 8. The method according to claim 1 , wherein: the virtual to physical table is stored in a first memory of the controller, the namespace table is stored in a second memory of the controller, and the second memory of the controller has a faster input/output speed than the first memory. 9. A storage device comprising: a storage element; and a controller configured to: receive, from a host device, a command to resize a first namespace of a plurality of namespaces stored in a non-volatile memory device of the storage device; and in response to receiving the command to resize the first namespace: relocate a physical block address for the non-volatile memory device from an entry in a virtual to physical table identified by a first index value to an entry in the virtual to physical table identified by a second index value, wherein the relocating includes moving the entire physical block address; and in response to relocating the physical block address, update a mapping, by a namespace table, to indicate an initial index value of a second namespace of the plurality of namespaces to include abutting index values in the virtual to physical table, wherein the namespace table and the virtual to physical table are separate tables, wherein the namespace table includes a namespace identifier that is mapped, by the namespace table, to a corresponding starting virtual to physical index value and to a corresponding namespace size, and wherein each of the namespace sizes represents a specific and separate entry in the namespace table. 10. The storage device of claim 9 , wherein: the first namespace is associated with a first set of contiguous index values of the virtual to physical table; and the second namespace is associated with a second set of contiguous index values of the virtual to physical table, the second set of contiguous index values starting with the initial index value indicated by the second table after relocating the physical block address. 11. The storage device of claim 10 , wherein: the command to resize indicates adding a quantity of physical block addresses to the first set of contiguous index values for the first namespace, and the controller is further configured to move the second set of contiguous index values for the second namespace within the virtual to physical table away from the first contiguous index values to permit adding the quantity of physical block addresses to the first set of contiguous index values for the first namespace. 12. The storage device of claim 11 , wherein: the controller is further configured to determine whether one or more intermediate index values in the virtual to physical table permit adding the quantity of physical block addresses to the first set of contiguous index values for the first namespace, the one or more intermediate index values are positioned between the first set of contiguous index values and the second set of contiguous index values, and relocating the physical block address is in response to determining that the one or more intermediate index values in the virtual to physical table do not pe

Assignees

Inventors

Classifications

  • Management of blocks · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • by allocating resources to storage systems · CPC title

  • G06F3/0605Primary

    by facilitating the interaction with a user or administrator · 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 US10402092B2 cover?
A method may include receiving, by a controller of a storage device and from a host device, a command to resize a first namespace of a plurality of namespaces stored in a non-volatile memory device of the storage device. The method may further include, relocating, by the controller, a physical block address for the non-volatile memory device from an entry in a virtual to physical table identifi…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0605. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 03 2019 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).