Final Office Action
Status of the Claims
Claims 1-20 are rejected under 35 U.S.C 103
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-20 are rejected under 35 U.S.C 103 as being unpatentable over Williams et al (U.S Publication No. US 20110219376 A1), hereinafter referred to as Williams, in view of Volpe et al (U.S Patent No. US 10666775 B1), hereinafter referred to as Volpe, in further view of Larson et al. (U.S. Publication No. 2010/0332909 A1), hereinafter referred to as Larson.
With regards to Claim 1, Williams teaches:
An apparatus, comprising: ([0004])
a processor circuit configured to generate trace information in response to an activation of a trace operation; ([0065]; regarding, “The processing apparatus 1 also comprises at least one trace module 12 for generating trace data indicative of characteristics of the processing apparatus 1”);
and a trace circuit coupled to the processor circuit via a trace interface, ([0065]; regarding, “the trace module 12 of FIG. 1 is shown within the data processing apparatus 1”);
wherein the trace circuit is configured to:
receive the trace information from the processor circuit via the trace interface; ([0098]; regarding, “The trace circuitry 50 monitors information received from the trace target at a trace target port 58”);
generate a plurality of trace packets including a given trace packet that includes an ordered data structure that includes a plurality of data sections, ([0093]; Fig. 6);
Williams does not explicitly teach:
wherein an initial data section of the plurality of data sections includes a payload,
and a final data section of the plurality of data sections includes a footer.
However, Volpe teaches:
wherein an initial data section of the plurality of data sections includes a payload, (Fig. 4; Col. 12, lines 44-48);
and a final data section of the plurality of data sections includes a footer; (Fig. 4; Col. 16, lines 64-66).
Therefore, it would have been obvious before the effective filing date of the invention to one of ordinary skill in the art to which said subject matter pertains to have the trace packets generated by a trace circuit as taught by Williams to further include the ordered data sections as taught by Volpe. Doing so would allow for methods to detect, identify, and troubleshoot error in a hardware abstraction layer, software development kit, or development software/board (Col. 22, lines 36-42).
Williams in view of Volpe fails to explicitly disclose but Larson teaches:
and encode program counter discontinuities associated with the given trace packet to generate a compressed trace packet. ([0075]; regarding, “An example of trace compression counts and records the number of sequential instructions executed and outputs a single packet that includes the count number… A decoder uses the program listing and a start point to then trace program activity. Discontinuities in program flow, sync points, timing information, and data trace may use multiple packets to represent the traced activity.”; [0079]; regarding, “Encoder 220 delivers selected, specific information as Compressed Trace Data”).
Therefore, it would have been obvious before the effective filing date of the invention to one of ordinary skill in the art to which said subject matter pertains to have modified Williams and Volpe with the teachings of Larson. Doing so could increase the debug and tracing value and efficiency of the circuitry in systems (Larson, [0167]).
With regards to Claim 2, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 1 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the footer includes first information indicative of a length of the given trace packet. (Volpe, Col. 18, lines 62-64; regarding, header information can be in footer; Col. 24, lines 62-65; regarding, packet header may include length).
With regards to Claim 3, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 2 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the footer further includes second information indicative of a presence of timestamp information in a different data section of the ordered data structure of data sections, (Volpe, Fig. 4; Col. 17, lines 66-67; regarding, a timestamp stored within a packet);
and wherein the timestamp information includes third information indicative of a count value that is incremented during a given clock cycle of the processor circuit. (Volpe, Fig. 4; Col. 17, lines 66-67 and Col. 18, lines 1-3; regarding, timestamp can be compared to a system clock).
With regards to Claim 4, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 1 as cited above. Williams in view of Volpe in further view of Larson further teaches:
further comprising a trace memory, (Volpe, Fig. 1A; regarding, memory);
and wherein the trace circuit is further configured to store the plurality of trace packets in the trace memory. (Volpe, Col. 18, lines 66-67 and Col. 19 line 1; Col. 19, lines 9-13).
With regards to Claim 5, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 1 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the trace circuit includes a trace decision circuit configured to generate a packet type identifier and packet field data using the trace information. (Williams, [0037]; regarding, identifying groups or types of packets corresponding to an event).
With regards to Claim 6, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 5 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the trace circuit further includes a trace packet builder circuit configured to:
generate a given trace packet of the plurality of trace packets using the packet type identifier and the packet field data; (Williams, [0038]; regarding, “In some situations there may be several types of trace packet… the types of trace packet may include… control trace packet… marker trace packet… marked trace packet…”);
With regards to Claim 7, it is the method embodiment of Claim 1, therefore Williams in view of Volpe in further view of Larson teaches the method.
Please see Claim 1 for analysis of the limitations, as well as the motivation to combine references in accordance with 35 U.S.C. 103.
With regards to Claim 8, the rejection of claim 7 is incorporated herein. Further, the limitations in this claim are taught by Williams in view of Volpe in further view of Larson for the same reasons disclosed in the rejection of Claim 2 above.
With regards to Claim 9, the rejection of claim 7 is incorporated herein. Further, the limitations in this claim are taught by Williams in view of Volpe in further view of Larson for the same reasons disclosed in the rejection of Claim 4 above.
With regards to Claim 10, Williams in view of Volpe in further view of Larson teaches the method of Claim 9 as cited above. Williams in view of Volpe in further view of Larson further teaches:
reading, by a decoder, a last trace packet of the plurality of trace packets stored in the memory circuit using a trace packet pointer; (Volpe, Col. 5, lines 64-66; Col. 6, lines 1-5; regarding, “Forwarding table(s) can be stored onboard memory of integrated circuit 102 and can be accessed by packet processors 110, for example, to select an address… Host Interface 112 can enable relatively high bandwidth communications between integrated circuit 102, CPU 104, and/or memory 106.”);
determining, by the decoder, a location in the memory circuit of a preceding trace packet using length information included in a footer data section included in the last trace packet; (Volpe, Col. 6, lines 11-19; regarding, “The registers corresponding to packet processors 110 can store information pertaining to one or more operations of packet processors 110 including, for example, a number of dropped packets, a number of forwarded packets, a number of received packets, a number of trapped packets, a number of packets forwarded to a specific address or specific prefix…” and Col. 6, lines 25-50; regarding, “CPU 104 can access each of the registers to periodically collect information stored therein… Information within the registers can be used to determine, for example, if the test packets were correctly received and/or routed by device 102…”);
and in response to identifying corresponding locations of the plurality of trace packets, (Volpe, Col. 6, lines 43-50);
decoding the plurality of trace packets starting with an initial trace packet of the plurality of trace packets using the corresponding locations. (Volpe, Col. 7, lines 55-66).
With regards to Claim 11, Williams in view of Volpe in further view of Larson teaches the method of Claim 10 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein generating a particular trace packet of the plurality of trace packets includes:
determining a packet type for the particular trace packet using the trace information; (Volpe, Col. 11, lines 43-46; regarding, packet data can identify types of test data packets);
and determining a particular payload for the particular trace packet using the trace information. (Volpe, Col. 11, lines 50-56; regarding, test information can be included within a payload).
With regards to Claim 12, Williams in view of Volpe in further view of Larson teaches the method of Claim 11 as cited above. Williams in view of Volpe in further view of Larson further teaches:
assembling the particular trace packet using the packet type and the particular payload; (Volpe, Col. 11, lines 50-56);
and storing the compressed trace packet in the memory circuit. (Volpe, Col. 19, lines 9-11, 51-65; regarding, “Data to populate packet a payload data can be retrieved from memory 902… The length(s) can be modified based upon a profile stored in memory 902… Memory 902 can be embedded within packet generator 904 and/or shared between several packet generators…”).
Further, (Larson, [0079]; regarding, “Encoder 220 delivers selected, specific information as Compressed Trace Data”; [0102]; regarding, “Trace data from the cross trace unit 330 is stored in an on chip trace buffer 400”).
With regards to Claim 13, Williams in view of Volpe in further view of Larson teaches the method of Claim 7 as cited above. Williams in view of Volpe in further view of Larson further teaches:
in response to detecting a load/store instruction in the trace information, assigning an index from a pool of indices to the load/store instruction. (Volpe, Col. 6, lines 11-13 and 25-26; regarding, a CPU accessing registers; Col. 17, lines 52-57).
With regards to Claim 14, Williams in view of Volpe in further view of Larson teaches:
An apparatus, comprising: (Williams, [0004]);
…in response to a detection of a load/store instruction in the trace information:
assign a particular index to the load/store instruction from a pool of indices; (Volpe, Col. 6, lines 11-13 and 25-26; regarding, a CPU accessing registers; Col. 17, lines 52-57);
generate a data index trace packet using the particular index. (Volpe, Col. 10, lines 38-41; Col. 13, lines 57-61).
Please see Claim 1 analysis of the remaining limitations, as well as the motivation to combine references in accordance with 35 U.S.C. 103.
With regards to Claim 15, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 14 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the trace circuit is further configured, in response to a detection of a bus access corresponding to an execution of the load/store instruction in the trace information, (Volpe, Col. 25, lines 9-12; regarding, a bus interface module; Col. 6, lines 11-13 and 25-26; regarding, a CPU accessing registers; Col. 17, lines 52-57);
to generate a data access trace packet using the particular index. (Volpe, Col. 10, lines 38-41; Col. 13, lines 57-61).
With regards to Claim 16, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 15 as cited above. Williams in view of Volpe in further view of Larson further teaches:
further comprising a memory circuit configured to store the data index trace packet and the data access trace packet. (Volpe, Col. 18, lines 66-67 and Col. 19 line 1; Col. 19, lines 9-13).
With regards to Claim 17, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 15 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein to assign the particular index, the trace circuit is further configured to compare the load/store instruction to at least one filter criterion. (Volpe, Col. 17, lines 46-50; regarding, memory being used by packet checker; Col. 13, lines 62-63; regarding, filtering or checking at a packet checker).
With regards to Claim 18, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 14 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the data index trace packet includes an ordered data structure of a plurality of data sections, (Williams, [0093]; Fig. 6);
wherein an initial data section of the plurality of data sections includes a payload for the data index trace packet, (Volpe, Fig. 4; Col. 12, lines 44-48);
and wherein a final data section of the plurality of data sections includes a footer for the data index trace packet. (Volpe, Fig. 4; Col. 16, lines 64-66).
With regards to Claim 19, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 18 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the footer includes first information indicative of a length of the data index trace packet, (Volpe, Col. 18, lines 62-64; regarding, header information can be in footer; Col. 24, lines 62-65; regarding, packet header may include length).
and wherein the payload includes second information indicative of the particular index. (Volpe, Col. 13, lines 57-61; regarding, header index; Col. 11, lines 17-19; regarding, header information is parsed from packet payload).
With regards to Claim 20, Williams in view of Volpe in further view of Larson teaches the apparatus of Claim 14 as cited above. Williams in view of Volpe in further view of Larson further teaches:
wherein the trace circuit is further configured to store the compressed trace packet in a memory circuit (Larson, [0079]; regarding, “Encoder 220 delivers selected, specific information as Compressed Trace Data”; [0102]; regarding, “Trace data from the cross trace unit 330 is stored in an on chip trace buffer 400”).
Response to Arguments
Applicant’s arguments filed 11/26/2025 have been fully considered.
Applicant’s arguments with respect to the previous rejection under 35 U.S.C. 103 on independent Claim 1, and similarly Claims 7 and 14, have been considered and a new grounds of rejection has been provided addressing the newly claimed matter. Please see the above detailed rejection of the newly recited subject matter.
Newly cited Larson teaches: encode program counter discontinuities associated with the given trace packet to generate a compressed trace packet.
References Cited
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
Merten (U.S. Publication No. US 2017/0371769 A1): teaches a processor trace capturing trace data and formatting the trace data as trace data packets.
Kalkunte (U.S. Publication No. US 2014/0293825 A1): teaches timestamping data packets
Horley (U.S. Publication No. US 2012/0030520 A1): teaches storing and outputting trace data generated by trace circuitry monitoring the processing of activities of a data processing apparatus
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MATHEW GUSTAFSON whose telephone number is (571)272-5273. The examiner can normally be reached Monday-Friday 8:00-4:00.
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, Bryce Bonzo can be reached at (571) 272-3655. 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.
/M.D.G./Examiner, Art Unit 2113 /BRYCE P BONZO/Supervisory Patent Examiner, Art Unit 2113