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 .
This office action is in response to Applicant’s Amendment filed 04/01/2026. Claims 1-18,21 and 23-27 are pending. Claims 1, 5, 8, 12, 15, and 21 have been amended. Claims 19-20 and 22 have been cancelled. New Claims 23-27 have been added. Any examiner’s note, objection, or rejection not repeated is withdrawn due to Applicant’s amendment.
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 submission filed on 04/01/2026 has been entered.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-18, 21 and 23-27 are rejected under 35 U.S.C. 103 as being unpatentable over Sahu et al. (US 20220164011 A1) in view of Aguilar, Jr. et al. (US 20070260895 A1), and further in view of Devulapalli et al. (US 20190042979 A1), hereinafter referred to as Sahu, Aguilar, and Devulapalli, respectively.
Regarding Claim 1, Sahu discloses A computer-implemented method for proactive thermal management ([0036] method 400 for dynamic temperature threshold adjustment of an electronic device. Please note that the method 400 for dynamic temperature threshold adjustment of an electronic device corresponds to Applicant’s computer-implemented method for proactive thermal management.),
the method comprising: receiving a job packet, wherein the job packet is associated with a packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that receiving data including user-specific characteristics for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, wherein the job packet is associated with a packet profile, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet, and the user-specific characteristics correspond to a packet profile containing the parameters.);
determining one or more performance parameters associated with a performance of the job packet as defined by the packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that receiving data by the threshold determination function 420 to determine a temperature threshold for an electronic device based on user-specific characteristics such as the expected device performance level tradeoff corresponds to Applicant’s determining one or more performance parameters associated with a performance of the job packet as defined by the packet profile, as the input data defining expected performance level tradeoffs corresponds to a packet profile defining performance parameters associated with a performance of the job packet.);
generating, prior to the execution of the job packet, a thermal management procedure based upon the one or more performance parameters ([0038] Threshold determination function 420 may employ the input data it receives to generate a dynamic temperature threshold 450 for the electronic device to improve or maximize the user's experience in using the electronic device. Please note that the threshold determination function 420 generating a dynamic temperature threshold 450 using input data corresponds to Applicant’s generating a proactive thermal management procedure based upon the one or more performance parameters, as its dynamic nature corresponds to being proactive since it maintains an optimal temperature in the electronic device based on input data, corresponding to performance parameters. Furthermore, as the threshold is generated and set using input data to improve user experience, this corresponds to the generation being prior to the execution of the job packet, as it is known to one of ordinary skill in the art that in order to assess the threshold during the execution of the job packet it must be initialized prior to the execution.);
and associating the proactive thermal management procedure with the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that by having the threshold determination function 420 corresponding to the proactive thermal management procedure utilize user-specific characteristics in its configuration, it is in effect associating that version of the procedure with a distinct requesting user, corresponding to associating it with the job packet.).
Sahu does not explicitly disclose predicted performance parameters;
proactive thermal management procedure;
However, Aguilar discloses predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
proactive thermal management procedure ([0151] the state of the computer system is controlled to avoid and not just react to thermal limits. Please note that controlling the state of the computer system to avoid and not just react to thermal limits corresponds to Applicant’s proactive thermal management procedure.)
Sahu and Aguilar are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu to incorporate the teachings of Aguilar to modify the thermal management procedure to predict performance parameters, and conduct the procedure proactively, allowing for improved thermal performance of the system and avoid throttling, as described in Aguilar.
Sahu-Aguilar does not explicitly disclose the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet.
However, Devulapalli discloses the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet ([0028] cooling software (e.g., an agent) may automatically learn the system's thermal behavior by interacting with the CPU. The agent may learn to take better or optimal actions […] embodiments may provide an improved or optimal cooling solution that may be proactive and requires little or no user intervention (e.g., adapting over time ; [0030] Some embodiments may learn about the system's thermal behavior and use the learned information to apply improved or optimal cooling policies. […] Some embodiments may adapt to changing environments, learning improved or optimal cooling policies continuously over time. Please note that the system learning optimal cooling policies continuously over time and learning the system’s thermal behavior to take better actions corresponds to Applicant’s proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, as the profile of the heat dissipation required by the system is inherently produced over time by the learning system.)
Sahu-Aguilar and Devulapalli are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu-Aguilar to incorporate the teachings of Devulapalli to modify the proactive thermal management procedure predicting performance parameters to have a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, allowing for optimized power consumption and reducing throttling and system scaling, as described in Devulapalli.
Regarding Claim 2, Sahu-Aguilar-Devulapalli as described in Claim 1, Aguilar further discloses determining a selected processing core from amongst a plurality of processing cores for the performance ([0146] thermal data is used to select which core is best for running the application on. Please note that selecting which core is best for running the application on corresponds to Applicant’s determining a selected processing core from amongst a plurality of processing cores for the performance, as it selects a core for the running of an application.);
transmitting the proactive thermal management procedure to a thermal management device ([0033] As mentioned above, data collection module 304 may repeatedly or continually collect the measurable characteristics and the current temperature values for availability to threshold determination module 306 and temperature comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation. Please note that the data collection module 304 collecting measurable characteristics and current temperature values for availability to threshold determination module 306 and determination comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation corresponds to Applicant’s transmitting the proactive thermal management procedure to a thermal management device. This is because the continual determination being performed by the system of whether a heat mitigation operation should be performed corresponds to the proactive thermal management procedure, and in order to have the electronic device 300 perform the heat mitigation operation, corresponding to the thermal management device, there must inherently be a means for transmitting the procedure.);
and transmitting to the selected processing core ([0146] thermal data is used to select which core is best for running the application on. Please note that running the application once the core is selected corresponds to transmitting to the selected processing core, as it is known in the art that running an application on a core requires transmitting the necessary data for its execution to that core.).
Sahu further discloses the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device. Please note that receiving data for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet.)
Regarding Claim 3, Sahu-Aguilar-Devulapalli as described in Claim 2, Aguilar further discloses determining the selected processing core further comprises: receiving one or more operating characteristics of each of the plurality of processing cores ([0145] generation of a hardware thermal profile for a multi-core processor in accordance with an illustrative embodiment. A hardware thermal profile is a data structure containing information about the thermal performance of the hardware or system. Some cores on a processor may have better thermal characteristics due to the cores location relative to other cores and the system's cooling solution. Please note that creating a thermal profile for a multi-core processor because some cores may have better thermal characteristics corresponds to Applicant’s determining the selected processing core further comprising receiving one or more operating characteristics of each of the plurality of processing cores, as the thermal characteristics of each core correspond to operating characteristics, which are a criterion upon which the optimal core is selected.);
and determining the selected processing core based upon the one or more operating characteristics ([0146] a selection is made of one or more previously gathered and stored software thermal profiles of the power and/or performance of the multi-core system […] The thermal index generated from the sampled thermal data is used to select which core is best for running the application on. Please note that a selected thermal profile of the system including the performance being used to select the best processing core corresponds to Applicant’s determining the selected processing core based upon the one or more operating characteristics, i.e., the stored thermal profile)
predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
Sahu further discloses and the one or more performance parameters of the job packet ([0037] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that the input data defining expected performance level tradeoffs corresponds to performance parameters of the job packet.).
Regarding Claim 4, Sahu-Aguilar-Devulapalli as described in Claim 2, Sahu further discloses the proactive thermal management procedure is configured to cause dissipation of heat associated with the selected processing core that is generated in response to the performance of the job packet ([0018] computer-implemented method 200 for dynamic adjustment of a temperature threshold for an electronic device; [0023] at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. Please note that the method 200 containing step 240 carrying out the thermal management procedure in response to input data corresponds to Applicant’s performance of the job packet, and the heat mitigation operation corresponds to Applicant’s causing dissipation of heat associated with the selected processing core generated in response to performance, since the electronic device corresponds to Applicant’s selected processing core. This is because the heat mitigation operation of step 250 is responsive to the temperature exceeding the threshold, which may occur while the job packet is executing.).
Regarding Claim 5, Sahu-Aguilar-Devulapalli as described in Claim 3, Sahu further discloses the proactive thermal management procedure is configured to dynamically modify a supplied cooling amount ([0023] At step 240, the current temperature of the electronic device may be compared to the current temperature threshold. Further, at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. Please note that comparing the current temperature to the current temperature threshold and initiating the heat mitigation operation to lower the current temperature if it exceeds the threshold corresponds to Applicant’s proactive thermal management procedure being configured to dynamically modified the supplied cooling amount, as it is comparing the current temperature to the threshold on an ongoing basis to perform cooling.)
Aguilar further discloses based upon variation in the one or more operating characteristics of the selected processing core during performance of the job packet ([0146] While the workloads are being executed, sampling of the thermal state in the multi-core processor is performed (step 1004). For a hardware thermal profile, workloads are selected to represent the maximum thermal operation of the processor. The temperature is sampled by reading the current or maximum temperature registers periodically while the application is running and storing the information into a data structure […] The stored information from the sampling of the thermal state of the multi-core processor in combination with the selected software thermal profiles is utilized to optimally manage the multi-core system. Please note that sampling the temperature of the cores while the application is running and using the stored information to optimally manage the system corresponds to Applicant’s modifying based on upon variation in the one or more operating characteristics of the selected processing core during performance of the job, as the management procedure is modified in response to the performance of the application by the cores by measuring the operating characteristics, i.e., the thermal state, of the cores, including the selected core.).
Regarding Claim 6, Sahu-Aguilar-Devulapalli as described in Claim 5, Sahu further discloses wherein a maximum supplied cooling amount coincides with a maximal thermal load of the selected processing core during performance of the job packet ([0023] At step 240, the current temperature of the electronic device may be compared to the current temperature threshold. Further, at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. […] In yet other examples, the heat mitigation operation may include mechanical heat reduction techniques, such as increased fan speeds, activation of previously inactive fans, and so on to reduce the current temperature of the electronic device. Please note that the temperature threshold corresponds to Applicant’s maximal thermal load, as it is a value that cannot be exceeded, and initiating the heat mitigation operation of the electronic device, corresponding to the selected processing core, corresponds to the maximum supplied cooling amount that coincides with the maximum thermal load, as the maximum supplied cooling via fans and other temperature reduction methods is maximized once the temperature threshold is reached during performance of the job packet.).
Regarding Claim 7, Sahu-Aguilar-Devulapalli as described in Claim 2, Aguilar further discloses modifying the proactive thermal management procedure in response to the performance of the job packet by the selected processing core ([0146] While the workloads are being executed, sampling of the thermal state in the multi-core processor is performed (step 1004). For a hardware thermal profile, workloads are selected to represent the maximum thermal operation of the processor. The temperature is sampled by reading the current or maximum temperature registers periodically while the application is running and storing the information into a data structure […] The stored information from the sampling of the thermal state of the multi-core processor in combination with the selected software thermal profiles is utilized to optimally manage the multi-core system. Please note that sampling the temperature of the cores while the application is running and using the stored information to optimally manage the system corresponds to Applicant’s modifying the proactive thermal management procedure in response to the performance of the job packet by the selected processing core, as the management procedure is modified in response to the performance of the application by the cores, including the selected core.).
Regarding Claim 8, Sahu discloses A system comprising: a plurality of processing cores ([0063] As detailed above, the computing devices and systems described […] these computing device(s) may each include at least one memory device and at least one physical processor. Please note that a computing system including physical processors corresponds to Applicant’s system comprising a plurality of processing cores.):
receive a job packet associated with a packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that receiving data including user-specific characteristics for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, wherein the job packet is associated with a packet profile, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet, and the user-specific characteristics correspond to a packet profile containing the parameters.);
determine one or more performance parameters associated with a performance of the job packet as defined by the packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that receiving data by the threshold determination function 420 to determine a temperature threshold for an electronic device based on user-specific characteristics such as the expected device performance level tradeoff corresponds to Applicant’s determining one or more performance parameters associated with a performance of the job packet as defined by the packet profile, as the input data defining expected performance level tradeoffs corresponds to a packet profile defining performance parameters associated with a performance of the job packet.);
generate, prior to the execution of the job packet, a thermal management procedure based upon the one or more performance parameters ([0038] Threshold determination function 420 may employ the input data it receives to generate a dynamic temperature threshold 450 for the electronic device to improve or maximize the user's experience in using the electronic device. Please note that the threshold determination function 420 generating a dynamic temperature threshold 450 using input data corresponds to Applicant’s generating a proactive thermal management procedure based upon the one or more performance parameters, as its dynamic nature corresponds to being proactive since it maintains an optimal temperature in the electronic device based on input data, corresponding to performance parameters. Furthermore, as the threshold is generated and set using input data to improve user experience, this corresponds to the generation being prior to the execution of the job packet, as it is known to one of ordinary skill in the art that in order to assess the threshold during the execution of the job packet it must be initialized prior to the execution.);
and associate the proactive thermal management procedure with the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that by having the threshold determination function 420 corresponding to the proactive thermal management procedure utilize user-specific characteristics in its configuration, it is in effect associating that version of the procedure with a distinct requesting user, corresponding to associating it with the job packet.).
Sahu does not explicitly disclose predicted performance parameters;
proactive thermal management procedure;
However, Aguilar discloses predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
proactive thermal management procedure ([0151] the state of the computer system is controlled to avoid and not just react to thermal limits. Please note that controlling the state of the computer system to avoid and not just react to thermal limits corresponds to Applicant’s proactive thermal management procedure.)
Sahu and Aguilar are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu to incorporate the teachings of Aguilar to modify the thermal management procedure to predict performance parameters, and conduct the procedure proactively, allowing for improved thermal performance of the system and avoid throttling, as described in Aguilar.
Sahu-Aguilar does not explicitly disclose the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet.
However, Devulapalli discloses the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet ([0028] cooling software (e.g., an agent) may automatically learn the system's thermal behavior by interacting with the CPU. The agent may learn to take better or optimal actions […] embodiments may provide an improved or optimal cooling solution that may be proactive and requires little or no user intervention (e.g., adapting over time ; [0030] Some embodiments may learn about the system's thermal behavior and use the learned information to apply improved or optimal cooling policies. […] Some embodiments may adapt to changing environments, learning improved or optimal cooling policies continuously over time. Please note that the system learning optimal cooling policies continuously over time and learning the system’s thermal behavior to take better actions corresponds to Applicant’s proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, as the profile of the heat dissipation required by the system is inherently produced over time by the learning system.)
Sahu-Aguilar and Devulapalli are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu-Aguilar to incorporate the teachings of Devulapalli to modify the proactive thermal management procedure predicting performance parameters to have a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, allowing for optimized power consumption and reducing throttling and system scaling, as described in Devulapalli.
Regarding Claim 9, Sahu-Aguilar-Devulapalli as described in Claim 8, Aguilar further discloses determine a selected processing core from amongst the plurality of processing cores for the performance ([0146] thermal data is used to select which core is best for running the application on. Please note that selecting which core is best for running the application on corresponds to Applicant’s determining a selected processing core from amongst a plurality of processing cores for the performance, as it selects a core for the running of an application.);
transmit the proactive thermal management procedure to a thermal management device ([0033] As mentioned above, data collection module 304 may repeatedly or continually collect the measurable characteristics and the current temperature values for availability to threshold determination module 306 and temperature comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation. Please note that the data collection module 304 collecting measurable characteristics and current temperature values for availability to threshold determination module 306 and determination comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation corresponds to Applicant’s transmitting the proactive thermal management procedure to a thermal management device. This is because the continual determination being performed by the system of whether a heat mitigation operation should be performed corresponds to the proactive thermal management procedure, and in order to have the electronic device 300 perform the heat mitigation operation, corresponding to the thermal management device, there must inherently be a means for transmitting the procedure.);
and transmit to the selected processing core ([0146] thermal data is used to select which core is best for running the application on. Please note that running the application once the core is selected corresponds to transmitting to the selected processing core, as it is known in the art that running an application on a core requires transmitting the necessary data for its execution to that core.).
Sahu further discloses the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device. Please note that receiving data for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet.)
Regarding Claim 10, Sahu-Aguilar-Devulapalli as described in Claim 9, Aguilar further discloses in determining the selected processing core, the thermal management unit is further configured to: receive one or more operating characteristics of each of the plurality of processing cores ([0145] generation of a hardware thermal profile for a multi-core processor in accordance with an illustrative embodiment. A hardware thermal profile is a data structure containing information about the thermal performance of the hardware or system. Some cores on a processor may have better thermal characteristics due to the cores location relative to other cores and the system's cooling solution. Please note that creating a thermal profile for a multi-core processor because some cores may have better thermal characteristics corresponds to Applicant’s in determining the selected processing core, the thermal management unit being further configured to receive one or more operating characteristics of each of the plurality of processing cores, as the thermal characteristics of each core correspond to operating characteristics, which are a criterion upon which the optimal core is selected.);
and determine the selected processing core based upon the one or more operating characteristics ([0146] a selection is made of one or more previously gathered and stored software thermal profiles of the power and/or performance of the multi-core system […] The thermal index generated from the sampled thermal data is used to select which core is best for running the application on. Please note that a selected thermal profile of the system including the performance being used to select the best processing core corresponds to Applicant’s determining the selected processing core based upon the one or more operating characteristics, i.e., the stored thermal profile)
predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
Sahu further discloses and the one or more performance parameters of the job packet ([0037] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that the input data defining expected performance level tradeoffs corresponds to performance parameters of the job packet.).
Regarding Claim 11, Sahu-Aguilar-Devulapalli as described in Claim 9, Sahu further discloses cause dissipation of heat associated with the selected processing core that is generated in response to the performance of the job packet ([0018] computer-implemented method 200 for dynamic adjustment of a temperature threshold for an electronic device; [0023] at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. Please note that the method 200 containing step 240 carrying out the thermal management procedure in response to input data corresponds to Applicant’s performance of the job packet, and the heat mitigation operation corresponds to Applicant’s causing dissipation of heat associated with the selected processing core generated in response to performance, since the electronic device corresponds to Applicant’s selected processing core. This is because the heat mitigation operation of step 250 is responsive to the temperature exceeding the threshold, which may occur while the job packet is executing.).
Regarding Claim 12, Sahu-Aguilar-Devulapalli as described in Claim 10, Sahu further discloses the proactive thermal management procedure is configured to dynamically modify a supplied cooling amount ([0023] At step 240, the current temperature of the electronic device may be compared to the current temperature threshold. Further, at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. Please note that comparing the current temperature to the current temperature threshold and initiating the heat mitigation operation to lower the current temperature if it exceeds the threshold corresponds to Applicant’s proactive thermal management procedure being configured to dynamically modified the supplied cooling amount, as it is comparing the current temperature to the threshold on an ongoing basis to perform cooling.)
Aguilar further discloses based upon variation in the one or more operating characteristics of the selected processing core during performance of the job packet ([0146] While the workloads are being executed, sampling of the thermal state in the multi-core processor is performed (step 1004). For a hardware thermal profile, workloads are selected to represent the maximum thermal operation of the processor. The temperature is sampled by reading the current or maximum temperature registers periodically while the application is running and storing the information into a data structure […] The stored information from the sampling of the thermal state of the multi-core processor in combination with the selected software thermal profiles is utilized to optimally manage the multi-core system. Please note that sampling the temperature of the cores while the application is running and using the stored information to optimally manage the system corresponds to Applicant’s modifying based on upon variation in the one or more operating characteristics of the selected processing core during performance of the job, as the management procedure is modified in response to the performance of the application by the cores by measuring the operating characteristics, i.e., the thermal state, of the cores, including the selected core.).
Regarding Claim 13, Sahu-Aguilar-Devulapalli as described in Claim 12, Sahu further discloses wherein a maximum supplied cooling amount coincides with a maximal thermal load of the selected processing core during performance of the job packet ([0023] At step 240, the current temperature of the electronic device may be compared to the current temperature threshold. Further, at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. […] In yet other examples, the heat mitigation operation may include mechanical heat reduction techniques, such as increased fan speeds, activation of previously inactive fans, and so on to reduce the current temperature of the electronic device. Please note that the temperature threshold corresponds to Applicant’s maximal thermal load, as it is a value that cannot be exceeded, and initiating the heat mitigation operation of the electronic device, corresponding to the selected processing core, corresponds to the maximum supplied cooling amount that coincides with the maximum thermal load, as the maximum supplied cooling via fans and other temperature reduction methods is maximized once the temperature threshold is reached during performance of the job packet.).
Regarding Claim 14, Sahu-Aguilar-Devulapalli as disclosed in Claim 9, Aguilar further discloses modify the proactive thermal management procedure in response to the performance of the job packet by the selected processing core ([0146] While the workloads are being executed, sampling of the thermal state in the multi-core processor is performed (step 1004). For a hardware thermal profile, workloads are selected to represent the maximum thermal operation of the processor. The temperature is sampled by reading the current or maximum temperature registers periodically while the application is running and storing the information into a data structure […] The stored information from the sampling of the thermal state of the multi-core processor in combination with the selected software thermal profiles is utilized to optimally manage the multi-core system. Please note that sampling the temperature of the cores while the application is running and using the stored information to optimally manage the system corresponds to Applicant’s modifying the proactive thermal management procedure in response to the performance of the job packet by the selected processing core, as the management procedure is modified in response to the performance of the application by the cores, including the selected core.).
Regarding Claim 15, Sahu discloses A computer program product comprising at least one non-transitory computer-readable storage medium having computer program code thereon that, in execution with at least one processor, configures the computer program product for ([0063] As detailed above, the computing devices and systems described […] these computing device(s) may each include at least one memory device and at least one physical processor; [0064] In some examples, the term “memory device” generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions; [0065] In some examples, the term “physical processor” generally refers to any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. Please note that the non-volatile storage medium of the computer system storing instructions that can be executed by a processor corresponds to Applicant’s computer program product comprising a non-transitory computer-readable storage medium having computer program code thereon that configures the computer program product in execution with at least one processor.):
receiving a job packet, wherein the job packet is associated with a packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that receiving data including user-specific characteristics for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, wherein the job packet is associated with a packet profile, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet, and the user-specific characteristics correspond to a packet profile containing the parameters.);
determining one or more performance parameters associated with a performance of the job packet as defined by the packet profile ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that receiving data by the threshold determination function 420 to determine a temperature threshold for an electronic device based on user-specific characteristics such as the expected device performance level tradeoff corresponds to Applicant’s determining one or more performance parameters associated with a performance of the job packet as defined by the packet profile, as the input data defining expected performance level tradeoffs corresponds to a packet profile defining performance parameters associated with a performance of the job packet.);
generating, prior to the execution of the job packet, a thermal management procedure based upon the one or more performance parameters ([0038] Threshold determination function 420 may employ the input data it receives to generate a dynamic temperature threshold 450 for the electronic device to improve or maximize the user's experience in using the electronic device. Please note that the threshold determination function 420 generating a dynamic temperature threshold 450 using input data corresponds to Applicant’s generating a proactive thermal management procedure based upon the one or more performance parameters, as its dynamic nature corresponds to being proactive since it maintains an optimal temperature in the electronic device based on input data, corresponding to performance parameters. Furthermore, as the threshold is generated and set using input data to improve user experience, this corresponds to the generation being prior to the execution of the job packet, as it is known to one of ordinary skill in the art that in order to assess the threshold during the execution of the job packet it must be initialized prior to the execution.);
and associating the proactive thermal management procedure with the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device […] In some embodiments, the input data may include […] user-specific characteristics 408. Please note that by having the threshold determination function 420 corresponding to the proactive thermal management procedure utilize user-specific characteristics in its configuration, it is in effect associating that version of the procedure with a distinct requesting user, corresponding to associating it with the job packet.).
Sahu does not explicitly disclose predicted performance parameters;
proactive thermal management procedure;
However, Aguilar discloses predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
proactive thermal management procedure ([0151] the state of the computer system is controlled to avoid and not just react to thermal limits. Please note that controlling the state of the computer system to avoid and not just react to thermal limits corresponds to Applicant’s proactive thermal management procedure.)
Sahu and Aguilar are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu to incorporate the teachings of Aguilar to modify the thermal management procedure to predict performance parameters, and conduct the procedure proactively, allowing for improved thermal performance of the system and avoid throttling, as described in Aguilar.
Sahu-Aguilar does not explicitly disclose the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet.
However, Devulapalli discloses the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet ([0028] cooling software (e.g., an agent) may automatically learn the system's thermal behavior by interacting with the CPU. The agent may learn to take better or optimal actions […] embodiments may provide an improved or optimal cooling solution that may be proactive and requires little or no user intervention (e.g., adapting over time ; [0030] Some embodiments may learn about the system's thermal behavior and use the learned information to apply improved or optimal cooling policies. […] Some embodiments may adapt to changing environments, learning improved or optimal cooling policies continuously over time. Please note that the system learning optimal cooling policies continuously over time and learning the system’s thermal behavior to take better actions corresponds to Applicant’s proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, as the profile of the heat dissipation required by the system is inherently produced over time by the learning system.)
Sahu-Aguilar and Devulapalli are both considered to be analogous to the claimed invention because they are in the same field of electronic device thermal management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Sahu-Aguilar to incorporate the teachings of Devulapalli to modify the proactive thermal management procedure predicting performance parameters to have a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet, allowing for optimized power consumption and reducing throttling and system scaling, as described in Devulapalli.
Regarding Claim 16, Sahu-Aguilar-Devulapalli as described in Claim 15, Aguilar further discloses determining a selected processing core from amongst a plurality of processing cores for the performance ([0146] thermal data is used to select which core is best for running the application on. Please note that selecting which core is best for running the application on corresponds to Applicant’s determining a selected processing core from amongst a plurality of processing cores for the performance, as it selects a core for the running of an application.);
transmitting the proactive thermal management procedure to a thermal management device([0033] As mentioned above, data collection module 304 may repeatedly or continually collect the measurable characteristics and the current temperature values for availability to threshold determination module 306 and temperature comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation. Please note that the data collection module 304 collecting measurable characteristics and current temperature values for availability to threshold determination module 306 and determination comparison module 308 to continually determine whether electronic device 300 should perform a heat mitigation operation corresponds to Applicant’s transmitting the proactive thermal management procedure to a thermal management device. This is because the continual determination being performed by the system of whether a heat mitigation operation should be performed corresponds to the proactive thermal management procedure, and in order to have the electronic device 300 perform the heat mitigation operation, corresponding to the thermal management device, there must inherently be a means for transmitting the procedure.);
and transmitting to the selected processing core ([0146] thermal data is used to select which core is best for running the application on. Please note that running the application once the core is selected corresponds to transmitting to the selected processing core, as it is known in the art that running an application on a core requires transmitting the necessary data for its execution to that core.).
Sahu further discloses the job packet ([0037] In method 400, one or more types of data may be received by threshold determination function 420 to determine a temperature threshold for an electronic device. Please note that receiving data for the threshold determination function 420 corresponds to Applicant’s receiving a job packet, as Applicant defines job packets in [0002]: job packets (e.g., tasks, requests, actions, applications, transactions, etc. Therefore, the set of input data that is received to allow the function 420 to execute corresponds to the job packet.)
Regarding Claim 17, Sahu-Aguilar-Devulapalli as described in Claim 16, Aguilar further discloses in determining the selected processing core, the computer program product is further configured for: receiving one or more operating characteristics of each of the plurality of processing cores ([0145] generation of a hardware thermal profile for a multi-core processor in accordance with an illustrative embodiment. A hardware thermal profile is a data structure containing information about the thermal performance of the hardware or system. Some cores on a processor may have better thermal characteristics due to the cores location relative to other cores and the system's cooling solution. Please note that creating a thermal profile for a multi-core processor because some cores may have better thermal characteristics corresponds to Applicant’s computer program product in determining the selected processing core being further configured for receiving one or more operating characteristics of each of the plurality of processing cores, as the thermal characteristics of each core correspond to operating characteristics, which are a criterion upon which the optimal core is selected.);
and determining the selected processing core based upon the one or more operating characteristics ([0146] a selection is made of one or more previously gathered and stored software thermal profiles of the power and/or performance of the multi-core system […] The thermal index generated from the sampled thermal data is used to select which core is best for running the application on. Please note that a selected thermal profile of the system including the performance being used to select the best processing core corresponds to Applicant’s determining the selected processing core based upon the one or more operating characteristics, i.e., the stored thermal profile)
predicted performance parameters ([0139] The stored information may then used to generate a software thermal index for the software module to predict the thermal effect on the multi-core processor. Please note that predicting the thermal effect on the multi-core processor with the software thermal index for the software module corresponds to Applicant’s predicted performance parameters, as the prediction is associated with the software module, i.e., associated with the performance of jobs.)
Sahu further discloses and the one or more performance parameters of the job packet ([0037] In some embodiments, the input data may include […] user-specific characteristics 408 […] examples of dynamic user-specific characteristics 408 may include […] user expectations regarding tradeoffs in device performance level. Please note that the input data defining expected performance level tradeoffs corresponds to performance parameters of the job packet.).
Regarding Claim 18, Sahu-Aguilar-Devulapalli as described in Claim 16, Sahu further discloses wherein the proactive thermal management procedure is configured to cause dissipation of heat associated with the selected processing core that is generated in response to the performance of the job packet ([0018] computer-implemented method 200 for dynamic adjustment of a temperature threshold for an electronic device; [0023] at step 250, in response to the current temperature exceeding the temperature threshold, a heat mitigation operation of the electronic device may be initiated to lower the current temperature. Please note that the method 200 containing step 240 carrying out the thermal management procedure in response to input data corresponds to Applicant’s performance of the job packet, and the heat mitigation operation corresponds to Applicant’s causing dissipation of heat associated with the selected processing core generated in response to performance, since the electronic device corresponds to Applicant’s selected processing core. This is because the heat mitigation operation of step 250 is responsive to the temperature exceeding the threshold, which may occur while the job packet is executing.).
Regarding Claim 21, Sahu-Aguilar-Devulapalli as described in Claim 2, Sahu further discloses wherein the proactive thermal management procedure is transmitted to the thermal management device in advance of transmission of the job packet to the selected processing core ([0035] Heat mitigation module 310, in some embodiments, may initiate or continue a heat mitigation operation to lower a current temperature of electronic device 300 (e.g. in response to one or more current temperature values of electronic device 300 exceeding a temperature threshold). […] in some examples, heat mitigation module 310 may base its selection of a heat mitigation strategy on a current use of electronic device 300, previous feedback from the user on prior experiences of the user with electronic device 300, and so on. Please note that since the heat mitigation strategy is carried out on an ongoing basis based on prior experiences of the user, i.e., in a preemptive manner, this corresponds to the proactive thermal management procedure being transmitted to the thermal management device in advance of transmission of the job packet to the selected processing core, and can initiate the heat mitigation operation and continue to adjust it as future job packets are carried out.).
Regarding Claim 23, Sahu-Aguilar-Devulapalli as described in Claim 1, Devulapalli further discloses wherein the proactive thermal management procedure proactively accounts for variability of thermal load over time in the performance of the job packet ([0028] cooling software (e.g., an agent) may automatically learn the system's thermal behavior by interacting with the CPU. […] embodiments may provide an improved or optimal cooling solution that may be proactive and requires little or no user intervention (e.g., adapting over time […] embodiments may provide a robust thermal solution that may adapt well to changing operating conditions. Please note that the cooling software that is proactive and automatically learns the system’s thermal behavior and adapts to changing operating conditions corresponds to Applicant’s proactive thermal management procedure proactively accounting for variability of thermal load over time in the performance of the job packet.).
Regarding Claim 24, Sahu-Aguilar-Devulapalli as described in Claim 1, Devulapalli further discloses wherein the proactive thermal management procedure defines an amount of time during which one or more thermal management devices operate and a magnitude of cooling to be supplied by the one or more thermal management devices ([0033] the agent may observe the state of the CPU (e.g., temperature, frequency, CPU utilization, etc.), and periodically (e.g., at every time step) decide to take an action (e.g., which may include changing the fan speed (active cooling), and/or limiting the CPU frequency (passive cooling)). Please note that the agent observing the state of the CPU and deciding to take an action to cool it such as changing the fan speed or CPU frequency at every time step corresponds to Applicant’s proactive thermal management procedure defining an amount of time during which one or more thermal management devices operate, i.e., the time step, and a magnitude of cooling to be supplied by the one or more thermal management devices, i.e., how much to operate the cooling mechanisms.).
Regarding Claim 25, Sahu-Aguilar-Devulapalli as described in Claim 1, Devulapalli further discloses wherein the proactive thermal management procedure defines a maximum supplied cooling amount from one or more thermal management devices to coincide with a predicted maximal thermal load ([0038] the model may include a maximum attainable CPU temperature as a function of CPU power (e.g., which may depend on CPU frequency and utilization) and fan speed. Please note that the maximum attainable CPU temperature as a function of CPU power and an associated fan speed corresponds to Applicant’s proactive thermal management procedure defining a maximum supplied cooling amount from one or more thermal management devices to coincide with a predicted maximal thermal load, as the fan would be maximally operating at the maximum attainable CPU temperature.).
Regarding Claim 26, Sahu-Aguilar-Devulapalli as described in Claim 2, Devulapalli further discloses receiving performance data from the selected processing core, wherein the performance data comprises power consumption and latency data that are used to represent a reward function of a reinforcement learning algorithm ([0043] adjust one or more of a parameter of a processor (e.g., power, frequency, etc.) and a parameter of a cooling subsystem (e.g., power, fan speed, pump throughput, etc.) based on the learned thermal behavior information and the input information. In some embodiments, the input information may include reinforcement information, and the logic 134b may be further configured to learn the thermal behavior information of the system based on the reinforcement information. For example, the reinforcement information may include one or more of reward information and penalty information. […] For example, increased reward information may correspond to one or more of increased processor frequencies and reduced active cooling, and increased penalty information may correspond to processor temperatures above a threshold temperature. In some embodiments, the logic 134b may be further configured to provide a deep reinforcement learning agent with Q-learning. Please note that learning thermal behavior information of a system based on input information including processor information corresponds to Applicant’s receiving performance data from the selected processing core, and the input information including reinforcement information, which may be related to the processor power and frequency, that may allow reward information to correspond to increased processor frequencies and reduced active cooling, the logic to provide a deep reinforcement learning agent with Q-learning corresponds to the performance data comprising power consumption and latency data that are used to represent a reward function of a reinforcement learning algorithm. This is because the power consumption and latency associated with the parameters of the processor that could be used as reinforcement information for the reward function of the reinforcement learning agent would be obvious to one of ordinary skill in the art to use as part of the processor information to improve system performance.).
Regarding Claim 27, Sahu-Aguilar-Devulapalli as described in Claim 4, Devulapalli further discloses wherein the heat dissipation is component specific, and wherein additional cooling is provided to dissipate heat generated by the component ([0043] learn thermal behavior information of a system based on input information including one or more of processor information, thermal information, and cooling information, and provide information to adjust one or more of a parameter of a processor (e.g., power, frequency, etc.) and a parameter of a cooling subsystem (e.g., power, fan speed, pump throughput, etc.) based on the learned thermal behavior information and the input information. Please note that the thermal behavior information is learned based on input information including processor information, and providing information to adjust a parameter of a cooling subsystem based on the thermal behavior corresponds to Applicant’s heat dissipation being component specific and additional cooling being provided to dissipate heat generated by the component. This is because the specific component, i.e., the processor, has information collected about it and the system carries out heat dissipation via additional cooling, such as via increased fan speed, based on the information regarding its generated heat. ).
Response to Arguments
Applicant's arguments filed 04/01/2026 have been fully considered but they are not persuasive.
Applicant’s arguments are summarized as follows:
Regarding the rejection of amended Independent Claims 1, 8, and 15 under 35 U.S.C. 103, Sahu and Aguilar fail to disclose the features of the amended Claim. Specifically, they do not teach “generating, prior to execution of the job packet, a proactive thermal management procedure based upon the one or more predicted performance parameters, the proactive thermal management procedure comprising a time-varying cooling profile that defines an amount of heat dissipation over time to be required by performance of the job packet”. Sahu is directed exclusively to reactive thermal management and only responds to measured temperature conditions. Sahu does not even consider a time-varying cooling profile that defines an amount of heat-dissipation over time, and merely determines whether a temperature threshold has been crossed. The citation from Aguilar fails to cure the deficiencies of Sahu, as it does not suggest a time-varying cooling profile, and describes modifying the software application rather than trying to define an amount of heat dissipation over time. Therefore, the amended independent Claims 1, 8, and 15 are patentable over the cited references, and their rejections as well as that of their related dependent claims should be withdrawn.
Regarding A, the examiner respectfully disagrees. The Applicant’s arguments are moot, as the rejections of the Claim now relies on a new grounds of rejection, Sahu-Aguilar-Devulapalli, which discloses the limitations stated by the Applicant via the combination of references, as stated above. Therefore, the recited features can be found in the cited combination of references, and independent Claims 1, 8, and 15 remain rejected under 35 U.S.C. 103 for the reasons stated above, and the combinations cited would have been obvious to a person of ordinary skill in the art prior to the effective filing date of the application. The rejections under 35 U.S.C. 103 are maintained.
The dependent Claims 2-7, 9-14, 16-18, 21 and 23-27 depend on unpatentable Independent claims and do not add limitations that overcome the rejection; therefore, they likewise remain rejected, and the application is not in condition for allowance. The rejections under 35 U.S.C. 103 are maintained.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Ghose (US 11194353 B1) discloses models for predicting thermal conditions driven by empirical models of energy dissipation for the computing equipment, allowing for proactive cooling solutions, predicting thermal trends, and dynamically matching cooling efforts to thermal conditions (see Col. 2, Lines 13-49).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to FARAZ T AKBARI whose telephone number is (571)272-4166. The examiner can normally be reached Monday-Thursday 9:30am-7:30pm ET.
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, April Blair can be reached at (571)270-1014. 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.
/FARAZ T AKBARI/Examiner, Art Unit 2196
/APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196