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 .
DETAILED ACTION
As per the instant application having Application No. 17/812,461, the amendment filed on 5/12/2026 is herein acknowledged. Claims 1, 8-9 and 16-17 have been amended. Claims 11-15 have been withdrawn from consideration. Claims 1-10 and 16-20 are pending.
In response to this Office action, the Examiner respectfully requests that support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line numbers in the specification and/or drawing figure(s). This will assist the Examiner in prosecuting this application.
Examiner cites columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified 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 fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by prior art or disclosed by the examiner.
ACKNOWLEDGEMENT OF REFERENCES CITED BY APPLICANT
As required by M.P.E.P. 609(C), the applicant’s submission of the Information Disclosure Statement(s) dated 7/30/2026 is/are acknowledged by the examiner and the cited references have been considered in the examination of the claims now pending. As required by M.P.E.P 609 C(2), a copy (copies) of the PTOL-1449(s) initialed and dated by the examiner is/are attached to the instant office action.
REJECTIONS NOT BASED ON PRIOR ART
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 17 is 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.
As per claim 17, the limitations “performing machine learning through each of a plurality of learning models to infer a responding relational expression” render the claim indefinite since it is not clear what the limitations a “responding relation expression” refers to. The terms “responding relational expression” have not defined in Applicant’s Specification. It appears that the limitations in question might refer to corresponding relational expression, see par. 0064 of (US 20230073239 ), which corresponds to the Specification of the instant Application. Appropriate clarification/correction is required.
REJECTIONS BASED ON PRIOR ART
Claim Rejections - 35 USC § 103
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 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.
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 of this title, 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-10 are rejected under 35 U.S.C. 103 as being unpatentable over Kale et al. (US 2021/0255799) in view of Idicula et al. (US 11061902) and Zalivaka et al. (US 2022/0326876).
1. A method of operating a storage device, comprising: receiving a learning request for learning a new parameter value for a parameter; [Kale teaches “the ANN can be trained using a supervised learning technique to refine or establish a prediction model.” (par. 0045) “[0046] For example, the current operating parameters of the vehicle, applications, and/or the data storage device can be provided as input to the ANN to derive the predicted workload for the subsequent time period, the preferred cache scheme, the optimized background maintenance schedule, and the preferred performance throttling within the time period. Subsequent changes in the performance and temperature of the data storage device can be measured as a result of changing in caching/buffering aspects, in the timing and frequency of background maintenance processes, and/or in the performance throttling. The measurements of performance, temperature, and the implemented parameters of caching/buffering, background maintenance processes, and the performance throttling pattern within in period of time can be used input data in machine learning to improve the predictive capability of the ANN.”] but does not expressly disclose receiving a learning request
evaluating a performance of a workload based on a current parameter value of the parameter to generate performance metrics; [Kale teaches “[0064]… the workload of the data storage device (112) can be determined from the patterns in the input/output data streams (103 and 109). The operating condition can be used to predict the optimized parameters and configurations of buffering/caching (106) and the optimized timing and frequency of background maintenance operations (e.g., 107 and 108).”]
performing machine learning,… in response to the learning request to infer a plurality of relational expressions between the parameter and the performance metrics, based on performance evaluation information according to a performance evaluation of the workload; [Kale taches “[0050] The data storage device (112) stores a model of an Artificial Neural Network (ANN) (125). The inference engine (101) uses the ANN (125) to predict parameters and configurations of operations of the data storage device (112), such as buffering/caching (106), garbage collection (107), wear leveling (108), predicted operations in the queue (110), etc. to optimize the measured performance of the data storage device (112) and to keep the temperature as measured by the temperature sensor (102) within a predetermined range.” (see pars. 0054, 0181, 0195) where the learning operations are performed based on the storage device workload (see par. 0064 citation above)] but does not expressly disclose the learning through a plurality of learning models… wherein the plurality of learning models respectively corresponds to the plurality of relational expressions;
deriving the new parameter value based on the inferred plurality of relational expressions; and applying the new parameter value to a firmware algorithm [Kale teaches “[0054] Further, the controller (151) can perform background maintenance operations, such as garbage collection (107), wear leveling (108), etc. The timing and frequency of the background maintenance operations can impact the performance of the data storage device (112). The inference engine (101) uses the ANN (125) to determine the timing and frequency of the maintenance operations (e.g., 107, 108) to optimize the performance measured for the data storage device (112), based on the patterns in the input data stream (103) and/or the output data stream (109).”] where the new parameters or timing and frequency for maintenance operations are applied to the software or firmware operating the memory device, note that Kale teaches [“memory (135) storing firmware (or software) (147),” (par. 0077) “ hardwired circuitry may be used in combination with software instructions to implement the techniques.” (par. 0222)] but Kale does not expressly refer to applying the new parameter value to a firmware algorithm.
With respect to the limitations receiving a learning request … the learning through a plurality of learning models… wherein the plurality of learning models respectively corresponds to the plurality of relational expressions, deriving the new parameter value based on the inferred plurality of relational expressions teaches [Idicula teaches “According to an embodiment, ML service 150 determines to tune configuration parameters, using previously-trained AC-ML models, for a database workload 160 being managed by a DBMS running on a server device 118. This determination may be based on an explicit request to automatically tune the configuration of the DBMS to optimize its performance with respect to workload 160. According to an embodiment in which workload 160 is an unknown workload at the time of the request, the user submits, with the request, a sample of workload 160 to facilitate customized configuration parameter tuning. ML service 150 extracts one or more WSFs, from the sample workload, in order to characterize workload 160 for parameter optimization. According to an embodiment, this workload sample is also added to a data store that stores a set of workloads that are available to ML service 150 for training data generation framework-initiated experiments described in further detail below.” (col. 5, line 62-col. 6, line 12) where “Embodiments implement a prediction-driven, rather than a trial-driven, approach to automate database configuration parameter tuning for a given database workload. This prediction-driven approach involves using machine learning (ML) models to test performance metrics resulting from application of particular database parameters to a database workload, and does not require live trials on the database management system (DBMS) managing the workload. Specifically, one or more automatic configuration machine learning (AC-ML) models are trained using a detailed training corpus that includes information from workloads being run by DBMSs having a variety of configuration parameter values. The AC-ML models are trained to predict performance metrics based on workload features and configuration parameter values… the trained AC-ML models are used as proxies for applying different sets of configuration parameter values to database management systems running particular database workloads. Specifically, the trained AC-ML models predict performance metrics resulting from applying particular configuration parameter values to particular database workloads. Based on correlating changes to configuration parameter values with changes in predicted performance metrics, one or more trained AC-ML models are used to converge to an optimal set of configuration parameters that optimizes predicted database performance for workloads.” (col. 3, lines 17-43) “Different optimization strategies can be used to converge to an optimal set of CSFs for workload 160 based on (a) changing CSFs used to identify predicted performance metrics from the AC-ML models, and (b) observing the resulting changes to the predicted throughput performance metrics. For example, random search, grid search, and Bayesian optimization are all candidate optimization strategies that can be used by ML service 150 to converge to a set of CSFs that result in optimal predicted throughput performance for workload 160.” (col. 7, lines 49-58) (See fig. 2 and related text)].
Kale and Idicula are analogous art because they are from the same field of endeavor of memory access and control as well as optimizing machine learning.
Before the effective filing date of the claimed inventions, it would have been obvious to a person of ordinary skill in the art to modify Kale to include the receiving a learning request… learning… the learning through a plurality of learning models… wherein the plurality of learning models respectively corresponds to the plurality of relational expressions, deriving the new parameter value based on the inferred plurality of relational expressions as taught by Idicula since doing so would provide the benefits of [“Embodiments improve database performance through automatically tuning a wide range of parameters in various database components. Different database components generally have a very different performance characteristics hidden in different training data features. Different machine learning models provide different ways to model those performance characteristics. As such, flexibility in model selection allows the system to automatically evaluate the effectiveness of various models on prediction accuracy and efficiency for the various different kinds of data being modeled.” (col. 23, lines 19-29)].
The combination of Kale and Idicula does not expressly disclose applying the new parameter value to a firmware algorithm; however, regarding these limitations, Zalivaka teaches [“[0112] The recurrent neural network coder 500 may operate in a training mode or an inference mode. In an initial stage (i.e., the training mode), the recurrent neural network coder 500 may be trained using a data set of possible workload types covering typical drive operation scenarios. Then weight matrices of the model associated with the recurrent neural network coder 500 and compact representations of typical workloads may be stored in a storage (e.g., a DRAM) or a memory device (e.g., NAND). The training mode may be performed offline using an external compute engine. In the inference mode, the recurrent neural network coder 500 may process input workload using the weight matrices. Essential FW parameters (e.g., garbage collection algorithm, read voltage thresholds, error correction schemes, etc.) may be changed based on compact workload representation and FW state (e.g., the value of counters, used over-provisioning memory, the number of bad blocks, etc.). The self-testing algorithm may be based on the generation of compact workload vectors and transforming them into the commands internally in the controller. As a result, the low-dimensional space of the compact workloads representation may be covered with a better diversity.”].
Kale, Idicula and Zalivaka are analogous art because they are from the same field of endeavor of memory access and control as well as optimizing machine learning.
Before the effective filing date of the claimed inventions, it would have been obvious to a person of ordinary skill in the art to modify the combination of Kale and Idicula to include applying the new parameter value to a firmware algorithm as taught by Zalivaka, which may include maintenance operation parameter such as those taught by Kale since doing would provide the benefits of [“ In an embodiment, a memory controller may be capable of being aware of input workloads based on a compact representation for input workloads in a memory system (e.g., SSD such as NAND flash memory devices) and may perform an operation (i.e., tuning of firmware parameters) in order to optimize its performance.” (par. 0142)].
Therefore, it would have been obvious to combine Kale, Idicula and Zalivaka for the benefit of creating a storage system/method to obtain the invention as specified in claim 1.
2. The method of claim 1, wherein the parameter is one of a write throttling latency and a garbage collection to write ratio [Kale teaches “For example, the ANN can be configured to predict the combination of a caching/buffering implementation and the timing and frequency of garbage collection and wear leveling such that the performance of the data storage device is optimized for a subsequent time period of operations without the temperature of the data storage device reaching a threshold.” (par. 0042; see pars. 0054, 0181, 0203). Zalivaka teaches “Essential FW parameters (e.g., garbage collection algorithm, read voltage thresholds, error correction schemes, etc.) may be changed based on compact workload representation and FW state (e.g., the value of counters, used over-provisioning memory, the number of bad blocks, etc.).” (par. 0112) “[0128] Referring back to FIG. 11, the controller 100 may provide tuning of FW parameters (e.g., garbage collection intensity) and drive self-testing using the encoder 1120 and the decoder 1130, respectively… [0130] Two typical workloads may be read-intensive and write-intensive. For these types of workloads, the flash translation layer 1110 may store two compact 5-dimensional (d=5) vectors: R.sub.1=(0.0617, −0.0981, 0.1380, 0.0215, 0.2057) and R.sub.2=(0.0029, −0.0038, −0.0013, −0.0014, 0.0052) correspondingly. For example, in the case of read-intensive workloads, garbage collection (GC) intensity may be set to the maximal level, whereas in the case of write-intensive workloads, the GC intensity may be set to the minimal level.”].
3. The method of claim 1, further comprising entering a learning mode in response to the learning request [Idicula teaches “According to an embodiment, ML service 150 determines to tune configuration parameters, using previously-trained AC-ML models, for a database workload 160 being managed by a DBMS running on a server device 118. This determination may be based on an explicit request to automatically tune the configuration of the DBMS to optimize its performance with respect to workload 160. According to an embodiment in which workload 160 is an unknown workload at the time of the request, the user submits, with the request, a sample of workload 160 to facilitate customized configuration parameter tuning. ML service 150 extracts one or more WSFs, from the sample workload, in order to characterize workload 160 for parameter optimization. According to an embodiment, this workload sample is also added to a data store that stores a set of workloads that are available to ML service 150 for training data generation framework-initiated experiments described in further detail below.” (col. 5, line 62-col. 6, line 12)].
4. The method of claim 1, wherein the plurality of learning models include at least two of a throughput-related model, a write Quality of service (QoS)-related model, a read QoS-related model, and a reliability-related model [Kale teaches “[0042] An Artificial Neuron Network (ANN) (e.g., Spiking Neural Network (SNN), Convolutional Neural Network (CNN), Recurrent Neural Network (RNN)) can be configured to predict, for the current operating condition of the data storage device, the configurations of the caching/buffering and background maintenance processes to optimize the performance of the data storage device while keeping the temperature of the data storage device within a safe range.” Idicula teaches “At step 204 of flowchart 200, based, at least in part, on the one or more workload-specific features of the particular database workload, a particular set of configuration-specific features are identified, using one or more trained machine learning models, for the particular database workload to optimize one or more performance metrics. For example, a user for workload 160 provides instructions to optimize workload 160 (running on server device 118) over a particular performance metric, such as a throughput performance metric. ML service 150 identifies a particular trained AC-ML model that is specific to the DBMS running on server device 118, to the type of hardware used in server device 118, and to the indicated throughput performance metric. ML service 150 performs inference over the identified AC-ML model to determine different predicted throughput performance metrics for workload 160 based on (a) the WSFs for workload 160, and (b) a plurality of potential sets of CSFs.” (col. 7, lines 31-48). Zalivaka teaches “As such, it is necessary to provide a scheme to make an FTL aware of input workloads and optimize its performance based on the awareness of input workloads. Accordingly, embodiments provide a scheme for a compact representation of input workloads in a memory system (e.g., SSD such as NAND flash memory devices) and a memory controller capable of being aware of input workloads based on a compact representation for input workloads. Thus, embodiments may optimize performance and/or reliability of a memory system.” (par. 0065)].
5. The method of claim 1, wherein the workload is a combination of host-queue-depth and read-write-mixed Ratio [Kale teaches “[0034] For example, an artificial neural network (e.g., a spiking neural network) can be used to monitor various aspects of the data storage device, such as temperature, pending operations in the queue of the data storage device, operation conditions of the data storage device that can be indicative of the workload of the data storage device in a subsequent time period.” Zalivaka teaches “[0101] The data set has 9 types (100 samples each) of workloads which are generated based on two parameters: queue depth (QD) and read/write ratio (RWR) which represents the ratio of read and write commands in the workload. All workloads are random and 9 workload types are shown in List2:”].
6. The method of claim 1, further comprising storing the performance evaluation information according to a performance evaluation of the workload [Kale teaches “[0064]… the workload of the data storage device (112) can be determined from the patterns in the input/output data streams (103 and 109). The operating condition can be used to predict the optimized parameters and configurations of buffering/caching (106) and the optimized timing and frequency of background maintenance operations (e.g., 107 and 108).”].
7. The method of claim 6, wherein the storing of the performance evaluation information includes storing the firmware algorithm, a parameter set, and the performance metrics in a form of a table [Kale teaches “[0054] Further, the controller (151) can perform background maintenance operations, such as garbage collection (107), wear leveling (108), etc. The timing and frequency of the background maintenance operations can impact the performance of the data storage device (112). The inference engine (101) uses the ANN (125) to determine the timing and frequency of the maintenance operations (e.g., 107, 108) to optimize the performance measured for the data storage device (112), based on the patterns in the input data stream (103) and/or the output data stream (109)…[0055] Further, the controller (151) can throttle performance of the operations requested in the queue (110) and/or the background maintenance operations (e.g., 107, 108). For example, the controller (151) can perform operations at a reduced clock to spread the heat generated by operations over a longer period of time. For example, the controller (151) can periodically enter an idle state to such that operations are performed over a period of time longer than the duration of performing the operations without entering the idle state. For example, the controller (151) can idle a period of time to cool down and then perform the operations with high performance without idling. The ANN (125) can be used to predict a preferred throttling scheme to keep the temperature measured by the temperature sensor (102) within a predefined range, while maximizing the average performance of the data storage device (112) over a period of time… [0064]… the workload of the data storage device (112) can be determined from the patterns in the input/output data streams (103 and 109). The operating condition can be used to predict the optimized parameters and configurations of buffering/caching (106) and the optimized timing and frequency of background maintenance operations (e.g., 107 and 108).” Zalivaka teaches “[0142] As described above, embodiments provide a scheme to use a compact representation vector associated with input workloads. In an embodiment, a memory controller may be capable of being aware of input workloads based on a compact representation for input workloads in a memory system (e.g., SSD such as NAND flash memory devices) and may perform an operation (i.e., tuning of firmware parameters) in order to optimize its performance. In another embodiment, a test of a memory system (e.g., SSD test) may be performed with a much smaller test vector space.” (see par. 0112)]. Idicula teaches [“Thus, according to an embodiment, prior to training the AC-ML models, ML service 150 uses machine learning techniques to identify a set of impactful configuration parameters, which affect workload performance metrics. Specifically, ML service 150 trains one or more configuration parameter evaluation machine learning (CPE-ML) models, over a similar (or the same) training corpus as is used to train the AC-ML models, to identify which configuration parameters affect one or more performance metrics. According to an embodiment, once ML service 150 performs inference over the trained CPE-ML models for every possible configuration parameter to determine which configuration parameters affect performance metrics, ML service 150 maintains the information identifying the impactful configuration parameters, e.g., in a database table.” (col. 9, line 63 – col. 10, line 10)]. It would have been obvious to modify Kale and Zalivaka to store the information for the learning system such as firmware parameters, parameter set and performance metrics in a table, as taught by Idicula, since doing so would provide the benefits of facilitating access to the learned information as well as facilitating optimization strategies for machine learning that result in optimal predicted throughput performance for a workload (col. 7, lines 49-58).
8. The method of claim 6, wherein the performing of the machine learning includes inferring the plurality of relational expressions using the plurality of learning models and the performance evaluation information [Kale teaches “[0073] A portion of the ANN (125) responsible for the processing of input from the sensors (122) can be configured in the data storage device (112). The inference engine (101) of the data storage device (112) processes the inputs from the sensors (122) to generate the inference results transmitted from the data storage device (112) to the ADAS (128). Based on the input from the sensors (122) and/or the inference results to the ADAS (128), the inference engine (101) data storage device (112) can generate inference results to optimize the performance of the data storage device (112) in processing the input data stream (103) and the output data stream (109), by adjusting the operations of buffering/caching (106), garbage collection (107), wear leveling (108), etc.” (see pars. 0050, 0054, 0056). Idicula teaches “Embodiments implement a prediction-driven, rather than a trial-driven, approach to automate database configuration parameter tuning for a given database workload. This prediction-driven approach involves using machine learning (ML) models to test performance metrics resulting from application of particular database parameters to a database workload, and does not require live trials on the database management system (DBMS) managing the workload. Specifically, one or more automatic configuration machine learning (AC-ML) models are trained using a detailed training corpus that includes information from workloads being run by DBMSs having a variety of configuration parameter values. The AC-ML models are trained to predict performance metrics based on workload features and configuration parameter values… the trained AC-ML models are used as proxies for applying different sets of configuration parameter values to database management systems running particular database workloads. Specifically, the trained AC-ML models predict performance metrics resulting from applying particular configuration parameter values to particular database workloads. Based on correlating changes to configuration parameter values with changes in predicted performance metrics, one or more trained AC-ML models are used to converge to an optimal set of configuration parameters that optimizes predicted database performance for workloads.” (col. 3, lines 17-43). See fig. 2 and related text. Zalivaka teaches “[0142] As described above, embodiments provide a scheme to use a compact representation vector associated with input workloads. In an embodiment, a memory controller may be capable of being aware of input workloads based on a compact representation for input workloads in a memory system (e.g., SSD such as NAND flash memory devices) and may perform an operation (i.e., tuning of firmware parameters) in order to optimize its performance. In another embodiment, a test of a memory system (e.g., SSD test) may be performed with a much smaller test vector space.”].
9. The method of claim 1, wherein the deriving of the new parameter includes deriving the new parameter value from the inferred relational expressions using a Bayesian optimization scheme [Idicula teaches “Different optimization strategies can be used to converge to an optimal set of CSFs for workload 160 based on (a) changing CSFs used to identify predicted performance metrics from the AC-ML models, and (b) observing the resulting changes to the predicted throughput performance metrics. For example, random search, grid search, and Bayesian optimization are all candidate optimization strategies that can be used by ML service 150 to converge to a set of CSFs that result in optimal predicted throughput performance for workload 160. “ (col. 7, lines 49-58). “Classes of problems that machine learning excels at include clustering, classification, regression, anomaly detection, prediction, and dimensionality reduction (i.e. simplification). Examples of machine learning algorithms include decision trees, support vector machines (SVM), Bayesian networks, stochastic algorithms such as genetic algorithms (GA), and connectionist topologies such as artificial neural networks (ANN).” (col. 16, lines 13-20)].
10. The method of claim 1, wherein the deriving of the new parameter value is repeated a predetermined number of times [Kale teaches “[0038] For example, an Artificial Neuron Network (ANN) (e.g., a Spiking Neural Network (SNN), a Convolutional Neural Network (CNN), a Recurrent Neural Network (RNN), or any combination thereof) can be configured to predict data changes and/or movements to be implemented in the data storage device and thus predict future power/temperature based on access patterns (e.g., read/write), access frequency, address locations, chunk sizes, operation conditions/environment, etc. Intelligent throttling of data storage activities can improve user experiences by avoiding rigidly-forced throttling of performance of the data storage device, which can be a result of temperature exceeding a threshold.” (see par. 0064). Idicula teaches “In supervised training, training data is used by a supervised training algorithm to train a machine learning model. The training data includes input and a “known” output. In an embodiment, the supervised training algorithm is an iterative procedure. In each iteration, the machine learning algorithm applies the model artifact and the input to generate a predicated output. An error or variance between the predicated output and the known output is calculated using an objective function. In effect, the output of the objective function indicates the accuracy of the machine learning model based on the particular state of the model artifact in the iteration. By applying an optimization algorithm based on the objective function, the theta values of the model artifact are adjusted. An example of an optimization algorithm is gradient descent. The iterations may be repeated until a desired accuracy is achieved or some other criteria is met.” (col. 15, line 55-col. 16, line 4). Zalivaka teaches “[0089] The model of the RNN coder in FIG. 7 may be trained using a data set containing M workloads, which may have different characteristics. The training process may tune weighting matrices W.sup.e.sub.X, W.sup.e.sub.h, W.sup.e.sub.Y, W.sup.d.sub.X, W.sup.d.sub.h, W.sup.d.sub.Y such that the difference between the source workload (C.sub.1, C.sub.2, . . . , C.sub.N) and the recovered workload (Ĉ.sub.1, Ĉ.sub.2, . . . , Ĉ.sub.N) is minimized. Different optimization algorithms such as Gradient descent, RMSProp, Adam, etc. may be used in the training process. The model may have two hyperparameters N and d. N represents the number of RBs in the encoder and decoder and d represents the dimension of target compact workload representation vector R.” “[0112] The recurrent neural network coder 500 may operate in a training mode or an inference mode. In an initial stage (i.e., the training mode), the recurrent neural network coder 500 may be trained using a data set of possible workload types covering typical drive operation scenarios. Then weight matrices of the model associated with the recurrent neural network coder 500 and compact representations of typical workloads may be stored in a storage (e.g., a DRAM) or a memory device (e.g., NAND). The training mode may be performed offline using an external compute engine. In the inference mode, the recurrent neural network coder 500 may process input workload using the weight matrices. Essential FW parameters (e.g., garbage collection algorithm, read voltage thresholds, error correction schemes, etc.) may be changed based on compact workload representation and FW state (e.g., the value of counters, used over-provisioning memory, the number of bad blocks, etc.).”; thus, repeating the deriving of parameter values for each of the workloads or a predetermined number of times].
Claims 16-20 are rejected under 35 U.S.C. 103 as being unpatentable over Kale et al. (US 2021/0255799) in view of Idicula et al. (US 11061902), Zalivaka et al. (US 2022/0326876) and Golovin et al. (US 12026612).
16. A method of operating a storage device, comprising: receiving a learning request for learning a new parameter value for a parameter; and… [Kale teaches “the ANN can be trained using a supervised learning technique to refine or establish a prediction model.” (par. 0045) “[0046] For example, the current operating parameters of the vehicle, applications, and/or the data storage device can be provided as input to the ANN to derive the predicted workload for the subsequent time period, the preferred cache scheme, the optimized background maintenance schedule, and the preferred performance throttling within the time period. Subsequent changes in the performance and temperature of the data storage device can be measured as a result of changing in caching/buffering aspects, in the timing and frequency of background maintenance processes, and/or in the performance throttling. The measurements of performance, temperature, and the implemented parameters of caching/buffering, background maintenance processes, and the performance throttling pattern within in period of time can be used input data in machine learning to improve the predictive capability of the ANN.”] but does not expressly receiving a learning request
evaluating a workload performance for a current value of the parameter to generate a performance metric; [Kale teaches “[0039] The data storage device can have various configurable parameters and operations that have different impacts on the performance of the data storage device under various conditions. Performance of the data storage can be measured based on the latency (response time) for read/write (input/output) requests, and/or the number of read/write (input/output) requests that the data storage device processes per unit of time.” “[0064]… the workload of the data storage device (112) can be determined from the patterns in the input/output data streams (103 and 109). The operating condition can be used to predict the optimized parameters and configurations of buffering/caching (106) and the optimized timing and frequency of background maintenance operations (e.g., 107 and 108).”]
storing the performance metric; [Kale teaches “[0201] For example, the data storage device can search the operation schedule (235) to optimize performance of data storage device by: generating different candidate operation schedules to control the operations of the data storage device; predicting temperatures of the data storage device in executing operations according to the different operation schedules; and selecting the operation schedule from the different operation schedules based on performance levels of operation schedules and predicted temperatures of the operation schedules… [0203] For example, during a training period, the data storage device (112) can generate different operation schedules and perform operations according to different operation schedules to select operation schedules that does not cause the measurement of the temperature sensor (102) to exceed the threshold. The average performance of the operation schedules that keep the temperature of the data storage device (112) under the threshold can be measured by the data storage device (112) (e.g., the form of an average latency for commands received in a period of a predetermine length). The training data generated in the training period can be used to train the ANN (125) to predict an optimized operation schedule for the operating condition represented by the operating parameters (233).” Where the operating schedule in storage device also contains performance level information
inferring a relational expression between the parameter and the workload performance based on the performance metric; [Kale taches “[0050] The data storage device (112) stores a model of an Artificial Neural Network (ANN) (125). The inference engine (101) uses the ANN (125) to predict parameters and configurations of operations of the data storage device (112), such as buffering/caching (106), garbage collection (107), wear leveling (108), predicted operations in the queue (110), etc. to optimize the measured performance of the data storage device (112) and to keep the temperature as measured by the temperature sensor (102) within a predetermined range.” (see pars. 0054, 0181, 0195) where the learning operations are performed based on the storage device workload (see par. 0064 citation above)]
deriving a new value of the parameter based on the relational expression; incorporating the new value of the parameter into a firmware algorithm; and [Kale teaches “[0054] Further, the controller (151) can perform background maintenance operations, such as garbage collection (107), wear leveling (108), etc. The timing and frequency of the background maintenance operations can impact the performance of the data storage device (112). The inference engine (101) uses the ANN (125) to determine the timing and frequency of the maintenance operations (e.g., 107, 108) to optimize the performance measured for the data storage device (112), based on the patterns in the input data stream (103) and/or the output data stream (109).” “memory (135) storing firmware (or software) (147),” (par. 0077) “ hardwired circuitry may be used in combination with software instructions to implement the techniques.” (par. 0222)] but Kale does not expressly refer to applying the new parameter value to a firmware algorithm
Kale does not expressly disclose the learning including … performing an interaction including operations below, until a number of iterations is greater than a predetermined value:… increasing the number of iterations by 1.
With respect to receiving a learning request… the learning including … performing an interaction including operations below, until a number of iterations is greater than a predetermined value:… increasing the number of iterations by 1, Idicula teaches [“According to an embodiment, ML service 150 determines to tune configuration parameters, using previously-trained AC-ML models, for a database workload 160 being managed by a DBMS running on a server device 118. This determination may be based on an explicit request to automatically tune the configuration of the DBMS to optimize its performance with respect to workload 160. According to an embodiment in which workload 160 is an unknown workload at the time of the request, the user submits, with the request, a sample of workload 160 to facilitate customized configuration parameter tuning. ML service 150 extracts one or more WSFs, from the sample workload, in order to characterize workload 160 for parameter optimization. According to an embodiment, this workload sample is also added to a data store that stores a set of workloads that are available to ML service 150 for training data generation framework-initiated experiments described in further detail below.” (col. 5, line 62-col. 6, line 12) “In supervised training, training data is used by a supervised training algorithm to train a machine learning model. The training data includes input and a “known” output. In an embodiment, the supervised training algorithm is an iterative procedure. In each iteration, the machine learning algorithm applies the model artifact and the input to generate a predicated output. An error or variance between the predicated output and the known output is calculated using an objective function. In effect, the output of the objective function indicates the accuracy of the machine learning model based on the particular state of the model artifact in the iteration. By applying an optimization algorithm based on the objective function, the theta values of the model artifact are adjusted. An example of an optimization algorithm is gradient descent. The iterations may be repeated until a desired accuracy is achieved or some other criteria is met.” (col. 15, line 55-col. 16, line 4)], thus, teaching iterations to perform the learning process but Idicula does not expressly refer the condition for stopping the iterations being greater than a predetermined value… increasing the number of iterations by 1.
Kale and Idicula are analogous art because they are from the same field of endeavor of memory access and control as well as optimizing machine learning.
Before the effective filing date of the claimed inventions, it would have been obvious to a person of ordinary skill in the art to modify Kale to include receiving a learning request and perform a number of iterations for the learning process to optimize parameter values as taught by Idicula, since doing so would provide the benefits of [“Embodiments improve database performance through automatically tuning a wide range of parameters in various database components. Different database components generally have a very different performance characteristics hidden in different training data features. Different machine learning models provide different ways to model those performance characteristics. As such, flexibility in model selection allows the system to automatically evaluate the effectiveness of various models on prediction accuracy and efficiency for the various different kinds of data being modeled.” (col. 23, lines 19-29)].
The combination of Kale and Idicula does not expressly disclose applying the new parameter value to a firmware algorithm… the condition for stopping the iterations being greater than a predetermined value… increasing the number of iterations by 1.
With respect to the limitations applying the new parameter value to a firmware algorithm, Zalivaka teaches [“[0112] The recurrent neural network coder 500 may operate in a training mode or an inference mode. In an initial stage (i.e., the training mode), the recurrent neural network coder 500 may be trained using a data set of possible workload types covering typical drive operation scenarios. Then weight matrices of the model associated with the recurrent neural network coder 500 and compact representations of typical workloads may be stored in a storage (e.g., a DRAM) or a memory device (e.g., NAND). The training mode may be performed offline using an external compute engine. In the inference mode, the recurrent neural network coder 500 may process input workload using the weight matrices. Essential FW parameters (e.g., garbage collection algorithm, read voltage thresholds, error correction schemes, etc.) may be changed based on compact workload representation and FW state (e.g., the value of counters, used over-provisioning memory, the number of bad blocks, etc.). The self-testing algorithm may be based on the generation of compact workload vectors and transforming them into the commands internally in the controller. As a result, the low-dimensional space of the compact workloads representation may be covered with a better diversity.”].
Kale, Idicula and Zalivaka are analogous art because they are from the same field of endeavor of memory access and control as well as optimizing machine learning.
Before the effective filing date of the claimed inventions, it would have been obvious to a person of ordinary skill in the art to modify the combination of Kale and Idicula to include applying the new parameter value to a firmware algorithm as taught by Zalivaka, which may include maintenance operation parameter such as those taught by Kale since doing would provide the benefits of [“ In an embodiment, a memory controller may be capable of being aware of input workloads based on a compact representation for input workloads in a memory system (e.g., SSD such as NAND flash memory devices) and may perform an operation (i.e., tuning of firmware parameters) in order to optimize its performance.” (par. 0142)].
Regarding the limitations the condition for stopping the iterations being greater than a predetermined value… increasing the number of iterations by 1, Golovin teaches [“At 1316, the computing system determines whether to perform additional iterations. The determination at 1316 can be made according to a number of different factors. In one example, iterations are performed until an iteration counter reaches a predetermined threshold (one of ordinary skill in the art would recognize the counter thus increase by 1 after each iteration in order to count iterations). In another example, iteration-over-iteration improvement (e.g., |previous best result—new result|) can be compared to a threshold value. The iterations can be stopped when the iteration-over-iteration improvement is below the threshold value. In yet another example, the iterations can be stopped when a certain number of sequential iteration-over-iteration improvements are each below the threshold value. Other stopping techniques can be used as well.” (col. 56, lines 48-61)].
Kale, Idicula, Zalivaka and Golovin are analogous art because they are from the same field of endeavor of memory access and control as well as optimizing machine learning.
Before the effective filing date of the claimed inventions, it would have been obvious to a person of ordinary skill in the art to modify the combination of Kale, Idicula and Zalivaka to include stopping the iterations being greater than a predetermined value… increasing the number of iterations by 1 as taught by Golovin since doing so would provide the benefits of optimizing machine learning operations.
Therefore, it would have been obvious to combine Kale, Idicula, Zalivaka and Golovin for the benefit of creating a storage system/method to obtain the invention as specified in claim 16.
17. The method of claim 16, wherein the inferring of the relational expression includes performing machine learning through each of a plurality of learning models to infer a responding relational expression [The rationale in the rejection of claims 1 and 8 is herein incorporated].
18. The method of claim 16, wherein at least one of the performance metrics includes a predetermined percentile latency of a write latency [Kale teaches “[0039] The data storage device can have various configurable parameters and operations that have different impacts on the performance of the data storage device under various conditions. Performance of the data storage can be measured based on the latency (response time) for read/write (input/output) requests, and/or the number of read/write (input/output) requests that the data storage device processes per unit of time.”].
19. The method of claim 16, further comprising selecting the performance metrics related to the parameter [The rationale in the rejection of claim 6 is herein incorporated].
20. The method of claim 16, wherein the performance metrics include measures related to throughput, write QoS, read QoS, or reliability [The rationale in the rejection of claim 4 is herein incorporated].
ACKNOWLEDGEMENT OF ISSUES RAISED BY APPLICANT
Response to Amendment
Applicant's arguments filed on 5/12/2026 have been fully considered but are moot in view of the new ground(s) of rejection.
CLOSING COMMENTS
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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.
a. STATUS OF CLAIMS IN THE APPLICATION
a(1) CLAIMS REJECTED IN THE APPLICATION
Per the instant office action, claims 1-10 and 16-20 have received an action on the merits and are subject to a final rejection.
a(2) CLAIMS NO LONGER UNDER CONSIDERATION
Claims 11-15 have been withdrawn from consideration.
b. DIRECTION OF FUTURE CORRESPONDENCES
Any inquiry concerning this communication or earlier communications from the examiner should be directed to YAIMA RIGOL whose telephone number is (571)272-1232. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM.
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, Jared I. Rutz can be reached on (571) 272-5535. 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.
August 3, 2026
/YAIMA RIGOL/
Primary Examiner, Art Unit 2135