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 .
Response to Amendment
Applicant’s Remarks/Arguments filed on January 5th, 2026, have been carefully considered.
No claims have been amended, added or canceled.
Claims 1-20 are currently pending in the instant application.
Claim Rejections - 35 USC § 102
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 the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-5, 8-11, and 14-18 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Thangaraj et al. [US2016/0117105]. Thangaraj teaches method and system for throttling bandwidth based on temperature.
Regarding claims 1, 8, and 14, Thangaraj teaches method for controlling executions of input-output (I/O) commands [Thangaraj abstract, middle lines “…limiting bandwidth used for transmitting data between a storage device of the storage system and a host…”], performed by a processing unit [Thangaraj paragraph 0026, middle lines “…one or more processors…”], comprising:
obtaining a current temperature of a device side [Thangaraj paragraph 0013, middle lines “…a determination that a current temperature of the storage device…”], wherein the device side comprises a flash controller and a flash module [Thangaraj paragraph 0026, first lines “…a storage medium (e.g., comprising one or more non-volatile storage devices, such as flash memory devices)…”], and the flash controller is coupled to the flash module and comprises the processing unit [Thangaraj paragraph 0028, middle lines “…which includes storage controller 124, one or more non-volatile memory (NVM) controllers 130 such as flash controllers, and non-volatile memory (e.g., one or more NVM device(s) 140…”];
fetching a plurality of I/O commands from a command queue during a fetching time period [Thangaraj paragraph 0081, first lines “…during the first time period (402), the storage device receives (414) a request to perform a respective memory operation on the one or more memory devices…” and paragraph 0004, middle lines “…To facilitate this process, memory controllers are often constructed with command queues that help optimize command executions across multiple memory cells….”(Giving fetching its BRI reads on executing commands from the host.)], and executing the plurality of I/O commands to read user data from the flash module [Thangaraj paragraph 0041, last lines “…a read operation is initiated when computer system (host) 110 sends one or more host read commands (e.g., via data connections 101, or alternatively a separate control line or bus) to storage controller 124 requesting data from NVM devices 140, 142…”], and/or program user data into the flash module in response to the current temperature of the device side exceeding a threshold [Thangaraj paragraph 0074, last lines “…the bandwidth credit pool imposes a bandwidth limit on the processing of input/output (I/O) operations (e.g., read and write memory operations) requested by the host, such as 10,000 IOPS (I/O operations per second). As such, in this example, the first time period is 1 second and the initial balance of the bandwidth credit pool is 10,0000. For example, with respect to FIG. 3, the initial I/O bandwidth limit for storage device 120 is X IOPS (e.g., 10,000 IOPS) at temperatures lower than 65° C…” and paragraph 0070, last lines “…bandwidth throttling module 224 sets storage device 120 in single-queue depth mode if (A) the temperature exceeds a predefined threshold upon start-up, or (B) storage device 120 has remained idle for 60 seconds or more and the temperature has crossed a temperature threshold…” and paragraph 0076, fist lines “…During a first time period (402), in accordance with a determination that a current temperature of the storage device exceeds a first predetermined threshold temperature and the current temperature of the storage device satisfies one or more temperature criteria, the storage device reduces (410) an initial value of the bandwidth credit pool for a second time period according to a first adjustment factor corresponding to the first predetermined temperature threshold…”(Where it’s possible to exceed a lower threshold as well as exceed a higher threshold.)];
calculating a length of an actual execution time period for the plurality of I/O commands [Thangaraj paragraph 0082, first lines “…based on an estimated completion time for the memory operation type (e.g., an estimate based on the average completion time for memory operations of the respective type)…”]., and calculating a length of a pause time period according to the length of the actual execution time period after the plurality of I/O commands are executed completely [Thangaraj paragraph 0084, lines “…adds the respective memory operation to a deferred memory operations queue…” and paragraph 0087, most lines “…the first time period and the second time period correspond to (424) a predetermined length of time. In some embodiments, the predetermined parameters table 240 stores the predetermined length of time for the first time period and the second time period (e.g., 1 second). In some embodiments, the predetermined length of time is tunable according to the specification of a user of storage device 120 or data storage system 100…” and paragraph 0013, last lines “…a second time period according to a first adjustment factor corresponding to the first predetermined temperature threshold, where the second time period is subsequent to the first time period…” and paragraph 0014, last lines “…the second time period according to the first adjustment factor corresponding to the first predetermined temperature threshold…” and paragraph 0087, last lines “the predetermined length of time is tunable according to the specification of a user of a storage device 120 or data storage system 100…”] and
not fetching and executing any I/O command in the command queue during the pause time period [Thangaraj paragraph 0084, first lines “…a determination that there are no credits remaining in the bandwidth credit pool for the first time period, the storage device (418): forgoes performance of the respective memory operation…”].
Regarding claims 2, 9, and 15, as per claim 1, Thangaraj teaches the processing unit comprises a temperature sensor [Thangaraj paragraph 0075, last lines “…the storage device includes a plurality of temperature sensors (e.g., located at NVM devices 140, 142 and the case of storage device 120). In some embodiments, the detected temperature is a peak temperature from a single sensor or the average of the plurality of temperature sensors…”], and the temperature sensor is arranged operably to:
measure a current temperature of the processing unit as the current temperature of the device side [Thangaraj paragraph 0089, middle lines “…monitors (434) a temperature of the storage device…”].
Regarding claims 3, 10, and 16, as per claim 1, Thangaraj teaches querying the flash module through a flash interface (I/F) to obtain a current temperature of the flash module as the current temperature of the device side [Thangaraj paragraph 0013, most lines “…monitoring a temperature of the storage device; and, in accordance with a determination that a current temperature of the storage device exceeds a first predetermined threshold temperature and the current temperature of the storage device satisfies one or more temperature criteria…”].
Regarding claims 4, 11, and 17, as per claim 1, Thangaraj teaches providing a temperature compensation table [Thangaraj paragraph 0063-0064, “…memory operations table 238…predetermined parameters table…”] comprising a plurality of records,
wherein each record comprises a temperature range, and information about a preset fetching time period corresponding to the temperature range [Thangaraj paragraph 0064, most lines “…predetermined parameters table 240 storing a plurality of predetermined parameters for determining an initial value of the bandwidth credit pool, the predetermined length of time corresponding to the time periods, the adjustment factors, a predetermined number of memory operations corresponding to an initial bandwidth limit, the temperature thresholds, and the predetermined reporting temperature…”];
obtaining a record matching the current temperature of the device side from the temperature compensation table [Thangaraj paragraph 0069, last lines “…For temperatures lower than 65° C. (i.e., the “No Throttling” region), bandwidth throttling module 224 does not impose any throttling on the I/O bandwidth. Instead, in the “No Throttling” region, the initial I/O bandwidth limit is a predetermined number of memory operations such as 10,000 IOPS (input/output operations per second). In some embodiments, the predetermined number of memory operations is a tunable parameter that is stored in predetermined parameters table 240…”];
obtaining a length of the preset fetching time period from the matched record [Thangaraj paragraph 0087, most lines “…the first time period and the second time period correspond to (424) a predetermined length of time. In some embodiments, the predetermined parameters table 240 stores the predetermined length of time for the first time period and the second time period (e.g., 1 second). In some embodiments, the predetermined length of time is tunable according to the specification of a user of storage device 120 or data storage system 100…”];
setting a fetching timer to count to the fetching time period according to the length of the preset fetching time period [Thangaraj paragraph 0087, most lines “…e first time period and the second time period correspond to (424) a predetermined length of time. In some embodiments, the predetermined parameters table 240 stores the predetermined length of time for the first time period and the second time period (e.g., 1 second). In some embodiments, the predetermined length of time is tunable according to the specification of a user of storage device 120 or data storage system 100…”]; and
stopping fetching any I/O command from the command queue in response to a signal indicating that the fetching timer has expired, which is received from the fetching timer [Thangaraj paragraph 0084, first lines “…a determination that there are no credits remaining in the bandwidth credit pool for the first time period, the storage device (418): forgoes performance of the respective memory operation…”].
Regarding claims 5, 11, and 18, as per claim 1, Thangaraj teaches the actual execution time period of the plurality of I/O commands indicates a time interval starting from setting the fetching timer until executions of the plurality of I/O commands complete [Thangaraj paragraph 0082, first lines “…based on an estimated completion time for the memory operation type (e.g., an estimate based on the average completion time for memory operations of the respective type)…”].
Allowable Subject Matter
Claims 6-7, 12-13, and 19-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Response to Arguments
Applicant's arguments filed January 5th, 2026, have been fully considered but they are not persuasive.
Applicant recites the current claims in pages 10-12. Applicant reproduces examiners cited portions of the rejection in pages 12-14. Applicant provides one paragraph at the top of page 14 of the response to state that the cited prior art does not teach the claim limitation of calculating a length of a pause time period. The applicant appears to be arguing against the use of weights that are assigned to respective memory operation types as being entirely different from a calculation of the length of pause time. The examiner is not relying on the weights to teach pause times as the weights are used to teach an “estimated completion time” for that operation type.
Moreover, the applicant fails to provide a nuanced and detailed argument as to why the citation fails to teach a calculation of a length of a pause time period. Applicant only states that it doesn’t teach without any detailed explanation or providing any evidence or rational as to why the examiner interpretation does not read on the claims. The examiner has determined the prior art to teach, in paragraph 0014, the length of a pause time period which examiner assumes would be the time that is paused after the first time, is “the second time period according to the first adjustment factor corresponding to the first predetermined temperature threshold”. Thus, the second time period or paused period is based on a calculation which reads on the claim limitation.
Applicant’s further discussion in the response on pages 14-15 are merely assertions that the prior art does not and cannot teach the same mentioned limitation without any additional rational or evidence.
For these reasons, the examiner has determined to maintain the prior art rejection.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ERIC CARDWELL whose telephone number is (571)270-1379. The examiner can normally be reached on Monday - Friday 10-6pm EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Reginald Bragdon can be reached on (571) 272-4204. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ERIC CARDWELL/Primary Examiner, Art Unit 2139