US7577876B2 - Debug system for data tracking - Google Patents

Debug system for data tracking Download PDF

Info

Publication number
US7577876B2
US7577876B2 US11/169,208 US16920805A US7577876B2 US 7577876 B2 US7577876 B2 US 7577876B2 US 16920805 A US16920805 A US 16920805A US 7577876 B2 US7577876 B2 US 7577876B2
Authority
US
United States
Prior art keywords
processing device
data
code
state information
control
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.)
Expired - Fee Related, expires
Application number
US11/169,208
Other versions
US20070011517A1 (en
Inventor
Douglas G. Boyce
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to US11/169,208 priority Critical patent/US7577876B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BOYCE, DOUGLAS G.
Publication of US20070011517A1 publication Critical patent/US20070011517A1/en
Application granted granted Critical
Publication of US7577876B2 publication Critical patent/US7577876B2/en
Expired - Fee Related 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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits

Definitions

  • the In-Target Probe (ITP) run-time control tool is used to test functional silicon devices. More specifically, the ITP tool provides examination and manipulation of an architectural state, system memory access, software debugging, chipset resource access, as well as root-cause platform routing and signal integrity evaluations.
  • the ITP tool suite may provide such analysis by attempting to manually correlate a logic state either from a post-failure analysis of stored data from internal registers, memories and Joint Test Access Group (JTAG) scan elements, or by inferring from an execution state as observed from a front-side address, data and control bus.
  • JTAG Joint Test Access Group
  • a logic analyzer may be coupled to the ITP tool in order to improve the quality of an integrated hardware and software test.
  • the logic analyzer may present all data that is transmitted over the front-side bus during operation of the device. Such an approach is prohibitively expensive for almost all envisioned usage scenarios. Moreover, this approach is often unsuitably inefficient due to the large ratio of presented data to relevant data.
  • Other testing approaches include emitting specific data onto the front side bus using special transactions, writing data to special memory locations for post-test extraction, or writing data to a byte location on the device known as “port 80”.
  • the complexity of target devices continues to increase despite the foregoing limitations in testing systems.
  • the increased complexity may be manifested in many ways, including but not limited to an increased number of processing units one die and a reduction of meaningful coherency between internal execution data and front side bus data.
  • the increasing complexity of target devices and limitations in conventional testing systems present difficult challenges to the low-level software developer.
  • FIG. 1 is a diagram of a system according to some embodiments.
  • FIG. 2 is a flow diagram of a method according to some embodiments.
  • FIG. 3 is a block diagram of a system according to some embodiments.
  • FIG. 4 is a flow diagram of a method according to some embodiments.
  • FIG. 1 is a block diagram of system 100 according to some embodiments.
  • System 100 includes debug platform 110 and device under test (DUT) 120 .
  • Debug platform 110 may operate to debug and/or otherwise test DUT 120 .
  • debug platform 110 configures an internal monitoring mechanism of DUT 120 to output first data associated with a predetermined operational state of DUT 120 , and loads control code into DUT 120 .
  • the control code is executable by DUT 120 to output second data associated with input operations and exceptions that occur during execution of test code by DUT 120 . Details of the foregoing process according to some embodiments will be provided below.
  • Debug platform 110 may comprise any combination of hardware and/or software elements, including elements located remotely from one another. As illustrated, such elements compose host 112 and debug tool 116 .
  • Host 112 may comprise a desktop computer or any other suitable system to control a debug/test procedure.
  • Host 112 includes processor 113 , which comprises a Pentium®-class microprocessor in some embodiments, and memory 114 , which may comprise any suitable memory element to store code for execution by processor 113 .
  • Such memory elements may include, but are not limited to, Single Data Rate Random Access Memory and Double Data Rate Random Access Memory. Execution of the code may cause platform 110 to perform actions attributed herein thereto.
  • Host 112 may also include unillustrated elements necessary for operation thereof. Such elements may include input devices, output devices, communication ports, hard drive storage, application software, operating system software, and device drivers.
  • host 112 may store a testing application for performing the methods described herein, and may store data received during the tests in an internal hard drive.
  • host 112 may also store a Real-Time Logic (RTL) simulator to recreate operation of DUT 120 based on the aforementioned received data.
  • RTL Real-Time Logic
  • Host 112 is shown in communication with debug tool 116 .
  • Debug tool 116 may provide host 112 with hardware and/or software interfaces to DUT 120 .
  • debug tool 116 may allow host 112 to configure internal monitoring mechanisms of DUT 120 and may pass data issued by the thusly-configured mechanisms to host 112 .
  • Debug tool 116 may also provide an ability to load control code, or “patches”, onto DUT 120 .
  • DUT 120 may execute the control code to output data associated with input operations and exceptions that occur during execution of test code by DUT 120 . This latter data may also be passed from debug tool 116 to host 112 .
  • Debug tool 116 comprises debug port 117 and debug port 118 , each of which is in communication with DUT 120 according to the illustrated embodiment.
  • Each of debug ports 117 and 118 may comply with one or more design specifications associated with an ITP tool.
  • Debug port 117 and debug port 118 may share one or more hardware or software elements or may comprise entirely separate systems.
  • Debug ports 117 and 118 may be housed in a same or in separate physical units.
  • FIG. 1 illustrates a single link between host 112 and debug tool 116 , one or more signal paths of the link may be dedicated to one of debug port 117 and/or debug port 118 .
  • DUT 120 may comprise one or more processing devices, including but not limited to Central Processing Units, and processor cores. DUT 120 may also include a processing device such as a cache structure and an Arithmetic Logic Unit. According to some embodiments, DUT 120 includes internal mechanisms for monitoring states of DUT 120 . Such mechanisms may comprise event monitoring logic and registers for implementing such event monitoring.
  • DUT 120 may include any number of features for facilitating testing thereof.
  • DUT 120 may allow platform 110 to load patch code therein.
  • the patch code may cause DUT 120 to report specific data to debut tool 116 via an auxiliary port.
  • DUT 120 may include JTAG scan chains that may be controlled by debug ports 117 or 118 to shift data in and out of internal processing nodes of DUT 120 .
  • systems “in communication” with one another are directly or indirectly capable of communicating over any number of different systems for transferring data, including but not limited to a local area network, a wide area network, a telephone network, a cellular network, a fiber-optic network, a satellite network, an infrared network, a radio frequency network, and any other type of network that may be used to transmit information between devices.
  • communication between systems may proceed over any one or more currently or hereafter-known transmission protocols, such as Asynchronous Transfer Mode (ATM), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP) and Wireless Application Protocol (WAP).
  • ATM Asynchronous Transfer Mode
  • IP Internet Protocol
  • HTTP Hypertext Transfer Protocol
  • WAP Wireless Application Protocol
  • FIG. 2 is a general flow diagram of method 200 that may be performed by any suitable system according to some embodiments, including but not limited to system 100 .
  • Method 200 may therefore be performed by any combination of hardware and/or software existing in any element of system 100 .
  • Some embodiments of method 200 may be practiced in any order that is practicable.
  • An internal monitoring mechanism of a processing device is configured at 210 to output first data associated with a predetermined operational state of the processing device.
  • debug platform 110 may configure an internal monitoring mechanism of DUT 120 at 210 by transmitting event monitoring signals to DUT 120 .
  • the event monitoring signals may configure DUT 120 to monitor for any event that DUT 120 is capable of monitoring, and may specify a number of times the event is to occur (i.e., a count) before debug platform 110 is notified.
  • the event monitoring signals may comprise breakpoint monitoring (BPM) signals.
  • BPM breakpoint monitoring
  • control code is loaded into the processing device.
  • the code is executable by the processing device to output second data associated with input operations and exceptions that occur during execution of test code.
  • debug platform 110 may modify a patch code area of DUT 120 to load control code according to some embodiments of 220 . Any other native control mechanism for loading patch code into DUT 120 may be utilized.
  • the first data and second data mentioned with respect to method 200 may be received and/or otherwise collected by debug tool 110 in some embodiments.
  • the data may be used to debug a fault represented by the data or for any other suitable purpose.
  • FIG. 3 is a block diagram illustrating the internal architecture of various elements of system 300 according to some embodiments.
  • System 300 comprises debug port 310 , debug port 320 , Central Processing Units (CPUs) 330 through 360 , and debug ring 370 .
  • Debug ports 310 and 320 may comprise instantiations of debug ports 117 and 118 according to some embodiments, while CPUs 330 through 360 may operate as described with respect to DUT 120 above.
  • System 300 may perform method 200 according to some embodiments.
  • Debug port 310 may comprise any combination of hardware and/or software suitable to perform the functions described herein.
  • Debug port 310 comprises a Field-Programmable Gate Array (FPGA) according to some embodiments. Such an FPGA may be supported with appropriate hardware and software interfaces to elements that are connected thereto.
  • FPGA Field-Programmable Gate Array
  • Debug port 310 includes controller 311 to execute program code for controlling other elements of debug port 310 .
  • controller 311 may receive data from bus 312 and may control the transfer of the data to trace memory 313 .
  • Trace memory may also store the aforementioned program code.
  • Controller 311 may control timing interfaces 314 and 315 to provide interoperation with debug port 320 as will be described below.
  • Logic Analyzer interface 316 may also receive the data from bus 312 and output the data to a logic analyzer (not shown) under control of controller 311 .
  • a logic analyzer for hardware testing can be expensive and quite inefficient due to the large ratio of presented data to relevant data.
  • data from bus 312 is also received by a host such as host 112 of FIG. 1 .
  • Controller 311 may receive timing signals from elements 317 .
  • Elements 317 are labeled BPM 4 , 5 because the timing signals received thereby correspond to breakpoint monitoring signals issued by one or more of CPUs 330 through 360 .
  • the breakpoint monitoring signals in turn correspond to front-side bus data received by Observation and Control Port (OCP) 318 .
  • OCP Observation and Control Port
  • JTAG handler 319 provides debug port 310 with known JTAG functionality.
  • debug port 310 may execute JTAG handler 319 to stop processor execution, to query processor logic, and to issue an instruction.
  • Some embodiments provide one or more additional or alternative serial protocol ports including but not limited to an Inter-Integrated Circuit (I 2 C) port and a proprietary serial port.
  • I 2 C Inter-Integrated Circuit
  • the front-side bus data comprises 16 I/O channels and is received from debug ring 370 .
  • Debug ring 370 comprises a 72-bit configurable state machine according to some embodiments.
  • Debug ring 370 may comprise an Intel NorthbridgeTM chip for supporting front-side bus communication.
  • Some embodiments of system 300 may utilize an entirely different element for debug ring 370 , and/or may eliminate debug ring 370 altogether.
  • Debug ring 370 is coupled to respective front-side busses and breakpoint monitoring signals of CPUs 330 through 360 .
  • CPUs 330 through 360 may support internal monitoring mechanisms that may be used to collect data associated with the occurrence of selected operational states, or events.
  • CPUs 330 through 360 support Model Specific Registers (MSRs) that include performance monitoring registers. These latter registers may include a time stamp counter register, a control and event select register, and two programmable event counters.
  • MSRs Model Specific Registers
  • Some Intel PentiumTM processors are capable of monitoring thirty-eight different events in each performance monitoring register. Some events are counted per occurrence, and counts for others are incremented for each clock cycle during which a particular condition is true.
  • Observation signal lines of CPUs 330 through 360 are coupled to debug port 320 .
  • the observation signal lines comprise BPM signal lines.
  • Debug port 320 may thereby receive data from CPUs 330 through 360 that relate to monitored events.
  • debug port 320 may receive data from instruction-based registers of CPU 330 in response to a detected event of CPU 330 .
  • the observation signal lines are coupled to OCP 328 of debug port 320 . Accordingly, bus 322 may carry the received data to Logic Analyzer I/O 326 and to trace memory 323 . Such data may also be transmitted from port 320 to a host (not shown). Elements 327 of debug port 320 are also coupled to BPM signals of CPUs 330 through 360 in order to control the execution state thereof. Other elements of debug port 320 function similarly as described above with respect to similarly-numbered elements of debug port 310 .
  • FIG. 4 is a flow diagram of method 400 according to some embodiments.
  • Method 400 may be executed by any configuration of hardware and/or software that is or becomes known.
  • An example of method 400 will be provided below with reference to system 100 , where debug tool 116 is implemented by debug ports 310 and 320 of system 300 .
  • method 400 may be performed by host 112 , by debug ports 310 and 320 under control of host 112 , and/or by debug ports 310 and 320 in response to locally-executed code.
  • Test code execution by a processing device is initiated at 405 .
  • Any suitable system for initiating the execution of code may be employed at 405 .
  • debug port 310 invokes JTAG handler 319 to commence execution of test code by CPUs 330 through 360 .
  • JTAG handler 319 may comprise a serial protocol bus (e.g., a JTAG bus) to access internal state and operational resources of the processing devices, to observe a state of the resources, and to collect retained data values. Such execution may be initiated after JTAG handler 319 has previously placed the processing devices in a quiescent state.
  • debug port 310 may invoke JTAG handler 319 at 410 to cause a quiescent break in CPUs 330 through 360 , and to instruct CPUs 330 through 360 at 415 to report out their instruction-based registers via their BPM pins.
  • the state information dump may be implemented using native code and/or a microcode patch according to some embodiments.
  • monitoring logic of the processing device is configured to report one or more predetermined events.
  • the predetermined event(s) may correspond to one or more operational states of the processing device.
  • debug tool 116 configures monitoring logic of CPUs 330 through 360 at 420 by transmitting appropriate BPM signals thereto so as to set values of the aforementioned MSRs. Such configuration instructs CPUs 330 through 360 to output data associated with an operational state that corresponds to the configured registers.
  • configuring the monitoring logic may also or alternatively comprise configuring a debug ring to monitor the one or more of CPUs 330 through 360 for occurrence of the event.
  • configuring the monitoring logic may comprise one or more of forcing control sequence actions in the processing device, causing an execution change in the processing device, and directly modifying code running in the processing device.
  • the event (i.e, operational state) may be determined based on the state information dump received at 415 .
  • key indicators may be determined from the state information dump.
  • the key indicators may correspond to one or more operational states of CPUs 330 through 360 .
  • the monitoring mechanism is configured at 420 to output data associated with the operational state to which the key indicators correspond.
  • Control code is loaded into the processing device at 425 .
  • the code is executable by the processing device to output second data associated with input operations and exceptions that occur during execution of test code.
  • the control code may be loaded using any native mechanism provided by the processing device for doing so.
  • the control code is loaded into a microcode Read Only Memory of the processing device, or into a microcode patch area provided by the device.
  • the processing device is then controlled at 430 to execute the test code.
  • This control may comprise invocation of a handler as described with respect to 405 .
  • the processing device outputs the first data and the second data described above based on the configured monitoring logic and the control code, respectively.
  • the first data may be output from BPM pins of the processing device, while the second data may be output from an auxiliary port (e.g., OCP) associated with the processing device.
  • auxiliary port e.g., OCP
  • the reported information (i.e., the first data and the second data) is received at 435 . It is then determined, at 440 , whether a fault has occurred based on the received information. Any system for identifying a fault may be used at 440 . According to some implementations, the predetermined event and loaded control code are intended to generate outputs from which a fault may be easily determined.
  • flow returns to 435 to continue receipt of any of the first data and second data output by the processing device. Flow therefore cycles between 435 and 440 while the processing device executes test code and until a fault is determined at 440 .
  • a state information dump is received at 445 once a fault is determined at 440 .
  • some embodiments of 445 comprise invoking JTAG handler 319 of debug port 310 to cause a quiescent break in CPUs 330 through 360 , and invoking JTAG handler 319 to instruct CPUs 330 through 360 to report out their instruction-based registers via their BPM pins.
  • Other currently- or hereafter-known systems to receive a state information dump may be implemented in some embodiments.
  • the configured monitoring logic and/or the control code should be changed or “tuned”.
  • the determination may be based on one or more of the received first data, second data, and state information dump. For example, it may be determined at 450 that a particular fault and/or code segment of interest is not adequately modeled by the received data and dump. Therefore, in order to generate data by which the fault and/or code segment may be better modeled (and therefore more efficiently debugged), it may be determined at 450 that tuning is required.
  • some embodiments provide for tuning of the monitoring logic configuration without also requiring tuning of the control code.
  • Flow proceeds to 455 if it is determined at 450 that no tuning is required.
  • the execution of the test code is replayed using a Real-Time Logic (RTL) simulator.
  • RTL Real-Time Logic
  • processor 113 of host 112 executes an RTL simulator using the received first data, second data and state information dump as inputs.
  • Host 112 may prune the received data prior to executing the RTL simulator according to pruning techniques that are or become known.
  • Some embodiments may provide the first and second data and the state information dump in standardized formats (e.g., MicroSim CMD format and JumpStart format, respectively) suitable for input to the RTL simulator.
  • Some embodiments of the foregoing provide flexible and low cost data tracking using existing pins that are not part of a target system's native operation. Moreover, some embodiments may reduce the level of inference required for debugging by the above-described targeted data collection.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Some embodiments provide configuration of an internal monitoring mechanism of a processing device to output first data associated with a predetermined operational state of the processing device, and loading of control code into the processing device. The control code may be executable by the processing device to output second data associated with input operations and exceptions that occur during execution of test code by the processing device.

Description

BACKGROUND
The In-Target Probe (ITP) run-time control tool is used to test functional silicon devices. More specifically, the ITP tool provides examination and manipulation of an architectural state, system memory access, software debugging, chipset resource access, as well as root-cause platform routing and signal integrity evaluations. The ITP tool suite may provide such analysis by attempting to manually correlate a logic state either from a post-failure analysis of stored data from internal registers, memories and Joint Test Access Group (JTAG) scan elements, or by inferring from an execution state as observed from a front-side address, data and control bus. The foregoing approach often does not provide suitable and/or efficient observation of events within a target device, particularly within the debug time span.
A logic analyzer may be coupled to the ITP tool in order to improve the quality of an integrated hardware and software test. The logic analyzer may present all data that is transmitted over the front-side bus during operation of the device. Such an approach is prohibitively expensive for almost all envisioned usage scenarios. Moreover, this approach is often unsuitably inefficient due to the large ratio of presented data to relevant data. Other testing approaches include emitting specific data onto the front side bus using special transactions, writing data to special memory locations for post-test extraction, or writing data to a byte location on the device known as “port 80”.
The complexity of target devices continues to increase despite the foregoing limitations in testing systems. The increased complexity may be manifested in many ways, including but not limited to an increased number of processing units one die and a reduction of meaningful coherency between internal execution data and front side bus data. The increasing complexity of target devices and limitations in conventional testing systems present difficult challenges to the low-level software developer.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram of a system according to some embodiments.
FIG. 2 is a flow diagram of a method according to some embodiments.
FIG. 3 is a block diagram of a system according to some embodiments.
FIG. 4 is a flow diagram of a method according to some embodiments.
DETAILED DESCRIPTION
FIG. 1 is a block diagram of system 100 according to some embodiments. System 100 includes debug platform 110 and device under test (DUT) 120. Debug platform 110 may operate to debug and/or otherwise test DUT 120. In some embodiments, debug platform 110 configures an internal monitoring mechanism of DUT 120 to output first data associated with a predetermined operational state of DUT 120, and loads control code into DUT 120. The control code is executable by DUT 120 to output second data associated with input operations and exceptions that occur during execution of test code by DUT 120. Details of the foregoing process according to some embodiments will be provided below.
Debug platform 110 may comprise any combination of hardware and/or software elements, including elements located remotely from one another. As illustrated, such elements compose host 112 and debug tool 116.
Host 112 may comprise a desktop computer or any other suitable system to control a debug/test procedure. Host 112 includes processor 113, which comprises a Pentium®-class microprocessor in some embodiments, and memory 114, which may comprise any suitable memory element to store code for execution by processor 113. Such memory elements may include, but are not limited to, Single Data Rate Random Access Memory and Double Data Rate Random Access Memory. Execution of the code may cause platform 110 to perform actions attributed herein thereto.
Host 112 may also include unillustrated elements necessary for operation thereof. Such elements may include input devices, output devices, communication ports, hard drive storage, application software, operating system software, and device drivers. For example, host 112 may store a testing application for performing the methods described herein, and may store data received during the tests in an internal hard drive. According to some embodiments, host 112 may also store a Real-Time Logic (RTL) simulator to recreate operation of DUT 120 based on the aforementioned received data.
Host 112 is shown in communication with debug tool 116. Debug tool 116 may provide host 112 with hardware and/or software interfaces to DUT 120. For example, debug tool 116 may allow host 112 to configure internal monitoring mechanisms of DUT 120 and may pass data issued by the thusly-configured mechanisms to host 112. Debug tool 116 may also provide an ability to load control code, or “patches”, onto DUT 120. DUT 120 may execute the control code to output data associated with input operations and exceptions that occur during execution of test code by DUT 120. This latter data may also be passed from debug tool 116 to host 112.
Debug tool 116 comprises debug port 117 and debug port 118, each of which is in communication with DUT 120 according to the illustrated embodiment. Each of debug ports 117 and 118 may comply with one or more design specifications associated with an ITP tool. Debug port 117 and debug port 118 may share one or more hardware or software elements or may comprise entirely separate systems. Debug ports 117 and 118 may be housed in a same or in separate physical units. Although FIG. 1 illustrates a single link between host 112 and debug tool 116, one or more signal paths of the link may be dedicated to one of debug port 117 and/or debug port 118.
DUT 120 may comprise one or more processing devices, including but not limited to Central Processing Units, and processor cores. DUT 120 may also include a processing device such as a cache structure and an Arithmetic Logic Unit. According to some embodiments, DUT 120 includes internal mechanisms for monitoring states of DUT 120. Such mechanisms may comprise event monitoring logic and registers for implementing such event monitoring.
DUT 120 may include any number of features for facilitating testing thereof. For example, DUT 120 may allow platform 110 to load patch code therein. The patch code may cause DUT 120 to report specific data to debut tool 116 via an auxiliary port. DUT 120 may include JTAG scan chains that may be controlled by debug ports 117 or 118 to shift data in and out of internal processing nodes of DUT 120.
As used herein, systems “in communication” with one another are directly or indirectly capable of communicating over any number of different systems for transferring data, including but not limited to a local area network, a wide area network, a telephone network, a cellular network, a fiber-optic network, a satellite network, an infrared network, a radio frequency network, and any other type of network that may be used to transmit information between devices. Moreover, communication between systems may proceed over any one or more currently or hereafter-known transmission protocols, such as Asynchronous Transfer Mode (ATM), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP) and Wireless Application Protocol (WAP).
FIG. 2 is a general flow diagram of method 200 that may be performed by any suitable system according to some embodiments, including but not limited to system 100. Method 200 may therefore be performed by any combination of hardware and/or software existing in any element of system 100. Some embodiments of method 200 may be practiced in any order that is practicable.
An internal monitoring mechanism of a processing device is configured at 210 to output first data associated with a predetermined operational state of the processing device. Referring to FIG. 1 by way of example, debug platform 110 may configure an internal monitoring mechanism of DUT 120 at 210 by transmitting event monitoring signals to DUT 120. The event monitoring signals may configure DUT 120 to monitor for any event that DUT 120 is capable of monitoring, and may specify a number of times the event is to occur (i.e., a count) before debug platform 110 is notified. The event monitoring signals may comprise breakpoint monitoring (BPM) signals. A more detailed example of event monitoring according to some embodiments will be provided below.
Next, at 220, control code is loaded into the processing device. The code is executable by the processing device to output second data associated with input operations and exceptions that occur during execution of test code. Again turning to FIG. 1, debug platform 110 may modify a patch code area of DUT 120 to load control code according to some embodiments of 220. Any other native control mechanism for loading patch code into DUT 120 may be utilized.
The first data and second data mentioned with respect to method 200 may be received and/or otherwise collected by debug tool 110 in some embodiments. The data may be used to debug a fault represented by the data or for any other suitable purpose.
FIG. 3 is a block diagram illustrating the internal architecture of various elements of system 300 according to some embodiments. System 300 comprises debug port 310, debug port 320, Central Processing Units (CPUs) 330 through 360, and debug ring 370. Debug ports 310 and 320 may comprise instantiations of debug ports 117 and 118 according to some embodiments, while CPUs 330 through 360 may operate as described with respect to DUT 120 above. System 300 may perform method 200 according to some embodiments.
Debug port 310 may comprise any combination of hardware and/or software suitable to perform the functions described herein. Debug port 310 comprises a Field-Programmable Gate Array (FPGA) according to some embodiments. Such an FPGA may be supported with appropriate hardware and software interfaces to elements that are connected thereto.
Debug port 310 includes controller 311 to execute program code for controlling other elements of debug port 310. For example, controller 311 may receive data from bus 312 and may control the transfer of the data to trace memory 313. Trace memory may also store the aforementioned program code. Controller 311 may control timing interfaces 314 and 315 to provide interoperation with debug port 320 as will be described below.
Logic Analyzer interface 316 may also receive the data from bus 312 and output the data to a logic analyzer (not shown) under control of controller 311. As mentioned above, use of a logic analyzer for hardware testing can be expensive and quite inefficient due to the large ratio of presented data to relevant data. In some embodiments, data from bus 312 is also received by a host such as host 112 of FIG. 1.
Controller 311 may receive timing signals from elements 317. Elements 317 are labeled BPM 4,5 because the timing signals received thereby correspond to breakpoint monitoring signals issued by one or more of CPUs 330 through 360. The breakpoint monitoring signals in turn correspond to front-side bus data received by Observation and Control Port (OCP) 318.
JTAG handler 319 provides debug port 310 with known JTAG functionality. In some embodiments, debug port 310 may execute JTAG handler 319 to stop processor execution, to query processor logic, and to issue an instruction. Some embodiments provide one or more additional or alternative serial protocol ports including but not limited to an Inter-Integrated Circuit (I2C) port and a proprietary serial port.
The front-side bus data comprises 16 I/O channels and is received from debug ring 370. Debug ring 370 comprises a 72-bit configurable state machine according to some embodiments. Debug ring 370 may comprise an Intel Northbridge™ chip for supporting front-side bus communication. Some embodiments of system 300 may utilize an entirely different element for debug ring 370, and/or may eliminate debug ring 370 altogether.
Debug ring 370 is coupled to respective front-side busses and breakpoint monitoring signals of CPUs 330 through 360. In this regard, CPUs 330 through 360 may support internal monitoring mechanisms that may be used to collect data associated with the occurrence of selected operational states, or events. According to some embodiments, CPUs 330 through 360 support Model Specific Registers (MSRs) that include performance monitoring registers. These latter registers may include a time stamp counter register, a control and event select register, and two programmable event counters. Some Intel Pentium™ processors are capable of monitoring thirty-eight different events in each performance monitoring register. Some events are counted per occurrence, and counts for others are incremented for each clock cycle during which a particular condition is true.
Observation signal lines of CPUs 330 through 360 are coupled to debug port 320. In the illustrated embodiment, the observation signal lines comprise BPM signal lines. Debug port 320 may thereby receive data from CPUs 330 through 360 that relate to monitored events. For example, debug port 320 may receive data from instruction-based registers of CPU 330 in response to a detected event of CPU 330.
The observation signal lines are coupled to OCP 328 of debug port 320. Accordingly, bus 322 may carry the received data to Logic Analyzer I/O 326 and to trace memory 323. Such data may also be transmitted from port 320 to a host (not shown). Elements 327 of debug port 320 are also coupled to BPM signals of CPUs 330 through 360 in order to control the execution state thereof. Other elements of debug port 320 function similarly as described above with respect to similarly-numbered elements of debug port 310.
FIG. 4 is a flow diagram of method 400 according to some embodiments. Method 400 may be executed by any configuration of hardware and/or software that is or becomes known. An example of method 400 will be provided below with reference to system 100, where debug tool 116 is implemented by debug ports 310 and 320 of system 300. In this regard, method 400 may be performed by host 112, by debug ports 310 and 320 under control of host 112, and/or by debug ports 310 and 320 in response to locally-executed code.
Test code execution by a processing device is initiated at 405. Any suitable system for initiating the execution of code may be employed at 405. In some embodiments, debug port 310 invokes JTAG handler 319 to commence execution of test code by CPUs 330 through 360. JTAG handler 319 may comprise a serial protocol bus (e.g., a JTAG bus) to access internal state and operational resources of the processing devices, to observe a state of the resources, and to collect retained data values. Such execution may be initiated after JTAG handler 319 has previously placed the processing devices in a quiescent state.
Execution of the test code is stopped at 410, and a dump of state information is received at 415. Continuing with the foregoing example, debug port 310 may invoke JTAG handler 319 at 410 to cause a quiescent break in CPUs 330 through 360, and to instruct CPUs 330 through 360 at 415 to report out their instruction-based registers via their BPM pins. The state information dump may be implemented using native code and/or a microcode patch according to some embodiments.
Next, at 420, monitoring logic of the processing device is configured to report one or more predetermined events. The predetermined event(s) may correspond to one or more operational states of the processing device. According to the FIG. 3 embodiment, debug tool 116 configures monitoring logic of CPUs 330 through 360 at 420 by transmitting appropriate BPM signals thereto so as to set values of the aforementioned MSRs. Such configuration instructs CPUs 330 through 360 to output data associated with an operational state that corresponds to the configured registers.
As illustrated in FIG. 3, configuring the monitoring logic may also or alternatively comprise configuring a debug ring to monitor the one or more of CPUs 330 through 360 for occurrence of the event. According to some embodiments, configuring the monitoring logic may comprise one or more of forcing control sequence actions in the processing device, causing an execution change in the processing device, and directly modifying code running in the processing device.
The event (i.e, operational state) may be determined based on the state information dump received at 415. In particular, key indicators may be determined from the state information dump. The key indicators may correspond to one or more operational states of CPUs 330 through 360. Accordingly, the monitoring mechanism is configured at 420 to output data associated with the operational state to which the key indicators correspond.
Control code is loaded into the processing device at 425. The code is executable by the processing device to output second data associated with input operations and exceptions that occur during execution of test code. The control code may be loaded using any native mechanism provided by the processing device for doing so. According to some embodiments, the control code is loaded into a microcode Read Only Memory of the processing device, or into a microcode patch area provided by the device.
The processing device is then controlled at 430 to execute the test code. This control may comprise invocation of a handler as described with respect to 405. During execution of the test code, the processing device outputs the first data and the second data described above based on the configured monitoring logic and the control code, respectively. The first data may be output from BPM pins of the processing device, while the second data may be output from an auxiliary port (e.g., OCP) associated with the processing device.
The reported information (i.e., the first data and the second data) is received at 435. It is then determined, at 440, whether a fault has occurred based on the received information. Any system for identifying a fault may be used at 440. According to some implementations, the predetermined event and loaded control code are intended to generate outputs from which a fault may be easily determined.
If no fault is determined based on the information at 440, flow returns to 435 to continue receipt of any of the first data and second data output by the processing device. Flow therefore cycles between 435 and 440 while the processing device executes test code and until a fault is determined at 440.
A state information dump is received at 445 once a fault is determined at 440. As described above, some embodiments of 445 comprise invoking JTAG handler 319 of debug port 310 to cause a quiescent break in CPUs 330 through 360, and invoking JTAG handler 319 to instruct CPUs 330 through 360 to report out their instruction-based registers via their BPM pins. Other currently- or hereafter-known systems to receive a state information dump may be implemented in some embodiments.
Next, at 450, it is determined whether the configured monitoring logic and/or the control code should be changed or “tuned”. The determination may be based on one or more of the received first data, second data, and state information dump. For example, it may be determined at 450 that a particular fault and/or code segment of interest is not adequately modeled by the received data and dump. Therefore, in order to generate data by which the fault and/or code segment may be better modeled (and therefore more efficiently debugged), it may be determined at 450 that tuning is required.
Flow returns to 420 or 425 if tuning is required. According to the embodiment reflected by method 400, flow returns to 420 if tuning of the monitoring logic configuration and the control code is required, and to 425 if only tuning of the control code is required. Of course, some embodiments provide for tuning of the monitoring logic configuration without also requiring tuning of the control code.
Flow proceeds to 455 if it is determined at 450 that no tuning is required. At 455, the execution of the test code is replayed using a Real-Time Logic (RTL) simulator. In some embodiments, processor 113 of host 112 executes an RTL simulator using the received first data, second data and state information dump as inputs. Host 112 may prune the received data prior to executing the RTL simulator according to pruning techniques that are or become known. Some embodiments may provide the first and second data and the state information dump in standardized formats (e.g., MicroSim CMD format and JumpStart format, respectively) suitable for input to the RTL simulator.
Some embodiments of the foregoing provide flexible and low cost data tracking using existing pins that are not part of a target system's native operation. Moreover, some embodiments may reduce the level of inference required for debugging by the above-described targeted data collection.
The several embodiments described herein are solely for the purpose of illustration. Persons in the art will recognize from this description that other embodiments may be practiced with modifications and alterations limited only by the claims.

Claims (19)

1. A method comprising:
configuring via a first debug port an internal monitoring mechanism of a processing device to output first data associated with a predetermined operational state of the processing device, wherein the processing device comprises a plurality of processors and a plurality of registers associated with the plurality of processors to implement event monitoring, and wherein outputting first data comprises instructing the plurality of processors to output data via a second debug port, the data associated with an operational state that corresponds to the plurality of registers; and
loading control code into the processing device, the control code executable by the processing device to output second data via the second debug port, the second data associated with input operations and exceptions that occur during execution of test code by the processing device.
2. A method according to claim 1, further comprising:
controlling the processing device to stop execution of the test code via the first debug port; and
controlling the processing device to output via the second debug port a state information dump from the processing device.
3. A method according to claim 2, further comprising:
receiving the state information dump;
modifying the control code based on the state information dump; and
loading the modified control code into the processing device.
4. A method according to claim 2, further comprising:
receiving the state information dump; and
re-configuring the internal monitoring mechanism based on the state information dump.
5. A method according to claim 2, further comprising:
determining a fault based on the first data and the second data,
wherein controlling the processing device to stop execution of the test code comprises controlling the processing device to stop execution of the test code based on the determination.
6. A method according to claim 5, further comprising:
replaying the fault on a Real-Time Logic simulator using the first data, the second data, and the state information dump.
7. A method according to claim 1, further comprising:
prior to configuring and loading, controlling the processing device to stop execution of the test code;
prior to configuring and loading, controlling the processing device to output a state information dump from the processing device;
determining the pre-defined operational state based on the state information dump; and
determining the control code based on the state information dump.
8. A method according to claim 1, wherein the internal monitoring mechanism comprises event monitoring logic,
wherein the first data is output from breakpoint monitoring pins of the processing device, and
wherein the second data is output from an auxiliary port of the processing device.
9. An apparatus comprising:
a memory storing executable code; and
a plurality of processors, wherein each processor comprises a register to implement event monitoring, and wherein the plurality of processors are operable in conjunction with the code to:
configure via a first debug port an internal monitoring mechanism of a processing device to output first data associated with a predetermined operational state of the processing device, wherein outputting first data comprises instructing the plurality of processors to output data via a second debug port, the first data associated with an operational state that corresponds to their respective register; and
load control code into the processing device, the control code executable by the processing device to output second data via the second debug port, the second data associated with input operations and exceptions that occur during execution of test code by the processing device, wherein the first debug port comprises a controller to control timing interfaces and to provide interoperation with the second debug port.
10. An apparatus according to claim 9, the processor further operable in conjunction with the code to:
control the processing device to stop execution of the test code; and
control the processing device to output a state information dump from the processing device.
11. An apparatus according to claim 10, the processor further operable in conjunction with the code to:
receive the state information dump;
modify the control code based on the state information dump; and
load the modified control code into the processing device.
12. An apparatus according to claim 10, the processor further operable in conjunction with the code to:
receive the state information dump; and
re-configure the internal monitoring mechanism based on the state information dump.
13. An apparatus according to claim 10, the processor further operable in conjunction with the code to:
determine a fault based on the first data and the second data,
wherein control of the processing device to stop execution of the test code comprises control of the processing device to stop execution of the test code based on the determination.
14. An apparatus according to claim 13, the processor further operable in conjunction with the code to:
execute a Real-Time Logic simulator to replay the fault using the first data, the second data, and the state information dump.
15. An apparatus according to claim 9, the processor further operable in conjunction with the code to:
prior to configuration and load, control the processing device to stop execution of the test code;
prior to configuration and load, control the processing device to output a state information dump from the processing device;
determine the pre-defined operational state based on the state information dump; and
determine the control code based on the state information dump.
16. An apparatus according to claim 9, wherein the internal monitoring mechanism comprises event monitoring logic,
wherein the first data is output from breakpoint monitoring pins of the processing device, and
wherein the second data is output from an auxiliary port of the processing device.
17. A system comprising:
a microprocessor under test;
a memory storing executable code; and
a plurality of processors, wherein each processor comprises a register to implement event monitoring, and wherein the plurality of processors are operable in conjunction with the code to:
configure via a first debug port an internal monitoring mechanism of a processing device to output first data associated with a predetermined operational state of the processing device, wherein outputting first data comprises instructing the plurality of processors to output data via a second debug port, the data associated with an operational state that corresponds to their respective register; and
load control code into the microprocessor, the control code executable by the microprocessor to output second data via the second debug port, the second data associated with input operations and exceptions that occur during execution of test code by the microprocessor.
18. A system according to claim 17, the processor further operable in conjunction with the code to:
control the microprocessor to stop execution of the test code;
control the microprocessor to output a state information dump from the microprocessor;
receive the state information dump;
modify the control code based on the state information dump; and
load the modified control code into the processing device.
19. A system according to claim 17, the processor further operable in conjunction with the code to:
determine a fault based on the first data and the second data;
control the microprocessor to stop execution of the test code;
control the microprocessor to output a state information dump from the microprocessor; and
execute a Real-Time Logic simulator to replay the fault using the first data, the second data, and the state information dump,
wherein control of the processing device to stop execution of the test code comprises control of the processing device to stop execution of the test code based on the determination.
US11/169,208 2005-06-28 2005-06-28 Debug system for data tracking Expired - Fee Related US7577876B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/169,208 US7577876B2 (en) 2005-06-28 2005-06-28 Debug system for data tracking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/169,208 US7577876B2 (en) 2005-06-28 2005-06-28 Debug system for data tracking

Publications (2)

Publication Number Publication Date
US20070011517A1 US20070011517A1 (en) 2007-01-11
US7577876B2 true US7577876B2 (en) 2009-08-18

Family

ID=37619611

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/169,208 Expired - Fee Related US7577876B2 (en) 2005-06-28 2005-06-28 Debug system for data tracking

Country Status (1)

Country Link
US (1) US7577876B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136451A1 (en) * 2005-12-14 2007-06-14 Samsung Electronics Co., Ltd. Method of providing interoperability of heterogeneous network devices and network device using the same
US20090287960A1 (en) * 2008-05-15 2009-11-19 International Business Machines Corporation Methods, systems and computer program products for cpu signaturing to aide in performance analysis
US10078568B1 (en) * 2015-11-30 2018-09-18 Amazon Technologies, Inc. Debugging a computing device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457999B2 (en) * 2005-06-28 2008-11-25 Intel Corporation Debug port system for control and observation
US7555676B2 (en) * 2005-07-18 2009-06-30 Dell Products L.P. Systems and methods for providing remotely accessible in-system emulation and/or debugging
US20090327995A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Annotation-aided code generation in library-based replay
US8924788B2 (en) * 2010-06-28 2014-12-30 Intel Corporation Replaying architectural execution with a probeless trace capture
US8539389B2 (en) 2010-09-27 2013-09-17 Teseda Corporation Correlation of device manufacturing defect data with device electrical test data
US20150067428A1 (en) * 2012-05-02 2015-03-05 Freescale Semiconductor, Inc. System-on-chip, method of manufacture thereof and method of communicating diagnostic data
US9575871B2 (en) * 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
CN113391156B (en) * 2021-06-23 2022-11-01 四川华能宝兴河水电有限责任公司 Power system fault reproduction method

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636940A (en) * 1983-03-31 1987-01-13 Hewlett-Packard Company Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing
US5450349A (en) * 1992-10-27 1995-09-12 Digital Equipment Corporation Computer system performance evaluation system and method
US5608866A (en) * 1994-04-08 1997-03-04 Nec Corporation System for measuring and analyzing operation of information processor
US5835702A (en) * 1996-10-21 1998-11-10 International Business Machines Corporation Performance monitor
US6134676A (en) * 1998-04-30 2000-10-17 International Business Machines Corporation Programmable hardware event monitoring method
US6389558B1 (en) * 1996-10-28 2002-05-14 Altera Corporation Embedded logic analyzer for a programmable logic device
US20020147943A1 (en) * 2001-04-10 2002-10-10 Slaugh Chad H. System and method for allocating logic analyzer hardware resources
US6484274B1 (en) * 1996-09-16 2002-11-19 Advanced Micro Devices, Inc. Method for identifying and correcting error in a central processing unit
US20020194543A1 (en) * 1997-10-27 2002-12-19 Altera Corporation, A Delaware Corporation Enhanced embedded logic analyzer
US20040015739A1 (en) * 2001-08-07 2004-01-22 Ulrich Heinkel Testbench for the validation of a device under test
US6738929B2 (en) * 2000-03-02 2004-05-18 Texas Instruments Incorporated Dynamically configurable debug port for concurrent support of debug functions from multiple data processing cores
US6751752B1 (en) * 2000-09-01 2004-06-15 Intel Corporation Checking events generated by a device
US6751569B2 (en) * 2001-01-26 2004-06-15 Dell Products L.P. System and method for receiving information from a test apparatus
US20040194067A1 (en) * 2003-02-13 2004-09-30 Hsiu-Chuan Lien Method for program debugging
US20050081113A1 (en) * 2003-09-29 2005-04-14 Beard Douglas Richard Method and apparatus for analyzing digital circuits
US20050183069A1 (en) * 2004-02-18 2005-08-18 Cepulis Darren J. ROM-embedded debugging of computer
US20060156102A1 (en) * 2005-01-11 2006-07-13 Johnson Tyler J System and method to control data capture

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636940A (en) * 1983-03-31 1987-01-13 Hewlett-Packard Company Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing
US5450349A (en) * 1992-10-27 1995-09-12 Digital Equipment Corporation Computer system performance evaluation system and method
US5608866A (en) * 1994-04-08 1997-03-04 Nec Corporation System for measuring and analyzing operation of information processor
US6484274B1 (en) * 1996-09-16 2002-11-19 Advanced Micro Devices, Inc. Method for identifying and correcting error in a central processing unit
US5835702A (en) * 1996-10-21 1998-11-10 International Business Machines Corporation Performance monitor
US6389558B1 (en) * 1996-10-28 2002-05-14 Altera Corporation Embedded logic analyzer for a programmable logic device
US20020194543A1 (en) * 1997-10-27 2002-12-19 Altera Corporation, A Delaware Corporation Enhanced embedded logic analyzer
US6134676A (en) * 1998-04-30 2000-10-17 International Business Machines Corporation Programmable hardware event monitoring method
US6738929B2 (en) * 2000-03-02 2004-05-18 Texas Instruments Incorporated Dynamically configurable debug port for concurrent support of debug functions from multiple data processing cores
US6751752B1 (en) * 2000-09-01 2004-06-15 Intel Corporation Checking events generated by a device
US6751569B2 (en) * 2001-01-26 2004-06-15 Dell Products L.P. System and method for receiving information from a test apparatus
US20020147943A1 (en) * 2001-04-10 2002-10-10 Slaugh Chad H. System and method for allocating logic analyzer hardware resources
US20040015739A1 (en) * 2001-08-07 2004-01-22 Ulrich Heinkel Testbench for the validation of a device under test
US20040194067A1 (en) * 2003-02-13 2004-09-30 Hsiu-Chuan Lien Method for program debugging
US20050081113A1 (en) * 2003-09-29 2005-04-14 Beard Douglas Richard Method and apparatus for analyzing digital circuits
US20050183069A1 (en) * 2004-02-18 2005-08-18 Cepulis Darren J. ROM-embedded debugging of computer
US20060156102A1 (en) * 2005-01-11 2006-07-13 Johnson Tyler J System and method to control data capture
US7228472B2 (en) * 2005-01-11 2007-06-05 Hewlett-Packard Development Company, L.P. System and method to control data capture

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136451A1 (en) * 2005-12-14 2007-06-14 Samsung Electronics Co., Ltd. Method of providing interoperability of heterogeneous network devices and network device using the same
US8307133B2 (en) * 2005-12-14 2012-11-06 Samsung Electronics Co., Ltd. Method of providing interoperability of heterogeneous network devices and network device using the same
US20090287960A1 (en) * 2008-05-15 2009-11-19 International Business Machines Corporation Methods, systems and computer program products for cpu signaturing to aide in performance analysis
US7823018B2 (en) * 2008-05-15 2010-10-26 International Business Machines Corporation Methods, systems and computer program products for CPU signaturing to aide in performance analysis
US10078568B1 (en) * 2015-11-30 2018-09-18 Amazon Technologies, Inc. Debugging a computing device

Also Published As

Publication number Publication date
US20070011517A1 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
US7577876B2 (en) Debug system for data tracking
US6665817B1 (en) Apparatus and method for implementing a wireless system-on-a-chip with a reprogrammable tester, debugger, and bus monitor
US9037911B2 (en) Debug state machines and methods of their operation
Vermeulen Functional debug techniques for embedded systems
Riley et al. Cell broadband engine debugging for unknown events
KR101318697B1 (en) Method and apparatus for testing a data processing system
RU2579814C2 (en) Integral circuit with programmable logic analyser with expanded analysis and tuning capabilities and method
US6732311B1 (en) On-chip debugger
EP0849668B1 (en) Diagnostics system and procedure in an integrated circuit device
JP4987182B2 (en) Computer system
US6961872B2 (en) Microcomputer and debugging system
JP3998303B2 (en) Integrated circuit having a TAP controller
EP0849669A1 (en) Diagnostic procedures in an integrated circuit device
US9678150B2 (en) Methods and circuits for debugging circuit designs
US6829751B1 (en) Diagnostic architecture using FPGA core in system on a chip design
CN113377591B (en) Method and device for improving test speed of ATE equipment chip
US10078113B1 (en) Methods and circuits for debugging data bus communications
US20030233601A1 (en) Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
US7457999B2 (en) Debug port system for control and observation
CN111722968A (en) Hardware debugging method, device and system and readable storage medium
JPS5833576B2 (en) Computer system failure diagnosis device
US6757846B1 (en) Method and apparatus for multi-bus breakpoint stepping
EP3961403A1 (en) Bus monitoring device and method, storage medium, and electronic device
US6484275B1 (en) System and method for interfacing data with a test access port of a processor
CN113990382B (en) System-on-chip, test method and test system

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BOYCE, DOUGLAS G.;REEL/FRAME:016752/0830

Effective date: 20050627

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20210818