DETAILED ACTION
Claims 1-20 were restricted. Claims 1-15 are elected. Claims 16-20 are withdrawn.
Claims 1, 5, 9 are amended. Claim 4 is canceled. Claims 1-3, 5-15 are pending.
Priority: September 13, 2023(FP)
Assignee: Samsung
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim(s) 1, 2-3, 5-8, 9-15 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
1.Amended claim 1 is rejected for reciting a limitation that is unclear, incorrect, hypothetical and indefinite.
Note: In the Remarks, the Applicant does not mention the relevant specification paragraph(s) that recite the amendment(s).
Amended claim 1 recites, ‘determine whether to send the asynchronous event interrupt based on the workload at the non-volatile memory device and the workload threshold’.
The spec does not recite the amendment. The spec does not recite that the workload is at the NVM device.
According to spec, Paras-0006,0043-0044, the controller monitors r/w commands from host and measures each VM’s workload via components, command processing module 1212, condition repository 1214, condition checker 1216, command count tracker 1218, and event transmitter 1219, all of which are located in the controller. An example of workload monitoring based on r/w commands sent to storage device is shown in spec, Fig. 6, steps S130 onwards, Paras:0072-0074. There is no recitation of ‘workload at the NVM device’.
As per Paras-0006,0045, the data associated with the read/write commands is stored in the NVM device. Therefore, reciting ‘based on the workload at the non-volatile memory device’ is a hypothetical limitation, hinting at new matter.
The amendment is incorrect, and the recitation leads to uncertainty about the scope of claim 1. Hence claim 1 is rejected for reciting a limitation that is unclear, incorrect, hypothetical and indefinite. Claims 2-3, 5-8 are rejected for failing to cure the deficiency from their parent claim by dependency. For examination, the spec is followed.
2.Amended claim 1 is rejected for reciting a limitation that is unclear, inconsistent and indefinite.
Note: In the Remarks, the Applicant does not mention the relevant specification paragraph(s) that recite the amendment(s).
Amended claim 1 recites, ‘send the asynchronous event interrupt to the host device in response to the determination without a request from the host device’. The spec does not recite this limitation.
Claim 1 is based on spec, Para-0006. And spec, Para-0006 ends with the recitation, ‘determine whether to send the asynchronous event interrupt based on the workload and the workload threshold’. After the determination, no further information about sending the event to the host is recited.
The determination is based on the workload and workload threshold. But nowhere does the spec recite sending the asynchronous event interrupt based on the workload and the workload threshold (or based on the workload at the NVM device and the workload threshold, which is an incorrect limitation as shown above).
Since the spec lacks adequate written description support for sending the ASE based on the workload and workload threshold, claim 1 is rejected for reciting a limitation that is unclear, inconsistent and indefinite. Claims 2-3, 5-8 are rejected for failing to cure the deficiency from their parent claim by dependency. For examination, the spec is followed.
3.Amended claim 1 is rejected for reciting a limitation that is unclear, incorrect and indefinite.
Note: In the Remarks, the Applicant does not mention the relevant specification paragraph(s) that recite the amendment(s).
Amended claim 1 recites, ‘send the asynchronous event interrupt to the host device in response…. without a request from the host device’.
Unlike claim 9, claim 1 is not an event reporting method/mechanism. So the asynchronous event is always sent. Accordingly, in claim 1, the previous limitation recites, ‘send an asynchronous event interrupt to the host device based on the workload threshold’. Here, there is no mention of no-request from the host (.i.e. no host input) because the recitation is consistent with claim 1 not participating in event reporting.
So the amendment is incorrect because it makes claim 1 participate in event reporting, as it recites, ‘send ….without a request from the host device’.
It is also unclear what ‘without a request from the host device’ means. Since no prior communication between the host and controller is recited where the host agrees to not-send the request, for examination, the limitation is interpreted as, ‘if condition is met, always send the ASE’. Given these issues, claim 1 is rejected for reciting a limitation that is unclear, incorrect and indefinite. Claims 2-3, 5-8 are rejected for failing to cure the deficiency from their parent claim by dependency. For examination, the spec is followed.
4.Amended claim 9 is rejected for reciting a limitation that is unclear, inconsistent and indefinite.
Note: In the Remarks, the Applicant does not mention the relevant specification paragraph(s) that recite the amendment(s).
Amended claim 9 recites, ‘sending an asynchronous event interrupt….to the host device without receiving a request from the host device’. The spec does not recite this limitation.
Claim 9 is based on Para-0007 of the spec and Para-0007 recites, ‘sending an asynchronous event interrupt….regardless of whether a request is received from the host device’. This recitation suggests that the host request/input is ignored and the ASE is always sent.
So it is unclear what ‘without receiving a request from the host device’, means. Given the inconsistency, claim 9 is rejected for reciting a limitation unclear, inconsistent and indefinite. Claims 10-15 are rejected for failing to cure the deficiency from their parent claim by dependency. For examination, the spec is followed.
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claim(s) 9-15 is rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention.
1.Amended claim 9 is rejected for reciting a limitation that is unsupported by the spec.
Note: In the Remarks, the Applicant does not mention the relevant specification paragraph(s) that recite the amendment(s).
Amended claim 9 recites, ‘monitoring, by a storage controller of the storage device, a workload of each of the plurality of virtual machines at a non-volatile memory device of the storage device’.
Nowhere does the spec recite this limitation. Nowhere does the spec recite that the controller monitors the workload of each VM at the NVM device 1230.
Spec, Fig. 3 clearly shows that the storage controller 1210 manages separate memory spaces for each VM as VM1,….VM4, to monitor, measure and store their workloads via component, condition repository 1214 etc. In fact, spec Fig. 3, Para-0047 recites the function of condition repository 1214 as, ‘each of the virtual machines (VM1,VM2,VM3,….) may be set to the workload threshold WL_TH corresponding to the plan to which the users have subscribed’. This clearly suggests that each VM’s workload is located in controller 1210, workload measurement is a function of controller 1210, and performed at the controller 1210.
More importantly, spec, Para-0029 recites, ‘The storage device 1200 may write data to a non-volatile memory device 1230 or reads data stored in the non-volatile memory device 1230 in response to various data write and read requests’. This clearly shows that the NVM device is not associated with workload monitoring, workload measuring or workload storing, of each VM.
The limitation assigns a new location for storing the workload of each VM: NVM device 1230, thereby introducing new matter. The recitation recites a new way of how the disclosure works by shifting workload monitoring from the controller to the NVM device. Above all, the recitation lacks written description support in the spec.
Hence claim 9 is rejected for reciting a limitation that is unsupported by the spec. Claims 10-15 are rejected for failing to cure the deficiency from their parent claim by dependency. For examination, the spec is followed.
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.
Claims 1-3, 5, 9-10, 13 are rejected under AIA 35 U.S.C. 103(a) as being unpatentable over Kanno (20210200442) in view of Lee et al (20200151040).
As per Claim 1, Kanno discloses a storage device (Kanno, [Fig. 1: SSD 3]) configured to receive a read command or a write command from a host device (Kanno, [0061 – In Fig. 1, host interface 11 of SSD 3 receives various commands such as a write command, read command, etc., from host 2]), the storage device comprising:
a non-volatile memory device configured to store data (Kanno, [0038 – In Fig. 1, NAND flash memory 5 includes a memory cell array having a plurality of memory cells arranged in a matrix]; [0053 - Data is read from the physical storage location in NAND flash memory 5 designated by the physical address of interest]);
a storage controller (Kanno, [Fig. 1: controller 4]) configured to:
operate at least one virtual machine to control the non-volatile memory device (Kanno, [0042 – In Fig. 1, controller 4 in SSD 3 includes a virtualization support mechanism for supporting storage management by host 2. The virtualization support mechanism allows a plurality of virtual servers such as the virtual machines/VMs/VSSDs 41,42,43,….47 to share physical resources of SSD 3 and to directly access the physical resources of SSD 3]),
store a workload threshold of the at least one virtual machine (Kanno, [0026 – The controller maintains a threshold value for each of the virtual storage regions/VMs]; [0152 – In Fig. 8, ‘execution time of NAND processing’ field, stores an upper limit value of process execution time of a corresponding VSSD/VM]; [0095 - The execution time of NAND processing is an upper limit value of a write operation/command or a read operation/command of NAND flash memory 5 per unit time]; [0148 – In Fig. 8, VSSD management table 30 includes a plurality of entries corresponding to the VSSDs 51-57 created by the VSSD creation unit 21, thereby implying that VSSD 51 corresponds to a VM]) according to settings received from the host device (Kanno, [0061 – In Fig. 1, host interface 11 of SSD 3 receives the VSSD/VM management command from host 2]),
and send an asynchronous event interrupt to the host device based on the workload threshold (Kanno, [0089 - Controller 4 is able to report/send the measured total amount of written data for each VSSD/VM to host 2]; [0086 - Prevent data of which amount exceeds the total write amount for VSSD#1 designated by host 2 from being written into VSSD#1, thereby implying workload exceeds workload threshold. An end user of the VM which uses the VSSD#1 may request the data center operator to increase the total amount of writable data, thereby implying sending an asynchronous event interrupt to the host based on the workload threshold]),
wherein the storage controller is further configured to,
store the workload threshold (Kanno, [0152 – In Fig. 8, ‘execution time of NAND processing’ field, stores an upper limit value of process execution time of a corresponding VSSD/VM]; [0095 - The execution time of NAND processing is an upper limit value of a write operation/command or a read operation/command of NAND flash memory 5 per unit time]) for the at least one virtual machine (Kanno, [0026 – The controller maintains a threshold value for each of the virtual storage regions/VMs]; [0148 – In Fig. 8, VSSD management table 30 includes a plurality of entries corresponding to the VSSDs 51-57 created by the VSSD creation unit 21, thereby implying that VSSD 51 corresponds to a VM]);
Lee discloses,
monitor read commands or write commands received from the host device (Lee, [Fig. 4: HMB/Host Memory Buffer health table]) to count and update a workload (Lee, [0064 - In Fig. 7, step S310, HMB controller 1243/storage device controller monitors health state information of each/VM of the HMB areas/VMs according to data attributes of access requests of HMB 1120. Here, the monitoring and update is for write count/WC or read count/RC associated with each/VM of the HMB areas of HMB 1120]; [0007 - A storage controller divides a buffer area allocated from the host memory/HMB through the interface into a plurality of buffer areas/VMs]);
determine whether to send the asynchronous event interrupt (Lee, [0068 - Before critical corruption occurs, the HMB controller 1243 may, in advance, transmit the corruption prediction notification/async event to the host 1100 according to health state monitoring for each area/VM of HMB 1120]) based on the workload (Lee, [Fig. 4: Error rate/ER; Here error rate is directly tied to workload because higher workloads or read-write counts increase error rates]) at the ([See 112(b)]) non-volatile memory device (Lee, [Fig. 1: NVM 1260]; [0029 - NVM 1260 includes a non-volatile memory such as flash memory]; [0020 – In Fig. 1, storage device 1200 stores or reads data in or from NVM 1260 in response to an access request/read-or-write of host 1100]) and the workload threshold (Lee, [0065 - In Fig. 7, step S320, HMB controller 1243 checks whether at least one HMB area has a write count/WC that exceeds a write threshold value/TH_wc. Or if at least one HMB area has a read count/RC that exceeds a read threshold value/TH_rc. If an HMB area has RC or WC greater than TH_rc or TH_wc, .i.e. determination step 320 helps to determine whether to send the asynchronous event interrupt based on the workload and the workload threshold]);
send the asynchronous event interrupt to the host device (Lee, [Fig. 1: host 1100]) in response to the determination (Lee, [0042 – In Fig. 3, when a write count of an HMB area/VM of HMB 1120 is greater than a threshold value, the corruption prediction module 1244 predicts that a defect may occur in the specific HMB area at a later time/asynchronous. Based on the determination, the HMB controller 1243 may request/send asynchronous event to host 1100 to reallocate an HMB area]; [0061 – In Fig. 6, step S250, when the size of the error rate ER meets or exceeds the error rate threshold value THe, the storage controller 1240 determines that the error is uncorrectable and transmits a corruption notification to host 1100; These citations show sending a ASE to the host based on the workload and workload threshold, w/o host participation]) without a request ([See 112(b)]) from the host device (Lee, [Fig. 9: Notification Channel 1350, one-way communication from storage device to host, thereby implying no request from host]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the workload and workload threshold of Lee into the virtualization support of Kanno, for the benefit of using the storage controller of the storage device which monitors deterioration information of a first VM area of the host memory buffer and transmits a corruption prediction notification associated with the first VM area to the host based on a result of the monitoring (Lee, 0005).
As per Claim 2, the rejection of claim 1 is incorporated, and Kanno discloses,
wherein the workload includes at least one of count information of read/write commands (Kanno, [0173 - The execution-time-of-NAND-processing control unit 24 executes each command of a predetermined number/count of commands in a command group directed to VSSD#n/VM#n]), throughput of read/write operations per unit time (Kanno, [0168 – For VSSD#1, one erasure operation and 98 write operations per 1 cycle, e.g., 1 second, can be executed. Otherwise one erasure operation and 980 read operations per 1 cycle, e.g., 1 second, can be executed]), data usage rate (Kanno, [0175 - The token distribution and recovery processing is carried out to control, with respect to each individual VSSD, the rate of acquiring commands from a plurality of command queues in the memory of host 2]), number of write buffers in use of the storage controller (Kanno, [Fig. 12]), write rate (Kanno, [0102 - Controller 4 controls a rate of execution of commands in a command queue in which commands received from host 2 are stored, for each VSSD/VM]), queue depth, and a write amplification factor (WAF) of the non-volatile memory device (Kanno, [Fig. 12: write buffer#1-VSSD#1….write buffer#n-VSSD#n]).
As per Claim 3, the rejection of claim 1 is incorporated, and Kanno discloses,
wherein the storage controller (Kanno, [Fig. 1: controller 4]) is configured to decode a command received from the host device (Kanno, [0061 – In Fig. 1, host interface 11 receives various commands, such as write command, read command, VSSD/VM management command, UNMAP command etc., from host 2; Since the claim does not define ‘decode a command’, the citation is a valid interpretation]) and store the workload threshold of the at least one virtual machine (Kanno, [0178 – In Fig. 11, step S101, VSSD creation unit 21 creates VSSD 51, i.e., VSSD #1 based on the VSSD management command received first from host 2 and stores a setting parameter, which is designated by the VSSD management command for the VSSD 51, in the VSSD management table 30]; [0152 – In Figs.7-8, in ‘execution time of NAND processing’ field, an upper limit value of process execution time of a corresponding VSSD/VM is stored]; [0026 – The controller maintains a threshold value for each of the virtual storage regions/VMs]).
As per Claim 5, the rejection of claim 1 is incorporated, and Kanno discloses,
wherein the storage controller (Kanno, [Fig. 1: controller 4]) further includes processing circuitry (Kanno, [0060 - The controller 4 includes host interface 11, CPU 12, NAND interface 13, DRAM interface 14]) and at least one memory (Kanno, [Fig. 1: DRAM 6]; [0047 - Controller 4 can function as a flash translation layer/FTL; Since FTL uses DRAM to store the mapping table that translates logical block addresses to physical flash memory addresses, it thereby implies that DRAM 6 is included in controller 4]).
As per Claim 9, Kanno discloses an event reporting method for a storage device (Kanno, [Fig. 1: SSD 3]) running a plurality of virtual machines (Kanno, [0042 – In Fig. 1, controller 4 in SSD 3 includes a virtualization support mechanism for supporting storage management by host 2. The virtualization support mechanism allows a plurality of virtual servers such as the virtual machines 41,42,43,….47 to share physical resources of SSD 3 and to directly access physical resources/NVM of SSD 3]) to support multi-tenant services (Kanno, [0033 - Each of the virtual machines 41,42,43,….47 is able to function as a virtual server configured to provide various services to the corresponding client/user; Since the claim does not define ‘multi-tenant services’, the citation is a valid interpretation]),
the event reporting method (Kanno, [0064 – VSSD management command, parameters allow functions for controlling QoS of each VSSD to be provided to host 2, thereby establishing a event reporting method]) comprising:
setting, by a host device (Kanno, [0061 – In Fig. 1, host interface 11 of SSD 3 receives the VSSD/VM management command from host 2]; [0147 - Fig. 8 shows a VSSD management table 30]), a workload threshold for each of the plurality of virtual machines on the storage device (Kanno, [0026 – The controller maintains a threshold value for each of the virtual storage regions/VMs]; [0152 – In Fig. 8, ‘execution time of NAND processing’ field, stores an upper limit value of process execution time of a corresponding VSSD/VM]; [0095 - The execution time of NAND processing is an upper limit value of a write operation/command or a read operation/command of NAND flash memory 5 per unit time]);
Lee discloses,
monitoring, by a storage controller of the storage device (Lee, [Fig. 1: storage controller 1240]; [Fig. 1: storage device 1200]), a workload of each of the plurality of virtual machines at a non-volatile memory device ([See 112(a)]) of the storage device (Lee, [Fig. 1: NVM 1260]; [0029 - NVM 1260 includes a non-volatile memory such as flash memory]; [0020 – In Fig. 1, storage device 1200 stores or reads data in or from NVM 1260 in response to an access request/read-or-write of host 1100]) by counting read commands or write commands sent to the storage device (Lee, [0064 - In Fig. 7, step S310, HMB controller 1243/storage device controller monitors health state information of each/VM of the HMB areas/VMs according to data attributes of access requests of HMB 1120. Here, the monitoring is for write count/WC or read count/RC associated with each/VM of the HMB areas of HMB 1120]; [0007 - A storage controller divides a buffer area allocated from the host memory/HMB through the interface into a plurality of buffer areas/VMs]);
and sending an asynchronous event interrupt for at least one of the plurality of virtual machines to the host device (Lee, [0068 - Before critical corruption occurs, the HMB controller 1243 may, in advance, transmit the corruption prediction notification/async event to the host 1100 according to health state monitoring for each area/VM of HMB 1120]) without receiving a request from the host device (Lee, [Fig. 9: Notification Channel 1350, one-way communication from storage device to host, thereby implying no request from host]) when the at least one of the plurality of virtual machines exceeds the workload threshold (Lee, [0065 - In Fig. 7, step S320, HMB controller 1243 checks whether at least one HMB area has a write count/WC that exceeds a write threshold value/TH_wc. Or if at least one HMB area has a read count/RC that exceeds a read threshold value/TH_rc. If an HMB area in the controller has RC or WC greater than TH_rc or TH_wc, the asynchronous event interrupt is sent to the host]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the workload and workload threshold of Lee into the virtualization support of Kanno, for the benefit of using the storage controller of the storage device which monitors deterioration information of a first VM area of the host memory buffer and transmits a corruption prediction notification associated with the first VM area to the host based on a result of the monitoring (Lee, 0005).
As per Claim 10, it is similar to claim 2 and therefore the same rejections are incorporated.
As per Claim 13, the rejection of claim 9 is incorporated, and Kanno, Lee disclose,
wherein the monitoring of the workload of each of the plurality of virtual machines (Lee, [0023 - HMB 1120 is allocated to allow storage device 1200 to use the host memory 1130 as a buffer. Storage device 1200 divides HMB 1120 into areas/VMs]; [0064 - In Fig. 7, step S310, HMB controller 1243 monitors health state information of each of the HMB areas/VMs according to data attributes with reference to access requests/read or write commands of HMB 1120]), comprises:
storing and updating count values of the read command or the write command for each of the plurality of virtual machines (Lee, [Fig. 4]; [0047 - Health state for each area includes a write count and a read count of each area]; [0042 - The corruption prediction module 1244 continuously monitors an error rate of data read from HMB 1120 or a read count or a write count, and updates a monitoring result in the HMB health state table 1246]);
determining (Lee, [Fig. 7: step S320, RC > TH_rc or RC > TH_wc ?]) whether to send the asynchronous event interrupt (Lee, [0066 – In Fig. 7, if determination step S320 is Yes, then in step S330, HMB controller 1243 transmits a corruption prediction notification associated with the specific HMB area/VM to host 1100]) based on the count values per unit time and the workload thresholds of each of the plurality of virtual machines (Lee, [0065 – In Fig. 7, step S320, HMB controller 1243 checks whether if HMB area has a write count WC that exceeds a write threshold value TH_wc. Or, HMB controller 1243 checks whether at least one HMB area has a read count RC that exceeds a read threshold value TH_rc]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the workload and workload threshold of Lee into the virtualization support of Kanno, for the benefit of using the storage controller of the storage device which monitors deterioration information of a first VM area of the host memory buffer and transmits a corruption prediction notification associated with the first VM area to the host based on a result of the monitoring (Lee, 0005).
Claims 6-7, 11-12 are rejected under AIA 35 U.S.C. 103(a) as being unpatentable over Kanno (20210200442) in view of Lee et al (20200151040) and Yun et al (20180039578).
As per Claim 6, the rejection of claim 3 is incorporated, and Kanno, Lee disclose a read command, a write command and a VSSD management command.
However Yun further discloses,
wherein the command includes at least one of a read command, a write command (Yun, [0057 - In Fig. 3, step S121, host 410 transmits a command and an address to controller 431, thereby implying a read or write command]), and a set feature command for controlling the storage controller (Yun, [0109 – In Fig. 12, step S710, controller 331 receives a set feature command from host 310]; [0116 – In Fig. 15, if a feature identifier is OEh, set feature information includes information about a threshold value, thereby providing information to control the controller]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the set feature command of Yun into the virtualization support of Kanno, Lee, for the benefit of providing monitoring information to the controller (Yun, Para-0116).
As per Claim 7, the rejection of claim 6 is incorporated, and Kanno discloses,
wherein the set feature command (Kanno, [0126 - Fig. 7 shows VSSD management command. Fig. 8 shows VSSD management table; Since the claim does not define ‘set feature command’ or its format, the citation is a valid interpretation]) includes a first field specifying the at least one virtual machine (Kanno, [0149 - In Fig. 8, the ‘VSSD ID’ field is an identifier of a corresponding stored VSSD]), a second field specifying a type of the workload (Kanno, [0076 – When host 2 requests creation of a VSSD for a VM which handles hot data, which is a type of data frequently updated, host 2 also designates a large volume of the total amount of writable data]; [0155 - In Fig. 8, in the ‘total amount of write-requested-data’ field, an upper limit value of a total amount of data capable of being written into a corresponding VSSD by host 2 is stored]), and a third field specifying a value of the workload threshold (Kanno, [0152 - In Fig. 8, in ‘execution time of NAND processing’ field, an upper limit value of process execution time of a corresponding VSSD is stored]).
As per Claim 11, the rejection of claim 9 is incorporated, and Kanno, Lee disclose that the controller is configured to divide a buffer area allocated from the host memory/HMB into a plurality of buffer areas/VMs.
Yun further discloses,
wherein the setting of the workload threshold (Yun, [Fig. 15]) comprises:
sending, by the host device, the workload threshold of each of the plurality of virtual machines (Yun, [Fig. 4]) to the storage device through a set feature command (Yun, [0109 - In Fig. 12, step S710, controller 331 receives a set feature command from host 310]);
and decoding the set feature command to store the workload threshold of each of the plurality of virtual machines (Yun, [0116 - In Fig. 15, when a feature identifier is OEh, set feature information includes information about a threshold value. This information is used in the operation of Fig. 4 and operation S710 of Fig. 12; In Fig. 4, controller divides the buffer allocated from the host memory/HMB into virtual areas/VMs]) in a non-volatile memory (Yun, [0025 – In Fig. 1, storage device 130 includes controller 131 and a plurality of NAND flash memories, 133a….133d]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the set feature command of Yun into the virtualization support of Kanno, Lee, for the benefit of providing monitoring information to the controller (Yun, Para-0116).
As per Claim 12, it is similar to claim 7 and therefore the same rejections are incorporated.
Claims 8, 14-15 are rejected under AIA 35 U.S.C. 103(a) as being unpatentable over Kanno (20210200442) in view of Lee et al (20200151040) and Kern (20110258621).
As per Claim 8, the rejection of claim 1 is incorporated, and Kanno, Lee disclose multi-tenant services.
Kern further discloses,
wherein the at least one virtual machine (Kern, [0030 - In deploying the instance of VM 102, the cloud computing environment executes a data processing workload on the instance of the VM. The workload is executed through application 132 installed as a component of the instance of VM 102. The workload is a request/response service provided to cloud clients 119/host by accepting connections through network 100 in order to service requests from users by sending back responses; Here VM 102 is running on cloud computer 110/storage device]) corresponds to a user of a multi-tenant service (Kern, [0018 – A ‘cloud computer’ is a multi-user computer that provides a service, e.g. database access, file transfer, remote access or resources, e.g. file space, over a network]; [0012 - Examples of cloud computing services include SaaS and PaaS. In SaaS, a provider licenses an application to customers for use as a service on demand]),
the workload threshold (Kern, [0029 - Flagging an instance of a VM for autonomic scaling includes storing, in the cloud operating system in association with an identifier of the VM instance, predetermined threshold values of operating characteristics, including threshold values for processor utilization and for memory utilization; Higher utilization leads to higher throughput for a period of time because when a CPU is actively engaged in processing tasks, it's contributing to completing work and thus increasing the overall throughput of the system]) corresponds to an upper limit of throughput per unit time corresponding to a rate plan to which the user subscribes (Kern, [0014 - Utility computing is the practice of charging for cloud services like utilities, by units of time, work, or resources provided. A cloud utility provider can charge cloud clients for providing for a period of time certain quantities of memory, I/O support in units of bytes transferred/throughput, or CPU functions in units of CPU clock cycles utilized]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the autonomic scaling of VMs of Kern into the virtualization support of Kanno, Lee for the benefit of utilizing scaling as a desirable feature of a cloud computing environment in which the environment gracefully handles varying workloads, either increasing or decreasing (Kern, 0010).
As per Claim 14, it is similar to claim 8 and therefore the same rejections are incorporated.
As per Claim 15, the rejection of claim 14 is incorporated, and Kanno discloses,
proposing, by the host device, a rate plan change to the user (Kanno, [0076 - The data center operator may charge a more expensive VSSD utilization charge, e.g., in the form of an increased rental fee, to an end user who requests a VSSD having a large volume of the total amount of writable data, that is, a VSSD for which a large volume of the total write amount is permitted]) in response to the asynchronous event interrupt (Kanno, [0064 - The VSSD management command includes various parameters for providing a VSSD suitable for storage requirements of an individual user to a VM. These parameters allow functions for controlling QoS of each VSSD to be provided to host 2]).
Kern clarifies,
proposing, by the host device, a rate plan change to the user (Kern, [Fig. 4, step 332]) in response to the asynchronous event interrupt (Kern, [0049 - deploying, in step 332, by the cloud operating system, an additional instance 104 of the VM if a value of an operating characteristic exceeds a first predetermined threshold value]; [0014 - A cloud utility provider/host can charge cloud clients for providing for a period of time certain quantities of memory, I/O support in units of bytes transferred, or CPU functions in units of CPU clock cycles utilized]).
Therefore it would have been obvious to a person of ordinary skill at the time of filing to incorporate the autonomic scaling of VMs of Kern, Lee into the virtualization support of Kanno, Lee for the benefit of utilizing scaling as a desirable feature of a cloud computing environment in which the environment gracefully handles varying workloads, either increasing or decreasing (Kern, 0010).
Response to Arguments
The Applicant's arguments filed on November 06, 2025 have been fully considered, but they are not persuasive. In order to overcome the prior art, the amendments recite incorrect, inconsistent and/or unsupported subject matter.
Applicant argues: ‘Claim 1 as amended recites, inter alia, "determine whether to send the asynchronous event….workload threshold," and "send the asynchronous event…..in response to the determination without a request from the host device."’ (Rem, Pg. 9)
Response: The amendments have numerous issues. Please see the related 112(b)’s.
The combination of Kanno, Lee wherein Lee discloses both amendments. Please see O/A. That said, the spec does not provide adequate written description support for ‘determine whether to send the ASE based on the workload and the workload threshold’. Hence the 112(b).
Regarding the amendment, ‘send the asynchronous event…..without a request from the host device’, it lacks patentable weight.
It is well known in the prior art that ‘event reporting’ between host and controller of storage device requires communication that aims to synchronize, and agree on parameters before data flows, ensuring both sides are ready for event reporting. But the claim does not recite any such communication. According to the spec, the controller detects a condition and just sends the asynchronous event to the host. See at least Fig. 6. Host readiness, participation and input are ignored. The spec recites one-way communication from controller to host, at all times.
The amendment recites overly broad functional language such as ‘without a request from the host’, to cover an entire field of technology. But the spec does not provide adequate structural details/steps about ‘event reporting’ to support the limitation.
Applicant argues: Lee, however, does not disclose or suggest "determin[ing] whether to send the asynchronous event…. based on the workload
Response: The amendment recites a hypothetical limitation. Please see the 112(b).
An example of workload monitoring at the controller based on workload threshold and r/w commands sent to the storage device, is shown in spec, Fig. 6, step S130 onwards, and corresponding Paras:0072-0075. As shown in the spec, there is no recitation of monitoring ‘workload at the NVM device’. None of the spec figures and their embodiments provide any written description support for ‘workload at the NVM device’. The r/w commands reach the controller first where the workload related measurements are made. The NVM device 1230 only stores the data associated with the r/w commands.
However, the combination of Kanno, Lee wherein Lee discloses the amendment, as required by the spec. Please see O/A.
Claim 9 has a similar issue as it recites, ‘monitoring, by a storage controller…., a workload of each of the plurality of virtual machines at a non-volatile memory device of the storage device’. Workload and workload threshold are values that are monitored, measured and stored at the controller. As spec, Fig. 6 shows, the NVM device is not associated with workload and/or workload threshold. Therefore ‘monitoring….a workload of each of the plurality of virtual machines at a non-volatile memory device of the storage device’ is unknown and unsupported.
Claim 9 does not recite how ‘a workload of each of the plurality of virtual machines at a non-volatile memory device’, is represented in the NVM.
With reference to spec, Fig. 3, a ‘namespace’ in Non-Volatile Memory Express/NVMe devices (not claimed), is a logical volume that abstracts the physical media. The Fig. 3 ‘namespaces’ (namespace_1….etc.), allow one drive to act as separate storage units for data associated with host originated r/w commands from different VMs-users, at the host. More importantly, the spec does not recite that the Fig. 3 ‘namespace(s)’ are associated with ‘workload’ and/or ‘workload threshold’.
The claim 9 amendment lacks written description support in the spec. It shifts the monitoring, measurement and storage of workload, from the controller to the NVM device, thereby introducing new function and new matter. Please see related 112(a).
Examiner Notes
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
1.’Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same’, Samsung, US20170024132A1, Jun et al.
See Figs. 1-3. As per Para-0057, host memory 1140/host memory buffer/HMB may be used as a working memory associated with the physical function 1110-a or each of the virtual functions/VMs 1111 to 111n. And as per Para-0065, the host memory 1140 may provide a queue command storage area for supporting virtual functions/VMs. Fig. 3 shows how storage controller 2210 divides a buffer area allocated from the host memory/HMB through the host interface into a plurality of buffer areas/VMs.
2.’Computing systems including storage devices controlled by hosts’, Samsung, US20180088841A1, Ma et al.
Discusses event reporting between host and storage device in sufficient detail. As per Para-0006, the storage device may include a nonvolatile memory, and the host may control the storage device based on a physical address of the nonvolatile memory. The host may send an asynchronous event request command to the storage device. The storage device may monitor the nonvolatile memory and may send an asynchronous event request corresponding to the asynchronous event request command to the host based on the monitoring result. The asynchronous event request may include requesting another command from the host based on the monitoring result.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ARVIND TALUKDAR whose telephone number is (303)297-4475. The examiner can normally be reached M-F, 10 am-6pm EST.
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, Hosain Alam can be reached at 571-272-3978. 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.
Arvind Talukdar
Primary Examiner
Art Unit 2132
/ARVIND TALUKDAR/Primary Examiner, Art Unit 2132