Storage device setting performance attributes and method of operating same
By setting the performance attributes of virtual functions in the storage device and dynamically adjusting resource allocation according to the demand level information of the virtual machine, the problem of low resource management efficiency in the virtual machine environment is solved, and efficient resource allocation and stable improvement of virtual machine performance is achieved. .
Patent Information
- Application Number
- CN202411013784.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-27
- Filing Date
- 2024-07-26
- Publication Date
- 2025-02-21
AI Technical Summary
In a virtual machine environment, how to effectively manage limited resources to ensure that the virtual machine can operate normally when performance requirements are met.
By setting the performance attributes of virtual functions in the storage device, dynamically adjusting resource allocation according to the requirements level information of the virtual machine, ensuring that each virtual machine can obtain the required performance level.
It realizes efficient allocation and management of storage device resources in a limited resource environment, ensuring stable performance and improved user experience of virtual machines.
Smart Images

Figure CN119493524A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the priority of Korean Patent Application No. 10-2023-0109348 filed in the Korean Intellectual Property Office on August 21, 2023, and Korean Patent Application No. 10-2023-0167172 filed in the Korean Intellectual Property Office on November 27, 2023, the disclosures of which are incorporated herein by reference in their entirety. Technical Field
[0003] Embodiments of the present disclosure described herein relate to a storage device, and more particularly, to a storage device that sets performance attributes and a method of operating the storage device. Background Art
[0004] The memory device stores data in response to a write request, and outputs the data stored therein in response to a read request. For example, the memory device is classified into a volatile memory device (such as a dynamic random access memory (DRAM) device or a static RAM (SRAM) device) that loses the data stored therein when the power is turned off, or a non-volatile memory device (such as a flash memory device, a phase change RAM (PRAM), a magnetic RAM (MRAM), or a resistive RAM (RRAM)) that retains the data stored therein even when the power is turned off.
[0005] The host device can store data in the storage device and can provide a use environment to the user by reading the stored data. Now, as the performance of the storage device improves and the user requires various conditions, the host device can also generate a virtual machine (VM) in addition to the physical device, so that various use environments are provided to the user. In this case, the resources of the VM are limited by the resources of the physical device. A method for effectively managing the resources of the VM within the scope of limited resources is needed. Summary of the invention
[0006] Embodiments of the present disclosure provide a storage device for setting performance attributes and a method for operating the storage device.
[0007] According to some example embodiments, a method for operating a storage device that communicates with a host device includes: receiving a first request from a host device that executes a first virtual machine, the first request indicating a setting operation of a first virtual function corresponding to the first virtual machine, the first request including first demand level information of the first virtual machine; setting a first performance attribute of the first virtual function based on the first demand level information; and providing a completion response to the host device indicating that the first performance attribute has been set.
[0008] According to some example embodiments, a method of operating a storage device that communicates with a host device includes: receiving a first request indicating a setting operation of a first virtual function and a second virtual function from a host device that executes a first virtual machine and a second virtual machine, the first virtual function corresponding to the first virtual machine, the second virtual function corresponding to the second virtual machine, and the first request including first demand level information of the first virtual machine and second demand level information of the second virtual machine; setting a first performance attribute of the first virtual function based on the first demand level information; setting a second performance attribute of the second virtual function based on the second demand level information, the second performance attribute being different from the first performance attribute; and providing a completion response to the host device indicating that the first performance attribute and the second performance attribute have been set.
[0009] According to some example embodiments, a storage device includes: a non-volatile memory device; a function manager including a physical function configured to communicate with a host device executing a virtual machine and a virtual function corresponding to the virtual machine; and an attribute manager configured to manage resources to be provided from the non-volatile memory device to the virtual function. The physical function receives a request from the host device indicating a setting operation of the virtual function and including demand level information of the virtual machine; refers to the attribute manager to determine whether a performance attribute corresponding to the demand level information is available; in response to determining that the performance attribute is available, sets the performance attribute of the virtual function; and provides a completion response indicating that the performance attribute is set to the host device. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above and other objects and features of the present disclosure will become apparent by describing embodiments of the present disclosure in detail with reference to the accompanying drawings.
[0011] Figure 1 is a block diagram of an electronic device according to some example embodiments of the present disclosure.
[0012] Figure 2 is a diagram showing some example embodiments according to the present disclosure Figure 1 A block diagram of a storage controller.
[0013] Figure 3 is a flowchart describing a method of operating an electronic device according to some example embodiments of the present disclosure.
[0014] Figure 4 is a description of some example embodiments according to the present disclosure Figure 3 Flowchart of some operations of the flowchart.
[0015] Figure 5 is a description of some example embodiments according to the present disclosure Figure 3 Flowchart of some operations of the flowchart.
[0016] Figure 6is a description of some example embodiments according to the present disclosure Figure 3 Flowchart of some operations of the flowchart.
[0017] Figure 7 are diagrams for describing methods of operating an electronic device according to some example embodiments of the present disclosure.
[0018] Figure 8 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method.
[0019] Fig. 9 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method.
[0020] Fig.10 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method.
[0021] Fig.11 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method.
[0022] Fig.12 is a graph describing data performance of an electronic device according to some example embodiments of the present disclosure.
[0023] Fig.13 are diagrams describing physical paths of electronic devices according to some example embodiments of the present disclosure.
[0024] Fig.14 are diagrams for describing how to differently allocate resources of an electronic device according to some example embodiments of the present disclosure. DETAILED DESCRIPTION
[0025] Hereinafter, exemplary embodiments of the present disclosure will be described in detail and clearly to the extent that those skilled in the art can easily implement the embodiments of the present disclosure.
[0026] Figure 1 is a block diagram of an electronic device according to some example embodiments of the present disclosure. Figure 1 , the electronic device 1000 may be a computing system configured to process various information or store the processed information as data. In some example embodiments, the electronic device 1000 may be implemented using a personal computer (PC), a notebook computer, a laptop, a server, a workstation, a tablet PC, a smart phone, a digital camera, a black box, etc. The electronic device 1000 may include a host device 1100, a storage device 1200, and a user interface device 1300.
[0027] The host device 1100 may control the overall operation of the electronic device 1000. The host device 1100 may communicate with the storage device 1200 and the user interface device 1300. For example, the host device 1100 may receive a system request through the user interface device 1300 based on the system request, the host device 1100 may store data in the storage device 1200, may read data stored in the storage device 1200, or may delete data stored in the storage device 1200.
[0028] The host device 1100 can support a virtual machine (VM). For example, the electronic device 1000 can execute multiple virtual machines VM1 to VMN. In this article, "N" is an arbitrary natural number. The electronic device 1000 can be referred to as an "actual physical machine". The host device 1100 can utilize the resources of the electronic device 1000 (for example, the computing resources of the host device 1100, and the input / output (I / O) speed, storage capacity, allowed power consumption value, allowed heating value, etc. of the storage device 1200) to execute multiple virtual machines VM1 to VMN, and can provide the user with an environment in which multiple electronic devices including a physical machine (for example, the electronic device 1000) and VMs are used through the user interface device 1300.
[0029] The plurality of virtual machines VM1 to VMN may support an OS independent of a default operating system (OS) of the electronic device 1000. For example, the electronic device 1000 may be started based on a power supply voltage (e.g., an external power supply or a battery power supply), and under the default OS, the electronic device 1000 may execute applications or may manage files. After executing the default OS, the host device 1100 may further execute the plurality of virtual machines VM1 to VMN. Because the plurality of virtual machines VM1 to VMN are virtual devices, but are devices independent of the electronic device 1000, the plurality of virtual machines VM1 to VMN may execute an OS of a type different from the type of the default OS of the electronic device 1000, or may execute a separate OS of the same type as the default OS.
[0030] Because the multiple virtual machines VM1 to VMN are virtual devices, the multiple virtual machines VM1 to VMN do not have actual resources. Therefore, the multiple virtual machines VM1 to VMN can be implemented when the electronic device 1000 is operating (for example, when the electronic device 1000 is supplied with a power supply voltage and executes an operating system), and the multiple virtual machines VM1 to VMN implemented in this way can share the actual resources of the electronic device 1000. Because the resources that can be allocated to the multiple virtual machines VM1 to VMN are limited, a method for effectively allocating the resources of the electronic device 1000 to the electronic device 1000 and the multiple virtual machines VM1 to VMN within a limited range may be required.
[0031] The storage device 1200 may communicate with the host device 1100 and the user interface device 1300. The storage device 1200 may store data received from the host device 1100, may provide the stored data to the host device 1100, or may delete the stored data in response to a request received from the host device 1100.
[0032] The storage device 1200 may include a storage controller 1210 and a nonvolatile memory device 1220. Under the control of the host device 1100 or according to an algorithm of internal firmware, the storage controller 1210 may store data in the nonvolatile memory device 1220, may read data stored in the nonvolatile memory device 1220, or may delete data stored in the nonvolatile memory device 1220.
[0033] The storage controller 1210 may include an attribute manager 1211 and a function manager 1212. The attribute manager 1211 may manage resources of the storage device 1200. The function manager 1212 may include a function for communicating with a plurality of virtual machines VM1 to VMN.
[0034] For example, the function manager 1212 may include a SR-IOV (Single Root Input Output Virtualization) function of a PCIe (Peripheral Component Interconnect Express) interface. The SR-IOV function may be a function of additionally generating a virtual I / O port in a PCIe device having a single route (or port). The storage device 1200 having the SR-IOV function may additionally generate a virtual I / O port in addition to the actual I / O port, and may provide the virtual I / O port to the virtual machines VM1 to VMN executed by the host device 1100. In this way, the virtual machines VM1 to VMN may be provided with a virtual environment similar to an environment in which the virtual machines VM1 to VMN are respectively connected to a plurality of storage devices.
[0035] The SR-IOV functions supported by the function manager 1212 may include a physical function PF and a virtual function VF. The physical function PF may be activated based on the power supply voltage provided from the host device 1100. The activated physical function PF may search for devices (e.g., the host device 1100 and virtual machines VM1 to VMN) connected via a PCIe interface, may manage the found devices, and may generate a virtual function VF for communicating with the virtual devices in the found devices. For example, the physical function PF may generate or delete virtual functions VFs corresponding to virtual machines VM1 to VMN, respectively, according to a request from the host device 1100. The generated virtual functions VFs may respectively manage the I / Os associated with the virtual machines VM1 to VMN (e.g., may execute the functions of each of the I / Os).
[0036] In some example embodiments, the attribute manager 1211 may manage resources of the storage device 1200 to be provided to the virtual functions VFs of the function manager 1212. For example, the function manager 1212 may include virtual functions VFs corresponding to virtual machines VM1 to VMN, respectively. The attribute manager 1211 may manage at least one of the data bandwidth for each of the virtual functions VFs (e.g., the data I / O speed allowed for a particular virtual function VF), the physical paths between the dedicated memory chips of the non-volatile memory device 1220 and the storage controller 1210 (e.g., memory channels and memory paths), the maximum allowed power consumption value, and / or the maximum allowed heating temperature value. The resources of the storage device 1200 managed by the attribute manager 1211 may also be referred to as "performance attributes." Reference will be made to Figures 7 to 11 Describe the performance attributes in detail.
[0037] The nonvolatile memory device 1220 may include a plurality of memory chips. Under the control of the memory controller 1210, the plurality of memory chips may store data or may provide the stored data to the memory controller 1210. Even if the power supplied to the nonvolatile memory device 1220 is turned off, the memory chips of the nonvolatile memory device 1220 may retain the stored data. For example, the memory chips of the nonvolatile memory device 1220 may be implemented by a flash memory device, a phase change RAM (PRAM), a magnetic RAM (MRAM), a resistive RAM (RRAM), etc.
[0038] The user interface device 1300 may provide an interface between the electronic device 1000 and the user. The user interface device 1300 may provide the user with an environment similar to an environment in which multiple electronic devices including the electronic device 1000 as a physical device and multiple virtual machines VM1 to VMN are used. For example, the user interface device 1300 may include a device that provides interaction with the user, such as a display device, a touch portion, a monitor, a mouse, a keyboard, a speaker, and a microphone.
[0039] Figure 2 is a diagram showing some example embodiments according to the present disclosure Figure 1 A block diagram of the storage controller. Figure 1 and Figure 2 , the storage controller 1210 may communicate with the host device 1100 and the non-volatile memory device 1220. The storage controller 1210 may include an attribute manager 1211, a function manager 1212, a processor 1213, a volatile memory device 1214, a host interface circuit 1215, and a non-volatile memory interface circuit 1216.
[0040] The attribute manager 1211 may allocate resources of the storage device 1200 to the virtual functions VF1 to VFN of the function manager 1212, may adjust the allocated resources, or may reclaim (e.g., deallocate) the allocated resources. The attribute manager 1211 may store information about the allocated resources. The attribute manager 1211 may include a data performance manager 1211a, a physical path manager 1211b, a power manager 1211c, and a thermal manager 1211d.
[0041] The data performance manager 1211a may manage the data bandwidth to be provided to each of the virtual functions VF1 to VFN. The physical path manager 1211b may allocate the corresponding memory chip exclusively to the virtual functions VF1 to VFN by adjusting the mapping relationship between the physical path of the memory chip connected to the nonvolatile memory device 1220 and the virtual functions VF1 to VFN. The power manager 1211c may manage the maximum power consumption value allowed for each of the virtual functions VF1 to VFN. The thermal manager 1211d may manage the maximum heating temperature value allowed for each of the virtual functions VF1 to VFN.
[0042] The function manager 1212 may include a function for communicating with a plurality of virtual machines VM1 to VMN that may be executed by the host device 1100. In detail, the function manager 1212 may include a physical function PF. The physical function PF may be activated based on a power supply voltage provided from the host device 1100. The activated physical function PF may generate a plurality of virtual functions VF1 to VFN for the plurality of virtual machines VM1 to VMN that may be executed by the host device 1100 based on a request from the host device 1100. The plurality of virtual functions VF1 to VFN may respectively manage I / Os of the plurality of virtual machines VM1 to VMN under the control of the physical function PF.
[0043] The processor 1213 may control the overall operation of the memory controller 1210. The volatile memory device 1214 may be used as a main memory, a buffer memory, or a cache memory of the memory controller 1210.
[0044] In some example embodiments, at least some of the functions of the attribute manager 1211 and the function manager 1212 may be implemented with a firmware module. For example, the processor 1213 may implement at least some of the functions of the attribute manager 1211 and the function manager 1212 by loading instructions stored in the non-volatile memory device 1220 into the volatile memory device 1214 and executing the loaded instructions. However, the present disclosure is not limited thereto. For example, the attribute manager 1211 and the function manager 1212 may be implemented using separate hardware, or may be implemented using a combination of hardware and software.
[0045] The storage controller 1210 may communicate with the host device 1100 through the host interface circuit 1215. In some example embodiments, the host interface circuit 1215 may be implemented based on at least one of various interfaces such as a Serial ATA (SATA) interface, a Peripheral Component Interconnect Express (PCIe) interface, a Serial Attached SCSI (SAS), a Non-Volatile Memory Express (NVMe) interface, and a Universal Flash Storage (UFS) interface.
[0046] In some example embodiments, the attribute manager 1211 and the function manager 1212 may be implemented using the host interface circuit 1215. For example, the host interface circuit 1215 may support a PCIe interface. At least some of the functions of the attribute manager 1211 and the function manager 1212 may be functions included in the PCIe interface, or may be functions implemented by using functions of the PCIe interface.
[0047] The memory controller 1210 may communicate with the nonvolatile memory device 1220 through the nonvolatile memory interface circuit 1216. A physical path of a plurality of memory chips connected to the nonvolatile memory device 1220 may pass through the nonvolatile memory interface circuit 1216. In some example embodiments, the nonvolatile memory interface circuit 1216 may be implemented based on a NAND interface.
[0048] Figure 3 is a flowchart describing a method of operating an electronic device according to some example embodiments of the present disclosure. Figure 3 , the electronic device 1000 may include a host device 1100 and a storage device 1200 .
[0049] In operation S110, the host device 1100 may provide a power supply voltage to the storage device 1200. For example, before operation S110, the host device 1100 may be physically connected to the storage device 1200, but may not be able to recognize (or identify) the storage device 1200. The host device 1100 may be started based on an external power supply or a battery power supply. The host device 1100 started in this way may supply a power supply voltage to the storage device 1200.
[0050] In operation S111, the memory device 1200 may activate the physical function PF based on the power voltage received from the host device 1100. The host device 1100 may recognize the memory device 1200 through the activated physical function PF, and an I / O between the host device 1100 and the memory device 1200 may be activated.
[0051] In operation S120 , the host device 1100 may execute a virtual machine VM. The virtual machine VM may be a separate virtual electronic device. The virtual machine VM may physically share resources of the electronic device 1000 .
[0052] In operation S130, the host device 1100 may provide a first request RQ1 for generating a virtual function VF to the storage device 1200. The virtual function VF may be a function for allocating dedicated resources of the storage device 1200 to the virtual machine VM executed in operation S120. The virtual function VF may provide a virtualized I / O port of the storage device 1200 exclusively to the virtual machine VM. Through the virtual function VF, the virtual machine VM may store data in the storage device 1200, or may read the stored data.
[0053] In operation S131, the activated physical function PF of the storage device 1200 may generate a virtual function VF for the virtual machine VM based on the first request RQ1. The virtual function VF may have performance attributes that define the level of resources provided by the storage device 1200 to the virtual machine VM. Immediately after the virtual machine VM is generated, the value of the performance attribute of the virtual function VF may be in an empty state, or may be set to a default value.
[0054] In operation S132 , the storage device 1200 may provide the host device 1100 with a completion response indicating that the virtual function VF is generated.
[0055] In operation S140, the host device 1100 may generate requirement level information RLI for the virtual machine VM based on the completion response in operation S132. The requirement level information RLI may indicate the performance level required by the virtual machine VM. For example, the requirement level information RLI may indicate the I / O speed, storage capacity, allowed power consumption value, and / or allowed heating value of the storage device 1200 for the virtual machine VM, or may include information for determining the I / O speed, storage capacity, allowed power consumption value, and / or allowed heating value. The requirement level information RLI may be determined individually according to a user's request, or may be determined by an application executed in the host device 1100. However, these are merely examples, and other features and / or values may be used in the requirement level information RLI. In some example embodiments, the requirement level information RLI may represent a minimum allocation for the virtual machine VM to perform the required task, or may represent an expected (or determined, etc.) minimum allocation for the virtual machine VM to perform the required task at an expected (or determined, etc.) level, or alternatively may represent an expected (or determined, etc.) allocation for the virtual machine VM to perform the task at an expected (or determined, etc.) level. However, these are merely examples, and the present disclosure is not limited thereto.
[0056] In operation S150, the host device 1100 may provide a second request RQ2 for setting a virtual function VF to the storage device 1200. The second request RQ2 may include requirement level information RLI of the virtual machine VM. The requirement level information RLI may indicate a resource level that the virtual machine VM requires (or expects, etc.) from the virtual function VF.
[0057] In operation S151, the storage device 1200 may set the performance attribute of the virtual function VF based on the demand level information RLI. The storage device 1200 may store the attribute information AI indicating the set performance attribute. After setting the performance attribute, the virtual function VF may provide the virtual machine VM with resources that meet the performance level required (or expected, etc.) of the virtual machine VM. For example, the virtual function VF whose performance attribute is set may provide the virtual machine VM with storage resources having a data write speed, a data read speed, and / or a storage capacity that meet the level required by the virtual machine VM.
[0058] In operation S152 , the storage device 1200 may provide the host device 1100 with a completion response indicating that the performance attribute is set.
[0059] In operation S160, the electronic device 1000 may perform an attribute information (AI) reading operation. The attribute information reading operation may be an operation of providing the host device 1100 with attribute information AI indicating the performance attribute set in operation S151. Figure 6 Describe the attribute information reading operation in detail.
[0060] In operation S170, the electronic device 1000 may perform a memory operation. In detail, the host device 1100 may provide a request indicating a memory operation to the memory device 1200. The memory device 1200 may perform a memory operation.
[0061] The memory operation may refer to an operation performed by a virtual function VF of the storage device 1200 whose performance attribute is set. For example, the memory operation may include the following operations requested by the virtual machine VM: a write operation for storing data in the storage device 1200, a read operation for obtaining stored data, a delete operation for removing stored data, a reset operation for changing the performance attribute according to any other demand level information, and / or a deallocation operation for deleting a virtual function VF corresponding to a deactivated virtual machine VM.
[0062] In some example embodiments, operation S160 and operation S170 may be repeatedly performed according to various orders. For example, the electronic device 1000 may perform operation S170, and then may perform operation S160. As another example, the electronic device 1000 may perform operation S170 multiple times.
[0063] In some example embodiments, the electronic device 1000 may support VF settings for multiple virtual machines. For example, operations S120, S130, S131, S132, S140, S150, S151, and S152 may include executing multiple virtual machines, generating multiple virtual functions corresponding to the multiple virtual machines, and setting performance attributes of each of the multiple virtual machines.
[0064] Figure 4 is a description of some example embodiments according to the present disclosure Figure 3 Flowcharts of some operations. Figure 4 , the electronic device 1000 may include a host device 1100 and a storage device 1200. The storage device 1200 may include a property manager 1211, a physical function PF, and a virtual function VF. The physical function PF may be activated based on a power supply voltage received from the host device 1100. The virtual function VF may be generated by the activated physical function PF. Operation S250 may correspond to Figure 3 Operation S150, operation S251, operation S252a, operation S253a, operation 254a, operation 255b and operation S256a may correspond to Figure 3 Operation S151.
[0065] In operation S250, the host device 1100 may provide the physical function PF with a second request RQ2 for setting the virtual function VF. The second request RQ2 may include requirement level information RLI indicating a resource level that the virtual machine VM requires (or desires, etc.) from the virtual function VF.
[0066] In operation S251, the physical function PF may provide a third request RQ3 for checking whether the requirement level information RLI is available to the property manager 1211. The property manager 1211 may manage information about resources that the storage device 1200 can support, resources allocated to the virtual function VF, unallocated free resources, and the like.
[0067] In operation S252a, based on the third request RQ3, the attribute manager 1211 may determine whether the performance attribute corresponding to the requirement level information RLI is available. Figure 4 In the example embodiment of , the attribute manager 1211 may determine that a performance attribute corresponding to the requirement level information RLI is available.
[0068] In operation S253a, the attribute manager 1211 may store attribute information AI of the virtual function VF in response to determining that the performance attribute is available. The attribute information AI may indicate the performance attribute determined to be available in operation S252a. The stored attribute information AI may be used to subsequently check the availability of the performance attribute of another virtual machine VM. In addition, the stored attribute information AI may be used in an attribute information reading operation from the host device 1100.
[0069] In operation S254a, the attribute manager 1211 may provide an available response to the physical function PF in response to determining that the performance attribute is available.
[0070] In operation S255a, the physical function PF may set the performance attribute of the virtual function VF to a value corresponding to the requirement level information RLI based on the available response. After setting the performance attribute, the virtual function VF may provide the virtual machine VM with resources of the storage device 1200 that meet the resource level required by the virtual machine VM.
[0071] In operation S256a, the physical function PF may generate a completion response indicating that the performance attribute is set. Figure 3 In operation S152 of the embodiment, the generated completion response may be provided to the host device 1100.
[0072] Figure 5 is a description of some example embodiments according to the present disclosure Figure 3 Flowcharts of some operations. Figure 5 , the electronic device 1000 may include a host device 1100 and a storage device 1200. The storage device 1200 may include a property manager 1211, a physical function PF, and a virtual function VF. The physical function PF may be activated based on a power supply voltage received from the host device 1100. The virtual function VF may be generated by the activated physical function PF. Operation S250 may correspond to Figure 3 Operation S251, operation S252b, operation S253b, and operation S254b may correspond to Figure 3 Operation S151. Operation S250 and operation S251 are similar to Figure 4 Operation S250 and operation S251 are described below, and thus, additional description will be omitted to avoid redundancy.
[0073] In operation S252b, based on the third request RQ3, the attribute manager 1211 may determine whether the performance attribute corresponding to the requirement level information RLI is available. Figure 5 In the example embodiment of , the attribute manager 1211 may determine that the performance attribute corresponding to the requirement level information RLI is not available.
[0074] In operation S253b, the attribute manager 1211 may provide an unavailable response to the physical function PF in response to determining that the performance attribute is unavailable.
[0075] In operation S254b, based on the unavailable response, the physical function PF may provide a failure response to the host device 1100, the failure response indicating that the performance attribute corresponding to the requirement level information RLI is not set. Since the performance attribute is not set, in this case, the Figure 3 The host device 1100 may change the performance level required for the virtual machine VM based on the failure response, and may try again to set the virtual function VF according to the changed performance level.
[0076] Figure 6 is a description of some example embodiments according to the present disclosure Figure 3 Flowcharts of some operations. Figure 6 , the electronic device 1000 may include a host device 1100 and a storage device 1200. The storage device 1200 may include a property manager 1211, a physical function PF, and a virtual function VF. The physical function PF may be activated based on a power supply voltage received from the host device 1100. The virtual function VF may be generated by the activated physical function PF. Operations S360, S361, S362, and S363 may correspond to Figure 3 Operation S160.
[0077] In operation S360, the host device 1100 may provide the physical function PF with a fourth request RQ4 for an attribute information read operation. In operation S361, based on the fourth request RQ4 from the host device 1100, the physical function PF may provide the attribute manager 1211 with a fifth request RQ5 for obtaining attribute information AI corresponding to the performance attribute of the virtual function VF. In operation S362, based on the fifth request RQ5, the attribute manager 1211 may provide the physical function PF with a fifth request RQ5 for obtaining the attribute information AI corresponding to the performance attribute of the virtual function VF. Figure 3 The physical function PF may provide the attribute information AI of the virtual function VF to the host device 1100 in operation S363 .
[0078] In some example embodiments, the attribute information reading operation may be performed with respect to the attribute information of a plurality of virtual functions VFs. Figure 6Unlike the example shown in , before operation S360, the physical function PF may generate multiple virtual functions VFs. The physical function PF may set performance attributes of each of the virtual functions VFs. The attribute manager 1211 may store attribute information indicating the performance attributes of each of the virtual functions VFs. Based on the fourth request RQ4, the physical function PF may refer to the attribute manager 1211 to obtain attribute information about all virtual functions VFs currently managed, and may provide the host device 1100 with the attribute information of all virtual functions VFs thus found.
[0079] Figure 7 is a diagram for describing a method of operating an electronic device according to some example embodiments of the present disclosure. Figure 7 , the electronic device 1000 may include a host device 1100 and a storage device 1200. The storage device 1200 may include a property manager 1211, a function manager 1212, a host interface circuit 1215, a nonvolatile memory interface circuit 1216, and a nonvolatile memory device 1220.
[0080] The host device 1100 may execute a plurality of virtual machines VM1 to VMN. The plurality of virtual machines VM1 to VMN may share resources with the electronic device 1000.
[0081] The attribute manager 1211 may manage attribute information about a plurality of virtual functions VF1 to VFN of the function manager 1212. The attribute manager 1211 may include a data performance manager 1211a, a physical path manager 1211b, a power manager 1211c, and a thermal manager 1211d.
[0082] The function manager 1212 may include a physical function PF and a plurality of virtual functions VF1 to VFN. The physical function PF may be activated based on a power supply voltage received from the host device 1100. The activated physical function PF may generate a plurality of virtual functions VF1 to VFN based on a request from the host device 1100. The plurality of virtual functions VF1 to VFN may manage I / O between a plurality of virtual machines VM1 to VMN and the storage device 1200.
[0083] The host interface circuit 1215 may include a power line and a data I / O path. The power line may provide a power supply voltage received from the host device 1100 to the components of the memory device 1200.
[0084] The power supply voltage received through the power supply line may be limited by the host device 1100, and the total power consumption value that the storage device 1200 can utilize may be limited by the power supply voltage. The power manager 1211c may adjust the maximum power consumption value allowed for each of the virtual functions VF1 to VFN by allocating the limited maximum power consumption value to the virtual functions VF1 to VFN.
[0085] The data I / O path may be used for the storage device 1200 to receive data according to a write operation and to output data according to a read operation. The size of the total data bandwidth that the data I / O path can use for data transmission may be limited. The data performance manager 1211a may allocate data bandwidth to each of the virtual functions VF1 to VFN by allocating the limited total data bandwidth to the virtual functions VF1 to VFN.
[0086] The nonvolatile memory interface circuit 1216 may be connected to the nonvolatile memory device 1220. The nonvolatile memory device 1220 may include a plurality of memory chips MC. Physical paths connected to the plurality of memory chips MC may be connected to the virtual functions VF1 to VFN of the function manager 1212 through the nonvolatile memory interface circuit 1216. The physical path manager 1211b may allocate the memory chips MC exclusively to the respective virtual functions VF1 to VFN by allocating the physical paths connected to the memory chips MC to the virtual functions VF1 to VFN.
[0087] Hereinafter, a method of operating the electronic device 1000 according to some example embodiments of the present disclosure will be described.
[0088] In the first operation ①, the storage device 1200 may receive a request RQ indicating a setup operation of a virtual function VF corresponding to a virtual machine VM executed in the host device 1100. The virtual machine VM may be one of virtual machines VM1 to VMN executable in the host device 1100. The virtual function VF may be a virtual function VF corresponding to the virtual machine VM among virtual functions VF1 to VFN generated by the function manager 1212. The request RQ may include demand level information of the virtual machine VM. The demand level information may indicate a performance level that the virtual machine VM requires (or expects, etc.) from the virtual function VF.
[0089] In the second operation ②, the function manager 1212 may set the performance attribute of the virtual function VF based on the request RQ. For example, the function manager 1212 may refer to the attribute manager 1211 to determine whether the demand level information is available, may store a plurality of attribute information indicating the performance attributes corresponding to the demand level information determined to be available in the attribute manager 1211, and may set the performance attribute of the virtual function VF.
[0090] In the third operation ③, the function manager 1212 may provide a completion response indicating that the performance attribute of the virtual function VF is set to the host device 1100 through the host interface circuit 1215 .
[0091] In some example embodiments, the electronic device 1000 may set the performance attribute of each of the plurality of virtual functions VF. For example, the host device 1100 may execute the first virtual machine VM1 and the second virtual machine VM2. The storage device 1200 may receive a request RQ from the host device 1100. The request RQ may indicate a setting operation of the first virtual function VF1 corresponding to the first virtual machine VM1 and a setting operation of the second virtual function VF2 corresponding to the second virtual machine VM2. The request RQ may include first demand level information of the first virtual machine VM1 and second demand level information of the second virtual machine VM2. The storage device 1200 may set the first performance attribute of the first virtual function VF1 based on the first demand level information. The storage device 1200 may set the second performance attribute of the second virtual function VF2 based on the second demand level information. The storage device 1200 may provide a completion response indicating that the first performance attribute is set and the second performance attribute is set to the host device 1100.
[0092] In some example embodiments, the electronic device 1000 may set the performance attribute of each of the plurality of virtual functions VF differently. For example, the storage device 1200 may receive a request RQ including first demand level information of the first virtual machine VM1 and second demand level information of the second virtual machine VM2 from the host device 1100. The storage device 1200 may set the first performance attribute of the first virtual function VF1 based on the first demand level information. The storage device 1200 may set the second performance attribute of the second virtual function VF2 based on the second demand level information. In this case, the second performance attribute may be different from the first performance attribute.
[0093] Since the storage device 1200 sets the performance attributes of each virtual function VF differently, resources can be allocated differently for each virtual machine VM of the host device 1100. In this way, a flexible system environment can be provided to the user, the bottleneck or reduction of I / O speed between virtual machines VM caused by bandwidth restrictions can be suppressed, and the efficiency of resource allocation in the entire system can be improved. This will refer to Fig.12 Describe in detail.
[0094] Figure 8 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method. Figure 7 and Figure 8, the storage device 1200 may communicate with the host device 1100. The storage device 1200 may include a data performance manager 1211a, a function manager 1212, a host interface circuit 1215, and a non-volatile memory interface circuit 1216.
[0095] The data performance manager 1211a may store first attribute information AI 1. The first attribute information AI 1 may indicate performance attributes defining data bandwidths allocated to virtual functions VF1 to VFN.
[0096] The function manager 1212 may include a physical function PF and a plurality of virtual functions VF1 to VFN. The plurality of virtual functions VF1 to VFN may correspond to a plurality of virtual machines VM1 to VMN executable by the host device 1100.
[0097] The host interface circuit 1215 may include a data I / O path. The total data bandwidth of the data I / O path may be allocated to the virtual functions VF1 to VFN by the data performance manager 1211a.
[0098] Hereinafter, a method of operating the electronic device 1000 according to some example embodiments of the present disclosure will be described.
[0099] In the first operation ①, the storage device 1200 may receive a request RQ indicating a setup operation of a virtual function VF. The virtual function VF may be one of a plurality of virtual functions VF1 to VFN generated by the function manager 1212. The virtual function VF may correspond to one of the virtual machines VM1 to VMN that may be executed by the host device 1100. The request RQ may include first requirement level information RLI 1. The first requirement level information RLI 1 may indicate a performance level required by the virtual machine VM corresponding to the virtual function VF that is the target of the setup operation.
[0100] In the second operation ②, the function manager 1212 may determine whether the performance attribute corresponding to the first demand level information RLI 1 is available with reference to the data performance manager 1211a. The performance attribute may define the data bandwidth (e.g., data performance) allocated to the virtual function VF that is the target of the setting operation. When it is determined that the performance attribute is not available, the function manager 1212 may provide a failure response to the host device 1100. When it is determined that the performance attribute is available, the function manager 1212 may store the first attribute information AI 1 indicating the performance attribute in the data performance manager 1211a, and then may perform the next operation.
[0101] In a third operation ③, the function manager 1212 may set the performance attribute of the virtual function VF corresponding to the first requirement level information RLI 1 in response to determining that the performance attribute corresponding to the first requirement level information RLI 1 is available.
[0102] In the fourth operation (4), the function manager 1212 may provide a completion response indicating that the performance attribute of the virtual function VF is set to the host device 1100 through the host interface circuit 1215 .
[0103] In some example embodiments, the electronic device 1000 may set the performance attributes of each of the plurality of virtual functions VF differently. For example, the storage device 1200 may receive a request RQ indicating a setting operation of the first virtual function VF1 and the second virtual function VF2 from the host device 1100. Based on the request RQ, the storage device 1200 may set the first data bandwidth of the first virtual function VF1, and may set the second data bandwidth of the second virtual function VF2. In this case, the first data bandwidth may be different from the second data bandwidth. For example, the first data bandwidth may be wider than the second data bandwidth.
[0104] In some example embodiments, the electronic device 1000 may adjust the bandwidth of the virtual function VF based on the NVMe protocol. For example, the storage device may limit the bandwidth of the virtual function VF by adjusting the speed of the data token to be written to the completion queue of the virtual machine VM. This will refer to Fig.14 Detailed description.
[0105] Fig. 9 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method. Figure 7 and Fig. 9 , the storage device 1200 may communicate with the host device 1100. The storage device 1200 may include a physical path manager 1211b, a function manager 1212, a host interface circuit 1215, a nonvolatile memory interface circuit 1216, and a nonvolatile memory device 1220.
[0106] The nonvolatile memory device 1220 may include memory chips MC11, MC12, MC21, and MC22. The memory channel CH1 may include memory ways WY11 and WY12. The memory channel CH2 may include memory ways WY21 and WY22. The memory ways WY11, WY12, WY21, and WY22 may be connected to the memory chips MC11, MC12, MC21, and MC22, respectively. The memory channels CH1 and CH2 and the memory ways WY11, WY12, WY21, and WY22 may be referred to as "physical paths". The physical paths may be connected from the nonvolatile memory device 1220 to the function manager 1212 through the nonvolatile memory interface circuit 1216.
[0107] In order to better understand the present disclosure, four memory chips are shown, but the present disclosure is not limited thereto. The number of memory chips can be increased or decreased, and the arrangement of the memory chips can be changed. In this way, the number of memory channels and the number of memory paths can also be increased or decreased.
[0108] The physical path manager 1211b may store second attribute information AI2. The second attribute information AI2 may indicate a mapping relationship between a physical path defining the memory chips MC11, MC12, MC21, and MC22 connected to the nonvolatile memory device 1220 and a plurality of virtual functions VF1 to VFN. For example, the physical path manager 1211b may physically and exclusively allocate a memory chip to each of the plurality of virtual functions VF1 to VFN by allocating the physical path connected to the memory chip to the plurality of virtual functions VF1 to VFN.
[0109] That is, the same memory chip may not be shared by multiple virtual functions VF1 to VFN, but a dedicated memory chip may be allocated to each of the multiple virtual functions VF1 to VFN. In this case, the speed reduction caused by the bottleneck between the virtual machines VM1 to VMN can be alleviated, and the security between the virtual machines VM1 to VMN can be improved (for example, the data of a specific virtual machine VM can be suppressed from being exposed to any other virtual machines VM).
[0110] The function manager 1212 may include a physical function PF and a plurality of virtual functions VF1 to VFN. The plurality of virtual functions VF1 to VFN may correspond to a plurality of virtual machines VM1 to VMN executable by the host device 1100.
[0111] Hereinafter, a method of operating the electronic device 1000 according to some example embodiments of the present disclosure will be described.
[0112] In the first operation ①, the storage device 1200 may receive a request RQ indicating a setup operation of a virtual function VF. The virtual function VF may be one of a plurality of virtual functions VF1 to VFN generated by the function manager 1212. The virtual function VF may correspond to one of the virtual machines VM1 to VMN that may be executed by the host device 1100. The request RQ may include second demand level information RLI2. The second demand level information RLI2 may indicate a performance level required by the virtual machine VM corresponding to the virtual function VF that is the target of the setup operation.
[0113] In the second operation ②, the function manager 1212 may determine whether the performance attribute corresponding to the second demand level information RLI2 is available with reference to the physical path manager 1211b. The performance attribute may define at least one physical path connected to at least one memory chip that is exclusively assigned to the virtual function VF among the memory chips MC11, MC12, MC21, and MC22. For example, a physical path may include a memory channel, a memory path, etc. When it is determined that the performance attribute is not available, the function manager 1212 may provide a failure response to the host device 1100. When it is determined that the performance attribute is available, the function manager 1212 may store the second attribute information AI2 indicating the performance attribute in the physical path manager 1211b, and then the next operation may be performed.
[0114] In a third operation ③, the function manager 1212 may set the performance attribute corresponding to the second requirement level information RLI2 in response to determining that the performance attribute corresponding to the second requirement level information RLI2 is available.
[0115] In the fourth operation (4), the function manager 1212 may provide a completion response indicating that the performance attribute of the virtual function VF is set to the host device 1100 through the host interface circuit 1215 .
[0116] In some example embodiments, the electronic device 1000 may differently set the performance attributes of each of the plurality of virtual functions VF. For example, the storage device 1200 may receive a request RQ indicating a setting operation of the first virtual function VF1 and the second virtual function VF2 from the host device 1100. Based on the request RQ, the storage device 1200 may set a first physical path of the first virtual function VF1, and may set a second physical path of the second virtual function VF2.
[0117] In this case, the first physical path and the second physical path may be different from each other. For example, a first I / O path between a first virtual function VF1 and a first memory chip assigned to the first virtual function VF1 may be physically separated from a second I / O path between a second virtual function VF2 and a second memory chip assigned to the second virtual function VF2. That is, an I / O isolated environment may be provided to the first virtual function VF1 and the second virtual function VF2. In addition, the number of first memory chips exclusively assigned to the first virtual function VF1 may be different from the number of second memory chips exclusively assigned to the second virtual function VF2.
[0118] Fig.10 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method. Figure 7 and Fig.10 , the storage device 1200 may communicate with the host device 1100. The storage device 1200 may include a power manager 1211c, a function manager 1212, a host interface circuit 1215, and a non-volatile memory interface circuit 1216.
[0119] The power manager 1211c may store third attribute information AI3. The third attribute information AI3 may indicate a performance attribute defining a maximum power consumption value allowed for each of the virtual functions VF1 to VFN.
[0120] The function manager 1212 may include a physical function PF and a plurality of virtual functions VF1 to VFN. The plurality of virtual functions VF1 to VFN may correspond to a plurality of virtual machines VM1 to VMN executable by the host device 1100.
[0121] The host interface circuit 1215 may include a power line. The power line may provide the power voltage received from the host device 1100 to the storage device 1200. The power voltage received through the power line may be distributed to the virtual functions VF1 to VFN by the power manager 1211c. The maximum power consumption value to be allowed for each virtual function VF may be determined based on the distributed power voltage.
[0122] Hereinafter, a method of operating the electronic device 1000 according to some example embodiments of the present disclosure will be described.
[0123] In the first operation ①, the storage device 1200 may receive a request RQ indicating a setup operation of a virtual function VF. The virtual function VF may be one of a plurality of virtual functions VF1 to VFN generated by the function manager 1212. The virtual function VF may correspond to one of the virtual machines VM1 to VMN that may be executed by the host device 1100. The request RQ may include third demand level information RLI3. The third demand level information RLI3 may indicate a performance level required by the virtual machine VM corresponding to the virtual function VF that is the target of the setup operation.
[0124] In the second operation ②, the function manager 1212 may determine whether the performance attribute corresponding to the third demand level information RLI3 is available with reference to the power manager 1211c. The performance attribute may define the maximum power consumption value allowed for the virtual function VF that is the target of the setting operation. When it is determined that the performance attribute is not available, the function manager 1212 may provide a failure response to the host device 1100. When it is determined that the performance attribute is available, the function manager 1212 may store the third attribute information AI3 indicating the performance attribute in the power manager 1211c, and then the next operation may be performed.
[0125] In the third operation ③, the function manager 1212 may set the performance attribute of the virtual function VF corresponding to the third demand level information RLI3 in response to determining that the performance attribute corresponding to the third demand level information RLI3 is available.
[0126] In the fourth operation (4), the function manager 1212 may provide a completion response indicating that the performance attribute of the virtual function VF is set to the host device 1100 through the host interface circuit 1215 .
[0127] In some example embodiments, the electronic device 1000 may set the performance attributes of each of the plurality of virtual functions VF differently. For example, the storage device 1200 may receive a request RQ indicating a setting operation of a first virtual function VF1 and a second virtual function VF2 from the host device 1100. Based on the request RQ, the storage device 1200 may set a first maximum power consumption value allowed for the first virtual function VF1, and may set a second maximum power consumption value allowed for the second virtual function VF2. The first maximum power consumption value may be different from the second maximum power consumption value.
[0128] Because the data I / O speed is related to power consumption, the limitation of the maximum power consumption value may be similar to the limitation of the data I / O speed. That is, the storage device 1200 may differently set the data I / O speed to be allowed for the first virtual machine VM1 and the data I / O speed to be allowed for the second virtual machine VM2 by differently setting the first maximum power consumption value of the first virtual function VF1 and the second maximum power consumption value of the second virtual function VF2.
[0129] Fig.11 is a description of some example embodiments according to the present disclosure Figure 7 Schematic diagram of some example embodiments of the method. Figure 7 and 11 , the storage device 1200 may communicate with the host device 1100. The storage device 1200 may include a thermal manager 1211d, a function manager 1212, a host interface circuit 1215, and a non-volatile memory interface circuit 1216.
[0130] The thermal manager 1211d may store fourth attribute information AI4. The fourth attribute information AI4 may indicate a performance attribute defining a maximum heating temperature value allowed for each of the virtual functions VF1 to VFN.
[0131] The function manager 1212 may include a physical function PF and a plurality of virtual functions VF1 to VFN. The plurality of virtual functions VF1 to VFN may correspond to a plurality of virtual machines VM1 to VMN executable by the host device 1100.
[0132] Multiple virtual functions VF1 to VFN may receive data from multiple virtual machines VM1 to VMN, or may provide data to multiple virtual machines VM1 to VMN. Heat may be generated in the above process. Excessive heat may increase the power consumption of the storage device 1200 and / or may cause damage to the device. In order to prevent or reduce the above problems, the storage device 1200 can reduce the heat level by intentionally reducing the device performance through thermal throttling before reaching the maximum allowed heat temperature value. That is, the heat level may also be a limited resource allowed by the storage device 1200. The thermal manager 1211d can allocate resources to multiple virtual functions VF1 to VFN by adjusting the allowed heat level for each of the virtual functions VF1 to VFN.
[0133] Hereinafter, a method of operating the electronic device 1000 according to some example embodiments of the present disclosure will be described.
[0134] In the first operation ①, the storage device 1200 may receive a request RQ indicating a setup operation of a virtual function VF. The virtual function VF may be one of a plurality of virtual functions VF1 to VFN generated by the function manager 1212. The virtual function VF may correspond to one of the virtual machines VM1 to VMN that may be executed by the host device 1100. The request RQ may include fourth demand level information RLI4. The fourth demand level information RLI4 may indicate a performance level required by the virtual machine VM corresponding to the virtual function VF that is the target of the setup operation.
[0135] In the second operation ②, the function manager 1212 may determine whether the performance attribute corresponding to the fourth demand level information RLI4 is available with reference to the thermal manager 1211d. The performance attribute may define the maximum heating temperature value (e.g., temperature condition) allowed for the virtual function VF as the target of the setting operation. When it is determined that the performance attribute is not available, the function manager 1212 may provide a failure response to the host device 1100. When it is determined that the performance attribute is available, the function manager 1212 may store the fourth attribute information AI4 indicating the performance attribute in the thermal manager 1211d, and then may perform the next operation.
[0136] In a third operation ③, the function manager 1212 may set the performance attribute of the virtual function VF corresponding to the fourth demand level information RLI4 in response to determining that the performance attribute corresponding to the fourth demand level information RLI4 is available.
[0137] In a fourth operation (4), the function manager 1212 may provide a completion response indicating that the performance attribute of the virtual function VF is set to the host device 1100 through the host interface circuit 1215 .
[0138] In some example embodiments, the electronic device 1000 may set the performance attributes of each of the plurality of virtual functions VF differently. For example, the storage device 1200 may receive a request RQ indicating a setting operation of the first virtual function VF1 and the second virtual function VF2 from the host device 1100. Based on the request RQ, the storage device 1200 may set a first maximum heating temperature value allowed for the first virtual function VF1, and may set a second maximum heating temperature value allowed for the second virtual function VF2. The first maximum heating temperature value may be different from the second maximum heating temperature value.
[0139] Because the heating of the storage device 1200 is a byproduct of the operation of processing data, the limitation of the maximum heating temperature value may be similar to the limitation of the data I / O speed. That is, the storage device 1200 may differently set the data I / O speed to be allowed for the first virtual machine VM1 and the data I / O speed to be allowed for the second virtual machine VM2 by differently setting the first maximum heating temperature value of the first virtual function VF1 and the second maximum heating temperature value of the second virtual function VF2.
[0140] Fig.12 is a graph describing data performance of an electronic device according to some example embodiments of the present disclosure. Fig.12 A graph depicting data performance of a storage device supporting multiple virtual functions VF for multiple virtual machines VM.
[0141] Referring to a graph of a conventional storage device supporting a virtual function VF with the same data performance, the horizontal axis represents time and the vertical axis represents data performance. In this case, data performance may refer to the data I / O speed of the storage device. The conventional storage device is provided for a better understanding of the present disclosure and is not intended to limit the scope of the present disclosure. The characteristics of the conventional storage device may include characteristics of the present disclosure that are not disclosed in the document of the information disclosure statement.
[0142] A conventional storage device may support first to third virtual functions VF1 to VF3. A solid line indicates a performance characteristic of the first virtual function VF1, a long dashed line indicates a performance characteristic of the second virtual function VF2, and a dashed line indicates a performance characteristic of the third virtual function VF3. A conventional storage device may not be able to assign different performance attributes to the first to third virtual functions VF1 to VF3. In this case, a data bandwidth of a specific virtual function among the first to third virtual functions VF1 to VF3 may be insufficient, or a data bandwidth may be unnecessarily assigned to any other virtual function.
[0143] For example, referring to the time point Tpa, a specific virtual function among the first virtual function VF1 to the third virtual function VF3 may overuse the data bandwidth of the traditional storage device. In this way, at the same time point, an unexpected decrease in data performance may be caused in any other virtual function. Similarly, referring to the time point Tpb, since a specific virtual function among the first virtual function VF1 to the third virtual function VF3 overuses the data bandwidth, an unexpected decrease in data performance may be caused in any other virtual function. The unexpected decrease may cause a decrease in the overall data I / O speed of the traditional storage device, or may increase the probability of errors occurring in the data.
[0144] Referring to a graph of a storage device supporting a virtual function VF with different data performances, the horizontal axis represents time, and the vertical axis represents data performance. The storage device supporting a virtual function VF with different data performances may be referred to as a "storage device of the present disclosure" and may correspond to the storage device of the present disclosure. Figure 1 , Figure 3 , Figure 4 , Figure 5 , Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 and Fig.11 The storage device 1200 is described.
[0145] The storage device of the present disclosure may support the first virtual function VF1 to the third virtual function VF3. The solid line indicates the performance characteristics of the first virtual function VF1, the long dashed line indicates the performance characteristics of the second virtual function VF2, and the dashed line indicates the performance characteristics of the third virtual function VF3. The storage device of the present disclosure may assign different performance attributes to the first virtual function VF1 to the third virtual function VF3. In this way, the total data bandwidth of the storage device of the present disclosure may be effectively assigned to the first virtual function VF1 to the third virtual function VF3. For example, the widest data bandwidth may be assigned to the third virtual function VF3. The narrowest data bandwidth may be assigned to the first virtual function VF1.
[0146] According to the curve graph of the storage device of the present disclosure, since an appropriate level of data bandwidth is allocated to each of the first virtual function VF1 to the third virtual function VF3, the shortage or waste of data bandwidth in the first virtual function VF1 to the third virtual function VF3 can be suppressed. Therefore, the unexpected decrease in data performance in a specific virtual function among the first virtual function VF1 to the third virtual function VF3 can be suppressed. That is, since the data bandwidth is allocated differently, the efficiency of resource allocation can be improved in the entire system of the storage device of the present disclosure.
[0147] For example, according to some example embodiments, based on the above method, the speed, accuracy, device life and / or power efficiency of virtual machines, host devices and storage devices can be improved. Therefore, the improved device and method overcome the defects of traditional devices and methods for hosting and processing virtual machines, including cross-system use of virtual machines, while reducing resource consumption and improving device life, data accuracy and data clarity. In addition, the flexible system environment provided to users is improved, the speed reduction caused by bottlenecks between virtual machines is suppressed, security can be improved by input / output (I / O) isolation between virtual machines, and the resource allocation efficiency in the entire (virtual and physical) system is improved.
[0148] Fig.13 is a diagram describing a physical path of an electronic device according to some example embodiments of the present disclosure. Fig.13 , the electronic device 1000 may include a host device 1100 and a storage device 1200 .
[0149] The host device 1100 may execute first to third virtual machines VM1 to VM3. The storage device 1200 may generate first to third virtual functions VF1 to VF3 corresponding to the first to third virtual machines VM1 to VM3 according to a request of the host device 1100. The storage device 1200 may include a physical path manager 1211b and first to seventh memory channels CH1 to CH7. Each of the first to seventh memory channels CH1 to CH7 may be connected to a corresponding memory chip.
[0150] The physical path manager 1211b may set a first physical path for the first virtual function VF1. The first physical path may connect the first to fourth memory channels CH1 to CH4 to the first virtual function VF1. That is, the first physical path may exclusively allocate memory chips connected to the first to fourth memory channels CH1 to CH4 to the first virtual function VF1.
[0151] The physical path manager 1211b may set a second physical path for the second virtual function VF2. The second physical path may connect the fifth memory channel CH5 and the sixth memory channel CH6 to the second virtual function VF2. That is, the second physical path may exclusively allocate the memory chips connected to the fifth memory channel CH5 and the sixth memory channel CH6 to the second virtual function VF2.
[0152] The physical path manager 1211b may set a third physical path for the third virtual function VF3. The third physical path may connect the seventh memory channel CH7 to the third virtual function VF3. That is, the third physical path may exclusively allocate the memory chip connected to the seventh memory channel CH7 to the third virtual function VF3.
[0153] In some example embodiments, the first physical path to the third physical path may be physically separated from each other. According to the above description, the data I / O of the first virtual machine VM1 to the third virtual machine VM3 may be physically isolated. I / O isolation may make it possible to suppress bottlenecks between the first virtual machine VM1 to the third virtual machine VM3, achieve load balancing between different memory channels, and improve data security between the first virtual machine VM1 to the third virtual machine VM3.
[0154] Fig.14is a diagram describing how to allocate resources of an electronic device differently according to some example embodiments of the present disclosure. Fig.14 , the electronic device 1000 may include a host device 1100 and a storage device 1200. The host device 1100 and the storage device 1200 may communicate with each other according to the NVMe protocol.
[0155] The host device 1100 may execute the first virtual machine VM1 to the third virtual machine VM3. The first virtual machine VM1 may include a first submission queue SQ1 and a first completion queue CQ1. The first submission queue SQ1 may include a plurality of data blocks DT. For example, the data block DT may be a block including 4000 data tokens, but the present disclosure is not limited thereto. The first virtual function VF1 may obtain the data block DT of the first submission queue SQ1, may process the request of the first virtual machine VM1 based on the obtained data block DT, and may write a completion indicating that the request is processed in the first completion queue CQ1 in the form of the data block DT.
[0156] Similarly, the second virtual machine VM2 may include a second submission queue SQ2 and a second completion queue CQ2. The second virtual function VF2 may obtain a data block DT of the second submission queue SQ2, may process a request of the second virtual machine VM2 based on the obtained data block DT, and may write a completion indicating that the request is processed in the second completion queue CQ2 in the form of the data block DT.
[0157] As described above, the third virtual machine VM3 may include a third submission queue SQ3 and a third completion queue CQ3. The third virtual function VF3 may obtain a data block DT of the third submission queue SQ3, may process a request of the third virtual machine VM3 based on the obtained data block DT, and may write a completion indicating that the request is processed in the third completion queue CQ3 in the form of a data block DT.
[0158] The data performance manager 1211a may store attribute information indicating performance attributes of the first to third virtual functions VF1 to VF3. The performance attributes may define a transmission speed of a data block DT to be output to a completion queue by a corresponding virtual function.
[0159] For example, the data performance manager 1211a may limit the transmission speed of the data blocks DT to be output by the first virtual function VF1 to the first completion queue CQ1 to four data blocks DT per second. The data performance manager 1211a may limit the transmission speed of the data blocks DT to be output by the second virtual function VF2 to the second completion queue CQ2 to two data blocks DT per second. The data performance manager 1211a may limit the transmission speed of the data blocks DT to be output by the third virtual function VF3 to the third completion queue CQ3 to one data block DT per second.
[0160] That is, in an environment supporting the NVMe protocol, the data performance manager 1211a can set the data performance of each virtual function differently by individually setting the speed at which the data block DT is output from each virtual function to the corresponding completion queue.
[0161] According to some example embodiments of the present disclosure, a storage device for setting performance attributes and a method of operating the storage device are provided.
[0162] In addition, since resources are allocated differently for each virtual machine, a flexible system environment can be provided to users, speed reduction due to bottlenecks between virtual machines can be suppressed, security can be improved by input / output (I / O) isolation between virtual machines, and the efficiency of resource allocation in the entire system can be improved.
[0163] As described herein, any electronic device and / or portion thereof according to any example embodiment may include one or more examples of a processing circuit (such as hardware including a logic circuit, a hardware / software combination such as a processor that executes software, or a combination thereof), may be included in one or more examples of a processing circuit (such as hardware including a logic circuit, a hardware / software combination such as a processor that executes software, or a combination thereof), and / or may be implemented by one or more examples of a processing circuit (such as hardware including a logic circuit, a hardware / software combination such as a processor that executes software, or a combination thereof). For example, the processing circuit may more specifically include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a graphics processing unit (GPU), an application processor (AP), a digital signal processor (DSP), a microcomputer, a field programmable gate array (FPGA), a programmable logic unit, a microprocessor, an application specific integrated circuit (ASIC), a neural network processing unit (NPU), an electronic control unit (ECU), an image signal processor (ISP), etc. In some example embodiments, the processing circuitry may include a non-transitory computer-readable storage device (e.g., memory) storing a program of instructions (e.g., a solid-state drive (SSD)) and a processor configured to execute the program of instructions to implement the functions and / or methods performed by some or all of any device, system, module, unit, controller, circuit, architecture, and / or portions thereof according to any example embodiment.
[0164] While the present disclosure has been described with reference to example embodiments thereof, it will be apparent to those skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the present disclosure as set forth in the appended claims.
Claims
1. A method of operating a storage device in communication with a host device, the method comprising: receiving a first request from the host device executing a first virtual machine, the first request indicating a setting operation of a first virtual function corresponding to the first virtual machine, the first request including first demand level information of the first virtual machine; setting a first performance attribute of the first virtual function based on the first demand level information; as well as A completion response is provided to the host device indicating that the first performance attribute is set.
2. The method according to claim 1, wherein: The first demand level information indicates a performance level for the first virtual machine, and The first performance attribute defines a data bandwidth allocated to the first virtual function.
3. The method according to claim 1, wherein: The first demand level information indicates a performance level for the first virtual machine, and The first performance attribute defines a physical path connected to a memory chip, among a plurality of memory chips in the storage device, that is exclusively assigned to the first virtual function.
4. The method according to claim 1, wherein: The first demand level information indicates a performance level for the first virtual machine, and The first performance attribute defines a maximum power consumption value allowed for the first virtual function.
5. The method according to claim 1, wherein: The first demand level information indicates a performance level for the first virtual machine, and The first performance attribute defines a maximum thermal temperature value allowed for the first virtual function.
6. The method according to claim 1, wherein: The storage device comprises: a physical function configured to communicate with the host device; a plurality of virtual functions, the plurality of virtual functions being executable by the physical function; and a property manager configured to manage a plurality of performance properties respectively corresponding to the plurality of virtual functions, The plurality of virtual functions include the first virtual function, and The plurality of performance attributes includes the first performance attribute.
7. The method according to claim 6, wherein: Setting the first performance attribute of the first virtual function based on the first demand level information includes: providing, by the physical function, to the property manager a second request for checking availability of the first demand level information; determining, by the attribute manager based on the second request, whether the first performance attribute corresponding to the first demand level information is available; In response to determining that the first performance attribute is available, storing, by the attribute manager, first attribute information indicative of the first performance attribute and providing an available response to the physical function; setting, by the physical function, the first performance attribute of the first virtual function based on the available response; and The completion response is generated by the physical function indicating that the first performance attribute is set.
8. The method according to claim 6, wherein: Setting the first performance attribute of the first virtual function based on the first demand level information includes: providing, by the physical function, to the property manager a second request for checking availability of the first demand level information; determining, by the attribute manager based on the second request, whether the first performance attribute corresponding to the first demand level information is available; In response to determining that the first performance attribute is not available, providing, by the attribute manager, an unavailable response to the physical function; and A failure response is provided, by the physical function, to the host device based on the unavailable response, indicating that the first performance attribute is not set.
9. The method according to claim 6, further comprising: receiving, by the physical function, from the host device a third request indicating an attribute information read operation after providing the completion response to the host device; providing, by the physical function, a fourth request to the attribute manager based on the third request, the fourth request being used to obtain first attribute information corresponding to the first performance attribute of the first virtual function; providing, by the attribute manager, to the physical function based on the fourth request, the first attribute information stored when the first performance attribute is set; as well as The first attribute information provided from the attribute manager is provided to the host device by the physical function.
10. The method according to claim 1, further comprising: After providing the completion response to the host device, receiving a fifth request indicating a memory operation from the host device, wherein the memory operation includes at least one of a write operation, a read operation, a delete operation, a reset operation of the first virtual function, and a deallocation operation of the first virtual function by the first virtual machine; and The memory operation is performed based on the fifth request.
11. The method according to claim 1, further comprising: before receiving the first request, receiving a power supply voltage from the host device; activating a physical function based on the supply voltage; Before receiving the first request, receiving a sixth request for generating the first virtual function; as well as The first virtual function is generated by the activated physical function based on the sixth request.
12. The method according to claim 1, wherein: The first request further indicates a setting operation of a second virtual function corresponding to a second virtual machine executable by the host device, and further includes second demand level information of the second virtual machine, The method further comprises: setting a second performance attribute of the second virtual function based on the second demand level information, The completion response also indicates that the second performance attribute is set, and The second performance attribute is different from the first performance attribute.
13. The method according to claim 12, wherein: The first performance attribute defines a first data bandwidth allocated to the first virtual function, The second performance attribute defines a second data bandwidth allocated to the second virtual function, and The first data bandwidth is different from the second data bandwidth.
14. The method according to claim 12, wherein: The first performance attribute defines a first physical path connected to a first memory chip among a plurality of memory chips in the storage device that is exclusively assigned to the first virtual function, The second performance attribute defines a second physical path connected to a second memory chip among the plurality of memory chips in the storage device that is exclusively assigned to the second virtual function, and The input / output of the first physical path is separated from the input / output of the second physical path.
15. The method according to claim 1, wherein: The storage device and the host device are configured to communicate with each other based on a fast non-volatile memory protocol, and The first performance attribute defines a transfer speed of data blocks to be output by the first virtual function to a completion queue.
16. A method of operating a storage device in communication with a host device, the method comprising: receiving, from the host device executing a first virtual machine and a second virtual machine, a first request indicating a setting operation of a first virtual function and a second virtual function, the first virtual function corresponding to the first virtual machine, the second virtual function corresponding to the second virtual machine, and the first request including first demand level information of the first virtual machine and second demand level information of the second virtual machine; setting a first performance attribute of the first virtual function based on the first demand level information; setting a second performance attribute of the second virtual function based on the second demand level information, the second performance attribute being different from the first performance attribute; as well as A completion response is provided to the host device indicating that the first performance attribute and the second performance attribute are set.
17. The method according to claim 16, further comprising: receiving, after providing the completion response to the host device, a second request indicating an attribute information read operation from the host device; as well as Based on the second request, first attribute information stored when the first performance attribute was set and second attribute information stored when the second performance attribute was set are provided to the host device.
18. The method according to claim 16, wherein: The first performance attribute defines at least one of a first data bandwidth allocated to the first virtual function, a first physical path connected to a first memory chip among a plurality of memory chips in the storage device that is exclusively allocated to the first virtual function, a first maximum power consumption value allowed for the first virtual function, and a first maximum heating temperature value allowed for the first virtual function, and The second performance attribute limits at least one of a second data bandwidth allocated to the second virtual function, a second physical path connected to a second memory chip among the plurality of memory chips in the storage device that is exclusively allocated to the second virtual function, a second maximum power consumption value allowed for the second virtual function, and a second maximum heating temperature value allowed for the second virtual function.
19. A storage device, comprising: a non-volatile memory device; a function manager including a physical function configured to communicate with a host device executing a virtual machine and a virtual function corresponding to the virtual machine; as well as a property manager configured to manage resources to be provided from the non-volatile memory device to the virtual function, The physical functions are configured as: receiving, from the host device, a request indicating a setup operation for the virtual function and including demand level information for the virtual machine; referring to the attribute manager, determining whether a performance attribute corresponding to the demand level information is available; In response to determining that the performance attribute is available, setting the performance attribute of the virtual function; as well as A completion response is provided to the host device indicating that the performance attribute is set.
20. The storage device according to claim 19, wherein: The performance attribute defines at least one of the following: a data bandwidth allocated to the virtual function; a physical path connected to a memory chip exclusively assigned to the virtual function among a plurality of memory chips in the nonvolatile memory device; a maximum power consumption value allowed for the virtual function; as well as The maximum thermal temperature allowed for the virtual function.
Citation Information
Patent Citations
Hedging system for automotive oil
KR1020230109348A
Insulation system of cargo tank
KR1020230167172A