Apparatus and method of managing shared resources in achieving IO virtualization in a storage device

US10114675B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10114675-B2
Application numberUS-201514675235-A
CountryUS
Kind codeB2
Filing dateMar 31, 2015
Priority dateMar 31, 2015
Publication dateOct 30, 2018
Grant dateOct 30, 2018

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 technique for sharing resources in a data storage device. The data storage device receives a command associated with a non-volatile semiconductor memory device from a host system, the command including a virtual function identifier and a transaction identifier. The data storage device identifies, via a virtual function mapping unit that is included within a controller and that maintains a function mapping table which stores programmable values that associate virtual functions with portions of shared resources of the controller, a portion of a shared resource of the controller based on the virtual function identifier and the transaction identifier. The data storage device accesses the identified portion of the shared resource based on the received command.

First claim

Opening claim text (preview).

We claim: 1. A data storage device comprising: a non-volatile semiconductor memory device; and a controller for the non-volatile semiconductor memory device, the controller including a virtual function mapping unit that maintains a function mapping table which stores values that are programmable by a host system to which the data storage device is connected and associate virtual functions with portions of shared resources of the controller, the controller configured to: receive a command from the host system to read data from or write data in the non-volatile semiconductor memory device, the command including a virtual function identifier and a transaction identifier; identify, via the virtual function mapping unit, a portion of a shared resource of the controller based on the virtual function identifier and the transaction identifier, wherein the portion of the shared resource comprises a time-slice of a shared processing resource; and access the identified portion of the shared resource based on the received command. 2. The data storage device of claim 1 , wherein: the controller is further configured to modify the programmable values of the function mapping table in response to a command from the host system to change the manner in which the shared resource is divided between virtual functions. 3. The data storage device of claim 1 , wherein: the portion of the shared resource comprises a transaction data entry within a partition of a partitionable resource. 4. The data storage device of claim 3 , wherein: the virtual function mapping unit is configured to identify the portion of the shared resource by: providing the virtual function identifier to the function mapping table to obtain a partition identifier associated with a partition of the partitionable resource, determining a base address within the partitionable resource, and determining an address of the transaction data entry by adding the transaction identifier to the base address. 5. The data storage device of claim 1 , wherein: the controller is further configured to switch to processing data associated with a different virtual function than the virtual function associated with the virtual function identifier after determining that a timeout has occurred. 6. The data storage device of claim 5 , wherein: the controller is further configured to erase data associated with the virtual function associated with the virtual function identifier upon determining that a timeout has occurred a threshold number of times. 7. The data storage device of claim 1 , wherein the host system has multiple virtual machines running therein and the virtual function identifier is associated with only a single virtual machine executing in the host system. 8. The data storage device of claim 1 , wherein the controller includes registers, queues, and buffers and the shared resources include said registers, said queues, and said buffers. 9. A method comprising: receiving a command from a host system to read data from or write data in a non-volatile semiconductor memory device, the command including a virtual function identifier and a transaction identifier; identifying, via a virtual function mapping unit that is included within a controller for the non-volatile semiconductor memory device and that maintains a function mapping table which stores values that are programmable by the host system and associate virtual functions with portions of shared resources of the controller, a portion of a shared resource of the controller based on the virtual function identifier and the transaction identifier, wherein the portion of the shared resource comprises a time-slice of a shared processing resource; and accessing the identified portion of the shared resource based on the received command. 10. The method of claim 9 , further comprising: modifying the programmable values of the function mapping table in response to a command from the host system to change the manner in which the shared resource is divided between virtual functions. 11. The method of claim 9 , wherein: the portion of the shared resource comprises a transaction data entry within a partition of a partitionable resource. 12. The method of claim 11 , further comprising: identifying, via the virtual function mapping unit, the portion of the shared resource, by: providing the virtual function identifier to the function mapping table to obtain a partition identifier associated with a partition of the partitionable resource, determining a base address within the partitionable resource, and determining an address of the transaction data entry by adding the transaction identifier to the base address. 13. The method of claim 9 , further comprising: switching to processing data associated with a different virtual function than the virtual function associated with the virtual function identifier after determining that a timeout has occurred. 14. The method of claim 13 , further comprising: erasing data associated with the virtual function associated with the virtual function identifier upon determining that a timeout has occurred a threshold number of times. 15. The method of claim 9 , wherein the host system has multiple virtual machines running therein and the virtual function identifier is associated with only a single virtual machine executing in the host system. 16. The method of claim 9 , wherein the controller includes registers, queues, and buffers and the shared resources include said registers, said queues, and said buffers. 17. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method comprising: receiving a command from a host system to read data from or write data in a non-volatile semiconductor memory device, the command including a virtual function identifier and a transaction identifier; identifying, via a virtual function mapping unit that is included within a controller for the non-volatile semiconductor memory device and that maintains a function mapping table which stores values that are programmable by the host system and associate virtual functions with portions of shared resources of the controller, a portion of a shared resource of the controller based on the virtual function identifier and the transaction identifier, wherein the portion of the shared resource comprises a time-slice of a shared processing resource; and accessing the identified portion of the shared resource based on the received command. 18. The non-transitory computer-readable medium of claim 17 , wherein the method further comprising: modifying the programmable values of the function mapping table in response to a command from the host system to change the manner in which the shared resource is divided between virtual functions. 19. The non-transitory computer-readable medium of claim 17 , wherein: the portion of the shared resource comprises a transaction data entry within a partition of a partitionable resource. 20. The non-transitory computer-readable medium of claim 19 , wherein the method further comprises: identifying, via the virtual function mapping unit, the portion of the shared resource, by: providing the virtual function identifier to the function mapping table to obtain a partition identifier associated with a partition of the partitionable resource, determining a base address within the partitionable resource, and determining an address of the transaction data entry by adding the transaction identifier to

Assignees

Inventors

Classifications

  • Hypervisors; Virtual machine monitors · CPC title

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • G06F9/5077Primary

    Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • G06F9/5011Primary

    the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · 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 US10114675B2 cover?
A technique for sharing resources in a data storage device. The data storage device receives a command associated with a non-volatile semiconductor memory device from a host system, the command including a virtual function identifier and a transaction identifier. The data storage device identifies, via a virtual function mapping unit that is included within a controller and that maintains a fun…
Who is the assignee on this patent?
Toshiba Memory Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/5077. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 30 2018 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).