Prosecution Insights
Last updated: August 17, 2026
Application No. 17/548,440

APPLICATION PROGRAMMING INTERFACES FOR INTEROPERABILITY

Non-Final OA §103
Filed
Dec 10, 2021
Examiner
SEYE, ABDOU K
Art Unit
2198
Tech Center
2100 — Computer Architecture & Software
Assignee
NVIDIA Corporation
OA Round
5 (Non-Final)
83%
Grant Probability
Favorable
5-6
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 83% — above average
83%
Career Allowance Rate
490 granted / 593 resolved
+27.6% vs TC avg
Strong +27% interview lift
Without
With
+27.1%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
18 currently pending
Career history
623
Total Applications
across all art units

Statute-Specific Performance

§101
20.5%
-19.5% vs TC avg
§103
57.4%
+17.4% vs TC avg
§102
2.8%
-37.2% vs TC avg
§112
13.2%
-26.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 593 resolved cases

Office Action

§103
DETAILED ACTION Statement of claims The present amended application includes: Claims 1, 6, 8, 15-23 were amended. Claims 1-26 remain pending in the application. Claims 1-26 are being considered on the merits. 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 January 22, 2026 has been entered. 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 . Response to Arguments Rejections Under 35 U.S.C. § 103 Applicant argues that: “Applicant respectfully submits that the combination of Aswathnarayan, Nicol, and Laplante fails to teach or suggest claim 1 as amended herein. Claim 1 has been amended to recite "in response to an application programming interface (API) call, cause a wait operation of a queue to wait until a first count value of a timeline semaphore generated by another API meets a threshold value to cause one or more subsequent operations of the queue to be performed, an indication of the timeline semaphore having been received from the other API." The combination of references fails to teach or suggest at least these features of claim 1." . Applicant’s arguments have been considered but are moot in view of new ground rejection based on Ashwathnarayan et al. (US 2020/0364088) in view of Turner at al. (US 6, 505,229) 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. Claim(s) 1-26 are rejected under 35 U.S.C. 103 as being unpatentable over Ashwathnarayan et al. (US 2020/0364088, Aswathnarayan hereinafter) in view of Turner at al. (US 6, 505,229, Turner hereinafter). As to claim 1, Ashwathnarayan teaches One or more processors (e.g., see abstract, “a processor comprises one or more circuits to allocate memory to at least two heterogeneous processing cores in response to performing one or more instructions associated with one or more application programming interfaces based, at least in part, on one or more attributes associated with the at least two heterogeneous processing cores.“) comprising: circuitry to in response to an application programming interface (API) call to cause (e.g., “application programming interface model stream” represent the API) a wait operation of a queue to wait until a first count value (e.g., “waits until value ” in para 120) of a timeline semaphore computing platform and application programming interface model external semaphores and parallel computing platform and application programming interface model streams are enhanced using techniques described herein. In at least one embodiment, a parallel computing platform and application programming interface model stream can wait and signal synchronization object by treating it as a type of external semaphore. In at least one embodiment, parallel computing platform and application programming interface model stream is able to wait for tasks running on a plurality of hardware engines. ) [0120] In at least one embodiment, if a semaphore object is type _EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE, then waiting on a semaphore waits until value of semaphore is greater than or equal to _EXTERNAL_SEMAPHORE_PARAMS::params::fence::value.”.) . However, Ashawathnarayan does not explicitly teach the timeline semaphore generated by another API meets the threshold value to cause one or more subsequent operations of the queue to be performed, an indication of the timeline semaphore having been received from the other API. Turner teaches the timeline semaphore generated by another API meets the threshold value to cause one or more subsequent operations of the queue to be performed, an indication of the timeline semaphore having been received from the other API (e.g., see FIG. 3a and 3B, col. 7, line 65-67 and col. 8, lines 1-33, “threads may create other threads. The owner or parent thread can also destroy any thread that it created. “, “The owner thread can assign a maximum time-slice to its children threads equal to its own maximum time-slice, but no larger”, “An owner thread can restrict a child thread's time-slice to a value smaller than its own maximum, too.”, “thread A creates a child thread C (85), which is placed on the bottom of the Ready queue (81) by the OS (90) at time=t.sub.9. At time=t.sub.10, thread A exceeds its maximum time-slice, is placed on the bottom of the Ready queue, thread B is allowed to execute on the processor, and child thread C (85) is advanced to the next pending position in the Ready queue by the operating system” Thus, the “thread” represents the API call , the “thread can assign a maximum time-slice” include “ timeline semaphore generated by another API”. Therefore , the timeline semaphore generated by another API meets the threshold value to cause one or more subsequent operations of the queue to be performed, an indication of the timeline semaphore having been received from the other API). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58) As to claim 2, Ashawathnarayan does not teach wherein the other API created the timeline semaphore, and wherein to wait further comprises reading a reference to the timeline semaphore that indicates to wait until a parameter of the timeline semaphore reaches or exceeds a threshold. However, Turner teaches wherein the other API created the timeline semaphore, and wherein to wait further comprises reading a reference to the timeline semaphore that indicates to wait until a parameter of the timeline semaphore reaches or exceeds a threshold (e.g., see FIG. 3a, col. 7, lines 3-35, The variable time-slice classification is determined upon thread creation” , “ FIG. 3a, the event on which thread C (85) is waiting is shown occurring, and thread C is moved to the bottom of the Ready queue (81). Subsequently, thread A (83) executes until its pre-defined maximum execution time expires at time=t.sub.3, and thread A (83) is moved to the bottom of the Ready queue (81). This allows thread B (84) to be executed on the processor (80), and thread C (84) advances to the next pending position in the Ready queue (81). “). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58) As to claim 3, Ashawathnarayan teaches wherein to wait refers to a stream waiting until the first count value reaches or exceeds a threshold value (e.g., para [0120] In at least one embodiment, if a semaphore object is type _EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE, then waiting on a semaphore waits until value of semaphore is greater than or equal to _EXTERNAL_SEMAPHORE_PARAMS::params::fence::value. ). As to claim 4., Ashawathnarayan does not teach wherein the other API created the timeline semaphore, wherein the other API exported a handle of the timeline semaphore, wherein the handle corresponds to a shared memory location of the timeline semaphore, wherein to wait is to include reading a parameter of the timeline semaphore based on the handle, and wherein to wait includes waiting until the timeline semaphore reaches or exceeds a threshold value. However, Turner teaches wherein the other API created the timeline semaphore, wherein the other API exported a handle of the timeline semaphore, wherein the handle corresponds to a shared memory location of the timeline semaphore. (e.g., see abstract, wherein “threads may share the processing bandwidth and system resources cooperatively and efficiently, with minimized coupling of the application threads to each other and system resource control details.”), wherein to wait is to include reading a parameter of the timeline semaphore based on the handle, and wherein to wait includes waiting until the timeline semaphore reaches or exceeds a threshold value (e.g., col. 9, lines 1-20 wherein “synchronization elements such as semaphores, and the like. Upon this request, the system's resource allocation (91) function is invoked, wherein available resources are allocated or locked to the requesting thread (96) for the duration of the life of the thread (96). The thread then executes, passing through periods of execution (93) and suspension (92), shown by the continuation of time at time=t.sub.21 on the time bar (97). Upon conclusion of the processing necessary by the thread, the thread requests termination (94), shown at time=t.sub.22 on the time bar (97), which invokes the system's automatic resource reclamation (95). The resource reclamation function (95) releases all of the system resources which had been allocated or locked to the thread, and places them back into a pool of available resources for other threads to request”). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58). As to claim 5, Ashawathnarayan teaches wherein the first count value corresponds to a monotonically increasing integer (e.g., para [0580] synchronization primitives are supported, such as semaphores and syncpoints. In at least one embodiment, UMD waiter sets w_caps to {primitive={semaphore, syncpoint}count={5, 0}} and provides such information to app waiter in any suitable manner. In at least one embodiment, an AttributeList is returned by UMD waiter to app waiter. In at least one embodiment, app waiter sends w_caps to app signaler as AttributeList. In at least one embodiment, signaler sets up a shared fence buffer that is to include fences. In at least one embodiment, app signaler calls GetDeviceCapabilities (&s_caps) to obtain a set of signaler capabilities. In at least one embodiment, UMD signaler fulfills calls to GetDeviceCapabilities( ). In at least one embodiment, UMD sets s_caps to indicate a set of supported primitives. In at least one embodiment, s_caps indicates parameters of supported primitives, for example, max count of a semaphore. In at least one embodiment, UMD signaler sets s_caps {primitive={semaphore, syncpoint}count={5, 0}} and returns s_caps as an AttributeList to app signaler., Thus, the “count={5, 0} include monotonically increasing integer ). As to claim 6, , Ashawathnarayan does not explicitly teach wherein to wait on the timeline semaphore includes at least two streams waiting on a same timeline semaphore, wherein the at least two streams are performed or to be performed by the circuitry one or more circuits. However, Turner teaches wherein to wait on the timeline semaphore includes at least two streams waiting on a same timeline semaphore, wherein the at least two streams are performed or to be performed by the circuitry one or more circuits. (see Figure 3B). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58) As to claim 7, Ashawathnarayan does not explicitly teach wherein to wait on the timeline semaphore includes a timeline semaphore reaching a maximum count value, wherein the maximum count value indicates the timeline semaphore has timed out. However, Turner teaches herein to wait on the timeline semaphore includes a timeline semaphore reaching a maximum count value, wherein the maximum count value indicates the timeline semaphore has timed out ( e.g., see col. 7, lines 30-37, “Subsequently, thread A (83) executes until its pre-defined maximum execution time expires at time=t.sub.3, and thread A (83) is moved to the bottom of the Ready queue (81). “).Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58). As to claim 8, see rejection of claim 1 above. Ashawathnarayan teaches further A system, comprising memory to store instructions that, as a result of execution by one or more processors, cause the system (e.g., para [0498] In at least one embodiment, graphics processor 3600 or a component thereof executes computer-readable instructions to allocate memory to at least two heterogeneous processing cores in response to performing one or more instructions associated with one or more application programming interfaces (APIs) based, at least in part, on one or more attributes associated with the at least two heterogeneous processing cores. In at least one embodiment, graphics processor 3600 utilizes computing resources (e.g., CPUs, ASICs, GPUs, FPGAs) to implement inferencing and/or training logic 1515 to perform inferencing and/or training operations associated with one or more embodiments. Graphics processor 3600 may be utilized to implement one or more embodiments described elsewhere in this disclosure, such as those described in connection with FIGS. 1-35 and 37-43.). As to claims 9, see rejection of claim 2 above. As to claims 10-14, see rejection of claim 3-7 above. As to claim 15, see rejection of claim 1 above. Ashawathnarayan teaches further non transitory machine-readable medium having stored thereon one or more instructions, which if performed by one or more processors, cause one or more processors to at least(e.g., para [0498] In at least one embodiment, graphics processor 3600 or a component thereof executes computer-readable instructions to allocate memory to at least two heterogeneous processing cores in response to performing one or more instructions associated with one or more application programming interfaces (APIs) based, at least in part, on one or more attributes associated with the at least two heterogeneous processing cores. In at least one embodiment, graphics processor 3600 utilizes computing resources (e.g., CPUs, ASICs, GPUs, FPGAs) to implement inferencing and/or training logic 1515 to perform inferencing and/or training operations associated with one or more embodiments. Graphics processor 3600 may be utilized to implement one or more embodiments described elsewhere in this disclosure, such as those described in connection with FIGS. 1-35 and 37-43.). As to claim 16-17, see rejection of claims 2-3 above. As to claim 18, see rejection of claim 4 above. As to claim 19-20, see rejection of claims 5-6 above. As to claim 21, Ashawathnarayan teaches wherein to wait on the timeline semaphore includes one or more streams signaling the timeline semaphore to add another wait (e.g., para [115] multiple waits on same SciSyncFence can be enqueued in different threads and process and on different hardware engines, which may be possible because SciSyncFence can be passed-by-value across software boundaries.) or increase a wait time. As to claims 22-25, see rejection of claims 1-4 above. As to claim 26, Ashawathnarayan does not teach wherein the API corresponds to a first software library, the another API corresponds to a second software library, and a portion of a workload corresponding to the second library waits for a portion of a workload corresponding to the first library based, at least in part on, the timeline semaphore. However, Turner teaches wherein the API corresponds to a first software library, the another API corresponds to a second software library, and a portion of a workload corresponding to the second library waits for a portion of a workload corresponding to the first library based, at least in part on, the timeline semaphore (e.g., Figure 3B, “timeline (86),” for “ a variety of application threads may share the processing bandwidth and system resources cooperatively and efficiently” in abstract. Thus, wherein the API corresponds to a first software library, the another API corresponds to a second software library, and a portion of a workload corresponding to the second library waits for a portion of a workload corresponding to the first library based, at least in part on, the timeline semaphore ). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Ashawathnarayan by adopting the teachings of Turner in order to provide “ flexible interprocess communications mechanisms enabling multiple processes within a single processor or among a plurality of processors to communicate with one another.” (see Turner, col. 2, lines 54-58) Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABDOU K SEYE whose telephone number is (571)270-1062. The examiner can normally be reached M-F 9-5:30. 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, Pierre Vital can be reached at 5712724215. 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. /ABDOU K SEYE/Examiner, Art Unit 2198 /TUAN C DAO/Primary Examiner, Art Unit 2198
Read full office action

Prosecution Timeline

Show 10 earlier events
Feb 24, 2025
Non-Final Rejection mailed — §103
Jun 24, 2025
Response Filed
Sep 25, 2025
Final Rejection mailed — §103
Nov 06, 2025
Applicant Interview (Telephonic)
Nov 09, 2025
Examiner Interview Summary
Jan 22, 2026
Request for Continued Examination
Jan 29, 2026
Response after Non-Final Action
Jul 27, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12693913
DATA STRUCTURE FOR A BUFFER MEMORY IN A MULTI-PRODUCER MULTI-CONSUMER SYSTEM
3y 2m to grant Granted Jul 28, 2026
Patent 12681776
LOCK AND BUFFER SCHEDULING IN MULTI-CORE ARCHITECTURES
3y 11m to grant Granted Jul 14, 2026
Patent 12645516
APPLICATION PROGRAMMING INTERFACE (API) AND SITE DISCOVERY VIA REQUEST SIMILARITY
4y 1m to grant Granted Jun 02, 2026
Patent 12645499
INTELLIGENT PREEMPTION SYSTEM
4y 1m to grant Granted Jun 02, 2026
Patent 12639140
REAL-TIME DATA PROCESSING PIPELINE AND PACING CONTROL SYSTEMS AND METHODS
2y 4m 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

5-6
Expected OA Rounds
83%
Grant Probability
99%
With Interview (+27.1%)
3y 3m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 593 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