Prosecution Insights
Last updated: August 17, 2026
Application No. 18/639,073

MEMORY CONTROLLER WITH IMPROVED USER FAIRNESS, STORAGE DEVICE INCLUDING THE MEMORY CONTROLLER, AND OPERATING METHOD OF MEMORY CONTROLLER

Non-Final OA §103
Filed
Apr 18, 2024
Priority
Aug 29, 2023 — RE 10-2023-0113743
Examiner
WONG, NANCI N
Art Unit
2137
Tech Center
2100 — Computer Architecture & Software
Assignee
Samsung Electronics Co., Ltd.
OA Round
3 (Non-Final)
87%
Grant Probability
Favorable
3-4
OA Rounds
2m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 87% — above average
87%
Career Allowance Rate
403 granted / 463 resolved
+32.0% vs TC avg
Strong +23% interview lift
Without
With
+22.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 6m
Avg Prosecution
16 currently pending
Career history
489
Total Applications
across all art units

Statute-Specific Performance

§101
5.1%
-34.9% vs TC avg
§103
70.1%
+30.1% vs TC avg
§102
4.9%
-35.1% vs TC avg
§112
14.6%
-25.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 463 resolved cases

Office Action

§103
DETAILED ACTION The present Office Action is in response to Applicant Arguments/Remarks and amended claims filed on 01/12/2026. Claims 1, 3, 6, 7, 10, 11, 13, 16, and 18 have been amended. Claim 20 has been previously cancelled. Claims 1-19 and 21 remain pending in the application. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Priority Acknowledgment is made of applicant’s claim for foreign priority under 35 U.S.C. 119 (a)-(d). The certified copy has been filed in parent Application No.KR10-2023-0113743, filed on 08/29/2023. Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submissions filed on 01/12/2026 and 02/11/2026 have been entered. 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. This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “a command-unit workload calculator configured to calculate a workload” in claims 1 and 16; “a user-unit workload calculator configured to calculate a workload” in claims 1 and 16; “a command fetch unit configured to preferentially fetch, from the host, a command” in claims 1 and 16; “a command fetch scheduler configured to perform a scheduling operation” in claims 3 and 18; “the user-unit workload calculator is configured to determine a user that has caused a user-unit workload” in claim 6; “the command fetch unit is configured to fetch a first group of commands, and fetch a next second group of commands” in claims 7 and 20; “the command-unit workload calculator is configured to calculate a workload” in claim 10; “the user-unit workload calculator is configured to add the workload” in claim 10. Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof. If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. Response to Amendment and Arguments Applicant’s amendments and remarks have been fully considered, with the Examiner’s response set forth below. (1)Applicant contends that, regarding 35 U.S.C. 112(f) on pages 10-11, that “an interpretation under 35 U.S.C. §112(f) of the terms "command-unit workload calculator", "user-unit workload calculator", "command fetch unit", and "command fetch scheduler" should not be invoked because the terms are not merely generic placeholders, but are generic names for actual physical objects”. Particularly, Applicant argues “For example, referring to at least FIG. 4 and related discussion of the present application, the terms used above are generic names for actual physical objects that calculate, fetch and/or schedule. The Examiner respectively disagrees. First, the heading of the subsection on page 10 of the Remarks reads “Claim Rejection under 35 U.S.C.112(f)” and the first paragraph on page 11 reads “Applicants traverse this rejection for the reasons below”. Please note that 35 U.S.C. 112(f) is only invoked for interpretation and it is not a rejection. Second, an ordinary skill in the art would not be able to provide a definite structures for terms such as "command-unit workload calculator", "user-unit workload calculator", "command fetch unit", and "command fetch scheduler", as they could be hardware, software, firmware, or a combination of thereof, thus these are “generic placeholder(s)”. Whether the specification provides enough details on structural meaning of the generic place holders is used to determine whether 112(a) or 112(b) rejections are required, not whether 112(f) should be invoked. (2) Applicant further argues “MPEP 2181.1 recites "Al-Site Corp. v. VSI International Inc., 174 F.3d 1308, 1318, 50 USPQ2d 1161, 1166-67 (Fed. Cir. 1999) (although the claim elements "eyeglass hanger member" and "eyeglass contacting member" include a function, these claim elements do not invoke pre-AIA 35 U.S.C. 112, sixth paragraph, because the claims themselves contain sufficient structural limitations for performing those functions) … Additionally, "a generic placeholder like 'mechanism' standing alone may invoke 35 U.S.C. 112(f) when coupled with a function, it will not invoke 35 U.S.C. 112(f) when it is preceded by a structural modifier (e.g., "detent mechanism"). Greenberg, 91 F.3d at 1583, 39 USPQ2d at 1786 (holding that the term "detent mechanism" did not invoke 35 U.S.C. 112, sixth paragraph because the structural modifier "detent" denotes a type of structural device with a generally understood meaning in the mechanical arts).” Applicants submit that the recited terms contain sufficient structural modifier. The Examiner respectfully disagrees. The reason that “eyeglass hanger member” does not invoke 35 U.S.C. § 112 (f) is because the term is modified by sufficient physical description such as upper edge, lower edge, and a width dimension in the claim. However, the terms "command-unit workload calculator", "user-unit workload calculator", "command fetch unit", and "command fetch scheduler" recited in the current claims do not include sufficient physical descriptions as structural modifiers. In regards to “detent mechanism”, the term “detent” denotes a type of structural device with a generally understood meaning in the mechanical arts, however, the terms listed above that are recited in the current claims do not denote any type of structural device to an ordinary skill in the art, as the terms could be hardware, software, firmware, or a combination of thereof. Accordingly, the 112(f) claim interpretations have been maintained. (3) Applicant’s arguments with respect to 35 U.S.C. 103 rejections have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. (4) Another iteration of claim analysis has been made. Refer to the corresponding sections of the claim analysis below for details. 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. Claim(s) 1-4, 10-13, 16-19, and 21 is/are rejected under 35 U.S.C. 103 as being unpatentable over Trika et al. (US2024/0095074), hereinafter Trika in view of Pijewski et al. (US2013/0254407), hereinafter Pijewski, and further in view of Nagasaka (US2023/0161504), hereinafter Nagasaka. Regarding claims 1 and 16, taking claim 16 as exemplary, Trika teaches a storage device comprising: a memory device comprising at least one memory chip (Trika, [0024], a solid state disk drive or “SSD” 22); and a memory controller (Trika, [0024], a traffic controller 24) configured to communicate with a host and control the memory device in response to commands from a plurality of users (Trika, [0024], where the client computers are virtual machines operating in hosts … The client computers issue IO commands such as “read” or “write” commands; [0030], The traffic controller routes requests and completion commands so that requests from the request queue in each client queue pair are routed to the submission queue of the associated storage queue pair, and completion commands from the completion queue in each storage pair 32 are routed to the completion queue in the associated client queue pair 28), the memory controller comprising a command-unit workload calculator configured to calculate a workload by a unit of each of the commands, based on resource consumption of the memory device, which is generated by performing at least one memory operation included in each of the commands (Trika, [0031], the measure of processing load is the number of IO commands per second … the traffic controller counts the number of requests sent by each client 20 a-20 d by counting the requests sent from the three client pairs 28 associated with that client during a counting interval and calculates the current processing load for that client 20); a user-unit workload calculator configured to calculate a workload caused by each of the plurality of users, based on the workload calculated by the unit of respective ones of the commands (Trika, [0031], the traffic controller counts the number of requests sent by each client 20 a-20 d by counting the requests sent from the three client pairs 28 associated with that client during a counting interval and calculates the current processing load for that client 20); and a command fetch unit configured to determine a priority order of the plurality of users based on the workload caused by executing the commands from each of the plurality of users (Trika, [0025], Each client routes requests to the request queues in the associated queue pairs 26 according to a priority assigned by the client; [0034], If the current processing load for the client exceeds the processing load quota for the client at block 102, the process branches to block 107; [0035], In block 109, the traffic controller checks the current WRRCs for the submission queues associated with the client; if they are the original WRRCs, the traffic controller resets the WRRCs for these submission queues to modified WRRCs such that at least some of the modified WRRCs are lower than the corresponding original WRRCs, none of the modified WRRCs are higher than the corresponding original WRRCs; [0036], In block 111, the traffic controller starts a throttling process for requests coming from the client. For example, the traffic controller may reduce the rate at which it takes requests from the client request queues 28 associated with the client; Fig.2), the priority order including a priority user who has caused a smaller workload compared to workloads of the plurality of users, and preferentially fetch, from the host, a command issued by the priority user (Trika, [0030], The traffic controller routes requests … so that requests from the request queue in each client queue pair are routed to the submission queue of the associated storage queue pair; [0035]-[0036]). Trika teaches calculating a workload by a unit of each of the commands, nevertheless, Trika does not explicitly teach the calculation is based on resource consumption of the memory device, as claimed. Trika teaches determining a priority order of the plurality of users based on the workload caused by executing the commands from each of the plurality of users, nevertheless, Trika does not explicitly teach the priority order including a priority user who has caused a smaller workload compared to workloads of the plurality of users, as claimed. Trika also does not explicitly teach a storage device comprising the memory device and the memory controller, as claimed. However, Trika in view of Pijewski teaches a command-unit workload calculator configured to calculate a workload by a unit of each of the commands, based on resource consumption of the memory device, which is generated by performing at least one memory operation included in each of the commands (Pijewski, [0044], an average read latency relative to the computing resource … the average write latency relative to the computing resource; [0055], The usage metric may be utilization-based, but it can also be based on other metric types, for example, I/O per second (IOPS), a sum of latency, or other metrics. It is noteworthy that utilization, in some contexts (e.g., queuing theory) has a specific meaning: the time a resource was busy.); a user-unit workload calculator configured to calculate a workload caused by each of the plurality of users, based on the workload calculated by the unit of respective ones of the commands (Pijewski, [0044], The metric is generated by multiplying an aggregate number of read requests for a tenant over the timespan by an average read latency relative to the computing resource, plus the product of the number of write requests and the average write latency relative to the computing resource; [0046]; [0052]-[0054]); the priority order including a priority user who has caused a smaller workload compared to workloads of the plurality of users (Pijewski, [0051], The analytics module 220 may compare the raw request data for each tenant to the global priority value and throttle tenants that generate requests for the computing resource that exceed the global priority. In other embodiments, the throttling kernel 200 may simply compare raw request numbers for each of the tenants relative to one another and selectively throttle tenants as their raw request numbers increase or decrease over time). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Trika also does not explicitly teach a storage device comprising the memory device and the memory controller, as claimed. However, the combination of Trika in view of Nagasaka teaches a storage device comprising (Nagasaka, [0024], The memory system 3 is also referred to as a storage device. The memory system 3 is realized as, for example, a solid state drive (SSD); Fig.1): a memory device comprising at least one memory chip (Nagasaka, [0033], The memory system 3 includes, for example … and a NAND flash memory 5); and a memory controller configured to communicate with a host and control the memory device in response to commands (Nagasaka, [0033],The memory system 3 includes, for example, a controller 4; [0021], The controller acquires a request from a first submission queue included in a host … The controller causes the nonvolatile memory to execute a process according to each of the one or more commands stored in the storage area. The controller controls throttling of acquisition of requests from the first submission queue). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Nagasaka to include the controller that controls memory access as well as command fetching within a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Nagasaka because it improves efficiency of the storage system disclosed in the combination Trika by providing a compact storage system with a storage controller located inside a storage device. Claim 1 has similar limitations as claim 16 and is rejected for the similar reasons. Regarding claim 11, Trika teaches an operating method of a memory controller (Trika, [0024], a traffic controller 24), the method comprising: performing at least one memory operation included in a first command (Trika, [0025]; [0027], SSD 22 includes a memory 38 and a fulfillment processor 40 which responds to incoming requests by performing the operations necessary to read data from or write data to the locations within memory 38 specified in the commands), the first command being issued by a first user and fetched from a host (Trika, [0024], where the client computers are virtual machines operating in hosts … The client computers issue IO commands such as “read” or “write” commands; [0030], The traffic controller routes requests … so that requests from the request queue in each client queue pair are routed to the submission queue of the associated storage queue pair); calculating a command-unit workload caused by the first command, based on resource consumption of a memory device, which is generated by performing each of the at least one memory operation (Trika, [0031], the measure of processing load is the number of IO commands per second … the traffic controller counts the number of requests sent by each client 20 a-20 d by counting the requests sent from the three client pairs 28 associated with that client during a counting interval and calculates the current processing load for that client 20); calculating a user-unit workload of the first user by adding the command-unit workload caused by the first command to a current workload of the first user (Trika, [0031], the traffic controller counts the number of requests sent by each client 20 a-20 d by counting the requests sent from the three client pairs 28 associated with that client during a counting interval and calculates the current processing load for that client 20); and preferentially fetching a command issued by a second user before a command issued by the first user based on the second user having a higher priority than the first user determined by a result of comparison of the command-unit workload caused by having performed the at least one memory operation in the first command of the first user with a command-unit workload caused by having performed at least one memory operation of a command of the second user (Trika, [0025], Each client routes requests to the request queues in the associated queue pairs 26 according to a priority assigned by the client; [0030], The traffic controller routes requests … so that requests from the request queue in each client queue pair are routed to the submission queue of the associated storage queue pair; [0034], If the current processing load for the client exceeds the processing load quota for the client at block 102, the process branches to block 107; [0035], In block 109, the traffic controller checks the current WRRCs for the submission queues associated with the client; if they are the original WRRCs, the traffic controller resets the WRRCs for these submission queues to modified WRRCs such that at least some of the modified WRRCs are lower than the corresponding original WRRCs, none of the modified WRRCs are higher than the corresponding original WRRCs; [0036], In block 111, the traffic controller starts a throttling process for requests coming from the client. For example, the traffic controller may reduce the rate at which it takes requests from the client request queues 28 associated with the client; Fig.2). Trika teaches calculating a command-unit workload caused by the first command, nevertheless, Trika does not explicitly teach the calculation is based on resource consumption of the memory device, as claimed. Trika also does not explicitly teach comparison of the command-unit workload caused by having performed the at least one memory operation in the first command of the first user with a command-unit workload caused by having performed at least one memory operation of a command of the second user, as claimed. However, Trika in view of Pijewski teaches calculating a command-unit workload caused by the first command, based on resource consumption of a memory device, which is generated by performing each of the at least one memory operation (Pijewski, [0044], an average read latency relative to the computing resource … the average write latency relative to the computing resource; [0055], The usage metric may be utilization-based, but it can also be based on other metric types, for example, I/O per second (IOPS), a sum of latency, or other metrics. It is noteworthy that utilization, in some contexts (e.g., queuing theory) has a specific meaning: the time a resource was busy); calculating a user-unit workload of the first user by adding the command-unit workload caused by the first command to a current workload of the first user (Pijewski, [0044], The metric is generated by multiplying an aggregate number of read requests for a tenant over the timespan by an average read latency relative to the computing resource, plus the product of the number of write requests and the average write latency relative to the computing resource; [0046]; [0052]-[0054]); comparison of the command-unit workload caused by having performed the at least one memory operation in the first command of the first user with a command-unit workload caused by having performed at least one memory operation of a command of the second user (Pijewski, [0051], The analytics module 220 may compare the raw request data for each tenant to the global priority value and throttle tenants that generate requests for the computing resource that exceed the global priority. In other embodiments, the throttling kernel 200 may simply compare raw request numbers for each of the tenants relative to one another and selectively throttle tenants as their raw request numbers increase or decrease over time). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Nagasaka also teaches an operating method of a memory controller, the method comprising: performing at least one memory operation included in a first command (Nagasaka, [0033],The memory system 3 includes, for example, a controller 4; [0021], The controller acquires a request from a first submission queue included in a host … The controller causes the nonvolatile memory to execute a process according to each of the one or more commands stored in the storage area. The controller controls throttling of acquisition of requests from the first submission queue; [0024]). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Nagasaka to include the controller that controls memory access as well as command fetching within a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Nagasaka because it improves efficiency of the storage system disclosed in the combination Trika by providing a compact storage system with a storage controller located inside a storage device. Regarding claims 2, 12, and 17, taking claim 17 as exemplary, the combination of Trika teaches all the features with respect to claim 16 as outlined above. The combination of Trika further teaches the storage device of claim 16, wherein the resource consumption comprises at least one of required time for a memory operation, required power for the memory operation, and an occupancy time of a buffer included in the storage device in the memory operation (Pijewski, [0055], The usage metric may be utilization-based, but it can also be based on other metric types, for example, I/O per second (IOPS), a sum of latency, or other metrics. It is noteworthy that utilization, in some contexts (e.g., queuing theory) has a specific meaning: the time a resource was busy). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Claims 2 and 12 have similar limitations as claim 17 and they are rejected for the similar reasons. Regarding claims 3 and 18, taking claim 18 as exemplary, the combination of Trika teaches all the features with respect to claim 16 as outlined above. The combination of Trika further teaches the storage device of claim 16, wherein the memory controller is configured to fetch the command from a plurality of command queues that are separately assigned to the plurality of users in the host (Trika, [0030], The traffic controller routes requests and completion commands so that requests from the request queue in each client queue pair are routed to the submission queue of the associated storage queue pair; Fig.1), and the command fetch unit comprises a command fetch scheduler configured to perform a scheduling operation such that the command is preferentially fetched from a command queue assigned to the priority user (Trika, [0025], Each client computer sends requests and receives completion commands through a plurality of client queue pairs 26 … Each client routes requests to the request queues in the associated queue pairs 26 according to a priority assigned by the client.; [0035]; [0036]; Pijewski, [0051]). Claim 3 has similar limitations as claim 18 and is rejected for the similar reasons. Regarding claims 4 and 19, taking claim 19 as exemplary, the combination of Trika teaches all the features with respect to claim 16 as outlined above. The combination of Trika further teaches the storage device of claim 16, wherein the memory controller communicates with the host according to an NVM express (NVMe) interface (Trika, [0025]; [0028]) and fetches the command from submission queues, which are included in the host and separately assigned to the plurality of users (Trika, [0024], where the client computers are virtual machines operating in hosts; [0025], Each client computer sends requests and receives completion commands through a plurality of client queue pairs 26 associated with that computer and accessible to traffic controller 24; [0036]; Fig.1). Claim 4 has similar limitations as claim 19 and is rejected for the similar reasons. Regarding claim 10, the combination of Trika teaches all the features with respect to claim 1 as outlined above. The combination of Trika further teaches the memory controller of claim 1, further comprising a memory operation processor (Trika, [0029], Traffic controller 24 includes a processor 39; Nagasaka, [0044], The controller 4 includes … a CPU 12) configured to control the processing of at least one memory operation included in each of the commands, wherein the command-unit workload calculator is configured to calculate a workload for each memory operation, based on the determined resource consumption (Trika, [0031]; Pijewski, [0044]; Nagasaka, [0021]), and the user-unit workload calculator is configured to add the workload calculated by a unit of the memory operation to the workloads of the plurality of users (Trika, [0031], The traffic controller also maintains a current processing load for each client which represents the actual processing load imposed by the requests sent from each computer … In this example, the traffic controller counts the number of requests sent by each client 20 a-20 d by counting the requests sent from the three client pairs 28 associated with that client during a counting interval and calculates the current processing load for that client 20; Pijewski, [0044]), and the memory operation processor is configured to perform a scheduling operation such that a memory operation in response to a command from a second user is executed at a point in time based on a workload of a first user becoming greater than a workload of the second user, during execution of memory operations in response to a command from the first user (Trika, [0030], [0035]-[0036]; Pijewski, [0047]; [0050]; [0051]). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users in the corresponding request queues and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Regarding claim 13, the combination of Trika teaches all the features with respect to claim 11 as outlined above. The combination of Trika further teaches the method of claim 11, further comprising: calculating a command-unit workload caused by a second command from the second user, based on resource consumption that is determined by performing at least one memory operation included in the second command (Trika, [0038], the traffic controller determines whether there are any other clients remaining unprocessed. If so, the process returns to block 101, selects the next client and repeats; Fig.2; Pijewski, [0044], an average read latency relative to the computing resource … the average write latency relative to the computing resource; [0055], The usage metric may be utilization-based, but it can also be based on other metric types, for example, I/O per second (IOPS), a sum of latency, or other metrics. It is noteworthy that utilization, in some contexts (e.g., queuing theory) has a specific meaning: the time a resource was busy); calculating a user-unit workload of the second user by adding a workload caused by the second command to a current workload of the second user (Trika, [0031]; Pijewski, [0044], The metric is generated by multiplying an aggregate number of read requests for a tenant over the timespan by an average read latency relative to the computing resource, plus the product of the number of write requests and the average write latency relative to the computing resource; [0046]; [0052]-[0054]); determining a priority of the first user and the second user based on the workload caused by having performed the at least one memory operation included in the second command (Trika, [0040]; Pijewski, [0043]; [0044]; [0047] ); and preferentially fetching the command issued by the first user before the command issued by the second user based on the workload of the second user being greater than the workload of the first user (Trika, [0025]; [0030], [0035]-[0036]; Pijewski, [0051]). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Regarding claim 21, the combination of Trika teaches all the features with respect to claim 1 as outlined above. The combination of Trika further teaches the memory controller of claim 1, wherein the workload by the unit of each command is calculated based upon an operation (Note - average) using results of calculating resources consumed during each NAND operation of a plurality of NAND operations (Trika, [0044], an average read latency relative to the computing resource),. It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to determine command-unit workload based on average read/write latency relative to a computing resource. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). Claim(s) 5 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Trika, Pijewski, and Nagasaka as applied to claim 4 above, and further in view of Hwang (US 2017/0031832), hereinafter Hwang. Regarding claim 5, the combination of Trika teaches all the features with respect to claim 4 as outlined above. The combination of Trika further teaches the memory controller of claim 4, wherein the memory controller is configured to generate a plurality of virtual functions upon a request from the host, and the plurality of virtual functions correspond to virtual machines generated in the host, and transmit commands issued by different users to different virtual functions in the memory controller, as claimed. However, the combination of Trika in view of Hwang teaches the memory controller of claim 4, wherein the memory controller is configured to generate a plurality of virtual functions upon a request from the host (Hwang, [0007], wherein the storage device generates at least one virtual device in response to a device virtualization request received from the host; Claim 6), and the plurality of virtual functions correspond to virtual machines generated in the host (Hwang, [0186], assigns the virtual function devices VF1 and VFj to the virtual machines VMs; Trika, [0024], where the client computers are virtual machines ), and transmit commands issued by different users to different virtual functions in the memory controller (Hwang, [0020], the storage controller can start receiving IO requests from the virtual functions ). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Hwang to generate virtual functions, assign virtual functions to virtual machines, and receive I/O requests from virtual functions for a storage device to process. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Hwang because it improves flexibility and security of the storage system disclosed in the combination of Trika by directly connecting a virtual machine with a virtual function of a storage device, rather than to a virtual machine monitor. Claim(s) 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Trika, Pijewski, and Nagasaka as applied to claim 4 above, and further in view of Kona (US2021/0105317), hereinafter Kona. Regarding claim 6, the combination of Trika teaches all the features with respect to claim 4 as outlined above. The combination of Trika does not explicitly teach the memory controller of claim 4, wherein the user-unit workload calculator is configured to determine a user that has caused a user-unit workload in which the workload calculated by the unit of the command is to be reflected, based on information about the submission queue included in each of the commands, as claimed. However, the combination of Trika in view of Kona teaches the memory controller of claim 4, wherein the user-unit workload calculator is configured to determine a user that has caused a user-unit workload in which the workload calculated by the unit of the command is to be reflected, based on information about the submission queue included in each of the commands (Kona, [0039], The requests may include an identifier of the tenant associated with user 114B, e.g. a tenant name or other unique identifier. With this information, services 110 may track usage of underlying resources 112 on a per-tenant basis; Trika, [0025], the client queue pairs are designated by ordinal numbers 0-11; queue pairs numbered 0, 1 and 2 are associated with the client computer 20 a). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Kona to include information in each of the I/O commands to identify a corresponding submission queue that is associated with its user, such as ordinal numbers. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Kona because it improves efficiency of the storage system disclosed in the combination of Trika by ensuring I/O commands are routed to correct destination queues. Claim(s) 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Trika, Pijewski, and Nagasaka as applied to claim 1 above, and further in view of Cho (US 11,662,947), hereinafter Cho. Regarding claim 7, the combination of Trika teaches all the features with respect to claim 1 as outlined above. The combination of Trika further teaches the memory controller of claim 1, wherein the command fetch unit is configured to fetch a first group of commands, and fetch a next second group of commands by applying priority to each of the plurality of users, based on calculated workloads of the plurality of users after the first group of commands are executed (Trika, [0025], Each client routes requests to the request queues in the associated queue pairs 26 according to a priority assigned by the client; [0040]; [0041]; [0045]; Fig.2; Pijewski, [0043]; [0045]), and each of the first group of commands and the next second group of commands comprises at least two commands. The combination of Trika does not explicitly teach each of the first group of commands and the next second group of commands comprises at least two commands, as claimed. However, the combination of Trika in view of Cho teaches the storage device of claim 1, wherein the command fetch unit is configured to fetch a first group of commands, and fetches a next second group of commands by applying priority to each of the plurality of users, based on the calculated workloads of the plurality of users after the first group of commands are executed (Cho, col.8, lines 10-25; Fig.4, steps s406, s408;), and each of the first group of commands and the second group of commands comprises at least two commands (claim 1, perform a pre-operation on the one or more commands based on the command information, and fetch the one or more commands from the submission queue according to a first order). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Cho to fetch a plurality of commands in groups based on determined priorities. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Cho because it improves efficiency and performance of the storage system disclosed in the combination of Trika by fetching commands in groups based on desired priority. Claim(s) 8 and 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Trika, Pijewski, and Nagasaka as applied to claims 1 and 11 respectively above, and further in view of Liu et al. (US 2018/0188970), hereinafter Liu. Regarding claims 8 and 14, taking claim 8 as exemplary, the combination of Trika teaches all the features with respect to claim 1 as outlined above. The combination of Trika further teaches the memory controller of claim 1, wherein the resource consumption is calculated through an operation using a first value related to time (Pijewski, [0044]; [0055], The usage metric may be utilization-based, but it can also be based on other metric types, for example, I/O per second (IOPS), a sum of latency, or other metrics. It is noteworthy that utilization, in some contexts (e.g., queuing theory) has a specific meaning: the time a resource was busy) required for a memory operation and a second value related to power required for the memory operation, and the operation comprises a weight value operation of giving a weight value to at least one of the first value and the second value (Pijewski, [0046], The metric generator 215 may weight the raw data based upon temporal aspects of the raw data. For example, new I/O requests may be given greater weight than relatively older I/O requests). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Pijewski to compare workload/usage among a plurality of users and prioritize the user with the smallest workload/usage when fetching a request from a host to a storage device. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Pijewski because it improves efficiency of the storage system disclosed in Trika by ensuring fair access to computing resource across multiple users (Pijewski, [0045]). The combination of Trika does not explicitly teach a second value related to power required for the memory operation, as claimed. However, the combination of Trika in view of Liu teaches second value related to power required for the memory operation (Liu, [0044], the scheduling module 234 may also determine a schedule (e.g., create a schedule, update/modify a schedule, etc.) based on one or more performance metrics 330. In one embodiment, the performance metrics 330 may include power consumption). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified Trika to incorporate teachings of Liu to determine a scheduling/fetching order for commands/requests from different clients by using both time and power metrics as a resource cost. A person of ordinary skill in the art would have been motivated to combine the teachings of Trika with Liu because it improves efficiency of the storage system disclosed in Trika by selecting a command that satisfies a allocated resource consumption budget. Claim 14 has similar limitations as claim 8 and is rejected for the similar reasons. Claim(s) 9 and 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Trika, Pijewski, Nagasaka and Liu as applied to claims 8 and 14 respectively above, and further in view of Prabhakar et al. (US 2022/0404888), hereinafter Prabhakar. Regarding claims 9 and 15, taking claim 9 as exemplary, the combination of Trika teaches all the features with respect to claim 8 as outlined above. The combination of Trika does not explicitly teach the memory controller of claim 8, wherein, based on a detection result of a battery level of a storage device adopting the memory controller, in response to the battery level being low, a weight value given to the second value is greater than when the battery level is high, as claimed. However, the combination of Trika in view of Prabhakar teaches the memory controller of claim 8, wherein, based on a detection result of a battery level of a storage device adopting the memory controller, in response to the battery level being low, a weight value given to the second value is greater than when the battery level is high (Prabhakar, [0082], Where the power limit has been reached, the method 400 proceeds to operation 407 and the power budget manager 142 increases the throttling score. Where the power limit has not been reached, the method 400 proceeds to operation 409 and the power budget manager 142 reduces the throttling score). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Trika to incorporate teachings of Prabhakar to dynamically modify a weight value based on status of power level. A person of ordinary skill in the art would have been motivated to combine the teachings of the combination of Trika with Prabhakar because it improves reliability of the storage system disclosed in the combination of Trika by performing storage operations according to different levels of power budget. Claim 15 has similar limitations as claim 9 and is rejected for the similar reasons. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Jung et al. (US11,086,528) teaches a storage device comprising a memory controller including a throttling manager that adjusts a throttling rate. Any inquiry concerning this communication or earlier communications from the examiner should be directed to NANCI N WONG whose telephone number is (571)272-4117. The examiner can normally be reached Monday-Friday 9am -6pm. 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, Arpan Savla can be reached at 571-272-1077. 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. /NANCI N WONG/Primary Examiner, Art Unit 2137
Read full office action

Prosecution Timeline

Show 7 earlier events
Nov 20, 2025
Interview Requested
Dec 09, 2025
Examiner Interview Summary
Dec 09, 2025
Applicant Interview (Telephonic)
Jan 12, 2026
Response after Non-Final Action
Jan 23, 2026
Examiner Interview Summary
Feb 11, 2026
Request for Continued Examination
Feb 24, 2026
Response after Non-Final Action
Aug 05, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12704982
Lowering Emergency Capacity Reservations for Storage Systems
3y 0m to grant Granted Aug 11, 2026
Patent 12693790
MITIGATING SIESMIC EVENTS VIA HIGHLY AVAILABLE VOLUMES
3y 1m to grant Granted Jul 28, 2026
Patent 12669934
APPARATUS, SYSTEMS AND METHODS FOR PROVIDING INPUT/OUTPUT (IO) REQUEST REROUTING
2y 6m to grant Granted Jun 30, 2026
Patent 12664090
Dynamic Garbage Collection Operations
2y 10m to grant Granted Jun 23, 2026
Patent 12645380
DATA TRANSFORM ACCELERATION
2y 11m to grant Granted Jun 02, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
87%
Grant Probability
99%
With Interview (+22.7%)
2y 6m (~2m remaining)
Median Time to Grant
High
PTA Risk
Based on 463 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

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

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

Free tier: 3 strategy analyses per month