Prosecution Insights
Last updated: May 29, 2026
Application No. 18/758,058

Software-Guided Prefetch Throttling based on Memory Region Boundaries

Final Rejection §103
Filed
Jun 28, 2024
Examiner
THAMMAVONG, PRASITH
Art Unit
2137
Tech Center
2100 — Computer Architecture & Software
Assignee
Advanced Micro Devices, Inc.
OA Round
2 (Final)
87%
Grant Probability
Favorable
3-4
OA Rounds
11m
Est. Remaining
95%
With Interview

Examiner Intelligence

Grants 87% — above average
87%
Career Allowance Rate
469 granted / 539 resolved
+32.0% vs TC avg
Moderate +8% lift
Without
With
+8.2%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
17 currently pending
Career history
573
Total Applications
across all art units

Statute-Specific Performance

§101
1.9%
-38.1% vs TC avg
§103
60.5%
+20.5% vs TC avg
§102
24.5%
-15.5% vs TC avg
§112
7.7%
-32.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 539 resolved cases

Office Action

§103
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 . The Examiner acknowledges the applicant's submission of the amendment dated 12/26/25, which has been entered. 1. REJECTIONS BASED ON PRIOR ART 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 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. 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, 14-16, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gouldey (US 20240184702) in view of O'Connell (US 20080250208). With respect to claim 1, the Gouldey reference teaches a processor, comprising: prefetching circuitry associated with a cache level of a hierarchy of one or more cache levels, (e.g. fig. 5, where system 500 including prefetch circuitry 520 (e.g., a prefetcher) for prefetching one or more cache blocks in a group; and where there’s multiple levels of caches) the prefetching circuitry configured to: receive a boundary hint from a workload of an execution unit that accesses the cache level; (paragraph 54, where there is a hint operation that may comprise a single posted message. The hint operation can flow from a client to a server as a priority message; and paragraph 55, where the prefetch message (e.g., “Prefetch1 k”) may be a hint operation that sends the following information to a caching agent: address, mask, read, data, temporal, and ascending; and where the ascending bit may indicate if the prefetch should process the block mask in ascending (1) or descending (0) order. For example, a prefetch with address of 0x400, mask of 0x8003, and an ascending of 1 could first fill address 0x400 followed by 0x440 and finishing with 0x7C0 [i.e. a ‘boundary’]) and cease prefetch requests in response to a memory address accessed by the prefetch requests satisfying the boundary condition. (paragraph 54, where there may be multiple hint operations to transfer information between two agents, which behavior may be defined by the function field in the hint message. For example, hint operations may include a cancel message (e.g., “Cancel1K”), which may indicate that speculatively issued hints of any kind may be cancelled, and/or a prefetch message (e.g., “Prefetch1K”) which may indicate that system performance may benefit if a targeted agent were to pre-fill the cache blocks indicated by the prefetch hint [The Examiner notes the limitation of to “cease prefetch requests” is analogous to cancelling or changing the amount to prefetch next as recited above]; and paragraph 55, where the ascending bit may indicate if the prefetch should process the block mask in ascending (1) or descending (0) order. For example, a prefetch with address of 0x400, mask of 0x8003, and an ascending of 1 could first fill address 0x400 followed by 0x440 and finishing with 0x7C0 [i.e. a ‘boundary’]) However, the Gouldey reference does not explicitly teach the boundary hint including a boundary type for a boundary condition associated with the workload and a boundary address associated with the boundary condition. The O'Connell reference teaches it is conventional to have the boundary hint including a boundary type for a boundary condition associated with the workload and a boundary address associated with the boundary condition. (paragraph 70, where a determination is made as to whether the aggressive profile flag is set (decision 755). If the aggressive profile flag is set, decision 755 branches to "Yes" branch 758 whereupon processing generates and schedules a set of prefetch requests according to an "Aggressive" startup profile, and installs the address, along with an aggressive initial state, in one of the prefetch request queue entries (step 765). Processing then resets the state of the aggressive profile flag; and paragraph 10, where when the data prefetch engine receives a real address that corresponds to the beginning/end of a new page, and the aggressive profile flag is set, the prefetch engine uses an aggressive startup profile to generate and schedule prefetches due to the fact that the real address is highly likely to be the continuation of a long data stream. As a result, the system and method minimize latency when crossing real page boundaries when a program predominately accesses long streams, and switches back to a normal startup profile when data streams are short and less frequently crossing page boundaries [The Examiner notes the setting of the ‘aggressive profile flag’ is analogous to the “boundary type” as claimed) It would have been obvious to a person of ordinary skill in the art before the claimed invention was effectively filed to modify the Gouldey reference to have wherein the boundary hint including a boundary type for a boundary condition associated with the workload and a boundary address associated with the boundary condition, as taught by the O'Connell reference. The suggestion/motivation for doing so would have been to minimize latency when crossing real page boundaries when a program predominately accesses long streams. (O'Connell, paragraph 10) Therefore it would have been obvious to combine the Gouldey and O'Connell references for the benefits shown above to obtain the invention as specified in the claim. Claim 14 is the system implementation of claim 1 shown above, and rejected under a similar rationale. The Examiner notes the limitations of “a processor including a cache system with a cache level that includes prefetching circuitry” are shown in fig. 5 and corresponding text. With respect to claim 15, the Gouldey and O'Connell references teaches the system of claim 14, wherein the boundary hint is generated from operation code associated with the workload. (Gouldey, paragraph 45, where the message may be encoded as “Prefetch1K” message between agents, which could have a 1 kilobyte aligned base address and a 16-bit mask of 64 byte cache blocks within that 1 kilobyte region) With respect to claim 16, the Gouldey and O'Connell references teaches the system of claim 15, wherein the boundary hint is automatically determined by a compiler when compiling software associated with the workload. (Gouldey, paragraphs 20-21, where software structures are used to implement a system including components that may prefetch one or more cache blocks based on an address for a group of cache blocks and a bit field indicating the one or more cache blocks in the group; and there is a compiler) Claim 20 is the method implementation of claim 1 shown above, and rejected under a similar rationale. The Examiner notes the Gouldey reference teaches a “hardware prefetcher associated with a cache level of a hierarchy of one or more cache levels” and “disabling” and “enabling” ceasing of prefetching as shown in paragraphs 54-56 and shown in fig. 5 and corresponding text. 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 2-13 and 17-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Gouldey (US 20240184702) in view of O'Connell (US 20080250208), and further view of Lohman (US 20130232304). With respect to claim 2, the combination of the Gouldey and O'Connell references does not explicitly teach the processor of claim 1, wherein the accesses of the workload include a stride access pattern. The Lohman reference teaches it is conventional to have wherein the accesses of the workload include a stride access pattern. (paragraph 65, where typical hardware prefetchers search for a recognized pattern of read data and then automatically begin to speculatively preload future data based on the current read pattern. Typical examples of prefetch algorithms are an instruction or data cache fill that will cause the next cache line to be prefetched. A strided data prefetcher will look for a constant address stride between several data reads. It then uses that constant stride and multiplies by a predetermined count to create a prefetch address that it speculates that the CPU will read in the future. The automatic strided prefetch operation stops when the read address stride is broken) It would have been obvious to a person of ordinary skill in the art before the claimed invention was effectively filed to modify the combination of the Gouldey and O'Connell references to have wherein the accesses of the workload include a stride access pattern, as taught by the Lohman reference. The suggestion/motivation for doing so would have been to provide further increases in data transfer efficiency, the memory data to be transferred may also be prefetched or preloaded into faster memory (e.g., faster cache memory) before the transfer operation is executed. (Lohman, paragraph 27) Therefore it would have been obvious to combine the Gouldey, O'Connell, and Lohman references for the benefits shown above to obtain the invention as specified in the claim. With respect to claim 3, the combination of the Gouldey, O'Connell, and Lohman reference teaches the processor of claim 2, wherein the boundary hint includes the boundary type for the boundary condition of the stride access pattern, the boundary address for the boundary condition, and a target indicator identifying a program counter associated with the stride access pattern. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 4, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 3, wherein the boundary type includes instructions to cease prefetch requests with a memory address less than the boundary address, greater than the boundary address, or equal to the boundary address. (Lohman, paragraph 69, where no subsequent preloads are performed, because the copy size is less than the minimum preload size (MinPLDSize) (Section II in FIG. 8). The CPU then copies the read data preloaded into cache memory to the destination memory address starting at 0x2000 (Section III in FIG. 8)) With respect to claim 5, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 3, wherein the processor further includes a register configured to determine the boundary address based on algorithmic metadata associated with the accesses included in one or more operation codes of the processor. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 6, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 3, wherein the boundary address is specified as an offset to the program counter. (Lohman, paragraph 27, where a minimum prefetch or preload offset may be employed with the prefetch or preload operation so that data read from slower memory and written to faster memory is completed before the CPU needs access to the data during the transfer operation) With respect to claim 7, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 3, wherein the boundary condition is: set before the workload invokes a loop associated with the stride access pattern; and cleared after the workload completes the loop. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 8, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 3, wherein the prefetch requests are ceased in response to a memory address accessed by a prefetch request satisfying the program counter. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 9, the combination of the Gouldey, O'Connell, and Lohman references teaches the processor of claim 8, wherein the boundary condition is applied to each access instruction of a loop associated with the stride access pattern. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 10, the combination of the Gouldey, O'Connell, and Lohman references reference teaches the processor of claim 2, wherein the boundary hint includes: the boundary type for the boundary condition of the stride access pattern; the boundary address as a variable boundary for the boundary condition based on a value of a loop count associated with the stride access pattern; and an exit indicator indicating a program counter of an exit from a loop associated with the stride access pattern. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 11, the combination of the Gouldey, O'Connell, and Lohman references reference teaches the processor of claim 10, wherein the boundary condition is set for each loop associated with the loop count. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 12, the combination of the Gouldey, O'Connell, and Lohman references reference teaches the processor of claim 11, wherein the boundary condition applies to each access instruction until the boundary condition is satisfied. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) With respect to claim 13, the combination of the Gouldey, O'Connell, and Lohman references reference teaches the processor of claim 10, wherein the prefetch requests are ceased in response to a loop count value associated with a memory address accessed by a prefetch request satisfying the boundary type and the variable boundary. (Lohman, paragraph 36, where data stream address alignment of a 1 (one) KB interleaved address block size at 1 (one) KB boundaries (starting at memory address 0--e.g., boundaries 0x000, 0x400, 0x800, etc.; and the stride of the interleaved memory banks 40 controls the optimal alignment distance between the read memory address and the write memory address; and paragraph 65, where the automatic strided prefetch operation stops when the read address stride is broken) Claims 17-19 are the system implementation of claims 2-9 of the claims above, and rejected under a similar rationale. 2. ARGUMENTS CONCERNING PRIOR ART REJECTIONS Rejections - USC 102/103 Applicant’s arguments (see pages 8-9 of the remarks) and amendments with respect to claim(s) 1-20 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the O’Connell references to teach the newly added limitations as shown in the rejections above. 3. CLOSING COMMENTS Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to PRASITH THAMMAVONG whose telephone number is (571) 270-1040. The examiner can normally be reached Monday - Friday 12-8 PM EST. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Arpan Savla can be reached on (571) 272-1077. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /PRASITH THAMMAVONG/ Primary Examiner, Art Unit 2137
Read full office action

Prosecution Timeline

Jun 28, 2024
Application Filed
Oct 01, 2025
Non-Final Rejection mailed — §103
Nov 24, 2025
Interview Requested
Dec 04, 2025
Applicant Interview (Telephonic)
Dec 04, 2025
Examiner Interview Summary
Dec 26, 2025
Response Filed
May 04, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12639225
STATUS REPORTING FOR STORAGE DEVICE
2y 6m to grant Granted May 26, 2026
Patent 12632197
Universal Flash Storage Device With Partial Buffer Flush and Flush Resume Functions
2y 5m to grant Granted May 19, 2026
Patent 12625808
CACHE MEMORY SUPPORTING DATA OPERATIONS WITH PARAMETRIZED LATENCY AND THROUGHPUT
3y 2m to grant Granted May 12, 2026
Patent 12625798
Apparatus and Method for Address Generation, Data Buffer, and Artificial Intelligence Chip
3y 1m to grant Granted May 12, 2026
Patent 12619536
MEMORY CONTROLLER, MEMORY SYSTEM FOR DATASET MANAGEMENT HANDLING, METHOD, AND STORAGE MEDIUM THEREOF
2y 8m to grant Granted May 05, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

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

Prosecution Projections

3-4
Expected OA Rounds
87%
Grant Probability
95%
With Interview (+8.2%)
2y 10m (~11m remaining)
Median Time to Grant
Moderate
PTA Risk
Based on 539 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

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

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

Free tier: 3 strategy analyses per month