Prosecution Insights
Last updated: October 02, 2026
Application No. 17/067,852

APPARATUS WITH REDUCED HARDWARE REGISTER SET USING REGISTER-EMULATING MEMORY LOCATION TO EMULATE ARCHITECTURAL REGISTER

Non-Final OA §102§103
Filed
Oct 12, 2020
Priority
Jul 31, 2015 — GB 1513524.7 +1 more
Examiner
HUISMAN, DAVID J
Art Unit
2183
Tech Center
2100 — Computer Architecture & Software
Assignee
ARM Limited
OA Round
3 (Non-Final)
58%
Grant Probability
Moderate
3-4
OA Rounds
0m
Est. Remaining
92%
With Interview

Examiner Intelligence

Grants 58% of resolved cases
58%
Career Allowance Rate
397 granted / 687 resolved
+2.8% vs TC avg
Strong +34% interview lift
Without
With
+34.0%
Interview Lift
resolved cases with interview
Typical timeline
4y 8m
Avg Prosecution
40 currently pending
Career history
776
Total Applications
across all art units

Statute-Specific Performance

§101
6.7%
-33.3% vs TC avg
§103
35.1%
-4.9% vs TC avg
§102
19.7%
-20.3% vs TC avg
§112
32.0%
-8.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 687 resolved cases

Office Action

§102 §103
DETAILED ACTION Claims 1 and 3-17 are pending Claims 8-14 have been withdrawn. 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 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 June 26, 2025, has been entered. Specification The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification. Claim Notes/Recommendations In anticipation of rejoining the withdrawn claims, the examiner has examined them for informalities and 112 issues. The examiner recommends addressing the following: In claim 8, last two lines, there is a lack of antecedent basis for both instances of “the opcode” since there is an opcode in line 2 and another in line 4. In claim 9, line 2, “the opcode” lacks basis for similar reasoning. In claim 9, each instance of “the S-bit opcode” lacks basis because there is an S-bit opcode in claim 8, line 4, and another in claim 9, line 5. In claim 14, each instance of “the J-bit reference address” lacks basis because there are multiple instances of “a J-bit address” in claim 13 (lines 2 and 6). Claim Interpretation The following is a quotation of MPEP 2111.04(II): “The broadest reasonable interpretation of a method (or process) claim having contingent limitations requires only those steps that must be performed and does not include steps that are not required to be performed because the condition(s) precedent are not met.” “The broadest reasonable interpretation of a system (or apparatus or product) claim having structure that performs a function, which only needs to occur if a condition precedent is met, requires structure for performing the function should the condition occur. The system claim interpretation differs from a method claim interpretation because the claimed structure must be present in the system regardless of whether the condition is met and the function is actually performed.” Regarding claim 15, when a predetermined type of instruction is not decoded, the steps of the last paragraph are not performed and are thus not required by the claimed method. The examiner recommends claiming a step of --decoding a predetermined type of instruction…-- and then starting the last paragraph with --in response to decoding the predetermined type of instruction…--. Thus will require the steps of the last paragraph to be performed. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claim 15 is firstly rejected under 35 U.S.C. 102(a)(1) as being anticipated by Damron, U.S. Patent No. 7,210,026. Referring to claim 15, Damron has taught a data processing method comprising: receiving a program instruction (at least one of FIGs.2A-C, 2E, and 3A-B) to be processed according to a predetermined architecture defining a plurality of architectural registers accessible in response to the program instructions (from FIG.3A, note field 306, which identifies one of registers 352 (e.g. FIG.3C), and field 308, which identifies one of registers 354 (e.g. FIG.3C). All registers accessible by the instructions are architectural registers defined by the architecture); transferring data corresponding to at least one architectural register from a corresponding register emulating memory location in memory to at least one of a set of hardware registers (see FIG.3B and FIG.4), wherein a storage capacity of the set of hardware registers is insufficient for storing data associated with all of the plurality of architectural registers of the predetermined architecture (from FIG.4, there is unimplemented register space, meaning that there are more architectural registers than hardware registers. For instance, see column 7, lines 51-61, which sets forth that field 308 is a 13-bit field capable of identifying 8192 architectural registers. However, from column 8, lines 3-28, fewer than 8192 registers may be implemented, with the remaining “registers” being emulated by locations in a memory region pre-reserved for this purpose); and processing the program instruction using the set of hardware registers (FIGs.2A-C, 2E, and 3A-B. Also, see column 7, lines 27-30, for instance); wherein the set of hardware registers comprises a program counter register to store a program counter identifying a program instruction to be processed by the processing circuitry (a program counter (PC) register must exist within Damron to fetch instructions from memory. A PC register stores the memory address of the next instruction to fetch. In response, fetch logic will lookup memory at that address to obtain the next instruction for processing); and (these limitations are not required by the claim as they are contingent on decoding a predetermined type of instruction. When such an instruction does not exist, it cannot be decoded to perform the steps in the last paragraph. However, even if such an instruction did exist, a program does not require inclusion of every possible instruction in the instruction set. As such, when not included in a program, it cannot be decoded to perform the steps in the last paragraph). 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, 5, and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over Damron in view of Bright et al., U.S. Patent No. 6,523,110. Referring to claim 1, Damron has taught an apparatus comprising: processing circuitry (FIG.1) to process program instructions (at least FIGs.2A-C, 2E, and 3A-B) in accordance with a predetermined architecture defining a plurality of architectural registers accessible in response to the program instructions (from FIG.3A, note field 306, which identifies one of registers 352 (e.g. FIG.3C), and field 308, which identifies one of registers 354 (e.g. FIG.3C). All registers accessible by the instructions via these instruction fields are architectural registers defined by the architecture); a set of hardware registers (see FIG.4, at least registers 402 and 404 (non-dashed portion)), wherein a storage capacity of the set of hardware registers is insufficient for storing data associated with all of the plurality of architectural registers of the predetermined architecture (from FIG.4, there is unimplemented register space, meaning that there are more architectural registers than hardware registers. For instance, see column 7, lines 51-61, which sets forth that field 308 is a 13-bit field capable of identifying 8192 architectural registers. However, from column 8, lines 3-28, fewer than 8192 registers may be implemented, with the remaining “registers” being emulated by locations in a memory region pre-reserved for this purpose (See the dashed portion in FIG.4)); and control circuitry responsive to the program instructions to transfer data between the set of hardware registers and at least one register-emulating memory location in memory for storing data corresponding to at least one of the plurality of architectural registers of the predetermined architecture (see FIG.3B and FIG.4); wherein the set of hardware registers comprises a program counter register to store a program counter identifying a program instruction to be processed by the processing circuitry (a program counter (PC) register must exist within Damron to fetch instructions from memory. A PC register stores the memory address of the next instruction to fetch. In response, fetch logic will lookup memory at that address to obtain the next instruction for processing); and Damron has not taught in response to decoding a predetermined type of instruction for triggering the processing circuitry to perform a processing operation, the control circuitry is configured to write the program counter to memory, the processing circuitry is configured to use the program counter register to store at least one data value during processing of said predetermined type of instruction, and following said processing operation, the control circuitry is configured to read the program counter from memory to recover the program counter before fetching the next instruction to be executed by the processing circuitry after the predetermined type of instruction. However, Bright has taught branch prediction, which is known to reduce stalls and speed up processing related to branch paths by starting processing of a predicted branch path before the outcome of the branch is known. See column 1, line 60, to column 2, line 4, and to the background of Bright in general. Branch instructions flexibly allow for execution of different paths of code depending on some condition. And, part of branch prediction involves correcting mispredictions. One way to do this is to store sequential program counter value into a state register (memory). This register would later be used to restore the program counter in response to mispredicting that a branch is taken. See column 9, lines 45-62. As a result, in order to realize branch functionality, increased throughput/speed by predicting branches, and appropriate recovery from mispredictions to ensure correct execution, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Damron to execute branch instructions, predict their outcomes, and also to implement the state register memory to store the correct program counter value for misprediction purposes. Given this modification, the combination teaches: in response to decoding a predetermined type of instruction for triggering the processing circuitry to perform a processing operation (Bright, column 9, lines 50-60; in response to decoding an instruction of the branch type, which triggers branch-related operation), the control circuitry is configured to write the program counter to memory (Bright column 9, lines 50-60; when a branch is to be predicted taken, the sequential address, i.e., the address of the instruction immediately after the branch instruction is the program counter value ultimately used to fetch the instruction immediately after the branch instruction), the processing circuitry is configured to use the program counter register to store at least one data value during processing of said predetermined type of instruction (when the branch instruction is predicted taken in Bright, the predicted target address is stored in the program counter register, as is known in the art, so as to begin fetching an instruction of the predicted branch path), and following said processing operation, the control circuitry is configured to read the program counter from memory to recover the program counter before fetching the next instruction to be executed by the processing circuitry after the predetermined type of instruction (following the branch being processed, the system would determine that a misprediction occurred, i.e., that the sequential path should have been fetched instead of the taken path. As such, the program counter would be recovered by loading the sequential address from the state register (memory) into the program counter register. The recovered program counter would then be used to fetch the correct instruction, i.e., the instruction immediately following the branch that is to be executed). Referring to claim 5, Damron, as modified, has taught the apparatus according to claim 1, wherein the set of hardware registers comprises two N-bit operand registers to store operand values to be processed by the processing circuitry (see FIG.2C and column 6, lines 41-50. Registers identified by fields 246 and 248 store N-bit values to be added. For instance, from column 4, lines 41-43, N = 64). Referring to claim 15, Damron has taught a data processing method comprising: receiving a program instruction (at least FIGs.2A-C, 2E, and 3A-B) to be processed according to a predetermined architecture defining a plurality of architectural registers accessible in response to the program instructions (from FIG.3A, note field 306, which identifies one of registers 352 (e.g. FIG.3C), and field 308, which identifies one of registers 354 (e.g. FIG.3C). All registers accessible by the instructions are architectural registers defined by the architecture); transferring data corresponding to at least one architectural register from a corresponding register emulating memory location in memory to at least one of a set of hardware registers (see FIG.3B and FIG.4), wherein a storage capacity of the set of hardware registers is insufficient for storing data associated with all of the plurality of architectural registers of the predetermined architecture (from FIG.4, there is unimplemented register space, meaning that there are more architectural registers than hardware registers. For instance, see column 7, lines 51-61, which sets forth that field 308 is a 13-bit field capable of identifying 8192 architectural registers. However, from column 8, lines 3-28, fewer than 8192 registers may be implemented, with the remaining “registers” being emulated by locations in a memory region pre-reserved for this purpose); and processing the program instruction using the set of hardware registers (FIGs.2A-C, 2E, and 3A-B. Also, see column 7, lines 27-30, for instance); wherein the set of hardware registers comprises a program counter register to store a program counter identifying a program instruction to be processed by the processing circuitry (a program counter (PC) register must exist within Damron to fetch instructions from memory. A PC register stores the memory address of the next instruction to fetch. In response, fetch logic will lookup memory at that address to obtain the next instruction for processing); and Damron has not taught in response to decoding a predetermined type of instruction for triggering the processing circuitry to perform a processing operation, control circuitry is configured to write the program counter to memory, the processing circuitry is configured to use the program counter register to store at least one data value during processing of said predetermined type of instruction, and following said processing operation, the control circuitry is configured to read the program counter from memory to recover the program counter before fetching the next instruction to be executed by the processing circuitry after the predetermined type of instruction. However, Bright has taught branch prediction, which is known to reduce stalls and speed up processing related to branch paths by starting processing of a predicted branch path before the outcome of the branch is known. See column 1, line 60, to column 2, line 4, and to the background of Bright in general. Branch instructions flexibly allow for execution of different paths of code depending on some condition. And, part of branch prediction involves correcting mispredictions. One way to do this is to store sequential program counter value into a state register (memory). This register would later be used to restore the program counter in response to mispredicting that a branch is taken. See column 9, lines 45-62. As a result, in order to realize branch functionality, increased throughput/speed by predicting branches, and appropriate recovery from mispredictions to ensure correct execution, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Damron to execute branch instructions, predict their outcomes, and also to implement the state register memory to store the correct program counter value for misprediction purposes. Given this modification, the combination teaches: in response to decoding a predetermined type of instruction for triggering the processing circuitry to perform a processing operation (Bright, column 9, lines 50-60; in response to decoding an instruction of the branch type, which triggers branch-related operation), the control circuitry is configured to write the program counter to memory (Bright column 9, lines 50-60; when a branch is to be predicted taken, the sequential address, i.e., the address of the instruction immediately after the branch instruction is the program counter value ultimately used to fetch the instruction immediately after the branch instruction), the processing circuitry is configured to use the program counter register to store at least one data value during processing of said predetermined type of instruction (when the branch instruction is predicted taken in Bright, the predicted target address is stored in the program counter register, as is known in the art, so as to begin fetching an instruction of the predicted branch path), and following said processing operation, the control circuitry is configured to read the program counter from memory to recover the program counter before fetching the next instruction to be executed by the processing circuitry after the predetermined type of instruction (following the branch being processed, the system would determine that a misprediction occurred, i.e., that the sequential path should have been fetched instead of the taken path. As such, the program counter would be recovered by loading the sequential address from the state register (memory) into the program counter register. The recovered program counter would then be used to fetch the correct instruction, i.e., the instruction immediately following the branch that is to be executed). Claim 16 is rejected for a subset of reasoning set forth in the rejection of claim 1. Referring to claim 17, Damron, as modified, has taught the apparatus according to claim 1, wherein the processing operation for the predetermined type of instruction comprises a processing operation for which, without use of the program counter register to store said at least one data value, the set of hardware registers would provide insufficient capacity for supporting the processing operation for the predetermined type of instruction (taking the INT instruction of Kudo, this instruction requires that the address of the interrupt service routine (ISR) be stored in a program counter register. There is only one program counter register, which is the reason the contents thereof need to be saved so that the contents are not list when the address of the ISR is stored in the program counter register. Because the set of registers does not provide a second program counter register, the capacity of the set is insufficient to carry out INT without using the only program counter register in the system. Similar reasoning applies to the other rejections based on Kudo and Valvano (for any interrupt instruction, a PC register is needed so that the interrupt can be returned from. Since there is only one PC register, the set has otherwise insufficient capacity to carry out interrupt service routines). Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Damron in view of Bright and Ball, U.S. Patent Application Publication No. 2005/0223198 A1. Referring to claim 3, Damron, as modified, has taught the apparatus according to claim 1, but has not taught wherein the predetermined type of instruction comprises a multiply or divide instruction. However, Ball has taught a branch instruction that multiplies its immediate field by 4 before adding it to the current program counter address to obtain a target address (see paragraphs [0037]-[0038] and [0040]). One advantage gained from this multiplication is for proper alignment for byte addressing and expanded target range (paragraph [0040]). As a result, in order to realize these benefits, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Damron such that the predetermined type of instruction comprises a multiply instruction, i.e., a branch instruction that performs a multiply operation. Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Damron in view of Bright and Gueron et al., U.S. Patent Application Publication No. 2014/0006755 A1. Referring to claim 6, Damron, as modified, has taught the apparatus according to claim 5, but has not taught wherein in response to a multiply instruction for controlling the processing circuitry to multiply two N-bit operand values stored in the two operand registers to generate an N-bit result value representing a least significant N bits of a product of the two N-bit operand values, the processing circuitry is configured to accumulate the N-bit result value into one of said two operand registers. However, Gueron has taught a VPMULADDLO instruction that multiplies two operands of the same size (K bits), and from two operand registers, to generate a 2K-bit result, of which the lower K bits are accumulated with a value in one of the two operand registers (e.g. see paragraphs [0055] and [0063]). Multiply-accumulate is a known mathematical operation in the art and allowing for performance thereof would realize such functionality. As a result, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Damron such that in response to a multiply instruction for controlling the processing circuitry to multiply two N-bit operand values stored in the two operand registers to generate an N-bit result value representing a least significant N bits of a product of the two N-bit operand values, the processing circuitry is configured to accumulate the N-bit result value into one of said two operand registers. Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Damron in view of Bright, Gueron, and McNally, “Design Specification 2003 - 4-bit Multiplier”. Referring to claim 7, Damron, as modified, has taught the apparatus according to claim 6, but has not taught wherein in response to the multiply instruction, the processing circuitry is configured to perform an iterative process for generating the N-bit result value in a plurality of steps, each step comprising shifting out a bit of one of the operand values from said one of said two operand registers to accommodate an additional bit of an accumulator value representing a sum of partial products of said two operand values. However, McNally has taught a circuit performing such a process (see pp.1-2). For instance, in each iteration, a bit is shifted out of both operands (or just one in the second circuit shown) so as to create another bit in the accumulator value, which is a sum of partial products generated in iterations where the least significant bit of the multiplier is 1. There are many ways to implement multiplication circuitry and this one is deemed the simplest by McNally (see p.1). The second circuit is deemed more efficient. As a result, in order to design for simplicity or efficiency, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify Damron such that in response to the multiply instruction, the processing circuitry is configured to perform an iterative process for generating the N-bit result value in a plurality of steps, each step comprising shifting out a bit of one of the operand values from said one of said two operand registers to accommodate an additional bit of an accumulator value representing a sum of partial products of said two operand values. Allowable Subject Matter Claim 4 is objected to as being dependent upon a rejected base claim, but would be allowable over the prior art if rewritten in independent form including all of the limitations of the base claim and any intervening claims. Response to Arguments Applicant argues that the combination of prior art relied on by the pervious rejection does not teach the claims as amended. The examiner agrees and has withdrawn those rejections. However, an updated search revealed another reference that may be combined with Damron to render the claims unpatentable. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to David J. Huisman whose telephone number is 571-272-4168. The examiner can normally be reached on Monday-Friday, 9:00 am-5:30 pm. 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. /David J. Huisman/Primary Examiner, Art Unit 2183
Read full office action

Prosecution Timeline

Show 1 earlier event
Oct 18, 2024
Non-Final Rejection mailed — §102, §103
Jan 20, 2025
Response Filed
Mar 27, 2025
Final Rejection mailed — §102, §103
Jun 06, 2025
Examiner Interview Summary
Jun 06, 2025
Applicant Interview (Telephonic)
Jun 26, 2025
Request for Continued Examination
Jul 02, 2025
Response after Non-Final Action
Sep 23, 2026
Non-Final Rejection mailed — §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12737304
DEVICE, METHOD AND SYSTEM FOR PRIORITIZING ENTRIES OF AN INSTRUCTION FETCH RESOURCE
3y 6m to grant Granted Sep 15, 2026
Patent 12730644
MECHANISM FOR EFFICIENT MASSIVELY-CONCURRENT CONDITIONAL COMPUTATION
5y 10m to grant Granted Sep 08, 2026
Patent 12717582
HIERARCHICAL THREAD SCHEDULING
6y 2m to grant Granted Aug 25, 2026
Patent 12705055
Repeat Instruction for Loading and/or Executing Code in a Claimable Repeat Cache a Specified Number of Times
4y 5m to grant Granted Aug 11, 2026
Patent 12693866
TRANSFORMING DATA WITHIN A QUEUING SYSTEM
4y 6m to grant Granted Jul 28, 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
58%
Grant Probability
92%
With Interview (+34.0%)
4y 8m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 687 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