Prosecution Insights
Last updated: July 17, 2026
Application No. 18/663,814

PROGRAM TRACING WITH TRACE SNIPPETS

Non-Final OA §103
Filed
May 14, 2024
Priority
Jun 12, 2023 — provisional 63/507,656
Examiner
GOORAY, MARK A
Art Unit
2199
Tech Center
2100 — Computer Architecture & Software
Assignee
Infineon Technologies AG
OA Round
1 (Non-Final)
76%
Grant Probability
Favorable
1-2
OA Rounds
1y 7m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 76% — above average
76%
Career Allowance Rate
313 granted / 410 resolved
+21.3% vs TC avg
Strong +62% interview lift
Without
With
+61.9%
Interview Lift
resolved cases with interview
Typical timeline
3y 9m
Avg Prosecution
14 currently pending
Career history
430
Total Applications
across all art units

Statute-Specific Performance

§101
4.6%
-35.4% vs TC avg
§103
87.0%
+47.0% vs TC avg
§102
4.2%
-35.8% vs TC avg
§112
1.9%
-38.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 410 resolved cases

Office Action

§103
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 § 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. Claims 1-5, 7-16 and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Giannini et al. (US 2008/0256396 A1) and further in view of KATO et al. (US 2024/0394168 A1). As per claim 1, Kato et al. teaches the invention as claimed including, “A method for tracing a cyclic program execution of a processing circuit of an integrated circuit, the method comprising: capturing, by a trace unit of the integrated circuit, trace snippets during respective occurrences of a hyper-period of the cyclic program execution of the processing circuit; storing the trace snippets in a trace buffer of the integrated circuit; and” Giannini et al. teaches an embedded trance microcell (ETM) unit of DSP 40 that captures in real-time detailed information about the software execution flow (0054). The ETM is configured to capture only select trace information and only after a specific sequence of conditions (0055). ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace (0060). The ETM monitors the DSP pipeline and performing filtering/triggering and compression/packetization. The compression/packetization unit takes the DSP execution information and efficiently forms it into packets that are sent out of ETM through the trace port into a trace repository that provides a large memory capacity for recording trace records and may be either off-chip or on-chip such as an embedded trace buffer (ETB). (0058). ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). The execution of multiple instruction sequences occurring concurrently and during which DSP 40 may be viewed as several single-threaded processors operating independently. In ETM, program flow in broken into a sequence of packets and that include thread number fields to certain packets to identify which packet belongs to which thread (0072). “reconstructing, by a processor coupled to the integrated circuit, the hyper-period by combining overlapping portions of the trace snippets from the trace buffer.” Debug host takes the packet stream from the trace repository and along with the program image reconstructs the execution flow of DSP, giving the user a detailed visibility into the DSP pipeline (0058). After a trace session, the packets allow for reconstructing the thread execution (0073). However, Giannini et al. does not explicitly appear to teach, “trace snippets during respective occurrences of a hyper-period of the cyclic program execution” KATO et al. teaches, the calculation of a hyper period. The hyper period is the least common multiple of the execution cycle of the software operated in a device. This period/time can be measured in milliseconds (0160). It would have been obvious to one of ordinary skill in the art before the effective filing date to modify Giannini et al. with KATA et al. Giannini et al. teaches the ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). KATA et al. teaches determining a hyper period as a time window. A hyper period is a well-known time period. Using this time period as the window of time for Giannini et al. is nothing more than a design choice and would have been obvious to try. As per claim 2, Giannini et al. further teaches, “The method of claim 1, wherein the capturing comprises: capturing the trace snippets at different time delays from starts of the respective occurrences of the hyper-period.” ETM may be configured to capture only select trace information and only after a specific sequence of conditions (0055). ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace. The event resource mechanisms are used to define when to generate these instruction traces (0060). ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (time period) (0064). As can be seen in figure 8 there are 5 different traces t0-t4 of different threads that start at different times (delays). Also see paragraphs 0074-0075. As per claim 3, Giannini et al. further teaches, “The method of claim 1, wherein the trace snippets comprise program flow information and/or task information.” Giannini et al. teaches an embedded trace microcell (ETM) unit of DSPs 40 that captures in real-time detailed information about the software execution flow (0054). The ETM program flow is broken down into a sequence of packets that include their thread number fields, that identify which packet belongs to which thread (0072). As per claim 4, Giannini et al. further teaches, “The method of claim 3, wherein the program flow information and/or task information comprises call information and/or return information.” ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). The ETM program flow is broken down into a sequence of packets that include their thread number fields that identify which packet belongs to which thread (0072). Inter-thread execution timing relationships at any given point for one thread is maintained. This gives the ability to observe operations and states of all threads for debugging and other important purposes (0074). Operations and state include thread initiation (call information) (0075). Also see figure 8. As per claim 5, Giannini et al. further teaches, “The method of claim 1, wherein the trace snippets are associated with a same task.” ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). The ETM program flow is broken down into a sequence of packets that include their thread number fields that identify which packet belongs to which thread (0072). After a trace session, the packets allow for reconstructing the thread execution (0073). As per claim 7, Giannini et al. further teaches, “The method of claim 1, wherein each of the trace snippets comprises a position of a task within the hyper-period.” Giannini et al. teaches ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter procession can also be included in an instruction trace (0060). A inter-thread trace alignment process is performed and time starts at T=0. For various threads, thread initiation may occur at different points in time (0075). The ETM program flow is broken down into a sequence of packets that include their thread number fields that identify which packet belongs to which thread. For identifying inter-thread timing relationships, the present disclosure establishes and maintains timing relationships between different threads (0072). Also see figure 8. As per claim 8, Giannini et al. et al. further teaches, “The method of claim7, wherein the position of the task within the hyper-period is a time offset from a start of the hyper-period. Teaches ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace (0060). The method and system establish the relative timing of the threads execution sequences by marking the offset between when a thread runs on tracing and when other threads have turned on and do subsequently turn on tracing. After a trace session, the packets allow for reconstructing the thread. Using offset-fields, the execution section sequence may be properly aligned among the threads (0072-0073). A inter-thread trace alignment process is further taught. Time starts at T=0. For various threads, thread initiation may occur at different points in time (0075). The ETM program flow is broken down into a sequence of packets that include their thread number fields that identify which packet belongs to which thread. For identifying inter-thread timing relationships, the present disclosure establishes and maintains timing relationships between different threads (0072). As can be seen in figure 8 there are 5 different traces t0-t4 of different threads, start at different times (offsets). Also see paragraphs 0074-0075. As per claim 9, Giannini et al. et al. further teaches, “The method of claim 1, wherein the capturing comprises: capturing the trace snippets at random time delays from starts of the respective occurrences of the hyper-period.” ETM may be configured to capture only select trace information and only after a specific sequence of conditions (0055). ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace. The event resource mechanisms are used to define when to generate these instruction traces (0060). ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (time period) (0064). As can be seen in figure 8 there are 5 different traces t0-t4 of different threads that start at different times (delays). Also see paragraphs 0074-0075. The method and system establish the relative timing of the threads execution sequences by marking the offset between when a thread turns on tracing and when other threads have turned on and do subsequently turn on tracing. After a trace session, the packets allow for reconstructing the thread. Using offset-fields, the execution section sequence may be properly aligned among the threads (0072-0073). A inter-thread trace alignment process is further taught. Time starts at T=0. For various threads, thread initiation may occur at different points in time (0075). As per claim 10, claim 10 contains similar limitations as claim 1 and is rejected for similar reasons. As per claim 11, Giannini et al. et al. further teaches, “The system of claim 10, wherein the trace unit comprises: a coder operable to capture the trace snippets;” Giannini et al. teaches an embedded trance microcell (ETM) unit of DSP 40 that captures in real-time detailed information about the software execution flow (0054). The ETM is configured to capture only select trace information and only after a specific sequence of conditions (0055). “registers operable to store trace capture trigger information; and” See figure 2. “a timer operable to enable, based on the trace capture trigger information received from the registers, the coder to start the capture of each of the trace snippets.” Giannini et al. teaches ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace (0060). The ETM monitors the DSP pipeline and performing filtering/triggering and compression/packetization. An embedded trace microcell (ETM) that is configured to capture only select trace information and only after a specific sequence of conditions (0055). The ETM monitors the DSP pipeline and performing filtering/triggering and compression/packetization. The compression/packetization unit takes the DSP execution information and efficiently forms it into packets that are sent out of ETM through the trace port into a trace repository that provides a large memory capacity for recording trace records and may be either off-chip or on-chip such as an embedded trace buffer (ETB). (0058). ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). The execution of multiple instruction sequences occurring concurrently and during which DSP 40 may be viewed as several single-threaded processors operating independently. In ETM, program flow in broken into a sequence of packets and that include thread number fields to certain packets to identify which packet belongs to which thread (0072). Giannini et al. teaches the ETM may generate ISDB breakpoint trigger events, external trigger events and DSP interrupts (0059). Also see figure 2 and 8. As per claim 12, Giannini et al. et al. further teaches, “The system of claim 11, wherein the trace capture trigger information is task identification information and/or time delays from starts of the respective occurrences of the hyper-period, and the processor is operable to write the trace capture trigger information into the registers.” Giannini et al. teaches ETM generates an instruction trace as a recording of the full progression of the program counter for a thread over a given window of time. The timing of the program counter progression can also be included in an instruction trace (0060). The ETM monitors the DSP pipeline and performing filtering/triggering and compression/packetization. An embedded trace microcell (ETM) that is configured to capture only select trace information and only after a specific sequence of conditions (0055). The ETM monitors the DSP pipeline and performing filtering/triggering and compression/packetization. The compression/packetization unit takes the DSP execution information and efficiently forms it into packets that are sent out of ETM through the trace port into a trace repository that provides a large memory capacity for recording trace records and may be either off-chip or on-chip such as an embedded trace buffer (ETB). (0058). ETM generates instruction traces which are a record of the execution flow for a thread over a given window of time (0064). The execution of multiple instruction sequences occurring concurrently and during which DSP 40 may be viewed as several single-threaded processors operating independently. In ETM, program flow in broken into a sequence of packets and that include thread number fields to identify which packet belongs to which thread (0072). Giannini et al. teaches the ETM may generate ISDB breakpoint trigger events, external trigger events and DSP interrupts (0059). Also see figure 2 and 8. As per claims 13-16 and 18-20, they contain similar limitations to claims 2-5 and 7-9 and are therefore rejected for similar reasons. Claims 6 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Giannini et al. (US 2008/0256396 A1) and KATO et al. (US 2024/0394168 A1) as applied to claims 5 and 16 above and further in view of Horsnell et al. (US 2014/0013020 A1). As per claim 6, Giannini et al. does not explicitly appear to teach, “The method of claim 5, wherein the capturing is paused during an interrupt that occurs during the same task.” Horsnell et al. teaches a performance monitoring interrupt signal that can trigger a data processing apparatus to start or stop capturing the performance monitoring data. The performance monitoring data generated by the performance monitoring circuit may only be of interest when a performance-related problem is detected (0043). It would have been obvious to one of ordinary skill in the art before the effective filing date to modify Giannini et al. with Horsnell et al. Giannini et al. teaches an embedded trace microcell (ETM) that is configured to capture only select trace information and only after a specific sequence of conditions (0055). Giannini et al. teaches the ETM may generate ISDB breakpoint trigger events, external trigger events and DSP interrupts (0059). However, Giannini et al. does not explicitly appear to teach “wherein the capturing is paused during an interrupt that occurs during the same task”. Horsnell et al. teaches a performance monitoring interrupt signal that can trigger a data processing apparatus to start or stop (pause) capturing the performance monitoring data. The performance monitoring data generated by the performance monitoring circuit may only be of interest when a performance-related problem is detected (0043). Horsnell et al. will allow Giannini et al. to turn on or off its monitoring based on conditions/problem detection. Using this known technique will improve the monitoring of Giannini et al, allowing it to only collect data when necessary and would have been obvious to try. As per claim 17, it contains similar limitations to claim 6 and is therefore rejected for similar reasons. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARK A GOORAY whose telephone number is (571)270-7805. The examiner can normally be reached Monday - Friday 10:00am - 6: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, Lewis Bullock can be reached at 571-272-3759. 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. /MARK A GOORAY/ Examiner, Art Unit 2199 /LEWIS A BULLOCK JR/ Supervisory Patent Examiner, Art Unit 2199
Read full office action

Prosecution Timeline

May 14, 2024
Application Filed
Jun 10, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12681700
Selecting Intermediate Representation Transformations for Compilations
3y 0m to grant Granted Jul 14, 2026
Patent 12681838
HYBRID LEARNING OF EXPERT HEURISTICS, MACHINE AND DEEP LEARNING FOR RANKING AUTOMOTIVE-GRADE APPLICATIONS
2y 6m to grant Granted Jul 14, 2026
Patent 12657013
APPARATUSES, METHODS, AND COMPUTER PROGRAM PRODUCTS FOR OUTPUTTING PROCESS TIME INSIGHT INTERFACE COMPONENTS IN CONNECTION WITH A GROUP SHARED CODE REPOSITORY
3y 11m to grant Granted Jun 16, 2026
Patent 12657116
SYSTEMS AND METHODS FOR TESTING FEDERATED MICROSERVICE ARCHITECTURES
3y 2m to grant Granted Jun 16, 2026
Patent 12657108
CONTROLLING EXECUTION OF SOFTWARE APPLICATIONS BASED ON APPLICATION PROFILES TO FACILITATE SAFETY COMPLIANCE
2y 8m to grant Granted Jun 16, 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
76%
Grant Probability
99%
With Interview (+61.9%)
3y 9m (~1y 7m remaining)
Median Time to Grant
Low
PTA Risk
Based on 410 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