Prosecution Insights
Last updated: April 19, 2026
Application No. 17/863,614

VIRTUALIZATION DEVICE INCLUDING STORAGE DEVICE AND COMPUTATIONAL DEVICE, AND METHOD OF OPERATING THE SAME

Non-Final OA §103
Filed
Jul 13, 2022
Examiner
TRAINOR, DANIEL BRENNAN
Art Unit
2198
Tech Center
2100 — Computer Architecture & Software
Assignee
Mangoboost Inc.
OA Round
3 (Non-Final)
100%
Grant Probability
Favorable
3-4
OA Rounds
3y 3m
To Grant
99%
With Interview

Examiner Intelligence

Grants 100% — above average
100%
Career Allow Rate
3 granted / 3 resolved
+45.0% vs TC avg
Strong +100% interview lift
Without
With
+100.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
29 currently pending
Career history
32
Total Applications
across all art units

Statute-Specific Performance

§101
22.6%
-17.4% vs TC avg
§103
48.0%
+8.0% vs TC avg
§102
10.9%
-29.1% vs TC avg
§112
17.7%
-22.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 3 resolved cases

Office Action

§103
Detailed Action 1. This office action is in response to communication filed February 26, 2026. Claims 1-5, 7-10, and 12-20 are currently pending and claims 1, 13, and 19 are the independent claims. Notice of Pre-AIA or AIA Status 2. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Amendments 3. This Final Office Action is in response to the applicant’s remarks and arguments filed on February 26, 2026. Claims 1, 13, and 19 were amended. No claims have been cancelled. No claims are new. Claims 1-5, 7-10, and 12-20 remain pending in the application. Claims 2-5, 7-10, 11-12, 14-18, and 20 filed on September 18, 2025 are being considered on the merits along with amended claims 1, 13, and 19. Response to Arguments 4. Applicant’s arguments with respect to amended claims 1, 13, and 19 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. In the Examiner Interview section, the Attorney remarks on page 1 that the Examiner “determined that the rejection was likely overcome based on the prior art showing the computational storage operation parameter within a device, but not within a request. The Examiner acknowledged that while Pinto teaches computational storage operation parameters within a device, the cited prior art does not teach or suggest examining a reserved field within each individual request to determine whether that specific request requires computational storage processing.” The Examiner respectfully agrees with the Attorney’s statement and as such, presents the updated 103 rejections without relying on the Pinto reference. In the Claim Rejections – 35 U.S.C. 103 section, the Attorney remarks on pages 1-3 that amended claim 1 overcomes the previous 103 rejection of Venkataraman in view of Pinto, and as such should lead to all claims being allowable. The Examiner respectfully disagrees with the Attorney. Although the Examiner has agreed that the amendment overcomes the prior rejection of Venkataraman in view of Pinto, the Examiner does not agree that the claims are allowable. The Examiner has provided detailed rejections below in section 5 for independent claims 1, 13, and 19. As such, the Examiner maintains the rejections for claims 1-5, 7-10, and 12-20 regardless of the amendments to the independent claims. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. 5. Claims 1-5, 7-10, and 12-19 are rejected under 35 U.S.C. 103 as being unpatentable over Venkataraman et al. (U.S. Pub. No. 2022/0391148 A1) – hereinafter “Venkataraman”, in view of Helmick (U.S. Pub. No. 2022/0253227). Regarding independent claim 1, Venkataraman discloses A method of operating a virtualization device communicating with a host device executing a virtual machine and including a computational storage virtualization (CSV) device, a storage device, and a computational device, ([0035] “The system 100 includes a virtual computational storage emulation module 102, a compute element 106, a storage element 108, and a computational storage client 104. The virtual computational storage emulation module 102 may correspond to software (e.g., a hypervisor) executable by a processing device (not shown) of a computing device (e.g., a server device) to provide access to a virtual computational storage device 110. The virtual computational storage device 110 may be a logical construct rather than a physical computational storage device. The virtual computational storage emulation module 102 provides the virtual computational storage device 110 by emulating (e.g., reproducing) functions of a physical computational storage device. Functions of the virtual computational storage device 110 are implemented by the compute element 106 and the storage element 108.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the system contains a host device (virtual computational storage emulation module 102, hardware command 120, and hardware result 122), VM (computational storage client 104), CSV device (virtual computational storage emulation module 102, virtual computational storage device 110, hardware command 120, and hardware result 122), storage device (storage element 108), and computational device (compute element 106). wherein each of the CSV device and the computational device is implemented with a field programmable gate array (FPGA), the method comprising: ([0034] “As used herein, a computational storage device refers to a storage device that supports computational tasks. For example, a computational storage device may include a storage element (e.g., non-volatile memory, such as flash memory, etc.) and a compute element (e.g., a central processor unit (CPU), graphics processor unit (GPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC) (such as a tensor processing unit), processor core, etc.) and be configured to support storage of data at the compute element and execution of computational tasks at the compute element. Accordingly, a computational storage device may provide storage capabilities to a computational storage client (e.g., a computing device) and may support offloading of computational tasks from the computational storage client to the computational storage device.” and [0036] “The compute element 106 may correspond to a CPU, a GPU, an FPGA, an ASIC, a processor core, another type of processor element, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the computational storage device and compute element are implemented with FPGAs. receiving, by 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; ([0042] “In the illustrated example, the computational storage client 104 sends a storage request 116 to the virtual computational storage emulation module 102. The storage request 116 may correspond to a read request or a write request. In some implementations, the storage request 116 corresponds to an NVMe request. The storage request 116 is directed to the virtual computational storage device 110. The virtual computational storage emulation module 102 maintains a mapping between virtual computational storage devices and storage elements. Based on the mapping, the virtual computational storage emulation module 102 may forward the storage request 116 to the storage element 108.” and [0043] “In some implementations, the virtual computational storage device 110 may correspond to more than one storage element. In such cases, the virtual computational storage emulation module 102 may select a storage element to forward the storage request 116 to based on an address (e.g., a logical block address (LBA)) targeted by the storage request 116.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the read request is sent to the virtual computation storage emulation module which is received by the virtual computational storage device and forwarded to the storage element based on addressing. acquiring, by the CSV device, a third address of a host memory of the host device and a fourth address of a buffer memory of the computational device based on the first request; ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. providing, by the CSV device, the storage device with a second request indicating the second address, the fourth address, and a redirection; ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element retrieves the data from the storage element for the compute request. providing, by the storage device, the computational device with raw data in response to the second request; ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element retrieves the data from the storage element to be processed. providing, by the CSV device, the computational device with a third request indicating the third address, the fourth address, and a processing operation; ([0055] “The virtual computational storage emulation module 102 may route the first compute request 224 to the first compute element 218 to the first compute element 218 based on the first address 226. For example, the virtual computational storage emulation module 102 may manage a mapping of virtual computational storage device addresses to compute elements.” and [0041] “The compute element 106 may return a result (not shown) of the compute request 114 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the computational storage emulation module routes the compute request to the compute element based on the address. It later returns the processing operation result through the virtual computational storage emulation module. generating, by the computational device, processed data based on the third request and the raw data; and ([0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element processes the request to get a hardware result. providing, by the computational device, the host device with the processed data, ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the result of the request is sent from the compute element to the computational storage client. wherein the acquiring the third address and the fourth address includes: ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. acquiring, by the CSV device, the third address and the fourth address … ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on the computational storage operation request. Venkataraman does not explicitly disclose: determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and … when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation. However, Helmick discloses: determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and ([0033] “In some examples, the storage device 103 corresponds to a computational storage device. Such a computational storage device includes a processor unit (e.g., a central processor unit, a field programmable gate array (FPGA), an application-specific integrated circuit, or a combination thereof configured to perform operations on data stored in the computer readable storage of the storage device 103.” and [0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers which clearly indicate if the request requires computational storage device resources. … when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation. ([0033] “In some examples, the storage device 103 corresponds to a computational storage device. Such a computational storage device includes a processor unit (e.g., a central processor unit, a field programmable gate array (FPGA), an application-specific integrated circuit, or a combination thereof configured to perform operations on data stored in the computer readable storage of the storage device 103.” and [0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers which clearly indicate if the request requires computational storage device resources. Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation as seen in Helmick’s invention into Venkataraman’s invention because these modifications allow an obvious to try solution of acquiring addresses if the request is determined to be for the computational storage operation because these addresses are only necessary to acquire when handling computational storage operations. Regarding claim 2, Venkataraman discloses the method of claim 1, wherein the virtualization device further includes: peripheral component interconnect express (PCIe) circuit connected to the host device, the CSV device, the storage device, and the computational device, ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0037] “Communications between the computational storage client 104 and the virtual computational storage emulation module 102 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the PCIe circuit connects the virtual computational storage emulation module, compute element, storage element, and computational storage client. wherein the providing, by the storage device, of the computational device with the raw data based on the second request includes: ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element retrieves the data from the storage element to be processed. directly providing, by the storage device, the computational device with the raw data based on the fourth address of the second request through the PCIe circuit, and ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element retrieves the data from the storage element through the PCIe circuit to be processed. wherein the providing, by the computational device, of the host device with the processed data includes: ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the result of the request is sent from the compute element to the computational storage client. directly providing, by the computational device, the host device with the processed data based on the third address of the third request through the PCIe circuit. ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the result of the request is sent from the compute element to the computational storage client through the PCIe circuit. Regarding claim 3, Venkataraman discloses the method of claim 1, but does not explicitly disclose: wherein the reserved field corresponds to a command format of a non-volatile memory express (NVMe) standard. However, Helmick discloses: wherein the reserved field corresponds to a command format of a non-volatile memory express (NVMe) standard. ([0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers defined by the NVMe standard which clearly indicate if the request requires computational storage device resources. Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the reserved field corresponds to a command format of a non-volatile memory express (NVMe) standard as seen in Helmick’s invention into Venkataraman’s invention because these modifications allow the simple substitution of any request format for NVMe requests to be easily differentiated and routed to a particular grouping of components to be handled more efficiently. Regarding claim 4, Venkataraman discloses the method of claim 3, but does not explicitly disclose: wherein the reserved field indicates at least one of: an operator chain identifier indicating a type of the processing operation of the computational device; a source address indicating a location of a source requesting the processed data; a destination address indicating a location of a destination receiving the processed data; a source size indicating a size of data to be transmitted depending on the source address; a destination size indicating a size of data to be transmitted depending on the destination address; a request identifier for managing dependency between different requests indicating operations having the same types as each other; a physical device identifier indicating an index of the storage device and an index of the computational device; a type indicating whether access to the storage device is required; a direct parameter indicating a location in the host device at which information used for the processing operation of the computational device is stored; a file parameter indicating a location in the storage device at which copied information used for the processing operation of the computational device is stored; a direct parameter pointer used to transmit the direct parameter; and a file parameter pointer used to transmit the file parameter. However, Helmick discloses: wherein the reserved field indicates at least one of: an operator chain identifier indicating a type of the processing operation of the computational device; a source address indicating a location of a source requesting the processed data; a destination address indicating a location of a destination receiving the processed data; a source size indicating a size of data to be transmitted depending on the source address; a destination size indicating a size of data to be transmitted depending on the destination address; a request identifier for managing dependency between different requests indicating operations having the same types as each other; a physical device identifier indicating an index of the storage device and an index of the computational device; ([0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers which clearly indicate if the request requires computational storage device resources. a type indicating whether access to the storage device is required; a direct parameter indicating a location in the host device at which information used for the processing operation of the computational device is stored; a file parameter indicating a location in the storage device at which copied information used for the processing operation of the computational device is stored; a direct parameter pointer used to transmit the direct parameter; and a file parameter pointer used to transmit the file parameter. Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the reserved field indicates at least one of: an operator chain identifier indicating a type of the processing operation of the computational device; a source address indicating a location of a source requesting the processed data; a destination address indicating a location of a destination receiving the processed data; a source size indicating a size of data to be transmitted depending on the source address; a destination size indicating a size of data to be transmitted depending on the destination address; a request identifier for managing dependency between different requests indicating operations having the same types as each other; a physical device identifier indicating an index of the storage device and an index of the computational device; a type indicating whether access to the storage device is required; a direct parameter indicating a location in the host device at which information used for the processing operation of the computational device is stored; a file parameter indicating a location in the storage device at which copied information used for the processing operation of the computational device is stored; a direct parameter pointer used to transmit the direct parameter; and a file parameter pointer used to transmit the file parameter as seen in Helmick’s invention into Venkataraman’s invention because these modifications allow the known technique to yield predictable results of having compute/storage requests contain more information making it a higher chance of successfully completing the task that the host device is attempting to request. Regarding claim 5, Venkataraman discloses the method of claim 1, wherein the raw data in the storage device is compressed data or encrypted data, and wherein the processed data by the computational device is decompressed data or decrypted data. ([0061] “For example, the virtual computational storage emulation module 102 may provide a first virtual computational storage device that provides compression/decompression and a second virtual computational storage device that provides encryption/decryption. The virtual computational storage emulation module 102 may perform compression/decompression of data for requests associated with the first virtual computational storage device as part of emulating the first virtual computational storage device. Further, the virtual computational storage emulation module 102 may perform encryption/decryption of data for requests associated with the second virtual computational storage device as part of emulating the second virtual computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage device can provide both compression/decompression and encryption/decryption of data. Regarding claim 7, Venkataraman discloses the method of claim 1, wherein the providing, by the storage device, of the computational device with the raw data based on the second request includes: ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element retrieves the data from the storage element to be processed. after providing the raw data, providing, by the storage device, the CSV device with a first completion, ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the storage element may provide the data through the virtual computational storage emulation module, thus informing the CSV device of the completion of providing data to the compute element. wherein the providing, by the CSV device, of the computational device with the third request indicating the third address, the fourth address, and the processing operation includes: ([0055] “The virtual computational storage emulation module 102 may route the first compute request 224 to the first compute element 218 to the first compute element 218 based on the first address 226. For example, the virtual computational storage emulation module 102 may manage a mapping of virtual computational storage device addresses to compute elements.” and [0041] “The compute element 106 may return a result (not shown) of the compute request 114 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the computational storage emulation module routes the compute request to the compute element based on the address. It later returns the processing operation result through the virtual computational storage emulation module. providing, by the CSV device, the computational device with the third request in response to the first completion, and ([0041] “Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114.” and [0055] “The virtual computational storage emulation module 102 may route the first compute request 224 to the first compute element 218 to the first compute element 218 based on the first address 226. For example, the virtual computational storage emulation module 102 may manage a mapping of virtual computational storage device addresses to compute elements.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the computational storage emulation module routes the compute request to the compute element based on the address following the compute element receiving the data from the storage element which the computational storage emulation module is informed of. wherein the providing, by the computational device, of the host device with the processed data includes: ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the result of the request is sent from the compute element to the computational storage client. after providing the processed data, providing, by the computational device, the CSV device with a done notification; and ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the result of the request is sent from the compute element through the virtual computational storage emulation module, thus the CSV device knows the request is completed. providing, by the CSV device, the host device with a second completion in response to the done notification. ([0044] “In examples in which results are returned through the virtual computational storage emulation module 102, the virtual computational storage emulation module 102 may translate the results into a protocol used by the computational storage client 104. As indicated above, the virtual computational storage emulation module 102 may support emulation of a physical computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module returns the results of the request, thus providing a notification of the request being completed. Regarding claim 8, Venkataraman discloses the method of claim 1, wherein the acquiring, by the CSV device, of the third address of the real machine corresponding to the virtual machine and the fourth address of the computational device based on the first request includes: ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. acquiring, by the CSV device, the third address based on the first address with reference to an address translation table in the CSV device. ([0074] “In some examples, the method 500 further includes initializing a virtual computational storage device. For example, the virtual computational storage emulation module 102 or the virtual computational storage emulation module 410 may generate one or more mapping tables of virtual computational storage devices to physical components. The mapping tables may map addresses of virtual computational storage devices to addresses of physical storage devices. The mapping tables may further map virtual computational storage devices to compute elements. Physical components may be assigned to a virtual computational storage device and the mapping tables may be setup based on commands from a computational storage client, based on a load balancing algorithm, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the mapping tables map the real machine addresses to the virtual machine addresses. Regarding claim 9, Venkataraman discloses the method of claim 1, wherein the virtualization device further includes: an input/output (I/O) memory management unit configured to communicate with the host device and the CSV device, and (Fig. 4B and [0063] “The hypervisor 408 is configured to provide a first virtual machine 412 and a second virtual machine 416. In some implementations, the first virtual machine 412 or the second virtual machine 416 correspond to the computational storage client 104. The virtual computational storage emulation module 410 is configured to present a first virtual computational storage device 414 to the first virtual machine 412 and a second virtual computational storage device 418 to the second virtual machine 416. The first virtual computational storage device 414 may correspond to the virtual computational storage device 110, the first virtual computational storage device 302, or the second virtual computational storage device 304. The second virtual computational storage device 418 may correspond to the virtual computational storage device 110, the first virtual computational storage device 302, or the second virtual computational storage device 304.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual machines and computational storage devices communicate with the virtual computational storage emulation module which performs request translation. wherein the acquiring, by the CSV device, of the third address of the real machine corresponding to the virtual machine and the fourth address of the computational device based on the first request includes: ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. translating, by the I/O memory management unit, the first address into the third address based on the first request; and ([0047] “The virtual computational storage emulation module 102 translates the CSD command 118 into a hardware command 120 that conforms to a protocol utilized by the compute element 106 and sends the hardware command 120 to the compute element 106. Part of the translation may include translating an address identified in the CSD command 118 to an address associated with the storage element 108. For example, an LBA A of the virtual computational storage device 110 may be mapped to an LBA B at the storage element 108.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module translates the command including the addressing of the virtual to physical components. receiving, by the CSV device, the third address from the I/O memory management unit. ([0047] “The virtual computational storage emulation module 102 translates the CSD command 118 into a hardware command 120 that conforms to a protocol utilized by the compute element 106 and sends the hardware command 120 to the compute element 106. Part of the translation may include translating an address identified in the CSD command 118 to an address associated with the storage element 108. For example, an LBA A of the virtual computational storage device 110 may be mapped to an LBA B at the storage element 108.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module translates the command including the addressing of the virtual to physical components and sends it to the CSV device. Regarding claim 10, Venkataraman discloses the method of claim 1, wherein the virtualization device identifies the virtual machine, which is a target virtual machine, from among a plurality of virtual machines, identifies the storage device, which is a target storage device, from among a plurality of storage devices, and identifies the computational device, which is a target computational device, from among a plurality of computational devices. ([0063] “The hypervisor 408 is configured to provide a first virtual machine 412 and a second virtual machine 416. In some implementations, the first virtual machine 412 or the second virtual machine 416 correspond to the computational storage client 104. The virtual computational storage emulation module 410 is configured to present a first virtual computational storage device 414 to the first virtual machine 412 and a second virtual computational storage device 418 to the second virtual machine 416. The first virtual computational storage device 414 may correspond to the virtual computational storage device 110, the first virtual computational storage device 302, or the second virtual computational storage device 304. The second virtual computational storage device 418 may correspond to the virtual computational storage device 110, the first virtual computational storage device 302, or the second virtual computational storage device 304.” and [0057] “In FIG. 3A, the virtual computational storage emulation module 102 provides a first virtual computational storage device 302 and a second virtual computational storage device 304 in place of the virtual computational storage device 110. The first virtual computational storage device 302 is supported by a first compute element 306 and a first storage element 308. The first storage element 308 stores first data 310 associated with the first virtual computational storage device 302. The second virtual computational storage device 304 is supported by a second compute element 312 and a second storage element 314. The second storage element 314 stores second data 316 associated with the second virtual computational storage device 304.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, there are a plurality of VMs, storage elements, and computational elements, so the request is routed to a target VM/storage element/computational element among the grouping. Regarding claim 12, Venkataraman discloses the method of claim 1, wherein the computational device is implemented with an inner-computational device of the CSV device. (Fig. 4C, Computing Device 402 and Compute Element 450 and [0067] “Referring to FIG. 4C, an alternative implementation of the system 400 is shown in which the computing device 402 communicates (e.g., via PCIe or some other connection) with a compute element 450 and a storage element 452. The compute element 450 may include a processing device (e.g., an FPGA), and may correspond to the compute element 106, the first compute element 218, the second compute element 220, the first compute element 306, or the second compute element 312 described above.” and [0068] “The virtual computational storage emulation module 410 is configured to provide functionality of the virtual computational storage devices 414, 418 using the external compute element 450 and the storage element 452.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element is an inner-computational device within the computing device that Is used to provide functionality for the virtual computational storage devices. Regarding independent claim 13, Venkataraman discloses A method of operating a virtualization device communicating with a host device executing a virtual machine and including a computational storage virtualization (CSV) device, a storage device, and a computational device, ([0035] “The system 100 includes a virtual computational storage emulation module 102, a compute element 106, a storage element 108, and a computational storage client 104. The virtual computational storage emulation module 102 may correspond to software (e.g., a hypervisor) executable by a processing device (not shown) of a computing device (e.g., a server device) to provide access to a virtual computational storage device 110. The virtual computational storage device 110 may be a logical construct rather than a physical computational storage device. The virtual computational storage emulation module 102 provides the virtual computational storage device 110 by emulating (e.g., reproducing) functions of a physical computational storage device. Functions of the virtual computational storage device 110 are implemented by the compute element 106 and the storage element 108.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the system contains a host device (virtual computational storage emulation module 102, hardware command 120, and hardware result 122), VM (computational storage client 104), CSV device (virtual computational storage emulation module 102, virtual computational storage device 110, hardware command 120, and hardware result 122), storage device (storage element 108), and computational device (compute element 106). wherein each of the CSV device and the computational device is implemented with a field programmable gate array (FPGA), the method comprising: ([0034] “As used herein, a computational storage device refers to a storage device that supports computational tasks. For example, a computational storage device may include a storage element (e.g., non-volatile memory, such as flash memory, etc.) and a compute element (e.g., a central processor unit (CPU), graphics processor unit (GPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC) (such as a tensor processing unit), processor core, etc.) and be configured to support storage of data at the compute element and execution of computational tasks at the compute element. Accordingly, a computational storage device may provide storage capabilities to a computational storage client (e.g., a computing device) and may support offloading of computational tasks from the computational storage client to the computational storage device.” and [0036] “The compute element 106 may correspond to a CPU, a GPU, an FPGA, an ASIC, a processor core, another type of processor element, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the computational storage device and compute element are implemented with FPGAs. receiving, by the CSV device, a first request indicating a first address of the virtual machine, a second address of the storage device, and a write operation from the host device; ([0042] “In the illustrated example, the computational storage client 104 sends a storage request 116 to the virtual computational storage emulation module 102. The storage request 116 may correspond to a read request or a write request. In some implementations, the storage request 116 corresponds to an NVMe request. The storage request 116 is directed to the virtual computational storage device 110. The virtual computational storage emulation module 102 maintains a mapping between virtual computational storage devices and storage elements. Based on the mapping, the virtual computational storage emulation module 102 may forward the storage request 116 to the storage element 108.” and [0043] “In some implementations, the virtual computational storage device 110 may correspond to more than one storage element. In such cases, the virtual computational storage emulation module 102 may select a storage element to forward the storage request 116 to based on an address (e.g., a logical block address (LBA)) targeted by the storage request 116.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the write request is sent to the virtual computation storage emulation module which is received by the virtual computational storage device and forwarded to the storage element based on addressing. acquiring, by the CSV device, a third address of a host memory of the host device and a fourth address of a buffer memory of the computational device based on the first request; ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. providing, by the CSV device, the computational device with a second request indicating the third address, the fourth address, and a processing operation; ([0040] “In some implementations, the virtual computational storage device 110 may correspond to more than one compute element. In such cases, the virtual computational storage emulation module 102 may select which compute element to forward the compute request 114 to based on a load balancing algorithm. In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114. For example, the virtual computational storage emulation module 102 may forward the compute request 114 to a particular computational storage device in response to determining that the compute request 114 targets data stored on the particular computational storage device.” and [0041] “The compute element 106 may return a result (not shown) of the compute request 114 to the computational storage client 104 directly or through the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element receives a compute request to process data from the virtual computational storage emulation module. receiving, by the computational device, raw data in response to the second request from the host device; ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114. For example, the virtual computational storage emulation module 102 may forward the compute request 114 to a particular computational storage device in response to determining that the compute request 114 targets data stored on the particular computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute request is sent to a particular computational storage device based on the data it is targeting. generating, by the computational device, processed data based on the second request and the raw data; ([0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element processes the request to get a hardware result. providing, by the CSV device, the storage device with a third request indicating the second address, the fourth address, and a store operation; ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the store operation is equivalent to the storage request through the virtual computational storage emulation module. receiving, by the storage device, the processed data based on the third request from the computational device; and ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the storage element receives the result of the compute element processing from the computational device based on the request from the computational storage emulation module. storing, by the storage device, the processed data, ([0045] “In some examples, the storage request 116 corresponds to a request to write the data 112 to the storage element 108. The virtual computational storage emulation module 102 may translate the storage request 116 and forward it to the storage element 108 as described above.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the processed data is written to the storage element. wherein the acquiring the third address and the fourth address includes: ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. acquiring, by the CSV device, the third address and the fourth address … ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on the computational storage operation request. Venkataraman does not explicitly disclose: determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and … when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation. However, Helmick discloses: determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and ([0033] “In some examples, the storage device 103 corresponds to a computational storage device. Such a computational storage device includes a processor unit (e.g., a central processor unit, a field programmable gate array (FPGA), an application-specific integrated circuit, or a combination thereof configured to perform operations on data stored in the computer readable storage of the storage device 103.” and [0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers which clearly indicate if the request requires computational storage device resources. … when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation. ([0033] “In some examples, the storage device 103 corresponds to a computational storage device. Such a computational storage device includes a processor unit (e.g., a central processor unit, a field programmable gate array (FPGA), an application-specific integrated circuit, or a combination thereof configured to perform operations on data stored in the computer readable storage of the storage device 103.” and [0043] “In some implementations, the resource unit 104 is created based on a request from one of the first tenant 105 or the second tenant 106. For example, FIG. 1B illustrates the first tenant 105 sending a grouping request 130 to the computing device 102 over the first protocol 109. For example, the grouping request may indicate one or more resources of the storage device 103 to be grouped into the resource unit 104. These resources may include one or more NS, one or more NS portions, one or more drive resources, one or more resources defined by the NVMe standard, or a combination thereof. The grouping request may include identifiers of these resources, such as one or more NS identifiers, one or more LBA ranges, one or more computational program slot identifiers, one or more computational capability identifiers, one or more endurance group identifiers, one or more NVM set identifiers, one or more media unit identifiers, one or more submission queue identifiers, one or more domain identifiers, one or more ADI identifiers, one or more PASID identifiers, one or more proportion of SSD performance capability identifiers, one or more identifiers associated with other resources, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the grouping request contains computational program slot identifiers and computational capability identifiers which clearly indicate if the request requires computational storage device resources. Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add determining, by the CSV device, whether the first request indicates a computational storage operation by examining whether a reserved field of the first request is null or contains computational storage information; and when the reserved field is determined to contain the computational storage information such that the first request indicates the computational storage operation as seen in Helmick’s invention into Venkataraman’s invention because these modifications allow an obvious to try solution of acquiring addresses if the request is determined to be for the computational storage operation because these addresses are only necessary to acquire when handling computational storage operations. Regarding claim 14, Venkataraman discloses the method of claim 13, wherein the virtualization device further includes: a PCIe circuit connected to the host device, the CSV device, the storage device, and the computational device, ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0037] “Communications between the computational storage client 104 and the virtual computational storage emulation module 102 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the PCIe circuit connects the virtual computational storage emulation module, compute element, storage element, and computational storage client. wherein the receiving, by the computational device, of the raw data based on the second request from the host device includes: ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114. For example, the virtual computational storage emulation module 102 may forward the compute request 114 to a particular computational storage device in response to determining that the compute request 114 targets data stored on the particular computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute request is sent to a particular computational storage device based on the data it is targeting. directly receiving, by the computational device, the raw data based on the third address of the second request from the host device through the PCIe circuit, and ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114. For example, the virtual computational storage emulation module 102 may forward the compute request 114 to a particular computational storage device in response to determining that the compute request 114 targets data stored on the particular computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute request is sent to a particular computational storage device through the PCIe circuit based on the data it is targeting. wherein the receiving, by the storage device, of the processed data based on the third request from the computational device includes: ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the storage element receives the result of the compute element processing from the computational device based on the request from the computational storage emulation module. directly receiving, by the storage device, the processed data based on the fourth address of the third request from the computational device through the PCIe circuit. ([0036] “Further, the virtual computational storage emulation module 102 may provide more than one virtual computational storage device. Communications between the virtual computational storage emulation module 102 and the compute element 106 and the storage element 108 may be carried over a peripheral component interconnect (PCI) link, a PCI express (PCIe) link, a serial advanced technology attachment (SATA) link, a serial attached small computer system interface (SATA) link, a fibre-channel, an Ethernet link, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 link, another type of link, or a combination thereof.” and [0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the storage element receives the result of the compute element processing through the PCIe circuit from the computational device based on the request from the computational storage emulation module. Regarding claim 15, it is a method claim having the same limitations as cited in method claim 3. Thus, claim 15 is also rejected under the same rationale as addressed in the rejection of claim 3 above. Regarding claim 16, it is a method claim having the same limitations as cited in method claim 4. Thus, claim 16 is also rejected under the same rationale as addressed in the rejection of claim 4 above. Regarding claim 17, Venkataraman discloses the method of claim 13, wherein the raw data of the host device is uncompressed data or unencrypted data, and wherein the processed data by the computational device is compressed data or encrypted data. ([0061] “For example, the virtual computational storage emulation module 102 may provide a first virtual computational storage device that provides compression/decompression and a second virtual computational storage device that provides encryption/decryption. The virtual computational storage emulation module 102 may perform compression/decompression of data for requests associated with the first virtual computational storage device as part of emulating the first virtual computational storage device. Further, the virtual computational storage emulation module 102 may perform encryption/decryption of data for requests associated with the second virtual computational storage device as part of emulating the second virtual computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage device can provide both compression/decompression and encryption/decryption of data. Regarding claim 18, Venkataraman discloses the method of claim 13, wherein the generating, by the computational device, of the processed data based on the second request and the raw data includes: ([0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element processes the request to get a hardware result. after generating the processed data, providing, by the computational device, the CSV device with a done notification, ([0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the compute element processes the request to get a hardware result and sends it to the virtual computational storage device. wherein the providing, by the CSV device, of the storage device with the third request indicating the second address, the fourth address, and the store operation includes: ([0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the store operation is equivalent to the storage request through the virtual computational storage emulation module. providing, by the CSV device, the storage device with the third request in response to the done notification, and ([0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102.” and [0045] “In some examples, the storage request 116 corresponds to a request to write the data 112 to the storage element 108. The virtual computational storage emulation module 102 may translate the storage request 116 and forward it to the storage element 108 as described above.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module forwards the rest to the storage element following the compute result being returned to the virtual computational storage emulation module. wherein the storing, by the storage device, of the processed data includes: ([0045] “In some examples, the storage request 116 corresponds to a request to write the data 112 to the storage element 108. The virtual computational storage emulation module 102 may translate the storage request 116 and forward it to the storage element 108 as described above.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the processed data is written to the storage element. after storing the processed data, providing, by the storage device, the CSV device with a first completion; and ([0048] “While FIG. 1C depicts an example in which the CSD command 118 corresponds to a compute command, it should be noted that the virtual computational storage emulation module 102 may provide similar translation of storage commands. For example the CSD command 118 may correspond to a storage request. Accordingly, the virtual computational storage emulation module 102 may translate the CSD command 118 into the hardware command 120 and send the hardware command 120 to the storage element 108. As described above, the CSD command 118 and the hardware command 120 may be of different protocols and/or utilize different addressing schemes. In this case, the storage element 108 may return the hardware result 122 (e.g., including the data 112) to the virtual computational storage emulation module 102 and the virtual computational storage emulation module 102 may translate the hardware result 122 into the CSD result 124 and send the CSD result 124 to the computational storage client 104. Thus, the virtual computational storage emulation module 102 may provide translation of both compute and storage commands addressed to a virtual computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module receives the result of the storage request from the storage element, thus receiving a completion of the request. providing, by the CSV device, the host device with a second completion in response to the first completion. ([0048] “While FIG. 1C depicts an example in which the CSD command 118 corresponds to a compute command, it should be noted that the virtual computational storage emulation module 102 may provide similar translation of storage commands. For example the CSD command 118 may correspond to a storage request. Accordingly, the virtual computational storage emulation module 102 may translate the CSD command 118 into the hardware command 120 and send the hardware command 120 to the storage element 108. As described above, the CSD command 118 and the hardware command 120 may be of different protocols and/or utilize different addressing schemes. In this case, the storage element 108 may return the hardware result 122 (e.g., including the data 112) to the virtual computational storage emulation module 102 and the virtual computational storage emulation module 102 may translate the hardware result 122 into the CSD result 124 and send the CSD result 124 to the computational storage client 104. Thus, the virtual computational storage emulation module 102 may provide translation of both compute and storage commands addressed to a virtual computational storage device.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module receives the result of the storage request and translates and transmits it to the host device. Regarding independent claim 19, it is a virtualization device claim having the same limitations as cited in method claims 1, 2, and 13. Thus, claim 19 is also rejected under the same rationale as addressed in the rejections of claims 1, 2, and 13 above. 6. Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over Venkataraman et al. (U.S. Pub. No. 2022/0391148 A1) – hereinafter “Venkataraman”, in view of Helmick (U.S. Pub. No. 2022/0253227), further in view of Kaplan et al. (U.S. Pub. No. 2016/0246635 A1) – hereinafter “Kaplan”. Regarding claim 20, Venkataraman discloses the virtualization device of claim 19, further comprising: acquire the third address and the fourth address based on the first request; and ([0040] “In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114.” and [0047] “The virtual computational storage emulation module 102 may translate between an addressing scheme presented by the virtual computational storage device 110 and an addressing scheme supported by the storage element 108. In response to the hardware command 120, the compute element 106 generates a hardware result 122 and sends the hardware result 122 to the virtual computational storage emulation module 102. The virtual computational storage emulation module 102 translates the hardware result 122 into a CSD result 124 that conforms to the CSD protocol utilized by the computational storage client 104 and transmits the CSD result 124 to the computational storage client 104.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the virtual computational storage emulation module address and compute element address are known by the virtual computational storage emulation module based on requests. 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. ([0041] “The compute element 106 may return a result (not shown) of the compute request 114 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. Similarly, the compute element 106 may communicate with the storage element 108 directly or through the virtual computational storage emulation module 102. For example, the compute request 114 may target the data 112. The compute element 106 may retrieve the data 112 directly from the storage element 108 or the virtual computational storage emulation module 102 may retrieve the data 112 from the storage element 108 and forward the data 112 to the compute element 106 with the compute request 114. In embodiments in which the compute element 106 returns a result through the virtual computational storage emulation module 102, the virtual computational storage emulation module may translate the result into a protocol supported by the computational storage client 104 (e.g., a protocol configured to support communications between a computational storage client and a computational storage device). As indicated above, the virtual computational storage emulation module 102 may support emulation of a physical computational storage device. Translation of compute request results may comprise one aspect of this emulation.” and [0055] “The virtual computational storage emulation module 102 may route the first compute request 224 to the first compute element 218 to the first compute element 218 based on the first address 226. For example, the virtual computational storage emulation module 102 may manage a mapping of virtual computational storage device addresses to compute elements.” and [0040] “In some implementations, the virtual computational storage device 110 may correspond to more than one compute element. In such cases, the virtual computational storage emulation module 102 may select which compute element to forward the compute request 114 to based on a load balancing algorithm. In addition or the alternative, the virtual computational storage emulation module 102 may select a compute element to forward the compute request 114 to based on an address of data targeted by the compute request 114. For example, the virtual computational storage emulation module 102 may forward the compute request 114 to a particular computational storage device in response to determining that the compute request 114 targets data stored on the particular computational storage device.” and [0044] “The compute element 106 may return a result (not shown) of the storage request 116 to the computational storage client 104 directly or through the virtual computational storage emulation module 102. For example, the storage element 108 may send the data 112 to the computational storage client 104 in response to a read request. As another example, the storage element 108 may send a read request to the computational storage client 104 in response to a write request (alternatively the virtual computational storage emulation module 102 may send the read request to the computational storage client 104).”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the redirection of data and compute request are generated and handled based on a read request and the processing of data and store request are generated and handled based on a write request. Venkataraman does not explicitly disclose: a single root input/output virtualization (SR-IOV) adapter including a virtual function (VF) providing an interface with the virtual machine; and a device orchestrator configured to: identify the virtual machine through the VF; allocate a resource of the storage device and a resource of the computational device for the virtual machine; However, Kaplan discloses: a single root input/output virtualization (SR-IOV) adapter including a virtual function (VF) providing an interface with the virtual machine; and (Fig. 1 VM 111-A, Device 116-A, and Virtual Function 117 and [0030] “Devices 116 may or may not support virtual function capabilities for use with virtual interfaces 112 of VMs 111. In FIG. 1, device 116-A depicts a device supporting virtual function capability (e.g., SR-IOV capable). Device 116-A comprises virtual function 117 and physical function 118-A. Virtual function 117 can comprise resources necessary for data movement, but have a minimized set of configuration resources (e.g., SR-IOV PCIe virtual functions). It should be noted that although for simplicity only one virtual function 117 is depicted, in other implementations, multiple virtual functions 117 may be present.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the SR-IOV capable device 116-A has virtual functions include VF 117 that is associated with VM 111-A. a device orchestrator configured to: (Fig. 1, host controller 120 and virtualization manager 121) identify the virtual machine through the VF; (Fig. 1 VM 111-A and Virtual Function 117 and [0033] “In addition, host controller may monitor the status of VM 111 as well as the progress of commands and processes being executed by VM 111 and/or on VM 111. In some implementations, host controller 120 may run on a separate physical machine from the host server 110. Alternatively, host controller 120 may run on the host server 110 itself. The host controller 120 may include a virtualization manager 121 to determine availability of virtual function 117 and configure the number of virtual functions 117 associated with physical function 118-A of device 116-A as described in detail below with respect to FIGS. 3-4.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the VFs are tied to the VMs, so VF 117 is associated with VM 111-A. allocate a resource of the storage device and a resource of the computational device for the virtual machine; ([0033] “The VM 111 and virtual disks can be managed by a host controller 120 (e.g., after the host 110 has been associated with the host controller 120). Host controller 120 may manage the allocation of resources from host server 110 to VM 111.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the host controller can allocate resources from the host server to the VM. Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add a single root input/output virtualization (SR-IOV) adapter including a virtual function (VF) providing an interface with the virtual machine, a device orchestrator configured to: identify the virtual machine through the VF, and allocate a resource of the storage device and a resource of the computational device for the virtual machine as seen in Kaplan’s invention into Venkataraman’s invention because these modifications allow a substitution of a multitude of virtualized computational storage devices on one system for other similar devices to obtain predictable results of the device orchestrator allocating physical resources to a plurality of CSV devices. Conclusion 7. Examiner has cited particular columns/paragraphs/sections and line numbers in the references applied and not relied upon to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner. When responding to the Office action, applicant is advised to clearly point out the patentable novelty the claims present in view of the state of the art disclosed by the reference(s) cited or the objections made. A showing of how the amendments avoid such references or objections must also be present. See 37 C.F.R. 1.111(c). When responding to this Office action, applicant is advised to provide the line and page numbers in the application and/or reference(s) cited to assist in locating the appropriate paragraphs. Any inquiry concerning this communication or earlier communications from the examiner should be directed to DANIEL B TRAINOR whose telephone number is (571)272-3710. The examiner can normally be reached Monday-Friday 9AM-5PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Pierre Vital can be reached at (571) 272-4215. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /D.T./Examiner, Art Unit 2198 /PIERRE VITAL/Supervisory Patent Examiner, Art Unit 2198
Read full office action

Prosecution Timeline

Jul 13, 2022
Application Filed
Jun 16, 2025
Non-Final Rejection — §103
Sep 18, 2025
Response Filed
Nov 21, 2025
Final Rejection — §103
Feb 10, 2026
Interview Requested
Feb 18, 2026
Examiner Interview Summary
Feb 18, 2026
Applicant Interview (Telephonic)
Feb 26, 2026
Request for Continued Examination
Mar 09, 2026
Response after Non-Final Action
Mar 23, 2026
Non-Final Rejection — §103 (current)

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
100%
Grant Probability
99%
With Interview (+100.0%)
3y 3m
Median Time to Grant
High
PTA Risk
Based on 3 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month