Dynamic Virtual Function Resource Mapping in Storage Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solid-state drives (SSDs) waste resources when virtual functions are assigned in a fixed manner, as they do not align with the usage patterns of computer systems, leading to underutilization of resources.

Innovation Solution

A data storage device with a controller featuring a virtual function mapping unit that dynamically associates virtual functions with shared resources, allowing for flexible allocation based on programmable values and transaction identifiers, enabling efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If virtual functions are assigned to fixed portions of shared resources, then resource allocation is simple and deterministic, but resource utilization efficiency deteriorates when the number of active virtual machines is less than the number of virtual functions

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation by allowing the host system to programmatically configure the mapping between virtual functions and shared resources. The controller receives configuration commands that dynamically adjust which virtual functions are active and how they map to physical resources, enabling the system to adapt to varying numbers of active virtual machines and optimize resource utilization accordingly

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the mapping parameters between virtual functions and shared resources based on host system configuration. The controller modifies the function mapping table entries to reassign virtual functions to different portions of shared resources or to deactivate certain virtual functions, thereby optimizing resource utilization efficiency according to actual usage patterns

Inventive Principle:
Principle #35Parameter changes

2Loss of energy

If virtual functions are assigned to fixed portions of shared resources, then resource allocation is straightforward, but resources assigned to non-used virtual functions are wasted

Engineering Contradiction:
Improveresource wasteVSAvoidresource allocation flexibility
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent implements a feedback mechanism where the host system monitors the actual usage of virtual functions and provides configuration commands to the controller to adjust resource allocation. The controller responds to host commands by modifying the virtual function mappings, ensuring that resources are allocated according to actual demand and minimizing waste from unused virtual functions

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes the shared resources universally accessible to multiple virtual functions through dynamic mapping. The same physical shared resources can be reassigned to different virtual functions based on host system needs, allowing one set of physical resources to serve multiple purposes and reducing waste

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10649815B2Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
Publication Date: 2020.05.12 KIOXIA CORP
  • US10649815B2 patent drawing
  • US10649815B2 patent drawing
  • US10649815B2 patent drawing

AI summary

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.