Prosecution Insights
Last updated: August 17, 2026
Application No. 18/844,296

SUB-VECTOR-SUPPORTING INSTRUCTION FOR SCALABLE VECTOR INSTRUCTION SET ARCHITECTURE

Final Rejection §103§112
Filed
Sep 05, 2024
Priority
Mar 11, 2022 — GB 2203431.8 +1 more
Examiner
SNYDER, STEVEN G
Art Unit
2183
Tech Center
2100 — Computer Architecture & Software
Assignee
ARM Limited
OA Round
2 (Final)
81%
Grant Probability
Favorable
3-4
OA Rounds
8m
Est. Remaining
72%
With Interview

Examiner Intelligence

Grants 81% — above average
81%
Career Allowance Rate
703 granted / 872 resolved
+25.6% vs TC avg
Minimal -8% lift
Without
With
+-8.3%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
14 currently pending
Career history
890
Total Applications
across all art units

Statute-Specific Performance

§101
5.9%
-34.1% vs TC avg
§103
62.2%
+22.2% vs TC avg
§102
13.0%
-27.0% vs TC avg
§112
11.8%
-28.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 872 resolved cases

Office Action

§103 §112
DETAILED ACTION This is in response to communication filed on 12/8/2025. Status of Claims Claims 1 – 4 and 6 – 23 are pending, of which claims 1, 22, and 23 are in independent form. Information Disclosure Statement The information disclosure statement (IDS) submitted on 12/8/2025 and 1/13/2026 are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner. Drawings In light of applicant’s amendments to the drawings, the examiner withdraws the previous objection to the drawings. Specification In light of applicant’s amendments to the specification, the examiner withdraws the previous objection to the specification. Claim Objections In light of applicant’s amendments to claims 1, 22, and 23, the examiner withdraws the previous objection to these claims. Claim 4 remains objected to because of the following informalities: claim 4 line 3 states “the same” when the claim should state “a same.” Appropriate correction is required. Claim 7 is objected to because of the following informalities: claim 7 depends from cancelled claim 5. Appropriate correction is required. Claim Rejections - 35 USC § 112 In light of applicant’s amendments to the claims, the examiner withdraws the previous rejection under 35 USC 112 to claim 3. In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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 – 4, 5 – 9, 13 – 14, and 22 – 23 are rejected under 35 U.S.C. 103 as being unpatentable over Thorson et al., U.S. Patent Application 2018/0285316 (hereinafter referred to as Thorson) in view of Linford et al., ‘Intro to SVE: Arm SVE Fundamentals’ (hereinafter referred to as Linford). Regarding claim 1, Thorson teaches an apparatus comprising: processing circuitry to perform data processing (Figure 2 and [0044-0046]: vector reduction unit 212 performs operations including "a summation vector reduction, maximum or minimum value vector reduction, or maximum or minimum index vector reduction", i.e. data processing); and instruction decoding circuitry to control the processing circuitry to perform the data processing in response to decoding of program instructions ... (Figure 2 and [0039-0040] teaches a sequencer 206, i.e. decoder, which receives instructions from the host interface, converts them to low-level control signals, and directs processing circuitry to execute operations); in which: the instruction decoding circuitry and the processing circuitry are configured to support a sub-vector-supporting instruction which treats a given vector as comprising a plurality of sub-vectors with each sub-vector comprising a plurality of vector elements ... ([0039] "The sequencer 206 may receive an instruction to initiate a vector reduction computation on the circuit 200, and may generate a control signal for controlling a vector reduction unit 212 to initiate the vector reduction computation" and [0025] "an input vector may be segmented, and respective vector reduction operations may be performed on one or more of the segments of the input vector"; in other words, the vector has segments which correspond to the claimed sub-vectors and segments contain elements); and in response to the sub-vector-supporting instruction, the instruction decoding circuitry is configured to control the processing circuitry to perform an operation for the given vector at sub-vector granularity ([0039] "The sequencer 206 may receive an instruction to initiate a vector reduction computation on the circuit 200, and may generate a control signal for controlling a vector reduction unit 212 to initiate the vector reduction computation" and [0002] teaches that operations may be performed on multiple segments of an input vector, i.e. segment/sub-vector granularity: "for example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Thorson does not explicitly teach program instructions defined according to a scalable vector instruction set architecture supporting vector instructions operating on vectors of scalable vector length to enable a same instruction sequence to be executed on apparatuses with hardware supporting different maximum vector lengths and each sub-vector having an equal sub-vector length. Linford teaches program instructions defined according to a scalable vector instruction set architecture supporting vector instructions operating on vectors of scalable vector length to enable a same instruction sequence to be executed on apparatuses with hardware supporting different maximum vector lengths (Slide 2 shows that "The exact same binary code runs on hardware with different vector lengths". An operation is performed on vector A with vector B resulting in output vector C, and it is shown that this works with different vector lengths including 512 bit vector unit and 256 bit vector unit. In other words, hardware with different maximum vector lengths are supported, and the instruction sequence is represented by binary code. These instructions are therefore part of a scalable instruction set architecture and is further supported by Slide 2 stating that "Arm's Scalable Vector Extension" is "an ISA feature which Si partners can implement at length -128 to 2048 bits") each sub-vector having an equal sub-vector length (Slide 5 teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31 ". In other words, SVE defines an architectural increment of 128 bits, so Z vectors are composed of equal-sized 128-bit blocks, interpreted as equal length subvectors). Linford further teaches each subvector has a sub-vector length, defining the sub-vector granularity at which the operation is performed, where the sub-vector length is of an architecturally-defined fixed size which is independent of a vector length used for the given vector (slide 5 teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is an architecturally-defined fixed size because it corresponds to NEON architecture. This size is fixed and is independent of the scalable Z vector length. Slide 4 shows the granularity of execution based on the 128-bit sub-vectors). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson by incorporating the teachings of Linford to include that the program instructions of Thorson are defined according to a scalable vector instruction set architecture of Linford, supporting vector instructions operating on vectors of scalable vector length to enable the same instruction sequence to be executed on apparatuses with hardware supporting different maximum vector lengths and each sub-vector having an equal sub-vector length defining the sub-vector granularity at which the operation is performed. Doing so would allow for improved portability and reuse of program code across hardware implementations with varying vector widths. Doing so would also have simplified hardware design and instruction semantics by ensuring consistent partitioning of vectors into fixed-size increments, thereby facilitating mapping of legacy 128-bit SIMD code (i.e. NEON architecture) into the scalable SVE framework. Regarding claim 2, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which each subvector has the sub-vector length which is known at compile time for a given instruction sequence to be executed using the sub-vector-supporting instruction (Linford slide 5 teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and Linford slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is known at compile time because SVE explicitly defines Z vectors as multiples of 128 bit blocks). Regarding claim 3, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which how many sub-vectors are comprised by the given vector is unknown at compile time for the given instruction sequence (Linford slide 2, "The hardware sets the vector length ... In software, vectors have no length ... The exact same binary code runs on hardware with different vector lengths". In other words, SVE instructions are designed to operate on vectors of unknown length, the com piled binary doesn't need to be recompiled or rewritten for different vector sizes, i.e. amount of sub-vectors comprised in the vector. The hardware handles the actual vector width, and the software adapts automatically). Regarding claim 4, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which in response to the sub-vector-supporting instruction, the instruction decoding circuitry is configured to control the processing circuitry to process each of the sub-vectors in response to the same instance of executing the sub-vector-supporting instruction (Thorson [0002] "a segmented vector reduction operation produces an output vector in which each element is a reduction of a segment of the input vector. For example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Regarding claim 6, Thorson in view of Linford teaches the apparatus according to claim 5. Thorson in view of Linford further teaches in which the architecturally-defined fixed size corresponds to an architecturally-defined maximum vector length prescribed for vector instructions processed according to a predetermined non-scalable vector instruction set architecture (Linford slide 5 teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and Linford slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is an architecturally-defined fixed size because it corresponds to NEON architecture, and is a non-scalable vector ISA with 128-bit maximum vector length). Regarding claim 7, Thorson in view of Linford teaches the apparatus according to claim 5 (cancelled). Thorson in view of Linford further teaches in which the architecturally-defined fixed size is 128 bits (Linford slide 5 teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and Linford slide 7 teaches "Z0- Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is an architecturally-defined fixed size because it corresponds to NEON architecture, and is a non-scalable vector ISA with 128-bit maximum vector length). Regarding claim 8, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which each vector element of each sub-vector has a variable element size, and the sub-vector length is independent of which element size is used for each vector element within each sub-vector (Linford, slide 7, "Scalable vector registers ... Z0-Z31 extending NEON's 128-bit V0-V31 ... Packed DP, SP & HP floating-point elements ... Packed 64, 32, 16 & 8-bit integer elements". In other words, the 128 bit fixed sub-vector length as described in claim 1 is independent of the variable element size). Regarding claim 9, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which for at least one sub-vector-supporting instruction, the operation performed at sub-vector granularity is an operation performed, for each sub-vector, on vector elements within that sub-vector, independent of elements in other sub-vectors (Thorson [0002] "a segmented vector reduction operation produces an output vector in which each element is a reduction of a segment of the input vector. For example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Regarding claim 13, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which, in response to a sub-vector-supporting reduction instruction, the instruction decoder is configured to control the processing circuitry to perform at least one reduction operation at sub-vector granularity, each reduction operation to reduce a plurality of vector elements of an operand vector to a single data value within a result (Thorson [0002] "a segmented vector reduction operation produces an output vector in which each element is a reduction of a segment of the input vector. For example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Regarding claim 14, Thorson in view of Linford teaches the apparatus according to claim 13, in which, for an intra-sub-vector sub-vector-supporting reduction instruction, for each reduction operation the plurality of vector elements comprise the respective vector elements within a corresponding sub-vector of the operand vector (Thorson [0002] "a segmented vector reduction operation produces an output vector in which each element is a reduction of a segment of the input vector. For example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Regarding claim 22, the claim recites a method which is similar to the apparatus of claim 1 and is therefore rejected on the same premises. Regarding claim 23, the claim is a product claim that is similar and therefore mostly rejected for the same reasons as the apparatus of claim 1. Thorson further teaches a non-transitory storage medium storing a computer program to control a host data processing apparatus to provide an instruction execution environment for execution of target code ([0097] "Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non transitory program carrier for execution by, or to control the operation of, data processing apparatus" and [0098] "the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them"). Claims 10, 12, and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Thorson et al. (US 20180285316 A1) in view of Linford et al. (Intro to SVE: Arm SVE Fundamentals) in further view of Arm Limited (Arm C Language Extensions for SVE version 00bet6). Regarding claim 10, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford does not explicitly teach in which for at least one subvector-supporting instruction, the operation performed at sub-vector granularity is an operation performed, for each element position within a sub-vector, on respective vector elements at that element position within each of the plurality of sub-vectors. Arm Limited teaches in which for at least one sub-vector-supporting instruction, the operation performed at sub-vector granularity is an operation performed, for each element position within a sub-vector, on respective vector elements at that element position within each of the plurality of sub-vectors (Pages 230-231, "7.5.7. ZIP1 Q: Interleave quadwords from low halves of two inputs These functions map to the .Q form of the ZIP1 instruction. If the vector length is a multiple of 256 bits, the functions extract 128-bit quadwords from the lowest-indexed halves of two vectors and interleave them, so that each low quadword of the first input is followed by the corresponding quadword of the second input. See the architecture documentation for a description of the behavior for other vector lengths. Although there is one instance of this operation for every vector type, the results are bitwise identical"; in other words, these permutes work by taking elements from corresponding positions in each sub-vector and interleaving/rearranging them). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Arm Limited to support operations which for at least one sub-vector-supporting instruction, the operation performed at sub-vector granularity is an operation performed, for each element position within a sub-vector, on respective vector elements at that element position within each of the plurality of sub-vectors. Doing so would have improved the flexibility of the reduction and permutation circuitry to handle not only operations within each sub-vector but also operations across subvectors. This would have enhanced compatibility with the scalable vector ISA by enabling a broader set of sub-vector instructions. Regarding claim 12, Thorson in view of Linford teaches the apparatus according to claim 1. Although Thorson teaches providing "the reduction of the input vector to a permute circuit configured to compute vector or matrix permutations" [0012], Thorson in view of Linford is not used for the permute instruction where in response to a subvector-supporting permute instruction, the instruction decoder is configured to control the processing circuitry to set, for each sub-vector of a vector result, the sub-vector to a permutation of one or more vector elements selected from among vector elements within a correspondingly-positioned sub-vector of at least one vector operand. Arm Limited teaches in response to a sub-vector-supporting permute instruction, the instruction decoder is configured to control the processing circuitry to set, for each sub-vector of a vector result, the sub-vector to a permutation of one or more vector elements selected from among vector elements within a correspondingly-positioned sub-vector of at least one vector operand (Pages 230-231, "7.5.7. ZIP1 Q: Interleave quadwords from low halves of two inputs These functions map to the .Q form of the ZIP1 instruction. If the vector length is a multiple of 256 bits, the functions extract 128-bit quadwords from the lowest-indexed halves of two vectors and interleave them, so that each low quadword of the first input is followed by the corresponding quadword of the second input. See the architecture documentation for a description of the behavior for other vector lengths. Although there is one instance of this operation for every vector type, the results are bitwise identical"; in other words, these permutes work by taking elements from corresponding positions in each sub-vector and interleaving/rearranging them). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Arm Limited to support operations such as a sub-vector-supporting permute instruction, where the instruction decoder is configured to control the processing circuitry to set, for each sub-vector of a vector result, the sub-vector to a permutation of one or more vector elements selected from among vector elements within a correspondingly-positioned sub-vector of at least one vector operand. Doing so would enable the reduction/permute pipeline to place reduction results into desired element positions within correspondingly-positioned sub-vectors, thereby increasing flexibility and compatibility with scalable vector ISAs. Regarding claim 16, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford does not explicitly teach in which in response to a subvector-supporting load/store instruction, the instruction decoder is configured to control the processing circuitry to perform a load/store operation to transfer, at sub-vector granularity, one or more sub-vectors between a memory system and at least one vector register. Arm Limited teaches in which in response to a sub-vector-supporting load/store instruction, the instruction decoder is configured to control the processing circuitry to perform a load/store operation to transfer, at sub-vector granularity, one or more sub-vectors between a memory system and at least one vector register (Page 49, "6.2.8. LD1 RQ: Unextended load and replicate to quadword These functions load 128 bits of data under predicate control, setting inactive elements in the 128 bits to zero. The functions then duplicate the data to every 128-bit quadword of the vector result"). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Arm Limited to support an instruction which performs a load/store operation to transfer, at sub-vector granularity, one or more sub-vectors between a memory system and at least one vector register. Doing so would have enabled the apparatus to further support scalable memory operations that operate at sub-vector granularity defined by the scalable vector ISA thereby improving compatibility with SVE-style instructions. Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Thorson et al. (US 20180285316 A1) in view of Linford et al. (Intro to SVE: Arm SVE Fundamentals) in further view of Stephens et al. (US 20180210733 A1). Regarding claim 11, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford further teaches in which for at least one sub-vectorsupporting instruction, the operation performed at sub-vector granularity is an operation (Thorson [0002] "a segmented vector reduction operation produces an output vector in which each element is a reduction of a segment of the input vector. For example, a segmented summation vector reduction operation may produce an output vector in which each element is a sum of a segment of elements of the input vector"). Thorson in view of Linford does not explicitly teach an operation to set, or perform an operation depending on, selected predicate bits of a predicate value, where the selected predicate bits are predicate bits corresponding to sub-vector-sized portions of a vector. Stephens teaches an operation to set, or perform an operation depending on, selected predicate bits of a predicate value, where the selected predicate bits are predicate bits corresponding to sub-vector-sized portions of a vector ([0025] "Whilst in one embodiment there may be a 1 :1 relationship between the number of items of predicate conditions within the predicate data and the number of data elements in an associated vector controlled by that predicate data, this is not essential, and in alternative embodiments a single item of predicate data may provide a condition which is applied to multiple data elements"; in other words, a single predicate item may control multiple data elements which corresponds to applying a predicate bit at the granularity of a sub-vector, since each sub-vector comprises multiple data elements). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Stephen to include an operation to set, or perform an operation depending on, selected predicate bits of a predicate value, where the selected predicate bits are predicate bits corresponding to sub-vector-sized portions of a vector. Doing so would have enabled the apparatus to support predicate operations at sub-vector granularity consistent with the scalable vector ISA, thereby providing better control over which sub-vectors participate in a given operation. Claims 15 and 17-21 is/are rejected under 35 U.S.C. 103 as being unpatentable over Thorson et al. (US 20180285316 A1) in view of Linford et al. (Intro to SVE: Arm SVE Fundamentals) in further view of Steuben et al. (TOWARDS REAL-TIME COMPOSITE MATERIAL CHARACTERIZATION USING SURROGATE MODELS AND GPGPU COMPUTING). Regarding claim 15, Thorson in view of Linford teaches the apparatus according to claim 13. Thorson in view of Linford does not explicitly teach in which, for an inter-subvector sub-vector-supporting reduction instruction, for each reduction operation the plurality of vector elements comprise the vector elements at corresponding element positions within a plurality of sub-vectors of the operand vector. Steuben teaches in which, for an inter-sub-vector sub-vector-supporting reduction instruction, for each reduction operation the plurality of vector elements comprise the vector elements at corresponding element positions within a plurality of sub-vectors of the operand vector (Page 9, figure 8 shows an "illustration of the optimized parallel reduce algorithm" with an input data vector having data values, where an initial stride of 8 is used to reduce corresponding element positions. In other words, the strided reduction on the input vector is interpreted as a reduction across sub-vectors and the reduction step 1 is interpreted as the result of the reduction operation). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Steuben to include for an inter-sub-vector sub-vector-supporting reduction instruction, for each reduction operation the plurality of vector elements comprise the vector elements at corresponding element positions within a plurality of sub-vectors of the operand vector. Doing so would have allowed the apparatus to support inter-sub-vector reductions, thereby broadening the reduction capabilities beyond intra-sub-vector operations. Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Thorson et al. (US 20180285316 A1) in view of Linford et al. (Intro to SVE: Arm SVE Fundamentals) in further view of Arm Limited (Arm C Language Extensions for SVE version 00bet6) in further view of Stephens et al. (US 20180210733 A1). Regarding claim 17, Thorson in view of Linford in view of Arm Limited teaches the apparatus according to claim 16. Although Arm Limited teaches predicate control, the LD1 RQ describes predication in terms of elements and therefore does not explicitly teach in which the sub-vector-supporting load/store instruction is a predicated instruction associated with a predicate value; and in response to the sub-vector-supporting load/store instruction, the instruction decoder is configured to control the processing circuitry to control, based on predicate bits selected from the predicate value at sub-vector granularity, whether each transfer of the one or more sub-vectors is performed or masked. Stephens teaches in which the sub-vector-supporting load/store instruction is a predicated instruction associated with a predicate value; and in response to the sub-vector-supporting load/store instruction, the instruction decoder is configured to control the processing circuitry to control, based on predicate bits selected from the predicate value at sub-vector granularity, whether each transfer of the one or more sub-vectors is performed or masked ([0025] "Whilst in one embodiment there may be a 1 :1 relationship between the number of items of predicate conditions within the predicate data and the number of data elements in an associated vector controlled by that predicate data, this is not essential, and in alternative embodiments a single item of predicate data may provide a condition which is applied to multiple data elements"; in other words, a single predicate item may control multiple data elements which corresponds to applying a predicate bit at the granularity of a subvector, since each sub-vector comprises multiple data elements). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Stephens to include whether each transfer of the one or more sub-vectors is performed or masked based on predicate bits selected from the predicate value at sub-vector granularity. Doing so would have enabled the apparatus to support predicate memory transfers at sub-vector granularity consistent with the scalable vector ISA, thereby providing better control over which sub-vectors participate in a given transfer. Regarding claim 18, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford does not explicitly teach in which in response to a subvector-supporting increment/decrement instruction, the instruction decoder is configured to control the processing circuitry to increment or decrement an operand value based on how many sub-vector-sized portions of a vector are indicated as active by bits of a predicate value selected from the predicate value at sub-vector granularity Arm Limited teaches in which in response to a sub-vector-supporting increment/decrement instruction, the instruction decoder is configured to control the processing circuitry to increment or decrement an operand value based on how many element-sized portions of a vector are indicated as active by bits of a predicate value selected from the predicate value at element granularity (Page 215 "6.28.5. QINCP: Saturating increment by a multiple of svcntp These functions pass the second input to svcntp and add the result to the first input. The addition is saturating, so if the sum is outside the range of the return type, the result is the nearest in-range value." where svcntp refers to Page 210 "6.27.1. CNTP: Count active elements These functions count the number of active elements in a predicate input. A numerical suffix indicates the size of data that the predicate controls"; in other words, inputs are interpreted as operand values of the instruction). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford by incorporating the teachings of Stephen to include in response to a sub-vector-supporting increment/decrement instruction, the instruction decoder is configured to control the processing circuitry to increment or decrement an operand value based on how many element-sized portions of a vector are indicated as active by bits of a predicate value selected from the predicate value at element granularity. Doing so would have enabled the apparatus to support increment and decrement operations controlled by predication, thereby extending the segmented vector operations. This would have improved efficiency of implementing predicated loops and control flow by allowing operand values to be adjusted automatically based on the number of active predicate bits. However, Arm Limited teaches that the svcntp function counts active elements instead of active sub-vector-sized portions. Stephens teaches sub-vector-sized portions of a vector are indicated as active by bits of a predicate value selected from the predicate value at sub-vector granularity ([0025] "Whilst in one embodiment there may be a 1 :1 relationship between the number of items of predicate conditions within the predicate data and the number of data elements in an associated vector controlled by that predicate data, this is not essential, and in alternative embodiments a single item of predicate data may provide a condition which is applied to multiple data elements"; in other words, a single predicate item may control multiple data elements which corresponds to applying a predicate bit at the granularity of a sub-vector, since each sub-vector comprises multiple data elements). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford in further view of Arm Limited to incorporate the teachings of Stephens include that sub-vectorsized portions of a vector are indicated as active by bits of a predicate value selected from the predicate value at sub-vector granularity. Doing so would have further enabled the apparatus to perform predicated increment and decrement operations at sub-vector granularity, improving compatibility with scalable vector ISAs by allowing predicate bits to represent activity at the level of equal sized sub-vectors. Regarding claim 19, Thorson in view of Linford in further view of Arm Limited in further view of Stephens teaches the apparatus according to claim 18. Thorson in view of Linford in further view of Arm Limited in further view of Stephens further teaches in which the predicate value is one of: a predicate value specified as a predicate operand by the sub-vector-supporting increment/decrement instruction; and a predicate value implied by a predicate pattern identifier specified by the subvector-supporting increment/decrement instruction, the predicate pattern identifier specifying a predetermined pattern of predicate bits at sub-vector granularity (Arm Limited page 215, 6.28.5.1 and 6.28.5.2 use svbool_t pg as an operand of the svqincp instruction which is the predicate input). Regarding claim 20, Thorson in view of Linford teaches the apparatus according to claim 1. Thorson in view of Linford does not explicitly teach in response to a sub-vector-supporting predicate setting instruction, the instruction decoder is configured to control the processing circuitry to perform a predicate setting operation to set bits of a predicate value at sub-vector-granularity, to indicate which sub-vectors of a vector are active. Arm Limited teaches in which in response to a sub-vector-supporting predicate setting instruction, the instruction decoder is configured to control the processing circuitry to perform a predicate setting operation to set bits of a predicate value at element-granularity, to indicate which elements of a vector are active (Page 204 "6.23.1. PTRUE: Return an all-true predicate for a given pattern ... These functions return an all-true predicate for a particular vector pattern and element size. When an element has more than one predicate bit associated with it, only the lowest of those bits is ever true. There are two forms: one with a _pat suffix that takes an explicit vector pattern and one without a _pat suffix in which the pattern is implicitly SV_ALL"). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford to incorporate the teachings of Arm Limited to include in response to a sub-vector-supporting predicate setting instruction, the instruction decoder is configured to control the processing circuitry to perform a predicate setting operation to set bits of a predicate value at element-granularity, to indicate which elements of a vector are active. Doing so would have enabled the apparatus to support predicate setting instructions thereby extending segmented operations and improving flexibility in controlling which elements participate in vector operations through architecturally defined predicate instructions. However, Arm Limited does not explicitly teach setting bits of a predicate value at sub-vector-granularity, to indicate which sub-vectors of a vector are active for the PTRUE function. Stephens teaches setting bits of a predicate value at sub-vector-granularity, to indicate which sub-vectors of a vector are active ([0025] "Whilst in one embodiment there may be a 1 :1 relationship between the number of items of predicate conditions within the predicate data and the number of data elements in an associated vector controlled by that predicate data, this is not essential, and in alternative embodiments a single item of predicate data may provide a condition which is applied to multiple data elements"; in other words, a single predicate item may control multiple data elements which corresponds to applying a predicate bit at the granularity of a subvector, since each sub-vector comprises multiple data elements). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Thorson in view of Linford in further view of Arm Limited to incorporate the teachings of Stephens to include setting bits of a predicate value at sub-vector-granularity, to indicate which sub-vectors of a vector are active. Doing so would have enabled the apparatus to support predicate setting operations at sub-vector granularity consistent with the scalable vector ISA, thereby providing better control over which sub-vectors participate in a given operation. Regarding claim 21, Thorson in view of Linford in further view of Arm Limited in further view of Stephens teaches the apparatus according to claim 20. Thorson in view of Linford in further view of Arm Limited in further view of Stephens further teaches in which the predicate setting operation comprises setting the predicate value based on one of: a predicate pattern identifier specifying a predetermined pattern of predicate bits to be applied at sub-vector granularity; and sub-vector-granularity comparison operations based on a comparison of a first operand and a second operand (Page 204 "6.23.1. PTRUE: Return an all-true predicate for a given pattern ... These functions return an all-true predicate for a particular vector pattern and element size. When an element has more than one predicate bit associated with it, only the lowest of those bits is ever true. There are two forms: one with a _pat suffix that takes an explicit vector pattern and one without a _pat suffix in which the pattern is implicitly SV_ALL"; in other words, an explicit vector pattern is used to set the predicate value). Response to Arguments Applicant's arguments filed 12/8/2025 have been fully considered but they are not persuasive. Applicant argues, on pages 10 – 11 that The proposed combination of Thorson and Linford does not disclose or suggest: "each sub-vector has a sub-vector length, defining the sub-vector granularity at which the operation is performed, where the sub-vector length is of an architecturally-defined fixed size which is independent of a vector length used for the given vector." This claim language specifies that the operation is performed at sub-vector granularity defined by a sub-vector length of an architecturally-defined fixed size, which is independent of the vector length of the vector. The rejection of claim 5 on page 12 of the OA states that Linford teaches that an SVE vector can be any multiple of 128 bits and asserts that 128 bits corresponds to an architecturally-defined fixed size. However, this does not teach the quoted claim feature because the 128-bit size in Linford does not define the sub-vector granularity at which the operation is performed. Thus, the OA's assertion a 128-bit size is not relevant to the claim feature which relates to the granularity at which the operation is performed. The examiner disagrees. As above, Linford teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is an architecturally-defined fixed size because it corresponds to NEON architecture. This size is fixed and is independent of the scalable Z vector length. Slide 4 shows the granularity of execution based on the 128-bit sub-vectors. Applicant argues, on page 11 that Linford describes Arm's SVE architecture where the granularity at which the operation is performed is that of the full vector length, which is not architecturally-defined to be a fixed size, but by definition is implementation-dependent (see slide 5 of Linford). The 128-bit size mentioned in Linford plays no role in defining the granularity with which operations are performed on the vector. The 128-bit size simply defines the range of options available to an implementation provider for choosing the full vector length but does not constrain the granularity at which operations are performed on the vector. In Linford, the granularity of the operation is dependent on the full vector length. In contrast, the claimed operation is performed at a sub-vector granularity which is independent of the vector length used for the given vector and is also specified as an architecturally-defined fixed size. The examiner disagrees. As above, Linford teaches that an SVE vector can be "any multiple of 128 bits up to 2048 bits" and slide 7 teaches "Z0-Z31 extending NEON's 128-bit V0-V31". In other words, 128-bit vectors in the Z vectors are interpreted as equal length sub-vectors, which is an architecturally-defined fixed size because it corresponds to NEON architecture. This size is fixed and is independent of the scalable Z vector length. Slide 4 shows the granularity of execution based on the 128-bit sub-vectors. As seen in slide 4, the 128 bit sub-vectors do not change and slide 3 shows that the SVE is vector length agnostic. Conclusion THIS ACTION IS MADE FINAL. 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. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. ‘THE ARM SCALABLE VECTOR EXTENSION’ by Nigel Stephens et al., copyright 2017, IEEE teaches the vector length is an implementation choice and states “SVE provides the capabilities for software to be vector-length agnostic through the use of vector partitioning while also supporting more conventional SIMD coding styles that require fixed-length, multiple-of-N, or power-of-two subvectors.” Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to STEVEN G SNYDER whose telephone number is (571)270-1971. The examiner can normally be reached on M-F 8:00am-4:30pm (flexible). 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, Henry Tsai can be reached on 571-272-4176. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /STEVEN G SNYDER/Primary Examiner, Art Unit 2184
Read full office action

Prosecution Timeline

Sep 05, 2024
Application Filed
Sep 08, 2025
Non-Final Rejection mailed — §103, §112
Dec 08, 2025
Response Filed
Jul 28, 2026
Final Rejection mailed — §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12688043
MATRIX MULTIPLICATION IN A DYNAMICALLY SPATIALLY AND DYNAMICALLY TEMPORALLY DIVIDABLE ARCHITECTURE
3y 4m to grant Granted Jul 21, 2026
Patent 12675430
BATTERY MANAGEMENT APPARATUS AND OPERATING METHOD THEREOF
1y 11m to grant Granted Jul 07, 2026
Patent 12657056
SCHEDULING TASKS USING WORK FULLNESS COUNTER
2y 5m to grant Granted Jun 16, 2026
Patent 12651037
APPLICATION PROGRAMMING INTERFACE TO ACCELERATE MATRIX OPERATIONS
4y 9m to grant Granted Jun 09, 2026
Patent 12639073
RETURN ADDRESS RESTORATION
2y 3m to grant Granted May 26, 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
81%
Grant Probability
72%
With Interview (-8.3%)
2y 8m (~8m remaining)
Median Time to Grant
Moderate
PTA Risk
Based on 872 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