US7962664B2 - Techniques for generating a trace stream for a data processing apparatus - Google Patents

Techniques for generating a trace stream for a data processing apparatus Download PDF

Info

Publication number
US7962664B2
US7962664B2 US12/232,999 US23299908A US7962664B2 US 7962664 B2 US7962664 B2 US 7962664B2 US 23299908 A US23299908 A US 23299908A US 7962664 B2 US7962664 B2 US 7962664B2
Authority
US
United States
Prior art keywords
trace
compression
circuitry
compression scheme
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/232,999
Other languages
English (en)
Other versions
US20090089626A1 (en
Inventor
Paul Robert Gotch
John Michael Horley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Assigned to ARM LIMITED reassignment ARM LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GOTCH, PAUL, HORLEY, JOHN
Publication of US20090089626A1 publication Critical patent/US20090089626A1/en
Application granted granted Critical
Publication of US7962664B2 publication Critical patent/US7962664B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Definitions

  • the present invention relates to techniques for generating a trace stream indicative of activities of monitored circuitry of a data processing apparatus.
  • Such tracing mechanisms produce in real-time a trace stream providing trace elements representing activities of the data processing apparatus that are desired to be traced.
  • This trace stream can then subsequently be analyzed for a variety of purposes, for example to facilitate debugging of sequences of processing instructions being executed by the data processing apparatus, for performing profiling operations in order to determine the performance of particular program code being executed on the data processing apparatus, etc.
  • the stream of trace elements that is generated by the trace mechanism is buffered prior to output for subsequent analysis.
  • a trace buffer is able to store a finite amount of information and requires a dedicated data bus which has a finite bandwidth over which the elements to be buffered can be received.
  • the trace buffer is generally arranged to store information in a wrap-around manner, i.e. once the trace buffer is full, new data is typically arranged to overwrite the oldest data stored therein. It has been found that the bandwidth of the dedicated data bus limits the rate at which information can be stored in the trace buffer.
  • a trace analyzing tool which receives the trace stream of trace elements from the trace buffer when desired, for example once the trace has completed.
  • the trace analyzing tool can then be used to reconstruct the activities of the device being traced based on the received trace elements.
  • devices such as processor cores increase in power and complexity, it is clear that the amount of information required to track the activities of such devices will increase, and accordingly there will potentially be a very large volume of trace elements that need to be traced.
  • the activities of a device that it might be desirable to trace include, but are not limited to, the instructions being executed by a processor core (referred to as instruction trace), and the memory accesses made by those instructions (referred to as data trace). These activities may be individually traced or traced together, so that the data trace can be correlated with the instruction trace.
  • the data trace itself consists of two parts, the memory addresses and the data values, referred to (respectively) as data address and data value trace.
  • the existing trace ETM protocols allow for data address and data value tracing to be enabled independently or simultaneously.
  • each packet output will typically consist of a header portion and an optional payload portion. Considering the headers, these typically take the form of a byte of information, and accordingly there are 256 possible encodings of header.
  • Some of those encodings may be associated with one encoding format, whilst others of those encodings may be associated with different encoding formats. Further encoding formats may be provided for the payload portions. These different encoding formats may be used to encode the different types of trace element that need to be encoded into packets, but these different encoding formats will be non-overlapping in the bit pattern encoding space so as to enable each packet to be uniquely identified by the trace analysing tool used to analyse the trace stream.
  • the existing ETM protocols produce trace elements called atoms which indicate whether instructions have been executed or not, an E atom indicating that an instruction has been executed and an N atom indicating that an instruction has not been executed. Sequences of these atoms can be compressed into packets known as p-headers, a p-header consisting of a byte size header and no payload.
  • One or more encoding formats may be provided for producing p-headers for particular sequences of E and N atoms but each such encoding format will occupy a non-overlapping bit pattern encoding space with respect to any other encoding formats used for p-headers, and indeed in respect of any other encoding formats used for different types of headers, for example branch headers used to identify packets giving information about branch instructions, data address or data value headers used to identify packets containing data address or data value information, etc.
  • the compression scheme used in association with any particular trace circuitry will typically be fixed at design time, with the particular encoding formats provided in that compression scheme having been chosen based on expected patterns of trace elements which will need to be compressed.
  • the encoding formats used to produce those p-headers from the sequences of E and N atoms typically use run length encoding schemes where the encoding skews towards long sequences of E atoms since these are typically more common than N atoms.
  • current trace circuitry can also support different trace modes of operation. For example, considering the earlier-mentioned ETM product, a non-cycle accurate trace mode of operation and a cycle accurate trace mode of operation can be provided. To switch from the non-cycle accurate trace mode of operation to the cycle accurate trace mode of operation, or vice versa, any current tracing activity is halted, and a number of the control registers in the trace circuitry are updated to define the new trace mode of operation. As part of that update process, the compression scheme may be changed, to provide a compression scheme better optimised for the new trace mode of operation.
  • the ARM Thumb-2 instruction set provides an “if then” instruction, which it is found may significantly vary the frequency of N atoms produced, and adversely impact the efficiency of any encoding formats provided for p-headers.
  • the trace circuitry can be adapted so as not merely to trace all instructions, but instead to only trace particular types of instructions such as branch instructions. When only tracing branch instructions a much higher distribution of N atoms can occur, again adversely affecting compression efficiency.
  • the volume of trace produced is a significant problem, and any inefficiency in the encodings provided by the compression scheme will increase the volume of the trace stream, and hence require more area for on-chip buffering, more hardware for off-chip capture and/or more pins for off-chip real-time trace capture. Accordingly, it would be desirable to provide an improved technique for compressing trace elements prior to output of a trace stream.
  • the present invention provides trace circuitry for generating a trace stream indicative of activities of monitored circuitry of a data processing apparatus, the monitored circuitry producing data elements indicative of said activities, and the trace circuitry comprising: trace element generation circuitry responsive to at least some of the data elements produced by the monitored circuitry to generate trace elements representative of those at least some of the data elements, the trace elements generated being dependent on a selected trace mode of operation of the trace circuitry; and compression circuitry for applying an encoding operation to a sequence of trace elements to produce a packet whose bit pattern represents the sequence of trace elements, and to cause that packet to be output in the trace stream, the encoding operation applied being dependent on a current compression scheme associated with the compression circuitry; whilst in the selected trace mode of operation, the compression circuitry being responsive to a compression change stimulus to change the current compression scheme from a first compression scheme to a second compression scheme whose bit pattern encoding space overlaps the bit pattern encoding space of the first compression scheme, such that following the change of compression scheme any further packet
  • the compression circuitry is arranged to be responsive to a compression change stimulus to change the current compression scheme whilst the trace circuitry is still in a selected trace mode of operation.
  • the compression change stimulus causes the current compression scheme to be changed from a first compression scheme to a second compression scheme whose bit pattern encoding space overlaps the bit pattern encoding space of the first compression scheme. This occurs even though the trace circuitry is still in the selected trace mode of operation, and accordingly there is no change in the types of trace elements actually being generated by the trace circuitry.
  • any further packets produced whilst in the selected trace mode of operation are produced in accordance with the second compression scheme.
  • the meaning associated with particular bit patterns of packets in the trace stream can be changed whilst still in the same trace mode of operation due to the ability to change the compression scheme used whilst in that trace mode of operation.
  • This enables a significant improvement in the compression efficiency to be achieved by enabling the compression scheme applied by the compression circuitry to be adapted, for example having regards to the particular patterns of trace element being output by the monitored circuitry.
  • a switch from the first compression scheme to the second compression scheme can take place without halting the trace operation of the trace circuitry, whilst in other embodiments the tracing activity of the trace circuitry will be temporarily halted whilst the change in compression scheme takes place.
  • the data elements received by the trace circuitry can take a variety of forms provided they give sufficient information for the required trace stream to be generated from them. Further, the data elements may be transmitted from the monitored circuitry (also referred to herein as the traced device) to the trace circuitry, or alternatively may be retrieved by the trace circuitry from that traced device. As an example, the data elements may comprise instruction address values, data address values, or data values.
  • the trace elements produced by the trace element generation circuitry are then typically arranged to contain sufficient information to enable those data elements, or at least the underlying activities of the monitored circuit indicated by those data elements, to be later determined by trace analysing logic analysing the trace stream.
  • the trace circuitry further comprises compression scheme select circuitry for applying predetermined criteria to determine when to change the current compression scheme and upon said determination to cause the compression change stimulus to be produced. Accordingly, in such embodiments, the compression change stimulus is generated internally by the trace circuitry based on an analysis performed by the compression scheme select circuitry.
  • the compression scheme select circuitry may determine when to change the current compression scheme. For example, it may be arranged to compare the volume of trace data produced by different compression schemes from the data elements produced by the monitored circuitry, and then select a compression scheme that is considered to be the most efficient based on that analysis. Alternatively, or in addition, it may be responsive to one or more attributes of the activities of the monitored circuitry, such as a value held in a thread identification register indicating a current thread of execution within the monitored circuitry, or an indication of the memory address regions being accessed by the monitored circuitry, in order to decide when to switch compression schemes. As an example, from such information it may be determined which applications are being run by the monitored circuitry, and the compression scheme select circuitry may associate different compression schemes with different applications.
  • the compression scheme select circuitry may determine when to change the current compression scheme, it may be responsive to hint signals received from the monitored circuitry which can be taken into account when determining when to change the compression scheme.
  • the monitored circuitry may output a hint signal when the activities it is performing are significantly changed, such hint signals either explicitly identifying a compression scheme which the monitored circuitry believes would be most appropriate moving forward, or at least indicating to the compression scheme select circuitry that it is an appropriate time to re-evaluate the compression scheme being used.
  • the compression circuitry comprises a plurality of compression elements, each compression element implementing a different compression scheme and being capable of performing said encoding operation; said compression scheme select circuitry is arranged to produce a select signal to select one of said compression elements as the compression element whose compression scheme is the current compression scheme, such that that selected compression element produces packets for inclusion in the trace stream; and the compression scheme select circuitry being arranged to generate said compression change stimulus by altering the select signal.
  • the compression circuitry is able to support a predetermined number of different compression schemes as dictated by the plurality of compression elements provided within the compression circuitry, and the compression scheme select circuitry produces a select signal to indicate which compression element should be used to produce packets for inclusion in the trace stream at any particular point in time.
  • the compression elements within the compression circuitry may either be entirely separate physical circuits, or alternatively the compression elements may share at least some logic with each other (and in some embodiments may share a significant portion of the logic making up those compression elements).
  • the different compression elements may provide different encoding formats for encoding p-headers with the encoding formats provided by one compression element having an overlapped bit pattern encoding space to the encoding formats provided by another compression element.
  • those compression elements may both employ the same encoding formats when encoding headers other than p-headers, or when encoding payload data associated with headers, and accordingly may share the same logic for performing such non p-header encoding.
  • each of the compression elements is arranged to perform the encoding operation with the produced packets being received by the compression scheme select circuitry, the compression scheme select circuitry performing an analysis operation on the produced packets to determine which of said compression elements to select via the select signal.
  • the compression elements may be arranged to execute in parallel to perform their respective encoding operations on the same source data, namely the trace elements produced by the trace element generation circuitry, or alternatively each compression element may be selected sequentially to perform the encoding operation for a predetermined period of time, with the produced packets then being analysed by the compression scheme select circuitry.
  • the test period of operation may be performed periodically so as to re-evaluate the best compression scheme to use on a periodic basis, or alternatively the test period of operation may be triggered by certain information received by the compression scheme select circuitry, for example indications of certain activities being performed by the monitored circuitry, hint signals, etc.
  • the compression scheme select circuitry may be arranged to continuously perform the analysis operation during the generation of the trace stream so as to enable a switch in compression scheme to take place at any point in time where the compression scheme select circuitry determines that there is a need to change the current compression scheme in order to improve compression efficiency.
  • the compression circuitry may be arranged to be a re-configurable circuit.
  • the compression change stimulus when issued comprises information used to reconfigure the reconfigurable circuit so as to implement the second compression scheme.
  • the compression circuitry comprises duplicate reconfigurable circuits, such that one of the reconfigurable circuits configured to implement the first compression scheme is arranged to continue operation following receipt of the compression-change stimulus whilst the other of the reconfigurable circuits is reconfigured in accordance with the compression change stimulus, following such reconfiguration the other of the reconfigurable circuits then being used to produce subsequent packets in accordance with the second compression scheme.
  • the re-configurable circuit can take a variety of forms, but in one embodiment is a programmable logic device and the compression change stimulus is stored in a memory device used to reprogram the programmable logic device.
  • the programmable logic device may be a field programmable gate array (FPGA) device and the compression change stimulus may be stored in a flash memory device used to reprogram the FPGA device.
  • FPGA field programmable gate array
  • the compression change stimulus may be provided to the compression circuitry in a variety of ways.
  • the trace circuitry further comprises a control register having a compression specifying field for storing the compression change stimulus, the compression circuitry referencing the compression specifying field of the control register to determine when to change the current compression scheme.
  • the particular value or values stored in the compression specifying field dictate which compression scheme is applied by the compression circuitry at any point in time.
  • the trace analysing tool needs to know when the compression scheme has been changed.
  • the trace analysing tool can be appraised of such a change, and indeed in some embodiments the user of the trace analysing tool may instigate the change in compression scheme and hence will know when the change takes place.
  • the compression circuitry is arranged to output a change signal in the trace stream to indicate that the change has been made, so that a trace analysing apparatus used to analyse the trace stream can determine when the compression scheme has changed so as to correctly interpret the packets in the trace stream.
  • the change signal will provide sufficient information to enable the trace analysing tool to determine which compression scheme has been used in association with packets following that change signal in the trace stream.
  • the present invention provides a data processing apparatus comprising: monitored circuitry for producing data elements indicative of activities of the monitored circuitry; and trace circuitry in accordance with the first aspect of the present invention for generating a trace stream indicative of said activities of the monitored circuitry.
  • the present invention provides a trace analysing apparatus for analysing a trace stream generated by trace circuitry in accordance with the first aspect of the present invention, comprising: packet decompression logic for decoding the packets in the trace stream in order to determine the sequence of trace elements represented by each said packet; and compression scheme select logic for receiving the trace stream and the trace elements determined by the packet decompression logic and applying predetermined criteria to determine when to change the current compression scheme and upon said determination to produce the compression change stimulus.
  • the compression scheme select logic within the trace analysing apparatus may be provided instead of compression scheme select circuitry within the trace circuitry, and perform a similar analysis to that performed by the compression scheme select circuitry in order to determine when to change the compression scheme.
  • the trace analysing apparatus may include compression scheme select logic and the trace circuitry may additionally include compression scheme select circuitry, and in such embodiments it will typically be necessary to provide some arbitration mechanism to arbitrate between conflicting changes indicated by these elements.
  • the compression scheme select logic within the trace analysing apparatus could in such instances provide a second level of review with regard to the actions taken by the compression scheme select circuitry within the trace circuitry.
  • the compression scheme select logic could be arranged so that it only intervenes in the decisions made by the compression scheme select circuitry in certain situations, and in the event that the compression scheme select logic then does issue compression change stimulus, the arbitration mechanism would give priority to that compression change stimulus as output by the compression scheme select logic.
  • the compression circuitry of the trace logic supports a predetermined number of compression schemes; said compression scheme select logic is arranged to produce a select signal to identify which compression scheme is the current compression scheme; and said compression scheme select logic is arranged to generate said compression change stimulus by altering the select signal.
  • the compression change stimulus includes information defining the second compression scheme to be used as the current compression scheme.
  • Such an embodiment may be used for example where the compression circuitry within the trace circuitry is reconfigurable.
  • the compression scheme select logic references a program image when applying said predetermined criteria to determine whether to change the current compression scheme.
  • a trace analysing apparatus is often provided with a copy of the program image to enable it to reconstruct from the trace elements provided in the trace stream the actual sequence of instructions that were executed by the monitored circuitry.
  • the compression scheme select logic can be arranged to reference the program image so that, for example, when it has identified from analysis of a portion of the trace stream that a change in compression scheme may be worthwhile, it can then study the program image to check that similar patterns of trace elements are likely to be observed in other portions of the code, to thereby confirm that such a change is likely to be worthwhile.
  • the present invention provides a method of changing a compression scheme applied by trace circuitry used to generate a trace stream indicative of activities of monitored circuitry of a data processing apparatus, the monitored circuitry producing data elements indicative of said activities, and the method comprising the steps of: responsive to at least some of the data elements produced by the monitored circuitry, generating trace elements representative of those at least some of the data elements, the trace elements generated being dependent on a selected trace mode of operation of the trace circuitry; and applying an encoding operation to a sequence of trace elements to produce a packet whose bit pattern represents the sequence of trace elements, and outputting that packet in the trace stream, the encoding operation applied being dependent on a current compression scheme; whilst in the selected trace mode of operation, in response to a compression change stimulus changing the current compression scheme from a first compression scheme to a second compression scheme whose bit pattern encoding space overlaps the bit pattern encoding space of the first compression scheme, such that following the change of compression scheme any further packets produced whilst in said selected trace mode
  • the present invention provides a computer program product comprising a computer program for causing a computer to analyse a stream of trace elements generated in accordance with the fourth aspect of the present invention by performing the steps of: decoding the packets in the trace stream in order to determine the sequence of trace elements represented by each said packet; and with reference to the trace stream and the trace elements decoded from the packets of the trace stream, applying predetermined criteria to determine when to change the current compression scheme and upon said determination to produce the compression change stimulus.
  • FIG. 1 is a block diagram of a data processing system in accordance with one embodiment of the present invention
  • FIG. 2 is a block diagram illustrating an example of the monitored circuitry of FIG. 1 in accordance with one embodiment
  • FIG. 3 is a block diagram illustrating in more detail the on-chip trace module of FIG. 1 in accordance with one embodiment
  • FIG. 4 is a block diagram illustrating the trace generator of FIG. 3 in accordance with one embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating the trace generator of FIG. 3 in accordance with an alternative embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating the trace generator of FIG. 3 in accordance with a further alternative embodiment of the present invention.
  • FIG. 7 is a block diagram illustrating the trace generator of FIG. 3 in accordance with a further alternative embodiment of the present invention.
  • FIG. 8 is a diagram illustrating the trace analyser of FIG. 1 in accordance with one embodiment of the present invention.
  • FIG. 9 is a diagram schematically illustrating the provision of packets in the trace stream produced by the trace module 20 of FIG. 1 in accordance with one embodiment of the present invention.
  • FIG. 10 is a flow diagram illustrating the operation of the compression circuits and compression analysis circuit of FIG. 4 in accordance with one embodiment of the present invention.
  • FIGS. 11 and 12 are flow diagrams illustrating the operation of the packet decompression logic and compression analysis logic of the trace analyser of FIG. 8 in accordance with two alternative embodiments of the present invention
  • FIG. 13 is a diagram schematically illustrating the efficiencies in compression that can be achieved when switching compression scheme.
  • FIG. 14 illustrates how a particular bit pattern is interpreted differently in accordance with different compression schemes used in accordance with one embodiment of the present invention.
  • FIG. 1 schematically illustrates a data processing system providing monitored circuitry 10 , a trace module 20 , a trace buffer 30 and a trace analyser 40 .
  • FIG. 1 illustrates a data processing system providing a trace buffer 30
  • the trace module 20 may pass its output straight to the trace analyser 40 , without going via a trace buffer.
  • the monitored circuitry 10 producing the stream of data elements received by the trace module 20 can take a variety of forms, and may for example be a processor core, a Direct Memory Access (DMA) engine, a data engine/accelerator, etc.
  • the monitored circuitry 10 may consist of a plurality of devices coupled by a bus, and the data elements may be monitored by the trace module 20 as they pass over the bus.
  • DMA Direct Memory Access
  • the trace analyser 40 which may in one embodiment be formed by a general purpose computer running appropriate software, is coupled to the trace module 20 and the trace buffer 30 .
  • the trace module 20 typically embodied on-chip, is arranged to receive data elements from logic 10 and dependent thereon produces a trace stream providing trace elements which are stored in the trace buffer 30 (which may be provided on or off chip).
  • the trace analyser 40 typically embodied off-chip, is then used to analyse that trace stream in order to derive information indicative of the activities of the monitored circuitry being traced 10 . In particular, through analysis of the trace stream, the detailed activity of the monitored circuitry 10 can be determined.
  • the trace analyser 40 is connected to the trace module 20 to enable certain features of the trace module to be controlled by the user of the trace analyser. Additionally, in some embodiments, the trace stream produced by the trace module 20 may be provided directly to the trace analyser 40 rather than being buffered in the trace buffer 30 .
  • FIG. 2 is a block diagram of an example of the monitored circuitry 10 of FIG. 1 .
  • the monitored circuitry 10 comprises two devices ( 11 , 12 ) connected by a bus 15 .
  • the bus is linked to the trace module 20 , via connection 105 , over which data elements produced by the logic are passed.
  • FIG. 3 is a block diagram of the trace module 20 in accordance with one embodiment.
  • the trace module 20 is arranged to receive over path 105 data elements indicative of the state or operation of the monitored circuitry being traced.
  • the sync logic 100 is arranged to convert the incoming signals into internal versions of the signals more appropriate for use within the trace module 20 . These internal versions are then sent to the control logic 110 and the trace generation logic 120 , although it will be appreciated that the control logic 110 and the trace generation 120 will not necessarily need to receive the same signals.
  • the control logic 110 needs to receive data relating to triggerable events, for example instruction addresses, data values, register accesses, etc so that it can determine whether trace should be activated, and what types of data elements should be traced.
  • the trace generation logic 120 receives via the sync logic 100 any data that would need to be traced dependent on the control signals issued by the control logic 110 .
  • control registers 140 are provided which are used to configure the operation of the control logic 110 , these control registers 140 being settable from the trace analyser 40 .
  • a number of control registers can be provided, which fundamentally direct two elements of the trace generation logic operation—“when” to generate trace elements, e.g. when a particular range of addresses is accessed, and “what” to generate those trace elements for, e.g. the data address and/or data value of a particular transfer and, typically, supplementary information about the transfer such as whether it is a read or a write operation, whether it is locked, security information etc.
  • the trace generation logic 120 Triggered by a control signal issued by the control logic 110 that a “when” condition is met, the trace generation logic 120 generates the required trace elements indicative of the data elements it is receiving from the sync logic 100 , in accordance with the associated “what” signal it also receives from the control logic. These generated trace elements are then typically subjected to a compression operation and then output to the FIFO 130 . From here, the trace stream is then output to the trace buffer 30 , or in alternative embodiments is output directly to the trace analyser 40 .
  • the trace generator 120 is provided with compression circuitry for applying an encoding operation to a sequence of trace elements in order to produce packets for output in the trace stream, with the encoding operation applied being dependent on a current compression scheme associated with the compression circuitry.
  • the trace generator 120 is responsive to compression change stimulus to change the current compression scheme from a first compression scheme to a second compression scheme whose bit pattern encoding space overlaps the bit pattern encoding space of the first compression scheme, such that following the change of compression scheme any further packets produced whilst in the same trace mode of operation are produced in accordance with the second compression scheme.
  • the compression change stimulus may be generated internally within the trace module 20 by some compression analysis circuitry, or alternatively may be provided from an external source, such as the trace analysing tool 40 based on compression analysis performed therein.
  • two different trace modes of operation are provided within the trace module 20 , namely a non-cycle accurate trace mode of operation and a cycle accurate trace mode of operation.
  • a non-cycle accurate trace mode of operation it is possible to output a trace stream including instruction trace and/or data trace and the compression circuitry has associated therewith a compression scheme providing encoding formats for encoding the various trace elements that need to be output in the trace stream.
  • the various encoding formats supported are non-overlapping in bit pattern encoding space, so that from any particular pattern of bits, the trace analysing tool can uniquely identify what trace elements are represented by that pattern of bits.
  • the compression scheme applied by the compression circuitry of the trace module 20 has been predetermined and fixed.
  • FIG. 4 illustrates the trace generator 120 of FIG. 3 in accordance with a particular embodiment of the present invention, where compression circuitry within the trace generator consists of a plurality of compression circuits 210 , 220 , 230 .
  • compression circuitry within the trace generator consists of a plurality of compression circuits 210 , 220 , 230 .
  • any of the data elements produced by the monitored circuitry that are to have trace elements generated in respect thereof are forwarded from the sync circuitry 100 to trace element generation circuitry 200 within the trace generator 120 , the trace element generator then generating in a known manner a stream of trace elements.
  • This stream of trace elements is then provided to compression circuitry which in the embodiment illustrated in FIG. 4 consists of n compression circuits 210 , 220 , 230 .
  • compression circuits are arranged to employ different compression schemes and at any particular point in time the output from one of the compression circuits is chosen via multiplexer 240 to produce a trace stream of packets output from the trace generator 120 to the FIFO 1 - 30 . Whilst all of the compression circuits could in one embodiment be run in parallel, it will typically be the case that in normal operation only one of the compression circuits will be active so as to avoid unnecessary power consumption.
  • compression analysis circuitry 250 which at least during a test period of operation can receive the outputs from the various compression circuits and compare them in order to determine which compression circuit is producing the most efficient compression.
  • the compression circuits 210 , 220 , 230 may be arranged to operate in parallel on the same raw trace element stream produced by the trace element generator 200 , with the outputs from those circuits then being routed back to the compression analysis circuit 250 .
  • one of the compression circuits can be selected as the active compression circuit whose output is actually forming the trace stream, with the multiplexer 240 selecting that compression circuit's output.
  • each of the compression circuits 210 , 220 , 230 may be selected in turn to perform compression for a predetermined period of time, again with the results being collated within the compression analysis circuit 250 .
  • the compression analysis circuit 250 can then compare the results achieved from the various compression circuits and based thereon select the most appropriate compression circuit to be used for future packets produced by the trace generator 120 .
  • the compression analysis circuit retains for each compression circuit a trace data count identifying the number of bytes of compressed trace data output from the various compression circuit, so as to enable the compression analysis circuit to then select the compression circuit that produced the least number of bytes of output trace data during the test period of operation.
  • the compression analysis circuit Once the compression analysis circuit has performed its analysis, it outputs a signal to identify the compression circuit which has been selected for performing the compression of subsequent trace elements output by the trace element generator 200 .
  • This output may be forwarded directly to the relevant compression circuit and/or the multiplexer 240 , or alternatively as shown in FIG. 4 may take the form of a select signal stored within an encoding select field 255 (also referred to herein as a compression specifying field) of the control register(s) 140 . Whilst such an encoding select field 255 may be provided within the control registers 140 , it will be appreciated that there is no need for that field to be physically one of the control registers 140 , and instead the select signal may be stored in any appropriate storage location accessible to the trace generator 120 .
  • FIG. 5 illustrates an alternative embodiment of the present invention where the compression analysis circuit 250 can receive additional information used to enable selection of the appropriate compression circuit.
  • the compression analysis circuit 250 is referred to as a compression scheme selection circuit 250 , since optionally it may be driven directly by this additional information rather than using the results output by any particular compression circuit.
  • the compression scheme selection circuit still refers to the compression results achieved by the various compression circuits when determining the appropriate compression circuit to select.
  • the compression scheme selection circuit 250 also receives additional signals over path 265 , and in particular receives compression hint signals that are generated by the monitored circuitry (or indeed by any other suitable circuitry within the data processing system) which are used to assist the compression scheme selection circuit in selecting the appropriate compression circuit at any particular point in time.
  • the compression hints may be inserted by the monitored circuitry into the data elements output by the monitored circuitry, to identify changes in activity which might make a change in compression scheme appropriate.
  • These compression hints may be used by the compression scheme selection circuit 250 to trigger a re-performance of the test period of operation, the compression scheme selection circuit 250 then using the results output by the various compression circuits in the manner discussed earlier with reference to FIG. 4 in order to determine which compression circuit to select.
  • the compression hints may actively identify which compression scheme is considered appropriate for future trace packets, for example based on the monitored circuitry's understanding of what activities it is undertaking and hence the general pattern of activities that needs to be traced.
  • the compression scheme selection circuitry 250 can also seek to analyse specific attributes of the activities of the monitored circuitry, for example by referencing some of the data elements output from the monitored circuitry. For example, the compression scheme selection circuitry 250 may monitor a “thread” identification register (also known as a “context” identification register) to determine the application that is running at any particular point in time, and based on that information perform some analysis as to whether a change in compression scheme is appropriate.
  • a “thread” identification register also known as a “context” identification register
  • the compression scheme selection circuit 250 may be provided with information indicating that a first compression scheme is applicable when a particular application is running, and a second compression scheme is appropriate when a different application is running, the compression scheme selection circuit 250 being able to determine from analysis of the thread identification register which application is running, and accordingly which compression scheme should be used.
  • a similar analysis could be performed by analysing which memory addresses are being accessed in order to determine which application is running, for example when monitoring a processor designed for embedded control or running a Real Time Operating system (RTOS).
  • RTOS Real Time Operating system
  • the results of the compression scheme selection circuit 250 may be output directly to the relevant compression circuit and/or multiplexer 240 , or instead may be stored in an encoding select field 255 provided within appropriate control registers 140 .
  • FIG. 6 illustrates an alternative embodiment of trace generator where the compression analysis circuit 250 is omitted, and instead such compression analysis is performed externally offline.
  • compression analysis may be performed within the trace analyser tool based on the trace stream received over time from the trace generator 120 of the trace module 20 .
  • a select signal can then be generated and routed over path 275 to the encoding select field 255 to thereby control future selection of the compression circuits 210 , 220 , 230 .
  • FIGS. 4 to 6 are shown as physically separate circuits, it will be appreciated that in some embodiments those circuits may share significant portions of logic with each other.
  • each compression circuit represents a different compression scheme that can be used, a number of the encoding formats provided within any particular compression scheme may be shared with other compression schemes.
  • a first compression scheme may provide one or more encoding formats for p-headers which occupy an overlapping bit pattern encoding space to some different encoding formats provided for p-headers in a second compression scheme.
  • the other encoding formats used to encode other headers or payload portions associated with headers may be unchanged between the two compression schemes, and accordingly the compression circuits used to embody those two different compression schemes will actually share a significant proportion of logic with each other.
  • FIG. 7 illustrates an alternative embodiment of trace generator 120 where instead of a predetermined number of compression circuits, and accordingly a predetermined number of possible compression schemes, reconfigurable compression circuitry 300 is provided, which in one embodiment may take the form of a field programmable gate array (FPGA) device.
  • the reconfigurable compression circuitry 300 can be re-programmed over path 330 from compression scheme defining information stored within a memory device such as flash memory 310 .
  • That information will typically be produced by an external compression analysis tool used to analyse the trace stream produced by the trace generator 120 over a period of time, and based thereon develop a suitable compression scheme which will enable an improvement in efficiency of compression for future packets of the trace stream produced whilst the trace module is in the same trace mode of operation, assuming a similar pattern of trace elements occurs over time.
  • an external compression analysis tool used to analyse the trace stream produced by the trace generator 120 over a period of time, and based thereon develop a suitable compression scheme which will enable an improvement in efficiency of compression for future packets of the trace stream produced whilst the trace module is in the same trace mode of operation, assuming a similar pattern of trace elements occurs over time.
  • FIG. 8 illustrates logic that may be provided within a trace analyser 40 in accordance with one embodiment of the present invention.
  • the trace stream is received by packet decompression logic 400 , which based on an understanding of the compression scheme used to produce the trace stream packets then decompresses the packets into the constituent trace elements.
  • Interpretation logic 410 uses the trace elements to construct execution information about the activities being performed in the monitored circuitry as indicated by those trace elements. To perform such an analysis, the interpretation logic 410 typically references a program image 420 providing a copy of the program code executed by the monitored circuitry.
  • the analysis 430 then performs any required further analysis, for example to facilitate debugging of sequences of processing instructions, for performing profiling operations in order to determine the performance of particular program code, etc.
  • the components 400 , 410 , 420 , 430 may be provided in a standard trace analyser tool 40 .
  • the trace analyser tool 40 may additionally comprise compression analysis logic 440 to perform an analysis of the effectiveness of the compression being applied by the compression circuitry within the trace module 20 .
  • the compression analysis logic 440 receives the trace stream input to the trace analyser tool 40 along with the stream of trace elements as decompressed by the packet decompression logic 400 .
  • the compression analysis logic 440 can then perform a variety of different compressions on the same sequence of trace elements using a number of known compression schemes identified in an encodings database 450 , and based thereon determine whether any of those compression schemes would give a more efficient compression than the compression achieved in the trace stream received from the trace module 20 .
  • one of those compression schemes can be selected, and an encoding select signal output over path 445 to control future compression within the trace generator 120 of the trace module 20 .
  • that information may be routed to the encoding select field 255 of the control registers 140 to control which compression circuit is selected for future compression of the trace elements.
  • the compression analysis logic 440 may seek to derive a particular compression scheme which is aimed at providing more optimal compression based on an analysis of a certain subset of the trace elements decompressed by the packet decompression logic 400 , with the definition of the determined compression scheme then being output over path 445 and used to re-program the reconfigurable compression circuitry of the trace generator 120 .
  • the compression analysis logic 440 can also have access to the program image 420 so that it can determine whether the portion of trace elements analysed would be representative of the general activities expected when the monitored circuitry is executing the code as set out in the program image. This may be used as a checkpoint for situations where the compression analysis logic 440 has determined that another compression scheme may be more appropriate, by ensuring that a check is made with reference to the program image to seek to determine whether such a change is likely to give rise to long term savings in compression efficiency.
  • the trace generator 120 within the trace module 20 produces a trace stream consisting of a plurality of packets.
  • FIG. 9 illustrates an example of a portion of such a trace stream, and serves to illustrate that packets may be of different sizes and contain different elements.
  • Each packet in one embodiment contains a header 500 , 510 , 515 , which in one particular embodiment consists of one byte of information.
  • a packet may consist solely of a header, such as in the earlier-mentioned p-header example, where the header encodes a sequence of atoms produced to represent execution activities of the monitored circuitry, or alternatively may be followed by an optional payload portion 505 , 520 .
  • the size of the payload portions may vary.
  • the size of the payload may depend on the type of information being traced, as determined by the content of the associated header portion.
  • the payload size for a particular piece of trace information may be variable, with some sync information being provided in the trace stream to identify the length or end of any particular payload portion.
  • the compression formats provided within any particular-compression scheme to deal with the headers and various optional payloads can take a variety of forms, but the various encoding formats provided within a particular compression scheme will be non-overlapping so that any particular block of data can be uniquely decoded by the trace analyser to identify the trace elements represented therein.
  • the various encoding formats provided within a particular compression scheme will be non-overlapping so that any particular block of data can be uniquely decoded by the trace analyser to identify the trace elements represented therein.
  • the trace analyser to identify the trace elements represented therein.
  • 256 possible encodings for a header consisting of one byte of data only a portion of those encodings will be available for encoding p-headers, with other portions of that encoding space being used to encode other types of headers.
  • To increase the number of encoding formats available within any particular compression scheme it would be necessary to increase the overall size of available bit patterns, but this would increase the overall trace bandwidth.
  • a mechanism which enables the compression scheme applied for a particular trace mode of operation to be changed so that multiple compression schemes can be made available for use with a particular trace mode of operation, with each such compression scheme having a bit pattern encoding space which overlaps with the bit pattern encoding space of another of those compression schemes.
  • each such compression scheme having a bit pattern encoding space which overlaps with the bit pattern encoding space of another of those compression schemes.
  • the compression scheme can be switched to a different compression scheme, whereafter particular bit patterns appearing in the trace stream may have different meanings to the corresponding bit patterns appearing earlier in the trace stream in association with a different compression scheme.
  • FIG. 10 is a flow diagram illustrating steps that may be performed within the compression circuits 210 , 220 , 230 and compression analysis circuit 250 of FIG. 4 in accordance with one embodiment of the present invention.
  • a test mode of the compression analysis circuit is entered at which point trace data counts kept for each compression circuit are reset.
  • the process awaits receipt of a sequence of trace elements from the trace element generator 200 whereafter at steps 610 , 620 , 630 , each of the compression circuits 210 , 220 , 230 compresses that sequence of trace elements using the associated compression scheme.
  • each compression circuit is then forwarded to the compression analysis circuitry 250 which at steps 612 , 622 , 632 increments the relevant trace data: counts maintained for each compression circuit by the amount of trace data generated by those compression circuits.
  • each of the compression circuits is able to operate in parallel during this test mode of operation, but as mentioned earlier in an alternative embodiment each of the compression circuits may be utilised in turn for particular periods of time during which trace elements are produced. It will be appreciated that in this latter embodiment the compression analysis circuit can still maintain separate trace data counts for the various compression circuits.
  • step 640 it is determined whether the test period has completed, and if not the process returns to step 605 . However, once the test period has completed, then the compression analysis circuit 250 chooses at step 645 the most appropriate compression scheme with reference to the trace data count information maintained based on the outputs from the various compression circuits.
  • step 650 it is determined whether the currently selected compression scheme, i.e. the one that is being used to produce the packets actually output in the trace stream, is the scheme selected at step 645 as the most appropriate scheme. If so, no further action is needed and the test mode exits at step 660 . However, if the current scheme is not the best scheme, then at step 655 compression change stimulus is emitted, in the example of FIG. 4 this taking the form of a select signal stored in the encoding select field 255 of the control registers 140 to control which compression circuit is used to produce subsequent packets for inclusion in the trace stream.
  • FIG. 11 is a flow diagram illustrating a sequence of steps that may be performed by the packet decompression logic 400 and compression analysis logic 440 of the trace analyser 40 shown in FIG. 8 in accordance with one embodiment of the present invention.
  • a section of the trace stream is chosen to be analysed, whereafter at step 705 the packet decompression logic 400 is used to decompress the trace stream into the relevant trace elements.
  • those trace elements are re-compressed using all of the other available compression schemes as identified in the encodings database 450 .
  • the most efficient scheme is chosen based on the scheme producing the least amount of trace data for the provided trace elements.
  • the compression change stimulus is emitted over path 445 , and in this embodiment may take the form of a select signal routed to the encoding select field 255 of the control registers 140 , as for example shown earlier in FIG. 6 .
  • FIG. 12 illustrates an alternative sequence of steps that may be performed by the packet decompression logic 400 and compression analysis logic 440 in accordance with an alternative embodiment of the present invention.
  • a section of the trace stream is chosen to analyse, whereafter at step 755 that portion is decompressed using the packet decompression logic 400 to identify the relevant trace elements.
  • the trace elements are analysed to identify compressible features. This for example may involve identifying a sequence of trace elements of the same form which could be compressed by run length encoding, or other known techniques for identifying suitable features for compression.
  • step 765 a new compression scheme is devised based on the compressible features identified at step 760 , whereafter at step 770 compression change stimulus is emitted.
  • the compression change stimulus will need to define the new compression scheme.
  • Such an embodiment may be used in situations where the compression circuitry within the trace module 20 is able to be reconfigured.
  • the compression circuitry comprises an FPGA device, it would be possible to reprogram the FPGA based on the compression change stimulus. Accordingly, at step 775 , the trace generation circuitry is reconfigured based on the compression change stimulus so that it will subsequently perform compression in accordance with the newly identified compression scheme.
  • FIG. 13 is a diagram schematically illustrating the enhancement in compression efficiency that can be achieved when providing the mechanism of embodiments of the present invention to enable a change in compression scheme whilst still in the same trace mode of operation.
  • FIG. 13 is based on the following considerations.
  • protocol 1 If it is required to encode the stream of atoms ENENEN, then using protocol 1 this requires 6 bytes of trace whereas if the compression scheme is switched to protocol 2 it only requires 2 bytes of trace, along with a change-message 0PPPPPPP, where P encodes the number of the protocol selected.
  • protocol 1 each E or N atom needs to be encoded by a separate byte, since protocol 1 has two different encoding formats which have been designed to optimise compression for long sequences of E or N atoms, since the bit positions denoted with an “E” in format 1 can be used to specify the number of E atoms appearing one after the other in a sequence, and similarly using format 2 the bit positions denoted with a N can be used to identify the number of N atoms appearing in a particular sequence.
  • protocol 1 is ill suited for compressing individual E atoms followed by individual N atoms.
  • protocol 2 can encode sequences of one, two, three, four or five atoms of either type, since each bit position identified by a F can be used to identify either an E atom (by setting the bit position to one) or an N atom (by setting the bit position to zero).
  • format 1 of protocol 1 can be used to encode via a single byte a sequence of between 0 and 31 E atoms
  • format 2 of protocol 1 can be used to encode via a single byte a sequence of between 0 and 31 N atoms.
  • this can give significant compression efficiencies when encoding large sequences of E or N atoms, it clearly is not very efficient for the particular sequence of atoms discussed above where each E atom is followed by an N atom, and instead it would be better to select compression protocol 2 via the protocol switch byte 0x02 shown in FIG. 13 , assuming that similar sequences were expected to occur for a sufficient period of time to make the switch worthwhile.
  • FIG. 14 is a diagram that illustrates how in different portions in a trace stream, the same bit patterns can mean different things dependent on the compression scheme.
  • FIG. 14 is based on the following considerations.
  • the following two bytes of information shown in FIG. 14 can be used to encode two E atoms followed by eight N atoms. If for some reason it was determined at this point that a change in compression scheme was appropriate, and in particular compression protocol 2 was to be selected as identified by the change message 0x02, then it can be seen that the following two bytes may actually have exactly the same two bit patterns as the two bytes used when employing protocol 1, but now encode two N atoms followed by another two N atoms, the first byte using format 1 and the second byte using format 2 of protocol 2.
  • the trace circuitry can dynamically adapt the compression scheme to one of a chosen set. To do this, it may either compare multiple techniques simultaneously, choosing the one that is perceived to provide the best compression, or alternatively over a small test segment may try multiple different techniques and then settle on the one perceived to provide the best compression.
  • the trace analysing tool can be used to analyse the trace output and determine the best compression technique, and then generate a select signal used to switch the compression scheme applied by the trace circuitry.
  • the trace analysing tool can analyse the trace output and determine a more optimal compression scheme and then re-program configurable compression circuitry within the trace circuitry so as to then employ that compression scheme for future packets generated by the trace circuitry.
  • the trace circuitry can be arranged to indicate which compression scheme is being used by inclusion of a change compression byte within the trace stream so that the logic responsible for decompressing the trace stream can dynamically adapt to the new compression scheme.
  • the overall size of the bit patterns can be made significantly smaller than if all of those meanings were to be supported in one compression protocol, and hence this significantly reduces the overall trace bandwidth over and above the reductions achieved directly by the use of the different compression schemes.
  • this can give rise to a requirement for less on-chip storage, less off-chip storage, and fewer pins for transmitting trace off-chip.
  • the program code could be instrumented to hint to the trace circuitry what compression scheme should be used, based on the code that is known to follow. Such hints could for example be inserted into the code by a compiler.
  • the above-mentioned compression scheme switching mechanisms could be used to coarsely turn off some compression techniques.
  • the time and space complexity of the decompression algorithm may be such that it is not feasible to integrate hardware based decompression or to integrate a processor which can perform a sufficient number of operations to execute the algorithm in software to meet the performance requirements of the system.
  • the compression scheme switching mechanism could be used to coarsely disable some compression techniques in order to reduce the time complexity or the space complexity or the decompression algorithm.
US12/232,999 2007-09-28 2008-09-26 Techniques for generating a trace stream for a data processing apparatus Active 2029-07-11 US7962664B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0719043A GB2453174B (en) 2007-09-28 2007-09-28 Techniques for generating a trace stream for a data processing apparatus
GB0719043.2 2007-09-28

Publications (2)

Publication Number Publication Date
US20090089626A1 US20090089626A1 (en) 2009-04-02
US7962664B2 true US7962664B2 (en) 2011-06-14

Family

ID=38701896

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/232,999 Active 2029-07-11 US7962664B2 (en) 2007-09-28 2008-09-26 Techniques for generating a trace stream for a data processing apparatus

Country Status (4)

Country Link
US (1) US7962664B2 (zh)
JP (1) JP2009087343A (zh)
CN (1) CN101398782B (zh)
GB (1) GB2453174B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090222796A1 (en) * 2008-02-29 2009-09-03 International Business Machines Corporation Viral trace
US20100299564A1 (en) * 2008-02-04 2010-11-25 Noriaki Suzuki Trace/failure observation system, trace/failure observation method, and trace/failure observation program
US20150149746A1 (en) * 2013-11-26 2015-05-28 Fujitsu Limited Arithmetic processing device, information processing device, and a method of controlling the information processing device
US10013200B1 (en) * 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
US10055161B1 (en) 2014-03-31 2018-08-21 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2481380B (en) * 2010-06-21 2018-05-16 Advanced Risc Mach Ltd Correlating trace data streams
US9348688B2 (en) 2010-06-21 2016-05-24 Arm Limited Correlating trace data streams
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
JP5636816B2 (ja) * 2010-08-25 2014-12-10 富士ゼロックス株式会社 再構成可能演算回路及びプログラム
JP5606261B2 (ja) * 2010-10-19 2014-10-15 三菱電機株式会社 デバッグシステムおよびデバッグシステムのトレースデータ取得方法
US10642709B2 (en) * 2011-04-19 2020-05-05 Microsoft Technology Licensing, Llc Processor cache tracing
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US8724693B2 (en) * 2012-05-11 2014-05-13 Oracle International Corporation Mechanism for automatic network data compression on a network connection
US9575871B2 (en) * 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
GB2507049A (en) * 2012-10-16 2014-04-23 Ibm Synchronizing Trace Data
JP6284643B2 (ja) 2013-12-02 2018-02-28 キューベース リミテッド ライアビリティ カンパニー 非構造化テキストにおける特徴の曖昧性除去方法
US9201744B2 (en) 2013-12-02 2015-12-01 Qbase, LLC Fault tolerant architecture for distributed computing systems
US9336280B2 (en) 2013-12-02 2016-05-10 Qbase, LLC Method for entity-driven alerts based on disambiguated features
CN106462575A (zh) 2013-12-02 2017-02-22 丘贝斯有限责任公司 群集内存数据库的设计及实现
US9542477B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Method of automated discovery of topics relatedness
US9544361B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Event detection through text analysis using dynamic self evolving/learning module
US9424294B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Method for facet searching and search suggestions
US9348573B2 (en) 2013-12-02 2016-05-24 Qbase, LLC Installation and fault handling in a distributed system utilizing supervisor and dependency manager nodes
US9355152B2 (en) 2013-12-02 2016-05-31 Qbase, LLC Non-exclusionary search within in-memory databases
US9223833B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Method for in-loop human validation of disambiguated features
US9922032B2 (en) 2013-12-02 2018-03-20 Qbase, LLC Featured co-occurrence knowledge base from a corpus of documents
US9317565B2 (en) 2013-12-02 2016-04-19 Qbase, LLC Alerting system based on newly disambiguated features
US9230041B2 (en) 2013-12-02 2016-01-05 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
US9619571B2 (en) 2013-12-02 2017-04-11 Qbase, LLC Method for searching related entities through entity co-occurrence
US9547701B2 (en) 2013-12-02 2017-01-17 Qbase, LLC Method of discovering and exploring feature knowledge
US9223875B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Real-time distributed in memory search architecture
US9025892B1 (en) * 2013-12-02 2015-05-05 Qbase, LLC Data record compression with progressive and/or selective decomposition
US9208204B2 (en) 2013-12-02 2015-12-08 Qbase, LLC Search suggestions using fuzzy-score matching and entity co-occurrence
US9659108B2 (en) 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
US9424524B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Extracting facts from unstructured text
US9177262B2 (en) 2013-12-02 2015-11-03 Qbase, LLC Method of automated discovery of new topics
US9984427B2 (en) 2013-12-02 2018-05-29 Qbase, LLC Data ingestion module for event detection and increased situational awareness
WO2015084726A1 (en) 2013-12-02 2015-06-11 Qbase, LLC Event detection through text analysis template models
US9361317B2 (en) 2014-03-04 2016-06-07 Qbase, LLC Method for entity enrichment of digital content to enable advanced search functionality in content management systems
GB201410028D0 (en) * 2014-06-05 2014-07-16 Soletanche Freyssinet Sas Spectral data compression
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
CN104700231A (zh) * 2015-03-27 2015-06-10 福州大学 基于用户行为的桌面屏幕审计方法
US20170249146A1 (en) * 2016-02-29 2017-08-31 Qualcomm Incorporated Bandwidth reduction for instruction tracing
GB2551574B (en) * 2016-06-24 2019-11-27 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
KR102538258B1 (ko) * 2016-07-25 2023-05-31 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 처리 시스템
GB2553582B (en) * 2016-09-13 2020-07-08 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
GB2558955B (en) * 2017-01-24 2020-12-23 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of execution of predicated vector memory access instructions
JP2019109821A (ja) 2017-12-20 2019-07-04 ルネサスエレクトロニクス株式会社 トレースデータ圧縮方式選定装置、方法、及びプログラム
GB2570512B (en) * 2018-01-30 2020-04-22 Advanced Risc Mach Ltd An apparatus and method for aligning corresponding elements in multiple streams of elements
CN110727603A (zh) * 2019-10-25 2020-01-24 重庆誉存大数据科技有限公司 一种基于ui自动化测试定位元素的改进方法
WO2022077388A1 (zh) * 2020-10-15 2022-04-21 华为技术有限公司 一种处理器的安全度量装置及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0316609A2 (en) 1987-11-20 1989-05-24 Kabushiki Kaisha Toshiba Integrated circuit with built-in trace data collecting circuit
JP2002207245A (ja) 2001-01-11 2002-07-26 Konica Corp 撮影装置
US20020178405A1 (en) 2002-03-11 2002-11-28 "American Arium" Trace reporting method and system
US20040103216A1 (en) * 2002-11-26 2004-05-27 Lane Richard D. System and method for optimizing multimedia compression using plural encoders
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
US20070298788A1 (en) * 2002-10-15 2007-12-27 Corson Mathew S Profile modification for roaming in a communications environment
US20080256396A1 (en) * 2007-04-11 2008-10-16 Louis Achille Giannini Inter-thread trace alignment method and system for a multi-threaded processor
US20090154545A1 (en) * 2001-02-13 2009-06-18 Realtime Data Llc Bandwidth sensitive data compression and decompression

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3231105B2 (ja) * 1992-11-30 2001-11-19 富士通株式会社 データ符号化方式及びデータ復元方式
JPH0944423A (ja) * 1995-07-28 1997-02-14 Toshiba Corp 計算機システム
JPH09325903A (ja) * 1996-04-01 1997-12-16 Mitsubishi Electric Corp 障害記録方式
JP3578885B2 (ja) * 1997-04-23 2004-10-20 日本電信電話株式会社 メッセージ通信方式
JP2000207245A (ja) * 1999-01-12 2000-07-28 Matsushita Electric Ind Co Ltd インサ―キットエミュレ―タ
JP2001005635A (ja) * 1999-06-23 2001-01-12 Sony Corp 情報処理装置及び方法、並びに媒体
AU2002327599A1 (en) * 2001-08-29 2003-03-18 Analog Devices, Inc. Generic serial port architecture and system
JP4533682B2 (ja) * 2004-06-29 2010-09-01 株式会社東芝 トレース解析装置およびトレース解析方法
JP2007065828A (ja) * 2005-08-30 2007-03-15 Keiichi Aoki 通信データ圧縮方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0316609A2 (en) 1987-11-20 1989-05-24 Kabushiki Kaisha Toshiba Integrated circuit with built-in trace data collecting circuit
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
JP2002207245A (ja) 2001-01-11 2002-07-26 Konica Corp 撮影装置
US20090154545A1 (en) * 2001-02-13 2009-06-18 Realtime Data Llc Bandwidth sensitive data compression and decompression
US20020178405A1 (en) 2002-03-11 2002-11-28 "American Arium" Trace reporting method and system
US20070298788A1 (en) * 2002-10-15 2007-12-27 Corson Mathew S Profile modification for roaming in a communications environment
US20040103216A1 (en) * 2002-11-26 2004-05-27 Lane Richard D. System and method for optimizing multimedia compression using plural encoders
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
US20080256396A1 (en) * 2007-04-11 2008-10-16 Louis Achille Giannini Inter-thread trace alignment method and system for a multi-threaded processor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Crowley et al. , Dynamic Compression During System Save Operatiosn, May 1, 1994, IBM Technical Disclosure Bulletin, pp. 1-3. *
Search Report for GB 0719043.2 dated Jan. 11, 2008.

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299564A1 (en) * 2008-02-04 2010-11-25 Noriaki Suzuki Trace/failure observation system, trace/failure observation method, and trace/failure observation program
US8799753B2 (en) * 2008-02-04 2014-08-05 Nec Corporation Trace/failure observation system, trace/failure observation method, and trace/failure observation program
US20090222796A1 (en) * 2008-02-29 2009-09-03 International Business Machines Corporation Viral trace
US9098625B2 (en) * 2008-02-29 2015-08-04 International Business Machines Corporation Viral trace
US20150149746A1 (en) * 2013-11-26 2015-05-28 Fujitsu Limited Arithmetic processing device, information processing device, and a method of controlling the information processing device
US10055161B1 (en) 2014-03-31 2018-08-21 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US10783078B1 (en) 2014-03-31 2020-09-22 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US10013200B1 (en) * 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes

Also Published As

Publication number Publication date
GB2453174B (en) 2011-12-07
US20090089626A1 (en) 2009-04-02
CN101398782A (zh) 2009-04-01
GB0719043D0 (en) 2007-11-07
GB2453174A (en) 2009-04-01
CN101398782B (zh) 2012-11-28
JP2009087343A (ja) 2009-04-23

Similar Documents

Publication Publication Date Title
US7962664B2 (en) Techniques for generating a trace stream for a data processing apparatus
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
US20240020134A1 (en) Overflow detection and correction in state machine engines
TWI416316B (zh) 用於產生資料處理設備之追蹤串流的技術
KR101365121B1 (ko) 멀티코어 아키텍쳐의 디버그
CN110007961B (zh) 一种基于risc-v的边缘计算硬件架构
US20150347255A1 (en) Debug in a Multicore Architecture
US7149933B2 (en) Data processing system trace bus
US7710969B2 (en) Rapid I/O traffic system
US9703669B2 (en) Apparatus and method for distributed instruction trace in a processor system
US7552363B2 (en) Generation of trace elements within a data processing apparatus
JP2002024201A (ja) 半導体集積回路
JP2023100844A (ja) 集積回路のためのロジックアナライザ
US9710349B2 (en) Storing first computer trace information in memory of second computer
US7512773B1 (en) Context switching using halt sequencing protocol
US10289527B2 (en) Tracing of exception handling events
US20070265822A1 (en) Data processing system and method
US20060282719A1 (en) Unique Addressable Memory Data Path
JP2013015985A (ja) マルチコアプロセッサのすべてのプロセッサコアの実行トレースダンプが可能なsocデバイス
US20060256878A1 (en) Out of Order Message Completion Management
US20070294590A1 (en) Compression scheme to reduce the bandwidth requirements for continuous trace stream encoding of system performance
US20070271046A1 (en) Scheme for improving bandwidth by identifying specific fixed pattern sequences as header encoding followed by the pattern count
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
CN117724664A (zh) 数据写入方法、装置、设备及存储介质
US20060256876A1 (en) Fast Decode of Pending Interrupts

Legal Events

Date Code Title Description
AS Assignment

Owner name: ARM LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOTCH, PAUL;HORLEY, JOHN;REEL/FRAME:021675/0040

Effective date: 20080903

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12