WO2002069146A2 - Data processing system having an on-chip background debug system and method therefor - Google Patents

Data processing system having an on-chip background debug system and method therefor Download PDF

Info

Publication number
WO2002069146A2
WO2002069146A2 PCT/US2001/049157 US0149157W WO02069146A2 WO 2002069146 A2 WO2002069146 A2 WO 2002069146A2 US 0149157 W US0149157 W US 0149157W WO 02069146 A2 WO02069146 A2 WO 02069146A2
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
processing system
background debug
clock unit
background
Prior art date
Application number
PCT/US2001/049157
Other languages
French (fr)
Other versions
WO2002069146A3 (en
Inventor
Michael C. Wood
George E. Baker
James M. Sibigtroth
Original Assignee
Motorola, Inc.
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 Motorola, Inc. filed Critical Motorola, Inc.
Priority to EP01996290A priority Critical patent/EP1423789A2/en
Priority to KR1020037010937A priority patent/KR100819720B1/en
Priority to JP2002568201A priority patent/JP4145146B2/en
Priority to CN018227937A priority patent/CN1543604B/en
Priority to AU2002227439A priority patent/AU2002227439A1/en
Publication of WO2002069146A2 publication Critical patent/WO2002069146A2/en
Publication of WO2002069146A3 publication Critical patent/WO2002069146A3/en

Links

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
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • FIG. 1 illustrates, in block diagram form, a data processing system illustrating one embodiment of the present invention.
  • FIG. 4 illustrates, in timing diagram form, a logic one symbol, a logic zero symbol, and a synchronization request and response, in accordance with one embodiment of the present invention.
  • Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve the understanding of the embodiments of the present invention. Detailed Description
  • bus is used to refer to a plurality of signals or conductors which may be used to transfer one or more various types of information, such as data, addresses, control, or status.
  • assert is used when referring to the rendering of a signal, status bit, or similar apparatus into its logically true state.
  • non-gate or “deassert” is used when referring to the rendering of a signal, status bit, or similar apparatus into its logically false state. If a signal (or status bit, etc.) is active high, the logically true state is a logic level one, and the logically false state is a logic level zero.
  • CPU 12 receives and executes instructions from a software program stored in memory module 16 via data bus 24. CPU 12 then directs or uses other resources of the data processing system to perform certain tasks.
  • Memory module 16 may be any type of memory including, but not limited to, static random access memory, dynamic random access memory, or any type of non-volatile memory, such as for example, flash.
  • Other module 18 may be another memory module, an analog-to-digital converter, a timer module, a serial communications module, for example, a CAN module, a general purpose input/output module, or the like.
  • Debug module 20 may be any appropriate debug module that allows for program debugging.
  • NAND gate 62 (also referred to as oscillator amplifier 62) is coupled to oscillator components 30 and clock control 46.
  • Inverter 42 receives EN_BDM 44 from BDS 14 and clock control 46 provides background debug clock 54 to BDS 14.
  • CPU 12 includes BDS 14 coupled to address generation unit 74 via command address 70.
  • Address generation unit 74 also receives CPU address 72 and provides system addresses via address bus 22.
  • BDS 14 is also bidirectionally coupled to background communication interface 52, data bus 24, and control signals 26.
  • a host system is generally coupled to background communication interface 52 and EN_BDM 44 is high.
  • This enables BDS 14 and drives the input to inverter 42 such that the stop enable control signal 40 is low.
  • This therefore allows BDS 14 to enable oscillator amplifier 62 independent of STOP signal 68.
  • STOP signal 68 also drives other circuits within data processing system 10 so that during debug operations, when BDS 14 forces the oscillator to remain running, other system clocks may still be stopped.
  • BDS 14 also uses data bus 24, control signals 26, and address bus 22 to perform background debug operations, such as, for example, reading from and writing to memory.
  • address generation unit 74 passes addresses from BDS 14 on command address 70 to address bus 22 to allow BDS 14 access to the data processing system memories. Therefore, it can be appreciated that, according to various embodiments of the present invention, when a host development system is coupled to a background communication interface and the background debug mode is enabled, the normal action of an oscillator stop mode is overridden such that the oscillator continues to run. This allows the background debug communications interface to continue to operate so normal debug operations can still be performed while other data processing system modules are shut down to save power. For example, when background debug mode is enabled, the host development system may send a READ_STATUS command to determine the status of the target system while the remainder of the data processing system modules remain shut down. Referring again to FIG.
  • clock control 46 receives a reference oscillator signal 48 from oscillator components 30 and provides background debug clock 54 to BDS 14 based on reference signal 48.
  • Clock control 46 may include circuitry, such as dividers, to adjust the reference oscillator signal. Therefore, a host development system knowing only the frequency of the oscillator reference signal and not the specifics of clock control 46 may not be able to determine the actual frequency of the system clocks generated by clock control 46.
  • BDS 14 therefore has to address this problem in order to properly perform its debug operations with a host system, as will be discussed in reference to FIGs. 3 and 4.
  • FIG. 3 illustrates one embodiment of BDS 14.
  • Background communication interface 52 which receives signals from an external host development system (i.e.
  • serial command decoder block 56 is coupled to serial command decoder block 56, command response block 58, synchronization (sync) detect block 64, and synchronization (sync) response block 66.
  • Background debug clock signal 54 controls the timing of operations in serial command decoder block 56, command response block 58, sync detect block 64, and sync response block 66.
  • Command response block 58 is also coupled to data bus 24 and control signals 26 to allow serial background commands to read or write memory and register values or to initiate debug commands such as GO, TRACE, or enter-active-BACKGROUND.
  • Serial command decoder 56 is also coupled to BDM enable circuitry 43 which provides EN_BDM 44.
  • BDM enable circuitry 43 may include a control register for storing EN_BDM 44 as one of its control bits or may include other circuitry designed to assert EN_BDM 44.
  • EN_BDM 44 may be a bit stored in a control register that is only accessible by a BDS command issued by a host development system via background communication interface 52. This prevents user code from being able to purposely or inadvertently assert EN_BDM 44 and engage the STOP signal 68 override.
  • EN_BDM 44 may not be stored as a control bit and may instead be asserted by logic circuitry that detects when valid debug communications are taking place via background communication interface 52. Alternate embodiments may use different mechanisms and circuitries, other than those described in reference to BDM enable circuitry 43, for asserting EN_BDM 44 to enable BDS 14.
  • serial commands and data are received via background communication interface 52 and decoded by serial command decoder 56.
  • Command response block 58 then performs the requested command using signals in data bus 24 and control signals 26.
  • data is written to data processing system 10 via data bus 24 and control signals 26.
  • data is read from data processing system 10 via data bus 24 and control signals 26 and sent back to the host development system as a serial data stream over background communication interface 52.
  • all commands and data processed by serial command decoder 56 and command response block 58 conform to the symbol timing shown in FIG. 4.
  • background communication interface 52 may also refer to the communication line coupled to background communication interface 52 from the host development system. That is, when coupled to a host development system, background communication interface 52 may also be referred to as background communication line 52.
  • FIG. 4 shows the timing for a logic 1 symbol duration (i.e. bit time) and a logic 0 symbol duration (i.e. bit time) for normal serial commands and data on background communication line 52.
  • each symbol begins with a falling edge and is 16 cycles of background debug clock 54.
  • the logic value for each bit time is sampled near the middle of the bit time, as illustrated in FIG. 4 by the label "SAMPLING POINTS.”
  • SAMPLING POINTS In the case of a logic 1 symbol, the signal is asserted low for about one-fourth of the bit time so that it is a logic 1 when sampled in the middle of the bit time.
  • the signal can be asserted low for any amount of time so long as it is deasserted prior to the sampling point in order for the signal to give the correct value (logic 1) when sampled.
  • the signal in the case of a logic 0 symbol, is asserted low for about three-fourths of the bit time so that it is at a logic zero when sampled in the middle of the bit time.
  • the signal can be asserted low for any amount of time so long as it is asserted low at the sampling point in order for the signal to give the correct value (logic 0) when sampled and deasserted before the start of a new symbol.
  • the signal can remain asserted low beyond the duration of the current symbol before being deasserted at some time prior to the start of the next symbol.
  • background communication line 52 asserted low for longer than for the logic zero case.
  • FIG. 4 also illustrates the timing for a synchronization (sync) request and a synchronization (sync) response, using the example protocol described above.
  • a sync request is initiated when an external host development system asserts background communication line 52 low for at least 128 cycles of the background debug clock 54.
  • the sync detect block 64 in data processing system 10 i.e. the target system
  • detects this sync request it waits until background communication line 52 returns to the deasserted high level.
  • the sync response block 66 then delays for a few cycles of the background debug clock 54 (sufficient for background communication line 52 to at least return to a high state which provides a clear break between the request and response), and then asserts background communication line 52 for 128 cycles of the background debug clock 54.
  • the external host development system is then able to measure the duration of this low sync response signal to determine the correct speed for subsequent background communications.
  • the sync request and response mechanism allows a host development system to determine the correct clock speed for background communications with a target system.
  • the host development system requests a synchronization timing pulse from the target system by asserting a background communication signal for much longer than it would be asserted for normal communications.
  • the target system responds by asserting the background communication signal for a specific number of cycles of the communications clock signal.
  • the host measures the length of this response pulse to determine the correct communication speed.
  • the sync request and response can therefore be used to synchronize a first data processing system to a second data processing system, and is not limited to just host and target systems.
  • Alternate embodiments may communicate according to other communication protocols which may define symbols as having a different duration and format.
  • a symbol may have a duration of more or less than the 16 cycles illustrated in FIG.4 and may be sampled at a different point during the symbol duration. Therefore, a sync request may be more or less than the 128 cycles illustrated above.
  • the sync request is substantially longer than the maximum symbol duration.
  • the 128 cycle is at least longer than the 16 cycles (corresponding to a normal symbol duration) and allows for sufficient tolerance in the clock signals and for any measurement errors.
  • the duration of the sync request may be defined to be at least twice the duration of a normal symbol.
  • BDS 14 may include a self-contained oscillator, such as a Resistor-Capacitor (RC) oscillator, or the like, which is independent of clock unit 19.
  • RC Resistor-Capacitor
  • logic similar to that used to override STOP signal 68 may be used to appropriately enable the self-contained oscillator.
  • this self-contained oscillator can be enabled when valid communication is detected on background communication line 52, regardless of the operation of the system oscillator. Therefore, the system oscillator for the data processing system can be placed into stop mode, and BDS 14 may still continue to perform debug operations regardless.
  • a self-contained oscillator such as an RC oscillator
  • the host system generally does not have prior knowledge of its timing information. This is in part because RC oscillators generally have wide frequency tolerances, thus making it difficult to know the frequency.
  • the. host system may utilize the sync request in order to obtain the proper timing information from BDM 14 through the sync response.
  • conductivity types and polarities of potentials may be reversed. For example, signals designed as active high may be designed as active low, and those designed as active low may be designed as active high.
  • One of ordinary skill in the art would understand how to modify the circuitry to accommodate such changes.

Abstract

Embodiments of the present invention relate to a mechanism to prevent the oscillator from being stopped when a host development system is coupled to the background debug communications interface (52) and the background debug mode has been enabled. This allows background debugging operations to continue when the target data processing system is in a low power mode. Other embodiments relate to a mechanism for allowing a host development system to request a synchronization timing pulse from a target data processing system so the correct clock speed can be determined for background communications. Alternate embodiments relate to a data processing system having a system clock unit and a background debug system (14) where the background debug system includes a background debug clock unit, separate from the system clock unit, and an enable control (44). When the enable control is asserted, the background debug clock unit is enabled, independent of the system clock unit.

Description

DATA PROCESSING SYSTEM HAVING AN ON-CHIP BACKGROUND DEBUG SYSTEM AND METHOD THEREFOR
Related Application
This is related to United States Patent Application having docket number SC11064TH, entitled "DATA PROCESSING SYSTEM WITH ON-CHIP FIFO FOR STORING DEBUG INFORMATION AND METHOD THEREFOR," filed on even date herewith, and is incorporated herein by reference and assigned to the current assignee hereof.
Field of the Invention The present invention relates generally to data processing systems, and more particularly, to data processing systems having on-chip background debug systems.
Related Art In order to reduce power consumption, modern data processing systems often allow the application program to adjust the system clock speed or even stop the oscillator. In some cases, these actions require a host development system to adjust its communication speed to adapt to these changes within the target data processing system. In the cases where the target system oscillator is stopped, background communications are also stopped, thus preventing normal debugging operations such as reading or writing target system memory locations. Therefore, a need exists to allow normal debugging operations while the application program stops or adjusts the system clock speed. A need also exists for a host development system to determine the correct clock speed for background communications with the target data processing system.
Brief Description of the Drawings
The present invention is illustrated by way of example and not limitation in the accompanying figures, in which like references indicate similar elements, and in which: FIG. 1 illustrates, in block diagram form, a data processing system illustrating one embodiment of the present invention.
FIG. 2 illustrates, in partial block diagram and partial schematic form, a portion of the clock unit and central processing unit of FIG. 1 in accordance with one embodiment of the present invention. FIG. 3 illustrates, in block diagram form, the background debug system of FIG. 1 in accordance with one embodiment of the present invention.
FIG. 4 illustrates, in timing diagram form, a logic one symbol, a logic zero symbol, and a synchronization request and response, in accordance with one embodiment of the present invention. Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve the understanding of the embodiments of the present invention. Detailed Description
As used herein, the term "bus" is used to refer to a plurality of signals or conductors which may be used to transfer one or more various types of information, such as data, addresses, control, or status. The term "assert" is used when referring to the rendering of a signal, status bit, or similar apparatus into its logically true state. The term "negate" or "deassert" is used when referring to the rendering of a signal, status bit, or similar apparatus into its logically false state. If a signal (or status bit, etc.) is active high, the logically true state is a logic level one, and the logically false state is a logic level zero. If a signal (or status bit, etc.) is active low, the logically true state is a logic level zero, and the logically false state is a logic level one. Also, "high" may be used to refer to a logic level one while "low" may be used to refer to a logic level zero. FIG. 1 illustrates, in block diagram form, a data processing system 10 in accordance with one embodiment of the present invention. Data processing system 10 can be any processing system such as a microcontroller, microprocessor, digital signal processor (DSP), or the like. Data processing system 10 includes CPU 12, clock unit 19, memory module 16, other module 18, debug module 20, internal address bus 22, internal data bus 24, and control signals 26. CPU 12 includes a background debug system (BDS) 14. BDS 14 includes a background communication interface 52. Internal data bus 24, internal address bus 22, and control signals 26 are coupled between CPU 12 and each of the peripheral modules on data processing system 10. Clock unit 19 is coupled to CPU 12 via control signals 26 and to BDS 14 via signals 44 and 54. Clock unit 19 also includes interface signals 48 and 49 for coupling to an oscillator circuit.
In operation, CPU 12 receives and executes instructions from a software program stored in memory module 16 via data bus 24. CPU 12 then directs or uses other resources of the data processing system to perform certain tasks. Memory module 16 may be any type of memory including, but not limited to, static random access memory, dynamic random access memory, or any type of non-volatile memory, such as for example, flash. Other module 18 may be another memory module, an analog-to-digital converter, a timer module, a serial communications module, for example, a CAN module, a general purpose input/output module, or the like. Debug module 20 may be any appropriate debug module that allows for program debugging.
Clock unit 19 is coupled to background debug system 14 via ENJBDM 44 and background debug clock 54. Signals 48 and 49 provide interface signals to external oscillator components. Clock unit 19 also receives and provides control signals via control signals 26. For example, clock unit 19 provides clock signals to CPU 12 and receives a STOP signal via control signals 26. Clock unit 19 also provides system clocks to CPU 12, memory module 16, debug module 20, and other module 18. (Clock unit 19 will be discussed further in reference to FIG. 2 below.)
BDS 14 also includes background communication interface 52 which allows a host development system to be coupled to data processing system 10 (which may also be referred to as the target system). The host development system can therefore perform debug operations via background communication interface 52. In one embodiment, background communication interface 52 may be an asynchronous bi-directional single-wire interface. In this embodiment, BDS 14 needs only one external pin for performing debug operations with the host system. In alternate embodiments, other appropriate communication interfaces may be used, such as a JTAG interface.
FIG. 2 illustrates a portion of clock unit 19 and CPU 12 of FIG. 1, and external oscillator components 30. In one embodiment, external oscillator components 30 include a crystal or resonator 32, a feedback resistor 34, and two load capacitors 36 and 38, all coupled in a conventional Pierce oscillator configuration. However, alternate embodiments may use other appropriate oscillator components and configurations. Clock unit 19 includes inverter 42, NAND gates 66 and 62, and clock control 46. NAND gate 66 is coupled to
STOP signal 68, inverter 42, and NAND gate 62. NAND gate 62 (also referred to as oscillator amplifier 62) is coupled to oscillator components 30 and clock control 46. Inverter 42 receives EN_BDM 44 from BDS 14 and clock control 46 provides background debug clock 54 to BDS 14. CPU 12 includes BDS 14 coupled to address generation unit 74 via command address 70. Address generation unit 74 also receives CPU address 72 and provides system addresses via address bus 22. BDS 14 is also bidirectionally coupled to background communication interface 52, data bus 24, and control signals 26.
In operation, oscillator amplifier 62 in clock unit 19 can be disabled by deasserting an active high enable signal 64. In prior art systems, the oscillator amplifier would be disabled (thus disabling the oscillator) upon the data processing system entering stop mode in order to reduce power consumption. However, in the embodiment of FIG. 2, enable signal 64 is driven by the output of NAND gate 66. The two inputs to NAND gate 66 are the STOP signal 68 and a stop enable control signal 40. Note that in this embodiment, both signals 68 and 40 are active high signals. Also note that STOP signal 68 may be generated by a CPU instruction to place data processing system 10 into stop mode (or a low power mode) to reduce power. During normal operation, typically no host system is coupled to background communication interface 52 and EN_BDM 44 is low (that is, BDS 14 is not enabled). Thus, the stop enable control signal 40 at the input of NAND gate 66 is high. Therefore, during normal operation, STOP signal 68 determines whether the oscillator will run or stop, depending on whether STOP signal 68 is low or high, respectively. Also, during normal operations, address generation unit 74 passes information from CPU address 72 onto address bus 22. For example, CPU address 72 may receive addresses from an execution unit (not shown) within CPU 12.
However, during development and debug operations, a host system is generally coupled to background communication interface 52 and EN_BDM 44 is high. This enables BDS 14 and drives the input to inverter 42 such that the stop enable control signal 40 is low. This forces the output of NAND gate 66 high, regardless of the state of STOP signal 68. This therefore allows BDS 14 to enable oscillator amplifier 62 independent of STOP signal 68. Note that STOP signal 68 also drives other circuits within data processing system 10 so that during debug operations, when BDS 14 forces the oscillator to remain running, other system clocks may still be stopped. BDS 14 also uses data bus 24, control signals 26, and address bus 22 to perform background debug operations, such as, for example, reading from and writing to memory. During such debug operations, address generation unit 74 passes addresses from BDS 14 on command address 70 to address bus 22 to allow BDS 14 access to the data processing system memories. Therefore, it can be appreciated that, according to various embodiments of the present invention, when a host development system is coupled to a background communication interface and the background debug mode is enabled, the normal action of an oscillator stop mode is overridden such that the oscillator continues to run. This allows the background debug communications interface to continue to operate so normal debug operations can still be performed while other data processing system modules are shut down to save power. For example, when background debug mode is enabled, the host development system may send a READ_STATUS command to determine the status of the target system while the remainder of the data processing system modules remain shut down. Referring again to FIG. 2, clock control 46 receives a reference oscillator signal 48 from oscillator components 30 and provides background debug clock 54 to BDS 14 based on reference signal 48. Clock control 46 may include circuitry, such as dividers, to adjust the reference oscillator signal. Therefore, a host development system knowing only the frequency of the oscillator reference signal and not the specifics of clock control 46 may not be able to determine the actual frequency of the system clocks generated by clock control 46. BDS 14 therefore has to address this problem in order to properly perform its debug operations with a host system, as will be discussed in reference to FIGs. 3 and 4. FIG. 3 illustrates one embodiment of BDS 14. Background communication interface 52, which receives signals from an external host development system (i.e. an external debug host system), is coupled to serial command decoder block 56, command response block 58, synchronization (sync) detect block 64, and synchronization (sync) response block 66. Background debug clock signal 54 controls the timing of operations in serial command decoder block 56, command response block 58, sync detect block 64, and sync response block 66. Command response block 58 is also coupled to data bus 24 and control signals 26 to allow serial background commands to read or write memory and register values or to initiate debug commands such as GO, TRACE, or enter-active-BACKGROUND. Serial command decoder 56 is also coupled to BDM enable circuitry 43 which provides EN_BDM 44.
BDM enable circuitry 43 may include a control register for storing EN_BDM 44 as one of its control bits or may include other circuitry designed to assert EN_BDM 44. In one embodiment, EN_BDM 44 may be a bit stored in a control register that is only accessible by a BDS command issued by a host development system via background communication interface 52. This prevents user code from being able to purposely or inadvertently assert EN_BDM 44 and engage the STOP signal 68 override. In alternate embodiments, EN_BDM 44 may not be stored as a control bit and may instead be asserted by logic circuitry that detects when valid debug communications are taking place via background communication interface 52. Alternate embodiments may use different mechanisms and circuitries, other than those described in reference to BDM enable circuitry 43, for asserting EN_BDM 44 to enable BDS 14.
During background debug operations, serial commands and data are received via background communication interface 52 and decoded by serial command decoder 56. Command response block 58 then performs the requested command using signals in data bus 24 and control signals 26. For some commands, data is written to data processing system 10 via data bus 24 and control signals 26. For other commands, data is read from data processing system 10 via data bus 24 and control signals 26 and sent back to the host development system as a serial data stream over background communication interface 52. In one embodiment, according to a predetermined communication protocol, all commands and data processed by serial command decoder 56 and command response block 58 conform to the symbol timing shown in FIG. 4. In this example protocol, the line coupling a host development system to background communication interface 52 is not asserted low for more than approximately three-fourths of a symbol duration which, in this embodiment, is 16 cycles of the background debug clock 54. (Note that in the description below, background communication interface 52 may also refer to the communication line coupled to background communication interface 52 from the host development system. That is, when coupled to a host development system, background communication interface 52 may also be referred to as background communication line 52.)
FIG. 4 shows the timing for a logic 1 symbol duration (i.e. bit time) and a logic 0 symbol duration (i.e. bit time) for normal serial commands and data on background communication line 52. In this embodiment, each symbol begins with a falling edge and is 16 cycles of background debug clock 54. The logic value for each bit time is sampled near the middle of the bit time, as illustrated in FIG. 4 by the label "SAMPLING POINTS." In the case of a logic 1 symbol, the signal is asserted low for about one-fourth of the bit time so that it is a logic 1 when sampled in the middle of the bit time. Alternatively, the signal can be asserted low for any amount of time so long as it is deasserted prior to the sampling point in order for the signal to give the correct value (logic 1) when sampled. Similarly, in the case of a logic 0 symbol, the signal is asserted low for about three-fourths of the bit time so that it is at a logic zero when sampled in the middle of the bit time. Alternatively, the signal can be asserted low for any amount of time so long as it is asserted low at the sampling point in order for the signal to give the correct value (logic 0) when sampled and deasserted before the start of a new symbol. That is, for a logic 0 symbol, the signal can remain asserted low beyond the duration of the current symbol before being deasserted at some time prior to the start of the next symbol. In this embodiment, at no time during normal debug communications is background communication line 52 asserted low for longer than for the logic zero case.
FIG. 4 also illustrates the timing for a synchronization (sync) request and a synchronization (sync) response, using the example protocol described above. A sync request is initiated when an external host development system asserts background communication line 52 low for at least 128 cycles of the background debug clock 54. When the sync detect block 64 in data processing system 10 (i.e. the target system) detects this sync request, it waits until background communication line 52 returns to the deasserted high level. The sync response block 66 then delays for a few cycles of the background debug clock 54 (sufficient for background communication line 52 to at least return to a high state which provides a clear break between the request and response), and then asserts background communication line 52 for 128 cycles of the background debug clock 54. The external host development system is then able to measure the duration of this low sync response signal to determine the correct speed for subsequent background communications.
As discussed above, an external host development system may be unable to detect the correct processor speed for performing debug operations. Therefore, the sync request and response mechanism allows a host development system to determine the correct clock speed for background communications with a target system. In summary, the host development system requests a synchronization timing pulse from the target system by asserting a background communication signal for much longer than it would be asserted for normal communications. Upon recognizing this request, the target system responds by asserting the background communication signal for a specific number of cycles of the communications clock signal. The host measures the length of this response pulse to determine the correct communication speed. The sync request and response can therefore be used to synchronize a first data processing system to a second data processing system, and is not limited to just host and target systems.
Alternate embodiments may communicate according to other communication protocols which may define symbols as having a different duration and format. For example, a symbol may have a duration of more or less than the 16 cycles illustrated in FIG.4 and may be sampled at a different point during the symbol duration. Therefore, a sync request may be more or less than the 128 cycles illustrated above. Generally, the sync request is substantially longer than the maximum symbol duration. For example, in the embodiment of FIG. 4, the 128 cycle is at least longer than the 16 cycles (corresponding to a normal symbol duration) and allows for sufficient tolerance in the clock signals and for any measurement errors. In some embodiments, the duration of the sync request may be defined to be at least twice the duration of a normal symbol. On the other hand, the sync response transmitted by the target system is of a fixed duration in order to allow the host system to make a proper time measurement using the fixed number of cycles transmitted. However, since the host may be asynchronous to the target system, there may be some uncertainty in the measurement of the sync response. Therefore, a long enough duration (as compared to the duration of a normal symbol) should be chosen for the sync response so as to minimize the effect of the measurement uncertainty and allow the host system to obtain more accurate timing information. Alternate embodiments, though, may utilize many different combinations for the durations of the sync request and sync response.
In an alternate embodiment of data processing system 10, BDS 14 may include a self-contained oscillator, such as a Resistor-Capacitor (RC) oscillator, or the like, which is independent of clock unit 19. In such a system, logic similar to that used to override STOP signal 68 may be used to appropriately enable the self-contained oscillator. For example, this self-contained oscillator can be enabled when valid communication is detected on background communication line 52, regardless of the operation of the system oscillator. Therefore, the system oscillator for the data processing system can be placed into stop mode, and BDS 14 may still continue to perform debug operations regardless. If a self-contained oscillator, such as an RC oscillator, is used by BDM 14, the host system generally does not have prior knowledge of its timing information. This is in part because RC oscillators generally have wide frequency tolerances, thus making it difficult to know the frequency. However, as discussed above, the. host system may utilize the sync request in order to obtain the proper timing information from BDM 14 through the sync response. Although the invention has been described with respect to specific conductivity types or polarity of potentials, skilled artisans appreciated that conductivity types and polarities of potentials may be reversed. For example, signals designed as active high may be designed as active low, and those designed as active low may be designed as active high. One of ordinary skill in the art would understand how to modify the circuitry to accommodate such changes. In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Claims

1. A data processing system comprising: a background debug system (14) having an enable control (44); and a clock unit (19), coupled to the background debug system and adapted to receive the enable control, the clock unit capable of stopping oscillation; wherein when the enable control is asserted, the clock unit is prevented from stopping oscillation.
2. A method of operating a data processing system having a background debug system (14) coupled to a clock unit (19), comprising: entering a low power mode, wherein during the low power mode, the clock unit is capable of stopping oscillation; asserting a background debug enable control (44); and in response to asserting the background debug enable control, the background debug system preventing the clock unit from stopping oscillation.
3. A data processing system, comprising: a communication interface (52) capable of transferring symbols having a symbol duration according to a predetermined communication protocol; a synchronization detect unit (64) coupled to the communication interface and adapted to receive a synchronization request, wherein the synchronization request has a duration longer than the symbol duration; and a synchronization response unit (66), coupled to the communication interface and adapted to provide a synchronization response to the synchronization request.
4. The data processing system of claim 3, wherein the synchronization response has a predetermined response duration.
5. The data processing system of claim 3, wherein: the synchronization request is provided by a host unit, external to the data processing system, and the synchronization response is provided by the data processing system to the host unit, the host unit capable of determining timing information from the synchronization response.
6. A data processing system, comprising: an asynchronous communication interface (52), capable of communicating with a host unit external to the data processing system; and a background debug system (14), coupled to the asynchronous communication interface, the background debug system comprising: a synchronization detect unit (64) adapted to receive a synchronization request from the host unit, and a synchronization response unit (66) adapted to provide a synchronization response to the host unit in response to the synchronization request.
7. The data processing system of claim 6, wherein: the asynchronous communication interface is capable of transferring symbols having a predetermined symbol duration in accordance with a communication protocol, and the host unit asserts the synchronization request for a duration longer than the predetermined symbol duration
8. A method of synchronizing a first data processing system to a second data processing system, the first and second data processing systems communicating according to a communication protocol for transferring symbols having a predetermined symbol duration, comprising: providing a synchronization request having a duration longer than the predetermined symbol duration; and in response to the synchronization request, providing a synchronization response having a fixed predetermined duration.
9. A data processing system comprising: a background debug system (14) having a background debug clock unit (19) and an enable control (44) coupled to the background debug clock unit; and a system clock unit, coupled to the background debug system, the system clock unit adapted to be coupled to a system oscillator and capable of stopping oscillation of the system oscillator; wherein when the enable control is asserted, the background debug clock unit is enabled.
0. A method of operating a data processing system having a background debug system coupled to a system clock unit, the background debug system having a background debug clock unit, comprising: entering a low power mode, wherein during the low power mode, the system clock unit prevents oscillation for the data processing system; asserting a background debug enable control; and in response to asserting the background debug enable control, enabling oscillation of the background debug clock unit, independent of the system clock unit.
PCT/US2001/049157 2001-02-21 2001-12-18 Data processing system having an on-chip background debug system and method therefor WO2002069146A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP01996290A EP1423789A2 (en) 2001-02-21 2001-12-18 Data processing system having an on-chip background debug system and method therefor
KR1020037010937A KR100819720B1 (en) 2001-02-21 2001-12-18 Data processing system having an on-chip background debug system and method therefor
JP2002568201A JP4145146B2 (en) 2001-02-21 2001-12-18 Data processing system and method having on-chip background debug system
CN018227937A CN1543604B (en) 2001-02-21 2001-12-18 Data processing system with on-chip background debug system and related methods
AU2002227439A AU2002227439A1 (en) 2001-02-21 2001-12-18 Data processing system having an on-chip background debug system and method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/788,816 2001-02-21
US09/788,816 US6823224B2 (en) 2001-02-21 2001-02-21 Data processing system having an on-chip background debug system and method therefor

Publications (2)

Publication Number Publication Date
WO2002069146A2 true WO2002069146A2 (en) 2002-09-06
WO2002069146A3 WO2002069146A3 (en) 2004-04-08

Family

ID=25145644

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/049157 WO2002069146A2 (en) 2001-02-21 2001-12-18 Data processing system having an on-chip background debug system and method therefor

Country Status (8)

Country Link
US (1) US6823224B2 (en)
EP (1) EP1423789A2 (en)
JP (1) JP4145146B2 (en)
KR (1) KR100819720B1 (en)
CN (1) CN1543604B (en)
AU (1) AU2002227439A1 (en)
TW (1) TW533350B (en)
WO (1) WO2002069146A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876928B (en) * 2009-11-13 2012-07-25 北京全路通信信号研究设计院有限公司 Synchronization method and device of double 2-vote-2 system

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072818B1 (en) 1999-11-30 2006-07-04 Synplicity, Inc. Method and system for debugging an electronic system
US7065481B2 (en) * 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US7240303B1 (en) 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US7827510B1 (en) 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US7003698B2 (en) * 2002-06-29 2006-02-21 Intel Corporation Method and apparatus for transport of debug events between computer system components
US6895530B2 (en) * 2003-01-24 2005-05-17 Freescale Semiconductor, Inc. Method and apparatus for controlling a data processing system during debug
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
JP4409349B2 (en) * 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 Debug circuit and debug control method
US7216259B2 (en) 2004-04-28 2007-05-08 Via Telecom Co., Ltd. Increment power saving in battery powered wireless system with software configuration
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US20060075124A1 (en) * 2004-10-01 2006-04-06 Michael Joseph Dougherty Automatic activation and deactivation of wireless network adapter
US20060161818A1 (en) * 2005-01-14 2006-07-20 Ivo Tousek On-chip hardware debug support units utilizing multiple asynchronous clocks
US7375550B1 (en) * 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US7788478B2 (en) 2005-07-15 2010-08-31 Tabula, Inc. Accessing multiple user states concurrently in a configurable IC
US7652498B2 (en) 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8412990B2 (en) 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US8069425B2 (en) * 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
WO2009039462A1 (en) 2007-09-19 2009-03-26 Tabula, Inc. Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
US8165253B2 (en) * 2008-08-28 2012-04-24 Agere Systems Inc. Methods and apparatus for serializer/deserializer transmitter synchronization
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
JP5467891B2 (en) * 2010-02-19 2014-04-09 ルネサスエレクトロニクス株式会社 Information processing apparatus, debugging apparatus, and debugging method
KR101992234B1 (en) 2012-05-22 2019-06-24 삼성전자주식회사 Integrated circuit including clock control circuit for debugging circuit and system-on-chip including the same
US9154137B2 (en) 2013-07-04 2015-10-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
CN104679617B (en) * 2013-11-27 2019-01-04 展讯通信(上海)有限公司 A kind of debugging system
US9684578B2 (en) 2014-10-30 2017-06-20 Qualcomm Incorporated Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems
TWI628531B (en) * 2017-05-31 2018-07-01 北京集創北方科技股份有限公司 Clock control circuit and controller

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361392A (en) * 1988-11-10 1994-11-01 Motorola, Inc. Digital computing system with low power mode and special bus cycle therefor
US5434804A (en) * 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
JPH09198343A (en) * 1996-01-17 1997-07-31 Ricoh Co Ltd Communication system using serial interface
US5677849A (en) * 1993-11-08 1997-10-14 Cirrus Logic, Inc. Selective low power clocking apparatus and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3781803A (en) * 1972-04-10 1973-12-25 Bendix Corp Collision avoidance system ground station synchronization
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
MX9603336A (en) * 1994-02-17 1997-05-31 Micrilor Inc A high-data-rate wireless local-area network.
US5838692A (en) * 1996-11-14 1998-11-17 Hewlett-Packard Company System and method for extracting realtime debug signals from an integrated circuit
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6389557B1 (en) * 1998-09-16 2002-05-14 Advanced Micro Devices, Inc. Freezing mechanism for debugging
JP2000155701A (en) * 1998-11-18 2000-06-06 Mitsubishi Electric Corp Debugging circuit
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6442725B1 (en) * 1999-02-18 2002-08-27 Agilent Technologies, Inc. System and method for intelligent analysis probe
US6151487A (en) * 1999-08-31 2000-11-21 Hughes Electronics Corporation Demodulation structure for fast fading cellular channels

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361392A (en) * 1988-11-10 1994-11-01 Motorola, Inc. Digital computing system with low power mode and special bus cycle therefor
US5677849A (en) * 1993-11-08 1997-10-14 Cirrus Logic, Inc. Selective low power clocking apparatus and method
US5434804A (en) * 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
JPH09198343A (en) * 1996-01-17 1997-07-31 Ricoh Co Ltd Communication system using serial interface

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 1997, no. 11, 28 November 1997 (1997-11-28) & JP 09 198343 A (RICOH CO LTD), 31 July 1997 (1997-07-31) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876928B (en) * 2009-11-13 2012-07-25 北京全路通信信号研究设计院有限公司 Synchronization method and device of double 2-vote-2 system

Also Published As

Publication number Publication date
TW533350B (en) 2003-05-21
CN1543604B (en) 2012-05-30
JP4145146B2 (en) 2008-09-03
US20020116081A1 (en) 2002-08-22
EP1423789A2 (en) 2004-06-02
US6823224B2 (en) 2004-11-23
JP2005508531A (en) 2005-03-31
KR100819720B1 (en) 2008-04-07
WO2002069146A3 (en) 2004-04-08
AU2002227439A1 (en) 2002-09-12
KR20030075202A (en) 2003-09-22
CN1543604A (en) 2004-11-03

Similar Documents

Publication Publication Date Title
US6823224B2 (en) Data processing system having an on-chip background debug system and method therefor
US5021950A (en) Multiprocessor system with standby function
US8046615B2 (en) Microcomputer system with reduced power consumption
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
TWI338835B (en) Method and apparatus for controlling a data processing system during debug
US7639764B2 (en) Method and apparatus for synchronizing data between different clock domains in a memory controller
US20130044844A1 (en) Electronics device capable of efficient communication between components with asyncronous clocks
US5630145A (en) Method and apparatus for reducing power consumption according to bus activity as determined by bus access times
EP2207101A1 (en) Method and device for parallel interfacing
JP3552213B2 (en) SD memory card host controller and clock control method
US8010818B2 (en) Power efficient method for controlling an oscillator in a low power synchronous system with an asynchronous I2C bus
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US7219248B2 (en) Semiconductor integrated circuit operable to control power supply voltage
US6877113B2 (en) Break determining circuit for a debugging support unit in a semiconductor integrated circuit
US7895457B2 (en) Memory card with power saving
US11372461B2 (en) Circuitry for transferring data across reset domains
US20040172233A1 (en) Semiconductor integrated circuit device and microcomputer development assisting apparatus
US5428765A (en) Method and apparatus for disabling and restarting clocks
US20040186939A1 (en) Method and apparatus for communications interfacing capable of effectively reducing disk drive power consumption
JPH1185304A (en) Clock input control circuit
JP3033755B1 (en) Arithmetic processing unit
US6016551A (en) Method and apparatus for masking and unmasking a clock signal in an integrated circuit
JPH06152695A (en) Serial interface circuit
JP2003162412A (en) Power-saving circuit for cpu
JP2000207272A (en) Unit and method for memory control and computer- readable storage medium with program stored

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001996290

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020037010937

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 018227937

Country of ref document: CN

Ref document number: 2002568201

Country of ref document: JP

WWP Wipo information: published in national office

Ref document number: 1020037010937

Country of ref document: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 2001996290

Country of ref document: EP