Prosecution Insights
Last updated: August 18, 2026
Application No. 17/366,770

SYNCHRONIZATION BARRIER

Final Rejection §103
Filed
Jul 02, 2021
Priority
Jun 29, 2021 — provisional 63/216,430
Examiner
CHU JOY, JORGE A
Art Unit
2195
Tech Center
2100 — Computer Architecture & Software
Assignee
NVIDIA Corporation
OA Round
6 (Final)
77%
Grant Probability
Favorable
7-8
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 77% — above average
77%
Career Allowance Rate
324 granted / 420 resolved
+22.1% vs TC avg
Strong +36% interview lift
Without
With
+35.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 12m
Avg Prosecution
30 currently pending
Career history
456
Total Applications
across all art units

Statute-Specific Performance

§101
9.7%
-30.3% vs TC avg
§103
56.5%
+16.5% vs TC avg
§102
2.9%
-37.1% vs TC avg
§112
21.0%
-19.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 420 resolved cases

Office Action

§103
DETAILED ACTION Claims 1-32 are pending. 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 . 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, 6-12, 14-20, 22-28 and 30-32 are rejected under 35 U.S.C. 103 as being unpatentable over Fahs et al. (US 2011/0078417 A1). Fahs was cited in the previous Office Action. Regarding claim 1, Fahs teaches the invention as claimed including one or more processors ([0022] the parallel processing subsystem 112 incorporates circuitry… In yet another embodiment, the parallel processing subsystem 112 may be integrated with one or more other system elements, such as the memory bridge 105, CPU 102, and I/O bridge 107 to form a system on chip (SoC).), comprising: circuitry to: use each bit of one or more barrier data structures to indicate that a corresponding thread group of a plurality of thread groups of a processor pipeline has arrived at a synchronization barrier corresponding to the one or more barrier data structures ([0050] A sequence of per-thread instructions may include at least one instruction that defines a cooperative behavior between the representative thread and one or more other threads of the thread array. For example, the sequence of per-thread instructions might include an instruction to suspend execution of operations for the representative thread at a particular point in the sequence until such time as one or more of the other threads reach that particular point, [0069] The wait/go registers 508 keep track of which thread groups have reached the barrier point set by a barrier synchronization instruction or barrier aggregation instruction and are waiting for one or more other thread groups to synchronize at that barrier point; wherein the registers 508 correspond to the claimed barrier data structures); determine, based on values of bits corresponding to the plurality of thread groups in the one or more barrier data structures, that a thread group of the plurality of thread groups is last to arrive at the synchronization barrier ([0058] In one embodiment, execution of barrier arrival and barrier synchronization instructions, i.e., arrival of thread groups at barrier points is detected by the warp scheduler and instruction unit 312 of FIG. 4, which can suspend the issue of instructions to any execution unit 302 allocated to execute a thread group that is waiting at a barrier point while continuing to issue instructions to other execution units 302 that are allocated to execute other thread groups that are not at a barrier synchronization point. (i.e., have not arrived/last to arrive); [0069] The wait/go registers 508 keep track of which thread groups have reached the barrier point set by a barrier synchronization instruction or barrier aggregation instruction and are waiting for one or more other thread groups to synchronize at that barrier point. (i.e., last to arrive). Each bit is set to a "wait" state (e.g., logic high) when the corresponding thread group is waiting at the barrier point to synchronize with one or more other thread groups and to a "go" state (e.g., logic low) when the corresponding thread group is not waiting at (has not yet reached) the barrier point.); and in response to determining that the thread group is last to arrive, cause each of the plurality of thread groups to be released from the synchronization barrier ([0069] In response to a barrier arrival instruction for a thread group, barrier instruction execution unit 500 (or 550) increments the counter 504 (or 534) but does not set the bit corresponding to the thread group in the wait/go registers 508 (or 538) to the wait state, thus, the thread group can continue to execute.; once that the missing group(s) arrive, execution may continue since it/they are the last to arrive; [0058] Eventually, all participating thread groups reach the barrier synchronization point, and execution of the waiting thread group(s) resumes.). Fahs does not explicitly recite a pipeline, but in at least [0050] discusses a sequence of instructions that are arranged in a sequence requiring subsequent instructions to wait for other instructions which reasonably constitutes a pipeline. Therefore, it would have been obvious to one of ordinary skill in the art to read Fahs’ sequence of instructions as a pipeline. Regarding claim 2, Fahs teaches wherein the one or more barrier data structures stores synchronization information for the plurality of thread groups in a single addressable memory location ([0069] The wait/go registers 508 keep track of which thread groups have reached the barrier point set by a barrier synchronization instruction or barrier aggregation instruction and are waiting for one or more other thread groups to synchronize at that barrier point. In one embodiment, the wait/go registers 508 are implemented using a single bit corresponding to each thread group. Each bit is set to a "wait" state (e.g., logic high) when the corresponding thread group is waiting at the barrier point to synchronize with one or more other thread groups and to a "go" state (e.g., logic low) when the corresponding thread group is not waiting at (has not yet reached) the barrier point.). Regarding claim 3, Fahs teaches wherein the synchronization information is stored as a bit field with distinct bits, each bit indicating synchronization of an individual group of threads ([0069] Each bit is set to a "wait" state (e.g., logic high) when the corresponding thread group is waiting at the barrier point to synchronize with one or more other thread groups and to a "go" state (e.g., logic low) when the corresponding thread group is not waiting at (has not yet reached) the barrier point.). Regarding claim 4, Fahs teaches wherein individual bits of the bit field represent a subgroup of threads capable of being executed in parallel on a symmetric multiprocessor ([0039] The series of instructions transmitted to a particular GPC 208 constitutes a thread, as previously defined herein, and the collection of a certain number of concurrently executing threads across the parallel processing engines (not shown) within an SPM 310 is referred to herein as a "warp" or "thread group." As used herein, a "thread group" refers to a group of threads concurrently executing the same program on different input data, with one thread of the group being assigned to a different processing engine within an SPM 310. A thread group may include fewer threads than the number of processing engines within the SPM 310, in which case some processing engines will be idle during cycles when that thread group is being processed. A thread group may also include more threads than the number of processing engines within the SPM 310, in which case processing will take place over consecutive clock cycles. Since each SPM 310 can support up to G thread groups concurrently, it follows that up to G*M thread groups can be executing in GPC 208 at any given time.; [0065] a subset of a CTA; [0069]). Regarding claim 6, Fahs teaches wherein the one or more barrier data structures indicate a state of one or more of the plurality of thread groups (Col. 11, line 61 through Col. 12, line 8: Thread state unit 525 is configured to maintain an active mask and an active program counter for each of the thread groups processed by multithreaded processing unit 500…Thus, when all bits in the active mask are set, multithreaded processing unit 500 is operating in fully synchronized mode for execution of the thread group associated with the active mask.). Regarding claim 7, Fahs teaches wherein each of the plurality of thread groups is a cooperative thread group ([0040] Additionally, a plurality of related thread groups may be active (in different phases of execution) at the same time within an SPM 310. This collection of thread groups is referred to herein as a "cooperative thread array" ("CTA") or "thread array."). Regarding claim 8, Fahs teaches wherein the cooperative thread group spans a plurality of warps ([0040] Additionally, a plurality of related thread groups may be active (in different phases of execution) at the same time within an SPM 310. This collection of thread groups is referred to herein as a "cooperative thread array" ("CTA") or "thread array."). Regarding claim 9, it is a method type claim having similar limitations as claim 1 above. Therefore, it is rejected under the same rationale above. Regarding claim 10, it is a method type claim having similar limitations as claim 2 above. Therefore, it is rejected under the same rationale above. Regarding claim 11, it is a method type claim having similar limitations as claim 3 above. Therefore, it is rejected under the same rationale above. Regarding claim 12, it is a method type claim having similar limitations as claim 4 above. Therefore, it is rejected under the same rationale above. Regarding claim 14, it is a method type claim having similar limitations as claim 6 above. Therefore, it is rejected under the same rationale above. Regarding claim 15, it is a method type claim having similar limitations as claim 7 above. Therefore, it is rejected under the same rationale above. Regarding claim 16, it is a method type claim having similar limitations as claim 8 above. Therefore, it is rejected under the same rationale above. Regarding claim 17, it is a system type claim having similar limitations as claim 1 above. Therefore, it is rejected under the same rationale above. Further the additional limitations of a computer system comprising one or more processors and memory storing executable instructions that, as a result of being executed by the one or more processors, cause the computer system to perform are taught by Fahs in at least Claim 12 “A computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform an aggregation operation across multiple threads, by performing the steps of”. Regarding claim 18, it is a system type claim having similar limitations as claim 2 above. Therefore, it is rejected under the same rationale above. Regarding claim 19, it is a system type claim having similar limitations as claim 3 above. Therefore, it is rejected under the same rationale above. Regarding claim 20, it is a system type claim having similar limitations as claim 4 above. Therefore, it is rejected under the same rationale above. Regarding claim 22, it is a system type claim having similar limitations as claim 6 above. Therefore, it is rejected under the same rationale above. Regarding claim 23, it is a system type claim having similar limitations as claim 7 above. Therefore, it is rejected under the same rationale above. Regarding claim 24, it is a system type claim having similar limitations as claim 8 above. Therefore, it is rejected under the same rationale above. Regarding claim 25, it is a media/product type claim having similar limitations as claim 1 above. Therefore, it is rejected under the same rationale above. Further the additional limitations of A machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors, cause the one or more processors to perform are taught by Fahs in at least Claim 12 “A computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform an aggregation operation across multiple threads, by performing the steps of”. Regarding claim 26, it is a media/product type claim having similar limitations as claim 2 above. Therefore, it is rejected under the same rationale above. Regarding claim 27, it is a media/product type claim having similar limitations as claim 3 above. Therefore, it is rejected under the same rationale above. Regarding claim 28, it is a media/product type claim having similar limitations as claim 4 above. Therefore, it is rejected under the same rationale above. Regarding claim 30, it is a media/product type claim having similar limitations as claim 6 above. Therefore, it is rejected under the same rationale above. Regarding claim 31, it is a media/product type claim having similar limitations as claim 7 above. Therefore, it is rejected under the same rationale above. Regarding claim 32, it is a media/product type claim having similar limitations as claim 8 above. Therefore, it is rejected under the same rationale above. Claims 5, 13, 21, and 29 are rejected under 35 U.S.C. 103 as being unpatentable over Fahs, as applied to claim 2 above, in further view of Russell (US 7,519,967 B1). Regarding claim 5, Fahs does not expressly teach wherein the synchronization information is manipulated using an atomic logical operation. However, Russell teaches wherein the synchronization information is manipulated using an atomic logical operation (Col. 1, lines 60-67: if the synchronization information indicates that the lock is biasable and the lock is presently unbiased, the system uses an atomic operation to attempt to update the synchronization information to indicate that the lock is biased toward the current thread. If this atomic operation succeeds and the lock is biased toward the current thread, the system allows the current thread to acquire the lock.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Russell with the teachings of Fahs to utilize atomic operations to update the synchronization information. The modification would have been motivated by the desire of indicating that the lock is biased toward the current thread. Regarding claim 13, it is a method type claim having similar limitations as claim 5 above. Therefore, it is rejected under the same rationale above. Regarding claim 21, it is a system type claim having similar limitations as claim 5 above. Therefore, it is rejected under the same rationale above. Regarding claim 29, it is a media/product type claim having similar limitations as claim 5 above. Therefore, it is rejected under the same rationale above. Response to Arguments Applicant's arguments filed on 06/30/2026 have been fully considered but they are not persuasive. In Remarks Applicant argues: (I) The combination of Fahs and Glanville fails to teach or suggest "determine, based on values of bits corresponding to the plurality of thread groups in the barrier data structure, that a thread group of the plurality of thread groups is last to arrive at the synchronization barrier; and in response to determining that the thread group is last to arrive, cause each of the plurality of thread groups to be released from the synchronization barrier." That is, Fahs teaches a register in which each bit indicates whether a corresponding thread group is waiting at a barrier. The register is used to assign instructions to thread groups that are not currently active. Further, as indicated in the Office Action, Fahs does not describe a barrier data structure. It also doesn't disclose "determine, based on values of bits corresponding to the plurality of thread groups in the barrier data structure, that a thread group of the plurality of thread groups is last to arrive at the synchronization barrier; and in response to determining that the thread group is last to arrive, cause each of the plurality of thread groups to be released from the synchronization barrier." In view of the above, examiner submits the following: As to point (I) Examiner respectfully disagrees with the Applicant for at least the following reasons. Upon further review of the amended claims and review of the prior art, examiner finds Fahs to teach the invention as claimed. Fahs teaches: [0057] In some embodiments of the present invention, a barrier synchronization technique is advantageously used to support fast synchronization of any number of CTA thread groups. More specifically, barrier synchronization instructions are inserted into the CTA program at points (referred to herein as "barrier synchronization points") where thread synchronization is desired. A thread executes a barrier synchronization instruction to indicate that the thread group has arrived at a barrier point and waits at that point until all other participating thread groups have also arrived at that point, thus synchronizing the participating thread groups before resuming execution of a program. [0058] In one embodiment, execution of barrier arrival and barrier synchronization instructions, i.e., arrival of thread groups at barrier points is detected by the warp scheduler and instruction unit 312 of FIG. 4, which can suspend the issue of instructions to any execution unit 302 allocated to execute a thread group that is waiting at a barrier point while continuing to issue instructions to other execution units 302 that are allocated to execute other thread groups that are not at a barrier synchronization point. Eventually, all participating thread groups reach the barrier synchronization point, and execution of the waiting thread group(s) resumes. [0069] The wait/go registers 508 keep track of which thread groups have reached the barrier point set by a barrier synchronization instruction or barrier aggregation instruction and are waiting for one or more other thread groups to synchronize at that barrier point. In one embodiment, the wait/go registers 508 are implemented using a single bit corresponding to each thread group. Each bit is set to a "wait" state (e.g., logic high) when the corresponding thread group is waiting at the barrier point to synchronize with one or more other thread groups and to a "go" state (e.g., logic low) when the corresponding thread group is not waiting at (has not yet reached) the barrier point. In response to a barrier arrival instruction for a thread group, barrier instruction execution unit 500 (or 550) increments the counter 504 (or 534) but does not set the bit corresponding to the thread group in the wait/go registers 508 (or 538) to the wait state; thus, the thread group can continue to execute. As highlighted above, Fahs explicitly teach "determine, based on values of bits corresponding to the plurality of thread groups in the barrier data structure, that a thread group of the plurality of thread groups is last to arrive at the synchronization barrier” In [0069], Fahs discuss the usage of bits highs and lows to identify whether a thread group is waiting, due to it arriving at the barrier and low when it is still executing i.e., last group(s) to arrive. “and in response to determining that the thread group is last to arrive, cause each of the plurality of thread groups to be released from the synchronization barrier." Fahs teaches in at least [0057] and [0058] that once all thread groups reach the barrier execution of the program is resumed. Accordingly, Applicant’s arguments are not persuasive. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to JORGE A CHU JOY-DAVILA whose telephone number is (571)270-0692. The examiner can normally be reached Monday-Friday, 6:00am-5:00pm. 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, Aimee J Li can be reached at (571)272-4169. 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. /JORGE A CHU JOY-DAVILA/Primary Examiner, Art Unit 2195
Read full office action

Prosecution Timeline

Show 24 earlier events
Mar 25, 2026
Response after Non-Final Action
Mar 30, 2026
Non-Final Rejection mailed — §103
Jun 02, 2026
Interview Requested
Jun 10, 2026
Applicant Interview (Telephonic)
Jun 10, 2026
Examiner Interview Summary
Jun 30, 2026
Response Filed
Jul 15, 2026
Final Rejection mailed — §103
Aug 12, 2026
Interview Requested

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12701061
ITERATIVE BUILDING OF INCOMPLETE COMMAND STRUCTURES IN A FIXED-SIZE COMMUNICATION REGIME
2y 8m to grant Granted Aug 04, 2026
Patent 12693890
SYSTEM AND METHOD FOR DIGITAL AUTOMATION GOVERNANCE
4y 11m to grant Granted Jul 28, 2026
Patent 12693894
Scheduling a request using an inference large scale model and rescheduling on a different inference large scale model in response to not meeting a condition
1y 0m to grant Granted Jul 28, 2026
Patent 12681768
RESOURCE OPTIMIZED LOAD BALANCING OF MICROSERVICE REQUESTS
3y 10m to grant Granted Jul 14, 2026
Patent 12675335
A METHOD AND A SYSTEM FOR PREDICTING A COMBINATION OF OPTIMAL AND STABLE INSTANCES
3y 2m to grant Granted Jul 07, 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

7-8
Expected OA Rounds
77%
Grant Probability
99%
With Interview (+35.7%)
2y 12m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 420 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