Prosecution Insights
Last updated: October 02, 2026
Application No. 18/761,887

MEMORY PREFETCH MECHANISM BASED ON INSTRUCTION SETS

Final Rejection §103
Filed
Jul 02, 2024
Examiner
DOMAN, SHAWN
Art Unit
2183
Tech Center
2100 — Computer Architecture & Software
Assignee
Qualcomm Incorporated
OA Round
4 (Final)
65%
Grant Probability
Moderate
5-6
OA Rounds
9m
Est. Remaining
92%
With Interview

Examiner Intelligence

Grants 65% of resolved cases
65%
Career Allowance Rate
185 granted / 285 resolved
+9.9% vs TC avg
Strong +27% interview lift
Without
With
+26.6%
Interview Lift
resolved cases with interview
Typical timeline
3y 0m
Avg Prosecution
34 currently pending
Career history
337
Total Applications
across all art units

Statute-Specific Performance

§101
2.6%
-37.4% vs TC avg
§103
49.3%
+9.3% vs TC avg
§102
17.1%
-22.9% vs TC avg
§112
26.6%
-13.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 285 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 . Claims 1, 7, and 10 have been amended. Claims 1-20 have been examined. The specification objections in the previous Office Action have been addressed and are withdrawn. 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-3, 5, 10-16, 19, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over US Publication No. 2008/0034187 by Stempel et al. (hereinafter referred to as “Stempel”). Regarding claim 1, Stempel discloses: an apparatus comprising: an instruction sequencer configured to determine if a conditional branch opcode or an unconditional branch opcode is present and to anticipate a current prefetch buffer line based on a presence of the conditional branch opcode or the unconditional branch opcode… (Stempel discloses, at Figure 1 and related description, an instruction unit that controls instruction flow, which discloses an instruction sequencer. As disclosed at Figure 4 and related description, this involves determining if a branch is detected and if so, determining the branch target address, which discloses determining if a branch opcode is present and anticipating a current prefetch buffer line.); a prefetcher coupled to the instruction sequencer, the prefetcher configured to retrieve program instructions along a single branch using instruction-based prefetching based on an opcode (Stempel discloses, at Figure 1 and related description, a prefetch stage and fetch stage, which discloses a prefetcher configured to retrieve program instructions. As disclosed at Figure 3 and related description, the instructions are prefetched from the address specified by the branch that is predicted taken, which discloses along a single branch using instruction-based prefetching based on an opcode.); and a prefetch buffer coupled to the prefetcher, the prefetch buffer configured to store the current prefetch buffer line (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses a prefetch buffer configured to store the current prefetch buffer line.). Stempel does not explicitly disclose the aforementioned anticipating is “by examining one or more adjacent cache lines relative to a current cache line.” However, Stempel discloses, at ¶ [0032], prefetching a next sequential cache line. It is evident that the next sequential cache line is then examined to determine whether the line includes a branch. See, e.g., Figure 4 and related description. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to search multiple cache lines in order to improve performance by requiring fewer accesses to cache. Regarding claim 2, Stempel discloses the elements of claim 1, as discussed above. Stempel also discloses: the instruction sequencer is further configured to read a plurality of opcodes over a plurality of prefetch buffer lines (Stempel discloses, at Figure 1 and related description, an instruction unit that dispatches instructions retrieved from the instruction cache, which discloses reading a plurality of opcodes over a plurality of prefetch buffer lines.). Regarding claim 3, Stempel discloses the elements of claim 2, as discussed above. Stempel also discloses: a bulk memory coupled to the prefetch buffer, the bulk memory configured to store the plurality of prefetch buffer lines (Stempel discloses, at ¶ [0022], external memory from which the instruction unit retrieves instructions, which discloses bulk memory.). Regarding claim 5, Stempel discloses the elements of claim 3, as discussed above. Stempel also discloses: a bulk memory controller coupled to the bulk memory, the bulk memory controller configured to manage read access and write access to the bulk memory (Stempel discloses, at Figure 1 and related description, a bus interface unit that provides a mechanism for transferring data to and from the memory, which discloses a bulk memory controller configured to manage read and write access.). Regarding claim 10, Stempel discloses: a method comprising: examining a current cache line from a plurality of cache lines (Stempel discloses, at Figure 1 and related description, an instruction unit that controls instruction flow, which discloses examining a current cache line.); determining if a conditional branch opcode or an unconditional branch opcode is present (Stempel discloses, at Figure 4 and related description, determining if a branch is detected and if so, determining the branch target address, which discloses determining if a branch opcode is present.); …retrieving program instructions along a single branch using instruction-based prefetching based on an opcode (Stempel discloses, at Figure 3 and related description, the instructions are prefetched from the address specified by the branch that is predicted taken, which discloses along a single branch using instruction-based prefetching based on an opcode.); sending an anticipatory address to a bulk memory to fetch one or more anticipatory program instructions Stempel discloses, at Figure 1 and related description, a prefetch stage and fetch stage, which discloses sending an address to fetch program instructions from bulk memory.); and depositing the one or more anticipatory program instructions into a prefetch cache memory to augment an initial set of program instructions (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses storing prefetched instructions to a prefetch cache to augment initial instructions.). Stempel does not explicitly disclose the aforementioned anticipating is “examining one or more adjacent cache lines relative to a current cache line. However, Stempel discloses, at ¶ [0032], prefetching a next sequential cache line. It is evident that the next sequential cache line is then examined to determine whether the line includes a branch. See, e.g., Figure 4 and related description. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to search multiple cache lines in order to improve performance by requiring fewer accesses to cache. Regarding claim 11, Stempel discloses the elements of claim 10, as discussed above. Stempel also discloses: the conditional branch opcode or the unconditional branch opcode is an operation code for defining an executable operation (Stempel discloses, at Figure 4 and related description, determining if a branch is detected, which discloses an opcode that is an operation code for defining an executable operation.). Regarding claim 12, Stempel discloses the elements of claim 10, as discussed above. Stempel also discloses: the anticipatory address is a bulk memory address (Stempel discloses, at ¶ [0022], external memory from which the instruction unit retrieves instructions, which discloses a bulk memory address.). Regarding claim 13, Stempel discloses the elements of claim 10, as discussed above. Stempel also discloses: using a cache replacement policy for depositing the one or more anticipatory program instructions (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses using a cache replacement policy.). Regarding claim 14, Stempel discloses the elements of claim 13, as discussed above. Stempel also discloses: the cache replacement policy uses one of the following: a sequential prefetching, a stride prefetching, a stream prefetching, a Markov prefetching, a demand-based prefetching, or a cache-line prefetching (Stempel discloses, at Figure 1 and related description, a prefetch stage and fetch stage, which discloses the cache replacement policy uses cache-line prefetching.). Regarding claim 15, Stempel discloses the elements of claim 10, as discussed above. Stempel also discloses: the plurality of cache lines is in the prefetcher cache memory (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses the plurality of cache lines in the prefetcher cache memory.). Regarding claim 16, Stempel discloses the elements of claim 15, as discussed above. Stempel also discloses: receiving the one or more anticipatory program instructions from the bulk memory (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses receiving the instructions from bulk memory.). Regarding claim 19, Stempel discloses the elements of claim 15, as discussed above. Stempel also discloses: placing the initial set of program instructions into the plurality of cache lines (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses placing the initial set of instructions in the cache.). Regarding claim 20, Stempel discloses the elements of claim 19, as discussed above. Stempel also discloses: one of the conditional branch opcode or the unconditional branch opcode is part of a program instruction within the current cache line (Stempel discloses, at Figure 4 and related description, determining if a branch is detected, which discloses determining if a branch opcode is part of a program instruction within the current cache line.). Claim 4 and 7-9 are rejected under 35 U.S.C. 103 as being unpatentable over Stempel in view of US Publication No. 2003/0233530 by Boivie et al. (hereinafter referred to as “Boivie”). Regarding claim 4, Stempel discloses the elements of claim 3, as discussed above. Stempel also discloses: the instruction sequencer …configured to determine a presence of the conditional branch opcode or the unconditional branch opcode (Stempel discloses, at Figure 4 and related description, determining if a branch is detected, which discloses determining if a branch opcode is present.); Stempel does not explicitly disclose the aforementioned determining involves an opcode comparator. However, in the same field of endeavor (e.g., prefetch) Boivie discloses: recognizing an opcode (Boivie discloses, at ¶ [0014] et seq., recognizing an opcode, which discloses an opcode comparator to do so.). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include Boivie’s opcode comparison in order to increase flexibility by providing an additional way to recognize branch instructions. Regarding claim 7, Stempel discloses: …examining a current cache line from a plurality of cache lines (Stempel discloses, at Figure 1 and related description, an instruction unit that controls instruction flow, which discloses a means for examining a current cache line.); …determine if a conditional branch opcode or an unconditional branch opcode is present (Stempel discloses, at Figure 4 and related description, determining if a branch is detected and if so, determining the branch target address, which discloses means for determining if a branch opcode is present.); …retrieve program instructions along a single branch using instruction-based prefetching based on an opcode (Stempel discloses, at Figure 3 and related description, the instructions are prefetched from the address specified by the branch that is predicted taken, which discloses along a single branch using instruction-based prefetching based on an opcode.); …send an anticipatory address to a bulk memory to fetch one or more anticipatory program instructions (Stempel discloses, at Figure 1 and related description, a prefetch stage and fetch stage, which discloses means to send an address to fetch program instructions from bulk memory.); and …deposit the one or more anticipatory program instructions into a prefetch cache memory to augment an initial set of program instructions (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses means to store prefetched instructions to a prefetch cache to augment initial instructions.). Stempel does not explicitly disclose a non-transitory computer- readable medium storing computer executable code, operable on a device comprising at least one processor and at least one memory coupled to the at least one processor, wherein the at least one processor is configured to implement batch memory prefetching, the computer executable code comprising instructions, and examining one or more adjacent cache lines relative to the current cache line. However, Stempel discloses, at ¶ [0032], prefetching a next sequential cache line. It is evident that the next sequential cache line is then examined to determine whether the line includes a branch. See, e.g., Figure 4 and related description. It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to search multiple cache lines in order to improve performance by requiring fewer accesses to cache. Also in the same field of endeavor (e.g., prefetching), Bovie discloses: a non-transitory computer- readable medium storing computer executable code, operable on a device comprising at least one processor and at least one memory coupled to the at least one processor, the computer executable code comprising instructions (Bovie discloses, at ¶ [0013], the invention may be implemented with a conventional processor executing instructions stored in a machine readable medium such as a CD ROM.). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include the implementation disclosed by Bovie in order to improve flexibility regarding provisioning of Stempel’s system. Regarding claim 8, Stempel discloses the elements of claim 7, as discussed above. Stempel also discloses: means for using a cache replacement policy for depositing the one or more anticipatory program instructions (Stempel discloses, at Figure 1 and related description, an instruction cache, which discloses means for using a cache replacement policy.). Regarding claim 9, Stempel discloses the elements of claim 8, as discussed above. Stempel also discloses: instructions for causing the computer to receive the one or more anticipatory program instructions from the bulk memory (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses receiving the instructions from bulk memory.); instructions for causing the computer to use a …interface for receiving the one or more anticipatory program instructions (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses using an interface to receive instructions.); and instructions for causing the computer to place the initial set of program instructions into the plurality of cache lines (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses placing the initial set of instructions in the cache.). Stempel does not explicitly disclose the aforementioned access involves a serial interface. However, in the same field of endeavor (e.g., memory) Kumar discloses: a serial interface (Kumar discloses, at Figure 7 and related description, a quad serial peripheral interface (QSPI).). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include Kumar’s QSPI in order to balance the well-known design considerations involved in transferring data between computer components. See, e.g., Kumar, ¶ [0004]. Claims 6, 17, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Stempel in view of US Publication No. 2020/0192455 by Kumar et al. (hereinafter referred to as “Kumar”). Regarding claim 6, Stempel discloses the elements of claim 5, as discussed above. Stempel also discloses: …the bulk memory controller and the bulk memory… configured to allow the read access and the write access (Stempel discloses, at Figure 1 and related description, a bus interface unit that provides a mechanism for transferring data to and from the memory.). Stempel does not explicitly disclose the aforementioned access involves a serial interface. However, in the same field of endeavor (e.g., memory) Kumar discloses: a serial interface (Kumar discloses, at Figure 7 and related description, a quad serial peripheral interface (QSPI).). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include Kumar’s QSPI in order to balance the well-known design considerations involved in transferring data between computer components. See, e.g., Kumar, ¶ [0004]. Regarding claim 17, Stempel discloses the elements of claim 16, as discussed above. Stempel also discloses: using a … interface for receiving the one or more anticipatory program instructions (Stempel discloses, at Figure 1 and related description, storing instructions received via a bus interface unit in an instruction cache, which discloses using an interface to receive instructions.). Stempel does not explicitly disclose the aforementioned access involves a serial interface. However, in the same field of endeavor (e.g., memory) Kumar discloses: a serial interface (Kumar discloses, at Figure 7 and related description, a quad serial peripheral interface (QSPI).). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include Kumar’s QSPI in order to balance the well-known design considerations involved in transferring data between computer components. See, e.g., Kumar, ¶ [0004]. Regarding claim 18, Stempel discloses the elements of claim 17, as discussed above. Stempel does not explicitly disclose the serial interface is an octal serial peripheral interface (OSPI) or a quad serial peripheral interface (QSPI). However, in the same field of endeavor (e.g., memory) Kumar discloses: a quad serial peripheral interface (Kumar discloses, at Figure 7 and related description, a quad serial peripheral interface (QSPI).). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to modify Stempel to include Kumar’s QSPI in order to balance the well-known design considerations involved in transferring data between computer components. See, e.g., Kumar, ¶ [0004]. Response to Arguments On page 11 of the response filed July 9, 2026 (“response”), the Applicant argues, “In contrast to the recited pending claims, Stempel relies on "predicted-taken" branch instructions for initiation of a prefetch operation. In Stempel, there is no disclosure of usage of an opcode for prefetching, or more specifically, there is no mention of "along a single branch using instruction-based prefetching based on an opcode", as recited in the pending claims of the present application. There is no comparison with branch opcodes, for either unconditional branch or conditional branch opcodes as recited in the pending claims of the present Application. Instead, Stempel "predicts" that a branch instruction will be taken, and based on that prediction, performs the prefetching operation. The prediction of Stempel is not "based on an opcode", as recited in the pending claims. Thus, Stempel fails to disclose all of the elements of the pending claims of the present application.” Though fully considered, the Examiner respectfully disagrees. Stempel discloses, at Figure 3, a process for prefetching. The process involves determining if there is a branch instruction. See, e.g., 110 and 112 of Figure 3. This discloses instruction-based prefetching based on an opcode. That is, identifying a branch instruction involves identifying the opcode to determine the type of instruction. The prefetching differs based on the type of instruction, i.e., conditional branch that is taken, unconditional branch, etc. Figure 3 further discloses prefetching from the target address of the branch. See, e.g., 120 of Figure 3. This discloses along a single branch. Accordingly, the Applicant’s arguments are deemed unpersuasive. On pages 11-12 of the response the Applicant argues that Bovie and Kumar fail to disclose the newly added limitations. Though fully considered, the Examiner respectfully disagrees. As neither Bovie nor Kumar is cited as teaching the limitations, the arguments are moot. Accordingly, the Applicant’s arguments are deemed unpersuasive. Conclusion The following prior art made of record and not relied upon is considered pertinent to Applicant’s disclosure. US 20090222645 discloses detecting a branch by comparing an opcode. 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 extension fee 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 date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHAWN DOMAN whose telephone number is (571)270-5677. The examiner can normally be reached on Monday through Friday 8:30am-6pm Eastern Time. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jyoti Mehta can be reached on 571-270-3995. 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. /SHAWN DOMAN/ Primary Examiner, Art Unit 2183
Read full office action

Prosecution Timeline

Show 6 earlier events
Dec 08, 2025
Response after Non-Final Action
Dec 19, 2025
Request for Continued Examination
Jan 07, 2026
Response after Non-Final Action
Apr 21, 2026
Non-Final Rejection mailed — §103
Jul 08, 2026
Examiner Interview Summary
Jul 08, 2026
Applicant Interview (Telephonic)
Jul 09, 2026
Response Filed
Aug 07, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12717751
TENSOR PROCESSOR WITH PROCESSING ELEMENT ARRAY AND METHOD FOR PROCESSING TENSORS
4y 8m to grant Granted Aug 25, 2026
Patent 12710986
CIRCUIT AND METHOD FOR DYNAMIC REGISTER ALLOCATION FOR A GRAPHICS PROCESSING UNIT
1y 6m to grant Granted Aug 18, 2026
Patent 12705056
COMPUTING SYSTEM HAVING AN ACCUMULATOR REGISTER HAVING ENTRIES HAVING A BIT WIDTH LARGER THAN A MAN REGISTER FILE
3y 0m to grant Granted Aug 11, 2026
Patent 12693860
EFFICIENT COMPRESSION INSTRUCTION HANDLING IN A PROCESSING PIPELINE
1y 6m to grant Granted Jul 28, 2026
Patent 12681730
Measuring Performance Associated with Processing Instructions
2y 11m to grant Granted Jul 14, 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

5-6
Expected OA Rounds
65%
Grant Probability
92%
With Interview (+26.6%)
3y 0m (~9m remaining)
Median Time to Grant
High
PTA Risk
Based on 285 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