Virtualization apparatus including storage device and computing device and method of operation thereof

By enabling direct communication between the computing and storage virtualization device and the storage and computing devices, and by utilizing hardware accelerators to manage resources, the problem of host device burden and reduced data processing speed caused by virtual machine resource management is solved, achieving high-speed data communication and flexible resource management.

CN115617448BActive Publication Date: 2026-06-16MANGO POST CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
MANGO POST CO LTD
Filing Date
2022-07-14
Publication Date
2026-06-16

Smart Images

  • Figure CN115617448B_ABST
    Figure CN115617448B_ABST
Patent Text Reader

Abstract

A virtualization apparatus including a storage device and a computing device and an operating method thereof are provided. The virtualization apparatus according to an embodiment of the disclosure communicates with a host apparatus running a virtual machine, and includes a computational storage virtualization (CSV) apparatus, a storage device, and a computing device. The operating method of the virtualization apparatus includes the steps of receiving, from the host apparatus, a first request indicating a first address of the virtual machine, a second address of the storage device, and a read operation; acquiring, based on the first request, a third address of a real machine corresponding to the virtual machine and a fourth address of the computing device; providing, to the storage device, a second request indicating the second address, the fourth address, and a redirection; providing, to the computing device, original data based on the second request; providing, to the computing device, a third request indicating the third address, the fourth address, and a processing operation; generating processed data based on the third request and the original data; and providing, to the host apparatus, the processed data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a virtualization apparatus, and more specifically, to a virtualization apparatus including a storage device and a computing device, and a method of operating the same. Background Technology

[0002] Storage virtualization technology provides virtual machines with the resources of actual storage devices. A virtual machine can be a software-implemented computing environment on which an operating system or applications can be installed and run. A virtual machine can read data stored in the actual storage device based on read requests, or store data in the actual storage device based on write requests.

[0003] To effectively manage large volumes of data and improve security, storage devices can store data compressed or encrypted by the host device's processor or a separate computing device, rather than storing data received from virtual machines as is. If the computing technology used for virtual machines is implemented in software, the resource burden on the host device may increase, and data processing speed may decrease. A method may be required to reduce the resource burden on the host device, ensure high-speed data communication between devices, and simultaneously provide computing and storage resources for virtual machines. Summary of the Invention

[0004] According to one embodiment of the present disclosure, a virtualization apparatus including a storage device and a computing device and a method for operating the same are provided.

[0005] According to one embodiment of this disclosure, a virtualization device communicates with a host device running a virtual machine, and includes a Computational Storage Virtualization (CSV) device, a storage device, and a computing device. The operation method of the virtualization device includes the following steps: receiving, via the CSV device, a first request indicating a first address of the virtual machine, a second address of the storage device, and a read operation from the host device; obtaining, via the CSV device, a third address of the physical machine corresponding to the virtual machine and a fourth address of the computing device based on the first request; providing, via the CSV device, a second request indicating the second address, the fourth address, and a redirection to the storage device; providing, via the storage device, raw data to the computing device based on the second request; providing, via the CSV device, a third request indicating the third address, the fourth address, and a processing operation to the computing device; generating processed data based on the third request and the raw data by the computing device; and providing the processed data to the host device by the computing device.

[0006] According to one embodiment of this disclosure, a virtualization device communicates with a host device running a virtual machine and includes a Computational Storage Virtualization (CSV) device, a storage device, and a computing device. The operation method of the virtualization device includes the following steps: receiving, via the CSV device, a first request indicating a first address of the virtual machine, a second address of the storage device, and a read operation from the host device; obtaining, via the CSV device, a third address of the physical machine corresponding to the virtual machine and a fourth address of the computing device based on the first request; providing, via the CSV device, a second request indicating the third address, the fourth address, and a processing operation to the computing device; receiving raw data from the host device based on the second request by the computing device; generating processed data based on the second request and the raw data by the computing device; providing, via the CSV device, a third request indicating the second address, the fourth address, and a storage operation to the storage device; receiving the processed data from the computing device based on the third request by the storage device; and storing the processed data by the storage device.

[0007] According to one embodiment of this disclosure, the virtualization apparatus includes: a storage device configured to store first data; a computing device configured to process the first data and process second data of a virtual machine running by a host device; a compute-storage virtualization (CSV) device; and a high-speed serial computer expansion bus standard (PCIe) circuit connected to the storage device, the computing device, the compute-storage virtualization device, and the host device. The CSV device is configured to: receive a first request from the host device including a first address of the virtual machine and a second address of the storage device; obtain a third address of the physical machine corresponding to the virtual machine and a fourth address of the computing device; determine whether the first request indicates a read operation or a write operation; when it is determined that the first request indicates the read operation, provide the storage device with a second request indicating the second address, the fourth address, and a redirection, and provide the computing device with a third request indicating the third address, the fourth address, and a first processing operation of the first data; and when it is determined that the first request indicates the write operation, provide the computing device with a fourth request indicating the third address, the fourth address, and the second data of a second processing operation, and provide the storage device with a fifth request indicating the second address, the fourth address, and a storage operation.

[0008] According to one embodiment of the present disclosure, a virtualization apparatus including a storage device and a computing device and a method for operating the same are provided.

[0009] Furthermore, a virtualization device and its operation method are provided as follows: providing computing resources through hardware accelerators to reduce the resource burden on the host device, ensuring direct communication between different devices based on the address of the physical machine corresponding to the virtual machine and the address of the computing device, and flexibly managing storage and computing resources. Attached Figure Description

[0010] Figure 1 This is a block diagram of a storage system according to an embodiment of the present disclosure.

[0011] Figure 2 This is described based on a portion of the embodiments disclosed herein. Figure 1 A block diagram of the storage system.

[0012] Figure 3 This is described based on a portion of the embodiments disclosed herein. Figure 1 A block diagram of the storage system.

[0013] Figure 4 This is a diagram illustrating a command format according to a portion of the embodiments of this disclosure.

[0014] Figure 5 This is described based on a portion of the embodiments disclosed herein. Figure 4 A diagram of the reserved fields.

[0015] Figure 6 This is a sequence diagram illustrating the operation method of a virtualization apparatus according to a portion of the embodiments of this disclosure.

[0016] Figure 7 This is a diagram illustrating a read operation of a storage system according to a portion of the embodiments of this disclosure.

[0017] Figure 8 This is a diagram illustrating a write operation of a storage system according to a portion of the embodiments of this disclosure.

[0018] Figure 9 This is a diagram illustrating direct communication between devices in a storage system according to a portion of the embodiments of this disclosure.

[0019] Figure 10 This is a block diagram illustrating a storage system with flexible scalability according to a portion of the embodiments of this disclosure.

[0020] Figure 11 This is a block diagram illustrating a storage system according to a portion of the embodiments of the present disclosure.

[0021] Figure 12 This is a block diagram illustrating a storage system according to a portion of the embodiments of the present disclosure.

[0022] Figure 13 This is a sequence diagram illustrating the read operations of a virtualization device according to a portion of the embodiments of this disclosure.

[0023] Figure 14 This is a sequence diagram illustrating the write operations of a virtualization device according to a portion of the embodiments of this disclosure. Detailed Implementation

[0024] The embodiments of this disclosure will now be clearly and thoroughly described so that those skilled in the art can readily implement them.

[0025] The constituent elements described with reference to terms such as unit, module, and layer used in the detailed description, and the functional blocks shown in the accompanying drawings, can be implemented in software or hardware, or a combination thereof. For example, software can be machine code, firmware, embedded code, and application software. Hardware can include electrical circuits, circuits, processors, computers, integrated circuits, integrated circuit cores, pressure sensors, inertial sensors, microelectromechanical systems (MEMS), passive components, or combinations thereof.

[0026] Figure 1 This is a block diagram of a storage system according to an embodiment of the present disclosure. (Refer to...) Figure 1 The storage system 100 may include a host device 110, a computational storage virtualization (CSV) device 120, a storage device 130, a computing device 140, an input / output (I / O) memory management unit 150, and a high-speed serial computer expansion bus standard (PCIe) circuit 160.

[0027] Storage system 100 can provide virtual machines (VMs). A VM can be a software-implemented computing environment on which an operating system or applications can be installed and run. In some embodiments, storage system 100 can be a server device. For example, storage system 100 can be a server device that provides users with a cloud computing environment including virtual machines (VMs).

[0028] The host device 110 may include a processor and host memory. The processor of the host device 110 can run a virtual machine (VM) by executing instructions stored in the host memory. For example, the processor of the host device 110 can actually perform calculations for the operating system (OS) and applications running on the virtual machine (VM).

[0029] The processor of host device 110 can manage requests for data processing for virtual machines (VMs) (e.g., read requests, write requests, etc.). Host memory can manage data to be provided to storage device 130 based on write requests from virtual machines (VMs) and data to be received based on read requests from storage device 130.

[0030] The CSV device 120 can provide a virtualization environment based on a virtual machine (VM) to the storage device 130 and the computing device 140. The CSV device 120 can provide storage and computing resources to the virtual machine (VM) without the resource management burden of the host device 110.

[0031] For example, the CSV device 120 can communicate with the host device 110 running a virtual machine (VM). The CSV device 120 can also communicate with the storage device 130 and the computing device 140. The CSV device 120 can transform the VM's requests into requests that can be executed by the storage device 130 and the computing device 140. The storage device 130 and the computing device 140 can then process the VM's requests with the assistance of the CSV device 120, without the resource management burden of the host device 110.

[0032] In some embodiments, the CSV device 120 can ensure direct communication between different devices. For example, the CSV device 120 can facilitate direct data communication between the host device 110 and the storage device 130, between the host device 110 and the computing device 140, and between the storage device 130 and the computing device 140 via the PCIe circuit 160. Direct data communication can also be referred to as Direct Memory Access (DMA) communication.

[0033] In some embodiments, the CSV device 120 may be implemented as a hardware accelerator. For example, the CSV device 120 may be implemented as a Field Programmable Gate Array (FPGA). The FPGA may be hardware that manages storage and computing resources for a virtual machine (VM).

[0034] In some embodiments, the CSV device 120 can flexibly manage storage and computing resources. For example, to enable the hostless device 110 to handle requests from multiple virtual machines (VMs) resource-intensively, the CSV device 120 can allocate resources to multiple storage devices and multiple computing devices. This will be discussed later in conjunction with... Figure 10 Let's explain this in detail together.

[0035] Storage device 130 can store data. For example, storage device 130 can provide data based on read requests from a virtual machine (VM), or it can store data based on write requests from a virtual machine (VM). Storage device 130 can store data processed by computing device 140.

[0036] The computing device 140 can process data provided by the storage device 130 or the host device 110. For example, in the event of a read request issued by a virtual machine (VM), the storage device 130 can provide the raw data stored therein to the computing device 140 under the management of the CSV device 120. The computing device 140 can process the raw data and provide the processed data to the host device 110.

[0037] As another example, when a write request is issued by a virtual machine (VM), the computing device 140 can receive raw data from the host device 110 according to the management of the CSV device, the computing device 140 can process the raw data, and the storage device 130 can store the data processed by the computing device 140.

[0038] In some embodiments, computing device 140 may perform data compression or encryption. For example, in the event of a read request issued by a virtual machine (VM), computing device 140 may receive the original data corresponding to the read request from storage device 130, decompress or decrypt the original data, and provide the decompressed or decrypted data to host device 110.

[0039] As another example, when a write request is issued by a virtual machine (VM), the computing device 140 can receive the raw data corresponding to the write request from the host device 110, compress or encrypt the raw data, and provide the compressed or encrypted data to the storage device 130.

[0040] In some embodiments, computing device 140 may be implemented as a hardware accelerator. For example, computing device 140 may be implemented as an FPGA. An FPGA may be hardware that provides computing resources.

[0041] The I / O memory management unit 150 can manage the mapping relationship between the virtual addresses of a virtual machine (VM) and the physical addresses corresponding to the VM's physical machine (i.e., host device 110). For example, the VM can be implemented as software running by the processor of the host device 110, and the virtual address of the data managed by the VM can correspond to the physical address of the data stored in the host memory of the host device 110. The I / O memory management unit 150 can translate virtual addresses into corresponding physical addresses, and vice versa.

[0042] In some embodiments, where the CSV device 120 includes an address translation table that manages the mapping between virtual addresses and physical addresses, the I / O memory management unit 150 may be omitted. Alternatively, the address management table and the I / O memory management unit 150 within the CSV device 120 may be used together for managing virtual addresses and physical addresses.

[0043] PCIe circuit 160 can be connected to host device 110, CSV device 120, storage device 130, computing device 140, and I / O memory management unit 150. PCIe circuit 160 can provide a direct interface environment for any combination of CSV device 120, storage device 130, computing device 140, and I / O memory management unit 150. For example, storage device 130 can communicate directly with computing device 140 via PCIe circuit 160.

[0044] As described above, according to this disclosure, the CSV device 120 provides a virtualization environment to the storage device 130 and the computing device 140. Since the CSV device 120 is implemented as a separate hardware component rather than a software module, the resource management burden on the host device 110 can be reduced. The CSV device 120 can ensure direct communication with any combination of the host device 110, storage device 130, and computing device 140 by translating requests from virtual machines (VMs).

[0045] Figure 2 This is described based on a portion of the embodiments disclosed herein. Figure 1 A block diagram of the storage system. (Refer to...) Figure 1 and Figure 2 The storage system 100 can be divided into a host side and a storage side. The storage side can also be called a virtualization device (VD).

[0046] The host side may include host device 110 and a virtual machine (VM) running on host device 110. The host device may include a CSV drive. The CSV drive may be software that stores information necessary for communication with CSV device 120. Host device 110 can communicate with CSV device 120 by running the CSV drive.

[0047] The storage side may include a CSV device 120, a storage device 130, a computing device 140, and an I / O memory management unit 150.

[0048] The CSV device 120 can communicate directly with the host device 110 or through the I / O memory management unit 150. The CSV device 120 may include a single root input / output virtualization (SR-IOV) adapter 121 and a device orchestrator 122.

[0049] The SR-IOV adapter 121 can provide an interface with a virtual machine (VM). The SR-IOV adapter 121 enables the VM to access the storage device 130 or the computing device 140 without going through a separate software layer.

[0050] The device orchestrator 122 can identify the virtual machine (VM) via the SR-IOV adapter 121. The device orchestrator 122 can identify the storage device 130 and the computing device 140. The device orchestrator 122 can allocate storage resources for the storage device 130 and computing resources for the computing device 140 of the virtual machine (VM).

[0051] Device orchestrator 122 can generate redirection requests to be provided to storage device 130 and processing requests to be provided to computing device 140 based on read requests provided by the virtual machine (VM). For example, a redirection request can be implemented by changing the destination address of the read request provided by the VM to computing device 140 instead of storage device 130. Device orchestrator 122 can generate processing requests to be provided to computing device 140 and storage requests to be provided to storage device 130 based on write requests provided by the virtual machine (VM).

[0052] Storage device 130 can communicate with CSV device 120 and computing device 140. In response to a request from CSV device 120, storage device 130 can provide data directly to computing device 140 via PCIe circuit 160, or receive processed data directly from computing device 140.

[0053] The computing device 140 can communicate with the CSV device 120 and the storage device 130. In response to a request from the CSV device 120, the computing device 140 can provide processed data directly to the storage device 130 via the PCIe circuit 160, or receive data directly from the storage device 130.

[0054] Figure 3 This is described based on a portion of the embodiments disclosed herein. Figure 1A block diagram of the storage system. (Refer to...) Figure 1 and Figure 3 The storage system 100 may include a host device 110, a CSV device 120, a storage device 130, a computing device 140, an I / O memory management unit 150, and a PCIe circuit 160.

[0055] Storage system 100 can identify a virtual machine (VM) as a target virtual machine among multiple virtual machines. Storage system 100 can identify storage device 130 as a target storage device among multiple storage devices. Storage system 100 can identify computing device 140 as a target computing device among multiple computing devices.

[0056] To handle requests from multiple virtual machines, storage system 100 can flexibly allocate storage resources from multiple storage devices and computing resources from multiple computing devices. When the number of virtual machines, storage devices, and computing devices increases or decreases, storage system 100 can reallocate storage and computing resources for the changed virtual environment.

[0057] Host device 110 may run a virtual machine (VM). The VM may include a Virtual Submission Queue (VSQ) and a Virtual Completion Queue (VCQ). A VSQ may be a memory to be written to by a command requested by the VM. A VCQ may be a memory that receives completion acknowledgments indicating the completion of a command written to a corresponding VSQ. VSQs and VCQs may have a corresponding relationship. The virtual addresses of VSQs and VCQs may correspond to a portion of the host memory of host device 110.

[0058] Host device 110 may include host memory. Storage device 130 may include buffer memory. Computing device 140 may include buffer memory. Any combination of the host memory of host device 110, the buffer memory of storage device 130, and the buffer memory of computing device 140 can communicate directly via PCIe circuit 160.

[0059] The I / O memory management unit 150 can communicate with the host device 110 and the CSV device 120. The I / O memory management unit 150 can translate a virtual address provided by the host device 110 into a physical address and provide the physical address to the CSV device 120. The I / O memory management unit 150 can also translate a physical address provided by the CSV device 120 into a virtual address and provide the virtual address to the host device 110. In some embodiments, if the CSV device 120 includes an address translation table that manages the mapping between virtual and physical addresses, the I / O memory management unit 150 may be omitted.

[0060] The CSV device 120 may include an SR-IOV adapter 121 and a device orchestrator 122.

[0061] The SR-IOV adapter 121 can communicate with the host device 110 and the device orchestrator 122. The SR-IOV adapter 121 can include multiple Virtual Functions (VFs). Each of the multiple VFs can correspond to multiple Virtual Machines (VMs). Each of the multiple VFs can provide an interface with its corresponding Virtual Machine. The VFs enable the corresponding Virtual Machines to access the storage device 130 and computing device 140 through the device orchestrator 122 without going through a software layer. Within the SR-IOV adapter 121, each of the multiple VFs can operate as an independent device. The VFs can support the allocation of storage and computing resources to their corresponding Virtual Machines.

[0062] The device orchestrator 122 can communicate with the SR-IOV adapter 121, the storage device 130, the computing device 140, and the I / O memory management unit 150. The device orchestrator 122 may include storage interface circuitry, computing device interface circuitry, and a resource manager.

[0063] The storage interface circuitry provides an interface between the resource manager and storage device 130. The storage interface circuitry may include a Submission Queue (SQ) and a Completion Queue (CQ). An SQ may correspond to a command written to a VSQ and may be the memory to which the command to be written to storage device 130 will be stored. A CQ may be a memory that receives a completion acknowledgment indicating that the command written to the corresponding SQ has been processed. SQs and CQs may have a corresponding relationship.

[0064] The computing device interface circuitry can provide an interface between the resource manager and the computing device 140.

[0065] The resource manager can receive requests from the virtual machine (VM) via the SR-IOV adapter 121. The resource manager can communicate with the storage device 130 via the storage interface. The resource manager can communicate with the computing device 140 via the computing device interface circuitry.

[0066] The resource manager can modify a portion of the fields in a request from a virtual machine (VM) and provide it to storage device 130 or computing device 140. In the following text, it will be compared with... Figure 4 and Figure 5 Let's take a closer look at the changed fields.

[0067] The resource manager can manage multiple virtual machines (VMs), multiple storage devices, and multiple compute devices. For example, the resource manager can refer to the indexes of multiple storage devices to identify a target storage device. Similarly, the resource manager can refer to the indexes of multiple compute devices to identify a target compute device. The resource manager can then allocate the storage resources of the identified storage devices and the compute resources of the identified compute devices to the VMs.

[0068] The resource manager can manage the mapping between virtual machines (VMs) and storage devices 130. For example, the VSQ and VCQ of the VM can correspond to the SQ and CQ of the storage interface circuit, respectively. The layer of the command to write to the VSQ can be different from the layer of the command to write to the SQ. The layer of the completion confirmation to write to the CQ can be different from the layer of the completion confirmation to write to the VCQ. The resource manager can obtain the command to write to the VSQ, change the layer of the obtained command, and write the command with the changed layer to the SQ. The resource manager can obtain the complex function to write to the CQ, change the layer of the obtained complex function, and write the complex function with the changed layer to the VCQ.

[0069] In some embodiments, the resource manager may conform to the Non-Volatile Memory Express (NVMe) standard. For example, the resource manager may receive a notification from host device 110 that a command has been written to the VSQ. The resource manager can retrieve the command written to the VSQ. Based on the retrieved command, the resource manager can write a layer-modified command to the SQ. The resource manager may provide the doorbell to storage device 130. Storage device 130 can retrieve the layer-modified command from the SQ. Storage device 130 can communicate with computing device 140 to process the command.

[0070] After processing the command, storage device 130 can write a completion confirmation to the CQ. Storage device 130 can provide an interrupt notification to the resource manager. The resource manager can obtain the completion confirmation written to the CQ and write a completion confirmation indicating that the layer has been changed to the VCQ based on the obtained completion confirmation. The resource manager can provide a doorbell to storage device 130. The resource manager can provide an interrupt notification to host device 110. Host device 110 can process the completion confirmation written to the VCQ. Host device 110 can provide a doorbell to the resource manager.

[0071] In some embodiments, the resource manager may include an address translation table. The address translation table manages the mapping between virtual addresses and physical addresses. The resource manager can refer to the address translation table to translate virtual addresses into physical addresses, or vice versa. In this case, the I / O memory management unit 150 may be omitted, or the address translation table and the I / O memory management unit 150 may be used together.

[0072] In some embodiments, the resource manager may include an inner-computational device. The inner-computational device may process data received from storage device 130 or data received from host device 110. The inner-computational device may perform functions similar to computing device 140. In this case, computing device 140 may be omitted, or the inner-computational device and computing device 140 may be used together. (The following will refer to...) Figure 11 and Figure 12 Together, we will provide a more detailed explanation of the internal computing device.

[0073] Figure 4 This is a diagram illustrating a command format according to a portion of an embodiment of this disclosure. (Refer to...) Figure 1 and Figure 4 This describes the command format of the commands received from the host device 110.

[0074] In some embodiments, the command format may conform to the NVMe standard. For example, the command format may include “Op”, “Flags”, “CID”, “Namespace Identifier”, “Reserved Field”, “Metadata”, “PRP1”, “PRP2”, “SLBA”, “length”, “Control”, “Dsmgmt”, “Appmask”, and “Apptag”.

[0075] "Op" can indicate an opcode or operation code. For example, "Op" can indicate whether the operation to be processed by the command is a read operation or a write operation, etc.

[0076] "Flags" can manage the flag values ​​of persistent memory regions.

[0077] "CID" can indicate a command identifier. A command identifier can be used to distinguish one command from another.

[0078] A "namespace identifier" can be used to distinguish one namespace from another. A namespace can be a space that assigns names to files in the file system.

[0079] "Reserved fields" can indicate areas that can be changed according to the design.

[0080] Metadata can indicate or describe the data to be processed according to the command, or information related to that data.

[0081] "PRP1" can refer to the first physical region page. "PRP2" can refer to the second physical region page. The first and second physical region pages can indicate the memory address used for DMA communication.

[0082] "SLBA" can indicate the start logical block address. When multiple virtual machines share a storage device, "SLBA" can provide a different offset value to each of the virtual machines, ensuring that the addresses used by the multiple virtual machines do not overlap. Each of the virtual machines can refer to the address with the added offset value.

[0083] "Length" indicates the length of the data block in bytes. "Control" can be used to control data transfer. "Dsmgmt", "Appmask", and "Apptag" can be fields managed by the operating system or file system of the virtual machine VM or host device 110.

[0084] According to a portion of the embodiments of this disclosure, the CSV device 120 can generate a request that can be processed by the storage device 130 or the computing device 140 by changing reserved fields of the command. Reserved fields may include CSV commands proposed according to embodiments of this disclosure. (Hereinafter referred to as...) Figure 5 Let's take a closer look at the reserved fields.

[0085] Figure 5 This is described based on a portion of the embodiments disclosed herein. Figure 4 A diagram of the reserved fields. (See reference...) Figure 1 , Figure 4 and Figure 5The reserved fields of the commands received from the host device 110 can indicate the location where the CSV commands are stored (e.g., the location where the fields corresponding to the CSV commands within the host device 110 are stored).

[0086] A CSV command may include at least one of the following: operator chain identifier, source address, destination address, source size, destination size, request identifier, physical device identifier, type, direct arguments, file arguments, direct argument pointer, and file argument pointer.

[0087] The operator chain identifier can indicate the type of operation to be processed by the computing device 140. For example, the operator chain identifier can indicate an encryption operation, a compression operation, or an encryption and compression operation. Alternatively, the operator chain identifier can indicate a decryption operation, a decompression operation, or a decryption and decompression operation.

[0088] The source address indicates the location of the source requesting the processed data. The destination address indicates the location of the destination receiving the processed data.

[0089] For example, in the case of a read request issued by a virtual machine (VM), the source address may indicate a buffer memory within computing device 140 after the original data in storage device 130 is redirected to computing device 140. The destination address may indicate the host memory of the host device 110 that runs the virtual machine VM in order to provide the virtual machine VM with data processed by computing device 140.

[0090] As another example, in the case of a write request issued by a virtual machine (VM), in order for computing device 140 to receive raw data from host device 110 before the computing device 140 generates processed data, the source address may indicate the host memory of the host device 110 running the virtual machine (VM). In order for computing device 140 to process the raw data before storing it in storage device 130, the destination address may indicate the buffer memory of computing device 140.

[0091] In some embodiments, the location of the buffer memory of storage device 130 can be determined by... Figure 4 SLBA management of commands. For example, in the case of a read or write request issued by a virtual machine (VM), Figure 4 The SLBA command of the host device 110 can instruct the buffer memory of the storage device 130.

[0092] Source size can indicate the size of the data to be sent based on the source address.

[0093] Destination size can indicate the size of the data to be sent based on the destination address.

[0094] A request identifier can indicate an operation that is indicated by a request. For example, a request identifier, as an operation indicated by a request, can indicate one of operations such as a read operation, a write operation, a processing operation, a redirection operation, or a storage operation. Request identifiers can manage dependencies between different requests. For example, if the request identifier of the current request is the same as the request identifier of a previous request, the storage system 100 can retain the execution of the current request until the processing of the previous request is completed.

[0095] The physical device identifier can indicate the index of storage device 130 and the index of computing device 140. For example, storage system 100 may include multiple storage devices and multiple computing devices. Storage system 100 can identify storage device 130 as a target storage device among multiple storage devices and computing device 140 as a target computing device among multiple computing devices by referring to the index recorded in the physical device identifier.

[0096] The type can indicate whether access to storage device 130 is required.

[0097] Direct parameters can indicate the location in the host memory of the host device 110 where information used in the processing operations of the computing device is stored. For example, direct parameters can indicate the location in the host memory where parameters such as functions, algorithms, hash functions, and key values ​​used in processing operations such as compression, decompression, encryption, and decryption are stored.

[0098] File parameters can indicate the location within storage device 130 where copied information used in the processing operations of the computing device is stored. For example, file parameters can indicate the location within storage device 130 where parameters such as functions, algorithms, hash functions, and key values ​​for processing operations such as compression, decompression, encryption, and decryption are copied.

[0099] A direct parameter pointer can be a field that stores a pointer to the direct parameter being sent.

[0100] The file parameter pointer can be a field that stores a pointer to the file parameters to be sent.

[0101] Figure 6 This is a sequence diagram illustrating the operation method of a virtualization apparatus according to a portion of the embodiments of this disclosure. (Refer to...) Figure 2 and Figure 6 This describes the method for operating the virtualization device (VD).

[0102] In step S110, the virtualization device VD can receive a request from the host device 110 running the virtual machine VM.

[0103] In step S120, the virtualization device VD can determine whether the request in step S110 indicates a compute-store operation. For example, if the requested reserved field exists, the virtualization device VD can determine that it indicates a compute-store operation; if the requested reserved field is null, the virtualization device VD can determine that it does not indicate a compute-store operation. When it is determined that the request indicates a compute-store operation, the virtualization device VD can execute step S130. When it is determined that the request does not indicate a compute-store operation, the virtualization device VD can execute step S170.

[0104] In step S130, the virtualization device VD can obtain the address of the physical machine corresponding to the virtual machine VM and the address of the computing device 140. The physical machine corresponding to the virtual machine VM can instruct the host device 110.

[0105] In some embodiments, in step S130, the virtualization device VD can check whether there are direct parameters or file parameters in the requested reserved fields. If there are direct parameters or file parameters, the direct parameters or file parameters can be read.

[0106] In step S140, the virtualization device VD can determine whether the request in step S110 indicates a read operation. If it is determined that the request indicates a read operation, the virtualization device VD can execute step S150. If it is determined that the request does not indicate a read operation, the virtualization device VD can execute step S160.

[0107] In step S150, the CSV device 120 of the virtualization device VD may provide a data read redirection request to the storage device 130. At this time, the redirection request may instruct the original data stored in the storage device 130 to be provided to the computing device 140.

[0108] In step S151, the CSV device 120 of the virtualization device VD can provide a data read processing request to the computing device 140. At this time, the data read processing request can instruct the computing device 140 to process the data read from the storage device 130 and to provide the processed data read to the host device 110.

[0109] Returning to step S140, if it is determined in step S140 that a request is not indicated for a read operation, the virtualization device may execute step S160.

[0110] In step S160, the CSV device 120 of the virtualization device VD can provide a write data processing request to the computing device 140. At this time, the write data processing request can instruct the computing device 140 to receive write data from the host device 110 and to process the write data.

[0111] In step S161, the CSV device 120 of the virtualization device VD can provide a storage request for the processed write data to the storage device 130. At this time, the storage request can instruct the storage device 130 to receive the processed write data from the computing device 140 and to store the processed write data.

[0112] Returning to operation S120, if it is determined in step S120 that a request is not indicated for computational storage operations, then the virtualization device VD can execute step S170.

[0113] In step S170, the virtualization device VD can perform general storage operations. General storage operations can refer to general read operations or general write operations that are not accompanied by compression, decompression, encryption, decryption, or other processing operations of the internal computing device within the computing device 140 or CSV device 120.

[0114] Figure 7 This is a diagram illustrating a read operation of a storage system according to a portion of an embodiment of this disclosure. (Refer to...) Figure 1 and Figure 7 The storage system 100 may include a host device 110 running a virtual machine (VM), a CSV device 120, a storage device 130, a computing device 140, and a PCIe circuit 160.

[0115] According to some embodiments of this disclosure, the storage system 100 can perform read operations based on requests from a virtual machine (VM). The read operation may include first operations ① through seventh operations ⑦.

[0116] In the first operation ①, the host device 110 running the virtual machine VM can provide the CSV device 120 with a first request RQ1 indicating a first address ADD1, a second address ADD2, and a read operation. The read operation can instruct the reading of raw data RDT stored in the storage device 130. The first address ADD1 can indicate the virtual address of the virtual machine VM. The second address ADD2 can indicate the location of the raw data RDT stored in the memory of the storage device 130.

[0117] In the second operation ②, the CSV device 120 can obtain a third address ADD3 and a fourth address ADD4 based on the first request RQ1. The third address ADD3 can indicate the location of the physical machine corresponding to the virtual machine VM (i.e., the location within the host memory of the host device 110). The fourth address ADD4 can indicate the location within the buffer memory of the computing device 140 that will process the raw data RDT of the storage device 130.

[0118] In the third operation ③, the CSV device 120 may provide the storage device 130 with a second request RQ2 indicating the second address ADD2, the fourth address ADD4, and a redirection. The redirection may instruct the data stored in the storage device 130 to be provided to the computing device 140 via the PCIe circuit system 160.

[0119] In the fourth operation ④, storage device 130 may provide raw data RDT to computing device 140 based on the second request RQ2. For example, storage device 130 may perform DMA communication for computing device 140 via PCIe circuit 160 based on the second address ADD2 and the fourth address ADD4 of the second request RQ2. After providing the raw data RDT to computing device 140, storage device 130 may provide a completion acknowledgment to CSV device 120, thereby notifying CSV device 120 that the second request RQ2 has been processed.

[0120] In the fifth operation ⑤, the CSV device 120 may provide the computing device 140 with a third request RQ3 indicating the third address ADD3, the fourth address ADD4, and a processing operation. The processing operation may indicate that the computing device 140 processes (e.g., decompresses, decrypts, etc.) the raw data RDT.

[0121] In the sixth operation (⑥), the computing device 140 can generate processed data PDT by processing the raw data RDT based on the third request RQ3. The processed data PDT can be decompressed or decrypted data.

[0122] In the seventh operation (⑦), computing device 140 may provide processed data PDT to host device 110 based on third request RQ3. For example, computing device 140 may perform DMA communication for host device 110 via PCIe circuit 160 based on third address ADD3 and fourth address ADD4 of third request RQ3. After providing the processed data PDT to host device 110, computing device 140 may provide a done notification to CSV device 120. CSV device 120 may issue a completion acknowledgment for virtual machine VM in response to the done notification.

[0123] Figure 8 This is a diagram illustrating a write operation of a storage system according to a portion of an embodiment of this disclosure. (Refer to...) Figure 1 and Figure 8 The storage system 100 may include a host device 110 running a virtual machine (VM), a CSV device 120, a storage device 130, a computing device 140, and a PCIe circuit 160.

[0124] According to some embodiments of this disclosure, the storage system 100 can perform write operations based on requests from a virtual machine (VM). The write operation may include first operations ① through eighth operations ⑧.

[0125] In the first operation ①, the host device 110 running the virtual machine VM can provide the CSV device 120 with a first request RQ1 indicating a first address ADD1, a second address ADD2, and a write operation. The write operation can instruct the raw data RDT corresponding to the virtual address of the virtual machine VM to be written to the storage device 130. The first address ADD1 can indicate the virtual address of the virtual machine VM. The second address ADD2 can indicate the location within the storage device 130 where the processed data PDT corresponding to the raw data RDT will be stored.

[0126] In the second operation ②, the CSV device 120 can obtain a third address ADD3 and a fourth address ADD4 based on the first request RQ1. The third address ADD3 can indicate the location of the physical machine corresponding to the virtual machine VM (i.e., the location within the host memory of the host device 110). The fourth address ADD4 can indicate the location within the buffer memory of the computing device 140 that will process the raw data RDT of the virtual machine VM.

[0127] In the third operation ③, the CSV device 120 may provide the computing device 140 with a second request RQ2 indicating a third address ADD3, a fourth address ADD4, and a processing operation. The processing operation may instruct the computing device 140 to receive raw data RDT from the host device 110 and to process (e.g., compress, encrypt, etc.) the raw data RDT.

[0128] In the fourth operation ④, computing device 140 may receive raw data RDT from host device 110 based on the second request RQ2. For example, computing device 140 may perform DMA communication to host device 110 via PCIe circuit 160 based on the third address ADD3 and the fourth address ADD4 of the second request RQ2.

[0129] In the fifth operation ⑤, the computing device 140 can process the raw data RDT based on the second request RQ2 to generate the processed data PDT. The processed data PDT can be compressed data or encrypted data. After generating the processed data PDT, the computing device 140 can provide a completion notification to the CSV device 120.

[0130] In the sixth operation (⑥), the CSV device 120 may provide the storage device 130 with a third request RQ3 indicating the second address ADD2, the fourth address ADD4, and the storage operation. The storage operation may instruct the storage device 130 to receive the processed data PDT from the computing device 140 and to store the processed data PDT.

[0131] In the seventh operation ⑦, the storage device 130 may receive processed data PDT from the computing device 140 based on the third request RQ3. For example, the storage device 130 may perform DMA communication for the computing device 140 via the PCIe circuit 160 based on the second address ADD2 and the fourth address ADD4 of the third request RQ3.

[0132] In the eighth operation (⑧), storage device 130 may store the processed data PDT based on the third request RQ3. After storing the processed data PDT, storage device 130 may provide a completion acknowledgment to CSV device 120. CSV device 120 may provide a completion acknowledgment to the virtual machine VM based on the completion acknowledgment received from storage device 130.

[0133] Figure 9 This diagram illustrates direct communication between devices in a storage system according to a portion of an embodiment of this disclosure. (Refer to...) Figure 9 The storage system 100 may include a host device 110, a CSV device 120, a storage device 130, a computing device 140, and a PCIe circuit 160.

[0134] Any combination of host device 110, storage device 130, and computing device 140 can directly perform data communication (i.e., perform DMA communication) via PCIe communication. To aid in understanding this disclosure, Figure 9 This describes the operation of computing device 140 as a source providing processed data PDT to host device 110 or storage device 130, but host device 110 and storage device 130 may also operate as sources in a similar manner as described later.

[0135] The CSV device 120 can provide a source address and a destination address to the computing device 140. The source address can be a fourth address, ADD4, indicating the location of the cache memory of the computing device 140. The destination address can indicate a host device 110 or a storage device 130 that can communicate with the computing device 140 via the PCIe circuit 160.

[0136] For example, an address in the range "0 to 1023" could be a third address ADD3 corresponding to host device 110. When CSV device 120 provides an address in the range "0 to 1023" as a destination address to computing device 140, computing device 140 can directly provide processed data PDT to host device 110 via PCIe circuit 160 with reference to the destination address.

[0137] As another example, the address in the range "1024 to 2047" could be the second address ADD2 corresponding to storage device 130. When CSV device 120 provides the computing device 140 with an address in the range "1024 to 2047" as the destination address, computing device 140 can directly provide the processed data PDT to storage device 130 via PCIe circuit 160 with reference to the destination address.

[0138] Figure 10 This is a block diagram illustrating a storage system with flexible scalability according to a portion of embodiments of the present disclosure. (Refer to...) Figure 10 Storage system 100 can manage resource allocation among multiple virtual machines, multiple storage devices, and multiple computing devices.

[0139] Storage system 100 may include virtual machine groups, storage device groups, computing device groups, SR-IOV adapter 121, and device orchestrator 122.

[0140] The virtual machine group may include first virtual machine VM_1 to Nth virtual machine VM_N. The storage device group may include first storage device 130_1 to Mth storage device 130_M. The computing device group may include first computing device 140_1 to Lth computing device 140_L. Wherein, N, M, and L are arbitrary positive integers.

[0141] The SR-IOV adapter 121 can communicate with a group of virtual machines. The SR-IOV adapter 121 may include multiple virtual machines (VFs). These multiple VFs can provide an interface between the first virtual machine VM_1 through the Nth virtual machine VM_N and the resource manager.

[0142] The storage interface circuitry can communicate with the group of storage devices. The storage interface circuitry can provide an interface between the first storage device 130_1 to the Mth storage device 130_M and the resource manager.

[0143] The computing device interface circuit can communicate with the computing device group. The computing device interface circuit can provide an interface between the first computing device 140_1 to the Lth computing device 140_L and the resource manager.

[0144] The resource manager can manage resource allocation among virtual machine groups, storage device groups, and compute device groups. For example, the resource manager can allocate a first storage device 130_1 and a first compute device 140_1 to a first virtual machine VM_1. Alternatively, the resource manager can allocate a first storage device 130_1 and a second storage device 130_2, as well as a first compute device 140_1 and a second compute device 140_2, to the first virtual machine VM_1.

[0145] When the number of virtual machines, storage devices, or computing devices increases or decreases, the resource manager can flexibly allocate storage and computing resources to the virtual machines according to the changing virtualization environment.

[0146] In situations where storage or computing resources are insufficient, by... Figure 1 The PCIe circuit 160 allows for the addition of another storage device or another computing device, providing flexible expansion of storage or computing resources.

[0147] Figure 11 This is a block diagram illustrating a storage system according to a portion of the embodiments of this disclosure. (Refer to...) Figure 11 This describes a storage system 200 according to a portion of the embodiments of the present disclosure.

[0148] Storage system 200 can manage requests from virtual machines (VMs). Storage system 200 may include host device 210, CSV device 220, storage device 230, and I / O memory management unit 250. CSV device 220 may include SR-IOV adapter 221 and device orchestrator 222.

[0149] Features of the virtual machine VM, host device 210, SR-IOV adapter 221, storage device 230, and I / O memory management unit 250 Figure 3 The virtual machine VM, host device 110, SR-IOV adapter 121, storage device 130 and I / O memory management unit 150 have similar features, so detailed descriptions of them are omitted.

[0150] The device orchestrator 222 may include a resource manager, storage interface circuitry, and an internal computing device. The internal computing device may include an accelerator and a buffer memory. The accelerator can provide computing resources. For example, the accelerator can perform operations such as compression, decompression, encryption, and decryption. The buffer memory of the internal computing device can communicate directly with the buffer memory of storage device 230 and the host memory of host device 210 via PCIe circuitry. The resource manager can allocate storage resources from storage device 230 and computing resources from the internal computing device to virtual machines (VMs). That is, the internal computing device can perform operations related to... Figure 3 It has similar functions to the computing device 140.

[0151] In some embodiments, the CSV device 220 may be implemented as a hardware accelerator. For example, the CSV device 220 may be implemented as an FPGA. The FPGA may be hardware that provides computing resources and manages storage and computing resources for a virtual machine (VM).

[0152] Figure 12 This is a block diagram illustrating a storage system according to a portion of the embodiments of this disclosure. (Refer to...) Figure 12 This describes a storage system 300 according to a portion of an embodiment of the present disclosure. The storage system 300 can manage requests from a virtual machine (VM). The storage system 300 may include a host device 310, a CSV device 320, a storage device 330, a computing device 340, and an I / O memory management unit 350. The CSV device 320 may include an SR-IOV adapter 321 and a device orchestrator 322.

[0153] Features of the virtual machine VM, host device 310, SR-IOV adapter 321, storage device 330, computing device 340, and I / O memory management unit 350 Figure 3 The virtual machine VM, host device 110, SR-IOV adapter 121, storage device 130, computing device 140 and I / O memory management unit 150 have similar features, so detailed descriptions of them are omitted.

[0154] The device orchestrator 322 may include a resource manager, an internal computing device, storage interface circuitry, and computing device interface circuitry.

[0155] The internal computing device may include an accelerator and a buffer memory. The accelerator can provide computing resources. Computing device 340 can provide computing resources. The resource manager can allocate computing resources to virtual machines (VMs) by comprehensively managing the internal computing device and computing device 340.

[0156] Figure 13 This is a sequence diagram illustrating the read operations of a virtualization device according to a portion of the embodiments of this disclosure. (Refer to...) Figure 13 This describes the read operation of the virtualization device (VD). The virtualization device (VD) can communicate with the host device 110 running the virtual machine. The virtualization device (VD) may include a CSV device 120, a storage device 130, and a computing device 140.

[0157] In step S210, the virtualization device VD can receive a first request RQ1 from the host device 110 via the CSV device 120, indicating a first address ADD1, a second address ADD2, and a read operation. The first address ADD1 may indicate the virtual address of the virtual machine running by the host device 110. The second address ADD2 may indicate the location within the storage device 130 that stores the original data corresponding to the read operation.

[0158] In step S220, the virtualization device VD can obtain the third address ADD3 from the first address ADD1 through the CSV device 120. The first address ADD1 can be the virtual address of the virtual machine. The third address ADD3 can be the address of the physical machine (i.e., the host device 110) corresponding to the virtual machine. The CSV device 120 can obtain the third address ADD3 from the first address ADD1 by referring to the included address translation table. Alternatively, the virtualization device VD can further include an I / O memory management unit, and the CSV device 120 can receive the third address ADD3 corresponding to the first address ADD1 from the I / O memory management unit.

[0159] In step S221, the virtualization device VD can designate a fourth address ADD4, indicating the location of the buffer memory of the computing device 140, through the CSV device 120. For example, the CSV device 120 can identify the computing device 140 and allocate computing resources to the virtual machine VM.

[0160] In step S230, the virtualization device VD can provide the storage device 130 with a second request RQ2 indicating the second address ADD2, the fourth address ADD4, and a redirection via the CSV device 120. The redirection can instruct the storage device 130 to provide raw data to the computing device 140.

[0161] In step S240, the virtualization device VD can provide raw data to the computing device 140 through the storage device 130 based on the second request RQ2. The raw data can be compressed data or encrypted data.

[0162] In step S241, the virtualization device VD may provide a first completion acknowledgment COMP1 to the CSV device 120 after processing the raw data through the storage device 130. The first completion acknowledgment may be written to the CQ of the CSV device 120.

[0163] In step S250, in response to the first completion confirmation COMP1, the virtualization device VD may provide the computing device 140 with a third request RQ3 indicating the third address ADD3, the fourth address ADD4, and the processing operation via the CSV device 120. The processing operation may instruct the computing device 140 to process the raw data and the computing device 140 to provide the processed data to the host device 110.

[0164] In step S260, the virtualization device VD can process the raw data through the computing device 140. For example, the computing device 140 can generate processed data by decompressing or decrypting the raw data. The processed data can be decompressed data or decrypted data.

[0165] In operation S270, the virtualization device VD can provide data based on the third request RQ3 to the host device 110 through the computing device 140.

[0166] In step S280, the virtualization device VD can provide a completion notification to the CSV device 120 through the computing device 140.

[0167] In step S281, the virtualization device VD may provide a second completion acknowledgment COMP2 to the host device 110 in response to a completion notification via the CSV device 120. The second completion acknowledgment COMP2 may be written to the VCQ of the virtual machine VM.

[0168] Figure 14 This is a sequence diagram illustrating the write operations of a virtualization device according to a portion of the embodiments of this disclosure. (Refer to...) Figure 14 This describes the write operation of the virtualization device (VD). The virtualization device (VD) can communicate with the host device 110 running the virtual machine. The virtualization device (VD) may include a CSV device 120, a storage device 130, and a computing device 140.

[0169] In step S310, the virtualization device VD can receive a first request RQ1 indicating a first address ADD1, a second address ADD2, and a write operation from the host device 110 via the CSV device 120. The first address ADD1 may indicate the virtual address of the virtual machine running by the host device 110. The second address ADD2 may indicate the location where the processed data will be stored in the storage device 130 after processing the original data corresponding to the write operation.

[0170] In step S320, the virtualization device VD can obtain the third address ADD3 from the first address ADD1 through the CSV device 120. The first address ADD1 can be the virtual address of the virtual machine. The third address ADD3 can be the address of the physical machine (i.e., the host device 110) corresponding to the virtual machine. The CSV device 120 can obtain the third address ADD3 from the first address ADD1 by referring to the included address translation table. Alternatively, the virtualization device VD can further include an I / O memory management unit, and the CSV device 120 can receive the third address ADD3 corresponding to the first address ADD1 from the I / O memory management unit.

[0171] In step S321, the virtualization device VD can specify a fourth address ADD4 indicating the location of the buffer memory of the computing device 140 through the CSV device 120. For example, the CSV device 120 can identify the computing device 140 and allocate computing resources of the computing device 140 to the virtual machine VM.

[0172] In step S330, the virtualization device VD can provide the computing device 140 with a second request RQ2 indicating the third address ADD3, the fourth address ADD4, and a processing operation via the CSV device 120. The processing operation can instruct the computing device 140 to receive raw data from the host device 110 and to process the raw data.

[0173] In step S340, the virtualization device VD can receive raw data from the host device 110 via the computing device 140 based on the second request RQ2. The raw data may be uncompressed or unencrypted data.

[0174] In step S350, the virtualization device VD can process the raw data through the computing device 140. For example, the computing device 140 can generate processed data by compressing or encrypting the raw data. The processed data can be compressed data or encrypted data.

[0175] In step S351, the virtualization device VD can provide a completion notification to the CSV device 120 through the computing device 140.

[0176] In step S360, the virtualization device VD may provide the storage device 130 with a third request RQ3 indicating the second address ADD2, the fourth address ADD4, and the storage operation in response to a completion notification via the CSV device 120.

[0177] In step S370, the virtualization device VD can receive processed data from the computing device 140 through the storage device 130 based on the third request RQ3.

[0178] In operation S380, the virtualization device VD can store the processed data in the storage device 130.

[0179] In step S390, after the processed data is stored by the storage device 130, the virtualization device VD provides a first completion acknowledgment COMP1 to the CSV device 120. The first completion acknowledgment can be written to the CQ of the CSV device 120.

[0180] In step S391, the virtualization device VD can provide a second completion acknowledgment COMP2 to the host device 110 in response to the first completion acknowledgment COMP1 via the CSV device 120. The second completion acknowledgment COMP2 can be written to the VCQ of the virtual machine VM.

[0181] The foregoing description describes specific embodiments for implementing the present invention. The present invention includes not only the embodiments described above, but also embodiments that can be easily modified or altered. Furthermore, the present invention includes techniques that can be easily modified and implemented using the embodiments. Therefore, the scope of the present invention should not be limited to the foregoing embodiments, but should be defined by the claims and their equivalents.

Claims

1. A method for operating a virtualization device, wherein the virtualization device communicates with a host device running a virtual machine, the virtualization device comprising a compute-storage virtualization device, a storage device, and a compute device, wherein, Both the computing storage virtualization device and the computing device are implemented using field-programmable gate arrays (FPGAs). The operation method of the virtualization device includes the following steps: The computing and storage virtualization device receives from the host device a first request indicating the first address of the virtual machine, a second address of the storage device, and a read operation. The third address of the host memory of the host device and the fourth address of the buffer memory of the computing device are obtained based on the first request by means of the computing storage virtualization device; The computing storage virtualization device provides the storage device with a second request indicating the second address, the fourth address, and the redirection; The storage device provides raw data to the computing device in response to the second request. A third request, instructing the computing device to specify the third address, the fourth address, and the processing operation, is provided to the computing device via the computing storage virtualization device. Processed data is generated based on the third request and the original data using the computing device. as well as The processed data is provided to the host device via the computing device. The acquisition of the third address and the fourth address includes: By means of the compute-storage virtualization device, it is determined whether the first request indicates a compute-storage operation by verifying whether the reserved field of the first request is empty or includes compute-storage information; and The third address and the fourth address are obtained by means of the compute storage virtualization device when it is determined that the reserved field includes the compute storage information so that the first request instructs the compute storage operation.

2. The method of operating the virtualization device according to claim 1, wherein, The virtualization device further includes: a high-speed serial computer expansion bus standard circuit, connected to the host device, the computing-storage virtualization device, the storage device, and the computing device. The step of providing raw data to the computing device based on the second request via the storage device includes the following steps: The raw data is provided directly to the computing device via the storage device, based on the fourth address of the second request, through the high-speed serial computer expansion bus standard circuit. The step of providing the processed data to the host device via the computing device includes the following steps: The processed data is provided directly to the host device via the computing device, based on the third address of the third request, through the high-speed serial computer extended bus standard circuit.

3. The method of operating the virtualization device according to claim 1, wherein, The reserved fields correspond to the command format of the non-volatile memory fast standard.

4. The method of operating the virtualization device according to claim 3, wherein, The reserved field indicates at least one of the following items: Operator chain identifier, indicating the type of the processing operation of the computing device; The source address indicates the location of the source that requested the processed data; Destination address, indicating the location of the destination where the processed data is received; Source size indicates the size of the data to be sent based on the source address; Destination size indicates the size of the data to be transmitted based on the destination address; Request identifiers manage dependencies between different requests that indicate the same type of operation; Physical device identifier, indicating the index of the storage device and the index of the computing device; Type, indicating whether access to the storage device is required; Direct parameters indicate the location within the host device where information used in the processing operations of the computing device is stored; File parameters indicate the location within the storage device where copy information used in the processing operation of the computing device is stored; A direct parameter pointer, used to send the direct parameter; as well as A file parameter pointer, used to send the file parameters.

5. The method of operating the virtualization device according to claim 1, wherein, The original data in the storage device is compressed or encrypted data. The processed data by the computing device is either decompressed or decrypted data.

6. The method of operating the virtualization device according to claim 1, wherein, The step of providing raw data to the computing device based on the second request via the storage device includes the following steps: The storage device provides a first completion confirmation to the computing storage virtualization device after providing the original data. The step of providing a third request indicating the third address, the fourth address, and the processing operation to the computing device via the computing storage virtualization device includes the following steps: In response to the first completion confirmation, the computing storage virtualization device provides the third request to the computing device. The step of providing the processed data to the host device via the computing device includes the following steps: The computing device provides a completion notification to the computing storage virtualization device after providing the processed data; and The computing and storage virtualization device provides a second completion confirmation to the host device in response to the completion notification.

7. The method of operating the virtualization device according to claim 1, wherein, The step of obtaining the third address of the physical machine corresponding to the virtual machine and the fourth address of the computing device based on the first request using the computing storage virtualization device includes the following steps: The third address is obtained based on the first address by referring to the address translation table within the computing and storage virtualization device.

8. The method of operating the virtualization device according to claim 1, wherein, The virtualization device further includes an input / output memory management unit, which communicates with the host device and the computing storage virtualization device. The step of obtaining the third address of the physical machine corresponding to the virtual machine and the fourth address of the computing device based on the first request using the computing storage virtualization device includes the following steps: Using the input / output memory management unit, the first address is translated into the third address based on the first request; and The third address is received from the input / output memory management unit via the computing storage virtualization device.

9. The method of operating the virtualization device according to claim 1, wherein, The virtualization device is configured to identify the virtual machine as a target virtual machine among a plurality of virtual machines, the storage device as a target storage device among a plurality of storage devices, and the computing device as a target computing device among a plurality of computing devices.

10. The method of operating the virtualization device according to claim 1, wherein, The computing device is implemented using the internal computing device of the computing storage virtualization device.

11. A method of operating a virtualization device, wherein the virtualization device communicates with a host device running a virtual machine, the virtualization device comprising a compute-storage virtualization device, a storage device, and a compute device, wherein... Both the computing storage virtualization device and the computing device are implemented using field-programmable gate arrays (FPGAs). The operation method of the virtualization device includes the following steps: The computing and storage virtualization device receives from the host device a first request indicating the first address of the virtual machine, a second address of the storage device, and a read operation. The third address of the host memory of the host device and the fourth address of the buffer memory of the computing device are obtained based on the first request by means of the computing storage virtualization device; A second request, instructing the third address, the fourth address, and the processing operation, is provided to the computing device via the computing storage virtualization device; The computing device receives raw data from the host device in response to the second request. The computing device generates processed data based on the second request and the original data. The computing storage virtualization device provides the storage device with a third request indicating the second address, the fourth address, and the storage operation; The processed data is received from the computing device based on the third request via the storage device; as well as The processed data is stored by means of the storage device. The acquisition of the third address and the fourth address includes: By means of the compute-storage virtualization device, it is determined whether the first request indicates a compute-storage operation by verifying whether the reserved field of the first request is empty or includes compute-storage information; and The third address and the fourth address are obtained by means of the computing storage virtualization device when it is determined that the reserved field includes the computing storage information and the computing storage operation is instructed.

12. The method of operating the virtualization device according to claim 11, wherein, The virtualization device further includes: a high-speed serial computer expansion bus standard circuit, connected to the host device, the computing-storage virtualization device, the storage device, and the computing device. The step of receiving the raw data from the host device based on the second request via the computing device includes the following steps: Using the computing device, based on the third address of the second request, the raw data is received directly from the host device via the high-speed serial computer extended bus standard circuitry. The step of receiving the processed data from the computing device based on the third request via the storage device includes the following steps: The processed data is received directly from the computing device via the storage device, based on the fourth address of the third request, through the high-speed serial computer extended bus standard circuit.

13. The method of operating the virtualization device according to claim 11, wherein, The reserved fields correspond to the command format of the non-volatile memory fast standard.

14. The method of operating the virtualization device according to claim 13, wherein, The reserved field indicates at least one of the following: Operator chain identifier, indicating the type of the processing operation of the computing device; The source address indicates the location of the source that requested the processed data; Destination address, indicating the location of the destination where the processed data is received; Source size indicates the size of the data to be sent based on the source address; Destination size indicates the size of the data to be transmitted based on the destination address; Request identifiers manage dependencies between different requests that indicate the same type of operation; Physical device identifier, indicating the index of the computing storage virtualization device, the index of the storage device, and the index of the computing device; Type, indicating whether access to the storage device is required; Direct parameters indicate the location within the host device where information used in the processing operations of the computing device is stored; File parameters indicate the location within the storage device where copy information used in the processing operation of the computing device is stored; A direct parameter pointer, used to send the direct parameter; as well as A file parameter pointer, used to send the file parameters.

15. The method of operating the virtualization device according to claim 11, wherein, The raw data of the host device is uncompressed or unencrypted data. The processed data by the computing device is compressed or encrypted data.

16. The method of operating the virtualization device according to claim 11, wherein, The step of generating processed data based on the second request and the original data using the computing device includes the following steps: After generating the processed data, the computing device provides a completion notification to the computing storage virtualization device. The step of providing a third request instructing the storage device, indicating the second address, the fourth address, and the storage operation, via the computing storage virtualization device includes the following steps: The computing and storage virtualization device, in response to the completion notification, provides the third request to the storage device. The step of storing the processed data by means of the storage device includes the following steps: After storing the processed data, the storage device provides a first completion confirmation to the compute storage virtualization device; and The computing and storage virtualization device provides a second completion confirmation to the host device in response to the first completion confirmation.

17. A virtualization device, comprising: The storage device is configured to store the first data; A computing device configured to process the first data and process second data of a virtual machine running by a host device, the computing device being implemented with a field-programmable gate array; A computing and storage virtualization device, wherein the computing and storage virtualization device is implemented using a field-programmable gate array; as well as A high-speed serial computer expansion bus standard circuit is connected to the storage device, the computing device, the computing-storage virtualization device, and the host device. The computing and storage virtualization device is configured as follows: Receive a first request from the host device, including a first address of the virtual machine and a second address of the storage device; Obtain the third address of the host memory of the host device and the fourth address of the buffer memory of the computing device; Determine whether the first request indicates a read operation or a write operation by verifying whether the reserved field of the first request is empty or includes computational storage information; the read operation and the write operation are types of computational storage operations. Upon determining that the reserved field includes the computational storage information and indicating that the first request indicates the read operation, a second request indicating the second address, the fourth address, and the redirection is provided to the storage device, and a third request indicating the third address, the fourth address, and the first processing operation of the first data is provided to the computing device; and When it is determined that the reserved field includes the computational storage information and the first request indicates that the write operation is indicated, a fourth request is provided to the computing device indicating a second processing operation of the third address, the fourth address and the second data, and a fifth request is provided to the storage device indicating the second address, the fourth address and the storage operation.

18. The virtualization apparatus according to claim 17, wherein, The computing and storage virtualization device includes: A single root input / output virtualization adapter, including virtualization functions that provide an interface with the virtual machine; and The device orchestrator is configured to identify the virtual machine through the virtualization function, allocate resources of the storage device and the computing device to the virtual machine, obtain the third address and the fourth address based on the first request, and generate the second request and the third request based on the first request or generate the fourth request and the fifth request based on the first request.