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 .
Continued Examination Under 37 CFR 1.114
1. 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 March 10th, 2026 has been entered.
Response to Arguments
2. Applicant's arguments filed March 10th, 2026 have been fully considered but they are not persuasive.
Applicant’s arguments that are directed toward limitations of the independent claims which have been added via amendment will be addressed in the updated rejections below.
Applicant’s arguments on pages 9-10 regarding the disclosure of Senior and the combination of Brar and Senior as it relates to the previous rejection are not considered persuasive. Applicant argues that “Senior does not teach that information is ever disregarded”, the combination of references has “no teaching that the information on the bus 115 is ever disregarded”, and that Senior discloses “’detecting a subset of branch which are not fixed direction branch instructions’ as opposed to detecting fixed direction branch instructions as stated in the FOA”.
In response to the above argument, Examiner respectfully disagrees. Senior teaches that information regarding the outcome and history of any branch which is determined to be fixed direction is disregarded as the branch is no longer stored and predicted using the neural predictor ([0027]) which utilizes branch resolution information, but instead are simply always predicted in the corresponding direction (taken or not-taken). First the branch is encountered, then it is determined to be fixed direction, then it has its resolution information (the claimed “subset of the data”) filtered out from the neural predictor by the filter (the claimed “disregard[ing]”). This is made clear by at least paragraphs [0027] and [0028], which states that these “branch instructions…are filtered out as fixed direction branch instructions” and thus “neural branch predictor 122 may not be employed”, and that each branch instruction is predicted either “by direction 121 or prediction 123”. The argument that Senior detects branch instructions which are not fixed direction rather than branches which are fixed direction is both irrelevant with respect to the language of the claims and not considered persuasive regardless, as the only types of branches possible are either fixed direction or not fixed direction, i.e., a binary pair, and therefore detecting one type automatically means detecting the other. Therefore, Applicant’s arguments are not considered persuasive and the rejections are maintained.
The rest of Applicant’s arguments are based on the arguments addressed above. Above responses are thus applicable.
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.
2. Claims 1-11, 14-16 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Brar et al (US 2019/0087193, herein Brar) in view of Senior (US 2019/0073223, herein Senior).
Regarding claim 1, Brar teaches a data processing apparatus comprising:
decode circuitry configured to decode an instruction in a stream of instructions as a conditional branch instruction ([0028], decode stage, [0002], conditional branches);
prediction circuitry configured to perform a prediction of the conditional branch instruction with respect to a flow of the stream of instructions ([0031-0033], branch prediction circuitry), the prediction circuitry comprising:
training circuitry configured to receive and store data associated with one or more executions of the conditional branch instruction ([0041-0042], training branch predictor with weight vectors),
generation circuitry configured to generate the prediction based on the data ([0039-0041], generate branch prediction based on history and training); and
filter circuitry configured to perform filtering to disregard a subset of the data ([0030-0032], filter subset of branches to non-neural predictor).
Brar fails to teach wherein the filtering is performed in dependence on whether the prediction is that the conditional branch instruction is of a specific type.
Senior teaches a data processing apparatus comprising prediction circuitry configured to perform a prediction of a conditional branch instruction and perform filtering of a subset of data associated with a subset of executions of the conditional branch instruction in dependence on whether a prediction is that a conditional branch instruction is of a specific type ([0023], [0026-0028], filter out fixed direction branch instructions, disregard branch resolution information for branches determined to be fixed direction by automatically speculatively executing in the fixed direction instead of using neural predictor).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine the teachings of Brar and Senior to expand the filtering abilities of Brar’s predictor to include fixed-direction branch instructions as taught by Senior. While Brar does not explicitly disclose that the filtering mechanism for the branch predictor may be used for unconditional or fixed-direction branch instructions, both Brar and Senior disclose the use of multi-path branch predictors that are trained on data associated with executed instructions and utilize both neural and non-neural branch predictions. Therefore, expanding the capabilities of Brar’s predictor to filter out fixed-direction branch instructions, as taught by Senior, would merely entail a simple substitution of known prior art elements to achieve predictable results, and would have been obvious to one of ordinary skill in the art.
Regarding claim 2, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, wherein the specific type is always-taken (Senior [0025], always taken branches).
Regarding claim 3, the combination of Brar and Senior teaches the data processing apparatus according to claim 2, wherein the filter circuitry is configured to probabilistically perform the filtering (Brar [0033], [0037], filtering based on weights and histories).
Regarding claim 4, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, wherein the filtering circuitry is configured to probabilistically perform the filtering to disregard the subset of the data when the prediction is that the conditional branch instruction is always-taken (Brar [0033], [0037], filtering based on histories & weights, Senior [0025], [0027], filtering always-taken branches).
Regarding claim 5, the combination of Brar and Senior teaches the data processing apparatus according to claim 4, wherein the subset of the data is N in M of the data (Brar [0036-0038], data subset identification).
Regarding claim 6, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, comprising monitor circuitry configured to monitor an accuracy of the prediction circuitry in the prediction being that the conditional branch instruction is always-taken (Brar [0041-0042], Senior [0035], checking prediction accuracy & Senior [0025], [0027], always-taken branches).
Regarding claim 7, the combination of Brar and Senior teaches the data processing apparatus according to claim 6, wherein a size of the subset of the data is determined according to the accuracy (Brar [0027], subsets determined by comparing prediction accuracies).
Regarding claim 8, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, wherein the generation circuitry is configured to generate the prediction that the conditional branch instruction is always-taken, in response to the data being empty (Senior [0034], initialized prediction state of always-taken).
Regarding claim 9, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, wherein the prediction circuitry is configured to generate the prediction that the conditional branch instruction is potentially always-taken, in response to the data being empty (Senior [0034], initial state of always-taken).
Regarding claim 10, the combination of Brar and Senior teaches the data processing apparatus according to claim 9, wherein the prediction circuitry is configured to generate the prediction that the conditional branch instruction that is potentially always-taken is not-always-taken in response to the prediction circuitry receiving a not-taken datum that the conditional branch instruction that is potentially always-taken is not taken during execution (Senior [0036-0037], correct prediction direction after misprediction data).
Regarding claim 11, the combination of Brar and Senior teaches the data processing apparatus according to claim 9, wherein the prediction circuitry is configured to probabilistically generate the prediction that the conditional branch instruction that is potentially always-taken is always-taken (Brar [0033], [0037], filtering based on histories & weights).
Regarding claim 14, the combination of Brar and Senior teaches the data processing apparatus according to claim 10, wherein the prediction circuitry is configured to generate the prediction that the conditional branch instruction that is always-taken is a conditional branch instruction that is not always-taken in response to the prediction circuitry receiving a not-taken datum that the conditional branch instruction that is always-taken is not taken during execution (Senior [0036-0037], correct prediction direction after misprediction data).
Regarding claim 15, the combination of Brar and Senior teaches the data processing apparatus according to claim 1, wherein the data processing apparatus is configured, in response to the accuracy falling below a throttling threshold, to disregard any prediction that the conditional branch instruction is always-taken (Brar [0027], [0038], use neural predictor instead of non-neural predictor based on prediction accuracy).
Regarding claim 16, the combination of Brar and Senior teaches the data processing apparatus according to claim 15, wherein the data processing apparatus is configured, in response to the accuracy rising above a dethrottling threshold, to respect any prediction that the conditional branch instruction is always-taken (Brar [0027], [0038], Senior [0036-0037], updating prediction type based on accuracy to neural or non-neural, non-neural prediction of branches in static direction).
Claim 19 refers to a method embodiment of the apparatus embodiment of claim 1. Therefore, the above rejection for claim 1 is applicable to claim 19.
Claim 20 refers to a medium embodiment of the apparatus embodiment of claim 1. Therefore, the above rejection for claim 1 is applicable to claim 20.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Bouzguarrou (US 2025/0085971) discloses a processor for filtering out subsets of data regarding outcomes of branch instructions.
Bouzguarrou (US 2021/0124586) discloses a processor for filtering lookups of a subset of conditional branch instructions.
Winrow (US 2020/0285477) discloses a processor wherein training of a branch predictor is disabled for certain instruction types.
Vougioukas (US 2019/0361707) discloses a processor that disables portions of a branch predictor according to an execution context.
Sadasivam (US 2018/0293076) discloses a processor that prevents updating a subset of branch predictors in order to disregard a subset of resolution outcome data.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL J METZGER whose telephone number is (571)272-3105. The examiner can normally be reached Monday-Friday 8:30-5.
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, Jyoti Mehta can be reached at 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.
/MICHAEL J METZGER/ Primary Examiner, Art Unit 2183