DETAILED ACTION
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 .
Examiner Notes
Examiner cites particular 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 the prior art or disclosed by the examiner.
The examiner encourages Applicant to submit an authorization to communicate with the examiner via the Internet by making the following statement (from MPEP 502.03):
“Recognizing that Internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only be submitted via Central Fax, Regular postal mail, or EFS Web (PTO/SB/439).
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-9 and 17-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
In adhering to the 2019 Revised Patent Subject Matter Eligibility Guidance (2019 PEG), Step 1 is directed to determining whether or not the claims fall within a statutory class. Herein, the claims fall within statutory class of process, machine or manufacture. Hence, the claims qualify as potentially eligible subject matter under 35 U.S.C §101. With Step 1 being directed to a statutory category, the analysis directed to Step 2A.
Step 2A is a two prong inquiry. Prong 1 considers whether the claim recites a judicial exception (an abstract idea enumerated in the 2019 PEG, a law of nature, or a natural phenomenon). In this case independent claim 1 recites mental processes as applied to human activity (i.e. concepts performed in the human mind but for the recitation of generic computing components). For example, the following claimed steps are functions that can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion:
determining command parameters associated with the command, the command parameters being selected from a group of command parameters including a data attribute parameter, a data location parameter and a command attribute parameter;
determining an execution weight for one or more of the command parameters; and
determining an execution order for the command based, at least in part, on the execution weight of the one or more command parameters.
But for the recitation of generic computing components, steps a-c can be completed in the human mind with the aid of pen and paper through observation, evaluation, judgment, and/or opinion. Steps a-c describe collecting and analyzing information at a high level of generality. According to the MPEP, these steps are examples of mental processes, thus it is reasonable to identify these limitations as reciting mental processes. (MPEP 2106.04(a)(2) III (A), claims do recite a mental process when they contain limitations that can practically be performed in the human mind, including for example, observations, evaluations, judgments, and opinions. Examples of claims that recite mental processes include: a claim to “collecting information, analyzing it, and displaying certain results of the collection and analysis,” where the data analysis steps are recited at a high level of generality such that they could practically be performed in the human mind, Electric Power Group v. Alstom, S.A., 830 F.3d 1350, 1353-54, 119 USPQ2d 1739, 1741-42 (Fed. Cir. 2016)).
Since the claims are directed toward a judicial exception, analysis flows to Prong 2. Prong 2 considers whether the judicial exception is integrated into a practical application. In this case, the judicial exception is not integrated into a practical application because the claim language merely describes steps of collecting data, field of use/technological environment, and using a computer as a tool to apply the abstract idea and fails to describe an improvement to the functioning of a computer or other technical field. The additional elements recited in the claim do not integrate the judicial exception into a practical application for the following reasons:
The additional element of a “data storage device” is recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)); and
The additional element of “receiving a command for execution on a data storage device” amounts to insignificant extra-solution data gathering/data transmission activity (MPEP § 2106.05(g)).
Therefore the abstract idea has not been integrated into practical application and the claims are directed to the abstract idea.
Since the claims are directed to the determined judicial exception, the analysis flows to Step 2B. Therein, the elements and combination of elements are examined in the claims to determine whether the claims as a whole amounts to significantly more than the judicial exception. In this case, the additional elements identified at Step 2A Prong 2, individually or in an order combination, also do not amount to significantly more than the abstract idea for the same reasons as given in Step 2A Prong 2 and further because:
The claimed “data storage device” is generically recited as mere instructions to implement an abstract idea on a computer. Thus, this step does not add significantly more to the respective limitations. Taken as an ordered combination, the afore-mentioned limitation is directed to limitations referenced in Alice Corp. (also called the Mayo test) that are not enough to qualify as significantly more when recited in a claim with an abstract idea. (MPEP § 2106.05 (I)(A)), “Limitations that the courts have found not to be enough to qualify as “significantly more” when recited in a claim with a judicial exception include: i… mere instructions to implement an abstract idea on a computer.”
The additional element of “receiving a command for execution on a data storage device” amounts to well‐understood, routine, and conventional functions because the step is claimed in a merely generic manner (e.g., at a high level of generality) and as insignificant extra-solution activity. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network.” (MPEP 2106.05(d) (II)).
“A claim directed to a judicial exception cannot be made eligible “simply by having the applicant acquiesce to limiting the reach of the patent for the formula to a particular technological use.” Diamond v. Diehr, 450 U.S. 175, 192 n.14, 209 USPQ 1, 10 n. 14 (1981). Thus, limitations that amount to merely indicating a field of use or technological environment in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application.” (MPEP 2106.05 (h)).
Employing generic computer functions to execute an abstract idea, even when limiting the use of the idea to one particular environment, does not add significantly more, similar to how limiting the abstract idea in Flook to petrochemical and oil-refining industries was insufficient. (MPEP 2106.05 (h)).
Regarding claim 2, the additional element of “wherein the execution order is based, at least in part, on a determined force and wherein the determined force is proportional to the execution weight of the one or more command parameters” is analyzed with step c as a mental process since the “determining” steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to determine an execution order based on a determined command force.
Regarding claim 3, the additional element of “wherein the command is a system command” amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). This additional element also appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 4, the additional element of “wherein the command is received from a host device” amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). This additional element also appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 5, the additional element of “wherein the execution order is based, at least in part, on a first time parameter and a second time parameter” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 6, the additional element of “wherein the data attribute command parameter includes one or more of a size of data associated with the command and a temperature of the data associated with the command” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h));
Regarding claim 7, the additional element of “wherein the data location command parameter includes one or more of a logical block address (LBA) associated with the command, a physical location of a memory block associated with the command, an age of the memory block associated with the command and a code rate associated with the memory block” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 8, the additional element of “wherein the command attribute command parameter includes one or more of a command type, a command origin and a time parameter” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 9, the additional element of “wherein the execution weight is determined based, at least in part, on a number of received commands exceeding a threshold” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 17, this claim is not patent eligible for the same reasons given for claim 1 for the common limitations.
The following limitation does not recite a practical application because the additional element of a “system” amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). The additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). This additional element also does not add significantly more to the respective limitations. Taken as an ordered combination, the afore-mentioned limitation is directed to limitations referenced in Alice Corp. (also called the Mayo test) that are not enough to qualify as significantly more when recited in a claim with an abstract idea. (MPEP § 2106.05 (I)(A)), “Limitations that the courts have found not to be enough to qualify as “significantly more” when recited in a claim with a judicial exception include: i… mere instructions to implement an abstract idea on a computer.”
Regarding claim 18, this claim is ineligible for the same reasons given for claim 2.
Regarding claim 19, the additional element of “means for comparing the execution weight of the command to an execution weight of one or more previously received commands” recites an additional mental process under Prong 1 since this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to compare determined execution weights for previous commands.
Regarding claim 20, the additional element of “means for determining whether the command is received from a host device or whether the command is a system command” recites an additional mental process under Prong 1 since this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to determine a type/source of a command.
Claims 10-16 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
In adhering to the 2019 Revised Patent Subject Matter Eligibility Guidance (2019 PEG), Step 1 is directed to determining whether or not the claims fall within a statutory class. Herein, the claims fall within statutory class of process, machine or manufacture. Hence, the claims qualify as potentially eligible subject matter under 35 U.S.C §101. With Step 1 being directed to a statutory category, the analysis directed to Step 2A.
Step 2A is a two prong inquiry. Prong 1 considers whether the claim recites a judicial exception (an abstract idea enumerated in the 2019 PEG, a law of nature, or a natural phenomenon). In this case independent claim 1 recites mental processes as applied to human activity (i.e. concepts performed in the human mind but for the recitation of generic computing components). For example, the following claimed steps are functions that can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion:
determining one or more command parameters associated with a received command, the one or more command parameters being selected from a group of command parameters including, a data attribute parameter, a data location parameter and a command attribute parameter;
determining an execution weight for each of the one or more command parameters; and
determining a force associated with the command, wherein the force is proportional to the execution weight of each of the one or more command parameters.
But for the recitation of generic computing components, steps A-C can be completed in the human mind with the aid of pen and paper through observation, evaluation, judgment, and/or opinion. Steps A-C describe collecting and analyzing information at a high level of generality. According to the MPEP, these steps are examples of mental processes, thus it is reasonable to identify these limitations as reciting mental processes. (MPEP 2106.04(a)(2) III (A), claims do recite a mental process when they contain limitations that can practically be performed in the human mind, including for example, observations, evaluations, judgments, and opinions. Examples of claims that recite mental processes include: a claim to “collecting information, analyzing it, and displaying certain results of the collection and analysis,” where the data analysis steps are recited at a high level of generality such that they could practically be performed in the human mind, Electric Power Group v. Alstom, S.A., 830 F.3d 1350, 1353-54, 119 USPQ2d 1739, 1741-42 (Fed. Cir. 2016)).
Since the claims are directed toward a judicial exception, analysis flows to Prong 2. Prong 2 considers whether the judicial exception is integrated into a practical application. In this case, the judicial exception is not integrated into a practical application because the claim language merely describes steps of collecting data, field of use/technological environment, and using a computer as a tool to apply the abstract idea and fails to describe an improvement to the functioning of a computer or other technical field. The additional elements recited in the claim do not integrate the judicial exception into a practical application for the following reasons:
The additional element of a “system,” “controller,” and a “memory storing instructions that, when executed by the controller, perform operations” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). The additional elements also appear to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)); and
The additional element of “a received a command” amounts to insignificant extra-solution data gathering/data transmission activity (MPEP § 2106.05(g)).
Therefore the abstract idea has not been integrated into practical application and the claims are directed to the abstract idea.
Since the claims are directed to the determined judicial exception, the analysis flows to Step 2B. Therein, the elements and combination of elements are examined in the claims to determine whether the claims as a whole amounts to significantly more than the judicial exception. In this case, the additional elements identified at Step 2A Prong 2, individually or in an order combination, also do not amount to significantly more than the abstract idea for the same reasons as given in Step 2A Prong 2 and further because:
The claimed “system,” “controller,” and “memory storing instructions that, when executed by the controller, perform operations” are generically recited as mere instructions to implement an abstract idea on a computer. Thus, these additional elements do not add significantly more to the respective limitations. Taken as an ordered combination, the afore-mentioned limitation is directed to limitations referenced in Alice Corp. (also called the Mayo test) that are not enough to qualify as significantly more when recited in a claim with an abstract idea. (MPEP § 2106.05 (I)(A)), “Limitations that the courts have found not to be enough to qualify as “significantly more” when recited in a claim with a judicial exception include: i… mere instructions to implement an abstract idea on a computer.”
The additional element of a “received command ” amounts to well‐understood, routine, and conventional functions because the step is claimed in a merely generic manner (e.g., at a high level of generality) and as insignificant extra-solution activity. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network.” (MPEP 2106.05(d) (II)).
“A claim directed to a judicial exception cannot be made eligible “simply by having the applicant acquiesce to limiting the reach of the patent for the formula to a particular technological use.” Diamond v. Diehr, 450 U.S. 175, 192 n.14, 209 USPQ 1, 10 n. 14 (1981). Thus, limitations that amount to merely indicating a field of use or technological environment in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application.” (MPEP 2106.05 (h)).
Employing generic computer functions to execute an abstract idea, even when limiting the use of the idea to one particular environment, does not add significantly more, similar to how limiting the abstract idea in Flook to petrochemical and oil-refining industries was insufficient. (MPEP 2106.05 (h)).
Regarding claim 11, the additional element of “determining an execution order for the command based, at least in part, on the force” is analyzed with step C as a mental process since the “determining” steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to determine an execution order based on a determined command force.
Regarding claim 12, the additional element of “comparing the force of the command to a force of one or more previously received commands” recites an additional mental process under Prong 1 since this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to compare determined execution weights for previous commands.
Regarding claim 13, the additional element of “wherein the data attribute command parameter includes one or more of a size of data associated with the command and a temperature of the data associated with the command” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 14, the additional element of “wherein the data location command parameter includes one or more of a logical block address (LBA) associated with the command, a physical location of a memory block associated with the command, an age of the memory block associated with the command and a code rate associated with the memory block” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 15, the additional element of “wherein the command attribute command parameter includes one or more of a command type, a command origin and a time parameter” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 16, the additional element of “wherein the execution weight is determined based, at least in part, on a number of received commands exceeding a threshold” appears to be an attempt to generally linking the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
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 (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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-8 and 10-19 are rejected under 35 U.S.C. 103 as being unpatentable over Rimoni et al. (US 2016/0266934) in view of Khafizova (US 9612874).
As per claim 1, Rimoni teaches the invention substantially as claimed including a method, comprising:
receiving a command for execution on a data storage device ([0016], controller 120 may be configured to receive one or more tasks, such as a task 134, from an access device 130; Examiner Note: Rimoni’s controller is a part of its storage device:[0013], data storage device 102 includes a controller 120);
determining command parameters associated with the command ([0016], controller 120 may determine at least one characteristic of the task 134. For example, the task 134 may include one or more fields that indicate the at least one characteristic of the task 134), the command parameters being selected from a group of command parameters including a data attribute parameter ([0016], at least one characteristic may include ...a data size), a data location parameter ([0016], at least one characteristic may include ...an address) and a command attribute parameter ([0016], at least one characteristic may include a write operation, a read operation, a high priority operation... and/or a protocol; and [0023], Each task may include task information. The task information may indicate one or more characteristics of the task, such as a ...a read/write operation type);
determining an execution order for the command ([0017], A task order 194 in which the tasks are selected from the multiple task queues 166 may indicate an order in which the tasks are to be processed to perform memory access operations. By selecting tasks from the multiple task queues 166 and/or by using a weight value to select multiple tasks from a particular queue, an order of execution of the tasks may be determined that promotes efficient execution of the tasks based on the architecture of the data storage device 102).
Rimoni fails to specifically teach, determining an execution weight for one or more of the command parameters; and determining an execution order for the command based, at least in part, on the execution weight of the one or more command parameters.
However, Khafizova teaches, determining an execution weight for one or more of the command parameters (Column 8, Lines 12-15, the prioritization engine 275 assigns, or otherwise associates, each of the processing job parameters 246 and the user parameters 248 with a respective numeric value N; and Column 8, Lines 47-51, the higher the numeric value N that is assigned to the processing job parameter 246 or user parameter 248, the more weight that processing job parameter or user parameter will be accorded when determining the processing job priority 276); and
determining an execution order for the command based, at least in part, on the execution weight of the one or more command parameters (Column 8, Lines 47-51, the higher the numeric value N that is assigned to the processing job parameter 246 or user parameter 248, the more weight that processing job parameter or user parameter will be accorded when determining the processing job priority 276; Examiner Note: Khafizova’s jobs are scheduled according to their priorities: Column 4, Lines 10-18, the request processing server 110 may prioritize the pending processing jobs using the respective processing job priorities of the pending processing jobs. For example, pending processing jobs with the highest processing job priorities may be scheduled to be executed first in the execution order, while pending processing jobs with the lowest processing job priorities may be scheduled to be executed last in the execution order).
Romini and Khafizova are analogous because they are each related task scheduling. Romini teaches a method of scheduling commands received by a storage device including determining an execution order for said commands based on command parameters. (Abstract, data storage device may receive, from the access device, task declarations that specify tasks to be performed by the data storage device; [0017], A task order 194 in which the tasks are selected from the multiple task queues 166 may indicate an order in which the tasks are to be processed to perform memory access operations. By selecting tasks from the multiple task queues 166 and/or by using a weight value to select multiple tasks from a particular queue, an order of execution of the tasks may be determined that promotes efficient execution of the tasks based on the architecture of the data storage device 102; and [0023], Each task may include task information. The task information may indicate one or more characteristics of the task, such as a task identifier (ID), a priority flag (e.g., a high priority flag), a length of data to be transferred, a data start address, and/or a read/write operation type, as illustrative, non-limiting examples). Khafizova teaches a task scheduling method including assigning an execution weights to task parameters and using said weights to determine a priority order for task execution. (Abstract, systems and methods for managing the execution of processing jobs. In one embodiment, a method includes receiving a processing job associated with a set of processing job parameters. The processing job is sent from a user interfacing device associated with a user. The method also includes determining a processing job priority for the processing job using the set of processing job parameters; and Column 2, Lines 5-15, associating each of the set of processing job parameters with a respective numeric value (N), assigning a respective weight (W) to each of the set of processing job parameters, determining a respective weighted value (X) for each of the set of processing job parameters, wherein X=W*N. The method also includes Summating the respective weighted values (X) for each of the set of processing job parameters to form a weighted total (T), determining a cumulative utility factor (F) associated with the user, and determining a processing job priority (P) for the processing job). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the “task scheduler module” of Romini would be modified with Khafizova’s job weighting and prioritization mechanisms resulting in a system that provides task management based on weighted job parameters. Therefore, it would have been obvious to combine the teachings of Romini and Khafizova.
As per claim 2, Khafizova teaches, wherein the execution order is based, at least in part, on a determined force (Column 8, Lines 52-57, prioritization engine 275 may also assign a weight W to each of the processing job parameters 246 and the user parameters 248. The weight W may be used to determine the impact that each of the processing job parameters 246 and the user parameters 248 will have on the processing job priority 276) and wherein the determined force is proportional to the execution weight of the one or more command parameters (Column 8, Lines 57-60, the higher the weight W is for a particular processing job or user parameter, the more that processing job or user parameter will cause the processing job priority 276 to have a higher value).
As per claim 3, Rimoni teaches, wherein the command is a system command ([0016], task 134 may be associated with an instruction, a command, or a request, from the access device 130, and the task 134 may be performed by the data storage device 102).
As per claim 4, Rimoni teaches, wherein the command is received from a host device ([0016], task 134 may be associated with an instruction, a command, or a request, from the access device 130, and the task 134 may be performed by the data storage device 102).
As per claim 5, Khafizova teaches, wherein the execution order (Column 10, Lines 36-38, prioritization engine 275 determines an individual utility factor IK for each of the pending and prioritized processing jobs 279, wherein IK =PK (Z-tK)/Z; and Column 11, Lines 18-20, The weighted total T for the processing job 211 may then be divided by the cumulative utility factor F associated with the user 254 to form the processing job priority 276) is based, at least in part, on a first time parameter (Column 10, Lines 21-23, process pending time period tK is an amount of time that the respective pending and prioritized processing job 279 has been pending.) and a second time parameter (Column 10, Lines 14-21, Z is a predetermined time period that may be selected or defined by a user or entity that is using the process manager 244 to manage processing jobs. In the non-limiting example of the table 278, the predetermined time period Z is equal to five days. However, the predetermined time period Z may be on the order of seconds, minutes, weeks, months, or any other time.).
As per claim 6, Rimoni teaches, wherein the data attribute command parameter includes one or more of a size of data associated with the command ([0016], at least one characteristic may include ...a data size) and a temperature of the data associated with the command ([0097], The at least one characteristic may include ... a high priority operation; and [0090], the multiple task queues 400 are configured such that a high priority task(s) 410 is not received by a queue. Accordingly, when a high priority task(s) 410 is received, the high priority task(s) 410 may be selected irrespective of a selection sequence (e.g., a queue selection sequence and/or a task selection sequence) applied to the multiple task queues 400. To illustrate, a task received from the access device may be automatically selected (e.g., rather than being assigned to a queue) in response to a determination that the task is a high priority task).
As per claim 7, Rimoni teaches, wherein the data location command parameter includes one or more of a logical block address (LBA) associated with the command, a physical location of a memory block associated with the command ([0023], Each task may include task information. The task information may indicate one or more characteristics of the task, such as ...a data start address; and [0028], the controller 120 is configured to send data and a write command to cause the memory 104 to store data to a specified address of the memory 104. The write command may specify a physical address of a portion of the memory 104 (e.g., a physical address of a word line of the memory 104) that is to store the data. The controller 120 is configured to send a read command to the memory 104 to access data from a specified address of the memory 104. The read command may specify the physical address of a portion of the memory 104 (e.g., a physical address of a word line of the memory 104)), an age of the memory block associated with the command and a code rate associated with the memory block.
As per claim 8, Rimoni teaches, wherein the command attribute command parameter includes one or more of a command type ([0016], at least one characteristic may include a write operation, a read operation, a high priority operation... and/or a protocol; and [0023], Each task may include task information. The task information may indicate one or more characteristics of the task, such as a ...a read/write operation type), a command origin and a time parameter.
As per claim 10, Rimini teaches the invention substantially as claimed including a system, comprising:
a controller ([0013], data storage device 102 includes a controller 120); and a
memory ([0013], data storage device 102 includes a ... memory 104, such as a non-volatile memory, that is coupled to the controller 120) storing instructions that, when executed by the controller, perform operations, comprising:
determining one or more command parameters associated with a received command, the one or more command parameters being selected from a group of command parameters including, a data attribute parameter, a data location parameter and a command attribute parameter ([0016], at least one characteristic may include a write operation, a read operation, a high priority operation... and/or a protocol);
determining an execution weight for each of the one or more command parameters; and
determining a force associated with the command, wherein the force is proportional to the execution weight of each of the one or more command parameters.
As per claim 11, Khafizova teaches, further comprising instructions for determining an execution order for the command based, at least in part, on the force (Column 8, Lines 54-60, weight W may be used to determine the impact that each of the processing job parameters 246 and the user parameters 248 will have on the processing job priority 276. For example, the higher the weight W is for a particular processing job or user parameter, the more that processing job or user parameter will cause the processing job priority 276 to have a higher value; and Column 4, Lines 10-18, the request processing server 110 may prioritize the pending processing jobs using the respective processing job priorities of the pending processing jobs. For example, pending processing jobs with the highest processing job priorities may be scheduled to be executed first in the execution order, while pending processing jobs with the lowest processing job priorities may be scheduled to be executed last in the execution order).
As per claim 12, Khafizova teaches, further comprising instructions for comparing the force of the command to a force of one or more previously received commands (Column 9, Lines 51-62, the user 254 may have initiated processing jobs other than the processing job 211, and which are currently pending. In this situation, the weighted total T may still be used as the processing job priority 276. However, in one embodiment, the prioritization engine 275 may determine a cumulative utility factor F for the user 254, and divide the weighted total T by the cumulative utility factor F to equal the processing job priority 276. The cumulative utility factor F, in one embodiment, is a fairness mechanism that adjusts the processing job priority 276 based on the processing jobs that the user 254 has initiated other than the processing job 211; Examiner Note: Khafizova’s force (i.e. weight) is used to determine a weighted total which is then used to determine a job’s priority relative to previously received jobs: Column 9, Lines 20-21, prioritization engine 275 may also determine a weighted value X for each of the processing job parameters; Column 9, Lines 41-42, the weighted total T may be used as the processing job priority 276;).
As per claim 13, this claim is similar to claim 6 and is rejected for the same reasons.
As per claim 14, this claim is similar to claim 7 and is rejected for the same reasons.
As per claim 15, this claim is similar to claim 8 and is rejected for the same reasons.
As per claim 16, this claim is similar to claim 9 and is rejected for the same reasons.
As per claim 17, this is the “system claim” corresponding to claim 1 and is rejected for the same reasons. The same motivation used in the rejection of claim 1 is applicable to the instant claim.;
As per claim 18, this claim is similar to claim 2 and is rejected for the same reasons.
As per claim 19, Khafizova teaches, further comprising means for comparing the execution weight of the command to an execution weight of one or more previously received commands (Column 11, Lines 25-29, the prioritization engine 275, upon determining the processing job priority 276 for the processing job 211, may prioritize the processing job 211 relative to the other pending processing jobs managed by the process manager 244; Examiner Note: Khafizova’s priorities are based on a comparison of execution weights: Column 8, Lines 47-51, the higher the numeric value N that is assigned to the processing job parameter 246 or user parameter 248, the more weight that processing job parameter or user parameter will be accorded when determining the processing job priority 276).
Claims 9 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Rimoni-Khafizova as applied to claim 17 and in further view of Smith et al. (US 2019/0205244).
As per claim 9, the combination of Rimoni-Khafizova fails to specifically teach, wherein the execution weight is determined based, at least in part, on a number of received commands exceeding a threshold.
However, Smith teaches, wherein the execution weight is determined based, at least in part, on a number of received commands exceeding a threshold ([0366], command tags etc. may be used to mark, identify, order, re-order, shuffle, position, and/or perform ordering and/or other operations on one or more commands... the atomic operation tag, for example, may include one or more of the following (but not limited to the following): ...the number of commands (e.g. transactions, requests, etc.) in the atomic operation; and [0989], control the sequence of a number of commands. For example, the sequencing may be such that a sequence of commands meets, satisfies, respects, obeys, fulfills, etc. one or more...desired operating behavior, etc. of one or more stacked memory chips and/or portions of one or more stacked memory chips... the order, priority, timing, sequence, and/or other properties of one or more commands sequences, sets and/or groups of commands etc. issued, executed, queued, transferred etc. to one or more memory chips, portions of one or more memory chips, one or more memory controllers, etc. may be controlled, managed, etc.).
The combination of Romini-Khafizova and Smith are analogous because they are each related task scheduling. Romini teaches a method of scheduling commands received by a storage device including determining an execution order for said commands based on command parameters. Khafizova teaches a task scheduling method including assigning an execution weights to task parameters and using said weights to determine a priority order for task execution. Smith teaches memory system that manages commands including identifying their sources and determining an execution order based on several factors including a number of tasks. ([0366], command tags etc. may be used to mark, identify, order, re-order, shuffle, position, and/or perform ordering and/or other operations on one or more commands... the atomic operation tag, for example, may include one or more of the following (but not limited to the following): ...the number of commands (e.g. transactions, requests, etc.) in the atomic operation; and [0388], an additional tag field (e.g. alignment tag, etc.) may be added to the command (e.g. use an additional field, use a special command format, populate an otherwise normally unused field, etc.). For example, in one embodiment, the alignment tag, for example, may include one or more of the following (but not limited to the following): ... source identification..). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the task characteristics analyzed by the “task scheduler module” of the combination of Romini-Khafizova’s would be modified to include the source identification command tag taught by Smith resulting in a system that provides task management based on weighted job parameters including a command source. Therefore, it would have been obvious to combine the teachings of the combination of Romini-Khafizova and Smith.
As per claim 20, the combination of Rimoni-Khafizova fails to specifically teach, further comprising means for determining whether the command is received from a host device or whether the command is a system command.
However, Smith teaches, further comprising means for determining whether the command is received from a host device or whether the command is a system command ([0366], command tags etc. may be used to mark, identify, order, re-order, shuffle, position, and/or perform ordering and/or other operations on one or more commands; and [0388], an additional tag field (e.g. alignment tag, etc.) may be added to the command (e.g. use an additional field, use a special command format, populate an otherwise normally unused field, etc.). For example, in one embodiment, the alignment tag, for example, may include one or more of the following (but not limited to the following): ... source identification...; Examiner Note: Smith’s system determines responds to host and system commands: [0163], a memory read may be performed by sending (e.g. transmitting from CPU to stacked memory package, etc.) a read request. The read data may be returned in a read response; [0663], a memory controller ...may perform such operations (e.g. reordering, modification, alteration, combinations of these, etc.) on requests and/or commands and/or responses and/or completions etc. (e.g. on packets, groups of packets, sequences of packets, portion(s) of packets, data field(s) within packet(s), data structures containing one or more packets and/or portion(s) of packets, on data derived from packets, etc.), to effect (e.g. implement, perform, execute, allow, permit, enable, etc.) one or more of the following (but not limited to the following): ... respond to system commands and/or other instructions for reordering; and [0900], there may be any number of command sets (e.g. internal command sets, external command sets, etc.)).
The same motivation used in the rejection of claim 9 is applicable to the instant claim.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MELISSA A HEADLY whose telephone number is (571)272-1972. The examiner can normally be reached Monday- Friday 9-5:30pm.
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, Bradley Teets can be reached at 571-272-3338. 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.
/MELISSA A HEADLY/ Examiner, Art Unit 2197