Software debug port for a microprocessor

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S034000, C714S038110, C712S227000

Reexamination Certificate

active

06185732

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to software debug support in microprocessors, and more particularly to a microprocessor incorporating a software debug port.
2. Description of the Related Art
It is clear that the growth in software complexity and increasing processor clock speeds have placed an increasing burden on application software developers. The cost of developing and debugging new software products has become a significant factor in processor selection. A processor's failure to adequately facilitate software debug results in longer customer development times and reduces the processor's attractiveness for use within industry. The need to provide software debug support is particularly acute within the embedded products industry, where specialized on-chip circuitry is often combined with a processor core.
In addition to the software engineer, other parties are also affected by debug tool configuration. These parties include: the “trace” algorithm developer who must search through captured trace data that reflects instruction execution flow in a processor; the in-circuit emulator developer who deals with problems of signal synchronization, clock frequency and trace bandwidth; and the processor manufacturer who does not want a solution that results in increased processor cost or design and development complexity.
With desktop systems, complex multitasking operating systems are currently available to support debugging. However, the initial task of getting these operating systems running reliably often requires special development equipment. While not the standard in the desktop environment, the use of such equipment is often the approach taken within the embedded industry. Logic analyzers, read-only memory (ROM) emulators and in-circuit emulators (ICE) are frequently employed. In-circuit emulators do provide certain advantages over other debug environments, offering complete control and visibility over memory and register contents, as well as overlay and trace memory in case system memory is insufficient. Use of traditional in-circuit emulators, which involves interfacing a custom emulator back-end with a processor socket to allow communication between emulation equipment and the target system, is becoming increasingly difficult and expensive in today's age of exotic packages and shrinking product life cycles.
Assuming full-function in-circuit emulation is required, there are a few known processor manufacturing techniques able to offer the required support for emulation equipment. Most processors intended for personal computer (PC) systems utilize a multiplexed approach in which existing pins are multiplexed for use in software debug. This approach is not particularly desirable in the embedded industry, where it is more difficult to overload pin functionality.
Other more advanced processors multiplex debug pins in time. In such processors, the address bus is used to report software trace information during a BTA-cycle (Branch Target Address). The BTA-cycle, however, must be stolen from the regular bus operation. In debug environments where branch activity is high and cache hit rates are low, it becomes impossible to hide the BTA-cycles. The resulting conflict over access to the address bus necessitates processor “throttle back” to prevent loss of trace information. In the communications industry, for example, software typically makes extensive use of branching and suffers poor cache utilization, often resulting in 20% throttle back or more. This amount of throttling is unacceptable amount for embedded products which must accommodate real-time constrains.
In another approach, a second “trace” or “slave” processor is combined with the main processor, with the two processors operating in-step. Only the main processor is required to fetch instructions. The second, slave processor is used to monitor the fetched instructions on the data bus and keeps its internal state in synchronization with the main processor. The address bus of the slave processor functions to provide trace information. After power-up, via a JTAG (Joint Test Action Group) input, the second processor is switched into a slave mode of operation. Free from the need to fetch instructions, its address bus and other pins provide the necessary trace information.
Another existing approach involves building debug support into every processor, but only bonding-out the necessary signal pins in a limited number of packages. These “specially” packaged versions of the processor are used during debug and replaced with the smaller package for final production. This bond-out approach suffers from the need to support additional bond pad sites in all fabricated devices. This can be a burden in small packages and pad limited designs, particularly if a substantial number of “extra” pins are required by the debug support variant. Additionally, the debug capability of the specially packaged processors is unavailable in typical processor-based production systems.
In yet another approach (the “Background Debug Mode” by Motorola, Inc.) limited on-chip debug circuitry is provided for basic run control. Through a dedicated serial link requiring additional pins, this approach allows a debugger to start and stop the target system and apply basic code breakpoints by inserting special instructions in system memory. Once halted, special commands are used to inspect memory variables and register contents. This serial link, however, does not provide trace support—additional dedicated pins and expensive external capture hardware are required to provide trace data.
Thus, the current solutions for software debugging suffer from a variety of limitations, such as increased packaging and development costs, circuit complexity, processor throttling, bandwidth matching difficulties, and non-standardized interfaces that must be redesigned for each new generation of processor. Further, there is currently no adequate low-cost procedure for providing trace information. The limitations of the existing solutions are likely to be exacerbated in the future as internal processor clock frequencies continue to increase.
SUMMARY OF THE INVENTION
Briefly, a processor-based device according to the present invention provides a flexible, high-performance solution for embedded hardware/software debug. Controllability and observability are achieved through a software debug port that uses an IEEE-1149.1-1990 compliant JTAG (Joint Test Action Group) interface or a similar standardized interface that is integrated into a processor or processor-based device. The software debug port provides a serial debug communication mechanism that does not require a special bond-out package. When used in conjunction with an on-chip trace cache, the software debug port is capable of providing trace information for reconstructing instruction execution flow on the processor and is also capable of examining register contents without halting processor operation.
Most computers are equipped with a serial or parallel interface which can inexpensively be connected to the software debug port of a “target” system by means of a serial connector to control the debug process. Higher speed network-to-JTAG conversion equipment is also available, enabling Unix-based workstations to be easily connected to the target system. Because a system according to the invention provides a standard debug interface, in-circuit emulation equipment designed to interface with the physical connector can be reused without the need to develop expensive back-end equipment to conform with variations and advances in processor packaging.
In one embodiment according to the invention, only standard JTAG pins are used for communications between a host platform and a target system incorporating the target processor. In another embodiment according to the invention, the software debug port of the target processor is augmented for higher-speed access via optional sideband signals. These optional sideband signals can also be used with a bond-out parallel interface that provides e

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Software debug port for a microprocessor does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Software debug port for a microprocessor, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Software debug port for a microprocessor will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2562165

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.