US6367032B1 - Method and system for debugging a microprocessor core - Google Patents

Method and system for debugging a microprocessor core Download PDF

Info

Publication number
US6367032B1
US6367032B1 US09/615,659 US61565900A US6367032B1 US 6367032 B1 US6367032 B1 US 6367032B1 US 61565900 A US61565900 A US 61565900A US 6367032 B1 US6367032 B1 US 6367032B1
Authority
US
United States
Prior art keywords
data
recited
register
computer system
debugging
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
Application number
US09/615,659
Inventor
Eiji Kasahara
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.)
SONY OF ELECTRONICS Inc
Sony Corp
Sony Electronics Inc
Original Assignee
Sony Corp
Sony Electronics 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 Sony Corp, Sony Electronics Inc filed Critical Sony Corp
Priority to US09/615,659 priority Critical patent/US6367032B1/en
Assigned to SONY OF ELECTRONICS, INC., SONY CORPORATION OF JAPAN reassignment SONY OF ELECTRONICS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KASAHARA, EIJI
Priority to AU23004/01A priority patent/AU2300401A/en
Priority to PCT/US2000/041446 priority patent/WO2001029666A1/en
Assigned to SONY ELECTRONICS, INC., SONY CORPORATION OF JAPAN reassignment SONY ELECTRONICS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KASAHARA, EIJI
Application granted granted Critical
Publication of US6367032B1 publication Critical patent/US6367032B1/en
Assigned to SONY CORPORATION reassignment SONY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SONY CORPORATION OF JAPAN
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • 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

Definitions

  • the present invention relates to microprocessor technology. More specifically, the present invention pertains to debugging techniques for a microprocessor core.
  • Computer systems are extensively used to perform a wide variety of useful operations in modern society. Applications of computer systems can be found in virtually all fields and disciplines, including but not limited to business, industry, scientific research, education and entertainment. For instance, computer systems are used to analyze financial data, to control industrial machinery, to model chemical molecules, to deliver classroom presentations and to generate special effects for movies. Indeed, it has now come to the point where many of these operations have become so computationally intensive that they cannot be efficiently performed without the help of modern computer systems. Strong demand for high performance computing has fueled the rapid development of new and more powerful microprocessors, which are essentially the “brains” of modern computer systems.
  • Microprocessor design typically involves an extensive testing phase which serves to validate the design and verify the functionality of the chip.
  • a logic analyzer can be used to monitor the chip's connection pins with one or more companion chips during testing.
  • the general program flow can be observed and debugging can be performed accordingly.
  • microprocessor coreware such as S-o-C (System-on-Chip)
  • boundary signals of the CPU core are not sent outside of the chip. In particular, these boundary signals are generally not accessible on the circuit board as an LSI terminal.
  • the conventional testing technique of waveform observation as utilized for testing stand-alone CPU chips and as described above is not practicable in the case of microprocessor coreware testing.
  • compatibility is essential in developing an testing or debugging interface. More specifically, numerous vendors will offer different components, applications, and development tools for use in a debugging environment. As such, it would be desirable that these different components, applications, and development tools can communicate via the debugging interface such that they can work together seamlessly.
  • the present invention provides a method and system for debugging a microprocessor core wherein test programs can be download into the core via JTAG pins according to the IEEE 1149.1 standard.
  • the present invention also provides a set of extensions to the specifications of the N-wire functions, which can then be used in conjunction with the JTAG pins for program download.
  • embodiments of the present invention enables multiple monitor instructions to be executed at the same time.
  • the present invention leverages upon a versatile technology platform for on-chip debugging and delivers a system and method that is not only widely compatible with other applications and development tools provided by numerous third party vendors but is also highly reusable in other chip and board designs.
  • embodiments of the present invention provide greatly enhanced test program download speed over existing on-chip debugging implementations.
  • the method of the present invention comprises the step of receiving as input a test program and test data for testing the microprocessor core.
  • the method also comprises the step of storing multiple instructions of the test program into a first register of a debugging module in the microprocessor core.
  • the method further comprises the step of storing a set of data into a second register of the debugging module, wherein the set of data is a subset of the test data.
  • the method also comprises the step of executing those multiple instructions with the set of data.
  • those multiple instructions remain in the first register throughout the testing process such that those instructions need only be stored once for all of the test data, even though the test data is processed in separate sets of data.
  • the present invention includes the above and wherein the debugging module is based on a version of the IEEE 1149.1 standard. In another embodiment, the present invention includes the above and wherein the debugging module supports a version of the N-wire testing standard and extensions thereto.
  • Embodiments of the present invention include the above and wherein the step of storing multiple instructions of the test program into the first register of the debugging module in the microprocessor core as well as the step of storing the set of data into the second register are repeated until the test data has been completely processed. Additionally, embodiments of the present invention include the above and wherein the multiple instructions and the set of data are stored into the first and second registers, respectively, via JTAG pins coupled to the microprocessor core.
  • FIG. 1 is an exemplary general purpose computer system having a microprocessor core with which embodiments of the present invention can be implemented.
  • FIG. 2 is a block diagram showing an illustrative debugging environment in accordance with one embodiment of the present invention.
  • FIG. 3 is a flow diagram illustrating steps for debugging a microprocessor core in accordance with one embodiment of the present invention.
  • FIG. 4 is a block diagram showing a partial circuitry layout of the debugging module in accordance with one embodiment of the present invention.
  • FIG. 1 An exemplary general purpose computer system 100 is shown in FIG. 1 .
  • computer system 100 includes an address/data bus 102 for communicating information, a central processor 104 coupled to bus 102 for processing information and instructions, a volatile memory 106 (e.g., random access memory RAM) coupled to bus 102 for storing information and instructions for central processor 104 and a non-volatile memory 108 (e.g., read only memory ROM) coupled to bus 102 for storing static information and instructions for processor 104 .
  • volatile memory 106 e.g., random access memory RAM
  • non-volatile memory 108 e.g., read only memory ROM
  • processor 104 is a microprocessor core upon which embodiments of the present invention can be practiced.
  • Computer system 100 also includes a data storage device 110 (“disk subsystem”) such as a magnetic or optical disk and disk drive coupled with bus 102 for storing information and instructions.
  • Data storage device 110 can include one or more removable magnetic or optical storage media (e.g., diskettes, tapes) which are computer readable memories. In accordance with the present invention, data storage device 110 can contain video and graphics data.
  • Memory units of system 100 include 106 , 108 and 110 .
  • Computer system 100 can also include a signal input output communication device 112 (e.g., modem, network interface card NIC, serial digital input) coupled to bus 102 for interfacing with other computer systems and/or data sources.
  • signal input output communication device 112 e.g., modem, network interface card NIC, serial digital input
  • Computer system 100 of FIG. 1 Also included in computer system 100 of FIG. 1 is an optional alphanumeric input device 114 including alphanumeric and function keys coupled to bus 102 for communicating information and command selections to central processor 104 .
  • Computer system 100 also includes an optional cursor control or directing device 116 coupled to bus 102 for communicating user input information and command selections to central processor 104 .
  • An optional display device 118 can also be coupled to bus 102 for displaying information to the computer user.
  • Display device 118 may be a liquid crystal device (LCD), other flat panel display, cathode ray tube (CRT), or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user.
  • LCD liquid crystal device
  • CRT cathode ray tube
  • Cursor control device 116 allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of display device 118 .
  • cursor control device 116 Many implementations of cursor control device 116 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alphanumeric input device 114 capable of signaling movement of a given direction or manner of displacement.
  • a cursor can be directed and/or activated via input from alphanumeric input device 114 using special keys and key sequence commands.
  • the present invention is also well suited to directing a cursor by other means such as, for example, voice commands.
  • computer system 100 described herein illustrates an exemplary configuration of an operational platform upon which embodiments of the present invention can be implemented. Nevertheless, other computer systems with differing configurations can also be used in place of computer system 100 within the scope of the present invention.
  • microprocessor core 220 is mounted on a reference board 210 .
  • microprocessor core 220 is a 64-bit RISC microprocessor having a MIPS architecture.
  • microprocessor core 220 is a hard macro core wherein the power supply and clock interconnection are intensified and wherein timing is optimized by the addition of a repeater buffer. As such, in accordance with the present invention, clock skew is minimized and balanced, and static timing analysis of the whole chip is possible.
  • memory module 230 includes volatile memory 106 (FIG. 1 ). In another embodiment, memory module 230 includes non-volatile memory 108 (FIG. 1 ). In yet another embodiment, memory module 230 includes both volatile memory 106 and non-volatile memory 108 .
  • microprocessor core 220 comprises a debugging module 222 .
  • debugging module 222 is designed as a module for which logical synthesis is possible.
  • debugging module 222 can advantageously be used as software IP that can be logically synthesized and is reusable in other designs and applications.
  • FIG. 4 A block diagram depicting a partial circuitry layout of debugging module 222 in accordance with one embodiment of the present invention is shown in FIG. 4 .
  • debugging module 222 enables microprocessor core 220 to be debugged in a convenient and speedy fashion.
  • the present invention achieves these advantages by enabling the use of JTAG pins to download s-records of a debugging program as well as by implementing various extensions to the N-wire specifications such that the simultaneous execution of multiple monitor instructions is possible.
  • reference board 210 is coupled to an external in-circuit emulator (ICE) 250 .
  • reference board 210 and ICE 250 are coupled via four JTAG pins 241 - 244 according to the Institute of Electrical and Electronics Engineers (IEEE) 1149.1 standard.
  • the four JTAG pins 241 - 244 are: Test Clock Input (TCK), Test Mode Select (TMS), Test Data Input (TDI), and Test Data Output (TDO).
  • TCK Test Clock Input
  • TMS Test Mode Select
  • TDO Test Data Input
  • TDO Test Data Output
  • reference board 210 and ICE 250 are also coupled via a dedicated pin 245 .
  • additional JTAG pins such as Test Reset (TRST) can also be supported.
  • TRST Test Reset
  • ICE 250 includes a controller 290 , which is coupled to a debugging interface module 260 , a communication interface module 270 , an external trigger input output module 280 , a monitor memory 262 , and a trace memory 264 , all of which reside within ICE 250 .
  • debugging interface module 260 is also coupled to monitor memory 262 as well as trace memory 264 .
  • ICE 250 is also coupled to a host computer and a logic analyzer.
  • the present invention advantageously utilizes a monitor function in conjunction with a specification expansion of N-wire to greatly increase the program download speed from ICE 250 to microprocessor core 220 via JTAG pins 241 - 244 .
  • the V R 5464TM processor designed and manufactured by NEC Electronics, Inc. is one example of a processor that supports a monitor function and an N-wire on-chip debugging port.
  • the V R 5464TM processor also provides built-in support for real-time operating systems. It should be appreciated that the use of the NEC V R 5464TM processor is merely illustrative. Other processors having similar or more powerful features can also be used within the scope of the present invention.
  • the present invention provides a debugging environment that utilizes a standard test architecture, such as the IEEE 1149.1 Joint Test Action Group (JTAG) architecture, which is conducive to be enhanced and extended with other debugging facilities. Accordingly, the present invention further provides a set of N-wire debug functions by way of specification expansion to enable rapid program download from ICE 250 to
  • N-wire functions refer to a set of on-chip debugging facility first developed by Hewlett Packard Company.
  • the N-wire functions give microprocessor system development tools more direct control over the CPU core.
  • N-wire functions provide run-time control and access to the processor's internal state.
  • the present invention leverages upon a versatile technology platform for on-chip debugging and delivers a system and method that is not only widely compatible with other applications and development tools provided by numerous third party vendors but is also highly reusable in other chip and board designs.
  • extensions of the N-wire debug functions in accordance with the present invention comprise various debug features.
  • An selected set of the major debug features in accordance with the present invention are described as follow:
  • t his break function involves comparing the program counter (PC), memory access addresses and memory access data values with mask bits, and then shifting the CPU into debug mode if a match is detected.
  • PC program counter
  • break points can be defined, e.g., PC match, store/load address match, data value match, etc.
  • This function outputs a trigger to an external ICE (e.g., ICE 250 of FIG. 2) when a break point match is detected.
  • an external ICE e.g., ICE 250 of FIG. 2
  • This function force-breaks the CPU by asserting an external pin (e.g., JTAG pin(s)).
  • an external pin e.g., JTAG pin(s)
  • This function enables a CPU break to be initiated programmatically by introducing a software break instruction into the instruction set.
  • This function breaks the CPU when a “break bit” of a designated register is set.
  • This function causes a debug interrupt each time an instruction is executed when a “step bit” of a designated register is set.
  • monitor instruction MON_INST
  • monitor data MON_DATA
  • monitor status MON_STATUS
  • the monitor status register includes a MON_INSTEXEC bit (which causes monitor instruction(s) stored in the MON_INST register to be executed when set) and LEN bits (which represents the number of instructions to execute residing in the MON_INST register).
  • microprocessor core 220 can execute either a debugging program residing in memory (e.g., memory 230 ) or a debug handler program of the monitor instruction.
  • dedicated pin 245 allows a debug handler program to be set using a dedicated Test Access Port (TAP).
  • TAP Test Access Port
  • microprocessor core 220 allows a user to switch between a CPU TAP and an ASIC TAP, thereby providing an even higher degree of flexibility to the user during the testing process.
  • This pair of functions move data between the debug register (e.g., MON_DATA register) and a general purpose register.
  • debug register e.g., MON_DATA register
  • CPU interrupt pins such as NMI, INT, RST, and reset pins.
  • This function resets the CPU core and enables debugging to start over from an initial sequence.
  • This function causes the CPU core to exit debug mode and return to normal mode.
  • the present invention enables debugging to be performed without completely stopping the microprocessor core being tested. More particularly, the present invention enables an ICE (e.g., ICE 250 of FIG. 2) to stop and debug one task while allowing debug interrupt routines to continue running. At the same time, a debug monitor program communicates with a debug host via the JTAG pins (e.g., JTAG pins 241 - 244 of FIG. 2 ). As such, the microprocessor core can be debugged in a highly efficient manner using this embodiment of the present invention.
  • ICE e.g., ICE 250 of FIG. 2
  • JTAG pins e.g., JTAG pins 241 - 244 of FIG. 2
  • a s-record download speed of approximately 1.23 MB per second can be achieved by utilizing the specification expansion of N-wire via the JTAG pins running at a JTAG clock rate of 16 MHz.
  • step 310 a test program and test data for testing the microprocessor core is received as input.
  • the test program and test data comprise multiple s-records within the scope of the present invention.
  • a CPU break is triggered
  • step 320 multiple instructions of the test program is stored into a first register of a debugging module in the microprocessor core.
  • the first register is a monitor instruction register used by the monitor function for storing instructions that are to be executed.
  • the multiple instructions that are stored into the first register include an instruction for moving data from the second register to a general purpose register, an instruction for storing data residing in the general purpose register into a memory, and an instruction for incrementing the address of the memory.
  • a set of data is stored into a second register of the debugging module, wherein the set of data is a subset of the test data as received in step 310 .
  • the second register is a monitor data register used by the monitor function for storing data needed when executing a monitor instruction.
  • the set of data is eight bytes in size.
  • step 340 the multiple instructions are executed with the set of data stored in the second register.
  • the multiple instructions remain in the first register such that the storing of those multiple instructions, as described above in step 320 , needs only be performed once for all of the test data.
  • steps 330 and 340 as described above are repeated until the entirety of the test data has been completely processed.
  • the multiple instructions stored into the first register will be executed repeatedly, once for each set of data being loaded into the second register, until all of the test data has been processed.
  • the multiple instructions will be executed numerous times, they only need to be loaded into the first register once. This is because the multiple instructions remain in the first register throughout the duration of the test until all sets of data, which collectively make up the entirety of the test data, are fully processed. This is made possible by the capability of the debugging module to execute multiple monitor instructions at on time.
  • debugging of the microprocessor core can advantageously be performed at a high rate of speed, and the overall design cycle of the coreware is shortened and manufacturing cost is reduced as a result.
  • a method for debugging a microprocessor core in accordance with embodiments of the present invention is thus described.
  • the three instructions need to be shifted into the MON_INST register only once (line 2 ).
  • this embodiment of the present invention is highly efficient because the instructions do not have to be shifted into the MON_INST register each time a 8-byte data set is being processed. Dramatic improvements in performance (e.g., download speed of s-records) is thus achieved by this embodiment of the present invention. It is appreciated that execution of the DRET instruction returns the microprocessor core to normal mode. A specific embodiment of the microprocessor core debugging method of the present invention is thus described.

Abstract

Method and system for debugging a microprocessor core. In one embodiment, the method comprises the step of receiving as input a test program and test data for testing the microprocessor core. The method also comprises the step of storing multiple instructions of the test program into a first register of a debugging module in the microprocessor core. The method further comprises the step of storing a set of data into a second register of the debugging module, wherein the set of data is a subset of the test data. The method also comprises the step of executing those multiple instructions with the set of data. Importantly, those multiple instructions remain in the first register throughout the testing process such that those instructions need only be stored once for all of the test data, even though the test data is processed in separate sets of data. In one embodiment, the present invention includes the above and wherein the debugging module is based on a version of the IEEE 1149.1 standard. In another embodiment, the present invention includes the above and wherein the debugging module supports a version of the N-wire testing standard and extensions thereto.

Description

The present application claims priority to the provisional application entitled “64-bit RISC Microprocessor Core with Debug Features” by Eiji Kasahara (Ser. No. 60/160,856, filed on Oct. 21, 1999 pursuant to 35 U.S.C §119(e); 37 C.F.R. §1.78.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to microprocessor technology. More specifically, the present invention pertains to debugging techniques for a microprocessor core.
2. Related Art
Computer systems are extensively used to perform a wide variety of useful operations in modern society. Applications of computer systems can be found in virtually all fields and disciplines, including but not limited to business, industry, scientific research, education and entertainment. For instance, computer systems are used to analyze financial data, to control industrial machinery, to model chemical molecules, to deliver classroom presentations and to generate special effects for movies. Indeed, it has now come to the point where many of these operations have become so computationally intensive that they cannot be efficiently performed without the help of modern computer systems. Strong demand for high performance computing has fueled the rapid development of new and more powerful microprocessors, which are essentially the “brains” of modern computer systems.
Microprocessor design typically involves an extensive testing phase which serves to validate the design and verify the functionality of the chip. In the case of a stand-alone CPU (central processing unit) chip, a logic analyzer can be used to monitor the chip's connection pins with one or more companion chips during testing. As such, the general program flow can be observed and debugging can be performed accordingly. However, in the case of microprocessor coreware, such as S-o-C (System-on-Chip), boundary signals of the CPU core are not sent outside of the chip. In particular, these boundary signals are generally not accessible on the circuit board as an LSI terminal. Thus, the conventional testing technique of waveform observation as utilized for testing stand-alone CPU chips and as described above is not practicable in the case of microprocessor coreware testing.
Given these constraints, it is difficult to divide event points during the testing process, and the designer must instead come up with many different types of test programs in order to thoroughly test the CPU core under investigation. As a result, the testing process is very time-consuming.
To alleviate this problem, engineers use the technique of mounting debugging features to the CPU core so as to facilitate the testing process. Under this approach, porting of an application becomes easier. The testing and tuning of the system is also less tedious.
Nevertheless, existing techniques for mounting debugging features to the CPU core is still not ideal. In particular, the download speed of test programs into the CPU core (e.g., via a serial port) is often a limiting factor to the overall efficiency of the testing process. Hence, it would be advantageous to have a method and system wherein microprocessor coreware can be tested in an efficient manner.
Furthermore, it is appreciated that compatibility is essential in developing an testing or debugging interface. More specifically, numerous vendors will offer different components, applications, and development tools for use in a debugging environment. As such, it would be desirable that these different components, applications, and development tools can communicate via the debugging interface such that they can work together seamlessly.
SUMMARY OF THE INVENTION
It would be advantageous to provide a method and system wherein a microprocessor core can be tested in an efficient manner. It would also be advantageous to provide a mechanism for high speed download of test programs into a microprocessor core that is to be tested. Furthermore, it would be advantageous for such mechanism to utilize an existing standard which has been adopted in the industry in its implementation such that the mechanism is widely compatible with other applications.
Accordingly, the present invention provides a method and system for debugging a microprocessor core wherein test programs can be download into the core via JTAG pins according to the IEEE 1149.1 standard. In addition, the present invention also provides a set of extensions to the specifications of the N-wire functions, which can then be used in conjunction with the JTAG pins for program download. Importantly, based on the N-wire specification extensions, embodiments of the present invention enables multiple monitor instructions to be executed at the same time. As such, the present invention leverages upon a versatile technology platform for on-chip debugging and delivers a system and method that is not only widely compatible with other applications and development tools provided by numerous third party vendors but is also highly reusable in other chip and board designs. Moreover, embodiments of the present invention provide greatly enhanced test program download speed over existing on-chip debugging implementations. These and other advantages of the present invention not specifically mentioned above will become clear within discussions of the present invention presented herein.
More specifically, in one embodiment, the method of the present invention comprises the step of receiving as input a test program and test data for testing the microprocessor core. The method also comprises the step of storing multiple instructions of the test program into a first register of a debugging module in the microprocessor core. The method further comprises the step of storing a set of data into a second register of the debugging module, wherein the set of data is a subset of the test data. The method also comprises the step of executing those multiple instructions with the set of data. Importantly, those multiple instructions remain in the first register throughout the testing process such that those instructions need only be stored once for all of the test data, even though the test data is processed in separate sets of data. In one embodiment, the present invention includes the above and wherein the debugging module is based on a version of the IEEE 1149.1 standard. In another embodiment, the present invention includes the above and wherein the debugging module supports a version of the N-wire testing standard and extensions thereto.
Embodiments of the present invention include the above and wherein the step of storing multiple instructions of the test program into the first register of the debugging module in the microprocessor core as well as the step of storing the set of data into the second register are repeated until the test data has been completely processed. Additionally, embodiments of the present invention include the above and wherein the multiple instructions and the set of data are stored into the first and second registers, respectively, via JTAG pins coupled to the microprocessor core.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
FIG. 1 is an exemplary general purpose computer system having a microprocessor core with which embodiments of the present invention can be implemented.
FIG. 2 is a block diagram showing an illustrative debugging environment in accordance with one embodiment of the present invention.
FIG. 3 is a flow diagram illustrating steps for debugging a microprocessor core in accordance with one embodiment of the present invention.
FIG. 4 is a block diagram showing a partial circuitry layout of the debugging module in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
In the following detailed description of the present invention, a system and method for implementing interactive video based on three-dimensional graphics and broadcast video, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Notation and Nomenclature
Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “receiving”, “storing”, “executing” or the like, refer to the action and processes of a computer system (e.g., FIG. 1), or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Aspects of the present invention, described below, are discussed in terms of steps executed on a computer system. These steps (e.g., process 300) are implemented as program code stored in computer readable memory units of a computer system and are executed by the processor of the computer system. Although a variety of different computer systems can be used with the present invention, an exemplary general purpose computer system 100 is shown in FIG. 1.
Computer System Environment
In general, as illustrated in FIG. 1, computer system 100 includes an address/data bus 102 for communicating information, a central processor 104 coupled to bus 102 for processing information and instructions, a volatile memory 106 (e.g., random access memory RAM) coupled to bus 102 for storing information and instructions for central processor 104 and a non-volatile memory 108 (e.g., read only memory ROM) coupled to bus 102 for storing static information and instructions for processor 104. It is appreciated that computer system 100 of FIG. 1 is exemplary only and that the present invention can operate within a number of different computer systems including general purpose computer systems, embedded computer systems, and stand-alone computer systems. In accordance with the present invention processor 104 is a microprocessor core upon which embodiments of the present invention can be practiced.
Computer system 100 also includes a data storage device 110 (“disk subsystem”) such as a magnetic or optical disk and disk drive coupled with bus 102 for storing information and instructions. Data storage device 110 can include one or more removable magnetic or optical storage media (e.g., diskettes, tapes) which are computer readable memories. In accordance with the present invention, data storage device 110 can contain video and graphics data. Memory units of system 100 include 106, 108 and 110. Computer system 100 can also include a signal input output communication device 112 (e.g., modem, network interface card NIC, serial digital input) coupled to bus 102 for interfacing with other computer systems and/or data sources.
Also included in computer system 100 of FIG. 1 is an optional alphanumeric input device 114 including alphanumeric and function keys coupled to bus 102 for communicating information and command selections to central processor 104. Computer system 100 also includes an optional cursor control or directing device 116 coupled to bus 102 for communicating user input information and command selections to central processor 104. An optional display device 118 can also be coupled to bus 102 for displaying information to the computer user. Display device 118 may be a liquid crystal device (LCD), other flat panel display, cathode ray tube (CRT), or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. Cursor control device 116 allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of display device 118. Many implementations of cursor control device 116 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alphanumeric input device 114 capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alphanumeric input device 114 using special keys and key sequence commands. The present invention is also well suited to directing a cursor by other means such as, for example, voice commands.
It is appreciated that computer system 100 described herein illustrates an exemplary configuration of an operational platform upon which embodiments of the present invention can be implemented. Nevertheless, other computer systems with differing configurations can also be used in place of computer system 100 within the scope of the present invention.
Microprocessor Core Debugging Environment in Accordance with the Present Invention
Referring next to FIG. 2, a block diagram depicting an illustrative debugging environment in accordance with one embodiment of the present invention is shown. As illustrated in FIG. 2, within debugging environment 200, a microprocessor core 220 is mounted on a reference board 210. In one embodiment, microprocessor core 220 is a 64-bit RISC microprocessor having a MIPS architecture. In a currently preferred embodiment, microprocessor core 220 is a hard macro core wherein the power supply and clock interconnection are intensified and wherein timing is optimized by the addition of a repeater buffer. As such, in accordance with the present invention, clock skew is minimized and balanced, and static timing analysis of the whole chip is possible.
Also mounted on reference board 210 are a memory module 230 and an I/O module 240. In one embodiment, memory module 230 includes volatile memory 106 (FIG. 1). In another embodiment, memory module 230 includes non-volatile memory 108 (FIG. 1). In yet another embodiment, memory module 230 includes both volatile memory 106 and non-volatile memory 108.
Importantly, in accordance with the present invention, microprocessor core 220 comprises a debugging module 222. In a preferred embodiment, debugging module 222 is designed as a module for which logical synthesis is possible. As such, debugging module 222 can advantageously be used as software IP that can be logically synthesized and is reusable in other designs and applications. A block diagram depicting a partial circuitry layout of debugging module 222 in accordance with one embodiment of the present invention is shown in FIG. 4. In accordance with the present invention, debugging module 222 enables microprocessor core 220 to be debugged in a convenient and speedy fashion. The present invention achieves these advantages by enabling the use of JTAG pins to download s-records of a debugging program as well as by implementing various extensions to the N-wire specifications such that the simultaneous execution of multiple monitor instructions is possible. These and other aspects of embodiments of the present invention are described in detail further below.
With reference still to FIG. 2, reference board 210 is coupled to an external in-circuit emulator (ICE) 250. In a currently preferred embodiment, reference board 210 and ICE 250 are coupled via four JTAG pins 241-244 according to the Institute of Electrical and Electronics Engineers (IEEE) 1149.1 standard. The four JTAG pins 241-244 are: Test Clock Input (TCK), Test Mode Select (TMS), Test Data Input (TDI), and Test Data Output (TDO). In this embodiment, reference board 210 and ICE 250 are also coupled via a dedicated pin 245. Within the scope of the present invention, additional JTAG pins, such as Test Reset (TRST), can also be supported. Furthermore, as illustrated in FIG. 2, in a preferred embodiment, ICE 250 includes a controller 290, which is coupled to a debugging interface module 260, a communication interface module 270, an external trigger input output module 280, a monitor memory 262, and a trace memory 264, all of which reside within ICE 250. In addition, debugging interface module 260 is also coupled to monitor memory 262 as well as trace memory 264. In one embodiment, ICE 250 is also coupled to a host computer and a logic analyzer.
In a currently preferred embodiment, the present invention advantageously utilizes a monitor function in conjunction with a specification expansion of N-wire to greatly increase the program download speed from ICE 250 to microprocessor core 220 via JTAG pins 241-244. It is appreciated that the VR5464™ processor designed and manufactured by NEC Electronics, Inc. is one example of a processor that supports a monitor function and an N-wire on-chip debugging port. The VR5464™ processor also provides built-in support for real-time operating systems. It should be appreciated that the use of the NEC VR5464™ processor is merely illustrative. Other processors having similar or more powerful features can also be used within the scope of the present invention.
N-wire Function Extensions in accordance with the Present Invention
In a currently preferred embodiment, the present invention provides a debugging environment that utilizes a standard test architecture, such as the IEEE 1149.1 Joint Test Action Group (JTAG) architecture, which is conducive to be enhanced and extended with other debugging facilities. Accordingly, the present invention further provides a set of N-wire debug functions by way of specification expansion to enable rapid program download from ICE 250 to
microprocessor core 220 using the JTAG pins. It is appreciated that N-wire functions refer to a set of on-chip debugging facility first developed by Hewlett Packard Company. The N-wire functions give microprocessor system development tools more direct control over the CPU core. In particular, N-wire functions provide run-time control and access to the processor's internal state. By extending the specifications of the N-wire functions, which can then be used in conjunction with the JTAG pins for program download, the present invention leverages upon a versatile technology platform for on-chip debugging and delivers a system and method that is not only widely compatible with other applications and development tools provided by numerous third party vendors but is also highly reusable in other chip and board designs.
More specifically, in on embodiment, extensions of the N-wire debug functions in accordance with the present invention comprise various debug features. An selected set of the major debug features in accordance with the present invention are described as follow:
1. CPU Break and/or Trigger Functions
a) CPU break function based on break points
In general, t his break function involves comparing the program counter (PC), memory access addresses and memory access data values with mask bits, and then shifting the CPU into debug mode if a match is detected. Within the scope of the present invention, various types of break points can be defined, e.g., PC match, store/load address match, data value match, etc.
b) External trigger function by break pointer
This function outputs a trigger to an external ICE (e.g., ICE 250 of FIG. 2) when a break point match is detected.
c) External break
This function force-breaks the CPU by asserting an external pin (e.g., JTAG pin(s)).
d) Software break function
This function enables a CPU break to be initiated programmatically by introducing a software break instruction into the instruction set.
e) Register break function
This function breaks the CPU when a “break bit” of a designated register is set.
f) Step break function
This function causes a debug interrupt each time an instruction is executed when a “step bit” of a designated register is set.
2. Monitor Function
This function is used to download an s-record program. It is supported by a monitor instruction (MON_INST) register, a monitor data (MON_DATA) register, as well as a monitor status (MON_STATUS) register. In one embodiment, the monitor status register includes a MON_INSTEXEC bit (which causes monitor instruction(s) stored in the MON_INST register to be executed when set) and LEN bits (which represents the number of instructions to execute residing in the MON_INST register).
3. Debug Vector Instruction Execution Function
This function is used at a CPU break. Within the scope of the present invention, upon an interrupt of a CPU break, microprocessor core 220 can execute either a debugging program residing in memory (e.g., memory 230) or a debug handler program of the monitor instruction. In one embodiment, dedicated pin 245 allows a debug handler program to be set using a dedicated Test Access Port (TAP). In a currently preferred embodiment, microprocessor core 220 allows a user to switch between a CPU TAP and an ASIC TAP, thereby providing an even higher degree of flexibility to the user during the testing process.
4. Move To/From Debug Register Functions
This pair of functions move data between the debug register (e.g., MON_DATA register) and a general purpose register.
5. Mask Function
This function is used by CPU interrupt pins, such as NMI, INT, RST, and reset pins.
6. Debug Reset Function
This function resets the CPU core and enables debugging to start over from an initial sequence.
7. Debug Return Function (DRET)
This function causes the CPU core to exit debug mode and return to normal mode.
8. Miscellaneous Functions
There are functions available for monitoring various state bits (e.g., CPU status, debug cause, debug exception, SysAD bus activity, etc.), for dynamically switching various control bits, for saving the program counter during debugging.
Moreover, in a preferred embodiment, the present invention enables debugging to be performed without completely stopping the microprocessor core being tested. More particularly, the present invention enables an ICE (e.g., ICE 250 of FIG. 2) to stop and debug one task while allowing debug interrupt routines to continue running. At the same time, a debug monitor program communicates with a debug host via the JTAG pins (e.g., JTAG pins 241-244 of FIG. 2). As such, the microprocessor core can be debugged in a highly efficient manner using this embodiment of the present invention.
Furthermore, in a currently preferred embodiment, a s-record download speed of approximately 1.23 MB per second can be achieved by utilizing the specification expansion of N-wire via the JTAG pins running at a JTAG clock rate of 16 MHz. Thus, as an example, it takes merely 0.81 second to download a 1 MB program using this embodiment of the present invention. This represents an improvement of about 170 times in terms of the download speed when compared to certain prior art implementations.
Operation of the Microprocessor Core Debugging System and Method in accordance with the Present Invention
Referring next to FIG. 3, a flow diagram illustrating steps for debugging a microprocessor core in accordance with one embodiment of the present invention is shown. In step 310, a test program and test data for testing the microprocessor core is received as input. In one embodiment, the test program and test data comprise multiple s-records within the scope of the present invention. In one embodiment, a CPU break is triggered
Referring still to FIG. 3, in step 320, multiple instructions of the test program is stored into a first register of a debugging module in the microprocessor core. In one embodiment, the first register is a monitor instruction register used by the monitor function for storing instructions that are to be executed. In a currently preferred embodiment, the multiple instructions that are stored into the first register include an instruction for moving data from the second register to a general purpose register, an instruction for storing data residing in the general purpose register into a memory, and an instruction for incrementing the address of the memory.
With reference still to FIG. 3, in step 330, a set of data is stored into a second register of the debugging module, wherein the set of data is a subset of the test data as received in step 310. In one embodiment, the second register is a monitor data register used by the monitor function for storing data needed when executing a monitor instruction. In one embodiment, the set of data is eight bytes in size.
Referring again to FIG. 3, in step 340, the multiple instructions are executed with the set of data stored in the second register. Importantly, in a currently preferred embodiment, the multiple instructions remain in the first register such that the storing of those multiple instructions, as described above in step 320, needs only be performed once for all of the test data.
More specifically, in a currently preferred embodiment, steps 330 and 340 as described above are repeated until the entirety of the test data has been completely processed. In this embodiment, during the course of the testing process, the multiple instructions stored into the first register will be executed repeatedly, once for each set of data being loaded into the second register, until all of the test data has been processed. Importantly, although the multiple instructions will be executed numerous times, they only need to be loaded into the first register once. This is because the multiple instructions remain in the first register throughout the duration of the test until all sets of data, which collectively make up the entirety of the test data, are fully processed. This is made possible by the capability of the debugging module to execute multiple monitor instructions at on time. As such, debugging of the microprocessor core can advantageously be performed at a high rate of speed, and the overall design cycle of the coreware is shortened and manufacturing cost is reduced as a result. A method for debugging a microprocessor core in accordance with embodiments of the present invention is thus described.
To further elucidate the operation of the method of the present invention, an illustrative pseudo-code segment based on process 300 of FIG. 3 and which uses the N-wire function extensions described above is provided below:
1. Break into debug mode of the microprocessor core with the debug module enabled (with DINIT bit cleared) using any of the CPU break functions described above
2. Shift three instructions, namely: move-from-debug-register, store-double-word, and add-immediate, into the MON_INST register via the JTAG pins
3. Shift the download data into the MON DATA register via the JTAG pins
4. Set the MON_INSTEXEC bit and the LEN bits in the MON_STATUS register via the JTAG pins
5. Repeat lines 3 and 4 for each 8 bytes of data
6. Shift the DRET instruction into the MON_INST register via the JTAG pins
7. Set the MON_INSTEXEC bit in the MON_STATUS register via the JTAG pins
Importantly, as illustrated in the pseudo-code segment above, the three instructions need to be shifted into the MON_INST register only once (line 2). As a result, this embodiment of the present invention is highly efficient because the instructions do not have to be shifted into the MON_INST register each time a 8-byte data set is being processed. Dramatic improvements in performance (e.g., download speed of s-records) is thus achieved by this embodiment of the present invention. It is appreciated that execution of the DRET instruction returns the microprocessor core to normal mode. A specific embodiment of the microprocessor core debugging method of the present invention is thus described.
Although certain embodiments of the present invention as described herein refer to a specific model of microprocessor core, certain specific processor instructions, certain specific registers, or the like, it is appreciated that many other advantageous applications are possible within the scope and spirit of the present invention. For example, the present invention can be advantageously applied to the debugging of any microprocessor core that supports the JTAG and N-wire testing standards as described above. It should be clear to a person of ordinary skill in the art, having read the description of embodiments of the present invention herein, that other applications and embodiments not expressly described herein are also possible without departing from the scope of the present invention.
The preferred embodiment of the present invention, a system and method for debugging a microprocessor core, is thus described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.

Claims (26)

What is claimed is:
1. A method for debugging a microprocessor core, said method comprising the steps of:
a) receiving as input a test program and test data for testing said microprocessor core;
b ) storing multiple instructions of said test program into a first register of a debugging module in said microprocessor core, wherein said debugging module executes said multiple instructions simultaneously, and wherein said multiple instructions remain in said first register throughout processing an entirety said test data;
c) storing a set of data into a second register of said debugging module, said set of data being a subset of said entirety of said test data, wherein; and
d) executing said multiple instructions with said set of data, wherein said multiple instructions remain in said first register such that said step b) needs to be performed only once for all of said entirety of said test data.
2. The method as recited in claim 1 wherein said steps c) and d) are repeated until said test data has been completely processed.
3. The method as recited in claim 2 wherein said multiple instructions and said set of data are stored into said first and second registers, respectively, via JTAG pins coupled to said microprocessor core.
4. The method as recited in claim 2 wherein said debugging module is based on a version of the IEEE 1149.1 standard.
5. The method as recited in claim 2 wherein said debugging module supports a version of the N-wire testing standard and extensions thereto.
6. The method as recited in claim 2 wherein said test program is a debug handler program containing monitor instructions, said monitor instructions being instructions supported by said microprocessor core.
7. The method as recited in claim 6 wherein said debug handler program is set using a dedicated Test Access Port (TAP).
8. The method as recited in claim 2 wherein said multiple instructions include an instruction for moving data from said second register to a general purpose register, an instruction for storing data residing in said general purpose register into a memory, and an instruction for incrementing an address of said memory.
9. The method as recited in claim 2 wherein said set of data is eight bytes in size.
10. A computer system comprising a microprocessor core coupled to a bus and a memory unit coupled to said bus, said memory unit having stored therein instructions that when executed implement a method of debugging said microprocessor core, said method comprising the steps of:
a) receiving as input a test program and test data for testing said microprocessor core;
b) storing multiple instructions of said test program into a first register of a debugging module in said microprocessor core, wherein said debugging module executes said multiple instructions simultaneously, and wherein said multiple instructions remain in said first register throughout processing an entirety said test data;
c) storing a set of data into a second register of said debugging module, said set of data being a subset of said entirety of said test data; and
d) executing said multiple instructions with said set of data, wherein said multiple instructions remain in said first register such that said step b) needs to be performed only once for all of said entirety of said test data.
11. The computer system as recited in claim 10 wherein said steps c) and d) are repeated until said test data has been completely processed.
12. The computer system as recited in claim 11 wherein said multiple instructions and said set of data are stored into said first and second registers, respectively, via JTAG pins coupled to said microprocessor core.
13. The computer system as recited in claim 11 wherein said debugging module is based on a version of the IEEE 1149.1 standard.
14. The computer system as recited in claim 11 wherein said debugging module supports a version of the N-wire testing standard and extensions thereto.
15. The computer system as recited in claim 11 wherein said test program is a debug handler program containing monitor instructions, said monitor instructions being instructions supported by said microprocessor core.
16. The computer system as recited in claim 15 wherein said debug handler program is set using a dedicated Test Access Port (TAP).
17. The computer system as recited in claim 11 wherein said multiple instructions include an instruction for moving data from said second register to a general purpose register, an instruction for storing data residing in said general purpose register into a memory, and an instruction for incrementing an address of said memory.
18. The computer system as recited in claim 11 wherein said set of data is eight bytes in size.
19. A computer system for debugging a microprocessor core, said computer system comprising:
means for receiving as input a test program and test data for testing said microprocessor core;
first storage means in a debugging means in said microprocessor core for storing multiple instructions of said test program, wherein said debugging module executes said multiple instructions simultaneously, and wherein said multiple instructions remain in said first register throughout processing an entirety said test data;
second storage means in said debugging means for storing a set of data, said set of data being a subset of said entirety of said test data; and
means for executing said multiple instructions with said set of data, wherein said multiple instructions remain in said first storage means such that said storing of said multiple instructions needs to be performed only once for all of said entirety of said test data.
20. The computer system as recited in claim 19 wherein said multiple instructions and said set of data are stored into said first and second storage means, respectively, via JTAG pins coupled to said microprocessor core.
21. The computer system as recited in claim 19 wherein said debugging means is based on a version of the IEEE 1149.1 standard.
22. The computer system as recited in claim 19 wherein said debugging means supports a version of the N-wire testing standard and extensions thereto.
23. The computer system as recited in claim 19 wherein said test program is a debug handler program containing monitor instructions, said monitor instructions being instructions supported by said microprocessor core.
24. The computer system as recited in claim 23 wherein said debug handler program is set using a dedicated Test Access Port (TAP).
25. The computer system as recited in claim 19 wherein said multiple instructions include an instruction for moving data from said second storage means to a general purpose storage means, an instruction for storing data residing in said general purpose storage means into a memory, and an instruction for incrementing an address of said memory.
26. The computer system as recited in claim 19 wherein said set of data is eight bytes in size.
US09/615,659 1999-10-21 2000-07-14 Method and system for debugging a microprocessor core Expired - Fee Related US6367032B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US09/615,659 US6367032B1 (en) 1999-10-21 2000-07-14 Method and system for debugging a microprocessor core
AU23004/01A AU2300401A (en) 1999-10-21 2000-10-19 Method and system for debugging a microprocessor core
PCT/US2000/041446 WO2001029666A1 (en) 1999-10-21 2000-10-19 Method and system for debugging a microprocessor core

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16085699P 1999-10-21 1999-10-21
US09/615,659 US6367032B1 (en) 1999-10-21 2000-07-14 Method and system for debugging a microprocessor core

Publications (1)

Publication Number Publication Date
US6367032B1 true US6367032B1 (en) 2002-04-02

Family

ID=26857277

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/615,659 Expired - Fee Related US6367032B1 (en) 1999-10-21 2000-07-14 Method and system for debugging a microprocessor core

Country Status (3)

Country Link
US (1) US6367032B1 (en)
AU (1) AU2300401A (en)
WO (1) WO2001029666A1 (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049803A1 (en) * 2000-05-30 2001-12-06 Mitsubishi Denki Kabushiki Kaisha Microprocessor internally provided with test circuit
US20030217354A1 (en) * 2002-05-16 2003-11-20 International Business Machines Corporation Scope-based breakpoint selection and operation
US20040230867A1 (en) * 2003-05-15 2004-11-18 Ramin Soheili Method and system of using high-level code for independent debugging of a processor
US6877112B1 (en) * 1999-11-05 2005-04-05 Fujitsu Limited Reset control system and method
US20050102565A1 (en) * 2003-10-22 2005-05-12 Barr Andrew H. Fault-tolerant multi-core microprocessing
US20050268168A1 (en) * 2004-04-27 2005-12-01 Yuzo Ishihara Debugging circuit and a method of controlling the debugging circuit
US20070103357A1 (en) * 2000-06-19 2007-05-10 Silicon Labs Cp, Inc. Analog-to-digital converter with low power track-and-hold mode
US20070220331A1 (en) * 2006-02-08 2007-09-20 Stmicroelectronics Sa Processor comprising an integrated debugging interface controlled by the processing unit of the processor
US20070220334A1 (en) * 2006-02-14 2007-09-20 Pedersen Frode M Debugging system and method for use with software breakpoint
US20080256268A1 (en) * 2007-04-13 2008-10-16 Dspace Digital Signal Processing And Control Engineering Gmbh System and method for testing and calibrating a control unit using an adaptation unit
US20140053023A1 (en) * 2012-08-16 2014-02-20 Texas Instruments Incorporated Pseudo dedicated debug port with an application interface
US20140196154A1 (en) * 2005-05-16 2014-07-10 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US20170089981A1 (en) * 2015-09-25 2017-03-30 Contec, Llc Core Testing Machine
US9836376B2 (en) 2009-09-24 2017-12-05 Contec, Llc Method and system for automated test of end-user devices
US9838295B2 (en) 2015-11-23 2017-12-05 Contec, Llc Wireless routers under test
US9900116B2 (en) 2016-01-04 2018-02-20 Contec, Llc Test sequences using universal testing system
US9900113B2 (en) 2016-02-29 2018-02-20 Contec, Llc Universal tester hardware
US9960989B2 (en) 2015-09-25 2018-05-01 Contec, Llc Universal device testing system
US9992084B2 (en) 2015-11-20 2018-06-05 Contec, Llc Cable modems/eMTAs under test
US10025955B2 (en) 2005-05-16 2018-07-17 Texas Instruments Incorporated Pipeline processor execution stages, secure emulation logic, gating debug/profile output
US10103967B2 (en) 2016-11-10 2018-10-16 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US10122611B2 (en) 2015-09-25 2018-11-06 Contec, Llc Universal device testing interface
US10158553B2 (en) 2015-09-25 2018-12-18 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US10291959B2 (en) 2015-09-25 2019-05-14 Contec, Llc Set top boxes under test
US10320651B2 (en) 2015-10-30 2019-06-11 Contec, Llc Hardware architecture for universal testing system: wireless router test
US10462456B2 (en) 2016-04-14 2019-10-29 Contec, Llc Automated network-based test system for set top box devices
US10779056B2 (en) 2016-04-14 2020-09-15 Contec, Llc Automated network-based test system for set top box devices
US10965578B2 (en) 2015-10-30 2021-03-30 Contec, Llc Hardware architecture for universal testing system: cable modem test
US20230244782A1 (en) * 2020-08-28 2023-08-03 Siemens Aktiengesellschaft Methods and systems for controlling access to at least one computer program

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312588C (en) * 2004-04-02 2007-04-25 清华大学 Realizing method of cross regulator based on EJTAG components of targeting machine
US8140902B2 (en) 2008-11-12 2012-03-20 International Business Machines Corporation Internally controlling and enhancing advanced test and characterization in a multiple core microprocessor
US8122312B2 (en) 2009-04-14 2012-02-21 International Business Machines Corporation Internally controlling and enhancing logic built-in self test in a multiple core microprocessor
CN101621293B (en) * 2009-07-23 2012-09-26 中兴通讯股份有限公司 JTAG device and method for realizing JTAG data downloading through isolating circuit

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355369A (en) * 1991-04-26 1994-10-11 At&T Bell Laboratories High-speed integrated circuit testing with JTAG
US5479652A (en) * 1992-04-27 1995-12-26 Intel Corporation Microprocessor with an external command mode for diagnosis and debugging
US5590354A (en) * 1993-07-28 1996-12-31 U.S. Philips Corporation Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6112298A (en) * 1996-12-20 2000-08-29 Texas Instruments Incorporated Method for managing an instruction execution pipeline during debugging of a data processing system
US6145122A (en) * 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US6205560B1 (en) * 1996-02-27 2001-03-20 Via-Cyrix, Inc. Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG
US20010010083A1 (en) * 1997-07-16 2001-07-26 Shuji Satoh Integrated circuit device and method and apparatus for inspecting the same

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355369A (en) * 1991-04-26 1994-10-11 At&T Bell Laboratories High-speed integrated circuit testing with JTAG
US5479652A (en) * 1992-04-27 1995-12-26 Intel Corporation Microprocessor with an external command mode for diagnosis and debugging
US5479652B1 (en) * 1992-04-27 2000-05-02 Intel Corp Microprocessor with an external command mode for diagnosis and debugging
US5590354A (en) * 1993-07-28 1996-12-31 U.S. Philips Corporation Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US6205560B1 (en) * 1996-02-27 2001-03-20 Via-Cyrix, Inc. Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US6112298A (en) * 1996-12-20 2000-08-29 Texas Instruments Incorporated Method for managing an instruction execution pipeline during debugging of a data processing system
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US20010010083A1 (en) * 1997-07-16 2001-07-26 Shuji Satoh Integrated circuit device and method and apparatus for inspecting the same
US6145122A (en) * 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6877112B1 (en) * 1999-11-05 2005-04-05 Fujitsu Limited Reset control system and method
US20010049803A1 (en) * 2000-05-30 2001-12-06 Mitsubishi Denki Kabushiki Kaisha Microprocessor internally provided with test circuit
US6816983B2 (en) * 2000-05-30 2004-11-09 Renesas Technology Corp. Microprocessor internally provided with test circuit
US7660968B2 (en) 2000-06-19 2010-02-09 Silicon Labs Cp, Inc. Reconfigurable interface for coupling functional input/output blocks to limited number of I/O pins
US7498962B2 (en) 2000-06-19 2009-03-03 Silicon Labs Cp, Inc. Analog-to-digital converter with low power track-and-hold mode
US7613901B2 (en) 2000-06-19 2009-11-03 Silicon Labs Cp, Inc. Comparators in IC with programmably controlled positive / negative hysteresis level and open-drain / push-pull output coupled to crossbar switch or rising / falling edge interrupt generation
US7504900B2 (en) 2000-06-19 2009-03-17 Silicon Labs Cp, Inc. Integrated circuit package including programmable oscillators
US20070300046A1 (en) * 2000-06-19 2007-12-27 Silicon Labs Cp Inc. System and method for programming integrated circuit package via jtag interface
US20070300047A1 (en) * 2000-06-19 2007-12-27 Silicon Labs Cp, Inc. Reconfigurable processor integrated circuit
US20070103357A1 (en) * 2000-06-19 2007-05-10 Silicon Labs Cp, Inc. Analog-to-digital converter with low power track-and-hold mode
US20070296478A1 (en) * 2000-06-19 2007-12-27 Silicon Labs Cp Inc. Integrated circuit package including programmable comparators
US7178135B2 (en) * 2002-05-16 2007-02-13 International Business Machines Corporation Scope-based breakpoint selection and operation
US20030217354A1 (en) * 2002-05-16 2003-11-20 International Business Machines Corporation Scope-based breakpoint selection and operation
US20040230867A1 (en) * 2003-05-15 2004-11-18 Ramin Soheili Method and system of using high-level code for independent debugging of a processor
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
US20050102565A1 (en) * 2003-10-22 2005-05-12 Barr Andrew H. Fault-tolerant multi-core microprocessing
US20050268168A1 (en) * 2004-04-27 2005-12-01 Yuzo Ishihara Debugging circuit and a method of controlling the debugging circuit
US7590891B2 (en) * 2004-04-27 2009-09-15 Oki Semiconductor Co., Ltd. Debugging circuit and a method of controlling the debugging circuit
US9633213B2 (en) * 2005-05-16 2017-04-25 Texas Instruments Incorporated Secure emulation logic between page attribute table and test interface
US10025955B2 (en) 2005-05-16 2018-07-17 Texas Instruments Incorporated Pipeline processor execution stages, secure emulation logic, gating debug/profile output
US11580264B2 (en) 2005-05-16 2023-02-14 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US10438023B2 (en) 2005-05-16 2019-10-08 Texas Instruments Incorporated Pipeline processor data and attribute register, secure emulation logic, gating
US20140196154A1 (en) * 2005-05-16 2014-07-10 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US20070220331A1 (en) * 2006-02-08 2007-09-20 Stmicroelectronics Sa Processor comprising an integrated debugging interface controlled by the processing unit of the processor
US7689864B2 (en) * 2006-02-08 2010-03-30 Stmicroelectronics Sa Processor comprising an integrated debugging interface controlled by the processing unit of the processor
US7506205B2 (en) * 2006-02-14 2009-03-17 Atmel Corporation Debugging system and method for use with software breakpoint
US20070220334A1 (en) * 2006-02-14 2007-09-20 Pedersen Frode M Debugging system and method for use with software breakpoint
US8019911B2 (en) 2007-04-13 2011-09-13 Dspace Digital Signal Processing And Control Enineering Gmbh System and method for testing and calibrating a control unit using an adaptation unit
US20080256268A1 (en) * 2007-04-13 2008-10-16 Dspace Digital Signal Processing And Control Engineering Gmbh System and method for testing and calibrating a control unit using an adaptation unit
US9836375B2 (en) 2009-09-24 2017-12-05 Contec, Llc Method and system for automated test of multi-media user devices
US9836376B2 (en) 2009-09-24 2017-12-05 Contec, Llc Method and system for automated test of end-user devices
US10846189B2 (en) 2009-09-24 2020-11-24 Contec Llc Method and system for automated test of end-user devices
US20140053023A1 (en) * 2012-08-16 2014-02-20 Texas Instruments Incorporated Pseudo dedicated debug port with an application interface
US9189354B2 (en) * 2012-08-16 2015-11-17 Texas Instruments Incorporated Pseudo dedicated debug port with an application interface
US10291959B2 (en) 2015-09-25 2019-05-14 Contec, Llc Set top boxes under test
US10298483B2 (en) 2015-09-25 2019-05-21 Contec, Llc Universal device testing interface
US9960989B2 (en) 2015-09-25 2018-05-01 Contec, Llc Universal device testing system
US9810735B2 (en) * 2015-09-25 2017-11-07 Contec, Llc Core testing machine
US20170089981A1 (en) * 2015-09-25 2017-03-30 Contec, Llc Core Testing Machine
US11353507B2 (en) * 2015-09-25 2022-06-07 Contec, Llc Core testing machine
US10578670B2 (en) * 2015-09-25 2020-03-03 Contec, Llc Core testing machine
US10122611B2 (en) 2015-09-25 2018-11-06 Contec, Llc Universal device testing interface
US10158553B2 (en) 2015-09-25 2018-12-18 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US20180024193A1 (en) * 2015-09-25 2018-01-25 Contec, Llc Core testing machine
US10277497B2 (en) 2015-09-25 2019-04-30 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US10581719B2 (en) 2015-10-30 2020-03-03 Contec, Llc Hardware architecture for universal testing system: wireless router test
US10965578B2 (en) 2015-10-30 2021-03-30 Contec, Llc Hardware architecture for universal testing system: cable modem test
US10320651B2 (en) 2015-10-30 2019-06-11 Contec, Llc Hardware architecture for universal testing system: wireless router test
US9992084B2 (en) 2015-11-20 2018-06-05 Contec, Llc Cable modems/eMTAs under test
US10230617B2 (en) 2015-11-23 2019-03-12 Contec, Llc Wireless routers under test
US10581718B2 (en) 2015-11-23 2020-03-03 Contec, Llc Wireless devices under test
US9838295B2 (en) 2015-11-23 2017-12-05 Contec, Llc Wireless routers under test
US10116397B2 (en) 2016-01-04 2018-10-30 Contec, Llc Test sequences using universal testing system
US9900116B2 (en) 2016-01-04 2018-02-20 Contec, Llc Test sequences using universal testing system
US9900113B2 (en) 2016-02-29 2018-02-20 Contec, Llc Universal tester hardware
US10462456B2 (en) 2016-04-14 2019-10-29 Contec, Llc Automated network-based test system for set top box devices
US10779056B2 (en) 2016-04-14 2020-09-15 Contec, Llc Automated network-based test system for set top box devices
US10284456B2 (en) 2016-11-10 2019-05-07 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US10757002B2 (en) 2016-11-10 2020-08-25 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US10103967B2 (en) 2016-11-10 2018-10-16 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US11509563B2 (en) 2016-11-10 2022-11-22 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
US20230244782A1 (en) * 2020-08-28 2023-08-03 Siemens Aktiengesellschaft Methods and systems for controlling access to at least one computer program

Also Published As

Publication number Publication date
WO2001029666A1 (en) 2001-04-26
AU2300401A (en) 2001-04-30

Similar Documents

Publication Publication Date Title
US6367032B1 (en) Method and system for debugging a microprocessor core
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
US5479652A (en) Microprocessor with an external command mode for diagnosis and debugging
EP0528585B1 (en) Data processing system with internal instruction cache
Vermeulen et al. Design for debug: Catching design errors in digital chips
JP4126105B2 (en) Digital processor test method
US6185732B1 (en) Software debug port for a microprocessor
US5751942A (en) Trace event detection during trace enable transitions
US4788683A (en) Data processing system emulation with microprocessor in place
KR101329465B1 (en) Method and apparatus for system testing using multiple processors
US5329471A (en) Emulation devices, systems and methods utilizing state machines
US5758058A (en) Apparatus and method for initializing a master/checker fault detecting microprocessor
US6618775B1 (en) DSP bus monitoring apparatus and method
US6085336A (en) Data processing devices, systems and methods with mode driven stops
US20060059387A1 (en) Processor condition sensing circuits, systems and methods
US20020013918A1 (en) Devices, systems and methods for mode driven stops
KR20010006188A (en) Trace cache for a microprocessor-based device
US20070005322A1 (en) System and method for complex programmable breakpoints using a switching network
US6480974B1 (en) Method for use of bus parking states to communicate diagnostic information
US5574937A (en) Method and apparatus for improving instruction tracing operations in a computer system
US6014752A (en) Method and apparatus for fully controllable integrated circuit internal clock
EP0411904A2 (en) Processor condition sensing circuits, systems and methods
EP0685793A2 (en) Emulation device, system and method with distributed control of test interfaces in clock domains
US6973607B2 (en) Method and apparatus for testing electronic components
Jung et al. Reusable embedded debugger for 32 bit RISC processor using the JTAG boundary scan architecture

Legal Events

Date Code Title Description
AS Assignment

Owner name: SONY CORPORATION OF JAPAN, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KASAHARA, EIJI;REEL/FRAME:010944/0884

Effective date: 20000712

Owner name: SONY OF ELECTRONICS, INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KASAHARA, EIJI;REEL/FRAME:010944/0884

Effective date: 20000712

AS Assignment

Owner name: SONY CORPORATION OF JAPAN, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KASAHARA, EIJI;REEL/FRAME:012606/0237

Effective date: 20000712

Owner name: SONY ELECTRONICS, INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KASAHARA, EIJI;REEL/FRAME:012606/0237

Effective date: 20000712

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
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: 20140402

AS Assignment

Owner name: SONY CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SONY CORPORATION OF JAPAN;REEL/FRAME:045208/0908

Effective date: 20180131