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 .
Status of Claims
The present application is being examined under the claims filed 10/14/2025. Claims 1, 4-6, 8-11, 13-16 and 18 have been amended. Claims 1-19 are pending and rejected as indicated below.
Response to Arguments
I. Applicant's arguments filed 10/14/2025 have been fully considered but they are not persuasive.
II. Applicant has amended independent claims 1, 10, and 16 to overcome prior art. However, examiner notes that the amendment, upon consideration, does not overcome the rejection of record for the reasons below.
The new limitation to “selectively increase at least one of a frequency of the CPU, a frequency of the cache memory and a frequency of the memory device in response to the layer within the memory hierarchy in which the memory stall occurs being accessed” is written in the alternative, and therefore Paul teaches to selectively increase the frequency of the CPU in response to [the memory] being accessed (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU, DVFS rate can be increased after the analysis of memory access [i.e. select DVFS state]; also see Paul par. 46, CPU in lower DVFS states may provide power savings, but may result in performance degradation, and par. 39, memory accesses may indicate a bottleneck in performance, lowering the CPU DVFS state in response [i.e., the frequency of the CPU is increased based on memory access information]), in combination with Wang, which provides rationale for specifically monitoring the layer of the memory hierarchy being accessed (Wang pg. 1632 Sec. 4.1.1, Load and store instructions occupy 34.0% of all instructions; memory accesses are the most time-consuming portion of the whole operations; and Wang pg. 1632 Sec. 4.1.1, two-cycle hit latency to L1 cache, 12-cycle of hit latency for L2 cache, 200-cycle of main memory access latency [i.e., misses at different layers result in different penalties]).
Furthermore, while the following limitation is written in the alternative and therefore disclosed by Paul and Wang as explained above, Liu addresses the remaining selections within the claim limitation:
to selectively increase at least one of a frequency of the CPU, a frequency of the cache memory and a frequency of the memory device in response to the layer within the memory hierarchy in which the memory stall occurs being accessed (Liu Col. 5 Lines 15-30, LMPR is used to measure a ratio of a request rate from one layer of the hierarchical memory system to a supply rate by a lower layer of the hierarchical memory system (see Col. 6 Lines 30-34, LMPR applies to cache memory and memory devices as layers of a memory hierarchy; also see Liu Col 5 Lines 33-67, LMPR equations account for pure average miss penalty [average number of pure miss cycles during execution of the executable instruction set], pure misses result in memory stalls [see Liu Col 6 Lines 3-12]); and Liu FIG. 2, step 210, adjust a set of computer architecture parameters [see Col. 4, Lines 30-35, Value T may correspond to a sufficient response rate from the second layer given a request rate from the first layer [i.e., frequency], and method may include adjusting at least one of the set of computer architecture parameters to change the LPMR [i.e., parameters relating to LPMR such as response or request rate are adjusted in response to LMPR ratios between layers]).
III. The new limitation of “the memory hierarchy including a cache memory and a memory device” is taught by Paul in view of Liu. Paul teaches the memory hierarchy including […] a memory device (Paul FIG. 1 and par. 14, system contains CPU and GPU cores and system memory 130 [i.e., memory device]), whereas Liu teaches both limitations of the claim, the memory hierarchy including a cache memory and a memory device (Liu Col 6 Lines 30-50, memory disclosed may be a first-level (L1) cache, which refers to the smallest and fastest cache memory directly embedded within the processor; and Col. 6 Lines 30-34, memory hierarchy layers may include: dynamic random access memory (DRAM), a hard drive [i.e., a memory device], a solid state drive [i.e., a memory device], a first level cache [i.e., cache memory], or a lower level cache [i.e., cache memory]). Furthermore, Paul discloses a system comprising a CPU and CPU cores, which, as taught by Liu, may have L1 cache memory directly embedded within.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-19 are rejected under 35 U.S.C. 103 as being unpatentable over Paul et. al. (US 2015/0355692 A1) [previously cited] in view of Wang et. al. “APC: A Novel Memory Metric and Measurement Methodology for Modern Memory Systems” [previously cited] and Liu et. al. (US 9846646 B1) [previously cited].
Regarding Claim 1, Paul discloses a processor (Paul Figure 1, accelerated processing unit 105) comprising:
a central processing unit (CPU) (Paul Figure 1, CPU cores 110) configured to drive a dynamic voltage and frequency scaling (DVFS) module (Paul Fig. 1 and par. 16, performance controller 125 implements dynamic voltage and frequency scaling (DVFS));
a memory hierarchy configured to store data for an operation of the CPU (Paul Figure 1, system memory 130; also see par. 14, memory 130 is a memory hierarchy that is used by the CPU); and
a memory hierarchy configured to store data for an operation of the CPU (Paul par. 14, a memory hierarchy is used by the CPU and GPU), the memory hierarchy including […] a memory device (Paul FIG. 1 and par. 14, system contains CPU and GPU cores and system memory 130 [i.e., memory device]);
an activity monitoring unit (AMU) (Paul Figure 1, CPU activity counter 140, a GPU activity counter 145, and memory activity counter 150, which may all be integrated together into performance controller 125 [see par. 25]) configured to generate microarchitecture information by monitoring performance of the CPU (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle) or monitoring traffic of a system bus connected to the memory hierarchy (Paul par. 39, memory activity counter 150 monitors activity over memory bus), [a DVFS module] configured to determine [when] a memory stall occurs (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU [see par. 16 and 17, higher states have greater voltage and frequency]), and to selectively increase at least one of a frequency of the CPU, a frequency of the cache memory and a frequency of the memory device in response to [the memory] being accessed (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU, DVFS rate can be increased after the analysis of memory access [i.e. select DVFS state]; also see Paul par. 46, CPU in lower DVFS states may provide power savings, but may result in performance degradation, and par. 39, memory accesses may indicate a bottleneck in performance, lowering the CPU DVFS state in response [i.e., the frequency of the CPU is increased based on memory access information]).
Paul does not explicitly disclose:
the memory hierarchy including a cache memory and a memory device.
wherein the DVFS module is configured to determine a layer within the memory hierarchy in which a memory stall occurs using the microarchitecture information.
In the analogous art of analyzing accesses in a memory hierarchy to optimize performance and power use of a device, Wang teaches:
determining a layer within the memory hierarchy in which a memory stall occurs using the microarchitecture information (Wang pg. 1627 Sec. 2.1, evaluate memory system performance by monitoring accesses per cycle at each layer of the memory hierarchy; and pg. 1628 section 2.2, MSHR is a table that records cache miss information [cache misses result in memory stalls], such as access type, access address, and return register [access address would reveal layer]; and pg. 1628 section 2.2, MSHR table is full, the cache cannot queue more cache accesses and the CPU's memory accesses or next-level memory accesses are blocked [i.e., the memory layer with the misses is tracked]).
[Wang further teaches that memory performance is closely linked to overall system performance (Wang pg. 1632 Sec. 4.1.1, Load and store instructions occupy 34.0% of all instructions; memory accesses are the most time-consuming portion of the whole operations) and cache misses at different layers of the memory hierarchy results in different CPU performance penalties (Wang pg. 1632 Sec. 4.1.1, two-cycle hit latency to L1 cache, 12-cycle of hit latency for L2 cache, 200-cycle of main memory access latency), i.e., rationale for tracking the layer in which the cache miss occurs].
Therefore, it would have been obvious of one of ordinary skill in the art, having the teachings of Paul and Wang before them, to combine Paul's analysis of memory access rate for frequency adjustments and methodology to save power by lowering CPU frequency in response to a memory bottleneck with Wang’s use of determining the layer of the hierarchy where the stall occurs and knowing a stall’s effect on performance at each layer, the motivation being to further improve power saving in the system by addressing the individual performance penalties of each layer (Wang pg. 1632 Sec. 4.1.1, two-cycle hit latency to L1 cache, 12-cycle of hit latency for L2 cache, 200-cycle of main memory access latency).
Paul in view of Wang does not explicitly disclose:
the memory hierarchy including a cache memory and a memory device.
In the analogous art of adjusting hardware operating parameters to optimize performance and power use of a device, Liu teaches:
the memory hierarchy including a cache memory and a memory device (Liu Col 6 Lines 30-50, memory disclosed may be a first-level (L1) cache, which refers to the smallest and fastest cache memory directly embedded within the processor; and Col. 6 Lines 30-34, memory hierarchy layers may include: dynamic random access memory (DRAM), a hard drive [i.e., a memory device], a solid state drive [i.e., a memory device], a first level cache [i.e., cache memory], or a lower level cache [i.e., cache memory]).
Furthermore, while the following limitation is written in the alternative and therefore disclosed by Paul as explained above, Liu addresses the remaining selections within the claim limitation:
to selectively increase at least one of a frequency of the CPU, a frequency of the cache memory and a frequency of the memory device in response to the layer within the memory hierarchy in which the memory stall occurs being accessed (Liu Col. 5 Lines 15-30, LMPR is used to measure a ratio of a request rate from one layer of the hierarchical memory system to a supply rate by a lower layer of the hierarchical memory system (see Col. 6 Lines 30-34, LMPR applies to cache memory and memory devices as layers of a memory hierarchy; also see Liu Col 5 Lines 33-67, LMPR equations account for pure average miss penalty [average number of pure miss cycles during execution of the executable instruction set], pure misses result in memory stalls [see Liu Col 6 Lines 3-12]); and Liu FIG. 2, step 210, adjust a set of computer architecture parameters [see Col. 4, Lines 30-35, Value T may correspond to a sufficient response rate from the second layer given a request rate from the first layer [i.e., frequency], and method may include adjusting at least one of the set of computer architecture parameters to change the LPMR [i.e., parameters relating to LPMR such as response or request rate are adjusted in response to LMPR ratios between layers]).
Therefore, it would have been obvious of one of ordinary skill in the art, having the teachings of Paul, Wang, and Liu before them, to combine Paul and Wang’s methodology for reducing power use in a system by identifying memory bottlenecks Liu's adjusting of frequencies of the layers of the memory hierarchy, the motivation being to further improve the performance of the memory hierarchy by considering the bottlenecks due to the access speeds between the layers (Liu Col 1 Lines 52-66).
Regarding Claim 2, Paul in view of Wang and Liu discloses the processor of claim 1. Paul further discloses wherein the AMU includes:
a performance monitoring unit (Paul Figure 1, CPU activity counter 140; Paul par. 25 stating CPU activity counter can be implemented as a component of performance controller 125) configured to monitor the performance of the CPU (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle); or
a bus traffic monitoring circuit (Paul Figure 1, memory activity counter 150; Paul par. 25 stating memory activity counter can be implemented as a component of performance controller 125) configured to monitor the traffic of the system bus (Paul par. 39, memory activity counter 150 monitors activity over memory bus).
Regarding Claim 3, Paul in view of Wang and Liu discloses the processor of claim 2, wherein the performance monitoring unit is configured to:
count a number of instructions processed by the CPU per cycle (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle); or
count a number of memory stalls of the CPU per cycle (Wang pg. 1638 Sec. 6, miss rate [which results in a memory stall/miss penalty] is used in calculation of MLP(t), which finds main memory accesses [resulting in a stall] per cycle)
Regarding Claim 4, Paul in view of Wang and Liu discloses the processor of claim 3, wherein the DVFS module is configured to limit the frequency of the CPU (Paul par. 25, DVFS state of CPU is changed; DVFS state includes change in frequency [see Paul par. 16 and 17) when the number of the instructions is less than or equal to a first reference value (Paul par. 39, number of memory activities is compared to a memory threshold, if bottleneck is present CPU is set to a LOW DVFS state [i.e. frequency is limited]) or the number of the memory stalls is less than or equal to a second reference value (Wang pg. 1633 Col 2 First par., APC and AMAT consider lower-level cache performance in memory performance calculation; and Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU, DVFS rate can be increased after the analysis of memory access).
Regarding Claim 5, Paul in view of Wang and Liu discloses the processor of claim 4, wherein a magnitude of the frequency of the CPU is based on the number of the instructions and the number of the memory stalls (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU [i.e., frequency of the CPU], DVFS rate can be increased after the analysis of memory access [i.e., analyzing number of memory access instructions and memory stalls]; and Wang pg. 1638 Sec. 6, miss rate is a common parameter for analyzing memory accesses).
Regarding Claim 6, Paul in view of Wang and Liu discloses the processor of claim 3, wherein the DVFS module is configured to determine the layer within the memory hierarchy in which the memory stall occurs using the number of the memory stalls (Wang pg. 1628 section 2.2, MSHR table is full, the cache cannot queue more cache accesses and the CPU's memory accesses or next-level memory accesses are blocked [implying misses are tracked per layer; stalls are resulting from multiple uncleared misses).
Regarding Claim 7, Paul in view of Wang and Liu discloses the processor of claim 1, wherein the DVFS module is configured to determine the frequency so as to increase the frequency (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU, DVFS rate can be increased based on the analysis) or reduce power consumption based on to a number of memory stalls in the layer within the memory hierarchy in which the memory stall occurs (Paul par. 39, a memory bottleneck is located and CPU frequency is subsequently reduced [which saves power, see Paul par. 46, CPU in lower DVFS states may provide power savings, but may result in performance degradation]; and Wang pg. 1632 Sec. 4.1.1, two-cycle hit latency to L1 cache, 12-cycle of hit latency for L2 cache, 200-cycle of main memory access latency [misses at each level result in a delay, different layers result in different penalties, see combination in Claim 1]).
Regarding Claim 8, Paul in view of Wang and Liu discloses the processor of claim 1, wherein the memory hierarchy includes:
the cache memory configured to temporarily store the data for the operation of the CPU (Wang pg. 1626 Introduction, L1 and L2 cache are used for CPU operation); and
a memory interface circuit configured to transmit the data from the cache memory to the memory device through the system bus (Paul FIG. 1 and par. 14, CPU cores 110 and GPU cores 115 on a common semiconductor die, allowing them to share on-die resources such as the memory hierarchy and interconnect; or Wang pg. 1629 Col 1 Last par, discloses buses at CPU/Cache interface bus, Prefetcher/MSHR bus, or inside the Cache, or if outstanding cache miss/misses are registered in the MSHR to track all memory accesses at all layers of the hierarchy).
Regarding Claim 9, Paul in view of Wang and Liu discloses the processor of claim 8, wherein the DVFS module is configured to determine to increase the frequency of the cache memory, when the microarchitecture information indicates that a number of memory stalls per cycle is greater than or equal to a reference value (Liu Figure 4 steps 404-410, LMPR increases when memory stalls increase [see Col 5 Lines 35-55 for equations], therefore frequency adjustment 410 occurs if LMPR is greater or equal to T1 ["no" branch of tree at 408]).
Regarding Claim 10, Paul in view of Wang and Liu discloses the processor of claim 9, wherein the DVFS module is configured to determine to increase a frequency of the memory interface circuit, in response to the number of the memory stalls per cycle being greater than or equal to the reference value even with the frequency of the cache memory being increased (Liu Figure 4 steps 404-410, LMPR increases when memory stalls increase [see Col 5 Lines 35-55 for equations], therefore frequency adjustment 410 occurs if LMPR is greater or equal to T1 ["no" branch of tree at 408]; this branch can be reevaluated after frequency is increased if it must be increased additional times).
Regarding Claim 11, Paul teaches a method of operating a processor (Paul Figure 1, accelerated processing unit 105), the method comprising:
monitoring microarchitecture information (Instant application par. 47 states microarchitecture information may include information related to usages of the cache memory 120 and the memory interface circuit 130 or traffic of a bus 101; Paul par. 39, memory activity counter 150 monitors activity over memory bus and par. 25, memory activity counter may be a part of performance controller 125) by a performance monitoring unit (Paul Figure 1, performance controller 125 [see par. 25, activity counter 140, a GPU activity counter 145, and memory activity counter 150, which may all be integrated together in performance controller 125]) or a bus traffic monitoring unit (Paul Figure 1, memory activity counter 150);
controlling a frequency of a CPU (Paul Figure 4, showing method to change CPU DVFS state; Paul par. 16 and 17, DVFS state affects frequency) […], using the microarchitecture information (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle);
monitoring performance of the CPU, by the performance monitoring unit (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle); and
monitoring traffic of a system bus between the cache memory and the memory device, by the bus traffic monitoring unit (Paul par. 39, memory activity counter 150 monitors activity over memory bus), wherein the controlling the frequency of the CPU, the frequency of the cache memory, and the frequency of the memory device comprises determining a [memory access] using the microarchitecture information, and selectively increasing at least one of the frequency of the CPU, the frequency of the cache memory, and the frequency of the memory device in response to [the memory] being accessed (Paul Figure 4 step 488 and par. 43, gradients in memory access rates determine the appropriate DVFS state for CPU, DVFS rate can be increased after the analysis of memory access [i.e. select DVFS state]; also see Paul par. 46, CPU in lower DVFS states may provide power savings, but may result in performance degradation, and par. 39, memory accesses may indicate a bottleneck in performance, lowering the CPU DVFS state in response [i.e., the frequency of the CPU is increased based on memory access information]).
Paul does not explicitly disclose:
wherein the controlling the frequency of the CPU, the frequency of the cache memory, and the frequency of the memory device comprises determining a layer within a memory hierarchy in which memory stall occurs using the microarchitecture information;
In the analogous art of analyzing accesses in a memory hierarchy to optimize performance and power use of a device, Wang teaches:
determining a layer within the memory hierarchy in which a memory stall occurs using the microarchitecture information (Wang pg. 1627 Sec. 2.1, evaluate memory system performance by monitoring accesses per cycle at each layer of the memory hierarchy; and pg. 1628 section 2.2, MSHR is a table that records cache miss information [cache misses result in memory stalls], such as access type, access address, and return register [access address would reveal layer]; and pg. 1628 section 2.2, MSHR table is full, the cache cannot queue more cache accesses and the CPU's memory accesses or next-level memory accesses are blocked [i.e., the memory layer with the misses is tracked]).
Therefore, it would have been obvious of one of ordinary skill in the art, having the teachings of Paul and Wang before them, to combine Paul's analysis of memory access rate for frequency adjustments and methodology to save power by lowering CPU frequency in response to a memory bottleneck with Wang’s use of determining the layer of the hierarchy where the stall occurs and knowing a stall’s effect on performance at each layer, the motivation being to further improve power saving in the system by addressing the individual performance penalties of each layer (Wang pg. 1632 Sec. 4.1.1, two-cycle hit latency to L1 cache, 12-cycle of hit latency for L2 cache, 200-cycle of main memory access latency).
Paul in view of Wang does not explicitly disclose:
wherein the controlling the frequency of the CPU, the frequency of the cache memory, and the frequency of the memory device comprises determining a layer within a memory hierarchy in which memory stall occurs using the microarchitecture information;
In the analogous art of adjusting hardware operating parameters to optimize performance and power use of a device, Liu teaches:
controlling […], the frequency of the cache memory, and the frequency of the memory device comprises determining a layer within a memory hierarchy in which memory stall occurs using the microarchitecture information (Liu Col. 5 Lines 15-30, LMPR is used to measure a ratio of a request rate from one layer of the hierarchical memory system to a supply rate by a lower layer of the hierarchical memory system (see Col. 6 Lines 30-34, LMPR applies to cache memory and memory devices as layers of a memory hierarchy; also see Liu Col 5 Lines 33-67, LMPR equations account for pure average miss penalty [average number of pure miss cycles during execution of the executable instruction set], pure misses result in memory stalls [see Liu Col 6 Lines 3-12]); and Liu FIG. 2, step 210, adjust a set of computer architecture parameters [see Col. 4, Lines 30-35, Value T may correspond to a sufficient response rate from the second layer given a request rate from the first layer [i.e., frequency], and method may include adjusting at least one of the set of computer architecture parameters to change the LPMR [i.e., parameters relating to LPMR such as response or request rate are adjusted in response to LMPR ratios between layers]).
Therefore, it would have been obvious of one of ordinary skill in the art, having the teachings of Paul, Wang, and Liu before them, to combine Paul and Wang’s methodology for reducing power use in a system by identifying memory bottlenecks Liu's adjusting of frequencies of the layers of the memory hierarchy, the motivation being to further improve the performance of the memory hierarchy by considering the bottlenecks due to the access speeds between the layers (Liu Col 1 Lines 52-66).
Regarding Claim 12, Paul in view of Wang and Liu discloses the method of claim 11, wherein the monitoring the microarchitecture information includes:
counting a first count value of executing instructions per cycle by the CPU (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle); and
counting a second count value for memory stalls of the CPU per cycle (Wang pg. 1638 Sec. 6, miss rate [which results in a memory stall/miss penalty] is used in calculation of MLP(t), which finds main memory accesses [resulting in a stall] per CPU cycle).
Regarding Claim 13, Paul in view of Wang and Liu discloses the method of claim 12, further comprising:
increasing the frequency of the cache memory based on the first count value and the second count value (Liu Figure 4 steps 404-410, LMPR is affected by instructions per cycle and memory stalls [see Col 5 Lines 35-55 for equations]; frequency adjustment at 410 based on LMPR value).
Regarding Claim 14, Paul in view of Wang and Liu discloses the method of claim 13, further comprising:
after increasing the frequency of the cache memory, increasing the frequency of the memory device, based on the first count value and the second count value (Liu Figure 4 steps 404-410, LMPR is affected by instructions per cycle and memory stalls [see Col 5 Lines 35-55 for equations]; frequency adjustment at 410 based on LMPR value; Liu Figure 4"no" branch of tree at 408, this branch can be reevaluated after frequency is increased if it must be increased additional times).
Regarding Claim 15, Paul in view of Wang and Liu discloses the method of claim 11 further comprising:
monitoring a temperature of the processor (Paul par. 20, check if CPU is at maximum temp allowed by thermal budget [check would require monitoring the temperature]); and
controlling at least one of the frequencies of the CPU, the frequency of the cache memory, and the frequency of the memory device using the temperature (Paul par. 19, current thermal characteristics of the cores 110, 115 and the thermal budget represent thermal headroom that could be used to increase the DVFS state of one or more of the CPU cores 110; changing the DVFS state results in frequency change [see par. 16 table 1]).
Regarding Claim 16, Paul teaches an electronic device (Paul Figure 1, computer system 100) comprising:
a processor (Paul Figure 1, accelerated processing unit 105); and
a memory device connected to the processor (Paul FIG. 1, system memory 130);
wherein the processor includes:
at least one central processing unit (CPU) (Paul Figure 1, CPU cores 110 inside accelerated processing unit 105) configured to drive a dynamic voltage and frequency scaling (DVFS) module (Paul Figure 1, performance controller 125; and par. 16, performance controller 125 implements dynamic voltage and frequency scaling (DVFS) to adapt voltage and clock levels of the CPU cores 110),
a cache memory configured to temporarily store data for an operation of the at least one CPU (Paul par. 48, functionality supported by processors executing software programs tangibly stored at a computer readable medium, which may include cache [par. 49]),
an activity monitoring unit (AMU) (Paul Figure 1, CPU activity counter 140, a GPU activity counter 145, and memory activity counter 150, which may all be integrated together into performance controller 125 [see par. 25]) configured to monitor performance of the at least one CPU (Paul par. 27, CPU activity counter 145 tracks clock weighted micro-operations per cycle), or monitor traffic of the system bus (Paul par. 39, memory activity counter 150 monitors activity over memory bus),
wherein the DVFS module (Paul Figure 1, performance controller 125) is configured to:
collect microarchitecture information from the AMU (Instant application par. 47 states microarchitecture information may include information related to usages of the cache memory 120 and the memory interface circuit 130 or traffic of a bus 101; and Paul par. 39, memory activity counter 150 monitors activity over memory bus and par. 25, memory activity counter may be a part of performance controller 125);
The remaining limitations of claim 16 are similar in scope to claim 1 as addressed above and are thus rejected under the same rationale.
Regarding Claim 17, Paul in view of Wang and Liu discloses the electronic device of claim 16, wherein the at least one CPU includes an internal cache memory (Liu Col 6 Lines 30-50, memory disclosed may be a first-level (L1) cache, which refers to the smallest and fastest cache memory directly embedded within the processor), and the DVFS module is configured to change a frequency of the internal cache memory using the microarchitecture information (Liu Figure 4 steps 404-410, LMPR is affected by instructions per cycle and memory stalls (i.e., microarchitecture information) [see Col 5 Lines 35-55 for equations]; frequency adjustment at 410 based on LMPR value).
Regarding Claim 18, Paul in view of Wang and Liu discloses the electronic device of claim 16, wherein the DVFS module includes:
a first manager configured to determine the frequency of the at least one CPU using the microarchitecture information (Paul Figure 1, CPU activity counter 140; and Paul par. 27, CPU activity counter tracks clock weighted micro-operations per cycle);
a second manager configured to determine the frequency of the cache memory using the microarchitecture information (Wang pg. 1638 Sec. 6, discusses metrics to monitor memory performance, such as total memory access cycles [i.e., frequency]); and
a third manager configured to determine the frequency of the memory interface circuit using the microarchitecture information (Paul Figure 1, memory activity counter 150; and Paul par. 39, memory activity counter 150 monitors activity over memory bus).
Regarding Claim 19, Paul in view of Wang and Liu discloses the electronic device of claim 18, wherein an execution order of the first manager, the second manager, and the third manager is determined depending on the microarchitecture information (Paul FIG. 3-4, determining the frequency of the memory or CPU may occur in different orders [ex. checking CPU activity then memory activity in 445-440 and opposite order in 305-315]).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to COLE JIAWEI WENTZEL whose telephone number is (703) 756-4762. The examiner can normally be reached 9:30am-5:30pm ET (Mon-Fri).
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, Andrew Jung can be reached on (571) 270-3779. 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.
/C.J.W./Examiner, Art Unit 2175
/ANDREW J JUNG/Supervisory Patent Examiner, Art Unit 2175