Prosecution Insights
Last updated: August 17, 2026
Application No. 18/591,882

IN-PLACE DATA MANAGEMENT WITHIN MEMORY BUFFERS

Non-Final OA §101§102§103§112
Filed
Feb 29, 2024
Examiner
FAAL, BABOUCARR
Art Unit
2138
Tech Center
2100 — Computer Architecture & Software
Assignee
NVIDIA Corporation
OA Round
1 (Non-Final)
80%
Grant Probability
Favorable
1-2
OA Rounds
4m
Est. Remaining
95%
With Interview

Examiner Intelligence

Grants 80% — above average
80%
Career Allowance Rate
433 granted / 538 resolved
+25.5% vs TC avg
Moderate +14% lift
Without
With
+14.5%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
25 currently pending
Career history
572
Total Applications
across all art units

Statute-Specific Performance

§101
6.9%
-33.1% vs TC avg
§103
50.3%
+10.3% vs TC avg
§102
25.7%
-14.3% vs TC avg
§112
9.5%
-30.5% vs TC avg
Black line = Tech Center average estimate • Based on career data from 538 resolved cases

Office Action

§101 §102 §103 §112
DETAILED ACTION 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 § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claim 1 rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim(s) recite(s) reading a data segment from one memory location into a temporary storage (“registry”), setting an “indicator” to change a location’s status from “unread” to “read,” determining/using a destination memory location based on its status, and writing the data to the destination. . This judicial exception is not integrated into a practical application because all of the above limitations encompass steps that a person would perform when manipulating, organizing and moving data within memory and each step can be practically be performed in the mind as a mental step. This amounts to manipulating and organizing information (data movement/housekeeping) by labeling locations with statuses and copying data accordingly. Courts have characterized similar information manipulation/organization as abstract ideas. See, e.g., Electric Power Group, 830 F.3d at 1353–54 (collecting/analyzing information is abstract). Nothing in the claim precludes the steps of manipulating organizing and moving data from being performed in the human mind as mental steps grouping abstract ideas - that is, directed to a judicial exception under Prong 1 of Step 2A. Because the claim is recites a judicial exception, Prong 2 of Step 2A determines whether the recited judicial exception is integrated into a practical application. For example, a claim may integrate the exception into a practical application if an additional element reflects an improvement in the functions of a computer, or an improvement to other technology or technical field. Though the claim recites a “processor,” “one or more circuits,” a “system,” a “registry,” and an “indicator,” without specifying any particular hardware implementation or specific improvement to computer functionality. The steps (read, set, determine, write) are recited at a high level of generality and are result-oriented i.e., as a generic system performing generic computer functions of reading, setting, determining and writing. These additional elements, considered in the context of reading, setting, determining and writing as a whole, do not integrate the abstract idea into a practical application. Rather, these additional limitations merely use a computer (server, a user device) to perform generic computer activity, reading, setting, determining and writing. Such elements are not sufficient to integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Accordingly, claim 1 is not integrated into a practical application. Under Step 2B, claim 1 does not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional computer elements, which are recited at a high level of generality, provide conventional computer functions that do not add meaningful limits to practicing the abstract idea. The additional elements—“processor,” “one or more circuits,” “registry,” “indicator,” “memory location”—are generic computing components performing routine functions (reading/writing memory, setting a status/flag, and making a determination). Implementing an abstract idea on a generic computer does not supply an inventive concept as recited does not provide any requisite of what the system comprises and how its components achieve the reading, setting, determining and writing. The claims as drafted do not recite unconventional hardware, a specific atomic operation, a defined per-chunk flag array, or a non-conventional data structure/algorithm that would transform the nature of the claim into a patent-eligible application. Accordingly, the additional limitations, considered individually and in combination, do not provide an inventive concept. Examiner notes that the Applicant’s preamble does not afford patentable weight to the Applicant’s claims because this claim’s preamble is not “necessary to give life, meaning, and vitality” to the claim. The dependent claims corresponding to the rejected claims 9, 21 and 27 do not include language that would preclude the steps of categorizing and updating, of claims 9, 21 and 27 from practically being performed in the human mind, nor with respect to the individual claims. Further limitations do not integrate into a practical application. The claims do not include additional elements that are sufficient to amount to significantly more than the abstract idea because the additional computer elements, which are recited at a high level of generality, provide conventional computer functions that do not add meaningful limits to practicing the abstract idea. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claims 9, 21 and 27 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Per claims 9 and 21, the limitation “determine a destination memory location for the first data segment is a second read memory location.” is ungrammatical and ambiguous. The construction is ungrammatical and indefinite. It is unclear whether the limitation requires (i) determining that the destination “is” of a certain status, or (ii) determining the destination memory location, “the destination memory location being a second read memory location.” The grammatical defect prevents a POSITA from ascertaining the scope with reasonable certainty. The phrases “unread memory location,” “first read memory location,” “second read memory location, and “indicator”” in claim 9 are relative terms which renders the claim indefinite. The phrases ““unread memory location,” “first read memory location,” “second read memory location, and “indicator””” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. The claims do not define “unread”/“read” or provide an objective mechanism for how a memory location’s status is determined or changed (e.g., via a status bit/flag). Without reciting the status criterion or its representation, these are relative/functional labels lacking clear boundaries. “Indicator”: The claim does not identify whether the “indicator” is a flag bit, a field in a descriptor, a table entry, etc., or how it relates to the “unread/read” status. The breadth and ambiguity of “indicator” render the limitation indefinite. Per claim 27, the limitations: “read a first data segment into a registry from an unread memory location, set an indicator to change the unread memory location to a first read memory location, and … write the first data segment … to a second read memory location.” are not defined structurally or functionally beyond a result (“change … to a … read memory location”). The claim writes to “a second read memory location” without stating how that location is selected or identified within the system; absent a determinative criterion or a prior determination step (which appears only in dependent claim 28), the scope is ambiguous as to the required “second read memory location.” Claim Rejections - 35 USC § 102 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. The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claim(s) 9-12, 14, and 21-24, 27-31 and 34 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Bourd et al 20130194286 herein Bourd. Per claim 9, Bourd discloses: one or more circuits to: read a first data segment into a registry from an unread memory location; (fig. 4, ¶0120; PMU 18 may store state information of buffers 22 within IC 12 (e.g., within registers 44). PMU 18 may receive such state information of buffers 22 from processor 14. The state information of buffers 22 may include one or more of a starting address of buffers 22, an ending address of buffers 22, an address within buffers 22 where produced data is to be stored, and an address within buffers where data is to be retrieved. In these examples, PMU 18 may determine the location within the buffer for where the data produced by the execution of the first thread is to be stored based on the stored state information of buffers 22. Moreover, in some examples, PMU 18 may determine the location within the buffer for where the data produced by the execution of the first thread is to be stored without the first thread indicating the location of where the data is to be stored in the buffer; the examiner notes that the unread memory location is interpreted as not being accessed or not under atomic control by another thread. i.e. having access) set an indicator to change the unread memory location to a first read memory location; (¶0101; PMU 18 may store an atomic counter within registers 44. Registers 44 may be part of cache 34, or part of some other memory within GPU 16 or IC 12. The atomic counter may indicate whether access for one of programmable compute units 28 is available (e.g., whether data is available to be read or whether two or more kernels are attempting to write or read at the same time from the same buffers 22). Based on the atomic counter, PMU 18 may be able to properly allow access to one of programmable compute units 28 while denying access to other ones of programmable compute units 28 to avoid data corruption of buffers 22, which may occur if two threads attempt to write data at the same time; the examiner interprets the limitation as setting the indicator to indicate usage) determine a destination memory location for the first data segment is a second read memory location; and write the first data segment from the registry to the second read memory location (¶0102; PMU 18 may determine the starting and ending location of the requested data. However, PMU 18 may retrieve additional data that is stored in buffers 22 after the determined ending location of the requested data. PMU 18 may retrieve such additional data when PMU 18 determines that storage space is available in buffers 36. As described above, PMU 18 may manage both buffers 22 in global memory 20, as well as buffers 36 within cache 34. PMU 18 may then store the retrieved data in cache 34. In this manner, the additional data is already available within GPU 16 when such data is needed). Per claim 10, Bourd discloses: wherein two or more workers execute, in parallel, to read the unread memory location and the second read memory location (¶0101; The atomic counter may indicate whether access for one of programmable compute units 28 is available (e.g., whether data is available to be read or whether two or more kernels are attempting to write or read at the same time from the same buffers 22). Based on the atomic counter, PMU 18 may be able to properly allow access to one of programmable compute units 28 while denying access to other ones of programmable compute units 28 to avoid data corruption of buffers 22, which may occur if two threads attempt to write data at the same time; See ¶0026; parallel threads executing). Per claim 11, Bourd discloses: wherein the destination memory location is determined based at least on an updated data object to be added to a memory buffer (¶0076; after a programmable compute unit, executing threads of a kernel, produces data and outputs the produced data, PMU 18 may receive the data, and determine the address for where the data is to be stored. For example, PMU 18 may determine in which one of buffers 22 to store the data. In examples where buffers 22 are ring buffers or FIFO buffers, PMU 18 may store the information for the pointers that identify the start and end of buffers 22. For ring buffers, PMU 18 may also store the information for pointers that identify start of valid data and the end of valid data; parallel threads executing; the examiner notes that the data object is merely graphics data). Per claim 12, Bourd discloses: wherein the one or more circuits are further to: determine a second destination memory location for a second data segment read from the second memory location; determine the second destination memory location is unread; read a third data segment from the second destination memory location; set a second indicator to change the second destination memory location into a third read memory location; and write the second data segment from the registry to the third read memory location (¶0101; Based on the atomic counter, PMU 18 may be able to properly allow access to one of programmable compute units 28 while denying access to other ones of programmable compute units 28 to avoid data corruption of buffers 22, which may occur if two threads attempt to write data at the same time. In some instances, when PMU 18 denies access to one of programmable compute units 28, PMU 18 may allow the task that request the access (e.g., a thread) to go to sleep, and allow the denied one of programmable compute units 28 to continue executing other tasks (e.g., threads). When access to the denied one of programmable compute units 28 becomes available, PMU 18 may awaken that task and provide the data to that task for further execution. In this way, programmable compute units 28 may not go completely idle, and other tasks of programmable compute units 28 may execute; the examiner notes that the claim is merely an iteration process of acquiring access to read from multiple threads). Per claim 13, Bourd discloses: wherein the one or more circuits are further to: determine a second destination memory location for a second data segment read from the second memory location; determine the second destination memory location is unread; read a third data segment from the second destination memory location; set a second indicator to change the second destination memory location into a third read memory location; and write the second data segment from the registry to the third read memory location (¶0101; Based on the atomic counter, PMU 18 may be able to properly allow access to one of programmable compute units 28 while denying access to other ones of programmable compute units 28 to avoid data corruption of buffers 22, which may occur if two threads attempt to write data at the same time. In some instances, when PMU 18 denies access to one of programmable compute units 28, PMU 18 may allow the task that request the access (e.g., a thread) to go to sleep, and allow the denied one of programmable compute units 28 to continue executing other tasks (e.g., threads). When access to the denied one of programmable compute units 28 becomes available, PMU 18 may awaken that task and provide the data to that task for further execution. In this way, programmable compute units 28 may not go completely idle, and other tasks of programmable compute units 28 may execute; the examiner notes that the claim is merely an iteration process of acquiring access to read from multiple threads). Per claim 14, Bourd discloses: wherein the one or more circuits are further to: determine a second destination memory location for a second data segment read from the second memory location; determine the second destination memory location is unread; read a third data segment from the second destination memory location; set a second indicator to change the second destination memory location into a third read memory location; and write the second data segment from the registry to the third read memory location (¶0124; Examples of device 10 include, but are not limited to, wireless devices, mobile telephones, personal digital assistants (PDAs), video gaming consoles that include video displays, mobile video conferencing units, laptop computers, desktop computers, television set-top boxes, tablet computing devices, e-book readers, and the like. Device 10 may include processor 14, GPU 16, global memory 20, display 68, user interface 70, and transceiver module 72. In the illustrated example, PMU 18 is formed within GPU 16. In some examples, PMU 18 may be formed within the same IC that houses GPU 16 (i.e., IC 12). Also as illustrated, GPU 16 resides within IC 12. However, processor 14 may also reside within IC 12; the edge device is interpreted as any computing device on a network). Claims 21-24 are the method claims corresponding to the processor claims 9-13 and are rejected under the same reasons set forth in connection with the rejection of claims 9-13. Claims 27-31 and 34 are the system claims corresponding to the processor claims 9-13 and 14 and are rejected under the same reasons set forth in connection with the rejection of claims 9-13 ad 14. Claim Rejections - 35 USC § 103 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. 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. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. Claim(s) 13, 25-26, 32-33 and is/are rejected under 35 U.S.C. 103 as being unpatentable over Bourd in view of Hakke Patel et al. 20230196677 herein Patel. Per claim 13, Bourd does not specifically disclose: wherein the one or more circuits are further to: determine a total number of data segments for a task; and determine a number of processing units to execute the task based on the total number of data segments. However, Patel discloses: wherein the one or more circuits are further to: determine a total number of data segments for a task; and determine a number of processing units to execute the task based on the total number of data segments (¶0213; In at least one embodiment, scheduler unit 2404 receives tasks from a work distribution unit and manages instruction scheduling for one or more thread blocks assigned to SM 2400. In at least one embodiment, scheduler unit 2404 schedules thread blocks for execution as warps of parallel threads, wherein each thread block is allocated at least one warp. In at least one embodiment, each warp executes threads. In at least one embodiment, scheduler unit 2404 manages a plurality of different thread blocks, allocating warps to different thread blocks and then dispatching instructions from a plurality of different cooperative groups to various functional units (e.g., processing cores 2410, SFUs 2412, and LSUs 2414) during each clock cycle). It would have been obvious to one having ordinary skill in the art at the effective filing date of the invention to combine the teachings of Bourd and Patel’s task distribution to achieve parallel processing. Patel efficiently uses the processors bandwidth (¶0150; allowing partition units 1720A-1720N to write portions of each render target in parallel to efficiently use available bandwidth of parallel processor memory 1722). Claim 25 is the method claim corresponding to the processor claim 13 and is rejected under the same reasons set forth in connection with the rejection of claim 13. Claim 32 is the system claim corresponding to the processor claim 13 and is rejected under the same reasons set forth in connection with the rejection of claim 13. Per claim 26, Bourd discloses: determining a number of contiguous portions for a new data object; determining an existing number of contiguous portions is less than the number; and selecting the destination memory location based at least on the number, wherein the destination memory location forms the number of contiguous portions for the new data object (¶0213; In at least one embodiment, scheduler unit 2404 receives tasks from a work distribution unit and manages instruction scheduling for one or more thread blocks assigned to SM 2400. In at least one embodiment, scheduler unit 2404 schedules thread blocks for execution as warps of parallel threads, wherein each thread block is allocated at least one warp. In at least one embodiment, each warp executes threads. In at least one embodiment, scheduler unit 2404 manages a plurality of different thread blocks, allocating warps to different thread blocks and then dispatching instructions from a plurality of different cooperative groups to various functional units (e.g., processing cores 2410, SFUs 2412, and LSUs 2414) during each clock cycle; the examiner notes that the claims nor the specification set forth the metes and bounds of the contiguous portions and the portion being less than a number. In the interest of compact prosecution, the examiner interprets the claim as a collection of threads similarly to Warps). Claim 33 is the system claim corresponding to the processor claim 26 and is rejected under the same reasons set forth in connection with the rejection of claim 26. Remark Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to BABOUCARR FAAL whose telephone number is (571)270-5073. The examiner can normally be reached M-F 8:30-5:30 EST. 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, Tim VO can be reached at 5712723642. 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. BABOUCARR . FAAL Primary Examiner Art Unit 2138 /BABOUCARR FAAL/Primary Examiner, Art Unit 2138
Read full office action

Prosecution Timeline

Feb 29, 2024
Application Filed
May 14, 2026
Non-Final Rejection mailed — §101, §102, §103
Aug 10, 2026
Interview Requested
Aug 13, 2026
Applicant Interview (Telephonic)
Aug 13, 2026
Examiner Interview Summary

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12705001
INTEGRATED PIVOT TABLE IN A LOGICAL-TO-PHYSICAL MAPPING
1y 6m to grant Granted Aug 11, 2026
Patent 12693802
MEMORY CONTROLLER AND MEMORY SYSTEM INCLUDING THE SAME
3y 5m to grant Granted Jul 28, 2026
Patent 12693979
HOST DEVICE, MEMORY EXPANDING DEVICE AND SYSTEM FOR PREFETCHING
1y 9m to grant Granted Jul 28, 2026
Patent 12681861
EXTENT READS AT RANDOM OFFSETS BY SYNTHESIZING EXTENTS TO LEVERAGE SEQUENTIAL RESTORE PERFORMANCE
2y 5m to grant Granted Jul 14, 2026
Patent 12670025
Memory Allocation Method and Apparatus for Neural Network
1y 12m to grant Granted Jun 30, 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

1-2
Expected OA Rounds
80%
Grant Probability
95%
With Interview (+14.5%)
2y 10m (~4m remaining)
Median Time to Grant
Low
PTA Risk
Based on 538 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