DETAILED ACTION
Claims 1-20 are pending in the application.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 06/12/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Examiner’s Notes
The Examiner cites particular sections in the references as applied to the claims below for the convenience of the applicant(s). Although the specific citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant(s) fully consider the references in their 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.
Drawings
The drawings are objected to as failing to comply with 37 CFR 1.84(p)(4) because reference characters "1300" and "4300" have both been used to designate network in figure 12. Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Specification
The disclosure is objected to because of the following informalities:
No content follows paragraph 27
In paragraph 72, line 11 and in paragraph 82, line 11, denoted reference to allocation units should be “ADI” instead of “AGI”
In paragraph 24, line 3, “input/out” should be “input/output”
Appropriate correction is required.
Claim Objections
Claims 2, 4-8, 13-15, and 17 are objected to because of the following informalities:
Claims 2, 4, and 7: “determining a resource allocation rule” (line 3, line 18, and lines 22-23, respectively) should have been —determining the resource allocation rule—
Claims 5-8 inherit the features of claim 4 and are objected to accordingly.
Claim 6: “generating one or more allocation units” (lines 14-15) should have been —generating the one or more allocation units—
Claim 8: “selecting one or more allocation unit groups” (line 5) should have been —selecting the one or more allocation unit groups—
Claim 13: “providing a request processing opportunity by a multiple round robin method” (line 17-18) should have been —providing the request processing opportunity by the multiple round robin method—
Claims 14-15 inherit the features of claim 13 and are objected to accordingly.
Claim 17: “a throughput” (line 18) should have been —the throughput—; and “a size of the time window” (line 20) should have been —the size of the time window—
Claim 18 inherit there features of claim 17 and are object to accordingly
Claim 18: “when an input/output queue” (line 4) should have been —when the input/output queue—
Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-10 and 20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim 1 recites a method of operating an electronic system, the method comprising, i.e., a process, and thus falls within the four statutory categories of patentable subject matter. However, the claim further recites determining a resource allocation rule for each of a plurality of allocation unit groups…based on the resource amount information (a person can mentally determine a resource allocation rule by simply evaluating the resource amount information and making a judgement on how the resources should be distributed); selecting one or more allocation unit groups among the plurality of allocation unit groups based on a required amount of resources and input/output properties [of a virtual machine] and the resource allocation rule determined for each of the plurality of allocation unit groups (a person can mentally select a subset of resources by simply evaluating properties, rules, and the number of resources each group needs and making a judgement for determining which group to choose); generating one or more allocation units for the selected one or more allocation unit groups (a person can mentally determine a set of resources that belong to each group); and mapping the one or more allocation units [to the virtual machine] (a person can mentally assign resources to a requester). Therefore, the claim recites an abstract idea of allocating resources according to a derived set of rules and information of a device.
The claim does not recite any additional elements which could integrate the abstract idea into a practical application, because the additional elements consist of:
an electronic system, input/output device, and virtual machine which is merely using a computer or other machinery as a tool to perform the abstract idea, and cannot integrate the abstract idea into a practical application (MPEP 2106.05(f)(2))
identifying a physical function provided by an input/output device and obtaining resource amount information of the input/output device which is insignificant extra-solution activity of data gathering (MPEP 2106.05(g))
Thus, the claim is directed to the abstract idea of allocating resources according to derived set of rules and information of a device.
Further, the additional elements, taken alone or in combination, cannot provide significantly more than the abstract idea itself because the data gathering is well-understood, routine, and conventional (MPEP 2106.05(d), transmitting or receiving data over a network); the use of computer or other machinery as a tool to perform the abstract idea cannot do so (MPEP 2106.05(f)(2)); and there is no nexus between the additional elements to provide significantly more. Therefore, the claim is subject-matter ineligible.
Claim 2, dependent on Claim 1, merely provides further definition of the abstract idea of determining a resource allocation rule, i.e. by the mental process of determining a storage capacity and a quality of service; a person can mentally determine a storage capacity and a quality of service by making an observation, evaluation, and judgement on the size of a resource and its level of performance), and it further recites additional details about the additional elements which only specify the input/output device to include a storage device which is recited at a high level of generality that amounts to no more than a generic computer component which can neither integrate an abstract idea into a practical application nor provide significantly more than the abstract idea (MPEP 2106.05(f)(2)). The only additional element introduced is receiving a resource configuration request, an insignificant extra-solution activity of selecting a particular data source or type or data to be manipulated, which is also well-understood routine and conventional (MPEP 2106.05(g), (d)). Thus, the claim is also subject-matter ineligible.
Claim 3, dependent on claim 2, only provides further definition of the abstract idea step of determining a quality of service, i.e. by determining a write throughput, write latency, read throughput, and read latency, but no additional elements which could integrate the abstract idea into a practical application nor provide significantly more. Thus, the claim is also subject-matter ineligible.
Claim 4, dependent on Claim 1, merely provides further definition of the abstract idea of determining a resource allocation rule, i.e. by the mental process of determining a storage capacity and a total throughput (a person can mentally determine a storage capacity and a quality of service by making an observation, evaluation, and judgement on the size of a resource and the total output in a given period of time) and it further recites additional details about the additional elements which only specify the input/output device to include a storage device which is recited at a high level of generality that amounts to no more than a generic computer component which can neither integrate an abstract idea into a practical application nor provide significantly more than the abstract idea (MPEP 2106.05(f)(2)). The only additional element introduced is receiving a resource configuration request, an insignificant extra-solution activity of selecting a particular data source or type or data to be manipulated, which is also well-understood routine and conventional (MPEP 2106.05(g) and (d), transmitting or receiving data over a network). Thus, the claim is also subject-matter ineligible.
Claim 5 and 6, dependent on Claim 4, merely specifies the particular data used by the mental process (storage capacity, throughput, total storage capacity, total throughput, selected one or more allocation unit groups, identifier, etc.) which is merely stating the particular field of use, and thus cannot integrate the abstract idea into a practical application nor provide significantly more than the abstract idea itself (MPEP 2106.05(h)). Thus, the claim is also subject-matter ineligible.
Claim 7, dependent on Claim 4, merely provides further definition of the abstract idea of determining a resource allocation rule, i.e. by the mental process of determining a ratio between read throughput and write throughput (a person can mentally determine a ratio between two metrics by comparing them to another; alternatively, may be a mathematical process), but no additional elements which could integrate the abstract idea into a practical application nor provide significantly more. Thus, the claim is also subject-matter ineligible.
Claim 8, dependent on Claim 4, merely provides further definition of the abstract idea of selecting one or more allocation unit groups, i.e. by the mental process of selecting the one or more allocation unit groups based on a ratio between read throughput and write throughput (a person can mentally choose a defined group by evaluating a parameter/metric and making a judgement on which group best aligns with said metric) and it further recites the particular data used by the mental process (input/output properties are one of read-intensive properties, write-intensive properties, and mixed properties) which is merely stating the particular field of use, and thus cannot integrate the abstract idea into a practical application nor provide significantly more than the abstract idea itself (MPEP 2106.05(h)), and there are no new additional elements that could do the same. Thus, the claim is also subject-matter ineligible.
Claim 9, dependent on Claim 1, merely recites the particular data and technological environment used by the mental process (where allocation units are allocatable device interface[s] (ADI) supported by a scalable input/output virtualization (S-IOV) architecture) which cannot integrate the abstract idea into a practical application nor provide significantly more than the abstract idea itself (MPEP 2106.05(h)). It also further recites additional details about the abstract idea which only specifies the physical function corresponding to an input/output port which is recited at a high level of generality that amounts to no more than implementing the abstract idea on a generic computer component which can neither integrate an abstract idea into a practical application nor provide significantly more than the abstract idea (MPEP 2106.05(f)(2)). Thus, the claim is also subject-matter ineligible.
Claim 10, dependent on Claim 1, merely recites the particular data used by the mental process (where allocation units are identified by a process address space identifier (PASID)) which cannot integrate the abstract idea into a practical application nor provide significantly more than the abstract idea itself (MPEP 2106.05(h)). Thus, the claim is also subject-matter ineligible.
Claim 20 recites a method of operating an electronic system, the method comprising, i.e., a process, and thus falls within the four statutory categories of patentable subject matter. However, the claim further recites allocating a storage capacity and a quality of service (QoS) to each of the plurality of physical functions based in part on the resource information (a person can mentally determine a storage capacity and a quality of service by making an observation, evaluation, and judgement on the size of a resource and its level of performance); providing a resource configuration request to determine a resource allocation rule to each of the plurality of physical functions based on the storage capacity and the QoS allocated to each of the plurality of physical functions (a person can mentally determine a resource allocation rule by simply evaluating the resource parameters and making a judgement on how the resources should be distributed); selecting a physical function for which an allocation unit is generated based on an amount of a resource requested [by a virtual machine] and the resource allocation rule configured for each of the plurality of physical functions (a person can mentally select a function by simply evaluating rules and the number of resources requested and using it to make a judgement for determining which function to choose); generating one or more allocation units for the selected physical function by providing an allocation unit generation request to the selected physical function (a person can mentally determine a set of resources that belong to each function); and mapping the one or more allocation units [to the virtual machine] (a person can mentally assign resources to a requester). Therefore, the claim recites an abstract idea of allocating resources according to a derived set of rules and information of a device.
The claim does not recite any additional elements which could integrate the abstract idea into a practical application, because the additional elements consist of:
an electronic system, input/output device, and virtual machine which is merely using a computer or other machinery as a tool to perform the abstract idea, and cannot integrate the abstract idea into a practical application (MPEP 2106.05(f)(2))
identifying a plurality of physical function provided by an input/output device and obtaining resource amount information of the input/output device which is insignificant extra-solution activity of data gathering (MPEP 2106.05(g))
Thus, the claim is directed to the abstract idea of allocating resources according to derived set of rules and information of a device.
Further, the additional elements, taken alone or in combination, cannot provide significantly more than the abstract idea itself because the data gathering is well-understood, routine, and conventional (MPEP 2106.05(d), transmitting or receiving data over a network); the use of computer or other machinery as a tool to perform the abstract idea cannot do so (MPEP 2106.05(f)(2)); and there is no nexus between the additional elements to provide significantly more. Therefore, the claim is subject-matter ineligible.
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.
Claim 1 is rejected under 35 U.S.C. 103 as being unpatentable over Hu et al. (US 10,534,552 B2; hereinafter Hu) in view of Magdon-Ismail et al. (US 2016/0150003 A1; hereinafter Magdon-Ismail).
With respect to claim 1, Hu teaches a method of operating an electronic system, the method comprising:
identifying a physical function provided by an input/output device (Hu, Col. 9, lines 59-60, “the storage controller may obtain the identifier information of the PF”) and obtaining resource amount information of the input/output device (Hu, Col. 10, lines 60-63, “…deliver a resource searching command to the PF. After receiving the searching command, the PF may return statuses of the storage medium, an interrupt resource, and a queue resource included in the storage device” where statuses correspond to the resource amount information obtained directly in response to the search/identify command);
determining a resource allocation rule for each of a plurality of allocation unit groups of the input/output device based on the resource amount information (Hu, Claim 1, lines 53-56, “…allocating, by the storage controller in response to an allocation command including a set allocation rule from the host, the storage sub-resources to the PF and/or any of the at least one VF according to the allocation rule to maintain a resource allocation table”; Col. 11, lines 62-64 and Col. 11, lines 66-67 through Col. 12, lines 1-2, “The storage controller may divide the single logical space into N…LBA ranges with different sizes…(that is, segments NSs, which may be recorded as, for example, Abs_NS1, Abs_NS2, Abs_NS3,…, Abs_NSn) according to a preset division rule” where each NS created and governed by the preset division rule/allocation rule corresponds to the allocation unit groups);
selecting one or more allocation unit groups among the plurality of allocation unit groups based on a required amount of resources…and the resource allocation rule determined for each of the plurality of allocation unit groups (Col. 12, lines 45-49, “Allocate the storage sub-resources to at least one of the PF or the VF according to a preset allocation rule,” where allocation of a specific sub-resource pool drawn from a multitude of pools necessarily involves selection for assignment);
generating one or more allocation units for the selected one or more allocation unit groups (Hu, Col. 10, line 67 through Col. 11, lines 1-5, “The PF may parse the allocation command, divide the unified storage resource into the multiple storage sub-resources according to the allocation command, and further allocate the storage sub-resources, the queue resource, and the interrupt resource to the PF or the VF”); and
mapping the one or more allocation units to the virtual machine (Hu, Col. 12, lines 47-49, “where the resource allocation table includes a mapping relationship between the storage sub-resources and at least one of the PF or the VF”; Col. 8, lines 12-13, “each VF directly communicates with a virtual machine”).
While Hu teaches selecting a group according to varied factors, Hu does not explicitly teach selecting a group based on input/output properties of a virtual machine. However, Magdon-Ismail teaches this limitation (Magdon-Ismail, Abstract, “receive characteristics of a plurality of input/output (I/O) requests from a workload, including logical address distance values” including paragraph 28, “whether the request is a read or a write”; Abstract, “The first workload is selected as suitable in response to determining the data length value for the data lengths of the plurality of I/O requests is less than a data length threshold and/or the access pattern of the plurality of I/O requests is more random than an access pattern threshold on the spectrum from random access to sequential access”; paragraph 34, “analysis and planning VM 155 further determines suitability based upon whether the I/O requests are read or write commands” where a workload’s read/write mix, access pattern, and request data length are input/output properties of a virtual machine). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate a virtual machine’s properties as another factor into Hu’s selection of a group. The motivation to do so is to optimize performance of workloads (Magdon-Ismail, paragraph 2).
Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Magdon-Ismail, and further in view of Bert (US 2020/0356396 A1).
With respect to claim 2, Hu as modified teaches, the method of claim 1, and Hu further teaches wherein the input/output device includes a storage device (Hu, Col. 1, lines 52-55: “where the method is executed by a storage controller in a storage device, the storage device further includes a storage medium”) and wherein the determining a resource allocation rule includes determining a storage capacity (Hu, Claim 6, Col. 23, lines 1-4, “allocating at least one storage sub-resource to the PF according to a set allocation rule, and storing a mapping relationship between the storage sub-resource and the PF”; Col. 8, lines 49-54, “Each segment (that is, each LBA range) is a namespace Namespace (NS for short). Sizes of the NSs may be same or different, which are not limited herein. The NSs obtained by dividing the single logical space are the storage sub-resources obtained by dividing the unified storage resource”),
However, Hu as modified does not specifically teach a quality of service (QoS), but Bert does teach this limitation (Bert, paragraph 16, “the memory sub-system defines certain QoS parameters pertaining to input/output operations per second (IOPS) and throughput by allowing the system to set both a minimum (i.e., “Reserve”) and a maximum (i.e., “Limit”) of such QoS conditions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the QoS-parameter, as taught by Bert, with the Hu/Magdon-Ismail combination. The motivation to do so is “to meet the conditions of the system SLA” (Bert, paragraph 16).
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Magdon-Ismail and Bert, and further in view of Hashimoto et al. (US 2016/0313943 A1; hereinafter, Hashimoto) and Jeon et al. (US 2022/0300442 A1; hereinafter Jeon).
With respect to claim 3, Hu as modified teaches the method of claim 2, however, Hu as modified does not teach wherein the QoS includes…write latency…and read latency. Hashimoto does teach write latency and read latency (Hashimoto, paragraph 206, “QoS in namespace level is a function of enabling the host 3 to designate the namespace or stream to which a minimum amount of exclusive free space should be allocated”; paragraph 53, “a Write latency vs read latency control parameter in the extended write command”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the separately measured write/read latency metrics, as taught in Hashimoto, in the QoS parameter of Hu as modified. The motivation to do so is to designate higher speeds or reliability while also ensuring a minimum performance (Hashimoto, paragraph 201 and 172).
Hu as modified does not each the QoS including write throughput and read throughput. However, Jeon teaches this limitation (Jeon, paragraph 260, “the throughput calculator 310 may calculate a read throughput corresponding to a read operation and a write throughput corresponding to a write operation for each of the plurality of functions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the separately measure write/read throughput metrics, as taught by Jeon, in the QoS parameter of Hu as modified. The motivation to do so is to provide “uniform quality of service (QoS) for respective functions” (Jeon, paragraph 7).
Claims 4, 5, 7, and 8 are rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Magdon-Ismail, and further in view of Jeon.
With respect to claim 4, Hu as modified teaches the method of claim 1, and Hu further teaches wherein the input/output device includes a storage device (Hu, Col. 1, lines 52-55, “where the method is executed by a storage controller in a storage device, the storage device further includes a storage medium”), and wherein the determining a resource allocation rule includes determining a total storage capacity (Hu, Col. 12, table 2, line 31, “Ab_NS1”, “0x00000000”, “0x7fffffff” where the LBA range bounds (start and end addresses) for each namespace segment define the number of addressable blocks within it, a storage capacity value).
However, Hu as modified does not teach a total throughput. However, Jeon teaches this limitation (Jeon, paragraph 261, “generate throughput analysis information for each of the plurality of functions based on a throughput limit that is set for each of the plurality of functions and the calculated throughput for each of the plurality of functions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to establish a throughput total, as taught by Jeon, for the resource group of Hu as modified. The motivation to do so would be to keep the performance consistent across every function (Jeon, paragraph 7).
With respect to claim 5, Hu as modified further teaches the method of claim 4, wherein the generating the one or more allocation units…includes generating an allocation unit having a determined storage capacity and a determined throughput in a range of total storage capacity and [total throughput]…in response to an allocation unit generation request specifying an identifier of the allocation unit and the selected one or more allocation unit groups (Hu, Col. 15, lines 19-20 and lines 22-23, “the VF1 may establish relative IDs of the NS… for example, VF1: [NS1, NS2, NS3]”; Col. 15, lines 44-46 and 51-54, “After receiving the I/O command, the storage controller may search the resource allocation table according to the identifier information of the VF, to obtain all NSs… and further obtain, according to the correspondence between a storage sub-resource relative ID and a storage sub-resource absolute ID, an NS (Abs_NS2) corresponding to the NS1” where the NS, defined to be the grouped resources, are assigned IDs (identifiers)).
Hu as modified, additionally, as described in the rejection of Claim 4, been shown to teach a total throughput (Jeon, paragraph 261, “generate throughput analysis information for each of the plurality of functions based on a throughput limit that is set for each of the plurality of functions and the calculated throughput for each of the plurality of functions”).
With respect to claim 7, Hu as modified teaches the method of claim 4. Hu does not teach wherein the determining a resource allocation rule includes determining a ratio between read throughput and write throughput—. However, Jeon teaches a read throughput and write throughput (Jeon, paragraph 260, “the throughput calculator 310 may calculate a read throughput corresponding to a read operation and a write throughput corresponding to a write operation for each of the plurality of functions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the separately measure write/read throughput metrics, as taught by Jeon, for the rule of Hu as modified. The motivation to do so would be to keep the performance consistent across every function (Jeon, paragraph 7).
While Jeon does not explicitly teach that the read throughput and write throughput are used in a ratio, Jeon notes that information pertaining to throughput analysis can be “acquired by comparatively analyzing throughputs” (Jeon, paragraph 263). It would have been obvious to one of ordinary skill in their art before the effective filing date of the invention to modify Jeon to compute a ratio using the separately measured read throughput and write throughput for the same function/group as a matter of routine optimization since it has been held that “where the general conditions of a claim are disclosed in the prior art, it is not inventive to discover the optimum or workable ranges by routine experimentation." In re Aller, 220 F.2d 454, 456, 105 USPQ 233, 235 (CCPA 1955).
With respect to claim 8, Hu as modified teaches the method of claim 4, Hu does not teach wherein each of the input/output properties are one of read-intensive properties, write-intensive properties, and mixed properties, and wherein the selecting one or more allocation unit groups…includes selecting the one or more allocation unit groups based on a ratio between read throughput and write throughput—. However, Jeon teaches wherein each of the input/output properties are one of read-intensive properties, write-intensive properties, and mixed properties (Jeon, paragraph 266, “the throughput analysis information generator 320 may generate the read throughput analysis information corresponding to the read operation based on a result of a comparison between the throughput and the throughput limit which correspond to the read operation. Further, the throughput analysis information generator 320 may generate the write throughput analysis information corresponding to the write operation based on a result of a comparison between the throughput and the throughput limit which correspond to the write operation” where a function whose throughput is dominated by write conditions is write-intensive; conversely, dominated by read conditions defines read-intensive; and comparable read/write throughputs denote mixed) and read throughput and write throughput (Jeon, paragraph 260, “the throughput calculator 310 may calculate a read throughput corresponding to a read operation and a write throughput corresponding to a write operation for each of the plurality of functions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the separately measure write/read throughput metrics, as taught by Jeon, for selecting a group of Hu as modified. The motivation to do so would be to keep the performance consistent across every function (Jeon, paragraph 7).
While Jeon does not explicitly teach that the read throughput and write throughput are used in a ratio, Jeon notes that information pertaining to throughput analysis can be “acquired by comparatively analyzing throughputs” (Jeon, paragraph 263). It would have been obvious to one of ordinary skill in their art before the effective filing date of the invention to modify Jeon to compute a ratio using the separately measured read throughput and write throughput for the same function/group as a matter of routine optimization since it has been held that “where the general conditions of a claim are disclosed in the prior art, it is not inventive to discover the optimum or workable ranges by routine experimentation." In re Aller, 220 F.2d 454, 456, 105 USPQ 233, 235 (CCPA 1955).
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Magdon-Ismail and Jeon, and further in view of Miller (US 2016/0255016 A1).
With respect to claim 6, Hu as modified further teaches the method of claim 4, wherein the generating one or more allocation units…includes generating, in response to an allocation unit generation request specifying an identifier of the allocation unit, a storage capacity of the allocation unit, and the selected one or more allocation unit groups, an allocation unit having the specified storage capacity… in a range of total storage capacity and [total throughput] of the selected one or more allocation unit groups (Hu, Col. 15, lines 19-20 and lines 22-23, “the VF1 may establish relative IDs of the NS… for example, VF1: [NS1, NS2, NS3]”; Col. 15, lines 44-46 and 51-54, “After receiving the I/O command, the storage controller may search the resource allocation table according to the identifier information of the VF, to obtain all NSs… and further obtain, according to the correspondence between a storage sub-resource relative ID and a storage sub-resource absolute ID, an NS (Abs_NS2) corresponding to the NS1”).
Hu as modified, additionally, as described in the rejection of Claim 4, has been shown to teach a total throughput (Jeon, paragraph 261, “generate throughput analysis information for each of the plurality of functions based on a throughput limit that is set for each of the plurality of functions and the calculated throughput for each of the plurality of functions”).
Hu as modified does not teach a throughput determined in proportion to the specified storage capacity. However, Miller teaches this limitation (Miller, paragraph 25, “The maximum rate of throughput for access through a node of a storage cluster system to client device data stored within a volume may be specified in configuration data provided to the node as a ratio between a maximum rate of throughput and the amount of data stored within that volume. The amount of data that is stored within that volume may be recurringly determined and used in a calculation employing the ratio to dynamically adjust the maximum rate of throughput for accessing the data” where the maximum rate of throughput is the throughput determined which is determined in a ratio of an amount of data stored in a volume (the storage capacity)). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to specify a throughput based upon a ratio recurringly calculated using an amount of data stored within a volume of storage space, as taught by Miller, for the throughput used in Hu as modified. The motivation to do so is keep service fair by scaling the throughput allowed to a volume’s size since its data may be accessed more frequently (Miller, paragraph 26).
Claims 9 and 10 are rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Magdon-Ismail, and further in view of Deval et al. (US 2019/0114283 A1; from IDS filed on 06/12/2024; hereinafter Deval).
With respect to claim 9, Hu as modified teaches the method of claim 1 but does not teach wherein the physical function corresponds to an input/output port, and wherein the one or more allocation units are configured as an allocatable device interface (ADI) supported by a scalable input/output virtualization (S-IOV) architecture. However, Deval teaches the physical function corresponds to an input/output port (Deval, paragraph 27, “at least one network I/O device 110 (e.g., a network interface controller (NIC)) having one or more ports connected or coupled to network communication channel”; paragraph 121, “the physical function (PF) 232 is an I/O device (such as NIC, for example)”) and wherein the one or more allocation units are configured as an allocatable device interface (ADI) (Deval, paragraph 76, “for a network controller device (such as an Ethernet NIC), an ADI may be composed of a set of TX/RX queues and resources associated with a Virtual Switch Interface (VSI). An ADI on a storage controller may be the set of command queues and completion queues associated with a storage namespace”) supported by a scalable input/output virtualization (S-IOV) architecture (Deval, paragraph 74, “the Scalable IOV architecture defines the constructs for fine-grained sharing on endpoint devices (i.e., scalable IOV devices 230) as Assignable Device Interfaces (ADIs)”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to implement the Scalable IOV/ADI architecture, as taught by Deval, in place of the SR-IOV storage system of Hu. The motivation to do so would improve the scalability of resource sharing with less complexity and cost (Deval, paragraph 34).
With respect to claim 10, Hu as modified teaches the method of claim 1 but does not teach wherein a request for each of the plurality of allocation units generated in the physical function is identified by a process address space identifier (PASID). However, Deval teaches the physical function being identified by a process address space identifier (PASID) (Deval, paragraph 49, “The Scalable IOV architecture of embodiments of the present invention addresses the platform scalability issue by sharing the RID of the physical function (PF) 232 with all of its ADIs, and instead assigning ADIs a Process Address Space Identifier (PASID) that is conveyed in upstream transactions using a PCI Express PASID transaction layer packet (TLP) Prefix”; paragraph 96, “Every memory request (except ATS translated requests) from an ADI must be with a PASID TLP Prefix using the ADI's assigned PASID value in the PASID TLP prefix”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to implement a PASID-based request identification mechanism, as taught by Deval, in the architecture of Hu. The motivation to do so would be to improve scalability and the use of more devices (Deval, paragraph 49).
Claims 11 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Jeon.
With respect to claim 11, Hu teaches a method of operating an electronic system, the method comprising: generating a plurality of allocation unit groups with each having different resource allocation rules in response to a resource configuration request (Hu, Claim 20, Col. 26, lines 39- 53, “the storage controller is specifically configured to: allocate at least one storage sub-resource to the PF according to the allocation rule…allocate at least one storage sub-resource to one VF according to the allocation rule…allocate one storage sub-resource to multiple VFs according to the allocation rule”);
receiving allocation unit generation requests, each allocation unit generation request respectively specifying one of the plurality of allocation unit groups (Hu, Col. 15, lines 19-20 and lines 22-23, “the VF1 may establish relative IDs of the NS… for example, VF1: [NS1, NS2, NS3]”; Col. 15, lines 44-46 and 51-54, “After receiving the I/O command, the storage controller may search the resource allocation table according to the identifier information of the VF, to obtain all NSs… and further obtain, according to the correspondence between a storage sub-resource relative ID and a storage sub-resource absolute ID, an NS (Abs_NS2) corresponding to the NS1”);
generating a plurality of allocation units included in the plurality of allocation unit groups in response to the allocation unit generation requests (Hu, Col. 10, line 67 through Col. 11, lines 1-5, “The PF may parse the allocation command, divide the unified storage resource into the multiple storage sub-resources according to the allocation command, and further allocate the storage sub-resources, the queue resource, and the interrupt resource to the PF or the VF”);
mapping the plurality of allocation units included in the plurality of allocation unit groups to a plurality of input/output queues provided by a storage controller (Hu, see Table 3, Col.14, lines 14-17 where, for example, PF0 corresponds to Abs_Q1 (an I/O queue resource)).
Hu does not teach allocating throughput to each of the plurality of allocation units based on the resource allocation rules. However, Jeon teaches this limitation (Jeon, paragraph 261, “generate throughput analysis information for each of the plurality of functions based on a throughput limit that is set for each of the plurality of functions and the calculated throughput for each of the plurality of functions”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to generate throughput for each function, as taught by Jeon, for the resources of Hu. The motivation to do so would be to keep the performance consistent across every function (Jeon, paragraph 7).
With respect to claim 19, Hu as modified further teaches the method of claim 11, further comprising: allocating a namespace having a storage capacity determined based on the resource allocation rules to each of the plurality of allocation units (Hu, Col. 8, lines 49-54, “Each segment (that is, each LBA range) is a namespace Namespace (NS for short)…The NSs obtained by dividing the single logical space are the storage sub-resources…the NSs may be allocated to the PF or the VF for use”).
Claims 12, 13, and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Jeon, and further in view of Nadakuditi et al. (US 2023/0004323 A1; hereinafter Nadakuditi).
With respect to claim 12, Hu as modified teaches the method of claim 11, further comprising. Hu as modified does not teach but Nadakuditi teaches receiving input/output requests and queuing each of the input/output requests to one of the plurality of input/output queues based on an identifier of each of the input/output requests; and providing a request processing opportunity to one of the plurality of input/output queues by a multiple round robin method based on an allocation unit group and an allocation unit corresponding to each of the plurality of input/output queues; and processing requests queued in an input/output queue having the request processing opportunity (Nadakuditi, paragraph 44 and 45, “round robin (RR) arbitration (504) executes among the VNVM sets, such that various submission queues (506) become associated with VNVM sets…Further, round robin arbitration (508-a) among queues belonging to VNVMSET1 operates in accordance with PLM, and round robin arbitration (508-b to 508-d) operates among the queues belonging to VNVM sets that are not in PLM. Further, commands (510) are fetched from VNVMSET1 that is in PLM”).
With respect to claim 13, the combination Hu as modified/Nadakuditi teaches the method of claim 12, the combination can further teach wherein the providing a request processing opportunity by a multiple round robin method to one of the plurality of input/output queues includes: providing the…by a first round robin method, providing the request processing opportunity…by a second round robin method, and providing the request processing opportunity provided to one allocation unit…to an input/output queue mapped to the one allocation unit (Nadakuditi, paragraph 48, “the controller C1 is associated with the special arbitration policy, and the controller C2 is associated with standard round robin arbitration policy. The controller C1 with special arbitration policy arbitrates among the VNVM sets, whereas the controller C2 with round robin arbitration policy arbitrates among the queues”).
With respect to claim 14, Hu as modified/Nadakuditi teaches the method of claim 13, the combination can further teach wherein each of the first round robin method and the second round robin method is one of a simple round robin method and a weighted round robin method (Nadakuditi, paragraph 53, “a general arbitration mechanism such as round robin (RR) or weighted round robin (WRR) is followed in the manner depicted in FIG. 2)
Claim 15 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Jeon and Nadakuditi, and further in view of Bert.
With respect to claim 15, Hu as modified teaches the method of claim 13, further comprising but does not teach determining a weight for the first round robin method…according to a ratio of a throughput—. However, Bert teaches this limitation (Bert, paragraph 49, “the same CoS parameters described above can be used to define a weighted assignment of credits to each VF/PF…the VF/PF with the most aggressive (i.e., lowest number) QoS parameter will be assigned a proportional number of credits”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to implement a credit-weighing feature, as taught by Bert, into the assigned throughput limit and queue round robin architecture of Hu as modified. The motivation to do so is to ensure functions with more performance needs get serviced more often (Bert, paragraph 49).
Claim 16 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Jeon and Nadakuditi, and further in view of Narasimhan (US 2023/0023568 A1).
With respect to claim 16, Hu as modified teaches the method of claim 12 but does not teach wherein each of the plurality of input/output queues includes a read request queue and a write request queue. Narasimhan teaches this limitation (Narasimhan, paragraph 17, “One submission queue and one completion queue may be dedicated for read operations (read IO queues 108-1 to 108-P) and the other submission queue and completion queue may be dedicated for write operations (write IO queues…)”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the read/write queue separation, as taught by Narasimhan, into the queue architecture of Hu as modified. The motivation to do so is to service the requests separately improving processing efficiency (Narasimhan, paragraph 11).
Claims 17 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Jeon, and further in view of Benisty et al. (US 2018/0217951 A1; hereinafter Benisty) and Bert.
With respect to claim 17, Hu as modified teaches the method of claim 11, further comprising. Hu as modified does not teach but Benisty teaches a size of a periodically repeated time window (Benisty, paragraph 123, “Credits 847 may be periodically provisioned to the IOV functions 830A-N (e.g., in accordance with a time-based refresh scheme, when an average number of credits of the IOV functions 830 falls below a threshold, and/or the like” where the time-based refresh scheme corresponds to the periodically repeated time window); allocating a plurality of credits for each of the plurality of allocation unit groups for each time window based on a size of the time window (Benisty, paragraph 123, “The credits 847 may be allocated to respective IOV functions 830A-N by the primary IOV function 830A and/or in accordance with QoS and/or arbitration policy settings of the respective IOV functions 830A-N”); and deducting a determined number of credits depending on a size of input/output data (Benisty, paragraph 122, “The amount of credits consumed by a command may be determined based on one or more determined credit characteristics of the command, which may include… estimated amount of data to be transferred to/from the nonvolatile storage device 106 during execution of the command”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to implement a credit-based scheme, as taught by Benisty, into the queue architecture of Hu as modified. The motivation to do so is to efficiently utilize limited storage resources for processing functions (Benisty, paragraph 5).
While Hu as modified teaches an associated throughput allocated to the plurality of allocation units, it does not explicitly teach determining a throughput for each of the plurality of allocation unit groups based on the aforementioned throughput. Bert teaches this limitation (Bert, paragraph 16, “the memory sub-system defines certain QoS parameters pertaining to input/output operations per second (IOPS) and throughput by allowing the system to set both a minimum (i.e., “Reserve”) and a maximum (i.e., “Limit”) of such QoS conditions”). It would have been obvious to one of ordinary skill in the art to assign a throughput to systems containing sets of resources based on a limit, as taught by Bert, to the groups of resources of Hu as modified. The motivation to do so is to meet a certain level of service provided by a system (Bert, paragraph 16).
While the Hu as modified/Benisty combination teaches allocating credits dependent on several parameters (see e.g. Benisty, paragraph 92, “QoS parameters”), the combination does not explicitly teach the allocation based on a throughput, but Bert as shown teaches this. It would have been obvious to one of ordinary skill in the art to utilize throughput as an additional parameter, as taught by Bert, for the allocating credit scheme of the combination Hu as modified/Benisty because both inventions discuss policy-based credit assignment. The motivation to do so is to meet a certain level of service performance provided by a system (Bert, paragraph 16).
With respect to claim 18, Hu as modified teaches the method of claim 17. Hu does not teach wherein the method further includes skipping request processing for the input/output queue when a credit of an allocation unit group associated with the input/output queue is exhausted when an input/output queue has a request processing opportunity. Benisty teaches this limitation (Bensity, paragraph 124, “The credit-based arbiter 882 may arbitrate between IOV functions 830 that have sufficient credits 847 (and may skip the IOV functions 830 that have no remaining credits 847 and/or fewer than a threshold amount of credits 847)”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to implement the skipping when credit is exhausted behavior, as taught by Benisty, into the queue mechanism of Hu as modified. The motivation to do so is to “improve utilization of storage device resources” (Benisty, paragraph 5).
Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over Hu in view of Bert.
With respect to claim 20, Hu teaches: A method of operating an electronic system, the method comprising:
identifying a [plurality of] physical functions provided by an input/output device (Hu, Col. 9, lines 59-60, “the storage controller may obtain the identifier information of the PF”) and obtaining resource amount information of the input/output device (Hu, Col. 10, lines 60-63, “…deliver a resource searching command to the PF. After receiving the searching command, the PF may return statuses of the storage medium, an interrupt resource, and a queue resource included in the storage device” where statuses correspond to the resource amount information obtained directly in response to the search/identify command);
allocating a storage capacity…to each of the [plurality of] physical functions based in part on the resource information (Hu, Col. 8, line 67 through Col. 9, line 1, “allocate the storage sub-resources to the PF… according to the preset allocation rule”);
providing a resource configuration request to determine a resource allocation rule to each of the [plurality of] physical functions based on the storage capacity…allocated to each of the [plurality of] physical functions (Hu, Col. 9, lines 18-20, “The storage controller may allocate the storage sub-resources to the PF or the VF according to the allocation command sent by the virtual machine monitor”);
selecting a physical function for which an allocation unit is generated based on an amount of a resource requested by a virtual machine and the resource allocation rule configured for each of the [plurality of] physical functions (Hu, Col. 18, lines 32-33, “allocate at least one storage sub-resource to one VF according to the preset allocation rule” where allocation of a specific sub-resource pool to a requesting VF chosen from multiple pools necessarily involves a selection);
generating one or more allocation units for the selected physical function by providing an allocation unit generation request to the selected physical function (Hu, Col. 10, line 67 through Col. 11, lines 1-5, “The PF may parse the allocation command, divide the unified storage resource into the multiple storage sub-resources according to the allocation command, and further allocate the storage sub-resources, the queue resource, and the interrupt resource to the PF or the VF”); and
mapping the one or more allocation units to the virtual machine (Hu, Col. 12, lines 47-49, “where the resource allocation table includes a mapping relationship between the storage sub-resources and at least one of the PF or the VF”; Col. 8, lines 12-13, “each VF directly communicates with a virtual machine”).
Hu does not explicitly teach a plurality of physical function. However, Bert does teach this limitation (Bert, Abstract, “provide a plurality of virtual memory controllers and to provide a plurality of physical functions, wherein each of the plurality of physical functions corresponds to a different one of the plurality of virtual memory controllers”). Additionally, Hu does not teach, but Bert teaches allocating…a quality of service (QoS) to each of the plurality of physical functions (Bert, paragraph 16, “the memory sub-system defines certain QoS parameters pertaining to input/output operations per second (IOPS) and throughput by allowing the system to set both a minimum (i.e., “Reserve”) and a maximum (i.e., “Limit”) of such QoS conditions”; paragraph 19, “each physical function and virtual NVMe controller pair can have a number of associated QoS parameters, including one referred to herein the Class of Service (CoS)”; paragraph 46, “if physical function 212 is assigned a CoS parameter setting of 0x0” where assignment of an exemplary QoS parameter involves allocation of QoS to each physical function). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the multiple physical function architecture, as taught by Bert, into the single physical function system of Hu. The motivation to do so is to reduce the need for additional physical controllers and their associated hardware resources (Bert, paragraph 19). Regarding the QoS parameters, as taught by Bert, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the allocation of said parameters with the allocation of the storage resource attribute, based in part on the resource information, as taught by Hu. The motivation to do so is to meet Service Level Agreements (SLAs) and performance guarantees (Bert, paragraph 15 and 16).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NICOLAS JAY PANYASITHAVONG whose telephone number is (571) 270-7487. The examiner can normally be reached Monday - Thursday (7:30 AM - 5:00 PM ET).
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, Aimee Li can be reached at (571) 272-4169. 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.
/N.J.P /Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195